Last active
December 6, 2019 21:10
-
-
Save ajtulloch/f3ccea24fe6a1a801fdd927aeada20b5 to your computer and use it in GitHub Desktop.
nn.Linear error analysis
This file contains 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
{ | |
"cells": [ | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "import torch\nfrom torch import nn\nimport matplotlib.pyplot as plt\nplt.style.use('ggplot')\n%matplotlib inline\n%config InlineBackend.figure_format = 'retina'\nimport numpy as np", | |
"execution_count": 1, | |
"outputs": [] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Visualize data" | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "m = nn.Linear(416 * 416 * 3, 1)\n\nx = torch.randn(1, 3, 416, 416).detach().numpy().flatten()\nw = m.weight.detach().numpy()\nw = w.flatten()", | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "_ = plt.hist(w[:100000])", | |
"execution_count": 3, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<Figure size 432x288 with 1 Axes>", | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"image/png": { | |
"width": 402, | |
"height": 248 | |
}, | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "_ = plt.hist(x[:100000])", | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<Figure size 432x288 with 1 Axes>", | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"image/png": { | |
"width": 388, | |
"height": 248 | |
}, | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Let's compute error bounds\n\nForward error bound is Formula 3.5 in Higham, Accuracy and Stability of Numerical Algorithms\n\n$|x^T y - fl(x^T y)| \\leq \\gamma_n \\sum_{i=1}^n |x_i y_i| = \\gamma_n |x|^T |y|$\n\nwhere $\\gamma_n = \\frac{nu}{1 - nu}$, where $u$ is unit roundoff ($\\frac{\\epsilon_m}{2}$)" | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "def abs_error(x, y):\n assert x.dtype == y.dtype\n # unit roundoff\n u = np.finfo(x.dtype).eps / 2\n n = x.size\n gamma_n = n * u / (1 - n * u)\n r = np.abs(x.astype(np.float64)).T.dot(np.abs(y.astype(np.float64))) * gamma_n\n return r\n return np.sqrt(r / u) * u", | |
"execution_count": 23, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "abs_error(x, w)", | |
"execution_count": 24, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 24, | |
"data": { | |
"text/plain": "9.220649618359031" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(np.abs(x.astype(np.float64).T.dot(w.astype(np.float64))))", | |
"execution_count": 25, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "0.6486818892357276\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(np.abs(x).astype(np.float64).T.dot(np.abs(w).astype(np.float64)))", | |
"execution_count": 22, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "288.7500078711762\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "The problem is that $|x^T w| \\ll |x|^T |w|$" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Absolute error bounds as reduction dim `n` varies in log/log scale" | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "np.logspace(1, np.log2(x.size), base=2)\nlims = np.logspace(start=1, stop=np.log2(x.size), base=2).astype(np.int32)\nerrors = [abs_error(x[:lim], w[:lim]) for lim in lims]\n\nplt.plot(lims, errors)\nplt.xscale('log')\nplt.yscale('log')\nplt.xlabel('n')\nplt.ylabel('absolute error upper bound')\nplt.title(\"Absolute error upper bound for $\\sum_{i=1}^n x_i w_i$\")\nplt.savefig('x.png', dpi=300, bbox_inches='tight')", | |
"execution_count": 16, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<Figure size 432x288 with 1 Axes>", | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxcAAAJiCAYAAAC1uD/6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd5gcxbX38e8ZRVAiiCSywWQMCJENEknkDEUSIKJJ1+GCw33ta4Jt8L1OF4PAgAEhISQXUeQskYMJwmByzqCMstBOvX90DzO7mrChZ3pm9/d5nn5mt6u668x0z+ye6a4qCyEgIiIiIiLSUZm0AxARERERkc5ByYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIiIiCRCyYWIiIhIF2Nmu5pZMLM/m9lGZna9mX1uZvPM7DkzG5Z2jNKYlFyIiIiIdD2D48e1gZeAgcANwAPAEGCima2SUmzSwLqnHYCIiIiI1FwuuRgGDA0hPJcrMLNrgJOAHYHbah+aNDJduRARERHpenLJxSmFiUXs9fixdw3jkU5CyYWIiIhIF2JmfYANgE+BiUWqbBA/vluzoKTTUHIhIiIi0rVsQfQ/4IMhhGyR8sFAE/BKTaOSTkHJhYiIiEjXkrsl6oWWBWbWE9gceC2EsKCmUUmnoORCREREpGvJJRfPFynbDOhZokykIiUXIiIiIl3LYGAJMKVI2dbx41JXNURaQ8mFiIiISBdhZr2ATYhue1pYpIqSC+kQJRciIiIiXcdmQA9K3/a0NVFn7pdrFpF0KhZCSDsGERERERHpBHTlQkREREREEqHkQkREREREEqHkQkREREREEqHkQkREREREEtE97QBEREREJDlm9jSwWpWb2SqEMLPKbUgDUnIhIiIi0rmsCaxe5Ta6VXn/0qB0W5SIiIiIiCRCyYWIiIhI5zIn7QCk61JyISIiItK5HA3MLrL+whCCJbRMq/WTksagGbpFREREOhkz2wW4H+jdoujsEMKoFEKSLkLJhYiIiEgnZGYHALfSfACfLHBsCGFCOlFJZ6fbokREREQ6oRDCncDJQOE3yRlgjJntlU5U0tkpuRARERHppEIIY4BzWqzuAdxiZtulEJJ0ckouRERERDqxEMJfgItarO4D3GNmG6cQknRi6nMhIiIi0gWY2d+AH7RY/QmwYwjh4xRCkk5IyYWIiIhIF2BmGWACcESLojeAnTW8rCRByYWIiIhIF2FmPYG7gD1bFP0T2C2EMLf2UUlnoj4X0mWY2UgzC/EyLO14OsLMhhU8l5FpxyMilXWmz6C0mdkH8es4uYP7GWBmF5nZK2Y2r+D4jE4m0voTQlgMHAo816JoG+C2OPkQaTclF9JwzKyXmU3vCn8ERESkOsysH/A08F/AZsCy6UZUO/HViX2B11sU7QHcEN8+JdIuOnmkER0MrFDw++HxHwlJmL5pFZFO7EwgN1LSWGBXYPN4+WVaQdVKCGE6MBz4qEXREYBm8JZ2U3Ihjeik+HFO/NgHcCnFIiIijSk3idyXwEkhhMkhhFfj5dM0A6uVEMInRAnG1BZFp5vZhSmEJJ2AkgtpKGa2BtFlW4A/A2/FP59UfAsREZGiVo8f3w0hLEk1khSFEN4E9iH/hV3Of5vZf6QQkjQ4JRfSaEYSnbcBGANcH6/f0cw2SCsoERFpOL3ix29SjaIOhBBeAE4tUvR/ZrZhreORxqbkQhqGmRlRcgHwRAjhPaIEIxuva9PVC4ucZGaPmtlXZrbAzN42s0vMbPUK2w40s1+b2dNx5/JvzGymmb1jZpPjsi0r7GN/M/Nm9pGZLTSzWWb2LzP7o5mt3ZbnUmTf5xf0lVinQt2lOsbnRqMCriuoOqmgbtnO9Ga2tpn93syej1+fxWb2uZndY2YnmFn3jjy/pNpq2ackPieOMbP7zOwzM1tiZlPaW79FW+063h1ps8w+O3R+VIitve+pxPZVsM+anRvtkdBzbO95lcg5EJcv1TfLzA4ys3vN7AszW2TR6E5Xm9l3WvGcupvZWRZ9vs4ys7lm9lp8LFeptH2FfX8bK5B7fYZai8+2Etu2+zO7FudTR1jUb/HnRYouiq9sdHT/3czs9fj5Lyp3zpmZM7OmuO6jZta7wr4vLnhti450ZWZ3FNT5Y4k6uxfUObQtz09aCCFo0dIQCzCU6IpFAE4pWP9gvO5ToFuZ7UcWbL8ncHfB7y2X2UTjfRfbz/bA9DLb5paHSmzfl2iM8XLbLgROLvNchhXUHVmk/PyC8nUqvK65eqNL7L/cMrrI/s4FFlXY7nlg9QTOiQ611eKc2KvEcZnS3vpJHO/2tNmK161D50fS76mk95XGudHK1z3J16uj51Ui50CR57UbcG2ZmGYB25Zpa3ng2TLbfwEMBj6If5/cgWNQcknyta7W+ZTUAvQAHigSz7UJt3NwK86lPci/b18CBrRivz8r2O+KRco3IvoSMlfnmhL7uSMufwfIpHEsOsuSegBatLR2IboFKgDzgf4F60cUfGjsV2b7wg/353J/mIg6g28df+CPLvgQmgds0GIfPYGP4/IlwNXxB+Z28T72Bf4f8BjwYJEYrMWH+L+Bk4nGFx8KXAwsKCg/usRzGVZQZ2SR8vMLytep8Lou9WFP1El+M6IRU3LlJ8brCpfVy7T7BvAjYG+ifwb2J7oS0hSXvwL06cD50OG2WpwTU+LH+wrOid2AMztQv8PHu61ttuO1a/P5keR7qkr7qvm50crXPZHnmNB5lcg5UOR5PRE/3gUcFr/mewLjCuq8DXQvsp8M0Wdnrt6LwHEFr/clRLcwvQd8lXv92ngMliP/+fVpvI9/0uKzLcnXulrnU1IL+b+thcs9xY5RAm09Sf7v50YtyoYQ9fvInSOrtHKfp5Y7l4G/F7QZgNuK1FmP/GfC2Wkch860pB6AFi2tWYB+RH9oA3Bji7Jlga/jspvL7KPwwz0Q/YNhReqdUlDnwRZluxWU/ahCzMW+QTm5YPvJQO8idbYreK6zKPLNDVVOLkq8ZsMq7Gcn8v8UXUyJb36AQwrq/aqd50MibRU5J/6nQrttrd/h493WNlv5+lXj/GjXeyrpfaV1brTydU/qOSZxXiVyDpR4XueXqFd4RePACs/7XqBHkTp7kf8nMdDG5KLFvj6otI8kXutqnU9JLMBFLeIKRMlWu7/4qdDeTgXt3FSw/rvkE8ZPgXXbsM/DC/a5eYuyVYmuKoWC82+p4w38JS6bUa3n3pWW1APQoqU1C82/mdirSPk1cdkiYGCJfRR+uH9Z7gMEuL+g7kYF648pWP+9djyPfxXEuWaZeoVXDH5cpHxYQfnIIuXnF5SvUyGm1v7zOKzCfu6J6z1LkX+YWtS9Oa77YTvPh0TaavH8in6b2sH6HT7ebW2zla9fNc6Pdr2nkt5XWudGK1/3pJ5jEudVIudAkef1YqnXnWhOiVy9PxUpz32jvwBYtUw8VxbsZ3IHjscHlfaRxGtdrfMpgfPxjIKYcsu7wMpVbve2uK0ssBWwGvA++X/uN2vj/gq/9NuxRVkueXqS6CpRAF5uUacf0W2IgaiPSarHpTMs6tAtjeLE+PEz4KEi5blRo3oCx7Zifz6EMK9M+d8Lfh5e8PMnBT+fZGbWirYAMLNViSZnArg3hPBxmepXku+oPrxMvbpgZn2Jbn0AmBDiT+wyJsePa1k0vHA9tDUhtG04yrL1q3S82xpjLbX3PZXYvuro3GiN9j7Hev8cGVfqdQ8hvA7MjX9t1rE77qi9Rfzr3SGEL8q08fcyZYmp4mud+vvYzA4CLm2xeiqwdwjhqyo3/19EtyAZ8EeiRHodolue9w8hvNrG/c0s+PnbCXXjz4PT41//SJRAQPNJeCFK/PoDi1n6NZF2UHIhdc/MNgJ2iH+9IYTQVKTa40TffEA+ESnnuQrlzxb8/L2Cn58EXo9//hHwhpldZGZ7mdmKFfa5ecHPT5erGEKYRvTtVsv269VgIDfyzp9bjrxSZCSWwg/w1eqkrZfbGEel+tU43m2NsZba+55Kcl/1cm60RnufY71/jrxRoTz3j2D/FusL43uW8l4i+kew2qr1Wqf6PjazHYDxQLeC1bl/7N8uvlVyQghvEN2iBNFVh82J+tIcHkJ4qty2ZnZm/P4tHDa3aHJBdEvb8kTHZSLRLWvE63L7M+Ds+NfxIYTP29CulKDkQhpB4RCzY4pViL8py5VtYWaDK+zzyzaUf5s0xInN/uT/MdiA6FuY+4CpZvaKmV1gZsX+USlMPsp9K9eyTqWkpR6s3IFtl62TtmaWKWtP/Woc77bGWEvtek8lvK96OTdao73Psd4/R8pdjYH8t/vdWqwvjK/saxN/6z+jjXG1R7Ve69TexxbNB3UnsEzB6ibAhRAqJbxJurzF7yeHEO5txXZD4sfCWJdKLiwaZvon8bq/hBCy5K9c9CkYsnYfor/jEE3M25Z2pYTExpoXqQYz60Y0WkjOq628E+kkont/Exei+TW2M7NdiUaK2oXom5du5EcbOdfMTg4hTKhGDHWo8LPkl0RD+rXW+5Wr1KStYlfEymlr/SSk0WYjqZdzQ6ScVM6n+Naz+1g6+Tk9hHB3DePoT/7KRU6PVm5+HvC/wFsF674mek27kb9ycQTRPCbTiEZgg3xyAdHViy+BH8a/PxhC+Fcb25USlFxIvduXaLSHtjrGzM4JISwqUV5pIqbC8unFKoQQJgGT4NsJiHYh6vB9FNG3oGPN7KWQn4CocD+teU65OkXbr6Dwj1fJK5Rm1qcd+y5masHP37Tjntl6basjanm826oa50eH31MJ7KtRzg1o/3NM6ryq9WdEJYXxlX1t4m+lW943Xw31/B5uk7j/wT3Aui2KLggh1KQPSxxHb6Kkfyuiq1iziI7lBWY2PoSwoNz2xfq9hBCCmc0iSppyycVP48fLC/bZLLkws+XJ94/5U1vbldJ0W5TUu9wtUU3A8cDRFZbcB8TyRFcVStm2QrvbFfxc7tsMAEIIc0IId4cQjgV+Ea/uTjREXrH9bF9uf2Y2kGhoPmjf/blzCn5evmStaPSWcip1iM15ifztDru0cpv2qmVbHVHL491WSZ0fhZJ8T7V3X41ybkD7n2NS51U1zoGOKHxe25WsFdmKaPCOaqvn93CrxcnYzUR9kgpdE0I4v4ZxdCPq6zE0XnUm0QR4AGsQ9WMst/3Ocb+HvxYpzt0a1c/Mdic6RxYCl+UqhBDmEw1jDFFC80OiTuWvhhDub2e7UoSSC6lbZrYysF/86+QQwtgQwoRyC/Ab8h39ynXsdhW+kTul4OcH2xh64YfUSrkfQghfkv9jtU+F0WlOJf/+fKCN7UM0yVTONmXqjaiwn8JvkXqVqhRCmAE8Gv+6j5ltWmG/7VbLtjqixse7rZI6Pwol+Z5q174a5dyItfc5JnVeVeMcaLf4eeX+Kd8vHqmplFPKlCWmzt/DbfF3ovlBCt1DfiSlWrmK/Jd+vw4hXEl0y1LuVqNfmFm5K1Jbx4/Fbnn+NrkAzo1/HhNCmNqiXu7qxbpEX1hC+b4WldqVIpRcSD0bQf4+zH+0ZoMQwmzy/9zvWeaPwcrApcWGkjWzU8hfKn0oHj4xV7ZzPHpVOXsX/Pxei7JL4sdewPVmttQ/7GY2hOh+cYguGY+u0F4xTxGNvgHwH/Gl6Jbt7AmcVWE/nxX8vEHJWpHzia50dANuM7PvlKtsZhub2VEV9lkPbXVErY53WyV1fhRq13uqCvs6n8Y4NzryHJM4r6pxDnRU7lvm3sC1ZrbUffhmthfRKEC1Uq/v4VYxs98CJ7RY/U+iDtw1Gw7XzP6H/J0Il4UQfgPfDpLy3/H6AeRfx2JyV16K/ZOf6+C/A9Hf4EDxW51yycW5QB+iTvg3Vgi/XLtSTNoTbWjRUmoBXiH6gPiGIrNdl9luBPkJdX5ZsH5kwfpn48fJRB2/BhP9Mb+O/Ky984ANWuz7/Lj8aaIPxAOIvvXbhugbmcLtpwErtdjeiL7VysXxKtEH7hCi2zh+RzQkYK78qBLPcVhBnZEl6lxfUOcZ4FCiS8XDgVFEV3ieKKgzusg++hCNSx+Aj4EjiTqvbxQvq7WoXziR1Ly4nYOIvvnZhmikrV/Fr18gGlq4vedHh9uiDZMEtrN+h493W9tsw+uXxPlRGFu73lNV2lfNz41WvuaJPMckzqukzoG2vlaUmbiO6AvPxwr29QLR5/nWwK7A/8UxvUd+Nuel9tOG41Eyliq81omfT614fj8oaDO3vE2Lv0s1iOPcgvYnAJkir/GLcflCYO0S+3mV6Gr6UhMQEt1uVfg8J5bYx4st6v2yFfGXbFdLidcs7QC0aCm2EN2PnHvz39/GbfvFH1ABeLtgfeGH+57AXUU+eHPLbGC3Ivs+v8w2hcvnwA4l4utboe3cB+zJZZ7jsIK6I0vUWTH+UCzVxvNEt21V+sfhvDL7WGob4DTyCUmlZVQHz5MOtUWVk4skjnd72mxlXB0+P0jgPVWNfaVxbrTyNU/y9UricySpz4hWv1ZU+Iee6F74Z8vE9DlRAlR2P608Hq3aR0KvdeLnU4WYDyTqX1AY41fAetVuu8jzziXLDwI9S9TbtyDOsUXKl4mfz3Mltr+8xXPduUS9SQV15gErVIi/bLtaii+6LUrqVWF/Cd+WDUMIc4DceNnrm9nQItW+IbrqcDLRN2XTgEVE34hdCmwSQnikyHZ/ILpC8Veib/TeI/oH5huiD+5HgP8k+rax6KRLIYS5IYT9iT78byaa9XsR0XB6rxDd/7lhCOGatjzvIu1MJ7pEfCHwGtE3L3OIvg08B9gxLH0/arH9XEA0CtYDREP3fVOh/lVEQwD+guj1+ILo28aFwKdEH+6/A7YPIXTolotattWBGGtyvNsRVyLnR4H2vqeqsq8GODc69ByTOK+qcA50WIj6zexENLHZs0TPZx7R5Hz/C2wZQnipxjHV5Xu4FDPblugKQcu5RFYC3qk0uWQblr9ViONAov4eRpSoHhJCKDr5YQjhHqK/qQDHmtmWLapsET+fF0o0VzjXxXMhhMdL1CscMWp0fL6VU6ldKcLizExERKRNzGwk0W08ALuGECbXw75EujIzO5/oinO1XRlCqEmncDM7i6hPzmkhhKtr0Waa7TY6XbkQERERkXqWVqdqdeZuB02iJyIiItJ5zADerUE7X9WgjZzBRLcSvlLDNtNst6EpuRARERHpJEIIfyXqF9gpmFlPYFPg36X6bHSmdjsD3RYlIiIiIvVqc6I5r2p9a1Ja7TY8XbkQERERkboUQniBaMSpLtFuZ6DRokREREREJBG6LUpERERERBKh5EJERERERBKh5EJERESkAZnZmfFs2aemHYtIjpILERERkcY0JH58rlYNmtnhZnapmT1uZl/Hyc2EWrUv9U8dukVEREQakJmtCfQB3gohZGvU5hRgC2Au8AmwEfCPEMJRtWhf6p+GohURERFpQCGEj1No9idEScU7wFBgUgoxSB3TbVEiIiIiDcbMdo5vSarpbNwhhEkhhLeDbn2REpRciIiIiDSereNHzSAtdUW3RYmIiIg0nsHxY8nkwsx+DCzXhn1+EEIY3ZGgRJRciIiIiDSewcBC4LUydX4MrN2GfT4KjO5ATCJKLkREREQaiZktQzRK04shhCWl6oUQ1qlZUCIx9bkQERERaSxbAN2AF9IORKQlXbkQERERaSyt6sytPheSBiUXIiIiIo2lYmfumPpcSM0puRARERFpLIOBb4BXylVSnwtJg5ILERERkQZhZj2BTYF/hxAWp9D+wcDB8a+rxo/bmdnoXJ0QwsgahyV1RMmFiIiISOPYHOhBepPnbQmc0GLdOvGSM7JGsUgdMs3eLiIiIiIiSdCVi8aiTFBEREREasXauoHmuRARERERkUToykUD+uyzz9IOQVpp4MCBAEybNi3lSKQ9dPwan45hY9Pxa2w6fo1r0KBB7d5WVy5ERERERCQRSi5ERERERCQRSi5ERERERCQRSi5ERERERCQRSi5ERERERCQRSi5ERERERCQRSi5ERERERCQRSi5ERERERCQRmkSvCpxzuwDnAlsDg4ATvfejUw1KRERERKTKdOWiOvoCrwI/AhakHIuIiIiISE3oykUVeO/vAe4BcM6NTjcaEREREZHa6JLJhXPucGAosCWwBdAPGOe9H1FmmzWAC4G9gRWBz4HbgQu89zOrHrSIiIiISJ3rqrdF/Qo4myi5+LRSZefcesALwInAc8BfgPeIbnt62jm3YvVCFRERERFpDF3yygXwE+AT4B2iKxiTKtS/HFgZ+KH3/tLcSufcn+N9/Q44vTqhioiIiIg0hi555cJ7P8l7/7b3PlSqG1+1GA58AIxqUXweMA84zjnXJ/FARUREREQaSFe9ctEWu8aPD3jvs4UF3vs5zrkniZKP7YGHk2jQOfdCsfXeewAGDhyYRDNSA927R28xHbPGpOPX+HQMG5uOX2PT8eu47NezaJo+lR7rfjftUFpNyUVlG8aPb5Uof5soudiAOLlwzvUF1o/LM8BazrktgRne+4+qGKuIiIiINLgQAgsfvY851/6VzLJ9WPGSG7BevdMOq1WUXFQ2IH6cXaI8t365gnVDaN6P44J4uR4YWalB7/3WJYoCwLRp0yrtQupE7tsaHbPGpOPX+HQMG5uOX2PT8WufMPULsjdcDq9NAaBpzmymXj+KzKEn1CyGQYMGtXtbJRdV4L2fDFjacYiIiIhIYwhLlhAemki4czwsXpwvWGEl7LubphdYGym5qCx3ZWJAifLc+lk1iEVEREREOpnw/ttkx1wGn7yfX2kZbPcDsIOOwXovk15wbaTkorI348cNSpTnetiU6pMhIiIiIrKUsHABYeI4wsN3QSgYN2jNdckcfza2TuN05M5RclFZru/EcOdcpnDEKOdcP2AnYD7wTBrBiYiIiEjjCa88T/aGK2DG1PzKnj2xA4/Bdj8Q696Y/6Z3yXku2sJ7/y7wALAOcFaL4guAPsBY7/28GocmIiIiIg0mzJ5J9qo/kP3rhc0Ti022JHP+ZWT2OrRhEwvoolcunHMHAwfHv64aP+7gnBsd/zzNe39uwSZnAk8Bf3XO7Q68DmxHNAfGW8Avqx60iIiIiDSsEALhiQcJN18H8wu+k+7bHzvyZGy7YZg1/nhAXTK5ALYEWo7n9Z14AfgQ+Da58N6/65wbAlwI7A3sC3wOXAJc4L2fWfWIRURERKQhhS8+ITv2cnjr1WbrbYddsSNOxvr1Tymy5FkIIe0YpPUCwGeffZZ2HNJKGuO7sen4NT4dw8am49fYdPwgLPmGcN8thLs9LFmSL1hpVTIjzsQ22TK94MoomOeizZdSuuqVCxERERGRqgnvvB4NL/v5x/mVmQw2/BBs/6OwXr3SC66KlFyIiIiIiCQkzJ9HuG0MYfK9zQvW+W40vOya66YTWI0ouRARERERSUB48SmyN14Fs2fkV/bqjR1yHLbrvlimW3rB1YiSCxERERGRDggzppEdfxVMaTHt2fe2IXPM6diKK6UTWAqUXIiIiIiItEPINhEevY9w6xhYuCBfMGB5MkefBoN37BTDy7aFkgsRERERkTYKn3xAduwoeO/NZuttl72xw47Hlu2bUmTpUnIhIiIiItJKYfEiwt2ecP+t0NSUL1h1DTLHnYVtsGl6wdUBJRciIiIiIq0QXn+Z7A2Xw1ef51d2747tcwS2z+FYjx7pBVcnlFyIiIiIiJQR5n5NuOk6wlMPNy9YfxMyx5+FrbZmOoHVISUXIiIiIiJFhBAIz04m/OMamPt1vmCZPtjhI7Hv74llMukFWIeUXIiIiIiItBC++pzsuCvgtSnN1tuQ72NHnoItt0JKkdU3JRciIiIiIrGwZAnhwYmEO8fDN4vzBSsMJHPMGdgW26QXXANQciEiIiIiAoT33yI75jL45IP8Sstgux+AHXQM1nuZ1GJrFEouRERERKRLCwvnE24fR3jkLgghX7DmumSOPxtb57upxdZolFyIiIiISJcVpjxL9sYrYea0/MqePbEDj8F2PxDrrn+X20KvloiIiIh0OWHmdLITroIXn25esOlWZI49A1tp1XQCa3BKLkRERESkywjZLOHR+wi3Xg8LF+QL+g3A3MnYdkMxs/QCbHBKLkRERESkSwiffEB27Ch4781m622nPbAjTsT69Espss5DyYWIiIiIdGph8SLC3Z5w/63Q1JQvWGV1MsediW24eXrBdTJKLkRERESk0wqvv0z2hsvhq8/zK7t1x/Y5DNv3CKxHz/SC64SUXIiIiIhIpxPmfE246RrC05OaF6y/MZnjzsIGrZVOYJ2ckgsRERER6TRCCISnJxFuugbmzskXLNMHO/wE7PvDsUwmvQA7OSUXIiIiItIphC8/IzvuCnj95Wbrbcj3sSNPwZZbIaXIug4lFyIiIiLS0MKSbwj330a46x+w5Jt8wQorkTn2dOx726QXXBej5EJEREREGlZ45/VoeNnPPsqvtAy2xwHRLNu9l0kvuC5IyYWIiIiINJwwfy7h1jGEx+6HEPIFa68fddhee730guvClFyIiIiISMMIIcCLT5EdfzXMnpEv6NUbO+hYbLf9sW7d0guwi1NyISIiIiINIUyfSvbGv8G//tm84HvbkDnmdGzFldIJTL7VruTCOfdeQu0H772uWYmIiIhISSHbRHjkLsLt42DRwnzBgBXIHH0qDN4RM0svQPlWe69crFOhPACljnBhWShRR0RERESE8OG7UYftD99ptt6G7YMdcjy2bJ+UIpNi2ptc7Fpi/XrAn4DewD+AR4FP47JBwFDgSGAhcA6Q1BUQEREREelEwsIFhIk3Eh6+E0I2XzBorajD9vobpxeclNSu5MJ7/2jLdc651QEPTAX28d6/W2TT0c653wD3AhcBW7enfRERERHpvMKUZ8mOvxJmTMuv7N4D2/9IbK9DsO490gtOykpy7vPzgIHAiSUSCwC89+8BJwGrxJS0/aYAACAASURBVNuIiIiIiBBmTqfpiovJjvpd88Ri4y3InH8pmf2cEos6l+RoUXsDc733T1aq6L1/0jk3F9gnwfZFREREpAGFbBNh0r2E28fCwgX5gr79sSNPxrYbpg7bDSLJ5GIlIFuxFuCcM6BbvI2IiIiIdFHho/eiDtsfvN1svX1/T+ywE7C+/VOKTNojyeTic2Bt59x+3vu7K9TdF1gG+CDB9kVERESkQYSFCwh3jic8dAdkC76fXnUNMsediW2wWXrBSbsl2efiVqIhZq91zu1SqpJz7vvAtUTD0N6SYPsiIiIi0gDCy/8ke97ZhAduzycW3XtgBx1L5teXKLFoYEleubgQOIhoONpJzrlniIai/SwuHwTsAuxAlIS8DfwmwfZFREREpI6FWdPJTrgaXniqecFG3yMz4kxslUHpBCaJSSy58N5/7ZzbGRgD7EGURGzfolquJ86DwAne+6+Tal9ERERE6lPIZgmP3Ue4dQwsmJ8v6Nsfcydj26vDdmeR5JULvPdfAMPjW58OBwaT77Q9FXgRuKk1I0qJiIiISOMLn34Yddh+941m622n3bHDT1SH7U4m0eQix3v/BPBENfYtIiIiIvUvLFrE3JuuI3v7OGhqyhessnrUYXvDzdMLTqqmKsmFiIiIiHRd4bUpTB9/JU1ffJpf2a07ts/h2L6HYz16phecVJWSCxERERFJRJgzm+CvITwzuXnB+ptEVysGrZVKXFI7iScXzrmNgcOAzYDlgXJztAfv/e5JxyAiIiIitRNCIDz1COGma2HenG/XW59+cOjx0YR4mSRnQJB6lWhy4Zz7M/BDolGhWtPlPyTZvoiIiIjUVvjiU7I3XA5vvtJsfa/v70G/k37EzCb9u9eVJJZcOOfOAn4c//oKMBH4FFiYVBsiIiIiUh/Ckm8I991KuNvDkm/yBSuuTObYM1hu172i36dNSydASUWSVy5OJboScan3/seVKouIiIhIYwpvvxYNL/v5x/mVmQy2x0HYgUdjvXqnF5ykKsnkYoP48dcJ7lNERERE6kSYN5dwy2jC4w80L1h7fTLHn4WttV46gUndSDK5mAcs1KzbIiIiIp1LCIHw3GOEf/wd5szOF/RaBjtkBLbrvlimW3oBSt1IMrl4FtjbObeS935qgvsVERERkZSEqV+QHXcF/Pul5gVbbkfm6NOwFVZKJzCpS0kmFxcDewG/JN+xW0REREQaUFiyhPDgRMJd42Hx4nzBciuSOeYH2Fbbpxec1K3Ekgvv/ZPOuVOAvznnegO/995/kNT+RURERKQ2wrtvRB22P/0wv9IM221/7KBjsWWWTS84qWtJDkX7XvxjE9HIUac652YAc0pvRfDeq+ePiIiISB0I8+cRbhtLePReCAXzU6y5LpnjzsbW/W56wUlDSPK2qHWKrFsxXkrptLOqOOd2Ac4FtgYGASd670enGpSIiIhIESEEeOFJshP+DrNn5At69sIOOgbb/UCsmzpsS2VJJhe7JrivzqAv8CowJl5ERERE6k6Y+gXZG6+EV19oXrD5kKhvxcBV0glMGlKSfS4eTWpfnYH3/h7gHgDn3Oh0oxERERFpLuqwfTvhrgnNO2wPWB478lRsyE6YWXoBSkNK8spFqpxzhwNDgS2BLYB+wDjv/Ygy26wBXAjsTXT71ufA7cAF3vuZVQ9aREREJAXhndfIjr0cPvsov9IMG7YPdvBx2LJ90gtOGlqnSS6AXxElFXOBT4CNylV2zq0HPAWsDEwE3gC2BX5ENF/HTt776VWNWERERKSGwrw5hFuuX3qG7TXXJXPcWdi6G6QTmHQaSY4W9ev2bOe9vzChEH5ClFS8Q3QFY1KF+pcTJRY/9N5fmlvpnPtzvK/fAacXrP8t0Rwe5ezqvZ/c5shFREREqiiEQHh2MsFf22KG7d7Ygcdgux+gDtuSiCSvXJxP20Z/srh+IsmF9/7bZMI5V7ZufNViOPABMKpF8XnAacBxzrlzvPfz4vX/B9xQIYyPKpSLiIiI1FT48rNohu3XX25esMW2ZI7+AbaiZtiW5CSZXIyhfHIxgGhY1jWBGcCdCbbdVrmRrR7w3mcLC7z3c5xzTxIlH9sDD8frpwHTahGcc+6FYuu99wAMHDiwFmFIArp3j95iOmaNScev8ekYNjYdv44J3yxm3m3jmHfz9fBNvsN2ZsWV6XfqT+i93dCqtq/j1zUlOVrUyNbUc86NAK4ClnjvT02q/TbaMH58q0T520TJxQbEyUVbOef6AuvHv2aAtZxzWwIzvPe6wiEiIiJVs/i1KXx9+f/QVDjDdibDsvsdQZ+jTyGzjDpsS3XUvEO39/4G51wf4HLn3BPe++trHQPRVRSA2SXKc+uX60AbQ2je7+OCeLkeGFluQ+/91iWKAsC0aTW5gCIJyH1bo2PWmHT8Gp+OYWPT8Wu7MG8u4ZbRS3fYXnt9MsedxaK112PRvAUwb0HVY9Hxa1yDBg1q97ZpjRY1BrgUOIPon+1OJ+7YrcGhRUREpOpCCITnnyBMuBq+npUv6LUMdsgIbNd9sYw6bEv1pZJceO8XOOfmA5uk0T75KxMDSpTn1s8qUS4iIiJSF8K0L8mO+9vSM2xvuR2Zo0/DVlCHbamdVJIL59w6QH/g6zTaB96MH0sN5vzd+LFUnwwRERGRVIWmJsLDdxAm3giLF+ULllshGgVq8A7pBSddVs2TC+fcKsB1RP0Hnq91+7FcX4jhzrlM4YhRzrl+wE7AfOCZNIITERERKSd8+A7ZMZfBR+/lV2qGbakDSU6id22FKr2BNYBtgJ5Almiiuprz3r/rnHuAaESos4j6f+RcAPQBriyY40JEREQkdWHhAsLEcYSH74JQMJr+6mtHM2yvt1F6wYmQ7JWLkURXI1rTifkz4OzCie86yjl3MHBw/Ouq8eMOzrnR8c/TvPfnFmxyJvAU8Ffn3O7A68B2RHNgvEXl2bhFREREaia8/E+yN/4NZkzNr+zREzvgKGzPg7HuaY3TI5KX5Fl4QYXyJUQdpF8BnvTeNyXYNsCWwAkt1n0nXgA+BL5NLuKrF0OIZgjfG9gX+By4BLjAez8z4fhERERE2izMnE52wlXw4tPNCzbZksyxZ2Arr5ZOYCJFWAjlJtWWOhMAPvvss7TjkFbSGN+NTcev8ekYNraufvxCtokw6V7C7WNhYcG8FH37Y0eejG03DLP6HfW+qx+/RlYwz0WbTzBdPxMRERGpM+Gjd8mOGQUfvtNsve20B3b4SKxv/5QiEymvqsmFc24ZYGD86zTvffWngxQRERFpUFGH7RsJD9/ZvMP2qmuQOe5MbIPN0gtOpBUSTy6ccysAPwQc0TwSucspwTn3FvAP4K/q0yAiIiKSF6Y8Q3b8VTCj4Dai7j2w/Ry216FYjx7pBSfSSokmF865bYHbgVVY+h4tAzYCfg2c5pw7xHv/XJLti4iIiDSaMGMq2fFXw5QW02ttvEXUYXuVQcU3FKlDSc5zsQpwL7A8MBP4G/AI8ElcZQ1gd+AHwGrA3c65zbz3XyYVg4iIiEijCE1NhEl3EW6/ERYV3DnebwDmTsa2G1rXHbZFiknyysXPiBKLfwHDvfdftSh/E3jYOXcJ8ACwGfBTCoaHFREREekKohm2R8FH7zZbbzsPxw47AevTL6XIRDomk+C+9iMaKvWkIonFt+IrFScR3Sa1f4Lti4iIiNS1sHA+2QlXk/3duc0Ti9XWJPOz35M5/mwlFtLQkrxysRYwx3v/YqWK3vsXnHNz4m1EREREOr3w0jNkb7wSZk3Pr+zeA9v/SGyvQ7Du6rAtjS/J5GIx0NM5Z977sjPzOecyQI94GxEREZFOK+qwfRVMebZ5wSZbkjn2dGxlddiWziPJ5OINYBvgEODWCnUPAXoDryTYvoiIiEjdyHfYHgeLFuYL+g3AjjwF23YXddiWTifJ5MID2wJXOee+9t4/VKySc+5A4Cqi/hkTEmxfREREpC6ED94mO/bypTts77IXdugJWJ++KUUmUl1JJheXASOALYH7nXPPA5OAT4muUqwFDAU2JerM/RIwKsH2RURERFIVFswnTBxHeOTu5jNsD1ormmF7/U3SC06kBhJLLrz3i51zw4GxwF5Et0gNaVEtd+3vPuB47736XIiIiEjDCyHAS/EM24Udtnv0jDpsDz9YHbalS0h0hm7v/TRgH+fc94HDgcHASnHxVOBF4Gbv/RNJtisiIiKSljB9KtnxV8LLzzUv2GSruMP2aukEJpKCRJOLnDh5UAIhIiIinVZoaiI8chdhYosO2/2Xizpsb7OzOmxLl1OV5EJERESkMys5w7Y6bEsXV7Xkwjm3HFHn7sLboqZ472dVq00RERGRagoL5xNuV4dtkVISTy6cczsC5wO7ke/AnROccw8BF3jvn066bREREZFqCVOeIXvjVTBzWn6lOmyLNJNocuGc+0/gf4mSCgOagJlx8fJAN2A4sIdz7qfe+78k2b6IiIhI0qIZtq+GKc80L9hkSzLHnqEO2yIFMkntyDm3F/DHeJ+TiZKIft77lb33KwN9gT2BR+I6f3TO7ZlU+yIiIiJJCtkmsg/dQfbXZzdPLPoNwE45h8yPL1BiIdJCklcufho/3uC9P75lofd+EfAw8LBzbgzRhHs/Ax5MMAYRERGRDgsfvkt27Cj48J1m623n4dhhJ2B9+qUUmUh9SzK5GAJkyScZ5fwUOJZooj0RERGRuhAWzidMvJHw8F3NO2yvtiaZ487CvqsO2yLlJJlcGDDbe/9lpYre+y+dc7OI+mCIiIiIpK5oh+3uPaIO23sdog7bIq2QZHLxOrC1c66f935OuYrOuf5Af+D5BNsXERERabOSHbY33iLqsL3KoHQCE2lASSYXVwDXAb8Aflmh7s+JrlpckWD7IiIiIq0WmpoIk+4i3H4jLFqQL+g3AHMnY9sN1QzbIm2UWHLhvb/eObcF8Avn3IrAxd77DwvrOOfWAv4LOA34i/d+TFLti4iIiLRWyRm21WFbpEPalVw45x4pUzwHOBU41Tn3EfBpvH4QsHb889fAVs65h733u7cnBhEREZG2KjnDtjpsiySivVcuhrWy3trkE4pCA+J9hHa2LyIiItIm4aVnyN54Jcyanl/Zoye2n1OHbZGEtDe5ODHRKERERESqJEyfSnb8lfDyc80LNtmSzLGnYyurw7ZIUtqVXHjvr086EBEREZEkhaYmwiN3ESaOg0UL8wX9BmBHnoJtu4s6bIskLMnRokRERETqQvjg7WiG7Y/ea7bedtkLO/QErE/flCIT6dyUXIiIiEinERbMJ0ws0mF70FpkRpypDtsiVabkQkRERBpeCAFeeprs+Ktg1ox8QY+e0Qzbww9Wh22RGlByISIiIg2tdIftreIO26ulE5hIF6TkQkRERBpSaGoiPHwH4Y7xzTts918u6rC9zc7qsC1SY0ouREREpOGE99+KOmx//H6z9bbL3tihx6vDtkhKlFyIiIhIwwgL5hNuG0uYfA+Egrl4V1876rC9/sbpBSciSi5ERESk/oUQ4MWnyU4o0mH7gKOwPQ/GuuvfGpG0JfYudM69CATgCO/9e5Xqi4iIiLRGmP4V2RuvhH/9s3nBpluROfYMbKVV0wlMRJaSZIq/CbBYiYWIiIgkITQtYf5dnuyNV8PiRfkCddgWqVtJJhefAisnuD8RERHposL7bzHjoitZ8v7bzdbb0LjD9rLqsC1SjzIJ7ut+YFnn3HYJ7lNERES6kLBgPtkbryR78U+bJxarr03m5/8TddpWYiFSt5JMLn4LTAf+5pwbmOB+RUREpJMLIRBeeIrsr88kTLo7PxJUz17YoSeQ+dVfNBKUSANI8rao9YFfAn8C3nTOjQGeBqYCTaU28t4/lmAMIiIi0mBKddjuudV29DvtXGZ175VSZCLSVkkmF5OJRosCMOCH8VJOSDgGERERaRDfzrA98calO2wfdSrL7X1w1GF72rT0ghSRNknyH/uPyCcXIiIiIiWF998mO/aypWfYLuiwrZGgRBpPYsmF936dpPYlIiIinVNYOJ9w+zjCI3dDyOYLVl+bzHFnYettlF5wItJhuiVJREREaiK89EzUt2LW9PxKzbAt0qnoXSwiIiJVFWZMIzv+KpjyTPOCTbYiM0IzbIt0JoknF845Aw4B9gTWBJbx3u9eUN4H2BoI3vvHk25fRERE6kPINhEm3UO47QZYtCBf0G9ANMP2truoX4VIJ5NocuGc+y5wK7AJ0YhRsHQn74XANcB3nHNDvfdPJBmDiIiIpC989C7ZMaPgw3earbedh2OHnYD16ZdSZCJSTYlNouecWx54CNgUeAX4NfB1y3re+ybgCqLk47Ck2hcREZH0hUULyd50LdnfndM8sVh1DTI/vYjM8WcrsRDpxJK8cnEO0W1Q9wMHeO+XOOfOAop9gtwB/BHYMcH260r83H8ArBOv+jfwW+/93akFJSIiUkVhyjNkx18NM6bmV3bvju3nsL0Ow3r0SC84EamJxK5cAAcR3QJ1jvd+SbmK3vt3gMVEs3p3Vp8APwcGA0OAR4DbnXPfSzUqERGRhIXpX9F02W/JjrqoeWKx4eZkzruUzP5HKbEQ6SKSvHKxLrDQe/9aK+vPAQYk2H5d8d5PbLHql865M4AdgH+lEJKIiEiiwpIlhIcmEu6c0HyG7b79scNPxHbcTR22RbqYJJOLAHRrTUXnXHegP0X6ZLSXc+5wYCiwJbAF0e1Y47z3I8psswZwIbA3sCLwOXA7cIH3fmaCsXUDjgD6Ak8ltV8REZG0hLf+TXbcFfDZR83W287Doxm2+/ZPKTIRSVOSycX7wKbOue9479+rUHd3oAfweoLt/4ooqZhLdEtS2Sk+nXPrEf2jvzIwEXgD2Bb4EbC3c24n7/30MruoyDm3OfA00DuO6xDv/Ssd2aeIiEiawpyvCbdcR3jy4eYFq69NZsSZ2PobpxOYiNSFJJOLu4HNgJ8A/1GqUjzPxR+IrnS0vHWoI35ClFS8Q3QFY1KF+pcTJRY/9N5fWhDfn+N9/Q44vWD9b4FfVtjnrt77yQW/v0l0JWUAcDhwvXNumPf+1dY8IRERkXoRslnCkw8Rbrke5s3JF/TqjR14NLbbAZphW0QSTS7+BJwGnOmcmw38pbDQOdeP6PajC4ENgU+JhqRNhPf+22TCOVe2bnzVYjjwATCqRfF5RM/jOOfcOd77efH6/wNuqBBGs2vD3vvFRMkOwAvOuW2IEpeTK+xHRESkboRPPohugXqnxQ0HW21P5qhTsRVWSicwEak7iSUX3vtpzrmDgDuB/yIaKckAnHMziPpYWLzMAA4u+Me91naNHx/w3mcLC7z3c5xzTxIlH9sDD8frpwHTOthuBuhVqZJz7oVi6733AAwcOLCDYUitdI+/xdMxa0w6fo1Px7BjwsIFzP3Htcy/cwI0NX27PrPyavQ/9T/pNWSnqrav49fYdPy6pkSvX3rvn3DObQFcRHQbUM+4aLn4cQlwC/AL7/2HSbbdRhvGj2+VKH+bKLnYgDi5aCvn3O+JbhX7mKhz+THAMGC/9uxPRESklha98BRfX/lHslO/yK/s3p1lDzqGvkeMxHr1Ti84Ealbid8c6b3/CBjhnDsV2BpYjegb+y+B5733c5Nusx1yQ+DOLlGeW79cifLWWJXoNqpV4/39C9jHe39/pQ2991uXKAoA06Z19AKK1Eru2xods8ak49f4dAzbLsyaQZhwNeGFJ5sXbLAZmWNPZ9GgtVg0Zy7Mqf6fcx2/xqbj17gGDRrU7m2r1vPKe78AeKJa+6933vuRaccgIiLSWiGbJTx2H+HWMbBgfr6gbz/s8JM0Z4WItEpXHdYhd2Wi1CR+ufWzahCLiIhIqsIn75Mdezm892az9bbDbtgRJ2H9NGeFiLROVZIL59yORH0uBgO5ISSmAi8CN3nvn65Gu22Q+/TcoET5d+PHUn0yREREGl5YtIhw1wTCg7c367DNyoPIHHcmttH30gtORBpSosmFc24V4Hpgz3hV4fXTjYGdgR855x4ARnrvv0yy/TbIDVs73DmXKRwxKh4ydydgPvBMGsGJiIhUW3j1BbI3XAHTv8qv7NYd2+dwbN/DsR49S28sIlJCJqkdOef6A48TJRZGNDP1xcDZ8XIR0YzYRjQS06PxP/I1571/F3gAWAc4q0XxBUAfYGyKQ+WKiIhURZg9k+xVfyB7yQXNE4sNNiVz3iVkDjpGiYWItFuSVy7+G1if6PanI1vMVP0t59wuwE1Etx79img+jA5zzh0MHBz/umr8uINzbnT88zTv/bkFm5xJlOz81Tm3O/A6sB3RHBhvUXk2bhERkYYRslnC4w9EM2wvKPjubNm+2BEnYjvujmUS+85RRLqoJD9FDiMaKvWUUokFgPf+MeAUoisYhyfY/pbACfGyV7zuOwXrmrUVX70YAowmSirOAdYDLgG2995PTzA2ERGR1IRPPyT7v78g3HB5s8TCtt+VzG8uJ/P9PZVYiEgikrxysRqw0Ht/Zyvq3gUsANo/iG4L3vvzgfPbuM3HwIlJxSAiIlJPwuJFhLs94f5bm3fYXmlVMiPOxDbZMr3gRKRTSjK5mErpoV2b8d4H51wToKsDIiIiVRBeeynqsF04w3a37theh2L7HYH17JVecCLSaSV5DfQBoK9zbodKFeM6fYGKs1WLiIhI64WvZ5H9+5/I/uW85onF+huT+e//I3PICCUWIlI1SSYXFxBdiRjtnFu3VCXn3DrAdcBX8TYiIiLSQSEEso8/QPa/zyQ8+2i+YNk+2HFnkfnpxdjqa6UXoIh0CUneFrUu8F/AH4FXnXMemAx8GpcPAoYCRwKLgXOB7zjnvtNyR3GnbxEREWmF8PknZG8YBW/9u9l623YX7MiTsf7LpxSZiHQ1SSYXk4lGi4JoJKjj46UlA5YBri6xn5BwXCIiIp1S+GYx4Z6bCffeDE1L8gUDVyFz7OnYZlunF5yIdElJ/hP/EfnkQkRERKoovPMa2esvhS8+za/s1g0bfjC231FYL/WrEJHaSyy58N6vk9S+REREpLiwcAHhtrGESXdDKPhO7zsbkjnuLGyNdVKLTUREtx+JiIg0iPDaFLJjLoPpX+VX9l4GO/QEbOjemghPRFKn5EJERKTOhflzCTddR3jiweYFmw8hM+IMbIWV0glMRKSFqiQXzrnewHBgMJD7xJsKvAg84L1fWI12RUREOpsw5Vmy466AWTPyK/v0w448Bdt+GGaWXnAiIi0kmlw45zLAz4CfA/1LVPvaOfd74A/e+2yS7YuIiHQWYc5swvirCP98vHnB1juSOeYHGl5WROpSYsmFc86Am4CDiYabXQi8RPN5LgYDA4CLgG2Bw5JqX0REpDMIIRCee4ww4WqY+3W+oP9y0fCyg3dMLzgRkQqSvHJxJnAIkAUuBP7svZ9TWME51xf4CXAecLBz7gzv/RUJxiAiItKwwszp0S1QLz/XbL3tsGt0G1SffilFJiLSOkkmF6cQzXPxc+/9n4pV8N7PBX7jnJsP/AE4FVByISIiXVrIZgmP3U+4dQwsmJcvWGEgmRFnYZtrMjwRaQxJJhcbAEuAy1tR93LgYmDDBNsXERFpOOHj98mOHQXvv9VsvQ3bJxpidpllU4pMRKTtkkwu5gHdvPcLKlX03i9wzs0lSkZERES6nLBwAeHO8YSH7oBswfgmK69G5vj/wDbcLL3gRETaKcnZdp4DlnPOrVWponNubWA54JkE2xcREWkIYcozZM87i/DA7fnEont3bP+jyJx/qRILEWlYSSYXFwNNwOXOuR6lKjnnugOjiK5a/D7B9kVEROpamD6VplG/IzvqIpgxLV+w4eZkfv1XMgcdg/XomV6AIiIdlNhtUd77J51zRwHXAM875/4EPErzoWiHAucAawFHeu+fSqp9ERGRehWamggP30G4YzwsKphHtm9/zJ2syfBEpNNIcp6LpoJfNwOuq7DJzc65YuuD974qM4eLiIjUWnj3DbI3XAGfvN9sve08HDvsBA0vKyKdSpL/xCf1lYu+uhERkYYX5s8l3DqG8Nj9EEK+YPW1yYw4A1t/k/SCExGpkiSTi3UT3JeIiEhDCiEQnn+SMOEq+HpWvqBnT+yAo7E9DsK66wK9iHROSfa5+DCpfYmIiDSiMP0rsuP+Bq8837xg8yFkjvkBNnCVdAITEakRfXUiIiLSQVGH7TsJE8fB4kX5guVWIHPUaTB4B3XYFpEuQcmFiIhIB4QP3yU75jL46N38SjNs6D7YIcdhy/ZJLzgRkRpLcrSoa9uxWfDen5xUDCIiIrUSFi4g3HEj4aE7IRTMsL362mSOOwtbb6P0ghMRSUmSVy5GAoHyoz0VDJeBxb8ruRARkYYSXnk+6lsx/av8yu49sAOOwoYfog7bItJlJfnpd0GF8gHANsBOwAzgCqJZukVERBpCmD2T8I+/E/75ePOCjbeIhpddeVA6gYmI1IkkR4uqlFwA4JzbGbgNGAzsn1T7IiIi1RKyWcITDxJuGQ3z5+UL+vbDjjgZ22FXddgWEQEytW7Qe/84cAawN/DjWrcvIiLSFuHDd8n+/meEsaOaJRa2w65kLryCzI67KbEQEYmldVPobcA3RP00/pJSDCIiIiWFeXMJE28gTL6veYftlVaNOmxvvEV6wYmI1KlUkgvv/RLn3GJg/TTaFxERKSVks4SnJ0W3QM2ZnS/o3h3b61Bs3yOwnr1Si09EpJ6lklw45zYD+gIz02hfRESkmPDx+2Rv/Bu883rzgk23InP0D7BV1GFbRKScmicXzrmtgNFEw9A+Xr62iIhI9YX586I5Kx65u/ktUCsMJHPkKbCVZtgWEWmNJCfRe6RCld7AGsDqRHNczAfOT6p9ERGRtgohEJ6dTLjpOvh6Vr6gW3ds+MHYfg7r1Tu9AEVEGkySVy6GtaHuc8APvfdTEmxfN6MCLQAAIABJREFURESk1cKnH0a3QL317+YFG28R3QK12hrpBCYi0sCSTC5OrFC+BJgFvOK9/yjBdkVERFotLF5EuGM84cHbIVtwC9RyK2DuFGzITroFSkSknZKcRO/6pPYlIiJSDeHNV8mOuRS++jy/sls3bI8Dsf2PxHovm15wIiKdQFrzXIiIiNRMmD+PcMv1hMfua16wwWZkjjkdW32tdAITEelklFyIiEintuifT5K9/Pcwa3p+5TLLYkechH1/T90CJSKSICUXIiLSKYU5s5k95lIWPv5g84IttiVz7BnY8iumE5iISCem5EJERDqVaHjZRwn/uJqFc+fkC/oNwI7+gTpsi4hUkZILERHpNMKMqWRvuAJeeb7Zett+V+zIk7G+/VOKTESka1ByISIiDS9ks4TH7iPccj0sXPDt+sxKq9D/9J8zZ631U4xORKTrUHIhIiINLXz+Mdmxo+Dt15qtt133Y8VTf0xmmT7MmTYtpehERLoWJRciItKQwjeLCffcTLj3Zmhaki9YdXX+f3v3HWdXUTd+/HNuGiGEUAJPCKFXESQCYug9gLTQBgi9SVN4+ImPj4ooiFgeBRFBQECkyqCACKIUwUIAERCU3hFCSyA9pN35/XHuZndDNltyds/e3c/79drX3Tsz58x3HTfs986ZmcoRXyRbZwMqAweVF6Ak9UKFJRchhA+BKvCZGOMrRd1XkqQFpeeeytdWvPtWY2GfPmSj9yXb62Cyfv3LC06SerEiZy76A3NMLCRJnSVNm0K6+Rekcfc1r1hzPSqHn0I2YvVS4pIk5YpMLt4AVivwfpIkAbXtZR9+gBSvhGlTGisGLkm27xFk2+1KVulTXoCSJAAqBd7rdmBACGGXAu8pSerl0rvjqV5wFumqC5onFptsSeWci6ns8DkTC0nqJopMLs4DXgN+HkL4RIH3lST1QmnuHKp3Rqrf+iI8+2RjxXJDqXzhTPqc9L9ky3jKtiR1J0U+FrUP8DPgLOCJEMJdwEPA+8C8li6KMV5TYAySpB4gvfQM1WsvgfFvNBZmFbKd9iLbZyzZEgPLC06S1KIik4urgQRktfd7175aY3IhSQIgzZhG+s01pL/8oXnFqmtROeIUstU8DE+SurMik4u/kCcXAkII3wK+uUDxuzHGYSWEI0ndWkqJ9I+/kX71c5gyqbFiwBJkYw4l22FPsj6uq5Ck7q6w5CLGuH1R9+pBnge2b/K+xcfDJKm3ShPepXr9pfDvx5pXbLw5lUNOIFt+hXICkyS1myd0d665McZ3yg5CkrqjNG8e6d7bSbffALNnNVYssxyVQz4Pn96CLMtavoEkqdvpMclFCOEAYDtgJLAxMBi4PsZ42CKuGQGcA+wGLA+8DdwGnB1j/LCAsNYMIYwHZgGPAF/zkEFJgvTqi1Sv+Sm8+WpjYZaRbb872ZjDyZYcVF5wkqQO65TkIoSwJnAAsAnQMJ/9PvA4cHOM8dWWrl0MZ5InFdOAN4H1W4lxLWAcsCLwW+A5YHPgNGC3EMJWMcaJixHPI8BRtfuuWItvXAjhk4t5X0mqW2nmDNJt15HuvxNSk2V6K6+Wn7C91iL/6ZYkdXOFJhchhIHAhcAx5LtGLTiffSBwXgjhCuD0GOPMArs/nTypeIl8BuP+VtpfQv5H/6kxxosaCkMI59fu9R3gxCbl5wJfb+WeO8QYHwCIMd7VtCKE8DDwCnAkcH7rP44k9SzpiYep3nAZTGry+Ur//mR7HkK2yz5kfXvMZLok9VpZSsVs8BRCqAB/AHYiTyreAh4g/4MfYAT54uaVyXeVuhfYLcZY+A5TIYTtyZOLhT4WVZu1eIn80L+1YozVJnWDyR+PyoAVY4zTa+VDgaGtdP1GjHHGIuK6H3guxnhSK/E/trDyGOMmALNnz24lDHUXfWt/LM2dO7fkSNQRjl8x5k14j6lXnM+sR/7SrLz/yM0ZfMKX6Tts5U7r2zGsb45ffXP86lf//v0bvm33wrciPyY6GtgZ+Ij80aIrFkwcQggZcDz57MbOtWuuKjCGttqh9np308QCIMY4NYTwIDAaGAXcVyufAEzoaIchhCXIH9VqbUZFknqENGcOM+64ienxF6SPGieqK0OWZaljTmOJbXZxwbYk9TBFJhdHkM9InBpjvGJhDWrJxuUhhARcRv6IUBnJxXq11xdaqH+RPLlYl1py0V4hhB8CvwPeIH/86hvAIOCXrV0bY9y0haoEMGFCh3McdbGhQ/PJLsesPjl+HZeeeYLqjZfDO281K8+2GQ37H8n0QYOZPrHzl585hvXN8atvjl/9Gj58eIevLTK52AiYQxv+eK61+WntmjIMqb1ObqG+oXyZxehjBHAj+aNU7wMPA6NijK8vxj0lqVtLE9+nGq+Ex8c1rxi+KpVDTyRbd8NyApMkdYkik4uBwIwY45zWGsYYZ4cQpteu6ZFijAeXHYMkdZU0Zw7p7ltJv7+5+ZkVSwwk23ss2Q57uGBbknqBIv+lHw+sHkJYO8b40qIahhDWJZ8V6IwtaduiYWZiSAv1DeWTuiAWSapr6d+PUb3x5/De+Gbl2agdyA44imzIsiVFJknqakUmF/eSL9a+LISwR4zxo4U1qi1svpR8/cA9BfbfHs/XXtdtoX6d2mtLazIkqddLE96letMV8M9HmleMWJ3K2BPJ1tmgnMAkSaUpMrn4PnA4+XazT9XOi3iAfEvaJYBVyXdpOg0YTr6r1A8K7L89GnZsGh1CqCxkK9qtgBnk6yQkSU2kObNJf7iFdNevYU6TrbEHDiIbcyjZdruT9elTXoCSpNJUirpRjPEVIJD/Ub42cDHwNPmjRe8AfydPQFautTmodk2XizG+DNwNrA6cskD12eS7Ol3bcMaFJAlSSqTHH6L6zS+Qbr+hWWKRbbUTlXN/RmXHPU0sJKkXK3R1XYzxjhDCxuQnWe/Hx9c0TAJuAc4rOrEIIYwBxtTeDqu9bhFCuLr2/YQY4xlNLjkZGAf8JISwE/As8Fny2ZUXaP00bknqNdIbr+S7QD3/r+YVq65FZewJZGutX05gkqRupfCtO2pJw7HAsSGENYEValXvd/JMxUjyczOaWrP2BfA6MD+5iDG+HELYDDgH2A34HPnJ3BcCZ8cYP+zEWCWpLqTJH5Juu4704L2QmpyLuuRSZPseTrbtaLKKMxWSpFyWUmq9VRuEEPaufTuudpq1ipcAxo8f31o7dRMeIFTfevP4pTmzSffeTrrzZpjVeLo2lUq+rexeB5MNGlxegG3Um8ewJ3D86pvjV7+aHKKXtffaImcubgPmAssVeE9JUhdKKcHj46je/AuY+F7zyo02o3Lg0WQrrVJOcJKkbq/I5OIDgBjjtALvKUnqIun1l/KtZV98pnnFSqtQCceSbbhJOYFJkupGkcnF08CWIYSlY4xTCryvJKkTpUkTSbdeR3roT83XVSw1mGzvQ8m23dUdoCRJbVJkcnE5sA3wReA7Bd5XktQJ0tw5pHt+S7ozwqwm55726UO2w55kex5ENmip8gKUJNWdwpKLGOP1IYTNgbNrp3BfEGP8oKj7S5KKk557iur1l8I7bzav2HhzKgccTTZs5XICkyTVtcKSixDCn2rfzgC+BnwlhPAS8D4wr4XLUoxxp6JikCQtWpryIenmX5AefqB5xcqrUQnHkG3w6VLikiT1DEU+FrX9Qu69fu2rJcXsgytJWqRUnUf68x9Jt14LM6c3VgwYSDZmbP4YlOsqJEmLqcjk4ugC7yVJKkh6/SWq1/0MXnuxWXm22dZk4ViyZZcvKTJJUk9T5JqLXxZ1L0nS4kszpuWnaz9wV/NdoFZcicrYE8k+6SNQkqRiFbnm4tTat7+OMXqEtCSVJKVEeuTPpJuvgimTGiv69iPb/QCy3fcn69e/vAAlST1WkY9FXUC+cPvSAu8pSWqH9PabVG+4FJ57qnnFJz9NZewJZCsOLycwSVKvUGRyMQHoG2OcXeA9JUltkKrz8jMrbrsO5s5trFhmOSoHHQebbkWWZeUFKEnqFSoF3utxYEgIYYUC7ylJakWa+D7VH32D9OurGxOLSoVs532ofPuSfOG2iYUkqQsUOXPxE2BX4BvAqa20lSQtpvlrK264rPn2squtTeXIL5KtskZ5wUmSeqXCZi5ijHcBZwAnhhCuDSFsXNS9JUnNpenTSD//IenK8xsTi6xCtudBVP73ByYWkqRSFLlb1Cu1b+cCY4GxIYSZwEQWfUL3WkXFIEm9QXr2SapX/RgmTWwsXGEYlWNOJ1v7E+UFJknq9Yp8LGr1hZQtWftqiSd0S1IbpTmzSbdcS7r3t83Ks613ITvoWLIlFvXPrSRJna/I5GKHAu8lSWoi/edVqleeD2+93li41NJUjvgC2adHlReYJElNFHlC95+LupckKdfiFrMbbZYv2h6ybHnBSZK0gCJnLiRJBUoT36P6iwvh+X81FvbvT3bgMWTb7e72spKkbqdTkosQQl9gU2AVYMkY4zWd0Y8k9URp7lzSfb8j/e5GmPVRY8Vqa1M57v+RDRtRXnCSJC1C4clFCOErwJeBpnP11zSpXwYYB/QHto0xji86BkmqV+mlZ6he97PmayuyCtkeB5LtcRBZXyecJUndV5EndBNCuB44jzyxeJV8W9pmYoyTgD8DawAHF9m/JNWrNG0K1V9eRPX7/9s8sVh5NSpf+R6VfQ41sZAkdXuFJRchhIOBQ4B3gC1jjGsDH7TQ/HogA3Yuqn9JqkepWqX6t3uofuMk0t/uaazoP4DsgKOonHkB2VrrlxegJEntUOTHYMeSn1vx3zHGR1pp+w+gCmxYYP+SVFfSm69Rvf5n8NKzzStGjqJy8PFky69QTmCSJHVQkcnFp8mTi9tbaxhj/CiEMBnwv5ySep300UzSHb8i3fNbqFYbK5ZfkcohnyfbePPygpMkaTEUmVwsBUyNMc5qY/v+wLwC+5ekbi2lBP98hOqvLocPJjRW9OlDNnpMvmB7wBLlBShJ0mIqMrl4HxgeQhgcY5y6qIYhhHWAQcALBfYvSd1Wmvge1Rsvhyf/3rxi3U9SOfQksuGrlhOYJEkFKjK5eBA4sPZ1VSttv0z+CNX9BfYvSd1OmjuXdO9vSb/7FcxuMrG71NJkBx5NtsWOHoYnSeoxikwuLgICcG4I4e8xxn8v2CCEMAA4CziOfEH3TwvsX5K6lfTiM1SvuwTGv9GsPNtmNNn+R5INGlxSZJIkdY7CkosY44MhhP8jn5V4JIRwLzAYIIRwPrAqsD2Nh+udFWN8uqj+Jam7SFOnkH5zNenBe5tXjFidymEnu7WsJKnHKvREphjjV0II44FvA3s1qTqN/FwLgOnAV2OMzlpI6lFSSqRx95F+/QuY1mTp2YAlyPYeS7bTXmR9+pQXoCRJnazw415jjBeGEK4G9ge2BFYiP6zvXeAh4OYYY0uH60lSXUpvvUH1+kvgxWeaV3y6dmbFcu68LUnq+QpPLgBijJPJF3W3trBbkupamjWLdOevSHffBvOa7K7tmRWSpF6oU5ILSeoN0lOPUr3hMpj4XmOhZ1ZIknoxkwtJaqf0zltUb74Knnq0ecXaG+QLtlf2zApJUu9kciFJbZRmTCfdeRPpvjtg3tzGiqUGkx1QO7OiUikvQEmSSmZyIUmtSNV5pAfvI916LUyd3FiRZWRb7Uy235Fkg5cuL0BJkroJkwtJWoTZTz9B9bIfwn9ebV6x9ifyXaBWW7ucwCRJ6oZMLiRpIdKEd5n0ix8za9yfmlcsNzR/BGqzrcmybOEXS5LUS5lcSFITadZHpLt+TfrjrcyaO6exon9/sl33J9t1P7IBA8oLUJKkbszkQpKAVK2S/v5n0m+ugUkTm9Vlm29Ltv+RHoQnSVIrTC4k9XrpjVeoXv8zeOX5ZuV911qfwcf+N1NWGF5SZJIk1ZfCk4sQwhrA6cAuwCrAEjHGvk3qlwFOBRLwvRjjnIXeSJI6WZr1Een2G0n3/haq1caKIcuS7XsEy+11YL617IQJ5QUpSVIdKTS5CCHsC1wDLAk0rHRMTdvEGCeFEHYEtgGeAX5TZAyS1BbpX4/lsxVNT9fu25dsl33IPncg2RJLemaFJEntVFhyEUJYH7geWAK4rPb9LcDyC2n+c2BbYE9MLiR1oTT5Q9JNV5Ae/WvzivU2yk/XHrZyOYFJktQDFDlz8WXyxOKCGOOXAEII81poe2/tdfMC+5ekFqVqlfTXu0m/+SXMnN5YMWgw2YHHkG25o1vLSpK0mIpMLnYifwTqB601jDG+G0KYTr4mQ5I6VXrrDarXXQwvPdusPBu1A1k4hmzwkJIikySpZykyuRgGTI0xvtvG9rOApQrsX5KaSbNnke68mfTHW2De3MaKFYblj0BtMLK84CRJ6oGKTC6mA0uHEPrEGFt6HAqAEMJgYBngvUW1k6SOSs8+SfW6S+C9txsL+/TJD8Lb40Cy/h6EJ0lS0YpMLp4GtgI2Bf7eStuDgArwWIH9SxJp+lRSvIo07r7mFWutT+XwL5CtvGo5gUmS1AsUuc9iJN9+9tshhBbvG0LYCPge+fqM6wvsX1Ivlx4bR/WsU5onFgMHkR12MpX/+Z6JhSRJnazImYvLgOOAnYH7Qgg/abh/LaFYDdgdOAoYCPwNuKnA/ruVEMJr5D/zgn4fY9yji8ORerQ06QOqN1wKTzzcrDzbdCuyg48nW2a5kiKTJKl3KSy5iDHOCSHsBtwObEd+jkWDfzb5PgMeBvaLMTY7YK+H+QzQp8n7lcgfA4vlhCP1PCkl0oP3km6+CmY02V52meWoHHoi2chR5QUnSVIvVOgJ3THGd0IIW5LPThxJ/gd2/1r1POAfwNXAlTHGuQu7R08RY3y/6fsQwrHAFEwupEKk99+heu3F8OyTzcqzbUaTHXAU2ZJuRidJUlcrNLkAqCUNVwBXhBD6AMuRr+2Y2JkJRQjhAPIZk5HAxsBg4PoY42GLuGYEcA6wG/lJ4m8DtwFnxxg/LDC2DDgWuC7GOLOo+0q9UarOI/3pDtKt18HsWY0VKwyjcvgpZJ/YuLzgJEnq5QpPLpqqbUn7fqsNi3EmeVIxDXgTWH9RjUMIawHjgBWB3wLPkZ8YfhqwWwhhqxjjxIJi2wVYA/h5QfeTeqX01htUf/kTePWFxsKsQrbL3mR7H0o2wO1lJUkqU2HJRQjhFeC9GGObHnIOIfwVGB5jXKugEE4nTypeIp/BuL+V9peQJxanxhgvahLX+bV7fQc4sUn5ucDXW7nnDjHGBxZSfjzwaIzxyYXUSWpFmjuHdNdvSHfG5ofhrbwalSNPJVtjnfKCkyRJ8xU5c7E6sEQ72o8ACtsXMsY4P5kIISyybW3WYjTwGnDxAtXfBD4PHB5C+FKMsWGV6I+B61oJ442F9LUisA9wSivXSlqI9OarVK84H956vbGwT1+yPQPZbvuT9e1XXnCSJKmZTn0sqhX9gGpJfe9Qe707xtgshhjj1BDCg+TJxyjgvlr5BGBCB/o6CpgF3NjWC0IICz1cMMZ8LfjQoUM7EIbK0Ldv/ivmmLVfSomZv/81U395McyZPb+837qfZOlTvkrfVdfs9Bgcv/rnGNY3x6++OX69UynJRQhhafJHkgpbNN1O69VeX2ih/kXy5GJdaslFR9QWch8H/CrGOK2j95F6m+qUSUz+6XnMfvRvjYX9BzD4sBMZ+LkDyPr0afliSZJUmg4nFyGET5HvzNTUwBDCEYu4LAOWAfYjPwPi0Y72v5iG1F4nt1DfUL7MYvazPbAO0OKOVQsTY9y0haoEMGFCRyZQVIaGT2scs7ZLzz5J9coLYPIHjYWrrEHl+C8zY6URzPiw6z6TcPzqn2NY3xy/+ub41a/hw4d3+NrFmbnYFzhrgbKlgV+04doMmA18dzH67/Zq60CysuOQ6kGaO5d0+/WkP9wCqfF8zWznvcn2O5Ksn2srJEnq7hYnuXgN+EuT99sBc4CHFnFNlfwguaeBa2OMzy9G/4ujYWZiSAv1DeWTuiAWqddL771N9YofNd9idvAQKkefRrbRZuUFJkmS2qXDyUWM8ZfALxvehxCqwAcxxh1avqrbaEhq1m2hvmFfy5bWZEgqSPXhB0jX/ww+anK+5AYjqRxzOtmQZcsLTJIktVuRC7qPBurl9OmGbWtHhxAqTXeMCiEMBrYCZgAPlxGc1Bukj2aQbriM9FCTI2n69CXb93CyXfYhq1TKC06SJHVIYclFbSajLsQYXw4h3E2+I9QpwEVNqs8GBgGXNTnjQlKB0msvUv35D+G9txsLV1yJyvFnkK3ugXiSJNWrMs+5KFQIYQwwpvZ2WO11ixDC1bXvJ8QYz2hyycnAOOAnIYSdgGeBz5KfgfECrZ/GLamd0pw5pD/8hnTnTTBv3vzybIsdycZ+nmyJJUuMTpIkLa7CkosQwisduCzFGNcqKISRwJELlK1Z+wJ4HZifXNRmLzYDzgF2Az4HvA1cCJwdYyzrDA6pR0ovPkP12ovh7f80Fi4xkOywk6l8drvyApMkSYUpcuZi9Q5ck1pv0jYxxm8B32rnNf8hXysiqZOkGdNIv7mG9Jc/NK9Ycz0qx32JbIVhC79QkiTVnSKTi9Z2iRoCfIb8xOp+wKnAWwX2L6kbSSnB4+Oo3ng5TG4yEThgYL5oe4fdySqetC1JUk9S5ILuP7eh2e0hhB8D9wLnAi2dRC2pjqUP3qd6w2Xw5N+bV2y8OZWxJ5Att0I5gUmSpE7V5Xs9xhgnAieRP0a14AnfkupYqs6jet8dVM/6QvPEYsiyVE78XyqnfN3EQpKkHqyUjeRjjA8D02nc3UlSnUtvvkr1e18h/epymNV45E227W5UzrmYbNMtybKsxAglSVJnK2Ur2hBCn1rfK5XRv6TipNmzSHfcRLr71mbby7LSKlQOP4VsnQ3KC06SJHWpss65+BwwABd0S3UrVavw1KNU45Xw/juNFX37kn0ukO22P1m/fuUFKEmSulyXJRchhP7ACGAf4EzybWjv6Kr+JRUjzZlDeuQB0t23NT+zAmCdDfLZipVWKSc4SZJUqiIP0ZvXeqv5MuAVXNAt1Y00Yxrpz38g3XcHTP6geeXAQWQHHEW29S5klVKWckmSpG6gyJmLtq7UfA2IwPdijJMK7F9SJ0gfvE+693bSX+5utlAbyE/Y3nY3stFjyIYsW06AkiSp2ygyuVijlfq5wKQY4/QC+5TUSdKbr5L+eBvp0b80X6gNsMxyZDvtlScWSw4qJ0BJktTtFHmI3utF3UtSOVJK8NxTVO++Ff79+McbrLQK2a77km2+nYu1JUnSx5S1W5Skbia9/SbV6y6GF57+eOW6G1LZdV/YcFPXVEiSpBaZXEi9XJo7h3TXb0i/jzB3bmNFlsEmW1DZdT+yNdYtL0BJklQ3OpRchBCuKqj/FGM8tqB7SWqn9NKzVK/5afMtZfv0yXd9Gj2GbMXh5QUnSZLqTkdnLo4iP6eirTtEtSQBJhdSF0szZ5BuvYb0wF2QUmPFGutSOeIUshGt7c8gSZL0cR1NLs4uNApJXSb98xGq118KkyY2Fg5YgmzMYWQ77kFW6VNecJIkqa51KLmIMZpcSHUmTf6QdOPlpMcebF6x0WZUDj2RbPkVywlMkiT1GC7olnq4lBLpb/eQfv0LmNHkmJnBQ8gOOo5s823JssV9wlGSJMnkQurR0rvjqV57MTz/r2bl2ZY7kR14NNlSS5cUmSRJ6ok6JbkIIWwPBGATYIVa8fvA40CMMT7QGf1KyqW5c0h/vJV0x00wd05jxQrDqBx2MtkGI8sLTpIk9ViFJhchhKHA9cDOtaKmz1qsAXwGOCGEcA9wWIxxQpH9S4L03FNUb7is+faylQrZLmPI9jqEbMCA8oKTJEk9WmHJRQihP3AP8CnypOIh4E/Am7UmI4AdgS2AXYC7QwijYoyzi4pB6s3S5A9JN19FeuTPzStWWzvfXnbVtcoJTJIk9RpFzlx8AdgY+AA4JMZ4z0LafCOEMBq4sdb2FOCCAmOQep00bx7pgbtIv70OZs5orBgwkGyfsWQ77knWx+1lJUlS56sUeK+DyA/F+3wLiQUAMca7gc+Tz24cXGD/Uq+TXn6O6nlfIv3q8maJRfaZbaicewmVXfYxsZAkSV2myJmL9YCPgFvb0PbWWtv1C+xf6jXStCmkW64h/fXu5hX/tTKVsSe4YFuSJJWiyOSiHzAnxphaaxhjrIYQ5hTcv9TjpWqVNO4+0m+uhmlTGyv69SfbI5CN3pesX7/S4pMkSb1bkX/cvwGsG0LYJMb4+KIahhA2BQYDzxfYv9Sjpbdez8+sePm55hUbb07loOPIVhhWTmCSJEk1Ra65+D35OoorQwgrtNQohPBfwJXk6zPuLLB/qceqPngf1e98qXlisfyKVE75On2+cKaJhSRJ6haKnLn4PnAk+Va0z4UQfg48ALwFLAGsCuwAHAUsSb6r1A8K7F/qcdKc2aQbL2++tqJPX7Jd9yX7XPDMCkmS1K0UllzEGN8LIXwOuA0YBny59rWgDHgbGBNjfK+o/qWeJr3/DtVLvw9vvNxYOHxVKif8D9nwVcsLTJIkqQVFPhZFjPHvwAbAN4F/kT/6lNW+Uq3sLOCTMcZHi+xb6knSU49SPff/NUssss23o/K1H5pYSJKkbqvw3ZpijJOAbwPfDiH0A5arVX0QY5xTdH9ST5Kq80i330i6MzYW9ulLdtBxZNvvTpZl5QUnSZLUik7dCraWTLzbmX1IPUWaOpnqz38Izz7ZWLjsUConfoVszfXKC0ySJKmNuuyciRDCUGAzYADw1xjjB13Vt9TdpZefo3rZD+DDCY2FG4ykctyXyAYPKS8wSZKkdigsuQghjAJOBZ6MMX5/gbrDgEuAQbWimSGEz8cYbyiqf6kepZRI999JilfBvLnzy7M9Dybb6yCySp8So5MkSWqfIhd0HwYcBEwCBFkMAAAXs0lEQVRpWhhCWBu4ClgKmAvMIt+K9uoQwoYF9i/VlfTRTNLPf0i68fLGxGLJpaicehaVfcaaWEiSpLpTZHKxde31dwuUn0A+Q/JnYHlgGSDWyk4rsH+pbqS336R63hmkR//aWLja2lS+cQHZRpuVF5gkSdJiKHLNxTBgHvmheU3tQb4N7TdjjNMAQghfAQKwXYH9S3Wh+ujfSL+8CGbNnF+Wbbsr2cHHk/XrX2JkkiRJi6fI5GI5YGqMMTUUhBCWA9YHJgPzP6KNMb4eQpgBjCiwf6nbSinBS8+S/vpH0kP3N1b060926ElUttqpvOAkSZIKUmRyMR0YEkLoH2OcXStrmJl4qGnSUTMb6Fdg/1K3M3f8f/jogT9Qvf/3MGGBXZlXGEblpK+SrbJGOcFJkiQVrMjk4hlgFLA/cGOt7CjyR6IeaNowhLAUMAR4GamHSVOnkP7xV9JD9zPx1RcW3mjkZ6kcfRrZkkt1bXCSJEmdqMjkIgJbAJeHELYGVgL2AuYANy3QdksgA14ssH+pNGn2LPjXP6g+dD/8+zGYN+/jjQYOIttsK7JRO8A6G3jatiRJ6nGKTC4uAfYFtgVOJE8eAM6JMb6+QNuDyWc0/lRg/1KXStOnkp58lPTPh+HpJ2D2rI836tuXAZtswZxNtoJPbeaCbUmS1KMVllzEGOeEEHYCxpI/HjUFuCvG+Jem7UII/YCBwO18fNtaqVtLE98n/fORPKF44d9QrS684ZrrkY3agaG77k1l6WWYMGHCwttJkiT1IFlKC66zVjeWAMaPH192HL1GSgnGv0F64mHSEw/DG4tYJjRsBNlmW5ON2p7sv4YDMHToUACTizrl+NU/x7C+OX71zfGrX8OHD2/4tt3PcBf5WJTUY6T/vEp6+P48oXj/nZYbrrEu2ae3IBv5WbKV3FlZkiT1bp2SXIQQlgBGA5sAK9SK3wceB+6OMX7UGf1Kiyu9O55023Wkf/xt4Q369IX1NyIbOYps5OZkyyzftQFKkiR1Y4UmFyGECvA/wFeApVtoNiWE8D3g/2KMLTywLnWtNOkD0h2/Iv3tno/v9DRgINlGm8LIz5JttBnZkoPKCVKSJKmbKyy5CCFkwM3AGPLnsz4CngDeqjUZTj6TMQQ4D9ic/EwMqTRpxnTSH28h3Xv7x3d7+vQoKtvsCut/iqyf5z1KkiS1psiZi5PJt6KtAucA58cYpzZtUDs873Tgm8CYEMJJMcafFRiD1CZpzmzS/XeSfv9rmD61eeV6G1HZ7wiyNdcrJzhJkqQ6VWRycRz5bkZfiTH+aGENYozTgG+HEGYA/wccD5hcqMuk6jzSQ/eTbr8BPlhg94oRa1DZ/wj45CYecCdJktQBRSYX6wJzyQ/Ta80lwHcBPxpWl0gpwZOPUL3lWnj7P80rVxhGts+hZJ/ZhqxSKSdASZKkHqDI5GI60CfGOLO1hjHGmSGEaeTJSI8TQhgMfJv8MbEVydeenBZjfLTUwHqp9MK/qd5yDbz8XPOKwUPI9jyIbNtdyfq6pkKSJGlxFfkx7d+BZUIIq7bWMISwGrAM8HCB/XcnVwC7AkcCGwF3A/eGEFYuNapeJr35KvN+cg7V//ta88RiwECyvcdSOe9yKjvuaWIhSZJUkCJnLr5LfrbFJSGEfWOMcxbWKITQF7iYfNbiewX23y2EEAaS74K1f4zxgVrxt0IIewEnAWeWFVtvkaZNId10JemRB6DpCfR9+5JttzvZHoFs8JDS4pMkSeqpCksuYowPhhAOBq4E/hFC+BHwZ5pvRbsd8CVgVeCgGOO4IvoOIRxQu/dIYGNgMHB9jPGwRVwzgnxXq92A5YG3gduAs2OMHy5GOH2BPuRb8TY1E9h6Me6rNkhTJ1P90Znw1uuNhVlG9tntyfYZSzb0v8oLTpIkqYfrUHIRQpjXSpMNgV+00ubXIYQUYywiwTmTPKmYBrwJrL+oxiGEtYBx5Oshfgs8R37uxmnAbiGErWKMEzsSSIxxagjhIeDMEMK/gXeAQ4AtgJc6ck+1zUITi402o7Lf4WQj1igvMEmSpF6io3/YF7VPZ1H3OZ08qXiJfAbj/lbaX0KeWJwaY7yooTCEcH7tXt8BTmxSfi7w9VbuuUOTx6AOB66qxTQPeBy4Edi0bT+O2utjiUVWITv6NCpb7FBuYJIkSb1IR5OLbvUxcIxxfjIRQlhk29qsxWjgNfK1H019E/g8cHgI4Usxxum18h8D17USxhtN4nkZ2C6EMAhYOsb4dgjhJuCV1n8atVeaOuXjicUxp1EZZWIhSZLUlTqUXMQYX2+9VbfV8Bfn3THGatOK2iNND5InH6OA+2rlE4AFTlxrXS05mR5CWJZ896j/act1IYTHWrgfAEOHDm1vKD1WdcokPrzwm1QbEotKhaW/eCYDt9+t3MBq+vbNf8Ucs/rk+NU/x7C+OX71zfHrnYrcLapeNBzc90IL9S+SJxfrUksu2iuEsCv5Nr/PAWuTn0b+HK2vQ1E7VKdM4sNvnsrc11/OC7KsWyUWkiRJvU1vTC4a9iCd3EJ9Q/kyi9nHd4ERwAfAb4Cvt7Q974JijC2tzUgAEya0exKlx0lTp1A9/0x487W8IMvIjvlvpm+4GdO70f8+DZ/WOGb1yfGrf45hfXP86pvjV7+GDx/e4Ws7JbkIIWwDbEW+/ewgWl64nWKMx3ZGDGWK+fNLsew4eqo8sfhG88Ti6P92jYUkSVLJCk0uQggbAjcAn1ygqiG5SAuUJaCrk4uGmYmWTlFrKJ/UBbGondK0hsTi1bygIbFwVyhJkqTSFZZchBBWIl+jsALwDHAP+bkR08h3W/ovYEdgLfLF0ZeRn9Ld1Z6vva7bQv06tdeW1mSoJGnaFKo/WiCxOMrtZiVJkrqLSoH3OoM8sfgD8OkY4+m18mkxxrNijCfEGNchPz9iGWAT8hOyu1rDtrWjQwjNfv4QwmDyx7lmAA93dWBqWYuJxZY7lhuYJEmS5isyudiN/DGnRS5cjjFeTn4g3W7AKQX23ya1MyjuBlZfSP9nk68RubbJGRcqWZo+9eOPQh11qomFJElSN1PkmovVyE+j/meTsgQMWEjbS8l3UzoC+OnidhxCGAOMqb0dVnvdIoRwde37CTHGM5pccjIwDvhJCGEn4Fngs+RnYLxA66dxq4uk6dOonn8W/GfBxGKncgOTJEnSxxQ5c1EFJscYmy7angYsHULo07RhjHEqMIWW1z2010jgyNrXrrWyNZuUHbBA/y8DmwFXkycVXyJfC3IhMCrGOLGguLQY0oxpVC84C95oPMciO/KLJhaSJEndVJEzF28Ba4YQKk1Ovn4N2BD4FPBEQ8MQwhDydRcfFdFxjPFbwLfaec1/gKOL6F/FSzOmU/3xt+D1l+aXZYefQmWrncsLSpIkSYtU5MzF8+TJyiealP2VfMvZMxZo++3a6zMF9q8eIs2cQfXCb8GrjRt2ZYefTGWb0eUFJUmSpFYVOXNxN7A3sCfwdK3sIuB44OAQwqeAp8hnMjYkX4/xswL7Vw+QPqolFq88P78sO/QkKtvuVl5QkiRJapMiZy5uAn4EzN9lKcb4PPmah+nkB+sdAmxUq74gxnhlgf2rzqWPZlK98Bx4+bn5ZdnYE6hsv3t5QUmSJKnNspRS660WUwhhKLA7MIL8hOx7Y4weUtd+CWD8+PFlx1G4NOsjqj85G154en5ZdvDnqey0Z4lRLb6hQ4cCMGHChJIjUUc4fvXPMaxvjl99c/zq1/Dhwxu+zdp7bZGPRbUoxjgBuLYr+lL9SbNmUb3o280Ti4OOrfvEQpIkqbcp8rEoqd3SrFlUf/pteP5f88uyA4+msvM+JUYlSZKkjjC5UGnS7FlULz4Xnntqflm2/5FURu9bYlSSJEnqKJMLlSLNmU314vPg2Sfnl2X7Hk5lt/1LjEqSJEmLw+RCXS7NmUP1ku/CM/PPVSTb51AqnzuwxKgkSZK0uEwu1KXSnDlUf/Zd+Pdj88uyvQ6hsudBJUYlSZKkIphcqMuklEjXXAT/+sf8smzPg6jsfUiJUUmSJKkoJhfqMukPt5AefmD+++xzgWzvseUFJEmSpEKZXKhLpH8+Qrr1mvnvs21Gk405lCxr99kskiRJ6qZMLtTp0puvUb3ifGg4DX7dT5KNPcHEQpIkqYcxuVCnSlMnU/3puTBrZl6w/IpUTvwqWd9+5QYmSZKkwplcqNOkubWdoSa+lxcMGEjli98gG7x0uYFJkiSpU5hcqFOklEjXXwovPpMXZBmV479EtvJq5QYmSZKkTmNyoU6R7vsd6W/3zH+f7XcE2cablxiRJEmSOpvJhQqXnn6CFK+a/z4btQPZrvuVGJEkSZK6gsmFCpXeeZPqZT+AVM0L1lyP7IhT3BlKkiSpFzC5UGHS9GlULzoXZk7PC5YdSuXkr5H1619uYJIkSeoSJhcqRJo3j+pl34f3xucF/QdQ+cLXyYYsW25gkiRJ6jImFypEilfCs0/Of1855r/JVl2rxIgkSZLU1UwutNiqf/4D6U93zH+f7T2WbNOtSoxIkiRJZTC50GJJz/+LdONl899nm21NtudBJUYkSZKksphcqMPS++9Q/dn3YN68vGDVtciOOs2doSRJknopkwt1SJo5g+pF34bpU/OCIctSOeXrZAMGlBuYJEmSSmNyoXZL1XlUf/5DePs/eUHffvmWs8sNLTcwSZIklcrkQu2WbrkG/vWP+e+zI79ItuZ6JUYkSZKk7sDkQu1SHXcf6Y+3zn+f7b4/lVHblxeQJEmSug2TC7VZeulZ0rUXNxZsvDnZmMPLC0iSJEndismF2iRNfJ/qJefB3Ll5wcqrUTnu/5FV/L+QJEmScv5lqFalWR9R/em5MHVyXrDU0vnOUEssWW5gkiRJ6lZMLrRIqVqletWP4c1X84I+famc9L9kKwwrNzBJkiR1OyYXWqT0u1/B4+Pmv88OPZFs3Q1LjEiSJEndlcmFWpRSgpnT57/Pdt6byjajS4xIkiRJ3VnfsgNQ95VlGdnBx1MdvgrpqX+QHXB02SFJkiSpGzO5UKsq2+5G2mZXsiwrOxRJkiR1Yz4WpTYxsZAkSVJrTC4kSZIkFcLkQpIkSVIhTC4kSZIkFcLkQpIkSVIhTC4kSZIkFcLkQpIkSVIhTC4kSZIkFcLkQpIkSVIhTC4kSZIkFcLkQpIkSVIhTC4kSZIkFcLkQpIkSVIhTC4kSZIkFcLkQpIkSVIhTC4kSZIkFSJLKZUdg9rOwZIkSVJXydp7gTMXkiRJkgrRt+wA1C7tzh6LEEIYDrwFrBxjHF/W/dpzXVvaLqpNR+oWVh5CeAwgxrhpW3/OzlDkGNbD+C2qvreP3+Lcrzv/Di5iXEsfw944fouq93ewe4yh49f19+vO/4Yuzs+1IGcuJEmSJBXC5EKSJElSIUwu1BZTgbNrr2Xerz3XtaXtotp0pK7o/52KVGRs9TB+i6rv7eO3OPfrzr+Djl+x1/k72FxPHEPHr+vv153/DW1vfC1ytyipE3WX503VMY5f/XMM65vjV98cv97JmQtJkiRJhXDmQpIkSVIhnLmQJEmSVAiTC0mSJEmFMLmQJEmSVAiTC0mSJEmFMLmQJEmSVAiTC0mSJEmFMLmQJEmSVIi+ZQcgCUII2wJnAJsCw4GjY4xXlxqU2iWE8FVgP2A9YBbwMPDVGOO/Sw1MbRJCOAU4AVi9VvQ0cG6M8c7SglKH1H4XzwMujjF+oex41DYhhG8B31yg+N0Y47ASwtFicOZC6h6WAv4NnAbMLDkWdcz2wCXAlsCOwFzg3hDCcmUGpTZ7E/gKsAmwGfAn4LYQwqdKjUrtEkIYBXweeKrsWNQhzwMrNfnaqNxw1BHOXEjdQIzx98DvAUIIV5cbjToixrhr0/chhMOBycBWwO9KCUptFmP87QJFXw8hnARsgX+o1oUQwhDgeuAYPv4JuOrD3BjjO2UHocVjciG1QQjhAGA7YCSwMTAYuD7GeNgirhkBnAPsBiwPvA3cBpwdY/yw04NWMyWM4WDy2WHHugBdOX4hhD7AgeQziuOK+hl6sy4av8uBX8cY7w8hmFwUrIvGcM0QwnjyR0sfAb4WY3yl0B9Enc7HoqS2ORP4Avk/qm+11jiEsBbwGHA08HfgAuAV8seeHgohLN95oaoFXT2GFwL/BB5ajJjVqNPHL4SwUQhhGvkfNpcC+8YY/1XYT9C7der4hRCOB9au9aPO0dm/g48AR5EnIscDw4Bx/vey/jhzIbXN6eTPZL9E/snN/a20vwRYETg1xnhRQ2EI4fzavb4DnNg5oaoFXTaGtTZbA1vHGOctfuiia8bvefI/nIYABwC/DCFs76L8QnTa+IUQ1iNfwL11jHFO8aGrplN/B2OMdzW9OITwMHkyciRwfgHxq4s4cyG1QYzx/hjjizHG1Frb2qc1o4HXgIsXqP4mMB04PIQwqPBA1aKuGsMQwgXAIcCOTucXpyvGL8Y4O8b4UozxsRjjV8lnnk4v5Afo5Tp5/LYAhgJPhxDmhhDmkv/xe3Lt/YCifo7erKv/OxhjnEa+a9s6HQ5apTC5kIq3Q+317hhjtWlFjHEq8CCwJDCqqwNTm3VoDEMIF9KYWDzXFYFqoYr6HawA/mHa9do7freR7yo0ssnXP4Bf1b6f3QUxq7nF/h0MISwBrE++TkN1xMeipOKtV3t9oYX6F8k/0VkXuA8ghLAU+fPCkP9Bs2oIYSTwQYzxjU6MVQvXkTG8GDgcGAN8GEJo2Jt9Wu0TOHWdjozf94A7gf+QL1QdS7698B6dGagWql3jF2OcBExq2iCEMJ38308faStHR34Hf0i+s94b5I9TfQMYBPyyUyNV4Zy5kIo3pPY6uYX6hvJlmpRtBjxR+xoInF37/pzOCFCt6sgYnkz+R+l95J+0NXyd0RkBapE6Mn7DgOvI113cB3wG2H3B58DVJToyfupeOjKGI4AbyX8HbyHfWGFUjPH1TolQncaZC6kbiDE+AGRlx6GOizE6fnUsxnhU2TGoODHG7cuOQe0TYzy47BhUDGcupOI1fCIzpIX6hvJJLdSrfI5hfXP86pvjV/8cw17M5EIq3vO113VbqG/Y+aKlZ1FVPsewvjl+9c3xq3+OYS9mciEVr2Hv79EhhGa/YyGEwcBWwAzg4a4OTG3mGNY3x6++OX71zzHsxUwupILFGF8G7gZWB05ZoPps8t0vro0xTu/i0NRGjmF9c/zqm+NX/xzD3i1LqdWzUKReL4QwhnyLUch3ldmV/OTQv9bKJsQYz2jSfi1gHPl2er8FngU+S7739wvAljHGiV0TvcAxrHeOX31z/OqfY6i2cuZCapuRwJG1r11rZWs2KTugaePapzabAVeT/2P6JWAt4ELyrfX8B7XrOYb1zfGrb45f/XMM1SbOXEiSJEkqhDMXkiRJkgphciFJkiSpECYXkiRJkgphciFJkiSpECYXkiRJkgphciFJkiSpECYXkiRJkgphciFJkiSpECYXkiRJkgphciFJkiSpECYXkiRJkgphciFJkiSpECYXkiRJkgphciFJkiSpECYXkiRJkgphciFJkiSpECYXkiRJkgrRt+wAJEkqSgjhNWA1YAfgKeBMYF9gODAB+D1wVozx7bJilKSezJkLSVJPNAJ4HDgdWBFI5AnGccC4EMKyJcYmST2WyYUkqSe6CPgQ2DLGOAhYCtgHmASsDny1vNAkqecyuZAk9USzgJ1jjA8BxBjnxhhvB86t1R9QWmSS1IOZXEiSeqLLY4wTF1J+W+11jRDCoK4MSJJ6A5MLSVJP9GgL5W81+X6ZrghEknoTkwtJUk80dWGFMcaPmrzt10WxSFKvYXIhSZIkqRAmF5IkSZIKYXIhSZIkqRAmF5IkSZIKYXIhSZIkqRAmF5IkSZIKYXIhSZIkqRBZSqnsGCRJkiT1AM5cSJIkSSqEyYUkSZKkQphcSJIkSSqEyYUkSZKkQphcSJIkSSqEyYUkSZKkQphcSJIkSSqEyYUkSZKkQphcSJIkSSqEyYUkSZKkQphcSJIkSSqEyYUkSZKkQphcSJIkSSqEyYUkSZKkQphcSJIkSSqEyYUkSZKkQphcSJIkSSrE/weqSPP8ZoiS4QAAAABJRU5ErkJggg==\n" | |
}, | |
"metadata": { | |
"image/png": { | |
"width": 395, | |
"height": 305 | |
}, | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "def running_error(x, w):\n zs = x.astype(np.float64) * w.astype(np.float64)\n ss = np.cumsum(zs)\n mu = np.sum(np.abs(ss) + np.abs(zs))\n return mu * np.finfo(x.dtype).eps / 2", | |
"execution_count": 63, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "running_error(x, w)", | |
"execution_count": 64, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 64, | |
"data": { | |
"text/plain": "0.013199978575204871" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "lims = np.logspace(start=1, stop=np.log2(x.size), base=2).astype(np.int32)\nerrors = [running_error(x[:lim], w[:lim]) for lim in lims]\n\nplt.plot(lims, errors)\nplt.xscale('log')\nplt.yscale('log')\nplt.xlabel('n')\nplt.ylabel('Running error upper bound')\nplt.title(\"Running error upper bound for $\\sum_{i=1}^n x_i w_i$\")\nplt.savefig('x.png', dpi=300, bbox_inches='tight')", | |
"execution_count": 69, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<Figure size 432x288 with 1 Axes>", | |
"image/png": "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EhGROrUB0I/qn5qUV78NRcmFiPTUdSQz8nwNWIdkdpLFSWafeQO4F/iTu7+ZV4AiIlI/3P0JkhmnekW/jUazRYmIiIiISCY0W5SIiIiIiGRCyYWIiIiIiGRCyYWIiIhInTCzY9PVso/MOxaRtii5EBEREakfI9Pr8dXs1Mz2NbM/mtlDZvZZmuBcV80YpD5oQLeIiIhInTCzFYFBwCvuXqxivxOAjYAZwCRgbeCf7r5/tWKQ+qCpaEVERETqhLu/k1PXJ5AkFa8B2wH35xSH1DidFiUiIiJSB8xs2/R0pKqvxu3u97v7q65TXqQMJRciIiIi9WHT9ForSEvN0mlRIiIiIvVhk/S6w+TCzH4MDO3Cdt9096u6G5RIKSUXIiIiIvVhE2AW8EKZdj8GVu7Cdh8ArupmTCItKLkQERERqXFmtgjJDE1Puvu8jtq6+ypVCUqkDRpzISIiIlL7NgL6AE/kHYhIR3TkQkRERKT2dXowt8ZcSJ6UXIiIiIjUvk4N5k5pzIXkRsmFiIiISO3bBJgLPFuuocZcSJ6UXIiIiIjUMDPrD6wHPO/uc3KKYW9g7/Tu8PR6CzO7qqmNux9S5bCkBim5EBEREaltGwD9yHfxvBHAwa3KVkkvTQ6pUixSw0yruIuIiIiISBZ05KK+KBMUERERkWqxrj5A61yIiIiIiEgmdOSiDr333nt5hyCdtNRSSwEwefLknCOR7tD7V//0HtY3vX/1Te9f/VpuueW6/VgduRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERkUwouRARERERqUE+dy7+9ut5h9ElffMOQEREREREmvkXM/AH7sTvvRXmzaVw9hXYgAF5h9UpSi5ERERERGqAT/kIv+c/+EN3w+yZzeVj78G23z3HyDpPyYWIiIiISI78rYn46BvwJ/4LxWLLyiFLQL/++QTWDUouRERERESqzN3huScojr4RXn524QbLrYTt/E1si69ifftVP8BuUnIhIiIiIlIlPncuPv4BfPSN8P47CzdYZyMKO+8N622CmVU/wB5SciEiIiIiUmH+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\n" | |
}, | |
"metadata": { | |
"image/png": { | |
"width": 395, | |
"height": 305 | |
}, | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "", | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3", | |
"language": "python" | |
}, | |
"toc": { | |
"nav_menu": {}, | |
"number_sections": true, | |
"sideBar": true, | |
"skip_h1_title": false, | |
"base_numbering": 1, | |
"title_cell": "Table of Contents", | |
"title_sidebar": "Contents", | |
"toc_cell": false, | |
"toc_position": {}, | |
"toc_section_display": true, | |
"toc_window_display": false | |
}, | |
"gist": { | |
"id": "f3ccea24fe6a1a801fdd927aeada20b5", | |
"data": { | |
"description": "nn.Linear error analysis", | |
"public": true | |
} | |
}, | |
"_draft": { | |
"nbviewer_url": "https://gist.github.com/f3ccea24fe6a1a801fdd927aeada20b5" | |
}, | |
"language_info": { | |
"name": "python", | |
"version": "3.7.5", | |
"mimetype": "text/x-python", | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"pygments_lexer": "ipython3", | |
"nbconvert_exporter": "python", | |
"file_extension": ".py" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment