Skip to content

Instantly share code, notes, and snippets.

@victorkristof
Last active September 28, 2015 12:19
Show Gist options
  • Save victorkristof/dc2e80de47dacb37fc3c to your computer and use it in GitHub Desktop.
Save victorkristof/dc2e80de47dacb37fc3c to your computer and use it in GitHub Desktop.
Gaussian Process to fit increasing time series
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">\n",
".pd{\n",
" font-family: \"Courier New\", Courier, monospace !important;\n",
" width: 100%;\n",
" padding: 3px;\n",
"}\n",
"</style>\n",
"\n",
"<p class=pd>\n",
"<b>Model</b>: GP regression<br>\n",
"<b>Log-likelihood</b>: 773.755697468<br>\n",
"<b>Number of Parameters</b>: 6<br>\n",
"<b>Number of Optimization Parameters</b>: 6<br>\n",
"<b>Updates</b>: True<br>\n",
"</p>\n",
"<style type=\"text/css\">\n",
".tg {font-family:\"Courier New\", Courier, monospace !important;padding:2px 3px;word-break:normal;border-collapse:collapse;border-spacing:0;border-color:#DCDCDC;margin:0px auto;width:100%;}\n",
".tg td{font-family:\"Courier New\", Courier, monospace !important;font-weight:bold;color:#444;background-color:#F7FDFA;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#DCDCDC;}\n",
".tg th{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;color:#fff;background-color:#26ADE4;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#DCDCDC;}\n",
".tg .tg-left{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:left;}\n",
".tg .tg-right{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:right;}\n",
"</style>\n",
"<table class=\"tg\">\n",
"<tr>\n",
" <th><b>GP_regression.</b></th>\n",
" <th><b>Value</b></th>\n",
" <th><b>Constraint</b></th>\n",
" <th><b>Prior</b></th>\n",
" <th><b>Tied to</b></th>\n",
"</tr>\n",
"<tr><td class=tg-left>sum.rbf.variance </td><td class=tg-right> 0.276749300057</td><td class=tg-left> +ve </td><td class=tg-left> </td><td class=tg-left> </td></tr>\n",
"<tr><td class=tg-left>sum.rbf.lengthscale </td><td class=tg-right> 19.523901041</td><td class=tg-left> +ve </td><td class=tg-left> </td><td class=tg-left> </td></tr>\n",
"<tr><td class=tg-left>sum.mul.rbf.variance </td><td class=tg-right>1.47266508454e-10</td><td class=tg-left> +ve </td><td class=tg-left> </td><td class=tg-left> </td></tr>\n",
"<tr><td class=tg-left>sum.mul.rbf.lengthscale </td><td class=tg-right> 9.92394703151</td><td class=tg-left> +ve </td><td class=tg-left> </td><td class=tg-left> </td></tr>\n",
"<tr><td class=tg-left>sum.mul.linear.variances</td><td class=tg-right> 1.4726650845e-10</td><td class=tg-left> +ve </td><td class=tg-left> </td><td class=tg-left> </td></tr>\n",
"<tr><td class=tg-left>Gaussian_noise.variance </td><td class=tg-right>4.75079336414e-05</td><td class=tg-left> +ve </td><td class=tg-left> </td><td class=tg-left> </td></tr>\n",
"</table>"
],
"text/plain": [
"<GPy.models.gp_regression.GPRegression at 0x11be3e290>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"{'dataplot': {'dataplot': [<matplotlib.lines.Line2D at 0x120c42790>]},\n",
" 'gpplot': [[<matplotlib.lines.Line2D at 0x120949e50>],\n",
" [<matplotlib.patches.Polygon at 0x120c37110>],\n",
" [<matplotlib.lines.Line2D at 0x120c37750>],\n",
" [<matplotlib.lines.Line2D at 0x120c37c90>]]}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6UAAAHaCAYAAAD4yu97AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xlc1XX69/HX9yyAKDsuqMjinqXkkktlliagJu3qVJY1\n85ulwpzfzD33T7RF0OY3c08O1kzTNJVZky22iAkHs2lXSzEsywUF3DcUFFSEc873/gM5guCWwgF5\nPx8PH57zXa/DcTnXuT6f62OYpomIiIiIiIiIN1i8HYCIiIiIiIi0XEpKRURERERExGuUlIqIiIiI\niIjXKCkVERERERERr1FSKiIiIiIiIl5j83YA1QzDUBtgERERERGRy5hpmsbp25pMUgqg5Wlapief\nfJInn3zS22GIl+j9b9n0/rdceu9bNr3/LZve/5bLMOrko4CG74qIiIiIiIgXKSkVERERERERr1FS\nKl43YsQIb4cgXqT3v2XT+99y6b1v2fT+t2x6/+V0RlOZx2kYhtlUYhEREREREZFLyzCMehsdqVIq\nIiIiIiIiXqOkVERERERERLxGSamIiIiIiIh4jZJSERERERER8RolpSIiIiIiIuI1SkpFRERERETE\na5SUioiIiIiIiNcoKRURERERERGvUVIqIiIiIiIiXqOkVERERERERLxGSamIiIiIiIh4jZJSERER\nERER8ZqLTkoNw3jZMIx9hmF8f4b9IwzDOGwYxrcnf8242HuKiIiIiIjI5cF2Ca7xCvAssOAsx3xm\nmub4S3AvERERERERuYxcdKXUNM0vgOJzHGZc7H1ERERERETk8tMYc0pNYJhhGOsMw8g0DOOKRrin\niIiIiIiINAOXYvjuuawFIk3TPGYYRiLwAdCjEe4rIiIiIiIiTVyDJ6WmaZbWeJxlGMbfDcMINU3z\n0OnHPvnkk57HI0aMYMSIEQ0dnoiIiIiIiDSATz/9lE8//fScxxmmaV70zQzDiAaWmKZ5VT372gP7\nTdM0DcO4BnjbNM3oeo4zL0UsIiIiIiIi0vQYhoFpmnX6DV10pdQwjIXADUC4YRg7gCcAO4Bpmi8A\ndwK/NgzDCRwDJl7sPUVEREREROTycEkqpZeCKqUiIiIiIiKXrzNVShuj+66IiIiIiIhIvZSUioiI\niIiIiNcoKRURERERERGvUVIqIiIiIiIiXqOkVERERERERLxGSamIiIiIiIh4jZJSERERERER8Rol\npSIiIiIiIuI1SkpFRERERETEa5SUioiIiIiIiNcoKRURERERkSbtWHklmSu34nK5vR2KNAAlpSIi\nIiIi0mSVHavgvc83ExYWyNufbGJ/8VFvhySXmGGaprdjAMAwDLOpxCIiIiIiIt53uKycJSu20rdn\nR6wWC6ZpsrFgP7EdAunfs4O3w5MLZBgGpmkadbY3lURQSamIiIiIiFQ7eOQ4jq/z6dujIxZL7QGe\ne/Yf4djxcsZd2w2LUSfHkSZKSamIiIiIiDQLRSVHWbZmG317dMQ4Q9JZcuQ4NlwM7tOpkaOTn+pM\nSanmlIqIiIiISJPyxXc7z5qQAgQHtmL7/lJU2Gr+lJSKiIiIiEiTsWPfEew+vmdNSKu1Dw9k7eZ9\njRCVNCQlpSIiIiIi0mSs3rSH6I7B53VsWHBrCvYcbuCIpKEpKRURERERkSahcE8Jvj4+51UlrRYW\n0obvtqha2pwpKRURERERkSYhZ/M+ojuFXtA57ULbkLezpIEiksagpFRERERERLyuYHcx/q18f9K5\nQYGt2bit6BJHJI1FSamIiIiIiHjd2rz9dIkI+UnnRrQN4MfCg5c4ImksSkpFRERERMSr8nYcorW/\n30Vdo3XrVuTtOHSJIpLGpKRURERERES8at3WA0R2OL+Ou2fSuX0Q6ws0hLc5UlIqIiIiIiJes3bT\nXkJD2lyaixkWDh4+dmmuJY1GSamIiIiIiHhFpdPN5h3FtA+9NElp1y5hfP3D7ktyLWk8SkpFRERE\nRMQrPlpdQI/YdpfselaLhbJyJ06X+5JdUxqeklIREREREWl0u4tKqXSb+Nptl/S60Z3DWPn9zkt6\nTWlYSkpFRERERKTRrfh+F10jwy/5dVu38mH/4eOX/LrScJSUioiIiIhIo8rZuIfw0AAMw2iQ6we2\n8WezlodpNpSUioiIiIhIo6modLFl92HaXqLmRvXp2C6QDYUHG+z6cmkpKRURERERkUvK4XBgmqbn\nsdvtJisri5xNe3nvs00c2PZ9g8fgMuHI0RMNfh+5eEpKRURERERaiJrJIoBpmjgcjlrb09LScLlc\nOBwO0tLScDqdpKWlATBr1ixmzZrlOd/tdnv2paWleZ4nJiby2GOPMXnyZBITE4mKjmXMmDEs/3g5\nSxc+y6MP3s2Xny5v0NfarUs4X36nhkfNgVHzD6U3GYZhNpVYRERERESgKomLj48nOzsb0zSJj49n\n2bJlxMfH43A4yMnJISUlBcMwcDgcfPPNNwwcOBCLxcLo0aNJS0vDMAxmzJjhuQZAYmIiAFlZWaxZ\ns8azf/To0cyePRuAlJQU5syZw/Tp03nggQeYOHEiOTk5DBgwAMBz7ylTpjBhwgTefPNN5s+f74nF\nNE3Wrl3LjBkzPK8lMTGRhx9J5nf/8xQVlU7SnkrhtVf+CcD9D/6Sdu3a8uc/phEeHk5RUREAfn5+\nlJeXc+ONN/LJJ58A8MQTTzJjxgwGDRpIbm4uI0eO5OOPPyY2Npb8/PxaP0MfXz8qTpQDcOPoMXyy\nLJN7H/wVf3ji6QabU1rtxy17uG14D2xW1eKaAsMwME2zzpuupFREREREpB7VSVxSUhKLFy8GIC4u\njtzcXMaPH09GRgYA1984mkn33s9vHrqn1vkxMTEUFBQAMGTIEFatWuXZt3TpUkwTxo0bW2t/zaSu\nQ4cO7N27l5CQEIqLi+uNMTg4mJKSEs/z2NiqiuRzzz3n2XbfLx7jrvsfptLl5qV5s8l8dwG3TXwQ\nw2Lw3hsvcevEKbjdJhlvzyf+1ntY8Z9MSo8U498miMqKciorTmD38aVdxy7sKswDIKprLwzDoHDL\nBqK79WbO84uY/us7KdyygTaBwZQdKakTa7Wwbtdzy71TmXrfjdjt1vN7M36i4+WVlJSUMmpQTIPe\nR86PklIRERERkfOQlpbG9OnTMQyDadOmkZ6eTvv27dm3bx8AAUEhlB6uShIjY3qwo2AzN46byKbv\n17B72xYA7D6+VFbUns8Y3bUXhVs3AjDm9vswgaz3XvPsr3ndaj4+vlRUnH1epN3uQ2VlRb37ImN7\nMi3tFQ4dOU5RcRlFxWWsynyZnes/BiAwehghvccBcGjDh5QWrgDAYvfHXXms6iIWG7idAFhbt8di\nsVBZugeAVsGd6Bn/eywWC6bpZqPjzxwv2VUnjprXC4geRmjvcQwf2I3fPTQKq6Vhq5g/bNnD2CFd\nad3K3qD3kXNTUioiIiIicg5paWnMnDmTuLg4cnJyME2Ttu3aU3yobifXgKhhhPQeS/HGpZ5kztq6\nPa6j+854/fa9RuB2mxzY/BkAIbHXYQIl+V9eVNw+gRFUHNlTa5s9IIKIax/BUiPpM02zVvIZED2M\n9lcl4eNjZf93GRTlfV71Onxa46o4CoBhsWGeTErtAR0Aw5OU1ryH2+1mz1fPefadLqZ7b64eOJT3\nFr5MaNfrCeiRSOLwPjz8s+ENOozX6XSzfVcRt1zXvcHuIefnTEmpBleLiIiIiJw0ffp0zxDd3n36\nEtujT70JKYCvj42ukeG0Cw3wbLNYzp5cHT1+gvITlZ7nlS4XTqfrouN2u+sWd+w2K1f16MiNg3tw\nZ/zV/HLCdXS3rae0cAV3/Owh7r7vF5QWrqCP/0ai+Y6ivM9JuO1eAoJCcFUcpXVAEHYfX0y3E7uP\nL11ielBZupfK0j10ie1FVNdeVJbuwch7jScfHgObX6OydA9+rVp7YrBabZ7HBXkbGDk6nnsf/BWH\ntn6Bs3grji9+5PUlqy/69Z+NzWbBbRjsKy5r0PvIT2c79yEiIiIiIo2nurnQ7NmzmT59OtnZ2QC8\n8cYb7Nq1i48++oinn36aq6++moULF2K1WnnllVfo1q0bkydP5pprrsEwDFwuFykpKdx5553k5eUx\nYcIE1q5dS0pKiqdJEUBeXh7z58+vGoIK/OznUymY+Xs2b/zBE5OtTQecZXsBPHMmi/I+p8A8QOGW\nDYy9YzLff/s12/M3AfUP3+0c3YOdhSsBiL/1XgCyP3jdsz8gMITSI7WH79Z3ndPZ7D6e2Go6VryT\nHzL/xAMvvofNYiV39RcsX/IGt054gF9PS8FutWDFzcLXXgLg0eRkwsPCcLxfXG+jo24xndlesBmA\nB+6bwGO//QPXXTuYH9d/z7/+mMz2/I1ERcewrbBqHm1YWBgHDx6kV69ebNxYNWz5wMEyxt2TzLDh\nN+Eb1p3ZL2TzVmYOga39SBrZ96yv82J0jQxnxfe7uG14zwa7h1wE0zSbxK+qUERERESkKcvKyjLd\nbrfnudvtNrOysszU1FTT5XJ5trtcLnPy5Mn1HltT9XnV1126dKkJmEOGDDEBMyYmxgRq/fLx8a2z\nzWq11tl2pl/R9VwzolOkmfHlJvOmcZPq7LPY/TyPu/bobQLm+PHjPduSkpLMzMzMOufVjL3/gEG1\n9r3z7gfmu+9neJ4Pruf1tm/fwQTM4OCQM76W4ODg2veMjTUffvjhWttSU1PP+f7V3J6ammo6nU7P\n+1pZWem5xlNPPWU+9dRTtd7n6n0138vMzEzT6XSaqampptvtNjMzMz3v/a4DR8wlK/LN9dtLzPS3\nVpnRY542o8c8bS5c/qO5fntJg/3K+rrA3Lz94EX/HZCf7mTOVycX1JxSERERETmrtLQ0+vfvT05O\nDo8//jjJycmEhYUxcOBA/vnPf3o608Z2781zr2Zgs1m4/7Yb2bNrO4MHD2Hlyqr5i9VNg7KyskhI\nSPDM36zuOHvvA7/gyy8+p3DrpguKz7BYMN3ui36dvv4BnDhW6nkeEB6JzXBRfGA3nSOj+MfzfyMx\nMbHZLgnTVJimybuf59E7tj0ALy1awfvL1zH62l4k33djg957w5a93HmjqqXeokZHIiIiInLBqhPH\natXzLWvqO+gG9u3Zyb6dW+nYpTsWi8HOws2e4ahj75iMYRh8uOhVku5+gF88VpXEud1upj6QRH7e\nhlqdZ31ataHieOPM/2vTZSimaXJ0x6pa2yO6dOdvry1hUK8O3BI/gtzcXFJTU5tcgtdcZXyVR9cu\n7QAo2HmQR9PeJjigFa/+7+QG7cZ7oPgoAT4GA3pFNNg95MzOlJRqTqmIiIiIUFHpYu2mPew/XI7T\n6cZmM1j3zRcMH3MPfd58mx9++B6gTkLqF9yJkrDR+IaB/fBz7N5etY6lPSCC4KEPY9uSzdJ3FwBw\n49hJ3Hr/Y+w+UMqJCicnKpzc8ehcXpj1Xxwp2n4qluNl2AMiztjF9VLy87UT0NqXgh2ntgWHhPPt\n2jW0DwsEqiqSc+bMUUJ6CQW0slPhdOFjsxLdKZT24QHsKyplU/4+rujWcAlj25DWbCrYT0hgMbEd\nQxrsPnJhlJSKiIiItGCbth9k4/ZDnHCaREUE07VLVSfZLz9dzuO/fYhJD/yS1OffZdqU8Ww7ucZm\nTfagKMJD2jDwyi588H0r9p8c/drK107b0DaUuE51ll3zwzbyn8ustfyH2+3meI1utNUqS/fU2/in\nPhaLFbf7p3WwLcr7nKKTj4NDQikpPkRJcREJo24gJycHi8WCxWJRQnqJXd2jA5/m7qJ7VDiGYTCk\nXwyLP/6OVesKGzQpBegZ0461efuwW61Etg9s0HvJ+dGSMCIiIiIt1MHDx1i3tYhuUe24IrYdRcVl\nLMr+ljkvOMj89ihd+o5i4fwX+MWDD7F927Y657fv3JXSbStoV76aj+ZPZ/+ufGK79yame2+OFG0n\nL/MpSgtXMGr8zxh4422UFq7Atu8zBveN5oZB3Rk1tCfHv3+pKgENqlu1Kj1STGxsbJ3tvr6+tZ67\n3S6sVut5v+6YmJg622JjYyk6sJ9HH30UqKoIz5kz57yvKRcmuI0frhpfWAzpV/WerMwtoDGm9PWO\nbc/KH/aw55CWiWkKVCkVERERaYFcLjfZ3xQCJs++/ik5P2ynqPhorWOMTjfRuqSMg1u+qPca+3Zu\n5cor++J4v2pZk7i4OM8yK927dyc/P5+rBwzid9NncbzCxYuhAWS+u4AJE+6k/+DhvPva8xzYlU9E\npy7s2bWd5ORkPvvsM9atW8eQIUNYtWoVzz77rKey2hhLwqSnp5OQkNAkGwRdbnztp+pjV3TtQGBr\nP/YcOMyOPcV06Rja4Pfv070Dn327g1EDuhAe3PrcJ0iDUaMjERERkRZoyZd5bCw8wN8Xfu7ZFhLo\nz4Aru9CvZyeCAlrh52vj8UcnsXH9qXmkw24YxZGD+1i//nvPttTUVACmT5+O5WSTGrfbzZQpUzzd\nYOFkIpydzZgxiZ5z09LSmD59uqejrWmazJkzh5SUFLKzs0lISGjQn4N4z1ff7cCnVSv8/ewAzJ3/\nHz5etYnJtw7m7oT+jRKDaZr8sGUP/bq2pVdUeKPcsyVT910RERGRFsrhcBAfH+9JDr/+YRcvLXib\nj3+swO02SRrZlxsH9yC2czgWi4FpmuwtKmXu7BlkvreA3lddTUyXTmQu/ZDk5GSeeeYZ5syZw8CB\nAzEMQ4mj/CTHTzhZuirfszTMytwCZv/DQY/odjzzf+9o1Fh27z/C4dJj9OgcTN9u7Rv13i2Juu+K\niIiItEAOh4PExESmTp3K3Llz2bn/CL//3W/5wvE27QY9wJTJk7gvaTDHyivZVLgfq8Wgld3Krs1r\nyHxvgec8OLXOaGJiYq1lYkR+ila+tloNbq7u3Rkfu5XNhfs5WHKUsEYcUtuxXSAd2wWy/1AZiz7Z\nSGiALz2jwugQFoDVUieHkkvsopNSwzBeBsYC+03TvOoMx8wDEoFjwAOmaX5b33Hrt+47//ty/n84\njAv5c3QBB1/YZc9xdI0/7DarBR+bpep3uw0fu5VWPjasVgPLBb0YERERaeni4+OZOnUq6enpmKbJ\nt5v38oXjbQKih3HrrUkM69+Vgu0HCAv0ZdzQWPx8Tn48HBJLp3aBtSqsc+fOJSEhQZVRuWR8fU41\nqPLztXN170i+/q6Qr78rZMzwPo0eT7vQNrQLbUNFpYt1BcWs+GEvNquB3WpgtRgYBlgtBlaLBaul\n6rN59cd4q9WC5eQ2w1J1vAXjwnKRy1hAG98z7rsUldJXgGeBBfXtNAxjDNDNNM3uhmEMBp4HhtR3\nbPFx93nd8EIG+TbUkOALueyFxuAyTdxON063idPpwuly4XZV/WwMw8BiMbBaoE0rOwN6dCCojd8F\nXV9ERERahuphu9WVzvT0dAACoocxZuKjjBzSi96RIXSPrL+pzOnJp4bqyqXWIaQVh8vKPZ9nh8TF\n8PV3hazKLfBKUlrNx24lKiK43n2maeI2q343AU4+dpkmbvep302nicut6YnVKnCecd9FJ6WmaX5h\nGEb0WQ4ZD7x68tivDcMINgyjvWmadcqioUH+FxtOi1LhdPFJ7i5cLhetfCzcPCgWu02r/IiIiEjt\nYbvPPPMMpUdPePb5W46TOLwP117ViU5tA7wYpbR0V3VtzwdfbfUkpddcFYXFMPhu0y6OHa/Av5WP\nlyOsyzAMrAZc2LhJOduIz8bIYDoBO2o83wl0boT7XvZ8bFa6R4XTK7Y9HdqH8PYnG9hXrLWWRERE\npPaw3QEDBvDyv/4BQKvgTuzL/5aVS16gY3gbL0cpLZ2P3UqNlWEICmhF764dcLrcrPlhu/cCk0bV\nWGW109Ni1bEvMV+7jX49O/HFul2syzv/ubkiIiJyeTIMg7lz55KUlERubtWSLm2ihjJt9is8/Mij\nvPD838jOzvZylCLg52OtNd1tcL9oAFblFngpImlsjdF9dxcQWeN555Pb6vjbM097Hg8aeh3XDL2+\nYSO7zBiGQe+uHdi5t4S9q/IZPTjm3A2WRERE5LLWsdOpj2HtQgP5P5OvJ7D1KMaNHaP5odIkRLUP\nZF/xUdqFVlXuB/eN5uV3V7Ju005M09Tn2Wbsm5VfsHrll8DZG79eknVKT84pXVJf992TjY4eMU1z\njGEYQ4C/mqZZp9GRYRjm+u0lFx2LVCkpPY67soLr+3XxdigiIiLiBaZpepZwCYgeho/dxsG8zz1L\nvOiDvjQVbrfJos820adbBFD1Z3fib1/m6PEKXv3j5EZdGkYajsUwuCIyqN51Si96+K5hGAuBFUBP\nwzB2GIbxoGEYvzQM45cApmlmAvmGYWwBXgB+c7H3lHMLDmjF7oPHcLnOr6OxiIiIXB4cDgemaTJ7\n9mzS09MJjr0Wv/Du/GraDJKSkkhPT9ewXWlSLBYDH9uppWEMwyCmczgA+TuKvBWWNKJL0X130nkc\n88jF3kcuXGxkGJ+u3cbIQTHeDkVEREQaWFpaGm63myeeeIKkpCQWL16Mf1AHjpcWUZL/Fesiivlw\nSQapqakatitNjt1Wu3gWGxnG+rzdFOwsYtBVUV6KShpLY8wpFS/x9/Mhv/QEFZUufOzWc58gIiIi\nzVJaWhozZ84EIC4ujsWLF2Ox2jl2eC+wl46du/DhkgymTp1KSkqKd4MVqYfVqD2AM9ZTKT3ojXCk\nkWlRy8tc9+i2fLK20NthiIiISAOaPn06/fr1AyA3NxeLzY7bVenZv3vnds0llSbNbjVw1+h1E9vl\nZFK6U8N3WwIlpZc5X7uNw8cqOVZeee6DRURExGuq54JW/179OCsri6ysLBwOB6mpqbhcLs9Q3czM\nTNLS0jAMgzlz5tCzdx8A3E79vy/NS+tWdk5UOD3PIzuEYLNa2HPgMMfKK7wYmTQGDd9tAXpGt+eT\ntdsYO6ybt0MRERFpsRwOB/Hx8Z5KpWmaZGdnk5CQgMPhIDExkfHjx5ORkcG4OydjmrD03QV1rvOn\nP/2ZsrJSXn75ZQoKqtZx/Pdb77JxfS6tg9rWe++4uDjS09MBVC2VJqlLhyDW5R+iS0QwAHablS4d\nQ8nfUcS2XYfo3bWDlyOUhqRKaQtgs1k4XmlSevSEt0MRERFpkaqTzmnTpnmqoNOmTSMxMRGHw8F1\nw2/i1gkPkJGRQZfYnny4aAFL311AcPtTDV7COkQDUFZWisVi8SSk/gHBbFyfi9WnNUcPHwDAYj1V\nd+jXrx+5ubnqvCtNWniQP2XHymtti+0cBqgDb0ugSmkL0SM6nM9ydzDuWlVLRUREGlt8fDxTp071\nVCsB0tPTmTp1KtG9B/Le55u5PumXrN2wk+3fLfccU7JvG22ihmJgcHDbCs92t/vUkm/HSkvwCYqk\n4vAOALpdNZQ1K5Zzdd8rKSgoYN26daSmppKSkuKpzIo0NXabBQu1K/hVy8Js0rzSFkBJaQthtVg4\n4dSapSIiIt5gGAZz584F8CSmU6dO5cFH/oe3PlrPe8tyOVx2nOIjx+qcG9erM263yYptZ75+XP9B\nhLUdQ88rruKJ3z5IUJtWbNmyhdmzZzNo0CBPIqqEVJoqwzCwWk/rwBuptUpbCg3fbUEsVguHy8rP\nfaCIiIg0uP2HjvJaZi6vfrCKw2XHce/4mNLCFXTp2stzTGz33nyZ/Q4rPlpETNeenu0Wy6ml3gKD\nQ/jmk/foGGzh/838NcEBrU4eY2HmzJlKRKXZsBhmrecxJ4fvFu46hMul4srlTElpCxIVEULu5n3e\nDkNERKTFqZ5DWj1k9657HmTha//ihbmzcLtNBkW72bH+Y4YOH8X2rRtJTk4mOTmZ/LwNnmsUbN0E\nQGBgIG63i5iYGACOlBQzdOhQXvrn83y0bJlXXp/IpWC11U5N2vj70j48gEqni537SrwUlTQGDd9t\nQXx9bOw6rhbxIiIijS07O9uTkI67dyoLMtYQEL2R0sIVjBk7jkd+cR9TbulPYkIC2dnZxMfHA5CY\nmIh5cu1GwzBYvXo106dP5+mnn2b69Ok4HA7Wrl2r+aJyWbBZLJimWas7dGzncPYVlZK/o4iojqFe\njE4akmGa5rmPagSGYZjrt+sbkIa2MX8fd9zQw9thiIiItChpaWn0798fd1B3XvngG9as30ZZwWck\nJo5kxtSH6BUd5u0QRbzus28LCQoOxG47NTx94dI1/HvJam6/uR8P3jHMi9HJxbIYBldEBmGaZp01\nqVQpbWGsFgvFZeWEtPHzdigiIiItQlpaGjNnziS6ay96xP+Ojfn72Lfyb5w4vJuOt12jhFTkpPZh\nAewtKadtSGvPtlPLwhz0VljSCJSUtjBRnUNZt3kvI/pHezsUERGRy0p1NTQxMRHDMJg1axamaTJg\n4EC6xPakcOtGtv/rMXz8gzhxeDd9+/bjj7Of8nbYIk1G57YB/FhYXCspjanuwLuzqM7QXrl8KClt\nYXxsVko1r1REROSCORwO4uPjPR+KTdP0zOOsroYCJCcnExYWxhNPPOE5N3b4f0HhVtwVZZRXlNGv\nXxxr1+ZgsajnpEg1f187Lrer1ra2IW1o4+/LkbJyDpYcJTykjZeik4akfwlboBPOpjGPWEREpCly\nOByYpun5PTU1lVmzZpGYmMhtt92Gy+UiNTWVadOmkZiYiMPhYPr06fTr1w+AefPm8ee/POO5ntWn\nNdtyFoPb6dmmYo9IXRaLUeeLGsMwiI2sGsJbsFNDeC9XqpS2QHarlYOHjxMW1MrboYiIiDSq6kQz\n4WSX29GjR5Odnc2bb77J3Xffzdq1a3n88ccZP348GRkZ9OrVi40bNwIQ0SmSxYsXExgUzLGjZQCM\nvWMyZa1i+eDLrcxMf4vfPXQrhVs3UnbkMAAWuz+uiqNQcRSAuLg4AHJzcxkwYAA5OaqWitRks9T9\nxiY2si3fbdpN/o4iBl0V5YWopKEpKW2BojqFkrtlHyMHRHs7FBERkQZTPcczJyeHlJQU0tLSPENq\nq5PN2NhY8vPzAViwYAEA14+4mYyMDABPQgqwZ9cOrDYfT0LabUA8dLqRlxZ9hdttUul0sr+4tFYM\nFosF98khpd/pAAAgAElEQVTHfn5+rF69GovFwoABA8jNzWXOnDnMmDGjIX8MIs1Kjca7HtXNjrbu\nKGrkaKSxKCltgew2C0fLNa9URESavzPN81yzZo1njifA/PnzPcknVCWbVqvVs81m98FZWQHAmjXf\nnPF+LmeF5/G+g6VU5u3BMAzcbje7v3wWZ9leAOx+raksP4rzRBkhoWH4+tjZu3cvgwYNIicnh5yc\nHCWkIvWwGnVHDsSebHZUsFNJ6eVK40VaqArNKxURkQZ2+tzM6sdZWVlkZWUBcP/99+N0OnE4HADM\nmjWLkSNHUr2OutvtJjU1FYfDUetc0zTJysryzPOs3vbYY4+RmJhISIcYYrv39sRSMyGt5nKdaqji\nrKzAsFVNazledvisr8s/IJjhCXdTWriCXn4/MnvaLVzTfq8nIR01/mfc+bOHPMcXHzrISy+9RFxc\nnKc6arFYlJCK1MNus+B21/6c2rlDMDabhT0HjnDseMUZzpTmTJXSFsrHbqXo8HHCNa9UREQagMPh\nIDExkaSkJBYvXkxycjJQ1QSoWr8BQ1mXs5I333qLihMnuOeee/j3v/8NwBVXXMH69esZMGAA69at\nq3P92yc9QGVlVVK5ePFiFi9ezKBrR7L6q49JvP0+Ajr35eGnXuLp391D0e6C84rZMAxqfhT2Dwji\nWGntBNXHx5djpSXs3Po9t098gPfenM/NI2/m9//nD7QL8adv3NXcN+E2/P186BUVhmmaDB48mISE\nBBISElQdFTmH4DY+HC2vJMDfx7PNZrUS1TGUrduLKNh1kD7dIrwYoTQEo/qbSG8zDMNcv73E22G0\nGJVONwcPHmbkwGhvhyIiIpch0zSZNm0a6enpngohQFTXXmzbWjVPs9+14/jhm2U4Kyuw2X3w8fHj\n2NEjnmsEBodwpKQYgMTb78PtdpP9wb/Pet/w7sNp3S2h3iG1p6s5ZLfm45ratWvP/v37ABg8eDBf\nf/21Zx7qrFmzGDRoEAkJCRf40xGRMzlQcoyVP+6l68mOu9X+uuATlq/YyG8mXc+YG670UnRyMSyG\nwRWRQZimWaeblYbvtlCaVyoiIg3JMAzmzp3Lw4886klIAbZt3UibqKEERA1j3VcfViWCFhvOyoqq\nhNTqh09AVRWkOiHt1Ocmdtv6s6miD22ihta5lz3gVNXkRKUTi8WgU7sgjqz955kTUpsdZ2UFYWFV\nc9VqJqRPPfUUffv2BWD//n3cd999LF26lJUrV5KVlUVeXh6pqanMnDlTCanIJRYS4Ed5Rd3PqJEd\nggHYsVdFrMuRhu+2YCecbkzT9DSHEBERuVRM02Tl+p1s2Fa3MYnNYqFtWACl26qeWy0GruoWtQa4\nTXet44+UlWMrPY7FMPDzsVN22vUqS/dw49hJ2GwWPlr8b67t35UgSyhf7d/mOSYqOoZthaeG8Tqd\nlZ4OvLNmzWLLli3cfffdWCwWEhMTmTFjBrNnz65TCa1+rCG4Ig3DZrVgoe5n08gOIQDs2FPc2CFJ\nI1BS2oL52G0Ul5YTGqh5pSIi8tNUd7/Nzs4mPj4e0zT556tvE9TpKp74/X+R990K7AERVJbuAaBj\nVHd2F3xFSQGMu+M+li15m4qKE/j4+GL39eNo6WGcZeUAtAkIpqy0hNJtKxh4ZRd8fKxk531ebxzh\nQX6kzv5fnokI5p//+BtZWVlcGRNea0kYh8PBmjVrGDhwIGvXriUlJYXs7Ox6q50Wi6VW914RaTxW\naz1JacTJpHSvktLLkeaUtmBHj1dgVlYwuE8nb4ciIiLN0OnNjG6b+ADHTzhxvP86Ae1iKd2fj09w\nJBUlO7hp3CRa+9lZsmiB5/ybbrqJ//znP/j5+VFeXs69997L66+/DkC37j14Z8kn3J10M3mbfqxz\n7+TkZEzT5Nlnn/Vsy8rK8iTIGlYr0nwt+WoLsV3a1trmcru5M/lfVDpdvDX3QVq38vVSdPJTnW1O\nqSqlLVgrPzt7D5ee+0AREZF63Dx6NPc88Av+Pf9FusT25P035wNVczxL9+cT0vkq/jD7bxzdt4k/\nPDIZfz872dmTPMu9JCYmcv/99/PSSy+xfPlyEhIS6N69O5999hnLly/HMAw2/vi9Zxgt4Dm3OulM\nTEwEquawVm9TQirSvNVXKbVaLHRqH0zhroPs3FtCz5j2XohMGooqpS1c4a4ixg7p6u0wRESkiXE4\nHKxevZoBAwbw5ptvMmHCBHJycgAI69iVRe+8w8DrEzhcdpwVn3/MDyuX1jp/4IjbePQPTzKkT2d6\nRIZ64yWISDP10ep8ItqH1ul78qd/fcTna7bw2OQbGTWsl5eik59KlVI5I6fTfe6DRESkRakellvT\na6+9Vue4T5ctBqBV+9519kVFBPOzm/tgs1obJkgRuWy1stuocLrwtddOVTSv9PKlJWFaOKeraVTK\nRUSk6YiPj+fRRx89r2PbhEVyfN8GImN6erbFxcXx7sJX+N1//zdNZUSWiDQfndoFcOjwsTrbPR14\nlZRedpSUtnBuE5wuVUtFROQUwzBIT08/Z2Lab/ANlB3cwZDho9hRsInk5GSSk5PJzc0lKSmJ9PR0\nsrOzGylqEblcRIQHUnLkeJ3tnavXKt2jKX+XGw3fbeFat/Jhf/FROoYHeDsUERFpYiqdrrPuv/6a\nvjz9xB9ISEjwLAkDVc2H1AVXRH4qH7uF+gZZdGoXjMUw2Fd0hIpKJz52pTKXC1VKW7j24QEU7NIQ\nCBEROcU0TX79m0f4x/N/P+txzz37LA6HA6jqeGsYhqcLbs1uuCIiF8JiGFjqyVLsdisd2gbiNk12\n7z/c+IFJg1FS2sL52q2UlTu9HYaIiDQhi97P4IV/nD0hrTZv3jwN0RWRS85mqbssDNSYV7pHRZXL\niWreLZxhGDjdakIhIiJV9hcfZX1RIBFDHuTYwe1c3X8gfkfzeORXUzxLwgwYMIC33nqLSZMmqSIq\nIg3CZq2/dhYZEcLX3xWq2dFlRkmpaFkYEREB4MeCIhb95wfeWLoa39DujLw5gelTbqR3TDgAY8eO\n9Rxb87GIyKV2hpyUyOpmR3vV7OhyoqRUtCyMiMhlzOFwYJqmZ56naZo4HA5ycnJISUnBMAyOn6hk\nTvp8tu8tYcVWE6fTzXUDunJttNOTkIqINCYfmxWX28R62jDezhq+e1lSUiq4MamodOFj1wLnIiKX\nE4fDQWJiIgDJycnMnTuXadOmMW/ePADWrFnDzD8+z4I332PeU48A0Hbg/SSMGYur8CN+nfoi0R1D\nNDxXRBpdQCs7x8orCfD3qbW9ek7prn0luNxurPV1RJJmR0mpEBzgz64DR4jpGOLtUERE5BKKj48n\nOTmZefPmMW/ePD7//HNyc3MBiO3em8WLF7P/qJ1NhXs950T6l+AsXMbCBf9i6tSpnmVeREQaU4ew\nNvy4/XCdpNS/lQ9hwa05WHKU/QdLiWgb5KUI5VJSUiq0DW3Ntr2HlZSKiFxmDMPgr3/9K6Zp8uyz\nz3oS0lFJ9zDy9l/y4l/TWLl8EQAxcTcT3SmcT5YuZO3nMHXqVObOnYth1N8BU0SkIYUF+VN6bB9Q\nN+mM7BDCwZKjbN9TrKT0MqF6t2C3WSmvOPsC6SIi0ry4TZPvtuxjyVdb2LT9UK19X+cW8PzCLzhQ\nXObZ1iumPT2jQhs7TBGRevn62DDP0PYkMkLzSi83qpQKgJaFERFphk5vYpSVlUVFhZP3sj5h1G0P\nsfdACemzHmNX3hoA7AERVJbuoXTbCmzluyjdt41Rt/yM8KBWvPn6S0DV3FPDMEhPTwdQtVREvMJq\nMTjTvzzVHXh3almYy4aSUgHUgVdEpLk5vYnRsOtGMPHu2z3738tYhtPlonz/Rs+2u6Yks6/gez5e\n8gbF+7YxdPgoPnjrFT7/9GNPUpqQkOBpbJSenl7ruYhIY7Ja609LPR14lZReNpSUClCVlJqmqW/D\nRVoAh8NBfHy85++7aZpkZ2fXSjxOPyYrKwvAkwSdfk718dnZ2Z7GONWPZ8+ezYABAzzXXr16NQMG\nDMBysmOiaZqsXbuWGTNmMGrUKBwOBzabDYfDwciRI7nmmmuYM2cOpmny5ptv0q1bN8+1BgwYQE5O\nDlu2bGHixImsXbuWlJQUz/3Nk2O/zhT3/fffz8svv4zVWtV93OVy8eCDDzJp0qSz/ozS0tKYPn26\n5zW43W6mTJnC/PnzMQwDh8PB6NGjmTNnTp141qxZw8CBA0lISMDhcLB69Wqgav5nSkoK2dnZrFmz\nxvMzSkhI8Nx/dHw8brdJpdNNp25xJN19P4vffpV58+bxXobD83Ox2P0p2/MDAMHhEZQU7WHMHffx\nwD130SvqV3yXcw/fnvxZGYZBYmIimZmZtX5Wc+fOVUIqIl5lOUOt9NTw3RJ9fr1MGOaZBms3MsMw\nzPXbtQiut2zI38fYIbG08tX3FCKXs+rqWnUTG4Bp06aRnp7O8y+9QY++Q1jxxSfM/O1DjLvrfn45\nNYUf167gD8kPAJCZmUlCQoLnnJrJ6rhbxvPhkgzunDQFl9vk/bfm06tPHBt/yD2v2Dp17sKundvx\n8fUl9f/9gz88OgXDsGCa7gt6jcNuuJl2HTrywVuverbN+su/GDD0Bv7519ksfns+qc+8xKcffcjH\nWe8TFBzCW1nf4DJh0phrOFJS9c170t0P8POp0zFNeDF9NkveeZUn//ISWzZ+z+sv/pXY7r15bkEG\nYPDgHTeyd/cOel95NT976FFmTnuQDh0j2bt7B0OHj6J9RKda8QBce8PNfPXZR7W2VZ9T04w/vci3\nX3/B0ncXMP1/XyTumusBg/AQfw6VHOVPs/6Hb/7zvuf46iG6Nf3m4Ud47tl5+uAmIs3Khyu2EBPZ\nts520zSZ9N+vUHbsBK/+cTJhwa29EJ1cKIthcEVkEKZp1vnPSBmIANA2tA0Fu0u4Qouki1zW4uPj\nmTp1qme+IJwconnbffQeOJzAgFYMG3EzCbfdy4fvvEpFpYvWfnbPsX97+U3+/spbfPjOq9xy1/2U\nt47F6TYZc8dkPnx3AdHderNo4SsARHTpzsYfcgltH82hfYVnjatTVHcem/0K/zPlJipOnGD6tP/C\nsFgw3ReWkPoHBLPiZKIXEdmNPTu2AJC9LJtly7L5Mvsdrou/C5/wHoya8BirvvyEwyXF3D56EAZw\ntLQE/zZBxA29mcVvz6eo5CgAXy17h2tH34VfeA/6XNudiOyl5Odt4KEJYwDYu3sH/gHBbFj/LUs/\nXEqHyG7s3bEF/zZBrPx8OQDtI7uyb8dWT6ynJ6TV16mpbadYlmQsYd2XGfQZOpbtZUHkL/uW4ycq\n2bL9AGVHT3Bw695a57QPC2DnaUmp3aZ1qEWk+bFY6v8izTAMIjuEsCF/Lzv2FispvQyoUioAuNwm\nB4pKGDkg2tuhiEgDM03TU+kESLz9ProPncDaDTvYW3QEp9ONaZoc2vAhpYUrAAjrdj0BbfwozK1K\npPrfcCuJEx/BbrOyt+gI23cf4hvHKxTlfV7rXgHRwwjpNZZDGz6kbNvKeuOxB0QQce0jWCwWnE4n\nO5c/BW7nyb0GcH7/T9VXIWwTNRQDg9JtKzzxhPYe56kYulwudv1nDu7KY0DVsNdON1UNy635+k8/\nz+12s+er5zz3swdE0GHYw5RsyvScc6Z4MKFse/0/izO9ntPvD1XvY3nBMvZt/BSAyJie7CjYBEB4\neDhFRUUAxMXFkZubqyVeRKTZyf46n84dw+rdN++1T1j21UZ+OeE6brnxqkaOTH4KVUrlnKwWg4pK\nLQsj0hKYpsmeg6eWAlm1rpAfj3/nSVZCg/xpHx5A4aFgNhRWHXOi0klF8VHPOXnb9nMw45tacy5P\nVDo5Xa+YDtzxs+FkvP4tK7bVH09rfx8G9OmCzWYF0817/zFwnSyQGobB+X55GtjGj4OltbdFdwwD\nA9ZvO/V82PVXeL59d7lcLPjCRnll1X4fu43E4VdgsVj46shKvj/5+mM6hXHt8D61ktJF6/woOnm/\noDZ+jBneh1VHv2HdyXOCA1tx4LR4YjqF4TZNfth+7tcTEuTP/pPn9+3RiTsm34ivjw27zYqP3crO\nvG+ZMfVTAG6d8AD33H0rd91xKwBFRUUkJSURFRXFvHnzSEpKUtMiEWl2bBYDt2liqefLtMiIqiWs\n1IH38qCkVDzUgVfk/J2+FIdpmjgcDgzD8DSwOVvjn+oGM3Cqic7ChQu5++67GTNmDNnZ2YwaNYr4\n+HhGjBhBSkoKU6ZM4eWXX2bOnDkMHDiwTuOfgQMHsnDhQiZMmMDbb7/NxIkTAXjmmWfIzs5m2bJl\nhHXpy+Mz/i/ZH7xO2x43UF5RSfHWLwgLbs2cP88lqlMYTpebOY//gQ1fZzLmjsnYrBYy3p4PwHXx\nd+F2m6z4aBE9otpx7S0/p11oGz7PeJFlhSuI7tabwi0bAIjt3pvVn7zHwZ0/kp+3kTMp2beN3Iw5\n/OXFRUwc3R+XsxK73QeXy4Xbff5flh3cU0BgcIhnTmhMt16sX/khALfcdT8AS955laiOoTyUnAKm\nm/uThlJ+7AiBwVVNM46UFLPwTw9yw83j+f6rJYy7634w4cNFrxIZEcqDj04H0+R3P7+Noj0FxHTv\nDUBB3gYW/vlBjpQUM/6u+1mf+w35eRvqxPP9ig/P+/Xs37mV2O696RN3DUveeZWwIH9+PjWF6upx\nxODreOe9xbT2s3v+HGZmZnoaR1U3WEpMTPT8WVRCKiLNid1mweVyY6lnCkL1sjDqwHt50PBd8dhc\nuJ/bru/u7TBEmrzTl+L4yzPP8Ntp03j22WcBePKpp3jyiSe4Zfx4lmRk8JuHH8XtdvOP5/9GXP9B\n5K5dzXUjRpP2lxfw97Pzt7+k8urLL3iuP378eDIyMrDb7VRWVpXwQkJCKC4uxt/fn2PHjl1wzH5+\nrSgvP84NtzzAZ0vmAxDYfSQDb5qAZc+nLM94g6eeeYmh141g07pVPPqLe0hOTuZPf/4Lby76gAfu\nuavqtf3lX/QfPJx/ps/mw3deJeVPL2K1GMz63c+54aZ4PvtPNsnJyQDMmzePIUOGsGrVqvOKMTY2\nlvz8fPz8/Fi0aBHjxo3DYrHgvsB5pTUrhNXqa9C0cOFCFixYQHh4OHv3Vs3L7NChg2fYa33NoLKy\nslizZg0zZ84kLi6OnJwcALp3705+fj5Dhw5l5syZjBkzxvN66osHTr3PNcXExFBQUFBrW2ZmJtnZ\n2Z77K7EUkZZi/dZ9FJebhAa2qrNv/8FSHkx5naAAP/795yleiE4u1NmG7150UmoYRgLwV8AK/Ms0\nzf89bf8IYDGQf3LTu6ZpptVzHSWlXvbj1r3ccUOPeodIiFwu0tLS6N+/P4mJiZ7K0po1a7BYLPUu\nJWIYhqfSmfFhJm2j+rJ8+TLWrPqcJe8sAKhVHRxz+33c9/D/sODvfyTr3QVEde3Ftq1VVcLqx9XH\nj7njPsAg890FjBw3iVWfZXG0tOrfQYvFWqdKWN+281Gd2Fl9WmPxDaSydA+tQjrx+F8XEt2pLeGB\nPpTv38i4sWM852hJmKa5JIwSUhFpSQ6UHOPrDfuI6RxaZ59pmtw97SWOl1fy2p/uJyTQ3wsRyoVo\nsKTUMAwrsAkYBewCVgOTTNPcUOOYEcBvTdMcf45rKSn1sk0F+7l5YBcC/H29HYrIJVf94f/xxx8H\n4Je//g1O/Hjp+Wc8x4wfn0RUVBdPxdOz/a77cbrdZL77GlcPuZFvV31C0s+fYuO6VWxaneU5LqTr\ndbTtMx63aeJ0uTj446lGOdWqG/8Ub1xap4mO2+1m58ezMZ3HL/nrt9j9Pc18Irp05//9631iI4K5\n5oqOZ+xuKCIi4k0VlS7e/3ILV3brUO/+3//pfTbk7yVt6i3E9e7cyNHJhWrIRkfXAFtM0ywEMAzj\nTSAJ2HDacfrE0wx0aBvIlp3FXN2j/r/4Is1V9XDbW+68j+iuvSjcupEXnv97rWPaBASTkbEYqN3F\ntFN0DzLeqVpf0icwgm9XfUJA9DC+3Wnj0P7aX6Q5nW5OVDpPzjGtPxZ/Xx86tQ/CvbMV1T1wWrfy\nJSy4NSdOVFade+leuofNZqXiZDOfoNa+TLipl6c6KCIi0hTZbBbONoAvunMoG/L3UrDroJLSZs5y\nked3Amouqrbz5LaaTGCYYRjrDMPINAzjiou8pzSQAH9fDh6+8LlqIk3dqFE3M2LMBJYseg2Xfycs\n9tpDfOwBEZSVnkowdxRsok3UUAKihrGrcLNne8WRPXS+ciSTfvF7OlTkeJY4ieraC4DSbSu4qs1m\n5qXcRVxgHqWFK4g+2QgHqob57tv0KXu++hs713/M2DsmM/aOyezd8Antjn/DtuVpp5YmsdRNGOvb\ndj4sFisVx0sJDQ0jLi6OjRvWM3DgwAueqykiItKYLIaB9SxZafTJ5WK27TrYWCFJA7nYpPR8vtBf\nC0SaptkPeBb44CLvKQ3EYjGoUAdeaebS0tJqJVuVlU7G3/NrDrYeTED0MHZ8/7En8avm51t30Ehr\nPx9CgurOT+nXsxMRvgf55j/vAXDnpCl89J8vePAXvwLgw3fm81nGKyx+6xUSx4yjMG8DjzzyKI8+\n+iiFWzYwZMgQCrdsICkpiSXvzGfJO/OZOnUqjg/+TdmRqsR4/PjxuN0u7Ha7574hISG43S78/S98\nzkz1eYcOHWT27NmedSvnzJlzwdcSERFpTGebYhLduSopLVBS2uxd7PDdXUBkjeeRVFVLPUzTLK3x\nOMswjL8bhhFqmuah0y/2t2ee9jweNPQ6rhl6/UWGJxfKpaRUmrG0tDRmzpzJu+++S05ODi6Xm5ju\nV7BrWx6B3UcSGuhPzWUjA4KCKT1cQmnRDgKCQig9XNVWvktsT7Zv+gyAmG69KTjZxOiqvv1Y+u4C\nunUOITMzE8CzFMe/Xvg7d9423rMkzKgR19Vp/DNmzJh6l4SZO3cuCQkJDb4kzEcffeRZp3LOnDnM\nmDGjwd8TERGRi3G2BpxRHasaIO3YU4zL7cZqudh6m1xq36z8gtUrvwTwfO6pz8U2OrJR1ehoJLAb\n+Ia6jY7aA/tN0zQNw7gGeNs0zeh6rqVGR01AXuF+btWyMNJMud1uBgwYQG5uLnFxcRwoOcquwjxs\nbTrQMfZKtn+3vNbxt9xyC0uWLPE8H5+URJfILjz3XO1GRzWXOElKSmLx4sVamkNERKQRfLhiCzGR\nbc+4f8r01zhwqIx/PDmRzh1CGjEyuVAN1ujINE2nYRiPANlULQnzkmmaGwzD+OXJ/S8AdwK/NgzD\nCRwDJl7MPaVhudyqlErzZbFYyMnJ8SSmUDVf9MrhE/h26V+ZOnUqYWFh9O/fn2XLljFv3jyeeuop\nz7nVS3eMHTum3iVhEhMTPdVPJaQiIiINz3qODvHRncI4cKiMwl2HlJQ2Yxe9Tumlokpp07Bh6z5u\nH95dS0RIs+V2u+ne60ry86oGbASER/LGB8uxleafdd1JERERaXqyv86n88mGRvV59YNVvOP4lolj\nBnDv+GsaMTK5UA25JIxcZgyLwfEKJ6397Oc+WKSJcbvdXNU3jvy8DdgDIvD1sVFatIOZj0wgJyen\n1lyG6rmfIiIi0nTZ7RZcbvOMFdPoTlUJa6GaHTVrmg0stQQHtGJPUem5DxRpglLT0vjxh++xB0TQ\nY/TvePGNTHWaFRERacb8bFYqna4z7j+VlNbpoSrNiJJSqSU4qBV7i8q8HYbIT+IXdSNBPUYRce0j\n3HvLICaOvpKcnBxSU1PVaVZERKQZahfiz5Gy8jPu79Q+CJvVwt6iIxwrr2jEyORSUlIqtfjYrByv\ndHo7DJELlrUyj9c/XENIt5HcPLQ3/33PtUBVAyMlpCIiIs1T29A2HD5y/Iz7bVYrkRFVDY6271a1\ntLnSnFKpxWIYuM48QkKkwTgcDlavXk1KSgoWiwXTNElNTcUwDGbOnAlAVlYWa9asASAlJYXs7Gzc\nbjdrN+9l/htLcLUdTKhlP0/88tfYbfrOTUREpLlr7Wen8hwfTqM7hVGw8yCFuw7RK7ZDI0Uml5KS\nUqnD6XZ7OwRpIRwOh2eJlcTERADmz5/P5s2buf3228nIyPAcO3DgQMaMGeN5Pn/+fPLz82tdzz80\nl22HtvHDt/FEqomRiIhIs2e1GBica1mYUEDNjpozlRKkDq1V2nw5HA6ysrI8a2xmZWWRmZmJw+Hw\nPM/KysLhcDBy5EgqKytJS0tj1qxZZGRkcPXVV+N2u8nMzCQtLQ3TNHE4HDgcDlJTU8nMzMQ0TUzT\nJDMzk9TUVM9+0zRJS0vD7XZ77lN9TM191bGkpqaSmJjItGnTGD16NI888ggA+fn5BAaF1EpIv9tY\nwBtvv1/rtZ6ekFp8/Dl2aBtTp071rCsqIiIizZthGBjnsVYpKCltzlQplTqUlDZt1dVFwzBwOByM\nHj2aZcuWAXiqjcnJycTHxzN27FjPebNmzeLxxx+vdS0/Pz/cp1XGAwMDOXr0KACZmZmsXLmy1v7k\n5GTcbjfPPfdcre1Dhgxh1apVvPLKK3USxjfeeIONGzd69tWMJT09nfzdJazLWeU5/tjRqg7QHSK7\n0fPKASx64xUARoydiAF8svTNOj8Xd8UxkpOTmTt3bq2lX0RERKR5s53j//WaHXhN09TngGZISanU\n4XKjv9BNlMPhIDEx0VMNHDNmjGfJk6VLl9Kv3/9n787j47zqe49/z/PMon23JNuSdztxVichIU4I\nGEhiJYGkgQRIS0OBUm5bipu+bm9LgFt6CdBeSl2lFEoLlBRKgZJAkhJvgZsQSMjiJCaLTex4k2xL\ntvZdmuXcP2Yky9ZImlUjzXzer5exZuZ5znPCM5L1nXPO71ysPXv26N5779XDj+ycOG/FmvV66sX9\nE48blq9V65H9UwKppIlAWlZRqaeeekrvuO1OWWv1k/u/LUm69957zzi+6db3yxijbQ98W6XllVMC\nqcy9CrQAACAASURBVCTt27dPZRWR11atXa9f7Tndl8XL1ujh/7ov8sAtkEKnK+x1dA9o8NWWicfP\nvXxEmuEzE96zAADkHsed+fWq8iKVFvvVPziqzp5B1VSWzE3HkDaEUkxhZRUIhuXzzvITABPTViWp\nKbqGcXx6qjFGYWt1+ca36JlfPqYbb7xh4rWmpibt2LFjYj1l0zTrH++55x7dfffdcpzITPvrrrtO\njY2Nam5ulrVWF150sV588UVVVtfoK//2fe3Zs0eLl63RiaMHdOjAPklSUVWDDh/Yq8MH9qpi5dUK\nW6vWw0/O+t/W19Ot1ZdulmfZtZKk5Red0JFfP3rGMVVrrtHB0EUaDQRVuuIq9c/Qbl9Pt2qXrtbB\n/Xt1cP9ela28SuGQ1Ymjk0Zio4G0qKRcQwO9Cg60qX+gTasuuV7BUEhHf/3TaduvqalRc3OzJDFa\nCgBADnFm+TfdGKMVS6v10mvHdfhYJ6F0ASKUYoriQr+6+4dVV5U/39CTp8RKkfWOl1122UQV2Ouv\nv15f+MIX9MlPflLbt2+fOG58uqw0/bTWy656m3Y/+TNdcc21euaJSKi7+eab9dBDD+mWW27Rgw8+\nqG3btk0Jpvfcc48+/elP6/7779dzzz2n4bGQVixrUGfHKfn9BRMjlh6vT92dHfrJD/9dpcs3qt9K\n0oGJdgKB0xXrguHwrMUCJjvZ1a8X9rZKkjp6pu5fGwiENBrdQsh1Zl+i3t03NPF1KBSW7W+dckxZ\neaW+t+1X+uv/9Ud6+heREHrlpeu1+twL9dk/Px1K65Y0qv346VHUjo4Obdy4Uc3NzWpqapo26AMA\ngIVlliWlkjQplHbpDRcsz3ynkFaEUkxRXVGs1pN9eRNKJ0+J3bp1q+65554pay8rq6rV3dWpH/zw\nR3ppz/OSIustP/7xj0+Ew7OntZ5z+Q3q6h3S7id/psKKpROBVJIeeughrVq7Xg8++KA+9JH/obdf\ne51GAyF19Q2rrXNAfYMjuuzaO7Tq37+rF198UWvOvVDhsFVnxyk5Hq9GR09PcQ0GTm8UPdJ1SIH+\nNklSXcMqtbceVKD/hBpXrtO6C96gnz78XUnS0uVrdOzI6eAaS3FphfoPP6k3nL9M1lodOfqrKcf0\nH3lSV25YKdd1tP3gL1RaXqn+3u6Y7RWVlGuo/4TqG9fo3AvfoMceiawLXbl2vS57w5X64X/+m+rq\n6tTe3i7Te1BP/XzXlC1hNp6/ZMqWMOMj1c8///zEcwRSAAByh8c1sy4towLvwkYoxRRFBV6d6hjM\ndjfmzObNm7Vly5aJqZ+T11mWlFZooL9H3V2d8vr8E4H0xnfdqdGS1br2PR/T/tZubXvg22e0Wbr8\nKo3UXKOiGqk8GFTvwV9Oue7B/Xv1vg/8gW77yF/qR784ICOj4kKfKsqLVFFZrgpZ/c3X7tfH7nyn\nDh/YK0nylNSroGqlBo6eWXyovmG1Fi1u0EvPPi5Jeuftd+qKjW/Rp//sw5KklkOv6UMf+B399OHI\n8eOB1HGcKetKi4qKNDQ0pMH+Hl204bIpRYU+9JH/IcdIX/+Xf5Yk7XrwPySdLnS0cuUqHTp05rrS\nxuWr1HLkoOqXNKqt5YDec/tteuyRyGtf/oe/i1ThrS1Tc3OzPvvZz06EyrM/HLjhhhvOGJ2e/PX4\ndjEEUgAAcovXdRQKW3ncmUIpFXgXMkIppnAdo2Awf/YqNcZo69atkjQRTN/xrvfr0Z/+TAO9xyeO\nC4yNSooEzq6SK3T/zj1aUluml187PqXNxsWV+sBvv1l11WX6/tf3aluMUCpJu57cq4KVz+mKi1bI\nWquXO/t1MvrnwJFT6ukfUnfv6SmvXiekgaNPqbi0QoP9PZIkn8+vttbX9bf/9290//fK9dBDD+kP\nP/g+3XDDDbrs3MWy1spxHDU1NemNV1w+8d/8xS9+Udu3b9ff/u3fKhwOa8OGDfqrv/or7d69W9u3\nbz9j5FGSnn32WV122WUTQfDWW96p3bt36/LLI21u3rxZn/vc53T33XdPnGOt1e7du/WpT31q4rWd\nO3dGptde+2ZJp4Pl1q1bmXYLAACmKCn0aXg0qNIi37THLFtcJWOk1rYeBYIheT3URllIzPjUt2wz\nxtiXj/ZkuxuIOtzaoZs2rs52N+aMtVZ33XXXRChdev7bdPLoXgX6T0w5tnzl1ao4N7LVSuerD2vg\nyFNTjpGkW97zAVWUFOi+b35N56y/QL/Z+/IZrxdVNWioq1WlK65S1fp3TJmSEg6H1fH0VzXU3arG\nlefIcYyOvL5PHo9XwWBAF1+8Qf39fZGKtqtWaf/+/TLGMH0VAADklJb2Xr3a0quGuvIZj/vIp/9D\nJ0716cuffs/EyCnmD8cYnddYLmvtlCHv2SuTIC+F82iv0smBdMuWLbr6unfr2Cs/U6D/hEpKKyaO\n8/n8kqTeQ7/UOt8ruv6igjMC6Ttuu1N3fvAjE48f/MF9uu+bX9Mtt9yi3+x9WTfffPPEa5df/TYN\ndbXqyjdfp/7DT2ppUbeuvnSVbr32Yn30vW/Sp//oBr11RZeGulu1YvV6fe0/HtZLe15UfX29gsGA\n6uvr9fzzu7V//35t2LBBBw8e1Oc//3kZYwikAAAgp9RUFKt/cGTW41Y2RILogSOnMt0lpBnTdxFT\nKH9m72rHjh0TgfQT//seXbrpvROvDUSnyNbU1Kijo2Ni3eSuB/9D97z17fqrv/u6ivwerV9Ro3fc\nFFnT+L7bb5V0es/M8W1fNm/efMaWMP/5Xz9WyeLz9fRTP9d7bn+3HMeou39YJzsHJGt1yx1/oGK/\nq+YvfV4eNzIF5dixY7r++uu1c+fOiW1idu/erc9//vP61Kc+NTf/hwEAAMwhv9dVPJM7169erCdf\nOKSXD5zQtVedm/mOIW2YvouY9r3erndvWpftbsyZ8S1h7vr7bXrwZ7/WaMsT2vq/f1/lJYXTbgmT\nrhHJweEx/eLXLXJdR/WVRVrVUK1Cn8s+mwAAAFE/fOw1rV9dN+MxB46c0p9+4YeqrynT1+/5nTnq\nGeI10/RdRkoRU0hSKGzlxrMxVA5oamrSs3uPaecvI1Vu/+x/fULvve1NZxwzPhI5ueJrOhQX+rT5\njfmzfhcAACBR7gyVd8etbKxWUYFPbR196ugeUE1lfmxvmAtYU4qYPI7R4MjY7AfmCGut/v47v9Dw\naEBrli3Sn75vY7a7BAAAgCgnjhlkruPovDX1kqSX90/dHQHzF6EUMVVVFOvYqf5sd2PO7Hj6gJ7e\nc0hG0kdvv1IeyogDAADMG26cqeWCtUskSS/vn7qDAuYvQiliqigt0MmuwWx3Y8589ftPylrpjRev\n1Lvfel62uwMAAIBJnDiXlF2wdrEkxdxHHvMXoRQxeVxHY8FQtrsxJ9o7+vXS/hNyjNGW376aAkMA\nAADzjOvEF1vWLF+kAr9Hre096u4dynCvkC6EUsRkjFEgND8qM2faV+9/WtZK566q05UXNGS7OwAA\nADiLxzUKh2f/3dTjulq/KrKu9JUDTOFdKAilmFY83/i54GfPHJAkvftt52e5JwAAAIjF5zoKhsNx\nHTu+rvQlpvAuGIRSTCuUByOlL7/eppa2HhX4PfrtGzZkuzsAAACIobKsQAND8e0MccG68WJHhNKF\nglCKaQXzYKT0n3/4jCTpsvMaVeD3Zrk3AAAAiKW+qkS9fcNxHbtuea18XldHjnepdyC+c5BdhFJM\ny1qrsM3dYBoOW/3ihYOSpA++87Is9wYAAADTKSv2a3g0vpFSr9fVOSvrJEmvsDXMgkAoxbSsjILB\n+ObuL0SPPr1fvf0jqior0lsvX53t7gAAAGAaHo8jKf4dEsbXlRJKFwZCKaZVUuTXye7c3av0Ww8/\nL0m6+tKVce99BQAAgLnnGKNEfl27kHWlCwqhFNOqqSzWsZN92e5GRgyPBPT8qy2SpD++/cos9wYA\nAACzSWQQ4ZyVdfK4jg62dmhgaDSDvUI6EEoxrQKfRwMjwWx3IyP+c8eLGg2EtHxJlc5ZsSjb3QEA\nAMAsEhkp9fs8WreiVtZKr7Jf6bxHKMW0HMcoGMrNNaU/2PWyJKnpqnVZ7gkAAADi4UlwudX4ulKm\n8M5/hFLMKBe3hfnlr1v02qF2Ocbo92+9PNvdAQAAQBxMoqE0uq70+VdbZXN4R4lcQCjFjEKh3PoG\nDoXC+uJ9j8tKuvCcJaqpKM52lwAAABAH15iEwuUFaxerrLhAh4916rXDJzPYM6SKUIoZhXLsU6Uv\n/+BX2rOvVV6Po7s/9NZsdwcAAABx8nkcJTKJz+f16NqrzpUkbfv5KxnqFdKBUIoZLdSR0u3bt2vb\ntm0Tn6bdeeed+ua3v6d//Nq3JUlvvWKt/un/fjKbXQQAAEAC/F5XgWAooXNuePN5kqSfP3dA/YMj\nmegW0sCT7Q5gfgtbq2AoLI+7cD6/2L59u2644QZJ0sc//nF1dXXpO9/5jr797UggXbvpo7p/65fU\n2dkhSbrvvvuy1lcAAADEp7aySC2dIyqoLon7nMWLynXpeY16/tUWPfrUb3TrtRdnsIdI1sJJGsgK\nn9fVwNBYxtrfvn37xGjm9u3bFQ6Hdc8992jbtm165JFH9NnPflaPPPLIGV9v27ZN99xzz8Sx1lpZ\nayees9bq4x//uCTp3nvv1Z49e05f0PHoxPPfV2dnh2pqavTNb34zY/9tAAAASJ/aqhL19g8nfN6N\nbz5fUmQKbzgHi3jmAkZKMaOqimIdP9WnitKCtLc9PqK5ZcsWbd68WTfeeKNWrVqlgwcPxnV+873/\nqI5TJ/XfOx+XZPX0Ez/VP331X9R2vEX/50tf18o15+rQgX166aWXIic4Hikc1EBfj2pqatTW1ibX\nddP+3wUAAID0KyrwJrVd4eUXLteiyhIdP9mrPftadcl5jRnoHVLBSClmVFbs16nexD+RisfmzZu1\nZcsWNTc3a/v27dqwYYMOHjyo8orKWc8tLatUx6mTKiwu09NPPKqnn/ipCorK1Ha8RbVLV+mBHz2k\nQwf2nXFOYkXEAQAAMJ8ku5zMdR1tviaytvQRCh7NS4yUYkYe19FYggvK42WM0datWyVJzc3NkqRl\nq87V0YP7ZjpNktTf1y1v6WIN95+YeG5kqE/e0sU6eeygTh47PdrqFNUqPHRSNhxUQUGBSkpK1NHR\nofr6ekZLAQAAFhDHTW6YYfPV6/Wf//2cnv71YXV0D6imMv51qcg8RkoxI2OMgnNYgfdkV3/cxxb4\npn6mUn3WvqNv2ny7Lrn00onHIyMj+ta3vqWamhp1dHToQx/6UPKdBQAAwJxyk5z7VllepI0bVioc\nttrxi1fT3CukilCKWYUytCDcWqu77rpLzc3N+p07Pyxv6WKN9ByTx18867mlZZXq72xR2aSpvuUV\nlWprOaBVa9frymuulSTVVhbry1/5F73nvXfo4Ycf1rZt23TTTTepra1Nd955J5V3AQAAFhAnhQlu\nN74lUvBoxy/2KhjKzExAJIfpu5hVEuvJ47Jjxw41Nzdry5YtGitoVKD/Gyour9Vg78lZz+3v656Y\nfnvLLbfIWquHHnooUihp/159uflL2nHp+WpubtZHPvBeff973z3jfNd1CaQAAAALjGuSrxJy4bol\naqivUGtbj36440W978bL0tgzpIJQilmFbGZGSpuamrRt2zZt3rxZ7/2L76r28t/TX275kAYPPa7L\nLrtM1lrt3r1bl10W+YEx/rUxRrt379bdd9+tz3/+8/rkJz8pSfrc5z6nu+++Wzt37lRTU9MZfwAA\nALDwpZBJZYzRh999lf7PVx7Rdx56RsuXVGnjhpXp6xySZmyGAkeijDH25aM92e4GYnj19Xbd9pa1\nMqn8FJjFhvf+g3oHRrTzq7+vtctqMnYdAAAALFy7nj2oxXVVKf1e+sMdL+hbP/qVCvweffHP36WV\nDdVp7CGm4xij8xrLZa2dcvNYU4o42IytK5Wk46f61DswokK/V6v5oQAAAIBpeF0n5d9L3339Bm26\nYq1GRoP67Fe2qbc/M9sfIn6EUszK7/WoZ2A0Y+0//vwhSdLqZdVyHHYTBQAAQGwlhT4NjwZTasMY\noz95/yatXV6rk139+sK/7FAgQ1sgIj4ph1JjTJMxZp8xZr8x5i+mOebe6Ot7jDGXpHpNzK3KimKd\nONWXsfZ/9szrkqSNFy7L2DUAAACw8NVVFaunL/WRTb/Po0/9YZOqyov18v4Tuuer23TkeFcaeohk\npBRKjTGupC9LapJ0nqQ7jDHrzzrmRklrrLVrJf2BpK+mck3MvdIinzrT8M0/2fbt2zW+nvm1wydl\nrZV/uCWt1wAAAEBuqako1sDQSFraqq4o1qf+sEmFfq92v9Kij332+/riNx7VsXbq3My1VEdKr5B0\nwFp72FobkPQ9SbecdczNku6TJGvt05IqjDF1KV4Xc8jjOgqG0remdPv27brhhht01113aXB4VEfb\nutW997/1P//k97R9+/a0XQcAAAC5xed1lc46retW1Oqf//oO3fSWC+Q6jh5/dr/+8K+/py9+41Ft\n+/kr2newTSOjgfRdEDGluiXMUkmTh7daJb0xjmMaJLWf3diDP92TwKXjX3uYSHGuTFWYTaRdx0ge\njyvXdeRxHXk9rkqK/CorKVB5SaFKS/zyuCnsHJwgY4zG0rhZ6ebNm7VlyxY1NzfryIkedb66X/2H\nn9SWLVu0efPmtF0HAAAAucV1TAIpID7VFcX6wzuu0bs3b9D3H9mtXU/u0+PP7tfjz+6XFMkSixeV\nq7qiWMWFPhUW+FRc6FOB3yvHGDmOkYn+fcZjY2Qy0N+FaqY8lGoojfdzirN7EPO8f/2vJ1PrTR6p\nqynVxec06JL1Dbro3KUqLynM6PXCaay+a4zR1q1bJUnNzc2SpPPeeKO2bt2a0W1nAAAAsPC5GSrV\nWltVqj95/ybdvvlSPfniQR1q7dSh1k61nOjW8ZO9On6yNzMXRsqh9JikxkmPGxUZCZ3pmIboc1PU\nBn59+qDVF6phzUUxL5qprVUT2bM1sT4k1uFQ2CoUCisYCisUCmssENLA0Ij6BqJ/BkfU3tGvnR17\ntfOXe2WMtGbZIn3wXRt10TlLE7pW/H3KSLMTGurKM3sBAAAA5ATHyewGIvWLyvSu6zZMPA4EQzrW\n3qPe/mENDo9paHhMQyNjGhkLKhy2stYqHA4rbKVwOCwb/TtsJZvBbRUXgtYDv1br6y9NPD48zXEm\nkSA25WRjPJJ+I+ntko5LekbSHdbavZOOuVHSx6y1NxpjrpT0D9baK2O0ZV8+yqLieITCYR1q6dSL\n+1r1wt4WvXqgTYFgSI4x+t1brtC7r78k7Vur/OZQu9715nVpactaq7vuukvNzc2qWn2NAqHQxPRd\nRksBAAAwk/9+8oBWNi7KdjeQIMcYnddYLmvtlF/2UxoptdYGjTEfk7RDkivpG9bavcaYj0Zf/5q1\n9hFjzI3GmAOSBiV9MJVrQnIdR2uWL9Ka5Yt02+ZLNDoW1A+27db3tz2v+378tPYdbNddv/c2lRT5\n03bNYDgSJtMRGHfs2KHm5mbd8bsf1pMdq1Va7Nfbbn6Dmpub1dTUpKampjT0GAAAALmIfe1zT0oj\npenESGnqnn3piP7u3x7V4NCYFi8q0yc+ulmrGmrS0vbe19t0y5vWyutJz3SJ7du36+mjXn3rwWe1\n4ZyleuBL79eOHTsIpAAAAJjRjqcPqmFJdba7gQTNNFKa2QnZmFOXX7hczXffrtWNNTpxqk+f+oeH\nNTg8mpa2fT6vegfT05YkNTU16TdHOiRJ562qlTGGQAoAAIBZeVxH4XkysIb0IJTmmPqaMn3xf92q\n81bXq29gRA/sSmSbnenVVBarNc0Vxw62RELpdRvXprVdAAAA5C6faxTKdBVOzClCaQ7yeT364Ls3\nSpJ+/OgedfcOpdxmSZFf3X0jKbczrrNnUO2d/XJdoysvaJz9BAAAAEBSZVmB+ofGst0NpBGhNEet\nX1WvKy9eodGxoL73yO6U23OMNBZM3ydSjz13SJLUWF+pAr83be0CAAAgt9VVl6q3bzjb3UAaEUpz\n2O/e8kY5xmj7E6+q7VRfSm0ZYxRK49z9J148LEla3ZieQkwAAADID+XFfg2PMlKaSwilOWz5kiq9\n7cp1CoXD+s7Dz6TcXjiNm/8eOtYlKVLkCAAAAIiXx+OIMke5hVCa4377HZfL43H0+LP7dbC1I6W2\nQqH0fft3Rde5XnlBQ9raBAAAQO5zjJFr2Ks0lxBKc1xtdaluevMFslb69x8/nVJb6Zy+2zMQWQew\ncmlV2toEAABAfnAcQmkuIZTmgffccKkK/V499/JRvXrgRNLthMKSTUMwHQsENTA4KiNpUWVJyu0B\nAAAgv5BJcwuhNA+Ulxbqpk0XSJKe2P160u1YWQXSUIH3aFtkv9OyYr88Lm9BAAAAJMYlleYUEkGe\nuOLC5ZKkF/e2Jt1GcaFf3f2pl99+Yd9xSVJFeVHKbQEAACD/MH03txBK88S6lbUq9HvV0tatzp7B\npNqoKi/SsVP9Kffl9WPdkqRqQikAAACSQKGj3EIozRMe19UF65ZIkvbsS260tLjQp96B0ZT70tEb\nCcW1VawnBQAAQOI8rpPW7QqRXYTSPHLxOUslSS8mGUpdx2gsDWtKu3si28EsW1yRclsAAADIP4U+\nV2PBULa7gTQhlOaRDesje4Lu2Xcs6Sq66dgWpiu6LnXlYraDAQAAQOJqK4vUNzCS7W4gTQileWT5\nkipVlBaqs2dQre09SbURCqUWSkNhq96+SChtqCtPqS0AAADkp0VVJepNQwFOzA+E0jxijNHF50am\n8O7ZdyypNlKdu9/dP6K+wcgPkMWLSlNqCwAAAPmpuMCrANN3cwahNM9cfG5kCm+yW8MEU5y9u/9o\nh3r7I1Mt6qsJpQAAAEic6xgZKvDmDEJpntkQDaUvvXZMoXDiRYvC4bDCKawrPd45oGAorAK/R8WF\nvqTbAQAAQP4yxsghlOYMQmmeqa0u1eJFZRocHtOBI6cSPt/KKJhCBd7OaOXditLCpNsAAAAAXIdQ\nmisIpXlofArvnt8kvq60pMivjt6hpK/d0RPZo7SitCjpNgAAAACXTJozCKV5aEMK60qryot0/FR/\n0tfu7o0UOaosZ6QUAAAAyTMkmZzBrcxDF56zRMZIe19v0+hYMKFziwq86hsaS+q6Y4GQevojo6xV\nZYyUAgAAIHkuqTRncCfzUHlJoVY11CgQDGnv620Jnes6RoEk15Qebe/VSDQEVzFSCgAAgBS4rmRT\nKMCJ+YNQmqcmtobZl/gU3mCS3/wt7X0aHBqVJNVXsR0MAAAAkudxHIXChNJcQCjNUxefu1SStCeZ\nUJrkSOloIKTuvsj03bXLqpNqAwAAAJAiM+8GklxWhvmFUJqnzl+zWMZIB1s6FQyFEjo3GEruE6lA\nyKqjO1J995zlNUm1AQAAAEjSsrpydXQNZLsbSANCaZ4q8HtVV12mUDisEyf7Ejo3bKVgKPHR0qHR\noAaGRuU6RvU1ZQmfDwAAAIwrLfJpNJhY0U7MT4TSPNa4uFKSdPREV0LnlRT51daZ2LYwYWvVFZ26\nW1ZSKK+Htx4AAACS53EdOWKz0lxAMshjjfUVkqSWtp6EzqurKdHB470JnTM4PKaBgRFJUnlpoYzh\nBwgAAABS47r8TpkLCKV5rHFxlSSpJcGRUp/H1fBoYlMl9rd0yUZ/ZlSUFiR0LgAAABCL6xBKcwGh\nNI8lO1JqjFEgwTWlHb3DGhqObAdTUVqU0LkAAABALB5CaU4glOax8TWlrW3dCoUTC5mJVuAdDYTV\n1RNZU1pZVpjQuQAAAEAsjJTmBkJpHisu9KuqvFhjgZBOdSZWTjsYsrI2/mAaCFl19kS2g6mqYKQU\nAAAAqfN4HIXCyW1XiPmDUJrnliVZgVfGaCjOdaXhsFUwHFZnTyT4VjJ9FwAAAGlQUezT0MhYtruB\nFBFK89z4FN6Wtu6EzqutLtGhY/EF2bbOfpUU+idGShdVFSfWSQAAACCGxtpydXQPZbsbSBGhNM9N\nhNITiYXSytJCtXcPx3Xsay1dqq0uUVdv5AfGkuqSxDoJAAAAxFBRWqDhkdFsdwMp8mS7A8iuxvrk\nRkodx2g0GIrr2MHRkJzhMYXDViVFftXXlCbcTwAAAOBsXo8jI4odLXSMlOa502tKuxMqXCRJwWB8\nFXsDwfDE1N3y0gLVMn0XAAAAaWCMkeMSShc6QmmeKy8tVFlxgYZHAhPBMV6BOCqdWWsVnFR5t6yk\nUEV+b1J9BQAAAM7mGkLpQkcoRdLrSsNhzVqCe2A4IMdxTo+UlhSwnxQAAADSxuNmuwdIFaEUSVfg\n9fs86uqbudjR3sOntLSuXB3dke1gKkqLZPg0CwAAAGnCgMfCRyjFRLGjowmOlC5eVKb9LTNvC9Pd\nP6riQu/ESGlFWWFynQQAAABi8LquwnEsK8P8RSjFxEhpa4IjpYV+jwaGZ96seCwYljFmIpRWEkoB\nAACQRsUFHo2MBbPdDaSAUIozKvAmwhijQGjmT6XGohV6uyZCaVESPQQAAABia6wrS7hgJ+YXQilU\nXVGswgKv+gZG1Ns/8xrRs820LUwgGFIobGWtVUdPZE1pVTkjpQAAAEifRRXF6h8czXY3kAJCKWSM\nUUNdcsWOgjOMlB460aOaymINjYxpZDSoAr9HxQW+lPoKAAAATObxOKKO5sJGKIWk01N4E94WRlaj\nY6GYrx1t69OiyhJ19QxJkqrKi+WlZjcAAADSyDGGCrwLHKEUkk4XO0p0XWl1RbGOtvfEfG00FJbj\nGHX1nq686/fylgMAAEB6OQyVLmhJJwRjTJUxZpcx5jVjzE5jTMU0xx02xvzaGPOCMeaZ5LuKTEq2\nAm91RbFaT/bHfC0QiKw37e6LjJSWFPpVXUGhIwAAAKSXy7jHgpbK7ftLSbustesk/TT6OBYrlNmS\n6AAAHrlJREFUaZO19hJr7RUpXA8ZlOxepR7X0Uhg6vTdsLUTlXm7+yLFkwr8XtVWFqfYUwAAAOBM\nTN9d2FIJpTdLui/69X2SfmuGY3mXzHN1NaXyelx19gxqaJa9R88Wq9hRV9+I/D6PJKk7On23uMin\nsiJ/6p0FAAAAJvG5jsJ25q0KMX+lEkrrrLXt0a/bJdVNc5yV9Kgx5jljzEdSuB4yyHUcLa2LzMBO\nvALv1G1h9h4+pYa6ckmnR0pLigvkunw+AQAAgPQq8Hk0FoxdfBPz34yhNLpm9KUYf26efJy11ioS\nPmO52lp7iaQbJP2xMeaa9HQd6ZZsBd5g2CocPvP2DwwHJo2URtaUVpQUsQgdAAAAabdkUcnE75xY\neDwzvWitvW6614wx7caYemttmzFmsaST07RxIvr3KWPMjyRdIemJWMf+099/YeLryze+SVdsJL/O\npSW1kZHNEx19iZ23qFwPPLFffo9Rod+j81cuUiB4evS0qy8yfbe8tCB9nQUAAACi6qpK9Pz+Di2u\nKct2VzDJM089oWef+oUkycwwODVjKJ3FQ5I+IOlvo3//+OwDjDFFklxrbb8xpljS9ZL+eroG//jP\nPpFCd5Cquug3cdupxEJpRVmhKsoKJUWm8u5+7ZR8Bb6J13t6I9N3KwilAAAAyIACn0dhO3VJGbLr\nio3XTAw0OsboK1v/JuZxqYTSv5H0A2PMhyUdlvQeSTLGLJH0r9bamyTVS3ogmoo9kv7DWrszhWsi\ng+qjobS9M7FQOpnHdbSyoWricSAYUt/giBzHqKyYUAoAAID0cxwjx2FfmIUq6VBqre2SdG2M549L\nuin69UFJG5LuHeZUXU2pJKm9I/a+o8no6RsfJS2ShyJHAAAAyBAPtUsWLD5OwITqimJ5XEfdfUMa\nGQukpc3uvsiC88ryQj69AgAAQMa4brZ7gGSREjDBdRwtqoqMlp5M02jpRChlpBQAAAAZ5DIAsmBx\n53CG+vEpvJ1pCqXR0tzlZYXyOYRSAAAAZIbXNYrsVImFhlCKM0xU4E1wW5jpjI+UFhX6VBWt0AsA\nAACkm9fjKBiiAu9CRCjFGerTHEq7eiN7lPq9HtVWl6SlTQAAAOBs9dUl6o4W2cTCQijFGeqq01uB\ntzu6R2mB36fyYn9a2gQAAADOtnRR6cTSMSwshFKcIVPTd0uL/XJd3m4AAADIjEK/V2GxpnQhIiXg\nDOPTd9s7+9KyUHz806qy4gK5FDoCAABAhriOkRG/by5EhFKcobTYr8ICr4ZHAuofHE2pLWvtxEhp\nRSlFjgAAAJBZHgZBFiRCKc5gjElbsaPB4TEFgiEVFnhV4Pemo3sAAADAtHweQulCRCjFFHXV0Sm8\nKYbS8am7lWVFMrzTAAAAkGF+r6twmHWlCw1RAVPU1UQr8HamVoF3fOpuZVmRXD60AgAAQIY11Jaq\no2cw291AggilmCJd03fHQ2lVeZEMoRQAAAAZtnJxhTq6B7LdDSSIUIopJirwphhKu6LTdyvKiuSS\nSgEAAJBhXo8rh987FxxCKaaoq45M3015pHR8TWl5kQyV0AAAADAHvKwbW3AIpZiiNrqm9FTXgELh\ncNLtnF5TWshIKQAAAOaE10PEWWi4Y5iiwOdVZVmRgqGwOlNYKD4+UlpRWiQPn1gBAABgDhT6XAWC\noWx3AwkglCKm8Qq8baeSn8I7PlJaWlzAJ1YAAACYE6uXVqqtk2JHCwlJATFNFDtKYVuY8VDq87mq\nKC5IS78AAACAmSxZVKb+gZFsdwMJIJQiproUK/AGgiH1DYzIMUaO46iyvDCd3QMAAABich0jh5Sz\noHC7EFOqFXh7+4clSeWlhRoeDqi8hJFSAAAAzA2fS8xZSLhbiOn0XqXJTd8dn7pbVV4kKyu/101b\n3wAAAICZsC3MwkIoRUyn15QmN1LaNV55t6xIkuSwTykAAADmSGmhV6NjwWx3A3EilCKm6spiuY6j\nrt6hpL6hx7eDqSwvkpGRwz6lAAAAmCPrlteotb03291AnAiliMl1HNVWl0iSTiZRgXdi+m5ZEQvN\nAQAAMKeqywo1OhbIdjcQJ+ICplVXHZnCm0yxo8kjpS6pFAAAAHPIcYy8LjVNFgrSAqZVvyiFUBod\nKa0sKxIzdwEAADDXPGTSBYNQimmNbwvTnsL03cryIlHjCAAAAHPN63Fkrc12NxAHQimmVTexLUwK\n03fLiihyBAAAgDlXWeLX4DDrShcCQimmNb4tTKLTd621Z0zfdRkqBQAAwBw7d3mNjp+kAu9CQCjF\ntMZD6YlTvQlNfRgaGdNYIKRCv1eFBV6xqBQAAABzrbTIp2AonO1uIA6EUkyrrKRAZSUFGhkNqrNn\nMO7zuqJTdyvKihS2Vi6ZFAAAAHPMGCMfv4guCIRSzKixvlKS1HKiO+5zTm8HU6hw2MrDDwMAAABk\ngcdD3FkIuEuYUUN9hSSptb0n7nPG15NWlRVrbCwyjRcAAACYaz7XKMQU3nmPUIoZpTZSWqT+oRFV\nlxVkpG8AAADATC5eU6fDx+P/PRbZQSjFjE6PlCYQSicq7xZqYGhMFWVFGekbAAAAMJPaqmIFAmwL\nM98RSjGj0yOl8U/fHS+KVFlerNGxoEqLfBnpGwAAADCbIr9HoTBTeOczQilmtKiqVH6vR919QxoY\nGo3rnNa2SIBdUlsuSexTCgAAgKzZsLZORxNYioa5RyjFjBzHaOn4FN622b+Zw2GrluhxyxdXSSKU\nAgAAIHsWV5dodJQpvPMZoRSzaqgbD6WzT+E92dWv0bGgqsqLVFLsl+MYGUMoBQAAQPYU+T0KW5vt\nbmAahFLMqnFxdF1pHCOlR493nXEOg6QAAADItgtXL1LL8fhrpGBuEUoxq0RGSsfn6y+LTt11GCUF\nAABAljUsKtPwSHz1UTD3CKWYVUIjpSciI6XLl4yH0sz1CwAAAIhXod8jyxTeeYlQilktqS2XY4za\nOvoUCIRmPPZodHPiiem7vMMAAAAwD5y/qkYtbb3Z7gZiIDJgVj6vR3U1pQqHrY6fmv4bOVblXYoc\nAQAAYD5YXleuoWGm8M5HhFLEpaE+OoV3hj2ezq68K/EGAwAAwPxR6HOZwjsPkRkQl8bxvUrbpy92\ndHblXWstI6UAAACYN9Yvq9axk33Z7gbOQihFXOIZKT278q61ktfDWwwAAADzw4ol5eruHcx2N3AW\nEgPi0hgNpa3tM4XSMyvvhsJheSi/CwAAgHnCGKOrL1iq/UdOZbsrmCTpUGqMud0Y84oxJmSMuXSG\n45qMMfuMMfuNMX+R7PWQXQ31p/cqDYdjz8M/u/Lu0GhQpdG1pQAAAMB80FhXpupSv7p6h7LdFUSl\nMlL6kqRbJf18ugOMMa6kL0tqknSepDuMMetTuCaypLS4QBWlhRodC6qjZ2DK67Eq7w4OjKi6vHBO\n+wkAAADM5pqLG3XiZI9C4XC2uwKlEEqttfusta/NctgVkg5Yaw9bawOSvifplmSviewaHy2Nta40\nVuXdgZExlRcXzGkfAQAAgHi846o1evVAW7a7AWV+TelSSS2THrdGn8MCNF7sqLVtagXesyvvSlIg\nGFJRgXduOgcAAAAkoKjAqw1raieWoCF7ZgylxphdxpiXYvx5Z5ztswlQDhnfFmZ8mu5kZ1felSRH\nRg6FjgAAADBPnbu8WoVeo0PHuti/NIs8M71orb0uxfaPSWqc9LhRkdHSmP7p778w8fXlG9+kKzZe\nk+LlkU4zjpSeVXlXkowkl1AKAACAeWzTpcvV0t6nZ/adUFlJkZbUlmW7Sznjmaee0LNP/UJSpPLx\ndGYMpQmY7grPSVprjFkh6bik90q6Y7pG/vjPPpGm7iATJraFiTVSelblXUkyBFIAAAAsAI11ZWqs\nK9O+Ix166UCbKsqLVV9dwqy/FF2x8ZqJgUbHGH1l69/EPC7pUGqMuVXSvZJqJP3EGPOCtfYGY8wS\nSf9qrb3JWhs0xnxM0g5JrqRvWGv3TtdmaJqtRvKNif6P0cyfKMy1msoS+X0e9fQPq39wRKXRIkax\nKu9KkTceAAAAsFCcu7xG5yyr1oFj3TrS1q3RsZDGglaBUEjGGDnGqLDAp+Iinwr9XjmOkeM4ckzs\n39vn0+/y2WZmWDiadCi11v5I0o9iPH9c0k2THm+TtC2eNrs6p04LzQd28t9WslayNiwrKRyOPA7L\nKhy2CoelsLUaC4ZVW1WimsriOXuzO45RQ12FXm/pUGtbj9avrpcUu/KuJPE9CAAAgIXGGKO1DVVa\n23B6sCVsrUIhq9FAUH2Do+oZGNXA0KiC4cjz4XBYkc1lTg+ysUT1TIsqiqZ9LV3Td9Ni06Urst2F\nBSMcttp3pENHjndqZCwk1+PR6sbqjF932ZIqvd7SoZ88/rLOWVknxzExK+9Kkpvp2s4AAADAHHCM\nkeMx8np8Kin0aUlNaba7lFOIDQuU4xidt3KRbrhytW598zpduqZGe/YdUyAYyuh1b3n7RfL7PHrs\nmf361o9+JSl25V1p+oXGAAAAADCOUJojGmrLdNumc3TgULu6eocydp01yxbp7o9ulus4emDXi3pg\n14sxK+9KFDoCAAAAMDtCaQ7xeV3d9rb1CgcDOtTalbHrXHb+Mv3pB94qSfrm/U/p6T2HJcWavkso\nBQAAADAzQmkOesuGZVq7pEyHj2UumL71jev0+7ddJUkaHB6TdGblXWutyKQAAAAAZkMozVHnLK/W\n6NiYwuFwxq7xW9derNs2XyJJWlRZckbl3bCVPA5vLwAAAAAzm1fVd5Feb7m4UY/vOaZzVtZm7Bof\n+K03avGiMi2tqzjj+UAwJJ/Xzdh1AQAAAOQGQmkOqy4vks+VgsGwPJ7MjFoaY7T5TedNeX5gaFSL\nSvwxzgAAAACA05hfmePe/oYV+s3hk3N+3cHhgCrKCuf8ugAAAAAWFkJpjiv0e1VR7NXwSGBOrzs0\nNKqKkoI5vSYAAACAhYdQmgfedtkKvd7SMafXtLKsKQUAAAAwK0JpHvC4jhpqitXbPzxn17SSHPaE\nAQAAADALQmme2Hhhg461987Z9Vxj5BhCKQAAAICZEUrzhGOMSgo9stbOyfUMo6QAAAAA4kAozSPL\n68rU0T04J9dyRSgFAAAAMDtCaR45d3mNTnYPzM3FzNyMyAIAAABY2AilecRxjAq8c3PLWU8KAAAA\nIB6E0jxT5PcoFApn/Doua0oBAAAAxIFQmmc2rKnT4ePdGb8OA6UAAAAA4kEozTM1FUUKBIIZvYa1\nVl6XtxYAAACA2ZEc8pA/w+tKw1byuAyVAgAAAJgdoTQP1ZQXamBoNGPtj44GVej3Zqx9AAAAALmD\nUJqHLl1Xr6MnejLWfk/fkOqqijPWPgAAAIDcQSjNQz6vm9HptX2DI6quKMpY+wAAAAByB6E0TxV6\nXVlrM9J2yFoV+jwZaRsAAABAbiGU5qm1DZU6cao/Q60b9ikFAAAAEBdCaZ5aubRC3X1DGWnbdYwM\nG5UCAAAAiAOhNE85xqggQ1vDeAikAAAAAOJEKM1jJYVejQVDaW/X8K4CAAAAECfiQx47f2WNjrX1\npr1dl3cVAAAAgDgRH/LYoopiDY+Opb1d1+FtBQAAACA+pIc85jhGngwMa1LkCAAAAEC8CKV5zuem\nN0CGwlYetoMBAAAAECdCaZ7zeR2FrU1be4FASAU+N23tAQAAAMhthNI8t6iiSH0Do2lrr3dgWIsq\nitLWHgAAAIDcRijNc+cuq9GJU31pa6+vf0S1lcVpaw8AAABAbiOU5rkCv0dGaZy+GwqpuNCXtvYA\nAAAA5DZCKeRJY7EjI8lNc/EkAAAAALmLUAr5POl7GxjHkcOWMAAAAADiRCiFCn2uxgKhtLTlEkgB\nAAAAJIBQCq1trNKJjv60tEUmBQAAAJAIQilUX12qwaH0bAvjYYtSAAAAAAkglEKuY9JW7Ij1pAAA\nAAASQSiFJMlLKAUAAACQBYRSSJL8XlfWprZfaThs5TqEUgAAAADxI5RCklRdVqD+obGU2giGwvKn\ncXsZAAAAALmPBAFJ0rpl1Tp+sjelNvoGR1RVVpimHgEAAADIB4RSSJJKCn1SOLXpu30DI6qtKk5T\njwAAAADkA0IpJng8qa0HHRkNqrykIE29AQAAAJAPkg6lxpjbjTGvGGNCxphLZzjusDHm18aYF4wx\nzyR7PWSeN+X1oFYel885AAAAAMTPk8K5L0m6VdLXZjnOStpkre1K4VqYA4VeV8FQOOlg6Rgjh+q7\nAAAAABKQ9LCWtXaftfa1OA8nqSwAqxsqdeJUf9LnE0gBAAAAJGou5lpaSY8aY54zxnxkDq6HJC1d\nVKa+wZGkz3cMoRQAAABAYmacvmuM2SWpPsZLd1trH47zGldba08YYxZJ2mWM2WetfSLRjiLzXMco\nlWWlDJQCAAAASNSModRae12qF7DWnoj+fcoY8yNJV0iKGUo/85nPTHy9adMmbdq0KdXLI0HeFAoV\nOS6pFAAAAEDEY489pscee2zW44y1qe1NaYz5f5L+p7V2d4zXiiS51tp+Y0yxpJ2S/tpauzPGsTbV\nviB1259+XQ2Lq2WSmIrbcqxDTVeuzkCvAAAAACx0xhhZa6cEjVS2hLnVGNMi6UpJPzHGbIs+v8QY\n85PoYfWSnjDGvCjpaUn/HSuQYv4oLfBqNBBK+LywtXIZKQUAAACQoJRHStOFkdL54VTPkJ56tU2r\nG6sTOi8QDKm3p19vuWR5hnoGAAAAYCFL+0gpclN1WaFGxgIJnzc0GlRZsT8DPQIAAACQywilOIPj\nGPlcN+HzevqGVFdVnIEeAQAAAMhlhFJM4Z2xJnNsQ8NjqiwtTH9nAAAAAOQ0Qimm8DiOEl3fa63k\n8yY+wgoAAAAgvxFKMUVpkU/DY8GEznEkuQ7VdwEAAAAkhlCKKdYtq9aJ9t6EzjFsBwMAAAAgCYRS\nTFFVWqDRQGIjpWRSAAAAAMkglGIKxzHyuIm9NRxDKgUAAACQOEIpYvJ5EguZDutJAQAAACSBUIqY\nPK6bUAVeMikAAACAZBBKEVNFsU/DI/GtK7XWysOiUgAAAABJIJQipnXLqnXsVE9cx4ZtZG9TAAAA\nAEgUSQIxlZf4FQiE4zp2ZDSoogJvhnsEAAAAIBcRShGTY4y8cU7J7e0bUn1VSYZ7BAAAACAXEUox\nrXhDad/giKorCjPcGwAAAAC5iFCKaXk9TlwVeMPWMn0XAAAAQFIIpZhWRYlfQyOBWY/zuo4cQ/Vd\nAAAAAIkjlGJa5yyv0fH23hmPsdbK7+VtBAAAACA5pAlMq7TIp2Bo5gq8vQOjWlxdPEc9AgAAAJBr\nCKWYlmOMPLMUOzre3qPzViyaox4BAAAAyDWEUszI65n5LeI6Rj6vO0e9AQAAAJBrCKWYkc9jZqzA\n6/fxFgIAAACQPBIFZrS0plSnugdjvjYaCKrEz1YwAAAAAJJHKMWMzl1Ro46ugZivHT3erQvX1M5x\njwAAAADkEkIpZuQYoyK/G3MKbzAUVmVpQRZ6BQAAACBXEEoxqw3r6nTkRPeU530eI2Nmrs4LAAAA\nADMhlGJWS2tKNTIydsZzYWtVQNVdAAAAACkilCIuZYVejQVDE49Pdg5o5eKKLPYIAAAAQC4glCIu\nV13YoIMtHROPO3sGtGppZRZ7BAAAACAXEEoRl+JCn5xJ60d9Hleuw3pSAAAAAKkhlCJuiysL1T84\nKknyeXjrAAAAAEgdyQJxe8P6JTp6olsDQ2OqLmMrGAAAAACpI5Qibh7XUYHP0dET3bpwdW22uwMA\nAAAgBxBKkZB1DVXq6B5QUYE3210BAAAAkAMIpUjIOcuqtLy+PNvdAAAAAJAjjLU2232QJBlj7Hzp\nC2YWClsq7wIAAABIiDFG1topQYKRUiSMQAoAAAAgXQilAAAAAICsIZQCAAAAALKGUAoAAAAAyBpC\nKQAAAAAgawilAAAAAICsIZQCAAAAALKGUAoAAAAAyBpCKQAAAAAgawilAAAAAICsIZQCAAAAALKG\nUAoAAAAAyBpCKQAAAAAga5IOpcaYLxpj9hpj9hhjHjDGlE9zXJMxZp8xZr8x5i+S7yoAAAAAINek\nMlK6U9L51tqLJb0m6RNnH2CMcSV9WVKTpPMk3WGMWZ/CNQEAAAAAOSTpUGqt3WWtDUcfPi2pIcZh\nV0g6YK09bK0NSPqepFuSvSYAAAAAILeka03phyQ9EuP5pZJaJj1ujT4HAAAAAIA8M71ojNklqT7G\nS3dbax+OHvNJSWPW2u/GOM6m3kUAAAAAQK6aMZRaa6+b6XVjzO9JulHS26c55JikxkmPGxUZLY3p\nM5/5zMTXmzZt0qZNm2a6PAAAAABgnnrsscf02GOPzXqcsTa5wUxjTJOkL0l6i7W2Y5pjPJJ+o0ho\nPS7pGUl3WGv3xjjWJtsXAAAAAMD8ZoyRtdac/Xwqa0r/UVKJpF3GmBeMMV+JXmiJMeYnkmStDUr6\nmKQdkl6V9P1YgRQAAAAAkJ+SHilNN0ZKAQAAACB3ZWKkFAAAAACAlBBKAQAAAABZQygFAAAAAGQN\noRQAAAAAkDWEUgAAAABA1hBKAQAAAABZQygFAAAAAGQNoRQAAAAAkDWEUgAAAABA1hBKAQAAAABZ\nQyhF1j322GPZ7gKyiPuf37j/+Yt7n9+4//mN+4+zEUqRdfxgym/c//zG/c9f3Pv8xv3Pb9x/nI1Q\nCgAAAADIGkIpAAAAACBrjLU2232QJBlj5kdHAAAAAAAZYa01Zz83b0IpAAAAACD/MH0XAAAAAJA1\nhFIAAAAAQNYQSgEAAAAAWTPnodQY80VjzF5jzB5jzAPGmPJJr33CGLPfGLPPGHP9pOcvM8a8FH2t\nea77jMwxxjRF7/d+Y8xfZLs/SC9jTKMx5v8ZY14xxrxsjPl49PkqY8wuY8xrxpidxpiKSefE/DmA\nhcsY4xpjXjDGPBx9zP3PA8aYCmPMD6P/5r9qjHkj9z5/RO/nK9Hf375rjPFz/3OXMeabxph2Y8xL\nk55L+H7zO3/+ysZI6U5J51trL5b0mqRPSJIx5jxJ75V0nqQmSV8xxoxXZvqqpA9ba9dKWmuMaZr7\nbiPdjDGupC8rcr/Pk3SHMWZ9dnuFNAtIustae76kKyX9cfQe/6WkXdbadZJ+Gn083c8BZnQsfFsk\nvSppvLIe9z8/NEt6xFq7XtJFkvaJe58XjDErJH1E0qXW2gsluZLeJ+5/Lvs3Re7dZIncb37nz3Nz\n/g1vrd1lrQ1HHz4tqSH69S2S/tNaG7DWHpZ0QNIbjTGLJZVaa5+JHvfvkn5rLvuMjLlC0gFr7WFr\nbUDS9xR5HyBHWGvbrLUvRr8ekLRX0lJJN0u6L3rYfTr9PR3r58AVc9pppJUxpkHSjZK+Lmn8lw7u\nf46LzoK6xlr7TUmy1gattb3i3ueLPkU+lCwyxngkFUk6Lu5/zrLWPiGp+6ynE7nf/M6f57L9KdSH\nJD0S/XqJpNZJr7Uq8svr2c8fiz6PhW+ppJZJj8fvOXJQ9JPzSxT5MKrOWtsefaldUl306+l+DmDh\n2irpzyWFJz3H/c99KyWdMsb8mzHmeWPMvxpjisW9zwvW2i5JX5J0VJEw2mOt3SXuf75J9H7zO38e\ny0gojc4ffynGn3dOOuaTksastd/NRB+wILBJbp4wxpRIul/SFmtt/+TXbGSz5JneC7xPFihjzDsk\nnbTWvqDTo6Rn4P7nLI+kSyV9xVp7qaRBRafujePe5y5jzGpJfypphSJBo8QY8/7Jx3D/80sc9xt5\nzpOJRq211830ujHm9xSZzvX2SU8fk9Q46XGDIp+WHNPpKb7jzx9LS0eRbWff80ad+QkZcoAxxqtI\nIP22tfbH0afbjTH11tq26HSdk9HnY/0c4Pt94bpK0s3GmBslFUgqM8Z8W9z/fNAqqdVa+2z08Q8V\nqSHRxr3PC2+Q9KS1tlOSjDEPSNoo7n++SeRnPb/z57lsVN9tUmQq1y3W2pFJLz0k6X3GGJ8xZqWk\ntZKesda2SeqLVu0zkn5X0o+nNIyF6DlFFrGvMMb4FFn0/lCW+4Q0in7PfkPSq9baf5j00kOSPhD9\n+gM6/T0d8+fAXPUX6WWtvdta22itXalIkZOfWWt/V9z/nBf9t7vFGLMu+tS1kl6R9LC49/lgn6Qr\njTGF0X8HrlWk2Bn3P78k9LOe3/nzW0ZGSmfxj5J8knZFC209Za39I2vtq8aYHyjyQyso6Y+iQ/2S\n9EeSviWpUJFKfv+/nTtGzQIIwjD8zgHsvI2Ft7CyCWn1AGmsPUPAJhAET6CXiCSNlSB4jeCm+JNa\nkJDF/M9TbrUw7LDfFPP16a/NY1tr3c7Mu+pbh818n9ZaPzZfi8f1qnpb3czM9/uzs+pj9WVmTqtf\n1Zuqv/QB/n8PtVT/4/C+urwfOv6sTjr0erV/5tZa1zNz0WH4/Ke6qs6rF6n/szQzn6vX1cuZ+V19\n6N96vT//kRpvHgAAgF12b98FAADgiAmlAAAAbCOUAgAAsI1QCgAAwDZCKQAAANsIpQAAAGwjlAIA\nALDNHUnhUn9gO25yAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11be3efd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib\n",
"%matplotlib inline\n",
"matplotlib.rcParams['figure.figsize'] = (16,8)\n",
"from IPython.display import display\n",
"import numpy as np\n",
"import GPy\n",
"\n",
"# Raw data\n",
"X = np.array([0, 3, 7, 10, 12, 13, 16, 17, 20, 24, 28, 33, 37, 38, 43, 43, 44, 56, 62, 63, 66, 67, 78, 80, 81, 90, 93, 96, 115, 116, 123, 123, 124, 128, 134, 136, 141, 147, 150, 151, 151, 152, 152, 154, 156, 157, 159, 169, 170, 171, 172, 181, 184, 185, 188, 191, 196, 201, 203, 208, 209, 210, 216, 222, 224, 225, 225, 229, 236, 236, 245, 248, 248, 250, 255, 258, 264, 268, 277, 279, 290, 292, 300, 309, 310, 310, 311, 314, 317, 319, 322, 322, 326, 329, 330, 331, 332, 334, 335, 337, 337, 340, 344, 345, 351, 365, 371, 383, 386, 394, 396, 398, 399, 400, 401, 411, 411, 411, 412, 416, 420, 421, 423, 424, 424, 426, 426, 427, 429, 433, 437, 443, 455, 455, 456, 465, 478, 478, 486, 490, 493, 499, 501, 502, 506, 507, 509, 510, 515, 530, 532, 537, 540, 544, 547, 554, 561, 567, 568, 568, 570, 571, 571, 572, 573, 575, 582, 586, 594, 596, 603, 607, 607, 608, 613, 613, 616, 624, 626, 627, 632, 643, 643, 645, 647, 647, 650, 651, 653, 656, 660, 660, 662, 666, 669, 671, 672, 674, 687, 688, 689, 693, 694, 698, 698, 700, 712, 716, 722, 725, 726, 726, 729, 738, 738, 739, 741, 743, 746, 748, 770, 774, 774, 775, 776, 778, 788, 788, 795, 809, 809, 812, 818, 820, 821, 823, 826, 827, 827, 828, 828, 832, 833, 836, 839, 839, 839, 840, 840, 841, 843, 846, 849, 851, 851, 852, 854, 860, 861, 861, 867, 868, 872, 876, 877, 884, 890, 891, 891, 894, 897, 903, 910, 911, 914, 917, 919, 922, 925, 925, 929, 929, 932, 937, 938, 939, 940, 953, 963, 967, 968, 972, 972, 978, 979, 989, 990, 992, 994, 995, 999])\n",
"Y = np.array([0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.12, 0.12, 0.12, 0.12, 0.12, 0.34, 0.34, 0.34, 0.34, 0.34, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.354, 0.354, 0.364, 0.364, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.374, 0.38, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.4744, 0.4744, 0.4924, 0.5084, 0.5084, 0.5084, 0.5084, 0.5084, 0.5084, 0.5084, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5224, 0.5624, 0.5624, 0.5624, 0.56744148, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5688, 0.5868, 0.5868, 0.5868, 0.5868, 0.6268, 0.6268, 0.6268, 0.6268, 0.7068, 0.7068, 0.7068, 0.7068, 0.7068, 0.7068, 0.7068, 0.7068, 0.7068, 0.732, 0.732, 0.772, 0.772, 0.772, 0.772, 0.772, 0.772, 0.772, 0.772, 0.772, 0.77321075, 0.77473941, 0.77550374, 0.77932539, 0.78773302, 0.78773302, 0.78926168, 0.79079034, 0.79079034, 0.79308333, 0.79384766, 0.79537632, 0.79766931, 0.80072663, 0.80072663, 0.80225529, 0.80531261, 0.8076056, 0.80913426, 0.80989859, 0.81142725, 0.82136354, 0.822, 0.822, 0.822, 0.822, 0.84523806, 0.84523806, 0.8992052, 0.912, 0.912, 0.912, 0.912, 0.912, 0.912, 0.912, 0.938, 0.938, 0.938, 0.94063949, 0.948, 1., 1.02, 1.062, 1.082, 1.082, 1.082, 1.082, 1.092, 1.092, 1.092, 1.092, 1.092, 1.092, 1.092, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.122, 1.122, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.142, 1.152, 1.152, 1.152, 1.152, 1.152, 1.152, 1.152, 1.152, 1.152, 1.152, 1.152, 1.152, 1.162, 1.162])\n",
"\n",
"# Formatted for input to GPRegression\n",
"X = np.ndarray(shape=(len(X), 1), buffer=X, dtype=int)\n",
"Y = np.ndarray(shape=(len(Y), 1), buffer=Y, dtype=float)\n",
"\n",
"# Kernel primitives\n",
"LIN = GPy.kern.Linear(input_dim=1)\n",
"SE = GPy.kern.RBF(input_dim=1)\n",
"\n",
"# Mean function\n",
"mf = GPy.mappings.Linear(input_dim=1, output_dim=1)\n",
"\n",
"# GP model\n",
"kernel = SE.copy() + SE.copy() * LIN.copy()\n",
"m = GPy.models.GPRegression(X, Y, kernel)\n",
"\n",
"# GP model with mean function\n",
"# kernel = SE.copy()\n",
"# m = GPy.models.GPRegression(X, Y, kernel, mean_function=mf)\n",
"\n",
"# Find hyperparamters and diplay\n",
"m.optimize()\n",
"display(m)\n",
"m.plot()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment