Last active
January 23, 2023 17:05
-
-
Save firmai/d6c64c0e2eaa1b418d2bda71c0144c66 to your computer and use it in GitHub Desktop.
gradient-descent-linear-regression.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"provenance": [], | |
"name": "gradient-descent-linear-regression.ipynb", | |
"authorship_tag": "ABX9TyP6UF9+hmAFSJA07ODBWxgD", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
}, | |
"language_info": { | |
"name": "python" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/firmai/d6c64c0e2eaa1b418d2bda71c0144c66/gradient-descent-linear-regressoin.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 507 | |
}, | |
"id": "NRV5jMTNlBV2", | |
"outputId": "896223bc-6849-4a15-f3b1-3ac8b4baef0c" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.8/dist-packages/numpy/ma/core.py:2829: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", | |
" _data = np.array(data, dtype=dtype, copy=copy,\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 720x442.8 with 2 Axes>" | |
], | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGzCAYAAAAypuHpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeVxU1/3/8ddhR2URBcF9QQXX0YAoihLJomYzi92+1SRd/DZpf60xaU13tTZJm8bYNf22TTVNakVtkiZprFYFF0QRZXfFXRRlExQYYJjz+2MuBBUEYWAG+DwfDx4y99w550xo77znzLnnKK01QgghhBBCCBsXR3dACCGEEEIIZyIBWQghhBBCiAYkIAshhBBCCNGABGQhhBBCCCEakIAshBBCCCFEAxKQhRBCCCGEaEACshB2ppRap5RadYfyVUqpQqVUvlJqsFLqhlLKtSP7KIQQnYFS6jml1BXjOtmnA9v9gVLqLx3VnnA+EpCFwymlziqlKpVS15VS15RS+5RS31BKteh/n0qpoUoprZRya+++tpVSajDwIjBGax2stT6vte6lta41yhOVUl9zbC+FEOJmSqkvKaVSjaB6WSm1RSk1o411nlVK3XeHcndgNfCAcZ0sakt7d2gnVil1seExrfUrWmu5FndjEpCFs3hEa+0DDAFeA5YBbzu2S+1iMFCktb7q6I4IIURLKKWWAmuAV4B+2K5jfwAea+em+wFeQE47tyPEbSQgC6eitS7VWn8EfB54Wik1DkAp9ZBSKk0pVaaUuqCUWt7gabuNf68ZoxvTlFIjlFI7lVJFxnSGvyul/JtqVyn1a6PeMqXUIaVUTIOy5UqpjUqpvxmj3DlKqYgG5ZOUUoeNsnhsF/TG2rgP+C/Q3+jnuoaj30qpnwMxwO+M8t+17r+iEELYh1LKD1gJfFNr/b7WulxrXaO1/lhr/V3jHE+l1Bql1CXjZ41SytMo66uU+sT4drBYKbVHKeWilHoXW9D+2Ljefe+WdkcBx42H14zr+W3fFjb81k0p9YxSaq9S6ldKqRKl1Bml1NwG5wYopdYafSxRSn2olOoJbOGz6/INpVR/47r/XoPnPmpc+68ZbYY3KDurlHpJKZWplCpVSsUrpRp9HxCdhwRk4ZS01inARWyBEaAcWAT4Aw8Bzyml5htlM41//Y2v4ZIBBbwK9AfCgUHA8js0eRAwAQHAemDTLRe4R4ENRvsfAb8DUEp5AB8C7xrP3QQ82cRr2g7MBS4Z/XzmlvIfAnuAbxnl37pDf4UQoiNMw/ah/4M7nPNDYCq2a+hEYArwI6PsRWzX8kBsI8I/ALTWeiFwHtu3h7201r9sWKHW+gQw1njor7We3cL+RmEL1n2BXwJvK6WUUfYu0MOoNwh4U2tdzs3X5V5a60sNKzTC+j+AJcbr+BRbsPdocNrngDnAMGAC8EwL+yuclARk4cwuYQudaK0TtdZZWmur1joT28VqVlNP1Frnaq3/q7Wu0loXYJvHdqfz39NaF2mtLVrrNwBPYHSDU/ZqrT815gq/i+1NAGxvCu7AGmNUZTO2sC2EEF1BH6BQa225wzn/A6zUWl81rrcrgIVGWQ0QAgwxrpF7tNa6Hft7Tmv9Z+Na/Y7Rdj+lVAi2IPwNrXWJ0ZddLazz88C/jfeUGuBXgDcQ3eCc32itL2mti4GPsX1YEJ2YBGThzAYAxQBKqSilVIJSqkApVQp8A9sIQaOUUv2UUhuUUnlKqTLgvWbOf0kpddT4euwa4HfL+fkNfq8AvIyv+foDebdc8M/d5esUQghnVQT0beYm6P7cfN07ZxwDeB3IBbYppU4rpV5un27Wq79Wa60rjF97YfsWsVhrXdKKOm96fVprK3AB23vUbe1ie4/o1Yp2hBORgCycklIqEtvFZ69xaD22qQ2DtNZ+wB+xTaMAaGw04hXj+HittS/w5Qbn39pWDPA9bF+R9dZa+wOlTZ1/i8vAgAZf4YFtXl1rtefIihBC3K1koAqYf4dzLmG7wbrOYOMYWuvrWusXtdbDsU1VW6qUijPOu9vrXbnxb48Gx4Jb+NwLQEAT96I014+bXp9xvR8E5LWwbdEJSUAWTkUp5auUehjbfN/3tNZZRpEPtk//ZqXUFOBLDZ5WAFiB4Q2O+QA3gFKl1ADgu3do1gewGPW4KaV+Avi2sMvJxnO/rZRyV0o9gW3+XWtd4ebXIYQQDqO1LgV+AvxeKTVfKdXDuNbNVUrVzRv+B/AjpVSgUqqvcf57AEqph5VSoUaoLAVqsV2v4S6vd8b0jTzgy0opV6XUV4ARLXzuZWw34/1BKdXbeA11969cAfoYNyQ2ZiPwkFIqTtmWnnsR24eGfS3tu+h8JCALZ/GxUuo6tk/5P8Q2Z/jZBuXPAyuNc36C7YIF1H+N9nMgybjDeCq2OXCTsV2Q/w28f4e2twL/AU5g+xrNbPSjWVrrauAJbDdkFGObq3antprza+Ap4w7r37ShHiGEsAvjvoyl2G68K8B2ffwWthuUAVYBqUAmkAUcNo4BjAS2YxuwSAb+oLVOMMpexRasrymlXmphd76ObcCjCNvNdncTUhdimxN9DLiK7aY7tNbHsIX800Zf+jd8ktb6OLZvIX8LFAKPYLu5sPou2hadjGrfufJCCCGEEEJ0LjKCLIQQQgghRAMSkIUQQgghhGhAArIQQgghhBANSEAWQgghhBCiAQnIQgghhBBCNHCnnXE6nb59++qhQ4c6uhtCiG7s0KFDhVrrQEf3ozOQa7YQwtGaumZ3qYA8dOhQUlNTHd0NIUQ3ppSSrcZbSK7ZQghHa+qaLVMshBBCCCGEaEACshBCCCGEEA10qSkWt7p27RqFhYXU1NQ4uitOzd3dnb59++Lv7+/orgghhBBCOFyXDsiXL19m6NCheHl5oZRydHecktYas9nM2bNnJSALIYQQQuCAKRZKKVelVJpS6hPj8TCl1AGlVK5SKl4p5WEc9zQe5xrlQ1vTnre3t4TjO1BK4e3t7ehuCCGEEEI4DUfMQf4OcLTB418Ab2qtQ4ES4KvG8a8CJcbxN43zhBBCCCGEaFcdGpCVUgOBh4C/GI8VMBvYbJzyDjDf+P0x4zFGeZySoWAhhBBCCNHOOnoEeQ3wPcBqPO4DXNNaW4zHF4EBxu8DgAsARnmpcf5NlFKLlVKpSqnUgoKC9ux7i5w4cYJ58+YRERFBYmJim+patmwZMTExLFy4sNEbDRsrb+o5zdUlhBBCCCFsOiwgK6UeBq5qrQ/Zs16t9Z+01hFa64jAQMduXmW1Wnn++edZt24dGzduZM2aNa2uKyMjg7y8PPbs2UNYWBibN29utryp5zRXlxBCCCGE+ExHjiBPBx5VSp0FNmCbWvFrwF8pVbeaxkAgz/g9DxgEYJT7AUUd2N+7tmvXLkwmE0FBQYSEhFBSUtLquvbt28cDDzwAwJw5c0hKSmq2vKnnNFeXEEIIIYT4TIct86a1/j7wfQClVCzwktb6f5RSm4CnsIXmp4F/GU/5yHicbJTv1Frr1rZvr9nLd+pBQkIC27ZtIzY2FrPZzIgRIxo9r6CggAULFtx2fMOGDQQHBwNQUlJCSEgIAH5+fhQXF990bmPlTT2nubqEEEIIIcRnnGEd5GXABqXUKiANeNs4/jbwrlIqFygGvuCg/rVYXl4e8fHxhIeHs3btWmpra0lNTWXVqlUsX74ck8kEQGBgYLPzk/39/SkrKwOgtLSUgICAZsubek5zdQkhhBBCiM84ZKtprXWi1vph4/fTWuspWutQrfUCrXWVcdxsPA41yk+3rU37/NyJv78/hYWFVFZWEh8fz+c//3kiIiKYP3/+TecVFBQQGxt7209+fn79OdHR0Wzfvh2ArVu3Mn369JvqaKy8qec0V5cQrVVZWcmtX+xoramsrHRQj4QQQoi2c4YR5C5j8eLFLFy4ED8/P1auXImPj0+j57VkBNlkMtGvXz9iYmIYPHgwL730Evn5+bz11lusWLGi0XIPD4/bjjVVlxBtVVlZSVxcHFFRUaxevRqlFFprli5dyoEDB9ixY0fn3oQmawUoNxj3Q0f3RAghxB1cvnyZffv2cd999+Hn52eXOiUg29Ho0aNJSUm56Vhubi7btm0jJyeH4cOH4+vr2+L6Xn/99ZseBwcHs2LFiibLmzp2p+NCtJaXlxdRUVH1q7WsXr2apUuXsmbNGpYsWYKXl5eDe9hKWkPWcsheCcoFBj0OfmMc3SshhBBN2L59O4sWLSI7O1sCcmcRGhrK+vXrHd0NIexOKcXq1asBWLNmTX1QXrJkSf2IcqejNWT+BHJW2cLxtPckHAshhJNLTU2lR48ehIWF2a1Oh8xBFkJ0DQ1Dcp3OHY5/ZIRjV4heD0O/6OheCSGEaEZqaiqTJk3C1dXVbnVKQBZCtFrdnOOGli5detuNe05Pa8j4AeS88lk4HvJ5R/dKCCFEMywWC2lpaURERNi1XgnIQohWqQvHdXOOrVYrS5YsYc2aNZ0rJGsN6S/Dkdds4Xj6BhjyOUf3SgghRAscPXqUyspKuwdkmYMshGgVs9nMgQMHbppzXDfd4sCBA5jNZudfxUJrSF8GR1+3rVgxfQMMftLRvRJCCNFChw4dApCALIRwDt7e3uzYsQMvL6/6Ocd1IbnThOO078KxN2zheMZG24oVhpKaGjQQ4O7uuD4KIYS4o9TUVHr16sWoUaPsWq9MsRBCtJq3t/dtN+QppTpHOD78YoNwvOmmcFxUU0NcRgZzMjMptVgc2FEhhBB3kpqayj333IOLi30jrQRkIUT3ojUcfgGOvwku7hCzGQZ9ttvllepq7k1PJ+3GDa5ZLNyorXVgZ4UQQjSlpqaG9PR07rnnHrvXLVMshBDdh9ZwaAmc+I0tHM/4Jwx8pL74UlUVcRkZHKuoILxHD3ZMnEiIp6cDOyyEEKIpOTk5VFVV2X3+McgIst2dOHGCefPmERER0ex20s1ZtmwZMTExLFy4kJqamhaVJyYmEhcXx7333ssHH3zQ4rqE6PK0hkPfNsKxB8S8f1M4vmA2Mys9nWMVFYzv2ZNEk0nCsRBCOLH2ukEPJCDbldVq5fnnn2fdunVs3Lixfmex1sjIyCAvL489e/YQFhbG5s2bmy2vrKzkjTfeYMuWLSQkJPD444+3qC4hujytIfVbcOJ3Rjj+AAY8XF98prKSmenp5FZWMrlXLxJMJoI8PBzYYSGEEM1JTU3Fz8+PESNG2L1uCch2tGvXLkwmE0FBQYSEhFBSUtLquvbt28cDDzwAwJw5c0hKSmq2PDk5GW9vbx555BEef/xx8vPzW1SXEF2atkLqN+HkH8DFE2Z+CAPm1RefrKhgZno6Z81monx82DFxIn1k5QohhHB67XWDHnSjOchqhX22vtU/bXrzg4SEBLZt20ZsbCxms7nJTzQFBQUsWLDgtuMbNmwgODgYgJKSEkJCQgDw8/OjuLj4pnMbK79y5Qq5ubns37+f7du3s3z5cv74xz82W5cQXZa2wsHnIff/PgvH/efUFx8pLycuI4P86mpi/Pz49/jx+Lh1m8uiEEJ0WlVVVWRkZPDCCy+0S/3yTmBHeXl5xMfHEx4eztq1a6mtrSU1NZVVq1axfPlyTCYTAIGBgc3OT/b396esrAyA0tJSAgICmi339/dn+vTpeHh4EBcXx6uvvtqiuoTokrQVUr4Bp/4Mrl4w818Q8kB9ceaNG9yXkUFBTQ2z/f35aPx4erq6OrDDQgghWio7O5uampp2mX8M3Sgg32nk1178/f0pLCyksrKS+Ph4Nm3ahI+PD/Pnz7/pvJaMIEdHR7N69WoWLVrE1q1bmT59+k3nNlYeGRnJG2+8gdaa9PR0hg8f3qK6hOhytBVS/hdO/cUIxx9ByP31xYevX+f+jAyKLRbmBATw/tixeEs4FkKITiM1NRWgXZZ4g24UkDvC4sWLWbhwIX5+fqxcuRIfH59Gz2vJCLLJZKJfv37ExMQwePBgXnrpJfLz83nrrbdYsWJFo+UeHh48/vjjzJo1C6UUf/3rX5usS4guS1vhwNfh9F/B1RtmfQzBcfXFB8rKeDAjg9LaWh7p04dNY8fi2Q7z14T91dbWUllZSa9evRzdFSGEgx06dIjevXszbNiwdqlfad3+I6sdJSIiQtd9ogA4evQo4eHhDuwR5Obm8pOf/IQBAwbw4x//GF9fX4f2pynO8N9KiDaz1kLK1+D0OiMcfwLBs+uL91y7xrysLG7U1vJUYCB/Dw/Hw87hWCl1SGvdPt/5dTG3XrPvxGKxEBgYyHPPPccrr7zSzj0TQji7yZMn07dvX7Zt29amepq6ZssIcjsLDQ1l/fr1ju6GEF2ftRYOfBXOvGMLx7H/hn731hfvLCnhkawsKqxWvhQUxDthYbjJyHGn4ebmxvDhw0lJSXF0V4QQDmY2m8nKyuK73/1uu7Uh7w5CiM7PWgv7nzXCcQ+I/fSmcPyfoiIeMsLxM8HB/C08XMJxJxQZGUlqaipWq9XRXRFCOFBmZiYWi6XdbtADCchCiM7OWgv7n4Gz74JbT7h3C/SLrS/+uLCQx7KzMVut/G9ICG+PHo2rss+yj6JjRUZGUlpaSm5urqO7IoRwoLqpWRKQhRCiMVYLJC+Cs+/ZwnHsFgiaWV/8z4ICnsjJoVprvjNgAG+NGoWLhONOKzIyEoCDBw86uCdCCEdKTU0lMDCQQYMGtVsbEpCFEJ1TXTg+tx7cekHsfyAopr54/ZUrfD4nB4vWfG/QIN4MDUVJOO7UxowZQ48ePWQeshDd3KFDh7jnnnva9ZouAVkI0flYLbDvy3DuH+DmA/duhaAZ9cVrL1/my0ePUgv8eMgQXhs+XMJxF+Dm5sbkyZNlBFmIbqyiooKcnJx2nV4BEpCFEJ2NtQb2fQnOx38WjgOj64v/79IlvnL8OBpYNWwYK4cNk3DchURGRpKWlkZNTY2juyKEcICMjAxqa2slIAshRD1rDSR9Cc5vAndfmL0NAqfVF//m4kW+ceIEAL8aMYIfDhniqJ6KdhIZGYnZbCYnJ8fRXRFCOEBH3KAHEpCFEJ2FtQaSvggXNtvC8b3boO/U+uLXz5/nO8bqBr8bOZIX2/HmDeE4U6ZMAZB5yEJ0U6mpqQQHB9O/f/92bUcCsp2dOHGCefPmERER0ex20s1ZtmwZMTExLFy4sNGvE28tT05OJjY2ltjYWEaNGsULL7wA2LZn/fKXv8y9997LV77yFSwWS5v6JUSHq62GvZ+HC/8Edz+497/QN6q++Gdnz/K906dRwJ9GjeKbAwY4rq+iXQ0fPpyAgACZhyxEN3Xw4EEiIiLafeqcBGQ7slqtPP/886xbt46NGzeyZs2aVteVkZFBXl4ee/bsISwsjM2bNzdbPm3aNBITE0lMTCQ6Opr58+cD8MEHHzBs2DASEhIICwvj/fffb9PrFKJD1VZD0ufh4gfg7g+zt0Nf2yii1pofnT7NT86exQVYGxbG19t5VEE4llKKiIgICchCdEOlpaUcO3aMqKio5k9uIwnIdrRr1y5MJhNBQUGEhIRQUlLS6rr27dvHAw88AMCcOXNISkpqcXl1dTUpKSnExNiWvDp16hQmkwmw7V2+e/fuVvdLiA5VWw17F8DFD8GjN8Rthz62eWdaa7576hQ/P38eV+Dv4eE8HRzs2P6KDjFlyhSys7OpqKhwdFeEEB3o0KFDaK3rp1q1J7d2b8FJJKpEu9QTq2ObLEtISGDbtm3ExsZiNpsZMWJEo+cVFBSwYMGC245v2LCBYOMNvqSkhJCQEAD8/PwoLi6+6dw7lW/fvp24uDhcjK10x4wZw3/+8x+efPJJtm/f3qbgLkSHqa2yheO8j23hePZ2CJgMgFVrvpOby+/y8nBXivgxY3g8MNCuzZcfK8dqtuJj8rFrvaLtIiMjqa2tJS0tjenTpzu6O0KIDlJ370F736AH3Sggd4S8vDzi4+MJDw9n7dq11NbWkpqayqpVq1i+fHn9KG5gYGCz85P9/f0pKysDbF8pBAQEtLh806ZNPPvss/WPH374YRITE5k9ezZjx46tD+FCOK3aKtjzFFz6BDwCjHA8CbCF42+cOMGfL1/GQyn+OXYsD/fta9fmS/eXkvVQFspdMXn/ZLyHetu1ftE2DXfUk4AsRPeRkpLCyJEjb8tE7aHbBOQ7jfzai7+/P4WFhVRWVhIfH8+mTZvw8fGpnwtcpyUjyNHR0axevZpFixaxdevW294Emiqvqanh4MGDvP322/XnKqV44403AFi+fDmzZ8+26+sWwq5qzbDnSbj0qS0cx+2A3rYPl7Va85Vjx/jblSt4ubjwr3HjeMDOF8rCTwo58rkjWCutBDwUgEegh13rF20XEhLCgAEDZB6yEN1MSkoKsbGxHdJWhwVkpZQXsBvwNNrdrLX+qVJqHTALKDVOfUZrna5styf+GpgHVBjHD3dUf1tj8eLFLFy4ED8/P1auXImPT+NfzbZkBNlkMtGvXz9iYmIYPHgwL730Evn5+bz11lusWLGi0XKwTa+YPXt2/fQKgPz8fL74xS/i4uJCXFwcM2fOtNtrFsKuas2w+wm4vAU8+8DsHdB7IgA1ViuLjh1jw9Wr9HRx4ZPx44nt3duuzV/+62WOLz4OtRD8lWBG/d8oXNzkVg1nNGXKFAnIQnQjeXl55OXldcj8Y+jYEeQqYLbW+oZSyh3Yq5TaYpR9V2u9+Zbz5wIjjZ8o4C3jX6c1evTo29bmzM3NZdu2beTk5DB8+HB8fX1bXN/rr79+0+Pg4GBWrFjRZDnA3LlzmTt37m3PS0hIaHG7QjhErRl2z4fLW8GzrxGOJwBQbbXyhSNH+KCwEB9XV7ZMmMB0Pz+7Na215vwr5znzozMADP7hYIb9THbgc2aRkZF88MEHlJSU0NvOH5SEEM6n7gNxlwvIWmsN3DAeuhs/+g5PeQz4m/G8/Uopf6VUiNb6cjt31a5CQ0NZv369o7shhHOzVNrCcf428AyEuJ3gPw4Ac20tT+Xk8O/iYvzd3Ng6YQJT7uKDZnN0rebkd05y6feXQMHI345kwDdlHWVnVzcPOTU1lfvvv9/BvRFCtLeUlBTc3Nzq7+dqbx363aFSylUplQ5cBf6rtT5gFP1cKZWplHpTKeVpHBsAXGjw9IvGsVvrXKyUSlVKpRYUFLRr/4UQ7cBSCbsfazQcV9TW8lh2Nv8uLqaPmxs7Jk60aziuNddy5AtHuPT7SygPxZiNYyQcdxJ1d7HLNAshuocDBw4wceJEvLy8OqS9Dg3IWutarbUJGAhMUUqNA74PhAGRQACw7C7r/JPWOkJrHRFo52WehBDtzFIBux+F/P+CVxDEJdSH4xsWCw9lZbGtpIQgd3cSTCYmNzGvv1VNl1rInJNJweYCXH1dmbB1AkFPBdmtftG+/P39GTVqlARkIboBq9XKwYMHO2x6BThooxCt9TUgAZijtb6sbaqAtUDdq88DBjV42kDjmBCiK7BUwK5HIH87ePUzwvFYAEotFh7MzCTx2jVCPDzYZTIxvlcvuzVddamKtJlplO4qxSPEg0l7JtE7tvPPY1VK/VUpdVUpld3gWIBS6r9KqZPGv72N40op9RulVK7xDd7kBs952jj/pFLq6QbH71FKZRnP+Y1xM3WTbbS3yMjI2+77EEJ0PcePH+f69etdMyArpQKVUv7G797A/cAxpVSIcUwB84G6C/tHwCLjIj4VKO1s84+FEE2wlMOuh+HKTvAKhrhE8BsDQElNDfdnZLCvrIxBnp7sNpkI69nTbk2XHyvn8LTDlGeW4z3am8nJk+k1wX7h28HWAXNuOfYysENrPRLYYTyGm2+EXoztRmiUUgHAT7HdFD0F+GmDwPsW8PUGz5vTTBvtKjIykkuXLnHp0qWOaE4I4SB1H4S7ZEAGQoAEpVQmcBDbHORPgL8rpbKALKAvsMo4/1PgNJAL/Bl4vgP7KoRoL5ZySHwYriSAdwjclwh+YQAUVlcTl5HBwevXGeblxW6TidAePezWdOn+UtJmpFF1vgqfKB8m7Z2E15COmc/WEbTWu4HiWw4/Brxj/P4OtoGIuuN/M77B2w/4GwMWD2K7PhdrrUuA/wJzjDJfrfV+4+bpv91SV2NttKu6N0uZZiFE15aSkoKPjw+jR4/usDY7chWLTGBSI8cb3bXCuAB/s737JYToQDU3YNdDcHW3LRzHJYCv7YJ3pbqa+zIyyC4vZ6S3NzsmTmSQHW/GKPp3ETkLcmwbgMwLYOzGsbj2dLVb/U6sX4Nv3/KBfsbvTd0IfafjFxs5fqc2bqOUWoxtxJrBgwff7Wu5iclkws3NjYMHD/LYY4+1qS4hhPNKSUkhIiICV9eOu2bLCvhCiI5RcwMS5xnhuL9tWoURjvOqqpiVlkZ2eTnhPXqwy2Syazi+vPYyWY9lYa20EvxsMOM+HNddwvFNjIGHOy2v2e5t2PPGam9vb8aNGyfzkIXowsxmMxkZGR06vQIkINvdiRMnmDdvHhEREc3ultecZcuWERMTw8KFC6mpqWm23Gq18swzzxATE8OMGTM4duwYAGfPniUwMJDY2FhiY2OR5fBEh6u5DolzoWAPeA8wwvEoAM6bzcxKS+N4ZSUTevYk0WQixNPzzvW1kNaac6+c4/hXbLvjDf7BYEa/PRoX92516bvS4F6PEGzLbELTN0Lf6fjARo7fqY12V7ejni2XCyG6moyMDGpqaiQgd2ZWq5Xnn3+edevWsXHjRtasWdPqujIyMsjLy2PPnj2EhYWxefPmZsvT09Opqqpiz549vPrqq6xevbr+/FmzZpGYmEhiYiKyHJ7oUDVlkDAHCvZCj4G2Oce+IwE4XVnJzLQ0TpnNTO7Vi50mE0EeHnZpVtdqcr+dy5kfngEFob8NZfjPh3fH3fE+AupWonga+FeD443dCL0VeEAp1du4Oe8BYKtRVqaUmmrcVL3olroaa6PdRUVFce3aNU6ePNlRTQohOpAjbtADCch2tWvXLkwmE0FBQYSEhFBSUtLquvbt28cDDzwAwJw5c0hKSmq2fODAgWit0VpTUlJC3759689PSkoiJiaGH/zgBzLSIjpOXTgu3Ac9BtlGjn1CAThRUcGs9HTOVZYGOwkAACAASURBVFUR5ePDjokT6ePubpdm6zYAyftdnm0DkPgxDPzWwOaf2Mkppf4BJAOjlVIXlVJfBV4D7ldKnQTuMx5DEzdCa62LgZ9hu5n6ILDSOIZxzl+M55wCthjHm2qj3UVFRQGwf//+jmpSCNGBUlJSCAkJYcCAjt3EqcNu0nM01cbpDnV0bGyTZQkJCWzbto3Y2FjMZjMjRoxo9LyCggIWLFhw2/ENGzYQHBwMQElJCSEhIQD4+flRXHzzjemNlfft2xd3d3fCwsIwm831oTokJITc3Fx69OjB17/+dd5//32efPLJu37tQtyV6lJbOC7aDz0Gw30J0Gs4AEfKy4nLyCC/upoYPz/+PX48Pm72uRxZSi1kz8/mWuI1XH1dGfevcV1ijeOW0Fp/sYmiuEbObfJGaK31X4G/NnI8FRjXyPGixtroCOHh4fj6+rJ//34WLVrkiC4IIdpRSkoKU6ZM6fBv/7pNQO4IeXl5xMfHEx4eztq1a6mtrSU1NZVVq1axfPny+v3DAwMDm52f7O/vT1lZGQClpaUEBAQ0W75t2zbc3Nw4fvw4qampvPjii8THx+Pp6YmnMafziSeeYP/+/RKQRfuqLoWEB6HoAPQcYlutotcwADJu3OC+jAwKa2qY7e/PR+PH09NOdyZXXaoic24m5ZnleIR4MGHLBHpN7DJrHItGuLi4EBkZyYEDBxzdFSGEnZWUlHDixAmefvrp5k+2s24TkO808msv/v7+FBYWUllZSXx8PJs2bcLHx4f5829eErQlI8jR0dGsXr2aRYsWsXXrVqZPn37TuY2Va63p06cPAH379qW0tBSA69ev42Ns0btnzx7Cw8Pt/tqFqFd9zQjHKUY4ToReQwE4dP0692dkUGKxMCcggPfHjsXbTuG44ngFGQ9mUHWuCu9R3kzYOgHvod52qVs4t6lTp/Laa69RUVFBDzuumy2EcKzU1FSg4+cfQzcKyB1h8eLFLFy4ED8/P1auXFkfSm/VkhFkk8lEv379iImJYfDgwbz00kvk5+fz1ltvsWLFikbLXVxcWLduHbNmzaKqqqr+Jr29e/fyox/9iB49ejBs2DB+9rOf2fulC2FTXQI7H4DiVOg51HZDXs8hAOwvLWVOZialtbU82qcPG8eOxdPFPrdBlB0oI/OhTCxFFnyifBj/yXg8+trnZj/h/KKioqitreXw4cPMmDHD0d0RQthJ3Q16ERERHd62BGQ7Gj169G3rcebm5rJt2zZycnIYPnw4vr6+La7v9ddfv+lxcHAwK1asaLIcID4+/rZjc+fOZe7cuS1uV4hWqS6BnfdD8SHoOcwIx7aNIPZcu8a8rCxu1NbyVGAgfw8Px8NO4bjo30XkfC4Ha0W32wBEGBreqCcBWYiuIyUlhdGjR+Pv79/hbUtAbmehoaGsX7/e0d0Qon1VFdvCcclh2414cYnQ07aU7o6SEh7NyqLCauVLQUG8ExaGm53C8eW1lzn+ddsax8HPBDPqT6O62xrHAggKCmL48OGykoUQXYjWmgMHDtSv2NXR5J1ECNE2VcWw8z4jHI+A+3bVh+MtRUU8lJlJhdXKs8HB/C083C7hWGvNuVdv2QDkr91uAxDRQFRUlNyoJ0QXcuHCBa5cueKQ+ccgAVkI0RZVRbAzDkrSoFeobVpFD9t6wx8VFjI/O5sqrflG//78ZfRoXO2wTI+u1eR+J5czPzA2APlNt90ARDQwdepULl68SF5eXvMnCyGcXnJyMmD7/7YjSEAWQrSOuRB2xEFJOviMvCkcb756lSdzcqjWmu8MGMAfRo7ExQ4B1lpl5cgXj5D3W2MDkA1jGPj/uv4GIKJ5dfOQZRRZiK5h//79eHl5MXHiRIe0LwFZCHH3zAWwczZcywCfUbY5xz1suxz9/coVPn/kCBat+d6gQbwZGmqX0V1LqYXMOZkUbCrA1deVCf+ZQNDngtpcr+gaTCYTHh4eMg9ZiC4iOTmZiIgI3O20w+rdkoAshLg75gLbtIprWeA72hg57g/AXy9fZuHRo1iBnwwZwmvD7TP1oepyFWmz0riWeA2PYA8m7Z5E73u7x+54omU8PT2ZNGmSBGQhuoCqqirS0tKYNm2aw/ogAVkI0XLmq7BjthGOw2wjx962Lc//mJfHV48fRwM/HzaMFcOG2SUcVxyv4PC0w5RnlOM9yptJyZNkdzzRqKlTp5KamorFYnF0V4QQbXD48GGqq6sdNv8YJCALIVqq8grsuBdKs8E33AjHtp0ff33xIs+dPAnAr0aM4AdDhtilybIDZRyefpiqc1X4TPFh0t5JsjueaNLUqVOprKwkKyvL0V0RQrRB3TdBEpCFEM6tMt8Ix0fAbwzEJYB3PwB+ef48S3JzAfhtaCgvDhpklyaLPi0ifXY6liILAXMDMO004REou+OJpsmNekJ0Dfv372fw4MH079/fYX2QgGxnJ06cYN68eURERDS7nXRzli1bRkxMDAsXLqSmpqbZcqvVyjPPPENMTAwzZszg2LFjgG2ie2xsLLGxsYwaNYoXXnihTf0S3UzlZVs4LjsKfmPrw7HWmpVnz7Ls9GkU8KdRo/jWQPusKHF53WWyHs3CWmEl+Jlgxv1rnOyOJ5o1dOhQgoKCZB6yEJ1ccnKyQ+cfgwRku7JarTz//POsW7eOjRs3smbNmlbXlZGRQV5eHnv27CEsLIzNmzc3W56enk5VVRV79uzh1VdfZfXq1QBMmzaNxMREEhMTiY6OZv78+W16naIbqQ/Hx8B/vC0cewWhteZHZ87w07NncQHWhYXxdTt80tdac+61cxx/1tgA5PuyAYhoOaUUUVFREpCF6MTy8vK4cOGCQ6dXgARku9q1axcmk4mgoCBCQkIoKSlpdV379u2r315xzpw5JCUlNVs+cOBAtNZorSkpKaFv3743Pae6upqUlBRiYmJa3S/RjVRcgu2xUHYc/CfA7B3gFYjWmpdOneKV8+dxBdaPGcOi4OA2N6etmtwluZz5foMNQF6RDUDE3Zk6dSrHjx9v0/VXCOE4dR9wHT2C7ObQ1jvSeju9yX5JN1mUkJDAtm3biI2NxWw2M2LEiEbPKygoYMGCBbcd37BhA8FG0CgpKSEkxLY6gJ+fH8XFxTed21h53759cXd3JywsDLPZfFuo3r59O3FxcbjYYatf0cVV5NlGjq+fBP+JMHs7ePXFqjXfPnmS31+6hLtSxI8Zw+OBgW1uzlpl5eiioxRsLEB5KMLfDZc1jkWr1M1DTklJ4cEHH3Rwb4QQd2v//v14eHhgMpkc2o/uE5A7QF5eHvHx8YSHh7N27Vpqa2tJTU1l1apVLF++vP6PHRgY2Oz8ZH9/f8rKygAoLS0lICCg2fJt27bh5ubG8ePHSU1N5cUXXyQ+Pr7+OZs2beLZZ5+14ysWXVLFRdh+L9zIhd4mWzj27INVa/73xAn+cvkynkrxz3HjeKhPnzY3Zym1kP14NtcSruHq48q4f42TNY5Fq0VGRqKU4sCBAxKQheiEkpOTueeee/D09HRoP7pPQL7DyK+9+Pv7U1hYSGVlJfHx8WzatAkfH5/b5vy2ZAQ5Ojqa1atXs2jRIrZu3cr06dNvOrexcq01fYzA0rdvX0pLS+vPr6mp4eDBg7z99tv2ftmiKym/YBs5vnEKek+C2f8Fzz5YrFa+cvw47165greLCx+OG8cDt3xoa42qy1Vkzs2kPKMcj2APxm8Zj4/Jxw4vRHRXvr6+jB07VuYhC9EJVVdXc+jQIZ577jlHd6UbBeQOsHjxYhYuXIifnx8rV67Ex6fxN/qWjCCbTCb69etHTEwMgwcP5qWXXiI/P5+33nqLFStWNFru4uLCunXrmDVrFlVVVfU36YFtesXs2bNleoVoWvl5Ixyfht6TjXAcQI3VysKjR4kvKKCniwufjB9PbO+2j/BWnKgg88FMzGfNeI/0ZsLWCXgPkzWORdtFRUXxwQcfoLWWOexCdCIZGRmYzWaHzz8GCch2NXr0aFJSUm46lpuby7Zt28jJyWH48OH4+vq2uL7XX3/9psfBwcGsWLGiyXLgpikVDc2dO5e5c+e2uG3RzZSfs02rKD8DAffYwrFHb6qsVr5w5AgfFhbi4+rKlgkTmO7n1+bmylLKyHooi5rCGnym+DD+k/GyxrGwm6lTp/L222+Tm5vLyJEjHd0dIUQLOcMGIXUkILez0NBQ1q9f7+huCNG08nO21SrKz0JAhBGO/THX1vJkTg6fFhfj7+bG1gkTmHIXH/CaUrSliJyncrBWWAmYG8DYTWNljWNhV3VvrsnJyRKQhehEkpOTGTBgAIPstOFUW8j37UJ0ZzfONgjHkfXhuKK2lkezs/m0uJg+bm7snDjRLuE4/518sh6xbQDS7+l+sgGIaBdjxozB19eXffv2OborQoi7sH//fqcYPQYJyEJ0XzfOwI5YWzjuE1Ufjm9YLMzLzOS/JSUEubuTaDIxqYn59C2lteb8L85z7Jljtg1AXh5M2Now2QBEtAsXFxemTZsmAVmITuTKlSucOXPGKeYfgwRkIbqnG6eNkeNz0Gcq3LsVPPwotVh4MDOTXaWl9PfwYJfJxLhevdrUlLZqcl/I5fTLp20bgPw6lOGvygYgon1FR0eTnZ1902o+Qgjn5Uzzj6EbBGSt2395t85O/ht1M9dP2cJxxXnoOw1m28JxcU0N92VksK+sjEGenuwymQjr2bNNTVmrrBz54hHyfp2H8lCM2TCGgd8eaJ/XIcQdREdHo7XmwIEDju6KEKIFkpOTcXd3Z/LkyY7uCtDFA7KXlxdFRUUSAO9Aa01RURFeXl6O7oroCNdzbdMqKi5A4HTbyLG7L4XV1cRlZJB6/TrDvLzYbTIR2qNHm5qylFnInJdJwcYCXH1cmbBlguyOJzrMlClTcHFxkWkWQnQS+/fvx2Qy4e3tHMt9dulVLAYOHMjFixcpKChwdFecmpeXFwMHyqhel3c91zZyXJkHgTMg9lNw9+FKdTVx6enkVFQw0tubnRMnMrCNH5iqLleRNS+LG+k3ZAMQ4RC+vr6MHz9eArIQnYDFYuHgwYN87Wtfc3RX6nXpgOzu7s6wYcMc3Q3RjVRWVuLl5XXT/FqtNWaz2bGfistO2kaOKy9BYAzE/hvcfcirqiIuPZ3jlZWM6dGD7RMnEtLG7T07+wYgTvs3FHdt+vTpvPvuu9TW1uLqKqulCOGssrKyqKiocJr5x9CBUyyUUl5KqRSlVIZSKkcptcI4PkwpdUAplauUildKeRjHPY3HuUb50I7qqxCtUVlZSVxcHEuXLq2f1qO1ZunSpcTFxVFZWemYjpUdhx2zbOE4aGb9yPE5s5mZaWkcr6xkYs+eJJpMbQ7HZQfLSJuehvmsGZ9IHyYlTep04dgp/4aiVaKjo7l+/TrZ2dmO7ooQ4g6Sk5MBnGYFC+jYOchVwGyt9UTABMxRSk0FfgG8qbUOBUqArxrnfxUoMY6/aZwnhNPy8vIiKiqKNWvW1AespUuXsmbNGqKiohwzz7v0mG376MrLEBRrhONenKqsZGZaGqfNZu7p1YudJhOBHm3bya7oP0Wkx6ZTU1hDwNwAJu6c2Ol2x3PKv6FotejoaACZZiGEk0tKSiI4OJghQ4Y4uiv1OmyKhbYNx9wwHrobPxqYDXzJOP4OsBx4C3jM+B1gM/A7pZTScsedcFJKKVavXg3AmjVrWLNmDQBLlixh9erVHb+sWelR2DEbzPnQ716Y9TG49eR4RQVx6enkVVcz1deXLePH4+/u3qam8v+Wz/GvHkdbNP2e7sfoP4/ulGscO93fULTJ0KFDCQ4OZt++fTz33HOO7o4QoglJSUlMnz7dqa6xHfoOppRyVUqlA1eB/wKngGtaa4txykVggPH7AOACgFFeCvRppM7FSqlUpVSq3IwnHK1hwKrjmHB8xDZybM6HfrNh1ifg1pOc8nJmpaWRV11NjJ8f2yZMaFM41lpz/pfnOfb0MbRFM2jZoE6/AYjT/A1FmymliI6OlhFkIZxYXl4e586dY8aMGY7uyk069F1Ma12rtTYBA4EpQJgd6vyT1jpCax0RGBjY5j4K0RZ1X8k31HA+a4eoD8dXoF+cMXLcg4wbN4hNT+dKTQ1x/v5smTABH7fWf4mkrZpTS09xepmxAciaUEa8NqLTB0mn+BsKu4mOjub06dPk5+c7uitCiEYkJSUBtptqnYlDhnm01teABGAa4K+UqnuXHgjkGb/nAYMAjHI/oKiDuypEizWcr7pkyRKsVitLliy5aT5ru7uWbVvKzXwVgu+vD8epZWXcm55OYU0NcwMC+Hj8eHq24a5+a5WVI186wsU1F1HuijH/GMPA73T+pQKd4m8o7KruTVdGkYVwTklJSfTo0QOTyeTortykw+YgK6UCgRqt9TWllDdwP7Yb7xKAp4ANwNPAv4ynfGQ8TjbKd8r8Y+HMzGYzBw4cuGm+at1X9QcOHGj/ZcKuZcGOOKgqgOAHYOaH4OZNcmkpczIzKaut5bE+fYgfOxZPl9Z/NraUWch+PJtrO6/h6uPKuA/H0Xt2bzu+EMdx+N9Q2N2kSZPw9PRk3759PPHEE47ujhDiFklJSUyZMgX3Nt4LY2+qozKnUmoCtpvwXLGNXG/UWq9USg3HFo4DgDTgy1rrKqWUF/AuMAkoBr6gtT59pzYiIiJ0ampqe74MIe7IYWvolmTCzjioKoSQOTDzA3D1Yve1a8zLzKTcamVBYCB/Dw/HvQ3huCq/iqy5tg1A3Pu5M2HLBHwmda0NQNr6N1RKHdJaR7RnH7uKjrpmz5gxA6vVKqPIQjiZGzdu4O/vz8svv8yqVasc0oemrtkduYpFJrawe+vx09jmI9963Aws6ICuCWE3jQUopVQ7h+MMIxwXQchcmPk+uHqxvbiYR7OzqbRa+Z+gINaFheHWhnBccdLYAORM59wApKUc8jcU7So6Oppf//rXmM1mWapPCCeSkpJCbW2t080/BgfNQRZC2ElJ+mfhuP+8+nD8aVERD2dlUWm18pXgYN4JD29TOC47WEZadBrmM51zAxDRvUVHR1NdXc3hw4cd3RUhRANJSUkopZxqg5A6EpCF6KyK04w5x0XQ/yGIsYXjfxUWMj87myqtea5/f/48ejSubVhZ4qYNQOZ0zg1ARPcmG4YI4ZySkpIYN24c/v7+ju7KbSQgC9EZFR+2jRxXF8OARyDmn+DqycarV3kqJ4carVkycCC/HzkSlzaE4/x388l+JBtrhZV+i/ox7qNxuPXqsJlZQthFUFAQoaGh9ctJCSEcr7a2luTkZKecXgESkIXofIoP2UaOq0tg4GMwYzO4evJefj5fPHIEi9YsGzSI1SNavyax1przr5/n2CJjA5DvDSJsXefeAER0b3UbhshiSEI4h+zsbMrKyiQgCyHsoOgg7LgPaq7BwPkwfSO4evDXy5dZdOwYVuCnQ4bw6vDhrQ/HdRuAfM+2aMyIN0cw4hedfwMQ0b1FR0dz9epVTp++42JIQogO4qwbhNSRgCxEZ1GYAjvvN8Lx4zA9Hlw9eCsvj68eP44GXhk2jOXDhrU6zFqrrBz9n6P1G4CE/yOcQUsG2fd1COEAMg9ZCOeSlJRESEgIQ4cOdXRXGiUBWYjOoPAAJNwPNaUw6EmYYQvHb164wPMnTwKwesQIvj9kSKubsJRZyHwok6sbruLq48qELRPo94V+9noFQjjUmDFj8PX1lXnIQjiJpKQkpk+f7rTfTkpAFsLZFe6HhAegpgwGPQXT/wEu7rx27hxLT50C4PcjR/LCoNaP9FblV5Eem861Hddw7+eOaZeJ3nFdY3c8IQBcXV2ZNm0ae/fudXRXhOj28vLyOHfunNNOrwAJyEI4t4Jk2GmE48Gfg+nr0cqNFWfP8v0zZ1DAn0eN4vkBA1rdRMXJCtKi07iRdgPvUG8m75vc5XbHEwIgJiaGnJwcioqKHN0VIbo1Z59/DBKQhXBeBUm2kWPLdRj8eYj+O1q58cMzZ1h+9iwuwDthYXytf/9WN1F2sIy06cYGIBHGBiDDZQMQ0TXFxMQAyDQLIRwsKSmJHj16YDKZHN2VJklAFsIZXd0LCXPAcgOGfAGi30MrV148dYpXz5/HFfjHmDEsDA5udRPFW4tJvzedmoIaej/Ym4kJE/EIkg1ARNc1ZcoUPDw82LNnj6O7IkS3lpSURFRUFO7u7o7uSpMkIAvhbK7ugcS6cPwlmPYuVuXKN0+e5M2LF3FXis1jx/K5oKBWN5H/Xj5ZD2dhLbfSb2E/xn88XjYAEV2el5cXkZGREpCFcKAbN26Qnp7u1NMrQAKyEM7l6m5InAuWchj6ZZj2N2qVK4uPH+etS5fwVIoPx41jfmBgq6rXWnP+V+c5ttDYAOS7sgGI6F5iYmI4dOgQ5eXlju6KEN1SSkoKtbW1EpCFEC10ZRck1IXjhTB1HRYUzxw7xtv5+Xi7uPDx+PHM69OnVdVrq+bUi6c4/V1jA5DVIxjxyxEoF+dcYkfYl1LqBaVUjlIqWyn1D6WUl1JqmFLqgFIqVykVr5TyMM71NB7nGuVDG9TzfeP4caXUgw2OzzGO5SqlXu74V9gyMTExWCwWDhw44OiuCNEtJSUloZRi2rRpju7KHUlAFsIZXEmAxHlQWwHDnoapa6lB8T9Hj/LelSv0dHFhy4QJ3B8Q0KrqrVVWjn75KBffbLAByAuyAUh3oZQaAHwbiNBajwNcgS8AvwDe1FqHAiXAV42nfBUoMY6/aZyHUmqM8byxwBzgD0opV6WUK/B7YC4wBviica7TiY6ORikl0yyEcJC9e/cybtw4/Pz8HN2VO5KALISj5e+ExIds4Xj4MxD1NlUoFuTksLGgAF9XV7ZNnMgsf/9WVV+/Acg/ruLay5Xxn46XDUC6JzfAWynlBvQALgOzgc1G+TvAfOP3x4zHGOVxyraa/2PABq11ldb6DJALTDF+crXWp7XW1cAG41yn4+/vz4QJEyQgC+EAFouF5ORkZsyY4eiuNEsCshCOlL8Ddj0EtZUw/CsQ9TaVGh7PzuZfRUX0dnNjx8SJRLfyk3b1lerbNgAJuK91o9Ci89Ja5wG/As5jC8alwCHgmtbaYpx2EahbUHsAcMF4rsU4v0/D47c8p6njTikmJobk5GRqamoc3RUhupWMjAyuX7/OzJkzHd2VZklAFsJR8rfDroeh1gwjvgZRf6bcqnk0O5stxcX0dXdn58SJRPj6tqr6ipMVHI4+fPMGIJNlA5DuSCnVG9uI7jCgP9AT2xQJR/RlsVIqVSmVWlBQ4IguEBMTQ0VFBWlpaQ5pX4juavfu3cBna5I7MwnIQjjC5W2w6xEjHH8dpvwf12utzMvMZHtJCf3c3UmYOBGTT+sCbVmqsQHIaTO97uklG4CI+4AzWusCrXUN8D4wHfA3plwADATyjN/zgEEARrkfUNTw+C3Paer4bbTWf9JaR2itIwJbuRpLW9W9Ocs0CyE61u7duxkxYgQD2rD7a0eRgCxER7u0FXY9agvHof8LU/5Iaa2VBzMz2V1aSn8PD3ZNmsS4Xr1aVX3xtmLSY40NQB7ojSnRJBuAtEKpuZSjBUcd3Q17OQ9MVUr1MOYSxwFHgATgKeOcp4F/Gb9/ZDzGKN+ptdbG8S8Yq1wMA0YCKcBBYKSxKoYHthv5PuqA19UqISEhjBgxgr179zq6K0J0G1arlT179nSK6RUgAVmIjnVpC+x+DKxVEPoNiPwDxZZa7svIILmsjMGenuyeNInRPXq0qvr89/LJesjYAOTLsgFIa+08s5MJf5zAoxsepby686+Xq7U+gO1mu8NAFrZr/5+AZcBSpVQutjnGbxtPeRvoYxxfCrxs1JMDbMQWrv8DfFNrXWvMU/4WsBU4Cmw0znVaMTEx7N27F1vuF0K0t6NHj1JUVNRpArK8cwrRUfI+hT2Pg7UaRj4PEb+joKaG+zMyyCgvZ7iXFztNJoZ4ebWq+vO/Ol+/xvGglwYx/BfDZY3ju1RRU8HL21/mtym/BSCifwTFlcX09Ojp4J61ndb6p8BPbzl8GtsKFLeeawYWNFHPz4GfN3L8U+DTtve0Y8TExLBu3TqOHTtGeHi4o7sjRJdXN/9YArIQ4jN5n8CeJ23heNS34J7fkF9dTVxGBkcqKhjl7c1Ok4kBnp53XbW2ak599xQXV18EYMQbIxi0VNY4vlvJF5J5+sOnOVl8EjcXN34666e8PONl3FzkMtkVNZyHLAFZiPa3e/duBgwYwLBhwxzdlRaRKRZCtLeLH8OeJ4xw/G245zfkVVczKz2dIxUVjOnRg12tDMfWamMDkNXGBiDrwyUc36UqSxXf3/59Zqydwcnik4wLGkfK11L40cwfSTjuwkJDQ+nXr5/cqCdEB9Bas3v3bmbOnIntNgjnJ1d/IdrTxY9g71NgrYHR34HJb3KuqorZ6emcNpuZ2LMn/504kUCPu7+JznLdQs4TOZRsL8G1lytj3x9LwP2yxvHdSM9PZ9EHi8i6moWLcmHZ9GWsiF2Bp9vdf1gRnYtSipiYGAnIQnSA06dPc+nSpU4zvQJkBFmI9nPhwwbh+AWY/CanzGZmpqVx2mwmwseHnSZTq8Jx3QYgJdtLcA8yNgCRcNxiFquFVbtXEfnnSLKuZhEaEMqeZ/fw2n2vSTjuRmJiYjh37hwXLlxo/mQhRKt1tvnHIAFZiPZx4QPYu8AWjsOWwuQ3OF5Zycy0NM5XVTHN15ftEycS4O5+11VX5BobgBy+gdcIL9kA5C4dKzxG9NvR/Djhx1isFr4V+S3S/zed6EHRju6a6GCyHrIQHWP37t307du3U833l4AshL2d/yfs/RxoC4S/BJN+RXZ5ObPS0rhUXc1MPz+2TpiAn9vdz3AqSy0jLfqzDUAm75uM9wjZAKQl/j979x1eRZn2cfz7pCcEQiA06b2kIwIBgUCQLgICthUUFUVdl8XeVhd1TlcTxwAAIABJREFUfW2I7gqKYEFUmnQIEEjoiJRUmqQAoSWBBFJIP8/7xznBIC0HSSY5uT/XxcU5k5nhDkryy8w9z23SJqb/Op3ArwLZfWo3TWs1JezhMP475L82sUqFsJ6fnx+1atWSgCxEOduyZQu9evWqMv3HID3IQtxaxxfD9vtBF0PHFyHgA6Kys7krJoazhYX09/RkuY8Pbvb2Vp86fX06caPiMOWY8Bzgifdibxxqyj/hskjKSOLR5Y+y+dhmAB4JeITpA6fj4eJhcGXCSPb29vTo0UMCshDl6MSJEyQmJvL3v//d6FKsIleQhbhVji/6Ixx3egUCPmB3Vhb9oqM5W1jIkDp1WHmT4Tjlx5RLA0DqP1TfPABEwvENaa35eu/X+H3px+Zjm2lQowHL71/Ot/d8K+FYAOY2i/3793P27FmjSxHCJpX8AFqV+o9BArIQt8axBbD9AXM49n4N/P/DjsxM+kdHk1FUxAgvL5b4+OByE+E4+ZNkDv7tILpI0+T5JnSc2xE7J/mneyOnsk4x9KehTFw1keyCbEZ3Gk3c03EMbz/c6NJEJdKnTx9A+pCFKC+bN2+mZs2a+Pv7G12KVeS7rBB/1dGfYceDlnD8Ovi9y+YLFxgQHU1mcTFj69VjYadOONtZ989NmzTxz8eT8EICAK0/bk2bj9vIdLwb0Frzc+zP+MzwITQ+FE8XT34a9RMLRy/Ey83L6PJEJXPHHXfg6urKpk2bjC5FCJu0ZcsW7rzzTuxv4gKRkeQerRB/xdGfYOfDoE3g8yb4/psNGRkMj4sj12Ti4QYN+KZ9exysDMemAhOHHj1E6k+pKEdFh+860ODBBuX0SdiOsxfPMmn1JBYfWAzA4DaDmT18NrfVvM3gykRl5eTkRM+ePSUgC1EOUlNTOXjwIOPGjTO6FKvJFWQhblbSvFLh+C3wm8qa9HSGxcaSazLxWMOGfNuhg9XhuCiriNhhsaT+lIq9uz2+q30lHJfBisMr8J7hzeIDi3F3cufru79m9YOrJRyLGwoODiYmJoZz584ZXYoQNmXbtm1A1es/hgoMyEqppkqpCKXUAaXUfqXUPyzb31ZKnVRKRVl+DSl1zKtKqXil1GGl1MCKqlWIG0r6AX4dbw7Hvm+D39ssS0tjRFwc+Vrz9G23Mat9e+ytXNLm0gCQMMsAkE0yAORGLuRd4NHlj3LP/HtIzUmlT/M+xDwVw+OdH69SSwoJ4wQHBwN/DDMQQtwaW7ZswcXFhS5duhhditUqssWiCHhea71PKVUT2KuUCrN87FOt9celd1ZKdQLuB7yB24ANSql2WuviCqxZiCslfg+/Pgpo8J0Kvm+yIDWVhw4coBj4Z5MmfNK6tdXh7GL8RWIGxpCXmIdLaxf81/nLGsc3sDFxI48uf5TkzGRcHFx4P+R9nuv2HHZKbo6Jsivdhzxy5EijyxHCZmzZsoWgoCCcbmJirNEq7LuI1vq01nqf5XUWcBBofJ1D7gHma63ztdZJQDzQtfwrFeI6Er/7Ixz7vQO+b/LDmTM8aAnHrzZrdlPhOGtvFpE9LQNAOrvTebsMALmenIIcnl3zLP1/6E9yZjJdG3cl8slIJnefLOFYWE36kIW49S5cuEBUVFSVbK8Ag3qQlVItgEBgl2XTs0qpGKXUN0opT8u2xkByqcNOcJVArZSaqJTao5Tak5aWVo5Vi2ov4Rv4dQKgwf898HmDOadPM/7QIUzA2y1a8F7LllaH4/SwdKKCoyhMLcTzLk8CNgXg1KDq/bRdUXYk7yDgqwC+2P0FDnYOvNv3XbZP2E4Hrw5GlyaqsL59+0ofshC30LZt29BaS0AuK6WUO/ALMFlrnQnMBFoDAcBp4BNrzqe1nqW17qK17lKvXr1bXq8QACTMgV2PYQ7H74P3a8w4eZLHDx9GA++3bMlbLVpYHY5TfkwhdkgsxdnF1H+wPr6rZADIteQX5fPKhlfo9W0v4tPj8a3vy+4ndvN679dxsJO/M/HXSB+yELdWeHg4Tk5OBAUFGV3KTanQgKyUcsQcjn/UWi8B0FqnaK2LtdYm4Gv+aKM4CTQtdXgTyzYhKlb817DrcfPrgA/A+xU+TU7mmSNHAPi0dWtead7c6tMmTys1AGRKEzr+IANAriXydCRdvu7CB9s/AOCVnq+w+4ndBDQMMLgyYSu6dOmCm5ubtFkIcYtEREQQFBSEq2vVbBesyFUsFDAHOKi1nlZqe6NSu40E4iyvVwD3K6WclVItgbbAbxVVrxAAxM+C3yaaXwd+BJ1e4v1jx5iSYB7eMaNtWyY3bXqdE1xJmzTxL8ST8HypASCfyACQqykyFfHO5nfoOrsrcalxtK3Tlm2PbuP9/u/j7OBsdHnChpT0IUdERBhdihBVXnp6OlFRUfTr18/oUm5aRd6X7Ak8DMQqpaIs214DHlBKBQAaOAo8CaC13q+UWggcwLwCxjOygoWoUEe+hN2TzK8DP0F3+CdvJyUx9dgxFDC7fXsmNGp03VP8manAxKEJh0j9MRXlYBkA8pCscXw1B9MOMn7ZeHaf2g3A37v+nfdD3qeGUw2DKxO2Kjg4mNdff52zZ8/i5SVTF4W4WVu2bEFrTd++fY0u5aZVWEDWWm8DrnaJbM11jnkPeK/cihLiWn6fAXueMb/uPA3dfjKvJibyQXIydsD3HTrwt4YNrTplUVYR+0fvJ2N9BnY17PBZ4kOdAbLG8Z+ZtInpv07ntY2vkV+cT9NaTfn2nm8JaRVidGnCxpXuQx41apSxxQhRhYWHh+Pq6krXrlV38TFpeBTiz37/olQ4no5uP5kpCQl8kJyMg1LM79TJ6nBckFJAVN8oMtZn4FjPMgBEwvEVkjKS6Pt9X55f/zz5xfk8GvAosZNiJRyLCiF9yELcGhEREfTs2RNn56rbCiePfgtR2uH/wt7nzK9v/xxTu2d59sgRZp46haNSLPL25h4rb73mJuQSPTCavIQ8XFq54LfOD7c2buVQfNWltebrfV8zZd0UcgpzaFCjAV/f/TV3t7/b6NJENSLrIQvx16WlpREXF8eDDz5odCl/iVxBFqLEoc/+CMdd/kdxu2d54vBhZp46hbNSLPfxsTocZ+3LYl+PfeQlWAaA7Ogs4fhPTmaeZMhPQ3hy1ZPkFOYwptMY4p6Ok3AsDBEcHExsbCxnz541uhQhqqSSHzCrcv8xSEAWwuzQp7Bvsvl1ly8oajOJ8QcP8s2ZM7ja2bHaz4/Bdetadcr0sHSi+lgGgPSXASB/prXmx5gf8Znpw9r4tXi6ePLzvT+zcMxCvNzkASlhDFkPWYi/Jjw8HHd3d26//XajS/lLJCALcXAa7Jtifn3HDArbPMWDBw/yY2oq7vb2rPXzI8TT8/rn+JOUn1KIHWoZAPJAfXxXywCQ0tJy0hizaAx/W/o3zuedZ0jbIcQ9Hcf9PvcbXZqo5qQPWYi/JiIigl69euHo6Gh0KX+JfMcW1dvBjyHyRfPrO74kv/UT3Ld/P8vPnaOWJRwHeXhYdcrkacmX1jhu8s8mtP64taxxXMryQ8uZuGoiqTmpuDu58+nAT3ks8DGrpxAKUR6kD1mIm3fq1CkOHz7M448/bnQpf5lcQRbV14GP/gjHXWeR2+pxRsbFsfzcOTwdHNjo729VONYmTcKLCZfCcauPWtFmmgwAKXE+7zzjl41nxIIRpOakEtwimNhJsTze+XEJx6JSkT5kIW6OrfQfgwTkSiU3Nxet9WXbtNbk5uYaVJENO/ABRL0EKOg2m5yWE7g7NpbQ9HS8HB2JCAigS61aZT6dqcDEwXEHSf442TwA5IcONHuhWfnVX8VsSNyA70xf5kbPxcXBhekDp7Nx3EZa1G5hdGlCXKGkD3nz5s3GFiJEFRMeHk7t2rUJCAgwupS/TAJyJZGbm0tISAhTpky5FJK11kyZMoWQkBAJybfS/vch6hVKwnFW8/EMjolh4/nzNHB0ZFNAAP7u7mU+XVFWEbF3x5L6Yyp2NezwXeVLw79Zt06yrcopyOGZ1c9w1w93cSLzBF0bdyXqySj+0f0f2Cn58iMqpy5dulCjRg0ZOy2ElSIiIujduzf29vZGl/KXyXeoSsLFxYVu3boxffr0SyF5ypQpTJ8+nW7duuHi4mJ0ibYh7j2Ifg1Q0P0bzjd7mAExMWy9cIHGTk5sCQzEu0bZRxkXpF5lAMhAGQACsP34dvy/9GfGnhk42jnyXr/32D5hO+292htdmhDX5eTkRO/evdmwYYPRpQhRZRw7dozExET69etndCm3hDykV0kopZg2bRoA06dPZ/r06QBMnjyZadOmSY/mrRD7DsT+C3M4/pb0pg8yIDqavdnZNHd2JjwggFaurmU+nQwAubq8ojzeiniLj3Z8hEbjW9+XH0b+gH9Df6NLE6LMQkJCCA0N5cSJEzRp0sTocoSo9EruuNhC/zHIFeRKpXRILiHh+BaJnfpHOA76nrQmD9A3Koq92dm0dnFhc2CgVeH4sgEgge4Ebg+UcAzsO72PLrO68OGOD1FK8eqdr7L7id0SjkWV079/fwA2btxocCVCVA0RERHUrVsXHx8fo0u5JSQgVyIlbRWlle5JFjcp5m2IfQuUHQTN5fRtYwmOiiImJ4f2rq5sDgykuRUtLOkb/hgAUjukNgGbAnBuWHXnzd8KhcWFTN08lW6zu7E/bT9t67Rl+4Tt/CfkPzg7VO+/G1E1+fr64uXlJQFZiDLQWhMREUFwcDB2drYRLW3js7ABpXuOJ0+ejMlkYvLkyZf1JAsraQ0xb0Hcvy3h+AdONBpNn6goDly8iLebG5sCAmjsXPYAl/JzCrFD/hgA4rfGD4da1btT6UDaAXp804O3Nr1FkamI57o+R9RTUXRv0t3o0oS4aXZ2doSEhLBhwwb5+ivEDSQmJpKcnGwz/ccgPciVRl5eHrt27bqs57ik3WLXrl3k5eXhakULQLWnNcT8C/a/awnH8zjaYAT9oqJIyssjwN2dMD8/vJzKPvo5+dNkEqZYBoBMbkLrT6r3AJBiUzGf7fqM1za+Rn5xPs08mvHtPd/Sr6XtfIEU1VtISAgLFizg0KFDdOzY0ehyhKi0wsPDAdvpPwYJyJWGq6srGzduxMXF5VLPcUlIlnBsJa0h5g3Y/x9Q9tDjR+Lr3U1IVBTH8/O5o2ZN1vr5UaeMYzC1SZP4ciLJHycD5gEgTZ9vWq17wxMzEnlk2SNsPb4VgAkBE/h00KfUci772tFCVHYlfcgbNmyQgCzEdYSHh9OwYUM6dOhgdCm3TJlbLJRSbZVS3yilvijPgqozV1fXK0KXUkrCsTW0hujXS4XjnzjkNYw+lnDco1Ytwvz9yxyOTYUmDo0/9McAkLnmASDVNRxrrflqz1f4zfRj6/GtNHRvyMoHVjLnnjkSjoXNadmyJa1atZI+ZCGuw2QysWHDBkJCQmzqe6M1Pcg/AIuAXgBKKR+l1NxyqUqIm6E1RL8KB943h+Oe84mrO4Q+UVGcKiigj4cHa/388HAo242TomzzAJCUeSnY1bDDZ6UPDR+uvgNATmaeZPCPg3lq9VPkFOYw1nsscZPiGNZumNGlCVFuQkJCiIiIoKioyOhShKiUYmJiOHv2LHfddZfRpdxS1gRkO611KFAMoLWOA2xjLQ9R9WkNUS+bR0grB+i5gEjPgQRHRZFaWMhdnp6s8fOjZhnDcUFqAdF9o8lYZxkAEhFA3UF1y/mTqJy01syLmYfPTB/WJayjjmsd5t87nwWjF1DXrXr+nYjqo3///mRmZrJnzx6jSxGiUgoLCwP+aEmyFdb0IJ9SSrUENIAyX0eXe//CeFpD5Itw6BNzOL5zIbs9QhgQHc35oiKG1KnDL97euJRx9GVuYi4xA2PIjc/FpaVlAEjb6rnGcVpOGk+tfoolB5cAMLTtUL6++2sa1WxkcGVCVIySh442btxI9+6yMosQfxYWFkanTp1o3Lix0aXcUtZcQZ4MfA00VEo9CswH4sqlKiHKSmvY93ypcLyI7bX6EWIJxyO9vFjq41PmcFwyACQ3Phf3AHcCdwRW23C87NAyvGd4s+TgEmo61WTO8DmsfGClhGNRrdSrV4+AgAAZOy3EVeTl5bF161aba68A6wKyFzACeA5oBWwGHi6PooQoE61h3xQ4/CnYOUKvxWxy78PA6Giyiou5r149FnTqhFMZFy2/NAAkxTIAZHP1HAByPu8845eNZ+SCkaRdTCO4RTAxk2KYEDjBph7AEKKsQkJC2LFjBxcvXjS6FCEqle3bt5OXl1ftA/JcoEhrvVhr/SawELCthhNRdWgNeyfD4enmcHznL4S59WJIbCw5JhMPN2jAvI4dcSxjOE6ZX2oAyP318VtdPQeAhCWE4TvTl7nRc3FxcOGzQZ+xcdxGWtRuYXRpQhimf//+FBQUsG3bNqNLEaJSCQsLw8HBgd69extdyi1nTUDO01rnlbzRWp8Fpt76koS4Aa1h73Pw++dg5wS9lrDatQd3x8aSazLxeKNGfNuhAw5lDMfJ05M5+MBBdKGmyeQmdPyxI3bO1WvIZHZBNk+vfpoB8wZwIvME3Rp3I+rJKJ7r9hx2qnr9XQjxZ7169cLR0VGWexPiT8LCwggKCqJmzZpGl3LLWfOdL1EpNfhP28o+hkyIW0Fr2PMs/P4/SzheylKnboyMiyNfa5657Ta+atcO+zK0AmiTJuGlBBL+aZ6O1+rDVrSeVv2m4207vo2ALwOYuWcmjnaOvNfvPbZN2EZ7r/ZGlyZEpVCjRg2CgoKkD1mIUs6ePUtkZKRNtleAdatY/B0IVUo9DPwKeAMJ5VKVEFejTeZwfGQm2DlD76UscLidh/bvpxiY0qQJH7duXaY+WVOhicOPHSblhxSUg6L9N+2r3RrHeUV5/CviX3y842M0Gr8GfswdMRf/hv5GlyZEpRMSEsLbb7/NuXPnqFtXljcUIjw8HK21zQbkMl9B1lqfBm4HfgHqATHAg+VUlxCX0ybY/UypcLyMuXaBPHjgAMXAa82alTkcXxoA8kP1HQCy7/Q+uszqwkc7PkIpxWt3vsZvj/8m4ViIa+jfvz9aayIiIowuRYhKISwsDA8PD7p06WJ0KeXihgFZKfW25feegJvW+het9Zta6y+01jnlXaAQ5nA8CeK/BHsX6LOC2fjxyKFDmIB/t2jBuy1blikcXzYAxKv6DQApLC7k35v+TbfZ3diftp92dduxY8IO3gt5D2eH6rdihxBldccdd+Du7i59yEJgHiAVFhZG3759cSjjAK6qpiyf1TrL7/8AfJRSjsABzFeQY7TWi8qrOCHQJvjtSUiYbQ7HvVfwhakTzx75HYD/a9WKl5s1K9OpqvsAkANpBxi3dBx7T+8F4Lmuz/F+//dxc6w+fwdC3CxHR0eCg4MvTQ0TojqLj4/n2LFjvPTSS0aXUm5ueAVZa71TKWUHRGmtO2EeL/1vIB7oWs71iepMm2DXE5Zw7Ap9VjGtqAPPHjkCwPQ2bcocjrMiq+8AkGJTMZ/s+ITOX3Vm7+m9NPdoTvi4cD4b/JmEYyGsMGDAABISEkhIkMdvRPVW8oOirfYfQxl7kLXWJmCY5XW+1nqf1vp7rfWL5VqdqL5MxbDrMUj85lI4/k9+G563fGOa2bYt/2jSpEynytiY8ccAkH7VawBIYkYifb/vywthL5BfnM9jgY8RMymGvi37Gl2aEFXOwIEDAVi3bt0N9hTCtm3YsIHmzZvTpk0bo0spN9Ys8xajlHrLcjVZiPJzKRx/B/au6D6reCu3Ja8nJaGAOe3b81QZZ76nzE8hZnAMxVnF1LuvHn5rqscAEK01X+35Cr+Zfmw9vpWG7g1Z+cBKZg+fTS3nWkaXJ25AKVVDKVW2+ehlP2dtpdRipdQhpdRBpVSQUqqOUipMKXXE8runZV+llPpcKRWvlIpRSnUudZ7xlv2PKKXGl9p+u1Iq1nLM58oGxy62bduWli1bSkAW1VpRURHh4eHcddddNj1d1ZqwWwe4HzillFqulHpHKTWmnOoS1ZWpGHZNgKTvwd4N3Wc1r+Y0Z+qxY9gBP3TsyIRGjcp0qhOfnbg0AKTxPxrT6adO1WIAyMnMkwz+cTBPrX6KnMIc7vO+j7hJcQxrN8zo0sQ1KKXslFIPKqVWK6VSgUPAaaXUAaXUR0qpW3GZ5jNgrda6A+APHAReATZqrdsCGy3vAQYDbS2/JgIzLXXWAd4CumFusXurJFRb9nmi1HGDbkHNlYpSioEDBxIeHk5BQYHR5QhhiD179nDhwgWbbq8A65Z5G6u17gg0548e5G7lVZiohkzF8OsjkDQXHGqgg9fwz6wmfJCcjINSzO/UiYcaNLjhabTWJLycQPzkeABafdCKNp+2sfkBIFpr5sXMw2emD+sS1lHHtQ7z753P/NHzqetWfVbqqKIigNbAq0BDrXVTrXV94E7M685/oJT6282eXCnlAfQG5gBorQu01ueBe4DvLbt9D4ywvL4HmKvNfgVqK6UaAQOBMK11utY6AwgDBlk+Vktr/avWWgNzS53LpgwcOJDs7Gx27NhhdClCGCIsLAylFP369TO6lHJV5nvNlil6bwGeQDTwqdb6++sfddnxTTF/0WwAaGCW1vozyxWJBUAL4CgwVmudYbk99xkwBLgIPKK13lfWP09UMaYi2Dkejv0EDjUw9VnDMxca8uWpkzgpxSJvb4Z7ed34NIUmDj9+mJS5KWAPHb7pQMNxtr/GcVpOGk+tfoolB5cAMLTtUL6++2sa1Szb1XZhuP5a68I/b9Rap2Nee/4XywpCN6slkAZ8q5TyB/ZiXpmogWWNe4AzmL8+AzQGkksdf8Ky7XrbT1xl+xWUUhMxX5WmWRkfsq1M+vXrh4ODA+vWrSM4ONjocoSocBs2bCAwMBCvMnxPrsqsud88A3ge6A7MAj5SSj1gxfFFwPOWlTC6A88opTph5S0+YYNMRbBznCUcu1McHMrjGfX58tQpnJViuY9PmcJxUXYRccPjSJmbgp2bHb4rfatFOF52aBneM7xZcnAJNZ1qMmf4HFY+sFLCcRVytXB8M/tchwPQGZiptQ4Ecvjja23J+TXmixflSms9S2vdRWvdpV69euX9x91ytWrVokePHqxdu9boUoSocFlZWezcudPm2yvAuoCcqrXerrXO0FpvwHyr7fWyHqy1Pl1yBVhrnYW5/60x1t/iE7bEVAQ7H4ZjP4ODO0V91jDubF2+PXMGVzs7Vvv5MagMY10L0gqI7hdN+tr0PwaADLbttoLzeecZt3QcIxeMJO1iGn1b9CV2UiwTAifY9IMT1ZFS6uW/eIoTwAmt9S7L+8WYA3NKyddVy++plo+fBJqWOr6JZdv1tje5ynabNHDgQKKiokhJSTG6FCEq1MaNGyksLGTQIJt7xOAK1gTkJKXUu0opJ8v7QsxXha2mlGoBBAK7sP4W35/PNVEptUcptSctLe1myhFGMRXBjofg2HxwqElRcCgPnK3DT6mpuNvbs9bPjxBPzxueJjcxl8iekWTtzsKlhQuB2wOp1dW2V2pYn7Aenxk+/BDzA64Ornw+6HM2jNtA89rNjS5N3AJKqYWlfi0CHv8r59NanwGSlVLtLZtCMA98WgGUrEQxHlhueb0CGGdZzaI7cMHydXodMEAp5Wl5OG8AsM7ysUylVHdLe9y4UueyOSXhYP369QZXIkTFCg0NpWbNmvTs2dPoUsqdNetdmYCRwBNKqSNAM2CJUqqt1vpIWU+ilHLH3FM3WWudWfpKl9ZaK6WsusWntZ6FueWDLl26lPvtQXGLmArN4fj4InCsRUGfUMak1GTFuTQ8LOG4u4fHDU+TFZlFzOAYClMKcQ9wx3eNL86NbHeN4+yCbF4Ke4mZe8wdR90ad2PuyLm0q9vO4MrELZaptb4UipVSt6LF7O/Aj5aLHInAo5gvkixUSj0GHAPGWvZdg/n5j3jMz4A8CuaeaKXUO8Buy35TLX3SAE8D3wGuQKjll00KCAigXr16rFu3jocfftjocoSoEFprQkND6d+/P46Of+WRiKqhzAFZa/0ggFLKGfM0PX/Lr6+VUq201jd82sLykMkvwI9a6yWWzSlKqUZa69NlvMUnqjpTIWx/AJJ/Acda5PUJZeQZd9amn8PTwYEwf39ur1nzhqfJCM8gbkQcxVnF1O5XG5+lPja9xvG249t4ZNkjJGQk4GjnyL+D/82LPV/Ewc52P+dq7L0/vS9zO9u1aK2jgC5X+VDIVfbVwDPXOM83wDdX2b4H8/cGm2dnZ8eAAQNYt24dJpMJOzvbXz5SiIMHD5KcnMwbb7xhdCkVosz/qpVSbZVSc4BPtNZ7tdbfaK3/obUOLmM4VpiXGDqotZ5W6kPW3uITVVlxAWy7zxKOPcjts5ahp9xYm56Ol6MjEQEBZQrHqQtSiRlkGQAy1rYHgOQV5fHi+hfp/W1vEjIS8G/gz56Je3i116sSjm2EUqqFZb3jJUqp2cBQpdSlfplSV2lFJTFo0CDOnj1LZGSk0aUIUSFCQ803hQYPHmxwJRXDmh97f8D8YEdvAKWUj1JqrhXH9wQeBvoppaIsv4YA/wfcZWnb6G95D+ZbfImYb/F9jfn2najKigtg+31wYik41ianz1oGnnQh/Px5Gjo5sTkgAH939xue5sRnJzhw/wHzAJDnGtPpZ9sdALL31F5un3U7H+/8GKUUr/d6nd+e+A2/Bn5GlyZureWYh4N8AdyF+e7cFqXUF5a7dqKSGTBgACBjp0X1ERoaire3N02bNr3xzjbAmstPdlrrUKXUfwC01nFKqTLfTtNabwOu9Wi9Vbf4RBVUXADbx8KJ5eBYm6w+axlwwpFfMy/Q2MmJ8IAA2rm5XfcUWmsSX00k+QPzs5ut/q8VTV9qapMrNhQWF/Kfrf/h3a3vUmQqol3ddswdMZduTWQ2j42y11rPAVBKpWutn1BKOQD/xPyMxfibU/TIAAAgAElEQVTrHi0qXP369QkMDGTt2rW89tprRpcjRLnKzs5m69atPPfcc0aXUmGsuex2SinVEss6mZaWCddyqUrYluJ82DbaHI6dPDnfZx3Bx+35NTOT5s7ObAkMvGE4NhWaOPTIIXM4tocO33Wg2cvNbDIcH0g7QNCcIN7e/DZFpiL+0e0fRD4ZKeHYtm1QSj1rea0BtNZFWuuPgCDjyhLXM2jQIHbu3ElmZqbRpQhRrkrGq1eX9gqwLiBPxtzq0FAp9SgwH4grl6qE7SjOh62j4eRKcKpDeq+19Dmm2JedTWsXF7YEBtLK9fo/Z111AMh42xsAUmwq5uMdH9P5q87sPb2X5h7NCR8XzvRB03FzvP4PEKLKmwJ4KKX2ALdZlq/8m1LqC+CcwbWJaxg4cCBFRUWEh4cbXYoQ5Wrt2rXUqFGjWizvVqLMAVlrfRQYBDwHtAI2Y+4pFuLqivNg6yg4tQqc6pDWK5Q7j0FMTg7tXV3ZHBhIMxeX656iugwASUhPoO/3fXkx7EXyi/N5LPAxYibF0LdlX6NLExVAa23SWr+H+RmPiUBD4HbMFyGqzyWbKiYoKAh3d3eZqidsWsnybiEhITg7V59HIqx6BF5rXYT5Qb3F5VOOsBnFebBlFJwOBee6pPRcQ6+jmiO5ufjUqMEGf38aODld9xS5SbnEDIwh90guLi1c8Fvnh1s727qSqrXmq71f8cL6F8gpzKGhe0Nm3z2boe2GGl2aqEBKKWWZGnoR8wo+K661T8VXJ67FycmJkJAQ1q1bh9baJlu+hDh8+DBHjx7l5Zf/6kDPqsWaZd62KKVqWV4/pZSaXGqqnhB/KM6DLSMt4diLkz3XEHTUxJHcXALc3YkoQzjOisoiskckuUdyqeFfg8AdgTYXjk9knmDQj4OYtHoSOYU53O9zP3GT4iQcV08RSqm/K6UuWzJTKeWklOqnlPoeeVCvUho4cCBHjx7l999/N7oUIcpFyfJu1WG8dGnW9CB7WCbf3Q48AXhi7kkW4g9FubD5Hji9Fpy9ON5jNUFJxSTl5XFHzZqE+/vjdYNwnBGeQVTvKArOFFC7b20CNwfa1HQ8rTU/RP+Azwwf1iesp65rXRaMXsDP9/5MXTfbax8RZTIIKAZ+VkqdUkodUEolAUeAB4DpWuvvjCxQXF3JQ0tr1qwxuBIhykdoaCgdOnSgRYsWRpdSoawJyIWWZYfGAR9ord8CvMunLFElFeXClnvgzHpwrkdij9V0TyoiOT+fHrVqscHfH88bjKdMXZhKzOBSA0BC/XDwsJ1hGKk5qdy78F7GLRvHhfwLDGs3jLin4xjrPfbGBwubpbXO01rP0Fr3BJpjXvoyUGvdXGv9hNZaplFUUi1atMDb25tVq1YZXYoQt1xOTg6bN2+uVqtXlLAmIP8XiAaGASst22481UFUD0UXYctwOBMGLvU5ErSaoMRCThcUEFy7Nuv8/KjlcP2ge+JzywCQAk3jv9veAJClB5fiM8OHpYeWUtOpJt8M/4YV96+gobvtrcghrKOUmqaUekQp1RnzmvOntdbnja5LlM3QoUPZsmWLLPcmbM6mTZuq3fJuJaxZxeJ7oBvgo7XOVUq1AXaWW2Wi6ii6CJvvhjMbwKUBB7uvIigxn9TCQu7y9GS1ry/u1wnHJQNA4v8RDxpavt+SNp+1QdnZxgMv5/PO8/DShxm1cBRpF9Po26IvsZNieTTwUXmoR5SIB7pjvhBx2tJiMV8p9ZpS6i6Zple5DRs2jKKiItavX290KULcUqGhobi5udG7d2+jS6lwZb53bVmfMxqIVUrFAjFa60fLrTJRNRTlmMNxSgS4NCSm+0r6JOZxvqiIoXXqsNjbGxd7+2sebio0cfiJw6R8nwL20H52exo90qgCP4HytT5hPROWT+Bk1klcHVz5oP8HPNP1GeyU7VwZF3+d1npG6feWoUy+gB8wCfhKKTVJay1zjSuhoKAgPD09WbVqFaNHjza6HCFuiZLl3fr161etlncrYU1z53DMX6z9gCeBoUqpNK11i/IoTFQBRTmwaRikbgKXhuzrtoLghFyyiosZ6eXF/E6dcLK7dhAszilm/5j9pIemY+dmh/cib+oOsY2H1LILsnlx/Yt8ufdLALo36c73I76nXd12BlcmqgKtdRKQhGW5N6VUI2AVIAG5EnJwcGDQoEGsWbMGk8mE3XW+7glRVRw5coTExESmTJlidCmGsKbF4pTWeq3W+kOt9VigCzCn/EoTlVphNmwaYg7Hro3YdcdyelvC8f3167PgBuG44GwBUf2iSA9Nx6GuAwHhATYTjrce24r/l/58ufdLHO0ceT/kfbY9uk3CsbhpWuvTwE9G1yGubdiwYaSlpbF7926jSxHilihZmaU69h+DdesgNy/9Xmt9EJDv+NXRpXC8BVxvY1uXZQQn5ZFjMjGuQQPmdeyI43XCcW5SLpE9I8n6LQuXFi503t6ZWt1qVeAnUD7yivJ4cf2L9PmuD4kZifg38GfPxD28cucr2Ntdu81EiLLQWn9idA3i2gYNGoSdnZ2sZiFsxsqVK+nUqROtWrUyuhRDWHMf6Gel1Aml1Fal1Ayl1PuAT3kVJiqpwizYNBjStoJrYyI6LyEkMZc8k4nHGzXi2w4dsL/Og2fZ0dnmASC/lxoA0r7qDwDZe2ovt8+6nY93foxSitd7vc5vT/yGXwM/o0sTQlSAOnXq0KNHD1avXm10KUL8ZefPn2fLli3cfffdRpdiGGtaLHoATYFHgTDMT11X37+56uhSON4Gbk1Y1/kXBh7No0Brnm3cmK/atcPuOuE4IyKDyN6R5gEgwbYxAKSwuJC3N71Nt9ndOJB2gPZ127Njwg7e7fcuTvYyaFKI6mTYsGFERkZy8uRJo0sR4i9Zu3YtRUVFEpDLQilVB5gKvAg0A5ZorU+UV2GikinMhIhBkLYd3Jqyyn8xQ5NyKdSa55s04fM2ba4bjlMXphIzKIbizGLqjamH39qqPwBkf+p+us/pzr83/5tiXczkbpOJfDKSbk26GV2aEMIAQ4eax8TLVD1R1a1cuRIvLy+6d+9udCmGsabFYj6QhXlIiBuwTSnVtVyqEpVLwQUIHwhnd4BbM37xX8Q9x3IpBl5r1oyPWre+7nq+J/77pwEg86v2AJBiUzEf7/iY22fdzr7T+2ju0ZyI8RF8OuhTXB1djS5PCGEQb29vmjdvLn3IokorKioiNDSUoUOHYn+dZVptnTWX8OpprT+0vF6llFqA+anq6vvjRXVQcAEiBsK5XeDWjPm+C3jwWC4amNqiBW9eZza71pqk15M4/v5xAFr+pyXNXmlWpYdjJKQn8MjyR9h2fBsAjwc+zrSB06jpXNPgyoQQRlNKMWzYML799lvy8vJwcXExuiQhrLZ9+3YyMjKqdXsFWHcFOV0p5VvyRmudiPlKsrBVBechYoA5HNdozvc+83kgOQ8NfNCq1XXDsanQxOEJh83h2B7af9ue5q82r7LhWGvNzN0z8fvSj23Ht9HIvRGrH1zN18O/lnAshLhk6NChXLx4kU2bNhldihA3ZcWKFTg5OTFgwACjSzGUNVeQnwEWK6W2ArGAN5BQLlUJ4xWch/ABkL4barRgVqefePJEPgCftWnDc02aXPPQ4pxi9o/dT/oa2xgAciLzBBOWTyAsMQyAB3we4H9D/kcd1zoGVyaEqGz69u2Lm5sbq1atYtCgQUaXI4TVVq5cSXBwMDVrVu+LP9asYnEI6AxEAPWBKOCBcqpLGKkgA8LvsoTjlvy34488edIcjme2bXvdcFxwtoCokCjS11T9ASBaa36I/gGfGT6EJYZR17UuC0cv5Kd7f5JwLIS4KhcXF0JCQli1ahVaa6PLEcIqhw8f5siRIwwfPtzoUgxnzSoW/YCZQDfgGLAPkH/9tiY/HTb2h/Q9aPdWfNz+B547VYACvmnfnqcaN77moblHLQNAdmXh3Ny5Sg8ASc1JZdTCUYxbNo4L+Re4u93dxD0dxxjvMUaXJoSo5IYNG8axY8c4cOCA0aUIYZWVK1cC5v+HqztrWiy+ASYDjoAfMAJzm0WbcqhLGCE/HcL7Q0Yk2r0177f5ltfPFGIPzO3YkQcbNLjmodnR2cQMiqHgTAE1/GrgF+qH821Vc43jJQeX8OSqJzl78Sy1nGvx2aDPGO8/vsr2TwshKlbJcm8rV67E29vb4GqEKLuVK1fi5+dH8+bNb7yzjbPmIb1jWutlWutFWus3tdb3aK0lHNuK/HMQHmIJx214q/W3vJ5ajINSzO/U6brh+IoBIFsCq2Q4zsjN4OGlD3Pvwns5e/Es/Vr2I3ZSLI8EPCLhWAhRZo0bN6Zz586sWLHC6FKEKLNz586xbdu2ar96RYkbBmSl1Fyl1GTgV6XUlAqoSVS0vLOwMQQyotA12/Jqyzm8k1aMk1Is8fZmdP361zw0dVGpASCj6+Eb6lslB4Csi1+Hz0wf5sXMw9XBlf8O/i9hD4fRzKOZ0aUJIaqgESNG8Ouvv3L69GmjSxGiTEJDQzGZTNJ/bFGWK8jfAQpoADyslDqmlFqhlHpHKSUNmVVd3lnzlePz0eia7ZjSfDYfnDPhYmfHch8f7vbyuuahJ/53ggP3WQaAPGseAGLvUrUWFc8uyOapVU8x6MdBnMo6RVCTIKKfiubZrs9ip6ruMBMhhLFGjBiB1lquIosqY+XKlTRs2JAuXboYXUqlcMNLfVrrcCC85L1SygHoCPgDdwCLyq06Ub7y0izhOBZdsz3PNvuKGekm3OzsWOHrS4in51UP01qT9EYSx/9jGQDyXkuavVr1BoBsPbaV8cvGk3Q+CSd7J6YGT+WFHi9gb1e1Qr4QovLx8fGhdevWLFu2jCeffNLocoS4roKCAtauXcuYMWOws5OLQ2DdQ3oAaK2LMK+DHHvryxEVJi/V3FZxIQ5dqwNPNJ7BnAyNu709a3x96VW79lUPMxWa+H3i75z57ox5AMjX7Wn0aKMKLv6vySvK443wN5i2cxoaTUDDAOaOmItvA98bHyyEEGWglGLEiBF8/vnnZGZmUqtW1VzRR1QPW7duJTMzU/qPS5EfE6qjvFTY2A8uxGGq1ZHxt81gzgWFh709YX5+1wzHxTnFxI2I48x3Z7BztcN3uW+VC8d7Tu2h81ed+WTnJ9gpO97s/Sa7Ht8l4VgIccuNHDmSwsJC1qxZY3QpQlzXihUrcHFxoX///kaXUmlIQK5uclNgY1+4sB9TrU482Oh//JCpqOPgwMaAALp7eFz1sIKzBUT3jzYPAKnjgH+4P3WHVp0BIIXFhbwV8RbdZ3fn4NmDdPDqwI7HdjC171Sc7J2MLk8IYYO6d+9O/fr1WbZsmdGlCHFNWmuWL19OSEgINWrUMLqcSkMCcnWSe8YSjg9gquXNmIb/ZUGWHfUcHYkICOD2a4yVzD2aS+SdkWT+molzc2cCtwfi0f3qQboyikuNo9vsbkzdMhWTNvHP7v9k38R9dG3c1ejShBA2zN7enuHDh7NmzRry8/ONLkeIq4qMjOTYsWPce++9RpdSqUhAri5yT5vDceZBij18uKfB5yzJtqOhkxObAgLwc3e/6mHZMdlE9ogk93AuNXxr0HlHZ2p0qBo/YRabivlw+4fcPut2Is9E0qJ2CyLGRzBt4DRcHV2NLk8IUQ2MHDmSrKwswsPDb7yzEAb45ZdfsLe3l/7jP5GAXB1cPAUbgiHzEMUePgz1+pRVOXY0cXZmS0AAna5xSyVjUwaRvSIpOF2ARx8PArYEVJkBIPHp8fT5rg8vb3iZguICnuj8BDFPxdCnRR+jSxNCVCP9+vXD3d1d2ixEpbVkyRL69OmD13WWda2OJCDbuounzFeOs36nyMOXAV6fsi7XgRYuLmwJCKCtm9tVD0tdnErMQPMAkDoj6+AX6odjbcdLH9dak5ubW1GfRZlprZmxewb+X/qzPXk7jdwbsebBNcy6exY1na/eQiKEEOXFxcWFIUOGsHz5coqLi40uR4jLHDx4kEOHDjFq1CijS6l0KiwgK6W+UUqlKqXiSm17Wyl1UikVZfk1pNTHXlVKxSulDiulBlZUnTbl4knYGAxZv1NY25++dT8hPNeBNq6ubA4IoKXr1dsMTn5xkgNjzQNAGjzZgEmnJ/HCay+gtQbMIXTKlCmEhIRUqpCcfCGZgfMG8syaZ7hYeJEHfR8k7uk4BrcdbHRpQohqbMSIEaSkpLBr1y6jSxHiMkuWLAHMrUDichV5Bfk7YNBVtn+qtQ6w/FoDoJTqBNwPeFuOmaGUkukN1rh4wtxWkXWEwtoB9Pb8iG15jnRwc2NzQADNXFyuOERrTeIbiRx59gho8wCQ9jPa07V7V6ZPn86UKVMuhePp06fTrVs3XK5ynoqmtWZu9Fx8Z/oSlhhGXde6LBqziB9H/Ugd1zpGlyeEqOaGDBmCo6MjS5cuNboUIS7zyy+/EBQUxG233WZ0KZWO1YNCbpbWeotSqkUZd78HmK+1zgeSlFLxQFdgZzmVZ1tyks1tFdkJFNQOpEft/2NvviM+NWqwwd+fBk5XLmtmKjLx+5O/c+abKweATJs2DYDp06czffp0ACZPnsy0adMMn56Xkp3CU6ufYtkhc3/f8PbDmTVsFg3cGxhalxBClPDw8KBfv34sXbqUDz/80PCvm0IAJCUlERkZyUcffWR0KZVSZehBflYpFWNpwSiZbdwYSC61zwnLtisopSYqpfYopfakpaWVd62VX85xc1tFdgL5tQO5w+P/2FvgRKC7OxHXCMfFFy0DQL4xDwDxWeZz2QAQpdSlkFyiMoTjXw78gs9MH5YdWkYt51p8d893LLtvmYRjIUSlM3LkSBISEjhw4IDRpQgBcOmOhvQfX53RAXkm0BoIAE4Dn1h7Aq31LK11F611l3r16t3q+qqWnGPmtorsRPJqd6ZLrfeJKXSia82abPT3x+sq4bjwXCHRIdGkr/5jAIjXsMufZC1pqyitpN3CCBm5GTy05CFGLxrN2YtnCWkZQuykWMYHjDc8tAshxNUMHz4cpZS0WYhK45dffiEgIIBWrVoZXUqlZGhA1lqnaK2LtdYm4GvMbRQAJ4GmpXZtYtkmriX7qDkc5ySRW/t2Amr+h7giZ3rWqkWYvz+ejo5XHJJ3LI99PfeZB4A0u/oAkNI9x5MnT8ZkMjF58uTLepIr0tr4tfjM9OGn2J9wc3Tjf4P/x/qH19PMo1mF1iGEENZo1KgR3bt3l4AsKoXTp0+zY8cOuXp8HRXWg3w1SqlGWuvTlrcjgZIVLlYAPymlpgG3AW2B3wwosWrIPmpuq8g5xkXPLvi5v0tCsTN9a9dmhY8P7g5X/mfOjskmZlAMBacLqOFbA7+1fldd4zgvL49du3Zd1nNc0m6xa9cu8vLycL3Gahi3UlZ+Fi+sf4FZ+2YB0KNpD7675zva1m1b7n+2EELcCiNHjuSll14iKSmJli1bGl2OqMZK1uWW6XnXVmEBWSn1MxAMeCmlTgBvAcFKqQBAA0eBJwG01vuVUguBA0AR8IzWWhaQvJrsJPOV44vHyfa8A58aUzlW7MwAT0+W+vjgZn/l4h/nN58n9p5Yii8U49HHA59lPpetcVyaq6srGzduxMXF5VL7QklIrqhwvOXYFh5Z9ghJ55Nwsnfinb7v8HzQ89jbycImQoiqY8yYMbz00kssXryYF1980ehyRDW2ZMkS2rdvT8eOHY0updKqyFUsHrjK5jnX2f894L3yq8gGZCdawnEyWZ5d8a4xlWSTM8Pq1mVRp064XCUcp/2SxoGHDqDzNV73etFxXkfsXa4fNK8WgpVS5R6OcwtzeT38dab/Oh2NJqBhAHNHzMW3gW+5/rlCCFEeWrRoQdeuXVm4cKEEZGGYc+fOERERwUsvvSTP7VyH0Q/piZuVlXApHGd6dqO9mzkcj/Ly4hdv76uG45MzTrJ/zH50vua2Z27De4H3DcOxUXaf3E3nWZ359NdPsVN2vNn7TXY9vkvCsRCiShszZgx79uwhMTHR6FJENbVy5UqKi4ulveIGJCBXRVnx5p7ji8mc9+xGO9e3Oa2deaB+fRZ06oST3eX/WS8NAHnmjwEgbf/bFmVf+X5yLCgu4F8R/yJoThCHzh6ig1cHdj62k6l9p+Jkf+UqHEIIUZWMGTMGgEWLFhlciaiulixZQrNmzejcubPRpVRqEpCrmswjlivHJ0j3DKKt69uk4ML4Bg34oWNHHP4Ujk1FJg4/fpjj7x03DwCZ057mrzWvlLdV4lLj6D67O+9seQeTNjGl+xT2TdzHHY3vMLo0IYS4JZo3b063bt1YuHCh0aWIaigrK4v169czatSoSpkDKhMJyFVJ5u/mK8e5JznnGUQblzc5iwtPNGrENx06YP+n/9mLLxazf+T+yweATGh09XMbqNhUzIfbP+T2WbcTeSaSlrVbEjE+gk8GfoKrY/k/BCiEEBVp7Nix7Nu3j/j4eKNLEdXMihUryM/Pl/aKMpCAXFVkHraE41Okefaklcu/yFCu/L1xY75q1w67P4XjwnOFRPeP5tyqc+YBIBuvHABSGcSnx9P7u968vOFlCooLmNh5ItFPRdOnRR+jSxNCiHIxevRoQNosRMWbP38+TZs2pUePHkaXUulJQK4KLhyCjX0h9zQpnj1p7fw6mcqFF5o25bM2ba64TZJ3LI/IOyPJ3GkZALItEI8gj2uc3BgmbeKL377A/0t/diTv4LaatxH6UChf3f0VNZ1rGl2eEDZJKWWvlIpUSq2yvG+plNqllIpXSi1QSjlZtjtb3sdbPt6i1DletWw/rJQaWGr7IMu2eKXUKxX9uVUlzZo1IygoSNosRIVKT09n3bp13HfffdjZSfy7EfkbquwuHLwUjk973klr5zfIsnPljebN+bBVqyvCcXZsNvt67OPioYvU8K1B5x2dqdGxhkHFX93xC8cZOG8gz4Y+y8XCizzk+xBxk+IY1GaQ0aUJYev+ARws9f4D4FOtdRsgA3jMsv0xIMOy/VPLfiilOgH3A97AIGCGJXTbA18Ag4FOwAOWfcU1jB07lqioKH7//XejSxHVxNKlSyksLOT+++83upQqQQJyZXbhgDkc553hRO07aeP8Ojl2LrzTogXvtGx5RTg+v+U8kb0iKThVgEdvDwK2BODc+MrpeEbRWvNd1Hf4zvRlQ+IGvNy8WDRmEfNGzcPT1dPo8oSwaUqpJsBQYLblvQL6AYstu3wPjLC8vsfyHsvHQyz73wPM11rna62TgHigq+VXvNY6UWtdAMy37CuuQdosREWbP38+bdq0kdUrykgCcmV1fr8lHKdwvHYv2rq+wUU7Fz5s1Yo3WrS4Yve0JWlED4im+EIxXvd64bfO75rT8YxwJvsMIxaM4NHlj5KZn8k97e8hblIcozuNNro0IaqL6cBLgMnyvi5wXmtdZHl/Amhsed0YSAawfPyCZf9L2/90zLW2X0EpNVEptUcptSctLe2vfk5VVpMmTejRo4e0WYgKkZKSQnh4OPfff7+sXlFGEpAro/NxlnCcytHavWnv+jp5ypnP27ThxWbNrtj95MyT7B9tGQDydOUbALL4wGJ8Zviw4vAKajnX4vsR37P0vqU0cG9gdGlCVAtKqWFAqtZ6r9G1aK1naa27aK271KtXz+hyDDV27FhiYmI4fPiw0aUIG7d48WJMJpO0V1hBAnJlcz4WNvaD/DQSavehg+vr5CtnvmrXjr83aXLZrlprkt5M4sjTlgEg77ak7f8qzwCQ9Nx0HlryEGMWjeFc7jn6t+pP3KQ4xvmPk59ghahYPYHhSqmjmNsf+gGfAbWVUg6WfZoAJy2vTwJNASwf9wDOld7+p2OutV1ch7RZiIoyf/58fHx88Pb2NrqUKkMCcmWSEXMpHP9euw/erq9RqJz4tkMHJt5222W7mopM/D7xd469e8w8AGR2e5q/XnkGgIQeCcVnhg8/xf6Em6MbXwz5gnV/W0dTj6Y3PlgIcUtprV/VWjfRWrfA/JBduNb6ISACKOlzGg8st7xeYXmP5ePhWmtt2X6/ZZWLlkBb4DdgN9DWsiqGk+XPWFEBn1qV1rhxY+68805psxDlKjk5mW3btsnVYytJQK4sMqIhvB/kn+Vg7WD8XF+jSDkxr2NHxjdseNmuxReL2T9qP6dnn/5jAMhjlWMASFZ+FhNXTmTIT0M4nX2ank17Ev1UNE/f8TR2Sv53E6KSeRmYopSKx9xjPMeyfQ5Q17J9CvAKgNZ6P7AQOACsBZ7RWhdb+pSfBdZhXiVjoWVfcQNjx44lNjaWgwcP3nhnIW5CyQ9g9913n8GVVC3KfFHANnTp0kXv2bPH6DKslxEFG0OgIJ39HsF0dnsVk50z8zt14t4/9egVnisk9u5YMndm4lDHAd9VvpVmjePNRzfzyPJHOHr+KE72Trzb912mBE3B3q7y9EMLUd6UUnu11l2MrqMqqLJfs2+h06dP07hxY9544w2mTp1qdDnCBt1xxx0A7N692+BKKqdrfc2WS3pGS99nbqsoSCfaoy+d3V4FO2eWeHtfEY7zjucR2avyDQDJLczln2v/SfD3wRw9f5TAhoHsnbiXF3u+KOFYCCGuo1GjRoSEhDBv3jxs6YKVqBzi4+PZs2ePtFfcBAnIRkrfB+H9oSCDfR4h3OH2Knb2Lqzw9eVur8vHQmfHWQaAHLxIDZ/KMwDkt5O/EfhVINN3Tcde2fOv3v9i1+O78KnvY3RpQghRJfztb38jKSmJnTt3Gl2KsDELFiwAzK08wjoSkI2SvtfSVpHBbo8Quru9jKO9M6t9fRlYp85lu57fcp7IOyMpOGkZALLV+AEgBcUFvBn+Jj3m9ODwucN09OrIr4//yr/7/htH+8qz/rIQQlR2o0aNwtXVlXnz5hldirAx8+fP584776RpU3lA3loSkI1wbjds7A+F59lVK4Sebi/j4uDCOscvLvoAACAASURBVD8/+nlePlEubWmpASCjKscAkNiUWLrN7sa7W9/FpE38f3t3HmdT/cdx/PWdsQzDWLJkqSxRtkGksvQrWxSyFCVCI1laNCFLURQhhUj2RpSyVJSiLEWhrNNokTXLkH03zMz398c9uDS2mTv3zPJ+Ph73MWe+59x73vO9c+985tzvOd/wu8NZ3WE1lQtq2KWIyPXKnj07jRs35tNPP+XMmTNux5E0IioqiqioKA2vSCQVyP62/xdYVAfOHuankNpUD+5J1gxBfFe+PNVz5rxo010feE0A0qkgZT5zdwKQuPg43lr2FpXGVWLdnnUUzVmUJW2XMOyBYWTJmMW1XCIiqV2rVq04ePAg33zzjdtRJI345JNPCAgIOH+9bbk+KpD9af9KWFwHzh5haUht7gt+mZCMQSyqUIG7QkLOb2atZWvfrfzd6W+IdyYAGe3uBCB/H/ibGpNr0GthL87Gn+WZSs8Q2SmSe2+517VMIiJpRZ06dcibN6+GWYhPxMfH89FHH1G3bl3y59estYmhAtlf9i13jhwfZXFIXWoGv0yuTFlYUqECd2TPfn6z+Nh4Nj6zke0DtkOA+xOAxNt4Rv0yivIflGf5zuUUzF6Qb574hg8afEC2TNlcySQiktZkzJiRxx57jLlz57J582Hi491OJKnZkiVL2LFjB23atLn6xpIgFcj+sO9nWPwAxB7j+5AHqBPcg7yZs/JDhQqUy3ahyIw7GceGZhuIHh9NQJD7E4D8c+Qf6nxUh+e+eY5TsadoFdqKqE5R1Lu1nmuZRETSqpw5WxMTE8Ott86iaFFwLkAgct0iIiIICQnh4YcfdjtKqqUCObnt++l8cTw/+wPUC+5OgSBPcVwq+MJl2s4ePMv6Ous5MOcAGXJnoPzC8uRpmOcKD5x8rLVMXjuZcmPKsWjrIvJkzcOs5rP4qMlH5MqS6+oPICIi12XpUhgwoDJQEpjKP/9Ay5awdq3bySS1OX78OLNmzaJ58+ZkyaLzgxJLBXJy+ncZLK4HsceZl/0BHsrWnZuyBPNjhQqUyJr1/Gand5xmbfW1HP35KJlvciYAqerOBCB7ju/h4ekP89Scpzgac5TGtzdmQ+cNNC3V1JU8IiLpwYcfAhigFbAE+If4eIiIcDGUpEqzZ8/mxIkTGl6RRCqQk8u/S2GJpziem70+DbN1p2jWbPxYoQJFvf6jOx51nDX3eE0Asty9CUBmbJhB2ffLMnfjXHJkzsGUxlOY3Xw2+YLzuZJHRCS9iIk5t/SE8/VjAHTVN7leERERFCtWjGrVqrkdJVVTgZwc9v4AS+pD7Am+zF6fxtle4rbg7PxYoQI3BQWd3+zw0sOsq7HO9QlADp46yOOzHqf5zOYcOHWAOsXq8Fun32hdvrVrJweKiKQnFyY6KwZUZSBvE8hZWrRwMZSkOv/88w+LFy/mySef1N/vJFKB7Gt7l8CSByH2BLOzP0jTbC9RJlsISypUoEDmC8Xvvi/2sb7OemIPx7o6Aci8v+dR9v2yTI+aTtaMWXn/wfeZ32o+N+XQrDsiIv7SqBH06weeYyituYcDTK09gP/9z+1kkppMnToVay2tW7d2O0qqpwLZl/Yu9hTHcSf5LNtDPJotnArZc7C4QgXyZcp0frNdH+xiQzN3JwA5GnOUp+c8zUMfP0T08Wiq3VSNyI6RdLqzk/7rFBFxwWuvwe7dsGDBo/QMDKT+8nfg+HG3Y0kqYa0lIiKCGjVqUKxYMbfjpHoqkH1lzyJY8hDEnWJ6tgY8lj2cO0NysrB8eW7I6DkybK1la78LE4AUGVDElQlAlmxbQuiYUCasnUCmwEwMrTOUH9r+QPHcxf2aQ0RELpYrF9SpcwMFGjbk+9hY4gYPdjuSpBK//PILGzdu1Ml5PqIC2Rf2fA8/eIrjadka0jL7i1TLmYsF5cuT0ymO42Pj2dhxI9v7eyYAKTm+JEVeKeLXo7Wnzp6i67dduT/ifrYf2c4dBe5gTYc1dKvajcAA96awFhGRi4WFhfFSTAxxw4d7DiuLXEVERARBQUE8+uijbkdJE1QgJ1X0d/BDQ4g7zZRsDWmdvSv35crNt6GhhGTIAEDcqTg2PLKB6HHOBCCfl6Vg+4J+jbly50oqjq3IiJUjCDSB9PtfP1aEraBMvjJ+zSEiIldXr149zhQowJx8+aBvX7fjSAoXExPD9OnTadKkCSEhIW7HSRNUICfF7vnni+PJ2R6mbfau1M19A1+XK0dwoOeI7NmDZ1lfez0HvjxAhlzOBCCN/DcByJm4M7yy6BWqTqrKXwf+onTe0qxsv5LX7nuNjIH+PylQRESuLkOGDLRr144OW7cS9+WXEBnpdiRJwb766isOHTqk4RU+pAI5sXZ/Cz8+DPExTAhuTFj252mQJy9flC1LFqc4Pr3jNGtreE0A8pN/JwCJ3BtJlfFVeHPpm1hr6XZPN1Z3WE2lgpX8lkFERBLnqaee4pC1fH/XXdCjh9txJAWLiIigQIEC1K5d2+0oaUa6LJBPnTqFtfaiNmstp06durYH2P3N+eJ4XLbGPB3yPE3z5mNmmTIEOcXxiQ0nPBOA/O6ZAKTizxX9NgFIbHwsby17i8rjKrN+73qK5SrGD21/YGjdoQRlCLr6A4iIiOuKFy/O/fffzwu//47dsgUWLHA7kqRAu3fvZt68ebRu3ZrAQJ1P5Ct+K5CNMZOMMf8aY6K82nIbY74zxvztfM3ltBtjzEhjzCZjTKQx5g5f5Th16hS1atUiPDz8fJFsrSU8PJxatWpdvUjeNQ9+bAzxZxgT3IRnsj9Py/z5mV66NJkCPN15eNlh1lZf65kApEYOKvxYgaDC/ilMNx7YSI3JNei1sBdn48/SsVJH1ndcT41bavhl/yIi4jthYWH8tXUrv7VqBd27Q1yc25EkhZk8eTJxcXG0b9/e7Shpij+PIH8I1LukrSew0FpbAljofA9QHyjh3DoAY3wVIigoiLvuuovhw4efL5LDw8MZPnw4d911F0FBVyhkd30FS5tA/BlGZ2tG55DnaFugAFNKlSKDUxzv+2IfkXUiPROANHEmAMmV/GN942087618jwofVGDFzhUUyl6Ib5/4ljENxpAtU7Zk37+IiPhe06ZNyZEjB4P//BNCQmDKFLcjSQoSHx/P+PHjqVmzJiVKlHA7TpqSwV87stb+aIwpcknzw8B9znIEsAR42WmfYj2HeFcYY3IaYwpYa6OTmsMYwzvvvAPA8OHDGT58OABdu3blnXfeufxl13bOhWXNIP4s7wU34/nsXehQsCBjSpYkwLnP7rG72dh5I8RDwY4FKTHKP9c43n54O0/NeYpFWxcB0Dq0NSPrjyRnUM5k37eIiCSfLFmy0KpVKyZMmMCYuXMJadfOMy91sH+G7EnKtmDBArZv386QIUPcjpLmuD0GOb9X0bsHyO8sFwJ2eG2302n7D2NMB2PMKmPMqn379l3TTr2L5HOuXBx/eb44Hh78KM+HdOH5woX5wCmOrbVsfW0rGzt6iuMi/YtQ4v3kL46ttUxaO4lyY8qxaOsi8mbNy+zms5nSZIqKYxGRNCIsLIyYmBim/PUXVK8Ol/z9kvRr3Lhx5M2bl8aNG7sdJc1xu0A+zzlabK+64X/vN85aW9laWzlv3rzXeh/Cw8MvavMek3yRHZ/D0kcg/izvBj/KiyGd6H7zzQy/9VaMMdg465kA5HVnApBxJSnyavJPABJ9LJpG0xsRNieMY2eO0eT2JkR1jqJJqSbJul8REfGvihUrcscddzBhwgTswIEwfDjs2eN2LHFZdHQ0c+bMoW3btmTKlMntOGmO2wXyXmNMAQDn679O+y7gJq/tCjttSeY95rhr167Ex8fTtWvXi8Ykn7djNixrDjaWt4NbEB7SiVeLFGFwsWIYYxKeAOTp5J8A5LMNn1F2TFm+2vgVOTLn4KMmHzGr+SzyBedL9n2LiIj/hYWFsX79etYcOgTt2kG/fm5HEpdNmjSJuLg4nn76abejpEluF8hzgHNXtW4DfOnV/qRzNYu7gSO+GH8McPr0aVauXHnRmON33nmHrl27snLlSk6fPu3Z8J9ZsKwF2FgGZ3uM7iHP8EaxYvQvWhRjjGcCkDrr2f/Ffs8EIN8n/wQgB04e4PFZj9NiZgsOnjpI3eJ1ieocRavQVn6dslpERPyrZcuWBAUFMXHiROjTBz7/HDZscDuWuEQn5yU/v52kZ4z5BM8JeXmMMTuBfsBbwGfGmDBgO9Dc2Xwe8CCwCTgJtPNVjixZsrBw4UKCgoLOF5XniuTTp0+TJUsW+GcG/PQ42DgGZWtJ7+ztGVq8ON1uvhnwTAASWS+Sk7+fJHPhzITODyW4dPKeMPH1xq9pP7c9e47vIThjMMPqDqNDpQ4qjEVE0oGcOXPyyCOPMG3aNN5++22y9u7tmTzk66/djiYu+O6779i+fTuDBw92O0qa5c+rWDx+mVW1EtjWAl2SK0uWLFn+02aM8bRv/wx+bgk2jjezPcEr2cN4r0QJni1cGPBMABJZL5KYnTFkLZOV0G9Dk/Uax0djjhI+P5yJaycCUP3m6nz48IcUz1082fYpIiIpT4cOHZg6dSqffPIJYZ07w6hRsHAh1PrPn1FJ48aNG0eePHl0cl4ycnuIRcqybfr54nhAtta8mj2Msbfddr44PvLTEdZWX0vMzhhyVM9BxaUVk7U4Xrx1MaFjQpm4diKZAzPzdp23WdJmiYpjEZF0qHr16oSGhjJq1Chsxozw1lvQrRvEx7sdTfwoOjqaL7/8krZt25I5c2a346RZKpDP2fYxdvkTYOPon601r2Vvx+RSpehQ0HPS3b4v9rG+9nrPBCCN8xC6IPkmADl59iQvfPMCNafUZPuR7VQqUIk1z6zhpaovERigaSRFRNIjYwzPPvss69at4+eff4ZmzSBLFpg61e1o4kfnZs7TyXnJSwUywNZp2OWtMTae17K1oX/IU0wtXZo2N94IwO5xu9nQbAPxp+Mp8EwByswsQ2CW5ClUV+xcQcWxFRn5y0gyBGTg9fteZ3nYckrnLZ0s+xMRkdSjZcuW5MyZk1GjRoEx8PbbnpP2Tp50O5r4wbmT8+6//35Klizpdpw0TQXy1qnYFU9ibDz9srdlYI52fFamDI/nz4+1lm2vb2PjM84EIK8XoeSYkskyAciZuDP0WdiHapOqsfHARkrnLc2KsBX0/V9fMgYm/1TVIiKS8gUHB/PUU08xc+ZMoqOjoWpVuPtuz7WRJc2bP38+27Zto0OHDm5HSfPSd4G8ZQp2uac4fjV7O94KacvsMmVomjevZwKQThvZ9to2zwQgY0tSpG/yTACyfs967hx/JwOXDcRaS/eq3VndYTWVClby+b5ERCR169SpE3FxcYwdO9bTMGiQZ3a9vXvdDSbJbsSIEdx44400bdrU7ShpXvotkK3F7piNwdInexhv52jL3HLlaJAnz4UJQMY6E4DMLkvBDr6fACQ2PpaBSwdy5/g7idwbSfFcxVnabilD6gwhKEPynfwnIiKp16233kr9+vUZO3YsZ86cgVtvhdat4fXX3Y4myejPP/9k/vz5dO7cWTPn+UG6LZAt0OaG12ieqy/DczzJvHLlqJs7N2cPnSWybuTFE4A87PsJQP7a/xfVJ1Wnz6I+nI0/S+fKnVnXcR3Vbq7m832JiEja8uyzz7Jnzx5mz57taXjlFZgxA/78091gkmxGjhxJpkyZeOaZZ9yOki6k2wLZGMNdufIyP1tt5oeGcn+uXJzecZq1NdZyZNkRMhfOTMWlFclRLYdP9xtv4xm5ciQVx1Zk5a6VFA4pzPxW8xn90GiyZcrm032JiEja9MADD1C8eHHPyXoAN9wAPXvCyy+7G0ySxaFDh4iIiOCJJ54gX758bsdJF9JtgQzQpVAh/r7rLqrnzMmJ30+wtupaTm44SdbSWan4c0WCy/h2drzth7dTe0ptXvj2BU7FnuLJ8k/yW6ffqFu8rk/3IyIiaVtAQABdunThp59+Yu3atZ7GZ5+F336DJUtczSa+N2HCBE6ePMkLL7zgdpR0I10XyAD5MmX67wQgyyoSdJPvxgBba5m4ZiLlxpRj8bbF5AvOx+ctPieicQQ5g3L6bD8iIpJ+tG3blqxZszJ69GhPQ+bMMHCgJg9JY2JjYxk1ahT/+9//KF++vNtx0o10XyDv/3K/ZwKQQ8kzAUj0sWgaTW9E+7ntOXbmGE1LNSWqUxSNb9f0kCIikni5cuWiVatWTJs2jYMHD3oaW7SAwED45BN3w4nPfPHFF/zzzz907drV7SjpSroukHeP301U06hkmwDk06hPKTumLF9t/IqcQTmZ2mQqMx+dSd7gvD7bh4iIpF9dunTh9OnTTJgwwdNwbvKQ3r3h1Cl3w4lPjBgxgqJFi9KwYUO3o6Qr6bZAttZyaOEhzwQgr/l2ApADJw/QYmYLHpv1GAdPHaTerfWI6hTFE6FPJMt1lEVEJH0KDQ2lZs2ajBgxwnPJN4AaNaBSJRg50t1wkmSrV69m2bJlPPfccwQGJs8MvpKwdFsgG2MoFVGKsl+UpUg/300A8tXGryg7piyfbfiM4IzBjG0wlnkt51EopJBPHl9ERMRbjx492L17Nx9//PGFxrfegqFDYd8+94JJko0YMYJs2bLx1FNPuR0l3Um3BTJAQOYAn13j+GjMUcK+DKPhJw3Zc3wPNW6uQWSnSDpU6qCjxiIikmzq1q1LaGgoQ4cOJf7cyXklS0LLltC/v7vhJNH27NnD9OnTadu2LTly+PaSs3J16bpA9pVFWxdRbkw5Jq2bRObAzAyrO4wlbZdQLFcxt6OJiEgaZ4yhR48e/P7778ybN+/Cir59Yfp02LjRvXCSaGPGjOHs2bM8//zzbkdJl1QgJ8HJsyd5/pvnqTWlFv8c+YfKBSuz9pm1hN8TToBR14qIiH80b96cW265hSFDhlxozJMHunf3TCAiqcrx48cZNWoUDRs2pESJEm7HSZdUxSXSip0rqDi2Iu/98h4ZAjLQ/77+/PzUz5TKW8rtaCIiks5kzJiR8PBwli5dyvLlyy+seP55WL0ali51L5xct3HjxnHw4EF69+7tdpR0SwXydYqJjaH3wt5Um1SNjQc2UiZvGVa2X8mr/3uVjIG+u36yiIjI9QgLCyN37twMHTr0QmNQkGfykJde0uQhqcTp06d5++23qVmzJnfffbfbcdItFcjXYf2e9VSZUIVBywZhraVH1R6s7rCaOwrc4XY0ERFJ54KDg+nSpQtffPEFf/3114UVjz/uKY4/+8y9cHLNIiIiiI6O1tFjl6lAvgax8bEMXDqQO8ffSeTeSIrnKs7SdksZXGcwmTNkdjueiIgIAM8++yyZM2dm2LBhFxoDAjyTh/TqBadPuxdOrio2NpbBgwdTpUoVatas6XacdE0F8lX8tf8vqk+qTp9FfTgbf5bOlTuzvuN6qt1cze1oIiIiF8mXLx/t2rUjIiKCPXv2XFhx330QGgqjRrmWTa7u008/ZevWrfTu3VuXiHWZCuTLiLfxjFgxggpjK7By10oKhxRmQasFjH5oNMGZgt2OJyJyzYwxNxljFhtjfjfGbDDGvOC05zbGfGeM+dv5mstpN8aYkcaYTcaYSGPMHV6P1cbZ/m9jTBuv9krGmN+c+4w0+uvumvDwcGJjYxl56Ux6gwd7bgcOuBNMrig+Pp5BgwZRpkwZTSudAqhATsC2w9uoNaUWXed35XTsadqUb8NvnX6jTvE6bkcTEUmMWOAla21p4G6gizGmNNATWGitLQEsdL4HqA+UcG4dgDHgKaiBfsBdQBWg37mi2tnmaa/71fPDzyUJuPXWW2nWrBmjR4/m4MGDF1bcfjs0bw4DBrgXTi5r7ty5bNiwgV69ehEQoPLMbXoGvFhrmbhmIqFjQlmybQn5gvPxeYvP+bDxh+QMyul2PBGRRLHWRltr1zjLx4A/gELAw0CEs1kE0NhZfhiYYj1WADmNMQWAB4DvrLUHrbWHgO+Aes66EGvtCmutBaZ4PZa4oG/fvhw7dox33nnn4hX9+sHUqbBpkzvBJEHWWgYOHEjRokVp0aKF23EEFcjnRR+LpuEnDWk/tz3HzhyjWalmRHWKovHteo8XkbTDGFMEqAisBPJba6OdVXuA/M5yIWCH1912Om1Xat+ZQLu4pGzZsjRv3pwRI0awf//+Cyvy5YPwcM8Je5JiLFy4kF9++YWXX36ZDBkyuB1HUIEMwPSo6ZR5vwxf//01OYNyMq3pNGY8OoO8wXndjiYi4jPGmGzALKCrtfao9zrnyK/1Q4YOxphVxphV+/btS+7dpWv9+vXjxIkTF18XGaBrV1i5En7+2Z1g8h8DBw6kQIECtGnT5uobi1+k6wJ5/8n9tJjZgsdnPc6h04eod2s9ojpF0bJcS509KiJpijEmI57ieJq1drbTvNcZHoHz9V+nfRdwk9fdCzttV2ovnED7f1hrx1lrK1trK+fNq4MQyalUqVK0bNmSUaNGsXfv3gsrsmaFN97wTB5ik/1/IrmKJUuWsHjxYrp160ZQUJDbccSRbgtkay2NPmnEZxs+IzhjMGMbjGVey3kUCtGngiKStjhXlJgI/GGt9R6UOgc4d8iqDfClV/uTztUs7gaOOEMx5gN1jTG5nJPz6gLznXVHjTF3O/t60uuxxEX9+vUjJiaGIUOGXLyiVSvPNZFnznQnmACeWqRXr14UKlSITp06uR1HvKTbAtkYw8BaA7mvyH1EdoqkQ6UOOmosImlVNaA1UNMYs865PQi8BdQxxvwN1Ha+B5gHbAE2AeOBzgDW2oPAAOBX59bfacPZZoJzn83AN/74weTKSpQoQevWrXn//ffZvXv3hRUBATBsGPTsCTEx7gVM5+bOncuKFSvo27cvWbJkcTuOeDE2DX28UrlyZbtq1arruo+1VoWxiPiMMWa1tbay2zlSg8S8Z8v127JlCyVLlqRz587/vTZygwZQqxa8+KI74dKxuLg4KlSoQExMDBs2bCBjxoxuR0qXLveenW6PIJ+j4lhERNKyYsWK0a5dO8aOHcvOnTsvXjlkCAwaBIcOuRMuHfvkk0+IiopiwIABKo5ToHRfIIuIiKR1r7zyCtZa3nzzzYtXlC4NTZrApe2SrM6cOUPfvn2pUKECjz76qNtxJAEqkEVERNK4W265hfbt2zNx4kS2bt168crXX4fJk2HLFnfCpUPjx49n69atDBo0SLPmpVAp4lkxxmwzxvzmnDiyymnLbYz5zhjzt/M119UeR0RERBLWp08fMmTIQK9LJwm58UbPtZF793YnWDpz4sQJBgwYwL333ssDDzzgdhy5jBRRIDvut9ZW8Boo3RNYaK0tASx0vhcREZFEKFSoED169ODTTz/lp59+unhleDgsWwYrVrgTLh0ZOXIke/fuZdCgQToPKgVLSQXypR4GIpzlCEBzPouIiCRB9+7dKViwIC+++CLx8fEXVgQHw4AB0K2bJg9JRocOHWLIkCE0aNCAqlWruh1HriClFMgWWGCMWW2M6eC05XcuPg+wB8if0B01bamIiMi1CQ4OZtCgQfz66698/PHHF6988kk4dgw+/9ydcOnAgAEDOHLkyH9PlpQUJ6UUyNWttXcA9YEuxph7vVdaz8WaE/yXVtOWioiIXLtWrVpRuXJlevbsyYkTJy6sCAyEoUPh5ZfhzBn3AqZRGzZsYOTIkTz99NOEhoa6HUeuIkUUyNbaXc7Xf4HPgSrAXmNMAQDn67/uJRQREUkbAgICePfdd9m1axdvv/32xSvr1oXixWHsWHfCpVHWWp5//nlCQkJ09DiVcL1ANsYEG2Oyn1sG6gJRwBygjbNZG+BLdxKKiIikLdWrV+fRRx9lyJAh7Nq16+KVQ4fCG2/A4cPuhEuDZs2axaJFi3jjjTfIkyeP23HkGrheIOMZW7zMGLMe+AX42lr7LfAWUMcY8zdQ2/leREREfGDw4MHExcXR+9LLu5UrBw0bembYkyQ7ceIE4eHhlC9fnmeeecbtOHKNXC+QrbVbrLXlnVsZa+2bTvsBa20ta20Ja21ta+1Bt7OKiIikFUWLFuXFF19kypQprFq16uKV/fvDhAmwbZsr2dKSt956ix07djBq1CgCAwPdjiPXyPUCWURERNzRq1cv8ufPT5cuXYiLi7uwomBBeO456NPHvXBpwObNmxkyZAhPPPEE1atXdzuOXAcVyCIiIulUSEgIw4cP55dffuG99967eGW3brB4MVx6dFmu2YsvvkimTJkYMmSI21HkOqlAFhERScdatGjBQw89RJ8+fdjmPaQiWzZ4/XVNHpJI8+bNY+7cufTt25eCBQu6HUeukwpkERGRdMwYw5gxYwgICKBjx45Y72K4XTvYvx/mznUvYCp0/Phxnn32WW677TZeeOEFt+NIIqhAFhERSeduuukm3nrrLebPn8+0adMurMiQwXPZtx494OxZ9wKmMj179mTbtm2MHz+eTJkyuR1HEkEFsoiIiNCpUyfuueceunbtyr59+y6sqFcPbroJxo93L1wqsnDhQkaPHk3Xrl2pUaOG23EkkVQgi4iICAEBAUyYMIGjR4/StWvXCyuM8RxF7t8fjhxxL2AqcPToUZ566ilKlizJG2+84XYcSQIVyCIiIgJA6dKl6dOnDx9//DHz5s27sKJCBahfHwYPdi9cKtC9e3d27tzJhx9+SNasWd2OI0mgAllERETO69mzJ6VLl6Zjx44c9p5uesAAGDsWduxwL1wKtmDBAsaNG8dLL73EPffc43YcSSIVyCIiInJe5syZmTx5MtHR0bRv3/7CVS0KF4ZOneCVV9wNmAIdOXKEsLAwbr/9dvr37+92HPEBFcgiIiJykSpVqjBw4EBmzZrFBx98cGHFyy/DggWwZo174VKg8PBwdu/eTUREBEFBQW7HER9QgSwiIiL/8dJLL1G/fn1ejSMxzQAAFLdJREFUfPFF1q9f72nMnh369dPkIV5mzpzJpEmT6NGjB1WqVHE7jviICmQRERH5j4CAACIiIsidOzctWrTg+PHjnhXt20N0NHifxJdO/fHHH7Rr1467776b119/3e044kMqkEVERCRBefPmZdq0aWzcuJHnnnvO03hu8pDu3SE21t2ALjp27BhNmzYlS5YszJgxQxOCpDEqkEVEROSy7r//fl555RU+/PBDpk6d6ml86CHInx8mTnQ3nEustYSFhbFx40amT59O4cKF3Y4kPqYCWURERK6ob9++1KhRg44dO/Lnn396Jg95+2147TU4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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"x = np.array([ 1000, 1500, 2000, 3000, 3800, 4500])\n", | |
"y = np.array([ 100, 230, 150, 300, 390, 300])\n", | |
"\n", | |
"# The data to fit\n", | |
"m = len(y)\n", | |
"\n", | |
"fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10,6.15))\n", | |
"\n", | |
"ax[0].scatter(x, y, marker='x', s=40, color='k')\n", | |
"\n", | |
"def cost_func(theta1):\n", | |
" \"\"\"The cost function, J(theta1) describing the goodness of fit.\"\"\"\n", | |
" theta1 = np.atleast_2d(np.asarray(theta1))\n", | |
" return np.average((y-hypothesis(x, theta1))**2, axis=1)/2\n", | |
"\n", | |
"def hypothesis(x, theta1):\n", | |
" \"\"\"Our \"hypothesis function\", a straight line through the origin.\"\"\"\n", | |
" return theta1*x\n", | |
"\n", | |
"# First construct a grid of theta1 parameter pairs and their corresponding\n", | |
"# cost function values.\n", | |
"theta1_grid = np.linspace(-0.07,0.25,50)\n", | |
"J_grid = cost_func(theta1_grid[:,np.newaxis])\n", | |
"\n", | |
"# The cost function as a function of its single parameter, theta1.\n", | |
"ax[1].plot(theta1_grid, J_grid, 'k')\n", | |
"\n", | |
"# Take N steps with learning rate alpha down the steepest gradient,\n", | |
"# starting at theta1 = 0.\n", | |
"N = 5\n", | |
"alpha = 0.00000008\n", | |
"theta1 = [0]\n", | |
"J = [cost_func(theta1[0])[0]]\n", | |
"for j in range(N-1):\n", | |
" last_theta1 = theta1[-1]\n", | |
" this_theta1 = last_theta1 - alpha / m * np.sum(\n", | |
" (hypothesis(x, last_theta1) - y) * x)\n", | |
" theta1.append(this_theta1)\n", | |
" J.append(cost_func(this_theta1))\n", | |
"\n", | |
"# Annotate the cost function plot with coloured points indicating the\n", | |
"# parameters chosen and red arrows indicating the steps down the gradient.\n", | |
"# Also plot the fit function on the LHS data plot in a matching colour.\n", | |
"colors = ['b', 'g', 'm', 'c', 'orange']\n", | |
"ax[0].plot(x, hypothesis(x, theta1[0]), color=colors[0], lw=2,\n", | |
" label=r'$\\theta_1 = {:.3f}$'.format(theta1[0]))\n", | |
"for j in range(1,N):\n", | |
" ax[1].annotate('', xy=(theta1[j], J[j]), xytext=(theta1[j-1], J[j-1]),\n", | |
" arrowprops={'arrowstyle': '->', 'color': 'r', 'lw': 1},\n", | |
" va='center', ha='center')\n", | |
" ax[0].plot(x, hypothesis(x, theta1[j]), color=colors[j], lw=2,\n", | |
" label=r'$\\theta_1 = {:.3f}$'.format(theta1[j]))\n", | |
"\n", | |
"# Labels, titles and a legend.\n", | |
"ax[1].scatter(theta1, J, c=colors, s=40, lw=0)\n", | |
"ax[1].set_xlabel(r'$\\theta_1$')\n", | |
"ax[1].set_ylabel(r'$J(\\theta_1)$')\n", | |
"ax[1].set_title('Cost function')\n", | |
"ax[0].set_xlabel(r'$square feet$')\n", | |
"ax[0].set_ylabel(r'$house price$')\n", | |
"ax[0].set_title('Data and fit')\n", | |
"ax[0].legend(loc='upper left', fontsize='small')\n", | |
"\n", | |
"plt.tight_layout()\n", | |
"plt.savefig(\"loss.svg\")\n", | |
"plt.show()" | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment