Skip to content

Instantly share code, notes, and snippets.

@AfiKhan
Forked from yamasakih/11-Feature_select.ipynb
Created September 14, 2021 19:32
Show Gist options
  • Save AfiKhan/867d47ed78998ba6188ffd01381090db to your computer and use it in GitHub Desktop.
Save AfiKhan/867d47ed78998ba6188ffd01381090db to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from copy import deepcopy\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"from rdkit.Chem import AllChem as Chem, DataStructs\n",
"from rfpimp import importances\n",
"import scipy.sparse as sp\n",
"from sklearn.ensemble import RandomForestRegressor\n",
"from sklearn.feature_selection import f_regression, mutual_info_regression, SelectPercentile, VarianceThreshold\n",
"from sklearn.model_selection import GridSearchCV, ShuffleSplit, train_test_split\n",
"from sklearn.pipeline import make_pipeline\n",
"from sklearn.preprocessing import StandardScaler"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def plot_experimented_and_predicted_value(training_y, predicted_training_y,\n",
" test_y, predicted_test_y, title):\n",
" \n",
" def _plot_experimented_and_predicted_value(experimented_value, predicted_value, title):\n",
" lim = (min(experimented_value.min(), predicted_value.min()),\n",
" max(experimented_value.max(), predicted_value.max()))\n",
" plt.scatter(predicted_value, experimented_value, s=3)\n",
" plt.plot(lim, lim, c='red', alpha=0.5)\n",
" plt.xlim(lim)\n",
" plt.ylim(lim)\n",
" plt.xlabel('Predicted value', fontsize=16)\n",
" plt.ylabel('Experimented value', fontsize=16)\n",
" plt.title(title, fontsize=16)\n",
" \n",
" plt.figure(figsize=(11, 5))\n",
" plt.subplot(1, 2, 1)\n",
" _plot_experimented_and_predicted_value(training_y, predicted_training_y, f'{title}: Training set')\n",
" plt.subplot(1, 2, 2)\n",
" _plot_experimented_and_predicted_value(test_y, predicted_test_y, f'{title}: Test set')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"input = 'logSdataset1290_2d.sdf'\n",
"random_state = 20150917"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"supp = Chem.SDMolSupplier(input)\n",
"mols = [mol for mol in supp if mol]\n",
"y = np.array([float(mol.GetProp('logS')) for mol in mols])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1290"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(mols)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"n_bits = 2**13 #8192"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"fps = [Chem.GetMorganFingerprintAsBitVect(mol=mol, radius=2, nBits=n_bits, useFeatures=False) for mol in mols]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"X = np.empty((len(mols), n_bits))\n",
"for i, fp in enumerate(fps):\n",
" tmp = np.array([], )\n",
" DataStructs.ConvertToNumpyArray(fp, tmp)\n",
" X[i, :] = tmp"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1290, 8192)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X.shape"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"X = pd.DataFrame(X, columns=[f'Bit{i}' for i in np.arange(X.shape[1])])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"training_X, test_X, training_y, test_y = train_test_split(\n",
" X, y, test_size=0.2, random_state=random_state, shuffle=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"pipeline = make_pipeline(\n",
" VarianceThreshold(),\n",
" SelectPercentile(),\n",
" StandardScaler(with_mean=False, with_std=True),\n",
" RandomForestRegressor(n_estimators=500, n_jobs=-1, random_state=random_state)\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"param_grid = {\n",
" 'variancethreshold__threshold': np.arange(0.0, 0.1, 0.02),\n",
" 'selectpercentile__percentile': np.append(np.arange(5, 101, 10), 100),\n",
" 'selectpercentile__score_func' : [f_regression, mutual_info_regression],\n",
" 'randomforestregressor__n_estimators': np.arange(300, 1501, 300),\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 3 folds for each of 550 candidates, totalling 1650 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.\n",
"[Parallel(n_jobs=-1)]: Done 25 tasks | elapsed: 10.1s\n",
"[Parallel(n_jobs=-1)]: Done 146 tasks | elapsed: 2.5min\n",
"/Users/yamasakih/anaconda3/lib/python3.6/site-packages/sklearn/externals/joblib/externals/loky/process_executor.py:700: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.\n",
" \"timeout or by a memory leak.\", UserWarning\n",
"[Parallel(n_jobs=-1)]: Done 349 tasks | elapsed: 7.4min\n",
"[Parallel(n_jobs=-1)]: Done 632 tasks | elapsed: 16.4min\n",
"[Parallel(n_jobs=-1)]: Done 997 tasks | elapsed: 30.8min\n",
"[Parallel(n_jobs=-1)]: Done 1442 tasks | elapsed: 51.7min\n",
"[Parallel(n_jobs=-1)]: Done 1650 out of 1650 | elapsed: 67.4min finished\n"
]
},
{
"data": {
"text/plain": [
"GridSearchCV(cv=ShuffleSplit(n_splits=3, random_state=0, test_size=0.3, train_size=None),\n",
" error_score='raise-deprecating',\n",
" estimator=Pipeline(memory=None,\n",
" steps=[('variancethreshold', VarianceThreshold(threshold=0.0)), ('selectpercentile', SelectPercentile(percentile=10,\n",
" score_func=<function f_classif at 0x1a195f9048>)), ('standardscaler', StandardScaler(copy=True, with_mean=False, with_std=True)), ('randomforestregressor', RandomForestRegres...obs=-1,\n",
" oob_score=False, random_state=20150917, verbose=0,\n",
" warm_start=False))]),\n",
" fit_params=None, iid='warn', n_jobs=-1,\n",
" param_grid={'variancethreshold__threshold': array([0. , 0.02, 0.04, 0.06, 0.08]), 'selectpercentile__percentile': array([ 5, 15, 25, 35, 45, 55, 65, 75, 85, 95, 100]), 'selectpercentile__score_func': [<function f_regression at 0x1a195f91e0>, <function mutual_info_regression at 0x1a1960e158>], 'randomforestregressor__n_estimators': array([ 300, 600, 900, 1200, 1500])},\n",
" pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
" scoring='neg_mean_absolute_error', verbose=2)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"shuffle_split = ShuffleSplit(n_splits=3, test_size=0.3, random_state=0)\n",
"gs = GridSearchCV(estimator=pipeline, param_grid=param_grid, cv=shuffle_split, return_train_score=True,\n",
" scoring='neg_mean_absolute_error', n_jobs=-1, verbose=2)\n",
"gs.fit(training_X, training_y)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Pipeline(memory=None,\n",
" steps=[('variancethreshold', VarianceThreshold(threshold=0.0)), ('selectpercentile', SelectPercentile(percentile=95,\n",
" score_func=<function f_regression at 0x1a195f91e0>)), ('standardscaler', StandardScaler(copy=True, with_mean=False, with_std=True)), ('randomforestregressor', RandomForestReg...obs=-1,\n",
" oob_score=False, random_state=20150917, verbose=0,\n",
" warm_start=False))])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gs.best_estimator_"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_randomforestregressor__n_estimators</th>\n",
" <th>param_selectpercentile__percentile</th>\n",
" <th>param_selectpercentile__score_func</th>\n",
" <th>param_variancethreshold__threshold</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2.340794</td>\n",
" <td>0.300037</td>\n",
" <td>0.130464</td>\n",
" <td>0.005036</td>\n",
" <td>300</td>\n",
" <td>15</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 300, '...</td>\n",
" <td>-0.943628</td>\n",
" <td>-0.871986</td>\n",
" <td>-0.842301</td>\n",
" <td>-0.885972</td>\n",
" <td>0.042532</td>\n",
" <td>19</td>\n",
" <td>-0.370619</td>\n",
" <td>-0.375834</td>\n",
" <td>-0.382988</td>\n",
" <td>-0.376480</td>\n",
" <td>0.005070</td>\n",
" </tr>\n",
" <tr>\n",
" <th>90</th>\n",
" <td>10.528222</td>\n",
" <td>0.940662</td>\n",
" <td>0.151243</td>\n",
" <td>0.001575</td>\n",
" <td>300</td>\n",
" <td>95</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 300, '...</td>\n",
" <td>-0.938614</td>\n",
" <td>-0.847938</td>\n",
" <td>-0.863170</td>\n",
" <td>-0.883240</td>\n",
" <td>0.039645</td>\n",
" <td>5</td>\n",
" <td>-0.344665</td>\n",
" <td>-0.346377</td>\n",
" <td>-0.351231</td>\n",
" <td>-0.347424</td>\n",
" <td>0.002781</td>\n",
" </tr>\n",
" <tr>\n",
" <th>120</th>\n",
" <td>3.105771</td>\n",
" <td>0.218041</td>\n",
" <td>0.234040</td>\n",
" <td>0.007595</td>\n",
" <td>600</td>\n",
" <td>15</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 600, '...</td>\n",
" <td>-0.943684</td>\n",
" <td>-0.871894</td>\n",
" <td>-0.841502</td>\n",
" <td>-0.885694</td>\n",
" <td>0.042841</td>\n",
" <td>14</td>\n",
" <td>-0.368714</td>\n",
" <td>-0.375645</td>\n",
" <td>-0.382265</td>\n",
" <td>-0.375541</td>\n",
" <td>0.005532</td>\n",
" </tr>\n",
" <tr>\n",
" <th>170</th>\n",
" <td>13.607919</td>\n",
" <td>1.549001</td>\n",
" <td>0.242282</td>\n",
" <td>0.004673</td>\n",
" <td>600</td>\n",
" <td>65</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 600, '...</td>\n",
" <td>-0.937537</td>\n",
" <td>-0.859764</td>\n",
" <td>-0.858828</td>\n",
" <td>-0.885376</td>\n",
" <td>0.036885</td>\n",
" <td>9</td>\n",
" <td>-0.341022</td>\n",
" <td>-0.347568</td>\n",
" <td>-0.349905</td>\n",
" <td>-0.346165</td>\n",
" <td>0.003760</td>\n",
" </tr>\n",
" <tr>\n",
" <th>180</th>\n",
" <td>18.404103</td>\n",
" <td>4.982111</td>\n",
" <td>0.237588</td>\n",
" <td>0.006530</td>\n",
" <td>600</td>\n",
" <td>75</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 600, '...</td>\n",
" <td>-0.942826</td>\n",
" <td>-0.857595</td>\n",
" <td>-0.856221</td>\n",
" <td>-0.885547</td>\n",
" <td>0.040506</td>\n",
" <td>11</td>\n",
" <td>-0.342478</td>\n",
" <td>-0.347106</td>\n",
" <td>-0.349115</td>\n",
" <td>-0.346233</td>\n",
" <td>0.002779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>190</th>\n",
" <td>21.924798</td>\n",
" <td>6.057214</td>\n",
" <td>0.249807</td>\n",
" <td>0.009105</td>\n",
" <td>600</td>\n",
" <td>85</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 600, '...</td>\n",
" <td>-0.939885</td>\n",
" <td>-0.856279</td>\n",
" <td>-0.860871</td>\n",
" <td>-0.885678</td>\n",
" <td>0.038376</td>\n",
" <td>13</td>\n",
" <td>-0.340665</td>\n",
" <td>-0.346452</td>\n",
" <td>-0.348677</td>\n",
" <td>-0.345265</td>\n",
" <td>0.003377</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>26.032370</td>\n",
" <td>5.246677</td>\n",
" <td>0.252347</td>\n",
" <td>0.007084</td>\n",
" <td>600</td>\n",
" <td>95</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 600, '...</td>\n",
" <td>-0.937249</td>\n",
" <td>-0.850122</td>\n",
" <td>-0.858931</td>\n",
" <td>-0.882101</td>\n",
" <td>0.039161</td>\n",
" <td>2</td>\n",
" <td>-0.341842</td>\n",
" <td>-0.346288</td>\n",
" <td>-0.349317</td>\n",
" <td>-0.345815</td>\n",
" <td>0.003070</td>\n",
" </tr>\n",
" <tr>\n",
" <th>205</th>\n",
" <td>135.622791</td>\n",
" <td>1.864940</td>\n",
" <td>0.249126</td>\n",
" <td>0.011696</td>\n",
" <td>600</td>\n",
" <td>95</td>\n",
" <td>&lt;function mutual_info_regression at 0x1a1960e158&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 600, '...</td>\n",
" <td>-0.947186</td>\n",
" <td>-0.851216</td>\n",
" <td>-0.859047</td>\n",
" <td>-0.885817</td>\n",
" <td>0.043512</td>\n",
" <td>16</td>\n",
" <td>-0.341680</td>\n",
" <td>-0.345807</td>\n",
" <td>-0.350339</td>\n",
" <td>-0.345942</td>\n",
" <td>0.003536</td>\n",
" </tr>\n",
" <tr>\n",
" <th>230</th>\n",
" <td>4.605038</td>\n",
" <td>0.278365</td>\n",
" <td>0.238162</td>\n",
" <td>0.004040</td>\n",
" <td>900</td>\n",
" <td>15</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 900, '...</td>\n",
" <td>-0.946329</td>\n",
" <td>-0.870596</td>\n",
" <td>-0.838679</td>\n",
" <td>-0.885201</td>\n",
" <td>0.045145</td>\n",
" <td>8</td>\n",
" <td>-0.369157</td>\n",
" <td>-0.376066</td>\n",
" <td>-0.382569</td>\n",
" <td>-0.375931</td>\n",
" <td>0.005476</td>\n",
" </tr>\n",
" <tr>\n",
" <th>310</th>\n",
" <td>50.707395</td>\n",
" <td>8.854649</td>\n",
" <td>0.245704</td>\n",
" <td>0.006478</td>\n",
" <td>900</td>\n",
" <td>95</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 900, '...</td>\n",
" <td>-0.939194</td>\n",
" <td>-0.852424</td>\n",
" <td>-0.857810</td>\n",
" <td>-0.883143</td>\n",
" <td>0.039695</td>\n",
" <td>4</td>\n",
" <td>-0.342567</td>\n",
" <td>-0.347138</td>\n",
" <td>-0.349058</td>\n",
" <td>-0.346254</td>\n",
" <td>0.002723</td>\n",
" </tr>\n",
" <tr>\n",
" <th>340</th>\n",
" <td>7.340413</td>\n",
" <td>1.605647</td>\n",
" <td>0.347139</td>\n",
" <td>0.009792</td>\n",
" <td>1200</td>\n",
" <td>15</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1200, ...</td>\n",
" <td>-0.944195</td>\n",
" <td>-0.871864</td>\n",
" <td>-0.838514</td>\n",
" <td>-0.884858</td>\n",
" <td>0.044112</td>\n",
" <td>7</td>\n",
" <td>-0.368879</td>\n",
" <td>-0.377187</td>\n",
" <td>-0.382811</td>\n",
" <td>-0.376293</td>\n",
" <td>0.005723</td>\n",
" </tr>\n",
" <tr>\n",
" <th>410</th>\n",
" <td>59.967925</td>\n",
" <td>3.010375</td>\n",
" <td>0.346323</td>\n",
" <td>0.006296</td>\n",
" <td>1200</td>\n",
" <td>85</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1200, ...</td>\n",
" <td>-0.938870</td>\n",
" <td>-0.858421</td>\n",
" <td>-0.860480</td>\n",
" <td>-0.885924</td>\n",
" <td>0.037448</td>\n",
" <td>18</td>\n",
" <td>-0.341874</td>\n",
" <td>-0.347112</td>\n",
" <td>-0.347865</td>\n",
" <td>-0.345617</td>\n",
" <td>0.002665</td>\n",
" </tr>\n",
" <tr>\n",
" <th>420</th>\n",
" <td>67.232915</td>\n",
" <td>5.321867</td>\n",
" <td>0.356481</td>\n",
" <td>0.005594</td>\n",
" <td>1200</td>\n",
" <td>95</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1200, ...</td>\n",
" <td>-0.937423</td>\n",
" <td>-0.852502</td>\n",
" <td>-0.856930</td>\n",
" <td>-0.882285</td>\n",
" <td>0.039031</td>\n",
" <td>3</td>\n",
" <td>-0.342715</td>\n",
" <td>-0.347692</td>\n",
" <td>-0.348595</td>\n",
" <td>-0.346334</td>\n",
" <td>0.002586</td>\n",
" </tr>\n",
" <tr>\n",
" <th>450</th>\n",
" <td>16.274444</td>\n",
" <td>0.806114</td>\n",
" <td>0.346147</td>\n",
" <td>0.008797</td>\n",
" <td>1500</td>\n",
" <td>15</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1500, ...</td>\n",
" <td>-0.945321</td>\n",
" <td>-0.870367</td>\n",
" <td>-0.837342</td>\n",
" <td>-0.884343</td>\n",
" <td>0.045176</td>\n",
" <td>6</td>\n",
" <td>-0.368719</td>\n",
" <td>-0.377324</td>\n",
" <td>-0.382715</td>\n",
" <td>-0.376253</td>\n",
" <td>0.005764</td>\n",
" </tr>\n",
" <tr>\n",
" <th>500</th>\n",
" <td>54.720098</td>\n",
" <td>0.352229</td>\n",
" <td>0.413356</td>\n",
" <td>0.052451</td>\n",
" <td>1500</td>\n",
" <td>65</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1500, ...</td>\n",
" <td>-0.942593</td>\n",
" <td>-0.858608</td>\n",
" <td>-0.855953</td>\n",
" <td>-0.885718</td>\n",
" <td>0.040231</td>\n",
" <td>15</td>\n",
" <td>-0.341795</td>\n",
" <td>-0.348258</td>\n",
" <td>-0.349553</td>\n",
" <td>-0.346535</td>\n",
" <td>0.003393</td>\n",
" </tr>\n",
" <tr>\n",
" <th>510</th>\n",
" <td>64.882490</td>\n",
" <td>3.607211</td>\n",
" <td>0.380268</td>\n",
" <td>0.052067</td>\n",
" <td>1500</td>\n",
" <td>75</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1500, ...</td>\n",
" <td>-0.944586</td>\n",
" <td>-0.856216</td>\n",
" <td>-0.855952</td>\n",
" <td>-0.885585</td>\n",
" <td>0.041720</td>\n",
" <td>12</td>\n",
" <td>-0.342776</td>\n",
" <td>-0.348251</td>\n",
" <td>-0.348567</td>\n",
" <td>-0.346531</td>\n",
" <td>0.002659</td>\n",
" </tr>\n",
" <tr>\n",
" <th>520</th>\n",
" <td>73.660243</td>\n",
" <td>2.588436</td>\n",
" <td>0.453762</td>\n",
" <td>0.004975</td>\n",
" <td>1500</td>\n",
" <td>85</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1500, ...</td>\n",
" <td>-0.938843</td>\n",
" <td>-0.857540</td>\n",
" <td>-0.860013</td>\n",
" <td>-0.885465</td>\n",
" <td>0.037757</td>\n",
" <td>10</td>\n",
" <td>-0.341996</td>\n",
" <td>-0.347487</td>\n",
" <td>-0.348140</td>\n",
" <td>-0.345874</td>\n",
" <td>0.002755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>530</th>\n",
" <td>80.701550</td>\n",
" <td>4.365979</td>\n",
" <td>0.455875</td>\n",
" <td>0.003979</td>\n",
" <td>1500</td>\n",
" <td>95</td>\n",
" <td>&lt;function f_regression at 0x1a195f91e0&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1500, ...</td>\n",
" <td>-0.938691</td>\n",
" <td>-0.850485</td>\n",
" <td>-0.856768</td>\n",
" <td>-0.881982</td>\n",
" <td>0.040182</td>\n",
" <td>1</td>\n",
" <td>-0.342474</td>\n",
" <td>-0.347482</td>\n",
" <td>-0.348567</td>\n",
" <td>-0.346174</td>\n",
" <td>0.002654</td>\n",
" </tr>\n",
" <tr>\n",
" <th>535</th>\n",
" <td>255.620373</td>\n",
" <td>0.894018</td>\n",
" <td>0.381099</td>\n",
" <td>0.045727</td>\n",
" <td>1500</td>\n",
" <td>95</td>\n",
" <td>&lt;function mutual_info_regression at 0x1a1960e158&gt;</td>\n",
" <td>0</td>\n",
" <td>{'randomforestregressor__n_estimators': 1500, ...</td>\n",
" <td>-0.949073</td>\n",
" <td>-0.850371</td>\n",
" <td>-0.858187</td>\n",
" <td>-0.885877</td>\n",
" <td>0.044800</td>\n",
" <td>17</td>\n",
" <td>-0.341987</td>\n",
" <td>-0.346581</td>\n",
" <td>-0.348844</td>\n",
" <td>-0.345804</td>\n",
" <td>0.002853</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time mean_score_time std_score_time \\\n",
"10 2.340794 0.300037 0.130464 0.005036 \n",
"90 10.528222 0.940662 0.151243 0.001575 \n",
"120 3.105771 0.218041 0.234040 0.007595 \n",
"170 13.607919 1.549001 0.242282 0.004673 \n",
"180 18.404103 4.982111 0.237588 0.006530 \n",
"190 21.924798 6.057214 0.249807 0.009105 \n",
"200 26.032370 5.246677 0.252347 0.007084 \n",
"205 135.622791 1.864940 0.249126 0.011696 \n",
"230 4.605038 0.278365 0.238162 0.004040 \n",
"310 50.707395 8.854649 0.245704 0.006478 \n",
"340 7.340413 1.605647 0.347139 0.009792 \n",
"410 59.967925 3.010375 0.346323 0.006296 \n",
"420 67.232915 5.321867 0.356481 0.005594 \n",
"450 16.274444 0.806114 0.346147 0.008797 \n",
"500 54.720098 0.352229 0.413356 0.052451 \n",
"510 64.882490 3.607211 0.380268 0.052067 \n",
"520 73.660243 2.588436 0.453762 0.004975 \n",
"530 80.701550 4.365979 0.455875 0.003979 \n",
"535 255.620373 0.894018 0.381099 0.045727 \n",
"\n",
" param_randomforestregressor__n_estimators \\\n",
"10 300 \n",
"90 300 \n",
"120 600 \n",
"170 600 \n",
"180 600 \n",
"190 600 \n",
"200 600 \n",
"205 600 \n",
"230 900 \n",
"310 900 \n",
"340 1200 \n",
"410 1200 \n",
"420 1200 \n",
"450 1500 \n",
"500 1500 \n",
"510 1500 \n",
"520 1500 \n",
"530 1500 \n",
"535 1500 \n",
"\n",
" param_selectpercentile__percentile \\\n",
"10 15 \n",
"90 95 \n",
"120 15 \n",
"170 65 \n",
"180 75 \n",
"190 85 \n",
"200 95 \n",
"205 95 \n",
"230 15 \n",
"310 95 \n",
"340 15 \n",
"410 85 \n",
"420 95 \n",
"450 15 \n",
"500 65 \n",
"510 75 \n",
"520 85 \n",
"530 95 \n",
"535 95 \n",
"\n",
" param_selectpercentile__score_func \\\n",
"10 <function f_regression at 0x1a195f91e0> \n",
"90 <function f_regression at 0x1a195f91e0> \n",
"120 <function f_regression at 0x1a195f91e0> \n",
"170 <function f_regression at 0x1a195f91e0> \n",
"180 <function f_regression at 0x1a195f91e0> \n",
"190 <function f_regression at 0x1a195f91e0> \n",
"200 <function f_regression at 0x1a195f91e0> \n",
"205 <function mutual_info_regression at 0x1a1960e158> \n",
"230 <function f_regression at 0x1a195f91e0> \n",
"310 <function f_regression at 0x1a195f91e0> \n",
"340 <function f_regression at 0x1a195f91e0> \n",
"410 <function f_regression at 0x1a195f91e0> \n",
"420 <function f_regression at 0x1a195f91e0> \n",
"450 <function f_regression at 0x1a195f91e0> \n",
"500 <function f_regression at 0x1a195f91e0> \n",
"510 <function f_regression at 0x1a195f91e0> \n",
"520 <function f_regression at 0x1a195f91e0> \n",
"530 <function f_regression at 0x1a195f91e0> \n",
"535 <function mutual_info_regression at 0x1a1960e158> \n",
"\n",
" param_variancethreshold__threshold \\\n",
"10 0 \n",
"90 0 \n",
"120 0 \n",
"170 0 \n",
"180 0 \n",
"190 0 \n",
"200 0 \n",
"205 0 \n",
"230 0 \n",
"310 0 \n",
"340 0 \n",
"410 0 \n",
"420 0 \n",
"450 0 \n",
"500 0 \n",
"510 0 \n",
"520 0 \n",
"530 0 \n",
"535 0 \n",
"\n",
" params split0_test_score \\\n",
"10 {'randomforestregressor__n_estimators': 300, '... -0.943628 \n",
"90 {'randomforestregressor__n_estimators': 300, '... -0.938614 \n",
"120 {'randomforestregressor__n_estimators': 600, '... -0.943684 \n",
"170 {'randomforestregressor__n_estimators': 600, '... -0.937537 \n",
"180 {'randomforestregressor__n_estimators': 600, '... -0.942826 \n",
"190 {'randomforestregressor__n_estimators': 600, '... -0.939885 \n",
"200 {'randomforestregressor__n_estimators': 600, '... -0.937249 \n",
"205 {'randomforestregressor__n_estimators': 600, '... -0.947186 \n",
"230 {'randomforestregressor__n_estimators': 900, '... -0.946329 \n",
"310 {'randomforestregressor__n_estimators': 900, '... -0.939194 \n",
"340 {'randomforestregressor__n_estimators': 1200, ... -0.944195 \n",
"410 {'randomforestregressor__n_estimators': 1200, ... -0.938870 \n",
"420 {'randomforestregressor__n_estimators': 1200, ... -0.937423 \n",
"450 {'randomforestregressor__n_estimators': 1500, ... -0.945321 \n",
"500 {'randomforestregressor__n_estimators': 1500, ... -0.942593 \n",
"510 {'randomforestregressor__n_estimators': 1500, ... -0.944586 \n",
"520 {'randomforestregressor__n_estimators': 1500, ... -0.938843 \n",
"530 {'randomforestregressor__n_estimators': 1500, ... -0.938691 \n",
"535 {'randomforestregressor__n_estimators': 1500, ... -0.949073 \n",
"\n",
" split1_test_score split2_test_score mean_test_score std_test_score \\\n",
"10 -0.871986 -0.842301 -0.885972 0.042532 \n",
"90 -0.847938 -0.863170 -0.883240 0.039645 \n",
"120 -0.871894 -0.841502 -0.885694 0.042841 \n",
"170 -0.859764 -0.858828 -0.885376 0.036885 \n",
"180 -0.857595 -0.856221 -0.885547 0.040506 \n",
"190 -0.856279 -0.860871 -0.885678 0.038376 \n",
"200 -0.850122 -0.858931 -0.882101 0.039161 \n",
"205 -0.851216 -0.859047 -0.885817 0.043512 \n",
"230 -0.870596 -0.838679 -0.885201 0.045145 \n",
"310 -0.852424 -0.857810 -0.883143 0.039695 \n",
"340 -0.871864 -0.838514 -0.884858 0.044112 \n",
"410 -0.858421 -0.860480 -0.885924 0.037448 \n",
"420 -0.852502 -0.856930 -0.882285 0.039031 \n",
"450 -0.870367 -0.837342 -0.884343 0.045176 \n",
"500 -0.858608 -0.855953 -0.885718 0.040231 \n",
"510 -0.856216 -0.855952 -0.885585 0.041720 \n",
"520 -0.857540 -0.860013 -0.885465 0.037757 \n",
"530 -0.850485 -0.856768 -0.881982 0.040182 \n",
"535 -0.850371 -0.858187 -0.885877 0.044800 \n",
"\n",
" rank_test_score split0_train_score split1_train_score \\\n",
"10 19 -0.370619 -0.375834 \n",
"90 5 -0.344665 -0.346377 \n",
"120 14 -0.368714 -0.375645 \n",
"170 9 -0.341022 -0.347568 \n",
"180 11 -0.342478 -0.347106 \n",
"190 13 -0.340665 -0.346452 \n",
"200 2 -0.341842 -0.346288 \n",
"205 16 -0.341680 -0.345807 \n",
"230 8 -0.369157 -0.376066 \n",
"310 4 -0.342567 -0.347138 \n",
"340 7 -0.368879 -0.377187 \n",
"410 18 -0.341874 -0.347112 \n",
"420 3 -0.342715 -0.347692 \n",
"450 6 -0.368719 -0.377324 \n",
"500 15 -0.341795 -0.348258 \n",
"510 12 -0.342776 -0.348251 \n",
"520 10 -0.341996 -0.347487 \n",
"530 1 -0.342474 -0.347482 \n",
"535 17 -0.341987 -0.346581 \n",
"\n",
" split2_train_score mean_train_score std_train_score \n",
"10 -0.382988 -0.376480 0.005070 \n",
"90 -0.351231 -0.347424 0.002781 \n",
"120 -0.382265 -0.375541 0.005532 \n",
"170 -0.349905 -0.346165 0.003760 \n",
"180 -0.349115 -0.346233 0.002779 \n",
"190 -0.348677 -0.345265 0.003377 \n",
"200 -0.349317 -0.345815 0.003070 \n",
"205 -0.350339 -0.345942 0.003536 \n",
"230 -0.382569 -0.375931 0.005476 \n",
"310 -0.349058 -0.346254 0.002723 \n",
"340 -0.382811 -0.376293 0.005723 \n",
"410 -0.347865 -0.345617 0.002665 \n",
"420 -0.348595 -0.346334 0.002586 \n",
"450 -0.382715 -0.376253 0.005764 \n",
"500 -0.349553 -0.346535 0.003393 \n",
"510 -0.348567 -0.346531 0.002659 \n",
"520 -0.348140 -0.345874 0.002755 \n",
"530 -0.348567 -0.346174 0.002654 \n",
"535 -0.348844 -0.345804 0.002853 "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cv_results = pd.DataFrame(gs.cv_results_)\n",
"cv_results[cv_results.rank_test_score<20]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"estimator = gs.best_estimator_"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training:\t0.95\n",
"test:\t0.73\n"
]
}
],
"source": [
"print(f'Training:\\t{estimator.score(training_X, training_y):.2}')\n",
"print(f'test:\\t{estimator.score(test_X, test_y):.2}')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqYAAAFUCAYAAAD2yf4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzsnXl4lOW5/z9PMiHDGogIJiAQDDRCWEUTrGtwwyqComJc0FO7nHMqpT2nitVa6tGK/Z22FHvO6a5WjbgSEAUUorhgomyBgFEiISwxbIGEbUImeX5/vPMOM5OZyTvJTGYmuT/XNVeYd70nId/c7709SmuNIAiCIAiCIESbhGgbIAiCIAiCIAggjqkgCIIgCIIQI4hjKgiCIAiCIMQE4pgKgiAIgiAIMYE4poIgCIIgCEJMII6pIAiCIAiCEBOIYxpDKKX+ppTSSqnfBdg/XymlfbZppdR8C9e+USm1VSnlcJ3TN0xmm9fv67JvYjivGw2UUs+5vketva4I0/0WK6XK23hujVLqT+GwIxoope5XSt0TbTuErovobmzQ0brrumem6/s3JFzXtHhf0b0g2KJtgGCglOoO3Op6e6dS6kGttTNM17YBLwHrgH8HTgPHwnFtD/oCvwT2AhvDfO2O5r8AT2fvfuC7wCVAk8f27WG636NAzzaeez1wJEx2RIP7gePAP6NtiND1EN2NKTpadwEyMb5/q4HdYbxua4juBUEc09hhBtAHeAfD2bgOWB6maw8CegOvaq0/DNM1OwSlVLLWuqEj76m1/hr42sOG61z/LLHyRytUm7XWFaFb6T433v8YCUI0Ed31QzzqrtB5kFR+7DAbI/J1L3AKCEuY35Vu2uV6+3dXKuQDj/03K6WKlVInlVJHlVKv+aY1lFKzlFJFSqmDSqnjSqlNSqnZHvuHAZWut3/1SLnc69q/Syn1nB/bvNJhZspMKZWtlFqllDoOvBqirfku+44rpepcabQfhPyNs4hS6jqXzTe6UlGHgSrXviyl1Euuz39KKfW1UuoZpVQfn2t4pfJd52ml1H1Kqadc6fojSqlCpVSaz7leqXyl1A9d516glHpVKXVMKbVPKfVbpVQ3n3NHur7Pp1zXWaCU+pHr/HNa+dw3uH4W9a57fKGUmudzzAVKqeWun9UppdSHSqnJHvuLgRxgisf/mZWWv/mC0H5Ed+NQd133HKiU+qtS6hulVINSartS6j6fYwa5NNg8ploptUwp1U8Zju8K16EfeXz/coPcU3SvAxDHNAZQSqUDVwGvaK0PAoXANKVUvzBc/m+cSVU9AUwG/s113x8Cb2CkRmYCPwCygbVKqd4e1xgOvA7cCUwH3gL+5jof4BvgZte/n3LdYzLwdhttXgqsBaYBv7dqq1LqEuBF17nTXZ/7rxjpLlzHXOEp3mHkT4ADuAP4vmvbIGAn8GOMSMyvge8Ayyxe85dAOsYfzf8ELgees3huAVCGERH6G/BT4D/MncpIYa4Gslz23g+MBn7W2oWVUlnAm0A5xvd4OvAHjOiQeUwu8DFGicJ3MX5mJ4AipdQY12HfBbYBn3Pm/8xci59PENqF6G4L4kZ3XT+jT4EpGKVQNwDvYjwEfM/j0MXABAz9uxpDX/YDdtf5P3Ed9wPOfP/KAtxTdK+j0FrLK8ov4CFAA5Nd7691vf+hz3HzjR+Z1zYNzG/l+pmu4+712NYLqAP+4XPsMIxaqLkBrpWAUQLyV6DU5zwN3O/nnF3Ac362e9lufj7gxz7HWbIVw3mrbeV7cTngBO4J4edj2mXzs+86176XLVzHhvGHUAPne2xfDJR7vM9yHbPK5/xHXdtTPbbVAH/yeP9D1zEP+5y7Gtji8X6O67hxPj/bctf2c4J8jruAZiA5yDGfAKWe3zMgCSNVt9hjWzGwOhK/V/KSV7CX6K7354sz3X0Sw+Eb5rP9BaDa9f1SLju/H+Qepn5fYsEe0b0OeknENDa4B9ihtf7U9X41xi9XJLv2JmPUVr2klLKZL4wi+nLgMvNApdQIpdTLSql9QKPrdT/wrQjZtqSNtn4O9FNKvehKubTogNVar9Va27TW4S4697UZpZRdKfULpdSXSikHxvftPdduK98738jHVtdXKx2k/s71PC8X+EprXWpu0Fo3Y0QEWmMjhkC/5krz9ffcqYxShcnAK6735s9LA0V4/N8ShCgiuutNPOnudRiRyb0+tq0C0oBMbXiAG4CfK6NEaXQ77ym610GIYxpllFIXAqOAN5Ux+qMvRmrgTWCyUmpkhG49wPV1NWdEz3yNAc5y2dcLw5kaB8wDLgUuBP4BJEfItm/aYqvWei1GiuVcDJE9qJRarZQaGyE7g9kM8FuMKOdzwFTgImCWa5/dwjVrfd6bzQhtPdfzvDTggJ/z9rd2Ya31dozPY8coGdivlPpEKfVt1yFnY0QrnqTlz+t+XD8vQYgWort+iSfdHQBc48euF1z7TY2ZAawEHgHKlFJ7lVIPK6VUqDcU3es4pCs/+pjF7A+5Xr7cg+HchJvDrq/3YtS7+GKONZkMDAUu1Vp/bO50PQlaxQH4Nt6kBjle+7y3aita69eB113CfgXwNLBSKTXYFRGMFL42A9wO/FVr/ZS5wfcpO4p8A1zgZ/tAKydrrd8D3lNK2THGuTwJvKOMpgjTKf4tRplCi9NDN1cQworobkviSXcPAxUErokvd9lVg1He9EOl1CjgPoxa/xrg2VBvKrrXMYhjGkWU0SU9CyjBeCr25ffA3UqpX7jSEuFkHYawZGqtnw9yXA/X10Zzg6vw/Caf48xoXnc/16jCKJj35Abrplq21Y3W+jiwXCk1HKNA/SzgYAj3bBeuJ/LueHzfXNzn5/BoUAzcoZQaZ6bzlVIJnGmmsITW2gGsdv3BewUYorXeqpQqAcYCP2vl/24D/v/PCEJEEN21TCzr7koMh3mn1to3OxTItu3Az5RS/8aZ70uw71+wa4nuRRBxTKPLDRi/uP+htf7Ad6dS6s/A/2E8gb4fzhtrreuVUj8D/kcpdTbG2Iw6jE7yy4EPtNYFGOJU7zrulxjdho8Ch4AUj0vux3iKnaWU2oJRmF6ptT6M8fT4D6XU7zFmBI7DEJWw2qqUehwj4vc+Rq3YYIwmn83a6LpFKXU5sAb4lwjUmXrarJVS7wL3K2MU1C7gNiBWVmj5K0bTwjKl1CMYI3N+yJk/iAGjHEqpORhpxZUY9WZnAz/HGFBtjr2ai1FX9Y4yRtbUuI6bBDRqrX/hOm47MFspdQvGH9I6rfWOMH1GQfCH6G4YbY2S7v4Go+P9Y6XUQuArjFKM84EcrfUtSqmBGJMGCoAvMYb0z8RwCM1a/3IMrbtfKXUCo1nqC631Cd8biu51INHuvurKL4xfmnqgR4D9KcBJXJ2VhLE71GPf9RiCUo8xx68Co45plMcxecAm1/6vMUTHny3TMX7hGj3vh1HL/BjGL+BJjAL183xtJ0gXphVbMUYxrcJIUzcAe4C/A+ke17gi0PciyPcvoF0E6erEEOvXgKMYaZ7ngYtdx8/yOC5QV/5dAe6V67EtUFf+YJ9zFwAOn20jMUasnMKoN/1v4BcYQm0P8v24FGN0zV7X97kaeBkjsuJ53BjX5z/o8fNYAlzjccxglw3HXXavjPbvpbw69wvR3bjXXdf+s4BFrs93GsNJXwv8m2t/T4wH8O0ufanDyBTd6nOdH2EEDpz46KvPcaJ7HfRSrm+SIAgCSqnVQJrWur0drIIgCIIQMpLKF4QuilLqQYxI7tcYY2HuwBhYHSt1sIIgCEIXQxxTQei6NGLUmQ7BSPt9AczWEay9FQRBEIRgSCpfEARBEARBiAlkwL4gCIIgCIIQE4hjKgiCIAiCIMQEnbbGtH///nrYsGHRNkMQhBikvOYYjU3NJCUmkHVOb2snnTwJR4+y4ZtvDmmtz46shdFDtFMQOh9t0rxwUVcHJ05Y1s5O65gOGzaM9evXR9sMQRBikIKSKp4pquCBvEzyc4a2fsJnn8E778CIEai77qqKvIXRQ7RTEDofBSVVPL2iHA38dGqWNd1rL83NsHw5bNwI3/426pprLGlnp3VMBUEQApGfM9S6MK9bB+++C1lZcOutcNddkTVOEAQhAhxrcNKs4dHCMoDIOqfNzbB0KZSWwuWXwxVXWD5VakwFQRAC8dFHhlM6erThlCYmRtsiQRA6KQUlVeQ+tYaCkvAnZRYVVdDsGsLUrOGZooqw38NNUxO8+abhlOblwZVXglKWTxfHVBCETkVYxF1r+OADWLMGxo6FW24Rp1QQhLDiq1WLiiqoqXMEdBrbo21z8jJJS7EzfXw6aSl2HsjLbJftAWlqgtdfh7IyuPpquOyykC8hjqkgCJ2K1sS9VbSGoiLDMR0/HqZPhwSRSkEQwouvVpnOYyCnsT3alp8zlE8fnsLCWRP49OEpAOGPzjqd8Oqr8MUXcN118O1vt+kyoraCIHQqWhP3oGhtpO4/+ggmTYKbbhKnVBCEiOCrVabzGKj205+2tTWK2u4HeF8aG2HxYvjyS7jhBsjNbfOlOu3KT5MmTdLSWSoIgmW0hhUrjA78nBzjid9PXZRSaoPWelIULOwQRDsFIX7IfWoNNXUO0lLs7kioFUKeTBKM06fh5Zdh1y6YNg0mTPB7mFXtlFCAIAidkoKSKsbOX8XY+ataRBNaRBm0NsaafPYZXHxxQKdUEAQhlmhrhqi16KxlGhrgpZcMp3TGjIBOaSiIYyoIQqfA19lcsKKceoeTeoeTp1eUB24yMMeabNgAl15qFOyLUyoIQhwQNgezLTgc8OKLsGeP0SA6dmxYLitzTAVBiFsKSqpYVFTBnLxMt7P59IpyFhVVcPK0032cBq96qpMNTlLsNnKH9uXhu39Ffvc6xtw9w+ggFadUEIQugKd+huzYnjplOKU1NcYovfPPD5tdEjEVBCGu8IyMekY+zZRWg7OJmjoHzmbjeHtSAvOmZrnTXYuKKqh3OOmVpOi+fCkDq3bwPwnDjCHQ4pQKgtBFaHMD1MmT8PzzhlN6++1hdUpBHFNBEGIYfx2n/pxRs4A/JyMVh9O7odPRaHioZrprTl4mg3sl8Rv9JXf0qGfbmMlc9t0ZHfq5BEEQok2b6lOPH4fnnoNDh+COO2DkyLDbJV35giDELP46ToN1kw5/+G336iaeeHWsOp3wyiuwYwdcfz1cdFFINklXviAIXZJjx4xIaV0d5OdDRkZIp0tXviAIcU+gJ3rT9/SNqE4bl06CgvGDU/yvctLYaIw1qaiAG28M2SkVBEGIFSK5hGkL6uuNSGl9Pdx1V8hOaShIxFQQhJgjUFF+QUkVjxaW0ayNKOiJBqPrPsVuo3T+tcEvevo0FBRAVZUxOH/8+DbZJhFTQRBigbbOMA2Zo0eNSOnJk4ZTeu65bbqMREwFQYhbAhXlLyqqoFlDgsIritrgbPKKHLSIJDQ0GB2kVVVw881tdkoFQRBihXatcmeV2lp49lmjC/+ee9rslIaCjIsSBCHmmJOX6a4jDbTdjKQ+U1TBiQanlyNrRlWfKaogf9xAwymtroaZM2H06A7/PIIgCOEmP2doZOeXHjpkREqbmmD2bEhLi9y9PBDHVBCEmCOQ4PpuN/+9YEU5KXabexyUGVWde/FgQ1gPHIDbboOsrA77DIIgCOGmXbNHQ+HgQUM7tTac0oEDI3cvHySVLwhCTGKlsN+sOa13OOmRbHOPg0pLsfPUtcO5fXuRIbCzZolTKghC3NPm2aOhsH+/0eikFNx7b4c6pSCOqSAIMUprAlxQUsXPl5S5x0PlZKSS+9QaAD59IIfbtxXB4cPGrL0RIzrKbEEQhJCx2mEf8brSb74xnNLERMMpPfvsyNwnCJLKFwQhpjBTVbkZqZRU1voVYNMpNVFAcWUtNXUO/v5OKfmfVRljTe68M6JjTQRBEMKB54N4sBR9ROtK9+416vHtdiN9369fZO7TChIxFQQhagRb2amksta9WpPvOY8Wlnltu2l8OnPyMslMdvL0sY3G6iR33y1OqSAIcUGHdNgHY/dueOEF6N4d7rsvak4pSMRUEIQo4hslKCip4mSDkz6uRiZPzEjqyQanO32vMJzShbMmwJEj5H9aCd3txqy9wYM7/gMJgiC0gYh32Adj1y5jxnPv3kaktE+f6NjhQhxTQRA6HN90/cDeyQx/+G26JSocTk1aih0wBkjPcTmo5gioFLuNFLuNBmcTAEXlB3j93c3MLCsyVna65x5IT4/aZxMEQYgbdu40VsPr29dwSnv1irZFksoXBKHj8U3Xb9lXR7OGBpdT+kBeJgtWlFNT5+DpFeUsWFHujpJemTWA7sk2HE6Nw6mx1R6meuGfwOk0hFWcUi+UUtcppb5USlUopeZF2x5BiFU6dInPWGDHDiNSmppqNDrFgFMK4pgKghAFfOupzDXubxqf3qKu1HfR5GWl1eRmpKKAs04c5datq7kk8yxDWM85p8M+QzyglEoE/geYCowC7lBKjYquVYIQm7R3FFOsOLaW7Cgvh8WLja772bOhZ8+OM7AVxDEVBCGi+BPJ/JyhXg7owlkT2PnUd4xaURfzpmaRlmInL2sAAHabQgHNGkoqa/ntZQO4r2It145JZ+JjP4EBAzr0c8UJFwEVWuudWuvTwGLgpijbJAgxSXsbkDpixqgVp7NVO7Zvh1dfNR7kZ8+GHj0iZG3bEMdUEISIEopYe4qu6bwWV9ZS73CSbEukt6u+9MExvbl5axE/uuZ8Js7/KfTv3wGfJC4ZBOzxeL/XtU0QBB98H5hNYmbGKNb0NKgdW7fC668bzaH33GOMhoox4soxlVopQYg/QhFrf6Jrnq+BeoeTYadqmbF1jSGo991n1EcJgVB+tvlWR6CU+r5Sar1Sav3Bgwc7wCxBiB+sPlwHcmzDiRU9DWjH5s3w5pswZIgxuSQ5OWJ2toe46cr3qJW6GuOp/3Ol1DKt9fboWiYIQjCsjEHx7dI3V3Ey14M2R0m99sYn/PLYZhg02EhBpaR00KeIW/YC53q8HwxU+x6ktf4L8BeASZMmtXBcBaErMycvk2eKKqI3Y9SDNo+V2rABli+H4cONJZqTksJvXJiIG8cUj1opAKWUWSsljqkgxDlmRKJwczX2pASKyg9Q73C6IxSLiip4OCuZJSmVxtP+7NnGzD2hNT4HRiilMoB9wCwgP7omCUJ8EdUZo+Hgs8/gnXeMpZlvvx1sse36xVMqX2qlBKGTck7vMyklR2Mz9Q4nAAN7J7OoqILkXTup+d+/G6uR3HuvOKUW0Vo7gR8Bq4AvgFe11tuia5UgdF4i2Znfpmt/+qnhlGZlxYVTCvHlmLZaKyV1UoIQuxSUVDF2/irGzl/VQli37Kvze86WfXU8kpnArV99xIHk3rwyOi9mZu3FC1rrd7TWI7XW52mtn4y2PYLQmYlkZ37I1/74Y1i1CkaNgltvjQunFOLLMW21Vkpr/Ret9SSt9aSzzz67Q40TBCE4i4oqqHc4qXc4WbCinKxfrGDYvLeZu3gT08b5H4o/uWE/1X/5J4d79ePFb13BwnX7OthqQRAE61ht9mxL9NO8tlmDH/BcrWHtWli9GsaMgZkzITExlI8RVeLJMXXXSimlumHUSi2Lsk2CIFhkTl6mexbp6aZmHI3NABRurqZwczU2V07ETI2MPLiLSZ8XsdPWm7fGXUVq/5SYaD4QBEEIhNXOfDP6+fSKcr9OZrD5z8WVtYEjp1pDURG8/z6MHw8zZkBCPLl6ceSYSq2UIMQ/p5s0GuiWmIA9yVt+nBpS7DaSbYrsw7uY+uU6alL6s+aCq/npjWMjPoZFEATBH5GoG/Ucg+fPyQyWtg8YldUa3nsPPvoILrgAbrop7pxSiCPHFKRWShDimUVFFTRrSFDGqk7l/zWVX8/Idu+3KeiebOO8fRVM+WIde1MG8ub5V5DUs4c4pIIgRI1I1I2a0U9zhTtfJzNYSYDfqKzWsHIlrFsHF10EN9wAyl9rTuwTH5WwgiDEPb6zAHOfWkNuRip97IYMzZuaxTerPyZxRzG7+qWz8vxL6dEjsquoCIIgtEYk55h6jqIy5zl7zm+2hNbw9tuwfj1MngzXXBO3TimIYyoIQgTxHJxfXFnrFtzcp9a455YCpKXYyaeGvxWtYkvqIN7OupQB/Xry6cNTovwJBEHo6nTUHFPPyKzl+zU3w1tvwaZNcOmlkJcX104piGMqCEIbCORw+rJgRTn1DqfbAX1kSRkAjtNOr+PStm1i5YYdZF15EX88PZxeCYkSKRUEoUsRcmS2uRkKC2HLFrjiCrj88rh3SkEcU0EQ2oD5ZL+stJpmjdcTfkFJFQtWlHPa2YTD6b26pcZwTj23XrSnjIurSnnr7KH8z8P/yubERLfjCwRMcwmCIMQjgbQslOWbf3x5Bnfs2wDbtsGUKUa0tJMQV81PgiDEBmZh/rRx6S0K9M0oqa9TauLeqjWTq7ZwcVUpXwzIoNutZ2bt+Ws2iOTgakEQhI7C1LJHC8tC7vRfVFTBgSMn2PbMPwyn9JprOpVTCuKYCoLQBsyu0IWzJgQd42RLMOaS2nyzS1pz5d5ScvZsZdvA89h6wRX8Pv8C925/HalWB1cLgiBEkvaOj5qTl0mCwp1tCoUfXzaMu6uKub3ncZg6FS6+uE02xDKSyhcEIazkZQ1g6eZqkm2K/r2S2XvUQS+7jXqHk/QUO3uPnOLyyo2Mqy5nyzkjKDrvQqaf19/rGv5SWh3VgCAIghCMNjUpeWCeE3Knf2Mjd+xcB+d3Y+WwyXyv6DhzqOp0uigRU0EQwkpxZS0acDg1e486ADh6ykmzhvpTjdxcU8qE6nK2Dc6i6LwLQSlKKmuja7QgCIJFwpG9MbNOgLXo6+nTUFAAO3fCTTfx4K5u1NQ5eHz59rAP/4824pgKgtACz1RVa2kr3/1z8jLds0m90JrJ29cxouoLtgwdzUfnXYA9KYE+dpuk5wVBiAvM5qMHwtSEaal2vqEBXnoJdu0ylhidMMG9y9HY3Olq78UxFQShBZ5i2ZpwmvsXuNZ8BmNYvidKN3PNjmLO/6aCD9NGUTR4HI4m3A1Si4oqOtUTvyAInZNwN2GaD/InGpxeGmg+8C/+8Et44QXYswdmzoSxYwHcK0ZNH9+yATXekRpTQRBa4DtPL1gtlHnskRMN1DucPFZYhmdDvtLNXPvVp2QfruKjIWMpGTLGvc9uU5xuaqa+zsHTK8o7Xa2UIAidi3CvApWfM9SrS99z25FDdez6/XKYmAq33QZZWV7nhVMvY2kcn0RMBaELYTUtD7i77f2uy+xx7GeumlJzsLOnU5rQ3MT15Z+QdXAXHwwZ5+WUAvTrmUy3REOG6hxOiZoKghDTBNJDX6x27heUVHGywYnCu0v/J5PT+e7XH3L9gAS4/XYvp7S9UwH8EUvj+MQxFYQuhNW0fKD9noJoHlu4uZqaOoexXrMHE9N6MmPHx4w4vJsPMyayfvBo976kROVOP+VlDXBvjwVRFASh6xCKAxmKM2jV0VtUVEG9w0lvu+1MSv74cW7f/j4PTurP2Af/DUaObNO1QyGWxvGJYyoIXYjWxKe1/aYgPv7WNsMZdZHgM6fU1uTkW2tXMPTQXorOu5CNg85370tKVPxq2mh31KHY1ZGfoIgJURQEoesQigMZijNo1dEzj5s3NcvQxFGp8NxzcOQI3HknnHdem68dClYjwR2B0tr/6izxzqRJk/T69eujbYYgdCrmLt7kXoY0EL0Smrltx8f027+PlcMvZNs5hngqjFWf0lLs7jEpYEQizJqtWBDF1lBKbdBaT4q2HZFCtFPoSljVn0jrVEFJFX9/ZzNPH9vEpP7dDKd06NCYqv1sL1a1U5qfBEHwiymIuRmpFFfWMicvk6LyAzRrY0WnpmZIVN41pUlNjfy8rpT87B7cetbFbOtrCOn4wSncduG5fpsGZHC+IAjRwqr+RFqnnn17E5d/8g6fJTUz6W/zYfBgoP3D/OMRSeULQhcnUO2UKYjLSqtbpLCamuHJGdnYEs/k8Ls5G5lR9j4ndlTCzTcz6IrJ7n37jzXEVKpIEISuTVsbiCLReERtLf+26yOSmxupmXab2ymF2Kr97CjEMRWELk6g2ilTEKeNM+bkDeydzDGHEzBS8o+/tc09hzS5sYGby9ZwzvHDHLruRhgzRmpHBUGIWdraQBT2xqNDh+DZZ9l38Bivj57Ce3WJgP8JKZ7bO/MEk5AcU6VUf6XUDUqp2UqpVNc2u1JKHFxBiFMCPZGbEc6Fsybw6cNT2LKvDs/SUtMptTc6uGVbEWefOMLyrEtZ1tgXgNyMVBIUTBuX3uWjpKKdgtA+wu2QtTUS6Xmer03B3vu1/8ABo9FJa9Lm/ADboDS3PYEc4Fga6xQpLNWYKqUU8BvgAaAbRsDkQqAWWAp8DPxXhGwUhE5BLBex++tlKiipYsGKcgDysgbQLVHR4NQM6mtn71GjI7/7acMp7XuqnrfOv4yaAYN5zCWsxZW1NGtYVlrNRRmpMfeZOwLRTkEID+GutWxrzajneblPrfEajO9ro+d7Dd7219TAP/8JiYkweza39O/PLVPP3CfQIP9wD/iPRaw+rT8M/Ah4HMjBaLA1eQu4Icx2CUKnI1afdP3ZVVBSxaOFZdQ7nNQ7nBRursbh1GhwO6U9G04ys2w1KaeOsXTUFVSlDqL8iesBQ7DNiKnn0OguiGinIISBWKy1nJOX6aVxvjZ6vvfaV10Nzz8PSUlw333Qv3+Laweqye8KtfpWu/LvBx7XWj+llEr02VcBtBy0JQiCF7H6pOtplxnVPdngDD4SquEkt5StoefpUywdfQV7UwYyfnAKcMbRLams5Ynp2TH5mTsQ0U5BCAOxOL3DtMdzjJSvjdrj2PycobB3r+GUdu8Os2dDv34dbHXsY9UxHQQUB9h3GugZHnMEofMSi8JqYorn48u342hsJlEZTUvpKXb2HXV4pfr7OI5zS9kaujc2UDj6Cqr7GCs37T/W4F5eL8VuIycjNWZLFzoQ0U5BiACxUhoVTNdblB/s3g0vvgi9ehlOaUpKB1sbH1hN5e8DsgPsGwdUhsccQRAiib8CfE/xdDQ2A9AuFdEuAAAgAElEQVSkjfTUXj9O6a1bV2N3nuaN7Dy3U2p23pvL6/VItlFcWRuTpQsdjGinILSRYA1PsVoa5Yln+n7pko/50/3zWV/rNNL34pQGxKpj+hrwmFLq2x7btFJqJPAfwOKwWyYIQtgwBX7BivIWYu4pnkmJKuA1+p6q59Yt75HU5OT17Cns723URaXYbTwxPZv8nKGBa6q6LqKdgtBGgjmf8aAv7nrQ/k5q/vfv7MXOg70mQu/e0TYtprGayp8PXAx8CJiPLq8B5wLrgAVht0wQhLBhCrzCcCRNMfdMhwE0NvkvLE09WcctW9eg0Lw+ZgqHep6pi6pzOHn8rW3AmbRWrKTZYoD5iHYKQpsIVpcfidKoiOjWV1/BK68wYWImi3uM43vXjQnPdTsxSusgHQ6eBxqF+/nAtcAA4DCwEnhJa+2MmIVtRNZ7FoQzmF32zRr62M88j552NrnnkQai/4kj3FxWhEbxxpgp1PYwUlCDPcZGAaSl2Pn04SnAmTEqnts6C1bXe/Y4XrRTENpJRzzshkO3vOxMOQWvvQYDB8LddxsNT10Yq9ppNWKK1roJeMH1EgQhjvDsHj3RYIyAssLZx2u5eVsRTpXIG2OmcLR7H/e+Yw4ndptyO7aeUY1YnUAQDUQ7BaH9mFmfBSvKI+aghkO3TDuXv7ya/NR9kJ4Od90FdnsYLe3cyKojgtBJ8W0cMOud5k3NsnT+wGOHmFm2BmeCjdfHXOXllALUO5xcl51GWoqdX8/I9voj0RVm7QmC0HGYNaVAxJqerOpWsKasOXmZXHKymnknyow17+++28spLSipYuz8VYydv8rSKlZdYQlSXyw5pkqpSqXUziCvryNtqCAI/gkkXIEaB/JzhjJ9fHrA6w3ua2fQsYPcUlaEw9aN18ZcRV333owfnEIfuw27TaEwRkyVVNaKAxoE0U5BCA+eD9bRbnoK1pSV362WB09tp/BoNxaPvBSSk1ucay5cYsW5jofpA+HGasR0rZ9XGdDHdY21EbFOEIRWCSRcwbpWiytrA1+wajezytdyolt3XhtzNfX2XgBs2VdHvcNJv57JPDkju8W1u+KTvQVEOwUhjEQiGxOqdgXU1g0bYOlS3qxL5p/DLuYPH+32e26K3UYfjybUNt2rE2OpxlRrfa+/7UqpvhhF/KvDaJMgdEoiVbwfqC7Kt2vVvH9uRionG7zrQ03OPVrDtO1rOWDvyZuj8ziR3AMwOvmvzBpASWVtwMH54V7LujMg2ikIsU9btKtFy+hnn7H1LwW8dqwHx2+6hbN314dlmkAsL8wSKdpVY6q1Pgr8P+Cx8JjjH6XU/1NKlSultiillrhEXRDiikilZKxGEMz7F26upt7hbOGUDj1SzU3bP6Cue2/eyL7K7ZROH5/OQ1OzKHY5pctKq0OO0AredJR2CoLQOqFqVwstX7cO3nmHV4734sWhuXy6u96tyYGisZJhCkw4mp8cwOAwXCcY7wHZWuuxwFfAwxG+nyCEnUg4blbFzVwq1G7zP0B/+OG9TNu+ltoeKbyencfJbmeK9Qs3V/PIkjJq6hwsK62mWZ9Z6ckTaXgKmY7QTkEQgmBmksy17q1oqpeWf/QRvPsujB7N6Dn/wsB+Pb20MVBAoivWjlqlzY6pUsqmlBqPMUB6W9gs8oPW+l2PeX/FiJgLcUgkHDer4mYW3J/2GKBvuqiZh3ZzQ/lHHOzZjzdG5+FIajnWRGM4o9PGpZOWYnev9CSETkdpp2SaBKF1fDXUiqbm5wzl03l55J+qhDVrYOxYuOUW7rh4eAuNDxSQkAxTYKx25TcrpZo8X0ADsAHIBH4SSSN9+BdgRQfeTxBiFqviZh43dtCZ9Zk1MPLgLq7/8hNqep3Fkuw8GpKSW5xrSzBqTKeNS6e4stYdWRBaJ8raKZkmISYJJdMTruP8HWNmkjwbkYJp6tzFmxj+8NvMfXkjFBXBBx/wYY90Jn/Rm4LP9/i9p2c01hPJMAXG6oD9x2lZ6+vAWGJvhda6rr2GKKVWA+f42fWI1nqp65hHACfwUoBrfB/4PsCQIUPaa5IgxDymqC1yPd37itzcxZtYVlrN2EEpaKC8pt697/wDO7nmq2Kq+5zN0lFXcNqW5PcezRpK51/rXhVFmptCIuLaGQit9bseb4uBmZG6lyCEwoIV5dQ7nCxYUR5US6w2JVk5zt8xZiYpLcXu3has2WhZaTXNzZojhcvh/GaYNIkHt9ipOdbg997SENo2rHblz4+wHWitrwq2Xyk1G7gBmKIDrKOqtf4L8BcwltULu5GCEEUCdfUHEr+CkioKN1cDsHmvt/8zuqaCqyo+Y0/fgbx1/mU0JrZ0Sgf3tVNd52DaOGPmqazmFDodoZ0W+RfglWgbIQie+K94P4NVzbFy3Jy8TBasKOdEg5OCkiryc4aGpGkFJVV0S4DJFeu5XX8DOdPhuuuYc/bugNcQzWwbKoCPF1Mopa4DfgdcrrU+aOUcWe9Z6Gz4ruPsOf6pxCPFbm4/GWDp0bHffEXe15+zq186y7MuxZno//k0QcHOp74T6Y8Vd1hd77kjCCHTNAm4OdBDvU+26YKqKukUFiJHQUmV22HryEiir4YGwzcQkPvr1Yze+CGTj+zi/ofugquvBtWaay14YlU7A0ZMlVL/COF+Wmv93RCOD5U/AsnAe8r4j1Cstf5hBO8nCDGH79O3GSk1V18yMbfbbYoEBVqfySVP2FfO5ZUb2Jk6mLezLqEpIbHFfZISFY1Nmm6Jyh1ZEKzTkdoZjkyT6zqSbRI6jGjN5rQawSwoqeLRwjKaNUYm6sJz+Y1tJ18d2UXGjOso6DOSRQuKwj6TOpJEao52JAiWys/DzwzZAERUyLTWEgcXuiyeguLpgAYSWXP7kZOnafbwRS7Yu51Ld21ix1lDWPGti2l2OaUKsLmc0enj01k4a4LUk7aPmNBOV6bpIYxM08lI3UcQ4oXWHGLPbJN7LN4Vw2HJEi47Wc1lj30XLruM3AVFcaeP8VTvGtAx1VoP60A7BCHu6Kgn0ECC4imynmn94spacjNS3fWlADm7tzJ59xa+7D+Uld+6GK3ODORQChpdY6TeLz8ASG1Ue4gh7ZRMkyCEgDvblJRAgoKbxgwkf+962LYNrroKLrkEiE99jCebrXblC4LgQ0c9gQYTFN96UtMZdTulWjN59xZy9pTxxYAM3h2RS2JCAp6LPqWn2Nl71AHAiQajJrUrLoPX2ZBMkxDPtOXBv73BglzXynZojWpqoteyQrb2Os4fks4jL+lc8l3HtTYNJRaJJ00PecC+UmqAUmqI7ysSxglCLBPqgOS2Lk1nzrsDGDt/FWPnr3IfazrHfkvwteaSXZvJ2VNG2cBM3h2Ri1beTinAvqNnzm+S6sKIIdopCNZpy8pI7V1NqbiylmYNPRLgrqpibut1nN93G8HqlOEtrrlgRTk1dQ6eXlHu3ibLjIYHqwP2E5RSv1ZKHQa+ASr9vAShSxHqgOT2Lk1nztyrdzh5tLCMgpIqt3P80NQspo83xjrZkxKYPi6Nq3ZvZNK+7ZSmjWR15kVe6XtPkm2Km8anG6kr1zWE8CDaKQhtoy0rI7VnNSVz2H5qEvwx4Ut+NSqZMf96N1fNviHoNT2f5VvTcnFcrWE1lT8X+HfgaeAJ4EmgGbjT9XVBRKwThE5Ea81Kvtv91Y2+X36AOofT3S1qOsYFJVUUV9YyfXw6K7dWU/fmMsZ98xWb0rNYmzEx4FgTBTx242jyc4aycNaESH30roxopyC0gbaknttyjmc51KkTp7inch0Xj+kJN90E48eTj/9U/bypWS10u7U6znhqQIomluaYKqW2As8BC4FGYJLWeqNSKgl4F1gbQ4OkAZljKsQ/Zmd8gsLdIfrE9GzAcEoH9k6mdG8dyTZFN1si9Q4nSjczpeJzsvdXsH7QKD4eNh6Uwu5xDIBNQY9k47l03tQsEckQCGWOqWinIISfcNafmjrb39bMjC/WcuNZzYx94D4KTvZxHw+EpdE1WvNbYwWr2mnVMT0BXK+1XquUOg1cqbX+xLXvJuAZrXVM1UqJuArxjiliA3snu1du6mO3sWX+tQAMm/e2+1gFoJu5Zkcx5x+opOTcMXw6ZAy2BOWuKTXnk5rH97bb3MvxtTZsWjhDiI6paKcghJlQBuX7npOgYNq4dHcWqqj8AMnO0/yxeTs59ga45RYYPdrrHhpCvp/QEqvaabX5qQ6wu/5dDXzLY58NSA3NPEEQWsOsYa051uDepjhTp+SJam7iui/Xcf6BStYNHcenQ8eCUl6NTo1Nmj52mzF037XNs3ZK6p8igminIPjQXq0JVEsa7Lpz8jLd2adlpdXU1DlYVlpNw7ETXL1+FYcrquC222D06Bb3aE/tqhA6VmtMNwGjgFWu16+UUqcAJ0bN1MbImCcInRsrKak5eZk8vaIcDTw0NYsFK8qNtD2GgzmkTxKXbf2U7NP7eW3YBDYMHhXwfqedTe7xUMP796TwR5e490n9U0QQ7RQEH9qrNf5qSVus1uSz33z/TFEFOa5lnC9N6063l1+i76l6/nvopVyflRXwHqKJHYfViOlCwFw55JdADfAS8AqQBPwo/KYJQmwTjgijlY78/JyhlM6/1p3CN+tENZDY3MSFn69h2IHdfDP58qBOKYDDqd0zS7fsq/P6HLkZqRIVCD+inYLgQygRSKs6u6io4sxqTQGua2ahFs6awKcP5PCbE5uY3BeWj7qcsVdeSEFJVYuRfO2xqa3Hd3UsOaZa6/e01n92/bsGuAgYCYwHRmqtt0TOREGITdo7Mw+sCbSnqC3yuJetycmNX3zIuQf3sGzwBBad6O/3fHtSAtPHp5Nit9HHbmP84BR3nZXn5yiprA1p/JXQOqKdgtCSUEbtWdVZU0ufmJ7d+nXr6+HZZ6Guju88/TM++NP9LJw1wWskn+/9fHU4FO0Px9+KroTVOaZneb7XBhVa6y1a68bImCYIsU046o48h+cHeqI2Re3nS8o4p3cyCkhqauSm7WsZeWw/H2ZNZkvayID36NejGwtnTXBHXQt/dAk7n/qOezyU1E9FDtFOQWgfVh/eF1ntdq+rg+eeg+PH4a67YNgwr3uZD/C+tffmQP1nXKVXaSl2cjJSLUVCRWNDw2pX/mngHeAF4C2t9elIG9ZepLNUiCc8O0AfyMv0qjudu3iTe4nRBAW/vn4EGxf8L2l1B9k48XKm3nktzxRV8E2do8V17UkJPHbDKImChpEQu/JFOwUhRFqrvffd769L3+81jhyB558Hh8NwSgcPbtUW89opdhs9km1ezm9bpgN0ZcLdlf8LYDjwGlCjlPqTUurb7TFQEIQzeD5Re6Z9PJ1SgAsG2Jn11UfcNSiBotGX8FGPQbz6+R73GveeDO5rp2+Pbh35MYSWiHYKQoi0lvr23e8vItniGocPs3H+7/ifldtYkp3n1yn1Vwvqubqeb/mBREIjg9Ua06e11mOBicCzwI3Ah0qpr5VS85VSIyJppCB0dvJzhpKTkcqjhUa63hS7ZaVnnNLkxgYmfvQ27NvH2J98j639jPGXm/fWuRuilOsFUF3nkLqmKCPaKQih05rD52+/b+7XTMufaHDyxsqN8NxzrPtqP89lXs5vth7ze11/DnGwethQl6UGaYSygtWIKQBa681a6/8AzgWmAp8A/wF8EQHbBKFTEUiQzO1LN1fTrI1ueTMt1M1m/Iqe1wNmlq2h28ED/LrXGArqe7S4fh+7jSdnZPPkjGzSUuxMG5cuT/MxgminIFinNYfPd38gh7J7so2kw4f45g9/Aq1Jm/MDbIPSWnV4rdaOtgVphGodq3NMvdBaN7tWNDmFscxey7+SgiB4EWh2n7ndblOcbtJe3fKOxmb66dNM/vg9+jqOsWzU5VQd6EZCYZnXtccPTvGaSSo1pbGJaKcghJ9Aa9Q/OK4P1R++wsUjBsC993JL//7cMjXwdczZpWbtaLA5q6Eui2oen+uaoSoBg8CEFDFVSo1QSj2ulPoa+BDjyf/PwJhIGCcInYncjFQSFAzsnez1NG4+pT9242h2PvUdLnI9redmpHKevZkbNr1LiuM4S0ddQVU/w2lt9slbbdlXx9zFmyRFFKOIdgpC22kt/e03wlpdzc1bi/jRNeczcf5PoX/LcXrmdX2100rtaFtHRslYvtaxOi7q35VSxUA5MBdDWK8GhmqtH9Zab4+gjYLQKSiurHWn6n0FzfQz5y7exM+XlBkCVlrJ9RtW0ff0SQpHX8mevucEvHazhqWbqyVFFGOIdgpC+wk5/b1nj9F9b7fDffdBqv+Vf83rFvpop5Xa0VAbn6RRyjpWx0U1AqsxRp4s0VqfirRh7UVGngixRkFJlXs5vKLyAwDMm5rlFsc+dpu7iamP4zh3ln+AOnWS1ROv5tiANHIyUlleWo0zwK+s3abo1zOZnIxUiitryXV9tZpqEqwR4rgo0U5BaCemdlqaU1pVBS+9BL17wz33QEpK0Ouay5gmKKwN5xfaTLjHRZ2rtZ6qtS6IB2EVhFjE7LxfVlrNaWcT9Q6nuwsfziw1mnLqGPdXfACOUywffxX3zrqUB/IyKSo/4OWUKp/rX5edxqcPT6G4spaaOgfLSiWCGgOIdgpCOwg2PL9Fin/nTnjxRejTB+69N6hTCoYmPzE922vFKM9rSgd9dLA6Lqom0oYIQldgWanRed/g1CQo3Kl9k7NO1fEs2zh5wsHr2VPY28NIQT2ypMztuJr4Bk7fd0VhzZSRdOVHH9FOQTiDFUfP9xgzo7RgRXmLc71S/BUVUFAA/foZTmnv3pbuHazDXzroo0NIzU+CILSPaePSUUBiAnRLVNgSDOdUAWedrOOxw5+jmptYMnYKB3ulkp5i5+dLylo4oZ7YbUbs1DzGFNqFsyZIkb0gCDGDFUfP85iCkipONjjpYzcGCPmeaz6E32A/xp//9Uk+O6YMp7RXrzbd2/OaD+RlSl1olBDHVBDaSFvSPBdlGBFQZzM4nBpns7H9rBNHuGXrasqq65lrH8f+7v0A2He05TKjJn3sNn49I5vHbhxNWoqdeVOz2v5hBEEQIowVR89zluijhUamqGeyjXlTs1qcm58zlE+np9P/naXsSuzFgz0nQA//E9j83bugpIqx81cxdv4qt457RlB9o6mS2u8YLDU/xSNSwC9EmtbWSfY35848x8SmoN+xWm4pK6IxIZE3xkyhuV+qV9peYURDB/e1s9flqNptir49k6WxKQqE0vwUj4h2CrGAqZVBm5LKyuDNNylusPNQ8hh+cO2okPTQU4+trHffmuYLwQl385MgCD609vTvL3VkLpPXx27DpqB/3SFmlq2huVs33ppwNY7eRrH+9PHpJLi6m5Tra5M2toMRbZXaJ0EQOiumVvZKDrAOUGkpvPEGnHsuuY/9mLWPTQ35Id1Tj4NFcc1IaW5GqqT2OwBxTAWhHQTLN/hzXPNzhnJl1gCONzgZUHeAm7cV4bB14/3c6/nst7fTzZZIvcPJ++UH3N2i08alu9d8NsdMmURy6TxBEISOxnQCAbonGyP0WjyAb9oEhYUwbBjceSckJ7fpXvk5Qymdfy1b5l/r1ZHvO3BfhuN3LAGXJFVK/SOE62it9XfDYI8gxA2Blhg1MWuUPJm7eBOFm6sZXLefadvXcqJbd5aPv4pLRw0h96k1nHY2AYbD63m+mUJKsduw2xQNTs1N49Pdo6GCLZ0ndCyinYLQdkxdfbSwjGnj0lsu37l+PSxfDpmZcPvtkJQU8vKgrd3bnJ5i6mqgJU+FyBDQMQXy8A4I9QVSACdwGDjLdX4dcCRSBgpCrGKKlRm1tCKKy0qrOfdoDdO2r6Xe3pO3x1+Fs0cvCjdXA2dmkw7v35OCkioWrCgHIC9rAO+XH0ADj9042n2fuYs3say0mpwM/yubCFFBtFMQ2sicvEz30HszQummpARWrICRI+G228BmuDCtBQlCubep6Z4Osb8ggxA5AjqmWuth5r+VUpcALwM/AN7QWjcppRKBmcB/A3dF2E5BiDlMsTKjmb6iaD7Fe67AdG1SPedt/4Cj3fvwxug8HAl2tEejk+nNbN5bR82xBncTVEllLd2TbS3uYy5zuqy0mosyUkU8YwDRTqErEK4opS/mtVpEKD/5BN57D84/H2bOhMREL41tEVltg83igMYGVmtMfwc8pbV+VWvdBKC1btJavwIsABZGykBBiHUCjSF5tLDMax3mV154j8z336a2RwqvZ+fRrU8vxg32XpkkKdGImdqTEpiTl+meUXrkRIPfwvs5eZnuQf3SCBWTiHYKnZJIDp9vsVb9hx8aTml2ttsp9bTBau2nDMyPD6w6pmOAQD/JHUB2eMwRhNjHd5ZdCxHFEMBmj2TuiEO7ubz0Aw727Mcb2VNwJNkpnX8tOw+d8Lp2YoLCblN0SzR+Nfv2NIr6HU7tV3w9l9ST+qeYRLRT6JSEc/h8wPmgWsP770NREYwbBzff7HZK22KDDMyPD6w6pjXAbQH2zQL2h8ec4Cil/lMppZVS/TvifoLgDytP3aYATh+fziWnqrlxxyd80/ss3syeQoOtG4DfTnpHYzMOp3Z3oloZZ+LPMRZihpjQTkEIN+HUHb+aqjWsWcPWl5bys68TKDhnPCSccVnMtPwDIZQSiFbGB8GanzxZCPxeKZUGvIYhpgMxBPdaYG5kzDuDUupc4Gpgd6TvJQjBsNKhaQrfihdX8qCjnFf7DaRwxKU0Jia5j/n5kjLsNiNC6nB6D55KULgFV0Q0rom6dgpCLOJZ79lCU7WGVauguJhnG8/mzfRxfPzBTvInZ7jPD1fDkxB7WIqYaq3/AHwPIy31D+Bt19fRwPe01s9EzMIz/B54kOCjIwXBMqEsL+d5rNWn7qV/f4uJmz7klUM2Ts68nSZbkrvr3sTh1HSzJdLHbiPFbmP6+HTSUuyBVzoR4ooY0U5BCAvhWpLTswbfdCzdmqo1vPMOFBdDbi6T/vVO0vp2bxEIiERaPtTPJ0uURgbLA/a11n8Hhrpeua6vw7TWoczsaxNKqWnAPq11aaTvJXQdQimE93espyjNXbyJ4Q+/zdzFm4ydn33GFV8Vs6tfGivGXMnqiiM0a++nKrtN0cduJC3qHU40Rpd9KKkpIfaJpnYKQjgJV/OQWYOfoHwWCdGatf/9d/72u1coSs2Ea68lP3eY30BAJNLyoXw+X+daCB8hrfykDfZorT9zfQ1b9FIptVopVebndRPwCPCYhWt8Xym1Xim1/uDBg+EyTeikhPLE7e9YTxEzBzIv3VzNXd/9Pf/34CJ6jM3mowl5OBMS3YPzzYhpUqLisRtHs2X+tcybmkVaih1ARK6TEkntFISOItAEEitRQ8/jzOs8MT3bvUjIH1d/BUuXsmPlh6wZkMUjx885sx5zK7QncunPLit/Ezyda2mmCi/Kqj4qpSYAvwAuwxgYfZHWeqNS6tfAh1rrlRExUKkxwBrgpGvTYKDadf+aQOdNmjRJr1+/PhImCV2MQLPvCkqq3HVRn1XWUri5mkl7t3HJrs3sOGsImy/KoykhkZo6hzsyerqpGUdjM2CMhHrshlFeQ/RLJGIa8yilNmitJ4VwfFS0s62IdgqhYM5xTkuxew/Dt3hcQUkVf1z9FU8nfM2lDTWsHng+vzjaPyQdtGpDOM/11H/Ra2tY1U5LEVPXkOhPgSygwOe8ZuCHbTHSClrrrVrrAVrrYa7B1XuBicGcUkEIJ4HSO751UTm7t3LJrs2Unz2Md7K+zb5jjRyod6AwnE7A7ZSa/35kSRn1Dif1Dqesw9wJiaZ2CkJHYDXKGOi4/EmDWTfiCJc21MBVV3HVv94esg4Gs8E3mur7vq21qtLhHzmspvIXAKswCvZ/6rNvIzAxnEYJQizRqnBpzcFlK5m8ewvbBwxn1cjJaGX8apl1pSWVtS1OsycleNWcWhFVIe4Q7RQ6NaE4aC3ys04nvPoqW99dx/37z6Ig6dyw2+AbWPB9Lw5m7GHVMZ0I/J+rLsr3/9Yh4OywWhUEV+T0UEfdTxB8hcvLWdQa3nuPG+sq2HpOJu+OyHU7pSYKGNg72f1vgBS7jW6JCdhch04fn05+ztAWjqisVBL3xIx2CkI0aaFljY3wyivw5Zf8LnkEq1OG80xRRdgfxn0DCzJkP/ax6pg6gB4B9qUBdeExRxBij0DO4tPvfMH37vgvFj7+HO/1GsKa8y5yF+vbEs44oRrYsq+OeoeT3nYbaSl2GpxN1DucNLky+2ZE1Ve8RUTjnqhrpyxMIsQCXlrW2AgvvwwVFTBtGlffc4N7X7gfxn0DCxIhjX2sDtj/GJirlFrqsc18+v8uUBRWqwQhhvAd5DwnL5Nn1uzggrJ1ZO4tZ2N6Fh9mTPTqIL1hbLq72zRBwbRx6V6NTWPnr8LhdJJsU/TrmewemZKbkeo+DpAB+/FPVLVTFiYRYgW3lp0+DS+9BFVVMH06jBtHPnjpXGsLmAidG6uO6S+AT4BS4HUMYZ2tlPodcAFwYWTME4To02JVkuZmLtzyMcP3fsXng0fzydBxjD+3L6V769weR1H5AeZNzQrYtem7z+wMNRughE5DtLXTXJhkaWsHCkLEcTgMp3TfPmPd+zFjgJaTT6w+jAeamNLRxIodnQWrKz+VYow62Y8xU1QBP3Ltvlxr/WVkzBOE6OOV+mlu5vOF/2D43q8oHjKGT4aOA6W47cJzeXJGtjt9f8zhBODTh6fwWWWt9/B9n2sWlFRxssFJit0mUYJORjS1UxYmEWKKU6fghRcMp3TmTLdTCrBgRTk1dQ736DyrtDXtH+46VukFCC+hrPy0UWs9BeiNMUu0j9b6Sq31plZOFYS4p6CkiouffJePFvyJkfsr+WToOIqHjHWn7x9ZUsbjb20j0eWZanCLlDl8f1lptV9BXFRUQb3DSY9km98GKCG+iZSfeVIAACAASURBVKR2hmNhEtd1ZHESIXKcPAn//CfU1MDtt8OoUX4PO+ZwhqR7ba3BD7cjKb0A4cXqHNN/KKUyALTWDq11tdb6pGvfUKWULK0ndCp8ncM/rv6SiZ+t4cs1xZx35818NWI8fVxr2ycowxF1ODVOVy7fc6m9sYNS3HWm/gTRV9Tk6bvzEGnt1FpfpbXO9n0BO4EMoFQptQvDId6olDonwHX+orWepLWedPbZMihAaDstHqxPnIDnn4eDB+GOO+Bb32pxzrypWW4dtap7Zvq8LQPuw+1ISkNVeLEaMb2XwGNN+gOzw2KNIHQAViKSpnP4yJIyJjz2DjN3fMKIw3v4csK3+c99PdEYYnpRRiq9km3YkxKw2xR2m6KP3cYT07MpKj9ATZ2DykMn2PnUd1g4a4JfQfQVNXn67lTcSxS0UxYmEaKF14P1sWPw3HNQWwv5+ZDpX9Pyc4byxPTskHQv2AN8axrfFkdSMlkdh+VUPn5m47o4BzgVBlsEoUOwEpGck5dJgoLEJidXbFxDYsUOVp93Ea/ZBrtXanr8rW08Wmis3NSvRzfKn7ie8ieuZ8v8awGod9WZNjibAOtP+PL03ekQ7RS6DOaD9U9yBhpOaV0d3HknDB8e9LxQdS/YA3x7sk6BHFCzDvbpEOtghdAJ2JWvlJoBzPDY9CullO9g++7ApcCGCNgmCBGhRZe9H/JzhpLQeJqy//4z6ccPcOI7N7K1ro/XMQ5X3j5BtVy1aZGHICbbEgFD2OodThasKBensxMTi9rpipoKQsTJzxlK/rdSjPT9yZMUjr6CBS9/zZw8FVbdM69laq3ntefkZbJgRTknGoya1dbu69lV7zse0JdAT5lC+AgWMR2CIZyXYvwsxnu8N19jgHXA9yNrpiCED0tP5g0NNL/4Ev0Pf8OxqTfws4fvQPkcYrcp0lLsPDE9u8W1cjNS3f++MmuA1z7f6widDtFOIa5pa9q6oKSKqx8rZMP83xpd+Pfcw4LtpyxFL9tyz0CR0fycofRItlHvcFqKmnpeJ1Akdt7ULNJS7MybmmXZPqFtBHRMtdZ/0FpnaK0zMIYzTzXfe7yytNY3y7gooVPhcFDyq4XUbKvg7ZHf5s9HewFwk6vRafzgFNJS7Dx242j3zFFfQS12reQEZ1Z1MoXtIRG2To1opxCPeDqGbU2FP7d8A5d9vJzi8hqYPRsGDWq1Zt68r5kqN+9pxVENdu1QavU9jw0UuJASq45DGUs4dz4mTZqk169fH20zhDjAazjy2AHwwgv88eWPWXLexXzd/1ymj09n4awJAc83h+N7LqmXm5FKUfkBFPDQ1CwRs06EUmqD1npStO2IFKKdXRNfHQu0OEhADh5k438tZN2Og6Q/8H1uvt7ar4h53z52Gz2TbS0WHUlLsbe66IgMuI8PrGqn1ZWfUEolABdhpKnsvvu11v8MyUJBiBHM6MDCZZvZ89T7TB2YyKrsy/m65zmk2G0snDXBr/CZ287pncyBegcDeyfzaGEZzdqIkppNUELXRrRTiAfm+DijVhw8UwMfHJfCzdveZ+KQfkz8xVwIMnLMV0t97+vPntZorS5UHNf4wuoc01FAOcbSeouB53xez0bCOEHoCHIzUunVeIqp61eRWHuYecnZ3HHXVV5pd1P4Hi0sc6eWzG2le+to1ri/ms1QwVJRMnqkayDaKcQLVlLVcxdv8lrFblFRBU37qql+5i+QmAj33dfCKfXVOn9lAv7ytqGkzltL28fKClGCNayOi/pfjOjqbUAWxuBmz1fwORCCEMNsKd/LzVtW0/vUcQpHXcG+1HS/s0UTFDRreHpFOblPrSE3I5W0FDvJNqOdKdmnGSqYGMoQ/S6DaKfQafBcxQ7goexe3FexlsnfGgj33gtnndXiHF+ti8SCIq05sbGyQpRgDaup/InAvVrrNyNpjCB0OHV1/KZ+A+sTGtl/6+00HbfzkCvaaaZ+wBCoaePSKams5USDk5o6B8tKq3liejZAyKmoUNJUQlwj2ilEnXClsqeNS2dZaTXTxqXDnj3MKCtiw6hBPNRrIv+y4xj5OaktzvHVOt8ygY7QQqulCb6ITkcHS81PSqmdwByt9fLImxQepIBfaJWjR40B0KdOGbP2tp10C7dZeJ9it3GswUmzxl2EP3fxJgo3GxEDK4X5QucilOYn0U4hFgilkcgSu3ZBQQH07k3eoaHsbEgM6dpS89k1saqdVlP5vwf+XSmV2D6zBCFGqK2FZ5+FhgaYPZsF2076TTdp8KobhTOjoDy3SS2SEADRTiHqhHWZ45074aWXICUF7r2X+68f1+LaremhpMiFYFhN5Z8NfAvYrpR6D6j12a+11r8Mq2WCECkOHYLnn2dT5SEe6TORu/Y0Bkw3FZRUeW03a0uLyg94XbK1rlBPJFrQpRDtFCwTKW1oLZUd7L5e+85qhMWLjVrSe+6Bnj3Jz+kNeK/A1JoeSopcCIbVVH5zK4dorXVMRQQkHdX1aE3UC0qqeGHZ5zx5bBMTz+3L1KMZfNHU3Wv+qFlTusC1HvI8j678kw1O6h1OdyTVMzVWUFLF0yvK0a5zgv0RCHtaTehQQkzli3YKlomWNgS7r7kv5/RBXum3BwYMgLvvhh49WhzTx26jR7KN3IxUSiprQ5uDKnR6wprK11ontPKKKWEVuibmU7rZNV9QUkVBSRVj569i7PxV/PW1dVy27m0+rjgM993H3dMupI/dxokGp9eqI4uKKqh3ON3L2ZnXBdxOrG9qLD9nKN0tLoEX1rSaENOIdgqhEC1tmJOX6dZC3/T7nLxMJjv288jxLXDOOUak1MMpNY9JSzFG9NbUOSiprA3aJS+lT0IwZOUnodNgpt1P+IlsDjh2mDu+XEtCcjcG/fgHzLxmPOD9pG+SlzWA98sPuKOf4L/r3jdCa94/JyOV4spaSdV3UmTlJ6EzEjBqWlYGb74JgwbBnXeCvcUaEW48S58kayT4YlU7LTumSikF3AhcBpwFzNdaVymlLgd2aK2r22NwuBFx7br41oU++8pH3LCliEvGDOaCx34C/fq5ncrcjFRWln1Dg1OTnJSAo7HZslgGElcR3c5NqI6paKcQD/h1KktLobAQhgyB/HxITo7cvYROT1gdU6VUP+AdIAeoB3oDF2qtNyqlXgRqtdZz2mlzWBFxFQDYvRtefBF69eK10Vfy288OMMdVT2o6j/vrHTS7fg3SUux+I56ejmxxZa27AUoBD/nUlIrodm5CrDEV7RTik40b/397dx4nVXXmf/zzsImggAgoIpsiIosgtoC7ohGJC24oIIhmJv5iMm4zSdRxktFJTNRMJomZ5JU4iaIoKqgoxgUFFBc2UZFFQFoWZZN9k7Xp8/vjVGPRXVV9u7uq7r1d3/frVS+o5VY93U0/PPeec54Dr7wCHTvCkCHQoEHYER2gBaTxlO12Ub8B2gJnAi0AS3puEqDLQhI9y5bB6NHQpAnceCO/nbXuwDzS5DlVJ7dpigEN6xm39u/EjGWbKmw/WjYH9eU5qw8019+2u4RGh9SrkBirspWe1HrKnRI/H34IEybA8cfD0KGRKkrh23z8UGKRqtQuQQvTQcC9zrnpVNzW9kt84hWJji++8L32mjXzW+U1aUK/js2pY9C3Y3OG9W1Po8RipWUbvsEMdpe4A0Vr2faj5RcylW07ennPY7SASYJQ7pR4mTEDXn0VTjzRXymtXz/siNLaU7Jfi6hqoaCF6WHAqjTPNeTgqwAi4VqyBJ55Blq08EXpYYcBvjF+qYOZiQb56ZroD+vbnst7HkMdg6MOP4R+v55M/y6taN20IT+/rBvT77mA3w85RVdFJQjlTomklCvjP/gA3ngDunaFa6+FekFbnefX3QO70LppQxrUq6tG/bVQ0MJ0MXBRmufOBeZlJxyRGlq0yDeAbtUKRo6Exo0PPJWqxdP0ey44kOR+eUX3A4VmWRE7d9XWQO1PRNJQ7pRIqrD70tSp8NZb0L07XHMN1I1uJ7PyuVsjV7VL0NOhPwF/MrOtwJjEY83M7CbgX4CbcxGcSBBlE+GvqLeZ5hP/Qc8+J7Gsy7n8/vfTDmrlVL61U3IT/fKr58t2Jumb1Cg63edqAr5koNwpkXRg96Xzj4cpU+Ddd6FnTxg0COoEvWYVTFg7Wkk8VaVd1IPAj/FDT4afL1UKPOycuzdnEVaTVpYWjn6/nkyzJQu5eMl0Vh3egpmnX8zeeg0OatlUvoVT2X2gws5PQROd2kIVpmq0i1LulGhyDiZN8kP4vXvDZZeBZX92iXKlQPZX5eOcuxs4HvgB8B/AD4ETo5hYpbD8/Ng9XP3lh7TsfiIzTh/IDy7qWmHYPtX9Jg3r0bRhPW7t36laqzy1g5MEodwZb7V2lyLnYOJEX5SedlrOilJQrpSqqdLMZufcCuD/chSLSNV99BHf/WIWjLwQhgzh+qQVpOWvfJaNDZQNKyXvaV82rF+VfdA0jCRBKXfGV/JczFrz++4cvPaabwvVrx8MGJCzohSinys1LStaqjSRxMzamtkZZta//C1XASZ99q1mttjMFpjZw7n+PImBWbN8A+jOnX2vvQxtTZL/c6kw6Z9vV3mWbUEqkk1h5k6pmVp3ta+01OfNDz+Es86qclEaxSvINY0p1f8JEp5AV0zN7DjgaaBP2UOJPx3fzpnK2RI+Mzsf3w/wZOfcHjNrlavPkpiYNg3efBO6dIHBgw9aQZrq7PfARP/Efy7Jf4fon9FLPIWdO6XmalVuKC2Fl1/2W42eey6cd16Vr5Tm+gpyda5e1jSm8v8/SLiCDuX/DWgH3AEsAvbmLKLUbgEedM7tAXDOrcvz50uUvPceTJ4M3brBVVdVaGuSKkmV/8+lsuSloR3JkrBzp4i3fz+MHw/z50P//nDOOdV6m1wXcdUpMmsaU606+agFghampwE3OudeyGUwGXQGzjazB4DdwI+dcx+GFIvkWHJRCHxbIPZpB1OnMu+pl3h6VzNOHlDEsBS99rKROGvlvDIJQ9i5U8QXpc8/DwsXwne+A2eeWe23ynURV538rcKydglamK4kx2f6ZjYJODrFU/fi4zwC6IdP9GPN7DhXrteVmd1Moi9gu3btchmu5FByUejA/33yEobtKIb33mP0nuaMO/YUpr6zlGGnd6xwfDaSVC6uCugqbEHKee4UyaikBMaNg8WL4eKL/WKnCFORKUEXP/0KuMvMGlf6ympyzl3onOue4vYyPrm/6LxZ+B6ALVK8x6POuSLnXFHLli1zFarkWPJig9v6d6J1k0P4VePVfgj/1FPp9aMbOLpZI/p2bJ6zSfhlO4tkM0Fqgn1BynnuFElr3z6/E97ixXDppZEvSkUg4BVT59xoM+sCLDezGcDmii9xI7Me3bdeAvoD75hZZ6ABsCGHnychSj5jHjNjOf0+n0WLeuvgqotg4ECGmTGsX4cDTZvjMtyuCfaFJwK5UwrV3r3wzDOwfLnfzemUU8KOSCSQoKvybwTuAfYDvak4NFWV9o/V8RjwmJnNT3z2yPLD+FL73PHMx2x/4SV6rC3mb5178oeBAw9aQRq3Qk9DVIUnArlTCtGePTBmDHz5JVxxhd9qVCQmgs4xvR8YD/yTc25LDuNJyTm3Fxie78+VcIyZuYI/TvqcHh9Npce6pcw6thuX3nxdhbYmKvQkBkLNnVKAdu+Gp5+GVavg6quhe/ewIxKpkqBzTI8E/qzEKtmQqRnymJkruPfFufSc/TZd1y1leruTmdWhJ8P6daj2e4qESLlT8mfXLhg9Glav9v2dVZRKDAUtTN8HTsplIFI4Mi0C+t9Jixm4eBpd1i/ng/Y9mdmuB40b+h2dxsxcwcn3TeTk+yZWKEAzvaeKVgmRcqfkx86d8MQTsHYtXHcdnKR/dhJPQQvT24Hvm9n1ZnakmdUpf8tlkFK7pN3ir6SE37jF9NjyFR+deBptLruI1k0bcldim9AHX1/Ett0lbNtdUqEAzbRtoFbDS4iUOyUrMp5g79gBo0bBhg1+e+bOnfMen0i2BJ1jujDx55NpnndVeC8pcCnnhpaUwHPPcWbJRs58+DZu6dMn9cEJ5QvQTPNN47ZISmoV5U7JirSbfmzf7q+Ubt0Kw4bBcceFF6RIFgRNiP+FVo9KlpU1nL/9nPYMXTodli6Fyy6DU09N+fq7B3Y5UGBWZdGTFklJiJQ7JStSnmBv2+aL0u3bYfhwaK88J/EXtI/pfTmOQwrQI1OK2bhpO8W/e5S5R+zjNw27MLCkBcPSvF4FpsSNcqdkS4X8t2WLL0p37oQRI6Bt2/CCE8kizW+S0Jx57GFcteBtitjGw4d25b3Gx9Z4HqgWOol8y8xuNbPFZrbAzB4OOx7Jkk2b4PHH/Sr8G25QUSq1Storpmb2c+BvzrnVib9n4pxzv8huaFKr7d7NkePH0nD7RkZ3Pp9Lh17IFynmgabbXz7d42nnYYnkSVRyp5mdDwwCTnbO7TGzVrn4HMmzDRv8ldL9+2HkSGjdOuyIRLIq01D+fcAbwOrE3zNxgApTCSbRa+/SlvCr9hdw+ZD+aYfpywrN/3hpPsCB16QrQLOx0Cld0SsS0H1EI3feAjzonNsD4Jxbl6PPkXxZv94Xpc75ovSoo8KOSCTr0g7lO+fqOOdmJf09061u/kKWWPvmG9/WZN06Tv7xD3j2dzdlLP5u69+JOgaljoOG+cvaQ/Xt2Pygofthfdsz/Z4LalRQqr2U1ESEcmdn4Gwzm2lmU83stBx+luTa11/73GkGN95YEEWppmYVpkrnmJpZAzO73cy0hYTUTFmvvY0bfa+9E06o9JBhfdvzyyu6V+hRWlaAzli2KetFZKaeqCJB5SN3mtkkM5uf4jYIPyJ2BNAP+Akw1qzcvr7fvs/NZjbbzGavX78+V+FKda1Z43Nn3bq+KG3ZMuyI8kIXCQqTOVd5JxMz2wUMcM69m/uQsqOoqMjNnj077DCkTFlbk23bfK+9jh2z8rZjZq6oVgupbH22hvwLj5l95JwrCvja0HKnmb2BH8p/J3H/C6Cfcy5j5ancGTErV8JTT0HDhn74/ogjwo4ob8LM75J9QXNn0FX5CwF17ZXADhqC2brVn+3v2OHbmmSpKIXUQ/f5Gv7R2bwEEGbufAnoD2BmnYEGwIaQYpHq+PJLGD0aDj3UXyktoKIUsjM1S+InaGH6c+BnZtYjl8FI7VFWtI169RPf1qSs1167dnn77FwXjBrylwDCzJ2PAceZ2XzgWWCkCzJEJnlR6Qn08uX+Sulhh8FNN0GzZnmNTyQsQXd+ugs4DPjEzJYDazh4NxPnnDs3y7FJjPXr2Jx3Zyzih6tmQ+NWvtfeMcdk7f0zDaPnawtSNfyXAELLnc65vcDwXLy31FzG1nZLl8Izz/hidORIX5zmmaYqSViCXjHdD3wGvAd8BZQkHiu7leYkOomtTz76nKvmTmLZ2q0+sWaxKIXMV0U1/CMRotwpKaUdcVmyBMaMgebN/fB9CEUpaKqShCfolqTn5TgOqQXKzrB/0qsZg+a8xS4HL/f6DncefXTWPytfV0VFakK5U9JJOeKyaBGMGwetWvmpT40aVfo+ubqyqRwrYQk6lC9SqUemFLN/1RrWvPsc5510NP/epDc3X3ZqTj4rudF+8n0RkVj67DN4/nm/k9OIEX4VfgC52u0uqlOVNMWg9gs6lI+ZtTGz/0n0ultW1pvPzO4ws765C1Hi4q4eh3Nj8VROP/Eoet/3r7zxy6tymjg01CRxoNwplZo3zxelxx7r5+MHLEqh8BZhKu/XfoEKUzPrBswDRuC32WuHbz0C0B64PSfRSXx89RVXzptMv5Nac1eTIsYs2Z6Vt820crXQErLEj3KnVGrOHHjxRd+xZPhwOOSQKh1eaHPqlfdrv6BXTH+L78fXEbgKSN49ZBp+ZxEpVCtW+F57jRtz6yG9KN5bjwdfX5SVt65Ni5y0vV5BUu6U9D76CF5+2fd2vv56aNCg8mMKXNzyvlRd0ML0LPwOIjs4uNUJwNdA9le3SCy8PP59/vL9+5m9qQRuuokdDRsDB//vC9UvypLPjuNe2GkIqiApd0pqs2bBK69Ap05+N7z69Ss9JO45UCSIoIVpppYmLYBdWYhF4qa4mLV//jsrachPD+sNhx/O3QO70LppQ+4a2OWgl1a3KEs+O457YachqIKk3CkVTZ8Or70GXbrAdddBvWDrkKOSA1UgSy4FLUxnATelee5a4IPshCNRkin5vDLubf56ywMc0e4Y3j/zEv55oN/YZljf9tzavxOPTCk+6LiaFmVjZq5g554SmjasF9vCTkNQBUm5Uw72/vswcSJ07QqDBwcuSiE6J7dRKZCldgr6G/ELYJKZvQmMwQ9JXWhmtwNXAufkKD4JUbo2JP94djJL/vw46xsdwTPtz+Sdn3+30uNq2nrkkSnFbNtdQuumDVXYSZwod4rnHLz7Lrz9NvToAVdeCXUCN8YBotPCST1OJZcC/VY456YCV+An8D+Gn0L4IHA2cIVzbmbOIpTQpDw7nz+f1X8bzdeNmzO+R39uHtAt2HG5iEUk4pQ7BfBF6ZQpvijt1ataRWmUaPRHcsmcKz8fv5IDzDoBrYCNzrnFOYkqC4qKitzs2bPDDqN2mTsXxo9nRkkjftqgOz+4qKsSkxQcM/vIOVdUjeOUOwuRc/DWWzBtGpx6Klx6KVj55aFSRg30a6+gubPKOz8554oBTSwpNJ98AhMmQIcO9Bs6lHfV1kSkSpQ7C5Bz8MYbMHMm9OkDAweqKK1Ernaykvioys5PJ5jZE2b2uZl9k/hzVOIqgNRms2f7XnvHHefbmqgoFQlMubNwHLRg1Dl49VVflJ5+uorSgDRtSwJdMTWz84DX8K1NXsX33zsKuAy4zswuTsylktpm5kzm/d8zjNveiJO+cwZDA/TaExFPubOwlF3t+99JnzNs7Rw/0nTWWXDBBSpKA4rKAi8JT1V2fvoEaO+cu8E59xPn3A1AB2BO4nmpbaZNg9df57lvDuOp9v145N3lYUckEjfKnQXktv6dOObwBjxYd6kvSs87L9ZFqfqVShiCFqZdgYcSu5cc4JzbDjwEVFyaLbFUloje+stYePNN6N6dbrd+j6OOaHxgaEXJSiQw5c4CMqzoWKZ13sI5u9f4gvS882JblIL6lUo4ghamK4F0EwsbAKuyE05qZtbLzGaY2Rwzm21mfXL5eYXskclL6Dh3FsXPTuCuYmNMm1MZesZxB7UGUbISCSzU3Cl5tH8/PP88LFgAF10EZ58ddkQ1pvmeEoaghelDwP1m1ib5wcT9/wR+le3AynkYuN851wv4eeK+ZJtzPHD411ywbiELj+7E2Da9+eM7SytcIVWyEgks7Nwp+VBSAs89BwsX+kVOZ5yR8mVxG21Sv1IJQ9B2UecChwNfmNkMvp3A3y/x9/MSk/wBnHNuZJbjdECTxN+bAquz/P4F60DPuPOPZ9jWxVywcQnceS1jWnTnw7e/OLC9aPIV0gdfXxRy1CKxEXbulFzbtw+efRa++ML3KC1K36ZRrZBEKhe0MD0L2A+sAdonbiTug9/FpEzVOvYHcwcw0cz+G3+VN/XpqFTZI1OKWbtlF7P/MoZhHfZC375w8cUMM2NYvw6MmbmCLd/swYC+HZsf2BoUUHIVqVzYuVNyae9eeOYZWL4cBg2CU07J+HJt5SlSuUCFqXOuY64DMbNJwNEpnroXuAC40zn3gpldC/wduDDFe9wM3AzQrl27HEZbe9x2/vF88ufR3NBgI5x5CVx44UGT9R+ZUszuEv//5cxlm7itfyceen0RDgInV+3kIYUqH7lTQrJnD4wZw9xpc3n40K58d29zhlVyiFohiVSuyluShsHMtgLNnHPOzAzY6pxrkukYbasXQGmp381pzhw45xw4//wKK0jHzFxxoBC9e2CXaiXVfr+ezNqtu2ndtCHT77kgS8GLhKO6W5LGhXJnALt3w1NPwerVDN3UhukNj1Z+E6lE0NwZaPGTmT1kZimvrppZSzP7R1UDrKLV+LlaAP2BJTn+vNqvtBTGj/dF6fnnQ//+KduaDOvbnk/vG8Dc+wZU+0xfi6WkUEUgd0q27doFTz4Ja9bA4MFcNvRC5TeRLAo6x/RW/CT9Yc65L8oeNLOLgCeA0lwEl+T7wB8SCX43ieF6qab9++GFF+Czz3irdXd+Nq2E2xquyNkQk4avpICFnTslm3bu9EXp+vVw3XXQuTPDoFr5TVOcRFIL2i6qL3AY8ImZ3WBm9c3sf4DXgdlAz1wFCOCce985d6pzrqdzrq9z7qNcfl6tVlICY8fCZ5/BgAH8bNMRlfYkjVuLE5EICTV3Shbt2AGjRsGGDTBsGHTuXKO3Uz9okdQCFabOuXnAqcCzwOPAl8APgDucc5c55zbkLkTJmn37fK+9xYvhkkvg9NMDDbMrgYpUj3JnLbF9uy9KN2+G66+H44+v8VtqipNIakGH8nHO7TazacAIfB++ecAruQpMsmzfPt/WZNkyuPxy6N0bCDbMrhYnItWn3BlzW7fCE0/4K6bDh0P77Ay7a4qTSGpBFz8dbmZj8G2aHsf3EW0AzDGzoTmMT7Jh7154+mlflA4adKAoDSqfu39o2oDUJsqdMbd5Mzz+OHzzDYwYkbWiVETSCzrHdC5wEXC1c+6HzrkZQG9gHPC0mT2RqwClhvbs8W1NvvwSrroKevVK+9IoFIWaNiC1jHJnXG3a5Ifv9+yBkSOhbduwIxIpCEEL0+VAT+fcS2UPOOd2Oee+DwwGLs1BbFJTZW1NVq6Ea66BHj0yvjxdUZjPglXzrqSWWY5yZ/xs2OCvlO7b54vSY44JOyKRghG0MO3vnFuV6gnn3AtoZWn0lLU1WbvWtzXp2rXSQ9IVhfm8ipnPaQMieaDcGTfr1vkrpc7BjTfC0ak2JBSRXAm6JWna7aHMrA6wM2sRvdTj9AAAGApJREFUSc19840vSjduhCFD4IQTAh1WfjJ+WZ+9fh2bM3PZJl3FFKki5c6YWbvW5866df2V0hYtwo5IpOCkvWJqZpvMrHfSfTOzCWZ2XLmXngasz1WAUkVlbU02bfK99iopSjMN0z/4+iLWbt3NlEXrdBVTJCDlzphavZpPfvF7/jB1Gc/3uEBFqUhIMg3lN+PgK6p18POhmuU0Iqm+bdt8Ubp1q++1d1z5/wcrSh6mT1ekVtyoVEQyUO6Mm5Ur4YkneGfFNv5+wnn89qONYUckUrCCzjGVqNuyxU/WL+u116FDoMP6dWxOHYO+HZtXmEt698AutG7akLsGdslh4CIiIfrySz9837gxx955C42PaqFpSyIhCtxgXyJs8+Zv25rccAO0aRP40BnLNlHqYOayTRUa6asBtIjUasuWwZgx0LQp3HADg5s0YfAFYQclUth0xTTuNm70V0r37vWT9atQlMK3K/HLrpje2r+TilERqf2++MJvPNKsmV9936RJ2BGJCJVfMW2TNGG/btJjW5Jec2z2w5JA1q/3W+WVtTU56qgqv0XZVdF+v558YBhfhalIjYWeO82sF/AXoCFQAvzQOTcrl58ZG59/Ds89By1b+h2dGjcOOyIRSaisMH0+xWMvlbtvQNqWKJIjX3/t50WZ+aK0ZcsavV35YXwRqZEo5M6Hgfudc6+b2XcT98/L4efFw6JFMG6cP5EfMQIOPTTsiEQkSabC9Ka8RSFVs2YNjB4N9er54fsjj0z5srI+pLcFGJ7XfFKRrIlK7nRA2fh0U2B1iLFEw4IF8MILfien4cOhYcOwIxKRctIWps457eEcRatW+aL0kEN8Udq8edqXlq2y/4+X5gOo8BTJgwjlzjuAiWb23/j1BGeEHE+45s6F8eP9nvfXX+9zqIhEjhY/xclXX/nh+0MPhZtuyliUgh+er2NQ6sjLdqIikl9mNsnM5qe4DQJuAe50zrUF7gT+nuF9bjaz2WY2e/36Wtjz/5NPfFHaoYO/UqqiVCSy1C4qLlas8CtIDz/cXykNsIK07Aqp5o6K1E7OuQvTPWdmTwK3J+6OA/6W4X0eBR4FKCoqql1rBj76CF55BY4/3m/RXL9+2BHlXVWmdYmETVdM42DpUnjqKT7cvJ/+GzswZuHmwIcO69te24mKFKbVwLmJv/cHloQYSzhmzfJFaefOMHRoQRalQIXNU0SiTIVp1BUX+wbQzZvzk8NOYenuOkouIhLE94HfmtmnwK+Am0OOJ7+mTYPXXoMuXeC66/xi0QJV1q9aI2cSB4X7mxoHixfD2LG+FdQNN3DzvPUalheRQJxz7wOnhh1HKN57DyZPhm7d4KqroG7dyo+pxdR1ReJEhWlULVzoe+21bu0n6x96qJKLiEgmzsHUqfDOO3DyyXDFFVBHA4MicaLf2CiaP98XpW3aqAG0iEgQzsGUKb4o7dWLMa1Pod9DbzNm5oqwIxORKlBhGjWffuobQLdtqwbQIiJBOAdvvumH8IuKYNAgHnlnaYUFP2NmrqDfryerWBWJMBWmUfLxx/DSS9CxoxpAi4gE4Ry8/jpMnw59+8Ill4BZygU/Wp0uEn2aYxoVH34Ir74KnTr5FaQF2tZERCQw5+Af//C9Ss84A77zHTADUi/4ua1/Jy0gFYk4FaZRMGMGvPEGnHgiDB5c0G1NREQCKS2FCRNgzhw4+2zo3/9AUZqOFpCKRJ8qoLB98AG89RZ07QpXX13wbU1ERCpVWuq3GJ03D84/H845p9KiVETiQYVpmKZOhbffhu7dfa89tTUREcls/3548UVYsAAuvBDOOivsiEQki1SYhsE5X5C++y707AmDBqkoFRGpTEkJPP88LFoEAwbA6aeHHZGIZJkK03xzDiZN8kP4vXvDpZeqKBURqUxJCTz3HCxZAt/9LvTpE3ZEIpIDqojyyTmYONEXpaedBpddpqJURKQy+/bBM89AcbHPmypK80a9XyXfVBXli3Pw2mt+BX6/fv6MX5P1RUQy27sXnn4ali71055OPTXsiAqKer9KvkWmMDWzwWa2wMxKzayo3HP3mFmxmS02swFhxVhtpaXwyiu+V+mZZ/q5USpKRUQy27MHnnoKVqzwC0R79Qo7ooKTaqMCkVyK0hzT+cBVwF+THzSzrsAQoBtwDDDJzDo75/bnP8RqKC2Fl1/2W42eey6cd56KUhGRyuze7YvS1avhmmugW7ewIypI6v0q+RaZwtQ5txDAKhZtg4BnnXN7gGVmVgz0AabnN8Jq2L/f99qbP983fz7nnLAjEhGJvl274MknYd06uPZa6NIl7IhEJE8iM5SfQRvgq6T7KxOPVWBmN5vZbDObvX79+rwEl9b+/b6tyfz5fps8FaUiIpX75hsYNQrWr4chQ1SUihSYvF4xNbNJwNEpnrrXOfdyusNSPOZSvdA59yjwKEBRUVHK1+RFSQmMGweLF8PFF/vFTiIiktmOHfDEE7BlCwwdCscfH3ZEIpJneS1MnXMXVuOwlUDbpPvHAquzE1EO7Nvne+0VF8Mll/i2UCIiktm2bb4o3b4drr8eOnQIOyIRCUEchvInAEPM7BAz6wicAMwKOabU9u71vfa++AIuv1xFqYhIEFu3+uH7HTtg+HAVpSIFLDKFqZldaWYrgdOBV81sIoBzbgEwFvgMeAP4USRX5O/Z43vtLVsGV1zhd3USEZHMNm+Gxx+HnTthxAho1y7siEQkRFFalT8eGJ/muQeAB/IbURXs3u2L0lWr4OqroXv3sCMSEYm+jRv98P2+fXDDDXDMMWFHJCIhi0xhGlu7dvlee2vWwODBcNJJYUckIhJ969f7llD798PIkXB0qnWxIlJoIjOUH0s7d/qz/bVr4brrVJSKiASxbp2fU+oc3HhjKEWp9oAXiSYVptX1zTe+KN2wwbc1OfHECi9R4hMRKWftWl+U1qnji9JWrUIJQ3vAi0STCtPq2L7dJ9ZNm2DYMOiUeg9hJT4RkSSrV/sT+vr14aaboEWL0ELRHvAi0aQ5plWV3Gtv+HBon34P4dv6d+KPU4qV+EREvvrKz8dv1MjPKW3WLNRwtAe8SDSpMK2KLVt8UVrW1qRt24wvV+ITEQFWrPCdSw47zBelTZuGHZGIRJQK06A2bfJF6Z49vq1JmzZhRyQiEn1Ll/qNR5o29UXp4YeHHZGIRJgK0yA2bPBtTUpKfGJt3TrsiEREoq+4GJ59Fpo39yf0hx0WdkQiEnEqTCuzfr2/UuqcL0qPOirsiEREou/zz+G556BlS1+UNmoUdkQiEgMqTDP5+mt/pdTMtzVp2TLsiEREom/hQnj+eX8iP2IEHHpo2BGJSEyoME1nzRpflNav76+UHnlk2BGJiETf/Pnw4ot+e9Hhw6Fhw7AjEpEYUWGayqpVMHq0T6gjR8IRR4QdkYhI9M2dC+PHQ7t2vsfzIYeEHZGIxIwK0/K+/NK3NYlIrz0RkVj45BOYMAE6dPC74TVoEHZEIhJDKkyTLV8OY8b4diYjR0KTJmFHJCISfbNnwz/+4XfBu+46PwVKRKQaVJiWKeu116yZL0rV1kREpHIzZ8Lrr0PnznDttVBP/62ISPUpgwAsWeLbmhx5pG9r0rhx2BGJiETfBx/AW2/BSSfBNddA3bphRyQiMafCdPFiGDsWWrXybU3Ua09EpHLvvgtTpkD37nDllSpKRSQrCrsw/ewz32uvdWtflKqtiYhIZs7BO+/A1KnQsycMGgR16oQdlYjUEoWbTebN80VpmzZ++F5FqYjEkJkNNrMFZlZqZkXlnrvHzIrNbLGZDajxhzkHkyf7ovSUU1SUikjWFeYV0zlz4OWXoX1732tPbU1EJL7mA1cBf01+0My6AkOAbsAxwCQz6+yc21+tT3EOJk6EGTOgqAguucTviicikkWFV5h+/DG88gp07Oh77amtiYjEmHNuIYBVLBIHAc865/YAy8ysGOgDTK/Gh8Brr8GHH0LfvnDxxSpKRSQnCqswnTXLJ9cTTvC99tTWRERqrzbAjKT7KxOPVY1z/mT+44/hzDPhwgtVlIpIzhROZTZ9uh+G6tLFtzVRUSoiMWFmk4CjUzx1r3Pu5XSHpXjMpXn/m4GbAdq1a/ftE6WlfjenOXPgnHPg/PNVlIpIThVGdfb++zBpEnTtCldfrbYmIhIrzrkLq3HYSqBt0v1jgdVp3v9R4FGAoqIiX7yWlvp97+fN8wXpuedWIwQRkaqp/cspp071RWmPHmoALSKFZAIwxMwOMbOOwAnArEBH7t/vu5bMm+eH7lWUikie1O7CdMoUePtt6NXLN4BWWxMRqWXM7EozWwmcDrxqZhMBnHMLgLHAZ8AbwI8Crch3zm868tlnMGAAnHVWDqMXETlY7R3K37bN70xy6qlw6aWaFyUitZJzbjwwPs1zDwAPVOkNN2/2O+JdcgmcdloWIhQRCa72XkLcsQP69Ml5UTpm5gr6/XoyY2auyNlniIjkze7dcPnlsSlKlYNFahdzLuUizdgzs/VAzjNV/ZYdT7a6deu7/fv37Vu/bG6Kl7QANuQ6jiyJS6yKM/viEmsU4mzvnGsZcgw5kyF3RuF7X0GAHJwskl9DFcX9a4h7/BD/ryGs+APlzlpbmEaFmc12zhVV/srwxSVWxZl9cYk1LnHWRrXhe6+vIXxxjx/i/zVEPf7aO5QvIiIiIrGiwlREREREIkGFae49GnYAVRCXWBVn9sUl1rjEWRvVhu+9vobwxT1+iP/XEOn4NcdURERERCJBV0xFREREJBJUmOaImQ02swVmVmpmReWeu8fMis1ssZkNCCvGVMysl5nNMLM5ZjbbzPqEHVM6ZnZr4nu4wMweDjueTMzsx2bmzKxF2LGkYma/MbNFZjbXzMabWbOwY0pmZhcnftbFZnZ32PEUkrjmsnTilOPSiVPuyyTqeTGdqOfLTOKQS1WY5s584Crg3eQHzawrMAToBlwM/NnM6uY/vLQeBu53zvUCfp64Hzlmdj4wCDjZOdcN+O+QQ0rLzNoC3wG+DDuWDN4CujvnTgY+B+4JOZ4DEr8ffwIGAl2BoYnfI8mPuOaydGKR49KJU+7LJCZ5MZ3I5stM4pJLVZjmiHNuoXNucYqnBgHPOuf2OOeWAcVAlM7YHdAk8femwOoQY8nkFuBB59weAOfcupDjyeR3wE/x39tIcs696ZwrSdydARwbZjzl9AGKnXNLnXN7gWfxv0eSBzHOZenEJcelE6fcl0nk82I6Ec+XmcQil6owzb82wFdJ91cmHouKO4DfmNlX+DPxqJ4JdgbONrOZZjbVzCK5f6KZXQ6scs59GnYsVfA94PWwg0gS9d+ZQhXXn0tcclw6sch9mcQ0L6YTtXyZSSx+Z+uFHUCcmdkk4OgUT93rnHs53WEpHsvrGWOmuIELgDudcy+Y2bXA34EL8xlfmUrirAccAfQDTgPGmtlxLoQ2E5XE+e/ARfmNKLUg/17N7F6gBHg6n7FVIvTfmdourrksnbjkuHTikvsyiUteTCfG+TKTyP7OJlNhWgPOueoks5VA26T7x5LnoaRMcZvZk8DtibvjgL/lJagUKonzFuDFRDKeZWal+P1/1+crvjLp4jSzHkBH4FMzA/+z/tjM+jjn1uYxRKDyf69mNhK4FLggYv/Jhf47U9vFNZelE5ccl05ccl8mccmL6cQ4X2YS2d/ZZBrKz78JwBAzO8TMOgInALNCjinZauDcxN/7A0tCjCWTl/DxYWadgQbAhlAjKsc5N88518o518E51wGfFHpHKfmWMbOLgbuAy51zO8OOp5wPgRPMrKOZNcAvuJkQckwS/VyWTlxyXDqRz32ZxCkvphPxfJlJLHKprpjmiJldCfwRaAm8amZznHMDnHMLzGws8Bl+COBHzrn9YcZazveBP5hZPWA3cHPI8aTzGPCYmc0H9gIjY3TWGkX/CxwCvJW4ijHDOfeDcEPynHMlZvYvwESgLvCYc25ByGEVjBjnsnTikuPSUe4LX2TzZSZxyaXa+UlEREREIkFD+SIiIiISCSpMRURERCQSVJiKiIiISCSoMBURERGRSFBhKiIiIiKRoMJUDmJmN5qZS7ptN7NPzexfEu1Vcv3595mZK/eYM7P7qvg+d5jZVVkNzr/vcjMble33jdpnikjVKHdW+r7KnRKI+phKOoPxjY+bJP7+R6AV8PMQYjk9EUtV3AG8D7yY/XBERNJS7hSpARWmks4c51xx4u9vmlknfMJKmVzNdxmu75zbm+1AnHMzsv2eIiI5otwpUgMaypegPgQON7NWcGCI5Ckz+56ZLcLvQHJJ4rlGZvaQmS0zs72JP+81s4P+vZnZKWb2npntNrNVZvYzwMp/cKrhKDPraWbjzWyjme0ys8Vmdk9ZbEB74PqkYbVR5Y6dYGabE8d+YGZnp/jc2xNf524zm53qNSmOaW1mJWZ2a4rn7jKzfWbWMnH/IjN7zczWmNlOM5tvZv9mZnUr+YwKQ3aJx0clvvbkxwL9LEQkZ5Q7lTulCnTFVILqCOwHdiQ9dj7QC7gfWAcsNz+XaiLQFfgFMA/oB/wMaA78G4CZtQCmAGuBkcAe4CdAu8oCMbM+wDtAMXAnfqjqBODkxEuuBF4DPgXuSzy2PnFsb+A94BP81oQ7gR8Ak8zsDOfcR4nX/RPwe2AU8BzQCXgGODxTbM65NWY2CRiBH8JLNhx4wzm3PnH/OGBy4nW7gaJEvC2Buyv7PlQm6M9CRHJKuVO5U6rCOaebbgduwI2AA07En7gcAfw/fGJ9Kel1y/GJ6ehyx49IHH9OucfvxV8ZaJW4/0Difruk1zQGNvh/lgcd64D7ku6/C3wFNMrwdSwHnkrx+GRgIdAg6bG6icdeStyvk3j/N8ode10illGVfA+vL/seJj3WK/HYtWmOscT3+15gM1Cn3NcyKun+feW/R4nHRwHLq/qz0E033Wp+U+5U7tQtOzddkpZ0FgH7gE3An4Gnge+Ve80M59zaco9dDKwApplZvbIb8CZQH3/WCX5S/gzn3JdlBzrnvgFeyRSUmTUCzgSeds7trMoXZGaHAucC44DSpNgMmASck3jpsYnb2HJv8QJQEuCjxuOvjoxIemwEsBWYkBRPazP7q5mtwCe7fcAvgWb4xRI1FfRnISLZo9yp3Ck1oKF8SedK/DDPdmCFc253itesSfFYK/wcpX1p3vfIxJ+tgfkpnv+6kriOwJ+VV3WlKfghmLr44ZifpXpBYv5Q61SxOOdKzGxjZR/inNtpZi/g52n9LBHvUGBc2fcx8TkTgGPwZ/GLgF3AFfiz8oZV/eJSCPqzEJHsUe5U7pQaUGEq6cx3364sTafCJHJgI7AMuDbNMcsTf64BjkrxfKrHkm0GSoE2lbwulS2JY/8EPJnqBc65UjMr+0/joFgSZ8xBE9Jo/Pyvs4BD8Ql7dNLzx+PnRY1wzj2V9BmXBXjvsgTdwB28krd8bEF/FiKSPcqdyp1SAypMJdveAK4GdjjnFmV43XTgJ2bW1jn3FYCZNQYyJpfEGfX7wHAz+y/n3K40L92DT2rJx35jZu8BPYGPnXOlaY5diZ8ndS3wWNLjVxP8d+btxPuMSMSxHL9woEyjxJ8HzsjNrD5+jlVlViT+7A58nDi2GXAG/ipNmaA/CxEJn3Knp9xZ4FSYSrY9DdwETDaz3+JXdzbAn+VeDlyRmN/0O+CH+D5/9/HtytJ0yTLZj4GpwPTEZ6zEr9Ls5ZwrazXyGXC2mV2KX726wTm3HPhX/AKAiWb2d/zVhxZAb6Cuc+7uxJn//cDfzOxx4Fn8ytJ7gG1BvgmJ93gav/ihPvA751zyVZKF+CT5gJntxyfZO4O8N/A6fs7V/5nZfwKHAD/l4FW/EPxnISLhU+5EuVPQqnzdDr7x7crSTpW8bjkpVm4mnmvIt3N/9uAXAXyYeKxe0uvK2o/sBlbh5y7dTyUrSxOPnYKf7L8Fn5AXAXclPd8l8d47KbcaFDgJnzDXJeJbiZ+z9N1yn3E7PgHuBmbjh5aWU8nK0qTjuyU++6BVpknP98LvsLIzEcN/Af+ceH2Hct/rUeWOPSvxPd0JfI5vpzKKpJWlVflZ6KabbjW7KXce9BnKnbpV+2aJH4CIiIiISKjULkpEREREIkGFqYiIiIhEggpTEREREYkEFaYiIiIiEgkqTEVEREQkElSYioiIiEgkqDAVERERkUhQYSoiIiIikaDCVEREREQi4f8DJ4JUtyM52f8AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 792x360 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_experimented_and_predicted_value(training_y, estimator.predict(training_X),\n",
" test_y, estimator.predict(test_X), title='All features')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"imp = importances(estimator, test_X, test_y, metric='neg_mean_absolute_error', n_samples=-1)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Importance</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Feature</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Bit561</th>\n",
" <td>0.432699</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bit4903</th>\n",
" <td>0.098274</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bit5476</th>\n",
" <td>0.096905</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bit6794</th>\n",
" <td>0.061612</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bit2400</th>\n",
" <td>0.044542</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Importance\n",
"Feature \n",
"Bit561 0.432699\n",
"Bit4903 0.098274\n",
"Bit5476 0.096905\n",
"Bit6794 0.061612\n",
"Bit2400 0.044542"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"imp.head()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"important_training_X = training_X.reindex(columns=imp[imp.Importance>0].index)\n",
"important_test_X = test_X.reindex(columns=imp[imp.Importance>0].index)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"copyed_estimator = deepcopy(estimator)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Pipeline(memory=None,\n",
" steps=[('variancethreshold', VarianceThreshold(threshold=0.0)), ('selectpercentile', SelectPercentile(percentile=95,\n",
" score_func=<function f_regression at 0x1a195f91e0>)), ('standardscaler', StandardScaler(copy=True, with_mean=False, with_std=True)), ('randomforestregressor', RandomForestReg...obs=-1,\n",
" oob_score=False, random_state=20150917, verbose=0,\n",
" warm_start=False))])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"copyed_estimator.fit(sp.csr_matrix(important_training_X), training_y)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training:\t0.95\n",
"test:\t0.77\n"
]
}
],
"source": [
"print(f'Training:\\t{copyed_estimator.score(important_training_X, training_y):.2}')\n",
"print(f'test:\\t{copyed_estimator.score(important_test_X, test_y):.2}')"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1032, 640)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"important_training_X.shape"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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p0Pv3nD11dBM/62ISO0pgwCsWePbmhxxhG9rcsghYUckIhJ9770Hb7wBJ5wA3/seNG0adkQiEnMqTFevhsmToWNH39ZEvfZERKr39tswezb07w+XX66iVESyonEXph995Hvtderki1K1NRERycw5eOstmDMHTj4ZRo+GJk3CjkpEGojGm02WLfNFaefOfvheRamIxJCZXWVmK8ys3MwGVXnsDjMrMLPVZjayzidzDmbN8kXpd76jolREsq5xXjFdsgRefBG6dfO99tTWRETiazlwBfC35INm1he4BugHHA3MNLPezrmyWp3FOZgxA+bPh0GD4OKL/a54IiJZ1PgK00WL4KWXoHt332tPbU1EJMaccysB7MAicTTwtHOuBFhrZgXAYGBeLU4Cr74K778PQ4bAhReqKBWRnGhchemCBT659urle+2prYmINFydgflJ9zckjtWMc/7D/KJFcMYZcN55KkpFJGcaT2U2b54fhurTx7c1UVEqIjFhZjOBo1I8dKdz7sV0L0txzKV5/5uAmwC6du367QPl5X43pyVLYNgwOOccFaUiklONozp7912YORP69oUrr1RbExGJFefcebV42QagS9L9Y4BNad7/YeBhgEGDBvnitbzc73u/bJkvSIcPr0UIIiI10/CXU86Z44vSE09UA2gRaUymAdeYWUsz6w70AhYEemVZme9asmyZH7pXUSoi9aRhF6azZ8Obb8KAAb4BtNqaiEgDY2aXm9kG4DTgFTObAeCcWwFMBj4CXgN+HGhFvnN+05GPPoKRI+HMM3MYvYhIZQ13KH/nTr8zySmnwKhRmhclIg2Sc24KMCXNY/cA99ToDbdv9zviXXwxnHpqFiIUEQmu4V5C/OYbGDw4a0VpXn4hQ++dRV5+YRaCExGJqOJiuPTSnBSlyqMiUh1zLuUizdgzsyIga9mveYfuJ1nTps1dWdm+fUVrl9bgpe2BrdmKI8fiEqvizL64xBqFOLs55zqEHEPOZMiddf7e1yGPZksU/v3UVdy/hrjHD/H/GsKKP1DubLCFaVSY2ULn3KDqnxm+uMSqOLMvLrHGJc6GqCF87/U1hC/u8UP8v4aox99wh/JFREREJFZUmIqIiIhIJKgwzb2Hww6gBuISq+LMvrjEGpc4G6KG8L3X1xC+uMcP8f8aIh2/5piKiIiISCToiqmIiIiIRIIK0xwx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\n",
"text/plain": [
"<Figure size 792x360 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_experimented_and_predicted_value(training_y, copyed_estimator.predict(important_training_X),\n",
" test_y, copyed_estimator.predict(important_test_X), title='Important features')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# E0F "
]
}
],
"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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment