{ "cells": [ { "cell_type": "markdown", "id": "2f271b5f", "metadata": {}, "source": [ "## Turbine hub height optimization" ] }, { "cell_type": "markdown", "id": "5e9256a9", "metadata": {}, "source": [ "Another type of design variable that can be specified is the turbines' hub heights. In this case, the hub heights are converted into continuous variables so a gradient-based optimization with [autograd](https://topfarm.pages.windenergy.dtu.dk/PyWake/notebooks/Optimization.html#Autograd) can be performed. This approach is taken to speed up the optimization process.\n", "\n", "In this example, it is necessary to specify a \"[GenericWindTurbine](https://topfarm.pages.windenergy.dtu.dk/PyWake/notebooks/WindTurbines.html)\" since the hub heights need to change throughout the optimization and thus the power and thrust coefficient curve will change for each hub height studied.\n" ] }, { "cell_type": "markdown", "id": "1f8979cf", "metadata": {}, "source": [ "**Install TOPFARM if needed**" ] }, { "cell_type": "code", "execution_count": 1, "id": "0fd0fefa", "metadata": {}, "outputs": [], "source": [ "# Install TopFarm if needed\n", "import importlib\n", "if not importlib.util.find_spec(\"topfarm\"):\n", " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" ] }, { "cell_type": "markdown", "id": "15e4b84e", "metadata": {}, "source": [ "We now import the site, turbine positions and wake models necessary to run the optimization. The Lillgrund site will be used and its layout extracted from PyWake's data." ] }, { "cell_type": "code", "execution_count": 2, "id": "017faafc", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "id": "32dac2b7", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/julianquick/miniconda3/envs/sgd/lib/python3.10/site-packages/openmdao/utils/general_utils.py:128: OMDeprecationWarning:simple_warning is deprecated. Use openmdao.utils.om_warnings.issue_warning instead.\n", "/Users/julianquick/miniconda3/envs/sgd/lib/python3.10/site-packages/openmdao/utils/notebook_utils.py:157: UserWarning:Tabulate is not installed. Run `pip install openmdao[notebooks]` to install required dependencies. Using ASCII for outputs.\n" ] } ], "source": [ "from py_wake.examples.data.lillgrund import LillgrundSite, power_curve, ct_curve\n", "from py_wake.wind_turbines._wind_turbines import WindTurbines, WindTurbine\n", "from py_wake.wind_turbines.generic_wind_turbines import GenericWindTurbine\n", "from py_wake.wind_turbines.power_ct_functions import PowerCtTabular\n", "\n", "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", "from py_wake.deficit_models.gaussian import BastankhahGaussian\n", "\n", "from topfarm.cost_models.cost_model_wrappers import AEPCostModelComponent\n", "\n", "from py_wake.utils.gradients import autograd\n", "\n", "from topfarm import TopFarmProblem" ] }, { "cell_type": "markdown", "id": "21ec196a", "metadata": {}, "source": [ "Now we specify the initial conditions and hub height boundaries. The turbines' hub heights are staggered and assigned to every couple wind turbine in the farm." ] }, { "cell_type": "code", "execution_count": 5, "id": "873d0c6c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "wind farm hub heights: [ 80. 120. 80. 120. 80. 120. 80.]\n" ] } ], "source": [ "# Initial inputs\n", "n_wt = 7\n", "\n", "n_wd = 1\n", "wd = [270]\n", "\n", "lb = 82 # lower boundary constraint\n", "ub = 160 # upper boundary constraint\n", "\n", "hh = 80 # starting hub height condition\n", "hg = 120 # second starting hub height condition\n", "h = np.ones([n_wt]) * hh # hub height array\n", "h_max = np.ones([n_wt]) * ub # baseline hub height\n", "\n", "for i in range(n_wt):\n", " if i % 2 == 0:\n", " h[i] = hh\n", " else:\n", " h[i] = hg\n", "\n", "print('wind farm hub heights:',h)\n", "\n", "power = 2300\n", "diameter = np.ones([n_wt]) * 93 # diameter [m]\n", "\n", "# Site specification\n", "site = LillgrundSite()\n", "\n", "x = np.linspace(0, 93 * 4 * n_wt, n_wt)\n", "\n", "y = [0] * n_wt" ] }, { "cell_type": "markdown", "id": "b59be55c", "metadata": {}, "source": [ "Then we need to set up the `GenericWindTurbine` object and the `WindFarmModel`." ] }, { "cell_type": "code", "execution_count": 6, "id": "230d250c", "metadata": {}, "outputs": [], "source": [ "nom_power_array = power * np.ones([n_wt]) # rated power array\n", "\n", "class SWT23(WindTurbine): # Siemens 2.3 MW\n", " def __init__(self, method='linear'):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " method : {'linear', 'pchip'}\n", " linear(fast) or pchip(smooth and gradient friendly) interpolation\n", " \"\"\"\n", " WindTurbine.__init__(self, name='SWT23', diameter=93, hub_height=80,\n", " powerCtFunction=PowerCtTabular(power_curve[:, 0], power_curve[:, 1], 'kw',\n", " ct_curve[:, 1], method=method))\n", "\n", "wind_turbines = WindTurbines(\n", " names=['SWT23' for i in range(len(x))],\n", " diameters = diameter,\n", " hub_heights = h,\n", " powerCtFunctions=[GenericWindTurbine(name='SWT23',\n", " diameter = diameter[i], \n", " hub_height = h[i], \n", " power_norm = nom_power_array[i]).powerCtFunction for i in range(len(x))])\n", "\n", "wf_model = BastankhahGaussian(site, wind_turbines)" ] }, { "cell_type": "markdown", "id": "6e9b95f3", "metadata": {}, "source": [ "Lastly, we set up the `CostModelComponent` that is responsible for calculating the AEP and works as the objective function in the optimization." ] }, { "cell_type": "code", "execution_count": 10, "id": "4c51563b", "metadata": {}, "outputs": [], "source": [ "# AEP Calculation\n", "\n", "class PyWakeAEPCostModelComponent(AEPCostModelComponent):\n", " def __init__(self, windFarmModel, n_wt, wd=None, ws=None, max_eval=None, grad_method=autograd, n_cpu=1, **kwargs):\n", " self.windFarmModel = windFarmModel\n", "\n", " #objective function\n", " def get_aep_func(h):\n", "\n", " h_new = h[:n_wt]\n", " simres = windFarmModel(x, y, h=h_new)\n", " aep = simres.aep().sum()\n", "\n", " return aep\n", "\n", " #specifying the gradients\n", " def daep_h(h):\n", " return windFarmModel.aep_gradients(autograd, wrt_arg=['h'])(x, y, h)\n", " \n", " AEPCostModelComponent.__init__(self,\n", " input_keys=['h'],\n", " n_wt=n_wt,\n", " cost_function=get_aep_func,\n", " cost_gradient_function=daep_h,\n", " output_unit='GWh',\n", " max_eval=max_eval, **kwargs)\n", "\n", "cost_comp = PyWakeAEPCostModelComponent(windFarmModel=wf_model, n_wt=len(x), grad_method=autograd, n_cpu=1, wd=None, ws=None)" ] }, { "cell_type": "markdown", "id": "e9dbb46a", "metadata": {}, "source": [ "Lastly, we set up the `TopFarmProblem` along with some optimization parameters." ] }, { "cell_type": "code", "execution_count": 11, "id": "228bb73a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: checking out_of_order\n", "INFO: checking system\n", "INFO: checking solvers\n", "INFO: checking dup_inputs\n", "INFO: checking missing_recorders\n", "INFO: checking unserializable_options\n", "INFO: checking comp_has_no_outputs\n", "INFO: checking auto_ivc_warnings\n" ] } ], "source": [ "# optimization specs and problem formulation\n", "\n", "maxiter = 20\n", "tol = 1e-6\n", "\n", "problem = TopFarmProblem(design_vars= {'h':(h, lb, ub)},\n", " cost_comp=cost_comp,\n", " driver=EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter, tol=tol),\n", " n_wt=n_wt,\n", " expected_cost=0.001\n", " )" ] }, { "cell_type": "code", "execution_count": 12, "id": "1797fa31", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: checking out_of_order\n", "INFO: checking system\n", "INFO: checking solvers\n", "INFO: checking dup_inputs\n", "INFO: checking missing_recorders\n", "INFO: checking unserializable_options\n", "INFO: checking comp_has_no_outputs\n", "INFO: checking auto_ivc_warnings\n", "Optimization terminated successfully (Exit mode 0)\n", " Current function value: -62622.45189217626\n", " Iterations: 3\n", " Function evaluations: 3\n", " Gradient evaluations: 3\n", "Optimization Complete\n", "-----------------------------------\n" ] } ], "source": [ "_,state,_=problem.optimize()" ] }, { "cell_type": "markdown", "id": "8c72a358", "metadata": {}, "source": [ "Now we plot the turbines in the XZ plane to visualize the final hub heights." ] }, { "cell_type": "code", "execution_count": 13, "id": "aa665de3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "final hub heights: [ 82. 160. 82. 160. 82. 160. 82.]\n" ] }, { "data": { "text/plain": [ "Text(0.5, 0, 'x [m]')" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6MAAAF4CAYAAAChAC/ZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBW0lEQVR4nO3de3jUVP4/8Hfm2gttLbeWQrmKKDdFcBF0BRRQVhR/7ooKIgi6sgKKwLqi64KIoKjIqiuKXxfwgrgXUXddEVCLIqCAoIgK3qlArSjSAqXTSfL7YzppkkkyyXQuHfp+PU8fmMxJJtOZT8/5nHNyIsiyLIOIiIiIiIgoiVypPgEiIiIiIiJqfJiMEhERERERUdIxGSUiIiIiIqKkYzJKREREREREScdklIiIiIiIiJKOySgRERERERElHZNRIiIiIiIiSjomo0RERERERJR0TEaJiIiIiIgo6ZiMEhERERERUdIxGSUiIiIiImoEKisrMXXqVLRr1w6ZmZno378/tmzZkrLzYTJKRERERETUCFx//fVYu3Ytnn32WezcuRNDhw7F4MGDsW/fvpScjyDLspySVyYiIiIiIqKkqKqqQk5ODl555RVcfPHFyvYzzjgDw4cPx9y5c5N+Tp6kv+IJQJIk7N+/Hzk5ORAEIdWnQ0RERETUqMmyjMrKShQVFcHlSq/Jn8ePH0cgEIhpX1mWI/IRv98Pv98fUTYYDEIURWRkZGi2Z2ZmYsOGDTG9fn1xZDQG33//PYqLi1N9GkREREREpFJaWoo2bdqk+jRsO378ONp36IAfyspi2r9JkyY4cuSIZtusWbMwe/Zsw/L9+/eHz+fDihUrUFBQgBdeeAHXXnstOnfujN27d8d0DvXBkdEY5OTkAAh92XNzc1N8NkREREREjVtFRQWKi4uVdnq6CAQC+KGsDHu+dp5XVFRU4JSOxRE5idGoaNizzz6L8ePHo3Xr1nC73TjzzDMxatQofPjhhzG/h/pgMhqD8FB4bm4uk1EiIiIiogYiXS+hq09e4WTfTp06Yf369Th69CgqKirQqlUrXHnllejQoUNMr11f6TWhmoiIiIiI6AQjyXJMP7HKzs5Gq1atcOjQIbzxxhsYMWJEHN+NfRwZJSIiIiIiagTeeOMNyLKMLl264Msvv8Qf//hHdOnSBdddd11Kzocjo0RERERERI3A4cOHMWnSJJx66qm49tprce6552LNmjXwer0pOR+OjBIRERERETUCI0eOxMiRI1N9Ggomo0RERERERCkkSTIkydk1oE7LN0ScpktERERERERJx2SUiIiIiIiIko7TdImIiIiIiFJIkkM/TvdJdxwZJSIiIiIioqRjMkpERERERERJx2m6REREREREKSTJMiTZ4Wq6Dss3RBwZJSIiIiJKgsrKSpSUlKCysjIpr1deXo4bb7wRbdu2hd/vR2FhIS688EJs2rQJV111FYYNG6Yp//rrr0MQBNx1112a7ffccw+Kioowe/ZsCIJg+fPtt9/iqaeewq9//Wvk5+cjPz8fgwcPxgcffKA55uLFi9GzZ0/k5uYiNzcX/fr1w+uvv57w3wk1LExGiYiIiIiS4MiRI1i/fj2OHDmSlNf77W9/i48++gjLly/Hnj178Oqrr2LgwIH4+eefMWjQIGzYsAHBYFApX1JSguLiYrz99tua45SUlGDQoEGYMWMGDhw4oPy0adMGc+bM0WwrLi5GSUkJrr76arz99tvYtGkT2rZti6FDh2Lfvn3KMdu0aYP77rsPW7duxdatW3H++edjxIgR2LVrV1J+N9QwcJouEREREdEJ5pdffsGGDRtQUlKCAQMGAADatWuHX/3qVwCAPXv24MiRI9i6dSvOPvtsAKGk8/bbb8ett96KY8eOISsrC4FAAJs2bcIjjzyCJk2aoEmTJspruN1u5OTkoLCwUPPazz//vObxU089hX/961948803ce211wIALrnkEk2Ze++9F4sXL8bmzZvRrVu3+P4yqMHiyCgRERERURLItdf4yUm41i+cOL788suorq6OeP6UU05BUVGRMgpaWVmJDz/8EFdccQU6deqE9957DwCwefNmVFVVYdCgQTGfy7Fjx1BTU4OmTZsaPi+KIlauXImjR4+iX79+Mb9OOpMkGaLDH+kEuLcLk1EiIiIiogQ7evQoVq9eDQBYvXo1jh49mtDX83g8WLZsGZYvX46TTjoJ55xzDu644w58/PHHSpmBAweipKQEAPDuu+/ilFNOQYsWLTBgwABle3jqbqdOnWI+l9tvvx2tW7fG4MGDNdt37tyJJk2awO/3Y+LEiVi1ahW6du0a8+tQ+mEySkRERESUQLt27cLf/vY3/PTTT+jWrRt++ukn/O1vf0v49ZG//e1vsX//frz66qu48MILUVJSgjPPPBPLli0DAAwaNAjvvfceampqUFJSgoEDBwJARDJ6/vnnx3wOCxYswAsvvICXXnoJGRkZmue6dOmCHTt2YPPmzfjDH/6AsWPH4tNPP435tSj9MBklIiIiIkqg8vJytG/fHjfddBN+97vf4aabbkL79u3x448/Jvy1MzIyMGTIEPzlL3/Bxo0bMW7cOMyaNQtAKBk9evQotmzZgrffflu5tnTAgAHYsmULfv75Z2zatCnmKboPPvgg5s2bhzVr1qBnz54Rz/t8Ppx88sno06cP5s+fj9NPPx1//etfY3+zaSx8axenP+mOCxgRERERESXQwIEDIQiC8jg7OxsjR45MyrWjel27dsXLL78MAOjUqROKi4vx6quvYseOHUoy2qpVK7Rv3x4PPfQQjh8/HlMy+sADD2Du3Ll444030KdPH1v7yLJseH0rnbiYjBIRERERJZA6EbWzPR5++uknXHHFFRg/fjx69uyJnJwcbN26FQsWLMCIESOUcoMGDcLjjz+Ok08+GQUFBcr2AQMG4NFHH0XHjh3Rtm1bR6+9YMEC3HXXXVixYgXat2+PsrIyANCsxnvHHXdg2LBhKC4uRmVlJVauXImSkhLlulpqHDhNl4iIiIjoBNOkSRP07dsXDz/8MM477zx0794dd911F2644QY89thjSrlBgwahsrJSuV40bMCAAaisrIxpVPTxxx9HIBDA7373O7Rq1Ur5efDBB5UyP/zwA8aMGYMuXbrgggsuwPvvv4/Vq1djyJAhMb9nSj+CnIr5AWmuoqICeXl5OHz4MHJzc1N9OkREREREjVq6ts/D571n70HkODzvyooKnNK2edq9ZzWOjBIREREREVHSMRklIiIiIiKipOMCRkRERERERCkkyjJEh1dPOi3fEHFklIiIiIiIiJKOySgRERERERElHZNRIiIiIiKiE1wwGMSf//xndOjQAZmZmejYsSPmzJkDSZJSdk68ZpSIiIiIiCiFJEmGJDm7BtRp+fvvvx9PPPEEli9fjm7dumHr1q247rrrkJeXh1tuucXRseKFySgREREREdEJbtOmTRgxYgQuvvhiAED79u3xwgsvYOvWrSk7p7Saprtv3z5cc801aNasGbKysnDGGWdg27ZtyvOyLGP27NkoKipCZmYmBg4ciF27dmmOUV1djSlTpqB58+bIzs7GpZdeiu+//z7Zb4WIiIiIiKjeKioqND/V1dWG5c4991y8+eab2LNnDwDgo48+woYNG/Cb3/wmmaerkTbJ6KFDh3DOOefA6/Xi9ddfx6effoqHHnoIJ510klJmwYIFWLhwIR577DFs2bIFhYWFGDJkCCorK5UyU6dOxapVq7By5Ups2LABR44cwfDhwyGKYgreFRERERERNXYSAEl2+FO7b3FxMfLy8pSf+fPnG77Gn/70J1x99dU49dRT4fV60atXL0ydOhVXX3110t6nXtpM073//vtRXFyMpUuXKtvat2+v/F+WZSxatAh33nknLr/8cgDA8uXLUVBQgBUrVuDGG2/E4cOH8fTTT+PZZ5/F4MGDAQDPPfcciouLsW7dOlx44YVJfU9ERERERET1UVpaitzcXOWx3+83LPfiiy/iueeew4oVK9CtWzfs2LEDU6dORVFREcaOHZus09VIm5HRV199FX369MEVV1yBli1bolevXnjqqaeU57/55huUlZVh6NChyja/348BAwZg48aNAIBt27ahpqZGU6aoqAjdu3dXyhiprq6OGP4mIiIiIiJKtdzcXM2PWTL6xz/+Ebfffjuuuuoq9OjRA2PGjMGtt95qOpKaDGmTjH799ddYvHgxOnfujDfeeAMTJ07EzTffjGeeeQYAUFZWBgAoKCjQ7FdQUKA8V1ZWBp/Ph/z8fNMyRubPn68Z+i4uLo7nWyMiIiIiokZMkuWYfpw4duwYXC5t+ud2u3lrFzskSUKfPn0wb948AECvXr2wa9cuLF68GNdee61SThAEzX6yLEds04tWZubMmZg2bZryuKKiggkpERERERGljUsuuQT33nsv2rZti27dumH79u1YuHAhxo8fn7JzSpuR0VatWqFr166abaeddhr27t0LACgsLASAiBHO8vJyZbS0sLAQgUAAhw4dMi1jxO/3Rwx/ExERERERpYtHH30Uv/vd73DTTTfhtNNOw4wZM3DjjTfinnvuSdk5pU0yes4552D37t2abXv27EG7du0AAB06dEBhYSHWrl2rPB8IBLB+/Xr0798fANC7d294vV5NmQMHDuCTTz5RyhAREREREZ1ocnJysGjRInz33XeoqqrCV199hblz58Ln86XsnNJmmu6tt96K/v37Y968eRg5ciQ++OADLFmyBEuWLAEQmp47depUzJs3D507d0bnzp0xb948ZGVlYdSoUQCAvLw8TJgwAdOnT0ezZs3QtGlTzJgxAz169FBW1yUiIiIiIkomSZIhSc6uAXVaviFKm2T0rLPOwqpVqzBz5kzMmTMHHTp0wKJFizB69GilzG233YaqqircdNNNOHToEPr27Ys1a9YgJydHKfPwww/D4/Fg5MiRqKqqwgUXXIBly5bB7Xan4m0RERERERE1SoIsO1yGiVBRUYG8vDwcPnyY148SEREREaVYurbPw+e9/csy5OQ4O+/Kygr0Orkw7d6zWtqMjBIREREREZ2IJFmG6HCM0OmtXRqitFnAiIiIiIiIiE4cTEaJiIiIiIgo6ZiMEhERERERUdLxmlEiIiIiIqIUkqTQj9N90h1HRomIiIiIiCjpmIwSERERERFR0nGaLhERERERUQpJsuz4Vi28tQsRERERERFRDJiMEhERERERUdJxmi4REREREVEKcZouERERERERUZIwGSUiIiIiIqKkYzJKREREREREScdrRomIiIiIiFJIkkI/TvdJdxwZJSIiIiIioqRjMkpERERERERJx2m6REREREREKcRbuxARERERERElCZNRIiIiIiIiSjomo0RERERERCe49u3bQxCEiJ9Jkyal7Jx4zSgREREREVEKSZIMSXJ4zajD8lu2bIEoisrjTz75BEOGDMEVV1zh6DjxxGSUiIiIiIjoBNeiRQvN4/vuuw+dOnXCgAEDUnRGTEaJiIiIiIjSVkVFheax3++H3++33CcQCOC5557DtGnTIAhCIk/PEq8ZJSIiIiIiSiFRlmP6AYDi4mLk5eUpP/Pnz4/6ei+//DJ++eUXjBs3LsHvzBpHRomIiIiIiNJUaWkpcnNzlcfRRkUB4Omnn8awYcNQVFSUyFOLiskoERERERFRmsrNzdUko9F89913WLduHV566aUEnpU9nKZLRERERETUSCxduhQtW7bExRdfnOpT4cgoERERERFRKskSIEnO93FKkiQsXboUY8eOhceT+lSQI6NERERERESNwLp167B3716MHz8+1acCgCOjREREREREjcLQoUMh167C2xAwGSUiIiIiIkohWZYdJ4kNKamMFafpEhERERERUdIxGSUiIiIiIqKk4zRdIiIiIiKiFApCRtDhtNsgOE2XiIiIiIiIyDEmo0RERERERJR0TEaJiIiIiIgo6dI2GZ0/fz4EQcDUqVOVbbIsY/bs2SgqKkJmZiYGDhyIXbt2afarrq7GlClT0Lx5c2RnZ+PSSy/F999/n+SzJyIiIiIiCglKckw/6S4tk9EtW7ZgyZIl6Nmzp2b7ggULsHDhQjz22GPYsmULCgsLMWTIEFRWViplpk6dilWrVmHlypXYsGEDjhw5guHDh0MUxWS/DSIiIiIiokYr7ZLRI0eOYPTo0XjqqaeQn5+vbJdlGYsWLcKdd96Jyy+/HN27d8fy5ctx7NgxrFixAgBw+PBhPP3003jooYcwePBg9OrVC8899xx27tyJdevWpeotERERERERNTppl4xOmjQJF198MQYPHqzZ/s0336CsrAxDhw5Vtvn9fgwYMAAbN24EAGzbtg01NTWaMkVFRejevbtSxkh1dTUqKio0P0RERERERPEgyjJEWXL4k/7TdNPqPqMrV67Ehx9+iC1btkQ8V1ZWBgAoKCjQbC8oKMB3332nlPH5fJoR1XCZ8P5G5s+fj7vvvru+p09ERERERES10mZktLS0FLfccguee+45ZGRkmJYTBEHzWJbliG160crMnDkThw8fVn5KS0udnTwRERERERFppE0yum3bNpSXl6N3797weDzweDxYv349HnnkEXg8HmVEVD/CWV5erjxXWFiIQCCAQ4cOmZYx4vf7kZubq/khIiIiIiKi2KVNMnrBBRdg586d2LFjh/LTp08fjB49Gjt27EDHjh1RWFiItWvXKvsEAgGsX78e/fv3BwD07t0bXq9XU+bAgQP45JNPlDJERERERETJ1Fhv7ZI214zm5OSge/fumm3Z2dlo1qyZsn3q1KmYN28eOnfujM6dO2PevHnIysrCqFGjAAB5eXmYMGECpk+fjmbNmqFp06aYMWMGevToEbEgEhERERERESVO2iSjdtx2222oqqrCTTfdhEOHDqFv375Ys2YNcnJylDIPP/wwPB4PRo4ciaqqKlxwwQVYtmwZ3G53Cs+ciIiIiIiocRFk+QRYEzjJKioqkJeXh8OHD/P6USIiIiKiFEvX9nn4vP+x6UtkNcmJvoPKsSOVGNnv5LR7z2ppc80oERERERERnTiYjBIREREREVHSMRklIiIiIiKipDuhFjAiIiIiIiJKN0FZQlCWHO+TaNOmTXO8z5///Gc0bdrUVlkmo0RERERERBRh0aJF6NevH3w+n63yGzZswOTJk5mMEhERERERUf2sWrUKLVu2tFVWfUtNO3jNKBERERERUQpJcmw/Tu3btw/XXHMNmjVrhqysLJxxxhnYtm2bafmlS5ciLy/P9vGffPJJFBQU2C7PkVEiIiIiIqIT3KFDh3DOOedg0KBBeP3119GyZUt89dVXOOmkk0z3GTt2rKPXGDVqlKPyTEaJiIiIiIjSVEVFheax3++H3++PKHf//fejuLgYS5cuVba1b9/e9uuUlpZCEAS0adMGAPDBBx9gxYoV6Nq1K37/+9/HdO6cpktERERERJRCQUmK6QcAiouLkZeXp/zMnz/f8DVeffVV9OnTB1dccQVatmyJXr164amnnrJ9jqNGjcLbb78NACgrK8OQIUPwwQcf4I477sCcOXNiet9MRomIiIiIiNJUaWkpDh8+rPzMnDnTsNzXX3+NxYsXo3PnznjjjTcwceJE3HzzzXjmmWdsvc4nn3yCX/3qVwCAf/zjH+jevTs2btyIFStWYNmyZTGdO6fpEhERERERpanc3Fzk5uZGLSdJEvr06YN58+YBAHr16oVdu3Zh8eLFuPbaa6PuX1NTo0z/XbduHS699FIAwKmnnooDBw7EdO4cGSUiIiIiIjrBtWrVCl27dtVsO+2007B3715b+3fr1g1PPPEE3n33XaxduxYXXXQRAGD//v1o1qxZTOfEZJSIiIiIiCiFgrIc048T55xzDnbv3q3ZtmfPHrRr187W/vfffz+efPJJDBw4EFdffTVOP/10AKFrUcPTd53iNF0iIiIiIqIT3K233or+/ftj3rx5GDlyJD744AMsWbIES5YssdzvyJEjaNKkCQYOHIiDBw+ioqIC+fn5yvO///3vkZWVFdM5cWSUiIiIiIjoBHfWWWdh1apVeOGFF9C9e3fcc889WLRoEUaPHm25X/PmzTFs2DAsXrwYP/zwgyYRBUK3h2nZsmVM58SRUSIiIiIiohSSJBmi5GzareSwPAAMHz4cw4cPd7TP7t278eqrr+Lf//43pk6dip49e+LSSy/FiBEj0LNnT8fnoMaRUSIiIiIiIjLUrl07TJkyBevWrUN5eTmmTZuGXbt24bzzzkOHDh1wyy234K233oIoio6PzWSUiIiIiIiIosrLy8PVV1+NlStX4uDBg3jyySchSRKuu+46tGjRAs8//7yj43GaLhERERERETni8XgwdOhQDB06FI8++ii2b9+OYDDo7BgJOjciIiIiIiKyIShJCEqS432S7fjx4/j4449RXl4OSfX6giDgkksucXw8JqNERERERERkafXq1bj22mtx8ODBiOcEQeA1o0RERERERBR/kydPxhVXXIEDBw5AkiTNTyyJKMCRUSIiIiIiopSqkWV4HN6qpUZ2fmuX+givpFtQUBC3Y3JklIiIiIiIiCz97ne/Q0lJSVyPyZFRIiIiIiIisvTYY4/hiiuuwLvvvosePXrA6/Vqnr/55psdH9NWMjpt2jTHB/7zn/+Mpk2bOt6PiIiIiIiIGpYVK1bgjTfeQGZmJkpKSiAIgvKcIAiJS0YXLVqEfv36wefz2Trohg0bMHnyZCajREREREREUYiSDNHhNaNOy9fXn//8Z8yZMwe33347XK74XO1pe5ruqlWr0LJlS1tlc3JyYj4hIiIiIiIialgCgQCuvPLKuCWigM0FjJYuXYq8vDzbB33yySfjusoSERERERERpc7YsWPx4osvxvWYtkZGx44d6+igo0aNiulk0k1VDeCtSfVZEFEspCQvh54IUpKn5yTCCfAW0tqJEAdkLdnT+IhSpfJIMNWnUC81Ugy3dklyfIuiiAULFuCNN95Az549IxYwWrhwoeNj1ms13SNHjkCSJM223Nzc+hySiCih0r3xzQSU7Er37zrZx4STiJJh586d6NWrFwDgk08+0TynXszICcfJ6DfffIPJkyejpKQEx48fV7bLsgxBECCKYkwnQkRUH8loeKsTQZdLMNyeLtLwlG1hAtY4MRmjhoR/h1KDv/fEe/vtt+N+TMfJ6OjRowEAf//731FQUBBzFkxEFI1VxXLVFZdjwzslGDDoAjy/8p+xHb8eDdh4JKDp0n5mBZ86yUqyjlRW4v8NH4KamhpIoogbJk7GmOuuT8prN2T87lOsivIzcWrXbgCA03v1xsOPPZnQ11NPVIzj2jKWr9PQNORzsyMoyqgRnf3NCTos3xA5TkY//vhjbNu2DV26dEnE+RBRI+W00feHSVNw7djr8Pxzz2iPE2PjvaEkhunW+OWI1IkhMysLr7z+FrKysnDs2DGc1/cMXHzp/0PTZs0My6fb9zRR0r3xS4mTm3cS1r27VXmcjO+KKMtwC0KD/16KCfr7kajjNnaXX345li1bZvtSzNGjR+Phhx+2fRcWx8noWWedhdLSUiajRBQ3Vg1bs+Ty1+cNxLvvlACyHFHGSX5kt1GtTrrcrvrNCDkREjgmIycWweVCRmYmJFlGVVUVRFGEKEumn3N9GrtGDUZ3CmdZsQF74mho36NEfbesOl0lNN7vczpeMpMOXnnlFfz444+2ysqyjP/85z+45557EpeM/t///R8mTpyIffv2oXv37hGrKPXs2dPpIYmITCsRq7pFkgG59l87yVG0JNBugiWl+bSYht5r3lgkciod4PxzPvzLL7j84gvw9ddf4i9z7kN+fnPHU8ZCr2szjmqLuYTG3YAm7TX49ZHKjgX99/5IZQUuGng2MjIycNudd+Psc86zf6w4dKi6GuFldKzaEkOWZZxyyikJO77jZPTHH3/EV199heuuu07ZJggCFzAiophJkhxR+UZLDEVJhli7X42orYKsR1otjmljhDZejSZKT/EceUl0p4CThrkkycjKycXqd7bgx/If8PuxV+LC4ZehRUvtPcPtNJKjxa5RstpQ46oxNugTxeojTrcRLTunu+HD3ShoVYTdn+3C+Ksvw+p3tyEnJ9d+p6eNF7GK8VSOEkeTqHhP9xk7QVF2fA1oMq4ZjWXRotatW9su6zgZHT9+PHr16oUXXnghqQsYzZ8/Hy+99BI+//xzZGZmon///rj//vs104VlWcbdd9+NJUuW4NChQ+jbty/+9re/oVu3bkqZ6upqzJgxAy+88AKqqqpwwQUX4PHHH0ebNm2S8j6IyJg+oQTMK5ZwI14UZchy3R9vo4rZ6Yhr1MpMt2Njaaw20Fwh4fSNpnSa0mnUyWNYTvee8pu3RJeuPbDpvXfxmxG/tWwUm/0+zBJto/hyCQKga1AletRYz6zhni4jtg01mddq2OdomSxHmX1jFCPNWhYiKErodMpp6HTKqdi9ezd6nHGmxTHMXtvidS1GRYMG391k1ldWMSwmKIEKGrQjqP4GDBiQ0OM7Tka/++47vPrqqzj55JMTcT6m1q9fj0mTJuGss85CMBjEnXfeiaFDh+LTTz9FdnY2AGDBggVYuHAhli1bhlNOOQVz587FkCFDsHv3buTk5AAApk6div/85z9YuXIlmjVrhunTp2P48OHYtm0b3G53Ut8TEQE1NTWoCtRAFry2k8nwpoAoQZKB6qDxtW1G+xq/hvG52Zn+5LTR3BB6q2NpuCZj4KIhJfbhX1FDG7GJ9tnJsoxAoBoulweiHFnWLHks/+EHZGRkoklOLo5UVuD9jRsw8poJqApEznZyeh1ptNh0uQTDz95JbNX3u2PUcI/HcZ2oTwIeS+M+2X+LJMgpTZqjfZZmoR4MBhEMBiF4QpelRZvRIMkyDv9yCJmZWfD5/Sjbvw9f7P4cha3bIhA06HQ1OJ55jBlv18d1+LM1+n07+U7Xq1PI4H0lOp5OhJVlGyPHyej555+Pjz76KOnJ6OrVqzWPly5dipYtW2Lbtm0477zzIMsyFi1ahDvvvBOXX345AGD58uUoKCjAihUrcOONN+Lw4cN4+umn8eyzz2Lw4MEAgOeeew7FxcVYt24dLrzwwqS+JyICHn5gHgDg2kl/0myPlkhOuOpS7Pr4I1QdO4q+PTri0adXotvp2l5nu41mu4ksUFe56ytVO5W2WW+1nf3iyZXA0b36NHDtjEIlrzGb/EaznbcWLTmuCQTw7JMPo1Vxe5x70e+0+1p0xHxf+j1m3zYJshyabTDy2hvQrnNXBIJSxGvaHQ2VDcoFDbZ5BEEzy8oolqJ9r5x8L5zFk9GUYge7OzgHqR5XOcXyN8Iq3hI1Mi2KcsKTYLPvQqxTOP+1fDGOVx3Fb6+fHjqOjU6X3Z9/jnvvuAWC4IIgCJj+l/uQ2eQkBGqkiPgxOp4+doziBgCCJn8PPC4BHtXv2WgWY7TP2C0IgM3vpP34i/9orfp9pPs03RpJhtthB2iNw/KzZ8/G3XffrdlWUFCAsrIyR8eJJ8fJ6CWXXIJbb70VO3fuRI8ePSIWMLr00kvjdnJWDh8+DABo2rQpAOCbb75BWVkZhg4dqpTx+/0YMGAANm7ciBtvvBHbtm1DTU2NpkxRURG6d++OjRs3miaj1dXVqK6uVh5XVFQk4i0RNWrhERh9ZWKWOD66fFXt83XljwdETUVv1miwU9HbqeTr04C2U3nXVdJ2krSoReqo70dXj4aAYYPaYbLttNFrNgIU7wZuokdxDH93cWhHhY8hy3JEPChlDJLG9l16YNkr7wCoi4cj1cHQ44hkNDKw9GWM4idosB8AeARXKK5Uv2+3UPfF8Bh8Dh6Tz9vOpUN2vnOW3yddAz2W70msXy2zc7fTCHcS60aJcbw6xUKxFZdDKdSfVzxnM6g/26qAGLXDJRw7J/fojaX/2RDaVns+FbXxpI+faLFjFDfR3qJLqIurMLP4Mnpesz3K5y4YTLM3PCebn7nTv+Uu1QwQjoza061bN6xbt055nOqZoY6T0YkTJwIA5syZE/FcshYwkmUZ06ZNw7nnnovu3bsDgJLRFxRoF1soKCjAd999p5Tx+XzIz8+PKGPVIzB//vyIXgQiiq/KqqDy/2jJorqydlqx1x3TeQUPRFbyVhW8vnJ32oC21XMdZvKnN3pDuXZhphimbtnthbY6ttVokKPGsy4JjktjN46XH+k/h3j04Fv9fmQZOHQ8oDy2igt9LOjjIKhrgRt13uhXqtbvA5j34Gd63HCrOnk8tR+e+lfmiRZbBt9zowa3Wdm61wk9J5p0qhjGagzXuzppcKu/O9FGTy1jzWwqss1Y0X9n65WcSvVPbNXnXd9ruU2vGVZ9Z3+uMo6n+sZPtNgxihurleHdLgFelwCPy6XchkwfW0Bkh0i0GDPbBpjHmmYfg7+nRnWiPvaidjCJdZ0bRmtPUCSPx4PCwsJUn4bCcTIqNYB7AkyePBkff/wxNmzYEPGc/ksbXuXXSrQyM2fOxLRp05THFRUVKC4udnjWRGTlYFW1plI3qmvVlbTTCj3MrEFs996fbpegNJ6ByErerAEda+PZqrfaqMEc8bdM1VB2lNyacLkExw3iWKcD1qfxGz7HWBvMLlf9Grj632WsozVWnQmG025rt4mSjPKqas33OlojV11W/5z+Fi9mIxBG8RXt9jBZXhc8bgFed6gRHY4tr0sbW+r7++obsVaN7FD56A1ts+22GtpqkvE5qomI3jYJvyWr60EjvmemCaf9DiG7MRN+rWQvNhU+v1ibo0bnax3roed+rKrWxFA84ydaeasY0j+V4amLJXVcATCNLfVzYervr0f3S7MTY6H9BFQb1BfhuKnWbXcca+HnakdH0/22a/Whn7Xp9/vh9/sNy37xxRcoKiqC3+9H3759MW/ePHTs2DEZp2nIcTKaalOmTMGrr76Kd955R7MCbjjDLysrQ6tWrZTt5eXlymhpYWEhAoEADh06pBkdLS8vR//+/U1f0+oDJaL4KK08BkBbKRtVwE4rcb1ozxs97VbVgVk+F7yuoGEl73VFVt5mDej69FB7XILtSlyzr6rxZtYjbdVAdrnsNYydNIidNITVx3UymhNTQhrDyE19R2qMOgNiTWJlGfj656qojVr9xxmtvFknD2CeoEZb4bJJhhdZPhfcAuCtDTZ1bHlU2wBENKzV2wCzBrZomcACtXGo+z6GYlF7/uqYCje0jRrK1Yitca2Mzpp0+qhj1CjWDJMt3Wdj1fFUl2TaTEpF5zMrnM4MUB/fyb6G0+EdJLHq3+WXP0XGk/qhUd0SLX6MYkYfL3beb/g4HndoMbAMnxuZXje8bkGpv7y1dRaAqLEFOI0vwE6MAZFxpq3v6t67Pj6qRfOYCcfa8QYwYFYfQTF6G8VoHwARg2SzZs3C7NmzI8r37dsXzzzzDE455RT88MMPmDt3Lvr3749du3ahWbNmhq/Rq1cv23dP+fDDDx2dP2AzGX3kkUfw+9//HhkZGbYO+sQTT2D06NHKCrbxIMsypkyZglWrVqGkpAQdOnTQPN+hQwcUFhZi7dq16NWrFwAgEAhg/fr1uP/++wEAvXv3htfrxdq1azFy5EgAwIEDB/DJJ59gwYIFcTtXInLu0x+OAzBv7Dpp6NZ3CqS6YlcLV/Ielytq49mqco+WtOor9Wi90voGs53GsllD2XIk1qBxbNUw1rdD1A1iO7fSiDaaY7sB7HLeeI1lCrLddpBZIm03gbVMJMIjo7KML8pDHTx2GryAyXWeYvTGsxUxyi/F7XLhWHUQGT43XIIAjzs0SupxuTSNZ6sGNaBvVIua580a1UD0kaGAJq5CZQO1m3QhW7uP/sOVTKc7GsWTW3AZLnKmOYbue6JPANTHNWtA2hnVDMerrSnFNjuHXIIQU5zEeklAfS8lUJ/rl7XxBBjEhX5mjkkHjFH8mMWI3dk66mN73AJ8HjcyfG5keN1KcqqPKwCa2NJvA8wTVkC0lbQC9kZejWIMCMVZROiI5iOwQYiobsTTdEtLS5Gbm6s8NhtEGzZsmPL/Hj16oF+/fujUqROWL1+umQWqdtlllyn/P378OB5//HF07doV/fr1AwBs3rwZu3btwk033RTTudtKRm+99VZcffXVtpPR2267DUOHDo1rMjpp0iSsWLECr7zyCnJycpRrPPPy8pCZmQlBEDB16lTMmzcPnTt3RufOnTFv3jxkZWVh1KhRStkJEyZg+vTpaNasGZo2bYoZM2agR48eyuq6RBQfThPCr3+oBBC98RoWraJWV/r6pNIJt6bSdSmVfEVtpR+u4IG6hrK64axst1GxO+2J1lfm6sZyRMIqGVXgukatQQM5nLDqG8hK49iiYWzVKLYzyhlt5U3biwzZGOV0ch2s01GaiAayja+4ZZJg8Zrh54KyjG/KamMqSgPNbLTbbL/waK1lZ4GNhrTLJcDtduFYphd+rwt+rzvUaHbVNZ7DDWkAhrEGwDDewvRxpynnEhDuxDGKvfDsg/BrVouS5VRGADAIMwR1vwqP4IpIXsLxFFQNGakTUHUs6TuRwrFp2JFU+30wmzIsijauyYvSmeMWBNuft5N4iSVOoh3fNOm02C/8zLdlddMgjWImWpwB1nERj3tvut0CXC4BmZle+H3uujrKIK4AKI8BmCaq6sfq/1vFVt3z9uMLiC3GXELd6GB1Etataahyc3M1yahd2dnZ6NGjB7744gvTMrNmzVL+f/311+Pmm2/GPffcE1GmtLTU8esDNpNRWZZxwQUXwOOxN6u3qqoqppOxsnjxYgDAwIEDNduXLl2KcePGAQglwVVVVbjppptw6NAh9O3bF2vWrNEkxQ8//DA8Hg9GjhyJqqoqXHDBBVi2bFnKV5IiamiSvUT6vtqGMxBZqbvd2trHTqVvtb9xGeNGirrB7Xa7QpV8lIazWeVu1mg2SlSP176mUYWurszVFbn+Olp1JW5VgYfKahvIdhvHRg1js0axWYNYskoWLRrC0RrB4c/O6rtsp+HrpMFrvEqus/JOz8dIUJKwb5/5yu9Opv9KFvHmshFbpvvWJqNZWUFkZHjg87nhro0ft0uA3xuql+02pIHI2DKKuaqaUAyFWyr6xrQ29gC37juo7igSdR+GOgaNvu8elwsB1bXx4UMFDUZWw/Goj6dwTOq3i6LFtGCLj8mqZSdEGcmMdm21nVVunSzu5aRjxyhOYonFsP37KyO2WcVGNIlY8NPtdsOf4UVNjQSv16XElNvtgt/rgtulihldXAGI6PwBnMcWUBdfRonqcehnDJnHl8fl0qyN4HYJCKp+b/oYC6T5yGiNJMPlsFPC6a1d9Kqrq/HZZ5/h17/+ta3y//znP7F169aI7ddccw369OmDv//9747PwVZ2qc6I7RgxYoRyy5V4MbpfmZ4gCJg9e7bhHOmwjIwMPProo3j00UfjeHZEDUe63mervOyw8n9JlBw1cu2U1Xc42dkn3FgGAI8n9P+aGhEZGR5U+zyaRrO6YgcAO6M6x4OytkKv0TaWAaDGoDIXTSpys0pcXYGbXdMTbiBHaxwbNYxtN4pNfuVmFZFZQ1hZ2MXku65cu2qj8WsUL3YbvHYbu5bXwTosb/d8gpKMQ+W/WB4nXgSb1xaqhePP6/NCFDMQCATh83ng9YYazj6fG9U1khJj4Ua0Ek8GjWigLkGtqtE2oo8HZeOYA+BVdYYExbqOofC1W/rRnvCsDLdLQI2knRIcDC9epIu/uuNbX1cXkKWIWQ1Bk6mJhlxmN8E0v6bc7N6vgHnbS7DoxLFz7XQsSSrgLF6inZudY6v9/MPPls8ni9XgieASUBPwo6bGj8xMD2pqPMpoaUCVmOrjCoBpHQaI8LhdOF6DuMQWYFyvAc7iCwitc6CJrzRt/yTTjBkzcMkll6Bt27YoLy/H3LlzUVFRgbFjx9raPzMzExs2bEDnzp012zds2GB7Bq1eQpJRIrInXRPHeJAkWdPQ+fn7vYCvCVwGrQWryjdaUhneV99gNtrPKGFVl/P6vPB63RBFGYGAqPQ6V9dIml5nj9sF1GgbzKGKOFSpB6W6Cl1JMGt/FfoGcLgy97oEZepxuCL3ugWlVzRciYcr5hpJ1FTgppW3aH19alC/Hr+uUetxCYZTDvW33HFbTU00GdHVN4RjbQBHW9nWzsiMnYVQnNwDMt4Javh8wlP9qqsDOLLvK8CbrY0pt9dkb4dcqlhxWzclrGJNrKm9v7DkRzAow+93K50+Xq8bbrdg2IAGoJl+GHrsgiTLCATDIzy1U5ZrY6hG1I7wGMVcjShHxFX4Wrxw2fD+NZKsxJg69kJUK39LuriKuKxUv0BS5O9LH4dmU33NYswoHkPnZi8mQ69Z9/7MYhOwlwRGi9HQcazjVCmXwARVluvqqaqyb0PxJEcZ0Ywlxuzu4zKpC2tj0OV2QZZkSKIESfSj2iuqYkpSOnuM4kq9VoLH7YJH1MYVoO6siYwtr1tA7cCoaWwp/1fFTjzjK573mD1Rff/997j66qtx8OBBtGjRAmeffTY2b96Mdu3a2dp/6tSp+MMf/oBt27bh7LPPBhC6ZvTvf/87/vKXv8R0Tmm3mi5RQ3ciJZiJ/sN+7FjdghDH/zsVvgGzAH+TugK1FbSk+r+GWcWs5vYojeFoo6P65wWXoNk3NCXLj0BAQPjPp9stw+2WAHjgccsQJXXj1YWgJMIj1iWlgaCIYO3joCgiKIVGTJVGMEKVtVjby6xsV1XSsVG3wrTXoIYbnh5B0Cwg5XG5NLfYcQnae+qZTu012KZuDBs1hD0mvdtmDeCIa1BVb8+q4Rut0WunwWu3oRvP29bYLX+89jKZbz/+AIG3noWv982ALzsyYfQ4bDAbxZ/+mCYNaqP4lWpjVxRFpaNIEr0QRUlpPIeeF5QYE5XGc7hhGoqhuhFTKTSK6HbB4wYCQREuQVC21cWA7oMJx1W4s6fesablddXFlcfl0lzvro4/wDgGgbpbXSkzF3RxCBjHk1mMGcWjVfnQa5pPQbaKTcA6PkPnYx2joWPYS04Be/FqdG7686uqOoafD/6IJk2aIPDWXXXxFI1ZB43TuFOOp9rPKO5qs0DJ7cVxqDtf/ZAkGV6vGx5PqJ6SJNkyrkSpLkEMdZ7W1WGAXNu5qo8lKbLTBYiIrWj0MxL0na1G1PFltdp3OhBl278qzT5OrFy50tkOOrfffjs6duyIv/71r1ixYgUA4LTTTsOyZcuUxWGdYjJKZENDTDDTrQfQ6HQjttVUAYJ6xCVY+68HEGtU22srZvU2/XPq1xFDx9BP/xVFUZOA6p93ww1JNyIhiRKCwVAlHrrOVILb7a69jrWuYg79X1KmPAVrnw/3AAdF1XOSpE1Ia/8VZRgmpOEeY6MeZbPeZE1PdO3r6cuok1J9OSD0eanbf0FZij6N12CbKEuR15oalAufk9G1d+HGr1XD16rRG63Ba6eha7eRa+caTyeNZ315y30kse5HKewGxKD5wY0a0kFdrHm8dfGnxKMqXvX0ZZXTk5SRHCD0+w8GZQASRDEynmrfgLI9PEqqxJdL0MRa+NY+6m3R4g0wjjkgtpFSfewBMIw/IPL7bhSDgHUchvYzjsXQa0fGI2Bw/bdJ+fB5AsbXxVrFJhA9LuwkpqHjRI9VIIbYkoz/DwCoqdbWUUbc3sh4C3Mad2HBmrpEVqzRxpEu7iTRD7n2dxO+LlV0CfB4zOup2hMNHUY1Yhmuw0Lfhdr/izI8bihxVbctttgCoKnTgLqkVP08gKjxRckxcuTImBNPI0xGqdHTN+pef+2/uONPMyBJEm6dcRvGjb8+9mM34ISxIZxaVlaWbkNTwKu65kBd4UaZnmTG5XZpEs5oo6FAXa+yfkTV4wuNsoavHw1fU2p2HY5+CqGdxVdiWSHU6Dkg9tV5jcoBBiv02riO7ccD+/DAzEn45eeDcLs9uOYP0zDgohFR91MzS0iBUMPXqtFr1eCtb0PXaVIaOp5lUc1x7Rxbv49ff82OPxvw+I1HZOozZTccd4YjplGOG47l2lkLbq9bia3QCI4An6/uWjezaYVG17sp/6/HgixGzwF2Vw+tfWsmsad+/Vi5BKC66hgmX3Ye+g+5BNfNiM+lVEadRIB5RxEQe2wC9jpronUehY4TfWaDUtZhbGVmZiG/WXPUVNcua5WVF4qnaOyOgDqJQXVdZ7afNwMut0uZ1eN2u+HxujX1lJ24Auqm6wJ1l5yEt6vrsfC2ULn6xZb6WBFvzWZ8UeL98ssv+Ne//oWvv/4aM2bMQNOmTfHhhx+ioKAArVu3dnw8JqN0wnMyqhkMBjHztun435q3kJObi3P79sall12uWZAr1gSzISR/0aR6BNiX1xRCbUVv55pOO9RTba2OY/R6+kTW43XD73cjM9OrXM/mUy1kpE9CrRrFTlYoBOzcoqL2vTlMQAFYXjNqVM/rk1Cz+ygCgM/rwU0z5+Lk03rg0E8/4g+/vQD9BgxFZlZ21GMYnV88RUtIgVC8223gOhl1sZuPOG086xv/QtPW9hrPYVE6d4xYXbdtFrPqjh5/pl+5Htvvd8Pnc9tKQmNpKBvdosJOx4/6OGbPA/biT18OMP6OW8XiP5/6Kzr3ODP0d8XJ/YItvsumK/HCOiG1Ei0hBaw7jcLsxGroWPZGSwF7sSUIgub8hZMKncWT8gJxumODSXyq48nr88Kf6Q/FVQI6d/Tb9HWZ+v/62FL/3ywBjSW+wudR344eiu7jjz/G4MGDkZeXh2+//RbXX389mjZtilWrVuG7777DM8884/iYjmudOXPmYMaMGREjGlVVVXjggQdivniVKFXUyeWW99/Hqad1RWGrIgDAkAuHYe0bq3HFlVdr93GQs6U6wbPi9KbaiZbbLBcur3ZkJx63XdI3lm3dmxKhW7l4PHVlw6t9+nxu+HyeiEWL4nEft2Qnn/qygL0RUKsEVK1Zy0K0LAjFU/PmBcjNy0fl4V+QmZUdtXGbqCRULV4JKRBbUgrElpgq+0Z5reyTciF4Y1vh0I5Yb+0SjmuX2wV/hg9ZWV4lCfVZrPoZzxHQeDSQnYyA1jcBDdv/3dfY/+1X+NWAofjuy891+1t06iRoBMlqdBSIb0IaZidmw5wmpoB5XGU3zYfgzVCmwaaK2QrWLrcLXp8XmdkZtR07oSTUajGwhjACaie+IvY3iC+7dXtDVSPGcGuXONyf1olp06Zh3LhxWLBggebWmcOGDcOoUaNiOqbjZPTuu+/GxIkTI5LRY8eO4e6772YySg2KJMu2RjLDRfYf2I9WRa2Vx0Wt22D//v3KYzuJpZ0Ez26C6nTFzXRX2CoXbl9m3KY3i6Iccf9Qp5WVW+lxDlXk6huJZ4Rv6eI2vo2LVSO4PtNurRq98Z52G88Rlt07t0OWJRS1bmO6byxinaobZjchBeI34qI/R71YE1T945ZFTSG57I/kOL2Hb32EO3syM73IyPAo8WU2ywCIbCDHci/EsHiNeqpf36gsED0Ww8y+XurYXP7QHIyfPguf7dhSe6zo3zE7Zcym6YbFOl0XiH4dKeCsgybWxLTu+FH2Malfm7bMh8uXYRonMc+cikPcKbdL8rqRlRWOKevZO0BiOnWA6NPa1WWA+sUXEIqxZHRgNnZbtmzBk08+GbG9devWKCsri+mYjpNRs0r/o48+ivu9RYniwaxuMKpsREmGXPucKIV+XC4BNQYVhVUyGG1BN6ubhAOq+ySi4SSc0c45Hlq1aAKPP9P0+aBFD6CYoFX03KpKMJyAZvjcSqWtTjzVlXS0kU6jSjuWKX7JHOU0YtV4VTt86GfMv/0m/Onev9oq77RRYXQ/RKNbwdhZNAWwv6Jn6JixdRpZdjZF+TrbTVZbtmwCtyqmrJJNs+fEGHveoyW24Y6enCY+pYPHaIZBtKTTajQmHUY6jZhdj735rdfRun0ntG7fCbs/2mrreE5GRM1W2Q2LdVGjsGir7oY5WZnaqG6KJUENvY71fgUF2Uo8GX2/o8WKVUzEqxPW6w1dShLLzB2g/h06VmWsRjrV52BWPlqMcZpu4mVkZKCioiJi++7du9GiRYuYjmk7Gc3Pz1fmzp9yyimaPyKiKOLIkSOYOHFiTCdBlCiSJBsmksrz+lGEwlbYt+97VNeE9vn+++9xZp+zlCTILCEzq0Si1S1mIyjBKEloms9EMdWxZRN4M7JMp50YLdtulKAG69HLbDVdK1xxZ3rdSiNYnYR6XYLjZLMhJZpmiaXRbSKcCASqMWvKtbjmxlvR48y+tvaJx83L9RWcIAiWSZ7VvUr11I1du41IO/czNd3X4lY2VtvbNM+CN0M7k8lOzBh91nbjyqrTCAh1HKk7eZpkeEw7eABtwuk02Uz26Kadkc36+PzjbXhn9cvYsOY/OH7sKILBGmRl52D0TTNM97Ebt2ar7OoZ3TNYvb9V7Frdq1TN6tZNRqLdx9SInXubAoC6Om7TvAk8GXWdO3bixqhcaJtRh7hJh5DNzzA8+pnhc9fO3BEi4gow7syJ97R1/XNAfDp0APM486V5MhqMYZputL+38TZixAjMmTMH//jHPwCEYnXv3r24/fbb8dvf/jamY9pORhctWgRZljF+/HjcfffdyMvLU57z+Xxo3749+vXrF9NJECWKJEcGqlVC2bVnb3z26S6UlpYiq0ku3lzzOiZPn4nqYF0FYdSANKrArCpDs4o18hZd8c06G/r1FJ2a+eHy+zTbjBJT/WdaY/D7t3MdRSzXWmT5XErS6XULEYmm0YhmQ04wDZ8z+d5F6yQxIssy7r99Ms7o+2sMvnRkzAltNPqGs1twIQjdtMIoIzeiaD1aoyZBtj06qdopJi6XYDtx1Zdr1ywTvoxMw++6fpO+jGHsWWQFVo0is0TW43Yho7Zzx6yDJ1TOelQm1oWDgMQkmXantwcl2VFMjJv6Z4yb+mcAwLqXV+K7Lz/HlROnxyWuoh1DSTYhGr4/UbQxU8JmzDiZthetkyniFGrPIZbZPsXNMjQzDQB7cQNExo7djlQ7sa++JYpLEJDhc2tm7BhdIuJkmnqykkygfrEmNvA2zongwQcfxG9+8xu0bNkSVVVVGDBgAMrKytCvXz/ce++9MR3TdryPHTsWANChQwf0798fXm89loQnSoIF8+6Gz+fHqN/fqmyLnki6cNus+Rg54kJIkoTrJ92KjCYnoSogavcxOo7hsY3PzWohEqO/z3Zv7xC1nIPkK9EdjEaJdtNMHzIytde3GfWy63uJjRrIRgmq1THs7Od1ha678bqEiETTbEXaaMllPBJLq33056ZnJ/lyuYBd77+N73Z/hLN+cw2ycvMjypiNouzcthlvv74KHbt0xYY3XwMA/On+x9HxlK6ack4a0/bKSvC4BFSL2t9NOEnVU8qYNPyMfoeiGFnOcuqh7nXtxlh46p+T1UTDinJ98Pgj62u7HTh2On6s9rfaHqbv4AEiZxPUZ2XaRCaX0Z6zitn1Kx8FAPT57R9My6gFdTEmQoYkyxHbrTjNWdV/Wz0ul/J780jGf8eCEA23h+ljxuz3o47RqNOMbUwP1p+D3U4nQDMwioIcL/yZdfFkJ2aUsjZizk6nkeGxawuF4yfDU9dZqk80E9WJY7QfENtsgVjjLVGLdFGd3NxcbNiwAW+99RY+/PBDSJKEM888E4MHD475mI6vGR0wYAAkScKePXtQXl4OSdcIPO+882I+GaJ4CwSqURUQoy7yof4anzNoGFYNvEh5fLxGtD3yqc+JrKYhAdpEy1M7Dd7O6Gi0EU7byatVY9hs9Laeo7Xh/Y2uh833e5GZERoZNZ3uZLbdoEEWreFlNsoTbZqZplGmqlD1FaFRxRjPkcowuw0ru8mP4fS12hurB0QRboMszOxz6Xz6r/Cfj8siPp8jNXU3f0/E5wREflahbcaN6GoxcptaNaKP+nhcgmkyqz6nMKNkFjD/PI1iJtr0xDy/FxmZdbMNzH5nZp0zyejoyfC4Iqatm80msNvYjXdSCdj8/KMwiuVAlGE9s+//r4dfEdq/djTNKh6iTfO0GvEO87hcqs43bZIaUF+XrX6Ltd9x88/D4m9t7YHM4kT/eVh2Munpfld2E9lmWT5kZPocxUuY2fff6FixdPqEhZNQfUeOkxXW9eXDkplYAvbWJFAfIxjj6t7k3Pnnn4/+/fvD7/c76twx4jgZ3bx5M0aNGoXvvvsuoqEtCAJEs78aRClSebxG89gqYdRX5voGttHoj+G1VTa6n/WN84zaWx14XILmD3BEgmMQ9GZ/CKySD7cgAFHC1TjpNb+mMhqXy3rKkd/thr/29+C3uKNLtN+v2Shd5DHMX8TsNTwuQflM9BWl6dS8eo5MAvVLJK2Pa698+LBVogg5qP3iGF7La2NE22xfwFnDzai8+Si2GP2+qrq4qGtoqRvgBgmraN24MhuVjThmPUZn9b9On8sFn6qBpp0EbyzWzgFNGZuJkdtVtwJm+LOIdaq61Xbl9eKQUIbOyW7cRC93XBTjltw4SWyiJTX6Eb5Mn0szYm3nVlLh31MAkmHZcBJr+GsXrTsV9KOw6ueUQxgUMVyYSReXZt+DDJc7VFebVB12YkMpG6Xjys51okavp+00iPK3Tr9vDJ04dp53mlRalrOIKQ/Se2Q0KElwOVyM0cl3Lh4kScK9996LJ554Aj/88AP27NmDjh074q677kL79u0xYcIEx8d0nIxOnDgRffr0wWuvvYZWrVrVOxsmSrSfqwIAIpMLdTKo/5sfcW2Hg9EEp38YaiRZaTCHG2b6RpmT0TejP/qGU0HtJEgGjZWoCa4VMTL58Wdmo7rqqHJOdhp56oUU9IKyDI9Fkqm8rkER9XfELBn2GFTyYVZ/D1OdTEbsF+Pf7kPHA/B6qjXb9HFgZzpasqZ/ZnrrFuywO/UzctRAG9P6kSBA1bBTj7BGxKJk2eASZePnwjFtlshqGt+1RcJL7IdiyuFoQZSvhtUiIeG/q3aS3jCnswuAxI1SmnHa1nFymcPBYwHN42ixAiRmyme0eFKmfqpiqW5qdeiLH21lcMDZNOtwEqvfJyBZjNJJ1gmVURJrNZ04O78FfinbCyD0mlZfLZ+DkTl1jBj++bN5i219m8Oq/VBXJjGdOXaPo5RzGFfR4pA5SeLNnTsXy5cvx4IFC3DDDTco23v06IGHH344OcnoF198gX/96184+eSTHb8YUSrsrTym/D9ao9lOI8BsX6vjRON1C8j0uqJOr3FyfWKs1yZGTWZV9Z6+IhFrG8uWSZkuse9/8SgM6N7atLxT+nOKVjmpR8atklyj40VrcNpNLJOdUIZe01n58EuVH6kBxEDEdzzaYjhG20yn38awEI6eemGcDE9tPNlYGCce11PpR4PsjgSZN6Ktk1DN6I8goPcl4zB79mylTDKvo7LTERSxj/p3HuvITANJLMOcdCrtOxyavaOOD7uLR9VnERy7q3AGRQketws+jytiYRzA3q2s1M8BomWcqbu6wrFTXfue7Fy7aBJGCBq83XA9qe+sVn/f2vcehMvO6mB8UINjxaQeIWrUORSvTh2rfSPKxTmx1LMTh3FatJosPPPMM1iyZAkuuOACzV1Uevbsic8//zymYzpORvv27Ysvv/ySySilja9+qrbVMAbsV/Z26BsEHose0/DtQtQ9z0DkrUKMKnDz60FCLVQn03RClWnkVMTw9XT6SsnqOjqz0Vj9tKlY72FoxmkF56S8UWVop9HpNNmMNcms76JTVq8r1LaW9v1SjZpjVQDsN4QjZiVESSjtxJzVfWXD99aze09YIDGN6WgNaX3jLQDJMEaDJtOGzRrQ6k439WqtsSaliUhm7c7gUJ6zERP1jeVoYl3dPFr8f/vjUc1ju/FiFidGsWH31iBmx/W4Bfg8btNbhgBQYgtwdo9K61uGGMeOOv6qoa3bqkXJ9jWRAd0lHeHd1DF33O4tjWQppoQ03vFlZ7aU09dOl86eeN+BINnS4dYu+/btM8wBJUlCTU2NwR7R2UpGP/74Y+X/U6ZMwfTp01FWVoYePXpErKrbs2fPmE6EKFE+319h+bxVIBtV6m4bfzn1+6n3MRp9C4/i6Huegbr7gEVrLJutQqneBlhf26MfyYkYxTFcjMJ46qF+yqHZ9XJB3TW7ZlOinfa6xsJJpWhV6TlJPmNJPGNNOuu7+BQAfP/jURwzGfwyu6G7WYeD1Q3gnZAkWfM7d9d2/OQ08cHncZve9N3shu9mDWn1/80a0sfD/zdpSFs1ooHISwKMVoZVN6DVX7VwA9qs8Ww1+mPGaUPZ7jS+aK8Rz+QzXnFtfvz6xdX3Px5R/q+PFTsxYnWf23h19rndAjIyPPD5PEpiahRXAJTYAmB6b0sgenxV1W4zSlaPQz+LIfKacTXRYDZDUNUzarWAj/rXK8l1j40+9vA0dbtJqdP4sls+1hkGgP26tqF2/lBidevWDe+++y7atWun2f7Pf/4TvXr1iumYtpLRM844A4IgaKazjR8/Xvl/+DkuYEQN0fdllXE/ptPGh1s1KurWJaNutwtutwt+rwt+b7jXObLBbNZYdjKiE24gGzWO1Q1jfc+y1TQo/ciN0aiNfrEJdYVYrfqbYXbPPY9LsJ2kGi2sFm/xSESdLvwUi3pN49VPd6799+DBY6iQ5ZgSSatGczyEf/dutwsejwBRlODzuZUGdPiG8HYb0UDkaM/xoAx1CKufq6qpi6cqOG9Ee10Cwrc0DsdieOp7OB7DDWir25eof81Bg1t/2JmaqOyvi+N4iWWxL8D+rYjsSsY12tHisKzsiGlsSPXssLHTJnO7o0+tdrldyMz0IDPTC6/XDbdbMI0rALZjC0D0+KqpK6OOsRqLEVX9Ilk1kvaa1mhxBoRizSMImvgJyhKCUmgGg9FHpoysmsScXlCS49oplMhp7ono/AHi2wHU0O+lfiKYNWsWxowZg3379kGSJLz00kvYvXs3nnnmGfz3v/+N6Zi2ktFvvvkmpoMTNQQ/lJmPjNqphNVcBlNt7fzxCzeO1Y/V/w/3Olf7PKj2iqYNZqseZ6tpUeEKXN1ANmoc6xvGYaJuNNWqQRwetdGP2KgrY/W0QXWjQZSliJVw3YLLNEEFoo8kqZPTaJWpJCX+/qqJFvMUX5v7/fLTYRyqOR69oAnZIiEVLGLJKPb0wvHscrvgcrsQDMrw+93w+YJKA1rd+QPAMNYAKPEGiJajPOGBJ/W0fyX2pLpOIPVN6dX3BAxfe65uQJs1ntUJpwjZsOEMRC7Opv6VuwTzhnK05LS+033NjhtPiVgoLNHT7A+V/6L8P9kd+nbrQLfXjZqAH9XVYm1MeRAIiEr9FY6raMkpEBlbx2tC26pqIhNUfXx51fEjqb//dZ2w+ntuhhcJBKCJsdBz2in3RnGmn70TKme8aJA+1ur2U13+or8lTZziKlGJaEOYgcAks+G45JJL8OKLL2LevHkQBAF/+ctfcOaZZ+I///kPhgwZEtMxbSWj+qFYooZOnYAc/O5buDPz4AqvMGdztTujSjrcWNYfw6pCD5d1uV2acsp2V6giF0UZgYCIgM2RnFDlG6rMg1JdRW5ViQN1Fbi+8o7WMDZqFFs1iAFtpR6QpchpTZI20RSNRkZdkclp6DyMG85WyamdxDTcxog1KdVPGa0vJ+cR05RfG/vIsoxg7X1Gj/6wD5VVLsDXRIkp84M7X8wGbuNqKVrcqhNRAPB4Q8cRRR9EUUIgIMLnc6vizV3beJYhSgKqa3SdQEp8uJTFX/QxBwA1YuTojlg7uqPElS75VGJJlJXOoXBZPVGSTRvOgO53UvtQ23iWlIazfjTHaBTHqNMotK8Qsd14en7t1OQErCQSrVFsJ1YSlYQ6jT3136Ij+74CvNnR48mI2xu9jBWjGDWIQa/PC0mUQj+SH8GgDI8nNDrqdgtKXFklpqgRo8QW4HGHYiJczygxVHse4XpNHV8ANHWYk/gypr0Njf56W/39wQFtcmo3MXWSlEYbQY013pI5EyHRCahLEOJyKUoqBUUJLoezIewu6hdPF154IS688MK4Hc/xAkavvvqq4XZBEJCRkYGTTz4ZHTp0qPeJEdXHsWN1K+ge/+9U+M6/B66sptpCVg1lg8o43MjVN3qVXWwkr0b7utwueH1eBAIC1CEpKhW6jNAa71JohFGS4RHVSWntdndo8SF9Ja4MlcZw7ZB+ulMd9R8/3ahpbUXtEYSIClp/rU1QlrQN59pk1Krhqx45dZuMtqqpz0ct3Bi0SkrNKllRli0r1ngnpHY4rYSdlK+qOoZX//UCevXqhZpNDyNw8CB8v7oVyMo338lpI1kdcwb7SlGOJ4Xj2e2By+2CJErw+rxKzLndtZ0rtbEXCABut6SKMwGh77Ur1KmijOrUxZen9iX0MRei+7Lo4k6dlIaZjZjqy2g7huo6jNRJJmByqylNfGnLG137ZtVQNhopTeZKvfWViNWtHcdd7a9VXUcF3roLvt43A5l59g7icRpbFuX1dZ3bCxisQVIjZigzDsL1l1ibQIaTzxBtTIQSwlCHT2jtBF195SC2NDFUj/iy6ngFEBFj6jUgREnWdBAZ1S/6OANCsab/WpkteGQWV8mOt3glog1pFgLFz9atW/HZZ59BEAScdtpp6N27d8zHcpyMXnbZZRHXjwLa60bPPfdcvPzyy8jPt2ioECXT8UpAqP26G1W+ejWRz0liqLaUavfXJ6OSW7cqn9ulLPjjltwQXAIkUYLL7YIoiprktSZQUzuNUILbLdQuOlFXEbtdoUZyOPmsq/C1lXhdg1hSEtK69ylEjNaoK+Uwq5FSdWVdN1IqaRrD6kpaX0FbNYLVjBJLo4pYlKWIHmHTilx3PokUr0TUbo9zIhNRUzUBoKp24RXDjp2quv+ajHZqqBvY7qD2ObcHEA1ayOrYFWtCjyUxFKs+H0RRRE2gpjZWJVXjuS7xjEwmJbhdrtpGbG2MuerizuMWIMkyXIJ2W/j7rY8vUY7fKI6dGAyXc8KooZwosa6YW997+MZz1etYE1BLNdWAcMT8efV3vaba/qwDtwcImqxw6fHWxVX4+KIq9nQdROGR0WAgWFt/habCKwt1GcRVOEkNfScj67FYYkvNKL6UX5ON+NJP4TW6dYwRfdl41i9O7wEay/Tc+o6IptMsBIqv77//HldffTXee+89nHTSSQCAX375Bf3798cLL7yA4uJix8d0nIyuXbsWd955J+6991786le/AgB88MEH+POf/4y77roLeXl5uPHGGzFjxgw8/fTTjk+IKB6ysrJ0G5oCGTl1j21OTVIzm2YLWI+Kqsu63e6IUVEgNAXK4wlNbwpNd9Je22a1OET4D3OsS+xHX/Co9j2q/m93dV6jMkD0hq+de6I6uTWEWcVrVuFaVbTRKtholaqdijQRSWh9Vu3Nzs7CiN9djb1fqe4hln0S4PHXPY51umC0zqFox1XHsqqjKDwq6vV54XIJ8PtD03LVU3UtpxQCFteRAnYWYwHM4w6we2uL2rdmI/7C5awWH7MTi3buUWy2PZ4N4/o2iBtyApqZqa+j8rTxZCTaiGicZyNotrvcyqioxxeafeD1upV6K1pcAbB5HWnssaUpo46BesRX+Ly1j3UxFYcYC+2X2iQ0mSOhTD6NSbJseE/gaPsk0/jx41FTU4PPPvsMXbp0AQDs3r0b48ePx4QJE7BmzRrHx3ScjN5yyy1YsmQJ+vfvr2y74IILkJGRgd///vfYtWsXFi1apFltlyjZ9H9UfXlN4fZnRpRzsoCR0fWiRvsbLnJkNU23tgIPr1Lo87mVSly/fD4ATRIabfn8aAloeF+z5+qTgOrL6euecGWsTVoFTUVqt7Hr5NYQsY6w1GcF3XRMQNUEQYDbo60uhCbNAF9WZOFYqRrGdq8P1VPHmeAS4M/0w+N1KwuuuN1CxEJGzhZciez0AerfSI6lgWwWg0BiG8dMQM2OabsogMgERzipMHoyavtkHF6rbeM6bbfbDV+GD/5MP7y+UF0V7uDxel2WnTsATOsxADHFltFzQOwdPPrn1DGjnqcR3idajIXel/ZxOiag8RwBTcb093RfgDAdvPvuu9i4caOSiAJAly5d8Oijj+Kcc86J6ZiOk9GvvvoKubm5Edtzc3Px9ddfAwA6d+6MgwcPxnRCRImQ2ywX3ozseh9Hn0Racesa1OHVdPUr6Yb+rbuHm3okNHybFwCaBDTaCGgqks9oDV6z0RaP7vVjHQFl8hm/5NOO7Kb5ELwZoWOovtP1vRWF3QXG9PQdPV6fF/4ML7KyvEpjWd3RY7Q4GKDt7Ak/Dv0b+/0Sw/vrn1M/Dzgb/VSL+O6rYsYjuGJuFMerQZzIxnAqks9YYibasbOb5gPuOCWjMbBayRqojadMP/wZ3trOndBIaDim6ju7INnJp1Xnjr6svs7zCEJcO3istqdr8pmMxJNSo23btqipiZz6HwwG0bp165iO6TgZ7d27N/74xz/imWeeQYsWLQAAP/74I2677TacddZZAIAvvvgCbdq0iemEiBKhsFUu3L7IkVEzZvd8s/sHVp+I1m0XDMu43S5k+T3I8LmVitvncUVU1k5GPZ0mnXZHWmJNOs22aSp9waWpfBt60gmkT+JZnwrcbbBKYcuipnD5MjTbQtePWYvl/qR2hWMqPHUwIyN0X0Sj6e7R7oPodNptPEY8nSadZrGouuMFfC5BE5NMOhM74hnrlMKmLfOVeHISI07u3WvUUWS388flEpCV5a3tNA0loH6f21GnTqqntKtf26gsYBJjqpFmn8sFn76juREnnaFjxT/uQsd1VDym12hoRElWFt1ysk99zJ8/H3fccQduueUWLFq0KGr5BQsWYMqUKfjb3/6G3r17QxAEbN26FbfccgsefPDBmM7BcTL69NNPY8SIEWjTpg2Ki4shCAL27t2Ljh074pVXXgEAHDlyBHfddVdMJ0SUCMWFufDopulaLYft9I+BHepKVLs9VIFn+Nx103JrE0990hlLwpmsEc5o28xGOCXVlEuPS0CGReMoFdd4AumTcDo5Dz2ny+63bNnEcOo7YN6YNt+uukF97XdZrEcMhqcLZmV44K+dXRCaZRDZOLZ7r14g/glnoqbXqmMoPPWdCafVMW0XdXxsu/sUFeVETNONlpSaxYjVfk6SVzWXS0Bmphd+dT2l69QxmrkD2IstIDWzCOxMr1U/Do2M1k3l13MaZ1b7hF/PDBNOqq8tW7ZgyZIl6Nmzp+19xo0bh2PHjqFv377w1F6+EwwG4fF4MH78eM1lmj///LOtYzpORrt06YLPPvsMb7zxBvbs2QNZlnHqqadiyJAhyj2yLrvsMqeHJUqoji2z4cuou77N6BYK+m36m1pH4ySBNUpMczM8yhRbr1uA1yWYJptWiWYyk0wnDVmzSlW93etyaSrY+jZe4zGd1s55OD1erOWdnIue02Qzmo6FOco0XTX9Ygr6uDDqBIq4t6wJJ/dT87hdaJLhMezgAayns1slmvFoBMfz+jKjbVWqbT63G35dh4+ZEzHRDB3XUfGE3a/XStsW2RGdO7HGjmE5G/WTaFHnuV0uZPjcyPC6lVk7Vp05DXnmgHYfG3Gm6tzxe1zI8OjOI81Xs21oU2pjjaUT4T6jyXTkyBGMHj0aTz31FObOnWt7Pzujp045TkaBUJBcdNFFuOiii+J9PkQJ0bGpH/5MXa+zrhJX3+IkIjG1mWjqb5PiRKbXpSShbpcQMX3WaOEEswWCUpVYAs6ny7p1veBmNyaP1wim2XnU95ixlgfqP4W2vmK5FU2nZhnwZWZFfOf1saN/rA8lo44hq+1mnUTqWzeExdLBo94W69R1IL7JJeAsPtWzDTLcLsPZBul+7Viyps/Wt3Fr9zw7Ns8MxZNoXg8B0ePHTqeqVX1m1eGT4XMj0+tWZuzoZ+vEcz0CIIHJZZTt+lhTx5Nf17ljdb5qyb5nZ0NLMGN5nXjt21hUVFRoHvv9fvj95tehT5o0CRdffDEGDx7sKBkdO3ZszOdoxlYy+sgjj+D3v/89MjIy8Mgjj1iWvfnmm+NyYkTxVNwkExm1t3vR9ySHb/IO1N3/UnnOqCI3WEbbbM6+k9FVv8etWRghXJdYXe8VLaGM161OgMSNUgZ1i0J5bF/DZKtYqGwSRzpSnViGziF+FXf496A/tXb5mfBkaEdG1XGg/+7rk1Z1WbNOHKPGuFFD2mh/r0tAps8VtXMHsNfBEyqX3IV/9OemZxavQXUD3y1oOnyMzyt1SWXo2I6Kx/Qa9d1P2T9Oi6fof+ftm2bC66+LJyfxY/S8Onb0MWPVaWo2a8jrFpDlDY2Ghjt2AGhiC4geX+oyYbHGmdX2eE6LlVV1ktflgjfKlyCeSWXoeImLvdDxHe8S82vFY1/lGAbnne6LGwVFCYLDdRXCHUj6+3vOmjULs2fPNtxn5cqV+PDDD7FlyxbH5/jhhx/C6/WiR48eAIBXXnkFS5cuRdeuXTF79mz4fD7Hx7SVjD788MMYPXo0MjIy8PDDD5uWEwSBySg1SM2z/PBlagNEnyfKqiRTn3AaTYUSZZtTpmyOlqqv63IbXJNiVEmm6hpKIH6jGNpFnYS6JdpT0Nisb0UWz6mw8Uwogfj3LDfP8CMzq25aoT4egprE1LwDCIjsBArtozueg06gMLerbuXLWDp3APurOSvPJWH6Xei8zI8T1Mw2cMHrYIXixjJKEs9GazzivkWGD5lZoWQ0Il4cxo9V7BjFjFmnqT5p9boE+D2hUUH9irJOZubEs7MmfC5W6jsqaXf2jvFxG/bMmnp3zsStAzUuh2nUSktLNXc7MRsVLS0txS233II1a9YgIyPyUptobrzxRtx+++3o0aMHvv76a1x55ZW4/PLL8c9//hPHjh2LaRqvrWT0m2++Mfw/UbrI9HuQleGNuJ4t4rGuTo583igpjdxmVLfLUW5MHK4ww3+UjRo4VhVbIqe4OT2+k33VDRqPy2U45RFoeI1HvXgnj8pxkzQ9Kdrp65/O9XuQ6ddWIfpYsOrwAYwTTH3D206nj1mHT/jaLqPOHcBZBw+Q2hEPZR8bx1ev1C3UXkd1IjRYgfg3WhPxtwBw/tnm+r3I9HuVx4mIHbudpfpkN8wjqFbLVU/BtXNZSBKmsIbOxWlnSvTy+tk7Llfs1ybW9/sbl46YOH/nE5FIxhqXjXk6b25uruGtN/W2bduG8vJy9O7dW9kmiiLeeecdPPbYY6iurja9lzcA7NmzB2eccQYA4J///CcGDBiAFStW4L333sNVV12VuGTUSCAQwDfffINOnTopqykRNTThlbwyvW5k+kLBpU8wgcgkM1qj2vQ4NhNTo/JGDUbb10A2sJECI2aVi3qKl9flrNfZSKKSQsPXSkHFl8S3p5GZ1QRAqNICQh08GT7jCstOHNiJQ6B+nT2CLqacdvBoyqWo8RnL66uvnQ2teqrdN1Hf20T9DUlUwqiW6r8bGb66OirMrO6INXbsxo1RogvUJZR2FplLxLWNyj5Jru/0s3cSHU+JiM9U1e/xZGvdiFRVkHESlGQIDtcesTv7LuyCCy7Azp07Nduuu+46nHrqqfjTn/5kmYgCob8ZUu0fk3Xr1mH48OEAQtOEDx486OhcwhxnkceOHcOUKVOwfPlyAKEMuWPHjrj55ptRVFSE22+/PaYTIYq3SbfMQIv8UAPa73HBr1sBz7iRa5RgGh+/Po3puvJ1/4/WaLYjHf8Qq885tEJjw52v05B/vYn+7H917kCc2rOPcg2K3+Oq6+CxqAzNvv+OGtoxHsNsRDDVU0QdvV4M4aCZ3u+KbDzblYwGpplU/i1L1mc88rop6NquGQDAV3tvaTN2OzWjbXcSd6Hyqg7T2s/E6veTyhH4RL2O3dk7pq+XgiotFbGb6vYHV9O1JycnB927d9dsy87ORrNmzSK2G+nTpw/mzp2LwYMHY/369Vi8eDGA0MzZgoKCmM7JcTI6c+ZMfPTRRygpKdGspjt48GDMmjWLySg1SEa9mZ7aiYeaSlhVxqryDzWwI//omTXKrTqu1A1nIw05AYoHdcPZJTSM95vqSjXRYm2oaEbcVNc4hz80o++5vpJR4s2g8zUUP8bnZrdTRy/eU2sbKvV3Vn2NqNNrRlMhXRqQ8f6zoD5e1M9JFS+R9Yz2xOpixfiEY0ls1ZJ9XWOy6f8exHv2Tjw15LoqXeKanFm0aBFGjx6Nl19+GXfeeSdOPvlkAMC//vUv9O/fP6ZjOk5GX375Zbz44os4++yzNVM1unbtiq+++iqmkyBKNLOKXpJluE0qbLjNF0gxTGQB28ksYNxgOBEaxXaoEwt1ZRq+Hqc+GsvvMBXcgvVnZa+9KZiPpOqOpy5mVFlZJbaRh2483wv1e21IowUNuN0cd06nFGo6d0yE48EVJRlSx4phcmnaEQRYdQbFa/G7dBPvOsr26zaQuE2ERP0K06jPo0EpKSmxXbZnz54R03wB4IEHHog6xdeM42T0xx9/RMuWLSO2Hz161NZF6ESpYDbipv9jr28jm1X64QreNJEFIArWPcweCBENhXhXPnZ6uVPBpfq96a9va0i9zqSlXqfE6LOyeyejaLcaAUKN3+gNi9pOoSjXzKRzIznaezOifrvxnm2Qzr/LhsxOkmOnoa3/vtiuU1yC5QyeWFYGifdXpR638a4Xq84dhkPyWS7kmOYfSH1u7ZJqsazMG+b478tZZ52F1157DVOmTAFQdyH7U089hX79+sV8IkSJFK2iD1fgdv+OuQTrihvQJrJmSaFVMhsPTo8f7VYZidBQR3GMNNTkPizRv7tox4/nVDwX7Ce6dpLbdBXLe0u3abqNlXqk0S0IcZnVEf6+WE1rN2P1LZEkOeUN/VR9i6MtCEZE9eM4GZ0/fz4uuugifPrppwgGg/jrX/+KXbt2YdOmTVi/fn0izjEhHn/8cTzwwAM4cOAAunXrhkWLFuHXv/51qk+LUsRJJes0cQ2VNb+mriEJJ9DJTLrUN0d3uwTN43iJV5LdkBPlZEt2x4FLfc1cA+8USDX1CLbgik8ngd1R7xNZvK97jMfnZPa5xPtyhRO5wyeaRHQaUGLws0lPjpPR/v3747333sODDz6ITp06Yc2aNTjzzDOxadMm9OjRIxHnGHcvvvgipk6discffxznnHMOnnzySQwbNgyffvop2rZtm+rTowSI1nB20riNpXc4lgQ2mSKmJyczyYhhZNRpMpKIBLcxSkbHQZhVBwI7BayZxVR9kvh0WoCmMeHnknjROg3YUUPxEhRlCKLDW7s4LN8QxXSD0B49eii3dklHCxcuxIQJE3D99dcDCK0M9cYbb2Dx4sWYP39+is+OUiERCZDm+AlstMdyTZlesnO1+p5yuicjHNmLrrF0ICRzany6x82JJp0uUUiGdP27yA6BhoOfRXqynYxWVFTYKpebmxvzySRDIBDAtm3bIm5BM3ToUGzcuNFwn+rqalRXVyuP7f4u6MQSr5HVeKtPohuPRDYW+gVW1P938nYa+rRnM+nY6EzXhmJDl4ikuz4j2Km4bpwIaLh/FxPRacC/p5ROpk2bZrvswoULHR/fdjJ60kknWa6WK8syBEGAKIqOTyKZDh48CFEUI27MWlBQgLKyMsN95s+fj7vvvjtie6Y39EMNk6T6bBL/WTXMSjS61J+3S6zryszJcCE7g12bDZVPrrtwMz/Ljeys2JZxp8Ti55QeMoW6JljzJh5kZ8c0WY0SjJ9T+siQ2ShPhO3bt2seb9u2DaIookuXLgCAPXv2wO12o3fv3jEd33ZEvf3228r/ZVnGb37zG/zf//0fWrduHdMLp5o+sQ4n00Zmzpyp6RWoqKhAcXFxQs+P6i8rKwtHjhxR/k8NEz+n9MHPKj3wc0oP/JzSAz8nShZJkiE6vAg5GTPc1DngwoULkZOTg+XLlyM/Px8AcOjQIVx33XUxLwRrOxkdMGCA5rHb7cbZZ5+Njh07xvTCqdK8eXO43e6IUdDy8vKI0dIwv98Pv9+fjNOjOBIEAdnZ2ak+DYqCn1P64GeVHvg5pQd+TumBnxNRnYceeghr1qxRElEAyM/Px9y5czF06FBMnz7d8TEb3Xw4n8+H3r17Y+3atZrta9euRf/+/VN0VkRERERERA1XRUUFfvjhh4jt5eXlqKysjOmYjXLi+7Rp0zBmzBj06dMH/fr1w5IlS7B3715MnDgx1adGRERERESNjCjJEBxOu032onP/7//9P1x33XV46KGHcPbZZwMANm/ejD/+8Y+4/PLLYzpmvZJRqwWNGrIrr7wSP/30E+bMmYMDBw6ge/fu+N///od27dql+tSIiIiIiIganCeeeAIzZszANddcg5qaGgCAx+PBhAkT8MADD8R0TEGW7a0vrc92//Of/+D888+PmEf/0ksvxXQi6aSiogJ5eXk4fPhwg7+VDRERERHRiS5d2+fh8x70wDp4Mp1dnxysOoq3/zg46e/56NGj+OqrryDLMk4++eR6XVdte2Q0Ly9P8/iaa66J+UWJiIiIiIgoJCjJgOhs2m0wRfeGzs7ORs+ePeNyLNvJ6NKlS+PygkRERERERJRejh49ivvuuw9vvvkmysvLIeluRfP11187PmajXMCIiIiIiIiI7Lv++uuxfv16jBkzBq1atYrL+kFMRomIiIiIiMjS66+/jtdeew3nnHNO3I7JZJSIiIiIiCiFRFGCIErRC+r2Sab8/Hw0bdo0rsd0xfVoREREREREdMK555578Je//AXHjh2L2zE5MkpERERERESWHnroIXz11VcoKChA+/bt4fV6Nc9/+OGHjo/JZJSIiIiIiCiF0mGa7mWXXRb3YzIZJSIiIiIiIkuzZs2K+zF5zSgRERERERElHZNRIiIiIiKiE9zixYvRs2dP5ObmIjc3F/369cPrr79uuU/Tpk1x8OBBAHWr6Zr9xILTdImIiIiIiFJIFGUIoux4HyfatGmD++67DyeffDIAYPny5RgxYgS2b9+Obt26Ge7z8MMPIycnR/m/IAiOXjMaQZZlZ++CUFFRgby8PBw+fBi5ubmpPh0iIiIiokYtXdvn4fPuM/t/8GRkO9o3ePwots7+Tb3ec9OmTfHAAw9gwoQJMe1fXxwZJSIiIiIiSlMVFRWax36/H36/33IfURTxz3/+E0ePHkW/fv1svc7o0aMxcOBADBgwAKecckrM56vGa0aJiIiIiIhSSBIliA5/pNpbuxQXFyMvL0/5mT9/vunr7Ny5E02aNIHf78fEiROxatUqdO3a1dY5NmnSBA899BBOPfVUFBUV4eqrr8YTTzyBzz//POb3zZFRIiIiIiKiNFVaWqqZpms1KtqlSxfs2LEDv/zyC/79739j7NixWL9+va2E9MknnwQAlJWVoaSkBCUlJfjrX/+KSZMmoWXLljhw4IDjc2cySkRERERElKbCq+Pa4fP5lAWM+vTpgy1btuCvf/2rkmjakZOTg/z8fOTn5+Okk06Cx+NBYWFhTOfOZJSIiIiIiCiFJEmGIDlbV1ZyWN6ILMuorq62VfZPf/oT1q9fj48++gjdu3fHeeedh5kzZ+K8887DSSedFNPrMxklIiIiIiI6wd1xxx0YNmwYiouLUVlZiZUrV6KkpASrV6+2tf8DDzyAFi1aYNasWRgxYgROO+20ep8Tk1EiIiIiIqIT3A8//IAxY8bgwIEDyMvLQ8+ePbF69WoMGTLE1v7bt2/H+vXrUVJSgoceeghutxsDBgzAwIEDMXDgwJiSUyajREREREREJ7inn366XvuffvrpOP3003HzzTcDAD766CMsWrQIN998MyRJgiiKjo/JZJSIiIiIiCiFRFEGRGfXgIoOy8fD9u3blZV03333XVRUVOCMM87AoEGDYjoek1EiIiIiIiKylJ+fjyNHjuD000/HwIEDccMNN+C8886zvZKvESajREREREREZOnZZ5+td/Kpx2SUiIiIiIgohURJAkTJ+T5JNHz48Lgf0xX3IxIRERERERFFwWSUiIiIiIiIko7JKBERERERESUdrxklIiIiIiJKIVGM4ZpRh+UbIo6MEhERERERUdIxGSUiIiIiIqKk4zRdIiIiIiKiFAoGZchu2dE+YtBZ+YaII6NERERERESUdExGiYiIiIiIKOmYjBIREREREVHS8ZpRIiIiIiKiFJJE2fGtXSSR14wSEREREREROcZklIiIiIiIiJIuLZLRb7/9FhMmTECHDh2QmZmJTp06YdasWQgEAppye/fuxSWXXILs7Gw0b94cN998c0SZnTt3YsCAAcjMzETr1q0xZ84cyHL6D3ETEREREVF6kiQ5pp90lxbXjH7++eeQJAlPPvkkTj75ZHzyySe44YYbcPToUTz44IMAAFEUcfHFF6NFixbYsGEDfvrpJ4wdOxayLOPRRx8FAFRUVGDIkCEYNGgQtmzZgj179mDcuHHIzs7G9OnTU/kWiYiIiIiIGpW0SEYvuugiXHTRRcrjjh07Yvfu3Vi8eLGSjK5ZswaffvopSktLUVRUBAB46KGHMG7cONx7773Izc3F888/j+PHj2PZsmXw+/3o3r079uzZg4ULF2LatGkQBCEl74+IiIiIiKixSYtpukYOHz6Mpk2bKo83bdqE7t27K4koAFx44YWorq7Gtm3blDIDBgyA3+/XlNm/fz++/fZb09eqrq5GRUWF5oeIiIiIiCgeJFGK6SfdpWUy+tVXX+HRRx/FxIkTlW1lZWUoKCjQlMvPz4fP50NZWZlpmfDjcBkj8+fPR15envJTXFwcr7dCRERERETUKKU0GZ09ezYEQbD82bp1q2af/fv346KLLsIVV1yB66+/XvOc0TRbWZY12/VlwosXWU3RnTlzJg4fPqz8lJaWOn6vREREREREVCel14xOnjwZV111lWWZ9u3bK//fv38/Bg0ahH79+mHJkiWacoWFhXj//fc12w4dOoSamhpl9LOwsDBiBLS8vBwAIkZM1fx+v2ZqLxEREREREdVPSpPR5s2bo3nz5rbK7tu3D4MGDULv3r2xdOlSuFzaQd1+/frh3nvvxYEDB9CqVSsAoUWN/H4/evfurZS54447EAgE4PP5lDJFRUWapJeIiIiIiChZREmELIqO9pEkZ+Xnz5+Pl156CZ9//jkyMzPRv39/3H///ejSpYuj48RTWlwzun//fgwcOBDFxcV48MEH8eOPP6KsrEwzyjl06FB07doVY8aMwfbt2/Hmm29ixowZuOGGG5CbmwsAGDVqFPx+P8aNG4dPPvkEq1atwrx587iSLhERERERndDWr1+PSZMmYfPmzVi7di2CwSCGDh2Ko0ePpuyc0uLWLmvWrMGXX36JL7/8Em3atNE8F77m0+1247XXXsNNN92Ec845B5mZmRg1apRy6xcAyMvLw9q1azFp0iT06dMH+fn5mDZtGqZNm5bU90NERERERBQP+jt9mF1iuHr1as3jpUuXomXLlti2bRvOO++8hJ6jGUEOZ3NkW0VFBfLy8nD48GFl1JWIiIiIiFIjXdvn4fMuHP8cXL4sR/tKgWMo+/s1EdtnzZqF2bNnR93/yy+/ROfOnbFz5050797d0WvHS1qMjBIREREREVGk0tJSTQJuZ+FVWZYxbdo0nHvuuSlLRAEmo0RERERERGkrNzfX8Wjw5MmT8fHHH2PDhg0JOit7mIwSERERERE1ElOmTMGrr76Kd955J2I9nmRjMkpERERERJRCkigBouR8HwdkWcaUKVOwatUqlJSUoEOHDo72TwQmo0RERERERCe4SZMmYcWKFXjllVeQk5Oj3CYzLy8PmZmZKTmntLjPKBEREREREcVu8eLFOHz4MAYOHIhWrVopPy+++GLKzokjo0RERERERCkkiiJkUXS0j+SwfEO8oydHRomIiIiIiCjpmIwSERERERFR0jEZJSIiIiIioqTjNaNEREREREQplIxbuzREHBklIiIiIiKipGMySkREREREREnHabpERERERESpJMmQJYe3XnFavgHiyCgRERERERElHZNRIiIiIiIiSjpO0yUiIiIiIkohUZIgiKKjfWSJq+kSEREREREROcZklIiIiIiIiJKOySgRERERERElHa8ZJSIiIiIiSiFJlCC4nF0DKou8ZpSIiIiIiIjIMSajRERERERElHScpktERERERJRCoihCcDm8tYvDW8E0RBwZJSIiIiIioqRjMkpERERERERJx2SUiIiIiIiIko7XjBIREREREaUQb+1CRERERERElCRMRomIiIiIiCjpmIwSERERERGlkhiM7cehd955B5dccgmKioogCAJefvnl+L8XB5iMEhERERERNQJHjx7F6aefjsceeyzVpwKACxgRERERERE1CsOGDcOwYcNSfRoKJqNERERERERpqqKiQvPY7/fD7/en6Gyc4TRdIiIiIiKiVJLE2H4AFBcXIy8vT/mZP39+it+MfRwZJSIiIiIiSlOlpaXIzc1VHqfLqCjAZJSIiIiIiCht5ebmapLRdMJklIiIiIiIKJXEIOCqcb5Pmku7a0arq6txxhlnQBAE7NixQ/Pc3r17cckllyA7OxvNmzfHzTffjEAgoCmzc+dODBgwAJmZmWjdujXmzJkDWZaT+A6IiIiIiIiS78iRI9ixY4eSR33zzTfYsWMH9u7dm5LzSbuR0dtuuw1FRUX46KOPNNtFUcTFF1+MFi1aYMOGDfjpp58wduxYyLKMRx99FEBopakhQ4Zg0KBB2LJlC/bs2YNx48YhOzsb06dPT8XbISIiIiIiSoqtW7di0KBByuNp06YBAMaOHYtly5Yl/XzSKhl9/fXXsWbNGvz73//G66+/rnluzZo1+PTTT1FaWoqioiIAwEMPPYRx48bh3nvvRW5uLp5//nkcP34cy5Ytg9/vR/fu3bFnzx4sXLgQ06ZNgyAIqXhbRERERETUmEk1gOh2vo9DAwcObFCzQtNmmu4PP/yAG264Ac8++yyysrIint+0aRO6d++uJKIAcOGFF6K6uhrbtm1TygwYMECzwtSFF16I/fv349tvvzV97erqalRUVGh+iIiIiIiIKHZpkYzKsoxx48Zh4sSJ6NOnj2GZsrIyFBQUaLbl5+fD5/OhrKzMtEz4cbiMkfnz52vu3VNcXFyft0NERERERNTopTQZnT17NgRBsPzZunUrHn30UVRUVGDmzJmWxzOaZivLsma7vkx4mNpqiu7MmTNx+PBh5ae0tNTJ2yQiIiIiIiKdlF4zOnnyZFx11VWWZdq3b4+5c+di8+bNETdw7dOnD0aPHo3ly5ejsLAQ77//vub5Q4cOoaamRhn9LCwsjBgBLS8vB4CIEVM1v9+fVjePJSIiIiKiNCIGAcHhrVpOgFu7pDQZbd68OZo3bx613COPPIK5c+cqj/fv348LL7wQL774Ivr27QsA6NevH+69914cOHAArVq1AhBa1Mjv96N3795KmTvuuAOBQAA+n08pU1RUhPbt28f53REREREREZGZtLhmtG3btujevbvyc8oppwAAOnXqhDZt2gAAhg4diq5du2LMmDHYvn073nzzTcyYMQM33HADcnNzAQCjRo2C3+/HuHHj8Mknn2DVqlWYN28eV9IlIiIiIiJKsrS6tYsVt9uN1157DTfddBPOOeccZGZmYtSoUXjwwQeVMnl5eVi7di0mTZqEPn36ID8/H9OmTVPur0NERERERJR0Yg0gOLy1i+j81i4NTVomo+3btze8P07btm3x3//+13LfHj164J133knUqREREREREZENaTFNl4iIiIiIiE4sTEaJiIiIiIgo6dJymi4REREREdEJIxgE4PAa0GD639qFI6NERERERESUdExGiYiIiIiIKOk4TZeIiIiIiCiVxGAMt3bhNF0iIiIiIiIix5iMEhERERERUdJxmi4REREREVEqSWLox+k+aY4jo0RERERERJR0TEaJiIiIiIgo6ZiMEhERERERUdLxmlEiIiIiIqJUkmoA0eE4oVSTmHNJIo6MEhERERERUdIxGSUiIiIiIqKkYzJKRERERESUSqIIiEGHP7Hd2uXxxx9Hhw4dkJGRgd69e+Pdd9+N85uxj8koERERERFRI/Diiy9i6tSpuPPOO7F9+3b8+te/xrBhw7B3796UnA+TUSIiIiIiokZg4cKFmDBhAq6//nqcdtppWLRoEYqLi7F48eKUnA9X042BLMsAgIqKihSfCRERERERhdvl4XZ62hEDcHzmYgBAZE7i9/vh9/sjigcCAWzbtg233367ZvvQoUOxceNGp68eF0xGY1BZWQkAKC4uTvGZEBERERFRWGVlJfLy8lJ9Grb5fD4UFhaibNfSmPZv0qRJRE4ya9YszJ49O6LswYMHIYoiCgoKNNsLCgpQVlYW0+vXF5PRGBQVFaG0tBQ5OTkQBCHVp0MmKioqUFxcjNLSUuTm5qb6dChB+Dk3HvysGwd+zo0HP+vGIVmfsyzLqKysRFFRUcJeIxEyMjLwzTffIBAIxLS/LMsR+YjRqKiavrzRMZKFyWgMXC4X2rRpk+rTIJtyc3NZyTUC/JwbD37WjQM/58aDn3XjkIzPOZ1GRNUyMjKQkZGR8Ndp3rw53G53xChoeXl5xGhpsnABIyIiIiIiohOcz+dD7969sXbtWs32tWvXon///ik5J46MEhERERERNQLTpk3DmDFj0KdPH/Tr1w9LlizB3r17MXHixJScD5NROmH5/X7MmjUr6rx5Sm/8nBsPftaNAz/nxoOfdePAz7lhufLKK/HTTz9hzpw5OHDgALp3747//e9/aNeuXUrOR5DTdv1jIiIiIiIiSle8ZpSIiIiIiIiSjskoERERERERJR2TUSIiIiIiIko6JqNERERERESUdExG6YT0+OOPo0OHDsjIyEDv3r3x7rvvpvqUyIHZs2dDEATNT2FhofK8LMuYPXs2ioqKkJmZiYEDB2LXrl2aY1RXV2PKlClo3rw5srOzcemll+L7779P9lshnXfeeQeXXHIJioqKIAgCXn75Zc3z8fpsDx06hDFjxiAvLw95eXkYM2YMfvnllwS/OwqL9jmPGzcuIsbPPvtsTRl+zg3f/PnzcdZZZyEnJwctW7bEZZddht27d2vKMKbTn53PmTFNsWIySiecF198EVOnTsWdd96J7du349e//jWGDRuGvXv3pvrUyIFu3brhwIEDys/OnTuV5xYsWICFCxfisccew5YtW1BYWIghQ4agsrJSKTN16lSsWrUKK1euxIYNG3DkyBEMHz4coiim4u1QraNHj+L000/HY489Zvh8vD7bUaNGYceOHVi9ejVWr16NHTt2YMyYMQl/fxQS7XMGgIsuukgT4//73/80z/NzbvjWr1+PSZMmYfPmzVi7di2CwSCGDh2Ko0ePKmUY0+nPzucMMKYpRjLRCeZXv/qVPHHiRM22U089Vb799ttTdEbk1KxZs+TTTz/d8DlJkuTCwkL5vvvuU7YdP35czsvLk5944glZlmX5l19+kb1er7xy5UqlzL59+2SXyyWvXr06oedO9gGQV61apTyO12f76aefygDkzZs3K2U2bdokA5A///zzBL8r0tN/zrIsy2PHjpVHjBhhug8/5/RUXl4uA5DXr18vyzJj+kSl/5xlmTFNsePIKJ1QAoEAtm3bhqFDh2q2Dx06FBs3bkzRWVEsvvjiCxQVFaFDhw646qqr8PXXXwMAvvnmG5SVlWk+Y7/fjwEDBiif8bZt21BTU6MpU1RUhO7du/N70IDF67PdtGkT8vLy0LdvX6XM2Wefjby8PH7+DUhJSQlatmyJU045BTfccAPKy8uV5/g5p6fDhw8DAJo2bQqAMX2i0n/OYYxpigWTUTqhHDx4EKIooqCgQLO9oKAAZWVlKTorcqpv37545pln8MYbb+Cpp55CWVkZ+vfvj59++kn5HK0+47KyMvh8PuTn55uWoYYnXp9tWVkZWrZsGXH8li1b8vNvIIYNG4bnn38eb731Fh566CFs2bIF559/PqqrqwHwc05Hsixj2rRpOPfcc9G9e3cAjOkTkdHnDDCmKXaeVJ8AUSIIgqB5LMtyxDZquIYNG6b8v0ePHujXrx86deqE5cuXKwsixPIZ83uQHuLx2RqV5+ffcFx55ZXK/7t3744+ffqgXbt2eO2113D55Zeb7sfPueGaPHkyPv74Y2zYsCHiOcb0icPsc2ZMU6w4MkonlObNm8Ptdkf0oJWXl0f0zFL6yM7ORo8ePfDFF18oq+pafcaFhYUIBAI4dOiQaRlqeOL12RYWFuKHH36IOP6PP/7Iz7+BatWqFdq1a4cvvvgCAD/ndDNlyhS8+uqrePvtt9GmTRtlO2P6xGL2ORthTJNdTEbphOLz+dC7d2+sXbtWs33t2rXo379/is6K6qu6uhqfffYZWrVqhQ4dOqCwsFDzGQcCAaxfv175jHv37g2v16spc+DAAXzyySf8HjRg8fps+/Xrh8OHD+ODDz5Qyrz//vs4fPgwP/8G6qeffkJpaSlatWoFgJ9zupBlGZMnT8ZLL72Et956Cx06dNA8z5g+MUT7nI0wpsm2pC+ZRJRgK1eulL1er/z000/Ln376qTx16lQ5Oztb/vbbb1N9amTT9OnT5ZKSEvnrr7+WN2/eLA8fPlzOyclRPsP77rtPzsvLk1966SV5586d8tVXXy23atVKrqioUI4xceJEuU2bNvK6devkDz/8UD7//PPl008/XQ4Gg6l6WyTLcmVlpbx9+3Z5+/btMgB54cKF8vbt2+XvvvtOluX4fbYXXXSR3LNnT3nTpk3ypk2b5B49esjDhw9P+vttrKw+58rKSnn69Onyxo0b5W+++UZ+++235X79+smtW7fm55xm/vCHP8h5eXlySUmJfODAAeXn2LFjShnGdPqL9jkzpqk+mIzSCelvf/ub3K5dO9nn88lnnnmmZvlxaviuvPJKuVWrVrLX65WLiorkyy+/XN61a5fyvCRJ8qxZs+TCwkLZ7/fL5513nrxz507NMaqqquTJkyfLTZs2lTMzM+Xhw4fLe/fuTfZbIZ23335bBhDxM3bsWFmW4/fZ/vTTT/Lo0aPlnJwcOScnRx49erR86NChJL1Lsvqcjx07Jg8dOlRu0aKF7PV65bZt28pjx46N+Az5OTd8Rp8xAHnp0qVKGcZ0+ov2OTOmqT4EWZbl5I3DEhEREREREfGaUSIiIiIiIkoBJqNERERERESUdExGiYiIiIiIKOmYjBIREREREVHSMRklIiIiIiKipGMySkREREREREnHZJSIiIiIiIiSjskoERERERERJR2TUSIiahS+/fZbCIIAQRBwxhln1Pt44WOddNJJ9T4WERFRY8RklIiIGpV169bhzTffrPdxDhw4gEWLFtX/hIiIiBopJqNERNSoNGvWDM2aNav3cQoLC5GXlxeHMyIiImqcmIwSEVHa+fHHH1FYWIh58+Yp295//334fD6sWbPG0bHGjRuHyy67DPPmzUNBQQFOOukk3H333QgGg/jjH/+Ipk2bok2bNvj73/8e77dBRETUqHlSfQJEREROtWjRAn//+99x2WWXYejQoTj11FNxzTXX4KabbsLQoUMdH++tt95CmzZt8M477+C9997DhAkTsGnTJpx33nl4//338eKLL2LixIkYMmQIiouLE/COiIiIGh+OjBIRUVr6zW9+gxtuuAGjR4/GxIkTkZGRgfvuuy+mYzVt2hSPPPIIunTpgvHjx6NLly44duwY7rjjDnTu3BkzZ86Ez+fDe++9F+d3QURE1HgxGSUiorT14IMPIhgM4h//+Aeef/55ZGRkxHScbt26weWqqxILCgrQo0cP5bHb7UazZs1QXl5e73MmIiKiECajRESUtr7++mvs378fkiThu+++i/k4Xq9X81gQBMNtkiTF/BpERESkxWtGiYgoLQUCAYwePRpXXnklTj31VEyYMAE7d+5EQUFBqk+NiIiIbODIKBERpaU777wThw8fxiOPPILbbrsNp512GiZMmJDq0yIiIiKbmIwSEVHaKSkpwaJFi/Dss88iNzcXLpcLzz77LDZs2IDFixen+vSIiIjIBk7TJSKitDNw4EDU1NRotrVt2xa//PKL42MtW7YsYltJSUnEtm+//dbxsYmIiMgck1EiImpU+vfvjzPOOAMbN26s13GaNGmCYDAY8wq+REREjR2TUSIiahTatGmDL774AgDg9/vrfbwdO3YACN32hYiIiJwTZFmWU30SRERERERE1LhwASMiIiIiIiJKOiajRERERERElHRMRomIiIiIiCjpmIwSERERERFR0jEZJSIiIiIioqRjMkpERERERERJx2SUiIiIiIiIko7JKBERERERESXd/wftqDooLlmPUwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from py_wake import XZGrid\n", "h = np.around(state['h'])\n", "print('final hub heights:',h)\n", "\n", "#taking only the first row of turbines\n", "x = x[:6]\n", "y = y[:6]\n", "h = h[:6]\n", "\n", "sim_res_ref = wf_model(x, y, wd=[270])\n", "sim_res_opt = wf_model(x, y, h=h, wd=[270])\n", "plt.figure(figsize=(12,4))\n", "sim_res_opt.flow_map(XZGrid(y=0)).plot_wake_map()\n", "plt.ylabel('Height [m]')\n", "plt.xlabel('x [m]')" ] }, { "cell_type": "code", "execution_count": null, "id": "4889225f", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.4" } }, "nbformat": 4, "nbformat_minor": 5 }