{ "metadata": { "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.9.2" }, "orig_nbformat": 2, "kernelspec": { "name": "python392jvsc74a57bd0be3a6be14975f865340184f994f156f34e69121a76ba7e4bc9a17cfb93fc79ca", "display_name": "Python 3.9.2 64-bit ('python-3.9.2.amd64')" } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "source": [ "## Robust optimization - example with szenario analysis\n", "In the standard case, the optimization takes all information (such as prices) for granted and finds the optimum that maximizes the DCF. In reality, particularly prices are uncertain. One way to take into account uncertainty is to minimize risk and maximize the minimum portfolio performance.\n", "\n", "In this sample we demonstrate robust optimization for a simple portfolio with a storage as the main asset -- where we have a small set of different szenarios. Those szenarios do not necessarily come from a distribution, they would more likely reflect distinct szenarios of a future development (e.g. a regulation is put in place vs. is not put in place).\n", "\n", "Note: This optimization approach assumes the asset cannot be re-optimized e.g. once new information during the time frame optimized is available." ], "cell_type": "markdown", "metadata": {} }, { "source": [ "## Some prerequisites" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import datetime as dt\n", "import os, sys\n", "from IPython.display import display, HTML\n", "# in case eao is not installed, set path\n", "myDir = os.getcwd()\n", "sys.path.append(os.path.join(myDir, '../..'))\n", "addDir = os.path.join(os.getcwd(), '../../../..')\n", "sys.path.append(addDir)\n", "import eaopack as eao" ] }, { "source": [ "### Load data from JSON\n", "For simplicity we use a predefined (simple) portfolio. Note that eao provides a simple (de-)serialization from and to JSON files. This allows you to define and store simgle assets or portfolios" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-05-27T21:57:26.271291\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.4, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAD3CAYAAAC+eIeLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAeKklEQVR4nO3deXhdVdn+8e/TNp1DCunAVKBlkMoMZRBRIso8lYIgAaUUKqU44qsggotHkEFRiiAgKMMrtCCDCCJQFSj21zKqFFqKTGWmAx0pHdJk/f5Yu7xpTdLp5OxzkvtzXbma5OyzcyeFuyv77P1sizEiIiLF0SHvACIi7YlKV0SkiFS6IiJFpNIVESkila6ISBGpdEVEikilW8bM7CQzG9dK+77FzC5ujX0Xg5k9bman552jKZbcbGZzzezpNdg+mtk22fvXm9kFrZ9SWotKt8SZ2X5mNtHM5pvZHDP7f2a2J0CM8fYY40F5Z5TmmVmNmb2zyqf3Aw4ENo8x7rU2+4sxjowxXlSwgFJ0nfIOIM0zsw2APwNnAn8AOgOfA5bmmUvWjJk19//XlsD0GOOiYuaR0qCVbmnbDiDGODbGWB9jXBxjHBdjnAxgZsPMbMKKjbNfQ0eZ2StmttDMLjKzrc1skpktMLM/mFnnbNsaM3vHzM4zs9lmNt3MTmouiJkdYWb/NrN52cp752a2MzO70sxmZqvzyWa2Y/bY4Wb2ryzL22Z2YaPnbZXlPzV7bK6ZjTSzPbN9zDOzaxptPyxb9V+dfZ1pZvbFFvIPN7OXsv0+YmZbNrPdihxfN7P3zOx9M/teo8e7mNno7LH3sve7rPIzPcfMPgDGAg8Bm5rZR9nbj4DfAp/JPvbsuSPM7NXst5n7zWzTZvKtdNhnTZ8nJSTGqLcSfQM2AD4EbgUOBTZc5fFhwIRGH0fg/ux5O5BWxH8HBgJVwFTglGzbGmA58EugC7A/sAj4VPb4LcDF2fu7AzOBvYGOwCnAdKBLE5kPBp4DegEGDAI2afQ1dyL9Y78zMAMYkj22VZb/eqArcBCwBLgP6AtslmXYv9H3vhz4LlABnADMBzbKHn8cOD17fwjwapalE3A+MLGZn/mKHGOBHlneWcCXssd/AjyZZeoDTAQuWuVnenn2M+2Wfe6d1fy9HQDMzn7OXYCrgSdW+Xvdpom/lxafp7fSfNNKt4TFGBeQjv9F4EZgVraa6dfC0y6PMS6IMU4BXgTGxRhfjzHOJ626dltl+wtijEtjjOOBB4Hjm9jnCOA3McanYlpx30oq9H2a2LYOqAS2ByzG+FKM8f3s+3k8xvhCjLEhptX6WFLZN3ZRjHFJjHEc6R+BsTHGmTHGd4F/rJJ/JjA6xlgXY7wTeBk4vIlMZwCXZlmWA5cAuza32s14jHFRjPEF4GbgxOzzJwE/yTLNAhz4aqPnNQAh+5kubmH/jZ0E3BRj/GeMcSnwQ9JKeKtWep7kSKVb4rKiGBZj3BzYEdgUGN3CU2Y0en9xEx/3bPTx3LjyccU3s/2vakvge9mv+PPMbB7Qv6ltY4yPAtcAvwZmmNkN2bFpzGxvM3vMzGaZ2XxgJNB7PfK/G2NsPLGppfxXNco+h7QK36yJbVd4u5n9bpp93NzXnBVjXNLCfpuy0j5jjB+RfsNpKd/6PE9ypNItIzHGaaRfL3cs0C43NLMejT7eAnivie3eBn4aY+zV6K17jHFsMzl/FWPcg3SIYzvg+9lDY0iHP/rHGKtIhxJsPfJvZmaNn99S/jNWyd8txjixhX33b2a/75FKvLmvuerYvjUZ47fSPrO/k2rg3VZ6nuRIpVvCzGx7M/uemW2efdyf9GvukwX8Mm5mnc3sc8ARwF1NbHMjMDJbqZqZ9cheFKtsIvOe2XYVpMMDS4D67OFKYE6McYmZ7QXUrmf2vsC3zKzCzL5MOmb7lya2ux74oZntkGWsyrZvyQVm1j17zqnAndnnxwLnm1kfM+sN/Bi4rYX9zACqzayqhW3GAKea2a7Zi3KXAE/FGKevJuO6Pk9ypFPGSttC0otXZ5tZL2Ae6RSy77fwnLXxATCXtGL6GBiZraZXEmN81sxGkA4bbEv6NX8C8EQT+9wAuJL04t0S4BHgiuyxUcAvsrMQxpNOg+u1HvmfyvLMJpXbcTHGD5vI/0cz6wnckR3HnQ/8lab/gVlhPOnFtw7AFdkxZoCLs+9xcvbxXdnnmhRjnGZmY4HXzawj8Okmtvm7pQse7gE2JL0495UWsq3X8yRftvIhMWkvzKwGuC07Vlx2zGwY6eyE/Qq8362AN4CK7EU3kYLS4QURkSJS6YqIFJEOL4iIFJFWuiIiRaTSFREpIpWuiEgRqXRFRIpIpSsiUkQqXRGRIlLpiogUkUpXRKSIVLoiIkWk0hURKSKVrohIEal0RUSKqGSGmLv7JsDmpDu7fgS8FEKoyzeViEhh5TplzN2NdEfZWtIdElbc1sXI7gQL3BdCmJ1PQhGRwsqtdN29gnTL6KNIt/Oey8o38esKVJFWvd8KIbxY9JAiIgWWS+lmK9wLSIX7AS3fMXUD0sr3tBDCK0WIJyLSavJ6IW0v4EhWX7gAC4COQMjKWkSkbLV66ZpZLzMbusqnTwTqWH3hrjAH2C57ExEpW8VY6fYCPildd+8L7Esq0pU0NDS0tJ8IHFvgbCIiRdUqx3TNbF/gStIZCNuTDg+8BHy5X79+55vZqWa2bOjQof/u06fP4quuuurz1dXVC3v37r2wZ8+eS1988cXN6+rqOtXU1EzbaaedZr3yyiu9Hn744V0rKytnT58+fW6McXcz6wP8DqgEXooxjir4NyIiUmCttdI9DDgnxngA8FngrzHGGqDjggUL9ho5cuSUmpqalx999NFtABYtWtTtuOOOm3zIIYe8Onjw4PdGjhw5afjw4ZMmTZo0EOCJJ57Yrra29vkTTjjhWWCL7GucC1waY/wCsNDMPtNK34uISMG01sUR1wLnm9lpwNWNPr9VRUXFVGDHAQMGzBk/fvx2AFVVVR917dq1HmDKlCl9nnnmmQExRluyZElngGXLlnWqrq6OwExgxRkMg4DLzCwCPYGnW+l7EREpmNYq3bkxxlFmtilwO+ksBYDpCxYs6A/MnT59et+qqqpFAFlxAjBp0qRtRowYMbGurq7DjTfeuB9A586dl8+dO7enmf0VOD7b9GXgthjjc9k+SubqOhGR5rRWUZ2RnbHQE7gcGG5mdwNfBx674oorTt1ggw02HjJkyH+tTgcMGDDjhhtu+Gy/fv3mdunSpQ5g//33f+P222/fYc6cOScDb2ebXgLcYGZVQAMwAnijlb4fEZGCyOviiA2BO0lXnc1fzeZWX1+/SceOHa9euHBh1ejRo09avnz5Xq2fUkSk8PK8DPhTwG+ALkBzsxU6A9XPPffc5AceeGDrysrK7Q477LCNBw0a9BEwBXgd+A9wQwjhvaIEFxFZD7mNdgwhvAwMI5Vnv+ytknRIYsPs467A1XvsscdpMcb9FyxYsMmgQYMez7bZm3SRxY+BvkX/BkRE1kGuLz6FEKYDp7v7QGAI6YyELqThN38BxocQlqzytKHAm6SCBngNeKEYeUVE1leuox3XlbufAfyKdPFFBWkk5AkhhEdyDSYishrleueI3wLjSaveDYG/AQ+5+0Pu3iXXZCIiLSjLlW5T3H0/4E+k48DDQwh35hxJROS/tJnShU/m9N4IDAcmAoeHEFZ3SpqISNG0qdJdwd13Bh4CegPfDCHckHMkERGgjZYufLLq/RlwNunshoNDCDPyTSUi7V2bLd0VstPRHgG2Ai4IIVyWbyIRac/afOmu4O4/BC4izWc4OITwes6RRKQdKtdTxtZaCOFSYHPgY+AVd/95zpFEpB1qNyvdxtz9TGA0MAs4NISgK9pEpCjaZekCuHsV6VLjzwA3ASNCCO3zhyEiRdNuS3cFdz8BuJl02GFICGFCzpFEpA1r96UL4O7dgHuBg4F7gK+EEOrzTSUibZFKtxF3P4Q0XN2AE0MID+YcSUTaGJXuKty9IzAG+DLwV9Ihh8X5phKRtkKl2wx335c0QKcHcHoIYUzOkUSkDVDptiC7lPg60g01nwIOCyHMzTeViJQzle4acPcdgIdJtxD6bgjh1zlHEpEypdJdC+5+OfA/wFTgoBDC+zlHEpEy024uAy6EEMI5wNakuxS/7e4X5BxJRMqMVrrryN1/APwUeIs0QOfVnCOJSBlQ6a4Hd+9LOta7C2mWw//oUmIRaYlKtwDcfQRwDfAh6RZB/8o5koiUKJVugbh7JfAgsB9wK+nmmPrhishKVLoF5u7HkUp3CTA0hDA+50giUkJUuq3A3buQBugcSrqq7fgQQl2+qUSkFKh0W5G7HwjcBXQEakMID+QcSURyptJtZdkAnf8FTgQeBY4OISzKN5WI5EWlWyTuvhfwZ6ASGBlCuDXnSCKSA5VuEWUDdK4BRgLPkgbofJhvKhEpJpVuDtz908BDwCakCyp+lXMkESkSlW6O3P1i4FzgZdKlxO/kHElEWpkG3uQohHA+MJD09zDd3S/MN5GItDatdEuEu58NXA68AxwaQpiWcyQRaQUq3RLi7r1JA3R2I73g9h1dSizStqh0S5C7DweuBeaRBug8l28iESkUlW6JcveepPN6Pw/cDpwSQmjIN5WIrC+Vbolz96GkK9rqgGNDCI/mHElE1oNKtwy4ewVwN3AkafV7rAboiJQnlW4ZcfcDgHuACuDkEMJ9+SYSkbWl0i0z7t4BuAU4GXiC9EKbBuiIlAmVbply98GkQw29SAN0bsk1kIisEZVuGcsG6FwFnAX8CzgkhDA731Qi0hKVbhvg7p8iXVSxOXBOCOGXOUcSkWaodNuQbHbD+cCrpAE6b+abSERWpYE3bUgI4UJgK6AeeC2bYiYiJUQr3TbK3b8N/Bx4nzRAZ2rOkUQElW6b5u7VpGHpewDXA9/QAB2RfKl02wF3/xrwG2ABcGQI4emcI4m0WyrddsLdewB/Ag4AxgJfCyHU55tKpP1R6bYz7n4UaWpZPXBcCOFvOUcSaVdUuu1QNkDnTmAI6Zjv0BDC0lxDibQTKt12zN33B+4FugLDQgh35RxJpM1T6bZz2aXENwGnABNIA3QW5ptKpO1S6QoA7r4b8BdgI9KpZTfmHEmkTVLpyieyVe8vgG8Dk0mXEs/MN5VI26LSlf/i7tsAjwBbAD8KIfws50gibYZKV5rl7hcAAXiNtOqdnm8ikfKngTfSrBDCRaTV7lLSAJ3Lco4kUva00pU14u7fAH4JzCANS5+ScySRsqTSlTXm7huSznDYC/gt6TZB+g9IZC2odGWtuftJpNL9CDgqhDAp50giZUOlK+vE3buRBuh8CbgLqNUAHZHVU+nKenH3w0lTyyJwQgjh4ZwjiZQ0la6sN3fvRCreY0nn9w4NISzON5VIaVLpSsG4+37AfUB3YHgI4Y58E4mUHpWuFFR2KfGNwHBgImmAzvx8U4mUDpWutAp335k0q7c38O0QwvU5RxIpCSpdaVXu/nPgbOAF0qXEM3KOJJIrXQYsrSqE8H1gW6AH8K67n5dzJJFcaaUrRePuPwQuAqYDB4UQXl/jJ4+xTsCngW2AQUA3YDEwDXgFmEptXF7gyCIFp9KVonL3jUmnle0I/DJbCTdvjFUCQ4GTgUqgI+mmmvXZ+ys+/oh0w827qY2684WULJWu5MLdzwRGA7OBw0IIz7v7gUBlCOFeAMbY3sBPSHezmAcsaWGXXYFewFwgUBt1abKUJJWu5Mbdq0gDdD5DWqUeRVq5DgjbXvgl4HvAQtIqdk31JK2IR1MbbytsYpH1p9KV3Ln7CaTS7QjU7Vn11ITD+j5UBcwC6tZhlxVAH+Cn1MZ7C5dUZP3p7AUpBQtJsxuo6jS3YufKyTUfL+9ax7oVLtnzZgM/YIxtVZiIIoWh0pVSsCEwDeKH+280Pkawd5b233NJfZce67HPZaQiD4wxK0xMkfWnwwtSOsbYoBi5tS52mj+3bqMtjFjft8us19Zzr/2AU6mNutOFlAStdCU3ZlZjZhc3+tQxZsTOHZYv6ddl5n9WV7j3PE315LfoDnDbBPrc+gR9m9gskqafiZSETnkHEGnks8CCNd34by9SvbyeOTtvwccn78esZjabD+xTkHQiBaDSldyZ2TkdOzBk8AB2uPkMnh60GVx4D1v+4Sn6d+1E/W9OZ/LL79H9igfZdvEyOo44gDfOOpB3//gM/ce9wMZ//hezd+rPguUNdDjvaN76ytXs8NJ7VPXswvL7zuafH37Epjt1svHL65kFDACOjjG+k/f3Le2TDi9I3jYGDlj+e44Px/LWBXexzZuz6Xz/P9n0+UuZ8M9LmLT7Viw6cnfm/PtSJr5wORNu/QdbdOtMPGZP3r7keKb+fhRTV+xs3AtULV5Gp+cvZeKxe/HupfezJdDQwagGjifd0ViHGyQ3Kl3J21bAZIDPb8+iN2fT46V36b7j5syv6Jg26NgBHp9K1eDz2WevC/jM9JlUNrezae/RY5ctmQ+w36eY//pMegB068yrMcYG4F3SlWsiuVDpSt6mA7sA8/4xjcoterNoh835eMo7bFDfkDaob4CfPcjWt4zk+Sd/wqQeXVgOUNGJhuUNrHQ62Kc24eN/T6cKYMLLVA3ow8cGHZfWsbTRZjqFTHKjY7qStw+A1+wkHtl1S/qNOYsp/atZdsTuvL/Tuey34pjukbvxwdG/YM/tN2VBZbd00cSBO/LhBXcxaOIr9NqymsUAB+/MvN89zuY7n8u+Pbqw/E/fY8qsBXRcUrfOF1qIFJTO05XSMcZ+DBwOzCzgXvsCD1EbLyzgPkXWmQ4vSCm5lwL86j97We8Bs5b1Hri8oUNFjHTI9itSErTSldKRLte9hXSniQ/XdTeL67v2fHtJ/8937bC4w7y6DRv+OGPoB2DvAleGEMYWKK3IOtFKV0pHbYyAk/677Lyuu+nWcclHm3V595kORB6fU9MBbFNgN9I8BpFcqXSltNTG14ErgWrW/YXeTj06fVwx5aMdJsytq17xApqx7lPLRApGhxek9KTDDMOAs0iXBS9ai2f3ADYArrvk1fMeqIudXyfNXxgHHAM8BhwVQlibfYoUjFa6UnpqY6Q23ky6dTukq9ZWd7ihc7YdwNnUxt+d9+OfzgROB74aQjgW2Jt0b7bZ7n5KKyQXWS2tdKW0jbFewInACaT7oHUkHSao5/+O/dYDS4E7gbHUxrnN7c7dDbgaOBN4Djg0hLDOL9qJrC2VrpSHMdaZdOXaNsAOpFuwLwGmkG7BPpnauLT5HazM3bcn3ZV4E+AHIYTRhY4s0hSVrrRr7n4xcC7wMnBICOHtnCNJG6djutKuhRDOJ4177AC84e4X5ptI2jqtdEUy7n42cDlpEtkhIYRpOUeSNkilK9KIu1cDDwO7A9cC3woh6H8SKRiVrkgT3P1U4DpgHnBECOHZfBNJW6HSFWmGu/cAHgBqgNuBYSGE+lxDSdlT6YqshrsPAW4jnR98bAjh0XwTSTlT6YqsAXevAO4GjgT+DBwXQtAAHVlrKl2RteDuXwDuIV0J97UQgmb1ylpR6YqspexS4luBk4EngCNDCAvzTSXlQqUrso7cfQ/gQdLdhUeFEG7KN5GUA5WuyHrIVr1XAt8E/k26qGJWrqGkpKl0RQrA3bcjXVTRHzgnhPDLnCNJiVLpihRQNrvhfOBV4OAQwpv5JpJSo4E3IgUUQrgQ2BJYDrzm7j/NN5GUGq10RVqJu38LuAJ4nzQsfWrOkaQEqHRFWlE2QOcvwGDgN8BZGqDTvql0RYrA3b8K3AAsJA3QeTrnSJITla5IkWQDdO4DvgjcQbphpgbotDMqXZEic/cjgTGkG2oeH0IYl3MkKSKVrkgOsgE6dwDHAA8BQ0MIa3xjTSlfKl2RHLn7/sC9pNvLDwsh3JVzJGllKl2RnGWXEv8OGAZMAA7XAJ22S6UrUiLcfTfSAJ1q4BshhBtzjiStQKUrUkKyVe8VwHeAyaQBOjNyDSUFpdIVKUHuvg1pgM6WwPkhhMtzjiQFotIVKWHufgEQgNeBg0II0/NNJOtLA29ESlgI4SLSuMglpAE6l+UcSdaTVroiZcLdzyINTJ8BHBZCeCHnSLIOVLoiZcTdNySd4bA36TSzMzRAp7yodEXKkLvXAr8FFgFHhxAm5hxJ1pBKV6RMuXs30gCdA4G7gRM1QKf0qXRFypy7HwrcCUTghBDCwzlHkhaodEXaAHfvSBqgcywwDjgmhLA431TSFJWuSBvi7vuRDjl0B4aHEO7IN5GsSqUr0sZklxLfAJwGTCKdXjY/31SygkpXpI1y951Is3r7AN8JIVyXcyRBpSvS5rn7z4GzgSnAwSGE93OO1K7pMmCRNi6E8H1gW6Ab8La7n5dzpHZNK12RdsTdzwUuBqaTBui8nm+i9kcrXZF2JIRwGbAZ8BHwirtfkXOkdkcrXZF2yt1HAlcBs0lnODyfc6R2QaUr0o65exXwZ+CzwM3A6Rqg07pUuiKCu59AKt3FwJAQwj9yjtRmqXRFBAB37wL8ETiEdFv4E0MIdfmmantUuiKyEnc/hDRAx0jF+2DOkdoUla6I/JdsgM7twPHA30gzezVApwBUuiLSLHffB3gA6El6ke32nCOVPZWuiLQoG6BzHTACeAY4NIQwN99U5UulKyJrxN13IA3Q2Rg4O4RwTc6RypJKV0TWirtfCvwAeIk0QOfdnCOVFV0GLCJrJYTwQ2BroBPwprv/OOdIZUUrXRFZZ+7+feAS4G3gkBDCf3KOVPJUuiKyXty9D/AIsAvwK9LxXhVLM1S6IlIQ7n4a8GtgLmmAzr9yjlSSVLoiUjDuXkkaoPM54H+BU7XqXZlKV0QKzt2PJZXuUtLt4MfnHKlkqHRFpFVkA3TuBg4H7ge+rAE6Kl0RaWXu/kXgHqAjcFII4f6cI+VKpSsirS4boHMrUAs8BhwVQliUb6p8qHRFpGjcfTDwILABMDKEcGvOkYpOpSsiRZUN0LkaOBN4jjRA58N8UxWPSldEcuHu25MuqtgE+EEIYXS+iYpDpSsiuXL3i4Fzgf+QBui8nXOkVqWBNyKSqxDC+cCA7MM33N3zzNPatNIVkZLh7t8FLgfeIw3QmZZzpIJT6YpISXH3auBhYHfgWuBbbelSYpWuiJQkdx8GXA/MA44IITyba6ACUemKSMly9x6kG2PWkO5OPAyoBEYDo0IIH+eVbV2pdEWk5Ln7EOA2oI50bu8XgMtCCD/KM9e6UOmKSFlw9wrSJcSfzT61GPh0CGF6E9v2B74IbAo0AG8BfwshzCxO2uZ1yjuAiMga6gRs2+jjbsC9pBfcAHD3QcA3gcGkU2KXZw91BL7t7v8ArmmqqItFK10RKQvuvgFwHbA9aQXbDzDgd8AIYF/gCiACc7I/G+sA9AaWAN8IIbxQnOQrU+mKSFnKZjh8GhgF3Eya5/Bx9taSyuzPk/K4fbyuSBORshRCiCGEKSGEs4BTsk83W7jXXnvtvtm7C4HujZ7zCTPb1cx2X/XzhaTSFZGy5u6bAfsAzU4qa2hoWPVTHwJHZPd0a2xXGh0jbg16IU1EyoKZ1QDfIR3HrSYd3x3eq1evjU455ZQOd9555z4NDQ3Wu3fvhccff/wLU6dOrX7yyScHxhgZPHjw9BX7eeSRR7Y2s1hTU/Pxtddee/+FF14YgVnAycDXgWoz+0KM8aTW+D600hWRcmIxxqOBvwB7xRi/WFlZuXTevHkdR4wY8eSoUaMmLlu2rNP777/fA6C+vr7Daaed9swuu+wyC2DcuHFbAxx00EGvP/nkk/0GDhz4QozxAOBx4DjgBuDnrVW4oJWuiJSXF7M/3yOtTunevfv82bNn937sscf2WLZsWcXChQu7z5s3rwtA37595694Yl1dXcW0adM2PfPMMycAzJ49u+urr756qJk9DnQFxgLzaWVa6YpIOYmrvr9kyZL5CxYs6LLddtt9MHLkyEkbb7zxnBijAZjZJ9tXVFTU1dTUTLvjjjt2bWhoYKONNlo8cODA38cYa2KM+5CG69SRzultNSpdESlrM2fOnA7EZ599duubbrppcF1dXbOlufPOO8/adtttZ95777277Lvvvm9NnTp1ezP7u5k9SnoB7UngZDO7urXy6jxdESl77n4J8CVgxho+ZRPglhDCNa2Xqmla6YpIW3AdsAioWoNtq4EPgDGtmqgZKl0RKXvZfdVGkWYtbAxUNLFZZ9IKdw5wZghhTvES/h8dXhCRNsPdNwFOAo4hnZ214vhuPWnmwp3AHXkVLqh0RaQNyoaf7wNsRDrLYSbwVAhhaa7BUOmKiBSVjumKiBSRSldEpIhUuiIiRaTSFREpIpWuiEgRqXRFRIpIpSsiUkQqXRGRIlLpiogUkUpXRKSIVLoiIkWk0hURKSKVrohIEal0RUSKSKUrIlJEKl0RkSJS6YqIFNH/By1Ns+SYfmH/AAAAAElFTkSuQmCC\n" }, "metadata": {} } ], "source": [ "# define file names for this sample\n", "## input data\n", "sample_file = os.path.join(myDir, 'portfolio_robust_optimization.json')\n", "timegrid_file = os.path.join(myDir, 'timegrid.json')\n", "\n", "portf = eao.serialization.load_from_json(file_name= sample_file)\n", "timegrid = eao.serialization.load_from_json(file_name=timegrid_file)\n", "eao.network_graphs.create_graph(portf = portf,title = 'Simple sample portfolio')" ] }, { "source": [ "## Define price samples\n", "Each contract comes with its own price. In this example we keep two price series fixed (for fix price sales contracts) and sample the floating price (sourcing). Note that the storage is the main element that requires robust optimization. In a deterministic case, it is steered hard to a specific price vector. In the robust case it takes into account prices are uncertain." ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "price_samples = []\n", "# szenario 1\n", "ts = 5+4*np.sin(np.linspace(0.,15., timegrid.T)) \n", "price_samples.append({'price': ts})\n", "# szenario 2\n", "ts = 5+5*np.sin(3.+np.linspace(0.,15., timegrid.T)) \n", "price_samples.append({'price': ts})\n", "# szenario 3\n", "ts = 5+3*np.sin(1+np.linspace(0.,12., timegrid.T)) \n", "price_samples.append({'price': ts})\n", "# mean price - to provide an alternative optimization target\n", "mean_prices = {}\n", "for myp in price_samples[0]:\n", " ts = 0.\n", " for i, ps in enumerate(price_samples):\n", " ts += ps[myp]\n", " ts /= len(price_samples)\n", " mean_prices[myp] = ts" ] }, { "source": [ "## Running the optimization\n", "### (1) deterministic optimization on the mean price" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "op_mean = portf.setup_optim_problem(mean_prices, timegrid)\n", "res_mean = op_mean.optimize()" ] }, { "source": [ "### (2) robust optimization on the whole set of prices\n", "In the implementation we re-use the optimization problem with all its restrictions and add the samples. For this purpose, the price samples need to be translated to specific cost arrays for each asset in the portfolio." ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "cost_samples = portf.create_cost_samples(price_samples = price_samples, timegrid = timegrid)\n", "res_robust = op_mean.optimize(target = 'robust', samples = cost_samples)" ] }, { "source": [ "## Analysis" ], "cell_type": "markdown", "metadata": {} }, { "source": [ "### Portfolio value\n", "Looking at the plain portfolio value, it is not surprising, that the robust optimization achieves less value on the mean price, than the optimization that is optimized directly on the mean" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Portfolio value against mean prices:\n... optimized against mean: 359.2\n... robust optimization : 118.3\n" ] } ], "source": [ "print('Portfolio value against mean prices:')\n", "print('... optimized against mean: ' + '{:10.1f}'.format(res_mean.value))\n", "print('... robust optimization : ' + '{:10.1f}'.format(res_robust.value))" ] }, { "source": [ "Now let us look at the performance of the optimized portfolios against price samples." ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Minimum portfolio value on original samples:\n... optimized against mean: -2018.6\n... robust optimization : 118.3\n" ] } ], "source": [ "values_mean = np.empty(len(price_samples))\n", "values_robust = np.empty(len(price_samples))\n", "for i, myc in enumerate(cost_samples):\n", " values_mean[i] = -sum(res_mean.x*myc)\n", " values_robust[i] = -sum(res_robust.x*myc)\n", "print('Minimum portfolio value on original samples:')\n", "print('... optimized against mean: ' + '{:10.1f}'.format(values_mean.min()))\n", "print('... robust optimization : ' + '{:10.1f}'.format(values_robust.min())) \n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-05-27T21:57:28.286364\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.4, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "n_bins = 10\n", "fig, ax = plt.subplots(1,2, sharey = True, sharex = True, tight_layout = True)\n", "fig.suptitle('Results on training samples')\n", "ax[0].hist(values_mean, bins = n_bins)\n", "ax[1].hist(values_robust, bins = n_bins)\n", "ax[0].set_xlabel('portfolio value')\n", "ax[0].set_ylabel('sample frequency')\n", "ax[0].set_title('optimized against mean')\n", "ax[1].set_title('robust optimization')\n", "ax[0].axvline(x = values_mean.mean(), c = 'g', label = 'mean')\n", "ax[1].axvline(x = values_robust.mean(), c = 'g', label = 'mean')\n", "ax[0].axvline(x = values_mean.min(), c = 'r', label = 'min')\n", "ax[1].axvline(x = values_robust.min(), c = 'r', label = 'min')\n", "ax[1].legend()\n", "plt.show()\n" ] }, { "source": [ "### Detailed view\n", "Let us look at prices and the dispatch" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "out_mean = eao.io.extract_output(portf, op_mean, res_mean , mean_prices)\n", "out_robust = eao.io.extract_output(portf, op_mean, res_robust , mean_prices)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-05-27T21:57:29.674682\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.4, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEdCAYAAABZtfMGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAACztklEQVR4nOydd3gTR9rAfyNZlm3JvQAGY2N6792mVxMgpEF6T0hPLrlLLnfpyfX03nNphJAACS30YtN7LzY2YIONcbfkpjLfHysZ2ZZsyQXId/o9jx7Lu7Ozo92dfWfeeYuQUuLFixcvXrxcaagudwO8ePHixYsXZ3gFlBcvXrx4uSLxCigvXrx48XJF4hVQXrx48eLlisQroLx48eLFyxWJV0B58eLFi5crEq+A8vK7RwjxlRDiVdv3RCHE8cvdJjtCiDghhBRC+FyGc48RQmQ1Y303CyFWNVd9Xrw0hFdAeXELIcQGIUShEELbwud5UQjxbWOPl1ImSym7NmebaiOEuEMIkdKS57gSkVJ+J6WcdLnb4eV/B6+A8tIgQog4IBGQwIzL2xovl4PLMQP04sUroLy4w23ANuAr4HbHHUKIJCHEESFEqRDirBDiKdv2CCHEUiFEkRCiQAiRLIRQ2fZFCyF+FkJcEEJkCCEetW2fAjwLzBZCGIQQ+501RgjRXwixx3bO+YCfw74aai0hxNO2dpUKIY4LIcbbtr8ohPhJCDHftm+PEKKvw3HPCCFO2vYdEULMsm3vDnwEDLe1sci23V8I8boQ4rQQolgIkSKE8Hdo9s1CiDNCiDwhxF9cXWghxDQhxF4hRIkQIlMI8aLDPru68HZnddna8JVtpnsEGOzqPLbyUgjxqBAi3VbXvx3u0R1CiM1CiDeFEAXAi7VnjkKInkKI1bb7e14I8axtu8rh+uULIX4UQoTZ9vkJIb61bS8SQuwUQrSqr51e/oeRUno/3k+9HyANeBAYCJiAVg77soFE2/dQYIDt+99RXuQa2ycRECiDot3A84AvEA+kA5Ntx70IfFtPW3yB08ATtnqvs7XpVdv+MUCW7XtXIBOItv0fB3R0OI/JdrwGeArIADS2/dcD0bb2zgaMQBvbvjuAlFrteh/YALQF1MAIQGs7pwQ+BfyBvkAl0N3F7xsD9Ladtw9wHrjaof0u6wL+ASQDYUAMcMh+LVycSwLrbeXbAyeAexx+oxl4BPCxna/6dwOBtnv/JMoAIRAYatv3OMqApp3tGnwMzLPtux9YAgTYrtNAIOhyP+Pez5X5uewN8H6u7A+QYHuRR9j+PwY84bD/jO2lE1TruJeBX4BOtbYPBc7U2vZn4Evb9xepX0CNAs4BwmHbFpwLqE5ALjABm+BxOOZFYJvD/yochK2T8+4DZtq+V7+oHY4tB/o6Oc4uVNo5bNsBzHHz+r8FvOlOXSiCforDvvvcEFCO5R8E1jr8xtr3yVFA3QjsdVHvUWC8w/9tbM+QD3CX7X71udzPtvdz5X+8Kj4vDXE7sEpKmWf7/3tqqvmuBZKA00KIjUKI4bbt/0aZea2yqZCesW2PBaJt6p0im4rsWcBdNU80cFZK6Rjl+LSzglLKNJTR/ItArhDiByFEtEORTIeyViDLVj9CiNuEEPsc2tgLiHDRpgiUWcTJetqd4/C9DNA7KySEGCqEWG9TfxYDc52c11Vd0Y6/CRfXpRa1yzu9Pk6IwfXvjQUWOVy7o4AF5R5/A6wEfhBCnBNC/EsIoXGjnV7+B/EKKC8usa2h3ACMFkLkCCFyUFRrfe3rNVLKnVLKmUAUsBj40ba9VEr5pJQyHpgO/MG2/pMJZEgpQxw+gVLKJNtpGwqvnw20FUIIh23tXRWWUn4vpUxAeWlK4J8Ou2McfqsKRSV1TggRi6JGexgIl1KGoKjL7Oes3cY8oALo2EDb3eF74FcgRkoZjKImFfUfUk02Dr+Jeq6LA7XLn3P4v757kYnr35sJTK11j/2klGellCYp5UtSyh4oatCrUNY4vXipg1dAeamPq1FGvj2AfrZPd5R1jtuEEL5C8Y0JllKagBJbeYQQVwkhOtkEiX27BUUlVWIzXvAXQqiFEL2EEPYF/fNAnH2x3glbUdZGHhVC+AghrgGGOCsohOgqhBgnFNP4ChQ1nMWhyEAhxDVCsVB7HGU9ZxugQ3k5X7DVcyfKDMrOeaCdEMIXqmdfXwBvCMUARC2EGC4aZ5IfCBRIKSuEEEOAmzw49kfgz0KIUCFEO5T1o4b4o618DPAYMN/Ncy0FWgshHhdCaIUQgUKIobZ9HwGv2QQ9QohIIcRM2/exQojeQgg1ynNhouY98eKlGq+A8lIft6OsDZ2RUubYP8B7wM22MrcCp4QQJSjqqFts2zsDawADilD5QEq5QUppQZlR9UMxSsgDPgOCbcctsP3NF0Lsqd0gKWUVcA3KekghigHDQhft16IYDuShqMWiUNSJdn6xHV9o+x3X2Eb4R4DXbe0+j2K0sNnhuHXAYSBHCGFXfT4FHAR2AgUoM7XG9K8HgZeFEKUohiQ/enDsSyhqugxgFYo6rSF+QTFa2QcsAz5350RSylJgIsq9zAFSgbG23W+jzAJX2X7HNpS1R4DWwE8owukosBFotN+bl//fiJqqfC9e/jewmW93klLe0lDZ/68IISTQ2bZW58XLFYd3BuXFixcvXq5IvALKixcvXrxckXhVfF68ePHi5YrEO4Py4sWLFy9XJF4B5cWLFy9erki8AsqLFy9evFyReAWUFy9evHi5IvEKKC9evHjxckXiFVBevHjx4uWKxCugvHjx4sXLFYlXQHnx4sWLlysSr4Dy4sWLFy9XJF4B5cWLFy9erki8AsqLFy9evFyReAWUFy9evHi5IvEKKC9evHjxckXiFVBevHjx4uWKxCugvHjx4sXLFYlXQDUBIUSiEOJ4I49tL4QwCCHUzdymU0KICc1Zp5vnNQgh4i/1eb38/rhcz2hz05RnXghxWAgxpnlb9P+vH3oFlAcIIaQQopP9fyllspSya2PqklKekVLqpZSW5mvh5cP2W9KbUocQ4ishxKvN1SYv/zsIIcYIIbJasP4NQoh7HLc15ZmXUvaUUm64ktp0JeIVUF68eGk2hBA+l7sNXv4fIaX8n/oA3YENQBFwGJjhsO8r4CNgNVAKbARibfs2ARIwAgZgNjAGyHI4/hTwR+CArdznQCtgha2+NUCorWycrT4fYLitTvunAjhlK6cCngFOAvnAj0CYwzlvBU7b9v3F1oYJLn77NGAvUAJkAi/W2n+bQ13POdYFDAG22q5bNvAe4OtwrAQ6OVzH94Fltt+9Heho2yeAN4FcoNh2rXoB9wEmoMp2DZa4+A0SeBBItdX9CtDR1rYS2/VxbNdVwD5bu7cAfRz22a9rKXAEmOWw7w4gBfgPUAhkAFMv9/N7JX5sz8nTtntZaXumZ6D0ryKU/ta9Vvk/2655IfAl4Od43Z3cc/uzlWQ7rhQ4CzwF6IBywMrFPhTtpJ3BwNfABdtz/ldA5XDezcC7tufyGDDetu81wILSLw3Aey6e+Q9Q+rrBVldr4C3bbzwG9K91Dex9q8ih3UZbvXFAKLDU1t5C2/d2HrSpod97xT/fl70Bl7gjaYA04FnAFxhne9C7OjxkpcAoQAu87dhZHG++7f8x1BVQ21CEUluUl/AeoL+tvnXAC7aycbb6fJy0cQPwd9v/j9vqbGer42Ngnm1fD9vDaW/vG4AZ1wJqDNAbRej1Ac4DV9eqK8F2bf6DIjDsnWggMAzl5RMHHAUed3ZtbNexAEWo+QDfAT/Y9k0GdgMhKMKqO9DG4bhXG7iHEvgVCAJ6orwQ1wLxKB3yCHC7rewA2z0YCqiB2233SGvbfz0Qbbses1FeDva23GH7/ffajn0AOAeIy/0cX2kf2zXdB8QA/kAX27WcaHue/4TS73wdyh+ylQ9DeZm/6nDd6xNQ2UCi7XsoMMBZX3TRzq+BX4BA2zN8Arjb4bxm4Albm2ejCKow2/4NwD31tOsrIA+ln/ih9PUMlEGfGngVWF/rmtXpp8DfUAbDGiAcuBYIsLV5AbDYoWxDbWro917xz/dlb8Al/bGQCORgG0XYts3DNpOwPWQ/OOzTo4xSYmrffOmkU9geupsd/v8Z+NDh/0fsDxiuBdSHKDMP+0jnKLaRnO3/NrYHywd4vlZ7dSgzEKcCysn1eAt40/b9eWyCz/Z/QH11oQjORQ7/1+6snznsSwKO2b6Ps3WUYY73weE4dwTUSIf/dwNPO/z/OvCWw7V8pdbxx4HRLureB8y0fb8DSKt1PSTQ+nI/x1fax/bc3+Xw/3PAjw7/q1BmO2Mcys+t9XycdLju9QmoM8D9QFCtMjX6opM2qlEGMz0ctt0PbHA4b40XNLADuNX2fQMNC6hPHfY9Ahx1+L83UFTrmk2oVd9s2/ZIF7+hH1Do8L/LNrn5e6/45/t/bQ0qGsiUUlodtp1Gme3YybR/kVIaUGYC0R6c47zD93In/+tdHSiEuB+lo93k0MZYYJEQokgIUYQisCwos7ToWu01oqjnXNU/VAixXghxQQhRDMwFImy7a9dV5liXEKKLEGKpECJHCFGCMtKLwDU5Dt/L7L9bSrkORT34PnBeCPGJECKonnqc4e41jgWetF872/WLwXY/hRC3CSH2OezrVes3Vf8G2/WAeu7f/ziZDt+jUfoVALZnORMX/cxW1t0+di2KQDsthNgohBju5nERKJqB0w7bavf9s9L2tm5Eu6Bpfb8/Sr+YJaW8YNsWIIT4WAhx2tbnNgEhblr+uvN7r/jn+39NQJ0DYoQQjr+7Pcrozk6M/YsQQo+igjjX0g0TQiSirKfMlFIWO+zKRNENhzh8/KSUZ1HUHY7tDUBRC7jiexT1WIyUMhhlvU3Y9mWjqBHtdfnXqutDFD16ZyllEIqaVNAIpJTvSCkHoqjouqCs24EygmtOMoHXal27ACnlPCFELPAp8DAQLqUMQVE7Neo3ealx786hDA4AEEIIlOfUaT9D6YP2PmZEGc3bj21d4yRS7pRSzgSigMUoa461z++MPBTNQ6zDttp9v62trc7a1dzPZjVCiEhgEfCwlHKvw64nga7AUFufG2U/xI02ufN7r3j+1wTUdpQO8CchhMbmhzAd+MGhTJIQIkEI4YsiMLZLKe2jvfMoax3NihAiBpgP3CalPFFr90fAa7YXKkKISCHETNu+n4CrHNr7MvXf00CgQEpZIYQYAtzksO8nYLoQYoStrpeo+bIORDFCMAghuqHorBvzWwfbZnIalHtRgTIjhOa/vp8Cc23nE0IInRBimhAiEEUdKlEWkBFC3Ikyg/LSdH4Epgkhxtvu85Mo6qYtDmUeEkK0E0KEoQx25tu27wd6CiH6CSH8gBftBwghfIUQNwshgqWUJpTn0fHZCRdCBDtrkFTcOX5E6UuBtv70B+Bbh2JRwKO2d8P1KOujyx3qb4m+74OyFPCdlHJ+rd2BKDOvItt1eqHWfpdtcvP3XvH8TwkoKWUVinXRVJQRxgcoQuGYQ7HvUR6EApQFz5sd9r0I/NemErqhGZs2HsXi5yebo51BCHHYtu9tlFnPKiFEKYrBxFDb7zkMPGRrczaKNU59viAPAi/b6nmei6NPe12PoAjrbBRjkVyUFwso1lI32bZ/ysUXiqcE2Y4v5KLF4H9s+z4Hetiu7+JG1l+NlHIXyiLwe7bzpaHo3pFSHkFZr9qK0tF7oyzWe2kiUsrjwC0oFnF5KIPA6bb+Z+d7YBWQbvu8ajv2BMpAaw2KpWZKrepvBU7ZVF5zbefB1ofnAem258eZau4RlEFRuq3e74EvHPZvBzrb2vwacJ2U0q7mfhu4TghRKIR4x6MLUj/tUNbGH3fo+wYhRHuUNWJ/W3u2Ab/VOrahNjX0e694RE2V6/82QoivUBZa/3q523K5sak3i1BUehmXuTlevLQoQog7UAwOEi53W7xc5H9qBuWlfoQQ020LszqUWc1BFKsiL168eLnkeAWUF0dmoiwKn0NRdcyR3im2Fy9eLhNeFZ8XL168eLki8c6gvHjx4sXLFcnvMrBjRESEjIuLu9zN8OLFI3bv3l0CbJVSTmmJ+r39wsvvld27d+dJKSNrb/9dCqi4uDh27dp1uZvhxYtHCCFSW0o4gbdfePn9IoQ47Wy7V8XnxYsXL16uSLwCyosXL168XJF4BZQXL168eLki8QooL168ePFyRdIsAkoI8YUQIlcIcchhW5gQYrUQItX2N9TFsVOEEMeFEGlCiGeaoz1evHjx4uX3T3NZ8X2FEpDza4dtzwBrpZT/sAmeZ1DSQldjy2vyPkrmzSxgpxDiV1sgz/9JpMWCtbwclU5Hzcj/l4cKk4WyKkvDBd3AX6PG39edVDb1I6XEaixDFeCPUF0+JYCUksIy02U7//8SjbnnxWUmLM0QiCDQzweN+spXNhWVVWE2GBF+fvj6+hDop7ncTWoyzSKgpJSbhBBxtTbPREm+B/BflOyPT9cqMwQlq2M6gBDiB9tx/3MCylJUxIV336N4yRKsJSWoIyIIveF6wu+/H5VWe1naVGm2MOzvaylqppewzlfNtmfHN7rjWMvLyfv4Y4oW/IQlPx9VUBDBM2cS+cjDqIM8zXnYdN5cfYJ31qVd8vP+L2EtKyPvo48p+uknLAUFqIKDCbl6JhEPP4w6MNDlcd9vP8Oziw42SxuGxYfxw33u5kW89EiTia3/fA/Tzz8SVV5EmY+WlOg+JPzzeQb273S5m9ckWtIPqpWUMhtASpkthIhyUqYtNTNrZmFLJVEbIcR9wH0A7du3b+amXl4qMzLIvOdeTOfPE5Q0Fb8uXSjbu4+8Dz6kdMMG2n/6KT7h9eUhbBnKqywUlZmY2qs1w+Kbdv69ZwpZvO8cxeWmRgko84ULnLn3PiqPHSNw4gT8+/Wj4thxCr//HsP69bT/4nN8L/FzkVlYTkiAhicmdHGr/B3/bP42/H/uF6bcXDLvvofKtDQCJ0zAv19fKo4cpeDb7yhdv0G55+3aOT32TEEZapXg+at6NKkNC/dkcbaovEl1tCQWg4GsBx4kdOdOdkd1wTDlatTZWYzZsQH13Nso/+JT/Hv2vNzNbDSX21HXmQ7L6ZxcSvkJ8AnAoEGD/t8EEDTl5nLmjjuRJhNx33+Hf58+gJLKtnT9es4+8QfO3HMvcd99iyogoP7Kmhmr7SoPiw/n9hFxTapLp/Vh8b5zNEbjYjEYOXP3PVRlZRHzycfoR42q3hd6041kPfAgp++4gw4LFlxSQW6yWAkN8HX72tzRAm34/9ovLAYDZ+66C/O5bGI+/RR9wsjqfaE330TmAw9y5vY7iPtpAT6hdZe3q8xW/DXqJj+3B88Ws/VkfsMFLwOyqoqsBx6kbO9eTtz9FH/Nb83BFyaRU1zB3S/9yHsHvibzrruJW/DjJR+8NRctqVg9L4RoA2D7m+ukTBY1Uz+34xKkV79SkFYr5576I5aSEtp//lm1cLITOHYs7d55m8rjx8l57bVL3j6LTUKpmmEpzF6HvU5PyHnpJSrT0mj37js1hBNAQP/+xHz2GZaCQs798U9cyuDHZovEpzkujpc65Dz/AlUZp2j3wfs1hBNAwIABtP/sU8wXLnDuT087vedVFgu+Pk1/vfmoBGartcn1tAS5b71N2c6dRP/9b+QMGQOASgiEEJwJak3WX5U8oFmPPoY0/T7XSltSQP0K3G77fjvwi5MyO4HOQogOtjTjc2zH/U9QvHAhZTt20Povz+LXvbvTMvpRowi/+26Kf16Icdu2S9o+e8dXNcNLWG2rw+qhADEkp1CyZAkRDzyAfuRIp2X8e/Uk6k9/xLhlC8W/OHvMWgaz1YrP72Dx/PeGYeNGSpYvJ+KhB9ENG+a0jH/v3kQ99RTG5GRKli6rs7/SZMW3Ge6NWiUaNahqaSqOHKHgq68IueEGgqdPr9Z2qFWiuq9VtYqm9auvUHnsGPlffnX5GtsEmsvMfB5K6uyuQogsIcTdwD+AiUKIVBQrvX/YykYLIZYDSCnNwMPASuAo8KMt9fj/e8z5+Zz/938IGDSI4GuvrbdsxEMPomnfnuwXXsBaUXGJWki1BZSqGawJ7RaJnggoa0UFOa+8gm9cHOH331dv2dA5c/Dv35/cv/8Dc0FBk9rqLiaLRKP2zqCaE2t5OTkvv4Jvx45E3HNPvWVDb74Jv759OP/3v2MuLKyxr8piRatpHgFlvsIElLRYyH7hRdShoUQ99SRwsV8JUVNbETRxIoETJ5L3/vtUnXYa7u6KplkElJTyRillGymlRkrZTkr5uZQyX0o5XkrZ2fa3wFb2nJQyyeHY5VLKLlLKjlLKS6/HukzkffAhVqOR1i+92KA5ucrPj9YvPI/p9BmKfvzxErXw4hqUuhkElLpaQLl/TOG332I6c4bWLzyPyte33rJCpaLNKy9jKS0l/7PPm9JUtzFbrV4VXzNT8N+vMZ09S5sXX0A0dM/Vatq8/DKWwkIKvviixr4q8//fGVTJ0qVUHDxIq2eerrZetdraqBaiekBpF1qt/vpXUKu58N77l6fBTcCrn7gMmHJzKVqwgJBZV6Pt2NGtY/QjRxIweDD5n36GtbKyhVuoYH/om8Mdy/4ed3cGZS0vJ/+LL9ElJKAb7p6Jr7ZTJ4KnX0Xh999jzm/5hW2TRXpVfM2I1Wik4Kuv0I0eRcDgwW4d49e1K0FJSRR8932NWVSV2dpsa1BXkoCSFgt5H32Mtls3gq66qnq7vYkqIapV8vaupmkVRdhNN1KybBmV6emXuslN4n+ud1mllS3ntvDW7rd4bdtr/HDsBwoqLo1KyE7B518gLRbC76tfbVWbiIcewnzhAkULfmqhlilIKdmXu4//HvsIbavFbM9fRLYhu0l12juNu5296McfsRQUEPHAXI/OEz53LrKqivxaI+qWoExmUqBZxqvbXuWzg5+RUZzR4udsKaSU7M3dy7t73+XVba/y9eGvyTHmXNI2FP4wH0tREZEPPODRcREPPoAsL6fAYZ2lspkElFqlqqHiO1ZwjI/2f1R9z08Vn2ryOTyhdNUqqjIyiJh7fw3Ni8VhvdiurXB0Ug676y6EVkvehx+1eBtPl5zm84Of8+q2V/lw/4ccKzjW6Lout5n5JSW9OJ2/JP+FQ/mH8FH54K/2p9RUyhu73+Chfg9xW4/bWjx6g7mwkML58wm+ahq+MTENH+BAwNAh+A8aSP7nnxM6ZzbCp/lv33njeZ7b/Bxbs7eiEmo0QVpW5mxj7cIvuaPXHTzY70E0Ks/9mOxqB3cmULKqivzPvyBgyBACBg706DzaDh0ImjaNwnk/EPHAA6j1eo/b2hDFlcW8tu01TvuvACn47VQQxZXFvLPnHa7pfA1PD3kafx//Zj9vS5FjzOGvm//K9uztqIUanUZHSVUJb+55kzt73smD/R7ER9WyrwprVRX5X36JbsRw/Pv18+hYbceOBE2dQuF33xF+332o9TqqzFa0zSKgFE1CcWUxr2x7hZWnViIQBGkv3vPru1zPU4OfavF7LqUk7+NP8I2PJ3DixDr77FoKZ9oKn7AwQm+8kYKvviLq8cfQtG3b7O2rMFfw753/ZsGJBUgkwdpgSipL+GDfB0yKncTzw58nWBvsUZ3/MzOo/Rf2c9OymzhnPMcrI19h203b2HzjZhbOWMjQ1kP5z67/8OLWF1vcTLl40WJkRQVhd93l8bFCCMJuvx1zdjaGTZuavW2nik8xZ9kc9l/Yz58G/4lvJ6zEkPo8T3b/L9Pip/HZwc94bN1jmCyem6zaNWHuzKBK163DnJtL+N2eXyOAsNtuQ5aVUby4+S368srzuGX5Law+s5qgiiQGiLdJmZPC+hvWc1uP21iYupC7frsLQ5Wh2c/dEqQXpzNn6RwO5R3imSHPsOXGLWy+cTPLr1lOUockPj34KU+sfwKTtWXNlEtXrcaSl0fYnY2/51ajkZKlSwCotFjx9Wl6WC21SoVFVczNy25m3Zl1PNjvQZLnJJMyJ4V116/j5u43s+DEAu5ZdQ9lprImn68+yvfsofLYMcLuvAOhrvnbLFZZbb1n11ZYa/W1sJtvAqBwfvOvYxuqDNy98m4WnFjAzd1vZu31a0mZk0LynGQe6vcQ6zLXcfPym8krz/Oo3v8JAXWy6CQPrX2IML8w5l81n6s7XY1WrUUIQefQzrwz7h3u7X0vC1MX8ubuN1usHdJqpXD+D/gPGIBf166NqiNw7Fh8WrWi8Pt5zdq2C2UXmLtmLlZp5dukb7m1x634qRXH4Ai/1rya8CrPDXuO5LPJPJvyLBarZ/H5PLHiK/xhPpq2bdElJHj+QwD/3r3w692bwnnzmnXAYTQZeXDNg5wvO8+nEz9FV5aEn0oJtxPhH8FTg5/irbFvcazgGI+se4QK86WzuGwMOcYc5q6ei0TyXdJ33Nz9ZgI0yj2PCYzhtYTXeHbos2zI2sDzm5/HKlvOH6jwh3lo2rdHN3JEo47369sXbY/uFH6v3PPmMpKwUoZ/zJfklufy2aTPeKDvA9WzgMiASJ4e8jSvj3mdw3mHeXT9o1RZqpp8TlcU/jAflV5P8LRpddspL/YxlQuDJE3btujHjKHop5+wVjVfO00WE49veJzD+Yd5c8ybPD3kaaIClMBBwdpg5vady2eTPiO3LJf7V99PcWWx23X/vxdQRpORh9Y+hEal4eOJH9Na17pOGSEEj/R/hDld5/Dl4S/59WTLuGKVbduG6fQZQufMbnQdwseHkNk3YExJaTazUbPVzOPrH6egooAPxn9A59DOQF0z8xu63sAfBv6B3079xheHPFvjqW1Z5IrK9AzKtm0j5IYb6owSPSH0xhupOnmSsh07G12HI1JK/pz8Z04UnuD10a8zqPUgxVG31ktwXPtxvJbwGrvP7+bfO//dLOduCUxWE4+tf4ySqhI+mvARHUOcG+vc2O1GHu3/KEvTl/LloS9bpC2VqamU79pN6OwbGh38VwhB6I03UnnihDLTMFuarOKTUrKh4G1U2vP8K/F1BrQa4LTcxNiJvDzyZbZnb2+xe24uLKT0t98InjnTaUQZqxMVnzNtRehNN2EpKKB05apma9s/d/6T7dnbeWnES4yPHe+0zMBWA3lr7FukF6fz181/dXvg+P9eQP175785ZzjH66NfJybQ9ZqPEIJnhjzDgKgB/H3735tsFOCMwvk/og4JIXDy5CbVE3LddaBWU/RT8xhLfHHoCw7kHeDlkS/TM+Ji3C67A72jH9Sdve5kStwUPtj3AUfzj7p9DnfNzIsWLAAfH0Kuvcb9H+CEoKSpqIKDlfqagV9P/sr6zPU8MfAJEtslAmCyWtE4MTNPik/i9p638+OJH9mU1fyq2Obg0wOfciT/CK+MfIXu4c6dxO3c0/seJsZO5L1973G84Hizt6XwxwUIjYbgWbOaVE/wtGmo9HqKfvyxWdagFqct5nTFLirPJzG0df0zuxkdZ3BL91v44fgPbD67uUnndUbxosVIk4mQ2Tc43W+1yuo+pqrHKV43Yjia9u2brV9sObuF+cfnc3uP25nZaWa9ZUdEj+DxAY+zIXMDC1MXulX//2sBtfnsZn5O/Zk7et3hcvTjiFql5tWEV7FKK89veb5Z1UOWkhIM69YRNH16k6OTa6Ki0CckULxkKbKJYViOFxznw/0fMjVuKlPiptTYZ62eQdU85q/D/kqYXxjPpjzr9tqEO6GOpNlM8dIlBI4dg09EhNu/wen5/PwImjKF0jVrsBiMTarrvPE8/9zxTwZEDeCW7rdUb3c2g7LzSP9H6Bzamec3P09pVWmTzt/cHM0/yicHPuGq+KuYGDuxwfJCCJ4b9hwh2hCeTXkWs9XcbG2RJhMly5ahHzcOn7CwJtWlCgggaOoUSlavgfLyJlnx5Rhz+OfOf9LOrxemwhFuhTt6bMBjdAzuyPObn8doatozV5viX37Br28f/Lo4D0xskbJ6IFmftkKoVATPnEHZzp2Ysps2CDdUGXh+y/PEB8fzyIBH3Drm1h63MrT1UP65859uWYn+vxVQZquZf+38F7FBsTzc72G3j4sJjOGxAY+xLXsbGzI3NFt7SletQppMBM+Y3iz1Bc2Yjjknh7Kduxpdh5SSf+38F3qNnmeHPltnv/0BV9eSUMHaYP4y7C+kFaXx0wn3ZnH1jersGLdtx3Ihj6DpzXONgmfOQFZUULpmdZPqeWfvO1RaKnl15KuoVRfVjvVFkvBV+/LKiFfIr8jn04OfNun8zYn9ngdrg3lmiPv5QUP9QvnL0L9wovCE26NfdzBu3YqloKD5+sX06ciyMvqc2d8kAfX2nrcxW81MbvUooHLLuMfPx4+XR75Mbnkunx9sPmfxihMnqDx+nODpM1yWkfJiH2tIWxE8YwZISfGSpU1q1+eHPud82XleGfkKWrV7g26VUPHSyJewWC28s+edhss3qYVXGFJKKowmjEWV/Hx0IenF6fxh4B/wVdfvkV6b67teT4fgDryx+41ms14q/nUJvrGx+PXq1Sz1BY4bh0qno3hJ49fLks8msyNnB3P7ziXEL6TO/ovBYuu+hMfGjGVo5DC+3PYtecWFdfbXpnpUV89AtGTJElSBgehHj3bvBzSAf//+aNq1o+TXxl+jYwXHWHJyCTd3v5mYoJoqYiWShOsu1DOiJzM6zuDbI9+SWZrpstyloLLcjKGwkrXp69l1fhcP9n3QY5Pf8e3HM7DVQN7f936zWSkW/7oEVXAw+sTEZqkvYNAgfKLbMCJ9V6ONJA7nH2Zp+lJu7XErYdo2gPv+e30i+zAt9ioW7F3M6dysZtHClCxZCmo1QVOnuCxjsV5cgxINaCt8Y2LwHzCA4l9/aXT7cow5fHPkG6bFT6NPZJ+GD3Cgrb4tt/a4lSXpSziUd6jesr97PyirVXJyTy5pu3LJOlZAVYXduiyC24JexC+wPSW6coLC3fdR0Kg0PDnwSR5e9zALTyxkdrfGGzUAmLKzKdu5k4iHH2o2PyuVvz+BkyZR+ttKrM8957Ha0GK18MauN4gNiuWGLi702nbvdIcZVGGOkUMbz3LmSAH9z99If2D+tr346TTE9Aijy+BWxPYOr/M77e8KVzMoa3k5patXE5g0tdkSNAohCJ4xnbwPP8J0PhdNK2cpyernjV1vEKQN4p4+dePCKSq++u/no/0fZfXp1by39z2Pz90UpJScPpjPiZ3nyTxSQIXx4kDr1oAXaa3tSWGIkdDWOrfrFELwx0F/ZM4yxZjokf7uqXVcYTUaKV27luAZMxoMa+R2G1Uqgq+aTr9PPyO/vKRRdbyx6w3C/MK4u9fd/LJXiUjSkIAqyS/n8KaznD6UT8zZicxhIkt3nsDX7yTtuoXRaVAUHQdEeRx4WVqtFC9dim7kiHpTyVjlRTNzdXUkCddtDp4xnZwXX6Ly2DGXgarr49297yKl5NH+j3p8LCjrmovSFvHm7jf5fLLr2ebvegZ16mAe817azqrPDnP+VAmdBrdi5HWd0I4pYFe7FbSJiGT/mky+fW4b6787RqUHmWFHtRtF/6j+fH7o8ybPokpWrgQpCXYITdIcBCUlYTUYMG7Z4vGxa86s4WTxSR7u/zAatXPHW+mwBmUsrmTlZ4f4/sXtHE45R3CkP0NndCB/8GF2d1hOdM8gMo8WsOyDA/z4t52cSyuqUVdDZuaGjZuwlpW1yDVCSkrXrvH42P0X9rM1eyv39LqHIN+6GXvNVmuDqcBb6Voxu+tsfjv1m8fnbyzn0or48W87WfbBATKPFhDXO5wR13QiYrKJHTHLiGoTwtHNOXz/4nZWfnYIY7H7obN6RvRkYuxEvj/6PSVVjRMAdgwbNyLLywm+qq7ZdFPQT52KWlppe9hzC8495/ewI2cH9/S+B72vvjrWoquAsRVGE+u/Pca3z21j3+pM/AN9GTwtjsoRp9kW9wtt+uo4f6qEVZ8dZt5L2zl10DM/oPJ9+zFnZzfYL9wxM3ckcPJkUKkoWeW5NV9mSSZL05cyp9scovXRHh8PoPfVc3evu9mRs4O9uXtdlmvRGZQQoisw32FTPPC8lPIthzJjUFJx2OPELJRSvlxfvVLCum+OcnRzNqFtdEy5vxfxfSMRKkGVpYo//PwBHQZ34JbJoygtqGDf6jMc3HiWUwfymHRXT9p2rZvgzEnbuaf3PTy09iGWpS/j6k5Xe/TbHSldswZt1674xsY2ug5n6IYOQRUYSOnqNQSOHev2cVJKPj/4OXFBcUxs73qR3D5qLE0tYd6HRzFXWRk4NZa+42LwD1RGvEGFk7n212sZ3Lcj999+Pyd2nGfHkgwWvb6H/hPaM+zqeFRqlYNe3HmvKV2zBnVoqNsx2NzFt2NHfDt0oHT1asJuusmjYz87+BnB2mBu6Op8huluPqjbe97O90e/9+jcjWXLz2nsXXOGwDA/xt/enS5DWqFSq7BKK68seRxrTyu3zRxLpcHMgfVZ7F11hswjBYy7tTvx/SPdOse9ve9l9enVzD82n3v73NvotpasXo06PBz/AQ0bMHlEfCfO6cJpc2Ab4Nks77ODnxGqDeW6LtcBF1/2zmZQWccLWf3FYcpLTfQe3Zb+k9qjD/UDIK5Mz7c/v8ueTuE8d/tzpO+7wPZf01n2/gG6j2zDqNld8PFt2I2idPVq0GjQN9C/a1jxuWGQ5GPra6WrVxP12GMNtsORLw9/iVqoub3n7Q0XrofrulzHZwc/45MDn7gs06IzKCnlcSllPyllP2AgUAYsclI02V6uIeEEUHS+jKNbshkwOZbZzw6mY/8ohO2uLE5bzIXyC9UdJzDMj8TZXbju6YFo/X349e19HNp01q32J7ZNpFtYNz4/+LnHjql2zHl5lO/eQ+CECY06vj6Ery/6MWMwrFuHNLtvWbX53GaOFhzlrl531Vj0r43FKhle4UPGr6cJjgpgznNDGDazY7VwAugS2oUxMWP49ui3lFvL6Ta8DXOeH0LPhGj2rj7Dsg8OUFVurncNSlZVYdi4Ef24sU3yfXKGEILAiRMp27ETS1GR28elFqayIXMDN3e76LzqiJQSs9W9YLER/hFc26X+lCrNQXFuGXtXn6FHQjRznhtCt+FtUNnatylrE6mFqdzd+25UQoV/oC9DZ8Qz+6+DCY4KYMXHB9m1PMOtNYnu4d1JbJvIN0e+aXT0BGtlJcaNmwgcN67Z73mVxcrmNr0JOX4AS4n7s7xjBcdIPpvMLT1uqQ5bZFfh1n7ZH9p0liVv70Pr78P1zwwicXaXauEEEBUQxdWdrlbeRxUX6Dggitl/GcKAybEc3ZLN4jf3UlZSv7OslJLSNWvQDRuGOjCw3rKOflBCCISoX8UHEDhxIlVpJz0KIHuh7AKL0xYzs9PMamfcxhKgCeDWHreScjbFZZlLqeIbD5yUUjbZu9RcZWHq/b0ZPqsjaoecL1Zp5Zsj39AzvCdDWw+tcUxUbBDXPj2ImB5hbPz+OHtXnWnwPEII7u51N6dKTpF8NrlRbS1dtw6kJHBi8wsogMCJE7AUFVG2a7fbx3x1+CtaBbTiqnjXagMpJVnrz5FQoSG8ZyiznuxPSCvnKefv7nU3JVUl1Q7Ovn4+jLm5G2Nu7krm0UIWv7kXS5UiQC1OOo1x+w6spaUtIsRB6YhYLJSu3+D2Mf89/F/8ffy5qbvzWZdd5ePMD8oZd/a80+1zN5aqCgtjb+nG2Ju74etXUzny38P/JVoXzdQOU2tsD22tY9aT/ek6tDXbf81gy89pbgmpu3vfTWFlIUvTG2cJZty6FWtZWYv0iyqzlS3RvVBZzBg2bnT7uP8e/i8BPgHM6TanepvaZgTjqOLbs+o0G78/TkzPMK57ehCR7Z0Ljzt73YnZauaHYz8odWlUDJ/Vkan39SY/y8DCf+/GWORavVp54gSmzEy3+oVFyhrrW2ohnPY1RwInKE61pavdV39/f+x7LNLCXT0bF5KqNnO6zaF7mOs1sEspoOYAruLzDBdC7BdCrBBC9HRWQAhxnxBilxBiF9oq4vvVVUdsO7eNUyWnuLn7zU6NEbT+Pkx9oDedBkaxZWEa+9c2bFk1PnY8UQFRjVbRlK5Zg6ZdO7SNDG3UEPqEBIRWq6gC3OBk0Um2Z29nTrc5LteeALYuPMmF3Xns9jXT8ar2+Ghcj3L7RvalZ3hP5h2rGVqoZ2Jbkub2Jv+sgYPfpaGRzkd1pWvWIAIC0I1oXJibhvDr1ROfNm3cvkaFFYWsyFjBjI4zXFq6mS02E3w3Exa20bdxr7EeUrtf9EiouyZwvOA4u87vYk63OU6Dvvpo1Iy/ozu9x7Zj35pMti462eB5B0QNoHtY9zr33F1K16xBpdMR4CJjblOoNFs5HtoeU0iY2y/fvPI8Vp5aycxOM2usN9pVuPYZ1L41Z9i68CSdB0WRNLc3vv6uV0liAmMYHTOan1N/ptJyURDF949kxuP9KSupqncmVbp6DQhB4PhxDbZfyprWtiohGnSK17RujV+fPm73i0pLJT+f+Jkx7cbUsWhtLIG+gfw43XVswEsioGzp3GcAztyX9wCxUsq+wLvAYmd1SCk/kVIOklIOimzl3Jrl+2PfE+YXxuQ415Ea1GoVE+/qQcf+kaT8lEra7tx6265RaZjddTZbs7eSXuxZLhWLwUDZ1m0ETpjQYlHSVQEB6BITKF2zxi2n3XnH5uGr8uWazq4jNexfl8ne1WcI7RvGOn8TqgbCzwghuLn7zWQUZ7A1e2uNfXF9Iph8by9KzxmZbvTFbK7Za6TVSum6tegTE5vNes9Z+wInTsCYkoLV2LAD5cLUhVRZq5jTdY7LMibbtdY0MjRPc+FOv5h3bB5atbbeey6EIPGGzvQa1Za9q85wYH1WvecVQnBjtxtJK0pjZ45nxgjSYsGwbj36MWMaTETZGKosVqRQYRySgCE5GWt5eYPHLExdiMlqqjF7gpprUGm7c9n8Uxod+0cy4c4e1erT+rip200UVBTwW0ZNI5k2HYO56uG+GAorWPbBAUxVdZcQSteswb9/f7ec1h3NzEExNa8dLNYZgRMnUHHoEKZz5xosu/LUSgorC7mx+40Nlm0uLlXvmgrskVKer71DSlkipTTYvi8HNEIIj8MIZJZmsilrE9d3ub5BvyeVWsWEu3rQukMwa748Qu7p+vXU13a+Fo1Kw7yjngVoNWzciDSZWky9Zydo4kTM589Tcah+n4LSqlJ+PfkrUzpMIczPudf+6UP5pCxIpUPfCFqPbgOirqOuMybHTSbML4x5x+peo/h+kXS/KpaOZjX5m2s+AuX79mO5kNdi6j07gRMmKGtdya713aCY388/Pp8hrYfQKbSTy3L2GVRDZuaXm+LKYpalL2Na/LQG/Z6EECTO6UJcnwiSfzzB6cP1J32c2mEqIdoQvj/mmXahfM8eLAUFLdYvKk3K4KFiaCKyvBzj5vpDD5mtZuYfn8/wNsOJD46vsc8+gyrKMrDmyyO06RjMhLvcE04Aw9oMIz443mm/iO4cwsS7epJ7uoS1Xx2pMROtysqi8tgxt/uFtbaKTyXcCsxsr790zdoGy847Oo8OwR3qLJ+0JJdKQN2IC/WeEKK1sE0vhBBDbG3yOB3qotRFCCG4vsv1bpX30ahJerA3/oEafvvkUA0/kdqE+4czKW4Sy9KXeRSh2rB2rWKl5GF+G0/RjxkDPj4NqjNWZKyg3FzOjd2cj4BKCypY/eVhwtvqmXh3T+zzMXeWWXzVvszqNItNWZvILas7K20/pBW7tGYMBwtJ3XVRSJWuWaNYKY1pHudcVwQMHIg6NJTStfV3xM3nNpNtzK4zkq6N2aJcnSs9o+7yjOVUWCqY3dU9Xz6VSjDpnp6ER+tZ88URSgtcP+9+Pn7M6jSLDZkbPEqjULpmjWLg00zOubWpst0b2bc/quDgBl++yVnJ5JblOr3narVAa4UjP6fjH6Qh6YE+9aq7ayOE4IauN3A4/7DTxH3x/SIZPqsjJ/dcqLHkYO/L7gpxq0OoI1BmfhY3oqBpO3TAt1PHBvvF0fyjHMo/xJyuc1o8Z54jLd67hBABwERgocO2uUIIe6rU64BDQoj9wDvAHOmhUttitfDLyV8YGT2SVrpWbh/nr/dl8r29MBZVsva/R+vVpV/T6RpKTaWsOeOeTluazRiSU9CPGd3sVkq1UQcHE9C/f4M5ohalLqJLaBd6htdd5rOYraz89BBWi2TKvb3Q+KodYvG590DO6jwLq7Q6jQavFoKNfiY0rfxY/+0xinIV6y/Dxo3oBg9u0EqpqQi1Gv2oRIwpKUiLa4vMxWmLCfMLY0y7MfXWZ/LQSOJysSh1Ed3DutMjvIfbx2h81Uy5rxcWi/JMWMyu33RXd74ai7Sw9KT7xhKGDRsJGDYUlc59J2FPqLK111erRZ+gqPnqU38vSltEhH8Eo9qNqrNPBSSV+VJVamLKvb3x03uerPOq+KvQqDQsSnVmwAz9J7anQ98Iti46yfkMRZtj2LgRbefObic1tVovhjgCZVDpzgwKIHDMGMr27MFicB0dZFHaInxVvkyLb16ftYZocQElpSyTUoZLKYsdtn0kpfzI9v09KWVPKWVfKeUwKaXHXqdbs7eSW5bLrM6eR0NuHR/MiGs7cepAHvvWuDaaGNR6EG31bVmcutitessPHMBaWoo+se5D3xLoR4+i8vhxTOfraFEBxWz6UP4hru50tdMR0LbFSucYd2v3ams9TwVUbFAsA6IGsDhtcR1hrxICq4DgcW1QqQQrPz1ExelMqk6eRDeqZUbStdEljsJSWOhSFVpYUcj6zPVMi59WrwEJ/D5mUMcKjnG04GijfPhCWgUw7tbunM8oYeti10YT8cHx9Ivsx6K0RW4ZS1RlZlJ1+nSL9otqAeWjQj8qEUt+PhVHnEfezyvPIzkrmenx050akBTsyaeTWU27sW1o1aGus7Y7BGuDGd9+PEvTl9YwlrAjhGDcbd0JCPZl5WeHKM8rpmz3bo/6hUVKHLupyk0VH4Bu1CgwmTBu3ep0f6WlkmXpyxjffrzH4bGaypXbuzxgUeoiQrWhDY56XdFnbDvi+0Wy/Zd0Cs45X0RXCRVXd7qa7TnbySqtfwEZwJCcDCoVuuHNb6XkDJ2tw7uaRS1OW4yPysfpCOjsiUL2rcmk1+i2dBp40bfBvsbqzhqUnWs6X8PpktN1vMPttgRC58P4O3qQl2lgy7f7AVpM1VMb3cgRoFJh2Oj8Gi1LX4bZamZWp4YHOibbGpSrYLFXAovTFqNRaRo96u00MIpeo9qyf20m51Jdx1uc1XkW6cXpHMg70GCdxhRlDVCXMLJRbXKHKtsM2ddHpSS9FALDJufm5svSl2GWZqdCPP+cgeyUHE5oLIT3cx1myB1mdZpFSVUJ6zPXO93vp9Mw+Z5eGAsrWf/JbjCZPOoX0iHUESizKXcFVED//qj0eowu3h3rM9dTUlXC1Z2vdrs9zcXvXkAVVhSyLnOdW6NeVwghGH1TVzR+atb+9whWF8rbmR1nIhD8crLhVOLGlM349+2LOvjSjDi0XTrj07o1xk11/bVMFhNL05cyNmZsHeOIqgoz674+SlCkPyOuqWkU4CrdRn1MjJ1IgE9AnYjX9lmYlJIOfSLokRDN0Ux/DPED8Y2Pd1ZVs+MTGop/377K4KEWUkoWpS2iV3iv6oSN9WE3O64vWOzlpMpSxdL0pU0e9Q6/piNB4X6s/e9RqiqcO4NPjpuMv4+/SxWWI4bkFDTt2uEbF9foNjVE9QxKrcInPBy/Xr2c9gspJYtSF9E3si/xITWfQYvFytqvjqL2VbHavwpLE2O+Dm0zlNa61vVeo9bxwQycGkvGGciLHuRRhA1rLTNz4YaZeXVZjQbdiBEYNiU7nQUvTl1Ma13rS2ocYefK7F0esDxjuTLqbYR6z5GAIF9G39iV3NOl7HHhxNtG34bh0cNZnLa43sgS5oICKg4dQpfYuJTljUEIgT4xEeOWLcha6Zw3ZW2ioKLA6Shx26KTlORXMP627mi0NdfKqqOZeyChAjQBTO0wlVWnV9XIiaOu9idR/h8xIxZtZRFHO8yud42judGPSqTi4EHM+TXtcI4WHOVE4Qm31WGmahXflTmDWp+5nuLKYrdmg/Xh6+fD+Nt7UJJfwTYX/lE6jY5JsZP47dRv9UaWkFVVGLdtQ5eY0KIL7XanWvu90Y8aRfn+/ZgLa84CD+Yd5GTxSaf3fO/KM1w4U0r8lBjKVM4dzD1BrVJzdaer2Xpua73JUAdOjUNfmcvxLnOoMrl/jSzW2lZ87pmZ29GPHoX5/HkqT5yosT3HmMOWc1uY2XFmvVFnWorfvYD6Je0XeoT3oEuo80RentBpYBSdBkWxc2kGhTnOVX2zOs0ix5jDzvOufT+Mm7eAlJdMdWVHP3oUVqORsr37amxffHIxkf6RjIiu6Qh7Lq2IgxvP0ndsDNGdQ+rUZ++T7q5B2bm609WUm8tZc/qiQYm9CvuszHL8EN2OfUepRcfOZac8qr8p6EYpqlC7qsnO4rTF+Kp8mRo/1dlhdaiOJOGmgLqUQhiUDMCtAloxtE3TR73RnUPoOzaGgxvPci61yGmZWZ1nYTQZWXvGtTVY2Z69yLKyFu8X9oGVfVCkH5UIUmJMqWlu/kvaL/ip/eok6izMMbJzWQadBkbRuqei2rM0dQqFooGRSJZlLHPd9rOZdD/4BVX4sXlBqtt1O4Y6Arujrvtt1iUo96T2EsGSk0uQyAaz5TYWKSX71riO6vO7FlDpxekcLThab8geT0m8oQsarZqN8447ne6OiRlDgE8AKzJWuKzDmJKMOjQUv55Og2K0GAHDhoNGU0PfXlxZTMrZFKZ2mFpjEdhqlSTPP4E+VMvQmc5VbNUd3UMB1TeyL231bVmesbx6W+1gsYaUzYSXnKDr4Aj2rTpD/rnmyS/UEH7du6OOiKixDmW2mll5aiVjYsY4jVruDLuRhNpNFd/+dZcuH1RRRRFbzm4hKT6p2Ua9Q2fGow/TsnHecSxOVOD9o/oTrYtusF+g0RAwpGVVRRfVr8oz59erF+rQUAzJF++5yWpi1elVjI0Zi95XX71dSknyj6n4aFQkzu5SLeRcRTP3hHaB7egX2Y9l6a4FlCE5hUBDJn1HhHFsWw5njzecaw1s6TYaYWZuR9MqCm337hhrrc8uz1hO/6j+xAQ2T+SI2pzYcZ7NP6W53P/7FFC5R+DNXqz4fgZCwpRdC2DF07BvHlw4cXHo3wgCgnwZdnVHzh4vInVnXYs4Px8/JsROYPWp1VRZ6oYokVYrhpTN6EaORFzi9Qm1XkfAwIE19O1rTq/BbDWTFJ9Uo+yRlHPkZRoYcW2nOqo9O3Zh4qk2RghBUocktmVvq/aPuRgsVqnTmJyMf/9+jJzdDY2/mk3zTjRLcrcG26ZSoU9MxLB5c7W5+Y7sHRRUFNS5RvVRbSThhvrTWFzJrksxS8w9Am/2ZtXnIzFLM9MOrYalf4A9X0POoSb1C41WTeINXSg4Z+TA2rpGQiqhYmqHqWw5t4WCigKndRiSUwgYMAC1vmXMy+2Ya82ghFqNLiEBY3JKtbn51nNbKaosqnPPM/bnkXmkgCHT4wkI8nVQTTfPszktfhppRWmcKDzhdL8xORlNbHuGzOlDYLifMiBwY/ZttdYKdaRqOFhsbfSjRlG2dy+W0lIAThSeIK0ojaQO7vcLT6iqMLNlYRpRsa5dTH6fAkoTgIxNYLnenyGqACLLi5VOuHguvD8Y3u4Dy56C01sb1Sl7JEQTFRdEyk9pTnNIJXVIotRUSnJW3YXXiqNHseTno7+E60+O6EeNojI1FVO2oudenrGc2KBYeoRd9IOpMJrY9stJ2nYJqWG1V5tqI4lG+PpcFX8VVmll5amVSh32kDFSifBeceQI+oRE/PW+DL+6I+dSizixw7mJfHOjH5WItbiY8v2K1dmyjGUEagJJbOu+6slsdd/MfOuik05nHc2OJgDiElgeHEo8WrpUlsPBBfDrI/DRSHi9G/zyMKSthUZE54/vF0lcnwh2LMtw6sCbFJ+ERVpYdapujiHT+Vwqjx+/JP2itooPlH7h6GKwPGM5Qb5BjIy+aE1oNlnY/FMqoW109BrTtkYdTV2DsjMpbhJqoXY6i7JWVmLcsQN9QiIaXzWJs7tQmFPmVszQOmbmbgSLrY1+VCJYLMoSBbA8fTlqoWZS3CSP6nGX3StOU1ZcReJs18szv08BFRrH4VEPc8ZaQdLwp+H+jfDnLHhwO1z1JkT1hL3fwpdT4N2BkPIWlBe5Xb1KJRh9YxcqSqvY/mtGnf1D2wwlzC/MqS7ZaAuloxvZcma09aEfZdclK97xO3N2MrXD1BqL0tt/TaeqzEzi7C71LlZXm5k3YkE7PiSebmHdWJ6uqPnsk0kpZXXoGbsRSY+RyoBg88/OBwTNjW7ECFCrMWzaSKWlknVn1jE+dnyDIbIccTfUUU56Mce35dBvQvsmtdktQuPImfQCuy3FJPW7F3HfBnj6NDyyB2Z+AO2HwZFf4Ntr4K3esP5vYKg/FmVtEm/oDFZJipP1kS6hXegU0qmGatdOtXn5JViXdSagdAkjFXPzjZsoN5ez7sw6JsZOrGH5u2/1GUryKki8oTNq28DjYrDY5hlghPmFMTx6OCsyVmCVNess370bWV5e3S869Ikgrk8EO10MCBxxbmbuWdv8+/ZFFRSEYdMmpJT8duo3hrUZ5jIsWlMoOl/GvrVn6DasNa3jXVuZ/i4FlPnCBZalL0Oj0jC+vRIyHpUaorrBoLvgph/gj2lw9YcQ2BrWvABv9oSVf4Hihn2YQEnP0Wt0Ow5tzKoTq89H5cOUuClszNyIoarm2okhJRm/Hj3cCvDYEvh27IgmOhrDpk2sPLUSiayRYiEvq5TDm87Sa3Q7wtvq66nJwYqvkQZXSR2SOJB3gMySzBpBNw3JKajDw6tTTQvbgKC8tIrtS+oOCJobdXAw/v36YdyUTHJWMgaToU4aioawW/HVFyxWWiWbfjiBLtiXgVOaN1ml0zbl5FSvAVWrZVQqCO8I/W+GG/4LT6XCdV9CVHfY+C94sxcseQzyXK8DOBIU4c+gaXGk773gNDvstPhp7M3dy1lDzZxrhpRkfCIj0XZpujFTQzhzAfAJDcW/Tx8MmzaxMWsj5ebyGqqr0oIKdq84TXz/SGK6X3whV69BNYORhJ1p8dPINmazL3dfje2G5BTF5HvIkOptiTd0BkmDBhNKsFhHM3PPrPgAhI8PupEjMCRvYn/uPs4aznrcL9xl80+pqH1UDJvVsd5yLZpRt6WwFBWx8tRKEtsmuvbx0Oqh303KJ/sAbHkXtn0I2z+GgXfAqD9CYP1hkYbOjCdt93mS55/gmqcGVidFBEWd8f2x71l7Zm21hYultJTyvfsIv+ee5vqpHiOEQDcqkZJfl/DbxAt0D+teHQBTSuWFqQ3QMGR6hwbrUpnL6CSy0GashvKzUHIWygugrFD5W2kAaVHURVYzCBX46kAbCNpApvr68SawfPOr3NnhGjqKs0hTB4wpKehHj6qxRhcVG0SvUW05tCGLHiPbENGuZUMf6RMTufDWW6zfv4hwv3CGtB7S8EEO1DZldsbRrdlcOFPKxLt61MnP1BJYCgv5LW0ZvSN6u06HoPGDXtcon7w02Pqusna7+7/QZzaM/TOExtV7nn4T2nNsaw4pP6YS0y2sRk62KXFTeHvP26zIWME9vZV+IC0WjFu2Ejh+/CWJ42Z2YdyjG5VI3nvvs+6AYtU6sNXA6n1bfk5DAiOvrekLaBdQNSzizJVQdAYKTymfkrNQlg9lBVBeCJUltj5hUfoHKP3CNxC0esZp9fgJNcu3/4cB3W6HkPYQ1hFjSgoBgwehCriYdy0owp+BU+PY/ms6Z47k076Hc4dhq6RRwWJro08cRemK30jZ9B2+Kt+LE4Bm5NTBPE4dzGfENZ3QBdefweB3OYOSlVWozuW6v6jdpg9c+yk8tg/63wK7voB3+sGal+pV/Wn9fRg+qyM56SUc35FTY1+fiD51LNWMW7eCxXLZ1p/s6BMTsZaVYTp4uMYIKHXXebLTihl2dTx+ulpOzSXn4OhSWP93mHcTvNmbm9YMY432TwQvugV+e1oR7mlrlU4p1BDcDsLildF4dD9o3Qt0kYqwKsqk9ekdDKyoZFnWRjQ/3MBa7R+5Zcl4LEVF6PzTYPsnyuDBpj4ZOiMebYCGTT+0vMGEXY1SmpLC5LjJTsPc1Ef1DMqFgKosM7Ft8UnadAym82D340M2CYsVy6Fj7i9qR3SC6W/DE4dgxCNwZDG8OwiW/7Fe1Z/aR0XiDZ0pvlDOvrU1TYSdWapVHDyItbj4kvUL+8yhdq4ufaLN3HzLFqZ0mFJt4Xj2eCFpu3MZMKk9QRH+NY7RVOQxVrWXric+hh9vg3f6w6ut4L1B8N11sPwp2PIenFgJ+TY/sSB7v+gGrfsoH31rkFYoOUvAmR2MNZSyMm8fpu9vgA+GYfprOypTU9GFnIet70PWbrAojtH9J7YnKNKflB9TXRpMODMzb4xhhz3CR/HGDYyOGV3DwrE5sJitpCxIJaRVAH3GtWuw/O9yBgUw+LSG0e08jIAd0h6mv6V0xvV/g5Q3YNfnkPgkDLlfGV3WotuwNhxOPseWhSeJ7xtZnaDMbqn2+aHPySvPI8I/AmNyCiqdDv++fZvhFzaegKHDsKpV9Eu3VguoqgozW34+SWT7QLqPjIaCdMhIhjNb4fRmZUQIgICIzhAzmN3h0/nvMcHf7pqOvk0nCAj32KQv6dh8Xt7+Koev/Zgv5+3l9tKDaMhAJ/bBCpuflF8wtB+BX1wCw8aPYMOvRaTtym3RF7tf9+6YQ/T0SjMypBFqjIYiSexceopyg4npj9S/ztecSAH902W9+dCcoo+CSa/AsAcUtd/Oz5U13OEPwYhHwa+u6X37nuF06BvBrhWn6Tq0DfrQiyPhafHTeG37a5woPEGX0C5KihOVCt3w4U39iW5hrmVmbsevZ0/MgQH0TisnwSbErRYryT+eIDDMjwGTY5UlgIxkOLMFTm8hMj+NL32BVCC0gzLY7TNb+R4aq8w29a087hfTzqxnxfpH2TrzdUapgzEu/hXYhc4vDVY+qxTy1UPMUNRxI0mcMJpl80o4uCHL6XqmMzPzxhgeaqKiMHeMocuJLEJaQL23f10mxbnlXPVIX9Q+Dc+PLkU081NCiINCiH1CiF1O9gshxDtCiDQhxAEhRIPxPUw+MPZcCH4+dQWKW4R3hOs+h7kp0G4IrH5eMabY930d6yahEiTOVtZHdi6ruT7iaKkmpcSQkoJuxHCEpnEhl5oLlS6AjFgtI87401rXGoDdy05iLKoksf1qVO8NUEaCSx6F1NXQpi9M/jvcvQaePQsP74TrvmBvh3v41ToCa7uBoIvw3N4cmNRhCj4qH36ryOJn6ygMOX749eqFz/Np8PghmPUJ9JgJeSdg1V/ovn08kX6ZbP5uN6bjmxplbeYOQqUitbOO/qcEfcJ7e3x8fUYSBeeMHNiQRc+EaJfpwFuCKl/BiEx/IgPqZpt2i6BoZQD38E7oMgU2/Vt5TrZ/DOa6LhUjr+uMtEi2LKy5flXbUs2Qkox/796oQ0Ia1y4PsRs01I4hKdRqUrsE0P+Uih6hyvrnoQ1nyD9rZGTnnfh8OlJZq148VzEmCe9E+ejnub7yeb4Zk6JoYG74GsY8A31nK0Ynga0b1S9GtE0gWBvMstJU6HM9hvxwfFq1QvvaMXjyhLJO2HcOlGbD2peJXTee9gGH2bH4KMZ9q+vcD6uVGgOhxpiZ2zne2Z9uWZKRIe6HWnIHu7tFXJ8IYnu6F9vwUqn4xkop+0kpBznZNxXobPvcB3zYUGVlWmh3vBBrVd1O4xGte8MtP8HtS5RR5OIH4KNE5aXtcHNbxQXRfUQbDqzLqhFhIj4knq6hXVmesZyqkycxZ2dXe2RfTk4UnmBb+0panS3DtP4Tij6/j32rT9HVbz1tTr0D4Z0g6T/w8C7FmGT2tzD8QYgZrOjKbdh12I2x4rMTrA1mZPRIfjv1G/oqAyEZxxX1mhAQEqN09BnvwqN74InDqK76N4lddmKs8GP3J/Pgje6Kj1vWrib58dSmoKKANdH56MusVLqIdF0f1Rl1a5mZK46eJ/D1U7t0gG4pjL6S1pnGOmGcPCa8I1z/Jdy7TlHfrvgTvD8EDv1c4x4ER/rTf1J7UneerxFhIswvjGHRw/gt4zfMBYVUHDh4Saz37Lhag7pQdoF10YUEGSxULf+I8m/vY8dPB2nnu5/4M6/YZpKvwtzN8KdTcNN8zMMfZafsRqW6eX23NGoNE2Mnsj5zPcbyEoxbtlwMARXYSlkjnPY6PLgVnkpFXP0+ib2OYDELtv13A/ynM/z6qDLbs1qUGZTDo6huhJk5KJHLl0adxccKlt37m+8Hc9HdYuR1tRKBluY4P4ArYw1qJvC1VNgGhAgh2tR3QKVWhaio5Pzm7c3Tgg6jlM543ZdgKlN0y/+dDmf3VBcZNrMjPlo1yT+m1hiZJMUnceDCAbLWLAFA34JRmt2ivIhl2/7DoXilcxq/ep7NR3qiVguG3zEanj4FNy+AIfcqqjw3zMw9DXVUm6QOSZwvO8+Akq0IaXUd6ia4HQy+hzYPvkeXQeHsLb+O4ojxsOtL+Gy8sm649hXFGbuJrDq1in1xEoRQIhx4SPUMqtYoPWNfHlnHChkyPR5/vc1svbwQfvtzk9vcEOVa2z3f4nHGGue0HagM3m7+SfGx+uku+HQsZFyMNjBgSiz6MC2b5p+oYTU2rcM0zhnPcWTlPFvYr0u3Lmu1Kj5BNfz3qoys3Pov9sUp/xq++RvbDkRThT+Js7shnjkFt/+qqP9b96r2i7CrcJsjkkRtkjokUW4uZ/vab5XUPK4Gt/oo6H8LIXd9SN8J7TlWPp6cqBvh4E/w36vgzZ7cU/YZ7avSqgcQngSLdSQlK4V9rSuQ/lqnQZUbi6O7RUiUzQikyqgstbzdz+Vxl0JASWCVEGK3EOI+J/vbAo6eaFm2bTUQQtwnhNglhNhl9vHDJNScWrGu+VophDJqeWgHTP2X4pX/6VhYcCcUpBMQ5MuQ6R3IPFJAxv6L5rVT4xQ97fn1KxUT77Z1mt7ylBcp6snvbsD67078lp1CmxCJOkjLSf+7OWXszaCZXdH1m+B0nc0V9nWWpi6hjIkZg7+PP4Pz9mHyC8C/T58GjxlxXTfUGh9Syh6AP6YqfjyhHZR1w/cHwydjFSMLY+NmCysyVtAqujN+PXs2mAbeGdXBYh3WoMxVFlJ+SiUsWkevUdHKIvfOz+CdAYoFaQvg2C8qVf62kD7N92JBCOg8EeYmK24bhgvK4O3b6yDnEBpfNSOv7Ux+loHDmy6alo9rPw6tWsu5NctQBwfj16tX87WpAcxWqQwcKg3KrG/+rfCvjqxI+4U2Wok2OpCzYipHSkfRZ2wsYSOnKla/TrDf3uaKJOHIwFYDiQqIImvtUlCr0Y1oeI1u0FWdCAj2Jfn8tcgnU+G6LyC6PzOrlvGXzPvhwxGQ8hYR1jyPzcxBcWAO1oWjHzYco4vo5p5Sx91CSjiwAN4bDBv/CV2nuDz2UgiokVLKASiqvIeEELUzlTl7/dW5KlLKT6SUg6SUg9qEtOdweAf89+1o/tb6+MLQ++HRfYop+onf4L0hsOxJevUxExatI2VBKuYqZW2kjb4Ng0P6oD98Bn3CJbTeKyuAvd/Bd9fDvzsp6sncI+zvfx3ZPj4kjfs7/mOTOFDRl5Aof/qO8zyWlv3h9CQflDMCNAGMaTua/lm55Hbtg/Bp2DZHF6JlUFIcpw7kcfqkWfHjuW0x/OEoTHoNLCZY8Ud4vQvMuxEOLwZT/c6MdrIN2ezJ3UNShyR0iQmU79uHpbi44QMdcGZmvnf1GUrzK0i8vhOqY7/Ch8Nh2ZMQ1QPurz/bcWNx7Bc+MkIJ6ZOyud4Mso1CpVZcNh7ZDRNfhqwd8FECLLyfju3yads1hO2/plNhUBytdRodo6ITCdl/Cv+RI1o8q3Q1laV0ubCK99RvKv3ip7vgzDYy+8zigJ+WqUOfQJc0hwPq4fjrfBjcgLuFfQDSEgJKJVRMiZtC2L5T+PbuiTqo4TiQvn4+jLimE7mnSzm2pxh6XQs3zuN63ZfMj3pCMaxY8wKf5N/O0xeehv0/KILaDQxVBjZmbWRS7CQCR43CdPYsVadONfFXXnS3GHFNJ3yzNsAnY2DhPcq69p0r4PqvXB57KTLqnrP9zQUWAbUdTrIAx7dnO+BcvXUi2d2qK9oz6ZjOe+YJ7zZ+QTDur/DoXuXluPsr1O8PILH1YkrzK9i7+qJ57bWGbmjMkqL+DfsWNQljvuKv8s01ig76lwch95giUO9ZB48fZFlkO7RqLeNix5MZPZoyvwiGDPZxy2KmNvboPE1V8QFMV/Uj3CA53tH9xG99x8UQHFXLvDawNYx4GB5IUdYKhj2gqGIX3K4IqyWPwZlt9a5XrTilOLNO6TBFUTdarRi3bvPo95hrpdsoLahgz2+n6djZQrtNs5T2CJWyvnfHUsX66xKgT0zAUlDgMoNsk9H4wcjHlAHciIfhyC+ID4eRqP+EqnIz2365mJJjJv0INljJ6dW6Zdpip6IYDvyouEf8qyNXn3yOAeKE4lJyxzJ48hgr4voDMLXDNM5HD6UkqAP9ulah9a9/sGQfm7WEig8gKXQkHbIlWT3dN2zpMqQVreOD2LroJJXliil6IYFsCZsJ96yGR/bws/4moszZsOh++E8XWHg/nFxXr9HR+sz1VFoqSYpPUhI9cjEyTmOpLDOxbdFJ2rSFzofvgm+vVQbXV38I966H2BH1Ht+iAkoIoRNCBNq/A5OA2vm2fwVus1nzDQOKpZSuE6agvHt2RXUF6qZNaHYCWyu+Io8dgOEP0S7vGzr6bWb30hOUrPsSygvpmWai0gdWhbgXpcJtpIQLxxU/i//OUITSkkeh4CQMf1i5wY8fgMmvQbuBmKSZVadWMSZmDBh9OHhSS0TeAULONG6m2ZiEha7oekLJE7Ql1nkgUWeoNSoSru9M0fkyDqxzcm1b91IWtf9wBG5ZqFieHfgRvpisrFet/7tiTl+L5enL6RPZh5jAGPz79EEVGIhxs2fP0cVgsSqoKmPLp6uR5kpGFD2gqFxnfQwPbIHu05uuI3UTKS+G2GrMuppHBIQp1/6JwzDmz4QXrKS3/xIOJ2dxYcknYMilW2o5ACujXC+CN5qCDNjx6UUNwsJ74dxeGHQnX3T5gIniI5j2H4hLQAoVy9KXMSBqAOE+kezeZyXIcIbWmQ3fcyEEPirRbKGOatP2aD4qYFXrC24fI4TNsthgYudSxbK4hpl5eEcWBt3GIxFfwp2/Qe/r4PgK+GaWYqW4+nk4f6ROvcsylhGti6ZvZF98Y2LwjYvD4GG/qIG5ip1fraTcUElixR8QBWmKcdYju5TZuBuR9lvaD6oVsMhm/ugDfC+l/E0IMRdASvkRsBxIAtKAMuDOhiqVwKmgNlSFhGFISSbk2mtaqv0XCW6rdMhRf2Rkyo+c/lmy5ZezTNncFcvKNmTHB7AscwUPD/1D4/1epFScYDN3KH4Yaeug2DZTi+wGCY8rJtmt+zh96W07t43CykKSOiSxZWEa0go9NYcxJhuIfOghj5tjtQWgbA4/nvLNWzgTFsBhvwOUm8vx9/Fv+CAgrncEsb3D2bksgy5DWzn3PFepodN45VNpgKNL4MAPin574z8UV4KuU6DTRNL8/DleeJxnhjwD2MK7jBiBITkFKaXbv9VsMTNYdRzVstWc3XWEtPPPMLj1BoKu/YdyjxqZ3bkpSFAyyNrW1SLmzm35k+rCFbPrEY8yZNcCUr8vJ3mViVm7u1GxJY6CNn4sLU7hKVM5fhr37rlTis9C5nZldnxyLeTbTNtD42DIfco1bzsIVCoyFh9Cpb44xj1ReIL04nSeG/Ycu5adoqzERGLwScpStrh1z1Uq0WIzqLKUFKoC/ViqOcLjZRfcdhGIig2ix8hoDq7PosfIaKdm5lUWIHa48pn6LzixAvbPVxyBN7+tWDF3nQadJ5IfGsu2c9u4s9edqIQyb9ElJlK0YAHWykpU2vojPlQjJWTvhwPzKdi9mQOZz9EzdAeR1zwBfW4AD5+BFhVQUsp0oI7Xqk0w2b9LwKO3p5SAEBT1HIjflq1Is9mtdY1mwS+YwAn3MrAyg+1LfMkItVJVMI+ALsWcLati/7s96dd6sGKeG94JgmOU0aZfiKLyQUJlqTLNLctXBNCFE4of0PnDYLSpLH0DIX40JP4BOk1QTLIbYHnGcgJ9A+lY1pulOw4ycGosrU73Ie+jj7AUFXnsh1Lb+a+xWMvKKN+1m/1demHhIBuzNtZJElcfCdd3Zt7L29m26CTj7+hRf2GtHvrdqHyKzyrRvA/9DGtfhrUvs7xVW9QBaibnZUPmTmjVA13CSEpXrqQqLQ1tZxfp3q1W5aV4bg+kb+CBIyv5o28B1n06ko3vEhgEA/78PGgvn++7fc1Ql5hA/qefYSkpcWtdo1nwDUA74naGyXOs/0bHsdYvQdYH+Pcsx2gOJPnDvkyMHAStekB4Z8VpPiAM/EOVqCRIxarLHjKoJOtiv8g9ooQTAvDxh7iRMPhexXgjvG4sN3OtuHTLMpbhI3wYok1kxdpjdBvRhhjfXuSs/YmqjAy08fW7A/ioRKMMDhrCnprHb8QwrCKF3079xq09bnX7+GEz4zm5J5fkHxULSkcz8zoJCzV+0HOW8jHmKX3i0M+w6V+w8R+sDG+FJUhLUmE+nNoMrXujTxhJ4TffULZrF3pXwa+lhMIMZfaasQlS10BJFlJoSK54E1+tiqF//gMENc5n9XcZSULabCgKeg4kavNqyg8eJKB//0vahn6T2nN0azYp6UMZIObTZ+67aE88x4rwKPqd26M4+tW19XCOr14x+e40AdoNgpihioDzINlcubmctWfWkhQ7jS0/phMY5sfAqXGYDieQ98EHGLduJWiqZ57hFmvzrD8Zt29HmkwcaDUUP5HJ8vTlHgmokKgA+o1vz56Vp+k5qm290Y9rENxWmXUmPA6lOcjU1Sw/9BbDKiuJWPsK8AoAehkJaDC8+yDacZ2VUZ7VrBhdlOUrL8fC02BPYe8fSoZ+EN/md+Wm4XeQvyiTKff3wucyCie4+LTpExPJ/+hjjFu3ETS5ZVIluKL78DYc3nSWrcd6MFho6XTvq4Tl/osV4eFMvHBMGcVLN9VlPv5KOKbYEdBuMMQMgVa9GpydWu1WfIBVWlmRsYIR0SPYtygbjZ+a4Vd3xKdEEdzG5OQGBZS6hWZQ9tQ80eOm0F2Vz4qMFR4JKP9AxbI4eX4q0eE1hbJK1CNUdRHKuvXQ+5XBwMl1LN/3Bp1NpXROfhuS3wYgwCcMofbD+Nmz6HN7gG+A0i/MlYrrRPFZKDqtxB6Ei4Pq0X8irSKBrG9OM2pOF/wbKZzg9yqgbNf9Qtc+dFOpMCanXHIB5aNRM/K6zqz46CDZPWfSY+hVjKpYz8rze/jjo3vxsZiU9Y+SbCWwakXxxYZr9UrYoIBwZY0rqG2T1yk2ZG6g3FzOgNwJZJ4zMnVubzS+anx690YVHIwhOcVjASWlpDlyLho2bUIEBJDWqjPRmuGknF1DSVWJ29lrAQZOjeX4tmyS55/guqcH1Qjc6xaBrdnfrjdnD1bx4Li/QeRgOLsL8k6gKTyFdu0mjEezCY87pwgilQZ8/MA/RDFv7zBaMXRo0w8iu/LTkqNsyj9Hx+XnaN8znPh+jYze0IzYHy//vn2VdbWUlEsuoIRKkDinCz//czenO82g19gZTNlzgp9O/IRh7ib0Kl9lxF2cpbzkygsvNtw34GK/0LdStA+NeADN1oupJ/ac30OOMYd7/Z/k7PEiRt/YhYAgXwhqi298PIbkFMJuv73e+tSqxsW1awjjpk0gBLqEBJKyC3l99+tklmS6DvTrhF6j2nI4+RyDzxsocWiiEizWjQoCwsiMG8r+PaU8PvhxmD1TcYrPO46q8BQBmzdhOJ5Hq1PJUGUAlY8ycPALUvwW2w9T1oKj+yvWqmoNVeVmUl7cRmT7QHqOaprbze9TQNn+VvrplRD6KSlEPvrIJW9HbLdAwoqOcTJyDCNKTSR1SGL16dXsyNnBiOgR0Kqn8rkELE9fTnt1PDkbzcT2UuKkgX2NZTjG5GSP1ljAHoCyaYJTSolxUzK6YcOw+PgS7TOC9KoVrD29llmdZ7ldj6+fD8Ov6cSaL49wdGs2PUZGe9yWpelL0aq1SoRmjQ6Cplfv0x39F4Xffot17rYa0aRdYbJKRpaqsFolo+Zcunh79WHXLAgfH3TDh2NI8WxdrbloFRdEdNE+zrQZRVF+FVM7TK0Z+T+yq/JpISxWa7WAWp6xnECCMWzUEdnejx6JF1+Y+sQECn+Yj7WiApWf61G+TwvNoAybkpWwX+HhTPGbwuu7X2d5xnLu73u/23Wo1Epq+oI398KpsovbBW5HM7enaJnaYaoyu+o6pdo3SXfhK3L/+U9Mc9ahaVNv/IRqdizJoKykiqS5fRqV7NSRKyGShOfYLrzJKtElJlBx8CDmwsJL3ozynbvofHw+VuHD1sUnSWyXiF6jr77hl4qiiiJSzqYw+dxtWC2SxNmda7yU9AmJmC9coPKEZxEYLNamhTkCqEpPx3T2LPpRo1ALQSAdiAmMcZrssSG6DGlFm47BbFt80uPEhiarqdrCUaepG7ZGn5iANJko27nTrfp8civoUK5i4JRYgiObsPjfnDi8j3SJCZizs6k6edJ1+Rai8kQq8Yd/wEcNKQtSqyP/X6p+YZGKUDFZTKw6vYrphXdRXmpi9I1da7wwdQmJyMrKBu+5ugXWoMyFhZTv349+lOIW2lrXmgFRA1iRscJj59h2XUNJ97OiTy+rTmzobjRzKWW1hWO0vu6gzx4BxOCmtfSFzFIOrM+kZ2JbWnVo+vrn71JA2S+72WK9GEJ/czOFd/EAQ/Im9NZi+oyO5tiWbArPVDC+/XjWnF5DpaXykrVj9ZnVtC7shDo9lAGT2xMcWXMGcNGnwTPTY7sVX1MwbFQcVPWjElEJ5d4ldUhiZ85O8srrJryrD0fz2h0eJjZ0tHB0hv/AgQg/P7eiSphNFkKPGSnxgf6TLkGmXDeRXDSUsDuNNyZKRlMxJm/C11TKoInRnDlcwOmD+UztMJVt2dvIL29inEA3sM+gtpzbgk+BnqDjcfQYGV3nhRkweBBC23BIHx+VqtlnUMbNW8Bqrc6ADUoU+JPFJzlR6Hkor62Bin/T5p+UxIYqIdwKXWm3cJwWP83pft+OHfFp3dotfyhplWyadxw/vYZhzRSH8vcpoGwX3myV+PXsiTokxOOXb3Ng3JRMwJAhDJ6phB/ZNO8EU+OmYjAZ2JTVMpEDnLHi+CrGZ9xMSOsABjjJ3KppFYW2a1ePX1ZWKZs8RTckb0LbuROa6GiELYBlUnwSVmmtkTPIXSLbB9JrVFsObMgi+6T70R+WZSwjyDeIxLbO452ptFoChg5x6znauewUvuVW9kYqa5FXEvYXqaZNG7SdO12WfmHYuAltt270nd6N0DZK5JVJbadgkRZ+O/Vbi5/fbFHWoJalLWfCyVvxD9Qw3EnmVpWfHwGDBzf48lWpmj+ShDF5E+rQ0BohoCbGTsRH+LA0fanH9ZWooLyTnpN7LpC+94LSZjck1LJ0xcJxYuxEp/uFEOgTEzBu2YI01a+1OLgxi5z0EkZc26luvrlG8vsUULa/JosVoVajGzkSw+YWCO9SD1VnzlB16hT6UaPw9fMh8YYuXDhTimZ/G6IColictviStONMyRn8dsXgXxHI+Nu6u3xh6hJGUrZnD1aj0el+ZzTVzNxiMFK2aze6REWNoVYpo7r44Hj6RPRhcdriRsX6Gj6rI/pQLeu+Plodcqo+SqtKWXN6DZPjJqOpxwJMn5BI1enTVJ0547LM+VMl7F15msJWGgoCryzhBDVTk+sSEinbuRNrWVk9RzQvltJSyvbuRZ+YiFqtYsxNXSnJr+DCOuge1p1f0n5p+TZYJUJVTt5WSaixDWNu6ubyhalPTKAqI4OqrLNO94Myg2pOASWtVgzJKegSEmqEgAr1C2VUu1EsObkEk9UzFbZVSqo664iI0bNh3nE0ZtngGpTJauLXk7+S0C6BUL9Ql+V0CYlYDQbKDxxwWaYot4yti07Svmc4XYc2X+SQ36eAsl14e2fUJSZgycuj8tixS9YGwyZlZGqfoncaGEWnQVHsXn6amcGzSTmbQm5ZC4VhcmDxplX0PJ9A51ER9Zpf6xMTwWTCuN39qBIWa9OcdMu2bwOTqVrPrhIXR6IzO80krSiNI/l1PdobwtfPh3G3dqfofBnb3VD1rchYQaWlkms61+/Q3ZC+3WyysParI+hCtJxp71cnkvmVgMlhkObpulpzYNyyFcxm9KOVex7dOYS+42I4uPEsV2lnc7TgKEfzWygMkw2LlGish+mXOYGo3n71Wlja04DUF5FGMTNvvsFvxeHDWAoKqvuFI7M6zyK/Ip+ULM+0HRarRKVWMf727lQaTLQ+WdHgutnms5vJr8jnmk719wvd8GGgVrtUhUqrZN3XR1GpVYy9pWuzGuX8TgWU8tf+0NidyC6lvt2waSO+sbH4xl5UqY2e0xWtTkPo1h5gEfx68tcWbYOxtILK1eFU6g2Mva7+aNH+AwYgAgI8CoEja+WY8RTDxk2oAgIIGKC4AKhUF50Hp3aYilatZVHaokbVHdM9jJ6J0exbc4ZzqfUbyCxKXUSnkE70DK/folITG4smJsalymfHrxkU5pQx9pZuVKlknVxQVwKOMyj/gQMR/v6Xtl8kb0IVGIh/v37V24bNjCekVQCWdVHorEEtrl2wmq0MPt0Wi8bEVbc5S0F3Ed8OHdBER2Oop19o1CqqzM03gzJstJuX13V+TWibQLhfuMfXSEqlf0W0C2RgUhxBuVVEl9bf5oWpCwn3CyehXf1BrtVBQfj36+eyX+xfl0l2WjEJ13dGH+qZz1OV2UpGnmutzpXXw9zgoorPFlE6MhJt9+4tH5fPhrWigrLtO9DVGgH56TWMvaUbJdlVzLxwb6NVWO4gpWThZ1vRVunocl0AGt/61U0qX190Q4di8CCEvsXaeDNzKSWG5GR0I0cgfJW8SI7e7YG+gUyMncjy9OVUmN2LQl6bEdd2IjjSn1WfHaa81HnyyhOFJziUf4hrOl/T4MiuWt++fTuyVjLMUwfz2Lv6DD0To2nfMxyzRTrNpnu5sQexBdu62pDBl2wdqtqlYOTIGpFdfHzVTLijB+UlZq459yBLTy5tUSOi6DP5hJVHEja1HP9A33rLCiHQJSZStnVbnXtux9dHRZWl+WZQhuRN+Pfpg09oXbWaj8qHGR1nsClrk0dGRBYpq2NmDpwSS0WQmsEXoPiCc/VuXnkem7I2MaPjDDSqhteL9IkJVBw+XCcZ5vmMErYuOklcnwi6DfdctZdVWMbY/2xwuf/3KaCqVXwO6oyEBMr27sVicC+0fFMo27kTWVnpdIreoU8EfcfF0Cq9Oz7pYezN3dsibTi44SwlxyUH4tcwefBot47RJSZgyspyO4S+VTY+kkRlaqqSYdghOaFaCBw1JVd3uppSUynrzjQur5evnw+T7+1FhdHMmi+PIJ2oNBanLcZH5cNV8Ve5VacuIQFZVkbZnovJKkvyy1nz5REiYvQk3KCEQjJZrEqg2CsMU61rUL2ulpnp4ojmo/L4ccy5uU4TUrbqEMSwmfHoMtsQe6Y/6zPXt0gbTu7JJeaCP/vbrOfqcc4X/mujT0zAajRStnef0/1atYpKU8Nrne5gLihQMgyPcm6sA0q/MEuzR0ZEjuvFah8Veb0CkUKy8tPDWEx1hevSk0uxSAtXd77arfp1I22WwJs3V2+rMJpY+ekhdCFaxt/evVGqvUpz/YL/yuthHuDYGfWjR4HZfElGi4b16xF+fgQMGex0//BrOxLVQc+Y9Bv5ZVfz+35knyxm80+pnAk9TJfREfUu/DuiH6UIMsM6914OTYkkYdi40XbOi0Jc1HIeHNx6MG31bVmYurBxJwEiYwJJuKEzZ44UsGvFqRr7TBYTS08uZWzM2HoXgR3RDRuG0GopXasITYvJyqrPDmO1Sibf26vaCMVivTJnUBZLLQFlWwsyrG8ZgeCI/Rw6F9lz+09qT1zfcIafnsnKrc3fTwuyjaz9+ii5ukyOt8shWOteSKyAYcMRGg2Gdc4HSlpN882gjMnJSoZhJ4NbO/Eh8fSJ7MPC1IVuaTuklEhZc73YGuDDljC4cKaU5AWpdcovSltEv8h+xAe7Zw7u17MHPpGR1f1CWiVrvzqCsbiSyff2arTVXtXlFFBCiBghxHohxFEhxGEhxGNOyowRQhQLIfbZPs83VG/1GpTDQ+Pfvz/qsDBKV69pxl/g5NxWK6Vr1qJPTHQZ4VetVjH1vr6oNQLt6k7k5Hnm71MfJXnlrPjoAFJfxdqO3za48O+Ib7u2aLt3p3SNe9fI0gQrvtI1a/Dr2RNN64vTfrWqZgBLlVBxbedr2Z6znfSiumkx3KVnYjRdhrRix5IMUnedr96++vRqCisLPbpGqoAAdCNHUrp2DVarlbVfH+V8Rgnjbu1+MVU1yuDI5wpcgzLVWsz3bd8ebefOLd4vAEpXr8G/b180UVFO9wshmHB7D1SBFqK3DOboqbRmO3eFwcSy9/djUZlY1fVzwoSL4KZOUOt1BIwYTumaNU4Fgq9a1eCL1F1K16zBp1Ur/HrWvx56XefrSC9OZ2dOwwYu9nG6Y2JRlUpw2l/Sf2J7Dm86y/51F2fQu87vIr043aN+IVQq9OPHYUhOxlpRwZZFJzl1MJ+R13WmVVzjHXIv9wzKDDwppewODEPJqOssHHWylLKf7fNyQ5XaHyFH00+hVqMfNxbDxo1YXeiSm4OKgwcx5+YSOHFCveX0oVqG3tEWXWUwC9/diamy6SqCspIqlry7H4tZsqbHl/SN6UWn0E4e1RE4YTzl+/ZhvtBw/pnGqvhMOTlU7D9A4MSaKhZlDapm2Ws6X4NGpeGH4z94fB47QgjG3tqNNh2DWfvVUc6eUIwmvjv2HbFBsUrYKQ8InDAB07lsNn+2g9Sd5xk6M55OA2u+dM0WK5or0IrPbKn7gg2cOIGy3bsxF7ifi8tTTGfPUnHkCIGT6leraQM0TH2wFyrpw5oPjlNuaHpfraows/T9/RiLqtjT/1cqfbSEqBqIel+LwAkTMJ09S+Xx43X2+fo0j4CylpVhSE4hcMIERAOqiakdphKiDWHesXkN1+skb5tKKDOlYbM60qFvBJsXpHJyj2JV/P3R7wnWBiuhjTwgcPwEZFkZu77awr7VZ+g9ph29xzQt1l6luf73YosKKClltpRyj+17KXAUaNov4uIalKlWZwycMEHRJW/zLDuqJ5SuXg0+PujHjGmw7JB+vTk1eAvW8xqWvLuPqgpzo89bbqji17f3YSiooPW1JlI5zE3dbvK4nsAJE0HK6ql6fVitjXPULV2zVjlXrZeVyknQzXD/cKbETeGXtF8wVDV+/dBHo2bqA70JivRn6Xv7Sdm1hwMXDnBjtxur89u4i27MaDI6XMWBPWX0TIxmoBPn5yvVSMLkRBUVOGECWK0uVVjNgX1WHjih/oEbQHxcO4rGHECW+rDojT2UlTReSFVVmFn2/gFyT5fS5Xod26zr0VWOrk7V7i6B48aBSuV0punro2pwpO8OhpQUZEVFg4NbAD8fP67pfA3rMteRbag3f2t1n3Lsq/YAtyqVYOJdPWnVIZhVnx1m19bjrMtcx7Wdr8XPxzOLO93QIZyNn8jOfdChbwQJN3Ruskl5pZP1MUcumY5CCBEH9Ae2O9k9XAixXwixQgjhdO4rhLhPCLFLCLGrvFyx+qrtm6AbPhxVQECLqTOklJSsXo1u6FC38+wkjU9kTeevyT5ZxC9v7cNY7Ln1UvGFMn7+126KcstIeqAPi4zf0UbXhtEx7hlHOKLt0hlN+/ZuqfmsDpZBnlC6ejW+HTvWSWPgKoDljd1upMxc1miTczv+el9mPt6PwDA/9n6ZT7eiwczsONOjOqwWK1tX5XEqdirtjAcZfaNzvw6T1erxS7AlcOwX4Dw1ubZ7dzTR0S2q5itdvQZtly413C7q49pRSSzv9gmFuUYWv7HHpbVZfRiLK1n8xl6y04qYcGd3Voqf0Gl0aCsGe+yj5hMejv+A/k77hbaZZlClq9egDg4mYFD9pu92ZnedDcC84/XPouxdqk66Ddt2jVbN9Ef6EhkbyLavs+iWM7y6bneRUrJr9VmOt7+aiOKjTLqzW5OjzMDlV/EBIITQAz8Dj0spS2rt3gPESin7Au8Ci53VIaX8REo5SEo5SGuLPFx7BqXSatGPGU3punVIS/NY3ThSmZqK6fSZOqqr+hgbM5bKuAscHbSagnMGfvzbzgb9dhxJ33uBBf/YRYXRxMzH+1MQmcnOnJ3c3P1mfFSeB6MXQhA4YQLG7duxlJbWW7YxZubmwkLKdu1yOpKuk0TNRu/I3gyIGsB/D/8Xk8UzD/ra6IK1DLs/mgv+mYw5eguHVpzH4ubLxVBYwZJ393NwQxbdokvpvPNjqk6fclr2SplBOfYLqLkua0cIQeDEiRi3bMFicD+SiLuY8/Mp27PHrdmTnb6RfYno7M/mfvMoK61iwd93kbHf/bTnWccLWfD3XRTmGEl6oA/+3UysPLWSaztfi9WqbdTLM3DCBCqPH69j8dgcZuayqgrDhg3ox493O7lqtD6aibET+fH4j5RU1X5tXsTiRMUnBDUcdX39fRgztyPnQk4wKv0GTvxa6rZGp9xQxcpPD7FjSQbxMVZ67fuQyv373Dq2IaoaeE+3uIASQmhQhNN3Uso65lpSyhIppcH2fTmgEUJE1FenPa2As84YOGEClvx8yvc2v3l36erVIASB48e5fYyPyoe7et/FRp9ldL7LFx+NikWv72Xd10cpySt3eVxhjpHfPjnIio8PEhTuz3V/GkSbjsF8duAzgrXBXN/l+kb/jsCJE8BkwrBhY73lGrMGZVi3HiwWp0K8tpm5I/f0vofzZecbFYesNt+f/prlvT4kdnAIu1ecZsHfd5JxIM+lRVRVhZm9q88w76Xt5KQXM/bWboy6ZzAC6XKmabZcGTOo2tQetNkJnDgBaTJhTG7+GJGl69aB1drg+pMjQgju7X0vBzXbCb+pBH2YH8s/PMhvHx+kINu1EC3JL2fd10f55a29aLRqrnlqIHF9Ivjy0JeohIrbe95eI2GhJwROUNpfe6bpq1Y3eQZl3L4Da2mpR0IclH5hNBmZf2y+yzIX16AcVHxOBoMLTy9gadePaJ+g43DyWea/uoMTO3NcRpwwmywc2nSWeS9tJ2NfHsOv6cikx4ah1qjdNrRqiIZUfC2aD0ooupHPgaNSyjdclGkNnJdSSiHEEBShWX/IY4dgsbXRjRqF0GgoXb3a7am0u5SuWYt///74RHqWnG5mx5l8uO9Dvjv/OR899wk7l2awf20mx7ZmE9M9jOguIQSG+YGA4txyMo8UkH2yGI1WzZDpHRgwORa1j4rjBcfZkLWBB/s9SICm4ZxFrvDv21cxGV21iuDprv2DrI0wMy9dvRqf6Db49ay7SC2E6wCWCW0T6BbWjS8OfcGMjjNQe5BN2JELZRdYlLqI6V2mc9WIAWQMziN5/gmWf3CA4Eh/4vpEEBatw9fPh/LSKrJPFnPmcD6VZWZieoQx+sau1ekz/Hr2pHTVaiLuvbfOeUxWieYKmEHVxlVIHruVa8mqVR4nrmyI0jVr0MTEoO3qWY6nUe1G0SW0C//N/IwFT//E/jVZ7Fp+ipN7LxDdOYR23UIJivBHpRaU5JWTdayQs8cLUalV9Bsfw5Dp8Wi0anLLclmctpirO11NVEAUZuuhGhZt7lJt5bpqFeF33Xlxu4+qwcX8hihdvRoREIBupGcGO93CupHYNpFvjnzDzd1vdtrv7QKmhopPJWr0tTJTGd8c+YaEdiOZPmEo54YWsnHeCVZ/foStC0/SoU8E4e30aAM0VBhNnD9VwumDeZSXmmjVIYgxj3Ujop0eAN2IEZSuXk2rPz/ToLFHQzSk4mvphIUjgVuBg0KIfbZtzwLtAaSUHwHXAQ8IIcxAOTBHNmD8XzuShCNqvR7dqFGULF9B1J/+VCMYY1OoPHmSyqNHiXrmaY+P9VX7cmevO/nXzn+xM287I64dQe+x7Ti08SwZ+y+wbXFNE+vwtjqGzuhAz8S2NTzh3937LnqNvlHGEY4IlYrAyZMp+vFHLKWlqAMDnZbzNFispagIw+bNhN10k9N1G7VKOF3EB2VEfX+f+3liwxP8cvIXj0xgHfn4wMdYpIW7et0FKI7T7XuGkbrjPKk7z3NwYxZWh7A1/oEa4npH0Gt03VTyQUlJ5P7731SdOoVvXFyNfWaL9YpQ8dXGmRUfKFaugZMnUbxoMRaDEbW+bk6sRp2vsBDj5i2E3X6bxwvmQgju7XMvf9z4R5afXsbMqTPpmRDN4eSzpO25wI6lGTVyXAVH+TNgciw9R7VVBnQ2Ptz/IVJK7uylCBVLI2dQAEFTp3LhjTeoysrCt107QFmDMllko42GZFUVpatWEThmtEvXlPq4r8993LriVr4+8jVz+86ts9+pmXkti9lvj35LUWUR9/W5D4DozqHM+esQ0vdd4Ni2HI5uycbsMJvRBvjQrlsYPUdF065raI17GzQtCcOGDZTv3k3AYOe+oO7SkOBvUQElpUwB6r2jUsr3gPc8q1f560zFBxA8fTqGtWsp274d3QjPRiyuKF6yBFQqgqc5z5vSELO7zua7o9/xn93/YUGbBQSG+TF8VkeGz+pIhcFEuaEKq1USFO6PRltXqG7L3sbGrI08MfAJtx0Q6yN4xnQKv/2W0lWrCLn2WqdlLFbPsrGW/LYSTCaCZkx3ur+hJGrj24+nb2Rf3tv7HlPipng8SzxZdJKfTvzE9V2up33QxTxNarWKbsPb0G14GyxmK8aiSqoqLPjrNQQE+bpMHx901TRy//MfipcuI/Lhh2rsM1vkFaricz0iDZ4+naJ5P1C6ZjUhV1/dLOcrWbECzGaCZ3hmjGJncuxkvo74mnf2vsOkuEn4B/ozKKkDg5I6UFluprykCovZSmCYH77+dV9XqYWpLExdyE3dbiImUEmVbnFI+e4pwdOSuPDGG5QsXUrEXEUY+Poo97nKYsWvETN7Q8pmLEVFBE133i8aol9UPya0n8AXh77gui7XEeFfcwWk2oqvlpm5fWaVV57HZwc/Y3z78fSL6lddRqgEHQdE0XFAFBaLlbLiKirLTPjpNAQEu17HCxw3DuHvT/GSpU0XUFeKFV9zUh3qyMXLTj92DCq9nuIlTV/PAMU5t2TJUnQjRnis3rPjq/bl8YGPk1qYWicQpJ9eQ2hrHeHReqfCyWK18J+d/yFaF83N3W9u1Plr49e7N5rY9vVeIynxqKMXL1mCb8eO+PVw7oOiBIt1fbwQgqcGPcWF8gt8cegLt8+rtFXyn13/IcAngAf6PeCynNpHRVCEPxHt9OhCtC6FE4CmVSsChgyhZMmSOutXJqv1ClXxub7A/v37o2nblpJm6hcAJb8uQdu1K35duzTqeCEETw56ktyyXL46/FWNfVp/H0JaBRDeVu9UONnvuU6jqzGzaIqA0rRtS8CgQRT/evGeax0EVGMoXvIr6tDQ6iSSjeHxgY9jsph4b2/dsby9nbXNzO1rUO/ufReT1cQTA59wWb9arSIwzI+IdoHoQ/3qnSmqdDoCJ0ygZOXKJvucVlms9SZF/X0KKNtfV6NFlVZL4ORJlK5ahbXctSGCu5Tv3Yvp7FmCXcwM3GVy7GQGRA3g9V2vk2PMcfu4Lw9/yfHC4/xh0B/Qqj1XEThDCEHwVdMp274dU47ztnhiZl6VlUX57t0Ez5jhctZldx6sj35R/UjqkMTnhz7nWIH76VOWZSwj5WwK9/e9nzC/MLePa4jg6VdRdfo0FQcP1thuuUIjSdQnoIQQBE2/CuPWrZhym54KpurMGcr37WtyvxjYaiCT4ybz6YFPPcom+8vJX9hybgsP9n2whlbBbG3a7DZo+nSq0tOpOKKkgrHPoBoa7TvDUlqKYe06gpKSEJrGJ/GLDYrl5u4383Pqz2w9t7XGPvstd1yDEjYV37bsbSxMXcjN3W4mNsg9FwB3CJ5+FdbiYoybmmZ0U2m24ufjelZ65fUwN7C/4+pTFwXPmInVaFQs75pI0aJFCH9/AsePb1I9QgheHfkqZmnm+c3PuxVn61jBMd7f9z6TYicxKXZSk85fm+AZ00FKihc7TyLniZm5vY7gq1yrQNVCuJXl889D/kywbzB/SfkLVZaGR2g5xhz+tu1v9Ivs12wzTDuBkyYh/Pwo+vmiAaqUEpNFXqGRJOp/iQbPmAFWKyW/Nj0VTPHixSAEQY1Uezvy7NBnCfQN5C8pf3HL1eCs4Sz/2PEPBrYayI3dbqyxrylR+AGCpkxG+PpSbLvnTZlBlaxYgayqarIQB3i4/8PEBcXx/JbnKa266CJi71PqWlZ8qMr4a8pfiQuK46H+D9WprynoRoxAHRlRo180hkqTpXoA4Izfp4DCeSQJRwKGDMY3Lo7CeY0PoQNgKSmhZOkygq+ahkrX9IXlmKAYnhr0FFuzt/L2nrfrLZtXnscfNvyBUG0ozw17rlkTgQH4xsYSMHwYhT/Od+o3Jt00M5dmM0ULFqAbORJNW9eBQkQ9ZuaOhPiF8NKIlzhReILntzyPVbo+yGgy8ocNf8AiLfwt8W+N8g2rD3VQEEFJSZQsWVLtQ2QfGF2RM6h6+gSANj6egEGDKJz/Y5MyUEuTicIFC9CPGlUj3mJjCfML44XhL3Cs4Bgvbn2x3sGbocrAE+ufQErJawmv1bH4bGogX3VwMEFTp1D8yy9YjcaLa1AemppLKSn84Qe0Xbrg16dPo9tjx8/Hj78l/I0LZRd4csOT1YLcvtbk2FUlJvzb/kB+eT7/SPwH/j7+TT6/I8LHh5BrrsWwcSOmc+caXU+l2YpOuDaUuPJ6mBvUTljoDCEEIbNnU753LxVO4mu5S/HiX5AVFYTMmdPoOmpzfZfrub7L9Xx+6HO+PPSl0zJFFUXcv/p+8srzeGvsW4T4hTTb+R0JnT0H87lsp9kyLdI9XX7p+vWYz58n9KYb6y2nVjmPJOGM0TGjeWzAYyxLX8a/d/7bqZAqN5fz2LrHOJJ/hH8k/qN6kby5CZ0zG2tZGSVLlwAX1WievAQrTrivumoKtYPFOiPkxjmYMjNrpE7wlNK1a7FcyCPkxubrF+Paj+PBfg/y68lf+feufzsVUmWmMh5Z9wiphan8e/S/aauvOyBqyhqUnZDZc7AajRQvW4avzRLYUwFVceAAlUeOEnrTjc02uOwd2ZsXhr/A1uytymzTaqruU/bfbLKa2FD4Dj76Ezwz5Fl6RtQfmLaxhFx/PUhJ0U8/NboOdWE+b//8nMv9v0sBZaeh0WLIrKsRWi2F8xoOuOgM+wjIr28f/BuIPuwJQgj+MvQvTIqdxBu73+DPyX+uXpOySisbMzcyZ9kcMoozeGvsW/SJbProyxWB48cpU3UnM02rlPUuYNopmjcPnzZt0I+uP/SSq0gSrri7193c0v0Wvj36LQ+tfYiM4gxAuS+7z+/mluW3sCNnB6+MfIWx7ce6Xa+n+PXujbZHdwrn/WBT7ykvKk9MmQu/+balmleDhvoEQNDEiajDw5ukXSic9wOatm2d5n5qCnP7zOWmbjfxzZFveGTdI5wqPgUo93xnzk5uXn4zu8/v5tWEVxnVznnKCrPV2mgzczv+/fuh7dKFwh9+wNc2EPHUF6rw+3modDqCrmq6es+RWZ1n8cTAJ1hxagV3/XYXqUXKAFwlBEfzj3L3yrs5WbaZivNJzOzYOHcNd/Bt1xbdqESKFvyENDUuAkyXHWvQV7p2zG5pP6gWwf6Oq8+kFkAdEkJQUhLFv/xK5KOP4hPm2eK5MSWFqvR02vz9741tquu2qdT8a9S/iD8Qz2cHPmNZ+jKi9dEYTUaKKouIDYrlqylftahwAhAaDaHX30Dehx9SefIk2o4dq/dZ3dDlV6amYtyylcjHHm0whEtDZuZ12iYEfxr8J2ICY3hrz1vMWDyDNro2mKwm8srziPKP4v3x75PYrnlfks7aEXbTTWT/9TmMm7dg7q+Y1rq7EG/Oz6e4GdZ83KGhPgEgfH0Jue468j/5hMqMDLQdOnh0jopjxyjbvp3IP/yh2fwMq9smBM8MeYaYwBje3vM20xdPp42uDVWWKvIr8okKiOKjCR8xoq1z9xEpZZMSbTq2I/SmG8l58SX0R/cDns2gTLm5lKxYQch11zabz5kjd/W6i9YBrXlt+2s8kXI7uk5B/PuoLyUH8gjyDWJixBMsPNrKo/7WGMJuuonM++dSvHQZIbOu9uhYa3k5PXet4Uhsbzju3CDqdzmDqg515MbFD7/3HmRFBQVffuXZOaQk77338YluQ/C0pMY0s0HUKjUP9XuIpdcs5eH+D9Mnsg/j24/nn4n/ZNGMRS0unOyE3noLwt+fvI8+rrHd6oaZed6HH6IKCHBLBapSCTyYQAHKi+Km7jex/JrlPDXoKQa0GsDI6JG8NOIllsxa0uLCyU7QjBn4tG5N3kcfVqvR3DUzz//8i0aPMD3FnT4BEHbbrQitlvyPP/H4HHnvf4AqMJDQOZ4FHHUXIQS39LiFFdeu4MmBTzKg1QAS2yXy8oiXWXL1EpfCCRzWB5vBgCV41ix8IiPR//g14JmAKvj8c6TFQtgddzS5Ha5Iik9ixbUruLf7k1iMnegY2I9nhz7L8muW0yNoDOC+Sr2x6EaNQtutG/kff+xx/NPC+fPRlZWQMsh1ZJPf9QzKYpVIWb8zqTY+nqCpUyj87jvC774LdUiIW+cwbtlC+f79tH7xBYSvb8MHNIG2+rbVHt6XA5/QUELnzKHgq6+IfOjB6qgJijWU6+Mq09IoWfEb4ffei09owxlrVfWEOmqICP8Ibu95e6OObQ5Uvr6E33035197DdWuXYB7RhLm/HwKv/+eoKumwdEjLd3MBq347PiEhxM6ezYF335LxEMP4hvj3vpdxfETlK5eTcSDD7od0b+xRPhHcEevOzw6xi6g1c3go6bSagm7+y5y//FPegQPp9LinlOq+cIFCn+YT/CMGfi2b9/wAU0gyDeISe2v4Y2FkcwZN4Ckbm0AEELJ/dUEOxi3EEIQMXcuZx9/nNKVKwlKcm8wby0vJ/+zz0mP6U52bDeX5X6nM6iL1GfJZyd87lysZWXkffKpe/VbrVx45x18Wrcm+JqW0+FeSYTfeQdCo+HCO+9Ub1P8oFx39AvvvofK35+wO+9w6xzOAlj+ngi5/jrUERGUf/AeQrq3zpH/yafIqioi5rp2Hm5O3OkPdsLuvguhVnPhnXfdPubCu++g0ukIu+3WxjSvxbHPoBqbCbo2oTfcgAwJ5Y4jK6iscm+GkPfxJ0izmYi59zdLGxrCLoRqBou17bsE/S1w0kR8O3bkwjvvuu24W/j9PCx5eawePB3t/z8/qIsXvT5LPjt+XboQfM01FHz9NRXHG7amKvrxRyr2HyDyscdQtfDs6UrBJzKS8HvvpWT5CgwpinVXfQLKsHEjpStXEnbP3W7NnsB9M/MrFZWfH1FPPIH14H4mnt6JpoEZVMWRIxR8+y3B18xCG+/ZOk9jcac/2NFERRF2152ULFmC0Y0kn6Xr1mFYs5bw++93WxNxqbHUsmhrKqqAANT3PEDv/HS0639rsHz5wYMUfv89Iddf53ZurKbiNKOu7Z/Gaiw8QahUtHrmGapOnaLg888bLG86e5YL77+PblQix6I6/n/0g7qIuyPGqD8+hTowkJwXXqhXV2rKzSX39TcIGDaM4KsbF1/s90r4vffgGxtLzssvYy0vd7kGZTUayX7pJXw7dSTinnvcrt8TM/MrleBZV0Pvvtx9eBlaQ5HLctJsJvuvz6EODaXVH/94SdomcM+Kz5GIuXPRtG9PzgsvYq2ocFnOYjCS8/IraLt0IdzNGfPlwGJpvjUoO34zZ3E4LI6Ibz7GXOg6l5s0mch+7nl8wsOJevLJZjt/Q9Q2M4eLs6lL1d/0iQkETplC3kcfU3X6tMtyUkqyX3wJgDYvvECV2VrtCO2MS5EPaooQ4rgQIk0I8YyT/UII8Y5t/wEhxICG6lQcSJXv7lqp+ISG0urPz1C+bx8X3n7HaRlZVcW5J59CVlXR5sUXmt0x9kpHpdXS+qWXMGVmkv3CC1itdeNkSSnJfu55zNk5tHn5FY/W5zw1M78SESoV1sefxs9SRat3/ubS+CH3zTepOHKE1n/9K+rgpgf3dattQrhtJGFH5edHmxdfoOr0aXJeetmp75G0Wsn+y18w5+bS5uWXmhSyp6W5uAbVfK82ra8P7/W9FlV5Geee+iPS7DzRX+5/Xqfy2DFaPfdXlxkCWgJnoY7s3y9ld2v152cQfn5kPf4EVqNz0/HCr7/GmJxM1OOPo2nblkqz9fKp+IQQauB9YCrQA7hRCFE7kuhUoLPtcx/woTt1B/gq9h3uLgrzf+2deZhUxbXAf6d7gGEddhg2QQMuzAyIDKvLIDJEjKBxC4ISfYrKQ5++ByJReYisiclLniYYFCMmT9wRBIKIggiBCIMoIKtm1HGQfUe2mXp/9O2e7p6epftWT9+5Xb/vm2/63lt9+tylblWdOnUOvhhbDW+5hQOzZrF/5syQylh84gQFj/wnJ9etI33y06XSKyQLdXv1pOmDozm64D1uXTWXlKAFsursWX7474kcXbyYZo88Qp1ul0Yl2+MRbCYmdQTn2nXg2S43UXvTBr7/z/8KifeoiovZ99wfOTj7JRoO/QUNfjqwyvQSia4++Knbpw9NR43iyLx57JkyNeQFrM6cYfeECRx7/32ajxlD7a5dNWqsn8BoQmPnsmaKh/y0dP417AFOrF7N92PGhow2VXExe//wBw7OmUOj4cNpkKs3JFlFBKKZhwSLDT1WFdRo0YLWv/k1p7dv57v7H6Do8OHAMaUUh+bOZc/0GdQfMIBGw30hyU6fK6JWjbKboXh78fUAdimlvgYQkdeAIUCwO9MQ4BUrB9RaEWkoIulKqd1lCS1WitQaHo6fhsWbdtOobhTzRDfcQ8vdB+EP/8s3Sz7iWJ9+eE79SNqHC6mxbw/7fjmaHW27wcbvozrR9LTa9OigL0jpxzv2cfikvUjBMdN7ME3/tYer3nuDjFnfcOCsbyX84bff4fSOHTQZOZIm91betOfHI3DqbBHzo7y28eKS9AZ0bBFdT3f7D8dYvn0vy87LZuRlzWH2c3w9eAiNbrsVqV2bowsX8eNnn5E2ZAgtH388TppHRoBd+47Hdn2vuJFm+Xvgb39j96o1HL1yIKhi0pYvoVZBPgd+Ppwdlw4IqRf1U1Pod2FzbZaGDd8e4ruDJ23JOHTCV2d0mvj8cyQfdOhFg+Gn4W9/ZtPGTRy5ehCqZi3qr/6I2ju/5EjOQHYMuqPMd8dl5zWiTaOSFDKbvz/CV/uO29bv632+0UpoynffxpLNP9CkXhXOoze4gPqjxtFy5m/Ycd31/HjtDRytVZd661dT9/P1HL+0BzvveJi8L3yv9xOni6hZzmg33g1Ua+C7oO0CoGclyrQGQhooERmJb4RFzZY/4eL0Bnyycz8T34vBdbfJT7m2ayN+sX0ZLbb7PJi2N2zL7D73selwe3htY9QivR5hy1MDSa1hf+HidwdPMuKlT23LsYW3B5dn1+Kh/A/ZO30GADV/cgGtn/1fGkRI514ZmtStxfHT5/iPGK5vPOjcqgGLHopuHdW/v7qBXXt9L5W6tw+j3eXd2PvMb9n7zG8BqNGqFS2fnkTDm2+uEhNxcL2ok34Bq3cdYPWu8hNSl0nN3lyRXZs7t75Pm1f+BEB+/RbM6flL1hZnwOufl/rK4oeu4JJWetzNb39hLadiiBgeCZ0v5dQUDw1SU5i/sZD5dOTSPiO5a8siOr7q8wr+oU4jZl56Kx+kZcMbm8qUM+CSFrxwZ0mW75GvrKfwSNnzftHSOKij3tQ6/0kL47+0oTRN6HT5KB7c8Xd+8rcXqQ0crFWfVzv/jHfbXUnxO1tDSrdokBpZDCCViagdKyJyCzBQKXWPtX0H0EMp9WBQmUXANCu5ISLyIfCoUiqvLLlZXbupzz/L4/vDP0YdHysYpRTs3wc1aiI2vJLeWF/A8x9/xaaJudRPtW+f37HnGLn/s5L/vv4SruoUW/4pXbRrXAcOHgARUpo2rfgL5VBcrPjm4MlKRXGPN08v/JJvDp7ko//Kiep7fad/REbrBjw1OIOWaSUV69yhQ6gzZ0hpXvaIQkTylFLdIx7UQLfLLlNvLflYiyy1fz94BGncJOLx9fmHePTtL3j7gT5cdl7lvDjL/T2l6DB+MSN6n8eIPu1tyaqZ4gkZqejg8MkzHDwRatFQhw5B0Tlo0rTCzsiDcz+jcd2a/PXfSvrnl05aylWdmvFQ/4629atTMyXkeQQoOHTS1vvRDk+8u5mde4/z44FDjO7digFXZkZMD+8RoV3jOni9noh1I94jqAIgeAVgGyA89G1lyoRQM8WDiOh5CJvbn8xsVt+Xo0mXC7Xfbpyelsr5zerpEWqHGJM0huPxCB2a6g/7EgsNatcIRIGOhmKlSKtdo9TLoLKu9vHEI6LvealATuFhX89fl9OL/1Y0qVfLGc98GA3r1KRhnbBRWRR61qnpLTUfVFSsaFinZtzOV3cjHQ31aqVwtqiY4zXrkHZeWy5oEdsoO95efOuAjiLSQURqAr8AwoOSLQDutLz5egFHypt/ciJ+26++yuoPn59cXoRViUfKz+5bFhUtXk4WAs+8pkn4SGt53IRE8GCtbDqb6ojXI5y1Rm92HFbiOoJSSp0TkdHA+4AXeEkptUVE7reOPw8sBgYBu4CTwF3x1CkeeDUviou0MtygF5HYPJyKik3HAUquga5n3n8v3HptPVLawlIURcbq6obHI4E1quWlj6+IuMfiU0otxtcIBe97PuizAvSme6xiRPOiuJKFd1rEGSLgFYlpLkwpZe4LJZ0yXdOJfjm6IkA4Da9HSi0BKK5kvrXqiFckkIHYTn0xVU0DJeYOPfKKjIkv7ngqmX4+nCJj4gOiXyhfEUUuN/FFet6KXTwajxTVIhZMA6UBr+YRlL9nr3OxoSEUjyfGOahK5MhKBvxmG91WA7de20hznsUuHo2HBK610etw6eWpWvw3Q1tv0sxBxR3fnEAsXnzmvoD+WG/+e+HWaxvpeXPzaDy44bXT0TYNlAY8mu3xgd6kuTtxw+uJLS6gm3u90RCwGmgyaxcnwRxU8POmlHK9F58fO04SpqppIGCPN73JakO06ef9FBkTH0AgiLBuLz6Xtk9I2PMWKcCrmwjNTeVgL75kwKvdHh8qVwdnz56loKCAU+WkVEgmBrYu4opmzdi6dWvFhYP443UtqFfrbLnfS01NpU2bNtRwcNRvu5R48emdd7XT23YyPq/Rkm23e+oGv7vsvMdMA6UBvyeOrsoaj0WLBQUF1K9fn/bt27vWcygaCg//yMETZ7i4dXSpMM4VHKFZ/Zq0TKsd8bhSigMHDlBQUECHDlWTpDARlMxB6ZHn+hFFWC40ty/GD0n9YUx8icUbcJLQI68oDh5Np06dokmTJq6tENES62VQKHxxw8uSKzRp0sT1I1Xd6RyKXO65Gu5m7p+7c/OcW+CzcZJILLpDHak4udyaximUaO+WCvR6yy+XDNdZ++L04spd2+qKpwwTn0vbpzAnidjlmAZKA/4hrHEzj57f//73nDxpLwdQLAhE30IZAmh3M3f9OqjQ90M8rCROQpeThGmgNKA7vXIyuZnH0kAVFRVp+GUh2hbKX9qdr5ToMG7m0eEJdzN3eSc0ZB2UmYNKLAF7vHEzL5cTJ05w3XXX0aVLFzIyMnjqqacoLCykX79+9OvXD4C5c+eSmZlJRkYG48aNC3y3Xr16TJgwgZ49e7JmzRomTZpEdnY2GRkZjBw5MmB+W7duHVlZWfTu3ZuxY8eSkZEB+Bq1sWPHkp2dTVZWFq/85UUUUTq2mBFXgHi5mbvskQ/gEQlZqOv20E5eTU4ScfPiE5HfANcDZ4CvgLuUUocjlMsHjgFFwLl4JnSLF/qDxfr+x6s3+dR7W/iy8KhWmZe0asB/X9+53DJLliyhVatWLFq0CIAjR47wl7/8heXLl9O0aVMKCwsZN24ceXl5NGrUiNzcXN59911uuOEGTpw4QUZGBpMmTfL93iWXMGHCBADuuOMOFi5cyPXXX89dd93FrFmz6NOnD4899ljgt2fPnk1aWhrr1q3j9OnT9OjVh4weV5DZOiv6k3XpSyUa4uVm7tYRlDcs1FGxy8/XUw2cJD4AMpRSWcAOYHw5ZfsppbpWx8YJguzxJnBmuWRmZrJs2TLGjRvHJ598QlpaqIv3unXryMnJoVmzZqSkpDBs2DBWrlwJgNfr5aabbgqUXb58OT179iQzM5OPPvqILVu2cPjwYY4dO0afPn0AuP322wPlly5dyiuvvELXrl3p2bMnhw4e4Nt/fRXVoMiY+EooCe+lR57r52Q8hHnxudvNPLhRcuQ6KKXU0qDNtcDN8fqtRFMSLFaPvHh58fmpaKQTLzp16kReXh6LFy9m/Pjx5ObmhhwvrzeempqK1+sFfC7zo0aNYv369bRt25aJEydy6tSpcr+vlOLZZ59l4MCBAOw9eoofjkbrCm6aKD/++VF9XnyWXJe+sD1h6V2SYc4t8NmhI6hg7gb+XsYxBSwVkTwRGVlF+mglXhl13VZZCwsLqVOnDsOHD2fMmDFs2LCB+vXrc+zYMQB69uzJxx9/zP79+ykqKmLu3LlcddVVpeT41xg1bdqU48eP89ZbbwHQqFEj6tevz9q1awF47bXXAt8ZOHAgM2fO5OzZswB8tWsnJ0+eiGpeyX973XVXYqPEMci5i9OdRHg0c7efryMiSYjIMqBlhEOPK6XmW2UeB84B/1eGmL5KqUIRaQ58ICLblFIrI/zWSGAkQLt27eyorZ1A6gHNbuZu611t2rSJsWPH4vF4qFGjBjNnzmTNmjVce+21pKens3z5cqZNm0a/fv1QSjFo0CCGDBlSSk7Dhg259957yczMpH379mRnZweOzZ49m3vvvZe6deuSk5MTMCPec8895Ofn061bN5RSNGzchBnPvxKb34ODbkui6kXJ4nTdSToddHE14vWExuIrcqkjlJ9QE1/scmw1UEqpa8o7LiIjgJ8B/VUZXS2lVKH1f6+IzAN6AKUaKKXULGAWQPfu3R3lT6U/7Is7PZoGDhwYMLH56d69Ow8++GBg+/bbbw+ZO/Jz/PjxkO3JkyczefLkUuU6d+7MF198AcD06dPp3t03renxeJg6dSpTp04FYN+x0+w+8iNUEBkiGCca+BJVL0yoo+gQCbWwKJefry4TXzy9+H4KjAOuUkpFXOgiInUBj1LqmPU5F5gUL53iRbzczN3am4wnixYtYtq0aZw7d47zzjuPl19+OWI5/5XVtXYt2dA9BxUYUbj0mfeW4Wbu1jruDTotRzpJAM8BtfCZ7QDWKqXuF5FWwItKqUFAC2CedTwFeFUptSSOOsWFeLmZu7V3FU9uu+02brvttooLxnJpnTiEShC6I0kol8/JhGdwdquVxI+ulO/x9OL7SRn7C4FB1uevgS7x0qGqKFlVr9fN3K0Pr5Mwbuaxod3N3OVzMiKR3czder4eTU4SJpKEBnTb4wOLFl368DqB2K6saaL8aHczd7nVwJtkbua61kGZBkoDHt2pB1zeu3IUMUQ6MndF/+J0t7tdh2dwdnsG4eq2DsrV6F8TYsl169PrAPx1Jqo7ZlqoALoXp7vdzbysOSi3dkLNCMpB+G+A/mCxWsQZIhLw4wvZu379eh566KGI3zDtUwnxCxbrzqsbWMxvnafrGyhNsfhMyncNlESS0CPP7b1JJxCpeTp37hzdu3cPrJ0ylI2I4BGdwWJ9/936zHuDvB49iOvnoEJMfCZhYWKJm4nPRb2r/Px8LrroIu655x4yMjIYNmwYy5Yto2/fvnTs2JFPP/0U8KXkuPvuu8nOzubSSy9l/vz5ge9fccUVdOvWjW7duvGPf/wDgBUrVpCTk8PNN9/MRRddxLBhwyLeh5ycHB5++GH69OlDRkYGeXnrAHj6qacYOXIkubm53HnnnaxYsYKf/exngG9x8F133UVmZiZZWVnMe+cdAJYv+4DevXvTrVs3brnlllKLiJMFX/geMwdVGQLRZqzL5Xo3c6cHi00mSlxuq0ksvr8/Bj9s0iuzZSZcO73cIrt27eLNN99k1qxZZGdn8+qrr7Jq1SoWLFjA1KlTeffdd5kyZQpXX301L730EocPH6ZHjx5cc801NG/enA8++IDU1FR27tzJ0KFDWb9+PQCfffYZW7ZsoVWrVvTt25fVq1dz+eWXl/r9EydO8I9//IOVK1dy3/0jeX3pagDy8vJYtWoVtWvXZsWKFYHyTz/9NGlpaWza5LtWhXv2s3PPAX7z6+ksW7aMunXrMmPGDH73u98FUn8kEx6PGDfzShK+bszti/GDwxs5ch1UMqE97ItL56A6dOhAZmYm4AtJ1L9/f0SEzMxM8vPzAV9ajAULFvDMM88AvsCw3377La1atWL06NFs3LgRr9fLjh07AnJ79OhBmzZtAOjatSv5+fkRG6ihQ4cCcOWVV3Ls2DGOHjkCwODBg6ldu3ap8suWLQsJONuoUUO++Psytm/bSt++fQE4c+YMvXv3tntpqiU6TXxutBoEEx5Q2v3na0ZQjiGwJkTzQt249a4qGOnEi1q1agU+ezyewLbH4+HcuXOA74X39ttvc+GFF4Z8d+LEibRo0YLPP/+c4uJiUlNTI8r1er0BWeEET8ALJeaVunXrRiyvlAr5jrL29bu6P2+98XrFJ+xyvGGu03Zw+7xrwJHKul5uHzHqcpIwc1Aa0B32xV/n3erRVB4DBw7k2WefDfTMP/vsM8CXfTc9PR2Px8Nf//pXioqKopb9+uu+RmXVqlU0SGtA/QZp5bqZ5+bm8txzzwW2Dx06RFa3bP65Zg27du0C4OTJkyGjuWQiPIWEHdw+ByVhVpZkCO0U6XPUcnQok+zEw83crQ9uRTz55JOcPXuWrKwsMjIyePLJJwEYNWoUc+bMoVevXuzYsaPMUU95NGrUiD59+nD//ffz7J9mVVj+iSee4NChQ2RkZNClSxc+XrGCxk2aMvOFFxk6dChZWVn06tWLbdu2Ra2LGwiP0G2HZHMzD2QQdmlF94+a7I6IjYlPAxKwL+uRV6yU60wd7du3Z/PmzYHt4Cjjwcdq167Nn//851Lf79ixYyCNBsC0adMAn3deTk5OYH/wiCecm266KfC9oz+eJf/ACR5/cgJ1apZUg2B59erVY86cOYFjJ06f46t9x7kqpx/r1q2rxFm7G69Hnxef693MPaFWFrfPQfnP1264NjOC0kA8gsW6tSdZnTELdUMJD99jB7eH/vHX56IwLz63nq+/4bWzBgri2ECJyEQR+V5ENlp/g8oo91MR2S4iu0TksXjpE0/0px4wgWJ1s2LFipAFuIFQR7GEMzdNFFA6fI8dXB9ZIbBW0redLE4hdt9j8Tbx/Y9S6pmyDoqIF/gjMAAoANaJyAKl1Jdx1ksrnjAPHbsUJfEclLPxe68kVgun4JE4BIt16YPvP61k8+Kzez8TbeLrAexSSn2tlDoDvAYMSbBOUeOJpTdeDsVKubaiOoVYrq4x8YXi1RpJokSmG/Ek6xyUwxuo0SLyhYi8JCKNIhxvDXwXtF1g7SuFiIwUkfUisn7fvn3x0DVmwidA7aKUex9cp6GpT5EwElkvxLiZVxpPmIkv4Gae6CFCnAh48SXSSUJElonI5gh/Q4CZwAVAV2A38NtIIiLsi/jIK6VmKaW6K6W6N2vWzI7a2vGETYDapajYfV58jiOGSSh/USf1HRJZL3R68QWcBlz63HvDcsYFFuM76WHSiL/hTaiJTyl1jVIqI8LffKXUHqVUkVKqGHgBnzkvnAKgbdB2G6DQjk6JILx3ZJdiZeag7JKTkxOI1ReJ8GjmBw8eZMCAAXTs2JEBAwZw6NChuOtY3fFoXAfldpNXqVh8Ll+M73g3cxFJD9q8Edgcodg6oKOIdBCRmsAvgAXx0ilehE+A2sXXQLnzwXUq06dPp3///uzcuZP+/fszfXrpcFBmDioUX7BYvW7mrh1RJFuwWE0LdeNpAf21iGwSkS+AfsAjACLSSkQWAyilzgGjgfeBrcAbSqktcdQpLuiegyoudl9P8sSJE1x33XV06dKFjIyMQNihSZMmkZ2dTUZGBiNHjgzY5nNycnjkkUe48sorufjii1m3bh0///nP6dixI0888QRQksJjxIgRZGVlcfPNN3Py5MlSv7106dJS6THCR1Dz589nxIgRAIwYMYJ33323nLNx172JFY+IVqsBgLh0TiY8oLTr59wCXnz25MTNzVwpdUcZ+wuBQUHbi4HF8dKjKgjE2dK4UDeeD+6MT2ew7aDe8DwXNb6IcT3GlXl8yZIltGrVikWLFgG+2HoAo0ePDqSquOOOO1i4cCHXX389ADVr1mTlypX84Q9/YMiQIeTl5dG4cWMuuOACHnnkEQC2b9/O7Nmz6du3L3fffTd/+tOfGDNmTOB39+/fz+TJk0ulxxjz2K98BaxbtmfPHtLTfYP+9PR09u7dW/okApNQsV0jt+GRapRiJsEknZu5E5wkDCX47PF6ZLnRzTwzM5Nly5Yxbtw4PvnkE9LS0gBYvnw5PXv2JDMzk48++ogtW0oG0IMHDw58t3PnzqSnp1OrVi3OP/98vvvO5/zZtm3bQOqL4cOHs2rVqpDfXbt2LV9++SV9+/ala9euzJkzh2+++ca4mWtAb8JC33/XmvjCrCz+y+a2eu5H1zooE4tPE16PaA4WG78Ht7yRTrzo1KkTeXl5LF68mPHjx5Obm8ujjz7KqFGjWL9+PW3btmXixImcOnUq8J3gdBzhqTr8KTXCJ5nDt5VSDBgwgLlz54bs//GMld7D2m7RogW7d+8mPT2d3bt307x5cy3n7WZ0NlAlwWK1iHMcAROfleCxKElMfGYE5RBEc2/SbZOnhYWF1KlTh+HDhzNmzBg2bNgQaIyaNm3K8ePHeeutt6KW++2337JmzRoA5s6dWypRYa9evVi9enXp9BhhbuaDBw8OBIadM2cOQ4aUXi9uRlCheDWGOvLPPbrtuffjdzMv8eJzt1OIiWbuMLwimoPFahHlGDZt2sTYsWPxeDzUqFGDmTNn0rBhQ+69914yMzNp37492dnZUcu9+OKLmTNnDvfddx8dO3bkgQceCDnerFkzXn75ZYYOHcrp06cBmDx5Mu06XACUNDqPPfYYt956K7Nnz6Zdu3a8+eabpX/MtFAh6JyD8qeOd+ucTFnBYt3qZh5YB+XwWHxJg845KKWU63pWAwcOZODAgaX2T548mcmTJ5fav2LFisDn8JQa/mP5+fl4PB6ef/75cr9/9dVXl0qPcepsaMLDJk2a8OGHH5Z7DqZ9CsWjc6Guy01eJcFiQ9dBuXbEWA3czJMKrZXVhW7mTsPe1TX3BvS6mSvLauDaEUWSuZm7JVisa/BoNvG51btHJ+FJEKMihgC/yhpDmTvjw6szH5QLrQbBeMJDHbk8tFOJk4RNORp0MaB/wtilz61jCF+oWymMjS8EnSnfi10eIDk8kkTAzdyl52xMfA7DI3qDxbr1wTW4B63roIrd5xgUTLK5mQdMfMbN3Bn47PEae5NufXIdQ/RjKDOACkWn1aBYuTuCf1lu5m7tiHrMCMpZeDTa40008/hjL+W7AXzXUKebuVtf1lC2m7lbz7m6JCxMGrT3Jl364FYVFaXbCOfNN9+kc+fOeDyeMr8XGEGZWwP4nnl9VgN3d8qSzc3cf1qOXQclIq8DF1qbDYHDSqmuEcrlA8eAIuCcUqp7vHSKJyIag8WaOai4E27gy8jI4J133uG+++4r51vGyBeMRzSG93K552ogqal/DqrY3XNQIoJHHDyCUkrdppTqajVKbwPvlFO8n1W2WjZOoD9wpttSQTst3UY4F198MRdeeGGp/cGY5ikU39IKPbLcbjXwhM1BuX3dF/gaJ8eOoPyI7w7cClwd799KJL5gsXpkFRcrUlLi10L9MHUqp7fqTbdR6+KLaPmrX5V53GnpNn5lNXJmDip2dGbULSp298u6xIuvJOW7260kHpGAc0jMMvSoUi5XAHuUUjvLOK6ApSKSJyIjyxIiIiNFZL2IrN+3b19cFLWD3jUh7vNocl66DRvX10G3JpH1wqsxeopSyvbLzMmUJDUl8N/NI0bwnXNCg8WKyDKgZYRDjyul5lufhwJzI5Tx01cpVSgizYEPRGSbUmpleCGl1CxgFkD37t0d15f1anYzj2dvsryRTrxwWrqNEu+z6u1mnsh64TNr65FV7PIRhf89Hexm7uLTBXzvxISug1JKXaOUyojwNx9ARFKAnwOvlyOj0Pq/F5gH9LCjU6LQ7WZuN0SI03Bauo2YIkkYQvB4NIb3crmbeXgkieJi91lJwvFoGEHFe1B9DbBNKVUQ6aCI1BWR+v7PQC4QY3C1xOLR7Gbutsq6adMmevToQdeuXZkyZQpPPPFESLqNG264wVa6jaysLA4ePFhuuo2srCx69erFtm3bSrnxzZs3jzZt2rBmzRquu+66iJHXAxnfXXZvYkXnHJRSynWOQcGUaqBcHtoJLBOfw50kfkGYeU9EWgEvKqUGAS2AeVaFTwFeVUotibNOccGj1c3cfS9Bp6Xb8Jtj/Xfsxhtv5MYbb6zgLJS9uSuXodPN3O1OA5HczF18uoDvnB2d8l0p9csI+wqBQdbnr4Eu8dShqjATxu5HgbMmoBKMXjdzdzsNRHIzd7uJL612Cmm1a9iSYRIWakJEn5u5WahbOeyk2/CPUKPtU5i7UoJOE1/yBItNHjfzOXf3oH6qaaAcgVfQG/bF5b0rJxC1uc54VISg02rgxqUVwURyM3d7A9WmUR3bMowhSRN6vfjc//A6AilJQlgZFGYEFYyIBOZU7OJ2q4H/1IKDxbq4PdaGaaA0oTXluwvdzJ1ITJfY3JcAXo9Oq4G7O2Wlg8W6e8SoC9NAacJnj9cjy41u5m7AWPhC0Rl/MmnczIuTx81cBy5+JKoWr8ZFi8XFJmGhXSqTbkMocZIYO3YsF110EVlZWdx4440cPny49BeUcTMPRqdZu8j1wWL9+aB828XF7m6QdWEukSb0RjM39ukqIegaDxgwgM2bN/PFF1/QqVMnpk2bVqq4GUGF4ssirUdWvMN7JRp/fQ428ZkRVMWYBkoTut3M3Wafdmq6Df8ty83NJSXF59Taq1cvCgoiBj9xtSt0tHg96MsH5cJnPhj/uRUF3Mzdve5LF8bNXBN63czj25v85I0d7P+udE4kOzRtW48rbu1U5nGnpduYMGGCz1wX4Za99NJL3HbbbaUPmCFUCMZqUHlKQh1h/Xf3ui9dmBGUJnQHi3VbZXVaug0/4W7mU6ZMISUlhWHDhpU6B+NmHopojCThC/3j3qvrP7XiEDdz956vLswIShO6g8XGc/hf3kgnXjgt3YavbOj2nDlzWLhwIR9++GHZL0vzTgng9egMFms/PbiT8Zby4nO3SVMXZgSlCb3BYt3Xm3Rauo0A1i1bsmQJM2bMYMGCBdSpE3kFvLHwhaI9WKyL30aBYLHW9XJjQOh4YOuREJFbRGSLiBSLSPewY+NFZJeIbBeR0mGsfWUai8gHIrLT+t/Ijj6JRG+wWPf1Jh2XbgPLzdwqN3r0aI4dO8aAAQPo2rUr999/f+kfUzGER3Ixfi8+HXOvbvdq84SFOjIBoSuHXRPfZnwJCf8cvFNELsGXaqMz0ApYJiKdlFJFYd9/DPhQKTVdRB6ztsfZ1CkhiM7epAvDoDgt3UY4/hFWeUQTFikZCJ74txv5JBnmZIKtLMkQLFYHthoopdRWiDhUHQK8ppQ6DfxLRHbhy5S7JkK5HOvzHGAF1bSB8oqw9+hpxrz5uW1Zp88VmYW6VYHAiTPn+O5gadf0SPx4xtyXYPwjgLFvfW77ZfvtwZM0qVer4oLVGK9HWLZ1Dz8cPcXW3UdJT6udaJUcT7ycJFoDa4O2C6x94bRQSu0GUErtFpHmZQkUkZHASIB27dppVFUPPc9vTN43h1jz1QHbslo1rE23dtXW2lll2Em3AVC/VgrHTp3jxOlzlf5OvVrO8itKZL3o0rYh7RrX4Z9fH7Qtq07NFHqd31iDVs4l58LmfFl4lDVfHSDF46HvT5okWiXHU2FtE5FlQMsIhx5XSs0v62sR9tmyjyilZgGzALp37+44W8uwnucxrOd5iVbDEAWtNaQDSDSJrBdXdGzGykf7VeVPVmteuLN7xYUMIVTYQCmlrolBbgHQNmi7DVAYodweEUm3Rk/pwN4YfstQSZRyn3egE9G1YNtgSHbi5UeyAPiFiNQSkQ5AR+DTMsqNsD6PAMoakRlskpqayoEDB8zLM84opThw4ACpqamJVsVgqPbYMqiLyI3As0AzYJGIbFRKDVRKbRGRN4AvgXPAv/s9+ETkReB5pdR6YDrwhoj8G/AtcIsdfQxl06ZNGwoKCti3b1+iVXE9qamptGnTJtFqGAzVHrtefPOAeWUcmwJMibD/nqDPB4D+dnQwVI4aNWrQoUOHRKthMBgMlcYsFTMYDAaDIzENlMFgMBgciWmgDAaDweBIpDp6dYnIMWC7JnFpwBFNsnTLM7olXpZOeR2B75RSGRpklUJzvYDkuCdOlqVbnpN1u1ApVb/UXqVUtfsD1muUNUuzbtrkGd0SLysOuml7duMtO4nuiSNlJZluEZ9dY+KD9xwsz+iWeFnxkFddSJZ74lRZuuU5WbeIVFcT33qllIkbYqh2xPPZNfXCUF0p69mtriOoWYlWwGCIkXg+u6ZeGKorEZ/dajmCMhgMBoP7qa4jqJgRkZ9aWX53WUkSEZHfiMg2EflCROaJSEMbsp625GwUkaUi0sqObkHHxoiIEpGmNnSbKCLfW7ptFJFBdnUTkQet/VtE5Nc2dHs9SK98EdloRzcR6Soiay1560Wkhw1ZXURkjYhsEpH3RKRBZXWrLph6YepFDLLiXy90enXE4w/4KT7X2V3AY9a+W4AtQDHQPQpZXuAr4HygJvA5cAmQC6RYZWYAM2zIahBU5iF8cQdj1s061hZ4H/gGaGpDt4nAmBjuQVny+gHLgFpWueZ2zjOozG+BCTZ1Wwpca5UZBKywIWsdcJVV5m7gaVMvTL0w9SL+9cLRIygR8QJ/BK7Fd0GGii+dvD/V/MooRfYAdimlvlZKnQFeA4YopZYqpfxZ69biSw8Sq6yjQWXqUvk8WBHlWcf+B3hUk6xYKEveA8B05cucjFKqMulSytVNRAS4FZhrUzcF+Ht0aURO91JZWRdS8qx9ANxUSd3igqkXpl7YkFet6oWjGyjKfti3KqViWZDYGvguaDtSpt+7gb/bkSUiU0TkO2AYMMGObiIyGPheKRVNLvnyznO0ZWp5SUQqm7a3LHmdgCtE5J8i8rGIZNvUDeAKYI9SaqdN3R4GfmPdh2eA8TZkbQYGW/tuITTXWSIw9cLUi1jlPUw1qhdOb6AqU3GiodxMvyLyOL70IP9nR5ZS6nGlVFtLzmgbutUCHqfylbki3WYCFwBdgd34TAZ25KUAjYBewFh8qVMqyohYUbbloVS+l1ievAeAR6z78Agw24asu4F/F5E8oD5wJgr94oGpF6ZexKpbtaoXTm+gdKeOLzPTr4iMAH4GDFOWUTVWWUG8SuWHvZHkfQt0AD4XkXxr3wYRaRmLbkqpPUqpIqVUMfACvp54rLoVWvvfUT4+xTf3UdFkdXn3IAWfier1SupVnrwRwDvWvjep3LmWdd22KaVylVKX4XtJfBWFfvHA1AtTL2LVrXrVC92TWjr/gN7A+0Hb44HxQdsriG4yOAX4Gt/D7Z/s64xvwvlLoJkGWR2DyjwIvGVHXliZfCo3GVyWbulBZR4BXrN5rvcDk6wynfD16iXW87Tuw8dRPiNl6bYVyLHK9AfybMhqbh33AK8Ad5t6YeqFqRfxrxcJq2Q6Hs5oK6L1nUHADnyt/ePWvl3WQ7TR+qush1EkWW/js81+gS8USGs7uoUdr1RFLEe3vwKbLN0WBFfMGOXVBP5mne8G4Go75wm8DNwfw3MSSbfLgTzrmfkncJkNWf9h7duBLwt0uS8bUy9MvTD1Qs+f4xfqWmsSfo/P1fElpdQUCU01fxjYqJQamDAlDYYqxtQLQzLg+AbKYDAYDMmJ050kDAaDwZCkmAbKYDAYDI7ENFAGg8FgcCSObqBE5HiidTAYnIapF4ZkwdENlMFgMBiSF8c3UCJST0Q+FJENVlj3Idb+9iKyVUResELaLxWR2onW12CoCky9MCQDjnYzt0wZDYE6SqmjVs6XtUBH4Dx8Cwm7K6U2isgbwAKl1N8SprDBUAWYemFIFlISrUAlEGCqiFyJL6ZVa6CFdexfSqmN1uc8oH2Va2cwJAZTLwyupzo0UMPwrYy/TCl11goOmWodOx1UrggwpgxDsmDqhcH1OH4OCl9Srb1WJeyHz4RhMCQ7pl4YXI9jR1BWiPnT+HLHvCci6/EFrNyWSL0MhkRi6oUhmXCsk4SIdAFeUEpVNjeLweB6TL0wJBOONPGJyP34EmA9kWhdDAanYOqFIdlw7AjKYDAYDMmNI0dQBoPBYDA4ooESkbYistxaAb9FRP7D2t9YRD4QkZ3W/0bW/gEikmetoM8TkauDZE0Rke9MvDJDdcfUC0Oy4wgTn4ik40uzvEFE6uNbXHgD8EvgoFJquog8BjRSSo0TkUuBPUqpQhHJAN5XSrW2ZPUCvgF2KqXqJeJ8DAYdmHphSHYc0UCFIyLzgeesvxyl1G6rsq5QSl0YVlaA/UArpdTpoP3HTUU0uAlTLwzJhiNMfMGISHvgUuCfQAul1G4A63/zCF+5CfgsuBIaDG7D1AtDMuKohboiUg94G3jYCoJZUfnOwAwgtwrUMxgSgqkXhmTFMSMoEamBrxL+n1LqHWv3HsuE4bfH7w0q3waYB9yplPqqqvU1GKoCUy8MyYwjGijLXj4b2KqU+l3QoQXACOvzCGC+Vb4hsAgYr5RaXYWqGgxVhqkXhmTHEU4SInI58AmwCV/qAIBf4bO3vwG0A74FblFKHRSRJ4DxwM4gMblKqb0i8mvgdqAVUAi8qJSaWCUnYjBoxNQLQ7LjiAbKYDAYDIZwHGHiMxgMBoMhHNNAGQwGg8GRmAbKYDAYDI7ENFAGg8FgcCSmgTIYDAaDIzENlMFgMBgciWmgDAaDweBI/h/WkAnWz2QprwAAAABJRU5ErkJggg==\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "fig, ax = plt.subplots(1,2, sharey = True, sharex = True, tight_layout = True)\n", "fig.suptitle('Asset dispatch and prices')\n", "# add price info to dispatches\n", "out_mean['dispatch']['mean price'] = mean_prices['price']\n", "out_robust['dispatch']['mean price'] = mean_prices['price']\n", "out_robust['dispatch'].drop(['market'], axis = 1, inplace=True)\n", "out_mean['dispatch'].drop(['market'], axis = 1, inplace=True)\n", "for i, ps in enumerate(price_samples):\n", " out_robust['dispatch']['sample '+str(i)] = ps['price']\n", " out_mean['dispatch']['sample '+str(i)] = ps['price']\n", "out_mean['dispatch'].plot(kind='line', ax = ax[0])\n", "out_robust['dispatch'].plot(kind='line', ax = ax[1], legend = None)\n", "ax[0].set_title('optimized against mean')\n", "ax[1].set_title('robust optimization')\n", "#ax[0].axis('off')\n", "#ax[1].axis('off')\n", "plt.show()\n" ] }, { "source": [ "This illustrates the approach (being a very simple example): The dispatch optimized against the mean exploits ups and downs in the mean of prices. However, due to the design of the szenarios, this optimum may prove a very bad fit for some szenarios. The robust optimization maximizes against all single szenarios jointly using a MaxiMin target." ], "cell_type": "markdown", "metadata": {} } ] }