commit f0473683f71c8a79ca9593f3abcad5ed3106eb51 Author: emil Date: Sun Nov 17 21:13:16 2024 +0300 first commit diff --git a/main.ipynb b/main.ipynb new file mode 100644 index 0000000..820d969 --- /dev/null +++ b/main.ipynb @@ -0,0 +1,177 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Решение для уравнения a:\n", + "\n", + "Метод RK2:\n", + "N_20: 0.0002785283564428198 0.0038035441958399474\n", + "N_100: 4.479515251887278e-05 0.0012767268215512217\n", + "N_200: 2.7750003539495083e-07 4.103739219374347e-05\n", + "N_1000: 4.440127909788316e-08 1.3191150621594261e-05\n", + "\n", + "Метод RK4:\n", + "N_20: 2.9636773035690567e-07 3.9579403434686355e-06\n", + "N_100: 9.184862648226044e-09 2.6419341025984977e-07\n", + "N_200: 2.6076918402395677e-12 3.9756997693984886e-10\n", + "N_1000: 8.526512829121202e-14 2.646061147970613e-11\n", + "\n", + "Решение для уравнения b:\n", + "\n", + "Метод RK2:\n", + "N_20: 0.0014339682258658337 0.019603229003013034\n", + "N_100: 9.465097127459021e-05 0.0035429668461870456\n", + "N_200: 5.85138142383812e-08 6.395910166601126e-05\n", + "N_1000: 2.542437982366863e-08 1.8243564207320873e-05\n", + "\n", + "Метод RK4:\n", + "N_20: 1.6409863435429273e-05 1.5852614062783488e-05\n", + "N_100: 5.942575315165399e-07 2.292905823431113e-06\n", + "N_200: 1.8908408172535474e-10 3.99405974960132e-09\n", + "N_1000: 6.314393452555578e-12 2.6547564146994773e-10\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAAHHCAYAAAC/R1LgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC3AElEQVR4nOzdd1zV1f/A8de97I0KiCgKKG5zm3s01DJn6i8nOCtzL0xzZy4cqenX0lDLyoaSZmlWmrknqbkHDoYiyl4X+Pz+AK5c7wVBuQx9Px+P+4D7+ZzPOed+GPd9z1QpiqIghBBCCPECUBd1BYQQQgghCosEPkIIIYR4YUjgI4QQQogXhgQ+QgghhHhhSOAjhBBCiBeGBD5CCCGEeGFI4COEEEKIF4YEPkIIIYR4YUjgI4QQTxAfH8/t27d5+PBhUVdFFHPyu1L8SeAjhBAG/PDDD7z66qvY2dlha2tLxYoVWbRoUVFXSxRD8rtSskjgI/Jtw4YNqFSqHB937twp1PrY2tri6+tbqGWK3JX0n8mUKVPo3bs3dnZ2fPHFF+zZs4c//viDESNGFHXVRDEjvyslj2lRV0CUXHPmzMHT01PveOnSpYukPkIUhL///puFCxcyf/58pkyZUtTVEcWY/K6UTBL4iKf2xhtv0KhRo6KuhhAFyt/fn+bNm8sbmXgi+V0pmaSrSxhNVpfY/v37effddylTpgz29vYMHDhQb+Dfzz//TKdOnXBzc8PCwoLKlSszd+5c0tLSdNKlp6czadIkHBwc8PDwYNeuXdpzfn5+2NnZ4e3tzW+//aZzna+vLx4eHjrHbt++jZWVFSqViuDgYO1xDw8PvW6a4cOHY2lpyb59+/L02nPqBsxeTmpqKnPnzqVy5cpYWFjg4eHB1KlTSU5O1snLw8PDYF5Dhw7Vpsn6B1ymTBmsrKxo2LAhP/74o8F6jRw5ks2bN1OtWjUsLS1p2LAh+/fv10k3a9YsVCqVzrG4uDhcXV1RqVQ69+FZfiYqlYp69erp1XP+/PmoVCpsbW11jgcEBPDKK6/g4uKChYUFNWvWZM2aNbn+LLKcOXMGX19fvLy8sLS0xNXVlcGDBxMZGamT7siRI9SuXZt33nmH0qVLY2VlRePGjQkMDNTLMykpiVmzZlG1alUsLS0pV64cPXr04Nq1a9o08fHxTJgwAXd3dywsLKhWrRr+/v4oiqKXX07dyG3bttWm2bdvn97P4Pjx47z++uvY2dlhY2ND27Zt+eeff56Yb/bHhg0btD+Xx+87wI8//qhXbtu2baldu3aO9zw4OFgn73v37uHs7Ezbtm11Xv/Vq1exsbHh//7v/3LMK8vp06d54403sLe3x9bWlldffZUjR44YvI8nTpzQHrt//z4qlYpZs2bppG3ZsqXOBzhD9xegU6dOetfn53fl3r17DBkyhLJly2JpaUndunXZuHFjrvcLIDY2loYNG+Lp6UlYWNgT7494MmnxEUY3cuRIHB0dmTVrFpcuXWLNmjXcvHlT+w+GzH9Utra2jB8/HltbW/766y9mzJhBTEwMixcv1ua1cOFC/P39GTBgAA0bNmTcuHGkpKSwc+dO6tWrx7x581i3bh09evTg/PnzBrvissyYMYOkpKQn1n/mzJmsX7+eLVu26LwBPUn37t3p0aMHAP/88w+ff/65zvmhQ4eyceNGevbsyYQJEzh69Cjz58/nwoULbNu2TSdtvXr1mDBhgs6xKlWqaL//9NNP6dKlC/369SMlJYXvvvuOXr168csvv9CpUyed6/7++2+2bNnC6NGjsbCwYPXq1XTs2JFjx47l+ia2ZMkS7t69q3f8WX4mpqam/Pfff5w+fZr69etrj2/YsAFLS0u9stasWUOtWrXo0qULpqam7NixgxEjRpCens4HH3yQY90B9uzZw/Xr1xk0aBCurq78999/fP755/z3338cOXJE+7sYGRnJ559/jq2tLaNHj8bZ2Zmvv/6aHj16sHnzZvr06QNAWloab731Fn/++SfvvPMOY8aMITY2lj179nDu3DkqV66Moih06dKFvXv3MmTIEOrVq8fu3buZNGkSISEhLFu2zGBdly1bhpOTEwDz5s3L9XVdvXqVtm3bYm1tzaRJk7C2tuaLL77gtddeY8+ePbRu3ZrWrVvz1Vdfaa/JynPatGnaY82bN8+1nILg4uLCmjVr6NWrFytXrmT06NGkp6fj6+uLnZ0dq1evzvX6//77j1atWmFvb8/kyZMxMzNj7dq1tG3blr///puXX37ZKPXev38/v/76q97xvP6uJCYm0rZtW65evcrIkSPx9PTkhx9+wNfXl6ioKMaMGWOwXI1Gw9tvv82tW7c4ePAg5cqVM8rre+EoQuRTQECAAijHjx/PU7qGDRsqKSkp2uOLFi1SAOXnn3/WHktISNC7/t1331Wsra2VpKQkRVEUJSkpSXFxcVH69OmjTfPvv/8qJiYmSt26dZXk5GRFURTl/v37ip2dnTJmzBhtOh8fH6VSpUra5+fOnVPUarXyxhtvKIBy48YN7blKlSopPj4+iqIoytq1axVAWblyZZ7vj0ajUQBl9uzZevciq5ygoCAFUIYOHapz7cSJExVA+euvv3Tq06lTp1zLfPz+paSkKLVr11ZeeeUVneOAAignTpzQHrt586ZiaWmpdO/eXXts5syZSvZ/D/fu3VPs7Oy092vv3r2KUgA/ExsbG6Vz587KyJEjtcf/+ecfxcrKSunWrZtiY2OT6+tUFEXp0KGD4uXllev9yenab7/9VgGU/fv3692jffv26Vxbo0YNxdXVVfu7/OWXXyqAsnTpUr1809PTFUVRlMDAQAVQPv74Y53zPXv2VFQqlXL16lWd41988YUCKDdv3tQea9OmjdKmTRvt87179+r8DN5++23FxMREOXfunDbN/fv3lTJlyigNGzY0eC8ezzO7rJ/L43744QedcrPyqVWrlsF8FEVRbty4oQBKQECAzvE+ffoo1tbWyuXLl5XFixcrgBIYGJhjPlm6deummJubK9euXdMeCw0NVezs7JTWrVtrjxn6HxUREaEAysyZM3XybNGihc59evz+KoqivPzyy9rf/ezX5/V3Zfny5QqgfP3119p0KSkpSrNmzRRbW1slJiZG736lp6cr/fr1U6ytrZWjR48+8d6IvJOuLmF0w4cPx8zMTPv8/fffx9TUVOcTlJWVlfb72NhY7t+/T6tWrUhISODixYsAnD17lnv37mlbUQBeeuklLC0tqVevHubm5gCUKVOG1q1b8+eff+ZYpw8//JAGDRrQq1evHNP8/PPPjBgxgkmTJjFy5Mg8v96UlBQALCwsckyT9drHjx+vczyrVWfnzp15Lo/H7t/Dhw+Jjo6mVatWnDp1Si9ts2bNaNiwofZ5xYoV6dq1K7t379brWswyd+5cHBwcGD16tM7xgviZDB48mG+++UbbxRcQEECPHj1wcHDI9XVGR0dz//592rRpw/Xr14mOjs7zPUpKSuL+/fs0bdoUQO8+NW7cmDZt2uhcO2LECMLDw7Vpf/rpJ5ycnBg1apReWVmtR7/++ismJiZ6923ChAkoiqLX/ZeX353sr//evXvs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b775JuHh4WzZskWbLjU1lZUrV2Jra6szRojM4BHAzc2NhQsX8vXXX/P7778X2Gt70UmLjzC6lJQUXn31VXr37s2lS5dYvXo1LVu21L6ZNm/enFKlSuHj48Po0aNRqVR89dVXem9SNjY2jBkzhgULFmBqakqDBg343//+h1qtJiwsjE6dOtGlSxfWrVtHcnIyEydO1Ln+zp072q6R/KhduzZ+fn4sWLCAd955J8e+/hMnTjB9+nR27drF//73v1y7serWrYuPjw+ff/65tqvv2LFjbNy4kW7duum0kD1Jp06dWLp0KR07dqRv377cu3ePzz77jCpVqnDmzBmDr6dDhw4609kBZs+erZf2999/5+DBgzmW/aw/k+z++usvkpOTc1z5u3379pibm9O5c2feffdd4uLi+OKLL3BxcXni+ib29va0bt2aRYsWodFotC0Sj7cqAtpWiDfeeIPRo0fj5OTE119/zfnz59m8ebO2VWLgwIFs2rSJ8ePHc+zYMVq1akV8fLx2u4KuXbvSuXNn2rVrx7Rp0wgODqZu3br8/vvv/Pzzz4wdO5bKlStD5oeB+fPnY21trTcQ+knmzp3L7t27adOmDaNGjdJOZ4+KijK4llNBi4uL067d9ODBA1asWIGZmVmOwfuYMWOIjIzkjz/+wMTEhI4dOzJ06FA+/vhjunbtSt26dXMs6+OPP2bPnj20bNmSESNGYGpqytq1a0lOTja4N9bhw4e5f/8+gHbg89WrV3XWmoqKijLYkvv7778zb948ypQpk2N98vq7Mnz4cNauXasdcO7h4cGPP/7IwYMHWb58ud4YsOyGDx/ON998w3vvvce5c+ewtrbOMa3Io6KeViZKnvxOZ//777+V4cOHK6VKlVJsbW2Vfv36KZGRkTppDx48qDRt2lSxsrJS3NzclMmTJyu7d+/Wm1aq0WiUsWPHKnZ2dkrFihWVXbt2KTY2NoqPj4/i5+en2NraKl5eXsr27dt18vfx8VEAnenUioFp5spj09mzJCUlKdWrV1caN26spKamGny9CxcuVBo3bqxs3rw5x3uRvRyNRqPMnj1b8fT0VMzMzBR3d3flww8/1E7fz16fJ01nX79+veLt7a1YWFgo1atXVwICAvSmpCuZ028/+OAD5euvv9amr1+/vs49VrJNZ+/atavOcUNTfZ/lZ2Jo2nRu57dv36689NJLiqWlpeLh4aEsXLhQO608+7015M6dO0r37t0VR0dHxcHBQenVq5cSGhpqcIrztWvXlJ49eyoODg6KpaWl0rhxY4PTrRMSEpRp06Zpf4aurq5Kz549daZbx8bGKuPGjVPc3NwUMzMzxdvbW1m8eLF2yruiKEqTJk2UXr16KRcvXtQr40nT2RVFUU6ePKm0b99esbW1VaytrZXWrVsrf//9d473oiCns2dN6QYUR0dHpUWLFspvv/2mKAams//8888KoCxZskQn75iYGKVSpUpK3bp1dZa+MOTUqVNKhw4dtK+1Xbt2yqFDh3TSZP295fVhaDp7uXLllPj4eJ18n+V35e7du8qgQYMUJycnxdzcXKlTp47eNP+cpv9funRJsbS0VMaNG5frvRF5o1IMLR8qRAHYsGEDgwYN4vjx40bd2sLW1paePXvmOFBZPKJSqfjggw8Mds8UJPmZCCGKKxnjI4QQQogXhgQ+QgghhHhhSOAjhBBCiBeGjPERQgghxAtDWnyEEEII8cKQwEcIIYQQLwxZwPAx6enphIaGYmdnVyD7KAkhhBDC+BRFITY2Fjc3N70NYbOTwOcxoaGhBbrfixBCCCEKz+3bt6lQoUKO5yXweUzW0uG3b98u0H1fhBBCCGE8MTExuLu757oFCBL46Mvq3rK3t5fARwghhChhnjRMRQY3CyGEEOKFIYGPEEIIIV4Yz1Xg4+HhgUql0nksWLCgqKslhBBCiGLiuRvjM2fOHIYNG6Z9/qRBTkIIURykpaWh0WiKuhpCFFtmZmaYmJg8cz7PXeBjZ2eHq6trUVdDCCHyRFEUwsPDiYqKKuqqCFHsOTo64urq+kzr7D1Xe3V5eHiQlJSERqOhYsWK9O3bl3HjxmFqmnN8l5ycTHJysvZ51nS46OhomdUlhDC6sLAwoqKicHFxwdraWhZOFcIARVFISEjg3r17ODo6Uq5cOb00MTExODg4PPH9+7lq8Rk9ejQNGjSgdOnSHDp0iA8//JCwsDCWLl2a4zXz589n9uzZhVpPIYQgs3srK+gpU6ZMUVdHiGLNysoKgHv37uHi4vLU3V7FvsVnypQpLFy4MNc0Fy5coHr16nrHv/zyS959913i4uKwsLAweK20+AghikpSUhI3btzAw8ND+09dCJGzxMREgoOD8fT0xNLSUufcc9PiM2HCBHx9fXNN4+XlZfD4yy+/TGpqKsHBwVSrVs1gGgsLixyDIiGEKAzSvSVE3hTE30qxD3ycnZ1xdnZ+qmuDgoJQq9W4uLgUeL2EEEIIUfIU+8Anrw4fPszRo0dp164ddnZ2HD58mHHjxtG/f39KlSpV1NUTQgghRDHw3CxgaGFhwXfffUebNm2oVasW8+bNY9y4cXz++edFXTUhhHju+Pr6aheKNTMzw9PTk8mTJ5OUlKSTTqVSERgYqH2u0Wjo06cP5cuX59y5cwQHBzNkyBA8PT2xsrKicuXKzJw5k5SUlCJ4VeJF8Ny0+DRo0IAjR44UdTVydD36Og7mDpS2LC39+UKI50LHjh0JCAhAo9Fw8uRJfHx8UKlUOU5ISUhI4O233+bKlSscOHAAT09Pdu3aRXp6OmvXrqVKlSqcO3eOYcOGER8fj7+/f6G/JvH8e25afIq7Cfsm0Pb7trT4rgX9dvZj2oFpfH7mc34P/p3LDy+TnJach1yEEKL4sLCwwNXVFXd3d7p168Zrr73Gnj17DKaNiori9ddfJzQ0VBv0kC14at++PV5eXnTp0oWJEyeydevWJ5Y/a9YsvW2KunXrppfu8TQqlYqgoCDt+YCAAKpVq4a5ubn2/NixYw2WuX//fszMzAgPD9c5PnbsWFq1agXAhg0bcHR0JDAwEG9vbywtLenQoQO3b9/Wpr927Rpdu3albNmy2Nra0rhxY/744w+dPLNvw2RjY0Pz5s05ceKE9nzbtm316jlr1izq1aunc2zdunXUqFEDS0tLqlevzurVq7XngoOD9e5HVtnLly/XuYfZW+7Wr1+vd5/CwsLo0aMHZcqU0bnXuS3O6efnR9WqVbG2tsbLy4vp06cbfQXz56bFpzhTFIXU9FRUqIhNieXM/TOcuX9GJ40KFW62bnjYe1DJvhIeDh542Hvg6eCJi7ULapXEqEK8CBRFIVGTViRlW5mZPHWL9Llz5zh06BCVKlXSOxceHk6bNm2wtbXl77//xtHRMde8oqOjKV26dJ7KrVWrljZgGDNmjM7yJGTeTzKDm44dO3L79m2aNGmiPX/x4kWGDh3KJ598Qp8+fTA3N6dHjx45lte6dWu8vLz46quvmDRpEmR2323evJlFixZp0yUkJDBv3jw2bdqEubk5I0aM4J133uHgwYMAxMXF8eabbzJv3jwsLCzYtGkTnTt35tKlS1SsWFGbT9Y2TA8fPmT06NF88MEHHD16NE/3BmDz5s3MmDGDVatWUb9+fU6fPs2wYcOwsbHBx8cnz/lkFx8fz/Tp07G1tdU5PmHCBC5fvsyuXbtwd3fn0KFDvP3227nmZWdnx4YNG3Bzc+Ps2bMMGzYMOzs7Jk+e/FR1ywsJfAqBSqViR/cdJKUmcTPmJsExwQRHB+t8H6uJJSQuhJC4EA6GHtS53srUKiMYyhYUedp7Usm+ErbmtjmWK4QoeRI1adScsbtIyj4/pwPW5nl/W/jll1+wtbUlNTWV5ORk1Go1q1at0ks3ZswYvLy82LNnD9bW1rnmefXqVVauXJmnbq7k5GSsrKy02xRZWVnpBT5ZrQfOzs64urrqjUE6c+YMJiYm+Pn5aY+Zm5vnWu6QIUMICAjQBj47duwgKSmJ3r1765S7atUqXn75ZQA2btxIjRo1OHbsGE2aNKFu3brUrVtXm37u3Lls27aN7du3M3LkSO3xrG2YHB0dKVWqVL4D05kzZ7JkyRJtMOfp6cn58+dZu3btUwc+ixYtombNmqSmpuocDwoKon///jRu3BggT8HrRx99pP3ew8ODiRMn8t1330ng87ywNLWkWulqVCutu6aQoihEJkUSHB1McExmQJT5/Z3YOySmJnLxwUUuPriol6ezlbNeC5GHvQdutm6YquXHK4Qwnnbt2rFmzRri4+NZtmwZpqamBj/hv/XWWwQGBrJ27VrGjRuXY34hISF07NiRXr166Ww2nZPIyMgnLjQbExMDgI2NjcHznp6eaDQafvjhB3r27JmnwMLX15ePPvqII0eO0LRpUzZs2EDv3r11yjA1NdUGAADVq1fH0dGRCxcu0KRJE+Li4pg1axY7d+4kLCyM1NRUEhMTuXXrlk5Zfn5+fPTRRyQmJuLu7q7Xlbh69WrWrVunfZ6SkkLNmjUhs2Xm2rVrDBkyROd+pqam4uDgoJNP8+bNUasf9SwkJCQYfO2hoaEsXbqUAwcOMGbMGL17+euvv/Lee+/lucVuy5YtrFixgmvXrhEXF0dqaqrRFw+Wd8ZiQKVS4WTlhJOVE41cG+mc06RruBN7R6eF6Eb0DYJjgnmQ9ICIxAgiEiM4cfeEznWmalMq2lXUaSHKCo5KWcr0fiGKKyszE87P6VBkZeeHjY0NVapUgcyV8uvWrcv69esZMmSITroBAwbQpUsXBg8ejKIojB8/Xi+v0NBQ2rVrR/PmzfM8G/f69evasUI5CQ0NBcDNzc3g+caNGzNnzhwGDRpE//79MTMzIzExUW+cTHYuLi507tyZgIAAPD09+e2339i3b1+e6pxl4sSJ7NmzB39/f6pUqYKVlRU9e/bUm802adIkfH19tYO9e/fuzYkTJ7TbNfTr149p06Zp069YsYL9+/dDZncawBdffKFtecry+HYPW7ZsoUaNGtrnbdu2NVjvadOm0atXL53WqizLli2jX79+ODk5YW1tTVpa7l22hw8fpl+/fsyePZsOHTrg4ODAd999x5IlS3K97llJ4FPMmanN8HTwxNNB/487JiVGGxBlBUPBMcHcirlFcloy16Ovcz36OtzWvc7BwkHbdZbVQuRh70FF+4qYm+TexCuEMC6VSpWv7qbiQq1WM3XqVMaPH0/fvn31tuDw8fFBrVYzaNAg0tPTmThxovZcSEgI7dq1o2HDhgQEBOi0POQkKSmJY8eOMWDAgFzTHT9+HDs7OypXrpxjmtGjR7Np0yaGDBlCz5496dev3xPLHzp0KH369KFChQpUrlyZFi1a6JxPTU3lxIkT2vFEly5dIioqShtcHDx4EF9fX7p37w6ZQUpwcLBeOU5OTtrg0s/Pjzp16nDjxg3tMQcHB+33PNa9VLZsWdzc3Lh+/foTX5O7u7tOPoY29w4KCuLHH3/k0qVLBvOoWrUqvr6+REZGsmPHDm3XV06yxoRlD9xu3ryZaz0LQsn76xJa9ub2vOT8Ei85v6RzPF1JJyw+jJvRN7kRc0PbbRYcE0x4fDjRydGciTjDmQjdAdZqlZpyNuUetRDZe2hbiVysXWQavhAiV7169WLSpEl89tlnOoFNlgEDBqBWq/Hx8UFRFCZNmkRISAht27alUqVK+Pv7ExERoU2fNXbncXFxccyZMweAli1bamdYJSYmkpycTHR0NHZ2dvzyyy9MnTqVgQMH5rihpaIoDBw4kAYNGjBlyhTIthlmbjp06IC9vT0ff/yxti7ZmZmZMWrUKFasWIGpqSkjR46kadOm2kDI29ubrVu30rlzZ1QqFdOnTyc9PV0vn9jYWMLDw0lISGDVqlXY2dlRvnz5J9Yvy+zZsxk9ejQODg507NiR5ORkTpw4wcOHDw22vOXG39+fCRMm5Nh6duTIEaZOncrevXupVauWzs/SEG9vb27dusV3331H48aN2blzJ9u2bctXnZ6GBD7PIbVKTXnb8pS3LU/z8s11ziVoErgVe0s7qDr713hN/KMB1iH6A6yzWoaygqGsr9ZmuQ9WFEK8GLLe4BctWsT7779vcFxNv379UKvVDBgwgPT0dMqWLcvVq1e5evUqFSpU0Emb0x7a/v7+LF68GECnlSLLmDFjWLJkCSNGjMDHx4e5c+fmWOcFCxZw5coVjh07lq/Xqlar8fX15ZNPPmHgwIF6562trfHz86Nv376EhITQqlUr1q9frz2/dOlSBg8eTPPmzXFycsLPz087Him7GTNmMGPGDKysrKhduzaBgYH52tB26NChWFtbs3jxYiZNmoSNjQ116tTJcbp+bnKbbRUREUGvXr1YunQpDRo0yFN+Xbp0Ydy4cYwcOZLk5GQ6derE9OnTmTVrVr7rlh/Ffnf2wpbX3V2fN4qicD/xvrZlKHtQFBIXQpqSc1+ti5WLXjDk4eCBm40bJur8jRkQ4kWStTu7oZ2mRc6y3hgNvUEGBgYSGBjIhg0bjF6PIUOGEBERwfbt23WOb9iwgbFjx+a6fo14Orn9zTw3u7OLwqFSqXC2dsbZ2pnGro11zmnSNNyOu63XQhQcHczD5IfcS7zHvcR7HAvX/cRkpjajol1F/aDI3gNHy9zX8RBCiJw8vn5MdpaWlnozlgpadHQ0Z8+e5ZtvvtELekTxJ4GPeCIzEzO8HLzwcvDSOxedHG2w2+xmzE006RquRV/jWvQ1vescLRwNdpu527nLAGshRK4MjR/K0rFjRzp27GjU8rt27cqxY8d47733eP31141alih40tX1mBe1q6ugpaWnERYfphcU3Yi5wb2EezlelzU+6fEWIg8HD5ytnGWAtXiuSFeXEPkjXV2i2DJRm1DBrgIV7CrQsnxLnXMJmgSdVauzZp7djLlJQmoCt2Nvczv2Nv+E/KNznY2ZjXYafvagqJJ9JRlgLYQQIk8k8BGFztrMmhplalCjTA2d44qiEJEYoW0hylqb6GbMTULiQojXxHM+8jznI8/r5VnWuqzO6tVZAVI5m3IywFoIIYSWBD6i2FCpVLhYu+Bi7UKTck10zqWkpXA79rZOC1FWUBSVHMXdhLvcTbjL0TDdzfvM1eZUtK+oXagx+/YeDhbGHQAphBCi+JHAR5QI5ibmVHasTGVH/dVXo5KidFqIsrrNbsXeIiU9hatRV7kadVXvutKWpbXdZtm70Nxt3TEzMSukVyaEEKIwSeAjSjxHS0fqWdajnovu3jqp6amExYXptRAFRwdzL/EeD5Ie8CDpAafundK5zkSVMT7p8RYiTwdPyliWkQHWQghRgkngI55bpmpT3O3dcbd3p3WF1jrn4jXxutPvo29qF29MTE3kZsxNbsbo7xlja2ar20qUub1HRfuKWJnmfTVVIYQQRUMCH/FCsjGzoVaZWtQqU0vnuKIo3E24qzsNP/P70LhQ4jRxnIs8x7nIc3p5lrMpp9NK5GnviYeDB642rqhVT950UQghhPFJ4CNENiqVClcbV1xtXGlarqnOueS0ZG7F3DIYFMWkxBAWH0ZYfBiHww7rXGdpYklF+4racURZA609HDywM7cr5FcoRMHw9fVl48aNkLlHV4UKFejVqxdz5szRWV9FpVKxbds2unXrBoBGo2HgwIHs37+f3bt3U7t2bW3a5ORkXn75Zf79919Onz5NvXr1DJQsxLORwEeIPLIwscC7lDfepbx1jiuKwsPkh3rBUHBMMLdjb5OUlsTlh5e5/PCyXp5lLMtQyb6STjDkYe9BebvymKllgLUo3jp27EhAQAAajYaTJ0/i4+ODSqVi4cKFBtMnJCTw9ttvc+XKFQ4cOICnp6fO+cmTJ+Pm5sa///5bSK9AvIik/V2IZ6RSqShtWZoGZRvQw7sH4xuOZ8UrK9jebTvH+x3nl+6/sOqVVUxsNJGeVXvSqGwjnKycAIhMiuTUvVP8dOUnlpxcwqi/RtE5sDNNvm5C522dGfXnKJacWMJPl3/i5N2TRCZG5rhjtRCFzcLCAldXV9zd3enWrRuvvfYae/bsMZg2KiqK119/ndDQUINBz2+//cbvv/+Ov79/nsufNWsWKpVK55HVspTd42lUKhVBQUHa8wEBAVSrVg1zc3Pt+Zx2L9+/fz9mZmaEh4frHB87diytWrWCzE1KHR0dCQwMxNvbG0tLSzp06MDt27e16a9du0bXrl0pW7Ystra2NG7cmD/++EMnTw8PD219bGxsaN68OSdOnNCeb9u2rV49Z82apddStm7dOmrUqIGlpSXVq1dn9erV2nPBwcF69yOr7OXLl+vcw8DAQO3z9evX692nsLAwevToQZkyZXTudW6btfr5+VG1alWsra3x8vJi+vTpaDSaHNMXBGnxEcKITNWmVLKvRCX7SrShjc652JRYbsbc5Eb0DZ2VrG/G3CQpLUnbesQd3TztzO10tvLI+lrRriKWprLtQYmnKKBJKJqyzazhKWctnjt3jkOHDlGpUiW9c+Hh4bRp0wZbW1v+/vtvHB11Nym+e/cuw4YNIzAwEGvr/K3CXqtWLW3AMGbMGJKTk3XOZ31QCAgIoGPHjty+fZsmTR6tE3bx4kWGDh3KJ598Qp8+fTA3N6dHjx45lte6dWu8vLz46quvmDRpEmR2323evJlFixZp0yUkJDBv3jw2bdqEubk5I0aM4J133uHgwYMAxMXF8eabbzJv3jwsLCzYtGkTnTt35tKlS1SsWFGbz5w5cxg2bBgPHz5k9OjRfPDBBxw9etRAzQzbvHkzM2bMYNWqVdSvX5/Tp08zbNgwbGxs8PHxyXM+2cXHxzN9+nS9zWInTJjA5cuX2bVrF+7u7hw6dIi3334717zs7OzYsGEDbm5unD17lmHDhmFnZ8fkyZOfqm55IYGPEEXEztyO2k61qe1UW+d4upLO3fi73Ii5oZ1+nxUUhcWHEZsSy9n7Zzl7/6zOdSpUGQOsH9v41dPBExdrFxlgXVJoEuATt6Ipe2oomNvkOfkvv/yCra0tqampJCcno1arWbVqlV66MWPG4OXlxZ49e/QCG0VR8PX15b333qNRo0YEBwfnufzk5GSsrKxwdXUFwMrKSi/wyWo9cHZ2xtXVlaSkJJ3zZ86cwcTEBD8/P+0xc/PcN0oeMmQIAQEB2sBnx44dJCUl0bt3b51yV61axcsvvwzAxo0bqVGjBseOHaNJkybUrVuXunXratPPnTuXbdu2sX37dkaOHKk9bmdnh6urK46OjpQqVSrfy2nMnDmTJUuWaIM5T09Pzp8/z9q1a5868Fm0aBE1a9YkNTVV53hQUBD9+/encePGAJQuXfqJeX300Ufa7z08PJg4cSLfffedBD5CvEjUKjXlbMtRzrYczd2a65xLSk3STrV/fAPYWE0sofGhhMaHcij0kM51VqZWVLSrqBMUedpnbO1ha26LEE+jXbt2rFmzhvj4eJYtW4apqanBT/hvvfUWgYGBrF27lnHjxumcW7lyJbGxsXz44Yf5Lj8yMvKJm0nHxMQAYGNjOKDz9PREo9Hwww8/0LNnzzwFFr6+vnz00UccOXKEpk2bsmHDBnr37q1ThqmpqTYAAKhevTqOjo5cuHCBJk2aEBcXx6xZs9i5cydhYWGkpqaSmJjIrVu3dMry8/Pjo48+IjExEXd3d72uxNWrV7Nu3Trt85SUFGrWrAmZLTPXrl1jyJAhDBs2TJsmNTUVBwfdleubN2+OWv3ow1FCguFWx9DQUJYuXcqBAwcYM2aM3r389ddfee+99/IU9ABs2bKFFStWcO3aNeLi4khNTTX6BuES+AhRgliaWlKtdDWqla6mc1xRFCKTIvVaiIJjgrkTe4fE1EQuPbzEpYeX9PJ0snLSayHysPfAzdYNU7X8iyh0ZtYZLS9FVXY+2NjYUKVKFQC+/PJL6taty/r16xkyZIhOugEDBtClSxcGDx6MoiiMHz9ee+6vv/7i8OHDWFhY6FzTqFEj+vXrp505Zsj169f1xgo9LjQ04166uRluRWvcuDFz5sxh0KBB9O/fHzMzMxITE3OdUebi4kLnzp0JCAjA09OT3377jX379uVaj8dNnDiRPXv24O/vT5UqVbCysqJnz56kpKTopJs0aRK+vr7Ex8fj7+9P7969OXHiBCYmGXsQ9uvXj2nTpmnTr1ixgv3790NmdxrAF198oW15ypJ1fZYtW7ZQo8aj/RPbtm1rsN7Tpk2jV69eOq1VWZYtW0a/fv1wcnLC2tqatLS0XO/B4cOH6devH7Nnz6ZDhw44ODjw3XffsWTJklyve1byX62QXL0Xi5W5KU625liYyqaZomCpVCqcrJxwsnKiYdmGOuc06RpCYkN0gqGs7T0eJD3gfuJ97ife58TdEzrXmapNcbdz12khylq4sZRF/pvcRR6pVPnqbiou1Go1U6dOZfz48fTt2xcrK90FPX18fFCr1QwaNIj09HQmTpwImW/UH3/8sTZdaGgoHTp0YMuWLXpv1tklJSVx7NgxBgwYkGu9jh8/jp2dHZUr6293k2X06NFs2rSJIUOG0LNnT/r16/fE1zt06FD69OlDhQoVqFy5Mi1atNA5n5qayokTJ7TjiS5dukRUVJQ2uDh48CC+vr50794dMoMUQ918Tk5O2uDSz8+POnXqcOPGDe0xBwcH7fc81r1UtmxZ3NzcuH79+hNfk7u7u04+pqb64UFQUBA//vgjly7pf4ACqFq1Kr6+vkRGRrJjxw5t11dOssaEZQ/cbt7UXzi2oEngU0iGf3WS6xHxADham+FiZ4GLnSUudhY4Zz5c7B89d7GzwNbCVN5cxDMzU5tltOY4eIC77rmYlBjtqtXavc5igrkVc4vktGRuRN/gRvQNuK17nb25vV4LUSX7SlS0r4iFie4nd/Hi6NWrF5MmTeKzzz7TBjbZDRgwALVajY+PD4qiMGnSJJ2BvIB2wGzlypWpUKGCwXLi4uKYM2cOAC1bttTOsEpMTCQ5OZno6Gjs7Oz45ZdfmDp1KgMHDtRr4ciiKAoDBw6kQYMGTJkyBTLHCj1Jhw4dsLe35+OPP9bWJTszMzNGjRrFihUrMDU1ZeTIkTRt2lQbCHl7e7N161Y6d+6MSqVi+vTppKen6+UTGxtLeHg4CQkJrFq1Cjs7O8qXL//E+mWZPXs2o0ePxsHBgY4dO5KcnMyJEyd4+PChTstbXvj7+zNhwoQcW8+OHDnC1KlT2bt3L7Vq1SIiIiLX/Ly9vbl16xbfffcdjRs3ZufOnWzbti1fdXoaEvgUEjO1GjMTFZo0hagEDVEJGi7fjcv1GiszE1zsLbIFQ5baoCjruYu9BaWtzVGrJUAS+Wdvbk8d5zrUca6jczxdSSc8Ppzg6GCdvc6CY4IJjw8nJiWGMxFnOBNxRuc6E5UJPav2xK+xn2z0+gLKeoNftGgR77//vsFxNf369UOtVjNgwADS09N1BhXnlb+/P4sXLwbQaaXIMmbMGJYsWcKIESPw8fFh7ty5Oea1YMECrly5wrFjx/JVB7Vaja+vL5988gkDBw7UO29tbY2fnx99+/YlJCSEVq1asX79eu35pUuXMnjwYJo3b46TkxN+fn7a8UjZzZgxgxkzZmBlZUXt2rUJDAzMU2CWZejQoVhbW7N48WImTZqEjY0NderUyXG6fm5ym20VERFBr169WLp0KQ0aNMhTfl26dGHcuHGMHDmS5ORkOnXqxPTp05k1a1a+65YfKkUWBdERExODg4MD0dHRBT7ASlEygp57scnci00iIjY54/uYjOf3YpO5n3ksLjk1DzlmMFWrcLJ91FLkYm+Bs51u65GLvSXOthaYm8rMHvFsElMTuRVzSzcgyvwar8lo1WxYtiFL2y6ltGXeBji+qJKSkrhx4waenp46qx2L3GW9MRp6gwwMDCQwMJANGzYYvR5DhgwhIiKC7du36xzfsGEDY8eOzXX9GvF0cvubyev7t7T4FCKVSkUpG3NK2ZhTzTX3rQoSUlIzA6LkzAApSRskRcQlcy8mI3CKjE8hNV0hPCaJ8JikXPPEUDebvQXOto+62bKCJBtzE+lmEwZZmVrlOMD6n5B/8Nvvx8m7J+m7sy8rXllB1VJVi6yu4vn0+Pox2VlaWurNWCpo0dHRnD17lm+++UYv6BHFn7T4PMaYLT7GoElL535cZnCUGSjptCbFJhMRk0REXDKatLz/qLN3s2V1sWVvPcpqTZJuNvG4a1HXGPXXKG7H3sba1JoFrRbQrmK7oq5WsSQtPiVT27ZtOXbsGO+++y7Lli3TOy8tPsZTEC0+Evg8pqQFPnn1eDebodakiMzH03SzuWhbjh51s7lkG7Qt3WwvlqikKCb+PZGj4UdRoWJ0g9EMqT1EWhEfI4GPEPkjXV0iz/LTzRafnJqtxUh/LFJWgJTfbrZS1ma6A7TtdQdsZ7Um2VrIr2VJ52jpyJrX17Dw2EK2XNrCp6c+5WrUVWY3ny2zvoQQRUreYYQeGwtTbCxM8XDKfS2RrG62ezHJOoHSo5Yk3W62hwkaHiZouHQ3Ntd8rc1NsgVDhrvZXOwsKCXdbMWamdqMj5p+hLejN/OPzWfn9Z3cirnFp+0+xdnauairJ4R4QUngI56amYmacg5WlHPIfWplerpCVKLmUbeagbFIGWOUkohPSSMhJY2bkQncjMx9o8bs3WyP1kPSHaTtbGch3WxF7P+q/x+eDp6M/3s8Z++f5Z2d77Ci3QpqOdUq6qoJIV5AEvgIo1OrVZS2Maf0U3SzPZrFZpxutsen/Es3m3E0KdeEb9/8lpF/jeR69HV8dvnwcYuP6ejZsairJoR4wch/eVGsPE03W05T/p+2m01vwUgDU/6lmy3/3O3d+frNr/Hb78c/If8waf8krkZdZUS9EbJzvBCi0EjgI0qk/HazabvV8tDNFhyZQHC+u9n0B2m72FngJN1sOuzM7Vj5ykqWn1rOhv82sPbMWq5GXeWTlp9gnc8NMoUQ4mlI4COea9m72aq75p7WUDdb9takrHMPnrKbLWOqf7btRh4bi/SidLOZqE2Y0GgCVRyrMPvwbP689ScDfxvIildW4GZreA8gIcTzJzg4GE9PT06fPk29evUKrdwX4z+tEHnwtN1sj0/5j8gai/SU3Ww6M9kMjEV6XrrZulbpSiX7SozZO4ZLDy/RZ2cflrdbTn2X+kVdNZEHvr6+bNy4ETL36KpQoQK9evVizpw5OuurqFQqtm3bRrdu3QDQaDQMHDiQ/fv3s3v3bmxtbZk7dy5//fUX4eHhuLm50b9/f6ZNm4a5uXmRvT7x/JLAR4h8eppuNoNT/rNtP5LfbrbsU/y1M9keG4tUErrZ6rnU47tO3zF672guPrjI4N2DmdF0Bt29uxd11UQedOzYkYCAADQaDSdPnsTHxweVSsXChQsNpk9ISODtt9/mypUrHDhwAE9PT3bt2kV6ejpr166lSpUqnDt3jmHDhhEfH4+/v3+hvybx/Cve/xWFKMGyutmqu9rTuqozbzeswPttKzOzcy0+69uA799rxt6JbflvTkf+m92BvRPb8v27zVjVtz4z3qrJe20q06NBeVp5O1Hd1Y7SNhmfflPTFcKikzhzJ5o/Ltzj22O3+PTPK0zbdo7hX52k22cHab7gL6p+9BsN5u6hw7L9DFh/lPHfB7Hgt4usP3CDHf+GcvR6JDfux+drpW5jKGdbjo0dN/J6pddJTU9lxqEZLD6+mLT0tCKtl3gyCwsLXF1dcXd3p1u3brz22mvs2bPHYNqoqChef/11QkNDtUEP2YKn9u3b4+XlRZcuXZg4cSJbt259YvmzZs1CpVLpPLJalrJ7PI1KpSIoKEh7PiAggGrVqmFubq49n9Pu5fv378fMzIzw8HCd42PHjqVVq1aQuWWFo6MjgYGBeHt7Y2lpSYcOHbh9+7Y2/bVr1+jatStly5bF1taWxo0b88cff+jk6eHhoa2PjY0NzZs358SJE9rzbdu21avnrFmz9LqN1q1bR40aNbC0tKR69eqsXr1aey44OFjvfmSVvXz5cp17GBgYqH2+fv16vfsUFhZGjx49KFOmjM69ftLWHRcvXqR58+ZYWlpSu3Zt/v7771zTPytp8RGiGLCxMMXTwhTPJ3SzpaSmExmv282Wfcp/RLYFJFPTFR7Ep/AgPiV/3WzZth9xeaw1yVjdbNZm1vi38ed///6PNf+uYdP5TVyLvsbi1ouxM899CYTnjaIoJKYmFknZVqZWT72tyLlz5zh06BCVKlXSOxceHk6bNm2wtbXl77//xtHRMde8oqOjKV26dJ7KrVWrljZgGDNmDMnJyTrns3ZlCggIoGPHjty+fZsmTZpoz1+8eJGhQ4fyySef0KdPH8zNzenRo0eO5bVu3RovLy+++uorJk2aBJndd5s3b2bRokXadAkJCcybN49NmzZhbm7OiBEjeOeddzh48CAAcXFxvPnmm8ybNw8LCws2bdpE586duXTpEhUrVtTmM2fOHIYNG8bDhw8ZPXo0H3zwAUePHs3TvQHYvHkzM2bMYNWqVdSvX5/Tp08zbNgwbGxs8PHxyXM+2cXHxzN9+nS9zWInTJjA5cuX2bVrF+7u7hw6dIi33377iflNmjSJ5cuXU7NmTZYuXUrnzp25ceMGZcqUear6PYkEPkKUIOamT9fNprcvW7Z1kZ6mm01vwcjMIKmsvQU1y9ljapL/xmS1Ss2IeiOo7FiZjw58xMGQg/T7tR8rX1lJJXv9N9PnVWJqIi9/83KRlH2079F8za775ZdfsLW1JTU1leTkZNRqNatWrdJLN2bMGLy8vNizZw/W1rnnf/XqVVauXJmnbq7k5GSsrKxwdc2YuWBlZaUX+Gg0GgCcnZ1xdXUlKUl3QsKZM2cwMTHBz89Pe+xJY4uGDBlCQECANvDZsWMHSUlJ9O7dW6fcVatW8fLLGT/LjRs3UqNGDY4dO0aTJk2oW7cudevW1aafO3cu27ZtY/v27YwcOVJ73M7ODldXVxwdHSlVqlS+A9OZM2eyZMkSbTDn6enJ+fPnWbt27VMHPosWLaJmzZqkpuq2FgcFBdG/f38aN24MkOfgdeTIkdoAac2aNezatYv169czefLkp6rfk0jgI8RzKL+z2e5lTumPMDBo+/HZbGHRSYRF5zybrUY5e1a8Uw/vsk/XUtPBowPudu6M/ms0N6Jv0HdnX5a0XULTck2fKj9hPO3atWPNmjXEx8ezbNkyTE1NDX7Cf+uttwgMDGTt2rWMGzcux/xCQkLo2LEjvXr1YtiwYU8sPzIy8ombScfExABgY2O4NdXT0xONRsMPP/xAz5498xRY+Pr68tFHH3HkyBGaNm3Khg0b6N27t04Zpqam2gAAoHr16jg6OnLhwgWaNGlCXFwcs2bNYufOnYSFhZGamkpiYiK3bt3SKcvPz4+PPvqIxMRE3N3d9boSV69ezbp167TPU1JSqFmzJmS2zFy7do0hQ4bo3M/U1FQcHBx08mnevDlq9aMPLAkJhj8EhYaGsnTpUg4cOMCYMWP07uWvv/7Ke++9l+egB6BZs2Y6961Ro0ZcuHAhz9fnV4kJfObNm8fOnTsJCgrC3NzcYJ/hrVu3eP/999m7dy+2trb4+Pgwf/58TE1LzMsUotDlp5vtftxjrUfZWpMiYpO4FhHPhbAY3lp5gKlv1mBgs0pP1XVSs0xNvu30LWP3juXM/TO8t+c9/Jr40ad6n2d4pSWDlakVR/vmvSujoMvODxsbG6pUqQLAl19+Sd26dVm/fj1DhgzRSTdgwAC6dOnC4MGDURSF8ePH6+UVGhpKu3btaN68OZ9//nmeyr9+/bp2rFBOQkNDAXBzM7xUQuPGjZkzZw6DBg2if//+mJmZkZiYmOv0ahcXFzp37kxAQACenp789ttv7Nu3L091zjJx4kT27NmDv78/VapUwcrKip49e5KSkqKTbtKkSfj6+moHe/fu3ZsTJ05gYmICQL9+/Zg2bZo2/YoVK9i/fz9kdqcBfPHFF9qWpyxZ12fZsmULNWrU0D5v27atwXpPmzaNXr166bRWZVm2bBn9+vXDyckJa2tr0tKK5zi9EhMRpKSk0KtXL5o1a8b69ev1zqelpdGpUydcXV05dOgQYWFhDBw4EDMzMz755JMiqbMQzxNzUzVujla4Oeb85ngvNomJP5xh/+UIZm7/j72X7rGo50u42FnmeE1OnK2d+bLjl8w+NJsd13fwydFPuPrwKlNenoKZ2uwZX03xpVKpSuRijmq1mqlTpzJ+/Hj69u2LlZXu74mPjw9qtZpBgwaRnp7OxIkTtedCQkJo164dDRs2JCAgQKflISdJSUkcO3aMAQMG5Jru+PHj2NnZUbly5RzTjB49mk2bNjFkyBB69uxJv379nlj+0KFD6dOnDxUqVKBy5cq0aNFC53xqaionTpzQjie6dOkSUVFR2uDi4MGD+Pr60r17xgzGuLg4goOD9cpxcnLSBpd+fn7UqVOHGzduaI85ODhov+ex7qWyZcvi5ubG9evXn/ia3N3ddfIx1GAQFBTEjz/+yKVLlwzmUbVqVXx9fYmMjGTHjh3arq8nOXLkCK1bt4bM+3by5Emd7r6CVmJmdc2ePZtx48ZRp04dg+d///13zp8/z9dff029evV44403mDt3Lp999pleBC2EMA4XO0s2+DZmZueamJuq2XcpgjeW/8OfF+4+VX4WJhbMazmPcQ3HoULF95e/59097xKVlPssEVE0evXqhYmJCZ999pnB8wMGDGDjxo1MmTKFxYsXQ2bQ07ZtWypWrIi/vz8RERGEh4frzZrKLi4ujhkzZgDQsmVLbfrExESSk5OJjo4mPT2d7du3M3XqVAYOHKjXwpFFURQGDhxIgwYNmDJlirb15Uk6dOiAvb09H3/8MYMGDdI7b2ZmxqhRozh69CgnT57E19eXpk2bagMhb29vtm7dSlBQEP/++y99+/YlPT1dL5/Y2FjCw8O5fv06q1atws7OjvLlyz+xfllmz57N/PnzWbFiBZcvX+bs2bMEBASwdOnSPOeRxd/fn/Hjx+fYenbkyBGmTp3Kjz/+SK1atfJcz88++4xt27Zx8eJFPvjgAx4+fMjgwYPzXb+8KjGBz5McPnyYOnXqULZsWe2xDh06EBMTw3///ZfjdcnJycTExOg8hBBPT61WMaiFJztGtqS6qx2R8SkM2XiCadvOkpiS/6ZvlUrF4NqDWfnKSqxNrTkefpw+O/tw9eFVo9RfPD1TU1NGjhzJokWLiI+PN5imX79+fPXVV3z44YcsXLiQPXv2cPXqVf78808qVKhAuXLltI+c+Pv7s3jxYmJjY6lSpYo2/ffff8+uXbsYM2YMDx8+ZMSIEfj4+LBkyZIc81qwYAFXrlwx2JOQG7Vaja+vL2lpaQwcOFDvvLW1NX5+fvTt25cWLVpga2vLli1btOeXLl1KqVKlaN68OZ07d6ZDhw40aNBAL58ZM2ZQrlw5ateuzalTpwgMDMxTYJZl6NChrFu3joCAAOrUqUObNm3YsGHDE7sIDbGzs8txwHFERAS9evVi6dKlBl9HbhYsWMCCBQuoW7cuBw4cYPv27Tg5OeW7fnmlUrLm+pUQGzZsYOzYsXpjfIYPH87NmzfZvXu39lhCQgI2Njb8+uuvvPHGGwbzmzVrFrNnz9Y7Hh0d/cRBc0KI3CVp0vDffYl1B24A4OVsw6f/V586FRyeeK0hVx5eYdRfowiJC8HGzIZFrRfRukLrAq514UlKSuLGjRt4enrqrHYscjdr1iydr9kFBgYSGBjIhg0bjF6PIUOGEBERwfbt23WO5/Q+JZ5dbn8zMTExODg4PPH9u0hbfKZMmWJwYansj4sXLxq1Dh9++CHR0dHaR/YFpoQQz8bSzISP3qrJ10Nepqy9Bdcj4um++iBr9l0jLT3/n7m8S3nzbadvaVS2EfGaeEb+OZKAcwGUsM9v4hnZ2trqrSGTxdLSUm/GUkGLjo7mwIEDfPPNN4waNcqoZYmCV6SDmydMmICvr2+uaby8vPKUl6urK8eOHdM5dvfuXe25nFhYWGBhYZGnMoQQT6eltxO7xrTmw61n2fVfOAt3XWTfpXss/b96lM9lsLQhpSxL8fnrn/PJsU/48fKPLD25lKtRV5nRbAYWJvK3/CLIPjD6cR07dqRjx45GLb9r164cO3aM9957j9dff92oZYmC99x0df3222+89dZbhIWF4eLiAsDnn3/OpEmTuHfvXp6Dm7w2lQkh8k9RFH44cYdZO/4jISUNO0tT5nWvQ5e6+d+VXVEUvr34LYuOLyJNSeMl55f4tN2nOFkZb2xAQZOuLiHyp8R3deXHrVu3CAoK4tatW6SlpREUFERQUJB2nYL27dtTs2ZNBgwYwL///svu3bv56KOP+OCDD6RFR4hiQqVS0buxO7+ObkU9d0dik1IZ/e1pxm8JIjZJk++8+tboy5rX1mBnbseZiDO888s7XIg03sJnQoiSr8QEPjNmzKB+/frMnDmTuLg46tevT/369bUbtpmYmPDLL79gYmJCs2bN6N+/PwMHDmTOnDlFXXUhxGM8nGz44b1mjH6lCmoVbD0dwhuf/sOJ4Af5zquZWzO+7fQtHvYe3E24y8DfBvJ78O9GqbcQouQrcV1dxiZdXUIUrhPBDxi7JYg7DxNRq+CDdlUY/ao3Zvnc7ysmJYbJf0/mYGjGJpAj6o7g3brvolYV38930tUlRP68UF1dQojnUyOP0vw2phU9GpQnXYGVf12l5/8OE3zf8DowObE3t2fVq6sYUDNjJd/V/65m4t8TSdDkvvGqEOLF8kyBz+O74AohxNOwszRjae96rOxTH3tLU/69HcWbK/5hy/Fb+Zqqbqo2ZXLjycxpPgdTtSl7bu7Bd5cv4fE5rwIshHix5Cvw+e233/Dx8cHLywszMzOsra2xt7enTZs2zJs3T7sZnBBCPI3Odd3YNbY1Tb1Kk5CSht9PZ3nv65M8jM/ftjPdvbuzvv16SluW5sKDC7zzyzsE3QsyWr2FECVHngKfbdu2UbVqVQYPHoypqSl+fn5s3bqV3bt3s27dOtq0acMff/yBl5cX7733HhEREcavuRDiueTmaMXmoU2Z8kZ1zExU7P7vLh0/3c8/V/L3f6VB2QZ82+lbqpaqSmRSJIN3D2b7te15uFIIURiCg4NRqVQEBRXuh5I8BT6LFi1i2bJlhISEsH79et599106d+7Ma6+9Ru/evZkzZw579+7l2rVrODo68vXXXxu/5kKI55aJWsV7bSqzbUQLvJxtuBuTzID1x5j7y3mSNHnf78vN1o2v3viKV9xfQZOuYdqBaSw9sZS09PzvGSZ0+fr6alfYNzMzw9PTk8mTJ5OUlKSTTqVSERgYqH2u0Wjo06cP5cuX59y5czppk5OTqVevXpG8GYoXR54Cn8OHD9OpUyfU6tyTly9fngULFjBu3LiCqp8Q4gVWu7wDO0e1on/TigCsP3CDbp8d5FJ4bJ7zsDazZlm7ZQx/aTgAAf8FMHrvaOJS4oxW7xdFx44dCQsL4/r16yxbtoy1a9cyc+bMHNMnJCTQpUsXjh8/zoEDB6hdu7bO+cmTJ+e487cQBUVmdQkhijUrcxM+7laH9T6NKGNjzsXwWDqvOsCXB26Qnsf9vtQqNaPqj2Jhq4VYmFiw/85++v/an9uxsjffs7CwsMDV1RV3d3e6devGa6+9xp49ewymjYqK4vXXXyc0NJQDBw7o7Q7+22+/8fvvv+Pv75/n8mfNmqW3v2O3bt300hnaBzJ7i1JAQADVqlXD3Nxce37s2LEGy9y/fz9mZmaEh+sOmB87diytWrWCzB0GHB0dCQwMxNvbG0tLSzp06KCzF+S1a9fo2rUrZcuWxdbWlsaNG/PHH3/o5Onh4aGtj42NDc2bN9euXQfQtm1bvXrOmjWLevXq6Rxbt24dNWrUwNLSkurVq7N69WrtuZy6mzw8PFi+fLnOPczecrd+/Xq9+xQWFkaPHj0oU6aMzr1+0matFy9epHnz5lhaWlK7dm3+/vvvXNM/q6cKfO7cucPq1auZMmUK48eP13kIIYQxvFqjLLvGtqZdNWdSUtOZ88t5fDcc515MUh6uzvCm15ts6LgBFysXrkVfo8/OPhwLO5aHKwuPoiikJyQUyeNZlnU7d+4chw4dwtzcXO9ceHg4bdq0AeDvv//W2z/x7t27DBs2jK+++gpra+t8lVurVi3CwsIICwujd+/eeuezXlNAQABhYWF6ezpevHiRoUOHMnjwYK5evUpYWBjNmjXLsbzWrVvj5eXFV199pT2m0WjYvHkzgwcP1h5LSEhg3rx5bNq0iYMHDxIVFcU777yjPR8XF8ebb77Jn3/+yenTp+nYsSOdO3fm1q1bOuXNmTOHsLAwTpw4gY2NDR988EG+7s/mzZuZMWMG8+bN48KFC3zyySdMnz6djRs35iuf7OLj45k+fbreRrETJkzg8uXL7Nq1i7CwMH766ac85Tdp0iQmTJjA6dOnadasGZ07dyYyMvKp6/ck+d6k9M8//6RLly54eXlx8eJFateuTXBwMIqi0KBBA+PUUgghAGc7C770bcxXR24yb+cF9l+OoMPy/Sx8+yXa18p5M+LsajvV5tu3vmXMX2M4F3mOd/e8y4cvf0jvavpvmkVBSUzkUoOGRVJ2tVMnUeUj8Pjll1+wtbUlNTWV5ORk1Go1q1at0ks3ZswYvLy82LNnj15goygKvr6+vPfeezRq1Ijg4OA8l5+cnIyVlZU2kLKystJbZkWjydgKxdnZGVdXV70xSGfOnMHExAQ/Pz/tMUPBW3ZDhgwhICCASZMmAbBjxw6SkpJ0Ai+NRsOqVat4+eWXAdi4cSM1atTg2LFjNGnShLp161K3bl1t+rlz57Jt2za2b9/OyJEjtcft7OxwdXXF0dGRUqVKoVKp8nx/AGbOnMmSJUvo0aMHAJ6enpw/f561a9fi4+OTr7yyLFq0iJo1a5KamqpzPCgoiP79+9O4cWMASpcunaf8Ro4cydtvvw3AmjVr2LVrF+vXr2fy5MlPVb8nyXeLz4cffsjEiRM5e/YslpaW/PTTT9y+fZs2bdrQq1cvo1RSCCGyqFQqBjbz4JdRLalZzp6HCRqGf3WSD7eeISElNQ85gIu1CwEdA3jD8w1SlVTmHpnLvCPz0KTnb7+wF127du0ICgri6NGj+Pj4MGjQIO0bWHZvvfUWly9fZu3atXrnVq5cSWxsLB9++GG+y4+MjHziCvsxMTEA2NjYGDzv6emJRqPhhx9+yHOLl6+vL1evXuXIkSOQ2bXVu3dvnTJMTU21AQBA9erVcXR05MKFjL3k4uLimDhxIjVq1MDR0RFbW1suXLig1+Lj5+eHra0tNjY2HDt2jM8++0zn/OrVq7G1tdU+PvnkE+25+Ph4rl27xpAhQ3TSfPzxx1y7dk0nn+bNm+ukebweWUJDQ1m6dClLliwxeC9//fVXHjzI39Yz2VvYTE1NadSokfY+GUO+W3wuXLjAt99+m3GxqSmJiYnY2toyZ84cunbtyvvvv2+MegohhA7vsnZs+6A5S3+/zOf/XOfbY7c5cv0By/+vHnXdHZ94vaWpJQtbLaRqqap8eupTvrv0HTdibrCkzRIcLBwK5TUYorKyotqpk0VWdn7Y2NhQpUoVAL788kvq1q3L+vXrGTJkiE66AQMG0KVLFwYPHoyiKDrDIv766y8OHz6st5l0o0aN6NevX65dMtevX9cbK/S4rPXlcho03bhxY+bMmcOgQYPo378/ZmZmJCYm6o2Tyc7FxYXOnTsTEBCAp6cnv/32G/v27cu1Ho+bOHEie/bswd/fnypVqmBlZUXPnj1JSdFds2rSpEn4+voSHx+Pv78/vXv35sSJE5iYmADQr18/pk2bpk2/YsUK9u/fD5nBFcAXX3yhbXnKknV9li1btlCjRg3t87Zt2xqs97Rp0+jVq5dOa1WWZcuW0a9fP5ycnLC2tiYtrXjOnsx34GNjY6P9wZQrV45r165Rq1YtAO7fv1/wNRRCiBxYmJrw4Zs1aFPVmfHf/8uN+/G8veYQ416vynttKmOizr1bQKVSMbTOULwcvJjyzxSOhh2l786+rHxlJV6OXoX2Oh6vU366m4oLtVrN1KlTGT9+PH379sXqsSDKx8cHtVrNoEGDSE9PZ+LEiZD5Rv3xxx9r04WGhtKhQwe2bNmi92adXVJSEseOHWPAgAG51uv48ePY2dlRuXLlHNOMHj2aTZs2MWTIEHr27Em/fv2e+HqHDh1Knz59qFChApUrV6ZFixY651NTUzlx4gRNmjQB4NKlS0RFRWmDi4MHD+Lr60v37t0hM0gx1M3n5OSkDS79/PyoU6cON27c0B5zcHDQfs9j3Utly5bFzc2N69evP/E1ubu76+RjaqofHgQFBfHjjz9y6dIlg3lUrVoVX19fIiMj2bFjh7br60mOHDlC69atIfO+nTx5Uqe7r6DlO/Bp2rQpBw4coEaNGrz55ptMmDCBs2fPsnXrVpo2bWqcWgohRC6aV3Fi19hWTNt2jp1nw1i8+xJ/X4pg6f/VpUKpJwcRr1R8ha/e+IrRf43mVuwt+v3aj0WtF9GqQqtCqf/zolevXkyaNInPPvtMG9hkN2DAANRqNT4+PiiKwqRJk6hYsaJOmqwBs5UrV6ZChQoGy4mLi2POnDkAtGzZUjvDKjExkeTkZKKjo7Gzs+OXX35h6tSpDBw4UK+FI4uiKAwcOJAGDRowZcoUyBwr9CQdOnTA3t6ejz/+WFuX7MzMzBg1ahQrVqzA1NSUkSNH0rRpU20g5O3tzdatW+ncuTMqlYrp06eTnp6ul09sbCzh4eEkJCSwatUq7OzsKF++/BPrl2X27NmMHj0aBwcHOnbsSHJyMidOnODhw4f5npDk7+/PhAkTcmw9O3LkCFOnTmXv3r3UqlUrz4sZf/bZZ3h7e1OjRg2WLVvGw4cPdQaKF7R8j/FZunSpNgqfPXs2r776Klu2bMHDw4P169cbo45CCPFEjtbmrOpbH/9edbExN+FY8APeWP4PgadD8nR9tdLV+Patb2ng0oA4TRwj/xrJxv82PtNMpxdN1hv8okWLiI83vMlsv379+Oqrr/jwww9ZuHDhU5Xj7+/P4sWLiY2NpUqVKpQrV45y5crx/fffs2vXLsaMGcPDhw8ZMWIEPj4+BsejZFmwYAFXrlzJ9/uXWq3G19eXtLQ0Bg4cqHfe2toaPz8/+vbtS4sWLbC1tWXLli3a80uXLqVUqVI0b96czp0706FDB4MThGbMmEG5cuWoXbs2p06dIjAwME+BWZahQ4eybt06AgICqFOnDm3atGHDhg1P7CI0xM7OLscBxxEREfTq1YulS5fme6LTggULWLBgAXXr1uXAgQNs374dJyenfNcvr1SK/FXryOu29kKI4utmZDzjtgRx6lbG+iFd67kxp2ttHKzMnnitJk3DvKPz+OlKxlTcblW6Mb3pdMxNcp/p8zSSkpK4ceMGnp6eWFpaFnj+z6tZs2bpfM0uMDCQwMBANmzYYPR6DBkyhIiICLZv190KZcOGDYwdO/aJ69eI/Mvtbyav79/5bvGJjo7O8dy6devym50QQhS4SmVs+P7dZox9zRsTtYqfg0J589N/OHr9yWuDmJmYMbPZTPwa+6FWqQm8GsjQ34cSmWi8dUVE/mTNPDLE0tISBwfjDk6Pjo7mwIEDfPPNN4waNcqoZYmCl+/Ap02bNnr9dnfu3KFDhw5Mnz69IOsmhBBPzdREzdjXqvL9u82oWNqakKhE3vniCIt3X0STpj+WIjuVSkX/mv1Z/epq7MzsOH3vNH129uHSA8ODOkXhmjhxosExRGRuo/Hpp58atfyuXbvSvn173nvvPV5//XWjliUKXr4Dn5deeokWLVpol97+4osvqFWrFmXKlNHbcE4IIYpaw0ql+HVMK3o1rICiwGd7r/H2mkNcj3jyXl0tyrdgc6fNVLKvRFh8GAN+G8CfN/8slHqL4mvfvn0kJCSwbNkyg+d9fX2lm6sYy3fgs2nTJjp06ECLFi14/fXXmT59OgEBAXzzzTeUKVPGOLUUQohnYGthyuJedVndrwEOVmacuRNNpxUH+OborScOXvZ08GTzm5tpVq4ZiamJjN03lrX/rpVBz0KUUE+1V9fKlSsZOHAgf/31Fxs3btQuhS2EEMXZm3XKsWtsK5pXLkOiJo2p284y/KuTRMYl53qdg4UDq19bTb8aGWuhrApahd9+PxJTEwukXhJECZE3BfG3ku9ZXdlHr69cuZLjx4/z6aefUqpUKQC6dOnyzJUqSjKrS4jnX3q6wvoDN1i8+xIpaek421ng36subao6P/HaHy//yLwj80hVUqlZpiYr2q2grE3Zp6pHWloaly9fxsXFRVrMhciDyMhI7t27R9WqVfXWZsrr+3e+Ax+1OudGIpVKVWyXqM4rCXyEeHH8FxrNmO+CuHovY7yPb3MPprxRHUszw4vdZTkefpzx+8YTlRyFs5Uzn7b7lDrOdZ6qDmFhYURFReHi4oK1tXW+N6EU4kWgKAoJCQncu3cPR0dHypUrp5fGaIHP804CHyFeLEmaNOb/eoGNh28CULWsLZ++U58a5XL/+78Te4dRf43iatRVzNXmzGkxh05enfJdvqIohIeHy2BYIfLA0dERV1dXgx8QJPB5ShL4CPFi2nvpHpN+OMP9uGTMTdRM7liNwS08Ueey31e8Jp4p+6ew707GBpVDag9hdIPRqFX5Hz6ZlpaGRiO7wwuREzMzsxy3HqEgAx9FUdizZw/t27fXHtu5cycLFy7k/PnzqFQqatasiZ+fH2+++ebTvp5iQwIfIV5c9+OSmfLTGf64cA+AllWcWNK7LmXtc15VOV1JZ8WpFaw/l7HlQVv3tixotQAbM5tCq7cQooBXbu7cubN219h169bRvXt3qlWrxpIlS/D398fb25vu3bsTEBBQcK9ACCEKmZOtBV8MbMTH3WpjaabmwNX7dFi+n13nwnK8Rq1SM7bhWD5p+QnmanP23d5H/1/7cyf2TqHWXQiRN3nq6ipbtiyHDx/Gy8sLb29vxo4dywcffKCT5rPPPmPFihU5bldfUkiLjxAC4Oq9OMZuOc25kBgAejeqwMzOtbCxMM3xmjMRZxizdwz3E+9TyqIUS9supZFro0KstRAvrgJt8XF1dSUkJGOH46ztKR7XoUMHbt68+Sx1FkKIYqOKiy1b32/B+20ro1LB9yfu8OaKfzh962GO17zk/BLfdvqWmmVq8jD5IcN+H8ZPl38q1HoLIXKXp8Cnffv22r1PqlSpwp9/6i/ZvmfPHipUqFDwNRRCiCJibqrGr2N1vhnaFDcHS25GJtDzf4dZ8ecVUnPY78vVxpUNHTfQ0aMjqUoqsw7PYuGxhaSmpxZ6/YUQ+vLU1XX//n0aNGhA27ZtcXR05PPPP2fQoEE0b94cgIMHD7Jhwwb8/f0ZOXJkYdTbaKSrSwhhSHSChmmBZ/nlTMZ4n0aVSrHs/+rhXtraYHpFUfj8zOesCloFQLNyzVjcZjEOFsbdOVyIF1WBT2ePiIjgww8/5JdffiEiIkK7bLSjoyPVq1dn3Lhx9OrVq+BeQRGRwEcIkRNFUdh2OoQZP/9HXHIqthamzO5Six4Nyue48OAfN/9g6oGpJKYm4mHvwYpXVuDp4FnodRfieSfr+DwlCXyEEE9y+0EC47YEceJmxnift14qx7xudXCwNjOY/uKDi4z6axTh8eHYmdnh38af5uWbF3KthXi+FejgZiGEEI+4l7bmu+FNmfB6VUzUKn45E8Ybn+7n8LVIg+mrl67Ot52+pZ5zPWI1sbz/5/t8ff5r2ZxUiCKQ7xafBg0a5Hr+1KlTz1qnIiUtPkKI/Dh96yHjtgQRHJmASgXDW3sx4fVqmJvqf65MSUth7pG5BF4NBOBt77eZ9vI0zEwMtxQJIfLOaF1dZmZmWFtbM3ToUIMZz5w58+lqXExI4COEyK/45FTm7DjPlhO3Aahd3p7l/1efKi62emkVRWHT+U0sPbmUdCWdBi4NWNZuGaUtSxdBzYV4fhgt8Ll06RKTJk3iyJEjzJw5k/feey/XvTNKGgl8hBBPa9e5cKZsPUNUggZLMzXTOtWk/8sVDQ58/ufOP0zeP5k4TRzlbcuz4pUVVC1VtUjqLcTzwOiDm/fu3cvEiRNJSEhg0aJFdO7c+VnqW2xI4COEeBZ3Y5KY+MO//HPlPgCvVndhYc+XcLK10Et7Peo6I/8aye3Y21ibWjO/1XxeqfhKEdRaiJKv0GZ1bdq0iWnTpuHt7c2SJUuoX7/+s2RX5CTwEUI8q/R0hYBDwSz87SIpaek42ZqzuGdd2lV30UsbnRzNhH0TOBp+FBUqPB08KWtdFlcbV8ralMXVWvernbldkbwmIYo7owU+48eP1zsWHx/PN998Q1JSEhqN5ulqXExI4COEKCgXwmIY+10Ql+7GAjCwWSWmvlkDSzPd4QGadA2Lji3iu0vfPTFPGzObR4GRga8SHIkXldECn3bt2uV6fu/evfnJrtiRwEcIUZCSNGks3HWRgIPBkLkH2Kfv1KOWm/4KziFxIdyKucXdhLuEx4frfL0bf5eYlJg8lfmk4MjVxhVbc/2B10KUZLKA4VOSwEcIYQx/X45g4g//EhGbjJmJikkdqjG0pRdqteEVnw1J0CQYDIqyf41Nic1TXjZmNo+60XIIkCQ4EiWJBD5PSQIfIYSxPIhPwe+nM+w5fxeA5pXLsKR3Xco5WBVYGQmaBMITwrkbn3OAlNfgyNbMNtfxRhIcieLEaIFPjx49cs5MpeKnn37KX02LGQl8hBDGpCgK3x2/zZwd50nUpOFgZcYn3evQ6aVyhVaHwgyOXG1csTGzMfprEsJogc+gQYMMHk9LS2Pz5s2kpaXlv7bFiAQ+QojCcD0ijrFbgjhzJxqAng0rMKtLLWwtTIu6apAtOAqPzwyQEnS/3o2/S6wm78FRbuONytqUleBIPLNC7+pKSkrCxsZGAh8hhMgjTVo6n/5xhc/2XUVRoGJpazrWdsXFzgIXe0vK2llQ1t4SF3sLrM2LR0CUXbwm3mBQ9DTBkZ2Znbb7TIIj8TQKPfBJTk7G2tpaAh8hhMinYzceMG5LECFRiTmmsbMwxcU+IxAqa2/5KDjKPOaSGSQ9PlW+qBklODLUpWbtiquNK9Zm1kZ/TaJ4Mlrgs3//foPHU1JS6NChg9ECn3nz5rFz506CgoIwNzcnKipKL42hZeG//fZb3nnnnTyXI4GPEKIoxCRp2HryDnceJnI3Npm7MUnci0nibkwyiZq8/1+1tzR9YnDkbGdRrAIkbXCUw3ijAguObFxxtZbg6HlltMBHrdbfcVibmUpltMBn5syZODo6cufOHdavX59j4BMQEEDHjh21xxwdHbG0tMxzORL4CCGKE0VRiEtO5W5MckYgFJvEvZhk7sYkZ36fxL3YZMKjk0hOTc9zvo7WZtpAyMVONzjKCpac7SywMC0eAVJcShz3Eu7lOpU/ThOXp7zszO20iz1KcPT8yOv7d747jR8+fGjweFJSEm5ubvnNLs9mz54NwIYNG3JN5+joiKurq9HqIYQQhUmlUmFnaYadpZnB3d6zKIpCTFKqNhC6m9ladDcmiYis57EZx1JS04lK0BCVoOHy3dyDhVLWZpnjjDLGHLnY6wdLznYWmJnk/KG4INia22JrbouXo1eOaeJS4rQtRHpda5kBUpwmjtiUWGJTYrkadTXHvLKCo5zGG0lwVHKVuDE+GzZsYOzYsTm2+Li5uZGcnIyXlxfvvfcegwYNMtgFlr3eycnJ2ucxMTG4u7tLi48Q4rmkKArRiZqcg6PMYxGxyaSk5b0FqYyNubalSNuSpA2WMo472Ro/QHqSvAZHeWFnbpf7bDXrshIcFSKjtfgUZ3PmzOGVV17B2tqa33//nREjRhAXF8fo0aNzvGb+/Pna1iQhhHjeqVQqHK3NcbQ2p2rZnPf0UhSFqASNtpUop+DoXmwSmjSFyPgUIuNTuBCWW9lQxsZCPziyt9BpQSpjY46pkQKkrJajyo6Vc0yTFRwZ7FbLDJTiNfHalqMrD6/kmJe9uX3us9UkOCp0+W7xqV+/vsEWFEVROHPmTL5afKZMmcLChQtzTXPhwgWqV6+ufZ5bi8/jZsyYQUBAALdv384xjbT4CCHE00tPV3iYkJIxBkk7/uhRt9q92GRt91taet7ebtQqKGObESCVtTMcHLnYW1DGxgKTfGz5UZDiUuIeDb7OJTjKi6zgyNB4o7LWZSU4yiOjtfh069btqc4ZMmHCBHx9fXNN4+WVc3/uk7z88svMnTuX5ORkLCwsDKaxsLDI8ZwQQojcqdUqythaUMbWgprk/GaTnp7RKqQTHGUGS4++ZrQqpSsQEZvRonSOnDdmNVGrcLI11445cskMlLKPPcpqQcrPnmh5YWtuSxXzKlQpVSXHNNmDI0Nfw+PDSUhNICYlhpiUmCe2HOU23qisTVmsTAtu65PnWb4Dn5kzZxZY4c7Ozjg7OxdYfo8LCgqiVKlSEtgIIUQRU6tVONtlzBSrlcs8mLR0hcj4ZMPBUbZZbffjMlqQ7mbOcIPoHPM0zSzbRTulPytAssQ5W7BUyrpgA6S8BEexKbGG1zfKITi6/PByjnk5WDhoW4gkOMrZU4/xOXnyJBcuXACgVq1a1K9fvyDrpefWrVs8ePCAW7dukZaWRlBQEABVqlTB1taWHTt2cPfuXZo2bYqlpSV79uzhk08+YeLEiUatlxBCiIJjolZltN7YWVK7vEOO6VLT0omMTzEcHGlntiUTGZ9MarpCWHQSYdFJuZZtZqLC2VZ37aPsLUdZAZOjtVmuk2byw87cDjtzu6cKjrK3HiWkJhCdHE10cnSegqOcxhu9CMFRvsf43Lt3j3feeYd9+/bh6OgIQFRUFO3ateO7774zWguOr68vGzdu1Du+d+9e2rZty65du/jwww+5evUqiqJQpUoV3n//fYYNG5br2kOPk3V8hBDi+aFJS+d+XLYWpFj94OheTBKR8Sl5ztPcRJ0ZDOUQHGW2LDlYFVyAlBtFUYjT5NCtlhkohceHk5ia88rg2TlYOOiNNyoJwZHRFjD8v//7P65fv86mTZuoUaMGAOfPn8fHx4cqVarw7bffPnvti5AEPkII8eJJSc0IkLK3ID0eLN2LTeZBfgIkU3W2AdpZg7N1B2q72Ftib2lq9ABJURRiNbE63WgFHRw93npkaZr3xYMLgtECHwcHB/744w8aN26sc/zYsWO0b98+T7OtijMJfIQQQuQkOTUtc1p/st5ikdpgKTaJqARNnvO0NFPrrpqtDYp0Z7XZWhg3QMoeHOU2KDuvwZGjhWOO441qO9Uu8JlqRpvVlZ6ejpmZmd5xMzMz0tPzvtiVEEIIUdJYmJpQoZQ1FUrl/qadpEnTrnukExzpPE8iJimVJE06NyMTuBmZkGueVmYm2laisjmspO1ib4mtxdMN31WpVNib22Nvbo93KW+DabKCo6yWotyCo6jkKKKSo7j08JJePtu7bcfTwfOp6vms8t3i07VrV6Kiovj222+1W1SEhITQr18/SpUqxbZt24xV10JhrBafiNWrITUVi6pVsfD2xrxSJVSmz9X6kUIIIfIpSZOmbSXKKTi6F5NMbHJqnvO0MTfRrnWku/aR7kra1ubGeQ96PDgyNBh7y1tbiqzFJ9+Bz+3bt+nSpQv//fcf7u7u2mO1a9dm+/btVKhQ4dlrX4SMFfhcad2G1Hv3tM9V5uaYV66MhXcVLKtW1QZEpq6uhTIYTgghRMmRkJJqcMxR9uDoXmwycfkIkOwsTA0GRy7ZBmq72FliZV48Nqp9EqMFPmRGc3/88QcXL14EoEaNGrz22mvPVuNiwhiBj5KezsOvvybp8mWSr1wh+cpVlATDTZpqe3ssvL2x8K6CRdWqGUGRtzcmDjlP6xRCCCEA4pJTM2et5TxAOzw6iURN3ndZsLM01ZnO/3hwlDWrzdKsaAMkowY+z7PCGNyspKejCQnJCIIuXyb58mWSLl8m5UYw5LDlh2nZstpWIYuq3lhWrYp55cqoZXFGIYQQ+aAoSkaAlDUGKcbwAO27MUkkafI+dtfByizbdP6slbR1W5Jc7C2wMDVOgCSBz1Mqylld6SkppNy4kRkMZQRFSVcukxqaw65/ajXmlSplBERVvbHwzgiIzNzdUZmUjKZJIYQQxZOiKMRma0EyPNU/4/vk1LwHSKWszfjx/eZUdrYt0PpK4POUiuN09rTYWJKvXM0IiLK1EqVFG16iXWVpiUXlypkB0aNWIlNnZxk/JIQQokApikJMYqq2lSirxehRS1JS5ma1yaSkZQRIp6a/Tmkb8wKthwQ+T6k4Bj6GKIpCakSEtmVIGxBdvYqSbbf57EwcHTODIN2AyMS2YKNuIYQQ4nGKohCVoOFubBJVXewKfONYCXyeUkkJfHKipKWRcutWZiD0KChKuXkTclhnyczNTTcgquqNhacnKvOCjcaFEEIIYzFa4HPmzJlcz7/00kv5ya7YKemBT07Sk5JIvnZNLyBKvXvX8AWmplh4emDhnRkIZQZFZm5uqPKx95kQQghRGIwW+KjValQqFVmXZY0ZURQFlUpFWg6zkkqK5zXwyUlaVBTJV66QpB07dIXkK1dIj401mF5tbY151tpD2VqJTEuXLvS6CyGEEFmMGvgcO3YMZ2dnFEWhdu3a/Prrr1SqVAlA+7WketECH0MURSE1PFzbKpSUGRClXLuGojG8/4xJmTLaafbagKhKFdTWBbsypxBCCGGI0fbqAqhYsSIuLi6Q2eJjbW1d4gMe8YhKpcKsXDnMypXDtk0b7XFFo8kYP5S57lBWt5nm9m3SIiNJOBxJwuEj2TPCrEIF7bghy8yAyLxSJVQG9nsTQgghjC3fLT6urq78+OOPtGzZktDQUCpUqECZMmX46quv6Nixo/FqWkikxSf/0hMSMsYPZU6zz2glukLa/fsG06vMzDD38tJbf8i0XDmZbi+EEOKpGK2ry9fXlz/++IO33nqLffv2UbFiRcaMGYOPjw8jR45k1qxZBVH/IiOBT8FJffAg20DqbOOHctquw9Y227ihR91mJo6OhV53IYQQJYvRAp/4+HjmzZvHv//+i6enJzNmzMDFxYXr16/Ts2dPTp06VRD1LzIS+BiXkp6OJjT0UUCUFRTdCIZUw5vrmbq4ZFt3KLOVqHJl1JaWhV5/IYQQxVORrOOTlJSEZQl/M5LAp2goKSkk3wjWW51aExpq+AK1GvOKFfUCIvOKFWW7DiGEeAHJAoZPSQKf4iUtLu7R2kPZt+uIijKYXmVh8Wi7juzT7V1kuw4hhHieGTXwOXHiBN9//z23bt0iJSVF59zWrVufrsbFhAQ+xZ+iKKTdv6+dZq+zXUdSksFrTBwcdLvKssYP2dkVev2FEEIUPKNNZ//uu+8YOHAgHTp04Pfff6d9+/ZcvnyZu3fv0r1792ettxBPpFKpMHV2xtbZGdsWLbTHlbQ0NHfuZAZEj4KilOBg0qKjSThxgoQTJ3TyMi1XTm/9IXMvL9SyXYcQQjyX8t3i89JLL/Huu+/ywQcfYGdnpx3k/O6771KuXDlmz55tvNoWAmnxef6kJyeTkrldR/ZWotTwcMMXmJhg7uGhFxCZVagg23UIIUQxZbSuLhsbG/777z88PDwoU6YM+/bto06dOly4cIFXXnmFsLCwgqh/kZHA58WRFh2d0U2WPSC6fDnH7TpU1tZYVKmCRdaWHZlBkamTU6HXXQghhC6jdXWVKlWK2Mw3hvLly3Pu3Dnq1KlDVFQUCTmszyJEcWTi4IB1o0ZYN2qkPaYoCql37+rMLkvK2q4jIYGkM2dIOnOG6Oz5lC6dbTB1ZitRlSqobWyK5HUJIYTIWb4Dn9atW7Nnzx7q1KlDr169GDNmDH/99Rd79uzh1VdfNU4thSgkKpUKM1dXzFxdsW3dWntcSU3VbteRfQ8zza3bpD14QMKRIyQcOaKTl3a7jmwBkbmHh2zXIYQQRSjfXV0PHjwgKSkJNzc30tPTWbRoEYcOHcLb25uPPvqIUqVKGa+2hcBoXV2hQWDrAvZuBZenKHIZ23Vc1w2IrlwmLcLwdh2YmWHh6akXEJm6ucl0eyGEeAayjs9TMlrgs6Yl3D0LpTygYnOo1AwqtYDSXiBveM+d1IcPH1udOnO7jvh4g+nVNjaPpttnm3ZvWsI/SAghRGExWuATExOT6/mSPiDYKIFPmgbWvw5h/4KSrnvOtixUbAaVmmc8XGqCWlYefh4pioImJFRvderkGzdy3q7D2VlnIUYLb28sqlRGbWVV6PUXQojizGiBj1qtNtgkrygKKpWKtLS0p6txMWHUWV1JMXD7GNw8CLcOQ8hJSNNdABILB6jY9FGLULl6YCpryjzPlJQUkoOD9Van1oSEGL5ApcrcrsMbC++qutt1mOZ72J4QQjwXjBb4/P3335AZ6Lz55pusW7eO8uXLa8+3adPmWepd5Ap1OrsmKSP4uXUIbh7KCIpS4nTTmFpBhUYZrUEVm4F7EzCX2UIvgrS4eFKuZk61v3L10XYdDx8aTK8yN8e8SmUsH2shMi1bVsYPCSGee4UyxidrAUMvL6+nzaLYKdJ1fNJSIfxMRmvQzcxgKPGBbhq1KZSrmxkINc9oHbIuXbj1FEVGURTSIiMzp9ln27Lj6lWUxESD16gdHLDwroKFt7fO+kMmJbxbWgghspPA5ykVqwUMFQUiLmW2CGUGQzF39NO51HzUIlSpucwcewEp6elobt/WW506JTgYcuh+NnV11d+uo3Jl2a5DCFEiFVrgc+bMGTw9PZ82i2KnWAU+hkTdetQadPMQRF7RT6OdOZb5kJljL6z05GRSrl/PthhjRrdZak4rrJuYYF6p0qPNXDNbiczc3WW7DiFEsWa0wKd+/fra8QJnzpyhevXqmGf7hHjq1KlnqXeRK/aBz+Pi7mV2jR3OGDR991wuM8daZAyadqkF8ib2QkuLidFOsc/ebZaew6xNlZUVFpUr6wVEJk5OMn5ICFEsGC3wmTVrVq7/6GbOnJm/mhYzJS7weVxSNNw+nvvMMUsHcG/6qEVIZo6JrO067t17NM3+csZijClXr6GkpBi8xqRUKZ11hyyrVsWybl0JhoQQhU4WMHxKJT7weVzWzLGbhzLGCt06CprHFtHLPnOsUnOo0FhmjgmtjO06busuxnj5Mim3bmWMQ3uM3euvU/7T5dI1JoQoVEYLfLy8vDh+/DhlypQpiHoWO89d4PO4rJljNw89mj1mcOZYvUdrCbm/LDPHhJ70xES97ToSjh1D0WhwHj8ep+HDirqKQogXiFEXMAwPD8fFxaUg6lnsPPeBz+PS0+H+5UdrCd08BDEGFs5zqZUZCGVOo7cvVxS1FcXcw++/J3zGTFCrqRgQgM3LTYq6SkKIF4RRA5+7d+/i7OxcEPUsdl64wOdxipIxc+xW5mDpm4dznjlWqcWjKfQyc0xkjhMKm/Ih0T//jImTE55bf8LsOf2QJIQoXowa+Li7u2NiYng/qevXr+e/tsXICx/4GJLXmWNZrUHaPcdkjMeLKD0hgeD/+z+Sr1zFunFjKgZ8KVtpCCGMzqiBz/Lly3FwcDB43sfHJ/+1LUYk8MmDpOjMPccyu8ZCT8nMMaEj+foNgnv2JD0hgTLDh+MyflxRV0kI8ZwzWuBjYmJCWFiYjPERj2gSM2eOHc7DzLHMtYRk5thzL+bXXwkZPwGACmtWY9euXVFXSQjxHJPBzU9JAp8CkK+ZY5ktQhWbglWpoqqxMJLwuR/zcPNm1A4OeP70E+YVyufhKiGEyD+jBT4bN27knXfewcLCoiDqWexI4GMEWTPHshZVNDhzTJW555jMHHuepKekcLP/AJLOnMGydm0qfbNZ9gITQhiF0Rcw/Ouvvzh//jwqlYqaNWvS7jlpxpbApxDkeeaYZ7YWoWYyc6yE0oSEcKPH26RFR1Oqbx9cZ8wo6ioJIZ5DRgt8QkJC6N69O6dPn8bd3R2A27dv06BBA7Zt24abW8neGVwCnyKinTmWOWA6/Czw2K+mreujRRUrNpOZYyVI3P793B7+LgBuixfj0Pmtoq6SEOI5k9f373y/a4waNQpLS0uuX7+u87C0tGTMmDHPWm+DgoODGTJkCJ6enlhZWVG5cmVmzpxJymP7B505c4ZWrVphaWmJu7s7ixYtMkp9hBHYukDNrvDGQnjvH5hyE/r9CC3HZ8wOMzGHuHD4bxv8OhH+1wIWecA3/wcHlmfsT5ZqeD8pUfRsW7emzHsZgU/YzJkkX7tW1FUSQryg8r24xh9//MH+/fu1rT0A7u7uLFu2zGjdXRcvXiQ9PZ21a9dSpUoVzp07x7Bhw4iPj8ff3x8yI7327dvz2muv8b///Y+zZ88yePBgHB0dGT58uFHqJYzI0gG8X8948NjMsZsHM6bTJ0XD5V0ZDzJnjrk3frSWUIXGYG5dpC9DPOI8ahSJQf+ScOQId0aPwfP7LahtZGafEKJw5burq2zZsuzcuZNGjRrpHD9+/DivvfYa0dHRBV1HgxYvXsyaNWu0CyauWbOGadOmER4ejnnm4MkpU6YQGBjIxYsX85yvdHWVEGmpEP5vZiCUOXvM0Mwxt/qZq0u3gIovy8yxIpZ6/z43uvcgNSIC+86dcVu0UHZyF0IUiLy+f+e7xad169aMGDGCr776imrVqkFmi8wHH3zAa6+99my1zofo6GhKl360cebhw4dp3bq1NugB6NChAwsXLuThw4eUKmX4DS85OZnk5GTt85iYGCPXXBQIE1Mo3zDj0Xxk5syxS7pT6GNC4M7xjMehFdlmjjXPGCskM8cKnamTE+WXLeWmjy8xO3Zg3bABpd55p6irJYR4geQ78Pn000954403qFmzJo6OjgBERUXRpEkTVq1aZYw66rl69SorV67UdnMBhIeH4+npqZOubNmy2nM5BT7z589n9uzZRq6xMDq1GlxqZDwaD3k0c+zmoUcbsEZehXv/ZTyOf5FxXSnPR4sqVmqe8VxaIIzKulEjXMaP495if+7O+wTL2nWwql2rqKslhHhBPNV09tTUVPbs2UP37t2ZO3cuLVu2pFmzZvkufMqUKSxcuDDXNBcuXKB69era5yEhIbRp04a2bduybt067fH27dvj6enJ2rVrtcfOnz9PrVq1OH/+PDVq1DCYv6EWH3d3d+nqeh7F3cvWInQQws/lMHMs2xR6mTlmFIqicGfkKOL+/BOz8uXx3PoTJjlsgyOEEHlhtOnsZ86cQaVSoSgKzZs35/vvv6dChQra8y+99FKe84qIiCAyMjLXNF5eXtruq9DQUNq2bUvTpk3ZsGED6mxvSAMHDiQmJobAwEDtsb179/LKK6/w4MGDHFt8HidjfF4g2j3HMtcSCjkJ6RrdNJaOGatKZy2q6FYPTMyKqsbPlbSYGG70eBvNnTvYtmtHhc9WoZIgUwjxlIy6ZUVW4KPNJPO5SqUiLS3t2Wqeg5CQENq1a0fDhg35+uuv9XaHzxrcfPfuXczMMt6Ypk6dytatW2Vws8gb7cyxzK6x28f09xwzs36051jFZjJz7Bkl/vcfN/v0RUlJwWXiBMoMHVrUVRJClFBGC3xu3ryZ6/lKlSrlJ7s8CQkJoW3btlSqVImNGzfqBD2urq6QOdi5WrVqtG/fHj8/P86dO8fgwYNZtmxZvqazS+AjtNI0j/Ycy9qANfGhbhqZOfbMHm75nvCZM8HEhIoBX2LTpElRV0kIUQIZfcuKwrRhwwYGDRpk8Fz26p85c4YPPviA48eP4+TkxKhRo/Dz88tXWRL4iBxlnzmW9YgNfSyRCsrWygyEMscK2bkWUYVLBkVRCPXzI2b7DkycnfDauhVTZ+eirpYQooQxWuCzYsWKXM+PHj06P9kVOxL4iDxTFIi6+WhRxVuHM2aOPa6016NFFSs1k5ljBqQnJBD8f/9H8pWrWL/8MhXXr0Nlmu9Jp0KIF5hRx/hUqFBBb4wNmWN9shYULKkk8BHPJPZuRgCU28wxu3K6LULONWTmGJB8/To3evZCSUigzLvv4jJubFFXSQhRghg18AkPD8fFxaUg6lnsSOAjClRiVMYg6ay1hEJO5TBzrNmjDVjL1X1hZ45F79xJ6ISJAFT43xrs2rYt6ioJIUoIowU+JiYmhIeH4/yc9sFL4COMSpMId048Wl06x5ljjR+1CJVv9ELNHAufM5eH33yD2sEBz59+wrxC+aKukhCiBDBqi8/w4cNxcHDAxsYGNzc36tevT8OGDQui3kVOAh9RqPI0c8wsY+ZY1jYbz/nMsfSUFG7260/S2bNY1qlDpc1fo862FY0QQhhitMCnbWbTs0ajISYmhtDQUB4+fEjdunXZuXMnbm5uz177IiSBjyhS2pljBx9twJrTzLGs1aWfw5ljmpAQrvd4m/ToaEr17YvrjOlFXSUhRDFXqNPZr127xsCBA6lYsSLffvvts2ZXpCTwEcWKdubYoUfbbeQ0cyxrdennZOZY7L593HnvfQDclvjj0KlTUVdJCFGMFfo6PidOnGD8+PHs37+/ILIrMhL4iGIva+ZY1gasz/HMsXvLlhO5di0qa2s8f/gei8qVi7pKQohi6rlawLAwSeAjSpysmWNZawnlOnMsMxAqITPHlNRUbg0ZSsLRo5hXqYzn99+jtn5xBnoLIfLOqIHPtWvXWL58ORcuXACgZs2ajB07Fi8vr2erdTEggY8o8XRmjh2E28dL9Myx1IgIrvfoQVrEfey7dMZt4UJUJbwbTwhR8IwW+OzevZsuXbpQr149WrRoAcDBgwf5999/2bFjB6+//vqz174ISeAjnjtpGgg782gtoVuHc585VqkFuL8MVo5FVWM9CcePc9N3EKSl4Tp7NqX+r3dRV0kIUcwYLfCpX78+HTp0YMGCBTrHp0yZwu+//86pU6eevtbFgAQ+4rmX55ljtTMDocxB03Zli6jCGSLXreOe/xJUZmZU+vZbrGrXKtL6CCGKF6MFPpaWlpw9exZvb2+d45cvX+all14iKSnp6WtdDEjgI144j88cu3kIHlzTT1e68qO1hCo1h1IehTpzTElP584HI4nbuxezChXw/OlHTBwcCq18IUTxltf373zvAujs7ExQUJBe4BMUFPTcbmMhxHNNpcoIYkp5QL2+Gcdi72Z2jWW2CN09lxEMPbgGp7/OSGNXLttaQi3AubpRZ46p1GrcFsznRo+30dy5Q+iHU6nw2SoZ7yOEyJd8Bz7Dhg1j+PDhXL9+nebNm0PmGJ+FCxcyfvx4Y9RRCFHY7MpCre4ZD3KYORYbBud+ynhAxmrSFZtB64lQ3jgruZs4OFD+00+52acPcX/9xYMvv6TMkCFGKUsI8XzKd1eXoigsX76cJUuWEBqaMS7Azc2NSZMmMXr06BL/6Uu6uoTIg5QECDn5aC2h28dAk5Bxzqo0vPcPOFQwWvEPv9tC+KxZYGJCpQ0BWDdubLSyhBAlQ6Gs4xMbGwuAnZ3d02ZR7EjgI8RTyJo5tnMchP0L7k3B9xejrRWkKAqhk/2I2bEDU2dnPLdtxdTJyShlCSFKhry+f+e7Q/7GjRtcuXIFMgOerKDnypUrBAcHP0udhRAllYkZVGgIvTaAhT3cPgJ75xmtOJVKRblZMzGvUpnUiAhCJkxESUszWnlCiOdHvgMfX19fDh06pHf86NGj+Pr6FlS9hBAlUWkv6LIy4/sDy+DKH0YrSm1jQ4VPP0VlbU3C0aNErFxptLKEEM+PfAc+p0+f1i5cmF3Tpk0JCgoqqHoJIUqqWt2g8dCM77cNh5jH1wgqOBaVK1NuzhwAIv+3lri//zZaWUKI50O+Ax+VSqUd25NddHQ0adLULIQAaD8PXOtAQiT8OATSUo1WlMNbnSjVtw8AoZP90ISEGK0sIUTJl+/Ap3Xr1syfP18nyElLS2P+/Pm0bNmyoOsnhCiJzCyh10Ywt8uY9bVvvlGLc5kyBcvatUmLjubOuPGkp6QYtTwhRMmV71ld58+fp3Xr1jg6OtKqVSsA/vnnH2JiYvjrr7+oXbu2sepaKGRWlxAF6NxP8OPgjC0w+v8EVV41WlEpd0K48fbbpEdHU6pfP1ynf2S0soQQxY/RZnXVrFmTM2fO0Lt3b+7du0dsbCwDBw7k4sWLJT7oEUIUsNpvQ8NBgAJbh0NMmNGKMq9QHrcFGS1LDzdvJubXX41WlhCi5HqmdXyeR9LiI0QB0yTCutfh7lnwaAUDfwa1idGKu7d0GZGff47a2hqPH3/AwsvLaGUJIYqPAm3xeXww8927d5kxYwY9e/akV69ezJo1i7t37z57rYUQzx8zq4z1fcxtIfgf+HuhUYtzHj0K6yZNSE9IIGTMGNITEoxanhCiZHli4JOamoqrqythYRlN1AcPHqRKlSps2bIFOzs7bG1t+fbbb/H29ubIkSOFUWchREnjVAXeWp7x/d+L4Po+oxWlMjWl/BJ/TJydSL5ylfDZs5GGbSFElicGPqamplhYWJCYmAjAxIkT6d+/PxcvXiQgIICAgAAuXrxI3759mTBhQmHUWQhREr3UCxoMzBjv89OwjB3gjcTU2ZnyS5aAWk30z9uJ+uEHo5UlhChZ8tTV5ezsrO3uCgoKYuzYsTqbkapUKsaOHcupU6eMV1MhRMn3xiJwqQXx92DrUEg33tpfNk2a4DxuLAB3P55H4n//Ga0sIUTJkafAp1mzZmzZsgWAsmXLGtyT68aNGzIYWAiRu6zxPmY2cGM/7Pc3anFlhgzBtm1blJQUQsaMJS0mxqjlCSGKvzwFPmPHjmXlypUEBATQp08fhg4dypYtW7h9+za3b9/mu+++Y/jw4fTu3dv4NRZClGzOVeGtpRnf75ufEQAZiUqtxm3BfMzKl0dz5w6hH06V8T5CvODyPJ193759DB8+nJs3b6LRaDIuzuzuMjExYdiwYfj7+2NlZWXcGhuZTGcXopD8/AGc/hpsy8J7B8DWxWhFJZ49x82+fVE0GlwmTaLMkMFGK0sIUTTy+v6d73V8Ll68SEREBOnp6QCUKlWKypUrY2Nj8+y1LgYk8BGikKQkwBevQMQF8GoH/beCOt9rqubZw2+/JXz2HDAxodLGDVg3amS0soQQhc9ogc/zTgIfIQrRvYvwRTvQJMArH0HrSUYrSlEUQidNJuaXXzB1dsZz21ZMnZyMVp4QonAZNfC5c+cO27dv59atW6Q8thng0qVLn67GxYQEPkIUsqBvIPB9UKnBZwd4GG+z4/T4eG70/j9Srl3DumlTKq5fh8rEeKtICyEKT17fv03zm/Gff/5Jly5d8PLy0u7PFRwcjKIoNGjQ4FnrLYR40dTrCzf+gX+/gZ+GZoz3sTFOS4zaxoYKny7nRq/eJBw5QsSqVbiMGWOUsoQQxVO+O9Q//PBDJk6cyNmzZ7G0tOSnn37i9u3btGnThl69ehmnlkKI51snf3CqBrFhGZuZZo4hNAaLKlUoN2cOAJFr/kfcfuPNKhNCFD/5DnwuXLjAwIEDIXNV58TERGxtbZkzZw4LFxp3Dx4hxHPK3CZjfR9TK7j2JxxcZtTiHDq/hWOfdwAInTQZTWioUcsTQhQf+Q58bGxstON6ypUrx7Vr17Tn7t+/X7C1E0K8OMrWhDcXZ3z/1zy4edi4xX34IZa1a5MWHc2dseNQHhuvKIR4PuU78GnatCkHDhwA4M0332TChAnMmzePwYMH07RpU2PUUQjxoqjfH176P1DS4MfBEB9ptKLU5uaUX74Mtb09SWfOcHfRYqOVJYQoPvId+CxdupSXX34ZgNmzZ/Pqq6+yZcsWPDw8WL9+vTHqKIR4UahU0GkplPGG2FAIfM+o433MK1TAbcECAB5+/TUxv/1mtLKEEMWDrOPzGJnOLkQxEH4O1r0KqUnw2mxoOdaoxd1bspTIL75AbW2Nx48/YuHladTyhBAFL6/v38ZbJlUIIZ6Wa214I3OyxJ9z4NZRoxbnPGY01o0bk56QQMiYMaQnJhq1PCFE0ZHARwhRPDXwgdo9H433SXhgtKJUpqa4LfHHxMmJ5CtXCJ81WzYzFeI5JYGPEKJ4Uqmg83IoXRli7mSs7mzEYMTMxYXyS5aAWk30zz8T9eOPRitLCFF0JPARQhRfFnYZ6/uYWMDlXXB4lVGLs3m5Cc6ZKznfnfsxSefPG7U8IUThy3fgk5SUlOO5sLCwZ62PEELoKvcSdJyf8f0fs+D2caMWV2bYUGzbtEFJSeHO2HGkxcQYtTwhROHKd+DToEEDgoKC9I7/9NNPvPTSSwVVLx3BwcEMGTIET09PrKysqFy5MjNnztTZIDU4OBiVSqX3OHLkiFHqJIQoRI0GQ63ukJ5q/PE+ajVuCxdg5uaG5tYtQqdOlfE+QjxH8h34tG3blqZNm2q3p4iPj8fX15cBAwYwdepUY9SRixcvkp6eztq1a/nvv/9YtmwZ//vf/wyW98cffxAWFqZ9NGzY0Ch1EkIUIpUKOq+AUp4QfQt+/sCo431MHB0p/+mnqMzMiPvjTx4EbDBaWUKIwvVU6/js3LmToUOHUqVKFcLCwrC1teXrr7+mdu3axqmlAYsXL2bNmjVcv34dMlt8PD09OX36NPXq1XvqfGUdHyGKsbB/Yd1rkJYCHeZDsxFGLe7BN99wd85cMDGh0qaNWMsHKSGKLaOu4/PGG2/Qo0cPDh48yK1bt1i4cGGhBj0A0dHRlC5dWu94ly5dcHFxoWXLlmzfvv2J+SQnJxMTE6PzEEIUU+XqQodPMr7fMwPunDRqcaX69MG+UydISyNk3HhSI423hYYQonDkO/C5du0azZo145dffmH37t1MnjyZLl26MHnyZDQajXFq+ZirV6+ycuVK3n33Xe0xW1tblixZwg8//MDOnTtp2bIl3bp1e2LwM3/+fBwcHLQPd3f3QngFQoin1ngo1OwK6Rr40RcSo4xWlEqlotyc2ZhXrkzqvXuETJyIkpZmtPKEEMaX764uOzs7OnXqxP/+9z8cHR0BOHToEAMHDsTOzo7Tp0/nOa8pU6Zoxwrl5MKFC1SvXl37PCQkhDZt2tC2bVvWrVuX67UDBw7kxo0b/PPPPzmmSU5OJjk5Wfs8JiYGd3d36eoSojhLioa1reFhMFR/C/7v64xxQEaSfPUqN3r1RklMxGnE+ziPHm20soQQTyevXV35Dny++uorBgwYoHc8NjaWsWPH5muj0oiICCKf0HTs5eWFubk5AKGhodrB1Rs2bECtzr3B6rPPPuPjjz/O1zR7GeMjRAkRcgrWt89o+XljEbz8bh4uenrRO3YQOmkyqFS4f74W21atjFqeECJ/jBb4FJWQkBDatWtHw4YN+frrrzExMXniNcOGDePkyZOcOnUqz+VI4CNECXLkf7DLD0zMYfBuKN/AqMWFzZpF1HdbMHF0xHPrT5i5uRm1PCFE3uX1/dv0aQs4f/48t27d0llLR6VS0blz56fNMkchISG0bduWSpUq4e/vT0REhPacq6srABs3bsTc3Jz69esDsHXrVr788ssndocJIUqwl9+F4H/g4i/w4yB4dz9YOhituLIffkjSmbMknT/PnXHj8PjqK1SZLdJCiJIh34HP9evX6d69O2fPnkWlUmkX9lJl9q+nGWHg3549e7h69SpXr16lQoUKOueyN1jNnTuXmzdvYmpqSvXq1dmyZQs9e/Ys8PoIIYoJlQq6fgbhZzLG+2wfBb02Gm28j9rCgvIrPuVGj7dJ+vcMd/39cTXS+mVCCOPId1dX586dMTExYd26dXh6enLs2DEiIyOZMGEC/v7+tCrh/d7S1SVECXTnJHzZIWO8z5v+0GSYUYuL/esv7oz4AIDyy5dh37GjUcsTQjyZ0dbxOXz4MHPmzMHJyQm1Wo1araZly5bMnz+f0TLTQQhRFCo0hNfnZHy/eyqE6m+rU5DsXnmFMsOGAhA27SOSb9wwanlCiIKT78AnLS0NOzs7AJycnAgNDQWgUqVKXLp0qeBrKIQQedH0fajWKWNV5x98Icm4i5E6jxmDdaNGpMfHEzJmLOmJiUYtTwhRMPId+NSuXZt///0XgJdffplFixZx8OBB5syZg5eXlzHqKIQQT6ZSQddV4OAOD2/8f3t3Hldlmf9//HUO60EJQUUBccENdxFc0JymRi1tsmbap8W0bGr69k3L0vmV37KyySaXadNsn8rSxnJcMzNncksBBXPJLUXFHUFAds79++PgwSNmcOR4c+D9fDzOIz1cnPtzziPl7XVfn+uCRY959Dwvi68vkdOm4tOkCUW7dnF00vM6zFTEC1Q7+DzzzDPY7XYAnn/+efbt28fAgQNZunQpr732midqFBGpmqAwuOUDsPrCti8h5QOPXs4vPJyoV18Fq5XTCxZwev58j15PRC5djezjc+rUKUJDQ52dXd5Mi5tF6oB1r8M3z4BPADzwLUR09+jlTs56mxMzZmAJCKD1558R2KmTR68nIpV59JDS84WFhdWJ0CMidUTi/0CH66CsyLHepyjXo5dr/OBoGlz1G4yiIg49NoayXM9eT0TcV+0Zn8LCQl5//XVWrVrF8ePHnbe9zqrOLsm1kWZ8ROqI/FMwayDkHIKut8DN73r0PK+y7Gz2/fFmSg4fJnjwIKJee03/IBS5jDy2c/P999/PN998wy233EKfPn30B1tEaqegMLjlffhgKGz9F7QZCPH3eexyPo0aETVjOvvvupvcFd9y6sOPaDzSc9cTEfdUe8YnJCSEpUuXMmDAAM9VZSLN+IjUMWtmwLfPgm8gPLASmnf16OVOffopx154EXx9afXPjwjq5dnzw0TEwWNrfKKiopz7+IiI1Hr9/xfaDYbSwvL1PnkevVzon/7EFcOGQWkpGWMfpzQz06PXE5HqqXbwmTp1KuPHjyc9Pd0zFYmI1CSrFf7wNgRHQuZuWPK4Z/f3sVho/vzz+MfEUHrsGIeffBLDA2cYioh7qh18EhISKCwsJCYmhuDgYMLCwlweIiK1ToPGjvU+Fh/YMhc2f+LRy/k0bECLf8zAYrNxZt16Tr4106PXE5Gqq/bi5jvvvJOMjAxeeuklmjVrpsXNIuIdWiXCNU/Dyudh6ZPQIgHCPbffTkD79kQ89yyHx0/g5FtvYevZk4YDr/TY9USkaqq9uDkoKIj169fTo0cPz1VlIi1uFqnD7Hb49BbYuxKadIQHV4F/A49e8sizz5E9dy4+jRrR5qsv8YuI8Oj1ROorjy1ujo2NpUCH8YmIN3Ku94mAkzthyTiPX7LZ//srgZ07U5adTcbYxzGKiz1+TRH5ZdUOPi+//DJPPPEE//nPf8jMzCQnJ8flISJSqzVsCje/BxYrpM2B1DkevZw1IICof8zAGhxMQWoqx6dO9ej1ROTiqn2ry2p1ZKXz1/YYhoHFYqHMy7sXdKtLpJ74799h1YvgFwSjV0F4rEcvl/vddxz6yyMARM2YwRXXXevR64nUNx7buXnVqlWXWpuIiPkGPg7pa+HnVY79fUZ/B/5BHrtc8DXXEHb/KE699z5Hnn6agI4dCGjTxmPXE5ELq5HT2esSzfiI1CN5x2HWlZB3DOLuhhvf9OjljJIS0keOpCA5hYCOHWn9+WdYbTaPXlOkvqjRxc0HDhyo1sUzMjKqNV5ExBQNw8sPL7U69vZJm+vRy1n8/IiaOg2fxo0p2rmToy+86NHriUhlVQo+vXv35s9//jNJSUm/OOb06dO88847dO3alfnz59dkjSIintPmN3DVeMevF4+FE7s8ejm/ZuFETX0VrFZOf/kl2fr7UuSyqtKtrszMTCZPnsz7779PYGAg8fHxREZGEhgYSFZWFtu3b2fbtm306tWLiRMnMmzYsMtTvQfoVpdIPWQvg49vgn3fQ3gXGL0S/Dx7C+rkrFmcmPEPLAEBtJ77OYGxnl1cLVLXVfXnd7XW+BQUFLBkyRLWrFlDeno6BQUFNGnShLi4OK699lq6dvXsqceXg4KPSD2Ve8yx3ufMceg1Aoa/5tHLGXY7Bx96iDPfr8avVUva/Otf+OgAaBG3eST41AcKPiL12M//gX/eBBiOvX663eLRy5VmZbHv5pspPXyE4MGDiXrtHzoGSMRNHtu5WUSkzor5LVz1lOPXix6Dk3s8ejnf0FBazJgBfn7krlhB1j//6dHriUg1g09aWhovvvgib731FidPnnT5Wk5ODqNGjarp+kRELq+rxkPrgVCc59jfp6TQo5ezde9Os/GOxdXH/v4qJ2fOJH/TZh1tIeIhVb7V9c0333DDDTfQvn17cnNzOXPmDF988QVXX301AMeOHSMyMlI7N4uI98s54ljvk38SEkbB76d79HKGYXD4iSfIWbrM+ZwlIABbjx4EJSQQlBCPrWdPrEGe22BRxNvV+Bqf/v37c/XVVzN58mQMw+Dvf/87L7zwAl988QXXXXedgo+I1C17VsInNzvW+9zyPnS92aOXsxcXk/3FF+T/8AP5ySmUZWW5DvD1JbBLZ4LiExxhqFccPo0aebQmEW9S48EnJCSETZs20bZtW+dzc+bM4cEHH+Tzzz+nd+/eCj4iUresfAFWvwr+wfDn/0LjtlX4pktnGAbFP/9MflIy+Skp5CcnU3rkSKVxAR06EJQQT1BCArb4BPyahV+W+kRqoxo/qysgIIDs7GyX5/70pz9htVq5/fbbmaoTh0WkrvntXyF9HRxY51jvc/8K8Av0+GUtFgsBbdsS0LYtoXfcDkBJRgb5ycnljxSK9+2jaNcuinbtImvOZwD4tWxJULwjCAX1TsAvOlpdYiLnqfKMz5AhQxgyZAjjxo2r9LXPPvuMESNGUFZWphkfEalbcg6Xr/fJhN6j4fpXza4IgNKTJ8lP2eQIQinJFO34Cc7769y3aVOCeidgi48nKKE3Ae3bYbGqmVfqphq/1fXVV1/x/fffM336hRf5zZkzh3feecfrT29X8BGRSnZ/C5+Wr/G59SPocpPZFVVSlpNDwebN5Cc7bo0VbN0KJSUuY6whIQT16uW8PRbYuTMWPz/TahapSdrA0E0KPiJyQd8+B2umQ8AVjvU+YTFmV3RR9sJCCtK2kJ+STEFyMvmpaRj5+S5jLDYbtp7lnWPxCdh6dNdp8eK1FHzcpOAjIhdUVgofXg8Hf4CInnD/N+AbYHZVVWaUlFC4Y0fFjFBKCmWnT7sO8vPD1qVLxe2xXr3w0d+D4iU8FnxCQ0MvuFjOYrEQGBhIu3btuO+++xg5cqR7lZtMwUdEftHpQ471PgVZ0PchGDrF7IrcZtjtFO3ZQ0FKiqN7LDmZ0uPHXQdZLATExlYsmE6Ix7dJE7NKFrkojwWf6dOnM3nyZIYOHUqfPn0A2LhxI19//TVjx45l3759fPzxx7z++uuMHj360t/JZabgIyIXtWs5zLnN8evbPobOw82uqEYYhkHJoUPlLfSOIFSSfqDSOP/WrbElnA1CvfGLilTnmNQKHgs+N998M4MHD+ahhx5yef7tt9/mm2++Yf78+bz++uvMnj2bH3/80f13YBIFHxH5Vd9MhHWvQUAIPPQ9hLY2uyKPKDl+vGJGKCWFol27KneONW/unA0KSkjAv21bBSExhceCT8OGDUlNTaVdu3Yuz+/Zs4eePXuSl5fH3r176d69O2fOnHH/HZhEwUdEflVZCXwwDA5thMheMGo5+PqbXZXHlZ0+Tf4mRwt9QXIKBdu2QWmpyxifRo0cM0LlO0wHdorF4lvlLeNE3FbjGxieFRYWxqJFixg7dqzL84sWLSIsLAyAM2fOEBwc7E7dIiK1n4+f4xiLWVfC4U2Ojq/rXjK7Ko/zCQkh+OqrCS4/o9Gen0/Bli3OGaGC1FTKsrPJ+3Yled+uBMAaFIQtLo6g3gkExccT2L071gDvWRQudU+1g8/EiRN5+OGHWbVqlXONT1JSEkuXLmXWrFkArFixgquuuqrmqxURqS0aRcMfZsFnd8APb0LrARB7vdlVXVbWoCAa9OtHg379ADCKiyncvt2xqWJSMvmbNmHPzeXM2rWcWbsWAIufH4Hdu1ccvhoXh0/Dhia/E6lP3GpnX7t2LW+88QY7d+4EoGPHjjz66KP079/fEzVeVrrVJSLVsvxpWP8GBIbAQ2ugUUuzK6o1jLIyinbvdrbQ56ckU3bipOsgq5XA2FhHC32CY1bIt/zugUh1aB8fNyn4iEi1lBbDB0MhIxmiEmDksnqx3scdhmFQkp7uPG8sPzmZkkOHKo3zb9vW0UJffnvMLzLSlHrFu3g0+JSVlbFgwQJ27NgBQJcuXRg+fDg+Pj6XVnUtoOAjItWWlQ5vD4TC05D4P3DtZLMr8holR486QlD5DtNFu/dUGuMXGenSQu/fprU6x6QSjwWfPXv2MGzYMDIyMujYsSMAO3fuJDo6miVLltC2bdtLr95ECj4i4pYdi2HuXY5f3zkXOl5ndkVeqTQri4JNm5wzQoXbt8N5h1/7NG5cvqmiIwwFdOyIpQ78w1sujceCz7BhwzAMg08//dTZxZWZmcndd9+N1WplyZIll169iRR8RMRtyybAhplgC3Ws9wlpYXZFXs9+5gz5qakVLfRpaRjFxS5jrA0bYusV52ih751AYNeuWP11u7G+8VjwadCgAT/88APdunVzeT4tLY0BAwaQl5fnftW1gIKPiLittBjev9bR4h7dF+5b4mh9lxpjLy6mcOtW5w7TBSmbsJ+3Z5wlIABb9+4VZ4717Im1QQPTapbLo6o/v63VfeGAgAByc3MrPZ+Xl4e/BxP28OHDadmyJYGBgURERHDPPfdw+PBhlzFbtmxh4MCBBAYGEh0dzSuvvOKxekREKvH1h1s/cOzofHADfPeC2RXVOVZ/f4J69aLJnx+k5ezZdNi4gTZfzqfZ//srwYMH4xMWhlFURH5SEiffmsnB+x9gZ5++7Lv1No5NeYXclSspzcoy+22Iiao943PvvfeyadMm3nvvPec+Phs2bGD06NHEx8fz4YcfeqTQ6dOnk5iYSEREBBkZGYwbNw6AdevWQXnS69ChA4MGDeKvf/0rP/74I6NGjWLGjBk8+OCDVb6OZnxE5JJtXwjz7nH8+k9fQIchZldUbxiGQfG+feWdY47bYyXn/SMZIKB9O0f7fPnDr1kzU+qVmuOxW13Z2dmMGDGCRYsW4efnmMItLS1l+PDhfPjhh4SEhFx69VWwcOFCbrrpJoqKivDz82PmzJk8/fTTHD161DnzNGHCBBYsWMBPP/1U5ddV8BGRGrH0Kdj4NtjCytf7RJldUb1Vcvgw+eecOVa8d2+lMX7R0a4t9K1aqXPMy3h8H5/du3c7A0WnTp0qnd3lSadOneLhhx8mIyODNWvWQPlMVE5ODgsWLHCOW7VqFddccw2nTp0iNDT0gq9VVFREUVGR8/c5OTlER0cr+IjIpSktgveGwJFUaJkIIxaDj86sqg1KMzMdR2yUh6HCn34Cu91ljE/TJo7ZoPIF0wHt22OxVnt1iFxGdXIDw/Hjx/PGG2+Qn59Pv379WLx4MY0bNwZgyJAhtGnThrfffts5fvv27XTp0oXt27fTqVOnC77mc889x6RJkyo9r+AjIpfs1M/w9lVQlANXPg6DnjW7IrmAsrw8CjZvrmih37IFo6TEZYz1iisI6tXL2UIf2LkzFnWO1So1Gnwef/zxKl942rRpVR47YcIEpkyZctExO3bsIDY2FoCTJ09y6tQp0tPTmTRpEiEhISxevBiLxeJ28NGMj4h41Lav4Iv7HL++ez60G2R2RfIr7EVFFG7ZUrHD9ObNGPn5LmMsgYHYevasOHOsRw+sNptpNUsNB5+ry0/i/TUWi4XvvvuuykWeOHGCzMzMi46JiYm5YLfYoUOHiI6OZt26dSQmJrp9q+t8WuMjIjVuyROQ9C4ENXas97lCRzB4E6O0lMIdPznPGytITqEsO9t1kK8vti5dKlroe/XC5zKteRWHqv78rtIN51WrVtVkbU5NmzaladOmbn2vvfx+7NnZmsTERJ5++mlKSkqci65XrFhBx44dqxx6REQ8YshkR3v70R9h/gNw70Kt9/EiFl9fbN26YuvWlcYj78Ow2yn++eeKGaGkJEqPHaMgLY2CtDR49z2wWAjo0KFiRig+Hr/wcLPfinjLGp8NGzaQlJTElVdeSWhoKHv37mXixIkcO3aMbdu2ERAQwOnTp+nYsSNDhgxh/PjxbN26lVGjRjF9+nS1s4uI+TL3wtu/geI8+M2TcM0zZlckNcQwDEoyMlxa6Iv37680zr9Vq/Izx3oTlBCPX4sW6hyrQXVqcfOPP/7IY489RlpaGmfOnCEiIoLrrruOZ555hqioihbRLVu28Mgjj5CUlESTJk149NFHGT9+fLWupeAjIh7z479g/v2ABe75EtpeY3ZF4iGlJ06Qn7Kp/PZYCkU//QTn/bj1bdbM2UJvi48noF07dY5dgjoVfC4nBR8R8ahFYyDlAwhqAg+vheDmZlckl0FZTk5551gy+UnJFGzbBud1jvmEhDg2VSwPQ4GdOmHx1S3RqlLwcZOCj4h4VEkBvDsIjm2F1gPh3n+DVSeL1zf2ggIK0raQn1J+eyw1DaOgwGWMJSiIoJ49y2+PJWDr3h1rYKBpNdd2Cj5uUvAREY87uduxv0/JGbhqAlz9V7MrEpMZJSUUbt/u3EsoPyUFe06OyxiLnx+B3bpVLJiOi8MnONi0mmsbBR83KfiIyGWxZR58Odqx3ufef0PMVWZXJLWIYbdTtHsP+clJzh2mS0+ccB1ktRIQ27Fih+mEeHzLN/WtjxR83KTgIyKXzcJHYdM/oUG4Y3+fYB2UKRdmGAYlBw86zxvLT06m5MCBSuP827RxBKGzZ45F1Z8z4hR83KTgIyKXTXE+vPs7OL4d2lwF93yl9T5SZSXHjlNQvkYoPzmFol27Ko3xjYwonw1yzAj5x8TU2RZ6BR83KfiIyGV1YhfM/q1jvc/VT8NVT5ldkXipsuxs8jdtdu4wXbhtO5SWuozxCQsjKL6XY7F0QgKBsbFYfOpG2FbwcZOCj4hcdmmfw1d/BosVBoyBNr+BFr0hoKHZlYkXs+fnU5CW5rg9lpxMQVoaxjlnUwJYGzTA1qtXRQt9t25YvfTwVQUfNyn4iIgpFjwCqZ9U/N7iA5E9oWUitBoALftBUJiZFYqXM4qLKdi6raKFftNm7Lm5LmMs/v7Yund37jBt69kTn4YNTKu5OhR83KTgIyKmKCuFLXNh338hfR2cPlh5THjn8iDU3/HQYadyCYyyMop27XJpoS87edJ1kI8PgZ06uZw55ltLz79U8HGTgo+I1ArZByB9PRxY5whCJysvXCW0dflsUHkYCouBOrpwVTzPMAyK9+93ts/nJydTkpFRaZx/u7YVLfS9E/BrXjt2H1fwcZOCj4jUSnkn4MB6xyN9reOkd8PuOqZhM0cAalk+IxTeGXT2k1yCkiNHHDNC5bfHivfsrTTGLyrK2UJvi4/Hv3VrUzrHFHzcpOAjIl6hMAcObqyYEcpIgbJi1zGBIY7ZoLPrhCJ6gK93LlyV2qE0K6tiRiglhcLt28HuGsB9mjRxLJYuvz0W0KHDZekcU/Bxk4KPiHilkkJH+Elf5whDBzY4WuTP5WuD6N4VM0IteoN/kFkVSx1QlneGgtRUxw7TySkUbNmCUewawK3Bwdh6xZUHoQRsXbpg8UDnmIKPmxR8RKROKCuFo1vKg9B6x38LTrmOsfpCZNw5nWN9wVY7F66Kd7AXFVG4datzRqhg0ybsZ1wDuCUwkFaffIKta5cavbaCj5sUfESkTrLbHQuk09dWBKGc8xeuWqBZF9fOseDasXBVvJNRWkrhzp0UJFfsMF2Wm0vHjRuwBtXsbKOCj5sUfESkXjCM8s6xdRXrhDL3VB4XFuO6YDq0tTrHxG2GYVCSkYF/ixY1/toKPm5S8BGReivv+Dm3xtbC0a3AeT8igiPKg1D57bGmseock1pBwcdNCj4iIuUKsh2dY2dvj2VsAnuJ65jARq5BKKI7+PiZVbHUYwo+blLwERH5BcX5rp1jBzdCSb7rGL8giO5zTudYAvjZzKpY6hEFHzcp+IiIVFFZCRzZ4rpgujDbdYzVD6J6uXaOBYaYVbHUYQo+blLwERFxk90OJ35yDUK5R84bZIHmXStmhFr1h4bhJhUsdYmCj5sUfEREaohhQNZ+186xUz9XHte4XcWMUKv+0KilOsek2hR83KTgIyLiQblHXTdVPLatcufYFVGuewk16ajOMflVCj5uUvAREbmMCrIcx2ucnRE6vBnspa5jbGHndI71h+bdwcfXrIqlllLwcZOCj4iIiYrPwKHkczrHkqC0wHWMf0PXzrGoePALNKtiqSUUfNyk4CMiUouUFsORtIoF0wfWQ+Fp1zE+/o7wc3adUHQfCNTf3/WNgo+bFHxERGoxux2Ob3ddMJ13zHWMxQrNu1XMCLVMhIZNzapYLhMFHzcp+IiIeBHDcHSKnXvURtb+yuOadDincyzR0TkmdYqCj5sUfEREvFzOYdfOsePbK48JiXY9aqNJe7XQezkFHzcp+IiI1DH5p+DADxXrhA6nglHmOiaoiWMm6OztsebdwOpjVsXiBgUfNyn4iIjUcUV5cCipYlboUBKUFrqO8Q92HK9xdkYoqhf4BphVsVSBgo+bFHxEROqZ0iLHLJCzc+wHKMpxHeMT4Dhw9exeQtF9ICDYrIrlAhR83KTgIyJSz9nLHDtKn9s5duaE6xiLD0R0d+0ca9DYrIpFwcd9Cj4iIuLCMCBzr2NG6GwYyj5QeVzTWNfOsZAWZlRbbyn4uEnBR0REftXpQ5C+vuL22ImfKo9p1PKcU+gHQOO26hzzIAUfNyn4iIhItZ3JrGifP7DOsdu0YXcd06Cp64xQs67qHKtBCj5uUvAREZFLVpQLBzee0zmWDGVFrmMCroCW/SrCUGQc+PqbVbHXU/Bxk4KPiIjUuJJCx8nzzs6xDVCc6zrGNxBa9K7oHGvRGwIamlWx11HwcZOCj4iIeFxZKRzb6to5lp/pOsbiA5E9K2aEWvaDoDCzKq71FHzcpOAjIiKXnWHAyd0VM0Lp6+D0wcrjwjtXzAi16g9XRJpRba2k4OMmBR8REakVsg+4do6d3FV5TGjrczrH+kNYTL3tHFPwcZOCj4iI1Ep5J1w7x47+WLlzrGGz8g0Vy4NQeGewWs2q+LJS8HGTgo+IiHiFwpzyzrHyGaGMFCgrdh0TGOK4NXZ2nVBEjzrbOabg4yYFHxER8UolhY7wc3ZG6MAGKDnjOsbXBtG9K2aEWvQG/yCzKq5RCj5uUvAREZE6oawUjm6p2EsofR0UnHIdY/V17B/k7BzrC7ZQsyq+JAo+blLwERGROsluh5M7HQHo7CP38HmDLNCsi2vnWHBzkwqunjoXfIYPH05qairHjx8nNDSUQYMGMWXKFCIjHa18+/fvp02bNpW+b/369fTr16/K11HwERGResEwIDvdtXMsc0/lcWEx53SOJUJom1rZOVbngs/06dNJTEwkIiKCjIwMxo0bB8C6devgnODz7bff0qVLF+f3NW7cGD8/vypfR8FHRETqrdxj53WObQXOiwnBEefMCA1wnEpfCzrH6lzwOd/ChQu56aabKCoqws/Pzxl8Nm/eTM+ePd1+XQUfERGRcgXZ53WObQJ7ieuYwEaut8YieoBP1SccakpVf377XtaqasipU6f49NNP6d+/f6XZnOHDh1NYWEiHDh146qmnGD58+EVfq6ioiKKiioPjcnJyPFa3iIiIV7E1gg5DHA+A4nzXzrGDG6EwG3YtczwA/IIc3WKtBpR3jiWAn83Ut3Eurwo+48eP54033iA/P59+/fqxePFi59caNmzI1KlTGTBgAFarlfnz53PTTTexYMGCi4afv/3tb0yaNOkyvQMREREv5h8EbQY6HgBlJXAkzbVzrDAb9v3X8QCw+kFUL9fOscAQ096Cqbe6JkyYwJQpUy46ZseOHcTGxgJw8uRJTp06RXp6OpMmTSIkJITFixdj+YVFVvfeey/79u1j9erVv/j6F5rxiY6O1q0uERGR6rLb4cRPjltjZ8NQ7pHzBlnggZXQIr5GL+0Va3xOnDhBZmbmRcfExMTg7195l8lDhw4RHR3NunXrSExMvOD3vvnmm7z44oscOXL+h/7LtMZHRESkhhgGZO0r7xwrvz12+hBMOFDjt7+8Yo1P06ZNadq0qVvfa7c7zic5d7bmfKmpqURERLhdn4iIiFwCi8XRDh8WA3F3OZ7LP2Xqmh+vWOOzYcMGkpKSuPLKKwkNDWXv3r1MnDiRtm3bOmd7PvroI/z9/YmLiwPgyy+/5P333+fdd981uXoRERFxCgoz9fJeEXyCgoL48ssvefbZZzlz5gwRERFcd911PPPMMwQEBDjHvfDCC6Snp+Pr60tsbCxz587llltuMbV2ERERqT28dh8fT9EaHxEREe9T1Z/f5m+1KCIiInKZKPiIiIhIvaHgIyIiIvWGgo+IiIjUGwo+IiIiUm8o+IiIiEi9oeAjIiIi9YaCj4iIiNQbCj4iIiJSbyj4iIiISL2h4CMiIiL1hlccUno5nT26LCcnx+xSREREpIrO/tz+tSNIFXzOk5ubC0B0dLTZpYiIiEg15ebmEhIS8otf1+ns57Hb7Rw+fJjg4GAsFovZ5dR6OTk5REdHc/DgQZ1m7wZ9fpdGn9+l0ed3afT5XZqa/vwMwyA3N5fIyEis1l9eyaMZn/NYrVZatGhhdhle54orrtAf/Eugz+/S6PO7NPr8Lo0+v0tTk5/fxWZ6ztLiZhEREak3FHxERESk3lDwkUsSEBDAs88+S0BAgNmleCV9fpdGn9+l0ed3afT5XRqzPj8tbhYREZF6QzM+IiIiUm8o+IiIiEi9oeAjIiIi9YaCj4iIiNQbCj7ilueeew6LxeLyiI2NNbssr5KRkcHdd99N48aNsdlsdOvWjeTkZLPL8gqtW7eu9P+fxWLhkUceMbs0r1BWVsbEiRNp06YNNpuNtm3b8sILL/zqGUfikJuby5gxY2jVqhU2m43+/fuTlJRkdlm11vfff88NN9xAZGQkFouFBQsWuHzdMAz+7//+j4iICGw2G4MGDWL37t0eq0fBR9zWpUsXjhw54nysWbPG7JK8RlZWFgMGDMDPz49ly5axfft2pk6dSmhoqNmleYWkpCSX//dWrFgBwK233mp2aV5hypQpzJw5kzfeeIMdO3YwZcoUXnnlFV5//XWzS/MKDzzwACtWrODjjz/mxx9/ZMiQIQwaNIiMjAyzS6uVzpw5Q48ePXjzzTcv+PVXXnmF1157jVmzZrFhwwYaNGjAtddeS2FhoUfqUTu7uOW5555jwYIFpKamml2KV5owYQJr165l9erVZpdSJ4wZM4bFixeze/dunbFXBb///e9p1qwZ7733nvO5m2++GZvNxieffGJqbbVdQUEBwcHB/Pvf/+b66693Ph8fH8/QoUN58cUXTa2vtrNYLHz11VfcdNNNUD7bExkZyRNPPMG4ceMAOH36NM2aNePDDz/kjjvuqPEaNOMjbtu9ezeRkZHExMRw1113ceDAAbNL8hoLFy4kISGBW2+9lfDwcOLi4njnnXfMLssrFRcX88knnzBq1CiFnirq378/K1euZNeuXQCkpaWxZs0ahg4danZptV5paSllZWUEBga6PG+z2TTr7YZ9+/Zx9OhRBg0a5HwuJCSEvn37sn79eo9cU8FH3NK3b18+/PBDvv76a2bOnMm+ffsYOHAgubm5ZpfmFX7++WdmzpxJ+/btWb58OQ8//DD/+7//y0cffWR2aV5nwYIFZGdnc99995lditeYMGECd9xxB7Gxsfj5+REXF8eYMWO46667zC6t1gsODiYxMZEXXniBw4cPU1ZWxieffML69es5cuSI2eV5naNHjwLQrFkzl+ebNWvm/FpN0+ns4pZz/2XYvXt3+vbtS6tWrZg3bx7333+/qbV5A7vdTkJCAi+99BIAcXFxbN26lVmzZjFixAizy/Mq7733HkOHDiUyMtLsUrzGvHnz+PTTT5kzZw5dunQhNTWVMWPGEBkZqf//quDjjz9m1KhRREVF4ePjQ69evbjzzjtJSUkxuzSpAs34SI1o1KgRHTp0YM+ePWaX4hUiIiLo3Lmzy3OdOnXS7cJqSk9P59tvv+WBBx4wuxSv8uSTTzpnfbp168Y999zD2LFj+dvf/mZ2aV6hbdu2/Pe//yUvL4+DBw+yceNGSkpKiImJMbs0r9O8eXMAjh075vL8sWPHnF+raQo+UiPy8vLYu3cvERERZpfiFQYMGMDOnTtdntu1axetWrUyrSZv9MEHHxAeHu6yyFR+XX5+Plar61//Pj4+2O1202ryRg0aNCAiIoKsrCyWL1/OjTfeaHZJXqdNmzY0b96clStXOp/Lyclhw4YNJCYmeuSautUlbhk3bhw33HADrVq14vDhwzz77LP4+Phw5513ml2aVxg7diz9+/fnpZde4rbbbmPjxo3Mnj2b2bNnm12a17Db7XzwwQeMGDECX1/9VVYdN9xwA5MnT6Zly5Z06dKFzZs3M23aNEaNGmV2aV5h+fLlGIZBx44d2bNnD08++SSxsbGMHDnS7NJqpby8PJe7Afv27SM1NZWwsDBatmzJmDFjePHFF2nfvj1t2rRh4sSJREZGOju/apwh4obbb7/diIiIMPz9/Y2oqCjj9ttvN/bs2WN2WV5l0aJFRteuXY2AgAAjNjbWmD17ttkleZXly5cbgLFz506zS/E6OTk5xmOPPWa0bNnSCAwMNGJiYoynn37aKCoqMrs0rzB37lwjJibG8Pf3N5o3b2488sgjRnZ2ttll1VqrVq0ygEqPESNGGIZhGHa73Zg4caLRrFkzIyAgwPjd737n0T/X2sdHRERE6g2t8REREZF6Q8FHRERE6g0FHxEREak3FHxERESk3lDwERERkXpDwUdERETqDQUfERERqTcUfESk1vjtb3/LmDFjLvt1MzMzCQ8PZ//+/dX+3n79+jF//nyP1CUiNU/BR0TqrC+//JLBgwfTtGlTrrjiChITE1m+fHmlcZMnT+bGG2+kdevWAOzfvx+LxUJ4eDi5ubkuY3v27Mlzzz3n/P0zzzzDhAkTdM6ViJdQ8BGROuv7779n8ODBLF26lJSUFK6++mpuuOEGNm/e7ByTn5/Pe++9x/3331/p+3Nzc3n11Vcveo2hQ4eSm5vLsmXLPPIeRKRmKfiISK2UlZXFvffeS2hoKEFBQQwdOpTdu3e7jHnnnXeIjo4mKCiIP/zhD0ybNo1GjRo5vz5jxgyeeuopevfuTfv27XnppZdo3749ixYtco5ZunQpAQEB9OvXr1INjz76KNOmTeP48eO/WKePjw/Dhg3j888/r7H3LiKeo+AjIrXSfffdR3JyMgsXLmT9+vUYhsGwYcMoKSkBYO3atTz00EM89thjpKamMnjwYCZPnnzR17Tb7eTm5hIWFuZ8bvXq1cTHx19w/J133km7du14/vnnL/q6ffr0YfXq1W69TxG5vBR8RKTW2b17NwsXLuTdd99l4MCB9OjRg08//ZSMjAwWLFgAwOuvv87QoUMZN24cHTp04C9/+QtDhw696Ou++uqr5OXlcdtttzmfS09PJzIy8oLjLRYLL7/8MrNnz2bv3r2/+LqRkZEcPHhQ63xEvICCj4jUOjt27MDX15e+ffs6n2vcuDEdO3Zkx44dAOzcuZM+ffq4fN/5vz/XnDlzmDRpEvPmzSM8PNz5fEFBAYGBgb/4fddeey1XXnklEydO/MUxNpsNu91OUVFRld+jiJhDwUdE6rzPP/+cBx54gHnz5jFo0CCXrzVp0oSsrKyLfv/LL7/M3LlzXRZFn+vUqVM0aNAAm81Wo3WLSM1T8BGRWqdTp06UlpayYcMG53OZmZns3LmTzp07A9CxY0eSkpJcvu/83wN89tlnjBw5ks8++4zrr7++0tfj4uLYvn37Revp06cPf/zjH5kwYcIFv75161bi4uKq/P5ExDwKPiJS67Rv354bb7yR0aNHs2bNGtLS0rj77ruJiorixhtvhPKOq6VLlzJt2jR2797N22+/zbJly7BYLM7XmTNnDvfeey9Tp06lb9++HD16lKNHj3L69GnnmGuvvZZt27b96qzP5MmT+e6779i5c2elr61evZohQ4bU6GcgIp6h4CMitdIHH3xAfHw8v//970lMTMQwDJYuXYqfnx8AAwYMYNasWUybNo0ePXrw9ddfM3bsWJf1OrNnz6a0tJRHHnmEiIgI5+Oxxx5zjunWrRu9evVi3rx5F62nQ4cOjBo1isLCQpfnMzIyWLduHSNHjqzxz0BEap7FMAzD7CJERGrC6NGj+emnn6rdWr5kyRKefPJJtm7ditVavX8Pjh8/nqysLGbPnl3NakXEDL5mFyAi4q5XX32VwYMH06BBA5YtW8ZHH33EW2+9Ve3Xuf7669m9ezcZGRlER0dX63vDw8N5/PHHq31NETGHZnxExGvddttt/Oc//yE3N5eYmBgeffRRHnroIbPLEpFaTMFHRERE6g0tbhYREZF6Q8FHRERE6g0FHxEREak3FHxERESk3lDwERERkXpDwUdERETqDQUfERERqTcUfERERKTeUPARERGReuP/A24uHfmrDbRVAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "\n", + "# Определяем функции для уравнений\n", + "def func_a(x, y):\n", + " return x + np.cos(y)\n", + "\n", + "def func_b(x, y):\n", + " return x**2 + y**2\n", + "\n", + "# Реализация метода Рунге-Кутты 2-го порядка\n", + "def runge_kutta_2(f, x0, y0, h, N):\n", + " x = x0 + np.arange(N+1) * h\n", + " y = np.zeros(N+1)\n", + " y[0] = y0\n", + " for k in range(N):\n", + " k1 = f(x[k], y[k])\n", + " k2 = f(x[k] + h, y[k] + h * k1)\n", + " y[k+1] = y[k] + h * (k1 + k2) / 2\n", + " return x, y\n", + "\n", + "# Реализация метода Рунге-Кутты 4-го порядка\n", + "def runge_kutta_4(f, x0, y0, h, N):\n", + " x = x0 + np.arange(N+1) * h\n", + " y = np.zeros(N+1)\n", + " y[0] = y0\n", + " for k in range(N):\n", + " k1 = f(x[k], y[k])\n", + " k2 = f(x[k] + h/2, y[k] + h * k1 / 2)\n", + " k3 = f(x[k] + h/2, y[k] + h * k2 / 2)\n", + " k4 = f(x[k] + h, y[k] + h * k3)\n", + " y[k+1] = y[k] + h * (k1 + 2*k2 + 2*k3 + k4) / 6\n", + " return x, y\n", + "\n", + "# Начальные условия и параметры\n", + "equations = {\n", + " 'a': {'func': func_a, 'x0': 1.0, 'y0': 30.0, 'x_end': 2.0},\n", + " 'b': {'func': func_b, 'x0': 2.0, 'y0': 1.0, 'x_end': 1.0} # Обратное интегрирование\n", + "}\n", + "\n", + "methods = {\n", + " 'RK2': runge_kutta_2,\n", + " 'RK4': runge_kutta_4\n", + "}\n", + "\n", + "h_values = [0.1, 0.05, 0.01, 0.005, 0.001]\n", + "N_values = [10, 20, 100, 200, 1000]\n", + "\n", + "for eq_label, eq_params in equations.items():\n", + " print(f\"\\nРешение для уравнения {eq_label}:\")\n", + "\n", + " x0 = eq_params['x0']\n", + " y0 = eq_params['y0']\n", + " x_end = eq_params['x_end']\n", + " if x_end < x0:\n", + " direction = -1\n", + " else:\n", + " direction = 1\n", + "\n", + " for method_label, method_func in methods.items():\n", + " print(f\"\\nМетод {method_label}:\")\n", + "\n", + " ys = {}\n", + " xs = {}\n", + " abs_errors = []\n", + " max_abs_errors = []\n", + "\n", + " for h, N in zip(h_values, N_values):\n", + " h = direction * h # Учёт направления интегрирования\n", + " x, y = method_func(eq_params['func'], x0, y0, h, N)\n", + " xs[N] = x\n", + " ys[N] = y\n", + "\n", + " for i in range(1, len(N_values)):\n", + " N_prev = N_values[i-1]\n", + " N_curr = N_values[i]\n", + "\n", + " # Поиск общих индексов для сравнения\n", + " factor = N_curr // N_prev\n", + " indices = [int(k * factor) for k in [1, N_prev]]\n", + "\n", + " # Вычисление относительных ошибок\n", + " rel_errors = np.abs(ys[N_curr][indices] - ys[N_prev][[1, N_prev]])\n", + " print(f\"N_{N_curr}: {' '.join(map(str, rel_errors))}\")\n", + "\n", + " # Вычисление максимальных абсолютных ошибок\n", + " max_error = np.max(rel_errors)\n", + " max_abs_errors.append(max_error)\n", + "\n", + " # Построение графика логарифма абсолютных ошибок\n", + " plt.plot(np.log2(N_values[1:]), np.log2(max_abs_errors), label=f\"{method_label} для уравнения {eq_label}\")\n", + "\n", + "plt.xlabel(\"log2(N)\")\n", + "plt.ylabel(\"log2(max абсолютная ошибка)\")\n", + "plt.legend()\n", + "plt.title(\"График логарифма абсолютных ошибок\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/main.py b/main.py new file mode 100644 index 0000000..26aa54f --- /dev/null +++ b/main.py @@ -0,0 +1,136 @@ + +'''import matplotlib.pyplot as plt +import numpy as np + + +x = np.linspace(0, 10, 100) +y = np.sin(x) + +fig, ax = plt.subplots() +line, = ax.plot(x,y) + +ax.set_xlabel('x-axis') +ax.set_ylabel('y-axis') +ax.set_title('Graph') + +#plt.plot(x,y, label='sin(x)') +#plt.plot(x,y*2, label='cos(x)') + + + +def update_graph(new_y): + line.set_ydata(new_y) + plt.draw() + plt.pause(0.1) + + + +ax.grid(True) +ax.legend() + +for i in range(10): + new_y = np.sin(x + 0.5 * i) + update_graph(new_y) + +plt.show() + +''' +import numpy as np +import matplotlib.pyplot as plt + + + +# Определяем функции для уравнений +def func_a(x, y): + return x + np.cos(y) + +def func_b(x, y): + return x**2 + y**2 + +# Реализация метода Рунге-Кутты 2-го порядка +def runge_kutta_2(f, x0, y0, h, N): + x = x0 + np.arange(N+1) * h + y = np.zeros(N+1) + y[0] = y0 + for k in range(N): + k1 = f(x[k], y[k]) + k2 = f(x[k] + h, y[k] + h * k1) + y[k+1] = y[k] + h * (k1 + k2) / 2 + return x, y + +# Реализация метода Рунге-Кутты 4-го порядка +def runge_kutta_4(f, x0, y0, h, N): + x = x0 + np.arange(N+1) * h + y = np.zeros(N+1) + y[0] = y0 + for k in range(N): + k1 = f(x[k], y[k]) + k2 = f(x[k] + h/2, y[k] + h * k1 / 2) + k3 = f(x[k] + h/2, y[k] + h * k2 / 2) + k4 = f(x[k] + h, y[k] + h * k3) + y[k+1] = y[k] + h * (k1 + 2*k2 + 2*k3 + k4) / 6 + return x, y + +# Начальные условия и параметры +equations = { + 'a': {'func': func_a, 'x0': 1.0, 'y0': 30.0, 'x_end': 2.0}, + 'b': {'func': func_b, 'x0': 2.0, 'y0': 1.0, 'x_end': 1.0} # Обратное интегрирование +} + +methods = { + 'RK2': runge_kutta_2, + 'RK4': runge_kutta_4 +} + +h_values = [0.1, 0.05, 0.01, 0.005, 0.001] +N_values = [10, 20, 100, 200, 1000] + +for eq_label, eq_params in equations.items(): + print(f"\nРешение для уравнения {eq_label}:") + + x0 = eq_params['x0'] + y0 = eq_params['y0'] + x_end = eq_params['x_end'] + if x_end < x0: + direction = -1 + else: + direction = 1 + + for method_label, method_func in methods.items(): + print(f"\nМетод {method_label}:") + + ys = {} + xs = {} + abs_errors = [] + max_abs_errors = [] + + for h, N in zip(h_values, N_values): + h = direction * h # Учёт направления интегрирования + x, y = method_func(eq_params['func'], x0, y0, h, N) + xs[N] = x + ys[N] = y + + for i in range(1, len(N_values)): + N_prev = N_values[i-1] + N_curr = N_values[i] + + # Поиск общих индексов для сравнения + factor = N_curr // N_prev + indices = [int(k * factor) for k in [1, N_prev]] + + # Вычисление относительных ошибок + rel_errors = np.abs(ys[N_curr][indices] - ys[N_prev][[1, N_prev]]) + print(f"N_{N_curr}: {' '.join(map(str, rel_errors))}") + + # Вычисление максимальных абсолютных ошибок + max_error = np.max(rel_errors) + max_abs_errors.append(max_error) + + # Построение графика логарифма абсолютных ошибок + plt.plot(np.log2(N_values[1:]), np.log2(max_abs_errors), label=f"{method_label} для уравнения {eq_label}") + +plt.xlabel("log2(N)") +plt.ylabel("log2(max абсолютная ошибка)") +plt.legend() +plt.title("График логарифма абсолютных ошибок") +plt.show()