Skip to content

The purpose of this exercise is to calculate how many people need to be shown the new assets before we can check if the results are a significant improvement.

Notifications You must be signed in to change notification settings

charlstown/SampleSizeCalculation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Sample size determination in Python"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The purpose of this exercise is to calculate how many people need to be shown the new assets before we can check if the results are a significant improvement.\n",
    "\n",
    "Nosh Mish Mosh wants to run an experiment to see if we can convince more people to purchase meal plans if we use a more artisanal-looking vegetable selection. We’ve photographed these modern meals with blush tomatoes and graffiti eggplants, but aren’t sure if this strategy will sell enough units to benefit from establishing a business relationship with a new provider.\n",
    "\n",
    "Before running this experiment, of course, we need to know how many people have to see the new assets. We don’t want customers seeing food that we won’t end up offering. Of course, there are three things we need to know before we determine that number."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The basics in sample size determination for A/B Tests\n",
    "- Baseline conversion rate: the approximate percent of the population that satisfies the hypothesis.\n",
    "- Statistical significance: the probability of the study rejecting the null hypothesis, given that the null hypothesis was assumed to be true.\n",
    "- Minimum detectable effect: the lift is the minimum difference between the A and B samples we want to be able to detect.\n",
    "- The confident level: How confident we need to be."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:16.619751Z",
     "start_time": "2020-02-25T19:40:15.154006Z"
    }
   },
   "outputs": [],
   "source": [
    "# Libraries\n",
    "import noshmishmosh\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from scipy import stats\n",
    "import math\n",
    "import seaborn as sns\n",
    "from matplotlib import pyplot\n",
    "\n",
    "# Functions\n",
    "def tolist(tag):\n",
    "    out = [i[tag] for i in visits]\n",
    "    return out"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 00. Generating the dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:16.640737Z",
     "start_time": "2020-02-25T19:40:16.622747Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     ids            name  clickedthrough  purchased  moneyspent\n",
      "0  83421    Michael Todd            True      False         0.0\n",
      "1  46042  Brianna Harmon            True      False         0.0\n",
      "2  23766    Mario Arnold           False      False         0.0\n",
      "3  20859      Paul Quinn           False      False         0.0\n",
      "4  57771    Jerome Moore            True      False         0.0\n"
     ]
    }
   ],
   "source": [
    "visits = noshmishmosh.customer_visits\n",
    "\n",
    "df_visits = pd.DataFrame({'ids': tolist('id'),\n",
    "              'name': tolist('name'),\n",
    "              'clickedthrough': tolist('clickedthrough'),\n",
    "              'purchased': tolist('purchased'),\n",
    "              'moneyspent': tolist('moneyspent')\n",
    "             })\n",
    "\n",
    "\n",
    "print(df_visits.head())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 01. Calculating the baseline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:16.653729Z",
     "start_time": "2020-02-25T19:40:16.644734Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of visitors that purchased: 93\n",
      "Number of total visitors: 500\n",
      "The baseline is: 18.6 %\n"
     ]
    }
   ],
   "source": [
    "paying_visitors = df_visits[df_visits.purchased == True].ids.count()\n",
    "print('Number of visitors that purchased: {}'.format(paying_visitors))\n",
    "\n",
    "total_visitors = df_visits.ids.count()\n",
    "print('Number of total visitors: {}'.format(total_visitors))\n",
    "\n",
    "baseline = paying_visitors/total_visitors\n",
    "print('The baseline is: {} %'.format(baseline*100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 02. Minimum Detectable Effect\n",
    "We’d like to know for sure that we’ll be pulling in at least $1240 more every week. In order to figure out how many more customers we need. We’ll have to investigate the average revenue generated from a given sale. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:16.663722Z",
     "start_time": "2020-02-25T19:40:16.656727Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "These are the first 5 payments sample: [39.01, 10.16, 36.88, 23.41, 33.49]\n",
      "The average payment is: 27.0 $\n",
      "We need 46 payments to pull in the revenue\n"
     ]
    }
   ],
   "source": [
    "revenue = 1240\n",
    "\n",
    "payments = noshmishmosh.money_spent\n",
    "print('These are the first 5 payments sample: {}'.format(payments[:5]))\n",
    "\n",
    "mean_payments = round(np.mean(payments))\n",
    "print('The average payment is: {} $'.format(mean_payments))\n",
    "\n",
    "n_payments = np.ceil(revenue/mean_payments)\n",
    "print('We need {} payments to pull in the revenue'.format(int(n_payments)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 03. Calculating the lift percentage"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now find the percent lift required. What percentage increase is needed to pull in the revenue?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:16.670717Z",
     "start_time": "2020-02-25T19:40:16.665721Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The lift required is: 9.2%\n"
     ]
    }
   ],
   "source": [
    "lift = n_payments/total_visitors\n",
    "print('The lift required is: {}%'.format(lift*100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "In order to find our minimum detectable effect, we need to express percentage_point_increase as a percent of baseline_percent."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:16.677713Z",
     "start_time": "2020-02-25T19:40:16.672716Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The minimum detectable effect is: 1.0\n"
     ]
    }
   ],
   "source": [
    "minimum_detectable_effect = np.ceil(lift/baseline)\n",
    "print('The minimum detectable effect is: {}'.format(minimum_detectable_effect))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 04. Overview of the two proportion Z test\n",
    "The two-sample Z test for proportions determines whether a population proportion p1 is equal to another population proportion p2. In our example, p1 and p2 are the proportion of visitors before and after the marketing change, and we want to see whether there was a statistically significant increase in p2 over p1.\n",
    "\n",
    "\\begin{equation}\n",
    "Z = \\frac{P2-P1}{\\sqrt {P*(1-p*)(\\frac{1}{n} + \\frac{1}{n})}}\n",
    "\\end{equation}\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\\begin{equation}\n",
    "p* = \\frac{n1p1 + n2p2}{n1 + n2}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Where p* is the proportion of 'successes'. In this example the number of paying visitors."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ultimately, we want to make sure we’re able to calculate a difference between p1 and p2 when it exists. So, let’s assume you know that the “true” difference that exists between p1 and p2. Then, we can look at sample size requirements for various confidence levels and absolute levels of p1.\n",
    "\n",
    "We need a way of figuring out Z, so we can determine whether a given sample size provides statistically significant results, so let’s define a function that returns the Z value given p1, p2, n1, and n2."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:16.684708Z",
     "start_time": "2020-02-25T19:40:16.679712Z"
    }
   },
   "outputs": [],
   "source": [
    "# Test that both populations have the same proportion.\n",
    "def z_calc(p1, p2, n1, n2):\n",
    "    p_star = (p1*n1 + p2*n2) / (n1 + n2)\n",
    "    return (p2 - p1) / math.sqrt(p_star*(1 - p_star)*((1.0 / n1) + (1.0 / n2)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then, we can define a function that returns the sample required, given p1 (the before probability), p_diff (i.e. p2-p1), and alpha (which represents the p-value, or 1 minus the confidence level). For simplicity, we’ll just assume that n1 = n2. If you know in advance that n1 will have about a quarter of the size of n2, then it’s trivial to incorporate this into the function. However, you typically don’t know this in advance and in our scenario an equal sample assumption seems reasonable.\n",
    "\n",
    "The function is fairly simplistic: it counts up from n starting from 1, until n gets large enough where the probability of that statistic being that large (i.e. the p-value) is less than alpha (in this case, we would reject the null hypothesis that p1 = p2). The function uses the normal distribution available from the scipy library to calculate the p-value and compare it to alpha."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:16.692704Z",
     "start_time": "2020-02-25T19:40:16.687707Z"
    }
   },
   "outputs": [],
   "source": [
    "# Sample calculator\n",
    "def sample_required(p1, p_diff, alpha):\n",
    "    n = 1\n",
    "    while True:\n",
    "        z = z_calc(p1, p1+p_diff, n1=n, n2=n)\n",
    "        p = 1 - stats.norm.cdf(z)\n",
    "        if p < alpha:\n",
    "            break\n",
    "        n += 1\n",
    "    return n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 04. Calculating the sample size\n",
    "These functions we’ve defined provide the main tools we need to determine the minimum sample levels required. In this example, we want to calculate a 9.2% difference with a 95% confidence level, with a p1 as a baseline of 18.6%. We can calculate our Sample Size needed in this case and plot all the sample sizes depending on the baseline or the initial probability."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:45:12.949699Z",
     "start_time": "2020-02-25T19:45:12.925714Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The final sample size is calculated with a baseline of 18.6% and a lift of 9.2%. \n",
      "\n",
      "For this example Nosh Mish Mosh needs to show the new pictures to 114 people to make sure there is any improvement\n"
     ]
    }
   ],
   "source": [
    "sample_size = sample_required(baseline, lift, .05)\n",
    "print('The final sample size is calculated with a baseline of {}% and a lift of {}%.'.format(baseline*100, lift*100), '\\n')\n",
    "print('For this example Nosh Mish Mosh needs to show the new pictures to {} people to make sure there is any improvement'.format(sample_size))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 05. Ploting the minimum sample size needed by the initial probability"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:40:17.964127Z",
     "start_time": "2020-02-25T19:40:16.719287Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Probability Difference  Sample Size to Detect Difference Confidence Level  \\\n",
      "0                   0.092                                29              95%   \n",
      "1                   0.092                                34              95%   \n",
      "2                   0.092                                40              95%   \n",
      "3                   0.092                                45              95%   \n",
      "4                   0.092                                51              95%   \n",
      "\n",
      "   Initial Probability  \n",
      "0                  0.0  \n",
      "1                  1.0  \n",
      "2                  2.0  \n",
      "3                  3.0  \n",
      "4                  4.0  \n"
     ]
    }
   ],
   "source": [
    "baseline_range = [i*.01 for i in range(96)]\n",
    "\n",
    "data = []\n",
    "for bsl in baseline_range:\n",
    "    record = {}\n",
    "    record['Probability Difference'] = lift\n",
    "    record['Sample Size to Detect Difference'] = sample_required(p1=bsl,\n",
    "                                                                p_diff=lift,\n",
    "                                                                alpha=.05)\n",
    "    record['Confidence Level'] = '95%'\n",
    "    record['Initial Probability'] = bsl * 100\n",
    "    data.append(record)\n",
    "\n",
    "df = pd.DataFrame(data)\n",
    "print(df.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:55:09.337700Z",
     "start_time": "2020-02-25T19:55:08.378283Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAIZCAYAAAC8p9WsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3iUVdoG8Hv6pPdeCKEECIQQIAgiIkhRsGHFvuLuuvutLrsuugILorKgoqJigxUL2GJFAcFCE5AWQhFCEhLS26Rnkkymvd8f0WhMZiYhmXdK7t91eZm858zkSZjyzCnPkQiCIICIiIjIBUkdHQARERHRxWIiQ0RERC6LiQwRERG5LCYyRERE5LKYyBAREZHLYiJDRERELouJDBEREbksuaMD6Cu1tU0wm1kSh4iIyJVJpRIEBHh1u7/bJDJms8BEhoiIqJ/h1BIRERG5LCYyRERE5LKYyBAREZHLcps1MkRERPZiMhlRW6uB0ah3dChuRS5XIiAgBDLZxacjTGSIiIhsqK3VQK32hJdXOCQSiaPDcQuCIKCpqQG1tRoEB0dc9P1waomIiMgGo1EPLy9fJjF9SCKRwMvLt9ejXExkiIiIuoFJTN/ri78pExkiIqKLUFVVhaVLH8W9996OO++8GRs2vAZB6Hk9s/379+KGG67Gxo3r8eCDf+7UfuDAD1i58vE+iLh75syZ3uf3WVZWigUL7urz+wW4RoaIiKjHjEYjHn30H3jggf/D+PGXQK/XY+nSR/HZZx/jxhtv6dF97du3BwsX/guXXz7NTtG6NyYyREREPXT06CFER0dj/PhLAABKpRILF/4LNTXVAIDvvtuJd955ExKJBDNmzMZdd/0Bb775Bqqrq3DhQi7q6urw6KNLUV1dhR9+2IuMjOPw9PTC448vxrZt36OwMB8rVvwHgmBGZGQ0PDw8AAAnT57AK6+shV6vR2LiSPzzn49i587tOHbsCDSaSlRUlOPPf/4bpk+fgeLiIqxcuRxNTU2IiYnF8uUrYTDosXr1UygpKYaHhwceeWQJBgyIs/n7Go1GPP/80zh3LhMymRQPPvhPyOVyrF//KtaufRUA8PTTKzF58hQkJAzD6tVPoqamGgEBQXjssWX2+Uf4GaeWiIiIeujChTzExw/ucC0yMgojRyahqqoK//vfG3jllQ14883NOHhwP06ezAAAVFVp8Oqrb+LBB/+Jd955E9Onz8TkyVOwcOG/MH78hPb7Wrv2OSxY8Gds3PgePD09AQAGgwGvvvoinnvuZbz99vtQKJTYsWPbz/Hk4vnn12H16uexYcNrAIDnn38Gd9xxD9599yNERERh//59ePvtN3HllTOxceNmPPTQw3j22f926/fdsuUzxMYOwMaNm7Fy5bN45pmVGDFiJMrLy9HQ0ACTyYSMjHSkpl6CtWvX4P77/4KNG9/DtdfegNdff7nXf29rOCJDRETUYxLI5V2/hZ47dxZjxoyFr68fAGDatBnIyEgHAIwZMw4SiQRxcQPR2Nho8d7PnTuLSZMmt9/++++/QWFhAfLz89rX0ej1rVCpVBgwIA5JSclQKBQYODAeWm1D+31Mnnw5AOBvf1sIANi8+W0cPnwQb731PwBAU1NTt37b48ePIi8vFzt2bG+/XV1dHaZMuRw//rgfISGhSEwcCYVCgRMnjqO4uAgAIAhmeHv7dOtnXCwmMkRERD00ZMgQbNv2VYdrWVnn8P33OzFy5OgO1wVBgMlkAgAolQoAbbt1bC0MFgQBEokEMpkMAGA2m5CQMBwvvfQ6AKCpSQuJRIo9e76HQqHsdL+/TbTaRk2MMJvNeOaZFxEeHg4A0Ggqu/X7ms1mPProUiQnpwBoG1ny8/PDtGkzsHnz2wgODsG0aTN+iRxvvrkJMpkMRqMRjY2N0OlauvVzLganloiIiHpozJhxuHAhD0ePHgIA6HQ6vPHGOoSFhWPEiEQcP34UDQ31MBgM2L37O4waNdrGPXY0YkQifvhhLwBg795dAIDY2AEoKipEfv4FCIKAVauexK5d31i8j6FDE/Djj/sBAO+88yb27NmFUaNGY+vWLwAA+/fvw/Lli7sVT9vttgAAcnKy8Ze/LIAgCBg2bARKS0uQkXEcqalt64WGD0/E119vBQB88cUnWLfu+R797j3FERkiIqIeksvl+O9/n8Vzz63GunUvwmDQ48orZ+HGG28FACxY8Gf87W9/gtFoxLRpM5CaeglOnz7Z7fv/xz8ewYoVS/HWW+sRHz8IUqkMKpUaixcvw4oVS2AwGDBixEhcddU12Llzu8X7WLXqCbz++isYODAef/nLg2hq0mLVqidw9923QqVSYfHixzvdrr6+HjNmXNb+/R133IP58+/EmjWrcdddt0AqlWLp0hWQStvGQlJTJ0KjqYRCoWj/uatXP4mPP/4APj6+ePzx/8JgsN/RDhLhYja9O6Hqai3MZrf4VYiIyMmUlxcgPHyAo8NwS7//20qlEgQFeXf79pxaIiIiIpfFRIaIiIhcFtfIEFG3mQUBGdlVOHC6DLWNrQj2V+Py5Eh4KOXYnVGCkqomeKvlSB0RhiHRfth3ogxZRXWQySQYPSgIqcPDkJ6lwYkcDQwmMwZF+mHqmCgUVjTi4JlyNDYbEB7oiSvGREEQBOzOKEFFTQt8vZSYNDIcMaHe2J1RgrzSeihkUqQMDcFloyPhoeJLGVF/Zdc1MlqtFrfddhtef/11REdHIyMjA6tWrUJTUxMSEhKwevVqKJVKZGZmYsmSJWhqasK4ceOwYsUKi/vzLeEaGSL7MpsFbNh6FofPVnSrv0QC/P7VRSqVdHqeSgB095nbVd+wQE88evsY+HurunkvRD3HNTL247RrZE6ePIn58+cjPz8fQFtS8+CDD+KJJ57Atm1tlQg/+eQTAMCiRYuwbNky7Ny5E4IgIC0tzV5hEVEPCYIAs1nA/tNl3U5i2m7X+VpXHzZ68vGjq74VNc1475vstjh/90N/iZ2I3JfdxmPT0tKwfPlyPPLIIwCAAwcOIDk5GcOGDQMALF26FCaTCSUlJdDpdEhOTgYAzJs3Dy+99BJuv/12e4VGRN1QUduMrw7k41hWJfQGM5Ry511Sl56twZ+e3QOzICAhxh+XJUUgp7gehzMr0NJqQmSwF6aPjcblyZGQSiSODpeI+pDdEpmVK1d2+L6goACenp74xz/+gby8PKSkpODf//43zp49i5CQkPZ+ISEhqKjo/qc+Iup7JVVNWL05HU06Y/s1vdHswIhsM/088nKusA7nCus6tJVWNWHTziwUlDfintkJkDCZIXIboq2QM5lM2L9/Pz766CNERkZiyZIlWL9+PSZNmtThReWXksw91ZP5NKL+rqnFgOLKRniqFYgO9YZEIoHBaEZBWQMgAT7bl9chiXEX+06WYvKYKAT4qhHk64GQgLYThX/5e3io5IgJ82GiQ51UVkoht/OoZE5xHb45UoT88kaolTKkDg/F9LEx8FT3zVv1u+++ha1bv4RCocCVV87EH/5wP558cjlOnjzRfrr2ggV/wtSp0/Dyyy9g9+5dGDUqCStWtA1MfPvtTjQ0NODGG2/uk3h+IZVKERJy8ecxiZbIBAcHY/To0YiJiQEAXHXVVdi8eTPmzZsHjUbT3q+qqgqhoaE9vn8u9iWyrdVgQtqu89h/ugyGn0dYIoM8MSTGHxnZGjQ0Gxwcof399+2j7V8Pi/WHv7cK6dma9r9HVLAXbp0+GCMHBjkqRHJCZrMZRjuOSu7JKMG7O7M6XCsob8S+k2X49x0p8PNS9ur+jx49jJ07v8aGDe9ArfbA4sX/wvfff4fMzLNYt24DgoOD2/vW1tbj4MEDSEvbgkWL/o5z57IQFzcQ27Z9hdWrn+/zv4PZbIZG8+sBmk6z2Pf3Jk+ejDNnzqCsrAwAsHv3biQmJiIqKgoqlQrp6W0ng27ZsgVTpkwRKyyifsMsCHjls9PYnVHS/qYNAKXVzdh7orRfJDG/d66wDofOVnT4e5RUNWFt2kmcza9xYGTUn1TX67D52+wu2ypqmvHRrpxe/4ycnCykpk6El5c3ZDIZJkyYhO+++wYVFeVYteoJ3HPPbXjzzTdgNpshk8lgNpvR2qqDTqeDQqHAZ599jLlzr+vxjmIxiBZRREQEnnjiCTzwwANobW3F8OHD8eijjwIA1qxZg6VLl0Kr1SIxMRF33323WGERuTWjyYzTedWoqtehqcWAny70zZuzl1qOVoMZIf5qTEmKgIdajt0ZpSitaoKXWo4JI8Iw+Oc6MtlFdZBJJRg9OAgThofhWJYGGV3UkfnxTDkamgyICPLElORIQAD2nihBeU0L/LwUmDgyAjEh3thzogS5JfWQSSVo0Zv65Pf5PbMAfPh9Dq5IiQYAjIgLQFiAp11+FtGBn8qszigczazEnTMSejXFNHToMLz88vO46657oVKpsX//PgiCGSkp4/Hww/+Gt7c3HnlkIbZu3YJrr70Bc+ZciwUL7sKkSZchODgYx44dwTPPvHDRP9+eeNYSkZvKLKjFhq/OoE7bt4e1KeRSPPvXSfD17N1Qd19Y/d5xZBfV2e7YBy5JDMO9s4dBqZCJ8vPIudizjszG7ZnYf6rMap+Vf5yAiCCvXv2cDz/cjK+/3gofH1+MG5eKs2d/wjPPrG1v37t3N3bs2IZVq9Z0uN0bb7yCCRMmoq6uFl99tQUxMTF46KGH2w+N7C2nrSNDRI5TXtOMFz8+2edJjFwmwZ+vTXSKJAYA7p8zHMF+6k7XpdK+X6x76EwFNn2TZbsjUQ8F+lgv5iiVSuDbyzUyzc1NmDp1Ot5550OsW7ceSqUSra2t2LPn+9/0EjpNHWk0lSgtLUZycgpef/0V/Pe/z0Kv1+PYsSO9iqcvOd9kFxH1mCAIyC1twOGzFWjWGVBZ29Jn26UTYv0hCEBcuA+uSIlyqimWYH8PPP6HVBw4XYZTuVUwmQUMiw3A5J/ryBzJrECTzoiGJj3Ka5p7/fMOnC6H+ec/a1y4DyaNCoeXWtHr+6X+bdKoCHx1ML/LIpIAkDI0pNePs9LSUjz11HL873/vQqfTYevWLVi0aDGefHIZUlLGw9PTE1u2fI6rrprT4XYbN67HPffcDwAwmYyQyWSQSqXQ61t7FU9fYiJD5OLMZgEbt2fi4E/lfX7fyYOD8dBNSX1+v33JUy3HjPExmDE+psP1CSPUmDAiDEDb7o8n3zmKvph9/vFMefv/txy4gL/flIQh0f69v2Pqt0L9PXDLFYPx0a7zndqCfNW4bdrgXv+MwYOHYOrUabj33vkwmUy49dbbMWbMWNx55734618XwGg04vLLp2HGjNntt8nLOw9Agvj4QQCAm266FfPn34iYmFikpk7sdUx9hWtkiFzc9kMF+GRPbq/uw9dLiYamjtNQQ2P88eCNo9xmxOHw2Qps3J7ZYYeSTAqolHI096JmjpdajqcfmNRntT7IOYlx1tKZCzX49lgRCsoboVLKMH5YKGaMj3GaqVx76e0aGT7ziFxMbWMrvksvwuncGpjMZtQ06Hp8H8MG+CMuzBdqpQzjhoUiIsgTZwtqkZlfC4kESIwLREKsv1sVhpswIgyJAwNx6Ew5qht0CPBWYUJiODxVcqRnV6KwXAtBEPDNsSKLQ/xdadIZcehsOab9vMOJ6GIlDgxE4sBAR4fhcpjIELmQ4kotnvkgA9qWi6/5olLIcPesYQgP7LjWJTEuEIlx7v0i6u2hwJXjYjpdv2REOC4Z0fa10STg++PFPbrfwopG252IyC6YyBC5CEEQ8Oa2zF4lMeGBnrhvzvBOSQz96rYrB0MqlWB3RjGMpu4NzaiVMjTrjFCrZDyUkkhkTGSIXERhhRYFF/HJf/70wfDzViHAR4XBUX5uNV1kDzKpFPOvHII5kwYgp6geAPD14QLklTZYvM3ujBJ8c7QY3h4KXDY6AtdMioNayZdXd3OxZwGSZX2xTJfPNCIXoalr6fFtRg8KwvRxMRwluAi+nkqMTQgBAPh7K/HM+xkwmLre0m4wtr0Ya1sM+PpQIbKL6vDI/DFQyFk8z13I5Uo0NTXAy8uXyUwfEQQBTU0NkMt7t5iZu5aInJy2xYCiikZU1unwzo5z3bqNl1qOqWOicO2lA6Gw84m9/UVuST0+3ZuLc4VtlYTlcgmMRsuvOfOmDMTASD94qxWIDfPmm5+LM5mMqK3VwGjs2yKT/Z1crkRAQAhksl/HVXq6a4mJDJGT0htM+HDXeew/VdqttRpeajmeuC8VRrOAAB8V5DImMPbQ2KxHq96ENR+eQGU3R8nCAz1xx8yhbr+Ymqgv8IgCIjcgCALe+PIM9mSUdCuJkUkluO/q4QjwVSPE34NJjB35eCoR7O+BJl33F12X1zRjbdpJ5BSLcy4UUX/CNTJETsJgNOPE+SpU1DSj1WBCRk6Vxb4KmRTeHgqYBQEJsf6YPSEWceG+IkZLkcFeyCmu73Z/k1nAh9/lYNywUEilEiQNCur1IYBExKklIqeQXVSH1774CfVN3Z9/f+K+VESHdn/4lfrWkcwKvL7lTK/uY2JiOO69ahjXMRH9BqeWiFxMdb0Oaz8+2aMkBoDFHTQkjvHDQjFzfOfiej3x45lyfLQrp48iIuqfOLVE5GC7Moqh05t6dBtPlRxRwZyWcCSJRILbpg/BuIRQ7D9ditpGPZpbDcgtsVxvpiv7TpbiuskD4ePm5+kQ2QsTGSIH+6XoWk9cOS4aSgVrlDiDwdF+GBztB6Btq/zi9Yd6VH3ZaBJwoawBSYOC7RUikVvj1BKRg8mkPasvMjU5EtdeOtBO0VBveHso8M9bRyPAR9Wj28mkfCkmulhc7EskslaDCbuPl+DHM+VobNZDIZNCU2/5BOuEGD8MHxAIhUKKlCEhCOM5SU7PaDLjRE4VSqqaYDKbsfVggcW+UikQ7OcBg9GMQVF+mDU+BoOi/ESMlsi5sCAekRPT6Y149oMTuFDWvXUUCrkUS+8ehxjuTnJpG7dlYv/psm71lUiA++eMwMSR4XaOisg59TSR4RoZIhE06QwwGs34Lr2420lMVLAX7pqVwCTGDdw9OwEeKjn2nCiBwWh9t5kgAG/vOIehsf6QSiTw8VSwwCGRFRyRIbKjrMJafL4vD9k/F06TSgBrD9PRg4NwxZgo+HopMSDMh+fzuBltiwH5ZQ3QNuuxfmum1b4SSVtS46mSY8roSFx32UCouMCb+gGOyBA5iZ8uVGPtx6c6JNi2cm1dq4m7V9yYt4cCI+ODkF1k+6iCXz5iNrcaseNIIS6UNeDh25I5OkP0O3xGENmBIAj44LucHo8SBvqq7RQROZNA357tagKArKI6HM2stEM0RK6NiQyRHRRValFW3dzj200ZHWGHaMjZBPt5IDEuoMe3O5JZYYdoiFwbExkiO2hpNfb4NrNSY5AQ2/M3N3JNd81KgL93z6r5Nl/E44rI3XGxL1EfMQsCMvNrkVVUB5PJjB2HC2HtERni7wFBEBAe5IkrxkQheXAwF/f2M/VNenyfXoTj2VUwGE1oajFaTVaGD/BHfKQffDyVmDA8FH7ePZ+iInJ2rCND5AB12la8+MkpFJQ3dqt/gI8KTz8wkQs3qYN9J0vx9tfnutVXJpXglisGY0YvD64kcjY8/ZpIZIIgYN1np7udxPh4KvDQjUlMYqiTy5IiMC0lqlt9TWYBH3yfgxM5VXaOisi5cfs1US9lF9Uhr9RykTuJBBg/LBQAMDjKD5NGRsBTzacedSaRSHDnzARMGhmBgz+VobHZgJoGHXKtPL52HC5A8hBu2af+i6+mRL10vsT66dWCAFw6KgKj4oNEiohcXXykL+IjfQEAqzanW+17vqQBgiBwfRX1WxzbJuolhdx2tVUFp5HoItmagpTLJUxiqF/jiAxRDwmCgENnK7DreDFKq5qgtlE23sdTwdOM6aKNGRKMzIJai+1qhQx/e2EfFHIpUoaG4KoJsQj29xAxQiLH4sdEoh56/7scbPjqLHJLGtDSakKtVm+1//WXxUMh51ONLs7kpAhEBHlabG9oNqC51Yj6Jj12Z5TgiXeOoUSjFTFCIsfiqytRD2QX1eH79GKL7b8d4ff3VuKe2Qm4Ykz3dqEQdUWtlOOR+WMwZkgwujOBpG0xYPM32XaPi8hZcGqJqAcOnC6z2q6US7Hw5tFQyGWIDfPmFmvqE37eKjx4YxJqG1tRWduM03nV2H6o0GL/rKI6aOpaEMIpJuoH+CpL1AP1TdankVoNZsSE+iA+0pdJDPW5AB8VEmIDbJ6iDgD1NqY8idwFR2SIbDCbBZwrrEW9Vm8zOfH2UECtsr2Liag3ujPSUqzRoqqhBUOj/XmqOrk1JjJEVmTm12Dj9nOobtB1q/+U0ZGQciss2dmE4aFI23UerQaTxT7v7swC0LZua1JiOO6alQCljR12RK6IY99EFhRVarH241PdTmKGRPvhmklx9g2KCICnWoE/XjMCMqntpFkQgAM/lePNbZkiREYkPo7IEFnw9eECGExmi+3hgR6QyaTwViswITEMl46M4DZrEk3K0BA8/ofx+D69GOdLGiCXSVBY0Whx/czRc5W4tqoJUcFe4gZKZGdMZIgsOHOhxmq7UiHD439IFSkaos6iQrxx9+xhAIBTudVY+/FJq/3PXqhhIkNuhx8fiSwQbO0M6cbOESLx2H5A8iFL7ogjMkQ/0xtMOPhTOY5lVaJVb4KHUgZti8Fi/xFxgSJGR2TdoCg/KORSGIyWp0PTsypxJLMC0SFeuGJMNAaE+4gYIZF9MJEhQls11DUfZqCwonul3T1UMkwby4q95Dy81ApMHxuNHYctF8rLKW47qT2vtAE/nCzDXbMSMJWVp8nFcWqJCMBHu3K6ncQE+6nxz1uTEezHqqnkXG68PB7Tx0ajG5uZIADY9E0Wymua7R4XkT1JBMHmSgCXUF2thbk75S6JfqdZZ8TCl3+A0WT58XPpqAgMivRFsL8aIwYEQtqddwoiB6ltbMXZ/BoYTGZ8vOs8WvSW683MTo3FLdMGixgdkXVSqQRBQd7d72/HWKDVajF37lwUF3c8ZG/z5s2466672r/PzMzEvHnzMGvWLCxZsgRGo9GeYRF1UNOos5rEAIBCJsHUMVEYOTCISQw5vQAfFS4dFYGxQ0OsJjEAUFHLERlybXZLZE6ePIn58+cjPz+/w/Xz589j/fr1Ha4tWrQIy5Ytw86dOyEIAtLS0uwVFlE7o8mMokottM2WF/T+wsdTKUJERH3LQyW3WduIj21ydXZLZNLS0rB8+XKEhoa2X9Pr9Vi2bBkeeuih9mslJSXQ6XRITk4GAMybNw87duywV1hEEAQB3x4rwqLXDmL5xiN45oMMm2sKJo0MFyc4oj4kl0mROizUap9LR/GxTa7NbruWVq5c2enac889hxtvvBHR0dHt1yorKxESEtL+fUhICCoqKnr883oyn0b920ffZuGD73I6XLO2vOr2mQkYmRBm56iI7OOP85KQXVIPTW1Lp7YQfw9MTI6GhOeDkQsTbfv1gQMHUFZWhsceewyHDx9uv242mzs8iQRBuKgnFRf7UndoWwz46Ltsi+0SCaBWyqE3mBAX7oMZ42OQOjwMGk2jiFES9a3Fd6Rg248FOHS2Ak0tBshkUhhNZmjqWvD6JycR5KuCv48Ko+KDbJ7wTmRvPV3sK1ois3XrVuTk5OC6665Dc3MzqqqqsHDhQixatAgajaa9X1VVVYfpKKK+dDqv2mrBMEEA7rt6GMYm8DFI7sPPW4XbZwzF7TOGAgCyi+qw+r3jAIDthwp+7eelxH1zhmNUfJBD4iS6GKIlMqtWrWr/+vDhw1i3bh3Wrl0LAFCpVEhPT8fYsWOxZcsWTJkyRaywqJ/RG6zv4GjrYznRIXIH/j4qSCUSmH9XfaO+SY+XPz2FpXePQ2wYq/6Sa3CKMcQ1a9Zg1apVmD17Npqbm3H33Xc7OiRyUwMjfG33ibTdh8iVfXe0qFMS8wujScCOI5arAxM5GxbEo37nv5vScb6kvsu25MHBeOimJJEjIhLXf/53GCVVTRbb/byUeOHBySJGRPQrpyqIR+SMPFSyLq8PjvbDfXOGixwNkfhs7afgJiZyJTw0ktxeXmkDvk8vRmFlI0wmof1smQAfFcYlhEAmlSIxPhAjBgRwGyr1C4kDA1GssTwiI5dJ8J83D0OtlGF8QiguGx0JDxXfLsg5cWqJ3NreEyV4d0cWunpk/G3eKKQMDemihci91TTosGzjETTrunccTFSwFx65fQyrAJMoOLVE9LOquhZs2tl1EgMAp3KrRI2HyFkE+qrxr9uSERns1a3+JVVNSNt13s5REV0cJjLktvafLrNasffHMxVotXGgHpG7igv3xZMLUvHYnSn44zUjMHlUhNX+hzMr0NLKA33J+TCRIbelqdNZbTcYzahv1osUDZHzkUgkGBLtj4mJ4YCN5WFGk4A6bas4gRH1AFdvkduprGtBTb0OSoX1PF0mlcDHQyFSVETOzd/b+voXqQTw9eIaGXI+TGTIbVTUNuPdHVnILKjtVv+xCSHciUH0s0kjI7DtYIHFNWVjhobAS83En5wPp5bILdQ36bH6vePdTmKCfFW45YrBdo6KyHWEB3pi3uXxFtsnJvIEeHJO/DhKbuG7Y0Wo11pe7+LnrYTBYIaHSobxw8MwKzUWfhwmJ+pgzsQ4RIV449ujRSgob4REAjT9vEX7kz150NTqIJVKMCIuAFEh3d8eS2RPrCNDbsFWyfUQfzWefmCSiBERuT5BEPDMBxnIKqzr1DY2IQT3zxkBlbLrStlEF4t1ZKhfMpisn1htNDHJJeopiUQCtaLrRCU9S4O3d5wTOSKizpjIkFsYHOVntX2QjXYi6qyyrgWncqstth85WwFNXYuIERF1xkSG3MLM8TEW2yQSYJaVdiLqWk5RncVdTAAgAMgu6jztRCQmLvYltyAIbfW8fv+iq1RIcc/sYRyRIboIUqntQ1Rl3ehDZE9MZMgltbQaset4MY5kVqKpxYAWvak9iZk4MhyBPioE+qqROjyUtS+ILlJiXCBkUglMFjZSyKQSjIgLFDkqoo6YyJDL0bYY8PT7x1Gi6bxLKdhPjewszcMAACAASURBVPvnDIdEwk+JRL3l66XE9LHR+OZoUZft44aFsNovORzXyJDL+WxfXpdJDABU1eusbsMmop655YrBuPqSAV0e+VFa1YxmnRENzXqY3aOSB7kg1pEhl2IwmvHgi/ugN1jebj1zfAxumz5ExKiI3F+zzoDzJfUQBAE7Dhch63eLfIN8VbhyXAxmjI+BlCOi1As9rSPDqSVyKc06g9UkBgCqG6yfek1EPeepViBpUDAAwGRGp0SmuqEVH+06j7LqJtx71XBHhEj9FKeWyKV4qhU2T7UO8lWLFA1R//R9erHFtn0ny5Bf3iBiNNTfMZEhl6KQSzExMdxqn8mjIkSKhqj/qW/S2zyc9fDZCpGiIWIiQy4odVioxbYbpsQjOpSH2RHZS7POYLPPLwdNEomBa2TIJRSUN+J0XjVMZjMOn61sv+7vrYREIkFMqDemj43GqPggB0ZJ5P6CfNXwUMrQojdZ7KNrNeHzfXkI9ldjXEIoPFR8qyH74a4lcmqtBhPWf3kGGTlVndoGRfli8Z1jWTOGSGQffp9jsbbM73mo5Pjj3BFIHhJs56jIXfD0a3Irm3dmdZnEAD8fS8Akhkh0N14ej5EDu1fRt6XViFe/OI0SjdbOUVF/xUSGnFZtYyt+PFNusT2vtAEF5Y0iRkREAKCQy7DwltFYeHMSLh0ZjrFDQxAR6GGxv9Ek4Ntjlnc6EfUGJy7JaeWVNsDWbGF2cR0GhPuIExARtZNKJEgaFNxeW2bhSz9Y7Z9TzFOyyT44IkNOSy6zPW2kkPEhTOQMZDaei3yukr3wkUVOKyHWH2qlzGK7VAIkDeIuJSJnYGsxLxf7kr0wkSGnpVbKMTnJcnG7K1KiEcgqvkRO4arUWHipu16toJBJccWYKJEjov6CiQw5HZPZDE1dC2obW3G+uL5Tu1opw9xJAzCfB0MSOY1gfw88ensKBkX6dmozmMzIKqpDZV0LtC22C+oR9QTryJDTMAsCdh4uxDfHilCv1XdoGxLth3lT4gEAA8J9oFZynTqRsyqrbkJtYysamvRY/9VZAIAEwC+v0CPjA3HL1MGswk1d4unX5LLe+yYbuzNKumybPCoCCbEBIkdERBcjIsgLEUFeMAsCPt6di1ptK377MfOnvBqcL07HkrvGIiqEyQz1DqeWyCmUaLQWkxgA+C69GG4yeEjUb5zKrUattrXLNp3ehM9/uCByROSOmMiQUzh6rtJqe1GlFhW1LSJFQ0R94Wim9ef1iRwN9AbLZzYRdQcTGXIKOisH0P2ipZUn6hK5Ep3e+nPWLAB6o1mkaMhdMZEhpxAbZn2eXCGXIjzQU6RoiKgvxIZZr7od5KuyuGWbqLuYyJBTGJcQCm8Pyy9olyVFwEPFFzwiVzJldCSUcstvM9NSonnwK/UaExlyCnKZFL6eyi7bRg4MxM1XDBY5IiLqrQAfFf56wyioFF2/1YQEWD5okqi7WEeGHCa3pB57TpSgorYFrXoTiiq1AIDQAA8MjvSFSilHSkIIhg8IgJSf2ohcVkOzHgdOl6FE04RWgwnpWRoAbcUto0O8oZBLMXpQECYnRcKTU039Xk/ryDCRIYfYejAfn+3L63RdAmDFglREs7YEkdta+/FJnMqt7nQ92E+NR+aPQbA/R2r6s54mMpxaItHlFNd1mcQAbZU/swrrxA2IiERjNJlRWNHYZVtVvQ4bt2eKHBG5OiYyJLo9VgrfAcCeE9bbich1nc6tRt3vjiD5rXOFdSirbhIxInJ1TGRIdOU1zdbbq623E5HrKq+1/fzmawD1BBMZEp2Phd1Jv/D1st5ORK7Lx8P289uHrwHUA3ZNZLRaLebOnYvi4mIAwEcffYS5c+fimmuuwWOPPQa9vm14MTMzE/PmzcOsWbOwZMkSGI2s4OrOJo0Mt9o+MdF6OxG5rpShIRa3YwNtuxbjI31FjIhcnd0SmZMnT2L+/PnIz88HAFy4cAFvvvkmPvzwQ3z55Zcwm814//33AQCLFi3CsmXLsHPnTgiCgLS0NHuFRU4gZUgIPFSyLtsig71w1SWxIkdERGLxVMtx+5VDLbbfMyuB5RaoR+yWyKSlpWH58uUIDQ0FACiVSixfvhze3t6QSCQYOnQoSktLUVJSAp1Oh+TkZADAvHnzsGPHDnuFRQ5iMJpwPFuDfSdL8fGe82hpbTtbSSFrewj6eiowOzUWj92ZAi+1wpGhEpGdXTY6Ev+8ZTSGxfp3SlpkMq54oJ6xW+WhlStXdvg+KioKUVFRAICamhq89957WLVqFSorKxESEtLeLyQkBBUVFfYKixzgSGYFNn+TDW2LocN1mVSC5X8Yj/AgT34CI+pnRsYHYWR8EMyCgJ/yqrH241MAgO2HCjA0xt/B0ZErEb2EYkVFBe6//37ceOONmDBhAtLT0zuctSEIwkWdvdGT4jkknlPnNXjjyzPoquyiQi5F/IBAm4t/ici9hYb4YMuBfFwobcCp3Go0GQXERXCdDHWPqIlMbm4u7r//ftx111247777AADh4eHQaDTtfaqqqtqno3qClX2d0+btmV0mMQCg05vw+a5sXDVhgLhBEZHTmTkuBm98eQYA8N+Nh5EQ649BUX4YPywUSkXXa+rIPTltZV+tVosFCxbg73//e3sSA7RNOalUKqSnpwMAtmzZgilTpogVFtmR2SzgXEGt1T5n8623E1H/kDQoqP2k7LKaZuw5UYo3t2Vi8fpDKNFoHRwdOTPREplPPvkEVVVVeOutt3Ddddfhuuuuw4svvggAWLNmDVatWoXZs2ejubkZd999t1hhkb1x6QsRdcMne3OhN5o7Xa9pbMWLn5yC0dS5jQjgoZFkZ899mIEzVkZdbrliMGZP4HZrov6sWWfEP9bth6GLROYXf7l+JMYP6/myA3I9Tju1RP3T1ZdYXv8S4K3CZaMjRIyGiJxRaXWT1SQGAPLLGkSKhlyN6LuWqH8wCwIEQUCphTNTYsO88edrE1kzhoig7sZiXpWSC36pa0xkqE8VVjTiqwP5OHG+CiazgF920sukEsy/cghUChnCgzwRH+F7Udvsicj9RIV4ITzQ0+qBsuMSOK1EXWMiQ33mfHE9nv0wo8MQ8S8rsBJi/TEtJdpBkRGRM5NIJLhl2mC8/OmpLss1xEf6IjLYS/zAyCVwjQz1CUEQsOmbLIvz3JkFtajTtoocFRG5iuTBwVh482jEhnZe5Fms0eJcQS1yiutQz9cR+h3uWqI+UazRYtmbR6z2mT99CGaMjxEpIiJyRYIgoLpeB4PJjMNnK/DlgfwO7RJJ2wnad85MgJ8Xq4K7I+5aIofQNhts9mlssd2HiPo3iUSCYH8PRAR5IWVoSKdSVIIApGdp8Mz7x9GqNzkkRnIuTGSoT4QFetqsfRcR5ClKLETkHnYcKYSlcfay6mYc+KlM1HjIOTGRoT4R4KNC8pBgi+0+ngqMHRpisZ2I6LcEQUBGdpXVPsezNVbbqX9gIkN95s5ZCZDLOo/LqJUy/N8No3jwGxH1iK0iebbaqX/g9mvqMwVljTCa2gaCfb0UiAr2xuAoP0wdE4UAH5WDoyMiVyKRSBAf5YvzxfUW+wyK8hMxInJWTGSoTwiCgG2H8tu/f3BeEl9kiKhXZqfGYl3x6S7bpFIJpo2JEjkickacWqI+kVNcj9yStrNQhsX6M4khol5LGRqCW64YDKm085S1TCphdXACwDoy1AvFGi2+PVqEnOJ61Gpb27dC/vOW0RgZH+Tg6IjIXdQ2tuLw2Qo0NutRVt2ME+fbFgH7eCqgVsrg66XEpMRwTE6KhELOz+eurqd1ZDi1RBfl5PkqvPL56fY1Mb+QSiUI9OV6GCLqOwE+KsyeEAugbYHvP9ftR5POiMZmAxqbDdDU6ZBb0oAjmZX4xy2jubGgn7GZuprNZvzvf//Do48+Cq1WizfeeAMmE4sQ9WetehM2bD3bKYkBALNZwNs7shwQFRH1B+dL6tGkM3bZllVUh51HCkWOiBzNZiLzzDPPIDs7G6dOnQIA/PDDD1i1apXdAyPndTxbg2YLLyRA2+GRpVVNIkZERP3FD6dKrbbvO2m9ndyPzUTmxx9/xOrVq6FSqeDt7Y2NGzfiwIEDYsRGTqqqvsVmn+oGnQiREFF/U1Vv/bWluqEVbrL0k7rJZiIjl8shlf7aTalUQi7n0pr+LMBHbbuPN9fJEFHfC7RRk8rfW8ndTP2MzURm6NCheO+992AymZCXl4dly5Zh2LBhYsRGTmpsQghUCssPnYERPogO7f6KcyKi7pqcFGG1/bKkSJEiIWdhM5FZsmQJzpw5g+rqatx+++1obm7G4sWLxYiNnJSHSo6E2IAu2zzVctwzm4kuEdlHYlwgpiZ3naz4eytx1SWxIkdEjtatOjJFRUWIiYmBVqtFYWEhRowYIUZsPcI6MvZlNJlx8nwVSquaoDOYsONwIQQBkMkk8FLLoZDJkDw4GLNSYxDs7+HocInIjQmCgMOZFdhzvARlNc3QthggCICXWo5n/zoJaiWXP7iyntaRsZnIbNq0CWlpafjqq69QVFSEe++9Fw888ABuvvnmXgfbl5jI2M+Fsga88vlp1DS0dmr7w9XDOJRLRA6Vtus8dvy87fq2aYMxM5WjMq6sp4mMzamljz76CB988AEAICYmBl988QXefffdi4+QXEpjsx4vpJ3sMokBACWraBKRg80YHwO5rG2B786jRTCaeCp2f2LzXchkMsHb+9fMyMfHhyvC+5EfTpVB22Kw2L7jcJGI0RARdRbgo8KkkeEA2o4zeOqdY3h9y084fLaCSU0/YDORiY+Px5o1a1BUVISioiK8+OKLiIuLEyE0cgbZRXVW2wsqGtFqYKVnInKs4XGB7V8XVmpxJLMSb3x5Bqs2H0ezzvKHMXJ9NhOZFStWID8/H9dffz1uuukm5Ofn4/HHHxchNHIGcpn1h4gEgJQjdETkQHqDCR98l9Nl24WyBmz+NlvkiEhMNpd2BwcHY926dWLEQk5o9KAgHM/WWGxPHBjI02aJyKHSszRoaNJbbD+SWYnbpg+Br6dSxKhILDYTmby8PGzYsAF1dXUdyj6//vrrdg2MnMOEEWH4+kghyqubO7XJpBJcO3mgA6IiIvpVcZXWarvZLKCippmJjJuymcj8+9//RlJSEsaPH89Fvv2QUiHDqIFBnRKZsEBP3DlzKAZH+TkoMiKiNl5qRZ/0IddkM5FpaWnB0qVLxYiFnFBLqxEHTpcBANRKGRZcPRyBfmrEhXP3GhE5h9Rhofh0by4sVUWLCfVGRJCnuEGRaGwubhgwYAAqKyvFiIWc0N4TpWhuNQIArkiJwthhoRgY4cskhoicRrC/B+ZOjOuyTSIBbr9yCF+z3JjNERmz2Yy5c+ciMTERKtWvp45yjYz7MgsC8koaUF3fgq8PFwBo2700Y1yMgyMjIura9ZcNRLCfGjuOFKLsd1Ph/t7WT8wm12YzkZkxYwZmzJghRizkBLKL6vDW1+dQUdPxhWDMkGC+GBCR05JIJLhsdCQmJ0WgpdWIw2crsOmbbAgCsONIIQ+zdWM2E5kbbrgB5eXlyMrKwuTJk1FRUYHISJ6t445KNFo8/9EJ6I2dK2Geza9BfZMefl5c9U9EzksikcBTrcDkpEh8dTAfdVo9Dpwuw3WTB/LDmJuyuUZm7969uO2227BixQpUV1djzpw5+O6778SIjUS2/VBhl0kMADTpjNh9vFjkiIiILo5CLsXM8W2HRxpNAl79/DQ+3ZuLn/KqYbZ+VjK5GJuJzLp165CWlgZfX1+Ehobi/fffx0svvSRGbCSy03nVVttP5VpvJyJyJhNHhkEmbVvke76kAdt+LMDzaSfx5DvHUKft+iBccj3dOjQyNDS0/fvhw4dz9bebEmx8SuGnGCJyJZ/uyYPJ3Pl1q6C8Ea98dtrmax65BpuJjIeHB0pLS9uTl2PHjnXYvUTuIyE2wGr7MBvtRETOol7bioNnyi2255Y24HxJvYgRkb3YXOz78MMP47777oNGo8Gtt96K/Px8vPzyy2LERiK7akIsMrI16Oozikohw/Sx0aLHRER0MfLLG2HuYjTmt86X1GNItL9IEZG92ExkYmNjkZaWhoyMDJjNZowePRqBgYG2bkYuaFCUH+IjfZFb2tDheoCPCn++NhEh/h4OioyIqGe6c5itUi4TIRKyN5uJzJ133okdO3bg8ssvFyMecqDymmbk/ZzE+HsrMWt8DEIDPTEqPghyGU+4JiLXMSTaD94eCmhbDF22SwCMHhwkblBkFzbfnaKionD8+HGYzV1vyyX3seNwQfu00g1T4jFrwgCMGRLCJIaIXI5CLsMNlw202H5FShSC/TjK7A5sjsjk5ubi9ttvh1wuh1KphCAIkEgkOH78uBjxkQhqGnSorG3BgdNtC+MCfFSYmBju4KiIiHrnipRoyGRSbNl/AbWNHbdbJ8VzNMZd2Exk3nvvPTHiIAc4V1CLj/ecx4Wyxg7XrxwXzVEYInILU0ZHYtLIcBRrtMgva8S7O7MAAF8fLkTS4GAHR0d9oVtTS6dPn0ZaWhoCAwORkZGBqKgoMWIjO8osqMWaj050SmIAIL+soYtbEBG5JrlMirhwX0wdE4Uh0X4AgKyiOm6/dhM2E5n169fjgw8+wI4dO6DT6bBu3Tq88sorYsRGdiIIAtJ2n7e4NfHoOQ0uMJkhIjd09SUD2r/+4LscHDhdhvzyBhbHc2E2E5lt27Zhw4YN8PDwQEBAANLS0rB169Zu3blWq8XcuXNRXNx2Rs/BgwdxzTXXYObMmXjhhRfa+2VmZmLevHmYNWsWlixZAqPReJG/DnVHdb0OBeWdR2J+69i5SpGiISIST9KgIAT4tBV1vVDWgDe3ZeKJt4/hv5vSoalrcXB0dDFsJjK/LPL9ha+vL+Rym0trcPLkScyfPx/5+fkAAJ1Oh8WLF+PVV1/F9u3b8dNPP2Hv3r0AgEWLFmHZsmXYuXNn22hBWtpF/jrUHTqDyXYfve0+RESu5nRedaeFv0Bbpd81H2agla99LsdmIhMREYE9e/ZAIpFAr9fjtdde69YambS0NCxfvrz9nKZTp05hwIABiImJgVwuxzXXXIMdO3agpKQEOp0OycnJAIB58+Zhx44dvfy1yJpQfw94qKwno3HhPiJFQ0Qknq8O5Fts09Tp8ONZy8cakHOymcj85z//wVtvvYWsrCwkJydj3759WLZsmc07XrlyJcaNG9f+fWVlJUJCQtq/Dw0NRUVFRafrISEhqKio6OnvQT2gVMgwdUykxXY/LyVSh4eJGBERkf21tBo7VS7/vTMXakSKhvqKxY/la9euxcKFC1FcXIx33nkHLS0tMJlM8Pb2vqgfZDabO5ya/Us9GkvXeyoo6OLi6q/uvz4Je0+UolnXcT2Sv7cKy/94CaKjeP4IEbmXZl3XVX5/S6mUIySEI9KuxGIis3XrVsyfPx8rVqzApk2b2ld019XVAQD8/Xv2RhceHg6NRtP+vUajQWhoaKfrVVVV7dNRPVFdrbV5QBj96uT5qvYkJsRfjRFxgRgY4YsJw8OgUsqg0VhfDExE5IoGRvha3ZU5ONKXr38OJpVKejQ4YTGRufTSSzF16lQIgoAJEyZ0aJNIJMjMzOxRYKNHj8aFCxdQUFCA6OhobN26FTfeeCOioqKgUqmQnp6OsWPHYsuWLZgyZUqP7pt6bvuhgvav/3hNIgZH+TkwGiIicVwzKQ4vfXqqy7ZAHxUmJnJa3dVYXCMzb948ZGZmYuzYsTh37lyH/3qaxACASqXC6tWr8eCDD+Lqq69GfHw8Zs+eDQBYs2YNVq1ahdmzZ6O5uRl33333xf9GZJUgCMguqkVOcVshqKEx/kxiiKjfSB4SjPuuHt7lhodJI8OhVtrelUvORSJYqAJ0ww034PPPP8c999yDd955R+y4eoxTS9adK6jFtkMFOFdQC9Nv/k4Lbx6NpEE8c4SI+pdWgwk/5VWjsq4Fn+7Ng9ksIMBHhacfmMgjWhysz6aWjEYj7rvvPpw9exYPPPBAp/bXX3/94iIk0R3JrMAbX55BVymriaeaE1E/pFLIMDahbT1meXUzfjhVhtrGVhw6U4HJSREOjo56wmIis2HDBhw6dAgXLlzArFmzxIyJ+pDeYMKmnVldJjEAsGlnFkbFB/ETCBH1W7MnxGL/qTIIALb+mI+IIE8E+KgQ6Kt2dGjUDRYTmfDwcFx//fWIjIxEamqqmDFRHzqVW40mneUjH+q0epwrrMXIgZxeIqL+KSLICyPjA3E6rwaVtS1YuSkdADAiLgB3zkxAeKCngyMkaywmMn//+9/x4osv4sknn+yy/auvvrJbUNR3Glts101obLLdh4jIXTXpDCiq1Ha6fja/Fqs2p2P5veM5OuPELCYyf/zjHwG0VfYl1xUe4GG7TxA/bRBR/7XreAnqtPou2xqbDdhxpBC3XzlU5KiouywujBg5ciSAtiMDamtr0dLSgujoaKSmpnKqyYUkDAiwOiw6INyH5yoRUb92PFvTq3ZyLIsjMk1NTXj44Ydx7NgxxMXFQSKRIDc3F1OnTsXq1as7nIhNzksqkeAPVw/Dqs3HO7X5eyvxp2tGXNSREERE7sJgtL57U2/g7k5nZjGRee211xAeHo4DBw5ApVIBAFpaWrBq1Sq88MILePTRR0ULknont+TXctyBPiqEBXoicWAgpoyOhLeHwoGRERE5XnyEL0qrmiy3R/qKGA31lMVEZu/evfjiiy8gk8nar3l4eGDx4sW49dZbRQmOes9gNOObo4UAALlMgqX3jIO/t8rBUREROY8rx0Xj4Jlyi0VVZ42PETki6gmLa2RkMlmHJOYXarW6y+vknH48U96+iO3SURFMYoiIfic2zAd/umYEFPLOb4lDov0wPC7QAVFRd1kckbG2bsLCqQbkJM6X1OP79GIUlDegur4VACCRtBV9IiKizlKHh2FEXCAOnSlHZW0L9p8ug05vwoWyRtRrW+HHD4FOy2Ii09DQgG+//bbLpKWxkUecO6vdx4ux6ZvsTtfVShm81FwPQ0RkibeHAleOa5tGCvRVI233eRhNZnx7rBg3TR3k4OjIEouJTGRkJN59990u2yIieA6FM6qsa8HmbzsnMQDQ0mrCJ3tyce9Vw0SOiojI9VyeHImtB/PR3GrE7uPFmD42Cj6eSh7n4oQsnn7tanj6NfDZvjxsPZhvsV0pl+LFv18GlYJrnIiIbPl0by62/VjQ/r1MKsGYIcG4/rJ4RAZ7OTAy99bT06+ZWrqRqvoWq+16oxmNTV1XryQioo5+/3ppMgs4lqXBU+8e6/JIA3IMJjJuJMDGYjSZVAJvT66TISKypbCiEftOlXXZptObkLYrR+SIyBImMm5k0ijra5fGDwuFWmlxWRQREf3s8NkKq+1n8mtRzxFup2AzkVm8eHGnaw899JBdgqHeiQr2wpVjo7tsC/ZT4+YrBoscERGRa9K2GGz2adbZ7kP2Z/Hj+fLly1FRUYH09HTU1NS0XzcajSgqKhIlOOo5vdHU/rVKIYOPpwKpw8MwMzUGvp48H4uIqDuibCzmVSmkCPRRixQNWWMxkbnpppuQk5ODrKwszJo1q/26TCZDcnKyKMFRz9Q2tuLA6XIAQICPCk8/MJFbBYmILsLEkeH4/Ic8tFo4MHLyqEiolNwB6gwsJjKjRo3CqFGjMGnSJBQVFWH8+PGoq6vDsWPHEBvLCrHO6NujRTD9vAV91vgYJjFERBfJx1OJv1w/Cq98frrT6dgeKjkL5DkRmys/P/jgAxw/fhybNm2CTqfD+vXrkZ2djb/+9a9ixEc2FFdq8cOpMlTUNuPMhbYpQC+1HFOSIx0cGRGRa0saFIRVf7oEe06UoqC8ERfKGqBtMaCl1YhijRaDovwcHSKhGwXx5s6di88//xwKRdu2Xb1ej3nz5mHr1q2iBNhd/bEg3rYf8/Hp3rxO1xNi/PHoHSniB0RE5MZOnK/CS5+cAgCMGRKMB29McnBE7qnPC+IZDIb2JAYAFAqF1QMlSRxnLtR0mcQAQFZRHU7lVokcERGRe0saFISokLZFwBk5VSipanJwRAR0Y2opJSUFDz/8MG666SZIJBJ88cUXGD16tBixkRXfpxdbbf8uvRhJg4JFioaIyP1JJRJcPWEANmw9CwB46p2j8PFUYkRcIGalxiAiiMcWOILNEZn//Oc/CA4OxqpVq/DMM88gKCgIS5YsESM2sqJYY708djHLZxMR9Tl/n18rqLcazKiq12HfyVKseOsosgprHRhZ/2VzRMbT0xOPPfYY6uvr4efHhU3OwlMtB+ott3upeRQBEVFfMpsFvLU9s8s2vdGM/209i6cfmASplMsvxGRzRCYvLw9XX3015s6di4qKClx11VXIzc0VIzayYsKIMKvtqTbaiYioZzILa1FVr7PYXt3QirMFNRbbyT5sJjJPPfUUlixZgqCgIISFheHOO+/EsmXLxIiNrLhiTBSCfLuuKhkZ7IXpKV0fVUBERBentqHVZp+abvShvmUzkamrq8Oll17a/v0dd9wBrZbrLxxNrZTD36fjkQMqhQxTx0Th33ektE09ERFRnwn0VfVJH+pb3Xq3a21tbd9yrdFoYDZ3XbKZxJNTXIfckgYAwJBoP/zfDaPgqZazmi8RkZ0Miw1AiL8amrqup5eCfNUYMSBQ5KjI5rve/PnzsWDBAlRXV+O5557Drbfeivnz54sRG1nx9aHC9q/nTIyDr5eSSQwRkR1JpRLcP3cEVIquz1i67+phXOjrADYr+wLA0aNHsWfPHpjNZkyePLnDVJOz6A+VfavqW3DsnAblNU3Yd7IMABAd4o0V941nkUIiIpFU1DTjm6NFOJNfg4YmPXR6EwDgvquHY3JShIOjc309rexrM5FZu3YtFi5c2OHaU089haVLl15chHbizomMIAj4bF8eth8qsfucBQAAIABJREFUwO//teZNicfcSXEOiYuIqL8rq27C0g2HIQCICPLEk/dPgJQfLHulp4mMxTUyL730EhoaGrB9+/YOi3sNBgP279/vdImMO9tzohTbfizosu2bo4WYlhLNxb1ERA4QEeSFlIQQpGdpUFbdjBM5VUgZGuLosPoVi4sqRo8eDX9/f0ilUvj7+7f/Fx4ejjVr1ogZY78mCAJ2Hi602K5tMeLgT2UiRkRERL919SUD2r/euD0Taz7MwCd7clFV1+LAqPoPm1NLp06dQlKS85/w6a5TS/XaVvxj3QGrfVKHh+KB60aKFBEREf1Wq96Eh185gOZWY4frcpkEf71+FJKH8Ny7nujz06/Dw8Pxpz/9CbNmzUJ1dTUWLFiAysrKXgVJ3SeX296JpOBuJSIih/l0b26nJAYAjCYBr2/5CQ1NegdE1X/YfAd84okncOWVV0KlUsHX1xfDhg3j+hgReakVGBpt/Yyr5CGcjyUicoRWgwk/nLI8va83mnGA0/92ZTORKSkpwS233AKpVAqFQoFFixahrIz/KGK6YUo8LC2CHxTli+QhQeIGREREAIC6xla0GkxW+5RWNYkUTf9kM5GRSCQdKvlqtVpW9hVZQmwAxg8L7XBNKpVgYmIY/nFzMmRSTi0RETlCd3aM+ngobfahi2fzX2DmzJn417/+hcbGRnz44Yf4+OOPcdVVV4kRG/3MbBaQU1wPAFAqpPi/G0ZiQJgvfL345CAiciQfTyVGxgfipzzLp15fkhgmYkT9j81E5oEHHsAXX3wBs9mMgwcP4tZbb8XNN98sRmz0s7MFNahtbDtRdcLwMIyK5wp4IiJnceu0IcgrSe9ywe/0sdGIDfNxQFT9R7eqqF1++eWYNWsWPDw87B0PdeHA6fL2ry8dxfLXRETOJCrYC0vvGYct+y8gPasSRtOvpUBmjIt2YGT9g9XFFW+//TYmT56MSZMmISUlBTNmzMCHH34oVmwEoFlnwPFsDQAg1N8DQ2zsYCIiIvGFB3riz9cm4rWHL8edM4a2X//xTIUDo+ofLCYy77//Pr7++mu8/PLLOH78ODIyMrBy5Up8/vnnTGZEdORcJQzGtsXVl44K5+GQREROTCaV4pLEcCh/rgF24HQZzLbPZqZesJjIfPrpp3jjjTcwZswYeHh4QK1WIzU1FS+99BI++eQTMWPsdwRBQGZBLdJ2n8eX+y8AACQAJo3ktBIRkbPzVMuRktBW36uqXoecojoHR+TeLCYyRqMR/v7+na6HhYX1evv1li1bMGfOHMyZMwdPP/00AODgwYO45pprMHPmTLzwwgu9un9X1qwz4tkPMvDsBxnYcbgQddq2ipBKpQwyGUdjiIhcwW/XM/52nSP1PYuJjNRKbRIbxzNZ1dLSgpUrV2LTpk3YsmULjh07hl27dmHx4sV49dVXsX37dvz0/+3dd3xUZb4/8M+ZmVTSOyQhtADSQkBKCBAjGAMYUESlLILiioqw4PWnXuyddXW5sLirXFl3LbtIvUoRcGmSBOktgUAgvfeEtMmU8/sjMAQyMymcqfm8Xy9fZs4zOc/3YSaZb56akoLDhw93ug5b9o89aUjLaZ29K5s0+Ov/pdzVvz0REZnHPT294ePhBAA4kVaCxqbWK5pIGgazFY1Gg+rqalRVVbX6T6MxvouhMRqNBlqtFg0NDVCr1VCr1XBzc0NYWBhCQ0OhUCiQkJCAPXv2dLoOW1VW1YBTaYbPsbqaV43MwutmjIiIiDqjedPSIADNxxi88/fj+PKnVFzKquAfpBIzuPz6ypUrGDt2rN5/8LuZcOrm5oY//OEPmDJlClxcXDBq1CiUlJTA3//WeUEBAQEoLu56M72ziq6jrbd3RkE1+vTwMEs8RETUOaIooriiXve4pKoRJVWNOHaxGA+ODsXjsf24eEMiBhOZtLQ0k1SYlpaGrVu34uDBg3B3d8fLL7+MrKys215QURQ7/AJ35Mhva+VfVt/mc3x9usHfn5srERFZs4OncnHycqnesr3HczF6aA+MHhRk5qjsU7s2xJNSYmIioqKi4OvbfNDhzJkzsWHDBsjlct1zSktLERAQYOgWepWX10Krte3uuiBPJ7g6K1DfqH8sVS4T0CfQDaWlHF4iIrJmP/16zWj5j4euord/NzNFY1tkMqFDnRNmP21w4MCBSE5ORn19PURRxIEDBxAREYHMzExkZ2dDo9Fg586dmDhxorlDszgnBzkemdDHYPmUsT3hyfOViIisXlG58R72lsNOdHfM3iMzfvx4XLx4ETNnzoSDgwOGDh2KpUuXIjo6GkuXLoVSqURMTAzi4+PNHZpVGBDaesm7h6sD4seE4cHRoRaIiIiIOsqzmyNqG1QGy3nor3QEsR3Tp+vq6pCamgq1Wo1hw4bBzc365qPYw9ASAPzvjlTdltaP3dcXg3v7oIdfNyjkZu88IyKiTvr5t2xsPmR4eOnJ+AG4b3iwGSOyHR0dWmqzR+b8+fN44YUX4OvrC61Wi+LiYnzxxRcYMWLEXQVKrZVVNeDYxebl1/5ezogbHQq5kf18iIjIOt0/IgQnL5cis7CmVVmIfzeM5wHAkmkzkfnjH/+ITz/9FGPHjgUAHD16FKtWrcKmTZtMHlxXkVN8HRmFNTiZVqI7kyN+TBiTGCIiG+XkKMf/mzMce47lIPFCISpqlLoyhVwGuYxLr6XSZiJTV1enS2IAICoqCh999JFJg+oqauqamjdIyq687bqTgxzRQwItFBUREUnB2VGBhyf0wcMT+kAURXy68SwuZVciq+g6LudUYWCYt6VDtAtt/skvCALy8/N1j/Py8m5bKk2doxVFrNlyrlUSAzTvAnn4XKEFoiIiIlMQBAFTo8J0j3f/lm3BaOxLmz0yS5YswRNPPIGoqCgIgoDExES8/fbb5ojNrqVmVhg9bmD30WzERgZzki8RkZ0YFOaNsCB3ZBddR0pmBdZuPY9AbxeMGRSIXkHcsb2z2kxkJk+ejN69e+PYsWPQarVYvHgx+vbta47Y7NqlrNY9MS1V1zWhoKwOPQO5iy8RkT0QBAHD+voiu6j5j9iz6WUAmnf6jRneA/MfHAAZjy3osDYTmWeeeQZfffXVbcnL448/zsm+d6sd71Wew0FEZD+qa5XYeyxHb9nhswXo7uOKuNE9zRyV7TOYyCxbtgyZmZnIzc1FQkKC7rparYajIzfyuVuDe/tgj4E3NAB4uzuhh5+rGSMiIiJT+vV8IZrUWoPlv5zMwwOjQvlHbAcZTGReeeUV5Ofn480338Sbb76puy6Xy9GvXz+zBGfP7gnzRniIJ9LzqvWWJ4zrxeXXRER25OaQkiHlNY2obVDB3ZWdBR1hMJEJCQlBSEgI9uzZAxk/UCUnEwQ8N2MIXvlbMjQtdiR2dpRjenRvxAzvYcHoiIhIas6Oxlf8CgAcFVwV3FFtzpFhEmM6GQXVuiRmSG8fxAwPxqBe3nBxMvsRWEREZGL3DgxAckqRwfKIfn5waiPZodaYpVhQ0oVbb+hZ9/XFyAH+TGKIiOzUsL6+GNzbR2+Zg0KGhyf0NnNE9oGJjIVU1zXh/LVyAEBogBuXWRMR2TmZIGDpzKGIGxUKlzt6XkYNDODnQCe1mcjU1dXh3XffxYIFC1BVVYW33noLdXV15ojNrv2WWqQ7Vymah4cREXUJjg5yzJ4UjtVLx+Odp0bp5s2kZlZAozW8ookMazOR+eCDD+Dh4YHy8nI4OTmhtrYWb731ljlis1uiKCLxQvMRBHKZgLGDeK4SEVFX4uggR89Ad4y58fu/uq4JqZkVFo7KNrWZyFy6dAkrVqyAQqGAi4sLPv30U1y6dMkcsdkdtUaL01dKsXF/OvJLm3u1hvX1hUc3LrUjIuqKWvbIJ14wPBGYDOvwqiWNRsOVTJ1wNa8af/sxBZXXlbdd9/d0tlBERERkaX17eCDQxxXFFfU4m16K2gYV3FwcLB2WTWkzIxk1ahT+9Kc/obGxEUeOHMHSpUsxevRoc8RmN8qrG/HnTWdbJTEAsO9kHi7nGD93iYiI7JMgCBg/NAgAoNaIOH6p2MIR2Z42E5mXX34Zrq6ucHd3x+rVqzFgwAC89tpr5ojNbhw4nYfGJo3B8p+NHFVARET2LWpwEG6eSrD91wx8tfMijl8qhlrDyb/t0ebQUmFhIZYsWYIlS5borh08eBCxsbEmDcyeXM6tMl6eY7yciIjsl1KlgUImQKURUdeoRnJKEZJTitAzwA0vzR4ODx5ZYFSbPTLx8fHYsGHDbdfWrl1rsoDskUxm/AAwTjkiIuqatKKIz7enQKURW5XllNTi611cXNOWNj9CQ0JCcOjQIbzzzjsQb+x7cvP/1D7D+vgaL+/rZ6ZIiIjImlzKrkRBmeG92c5dK0dJVYMZI7I9bSYy3bp1w4YNG1BRUYHnn38eDQ0NXLXUQfdFBsPLwBJrB4UMU8eGmTkiIiKyBrnFtW0+J7+k7ed0Ze3KSBwdHbFmzRoEBwdj/vz5UCpbr74hw9xcHDD/wQGtrgf6uOKlxyMQGuBmgaiIiMjSXJ3bPl+PZ/AZ12Yi4+PTfMCVIAh48803ERcXh4yMDJMHZm8uZd9aYj1lTE+snD8SH/5+DAb09LZgVEREZEmR4X5QyA3Po/Ryc0R4qKcZI7I9gtiJCS8lJSUICAgwRTydVl5eC63WOufuqDVavLQuSbfR0Z9fjIZCzuE5IiICfj6Wjc0Hr+kte/7hIRg10Lo+b01NJhPg69v+kQqD/VV/+MMfsGbNGiQkJOgt37FjR8ej66LOXS1HbYMKADB2UCCTGCIi0pkyJgwero7Y/Vs2CsvrddcDfVy7XBLTGQYTmd///vcAgDfffNNswdirpBsHRAI86ZqIiFqLHtod44YEoaZehS9/TEFaThWKK+qRX1aHYL9ulg7PqhnsGhgyZAhEUcSIESMwevRoDBo0CFVVVQgICOARBR1QXdeE89fKAQAh/m7oGciJvURE1JogCPDs5oiY4cG6a8kt/hAm/QwmMlevXsWkSZNw5MgRNDY24rHHHsPq1asxf/58JCUlmTNGm1RT14T9p/KwYedFaG9MQxo/NAiCYHxzPCIi6toiw/10K5WSU4ug0fKoAmMMDi198sknWL58OWJjY7F161aIoojdu3ejuLgYK1asQHR0tDnjtCn7TuRiy6GrUN+xU2Ogj6uFIiIiIlvh6CDH6HsCcPhsAaprm5CaWYlhfY1vrNqVGeyRKSwsxPTp0wEAx44dw+TJkyGTydC9e3fU1nJzHkNOXS7Bxv3prZIYAFi/IxXVtdyDh4iIjGs5nzKJw0tGGUxkWu7ee+bMGYwaNUr3mBviGWbsJOsGpQaHzhaYMRoiIrJFfXt4INDbBQBw8nIJPtt4BjuSs1Bd12ThyKyPwaElT09PpKWloba2FqWlpbpE5vTp0wgMDDRbgLZErdEio6DG6HPS83jSNRERGdegVKNJrQEAiCKQmlWJ1KxK/PxbNpY/FoH+oV4WjtB6GOyReemll7Bw4UIsXLgQy5cvh6urKzZs2IDFixdj2bJl5ozRZsgEAfI2TrrmHjJERNSW739JR+X11r0vjU0arNt2AcomjQWisk4Ge2SGDx+OX3/9FY2NjfDw8AAAREZGYvPmzejVq5e54rMpMpmAYX19cSa9zOBzhofzpGsiIjLsen0Tjl8qNlhe26DCibQSjB/GfckAI4kM0HxYpKPjrVObR4wYYfKAbF1CdC9cuFYOtZ7jErr7uiJqcJAFoiIiIltRUtkATRtH7uSXcdHNTRznkFivIA9MHN7jtmsCgOH9/PDKnEg4OcgtExgREdmEbi4ObT7HrR3P6Sp4NrjERFHEldzmCb0yQcDiGYPQp7snfD2dLRwZERHZgkBvF4QFuSO76LrecgHA6Hu46OamdvfI1NQYX41DzXKKa5FXWgcAGNbXF6MGBjKJISKidhMEAfMm94eDQv9H9LRxveDv5WLmqKxXm4lMRkYGpk6dimnTpqG4uBhTpkzBtWv6jxsnHhBJRER3r1+IJ1b+biSG97t9gYhMJiBuVIiForJObSYyH3zwAV5//XX4+voiMDAQv/vd7/DWW2+ZIzabo9Zo8dvF5pnmbi4OiOjHLaWJiKhzwoLcsWzWMHz58n2YHt0LAKDVijhxqcSygVmZNhOZqqqq285VmjdvHo8oMODc1XLUNqgAAGMHBXLPGCIiumsOChkmRvTAzV3KEi8UWTQea9OuT1qlUqk7tbm0tBRansR5m8zCGmz/NQObD17VXeOwEhERScXHwxmDevsAaP7MyS+rs3BE1qPNVUtz587FokWLUF5ejs8++wy7du3CM888Y47YrJ5KrcH6HRdx6nLpbdcVchlcnbnMmoiIpBM9NAipmRUAgOQLhXgstp+FI7IOgiiKxnfdAXDixAkcOnQIWq0W48ePv22oyVqUl9dC28YGQlL7bt9lHDidr7csxL8b3nl6NGSC8SMLiIiI2qNJpcGKdYloUGrg6eaIT18YB7nM/qYwyGQCfH3d2v18g4lMVZXxww29vKzrwCpzJzJ1jSq8tC4JKrXhYbaXHo/AkD6c8EtERNL4x89p+PVcAQAg2NcVfYI9cV9kMHp397BwZNLpaCJjcGhp7NixEAQBLfOcm48FQcClS5c6HeSBAwewbt06NDQ0IDo6Gm+88QaSk5Px8ccfQ6lUYsqUKVixYkWn728OucW1RpMYALiaX81EhoiIJKHRalFa1aB7nF9ej/zyehw5X4jHYvtiypgwC0ZnOQYTmbS0NJNUmJubi7fffhubN2+Gr68vFixYgMOHD+Ptt9/Gt99+i+7du2Px4sU4fPgwYmJiTBKDFBwc2u7Oc+RxBEREJJGDp/NxKbtSb9nmg9fQP9QLfXt4mjkqy2vz01ij0eD777/H888/jxdffBHbtm27qwp/+eUXTJ06FUFBQXBwcMDq1avh4uKCsLAwhIaGQqFQICEhAXv27LmrekytV5A7vN2djD4nkiddExGRRA6e0T8n86ZDbZTbqzZXLb3//vu4du0aZsyYAVEUsWXLFmRnZ3d66Cc7OxsODg547rnnUFhYiPvuuw/h4eHw9/fXPScgIADFxYaPMLcGcpkMs2L64n93XtRbPjGiO7r7djNzVEREZK+KKuqNl5cbL7dXbSYyycnJ2LVrFxwcmk/anD59OqZPn97pREaj0eDkyZP49ttv4erqiueffx7Ozs66fWoA6ObhdERHJgZJZXqsOw6czce1vGrdtW7OCkwb3wdz4wZAzg3xiIhIIp5uTqi6rjRY7uftCn9/dzNGZB3aTGR8fHyg0Wh0iYwgCPDw6PzsaD8/P0RFRcHHp3ljn8mTJ2PPnj2Qy2/NJyktLUVAQECH7muJ5dfVdU3IzG8+TDPQ2wXPPDQIIf5ucHKUo6KCmxUREZF0xtwTgL3Hcw2Wjwj3Q2mp/hOzbUlHVy212WUwcOBAzJ07F9999x3+/e9/Y9GiRfD29sbXX3+Nr7/+usMBxsbGIjExETU1NdBoNDhy5Aji4+ORmZmJ7OxsaDQa7Ny5ExMnTuzwvc3tWGoRtDdWdcVGBqNvsCecHDnBl4iIpDctqheCfFz1lkX09cXI/v56y+xdmz0ySqUSAwYMQGpqKgAgJKT51M0rV650qsKIiAg888wzmDt3LlQqFaKjozFnzhz06dMHS5cuhVKpRExMDOLj4zt1f3MRRRGJN066lssEjB0cZOGIiIjInrm5OGDl/JHYmZyF5JQi3dl+ADBxeA/IZF1zA9Z27exrC8w9tJRddB3v/uMEAGB4Pz8smzXMbHUTERGl51bh4+9PAwBGDQzA8w8PsXBE0pBsQ7ybjh07hvXr16O6uvq261u2bOl4dHYk6UZvDMADIomIyPz6hXgi0McVxRX1OJNeirpGFbo5O1g6LLNrM5F54403MH/+fPTs2dMc8Vg1lVqLU1dKcDmnCskpzceou7k4IKIfd+8lIiLzEgQB44cGYevhDKg1Io5fLEbsiBBLh2V2bSYyvr6+ePLJJ80Ri1UrqazHnzedQ0llw23XHRQyqDVaKLjUmoiIzCxqcBC2Hc6ACCDxQlGXTGTa/PS9//778f333yMnJwcFBQW6/7oSrShi7dYLrZIYAKi8rsT3+zo38ZmIiOhu+Hg4Y1AvbwBAZmEN8su63tYfbfbIVFZW4s9//jNcXFx01wRBwOnTp00amDVJzaxAgZE3x9GLxZgV2w+e3RzNGBUREVHzPM3UrOYzmD7512mEBbojanAQRg8KgFxm/6MFbSYyBw8eRGJiIvz8uu65QVmFNUbLtVoRuSXX4dmbc2WIiMi8Cspv/aF9vV6FlMwKpGRW4LeLxVj66FC7n/rQZut8fX11u/B2VU7tOMXa2aHNnJCIiEhS1/KrsTM5W2/ZhYxy7D2eY+aIzK/NT9/+/ftj7ty5iI2NhaPjraGTp556yqSBWZMR/f3xw4GrMLRLjbe7E3r36HrnWxARkWUdOmv8xOvDZwswLaqXeYKxkDYTmcbGRvTu3RtZWVlmCMc6+Xm54IFRodh3Qv8ZF4/H9usS45BERGRd9C1CaamsuhFarWjXu/62mch8/PHH5ojD6s2M6YNDZ/PRpNLqrvXw64ZHJvTGyAEdO+CSiIhICp5uTkbL3V0d7DqJAdqRyJw5cwbr169HfX09RFGEVqtFXl4eDh06ZIbwrMeFaxW6JCZqcCBmjO8Nfy8XCIJ9v0GIiMh6RQ8Jwsm0EsPlXWDn+TbHQ9544w1ERkaitrYWCQkJcHNzQ1xcnDlisyotjySIG9UTAd6uTGKIiMiihvX1RdTgQL1lAd4umBYVZuaIzK/NHhlBEPDss8+isrISffr0QUJCAh599FFzxGY1quuacP5aOQAgxN8NPQPbf5gVERGRqQiCgEUPDUJ4qBcOnc5HflkdNDcOUB7Wx7dLnL3UZo9Mt27dAAA9e/ZEeno6nJ2dIetiE1uPpRZBe+OQ8PFDg9gTQ0REVkMmCLhveDDeeXo01q2YCBen5i1DTlwugUarbeO7bV+bGcmwYcOwfPlyjB07Fn//+9+xatUqKBRdZ88UURSReGNYSS4TMHZwkIUjIiIi0s/JQY5RA5uHmqprm5CaWWnhiEyvzURm5cqVWLhwIXr37o3XX38dWq0Wn332mTlis6iqWiV2JGfhfzafQ15p866JQ/v4woPHEBARkRUb32KCb8v5nfbKaNeKKIrQaDQYPnw4amtroVQqMXfuXPTq1ctM4VnGqculWL8jFSr17V1yKrUGWlGEjENLRERkpfoGeyDQ2wXFlQ04k16KukaVXc+VMdgjc/XqVUyaNAlHjhxBY2MjHnvsMaxevRrz589HUlKSOWM0q9KqBnz5U0qrJAYAUrMqcfC08V0UiYiILEkQBN2ya7VGxPGLxRaOyLQMJjKffPIJli9fjtjYWOzatQsAsGvXLmzatAl/+ctfzBaguR06mw+1xtBhBMB/TuZCFA2XExERWdq4Ibfmc27cfxVv//04/u9IBmrqmywYlWkYTGQKCwsxffp0AMCxY8cwadIkyGQydO/eHbW1tWYL0NxyS4y3rbiy4bbdfYmIiKxNRkGN7muVRovcklr8lJSF9/5xAqVVxo81sDUGE5mWS6zPnDmDUaNG6R4rlUrTRmVBLo7GV2Qp5AIUCs6RISIi61TfqMKGXZf0llXUKPHN3stmjsi0DCYynp6eSEtLw8mTJ1FaWqpLZE6fPo3AQP27CNqDUQONn5t074AAHhBJRERW6/ilEihVGoPlqZkVKKu2n14Zg90PL730EhYuXIja2lq8/PLLcHV1xYYNG/DFF1/g888/N2eMZjWivz8G9fLGxazWa++7OSswY3xvC0RFRETUPmXVjW0+p6JGCT9PFzNEY3qCaGTmalNTExobG+Hh4QGguTfGx8fHKpdfl5fXQquVZhJug1KN5X9JvG3l0vB+fngsti+6+3aTpA4iIiJT2H8qD9//csXoc1Y9F4UAL+tMZGQyAb6+7T8KyOiEEEdHRzg63toAbsSIEZ2PzIbkFF/XJTFjBwXid3ED4OrcdXYzJiIi2zX6ngBsOnhV7zYiADAg1Mtqk5jO4GQPPc6kl+m+HjckiEkMERHZDHdXRzz54ADoW5bi6qzA/AcHmD0mU+In9B1EUcTpK6UAABcnOQaGeVs4IiIioo6JHtod/l4u2HciF5eyK9GgVANo/uO8h599TZFgInOHvNI63USpoX18oZCz04qIiGxP/1Av9A/1grJJg2Vrj0Cl1iIt2/4OkeSn9B3O3OiNAZpXMBEREdkyJ0c5BvfyAdD8x3pJZb2FI5IWE5k7nE5vTmTkMgFD+/haOBoiIqK7Fxnup/u65TxQe8BEpoWy6gbkFDcfUXBPL2+4OHHkjYiIbF9EuB+EG7N/W4482AMmMi20zFI5rERERPbCw9UR4cGeAID0/GrU1NnP4ZFdvstBpdbi0Nl8JF0oRH5pne56RF8OKxERkf2I7O+PK3nVEEXg3NUyTIjoYemQJNGle2RUag1WbzqLf/8nHTnFtdC02Bl4y6EMGNn0mIiIyKbY6zyZLp3I/OdUHtJyqvSWHU0twukr9vNCExFR1xbg7YoQ/+Y9ZFIyy1FcUW8Xf7B36UQm8Xyh0fIj5wvMFAkREZHpBfs3n2Gk1oj47/W/YeX633DkXIFNJzRdOpGpqFEaLa+8bryciIjIVpy6XIpjF4tvu1Zc2YCvf07DzqPZForq7nXpRMbX09l4uYfxciIiIlug1Yr4937DJ2L/lJiJahtdydSlE5kJw7obLZ9oJzO6iYioa7uaX210FEKjvXXOoK3p0onMpJEhCA/x1Fs2MaIHIvpxCTYREdm++huHRhrT0I7nWKMuvY+MQi5DvxBPpOdVAwDcXBzQM9ANMcODce8AfwiCvkPQiYiIbEuIfzcIAIxN6Q25MRHY1nTpREarFfFbavPEJyckYcOKAAAgAElEQVRHOf70/Dg4OcotHBUREZG0/DxdMDzcz+D+MUE+rhjS28fMUUmjSw8tXcqu1K1MGjUwgEkMERHZraem3oOwIPdW1xVyAS/OHAqZzDZHIbp0j0zShVv7yIwfanziLxERkS1zc3HA6/NH4mx6Gc5dLcO5a+WobVBBoxHh6GC7/Rq2G/ldqm9U49SNGdr+Xs4GJ/0SERHZC4VchnsHBmDRQ4MwM6YPgOZ5M0dTiiwb2F3osonMibRiqNRaAED00O6c2EtERF3K6IEBcFA0pwFJF4psdnffLjW0VFHTiJ9/y8HJKyW43mLjn3FDgiwYFRERkfm5OjtgRH9/HLtYjJKqBqTnVaN/qJelw+owi/bI/PGPf8Rrr70GAEhOTkZCQgLi4uKwevVqyesqrqjHe/88if2n81Bd24QWB13jZJptbgJERER0N1rOD028YPz8QWtlsUTm6NGj2L59OwCgsbERK1euxF//+lfs3r0bKSkpOHz4sKT1/es/6agxsP3y5kNXUVbVIGl9RERE1u6eMG94uzsBAE5cKkF2UQ2UKo2Fo+oYiyQyVVVVWL16NZ577jkAwPnz5xEWFobQ0FAoFAokJCRgz549ktVXXatESka5wXJRBI6m2u5EJyIios6QyQTd/jFKlQbv/uMklq9NxL9+uWIzCY1F5si89dZbWLFiBQoLm7uxSkpK4O/vrysPCAhAcXGxoW/Xy9fX8I6EtSqt0d0MAUCpEeHv33p9PRERkb3KLqzB8Uslt11TqjT4z6k8lFQ34r3F4yC38v1lzJ7IbN68Gd27d0dUVBS2bdsGANBqtbetGhJFscOriMrLa6HVGkhX1BrIZILhcgBuTgqUll7vUJ1ERES27O8/pRjseTl/tQy/JGdi5AB/veWmIpMJRjsn7mT2RGb37t0oLS3FjBkzUF1djfr6euTn50Muv7WrbmlpKQICAiSr083FAfcO8G+Vdd7koJBx5RIREXUpKrUWZ9ONL3Y5ebnE7IlMR5k9kfn66691X2/btg3Hjx/Hu+++i7i4OGRnZyMkJAQ7d+7Eo48+Kmm9cyb3R0ZBDcqqG2+7LpMJeHrqPfDo5ihpfURERNZMpdbCyEAFAKDRBk7Etop9ZJycnLBq1SosXboUSqUSMTExiI+Pl7QOz26OGDsoEDuPZgMAfD2cMLi3DyaNDEVogG2e+ElERNRZLk5yBHi5oMTIqt1e3T3MGFHnCKKtbuV3B6NzZG549+sTyC6+DrlMwJplE+DqbBV5HBERkUXsP5WH73+5orfMUSHDx4ujdMuzzaWjc2S6zBEF5dWNyC5unsx7T5g3kxgiIuryYkcEI3ZEcKvrggC8OHOo2ZOYzugyn+ZnWkxoiuxv3ROXiIiIzEEmCJgfNwAxET1w7GIxklIKUVOnAgD0DLKNLUm6TI/MmfQy3dfD+/lZMBIiIiLr0jPQHY/F9kP86DAAzRvFnrta1sZ3WYcukcjUNqhwOacKANCnh4dNdJURERGZW2T/W3/on7nCRMZqnL9WBu2NOc2R4eyNISIi0ifQ2xXB/t0AAKlZFVA2Wf8xBV0ikWmZVY7g/BgiIiKDIsObPydVai1SMissHE3b7DqRUWu0uJZfjfM3DowM8nFFd99uFo6KiIjIeo1oObzUxs6/1sAuVy2JoohfTuRi97Ec1NQ16a77ejpbMCoiIiLrFxboDm93J1ReV+Lc1TJotFrIZdbb72G9kd2FHxMzsfHA1duSGABIzazAvuM5FoqKiIjI+gmCgBE3hpfqGtW4kltt4YiMs7tEpqa+Cbt/yzZY/mNiJhqbrP/sCCIiIktpuXrpp6RMnL5SCpVaa8GIDLO7oaUL18qh1hg+qqChSYNLWZXcFI+IiMgAuUwGAYAI4HJOFS7nVMHD1QFPTb0HEVa2F5vd9cg0qdpeKqZUW/9yMiIiIksorWrAmi3ncGeXQE29Cuu2XUB20XWLxGWI3SUyfXp4tv0cGzjNk4iIyBL2n8pDo4H9YzRaET8fMzx9wxLsLpEJC3LHwJ5eBstH9PdHgLerGSMiIiKyHRezKo2WX8o2Xm5udpfIAMDiGUPg7Chvdb1/qBeenjrQAhERERHZBplgvFwQ2niCmdndZF8A0Gi0um2VPbs5YtyQIAzp7YOBYd5W9wIQERFZk8F9fJBTUmuwfEhvHzNG0za7TGSOphbpJiklRPfC/SNCLBoPERGRrZg8MhRHzhWitkHVqsxBIcOUMT0tEJVhdje0JIoiEi8UAQAUcgGj7wm0cERERES2w9vdCS/PHq47PLKl56YPQrC/mwWiMszuemSuFdSguKIeADA83B9uLg4WjoiIiMi29Ax0x3tPj8a1ghocOJWH3y4WAwBqG61vQ1m765FJulCo+3r80CALRkJERGS7BEFAv2BPzJjQW3ftzJUyC0akn90kMrUNKly4Vo7fUpuzRs9ujhhsZROSiIiIbE2gt6tumCk1q0K3mMZa2M3Q0gffnERReb3ucb8QT6s+rZOIiMhWRIb7I7+0Diq1FimZFRg5wHqO+bGbT3qt9vbNlE9fLsXFrAoLRUNERGQ/RrQ4RPJMeqkFI2nNbhKZO4kAth/JsHQYRERENi8s0B3e7k4AgHNXy6DRWs9J2HabyADAtfwa1NQ3WToMIiIimyYIAkaENw8n1TWqcSW32sIR3WLXiQwAqNXWkzUSERHZqsiWw0tXrGd4yW4m++rj6+EMrxtdYURERNR5/UO94OIkR4NSg1/PFaBeqcKogYEY2tcXMgse/2PXiUz8mJ4W/cclIiKyF1fzqqFUNY9yNKm1SE4pRnJKMYb09sGLM4fC0aH1Yc3mYJdDSwKAKWN74v4RwZYOhYiIyObVN6qwbtuFViuEASAlswLbfrXc4hq76ZGZHzcAV3Kr4OKkwL0D/OHn5WLpkIiIiOzC0dRi1CsNH0/w67kCPDKxD5ws0CtjN4nM0L6+3MmXiIjIBHJLao2WNzZpUFbdiGC/1gdNmppdDi0RERGRdFyd2+73cHWyTN8IExkiIiIyasw9gUbL+4d66TbMMzcmMkRERGRUWJA7Jkb00FvmIBfwxP39zBzRLUxkiIiIqE1Pxg/A47H94Otxe8/LlLFh6N3dw0JR2dFkXyIiIjIdmSAgfkxPxI0ORUZBDT769hQAIKfY+ERgk8dl0dqJiIjIpsgEAf2CPXUrlFKzKqBs0lguHovVTERERDbr5tlLKrUWKZkVFouDiQwRERF1WOSN07AB4Ey65Q6RZCJDREREHdYryF235Prc1TJotFqLxMFEhoiIiDpMEAREhjcPL9U1qnElt9oicTCRISIiok6J7N9ieOmKZYaXmMgQERFRpwwI9YLLjaMJzqSXQhRbn45takxkiIiIqFMUchnCQzwBAOU1SixbcwTrf0pFTvF1s8XARIaIiIg65VJWBVJbLL2ua1Tjt4vF+OCbk0jJKDdLDExkiIiIqMO0WhF/330JGm3r4SS1prlMrTH9SiaLJDLr1q3DtGnTMG3aNHzyyScAgOTkZCQkJCAuLg6rV6+2RFhERETUTpdyKlFeozRYXlXbdFtvjamYPZFJTk5GYmIitm/fjv/7v/9Damoqdu7ciZUrV+Kvf/0rdu/ejZSUFBw+fNjcoREREVE7VV03nMTonlPb9nPultkTGX9/f7z22mtwdHSEg4MD+vbti6ysLISFhSE0NBQKhQIJCQnYs2ePuUMjIiKidvLzdG7Hc1xMHofZE5nw8HAMHz4cAJCVlYWff/4ZgiDA3//WWvSAgAAUFxebOzQiIiJqp/BQLwT5uBos9/dyxj1h3iaPQ2HyGgxIT0/H4sWL8corr0AulyMrK0tXJooiBEHo0P18fd0kjpCIiIiMefXJUXjjy2TUNahuu+6okOHVJ0chMNDD5DFYJJE5deoUli1bhpUrV2LatGk4fvw4Sktv7QhYWlqKgICADt2zvLwWWj0zp4mIiMg0PJ3lePepUfjPqTycTS9DUUU9ACA8xBM+rg4oLe34fjIymdChzgmzDy0VFhZiyZIl+PTTTzFt2jQAQEREBDIzM5GdnQ2NRoOdO3di4sSJ5g6NiIiIOsjHwxmPx/bDR8+ORbBfNwBAel41lCqNWeo3e4/Mhg0boFQqsWrVKt212bNnY9WqVVi6dCmUSiViYmIQHx9v7tCIiIjoLkT290N+WR2a1FqkZlZgRIuzmExFEC1xMIIJcGiJiIjIsjILa/D+P08CAKKHBGHRQ4M6fA+rH1oiIiIi+9QryB3e7k4AgLNXy6DR2unOvkRERGR/BEFAZLgfgOZzl9Jzq01eJxMZIiIikkxki3kxp9NLjTxTGkxkiIiISDIDQr3g6tS8lujMlTKYeiouExkiIiKSjEIuQ0Q/XwBAeU0jjl8qgbLJdEuxLbazLxEREdmnQO9bRxd8+VMqnBzkiBneA4/G9IGDQi5pXeyRISIiIslcya3CT0mZt11TqjTYdyIXf92eIvlQExMZIiIiksyWQ9dgaFu3c9fKkZZTJWl9TGSIiIhIEtW1SlzNN77k+tTlEknrZCJDREREklCq294AT+ozmJjIEBERkSR83J3g4epg9Dm9u3tIWicTGSIiIpKEQi7DpHtDDZa7uzoganCQpHUykSEiIiLJTBsbhvHDure6rpALWP5YBFycpN35hfvIEBERkWRkMgFPT70Hk0eG4ERaCQ6dyUddoxqCIKCHXzfp65P8jkRERNTl9Qx0x6MxfRE7IgQAoFJrkZpZIXk9TGSIiIjIZEb099N9feaK9IdIMpEhIiIikwkLdIe3uxMA4OzVMmi0bS/R7ggmMkRERGQygiAgMry5V6auUY30XOMb5nUUExkiIiIyqcj+/rqvT6dLO7zERIaIiIhMakCol27Z9ZkrZZIeHMlEhoiIiExKIZchop8vAKC8phG5JbWS3ZuJDBEREZnciPBbw0ubD17FqcslULXjbKa2cEM8IiIiMjmt9tZwUmpWJVKzKuHRzRG/TxiEwb18On1f9sgQERGRSWUXXcf/7rzY6npNXRPWbjmPwvK6Tt+biQwRERGZ1N4TOdBo9U/wVam1+OVkXqfvzUSGiIiITOpyTpXR8rTsyk7fm4kMERERmZRMMF4ub+sJxu7d6e8kIiIiaoehfXyNl/c1Xm4MExkiIiIyqQfH9ISzo1xvmZuLAyaPDOn0vZnIEBERkUkFervi5dmRCPbrdtt1AcCyWUPh4+Hc6XtzHxkiIiIyuT49PPDeotHIKKzBnmM5OHW5FCKAmjrVXd2XPTJERERkFoIgoG8PT0wdG6a7dubK3R0iyUSGiIiIzKpXkDu83Z0AAGevlkGj7fxRBUxkiIiIyKwEQUBkuB8AoK5RjfTc6k7fi4kMERERmV1k/1uHSJ5O7/zwEhMZIiIiMrsBoV5wcWpec3TmShlEUf8RBm1hIkNERERmp5DLENGveSO88ppG5JbUduo+TGSIiIjIIkaEtxhe6uTqJe4jQ0RERBYxuLcPFHIBao2IfSdyUVrVgJjIYET7urX7HkxkiIiIyCJSMyug0TTPjWls0uBoajGuFdQgOjK03ffg0BIRERGZXXl1I9bvSEXnpvjewkSGiIiIzO7XcwVQa+42jWEiQ0RERBZQUFYnyX2YyBAREZHZdXORZpouExkiIiIyuzH3BEpyHyYyREREZHYDw7wxZtDdJzNMZIiIiMjsBEHAMw/dg8di+8LHo/kkbLlMwPAWm+S16z5iZw83MIEdO3bgb3/7G9RqNRYsWIB58+a1+3vLy2uh1VpNU4iIiKidRFFEg1INRwc5HB3k8LXFDfGKi4uxevVqbNu2DY6Ojpg9ezbGjBmDfv36WTo0IiIiMiFBEODq7NCp77WaoaXk5GSMHTsWXl5ecHV1xYMPPog9e/ZYOiwiIiKyYlaTyJSUlMDf/9a4WEBAAIqLiy0YEREREVk7qxla0mq1EARB91gUxdset6Uj42lERERkH6wmkQkKCsLJkyd1j0tLSxEQENDu7+dkXyIiItsnkwkd6pywmqGlcePG4ejRo6ioqEBDQwP27duHiRMnWjosIiIismJW0yMTGBiIFStW4Mknn4RKpcKsWbMwbNgwS4dFREREVsyq9pG5GxxaIiIisn02O7RERERE1FFMZIiIiMhmMZEhIiIim8VEhoiIiGwWExkiIiKyWUxkiIiIyGYxkSEiIiKbxUSGiIiIbBYTGSIiIrJZTGSIiIjIZjGRISIiIptlNYdG3i2ZTLB0CERERHSXOvp5bjeHRhIREVHXw6ElIiIisllMZIiIiMhmMZEhIiIim8VEhoiIiGwWExkiIiKyWUxkiIiIyGYxkSEiIiKbxUSGiIiIbBYTGSIiIrJZdnNEwY4dO/C3v/0NarUaCxYswLx580xSz/z581FRUQGFovmf7r333kNERIRk96+trcXs2bPxxRdfICQkBMnJyfj444+hVCoxZcoUrFixwiT1/Pd//zdOnToFFxcXAMCLL76IBx544K7rWbduHX7++WcAQExMDF555RWTtElfPaZo05o1a7B3714IgoBZs2bhqaeeMkl79NVjqtcIAP74xz+isrISq1atMtl77s56TNUefT+jdXV1krdJXz0bN26UvE0HDhzAunXr0NDQgOjoaLzxxhsmeY301SP1a7R582Z89913usd5eXmYMWMGJk+eLGl7DNXT0NBgkvfcjz/+iPXr1wMAJk6ciFdffdUkr5G+ekzxc7R+/Xps3boVjo6OmDp1Kp5//nmTtEdfPZ1qj2gHioqKxNjYWLGyslKsq6sTExISxPT0dMnr0Wq14vjx40WVSiX5vUVRFM+ePSs+9NBD4uDBg8Xc3FyxoaFBjImJEXNyckSVSiU+/fTT4qFDhySvRxRF8aGHHhKLi4vv+t4tJSUliU888YSoVCrFpqYm8cknnxR37NgheZv01bNv3z7J23Ts2DFx9uzZokqlEhsaGsTY2Fjx0qVLkrdHXz3Xrl0zyWskiqKYnJwsjhkzRnz11VdN9p67sx5RNM17Tt/PqCnaZOh3gdRtysnJEcePHy8WFhaKTU1N4pw5c8RDhw5J3h5D9ZjqPSeKonjlyhXxgQceEAsKCkz2nmtZT3l5uUnaU19fL44aNUosLy8XVSqVOGvWLHH//v2St0lfPUlJSZK36eY9r1+/LqrVanHx4sXijz/+aJLf23fWs3fv3k61xy6GlpKTkzF27Fh4eXnB1dUVDz74IPbs2SN5PRkZGQCAp59+GtOnT78t45fCpk2b8PbbbyMgIAAAcP78eYSFhSE0NBQKhQIJCQmStOvOehoaGlBQUICVK1ciISEBa9euhVarvet6/P398dprr8HR0REODg7o27cvsrKyJG+TvnoKCgokb9Po0aPxzTffQKFQoLy8HBqNBjU1NZK3R189zs7OJnmNqqqqsHr1ajz33HMATPeeu7MeU73n9P2MmqJN+uoxRZt++eUXTJ06FUFBQXBwcMDq1avh4uIieXv01TNw4ECTvEY3vfPOO1ixYgVyc3NN8p67sx4XFxeTtEej0UCr1aKhoQFqtRpqtRpubm6St0lfPU5OTpK36eLFixg/fjzc3Nwgl8sxYcIEbN68WfL26Ktn165dnWqPXSQyJSUl8Pf31z0OCAhAcXGx5PXU1NQgKioKn3/+Of7xj39g48aNSEpKkuz+H374Ie69917dY1O16856ysrKMHbsWHz00UfYtGkTTp48iS1bttx1PeHh4Rg+fDgAICsrCz///DMEQZC8TfrqmTBhgkna5ODggLVr12LatGmIiooy2Wt0Zz1qtdok7XnrrbewYsUKeHh4ADDde+7Oekz1ntP3M1pQUCB5m/TV8+OPP0repuzsbGg0Gjz33HOYMWMG/vWvf5nkNdJXj1KpNMlrBDT/8dnY2IgpU6aY9Pd3y3pM9Z5zc3PDH/7wB0yZMgUxMTEIDg42SZv01ePv7y95mwYPHozExERUVVVBqVTiwIEDOH36tOTt0VfP9evXO9Ueu0hktFotBOHWsd+iKN72WCqRkZH45JNP4O7uDh8fH8yaNQuHDx+WvJ6bzNWu0NBQfP755wgICICLiwvmz58vabvS09Px9NNP45VXXkFoaKjJ2tSynj59+pisTcuWLcPRo0dRWFiIrKwsk7WnZT1Hjx6VvD2bN29G9+7dERUVpbtmivecvnpM9Z7T9zO6du1aydukr56MjAzJ26TRaHD06FF89NFH+OGHH3D+/Hnk5uZK3h599Zw8edJkP0MbN27EU089BcC0v+da1mOq91xaWhq2bt2KgwcP4siRI5DJZCb5vaCvnn379knepqioKMycORPz58/HM888g5EjR0KtVkveHn31ODg4dKo9dpHIBAUFobS0VPe4tLRUN2wipZMnT+Lo0aO6x6Io6ib6mYK52nX58mXs3btX91jKdp06dQoLFy7Ef/3Xf+GRRx4xWZvurMcUbbp27RouXboEAHBxcUFcXByOHTsmeXv01bN7927J27N7924kJSVhxowZWLt2LQ4cOIDNmzdL3h599SxZssQk7zl9P6PBwcGSt0lfPfn5+ZK3yc/PD1FRUfDx8YGzszMmT56M5ORkydujr57t27eb5DVqamrCiRMncP/99wMw3e+5O+sx1e+5xMREREVFwdfXF46Ojpg5c6ZJfi/oq+fIkSOSt6m2thZxcXHYsWMHvv32Wzg6OmL06NGSt0dfPY2NjZ1qj10kMuPGjcPRo0dRUVGBhoYG7Nu3DxMnTpS8nuvXr+OTTz6BUqlEbW0ttm/fLtmqEX0iIiKQmZmp6/bduXOnSdoliiI++ugjVFdXQ6VS4YcffpCkXYWFhViyZAk+/fRTTJs2DYBp2qSvHlO0KS8vD2+88QaamprQ1NSE/fv3Y/bs2ZK3R189o0aNkrw9X3/9NXbu3Ikff/wRy5Ytw/3334+vvvpK8vboq2fp0qUmec/p+xl96aWXJG+TvnoWLFggeZtiY2ORmJiImpoaaDQaHDlyBPHx8ZK3R189kydPNslrdPnyZfTq1Quurq4ATPd77s56TPV7buDAgUhOTkZ9fT1EUcSBAwdM0iZ99bi7u5vk99wLL7wAtVqN69evY8uWLVi+fLlJfs/dWc+SJUs61R67WH4dGBiIFStW4Mknn4RKpcKsWbMwbNgwyeuJjY3FuXPn8PDDD0Or1WLu3LmIjIyUvJ6bnJycsGrVKixduhRKpRIxMTGIj4+XvJ6BAwfi2WefxZw5c6BWqxEXF4eHHnroru+7YcMGKJVKrFq1Sndt9uzZkrfJUD1StykmJgbnz5/Hww8/DLlcjri4OEybNg0+Pj6StkdfPS+++CK8vb0lf43uZOvvOUM/o1K3SV89o0ePlrxNEREReOaZZzB37lyoVCpER0djzpw56NOnj6Tt0VfP/PnzoVAoJH+NcnNzERQUpHtsqvfcnfWY6j03fvx4XLx4ETNnzoSDgwOGDh2KpUuXIjo6WtI26avns88+w5YtWyRt08CBAxEXF4fp06dDo9Fg4cKFGDlypOSvkb56OvszJIiiKN5VNEREREQWYhdDS0RERNQ1MZEhIiIim8VEhoiIiGwWExkiIiKyWUxkiIiIyGYxkSEi3H///bhw4YLR5+zfvx8ffPABAODQoUNYs2ZNq+uG5OXlGdyqYMCAAUhISMCMGTPw8MMP46GHHsKXX37Z4Ta89tpr2LBhQ4e+Z9u2bVi8eLHestdffx3Jycm3xf7vf/9bd/rw5s2b8f3333c4TiKSll3sI0NEpjdp0iRMmjQJAHDhwgVUV1e3ut5Z//znP+Hj4wOgecfPGTNmoH///oiNjb27oO/Chx9+CKA5Cbtpzpw5uq9PnTqF8PBws8dFRLdjIkNEtxk6dCieffZZJCUloaSkRLdR2rZt27B371688MIL2LhxIzQaDdzd3REWFoa9e/fiyy+/xNmzZ/GnP/0JTU1NKC0txbhx4/DRRx91qH43NzcMGTIEGRkZcHV1xYcffghXV1fU1dVh69at2L59O7799lvIZDL4+fnhzTffRO/evQE0Jxd79+5FbW0toqOj8eqrr0KhUGDLli344YcfoFKpUF1djd///veYO3cugObt1hctWoSSkhIEBwfj/fffh7+/P+bPn4958+ZhyJAhutj+8pe/oLKyElFRUThw4ACSkpLg7OyMb775Bm+99Raio6MBNPfm9O/fHwsWLJDoVSEiQ5jIENFtmpqa4O3tjY0bNyIlJQVz5szBo48+qiuPiIjA7NmzUVlZiRUrVmDbtm26sm+++QbLli3DmDFjUFdXh0mTJiElJQVeXl7trj8jIwMnTpzAokWL0NDQgPT0dPznP/9BcHAwjh49iq+++go//PADfHx8sG3bNixZsgS7du0CABQVFeG7776DQqHAokWLsGnTJsyYMQObN2/G+vXr4e3tjbNnz+Kpp57SJTKZmZlYvXo1wsLC8Oc//xkffvgh/ud//sdojA888AD279+P8PBwzJs3DyqVCps2bUJ0dDRqa2tx4MABvPrqqx35ZyeiTmIiQ0St3BwqGjx4MJqamlBfX9+u71u1ahV+/fVXfPHFF8jIyIBSqUR9fX2bicyCBQsgk8mg1Wrh4uKCV155BcOGDcOxY8fQvXt3BAcHAwCOHDmCqVOn6oahZs6ciQ8//FA3/DNjxgzd2TrTp0/H4cOHMXfuXHzxxRc4fPgwsrKykJaWdlt7xo0bh7CwMADArFmzMGvWrA78S0EXx+eff46Kigrs2bMH9913Hzw8PDp8HyLqOCYyRNSKk5MTAEAQBADNB+61x+9+9zsMGDAAEyZMwJQpU3Du3Ll2fW/LOTJ3upmYAIBWq21VLooi1Go1AEAul992XaFQoKioCE888QQef/xxjBw5EvHx8Th48KDueS2/R6vVdur0YA8PD8THx+Onn37Cjh078Pbbb3f4HkTUOVy1REQdJpfLdcnDTTU1Nbhw4bSB6woAAAGGSURBVAJefvllxMXFoaioCDk5OXqTj86aMGECdu/ejYqKCgDA1q1b4eXlpetR2bVrF5qamqBUKrF9+3ZMnDgRKSkp8PHxwQsvvIDx48frkhiNRgMAOHbsGAoKCgAAGzdubPepvnf+G8ybNw/ffPMNRFE0yaG1RKQfe2SIqMPGjh2Ll19+Ge+//z4GDx4MoLlX4tlnn8UjjzwCV1dXBAYGYsSIEcjOzkZoaKgk9UZHR2PhwoVYsGABtFotfHx88OWXX0Ima/6bLCQkBHPnzkVdXR0eeOABPPLII2hsbMSWLVsQHx8PQRAwevRo+Pj4IDs7GwDQv39/rFy5EmVlZejTpw/ee++9dsUyceJE3YnrixcvxsCBA+Hp6YnZs2dL0lYiah+efk1EJIGcnBzMnz8fe/bsgYuLi6XDIeoy2CNDRHSX1qxZg02bNuHdd99lEkNkZuyRISIiIpvFyb5ERERks5jIEBERkc1iIkNEREQ2i4kMERER2SwmMkRERGSzmMgQERGRzfr/1Luj7meQ6w4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 648x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = pyplot.subplots(figsize=(9, 9))\n",
    "sns.set(style='darkgrid')\n",
    "\n",
    "plot = sns.pointplot(x='Initial Probability',\n",
    "            y='Sample Size to Detect Difference',\n",
    "            hue='Confidence Level', ax = ax,\n",
    "            data=df)\n",
    "\n",
    "labels = []\n",
    "for i in range(0, 101):\n",
    "    if i % 5 == 0:\n",
    "        labels.append(str(i))\n",
    "    else:\n",
    "        labels.append('')\n",
    "plot.set_xticklabels(labels=labels);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we see in the figure, the highest sample size occurs when the initial probability or the baseline is close to 50% of the population (P1). This means that is harder to detect a difference when the population baseline is a homogeneous mixture."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 06. Ploting the minimum sample size required by the lift expected"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T19:59:19.000572Z",
     "start_time": "2020-02-25T19:59:18.743730Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "18.6\n",
      "    Lift  Sample required Confidence Level\n",
      "0      5              361              95%\n",
      "1      6              255              95%\n",
      "2      7              191              95%\n",
      "3      8              148              95%\n",
      "4      9              119              95%\n",
      "..   ...              ...              ...\n",
      "70    75                3              95%\n",
      "71    76                3              95%\n",
      "72    77                3              95%\n",
      "73    78                3              95%\n",
      "74    79                3              95%\n",
      "\n",
      "[75 rows x 3 columns]\n"
     ]
    }
   ],
   "source": [
    "print(baseline*100)\n",
    "lift_range = range(5, 80)\n",
    "\n",
    "\n",
    "samples_lift = [sample_required(baseline, lift/100, .05) for lift in lift_range]\n",
    "dic = {'Lift': lift_range, 'Sample required': samples_lift, 'Confidence Level': '95%'} \n",
    "    \n",
    "df = pd.DataFrame(dic)\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-02-25T20:00:27.258521Z",
     "start_time": "2020-02-25T20:00:26.463011Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 648x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = pyplot.subplots(figsize=(9, 9))\n",
    "sns.set(style='darkgrid')\n",
    "\n",
    "plot = sns.pointplot(x='Lift',\n",
    "            y='Sample required',\n",
    "            hue='Confidence Level', ax = ax,\n",
    "            data=df)\n",
    "\n",
    "labels = []\n",
    "for i in range(5, 101):\n",
    "    if i % 5 == 0:\n",
    "        labels.append(str(i))\n",
    "    else:\n",
    "        labels.append('')\n",
    "plot.set_xticklabels(labels=labels);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we see in this figure, we need an exponentially bigger sample size if we want to be able to detect smaller lifts, while we are able to detect easily bigger lifts with a smaller sample size."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Conclusion\n",
    "The example shows how Python can be a very useful tool for performing “back of the envelope” calculations, such as estimates of required sample sizes for tests where this determination is not straightforward. These calculations can save you a lot of time and money, especially when you’re thinking about collecting your own data for a research project."
   ]
  }
 ],
 "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.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

About

The purpose of this exercise is to calculate how many people need to be shown the new assets before we can check if the results are a significant improvement.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages