diff --git a/local_optimization/SOCP/portfolio_optimization_qcqp.ipynb b/local_optimization/SOCP/portfolio_optimization_qcqp.ipynb new file mode 100644 index 0000000..b7ba23e --- /dev/null +++ b/local_optimization/SOCP/portfolio_optimization_qcqp.ipynb @@ -0,0 +1,709 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quadratically constrained quadratic programming and its applications in portfolio optimization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Correct Rendering of this notebook\n", + "\n", + "This notebook makes use of the `latex_envs` Jupyter extension for equations and references. If the LaTeX is not rendering properly in your local installation of Jupyter , it may be because you have not installed this extension. Details at https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/latex_envs/README.html\n", + "\n", + "The notebook is also not rendered well by GitHub so if you are reading it from there, you may prefer the [pdf version instead](./static/portfolio_optimization_qcqp.pdf).\n", + "\n", + "# Introduction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Quadratically constrained quadratic programming (QCQP) is a type of optimization problem in which both the objective function and the constraints involve quadratic functions. A general QCQP problem has the following form\n", + "\\begin{equation}\n", + "\\begin{array}{ll}\n", + "\\underset{x\\in\\Re^n}{\\mbox{minimize}} & \\frac{1}{2}x^TP_0x+q_0^Tx+r_0\\\\[0.6ex]\n", + "\\mbox{subject to} & \\frac{1}{2}x^TP_ix+q_i^Tx+r_i\\leq0,\\quad i=1,\\ldots,p.\n", + "\\end{array}\n", + "\\end{equation}\n", + "It appears in applications such as modern portfolio theory, machine learning, engineering and control. Convex QCQP is usually handled through conic optimization, or, more precisely, second-order cone programming (SOCP) due to its computational efficiency and ability to detect infeasibility. However, using SOCP to solve convex QCQP is nontrivial task which requires extra amount of effort to transform problem data and add auxiliary variables. In this notebook, we are going to demonstrate how to use the *NAG Optimization Modelling Suite* in the NAG Library to define and solve QCQP in portfolio optimization." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data Preparation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We consider daily prices for the 30 stocks in the DJIA from March 2018 to March 2019. In practice, the estimation of the mean return $r$ and covariance $V$ is often a nontrivial task. In this notebook, we estimate those entities using simple sample estimates." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Import necessary libraries\n", + "import pickle as pkl\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Load stock price data from stock_price.plk\n", + "# Stock_price: dict = ['close_price': [data], 'date_index': [data]]\n", + "stock_price = stock_price = pkl.load(open('./data/stock_price.pkl', 'rb'))\n", + "close_price = stock_price['close_price']\n", + "date_index = stock_price['date_index']" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Size of data, m: number of observations, n: number of stocks\n", + "m = len(date_index)\n", + "n = len(close_price)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEGCAYAAACKB4k+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOydZ3hU1daA3z0lvVfSG0kg9A4KUqQXERtiF+unXsVerliv116uvSACIoJYEJSmSO8JEEpCSEhCMum9lyn7+zGTSEyAAJmEwHl9eDKzz9n7rImZs84qey0hpURBQUFBQQFA1dECKCgoKChcOChKQUFBQUGhEUUpKCgoKCg0oigFBQUFBYVGFKWgoKCgoNCIpqMFOB+8vLxkaGhoR4uhoKCg0KmIi4srlFJ6t3SsUyuF0NBQYmNjO1oMBQUFhU6FEOLEqY4p7iMFBQUFhUasrhSEEGohxH4hxG+W9y8JIbKEEAcs/yafdO6zQogUIUSSEGKCtWVTUFBQUGhKe7iPHgESAZeTxt6XUr5z8klCiBjgRqAH4A/8KYSIklIa20FGBQUFBQWsbCkIIQKBKcC8Vpw+HVgqpayTUqYBKcBga8qnoKCgoNAUa7uPPgCeAkz/GH9ICHFQCDFfCOFuGQsAMk86R2cZa4IQ4l4hRKwQIragoMAqQisoKChcqlhNKQghpgL5Usq4fxz6DIgA+gI5wLsNU1pYplm1Pinll1LKgVLKgd7eLWZUKSgoKCicI9aMKVwOXGUJJNsBLkKIxVLKWxpOEEJ8BfxmeasDgk6aHwhkW1E+BQUFBYV/YDVLQUr5rJQyUEoZijmA/JeU8hYhhN9Jp80ADlterwRuFELYCiHCgEhgj7XkU1BQUOiMZJZn8l3id6xLX2eV9Tti89pbQoi+mF1D6cB9AFLKI0KIH4AEwAA8qGQeKSgoKPxNamkq16+6nnpTPZNCJzEhtO0z99tFKUgpNwGbLK9vPc15rwGvtYdMCgoKCp2N9+Pex0Ztw49X/UiYa5hVrqHsaFZQUFDoBBwsOMgm3Sbu7nW31RQCKEpBQUFBoVPwZ8afaFQaZkbPtOp1FKWgoKCg0AnYqtvKAJ8BONk4WfU6ilJQUFBQuMDJqcwhpTSFEYEjrH6tTl06W0FBQeFiRkrJxwc+Zk3aGgBGBFhfKSiWgoKCgsIFyhcHv+DLg1/iaefJzOiZVg0wN6BYCgoKCgoXEFJKimuLMUojn8d/zqSwSbw54k2EaKkSUNujKAUFBQWFC4hFCYt4P+59RgaOxCiNPNT3oXZTCKAoBQUFBYULgtjcWCSS+YfnY5RG/sr8i4G+Awl2CW5XORSloKCgoNDB6E16Ht74MBX1FQDM7jmb+Yfnc0P0De0ui6IUFBQUFDqYuLw4KuoruMz/Mvwc/ZjTfw6zus3C18G33WVRlIKCgoKClTFJE5X6SlxsXFo8vjFjI7ZqW94f9T4OWgcAujh2aU8RG1GUgoKCgoIV2Zm9k5d2vERRbRErpq8g0DkQgF+Sf+Gd2HdwsXGhrK6MYX7DGhVCR6LsU1BQUFCwIguOLKDeVI/BZOCHpB8Ac9rpooRFuNi40M2jGzZqG66OvLqDJTWjWAoKCgoKVkJKydHio1wReAVV+ip+Sv6JqyKuotZYS0ppCnOHzu2QYPLpsLpSEEKogVggS0o5VQjhASwDQjE32blBSlliOfdZ4C7ACDwspbROayEFBQWFdiC/Op/i2mK6eXQjxjOGP0/8yYyVM9AIDTYqG6s0yTlf2sNSeARIBBoiLM8AG6SUbwghnrG8f1oIEYO5bWcPwB/4UwgRpXRfU1BQ6KwcLT4KQHeP7vTz6cePV/3I0eKjbDixgWiPaFxtXTtYwuZYVSkIIQKBKZi7qT1mGZ4OjLK8Xoi5I9vTlvGlUso6IE0IkQIMBnZaU0YFBQUFa5FYnAhAtEc0AFHuUUS5R3FVxFUdKdZpsXag+QPgKcB00pivlDIHwPLTxzIeAGSedJ7OMtYEIcS9QohYIURsQUGBdaRWUFBQaAOSipMIdg7GUevY0aK0GqspBSHEVCBfShnX2iktjMlmA1J+KaUcKKUc6O3tfV4yKigoKFgLKSWHiw7T3bN7R4tyVljTUrgcuEoIkQ4sBcYIIRYDeUIIPwDLz3zL+Tog6KT5gUC2FeVTUFBQsBoZFRnkVuUyyHdQR4tyVlhNKUgpn5VSBkopQzEHkP+SUt4CrARut5x2O/Cr5fVK4EYhhK0QIgyIBPZYSz4FhYuJgwUHmfjTRDZmbOxoURQs7M7ZDcAQvyEdLMnZ0RGb194AxgkhkoFxlvdIKY8APwAJwFrgQSXzSEGhdcw/PJ+syiwe3fSoohguEHbl7MLXwZcQl5COFuWsaBelIKXcJKWcanldJKW8UkoZaflZfNJ5r0kpI6SU0VLKNe0hm4JCZye7MpuNmRuZ1W0W0R7RzN0xl9yq3I4W65IkviCeV3a+QkZ5Bnty9zDUb2i79kJoC5QdzQoKnZwFRxYAcEePO6g31nPDbzcw+efJxHjG0NOrJ08NegqVUCratAe/p/7O8mPLWX5sORqhYWrE1I4W6axR/lIUFDoxCUUJLEtaxvVR1+Pv5E+oayiLJi1iVrdZ1Bpq+S7xO06Un+hoMS8Z8qry8LTzZGzwWBZNWsRQv6EdLdJZo1gKCgqdmI/2f4SbrRsP93+4caybRze6eXTjQP4Bbl1zK5kVme3S8F0Bcqtz6e7ZnfdHv9/RopwziqWgoNBJ0Rv1xObGMilsUot1+oOczRnemRWZzY4pWIe8qrwOaYzTlihKQUGhk5JQnECtsZYBvgNaPO5h54Gj1pGM8ox2luzSRG/UU1RbhK+johQUFBQ6gLg8c7GA/j79WzwuhCDYOZiMCkUptAf5NeZ9uF0cOqZjWluhKAUFhQuc4tpipGxW8YW4vDjCXMPwtPc85dwg5yB0FTpriofepEdv0lv1Gp2BvKo8AMV9pHDp8UHcB7y04yVM0kRhTSEf7f+Izw58RlpZWkeLdtFxrOQYY5eP5eMDHzcZr6ivIC4v7pRWQgPBLsHoKnUYTAaryfjQhocYu3wsSxKXoDdeusqhYW9IZ3cfKdlHCmeFlJKfk3+mpK6EzIpMDhceptZYi5SS3bm7WTBxQUeLeFHx0f6P0Jv0zD88n2nh0wh1DQVg3qF5VOmruD76+tPOD3IOwmAykFuV29gbGCC9LJ0Ql5Dz3lh1sOAgO7J34O/oz+t7XmfJ0SV8N/m7C7JPgLXJq1YsBYVLEF2FjpK6EgKcAogviGdM8BhWXr2Sf/X7F3F5cVZ3VVxKrEtfx6bMTczqNgs7tR3XrryWf2/7N7G5sSxOWMy08Gn08Oxx2jUaMpBO3qvwV8ZfTFsxjc/jPz9vGRceWYiz1pmfp//M6yNe50T5CXbl7DrvdTsjedV5OGodcbJx6mhRzgtFKVzilNaWntX5BwsPAvC/0f9j56ydvD7idUJcQpgaPhWBYNXxVdYQ85JCb9LzefznPLn5SXp792ZO/zksmLiAGZEzWHV8FXeuuxNvB2/mDJhzxrW6eXRDJVTsy9/XOLZFtwWAT+M/ZcOJDS3OM5qMZ4wTJBYl8seJP7gh+gYctY6MDxmPVqXlSNGRs/i0nQeTNLE4YXGzEiKHCw9TY6jheOnxTm8lgKIULmmOlx5n5A8j2ZG9o9VzDhYcxF5jT1e3rmjV2sZxPyc/BvsNZsGRBSw6sqjFwKhC63h+2/N8cuATJoZNZN74eThoHYj2iOb5oc/zv9H/Y1zIOBZOXIiPg88Z13K2caanV092ZZuf3qWU7MzeyajAUYS4hLAwYWGL8x7f/Dj3rL+n2f/Htelr+XDfh0gpeXPvm7jZujG712wAbNQ2RLlHkVCYcJ6/gQuT7VnbeXPvm3xx8IvGsZ3ZO5n1+yyuWHoFu3J2MTJwZAdK2DYoSuESJi4vDpM0NXlarNZXc6jgULNzq/RVvLP3HTbrNtPLqxdqlbrZOa9c9gr9ffvzduzbbM3aalXZG9Ab9cTlxZ1SCemNen469hM7slqv+DqKyvpKyuvLWX9iPbO6zeKtK97CXmPf5JzRwaN5b9R7ZxXMHOY3jMNFh0ksSmRr1layq7K5POByro+6nv35+zlWcqzJ+TWGGrbqthKXF8fa9LVNjn0R/wVfHfqKD/d/SFxeHA/1e6jJxrmeXj05UnQEkzRxPuRV5VFrqD2vNdqaRQmLAFiXto46Yx0ASxKX4GHnweUBl/PM4Gd4dMCjHSlim6AohUuYhCLzE9327O38d/d/mfbLNMb+OJabVt9EbG4siUWJjabyh/s+ZGHCQrIqsxjcZXCL6/k7+fPhmA8JcQnhvdj3rJrx0sAbe97gjrV3sDptdeNYtb6azZmbKa8v5/pV1/PSzpd4dderVpflfNids5sRy0bw5OYnMZgMTAuf1mZrD/MfhkmamPnbTB7c8GDj2PSI6diobJh3cF4TpRqXF0e9qR5nrTMf7vuwcTyzIpOU0hTAHOiOco/i2shrm1yrh2cPKvWV57VhzmAycO2qa/n68NfnvEZbk1ySzK6cXQzzG0aFvoL/7PoPb+55k826zVwXdR0fjP6Am7vf3OkqoraEohQuYRKLExEIsiqz+P7o97jZujE6aDR2ajt+Tv6Z2etm8+zWZzlSeITvj37PjdE38ud1f3JXr7tOuaZWpeXR/o9yvOw4Xx780mqyp5el8+rOV/nh2A9oVVo+i/+sUQm9Hfs2D/31EDNWzCC9PJ3xIePRVepIK0tjffr6Cy6n3mAy8MaeNzCYDOzI3kEXxy709OrZZuv39uqNj70Pfbz7cE+ve5gZPZNg52Dc7Ny4u9fdrElfwzux73Ck0BwL2J61HVu1Lbf2uBVdpY7K+koANmduBmBi6EQAnh70dDOLMcYzBoBDhc2tzdaSXpZOWV0ZR4uPnvMabc2vKb+iERpeH/E6fo5+rEhZwbKkZdhr7Lkh6oaOFq9NsVpKqhDCDtgC2Fqu86OU8kUhxEvAPUCB5dTnpJSrLXOeBe4CjMDDUsp11pJPStlEq5fWlvJ90vfc3fPuJr7yixW9UU9ySTLjQsax/sR6gpyDmDdhHrZqW2oMNaxKNQeMY/NieWbrM3jYefBw/4dxtnE+49pjgsdwVcRVfBb/GX28+3B5wOVtK7tJz/1/3k9BdQHTwqcxKmgUj29+nKm/TGVU0ChWJK8g1CWU9PJ05vSfw8jAkaw/sZ45G+eQWpbKvb3v5V/9/nVeMhRUF+Bu545GpWky5mnveVZlqvVGPa/tfo2U0hSeGPgEnx74lMlhk9v0iVOr1rJqxirsNfbN1r2vz30cLzvOooRFfJvwLcunLWd79nYG+A4g2DkYgPzqfJxsnNiQsYGubl15bfhr3BpzK729eze7Vle3rnjYebBFt4VpEedm7SQWJwJcMOU5jCYja9LWMDxwOJ72niyevBijyYivoy8GkwEbtU1Hi9imWNNSqAPGSCn7AH2BiUKIhjqy70sp+1r+NSiEGMxtO3sAE4FPhRDNHddtQHJJMjf+fmOTNL35h+fz6YFPL5l0uuTSZPQmPeNCxvGvfv/ijRFvYKu2BWBcyDgAunt0x0ZlQ3p5Og/0faBVCgHM5RVeGPYC7rburElr+15Ja9PWklWZxbuj3uW/I/7LuJBxPD/kebq6deW7xO8QQvDV+K/447o/uKvXXUS4ReBl70VqWarZXXJoHntz957z9eML4pn400Se2vJUo9slsSiR8T+O57FNj53WEvln7OOd2Hf4Kfkn7u51N7fF3Maaa9fwUN+Hzlm2U+GgdWhR0aiEireveJvfZ/yOrdqWZ7Y+Q1pZGmNDxjYGsvOq8zhUcIjYvFimhE/BRm3TokIAUKvUXBl8JZt1m6kx1JyTrEnFSYDZXWU0tW/zxfSydB756xHuXHsn+/L2sSdnD+/EvkN+TT5TwqcA4OPgg5+THyqhuugUAli3R7OUUlZa3mot/06XkjIdWCqlrJNSpgEpQMvO6/PE1daVzPJMXtzxIiZpolpfzY/JPwLmJ+NLgcOFhwGzuX9v73ubfMlHBo6kn08/Hh/4ONdGXUt3j+5cE3nNWa1vq7alu2f3ZkHM88VoMvL1oa/p6taVKwKvAMxKaGa3mXx85ccsmLiAD8d8SBfHLnRx7NJ4vCEO8snYTwh2DuaxTY+RWW6uHlpYU8gzW59plaxFNUU88tcjqISKP078wZq0NUgpeWPPG2jVWjZkbGDWb7P488SfzeYuOLyAiT9NbKxZZDQZWZu+lgmhE3ik/yMIIfCw82h3S1UIQbBLMFPCp5BSmkKISwhXd726Mb0yrzqPT+I/wc3WjVndZp1xvQmhE6gx1LAta9s5ydPgNtKb9I0bwtqLZUnL2JK1hYyKDO5Zfw93rb+LxYmL8bDzYFTgqHaVpaOwakxBCKEWQhwA8oE/pJS7LYceEkIcFELMF0K4W8YCgJNr/OosY/9c814hRKwQIragoOCfh1uFj4MPTw56kri8ON6LfY/P4j+jor4Cd1v3xi/sxc76dLPLqGFz08k4aB1YNGkRQ/yG8NyQ51g2dVkTN0lriXaPJqU0pU19+GvS13C87Dj39r63RTfNAN8BDA8Y3mz83t73MnfoXIb6DeXjKz/GJE1cs/IaPt7/MW/vfZvfU3/nwQ0PUlhTeNrrf7T/I8rqyvh28rf08e7DCzte4MktT7Ivfx9PDnqSN0e8icFk4PHNjzc2bgeza+nT+E/Jrc7l7nV3k1qWysHCgxTXFnNl8JXn/4tpA27ufjN2ajueGPgEWpW20VI4UniE7VnbuaX7LThqHc+4zgDfAXjYefBL8i9nLYOUksTixMa+xu3dIGhb1jYGdxnM0ilLifGM4aZuN7Htxm2su3Yddhq7dpWlo7CqUpBSGqWUfYFAYLAQoifwGRCB2aWUA7xrOb0lJ2ozy0JK+aWUcqCUcqC3t/c5y3Z116u5Luo6FiYsZMGRBUwNn8qMyBkcKTxyzmZvZyG/Op89uXuYEj6lVb7rc/VvR3lEoTfpz7sm0lt732L2utnojXo+2f8J3Ty6MSF0wlmtEeEWwQ3R5oBgiEsIS6csZXTwaL44+AWr01YzIXQCZXVlvLzj5Rbnp5Wl8V7ce/yc/DM3db+Jbh7d+HDMhwQ5B7EufR23xdzGNV2vYXL4ZJZMWUKISwhPbXmKktoSvkv8jgc2PIDepOebCd9gwsTvqb+zMXMjGpWmRSXWEUS6R7Lzpp2MChoFgJ3GDldb18b04lOV6P4nGpWGW2NuZWvWVg7kHzgrGTIrMimvL2d8yHigfeMKugod6eXpjAgYgbeDN99O/pZnhzyLq63rJaMQoJ1qH0kpS4UQm4CJUsp3GsaFEF8Bv1ne6oCTH1sDgWxrySSE4MVhL3K5vzkIemXwlWzL2sb8w/OJL4jvlG30GpBS8tbet6jSVzEqaBRutm4sTlzMo/0fJcglyOzyQDI5bLJV5Yh2jwbMPuIo96hzWiOnMofvE7/HIA28tfctdJU6Prnyk/PuORzkEsRbV7xl9n9nbub5oc/zQ9IPvBv3LpszNzMyqOkmpP/t+x8bMzfSz6cf9/e5HzD3K1g0aRGZFZmNWTdgtrTevuJtZv42k9nrZpNSmkKEawTPDXmO/r79GeQ7iNWpq9Gb9AzyHdTqWE178E+L0MfBh+SSZMCsNFrLTd1u4tuEb3kv7j3mT5jfakvz4/0fY6Oy4dqoa/k24VtOVLSfpdDg7rpQlHRHYTVLQQjhLYRws7y2B8YCR4UQfiedNgM4bHm9ErhRCGErhAgDIoE91pKvgbEhYxkbMhYhBP19+2Ovse/QUg0tbcLKr85n4k8TufKHK/lw34dnzP/fl7+PxYmLWZu+lkc2PsIda+/gjxN/cMe6O1h1fBWfx3/OAN8BVm/RGOoailal5etDX/Pk5ifPKWjY0JTeVm3L0qSlRLlHMSJgRJvJOCF0Av8d8V8ctA7cHHMz4a7hvLHnjcbNSQ0kFScxNngsCyctbHITd7ZxbqIQGoj2iObWmFtJKU1hiN8Qfp7+M9dHmYvXTQibgK5SR2FNIQ/0faDNPos1aHAh+Tj4nFWROwetA08MfIL9+fv5377/tWrOvrx9rElfw1297iLAKYAgl6B2sxTK6spYcGQBYa5hja6rSxVruo/8gI1CiIPAXswxhd+At4QQhyzjo4FHAaSUR4AfgARgLfCglLJdUw8ctY7M6DqD1WmrG2ujtydbdVsZsHgAE3+ayM/JPzeO78vbR1ZlFiGuIXx16Cte2vFSi/OTipOYu30u8w7Nw1nrzF/X/8UTA59gavhU5k+YD8Bz255Dq9Ly+vDXrf55tCotUe5RHC87ztr0tc12x56JWkMtK1JWMDl8cmNG1J0977TaBiGtSstzQ55DV6lj3qF5gHkjXLW+Gl2l7qytnf/r83880v8R3hjxRhPLZmzwWFxsXHh0wKP09enbpp+hrWkINp+NldDAtIhp3BB1AwuOLGjVnoPVaaux19gzu6e5bEaUexQJRQntUjLltV2vkVedx6uXv3pRbEA7H6zmPpJSHgT6tTB+62nmvAa8Zi2ZWsOtMbeyNGkpS5OW8kj/R5ocSy1LJasii97evdukNHBCUQLdPbojhKDOWMd/d/8XXwdfvOy9eHHHi7yz9x0GdhlIhFsEGqHh87Gf88aeN1iRsoKnBz/dzO3w0f6P2KwzbzC6qdtNONk4cXuP2xuPr75mNevT1xPpHomfkx/twX+H/5cqfRUv7HiBt/e+zdt73+bly15u5p5piS26LVQbqpkWMQ1fB1887TzPOpZwtgzxG8Kk0El8Hv85K1NWkl2VzczomcDZ3xgdtA7c3evuZuPudu5smbmlxVIhFxoNlkKU27m5/x7u/zCrUlfxbcK3vDb89F/t7VnbGdxlcKP/vr9Pf35P/R1dhY4gl+YJEW2FwWRgY+ZGrou8jj7efax2nc6CsqP5HwQ6BzLUb2izlEKjycgDfz7AAxse4Jpfr2n100tWZRaPbXqMivqKJuMH8g8w87eZrD+xHoDFCYvRVeqYO2wuCyYu4MmBTxLpHsmmzE3syd1DqGsoNmobpnedjt6k56+Mv5pdZ4tuC5PDJjMpbBJ39LijmSy2alumRUyjm0e3s/iNnB/hbuH08u7Fw/0epqSuhEp9JT8e+7HJOXqjnq26rXwQ9wG/p/7eOL4mbQ2edp4M8h1EmGsYTwwyZ8VYm5cvf5mnBz1NpHskPvY+LD+2HDi3p+VT0RkUAvxtKXR173pO811tXRut7/zq/FOel1Gega5Sx2X+lzWO9fMxP1OeXOHVGqSWpVJrrL3grbb2QlEKLTAycCTp5emkl6U3jm3SbSKrMosBvgPIr8mnqLaoVWutTFnJHyf+YHv2dsD8NH/fH/exM2cnABtObKCyvpJvjnzDiIARXOZ/GWqVmtt63MYj/R9BIjlYcJBoD3PQtrdXb/wd/Zu5Yho2bT064FHeuuKtdrMEWsvo4NHsuXkP10ddz47sHY2lEzLLMxn34zge2PAAXx/+mue2Pce69HWsSFnBFt0WJoROaPcbqL3GnltibuHjKz/muqjrMEkT9hp7ApyaZUhf9HTz6IZWpaWv97nfMK+Lug6DycD2rO2nPKfh+3Hy7vcItwhcbFysrhQaynu0FBu6FFGUQgs0pOQ1uGKq9FUsOLyALo5dGv2dZ8qfllJikia2ZZszGuJyzfsfNmZuZEf2DlamrARozHgqqyvjwb4PNlmjl1evxiqZDZk8QgimhE9hR/aOxj/mI4VHWJK4hOkR0xs3bF2I2KptGRcyjnpTPYsSFpFalspHBz6i2lDNx2M+ZsvMLYS7hvPE5ieYu30u0R7R3Nnzzg6VeUKY2V0V6RZ53hlPnZGeXj3ZfdNugl2Cz3mNcNdwbFQ2pJalnvKcfXn78HP0ayytAebd1v19+rMvz8pKoegIjlrHSz7A3IDSjrMF/J38iXSPZOGRhezI3sGhwkNU1Fcwd+hcwlzMGTsZ5RkM8B1Atb4arUrbbBfqnI1zKKotatw5HJsX29iIA0BXqWusz/PVoa8YHzKeHl5Nu2hp1Vr6+/Rne/b2JkHOO3veyYqUFby882WWTFnCyztfxtPekycGPWHNX0ub0NenL74OvnwW/xmfx3+ORHJ3r7sbYwxfT/ia7Vnb8XHwYVCXQR1+Iw53DWdU4Cj6+Fy6vubz3WGtVqkJcw1rrLDaEsfLjhPlHtUsyDuwy0A26TaRW5VrtQeehKIEYjxjOvxv7UJB+S2cgv/r838EOQdRUlvC6KDRLJm8hBuib8DPyQ+N0JBRkYGUkpm/zeS13eYAWo2hhvfj3iezPJMtui3EF8RjkiZGBo4kpTSF3Tm7MUlTY42h+/vcj7utO0P9hvKf4f9pUY7L/C9DIzRN4gDONs48NegpEosTeXvv2yQWJ3J/n/ub1LW/UFEJFYsnL2bRpEXcEnMLPT17Nol/eNh5MC1iGkP8hlwwX9KPrvyoxYCxQuuJcItofCD6JwaTgfSydMLdwpsda9gzcHJ/Dills5jeyuMrm2TstZYNGRtIKk46Y1vTSwnFUjgF40LGNaZBnoxGpSHAOYAT5SdIKE4gvTydopoi/j3k3/xx4g/mH57PxsyNGKSBgb4DyarM4vYet7NZt5lvDn8DmEsufHP4G4YHDOeKa67AUet4yhvgrO6zuDzgcjztPZuMjw8dz+fxn7Pk6BLsNfZMCp3U9r8EK9FQl6ghkKhw8RPhFsHqtNVU6aualcrIqsxCb9IT7tpcKYS7hhPgFMCq46tYk7aG2T1nszFjI39m/Mndve7mlu63IITgi/gvKK8vZ3rE9FbHoHbn7GbOxjn4OfpxVcRVbfI5LwYUpXAOBDsHk1Ge0dixrEJfwZ7cPY3v08rScLd1Z974eUjLfyEuIezL34ePvQ/39LqH22Jua9XWea1KS4RbRLNxlVBxV6+7eG7bc4wPGd/pm4UrXNw0/A0fLz3erMJqgwUR4dr871wIwfCA4SxLWtZ4bkltCd723ry19y16efUizDWMjArzJrdDhYdOm0VUpa9iedJyApwDyKwwl1pbPm15m6SYXyxcGPZ5JyPEJYSMigz+yviL3t69cdA48NEI9AAAACAASURBVGvKr2zP3t5YjXNE4AjUKjUalQatSstrw19DJVTEeMUghGiTWioTwyZyZ487ubf3vee9loKCNenqZk5pbcmF1BCAPtUO+3Eh41AJFbfH3E5xbTFONk4snrwYe409vx7/tTFuB38nh7SE3qhn5m8zeTfuXT6I+4D0snQ87TwVhfAPFEvhHAh2CTYHjcuOM3foXA4WHOTX478CcF/v+7g+6np6efdqMqePdx8+HvMx/k7+bSaHVqXlsYGPtdl6CgrWItApEEetI7+l/sZVEVc1cfGklqbi6+B7Smt3iN8Qtt+4HScbJ7wdvAl2DsbPyY+xwWNZl7YON1s3BIJuHt3YrNvcbNNpAxsyN3Ci/AR9vftyoOAANmobq5d66YwolsI5MMxvGD09ezJ36FyujbyW54c+zwvDXuDWmFvp79ufiWETW8xpHxE4okVXkILCxY5apebpQU+zJ3cPD298uHGfTU5lDvvy97UYTziZBoVxe4/bGR08GoDpXadToa9gccJiwlzDmBYxjeSS5GbWSEV9BWvS1vBdwncEOAVwT+97AEgpTVGUQgu0ylKw9DzwB2qAdCmlyapSXeCEuoby/dTvG9+rVerGYmcKCgotMyNyBpkVmfx47Ee26LagVWmZu30uBpOB54Y8d9brDe4ymJu63cSSo0vo6dWTyWGTeS/WXN78yUFPAuZKBE9sfoId2TsAmNN/TpNNaqEuoW3y2S4mTqkUhBCuwIPALMAGc09lO8BXCLEL+FRKubFdpFRQULgoeLj/w9zZ804m/DSBxzY9hq3almVTl53TE7sQgqcHP02wSzCDugzC096TUUGjWHV8FXP6z0Gr1vJtwrfsyN7Bv/r9Cw87D6aET8FeY4+PvQ/5NfmKpdACp3Mf/Yi5E9oIKWW0lHK4pblNEPAGMF0IcVe7SKmgoHDR4GzjzO0xt2OSJh7o88B53ZhVQsXN3W9u3Nx5dderKakraSwjszt3N1HuUdzb+16ui7qusUJAN0/zvh9FKTTnlJaClLJ5kv7fx+KAS6NvpYKCQpszu+dsunt2b1IAry0Y6j8Ue409W3RbuCLwCrIqs1pMdR3SZQiJRYn4OV5YNcIuBM4q0CyECBZCtF+JTQUFhYsSrVrLFYFXnFPv79Nhq7ZliN8Qtuq2YpImsiuzW0z6uCXmFtZcu6bTVKttT06rFIQQrwshYiyvrwW2AsuEEB3a80BBQUHhVIwMHEl2VTZ7cvdQZ6xrMQ1cJVSN5WYUmnImS2GSlDLB8vpRYDzQH5h6poWFEHZCiD1CiHghxBEhxMuWcQ8hxB9CiGTLT/eT5jwrhEgRQiQJIazbTUVBQeGipKFd6w9JPwDmHikKred02UcvAn6Wm7kNEAHMBATgKoR4AdgkpdxyiiXqgDFSykohhBbYJoRYA1wDbJBSviGEeAZ4BnjaYpHcCPTAnP76pxAiqr1bciooKHRufB19CXUJZVPmJgD8Hdtuw+ilwCktBSnly8AmIATzjXqRlPIV4HUgS0r5ymkUAtJMpeWt1vJPAtOBhZbxhcDVltfTgaVSyjopZRqQAgw+1w+moKBw6TLAdwB6kx6gTasIXAqcyX00G9gN/Ao8bxkLxqwYzogQQi2EOADkA39IKXcDvlLKHADLTx/L6QGYU2Ab0FnG/rnmvUKIWCFEbEFBQWvEUFBQuMQY4DsAMJdid9A6dLA0nYvThv6llFXAZ/8YS8H8FH9GLK6fvkIIN+AXIUTP05wuWhhr1ghZSvkl8CXAwIEDW9coWUFB4ZKiQSlcii1Uz5dTWgpCiC+FEL1OccxRCDFbCHFzay4ipSzF7IqaCOQJIfws6/hhtiLAbBkEnTQtEMhuzfoKCgoKJ+Pv5E+wc7CyOe0cOJ2l8Ckw16IYDvN3mYtIwAWYD3x3qslCCG9AL6UsFULYA2OBN4GVwO2Yd0Xfjtk1hWV8iRDiPcyB5khgz7l/NAUFhUuZ+RPmY6+172gxOh2n29F8ALhBCOEEDAT8MBfES5RSJrVibT9goRBCjdki+UFK+ZsQYifwg6VERgZwveV6R4QQPwAJgAF4UMk8UlBQOFd8HX07WoROifhnr9POxMCBA2VsbGxHi6GgoNDG7CytpKuDLd422o4W5aJECBEnpRzY0jGln4KCgsIFRUp1LdfuT+GV40pIsSNQOq8pKChcEByqqGZLSSV7yioxAesLy9GbJFpVS4mJCtai1UpBCOFoSVFVUFBQaFOW5RTzWFIGRos3u7eTPQcra9heWsEoD5eOFe4S44zuIyHEZUKIBCDR8r6PEOJTq0umoKBwyTA/q4BoBzs2DormtcgAlvSJwEGtYklOMcZOHPfsjLQmpvA+MAEoApBSxgNXWFMoBQWFzsXqglJmH0rj2WM6KgxnlzRYpjdwqKKGSd6udHey565Ab7xsNNzm78nK/FJujk+lMyfEdDZa5T6SUmYK0cSvd9GmihoNJtQaJf6uoNBavsosYG5KFv62WnIK9agF/Cey9ZVJd5VVYQKGuzs3GX8xwh9XjZo303I5WFlDH2elXEV70Jq7X6YQ4jJACiFshBBPYHElXWxkHCli3uNbSdimZD0oXLzk1+l5/GgGpXpDm6z3la6Aoa6O7BzandsDvJivK+RgRXWr528rqcBeJejv0vSmL4TgjgAvNAJ+yy9tciylupZlOcWKBWEFWqMU7gcexFycTgf0tby/qCjIqGD154cw1BnZtTIVff1FawwpdBAVBiNHKmvadE29SfJpRj7j9yYxZs9R9pVVUW8yUWs0EVdWxZKcomY3zt8Ly/gup5ivdOdfUDKvTk9GbT0TvVyxVal4JqwLPjZa7jmc3qh00mvq6LP9MNtKKprNN0rJhqIKBrk6Yqtqfjty12q43M2Z3wpKGz/HoqxCRu9J4pGjGewpu7ByX/aVV/HY0QxeO55NVm1947hRSo5W1VBrNLU4T0rJdftTGLorgVdSsjl0Fkq1rTmj+0hKWQi0qsZRZ0VKydZlx7CxUzPqrh6s+fwQB//KZMDEUIx6EwW6CnxDXfiHC01BoQk5dfW8m5bH5pIK9CZJDydziQWDlMQ42bGmsIz0mnomernwWUwo9urWuykL6vU4qdVN5tSbTMyMP87O0ioGuzqSVVvPDfHHkUDVSTefrva2DHZzanwfX26+4XytK+S+IB9cNOfekjK23HxTHuTqCICbVsO8nqHM2J/Ck0k6vuoZyje6QvLqDbySks26gVFNvke/5JWQWlPHU2FdTnmNqT6uPJmk49f8UoLtbHguWcdwN2d2l1XyU14JQ076bO1NpcHI9znFjPF0xiThpvhU6qVEb5LM0xUy0sOJmV082FxSyYKsQhzUKn7q25V+/7CKdpZWsa20ku6Odnypy+ezzHwW9gpjnGf733fOqBSEEAuBRyxF7bB0SntXSjnb2sJZk7oaAyve24eHvyNObnbkHC9j1M3RhPf1JrS3F7FrTqDRqoldk05tpZ5RN0fTY4RScVGhZeIrqrl2fwr1JskEL1e0KsGxqlrUlu/zV7oCPLQa7g70Yp6ukHWFZVzta246aDBJDlRU46RREe1ghxCCepOJX/JKWVVQSnpNHSnVdYxwd+KHPhEIIagyGnk6ScfO0ire6xbETX6eZNbW86+EE4Q52BJqZ4uLVs0rKVn8lFfSVClUVBNkZ0NmbT09th1mopcrL3X1J8DO5qw/996yKmxVgp7Of9cYGujqyKOhvryVlssfhWUsyy3G10bDwcoafi8oY6qPG2BWam+l5dLTyZ6rLGMtcZ2vBz/klPBQ4gkAuthq+aJHCM8c07Eqv5T/RAZg04KVYQ0OVVSTVFXLwqwiMmrrsFGpyKyt54UUc0lnd42avwZFowL+dyKPLSWV3Hk4HYAburizpqCMBVmF9HMJbrLuPF0B7ho1vw+Ios6i7O89ko5AMM3Hlfeig9G0036N1gSaezcoBAApZYkQop8VZWoXtv+YTJGukuLsKkxGSWhvL7pfbm7GMeKGSL5/eTfblifTJdwFvastsWvSiejng8ZWhUarNPu+VDhaVUO4vS02KtUpN1KdqKnj5vhU3LRqfuzblVD75r1/y/QGbFUqtCrBz3kl/FlUztW+7hil5L6EdH4vKANgqKsjtwV48WVmAQcqqgmzt6G7oz39XBxYnlvC55kFhDvY8nSSjtx6PY+H+nKTnycAQXY2rOgf2eS6u0srWZlfyquWG2e10URSVS2PhPhyubsT6wvL+Ta7kJ2llbwaGcD/TuTxSUwIx6vrMErJDF/3Zp/lZGLLqujj7NDM9fNAkA9Lc4q59VAaAD/0ieDfyTreTMthkrcraiH4LqeYjNp6vusdjuo0T8P2ahWLe4fx39QcXDRqbvH3xFWr4Rpfd37JL2VTcQXjvVxPK2dbkFxVy/jYY0jA31ZLfxdHdLX1vNwzlITKWmxVgqnebo3//9/tFozeJHk7LYe8egPvRgehIpPfCkp5IyoQtYB1heVsLC5ndWEZDwf74KBW4aBW8U3PMJ5MysRereKH3BJK9EbejQ7Cx9b6ZT9aoxRUQgh3KWUJmHsst3LeBUvWsRISt+fQf0IwPUcGYjSYcPP525xz8bJn1C3dKNRVMvSqcHTHSvjto3i+fmIrdo5ahl0TQczlSjeni5HkqlpqTCZ6OzswT1fA88lZjPd0odpoYo/lBmhjCYpO9XHDTaNmVnwqRin5vnfLCgHAVfv3V2a0hwt/FZdTUK/n2WM6fi8o4/FQX9w0Gj44kccDCSdwVKv4okcIV3m7IYRASklunZ6XLaUfujva8WWPkCYWQEtc6+vOivxS/iwqZ7K3G0cqazABfV0cGO7uzHB3Z27y92BqXDL/l2B+El+aU8SK/FJqjSbGe7rgaHEvFdUbKNQb8LPVYpSS9YXlxJVX80hI88JzdmoVS/qE82teKZ42Gka4O/F0mB93H0lncXYRk71deT89l6GujozxcG42v6Xf35vRQU3GRnm44KFV82NeiVWVQrXRRHpNHQuzCrFRCVb0iyTGya6JIpzs3fJcrUrwXMTf94prfd1ZmlvMH0Xl7CqtZH5WIWoB9wV582jo3y60ADsblvSJAMxWxKvHs5kUd4w9w2JQW9mddMaCeEKI24BngR8tQ9cDr0kpv7WqZK3gXAviGfUmDm3W0XNkQKue+qWU7F6ZihAC3dES8tLKmP3OCOwcz11rSyk5caiIoBgPJQX2AuFIZQ1X70umwmjC31ZLdp2eaEc7kixuoOt9PUivqaPOJDlUWY3B8tWxUwl+6BNxxht0A7/klfB/CSewV6kwSMlTYV34l+XGqjdJjlTW4Gurwc+2qTunxmhic3EFxXoD13ZxbzEw+08MJsngXQl0dbBlboQ/76Tnsq6wnAOX9aDLSU+dfxWV85WugBK9kSSLYgR4KyqQ2wK8SK2uY1LcMcr+sQfhMjcnvu0dhqO6dd+jKfuS2VdejQoQAlb0i2yMR5wLzxzTsTSniEOX98T5PGIjp+P/jqTzS34pagE3dPHg/W7BZ550CoxSMnhnAp42GlKr6xjj6cJ70UE4nUH2JdlFPJaUydbB3Yh0tDvn6zdwuoJ4rQk0LxJCxAJjMHdHu0ZKmXDeUnUgaq2KvmNb/z9WCMHQ6WatHRxTys/v7CMrqYSI/j5nmHlq0uILWfP5IfpcGYRfhCs2dhqCYjzOeb1Lhazaem47lEpPJwdejQw4Y5C0wmDEXqVq0R9brDeQV6fHVqVieW4x87MKcdKoeSDYh4TKWu51cWB2oBc/5JYQYKtltOff5RZK9QZ+KyijxmhivJcLIaewEFpitIczfrZaejrZ8+8IP7o5/u2P16oEfV1azse3V6uY6H12T8QaleB2fy9eT8th2r5kJDDDx62JQgAY4+nCGE+XRutIKwSh9jZ8qSsg2tGOx5MyUQt4NzqIcoMRrUrgqFYx3ccdh1YGzIUQLOsTwY95Jehq67m+i3uTz34uXOfrzoKsQn4vKOVGixutLdlfXs0v+aX0dXYgq66e+4PO/TsPoBaCx0K78HiSufPw7ACvMyoEoDEwfaiypk2Uwuk4paUghHCRUpZb3EXNkFIWW1WyVtARpbONRhNfP76VyEG+jL65GyajCSEE4hRBoJrKeo7H5dP9cn/UGhWxq9MozKzEYDBx4lBR43laWzU3vzwUR7fW31wuRKqNJn7JK+FwZQ1jPJy50tPltP7i1pBSXUtadR2eWg3/Sswgp15PncnEcDdnlvQJZ3dpFUPdHJtdZ31hGfcnnMBdo2ZOqC+3+Hk2umJeT83hS10Btaa///4nerkwN8KfCAfrfunam4J6PYN2JhBqb8vyvhGnLUd9oqaOIbsSGePhzB0BXtxzJJ06k8RNo2ZBrzCGdmCmT0tIKbliz1E0QrBhUPR5/639k9sOphJXXs2uod3bzBIxmCSj9h5FhWDz4OhWZRcZTJKuWw9yR4AXL3U9/4SXc7UUlgBTgTia9koWlvfhZ7hoELAI6AKYgC+llP8TQrwE3IO5kxvAc1LK1ZY5zwJ3Yd4x/bCUct3pP1r7o1arCIx2JzPBvHFm+Rux+HV144qZUc3ONRlNrP3iMNnJpag0KnxDXdizKo0GPdxrZACl+dW4dXHkyNYs1n55GBcvO2qrDPQZE0hwj7Z/8mlrDCbJV7oCyg1GujnZ8bWukD1lVdgIwTdZhQx3c+LlyABC7Gwo0ht4MimTB4N9GdkKPzLAd9lFPHtMR73ll+ahVbO0dzjbSyt5My2XfydnsSCrkJldPJgb4Y+tSjT6ajcWV9DLyR5HtYonk3TsKKlkgpcrO0orWZRdxDW+7lzp4UyZwcg4L1eCziH7pjPgbaNl46Bu+NhoGuMDpyLE3pYnQrsw0sOZQa6O/Dkwmh/zSrgjwLOZO+tCQAjBnBBfHkzMYG1hGZO9T53FdLZUG01sLqngdn+vNnVNaVSCn/p2xYRsdbqpRiXo7mjPoYq23efSEqeNKQizxEFSyoyzXtjcf9lPSrlPCOGMWblcDdwAVEop3/nH+THA98BgzO04/wSiTtd9raOa7BzapGPL0mNMe7gPqz6Mx9ZBw51vD6e+2kD8X5n0GROE1lbNX4sSSY7Nx9ZRg5ObLTb2Goqzq/Dr6kb6wUJmvTAED3+zPzV2dTqxa9JxcLHBZJRUl9cz/q4edB1wfuaqtZmbrOMrXWHjk4JGwMfdQ5js7cr3OcW8lJJFjUmiFQIntYoSgxEvrYZNg7vhZXPqZxKTlKzIL+WBhBOMcnfmzkAvMmrquaGLO65aDVm19QzcmYAEvLQaCv+xO9fXRsNt/l7cH+yNvUrFW2m5fJaZT53FMpgd4MVrkQHK3pOLAIPJbC3USxOr+ke2mfL6s6icWw6msrRP+AVRqfWppExW5JeQNLzXef/dnnNMQUophRC/AAPO9qJSyhwgx/K6QgiRiHlX9KmYDiyVUtYBaUKIFMwKYufZXtvahPb2YsvSY2xdlgxAXbWB5L157F+fQXF2FZXFdVSW1JKVXMqwGRHYOmjY9F0SQsCVd8QQ0c+bQl1lo0IAGDg5lIGTQwGorzXw6/v72bY8mbDeXqi1F1Yg2igl6TV1fKUrZEFWIfcGejM3wp995VW4atWNfuLbA7wY7eFMXHk1+8uriSuvYnaAF48ezWRcbBK3+3vyf8E+zQKmm4rLuftwOpVGE0NcHVnYO6zZOQF2Nlzh7szmkgq+6hmK3iQ5Vl2LwSQJsrdhvKdrk/TRZ8L9mBPiS2pNHY5q1VnFABQubDQqwScxIVx3IIWb4lNP60ZKq67Dz1aLXSviIH8VlWOvUjHU9cJwmfVytmdRdhEnautPmeXWFrQmtXSXEGKQlHLvuV5ECBEK9AN2A5cDD1mymmKBxy3prgHArpOm6WhBiQgh7gXuBQgOPvcsgPPB2cMOvwhXco6XYe+sxaA3sWFBIhobFSE9PUnanQvAlbd3p9swPwz1RrJTSokc4Etoby8AuoSfOmBoY6dhyPRwVn0YT9LuXGKGWyf9taBez9tpudwX5N1qP7pJSm6KT2VzSQUCuM+iEDQq0eLO0mB7W4LtbZvku/vaavkkI5830nL5Oa+UX/p1xdNGw/aSCo5W1fJ+eh5+tlruCvTmGt9TZ9n8O8KPkSXODLNc94ozuKTs1CpinJRG7hcj/Vwc+E9kAI8ezWRfeTUDW8ho2lRsfvK/xtedD7uHnHKtSoORt9Ny+SWvhMvdnVqlQNqDwRbltLG4gpv9tFbbsNealNQEIAo4AVRhiSlIKXu36gJCOAGbMaex/iyE8AUKMXsbXsXsYpothPgE2CmlXGyZ9zWwWkr506nW7sgezQc3ZrJ1WTKRg3yxtdeQfqiQSff3wsXLnuWv7yWinw+XXdv1nNeXUrL89VjqqvXMenFIm2+YM0rJzAPH2VZaSYCtlm97hxPjZI9RSpKra4l2sCO3Xo+LWt3ohy7VG8w59UmZPBzswwxfd7qfx032z6JyZh9KY6ibI72dHfg4Ix8AW5Vg7YCo81pb4dKjTG+g5/Yj3BPozQtd/36Q2lZSweupORyprEEvJQLYOyymRTdTncnEbQfT2FZaQX9nR54O79KsemtHIaVkxJ6jdLHRohaCKEdbXj2LarQnc14pqcCkc7qq+cJa4CfgOynlzwBSyryTjn8F/GZ5qwNO3p0SCFyw5Uoj+vuwe2UaEf28CevrzRU3RjVmIN3yyrBTZiO1FiEEw66JYOUHB9i/PoNBU8LOar6UkrQDhZQX1WA0mjiUWcbV0yJx83Ugs7aep5Iy2VZayb+CfViYXciYvUlc7uaEo1rF+qJybvP35Ke8EiLsbfm0Rwivp+Y07rod4OLAM+F+553pMdbThf9EBvDUMR1bSiqZ4ePG0+F+COiU7p26aj0IgY2dWolVdACuWg3D3Z1YXVjK3Ag/hBDElVVx68E0fGw03NDFg2t93ZmxP4X5ukL+HdFUcawvLOf3glKy6vR80C3IKimu54MQgslernxoeXiadJbpya2+TmtKzwoh+gPDMT/db5dS7mvFHAEsBIqllHNOGvezxBsQQjwKDJFS3iiE6IE546kh0LwBiGyvQLPBUElO7s908Z2GVnv6rf0NSJM875v/mVg37zBp8YVc/8xAPANa59uUUvLH/ASS95r1755IW9b1d2T64VpUMa78pq5DI1S82NWfOwK8KKjX82NuCR+eyKPUYKS3sz3xFTV4ajUU6Q2oAAe1ijsCvPDQapji7dqmN+3DFdV42Wib5c53JqrK6lj8/E4MehPufo70GRNIzHB/RTm0M99mF/Jkko4V/boy1M2Jm+NTOVJZwx+DohpTce88lMaesioOXNYDrSVb7boDKWiFoJ+LI4+EtD47rr3ZX17NpLhjDHZ1ZEW/ruf8YHY6S6E17qMXMO9i/tkydDWwXEr5nzPMGw5sBQ5hTkkFeA6Yhbn8tgTSgftOUhL/BmYDBmCOlHLN6a7RlkohOeV1MjLmodW60yPmXTw9R7bJuq3FJCW1JtlsI1B1eT3LXtuDSi3Q2Gn4LlqDq7MN34zqhp1DyzfR4/vzWfvFYQZMDCFkhB+jj6RQZjQ15hUPPFHPiwNCGdSraWZTsd5ATp2eSAdbvtIVMsXblWU5xewvr+bN6MBO+fTeQFVpHZWldfiEOLfJjbq8sIb0Q4W4+jgQ0sOzMSOt/8QQdEdLyE8vJ3KgD1fMij6vne8KZ0eVwcjwPUfx0KpZPSCKntsOM8PXnbdOKpGxvrCM2w6l8UpXf3aVVrG1pAIfGy1rBkadV8XY9kBKyddZhUw4zxTq81UKiUA/KWWt5b09sE9K2f2cJWoj2kop1NcXsn3HSNzdBlNXX0hVVRIx3d+hS5erqK8vJD9/HX5+M1Crrdf56Z20XD7NzOezmBAm/KOOS3ZyKas/O8jWIc6s8zHf0KYk1jF+gD83DA5svMlVFNeSHJtHwrZsVCrBjXMH81p6Lp9m5LO4dzgfnchjir0jTsszKcmpottlflQU1VJRVItKLQiIdmfY1RHY2Hfq0laAeZNh7vEyCjIqKMio4Pi+AowGE0ExHgy/LrJJ5lfO8TL2/pZK5KAudBva5YzWX25qGb++vx+D3oRKJbhqTl/2rEqjtkrPrBeGIKUkbu0J9qxKw9Zeg4e/I1o7NeF9vc+qZlZpfjVJu3LpPToQe+cLb4/Ahcqq/FLuOZLOrf6efJtdxKcxIVxzUqKDwSTpv/MI+fUGXDQqxnm68nhoF8IdOu9Dz9lyvkphDTDrpNLZbsBiKeXUNpf0LDlfpWAyGUg/8SlZWd9TX1/IsKHrsbHxJv7gPZSXxxMcdBe6rG8xGCoID3+MsFDr9Ra6fFcix2vqAIiwt2WkhzOjPJzp4+xArcnEZ5kFLMgq5BY/Tw4VVxJfZz73foM9T4zuynPxJzhyrJhJOyuwr5dM/r9eaKJdGb47kWnebnwc83e2hb7OyMbFR0mOzcMr0Ak3XwcM9SZOHCrE3sWGvlcG03dcUKd1fSRsz2bHTynUVZv3Lji42hDSwxP3Lo7ErU2nvtbIkKvC6D8+hP1/ZLDr11RUaoFRb6LrAB/GzY5BdYqMk6LsSla8tx8bOzUT7+3FH/OPUFFci0FvYvDUsCaxn4KMCuLWnqCmov7/2Tvv8KiqvAG/d3rNTHrvFUIPoYMoCKIiFuzY/eyr66697uq61nXdtetasKMiIhakSO8tCSW99z5JZiZT7/n+GAxGijTLrrzPw/OQO/eec+6dO+d3zq/isLnpau3l1KsHkp4b+ZPPtq64k69fKsDr9mMO0XHGLUMIjfltuEb+1vlhjiWAbWMH7pcW/OnKRl6ubeWToankHEPupf9WjlUofA7kAksJqHxOBdYCLQBCiFuP62iPgKMVCl5vNy2t39BQ/xHdPQWEhZ5CbNylhIVOBgI7h82bz8LtaSYkZCJ+n51eVx0jcz6ltOxx3O5GRubMP26TZpnTxYRNOoVFIQAAIABJREFURTyUGoNakljR0c0Gm51euf93c0N8wP2z3eNjfWcPL2+rZadWRivApQSFgFithhcz4smNCOKWPdUsarWxbvQA4g6w1fxxPeqmii42LiynvtjGmbcMJXHQgQ1tPq+fovWN1BXb8Hn8tFR3kzgoFL9P0FZnxxKuZ+w5qYRE/7I/Ntkvs25+GQXf1RGbaWXIyfFEpVgwBO279167h9UflVC2tQWlSoHfJ5M6IpyT52Sxa3U9Gz+vIHtSLJMvyezXdmeTg6KNTexZ04BCJXHOn0ZgjTTQ0+Fi4+fl1BZ2cN5dOVjCD7yb9HtlPv/nDpoqujAFa5k8J4vEQ0SsL/jHdnraXUy8MJ2V7xcjy4JJF2YQmxnc735OcGC+abVx1a4q4nUatowduN/nQggcfvmw8g79L3KsQuGKQ30uhJh7DGM7Jo5WKHR157N167no9QmkJP+RqKhZ+53jdFbicjUSHDyWjo415OVf1e/zMaOXYjQeMtPHYfNiTQuPljf0W9G4ZZktXY69hVokxllN+yXCanV5uHxtCdpOD2dIOgaMj+XWyjpaPF5uS4zkH1XN3JIQwQOph6+y8Hn9vHnHWtJHBXI7/RhZFnz+7HYay7owh+pQa5VYIw1UFbShVCmIzQymqbwLj9tHdIqF3DOTic04PMP9kbBnXQONZTYMQVqEEGSOjmL9/DJq9nQw9JR4xp2XetDVvhCCwvWNdDY5CU8wkT5y38p97ael5C+r5Zw7RhCTtrcYTK+PDx/dhNPmISzexLRrsw86+R8KT6+P0q3N7FxZR3uDg5zpieSembxfltyu1l7ee3ADo2elMHJGErYWJwuf24G9w43erOaiB0fvJxiK1q9mzQdvc9af7iMy5ehdoY+G0q3NlGxqQmtUM+WKAb+JHaYsBKftNcj+7SjdNv+XOSah8FvmaIWCEILV9VuZGJOD4hABIDu6nbxR18qtCRGI+idRKvVYrCMpKLiOAVlPEBNz/iH7aff4mN/cgUsW3BAfftBgk9O2luAXgqW5mQf8/EiweX3MKahga7eTELWSjWMGHrHxbPFru2goszF6ZjLBUUaiUi3sWlVH/vJagqOMVO9qZ/Klmf28a3p7PChVCjR6FY4uNzu+raE8rwVPr59z7xhx2J5Th4Ojy827D2xAAvz+gN+5LAsUComTLsk8pmA/r9vPB3/ZiEav4oybhrBhQTmdTU46Guyce2fOIYMOD0ZPexsGiwWlSt3Xx+p5JRStbyQi0czJl2Vh73RTX2IjeUgY5dtbKFhZx+WPjcMcElgI+Lx+Gsu6+OrFAuKygpl2TXaf7adi+xYWPvMYst9HeGIyl/79nyhVP20X8rr9qLVHvlKuyGtlx5IakoeFoTOqWfleERq9CrfTx8UPj/7Fd4gHwy/E3hTdv76Q+q1xQij8iFUdPVyYX85FUSFEa9XE6jTMidm3lV/a1oVeqeDekjpKnW60ConXs5MI06jQSdC6YxIR4dMYMODxg/YhhOCcHWVs3FtY/PGMOK6KDaPW5aHD62OoObDSzO9xMn1rCX9Lj+XauINU6jhCOrw+btxdzUXRIT9ZOetAlGxpYukbgezoGp2S6HQr1TvbsUYasDU7SRwUyhk3D/nJH1t3ey+fPrGV3h4vQWE60kZGkjkqqp+R91AIIfj82R143X6GnRpPWKyZPesasDU7qdnTwaV/HUNQmI6edhfbv60mY1QkMenHviup3t3OVy/kIyklJEnCEq4nY1QkOaclHVE7bTVVLHruSTrqa7FERjHtultJGLQv5rN8RwvL3i7E597f6zp1eDinXT94v+MFK+oC9cT1KmbcMJCagm/ZMP8jrNFTQDkYp62Z1OFGTr95Fs7uLmp25pE1fn9POnuniw/+uonBJ8WRPCwMt9N3SHXW91QVtPHNaztRa5W4HQGbTWisiWnXZPPhI5sYPzvtiNLSn+DX4YRQ+BFCCJ6qbOKf1X1xdJwVYcXll5kTE8pVuyrx730sz2XF81Z9G4V2Fx4hCFWreNv0HD5XDWPHLDloH581d3LTnmqezIjj06ZOGtweVozK4tQtxbR4fGweOwCHX+bxikaWtHWTPz77N+MO5+n1sfC5HcRlhbB7bT1uh49x56Yx7NR42mrtWCL0aHSH56HU3dZLZX4bNXvaqS3sRMiCky/LOiwvnIYyGwue2Y7OpMZl9wYO7s28N2BcNKdc/vM5wBWub2Dd/DKmXjmQpMFhR3x9W201nzx6P5JCwYgZZ7FrxRIcNhtXPPMiQWH7hL+t2cm6T5ZSsmEJk+achdY4CKNFQ+Kg0IOqvxrLO/jy+S14XB58rmK0pkH4fRqi0yy01TTg9Rgxh6jwOEvoalzIlf94kdC4/hP11q+r2PRFBQCSQkJSwOWPjcNoObgHzrr5ZeQtrSE0zsTZtw/H0+ujtbaHqBQLRouWD/6yEXOIjpm3Djvi53WCX5YTQuEgbLDZidKo+UdVE4tabSiQ6JVlglVKrogNQwLuTomm1ePl6p1VJBs0fNbcyd3GbxjY8x8mTdx6wEC373O86xQKFo/MYHVHDxcXVBCrVVPv9iIBmUYdRQ4XAJfHhPbzo/4t0VrTQ0+Hi5Rhx76LcXZ7WPzaTjqbnMx5dCxavYru9l7Wf1pGzowkGspsSJLEkJMDOuClb+6mqqCNK54YT11RJ621PQyaFIvL4cUSpkel+XmFqBCHn9r4h1Tlb+eLZx9Ho9Nx/kN/JzQ2HltzE3PvvJmY9Exm3fkgaq2O+X9/CKPFSkXeNry9Tvx+Pxc+9DhxAwcdsF2vy4XX42b3ymWs+egbtEEXISkUpAwNJ21kJKkjwrF3dPLO3S/hF9Eo1cn4PcVMuiiJYdNm4PN4EAhUKg3vPrAOU7AehUqBWqukemcbQ6bEER7bTFrumD5V1/d0t/Xy7oMbSM8NZ8ysOIJC93/v13xcwu41DVz7j4k/+3dzgmPjWA3Ni+hfTwGgi0Ayu1e/j1/4NTiewWuyEOzodnL1rkoeTI1hdtSBq6A9XFbP8pp1/JV7yR74LCEhE1GpjCgU+1ZYe+y9nLKlmCcz4rgiNqwv4ORf1c1MD7XgETIfN3UyOzKYsyODGWsxYlBKeL0daDRHvir9b6K1poePH9+CzqAmJMaIx+WjrdaOSqvsU6OMmJ6Ax+Vnz9oGsifGMumi/WtV/FbpbKznvXtvxxIewTn3/AVz6L7vc+eKJSx59XmCo6IZOfM8lr72fN9nsx/4G1/96yliswYy644H+o67nQ60BiOFa1ey8p3/4HW5QJKIHziISXP+jM6k3m91b2tuomL7FpqqTFTmC6KTizj37puY//eHcDscJI2YyY6lMlrtZmb9+SLCE5L48sWtVO9qx9X5NqdceQnDpgc8zr8XihsWlLFjaQ2W4BV4etu46tmX97v3yoI2vn6pgHP+PIKY9ONX1+AEx59jzX1UAYQTqHUAcCHQTCBJ3uvAZcdjkL82Ckkix2Ikb1z2IVeHF0eH8FpNGj5VOI1NC8gvfgyXJoXQzNdwO4uxtjzLKsOtKCU9Z4RbcTqrsXVt4ZrYc7gmNjBB9PhlpodZmBFmQSFJeL3dbN9xPTbbZnTaGKzBo4mKOpuQ4PH/c0ay8AQzUy4fQH2pjdrd7Ti6PIw9N5UdS2pIGRqGu9fH9m9rUKgk0kZGkHtm0q895MOmuaKML//1JAqlkrPveqifQAAYfPI0rBFRfP7031j62vMYg0MYeuoMHDYbiYOHMXjKdLYsnE/NrgJk2c/OZYsp2bSOQSefyq6Vy4hOy0Cl0dJQUsjES648qPHeGhnFiBkzcTm8vPHnVTRX+nDYOqkq2AFC0N6chkKVjNuxm1XvvkFqzijKNnyKyngROsu5lGzYSH3RHrxuF7PueADZD3vWNWIOdtJUtgMAj6sXja5/wsLvDcy2FucJofBfzOEIheFCiEk/+HuRJEmrhRCTJEna/XMN7NfipybhTIOONKOeQt8YVB2LUAGm3nbm5j3DVL4F2nD2fMiZ5nNoLLmdlpbFgIxSaSQyYgbt7atwOCuYETuHzo41qDUhFBbejcNRTmLiDTidVbS1raCpaQHB1jFkZz+LVhv5S9z6L0bW2GiyxkbjdfvpbuslNNbE0FPiUaoUCFnQ3e7CZNX+5upIlG5ez7p573HqdX8gNnOfPaO3p5uC5d+y/uP3MQQFcfadDxIUfuDiSPHZQ5j5x7tZ8NQj5M48j5wz9rlDDz11BlsWzueTR+8DQKlSEZWeRlXJ50SkDOD8Bx9DpdbgdjrRmfoLBL+/F5BQKve5LeuMaizhgs6mGLZ9vRCEwBAciV+kEj9QT3TS2ax+/y2qd+aRPHQEAyZl8t27VTRW+PF71gCw6fOP0QWNx2X30tP8NZbIKLqam2ivqyE6rb+3nDlUh1KlwNbkPKbnfIJfl8MRCuGSJCV8X31NkqQE4PslkOdnG9lvFEmSODPcypdVOQxmETsYwTCtjYvc7+PCQBkZDPKvZoxjI+12N4kJ19LUvIiGhnkEW3PZtfs2fL4e6mrfodcVKGinVBoYOvQ/hIZMAECW3TQ0BALlCgpuIDd3wa95yz8baq2yb7X7va++pAh4+/zW8PQ6Wf7GyzhsnXz813uJTE1DqzfQ1dJMZ2M9ABmjxzP1ulvQmw6dTC1pWA43vvY+QqPDLwuUe9NqBIVFMPuBR3F2d2GyhiCZaqmoeQSPp4UgUxRKtQJJodhPIJRX/JOqqheQJDWpKX8iIeEaHI4yZNlDWk4U2xYr2frlYoKjk4nMuJSqAiejzxpCcJSGLV/MR28O4sw/3o1ap2f9Z7X4PQnoTR1EpWWw4dPPMEdFYwrupc1Wy9Sr/8L8xx+mrbZ6P6GgUEhYIvR0Np8QCv/NHI5Q+DOwVpKkcgK+H8nATZIkGQlkQf3dcUlMKO/UD+Yz72zsQWdwc3YKDkcpaz1pLChawp38HcmvJmfkAszmASgUOiqrnmfnrj/g97uIiDid1talpKc/gOx3ERo6CbM5u699hUJLXNyluD3NVFe/gt/vRqn8/eRl+bmQZR8dnWsJDTnpiNVyaz58B4etk3Pv+QtVBTtorarA5bATEhtH9uSpxGYNJDZz4EHb9fkctLR8Q499NwpJTbejmbe2hlJmH8/zF48iPTIgSBIGDUWWvdTUvEF52bMYDKk4VdPptr9LYdG9DBzwTL8+2ttXU1X1AmFhUwEoK3+SyqoX8fvtKBQ6ho7/gp2rJBDn4/aoqCpwMnBCDBGJQUiSxJwnnkOjN6DRB1ykE7LDKN+ehsE6kJZaCW1QCp5eHy7bV6SPGkvCkGGo1Braa6sPeJ/WCAOdTY4jerYn+G3xk0JBCPG1JEnpQBYBoVD0A+Pycz/n4H6rxOs0fDAsg//bdQWPJcWi11vQ6+M4GxhgvgBb4UKio87GbA6oGGJizqe65lW6uwtIS72ThIRr8PkcqFSH9tc3GtMRwo/TWdHX1gmOnsbGTykqvp9B2f8iMvLwUnf1dLRRtG41ed9+yYgZZ5E8fCTJww9onwNACJn2jtU4HGUgZBzOCmJjLqSw6D4cjhKUSgOy7MPh1XNOShc7Wvdw7ks+3r12NMPirfT2NrBs/bUYpGK2twzl0/Irae5Rctd4LzR9hMvViFKhJSR0Eg57CY1N8zEa0xmU/RwKhY7W1iW0d6xGqwmnpvYtquse4eKHXmXDgnLUOiXZE2IJT9i3kwkK66/mih8YQsnmZrrbZCzhemTZirP9UyJTDEy8+AoUCiUhcfG01e4r2+6y2xFCRm8OCkS372xD9ssHdak9QX9k2d3PUaX/Z15aWr5BCB+RkWcc9LzjyeGmw8wBkvaeP0SSJIQQ7/xso/ovYKjZwOYD5FTJNJth1Bf9jul0MUwYvx6l0ohCEXD1+ymBAGAyBrxuHI7SE0LhKHE6K5EkFTpdHE3Nge+lqvoVwsNPp7OhnsK1K+loKiX1FC1xCedQuLwAn9dLeGIS275eSGNJEQAJg4cxac7VB+1HCEFd/XvU1r5Jb+++CVOh0NDY+AmgYPDglwgPm8bHW2u5e34BL5y5nuHh82hNSWTVhudZsHogoyKWoBAe1tpuQ2uZRm6yEwE8tW4sb56rxOVaA0i0d/wNhUJLROT5ZKT9GaUyoHKLiJhORMR0AFSqIErLHkOklXPq1dn7D/oAxGcFvO5CYoxc+MAohF/gcY1Eb95XuD4sPpGanXl9f3/2+MO01lYx7vxLsUaORfYLuttcWCMDuw+Pp43S0sdJTLoBkzH9J8fQ2bmJ1tYlREbOxGL53455qG+YR0nJIwwfNhebbSvO3iq02ggkSYVeF0dl1Qv09gZ2ZcUlf8VkyiQl+Tas1lyEkPvZkI4XPykUJEl6F0gF8oDvQy8F8LsWCkeKWn3k3hgGQzKSpMLhKDmmvmXZjdvdil5/fHPA9NiLaGtdSlTULPT6314Uq91ezOYtZyOEh6CgYXR352MyZWG3F/L1u+fgctegD3OhSZNpavPR2PImjcURtBSEgRBYo6KZcPEVJGQPITIlDYVyn++9z9eDQqFHoQj8hKqrX6W84mkslhGkpvyZkJDxCOHH73eze88fiYw4A2PQFJYXtvDMkhJyEkOYNuoO1m/4kmnxnyILDQqpkJqeRFoUd/HQ+dP71ER2t4+tVR1c/dloYDRKBYxJ8FDbZaTW5mVI7B7eu3Y0Zl3/2ILIqLMoLfs7rW3f9VNPHgqjVcu4c9OIybCiUEigkNCrg/qdExafyJ7V32HvaMfe2UFjWTHWqGhWv/cmk68MBCV2NDj6hEJp6d9pal5Id88uRuUuOGQK+sbG+ewpvAuAHnshOSM+OKxx/zfS1Z1PcfHDCOFl9+7bcbkbUCoN+P1Ovo/S1OuTGDLkNRSShta2pXS0r2FH3uUAREbOZFD28VfWHG49hYHiCKPcJEmKJyA4oggU2XlNCPEvSZJCgHkEdh5VwAVCiM6919wLXENA+NwqhPj2UH38mjWafyk2bjoNvT6RoUNePaLr3O5Wysoex9a1DY+nBVn2MCj730RGnnHMY3K5GqisepHGxk8Qwo8kadDrY1EqDRgNaVisI2lp+QazaQAJideh/RViL2TZzZat5+J2t5KQcA0VFc8hhIfRoxezO+9h7O5NIJRYgkYjy266y5LBnI9kKiUiZA567wxSRuT2EwStrctobJqP399LR8c6DIZkMtIfxOuzsXv37URGnkn2wH/20/l7fDI3vrcNvUZJXq2Nus5edGoFH103lmHxVurqP6CraxuZGX/B5WrEYEjpEzQ/pLXHzeqSVpp7XPS4fOTX2gg3a4kwa3lrXRXD4q3cdVoWo5L7x9ds3TobWXgZlbvwuD3bjoZ63rr9esadfyndba0UrV/Flc89y5cv3IOjOQjUl+D3yAyblkDGxDby8i8hLPQU2tpXkBB/Nenp9+3Xpt1eTGPTZ9TVvU9Q0BCs1pFUVb3I2DHfYTAkHmAU//1s33EZDkcZ8XGXUV7xDwyGVEaPWoQkqfH7HfT07CEoaFg/e6Lf76KhYR4+vx2TMZPw8KlH1fexxinsIjCxNx5hvz7gz0KI7ZIkmYFtkiQtBa4ElgshnpAk6R7gHuBuSZIGAhcB2QTKcS6TJCnjUOU4fw8Yjen09Ow67POFkGlo+Jiy8ieRZRfhYdPQ6qKwdW6msOg+jKaMvi28EILe3hr0+oTDNrw6nZVs3XYhfn8PsbGXEBtzMY2N83G5m/D7HbS2LaepeSE6XRw22xYczjKGDX3zqO79e2TZhxD+/YztdnsxNtsWbE4ni4tNCNmNUjcQqzGCeNXbKJxFDB3yOmFhp2C15GC3F2MyptO8KZv2dhvn3Pk0VuveFfTowLMrKrqfhsb3yEhPQaEcA4DX20VJ6SM0NX2OVhuFUmkiLu4y2ttXkpd/JSBhMudQL26nLK8Bi0HNoBgL4WYtc9dXsbyoBbNWRahJw9tX5TI8IRiLPrCqj4u9hLjYSwAwHcJrKdys5bycA+/0BsVaePDzXVzw6gbevWYUE9P3RZ+HhU2hvOIZXO4mdNqovffTTVX1i/T07CE+7oq+ieVwI7hDYmJJGpbDtq8/x+tyM+iUCRSWXk/UhFIql8SSe6qGlpogti+uptX+OrpQI20FNxMxPIi6+vf3Wyh4vTZ25F2J12vDZMpgUPY/EUKmquol9hTegSVoOGlp9/Ybm9dro7t7J6GhE39yvMcLv19mx5Ia0kdGHtRDrrHMRmutncGTY/s7BHSspbNjHcnJt6JU6unpKaSzcz2pqXeREH81Xl8XUZFn99kMVCozwcGj92tfqdQRH3/IxNXHzOEIhTBgjyRJmwH39weFEGcd6qK9JTYb9/6/Z++OIxaYBUzee9pcYCVw997jHwkh3EClJEllBOo1bziC+/mfw2TMCHit9Ow+pApACD8dnRuorHyerq6tWK2jycr8W196b5ergc1bzmbbtouIiT4PnT4Ov89OecU/iI+/ivS0+wEZv9+JSmXer+36+g+prnkdt7sZlcrMqNwvMRpTAWji/3h48W4kCWYPv5kYUzNfVUUSo1zAcPEBbe2baPMOYFVxK5ePTUJ/mCkQhBBUV79KTe0be/tcRHdPAcXFD+J2t+D37/NyGb7XRNPiDGPR9ulclf0BG5vHU69PYU6IwGodidU6Emd3F2VbNpFzxux9AmEvkqQgK+tveL2dlJQ+gsNZjsfTRkfHGmTZQ3LSrSQl3YgkqVmwo574qOtQ9MxjT00+T393Jr2+fcLbrFNx12lZ/Ht5KZMzw3njilwU0s+TsXPWsFhOHRjJqc+u5pklJUxIC+vrJzx8GuUVz9DU+BlJSTchhGBP4Z20t69Aowln566bSUq6Gbu9CJttK2PHfHtYNcpHzDiLz/K2EZ89hLCcIjpt1RgN6SSeUkZHy2qmXnkX+iAfLssOFK7pFK7vQK0/AznkCyrK/0FW1mNIkoL29jVUVb+E19tB7sjP+r3jERGn09a2lK6u7ZjNg4iKCkw5LlcDO/KuxOksJ2fEPKzWgxv+jyebv6hk+7fVNJba+vI72TvdrP2khKgUC84uD3nLa9FaKvAbuknLnoHdXkRDwzxsts2B8+1FREfPpqb2LRQKPbExF6FQqElPu/cXuYfD4XDURwcsViyEWHXYnUhSErAaGATUCCGsP/isUwgRLEnSC8BGIcR7e4+/AXwjhPj0R21dB1wHkJCQkFNdfWDXuP8VXK4Gtm27EK+vmwEDniAyYsZ+5wgh2LnrFlpbF6NWB5OWeg/R0eftNwH19tZQUHADDmclQgRCTHS6WFyuekzGTNyeVrzeDnTaGIYMfZ2mpgUoFQbsjiJaW5dgteRisQwnOno2RmMqDbZe7l+wkxXFraSEGbEa1GyvsQEQatQQapC5fsA9SBLMLz2TdQ1jmJ4dyUuX5vT55h8Mj6edpqaFlJY9hjloFD3dW9AbMnE6i+nxRlHYOYiy9iAMQScTGWRi9hAnwXo3ewrvQggvkjqTd0ruYmWpg6kDInh69lCcXj8V+TvY/NLfufAvTxA3YF+OIYfbx7LCZlq63QyONRDkfpbGpvlotVGEhU0hNuYizOaB+GXBQwt38f6mfcZks07FJaMSmJYdSbBBQ0uPm3vmF1DV7iQhxMC714wiMfTnTyf90eYa7vlsJ0/PHoJFr6ap28VlYxLJz7+a7p7dZKTfT2PjZ3R0riU9/QFiomdTsPMmOjvXI0lqhPAycMAzREefc1j9NZWVYIxUsHnLaSQl3Uxc7BxWr5yI1x5Edu7/0WXbRmvbUkaO/Iz8r/XsXFXHuKu/o6PnQ0JCJhIWejIlpY+gUlmJsNyC0j2DjFFR/foQws/mLWfj9bQTEXk6RmM6lZXP4/P1ABAWdvLPolf/MbvX1LPyg2LMwTp6OlycddswQmNNLHo+j/Z6B0IWSAo/6dM/QWFe3u9apRSL1Tib0GgrJaV/Bdj7O727X/r9ghW11OzuwO+T+2w7erOavKW1lG1rBkkiaXAog06KpWJHK3qz5qhzkv2qCfEkSTIBq4DHhBCfSZJkO4hQeBHY8COh8LUQYv7B2v492BQAXO4mdhbcSHdPAVbraBITriUs7JS+zxsaPqGw6B6Skm4hKfGmQ8Y0fK8i6OhYh822hcTEG6ipfYOurh2oVRaMpgxqa9/C57Mjy71916WnP0B83JV9gmZ3QxdXvbUFp8fPzSencdX4JHRqJW12N402FwNjglBIsLxgNY7WpzEpCulgFnvqm/BLUSQEewnS6zlp2P/RY1tFd/d6gkxZWINH0dj4GS0tXwHgVY3lgVWXMSXuY6YlrmRF7QQ2tF5McngokzMjuHR0f9VXa+sSeuxFJCVejyRpmLu+ir9+uYcfvuYxrkauP/9kEkLNCAQFdV28saaSHrev75yrxydxx9Rw9LpwJEnC7fNT2ebgxRXlLMpv4PpJKcRY9chCMDsnbj8jb0uPi1XFrcwcGoNO/cskh/P6ZS79zya2VnXwfdG+26akc8XIdnbsmAOAThdPdNTZJCff1vfcvN6AIN+46TSs1lwGD3r+gO0fiNLSv1NbN5fx41aj1UayauEf8ZkXASBJakymTHJHfo7X7ee9BzcQlRLEkJm7KC37G7LswWodzeDsN/jwL9uxd7o54+Yh+2Wltdm2kl9wHbLsRpZdqNUhDB/2No2Nn1FX/z7jx61Bqz0+aecPRNGGRpbPLSRhYAijz3fzzQsO7O0gSYAkmHxNL1Ex46hreZTW9i+w6i9n2/xMrAl7cLRG42xNBxTEpFuZck0IktKJwZDSz3PI3unm3fvXYwrRYgjS0lrbg9GqJSoliJJNzUQmB+JKmiq7kCQJIQvScyOZds3hORD8mKMSCpIkrRVCTJAkqYf+CfEkQAghgg54Yf821MCXwLdCiGf3HisGJgshGiVJigZWCiEy9xqZEUI8vve8b4G/CCEOqj76vQgFCPgr19bNpb7ufXppWNcNAAAgAElEQVRdNZhMWbhcTWi14TgcpVitoxkx/D0k6dh9wzs7N7Ej73JiYi4kOupcfH57X7S1s8vGyrXbuHujC6NOzTvXjiUj8tARvEL42bPnTpqaFyIkI5Jw4PFrUEo+lAoZgGZHOOGGNhSSQKChxH46ZZ2xLCpOZlBcBLOGRNHlqGHq4BEMjA76STVMxY4tbPj0Q4LCIlCOOoNqr4EQo5pVCxey3heNjf464enZkVwzIYW0CBP/Xl7K2+urmJgexp3TM9nd0M3zy0tp6AqE59x9WhY3Tk492sf7s+Jw+7jjk3yiLDq6e33M317HJaPjuWrwUgyGOGKiz0cIibrOXhJC+3sBFRbeS3PL10yauAWF4tAlP4UQtLevZNfuWwkNndwnSCrzt7F64R/ImXYj2aMvBQJqua6WZnat7qZgRR1XPTkBL+U01H9MR9GZdLdoKNvWgtGqRfbLXPLwGHQm9QH69NPdXYBOH49WE4bTWcnGTTMIDZ2EyZSFRh16zPp2v99Fr6sWoyGt7x1b9vYeags7OPNOPwUFVxNsmYJovw+fS8acvIjG1n9jNKbjcJSSnPQHUlL+SGN5F3nLagiLM5E6IoKGUhurPywmc2w0U/amfK8r7mT74ipkWWAwayjd1sKcR8ZiCdfTVNHF8rmFdLU4yRobzclzspAUEm11dnatricmzXJYtb4Pxq+yU5ACo50LdAgh/viD408D7T8wNIcIIe6SJCkb+ICAHSEGWA6kH8rQ/HsSCt8jy16qql+ms2M9BkMyLlc9wcHjiIubg0p18Opm31cmO1y8XhsqlaXvpfN5vXw27zMWrCtmi3kIOtnN7OZFTDvrdJKGDqcqfwfWyCgGTDz5gC/q9z9oszkbv9+JQqElvzKPPVVLcasm0umOYXVhPk5XE42OKKzGMMJMGmaPjOfSUQl9Y/d5PNg72tGZzfi9XrwuF6bQMEo3rUOt1aHSaChcs4I9a1ZgjYzG5XSgUqm47Ml/ozOZef6qCxh08jRSZ86hw+lBIUlY9WqSwvqrdz7aXMNDX+zG4wsIrcGxFq6ZkExahIlBsUdefe3XwC8LnllSzMsry7ltSjomrYqWHhctPW4W5jXw2U3jGJGwz37Q2rqUgp03MHzYu4SEjDtgm62tS6lvmEdPz048njZMpoEMHfIaOl00EEjv/ebt1+N2ODjz9rtJGjKCFXNfI+/br5h85d1sXOglLisYg0VD/IAQlr9dCEBCdgjjzk1j3mNbyBobxcAJMYREGfuqyx2M2tq5lJQ+AoAkKRk9avERlcl1uRpRq0Ow2wtpb19FfcNHeDwtWCwjMZsGEBN7EUtesqPU+IgYfR9udzOy7CI0ZBJIEh0dazEa07HbizCbBzEyZ/4BvccANn1RwdavqxgwLpqkwWEsn7sHjV6FLAucXR6kGD0FyRqCjRpSwwPvY1lzD6cNjmZy5oFzaR0tx5o6OxWoE0K4JUmaDAwB3hFC2H7iugnAGmAnAZdUgPuATcDHQAJQA5wvhOjYe839wNUEPJf+KIT45lB9/B6FwpFQsWMLW2q6ebdaQ2mLnbeuzGVc2r6tuccn811RM5MzIw6p4mirqeKZ597gI/VokCQmJBi5/5R4yhd/SvGGNf3O1QdZMFqsTP2/W/oljTschBA0d7tx+/wkhBjw+3yseOtV2utric8eQvzAwXz+9KN4Xb39rtOZzLjsPX1/K9Vqck6fxdjZl9DRUMeHD9yBMSSE+IGD2bViKWfceucBq5H9mA6Hh6V7mkiPNDM83vpfm7H21g938GVBQ59KCQKqj+smpXDvjH3fkd/vZPWaHGJj55CRfn/fcSEELS1f0dq2nObmL9Dp4gm25hIUNJTo6HP3izuwd7Qz/+8P4XH1MnDSFDbO/xClSkXKiFH0uqbSVmsHQKEM5LmaeeswdCY1KpWCjfOK2b6qAYDsiTFMPkCd8B8ihKC27m20mnAKi+4jOHgsQwa/0u+76ujcQEX5P4iIPIPOjvV0decRGnoSUZEzycv/YUCiRHDwGEKCx9HQ+GmfU0XVdzcSk7sQtPkMG/oWzc1f0tW9HaXSiEGfRFbW3+ju2YXRmH5I92u/X2bj5xUUfFeL7BfoTGrOv3ckSpWCxR8U8URFPeoQLU6vH5szUFRKq1LgkwWPnzOY80fGHbd38FiFQh4wkkBcwbfAF0CmEOL04zK6Y+CEUDg4JRvX8u4LrzIv5hyMkg+1WoNbpePBAS5SrSoSx0zmlnk7WV/RwaQEPVcYymlvacEpK1F2NROTnkFk+gBCYhP4/N/P8Ip6MiHBFt6/aRKx1oDqRQhBR30t7XU1RKVlUrMrn7rCXdQV7qKrpRm9yczY2Rcz/LSZhzVmn9cLQqDSaPD7fHz53BOUbdlIZEo6zRWlSAoF1qgYRs2ajbPLhlKlQvb7qS8uZMiU6ejNQfj9PkKiYzFY9gULVu/MY928d2mpLCc0LpHz7n8EQ9B/x2r/eNBmd3P6v9YwLjWUP0xJp8HWy6urKmjqdrHsT/2FY17+1TidVYwds7xvAmppWczOXTejUgURHX0eaal39VMv2d0+luxuwuWVuWBkHCqlgrKtm1j49KMApOeOI1wbT/6Wb7ngqRdQSBrylteye3U9U68cQOaYaDz1djo/K8Vbb8erU1KsVVPX1stVT07oS5b4U1RVv0p5+VMkJt5AasodSJKELHvYtPl0nM5qQEajiUCrjcRu30Nw8Di6uwuIj7scgzGV0JAJ/Tyv7PZitmw9L2BbE0oGDnyynxFe+GT8XW5UoUeWwNHZ7aG9wU5IlJE6l4dnlhRT2+GkqdvF6rtOxqxV0dXrRQjQqBT83ztbWV/ezllDY/jXRcOOi2A4VqGwXQgxQpKkOwGXEOJ5SZJ2CCGGH/PIjpHfm1BYXtjMx1triQrS8adpmXj9Mgu213P6kGiignR4vF6aC3eyePFKPq7XUG1MwqhWcItmO40V5XwUdgZuhZbsnj006WNoUwWT5iin1JSOWvbgl1TIkgItPob37GSnPoNepQ4JgSyp+OSGsYxMOnDxoR/istvZsXgRNbvzqSvcTXruWLxuFwMmTCZ+0BDMIftWU36fj9rdBch+P8veeAmtwciFf3mCpa+/SMmGNZx85fWMmDGTjfM/ouC7bznvvkcIjT26KnVHW0ntfwGPT0bzg8n1zbWVPPLlHlbdObmfZ1Rd3XsUlzzMqFFfodWE43LVk19wPRpNGLkjF+ynGhFCMPuVDVRU2xiPiuEhJi6+djh6q5a5d95CZ2M9l171BJ7lbchCxpetIOXyifi9Mg2lNuKygpF7PDQ/vwMUEqZRUTi2NOHzyqxudjH+/DRiB4Sgjuyv3nOV23BsaiT47DQUBnXfWIpLHqK+/gMGDniK6OjzqK17h5KSvzJk8KvodDEYjak4nJVs3hwI4oyJvuCQtdbLC1ewcdFKcqeeRcaInL5+ene107W4En+7i9CrstFn7v+7cLh9/O2rQoqaukkLN3H3jCzCTPucQGo7nMx+ZT3dvT5cPj9/mZnNFeOS9mvH55f557ISXlxRzguXDGdUUgidHb0YJYm4xKOrW3GsQmETgcR39wMzhRCVkiTtEkIcuGbgL8jvSSi02d2MemwZ4WYtbXYPEgEVgNcvSAo1oBI+6tvtxDpqKDemoFdJXJCbwJxxAeNpV0sTSz/5hO9UA1lS7UIpZK4yV3D+9LEsrXZR5zcQbDETYdbyza4m1pe3ExukJjfYh1Kj47JpIxgWf2QvoNft4pNH7qezsR6t0UhXS6Am9rjzL0WSJCrztuGwdfQdN1isOLu7UGt1eF29TJpzNbkzz+1r7/c8qR9vqtsdnPT0Sm6fmsFtU/flI3K5Gli3vn9AmEKhI2fEhwQFDdmvnTW7m1n/7k4uUmhR7lUS+9QSphQrbsmFR3KhrVaiDNNTU5pPtDYF68wUDLlRSBJ0r6zDub0Z2eEl4uZhqCONuGpsNL+Yh1IKqDQFYJ4Ui7u8C3W4Hk1SEF3fVCHcfrTpVsKuGoS01+YkhJ/t2y+lx17I6FFfU7DzOhQKHSNzPu17d4QQbNo8A4ejlGFD3yI0dNJ+9/U9xZuaWPbWHi5+eDQh0Ub8PR46PirCXd6FKtIAQiA7vJgmxqEfFIY6TI/d7eOTrbW8v6mGilY7o5ND2VbdiUalYERiMO12N2NSQllR1EKb3c3HN4wlKdSIVqXo934Lr4yv04XSpMYvC/700kZ8PR7SvHAGGuqDVEy578C2n5/iWIXCQOAGAu6iH0qSlAxcKIR44qhGcxw5WqHQ3O3i/Y3VGLUqZg2LJcqio67TyYvLS5iqbSBn1AiskVE/3dAvyCdba7nz0wK+/EPAC+irnY3IsmBgTBD3zN+J5O0lxNdFozqcy8YkcNvUTIKNB/Ygabe78fhloi0H3vbKsmBZYTOjkkOwGg7thfJTyHLAT0BCoqmilG1fLaR4/WoAIlPS0BoMDD31dJRqDdHpmexZ/R17Vi1n/EWXkZqzf0TnCY4f//fOVjaWt7P6rpP7vSvV1a/h8/Wg0YajUpoJCzt5v9xdtR1OXv+ikFklDiJlCe2wcCwnxXHV3K1c4FUxxmLA3+1BtntBpSDyD8NY9vGrRFfFEqaOQdIoUZjU+DtcaFMsmCbHokmxoFSp2LV+LW+9tZhx5izMplTCHB4i1AqUoTpkuxfh9qMwazCNiaZ7aTWGEREEz87oEwy9vbVs3HQaQUFDsNk2k57+AAnxV/Ubf139B9TVvcOo3EV9SSoBfF1uHJub8FR2oc0IpqzRwZbVDVzzr5PwFHZg+6oC0evDckYKxtwofB29tM/dg6+tFxQS3fFG3mns5CNPL1lRZu49fQAnZYRT2tzDf9ZUkl9nI0inZnNVB1qVgvevHX3A3XfvrjY65hUjvPJ+n8lAd4IJeUwkQ0bEHNV3f8zeR5IkaQiU3wQoFkJ4j2okx5mjFQp5tTbOeWkdQkBKuJEFN43nprkbWVfVTZC3i1md33H2eTMZPuNMJElBd68Pi2F/F7nDQZYF9bZe4kMOngTse2xOD/O21HLpmERM2v7b9Bve3UZerY0N956y32o5f3cZi/52D6ddOofhp8/6ycCwXxPZ72fF3NewhEeSc+Y5J1b+vyIlzT1Mf241A6KCOGNINBeMjCfcHFBvOD0+ZMF+7+Frq8tZmNeAsLl5yqlBIUHDybFMnRZw0X15ZTlPLi7ilTkjaOxyoZTh0pFxKPVqCtes4JsXnuWimx9H16LB2+ggaGoC+gGhLPvPixStW036jNnct0OiXehJdlSy4IHz+faVSoLcfnKuG0R4rBm/3YPCqEahUdK9vIbupdWoo40YciLRZYWgDtNTUvoYtbWB9Crjx61Bpzvw5OnrcGFbVI6nzo5XCCSnF0kGd5AaXXdgmvMA5nQr7lIbrhAtQeemEZEWmMir2hzc/nEeGQYtUzr9hDa7iESBfXw0WTPTDvrs82ttKCSJwXH7bFv2jY34ezyIXh/2DQ1o4s0Yx8bgt7kBgSbGBAY1mkgDisPMCnAwjnWnMJmAa2kVgRiFeOAKIcTqYxrVceBohYLP68Vh6yC/1cfV7+UTbFDTavcwpLeEyqAM7F5BiqOSINFLhS6BLpWZ07OCMZtM1HY6yY4J4q7TslD/KF98XaeTx78p4u7pWSSEGmiw9fLHeXlsruzgnatHMSnj4AE2u1Ys5e/Lq1nvi2ZcSgh3nJZFaXMPGpWCyRkRTHjyO84eHstj5wzud52QZdZ8OJetixZw/StzMVp/OkXBCU7wPR9squGjLTUU1HUBMEqj4azkMN6uayck3MjHN4xF7vXR9uYuPNEGZmwrJzhIy6NONSlCQdQfhqMO37fgael2ceo/V9PVu2/deOW4JM4bEUdqELx83RxGnnkO4y64FLUmIIDcTidP3XQDLkMI+cSwx5zFQH0vu3sNvD4WBgyYwBfP5yH7BBmjIwORviZ1X70Gx/ZmelbV4Wt2IqkVRN2Vi09jY/2GkzCZsskdGUiKIISgt6ANVbgeTYwJT4Od1td3IvtlSiwqKlrt2BHMEx4MPokLXBoiFAqGhOnQefy05YRz7uYyEsOMPD17CEqFxF2fFtDU7cKiV9PS42Z0YjBPa8z4ijqwzEgO7Ia6PKhCdegHhfXtZn6Mu7qb1pfzA38owJgThWVmyjFP/gfjWIXCNuASIUTx3r8zgA+FEDnHfaRHyNEKhabyUt6/73YAXIOnssZuweN08NrV4wjLGMQrq8r5cEMlDq/MAL0LRXst+bp0dCqJjAgjBY0Ozh0eyzPnD+W2eXkY1Er+MCWN2z7KY1t1J+cOj+XJ2UM47+X1VLQ60GuUhJu0fPmHCfvFCji7u9j65QKWfbWE9+MuItjTSZu2v1ubJIEQ8NF1YxiTEtp33GW38/afb8Rh6yRpWA7n3fvXo3iKJzgBlLX0sHlDHZM2tAHQgcwD9PLsnyZg2t6Kb2UdAJX4SR4QBoWdBJ+fgTFn//rhnQ4Puxu6iQzSMndDFe9tDKQEuWdGFkFLX6KxtBhTSCiXP/U8OqOJvBVLuearFjo0IUjA9Gg/t587jukvbiLZ38L4kdncfdoQ9qxqYOvXVQCodUpSh4cz6eJM1HsnTk+9nZYXdmCeHI9lehJt7SvRasLR2pNw5rXga3biKuoACYy5UbjKbbh6PLzR1Uu9JDPIoCdYlpAVEu4ON8Ki5n1/Dy0qgUUhoTNrkUXA28q+N/pdpZB45+pR/Vy9ZY+fjo+Kce1p7/dcVJEGjLlRaFMsqCMNSHuFmt/uofX1nQiXj/AbhyIpFSjN+6ttZb8fl70Hg8VKZ2M9CqUSS8TRqbmPVSgUCCGG/NSxX4OjFQrOLhvl2zbT1dLMtq8/R6lScdpNfyJt5D4dts8v45MFOrWSpvJS3nzsMXB2ExoSRO+su3huRSUnZ4azori1X9uDYoMobOzhjMHRfJHfwIuXDMfhcHLXwmJunJxKlkWiuqGVWKOCNSvX4muuZkfQUOr1sWiUEndot9LU2MzYm+4lKcJCeauDzZUdzBoWw9AfGXp3rVjKt6/8i/EXXkb2SVMwh/7yKapP8L9Dz6o6ur6pxH5GIoZ1Tcg2F/lxejIbXOwSPjaHqrihS0LjEwRNTcR8Svxhqf8qWu08ubiI5YUtzL0oC3NLCcv+8xJJQ4fTWF7KBkUya0PGcVp2JJVtTt67djThZi0X/Hs5W+qdCEnBteMTeGDmYOpKO/l4STmtdXZiO2XihoUx6/rBfeNoe3cP7jIb6mgjQVMT8Xe66FxQBoCklDBPjkd2eLFvakT4Bet6fDQIgV6SMARpiEqx4HZ6SRkWTta4aNZWtFPU1MOa0lbWlbXz3IXDGJ0Swq76biDwez+QbU7IAldhO8ogLbvyvqN5VSHJ6kGYxF51kUpCHWZA0ivxNTuR3X5CLxuIPqu/faG1upKN8z+iqaIMZ5cNn8dNWu4YqgvyiB2QfdQLwWMVCm8ScAB4d++hSwGVEOKqg1/1y3A8vI/sHe1ICsVPql3cTif1RbtZ8NQjDJt2Jh8qc1hW2EyE3M1V4S0YJ8wiIcRAZpSZk55aiVeWmT3QytA9n9JcWU7F1D/xVdmBa9datEqumZTKlAERWLrrmPfw3Uy5+kaGTT907YP5jz9MZ2M91/zr9RO6+RMcM21zd+Nr7SXqjpHIvT5WPLOJTIeMjKBkaixTp6bi73bjd/jQRB9Zgr+uXi+nPbeaMJOWhTePZ9l/XmDn8m+R4wbyumYiI6L0fHjrlP1qUVTtKuDPr33LzqBBDE+w0t3rpbzVwfB4K6ZyB2OcKtLOSmRwegg+r0yURUv7B4UIlw8UCuReH9pEMyGXDMAmZP61vJT6LS1k6DREdclUOTycc89IBkabUSgVB4369/pldtZ3HXEQY+GaFXz9wj+ITs+ktbqK5LRhTDrtCmjz4W1x4LW70IaYkIYbMCSE4nLYKV6/mobSIqwRUeQt+Qq1Vkfy8JEYrVZkWSZv8VfEDhjI6bfccdQLwWMVClrgZmACAZvCauClvSmuf1V+DZfU7956lR2LFzH0/Ct5pzWciA3vEO1u5oKHHyd+YEDfX9bSg9Lt5NvH7tybvEpGb7FSoYmls7GBGWdNp8kJE04aS6PdT3ZMEKE/8F+ee8fNqPV6Lnn0mYOOo7enm1euv4yRZ57DxEuu/Llvez+8rU56d7ejTTCjSbacEEq/QVzlNpzbWzBPit3Pz//HCFnQ8OhG9NmhhMwO+JTsqe9i2dZ6Ts2OZEBa6CGvPxw+217Hnz7O5/8mJhNrUtJRsosvbcF0ufx8fdtEIoP2Ly0phOCNP9/MVlUKhcZ0go1aZmYGoV3/CeW1TUjB12IQEjohIfkFuWcmM+TkOKT2XlpfzkfSqfhmdAgvbanB4fZh8Aqu7tah2DvtNWUaePT2Mcd8bwfC2d3Ff/5wLZHJqcx+4FEK167i25cDGV2jM7Kwd7TT09aKSq3B5/X0u9YUHIK9s4O03LFMu+FW9D+oteGwdWIIsiApjj7P2TEV2dk7+T+799/vnpMuuwZndxf5n7zNaWmZNHlbMQaHsOSVfzN29sXU7CogMjWNgqXf4HY4uOSxf9BWU8XXzz9DiLaBi6+/tV+KhQNVrM2aMJm1H87F1tx0QNdYb6uTonlLkf1+Mscd3Mf656RrcRWu3QGdqfmkOAwjArlZZLcf2e5FHWtCadYc1LB2giNHCAECJIXE/7P33mF61WX+/+uc8/Q680zvNZPMTHolnZBCQg0dA0sTEARXEGRlXVZ/KqKLgiIgiCAiUg0IJISSThqkTXomyUym95mn19O+f5whIaQAEdTdn+/rmmtmTvucet+fu71vJZAgccCP5DBjrUxDtB39lLWYTHhdO+HVraBBbHs3WTeOxFp+bBW3MpBADSZJdURQA0n0uIK19Og2NQVear5EnqeFowt4dkMTT31weHCJjSy3xm++NuaECgGM/hNj55xN8I9PMYTVAAQ2g9XpJE1UiGV0Ye/KIyZotJs1WHKYuuUtXPH9CfgWDWPxgR5+svoQM6uyKMt0MrpLo3NnHy3pIvhTXH/F8X3WvwykEnE2/uVFlGSSOTfdhmQyM/zMOfjyC2nZvYP969fgTEtn/LkL8Xd1kllUjJxIYLbZKaodQXpeAbFgAIf3eMvkq04mORVL6i6OZUc9Bv+bYwp/K1RF4c//eSe9zYcpHj6SKZddzZsP/dSgXjCbUWUZhzeNBbd9h9JRY43GJmtXUjC0hrTcvM88fqi3h6duv4HiEaMZu+ACKsZNPGZ9+1Ob0RsSNGcfYup3DC+e4k+Qag4Z+d92E6YsO3JnlFR7BDQda2Ua1uLPJLb9XNBiMh33f4hzvBFkjH7YdeINBbAN9eFdUHpkpqrLKsLfiUr6nxW6opHYP4BgMyHaJCSv9YSBRTAUQWx7D9ZSL8Flh0nUDyB5rSi9R/mfRIcJ95lFSGlWolu6SR4KgKZjH5mJd34ZPU/swJztIOvGo5lrsZ29DLy4/7gvPPeeCZh8X34z+I8RTSoMRFOIokB3KMGIAu9xWXyfhiLLHNi0jpIRo+lva0FTFHIrh7LxLy+w/b2lKCO/A0oLHXYrmzvdLIpYOWNhOePmlzLv4TXkmUzcMayQ/CHpLP6frQyfUcCoC8to7o8ysvD0KoJPhvBAHyufeYJDmzcBMHzWXM6+5dtf6hhfBk6XOvuUjVF1Xf+Hd7f5eykFXdWOZAp8jK6Gg7x433eZ/fVbGTn7bKIBP237dlMxbhJ9rc14c3Kxu9zE9w8QWdtG2sJKzNkO1EiKxP4BtLiCc2IeonWwalPR0BIKkssQDmtfeJZdK94lEQkzau4CooEAXYfqKRk5liFNNVhFO2Kahdw7xiFYJXoerUNuj5zyOuzDM7APz8Ra5kXyHt9zQdd0Uq1h5M4IzvG5CCfhnIl+1IX/tYNk3z4ac4GLxN5+dEUDBASTgOg0I3dGUQYSRDd3g66TeX0tos1Ez+M78M4vxTXl9Ipu/jcg1R5Bbo8g+axYCtwINonEvgHie/pR+uMofXGjqGsQglUi45oabBXHC6jYzl4GXtgPkgCqjm2YD13TsVWmYRuajhZVCC1vJtlopJRKXgv20dk4x2RjzjUU8ccBZFtNBlpMBh1SrWEsxW48s4sN7h5RQA0msZZ8OROHvwdCfb08/71vEw8bQV9dENg8/W6G7ZOpyvOw4I7RnPXD5dykOCGuIkoCVoeJRT88A5vz9OqOPgvLf/84u1e/z9hzLiQ9L59hU2Zgtn51SvZ0cbpKoRLI0XV9/aeWTwc6dF1v+NLP9Aviq1YKqbYw/r8eQu6I4LtiGI5Rx9YZxEJB7C73CX17WlIlvLaN8KoW0EDyWLCPyCS6pRs9aVT5SmlWTNlGqXyqNYSe0DAXuPBdVoU514mqyLzz+K/Yv34NnqwcMotL8O9uYV7+tYjVDrT6ONZSD46xOfj/cgDvuWVYy7xoURm5O4Ypw4a1Ig00nciHnYSWt4CqI1hEnJPyEJ1mtFAK5xl5xHf1EdnUgRYeZGesSke0SZgy7XjOKj6iILSkSs/jdaDq5Nw17jNjCUowSd/vd6H4k5jSrCh9cUSHiYzrahFMolGQ8xlQQ0mQRKSv6EM+5djhFIJFJLKxk1Rr2LiG/gSmTDuWEg+2Cu8R7h25K0p4TRux7T3HHEPyWFBDKUSHCVOOE8ljwTE2G0EU0JMqwfeaUfrjuM8swnNW0ZEJiC5rdD281VC0NhPmfBdpF1Ycd891XUf1J1H8CaylnuMmMFpCoesXWwyywWwHIGDJc+KZW4L4GdTU/+yIhYJsfnMxWSVlvP/Uo2SPm8Hy1lrGREQKrqtk/fP1DDFZGDO7iG3vtjD7umqGjD8+jfbLwrN3fRN3ZtY/fXr46SqFJcB/6rq+81PLxwM/0HX981FffoX4UpSCKoMgQrQPfdk9CPVvo+eMQq29kd4VOZCMIK2XLcwAACAASURBVGp+FKkE56RCBJsJe23GccJM13R0RUO0SEbe8e92ovTEsY/MxDW1gIEX96OGU1gr0vDOL0VPKISWt6DJGmgq5sB6TPJeItbr0GUd98wCJJcFKc0K+WZsTheJhgB9aw7AgSR5359E4lAA/8v1AJgybOR8ZzyCdHIhrSUVlP4EoeUtJPb3gwa6aGQPoIFtmA/H6CzUsExwaSOCVUJPqpgybJhynCQO+BHtElpUJvPaWmwnIAE74S2OpOh/fh+pphCuaQVE1rUDIJhFsr81BnP28dXeWkIx3CUHA6gDCQSLiGdu6VHBJnDE4vLOL8WUZkPXdOTuGCgaks9GqimIbagPwSSiJRTUiIw58+SMlomDfpKNQUNZlXhQ+uME/npo8AGD5LWiRlOYfHaUgTgoOoLNhHNcNnJ3jOShAIJZxDk5H+fEXNSBBKm2MHJHBGuZF+cZ+Sd8PmpUJvBWA/G6XuyjsvBdMZRkQ4DAmw0ovXEybxiOreqz/ciapiGeJPioJVUEk3jK9+N/O1b/6Wm2LX2DnEvvI7A8zHanyuioyLgFpUy+sAJV0T434+rpIB4O8fiNi5h25TVMuujyr2ycLwOnqxROSnonCMIuXddHnGjd3xOnrRSUFKx7CKrPh8U3gqYQldOI901CNo9DTaRhxOBlsvOeBDFKf8d1aGIWuiaCDs4z8vDMLaH/T3vRojJ6SkUNy7hnFRHf3YfSnyDz2hpsQ07yMTeuhtdvgar50LUT2rcap3b5cgbWWEg1h45sah+ZibXUS+BNwzgz5znJ+fZYwHBVJA8FsJZ7sRSdugPaJ6GrOqvfX8mWjR9xtmUckXSVHTSR7ktnwYIFOOImJJ+N5KEAkXXtyL0xbFU+lIE41tGZxEskvF4vdrud7u5utmzZQlFRESNHnjjUpKsacmcUc4GLyPoO9KRKZEM7ostC2gXG7FcNJUEUQNMJrWhB6U9gq/ZhLfUQ39VHqiV87EFNwmAgW8BS6ELuiR3jlgGw1WRgyXcSXteOnlCxFLmxDfPhnJCD6LKg9MRQQynUYBL/4oMgYvjZBz8La2UalgIX5gIXjpFHLUVd0Ui1hQmtaCF5KIDks+Ecn4NrUt4Ry+GLIrymleCyJgS7CT2uIGXY8Jxbhlpowe12n9Iq27NnD6+//jrjxo3jrLPOwmo9eUvW/6tIRCP84c5bcPmyCFkuhR4jQXLsvDjDZ04i4u9nw6svMNDeStUZ05h59Q2fccRjIScStOzZSVHNcCx2YyITDfhZ9thDVJ0xDYfHyxu/+AlX/OBnFNb8w/lCT4nTVQqHdF0/IXnHqdb9PXHaSuHwB/DcBaBrYLKjmnz0Bb9HQi+izxqjdFwVFq0NU1qMFWGV3Vs3cHvaWpz+PWi4CSlfI6pegGAR0WUN65B0BJOILqskDwYQPRZ8l1YZs7tUDCQLSINm+p7XYfdiOLQSbB6I9IArByZ9A5b/gBXWBexzT2POlFlUllYQ295DaFULKDqWUg/uGYWYMu0nnF1/Grqu09bWxuHDh0mlUkydOhW73Zgpb926lbfeeou8vDw6OzuRJImKigqampoQRZFLLrmEpqYm8vPzqa092gc2mUzy5JNPMjAwgCiKZGVl0d1tsJwKgsCll156zPanQuKAn/4X9hs55Z+C5LXgu2Io1nLDz66rGnJPHMljQemOgQjmHKeRabO6jVRnBHOmHWtlOoJJQO6Ng64TXtkKGMrBWuIhVteD3BVFMEsIZhEtelSJWMq8ZN1Qi67oJFtCaKEUjtHZCOZTzy6Npu1fzgw8VtdDsjGIKcNGZ1aMV1//C7IsM3z4cC644AJMJtNx1kB/fz9PPvkkVquVcDhMTU0Nl1122f8v04T3frCKZY/+kjk3fY8Nbyhogp9E99NH1ts9Xqx2B6qqcPNjf/hcx/R3tvPRG4s5sOkDUvE4FeMnceHd/4UgCKz641Nse/sNAMw2O5oic/sfXsFk+duIJL9qnK5SeBFYqev6U59a/nVgnq7rV3zGoM8A5wE9H1scgiD8ELgJ+LgM+D91XX97cN29wNcBFfh3Xdff/awL+1vcR9HWnTS/eh964XnY6yswRSVaRqVYXr8eSZKoqalhYGCA9vZ2nE4n6DrV9l6U/ibOZSWxnFuI9p+Pp6QBV2UAhp2HfmglyV2HsJx7PWJOJaz+Gax+AGxeuPp1CDTBX74OnnzIHAIXPQkmK7JgYev2nQx/92LabdWs9F5GT08P6enpZGRkcMW5lxCr68U5Ifdz+9UbGhp47733jghsgPz8fERRJBgMEg6Hqaio4Morr6SpqYmMjAx8Ph/9/f28+OKL9PUZdAcmk4mZM2fS2dlJeXk5Bw4c4ODBgyxYsAC/309LSwvV1dWMGDGCV199lba2NsaOHcu5556LJH12lpGWUkke8CNYJSSPBV3VQdUxF7i+FEEb39OHlG47xt2n9McJvt8MOtiGpiO5LchdUZzjc/9pfOwDAwP87ne/w+v1UlZWxqZNRjaL1WqlqqqKoUOHYrfbcbatIfbBb3Gpfrw1Z7Ej/RzeXldHeXk5Q4YMYfLkyf/gK/n7QtNUfn/7jaTnFzDr2nt44b++RcmIKopqhmOyWqmaNI3t777Fhlf+zLf++CoW21F34sEPN7Bt2ZskoxEmXnQ5QydP5+BHG3jnsYcBqJo8DZvTydalb+DJysFstRLs7mLolOkU1Y5kzfPPkFNe+U8fT4DTVwo5wOsYJIFbBxePByzARbqunyQP8cj+M4AIRuvOTyqFiK7rv/jUtjXAixztz7wcqDpVf2Y4faUQ6Qyw7ZlVEFUp0bJQUGkcEmHODefT3t7Ozp07qaurA2DhwoV4vV6eeuopbDYbZ511Fsm3/5PpbEY/8/sIq+//9JVD7nA4/xF4ei6UzYS+AyDHIT4ARZPg6tfA4iAajdLT08Obb76J3+/n6/Z3KXCqyDd9wJIlS2hra8Pv9/Pd737XUEyfE7t27WLx4sWkp6czffp0qqurOXz4MK+++irp6ekUFRWRlZXF5MmTTyi4Y7EYq1atoqSkhLfffptYLIbVaiWZNMzxOXPmMG3atOP2S6VSrF69mg0bNnDGGWcwf/78z/9Q/oUj0DSNZ555BrnnIDdUBbHIIbo8IznknIC5eQ0lTa+Q1CV0oIw2gniwFo7E1r0N3exgQ+EtbO4xEwgEWLRoEVVVVZ855v8lbHrtZda//CcW3H4Xyx79Jefd8R8MnXy0R8SBTet46+GfcfUDvyKn3HB4HNq8iTcf+ilpuflIJhN9LU0MmTiFhq0fkVNewfl33os7IxNd03jvd48S8fcTCwQY6Gjjmgd/Q3puPkoqhY5+hOjvq8bfYqH+rRXNs4CPHWR7dF1f+QUGLgWWfA6lcC+ArusPDP7/LvBDXdc3nur4p6sU2uoakV9qweSyEPGpBCth4pypx5jliUQCRVFwuYwZZnNzM+np6Xg8Hn736ENcHnySNLmLlC2TznH3UOLWoWQKhDrgxUEjyuqFb21F7qnH/PxCqDob9cLfopnsNDY28vLLL6NpGm63m4ULF1Le8grCmp/DHbsgrYi2tjZ+//vfc+mllzJ8+Gf7KOvq6li6dCmyLFNcXMzVV1+N5RNmbDgcxul0njQYeSJ0dHTQ399PbW0tvb29eL1ebLZTp9gtW7aMDz/8kJqaGhYsWIDb/fljHacFJQWrfgLDL4W8f3j5zBeHvwl2vwa+csgbSd26d+ndtoRZpp1IqoyqeTAJ3ahiNqLmRxVziCtOJKL062OJyF/D68nAntlHWvy/EUKtqNPv5uUdEbrUNG6//fZj3oP/64gG/Dx1+w1IJhOpeJxvPPEcrvSjSRF9rc388e7bWHD7XeSUVRLo7uCthx4gu7SCS+/7CSaLhXUvPsfmNxeTnpfPop88hM11fJacruvIycQx1sbfA3J3lOC7zZhzHXjnlZ7WMf7WiuZVwKrTGvnEuF0QhGuALcBduq77gQJg0ye2aRtcdhwEQbgZuBmguLj4tE6gcHQ5yeqCUwbjPi34SkqOlm2UDKnlhQ/P4SbvSl4PDmff+k5mzpxJtZDNmrp9nH3Bs6RFGqBoIut3HGDlylXccNUaCspreH3xYg4cOIAgCGRnZzNt2jTKy8txOBxgmwdrH4RHxsD5vyJvxJXYLGYONzYyvCiNyI43sVktmMqnQ9bQY86vp6eHJUuWkJubS01NDWPHjj1OEJyOcM7Pzyc/36gpyMk5QSqfvxlaNhmCzZ4OZTOYN28eNpuN9evXo2kaV1555Rce94RQFWheD+48yKgAcdDK2fZHWP9rqHvBsMKcWdCxHeJ+SIah4izIOsFsefXPoXEVTLwJ2rYYWWgjrzi5YtFU6NkH/sOQXWMI8Y8pbHvroWUjqCnUnStQIynkkuvQQn5i7Tm4h4dwFMmQWQWFE4x4VstGlMP7ETc8gKgcZdQcPfg7laqk3/p9rCNGojeuxhn9E5opi6DvQcwVhQhuM9m5TjICSeL7B4jtV0naf0527kNIq+9nEbCfCnbXTWbsxH+sG2nNQJj7Gzsoslm4tzyPSsex31dPUqYhnsQliazoDzHEaaPcbsVjkvCZTdgH02w3B6Ms6w3ygT/MgKywZuIwXKZjrV1nWjqTL/ka6156jvS8/GMUAkB6Xj6CKLL5zcX0tTQBkFlUwkX3/vCIgJ9x1fUUVg8nq6TshAoBjBjaV60QdFVDi8gkDhiZcUp/nFRLGMEqYS39ampKPleTndM++PGWQg7Qh5Hb8WMgT9f1GwRBeAyjs9vzg9s9Dbyt6/riUx3/H1XR3NbWxtNPP40oipjNZqqqqti582jmbnZ2NjU1NXR2dlJfb6SMDhkyhNmzZ/PEE0+QkZGBLMtce+21ZGR8ilOmvwGW3AlN68BbiBZoQcaMlaPcKLogEio4E8WRjTTre6gWD3967jlUOcnNt952VPiHu2Gg0RB2asoQpC0bITYArmzj99ZnDSGbO+LoT1oJnMyaUJKwfykcfM84x2Dr8dvkjwFB4rBYwopWEwtv/SGZOadZrNa1G9o2GxZY/TLo3mUsNzuh9iKYcRc8fTa4cyHQAonA8ccQzZA3CtQUeuFEhCm3G8L8N+NBUwAdTHZDUAsiTLsTiidB+ZnG/nE/rP2FoXTiA0eP686HtCJ0fxNC5GjsRtXTEJARhRMTIOqOTJDjCLKxPq57ecNyBXbRjJCoxyRkMr70Kszp+XjnlnzubKZUa5jep3ehpzTSZjtxCksR1j7IeucCptz94tHAc7Ad1j0Mc/8/sHwxYrsTYfmeLl5t6aVF0pFdZvrRGO9xMjvDjc9sYklvgFe6/JTYLAzICh6TxLpJ1UcEfURRWbD1AAdjJ6ZTE4FSuxWzKFAfTWAWBMrsVg7EErwxppJJaccLbVVRWHz/fRRUD2fq5Vcdt/6ZO76Bv7MdT1YOky66jMoJk3F4vjxKjy8KXdOJbulCi8iITjN6SkN0mQkubTySUSd6LJjSrNiqM3BOyDlS6Ho6+Js7r/0NA5fyCaVwsnV/b/fRiaArCvHt27HV1iI6Pjuzp66ujr/+9a/Mnj2badOmUVdXx/79+6mqquKtt94CICsri7y8PNLS0li7di0+n49oNModd9xxJAvohEhG4OWrQFPpMhfRfHAvKWcB9uHnsL+hmaF971BFIy5idJPJSqZwlvAheUIfQuEE8JWB1QPbngP5xILpCHJGgCYbcQ99sPWfPR0ufcZwy9jToXA8NKyCbc9C41pIBsGRCaVToXS64TbLqIRoL+x4CRpWgq6ht36IoGuEBQ/NZVdSs+h+RNPnfJFTUdj0OKz66VFh7auA6XcBumGdbP+TsU40wfXvgLfAUBxyHD1/AtFGgebeNjICL5MuDKBoYOnahkkUENy5xvnetBIt1EmbWEhBVhrS4q9D8zrjHCrnGAqhc4dhJdReZKQQZ1QYy5rWoUf6SA3YiQ4MJeoeRcppw1paRO7UDKTmdQhpBSh7NxBcr5PSK7AK+7BadpBQTfhNw1htlulOieSXVBAKhRhWMoRpM6bj9LnRdZ1t3R281+fnkpIyqtyfLcDVcAr/4oMk6gfwXTkUefXXsPh3cXDBKwwZOYloJIL40pX4+rfQNPSHFF/0rWN4kz4vdF3no2CUlZ1+HunsI02GyqiGVdHxlXpZl0owIBshQZMAtxXncGdJDltDUS6pa+DWoizmZ3qpdNj49v4WVvaH+PGQAmyiyBmHouzf0Iq/2IVwZiEdyRT10QRhRWNOhodFeT4GFJUJG/fyP1WFXFPwxZlC//rgT2jYsokZV13PhAsu+cL7f17ousESoMUUbEPSjiks1FWNyIZOops7QdVR+hPH7W/KceCanI85z4ml+NRpyV8E/zRKQRCEPF3XOwf/vhOYpOv6lYIg1AIvcDTQvAIY8lUFmgGSBw/Sdf9Pcc+ZQ/rXrqTju/cQevttBJsN57SppC1ciKW8nNCSpcQ++gjnjBnENm9Gbm/HecYZ5PznvYRjsRPmjzc0NODxeMjKMvLaE4kEf/7zn0kmk0ydOpVRo0Z97vPUdZ14PG64lwb/j0QiRKNRTI0r8C3/NqImo1nciKOugK5dEGiFSJch1CbeDAjGzLi33pgxZw6BULuRLlsyxVgnx6Fnr7H/h08af38Ms9NQLs5sqDobahdC+VkntyY+RrSPpjV/xlH3NNmpZpLWTKS0AqRZ30MYds7R7QItIA268iQzHHgH3vkeJIIM5M1kpXQmzrwhLDj3fKIDYXbs30V5eTk58YMENrzJ+u5Makadgy/mQHSYsQ5JI7CqhZUHN1Bv6jAuQTJhtdsQIl1ckHGYIdZ+9JqL0Ubfwso1q1i/eSNVWWVcMPlsrDkC4o6nEOt+j2otRc8/AyV/AfGuXOQeo1JcKbaidMfQdwUhqRGf6uKl7UtQVeOVTU9P5/rrr8fjMUz8HU+vYXPXbvoJIWgCMdUQAE6nkysWLcKamU2mxURjLEldKIq/r4k17U2ssBptLn1qlBeLRUaVjQaTDZQExPpR615ia9tBArLCHLeAWDAObchCup9uQx1IIAmHybF+m90MpVksoUqrZygGId0GfRy27O8z+voZJJtCqKEUjjHZiFYJuTuKrhotIFVd53etveRZzXR1hGkMxDjgFNgUNfiXZncrPDG7GqfTQvcj2xFtEr6bR9KkynStaSN9aw/FM0pwzyxEEAWu33WYZX3BI49fBH5gdnNpSwr78EwGXqpHtEloMYW0CytQg0k880qPCarquk7lB7u4MtfH/VWFn/t7+hgbF7/I5jcWc+OjT39lFkKiIUBw2WHkNoN+RvJYcM0oRLCIqAMJYjt6Uf1JLCUeBIuIY3Q29toMUtEkHV0d5Ek+LGVe3l3xHugaC86eh/DJSZWuG9/uaeAfohQGU1rPBDKBbuAHg/+PxnAfNQHf+ISS+D5wA6AAd+i6vuyzxjjtJjtbttDy9RvRVRUUBXNBAXJ7O74bbkBPpQi/9x5KzyBVgShiKS4m1dSE5PViGz2K6Jq1+K69hpx77yXZeBjR6UD1+/G/9BKCyUzmrbdgysggvnMn/hdeRO7oIOvOO3CMGYMWi4GuI36BbKJTItJrFL9l14DnE2R7mnrU5/5FERuA9++DkmkQ6zdcUGUzYOg58Hln+p+Arml88PT3yWx/j2z68QkhxKqzwVMAjgxY87PjdyqZSmj8v/PQ4o04nS6i0SiTM0eyvXcfCUHGKloYbi+jLnIQVdAQdIHpWjVVch4aGqvMezgs9TBl7BmUNbp407+esBCnoqKCxsZG5uWdQbIjQpPaRZPUS6bmpk8Mk6V5mKBUkq8dX3TYYu9nm6kJp2KhRetBF6DIkcOlF13Cn9//C/F4nLlz55JIJFi+fDkOh4OSkhKcTicbN27E7XZTUVGBqqrkFxaxxWTjA93KR5E4cU1HxGjK/jGcaoy7xCam2xSuC+XSa07jm60vMSp8AElXCJuc/Kr4Gg46jXhXeaITUUvh0FIkJRtx0U5OxMudsVWc1WhkycXJJCQNJ2BVuaHmG7RZ88hOipRGNXISGkm7xFUTSuh99zD2sMLcy2p4SIvx6+aj7jGnomNTdW5sSDG9V2Ho3DLcU40QYHx3H/3P7zvmvpnznMidUdIuqsQ1KY+ArLApEEVHZ1MwygKvi6LH9qAnBi2LPAe7yvvwbUqRoxp1KmkLK7APzzRcabqOllA5b99hHJLI4jFfvGRKSaWIh0PH9COQu6Mk9vvRZaPI0VqRdgz/l5ZUiO/qQ7CasJZ5jnB8JQ74cY4/6s7RdR2lJ0b3r7Yhea24ZxUhuS2E17QdLUoVwVLkwT2rCNvQdGNiGWyD+mXU79rK+laVzHQv4xLrcMdbcBEDBLrFXMThF7FP13Gl5TN+9re+8LXDP9BS+KpxukpBSyToefAXZNx0I32PPYbc3oF34YV4L7gAMFxJ4fffR+kfwD13LuacbBIHDmDOyUHyeun66U/xP/cnMm69hYFn/2hobEAQRbRUCvesWVjKyuh/6ilEjwfRYkEJBLDk55Nqb0cwm3FNn06qtRXHmNHEtmwl1dqKpagI5/RpoKiogQCp9jasZWXk/uhH/1SFSHJPDASO6c37aXxMrielWTF5rcRiMTZv3kxvWyPDDz5CiUvBFutA0BTiZfPQiqYQjcdxWk0403OIDFnI6rUfsG3bNm4Yewkvb15CWIjjsbqYkT+OlYc3ESNJSUYB515yAcuWvs3h9mYmjh5Pa0srnQPdzJs3jylja1FCIg2//ohYto5PEHmpfxNxwYjR2M02RhQOZdbUM9k/0MjqtWuIxCIsHHs2Q0fXYMp2ILeF6Qn189zSl1BcHjbmlrJQCDLM7WP1hx8hmM34TRZuufB8hg0bBsDhw4dZuXIlgUCAcDhMbnkF+vQ5rA7GOBxPktQ0ulMKRTYLZ2d6KO3eSk/DOspirYxJtpI75SastQuxOw2h2Bfq467dB3g3eew9LzELfLeyCB14pWsArxoj2t+ETYljD7WwMX0ynRYXv/W/y6ytvUTU8+mzSNw8XSesaxR195CRVU6Hy0aXqhqcXeaj71pxTKPFIbIoN535K3txyRrjLhqG3BlFEAWsQ9MxfYJcUdd1Env6UQYSaAkFU6Ydx5hseh6rQ48r5Nw1/pgZvxJIEN3URXh1K94FZchdUXZmdLB63RoqvEUsSD8DPaWSPBw0qEZ8NvSUQc/+49F21udb2T3jbyNXSLaEiG3vMdh+taPyUHSYEB1m9JQKooAcT7FfaaVEzcIp2ZDcFuKBKNtMhxmXMYzimycQXtlCfG8/Jp+NVGuE3P+YgOQwQc9edH8zStoMBJsJyW1FUCKw5uewazHkj2ZzdzsB0U66EqbNmsPY0F7eypxF3F2KKxZGCPZQIPazMmssL+Sdx6RIE2+cv/C0rvlfSuFzQFcVQp278RaMYtVAmHybhaFOI0MirKi4P5HhoCsKLTfeRGzTJqSMDJyTJqJGIuT/9KcE/rKY3l8ZjTS8l15Czve+B4pC76OPoQ70Yy4oRO7oIPrRh1hKSojX7cBSWoJr6jQSe/YQ27oVwW5H8nqRXE6SBw9R+NijuGfP/lKu829Fqi1M7+8MVnXPnBLUQBJzoYtUa/gINYTcFUUNJFEDSRBBdFpA17GWe4l3hFhq2UbnQDdF1jBDLT2sDJehYczIzGYzFRUV7N+/H4AqqYAZ0WH0Vihsp5GLLr2Y9PR0IpEIqqri9RqmfyqV4vXXX6e+vh6nReRrQ2XyEwcMV1R6GbHsbyLv3oXX9Cyqq4rIkLlo+WPxZOUjJQKGtRXpRrb6WLovQt2AjezsHLxeL9OnT2fp0qUkk928PHwWhyVjzMmJRnRHMTtkiEsmKlPdzJVbSGZV02LLRUMgz2pmpM3Erzv8dCRlqp02hjltCJrC2V4z59viiBt/A9ufN+IVQ8+BytlGkkEySWTlSpSeHlyzZ2MpLCQgKzQnUkc8B8OcNqwnc+O9cRvRHYu5cORrtDvsPLgjgWduCf/t76dFkFm89VZ2JSdgKp3CokWLAOh6v4mX6rvIEEX6Z+axdl8PYzWJWwuyiL/VSMZ1tce1jNy0aROyLDN9+vQTnQUAsV29DPx5P95zy7AUuVFDKQSLRP9ze0ADa7mXrJtH0tXVxRNPPIEkSZjNZu655x60QIrgu02Ysx0km4IIFglrqZffHu7ioSKJ7RVl5BWfngsovK6d4JJGkAQco7Pxzi9FsEokG4PEd/QaDMkWiYSc4K3WD+iM9VJRWMb52dNQg0k2yHvobnmfMzQbBZoDQVdAVFE1qBtRyyhlJZktayE1SNEy/+cw4jLo3c/AO/fxrp5Nb+44OhMp/pB76k6LH0PSdeYqIb6Z7WXi6NGfvcMJ8C+l8GnIccOPbXaAJ59+WeM7a5byrrmUcj1Co+DCLgqcl53G5mCUpniKR6qLuTz36Meg+P10/ehH+K66Csf4o/dWT6Xo+N692MePwzf4oZ0KWiJBVJQQRRGnSUJXVYTBgjJdlmm86CK0aIy0iy8msWcPqbZWrJVDyLnnu5jzPzujR0uqaOEUUobtpNaGrutoYRmlL45gkzDnOo8rikm1R/C/dhC5M4LktSKYJZSe2BGuIsEsGn/rYM53IjrN2KszUHpjqBEZPamQbAoZisMk4J9gZseh3Qwkgwx3lGE2W3BYbKzr2E5/xE+tXoxVkajNrKTwwtojdBcnOHlIhoyqcUCWZaR37kHc+ozhnqq5ELlhDXVJ2OOspCdnLEHMLGh6laJEJ4ccJZg1hRGRg6SbJYgHAJ2Yq4R6y0jC4QjdigvZq/GT6ptRRBNP+d/kI0cty3QnCbObcUonI7vWs8R3Fts8lZhUhdJgJ5LHRas1gyAS2fEQD779KyaEd5N+8XyEnS8aGWEAggRTvw2zvg+SCV3TiH7wAd0//x9SjY3GJnY72XfeSfrVV32ujlu6LKM0H0D889nsTOuuWAAAIABJREFUyVzAOcO+iTL4TM0CPK9vZuaa79KTO4vHu0ZxzTXXUF5ebjCq/nILzol5eOeWEKvrYeAlI4POXOAi+/bRx7xHkUiEhx9+GFVVT1kop2s6vU/tJHU4dMxyc64Tz7wSLMVuJJeFxYsXU19fz+zZs1m2bBk333zzkZToT2NFaz9XHWrltw0qc2vyQADnhOMp33VZRe6JG26s9gjRrd2YsuyYMu30/2EP9toM0i+vQrSaaGpqYsOGDVRWVpKTk0N+fj6CIPDcc8/R3t5OVVUV+/bt48oxHrI7VxDpaqSYjiNjaQgsyZzJg6U3cNBZglONM0rzkzK7cCb7mdv6FrIgYVeTPF68iBbb0SZa1b1t3FBVhm53UJ2bzaZAhDPT3TjXreXQqjX4QxGEslKGd7Xj6O7CMWEC2d+58zPfhRPhX0rhU9DbtrF68T2c6d9M3JnDRTU/Y7+tgCuDH7JTyuQsoZ8PMydRJ1uZku6mKyVzKJak1mmnKWH8/sOIsiMpdSfDnkiclzsHkHWdu0pzcUoi6/xhgopKjsXMhkCElkSKt3sDiILAN4uy+U5pzjEfXbyujo7v3UuqqQlzSTHWikqiGzagJxJYhwyh4OGHsFZWoqsqaiiE6HCTPBQgtHwb0Q/eRG7eC4KAuXwGki8H9Dgk2pF8diSXj/DyJaj+bgSbF9GVB6KEgErG7XejdPeiKzYkbz6Jg32g+nFNrcY1vQS0FL2P/JbI6new1YzCu/B8LBWlSG4P5uysk96TREOAvqd2HbPsY24hXdNJqTJhIU7+kGLc0wqwVqYdX7WpKkY20r430d7/KYlDjdinzEUongieQvjrrTDmarTzHua5Q6081NhJz2CVqaDrWEWRxAnee68kYhWMoO6I4C5GdW9kfGgPK32T+GXJdZRE/fxy40rSlyxBl2UcI8rJn6GQau+jv95NdF83siQhiQKiooAOiiixu6KKss5W0pUYWkLDWx4l75ozEcqnG1liBWPRPSVEP/wQLRKh/6nfk9i7F3N+Pjn/fR/W0lK6HniA6Jq12MeOJe8nP8ZSVobS2YmUno5gtaL6/aSaWwj85S9I6WmEly9Hbm5BtJkpmdlO03kP0VIxHUvoEKXrf05p7xaDbiXUwSrbAg47RnF1tYJlz6vo5z8OZVOP3PdkY5DQyhY8s4uxlh07I1+zZg3Rlx6kqqkBAiqmtDQKHnkK85DBZAolRaxxA+GWeqRGkDKGYSkZimCWiG7vRpL2YinOoW3DRgI7dtATjZJdXk7xqFE8e/AAM887j6lTp57wXQorKmes30O2X+bfmlJ4ZJ1pgoXMG4djSjOsfLknRv/ze1F6jAnPx3ELRAFTlh09qZL73fHsGQjQ1tzMR+8tY8DmRFMU0mNhHHY7JpOJcDjMzIUXs9yejrpxDbc23U8+3cQlL7vcszgslpJ98XU80BpkX0LFFw0ytX0PbXlVdGkCoqaheTx0SkddbS45wYJDOxnltuMPhjhn1pnU1taiJRIkGxqQOzoYePoZ4nV1mIuLsZaXkzxwANHlQkpPxzltKpk33XTSb+1U+JdS+BTWdnZw+f4eJkkRkskYO6Qs/mg9wLzJl8HG38DaX0IyiA4Izmw6R1/P2bZzSbNYGeWx82qXn9uKs7mvIh9N14+4IRviSXaHY5yblcaKgRC37W1GABQdSuwW/LJKv3yU/E0SINNs4kyfh4iqsrQ3yDeLsrmmIINimwXxE8pBCUfYIOvURxNUxcPUrHwP/5+eRzCbyf3hD+n+2YPITQ2I7jww29EGGkE0Ibpz0eIBSH2iAY84mPeuyZgysjH7MlHjUbRUHMHqROntMWi1U1EQJaSsMtSexsH0T9EQSN3daJEIjjG1JOoPoX2cYy4ImIuKUPv6SL96Ebaa4ZiLCrF/giQvtKIFwSxi8tlIHPTjPqsYk9dqpO81h9CiMrbqjCNCSZdldFlGsNtpaNxM+eJFxFuTvGA/i5eHncPl7y7hivR1eHONGoLHi6/ioYpvkC2JNMoqtQ31fK1hL7WHD+HeWYdqtrDiqutI9vRQuXcXSbOFg8VldPuykE0m+tN9HCwbQr/jaDLA9O0f8h/PPYnHZsVzzjlIaWn0PfkkDGYbiV4vmTfdaMSgCgpQenuJfrAauvdhKSnENuUchIwC+n7zG/oe/y3eiy4i7ZKLMRcVkdi9m64f/wSly2COMeXmkvXtb+M99xwEy9HgZejNN+n66QNowSCC3Y4ejyNYrQhmM1rEeL6i04mWSGApLCT9mn+j/4knEdUAZbNaEM2DL6o7zyBgXHk/6MqRmNgRuHLhjp1gOkFxp6ZBuAOsboIDQQ5842u4Dg4gWkHxmZB6ZJwFIoWXZCGkoiihLghHaVmdQTJgRjCbybz9dtzDc4m/8gCd7x6tK4k6HJgVBYssg64TzM5m/bnnMH3WLCZOnHj8uQBv9Pj5xh6j35cE3H0wRcomkT+9iEuLM4k+t9fog3FmEU3dIX6erVOe5uCqNzvxRmU2jdMJpmncL3iQRQmLppIaJK+sNgsMxBOIus7kNBfvJTQiquHonBTYQYXdym0zFvLrTdtYHknR507DJycZ37SPH8ydSd22bUY8KTcXQRDYuGkTqi+T8pxsOkNhIp0d3DR/PpmRMPZRo+h/7FdE164k1TFgcIABpuxMMi+YQNr86QjV5xnZeV8C/qUUPgVN13mxc4D7GzvwmU18qziHK/I+4SdNRqDtI+jeaxR71S9D1XVEmxvB7OTuoffwgnMM91Xk81xDA4exI3C0s+F5mR5WDEQYZpd4Lr2PPUIa17XDGI+DbxXnkGM1055IMTnNdSRWoes6d9e38udOQ7AV2syU2Kw4JZEyu5UP/GH2Ro/mMZ/Tp3LGoU6mvvIjxHgYJAuWqjmgdCK3N6DHI2ijRvLI+VdQV1jCBSadixr3kZ5KYRLNhJeuxiWsIbv22IYwug5xtYzWZSLuSbUgWUm2D+Acmo3FoyEHUiQOHEJMduIrD2LPlNFViPZYUZIiiYCNVMSKYDIRaTJyaQS7ndKXXsA2dNgn7nEYNTBAtK4e0WEnsXs3zmnTsI8wgoaKprOzo5HdG/7CH6RK+mzplDrMbMbNGY07+PoLL3Dnd/6buM2GKkrM3r+TK8+fw0ftDTwVczPWYSHV0Mh5a9/nugvn0/erXyE3t+CaOwfJ4yH24UeYc3PxXXctprw8tEiU2ObNCGYz6sAA0Y0bae4bYFflMKq62hl79hwyb73lmBqW2PbtxOt2YM7LxXXmmYifQf/xMXoffYy+Rx81/hFF0DSsNdVk3X47psxMrEOGIJ6kjkXp7SX41hLkjg4sJSXIba1oySTWikpEpxP3vHmgawg2G5FVq/C/+BKxTZtIP3sCuYumQdYwKJqEGo0T+OOT2PR9CF1bESId2DM+QTueOxLG3wBjrwVRJL5rF6bMDMwr/h0OvU8qItGxMZ14vwXveA+5T7zHa++8j+u1ZynZ1oAlQ8I1KZcebwJ1jYalJ0jeBD+hFi+x9sExBB1HVgrr/Em82JPDnK9/nZqaGkQgtOwdOu6+m97qYawfOpSrb7uNoqIiwOCG6uvro7Gxkbb2dpqHjqI8K4PHWnrYHTnapvS6XB/D3m/nkWorHYMuJZuqkBIlXDoUB2PsTjcUv1eVuSzbS9xsZarPg19W+G1rDzkWM2FFoyGe4JzMNO4ozeG5/bvY21bPNu9wVKMbCVkhP2fqCXI3reG86hoqhw4lsnYtkseN6HAiOuwEEgnaF79GX4aPWFkZtYebMK9bd8zzdeYksObYsLsHkHyZOGztCNLHPO4eo0Zm3HVGXZA9HXI+HyPxp/EvpXASfHztgiAg98aIrGs3muhU+7AMtiVMHgqQ3LEfh7ASta0JQYuSiq7hmvGPs9FaQkbKzzWdbyKYbBTqMepEH8/lX4hbS7J68zUUJIzZX3z+L7BNuvFYv75mzLzprUfb8Try/k2sI4PD3rEsz51ESJfwmwTaRIFa0cTCuhCTuuM8X27n9SILMbPEeY1+7nzjdbZm2OiwpBjZsJ+KkJ/gz/+H70gOGhWJ8alWNluK0AXjwxiZbOdy/3pisQA1+ZVMrp6GFusnsfQV2PQ+volexFjbkRRoHRMCRy0c3eKmv0Fkm3Mcrd4C5qb5cMoRLLHdSMl2lL4+RJudWIeCIztFx6Y0RJNO2pzRJHdvx5rtwJvXg8mUINxmRRBBsqmYbDqSw8w7GVO4u/oO/GbjGeT3dFHY20VjQTFTdmzlnSkzSZktiMD7E4ayZOMWfi040CQJSVU5u6uFOx++H1M0inPqFGJbtyG6XbjPmk1g8WJQFFxzZuOZNw+5u5vkvn3ENm/BPXcumbfegpSZCbKMGgwS37kT+8iRmLJO7hI7HcS2bEGLJ4hv3w6SSMZNNyF+Bj+RrhjPQDAdLTYLvrWE0NKlJOrrDXeSz2e4Ea1WtKhRuGirrSWxdy85996LY8J4kgcP0vPLh1A+waALYKnSsFXlku/ag+DJgVAblJ9JuOgO2m79pjG2qKOJ4pEGTa5rF1AyVAZNJTziGl7+6zukrd9JQUc77lCY7txc8js6yPjxj3n30AdcqLyBPRQi2OIkpI2D2iCF7OIJ++18867/wqTLsOLHsO05ersn0vd+PYokcnj+fKb/x38gmEy8/vrrNDcb1oHJZEIQBEaPHk1WWTmx3AKK13bxQCTIuwVmBEXDlQhT0duBoGuMjwdJiiKvldTit7uY1t/OkBEj+bfCLKpdJ1bEmq4T1zTsiQTRd1/Bru7GtOdpNs55i6V7m5ix8h0y9+9FMZtwxeIIg9YjZjPIx/b3EL1etOBgjYYo4ps3Emehmej2fbjS2nF+/23IH22wBrz9XaNgcvwN0H/IYBFo/chIigCovRgu+3z035/Gv5TCp6ArGtHNXdiqfaj+JKm2MOHVregpDV0zqJs/7mGsBpMcMQMGu1a57O9jUx/nmYKLWZA8RNm8e2HHi+BvIpE3hjuieVwwsIFzKmuhYjb6pscQDi6H4RdDqNOgSrB5DfoGd94RqghZK0bXJSzS4SPnqul2gpHRKNpwXPaNiJYw+rAL6N9v4sm8cn5XdTxPTxEJWrGRk+zj8QM/Z6o1RVPGcF7X80lJNl5yj6fTdNQ3bBUFUppOmkni/PUrmbP7IyZVRgiu3omzMg0h1s3uSBl7x8wnPR7graxy1o8YR3yw92yWxUSt045VErCKImp7O4F9+znHYaa9yENPXx/lH2zBGk3xxoy56IKAL+inItrOeLGBzriPyoFupHCUd4ZM4oXpF1DV3sgV77xFeV8P4269mcTrz6I27yTeb6HDm8PLc8+jzGrmlqGlmIuLaXz3PTq7e8g8eAB7a4tRf1JSgtzWhmPcOAp++QtMWVkoAwMEXnmVvt/+Fn2Q9VXKyMA+fDiRdesQLBYkrxd1YADHGZMQLBaybrsNW3X1F37Pviwofj+9jzxC6O1lCBhZbWr/AGo4TGTFCszFxdhHjMBcbLjtpHQfajiEKd1HqqWF0DvvGLU2g0FrAGtNNbn/dR/JhkMIZjPxrdsIvPoqAM68BLnjgkhmjUTATPvmfEx2HW9+H52pbLrtNRQVFlJ8079he/vfINBsuCRV434eHPIN4iUXYPrOXQihEFk3XkXmVRewuw/+uvgVssUgUc1MwppFhtrNzcofUMxuTGYr+EoNHqpBJNU8OlbKJPotyCYTe2trGMjKZmJpCYVnnYVzyBBee+01Ojo6SCaTjB49mjE1I+n4azeXjLdhUlVua9nFvy+6kt7eXvLy8vD7/fz6iSeJWWxcPnPasfTi0X7o2GYkKWRXk9i6lsj7S4nvPURsZz1aUkOyaJjTzSS6VaT0dOzjx9Pc14ddgIIRI3GfORMtnsAxcQIgoMsp1P5+lNZGHBPGk3rthyT37MSc3Ic9LWEQZyoJOPt+g4frVNB1aN9KZO1KpMKh2GdceFrv1L+UwqdwomCnKctOxrW1SB4L8R29JA740VUd+4hM7NU+/h977x0l2Vmde/9OrFM5dXXO3TM90z15RpMklAEJBQQiR9skg/mwDTeBzTX38wXb4A/7YjDYgC7GFroSVgAUUUIaSSNN0kxPDt09nburq7pyOHXCe/+oUc+MIhJg+NbSs1b/0+ec98R697ufvfezq8cX0Zr9iJrLwj8P448dImz8kHLkEzDwZvwbmuqqibMlNOswRDqxikGKT05TPTJJU9/NyMmduE4QhwZkd5FqdQDZTWE5fRSKmyjt/jHxj74DPaJhP/KPyIaOx6fglXcD4CgxlHhzvdp4yyfhss/zaElid75En+qw6ei/8eDkGI+G13EBWT4wuIGGgSvONvh57v4dl/QZDZpn82UeXswTVBQOFsv8PJVDIPG2Rx9gYs06GgeWIzk292bOymUYjsPbgh4u62knpil8fypFsmZRdV2qjsBFYLqCGdNCBkKqQtaur566ZUE8Oc+CojIViuI+T7pbdl3edPoE//UX9xFdvoz4Rz+C1tKCW61S3rsX79p1iGqF3E9+SuZHP8KanuYFUBTa/vZrhK6+GrdWe9EVuJ1K4eQLaE2NS4WEtfFxUt/+Dk6xgJpI1CvYZ2YxBgbo+tHNL1srUpuaInPLLSjBIAiBsCyMwUECl122lE32auBWq5inRjBPnST51a/h5POEr7kGa36e8tNPoyYSCATha6+j8XOfPc97eP59jlx1NcaaNTR9/r9RGx1D8ugELr74BVlMD95+O6k77mDdvn1nuVBA8Th0Xm3zZOIy9jkDfOqP/gi/ocO/XI+Y2Ueq8CasikL8iuWoCztRph6HcCeVSjO12UXC8XpLUzfax46G9zHuNNLZ2cnhw4d52/bltO77an0FfA5MuwmPWvdkXBeyyWaKp1xKU+ffp6ezgcCbb8DYsoVdc3PsPHQIB+jt6GbC7mSseoyPb93Ili1bAKgMD6N3dnLXww9z5MgRPvvZz9Zl6cd3wjPfofLkA2RHdBxTxrZ9VGbrD0IP2ngbXQJXvpnsI/tw5SDB699L9H3vfUmqD6B6aB/yM/8Lbf4RpFq+nvFoV6FtI7RfgLvp41hZB723B7dcxclmqB49inn0GMGr3ozs8+GkUthn/pxCoZ7i/o1/IHDF5XQ8R0O+SrxuFF4EVrJM9dgiSsSDpzeMJUsc3zGBN+qne00D+svowZSHF1j80bGlSk1kaPjwEOZ4nsIjkygRD8KuqxuiSsi6gqQr9QrI6SKiVgTNhz27v56W6C5irAgSvvbN+DZuPO9cbtmisuswcv4kxpVXIRm+ugTErn+uf2DNa6BrGxy4FQqz9RzoTb8PndteUwn8Qs3iK8cmuCVdoFFTqIr6BP+ZziauToRJ1WxWBgwS+ssHvBwh2JEp0Gl46PHqjFRMpqsW2yMBtDMB5OT0DMeOn6Jt/ToOWy4SsCbopcv7y+nRC8ehNjqKNTeHbBh4li+nNjaGEALf+vWvfLwQ2DUXy3TIpysU0lUSHUEiTWfjBplbb2PuL/6Chk99Cs+yftyqiTCrOPn6Kl3YNmpjI8Unnqiv4s5QPM/FCrTnePBCgeCb3kTz//jSixoXIQS106dxUikqwwdJ3nwr48oAmehyYkaZDZ++hsTmIYQQiGr1vInIzmSojZ3Gu2poKTB9LhZ/+K/Mf+UrRD/0QcLXXIPe3U3t9Gkkrxe3apL6+7+nevw4zrJl7LVqbP7gh2gsFnDLZdTsAQLJ73Fk+Sf491HfUtqpfc9fou7+W2b2JMiNepANo16tLwlab+ggtLELaeFoPUbluYD8z+4htiyN4tWQLvo0YuEkSuvKpWp2u/VSFg4F0HPPkB9RqaYgvNym8X1vRJ17ErLjCAH5cS/CBSNmUU56yI97qWT0pVJwORoh/8EP8vNMBtd1cS2Lj3Z0YD/2OFCn7bSODpq/9U3y6TS1r38VTc6gOyeplXzkT6vIhgc14keWSgRWdRL9yKdQGxqhadXLV/TP7K8rAcwfRnReiHvkQRS5snTdloji6wjiDLwTz6XvIX/PvaS//33cQgHPihXUxscRlcpLj38O/BdeSPs3/+FlDdLL4XWj8DwIV2DVHOyai+Gvc5I/+dKDTCfrhkB3ywy15hi6YR2lmTSOEaLl4tUossT8//wypaefJvaJv6W0M4XeFcApWDiLddfZuyqOazrIPg1jeZTyrntYvPku/Bf9J1BMKk//K95VMbzrLkD2qvg2bkDv73/1FcuzB+DZm+u9naf31mWcb/xufQXyK0IIwTO5EkNnOFZLCGLa70ZHslcDs2yhaDIj+xY4tTeJY7tsvq6H4qLJxOE0E4fTlHK1FxzXviLK2ss76F7TgLBtTr/v/VTPUcEFqHoieHq68RpgJ+cRl97AYc8WNK9GU1eQxu4Q/vFnKd15K0QSSGaZ0iMP0/KVrxB5+9sAcGs1qgcPUt69h8JDD1E9dAgAgcTwhZ8nrbURCkK+WGcwE51BmnrDDLYXsH/xAIWHH6Lc2ER+MY1vIYXm8eDbegnN738H5mKezJ0/RZo6Ref3vsf8l79C4eGH68vul4CQJCQhmL/2Gtb+2Z9RKBRoaWrE/adLMRcnObL8MwwefwIrmcKnjVKc8ZCd78bJ51FiMYRp4izWEyUkXQNJXqLo5FAI38pOmpsfRPMKXFtCVgVi+dWYvX/A6U/8Z0BCCYXwDAzgXb+OxX/5IZKmEfvgewlFRlC71+BOHcQuC6yaF9Wex1i8D7dUomL1Ucu5ZE/pmNN52LCBn7W1snl0jKbDh/EsW4awLIJXXkH29jvq1+SRcBZTKJrAKikokQih668j8elPo4ReQZb6of8BR+6CbZ+ut9v1RuDOT4LmhY7NuMcfoTjuIi/birrxRsoplfIzuyjv2oWTySwNE7jyCnzr15O76y48K1fi37oNNZHAM7CcwkMPARJaawtaYyNKvAHZ58WamcHT1/eS3uEvg9eNwvMwN5rl9q/uA0CWBLomqNZkVhSeoKk3wqG5OGml5bxjNLeKQQXLdPBW02z37yV42QdIfef/RZTKBC5/N6FrrsE89Rjhq95E8u//nsqBA9gzsyiRCG7ZRtRKhK67lta/+WskWaawWCUQ9fzqEhaVLOiB82ii9HSR40/PYVZsgjEDRZPpWBlDkkDzKARiBvKZFbvrCiSJ3ykpjdeKWsXmxK45jj8zx9zo2UKpYNzAqtpUS/WVvO5VaA5X0fc+jGyW8Ioinlqe0ubrGKt1UDYVOofimGWLeKufwnye9GwFRZNxhUQpd0bOWJHwBnWqRQvdq2D4NTJz5aXz+iMeSjkTVZMJVabRF8YhECZInnxFxVuaJ5E6gNW/GrHxAtRwK8mCweTJEpe8fzlOKM3Jw2Mkj9uIggZlf53akXJIgQnSnhqaFUGrhdFqYRTXg2JXcWUNIStEsyfY1jJGz9/9DU42S+6ee0l9+9u4+Tze9eux5ubwbdhA7CN/wMQHP0TedXCQOLV+HUomQ7Knh67COKv27MYuKbj2+ZST1tFB4LJLMY8ew8lmaPijP6pnPO3aVfecVBVjxYo6/TE3h9Ycw9cfpXhkjlCXRPaUQBTq1KQSiyIHg1jjE/Wx29tBVbFOn37J9x29rJ+mpsd57st1HchY15B68ARuOAwzM8Q+8B4ab1iN1DgIM/swb/9LJh+QsPKCzhtD+P/sPlwMhOtSGxsDITCGhl5A+znz4xS/9SeoF74b/57PIlwbyTlH7jvcifiD+8k9vIvZL36R0DVvoe2rXz1vDOG6mKdOUd69G62lheDll5+33ZqepnLoMNbsDKWnnqL0xJN4VgzQ8NGPojY34129GmFZZP/9dtSGOKG3vIXXgteNwvOQeuxp9v7Pf0NybUxPFEvzEagucPE//jFGXx9CCEbu30/yeBJ/cxh3foaxnadxVC9aezvTWT8Dx2+mbfYptK5OgpdfweIPfgCKUqcPzjRe8V9xBYWG5djbrqHpxAP416/hSLaVQqpKuNHLrp+NccG1PWy+tmfp2oQQjO5fwLUF4UYv8dYAyis0jn8+Tu1N8uD3D9f1iQwFs2S/YJ9Qwsvma7qZPJZhZF8SVVfoXhVn3Rs7ibX6fykD4Tgu1YKFEdBQ1Fd3jb8u1Co288Pj6DvuouRvYcdoK8WCS6zFR5tngcJjjxPKn6bZyFDOVpmPrCJYnCJUmkS2axhr1tD2t18DWWHqk5/EmpvDLpaYWPUuJmNb8FWTFDxNaE6VBmcKFA3JHyBszqJ6dap6hIopodgm/eYB1PQU44EYM/E+bL2ZquUjmDBobO8jM1mkMJdHskzK+NFli5r7QhrOlWvYoTRGZ475ZBKvYRBLpxHZLMVAM0Lpw7AboXo2BVbzSQhfiaw5S4gA8YAHX3sr47uLxNJHuHyrgzV+msLDDyPJMi3f+Tah7dvPe8+5e+7h+H//C4KlF8qty61N+Lsa0HoHyfzkXrRokKa/+Ev8W7ZwaHiEwztmUIXBlqtW0LEyRm18HDudxrN8OUoggHBd0t/7Pgtf/zpaRwfW3BycqT0RlQpTPYN84+KP8LYLB5h+/Fm8KYtVR+6ma6K+eNN7elCbGpF0D5KiUDl4ECeVAknCSAgSn/gIAWkPnKjraOYbP8H0N36GEo3Q9y4HJXf87M00rcZJTlJLl1De+x1S9w7jpNOUnnxyybNBllEiYfSWGHp3F+FlAu/0LciKu+TlTI9spnp8DOFKBAcjyAOXU9g/hnnwIHp/P41/8sfYqRSFRx9FmDWi738f3qEhalNTGCtWnOeN2IuLzH7xv1N8+OGz77SjA8/FFzOyZw/TPh+FYBDdsVEtm0LAT0s0ytu//Px2wL8cXjcKz4NTLJG/+26MoUG01lacMylint7eVzxWCMEdX9tLPlniuq0ZTlj9hFojtKX3kLztTlLbP0DiyH14tl3MvlQnMyfrxTk9axtwLJeJI4tLzbq8QY1KwaJ9RRRFk/EFdWzL5eTqHrNBAAAgAElEQVTus6mCsiIRa/UTbwsgSRBp8tG+IkaiM7i00n8OmbkSe+47zYld87T0hbn6D1dj+DUc28Us2YwfTqPqMrWKw777xyksVtENhb6NjbiOYGRvEttyCcYNbvjT9YQaXshXCiHYdfcYp/YkyS9UcF0BEjS0B4i3BmjuCzN4YQsS4jUFWF8JbrXK4g9+wLOHJKZqTZgYOLKOvzRL2duAZpUZOnITtifPU9u20uEKtrW14ZmeRo3F8G/fRu30aaz5JMbQIKGrr0aSZUzTZGJignw+jzwySujxx3HHxkivWkVTJI6Wy+JmUrjFErXTp1EbGnCyWdxiETkQQAQCTLY0Mxlv4LTXQHFdZNvBMKsU/X7CpsnbVBVn+CDVkycZX7GafWtW4joBDMtHa34W0drBolZBkxzylTI122Tzrl10TE7iKCpH3/p7GFddzXVvWInrCo49NYusSLQuixBq8OI4Djt27ODYsWPMn0k3NcotBPPL6D59D42l3QSvu5bKhg3c88RuPLUGNl28kkvffCGLi4ssLCzgu+l/k7nvPhxFwVs9I+990UVUhoexC2UszY+mCfr//f9gRVo5+swkz/xkDISMkGxkobH+zZ209keItfrJ5E0e+dkIsgNivkpj7jDLJ3+Gb/Vqyrt3M5tYwa6WrbhmBMNVMZUaXrse+LeUEjdc6aIjKP5N3dORfD6IRKgMDKAODuK59da6cQDiH/swCecmJKcMZoGs5z1olSP4PCNYF3wBLeKjcLpK+q4deGIKgYEE09/++ZniPRc9LIhviWJ401h5C284h+o5S7cVZz3kJ7y0XJClsqgx/lACyTAQ1XP6IMgyciCAmz/rpT4nR2PNnJXDUFtbaP7CF3CKRQr3P0Dl2WdxKxXiH/sYgcsvQ21s5ODkJD//+c+pVquoikLMMDDLZWpAOBymb+0G3njZxa/pd/S6Ufg1Y+Zklju/vo9wg5fcQj0w1L4iSna+TDFj4g1qmGUbzaOw5fpezLLNMz8dRTcUtt7QR1NPiPFDadZe3sGO206QmSvjOoLcQoVaxWbjVV0s29xEZrbMwkSehYkCizP11du5HLiqybStiNK9Ks7sSI6Tu+dRNJlVl7Sz+doeNM9LT8pmxSY5nqelN4yq1/cr52uM7l/gyR+fpHttAx6viuZR8AZ1Tu6ZR7jg8anMnMzSsTJKoitEMOqhlKsxO5Ill6xQzJhEcifxl+eRlq2iYfMQ4YQBpom3MUL32gaUV5AHOReFxSrCFWizp1j84b9SOnCQVF7j2XV/QtSZI6xViERlTtl9tPX4CQTGmJsf50SxCIpCjbrI3o033kh/f11iWQjByMgIY2Nj5HI58vk8U1NTuOfw7bIs4/f7KRQKRCIRNm/ejKIoGIZBX18fgUAA0zSZnJxkbGyM4eFhCoUCuuFl+dBa3nrVlWiailsus+/mW7h7agLVcVAkCY+mkXddYuk06/c9SzBfIGlE6CicLSQUQDYQYeGt78d//BC3JNbzqNGOK+DC/jir2yLcuKGNZyezPHI0ycRiGUmCNe0RNndHiboZ/LLgiV88jC/Tj73gx4xOUPRMYVhx/Jll4MoIycEJZKiQpeqbpakpweUnTjLV1ES5q5O+hx9BevJJrNUXsbfjvZTLdYURX0inlK1/i5aeI70+wfzMSZandLyVOvUqNImK66I7Ald2yKoSjTWVtuURht7Qxt7RRVKPziAhYSslPFEJp6TQ0K9h6gaFvTXy4aNU/Rne++GPUVmcYffu3czOzi7VGL3t2mtpeuDnZG6+GVyXYGeV9u2L9Xa1C3XvIDm9hvSOFMgyEg4NQwVsUyZzIoDicQhe0EtT3wiyeeb5N62GchrRsQXRtJba6CjV6UVqLZdxomrSlTmJR/GDN4GdXsTq6sRrmkhCUBsdxc5kiH3wg8g+H1pbG24iQa1cRjl2jNr4OHIwRPJrX8Oan6em61iJJrR1axkeWImpKrQ0xrFtm/379xNtbGXFus2sHuij4kqcShY5NJ3jll0TXNTfwN+/55UTKl4MrxuFl4CwLFCUpdQ8p1jCmprE09v7olkc5+LAw5M88eOT9KxtoKEjyKk982gehbVXdrD3vnESHUG239iPL1QfZ/p4hnhbACPw0lk7juWSXSgTb33xnrBQn7inji+SmS1jlixOH0pTSFdRdZnVl7az7srOpXO+GNxKBeG4KIGX7uew885T7Hugzus+59W09IXRvSrpmSIDW5rZcn3vedSDcBySX/87Dtx/iun+t2BLGmo5S8WII+SzsY6Is8Cm7QG63vUmNI+CosqYhQqKY1I4OoIWj+HrbKHy7LOU5DB3/cs0lqugWUVkYWPqESRJYIQ01rwjQCabpq+vj+bmZh544AEOHDiALMsYhsGHPvQhNE3j1ltvJZVKsWXLFrLZLKlUioWFBWRZJhwO4/P56O7upre3l3g8TiaT4eTJkywsLNDf38/OnTvJZs9v89nc0sp8Molw6nRhzZvgsWyEaTcESAQNlZUtITyqzM6RNBtDRTbGLIQQJNMZDpRC5KQIPZJJ1fDxhg29XEmKmu0SiIXp7m3B15g4z9tyXcFNT45x0xNjLBRNrDNSCJ0xH8saA9Qcl/2TWQrVs3ThhYEFllkTJErroegHSSAEJDoDbHtbP4/feZDFmRqKraKHZRalYyzb3MSRI4exbRvDMLgsPMjwiTA1q4oTTxL0xiikq1RYxNJzDGsxDtZauLE9ij1/mJB5pmiu0IfqauRi+3G0MhU1yMn0INstD94zl1jRC5RDR0m0Rfj4xz+GcuZ+Xcfl7z77MEoNCuGj5DwlApKJ6o9wqBRgruZhjZ4kJlf4/Y98lFZNYfbP/5zS44/TujVDqLuKFG6nMFrBzlawyipuTRAbtNG9ZYQLqSMBGlYV6/GIcAdc9gXo2FKvGj4Dy7KYmZlhenqavXv3kk6n8fl8RCIRstksmqaRy+VYtWoVb33rWzlx4gTDw8NcffXVRCIRhoeHue+++6hUKvQtW86qwZVUq1Vm02X27tqNJp/1MqRaANMO45MsNEdnCj/7RZguW0ETEhOaQ0kSzCuCiwcSfPLSPrb2Pq+d7y+J31aTnZuAa4HkOZ3XYsCtQDf1JjvvEkJkzmz7PPARwAE+I4R44JXO8ZplLmo1Fr//fVLf+Sf0zk58F1xAZXiY6uHDIAR6dzf+7duQ/X68GzdiLFuG1tZ23hhCCGZP5Uh0BdH0Xz9N8stCCEF2vow3oL+swRGuS+nJp5j+3Odwy2WMwUH09naE4yBsC//mzYRvfAdKwE+1ZHHfdw6yYlsLLX1halWbxq4XZmOUn32WxX/5YT2VMp/Dnpkl8p530/zFLyIpCqWnniJ12+1YkheloYGpPWMcbXgjllJP+fSICg32NNNaP7qZxdKDKI5J2+JeXLNGKr4aS/PTl99FNdGDWDHEZHqCSs6i6pvH0nNIknReZfob3vAGLrnkEiRJQpZlTNvh1qdHSR14lPzCDLFYjHA4zKpVq1i7di3qORkcVcthPl8lHvAQ8Jz9v+u6mKbJYtFk14kpdu4dppKeJuMajDhxUq4fXffwgW1dbOuNk8ybHJjKcmyuQK5isb0vzlMjaU4l6/pEy5sCvG9zJ+/c1IHf89oySFJFk1uemaC/McBVq5qXDLTjCo7N5RlLlZjJVvjuo8fYpozS43dZ1bcZUYySzFe40y5RdgQbOiPc/MwEfZbMJVWNuCNT07Iorgfd48NkEbUcRfKZpAPDEA1RKxeoSF6OFhtIuGGu0/xsRkWyXASCw0aKXIfC6NxRrJrDdTe8BY/Hw2233YbUtJxjdNCQLxFNpVEDp7nyjZexdu3aer3AOcgmy9z/z4dITxUo+Sc4FijziNnF8qYgf3hJHw8PnyYw9gu8Xh+XbdtINpvFv3Mn7XffSe/VC8jBCFJlEUkVS/2mRGIF0oV/jPjpnyC5JqJjK9Km36faeQmP7z5IKpWir6+PZcuW4fV6uemmm1hYWAAh0Wj0omc6qHnSiIY0re2NlHJVdCfC+NEkfi2CVQaBi+srEgwmKCaLCE0lJ7noZLF90wi5bhEtFJp71pAwQkwvVDGOeM7vsvQcJOoKxGcWAbpXxfCrdK1q4OL3vLgq7Svht2UULgaKwA/PMQpfBRaFEH8tSdJ/A6JCiP8qSdIgcAtn23E+BCz/TbXjLO3axcSHPkzgssvqee4LCxgrV+Lftg21MUHmX/8NO5nEKZeXytQDl11G4JKLsRcXwRVE3vVOtMZGhBAvGZR1azVyP/kJlT17iH34wxiDg9ROn8Y8dQrPihVobW1Lk1r21lspPfMM+hsu4a+O2/RvWsX7L+wlZGhIEtROnULv7kbSXnzit1MpFr75TUo7d+Jbv4HIJz7BoV/sxn7iMYyZCTwzk8hmFa2vn9oF27EOH4SFJHlLYJoWbcUFbFVjsaWbSCLKii9/CU9PPQAuhGB6eppjx46RTCaZGx3FSC+y7OAw+UQjvmAU1avTtHEDoYvfQLlcZvny5ZimSbVaZWxsjHQ6TU9PD+1NrRz/p7vJn55jstZCTk3QHUzjaAahBh+pqTzz5TCKIjB0i9DKKmawsrRic5G49PIrCAf8ZGvwo4MFDh49wTsGDG64bDNSoIHHTizw1EiKR44lcVyB5QhkSfBP713DG9d0nn1mjstsrsqphSJ37Jvm54fnMG2XkKFyw/o2smWL+XyV3kSA4aksh2fqPHHUp3HtmlbesbGd3oSfbNmiNeJFeb6a6zkQQpAtW9iuIBH85eowfh146lSKD//vXTQGDQpVi/wZL2JZY4CIT2P36Qw9DX7+4b3ruW33BAt7JhlK6dSUGll0GoWMGZyh4hmn6HRyqxNjQ8DgWlPhjdaZmdan4l+TwNMbRlJlsveM4qSrlEMO2oWN9FwyCMA999zD7t278Xq9VM7k47/lLW95SbE7ALvm8OjNxzjxzDwdg1HWvLWXeNhDMVVFUiS+8dhutLEnkCSWxl3m93PRg/9E1/YFXAdm2z+Pe+VbSXgFR+eqSLLMytQ9aPt/yAPtn2e+qDA1O4HtWEseAIChBJELYVoDyynMO7iOINRgkE+9sJeyrEJNKuHIFnnbT8LRcCULU6lREV5CQkZxQShQatFo6veTyMmMP7u4NEaoweCiDQncXI32d/Rjmi6LsyVirX4Mv8biTIlixmTySBrbdmnpDbPqklffihR+t3o0HwcuFULMSpLUAvxCCDFwxktACPFXZ/Z7APiSEGLny43/q9BH1WPHMFasWFplCgEnkgUGms72XHbLZapHjlDevZv0929aUqJEkuryB//Pp8nc9mPkgJ+Gj38cYdmkvvlNou9/H2pDAwv/6xvUxseRdB0hBP4LNlHevadOWwFyIIAcDIIE9sxsPUB15hxl1cOcL0baGyYkOwzMniQTSXBszcUM2FkaZkbxdLRj9HTjXb2G5N99HTu5gFi/CWv4ALJVQ3UdFj1BxsItTASbGA82s6NtLWXtbNZKR8zLpcsbqQ0foHv4SRqSU3RmpvH6DcSmTdSCAY5Hw5wql5FcQaBSIbyYZqa5Bfdlahd0j4eaeTZdT5ZlXNdFVVUuvfRSBgcHQUhokhcjqFCtVnl0x1PYVo3OthYOHjxY17eRZCzNjyUU8jXBE7VOiuLs9auyRG/Cz8hCieVNQY7N5RECGgI6bxpqJuBRuaA7xtcfPMFIssg7N7XTFvWSzJvcd2iW+Xz9GiM+jevWtLK6Pcw9w7PsHE3THDJoCOgcnyvQHDZ458Z2VrVF2NIbQ3sVcZHfNvaOL/KZW/bT3xjgypWNeFSFt21oQ1Nkdp9epDlk0BGre2+poslf/uMddDa2UMhqTM4W+UPJoAkJGQl0GWouyBC4qA3vqgb01sB5PQyEKzBHsuTuP401XcR/QTOR63txZbjjjjsoFAps3bqVcDi81K/g+XBrDpImLy2aDu+YYcdtJ3Dt8+crT0BjDzkOKDUsf5DPb5I4uOsJ1jc2cuGjX2Y00sO9bVeed4xi+QgGg8T9jeQOh5HONHhSdAlvyIPhk6lUq5SSDiARaPRSietkDLhnMUe/rtMjqeg2pB2bHek8OY+E5pbRZJm3bRsgYSiE7BTrhpazrDWOpsgszpbYc+9pRvYlcR2BJENgg4W/RSGSaaTHlNDPJKbk41WON06RKqeRAgpOk0o+VOHy7svpd7sJNkSRfwWG4nfJKGSFEJFztmeEEFFJkr4JPC2E+Lcz//8+cJ8Q4t9fZMyPAx8H6Ozs3PicMNarge24zBdMWsP1xjO24/KffnyAu/dPsr7Nz1+9ewv9jefz+m6thpPJogT82Ok0s3/+Rcq7dqEkGpANL9ZkXb9IicWWCnj0ri6a/uwLGKtXk/rHb1Pa+RTGipVE3/NuzJFRzBMn6hx/tYp3/Xqi730PX/jbO6iMjPLhYI7SzByemUmU7CJ39lzI5vQpelPjVFWdg/FeGqo5OsspNKtG2Rvgv1/4cQ4HWumycnxm+mHyQ8uQezqRZIVSuYzjjVFTvLS0trGss4ViPouzcBrbtjh06BDFYhGvz0exZOIv5KgE6+685LoMHjqMna6hWTajq7ay9TO/j2YXKSsB7EqBZNFi+HSSyXSRuVyVDilFAR+dzQ1cv2U521f1c+DoSZ7Y+TSlZP1ZCSQijS3kFmbrfXdFvUmJKgnKQmPYbmFMJOhKhAgaGgPNQbb3xRlPl3FdQWvEy6buKPGAhy/fc5T5fJWh1hA3bminK+47b7JZKJh87YFj3L5vGscVGJrM5p44V69qpiVssK0vjufc7nrneIBCCHL3jFHaPYd3ME74LT0owVfXq1q4AmG7SxOdlaogSaBEDCTlN1MfIiwXa66E1l7/lp8/+QpHgAx2qoI1W8It29Sm6h30yvuTS3SFG9Bo+vAgtbE8dqaK1uTDWBFHjby8xyMcQf6hcQqPTqK1+Ald2YWxIvai91ubLWGezIAkYc0UKQ8v4F3dQOxdA0sS6oXFKsefmUOSINERpFwyOf70HFNH6hNpToV9Ppu3b6xw4uizXNXUzKPpFG3t3fS1DpFOp1HLUcb25BDCRUgujkdwMmKQzVXxOBI+ASFJRnFgXHdJJ1SOF+vJDoOSwgcjIaqWw2BZ0OxKJGXBWF+QnC7hjxhsvqCNnuYgC+UF7h27l33z+/BqXqKeKOlqmg2RdYxnZzg9Osfp4nFW2+1cnN/IykoPilC4peFeFnw53j97NU3W+fECS7IpyCViTpicUuTwsine9Xv/P+un8CqMwreAnc8zCvcKIW5/ufFfq6dwaDrHtf/wBHG/zqq2MJOLJQKZU6zXZpAQTJDgnW+/gYsHmpjKlPnZs5MMtseI+3VURaYv4SesSeR+8hP8F12E2tBQ18mZmyd8zVsoPvUUss+Hb8OGX6rq0HVdnn76aZ7ZtZt0Jodm+LjwgnXEYjEikQhtHV3sOJliU2eI/U/tIFuTyMf6GZ2a5YGjOVpPH8FpjLOuQ0arpImH/MzNziDLMtFoFNd10XV9KU0RIBAIUDqTjy5JEl1dXbS3t1MulymbFs+cmCbc0EIwEiWdd/CGYtz4huXEAzqJwMsX3M3nq9yxb5r5fJXb905RMM+tkxBc1lCmI6wzNTNLzM0w7kRB87J+1QpMdEZm0wz2tBE0NK5a1cyypuCrfscvBdtxsZy6Ufhli/WEK5j9yjNIuoJbqCFpMkrUQAloqA1e1IQPNeFFNlQKj0/hVmwkVcbJmfV94l4qh1M4uRqSoaCEPdjz9QI3yVAw+iJ4lkfx9IQRtkttqoCo2AhHYM2XEaaDpyeM2uRDkiW0Vv95TeKtuTJuyarTN88VJJo2qR8coTaWQ+sIEn1b/9Ikbudq5O4dxRzNIWkK4pzAtOxX6zISA1ECm5tBkdE7gi9sdPQqUDm2SOb2E7gFC2MgSvyDg0t9l4ULomKTvXsEUTsjtW6o6O0BzFNZfBubCF3egRo/Pz36u8Pf5Vv7v4UkSXxp4K/pLQ+x/xdT5OfK2JJAaZ9h0RlDKzUQqw5im2fIegnMdi+efBE3DzeHqgz1NnCJ30eT30MOl7mcScSrItUc2sdLtFcFXpd6/2ZVAiSUJgO334M6amNNFpauS4l4ONw/xcjIMe6IPUQ0HGdooZvmUpxOq4WhQi8nvOP4VB9thYZ65lVcZrIhxcnuOQaWr2Jb6zYy1QwRKYSsKtiZKtZMidJUhoXZGWYiaYKzOkqjwaZ3v/E1vZPfJaPwO0Efjc0scPvd95OxFHLZHCE3h+5UGRwcRGgGRw/soyQ0KkIjJFXRJZfjdoIZN0QNhaoe4c5PX0J3g59f7HiCRDzO0OBKkoUqvzi+wFtWt+A4goeOzvPIsXmmFst88bohNnXHODaVplKp0BTxctt9j6HrBunpMZzCAguEWXAMrujxMTd5eonauvTSS+nt7eWuu+5i8YwX4vf7KZVKtLa2YruQnJtBVVW6u7upVqssW7aMDRs2EAyenVCr1SqFQoETJ06QSqUIh8Ns3LjxvH1+3chVLH5xPMlYqkRDwMO6jghDrSEkSaJqOTw7kUWRJdZ1RNB/SwVwr4TaZIHkt/YTe/cAWquf/IPjCMvFydewUxWEdTY6KOkyatyLsF2UqIFbqGEly+jtwboq72IVa6GCdyiO7FEwx/OYJ7N1Nd4XgRL1IGkydvJ8TRw5pKOEdJyMiVt6jo7UkNT6JF6bLODkTQIXtlHen8Qt22cqoQFJQjYUfGsTCEegRj14lkWRDbV+vl+hsr1iV5gsTLJzZicL5QXytTwLlQU0ofLG9FbW7+9E9mu4VXvJEwGw4hKz17gcKR7jppM/YFPzJt45dQVdx6IgCdzVfqqLRbKlDOP6DE/Ke+ls62W3NsxMeZYfXPUDOgOdPPnMHA/ccox2W6Hsm8JbaWVBl9ih1pCBNkWmVZEpuYKKcHl/S5T+lHXetZz3nP0q3qEGZL+G1ujDWBlDNlQ+9dCn2DG9g0ZvI1d7Lieg+AlUvKw+1EbcDCMQoMlIjgAXJK+K4tewe3XU8RqyUZfBMQaiaG2B1/TMXy6e+Ur4XTIKXwPS5wSaY0KI/yJJ0hDwI84Gmh8Glv2mAs0zMzPceuut5PN5gsEg7e3tLFu2jHXr6v1nDwwf4ok9z5IrlNH9YbpiXg4PP7t0fBWN46GNfGB7L8P3/wgLlZm2S3n6dIZ2FtEbOpgr2PTWRhhU53FR2OV0o3oDDJlH8EsWNjLqmVSDktCZMboJti3nU5f3s6Y9Qj6fp1ar8dhjj3HwYF3RNRgMcsMNNzA6OsqpU6cYHBxkeHgYn8/HwMAAGzZswHdOE5jX8avhOdXb8p55ijtnaP3iVmTf+YF+4Yq6cVgo42RNPMujqGHPC8Z5uR+vEAI7VaE2XkDSZbQWP0rIAwjkM9lJdqqCW7Fxaw7WTBFrtoRTtFCCOp6uEJJHoXpssc7nn8qiRDxErunF0xvGKdbIPzSB5FHAdnErNuGrXz0Fdi5KVom7R+5mvDCOLut4FA9HFo/w+NTjuKL+XXtVL37NT6OvEdu1Gc2NcmFmLVc6F+INBjjROMVIZYzT2TEm9DmsM1k5W1u2ciR9hHwtT8KO8uHk9VyR28KYZxpLtemutKG79efiRhW+67mVBWURRVeJ9bUyOt9MbG8LK8oxapLLdPcEF7sKy0ttBOzz301FMnk8to9HA7tIRJq4tuVqMmaGidIEjb4m9smHKUlltrZsZSA6wJHFIwgh+Maz3+C63uuwXZvh1DBVu4orXPq8Pby36Z1ctuwKCg+Oo0Q8eNck0Fp+OZWA/yj8trKPbgEuBRqAeeAvgLuA24BOYAJ4pxBi8cz+fwb8AWADfyKEuO+VzvFajYKdrbLwjwfwrI0T2taOGjMQtoudqqA2eOvpX2e0gFzToXIoRaVZwlEF2WyWf7/jLrJVh0knzAp1AYFETg4R1QWimmfeDaF4/TSYswwNDZHOZJmbqUs8Kx4fUkMPyXSGG666gtZ4kLaGCEHvi/9AhRBMTU0xPT3NqlWrCAQC9Z4PrnhBg/LX8dKwF6vUxvM4ZQvvQAzXdKgeTWPNlRCWi1tzcYs19LYAruViTReRdAU7Wad59O4QjX+49rd8F795OK7DLcduoepU2dqylVUNq0hVUjw2+RgRI8JodpTh1DDDC8MsVhcxFANb2NiuTdyIc33f9SyPLWdj40ZaAufrhxVrRW47cRsPjT/EaG6UgBagK9TF5ubNrG1ci1f1oskag/FBHNfBci00WWOuPMfOyafojfWxOrEa1XmOUilSfGqG2sRZ+qaolPlM998wqy2wfPzdXGH2cr3bwaKWZ7/3GEebJ9jvOYZVNgk6PlauXIvP48en+rhn7B6S5XoBW1ugjdnSLI2+Rvyqn5HcyHn30h3q5o7r70D7NbXH/I/G68Vrz4OVLJO7b4zq8UxdH6jZX6cBTKfeSMcVKEEdrTWANV/CyZgoIR0l4sFerLIoF/mZswvTqdEaaqK/pZvdYwfQajLddoJhdRxJktjUtYatvkGsfIWToQV87RGW9y/DHwogn5HmFq7Ami5S2jNHbbqI4tdwShZ6RxDf+ka0Bi+16SLm6TzmyQxyQMdeKGNnqvjWJAhsa0VNeCnvnce1XIIXt/9K/O9/BITlIASIqo2VrODpCSG9TDZPdSSLnaqgtwdxqzbl3XM4ZRsna+Jkq0ieOk/vlu26TLmh1GXLRX0VLwRgv0gCuARqgxdJV5A0GdmnYY5kQZYw+sI4RQvfmgTCdvH0htHbf3M02ythsbpIqpKiyddE2BM+b5vt2mTNLDEjhiydfY5lq4zlWi/Y//k4nD7Mnrk99IZ7+fGJH/Po5KNL2xLeBOlqemn1D9Af6acz2MlHVn+E1Q319qkCcd65/yNRmy2BK3DLFukfHcP1w57ECPfn7+fPpj/GyZ55LvmDtyNkgaZouMJlJDtCza0xFD/bzrJqV5ktzZLwJmkBt1IAACAASURBVAjoAUzHRJM1ZElmvjTPyexJVsRWcHDhIN3hbnrCPS9zVb85CNfl2JOP4QkE6F1/wWsa43Wj8BJwciaFx6awUhXUqAe9I4SVLCEpMna6gr1QQdJk/JtbKO2pt9XUEj7snMnkydM8rB9iu7WcLrfeqlHvDKKEPYwdOoUfD0HhRfaryF4NO3U+J6zGDdQGL7WpAm7JBlXG01mf9GRDxZzIw7npdxLo7UGcsoXsVdGa/VSGF5aCc89Ba/WjBHVCb+pGb6tnnQghcHI17DPGUAl7iFzfhxL14ORrKCH9FV1bp2RRfHK6HlSNG7glC2G56G0BZK+KpMmgvnzw1ilZVA6lyN13GvFc8FmA7NdQE1586xvxrWvEyZvgCpyiReHRScxT51cTS4aK2mCg+DXUhA+3auPkTGSfhqjWKZbnqJE6z66gBHWMZREkTaZydBEloOHpDZ+hac5CnDEevy0vzHIsxvfvIz0/zRFzhJP7nsYslxiN58n4610Ao50dxEoGA3o3aTfHk+Z+cqKIR/EwGB+kPdDOicwJjmeOo0gKf7rxT/nQ4Ide8t287573cTBVpygVSeFzmz7H9X3Xc/fo3RxMHaQr1MXlHZdTdao0eBtoC7S96Di/0n1bGfL5g9hOESEcFhZ+TlPjtTQ2vvlVjVM9kSH9o6OIap15NjWLrs9fhOp77VTZbwqVQp6RPc+wMD5GoruXXHIOj9dHoqsX17FpWzlEcmyEuVMnSI6PsXB6lFxyHo/fT3ExzbIt27n+s194Ted+3Sj8BlAdyZK7bwz/Bc3IPhW3ZOPf3AyOYPHHx1GiBoEtLSjR+qRTmyxgzZTqqZdVG2uqiJWqoLcGMAaiGMuj5/HVbtWmciiNU6ihtwfQ24PI3vMzmZb2KdbQO4I46SrFp2dwcjVAEL6qB7dsUT6wUD83oIT1uoy37SIHdcqFIoGmMJ7+KFrUqGfVhD24ZYvs3aMoIR3/Bc3kH55YypgRCE57pnk6cJCT3nG6q20MVfoYKvfj8/pQ4l60uIESM7AXq7j5Gk6xthQs1btDePoiSBKoTT4Kh+c5mDpEYs5P1A6RV0o4kkNVqnEsOs6hrgmkkMblxoXYOJzwjNMR6WBdYh0hPUTIE8JQjKVJb640x23Hb2Pv/F6OpI/wpu438aXtX0KTz3f1TcckWU6SrqQxHZO4Eacn3IMin5//nTNzfO/g99g9txvTMaFiEZqxiRhRGvwJVCFjBVVs06QmLGTLxfXrqC0R2vyttIc6mC5Oo0gK21q3sTK2kvn8LMMnn2H38KOUZ5Mo+RoVq4JtW3Qmz8aFaqqLpbj4zbPv3tIFWu3sBF/xODw7kMPX2YwV1UlX0yS8CdY1rmMiP8FjU4/xqXWf4pNrP/mC73g8P861d17LR1Z9hO2t2xmIDbyiZ3EubNfmyeknUXBYG2lDVX0YRvt56bymOYtl5fD5elAU47zjHafKyOj/x/T0zbju2WC7JKmARF/f5/D5emmIX740pm0XMM0kHk8jqvpC700IgVuoUXxqBr0jhHfotUlB/DoghGB+9BSZ2Wk8fj+GP4Ciagw/dD+HH38Yx7KQFRXXsZEkGSFevN9FIBansbuXcGMzxUya3g2bGbr48hd0z/tl8bpReB5qTo350jyN/kY8imfpf/la/gUu+O8KnvvxDTUM0eBteNl9rVSF8e89w3eNW5nWk3h1H5PeeYQMBVFACGgkjs82OMRxEm6MkijTVmvkv8z8Pu21JgSCW9se5LQ8RUVUSelZ3tB7CW3BNn48cQcny6eQkGjTW5ipzeHi4pW8dEqtmI7JmwrbCRYNPB6DaCBGi95MoD3OrfyUy1a+kSZ/E7efvJ0npp9gpjhD1akiI+ORPFTE+V5VzIhhuzb5Wr2iWJEUnOflIGiyxorYCpr9zTw5/SSmY7IytpLWQCs/H/85YU+YmBFDl3XWJNawd34vo7kzPYsFxHM6miPRVYjS5m3BafbjNPmpyTY7kk9RtatsbrqAxCTEH0kiua/8uykEHfxFmWcGFzneVcRTk/GaCrG8zpYjUTxnKoIdWVDw2ghJ4LEVZjtcsv0GA54e3nXlx+kJ93Dfozfz4MgDpFOzJLIepmMlKn5o15pYdlRDPVNle6A/x7HuIggXxZGRJBlPLESqkuLC1gvpCfegKzo7Z3cymZ/Eci1Mx6Q90M7VPVfz/pXvJ+596Ul0Mj/JTYdv4vHJxwl5QsyVZiha9cVCp+6wzW+zKeTHr3pQ1TCuU6Zq1tVBJUmjo+P36O/7z9h2kfn5nzE59S+Uy6O0tLyDlua3o2phKlaBn07sQl+8nTZRr0OKRS/E5+slXxgmnz8IuCiKj40b/g/B4NBLXe6vHZnZadJTkwjh4vEFUHUdq1pF93nxBkLMnDzG8Z07SE9N4AuFyacWKGUWXzCOoqoMXXola664ikRXD+npSUINCarFAvmFJI5tM37oWQKNLi3Lu/GGgtSsRYRrk8vto1A8gSewitUDr3sK5+G1GoXD6cO85+73ALAqvgpZkjmYOohA4FXrhSb90X42Nm3k/7L33kGSXfd97+eeG7tv554cd2Z3ZnMAFou0CCQAihFPJC2RIhUgyZL8VDblkt+j9MeTrFBPliWX69n1JFmiLD2KkkiKokyRFIic0y6wCBuwi82zMzu5c7h983l/9GAjAgnBMlzGt2qqprtvn773nHvP95d/eTNPzatRTBQZSY2wsbARW7+6mNxMfYZHZh9htbPKZzZ+BluzeXbhWZadZQbsAQbtQQbsga7kFHlkzSx9yT5mG7McWD6AEzhEccTJ2kmc0KE30UvVq2IIg529O/mrY3/FTGOGqfwUf/XRvyKpv3mU0cHVg/zqk7/KUnuJjdlpXOkxnZ9GExoZo1vDaLY5y6qzys3DN7PUWiKpJ3n43MN4ocfPDP447dDhK8tfYyAxQEKxKNhFXi69TCxjhlPD/Oy2n+WOsTvoSfTQDtq8svIKD517iIXWAu2gzaHSoavOS1M0Qhle9vqmoZsYTY3Q+3iJpu7T2d2Lbid5tfwqURzx4XUfvuDcHE4N05PoIYgDjleOM9ecoxN2yJgZRtOjNPwGnaBDIVFgOjfNTGOG46XX6MQuXGo5WSOBbFsn19SZWEyS7lyipSG72buvv7Z1LGESuR5RGGKN9WHetY2nl58ljALW5SaYnTvOQrCCAoSqZKhkMVRKoEjor1q4RoTlX9RAmj0Cf0cvO7fdzM6NNzPTOsem/CbGM+Nva8qLZUzFrZA386hCJY4iVs+d5Zl/+AZnn3n28oOFwkN3NCgnHFJGikqnQrwW9WaqJl7k0ZfoY0N+A/sW92GqJr+997e5eehmFBTSRpoojvjqy7/Ft888wHHHQVPgmkwW16+TFgHb0jZaag//sHiC2fYquiL4Z8NTfLyniKIo1PQpDtaWOF8/ypQ8waZ0gTBsEMc+qdQWNqz/Inp6F/sW9vHSwhM8OvcIi24bBbh7/Hbu6ulBrX6POPZIpTaSy92AgmDu/F9gGH3ccP23UdV31pby+0VtaZGnvv4VTjz31Nsem+ntZ2D9FJ1GnVSxh9Gt2xma2oTnOHjtFp7TZmh6M8m8TbnyBE77NLEMqFSeIZZQJ0uls0hPvMiy16IZKXhSYTlQmPEFaVXjuKexu2ea//hDf/OOrud9UrgCC60Fvnv6u1TdKq+svIKiKNw0dBM9iR7mmnNUvSqHVg8x15y76rtpPc2PbvxRrh+4nq3Frcy35vnSoS/x6NyjAGhCQ1VUwji8Spq9EgpKN575CgzagzT8BmkjTctv0QpaTOen+fC6D/OHr/whtm4zYA+wd2gvg/YgBatAM2jywtIL7FvYR9WrMmQP8Xu3/R67+nZ93/Oy1F7id/b9Do+ffxyAj6z7CL9/2+9f2KScwGG1s8qQPYSu6rxaepWvH/86c8050nqaLT1buGXoFpzA4RsnvsHto7fTY/XQDJostBbYt7iPIAo4VT9F02+iSIW0mYblFv/bM91IFceMeG5bGUM1MRSN9FJEvmWQwaaNiy9CdKGR8UwMRUcU0yz1+iyUz6HGCq4RU8p5xAmNW2aGyc8EWH1F+j+4B1GwMc80OPPyAYLFNelNUUisH+LGuz5JYMFZY5VXqoc4fuwAesVHjRTWuUViFVZklViBQxvqhJpkfXY9WTPLbHOWLcUt7B3aS9pI05fsozfRy/nWeeZrc7QfO0xByVIcHoWUwVBulPXXXo94l/tNSCk5se9pnHoNRagIVfDo//cnjNx4HX/U1xVYJjOTfChxI4UDy/SvtwimsmQTDoZ3mvPtCn+50uJ4q45QBAoKW/OTdLwlTrab9Osqd5obmGroiE6L1nya/vXTLB8vU52fJz80zNBdN/E9/QUemn2YvmQfmqKx0O5qCrrQQEquyfWgqya/dO0v80Jlnrn6Ke49ez+t0EVFsj7S2Pt8P7W8wz9MVwmEwqBl84FiH0XDxgrm6HjLLIeC65Ihg8W97NzxpatMU28ExzmHrufQ9a6JLAjqCGEzd+Qg7Xody7ZJpDNk+wbwnDaPfflLLJ85hec4CE3luk98mvW7u2vntVuEvo9uWfhuh06jQbrYw+jWHSiKQrN5lGbzVTqdc7juAlHskkxO0GodxzT7qVafxXFmKYUKtUjhMSfPCcclfL3AI1y1O4zYA9T8Ftt7tvPZTZ/lzrE739G98j4pXIEjpSN87t7Pdcfov45f2fMrABwtH+VQ6RBTuSnuGr8LieSx2ceYqc+wIb8BS7P46rGvcrR89LLNPKkluWfrPXx6w6d5YekFnl54mnbQJm/lKXfK7F/czzV91yAUwb7FfST1JBkjgxM4jGXG2DOwh4JVoBN2eHDmQVY6K/zBHX/Arr5dNPwG5+rn2NqzFaEIHpl9hKfnn2a2McuLyy9eRjx5M89tI7cxlZ/iU1OfuqAVXAkpJbGMUYVK3etWGk2oCTSh4QQOzy8/Tyfo4IQOU/kpdvbu7FaFbS0iHY+TRw7wxGsPcqhyBEM36UsN0FA7nAnPo4UK40tJJhdsIlVyrt9hqeiiRgoLPS6FfB/bitsYsAdQFZVm0KRwoE747Cn0z+4h+N5haFxSTlhXsYcG6MkPdG32XgehCOx8AaGqLJ46QatcuuoaFSHQdIONN9/K+WNHqC0tXnh/YP0UW269g7HtO7Fzeczk1ZpfEAccKx/jRPUEf/HqX5DQEvzQuh9iND3K5sJmUkaKvJl/T8WeX4o4DonjDo/++Zc5+uSj3PL5ezj21ON47Qbt+ipRECEjgSIk+ekmAxuLRJ6FPvwqj/tpNM2m6cxxylNoRILPmXvZ3NnDy/f/A3HU1fayff3UV5axCymKU1A+3aFdisiP5PDyGitOk8CC3lEouGfJrGvwtVaG5cikGbh4cXccXZFsjhQ+EPazoWc3556uU1teJgoCDNvE7wl4bstZjq9NtekLFAmuGZMWkrtzPntslcGBu9m08f9GVS86laWMWFz8byyv3EvgV6iWjiEjg8GxO9DUDAcffJDKsR68xhsTtG6ZjO2aQNHb5DadRuqLSBljGEUKhVuZnvq3qOrlwQpx7PHI4d/itw5/m0FdYihQjw36DI1xrcn27CAiKPGSm+BZJ8lypyug5M08H1t3J5OZEfL2GEfLRxlLjzGSHiGpJelJ9NBv978r98f7pHAFam6N/Uv7mW/N819e+S+40cVNKK2naQbduOfXzR1CEZeF5AHkzBwD9gDnGufwI5/1ufVoQuNo+ShJLYkTOqiKStbMcuPgjTw+9zhO6HDH6B387q2/+6bmn9nGLD95309ScStszG/ktpHbmC5Mk9bTzDXnaPpNMkaGydwkk9lup7iqW6UdtAllyKbCJpJakuPV4zww8wAnqydpB22SerIrvTbPc7R8FC/yyFt5lp2LpS+MWCXVUokUST0VYPkCNRbstrdhHCnRP6egR9+Hv0UoTFx3PYvNBdzXzq91tgIUKAyNsPGm2+gdX0cyk2No42a+8sV/hZVO89nf+Pe4rRaLp45jpVIgoWd0HN16cwlQxnF3Y8rn0QyTdq3K6QP7Kc2d47pPfIpsXz9xHDF35DCN0grrr7uBZOb7d6T+j4TrLrCw8A3CsEkmsxPbXk+7fYqV1Qeo1Q6Qy15LvrAXp32acuVJgqBCMjFBPn8jK6sP0unMoPgbOPq3abyWSyJnoCarRK7OB//F3aSTezn08Hc5/sxLxGFXuEjmbYrbTxP7CbLZXWzYcxvzB1d58bvfAwV6pwXbPrKDTHYaXxylunoCxzuIbY91Je6XF1g5WCDyVRQhCdoaMu7eM/nhApMfXcIPzzJXNXhWkdzcGmNj//Uc+u5JOo3uc2elM3z8l75I0Olw+sXnOf7cUyQyGcb23sjysWOUTp7qthS94Vqe4kWeycywMRnxk0UPW9Ww7Sl0uZWpzT/NS0//HscfncGv22imSrsUgwQ9GaKaEW7VJD9uMrxngEa6Sbl0jKTro7d1VFUlNVLHzAREUlDVpznWgY25EbYkdUqr95FObSWV3oKm2kSRw6qzyOOLh7iv6qOpJpqaQhU6k9lJztTPXPa8AdwwcD239E2RMzIMBIdwqo+iKAbX7Poyudwb7tnvCt4nhSsQRR4L5/6cntU2JTXLq34FefI+is5x1qtZSoO38GTPetpGgltHbmVrcSvPLz3PYmuR4fQwpmry50f+nKPlo1zbdy0T2QleWHqBhdYCP7X1p9i/uJ89A3u4Z+s9KCjdJDgZI6W8KrLljeAEDt869S3uP3s/h0uH39QMJRTBTYM3EcQBB5YPEMsYBYW8lafiVlAVlQ25Ddi6jRM6VKrLXHeiQCFOoxo6Qb1FQu3avWMZE682wO/+ljFQIFitI6Pu61hTsLdPoPVlKYyNcd30DfSkhonCkCgM6DTqtGtVhKYzNL3pwsZbW1qkXa8hhGDm0EucP3qE2SMHL1xDprefxuoyH7zn57n2Yz/8A6/lPyXiOMDzVnHd8wihY1kjmGY3HBm/DS99Bdw6LB/pEuF1PwPpQciNQ9ABr7FGkPICUbqWzvzKt3Dd86QzOwj8Ch13niAoUasdII5dQHBpoX1Ny2BZwzjO2bXPu9E6qpoEKQmjJkKYSBkhZditL+T1g7HMyOiP09vzQebmvkyjeYgwbOA3NfyWjowVFvb10yldTcKFjTU2f6Qf3dSpN15BygBNy5FIjDI48ElGRn4KRRHEcUAUtQnDFo5zGs9xCBp9eM0O9//Rf+rmM6gqvuMg1K4/BCCZzfGxL/yf6KZF/+QG1Etqhi2eOs5Df/qHrM6cIdvXz5bb7qBdrfLqEw93fTybRtkfHUExFMZ3LHOLMsLhr1n0bKnSmE2hyDTrtl+P57QZnNpIKl/kyBP3U5o/z8LteV62z7LQvnyzVpFoikAoEgWJF0N0iZ8pJaCgQSuSdGLo0WIkCguBQozCiB7zU0WPAdPANIfQ9QxR5FFX8iyIcWLFpDdeIuM8QxR1KyOraorh4c9RKj2M5y0zNvpzJJMTVKrP0GodJ449NC2FrhdYP/lvSKU2vuN7+X1SuALV1/6Mlxb+HQBaGJN0IjxLwzMuLrrdjpiwbqXvml9HMbOQ/sHVtnatyvN//7fMHHyJD9zz80zs2n3Z51eVPwh9cMqQuZgJ6oYu5xrnaAUt7Bq8+q3v4vkd7Gs3cFYu8ML888QDKW7o30PfawErJ07QGNJYv303t03dhWj6LJ0+ydLpE8weOYjbapIrFgijiEyxB+HXwcqDbpHrG2Bs+05alTJHHnuIoenN9I5PoOo60zfegplMdlsc/vWPQn0OcmMQuN0NMWjD4E7Y9ePd94evAyMJegIpJb6/iq5nEcKkvrKM226xdOo4MwdfIts3wI3/7Mew7DfpOCdltwXcD4ooRC68TKn8KJXgJDKOWOevx1r3YRi57uKYnRrUz4PdC0e+CXEI196DtNIsLn6LTuc8K6vfw3HOcKWVV6ChKgb4DpIYEUuMSMPyYuxGB98UFMs+rqVSyeu0kyqB3pWctTDGN8RbX5uUmL4kNHQi5YqIKz2PaQ6STE5gGEV8bxXPW8IPymhalmx2F3HksbD4DYSwUNUkUeQQxz6m2Uex+AEy6W0kEmPoeg5QKJUe58i+P0O11tq/riQo9m1h9x2/QjbbzegOggadzgyp1BaE+P6bBNWWl3jum18lCkNGt2xndXaG6Rv2EscRPaPjpPKFt/x+u1Ylkckg1gSrKAx55YF7efwrf3rhmNNDbXojhczyRU1cfHoTzUGf6/qvRUYdvn7mEdw4ptReoR3W2WiGDJkaW/v30p+7lgWnxOnSCzTapxBqCjMxjq1n2FiYYk/fTp6c+S4Hymeo+Q4pFdJmkUW3gZAh48kUt/dvZlv/XoKwjuuex+3ME0YthDBot0/R6XQjqoSw6Ov7KP19H0fKgGz2OgyjgOstceL4b7JaegjokkU2ew2qsAijNs3mYZLJSa7b/Xf/89U++u+Nd5yn4LdxHvgC5Yn1OP4CLe8cEQlE88NUzq9gpZq0Wo/QiX3UMCaZ9ejRcrQr2wlLJQYKLpM//BtQXM/hV76I30pjWlmc4AAZfoatN3+amYMv8cAf/2f8joOdK9CslCgMjZAuFLCzWdxWm5lDL5PJpUhbIZ12A0KPrYMLTG/cg7fuY5xbCSitVrun7NY5uf8FdEug6ipuI7hwOalCkcB18Zz2Bcn7SqSNkIFszHWpYxQyLbRIor1eBExoMHpjd6McvQHW7QXrEhNL6MPRv4cjfwenHoFEHnZ9vruRGjYYKVB1OPptqJ4FLtZekxO3cmxTgcX2MwDo0sTUcqSsSbKJadL9t5ENUqAnIFGAVF+XBErHIQrg+Pfg4NcgjuHWX4ZkEWQMxQ0w/yL+3FN4+V5SvTej9G2B9ACcewb3lT/lfPASywVwLRU1jJFCAQmDSy5KehAnY+P6K0Sxix7EaJEk1YqwvAgnlaDWk8ZRnQvTIGIw/Ih0M8S1BJ6hEqkQi27lTEXVieXFdfl+YMQmoyWddLlKPeFjejG2ExFpClEyS2HDPWitMrz0l0RKhGfbRJs+grX3/0LPrX/7HwAWF/+O147/OqY5QE/PHajCYnz8X7xhjD9AENS6WooMyKR3kEi8+8lq7ybOvnyAdLGHky/s49m//WuQkiMTdTYvZKklff7hxgVUBcI1ST8tJGlV0ogUvrhujD3rPkNf38cwzb7Lxv3HFJx7M0gpqTdeAilJpTa+6RoAuO4iYdQiYY1d5rdYWPgmx177VbZt+3/p7/vYOzqP90nhCpTPz/HEX/5XXKfN0NRGVN3g8CMP0Gk2LjYlfhsUN1cRmqT8Wo44eN3O3t0KCyN9VOdLZIdsJm+dZdBtsVz6EA0nQePUAdpuBKpgNLVKOzIoqQkUo2t/9WqXO63MRIhUNUI3prCpxrrrQ2KtQ6sUQ1BksP9znN0/j0WH66ZVBpMBdd9i6Zm/w40U1GIGYzjCHdLR/YhVu0OguKgYrFN2oha3YCyfwlo4RXL+BLofgGrC7V3nO5oFx74Dc/shMwJbPwk3/iJkux2f4jik7ZxC1zIgobb0AItL36LaOcag3IC+dJxzgwqDSy4JX+BpEZ4pqKd1AqM7bze+UMXurEnBRhp0C9qr3fEVBWXidpROlXDlEC1bZW44gWcIPFPgWl2pMdUKSXYifF3BM1Q6ie77aX2E4Z670WKNc7Vv0/Rn15bqdT/H2z/0iU7M6GLAsLYTMXYzjN0Io9d3ybBypmsWGtwFikIcB0gJzeZh6o2XSSbXsbLyAJY5SCa7Exn76HqedHobmnaJg1tK8FugJWDxFYgjGN4N6pokXjkLS4fg5ENw8OtdLWz3z3TJuL0KehJ6pqB3Ewxd253DS+D7ZTQtjRDvvczedxOluXMcfPo+nkh9gwfmK6BH/PvrP8mWoY9xuHQQRIKpdB+Rc4Ig9tgw8YX/7uGs7zakjNj//CdIJifZsf0P39EY75PCFSjPz3HfH/xHdNNi4cQxpJRMXruH3R//JEPTm6kuzuN3OuiWRRyGlM/P4lRXyfR6ZIZ7ePHbT/DaM68Cksl8mencKm29SFuMUE3OcvblftK9Hus+MUPWC2jbKkjINEM6CbVrMrgEljnE9PSvE8cxK6cWmDl6P548SbKvQ9L2sR1J36pL/6qL5XWjzCvr1nGm36dp+vSWQ9oJCHTB2GKM8F0aI+OUkh2iuCvpWtYwQVAll7uBnp47WFm+l2pt31Vzo4kEhD65aod2UsXwY/JNaE3spK21saxhwrCB48wRRc21LMzwsjFMcwDbnqZSeQqQFK3t7PSuR2kuwU3/Ctwa0m/htE+zv/R7jKXuZIP90a7pbPlVQneVmSGNZf8wblxHCAMhTMKwDnTt54aSRBMpdHuEKGrjdRaIYw8hFRACP25zZcPbRGKMgYFPEwY1PHcRQ+8hV7wR0+zHNPrRNJtS+Ul8v0TCGiWbvQYhNDQSKIoA7T2yoa4eh4d/C07cByhd7clvwVoSGUYaipNdovro73W1sP/FEMc+X37+3zCaneJDm//1/+jTedfhecsYRm/3vnwHeJ8U3gJOo7vR/KARKd7qLNqj/xZ1/e2QLMC+P4aFlwgnbuaQ8zIyr9Kb3sbo4E/gTe7h/KHfpOqdxEyto2f4k5hmP1HUIYocisVbMYzLs5S78c2zRCtHMc88h52axujZhVJYD+efhzNPEActZvojzumnMdQ0ZmqCeqNb4tsweikWP0A+dxOG2UsmvRldzxOGTYQwUBQDz19GKBq+X8Z152m3T+J6i0Rhh2rpSZLJdbQ7M3jBCkJYF5ya3y8MowfL6moUMg6IYgffL6HrRZLJCTLpbZQrT9Nun6RQuAWnfZowcvD9FeSbmGEUVAyzjyhqEYZNFMXANPvwvEWkjBDCxDQH6en5IAMDnyQM6jSbRzCMPvr77/6BbODveTiVriZnJLvmtcY8dd8XggAAIABJREFULB2Gkw9AbQ5OPwpjN8Gn/hjy411zHHSd3mefhMEdXf/PPxZBp+uXSQ+8oebViWIeLNc53nbZlU5yVzGDWDvOj2O+vlihHcXcmEsxYGocbnbYm09hv8t5HO/jIt4nhX9q1M93bfLm21fVjOOQhYW/YWXle7jeApY5hGUNEYZNSuVHubylRLfgnKH3kM/fSE/PnRSLt3Xr/gd1hNCQUiJUoxvF0pnl3Lk/vkAUmpYlDOsIYZFMrkNRdNLpreh6jkbjEJ63dCGKxU6uZ2X1gQuREbqeZ2zs54miNrqev+CcTNmbiCIHIXRU1abZOkq99iK6nmN19UGCsIFQ9K60r1oYehHfL+E4Z2i1T3KlNA8KQpgMDnyK/v67AeVCUlIQNshlr+1G2cBaEyK5pq1EF+bnfazh8DfhO1/omqJ6promKOiapNyuMMTYTbDn52Dz3aC9cXtNKSX76m0mEiYD7fNd81bfli4hLbxM5/5f43Rscjy/nVOjH2SlsAWZyOP4HUrNKkdDjYq46Pgt6CrTSYsBU+dAvcV5L7zqN3f48/zvaQ9twx2kVUGvoXGo2eHFRpvNqQQ/PdSD9i5VA5ZS8lS1RUIV7MnaLHsBx9subhwTSsm6hMmWVKI7j0uHoGcaR03QiWKKhtY1IS4fhfJJmHkGIg9+4r91TXvvUbxPCv8ISBnh++U1Ve0fdxPWGwepVp4ljn2EatFqvUa9/iKuO0/K3kjSXo/nLeG6CwhhUSzeytDQjxEEVdrtU/j+KlLGuJ05KtVnCYIKiqJeRhyqmiKRGKXVOgaApuUYH/8FhKLRds5gWUMXNIMocmg2jxKGDWx7A7a9Ye16KzSbh8mmridfuJHVs8ucfLxEwi5g5wq0KiWSmSy7PvIJBtZPXzYvMo4JfA/DenuThe+XaDZfo9M5h2UNkc3uRtNS71glfh9vgPp5eO6PoHyqqxXIqEsIOz8Py4fhxb/oBgekh9h32+/yf0TTnPcCtqUS/NhggfUJi/98bpknqk00BT5ee4Fdped5MbOVQ6lpPGGwahSI19ZMyIgev4YgJhm5FIMao3GTz7df5tqz3+aB8U/xTP/tnCDFgpZlU+0o9yzfx/aoxH57inklRd4r82tTv0RbvTqXJ6UKWlFMXlNJayopVXB3X44PFjIYQkFVFKaTb9w9zoliHik38OIYCaz4ISt+wKvNDk/XusJPXlWovkEXtinVp792kqpigGpyOjGMi8qWYIXblx7hpxf+nnF3CdJD0FyAT30Jdn72B16uSEqWKkucmzvIydwWnmhGNDsNjLCDaSRRrQxOFNOOIm7KpfjVycG3H/QN8J4jBUVRZoAmEAGhlPI6RVEKwN8A64AZ4DNSyupbjfNOScH1ljg/9xWEmiAKm/h+Cc9bxvUWcN0lpPSxrGE0LYvjnF6rubL5wqapqSlyuevJZq+h05lDElGrvUCl8jSZzA6GBj9DFLWp1V/EcxdR1STJ5CTHT/zGmv29m8BumoOk01sZHPw0PYW7aFUrCFV929A86JJVrf4SlcpTKIqOYXSjcmrVQ9QqR4gaY1TPCvy6hW7miIKAiV27aZRWqa8sk8oX2HjTLSyeOkG7XuH80VcJPQ9V11k9d5aL8UNd9I5PoAhBq1LGzuWpryzhdzpkevsZnNqI33GoLS/RWFkiCkPSPb3c+vmfZvPe25FSIuP4XS/r8E+FWEqerDZ5pNxgpuNjCIVaELEhaTJlWyy4ASccFy+OsYQgrakogB9LJpMmP9KfJ6kKXmw4LHk+RV2jHcUcbDqc7fi0woiEKhi1DEIpyWgqu9JJrskkOeG4nHY8tqcS3FZIYwpBLCXLfoAlBLOuz8GGw7wX4Mcx++ttnCi+sHIpVeWGnM2n+vOkVIETxQhFoR6ErPgh+2stZsvz1KvnedkcYTisc9fAAE94Bsfb7toYgi9ODLAw8yJf76So62lGRMC1apuUkWCwMMTGTJpp22RShBhnH+2arxL5bjRbz4buyZx8GB7+DWgudfM3Gudh2490JWqvAYradd6PXk993QdYuffXCGeepmZkWd79i2wdmmRD3zruPXOUx+s+rt3HgrB5tta+bL0GDJ0hS+fnRnqxVcHfLFZ4uelQCUK8KwoZJmRAf9TkJxe+gxq0OZ5cx5b2aTY758iETYSZ5bn0Fp60N1JNDlKws8jqDGPNs/QFFZ7K7+H53HYkgn85nONTg/38/X3/D4+mtjExNM3OfIF8YwbVazA0fi29SZtFL6AWhix7AYte16TXb+jcOzfDQU/FVy4+J8N+iaHOIp7QCRSd0MyQSPWQsmxuTZv88tT4O7qn36ukcJ2UsnTJe78PVC5p1ZmXUv7qW43zTkmh0TjEgRc/i5Q+QlgYRi+amidoG6Qy6xDCpNM5i6IG5Is70I0iq6sP4vsVZAxhVCOKGleNm0nvotk8huRiCWBdLxBFrbXiX5u4ZtdX0LQMS2eOcuihx+gdmyD0PV594mGqi90aMdM33cqOOz/M0NQmVEPHbbWoLy/x1Fe/jO97DExtRtdUjj75KOPbd5HtH6S2tMDSqRPUltfKOSiCntEx9ESSoOMQhSGVhfNoukFucIjq4jxR0L0hNd2gb3IDiXSGwO0wOLUJRYFkLo/XapHM5th+xw9dVqbXc9qc2PcMp198ntVzZzDtFLm+AbL9A1h2ilMH9rF06gSZ3j58xyGOI7befhdCFWy+5YP0T254yzUKYkm14xLMz1BdmEeaFrmhEU6/8BwoAmklMO0UxUyapGl2I8foxrJ3Wk0CRSCdNlY6g3/tzbwiNZwo5rZ8mhhJLYhYDUJWvIBKEBIDK37AohuQVAVbUwkSquDFRpvjbZdKEJEQChMJk0BK0prKa20XJ4oxFIUNSZOUpuJGMY0oIpagKwrnXO+ythiXIqepTNsWaVWlHUXMuRcJpxpenbCoKdBr6NTDCCe63Owm6Jrzd2dsevS1Bk5AJQh5qeEQvMlz/vo1ZTWVde4Cv77/lyk4S8jBHbyc28Hs0F7ukkukzj4GJ+7DmbyL1me+Rp/1T+R0by7Bd/81nLj/jT8f2MHZ3b/Ia6FF6LdoJPp5NjnFUcfn2BqpDUYN9pafpzd2uHP5UQa9VRQkfVEbW0iU/AT0b+ua2KwMoEBtFhQBrW4fFUb2wK6f6JreohAiv2s+Q7IYRPy7M4v87VJXhlWQXFc/woLZy7w18JaXZ0UeUlHwhMGm8gnuLO1nNJNkdP1N9M89T/XwUWarGo12ROR7xKGPKWK8WGHDiM3H/sM339G0/s9CCseBD0gpFxVFGQQel1K+ZcreOyWFOIo4+8oBjj7xMLOvHgYU4ijE73SuOjZd7CXwXBLpNPWV5bUMTMnIzn76Nic58dQR4lCQyY+StNdz7vBzbPnYIBt234VX6qW5Wsf3qwztUsjYN/PYn3+V80ePEMcRmqYTBj4AAxum2XLbHbQqZV667zuEntdtsC7UC7VmRCbHfKZI/8JZRBwztm3nWrGuNql8gcGpTQxsmGZwaiP9kxsuM+FIKakvL2EXCuiGSaO0yuLJ44xu2UYym/uB5/DScQMpMa6o6/56YtHymZNoponbanLy+ee6xCJh3Z0fYesdH2Y2U+S/np1nvFYisXKepqJS8nx6X36WvtUFtPitiwq+FUJVQ4tCzg1N8I27fxZVKBf6sxueS6ZdB0VgpFKkm3WGnTq9fodKtshzvWM4sWRHOsnWlMXefJqP92YxLyXGOKYdxWRU9U3t2yU/5OuLZRKqYHfGZtQyqIYhCSEYNPULDtcr5/Rgs8Mpx2WjbTGRMHmu1uL5epsVPySjCSaTFn4cM2Dq7EonGbMMYkB9g/EqQch3V2poikJGU4mkJKer5HWNjUkL69Kud41FuO+L4FS7uSJrocGkB+Gan4Sbv7C2cV4yz2GI7/tEUUSj0aDVanV9W0IghCCKIsrlMtVqlcHBQbZv346uX7S3R1FEtdrdUFVV5YX9+5HtBuu3bKU4METCMrGWXsTvNGkvHEfPD6OP7sZ97SHMQ3+FtdYg6AISecLhPfzJ+n9O5rW/53OrD6Nt/eFuomV+HDbcBcfvg5mnLzrh3wHCIKC+stQtdAg8Wm5w3vW5o5hhZPkArBxluTTPbCdLtSNolk/hRcv0RjUyYRsl1KnqW2g3WjRKVcq1q3spKIogkR0D8viegowlMnZQRIKB4UF+7Hf/5Ts69/ciKZwFqnSFmT+RUn5JUZSalDJ3yTFVKWX+Db77C8AvAIyNje0+d+7cD/z7Tx94gf3/4bfwkikW1m0iAkQcc27XzeTaDSxNxbJT5CrLJObO0DETJJwmmf5BJtdNkm3XOfHUo1QXFxjdsp2td32Ux/7yz/CqZRIbNtE59drV16wbyDBAGCZizy0M5HIUP/BDRE6bI6HCS6Fg1Q8o6Bq9hGxYOkf93FlO1RqUEiliITi2YQcjuRxerUzQbtE/NsGPDhQYNDWW/JBYSramEuzO2FiqIIglf7lQ4olqk4ymcmM2RU5XiWRXsmxHMfvqLU47HpqikNYEKgqmUOgzdFaDkBFTZ0/WphF2pddKEFINIo61OpxwXJphTCAlA4bOJ/qy/Eh/gUXPZ8UPmUiY7K+3KAcRSSF4vFTlTLXOHc9+j02nDqHGMfVUjnS7gbiitlTcP4y5eQdne0eQ/UNMuE1Ymse45nrUZJpE0CFyHKqNBuW2w3nVpBFFRMkU/YUCmxM6pwNJ74EnSd37N9z4Uz+HnS9y5MQJ2q8doTVz6i3zUXpGx+mb3EDPyBjF0TF6RsZJ91z0K9VXltBNi2Q2R+C6zB07zNyrh2mWSzj1OoqikhsYpFVxsNI5esZGGFi/jt6xcSz7Yg6BjCVxJAnDmNCLsFI6nhMShTEyliydqTP7aoXQjxCqgtAEqqqgqAKn7tGqebSri7TLLxEGq2T7xhjbehOjW6cpDKVIpHXs7Bs7kN8WUXAhQfHo8RkCRaW6uIDbbqHYGc6cPkXb9Wg5ztuPBQhFIZYSTdMoFAp0Oh2EotBsNonfZh9SVZUoemMBYbQvRz6dIlXoZ9DqkF96Cm3pFXqbh1ENm+CnH6Ru9JNKpYjjGNM0UVW1GwK+tIQaR1RXlvAadZqry6zMnKGyvExhYJBQERiGQb5YpHR+ltkzZ8gMDWMPjrI0c4bOwhy3/siPsfuujxBFEStLS8yePcvi4iIzp07SiWP4PkrbZGsNtEYvsUyBXLM0KCqqPoGd72FgIkumN0GmaJEqWLgtn0TaYN32t+6t8mZ4L5LCkJRyQVGUPuAh4AvAd74fUrgU71RTON3q8Dv3PwgbtpI0dPS1TNdGJ6AZRHSEpB7F1MMIL5YUDa27Ga6p9KoCG02Na+ZOsK93nNOo6IFHoVpiuXeQmw88hmdYzA5PUk/nsTst9rzyFM10jiPT19BMXy6ZK8BG22LI1KkGEct+wIIXkBCCu4oZPjOQZ1MqQSOMWJ8wWfEDvrZY4bFKk1eaVz+QBrAFnXNxSFVIhhE4ClTfoKtTXlPZaFvEQDuKiCS4ccySF1DUNZb8gCv9bjlNZTxhsDOdJKupJFTBsZbLvau1N4gl6tqk3ViyI53g84NFBkydaqXC6r4nkXNn2TY5weDEBvomJnFbLdx2i7GtO962q1Qcx3ieh6qqqKqK7/vouo4QgpWVFU6fPo3ruhx8+H46rSYIlVg3SCaT5Hp6EaaJ63nIOMa0EuQLBVTdoLm6THNxnk61jOd2kEIFIZCajjSTKKqO7DQRvosaA4HXLY2hCFRpQqijxB4ENVA0kB0kCrGVINYTCK0HqSdR1F7QUt1Q2jAgFjFSRBC5iNAjEm1CI0BRdEQYoEc6hjZArAjCuEkQLKDoxsX+CFIQdurd9qumTWjYIE22b76eu+/5CH47JgojkC5PfOs+Wp0O/ROTYAmazSZC6rhRm3angaIIsqkUqow4c/YMNefqcGThOgivg/A9BFmQIXir6IqCjELiOF5zSwlsK4ffXMY3TMJ0DjWVQReCTruFEgZoAYRAw0pxPhwjZWXItQ+Ri8pdk42RgdBBCVykEEhFRYlDpGYQZvLEmt7dfC/RlAazBrpmMFduXV6cREoMoSB0HdcPuuG8QkAUIXwXaSWQVwQ7KGGAVLXvv9xKFKJ6HqpvocoMipJBkT5CbRJ5TQh9FFKo+gac7DKx6nPdug+xftsIuqHRbDZZLi0yvmGI9ZtH0S6pBRVFEe1214+SybxxJeS3w3uOFC47AUX5TaAF/Dz/ROajhZlV7vvG0+iGimaodIIW5doKXtBBxDpIBTVMoAdZRKyhqQYD6wrEeZsZS+V8RmOlV+eU5zMRq2xPmGzvt5kSERUv4DVhoPse9tJ54tIqahzh2BnmpKDH0Jg0VJZdj7jj4dSr4Dg41RaBH2IKG1NNk8jmMDSBrZts3LgRTdMpz7dZmq0QRgGmadGphYitOZqdgObhKl47YL6gcXZA51yvRt6Jueasx/r5ru+gkhIEmkL/aJodd42SsDTylQBNFeimim6p6KaKYWlYKR1FwKofcLLawZ2tonUciqZNeaFOGAckCypNp0qz2aTVatOMJDVpYLgmtu7TSWUYtW1G0knShSxj63vxfRc/chFCkE6n0XWdSqVCuVwmjuOutLWywuLiIpqmYRgG1Wr3NyzLQhU6qqYgpaRWq+F53lXrK4TobkhrUIXa7XGt6+RyOTzfp91uY5ommUyGwA/xPJ9Wq3GhJWIYXREmKUGJQIQxxAFSN4m7HSPfFIZukcvkCEKfeqN2VaXd7rhXZFZHEVKshdZKCcIgkKARolxRd0lKiBHEiooQCmrsX/gskgotaZJQAgwl6hbFCyNQFBSVqwg3liAUCCOFhEgSBx6R6oGqonguKU9FNk3qWpZYzZBzVmnoo+TNFgvjEyQm+ikYGgeeP4NXmqE3jJg0JIYTQc92VkOVmcjDjOuMq2VS7Xm8yKGjjDOfWMdCNsUZGeDF8rI+AgLo0SVjleMEiSK5RIJ0yqZjpam0IrKLVaZZYNN4jtWzT1NvlZG6iZpM4fUOEfo+ZrtOyjIRyTQtYSMUSac0j4KkkE5jDowhVRs/ClCViL6eXuxEGoQkdASthkPLqRF7Kp1VDR0TvyEhUgn1NmF8jFhxkbGLFusUixPkshrj22/FSqW7Gp4qcFsBC6dq2DmT4pBNrj+JbqrMnpvj3se+iVzTogzDwLlC+0qn01iWRbvdvvDZho1b+InPfebNb8C3wHuKFBRFsQEhpWyu/f8Q8NvAnUD5EkdzQUr5K2811jvuvPbySf7223998Q2pkBAZ8sU8ofQI/Yh6u0IUXx0/DaDEKiI2MIWNH/rEqkusXnwgdc0gCLuvLdNCUVQ6bvsNx1JDCxFZiFjDtHV82nhxC3mpzC0FWpBCipBIu3izJEQWWkl0NYFdFJgZhXQ2RTKRJJ2z8QMX13ORkUIcKAhpEHdUThyZIYgdQCEWIYoUgEQq8dp0xMSqS6S6oMgrA5GuhlQQsQHIy+bhnUJBkBDZrsQbhwhpYJAkjAPCMMCydXRTQ8Q6tplBUSEIQhIJEykifD8gahm48wmUSEfXVYY35UnlTGQsSRUsyvMtKgttGmWXMOhqgDUh0aWCLUEqEVIEKFIlkoKgYJHaXqCZFCx1fAhj0oaCgk/L6RCHIduGs6S1kDgMCD2XTrOG226i6zrSSiMTeaRps9LwUU2TuZk5VpoBDjq+VCgFAidSUWSEQYyPIOJ104PExsdUQnw0fKnio5IydUxNYGmC7f0GipRkEjq9hSz9OZtKucy9zxymX22gE+Gj4kqNapxETaRpdXzcSEGJAiI9QT020GRItBYBk5ERNWGgA7HCVVrj67B0gRvEpC2Njh8RrkX5XF7f9c0xVkjywY29fGBTHzdNFvHCmMePr3ByucVLs1WePV2mJ2XQ6IQEcUzRNkmZKjPl7vOQixVGAshFLRI2CFmm//wztHLrOJLZy3wkcZFEa/exTcwIdU7LPOEl97YqYSgS1IUkEytESDSpkI8V2jpoto6lCnIJnc3DGX5k5zCj4xk6rQAhFJpC8uCxZR47vsrplRa5pM5kb4psQiMIJZsH0yzUXfJJg56UgRvGWJpgYWmZlcUFnEYV4hA7nSVMFDg5twx+i4T0MJQIT+q0Yg0Xnc2TI/ynf/6hH+zhWsN7jRQmgW+tvdSAr0opf0dRlCLwDWAMmAV+VEp5dXPTS/DOS2dHdDod4jgmjmOSySSGcXk0RRAEVCoVPM/Ddd0Lf51Oh2qpzuJsiUazRipjkzBSNOZjoraKlTFouiVEZGJ6RdTQ7pbP1mPCOAAJvcNZjITG+JZeiEEzVIamcvSNd1XBOI5pNpsoikJptcyhV46wsrpEKpNicHCATCZDvV5nbm6O+fn5C2YT27ZxHAff91+fawzDIIoiwvBygktYNjKOSSQShFG3Z4QQKl1hVsHSbExhI0MF1VDoH82TyWRxOi2yxTSWaeE2IrJ2gXQuRcI2sGydEJ9Go06hUKBcLuO0XVr1DpXVKpXVBppiUF8ICPyIWHhEcUhvXw+5XB4ZKgR+DJ5O6MVohopmCDRDJQpi4iimOJzi5QdnEapCpieB3wkJ/Qjd0mjVPEIvwkho5PqTjG0tUBi0mT9RY+l0jcWGy0EloByE9Jk6nZTKCd+j5IfoQiFY28hURcHSBaYmMDTBatMnuuQ5GchYRFLS9kKEopBN6ARRzErzaq3ljZAyNfwoJmNp9KTMtT+Dgm1i6YKxQpK01R1zstdmosdGURTaXkjLCwmimHzSIJfUMbW3t1e3vZC/eG5mbSMyKbU89q7vYayYJI4lisIFX8lrM4v8+pcfoa+QYXxqitlqh6miTTOIMDTBZG8KQxOcWm6yvi/FcsPl2rE8u0ZztL2IbFInjGKOLTbZf7ZMpe0zlEswkk9wzWiephdwcK7OXNUhaaikTI1do7kL1/hmcIMIS1eJXyebNcf+XMXh8ROrPH58hZfOVqm6FzPhFSmRikJBEWzJ2aSFYPtgFj+I+M7RJVaUiF2pJBtHsvQXEmiq4JXFOq+WWoxlEyy2XOyEjodkvtZhOJ/A0lRaXkjNCVhquBiaYLyQ5CPbBjh4vs6TJ7qO+am+FFuGMlSdgDOrLVprCXo1J8BQBX50NVUWbIOhnIVQFOarHWIpuX6iwLoeG1Xp6omxlIwVkqRMjeFcguvWvX34+hvhPUUK7ybeSxnNcRTjtkMSKZ0Tzy8RhRLNEChCwc4anHm5hGlrrNvRQ+/o22c6v44givHCmJTZtSn+/+3deYwkZRnH8e+vq88595jZZXe5d1cU5UYiWQOaGBU04vGHRjRGDQSjgib+gRIjGhNFQeIfxqigMWIgGkVRE13jhUfkUtgjy7ILrLgMu7PDzu4cfVc9/lE1Pb3DzHDMtM12P5+k03V11fvM21NP1Vtdb1XqIYFEOvnFSHw3c410Ok0qaRKo1+uUSiUKhUKjLTIMQ4rFIpOTkwwMDNDXt0A31S8TYWRMlGqMF6uMF2tEZuTTAaOTZcJ6RBCITDogSImURDoQ6ZTIpVMUqyGPH5pi37NFxiYrjBerHJ6usmNkgloYsaony7PTVXqzAZeeMczpQ32UayGb1sTvY1NVSrWQci2kXItYN5hn89o+Ng7Hr0L2uTtiM2Pv6BQT5fiCfxjFr2oYUatHrF9RYE1/jnSQYlXvy6QPpQ5UqYeYwZP7jnLLT3dwwmCez199AbnMsXV2ZLTIoacm2XT+GvQS74zevv8ov9o2ws6Ro/x977Os7s3ywYtP4e1nr2fTmuf+f5kZBybKDPXlmCrXmSzXyWVSlGshw/05erL/vy5YPCnM8fSREjf/bjdDfVnSQYp9Y9M8emCS8WKVQiagWo8YLGQYKGQ4PF1lolzj5FU9DBYyBCmxopBhy6Yh3nZ2fDfhVLlOpR4xOlnmSLHG+hUFDkyUefipI4wXq5xxQj9nrO3n8HSVJ8ammSjVCM3Yc3CKUjUkjIxaFMXvoVEPI4rVkKlKnYly3Otmfz5NtR4niEwgXr1+kA9vOZUtm4YYyMflqkcRU+U605WQyUqN6UrIVKXG2FSVA0fLpAORT3akYWREZskOLD4CiSIjsviuSkt2bJHFR5oHJsqMTVWoh4ZhRBFUw4hyLWT9YIF8sqNc7PvUPKv5caZzP3J4usqe0SnCaGnfzUwghvpyrOzJsqo3y8bhXq6+dCMbVhQYn65SyAbkM8fnDXXu5eXgRJmBfGbeA4aXI08Kc+x4+ijX3PEQhyYrmMHawRxnbRhkdW+OUnKafHiqynS1zqreLL25NP89XGSqUieKjJGjZQ5NVujJBpRr8Y1K85GgN5tunDrOCFJCwKY1fY0d+syRbpBKkQlETzZNXy5gsCdLIRPwzNEShUxAfz7NZKXO73ce5Imx+a9TLIeU4p8QplKikAk4YSDPcH+OTBAfmUuQCeImlpEj5WNOh+e2AjSPNjcRHDt9drg3l+ZV6wYY7suxsjfDip4sKYlSNWTtQO6YpFYPjTBJYLUwolKLyGcCNg73sWFlgWCZ+sdxrpN4UlhmZsZD/xnn7n8/zVBfjuH+HNl0ijX9OfrzGfaPFxnuz3H2iSvozQbsHy+xZ3SSlT1ZTh/uYyCfJjKWtMMKI+OBfYfZOTJBqVpvrK8vl6Y3l6Yvl6Y/Hw+v7MmwbrBAZEapGmIkO/2k6SVIdvJBanbYO5ZzrnN5UnDOOdewWFLw7iidc841eFJwzjnX4EnBOedcgycF55xzDZ4UnHPONXhScM451+BJwTnnXIMnBeeccw3H9c1rkg4BL/7Ra7OGgLHnXaqzeMzdwWPuDi815lPMbHi+Gcd1UlgqSQ8udFdfp/KYu4PH3B1aEbM3HznnnGvwpOCcc66h25PCd9tdgDbwmLuDx9wdlj3mrr6m4Jxz7ljdfqbgnHOuiScF55xzDV2ZFCS9VdJuSXslXd/u8rSKpH1GzjcQAAAFj0lEQVSStkt6WNKDybRVkn4vaU/yvrLd5VwKSd+XNCppR9O0BWOU9Nmk3ndLekt7Sr00C8R8o6Snk7p+WNLlTfM6IeaTJP1J0i5JOyVdl0zv2LpeJObW1rUlD2nvlhcQAI8DpwNZ4BHgzHaXq0Wx7gOG5kz7GnB9Mnw9cFO7y7nEGC8Bzgd2PF+MwJlJfeeA05LvQdDuGJYp5huBz8yzbKfEvA44PxnuBx5LYuvYul4k5pbWdTeeKVwE7DWzJ8ysCtwFXNHmMv0/XQH8MBn+IfDONpZlyczsXuDwnMkLxXgFcJeZVczsSWAv8ffhuLJAzAvplJifMbN/JcOTwC5gAx1c14vEvJBlibkbk8IG4L9N4/tZ/A99PDNgq6SHJF2dTFtrZs9A/KUD1rStdK2zUIydXvefkLQtaV6aaUbpuJglnQqcB9xHl9T1nJihhXXdjUlB80zr1N/lbjGz84HLgI9LuqTdBWqzTq77bwMbgXOBZ4BbkukdFbOkPuBnwKfMbGKxReeZdlzGPU/MLa3rbkwK+4GTmsZPBEbaVJaWMrOR5H0UuJv4VPKgpHUAyfto+0rYMgvF2LF1b2YHzSw0swj4HrPNBh0Ts6QM8c7xx2b282RyR9f1fDG3uq67MSk8AGyWdJqkLPA+4J42l2nZSeqV1D8zDLwZ2EEc64eSxT4E/LI9JWyphWK8B3ifpJyk04DNwP1tKN+ym9kxJt5FXNfQITFLEnA7sMvMvtE0q2PreqGYW17X7b7C3qar+pcTX8l/HLih3eVpUYynE/8S4RFg50ycwGrgD8Ce5H1Vu8u6xDjvJD6FrhEfKX10sRiBG5J63w1c1u7yL2PMPwK2A9uSncO6Dov59cRNIduAh5PX5Z1c14vE3NK69m4unHPONXRj85FzzrkFeFJwzjnX4EnBOedcgycF55xzDZ4UnHPONXhScB1P0uqmHiUPzOlh8h8t2uZ5km5bYN4+SUPLuK27JG1ervW57uY/SXVdRdKNwJSZ3dzi7fwU+LKZPTLPvH3AhWY2tkzbuhT4gJldtRzrc93NzxRcV5M0lby/QdJfJP1E0mOSvirpSkn3J8+k2JgsNyzpZ5IeSF5b5llnP3D2TEJIzlS2Svq3pO/Q1EeNpF8kHRbunOm0UNJHJd3atMxVkr6R3KX+G0mPSNoh6b3JIn8F3iQp3aq/k+senhScm3UOcB1wFvBB4BVmdhFwG/DJZJlvArea2WuB9yTz5rqQ2a4HAL4A/M3MziO+A/XkpnkfMbMLks9cK2k1cXfu70j6vQH4MPAD4K3AiJmdY2avAX4LYHEfOHuT8ju3JH5k4dysByzphlnS48DWZPp24I3J8JuAM+NuaQAYkNRvcX/3M9YBh5rGLwHeDWBmv5E03jTvWknvSoZPAjab2T8l/RF4u6RdQMbMtkuqADdLugn4tZn9tWk9o8B64KGXHL1zeFJwrlmlaThqGo+Y/V9JARebWWmR9ZSA/Jxpz7l4J+kNxEnmYjMrSvpz0+duAz4HPEp8loCZPSbpAuL+b74iaauZfSlZPp9s17kl8eYj516crcAnZkYknTvPMruATU3j9wJXJstfBsw8FGUQGE8SwiuB1818wMzuIz5zeD9xB3hIWg8UzewO4GbiR3LOeAVxx4fOLYmfKTj34lwLfEvSNuL/n3uBa5oXMLNHJQ02NSt9EbhT0r+AvwBPJYv+FrgmWddu4J9ztvUT4Fwzm2luOgv4uqSIuIfUjwFIWguUZpq+nFsK/0mqcy0g6dPApJnNe6/CC1zHr4kvav/hBWxrwsxuf6nbcm6GNx851xrf5thrFC+YpBWSHiM++l80ISSOMPvweueWxM8UnHPONfiZgnPOuQZPCs455xo8KTjnnGvwpOCcc67Bk4JzzrmG/wHYe/FJT6v5MAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Extract stock closing prices to a numpy array\n", + "data = np.zeros(shape=(m, n))\n", + "i = 0\n", + "for stock in close_price:\n", + " data[:,i] = close_price[stock]\n", + " plt.plot(np.arange(m), data[:,i])\n", + " i += 1\n", + "# Plot closing prices\n", + "plt.xlabel('Time (days)')\n", + "plt.ylabel('Closing price ($)')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For each stock $i$, we first estimate the $j$th daily relative return as $$relative~return_{i,j} = \\frac{closing~price_{i,j+1}-closing~price_{i,j}}{closing~price_{i,j}}.$$" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Relative return\n", + "rel_rtn = np.zeros(shape=(m-1, n))\n", + "for j in range(m-1):\n", + " rel_rtn[j,:] = np.divide(data[j+1,:] - data[j,:], data[j,:])\n", + "# Plot relative return\n", + "for i in range(n):\n", + " plt.plot(np.arange(m-1),rel_rtn[:,i])\n", + "plt.xlabel('Time (days)')\n", + "plt.ylabel('Relative return')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Simply take arithmetic mean of each column of relative return to get mean return $r$ for each stock, followed by estimating covariance $V$ using numpy." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Mean return\n", + "r = np.zeros(n)\n", + "r = rel_rtn.sum(axis=0)\n", + "r = r / (m-1)\n", + "# Covariance matrix\n", + "V = np.cov(rel_rtn.T)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Classic Mean-Variance Model\n", + "## Efficient Frontier" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One of the major goals of portfolio management is to achieve a certain level of return under a specific risk measurement. Here we demonstrate how to use NAG Library to build efficient frontier by solving classical Markowitz model with long-only constraint (meaning, buy to hold and short selling is not allowed):\n", + "\\begin{equation}\\label{MV_model}\n", + "\\begin{array}{ll}\n", + "\\underset{x\\in\\Re^n}{\\mbox{minimize}} & -r^Tx+\\mu x^TVx\\\\[0.6ex]\n", + "\\mbox{subject to} & e^Tx = 1,\\\\[0.6ex]\n", + " & x\\geq0,\n", + "\\end{array}\n", + "\\end{equation}\n", + "where $e\\in\\Re^n$ is vector of all ones and $\\mu$ is a scalar controling trade-off between return and risk. Note one could build the efficient frontier by varying $\\mu$ from $0$ to a certain value." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Import the NAG Library\n", + "from naginterfaces.base import utils\n", + "from naginterfaces.library import opt\n", + "from naginterfaces.library import lapackeig\n", + "# Import necessary math libraries\n", + "from scipy.sparse import coo_matrix\n", + "import math as mt\n", + "import warnings as wn" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Input for quadratic objective\n", + "# Sparsity pattern of upper triangular V\n", + "irowq, icolq = np.nonzero(np.triu(V))\n", + "v_val = V[irowq, icolq]\n", + "# Convert to 1-based\n", + "irowq = irowq + 1\n", + "icolq = icolq + 1\n", + "# Sparsity pattern of r, which is actually dense in this application\n", + "idxr = np.arange(1, n+1)\n", + "\n", + "# Input for linear constraint: e'x = 1\n", + "irowa = np.full(n, 1, dtype=int)\n", + "icola = np.arange(1, n+1)\n", + "a = np.full(n, 1.0, dtype=float)\n", + "bl = np.full(1, 1.0, dtype=float)\n", + "bu = np.full(1, 1.0, dtype=float)\n", + "\n", + "# Input for bound constraint: x >= 0\n", + "blx = np.zeros(n)\n", + "bux = np.full(n, 1.e20, float)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The input data is ready, we can easily build the efficient frontier as follows." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Set step for mu\n", + "step = 2001\n", + "\n", + "# Initialize output data: absolute risk and return\n", + "ab_risk = np.empty(0, float)\n", + "ab_rtn = np.empty(0, float)\n", + "\n", + "for mu in np.linspace(0.0, 2000.0, step):\n", + " # Create problem handle\n", + " handle = opt.handle_init(n)\n", + " \n", + " # Set quadratic objective function\n", + " # In qcqp standard form q should be 2*mu*V\n", + " q = 2.0 * mu * v_val\n", + " idqc = -1\n", + " opt.handle_set_qconstr(handle, 0.0, idqc, idxr, -r, irowq, icolq, q)\n", + " \n", + " # Set linear constraint e'x = 1\n", + " opt.handle_set_linconstr(handle, bl, bu, irowa, icola, a)\n", + " \n", + " # Set bound constraint\n", + " opt.handle_set_simplebounds(handle, blx, bux)\n", + " \n", + " # Set options\n", + " for option in [\n", + " 'Print Options = NO',\n", + " 'Print Level = 1',\n", + " 'Print File = -1',\n", + " 'SOCP Scaling = A'\n", + " ]:\n", + " opt.handle_opt_set(handle, option)\n", + " \n", + " # Call socp interior point solver\n", + " # Mute warnings and do not count results from warnings\n", + " wn.simplefilter('error', utils.NagAlgorithmicWarning)\n", + " try:\n", + " slt = opt.handle_solve_socp_ipm(handle)\n", + "\n", + " # Compute risk and return from the portfolio\n", + " ab_risk = np.append(ab_risk, mt.sqrt(slt.x[0:n].dot(V.dot(slt.x[0:n]))))\n", + " ab_rtn = np.append(ab_rtn, r.dot(slt.x[0:n]))\n", + " except utils.NagAlgorithmicWarning:\n", + " pass\n", + " \n", + " # Destroy the handle:\n", + " opt.handle_free(handle)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot the result\n", + "plt.plot(ab_risk*100.0, ab_rtn*100.0)\n", + "plt.ylabel('Total Expected Return (%)')\n", + "plt.xlabel('Absolute Risk (%)')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Maximizing the Sharpe ratio" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Sharpe ratio is defined as the ratio of return of portfolio and standard deviation of the portfolio's excess return. It is usually used to measure the efficiency of a portfolio. Find the most efficient portfolio is equivalent to solve the following optimization problem.\n", + "\\begin{equation}\\label{sr_model}\n", + "\\begin{array}{ll}\n", + "\\underset{x\\in\\Re^n}{\\mbox{minimize}} & \\frac{\\sqrt{x^TVx}}{r^Tx}\\\\[0.6ex]\n", + "\\mbox{subject to} & e^Tx = 1,\\\\[0.6ex]\n", + " & x\\geq0.\n", + "\\end{array}\n", + "\\end{equation}\n", + "By replacing $x$ with $\\frac{y}{\\lambda}, \\lambda\\gt0$, model (\\ref{sr_model}) is equivalent to\n", + "\\begin{equation}\\label{sr_model_eq}\n", + "\\begin{array}{ll}\n", + "\\underset{y\\in\\Re^n, \\lambda\\in\\Re}{\\mbox{minimize}} & y^TVy\\\\[0.6ex]\n", + "\\mbox{subject to} & e^Ty = \\lambda,\\\\[0.6ex]\n", + " & r^Ty=1, \\\\\n", + " & y\\geq0, \\\\\n", + " & \\lambda\\geq0.\n", + "\\end{array}\n", + "\\end{equation}\n", + "Problem (\\ref{sr_model_eq}) is similar to problem (\\ref{MV_model}) in the sense that they both have a quadratic objective function and linear constraints." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Input for linear constraint: e'y = lambda\n", + "irowa = np.full(n+1, 1, dtype=int)\n", + "icola = np.arange(1, n+2)\n", + "a = np.append(np.full(n, 1.0, dtype=float), -1.0)\n", + "bl = np.zeros(1)\n", + "bu = np.zeros(1)\n", + "\n", + "# Inpute for linear constraint: r'y = 1\n", + "irowa = np.append(irowa, np.full(n, 2, dtype=int))\n", + "icola = np.append(icola, np.arange(1, n+1))\n", + "a = np.append(a, r)\n", + "bl = np.append(bl, 1.0)\n", + "bu = np.append(bu, 1.0)\n", + "\n", + "# Input for bound constraint: x >= 0\n", + "blx = np.zeros(n+1)\n", + "bux = np.full(n+1, 1.e20, float)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can call the NAG SOCP solver as follows." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# Create problem handle\n", + "handle = opt.handle_init(n+1)\n", + "\n", + "# Set quadratic objective function\n", + "# In qcqp standard form q should be 2*V\n", + "q = 2.0 * v_val\n", + "idqc = -1\n", + "opt.handle_set_qconstr(handle, 0.0, idqc, irowq=irowq, icolq=icolq, q=q)\n", + "\n", + "# Set linear constraints\n", + "opt.handle_set_linconstr(handle, bl, bu, irowa, icola, a)\n", + " \n", + "# Set bound constraint\n", + "opt.handle_set_simplebounds(handle, blx, bux)\n", + " \n", + "# Set options\n", + "for option in [\n", + " 'Print Options = NO',\n", + " 'Print Level = 1',\n", + " 'Print File = -1',\n", + " 'SOCP Scaling = A'\n", + "]:\n", + " opt.handle_opt_set(handle, option)\n", + " \n", + "# Call socp interior point solver\n", + "slt = opt.handle_solve_socp_ipm(handle)\n", + "\n", + "sr_risk = mt.sqrt(slt.x[0:n].dot(V.dot(slt.x[0:n])))/slt.x[n]\n", + "sr_rtn = r.dot(slt.x[0:n])/slt.x[n]\n", + "sr_x = slt.x[0:n]/slt.x[n]\n", + "\n", + "# Destroy the handle:\n", + "opt.handle_free(handle)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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uHE6e/Zs9/TllvYuqfbv368tWrTQEydOqKpqSkqK+2d0OcekqEudZ2Rk5Lnscn9nClvuu9SeQfwak0inhlWt9pIptH79+rlLS7z66qt06tSJTp068frrrwMQFxdH+/btuffee+nWrRt33323+0nsW2+9lYkTJ7J7925GjhzJa6+9RlJSEtddd537SeSNGzdetM8pU6YwdapzHK7169fTq1cvwsLCGD16NMePH79g3aysLFq0aIGqcuLECQICAvj1118viP3c2cmKFSuYP38+jzzyCOHh4ezatQuA2bNnExkZSZs2bVi6dOlF8SxZsoQBAwZw44030qZNGyZPnszMmTOJjIykc+fO7u18++239OzZk65du3LVVVdx5MgRAO6//37+7/+ctT5/+ukn+vfvj8PhuOBzDhw4kAcffJD+/fvTvn17oqKiGDNmDK1bt+bJJ590H+tOnTq545o6daq7iq4n7bM7evQoVapUoXLlyoCzMu+5Aod5HZO4uDj69etHt27d6NatGytWrHAfn0GDBnHLLbfQuXNn4uLiaNeuHePGjSMsLIwbbrjBfRa6du1aBgwYQPfu3RkyZAiHDh26KLY77riDhx56iEGDBvHYY4+xZs0aevfuTdeuXenduzc7duwgPT2dp59+mi+++ILw8HC++OKLC85C9+7dy+DBgwkLC2Pw4MHs27fvov0UWl6ZoyS+zp1BnErN0FZPfK8v/LDt0tKsKVb+dAaRkZGhI0eO1H//+98aHR2tnTp10lOnTmlKSop26NBB161bp3v27FER0ZUrV17U/pzsg/1MmjRJp0yZoqqqixYt0i5duqjqhX8NPvPMM/ryyy+rqmrnzp11yZIlqqr61FNP6V/+8peL4h0yZIhu3rxZv/32W42IiNDnnntOU1NTtVmzZhdtO7cziIceekhVVb///nsdPHjwRdtfvHixVqtWTQ8ePKipqanaoEEDffrpp1VV9fXXX3fHlJSUpA6HQ1VV33//ffd2T58+rR06dND//e9/2qZNG42Njb3ocw4YMEAfffRR9zbr16/v3l/Dhg01MTFR9+zZox07dnTH9fLLL+szzzzjcfvsMjMz9ZprrtHGjRvrHXfcofPnzy/wmJw+fVrPnj2rqqo7d+7Uc98xixcv1ooVK7rPQPbs2aOALlu2TFVV77zzTn355Zc1PT1dr7jiCj169Kiq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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot result.\n", + "plt.plot(ab_risk*100.0, ab_rtn*100.0, label='Efficient frontier')\n", + "plt.plot([sr_risk*100], [sr_rtn*100], 'rs', label='Portfolio with maximum Sharpe ratio')\n", + "plt.plot([sr_risk*100, 0.0], [sr_rtn*100, 0.0], 'r-', label='Capital market line')\n", + "plt.axis([min(ab_risk*100), max(ab_risk*100), min(ab_rtn*100), max(ab_rtn*100)])\n", + "plt.ylabel('Total Expected Return (%)')\n", + "plt.xlabel('Absolute Risk (%)')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Portfolio optimization with tracking-error constraint" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To avoid taking unnecessary risk when beating a benchmark, the investors commonly impose a limit on the volatility of the deviation of the active portfolio from the benchmark, which is also known as tracking-error volatility (TEV) \\cite{J03}. The model to build efficient frontier in excess-return space is\n", + "\\begin{equation}\\label{er_tev}\n", + "\\begin{array}{ll}\n", + "\\underset{x\\in\\Re^n}{\\mbox{maximize}} & r^Tx\\\\\n", + "\\mbox{subject to} & e^Tx = 0,\\\\\n", + " & x^TVx\\leq tev,\n", + "\\end{array}\n", + "\\end{equation}\n", + "where $tev$ is a limit on the track-error. Roll \\cite{R92} noted that problem (\\ref{er_tev}) is totally independent of the benchmark and leads to the unpalatable result that the active portfolio has systematically higher risk than the benchmark and is not optimal. Therefore, in this section we solve a more advanced model by taking absolute risk into account as follows.\n", + "\\begin{equation}\\label{tev_model}\n", + "\\begin{array}{ll}\n", + "\\underset{x\\in\\Re^n}{\\mbox{minimize}} & -r^Tx+\\mu (x+b)^TV(x+b)\\\\\n", + "\\mbox{subject to} & e^Tx = 0,\\\\\n", + " & x^TVx\\leq tev,\\\\\n", + " & x+b\\geq0,\n", + "\\end{array}\n", + "\\end{equation}\n", + "where $b$ is a benchmark portfolio. In this demonstration, it is generated synthetically. Note here we use the same covariance matrix $V$ for tev and absolute risk measurement for demonstration purpose. In practice one could use different covariance matrices from different markets." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a benchmark portfolio from efficient portfolio that maximiz the Sharpe ratio\n", + "# Perturb x\n", + "b = sr_x + 1.e-1\n", + "# Normalize b\n", + "b = b/sum(b)\n", + "\n", + "# Set limit on tracking-error\n", + "tev = 0.000002\n", + "\n", + "# Compute risk and return at the benchmark\n", + "b_risk = mt.sqrt(b.dot(V.dot(b)))\n", + "b_rtn = r.dot(b)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Input for linear constraint: e'x = 0\n", + "irowa = np.full(n, 1, dtype=int)\n", + "icola = np.arange(1, n+1)\n", + "a = np.full(n, 1.0, dtype=float)\n", + "bl = np.zeros(1)\n", + "bu = np.zeros(1)\n", + "\n", + "# Input for bound constraint: x >= -b\n", + "blx = -b\n", + "bux = np.full(n, 1.e20, float)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize output data: TEV risk and return\n", + "tev_risk = np.empty(0, float)\n", + "tev_rtn = np.empty(0, float)\n", + "\n", + "for mu in np.linspace(0.0, 2000.0, step):\n", + " # Create problem handle\n", + " handle = opt.handle_init(n)\n", + " \n", + " # Set quadratic objective function\n", + " # In qcqp standard form q should be 2*mu*V\n", + " q = 2.0 * mu * v_val\n", + " r_mu = 2.0*mu*V.dot(b)-r\n", + " idqc = -1\n", + " opt.handle_set_qconstr(handle, 0.0, idqc, idxr, r_mu, irowq, icolq, q)\n", + " \n", + " # Set quadratic constraint\n", + " # In qcqp standard form q should be 2*V\n", + " q = 2.0 * v_val\n", + " idqc = 0\n", + " opt.handle_set_qconstr(handle, -tev, idqc, irowq=irowq, icolq=icolq, q=q)\n", + " \n", + " # Set linear constraint e'x = 1\n", + " opt.handle_set_linconstr(handle, bl, bu, irowa, icola, a)\n", + " \n", + " # Set bound constraint\n", + " opt.handle_set_simplebounds(handle, blx, bux)\n", + " \n", + " # Set options\n", + " for option in [\n", + " 'Print Options = NO',\n", + " 'Print Level = 1',\n", + " 'Print File = -1',\n", + " 'SOCP Scaling = A'\n", + " ]:\n", + " opt.handle_opt_set(handle, option)\n", + " \n", + " # Call socp interior point solver\n", + " # Mute warnings and do not count results from warnings\n", + " wn.simplefilter('error', utils.NagAlgorithmicWarning)\n", + " try:\n", + " slt = opt.handle_solve_socp_ipm(handle)\n", + "\n", + "# Compute risk and return from the portfolio\n", + " tev_risk = np.append(tev_risk, mt.sqrt((slt.x[0:n]+b).dot(V.dot(slt.x[0:n]+b))))\n", + " tev_rtn = np.append(tev_rtn, r.dot(slt.x[0:n]+b))\n", + " except utils.NagAlgorithmicWarning:\n", + " pass\n", + " \n", + " # Destroy the handle:\n", + " opt.handle_free(handle)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdwAAAFYCAYAAAD5gk07AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3zN9/fA8dc7kcQIsTKsIEaMiL0rKDVK1ehQ1SpqtKV76Pbr1NLl20EpSml1F7WqjT1qE3sTK4hEIjv3/P74RBpEXOTmZpzn45FH87n3fj73JJWcvMfnHCMiKKWUUsqxXJwdgFJKKVUQaMJVSimlcoAmXKWUUioHaMJVSimlcoAmXKWUUioHaMJVSimlckAhZweQncqWLStVqlRxdhhKKaXyoVSbEJeUSlxSStp/U7Gl3VrragypIiSd2n9WRLwzOz9fJdwqVaqwYcMGZ4ehlFIqj0tJtbH3dCybj51n05EoNh87z8EzFwFwM9DMrwSN/EvS0L8UDf1LElC2GMYYjDFHrnXNfJVwlVJKqZtxNjaRzUej2Hz0PJuPRrE1PIq4pFQAyhRzp6F/Kfo0qkhD/5LUr1iSYh43nj414SqllCpQklNt7Dp5gc1Ho9iUlmCPRsYBUMjFUKd8Ce5tXJGG/qVo5F+KSqWLYIy55ffVhKuUUipfi09KZc3Bs6w9GMnmo+fZFh5NYooNAJ/iHjTyL8WDzf1pVLkUQeW9KOLu6pA4NOEqpZTKdw6fvcjSPRGE7jnDmoPnSEqx4e7qQt0KJXiweWUaVbbWX8t7Fc6W0as9NOEqpZTK8xJTUvn3UCShu8+wdE8EB89aG5wCyhajf/PKtK/lTdMqpSns5pjRqz004SqllMqTjkfFW6PY3WdYtf8s8cmpuBdyoWVAGR5uWZl2gT5UKVvM2WGm04SrlFIqT0hOtbHh8HmW7o1g6e4z7DkdA0CFkkW4p3FF2tfypmVAWYetwd4qTbhKKaVyrYgLCSzda00Tr9h7lpjEFNxcDU2rlObVxrVpX8ubat6eObYOeys04SqllMo1Um3ClmNRaRueIgg7fgEA3xIedAsuR7tAH1pXL0Pxwm5OjvTGacJVSinlVJEXk1i+9wyheyJYtvcMUXHJuBhoXLkUL3QOpH2gD7XLFc8To9isaMJVSimVo2w2YceJC4SmjWK3HItCBMp6utOhli/ta3nTpro3XkXz3ig2K5pwlVJKOVx0fDIr950ldE8ES/ec4WxsIsZAcMWSPNWhBrfX8iGovBcuLnl7FJsVTbhKKaWynYiw53QMobutqeKNR86TahO8irgRUtOb9oHehNT0pqynh7NDzTGacJVSSmWLi4kprNp/ltA91q7ik9EJANQtX4LH2lajfS1v6lcsSSHXgtmKXROuUkqpmyIiHDx7kdDd1jTxukPnSE4VPD0K0aZGWZ7p6EPbQG98SxR2dqi5giZcpZRSdktKsbH6wFlCd1t1ii912anp68mg1lVpF+hD48qlcC9UMEexWdGEq5RSKksJyaks23uGhWGnWLLrNDEJKRRxc6V19TIMDQmgXaA3FUsVdXaYuZ4mXKWUUleJTUwhdHcEC8NOEbongrikVEoWdaNLXT+61vOjVbWyTm0EkBdpwlVKKQVAdFwyf+06zcKwkyzfd5akFBtlPT3o1bACXYPK0TygNG4FdMNTdtCEq5RSBdjZ2EQW7zjNgrCTrDlwjhSbUN6rMA8296drUDkaVy6Faz6+NzYnacJVSqkC5lR0AgvDTrIg7BTrD0diE6hSpiiPtgmga5AfwRW98nwZxdxIE65SShUAxyLjWJCWZDcfjQKsncUjbq9B1yA/avnl/VrFuZ1DE64xpgvwGeAKTBaRMVc8XwuYCjQCXhWRcRmeKwlMBoIAAQaJyBpHxquUUvnJ/ojY9JHsjhNW152gCiV4oXMgXYL8qObt6eQICxaHJVxjjCvwBXAHEA6sN8bMEZGdGV4WCTwJ9MzkEp8BC0XkHmOMO6B7zpVSKgsiwq6TMelJdl9ELACN/Evy6p216RLkR6XS+qvUWRw5wm0G7BeRgwDGmB+Au4H0hCsiEUCEMaZbxhONMSWAEOCRtNclAUkOjFUppfIkEat/7MKwUyzccYoj5+JwMdCsamn6t6hL57p++HlppafcwJEJtwJwLMNxONDcznMDgDPAVGNMfWAj8JSIXMzeEJVSKu9JtQkbDkeyIOwUi3ac4mR0AoVcDK2ql2V422rcUce3QDUFyCscmXAzW30XO88thLWuO1JE1hljPgNGAa9f9SbGDAWGAvj7+99kqEoplbslp9pYe/AcC8JOsXjHac7GJuJeyIWQGt483ymQjrV9813/2PzGkQk3HKiU4bgicOIGzg0XkXVpxz9jJdyriMjXwNcATZo0sTehK6VUrpeYksrKfWdZkFZSMSoumaLurrSv5UOXun60r+WDp4febJJXOPL/1HqghjGmKnAc6Av0s+dEETlljDlmjAkUkT1ABzKs/SqlVH4Vl5TCsj1nWBB2in92RxCbmELxwoW4o7YvXYL8CKnprSUV8yiHJVwRSTHGjAAWYd0WNEVEdhhjhqc9P8EY4wdsAEoANmPM00AdEbkAjARmpu1QPggMdFSsSinlTDEJyfyzO4IF20+xdG8ECck2Shdzp3twOboEWXWLtftO3mdE8s8sbJMmTWTDhg3ODkMppa7r/MUk/tpplVRctf8cSak2fIp70CXIjy5BfjSrUrrANmrPy4wxG0WkSWbP6eS/UkrlkIiYBBbtsJoDrD0YSapNqFCyCA+3rEzXen40rFQKF61bnG9pwlVKKQc6HhVv3SMbdpINR84jAgFlizEsJICuQeUIqlBCSyoWEJpwlVIqmx0+e5EFaUl2a3g0ALX8ivNUhxp0DSpHTV9PTbIFkCZcpZS6RSLCvohYFmw/xYKwk+w+FQNAcEUvXuwSSNegclQtW8zJUSpn04SrlFI3QUTYceJCegeeg2cuYgw0qVyK17vXoUuQHxVKFnF2mCoX0YSrlFJ2EhE2H4tiwXYryYafj8fVxdAioDQDW1elcx1ffEpo3WKVOU24Sil1HYfPXuTXzcf5ffNxjkbG4eZquK16WZ68vQYd6/hSupi7s0NUeYAmXKWUysT5i0nM23aCXzcfZ/PRKIyB1tXK8mSHGnSq60uJwlq3WN0YTbhKKZUmMSWV0N0R/LrpOKF7IkhOFQJ9i/Ny11rc3aCCtrlTt0QTrlKqQBMRNh45z6+bj/PntpNExyfjXdyDAS2r0KtRBeqU0/tkVfbQhKuUKpCuXJct4uZK57q+9GpUkdbVymhZRZXtNOEqpQqMa63LPtWhBp2D/LTVnXIo/dellMrXdF1W5RaacJVS+Y6uy6rcSBOuUirf0HVZlZtpwlVK5Wm6LqvyCv2XqJTKc3RdVuVFmnCVUnmCrsuqvE4TrlIqV9N1WZVfaMJVSuU6ui6r8iP9V6uUyhV0XVbld5pwlVJOteNENN//e5S5W3VdVuVvmnCVUjkuPimVedtOMHPdUbYci8KjkAtdg/x0XVbla5pwlVI5Zn9EDDPXHeWXjeFcSEihmncx3uhehz6NKuJVVPvLqvxNE65SKnv4+cHp01c9LL6+zFm4kVnrjrLuUCRuroauQeV4sLk/zaqW1iljVWBowlVKZY9Mki2AOX2ap37YQuUyRRnVtRb3NK5IWU+PHA5OKefThKuUcrgZg5vRulpZXFx0NKsKLt2ZoJS6NTYbZ3//M8uXtKnhrclWFXg6wlVK3ZTU0xEcHvs5nt9Nw/f0MWeHo1SupyNcpZT9RDg/bxF723fDVqEC1T56m+OFS/Lni2OdHZlSuZ6OcJVS12WLOMORj7+i6Lff4HvqKC4exVjSrjfFRjxOy7va0MjVBb4dl/nGKV/fnA9YqVxIE65SKnMiXFj8D6fHjady6AKqpiazpVId1j37PsFPP0rXSmUvf/2pU86JU6k8QhOuUuoycu4cxz6biPuUyfgdPwQexfi7TQ88HhtOq17taeDm6uwQlcqTNOEqpUCEpOUrOPnhePz+mot/chJbK9Ri7ci3qfv0o3QN8HN2hErleZpwlSrIoqKImzKN+M+/osyhvZR2L8Lipl1xf3w4be7tSH13/RWhVHbRnyalChoRWLeOmPFf4vHLTxRNSmCfXw1+e/hlaj09hO4Nqmi5RaUcQBOuUgXFhQvIjBnEf/4VRXfvwMWtML/WbcfJvgPoOuBOHvUr4ewIlcrXNOEqld9t2IDtq6+wzfqeQgnxHPStxm/dn6TEoId5oENdfEpoY3elcoImXKXyo5gY+P57UidMwHXzZhLdCvNH7RBC2/bktr5deK5JJYrq+qxSOUp/4pTKTzZvhokTsc2ciUtsLPt9qzLjjsc41rUn/ToF82VtX1y1prFSTqEJV6m87uJF+OEHmDgR1q8nyb0wcwJv4/uGXSnXqS2PhlSjQaWSzo5SqQJPE65SedXWrTBxIvLdd5iYGI6Vq8rkjsP4q2FHuobU4dNWVahUuqizo1RKpdGEq1ReEhcHP/5ojWbXriXV3Z1/gtoysXZHjtdpxMDbqrKwmT8lCrs5O1Kl1BU04SqVF+zYYSXZ6dMhOprIilWZ2mUYM2q2pWL1igxpE8Cd9crh5qoNwJTKrTThKpVbxcfDzz9biXbVKsTdne3NO/BB5XasKl+HjnV8mdAmgOZVS2uhCqXyAIcmXGNMF+AzwBWYLCJjrni+FjAVaAS8KiLjrnjeFdgAHBeR7o6MValcY9cu+Ppr+PZbOH+e5IDqLH7oWf6vTBPOF/WiT6OK/B0SQDVvT2dHqpS6AQ5LuGnJ8gvgDiAcWG+MmSMiOzO8LBJ4Euh5jcs8BewCtASOyt8SE+GXX6zR7PLl4OZG7J13MT24Mx8lV8DV1YW+TSsxrG01KpQs4uxolVI3wZEj3GbAfhE5CGCM+QG4G0hPuCISAUQYY7pdebIxpiLQDXgXeNaBcSrlPHv3WqPZadPg3DkICODMq//HJxVb88ORBNzFhQGtKjOsbQC+WhFKqTzNkQm3AnAsw3E40PwGzv8UeBEontWLjDFDgaEA/v7+NxiiUk6QlAS//WaNZkNDoVAhuPtuDt/Tnw+TKjB/ZwRFTyQzJCSAIW0CKOvp4eyIlVLZwJEJN7NdHGLXicZ0ByJEZKMxpl1WrxWRr4GvAZo0aWLX9ZVyigMHrNHs1Klw5gxUqQLvvsvOLn34eHsMS7acprhHJCNvr86g1lUpVczd2RErpbKRIxNuOFApw3FF4ISd57YGehhj7gQKAyWMMd+JSP9sjlEpx0pOhj/+sEazS5aAqyvcdRcMG8bGwCaMDz3Ish/341XEjWc61uSR1lXwKqL30CqVHzky4a4HahhjqgLHgb5AP3tOFJGXgZcB0ka4z2uyVXnKoUMwaRJMmQKnT0OlSvDWWzB4MGsTPPjfP/tYtXQdpYu582KXQB5qUZniWqxCqXwty4RrjHEH7gTaAOWBeCAMmC8iu7M6V0RSjDEjgEVYtwVNEZEdxpjhac9PMMb4Yd32UwKwGWOeBuqIyIVb/LqUynnJyTBvnjWaXbwYjIFu3WDYMKRzZ1YdimL8nH38eziSsp4evHpnbR5s4a9de5QqIIxI5suexpjXgD7AcmAjEIE1vVsTaI+1Rvu8iITlTKjX16RJE9mwYYOzw1AFzZEjMHkyfPMNnDwJFSrAo4/C4MFQqRIr953lo7/2sPloFH4lCjO8bQB9m/lT2M3V2ZErpbKZMWajiDTJ7Lms/rTeLiLvXOO5D40x5bh8jVapgiMlBebPt0azCxZYj3XtChMmwJ13QqFCbD0WxYeT17Jq/zkqlCzCOz2DuLdJRTwKaaJVqiC6ZsIVkT+ufCxtirmQiMSJyEngpCODUyrXCQ//bzQbHg7lysGrr1oj2sqVAdgfEctHi/ewIOwUZYq58+ZddejX3F8TrVIFnN2LR8aYgcBgwMUY87eIvO64sJTKRVJTYeFCazT7558gAp06wfjx0L07uFmbnU5ExfPZkn38tPEYRdxceaZjTQa3qYqnh67RKqWySLjGmK4isiDDQ51F5La057YCmnBV/nbihDWSnTwZjh4FX1946SUYMgSqVk1/2fmLSXy5dD/frjkCAgNbV+XxdtUoowUrlFIZZPWnd/O0Kk6vp22M2mGMmQ7YgCx3KCuVZ9ls1g7jiRNh7lxrdNuxI3z0EfToAe7/FaO4mJjClJWH+Hr5QS4mpdCnUUWe6liDiqW06btS6mpZreGONsZUAN42xiQCbwKlgaIisimnAlQqR5w6Zd0zO2kSHD4M3t7w3HPWaLZ69ctempRi4/t/j/K/f/ZxNjaJTnV8eaFzIDV8s6xCqpQq4K63uBQJPAbUBaYAq4CPHR2UUjnCZoO//7ZGs3/8Ye08bt8exoyBnj3B4/Ip4VSbMGfrcT5avJfw8/E0r1qarx+uRSP/Uk76ApRSeUlWa7j/B3QE3IAZItLdGNMbmG+MmSwi3+dUkEplq4gIq57xpElWfeMyZeCpp2DoUKhZM9NT1hw4x1vzdrLr5AXqli/Bu73qEVKjrDZ+V0rZLasR7t0i0sBYv1E2Av8TkV+NMXOxetgqlXeIWJ15Jk60OvUkJ0NIiFVusXdvKJx567tjkXG8N38XC8JOUaFkEcY/0JDu9crh4qKJVil1Y7JKuLuMMVOBIsDKSw+KSDLwkaMDUypbnD1r9Zr9+mvYtw9KlYInnrBGs7VrX/O02MQUvgzdz+SVh3A1hufuqMmQkACtDqWUumlZbZp6wBjTEEjOTeUblbouEVi+3BrN/vKL1X+2dWt4/XW45x4oUuSap9pswq+bj/Phwt1ExCTSq2EFXupSCz8vbf6ulLo1Wa3hthCRtVk87wn4i8hOh0Sm1I2KjITp061Eu3s3eHnBsGHWaDYo6LqnbzwSyVtzd7I1PJoGlUoy4aHGuiFKKZVtsppSftAYMxZYgLWGewareUF1rOYF1YHnHR6hUlkRgdWrrST744+QmAgtWlibou67D4pe/57YE1HxfLBwN39sOYFvCQ8+ub8+d9evoOu0SqlsldWU8khjTFngXuAhoBxWe75dwLcisjRHIlQqM+fPw3ffWYl2xw4oXtzqzjN0KNSvb9cl4pNSmbj8ABOWHUAERt5eneFtq1FMSzEqpRwgy98sInIW+CrtQynnEoG1a/8bzcbHQ9OmVunFvn2hWDG7LxW6O4I35oRxLDKebvXKMaprLSqV1gpRSinH0T/lVe4XHQ0zZ1qJdts28PSEhx6y1mcbNbqhS52KTuCteTuYv/0U1byLMWtIc1pVK+ugwJVS6j+acFXuJAIbNlhJ9vvvIS4OGja0+s3262dNId+AlFQb3645wseL95BiE17oHMiQNgG4F3Jx0BeglFKX04SrcpeYGJg1y0q0mzdbm5769bPWZps0gZuo7LTlWBSv/LqdnScv0LamN2/fHYR/GZ0+VkrlLLsSrjGmGVAl4+tFZJaDYlIF0aZNVpKdNQtiY62NT19+CQ8+CCVK3NQlo+OTGbtoNzPXHcWnuAdfPtiIrkF+Wo5RKeUU1024xphpQB1gC5Ca9rAAmnDVrYmNhR9+sBLthg1WQYr777fWZps3v6nRLICIMGfrCd6et4vIi4k80qoKz95Rk+KF3bL5C1BKKfvZM8JtAdQREZujg1EFxNatVpL97jtrCrluXRg/3toIVbLkLV36yLmLvPLbdlbtP0f9il5MG9iUoApe2RS4UkrdPHsS7g6gLBDh4FhUfhYXB7NnW4l23Tqr9d1991mj2Vatbno0e0mqTfh29WHGLtpDIRfD23fXpV/zyrhq8QqlVC5hT8L1wmpksBZIvPSgiPR2WFQq/wgLs5LsjBnW7T21asEnn8DDD0Pp0tnyFgfOxPLiz9vYeOQ87QO9ea93Pcp5XbteslJKOYM9Cfd9h0eh8pf4ePjpJyvRrl4N7u5W04Bhw6BNm1sezV6SahMmrzjIx3/tpbCbKx/fV59eDSvopiilVK6UZcI1xrgCL4pI5xyKR+Vlu3ZZSXb6dKv0Ys2aMG4cDBgAZbO3uMTe0zG88PM2th6LolMdX97pGYRPCe3oo5TKva5X2jHVGJNkjCkhIhdyKiiVhyQkWC3wJk6EFSvAzc1q6D5sGLRrl22j2UuSU21MXHaA8X/vx7NwIf73QEO6B5fTUa1SKtezZ0o5FthqjFkMXLz0oIg867CoVO63Z4/V1P3bb+HcOahWDT74AB55BHx8HPKW+yNieGb2VrYfj6Z7cDn+r0ddynh6OOS9lFIqu9mTcJekfaiCLjERfvvNGs0uXQqFCkHPntZo9vbbwcUxZRJFhBlrj/Dun7so5lGICf0b0SWonEPeSymlHOW6CVdEvsmJQFQutn+/NZqdOhXOnoWqVeG992DgQPDzc+hbR1xI4IWft7Fs7xnaBXrz4T3B+BTXtVqlVN5jT6WpfViVpS4jIjUdEpHKHZKS4I8/rNHs33+Dqyv06GGNZu+4w2Gj2YwWhp3i5V+3EZ+cytt316V/i8q6VquUyrPsmVK+LcPnhbEa0mvpnvzq4EGYNAmmTIGICPD3h7ffhkGDoHz5HAkhNjGFt+bu4McN4dSr4MUn9zeguo9njry3Uko5ij1TyqeveGicMWalg+JRzpCcDHPnWqPZxYut0Wv37tZotnNna3SbQ8KOR/PErE0ci4xjRPvqPNmhhrbQU0rlC/ZMKQdnOHQBmqAj3PzhyJH/RrMnT0LFijB6NAwebH2eg0Ss0ozvzd9NGU93fhjakmZVs6cSlVJK5Qb2TCl/keHzFOAQcL9jwlEOl5ICf/5pjWYXLrQeu/NOazTbtau18ziHRccl8+IvW1m04zQdavkw7t76lCrmnuNxKKWUI9nz27W/iBzJ+IAxxt9B8ShHOXYMJk+Gb76B48et9djXXoNHH7XWaZ1k89HzjPx+M6eiE3itW20G31ZVN0YppfIlexLub0CjKx77PZPHVG6TmgoLFlij2fnzQcRak/38c2uN1gmj2UtEhCmrDvP+/F34lijMT8Nb0tC/lNPiUUopR7vmb1xjTE2gNuBljOmR4akSWLuVVW51/Lg1kp082RrZ+vrCqFHWaLZqVWdHR1xSCi/+vI15205yRx1fxt1TH6+i2hxeKZW/ZTXEqQv0Bkpi3Qp0SQwwzJFBqZuQmmrtMJ44EebNs47vuMNqhdejh1XjOBc4dPYiw2dsZF9EDC92CeSxttV0ClkpVSBcM+GKyG/Ab8aY20REbwPKrU6etHYZT5pk7Tr29obnn4chQ6z6xrnI37tO8/TsLbi6GL4d1Iw2NbydHZJSSuUYexbxThljFgF+IlI/7TahbiKifXKdxWazqj9NnGhVg0pJsWoZf/ihVdvYPXft8BURxv+9n0+W7CWoQgm+erAxlUoXdXZYSimVo+xJuJOBV/jv9qDtwPdoY/qcd/o0TJtm1TU+eBDKlIGnn7ZGszVzZ6XN+KRUnv95K39uO0mvhhV4v3c9CrvlXCENpZTKLexJuMVEZPWldTYREWNMsmPDUulsNggNtUazv/9uVYVq2xbeecfqO+uRe9vTnYpOYOiMDWw/Hs1LXWoxvG2ArtcqpQosexLuOWNMVdIaGBhjegKnHBqVsrryTJtmJdr9+6FUKRgxAoYOhVq1nB3ddW0Lj2LI9A3EJKTw9UNNuKOOr7NDUkopp7In4Y4AvgFqGWOOACeBBxwaVUElAsuXW0n2l1+sjj2tW8Mbb8A990CRIs6O0C7ztp3guR+3UtbTg18ea0XtciWcHZJSSjmdPc0L9gO3G2O8ACMiUY4Pq4CJjIRvv7XWZnfvBi8vq9TisGFQt66zo7ObiPDVsgN8uHAPjSuXYuJDjSnrmXunvJVSKidl2YbFWEoCiEg0cNEYM9AYE2bPxY0xXYwxe4wx+40xozJ5vpYxZo0xJtEY83yGxysZY0KNMbuMMTuMMU/d4NeV+4nAypXw0ENWmcVnn7WmjadOhRMnYPz4PJVsU1JtvPJbGB8u3MNd9csz89HmmmyVUiqDrCpN3QtMApLSEuxoYAawDRh0vQsbY1yxdjbfAYQD640xc0RkZ4aXRQJPAj2vOD0FeE5ENhljigMbjTF/XXFu3nT+PMyYYU0b79wJJUpY3XmGDYPg4OufnwtdTExhxKxNhO45w2PtqvFCp0BcXHRzlFJKZZTVlPKbQHMR2WOMaQqsxGpk8JOd124G7BeRgwDGmB+Au4H0pCkiEUCEMaZbxhNF5CTWWjEiEmOM2QVUyHhuniICa9daSXb2bEhIgKZNrdKLfftCsWLOjvCmRVxIYNC369l54gLv9griweaVnR2SUkrlSlkl3CQR2QMgIuuNMYdvINmClSCPZTgOB5rfaIDGmCpAQ2DdNZ4fCgwF8Hdi15tMRUfDd99ZiXb7dvD0hAEDrNFsw4bOju6W7Y+IZcCUfzkfl8Q3A5rSvpaPs0NSSqlcK6uE62OMeTLDcbGMxyIy/jrXzmxOUW4kOGOMJ/AL8LSIXMjsNSLyNfA1QJMmTW7o+g4hAuvXW0n2hx8gLg4aNbKOH3gAihd3doTZYsuxKAZO/RdXF8OPw1oSVMHL2SEppVSullXCnQp4Z3F8PeFApQzHFYET9p5sjHHDSrYzReTXG3hf54iJgZkzrcS6ZYs1TdyvnzWabdLE2dFlqxX7zjBsxkbKeLozY1BzqpTNu1PiSimVU7JqXvD6LV57PVAjrWjGcaAv0M+eE41VjugbYJeIfHyLcTjWxo1Wkp01Cy5ehPr14csv4cEHrQ1R+cy8bSd4ZvYWqnl7Mn1QM3xKaKdGpZSyh8M6kItIijFmBLAIcAWmiMgOY8zwtOcnGGP8gA1YPXZtxpingTpAMPAQsN0YsyXtkq+IyHxHxXtDYmPh+++tRLtxo1WQom9fazTbrBnk0/KFs9Yd5dXft9O0cmkmDWiCV5Hc0fJPKaXyAoclXIC0BDn/iscmZPj8FNZU85VWkvkasHNt2WIl2ZkzrSnkoCD43/+gf38oWdLZ0TnUNysP8fa8nbQP9Oar/o21AYFSSt0ghybcfOHiRetWnokT4d9/oXBhuO8+azTbsmW+Hc1m9Pk/+xi3eC9dg/z4rG9D3IQfF54AACAASURBVAtlWS9FKaVUJrIqfPHktZ4Du3Yp523bt1tJdsYMuHABateGTz+1KkOVLu3s6HKEiDBu8R6+CD1Ar4YVGHtPMIVcNdkqpdTNyGqEe2lHcg2sIhZz0467A8scGZTTxMfDjz9aiXbNGqv13T33WKPZ224rEKPZS0SE9+bvYtKKQzzQrBLv9qyn1aOUUuoWXHeXsjFmEdDg0n2wxpjXgdk5E14O2bnTSrLTp0NUlNXM/aOPrCIVZco4O7ocJyKMWbibSSsOMaBlZUb3qKt9bJVS6hbZs4ZbGUjIcJwIVHVMODkoIQF+/tlKtCtXgpsb9OljjWbbti1Qo9mMRISPFu9l4rKD9G/hr8lWKaWyiT0JdxawzhjzC1alqN7ATIdG5Ui7d1tt8L791mqLV706fPghPPIIeN9IXY/86bO/9/F56H76Nq3EWz2CNNkqpVQ2sacf7lvGmAVASNpDw0VkvWPDymaJifDrr9ZodtkyKFQIevWyRrPt24OLbgQC+CJ0P58u2cc9jSvyXi9ds1VKqexk721BrsAZEZlujCljjPEXkaOODCxb7NtnjWanTYOzZ6FqVXj/fRg4EHx9nR1drjJh2QHGLtpDr4YV+KBPsCZbpZTKZtdNuMaY14DWQDVgOlAYa5r5NseGdpOSkuD3363R7D//gKsr3H23NZrt2FFHs5mYvOIgYxbs5q765Rl3b31cNdkqpVS2s2eEew9We7xNACJy3BiTO4sEHz8OlSpBRARUrgzvvAODBkG5cs6OLNeatuoQ7/y5izvr+fHJfZpslVLKUexJuIkiIsYYATDGFHVwTDfv1Kn/RrOdOlmjW3VNv24KZ/TcnXSq48tnfRtqUQullHIgexLur8aYLwAvY8xAYDBWq77cp149azpZXVfonghe/HkbrauX4X/9GuKmyVYppRzKnl3KHxhjugJJQH3gXRFZ4PDIboa7u7MjyBM2Hz3P499tItCvOBP6N8ajkM4EKKWUo9mzaeo9EXkFWJDJYyqPOXAmlkHT1uNd3INpA5tRvLC22FNKqZxgzzxil0we65bdgSjHOxWdwMPf/Iuri2H6oGZ4F/dwdkhKKVVgZNUtaBgwHAg0xmzK8FRxYKOjA1PZKzo+mQFT/iUqLonZw1pSpWwxZ4eklFIFSlZTyj8CfwPvA6MyPB4jIhEOjUplq4TkVIZM38DBs7FMfaQZQRW8nB2SUkoVOFl1CzoPnDfGfAicFpFYAGNMcWNMExHZkFNBqpsnIoz6ZRv/Hopk/AMNua1GWWeHpJRSBZI9a7hfA3EZji8CEx0Tjspun/+zn9+3nOD5TjXpUb+8s8NRSqkCy56E6yIitksHaZ/r1tY8YN62E3z01156N6zAE+2rOzscpZQq0OxJuIeMMY8ZY1yNMS7GmCeAww6OS92iLceieO7HrTSpXIr3+9TTNntKKeVk9iTcYUAH4HTaR1tgiCODUrfmeFQ8j367AZ8SHkx8SAtbKKVUbmBPpanTWA0MVB4Qm5jC4GnrSUxO5fshzSnjqffaKqVUbnDdEa4xproxZpExZmvacbAx5mXHh6ZuVKpNeOr7zeyLiOXzBxtRw7e4s0NSSimVxp4p5cnA/wGXNk5tB/o7LCJ1096fv4u/d0cw+q46tK3p7exwlFJKZWBPwi0mIqsvHYiIAMmOC0ndjFnrjjJ55SEeaVWFh1pWcXY4SimlrmBPwj1njKkKXOqH2xM45dCo1A1Ztf8sb/wRRrtAb17rVtvZ4SillMqEPf1wRwDfALWMMUeAk0Bfh0al7Hb0XByPz9xEgHcx/veANpFXSqncyp5dyvuB240xXoARkSjHh6XsEZ+UytAZVoXNyQ831VZ7SimVi9nTD7cU8DpwGyDGmJXAO2m1lpWTiAijft3GntMxTH2kKf5lijo7JKWUUlmwZ/7xByAGeBBrd/IFYLYjg1LXN3XVYf7YcoLnOwXSLtDH2eEopZS6DnvWcMuKyJsZjv/PGKP9cJ1o7cFzvDt/F53q+PJY22rODkcppZQd7BnhLjPGpFeaMsb0BhY4LiSVlZPR8YyYtYnKZYry0X31cXHRGslKKZUX2DPCHQg8bYxJxro1yB2ITmtiICJS2pEBqv8kpqTy2HebiE9K5YehLXSTlFJK5SF2TSk7PApll9FzdrLlWBQT+jeiuo+WbVRKqbzEninl/iKSeukDa5Q7KsOxygE//HuU7/89yuPtqtElqJyzw1FKKXWD7Em43Ywxc40xvsaYOsAaQAv15qDt4dG88ccO2tQoy3OdAp0djlJKqZtgT+GL+4wx/bCaFsQDD4vIModHpgC4kJDME7M2UdbTnfF9G+Kqm6SUUipPsqc9XwDwGDAXCAfuNcYUcXRgyipu8fIv2zkeFc//+jWkVDF3Z4eklFLqJtkzpbwAeFtEBgNtgGPAeodGpQD4bt1R/tx+kuc7BdK4sm4GV9cmIliNvJRSuZU9u5SbiUg0gIjYgA+MMX84Niy140Q0b8/bSbtAb4aFBDg7HJXDUm02TlyIIDwqguPREYRHRxARG0lUXAxR8TFEJcQSl5RAcmoySakpJKemMKb7SLrUauXs0JVS13DNhGuMeU5EPhKRaGNMbxH5NcPTD2LVV1YOEJuYwohZmylV1I2P7tXiFvldcmoKeyKOsO3kPvZEHGbfmaPsP3eMxJT/2k4XcnHFx7MUpYqUoGSR4lQuXZ5i7oVxd3XDzbUQbq6FCChTwYlfhVLqerIa4T4IfJT2+WtAxoTbDU24DiEivPrbdo6cu8j3Q1pQxtPD2SGpbJZiSyXs5H5WH97GpvDdbD+5n4SURABKFSlOTe/K3Fv/DqqXrUSlkr5U8PLBx7M0ri7aelGpvCyrhGuu8Xlmxyqb/LjhGH9sOcFzd9SkeUAZZ4ejssmFhIssO7CR5Qc3sfbIdi4kXMTFGAJ9qtCrXnsaVKhJg/I18S1eBmP0x0up/CirhCvX+DyzY5UN9pyK4c05O7itelkeb1/d2eGoW3QxKZ6/9/7L4r1rWXN4Gym2VLyLlaJ99aa0rlKfFpXr4VXE09lhKqVySFYJt74xJhJrNFs87XPSju36LWGM6QJ8BrgCk0VkzBXP1wKmAo2AV0VknL3n5jcJyak89cNmPD3c+Pj++nq/bR4lImwK383vYaEs3rOOhJREyhUvywMNu9ApsAVB5arhYnRqWKmCKKuEe0s3fRpjXIEvgDuw7t9db4yZIyI7M7wsEngS6HkT5+Yr4xbtYfcpq5m8T/HCzg5H3aDYxDjm7FjOD5sXceT8SYq5F6Fbndb0qNuW+uVr6jSxUuraCTcb6iQ3A/aLyEEAY8wPwN1AetIUkQggwhjT7UbPzU9W7T/L5JWHeKhFZdrX0mbyecmJ6DN8t3E+v4ct5WJSPMHlavBO18fpUKMZRd31Dyel1H/suQ/3ZlXAKpJxSTjQPLvPNcYMBYYC+Pv733iUThYdl8xzP24lwLsYr9xZ29nhKDsdjjzBN+t+Z/6uVQB0CmxJv0ZdqFdO196VUplzZMLNbA7N3s1Wdp8rIl8DXwM0adIkT23mEhFe+X07Z2MT+e3h1hRxd3V2SOo6jkWd4stVP7Fg12o8CrlxX4M7GNCkO34ltIulUiprjky44UClDMcVgRM5cG6e8fuW4/y57SQvdA6kXkUvZ4ejsnAm9jxfr/mVX7f/QyEXVx5pdhcPNe5GmWL6/00pZZ+sKk2dJ/NRpQFERK5X3Hc9UMMYUxU4DvQF+tkZ162cmycci4zjjd930LRKKYa3rebscNQ1JKYk8d3G+Uxe+ztJqcn0Ce7AkBa98PYs5ezQlFJ5TFYj3FuaIxORFGPMCGAR1q09U0RkhzFmeNrzE4wxfsAGoARgM8Y8DdQRkQuZnXsr8eQmNpvw/E9bEeDj+xroLUC51PIDmxjzzzSOR0fQvnoTnm3bH/9Sfs4OSymVR9m9S9kYUxrIuO3yulO8IjIfmH/FYxMyfH4Ka7rYrnPzi+/WHWHdoUg+6FOPSqWLOjscdYXIuAt8+M80FuxeTUCZiky891VaVK7n7LCUUnncdddw027Z+QQrMZ7D2kG8F6jl2NDyp6Pn4nh//m7a1vTmviaVrn+CyjEiwsLdq/ngn2nEJMbxWKt7Gdz8btxcHbnVQSlVUNjzm+RdoDWwWEQaGmPuAPo4Nqz8yWYTXvxlK4VcDO/3rqfFEHKR0zHneOevb1h+cBNBftUY3Xk4Nbz1DyKlVPaxJ+GmiMgZY4yLMcaIyF/GmHcdHlk+NHPdEdYetKaSy5cs4uxwVJole9cxetFEklNTeL7dQ/Rr1FU78yilsp09CTfaGFMMWAlMN8ZEADbHhpX/HIuM4/0FuwnRqeRcIzEliY+WfsfsLYup61eNMd1G6qYopZTD2JNwewIJwNPAw4AX0N2RQeU3IsJLv2zDxRjG6FRyrnD0/ClemPspuyMO07/xnTwd0k/XapVSDmXPb5iXReQVIBX4BsAY8x7wiiMDy09+2hjO6gPneK+XTiXnBgt2r+btxZNwdXHhs57P0656E2eHpJQqAOxZqOqSyWNXNhtQ13AuNpH35u+iaZVS9G2qU8nOlGJL5f2/pzJq3niql63Ijw9/oMlWKZVjsqo0NQwYDtQ0xmzK8FRxrGIVyg7vzd/NxcQU3utVDxctcOE0FxIu8sLcT1l7ZLtOISulnCKr3zg/An8D7wOjMjwek9ZWT13H6gNn+WVTOE+0r0YN3+LODqfAOnr+FE/+9iHHok7zZueh9K53u7NDUkoVQFlVmjoPnAfuNcYEAbelPbUC0IR7HQnJqbz2Wxj+pYsy8vYazg6nwFp/dAfPzfkEgIn3vkqTSnWcHJFSqqC67hquMeYJrNGuf9rHj8aYxx0dWF731dIDHDx7kXd6BlHYTdvuOcPcHcsZ/vN7lC5agpn939Fkq5RyKnsWsYYBzUQkFtJ3KK8GvnRkYHnZgTOxfLX0AD3qlyekprezwymQZm6cz4eh02nmX5ePejxLicLFnB2SUqqAsyfhGiA5w3EymTeIV1j33L7623YKu7nwWvfazg6nwBERJqz+mQlrfqFDjWaM6TYS90Juzg5LKaWy3KVcSERSgBnAWmPML2lP9QK+zYng8qLftxxn7cFI3u0VhE/xwtc/QWUbm9j48J/pfL95IT3qtuXNzkMp5KLT+Uqp3CGrEe6/QCMR+dAYEwq0wRrZDheR9TkSXR5zMTGF9+fvpn5FLx5o6u/scAqUVJuN0YsmMmfHMvo3vpPn2vXHxWg9ZKVU7pFVwk2fNk5LsJpkr+OL0P1ExCTyVf/Ges9tDrKJjbcWf82cHct4rNW9DGvZW8tnKqVynawSrrcx5tlrPSkiHzsgnjzr6Lk4Jq84RK+GFWhcuZSzwykwRIT3lkzh97ClDGvZh+GttHOkUip3yirhugKe6AYpu7zz504KuRpe6lLL2aEUGCLCh6Hf8tPWJQxqdjePtbrH2SEppdQ1ZZVwT4rIWzkWSR62ct9ZFu88zQudA/Hz0o1SOWX8ih+YtWkh/RvfyZNt+uo0slIqV8tqV4n+9rJDSqqNt+btwL90UQbfVtXZ4RQYszYtZMq/f3BP/Y483+4hTbZKqVwvq4TbIceiyMNm/XuUvadjebVbba0olUMW71nLh/98S/vqTXmlwyBNtkqpPCGrWsqRORlIXhSTkMynS/bRMqAMner4OjucAmHDsZ28Mv9z6pevwZhuI3F10Vt/rpScnEx4eDgJCQnODkWpfKtw4cJUrFgRNzf7C+tof7JbMGn5QSIvJjGqay0dZeWAI+dP8vTvH1HRy4fxvV6ksJu7s0PKlcLDwylevDhVqlTRf5dKOYCIcO7cOcLDw6la1f6lRB0e3KSICwlMWnGIbsHlqF+ppLPDyfdiEuN46rexuLq48Hnvl/Aq4unskHKthIQEypQpo8lWKQcxxlCmTJkbnkXShHuTPvt7H8mpNl7oFOjsUPK9VJuNl+Z+xrGo03zU4xkqltTp++vRZKuUY93Mz5gm3Jtw4EwsP6w/Rr/m/lQpq11oHG38iu9ZdXgrozoM1BZ7ecSpU6fo27cv1apVo06dOtx5553s3buXw4cPExQUlG3v88Ybb7BkyZJbvs748eOpXbs2Dz74IImJiXTs2JEGDRowe/ZsHn30UXbu3HnNc+fMmcOYMWNu6n2joqL48strN17LGFd2eO+99y47btWqVbZcV9lJRPLNR+PGjSUnDJ+xQeq8vkDOxCTkyPsVZKH7N0jw2Pvl7cWTnB1KnrFz506nvr/NZpMWLVrIV199lf7Y5s2bZfny5XLo0CGpW7euE6PLXGBgoBw8eFBERNasWSMhISE58r7X+35kjCuj5OTkm3q/YsWK3dR5Itb/19TU1Js+Pz/K7GcN2CDXyFE6wr1B28OjWRB2ikfbBFDW08PZ4eRrJ6LP8PqCL6nlU4UX2j/s7HCUnUJDQ3Fzc2P48OHpjzVo0IA2bdpc9rrDhw/Tpk0bGjVqRKNGjVi9ejUAJ0+eJCQkhAYNGhAUFMSKFStITU3lkUceISgoiHr16vHJJ58A8Mgjj/Dzzz8DsH79elq1akX9+vVp1qwZMTExV8U2duxYmjZtSnBwMG+++SYAw4cP5+DBg/To0YMPPviA/v37s2XLFho0aMCBAwdo164dGzZsAGDhwoU0atSI+vXr06GDdefktGnTGDFiBABnzpyhT58+NG3alKZNm7Jq1SoARo8ezaBBg2jXrh0BAQGMHz8egFGjRnHgwAEaNGjACy+8cFmsGeP65JNPGD16NEOHDqVTp048/PDDJCQkMHDgQOrVq0fDhg0JDQ1Nj6d379506dKFGjVq8OKLL6a/V3x8PA0aNEgfMXt6/rcXIrPvzeHDh6lduzaPP/44jRo14tixY/b+M1CZ0F3KN+jTJXvxKuLGo220yIUjJaem8OK8z7DZbIzr8TQehXRH8s34v7k72HniQrZes075Erx5V91rPh8WFkbjxo2vex0fHx/++usvChcuzL59+3jggQfYsGEDs2bNonPnzrz66qukpqYSFxfHli1bOH78OGFhYYA1FZtRUlIS999/P7Nnz6Zp06ZcuHCBIkWKXPaaxYsXs2/fPv79919EhB49erB8+XImTJjAwoULCQ0NpWzZsjRv3pxx48Yxb968y84/c+YMQ4YMYfny5VStWpXIyKvvnHzqqad45plnuO222zh69CidO3dm165dAOzevZvQ0FBiYmIIDAzkscceY8yYMYSFhbFly5arrnVlXKNHj2bjxo2sXLmSIkWK8NFHHwGwfft2du/eTadOndi7dy8AW7ZsYfPmzXh4eBAYGMjIkSMZM2YMn3/+eabvda3vjb+/P3v27GHq1KlZTn0r+2jCvQHbwqP4e3cEz3eqSfHC2tTckT5dPovtJ/cz7q6nqVTSz9nhKAdITk5mxIgRbNmyBVdX1/Rk0bRpUwYNGkRycjI9e/akQYMGBAQEcPDgQUaOHEm3bt3o1KnTZdfas2cP5cqVo2nTpgCUKFHiqvdbvHgxixcvpmHDhgDExsayb98+QkJC7Ip37dq1hISEpN8GUrp06ates2TJksvWey9cuJA+0u7WrRseHh54eHjg4+PD6dOn7XrfjHr06JH+h8TKlSsZOXIkALVq1aJy5crp38MOHTrg5eUFQJ06dThy5AiVKlW65nWv9b3x9/encuXKtGjR4oZjVVfThHsDPl2yj5JF3RjQqoqzQ8nXlh/YxHcb59O3YWfuCNQf9FuR1UjUUerWrZs+zZuVTz75BF9fX7Zu3YrNZqNwYasOeUhICMuXL+fPP//koYce4oUXXuDhhx9m69atLFq0iC+++IIff/yRKVOmpF9LRK67a1REePnllxk2bNhNfV32vIfNZmPNmjVXja4BPDz+W4JydXUlJSXlhmMoVuy/TZrWcmHmbvS9rvW9OXz48GXvqW6NruHaaeuxKP7ZHcGQNgE6unWgqPgY/m/x19Qo689zbfs7Oxx1E26//XYSExOZNGlS+mPr169n2bJll70uOjqacuXK4eLiwowZM0hNTQXgyJEj+Pj4MGTIEAYPHsymTZs4e/YsNpuNPn368Pbbb7Np06bLrlWrVi1OnDjB+vVW2+6YmJirkkznzp2ZMmUKsbGxABw/fpyIiAi7v66WLVuybNkyDh06BJDplHKnTp34/PPP048zm77NqHjx4pmuNdsjJCSEmTNnArB3716OHj1KYGDWtym6ubmRnJx81eO3+r1R9tERrp0+XbKXUjq6dbj3lkwhKj6GL/qMwr2Q/mGTFxlj+O2333j66acZM2YMhQsXpkqVKnz66aeXve7xxx+nT58+/PTTT7Rv3z59JLV06VLGjh2Lm5sbnp6eTJ8+nePHjzNw4EBsNhsA77///mXXcnd3Z/bs2YwcOZL4+HiKFCnCkiVLLtsU1KlTJ3bt2kXLli0Ba8PQd999h4+Pj11fl7e3N19//TW9e/fGZrOlr0FnNH78eJ544gmCg4NJSUkhJCSECRMmXPOaZcqUoXXr1gQFBdG1a1fGjh1rVyxgff+GDx9OvXr1KFSoENOmTbtsZJuZoUOHEhwcTKNGjdKTNVz7e+PqqvXhs5PJaloir2nSpIlc2k2YnTYfPU+vL1fzYpdAHm9XPduvrywLd6/mpXnjGXHb/Qxp0cvZ4eRZu3btonbt2s4OQ6l8L7OfNWPMRhFpktnrdUrZDuP/3meNbltWcXYo+dbZi1G8t2QKQX7VGNish7PDUUqpbKcJ9zp2nrhA6J4zPNomgGIeOgPvKB/+8y3xyYm80/VxCrnoNJZSKv/RhHsdE5cfoJi7K/2bV3Z2KPnWqkNbWLRnDY+26EnVMhWcHY5SSjmEJtwsHIuMY962k/Rr7o9XUd3A4wjxyYm8u2QKVUqXZ2BTnUpWSuVfmnCzMHnFQVwMDL4twNmh5FuT1/7G8egIXus4WHclK6XyNU2413AuNpHZG47Rs0EF/LwKOzucfCk86jTfbpjHXXVCaOqf8wUalFIqJ2nCvYZv1xwhIdnGsLY6unWUT5fPwtW48mRIX2eHorKZq6trevOBe++9l7i4uBs6/8o2cva0qcvYRGDChAlMnz79xgO/howt+H7//ffLyjdmbG6Q07L767xRU6ZMoV69egQHBxMUFMQff/wBOPd7ciO2bNnC/Pnz049vpdWiPTThZiIhOZXv1h6hY20fqvsUd3Y4+dKm8F38tXcdA5v1wMfz6pq0Kof4+YExV3/43Vr96iJFirBlyxbCwsJwd3fPsvhDRiKCzWa7KuF++eWXzJ8//7JiDVkZPnw4Dz+cfR2mevTowahRo4CrE64zZffXeSPCw8N59913WblyJdu2bWPt2rUEBwff8nUvVRzLLlmVtbwy4Wb8/+wImnAzMXfrCSIvJjGotXYEcgSb2BgbOgMfz9IMaNrd2eEUbNcqoH8ThfWvpU2bNuzfvx+Ajz/+mKCgIIKCgtIrT13ZAm7w4MGXtZG7sk1dZGQkPXv2JDg4mBYtWrBt27ar3nP06NGMGzcOsH6ptmjRguDgYHr16sX58+cve21qaioBAQGICFFRUbi4uLB8+fLLYr80el69ejVz5szhhRdeSG/fB/DTTz/RrFkzatasyYoVK66KZ+nSpbRt25b77ruPmjVrMmrUKGbOnEmzZs2oV69e+nXmzp1L8+bNadiwIR07dkxvcPDkk0/y1ltvAbBo0SJCQkKw2WyXfZ3t2rXjmWeeISQkhNq1a7N+/Xp69+5NjRo1eO2119K/10FBQelxjRs3jtGjR9t9fkYREREUL148vZqXp6dnemOHa31PrtWScenSpbRv355+/fpRr149Dh8+TK1atRgwYADBwcHcc8896bMkGzdupG3btjRu3JjOnTtz8uTJq2J75JFHePbZZ2nfvj0vvfQS//77L61ataJhw4a0atWKPXv2kJSUxBtvvMHs2bNp0KABs2fPvmyW5MiRI3To0IHg4GA6dOjA0aNHr3qfG3atRrl58SM7GtDbbDa587PlcsfHS8Vms93y9dTV5oQtk+Cx98ucsGXODiVfuqEG9HDtj1twqdF5cnKy9OjRQ7788kvZsGGDBAUFSWxsrMTExEidOnVk06ZNcujQITHGyJo1a646/5LKlSvLmTNnRERkxIgRMnr0aBER+fvvv6V+/foiIjJ16lR54oknRETkzTfflLFjx4qISL169WTp0qUiIvL666/LU089dVW8nTt3lrCwMJk7d640adJE3nnnHUlISJAqVapcde0BAwbITz/9lH5u27Zt5dlnnxURkT///FM6dOhw1fVDQ0PFy8tLTpw4IQkJCVK+fHl54403RETk008/TY8pMjIy/ffOpEmT0q978eJFqVOnjvzzzz9Ss2ZN2b9//1VfZ9u2beXFF19Mv2a5cuXS369ChQpy9uzZqxrejx07Vt588027z88oJSVFOnXqJJUqVZJHHnlE5syZc93vycWLFyU+Pl5ERPbu3SuXfmeHhoZK0aJF5eDBgyIicujQIQFk5cqVIiIycOBAGTt2rCQlJUnLli0lIiJCRER++OEHGThw4FXf7wEDBki3bt0kJSVFRESio6MlOTlZRET++usv6d2791X/X6887t69u0ybNk1ERL755hu5++67r3qfG21Ar5UcrrDxyHl2nLjAu72CrtsZRN245NQUvlz1E7V9q9Ktzm3ODkc5yKURKlijxMGDB/PVV1/Rq1ev9JrJvXv3ZsWKFfTo0eOGWsCtXLmSX375BbAaJZw7d47o6OhMXxsdHU1UVBRt27YFYMCAAdx7771Xva5NmzYsX76cQ4cO8fLLLzNp0iTatm2b3u7venr37g1A48aNOXz4cKavadq0KeXKlQOgWrVq6S0G69Wrl948Pjw8nPvvv5+TJ0+SlJSUPmIsWrQokyZNIiQkhE8++YRq1apl+h49evRIv2bdunXT3y8gIIBjJtyIzAAAIABJREFUx45RsmTJLL+O651fpkyZ9Ne6urqycOFC1q9f///tnXtcVNX6/98LBBEV84KmaaLmJVEYQAFTvJS3zCwry0tldiyt47HO7xWl/U4es87J0pMn7aJmXvJYejI1j1maJonmBUxUJBQNTEUTNfGGXJ/vH3uYBpyB4TIwwHq/XvvFzN5rrf08ew3zzFp77efD1q1b+etf/8q+ffssI2Zb18SeJCNAaGhogRFyq1at6NmzJwCPP/44c+fOZfDgwcTHxzNgwADAmJ3It7EwI0aMsOSCTk9PZ+zYsSQlJaGUsingUJhdu3axZs0aAJ544glefvnlYusUh1OnlJVSg5VSR5RSx5RSN02MK4O55uMHlVLBVsf+qpQ6rJSKV0p9rpSqkKXCS39MwcerFsODdAIGZ7AuPorUy2n8ueejuCl9R6O6kn8PNy4ujnnz5uHp6VmknFxJJOBstVPWH8cRERFER0ezd+9ehgwZwqVLl4iKinJYKzdfNKAoKTxrYQE3NzfLezc3N0udv/zlL0yaNIlDhw6xYMECbty4Yalz6NAhGjduTGpqarF2WLdvfY5atWpZBCCAAu07Ur8wSilCQ0OZOnUqK1eutPwQsndNrCUZY2NjycrKspQv/Bko3KdKKUQEf39/y2fr0KFDbN682ea1sG7vtddeo1+/fsTHx/O///3vJr8doTwGYE77xlNKuQMfAPcCnYFRSqnOhYrdC7Q3b88CH5nr3gZMBrqJSBfAHXD6Utaz6Tf4Jv4sj3VvhbenHvyXN1k52Xy8ew0BzdvTq42pss3RVDC9e/dm3bp1XL9+nWvXrrF27VoiIiJslrUnI5ffTv7iqaioKJo0aWJTcB6gQYMGNGzY0HIPcfny5ZbRrjVhYWH8+OOPuLm54eXlhclkYsGCBTbtK4ukXnGkp6dz223Gj/1ly5ZZ9p84cYJ//etf7N+/n2+++YY9e/aUqv1mzZpx7tw5Lly4QGZmJhs2bCi1rampqQVkEuPi4mjduuiMfPYkGW3x66+/smvXLgA+//xzevXqRceOHUlLS7Psz87O5vDhw8Xaan1dly5datlfVF/eddddrFy5EoAVK1bQq1fZZ+ScOcQIBY6JyC8ikgWsBB4oVOYB4FPz1Pdu4BalVP78QC2gjlKqFuAN2P9ZV058tucEeSI8qUUKnMKXB7fy25WL/LnXo3q63lVo1qxk+8tAcHAwTz31FKGhoYSFhTF+/HiCgoJsls2XkbP1GND06dOJjY0lICCAKVOmFAhMtli2bBmRkZEEBAQQFxfHtGnTbipTu3ZtWrVqZZnWjoiI4MqVK3Tt2vWmsiNHjmTWrFkEBQVZFjuVF9OnT2fEiBFERETQpEkTwBjR/+lPf2L27Nm0aNGCTz75hPHjx5dqlObh4cG0adMICwtj6NChdOrUqdS2Zmdn89JLL9GpUyfLoqP33nuvyDrPP/88y5YtIzw8nKNHjxY5s3HnnXeybNkyAgICuHjxIs899xyenp6sXr2aV155hcDAQEwmk2XhVVG8/PLLTJ06lZ49exYI8v369SMhIcFivzVz585lyZIlBAQEsHz58mJ9cwSnyfMppR4BBovIePP7J4AwEZlkVWYDMFNEdpjfbwVeEZFYpdQLwD+ADGCziNh8AE8p9SzG6Jjbb7895MSJE6WyNyc3j55vf0/n5j4sGRdaqjY09snKyWbIosncfsutfPLYNB1wnYiW59NUdVJSUhg6dCjx8fGVbUqRuJI8n61v1MLR3WYZpVRDjNFvG6AFUFcp9bitk4jIQhHpJiLdfH19S23sD0fT+O1yJiNDby91Gxr7bPx5J2lXf2d8+IM62Go0mhqJMwPuKaCV1fuW3DwtbK9MfyBZRNJEJBtYA9zlRFtZGXOSJvVqc3enps48TY0kT/JYGrOejk396NG67A/GazSa6o2fn5/Lj25LgzMDbgzQXinVRinlibHoaX2hMuuBJ82rlcOBdBE5A/wKhCulvJUxHLoH+NlZhp67fIPvE8/xcMhteLjrlbPlzfbjP5F8MZVx3e/Xo1uNRlNjcdpSXBHJUUpNAjZhrDJeLCKHlVITzcfnAxuBIcAx4Dowznxsj1JqNfATkAPsBxY6y9YvfzpNbp7wWLdWxRfWlJgle9fTwseXAR0de85So9FoqiNOffZFRDZiBFXrffOtXgvwZzt1/w783Zn2mc/DqphfCfVrRFvfes4+XY0j/sxx4lKP8vLdY6nl5l7Z5mg0Gk2lUePnT2NSfiflwnUe7a5Ht87gvwe+o45HbYb53/zso0aj0dQkanzAXbv/NN6e7gzpWjZ1FM3NXL5xlW8TdzLkzl7Ur+1d2eZoKpCzZ88ycuRI2rVrR+fOnRkyZEiBNH4lYfz48RZ1nsIqQvbw8/Pj/PnzpTqfoxQWAnCk/GeffVZsW7GxsUyePLlcbNS4FjU64Gbm5PL1wVQGdm6mM0s5ga/ifyAzJ5tHTQMq2xRNBSIiDB8+nL59+3L8+HESEhL45z//aVG+KSmLFi2ic2cjSZ2jAdfZlEZCrqiAa023bt2YO3duaczSuDg1OuBGHUnj8o0cHtB5k8udPMnjvwe+w9SiA52a+lW2OZoKZNu2bXh4eDBx4kTLPpPJREREBFevXuWee+4hODiYrl27WgTLi5JjyxcznzJlSgHZPoAHH3yQkJAQ/P39Wbiw+HWV9erV45VXXiEkJIT+/fuzd+9e+vbtS9u2bVm/fr3FFkck5Kz55ZdfCAoKIiYmhtzcXCIjI+nevTsBAQEsWLAAgClTphAdHY3JZGLOnDl2bYyKimLoUEO2cvr06Tz99NMWG60D8X/+8x9CQ0MxmUxMmDCh3HVkNeVPjR7WfRV3msZ1PYm4o0llm1Lt2H/qCL/+fpZnwx+qbFNqNi++CHFx5dumyQRmLVtbxMfHExISYvOYl5cXa9euxcfHh/PnzxMeHm5RqDly5AiffPIJPXv25Omnn+bDDz/kpZdestSdOXMm77//PnFW/ixevJhGjRqRkZFB9+7defjhhwso2hTm2rVr9O3bl7fffpvhw4fzt7/9je+++46EhATGjh3LsGHDaNq0Kd999x1eXl4kJSUxatQoYmNjAdi7dy/x8fG0adPGooBz5MgRRo4cyZIlSzCZTCxcuJAGDRoQExNDZmYmPXv2ZODAgcycOZPZs2eXOH9xYmIi27Zt48qVK3Ts2JHnnnuOY8eOsWrVKnbu3ImHhwfPP/88K1asqDQxeo1j1NiAe/lGNlt+Psfo0NuppZ+9LXc2JERTx6M297TXaTI1fyAivPrqq2zfvh03NzdOnz5tmWq2JcdmHXBtMXfuXNauXQvAyZMnSUpKKjLgenp6MnjwYMCQoKtduzYeHh4W0XMomYRcWloaDzzwAF9++SX+/v4AbN68mYMHD7J69WrASJyflJSEp6dnSS6Vhfvuu4/atWtTu3ZtmjZtym+//cbWrVvZt2+fRT4wIyODpk110h5Xp8YG3E3xZ8nKyeMBU4vKNqXacSM7i81HdjGgQxjenhWiqqixRxEjUWfh7+9vCTaFWbFiBWlpaezbtw8PDw/8/PwsSfhtybEVRVRUFFu2bGHXrl14e3vTt2/fYhP6e3h4WNq1J5FnLSGXl5eHl9cfn+HCyfYbNGhAq1at2LlzpyXgigjz5s1j0KBBN9lbGqxl8vKl7kSEsWPH8tZbb5WqTU3lUGOHdt/Gn+W2W+pgalW0ILOm5EQdj+VqVgZDO9uWXtNUb+6++24yMzP5+OOPLftiYmL44YcfSE9Pp2nTpnh4eLBt2zasxUZsybEVxlq2Lz09nYYNG+Lt7U1iYiK7d+8uF/tLIiHn6enJunXr+PTTTy0LogYNGsRHH31ksfPo0aNcu3atXGX97rnnHlavXs25c+cAuHjxIqUVbtFUHDUy4F65kU100nkG+d+qUw06gQ0J0TSr34hurfwr2xRNJaCUYu3atXz33Xe0a9cOf39/pk+fTosWLRgzZgyxsbF069aNFStWFJCHsyXHVhhr2b7BgweTk5NDQEAAr732mkVar6yUREIOjFHvhg0bmDNnDl999RXjx4+nc+fOBAcH06VLFyZMmGCxs1atWgQGBha5aMoROnfuzJtvvsnAgQMJCAhgwIABnDlzpkxtapyP0+T5KoNu3bpJ/uKGovgq7jQvrIzji4k96O7XqAIsqzn8fv0y93w0kSe7D+XF3qMr25waSVWU56sqcmwajTWuJM/nsmw6fBbf+rUJub1hZZtS7Yg6vo9cyWNQxx6VbYpGo9G4FDUu4GZk5bItMY1B/s1wc9PTyeXN90kxtPBpop+91ZSI6irHptFYU+MC7g9H08jIzuXeLs0r25Rqx7WsDHafOES/O7rre+MajUZTiBoXcL9L+I0GdTwIbaPv3ZY3O5MPkJWbzd3tu1e2KRqNRuNy1KiAm5cn/HD0HH06+GqheSew7VgMDevUJ+i2TsUX1mg0mhpGjYo6B0+nc/5qFnd30hlZyps8yePHlIP0bGPC3a1Gfaw0Go3GIWrUN+P3iedwU9Cng29lm1LtSPwthUsZV7jLL7CyTdG4AO7u7phMJgIDAwsIAJQX1gn+nU29evWcfo6lS5eSmppqeR8dHY2/vz8mk4mMjAybdbSkX9WjRgXcbYnnCLq9IQ3rli6nqcY+u04cAiC8teP6oBoX4swZ6NMHzp4tl+bq1KlDXFwcBw4c4K233mLq1Knl0m5FIiLk5eU5/Ty5ubk3BdwVK1bw0ksvERcXR506dYptQ0v6VQ1qTMA9d/kGh06n6+lkJ7Er5SAdfVvTuK5OlVkleeMN2LEDZswo96YvX75Mw4Z/PPM+a9Ysi3Td3//+d8AYrd15550888wz+Pv7M3DgQMvI7tixY/Tv398yWj5+/DgAV69e5ZFHHqFTp06MGTOG/CQ+fn5+vPrqq/To0YNu3brx008/MWjQINq1a8f8+fMtde3JBN555508//zzBAcHc/LkSYvd58+fp0ePHnz99dcF/CtKWnDr1q0EBQXRtWtXnn76aTIzMy02zpgxg169evH5558TGxvLmDFjMJlMzJs3j//+97/MmDHD4ldkZCRdunSha9eurFq16qZrbD3iv3jxIg8++CABAQGEh4dz8ODBMvagptwQkWqzhYSEiD1W7j0hrV/ZIAmp6XbLaErH9awbEvLuGPnXtuWVbYpGRBISEhwv7OUlAjdvXl5lssHNzU0CAwOlY8eO4uPjI7GxsSIismnTJnnmmWckLy9PcnNz5b777pMffvhBkpOTxd3dXfbv3y8iIiNGjJDly43PU2hoqKxZs0ZERDIyMuTatWuybds28fHxkZMnT0pubq6Eh4dLdHS0iIi0bt1aPvzwQxERefHFF6Vr165y+fJlOXfunPj6+oqISHZ2tqSnG98FaWlp0q5dO8nLy5Pk5GRRSsmuXbssvtStW1fOnj0roaGhsnnz5pt8TU5OFkB27NghIiLjxo2TWbNmSUZGhrRs2VKOHDkiIiJPPPGEzJkzx2Lj22+/bWmjT58+EhMTY3k/duxY+eKLL0REZPXq1dK/f3/JycmRs2fPSqtWrSQ1NVWSk5PF399fRES2bdsm9913n4iITJo0SaZPny4iIlu3bpXAwMAS95/GMWz9rwGxYidG1ZgR7veJ52jewItOt9avbFOqHQfPJJGdm0OYnk6uevzyC4weDd7exntvbxgzBpKTy9Rs/pRyYmIi3377LU8++SQiwubNm9m8eTNBQUEEBweTmJhIUlISAG3atMFkMgEQEhJCSkoKV65c4fTp0wwfPhww9HS9zbaGhobSsmVL3NzcMJlMFnk9wKKx27VrV8LCwqhfvz6+vr54eXlx6dIli0xgQEAA/fv3LyAT2Lp16wJ5mbOzs7nnnnt45513GDBggE1/C0sL7tixgyNHjtCmTRs6dOgAwNixY9m+fbulzmOPPebQtdyxYwejRo3C3d2dZs2a0adPH2JiYoos/8QTTwCGkMSFCxdIT0936Fwa51Ij5PlycvP48dgFhgY21wkZnEDc6SMoFF2bt69sUzQlpXlz8PGBGzfAy8v46+MDt95abqfo0aMH58+fJy0tDRFh6tSpTJgwoUCZlJSUm2ToMjIyLNPEtrAlW1f4mLUEX/77nJycImUCC4sV1KpVi5CQEDZt2kSfPn1s2mJLWrAo222dxx7FteNIef295xrUiBHuwdPpXMnModcdenWyMzhw+ijtmrTEx8uxLxCNi/HbbzBxIuzebfwtp4VT+SQmJpKbm0vjxo0ZNGgQixcv5urVqwCcPn3aIjFnCx8fH1q2bMm6desAyMzMtNwfLQtFyQQWRinF4sWLSUxMZObMmTbL2JIW7NSpEykpKRw7dgyA5cuX2w3YRUn39e7dm1WrVpGbm0taWhrbt28nNDTUrr29e/dmxYoVgHFvt0mTJvj4+Ngtr6k4asQI98dj5wHo0a5xJVtS/ciTPA6eSWKgFiuouqxZ88frDz4olyYzMjIs08MiwrJly3B3d2fgwIH8/PPP9OhhfF7q1avHf/7zH9zd3e22tXz5ciZMmMC0adPw8PDgiy++KLN9Y8aM4f7776dbt26YTKYCMoG2cHd3Z+XKldx///34+Pjw/PPPFzieLy04YcIE2rdvz3PPPYeXlxdLlixhxIgR5OTk0L17dyZOnGiz/aeeeoqJEydSp04dS+DOZ/jw4ezatYvAwECUUrzzzjvceuutBabQrZk+fTrjxo0jICAAb29vli1b5viF0TiVGiHPN3LhLi5n5LDxBS2IXt4kpZ3kkWWRvHnv89zv37uyzdFQNeX5qjJaWrDmouX5CpGRlctPJy7Rq32TyjalWhJ/1pgu69r8jkq2RKPRaFybah9wY09cJCs3j7v0dLJTOHLuBN4eXtzesPwW2Wg0VQktLahxlGofcHceu4CHu9LqQE7iaNoJ2vu2wk1V+4+SRqPRlIlq/y25J/kCgS1vwduzRqwPq1BEhKNpJ+jg27qyTdFoNBqXp1oH3IysXA6dSqe7Ht06hdTLaVzJvE7Hpn6VbYpGo9G4PNU64MadvEROnhDqpwOuM0hK+xWADr63V7IlGo1G4/pU64Abk3IRpSC4dcPiC2tKzInfjQQJbRq1qGRLNK5Gvjxf/pafMKKw7FxkZCT+/v5ERkYyf/58Pv30U7ttpqam8sgjj5Tapn//+992k2Y4IodXEgqr/4wfP56EhIQyt2uP9evXW67xunXrCpyrb9++2Hpc0pqUlBQ+++wzp9lXXly6dIkPP/ywVHWHDBnCpUuXiixTuN/KHXtJlqviVli84PFFu2XQnB8cyUGtKQVvbP5YIub9qbLN0BSiROIFTqJu3bo290+YMEEWL15seV+/fn25ceNGhdjUunVrSUtLc8iufHJyckp1rsJiBCWltOcVKSh84Kgt1uIHroy1YENhynLN8ilpv2nxAjO5ecJPJ36nu55Odhq//n6WVrc0q2wzNFWERYsWFZCdGzZsGNeuXSMsLIxVq1Yxffp0Zs+eDdiW5LMWXM/NzSUyMtIi87dgwQLASGXYt2/fm2T75s6dS2pqKv369aNfv35F2hUVFUW/fv0YPXo0Xbt2BeDdd9+lS5cudOnShX//+9+AfUnB1atXF5Dby8jIKDDK3Lx5Mz169CA4OJgRI0ZY0lxaS/ZZZ9PKzc2lbdu2iAiXLl3Czc3NIoIQERHBsWPHWLp0KZMmTeLHH39k/fr1REZGYjKZLFKGX3zxBaGhoXTo0IHo6Oib+mbKlClER0djMpmYM2eO3ev72GOPsXHjRku9p556ii+//PKm9t555x26du1KYGAgU6ZMASAuLo7w8HACAgIYPnw4v//+O2CMwF955ZWb7Dt8+DChoaGYTCYCAgJISkpiypQpHD9+HJPJRGRkpM2+evDBBwkJCcHf35+FCxdabPLz8+P8+fMl6rfyptou3T127irXsnIJbq31WZ3FyUtnMd1WdEo8TeXyzvfLOHIupVzb7NjUj5fvHltkGevUjgBTp05l/Pjx7Nixg6FDh1qmhuvVq0dcXBxgpCTMZ8yYMUyZMoXhw4dz48YN8vLyCuRc/uSTT2jQoAExMTFkZmbSs2dPBg4cCMD+/fs5fPgwLVq0oGfPnuzcuZPJkyfz7rvvsm3bNpo0KZgEp7BdUVFR7N27l/j4eNq0acO+fftYsmQJe/bsQUQICwujT58+NGzYkKSkJD7//HM+/vhjHn30Ub788ksef/xx3n//fWbPnk23bgUTDp0/f54333yTLVu2ULduXd5++23effddpk2bBhhqSDt27ChQx93dnQ4dOpCQkEBycjIhISFER0cTFhbGqVOnuOOOOyx17rrrLoYNG1bgGgPk5OSwd+9eNm7cyOuvv86WLVsKnGPmzJnMnj2bDRs2ALBw4UKb13fkyJGsWrWKIUOGkJWVxdatW/noo48KtPXNN9+wbt069uzZg7e3NxcvXgTgySefZN68efTp04dp06bx+uuvW3682LJv/vz5vPDCC4wZM4asrCxyc3OZOXMm8fHxls9M4b4CWLx4MY0aNSIjI4Pu3bvz8MMP07hxwTwMJe238qLaBtwDJ425+sCWOuA6g6ycbM5cvsAwfz3C1dxMvjxfabAlyVeYzZs3c/DgQVavXg0YYgRJSUl4enpaZPsAi2xfr169SmRDaGio5Qt8x44dDB8+3KLu89BDDxEdHc2wYcNsSgoWxe7du0lISLBI+WVlZVnySoN9yb6IiAi2b99OcnIyU6dO5eOPP6ZPnz50797dIX8eeughh20E+9f33nvvZfLkyWRmZvLtt9/Su3dv6tSpU6Duli1bGDdunEVGsVGjRqSnp3Pp0iWLeMPYsWMZMWJEkfb16NGDf/zjH5w6dYqHHnqI9u1tq5FZ9xXA3LlzWbt2LQAnT54kKSnppoBb0n4rL6pvwD11ifpetfBrrBVsnMG5qxcRhFt9dMpMV6a4kagrIg7kdxcR5s2bx6BBgwrsj4qKKlK2z1GspfOKsseWpGBRiAgDBgzg888/L/a81kRERDB//nxSU1OZMWMGs2bNIioqit69Hctfnm+no9fD3vUFYwp406ZNrFq1ilGjRtmsW1I5QFv2jR49mrCwML7++msGDRrEokWLaNu27U11ra9ZVFQUW7ZsYdeuXXh7e9O3b1+L7KKt8+Wf0xnTx7aotvdwD5y6RGDLW3Bz0zqQziDtmjGD0LSeXgFeas6cgT59yl0Or6rjiCTfoEGD+Oijj8jOzgbg6NGjXLt2rch2i5LAK4revXuzbt06rl+/zrVr11i7di0REUULodg7V3h4ODt37rRI9l2/fp2jR48Wa0NYWBg//vgjbm5ueHl5YTKZWLBggU07SuNn4TpFXd+RI0eyZMkSoqOjbQbkgQMHsnjxYkufXbx4kQYNGtCwYUPL/dmipArz+eWXX2jbti2TJ09m2LBhHDx4sFjf0tPTadiwId7e3iQmJrJ79+4yXYfyploG3BvZuSSeuUJAywaVbUq15fxVY8GDrw64peeNN2DHDpgxo7ItKXfy7+Hmb/kLZxxl+fLlzJ07l4CAAO666y7OFvpRMn78eDp37kxwcDBdunRhwoQJxY7cnn32We69996bFk0VR3BwME899RShoaGEhYUxfvx4goKCiqyTL7dXePGNr68vS5cuZdSoUQQEBBAeHk5iYmKxNtSuXZtWrVoRHh4OGCPeK1euWBYKWTNy5EhmzZpFUFCQZdFUcQQEBFCrVi0CAwOZM2dOkdd34MCBbN++nf79++Pp6XlTW4MHD2bYsGEW6cP8hXDLli0jMjKSgIAA4uLiLPet7bFq1Sq6dOmCyWQiMTGRJ598ksaNG9OzZ0+6dOlCZGSkzXPn5OQQEBDAa6+9ZrlejmKv38qLainP99Ovv/PQhz8y//EQBnfRSfWdwYqfvuGd75ex7fmFNPLW4tYlok4dsDHNhZcXlMM/uZbn02gqBi3PB/x85jIAXW7TgcBZnL96iVpu7txSp15lm1L1+OUXGD0azItK8PaGMWMgObly7dJoNE6lWgbcxDNXqF+7FrfdUqf4wppScfF6Og29fbRKUGlo3hx8fIxRrpeX8dfHB27VszEaTXWmWn5bHjl7hY631i/xSjmN41zNvE792noFeKn57TeYOBF27zb+6oVTGk21p9o9FiQi/Hz2MsMCdX5fZ3I1K4N6nnoGodSsWfPH6w8+KPfmS/NohkajcZzSrH+qdiPcM+k3uHIjh0631q9sU6o1VzOvU6+2d2WbobGBl5cXFy5cKNUXgkajKR4R4cKFCzaTshSFU0e4SqnBwHuAO7BIRGYWOq7Mx4cA14GnROQn87FbgEVAF0CAp0VkV3HnPHLWeIaqU3O9YMqZXM3KoIWPb2WbobFBy5YtOXXqFGlpaZVtikZTbfHy8rJkNHMUpwVcpZQ78AEwADgFxCil1ouItUbVvUB78xYGfGT+C0Yg/lZEHlFKeQIODacSzQG3QzM9wnUm1zIzqFtbTym7Ih4eHgVS3Wk0GtfAmVPKocAxEflFRLKAlcADhco8AHxqVjXaDdyilGqulPIBegOfAIhIlogULWRo5njaVZrWr02DOh7l54nmJrJys6ld6+aH3jUajUZjG2cG3NuAk1bvT5n3OVKmLZAGLFFK7VdKLVJK2VwSq5R6VikVq5SKTUtLI+X8Nfya6NWzziY7NwcPt2q35k6j0WichjMDrq0lkoVXcdgrUwsIBj4SkSDgGmAzN5yILBSRbiLSzdfXl5QL12mjBQuczvXsG2xI2F7ZZmg0Gk2VwZlDlFNAK6v3LYFUB8sIcEpE9pj3r8ZOwLVm375959k34MQ+4J3SWl1ymgDnK+50TqHUPqhJi8rZlDJRo/vCxdB+uA7VwQeoOn60tnfAmQE3BmivlGoDnAZGAqMLlVkPTFJKrcRYLJUuImcAlFInlVIdReQIcA/3gtQ5AAAIaElEQVSQQDGISIUvm1VKxdrLm1lVqA4+QPXwozr4ANoPV6I6+ADVww+nBVwRyVFKTQI2YTwWtFhEDiulJpqPzwc2YjwSdAzjsaBxVk38BVhhXqH8S6FjGo1Go9FUKZy66kVENmIEVet9861eC/BnO3XjgCr9a0aj0Wg0mnyqXaapSmBhZRtQDlQHH6B6+FEdfADthytRHXyAauBHtdLD1Wg0Go3GVdEjXI1Go9FoKgAdcO2glBqslDqilDqmlLrpkSSlVAOl1P+UUgeUUoeVUuMcrVuRlNGPFKXUIaVUnFIqtmItL2BjcT40VEqtVUodVErtVUp1cbRuRVJGP1ylLxYrpc4ppeLtHFdKqblmHw8qpYKtjrlSX5TFj6rSF52UUruUUplKqZcKHatKfVGUHy7RFw4jInortGGsqj6OkfHKEzgAdC5U5lXgbfNrX+CiuWyxdauCH+b3KUCTKtAXs4C/m193ArY6Wrcq+OEqfWG2ozdGUpp4O8eHAN9gJLUJB/a4Wl+UxY8q1hdNge7AP4CXSvJZrAp+uFJfOLrpEa5tHMkDLUB9pZQC6mEEqhwH61YUZfHDVXDEh87AVgARSQT8lFLNHKxbUZTFD5dBRLZjfEbsYTM/Oq7VF2Xxw2UozgcROSciMUB2oUNVqi+K8KPKoQOubRzJA/0+cCdGZqxDwAsikudg3YqiLH6AEYw3K6X2KaWedbaxdnDEhwPAQwBKqVCMTC8tHaxbUZTFD3CNvnAEe366Ul84QlH2VpW+sEdV64uiqFJ9obPP28aRPNCDgDjgbqAd8J1SKtrBuhVFqf0QkctATxFJVUo1Ne9PNP8arUgc8WEm8J5SKg7jR8N+jFF6VesLe36Aa/SFI9jz05X6whGKsreq9IU9qlpfFEWV6gs9wrWNI3mgxwFrzFNOx4BkjPtujtStKMriByKSav57DliLMRVV0RTrg4hcFpFxImICnsS4F53sSN0KpCx+uEpfOII9P12pLxzBrr1VqC/sUdX6wi5VrS90wLWNJQ+0MlJLjsTI+2zNrxg5njHfZ+uIkYLSkboVRan9UErVVUrVN++vCwwEbK4idDLF+qCUusV8DGA8sN08Qq9SfWHPDxfqC0dYDzxpXuUbzh/50V2pLxzBph9VrC/sUdX6wiZVsi8qe9WWq24YqxSPYqzm+//mfROBiebXLYDNGFN/8cDjRdWtan5grGA8YN4OV6YfDvjQA0gCEoE1QMMq2hc2/XCxvvgcOIOxgOUU8KdCPijgA7OPh4BuLtoXpfKjivXFreb9l4FL5tc+VbAvbPrhSn3h6KYzTWk0Go1GUwHoKWWNRqPRaCoAHXA1Go1Go6kAdMDVaDQajaYC0AFXo9FoNJoKQAdcjUaj0WgqAB1wNRqNRqOpAHTA1WgqAKXUcKWUKKU6We3rq5TaUA5tL1VKPVJMmb5KqbtK2G5fpVS6Umq/UipRKTXb6tiwomTdlFJPKaXed+AcDyqlpplf/0UpFa+U2pifAEQp1Usp9a5VeV+l1Lcl8UOjcRV0wNVoKoZRwA6MrD6VQV+gRAHXTLSIBAFBwFClVE8AEVkvIjPLwa6XgQ/Nr8cDARg5pAeZFaxeA97ILywiacCZfDs0mqqEDrgajZNRStUDemJk0CkccH2UITqfoJSar5RyU0q5m0et8WZx7b+a2zEppXYrQxB9rVKqoY1zpSilmphfd1NKRSml/DAy9/xVGULdEeaR4pdKqRjzVmQAE5EMDJGL28xtW0awSqkRZlsPKKVuShyvlLpPGQLiTQrt7wBkish5q90egDdG1qEngI0i8nuhJtcBY4qyV6NxRbRakEbjfB4EvhWRo0qpi0qpYBH5yXwsFEMH9wTwLYY8XzJwm4h0ASPHsrnsp8BfROQHpdQM4O/Ai8WdXERSlFLzgasiMtvc5mfAHBHZoZS6HdiEIdNoE3Nwbw/YUmKZBgwSkdNWtubXGw78P2CIjcDZE/jJ6v1sYDdGmr6dGIF1sI3zxQJv2rNVo3FV9AhXo3E+ozBEvjH/HWV1bK8YQuC5GDlle2GIYLRVSs1TSg0GLiulGgC3iMgP5nrLgN5lsKk/8L4ypADXY4y069soF6GUOgicBTaIyFkbZXYCS5VSzwDuVvv7Aa8A99kItgDNgbT8NyKyXESCRORxjCA9F7hXKbVaKTVHKZX/fXUOIwe4RlOl0AFXo3EiSqnGGFrDi5RSKUAk8Jj5/iTcrEMq5uAUCEQBfwYWleCUOfzxf+1VRDk3oIeImMzbbSJyxUa5aBEJALoCzymlTIULiMhE4G8Ykm9xZp/B+OFQH+hgx4YMWzYqpVoA3UXkK3O7jwGZmFWtzHUyivBNo3FJdMDVaJzLI8CnItJaRPxEpBXGlHEv8/FQs0yaG0Zg2WG+1+kmIl9iLBoKFpF04HelVIS53hPAD9xMChBifv2w1f4rGMEvn83ApPw3tgKpNSJyFHgLY8RaAKVUOxHZIyLTgPP8obV6AmOK/FOllL+NZn8G7rCx/w0MvwHqYPwoycO4twtGAHdtGTaNxgY64Go0zmUUhjC2NV8Co82vdwEzMQJIsrnsbUCUebp3KTDVXHYsMMs8xWsCZtg43+vAe0qpaCDXav//gOH5i6aAyUA38wKsBIxFVcUxH+itlGpTaP8s8+KueIx7vAfyD4jIEYwFTl8opdoVqrcdCLIa7aOUCjLX22/e9QmGPF4wxj1uMKaqv3bAXo3GpdDyfBqNptJQSr0H/E9EtpSgznbgATv3hTUal0WPcDUaTWXyT/6YKi4WpZQv8K4OtpqqiB7hajQajUZTAegRrkaj0Wg0FYAOuBqNRqPRVAA64Go0Go1GUwHogKvRaDQaTQWgA65Go9FoNBXA/wH0NddqH1lUyAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the result\n", + "plt.figure(figsize=(7.5, 5.5))\n", + "plt.plot(ab_risk*100.0, ab_rtn*100.0, label='Classic efficient frontier')\n", + "plt.plot([sr_risk*100], [sr_rtn*100], 'rs', label='Portfolio with maximum Sharpe ratio')\n", + "plt.plot([sr_risk*100, 0.0], [sr_rtn*100, 0.0], 'r-', label='Capital market line')\n", + "plt.plot(b_risk*100, b_rtn*100, 'r*', label='Benchmark portfolio')\n", + "plt.plot(tev_risk*100.0, tev_rtn*100.0, 'seagreen', label='Efficient frontier with tev constraint')\n", + "\n", + "plt.axis([min(ab_risk*100), max(ab_risk*100), min(tev_rtn*100), max(ab_rtn*100)])\n", + "plt.ylabel('Total Expected Return (%)')\n", + "plt.xlabel('Absolute Risk (%)')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this notebook, we demonstrated how to use NAG Library to solve various quadratic models in portfolio optimization. Conic optimization is usually a good choice to solve convex QCQP. It is worth pointing out that the versatility of SOCP is not just limited to the QCQP models mentioned here. It covers a lot more problems and constraints. For example, DeMiguel et al. \\cite{DGNU09} discussed portfolio optimization with norm constraint, which can be easily transformed into an SOCP problem. We refer readers to the NAG Library documentation \\cite{NAGDOC} on SOCP solver and \\cite{AG03, LVBL98} for more details." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# References\n", + "\n", + "[1] Jorion Philippe, ``_Portfolio optimization with tracking-error constraints_'', Financial Analysts Journal, vol. 59, number 5, pp. 70--82, 2003.\n", + "\n", + "[2] Roll Richard, ``_A mean/variance analysis of tracking error_'', The Journal of Portfolio Management, vol. 18, number 4, pp. 13--22, 1992.\n", + "\n", + "[3] DeMiguel Victor, Garlappi Lorenzo, Nogales Francisco J et al., ``_A generalized approach to portfolio optimization: Improving performance by constraining portfolio norms_'', Management science, vol. 55, number 5, pp. 798--812, 2009.\n", + "\n", + "[4] Numerical Algorithms Group, ``_NAG documentation_'', 2019. [online](https://www.nag.com/numeric/fl/nagdoc_latest/html/frontmatter/manconts.html)\n", + "\n", + "[5] Alizadeh Farid and Goldfarb Donald, ``_Second-order cone programming_'', Mathematical programming, vol. 95, number 1, pp. 3--51, 2003.\n", + "\n", + "[6] Lobo Miguel Sousa, Vandenberghe Lieven, Boyd Stephen et al., ``_Applications of second-order cone programming_'', Linear algebra and its applications, vol. 284, number 1-3, pp. 193--228, 1998.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.1" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "number", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/local_optimization/SOCP/portfolio_optimization_using_socp.ipynb b/local_optimization/SOCP/portfolio_optimization_using_socp.ipynb index 968792e..510ac04 100644 --- a/local_optimization/SOCP/portfolio_optimization_using_socp.ipynb +++ b/local_optimization/SOCP/portfolio_optimization_using_socp.ipynb @@ -15,8 +15,22 @@ "\n", "This notebook makes use of the `latex_envs` Jupyter extension for equations and references. If the LaTeX is not rendering properly in your local installation of Jupyter , it may be because you have not installed this extension. Details at https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/latex_envs/README.html\n", "\n", - "The notebook is also not rendered well by GitHub so if you are reading it from there, you may prefer the [pdf version instead](./static/portfolio_optimization_using_socp.pdf).\n", + "The notebook is also not rendered well by GitHub so if you are reading it from there, you may prefer the [pdf version instead](./static/portfolio_optimization_using_socp.pdf)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Note for the users of the NAG Library Mark $27.1$ onwards\n", "\n", + "At Mark $27.1$ of the NAG Library, NAG introduced two new additions to help users easily define a Quadratically Constrained Quadratic Programming (QCQP) problem. All the models in this notebook then can be solved in a much simpler way without the need of a reformulation or any extra effort. It's recommended that the users of the NAG Library Mark $27.1$ or newer should look at the [notebook on QCQP instead](./portfolio_optimization_qcqp.ipynb)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "# Introduction" ] }, @@ -1168,7 +1182,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.0" + "version": "3.8.1" }, "latex_envs": { "LaTeX_envs_menu_present": true, diff --git a/local_optimization/SOCP/static/portfolio_optimization_qcqp.html b/local_optimization/SOCP/static/portfolio_optimization_qcqp.html new file mode 100644 index 0000000..d0531e6 --- /dev/null +++ b/local_optimization/SOCP/static/portfolio_optimization_qcqp.html @@ -0,0 +1,13933 @@ + + + + + + + + + + + + + + + + +portfolio_optimization_qcqp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+

Quadratically constrained quadratic programming and its applications in portfolio optimization

+
+
+
+
+
+
+

Introduction

+
+
+
+
+
+
+

Quadratically constrained quadratic programming (QCQP) is a type of optimization problem in which both the objective function and the constraints involve quadratic functions. A general QCQP problem has the following form

+\begin{equation} +\begin{array}{ll} +\underset{x\in\Re^n}{\mbox{minimize}} & \frac{1}{2}x^TP_0x+q_0^Tx+r_0\\[0.6ex] +\mbox{subject to} & \frac{1}{2}x^TP_ix+q_i^Tx+r_i\leq0,\quad i=1,\ldots,p. +\end{array} +\end{equation}

It appears in applications such as modern portfolio theory, machine learning, engineering and control. Convex QCQP is usually handled through conic optimization, or, more precisely, second-order cone programming (SOCP) due to its computational efficiency and ability to detect infeasibility. However, using SOCP to solve convex QCQP is nontrivial task which requires extra amount of effort to transform problem data and add auxiliary variables. In this notebook, we are going to demonstrate how to use the NAG Optimization Modelling Suite in the NAG Library to define and solve QCQP in portfolio optimization.

+ +
+
+
+
+
+
+

Data Preparation

+
+
+
+
+
+
+

We consider daily prices for the 30 stocks in the DJIA from March 2018 to March 2019. In practice, the estimation of the mean return $r$ and covariance $V$ is often a nontrivial task. In this notebook, we estimate those entities using simple sample estimates.

+ +
+
+
+
+
+
In [1]:
+
+
+
# Import necessary libraries
+import pickle as pkl
+import numpy as np
+import matplotlib.pyplot as plt
+
+ +
+
+
+ +
+
+
+
In [3]:
+
+
+
# Load stock price data from stock_price.plk
+# Stock_price: dict = ['close_price': [data], 'date_index': [data]]
+stock_price = stock_price = pkl.load(open('./data/stock_price.pkl', 'rb'))
+close_price = stock_price['close_price']
+date_index = stock_price['date_index']
+
+ +
+
+
+ +
+
+
+
In [4]:
+
+
+
# Size of data, m: number of observations, n: number of stocks
+m = len(date_index)
+n = len(close_price)
+
+ +
+
+
+ +
+
+
+
In [5]:
+
+
+
# Extract stock closing prices to a numpy array
+data = np.zeros(shape=(m, n))
+i = 0
+for stock in close_price:
+    data[:,i] = close_price[stock]
+    plt.plot(np.arange(m), data[:,i])
+    i += 1
+# Plot closing prices
+plt.xlabel('Time (days)')
+plt.ylabel('Closing price ($)')
+plt.show()
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+

For each stock $i$, we first estimate the $j$th daily relative return as $$relative~return_{i,j} = \frac{closing~price_{i,j+1}-closing~price_{i,j}}{closing~price_{i,j}}.$$

+ +
+
+
+
+
+
In [6]:
+
+
+
# Relative return
+rel_rtn = np.zeros(shape=(m-1, n))
+for j in range(m-1):
+    rel_rtn[j,:] = np.divide(data[j+1,:] - data[j,:], data[j,:])
+# Plot relative return
+for i in range(n):
+    plt.plot(np.arange(m-1),rel_rtn[:,i])
+plt.xlabel('Time (days)')
+plt.ylabel('Relative return')
+plt.show()
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+

Simply take arithmetic mean of each column of relative return to get mean return $r$ for each stock, followed by estimating covariance $V$ using numpy.

+ +
+
+
+
+
+
In [7]:
+
+
+
# Mean return
+r = np.zeros(n)
+r = rel_rtn.sum(axis=0)
+r = r / (m-1)
+# Covariance matrix
+V = np.cov(rel_rtn.T)
+
+ +
+
+
+ +
+
+
+
+

Classic Mean-Variance Model

Efficient Frontier

+
+
+
+
+
+
+

One of the major goals of portfolio management is to achieve a certain level of return under a specific risk measurement. Here we demonstrate how to use NAG Library to build efficient frontier by solving classical Markowitz model with long-only constraint (meaning, buy to hold and short selling is not allowed):

+\begin{equation}\label{MV_model} +\begin{array}{ll} +\underset{x\in\Re^n}{\mbox{minimize}} & -r^Tx+\mu x^TVx\\[0.6ex] +\mbox{subject to} & e^Tx = 1,\\[0.6ex] + & x\geq0, +\end{array} +\end{equation}

where $e\in\Re^n$ is vector of all ones and $\mu$ is a scalar controling trade-off between return and risk. Note one could build the efficient frontier by varying $\mu$ from $0$ to a certain value.

+ +
+
+
+
+
+
In [8]:
+
+
+
# Import the NAG Library
+from naginterfaces.base import utils
+from naginterfaces.library import opt
+from naginterfaces.library import lapackeig
+# Import necessary math libraries
+from scipy.sparse import coo_matrix
+import math as mt
+import warnings as wn
+
+ +
+
+
+ +
+
+
+
In [9]:
+
+
+
# Input for quadratic objective
+# Sparsity pattern of upper triangular V
+irowq, icolq = np.nonzero(np.triu(V))
+v_val = V[irowq, icolq]
+# Convert to 1-based
+irowq = irowq + 1
+icolq = icolq + 1
+# Sparsity pattern of r, which is actually dense in this application
+idxr = np.arange(1, n+1)
+
+# Input for linear constraint: e'x = 1
+irowa = np.full(n, 1, dtype=int)
+icola = np.arange(1, n+1)
+a = np.full(n, 1.0, dtype=float)
+bl = np.full(1, 1.0, dtype=float)
+bu = np.full(1, 1.0, dtype=float)
+
+# Input for bound constraint: x >= 0
+blx = np.zeros(n)
+bux = np.full(n, 1.e20, float)
+
+ +
+
+
+ +
+
+
+
+

The input data is ready, we can easily build the efficient frontier as follows.

+ +
+
+
+
+
+
In [10]:
+
+
+
# Set step for mu
+step = 2001
+
+# Initialize output data: absolute risk and return
+ab_risk = np.empty(0, float)
+ab_rtn = np.empty(0, float)
+
+for mu in np.linspace(0.0, 2000.0, step):
+    # Create problem handle
+    handle = opt.handle_init(n)
+    
+    # Set quadratic objective function
+    # In qcqp standard form q should be 2*mu*V
+    q = 2.0 * mu * v_val
+    idqc = -1
+    opt.handle_set_qconstr(handle, 0.0, idqc, idxr, -r, irowq, icolq, q)
+    
+    # Set linear constraint e'x = 1
+    opt.handle_set_linconstr(handle, bl, bu, irowa, icola, a)
+    
+    # Set bound constraint
+    opt.handle_set_simplebounds(handle, blx, bux)
+    
+    # Set options
+    for option in [
+            'Print Options = NO',
+            'Print Level = 1',
+            'Print File = -1',
+            'SOCP Scaling = A'
+    ]:
+        opt.handle_opt_set(handle, option)
+        
+    # Call socp interior point solver
+    # Mute warnings and do not count results from warnings
+    wn.simplefilter('error', utils.NagAlgorithmicWarning)
+    try:
+        slt = opt.handle_solve_socp_ipm(handle)
+
+        # Compute risk and return from the portfolio
+        ab_risk = np.append(ab_risk, mt.sqrt(slt.x[0:n].dot(V.dot(slt.x[0:n]))))
+        ab_rtn = np.append(ab_rtn, r.dot(slt.x[0:n]))
+    except utils.NagAlgorithmicWarning:
+        pass
+    
+    # Destroy the handle:
+    opt.handle_free(handle)
+
+ +
+
+
+ +
+
+
+
In [11]:
+
+
+
# plot the result
+plt.plot(ab_risk*100.0, ab_rtn*100.0)
+plt.ylabel('Total Expected Return (%)')
+plt.xlabel('Absolute Risk (%)')
+plt.show()
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+

Maximizing the Sharpe ratio

+
+
+
+
+
+
+

The Sharpe ratio is defined as the ratio of return of portfolio and standard deviation of the portfolio's excess return. It is usually used to measure the efficiency of a portfolio. Find the most efficient portfolio is equivalent to solve the following optimization problem.

+\begin{equation}\label{sr_model} +\begin{array}{ll} +\underset{x\in\Re^n}{\mbox{minimize}} & \frac{\sqrt{x^TVx}}{r^Tx}\\[0.6ex] +\mbox{subject to} & e^Tx = 1,\\[0.6ex] + & x\geq0. +\end{array} +\end{equation}

By replacing $x$ with $\frac{y}{\lambda}, \lambda\gt0$, model (\ref{sr_model}) is equivalent to

+\begin{equation}\label{sr_model_eq} +\begin{array}{ll} +\underset{y\in\Re^n, \lambda\in\Re}{\mbox{minimize}} & y^TVy\\[0.6ex] +\mbox{subject to} & e^Ty = \lambda,\\[0.6ex] + & r^Ty=1, \\ + & y\geq0, \\ + & \lambda\geq0. +\end{array} +\end{equation}

Problem (\ref{sr_model_eq}) is similar to problem (\ref{MV_model}) in the sense that they both have a quadratic objective function and linear constraints.

+ +
+
+
+
+
+
In [12]:
+
+
+
# Input for linear constraint: e'y = lambda
+irowa = np.full(n+1, 1, dtype=int)
+icola = np.arange(1, n+2)
+a = np.append(np.full(n, 1.0, dtype=float), -1.0)
+bl = np.zeros(1)
+bu = np.zeros(1)
+
+# Inpute for linear constraint: r'y = 1
+irowa = np.append(irowa, np.full(n, 2, dtype=int))
+icola = np.append(icola, np.arange(1, n+1))
+a = np.append(a, r)
+bl = np.append(bl, 1.0)
+bu = np.append(bu, 1.0)
+
+# Input for bound constraint: x >= 0
+blx = np.zeros(n+1)
+bux = np.full(n+1, 1.e20, float)
+
+ +
+
+
+ +
+
+
+
+

Now we can call the NAG SOCP solver as follows.

+ +
+
+
+
+
+
In [13]:
+
+
+
# Create problem handle
+handle = opt.handle_init(n+1)
+
+# Set quadratic objective function
+# In qcqp standard form q should be 2*V
+q = 2.0 * v_val
+idqc = -1
+opt.handle_set_qconstr(handle, 0.0, idqc, irowq=irowq, icolq=icolq, q=q)
+
+# Set linear constraints
+opt.handle_set_linconstr(handle, bl, bu, irowa, icola, a)
+    
+# Set bound constraint
+opt.handle_set_simplebounds(handle, blx, bux)
+    
+# Set options
+for option in [
+        'Print Options = NO',
+        'Print Level = 1',
+        'Print File = -1',
+        'SOCP Scaling = A'
+]:
+    opt.handle_opt_set(handle, option)
+        
+# Call socp interior point solver
+slt = opt.handle_solve_socp_ipm(handle)
+
+sr_risk = mt.sqrt(slt.x[0:n].dot(V.dot(slt.x[0:n])))/slt.x[n]
+sr_rtn = r.dot(slt.x[0:n])/slt.x[n]
+sr_x = slt.x[0:n]/slt.x[n]
+
+# Destroy the handle:
+opt.handle_free(handle)
+
+ +
+
+
+ +
+
+
+
In [14]:
+
+
+
# plot result.
+plt.plot(ab_risk*100.0, ab_rtn*100.0, label='Efficient frontier')
+plt.plot([sr_risk*100], [sr_rtn*100], 'rs', label='Portfolio with maximum Sharpe ratio')
+plt.plot([sr_risk*100, 0.0], [sr_rtn*100, 0.0], 'r-', label='Capital market line')
+plt.axis([min(ab_risk*100), max(ab_risk*100), min(ab_rtn*100), max(ab_rtn*100)])
+plt.ylabel('Total Expected Return (%)')
+plt.xlabel('Absolute Risk (%)')
+plt.legend()
+plt.show()
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+

Portfolio optimization with tracking-error constraint

+
+
+
+
+
+
+

To avoid taking unnecessary risk when beating a benchmark, the investors commonly impose a limit on the volatility of the deviation of the active portfolio from the benchmark, which is also known as tracking-error volatility (TEV) \cite{J03}. The model to build efficient frontier in excess-return space is

+\begin{equation}\label{er_tev} +\begin{array}{ll} +\underset{x\in\Re^n}{\mbox{maximize}} & r^Tx\\ +\mbox{subject to} & e^Tx = 0,\\ + & x^TVx\leq tev, +\end{array} +\end{equation}

where $tev$ is a limit on the track-error. Roll \cite{R92} noted that problem (\ref{er_tev}) is totally independent of the benchmark and leads to the unpalatable result that the active portfolio has systematically higher risk than the benchmark and is not optimal. Therefore, in this section we solve a more advanced model by taking absolute risk into account as follows.

+\begin{equation}\label{tev_model} +\begin{array}{ll} +\underset{x\in\Re^n}{\mbox{minimize}} & -r^Tx+\mu (x+b)^TV(x+b)\\ +\mbox{subject to} & e^Tx = 0,\\ + & x^TVx\leq tev,\\ + & x+b\geq0, +\end{array} +\end{equation}

where $b$ is a benchmark portfolio. In this demonstration, it is generated synthetically. Note here we use the same covariance matrix $V$ for tev and absolute risk measurement for demonstration purpose. In practice one could use different covariance matrices from different markets.

+ +
+
+
+
+
+
In [15]:
+
+
+
# Generate a benchmark portfolio from efficient portfolio that maximiz the Sharpe ratio
+# Perturb x
+b = sr_x + 1.e-1
+# Normalize b
+b = b/sum(b)
+
+# Set limit on tracking-error
+tev = 0.000002
+
+# Compute risk and return at the benchmark
+b_risk = mt.sqrt(b.dot(V.dot(b)))
+b_rtn = r.dot(b)
+
+ +
+
+
+ +
+
+
+
In [16]:
+
+
+
# Input for linear constraint: e'x = 0
+irowa = np.full(n, 1, dtype=int)
+icola = np.arange(1, n+1)
+a = np.full(n, 1.0, dtype=float)
+bl = np.zeros(1)
+bu = np.zeros(1)
+
+# Input for bound constraint: x >= -b
+blx = -b
+bux = np.full(n, 1.e20, float)
+
+ +
+
+
+ +
+
+
+
In [17]:
+
+
+
# Initialize output data: TEV risk and return
+tev_risk = np.empty(0, float)
+tev_rtn = np.empty(0, float)
+
+for mu in np.linspace(0.0, 2000.0, step):
+    # Create problem handle
+    handle = opt.handle_init(n)
+    
+    # Set quadratic objective function
+    # In qcqp standard form q should be 2*mu*V
+    q = 2.0 * mu * v_val
+    r_mu = 2.0*mu*V.dot(b)-r
+    idqc = -1
+    opt.handle_set_qconstr(handle, 0.0, idqc, idxr, r_mu, irowq, icolq, q)
+    
+    # Set quadratic constraint
+    # In qcqp standard form q should be 2*V
+    q = 2.0 * v_val
+    idqc = 0
+    opt.handle_set_qconstr(handle, -tev, idqc, irowq=irowq, icolq=icolq, q=q)
+    
+    # Set linear constraint e'x = 1
+    opt.handle_set_linconstr(handle, bl, bu, irowa, icola, a)
+    
+    # Set bound constraint
+    opt.handle_set_simplebounds(handle, blx, bux)
+    
+    # Set options
+    for option in [
+            'Print Options = NO',
+            'Print Level = 1',
+            'Print File = -1',
+            'SOCP Scaling = A'
+    ]:
+        opt.handle_opt_set(handle, option)
+        
+    # Call socp interior point solver
+    # Mute warnings and do not count results from warnings
+    wn.simplefilter('error', utils.NagAlgorithmicWarning)
+    try:
+        slt = opt.handle_solve_socp_ipm(handle)
+
+#       Compute risk and return from the portfolio
+        tev_risk = np.append(tev_risk, mt.sqrt((slt.x[0:n]+b).dot(V.dot(slt.x[0:n]+b))))
+        tev_rtn = np.append(tev_rtn, r.dot(slt.x[0:n]+b))
+    except utils.NagAlgorithmicWarning:
+        pass
+    
+    # Destroy the handle:
+    opt.handle_free(handle)
+
+ +
+
+
+ +
+
+
+
In [18]:
+
+
+
# Plot the result
+plt.figure(figsize=(7.5, 5.5))
+plt.plot(ab_risk*100.0, ab_rtn*100.0, label='Classic efficient frontier')
+plt.plot([sr_risk*100], [sr_rtn*100], 'rs', label='Portfolio with maximum Sharpe ratio')
+plt.plot([sr_risk*100, 0.0], [sr_rtn*100, 0.0], 'r-', label='Capital market line')
+plt.plot(b_risk*100, b_rtn*100, 'r*', label='Benchmark portfolio')
+plt.plot(tev_risk*100.0, tev_rtn*100.0, 'seagreen', label='Efficient frontier with tev constraint')
+
+plt.axis([min(ab_risk*100), max(ab_risk*100), min(tev_rtn*100), max(ab_rtn*100)])
+plt.ylabel('Total Expected Return (%)')
+plt.xlabel('Absolute Risk (%)')
+plt.legend()
+plt.show()
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+

Conclusion

+
+
+
+
+
+
+

In this notebook, we demonstrated how to use NAG Library to solve various quadratic models in portfolio optimization. Conic optimization is usually a good choice to solve convex QCQP. It is worth pointing out that the versatility of SOCP is not just limited to the QCQP models mentioned here. It covers a lot more problems and constraints. For example, DeMiguel et al. \cite{DGNU09} discussed portfolio optimization with norm constraint, which can be easily transformed into an SOCP problem. We refer readers to the NAG Library documentation \cite{NAGDOC} on SOCP solver and \cite{AG03, LVBL98} for more details.

+ +
+
+
+
+
+
+

References

[1] Jorion Philippe, ``Portfolio optimization with tracking-error constraints'', Financial Analysts Journal, vol. 59, number 5, pp. 70--82, 2003.

+

[2] Roll Richard, ``A mean/variance analysis of tracking error'', The Journal of Portfolio Management, vol. 18, number 4, pp. 13--22, 1992.

+

[3] DeMiguel Victor, Garlappi Lorenzo, Nogales Francisco J et al., ``A generalized approach to portfolio optimization: Improving performance by constraining portfolio norms'', Management science, vol. 55, number 5, pp. 798--812, 2009.

+

[4] Numerical Algorithms Group, ``NAG documentation'', 2019. online

+

[5] Alizadeh Farid and Goldfarb Donald, ``Second-order cone programming'', Mathematical programming, vol. 95, number 1, pp. 3--51, 2003.

+

[6] Lobo Miguel Sousa, Vandenberghe Lieven, Boyd Stephen et al., ``Applications of second-order cone programming'', Linear algebra and its applications, vol. 284, number 1-3, pp. 193--228, 1998.

+ +
+
+
+
+
+
In [ ]:
+
+
+
 
+
+ +
+
+
+ +
+
+
+ + diff --git a/local_optimization/SOCP/static/portfolio_optimization_qcqp.pdf b/local_optimization/SOCP/static/portfolio_optimization_qcqp.pdf new file mode 100644 index 0000000..dfcb20e Binary files /dev/null and b/local_optimization/SOCP/static/portfolio_optimization_qcqp.pdf differ diff --git a/local_optimization/SOCP/static/portfolio_optimization_using_socp.html b/local_optimization/SOCP/static/portfolio_optimization_using_socp.html index 1f984cc..f6773ab 100644 --- a/local_optimization/SOCP/static/portfolio_optimization_using_socp.html +++ b/local_optimization/SOCP/static/portfolio_optimization_using_socp.html @@ -13164,6 +13164,21 @@

Correct Rendering of this notebook

This notebook makes use of the latex_envs Jupyter extension for equations and references. If the LaTeX is not rendering properly in your local installation of Jupyter , it may be because you have not installed this extension. Details at https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/latex_envs/README.html

The notebook is also not rendered well by GitHub so if you are reading it from there, you may prefer the pdf version instead.

+ + + + +
+
+
+

Note for the users of the NAG Library Mark $27.1$ onwards

At Mark $27.1$ of the NAG Library, NAG introduced two new additions to help users easily define a Quadratically Constrained Quadratic Programming (QCQP) problem. All the models in this notebook then can be solved in a much simpler way without the need of a reformulation or any extra effort. It's recommended that the users of the NAG Library Mark $27.1$ or newer should look at the notebook on QCQP instead.

+ +
+
+
+ diff --git a/local_optimization/SOCP/static/portfolio_optimization_using_socp.pdf b/local_optimization/SOCP/static/portfolio_optimization_using_socp.pdf index 7092358..74d3674 100644 Binary files a/local_optimization/SOCP/static/portfolio_optimization_using_socp.pdf and b/local_optimization/SOCP/static/portfolio_optimization_using_socp.pdf differ