{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Whitelist portfolio simulation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "from simple_back_test import *\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "pd.core.common.is_list_like = pd.api.types.is_list_like\n",
    "import numpy as np\n",
    "from plotnine import *\n",
    "import logging\n",
    "\n",
    "logging.basicConfig(format='%(message)s', level=logging.DEBUG)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_data = get_model_data()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Generate prices from predcted and actual streams"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "stream_prices = (generate_prices_for(model_data,\n",
    "        artist_advance_fraction=0.8,\n",
    "        payment_per_stream=5e-3,\n",
    "        pop_5_slippage=0.15,          # Penalises both predicted and actual streams\n",
    "        execution_slippage=0.1,       # Penalises only actual streams (How does it take to sign up the artist)\n",
    "        clip_individual_returns=3))   # Clip extreme positive returns so they don't skew the results too much"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Limit to our range"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "min_price = 5e3\n",
    "max_price = 10e3\n",
    "stream_prices = stream_prices >> mask(X.open_price >= min_price, X.open_price <= max_price)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Randomly generated events\n",
    "\n",
    "We create a series of tracks drawn from the existing ones but distributed over the desired period with a specific number per day (on average). Note that this is with replacement so each track will be used several times"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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3nmprgUAACAjEgpAkyZN0nPPPZfqWgAAADIioY/AhgwZojlz5mjfvn266KKLdMwxx7QbM378+KSLAwAASIeEAtC1114rSdq9e7eeeuqpdve7XK68+UFIAADAPAkFoJ07d6a6DgAAgIxJKAD16dMn1XUAAABkTEIBqK6uLu6Y3r17JzI1AABA2iUUgPr27SuXyxVzDN8DBAAAclVCAej3v/99u2PffvutXnrpJW3btk333HNP0oUBAACkS0IBaMKECRGP33jjjfrJT36irVu3atKkSUkVBgAAkC4J/SDEWMaMGaMnn3wy1dMCAACkTMoD0Ouvv67S0tJUTwsAAJAyCX0EVlNT0+6Y1+vV9u3btWXLFv37v/970oUBAACkS0IBKNLvASstLVVVVZUWL16sG264IenCAAAA0oWfBA0AAIyT9PcAWZalhoYGWZaVinoAAADSLuEA9Morr2jUqFEqKyvTMccco7KyMo0ePVqvvfZaKusDAABIuYQ+Anv55Zd1ySWX6OSTT9bPfvYz9ezZU19++aVWr16t0aNH64UXXtCFF16Y6loBAABSIqEANGfOHF1yySV65pln2vxKjLlz5+qyyy7TnDlzCEAAACBnJfQR2Hvvvaebb7653e8Dc7lcuvnmm/V///d/KSkOAAAgHRIKQB07dtTnn38e8b69e/eqY8eOSRUFAACQTgkFoHHjxmn27Nlav359m+MvvfSSbrvtNl166aUpKQ4AACAdEvoeoAULFui9997TD37wA1VUVKhHjx7at2+fGhoadM4552jBggWprhMAACBlEgpAXbp00RtvvKF169Zpy5YtOnDggI499lidf/75GjNmjAoKUv4rxgAAAFImoQC0ceNG1dXVadq0aRo3blyb+x577DH16dNHI0eOTEmBAAAAqZbQWzVz5szRvn37It739ddfa86cOUkVBQAAkE4JBaAPPvhAgwcPjnjf2WefrQ8++CCpogAAANIpoQDkcrn017/+NeJ9Bw4ckN/vT6ooAACAdEooAH3/+9/XokWL2v0CVMuytHjxYn3/+99PSXEAAADpkNA3Qc+fP18jR47U6aefrqlTp6pXr1764osv9N///d/65JNPVFtbm+IyAQAAUiehd4DOPfdcbdy4URUVFfrpT3+qyZMna/bs2ercubM2btyoIUOGpLrOnDZx4kTH59TU1GTknGTO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VFNTo3379mnjxo36j//4j+CYyspKVVZWBm97PJ60b2C/358zTxLLsnKmloBc6k9ALvYpgH7Zl4u9knK3X1Ju9ixX+0WvnMnFfkWTdwFIkm666SYtXLhQU6dOVXl5uSZNmqQzzjgj22UBAIA8kZcBqGPHjpo9e3a2ywAAAHkq7/4ZPAAAQLIIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwjsuyLCvbReQzj8ejNWvWaMKECaqsrMx2OTmH/jhDv+yjV87RM/volTNGj907AAASHUlEQVT52C/eAUqSx+PRsmXL5PF4sl1KTqI/ztAv++iVc/TMPnrlTD72iwAEAACMQwACAADGKZw3b968bBeR78rKyjR48GCVl5dnu5ScRH+coV/20Svn6Jl99MqZfOsX3wQNAACMw0dgAADAOAQgAABgnKJsF5ColpYWLV26VO+++64aGhpUWVmpK6+8UiNGjJAk7d69W7/61a+0a9cu9ezZUzfffLNOOeWU4H2//e1v9emnn6qhoUGrV69WcXFxcO6ZM2fq66+/brNWVVWVfvWrX0WtZ926dVq9erWampo0aNAgzZo1K/g56Lp167Rp0ybt2rVL5557rm699da41/f444/rxRdfVGtrq4YNG6bp06erqKgoeN8f//hH7dmzR5dffrmmTJmS9z1auHCh3nrrLTU1NalTp066+OKLVV1dnfYe5WOvHn74Yb366qvBa5WkRYsWqVu3bgnNl8j+zKd+he8jr9erwYMHa86cOVHnS+Xeyrd+ffHFF1q6dKn+8pe/qLy8XFdddZUuvvjimNd3NPcr3nxbtmzRs88+q88++0x9+/bVAw88EPf6Uvl8TGevGhoatHTpUv35z3+WJJ122mm66aab1KVLl6j1bN26VY899pgOHjyoAQMG6Mc//rG6du2aE71qx8pTTU1N1uOPP259+eWXlt/vtz744APrqquusrZv3261tLRYN9xwg7V69WrL6/VamzZtsq655hqroaHBsizL2rNnj7V+/XrrzTfftMaOHWsdOXIk5lq33HKL9eSTT0a9/5133rEmTZpk7dixw2psbLTuvvtu6xe/+EXw/q1bt1pvvPGGtWTJEuvnP/953Gtbv369deONN1pfffWVdfDgQeuWW26x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ofL2V2Hs379fN9xwgzp06KDCwsLg8SuuuELV1dXatWuXFi5cqF27dqlHjx66+eabdeqpp0qS9u3bpxtvvLHdnM8++2zw66efflq1tbV65JFHbNUT+FkFhw8f1qBBg/Qv//IvwY24cuVKPfnkk23Gjxo1Sv/6r/8acS7LsrRixQq9+OKL8vv9uuCCC9r8XI2HH35YmzZtanPO1VdfrYkTJ+Zljw4fPqx7771XO3bsUGtrq4499lhdeOGFGj9+vFwuV1p7lG+9kqTZs2dr9+7dam1tVWVlpX74wx/qBz/4QcLzOd2fUn71S/ruDwiPx6Pbbrst7lyp3ltSfvVr+fLlWr9+vXw+n0466STdcMMNOuGEE6LOdbT3K958GzdubDfPqaeeqnvvvTfqnKl8PqazV/v379evf/1rbd++Xa2trerbt6+uu+469evXL+q1bdmyRcuXL9eBAwc0cODANj8HKNu9Cpe3AQgAACBRef0RGAAAQCIIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAI4qb731llwuV/C3ltv1zDPPBH+7NYCjHwEIAEQAAkxDAAIAAMYhAAEIeuaZZ3TWWWeptLRUPXv21MyZM3Xo0CFJUm1trVwul1544QWNHz9ebrdbvXr1ivibnLdv365LL71UnTt3ltvt1pgxY7Rjx442Y1wul37+859r7ty56tGjhyorKzVt2jQ1NjY6qvnuu+9Wz5491bFjR40fP1779+9vN+bBBx/UOeeco86dO6t79+764Q9/qE8++SR4/9SpU7V8+XJ98MEHcrlccrlcmjp1avD+N954Q6NGjZLb7Vbnzp01ceLEiOsAyB8EIACSpGeffVbjx4/XySefrKefflq33367fve73+myyy5rM2769Ok68cQTtXbtWk2ePFm33Xabli5dGrz/s88+09ChQ/Xtt9/qscce08qVK/X1119r9OjROnLkSJu5Fi5cqE8//VTLly/X7bffrpUrV+quu+6yXfPChQt1++2369prr9WaNWt0/PHHa/r06e3G7d27V7NmzdL//M//6De/+Y1aW1uDNUrS7bffrksuuUQnnHCC3njjDb3xxhu6/fbbJX0XfkaMGKHOnTvrqaee0q9//Wtt27ZN48aNs10ngBxkAYBlWWeddZb1D//wD22OrVy50pJkbd682dq8ebMlybr22mvbjJk8ebJVVVVl+f1+y7Is60c/+pF1/PHHW01NTcEx+/fvt9xut7Vo0aLgMUnWOeec02auSZMmWSeeeKKten0+n3Xccce1q+eaa64J1hztvMOHD1sdO3a0Hn300eDxKVOmWKecckq78RdccIE1dOhQq7W1NXjs/ffft1wul/X888/bqhVA7uEdIAA6dOiQ/vznP6u6urrN8SuvvFJFRUV67bXXgscuv/zyNmPGjx+vvXv3au/evZKkl156SZdeeqmKiork8/nk8/nUpUsXnXHGGdq2bVubcy+++OI2twcOHBicJ569e/fqiy++aFfPFVdc0W7sH/7wB1100UXq2rWrioqKVF5erkOHDrX5GCySw4cPa+vWrbryyivl9/uD19O/f3/16tWr3fUAyB8EIAA6ePCgLMtSz5492xwvKipS165dgx8VSVL37t3bjAnc/vLLLyVJHo9HDz/8sDp06NDmv9dff1179uxpc+4xxxzT5nZxcXG7j8miCawXXk+PHj3a3K6rq9PFF18sv9+vRx99VFu3btW2bdvUvXt3NTc3x1zjwIED8vv9+slPftLuer744ot21wMgfxRluwAA2XfMMcfI5XJp3759bY77fD598803OvbYY4PHwr/5N3C7V69ekqRjjz1WY8aM0YwZM9qt06lTp5TVHFgvvJ7wa/jf//1fHTp0SGvXrg0GLp/P1ybURRPoy3/+53+2+14oSaqsrEy0fABZRgACoI4dO+rMM8/UqlWr9G//9m/B42vWrJHP59OwYcOCx55++uk2HzutXbtWxx13nKqqqiRJF154od5//32dddZZKiwsTFvNVVVV6tWrV7t6Vq9e3WZcU1OTXC6XOnToEDy2atUq+Xy+NuOKi4vbvSPkdrt17rnnavv27br77rvTcBUAsoUABECSNG/ePF122WW65pprNGXKFH322Wf62c9+ptGjR2vEiBHBn6y8adMm3Xrrrbrooov08ssv6/HHH9eiRYtUUPDdJ+rz58/XOeeco3/8x3/U9OnT1aNHD3311Vd65ZVXNGzYMF1zzTUpqbewsFCzZ8/Wj3/8Y/Xo0UMXXXSR1q9fr1dffbXNuFGjRkmSpk2bpptuukkffvihHnjggXYfvw0YMEC//e1v9cQTT6hfv36qrKxU3759tWDBAo0aNUpXXXWVrr76anXp0kV79+7Vyy+/rGnTpmnEiBEpuR4AGZbt78IGkDvWrl1rnXnmmVZxcbHVvXt3a8aMGVZDQ4NlWVbwX4GtW7fOGjt2rFVeXm716NHDuuuuu9rN88knn1jV1dVW165drZKSEqtv377Wj370I+v9998PjpFkLViwoM15CxYssJy8LLW2tlrz58+3unfvbpWXl1vjxo2z1q1b1+5fgS1fvtw64YQTrNLSUmvIkCHWm2++afXp08eaOXNmcMxf//pX6+qrr7a6du1qSbKmTJkSvG/btm3WJZdcYnXu3NkqKyuz+vXrZ/3zP/+ztWfPHtu1AsgtLsuyrKwmMAB5oba2ViNHjtS2bds0ePDgbJcDAEnhX4EBAADj8D1AAHKS3+9XrDeoi4p4+QKQOD4CA5CT+vbtq927d0e9n5cuAMngr1AActJzzz1n+4ciAoBTvAMEAACMwzdBAwAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACM8/8AHT69sEs6GvIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<ggplot: (-9223363261488740152)>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "duration_days = 365       # How long is the simulated backtest period?\n",
    "new_streams_per_date = 3  # How many artists can we sign per day\n",
    "randomly_generated_events = generate_random_draws(stream_prices,\n",
    "        new_streams_per_date=new_streams_per_date,\n",
    "        duration_days=duration_days)\n",
    "\n",
    "ggplot(randomly_generated_events, aes('open_date')) + geom_bar()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "capital = 500e3\n",
    "ps= execute_backtest(randomly_generated_events, capital) >> arrange('Date')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>day</th>\n",
       "      <th>Positions</th>\n",
       "      <th>Position_Size</th>\n",
       "      <th>Cash</th>\n",
       "      <th>Portfolio_worth</th>\n",
       "      <th>Skipped tracks</th>\n",
       "      <th>Portfolio_return</th>\n",
       "      <th>Cumulative_portfolio_return</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-04-06</th>\n",
       "      <td>2018-04-06</td>\n",
       "      <td>461</td>\n",
       "      <td>12</td>\n",
       "      <td>84725.776581</td>\n",
       "      <td>1.621207e+06</td>\n",
       "      <td>1.705932e+06</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.001370</td>\n",
       "      <td>2.411865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-04-07</th>\n",
       "      <td>2018-04-07</td>\n",
       "      <td>462</td>\n",
       "      <td>11</td>\n",
       "      <td>79038.564543</td>\n",
       "      <td>1.640439e+06</td>\n",
       "      <td>1.719477e+06</td>\n",
       "      <td>0</td>\n",
       "      <td>0.007940</td>\n",
       "      <td>2.438955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-04-08</th>\n",
       "      <td>2018-04-08</td>\n",
       "      <td>463</td>\n",
       "      <td>5</td>\n",
       "      <td>36490.713060</td>\n",
       "      <td>1.714646e+06</td>\n",
       "      <td>1.751137e+06</td>\n",
       "      <td>0</td>\n",
       "      <td>0.018412</td>\n",
       "      <td>2.502273</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-04-09</th>\n",
       "      <td>2018-04-09</td>\n",
       "      <td>464</td>\n",
       "      <td>3</td>\n",
       "      <td>23393.330882</td>\n",
       "      <td>1.729732e+06</td>\n",
       "      <td>1.753125e+06</td>\n",
       "      <td>0</td>\n",
       "      <td>0.001136</td>\n",
       "      <td>2.506250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-04-10</th>\n",
       "      <td>2018-04-10</td>\n",
       "      <td>465</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.764668e+06</td>\n",
       "      <td>1.764668e+06</td>\n",
       "      <td>0</td>\n",
       "      <td>0.006584</td>\n",
       "      <td>2.529336</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 Date  day  Positions  Position_Size          Cash  \\\n",
       "2018-04-06 2018-04-06  461         12   84725.776581  1.621207e+06   \n",
       "2018-04-07 2018-04-07  462         11   79038.564543  1.640439e+06   \n",
       "2018-04-08 2018-04-08  463          5   36490.713060  1.714646e+06   \n",
       "2018-04-09 2018-04-09  464          3   23393.330882  1.729732e+06   \n",
       "2018-04-10 2018-04-10  465          0       0.000000  1.764668e+06   \n",
       "\n",
       "            Portfolio_worth  Skipped tracks  Portfolio_return  \\\n",
       "2018-04-06     1.705932e+06               0         -0.001370   \n",
       "2018-04-07     1.719477e+06               0          0.007940   \n",
       "2018-04-08     1.751137e+06               0          0.018412   \n",
       "2018-04-09     1.753125e+06               0          0.001136   \n",
       "2018-04-10     1.764668e+06               0          0.006584   \n",
       "\n",
       "            Cumulative_portfolio_return  \n",
       "2018-04-06                     2.411865  \n",
       "2018-04-07                     2.438955  \n",
       "2018-04-08                     2.502273  \n",
       "2018-04-09                     2.506250  \n",
       "2018-04-10                     2.529336  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>average_positions</th>\n",
       "      <th>average_position_size</th>\n",
       "      <th>average_portfolio_return</th>\n",
       "      <th>portfolio_std</th>\n",
       "      <th>cumulative_return</th>\n",
       "      <th>max_drawdown</th>\n",
       "      <th>sharpe</th>\n",
       "      <th>annualised_ret</th>\n",
       "      <th>annual_volatility</th>\n",
       "      <th>sortino</th>\n",
       "      <th>downside_risk</th>\n",
       "      <th>tail_risk</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>101.075269</td>\n",
       "      <td>718059.079655</td>\n",
       "      <td>0.002752</td>\n",
       "      <td>0.007902</td>\n",
       "      <td>2.529336</td>\n",
       "      <td>-0.03364</td>\n",
       "      <td>5.528638</td>\n",
       "      <td>0.98068</td>\n",
       "      <td>0.125448</td>\n",
       "      <td>24.755389</td>\n",
       "      <td>0.028016</td>\n",
       "      <td>6.920876</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   average_positions  average_position_size  average_portfolio_return  \\\n",
       "0         101.075269          718059.079655                  0.002752   \n",
       "\n",
       "   portfolio_std  cumulative_return  max_drawdown    sharpe  annualised_ret  \\\n",
       "0       0.007902           2.529336      -0.03364  5.528638         0.98068   \n",
       "\n",
       "   annual_volatility    sortino  downside_risk  tail_risk  \n",
       "0           0.125448  24.755389       0.028016   6.920876  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ps['Portfolio_return'] = ps['Portfolio_worth'].pct_change()\n",
    "ps['Cumulative_portfolio_return'] = ps['Portfolio_worth']/ps['Portfolio_worth'][0] - 1\n",
    "display(ps.tail())\n",
    "portfolio_summary_stats = calculate_portfolio_summary_stats(ps)\n",
    "display(portfolio_summary_stats)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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v/22dfjwYau0tNT65ptvrKFDh1p79uyxzpw5Y40cOdJasWKFVVxcbGVmZlp//OMfrby8PMuyLOvQoUPW2rVrrc8//9waMGCAdfr06YvONXbsWGvp0qXlPv7FF19Yw4YNs/bv32/l5+dbzz77rDV9+nTv41u2bLE+/fRT6/XXX7f+67/+65K9rV271rr33nutnJwc66233rIefPBB6+233/b2uGjRIuuzzz6zBg8ebP35z38Oih5zcnKsoqIiy7Is6+jRo9aoUaOsTZs2XbLHI0eOWL/88ov1yCOPWBMmTPCu58KFC63BgwdbEyZMsP72t78F1Xq+8sor1oIFCy46x8XGmzJlijVmzBhvr0uXLrUGDx5sPffcc9YLL7wQVL2WVVJSYt11111WZmZmueOdu65jx461Fi5c6H2tfvTRR9aqVausm2++2Xr55ZeD6rVaUlJiPfDAA9ayZcuskpIS69tvv7X+8Ic/WLt27QrZfi813o4dO6xNmzZZy5Yts8aOHXvRuS709avK5/Krr75qTZo0ycrLy7MKCwut559//qLvn4cOHbKGDBli7dixwyoqKrJef/11a8KECZXudffu3db8+fOtSZMmWS+//LL3fXj58uXW5s2brSFDhlgPPvhgUPT4ww8/WPn5+ZZlWdbJkyetiRMnWitXrrxkj6G4nosXL76s76eXO15Fnx8XUm0OEcbGxmrYsGGqX7++IiIi1KZNG7Vu3Vp79uzRrl27dPr0ad1yyy2Kjo5Wr169VK9ePX3yySeSpIYNG6pfv35KTU295DwHDx7Ud999p969e5f7MZmZmerTp4+aNm2q+Ph4DRs2TJs3b9bp06clSV26dNG1116rpKSky+pt3bp1uvnmm5WamqoRI0bo9ttv1/r16709JiQkeHe1WrZsGRQ9pqamKiYmxvvxDodDP/744yV7rFevnmrWrKk//OEP+umnn7zreeedd6pt27Y6ffq0fv7556Baz4o6d7w777xTP/74o5KTkxUREaGhQ4eqbdu2Kiws1MmTJ4O21y+++EJFRUXq0qVLueOdu65DhgzRxo0bva/Vvn376pZbblGtWrV07NixoHqt/vDDDzp69KgGDx6syMhINW/eXNdee60++uijkO33UuN17NhRXbt29f4UfymBfC4fOXJEnTt3Vo0aNRQbG6vu3bsrJyen3No2bNiga665Rh07dlRMTIyGDRumvXv36vDhw5XqtXXr1ho+fLjuuecebdmyRc2aNVPr1q0VFRWl+Ph4WZalhg0bBkWPDRo08Pmtu0u9D4fyelaU6efHhVSbgHWuoqIifffdd0pLS9PBgweVlpamiIh/t9ukSRMdPHiwwuOuW7dOHTp0uOjhn5ycHDVp0sR7Oy0tTW63+6JP7Is5ePCgGjdu7L3dpEkTuVwuHTt2zKfHhIQEORwOn4+zs8eFCxfqtttu0z333KOioiL16tWrwj3m5+dL+vd6JiQkKDc3N+jWc+3atUpPT1dGRsZFvwFfznieXmvWrKmCgoKg69Vj/fr16tatm0+QPtel1lU6229ubq6SkpKC6rXqdrslSVaZX7S2LEvZ2dnljhfs/ZoWyOdy//799dlnnyk3N1cFBQXauHGjOnXqdNm1JSYmqm7duhf9Jn4x5fWalZXl8z5cs2ZNv9+Hq6LHDz74QEOHDtXtt9+urKws/fa3v61wj6Gyntu3b9ewYcM0atQorVy50vsa9ne8yqqWAcuyLM2cOVMtWrTQ1VdfrcLCQiUkJPh8TEJCggoLCys0bmlpqTZu3Ki+ffte9OOKiop85nM4HIqPj6/wfOWN5/n3nDlzfHo897i63T3eddddWr58uV5++WX17NnzvDW4nB4LCwt91rN27doqKSkJqvUcMGCA5s6dq0WLFunee+/VggULvD/FVXS8sr3Wr19fpaWlQdWrR25urj7//PMKj1d2XaV/v1aTkpJUr169oHqtNmzYUMnJyXrnnXd05swZ7du3T1u3blVxcXHI9mtaIJ/LLVq0kNvt1h133KH09HQdP378oud1FhUVnXfNJH++tmXHO7fXuLg4LVq0yOd9uOw5QBWdsyp6/N3vfqdly5bptdde0w033KDatWtXqMdQWc+uXbtqzpw5WrRokR599FGtXbtW//M//+P3eCZUu4BlWZZee+01HTt2TOPHj/e+CAoKCnw+rqCgQHFxcRUae9u2bSopKdG1117rvW/58uUaMmSIhgwZIs81W2NjY/2e77XXXvOO99prr11wPM9Pw7m5uT49lpSUBF2PDodDLVq0UFRUlP7+979fdo+ef8fGxp63nlFRUUG1ns2aNVNSUpIiIyPVrl079e/fX1u2bKnweBfqNTIyMqh69di4caOuuOIKtWrVyntfRdY1Li7O57Xatm3boHutRkVF6YknntCuXbs0fPhwvfXWW+rTp4/3kEEo9lsZdj+XX3jhBf3qV7/S3//+dy1fvlwdO3bUU089Jens89FT2+jRo8utLT8//7Lmu5xeLctSfn6+Tp065fM+fObMmaDssWHDhmrUqJHmzp172T166g+F9UxNTVWdOnUUERGh5s2ba8iQId73YdPPj8tVbX6LUDr7hJ87d64OHDigZ555RrGxsZLOfuFXrVolt9vt3c7MysrSjTfeWKHx161bp+7du/v8hOJZtLLS0tKUlZWlHj16SDq7FRkREaEGDRpcco5Ro0Zp1KhRPvelpqYqKytLrVu39r5JR0VF6emnn/bpMT8/3+dwRjD16Ha7vce2L9Wjp/Y6depo0aJF561nUlKSvvnmm6BdT4fD4V2Hyx3P4XDogw8+UFZWlk+v8fHxysnJCbpe169ff95uyeWua0pKiuLj431eq2+++ab344Pptdq4cWNNnTrV+/EvvfSSN1SGYr+VYfdzOScnR/fdd59312HAgAFavny5cnNz1bNnT+9vjJetrezh3FOnTsnlciktLa3SvVqWpZdeekmSNHnyZJ/34ZMnT/r9PlzVPZaWlnrfh6v7epY9TGv6+XG5qtUO1htvvKF9+/ZpypQpPlt/7dq1U3R0tN577z2dOXNGH3/8sfcEO+lsMCsuLvb+5HHmzJnzDgP88ssv2r59u66//vpL1tG7d2+tX79eWVlZKigo0OLFi9W1a1fvuSqlpaUqLi6W2+2W2+1WcXHxebtPZfXp00erV6/W0aNHNXv2bH399df6/e9/7+2xpKRErVq1UkREhPbt26f8/Hxt2LDBth498xcUFMjtdmv37t368MMP1bFjx8vqMTc3V8uWLVNycrJ3PZ1Op/drVqdOHUVHR2vVqlVBsZ6bN2/26fX999/32Um4nPHq1aun7777TlOmTFFMTIy318TExKDqVZL279+vgwcPnveGdSEXWte+fft6X6tPPvmkoqKivK+FVq1aBdVrNTs7W6dPn1ZxcbHWrVunnTt3auDAgSHb76XG87w3ed6Pyn7s5X79quq53LJlS/3jH/9QUVGRzpw5o/fff1916tQp95eFevbsqe3bt2vnzp06ffq0Fi9erFatWumKK66odK9z5szRF198oeuuu857WYHS0lK1atVKkZGROnTokPLz85WZmWlrjx9++KFyc3O95w6uXLlSHTp0qJbruXXrVuXl5Uk6G/Teeeedi74Pm35+XEi1+VM5R48e1ciRIxUdHa3IyEjv/YMHD9aQIUOUnZ2tV199VdnZ2apXr54eeOABtW3bVpL0008/6d577z1vzNWrV3v//e6772rjxo2aOXPmZdXjuZZIQUGBOnXqpAcffNAbiJYsWaKlS5f6fHzv3r318MMPX3Asy7K0ePFivf/++8rPz1dERITP9UQaNGigAwcO+HxOUlKSJkyYYEuPBQUFeu6557R//3653W7Vrl1bffv21a233urzU8WFevzwww9VWlqq3/zmN/r444+963nmzBmVlpb6fE7t2rV16tQp29dzwoQJ3p/kUlJSdNNNN130RNJzx7vqqqu0fft2b68lJSXnBe6kpCQVFRXZ3qt09gcZl8ulJ5544pJjnbuu3bt3180336w//elPio6OltvtPm9db7zxRh04cCAoXqsLFy7U2rVrVVJSoubNm2vkyJFq2rRpyPZ7qfHWr19/3jht27bVc889V+6YgXouHz16VG+++ab27Nkjt9utxo0ba8SIEWrRokW5tW3evFkLFy7UiRMn1KZNG5/rHPnb67Jly3Ty5Ek5HA45nU7ve1qLFi20a9cun49PSEjQE088YVuPzz33nHbv3q3Tp0+rVq1a6tq1q9LT0887T+zcHkNxPadNm6YdO3bozJkzqlWrlvr27atBgwb55IGKjOfP8+Nc1SZgAQAABItqdYgQAAAgGBCwAAAADCNgAQAAGEbAAgAAMIyABQAAYBgBCwAAwDACFgAAgGEELAAAAMMIWAACZvLkyXI4HHI4HIqIiFDNmjXVvn17jRkzRnv27KnweBs3bqzQlZUBIFAIWAACKi4uTp9++qk++eQTrVixQsOHD9e6devUsWNHvf322xUai4AFIFhF2V0AgPASERHh80dYr7/+eo0aNUr9+/fXPffcoy5dulz07/0BQChgBwuA7WJjYzV79mwVFxfrr3/9qyTpv//7v9W1a1fVrl1bycnJ6tmzpz7//HPv50yePFlTpkxRfn6+97Bjz549vY/v2bNHAwcOVM2aNZWQkKD+/ftr//79gW4NQJhiBwtAUGjTpo2uvPJKffrpp5Kk7Oxs3XnnnWrWrJmKi4u1ZMkSde/eXV999ZVatmypkSNH6vvvv9eSJUuUmZkpSUpKSpIkHThwQF26dFHbtm21YMECRUREaOrUqerTp4/27dunmJgY2/oEEB4IWACCRqNGjXTkyBFJ0l/+8hfv/W63W9dff722bdumBQsW6LnnnlPDhg3VsGHD8w45StKUKVOUnJysjz76SLGxsZKkLl26qEmTJnrrrbc0atSowDUFICxxiBBA0LAsSw6HQ9LZQ3y33HKL6tWrp8jISEVHR2vfvn3617/+dclx/vGPf2jgwIGKiopSSUmJSkpKlJycrA4dOmjbtm1V3QYAsIMFIHh8//33atmypfLy8tSvXz/VrVtX06dPV1pammJjYzVy5EgVFRVdchyXy6UZM2ZoxowZ5z0WFxdXFaUDgA8CFoCg8M033+iHH37Q8OHD9emnn+r777/XmjVr1KFDB+/HnDx5Ug0bNrzkWLVr11b//v0veCgwMTHRaN0AcCEELAC2Kyoq0oMPPqiYmBiNHDlSO3fulCQ5nU7vx3zyySfKzs7WVVdd5b3P6XTq9OnT543Xt29fff3117r66qsVGRlZ9Q0AwDkIWAACyu12a+vWrZKkU6dOadeuXXrzzTd14MABLViwQI0bN1ZcXJxq1Kih0aNHa8KECfrhhx80efJkXXnllT5jtW7dWiUlJZo5c6a6dOmipKQktWrVSlOmTNFvfvMb3XDDDbrvvvtUr149HTlyRB9//LG6deumP/7xj3a0DiCMELAABFRhYaE6d+4sh8OhGjVqKC0tTX369NG7776r//iP/5Ak1atXT++8844ee+wxDRw4UC1bttTcuXP14osv+ow1YMAAjRo1Ss8//7yOHj2q7t27a+PGjWrevLk+//xzTZo0SaNGjdKpU6d0xRVXqHv37mrfvr0dbQMIMw7Lsiy7iwAAAKhOuEwDAACAYQQsAAAAwwhYAAAAhhGwAAAADCNgAQAAGEbAAgAAMIyABQAAYBgBCwAAwDACFgAAgGEELAAAAMMIWAAAAIYRsAAAAAz7f/z+oE7ZPL8QAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<ggplot: (8775444733483)>\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlwAAAGyCAYAAAAxuhrfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xt8k+X9//F3ej7QQqEVEGgFhAIiIDi/ExAQEBWmnGFSJgdRJkjVnwzRocI2YE50DqmCTg5qURA25jwM5eRXEIfDDVER5dByEJBQsG3aUprevz/8Nmt6Tpo7SZPX8/HwIUmuXPf1ua8r6bv3fSe1GIZhCAAAAKYJ8fUAAAAAAh2BCwAAwGQELgAAAJMRuAAAAExG4AIAADAZgQsAAMBkBC4AAACTEbgAAABMRuACAAAwGYELAADAZGG+HkCZ/Px8ZWRk6LPPPlN0dLTGjRunoUOHVtl2165dWr16tS5cuKDOnTvr/vvvV7NmzRyPf/HFF1q1apWOHz+u6OhojR07Vj/72c+8VQoAAIATvwlcK1askN1u16pVq3Tq1Ck9/vjjat26tbp16+bU7sSJE1q6dKkeeeQRde7cWatWrdKSJUu0ePFix+NPPvmk0tPTdc011+jixYvKycnxRUkAAACS/CRwFRUVadeuXXr22WcVExOj9u3ba+DAgdqyZUulwLV9+3b17NlTPXr0kCSlpaXpzjvv1KlTp9SyZUutW7dOQ4YM0U9+8hNJUlhYmGJjY2sdg9Vq9XhdFotF0dHRKiwslDf/RnhERISKi4u9si1f1Sh5t84ywTCnZZhb7wmmeqnVHMG0fivWmpiY6LVt14dfXMN18uRJSVJycrLjvnbt2ik7O7tS2+zsbLVt29ZxOy4uTklJSY62Bw8elMVi0axZs/SLX/xCixYtMiVM1UVISIhiYmIUEuLd3RwZGem1bfmqRsm7dZYJhjktw9x6TzDVS63mCKb168ta68NvjnBFR0c73RcbG6vCwsIq28bExFTb1mq1atu2bVqwYIEuu+wyrVixQk8//bTjlGMZq9XqFMRCQkKUlJTkqZIkSaGhoU7/9xaLxeK1bfqqRsm7dZYJhjktw9x6TzDVS63mCKb168ta68MvAldUVFSlcGWz2SqFsLK2BQUF1baNjIzUwIED1aZNG0k/nnKcMmWKCgsLnfrbuHGjXnrpJcftyZMn67777vNYTeXFx8eb0m9NIiIivLo9X9Qoeb/OMsEwp2WYW+8Ipnqp1TzBtH59Vau7/CJwtWrVSpJ0/PhxR1A6evSoUlJSKrVNSUlRVlaW43Z+fr6sVqujbUpKiiwWi9NzKt6WpNGjR6t///6O2yEhITp//ny9aykvNDRU8fHxys3Nld1u92jfNYmNjZXNZvPKtnxVo+TdOssEw5yWYW69J5jqpVZzBNP6rVhrQkKC17ZdH34RuKKiotSnTx9lZmYqPT1dZ86c0datWzVnzpxKbQcMGKDZs2dr37596tSpkzIzM5WamqqWLVtKkoYMGaLMzEzdeOONSkpK0htvvKGrr7660tGyxMREpwvtrFaraYvUbrd79QVgGIbXX3DerlHyTZ1lgmFOyzC35gumeqnVXMG0fn1Ra334ReCSpOnTp2vZsmWaPHmyYmJilJaWpu7du+vs2bOaOXOmMjIylJSUpDZt2mjWrFlatmyZzp8/ry5dumj27NmOfgYOHKizZ8/q4Ycflt1uV9euXfXggw/6sDIAABDs/CZwNWrUSHPnzq10f1JSktavX+90X9++fdW3b99q+xo/frzGjx/v8TECAAC4o2F9phIAAKABInABAACYjMAFAABgMgIXAACAyQhcAAAAJiNwAQAAmIzABQAAYDICFwAAgMkIXAAAACYjcCEopKen+3oIAIAgRuACAAAwGYELAADAZAQuAAAAkxG4AAAATEbgAgAAMBmBCwAAwGQELgAAAJMRuAAAAExG4AIAADAZgQsAAMBkBC4AAACTEbgAAABMRuACAAAwGYELAADAZAQuAAAAkxG4AAAATEbgAgAAMBmBCwAAwGQELgAAAJMRuAAAAExG4AIAADAZgQsAAMBkBC4AAACTEbgAAABMRuACAAAwGYELAADAZAQuAAAAkxG4AAAATEbgAgAAMBmBCwAAwGQELgAAAJMRuAAAAExG4AIAADBZmK8H4C8iIiIUGRnp0T4tFoskKTY2VoZheLTvmoSFhSkuLs4r2/JVjZLrdXpinwTDnJZpSHPrCdTrHdRqjmBav76stT4IXP+nuLhYxcXFHu0zNDRUERERstlsstvtHu27JnFxccrLy/PKtnxVo+R6nZ7YJ8Ewp2Ua0tx6AvV6B7WaI5jWb8VaPX2wxCycUgQAADAZgQsAAMBkBC4AAACTEbgAAABMRuACAAAwGYELAADAZAQuAAAAkxG4AAAATEbgAgAAMBmBCwAAwGQELgAAAJMRuAAAAExG4AIAADAZgQsAAMBkBC4AAACTEbgAAABMRuAC4LfS09N9PQQA8AgCFwAAgMkIXAAAACYjcAEAAJiMwAUAAGAyAhcAAIDJCFwAAAAmI3ABAACYjMAFAABgMgIXAACAyQhcAAAAJiNwAQAAmIzABQAAYDICFwAAgMkIXAAAACYjcAEAAJiMwAUAAGAyAhcAv5Kenu7rIQCAxxG4AAAATEbgAgAAMBmBCwAAwGQELgAAAJMRuAAAAExG4AIAADBZmK8HUCY/P18ZGRn67LPPFB0drXHjxmno0KFVtt21a5dWr16tCxcuqHPnzrr//vvVrFkzpzaXLl1Senq6bDabXnnlFW+UAAAAUCW/OcK1YsUK2e12rVq1So899pgyMzP1+eefV2p34sQJLV26VDNnztRrr72myy+/XEuWLKnU7s0331TTpk29MXQAAIAa+UXgKioq0q5duzRx4kTFxMSoffv2GjhwoLZs2VKp7fbt29WzZ0/16NFDkZGRSktL09dff61Tp0452pw8eVK7du3SqFGjvFkGAABAlfwicJ08eVKSlJyc7LivXbt2ys7OrtQ2Oztbbdu2ddyOi4tTUlKSU9vnn39eU6dOVUREhImjBgAAqBu/uIarqKhI0dHRTvfFxsaqsLCwyrYxMTHVtt26dasaNWqkXr16af/+/dVu02q1ymq1Om6HhIQoKSmpPmVUEhoa6vR/b7FYLF7bpq9qlFyv0xNjDIY5LeMvc8taNgdr2Xy8F5vDl7XWh18ErqioqErhymazVQphZW0LCgqqbJuXl6fXX39dixcvrnWbGzdu1EsvveS4PXnyZN13331uVlCz+Ph4U/qtibeP7vmiRsm1OhMSEjy23WCY0zK+qrWsXk/OW100hLXsSaxlc/FebB5f1eouvwhcrVq1kiQdP35cbdq0kSQdPXpUKSkpldqmpKQoKyvLcTs/P19Wq9Vxf05Ojh544AFJkt1uV2FhodLS0rRo0SKn/kaPHq3+/fs7boeEhOj8+fMerSs0NFTx8fHKzc2V3W73aN81iY2Nlc1m88q2fFWj5HqdnpjfYJjTMr6c2+LiYke9nn5dVqchrWVPYC2bj/dic1Ss1du/lLnLLwJXVFSU+vTpo8zMTKWnp+vMmTPaunWr5syZU6ntgAEDNHv2bO3bt0+dOnVSZmamUlNT1bJlSyUmJurFF190tP3666+1YsUK/fGPf1STJk2c+klMTFRiYqLjttVqNW2R2u12r74ADMPw+gvO2zVKrtfpyfEFw5yW8fXcspbNxVo2D+/F5vJFrfXhFxfNS9L06dMl/Xhqb8GCBUpLS1P37t119uxZjRs3TmfPnpUktWnTRrNmzdKyZcuUlpamkydPavbs2ZKk8PBwR5BKTExU48aNZbFYlJiYqLAwv8iWAAAgCPlNCmnUqJHmzp1b6f6kpCStX7/e6b6+ffuqb9++tfZ59dVX86WnAADA5/zmCBcAAECgInAB8In09HRfDwEAvIbABQAAYDICFwAAgMkIXAAAACYjcAEAAJiMwAUAAGAyAhcAAIDJCFwAAAAmI3ABAACYjMAFAABgMgIXAACAyQhcAAAAJiNwAQAAmIzABQAAYDICFwAAgMkIXAAAACYjcAEAAJiMwAUAAGAyAhcAAIDJCFwAAAAmI3ABAACYjMAFAABgMgIXAACAyQhcAAAAJgurz5Pff/99bdiwQSdOnFBRUZHTYxaLRVu3bq3X4AAAAAKB24Hrqaee0sMPP6w2bdqoU6dOio2N9eS4AAAAAobbgSsjI0MzZszQc889J4vF4skxAQAABBS3r+HKycnRqFGjCFsAAAC1cDtw3Xbbbdq5c6cnxwIAABCQ3D6lOHnyZM2YMUOFhYW66aab1KRJk0ptevbsWa/BAQAABAK3A9fNN98sSXryySf15JNPOp1aNAxDFotFdru9/iMEAABo4NwOXNu3b/fkOAAAAAKWW4GruLhYVqtVPXr0UPv27T09JgAAgIDi1kXzERERSktL0/Hjxz09HgAAgIDj9qcUO3XqROACAACoA7cD1+LFi/W73/1Oe/fu9eR4AAAAAo7bF83PmTNHVqtV1113nRITE3XZZZc5fVLRYrFo3759HhkkANRFenq6li5d6uthAEAlbgeuXr166dprr/XkWAAAAAKS24Fr9erVHhwGAABA4HL7Gi6goUtPT/f1EAAAQcLtI1xTp06ttc3KlSvd7R4AACBguB24Pv3000r35eTk6PTp02rWrJlatGhRr4EBAAAECrcD1/79+6u8/4svvtDEiRP17LPPuj0oX4iIiFBkZKRH+yz71GZsbKwMw/Bo3zUJCwtTXFycV7blqxol1+usqq2r+ykY5rSMN2qtrqby9bpat7v7qSGtZU9gLZuP92Jz+LLW+nA7cFWna9euevjhh/XAAw/oP//5j6e7N01xcbGKi4s92mdoaKgiIiJks9m8+oe84+LilJeX55Vt+apGyfU6q2rr6n4Khjkt441aq6uppKTE8Zirdbu7nxrSWvYE1rL5eC82R8VaPX2wxCymXDTfuHFjHTp0yIyuAQBu4oMigO+4fYQrJyen0n3FxcU6cOCAHn30UXXt2rVeAwMAAAgUbgeuxMREp2+WL2MYhtq0aaNNmzbVa2AAAACBwu3AtXLlykqBKyoqSq1bt9b//M//KCzM45eHAQAANEhup6LJkyd7cBgAAACBy+2L5kNDQ7Vnz54qH9u7d69CQ0PdHhQAAEAgcTtw1fTdF5cuXSJwAQAA/B+XTimePn1a3333neP2wYMHK12rVVRUpJUrVyolJcUzIwQAAGjgXApcK1as0IIFC2SxWGSxWKq8jsswDIWGhur555/31BgBBBi+DwpVSU9P19KlS309DMAULgWuyZMna8CAATIMQwMHDlRGRoa6dOni1CYiIkIdO3ZUs2bNPDpQAACAhsqlwJWSkuI4Vbh9+3b17NnT638TCwDg/zhaBThz+2sh+vfvL0k6cOCA/vWvf+n48eOaOnWqWrRooUOHDql58+aEMQAAANUjcBUUFGjatGlat26dLBaLDMPQLbfcohYtWuiRRx5R27Zt9Yc//MGTYwUAAGiQ3P5aiNmzZ2vbtm1655139MMPPzh9TcTQoUP1j3/8wyMDBAAAaOjcPsK1YcMGPfXUU7rllltkt9udHrviiiuUlZVV37EBAAAEBLePcOXn56tly5ZVPmaz2dweEAAAQKBxO3B169ZNGzdurPKxd955R9dee63bgwIAAAgkbp9SfOyxxzR8+HAVFBRo7Nixslgs2rNnj15//XWtXLlS7777rifHCQAIAFOmTOHrIhCU3D7CNWzYML3xxhvauXOnRowYIcMwNGPGDK1bt06ZmZkaNGiQJ8cJAADQYLl9hEuSxowZozFjxuibb76R1WpV06ZN1alTJ0+NDQAAICC4dYSrqKhI3bp10+bNmyVJHTt2VO/evQlbAAAAVXArcEVFRem7775TaGiop8cDAPBD/MFxoH7cvoZr1KhR2rBhgyfHAgAAEJDcvoarT58+evTRR/Xdd9/p1ltv1WWXXSaLxeLUZtSoUfUeIAAAQEPnduCaMmWKJOntt9/W22+/Xelxi8VS6RvoAQAAgpHbgevo0aOeHAcAAEDAcjtwpaSk1LmtYRi66667NH/+fCUnJ7u7SQAAgAbJ7YvmXVFaWqo1a9bIarV6Y3MAAAB+xSuBS/rxKBcAILDx9RFA1bwWuAAAAIIVgQsAgAaCI4gNF4ELAADAZAQuAIATjqIAnkfgAgAAMJlHApdhGMrLy6v2k4ihoaHavn27UlNTPbE5AACABqVegevDDz/UwIEDFR0drSZNmig6OlqDBg3SRx99VKlt//79FRsbW5/NAUC1OA0GwJ+5/U3zH3zwgYYOHaqOHTvqkUceUYsWLXTq1Clt2LBBgwYN0rvvvqvBgwd7cqwAAAANktuBa968eRo6dKg2bdoki8XiuP+JJ57QiBEjNG/ePAIXAACA6nFKcf/+/br33nudwpYkWSwW3Xvvvfr888/rPTgAAIBA4HbgatSokU6ePFnlYydOnFCjRo3cHhTQEHDNEACgrtw+pXj77bdr7ty5at26tW6++WbH/e+//75+/etfa/jw4S71l5+fr4yMDH322WeKjo7WuHHjNHTo0Crb7tq1S6tXr9aFCxfUuXNn3X///WrWrJkkadWqVdqzZ49ycnLUuHFjDRs2zOWxAAAAeJLbR7ieeuoptWvXTrfeequaNGmi1NRUNWnSRLfeeqvatm2rp556yqX+VqxYIbvdrlWrVumxxx5TZmZmlaclT5w4oaVLl2rmzJl67bXXdPnll2vJkiWOx8PDw/XII4/o9ddf17x587Rp06YqPzUJAADqhyP9ded24EpISNDu3bu1adMm3XPPPerXr5+mT5+uTZs26eOPP1aTJk3q3FdRUZF27dqliRMnKiYmRu3bt9fAgQO1ZcuWSm23b9+unj17qkePHoqMjFRaWpq+/vprnTp1SpI0ceJEJScnKyQkRMnJybruuuv01VdfuVsmAgxvDgAAX3D7lKIkhYSE6Pbbb9ftt99er0GUXQuWnJzsuK9du3batGlTpbbZ2dnq2LGj43ZcXJySkpKUnZ2tli1bOrUtLS3VV199pWHDhtVrfAAA70tPT9fSpUt9PQzAI1wKXDk5OWrSpIlCQkKUk5NTa/umTZvWqd+ioiJFR0c73RcbG6vCwsIq28bExNSp7apVqxQaGqpBgwZVesxqtcpqtTpuh4SEKCkpqU7jravQ0FCn/3uLxWLx2jZ9VaPkep1VjdXVcVfsw1t1e3NOy3ijxur6Ll+vu3Pk7lgawlquj7qu4arur+sY3em7usc8sV8C7b24prkJ9PUr+bbW+nApcCUlJWn37t267rrrlJiYWOkrISqy2+116jcqKqpSYLLZbJVCWFnbgoKCWtuuX79e//rXv7Ro0SKFh4dX6mfjxo166aWXHLcnT56s++67r07jdVV8fLwp/dYkIiLCq9vzRY2Sa3UmJCQ4/b/iv11RVq+7z3eHt+e0jJlzW93+i4iIcNTr6j6u75w0hLVcHxX3T3X1VrUf67pvq3qt1bWfio958jUWKO/FNe2T+Ph4TZgwQWvXrvX4dqtT/vXqTb56rbrLpcC1cuVKtW/f3vHv2gJXXbVq1UqSdPz4cbVp00aSdPToUaWkpFRqm5KSoqysLMft/Px8Wa1Wp7YbNmzQli1btHjx4moX5ujRo9W/f3/H7ZCQEJ0/f94T5TiEhoYqPj5eubm5dQ6fnhAbGyubzeaVbfmqRsn1Osvmt/w8uzrn5et15/nu8uaclvHG3Fa3/4qLix31urqP3Z2ThrSW66Ns/9RWb1X7sa77tqrXWl37qfiYJ15jgfZeXNU+8dV7k+T8evWGivPpzV9868OlwDVp0iTHvydPnuyxQURFRalPnz7KzMxUenq6zpw5o61bt2rOnDmV2g4YMECzZ8/Wvn371KlTJ2VmZio1NdVx/dbGjRv1j3/8Q4sWLXJ8VURVEhMTlZiY6LhttVpNeyHa7XavvsgNw/D6Dwxv1yi5XmdZ2/LPcXfMVfVlJl/MaRkz57a6fsvX6+q26zvWhrCW66Pidqqrt6731bSN6trX1E9V4/OUQHkvrsv+C4Q6a+OL12p91OuieU+aPn26li1bpsmTJysmJkZpaWnq3r27zp49q5kzZyojI0NJSUlq06aNZs2apWXLlun8+fPq0qWLZs+e7ehnzZo1CgsLczo9OGDAAM2YMcMXZQEAALgWuFz5NKLFYtHf/va3Ordv1KiR5s6dW+n+pKQkrV+/3um+vn37qm/fvlX289Zbb9V5mwAAAN7g0vdw5ebmKi8vr07/lZ1HBgJB+e/vmjBhgg9HAgBoiFw6wrVjxw6ThgEAABC43P6meQAAANRNvQLXN998o6lTp6pDhw5q1qyZOnTooLvuukvffPONp8YHAAAaKP6c2n+5/SnFvXv3asCAAYqMjNRtt92mFi1a6PTp03rrrbe0fv16ffjhh+rZs6cnxwoAANAguR245syZo+7du2vz5s2KjY113G+z2XTzzTdrzpw5Vf7xaQAAgGDj9inFTz75RA8//LBT2JJ+/GbdOXPm6JNPPqn34AAAAAKB24ErIiKi2q/yt9lsVf79QgAAgGDkduAaPHiwHn30UX399ddO93/99dd67LHHNGTIkHoPDgAAIBC4HbieeeYZGYahrl27qnv37rr55pvVo0cPde3aVaWlpXr66ac9OU4AAIAGy+2L5tu0aaP9+/dr5cqV2rlzp86fP6/U1FTdddddmjJliho1auTJcQJAlfjYOYCGwKUjXKNGjdKhQ4ckSa+88oouXryo9PR0rV+/Xh988IHWrVunWbNmEbbQ4PFDHADgSS4Frrfeekvnzp2TJE2ZMkWHDx82ZVAAAP/ALx+AZ7h0SrFVq1b6+9//rubNm8swDJ0+fVrHjh2rtn1ycnK9BwgAALwrPT1dS5cu9fUwAopLgeuBBx7QQw89pMWLF8tisWjkyJFVtjMMQxaLRXa73SODBAAg2BB6AotLgevBBx/U0KFDdeDAAY0aNUqLFi1Shw4dzBobAABAQHD5U4qpqalKTU3VpEmTNH78eLVt29aMcQEAAAQMt7+Hy2KxVPtYdna2pk6d6m7XAIAgwAX5CCZuB641a9bo7NmzVT5mtVq1Zs0atwcFAAAQSNwOXGUXxlfl22+/VbNmzdweFAAAQCBx6RquF154QS+88IKkH08pTpgwQdHR0U5tioqKlJWVpbFjx3pulAAAAA2YS4Hr8ssvV69evSRJX3zxhVJTU5WUlOTUJiIiQp07d9Zdd93luVECAAA0YC4FruHDh2v48OGO248//jifUgQAAKiFW9dwFRUVaePGjdq/f7+nxwMAABBw3ApcUVFRio2NVUREhKfHA/i1mTNn+noIAIAGyO1PKU6aNEkvv/yyJ8cCAPXGdzsB8Ecuf9N8mYSEBH388cfq3r27brnlFl122WVOXxNhsVj04IMPemSQAAAADZnbgeuRRx6RJJ06darKa7kIXAAAOHP1D1LzB6wDh9uBq7S01JPjAAAACFhuX8MFAAg8XAMHmMPtI1ySdO7cOWVkZOijjz5STk6OmjZtqn79+mnGjBn8aR/4HX6QAAB8xe0jXIcPH1a3bt20cOFClZSUqGPHjiopKdHvfvc7devWTYcPH/bkOAEAXsYvKYGv4hwz5+ZxO3A99NBDaty4sb799ltt375dr7/+urZv365Dhw6pSZMmmj17tifHCQBAwHIn6BCOGha3A9f27dv1m9/8RsnJyU73t2nTRvPnz9e2bdvqPTgAAIBA4HbgKi0tVVhY1ZeAhYWF8SlGAACA/+N24OrTp49++9vfKicnx+n+8+fPa+HCherbt2+9BweYjUPyAABvcDtwLVmyREeOHFFKSoqGDx+u6dOna8SIEUpOTtbRo0e1ZMkST44T8AkCGWAuXmMIFm4Hrq5du2r//v26++67derUKW3btk2nTp3SPffco3379umqq67y5DgBAAAaLJe/h+vLL7/UihUrdPToUbVq1UqjR4/WM888Y8bYAAQY/kwJgGDl0hGunTt3qmfPnsrIyNCePXv08ssv65ZbbtHy5cvNGh8AAAGHU6nBx6XANX/+fHXp0kVZWVk6c+aMzp07pxEjRmjevHlmjQ8AAJiA0OddLgWuzz//XI899pjatGkjSYqPj9fTTz+tnJwcHT9+3JQBAgAQyAg+wcGlwGW1WtW6dWun+8rCl9Vq9dyoAAAAAojLF81bLBYzxuFzERERioyM9GifZfsqNjZWhmF4tO+ahIWFKS4uzivb8lWNkvt1VnxOdX2U3V/x/9KP9db0XE/z5pyWMWtuy9dRXU3l6/XEHNdFQ1zL7ijbTlX1TpkypVK78v+u6xhra1/Ta7Cur09X+Nt7cXX7pz77q3yNNfU1ZcoUrVq1qk7913Xf17Z+Pb22fflarQ+XA9eNN96okJDKB8ZuuOEGp/stFot++OGH+o3Oi4qLi1VcXOzRPkNDQxURESGbzSa73e7RvmsSFxenvLw8r2zLVzVK7tdZ8TnV9VF2f8X/S5LNZqvxuZ7mzTkt4+m5LTttUr6O6moqKSmpcr/XlTvPaYhr2R1l26mt3qrmqa5jrK19Xl6e02m0mtaEJ/aLv70XV7d/ansvqup2VfNZU1912a6r813+9VqX7dVXxfn09MESs7gUuJ544gmzxgEAQLX4ShE0dAQuoB74IQAAqAu3v2keAIDa8Ak84EcELgAIcoQiwHwELgQlfsAAALyJwAUAABz4hdQcBC4AAACTEbgAAH51VMOfxhKo2MfeR+ACAFTCD2TUF2vIGYELAILQzJkzfT0EIKgQuAAAQL1xRKtmBC4ApuONGKiM10VwIXABABCACHT+hcAFAHAJP8iDF3PvPgIXUAFvKADgWbyvErgQhHjhAwC8jcAFAABgMgIXAACAyQhcAAAAJiNwAQDQgHFdasNA4AIAoIEhZDU8BC4ACGJm/E1FwgBQGYELgF/ihzYClb+tbX8bT6AicAEAgGrVFsimTJnipZE0bAQuAAgyHNEAvI/ABQAAYDICFwDAVOnp6TUeVeOIG4IBgQsAAMBkBC4AAACTEbgAAAguoyBdAAAagUlEQVQAEyZM8PUQUAMCFwDAq7hmq2rsl8BG4ALqiDdDAIC7CFwAAAQIM/5UEzyDwAUAAGAyAhcAAHAJl1i4jsAFAABgMgIXAMAtHOUA6o7ABQBBhJAE+AaBC4DPEQIQrOq79s187dTWN69b1xC4AADwIwSZwBTm6wGYIT8/XxkZGfrss88UHR2tcePGaejQob4eFgAAQYcA+aOADFwrVqyQ3W7XqlWrdOrUKT3++ONq3bq1unXr5uuhAQCAIBRwpxSLioq0a9cuTZw4UTExMWrfvr0GDhyoLVu2+HpoAMRvuwCCU8AFrpMnT0qSkpOTHfe1a9dO2dnZvhoSABdNmTLF10MA/JY//tLij2PyNwEXuIqKihQdHe10X2xsrAoLC300IgCexqenAh9ziEATcNdwRUVFVQpXNputUgizWq2yWq2O2yEhIUpKSvLoWEJDQ53+7y0Wi8Vr2/RVjZLn6qyuj5pqK3+fN2r35pyW8cbc1mU/unp/XR+vrn1DXstmqWrf1GV/VXysLm1reo67+6ghvRfXtK/r8rya+ilTVZgNDQ2t8g9fuzoedx9zhS9fq/ViBJjCwkJj5MiRxrFjxxz3vfzyy8bTTz/t1G758uVGr169HP8999xz3h4qvOSOO+7w+PPc7RPO7rjjDse+LP/v2p7jSntUz9X9V3G+zNhexTbBNsdV7d+y/W7me5Krr736tAlWAXmEq0+fPsrMzFR6errOnDmjrVu3as6cOU7tRo8erf79+ztuh4SE6Pz58x4dS2hoqOLj45Wbmyu73e7RvmsSGxsrm83mlW35qkbJtTrdnduKzyurtz59usObc1rGm3Nbfl+eP3++1nortveEhrKWPaXs6IA79Zbtc3f2fXFxca21Vuy3vnPc0N6La9q/te2L+tRYl/1c1dgq1lmf9VEXFeczISHBlO14WsAFLkmaPn26li1bpsmTJysmJkZpaWnq3r27U5vExEQlJiY6blutVtNeiHa73asvcsMwvP4Dw9s1Sq7V6e7YanpeoM9pGW/Mbfn+7XZ7rfVWbO/psfjzWvY0d+ota+/OmOtSa8XHPbVvGsp7cU37ty77zoz3u5rGVrHO+qwPV/jitVofARm4GjVqpLlz5/p6GAAAAJIC8FOKAAAA/obABQBAkFu6dKmvhxDwCFwAAMCjCHCVEbgAAGjgMjIyfD0E1ILABQAAYDICFwAADYCvT9P5evsNHYELAADUGcHLPQQuAAAAkxG4ADdwgSoAwBUELgAA4BGcbqwegQsAAMBkBC4AAPwcR44aPgIXAACAyQhcAAC/wZEcBCoCFwAAgMkIXAAAr+DoFYIZgQsA4LcIaQgUBC4APsUPVADBgMAFAABgMgIXAACAyQhcABoUTkECaIgIXAAAACYjcAEAAJiMwAUAqBNO5wLuI3ABAFxG+AJcQ+ACAAAwGYELAADAZAQuAAAAkxG4AAAATEbgAtAgcdE2AhnrO/AQuAAAAExG4AIAADAZgQuoBof0AQCeQuACAAAwGYELAADAZAQuAAAAkxG4AADwY1xPGhgIXAAAACYjcAEA6oyjLYB7CFwAAAAmI3ABAACYjMAFAABgMgIXAJ8pfz0Q1wYBCGRhvh6Av4iIiFBkZKRH+7RYLJKk2NhYGYbh0b5rEhYWpri4OK9sy1c1Sq7V6an9EQxzWsZXtcbFxQXV3Eq+m9+1a9equLiYtWwSd2t15znBtH59WWt9ELj+T3FxsYqLiz3aZ2hoqCIiImSz2WS32z3ad03i4uKUl5fnlW35qkbJtTo9tT+CYU7L+KrWvLy8oJpbKbjml1pr585zgmn9VqzV0wdLzMIpRQAAAJMRuAAAAExG4AIAADAZgQsAAMBkBC4EPL5uAADgawQuAAAAkxG4APgNjkYCCFQELgAA/AS/dAQuAhcAAIDJCFwAAAAmI3ABAACYjMAFAABgMgIXAACAyQhcAAAAJiNwAQAAmIzABaDB4juLADQUBC4AAACTEbgAAABMRuACAAAwGYELAADAZAQuAAAAkxG4AAAATEbgAgAAMBmBCwAAwGQELgAAAJMRuAAAAExG4AIAADAZgQsAAMBkBC4AAACTEbgAAABMRuACAAAwGYELAADAZBbDMAxfDyJQWa1Wbdy4UaNHj1ZiYqKvh2OKYKixvGCqN5hqlag3kAVDrcFQY5mGWitHuExktVr10ksvyWq1+noopgmGGssLpnqDqVaJegNZMNQaDDWWaai1ErgAAABMRuACAAAwWej8+fPn+3oQgSw6OlrXXnutYmJifD0U0wRDjeUFU73BVKtEvYEsGGoNhhrLNMRauWgeAADAZJxSBAAAMBmBCwAAwGRhvh6AWS5duqTly5dr3759ysvLU2JiosaOHasBAwZIkrKzs/Xcc88pKytLLVq00L333qurrrrK8djKlSt16NAh5eXlacOGDYqIiHD0PXPmTJ09e9ZpW61bt9Zzzz1X7XjefvttbdiwQYWFherVq5fuu+8+x7nnt99+W9u2bVNWVpauv/56/epXv6q1vtdee03vvvuuioqKFB4eLsMwlJSUpLFjx+rEiRP65z//qWPHjikhIUH5+fk+r3HZsmX617/+pcLCQsXFxWnIkCEaN25crTW+9957Ki0tVZ8+fWS327V//37l5eUpPDxc4eHhOn/+vEaOHKkBAwb4zXw+++yz+t///V+Fhf335ZWRkaGkpKQ69zd9+nS98sor2rdvn86fPy+LxaKSkhL16dNHv/rVr/xq/Vacx+LiYl177bWaN29etf2Vn9sbbrhBU6ZM0Z///Gft27dPOTk5jnpHjRqlSZMm+VW93333nZYvX65vv/1WMTExGj9+vIYMGVJtXxXr9ae1XFt/O3fu1FtvvaUjR47oiiuu0JIlS2qss+K+u+aaaxQZGakvv/xSeXl5ioqKUkREhM6dO6frr79e48aNc7vWvLw8LV++XP/5z38kSVdffbWmT5+uhISEase2a9curV69WhcuXFDnzp11//33q1mzZvWutaCgQI0bN1Zpaany8/OVmJioK6+8UsePH1dWVpa6deum/Px8v6hz7dq12rp1q/Lz8xUdHa0bbrhBkyZNcnq/qq7Ohjana9eu1Ztvvqnw8HBH+yeeeMIxHlf7c2eNODECVGFhofHaa68Zp06dMux2u/Hll18a48ePNw4cOGBcunTJmDZtmrFhwwajuLjY2LZtm3HHHXcYeXl5hmEYxvHjx43Nmzcbe/bsMW677Tbj4sWLNW7roYceMt54441qH//ss8+MtLQ04/Dhw4bNZjN+97vfGc8884zj8V27dhm7d+82XnjhBeMPf/hDrbVt3rzZuPvuu43s7Gzj5ZdfNmbNmmW89tprjhpfffVV45///KcxZswY45FHHvGLGrOzs42ioiLDMAzj+++/N2bMmGF89NFHtdZ4+vRp48KFC8aDDz5ozJ071zGfa9asMcaMGWPMnTvXWLlypV/N5x//+Edj9erVNW6jtv6eeuopx/rduXOnsX79emPkyJHGvHnz/G79lldSUmJMmjTJ2LZtW7X9VZzbhx56yFizZo2j3g8++MD4y1/+YowYMcJ4+umn/arekpIS49577zXWrVtnlJSUGN9++63x85//3Ni/f3+d6/WntVxbf//+97+Njz76yFi3bp3x0EMP1bitqvbdggULjPvuu89R6xtvvGGMGTPGWLRokfH73/++XrUuW7bMmDdvnpGXl2cUFhYaixcvrvH98/jx48a4ceOMf//730ZRUZHxwgsvGHPnzvVIrefOnTN++ctfGgsXLnT8vBkzZozx5ptvGhkZGcbYsWP9ps6TJ08aNpvNMAzD+OGHH4xHH33U2LhxY53qbGhzmpmZWaefqXXtz9U1UlHAnlKMiopSWlqaWrRooZCQEHXp0kWdO3fWgQMHtH//fl28eFEjR45UeHi4brzxRjVv3lwff/yxJKl169YaMmSIkpOTa93OsWPHdOjQIQ0cOLDaNtu2bdOgQYPUrl07xcTEKC0tTTt37tTFixclSb1799ZPf/pTxcfH16m2LVu2aMSIEUpOTtbUqVM1ceJEbd261VFjbGys46hXx44d/aLG5ORkRUZGOtpbLBZ99913tdbYvHlzNW7cWD//+c915swZx3zeeeed6tq1qy5evKizZ8/61Xy6qqr+du/erTFjxqhFixbq06ePxo4dq6SkJOXm5vrd+i3vs88+U1FRkXr37l1tfxXndty4cdqxY4fj9Tp48GCNHDlSTZo00blz5/yq3pMnT+r777/XmDFjFBoaqiuvvFI//elP9cEHH9S5Xn9ay7X116NHD/Xt29fxG35tKu67O++8U999950SEhIUEhKi8ePHq2vXriosLNQPP/xQr1pPnz6t66+/Xo0aNVJUVJT69eun7Ozsase2fft29ezZUz169FBkZKTS0tL09ddf69SpU/WutWnTpnr44Ye1d+9eXbp0SV26dFHXrl0VGhqqoqIi2e12v6nz8ssvd/pkX23vxQ15Tl3l6TVSUcAGroqKiop06NAhpaSk6NixY0pJSVFIyH/Lb9u2rY4dO+Zyv1u2bFH37t1rPF2UnZ2ttm3bOm6npKSotLS0xkVek2PHjumKK65w3G7btq2sVqvOnTvnVGNsbKwsFotTO1/WuGbNGo0dO1Z33XWXioqKdOONN7pco81mk/Tf+YyNjVVubq7fzefmzZs1YcIEpaen1/jDuK79FRUVKScnR7GxsX69frdu3aobbrjBKVxXVNvcSj/Wm5ubq/j4eL+qt7S0VJJklPtwt2EYysrKqrY/f17LnlbbWimrtXHjxiooKKhXrcOGDdM///lP5ebmqqCgQDt27FCvXr3qPLa4uDglJSXV+AO9JjXVWv7nzQ8//KDY2Fi/qvPdd9/V+PHjNXHiRB09elS33nqrW3VK/j+ne/fuVVpammbMmKGNGzc6XsPu9lcfQRG4DMPQn/70J3Xo0EHXXHONCgsLFRsb69QmNjZWhYWFLvVrt9u1Y8cODR48uMZ2RUVFTtuzWCyKiYlxeXvV9Vf274yMDKcaK56T93WNkyZN0vr16/X0009rwIABleagLjUWFhY6zWfTpk1VUlLiV/N52223afny5Xr11Vd19913a/Xq1Y7f8Nzpr6zeZs2aqUmTJn67fnNzc7Vnzx6X+ys/t9J/642Pj1fz5s39qt7WrVsrISFBb775pi5duqSDBw/qk08+UXFxsVv1+note1pN+658rS1atJDdbq9XrR06dFBpaal+8YtfaMKECcrJyanxutCioqJK39nkzr4t319VtRYUFDj9vLl06ZJCQ0Pd3q4ZdQ4dOlTr1q3T888/r5tvvllNmzZ1uc6GMKd9+/ZVRkaGXn31Vf2///f/tHnzZv3tb39zu7/6CvjAZRiGnn/+eZ07d05z5syRxWJRdHS0CgoKnNoVFBQoOjrapb4//fRTlZSU6Kc//anjvvXr12vcuHEaN26cyr5TNioqyu3tPf/8847+nn/++Sr7K/tNOTc316nGkpISv6vRYrGoQ4cOCgsL0+uvv17nGsv+HRUVVWk+w8LC/Go+27dvr/j4eIWGhurqq6/WsGHDtGvXLrf6K79+e/fu7dfrd8eOHWrZsqVSU1Md97kytxXr7dq1q9/VGxYWpl//+tfav3+/Jk+erJdfflmDBg1ynGJoaGu5PlzZd1XVGhoaWq9af//73+uyyy7T66+/rvXr16tHjx564oknJP24FsvGNnPmzGrHZrPZ6rS9utZqs9n097//3anO8PBw2e12v6yzdevWatOmjZYvX+5SnQ1lTpOTk9WsWTOFhIToyiuv1Lhx4xzvxZ5eI3URsJ9SlH4MW8uXL9eRI0f029/+VlFRUZJ+nIS//OUvKi0tdRz6PHr0qG655RaX+t+yZYv69evn9AmIsgksLyUlRUePHlX//v0l/XjYMiQkRJdffnmt25gxY4ZmzJjhdF9ycrKOHj2qzp07O35AhYWF6Te/+Y1TjTabzenUhz/VWFpa6jgvXluNZWNv1qyZXn311UrzGR8fry+//NJv59NisTjmwZX+WrZs6bR+N23a5Ng3/rh+t27dWumISl3nNjExUTExMU71vvjii35Z7xVXXKGFCxc62j/11FOOkNnQ1nJ91HXfWSwWvfvuuzp69KhTrTExMcrOzna71uzsbN1zzz2OIxK33Xab1q9fr9zcXA0YMMDxifTyYyt/6jc/P19Wq1UpKSkeqbWs7zNnzmjhwoWOOhs3biybzea3ddrtdsd7caDPaflLbDy9RuoioI9wrVixQgcPHtSCBQucDhNeffXVCg8P16ZNm3Tp0iV9+OGHjov1pB+DWnFxsS5duiTpx49WVzxlcOHCBe3du1c33XRTreMYOHCgtm7dqqNHj6qgoECZmZnq27ev4zoXu92u4uJilZaWqrS0VMXFxZWOTpU3aNAgvfXWW/r+++/13HPP6YsvvtDtt9/uqLGkpESpqakKCQnRwYMHZbPZtH37dp/VWLb9goIClZaW6quvvtJ7772nHj161KnG3NxcrVu3TgkJCY75jIiIcOyzZs2aKTw8XH/5y1/8Yj537tzpVOs777zjdKShrv2tXr1aBw8e1OOPP66wsDDH+khNTfWr9StJhw8f1rFjxyq9gVWlqrkdPHiw4/X62GOP+XW9WVlZunjxooqLi7Vlyxbt27dPw4cPd6lef1nLtfVX9t5U9n5Uvm1d913z5s116NAhLViwQJGRkY5a4+Li6lVrx44d9f7776uoqEiXLl3SO++8o2bNmlX74aMBAwZo79692rdvny5evKjMzEylpqaqZcuWHql14cKFiomJ0W9/+1vFxMQ4+ktMTFRISIg2btyowsJCn9f53nvvKTc313Ht4caNG9W9e/eAnNNPPvlEeXl5kn4Mfm+++WaN78WeXiMVBeyf9vn+++81bdo0hYeHO50/HzNmjMaNG6esrCwtW7ZMWVlZat68ue6991517dpV0o+/odx9992V+nzrrbcc//7rX/+qHTt26E9/+lOdxlP++1p69eqlWbNmOQLS2rVr9cYbbzi1HzhwoB544IEq+zIMQ5mZmXrnnXdks9kUEhLi9F0ml19+uY4cOeL0nPj4eM2dO9cnNRYUFGjRokU6fPiwSktL1bRpUw0ePFijRo1y+o2jqhrfe+892e12/eQnP9GHH37omM9Lly5VOkzftGlT5efn+3w+586d6/gtLzExUT/72c9qvCi1qv5+/vOfa9asWY5Pm1YM4Nddd50uXLjgF+tX+vGXG6vVql//+te19lVxbvv166cRI0bol7/8pcLDw1VaWlppbm+55RYdOXLEL+pds2aNNm/erJKSEl155ZWaNm2a2rVrV+d6/Wkt19bf1q1bK/XTtWtXLVq0qNo+y++7q666Snv37nXUWlJSUmktx8fHq6ioyOVav//+e7344os6cOCASktLdcUVV2jq1Knq0KFDtWPbuXOn1qxZo/Pnz6tLly5O37FUn1ptNpsuXrzo9POmqlpDQkLUqlUrn9a5aNEiffXVV7p48aKaNGmivn37asKECU5HQ6urs6HN6ZIlS/Tvf/9bly5dUpMmTTR48GCNHj260jV1de3PnTVSXsAGLgAAAH8R0KcUAQAA/AGBCwAAwGQELgAAAJMRuAAAAExG4AIAADAZgQsAAMBkBC4AAACTEbgAAABMRuAC4FPz58+XxWKRxWJRSEiIGjdurG7duum+++7TgQMHXO5vx44ddf7mZwDwFgIXAJ+Ljo7W7t279fHHH2vDhg2aPHmytmzZoh49eui1115zqS8CFwB/FObrAQBASEiI0x+VvemmmzRjxgwNGzZMd911l3r37l3j3ysEAH/HES4AfikqKkrPPfeciouL9ec//1mS9Morr6hv375q2rSpEhISNGDAAO3Zs8fxnPnz52vBggWy2WyO05QDBgxwPH7gwAENHz5cjRs3VmxsrIYNG6bDhw97uzQAQYgjXAD8VpcuXdSqVSvt3r1bkpSVlaU777xT7du3V3FxsdauXat+/frp888/V8eOHTVt2jSdOHFCa9eu1bZt2yRJ8fHxkqQjR46od+/e6tq1q1avXq2QkBAtXLhQgwYN0sGDBxUZGemzOgEEPgIXAL/Wpk0bnT59WpL0+OOPO+4vLS3VTTfdpE8//VSrV6/WokWL1Lp1a7Vu3brSKUpJWrBggRISEvTBBx8oKipKktS7d2+1bdtWL7/8smbMmOG9ogAEHU4pAvBrhmHIYrFI+vGU4MiRI9W8eXOFhoYqPDxcBw8e1DfffFNrP++//76GDx+usLAwlZSUqKSkRAkJCerevbs+/fRTs8sAEOQ4wgXAr504cUIdO3ZUXl6ehgwZoqSkJD3zzDNKSUlRVFSUpk2bpqKiolr7sVqtevbZZ/Xss89Weiw6OtqMoQOAA4ELgN/68ssvdfLkSU2ePFm7d+/WiRMn9Pbbb6t79+6ONj/88INat25da19NmzbVsGHDqjx1GBcX59FxA0BFBC4AfqmoqEizZs1SZGSkpk2bpn379kmSIiIiHG0+/vhjZWVl6aqrrnLcFxERoYsXL1bqb/Dgwfriiy90zTXXKDQ01PwCAKAcAhcAnystLdUnn3wiScrPz9f+/fv14osv6siRI1q9erWuuOIKRUdHq1GjRpo5c6bmzp2rkydPav78+WrVqpVTX507d1ZJSYn+9Kc/qXfv3oqPj1dqaqoWLFign/zkJ7r55pt1zz33qHnz5jp9+rQ+/PBD3XDDDbrjjjt8UTqAIEHgAuBzhYWFuv7662WxWNSoUSOlpKRo0KBB+utf/6pOnTpJkpo3b64333xTs2fP1vDhw9WxY0ctX75cTz75pFNft912m2bMmKHFixfr+++/V79+/bRjxw5deeWV2rNnj+bNm6cZM2YoPz9fLVu2VL9+/dStWzdflA0giFgMwzB8PQgAAIBAxtdCAAAAmIzABQAAYDICFwAAgMkIXAAAACYjcAEAAJiMwAUAAGAyAhcAAIDJCFwAAAAmI3ABAACYjMAFAABgMgIXAACAyQhcAAAAJvv/prBqdwrDlqEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<ggplot: (8775365863046)>\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<ggplot: (8775370025578)>\n"
     ]
    },
    {
     "data": {
      "image/png": "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atdjrXx5AgAAwCK4FAsAAGARBDsAAACLCPV3B653lZWVWrBggfbu3avi4mIlJibq4YcfVv/+/SVJeXl5mjt3rnJzc9W8eXONHTtWt9xyiznt73//u77++msVFxdr1apVCg8PN9seP368zp4967auVq1aae7cuVfsz/r167Vq1So5HA716tVLEyZMMD8bsH79em3ZskW5ublKTU3VpEmTrlnf4sWLtWHDBjmdTjVt2lQVFRVmnS1atNDp06d17NgxDRgwQPn5+QFR57x58/Tvf/9bDodDcXFxGjx4sNLT0+tUp8vl0l133SWn06l9+/apuLhYYWFhCgsLU2FhoYYNG6b+/fsHzD599dVX9eGHHyo09PuhPH/+fCUlJdWpvZ49eyoiIkJffPGFiouLFRkZqfDwcH377bdKTU1Venp6wNR66T6sqKjQ7bffrqlTp16xvZr7tU+fPvrFL36hv/3tb9q7d6++++472Ww2VVVV6aGHHtITTzwRUOP15MmTWrBggQ4fPqzo6GiNHDlSgwcPvmJbl9YbSMfxtdrbsWOH1q1bp6NHj6pt27aaMWPGVeu8dNt58zguLi7WggUL9H//93+SpFtvvVVPPvmkEhISrti3nTt3atGiRTp37py6dOmip556Ss2aNWtUre+++66KiooUGhoqm82mpKQkPfzwwyopKdGWLVuUk5Oj6OhoXbhwwe81Ll26VJs3b1ZJSYmioqLUp08fPfHEE26vU7XVWHMsPPnkk/rHP/6hvXv3qrCw0Byrd911lyZNmtSoseqNet99912FhYWZ87/wwgtmf+rbXkOOETcGGsXhcBiLFy82Tp06ZTidTuOLL74wRo4caRw4cMCorKw0Ro8ebaxatcqoqKgwtmzZYvz85z83iouLDcMwjGPHjhkbN240Pv74Y2Po0KHGhQsXrrqup59+2li+fPkVp3/22WdGRkaGceTIEaO0tNR46aWXjFmzZpnTd+7caezevdv461//avz3f//3NWvbuHGj8etf/9o4ffq0cfr0aeOJJ54wFi5caNY5fPhwY+3atcYf/vAHY+TIkQFTZ15enlFeXm4YhmGcOXPGGDdunPGvf/2rTnWeO3fO+O1vf2tMnjzZ3Kdvv/22MWLECGPy5MnG3//+94Dap3/5y1+MRYsWXXUdV2tv2rRpxoQJE8xaly9fbowYMcJ4+eWXjVde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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<ggplot: (8775365895032)>\n"
     ]
    }
   ],
   "source": [
    "chart_portfolio_stats(ps)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:whitelist]",
   "language": "python",
   "name": "conda-env-whitelist-py"
  },
  "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.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
