{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Supervised Learning II\n", "by Mauricio Araya\n", "## (A.K.A. Supervised Learning Lab)\n", "\n", "Credit: Guillermo Cabrera, Matthew Graham, and Scikit Learn\n", "\n", "(Yes... I will force you to code now...)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.- Regularized Regression... or ridding alone\n", "\n", "### Objective\n", "* Understand the effect of the regularization parameters\n", "* Compare Ridge and Lasso\n", "* Warm up!\n", "\n", "### Regularization Reminder (slide)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise\n", "### a) Forging your own Galaxy Photometry/Redshift dataset\n", "* Use my Tuesday's notebook to load the `sdss_gal.csv`\n", "* Downsample the data (use $n=10000$ for example)\n", "* Divide into training and test/validation\n", "* Select the 'u-g' feature (and hack it to be a matrix)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "galaxy_feat = pd.read_csv('sdss_gal.csv', low_memory=False)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "n=10000\n", "gal_sample = galaxy_feat.sample(n=n,random_state=0)\n", "train_data = gal_sample[:int(len(gal_sample)*0.75)]\n", "test_data = gal_sample[int(len(gal_sample)*0.75):]\n", "X=train_data[['u-g','g-r','r-i','i-z']]\n", "y=train_data['redshift']\n", "Xp=test_data[['u-g','g-r','r-i','i-z']]\n", "yp=test_data['redshift']\n", "dim='r-i'" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "y_train = train_data['redshift']\n", "X_train = train_data[dim]\n", "# Formatting hack...\n", "X_train=np.atleast_2d(X_train).T\n", "#X_train=X_train.values.reshape(len(X_train), 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### b) Use the scikit-learn to perform a ridge regression \n", "* Use now a polynomial model (degree = 10 for example)\n", "* Plot your data and the curve line (use the `.predict()` function, not manually)\n", "* Plot the parameters in a bar plot " ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import Ridge,Lasso\n", "from sklearn.preprocessing import PolynomialFeatures\n", "gen_poly_terms =PolynomialFeatures(degree=10)\n", "X_train_with_poly = gen_poly_terms.fit_transform(X_train)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None,\n", " normalize=False, random_state=None, solver='auto', tol=0.001)" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "poly_regression = Ridge()\n", "poly_regression.fit(X_train_with_poly, y_train)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "x_vals = np.linspace(np.min(X_train), np.max(X_train), 500)\n", "x_vals = x_vals.reshape(len(x_vals), 1);\n", "poly_vals=gen_poly_terms.transform(x_vals)\n", "y_pred=poly_regression.predict(poly_vals)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEKCAYAAAAIO8L1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXl8ZFWZ97+n9j17em+aHZSGBhoEUQZeBXEUFBEFEcStcQFHZ3R0PqPCiPO64KvjjIqiwyCCIjLKIi6IMwjKOEKzCyLQC510d9ZK7Xud94/Kc6ykK0klqUol6fP9fPjQSd2699xblfOc8yy/R2mtsVgsFotlMo5WD8BisVgsixNrICwWi8VSE2sgLBaLxVITayAsFovFUhNrICwWi8VSE2sgLBaLxVITayAsFovFUhNrICwWi8VSE2sgLBaLxVITV6sHMFu6u7v1hg0bWj0Mi8ViWVJs3bp1WGvdM5v3LDkDsWHDBh5++OFWD8NisViWFEqpnbN9j3UxWSwWi6Um1kBYLBaLpSbWQFgsFoulJksuBmGxWBaOQqFAX18f2Wy21UOx1InP52Pt2rW43e55n6tpBkIpdT3wemBQa33UNMedAPweeKvW+rZmjcdiscyevr4+wuEwGzZsQCnV6uFYZkBrzcjICH19fRx44IHzPl8zXUw3AGdNd4BSygl8AfhlE8dhsVjmSDabpauryxqHJYJSiq6urobt+JpmILTW9wOjMxx2BfCfwGCzxmGxWOaHNQ5Li0Z+Xi0LUiul1gDnAt9s1RgsE9FaUyqVsG1oLRYLtDaL6V+Aj2utSzMdqJTaopR6WCn18NDQ0AIMbf+jUCgQjUYZGxsjGo1SKBRaPSSLZdHy6U9/mnvvvXfe57nvvvt4/etfD8Cdd97J5z//+Xmfs5G0MotpM3DL+HaoG/hrpVRRa3375AO11tcB1wFs3rzZLm8bjNaaRCKBw+HA6XRSKpVIJBJ0dHRY94Jl0aC1RmuNwzH3dW2xWMTlmv+095nPfGbe55jMOeecwznnnNPw886Hlu0gtNYHaq03aK03ALcBH6hlHCzNp1wuo7XG6XQC4HQ60VpTLpdbPDLL/s6OHTs48sgj+cAHPsBxxx3Hrl27uOeeezj55JM57rjjOP/880kmkwD87Gc/44gjjuAVr3gFH/rQh8zK/KqrrmLLli2ceeaZXHLJJZRKJT72sY9xwgkncPTRR/Otb30LgD179nDqqaeyadMmjjrqKB544AFKpRKXXnopRx11FBs3buQrX/kKAJdeeim33VZJuvz1r3/Nsccey8aNG3nXu95FLpcDKrJAV155JccddxwbN27kT3/607T3esMNN3D55Zeb83/oQx/i5S9/OQcddJC5FsA111xjxn7llVc28GnvS9MMhFLqB8D/AIcrpfqUUu9WSr1PKfW+Zl3TMjccDgdKKUqlirevVCqhlJrXSs1iaRTPPvssl1xyCY8++ijBYJDPfvaz3HvvvTzyyCNs3ryZL3/5y2SzWS677DJ+/vOf89vf/pbJruitW7dyxx138P3vf59///d/p62tjYceeoiHHnqIb3/722zfvp3vf//7vOY1r+Gxxx7j8ccfZ9OmTTz22GP09/fz1FNP8eSTT/LOd75zwnmz2SyXXnopP/zhD3nyyScpFotce+215vXu7m4eeeQR3v/+9/OlL31pVve9Z88efvvb3/LTn/6UT3ziEwDcc889PPfcc/zhD3/gscceY+vWrdx///1zfLIz0zQXk9b6wlkce2mzxmGZGaUU4XCYRCJhjEM4HLbuJcu+NOM7MUNSxAEHHMBJJ50EwO9//3uefvppTjnlFADy+Twnn3wyf/rTnzjooINM7v+FF17IddddZ85xzjnn4Pf7gcok+8QTT5hVeSwW47nnnuOEE07gXe96F4VCgTe+8Y1s2rSJgw46iG3btnHFFVfwute9jjPPPHPC2J599lkOPPBADjvsMADe8Y538PWvf50Pf/jDALzpTW8C4Pjjj+fHP/7xrB7LG9/4RhwOBy95yUsYGBgwY7/nnns49thjAUgmkzz33HOceuqpszp3vdhKagsAbrebjo4OyuWy2VFYLPvQggy3YDBYdXnNGWecwQ9+8IMJxzz66KOzOse//du/8ZrXvGaf4+6//37uvvtuLr74Yj72sY9xySWX8Pjjj/PLX/6Sr3/969x6661cf/31E841HV6vF6i4bYvF4rTHTvXe6utorfmHf/gHLrvsslmda65YH4LFoJTC6XRa42BZtJx00kn87ne/4/nnnwcgnU7z5z//mSOOOIJt27axY8cOAH74wx9OeY7XvOY1XHvttSZT789//jOpVIqdO3fS29vLe9/7Xt797nfzyCOPMDw8TLlc5rzzzuPqq6/mkUcemXCuI444gh07dpjxfO973+Ov/uqvmnDnfxn79ddfb+Iu/f39DA42r4zM7iAsFsuSoaenhxtuuIELL7zQBIM/+9nPcthhh/GNb3yDs846i+7ubk488cQpz/Ge97yHHTt2cNxxx6G1pqenh9tvv5377ruPa665BrfbTSgU4sYbb6S/v593vvOdJmHjc5/73IRz+Xw+/uM//oPzzz+fYrHICSecwPve17ww65lnnskzzzzDySefDEAoFOKmm26it7e3KddTS60oavPmzdo2DLJYFoZnnnmGI488stXDqItkMkkoFEJrzQc/+EEOPfRQPvKRj7R6WC2h1uemlNqqtd48m/NYF5PFYlkWfPvb32bTpk289KUvJRaLLZiffjljXUwWi2VZ8JGPfGS/3TE0C7uDsFgsFktNrIGwWCwWS02sgbBYLBZLTayBsFgsFktNrIGwWCxLhquuumpaTaPbb7+dp59+egFHtLyxBsJisSwbrIFoLNZAWCyWhtLozoT//M//zOGHH86rX/1qnn32WaBS83DCCSdwzDHHcN5555FOp3nwwQe58847+djHPsamTZt44YUXah5nqR9rICwWS8NodGfCrVu3csstt/Doo4/y4x//mIceegioqKQ+9NBDPP744xx55JH8+7//Oy9/+cs555xzuOaaa3jsscc4+OCDax5nqR9bKGexWBpCMzoTPvDAA5x77rkEAgEA03Htqaee4pOf/CRjY2Mkk8mayqyzOc5SG7uDsFgsDaFZnQlrGZdLL72Ur33tazz55JNceeWVZLPZmu+t9zhLbayBsFgsDaEZnQlPPfVUfvKTn5DJZEgkEtx1110AJBIJVq1aRaFQ4OabbzbHS+MrYarjLPVhDYTFYmkI0omwXC6Tz+cpl8vz7kx43HHH8da3vpVNmzZx3nnn8cpXvhKAq6++mpe97GWcccYZHHHEEeb4Cy64gGuuuYZjjz2WF154YcrjLPVh5b4tFsuUzEXuW9xKtjNh62iU3LcNUlssloYinQktS5+muZiUUtcrpQaVUk9N8fpFSqknxv97UCl1TLPGYrFYLJbZ08wYxA3AWdO8vh34K6310cDVwHVNHAvQ+AIei2V/wP69LC0a+Xk1zcWktb5fKbVhmtcfrPrx98DaZo0FKgU8iUQCrbUJprnd7mZe0mJZ8vh8PkZGRujq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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "train_data.plot.scatter(dim,'redshift',color='gray',alpha=0.1,label='data',ax=ax)\n", "ax.plot(x_vals,y_pred, color='red', linewidth=1.0, label='regression line')\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.bar(range(len(poly_regression.coef_)),poly_regression.coef_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### c) See how regularization works\n", "* Pack the code into a function that recieves the degree and the alpha parameter of regularization\n", "* If you have not, you need to give the alpha parameter to the regression\n", "* Use interact to play with the two values ($d \\in [2,15]$, $\\alpha \\in [0,1]$)\n", "* Do the same for LASSO regularization" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "def train_and_plot(d=10,a=0.0):\n", " gen_poly_terms = PolynomialFeatures(degree=d)\n", " X_train_with_poly = gen_poly_terms.fit_transform(X_train)\n", " poly_regression = Ridge(alpha=a)\n", " poly_regression.fit(X_train_with_poly, y_train)\n", " poly_vals=gen_poly_terms.transform(x_vals)\n", " y_pred=poly_regression.predict(poly_vals)\n", " fig, ax = plt.subplots()\n", " train_data.plot.scatter(dim,'redshift',color='gray',alpha=0.1,label='data',ax=ax)\n", " ax.plot(x_vals,y_pred, color='red', linewidth=1.0, label='regression line')\n", " plt.legend()\n", " plt.figure()\n", " plt.bar(range(len(poly_regression.coef_)),poly_regression.coef_)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "def train_and_plot_lasso(d=10,a=0.0):\n", " gen_poly_terms = PolynomialFeatures(degree=d)\n", " X_train_with_poly = gen_poly_terms.fit_transform(X_train)\n", " poly_regression = Lasso(alpha=a)\n", " poly_regression.fit(X_train_with_poly, y_train)\n", " poly_vals=gen_poly_terms.transform(x_vals)\n", " y_pred=poly_regression.predict(poly_vals)\n", " fig, ax = plt.subplots()\n", " train_data.plot.scatter(dim,'redshift',color='gray',alpha=0.1,label='data',ax=ax)\n", " ax.plot(x_vals,y_pred, color='red', linewidth=1.0, label='regression line')\n", " plt.legend()\n", " plt.figure()\n", " plt.bar(range(len(poly_regression.coef_)),poly_regression.coef_)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a02e9477f7e14ef1a4c09aa3e98962e1", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=10, description='d', max=15, min=2), FloatSlider(value=0.0, description=…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from ipywidgets import interact\n", "interact(train_and_plot_lasso,d=(2,15),a=(0.0,0.1,0.001))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.- Linear Regression... without training wheels\n", "\n", "### Objective\n", "\n", "As an exercise lets do a linear regression without training wheels:\n", "* Left wheel: $x \\in \\mathbb{R}$ --> $\\mathbf{x} \\in \\mathbb{R}^n$ variable\n", "* Right wheel: `scikit-learn` package --> just `pandas`, `numpy` and `scipy`\n", "\n", "### Theory\n", "What is a linear model?\n", "$$ y = f(\\mathbf{x};\\mathbf{w}) = \\sum_j w_j \\phi_j(\\mathbf{x}) = \\mathbf{w}^\\textrm{T} \\boldsymbol{\\phi}(\\mathbf{x}) $$\n", "\n", "Examples:\n", "* Polinomial: $\\phi_j(\\mathbf{x}) = \\|\\mathbf{x}\\|^j$\n", "* Gaussian: $\\phi_j(\\mathbf{x}) = \\exp\\left\\{\\frac{- \\|\\mathbf{x} - \\boldsymbol{\\mu}_j\\|^2}{2s^2}\\right\\}$\n", "* Sigmoidal: $\\phi_j(\\mathbf{x}) = \\sigma\\left(\\frac{\\|\\mathbf{x} - \\boldsymbol{\\mu}_j\\|}{s}\\right)= \\frac{1}{1 + \\exp\\left( \\frac{-\\|\\mathbf{x} - \\boldsymbol{\\mu}_j\\|}{s}\\right)}$" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4d765000215045329a40f4d6ba9d0715", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=0.0, description='mu', max=2.0, min=-2.0), FloatSlider(value=1.0, desc…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from ipywidgets import interact\n", "\n", "def show_gaussian(mu=0.0,s=1.0):\n", " a = np.arange(-10, 10, 0.1)\n", " plt.plot(a, np.exp(-(a-mu)**2/(2*s**2)))\n", "interact(show_gaussian,mu=(-2.0,2.0),s=(0.1,10))" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ff73187f5ec34e3faaaa8789290ef9b7", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=0.0, description='mu', max=2.0, min=-2.0), FloatSlider(value=1.0, desc…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def show_sigmoid(mu=0.0,s=1.0):\n", " a = np.arange(-10, 10, 0.1)\n", " plt.plot(a, 1./(1. + np.exp(-(a-mu)/s)))\n", "interact(show_sigmoid,mu=(-2.0,2.0),s=(0.1,10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Imagine you fix every $\\mu_j$ and $s$. \n", "\n", "How we can learn $\\mathbf{w}$ (assuming Gaussian noise $\\epsilon \\sim N(\\mu,\\sigma)$)?\n", "\n", "$$\\begin{align} Pr(Y \\mid \\mathbf{X},\\mathbf{y}) &= \\prod_i \\mathcal{N}(Y = y_i \\mid f(\\mathbf{x}_i;\\mathbf{w}),\\sigma)\\\\ &= \\prod_i \\mathcal{N}(Y = y_i \\mid \\mathbf{w}^\\textrm{T} \\boldsymbol{\\phi}(\\mathbf{x}_i),\\sigma)\\end{align} $$\n", "\n", "We want to maximize this probability\n", "\n", "$$ \\begin{align} \\ln Pr(Y \\mid \\mathbf{X},\\mathbf{y}) & = \\sum_i \\ln \\mathcal{N}(Y = y_i \\mid \\mathbf{w}^\\textrm{T} \\boldsymbol{\\phi}(\\mathbf{x}_i),\\sigma)\\\\ & \\propto \\sum_i\\left( y_i - \\mathbf{w}^\\textrm{T} \\boldsymbol{\\phi}(\\mathbf{x}_i)\\right)^2 \\end{align} $$\n", "\n", "If we compute the gradient of this\n", "$$ \\begin{align} \\nabla\\ln Pr(Y \\mid \\mathbf{X},\\mathbf{y}) & = \\sum_i\\left( y_i - \\mathbf{w}^\\textrm{T}\\boldsymbol{\\phi}(\\mathbf{x}_i)\\right)\\boldsymbol{\\phi}(\\mathbf{x}_i)^\\textrm{T} \\\\\n", "\\nabla\\ln Pr(Y \\mid \\mathbf{X},\\mathbf{y}) &= \\mathbf{0} \\\\\n", "\\sum_i y_i \\boldsymbol{\\phi}(\\mathbf{x}_i)^\\textrm{T} &= \\mathbf{w}^\\textrm{T}\\sum_i\\boldsymbol{\\phi}(\\mathbf{x}_i)\\boldsymbol{\\phi}(\\mathbf{x}_i)^\\textrm{T}\\\\\n", "\\mathbf{y}^\\textrm{T}\\boldsymbol{\\Phi} &= \\mathbf{w}^\\textrm{T}\\boldsymbol{\\Phi}\\boldsymbol{\\Phi}^\\textrm{T}\\\\\n", "\\mathbf{w} &= (\\boldsymbol{\\Phi}^\\textrm{T}\\boldsymbol{\\Phi})^{-1}\\boldsymbol{\\Phi}^\\textrm{T}\\mathbf{y}\n", "\\end{align}$$\n", "\n", "The $\\boldsymbol{\\Phi}$ is called the Design Matrix and have the form:\n", "$$\\begin{bmatrix}\n", "1 & \\phi_1(\\mathbf{x}_1) & \\phi_2(\\mathbf{x}_1) & \\ldots & \\phi_m(\\mathbf{x}_1)\\\\\n", "1 & \\phi_1(\\mathbf{x}_2) & \\phi_2(\\mathbf{x}_2) & \\ldots & \\phi_m(\\mathbf{x}_2)\\\\\n", "\\vdots & \\vdots & \\vdots & \\ddots & \\vdots\\\\\n", "1 & \\phi_1(\\mathbf{x}_n) & \\phi_2(\\mathbf{x}_n) & \\ldots & \\phi_m(\\mathbf{x}_n)\n", "\\end{bmatrix}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise\n", "### a) Use now ALL the dimensions now and select $\\mu$'s \n", "* Check if you have all the dimensions of the training and validation sets (not one like in the previous example)\n", "* Resample to n=1000 o similar for working\n", "* Select 20 points of the training sample to use a $\\mu$ values\n", "* It will be handy for later doing this in a function, recieving the number of total samples $(n,m)$" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [], "source": [ "def get_matrices(n,m):\n", " gal_sample = galaxy_feat.sample(n=n,random_state=0)\n", " train_data = gal_sample[:int(len(gal_sample)*0.5)]\n", " test_data = gal_sample[int(len(gal_sample)*0.5):]\n", " X=train_data[['u-g','g-r','r-i','i-z']]\n", " y=train_data['redshift']\n", " mu=X.sample(n=m,random_state=0)\n", " Xp=test_data[['u-g','g-r','r-i','i-z']]\n", " yp=test_data['redshift']\n", " return(X,y,mu,Xp,yp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### b) Construct your own design matrix\n", "* Choose a not so trivial kernel (i.e. Gaussian/Sigmoidal)\n", "* Do not obsess with speed... yet. Just give a solution.\n", "* If you have dissmissed the previous recommendation, use the L2-norm $\\|\\cdot\\|_2$ and remember that\n", "$$ (\\mathbf{a} - \\mathbf{b})^\\textrm{T}(\\mathbf{a} - \\mathbf{b}) = \\mathbf{a}^\\textrm{T}\\mathbf{a} + \\mathbf{b}^\\textrm{T}\\mathbf{b} - 2\\mathbf{a}^\\textrm{T}\\mathbf{b} $$ and remember to round up to 10 decimals\n", "* (Optional) Plot the 20 first rows of the matrix using `plt.imshow`" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [], "source": [ "def design_matrix(X,mu,s,func):\n", " vx = (X*X).sum(axis=1)\n", " vmu = (mu*mu).sum(axis=1)\n", " Mxmu = X.dot(mu.T)\n", " A=np.tile(vx,((len(vmu),1))).T\n", " B=np.tile(vmu,((len(vx),1)))\n", " C=Mxmu\n", " \n", " D=A + B -2*C\n", " D=np.around(D,decimals=10)\n", " N=np.sqrt(D)\n", " N=func(N,s)\n", " N=np.concatenate([np.ones((len(X),1)),N], axis=1)\n", " return N" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "gauss = lambda x,s: np.exp(-(x)**2/(2*s**2))\n", "sigmo = lambda x,s:1./(1. + np.exp(-x/s))\n", "\n", "X,y,mu,Xp,yp = get_matrices(1000,20)\n", "\n", "plt.imshow(design_matrix(X,mu,1.0,gauss)[:20])\n", "plt.colorbar()\n", "plt.figure()\n", "plt.imshow(design_matrix(X,mu,1.0,sigmo)[:20])\n", "plt.colorbar()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### c) Train and Predict\n", "* Get a design matrix\n", "* Compute $\\mathbf{w} = (\\boldsymbol{\\Phi}^\\textrm{T}\\boldsymbol{\\Phi})^{-1}\\boldsymbol{\\Phi}^\\textrm{T}\\mathbf{y}$ using `scipy.linal` package for computing the inverse. Remember that this model is not regularized, so compute the pseudo-inverse.\n", "* Get the \"predictions\" for the training data $\\mathbf{w}^\\textrm{T}\\boldsymbol{\\Phi}_\\mathbf{X}$\n", "* Get the predictions for the test/validation data $\\mathbf{w}^\\textrm{T}\\boldsymbol{\\Phi}_\\mathbf{X'}$\n", "* Do a scatter plot of the real redshifts of the training set against the 'u-g' dimension in blue\n", "* Use the same plot to show the predicted redshifts values of the training set.\n", "* Create a new figure for the test/validation data\n", "* Did you put all this in a function?" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "from scipy import linalg\n", "def train_and_predict(X,y,mu,Xp,yp,s,func):\n", " # Get the design matrix\n", " P=design_matrix(X,mu,s,func)\n", " # Get the weights\n", " w=linalg.pinv(P.T.dot(P)).dot(P.T).dot(y)\n", " # Predict \n", " pred_y = P.dot(w)\n", " Pp = design_matrix(Xp,mu,s,func)\n", " pred_yp = Pp.dot(w)\n", " return (pred_y,pred_yp)" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [], "source": [ "X,y,mu,Xp,yp = get_matrices(n,20)\n", "(pred_y,pred_yp) = train_and_predict(X,y,mu,Xp,yp,1.0,gauss)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(X['u-g'],y,c='blue',alpha=0.1)\n", "plt.scatter(X['u-g'],pred_y,c='red',alpha=0.1)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvVmMJHme5/Wx28zN7yM87oi8Kuvo7uqaqentmVlpdrWAZhBoX5kH0CKkeQEeEC88IIF44oWHlbg0oNWyPIB4Y4RW2mFZaQa2p3u7uruyrqw8IuOO8PD7svvi4Z9eEZkdlZVVlUdlln2kkIebm5ubuZt97ff/XX8pyzJycnJycl4v5Je9Azk5OTk5z55c3HNycnJeQ3Jxz8nJyXkNycU9Jycn5zUkF/ecnJyc15Bc3HNycnJeQ3Jxz8nJyXkNycU9Jycn5zUkF/ecnJyc1xD1q1aQJOkfAf8W0M2y7AeXvC4B/xD4NwEX+AdZlv36q7bbbDaz7e3tr73DOTk5Od9nfvWrX/WzLGt91XpfKe7APwb+W+CffMnrfwLcePj3t4D/4eHjE9ne3uaDDz54io/PycnJyVkgSdL+06z3lW6ZLMv+Ghg+YZW/D/yTTPBzoCpJ0srT7WZOTk5OzvPgWfjc14DDC8+PHi7LycnJyXlJPAtxly5ZdmmrSUmS/kySpA8kSfqg1+s9g4/OycnJybmMZyHuR8DGhefrwMllK2ZZ9udZlr2fZdn7rdZXxgNycnJycr4hz0Lc/wL49yTBT4FJlmWnz2C7OTk5OTnfkKdJhfzfgL8DNCVJOgL+C0ADyLLsfwT+KSIN8j4iFfLff147m5OTk5PzdHyluGdZ9qdf8XoG/IfPbI9ycnJycr41eYVqTk5OzmvI0xQx5bzieB70euD7YJrQaoFlvey9enF8348/5/tJbrm/5nge7O9DkoBti8f9fbH8RXz2wQHcvSseX8RnXrYPL+v4c3JeJrm4v+b0emAY4k+Szv9/3mUG3xVRfVnHn5PzssndMi+Ql+Ee8H0hrhfRdXCc5/u5F0UVzh97PdjcfL6ffZGXdfw5OS+b3HJ/QbwsS9Y0IQwfXRaGYvnzxPeFiF5E18XyF8nLOv6cnJdNbrm/IL7Mkj08FELzvKz5VkvcRECIaxhCEMDW1rP7jMtYiOriOOESUX0BQ5mXdfw5OS+b3HJ/QVxmySYJ7Ow8X2vesoSQKYpwRSiKeP683UGtlhDRIIAsO///i64Tz3Ao86TA7cs6/pycl01uub8gLrNkz86gXH7+fmnLerF+7sVnbm2JY3EccfyPiOozcsov7hGGIe4RYSieX/ysl3H8OTkvm1zcXxCXuQdmM7h+/dH1XmSw73l7RZ4oqs8o0vldCdzm5HzXyN0yL4jL3ANXr4rHi7yoYN9LT1V8RpHO70rgNifnu0Zuub9AHrdkh0O4dQvSFEolKBZBll9MsO9JFm+r9QJSNp9RpPOpArc5Od9Dcsv9JbEIAmaZEPmdHfF8aenFBPvGYyHgOztwdCT2R9fF8hdi0T+jSOdXBm5zcr6n5Jb7S+LwEPp9Ya1XKhBFMJ+LZfX68/1sz4PBQOipbYvPPjoSNxbHEaOIF+LDfgaRzq8M3ObkfE/Jxf0lcXIihHXhL9Z18fzkBN544+m3802Cor0etNviRhJFoGnCldHpQKNxuQ/7u1zRmWfD5OT8Nrlb5hXmmwZFfV+MFtbWhPXuuuLG0GhAtZpXdObkvA7k4v6SWF0V1nAYCl9xGIrnq6tPv41v2hTrskSVKDq3/HMfdk7Oq08u7s+Ab9LadmMDmk1hbTuOeGw2xfKn5ZumAbZaMJnA7i7EMaiq2GfXFa/nFZ05Oa8+uc/9W/I0FZKXYVlw8+a3Szn8pmmAlgWFgniMY/H+K1dEGuYicJr7sHNyXm1ycf+WfJsKyW8bCPy2qeLb28KdsyDLvtuB05ycnKcnd8t8S15mheQiDTCK4N49IfTyU/6ieSvcnJzXm9xy/5Y8yTXybXq3fJ33pqkQ+YX1/jRuobwVbk7O601uuX9Lviy7pFj85pWeXyfF8ZtmzOStcHNyXm9yy/1b8mUVkk/ri7/MQv86fvxv01xx4fNf7MNi4pBn0UvmZUwpmJOTc05uuT8DFiL5xhvi0bKezhf/ZRb6ePz0fvxv6zt/Ht0hX3rHyZycnFzcnzWLnPeTE9jbe1TQHhfdL3OpLIqbLvJlgv1ti46+qVvnRW8zJyfn65G7Zb4Fj7seikXodoWQra8Lcd/dFSmHivLbAcsvc6nYtlh38fxJwc6napz1BB/JM5oz4xGexzZzcnK+Hrm4f0MuK166dQuWl8995FeuiGZcR0diYo7HRffLMm2q1XPf+9N0OvwiX/4L5/kFEYcnVlld3AfPE+2Hp1NR5OR538xPvthmmort+b5I0XzSaCL30efkPFueStwlSfpj4B8CCvA/Z1n2Xz/2+ibwvwDVh+v8Z1mW/dNnvK/fKS4LeqapmDqvUhHLLEtY7Y5zebHSk9IRHy9wWrh7Lo4S5vMLYlj0sLqXiLgsPzE6u9iHhbhKkhhlVKtPl1J5Ga0W3Lkjuk7atmhv4DiivcFlN4zFjTJNxTHNZqLP/LvvPv/2xzk5rytf6XOXJEkB/jvgT4C3gT+VJOntx1b7z4H/I8uy94B/B/jvn/WOfte4LGBaKglhusiTgptPm444HMLPfy4KlcZjIZp/9Vdw/74YGRwewoNf9PDSSxzdJyd4ic7xsRDM42PwkvPo7GIfJhNIHY/S+IAr0V1qswPMzPtGfnILj/L4gFr/LvLRAWrksbIijvEXv/jt/ju9nhD2fl88Vqviu7h1Kw/C5uR8U57Gcv8JcD/LsgcAkiT978DfBz67sE4GlB/+XwFOnuVOfhdZuB5cFx48EKIuSUIsJxPxfDYThvO77375dr6qBYHnCZFTFCiXRTXq7dtCmyVJNBqLIhh3fE5sm2vVC2/WdbwAjvdC9KJBoSD2af9eSLVhUrzg/mjaHqVgH0iR53OkvRkFdphuvwub9fOd+SrfyUMzPEsMVq/bSHFIMN3n4HgLtWQhy+fZM4sbme8Li13Xz2+Ytn0+W9S37XOTu3xyvo88jbivAYcXnh8Bf+uxdf5L4C8lSfqPARv4157J3n2HabWE6H72mXDD2LbwVU+nojtksXg+L2q3K8TkaQTlcSHyfWHN6jqcnQm3zYMHwl2RZULgdR3SqsnRbohpGV+8t26HDIxVjDhAAyYTnfufhcRuwFDb4tpDV8nWFlhOjyhKMad9Ml0nK1eJJg7F3Vvww5+KnVv47mVZDBc++0wEEzY2zg9u4a/SDY6OIU0Npn0oVnpI5U0s67fz9k1T3HSqD29Mvi++szAUN7VvI8bftLFbTs6rztOIu3TJsuyx538K/OMsy/4bSZJ+H/hfJUn6QZZl6SMbkqQ/A/4MYPM1aDt4cCBEKYqEAF27JoKncQxvvXW+XhA8nQV6mRDt7Aif9eGhWGZZQltPTh7t/e4WWgzv7JNcgUJBJ3JDTnoBbnOLeh380x4PPnaQTBPzjS3GgUW3K6bW6/WgZft0DueEqo6q6cQRhKpNTRlz9GGPMIAsMZCyFKVzjF4yqJYrWAufyiKV58EDvFAm6poEaQPJsjju6qQ7DnoI770nVruYPdNqieNcuKZOdjz0aY+tio88MDm406K1aT0aY3iC4F+8QQ4G4qbxQqYNzMn5DvE04n4EXOwyvs5vu13+A+CPAbIs+xtJkkygCXQvrpRl2Z8Dfw7w/vvvP36DeGVYiLDrwo0bws2wyEtXFCEqi8yTyUSI1qL74pNE6bIgbbksbiIXuzeWy+c3lSx7OAfqwGLlR1voZg/Jc9BNk7S1xXxsUVSgb24yXRajjDASIwrDENtRFLCqJsvFGeOs+oWfO3YjPhuUMHyfUhE6Mxt9cMzqskEq63SGGcsVF8swxN0nTUHTGI9lSoUUfXbEZ6frSLGMVjbRdSG2piluUKYpvkyr1+PHts/tXZPTWZGK16XUNMh0m1YjJDra5+POFps3ra+0vh+/QR4eipurrp+vm6dl5nwfeJoipl8CNyRJuiJJko4ImP7FY+scAH8PQJKktwATeK1KVi5OyPHhh0LHGg0h5FkmRPzjj0WAM45F4NJxxHLfF3+O8+RKzcuCtO228Ee320Lgp1Oo1eD9988n+shcj9LogOLokP19OGQDp7GJVra+yJmfToXYua4Qx1pNzJ06mz0U2VYLy5JZKTm0lzKyMMSbBphLJTBN7h6YaITYSsDE0dB00KWIkWuKnT45EYparZLsHWJ09gnPhmxL+/zwjQB7S+RBapr4joJAZPgsSllrazbv/TDhyvQWtWqKVTFYXpEwywZObKCMek9VFPV4AVW5LG4kg8H5Onn3y5zvA19puWdZFkuS9B8B/wyR5viPsiz7VJKk/wr4IMuyvwD+U+B/kiTpP0G4bP5BlmWvrGX+OJdZg2Eo3CIffigEduETBxiNhE9cloXAqKqwlO/dE+8fjeDHPz63JBduhJMTIX7Ly+evKYoYHRipR8HrYUo+lS0Tv9hi5Fs0bQ/1eJ/ANkhMG1sLiY/3OfW3qK9ZX+TMj0ZCUONYuGKyTBRYjcfiM8Zji3rjXRrHt5hMxmhGiaCyhKVLREstgjkEk32quozvhhBKaGnIvLB2PmxJEuj3UVaXiAZDpONjSuld5s0/odmESShuJuOxiEcM7vRoVAxh+QNW1WB1NSUx5yjL55Hhma9TVp0vvix50MPyfdz0t/0zjxdQ1evCVTabnU9nGATiO7iYWpoHWXNeN6SXpcHvv/9+9sEHH7yUz/66HBwI3UpTYQHevy8s8nJZiMXenrBGazX4oz+C01Mh2IWCEJFCQbwvSYRffjIRk1Mv3NSLG0eSiG35/nlmjCzDGxse/t19dC1DD2bEkxlRJNP+19/FSuYcHya4sUG//zDjJAtwfAWvtclPfypE62Iueb8vfNySJEYflYoQvlYL1OkQ7t2hJk/pBmWctZuorbo4pqHHVf0Q9WAHuVJmYraRNYXlagCyjDnvUW0okKX0P+6IDKI4Al0lUmzMd65yxAZG1WK77cEvf4Hjyuhlk7TWwKhY2OMjxscz5DffQtMeupweBLSWFeytFsrRPplhEGY6Shqy1gge8c8sfqtFUdZgII43CMR3X60+Wkl8WX1BTs53GUmSfpVl2ftftV5eofoULCosj4/PM1TCUFjwIJ6/9ZZoOeC65wG8UkmI52Ag3r+Y1q5cftStcNHPvrIisnDmc5GIUiqBd9ijUcsIjrp4mYFRrdLWHKy7t6DRwE8aFIvC6h+NwA10lMj5Yh8XRU5bco9hx2fSNXlzq0WsWWjaucC5A4920KVbWMZc3aQ4nRB+dgup2aCmV5knLU6Lb6Df3KDk9/AHPgNH5950i6tXYb3/gE5YoS6NQIJwFjAeZ9SaUPtRhdF+D0lOkVli704X/1hjMpOp1FLe2DrCS9f57E6JcN/h9H5AbUnn7eshb18LODO2iDs9JN0gwiCMYG3NEI7FC9HRRVGW74uRlCwLS357W/xfLIoCK9c9/30uJvrkQdac14Vc3J8C0xQiaRgiSLoQ0p0dIYqSdJ76uMh91zThjgkCIbimeZ4Bs7b2aFDvohvBcUTbgkUQ9vgYsltjxrM9Nls+7VUbq1bDy2xOD8ZER0McZ4ZcTLFrBmatgR/KHJ6YaJpwgTh9j5PePltvGFCwCb2Qan+ffmGLwopQNk2D+LCHum5gYRDOPKxRn0ZbYej4zL2EVXmfw84WUsEiLG9y7wQSCZIJDD+FCVdZT3tM9iaozQpKEWomhLJB4KfEJyfYRR/z5CMGUhN3mmJORrhZi098g9m/6nDoNChee5crrTl+Z0DnI4flP7DZrPUYnY1xrQamJb5DywKyR6Oji6KsDz8870pZr4vl47G4caapGK3EsXDZrK+L3ycPsua8TuTi/hS0Wuf57L4vRFuSzq28yUQIepadZ6+88865/3c4PPfXL4RmMhFiEwSP+tmDQIjSaCSWT8886rMBbmeGu1zH78RUp6d0wiZeoCFPRrjYPNizabYSitIuJ2GTE/smZiqEq5H1mMgG/+8vDN57D8pNA38O7n4PpbhJuSxGClHP535iYxVgtTBkLOn0Zhrp3EVtG6y0QRv18Jc2+c1vxI3K8oa0endQ5lO0DYNPZhYFfYvrVRlrcEgsyQRaAe30ED+2mM0Nap8/wFhLmVkbeCWN9KCL0a4y7GlI15bw+3NUc0w9GzDT2+yMKry/EWKlxxD1QNJhaEK9jhfIDCYm7t1HfeeNBmy2PJRhD+nEJzNMHL9FmlrouhD1xShsUQyWB1lzXidycX+ML6tmvHr1vEw+y4T7pPsw0bNYFBbh7dtCwBc1PW++KR5v3Dj3q+u6EPZFt0hdh4M7Hif7PTaaPubM5MGsRXtb5HWXgh5Jq43p9AinHqWqwvFHAzL3EGO5TVhdosc2eEPGPZ+9mcVJUMB618JWhEuoFPkEqY2iCBGv1WB/oiNNBtz7F7BUFsHJdhkmvZC4kLKzs0+hKLPeVBgW62QF6E101Mj5Iggbd4esjH5OYhWJag2S1CU5PCF5Yw3TH4KiINUb6Gdj9g8iCm2DxulHeAE4kwxnOOYoXqFaNKipCWO5xJXBLbI0JbzvEFoWTrePnxm8cx2sNBW+litXII7xbu9yGjWR37z52ymSeKR7+yhFg6xgQxQS7exjrG/hehZBcO6O2dkRrrKbN1/WWZeT8+zJxf0CT6pm3NgQwl6rCZGPYyEOjiOCqVtb5xWqYSgCqQvxeLwt7/TM47rRozLwyTK4nrl09QonE5t2PWTS2acQLOE/6FN98Ati2cBeskmGZ8jjCXsHZYrNOvbQx0kSlCUYFNZ48JnHj9YGvCXvsrNn4kotfNvigx2TQTdENg1cV0wqEo8mlOMBbrHEJLLJwhAncmnYAdLpjOMzFek04a3Mo+/5eImHpMgUSibzuQgSa4M7uGqRmCKNMkyCImEJGnrC/Hf/CK1ziH68Q9SboOgqlXJGOokZtzYID84wqjG2WaUa9DDvnLAal/DlZQrrdWYP+pRrIbpWotb7lP4/D2m2Vaxy+Yv+yePAQi/IqLMeUt9HMUykUotez6JFj5MgQ5r30NOAUDaIwhLjOz2CpU10/bw+oVwWx5MHU3NeJ14LcX9WvUO+anq7hUDHsRDpalVkxkSRyHLJMuF373Tgl78UQdbFvlxsy7u7s49ZFUU68uEelu+xtlHCTSWuXTOQAg/3k1/gjDUio0S1lKBEM5JMopO00LIpdhYQmS1OOhJ4Q6K4wPbwMxqFgDklCOdIhy6fe1tYVgsj3EfRoHumU2JK4+hjSmtl6q0ertVg6FrEToVguI9iWsiVjLg34tcny9SWDQqzDlGpwZG/xfKmMKDVcErRVqm5t+DMxTYLNLc2mfY87h5aaNobpNUNpO7/yZraITwtMBvLyOEMS09hsE+rEBEYRaY0MdI5xtl9EreGLXskU5mq3Gdzu4aqaUx7LtZgJPwoSULcl7HcHeL33icrVSAKMc/2mdW3sBizqg4ZxyYuBQgjGskZg0EdY2MTSRKuL0URrrKTk0e7KOTkvOq88uL+LHuHfNUkEwuBvphRsbcnxH15WQjF8bFIvdM0IRY7O+dTzdk21J0eqW4QSQa6BFKWkhVs0v4Qc3UNgJXinD4T7He2GfYLJKNTkkxHmZwQRzpBocnfzDaoZhFG74Bk7qDPQvwoY/fEJChVaVX6HJw28WY9psubrKxsobk9ltQB87sDGu0SZ2mLt0sxcv+Is2CdsWdSzwLC9RvMVImp5lGJB2iSTxqkzDa3ME3R/KtWg433IfrlB3iFBlK7Qqvk4x1+gLb5YzoI15OewPWqxTxrE6Qq7fIxyZ0Tum6FihawYvY5jg2shsUSIVkGt/cClPUSN8NPqG9YmM11MtchPu7AWw0R3V5awuweExXrqIM+iW6AaYk4gNMDHCxLxmqJqrDTjo6WhWzjcJCJ82Y+f5j+qQr31V/91W+3ysnJeVV55cX960wm/VV82eQZTwq0LVINbVuIeqkkRP7gAK5fF1b+3p4Q/9EICo6Pr9h404cpkbpB7CdEvk+lIG4G/b+ZMd2V6RxpWHJAK5NZ185Ijg/w9TXUH21Sd0ycucWJu0JrsEuU6ahLTU7DOsMzE+00JJPn2DWVmQKBbKG2N5lOoDtXqRv3aQe3KRwkqJlC8WTCyLgBjTKRG2JZBkPVIltaxy8E1EoR81GPquWjRCY//sMWwRDiNvhmhlaCaJbRbEH9OkwsEcytTHvEtSb+ZE59/xNm2RxJM1gxR5QaOlG7zoam4R8cMHdSlooOb5UVwqV3KMcWOiGZYRDPPZR2E+KHPRc0DVOKeTA1CU50rOkQ48oasqSzZjvAw2qxMARNI5hFFGKPtuURz+8y8k3sVotxYHF4KM6VRXrqolVOLvA5rzKvvLg/yyndvmzyjCdVMy46N4ah+JNloT1xLLYxnYrnxaJ4fT41qRdDIskQfdyNBoXJLnbN4ugo4+woxO3K9Nwm8XyOTR+3otM1VwmUGaauUrVCbNmH3g5Df8xwlBFuv83oMEbKzmhaOsdOlWDiYNeWvyhiOjuDHzLmvbURimoSn+4SlnXSVKboR5gDldvyG1yb7bFVTtH1EnFcQpoFWEX4wdsasmGjpCH12T6UA/i33xd3OGfCXmozqr1PMogJbCHu1v0xd3oub3u3CAkYGOvoYZ+S6nJoXUcdRhj+EfLpCWYY05+X0VKf8OM7ODcNJs2bWMvvoCc7tFdk+Fz0P/ZihbG5THN8xtyR8HopA73Om2/LWFUTMB+ZJURXIJ5HaI0aSy2b3m9C5Ok+ibXF9lsW5bL4nVz3XOTznPecV5lXXty/zNqGr19eftl8pEtL59WMl7l9rl0TFatZJiy+ND0vYNI0IRbFoti+poFjtVhO94kSWLuqQ1NU1pwc+GRHn8DYoOvYFJNTtNN9TsImWk2juDrGj3QC1aDx6S3KzJgZS8RrWyTTUzbOPoBsnU68RDZNWIse4DWbfB62KPTOK2B7Rw7v/V2JQhqhWWt05y66P2Z5RaV6c5nd3xwy0NqUrDnX7RmDgcPSWw3kaonexMAZeFwpD/EmUzjsMK5eIaj8CCpwlIKdzjHqBTRNdHds7gyoKxOC9auYZ7tsh4e4akRnbGH5d0lVjbmbkU1TipKH1azjak18X+HMXKNkVIgHAW9vGFj44odstRiPdDSpj2alGPUMWipBuovfacKbD9NeXBeaTdB1auEe3alJUl3GMCWWNkQr4vK8x/i0RbLbo6j6lKom+koLJ/r6ZnveNz7nu8TTNA77TrJo5DUeC7fHeCwENgjO884Xfu7F5BBPM6vPwq/+xhvicT5/tBHV402rfvQjId6+fz6jkqaJYOrjRUpRBHrFYlzZYjRVePCJw/F+hIeJ19jCXb6GM4lR3Sk9fY00jNmef0JzcIf93Zjj0pt4hSZRf8QsK3Hi15GzBENNkLpdmqefUB7ts+w+oBKeAfIjE2LYNlRXbKQ0ZbXk0Ny0GUs1gtoqs8oWphzz9lspmz+oErTWsX/nLd78k23U+ZC9Yx0p8NiQjxkPE37xWYVPTpdI7z3A8gaMhymZMyeZzpmv3qRchslOjw/3K9S9I8LTHq5WQ9FkpJNjDG/IUsmltmqRDIYkmk6sW6SKQmoWKNcVkrM+q3/8LrWGIqzxJBG+LkkiPjhBsXSS7RuQJmS2jVq08OXCeQT7wjRXlhKx9JNtZNvCdYVR3xnoOMdjop19nGnC4dCmoCeke/tYfL0poLzzHmhf+5y7eD7fvfvbM1Xl5HwTXknL/WIQtdE47zQ4n4uLajo9rxhdCDJ8s6H20wRZr1wR++D7Iv/dtkXBk+OIHPfJROzbIpvmwanF9s1NjAokewc86GtMfIPpgyNO50VmY5+Sv8u+fA2puIUVDJE9lbbhooYe6XCCXKuhOgPmgYHqTPh8ts6GesqKcswoa/OJ+h6FCFbDfdTVJaancwqJz1LFYW9Uxu1OiadTpFKRpWtNIs2mvz+ltaKxqR7jOz5rmFCqMQNKZkhyNuTw2KOVPKDaGxPoZc5u3qTd7aD3OzQNDWf9bSLF4uQE1u0x09IMlxWk8QBzcIy/fxc/sVkqOCSujh/PkQBJlZgUtyhHHpIkvssog1lkUbhah81NvKHH4E6PaKLgT89IVhsUqlXiK9dFMDXI0IPzBmOPmNGrq1iawlodRqce9/96SHU4hfmU4/gmmmSwvQ0T30C2YY0e8PQny7eJ/eQTiuQ8D15JcX/8QlpMSN3piMKgRcOtnZ3zi8MwxDW+uNC+zhB6b+/c3dJoiItvPBZW1mAgPv/3f/98/SA4n0Go1zu36G1bPG5vn886lLk+g5mNrICtBMz9Av5ggKGkHAYtqu4JS+oIRbJRJz7Gap3jznWUkxhFjSkVMhwStkt9Qk9iL9lA1wps1+d8Pl3FGKS0T/8VtXKJJEw4Gc5Zz47wtlooQUTijQnuj7DWa8Qnp5zdT1EbFfSChpdEECcc9dYpWXukn36Kftajr9XxUgupYrFxfJ95vUz4/t8mlnSC/oTs5z+nHSss7fyMbTUlsks47hwXE8VaIghl5MjBXF2iVrSI5y5Rt4++tswgW2cc1ojGDnGlhfvPevydf3cTz4M7BxZOuklS3US+XsWZJFwtGhQNiEIInZC1TfNytXRd8btnOg/+ugeeRLMWoyRTqv6v8aIt3NEqhmGxtq1jpV8vaLMwAhbNyqZTUZk8m4nYg2GIlMtFl86L59qzTArIyVnwSor7Zdb0bHYuwIviouFQCPfGhnjuOOfD3aexlDxPaILnnQ+1P/9crH/z5qPtfxefC49a9uOxeE8QiP2QZWHFDwYgBx7eLwZI/iFZsUTZgLeuRxx153SdIuUlE2/QRPc+p234RBMJv9Gi8ZNr6J/fQppNyFyDmSQyR3yryJI2g9QlG0+5sWKzHd3F6u7gTOrIfojtdSkpc6LDiFY1INVMzoJ3WFci5tMEx5GRuh1kVaV/1ma5MKMRf473zu+RDMYo4yEFaU5fu0agFZDHfcxuTHbVoHvgwVGfqDOkdfIhk8SiN8nzAAAgAElEQVSjUUtQzRFa1yGLMywtAsXi1H6TpThAKlexmj5yv4e8+zHz0nWiIGRitrG3t8Dz+egj0Uum3xcjMgsPFB/17AGTqITyZptMVlCigCN/C+vDh62E01QksC86v5VKjHYmxBMHZegwm80w1QS5ZFOOh0hhxmp7DUuRQf96vQhMUwh6tytGaN2uMDYeJvYgSeetJr6Y2tD68vP5SUkBuW8/52l4JcX9siDqbCZcHiAspN1dcSGlqbDkQUx4cVknRsMQF8qHH55b14vHSkW4XYbD80k3qtVzy7tUEsuGQyFAIPbN9+Ev/xI++UTE9Go1EXg9OYHf+R1oFDyGH+3TnVXYMkO01Ge0N6Y932cju8uBW8RYWWV0ZQW9Xyb0hhQs0Hr3kAbQiyrU3B5KOEVyLHbSqxSkOcvhIeV4SLS0ylvKjPburxiMUrqF61izLi1rhpPo6FHMtLKJWS6hd48ZKEvMhjHjYYLerlIoAKdzTqQ6v/uORzqdEUYSodlm7BikszH1YIQy7RMWCtSOPmN8z+WoZ3Bl9Dm6qZBWNzjr9Sje/pyg0sRWfPT1NtbeGdVSij900fpHRF6Cur5MtyvjJDbl1TKbVwyi5Yh5atPtit93Y0P0tdc7+2SWAW9fJ+ucseLe48S4hrS9RaFskfZ8Tnohq/0PsfypGDpVq2CazN0V5lkB1QzxaeIkIYXTIzynSXl5iXrYgaBx3o/5KVlMFago4ia06Eyp60LM19aEKM9m5yO6hVW+OJ/T9Pw8k2Wx3uO8CBdOfvN4PXglxf2ylMVFO1cQJ2KtJsQ5jsUFt7b2aOe/i5bSIk3QdYV1JcsiRdpxxLbX188vzk5H/JXL4ibSaAjRPj4WryuKCNaNRqI51eICffBAWOzTKfzsZ/Bu4ZB2eMzqaETghzQ3MrLDDsmsQ7qyRjs8RTm7TcO4h6vXkZsGiR8jxwGRF+N1XczRgJHSAKuA5IQspac0/V3K8QBPj9nSbjM7G1L3A+phh9hNmM1LFC2Z1DTpKBXS3pjm8B5h2MbzitQUHT8tk0kGiucgew5HgzZv1M64V2lzvBtgZR5rcpee3ySZhmRmHeN0jOJ63DQdGuoZWSITD6cEJ30mvopZiEmSlLN9j1LBpLn/S87SJv5qG+N6CTWNcUKduL7G6pZBqkH6yUf01LcI7vs0m7Dpg5kMSEoVsjQlPTnF3e1w/ywhXT6h3GqizHronV2MD3+N5zlYa7a4y8/n0GgQHwRUCjWyszP0WGHo6Bw5Ncww5IcrEZby5UnuTxK9RbOy8VgYFotc+U5HvKdYFOfszo6Iwywvn4t7qyXaEPf74ry8kMGJ571YF07u/399eCXF/bKUxXffFUPhxXyZhYIYCl+5cn5SBsF5QdJFy3/Rbz1JxOuLG8Z0KrYxHAohPz4WzwsFceHt7Yn/FxfcgtHovMGYooj3p+n5RY7noXdu48QedqtAoOskvQNq8pi+0SQ165TerzM/nVE9uMVqG257W5wlTTJJpTB9wKa/z6dcYe6qLCk+P4h/TRxlLEXHRKZNLe7hH86wx2fMU4soMAnkAqWgS5YaBNY6JdWndHIP2VYIZROQWIo7zB2FgDpxtUUh9pkfTpC3LZTrV2n1foM27hLKGlY8x65A37Rw7p2QzkOK6pDS6V2ypTZHThNFAjsaU5oNGLducFR8i1bvIzYnpzTLEdN5AWc8JbXK6NUKsTNBvn1KpFcYqGv49QLt6R2KowmfnzW5Xh1QXbdJU4nxnkNzvQByRuHgLsPeiOz6TbSuTPPeLkmxAFdq4sufTqHVQp/3mXZ8AkdiNFfQlZBV20F54zrTygalVQXrS4T9y0QPTwR6vfs+M8fkyrIojpJlsf5kItpRLC2JUZzniSZz16+fdwld9LaJY/GeK1fEOfm4aD/Luo7LyP3/rw+vpLjDhV4tjy1bCH6rJQR4UVR0cbYdeNTyn82EtWSawsgD8WhZ57qwmLCqXBbbOT0V65yciPc1Guc9xm/fFvtgGHwxO5LniRuDpsGG3KMYxpS0DCWZsGKHeL0J6rhHs5yhV2ookU+jmpGeGpxOLE77Eo47pep3SHyHsWKTNJfZmN4ncGM0KcEqSpihildoIk1H+NOESgKKDFIWEKQmluyR+AFJ4LMy+xy1HOMvb1BLU6apxUDZoDTvMprKHCQ3kIpF3jSPQZaJvJAkjilPTqHawEwn+G6KbY6paiGeG6Gd3mWumUgDH6ZnpEmIacm4UoFd84cU5iPK/T0mUgFtNEI1xhS1GFe3ae7+ilFUIJ10UK0i7VYXSMn8EK1lEgQhQ9ci+/UDwihDKlYw5w4gEwcRTpCQdBw20gnz4hrBJCD6eERYXUIvllHvz3FnKfLmMtGxQ9k9gkKR8kqLQsXHIKDPFs1LLPTHRW8xK9fhXY/SaJ/GisHSFZv9n4Voo330xhbDufVwCkNxzlSrQpgX7Rvu3Hk0EL+9/ehE6Fn226L9Taqovw7P++aR8+J4ZcX9Mh4X/MUwemHdXxxaXrT8CwXhW5/PH+ai6+KxUhGW9ngsrPFaTQj4gwfnkzz3emJqvUJBWOiNgkey18M79SkbJvePWzTWLWYzsd0sg9W6jxIaKN1DPNlm/QcW6jDBODyjUHJR5gGpquJ6MEkS5EGX8ukY17GZOVNMAmLNpJXeplTRwB9ipD7L833miYnsdokkFSNxSTINI3Vwim20TMbzi8gkFMwQKZSZRRb+NENbXyaxGoT3DvB9heHqBnKlzJlfgdIay/MHFO9+CLbBA+Mdiu6MZm+X0GjgzGWSQpNCekwSxSQJYJUh8vDchIIa4m1ex7MbrHR+iVQq4Wc6SRpQMkKSap3GyS1GM4l1b4ahJoSThNH0jBsPfsX4zT9Eq6+iqgZTc5PayUcUD+4RbL9JZ2agGipq4FOopsTHIbE8ZUSNcm3OIJAwig1Cz0Gee3itG0SZzsgsY2xVKPZ2iPf6lForZMtLDHyLwR1xXiTJ+chLlsVvfHwsLPHRSFjh/mGPctNgMDdYLsLWDYPeEZQmh9Rsk8T1mXom5nqLRsOiUBAir+uPTtr9tKL9ZVXUXzNE8KVcth+Tifi7ezf3wb9KvFbi/jiXWfeXvbYYcpdKwvcehudzikqSmMy61zufR/XsDFaqHvq0xzJjsr88pZB1mQ5CjtMMudSgnUTULZfCqcT+5C0Mltl8p8WNH1lEOybeOAB7GUsOiUdTTCXBa24idfeRA1BLJuNJAa1WZvhRR0wMjQVZip2OUYOAOLLpmL/Dmt5Dmc3xE42pVGI1O0aaz0izlClVJAk8uYgkwUCtYhoJXraCrSrMSk2GYQl3vEk96ZDFEV5W4lC7TjzUMa41MOsyf327RVvexursUJFdLKdLEiTYziklW2KeXCX2EgpaSqDpeGoRvSQRKBLdwMY7DbjW/79ouXuoSy1sp8us0MQNFZr7H6Of7mGHCamq4ettomKJ6nyGlnqok/sMaxUUyUOrtsnCkERW0TQZdAk/yIgHc8pKSNi+yjRVsaM7HO84zGcJ+mFKra3hrL1BUt5mvNPHGj+gGPZI2yt0lm+wvKlBp8s4sQgVi2JRCFkUidHXQuiLxfNU18NDyE59FF2kskqSCNrjJmj7O6y89yYRNrIeUi3sU9zcIjOFKs7nYhS44GlF+zKX5LP0hz++H5OJcD9euZL74F81Xmtxf1ouXjD1+nm2TLF4bqUsTvrBAMqah3a6T5alXNP3iG7fphua6Bo0vX3SDvjXfoiRuFypBNTNO1T/bgl3NGS2V+Bs12c7HqJrOq3rNdK+i4xM4doKhEPS8YS030NVqgwLmwx7MWQZipEgSxFKHFFjQBB4mP1bVKURmVXgOKzTdPYYxwZ6FqFIGXbmMZEqzLICxdTBLbbYW/oRs8YVaukQP1Go1mMa82My12eeFUnWNyiFI9LWMqbfYfd2g8G+wh83hyjlIkrRgP6haAdQ1JG1FMkIAZdRUkHLEmw7I9IKVLwzotmImXkdFY/QqiPPZhSzGVoi4U4cjP4D5pGFpKrISoqdjAlTBReVMCuijzoUlLuozQr6v7zHJEhIq1ewZylm6FAYdnCHIZFSZ/3fUDk8adI9vovvyMTNVSQj4+5ZgV2uc31whDk+RVZjjpIlWn6KUgj56zsbyKrM3Oux8Qei3zsIgbNtETRfWRHLgkAYBPfuQXVuYg5D7JrB0REsVz1Werdwo5DwuI/arvP+H1rcvgXBUQ/16iauK8T9pz+9/Bz8KtF+ktHyLK8FxxHifuXKeS1J7oN/dfheiftXZTs83s73izcd9LB8n60QJruw3Dlh6mrUaylVr8tZtY4/0ajNPkeyTYp6SnG+S7xxleZagdJgip72kf2Ag88lqpUSxZpG0esTHvlwckiwukZ91UI/+IxMKxAYbdz7Psrex7TDEWdSmzCLKcUhOgESGQUcjGyMLoVM0goVv4sbWyhZRKLIuHKJuVSmlvWoeWcEuk1YbhG1VlnX+/gnfRJXw8oiFBXCa9fwpRWiqUfbOSEZDPGiFuks4s3hbxgenVIuJNSLAYoqESgGxSyiW9ggsVepu59BGhKYFdThGHXYx4jmeKUqqV4kiiZ4pSal2X08s8o8KND0d8Es4OpN7MkxkqmSBhLl4JDIXCVRbYJQxh0HeKpG1o9QLJWaEeFmNsnxCdXUwygYhLUG/m8+x9mDob4CpRlzqck8KnI0LbHV+SsmS1XCWplatIM13iPuKThKGfPqlBu/W+HOscbnv2lhvQf1pIcU+qSYKGGL7W2L4VCcEvfvi4wXtdEiHu7Tc6FZS5je2qPmTNn62zew7ATCY6iuYf7EZPcTh95AWOw//akwJC7yPEX763BxP+7ezX3wryrfG3H/RileF98ky1jdPbZkSKo+a4WI6PZ96PfRojI/MF3M4AGJWgGrBsEML9OIfQfbH9D89P9BSyu8HSRIm79HkN1gfk8h64/Yt37IajxD++D/g/kYJU5JpwFZaJClCaYS0Y5OKUQjFEJUYiQUPKVAwXcoJn00ZUyUKpwo16glPSZSlSAziGOFyFjBMlOsLGRr9CvW5p+RVescKG+gyjp3Ji2wbMLREnWGTHcnkM2wnS5ydI+u+fdItGVKzg6m0yVKioxDEzu0kBSN6emEbAYNVSFc2kRxJsROzDyroIcyBStgQ+ngB5AMJozKK5SMmFohQps6nOqbVOMesgZ6OCOWdLQkIDZLaGTMy8t4rkXaHWDjYCg6jEKkqslo9Qco4RGr6RGBETOYa4x3z8gUl7PCNc60azCfs9L9NVniMlm+ipk5yNMxSQYj36RVnmNGJxSnLu3mOl7/Dr1/CfXfqxAoNt4k5Hp2B+OgwJYGmW4yMFvouoVetFCrW/Q+7mGf3GVoz9l8y8CaD8BqCSUcDqk1m9T+wPw6HQ2+EzzvAG7O8+N7I+5PneJ10bxf9BZIUzFDtudRSWC8cwKbWxjNIsn9TymOj6BSQA8d0qNdsmKZsL2JufcZau8+WhZwLFfoBlWkLCNzY0ZZjUSxqI+6SDJIu58zrhgoWhu9e490MEcJK+ipj69qjOMSFmMMfAo4+EoVw5SQ44wwAiOZI6caquSRZBl1unjoRFhoSQqBTiIDaYodnHGqNlHlLlLaJHJ0NDdgKeiQJArl1MedRDTdE1TV4v3gn7OfboIGvmyhhiF91jnTm2xlp7SyPqdxjbul36NSiXG9Ilb/PlkS4+kl0iRACT3MYgE/kIj8GPQUa6OB413BDGLmWZ0SI5IoQQ18YlXHwmWemCjjIUUpRI5cjEoBLXKQYgl10kNtu9jSlLBkYmkpQblE07zHaOaTmimDgUQjnoOcIWsGaRSjzcdMzgJq0piSPyCpbeOGCvLhLq01lczrMjnLSNrrKIZJo1Zgze4z2peIayXMoxk/mO9wL3sXVupMp3Bj06f5ySHFdoOxsYw+6WL5hyIC7zgioPMNo54vs6joeQdwc54f3xtxf6oUL8/D++gOowcD0u4Qs3uAvV7DWm+JK8wwsPbvgtdldKwy6AQ0Apcl/4hoGBMWyhgapL1TcCIKhzsEhkVPa1FKJ6wO7jC1WhwfTuHqNcqtEl6qUT6+Tb9QwR0nNIMjpl4RR6mh+D2SOOFMXmeilVhOAnQiNBKSNCRNEyQSQrmAo2oY4ZjVbJ8IDYmQZQY4lAkiC/Vhl8M5JlkiochD7GTMnlTDKReppzOk01NcpU5Zn9OKTqiGPbQkpZJY+IqCkUxRrIwglEEKqMoOwdIq83kPZ54QTeYke33MgkJDneBJKn6UYiZjirFLojZRZZOkXCc1fLzE5DRtsz3+JUO1xZm2TiU9o2KPmNpXyMKAguSiRQN0KkRoRFIFLZ1iKy5xlGL4p9h6RCmT6Hc1XGeIuVyn55dQJn2U0g0sZ4jiuyhKTOPo15Q5RQLGioXku0TdKRUlZlCrUjVkWskJZTWj1txEtxKqs0+xmmX0yYCxZBMWqpRx+HF0i578LpbaRRoNCMtNquUUxRsxrrWxjImoZNva+mKI+GVC/aTlL7Oo6HkHcHOeH6+uuD+8GrzOmNGDIbEToGlQbRtYK/VHx42miUWLaArmrIcU+GSGiV9qYdrnZ6l375Dub44wwjlauUDiVxnf2oXZGGtzVSS1BwHWWpv5JGS98ytUr4ucRSiZT+SmRKqF2TDINB3VkJnPQDUgDmM0y0RzJjT9OeO9BG++gleosxTPMX2PbOBx6kroiYRnVrCCLrrvsiLfxdTa6AQUmFNmSjHz6MYGkWZTjSb4ocSQFjIxGTIWMREKKRkqMWYW4cY6VXrEmIRewiwrsKHcR54knJkbVCTYTu6gnk1Rs5CUjCxJqDDkR8lv6NBGmTkYVkZJ0ZF0DaZTDDlgVe3SnyoYwQhD0omQKWRzKsQMpQaeUqPkORSlHvOkxExdYrjnUHZPcRSbRNIpRBMixeRMu4KSZiSSSZ0BSjBBUgPmSh2tv4eBT1Kt4Nk2Rb+PGsT4gY5kyhhGC27ewPIC5N1DVjq/ZN3fQbE0tNBh5toEQMVw0Q2Fs2vvEoxCzDBk1guw2SOdzGnbDsrf/AuklTYkY9gNsJaXsVop1XJA//Mpktcn+HDMbPUmipdS3GgxGnXQNAktduH9Nl53zJH9Y/b+b5jsHJC6PmvXTKrXxUTen34qjPs0FYPExwX8u1BU9F2JBbyyvKSh16sp7g/NGc/N6H10ij7tUiAjzjL6pzLN6QzLkkRuWqkEUURz9ikdv0a42kYr2MSjCdLtHVpvNfDGJsMhjP7yF+juFL0uo0QOsgqZEuOezrEKfZETNxpBuYzyq3toswGS6wApchihKhKxbBJIKloWIZdbRFMPMxqhzkbIzghr7hOnNhXPoyB3CL0KPamBMR6heROMTGWuVjCP7yMnAZGskaWwFOxRZkKESo82ZcasRfdJIhVIKCDjUCJCJkIjBkZUqDBHwkWOVSrMmFGmr6xQjvsoePiJyXY4ZZVD1pMD1CxkFlvMpBLLzMhIScgoErBMwJQlJlqTot/DDwqoYcLArtIshrSCAUmSMvRaVEmwM4dEVihGI4LyBlGtRuZPGYYlom7CyK2yIgfExgqNbMS4tIUSeOjukE3llEg28BOdWK1RDfpoeoqfKsRoJJMppXJErSpzFpZR0ow41SnILrLk8Ib0gF05413lE3xVwgoHHMg3KCZ9PKtOqaAyrK5jlnWqs2MK+yfM55v0xwnLWg9VMdHwiQ8PcY4OSIwUT24QDe6RAYkT4M1TCr0BRrUAtQJWUUGprBCcDQk7E8Ydi27f4vTwHlJnQCgv4ypl0r2Qk/v7LP9EzEn7s58J0b5+HVZXz6/7hR7kAc1XmJc49Ho1xf2hOTO+10NLPNRGFanfQweyRp3ZTgfrauW8a9jGBtZol2VvxFBq4Y19CuM+lRUFJmO6n4RomY8+6mAd3SHaUVCurqBVSmQyROMJfHwscuGq1f+fvXeJkSw77/x+59z3vfHKiHxnVmZ3NaubFCmSoijNaAx7BBg2BMOAFwMbtveelVcGvPDGGHjlrRezGRiGl14aI2AwMzAwFiTBssiRKJrdZDe7652VmREZ77jve87x4tyorC5Ws2uGrW5pWB+QyIzIk5E3M+75n+/8v//3P/D++wSTa6rTM/z5FKZjdFkjDCTOlCroULohelXj30zxqw3ai8iMj1fVxCxxZYPOPQq5Q5nXiNWGYmefMJ3T21xSK5vxBoFC5Bm7ZBggoMRliksF1ASklEREZLjUrOlQ49KhYImPRuKiaDC4aBxKlFK45ERoXAoMHlkGY7HDgXnGIU+JTZeCEB/wMORIJJopA/Kyx4iSbj1H1+Bvcq6qQ/ZdTY8FFRGB1CQ6ZSV7OEKxn36MqkJU3XC3+phpcMpCnTN1OwRuQ+P7hKZoF5IUGYfIRiCUojQhG6dHoHKUM8JNfDCaWBSIt95D1EPUeoWb9EivFnQun+EqHyF3qCuBbyp260uU1CzMDqKTsD45wVvcsP/hH9PJx8z9fYI7B3Dxc/RBwjreoz+9xosjyqjD4tkN4dE1/mLJIg8pD88Z3Nult+Py8ZMx8d0jPG2o8am7I0YHMc8eFCx33mJ6fwOFg8nHxKc+1/MISnj6zyes+meUJfzWb9lmKWM+7YP0pqD5tzy+wq3X305wb9OZal2SSA1uiDAaADf0aNLSZthHR7b7RAirdokdToIphAI6Pnge4z+/jzvYI5hvqKsNjqoxnqB+NsGLPExW4OUruPuWdRCbTEBK5LALl9coz4caTKWhqTFOhUgzHOmBcfFoMGWJFDlBEFIEXZoKwrpE31wiM+jomGv/jEHWyhpFwiS4w1H6IYXuAgExG0pcXBoSNihcoMKnQVCgAIeaiAKHGp+CHisKItZ0mXDAIRdoDBrNFUdIBF3mVEg0hsDkLBkgUfRYk1PZLBkXD0ODy4gpj9SQTCac8JAxIzqkDDYXOLEgN10GzorCCDamQ1RvCGRAKWIcpRiWlzSVoFY1g2COqaAoQlZdn67XgBR0vJJpM0BICKOSSOeUjYdDgxcKKhkyKXoMmily6uENJNrxKUVEE8d4+ZrVnXs0NzN2RhIn05g85qiZkMkh4dUnDEpJaXymZocZEYHrIdOUvIDVZcYuz6h8g+uXiEcPEUVD+eAZxWSNCCP0vd8kTSWDr79DZ3ONmkxYn/8O0fqaI+cGt8i5mPeYr1JkusLb2yEb12weTXmanZLEPrFJoW83hH/5lzZr7/ctyO/u3u7g3xQ0/xbHV7j1ei1wF0L8AfC/AA7wvxpj/udXjPkvgH8EGOCvjDH/9Rd4nZ+ONp3xuwH1WuI1NUZIBNAUNU4SgGp9frfdKI5je8jL0j6OY6hrmxVVG0wUE4eG1fAOYTrDZAVqldO4Mf0dbffMNzfPbfoiIUBNqQpNU1R4VY7QGl2BRmDQmMBFux7GlQilaIRPrX0GckatoCIi1AWxTvGNYSb3+Sj6HsPqY871J+zymIk6wqEiJ2yz9gqXConCQaHsOUaAIaTAp6TGR6DQOAA0SAIKNiTEFHRImTBEIUmQGAQRG2Iq1u4uq6ZPTEaXDRpJToBGsKJLjznnzUcIBJt20dlhQVCXpMsudZDgljmlDqikpG9ylKNRyQh/esmi6VMah0QtiKuUS3GCNBXToocOBdVgRPBsTrIaI3sJqtclqwKocx5FbyNRZGaEHkTo1Ed8sqAcdYj7HXrnQ7rDAZ1xhtdpEL0xzc0c1xEUToBrSnzZcLh5zGJ1SObHdFgT1hlqI3H+vx/jjTqMmyH1JOe0eUB1oblOE2ot6c1LvOUUFZ2SzSvy/bcZ9EPCtwT1szE7u5q5s8flJoHZlCdFH1M3RLM5jefS2eky/zAjLWEnqSgI2Wxspr5cWo+jmxvrifSiuEbKW4A/Pv5idvRvbH2/pPgKt16fC+5CCAf4x8B/BDwFfiCE+KfGmA9eGHMP+B+Af88YMxdC7P91XTDwPJ0ZnHSZXEeI6RhXuNTG0EwXDN45hM2NnTF379p/ZhTdegN7nl05jcE5PqS5vMTrhrjdmORoSPq0g1guicOA/mGHKNi3bXrn59avdzCAy0siKdCLGW61Rjca5cfUSmCUwkHTSEnZ2UdnOb7JCKQmbCY0cZeUPkY4xKKkNA6j+gpZl4TpDBH4OEahCDnmKQEZGREuJT4FtIuHxAK3S0UAVC3Qe5QIBApQKHwqRoyJyLnmkCUJXVK6rDE09FgSkOHgkJoBEgNIJIoNXcYcEVOgcADBPs+YMGLIjIqAMXt4KM54yE3lgu/SD0sC6bCqd4nrGVF+Q60aLs0pjRsyaK4RVYP0GkKhkU6FLBSDmzlX7HHiFMSbDZN6wCI6ZV/epxIhl+FdVGeAX6WEgwFS1xS6g3p8geM57FcznHxJv1qQJZry2ZJMJrh1yaoOSJwZTZAgPY+NtwOZIhc+h4wxyjCt7tCJJYX2eVTsc5h9gpstEf0h5UqitIcsa3Bd5llA/LRiPWu47H4X1u/iTh4zvvTYPKxIxIbjfopWJeqDD9B37yHCPokucVXJunvOYHDrBtnt3lobvGhwFwTWJnibtf+qwPxVK3B+reIr3Hq9Tub+u8DHxpj7AEKI/wP4z4APXhjz3wD/2BgzBzDGjL/oC/1UtPqsaDJh79tHzO8HZK1aZnerluHcujwVhZ01p6f2HxvH9rk0hcNDBiOP6aMnMF9i7pwjxxPCgx7Df/8dosQem5NHOyyflBQmIA5P6A4ruLimiHYx5X1c46ICDxXEiHUKNECD1A2+rJB6QWMcSjchchWeNDhVSeNEmF6CE8R42Yx4tURrRYQhFHOUI0EJJJqYEmOJCQySgBJLRAm89jc6mDYPB4VB0iBp6LMhJKNqs/8OGT4VARsiSlw0Lg0K2FOXRGQ8k6dIuYtoDAJBgaTPgpKQPjNCipaxjymJWeOzK6cgHVTUQekNdVMjjaD0+uhU4TkuSJe0DqnZp5Y+kWKidOcAACAASURBVCkJhGasz/FZMmqekLgRN84pdS1wmxLhOHxy+veZrBNEXbM3fcQiOmTj9LnxdjnwV2S54OI6YbmacTLs0S/H+PkGWS5BZaR+n4+S3ybWG+7oB3TNgkrH5HEH2RSoRqKiGCkVm+gAEOzOb3DzFTLpo8oNzvoapylZFw15cp/cHFD1EvRwl7m+wwf/V87pg5/i5UuGTkqcTcju3GH3fEihK4rLZySHfe70ao6OJMn1E+aPQx6ZPUoZPT8ecnfX3uavomvzHP7qr6yD5L8tMP9NUOD82sRXqCV9HXA/AZ688Pgp8HdeGvMugBDiT7HUzT8yxvzzl19ICPEPgX8IcPar3kWtPis6OyP63c8Yc+/eZ6c4bfoTFQWj/+BbrH56QV4awoFi2BdEuoDeiHznkMtZiDcIiMo1qhHcLHw4+DbJ7D769G3y0iCaElPUaCMJ0Bh8tAKqApwA5UUE1JTJCO0FVkEjckwm8dYFVdAjqTO6rGlMQiBStM4Bg8LFocKjRCNo8KkQiFbmaDN0S85IQGPfWA00VBhcYgoEkh3mxKTPM3GFS0lIRIGHYoVLRR+pa3zd8JRTeqTc4REGyUPusmaHAVM2dBjxjB2maAQzvcc0vMOulxOTs6HPnr5hpRPKChK3YCSnFEZSEFKS4ACT8BAcicorrpITpCMRWU7KiDoYoZqEzcE3qcKS3tXPmZYJUUdx4/TYLS75Wf0uovcu75mfIaTh/seKk3JBzy/x+yHLlcczfUrudtmtrpm7uxyaMWGzJvAbDDVunaKTLlIpsmmBiQJ0WZN5fSLPFqXLWiIrQxCsETczdP0+m2oX92gfbyM5HGdE6ZTaCwh9DanC/OWP8D5Z0xsEzE6/S3gMJ31NoQNM7HP1cYXTPKLcOccZRSyXtkz06JEF7tHo07f0ZnN7nCR8PjC/Kst/o8D5kuMr0pK+DriLVzxnXvE694DfB06BPxZCfMsYs/jUDxnzT4B/AvD973//5df44uM1bSEjIPrNe7e6+YuUKyfBiwbkyR7ePnjrCZQO4nvfY5VHoA1BoCnzgJsbn871AzxR4rkFZWNpDQw4eUbTG+IcHqOPDihz6Mwe4TRr8nWNmC9wdUnjNThGIx1BVJUISjAlDQJJhWhLqDWm5dwNFT4ag0ONgJY0sQC/fdN8NIoKB6u0sQtCTUCFxiWjg8BlQx9BTYcVoImBnC5f4326pK2qxuUO92kIcNDsM6HCwyFnQ0LHqVgHhkpGGL9GZyU/L09ZOLvsOU+JmxUZCQdcUXkxC2ePlb/LfvMM6QV0miuqZsha7LLLmKKSrKojHHfDO8/+iFpGfMIe1xwyyEoWu2dsKg+ZZRS9Q8AluHlGb/oUFQY86LxHsylJ3BlKu5w09yn8HpHakLkD3HpNZ3Uft5twP/kGR8VjEq9mI7vUfsKgHqOkZLaQmKKib1KUE1CakCovOTu8Zlwds7r20T/8v9lZZOSjE+KwQm9SvGxDN3tG0d0n3XmX6mrBWfEvSP7z/5RnTY//5y+AIKAzgHeGT9jMQtxxwdTYAz/SMqLb/ezjJLfxWcD8WfSLlG8UOL8O8Trg/hS488LjU+DZK8b8mTGmBh4IIT7Egv0PvpCr/DIiisj3zniUnRHs3dJjH//MbgD06e0ikT4BcfGEZRbgRB3oDplNN0R1Sj9YIRyf0klwXIEMXIKdLoP9AP7et5AfXbLOMtx0TCedgVY00serCrTr2sKriQiKjEY6CN20skdBhYNEYXCABoeahhCNJKFEtdfntJ9l+9nSNOBSU+ISUNHgErSqGgeDxmkV7RDQ4FK3IsuckByFg0ARsSKnh0dFSMqSISU+ApdELfGyNXXusjIFosyZ8jZSGnIR84h3qPDoyozK64D0SHyr+GlyUF5AL7umKyfMnRHCdXBNQ7+jWbPLYPWYxOtyb6fgpumRzJ+iheA31F+xubng1HuEjFyk66Gykl75IUYIXGkQ0Ql+kZGO3qJaRQhzw5G7Iov2cMOIWAoW1REmTfHNgge8jafeYzd7xkgu6dZLZu6IvAwYmA0+Nzy72KFcXZB0x4zWP4X5Dcv6irw+I1+kxPkE5ScwGDE47VKtJM56jnr4mN5vHFi3xSDn6l9fcPDRR/gH30AcHpCuFA//6BHZ/jnLZYTn2TKR41hl78vg/lnA/Fn0S13f6greKHD+3Y3XAfcfAPeEEG8DF8B/CbyshPk/gf8K+N+FELtYmub+F3mhX0a8ajL0eta//e23b8epozusbjTe7w1pfvQ+5rLGm01IVR9jetRRn8rtELPB2emTnDosjKCZu3hFgTN5hhYehdvBjxqcpsEUBtHUOL6gKjVKCxxKxPM83OC22XtJA1j9ubZ9pC3nbqmYLTXjYLdYCtmO3GbvAo1Ao3FbuaNAs8OSlB5L+vikjJi2ihuJwsOjIaRAYAgpMcCQMRUBGTkTjvla+QEr2UdrRU7ErhhjGkFPLxk7x0zkEY2e0nMNoVsh1RqvzhnWU9b9O1zpDvvpQ/qiwPTPGTgF+37OJ/URUgzZiza4sc/+CJZZypNLl6kZcldesrv8iJ38CtVoVNWg3BDH1KSiy7vFD1h6uwyvpijhcx2eUQcJw2BGnWckYsJl9z0qE2CUYZBfsapiTkzBhTpkp9FI18f3BavuHZzQQV1e4y2W9M76BGqGL27obDZc1jWNGyJdQR7uEPgJnaCmiqEougQPPoZoyHEBalawa+Y4B7sM9xzW42cUoxMaJ4DJhKv6jOnUOlAeHtoDY8ry9jjJXwbMn0W/1PUbS4Ffh/hccDfGNEKI/xb4F1i8+N+MMe8LIf4n4IfGmH/afu8/FkJ8gE0S/3tjzPSzX/VvZrxqMhwcWHvXFydTNIy4OTqn8SaMD75Neiehau7iSc2BumB/8RHCVPheQDepqOWQSw7xP3hGt8xoTIDrN6jMo2hcPCqEB1pJ0ArXqWmiLm6+QqBxWn59m4kHWNDeNjW9yJtJoAR8aAuuUOISUbXZu6bEw6ekwm17WbOWy3dxqHFo6LLGaeWUBkNMhmmFlz7l8yKuxuDRkJBRMcGnAcdFG41rYGBWlCYgIqWrluyoMUXQZy0PMCrjqHxK7cWUcgenSjmuV2jfQQjJ2umT7HUpZMT54n1MnBCXKU+qc/rVA/yjI6q7d3hwtYu4/Ii61tRGgm6QRtM4Lo5pCKoNHbHB0wXhJqVwQrqbJ4g4xpEVs97XCMol/jCB1SWmrBiFmrlwKWuHo/pjOixYFSOW4SFOrtg1K8L6CaKUOHWIR0UjDbpQJOYaNwyg12F40BDvbGBc4oYhy0WBdjvkG5d+c83N1ZouNYvkPYrMZ53Du8mMRh4ze5IyOrPWwMbY7L3btUdCOs7nA/NnqfDgjQzyy4yvSnb6Wjp3Y8w/A/7ZS8/9jy98bYD/rv34WxuvmgyOY9WUL06m996DOI548uSMn8gz6vN7HBZ/RDO5YFKPMO4R3WaGO+qwOTlD3r2LeHjNVMWWf59pTPqEoRpjUNRIpJIIo6m8gEDUqCDCzVcoDAKDx6eLHzaXv+XZNbeA778wpsBr/WbAY1tstT0AEkmNT4OLRFHhP3edDMmhlVFalY60wA0t978t2go0EgUccMWEQ0rj4/iGXrmgRuBSURKi8eg6GR1VEqUpe1wRupCqmo0/xGsKGjdENYbU6SOams1GceZe4bGmTEtWOyckZU5neU1TLOjfifj98Ak6qigKnxtxyL7zlMzp063muI7GdRzW4RFJdk2gc7p6zo3Yp9E10qmJ1WMu3TOSh4+o6dj/ynrGblExd0a4skGWOQfqKd1sSVoOkEoTm4bMBMQre1hKFe5QugP69RIRe3A2QkY+ZbTD42WI95MHKOnw5O3v01m5dOYZd7/ZZXxVM2vJtJNzj2GSMdMVfj8kju17mec2udhsrBL3depzr1LhLZf2see9kUF+GfFVyk7/dnao/jXFL5OkvvxG3Lljz1IdjaBIIpziGL2aMVVHlN2Qb71TI3ouYu8QsTdCTwpueu/gBgvSy4buqsEv1wTZDKk1gW7ICKndHfLIQyBxgxSvnKGQgPoFgJcvfd22bT0H/gbwqHGw2yn9/Ht2L+ACU7okpPhUFNA2Nm1wWgbfoFBIJPZmadrX0c9fz7Q1AbsIKTyM0lTaI8AQ0lAgSekggMTkCFOxq1ckLCgY0JMrwvWKUoTkJqFyQh7KdzjWlzjzNXXPoWxCunpOJ6+otMM8PKKqYf+n/4owCZgMztmvLuiYFFUE6NLBVSVaO/iOYpA+JVQpudPFURVds2bTwNp08fM1wit4pvaogy6nzYSwXrHxBygFyg1Z1/v4WuOahrBZoYsQI0t29BwhoSRAJgmyjtkEMV6/Q9jtU44OWT5csFk3dLo9vJND+uklK++cpnMHKsVbRxfsrj+GToe5GlBUHmVd0rt7Tt2+qUFgVTQPHtjG620GCL/8AJqX6Zc4tsD+Rgb55cRXKTt9A+4vxL/pUWdCWHBfrSDVId73fpdgPUdvltwkczpOxa6pWA7PMCeKpAoZZweY4Vv0gpL7zh6745/g6gpJYzn10MPVOU7soksPXTpIahQdIMX/BaGSBXKBfTO3362hZctvn1NIRMvC13h4KCKs8dmKHgPmFERICkp83OeZeo1pX7PVAbVA7yDQVPhIKygEDKWRSFNhMPiUlHjM3QO6bo5XLNFAjceEYxA+lFO6TFHs4gkHRyhOgimFOyBaT7gxQ97mQ1TcJS0cQlEQ5pc4tSAWKU5/hJhekdcubm0oaxfPNVRNQKSWKO3gSQmOpKvmGBRN2xKmGsFM9agcl6PyMZqQUkYMxIRR/RFxNSOjQ0RKRNo2h0nqusLxPRxpEK5HmC9orgWj/pDU6VFkLld6n+vqXeZujTpJ+D3zx3QW91mtYDHQ6MiBywnqO0Pcd45xJs/Ym3/E48O/S7Zzzv4wYrGw91mvBz/4gQX4rUX8bGbf11e5Sb58wtg2Pvrotml7Gy+qbd50rn6x8VXKTt+A+0vxbyJJ3RZcPQ9G90JWC4UenqD1Ce4Z/PTDkrNzh87bZxyMYPfhY/7kRx3csEMTH+HlLmX0dabRDsn1Q/adKbIqEemGzuaaRnrURLg4aDTS9r1+KmPfFlAtZN/q219glp5r4AscXGp8LGA3wIBV60vTUBBS4yKIcNBkhAgMEXmbpetW+tgQoFqLA1vwtUuTIKBsSRqJ33L5wvNwI59VE7AOYnaqCQURwnfp6CUL+gSsSVjimJpn3W/hmJq4WRN2HFZORKFj1mWXoFggdIWWkn55gwq7qKtr7pQbZskxE3FIqCdgFJGUCDw6pgBtCS5Bg0HgUNMxMyoOqJHs6Bnr7jFOU3In/YCwXuNQ0mVJzIaAnIqAgNK+jtnQmBhfGGovwFcZnp6z9gas+vtc1UcUH98Qhf8vB10DDy9ZC0EjcioZ09OP6Ik5fhJydT2i6xXc+eYRNCN2mhmP5ISHT/c4uhuhFPz4x1bC+Fu/ZcFhPLZAHwSWh3/2zAKJlPbj3Xdffc/+sm74L41C+DVaQb5K47c34P4rxPExPH5sedDa3SNQjygaGB36DJMKjko4PGdvD9zhHUyZ8c4iJQgLbvJTPtx8nePDCeW84KI+Jpz9K3brKaUOWWmFly3xWz27RKFfIGUMnwZ2+LRa5sVxtM/Fz7l2O9aaBdsIqKha58eUuFXDmLYA66PwcbB+KCE1kk1batX4FGR00LhoBF1WKCQr+hTEhI7DXnnB0h/SqackZklOjlY+cbNklzEODRqYMSReXZG5XXK/z1PvnLfm7zPtDfFVQVzN0VVDx1nRq+c8dkb4Kke7MWOO6aorUtPlRvZAGKTvEqkxqvX8sVcoUDh0WOBT45uCsTmnI1JGPCOJNWLZMMSmxh4ZDoqAut11uAgMnWpB6XaplEejIzwULJaMRUDtGc77Y3RtyFYxe9MPWPTfYqJ77IYp+w//FC8C9zfuMReG/KMnLDOPdOcUL5Acv6foyEcU8pyPLiJ8H775Tcu3b+PJE/v44sICfhxb4Lh/33a5bja/iJ+/jHr8UiiEXzPvg6/S+O0NuP8KceeONXlaLuHhLMLlnG41Qa9THlQh9eCcjrBt5TUR0b33+MadCc/+uGb5kceke8hsHHI++wG9vQ6T7AS93DAsL2i0RgureXHJWzpFUOK0OfJts9K2mCpfcY1bW7GG20Lri99zsUBfo/EokGgc6tbIADw0ZUu3pCSENCgcCgIcDE5rdGCQCBQBVkC9IWLBHgqHhbNDr55wN/sJ1+KIidgnMnMGzRhJ9fyvcVufm0bl9NWEm3Ifx1njioJNJajdLiPzlJgNqpbMu6dENETFAl02HJd/haMNz+QxrspxqalkxMo7oM8VeeWS0sOnwKemJCDHo8eMQblCZz38eo0whoA1tItARNr62gskhoCmlZ8KaiXxmxWFSNioCJ0W9L2neGHJcnBGt18xePIxLiV7xUO8LMBLfNLuHkO5oL9+xuTpJYubiuF0wqDzE7LdM/5yOqJyYt5xJhwentHt2mx9m/HN5zaxmE7hG9+4pVqEsF//MouCz6IevxQK4dfM++CrPMnqDbj/ChFFVjkjpeUyw52I/u4Z96+hLuBe12ZPP/2p5UWHw4g5Z3zY3SOLH/G1dyX3xRFlvoO/XlL6fWbxEW5t+V0/DKkKF7fKUHjkRFR49BgTth7t21x+W0T9rNgCu3lh7Is/a7N5/bwIaztXNTUW4BeEOFs/eBybpdK0DVIePhUOioII0CSkSK54xgmqqPBlTS4TbuQRTdNwwgMi1nTYUOMgWiuEDgsKEgwOXVY4qmQVnBLpDRk7XDh3+Hr1Y6QQrGuJq1b09MRaE6uINNjha8VPqXGQGIyWzJwBSjYk/hrHNOR1l6pdsLpkhK0Xfr1Z41OgcVAI6raWkNHFoUBiUK1lW0hFQURjBH6WIX0PjCSk5Dz/kGLzgIsmR999m8htkL0eblOSBIrQTfFDQ6BKijJicP+HnGzGSI6Y8xYFinD8F4Tf/S3cxmexsPfPagU/+pFNfrPsttP04UNrWuo4Nit0Xatl3+Km1nYRuLqyyq+9vVfj6JdCIfwaeh98VSdZvQH3XzGiyG6N/+AP4Oc/tyt0klg+9Ic/tKt0nluQBzvBahGRfOOc8mKC59R83PltDppnHHTGUNesmgyvvkLqnJCSlAEaQUj23COmQra0iFWsOK3cseHTfDvcZvdbMH8R2LexpXQMEt2Wdz0UNT4l4NIQtVSNT4VGEmBaaWXz/Lc0uG0B1lIXCSlClQzVFSUOJ85DusyIWOOzwWDa/N8lYk2D10orHRJyBIKFEVwE73BWfEgnn1IbjcIn0ClhvWLBDhKBQ0NKl0NKBqyYc0CtHDrqGi8QSBrb1ysDXG13JxKJRw3tTgUUAVlLwvjotsphSBA0xJStt4+hwW//O5qm0nTdOUa4VCqkp+b4sz9nIReEA4eoWuCLgtORpJQBdZ1TKB/V6dPZPKXTE1RUFIWhDh2SgwR3/CHub/wO+x1LwWhtG+qaxuLh6akF8psbm5l/7Wv2uYcPLQ+f55aLf/zY3pNxfOtb86rs8UuhEN6cPvKlxRtw/wKiKGB/3xZX/+Iv7AT65BObbbmuvY9nM6tyuL62Cpsf/SxisTiDDuQOzIt76PgJ+3lJUKXMVMxg8xApe1RockJCAg54QkjVArlLg4dH8dxywHvF9W2BfQvyr6JvtrROgKZC41EjMbiUGFw86pb11y0BI1EIXEybzwpSEhxqFE4rjIRdpq0yJ6emR1/PsCSVzdRq4lavXz9vpPKoWbKDATI6jOpL0nIAWrA0fVRLjdRuD19l+EpR4lMZj8PiE5q25Ssgp8uakpB5dEQnv6FTXROjqFpQt/YLmhrrae+0en+DwaOgwEeiKYiI0FRt18CCw9Z8TeDS4JJRNgnGc4jrNQQhwvUhX2GKCuFUhH2Jkg5GS0xdU4Z7ZCohkSFN/4D4oEMvLymDgiJ2cG/GPC33yNuzZ4ZD+17dvWs59Syz0sj12mb13/72bUHV8ywXP59boG8aWCxuTcdexYJsKYSbJznlowkBBYfH9vxh68D0BcSb00e+tHgD7l9AbJORKLI858WFBfbtpHJd6HRs9i6EBf40tYvBepxTfjzhZFjgHYR8fO8/QcmAePmEWkuk3EPVK3xVkrABxPOyqMBSKKLNoLeNSvBpELe+77duka8Kq6S/lTkmpPZ0JqCgQaBxW2a9RrQ6eZvrmvb3R+RUeC2V4ROTIhFEpO1BIRuksQVYt10eNnQxQELTFjtLZnQQNJREQI0xgm5xjXEkudclbXqEJiXMSrrtMtLIkFhnRCxY07eUDB6GGlD4iwkLp0PJPl1mdFgh0XjPC9WyddHk+dKU47EmwkFSErJkj4AlMSUVATkdPHLC9tQrhUvddKiEgyphEe5xZK7wZcV1cM6FPuSgnBCIhlzEZLVL3KzweyFX7hFBE+Fl11zmgqtxzY24h/sg4uzMgrJStohvjM3Otxn5+bnN7P/wD23RdXsPOo7dKWpt77u337b0zFZK+aqIyLmjH8F5AP5fQ8HzqyShf83iDbh/AfFiMhJF8MEHdlINh7edgG+/bTOt0ciqGZZL2AlzRvIRsh+wUgnysuLucUbzd/8e6sd/yiabsbu+ogo9hmKOTAWFSZ4bEigECUsCaBnwWz8ZuFXC1PApMH5V6Bc+W6A3zy0GLADePu+inssr7aJixYUGe0hJRUyNg48mI2DAjB4lCg+HEoeGprUhs641DSU+GT4JGQkZDgafHBBcc0pCihf5iNpl5gyQdUapIx6Ie+zpC/p61tJBlqsviHEp2+fs8hcrjUK2nL4kYQU01Pjt1VsrBQGURCzptaDttIogu79ZsENISd1KRXMSREt0dc0MXbmUSMJhiRIBqdMjUhmivmHujzCOJMknuGHBU/0ew9OYeHLF9aXLZfEO7O4T7sRU+9/mx39hZZCnpzbRXa8tHo7HFrDL0iYNBwf2Y7229OAPf2jvvU7H3nP9vv2elPZ+/UwW5IsoeH6e1PGrIqF/zeINuL8iXkeG+/KY/X3LfX7yiZ10nc7z41YZjSyYh6E1fjo+tmPU1YSlCrj7jYC6hjwP0LrgrvuE8j/8HbKzY7I/0Tiqol7VyLKhrEtSEkDRI0UCFRaEJaJ1b/+0LNLH8vIvF1K38bJGfgvcLxZpJQLdvoYDOKiWad960lhxpr0GHxdNhUtC1rpQOlS4KCJyHDwqFE5rW+ywpEOHktXzA0AieqzbxaVgo4assxGRKDk2jxCOYqYGLINdKBoiUmIyUiLsMYdWw7OkR0yKxsOjJKLGoyKnQ4NDnxUlLl6rSjJtAXXOHg0u6XPR6dZb0yEmIyLHa+WbACs5ZKRvMEhyIiSG/vIpVWfAyu3h1BWmSHF9wdXxd8nCPczeHmXm8PQmpqc6VKuMTjdBnnaZeEfI+Q3n5Q0dD97y4On7IWVvj/13I37+c4u7nY5NgN96y96Tf/In8Ju/aa9JKZu9b6nBqrL0zS9lQV4oeOa5pROL3CfUKcPXkaPPZlaqo7Xduna7Nqt5k51/6fEG3F+K15HhvmrMeGyBvNu1297Nxv7MYmG3wjc38P3v2687HTsZZVPg9BIQdqt9fAydxZpso/HeHiD7Gx689wecrn6CfDpmlntES4eIBQLXqiraxiONa5uA2r9jC9Db2IL6q8z54Tbj3y4IW2Dfft1gno/ZfgCtN41PTYODxEVQty1O1mzMaQ0QHGIqalwyAmSbTwfUrInZMGKKQ0CD3xaH1/RwqYgomRAS1Es8akJWLMWQ1OnSVQuGzHks32OpZ+wwARQueatNN2zo4NIQkBFQUhDjU6CQpIRkdAkocQgIKFjQw6AIWvAOqKgJcFGEba3ANmsJLriDkR575oraj8mcPVxd0mum1E3EugypfBdXNyzkAb7nsDv/kMrfIa9HeJNLMtWl3HG5jO9R3vk6nTAk1V3CWHHcPKTMwPHfYqevMPkjQnPOwUFEUdzWc8Zj+NM/tZi6XFqM3taCisI+n2X28S/F2ZZjzHVwq5/3Kmodfj47M5vBv/yXloscDOzKkuf2l/47KnX8mxxvwP2leJ1d6WeNefTIgvhgYLfBy6W9v+PYTor9fVsI2/ppX5oQf1Oh3IDzczsnuFhzUXRRn8BwXWJ2dlmItxn4JdL8nGyzxlMZEoXCYU2fiBSnPXxDUH+qsUnz6iLri7EFfZuX3loG19isf6uRf9lO2L6+wWnPhdJ4rAhwaOixQWCoCKgJ2dClzw0hGQ6CrM2wx5ywZoeUiAMunpdrEzLAmg37aHaZIclJ2NjDQkzJjlgxTc7wS0hUSlFF1AQkzOmzZEWXnJiAgoQMQdN21FoFO0BGSETGmKOWIkrxKUlIMTjPlThd5jRtcdVFo3Go/A5eGDEu+xyUFzhGsxE+cVBg3Ih5OcApczw/pzGSqJ4S64aFf8An3j2OfvY+Tl1yM7zHwukj5xO8Bx/CusM0+i5DMWOsOmgN0eUc5+CE/hD2/Amd757x0Uc2ochzC+yPH8PXv26zc8+zmXtR2Pvq6Mh2rSbJ5yTQLcc4m4Lv+fbMr6rEPT0nkL8Eo7fn/zWN3ao2jc1kRiPLBznOK37oTfx1xhtwfyleR4b7WWPAZkhgE6BtoXU7ybYLwje/aXn5+HyPvfwRZ/egMj4//XHFyJW4ww6DEUQyoC9rirQmO/0OP9Xf42j5hzjjH5MwoyTihiGnXLTUA7hINNvTVW8bmD7vjd4agb1oMgaydW2/daXcauJh60hZtSfGhlS4bYact7SI9ZLckLSZrmkXJVqWXjNg1urnO7gYOkzxaMgJ6bIhJmuplQ0hKQEZN0R0WLLTzHAqiefUeNWGGzGiNB4BAQuGgMGnpsblhiG73LRGahkGgYvAp2RNvy3s+iRM2n2IXa66zNoC6/bIcB+PnEZEKOPSdVM8Y7U63gAAIABJREFUR2Mah1q7dGSJ25SkskfsFAgpeSa6xE7OUE15Vh6yjEa8U/6Eqsz5ODulJx8Ry4CZu0cxs9d2GvxrRJGxDnbpn+/Q82vyEBrhk89SOicWh//sz2xGnmXW733LywfBLa7+zu/YsWV5azb2mdEWPMurCbG0BU91atN137yiELvlJ+/ft4WmOL7VaoLdwiplL+5NfKnxBtxfiteR4X7WmONje6/f3NjMHeyk63TsnNne7zs78L3vwcVBxCc/OUeLCel1ynId8sR8h68FY6pNyXQzJBo/ZM8oTt5NSA7gJj3n58kBg+mHRNUaWWy4Bk54hKJDSY09FTV/zgd/3pu8pVkkkLb+KTZD15TEBGTPF4it1e+LYXOyhgjdMtoeAXlbD/DaVv/V80weBH7rZVPhsXT32FFjOmZO0jY19Shx2zEuDTuMkWjWdPFR3GCP4tvLH+PJhgfcJXIqaLCySEJ2WFLiEbPBIKnxcKlwqVF4SGgXHE2fFY94C4Wiy4aydfIBe3rttvu2xEMhcR3AaFinmF4HFccEdUHtOiyrPn6dk7gVqtPhwFxjtCBTIcb3OSk+IWjW6FzTkTekaZfL+DdZeyFhM8e/uiHY75OYDafeDfc2NxgVMs0eo0ZHTKNTHvy5TTCGQ4ubn3xi76+isJ9d196Dl5c2a3ecX6QWP7OuFEW4d8/IW+8a8hz59DH1uiCOQ8jbwS/yk1La57bbhk7HXsR0ai/0c1eVN/FFxxtwfyleR4b7WWO2/ObFhf3+duKNRre+H9sFIYqsfcFgEDGdnjEuoPctGH8MP00jTpoJZVYzlWe4x/tcffiAxWXKIkuI4gqhR4zde5jpjN7qh9zow5YOSW23JWFrJ3BLpbxK3w639gVWNHjLy1tCxMV94bmtZHJ749yWGxsCwKMiJWbTyhFdKgIEQavNr/BRSDJC1ozsIR56RmRSfApSIsKWPrHHhgAICqKWqjFkhMwZ2oYu4RDqDGEafFmyYUCFR8Kq7TR1MLiEFPgUeFTURFTEBJTUCDw0CUu+zvsUhEgUa3bISYjI6LBEABUuOTEbMaLTTK0PfxKQiAxVK1bhHrHXkFRz0AqlJM06I0oMqjskrQwdMobMSLXHhoBBOSGpxzxt9hgEGUMW0IkZhCXvJBc0NytE7pAPT9nrXpLfrNHnMXo/Z5ZHrFY2qdjZsT0Uu7v283hsn/sH/wB+96UD5F+nrrS9x0WRE14/opIBlZtw0n9h8JMnFry1tsWlOP60e9l0agH+O995U0z9CuINuL8UryPDfdWY/X07obpd+P3ftxNsvbYAfqc9gfZVC0IY3nqAZJl9zeUy4qP8jO6uHTvrg7cK0fUEZ1KiL2+YekesMxejGibOAbutp4jMJaalRgQhhqalR355bOmYgJocD7+F1oTVc3Df6uBvwd/qY6x5mAX5Aq/VsKcs6LPDhoii5bt9tj2wDtBlaRuYdMOKHhEpBR0c1oRUOOhWq25JHrswuDRIeqyZyT0caQhUjBu5jJtDXJ1yzAwPxYIdQLPLHLCulgVdXDQhtm5REeOhqbyIpF7SYUVOyJAphimShjU90rbo2iUjN9YyGM9jpbt4mcI4fXwkabzLTpPROOBVayJVUdBjvnKJ6xsSPUHoGtcd0kUxV30Qinfyn6FVwDg6xxntYp49IvVu6McNSb+Dk8xZLAz+6Bh3/YD5RYHxjgmuQ378ZI9oGLHZ2IT56Mh+3hb3X47XqStt7/HpjyakKiBMAk6GEEWBPerryRNLxfT79iZWyj63v2+z9zC0v/w737ntvnoTX2q8AfdXxOvIcF8e8/jxpyfM229b8Hac24XhVYvGkycWlEcjm1Ht7Vmacrtl9n07V2QFO3feAukxrRPWj2cM9QQVeJjaY+7s4/da7ijfgnmBRiJpfsE0bBtbOqbBesRYisaSFQ4aj1ulzcslMcvBW/KnZrsAhARUgGKX+fMGJ43fNkGptiBpG55Mm9Vb78UAnxS/tQNocAgpKdouXFqLgZiciohMJ3iU3MgDfAdoGvYZ41KhkK17ZcOSiA4pBrctijZ4pIBs3S8rdG0rCAEVASUVIQ41PjV95lxygofTWgAr5uxSKgfXFGjp4usUtwHpairjEpo12miE9GmiHjvLS7pmzaoOkEbQY8ZM7pDLgL1mTCAqKmJc45HPGvpmgVI1jGLWGSg/YlE49KI1vn6GOy5Yjk7pdRTi5hGPb85JkogksZr4u3dtwvD48S8C/Ovau0QRnI4KOEugyG0mXpZW2vXokc3Kt0R+r2ezmOnUPt6a2LzJ2L+yeAPuX1C8zoR51aLxYnfr7q6dN/2+zbzAzpXBAD66CDkqKlQ9IowWRIeaybqHV2+oeArpkuU6ofJOuZtPsP7tEX3mrwT2LRUD2wzcKr0lRZuFe8j2eI7Py/q3tI9BEFIiWmZdQ6sGj1szsrDtRs1I2LRQ2iElZMCkzdZVe3arQOOzoktG/FwdNGt3A7tcURExkwfciF0GzZJIrYnJWjsGxRVvIdoibYeavPXNcTHtomd1+g6GPnMKQgoCAipcClwaGiQeklFbwG5wCahxUGQ64kheo0RI3hhUI4j8BcL1cI0ikzF11CEQCs8XNE5A1Cgmeg8hJCLf8HV9Yf//wicwiripWS4zumGNCSKq6zlyvSR9q0N3APzsASt5TJRe8e1sxfre91i+vUv1ZILaO+P0FH7v9+x9pTU8+jDnh1cTsllBPAy5+7t7hGFEvcoJ1xPKZcEsD1m4e4Q7EXn+Eh6HIaxW5E/GLPKAelETffJjOukl0W9/51Z3eXpqM5s4hr/zd96A+t+AeAPuX1D82/ohvcjfp6kF/6dPbcY/m9kJ+uQJ7IR7+BePCPoBM3PMXW/G18LHzPonPNn5+xTXcwaLx3hNRSZ6YExbxNSt8denD/XYnr265czrth1JYlr5Y/V8/Ku08dtW/Rc17wYIsScwl+3vCGmYY0+TSp4XNl2mjMjossOcIdc0+NjzoUp8SnL+f/beJMaSLEvP++612ezNz5/PU0wZmZVZmTVkdVWLPUJqgCtpwwVBbbjiStCKay2kjaCNoIU2hKC1AO0aJQoUG0QDJMGualZ3MbNyioyIDA8fwt2fv9mezWZXi2svPDI6p2ZnV2V2+wEcHs/MnrmF2/P/HvvPOf8fsMAhIMdizphu7e7aYcImXca0mDOstti0r7BEjqvmXNJnjwQTRZspWT1gFROQ4NJjzLXYmiLDYilcbCNHVdCsIiI8nJqjp270dOqnhRyLEkGDkG2OKSqfULZQVo4yJOPOBpWCljqjsi1Ky0FhYWYFSap/ZiDmmFWOXUxwSSmwiISJKUpIIgrXxFUAEqEkyvNx4xEsFU4ywe53sVwH+/QBZVHSvbeP5zb5ZJTQbLvMzgew6TE5i5m/e0T5fYf2VkCyyHj3p0fc/Qfr5E8vCS2Hy2mAUWUE6RHNzQOOjrxP05CDAfF7jzi/MrC9kuD4fUohGDcP6F2FeIOmnshbVW7v3LkB9m9I3ID71xT/uXpIL/L35+eagvH96+aDx491X3z3nseVPMA+PeagOuHS3uNi922WsYE1vuC+/BPGa7cIEpjLEVZaIfKQDBdtUxE/L5au+PXrmy8xoFZH/LSVHnx2MXZl46cXC4GFokDVE6W6Lz6pu0zazCnqGdYUiwwHhUGKzxhJiykKE6O+jgIbh5h2XXj1SdjgnASbHmNCOpyxyVT6mLakUY6QpqAZlMzTFlE5x1UpbTWlAlyRUSpN84Q0cLEwqYhlg8INkOmSTAZkQYA3e1Tr0ihynJr3l/W8QFpPt/pUWJoeqnLKHArDpbQCosIB1yG3oWuHGGVJWShUViBFRVEIciFxqwivLhBXuFgipzJdjDxjrThnWQyg0yHx+4g8xRpf4vgS1WjQLCaE0sPaauH7Ef7ZL1j6b0HrDQI3wz4/4snkgOnHQ17dr2ilV4gwwbZcpB8w+tN3uPeaxcOPKgzl4G73aW84uMWQ2Nn/dC+75zGRfexmgnvxFCEk8mAXmQuWF0/xduvCkOdpbnFVYLqJ33jcgPvXFH8TPaQVXXN6qp9wt7e1ml+S6EXDsjTYzzKPluFy3rjPLHHoZJCVMEk26JlbDNoxu8NzrF6DctYgDDv4pc6rDaqagkgA7X+60o3RZEX2HPhfFhh7Gdh1xr6y2oYEm4IS77m++6pPXtU94gVZbe1hUbLAqXnvpO4cz+u83WVlgddkhGRZv7/EI8LFICWs9485EXdwTEUpXG3Tl47IrHUm/iFr80f4lBTCpaIgMQKaVQSqQNoWReWjLIvCsHBsl6lq0E7nFNi4JEBOgU2KSZspMW79qgCSWttHt1OapiK3LGJ/gDQF8+4e6aBF5+n/S6OYkfhrlO0e5nyEWSb4ZkRh++SljzIERlUhZYnhCGRVIauMzISiKCgtl9z0qbwcqwFz1cKtYnwjxzAqzPgSU1bsBqe075ySBn3CzKEthwg5ZcuYICoH5fqIPKe5OCF+9yHT3e+zqFxaXk4nOaGsdrg4ypnV06yDgRYRYzgkvxzjNi2qdgc8D6EqTAFJd+daYvL+/RuJgW9Y3ID71xh/Uz2kINDZfrOpX4ehpmcsSz8JtFrw+lpC6QR0Y/jkgxgxGXPQjtm7ayMqyYfZj9hKnrAuFhjVBEULSUmCi0OMW7cGxnQwiegwfE7RvDx9+nk6NDpj14uGblU0as69eE776My/qAFbc/hp3QZZ1IXUgCUOCUVdao1xaEhQVUmGg0GJRfpcXlgvRAqDOSkOfjmHxMAwKwIVkVUGnkwxbIXhmIzzDSyjQBUmE3psqRNGbJDYPe7G7+LFCzJDkhgWHTXBzWeEBBgUdIgx6kK0VpzXjrEFFkUtNFahJdNkVSIsLWuspImMY6ytNdT6Oqk5QCUF5TRGmQ2aYo6VF5RuQOU6mKpApDmyyDFKCYGDUg7CscnTnGY2powzMkMyT2yEXVC1WnQaNtnFKf7sGYut+3SDlO29CMeJKTd3oMx572xM+ewSt2mhLJuy1SW+nJJWkqoSNFuCNLM5uQSeXWDd3sOpYuRoyNn/N2XbHuEdbmIe7FIePcGcXlL2+oj5hDIDY28PmqV+1Pze926A/RsWN+D+DYpOR3c2zOfXHWVJomkZ0B1ly5kLi4zdzYrd26d8cmbj2BZjb4f+5Qekdod4YTH3N5HREs8uSAvBJAm4z/sMaZPLBi0jRObVc/4d/qpV3+dp05QvfC9wapkurd++mmRNkZh1/j6nTYFZa9JneCSk2FRo5UeJeK41k1QuDSCiW589xSOq9WoUJRYVBgUWLUKmcgNPJUyNNQImFMKjl43wyiX4XWQJE6ONnSVkSJpMcZcZqXBILRfpuhTKoixyqlxfiV1z8WatDJ/WffFerQ2f41BRYdkVi6qDLAsckdIWBY/dffJ5RLEGid3lrHOH7uIIbxFjB5I4nVMWKbn0yU0LJ5pgKUWFQaUMisqm2tjGVCWdcEgpfZaHtxAXE7LEoGVVeC2DyrVwzJSgK+g0pqTBBsb0GeX6FnJ4QeY0uSseMj+ZkXc7mGstytGCxcmSzbd2sVVGx4fL1GIyUlTTBWm7gffkiDuvObhxwnRp4F1e0lvb5Sy9hZICd3hKvLZLgcmGmxAvJaOdt4iOvb/rXtffurgB929QDAbXRdT797WE68OH1xKvSQJTc8Bv7x/RrUacuBbffQOqJOPPjg+43YGemHBUvkViTVh46+STJYbIyQwDsRQk0uNAPCHDxKOiwMOop0lfNtZ+EdxXOjMraeHVMdqKDlxiVk5QWme+IsOhQBLUeu5T+tgkbHFGh4gCmws2iUSfvjqhzQyFIKkhvUFIXJuDG/V0a4WFJSoMpag8F8M2OUrvYBrQsxysKiUvLCwEIk/IlIVjC4J8UXsrlVRqiVCC2OmAMPACgSibzCsLu4pJCheLEpMFJRYRAQ5a0DjFAcvAkJBUDrkTIFyPwnSY5hIvCWnbCYsrmAqbXvguticIZYdOGYJhEZkeIs0QpaaLTKNCGXpQKZcOOF0CEVF1O1TddZpuSTho0WyvUZ6cEIbQHD0lUBOKwS7uVkCkDLiaIBDkhkcp56zf6+Bvdzh6Z0b8y3Os7XV6ewHtwy7l+ibOZEw3ivh4Kon82xzIkGDT4eK8ovfwIeVsgble0Lh1yfb3fsC4/Srz5gBr0GEj0KOtT6MBdtMjsP/Oe11/6+IG3L8hsRoHl1K3D2eZBvr9fZ3Rm6YeAuz3PYz+AXx4jikkXuDSemOXWw2PtrOPf5mieq8RxUOGF/t4xUOuig4qjjhy7/Cd4l1mxTpB9BhZq6qvgPzFwunLdMxKQGy1r8R47pqkh4sEVv3+tFaBLOrxpyUtCgS3eFxLf7WpWGDXnkrCsViWGxh5RYOEHIfcEFypTTrVCBBYJJSYpHgYKsEnpIgl64lCOQrpeoS5R1HCmXPAjiwxs4xEuBilwhQ5hqhAQSkcDEvSVCFFlTGz7yGzmMoRiELqqyoiclwqjOf98ilBnbPnmHlOYrkExZzQahGXLp5cUpYxRsunnY2pDA/HzljLLkiEosrmxI0+rlFRUVGOZmTdDUw7IWv0KIMOIp4TywY7u+Btb8L2NnEpCR8ssYslQTFk8Z3fo3qqqStr0MN7/RbMI5YC0rMh8s3vst4owW2R/OqCndc72BEUyyHDmcsyMZGZZMo2Z4uMqpvSPVhjN3uHbJoze3RBMr+kvduksnym757QabXZubsHm53n3OPTp2Bbf2+8rr91cQPuv8b4PD2PF8fB+30N5FEEf/iHmpJZ2ajdvVvLuy48JsZtGJSktkMZ6yKsWRkUzh3Whcvlg4JxZXMVbBA4Ja2rx+zG7+EYBUnici638Eqt9yIwEMSf0oB/MVbUjdZ6F7WyoqTCwXzeMqgpnpX2iqzLtzk2mdHALpO67c9FAj4RBRZr4gpRLigrzeFn0mUhW7giw8/PSYXHTHXJcTGJ6XFJgseYPgpBW12RpA6508e0fZpexDS2yCqbSoJtVVSlgekIzEqS2w5zc41OMUaYIC2XMk5xVMTCapFWKZiKoJxSYaIME1Hk2AJcmaNKRUiH2GnhWCUCRWR0oMooTU//NsOQID7HXmsjspzmXhvx6BnZ3g7EFYVpIS2TUPYpnAb53ha+U+BmM0RSYKk53srGq6pIzqY4rkP0eEKZOahPPqEsUiK3yYaVw+kp3p07eEGg+2YXj2CUca56mM02zsURqBLLlFiv3OLdBw75k5x2KyfKXOTGOsXZJaFXIR5/Qvv8KSxCOoGHIbqkjSbzkylew4Kf/OT55+Lvodf1typuwP3XFF+k5/HyOPhyqYeY8lzPhoBeDNJUZ/G/+AUE2wN2iiNS4OTSxpEZUqTYdw44H3p8aO2zGMDcAauI+eHsKZ5hMMp2cEufZjhm7mzTTc9qZUcTi/S5BswqVr3wK7pF1hJaGQ52bbhh1vK5VV1sdEgpcRC1HYcsC5rMEYBLXtt4lFQYeGpJmJuYpAjLYmF1KQqLNCsBi9Dt4JJCVmCUESEtIhooLFxiciz21BHJckiVuKAqfOEQOgOUZWCUGUVZEsomESZmViFVTuI2qSxF0wwxVcl561VEpu3v1hZPiFSHIJ/hkIBlUpYWZpmSCp8JXQxhUJqA71MpiSdTZK6wuibtckrlm1SzENuukKmNMm2KVg+rU+IYJUtvndIpSa4WNEWKCXr0S3h02oZeya+uYDolUk2y+QLPLZnc/QnlZEnzck5r/gneItEfpo8/1pX4Xk9/UBoNOHqgp3/7a+C4pHbAtHVIHkqClsG4vc9oBG84D2ian2D+xV/iffyXuPEM1WmTPvFJQonsGWC0dObxAt9y43X9zY6vBO5CiH8I/G/oBO7/UEr9z59z3D8C/m/gR0qp//i1XeXfgfgiPY+XM6Ak0Q0IcXy9bWND//22WnoAcDr1mE0OuNUY0m0sGccu/fsHPDrTU4YHB/rYh+/GuA9+yZ5/xeboKWI+o6gEiRmwkCamleLnE6hFvvK6ELqiaVZ68NfTrIICA5MMi7TWfpF1J7iW2BV1T4lusgxoMsZhgao7ZWxyKuHRUCEJPoISE0UpDAq3QZh5iNKlVU7YyJ9xFtwlJqCbXeKJmKBIqIRu5mwQglIU0oFsjq0ySsfDFhKZJ0TBOhgVaeLgi5Spv4EvUgoUpqWI2mtYVpPm+jrRySWyEDwNXqPjDNgcvUuWRmSmi2cmqExSKQNfJEysHcoyoTGZ0u9JEuWQVmDmGYZRoIIGxSzGNPS4vilLxGRM+dYPqEQMG7exDwXBg/dQnkscp4jugOBwm8a60qv6T34CP/sZSeohvBK6bTpuhpEtkCLCXIxBSN1bfnUF5+fEv/9fsVzYVO98yGJaISwTc9/B3TSYt9ogwHBtGuEp3vljbh19QOPhX9LyYlAKW00p0xAVCaSscFyTaXubIrWJ3c6nbLJfnu2Yza4N4Ff7b7j331x8KbgLIQzgfwf+CDgB/lwI8cdKqfdfOq4J/PfAz/42LvTbHl/0CPtyBuS6mpZ5MQMyDD38d3amefmdHeh918Pz9nn4EBopuG1wRrDTi9l1h5iLKX/w3RE/O59STgvmpctm+ZQYH9sxCMsmie3RrSycOsOWFPgssSkxuP6ArHThBSUuMaBqSNbaNbpZUC8Hqh6TsqgQRLoTBAPtvLREYVHaLqgSRwiiEowiQ1WCxvIKRYNLY4M2UyyV0cjnCAOEKbHSGJMYoYx6OlZ30JCVeCRIcjKri6DCFAWuWaAck+XeHcpwQndyRikslOMi0xmpXCe4s0U6WhLsrRHOA9qjZyQi4Hzrh5jjC3JhYuURa+YQp4hwLHBlyrh5mywdYjVblE5ArwvJcMF8muGairYbU2YViyXIRgvPsshFSdg7QDW6NHuK9dIha/XJC4HZcPGtBK/fJp4tmbV9itZrnPfv0nnv31L5JnaxhOkUYzYBx4Z0qYE9SYizgujP3yV/8ydEVh/LGRNPE1ICRus/IE4lxnCEMy5oPvi32GaBnE2oogXO6Ycor4HjWYTNDlaVUro+1TzE9Ec07+1xxYAXR5RenO0YjfTX5qZOKm6Kq7/5+CqZ+28BD5VSjwGEEP8X8N8A77903P8E/C/AP/9ar/DvSHzRI+zLGZBh6MnUjQ29rVlPeB8cXAvwvXgew4CGEbOeDlkOp0wejZj1Nxi4CZ2ewb3GM07dklTukNlLrCgiNSROsmBhdplaAzYWH+MzwSCnqJUdXxYKu3ZfWpVW7Xq8v0BQ1A2NsvZULVG15YVR8/QlEpMMRYqbjslwCK0OodnGKjKcIqYsKtYYMeAEm1i3T1YLhDBp5GMC5igKqnri1USRUhLUM7AGIJMhWaPPNNhA9daRi5Cxvwft26whKKOcTjFk4a4jdu5QTpb4lmKxsUXR7pG4LbyzhzSXz3C9JSLLyAyLojQpvD4oUKaNn42YbbxGMHBpmTHzRYLbBtvK8GREuOjgezF+36Fymiyb6wRGjDXwkJs+7a6B17unb2gcQ5mCZRM/PmYqe9AYY9swePRnFMMhVjmmNCzcySX2/Bxluoz3DrCyBeZwBPMQ92KIGE0RrT7l5hZpa8Bw4TB7Jskqk13nkoPTDxnHYMURnasTupcPMIsFrhHjddcpM4tSOKg4RvSgvdOEN19jwadR+sUa0nKpgX3lY3BTXP3Nx1cB9x3g+IXXJ8CPXzxACPF9YE8p9VMhxA24f0Z8kTzByxnQbKaVUlfF1OXyWhL7s87TMGLU8IjjzMElIS0NRu9fQTtDml3GeZO2uETtbcF0QXP0mMlcMDO7xI0telyRGpucxA7b0QMM5jVAF5/6PwiuDTvAwCDDqOUEVn6jelTfrh1VdXk1w8Im45roWWnaFPj5CDOPSaRPUQkazMkxKfDJcfEICZKQhCaComb3jXpsatWnn2OhiPG1CqVhYYkUV6Ywv+TS3edS9emH50zzBpVlYLccwtYuvWwJ4zFZr4/IMzbbCYzOsfwFeG2sFIrJFJnnkBeM3R2EaZJKl7aa02yUOOttsuYh6vgpMydgXhzQYYJpD5GDBn41RHRa2BsDlOex/aM9rQs9HMJoD959V6e7T55AGJI+m2CsObh/+v9QrG/Qf/qUMJRYKsU7GKDGkOUGynWpKptynuJGGTJOkZ5HVeTYF5+QLxfEh/8FVt/j1cYJs1HO5TMBi5z16UOMyRBreAoyRzg+XhnBbIbtCvK1bazNdfK3vg8bOywHe596kny5hnR8rD/PKyWC1efzprj6m4uvAu6fpRv1vOYmhJDA/wr80y89kRD/DPhnAPt/z5bzL5MneHG6tdn8dGaepnpatdf77PO80htytnQIRw7zYUpvJ6C3kTN/POVXv2yw1u/Rs69YJIpZZBG7t7js3cJPhlSVZIaDIyY0wrPaRcnCIiJD1JOm+navbrpWUyxJcSiwgLwWB4YKkwgPk5wGMaJWisxxakCvMFFkeFiUJDiYxIRWD5UWpNjkeAjTxi4mCExiTAwqTBIMitqUW/fQu/W2ApfKdKmkILOaVGlFVpXMbR+jKbgz/A+0Lx8wEgOUH7CoTPo8wSwsyHPSMMYzj4lnE7yLR5jzC/KgT9wYMAs9WtkzcrdDgUllBIwbh5icYQ6HpHfuYyIwtzfJZgmy1+M43+fVxq8ovYDs7utgCIwoJmq9IK41GEAUEd/9Lot/9xeUMwt7OiGxmjRGZ1SWhfn0E0QU0Wh3mQSvYsqY2Btg9CO8bIq8OkbFEWUBwnTIW32EISEX5IXAmV9i+TbybELXNCkLhf/kV9h2jFstcDoSsYRKVMTNNqWwyfKKZSIx3T5Gd4343lskwuPgBTOll2tIrZYG/NHougngprj6m42vAu4n8CmqbRc4e+F1E3gD+FMhBMAm8MdCiP/65aKqUupfAP8C4O23336xKePvRXyRPMHqEfeDD7SDzouNCV8qHfwgASsgCKB3a//UAAAgAElEQVR128EuFhjRkrAzYlCkiMAlZo3sakTe2uC0WkMsJhiywdaBohpXeLMZmd1iWeTYZYHLsvY61e1+q/bIFydVgVoS16DErCWCS3wWWBSYlBToxUDTNKKWIm6QmB2sIiTDwsJAZRWp2aAqwCTHL/QA0YQ2Pca1sYZNjqpFeBUGFVUtiKCoEEXG0u4yzPq4vsCzFFYaYhxPcYySmT1AZqCymEAoCDMwAqrtA5zzY+xlBm4bkUZEyidPoCqXGK02jfgxQ2udpb0BjsNW9ICwtUurqZgvwJqFeLfW6b3eQWxtcVne4+LqHvLpY+JMYvgO7qaNc7hzLa7lecTrB5w+G+Kv72J857sU779H9MEJhivxiiXG1SWkKeZkQv8QurbB6XKG5Uqy7XtY58dY8wgMSdg7xGk1EUKQOi2i3MUbHlEOOlRJg+ZAYT/5GaHpYPfbOMtLRAWFZWNnEYndRLR7SFMi77/F0zf+If4r92j3NbC/yJ2/XEPq9bSa6WKhZau/qnDeTfztxVcB9z8H7gkhbgGnwD8G/slqp1JqBqytXgsh/hT45zfdMl89XnzE7XavrfpWJgvn55qi+dzxbtfFNTLOQoduI8D+6CMq02ZmDbB6Nt7oGSeNW4gWTGeSpLIpb71Fsd0jffIed6/+FVFng2bTpRhL8jAliRMsYnJsIMKspcK0KJiNWTs1eSyJaYHXxIyXCGJMMozamDqv1WxKBCZZLe1rkBYmBnZtxbfEU4Kk7GDVUsO6L0eLDme17beG8aou0CpMUgqcWpfGJaXDIgtoGlO8rGSRNTENE0uk2MsFjX4L0XcokwynjBn5e5iuj99Zo5NdwnCOnKREa/u03ZRlbBEabazFDNVfQ3i7dPt9xuYGl8khjcUpanebqrdJ1fFZNNo0NgNKp4Hvevxq/Bb3X+/RzM5YhPDefJv9YI986D2/j8PQwzjcRwZaU8cuYxoNWA4l/vknVLZDJSSMJ7gnH4N/B4VELGa44Zii3afobaKWEcL3cW9tkYUFojQIPv4EGk2ELfEZ47x3TDF8guW2SAc/Jp7OkMNzjLJg0thnNvg+edDDaHm4/+i/ZX27h2F8dkLycg1p9SAym/31hfNu4m8nvhTclVKFEOK/A/4Vuqb2fyql3hNC/I/Af1RK/fHf9kX+XY8XH3H7fZ0BCaEBPtPy6Bwe6rrbZ3YgDAb0xkcclZDOlljdTdRsgnIcZLfNpL+HkwVctg4Znpd4bYeNWurgcbbHK8s5RppzJRsQvMqVuYGXP+WgeIg20ivIa1OLHKs2t/aQVGS4VLZDZrfx4gijlhXT2jF69GlKG4VFizEmad0bn1PUzko5DoXwkSqnwZIciyUeBgVtJnXGbqMAr6ZlDAoqPBZ0atu9ORYJTVLsssIqDTJpYS9Dcssjzi2sxTkqD3CqksLxiGJJkkl2+hH55j6Vv0a1jBlsBAR+A3OS0y4i4ijk3L1LbvhkrR3Oxy1adoTX9Ti/9Q9I2+t0123yZUalUkZigOfBD3/HIwxf4S+PX2GYQn8TYj59H1cZcNUfYJwcUbkBjjNGpiMwDHK3iZ1eYHgCr9cGpfBVSBL0KCRUUYFYJKhKEiQTvLiN59m0pyPiZsyyt0Hj9F2k7VAaBlW7jRNOkfGExf497E6PKCo5XvZImvfprQnO3/wjJo97fL99ber+cnxW7UfKG/2wb1J8pT53pdS/BP7lS9v+h8859g/+5pf19ytefMT1PM1Zjkbw0UfarWxz89N/MMfHOjO6nnT1YP+AzsWQk7+YMGx36d69zVrf4+QYFnNFOV9yFO2x5R7hB3B6YhNdzvHSCceDt2mnZ4h5jFEuSKWNicM5mxTCZUNZtJkgyKlqnyVZ8+U5HjJLsLKEHElCly7T5wuBqCV9l2aLqGhg17OrioolLkGtClkKA6kKJnRRWDRqf9UpXSJsHHIsCmKxiaFKbCJmdKkwcchYmOvIIqHFSFM4eYvAWlCpAiMtmBh9vHxJZnpYKiaNYMM9ZtR+lVyYTI+GtOIrZLeD6wlElVPaLotcwkaTxL/NeetVsqfPULMZZUdweut3uFp7k7cPh4RXS2Jc1t8+4Naaxzvv6A7Fy0udzVqWpikePdIL+HSqn8gcRw+idjoe5e4B4vKcYjbHJcG6u0d1OScXDrlrsTTXMB89o1jfIQ8kUW7rIbNDH2cxws4uiIdXeM0G3LuHt7YGn5xQFIps4wCjzAi2WjBXhKVD1l7DaDbIPnlG+p3vEa/f5vH+fbr7PYKl/vz96Eef/Zn9m0hc38SvJ24mVL8B8XmPuFGkM3bxQkm7LDVAvPrq9aTrRx8BeLRf2ecVD64uSxapQ1NqdUnSjLDpEl56PC4PuJMNiYZLjMWUrLfFcRExMEaciw3KqxFbPEP4Do/T19monjHKNzAocWrTvCXaOk4prSATiwaJghZzbCKWRoBZ5Zgqp6x7bGIjIC0MUjaxSHEJSfGhVpPPKwcbSYxdq8Ob5NgIFOtcAYqIJiPVZSG67KknjFgjMRs05RJl2Lhqjl3mmrKpFHaVY6olKQ5tMSO2uzgWVInCMBXn7VfYtKe4oyF5WhCWNlt2gpUKqkYTJZqE/ibFnfs4s4h86nPc+i6WF2EEIfOdH6EMjxOxTxTA4esQrGlAtyw90LPq/z440PduNIJ//a/1gi0l3Lunm2QOD6Hd9oje+DGV2cF3FdOTMdb+Oqo9Z5r5lLZHv9VCDjaoPjwhUCFFs09s+wgyFp19ipbE27SeG/R6JydAAU6se2alC/fv4lxkBN2Mcvcuf/HGP0Xu7nB2CldDcOZ6wQEtgfFifJ6Exl8nvo5z3MSXxw24fwPi89okt7f/am/8xYXuTHhx0nVVbF1fB3YG7KkjUgGXE5v1bsaak3IsDrgr4MkTj/fm+8gBbHsPCPIpk3yXD4wGrZP32HMuMW0L5XbwC5fz+R6JOiQpPFos2OQYk4xUOUihUKoCQ1EVHjYjKkrKUtaFVoVFAWbOVLUprQ5z2vj5jAGnmHVer/l5izUu6FJxxg5z2jgkBOj/3Jg1TEq2eEZXTZiKHp5dEZcmMi+gKuiVl1hktXhwRVkYmFR4RJgKKuUTp20Sd5ey1cHuNjGSCQtvgNkAt8qoBk0mhUCOMoatAXJ9wHLtFj+frVGef8SmP8LbbTEZ/ISi0YMasG/f1nMJ/+k/6e+bm/Dnf64njZtNDWaNhr5XUaSPryqtGbS1pbN70wQ38Nj4/fuMfIld/hms9RgWXczTT3Cuzgm9W3TkkrLZwS5CSsegaReobo/CaDCKFJ00w8sy/Yiws6P5t7LUF7a3B65LYUnOdn/I8u73mD71MOf6usJQL0yggffpUw28L2sgvSyh8VXB+es4x018tbgB929AfN4jLvxV0F8stOzIi1GWnz5ZuXuANRoSXS2xtlzUzgFbeGzU2dKDBxp8lnOXdRZUax2kvc6xvU6rKwiqCDm8wAxj7JZLNx4TJT2cLGOqujhoxURTVVppplhiktT97AUmIRIIaSKlialK9njCPPewWVJg4KNpnBJJmxk2KaAZ/i4zZrQAF58FDjEBFjFNinoQqmFmoGJEmVEqgVNk2LUfqaKgQYxU+owVBpkVUHoNChkwUgOcqEAuE0KzyUxuUkYZ7fScsNUkXj9EbDVZrN/DzJYcP4XB/R7jwW/zpAbB7x3q+9Ht6oR4dU8uLjQd4/t6EG061feu1dIDPivVzzzXoC6l/ne/D6+88vwmEt16E7Gzi/X4I4qP54j9u+SvvEn57Jz26JcYaz1OzA02/BAjX5BtHBD39jBGFyzMKV4Y6tXkd3+X+Ge/IEkEcfdVDLeHT8zile8w7r+FF3hsb8O/+Tf6Wu7e1d/jWMtOL5fXg0hfJKHxVTubv45z3MRXixtw/4bE57VJvgz6t29rMHkxXn4d43Ge73MWgBXGbKVDGiTcsVzS9gBx36PVAtUfIH7xCF8tsbyAQTunWQrKyCJsbWKUI2ScUJkWadPHupoCLXLW8QlxWOJTIMjxaz9QPYuaY6BwamGxoqy3Co8ddQTozD7Ho8OkVpmsyOtudpuYtXo6VUsJZ3QY02ZGSJMEHyNfcG7dIbF9evk5odHFLKDLEFcVtVyCgar14DPTJ6sMTLNgs3xGnFlkVxWz3hrO8AlGHGGkc4qggXHXx99uYno5jx4YjJSLm+oEOAw1EE8m+vvBwfXv/+REg9WzZ3pRLgpYq/vIokhn+KttW1v6fiqlF4Sy1IvuiqZwXcisHuLt3ybdgqhewOV3IAl+B/GLd4j/5BHjTLHc/gHx5iv4Vs5ta0FqtuGVBkynxBcTrt74LzGaHk40IxMG7/tv03rjHgdtj/FYZ9D37unrz3O9Jty9qxek5VInBPD1qEDeKEn++uIG3L/h8TLorx5r4TqbX/2xpKkGiSdP9Ovv3o2ZvnPEseWweyugyDKa4yN23zxgnnsYGUSjPsUvfkk+sUm2tkm7W/R5iB1FeP6CeZQxd/qEhYtjDqEwMM2SsjBpM6PJDIOyHlzSupBaRdLEZUlaFVQ42GVMl4IUH4+QHB+HCEGFRVxbUVdk+ET4eMT4xDSY1DJmAoMSnyU5NiZFberhYFQZLbUkwaJUktzwkCUowyAVDpkZUEoXL5mTFA2yjVsQxhiyoppMcMoJxWCTi8Y+3mRO68N3mM3v0d+dkZa3GVsDvInOaH1fA/TVlf79j8e6/jEaXbey/vt/r7P0Ve93lum6ydOnmsPu9/W5lNLvHw415/5iDUVKrSPUbOpznZ/re3p4CLO8x9H6H/DhD/6AZBLTLYe0rxLkbsDi+7+PPb/i2fkZWd7hqv0dgt/ao7Xh1c9GEH4AooBd77rd1nE0qN+6pemiyUTXDkxTP+XBdW2oqvT/N031dQ5eGG76srhRkvz1xQ24f8visyic+/f1vuFQA7/n6T/IYDQkuO0wnDk8OwfhOHz3bYiyIdIZEH1yxHRp0rp9yF3jlGz8gDxJad/uY+1uQbiJ//ERrdEF4wlUbkBqNNlZvoNFhE1OgoNHUqtBVjXXXtR23FptRlEgKTGp9PQpghyHgJAWc6CgwqTEwSalBAIWrIz/qhc63w0KDDImDGgVY2KZ0CBEqpQGMLf6tGRIYdpYrkGaWsgqwy/nCFWQu21Mx2Qy9+iLBW1jRun7xMIlzk0y0aLrWJRJzlBusCxcdm/BLNNgLqUGZMuC3/s9DdpS6ox0ZWTeammgjGO9/9at60V3NLoW1louNYAPBnr7cnlN51xeXi/e3S689tq1oNxopM/X7cJMepTmPsYAniUQXsDhYQ9eeQXbhumHsJiB1brmtJtNTe+9GI2GPt9opPdZlgZxx9E/M471dX70kV7YgkAD/6qGEMdfjTP/IhmOm/h642Vfhpv4pkccw/FTjMcPMM+eIhKtC7zK8Le3dXbneSDSBLdps7ura2kHB+C1bba7Ca+vD/HcivvdKw7v2bR/+ApVq0NQxVxFAe7eOn8x3me8dFmoJmfeXR66b+JUEVGpDfd0L7tDTPu5RbbWo6lwyMkBQYFJhscCm5QOYwQFG5wTMCfDRNW9OAuadS97WgO6qhsgzVpSmFruACxy+uqcO+V7mKQsaZDhUTY6TJxNKjsgFT6eCAFJpQRFIXHjKe2rjzmI3seMp8goJJc+sdlm0dhm0bvDaPN10jtvMN96DdFu0ymGhKEG6rL2g371Vc2R7+xoWqaq9NfOjv5yXf11eKh/92mqqY7XX9e3MIo00HU6GlR9X5/75z/XAFoUOvMXQlstPnuma6Gdjj5nFOn3rQqRk8k1aLfbGpSF0AuJlBq0V9Fs6m2pViN+noH/1m9p0FZKf+3u6kWl3daJg+fp6/Q8fX2mqReu1f6vEqvkxDD0wmAYN8XUv624ydy/TRHHxB8dcXrlYAcBHhnF0yOeRgfs3/fwvE8/9irHJVlkDGcOea5BJpll0HWxk4T4IsR3bRo9G8eB3prEygyemQ0eHUm2jTN8L+NZtkUiXJamTxELCiXJcEgxabKsDT4Esh51ynAx0QXOCrP2PjVwWOKQEtKsxcYyKkwWBEgUFikpFhJdN2gyr58EKhICDDKq+smgywQAgWKKh09C6vXIsGiImLjQGpGGcPBchSQlKQ2KrMQrLkiDTZxct3ZGec7c3yLIU9y+h4yWlJaLEHDvdRunWPLM1Nl5v6+7khoNzZXv7elFdZWRSqlF3n76U519b29rSqUo4Ic/1Fn/6ak+fj7X/LsQ+su29T4h9H1cFR8HA83HHxzoe7vSSwd93NaWXjA2NjS4vzh49FmyAELoawzDv9qjvr2t+fcX22+V+jQn/nJ77sv7vyy+SIbjJr6+uAH3b1MMh4yXDnbDqf+AHSwB/viY0S9ddvsJA7RpMW2Pyh9w/qsjKgt2b9mY8Zzq7Jyy6pPNxmxMjrB6TYKFQ5R2SQuDi1mDUZ4j7h6yvpsh4isapsli2WTw7IgyrbBIaz1GSY6FVxdTQdZ6NCuL7JKYBqCoMDHJCfFRyFpAADJsDEpCmvhEKAoybApsGvVxghyBRAJzAgwKJEZdhgWPnLi1hu15TNwtishHFUu6ckqimmSeQyOfIgVI28QQJoXZhCJGOiWl47LJKWY3oAoc2ptNkld7JEKbj19OXb73PQ2Qea7bFstSg69laRoFNJBKqcH1O9/RABiGOqO/fVt3zsxmemHwfXjvPQ2sRaEzbMvS4Ktq1SXL0ueqKr2wOM51hr6xoSkdIfTxUmqA3dv77JmJy0tt9gIawD1PX+/L8WWc+A1n/u2JG3D/NkWSkJQB/ot/SGWJe/qY+fZ92A/wsox9jrjKD3h05eEcHrBjDfGSEXIyglsbSMdmxzimuz7ko4XF+NJkevaUpWig/B7uMmU0TvHijF2WZGHKlppTySlFo00V6cqfS0yJVSs7poCBrO3z4ppKMUmJaZDQQFAhULXHqsIiwSUEqLXZtZhwTECFwRV9miwwMbGpyLFq2w/Nv7vEGGSUxDiZJPRs7F4Tu5xysvXbuIv3sBfHiLJgKrsoKRCmiRWfY4klynco3YD+rQ4YKWng032zhdrd5xPlIvKUw82UanDAs5EG0kePNOCWpQbdX/1KA7fjaABdW9PA/aMf6Uz95EQD8vm5zso7neuC6vq6Bu1OR7+OIr0tijRQK6Uz8jTV2bRta9okTTXAF4W+HtAU0dqazogvL/W2FaedZfpntNvX2z6vt/zLOPGvwpnfDCl9M+KGc/82RS0QlufXm+TwgtRp4rZqktVx8NoOe+6Q7W3Yv+9h39lHtTqU+4eYvQ75xRj6fZo/eZNb3SlXpzGLwsFrGOy96mN3G6xfvY97/DFLPCJvncb8lEBGyHabZ63XOPFeremXtDbVM+upUqeGX6MuoTqAQYMp4rnor4FNWquwawX4Zt3PblAwZZ0MnwILAeQ4TGkzYoBPjEWmh6MQtSVgiUpCyjiBcEHp+BjdFkljg9zrMDf6XBVdrDRCKcHU7FP6HRbOGuM8QCzmlNv7eL/7Y4zvf58zuUcgluwdGlh3NeXVamnAeu01zbfD9dDPgwfXRdZVkXRFjawy6qdPdea/va23ZZleFLJMPw3s7GiO++23Nc2y0vWXUgNku61pnE5HLwDTqc68b9/WwL6iOjxPv+foSGfqea4Xmxd5+FWf+Wfx5F/GiX/Z/lU3V1nqhWilo/OiZeRN/HriJnP/BsRXznRqgbDTKyCwscgoJ3PSnXtsv/iIXTcOuy7k8xh3McR8+AFVu0sa9HFFCqWenikdj+07HoGTY599QNZ8lfO1DuOHI4K1A6LdHaKHpwwe/Qdkt8lc5DwsdzDcbZrllCAbYROjqGr5gQyJyRXr+CRE2AREtd+qdmSVZBRYGKS14baNQpBjE+HT50pPmOKxoEGDBFA0maJtuAUWKTFBLVFQIWybib1JmNmIzX22sqdEFZyWWzTEHCVLToJXOehMWU5MrqIGqdXCaZpUbYN4kXMZdbl95z6i71ECxym4Yw2irZYGSiE0oDWbmnM3DA2eVaUzc6Wui6srumW1GHz8sQb4Xu96gGlrS79/xX2/9ZZ+bZr6fJ6nM/3ZDN55B/7oj67bME1Tv2dFB11dXXe43Lt3nVW/2C770kfkcz97X8SJf9H+myGlb07cgPtvOP5a49ieh3f/gB15zPT9I7IcLM9je5Dhef71cTUJOmjEnP3qiKzhIFpdijChOn9E2xgS/7tLxonHR6N1rqo2myc/R+5sodggvzymb0yYij2c6ZT1fZ8i/x7x2Yw8UzTKBUE+xS/n+MxRVHi1/G5RezO1mbGkgaSs5QVsNPduY5NgkmORUmISEQASm4iAJRklIS0WNNlhRoKNgYmkIKt74E0KhBBU0kaKkmf+XSonYDt5xMfFLco8pUwy/GLEorHBzO/yyP4OnvoTLtwuKi3Imj3S/i4nos1te8b88HssCo8PPtAZtu/rLPzBAw3Ue3t6u21r6sP3r7nwqtLgaprwxhuajlllr6BBc2V6vuK6w1BTKffvf/peu65us5xO4f339c/Ic03v/PSn+inh8FCfsyz1ItDr6WP7fb2grIxd4Jqnf5knh69fCuBmSOmbEzfg/huO/5xMx7MrvB8f6L+a+Rw++QScQ/3s/QIJ6g2HbB86jJcOy6yPP3tET13AZM7llWQZpTgiwZleMJ9D2fWxQ8HFqWLgdXhjf4GscqLONjRfI778OUJV3AqeUc3mzFSbNkMclkjKmmJRz4E8waHNghxdJCgwcGoVSN3oqGpjbe3spMeYBA4Jc3qYomSpXCwqUqcBpQEKpBKIKsU1MhKrRWY2CBoST065at0lWaRkaUXu9jn1BjTjK1qdnO/6D3l8tcnT4A3irW321mKMPIW85JG4y37PY7nUAH5xoYHa9zXYPnmiAXI1oSqlpmHCUO8fjXTW7jiaYklTDWjPnmmwvHNH73/0SO8DfX/39j5NaQyHekFZ9ZkPamnmVQa+WOhbHsf6Gjc39XnfeUdfU7utF6KVH4DrXvP08GmeXMqvP8u+Kbh+c+IG3H/D8dfOdF5eDdpt3Ww8nRIXJqOlSxwc4Aw9BtMErx+w0wF2PHA84tMmZ395yYl1C7sBZZzTyq8Ib91GJQVPj8Hr2Ei7hR0fIxwHJU0mc4vOj18nPB3jfXTCpLPBPBS05yPWSImxMagoETikKAQtFmR4FJjYLLFrOz5JikFeG+4JTHJMUiQKl7L2Tk2plMmMLj1mxKVD3mzhGhn2PCXLK2QJmSXJlI0tCwrHYbp2m4ZpMz8WuNmcQCVURc4k7GGbJufmPnvBCH+t4qp5izitCKqQD803aU11try5ed2OuNLtCQINwqvulasr3fXy6qvX3PvmpqZZPE/flkZDA+1qCjRNNWe/v38N5Cv55kZDPw04jubenzzR+1otfS2rtsnpVJ97NtPc+2Sis/pVH31RXPP947F+T6ejF4mXtYuOj/+qXvvfNMu+GVL65sQNuP+G46+d6SQJsQwYn17zpL1uCwKDp9UeXjWkOT0mW7iczWHbzPA6+uRxCudsMN8yKOWA1LV59kyxtS6JsxZ5PMW05rz+Skrx0ScoUVCUBs3wPZLIx/rDHyOtT3hW2hTzFOP8lFG8hZWnOGSEOLSZUGGwIMBC1W5MNqImYERttlfgoidTDWz+//beNEayK03Pe87db+wRGZH7VhuLZLFZZE+JZPdI6pamZbQ08vQfG2oLYwwsGQMbHq02bMkCBEG/tBiGBGggqDEa/bAGHsMjCWgYPRpJmAFmBEz39MpeSBabrKrMysyq3GO/+z3+cSIqk8kqVpHMYi48DxDIuDduRJzIiHjju9/5zvulSCwSJA4xJjGCBJ8BJjERDhU6RPYcgenjFGMkMWFsIeOIQtoh6giGk03KvXsMGgvUaznGvV1EmlBjh23LpW1M0BU1zDBgIjK5WLnNev0y3+m8Ri9qPFikdPu2imoXFpSw3r2rRLvZVFF1s3lwkrS4qIQ9TdV9xzXoExPqcXz//W3nHpaKG7tJjj8HFy6oH5Af/ED9OKSpiuaFUD8ExaI6ttNR+y5dUmcca2vq/palbiuXD9IsR6Px47ATOIr2eT89aHE/YT5spBPgsX4nxim5FAoqalu/E2NmUDBXsEsueEWcJMbIh7RXAKrs9R3uv2ngZAOyxYtYd3chA1tKVnsTtKoh6aUWC+tvIN8ZUK+DUy2RCIfYrCPzafy0T701YFtWefcWlLY3MD2HQVLCYZcQBxufBAuBQYxBlf6oADIlxqJBhwFF9qkgENTZY4hFYWRnEOHRpY5DTIkBGYJt5tg3a1iOT1kEDGuTpLlJlPkYnV0CI8EyBI5MWej8mNVBgFeyIG/TpUTbnsEo+tTtLq/MROwPPMxKk1ulZb4bv0gf+JkXD6pdhsMDi4Bxrfry8kFlyPy8Euz1dZUaGa9M7fVUGsZ11bHjssijIre6+v50SJ6r56nVDt7rev0g6u50VDRfqx2cVTQaajuO1XMdbvTS6ajnHn+OVlffP2naaqkflVu31HhdV/0oFItPbifwMPQipdOBFvcT5sNGOju0cFkZLcJ3cIgRRKxvGSxddsEZKYbjYhYc+re2iLbb5DlsRQ3IikS7BZyKi7W3iT3ssuNdImwUubzxn5GVCrcGS8x5Ay7P5xiNae7eMnGKLnvbPVq5yXxzwKRs0+32cSyDvtNkdbdKi/tAhj+qeR9SJEbSYA9BjiSnR5EBJRwywBwtTpLEeBgY9KjCgwg+IcHDpc9a6UWKWYJvDOntSTYKiyxl75KXPIzUwM5DBrEkx6XVextblEjdHLfdpU0Rc7iH7TuUrISs9izpvkdol6lVA155xafZVKIehgepl3Hd+sKCisrTVIknKEHNMiX6Y5EOAlXPvramShSPTpSOeVgqrlxWkboQ6vZ2Wz3u9esHZZamqS6tltrudNTzNEcNQqLoQLwrlffaRj9s0hRUWmfsmTNeJenqtlAAACAASURBVOs4urrlPKDF/RTwYSKdAJ/i8hLsbSOGA6TrYSwvIe7dJcHhQQo1DMjvbxMOM+QLz7K/FWNkHXqBAWsrJEDzhVne8j6L6fk0WSXoNSk2PJ6lQ3xzm413fKjtUay0KL4wT7A3pP2DPkmcIq0KUa1FGBr0un0caxM/DclGFrs5UGMfixSTiJAiHgEJkiI9cmxAskeVIsGoT2tCiS7mqB4+xCPDpEOTwCjjNSzCzoA9p4Hhl7AHGf5gF0skDKVHsbuOVzDIsoBoZ0jHX8J0bCrZkFJ3g46YIWu0MG0T694dNprXmRTb1GqL1OtKmLNMpWHGFgPlsvp37u6qnLrnKRGNIiWWR3PW40nW97xnR8oN4f2pOMs6aOhRKKhIO8vUQqgLF5TAt9tqHDMzBxH94frzhwUIDztLgIMad8dRr3VsJxDHavyWVoYzj34LzxieB3Hm486rX4Nx/nZvx2NtK2ZqwWVuDpydPeJU4E6UCe638W++gfnGT7HMBu3n/zj9rIjXi7h6FRavQvzjEMO2sXfW2OwViCkjdyManRWsl1tsrgSU3n0dI4pphw5WqUJQzMkrLunWbWy/QNYz8RiQI4jwcIlH5ZFKATMsCvQBSYZPioGPwCVgQIlsFOXnGPSoPDAUa1On3nkXr5/QL9UY4pH3Q6IwpxHsYsicrDiB49tgCWyRIzxBNd4iFhbFcIfM8ynnA1bkc6RukWTmEn5/m/LiBGEI3/++EtN+XwnezIxKs6yvwxe/qOrGj4rn9vaBSAeBOhZUOmW8eGdy8mCidBw5D4fquMMrRjsdePFFlWYLAvWj4vsHBmFzcwdlkw8LBB4VIDxuwr5cVs85/pGy7YNJZc3ZRov7GeNwjj7LlIPg5iZceq6Fu7nC5gb0ew7PWV2mp032UpPwD75H1htiTjSYam9RfP232Zp9GVGaZcHfxohaRPd3KW/cZv/2LsPEp1nLSbZ22JcFBndCfPc2dtRl1bpCe3OXK7QxPZsgNSnKEDNP2DWnaWYboynUBIeQkBJ7TFFhH5dY1acjkUS4SDwCupTx6VFkiCDDIKdIn3jUEmSZW2zmcwxih11ZpVYKCWSu0j65hZGnuNkQOzZJ/AaJVyZKTDAEhYJNFBeRlkeEy9b0ZzCmJilWbcr3N6HhsddT+ezhUInoxYsHFTB7e2qy8pln3i+eh9+LseuilGoydRwh37yphPJw5FytKkEdr/L0PHWfiYmDCDoI1BlEt3vQbvGjVJ08bsK+XD6wKxjPOXzcSVXN6UCL+xnjcI5+ZUVFZhcvQrniIypLzG9tQzjAdgvQqiH/4Md07w/h3gZVe0jfmaDrVJkM7uDZNoVun6mpIW81q+z/MCVPJTP2LpZdIi6XGaRVyvurZJeeZZ3LvPXDlHKaQ/tN6MXsZgsY0qEpBxRFlwwPnxCbGHPUpanODgW6I1sxYNR+Q2JikFKig7IbU12ZLSQWETEeBQZIIiayLbasWQZuHYIOXhFsM2doV/BkgGmaICXSLVBM94hSkz5lSD0oF3FKFqnfwpqdIspsrLCDP+XTm2whhmpyUkqV7mi3D0ofpVQTjofr0R/2Xuzvqwh7XC2ztqbem7EFwOFJUM9T+47+WBw1/JqaUmP5OFUnj5uwH/vZ9Hrqucaulrq65eyjxf0MMj4FD0P1ZRyfdkvPh4VFBgPY9QKit1+n8pNvc6FcZf3tXTZ7wFSGbFr0dgLurwrmd9exZ1ssv+hy8/tVhr0MKS2s3YRhbZ7hZgYbm2ykGSKNKG2tkJUbvLtepC4Cpkv36ZoVZuMBlaz9wBzMICPBwSMlI8YhHHlDSnoUSfCRQJkO9gPRV5ZgqjBSLXLyGRJRQMgcM09oBGuEqUMruYdVlLSLc3gVl2raJg92sZKEpFQHy8JNBe3cpVeeoWSGdGsXqVQEdrBD2MtYfeZLiMhnelqlPG7eVGKX5wcVI63WQYPrx6VDxmZi43Z74+h7d1fVoDcaal+zqXLrh3mYCAsBL7308YT2cRP249tMU51haJOv84MW9zOM56kv5ThnKsIAubVNMQyJAa+ziVGtUJAZtUmXYZwR5VCJttm3Jhj0ckTVJE8ytr6/jjnsYeURWSpJnAL9wKSZrLO7H7PeC5hJV5l199gZZhAF7BcnkZnNjLuNUSqQdG1Kch+JSS48UqnMB8qonEUysidI8RDklOmSYWCRjVasKpSfu4dDSopNgovEpJ7vkEtBgoWTDAnyFl7BplwWuGFO2LcIdvvs1J4jqE3hWSl5YjOsLLI9f42GsU9u2bQbl8huXCUyG9ijPPu429Hrr6v/Z62mRL1WG/ngh49+H4JA3X7rlhLQRkNFx2+8oSZDx02mpTzwpLlw4b2P8TTrwz9owl6XLZ5ftLifYcZL03d2oGwFOPdXGCYu9cki3spN3LV3yFtTmJsbBG6DynxMtLYOuyG78z/HfqXC67fgRukOkVPCnplkIu+TbXYYZGVqwSqdADLL41r2OqLg0RMtzCwlLdYIA4mXRhQHu9hhh9AoYIlMlfOlNgmC1Chi5ill9h54s1cIkGSjJtYejPo3WeTIkcTbJEgs9qiRUCDGwERSStrkXhnDsPCzPk47JIksem4dzxXYBZdtWvR6FbJ6E3+xjucIzPka/o1Xeea6z/a2itCzVfWjWKkoER/ntnd3VV58aurAxfFoVcyYwwuSLl+G73xHRe6+ryL0VksJ/eamKqUMQxUhP0y0tdBqjhMt7ifIx/W99n1VPVEowO4Ptgmly9xMzgy3CO58lzRKsQoZ6dwi9g/+CH9tBd/1eLv1efr+JN7efaJGk73NLaL+gKnKkFq8zZ3Y5/amSRCZCNdByJSsExPGLp4VUSrk9OsTzG79PnP5Kk2xQ9/0yZEkSYifDpCY2EBbFqjBSLxVOw+bfNSUTyViUoyRK02OPfJ0NxCEODhCMpTmaIVrTI5DGg6RnkOegfRsnDxi02txz3+B/uLzvNlfYEGs0U7LlNoBy1dtuobydVm8etBJ6OJFVeFi2ypaNwzVZAPeW8nyQROZR90gLl5U7+fWlorgx487N6dEvd1+70Kl84b2cj89aD/3E+K4fK99X1VyfO6lkJc+k1HYX2PnrV2CQoOhXUbeuYXY3UGaNt3CJKlfozjcpdK9y31jBtHepxs47GxJ3rzl8v2VOtbOPWayNcwsopOXcF1B22qywySJXcQWMfS6uDLGSFOSYYYd9SgwJLV9sAQFAgygJrdw6eGPLAWMkbCrnLrqsRrhYJJgjoQ9wmZAcbQ/pyyC0eSrpMSQmtHBTQZU8jaWIel6kwzzIv3mEm1vmkm7TS+yiLwaftmkJ6owGFBu3+Wtt1RlzHgF5tzcgUWvaaofy6tXn7zH53jR05iJCfVYSaLe18FAXWq181+Jor3cTxc6cj8hjs33ehQqBbc32Lm5i9GawPckSauJGK6TugWM+1sUwn1kyeWnpRt0hyayHVCp9phItxje9xm0U4ytDZrRO4j2HYbWPHd4jhnvHkNXIAtNZD+mi4kVuRTDe5ieILAaJMKkEd7DSBIMGYGExHDp5R4zrFOkB6hIwoJRAw4YN/RwSchHfjPpyN99hxlVTikzHJExzQYSkBiQW2RCkAiXQrRLUG5SSLvsbO6xb17m1eoKa2mFirlFXG0RyTJ+EnORW2SFBYLA5/btA0uBiYn3C/iTvgcPKzUce7mvrh5Mno4nv89zJYr2cj9dPJG4CyG+DPxT1Fn0r0kp/8GR2/8m8N+jzr63gb8kpVw55rGeK47F9/pQwnfPn8cOb2PvxUjHxTYzxFQd08sp9tYJbUFZRlyMf8xmx8bIEpY3VglzH1HyqWztUN56B9O12MkaEA+4bP+Y/bRBoRdytbRGx6iS+lMYMqdWlgyteYreAK8tsbc2GITqeUPpIHJJjS4xDg4ONumDvqlq/amy+rVGSRk5ug0cOjTpU6NAjwI7BNLFJRrd3yIjx5cDfCMlt3yyzMQzh7SGa2xanyfyW1hOTNxqUZ6uEMXQrAlKrTKW3KZ8YfE9NgEfZ+Ly6LqDO3fU9c99Ton+5qaK2o+uKD2PaC/308VjxV0IYQK/CvwZYA34thDi61LKNw4d9n3ghpRyKIT4H4F/BPyFpzHg88Kx+F4fCpVCAaVLl5E7mxCFCMtGzM4Q9QbYa5sUTIdkv88UW3h9QdeskG2bDFvXMPf2aAzXkI7F0CyTm9CWJRwZ0xD73BOzSEqUSibT/h5ZGFGJNgiCHMMQFMSQoDJDYsa44R671hR2MmSCLSJcfNxRjM6DqhhjVCEjRmWQytNdkmJikNBkk4wMSEgoE1HAHJVSmmSqC1VmkRgu5RIM7QJVmTBlbrE7f51Z84/oyDbtYZmik9CsRGQTc7S8ENtXUftg8PEjyqPrDnz/YMK0UFB/TfPTEblqL/fTxZNE7q8A70gpbwEIIX4T+ArwQNyllL936PhvAr94nIM8jxyL7/WhUMnzIJ6YxZMZ5Bnp3BLZnRX81TeISxO4YQez7JD2A4rxPk6wRac8xdze6+RJiiEkkWmT9EPqeQ8pM2SYEgmXZskncibJija9zi41P8KNBxSyLmGvRNbt4EZ9io5BUCgxoMVU8lMgxyXCIsIeSbWJEnIHlZoZi72aXI0pjEyBLTJSDFIs+pRxCSnTI8MgMwqIPAPbJfKqJKZDOH0Re6bFK1cE/Wt1Nv/wEpftdfLZIWvbLm9255kuGnQCB0McuCKO+TgTgYfXHRSLB6tMx+/tpyVy1V7up4snmVCdA+4e2l4b7XsUfxn47Y8zqE8Dj2s0/ESMQyVGtdWGT1idIvcKJGFOkpn4C5OYC4vkmcQKu/h5D89MEJ5FwTGomx2sPMbt3KO4d4fGcI0gkBQG9zHDLo6M2Mvq9KwGfrjPtNigUjHZaVzByDOmujcRtk1YqBHlJnE/pR5vUGOHIh3qbOETj6L1A8aVMtahi4nEIMajjyQfrW+1mebeyPMdVVeTR2SOy355hr3qJXrFaUS1xqDQolFX/8v5l1rMvjRN/YV5Klfn8IsGO+sRA7/Fzo6qWhkOlagf10TgobfjAZ+myPVYPtOaY+NJInfxkH3yIfsQQvwicAP4wiNu/2XglwEWPw3nqY/hY9c1HwqVfM9hrhmzvynoLr+E58FU/1386QnSzl327AnceIjAIclSTAFWFhLv9/DzlKFdIe30kVmAl0tsGeJjsuJMYuUBbiGlmnbBdjH3d6haRfreFLvmJIXefYrRPlma4YsYLxqMsugmFjyI2MfifjiCZ/RXAjYgyEmwSLHxCSkzIMMmwxq14TMZWA2MSoXQKPNufpEwb+G3CyzUQqLqEv29iIuzgmT+Ovvv9qmYAwY1j7vuEkXfxzdUbXu1euCOeBwTgTpy1bX6p4knEfc1YOHQ9jywcfQgIcSXgL8DfEFKGT3sgaSUXwO+BnDjxo2H/kBoPgRHlzVaHtncEhIfsbsKpQqBWCL8z2/gTZQgrBHc3SROHNx0iCQiq7dw2vcR/SGGJZCWi4gN7otFZA6B9Jhlg539ElHUJs5ByH2cWoiI9vGSGNsIyS0LJxpiE+AzgFE/1IyDChkYlz8eXGe0bQD5aNsYtfsAQUAJA4FNTIBPZJTo1C8QOnW2qpcolj3i6Tmibo+0N6C9EbD8UoJcXIKqT7/eoDAHvXeUF/vMjFopOhy+N2VyHBOBuguR5jTxJOL+beCKEOICsA58FfiLhw8QQrwM/Avgy1LKrWMfpebRjEKlcWpBSmUCtXMz5K41RSvZwFt6BnnrNjkuMT6y4BCnqg48oIhXtRkM2jTMPcLcY8tokRsOGZKJ4QoVS9Lbcui4NvPmfTwxROz2cAa7lPr3CaRP3yhjkGCQjhpzgEXyPlEfX+D9p4TG6CKQ2ECIQ4xLQImiGSNziESBVLpsli6xPfkSdbuPYVvUXl5EXpoirJtMT0WsRiAjFYWP68vHAp4kav/hlMlxTQTqyFVzWnisuEspUyHErwC/gzqb/nUp5U+EEH8f+I6U8uvAPwZKwP8r1GzSqpTyF57iuDVHGHuXjL3DSy2PoJ/xndU5ruRb1Ko9snZM3BDkW7ukXo0Uk0HoIu0M08oZZh5h7lOJd0bWXyYF+ux3p5BuSDlrE9eLmP1t/HgfBgMEIR45Is8eeLUnmDgEFEYuj4d9Yx6HSs+oxU49CgQUMSwDk4y+W8fwfSj6xEaBrFTFLgjipauUnnUJQijb4FdhMdlm21zE85S4X76s7HP7fVWHPjX13pTJpz2dojl/PFGdu5TyG8A3juz7u4euf+mYx6X5kIShithdVwlUVm9RDFaI+znD1KFpSgaVKaRRIF7fx056GNPzsBPSG9qYTpMgNvCCHXwCbAZ4RPSoIcmZi+5QTXsYmYlwIZUWEQVs+hToUGWHFIMctTrVUcuNHvCwiZuHoWrfISejSERMTmqViGVOxR6QTrXoLz9HbS8hX3uD3YvXmL/gkOfqx21qCnAc/GTA4qKKoseVMOOJvmJRXQ5XxOh0iua8oVeonhM8T4n72LdEej6D5hJN5wfk7QFhcxZz5126FAkuvoi9fhs7E5SKAjncwRl2cfDpZxYmBhPsEOACOSW6eAxoZduUgz7teIoeRUp0cIhJsUcplQSL/H3C/mExUJOrQwyySo1yvE9UbpLUy5ivvoYvKxRIydpDdqcvsLUeg+Ny7Zoy+jqaUxmnSj4oXaLTKZrzhhb3c0KrpYyxxpFpkkBs+NSWJ7ArCWK4jpsOsHYjmv0tnPA+pa01yHMyy2Hfa1IMergywCXEJsMkwOM+kh18ejgE5AhK2SalUXZ8vBBJkI46LX08YYeDuveAMoZtgllATs+w31hiYmGZigBRSelvF3AvLdBKV8CBTtth407M7ESEf1XnVDSfbrS4nxN8X/mWvP66quEul5WvSbDnka70MX70Hfy0jztcIVrbphjukPsF7DzAGO7jd7cZ4GOQk6AqV6p0yEdujdao6XVIAYsMi4BsZBwgyHAJeYQr7odGWQGrCdkoh62FG6TCITeKhP0MUSvTCwMqP3udP/mnffY3lvAH24hwwF7bI51YYhEfnVXRfJrR4n6OaDTgtdcOVloCpLUWhc49kvaQLEoobW9TzDt4+QDCISLLiRMJMsEhwx71SEpwRhUvEeZoOjTDwECSYuCRYI+qYdKRve9xkQMJHhYxIg3Zd1p4FY/J4oDhO2s4C5MY124w/6eusDcEq+wjJhaREsIhNKvarEqj0eJ+zjicO377beilPnUX3GcWKHz390nlqLeplIgoIs8NjDzHJkCMjHgFktIoBWOPhD1FOTK6RGTYQIrNuLolO1bv6JTxIqcMw/FIrCLCK7O+cB1XxJhejPncM2pFbqg8XOCgxPFpLvnXfuWas4IW93PM7dtKjLY6Du56jNd6EScqUr/zPUzPgmFClqsl/5IMb+T/IlATmtlI2MdeMHJkASBGDa3Htx13UwALVePetafIvBJOd4e94iz78TKWjPHzjNZqnzfuNZicBMtSfi5RpBYqPa0l/4e7LhWL6nlWVnRljeZ0opt1nFOCQNnNBgG0rUnMoM/ArDJoLDM0SiRRRiB8MiQ2yhBlXKUytgYYuzgeXnSkjskPNds4fjJglwa7/jJrxat07CZO1KboxAT7EXvWFCIKmZtTLQa3tpQfzNycWqwURU+nIcZhv3IhDq6PLQw0mtOEFvdzyva2mlB9+21YlzPcqz7PXtvg9qZLu7xAaBXJM8gR74m+x4Zej2JsADY2/XoaH6AUA4uY/cDh7XiZopPh9bYZvHWXODVolBO2ex6NhhL0556DhYWDbkpPK5I+2nUJ1PYHNc/WaE4KnZY5p7TbSug8D3Lb453+DPbGDnXTZOOZP030vZhZcQe3F5MALioKzx/zuE8jUj9MBoSUSHDxGVLO24R9SdBcYrt4gaXmEHP1Nr1rr5EkqioIPpnJ07PoV67nCD696Mj9nDIYqC/xxZmA3v0h93ZsNoxlOoU5gtBACpscc1T66B0y7TpZMiCgQIcGwrTwoi6t7D7W/DSLrQDp+uxXl3GTPnGsWth9UuLaaqmUTxSp1bDj66e1J6ruafrp5qS/y5qnRLGovsTy7l2GOwMKBcmUs8N6v8rt/iQl2WPHnKQvyjgPWtydPDkqLdNiE0dGiGKBYOEKRTujfHWW/cIcslyl7oc0m59sw+mz5leu5wg+3ei0zBniw5xi12qwuxZQ3nqXYrnGHg1SYxaRdSmlHSLDIe2HhNJDjlrdnTSqvt3HJmefGn27gbU0R1wtYts5c9U9Fq7MkQxiTMejVPrk0wxnyaZA9zT9dKPF/RTyMBGHDy7DO3qfUgnY3sZsVFiyBO03BXF9kqvGLRpbNxl0c2bjdcrsIsg+cBL1kyIEtmhhIsjwKPkpfu8O297zWC2X+WZAOBGRuBGzry3hN056xKebszhHoDk+dFrmlPGoPOndu48+xX7YfVZXwUxDNtIpujsxJSdmdkZSZEipd48gd7FIHwj7054ofRw5sMUsISVyHCK3Ql6uIVyb6SlBP7XptnMM2xwJ+ynNhZwiztocgeZ40eJ+ynhUnnRj49FleEfvk+eq/tsoeFy8YpLPzFGbMJmI72HaEDem8a2MLaaJsU9c2EGJuwCKDHjLuo413cSeqDAsthg2F7n4XAH3T7zK/OcWtbA/IWdtjkBzvOi0zCnjUXlSePQp9tH77O2p7ZwWS/kK/Z7Lu8xyd63LpeYMTriFcT/Bp4sFpIgH/jEnRQIj//gSxRIMKjP0jCny+WfxilWaz3gE2grsQ3OW5gg0x4uO3E8Z4zzpYeJY+ZQ/6hT76H3Gi2rsio99aYn5ZZOSGOBUCzAzQ+a4+EkXnyHpqD31SVfL5Dj0KdF1pvDKFnsTV4mvv0r8/GepXGohGjWdK9ZoPgRa3E8Zj8qTLiw8+hT76H0MQx0zMQEBPj/cX2Sr9gx3/avs3YswbJv90jwgsUet8D4uqoTx8YugHkYGDCmwwQJ3y89jL85TuDJHuSgp2REFMyIotnSuWKP5EOi0zCljnCd9VMu3h51iH71PqwXDoRL5u3fV5GoYwnOLfdrms6z021TkOhUmsYmxiUjIPrIfu0QJ9EeJFCTQo8AOLWJKCNflvr/AbDWmvd4lmV6i8sIS81f8M50r1itFNZ80WtxPIR8lT3r0PmMxGVfRGAa010KyQoWt1jXuVHNIEuwwwCChQvdDjzNDRepjc7EP0wh7TB+PNnV2aeH70PHLSKNI150i/+wkf+q/8Ki/eLZVULtJak4CnZY5p4zFfnLy0MIVz8MzYtpiAqfkEDsFbEJcgoc22zgq1Ee3MyDBIsIixfjQ9r9DDDaY5TbPsMccd5o3KM418M2Q2qUmn/9yhbp39l259EpRzUmgI/dzzrh5he9D7LSwd1bIcOlQxxp0KTNAYpDA+9Iyh0skj9r7jjP1LikxAoE81GTj8YTAu1wlwuctrrMy9QqXn3GpTUsmn5vgxcsD/GIBzLM/i6pXimpOAh25n3MKBahWlUvkfuiTzC5Rqpo4g31St8AqSwhM0gc9lx7OUcE2OEjDjG9LMZ5oQjUGdpjmbZ7np3yGtys/Q3GxSaue8sIXJrh8vYQf9yCKCEotVleVdfHq6tk0vXpUBZSu/tE8TbS4n2OCQEWHCwuqt2qhAHuBz61kkU5lASyHHk12mSDGIf4QJgSCA1Ef18hLHp9zD4EuFXaZwCVmbeIF5hZMJv7YRapf/BmcWpGa0YFCgWByiZUt/8y7GuqVopqTQIv7OWZ7G6amVGpmdlY1tRBCRfHUG4AgBSKckVBnJBwI9AdF4WNxTzAepGjsh7hLjgU/A3q43GeefVr8hOv8vv9fwswijbqk1b/N8pJk+loT/+IcvPQS233/XOSq9UpRzUmgc+7nmDBUKRkp4Y03YH8fLl9Wke+9P/D4if0iX+QNcgyGuPgMMIAI9cF41IdjLNZj64IEF8hxiXA4sBIYN/9IEUTYtGmwwyQdKvwuf45Ko8zcZI/yn3iJL7zUZqq0BqWL0FLKd55y1XqlqOaTRov7OWac6x2nZixLRe3tNkQhbAY1VlnGJ8AmxSdCkmKTYI2i8KO59mx0AZBkJPgPWvPlGCTkozWv4+NMUiw6VFnhIttMsWfO0WyaPHNN8tLPL/L8z9fxvZoa6CEF1K6GGs1HR4v7OabVgps34d13VcS7uqoi+EoFvGWPibfvYpKzxRQ7tGhTY5nb2OSkSAzk+8RdoCL2FBebmDYTmKSU6GETkWKRj7qsSgQZEOFxnwXatLhlXaPbuszissXlGzXqz8+q9ET0ftVutVSOHdT441jlqpeWnv7/TqM56zxRzl0I8WUhxE0hxDtCiL/1kNtdIcT/M7r9W0KI5eMeqOaj4ziQJNDvH2zvmy0a7oAq+6PYOkNgIsixSbBHfjPjhUpwYDGgKtotImq0mSSiNKqTMUlxSfHpU6ZLg4Aqq1zmR/bn+MPSn2W79QILSyYT/oDK5UncivfIGUadq9ZoPjqPjdyFECbwq8CfAdaAbwshvi6lfOPQYX8Z2JdSXhZCfBX4h8BfeBoD1jw529sq5/7SS7C+DvfuwYULKhrupT5bUy9y5dYfUWeXAWUMckwkORYRApeEHB4scFIpGZXA6bozhH4VPxiSZQ6xrBJnaoo2Q5CPKm8Su8R2/TpW4wKR9wJexWXgtomWF1gyPAoMVC37I1Rb56o1mo/Gk6RlXgHekVLeAhBC/CbwFeCwuH8F+Huj678F/DMhhJBSnrTZ4Kea8YSkEDA3Bz/9qSondBz4zGdgf3idlY3nMcM3KIkBnkwYUCXHxiYiwsYiJCcnxSDEI6XIoNAkrTXJGnO00yrG7ibl8G0sSzKkQJqCTQxJxl7jMixdIjTnqfgudXfA3KSB/4UFpl722TTA0z4rGs2x8yTiPgfcPbS9Brz6qGOklKkQogNMADvHMUjNR+PwhKTvq1r3sAAOZwAACHlJREFUb31LTaxGEaxPLNC79Fnu3RPMRbchdbCFQU9MMmfvIZIeRpCRIsntAqlVY8+fZW3mFSatHQZZgfLyBLVnXO6vNCl31/HTHlaWEjfmkXPL9BdfJY0rPLdY5vOlNrZtMLxynannlBFYFKkzDB2dazTHy5OI+8NWkx+NyJ/kGIQQvwz8MsCi/jY/dY5OSBYKcO2aqpZ5911oLfo0L75Kdb/B4Lvfxu/eAlFgopgjvRbdfkbl3puYWYx0PLL6AoY/xey0oFSfw124Qr2QUGjfpThTYbe7SLi2SincYeHzz1L6Yy/w/NwMQaHB3tDjp3c9ikstpuYOHB7PammjRnPaeRJxXwMWDm3PAxuPOGZNCGEBVWDv6ANJKb8GfA3gxo0bOmXzlHmYffCLLx401P7Rj+D3f2cB186Z/qWLFAerZBu3mNj9I4z2Dt7eJsPpZaxCgaRUxml3aNVTyrUt/P/lrxPkDru/90NiMY036DCTdUifqVOdXcD/ws/Cs89CHONHEXOfWSC7qFab6tJGjebp8yTi/m3gihDiArAOfBX4i0eO+TrwS8AfAv8V8Ls63346eNSEpO/DK6/A5cs+P/3hEsHdbazGDMtXoPiT+9BvwMI8cU8S7kcYcYgzP4n/wkX8CwvQ6+FPTDBRGNBPTeLcwq7XqRoh/pULKiQfLysF2N6m1VrUpY0azSfEY8V9lEP/FeB3UGtVfl1K+RMhxN8HviOl/DrwL4H/SwjxDipi/+rTHLTm+Gg04NUv+sCiuqzWYK4Ea2v4YYh/757q/JHn0GwqsZ6fV9t7e/glB1/2YHZKPeA778DWFiwvHzzJKPfyuEYkGo3m+HiiRUxSym8A3ziy7+8euh4C//XxDk1zIoShMqRZXz+Iuns9VWRu2yoaLxZVAn9/Xwn922+rELxQUNu93nsf81DuRZc2ajSfDNo4TPNePE8J+bVr6m+rpQTdttX2hQuqrVOppJa6GoYqpF9YgHJZnQrMzChB1xaIGs2Joe0HNO9lXGJTKMDLL8PmphLtMFRpmXpdCbthwNWr8Prrqnh+elotg40iJfphqHMvGs0JosVd814OJ8aTREXkn/2suu1hHZ6vX1cC326rH4HJSRXpP/usFnSN5gTR4q55P49KjD9sX6OhVkc9TPg1Gs2JocVd8/HRs6QazalDT6hqNBrNOUSLu0aj0ZxDdFpG88Hs7amOH92uqoK5elXl2Y8SBDrvrtGcInTkrnk0e3vwzW+qqpmJCfX3m99U+w8TBKp8MsvUAqcsU9tBcDLj1mg0Wtw1H8DNm6qmfVzXPr5+8+Z7j9veVqtZXffAT8Z11X6NRnMiaHHXPJpuVy1mOkyhoPYfJgyVf8xhHEft12g0J4IWd82jqVSUadhhhkO1/zDjriCH0V6+Gs2JosVd82iuXlVdtft95QI5vn716nuPa7UOPGS0n4xGcyrQ4q55NOPVp7YNu7vq72uvvb9aZmxZYJrKT8Y0tZ+MRnPC6FJIzQfTaMDnPvf44/QqVY3mVKEjd41GozmHaHHXaDSac4gWd41GozmHaHHXaDSac4gWd41GozmHaHHXaDSac4gWd41GozmHaHHXaDSac4iQUp7MEwuxDax8jIdoAjvHNJzTiH59Zxv9+s4+p/U1LkkpH+vtcWLi/nERQnxHSnnjpMfxtNCv72yjX9/Z56y/Rp2W0Wg0mnOIFneNRqM5h5xlcf/aSQ/gKaNf39lGv76zz5l+jWc2567RaDSaR3OWI3eNRqPRPIIzK+5CiH8shHhLCPFDIcS/E0LUTnpMx4EQ4stCiJtCiHeEEH/rpMdz3AghFoQQvyeEeFMI8RMhxF876TE9DYQQphDi+0KI/++kx3LcCCFqQojfGn3/3hRCPIHh/9lBCPE3Rp/NHwsh/m8hxJnsF3lmxR34j8ALUsoXgbeBv33C4/nYCCFM4FeBPws8D/w3QojnT3ZUx04K/M9SyueA14D/6Ry+RoC/Brx50oN4SvxT4N9LKZ8FrnOOXqcQYg74q8ANKeULgAl89WRH9dE4s+IupfwPUsp0tPlNYP4kx3NMvAK8I6W8JaWMgd8EvnLCYzpWpJT3pJTfG13voYRh7mRHdbwIIeaBnwd+7aTHctwIISrAnwT+JYCUMpZStk92VMeOBfhCCAsoABsnPJ6PxJkV9yP8JeC3T3oQx8AccPfQ9hrnTPgOI4RYBl4GvnWyIzl2/gnwvwL5SQ/kKXAR2Ab+1Sjt9GtCiOJJD+q4kFKuA/8HsArcAzpSyv9wsqP6aJxqcRdC/KdR3uvo5SuHjvk7qFP93zi5kR4b4iH7zmU5kxCiBPwb4K9LKbsnPZ7jQgjx54EtKeV3T3osTwkL+Czwz6WULwMD4NzMDQkh6qiz5QvALFAUQvziyY7qo3GqG2RLKb/0QbcLIX4J+PPAz8nzUdO5Biwc2p7njJ4SfhBCCBsl7L8hpfy3Jz2eY+ZngV8QQvw5wAMqQoh/LaU8kwLxENaANSnl+GzrtzhH4g58CbgtpdwGEEL8W+DzwL8+0VF9BE515P5BCCG+DPxvwC9IKYcnPZ5j4tvAFSHEBSGEg5rI+foJj+lYEUIIVL72TSnl/3nS4zlupJR/W0o5L6VcRr1/v3uOhB0p5X3grhDi6mjXzwFvnOCQjptV4DUhRGH0Wf05zuiE8amO3B/DPwNc4D+q94BvSin/h5Md0sdDSpkKIX4F+B3ULP2vSyl/csLDOm5+FvhvgR8JIX4w2ve/Sym/cYJj0nw4/grwG6MA5Bbw353weI4NKeW3hBC/BXwPle79Pmd0papeoarRaDTnkDObltFoNBrNo9HirtFoNOcQLe4ajUZzDtHirtFoNOcQLe4ajUZzDtHirtFoNOcQLe4ajUZzDtHirtFoNOeQ/x8RURkUSPO7CwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(Xp['u-g'],yp,c='blue',alpha=0.1)\n", "plt.scatter(Xp['u-g'],pred_yp,c='red',alpha=0.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### d) Computing the RMS errors\n", "* Compute the RMS error for the training and validation/test set: $RMS = \\sqrt{\\frac{\\sum_i^n (y_i - y_i')^2}{n}}$\n", "* Plot the error for $s \\in [0.1,5]$\n", "* Plot the error for $n \\in [100,10000]$ step = 100\n", "* Plot the error for $m \\in [10,100] $ step = 1" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [], "source": [ "def get_errors(n,m,s,func):\n", " X,y,mu,Xp,yp = get_matrices(n,m)\n", " (pred_y,pred_yp) = train_and_predict(X,y,mu,Xp,yp,s,func)\n", " return (linalg.norm(pred_y - y)/np.sqrt(len(y)),linalg.norm(pred_yp - yp)/np.sqrt(len(yp)))" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sspace = np.linspace(0.1,5)\n", "train_error=[]\n", "test_error=[]\n", "for s in sspace:\n", " (tne,tse)=get_errors(1000,20,s,gauss)\n", " train_error.append(tne)\n", " test_error.append(tse)\n", "plt.plot(sspace,train_error,label='train',c='red')\n", "plt.plot(sspace,test_error,label='test',c='blue')\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XucVXW9//HXh5nhMoCA3OQyCCSSeAMcELyQWihYiaUomudIdQ5Wx05pWlpHTapfWlboI09KZmodRbKLlChoeUtFGAkRBAERYUBxRK5yx8/vj+/ezJ7Nnpk1s/fsPbP3+/l4rMdae932Zzabz1r7+/2u79fcHRERKQytch2AiIhkj5K+iEgBUdIXESkgSvoiIgVESV9EpIAo6YuIFBAlfRGRAqKkLyJSQJT0RUQKSHGUncxsHHA7UATc4+63JG0fA0wDTgAmufsjCdv6AfcAZYAD57r7mtreq1u3bt6/f/+G/RUiIgXulVdeed/du9e3X71J38yKgDuBsUAlsMDMZrn76wm7rQUmA9ekOMUDwI/c/Ukz6wB8VNf79e/fn4qKivrCEhGRBGb2dpT9otzpjwRWufvq2IlnABOAg0k/fuduZjUSupkNAYrd/cnYfjuiBCUiIk0jSpl+H2BdwuvK2Loojga2mNmfzOxfZvbT2C8HERHJgShJ31Ksi9o1ZzFwOqHYZwQwkFAMVPMNzKaYWYWZVVRVVUU8tYiINFSU4p1KQiVsXF9gQ8TzVwL/Siga+gswCvhN4k7uPh2YDlBeXq6+nkWkwfbt20dlZSW7d+/OdShNqm3btvTt25eSkpJGHR8l6S8ABpnZAGA9MAm4NOL5FwBdzKy7u1cBZwGqpRWRjKusrKRjx470798fs1QFFC2fu7Np0yYqKysZMGBAo85Rb/GOu+8HrgTmAMuAme6+1Mymmtl5AGY2wswqgYnA3Wa2NHbsAULRzt/N7DVCUdGvGxWpiEgddu/eTdeuXfM24QOYGV27dk3r10ykdvruPhuYnbTuxoTlBYRin1THPklovy8i0qTyOeHHpfs35s0TuVu2wM03w4IFuY5ERKT5ypukbwbf/z4891yuIxGRQrRlyxb+93//t8HHnXvuuWzZsqUJIkotb5J+p05w2GGwdm2uIxGRQlRb0j9w4ECdx82ePZvOnTs3VViHiFSm31L066ekLyK5cd111/Hmm28ydOhQSkpK6NChA7169WLRokW8/vrrnH/++axbt47du3fzjW98gylTpgDVXc/s2LGD8ePHc9ppp/Hiiy/Sp08fHn30Udq1a5fROJX0RST/fPObsGhRZs85dChMm1br5ltuuYUlS5awaNEinnnmGT796U+zZMmSg00r7733Xg4//HB27drFiBEjuOCCC+jatWuNc6xcuZKHHnqIX//611x00UX88Y9/5LLLLsvon5E3xTsAZWVK+iLSPIwcObJGW/o77riDE088kVGjRrFu3TpWrlx5yDEDBgxg6NChAJx00kmsWbMm43Hl3Z3+++/Dzp1QWprraEQkZ+q4I8+W9u3bH1x+5plneOqpp3jppZcoLS3ljDPOSNnWvk2bNgeXi4qK2LVrV8bjyqs7/X79wnzdurr3ExHJtI4dO7J9+/aU27Zu3UqXLl0oLS1l+fLlzJs3L8vRVcu7O30IRTyDB+c2FhEpLF27duXUU0/luOOOo127dvTs2fPgtnHjxnHXXXdxwgknMHjwYEaNGpWzOPM26YuIZNuDDz6Ycn2bNm14/PHHU26Ll9t369aNJUuWHFx/zTWpxqRKX14V7/TpEx7SUtIXEUktr5J+SQn07q0yfRGR2uRV0ge11RcRqYuSvohIAcnbpO8af0tE5BB5mfT37AENtSsicqi8TPqgIh4Rya7Gdq0MMG3aNHbu3JnhiFKLlPTNbJyZvWFmq8zsuhTbx5jZQjPbb2YXJm07YGaLYtOsTAVem7LYEO5K+iKSTS0l6df7cJaZFQF3AmOBSmCBmc1y99cTdlsLTCaMh5tsl7sPzUCskehOX0RyIbFr5bFjx9KjRw9mzpzJnj17+NznPsfNN9/Mhx9+yEUXXURlZSUHDhzghhtuYOPGjWzYsIEzzzyTbt268fTTTzdpnFGeyB0JrHL31QBmNgOYABxM+u6+JrbtoyaIsUEOPzx0tqakL1K4ctCzco2ulefOncsjjzzC/PnzcXfOO+88nnvuOaqqqujduzePPfYYEPrk6dSpEz//+c95+umn6datW2aDTiFK8U4fIPFxp8rYuqjamlmFmc0zs/NT7WBmU2L7VFSlWQNrpmabIpJbc+fOZe7cuQwbNozhw4ezfPlyVq5cyfHHH89TTz3Fd77zHZ5//nk6deqU9dii3OmnGnq9IQ0i+7n7BjMbCPzDzF5z9zdrnMx9OjAdoLy8PO3Glkr6IoUt1z0ruzvXX389V1xxxSHbXnnlFWbPns3111/P2WefzY033pjV2KLc6VcCZQmv+wIbor6Bu2+IzVcDzwDDGhBfoyjpi0i2JXatfM4553DvvfeyY8cOANavX897773Hhg0bKC0t5bLLLuOaa65h4cKFhxzb1KLc6S8ABpnZAGA9MAm4NMrJzawLsNPd95hZN+BU4CeNDTaqfv1g40bYvRvatm3qdxMRqdm18vjx47n00ksZPXo0AB06dOD3v/89q1at4tprr6VVq1aUlJTwq1/9CoApU6Ywfvx4evXq1eQVueYRHl01s3OBaUARcK+7/8jMpgIV7j7LzEYAfwa6ALuBd939WDM7Bbgb+Ijwq2Kau/+mrvcqLy/3ioqKtP6o+++HyZNh5Uo46qi0TiUiLcSyZcs45phjch1GVqT6W83sFXcvr+/YSP3pu/tsYHbSuhsTlhcQin2Sj3sROD7Ke2RSYrNNJX0RkWp590QuqK2+iEht8jLp94395lC/+iKFJUpxdUuX7t+Yl0m/TRvo2VN3+iKFpG3btmzatCmvE7+7s2nTJtqm0UIlr8bITaRmmyKFpW/fvlRWVpLuA57NXdu2benb95Aq1MjyOukvXZrrKEQkW0pKShgwYECuw2j28rJ4BzSYiohIKnmd9HfuhA8+yHUkIiLNR14nfVC5vohIIiV9EZECoqQvIlJA8ifpb9wIw4bBzJkAdO8e2usr6YuIVMufpN+pUxgqZ8UKQIOpiIikkj9Jv23bcHuf0PeCkr6ISE35k/QBysqU9EVE6pDXSb+sDN55B/buzWFMIiLNSF4n/X79whO569fnMCYRkWYkUtI3s3Fm9oaZrTKz61JsH2NmC81sv5ldmGL7YWa23sx+mYmga1VWBlu3QmysyXizTXWxLCIS1Jv0zawIuBMYDwwBLjGzIUm7rQUmAw/WcpofAM82PsyI4j3PVVYCaqsvIpIsyp3+SGCVu692973ADGBC4g7uvsbdFxPGwq3BzE4CegJzMxBv3crKwjx2ax9/qaQvIhJESfp9gMQCksrYunqZWSvgZ8C1DQ+tEZKSfmkpdOumpC8iEhcl6VuKdVE7LP4aMNvd6yxVN7MpZlZhZhVpDYDQp094KkvNNkVEUooyiEolUJbwui+wIeL5RwOnm9nXgA5AazPb4e41KoPdfTowHaC8vLzxPeCXlMARRxyS9FeubPQZRUTySpSkvwAYZGYDgPXAJODSKCd39y/El81sMlCenPAzrqzsYEUuhKT/1FOh6aal+s0iIlJA6i3ecff9wJXAHGAZMNPdl5rZVDM7D8DMRphZJTARuNvMcjdQYd++h9zp79gRWnKKiBS6SGPkuvtsYHbSuhsTlhcQin3qOsd9wH0NjrChyspg7tyDt/aJzTY7d27ydxcRadby64lcCEk/4dZebfVFRKrlZ9IHtdUXEUkh75P+EUeERj1K+iIi+Zj0410xxJJ+q1bQv//BsVVERApa/iX9Xr1Cpk9otjliBMyfn8OYRESaifxL+sXF0Lt3jWabJ58culdOuA6IiBSk/Ev6cEi/+qNGhfnLL+coHhGRZqIgkv7QodCmDcybl8OYRESagfxO+h668WndGoYPV9IXEcnPpN+3L+zeDZs2HVw1ahRUVMC+fTmMS0Qkx/Iz6cfb6ifU3I4aFa4DixfnKCYRkWYgv5N+ispcFfGISCErmKRfVhaezlULHhEpZPmZ9Hv2DH0vJCR9s3C3rzt9ESlk+Zn0W7UKQyeuqzlK46hRYRSthPpdEZGCkp9JHw4ZTAX0kJaISP4m/aRhEwHKy8OPABXxiEihipT0zWycmb1hZqvM7JAxbs1sjJktNLP9ZnZhwvojzewVM1tkZkvN7CuZDL5O8aT/0UcHV7VvDyecoDt9ESlc9SZ9MysC7gTGA0OAS8xsSNJua4HJwINJ698BTnH3ocDJwHVm1jvdoCMpK4O9e6Gqqsbqk08OST/hWiAiUjCi3OmPBFa5+2p33wvMACYk7uDua9x9MfBR0vq97r4n9rJNxPfLjBTNNiGU62/dCm+8kbVIRESajShJuA+QmDkrY+siMbMyM1scO8et7r6hYSE2UtJgKnF6SEtEClmUpG8p1nnUN3D3de5+AnAUcLmZ9TzkDcymmFmFmVVUJRXHNFotd/pHHw2dOyvpi0hhipL0K4GyhNd9gQbfrcfu8JcCp6fYNt3dy929vHv37g09dWrdu4f+lJOSfqtWoVxfSV9EClGUpL8AGGRmA8ysNTAJmBXl5GbW18zaxZa7AKcC2SlNNwtFPCmGyxo1CpYsgR07shKJiEizUW/Sd/f9wJXAHGAZMNPdl5rZVDM7D8DMRphZJTARuNvMlsYOPwZ42cxeBZ4FbnP315riD0kpaTCVuFGjQuudioqsRSIi0iwUR9nJ3WcDs5PW3ZiwvIBQ7JN83JPACWnG2HhlZfDss4esHjkyzOfNgzPOyG5IIiK5lL9P5EIo3lm/Hg4cqLH68MNDha7K9UWk0OR30i8rCwn/3XcP2RTvcdMjt0MSEWn58j/pQ63l+hs3wttvZzkmEZEcKoykX0sLHlA/PCJSWAoj6ae40z/+eGjXTuX6IlJY8jvpd+kSMnuKpF9cHLpafuGFHMQlIpIj+Z30zWptqw9wzjmwYAGsXZvluEREciS/kz7UmfQnTQrzhx/OYjwiIjlU0En/Yx8L/fA8mDwKgIhIniqMpP/OO7BvX8rNl1wCixbBsmVZjktEJAcKI+m7h8SfwkUXhZ43H3ooy3GJiORA/if9WgZTievVC848MxTx6OlcEcl3+Z/062irH3fppfDmm+p1U0Tyn5I+8PnPQ+vWqtAVkfyX/0m/Uyfo2LHOpN+5M5x7bmi6mdQhp4hIXsn/pA+hH+UlS+rc5ZJLQl1viu73RUTyRqSkb2bjzOwNM1tlZtel2D7GzBaa2X4zuzBh/VAze8nMlprZYjO7OJPBRzZ6NMyfD/v317rLZz4DHTqoFY+I5Ld6k76ZFQF3AuOBIcAlZjYkabe1wGQguVR8J/Dv7n4sMA6YZmad0w26wUaPhg8/rPNuv7QUPvc5eOQR2LMni7GJiGRRlDv9kcAqd1/t7nuBGcCExB3cfY27LwY+Slq/wt1XxpY3AO8B3TMSeUOMHh3mL71U526XXAJbtsATT2QhJhGRHIiS9PsAibWglbF1DWJmI4HWwJsNPTZt/ftDz571Jv1PfQq6dVMRj4jkryhJ31Ksa9BjTGbWC/gd8EV3/yjF9ilmVmFmFVVVVQ05ddQAwt1+PUm/pAQmToRZs2DHjsyHISKSa1GSfiVQlvC6L7Ah6huY2WHAY8D/uHvKIUvcfbq7l7t7effuTVT6M3o0rFoF9VxULr0Udu2CRx9tmjBERHIpStJfAAwyswFm1hqYBMyKcvLY/n8GHnD3PzQ+zAyIl+vXM1TWKaeE57n0oJaI5KN6k7677weuBOYAy4CZ7r7UzKaa2XkAZjbCzCqBicDdZrY0dvhFwBhgspktik1Dm+QvqU95eRgu68UX69ytVatQoTt3LmyI/HtGRKRlMG9mvYyVl5d7RVN1gjNiBLRvD888U+duq1fDoEHwrW/BT37SNKGIiGSSmb3i7uX17VcYT+TGjR4dxkes4yEtgIEDQ4XuXXeFJpwiIvmisJL+KafAzp2weHG9u37nO7B9e0j8IiL5orCSfsSHtACGDYOxY+H222H37iaOS0QkSwor6ffrF0ZNiZD0Ab79bXj3Xfjd75o4LhGRLCmspB/xIa24T34Shg+Hn/5UXS6LSH4orKQPIemvXg3vvVfvrmahbH/lSvjLX7IQm4hIEyvMpA+R7/YvuCC05rn1Vo2hKyItX+El/ZNOCp3sREz6RUVwzTWhpacGWBGRlq7wkn7btqFpTsSkDzB5MvToEe72RURassJL+lD9kNa+fZF2b9cO/vu/Qz/7EZr4i4g0W4Wb9HftgldfjXzI174WhlNUtwwi0pIVbtKHBhXxdOkCU6bAjBnw1ltNFJeISBMrzKRfVga9ezco6QNcfTW0bg3f/W4TxSUi0sQKM+mbhX54Gpj0+/QJLXlmzGjwoSIizUJhJn0IRTxr1oR+Fhrg298OPTlcdZXa7YtIy1PYSR8afMveoQP86Efw8svhjl9EpCUp3KQ/fHgooG9EOc3ll4em/tddFxoBiYi0FJGSvpmNM7M3zGyVmV2XYvsYM1toZvvN7MKkbU+Y2RYz+1umgs6INm1C4v/nPxt8aKtW8POfw9q18ItfNEFsIiJNpN6kb2ZFwJ3AeGAIcImZDUnabS0wGUg1nPhPgX9LL8wm8pnPhDv9N95o8KFnnAHnnw8//nGDqwVERHImyp3+SGCVu692973ADGBC4g7uvsbdFwMfJR/s7n8Htmci2Iz7z/8MRTy//GWjDv/JT2DPHrjhhgzHJSLSRKIk/T7AuoTXlbF1LV+PHnDxxXDffbBtW4MPHzQIrrwSfvObBj3cKyKSM1GSvqVYl9HGimY2xcwqzKyiqqoqk6eu39e/Djt2hMTfCDfcEJ7WvfpqNeEUkeYvStKvBMoSXvcFNmQyCHef7u7l7l7evXv3TJ66fiNGwKhRoYjno0NKp+rVpQt8//vwj3/ArFmZD09EJJOiJP0FwCAzG2BmrYFJQH6lt69/PQyPNXduow7/ylfguOPgq1+FzZszHJuISAbVm/TdfT9wJTAHWAbMdPelZjbVzM4DMLMRZlYJTATuNrOl8ePN7HngD8AnzazSzM5pij8kLRdeCEccAXfc0ajDS0rg/vvDCIzf+EaGYxMRySDzZlYQXV5e7hUVFdl/45tvDuU0K1aEGtpGuOkmmDo1jKc7YUL9+4uIZIqZveLu5fXtV7hP5Ca74opwy37nnY0+xfe+B0OHhi6Y338/g7GJiGSIkn7cEUfAxInw29/C9sY9VtC6dWgEtHlzqCYQEWlulPQTff3rob3+Aw80+hQnngg33hg6Y3vkkQzGJiKSASrTT+QOJ58c7vRffz30u98I+/aFTjzffhuWLg3PgImINCWV6TeGWbjbX74cnnqq0aeJt+bZti2MrdvMrqsiUsCU9JNddFG4NW9k8824Y48NLXn++Ed46KEMxSYikiYl/WRt2oSWPI89Bi+8kNapvvWtUMxzxRWwbFmG4hMRSYOSfirXXgv9+sEXvwg7dzb6NMXF8PDDUFoaumHeujWDMYqINIKSfiodO8K994auGb773bROVVYGf/gDrF4N//7vjereR0QkY5T0a3PWWfBf/wW33w7PPpvWqcaMCSNtzZoFP/xhhuITEWkEJf263HorDBwIX/pS6H45DVdeGe70b7oJ/ta8Bo4UkQKipF+X9u3DI7ZvvRVGQU+DGdx1F5x0EnzhC6GLHxGRbFPSr8/pp4euM++8M3San4Z27eBPfwrdNZx/fqN7exARaTQl/Sh+9CM4+uhQzNOIYRUT9esHM2eGO/1/+zc4cCBDMYqIRKCkH0VpaSjmWbcuNOdM05lnwrRp8OijoUdOtegRkWxR0o9q9OjwtNX06aHxfZquvDJU6t57bzitumoQkWwoznUALcrUqTBvXmiG06NHuGVPw003hQe2pk2DTp3CGC4iIk0p0p2+mY0zszfMbJWZHdKMxczGmNlCM9tvZhcmbbvczFbGpsszFXhOtG0bymQGDQo1sYsXp3U6s9B+/0tfCgN3/fznGYpTRKQW9SZ9MysC7gTGA0OAS8xsSNJua4HJwINJxx4O3AScDIwEbjKzLumHnUNdusDjj8Nhh8G4caH/5DSYhRKjiRNDMc8992QoThGRFKLc6Y8EVrn7anffC8wAaowA6+5r3H0xkFwleQ7wpLt/4O6bgSeBcRmIO7fKyuCJJ2DXrpD4N21K63RFRfD738P48aFiNwNVBiIiKUVJ+n2AdQmvK2Prooh0rJlNMbMKM6uoqqqKeOocO/bY0K/CW2/BZz+bVsdsENruP/JIeCzgssvgd7/LUJwiIgmiJP1Uw0dFbWsS6Vh3n+7u5e5e3r1794inbgZOPx0efDBU7l5yCezfn9bpSktDFw2f+ESoK/7JT9SqR0QyK0rSrwTKEl73BTZEPH86x7YMn/88/PKX4a7/sstg7960TtexI8yeHa4h3/kOXHWV2vGLSOZEabK5ABhkZgOA9cAk4NKI558D/L+EytuzgesbHGVz97WvheKda6+FzZvDcFkdOjT6dK1bhzL+I46AX/wC3nknjNXepk0GYxaRglTvnb677weuJCTwZcBMd19qZlPN7DwAMxthZpXAROBuM1saO/YD4AeEC8cCYGpsXf655prwpNXf/w6f/CS8/35ap2vVKjThvO220G3D+PEahEVE0mfezAqNy8vLvaKiItdhNN6sWXDxxdC/P8yZEzrbSdP//R9MngxDhoQy/7Kyeg8RkQJjZq+4e3l9+6kbhkw777yQ7DdsgFNPzcjguF/4Qhiy9623YNiwcHoRkcZQ0m8KY8bAc8/Bvn1w2mmhdU+azj4bKiqgd+9Q1HPTTeqhU0QaTkm/qZx4IrzwAnTuHNpgTp+edvvLo48O14/Jk0M3QOPGwXvvZSZcESkMSvpN6WMfg/nzQ8dsV1wB//Ef4SneNJSWhvri3/wG/vnPUNzzwgsZildE8p6SflPr2jUUyN9wQ8jWp50Ga9akfdovfSnc9ZeWhh8SP/xhKE0SEamLkn42FBWF8phZs+DNN8NAuU88kfZpTzwxlPNPnBiuKSNHwr/+lYF4RSRvKeln02c/G7J0375w7rmhA/00u27o1Akeegj+/Gd4910YMQK++13YvTszIYtIflHSz7ajjoKXXgpdNtx8M5xySkaadZ5/Prz+euiz58c/DmX9L76YgXhFJK8o6edCaWnoV2HmTFi9OmTo225Luw1mly6h2mDOnFBffNppoYeINB8OFpE8oqSfSxMnwtKloeH9tdeG9v0rV6Z92rPPhtdeC+PwTp8eflzcdhvs2ZOBmEWkRVPSz7WePeFPfwod6L/+eqidvf32tO/6O3aEO+4IIzqeemq4phxzDPzhD+quWaSQKek3B2ahjH/JEjjjDPjmN6G8PDTET9OQIaHF6Ny5oePPiy4KxT4vvZR+2CLS8ijpNyd9+oQM/fDDoSD+9NNDxzvr16d96rFjQ3POX/86tBo95RQ45xx4/vkMxC0iLYaSfnNjFm7Hly+H//mf0Df/4MGhSU6ahfJFReGh4JUr4dZbYdGiUI3wiU/AU0+p2EekECjpN1ft28MPfhDK+ceODY3vjz0WZsxIeyitjh3h298OvXbefnu48x87FkaPhr/+VSN1ieQzJf3mbuDA8OTVnDnQtm0YR/HEE0Plb5q35qWl8N//HZL+3XfDxo2hZ+jBg8OIXZs3Z+hvEJFmI1LSN7NxZvaGma0ys+tSbG9jZg/Htr9sZv1j61ub2W/N7DUze9XMzsho9IXk7LPh1VfDQOx798IFF4TuHP7617STf5s2MGUKrFgRnu7t2ROuvjo8OHzFFaEFkIjkh3qTvpkVAXcC44EhwCVmNiRpty8Dm939KOAXwK2x9f8J4O7HA2OBn5mZfl00VlFRuNNfuhTuvz+Mn3jeeTBqVOjXJ81ymZISmDQpNBpauDC81QMPhB8WY8aE5R07MvS3iEhOREnAI4FV7r7a3fcCM4AJSftMAO6PLT8CfNLMjHCR+DuAu78HbAHqHc5L6lFcHPpbWL489LH83nswYQJ8/OPwq1/Bhx+m/RbDhsE994SGQ7fdFgYCu/zyMFj75ZeHoYA1iItIyxMl6fcB1iW8roytS7lPbCD1rUBX4FVggpkVm9kA4CRAI7xmSklJ6GN55cpQwdu5c+h3oV8/+N73QqZO0+GHw7e+Fd7i+efh0kvh0UfhU58KwwBff30o/lHLH5GWIUrStxTrkv+L17bPvYSLRAUwDXgROKRbSTObYmYVZlZRVVUVISSpobg4DMb+8suhbOaMM0ITz/79Qzv/Z55JOyubhYe6pk+Hd94JjxKccAL89Keh+Ofoo+G662DBAl0ARJqzKEm/kpp3532B5FvIg/uYWTHQCfjA3fe7+1XuPtTdJwCdgUM6l3H36e5e7u7l3bt3b8zfIRAy86mnhrb9K1fCV78aHvY688yQlW+5JWTsNLVrFx4leOyxUPxz112hkdHPfhb69O/fH666Cp59VgO7iDQ3UZL+AmCQmQ0ws9bAJGBW0j6zgMtjyxcC/3B3N7NSM2sPYGZjgf3u/nqGYpe6fOxjoRH+O++Efn169w5lMWVloR/mWbNCK6A09ewZWvjMmROafN53X7jz/9Wvwg+Obt1CQ6N77oHKyrTfTkTSZB7ht7iZnUsonikC7nX3H5nZVKDC3WeZWVvgd8Aw4ANgkruvjjXdnAN8BKwHvuzub9f1XuXl5V5RUZHGnyS1WrEiVPzed1+o/O3cOWTkSZNChi4uzthbbd8eKntnz4bHH69O+McdFwZ0P+usUFzUsWPG3lKkoJnZK+5eb0OZSEk/m5T0s2DfPnjyydAo/y9/Ce0we/QIXT1ffHHomKeoKGNv5x5amT7xRLgAPP98CKGoKDxqcOaZ4Zpz2mmhUzgRaTglfYlm165wOz5jBvztb2Gcxe7d4TOfCc8AjB0buoTIoJ07Qy+fzzwDTz8N8+dXXwROPDF0BxGfBgwIVRUiUjclfWm47dtD7eysWeFCsHVreFz3U5/N4xXAAAAMvElEQVQKF4Bx40Jz0Az78MNwEXj22TDE4/z51Q+B9ewZkv+IEeFXwUknhXoCEalJSV/Ss29fKIeZNStMb70V1g8eHO7+x44NZTKHHZbxtz5wIAwt8OKL4WLw0kuwalX19n79qi8AQ4eGpqN9++oXgRQ2JX3JHPfQ2+fcuaEu4NlnQxlNcXHoAuKss0I/DaNGZbwoKG7LljAewCuvVE+JI0t26gTHHx8uAMcfHyqMjzkGunZtknBEmh0lfWk6e/aE2/AnnwzTwoWh35/i4jDi15gxYTrllDBaexPZujWMBRyfFi8O823bqvfp1i0k/2OOCb1UfPzjMGgQHHlkeKBZJF8o6Uv2bNsWLgLPPRemeM0shCw7ahScfHKYH3dcRpuGJnOHtWtDa6Hly2HZsur5pk3V+xUXh4fIjjqqehowoHpSKyJpaZT0JXd27YJ580Jh/Lx5YYp3r1FaWl0gP3x4mAYPbtILQdz774cLwKpVYVq5snq+fXvNfbt2Dcm/f//wq6CsLEz9+oV5jx6qQ5DmRUlfmg93WLOm+gIwf34YG2DXrrC9XbvQVnPYsFAof8IJ4RdBE1QS1xZeVVWoq16zJswTl9euPXSkytatQ+Vx795h6tOnet6rV+iN9IgjQl2DLg6SDUr60rwdOABvvBHqA+LTv/5Vs0D+yCOra2aHDAkF84MHN1llcW3cw6+EdevCtHZtmK9fH6YNG8J8585Dj23TJjQ7PeKIMO/RIzwGkTzv1i38uigtzeqfJnlESV9anniBfGKt7GuvhYvD/oTOWY88srp2dvDg0JncoEHhVrtVbsbocQ/Xqw0bwrRxI7z7bpgSl6uqwrT/kL5mg3btQvKPXwS6dg114YcfXnPepUvoRSM+HXZYRh+ilhZISV/yx969oeB92bKa0/Ll4QniuHbtQo3s0UeH+cCBYRowIBTGN5PmOu6hCWpVVegCqaoq/JLYtOnQ+QcfhLGKP/ig9gtFXMeOoTgpPh12WPX8sMPC9viU+LpDh+qpY8fwayNH105Jg5K+5L+PPgo9ua1YES4KidPq1TX7dW7VKiT+AQPCL4V+/cI8PpWVhbKYZso9PKUcvwBs2VL7tG1b9bR1a/U8XoUSRfv2YSotrV5OXFfb1K5d9ZT8um3bMCUuZ6H+vmAo6UthO3AglLOsXh2mt96qnr/9dtiW/N3v0SPUziZP8drZ3r3DLXILrZndvz9cOLZvr562bQvdYOzYcej04Ye1T7t2hTqMnTsbdjFJVlQUkn+bNofO65tat665XNdUUlJzHl9OnuLri4ur1xUXt4x/ciV9kbrs3Rt+Jbz9dvW0fn1YF582bz70uNLS6gtAvIlOz541a2t79gy1s+3aZf/vyoGPPgqlbPELQKpp9+7qeXx5167QKmr37up5fNqzp+aUuG7v3jAlLjf1eM3xi0Bd8/iU/Lq2qaio5ry4OJRGXn1142JU0hdJ14cfVjfP2bAhDEiTOI/Xzm7dmvr49u2rm+fEp3gNbfI8XmPbunV2/8Y8sX9/KM2LXwQSLwzx9cnb9+07dIqvj58vedq/v3pb4j4HDtRcH1+Or0+cEtcnbj9wIDy2Mndu4z6DqElfJWoitWnfPlQKH3103fvt3h2a6MSb6WzcWN1MJz5t2ACLFoXa2cTK51TvmdxUJ95EJ7nJTmKtbbzGtkCb8MTvlAvkx1ValPRF0tW2bXWFcBQ7d6ZuppPYVOeDD8L6FSuqa2g//LD+c7dvX7O5TnKznXhzncR5+/ZhObG2Nv66TZuWUaAtkUVK+mY2DridMFziPe5+S9L2NsADwEnAJuBid19jZiXAPcDw2Hs94O4/zmD8Ii1PaWloPdTQsQn27g1FSZs3h3li05zEKbGWdtu2cGHZtq26Fjf58eK6tGpV3TQnVdOdeDOdxKY68SY6icvx5jrJr+M1sYm1uCUlutA0oXqTvpkVAXcCY4FKYIGZzUoa4PzLwGZ3P8rMJgG3AhcDE4E27n68mZUCr5vZQ+6+JtN/iEjea926um4gHfv2VTfR2b69uklOvMlOYtOdnTtTz3ftCheTeO1tYi3u3r3pxWdW3TQnsYlO4uuozXUa0kwncUpVK1tXDW1ibWz8datWzfLiFeVOfySwyt1XA5jZDGACkJj0JwDfjy0/AvzSzAxwoL2ZFQPtgL1AwnP2IpJ1JSXVj/U2hQMHajbXSWy2kzjFm+8kN89JbqqT3JQnsUZ2x47q/VLV5MbX56rBSmITneTlVK+HDQtjVzehKEm/D7Au4XUlcHJt+7j7fjPbCnQlXAAmAO8ApcBV7v5B8huY2RRgCkC/JhiOT0SyqKioum6guThwIHozneQmOqma6aRqjpNqW+L6VMvJrwcObPKPIkrST/X7JPmyWds+I4EDQG+gC/C8mT0V/9VwcEf36cB0CE02I8QkIhJd/E66bdtcR5JzUXrYqATKEl73BTbUtk+sKKcT8AFwKfCEu+9z9/eAF4B625GKiEjTiJL0FwCDzGyAmbUGJgGzkvaZBVweW74Q+IeHp77WAmdZ0B4YBSzPTOgiItJQ9SZ9d98PXAnMAZYBM919qZlNNbPzYrv9BuhqZquAq4HrYuvvBDoASwgXj9+6++IM/w0iIhKRumEQEckDUbthUK/ZIiIFRElfRKSAKOmLiBQQJX0RkQLS7CpyzawKeDvXcdShG/B+roOog+JLj+JLj+JLTzrxHenu9XbM1OySfnNnZhVRashzRfGlR/GlR/GlJxvxqXhHRKSAKOmLiBQQJf2Gm57rAOqh+NKj+NKj+NLT5PGpTF9EpIDoTl9EpIAo6ceY2Tgze8PMVpnZdSm2X21mr5vZYjP7u5kdmbDtgJktik3JPZBmK77JZlaVEMd/JGy73MxWxqbLk4/NUny/SIhthZltSdiWjc/vXjN7z8yW1LLdzOyOWPyLzWx4wrZsfH71xfeFWFyLzexFMzsxYdsaM3st9vk1ScdVEeI7w8y2Jvw73piwrc7vRpbiuzYhtiWx79zhsW3Z+PzKzOxpM1tmZkvN7Bsp9snOd9DdC34iDPj+JjAQaA28CgxJ2udMoDS2/FXg4YRtO5pBfJOBX6Y49nBgdWzeJbbcJdvxJe3/deDebH1+sfcYAwwHltSy/VzgccKAQKOAl7P1+UWM75T4+wLj4/HFXq8BuuX48zsD+Fu6342mii9p388Sun/P5ufXCxgeW+4IrEjxfzgr30Hd6QcHxwF2971AfBzgg9z9aXffGXs5jzCYTLOJrw7nAE+6+wfuvhl4EhiX4/guAZp2INAk7v4cYWCf2kwAHvBgHtDZzHqRnc+v3vjc/cXY+0P2v39RPr/apPPdjayB8eXi+/eOuy+MLW8ndFPfJ2m3rHwHlfSDVOMAJ/+DJPoy4Yoc19bMKsxsnpmdn8P4Loj9LHzEzOKjnTX0b2vK+IgViw0A/pGwuqk/vyhq+xuy8fk1VPL3z4G5ZvaKhfGmc2W0mb1qZo+b2bGxdc3q8zOzUkLC/GPC6qx+fmbWHxgGvJy0KSvfwShj5BaCKOMAhx3NLiMM+fiJhNX93H2DmQ0E/mFmr7n7m1mO76/AQ+6+x8y+AtwPnBXx2GzEFzcJeMTdDySsa+rPL4ra/oZsfH6RmdmZhKR/WsLqU2OfXw/gSTNbHrvzzaaFhG4AdpjZucBfgEE0s8+PULTzgrsn/irI2udnZh0IF5xvuvu25M0pDsn4d1B3+kGUcYAxs08B3wPOc/c98fXuviE2Xw08Q7iKZzU+d9+UENOvgZOiHpuN+BJMIumndRY+vyhq+xuy8flFYmYnAPcAE9x9U3x9wuf3HvBnQpFKVrn7NnffEVueDZSYWTea0ecXU9f3r0k/PzMrIST8/3P3P6XYJTvfwaasvGgpE+EXz2pCsUO8sunYpH2GESqkBiWt7wK0iS13A1aS4YqqiPH1Slj+HDDPqyuB3orF2SW2fHi244vtN5hQaWbZ/PwS3qs/tVdEfpqalWjzs/X5RYyvH7AKOCVpfXugY8Lyi8C4HMR3RPzflZA018Y+y0jfjaaOL7a9E6Hcv322P7/YZ/EAMK2OfbLyHcz4B99SJ0LN+QpCYv9ebN1Uwl09wFPARmBRbJoVW38K8Frsy/wa8OUcxfdjYGksjqeBjycc+6VYwlgFfDEX8cVefx+4Jem4bH1+DwHvAPsId05fBr4CfCW23QhjOr8Zi6M8y59fffHdA2xO+P5VxNYPjH12r8b+/b+Xo/iuTPj+zSPh4pTqu5Ht+GL7TAZmJB2Xrc/vNEKRzOKEf8Nzc/Ed1BO5IiIFRGX6IiIFRElfRKSAKOmLiBQQJX0RkQKipC8iUkCU9EVECoiSvohIAVHSFxEpIP8ftIX4f+3pISwAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sspace = np.linspace(0.1,2)\n", "train_error=[]\n", "test_error=[]\n", "for s in sspace:\n", " (tne,tse)=get_errors(1000,20,s,sigmo)\n", " train_error.append(tne)\n", " test_error.append(tse)\n", "\n", "plt.plot(sspace,train_error,label='train',c='red')\n", "plt.plot(sspace,test_error,label='test',c='blue')\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sspace = np.linspace(0.1,5)\n", "train_error=[]\n", "test_error=[]\n", "for s in sspace:\n", " (tne,tse)=get_errors(1000,20,s,lambda x,s:x**s)\n", " train_error.append(tne)\n", " test_error.append(tse)\n", "plt.plot(sspace,train_error,label='train',c='red')\n", "plt.plot(sspace,test_error,label='test',c='blue')\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nspace = range(100,10000,100)\n", "train_error=[]\n", "test_error=[]\n", "for n in nspace:\n", " #print(n)\n", " (tne,tse)=get_errors(n,20,1.5,gauss)\n", " train_error.append(tne)\n", " test_error.append(tse)\n", "\n", "plt.plot(nspace,train_error,label='train',c='red')\n", "plt.plot(nspace,test_error,label='test',c='blue')\n", "plt.legend()\n", " " ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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zcEFoZxccYVd/HffncRO9O4NW7cmMWvOiQczZpgHMCvLXDo//VT+fWzcaLW4Wrc247F37+JxhFgEIRjRXBErwS2EmoMLQjlp1gwuvxxeew3+9rckVag+4ghbehyh2rJjB3z3nQlCMK9wRayEYLBZ69a2POoomD69MHsYYrcQoGKC4BZCzcEFoQKMHAlDhsCtt8IBB1jeWJVWTO3c2f4DPY5QbZkzx66ZHj0qJwhBDkKbNrY86igLIn/9dWGbYLa0Zs1K3k9lBMEthJqDC0IFaNoU3njDfLXt28OFF8LBB1u6wO7dVdCB2rWhVy+3EKrtINZXAAAgAElEQVQxQUC5shZCIAiBhXDkkZY7Ex5HSKSFUFBgguAWQs3ABaES9O9vT2Jjxtiw1N//3iyGe++1GTC//75iQbqY6N3bIts7dyboAE4imTHDbtD77BNfl1HjxtC9O3zySWGbQBCaNi15P4GFkZtbvuMHcQ8XhJqBC0IlEYGhQ61I2TvvWB2ZG2+EE080z06DBnD88fDyy7HNSLVli007+PjjZbihevc238DMmaU0clKV6dPNOhCxm3iDBhW3EDIyoEmTwnUDB1quTDDcdNMm216nlMpljRvDvvuW/3LySqc1i5iK2zllIwInn2z1jn78EZYutde8eVanfvhw+6fs18+shp9/tmVmpj1dNWpk7adPLxxNWquWFTyNSnhguU+fEho5qciuXRZDuO46+yxiVkJFBaF166J1hAYPtlFwH3wAp59edpZyQE6OXX/lwSud1izcQogzImYl9OsH555rSWxLllit+lNOsWqUO3eaELRta09ta9eaCyEjA265BT791GbRvPnmUny67drZeEUPLCeNb76BQw8tDNrGynffWawpmKAJKi8I4fTpYwHkd9+1z7EKQo8eVjE1Ly/247uFULNwC6EKqFXL6tIdd1zs33n0UUtIvukmePrpEhodcYQHlpPIu+9a2epvvoFBg0put2MHnHaauWSGDbMZzqC4IEybVv4+/PgjdOhQdF2dOtaf994za7M8ggDmNjr66JLb7dxp13S9em4h1DTcQkhRunSxKqvPPFNYimD3bvjXv+Dqq83lQO/eZn5s3JjUvqYrQbb67Nmlt/v6ayuj/swzMGCAzcTXuLFVNA/IyjILobzl1YOyFZEMHmy1iaZNK5/LCMp2G/361yZCo0YVWrBu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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mspace = range(10,100,1)\n", "train_error=[]\n", "test_error=[]\n", "for m in mspace:\n", " (tne,tse)=get_errors(5000,m,1.5,gauss)\n", " train_error.append(tne)\n", " test_error.append(tse)\n", "\n", "plt.plot(mspace,train_error,label='train',c='red')\n", "plt.plot(mspace,test_error,label='test',c='blue')\n", "plt.legend()\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.- Logistic \"Regression\"... into the bikeway\n", "### Objective\n", "* Use regression models to classify (everything is connected)\n", "* Exercise the use of metrics\n", "* Learn the importance of understanding the model\n", "\n", "### Theory" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us explore the following idea:\n", "$$\\sigma(\\mathbf{w}^\\textrm{T}\\mathbf{x}) = \\frac{1}{1+\\exp(-\\mathbf{w}^\\textrm{T}\\mathbf{x})}$$" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f5ba6f2ef32b4f799382a31e51532ee1", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=1, description='w1', max=5, min=-5), FloatSlider(value=1.0, description=…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def logistic2D(w1=1,w2=1,w3=1):\n", " w = [w1, w2, w3]\n", " x1_g, x2_g = np.meshgrid(np.arange(-5., 5.0, 0.1),np.arange(-5., 5.0, 0.1))\n", " y = w[0] + w[1]*x1_g + w[2]*x2_g\n", " plt.contourf(x1_g, x2_g, 1./(1.+np.exp(-y)), cmap=plt.cm.seismic, levels = np.arange(0, 1.1, 0.05))\n", " plt.xlim([-5,5])\n", " plt.ylim([-5,5])\n", " plt.colorbar()\n", "interact(logistic2D,w1=(-5,5),w2=(0.001,1.),w3=(0.001,1.))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets use our linear model under a sigmoid function $\\sigma$ to separate classes then! \n", "\n", "Let $\\phi(\\boldsymbol{x}) = \\boldsymbol{\\phi}$\n", "\n", "$Pr(Y = c_1 \\mid \\boldsymbol{x}) = \\sigma(\\boldsymbol{w}^\\top\\boldsymbol{\\phi})$\n", "\n", "Reciprocaly\n", "\n", "$Pr(Y = c_2 \\mid \\boldsymbol{x}) = 1-\\sigma(\\boldsymbol{w}^\\top\\boldsymbol{\\phi})$\n", "\n", "\n", "\n", "\n", "Let us define $c_1 = 1$ and $c_2 = 0$ just because... then,\n", "\n", "$Pr(Y=y\\mid\\boldsymbol{x}) = \\sigma(\\boldsymbol{w}^\\top\\boldsymbol{\\phi})^y (1 - \\sigma(\\boldsymbol{w}^\\top\\boldsymbol{\\phi}))^{1-y}$\n", "\n", "If we try to compute the log likelihood for a training data\n", "\n", "$$ E(\\boldsymbol{w}) = \\ln Pr(\\mathbf{Y}=\\mathbf{y}\\mid\\boldsymbol{X},\\boldsymbol{w}) = \\sum_i \\left\\{y_i \\ln( \\sigma(\\boldsymbol{w}^\\top\\boldsymbol{\\phi}_i)) + (1-y_i)\\ln(1 - \\sigma(\\boldsymbol{w}^\\top\\boldsymbol{\\phi}_i))\\right\\}$$\n", "\n", "Then, the gradient looks nice...\n", "\n", "$\\nabla E(\\boldsymbol{w}) = \\sum_{i}(\\sigma(\\boldsymbol{w}^\\top\\boldsymbol{\\phi}_i)) - y_n)\\boldsymbol{\\phi} = 0$ \n", "\n", "but is no closed form to solve this, so we use iterative methods to solve them (numerical optimization methods such as Newton-Raphson). \n", "\n", "Obviously, Mr. Scikit Learn have coded that for us... [link](http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html)\n", "\n", "## Exercise\n", "\n", "### a) Load and balance the SDSS stars dataset (RRLyrae)\n", "* Load the dataset, put names to the columns\n", "* Find out how imbalanced is the dataset\n", "* Subsample the class of non-variable stars to the same size of the other class" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "from astroML.datasets import fetch_rrlyrae_combined\n", "sdss_star_feat, sdss_star_type = fetch_rrlyrae_combined()" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [], "source": [ "star_feat=pd.DataFrame(sdss_star_feat)\n", "star_feat.columns=['u-g', 'g-r', 'r-i', 'i-z']\n", "star_feat['Type']=sdss_star_type" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "483.0" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "star_feat['Type'].sum()" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [], "source": [ "class_1 = star_feat[star_feat['Type']==1]\n", "class_2 = star_feat[star_feat['Type']==0].sample(len(class_1));\n", "X = class_1.append(class_2)\n", "y = X['Type']\n", "X = X[['u-g', 'g-r', 'r-i', 'i-z']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### b) Train and Evaluate a Logistic Regression Classifier (LRC)\n", "* Train the LRC with the balanced data\n", "* Predict the classes for the same data\n", "* Compute the completeness and contamination " ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n" ] } ], "source": [ "from sklearn import linear_model\n", "logreg = linear_model.LogisticRegression()\n", "logreg.fit(X,y)\n", "y_pred = logreg.predict(X)" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(0.989648033126294, 0.018480492813141684)\n" ] } ], "source": [ "def comp_cont(y,y_pred):\n", " TP = (y[y_pred==1]==1).sum()\n", " FP = (y[y_pred==1]==0).sum()\n", " TN = (y[y_pred==0]==0).sum()\n", " FN = (y[y_pred==0]==1).sum()\n", " return (TP/(TP+FN),FP/(TP+FP))\n", "print(comp_cont(y,y_pred))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### c) Incrementally include the rest of the data\n", "* Create a function that trains and predicts depending on the number of samples used for subsampling the non-variables class. This function should return the completeness and contamination.\n", "* Plot the behaviour of the completeness and contamination as you increase the number of samples of the non-variables class. I recommend steps of 500. \n", "* Plot also the parameters of the model using bars\n", "* What is your explanation for this result? can we do something about it?" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [], "source": [ "def get_measures(ns):\n", " class_1 = star_feat[star_feat['Type']==1]\n", " class_2 = star_feat[star_feat['Type']==0].sample(ns);\n", " X = class_1.append(class_2)\n", " y = X['Type']\n", " X = X[['u-g', 'g-r', 'r-i', 'i-z']]\n", " logreg = linear_model.LogisticRegression()\n", " logreg.fit(X,y)\n", " y_pred = logreg.predict(X)\n", " (com,con)=comp_cont(y,y_pred)\n", " return (com,con,logreg.coef_)" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n", "/Users/mauricio/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", " FutureWarning)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XucznX+//HHa4acD8kkQmgj5NhQaYuynQvfjiiylM467LZp7beDtq3tsG2nX2UTEaFWOumrEytSGUI5RaIG61QJJaf374/XNYwxY2a4Zj7XXPO8327X7bquz/VxXS/m8vTx/rw/r7eFEBARkeSSEnUBIiISfwp3EZEkpHAXEUlCCncRkSSkcBcRSUIKdxGRJKRwFxFJQgp3EZEkpHAXEUlCZaL64Jo1a4YGDRpE9fEiIiXSrFmz1ocQ0vLbL7Jwb9CgARkZGVF9vIhIiWRmKwqyn4ZlRESSkMJdRCQJ5RvuZvaCma01sy/zeN3M7AkzW2pm88ysbfzLFBGRwijImPtw4ClgRB6vnwMcE7udADwTuxeRBLN9+3YyMzPZunVr1KVIPsqXL0/dunUpW7bsAf36fMM9hDDVzBrsZ5euwIjgjeE/MbPqZlY7hLD6gCoSkSKTmZlJlSpVaNCgAWYWdTmShxACGzZsIDMzk4YNGx7Qe8RjzP1I4LtszzNj20QkwWzdupXDDjtMwZ7gzIzDDjvsoP6HFY9wz+1bkuvyTmbW38wyzCxj3bp1cfhoESksBXvJcLA/p3iEeyZQL9vzusCq3HYMIQwJIaSHENLT0vKdg5+rGTPg/vth0iRYv/6A3kJEJOnFI9zfAHrHZs2cCGwsyvH2adPgL3+Bs8+GtDRo2BAuvRQeegg+/BB+/LGoPllESpI+ffrw6quv7nef4cOHs2pVrseiJV6+J1TN7GWgE1DTzDKBu4GyACGEZ4GJwLnAUuBn4PdFVSzA7bdD//4wezZkZPht5kx45ZU9+xxzDLRrB+npfmvTBipXLsqqRKQkGj58OMcddxx16tSJupS4K8hsmR75vB6AG+JWUQFUqwannea3LBs2wKxZe8J+6lQYPdpfM4OmTfcO/FatoEKF4qxaRABGjBjBI488gpnRsmVL/vrXv9K3b1/WrVtHWloaw4YNo379+vTp04cKFSqwaNEiVqxYwbBhw3jxxReZMWMGJ5xwAsOHDwegcuXKXHPNNUyePJlDDz2UMWPGkHPYd9asWdx2221s3ryZmjVrMnz4cKZPn05GRgaXX345FSpUYMaMGSxYsGCf/WrXrk2nTp044YQTmDx5Mj/++CNDhw7llFNOYefOnQwcOJApU6bw66+/csMNN3DNNdewevVqLrvsMn766Sd27NjBM888Q4cOHejXrx8ZGRmYGX379uXWW28tsj/nyHrLxNthh8GZZ/oty3//64E/c6aH/jvvwIsv+mupqXDccdC+PXTs6Le6daOpXSQKt9wCc+bE9z1bt4Z//jPv1+fPn8/999/P9OnTqVmzJt9//z1XXnklvXv35sorr+SFF15gwIABTJgwAYAffviBDz/8kDfeeIMLLriA6dOn8/zzz9OuXTvmzJlD69at2bJlC23btuXRRx9l8ODB3HvvvTz11FO7P3P79u3cdNNNvP7666SlpTF27FgGDRrECy+8wFNPPcUjjzxCenr6fvcD2LFjB5999hkTJ07k3nvv5f3332fo0KFUq1aNmTNn8uuvv3LyySdz5plnMn78eM466ywGDRrEzp07+fnnn5kzZw4rV67kyy/9etAfi3gMOWnCPTdHHAHnnec3gBBg5co9R/cZGTBuHPzrX/760UdDp05+69gR6tXL651F5EB8+OGHXHzxxdSsWROAGjVqMGPGDMaPHw9Ar169+NOf/rR7/wsuuAAzo0WLFtSqVYsWLVoA0Lx5c5YvX07r1q1JSUnhsssuA+CKK67gwgsv3OszFy9ezJdffskZZ5wBwM6dO6ldu/Y+teW3X9b7Hn/88SxfvhyAd999l3nz5u0e29+4cSNLliyhXbt29O3bl+3bt9OtWzdat25No0aNWLZsGTfddBPnnXceZ2Y/Ei0CSR3uOZn50XndutCtm2/buRPmzYMpU/z273/D0KH+2tFHe8hnBb7CXpLJ/o6wi0oIId8pftlfL1euHAApKSm7H2c937FjR76/PuszmzdvzowZM/KtbX/7ZX1+amrq7s8OIfDkk09y1lln7bP/1KlTefvtt+nVqxe33347vXv3Zu7cuUyaNImnn36acePG7f5fQVEo9Y3DUlP9hOutt8Lrr/v0ys8/h8ce82Gb116D3r2hfn0P+379YMQI+PbbqCsXKXk6d+7MuHHj2LBhAwDff/89HTp0YMyYMQCMGjWK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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nsspace = range(500,9000,500)\n", "com_list=[]\n", "con_list=[]\n", "for ns in nsspace:\n", " (com,con,coef)=get_measures(ns)\n", " com_list.append(com)\n", " con_list.append(con)\n", "\n", "plt.plot(nsspace,com_list,label='completeness',c='blue')\n", "plt.plot(nsspace,con_list,label='contamination',c='red')\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.figure()\n", "plt.bar(range(len(coef[0])),coef[0])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ " #logreg = linear_model.LogisticRegression(penalty='l1',C=100)\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }