Skip to content

Instantly share code, notes, and snippets.

@wboykinm
Created April 1, 2019 00:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wboykinm/3f9c8fa53299534a7f429e34991105ab to your computer and use it in GitHub Desktop.
Save wboykinm/3f9c8fa53299534a7f429e34991105ab to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"_uuid": "e38835708d1b268a5aa1a291572b8de51a07e9b6"
},
"source": [
"# Data-driven power rankings\n",
"\n",
"Ranking the teams by their strength is a very important piece of information your model should use.\n",
"\n",
"Some of the rankings are using expert opinion (i.e. majority vote of fan opinion). However, this may be not the best approach, as human opinions tend to be biased towards their favorites. Moreover, it may be easy to determine a top few strong teams, but it is a much harder to rank teams in the mid-lower range ranks.\n",
"\n",
"In NCAA tournament teams are assigned with tournament starting seeds, which also has expert bias - it is not uncommon, that a team with higher win ratio % would get lower seed compared to a team with lower win ratio %, based on the regular season schedule (which is not the same for every team!). Therefore, the judgment of team strength of assigned seed sometimes get controversial opinion among fans and media!\n",
"\n",
"The idea of this kernel is to try to calculate the team strength rankings only based on the data we have in our disposal. This way we will eliminate all possible human biases and get a robust estimate of team's strength."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
"_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5"
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import statsmodels.api as sm\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"seeds = pd.read_csv('../input/datafiles/NCAATourneySeeds.csv')\n",
"tourney_results = pd.read_csv('../input/datafiles/NCAATourneyCompactResults.csv')\n",
"regular_results = pd.read_csv('../input/datafiles/RegularSeasonCompactResults.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "177d18adcc1743fd9b493981ffda26574aa4354f"
},
"source": [
"We are going to use the function which allows us to duplicate the data by swapping the order of teams in given tables:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0",
"_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a"
},
"outputs": [],
"source": [
"def prepare_data(df):\n",
" dfswap = df[['Season', 'DayNum', 'LTeamID', 'LScore', 'WTeamID', 'WScore', 'WLoc', 'NumOT']]\n",
"\n",
" dfswap.loc[df['WLoc'] == 'H', 'WLoc'] = 'A'\n",
" dfswap.loc[df['WLoc'] == 'A', 'WLoc'] = 'H'\n",
" df.columns.values[6] = 'location'\n",
" dfswap.columns.values[6] = 'location' \n",
" df.columns = [x.replace('W','T1_').replace('L','T2_') for x in list(df.columns)]\n",
" dfswap.columns = [x.replace('L','T1_').replace('W','T2_') for x in list(dfswap.columns)]\n",
" output = pd.concat([df, dfswap]).sort_index().reset_index(drop=True)\n",
" \n",
" return output"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"_uuid": "0a3c9bc650994b4ca298503b29e56f14702bf9c0"
},
"outputs": [],
"source": [
"tourney_results = prepare_data(tourney_results)\n",
"regular_results = prepare_data(regular_results)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"_uuid": "d5a4ccfadb1974a82acb1956c5ae561bc545f05b"
},
"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>Season</th>\n",
" <th>DayNum</th>\n",
" <th>T1_TeamID</th>\n",
" <th>T1_Score</th>\n",
" <th>T2_TeamID</th>\n",
" <th>T2_Score</th>\n",
" <th>location</th>\n",
" <th>NumOT</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1985</td>\n",
" <td>20</td>\n",
" <td>1228</td>\n",
" <td>81</td>\n",
" <td>1328</td>\n",
" <td>64</td>\n",
" <td>N</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1985</td>\n",
" <td>20</td>\n",
" <td>1328</td>\n",
" <td>64</td>\n",
" <td>1228</td>\n",
" <td>81</td>\n",
" <td>N</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1985</td>\n",
" <td>25</td>\n",
" <td>1354</td>\n",
" <td>70</td>\n",
" <td>1106</td>\n",
" <td>77</td>\n",
" <td>A</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1985</td>\n",
" <td>25</td>\n",
" <td>1106</td>\n",
" <td>77</td>\n",
" <td>1354</td>\n",
" <td>70</td>\n",
" <td>H</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1985</td>\n",
" <td>25</td>\n",
" <td>1112</td>\n",
" <td>63</td>\n",
" <td>1223</td>\n",
" <td>56</td>\n",
" <td>H</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1985</td>\n",
" <td>25</td>\n",
" <td>1223</td>\n",
" <td>56</td>\n",
" <td>1112</td>\n",
" <td>63</td>\n",
" <td>A</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1985</td>\n",
" <td>25</td>\n",
" <td>1165</td>\n",
" <td>70</td>\n",
" <td>1432</td>\n",
" <td>54</td>\n",
" <td>H</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1985</td>\n",
" <td>25</td>\n",
" <td>1432</td>\n",
" <td>54</td>\n",
" <td>1165</td>\n",
" <td>70</td>\n",
" <td>A</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1985</td>\n",
" <td>25</td>\n",
" <td>1192</td>\n",
" <td>86</td>\n",
" <td>1447</td>\n",
" <td>74</td>\n",
" <td>H</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1985</td>\n",
" <td>25</td>\n",
" <td>1447</td>\n",
" <td>74</td>\n",
" <td>1192</td>\n",
" <td>86</td>\n",
" <td>A</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Season DayNum T1_TeamID ... T2_Score location NumOT\n",
"0 1985 20 1228 ... 64 N 0\n",
"1 1985 20 1328 ... 81 N 0\n",
"2 1985 25 1354 ... 77 A 0\n",
"3 1985 25 1106 ... 70 H 0\n",
"4 1985 25 1112 ... 56 H 0\n",
"5 1985 25 1223 ... 63 A 0\n",
"6 1985 25 1165 ... 54 H 0\n",
"7 1985 25 1432 ... 70 A 0\n",
"8 1985 25 1192 ... 74 H 0\n",
"9 1985 25 1447 ... 86 A 0\n",
"\n",
"[10 rows x 8 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"regular_results.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "00008b58fe6066335c46afcbcd3b3e708a656cb9"
},
"source": [
"As you can see, at this point we have clean tables with duplicated rows, but only team positions and their scores swapped.\n",
"\n",
"What we are going to do next is pretty simple - we are going to make dummy features based on `T1_TeamID` and `T2_TeamID` and feed them as factors the `glm` model."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"_uuid": "7e40d0a8fc5294d49e78664a53c35ac127e4fe18"
},
"outputs": [],
"source": [
"# convert to str, so the model would treat TeamID them as factors\n",
"regular_results['T1_TeamID'] = regular_results['T1_TeamID'].astype(str)\n",
"regular_results['T2_TeamID'] = regular_results['T2_TeamID'].astype(str)\n",
"\n",
"# make it a binary task\n",
"regular_results['win'] = np.where(regular_results['T1_Score']>regular_results['T2_Score'], 1, 0)\n",
"\n",
"def team_quality(season):\n",
" \"\"\"\n",
" Calculate team quality for each season seperately. \n",
" Team strength changes from season to season (students playing change!)\n",
" So pooling everything would be bad approach!\n",
" \"\"\"\n",
" formula = 'win~-1+T1_TeamID+T2_TeamID'\n",
" glm = sm.GLM.from_formula(formula=formula, \n",
" data=regular_results.loc[regular_results.Season==season,:], \n",
" family=sm.families.Binomial()).fit()\n",
" \n",
" # extracting parameters from glm\n",
" quality = pd.DataFrame(glm.params).reset_index()\n",
" quality.columns = ['TeamID','beta']\n",
" quality['Season'] = season\n",
" # taking exp due to binomial model being used\n",
" quality['quality'] = np.exp(quality['beta'])\n",
" # only interested in glm parameters with T1_, as T2_ should be mirroring T1_ ones\n",
" quality = quality.loc[quality.TeamID.str.contains('T1_')].reset_index(drop=True)\n",
" quality['TeamID'] = quality['TeamID'].apply(lambda x: x[10:14]).astype(int)\n",
" return quality"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "5a02966d55465cf57de13ab1fae3d58938f28761"
},
"source": [
"So what is done here - we are running a logistic regression with *N* teams in T1_x position and *N* teams in T2_x position as binary features (each feature being either \"0\" or \"1\").\n",
"\n",
"\"0\" is representing that the team did not play in that match at the position T1 (or T2 respectively), and \"1\" would represent that this team actually played.\n",
"\n",
"So among *N* \\* 2 features, only 2 of them are \"1\" (as only 2 teams play during basketball matches). In this setup `glm` model is trying to fit parameters on each of *N* \\* 2 features to predict the `win` as accurately as possible.\n",
"\n",
"As you can see, we did not use any of the information from the matches themselves (not even a score difference). The idea is, that using this approach we want to extract the natural (or mean) strength of a team, not depending on the opponent the team is going to play. And all the actual results of the basketball matches is just a deviation from the expected mean performance of the team.\n",
"\n",
"Let's try calculate the results for each season:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"_uuid": "837a53b417200ee689f5a6ddf6dfd0102f85b1cf"
},
"outputs": [],
"source": [
"team_quality = pd.concat([team_quality(2010),\n",
" team_quality(2011),\n",
" team_quality(2012),\n",
" team_quality(2013),\n",
" team_quality(2014),\n",
" team_quality(2015),\n",
" team_quality(2016),\n",
" team_quality(2017),\n",
" team_quality(2018)]).reset_index(drop=True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "5454621531cb5eef1d28edc7511df47cdfdd0479"
},
"source": [
"Let's take a look at the distribution of the team strength as in fitted `glm` parameters:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"_uuid": "0ba04dbcc4288e098fba98fc0344516325b885e3"
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f55c6746048>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.set_style('whitegrid')\n",
"sns.kdeplot(np.array(team_quality['beta']), bw=0.1)"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "48d1827761ee782f4a317e15208f4f0d6d3cfa05"
},
"source": [
"The distribution seems to be symetric, with a little shift towards positive estimates. In general, very nice looking distribution.\n",
"\n",
"If you have noticed, during quality estimation I used the `exp(beta)` to determine team's quality. The idea is, that the difference of i.e. `beta=1` and `beta=2` is not equivalent of the difference between `beta=2` and `beta=3`, as beta parameters are following not linear, but logarithmic interpretation (all this is the result of us using binomial `glm`). However, it is possible to get a linearly comparable team strengths - it is sufficient to apply `exp(beta)` transformation!\n",
"\n",
"Let's take at the `exp(beta)` distribution:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"_uuid": "dc5e5f39425cb1e4e443749557ca47cf847e66ae"
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f55c44b9470>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.set_style('whitegrid')\n",
"sns.kdeplot(np.array(np.clip(team_quality['quality'],0,1000)), bw=0.1)"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "e7109b11ba480f259616c64dcf89aa67f69435f8"
},
"source": [
"First thing we can notice, that there is a collection of teams with very high team strengths. This is where you would expect the tournament leaders to be!"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "2a4333883da3abe8b37fdc9cdbf771ba74495333"
},
"source": [
"# March Madness teams - team strength overview"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "7c7b92cc11e9a1d26f939d13cb6e57f0ae4aa983"
},
"source": [
"Up until this point we considered all the teams which played in the regular season. However, we are only interested in March Madness selected teams. I am going to analyze how the team strength we calculated translates into predicting the winners of NCAA March Madness tournament matches."
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "44537ca601a8c86a38745effb9022f50bffd8b00"
},
"source": [
"Let's merge the team quality data to our tournament results table:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"_uuid": "978666a8d4831c6d7b14790681eae5b58c7b1062"
},
"outputs": [],
"source": [
"team_quality_T1 = team_quality[['TeamID','Season','quality']]\n",
"team_quality_T1.columns = ['T1_TeamID','Season','T1_quality']\n",
"team_quality_T2 = team_quality[['TeamID','Season','quality']]\n",
"team_quality_T2.columns = ['T2_TeamID','Season','T2_quality']\n",
"\n",
"tourney_results['T1_TeamID'] = tourney_results['T1_TeamID'].astype(int)\n",
"tourney_results['T2_TeamID'] = tourney_results['T2_TeamID'].astype(int)\n",
"tourney_results = tourney_results.merge(team_quality_T1, on = ['T1_TeamID','Season'], how = 'left')\n",
"tourney_results = tourney_results.merge(team_quality_T2, on = ['T2_TeamID','Season'], how = 'left')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"_uuid": "45a0e7f596ed0cd8f52f23344e4bfa741e9d08b2"
},
"outputs": [],
"source": [
"# we only have tourney results since year 2010\n",
"tourney_results = tourney_results.loc[tourney_results['Season'] >= 2010].reset_index(drop=True)\n",
"\n",
"# not interested in pre-selection matches\n",
"tourney_results = tourney_results.loc[tourney_results['DayNum'] >= 136].reset_index(drop=True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "48dc666321fa630a92f210c2880a3ff3ea20ba94"
},
"source": [
"We are also going to be interested in comparing how the team strength we calculated correlates with seeds assigned to each team:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"_uuid": "5ca8d86ad11d25d138e0bcee87e45e18dea6b770"
},
"outputs": [],
"source": [
"seeds['seed'] = seeds['Seed'].apply(lambda x: int(x[1:3]))\n",
"seeds['division'] = seeds['Seed'].apply(lambda x: x[0])\n",
"\n",
"seeds_T1 = seeds[['Season','TeamID','seed','division']].copy()\n",
"seeds_T2 = seeds[['Season','TeamID','seed','division']].copy()\n",
"seeds_T1.columns = ['Season','T1_TeamID','T1_seed','T1_division']\n",
"seeds_T2.columns = ['Season','T2_TeamID','T2_seed','T2_division']\n",
"\n",
"tourney_results = tourney_results.merge(seeds_T1, on = ['Season', 'T1_TeamID'], how = 'left')\n",
"tourney_results = tourney_results.merge(seeds_T2, on = ['Season', 'T2_TeamID'], how = 'left')"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "a0766205a2677b48e868eced93acd4ab2e517e96"
},
"source": [
"Let's try and convert team quality to the rank of team quality:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"_uuid": "cdf6ff0388e664fdcdd9cc31a784e940703841c5"
},
"outputs": [],
"source": [
"tourney_results['T1_powerrank'] = tourney_results.groupby(['Season','T1_division'])['T1_quality'].rank(method='dense', ascending=False).astype(int)\n",
"tourney_results['T2_powerrank'] = tourney_results.groupby(['Season','T2_division'])['T2_quality'].rank(method='dense', ascending=False).astype(int)"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "bc7ecf48994aa30811fdb688e4e621fb758859c1"
},
"source": [
"At this point we are interested to see how the power rank we derived from regular season correlats with seed data:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"_uuid": "c119e3557b5cee848459023684fd81f7adea838f"
},
"outputs": [],
"source": [
"piv = pd.pivot_table(tourney_results, index = ['T1_seed'], columns=['T1_powerrank'], values = ['T1_TeamID'], aggfunc=len)\n",
"piv = piv.xs('T1_TeamID', axis=1, drop_level=True)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"_uuid": "a677ed46f21d3e8608ab57fddf70341977703e8e"
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f55c449eb70>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAApcAAAHkCAYAAABrMgRjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd4VNXaxuHfJKGkQiaERHqXjgoIiICCNBGpgqJIswAiShGkgzRREVQ4IIg0kd4OFlAQCFU6iFJFkSItIYUUkpnM9weST9ADmTB7zzA8t9dcV7KTrPUEZ5I3795rL4vD4XAgIiIiIuICPu4OICIiIiLeQ8WliIiIiLiMiksRERERcRkVlyIiIiLiMiouRURERMRlVFyKiIiIiMuouBQRERERl1FxKSIiIiIuo+JSRERERFzGz90BbsX/wR7ujsC+b99zdwQAsvl6xt8BxcJzujuCiIjIXc+oGid57yRDxnWGZ1QsIiIiIuIVPLpzKSIiIuKVLN7b3/Pe70xERERETKfOpYiIiIjZLBZ3JzCMOpciIiIi4jLqXIqIiIiYzYuvuVRxKSIiImI2nRYXEREREbm9u75zOXXY8zSuXZ6LMQlUeWYMAKEhAcwd15nC+aycPBvDC/1mEJuQTEhQTj4f1YGC94Xi5+vLxDnrmPvf7S7N89G7w9m1LYpcoVYmzVoCwIljR/jPh6NJS72Kr68vXXsNpFSZ8i6d92YfjhnKjq1R5A61MnXuMgC+mDGF1auWkiu3FYAOr77OwzVqGZpDRERE/oUXnxa/67+zuau20+y1yTcc69upPht2HKFCs3fYsOMIfTs1AODVNrU5fOIc1dq+S8OXP+Ld3i3I5ufr0jz1Gjdl+Ps35pk1dSLPdXiFj2YspF3nbsyaOtGlc/6b+k82Y9T4Kf843rxNeybPWsTkWYtUWIqIiIjL3fXF5ZY9vxITl3TDsaceq8gXq34E4ItVP9L08YoAOICgwBwABPrn4HJcEjZ7ukvzlK9UmaDgXDccs1gsJCUlApB45QrWsHCXzvlvKjxQmeCQEMPnERERkSywWIx5eIC7/rT4v8kbFsy5S/EAnLsUT96wYACmLtjIkomvcuK70QQH5qR9/89xOByG53mpR1+GvfUaM/8zgXRHOu9NnmX4nP/LqmULWLdmFSXvL8vLPfqqABUREXEHnRZ3raVLl5o63/X6sf4jZThw5DTFGgyi2rNjmfD2MwQH5jR8/m9XLualHn34fMlqXnqtL5+8N8LwOf9NkxZt+HzhV0yeuQhrWDjTJ33glhwiIiLivdxSXH7yySeGjn8hOoHIPNc6cpF5QrgYkwBA+6ers/KH/QCcOHWJ389Ec3+RCEOzAPyw5itq1K4HQM3H63P00M+Gz/lvQq1h+Pr64uPjQ+OnW3L00EG35BAREbnn6bS485o2bfo/P3bp0iWjpgXg640/8ULTanww83teaFqNrzYcAODUucs89vD9bNn7K3mtwZQqEsFvZ4zNAmANC+fgvt1UeLAKB/bsIF+BQobP+W9iLl3Emufa9Z5bo36gcLESbskhIiIi3sviMOiiw0ceeYQZM2YQctM1fQ6Hg2effZbNmzffdgz/B3vc9nNmj+1IrcolyZM7iAsx8Yyc+g2r1h/gi3GdKXhfKH/8GcML/T7ncnwS94XnYtqIF4jMkwuLBT6Y+T0Lvtl5y/H3ffvebTP83fsj3ubgvt3Ex8WS22rluU5dKVCwCNM/eR+73Ub27Dno2msAJe4v69S42XydazK/O6w/B/btIj72Wo72XbpxYO8uThw7AhYLEZH56PnWkIxiM7OKhRt/GYGIiIi3839koCHjJm8dY8i4zjCsuBw4cCAtW7akSpUq//hYnz59GD9+/G3HyExxaTRni0ujOFtcGkXFpYiIyJ3zrznIkHGTt4w2ZFxnGHZafMyY/105Z6awFBEREZG7j1feikhERETEo+lWRCIiIiIit6fOpYiIiIjZPOS2QUZQ51JEREREXEadSxERERGzefE1lyouRURERMzmxcWl935nIiIiImI6dS5FREREzObjvQt6PLq43PXVOHdHoPPc3e6OAMDcjlXdHYFcAX5EJ9rcHQOAsECPfuqKiIjcs/QbWkRERMRsuuZSRERERFzGYjHmcRsDBgygRo0aPPXUUxnHYmNj6dSpEw0aNKBTp07ExcUB4HA4GDVqFPXr16dp06b8/PPPmfrWVFyKiIiI3CNatmzJZ599dsOxadOmUaNGDb777jtq1KjBtGnTAIiKiuL333/nu+++Y+TIkQwfPjxTc6i4FBERETGbxceYx21UrVqVXLly3XBs3bp1NG/eHIDmzZuzdu3aG45bLBYeeOAB4uPjuXDhwm3nUHEpIiIicg+Ljo4mb968AISHhxMdHQ3A+fPniYyMzPi8yMhIzp8/f9vxtKBHRERExGwG7S2+cOFCFi5cmPF+27Ztadu2baa/3mKxYLnDbCouRURERMxm0GpxZ4tJgLCwMC5cuEDevHm5cOECVqsVgIiICM6dO5fxeefOnSMiIuK24+m0uIiIiMg9rG7duqxYsQKAFStWUK9evRuOOxwO9u3bR3BwcMbp81vxms7lpQvn+PjdocRejsaChfpPteSpVu1IiI9j/Mi3uXjuLOGR+eg7dBxBwSGG5SgU6s87T5fOeD9frpx8tuUkFxNS6VKzEIXDAnh57j4On79iWAaAD8cMZcfWKHKHWpk6dxkAX8yYwupVS8mV+9pfJB1efZ2Ha9QyNMd1J3//jaFv98l4/8yZ07zctQdtn3/RlPlFREQ8ikGnxW+nd+/e7Nixg8uXL1O7dm1ef/11XnnlFd58802WLFlCvnz5mDhxIgB16tRh48aN1K9fH39/f8aMGZOpOSwOh8Nh5DdxJ34+k5jpz42Jvsjl6EsUL1WG5KRE+nZ9nrff+ZD1a/5LUHAuWrbrxLIvZ3LlSjwvvvJGpsd95cs9WYkOXNvZaUW3arz8xT5y+vngcMBbDUowecNvTheXzu7Q89O+3fj7B/DBqEE3FJc5/QNo3a6DU2NdlyvANX+L2O12mjV6nOmzF3BfvnxZGkM79IiIyN3Mv+EHhoybvKavIeM6w2tOi1vDwileqgwA/gGBFChUlOhLF9ixZSOPNbx2o9DHGj7Fjs0bTMtUpXBuzsQmcz7+KidjkvnjcrJpc1d4oDLBIcZ1aO/Erh3byV+gYJYLSxERkbuem25FZAZDU/z6669s27aNxMQbO5BRUVFGTsuFc2f57fgRSpUpT+zlaKxh4QCEWvMQezna0Ln/rl7pcNYeumjafJmxatkCunVozYdjhpIQH++WDGvXfEv9hk+6ZW4RERExlmHF5Zw5c+jevTtz586ladOmGTfkBJgwYYJR05KcnMR7w/rSuXsfAgKDbviYK5bXZ5afj4VHi4fxw5FLpsyXGU1atOHzhV8xeeYirGHhTJ9kTEv+VtLSUtkctZ669RuaPreIiIjHcNP2j2Yw7MK1xYsXs2zZMgIDAzl9+jQ9e/bkzJkzdOjQAaMu87TZ0nh/WF9qP/Ek1WtfW+mUOzSMmOiLWMPCiYm+mLGYxWjVi4Vy9MIVLielmTJfZoRawzLebvx0S4b1e930DNu2bKZU6bJYw/KYPreIiIjH8JBT2EYw7DtLT08nMDAQgAIFCjB37lyioqIYO3asIcWlw+Fg8vvvkL9QUZ5+5oWM41Ufqc2GNV8BsGHNVzxcs47L5/439Uvn5XsPOyUec+n/82yN+oHCxUqYnuH71d/olLiIiIgXM6xzGRYWxqFDhyhT5toim8DAQD799FMGDhzI0aNHXT7f4YP72Pj91xQuVoLeLz8LwPNdetDyuU588E5/1n27gvCI++gzdJzL575Zzmw+VC2Sm/e+O5ZxrHbJMHrVK05u/2y836ocxy4k0nvJQcMyvDusPwf27SI+NpYXWtSnfZduHNi7ixPHjoDFQkRkPnq+NcSw+f9NcnISO3/cSv9Bw0ydV0RExON4yClsIxh2K6Jz587h6+tLeHj4Pz62e/duKleufNsxnLkVkVHu5FZEruTsrYiM4KpbEbmCbkUkIiJ3M/8mHxsybvLXPQ0Z1xmG/Yb++0bnN8tMYSkiIiLitbz4mku1f0RERETM5sXFpfd+ZyIiIiJiOnUuRURERMzmxQt61LkUEREREZdR51JERETEbF58zaWKSxERERGz6bS4iIiIiMjtqXMpIiIiYjadFnePIuEB7o7A+JYV3B0BgOOXEtwdgew+vu6OAEDVoqEkphqysdRdJzC7955WERGRu5NHF5ciIiIiXknXXIqIiIiI3J46lyIiIiIms3hx51LFpYiIiIjJvLm41GlxEREREXEZdS5FREREzOa9jUt1LkVERETEddS5FBERETGZN19zqeJSRERExGQqLu8yV69e5aWOL5Camordbqde/QZ0e62nKXNHXzzPtPHDib8cAxYLjzdqToPmzzJ57CDOnTkJQNKVKwQEBTFy0heGZEhLvcrEQT2wpaWSbrfzwCOP0+S5Lsz+cAR/HD+Mr58fhUuW4dlu/fD1M+4pkJZ6lQ8GdMOWlobdbuehmo/zdLuXuXTuLNM/GEJifByFSpSmc69h+GXLZliO69z5vPDEHCIiIkawOBwOj91HL6tb/DkcDpKTkwgICCQtLY0uHZ6nb/+BVKz0gNNj/XQqzqnPj425RGzMJYqUKE1yUiLDenbgjaHvkb9QsYzPmT/9I/wDA2ne7qVMjxufmpbpz3U4HKSmJJPDPwC7zcaEAd1o9dIbJCUkULZydQBmfTicEmUfoFbjFpke19ntHx0OB1dTksn5V4733n6Vti/1Yu3K+TxY4zGq1q7PvP+Mo0CRktR5smWmx61aNNSpHH/P46rnxZ1wZQ5t/ygicncKeXaOIePGL3jRkHGdYeiCngMHDnDgwAEAjh8/zsyZM9m4caORUwLXWs0BAYEA2Gw2bDabae3n3NY8FClRGgD/gEDyFSrC5UsXMz7ucDjYsWkt1es0MCyDxWIhh/+1fdntdht2ux2LxUK5KjWwWCxYLBYKlyxLbPQFwzJcz5Hz7zn++v9w+MBuHqr5OADV6z7Jvh+jDM3x9zzuel54Yg4REREjGHZOdNKkSURFRWGz2ahZsyb79++nWrVqTJs2jV9++YVu3boZNTUAdrud59u24tQff9Dm2XZUqFjJ0Pn+zcXzZzn561GKly6XcezIwX2E5LYSmb+QoXOn2+2816cLF8+doXbjFhQp9f8Z7DYbOzesoVWXNwzNcD3H6N6duPjnaeo82Yrw+/ITEBiEr++1p15oWF5ioy/eZhTX8YTnhSflEBER9/DmpoJhncs1a9Ywf/585s2bx7x58/jPf/7Da6+9xowZM/jmm2+MmjaDr68vC5asYPXaDfx88ADHjx01fM6/S0lO4pPRb/P8K73wDwjKOL5943dUf8y4ruV1Pr6+vD1xFiM/W8bJY4c4e/JExscWfjqeEmUrUaKc8QWNj68vQz6aw7ufr+T3Y79w7vRJw+e8FXc/Lzwth4iIuInFoIcHMKy49PX1xdfXF39/fwoVKkRQ0LUCK2fOnPj4mHd7zeCQEKpUrcbWLZtMm9Nms/HJ6Ld55LFGVPnr9C9cOzW8e+t6qtV+wrQsAUHBlKzwEIf2bgfgmwWfcyUulhadXzctw/Uc91d4iF8P/0RS4hXsdhsAl6MvkDss3NQs4J7nhSfnEBERcRXDqrxs2bKRnJwMwLJlyzKOJyQkGF5cXo6JISE+HoCUlBS2b99KkaLFbvNVruFwOJgxcRT5ChahUct2N3zs5707ua9AEax5IgzNkBB3maQrCQCkXr3K4X07ichfmK3fr+Lw3h107DPclAL/xhwpHNq3k/sKFuH+Cg+xZ8t6ALb/8A2VqtUyPAu493nhiTlERMR9rq+BcPXDExh2zeW8efPInj07wA2FTFpaGu+++65R0wJw8eJFhg1+G7vdjsPhoH6DRtSu8/jtv9AFjv2yn60/fEuBIiUY0uMFAFp36EalqjX5Mep7QxfyXBd/OZovPhpNeno6Dkc6D9asS/mqNXmjZR2s4RF82P9VACrVqEPjtp0MyxEXE82sie/8lcNB5UfrUrHqo9xXsCifvT+ElV98SsFipahZv6lhGf7Onc8LT8whIiJiBK+8FZErOXsrIqM4cysiozh7KyKjZPVWRN5ItyISEbk7hb4wz5BxL3/xvCHjOkN7i4uIiIiIy3jlDj0iIiIinsxTro80gopLEREREZN5c3Gp0+IiIiIi4jLqXIqIiIiYzXsbl+pcioiIiIjrqHMpIiIiYjJvvuZSxaWIiIiIyVRcigDnk5LdHQGA83EB7o6An69n/FAItOZwdwQREZEbeHRx6Qm7j1QvntvdEQD47tBFd0cQERERF/HmzqUW9IiIiIiIy3h051JERETEK3lv41LFpYiIiIjZdFpcRERERCQT1LkUERERMZk6lyIiIiIimaDOpYiIiIjJ1LkUEREREckEdS69UFrqVSYO6oEtLZV0u50HHnmcJs91YfaHI/jj+GF8/fwoXLIMz3brh6+fcU+BtNRUPh/xBra0NNLT7ZSrVoe6z3Tk15/28N28qTgcDrLn9KdFt/6EReY3LMeHY4ayY2sUuUOtTJ27DIAvZkxh9aql5MptBaDDq6/zcI1ahmX4YNRQfty6kdyhVqbPWw7ArE8nsXXTeiw+PuQOtfLW4JHkCc9rWAYREfEc3ty5tDgcDoe7Q8jtObNDj8PhIDUlmRz+AdhtNiYM6Earl94gKSGBspWrAzDrw+GUKPsAtRq3yPS4l1NSncrscDhIvZpCjpz+2G02PhvWkyc79mDZ5Hdp99ZIwvMXZsd3Kzl9/DAtu/fP9LhVC4Q5leOnfbvx9w/gg1GDbiguc/oH0LpdB6fGus7Z7R8P7N2Ff0AA770zKKO4TEy8QmBgEADLF83j5G8neLP/EKfGLaTtH0VE7kr5ui4zZNyzU1saMq4zTD0t3q9fPzOnu2dZLBZy+F/bf9tut2G327FYLJSrUgOLxYLFYqFwybLERl8wPkdO/4wc6XYbYAELpCQlAZCSlEhwqHPForMqPFCZ4JAQQ+e4nYoPViE4JNcNx64XlgApycl48R+xIiJyDzHsnGjXrl3/cezHH3/MOD516lSjphYg3W7nvT5duHjuDLUbt6BIqXIZH7PbbOzcsIZWXd4wPke6nakDuhJz7gwPN2hOwZJlaPZKX74YN4Bs2bOTwz+Ql0dOMjzHv1m1bAHr1qyi5P1leblHX7cUoJ9P/Zi1364iMCiI9yfNMH1+ERFxD28+LW5Y5/L8+fMEBQXRqVMnOnfuTKdOnQgMDKRz58507tzZqGnlLz6+vrw9cRYjP1vGyWOHOHvyRMbHFn46nhJlK1GiXCXjc/j40n3cdPr8ZxGnfz3M+VO/se2bJbzQfyx9/7OIBx9ryOq5UwzPcbMmLdrw+cKvmDxzEdawcKZP+sD0DACdu/bky5XfU7dBE1Yume+WDCIiIq5kWHG5dOlSypcvz9SpUwkODqZatWrkyJGDhx9+mIcfftioaeUmAUHBlKzwEIf2bgfgmwWfcyUulhadXzc1h39gEEXLPcCxfT9y7uSvFCxZBoDyNR7n1NGfTc0CEGoNw9fXFx8fHxo/3ZKjhw6anuHv6jVswuYNa92aQUREzHP9MjVXPzyBYcWlj48PHTt2ZOzYsUyZMoV33nkHu91u1HTyNwlxl0m6kgBA6tWrHN63k4j8hdn6/SoO791Bxz7D8fEx/nLbxPhYkhOvANdWsP96YDfh+QpzNTmRS2dPAVw7lr+Q4VluFnPp/xdIbY36gcLFSpie4fSpk/+fYdN6ChYuanoGERFxD28uLg2/FVFkZCQff/wxGzZsICgo6PZfIHcs/nI0X3w0mvT0dByOdB6sWZfyVWvyRss6WMMj+LD/qwBUqlGHxm07GZYj4XI0y6aMw5GejiM9nXI1HuP+yjV4+uU+LJgwHIvFgn9gMM27vmVYBoB3h/XnwL5dxMfG8kKL+rTv0o0De3dx4tgRsFiIiMxHz7ecW6XtrNFD+3Fgzy7iYmN57uknePGl7uzYtonTf/yOxeJDROR9vNHP2AwiIiJm0K2I7hLO3IrIKM7eisgozt6KyAjO3orIKLoVkYjI3algj5WGjHtqUjNDxnWGdugREREREZfRDj0iIiIiJvOU6yONoOJSRERExGTeXFzqtLiIiIiIuIw6lyIiIiImU+dSRERERCQT1LkUERERMZk6lyIiIiIimaDO5V2iWhH33zg8ISXN3REAOB2T7O4I5PLP5u4IWIOycz7e/f9PcgW4/98i3YP2ggjI5r3dCBFxIS/+UaHiUkRERMRkOi0uIiIiIpIJ6lyKiIiImMydnctZs2axePFiLBYLpUqVYuzYsVy4cIHevXsTGxtLuXLleO+998iePXuWxlfnUkREROQecf78eebMmcPSpUv56quvsNvtfP3113zwwQd07NiR77//npCQEJYsWZLlOVRcioiIiJjMYjHmkRl2u52UlBRsNhspKSmEh4ezfft2GjZsCECLFi1Yt25dlr83nRYXERERMZlRp8UXLlzIwoULM95v27Ytbdu2zXg/IiKCzp078/jjj5MjRw5q1qxJuXLlCAkJwc/vWlkYGRnJ+fPns5xBxaWIiIiIl7i5mLxZXFwc69atY926dQQHB/PGG2+wadMml2ZQcSkiIiJiMnet59m6dSsFChTAarUC0KBBA/bs2UN8fDw2mw0/Pz/OnTtHRERElufQNZciIiIi94h8+fKxf/9+kpOTcTgcbNu2jRIlSlCtWjXWrFkDwPLly6lbt26W51Dn8h7QrHE9AgID8fHxxdfPlzlfZn0FmDPeHzWU7Vs2kjvUyowvlwPw6Sfj2bZ5I35+2chXoCD9Br9DUHCIYRmiL55n2vjhxF+OAYuFxxs1p0HzZ5k8dhDnzpwEIOnKFQKCghg56QvDcnwybji7tm8iV24rH89cDMBvx48ydcJokpOTyRt5H70HjSYgMMiwDDdbPH8uX61YisPh4KnmrWnTrr1pc183dPAAojZuwGoNY9nKr0yfH+Dcn38yZGB/oqOjsVgstGrdhnbtX3RLFhG5d7jrVkSVKlWiYcOGtGjRAj8/P8qUKUPbtm157LHH6NWrFxMnTqRMmTI888wzWZ7D4nB40L5p8j/FJadn+WubNa7H7C+XkDs09I4yOLv944G9u8jpH8C4dwZlFJe7ftzKg5UfxtfPj2mTJgDwSo9eTo3rzPaPsTGXiI25RJESpUlOSmRYzw68MfQ98hcqlvE586d/hH9gIM3bvZTpcZ3d/vHn/bvJ6R/AR2OHZhSXfbu+QMeuvSj/QGXWfrOC8+fO8nzn7pke0xqUtfuPAZw4fowRg97i09nz8fPLxls9u9JnwFAKFCzk9Fh3sv3j7l07CQgIYNCA/ndUXN7J9o8XL17g0sWLlClbjsTEK7Rr04oPP55M8eIlsjSetn8Ukcwo/fYaQ8Y9/G5DQ8Z1hmmnxXft2sXMmTPZvHmzWVOKm1V8sAohIbluOFal2iP4/rUarWz5ily6kPXVaJmR25qHIiVKA+AfEEi+QkW4fOlixscdDgc7Nq2lep0GhuYoV6kyQTf9W5w9/QflKj0EQKUq1dkWlfXbPjjr5O8nKFO+Ajlz+uPn58cDD1Uhav1a0+a/rnKVqoTkynX7TzRQeHheypQtB0BgYBBFixXn4h2skhQRudcZVly2bt064+1FixYxcuRIEhMTmTRpEtOmTTNqWvk3Fguvd+vCi8+1YvmSRe5Ok+HbVcupWuNR0+a7eP4sJ389SvHS5TKOHTm4j5DcViLzO9+xu1MFixTjxy0bANi6Ya3hhfbfFS1eggP79hAXG0tKSjLbt27iwvlzps3vqc6eOc2RQ4coX7GSu6OIiJfz8bEY8vAEhl1zabPZMt5euHAhM2fOxGq10rlzZ9q2bcsrr7xi1NRyk+kz55E3IoKYmGh6dO1C4aJFeahyVbdmmjdzGr5+fjzRqIkp86UkJ/HJ6Ld5/pVe+Af8/3WN2zd+R/XHjO1a/i+v9xvG9E/eZ9Gc6Txcsw7ZsmX99LKzihQtTrsXO9Pn9VfI6e9PiVL34+Nzb6/vS0pKpG+vnvTtP4CgIPOufRUR8TaGFZfp6enExcWRnp6Ow+HIWPIeEBCAr6+vUdPKv8j71+0ErNYwHnv8CX45+JNbi8vVX61k25YoPpg03ZQLmm02G5+MfptHHmtElZqPZxy3223s3rqeER/PNjzDvylQqCgj3v8PAGdOnWT3dnMvGXmqWSueatYKgGmTJxKeN9LU+T1JWloafd/sSeMmTalX3z1/bIjIvcWNW4sbzrBWxZUrV2jZsiWtWrUiLi6OCxcuAJCYmIjWEJknOTmJxMTEjLd/3LaF4iVKui3Pjm2bWfjFTEa9/zE5c/obPp/D4WDGxFHkK1iERi3b3fCxn/fu5L4CRbDmyfq9vO5E7OUY4NofYovnfkbDpq1Mnf9yTDQA58/9SdT6dTzR6ElT5/cUDoeDEUMHU7RYcdp36OTuOCIidz3TV4snJydz6dIlChYsaOa0d72srhY/c/oUb/V+HQC7zUbDxk/R+eWuWRrL2dXio4b0Y/+eXcTFxhJqtdLh5e7MnzODtNRUQnLlBqBM+Yr06j/EqXGdWS1+9Od9jH7rVQoUKZFxLUrrDt2oVLUm0z98h+L3l6duk5ZOzQ/OrxYfP3IAB/ftJj4ultyhVp7t2JWU5CS+XXntGtjqterS/uXXnerk3slqcYAeL79IXFwsfn5+9HizH5Ufrp6lce5ktXj/vr3ZtXMHsbGXsYaF0e2112nZyvnbX9zJavG9e3bT+cXnKVmyFJa/Lg3o8UYvatWuk6XxtFpcRDKj/ODvDRn34Kj6hozrDN2K6C5xJ7cichVni0ujOFNcGsXZ4tIId1pcusqdFJeucifFpaupuBSRzKgwxJji8qeR7i8u7+0r+EVERETEpbRDj4iIiIjJ3LVDjxnUuRQRERERl1HnUkRERMRk3ty5VHEpIiIiYjIvri11WlxEREREXEedSxERERGTefNpcXUuRURERMRl1Lm8S3jCTaJDAz3MKMIvAAAgAElEQVTjpt1X09x/Q/nAHO5/6TgcEO8BN7bPmc3X3RHw8aQGgG6iLiKZ4MWNSxWXIncrTygsRUQka3RaXEREREQkE9S5FBERETGZFzcu1bkUEREREddR51JERETEZLrmUkREREQkE9S5FBERETGZFzcuVVyKiIiImE2nxUVEREREMkGdy3tAQkI8Y0YM5cSvx8BiYfCwUVSo9ICpGa5evcpLHV8gNTUVu91OvfoN6PZaT1PmnjB2GDu2RpE71MqUOUszjv93yXy+Wr4QHx8fqtaoRZfuvQzL8O7IwWzbHEVoqJVZC1YAEB8Xx/BBfTj351ki78vHiDHjCQ7JZViGj94dzs6tUeQKtTJ59hIAxg3rz5lTvwOQeCWBwKBgPv58oWEZ/k2zxvUICAzEx8cXXz9f5ny5xNT5r7Pb7bR/7hny5s3LxElT3ZJBRO4dXty4VHF5L5jw3liqP/IoYz+YSFpaKikpKaZnyJ49O5/OmEVAQCBpaWl06fA8NR+tTUUTitwnGj9N05bPMn704Ixj+/fsZPvmDUyeuYhs2bMTeznG0AyNmzSn5TPtGDN8YMaxebM/o3LV6jzf4SXmzf6MebNn0PX13oZlqNeoKU1atGXCmCEZx/qPGJfx9oxJ4wkICjJs/luZMn02uUND3TL3dfPnzaVosWIkXrni1hwiInc7nRb3clcSEti7ZxdPt2gFQLZs2QkODjE9h8ViISAgEACbzYbNZjPtepMKD1QmOOTG7/nrFYt45oVOZMt+bb/03KFWQzNUeqjKP7qSW6LW06hJMwAaNWnG5o0/GJqh/AOV/2dn1OFwsHn999Sp18jQDJ7q/PlzbNm0keYtWrs7iojcIywWiyEPT2BY53L//v0UL16coKAgUlJSmDZtGr/88gvFixena9euBAcHGzW1/M3Zs6cJDbUyctggjh89zP1lytG73wD8/QNMz2K323m+bStO/fEHbZ5tR4WKlUzPcN3ZUyf5ef8eZk+bRPbsOXjptV6UKlPe1AyXY6IJyxMOgDUsD5djok2d/+9+3r+H3FYr+QoWNn9yi4XXu3XBYrHQolVbWrRuY3qE8e+NpWevviQmJpo+t4jcmzykDjSEYZ3LgQMHkjNnTgBGjx5NQkICL730Ev7+/gwYMMCoaeUmdpudI4d/oeUzbZmzYBn+/v7M+fwzt2Tx9fVlwZIVrF67gZ8PHuD4saNuyQHXCt2E+HgmfDqXLt3fZOywfjgcDrflsVgsbv1JE7VuNbXd1LWcPnMecxcsY+LkaSxe9CV7du80df5NG9djtVopU7acqfOKiHgrw4rL9PR0/PyuNUYPHjzIoEGDqFKlCj169ODUqVNGTSs3yRsRQXjeCMpXuNYlrPtEA44c/sWtmYJDQqhStRpbt2xyW4Y84RE8UqceFouF+8tWwGLxIT72sqkZQq1hRF+6CED0pYuEGnxq/n+x22xsi/qBWnUbumX+vBERAFitYTz2+BP8cvAnU+ffv28vURvW07RxPQb178POnT8yZEA/UzOIyL3Hm0+LG1ZclixZkqVLr63MLV26ND/9dO0Xxm+//ZZRdIrxwvKEExEZycnffwNg547tFC1W3PQcl2NiSIiPByAlJYXt27dSpGgx03NcV73W4xzYc61DdvqPk9hsaYTkNndBSc3aj7H665UArP56JTVrP27q/Nft2/0j+QsVIU/eCNPnTk5OyjgVnZycxI/btlC8RElTM/R4ozfffL+BVd+uY/S48VStWo2RY98zNYOIiDcxrMobPXo0o0ePZsqUKYSGhvLss88SGRnJfffdx+jRo42aVv5Fn/6DGDawH2m2NPLnL8DgEeb/+1+8eJFhg9/GbrfjcDio36ARteuYU0yNG/42B/buIj4ulvYtG/BC5240aNKciWOH0e3FVvj5ZaP3wJGG/sU3YvBb7Nu9k7jYWFo/VY9OL3en3YsvMXxgH77+7zIiI/MxfMx4w+YHeH/E2/y0dzfxcbF0bNWQdp260uCpFkStW0OdJ9xzSjwmOpq3er8OXOugNmz8FDVq1nJLFhERM3lIk9EQFofBF5pduXKF06dPY7PZiIyMJE+ePEZO57UuJ9ndHYHsfp5xc4FzsebfSulmgTnc332PT0lzdwQAIkJyujsCPh70Qzo4p2e8TkTEs9Uav9mQcTf1edSQcZ1h+G/IoKAgSpcubfQ0IiIiIuIB3N9+EREREbnHeMriGyPo/I2IiIiIuIw6lyIiIiIm8+LGpYpLEREREbPptLiIiIiISCaocykiIiJiMi9uXKpzKSIiIiKuo86liIiIiMm8+ZpLFZeSaZ7yOsgTnMPdEYhLdv/uOMmp7t+1CTwjR2AOX3dHACAhxUaCmzeQ8vWg7YoiQrK5O4KIuIGKy7tEaID7f3kmpRm6U6iIiMg9w1MaNkZQcSkiIiJiMh8vri61oEdEREREXEadSxERERGTeXHjUp1LEREREXEddS5FRERETKZbEYmIiIiIy3jQXcNcTqfFRURERMRl1LkUU5z780+GDOxPdHQ0FouFVq3b0K79i6bnaNa4HgGBgfj4+OLr58ucL5eYMu8Ho4by49aN5A61Mn3ecgBmfTqJrZvWY/HxIXeolbcGjyRPeF7DMly6cI7J44YRezkGi8XCE01a8GTL55j76Ufs3h6Fn182IvIVoPtbwwgMCjYsx7sjB7NtcxShoVZmLVgBQHxcHMMH9eHcn2eJvC8fI8aMJzgkl2EZ/o3dbqf9c8+QN29eJk6aasqc40YOYfuWKHKHWpk5/9rzYsO6NcyaPoU/fj/BlJnzub9MOVOyXLd4/ly+WrEUh8PBU81b06Zde1PnF7lXePNpcXUuxRS+fr70fqs/y/77NXO+XMDCBfP49dfjbskyZfps5i1ablphCdCgydOMmTDlhmPPvNCRaV8s5dM5i6leszZffP6poRl8ff1o37UXEz5fzOhPZrJm5WJOnzxBxcrVGP/ZQj6YvoD7ChRi+fyZhuZo3KQ57390Y/E2b/ZnVK5anS+XfkPlqtWZN3uGoRn+zfx5cylarJipczZ6qhnjJt74vCharCTvjJtAxQcrm5oF4MTxY3y1Yimfzp7P518uZdvmjZw+9YfpOUTk7qbiUkwRHp6XMmWvdWACA4MoWqw4F8+fd3Mq81R8sMo/OnGBgUEZb6ckJxt+W4rQsDwUK1kaAP+AQPIXKkLMpQtUqlIdX99rJzFKlalAzMULhuao9NA//y22RK2nUZNmADRq0ozNG38wNMPNzp8/x5ZNG2neorWp81Z6sAohN/1bFC5ajEKFi5qa47qTv5+gTPkK5Mzpj5+fHw88VIWo9WvdkkXE21ksxjw8gWHF5Zw5c/jzzz+NGl7uYmfPnObIoUOUr1jJ/MktFl7v1oUXn2vF8iWLzJ//Jp9P/Zh2zerzw3df0+Hl10yb98K5s/x2/AglSpe/4fgPq//LAw8/YlqO6y7HRBOWJxwAa1geLsdEmzr/+PfG0rNXXyw+9/bf20WLl+DAvj3ExcaSkpLM9q2buHD+nLtjiXgli0H/eQLDfpJ+9NFHPPPMM7Rr14558+YRExNj1FRyF0lKSqRvr5707T+AoKCg23+Bi02fOY+5C5YxcfI0Fi/6kj27d5qe4e86d+3Jlyu/p26DJqxcMt+UOVOSkxg/oh8du/ch4G/d02XzZuDr60uteo1NyfG/WEz+83vTxvVYrdaMzvq9rEjR4rR7sTN9Xn+Fvj27UqLU/fjc4wW3iDjPsJ8aBQsWJCoqiu7du/Pzzz/z5JNP0qVLF5YvX86VK1eMmlY8WFpaGn3f7EnjJk2pV7+BWzLkjYgAwGoN47HHn+CXgz+5JcfN6jVswuYNxp9+tNlsjB/ej1r1GlGtVt2M4xvWrGL39s30HDDKLReZh1rDiL50EYDoSxcJDbWaNvf+fXuJ2rCepo3rMah/H3bu/JEhA/qZNr+neapZKz6bu4hJ02YTHBxCwUJF3B1JxCv5WIx5eALDikuLxYKPjw+PPvooY8aMYdOmTbRr145NmzbxxBNPGDWteCiHw8GIoYMpWqw47Tt0ckuG5OQkEhMTM97+cdsWipco6ZYsAKdPncx4e+um9RQ0+Do7h8PB1A/eIX/hojzV+oWM4/t2bGXlwjn0H/khOXLmNDTD/1Kz9mOs/nolAKu/XknN2o+bNnePN3rzzfcbWPXtOkaPG0/VqtUYOfY90+b3NNcvSTh/7k+i1q/jiUZPujmRiNxtDLsVkcPhuOH9bNmyUa9ePerVq0dycrJR04qH2rd3D1+vWknJkqVo26o5AD3e6EWt2nVMyxATHc1bvV8HwG6z0bDxU9SoWcuUuUcP7ceBPbuIi43luaef4MWXurNj2yZO//E7FosPEZH38Ua/IYZmOHJwP1Frv6FQ0RK89Wo7AJ7r3J2Zkz/AlpbGyP7XrvksWaY8r7w50LAcIwa/xb7dO4mLjaX1U/Xo9HJ32r34EsMH9uHr/y4jMjIfw8eMN2x+TzJycD/27bn2b/HMU/Xo+MprhITk4uMPxhAXe5kBvbpTvFRp3v/Y2DsJ/N2Q/r2Ii4vFz8+PXv0GERwcYtrcIvcSb74VkcVxcxXoIr/99htFi7pnxaMYIynNkKeK09Js7s8Rl5zm7ghcTkx1dwQAIkLc0+38u8Acvu6OAEBCis3dEfD1lPNiQERINndHEPFYzabvMmTclS9XMWRcZxjWuVRhKSIiIvLvvLhxqR16RERERMzm48XVpe4xISIiIiIuo86liIiIiMm8uHGpzqWIiIiIuI46lyIiIiIm8+ZbEam4FBERETGZF9eWOi0uIiIiIq6jzqWIiIiIybz5VkQqLuWu4+fr/hekJ+wIk5jiGSce4lPcv1tRujEbjTktV4D7d6Tx4t9XTrucZHd3hAyhAe7/mSFiFhWXkmkB2Tzjt1ZiqmcUEiIiIlnlGb9RjaHiUkRERMRk7lwtHh8fz+DBgzl69CgWi4UxY8ZQtGhRevXqxZkzZ8ifPz8TJ04kV65cWRrfM86riYiIiIgpRo8eTa1atVi9ejUrV66kePHiTJs2jRo1avDdd99Ro0YNpk2bluXxVVyKiIiImMzHYszjdhISEti5cyetW7cGIHv27ISEhLBu3TqaN28OQPPmzVm7dm2WvzedFhcRERHxEgsXLmThwoUZ77dt25a2bdtmvH/69GmsVisDBgzg8OHDlCtXjkGDBhEdHU3evHkBCA8PJzo6OssZVFyKiIiImMyoay5vLiZvZrPZ+OWXXxgyZAiVKlVi1KhR/zgFbrFY7iifTouLiIiI3CMiIyOJjIykUqVKADRq1IhffvmFsLAwLly4AMCFCxewWq1ZnkPFpYiIiIjJLBZjHrcTHh5OZGQkJ06cAGDbtm0UL16cunXrsmLFCgBWrFhBvXr1svy93fK0+HfffXfLL27QoEGWJxYRERG5V7nzVkRDhgyhb9++pKWlUbBgQcaOHUt6ejpvvvkmS5YsIV++fEycODHL49+yuFy/fj0A0dHR7N27l+rVqwPw448/8uCDD6q4lLvK1atXeanjC6SmpmK326lXvwHdXutpeo6Tv//G0Lf7ZLx/5sxpXu7ag7bPv2jovJ+MG86u7ZvIldvKxzMXA/Db8aNMnTCa5ORk8kbeR+9BowkIDDI0x0fvDmfn1ihyhVqZPHsJAOOG9efMqd8BSLySQGBQMB9/vvAWo9yZcSOHsH1LFLlDrcycvxyADevWMGv6FP74/QRTZs7n/jLlDJv/33jC8/Pcn38yZGB/oqOjsVgstGrdhnbtjX1eerKEhHjGjBjKiV+PgcXC4GGjqFDpAXfHErljZcqUYdmyZf84Pnv2bJeMb3E4br9vWufOnXn33XczVhFduHCBAQMGMGPGDJeEEHFGVnfocTgcJCcnERAQSFpaGl06PE/f/gOpmIVfFilprtlWzm6306zR40yfvYD78uVz6msvxF116vN/3r+bnP4BfDR2aEZx2bfrC3Ts2ovyD1Rm7TcrOH/uLM937u7UuL5Obsd5cN+1HBPGDMkoLv9uxqTxBAQF8VzHVzM9ZlAO59Ym7t+7C3//AMaOGJRRXJ787QQWHwsfvvsO3Xr2zVJxeSfbP7rq+XknzZCLFy9w6eJFypQtR2LiFdq1acWHH0+mePESWRrP3bt63en2j+8MGUClByvTrGVr0tJSSUlJITg4JEtjaftHuVnH+QcMGXfWcxUNGdcZmbrm8s8//8woLAHy5MnD2bNnb/k1qamprFixgq1btwKwatUq3nnnHebNm0damvv3IpZ7j8ViISAgELi2Ws5ms7n1tATArh3byV+goNOFZVaUq1SZoJAbd1s4e/oPylV6CIBKVaqzLWqd4TnKP1CZ4JB/3/XB4XCwef331KnXyNAMlR6sQshNGQoXLUahwkUNnfdWPOH5GR6elzJlrxXVgYFBFC1WnIvnz5uawVNcSUhg755dPN2iFQDZsmXPcmEpcq/J1J/7NWrUoEuXLjRp0gSAb775hkceeeSWXzNgwADsdjspKSksX76cpKQk6tevz/bt2zlw4ADjxo278/QiTrLb7TzfthWn/viDNs+2o0LFSm7Ns3bNt9Rv+KTb5i9YpBg/btlA9UcfZ+uGtVy64N5C4uf9e8httZKvYGG35nAXT3p+nj1zmiOHDlHeza8Rdzl79jShoVZGDhvE8aOHub9MOXr3G4C/f4C7o4mXcHdzw0iZ6lwOHTqUZ599lsOHD3P48GHatm3LkCFDbvk1R48eZeLEiUyaNIktW7bw8ccf07x5c8aOHcsvv/zikvAizvL19WXBkhWsXruBnw8e4Pixo27LkpaWyuao9dSt39BtGV7vN4xvVy6m9yvtSE5OJFu2rJ/WdYWodaupbXDX0pN5yvMzKSmRvr160rf/AIKCjL0G11PZbXaOHP6Fls+0Zc6CZfj7+zPn88/cHUu8iMWghyfI9IVKZcuWJTAwkEceeYTk5GSuXLlyyx86DoeD1NRUkpOTSU5OJiEhgdy5c5OamorNZnNJeJGsCg4JoUrVamzdsokSJUu5JcO2LZspVbos1rA8bpkfoEChoox4/z8AnDl1kt3bN7sti91mY1vUD0yY/qXbMngKdz4/09LS6PtmTxo3aUq9+vfuos28ERGE542gfIVrndu6TzRgzkwVlyKZkanictGiRSxcuJC4uDjWrl3L+fPnGTZs2C1XFbVu3ZrGjRuTnp5Or169eOONNyhYsCD79+/POL0uYqbLMTH4+fkRHBJCSkoK27dvpWPnl9yW5/vV37j1lDhA7OUYcodaSU9PZ/Hcz2jYtJXbsuzb/SP5CxUhT94It2VwJ094fjocDkYMHUzRYsVp36GTqXN7mrA84URERnLy998oXKQoO3dsp2ix4u6OJV7Ex4tPi2dqtXizZs1YvHgxbdq0ybjBZtOmTVm1atUtv+78XxeCR0REEB8fz9atW8mXLx8VK7p/JZPcvbK6WvzokSMMG/w2drsdh8NB/QaNeKXba1ka605XiycnJ9HiySdY8t81BAUHZ2kMZ1eLjx85gIP7dhMfF0vuUCvPduxKSnIS365cBED1WnVp//LrTl8H5Oxq8fdHvM1Pe//KYbXSrlNXGjzVggljhlK6XAUaN3vGqfHA+dXiIwf3Y9+encTFxhJqtdLxldcICcnFxx+MIS72MkFBwRQvVZr3P/7UqXHvZLW4q56fd/L7au+e3XR+8XlKliyFxefaVVM93uhFrdp1sjTe3b5a/OiRQ4wZMZQ0Wxr58xdg8IjR/1gIlllaLS43e2nhQUPG/axteUPGdUamistnnnmGxYsX07x5c1asWIHNZqNFixa3LS5FjJDV4tKVXHUrojvhbHFpFGeLSyM4W1wa5U6KS1fxpGbI3V5cupKKS7nZy4uMKS6nt3F/cZmpn8hVq1Zl6tSppKSksGXLFr788kvq1q1rdDYRERERr3TPrxbv27cvVquVUqVKsXDhQurUqcObb75pdDYRERERuctkqnPp4+PD008/TZUqVShWrJjRmURERES8mhc3LjPXuVy3bh3NmjXjpZeurVw8dOgQXbt2NTSYiIiIiNx9MlVcTp48mSVLlhAScm3rqzJlynDmzBlDg4mIiIh4Kx+LxZCHJ8hUcenn50dwFm+XIiIiIiL3jkxdc1miRAlWrVqF3W7n999/Z+7cuTz44INGZxMRERHxSh7SZDREpjqXQ4YM4fjx42TPnp3evXsTFBTEoEGDjM4mIiIi4pUsFoshD0+QqZuo/53dbic5OfmW+4qLGCkpzf03UU+86v6bM/v5eMYPkex+mfob1VCXE1PdHQGAVJv7n5sB2T3jZt0hAZ5xY/uraenujgDoJuryT68tP2TIuJNblDFkXGdk6tXfp08fRowYgY+PD61bt+bKlSu8+OKLGavHRUREPJGKOvFU7v+z3DiZ+t6OHz9OUFAQa9eupXbt2qxbt46VK1canU1ERERE7jKZKi5tNhtpaWmsXbuWunXrki1bNo85ry8iIiJyt/Hmay4zVVy2bduWunXrkpycTNWqVTlz5oyuuRQRERHJIh+LMQ9P4PSCHgCHw4HdbsfP79olm8uXL6dFixYuDyfyb7Sg5xot6Pl/WtDz/7Sg50YB2TzjdSJyszdXHjZk3InNShsyrjOy9FvBYrFkFJYAc+bMcVkgEREREW/nzZ1Ll7QcstD8FBEREREv5JLzFp5yAamIiIjI3cCbayeXFJfqXIqIiIhknqecwjaCS4rLhx56yBXDiBjq3J9/MmRgf6Kjo7FYLLRq3YZ27V90S5aF82azasVSLBYLxUqUZOCw0eTIkcPUDAkJ8YwZMZQTvx4Di4XBw0ZRodIDpma4evUqL3V8gdTUVOx2O/XqN6Dbaz0Nn/f9UUPZvmUjuUOtzPhyOQCffjKebZs34ueXjXwFCtJv8DsEBYcYmuPDMUPZsTWK3KFWps5dBsAXM6awetVScuW2AtDh1dd5uEYtwzK8O3Iw2zZHERpqZdaCFQDEx8UxfFAfzv15lsj78jFizHiCQ3IZluFmnvRaFRHnZfmay6VLl2a8PXToUJeEETGSr58vvd/qz7L/fs2cLxewcME8fv31uOk5Ll44z5IF85gxdxFzF60k3Z7OujXfmJ5jwntjqf7Ioyxc/jVfLFxGkWLFTM+QPXt2Pp0xi4VLVzJ/8XK2bdnMgf37DJ+3YZOnGTthyg3HKj9cgxnzlvHZvKUUKFiYL2fPMDxH/SebMWr8lH8cb96mPZNnLWLyrEWGFpYAjZs05/2Ppt5wbN7sz6hctTpfLv2GylWrM8+Ef4u/85TXqoiRLBZjHp4gy8XlJ598ctvPOXXqFDNmzGDUqFGMHTuW+fPnc+XKlaxOKXJHwsPzUqZsOQACA4MoWqw4F8+fd0sWu93O1asp2Gw2rqakkCc8r6nzX0lIYO+eXTzdohUA2bJlJ9jgLt2/sVgsBAQEAtc2a7DZbKZch1TxwSqE3NSJq1LtEXz/ugtG2fIVuXTB+OdGhQcqExxi/r/731V6qMo/upJbotbTqEkzABo1acbmjT+YmsmTXqsi4rxbnhZv2rTp//zYpUuXbjnwnDlz2LBhA1WqVOHgwYOUKVOGc+fO0aZNG4YNG0a1atWylljEBc6eOc2RQ4coX7GS6XOH543g2Rc60qrJE+TIkZOq1R/h4Ro1Tc1w9uxpQkOtjBw2iONHD3N/mXL07jcAf/8AU3PAtUL7+batOPXHH7R5th0V3PD/5GbfrlrOY080ctv8q5YtYN2aVZS8vywv9+hregF6OSaasDzhAFjD8nA5JtrU+f/Ona9VESP5eEqb0QC37FxGR0fz3nvvMXXq1BseU6ZMIXfu3LccePHixUyfPp3u3bszc+ZMjh8/Tq9evfjss88YO3asS78JEWckJSXSt1dP+vYf4JadpuLj49i88QcWrfqOFavXk5KczJpvVpmawW6zc+TwL7R8pi1zFizD39+fOZ9/ZmqG63x9fVmwZAWr127g54MHOH7sqFtyXDdv5jR8/fx4olETt8zfpEUbPl/4FZNnLsIaFs70SR+4Jcd1Fjeea3P3a1VEsuaWxeVjjz1GYmIi+fPnv+FRoECBTHUe7fZru5ikpqaSmJgIQL58+bDZbC6ILuK8tLQ0+r7Zk8ZNmlKvfgO3ZNj143buy1+A0FArftmyUbvuE/y0f6+pGfJGRBCeN4LyFa51g+o+0YAjh38xNcPNgkNCqFK1Glu3bHJbhtVfrWTbligGjhjrttuEhFrD8PX1xcfHh8ZPt+TooYNuyRB96SIA0ZcuEhpqNT2DJ7xWRYzkY9DDE9wyx6FDh6hSpcq/fmz8+PG3HLh169a0atWKwYMH07ZtW55//nkAYmJiyJXLvFWHItc5HA5GDB1M0WLFad+hk9tyRETex88/7SclORmHw8HuHdspUrS4qRnC8oQTERnJyd9/A2Dnju0ULWZuBoDLMTEkxMcDkJKSwvbtWylS1PyFRQA7tm1m4RczGfX+x+TM6e+WDAAxfxV1AFujfqBwsRKmZ6hZ+zFWf70SgNVfr6Rm7cdNnd9TXqsiRvLmBT233Fu8RYsWLF++PMuDHzt2jF9//ZWSJUtSvLj5v7jEO2V1b/G9e3bT+cXnKVmyFBafa39X9XijF7Vq13F6rDvdW3zG1Ems+241vn6+lLq/DP2HvEP27NmdGuNO9xY/euQQY0YMJc2WRv78BRg8YvQ/Frlkxp3sLX70yBGGDX4bu92Ow+GgfoNGvNLtNafHcXZv8VFD+rF/zy7iYmMJtVrp8HJ35s+ZQVpqKiG5rl3yU6Z8RXr1H+LUuM7uLf7usP4c2LeL+NhYcluttO/SjQN7d3Hi2BGwWIiIzEfPt4Zg/ev6x8xwdm/xEYPfYt/uncTFxmINC6PTy915tE49hg/sw/nzfxIZmY/hY8YT4mRT4E72Fnfla1V7i4unGvStMZcAjW5cyomXC+oAACAASURBVJBxnXHL4rJ27dp06vS//2q81cdEjJLV4tKV7rS4dIU7LS5d5U6KS1dxtrg0irPFpRGcLS6NcifFpSupuBRPNWT1MUPGHdmopCHjOuOWr/709PSMayVFRERERG7nlsVleHg4PXr0MCuLiIiIyD3BU66PNMIti0vtGS4iIiLieh5yZZMhbnmx1KxZs0yKISIiIiLe4Jady9vdKF1EREREnHfP7tAjIiIiIuIMz7hXhIiIiMg9xIsblyouRURERMzmzQt6VFyK3KU85XqduKQ0d0cgm69nXOGTkOz+m7nnzOYZ/xae8vwUEfOpuJS7jifsuBGQzf0vnbjkdHdHEBGRLLLg/t9lRvGMP3FFRERExCu4v/0iIiIico/x5msu1bkUEREREZdR51JERETEZN7cuVRxKSIiImIyixffUUGnxUVERETEZdS5FBERETGZN58WV+dSRERERFxGnUuRe1SzxvUICAzEx8cXXz9f5ny5xJR5x40cwvYtUeQOtTJz/nIANqxbw6zpU/jj9xNMmTmf+8uUMyXLdYvnz+WrFUtxOBw81bw1bdq1N2XeT8YNZ9f2TeTKbeXjmYsB+O34UaZOGE1ycjJ5I++j96DRBAQGGZbBE/9/DB08gKiNG7Baw1i28itT5xYxixdfcqnOpci9bMr02cxbtNy0whKg0VPNGDdxyg3HihYryTvjJlDxwcqm5bjuxPFjfLViKZ/Ons/nXy5l2+aN/9fevcfnXP9/HH9c2xw2NgybYxnCCCW+cyiHYRHLHBY5VfRVcsghc6okXynfiq91+FJUSuKHlA7fcp4vOUVKIilnZufzZtfl8/vD11BUY5/P5+ryvLtdt9t2Xdvn9dzHtWuv6/3+fN4fjh87aknt8E6RPP3CK5fd9+qLzzLg7yOZs2Apze9sx4dLFpqawd3+PwC6RfXg9blv2lJbxCpeDocpN3eg5lJELNX49qYEBJS57L6bQ2py080htuQ5cvhnQm9tSMmSvvj4+HBbk6bErV9jSe0Gje+g9K/2xcnjR2nQuAkAjZs256u4taZmcLf/D4A7mjYjoEyZP/5CEXFLai5FblQOByOGDmbg/T35cNlSu9PYJqRWbb79Zhdpqank5uawdcsmzsSfti1P9Ro12bZ5AwBbNqwh8Uy8bVlExDxeDnNu7kDHXIrcoN54axFBwcEkJycx/NHB3BwSQpM7mtkdy3I1QmrRd+Agxo4YQklfX2rXqYuXl33vu0fETOGN2H+ydOEb/K1VG4oVK2ZbFhGRa2Fac5mRkcHcuXNZs2YNycnJOBwOAgMDad++PUOGDCEgIMCs0iLyJwQFBwMQGFietu06sG/vdzdkcwnQtVtPunbrCcC8V2dTMaiSbVmq3RTC1H++BsCJY0f4eut/bcsiIuZxk8MjTWHa2/NRo0YREBDAu+++y/bt29m2bRsLFy4kICCAUaNGmVVWRP6EnJxssrKyCj7e9tVmatW+xeZU9klJTgIg/vQp4tavpUOne2zLkpqSDMC5c+f4v3ff5O7InrZlERHzeOEw5eYOHIZhGGZs+O677+aLL74o9GMi8uek5Zy75u89cfwY48aMAMDldHJ3564M+vuj17StrDxnob5+2pMxfLNrB2mpqZQLDOTBIcMICCjDnBefIy01hdKl/alVpx7/nDP3T2/T+zoPNBr+94GkpaXi4+PD8FEx3PG35te0neTMs4X6+pemTWTvN1+TnpZK2XKB9HnwUXJzsvn8o/PHwDa/K5wBfx9RqMvElfEr3DS6Gf8fAIGlixfq6y81/okx7NyxndTUFALLl2fosBH06Bl9TdsqqYO/xE29uvmwKdsd1qqGKdstDNOay0GDBtGiRQu6d+9OhQoVAEhMTGTFihVs2bKFt99+24yyIjeM62kui1Jhm0szXG9zWVQK21yaobDNpVmup7ksSmouxV29tuWwKdt9rGUNU7ZbGKb92s2aNYt58+bRv39/kpPPT/OUL1+e8PBw/vWvf5lVVkRERERsZNrI5e9Zvnw5PXvqOCKR66GRy4s0cnmRRi4vp5FLcVf//uqwKdt9tEUNU7ZbGLastxEbG2tHWRERERExmWnv6SIjI6/6WGJiolllRURERNyeu1yq0QymNZdJSUnMnz//N+tZGoZBnz59zCorIiIi4vY8uLc0r7ls27YtWVlZhIaG/uaxsLAws8qKiIiIiI1sOaFHRK6fTui5SCf0XKQTei6nE3rEXc3fftSU7Q7+202mbLcw7LuAroiIiIh4HL2nE/kLc4cBO3cYKcvMtX/0FOCmCn52R2DNgXi7IwBwa3AZuyNQqWxJsuwfTAagVHE3+GUVt6JjLkXE7bhDYykiItfGk6eOPflnExEREZFfcblcREVF8cgjjwBw7NgxoqOj6dixI6NGjeLs2esb8ldzKSIiImIxh8Nhyu3PWLhwIbVq1Sr4/MUXX+TBBx9k9erVBAQEsGzZsuv62dRcioiIiNwgTp8+zYYNG+jVqxdwfv3xrVu3cvfddwPQvXt31q5de101dMyliIiIiMXMOmx+yZIlLFmypODz3r1707t374LPn3vuOcaNG0dWVhYAKSkpBAQE4ONzviWsVKkS8fHXd2KgmksRERERi5l1+cdfN5OXWr9+PYGBgdx6661s27bNlPqg5lJERETkhrBr1y7WrVtHXFwceXl5ZGZmMn36dNLT03E6nfj4+HD69GmCg4Ovq46OuRQRERGxmMOk2+8ZO3YscXFxrFu3jpdffpnmzZvz0ksvERYWxhdffAHAhx9+SHh4+HX9bGouRURERG5g48aN46233qJjx46kpqYSHR19XdvTtLjIDczlcjHg/miCgoKY/cq/La+fl5fHww/25+zZs7hcLtp3jGDosJGW5/i/xe/yycrlGIZB16he3Nd3gOUZ7NoX+Wfz+PfTI3Hm53PO5aJhizZE9B7Ekldm8PO+byjpVxqA3sMmUCXkFtNyzJoxhe1b4ihbLpDXFy4vuP/jZYv55MMleHl50azFXQx+bLRpGS7lLs9N8Vx2X6EnLCyMsLAwAKpXr37dyw9dSs2lyA1s8aJ3CalZk6zMTFvqFy9enLnz38bPrxT5+fkMfqAfre5sTaPGt1mW4eefDvLJyuXMfWcxPj7FGDfyUVre1YZq1W+yLAPYty98ihVnyJRZlPD1w+V08tqTw6l7+/k/OF0GDKVRi7am1r+gQ+d7iezRh5emP1lw355dO9j63w28+tZSihUvTmpKsiVZwD2emyJ/VZoWF7lBxcefZvOmjUR172VbBofDgZ9fKQCcTidOp/NPLwJcVI4c/pnQWxtSsqQvPj4+3NakKXHr11iaAezbFw6HgxK+56+J7nI5cbmcOExbJOXqGt52B/4BAZfd9+nKpUT3f4hixYsDULZcoGV53OG5KZ7NzkXUzabmUuQG9dLMGYwc/QQOL3tfBlwuF316RdGhTSvCmrekYaPGltYPqVWbb7/ZRVpqKrm5OWzdsokz8actzXCBXfvinMvFrCcG8+zgKOo0aspNdeoD8J/Fb/LymIf4+K1XcOZf3+XgrsXJY0f4fs8uRg3pT8zwwfz4w15L69v93BTP5mXSzR24Sw4RsdCmjefXOgut38DuKHh7e/PBspX8Z80Gvt/7LT8d/NHS+jVCatF34CDGjhjCEyMfpXadunjZ1HDbtS+8vL0Z/eJ8Js/9P47+9AOnj/5M535DGPevdxn5wlxyMtNZv/J9S7JcyuVykZGezqy57zL4sVHMmBKDYRiW1bf7uSnyV2XLK+jDDz9sR1kR+Z893+wmbsN6Iju3Z/L4sezYsY2nJsbYmsk/IICmzcLYsnmT5bW7duvJm+8u5ZV57+DvH0D1m2pYnuFSdu0L31L+1Lr1dg7s3k5AufI4HA58ihWnabvOHDu439IsABUqBtOyTXscDgd16zfE4fAiPTXF8hx2PjfFc2la/Bp8//33V7zt3buX/futf5ESkYuGPz6Gz1ZvYNXna5n+wks0axbGtBkzLc+RkpxMRno6ALm5uWzduoUaITVtyJEEQPzpU8StX0uHTvfYkMGefZGZlkpOVgYA+Xl5HNyzk4pVbyI95fw+MQyD73f8l0o3hZie5dea39WOb3ftAOD40SM4nfkElC1nSW13eW6K/BWZdrZ4r169aNas2RWnMNL/9wsrIje2hIQEpjw5AZfLhWEYdIzoROs27SzP8dT40aSlpeLj48PomMn4+wf88TcVMbv2RUZKEkteeY5z585hGAaNWralftOWzH1mFFnpqRgGVKlRmx5Dxpia44VnJvDt7p2kp6UyoEcE/QcNJaJLFLNnTGHowJ74+BRjzKRplo3MuMtzUzyXe4wxmsNhmHQAS9euXXnllVeoUaPGbx5r06YNGzduNKOsyA0jI/ec3REA8PKy/yUyM9dpdwQASpe0f3W3NQfi7Y4AwK3BZeyOQKWyJe2OUKBUcft/T8S9LNtzypTt9mpc2ZTtFoZp0+LDhw/n3Lkr//F76qmnzCorIiIiIjYy7W12p06drvpYWlqaWWVFRERE3J4nL9djy88WGxtrR1kRERERMZlpI5eRkZFXfSwxMdGssiIiIiJuz12WDTKDac1lUlIS8+fPJ+BXl/MyDIM+ffqYVVZERETE7Xlua2lic9m2bVuysrIIDQ39zWNhYWFmlRURERERG5m2FJGImEtLEV2kpYgu0lJEF2kpInFnH3132pTtdmtYyZTtFoYnn6wkIiIiIhaz/222yF+U3YNlxXy8yHe6x+ilO3CHUcO07Hy7I9CseiClSti/L344af+V2BIy8gitYv3Vln7Nx1ujlvJbXh581KX9r0Aif0F2N5YX+JfU5MN5eim7wB0aS3fhDo0lgNNl4Nmnb8i18OCTxTUtLiIiIiJFR29xRURERCzm8ODRbI1cioiIiEiR0ciliIiIiMV0zKWIiIiIyJ+gkUsRERERi2kpIhEREREpMpoWFxERERH5EzRyKWKxp5+cSNzGDQQGlmfFR5/YHeeGl5eXx8MP9ufs2bO4XC7ad4xg6LCRltR+YdpTbN0cR9lygby1+EMANqz9grffeJ2jh3/m9bcWUze0gSVZLujWuT1+pUrh5eWNt483C99fZkndpIR45r30DOkpyeBw0K5TFBFRfXh1xmROnzgCQHZmJn6lSzPtlfcsyWTXvpAbgyePXKq5FLFYt6ge3N+3P5Mnjrc7igDFixdn7vy38fMrRX5+PoMf6EerO1vTqPFtptfu1LUb3aPvZ8bUyQX3hdS8hWdfmMXLzz9rev2ref2NdyhbrpylNb29vbn/4cepUbseOdlZTBn5AA2a/I1hE6cXfM3iN/6Fb6lSluayY1+I/NVpWlzEYnc0bUZAmTJ2x5D/cTgc+Pmdb1icTidOpxOHRUMKjW9vSkDA5c+Fm0NqctPNIZbUdydlAytQo3Y9AHz9SlHlphqkJCYUPG4YBts3raF5mwi7IooUKYdJ/9yBRi5F5Ibncrno17snx44e5b4+fWnYqLHdkezjcDBi6GAcDgfde/ame6/7LI+QEH+SI4d+pFa9i4cEHNj7DQFlA6lU9SbrgrjBvhDP5eUefaAp1FyKyA3P29ubD5atJCM9nbGjhvPTwR+pfUsdu2PZ4o23FhEUHExychLDHx3MzSEhNLmjmWX1c3OyiZ0+gX5DRuPrV7rg/q0bv6R5W2tHLe3eFyJ/VaZNi2dmZvLSSy8xbtw4Vq1addljzzzzjFllRUSumX9AAE2bhbFl8ya7o9gmKDgYgMDA8rRt14F9e7+zrLbT6SR2+gRatu1E01btCu53uZx8vWU9Ya07WJYF7N0X4vk8eVrctOZy4sSJGIbB3XffzaeffsqIESM4e/YsAHv27DGrrIhIoaQkJ5ORng5Abm4uW7duoUZITZtT2SMnJ5usrKyCj7d9tZlatW+xpLZhGMyf/Q+qVK9Bpx59L3vs+907qFytBoEVgi3JAvbuC5G/OtOmxY8ePUpsbCwAHTp04PXXX2fgwIG8/vrrZpUU+UsY/8QYdu7YTmpqCh3DWzN02Ah69Iy2O9YNKyEhgSlPTsDlcmEYBh0jOtG6Tbs//sYiMO3JGL7ZtYO01FSiu7bnwSHDCAgow5wXnyMtNYWJox+jVp16/HPOXEvyJCclMW7MCABcTid3d+5Ki1Z3WVL74L49bFn3OdVq1Oap4f0B6PXAUBo3a8W2uNWWn8hj576QG4MnL0XkMAzDMGPDnTt35tNPP8XL6+Lg6IoVK5g/fz7Z2dmsX7/ejLIilsh12p3gvJI6ahqArLOmvIwVWlp2vt0RKFXCPZ4UP5xMtzsCoVUC7I5QoIyvFmeRy204kGzKdtvWDTRlu4Vh2rO9Xbt2bN269bL7evTowfjx4ylWrJhZZUVERETERqa9xY2Jibni/a1bt+aRRx4xq6yIiIiI2/PkpYhsGae/cCymiIiIiHgW00YuIyMjr/pYYmKiWWVFRERE3J67LBtkBtOay6SkJObPn09AwOUHVBuGQZ8+fcwqKyIiIiI2Mq25bNu2LVlZWYSGhv7msbCwMLPKioiIiLg9LUUkIpfRUkTuRUsRXaSliC7SUkTizjYfTDFlu61uKWfKdgtDz3YRERERKTLu8RZXRERE5Abi5cHz4mouRUQ8iI+3e/zBqhVc2u4IHIrPtDsCACFBpUjJdtmawceNFlX0L6lJU0+n5lLkGuhYR/dSqrh7/OEsVby43RHc5vhTEfl97vGqZQ79iRQRERGxmgd3lxqbFhEREZEio5FLEREREYt58hV6NHIpIiIiIkVGI5ciIiIiFvPglYjUXIqIiIhYzYN7S02Li4iIiEjR0ciliIgAkJeXx8MP9ufs2bO4XC7ad4xg6LCRtmRZsugdVq1cjsPhoGbtW5g0ZTolSpQwtWbSmdO89s9nSEtNBqD9Pd3p3P3+gsc/WfYei974F3OXriagTFlTs1wqIyOd56Y+zc+HDoLDwZNT/kHDxrdZVv8Cl8vFgPujCQoKYvYr/7a8vsfx4KFLNZciIgJA8eLFmTv/bfz8SpGfn8/gB/rR6s7WNLK4kUk4E8+yDxbx3v99TImSJXlq/BjWfvEZ99zb3dS6Xt4+9B8yipBb6pGTncWk4QNp2CSMajfXJOnMab7btY0KQZVMzXAls2bOoHnLO5nx4mzy88+Sm5treQaAxYveJaRmTbIy3ePKR+K+NC0uIiIAOBwO/PxKAeB0OnE6nThsOuvA5XKRl5eL0+kkLzeXChWDTK9ZrnwFQm6pB4CvXymqVq9BcmICAAvnzqLv4BGWn4WRmZHB7l07ubd7TwCKFSuOv3+ApRkA4uNPs3nTRqK697K8tqdymPTPHWjkUkRECrhcLvr17smxo0e5r09fGjZqbHmGikHB9On/ID27dKBEiZI0a96Sv7VoZWmGhNMnOXzoALXrNWDnlo0EVqjIzbXqWJoB4OTJ45QrF8i0KZP56cf91A1twJiYifj6+lma46WZMxg5+gmysrIsrSt/TRq5FBGRAt7e3nywbCX/WbOB7/d+y08Hf7Q8Q3p6Gv/duI6lq75k5X/Wk5uTwxefrbKsfm5ONrOmjWfgo2Pw9vZh5QdvET3wUcvqX8rldHFg/z56RPdm4Qcr8PX1ZeGCNy3NsGnjegIDAwmt38DSup7O4TDn5g5May4TEhKYMmUKU6dOJSUlhdjYWCIjI3n88cc5c+aMWWVFRKQI+AcE0LRZGFs2b7K89s5tW6lctRrlygXiU6wYrcM78N2e3ZbUdjqdzJo2nlbhnfjbneHEnzpOwumTjB/alxED7yU54QyThvUnNTnRkjxBwcFUDArm1obnR5DDO0RwYP8+S2pfsOeb3cRtWE9k5/ZMHj+WHTu28dTEGEszeCKHSTd3YFpzOWHCBGrXrk3lypUZOHAgJUqUYN68eTRt2pQpU6aYVVZERK5RSnIyGenpAOTm5rJ16xZqhNS0PEdwpcp8/90ecnNyMAyDr7dvpUZILdPrGobBvJenUaV6Dbr07AfATSG1mbv0S2IXfkzswo8JrBjEc6++R9nACqbnAShfoSLBlSpx5PAvAOzYvpWQmubvi0sNf3wMn63ewKrP1zL9hZdo1iyMaTNmWppB/lpMO+YyKSmJAQMGAPD+++8zZMgQAAYMGMCyZcvMKisiItcoISGBKU9OwOVyYRgGHSM60bpNO8tzNGjYiHbtIxjULxpvH2/q1A3l3h7Rptc98P0eNq39jOohtZkwtC8AvR8axu1/s/Z4z18bO34yUybFkO/Mp2rVajw5dbqteaSIuMswowkchmEYZmz43nvv5eOPPwZg1qxZjB49uuCxyMhIVq2y7vgZEZEbRdZZU17SCy37rMvuCBxLzLY7AgAhQaXsjoCPl/t0Mv4ldboHwK4j6aZst8nN1q8m8GumjVy2b9+erKwsSpUqdVljeeTIEUJCQswqKyIiIuL23GXZIDOY1lw+/vjjV7z/5ptvpk2bNmaVFREREXF77nJmtxlsGZuOjY21o6yIiIiImMy0kcvIyMirPpaYaM0SDiIiIiLuyIMHLs09W3z+/PkEBFx+YKlhGPTp08essiIiIiJiI9Oay7Zt25KVlUVoaOhvHgsLCzOrrIiIiIj78+ChS9OWIhIREetpKaKLtBTRRVqKyP18eyzTlO02ql7alO0Whv6HRURERKTImDYtLiIiIiJX5slLEam5FBHxIN5uMv3pX9KHjFynrRmqV/Cztf4FB05l2B2BupX97Y4gNxA1lyIiYoqKpe39E5OQaW9zK/J77HobeOrUKWJiYkhKSsLhcHDffffxwAMPkJqayujRozlx4gRVq1Zl9uzZlClT5ppq6JhLERERkRuEt7c3EyZM4LPPPmPJkiW8//77/PTTT8ybN48WLVrw5Zdf0qJFC+bNm3fNNdRcioiIiFjNYdLtDwQFBdGgQQMASpcuTc2aNYmPj2ft2rVERUUBEBUVxZo1a675R9O0uIiIiIjFHG6w0OXx48f54YcfaNy4MUlJSQQFBQFQsWJFkpKSrnm7ai5FREREPMSSJUtYsmRJwee9e/emd+/ev/m6rKwsRo4cyaRJkyhd+vK1MR0OB47rOJ1dzaWIiIiIxcxaiuhqzeSl8vPzGTlyJJGRkURERABQvnx5zpw5Q1BQEGfOnCEwMPCaM+iYSxEREZEbhGEYTJ48mZo1a/LQQw8V3B8eHs7KlSsBWLlyJe3bt7/mGrr8o4iIB7F5acnLlLR5bsxdliI6FG/OZf4Kw53WuSzn5213BLfww8ksU7YbWuX3Lze6c+dO+vXrR506dfDyOj/GOGbMGBo1asSoUaM4deoUVapUYfbs2ZQtW/aaMqi5FBHxIGouL1JzeZGaS/fzwymTmsvKbnAte7sDiIiI+3j6yYnEbdxAYGB5Vnz0id1xbLVk0TusWrkch8NBzdq3MGnKdEqUKGFqzaSEeOa99AzpKcngcNCuUxQRUX14dcZkTp84AkB2ZiZ+pUsz7ZX3TM1yqYyMdJ6b+jQ/HzoIDgdPTvkHDRvfZll9+WtRcykiIgW6RfXg/r79mTxxvN1RbJVwJp5lHyzivf/7mBIlS/LU+DGs/eIz7rm3u6l1vb29uf/hx6lRux452VlMGfkADZr8jWETpxd8zeI3/oVvKWtHp2bNnEHzlncy48XZ5OefJTc319L6nsgdliIyi07oERGRAnc0bUbANV7yzdO4XC7y8nJxOp3k5eZSoWKQ6TXLBlagRu16APj6laLKTTVISUwoeNwwDLZvWkPzNhGmZ7kgMyOD3bt2cm/3ngAUK1Ycf/8Ay+rLX4+lI5dJSUmUL1/eypIiIiKFVjEomD79H6Rnlw6UKFGSZs1b8rcWrSzNkBB/kiOHfqRWvQYF9x3Y+w0BZQOpVPUmy3KcPHmccuUCmTZlMj/9uJ+6oQ0YEzMRX18/yzJ4IrOWInIHpo1cpqamXnZLSUkhOjqatLQ0UlNTzSorIiJy3dLT0/jvxnUsXfUlK/+zntycHL74bJVl9XNzsomdPoF+Q0bj63dxgeutG7+keVvrRi0BXE4XB/bvo0d0bxZ+sAJfX18WLnjT0gyeyKarP1rCtJHL5s2bU6VKlcvui4+Pp3v37jgcDtauXWtWaRERkeuyc9tWKletRrly5xeSbh3ege/27ObueyJNr+10OomdPoGWbTvRtFW7gvtdLidfb1nP1DnvmJ7hUkHBwVQMCubWho0BCO8QwcK31FzK1ZnWXMbExLB582ZiYmKoW7cucH6BznXr1plVUkREpEgEV6rM99/tITcnhxIlS/L19q3Uq3+r6XUNw2D+7H9QpXoNOvXoe9lj3+/eQeVqNQisEGx6jkuVr1CR4EqVOHL4F26uEcKO7VsJqVnL0gweyV2GGU1gWnM5aNAg7rnnHp577jkqV67MiBEjrus6lSIiYr7xT4xh547tpKam0DG8NUOHjaBHz2i7Y1muQcNGtGsfwaB+0Xj7eFOnbij39jB/Pxzct4ct6z6nWo3aPDW8PwC9HhhK42at2Ba32tITeS41dvxkpkyKId+ZT9Wq1Xhy6vQ//ia5YVmyiPratWuZO3cuJ06cYPPmzWaXExG5YWkR9Yu0iPpFWkTd/RyMzzFlu7cE+5qy3cKw5Fe/ffv2tGrViqNHjwKwfPlyevbsaUVpEREREbGQZetclixZkjp16gAQGxtrVVkRERERt+NwmHNzB6aNXEZGXv2MusTERLPKioiIiLg9N+kDTWFac5mUlMT8+fMJCLh8FX/DMOjTp49ZZUVERETERqY1l23btiUrK4vQ0NDfPBYWFmZWWRERERH358FDl5acLS4iItbQ2eIX6Wzxi3S2uPs5lGDO2eK1Kt4gZ4uLiIiIyEUODx66VHMpIiIiYjF3ObPbDGouRUTEI/nbPS//P7dUKm13BA6cyrA7AnB+ej4l22V3DE3Nm8w9fvNERKRIuEk/JSJ/wIMH3LwHzQAAFgdJREFULq1bRF1EREREPJ/e44qIiIhYzYOHLtVcioiIiFjMk88W17S4iIiIiBQZjVyKiIiIWMyTlyLSyKWIiIiIFBmNXIqIiIhYzIMHLjVyKSIiIiJFRyOXIiIiV/D0kxOJ27iBwMDyrPjoE1syHDn8C09PGFvw+YkTx/n7o8Pp3W+gqXWTEuKZ99IzpKckg8NBu05RRET14dUZkzl94ggA2ZmZ+JUuzbRX3jM1y6UyMtJ5burT/HzoIDgcPDnlHzRsfJtl9YuSJx9z6TAMw7A7hIiISFHLdV7f93+9cwd+fn5Mnjj+uprLrLzrDPI/LpeLbp3a8cY7H1C5SpVCfe/B05mF+vrU5ERSkxOpUbseOdlZTBn5AI8/PZOqN9Us+JrFb/wL31KliOr78J/ebt3K/oXK8WvPPjWRxrffQbcevcjPP0tubi7+/gGF3o47XP7xeMpZU7ZbrVxxU7ZbGJoWFxERuYI7mjYjoEwZu2MU2Ll9K1WrVS90Y3ktygZWoEbtegD4+pWiyk01SElMKHjcMAy2b1pD8zYRpme5IDMjg927dnJv954AFCtW/JoaSzGfpsVFRET+AtZ88Tkd777H8roJ8Sc5cuhHatVrUHDfgb3fEFA2kEpVb7Isx8mTxylXLpBpUybz04/7qRvagDExE/H19bMsQ1Hy5GlxjVyKiIi4ufz8s/w3bj3hHe+2tG5uTjax0yfQb8hofP1KF9y/deOXNG9r3aglgMvp4sD+ffSI7s3CD1bg6+vLwgVvWppB/hzTmsu4uLiCjzMyMpg0aRKRkZGMHTuWxMREs8qKiIh4nK82/5c69eoTWL6CZTWdTiex0yfQsm0nmrZqV3C/y+Xk6y3rCWvdwbIsAEHBwVQMCubWho0BCO8QwYH9+yzNUJQcJt3cgWnN5axZswo+fv7556lYsSL//ve/adiwIU8//bRZZUVERDzO6v98ZumUuGEYzJ/9D6pUr0GnHn0ve+z73TuoXK0GgRWCLcsDUL5CRYIrVeLI4V8A2LF9KyE1a1maoSg5HObc3IEl0+J79+5l9OjRVK1alQcffJATJ05YUVZEROSajX9iDAP79uHI4V/oGN6aFcv/z5YcOTnZ7Ni2hbbh1o0UHty3hy3rPmffnq95anh/nhrenz07NgOwLW61pSfyXGrs+MlMmRRDv/uiOHhgPw8MHmJLDvl9pi1F1Lp1ax566CEMw2DRokWsWbMGx/9a6sjISFatWmVGWREREeD6lyIqKkW1FNH1KOxSRGa53qWIioo7LEV0Oi3flO1WKlPMlO0Whmkjl/fddx9ZWVlkZ2fTvXt3UlJSAEhISCA0NNSssiIiIiJiI9OWIho+fPgV769YsSJhYWFmlRURERFxf25yfKQZbFmKKDY21o6yIiIiIm7Bk88WN23kMjIy8qqPaSkiEREREc9kWnOZlJTE/PnzCQi4/NJMhmHQp08fs8qKiIiIuD13WTbIDKY1l23btiUrK+uKJ+/omEsRERERz2TaUkQiIiJ20lJEF2kposu5w1JECRnmPC8q+ps2bvin6driIiIiIlJk7G9vRURExFShVQL++IsssO1wkt0RAIgIrWh3BPc5tdsEai5FRMQjlXSTv3AlfewPkpZzzu4I8ise3FtqWlxEREREio79b6dEREREbjCevBSRRi5FREREpMho5FJERETEYg4PPupSzaWIiIiIxTQtLiIiIiLyJ6i5FBEREZEio+ZSRERERIqMjrkUERGR39Wtc3v8SpXCy8sbbx9vFr6/zPSa+WfzmD15OM78s5xzubitZTu63D+Yd16eytGf9uPt48PNt4TSZ2gM3m6wUH1hefIxlw7DMAy7Q4iIiIh5rvcKPd06t+ed95dRtly569pOYS7/aBgGZ3NzKOHrh8vpZNbEofR8+HGyMzKof0dzAN5++Rlq17+Nuzp3L1QOd7j8o1lXTSrja/+k9F+v1RcRERGP53A4KOHrB4DL5cTlcuFwOGjQtEXB19x8S31Sk87YFVGuQs2liIiI/D6HgxFDB+NwOOjeszfde91nSdlzLhczxw4m4fQJWnfuTo06DQoeczmd7NjwBT0HP25JlqLmydPiljaXKSkplLvOIXURERGx1htvLSIoOJjk5CSGPzqYm0NCaHJHM9Prenl7M2H222RnZvDm85M4eeRnqtxcE4Alc1+idv3G1G7Q2PQcUjimTcy/+OKLJCcnA/Ddd9/Rvn177rvvPtq1a8f27dvNKisiIiJFLCg4GIDAwPK0bdeBfXu/s7S+X2l/bmnYhB92bwXgsw8WkJmWSvdBIyzNUZQcJt3cgWnN5caNGwkMDARg5syZzJo1i9WrV7NgwQKef/55s8qKiIhIEcrJySYrK6vg421fbaZW7VtMr5uRlkJ2ZgYAZ/Py2P/NDoKr3syW1avYv3s7D459Bi8v+09ekd8ybVrc6XTidDrx8fEhLy+PRo0aARASEkJ+fr5ZZUVERKQIJSclMW7M+RFCl9PJ3Z270qLVXabXTU9J4r1/TefcuXMYxjlubxXOrc1a8XiPNgRWDObl8Y8A0LhFGzr3fsj0PEXOXYYZTWDaUkTvvvsu69ev5+9//zs7d+4kLS2NiIgItm7dyrFjx/jnP/9pRlkRERH5FbOWvSmswixFZCZ3WIooM8+clSBLl7C/azVt5HLAgAHUqVOHxYsXc/jwYVwuF0eOHKFDhw489thjZpUVERERERvZsoj68uXL6dmzp9VlRUREbkgaubycO4xcZp01p/0qVdz+kUtbjoSNjY21o6yIiIiImMy0afHIyMirPpaYmGhWWRERERG3Z//4onlMay6TkpKYP38+AQEBl91vGAZ9+vQxq6yIiIiI+/Pg7tK05rJt27ZkZWURGhr6m8fCwsLMKisiIiIiNrLlhB4RERGxjk7ouZw7nNCTY9KS377FzNluYWhpexEREREpMqZNi4uIiIjIlTk8+JhLTYuLiIiISJHRtLiIiIiIFBk1lyIiIiJSZNRcioiIiEiRUXMpIiIiIkVGzaWIiIiIFBk1lyIiIiJSZNRcioiIiEiR8djmcuLEibRo0YKuXbvaluHUqVMMGDCAe+65hy5duvDOO+9YniEvL49evXpx77330qVLF+bMmWN5hku5XC6ioqJ45JFHbKkfHh5OZGQk3bp1o0ePHrZkAEhPT2fkyJF06tSJzp07s3v3bkvr//zzz3Tr1q3g1qRJE95++21LM1zw9ttv06VLF7p27cqYMWPIy8uzPMM777xD165d6dKli6X74UqvU6mpqTz00ENERETw0EMPkZaWZnmGzz//nC5dulCvXj2+++47U+v/Xo4XXniBTp06ERkZybBhw0hPT7c8w+zZswteMwYNGkR8fLypGa6W44IFCxZQt25dkpOTLc8QGxvLXXfdVfC6sXHjRlMzXC0HwLvvvkunTp3o0qULM2fOND2HFJLhobZv327s3bvX6NKli20Z4uPjjb179xqGYRgZGRlGRESEcfDgQUsznDt3zsjMzDQMwzDOnj1r9OrVy9i9e7elGS61YMECY8yYMcaQIUNsqd+uXTsjKSnJltqXiomJMZYuXWoYhmHk5eUZaWlptmVxOp1Gy5YtjePHj1te+/Tp00a7du2MnJwcwzAMY+TIkcby5cstzXDgwAGjS5cuRnZ2tpGfn2888MADxuHDhy2pfaXXqRdeeMGYO3euYRiGMXfuXGPmzJmWZ/jpp5+MQ4cOGf379ze+/fZbU+v/Xo5NmzYZ+fn5hmEYxsyZM23ZFxkZGQUfv/POO8ZTTz1laoar5TAMwzh58qQxaNAgo23btqa/jl0pw5w5c4w333zT1Lp/JsdXX31lPPDAA0ZeXp5hGIaRmJhoaSb5Yx47ctmsWTPKlClja4agoCAaNGgAQOnSpalZs6Yl73ov5XA4KFWqFABOpxOn04nDpmtOnT59mg0bNtCrVy9b6ruLjIwMduzYUbAfihcvTkBAgG15vvrqK6pXr07VqlVtqe9yucjNzcXpdJKbm0tQUJCl9Q8dOkSjRo3w9fXFx8eHZs2a8eWXX1pS+0qvU2vXriUqKgqAqKgo1qxZY3mGWrVqUbNmTVPr/pkcd955Jz4+569SfNttt3H69GnLM5QuXbrg45ycHEteP6/292vGjBmMGzfO1gxWu1KOxYsXM2TIEIoXLw5A+fLl7Ygmv8Njm0t3c/z4cX744QcaN25seW2Xy0W3bt1o2bIlLVu2tCUDwHPPPce4cePw8rL3aTd48GB69OjBkiVLbKl//PhxAgMDmThxIlFRUUyePJns7GxbsgB8+umnth0+EhwczKBBg2jXrh133nknpUuX5s4777Q0Q506dfj6669JSUkhJyeHuLg405uY35OUlFTQYFesWJGkpCTbsriT5cuX07p1a1tqz5o1izZt2rBq1Soef/xxWzKsWbOGoKAg6tWrZ0v9CxYtWkRkZCQTJ040/ZCNqzl8+DA7d+4kOjqa/v378+2339qSQ65OzaUFsrKyGDlyJJMmTbrsXbBVvL29+eijj9i4cSPffvstP/74o+UZ1q9fT2BgILfeeqvltS+1ePFiPvzwQ9544w0WLVrEjh07LM/gdDrZt28f999/PytXrsTX15d58+ZZngPg7NmzrFu3jk6dOtlSPy0tjbVr17J27Vo2bdpETk4OH330kaUZatWqxcMPP8zgwYN5+OGHqVevnu1vgC5wOBy2zTS4k9dffx1vb2/uvfdeW+qPHj2ajRs3EhkZyXvvvWd5/ZycHObOnWtbY3vB/fffz+rVq/noo48ICgri+eeftyWHy+UiLS2NpUuXEhMTw6hRozAMw5YscmXu8QrqwfLz8xk5ciSRkZFERETYmiUgIICwsDA2bdpkee1du3axbt06wsPDGTNmDFu3buWJJ56wPEdwcDBwfhqlY8eOtrzjrVSpEpUqVSoYQe7UqRP79u2zPAdAXFwcDRo0oEKFCrbU37JlC9WqVSMwMJBixYoRERFh+clNANHR0axYsYJFixZRpkwZatSoYXmGC8qXL8+ZM2cAOHPmDIGBgbZlcQcrVqxgw4YNvPjii7Y32pGRkZYdMnGpo0ePcvz4cbp160Z4eDinT5+mR48eJCQkWJqjQoUKeHt74+XlRXR0tGUne/1acHAwHTt2xOFw0KhRI7y8vEhJSbEli1yZmksTGYbB5MmTqVmzJg899JAtGZKTkwvOsMzNzWXLli2WH0sFMHbsWOLi4li3bh0vv/wyzZs358UXX7Q0Q3Z2NpmZmQUfb968mVtuucXSDHB+qrNSpUr8/PPPwPljHmvVqmV5Djg/Jd6lSxdbagNUqVKFPXv2kJOTg2EYtu2LC1PPJ0+e5MsvvyQyMtLyDBeEh4ezcuVKAFauXEn79u1ty2K3uLg43nzzTV5//XV8fX1tyXD48OGCj9euXWvL62fdunX56quvWLduHevWraNSpUqsWLGCihUrWprjwpseOD9Nb8frJ0CHDh3Ytm0bAL/88gv5+fmUK1fOlixyZQ7DQ8eSx4wZw/bt20lJSaF8+fKMGDGC6OhoSzPs3LmTfv36UadOnYJptjFjxtCmTRvLMuzfv58JEybgcrkwDINOnToxfPhwy+pfybZt21iwYAFz5861tO6xY8cYNmwYcH5apWvXrgwdOtTSDBf88MMPTJ48mfz8fKpXr86MGTMsP3g+Ozubdu3asWbNGvz9/S2tfak5c+bw2Wef4ePjQ2hoKNOnTy84UN8qffv2JTU1FR8fn4KlT6xwpdepDh06MGrUKE6dOkWVKlWYPXs2ZcuWtTRD2bJlmTZtGsnJyQQEBBAaGsr8+fNNy3C1HPPmzePs2bMFP3/jxo159tlnLc0QFxfHL7/8gsPhoGrVqkydOrVgBsTKHJf+/QoPD2fZsmWmjmpfKcP27dvZv38/AFWrVuXZZ581/QS8K+Xo1q0bkyZNYv/+/RQrVoyYmBjLfmflz/HY5lJERERErKdpcREREREpMmouRURERKTIqLkUERERkSKj5lJEREREioyaSxEREREpMj52BxCRv66UlBQefPBBABITE/Hy8ipYHqV+/fps2LCB8uXL88knn9iY0lyxsbH4+fkxePBgu6OIiLgFNZcics3KlStXcLnGXzdZO3bsoH///owfP97OiFfldDrx8bn4EmgYBoZhuM2lH0VE/qr0KioipmjWrNmfXhh+wIAB/OMf/6Bbt2507dq14LKcqampPPbYY0RGRnLfffcVLOAcGRlJeno6hmEQFhZWcEWbmJgYNm/ejMvl4oUXXqBnz55ERkbywQcfAOcX8O/bty+PPvooXbp04fjx49x9993ExMTQtWtXTp06xZQpU+jRowddunRhzpw5BRnDw8OZM2cO3bt3JzIykkOHDv3m51i6dCkPP/wwubm517XvRET+ytRciohbyM3N5aOPPmLKlClMmjQJOD8aWr9+fVatWsXo0aMLRkFvv/12du3axcGDB6lWrRo7d+4E4JtvvuH2229n2bJl+Pv7s3z5cpYvX87SpUs5duwYAPv27WPy5Ml88cUXABw5coS+ffvy6aefUrVqVUaPHs2KFSv4+OOP2bFjR0FDC+dHaj/88EP69OnDggULLsv/3nvvsX79el577TVKlixp+v4SEXFXmhYXEbdw4RrnzZo1IzMzk/T0dL7++mtiY2MBaNGiBampqWRmZtK0aVN27NhBlSpVuP/++1m6dCnx8fEEBATg5+fH5s2bOXDgQEEDmZGRwZEjRyhWrBgNGzakevXqBXWrVKnCbbfdVvD5559/ztKlS3E6nSQkJHDo0CHq1asHQEREBAC33norq1evLvielStXUrlyZV599VWKFStm7o4SEXFzai5FxC04HI7f/fxSzZo14/333+fUqVOMHj2aNWvW8J///IemTZsC54+ffPLJJ7nrrrsu+75t27bh5+d32X2Xfn7s2DEWLFjAsmXLKFOmDBMmTCAvL6/g8QuNo5eXFy6Xq+D+OnXqsH//fk6fPn1Z4yoiciPStLiIuIXPPvsMgJ07d+Lv74+/vz9Nmzbl448/Bs43huXKlaN06dJUrlyZlJQUDh8+TPXq1WnSpAkLFiwoaC7vvPNOFi9eTH5+PgC//PIL2dnZf5ghKysLX19f/P39SUxMJC4u7k9lr1+/PlOnTuWxxx4jPj7+Wn58ERGPoZFLETHFmDFj2L59OykpKbRu3ZoRI0YQHR191a8vUaIEUVFROJ1OnnvuOQCGDx/OpEmTiIyMxNfXl+eff77g6xs1asS5c+cAaNq0KS+//DJ33HEHANHR0Zw4cYIePXpgGAblypXjtdde+8PM9erVo379+nTu3JlKlSrRpEmTP/3zNm3alJiYGB555BEWLFhQsCSTiMiNxmEYhmF3CBG5sQ0YMICYmBgaNmxodxQREblOmhYXERERkSKjkUsRsczUqVPZtWvXZfcNHDiQnj172pRIRESKmppLERERESkymhYXERERkSKj5lJEREREioyaSxEREREpMmouRURERKTIqLkUERERkSLz/1KkbT5XtU9eAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 864x576 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(12,8))\n",
"sns.heatmap(piv, annot=True,cmap='Blues', fmt='g')"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "aa1205f338c53d2243adeba51f22a04c566c0371"
},
"source": [
"There is a very strong correlation, but there are some interesting misalignments. For example, it is interesting how #1 seed is assigned - it seems our powerranking agrees only in `108/(108+18+15) = 76.5%` of the times with the number 1 seed selection! It can be easily explained - we did not capture any time component, like increasing/decreasing quality trend in our `glm` model. And the `seed` is capturing the end result of how the team is ready for the March Madness (like is all star players of the team are healthy?)\n",
"\n",
"And there is a quite strong disagreement in the mid-level seeded teams - these are the hardest to rank even for experts!\n",
"\n",
"So now we can finally raise a question - what is a better predictor - seed information or our power rankings?\n",
"Let's try and do that without building any models - let's simply calculate how many games a team won with a given seed/powerrank:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"_uuid": "3e906b31f7e40784e0343acaae7b37bd8a5bce63"
},
"outputs": [],
"source": [
"tourney_results['win'] = np.where(tourney_results['T1_Score'] > tourney_results['T2_Score'], 1, 0)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"_uuid": "b42aa3ed367ac96f9448b6fcfc8be11bf377eb62"
},
"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>seed_win_ratio</th>\n",
" <th>powerrank_win_ratio</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.787234</td>\n",
" <td>0.763359</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.690265</td>\n",
" <td>0.698276</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.642857</td>\n",
" <td>0.676190</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.632653</td>\n",
" <td>0.608696</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.520000</td>\n",
" <td>0.492958</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.409836</td>\n",
" <td>0.527027</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.539474</td>\n",
" <td>0.560976</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.470588</td>\n",
" <td>0.280000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.379310</td>\n",
" <td>0.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.357143</td>\n",
" <td>0.419355</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.506849</td>\n",
" <td>0.526316</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.307692</td>\n",
" <td>0.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0.200000</td>\n",
" <td>0.234043</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0.142857</td>\n",
" <td>0.100000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0.121951</td>\n",
" <td>0.142857</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0.027027</td>\n",
" <td>0.052632</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" seed_win_ratio powerrank_win_ratio\n",
"1 0.787234 0.763359\n",
"2 0.690265 0.698276\n",
"3 0.642857 0.676190\n",
"4 0.632653 0.608696\n",
"5 0.520000 0.492958\n",
"6 0.409836 0.527027\n",
"7 0.539474 0.560976\n",
"8 0.470588 0.280000\n",
"9 0.379310 0.333333\n",
"10 0.357143 0.419355\n",
"11 0.506849 0.526316\n",
"12 0.307692 0.333333\n",
"13 0.200000 0.234043\n",
"14 0.142857 0.100000\n",
"15 0.121951 0.142857\n",
"16 0.027027 0.052632"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean_win_ratio = pd.DataFrame({'seed_win_ratio': tourney_results.groupby('T1_seed')['win'].mean(),\n",
" 'powerrank_win_ratio': tourney_results.groupby('T1_powerrank')['win'].mean()})\n",
"mean_win_ratio"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"_uuid": "37020e398d5d1dd6f41731e66a9f3c8dd51fb5dc"
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f55c15efc50>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.set_style('whitegrid')\n",
"sns.lineplot(mean_win_ratio.index, mean_win_ratio['seed_win_ratio']) # Blue\n",
"sns.lineplot(mean_win_ratio.index, mean_win_ratio['powerrank_win_ratio']) # Orange"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "434f340f40e92e359c812de42dc7340c9eb747fa"
},
"source": [
"It seems they are pretty much aligned on average, and there are huge fluctuations in mid-range seeds as to be expected!\n",
"\n",
"Let's take look at AUC of the seed/rank assignment:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"_uuid": "769cd0502095fb91a8b5d73e07948f54546381ad"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"seed AUC: 0.721579898534631\n",
"powerrank AUC: 0.7145998774452625\n",
"team quality AUC: 0.6279483901470968\n"
]
}
],
"source": [
"from sklearn.metrics import roc_auc_score\n",
"\n",
"print(f\"seed AUC: {roc_auc_score(tourney_results['win'],-tourney_results['T1_seed'])}\")\n",
"print(f\"powerrank AUC: {roc_auc_score(tourney_results['win'],-tourney_results['T1_powerrank'])}\")\n",
"print(f\"team quality AUC: {roc_auc_score(tourney_results['win'],tourney_results['T1_quality'])}\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "5983ebbf6eea3cfe1142e3148f12960209c58779"
},
"source": [
"It seems that our powerrank is at very similar level expert based seed assignment! which is great news by itself - we have just proven that there is a way to build an unbiased seed ranking for the March Madness!\n",
"\n",
"However, *raw* team quality estimate is a not doing as good as powerranks. The reason for that maybe is that we built quality models for each season separately. This is a food for thought both for you and for me!\n",
"\n",
"So to summarize - estimating team quality with a very simple `glm` model should be helpful in determining the winner of a basketball match! And here you have it - a very strong features for your models!"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "30dee9cb23776171537fd428ea2be7eee309f170"
},
"source": [
"## Hope you enjoyed this analysis!\n",
"\n",
"### Liked the content? don't forget to upvote:)"
]
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "30e61a2ec829abc4ebc57e384f36ed9a4365388a"
},
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "11a87c44e70c872781f4038b96b7918c3e92c295"
},
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"_uuid": "18100bb051ad29ce690edadab80c9acaea9bc4ac"
},
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment