{"cells":[{"metadata":{},"cell_type":"markdown","source":"Thanks for sharing great [kernel](https://www.kaggle.com/abhishek/quite-a-few-features-1-51), which gave me some ideas of the features.  "},{"metadata":{"trusted":true},"cell_type":"code","source":"import os\nfrom sklearn.tree import DecisionTreeRegressor\nfrom sklearn.metrics import mean_absolute_error\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.model_selection import KFold\n\nimport pandas as pd\nimport numpy as np \nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom tqdm import tqdm_notebook\n\nimport lightgbm as lgb\n\nimport scipy as sp\nfrom scipy.fftpack import fft\nfrom tsfresh.feature_extraction import feature_calculators\n\nimport gc\n%matplotlib inline\nprint(os.listdir(\"../input\"))","execution_count":21,"outputs":[{"output_type":"stream","text":"['test', 'train.csv', 'sample_submission.csv']\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"%time\ntrain_df = pd.read_csv(os.path.join(\"../input\",'train.csv'), dtype={'acoustic_data': np.int16, 'time_to_failure': np.float32})","execution_count":22,"outputs":[{"output_type":"stream","text":"CPU times: user 0 ns, sys: 0 ns, total: 0 ns\nWall time: 22.9 µs\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_df.shape","execution_count":23,"outputs":[{"output_type":"execute_result","execution_count":23,"data":{"text/plain":"(629145480, 2)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"rows = 150000\nsegments = int(np.floor(train_df.shape[0] / rows))\nprint(\"Number of segments: \", segments)","execution_count":24,"outputs":[{"output_type":"stream","text":"Number of segments:  4194\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#Prepare empty frame\ntrain_X = pd.DataFrame(index=range(segments), dtype=np.float64)\ntrain_y = pd.DataFrame(index=range(segments), dtype=np.float64, columns=['time_to_failure'])","execution_count":25,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def create_features(seg_id,seg, X):\n    xc = seg[\"acoustic_data\"]\n    \n    X.loc[seg_id,\"num_peaks_1\"] = feature_calculators.number_peaks(xc,1)\n    X.loc[seg_id,\"num_peaks_5\"] = feature_calculators.number_peaks(xc,5)\n    X.loc[seg_id,\"num_peaks_10\"] = feature_calculators.number_peaks(xc,10)\n    \n    X.loc[seg_id,\"cid_ce_1\"] = feature_calculators.cid_ce(xc, 1)\n    \n    X.loc[seg_id,'moment_4'] = sp.stats.moment(xc, 4)\n    X.loc[seg_id,'moment_2'] = sp.stats.moment(xc, 2)\n    \n    X.loc[seg_id,\"range_m1000_0\"] = feature_calculators.range_count(xc, -1000, 0)\n    X.loc[seg_id,\"c_5\"] = feature_calculators.c3(xc, 5)\n    X.loc[seg_id,\"mean\"] = xc.mean()\n    X.loc[seg_id,\"binned_entropy_5\"] = feature_calculators.binned_entropy(xc, 5)\n    X.loc[seg_id,\"autocorrelation_10\"] = feature_calculators.autocorrelation(xc, 10)\n    \n    \n    window_size = 10\n    xc_rolled = xc.rolling(window_size)\n    xc_rolled_var = xc_rolled.var().dropna()\n    xc_rolled_mean = xc_rolled.mean().dropna()\n        \n    window_str = str(window_size)\n\n    X.loc[seg_id,\"rollingMean\"+window_str+\"_quantile_4\"] = xc_rolled_mean.quantile(0.04)\n    rolled_var_quantiles = xc_rolled_var.quantile([0.01,0.04])\n    X.loc[seg_id,\"rollingVar\"+window_str+\"_quantile_4\"] = rolled_var_quantiles[0.04]\n    X.loc[seg_id,\"rollingVar\"+window_str+\"_quantile_1\"] = rolled_var_quantiles[0.01]\n    \n    window_size = 10\n    window_str = str(window_size)\n    xc_rolled = xc.rolling(300)\n    xc_rolled_var = xc_rolled.var().dropna()\n    X.loc[seg_id,\"rollingVar\"+window_str+\"_quantile_2\"] = xc_rolled_var.quantile(0.02)","execution_count":26,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#create features from train\nfor seg_id in tqdm_notebook(range(segments)):\n    seg = train_df.iloc[seg_id*rows:seg_id*rows+rows]\n    create_features(seg_id, seg,train_X)\n    train_y.loc[seg_id, 'time_to_failure'] = seg['time_to_failure'].values[-1]    ","execution_count":27,"outputs":[{"output_type":"display_data","data":{"text/plain":"HBox(children=(IntProgress(value=0, max=4194), HTML(value='')))","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"c58c6485b55c4b1397e39a3768cbe4d0"}},"metadata":{}},{"output_type":"stream","text":"\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#create features from test\nsegment_names = [file for file in os.listdir(\"../input/test\") if file.startswith(\"seg\")]\ntest_df = pd.DataFrame(index=segment_names, dtype=np.float64)\ntest_df.index = test_df.index.str[:-4]\nfor file in tqdm_notebook(segment_names):\n    seg_id = file[:-4]\n    segment = pd.read_csv(os.path.join(\"../input/test\",file),dtype={'acoustic_data': np.int16})\n    create_features(seg_id,segment,test_df)\n","execution_count":28,"outputs":[{"output_type":"display_data","data":{"text/plain":"HBox(children=(IntProgress(value=0, max=2624), HTML(value='')))","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"bfb759142c924435bcb67ca1b98e4043"}},"metadata":{}},{"output_type":"stream","text":"\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_X.head()","execution_count":29,"outputs":[{"output_type":"execute_result","execution_count":29,"data":{"text/plain":"   num_peaks_1           ...             rollingVar10_quantile_2\n0      31523.0           ...                            6.413144\n1      31292.0           ...                            6.417793\n2      30706.0           ...                            6.739086\n3      31320.0           ...                            6.554504\n4      31302.0           ...                            6.401906\n\n[5 rows x 15 columns]","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>num_peaks_1</th>\n      <th>num_peaks_5</th>\n      <th>num_peaks_10</th>\n      <th>cid_ce_1</th>\n      <th>moment_4</th>\n      <th>moment_2</th>\n      <th>range_m1000_0</th>\n      <th>c_5</th>\n      <th>mean</th>\n      <th>binned_entropy_5</th>\n      <th>autocorrelation_10</th>\n      <th>rollingMean10_quantile_4</th>\n      <th>rollingVar10_quantile_4</th>\n      <th>rollingVar10_quantile_1</th>\n      <th>rollingVar10_quantile_2</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>31523.0</td>\n      <td>8640.0</td>\n      <td>5470.0</td>\n      <td>257.823936</td>\n      <td>24823.312530</td>\n      <td>26.021110</td>\n      <td>11570.0</td>\n      <td>49.297453</td>\n      <td>4.884113</td>\n      <td>0.050021</td>\n      <td>-0.469692</td>\n      <td>1.3</td>\n      <td>2.488889</td>\n      <td>1.600000</td>\n      <td>6.413144</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>31292.0</td>\n      <td>8596.0</td>\n      <td>5474.0</td>\n      <td>216.043788</td>\n      <td>191770.733203</td>\n      <td>43.412309</td>\n      <td>13365.0</td>\n      <td>35.327549</td>\n      <td>4.725767</td>\n      <td>0.040129</td>\n      <td>-0.450367</td>\n      <td>0.7</td>\n      <td>2.500000</td>\n      <td>1.655556</td>\n      <td>6.417793</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>30706.0</td>\n      <td>8494.0</td>\n      <td>5549.0</td>\n      <td>208.748440</td>\n      <td>86141.411280</td>\n      <td>48.544298</td>\n      <td>14251.0</td>\n      <td>30.544036</td>\n      <td>4.906393</td>\n      <td>0.132877</td>\n      <td>-0.480152</td>\n      <td>0.0</td>\n      <td>2.622222</td>\n      <td>1.733333</td>\n      <td>6.739086</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>31320.0</td>\n      <td>8592.0</td>\n      <td>5458.0</td>\n      <td>207.457707</td>\n      <td>274489.577511</td>\n      <td>47.917990</td>\n      <td>12609.0</td>\n      <td>57.539696</td>\n      <td>4.902240</td>\n      <td>0.033637</td>\n      <td>-0.374296</td>\n      <td>0.8</td>\n      <td>2.544444</td>\n      <td>1.611111</td>\n      <td>6.554504</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>31302.0</td>\n      <td>8483.0</td>\n      <td>5381.0</td>\n      <td>194.230870</td>\n      <td>159056.876454</td>\n      <td>53.305855</td>\n      <td>12822.0</td>\n      <td>69.801620</td>\n      <td>4.908720</td>\n      <td>0.082438</td>\n      <td>-0.385905</td>\n      <td>0.4</td>\n      <td>2.500000</td>\n      <td>1.611111</td>\n      <td>6.401906</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_X.shape","execution_count":30,"outputs":[{"output_type":"execute_result","execution_count":30,"data":{"text/plain":"(4194, 15)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"n_fold = 5\nfolds = KFold(n_splits=n_fold, shuffle=True, random_state=42)\nparams = {\n    'lambda_l1': 0.012465994599126015, \n    'bagging_freq': 15, \n    'verbose': -1, \n    'min_data_in_leaf': 5, \n    'feature_fraction': 0.7143153769050614, \n    'objective': 'MAE',\n    'lambda_l2': 0.055052283158846985, \n    'metric': 'MAE', \n    'bagging_fraction': 0.4871803105884792,\n    'max_depth': -1, \n    'learning_rate': 0.007017896834582354, \n    'boosting_type': 'gbdt', \n    'num_leaves': 9\n}","execution_count":31,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def train_lgb(train_X,train_y,test_df,params,folds):\n    features_importance = pd.DataFrame({\"features\":train_X.columns,\n                                        \"importance\":np.zeros(train_X.columns.shape[0])})\n    predictions = pd.DataFrame({\"seg_id\":test_df.index,\"time_to_failure\":np.zeros(test_df.shape[0])})\n    oof = np.zeros(train_X.shape[0])\n\n    for train_idx,val_idx in folds.split(train_X,train_y):\n        X_train,y_train = train_X.iloc[train_idx],train_y.iloc[train_idx]\n        X_val,y_val = train_X.iloc[val_idx],train_y.iloc[val_idx]\n\n        model = lgb.LGBMRegressor(**params, n_estimators = 20000,n_jobs=-1)\n        model.fit(X_train,y_train,\n                  eval_set=[(X_train,y_train),(X_val,y_val)], \n                  verbose=1000,\n                  early_stopping_rounds=1000)\n\n        oof[val_idx] = model.predict(X_val, num_iteration=model.best_iteration_)\n\n        features_importance[\"importance\"] += model.feature_importances_\n        predictions[\"time_to_failure\"] += model.predict(test_df, num_iteration=model.best_iteration_)\n    return oof,predictions,features_importance\n\noof,predictions,features_importance = train_lgb(train_X,train_y,test_df,params,folds)","execution_count":32,"outputs":[{"output_type":"stream","text":"Training until validation scores don't improve for 1000 rounds.\n[1000]\ttraining's l1: 1.82506\tvalid_1's l1: 2.02927\n[2000]\ttraining's l1: 1.71562\tvalid_1's l1: 2.03225\nEarly stopping, best iteration is:\n[1755]\ttraining's l1: 1.73636\tvalid_1's l1: 2.02764\nTraining until validation scores don't improve for 1000 rounds.\n[1000]\ttraining's l1: 1.82308\tvalid_1's l1: 2.06293\n[2000]\ttraining's l1: 1.71012\tvalid_1's l1: 2.05827\nEarly stopping, best iteration is:\n[1717]\ttraining's l1: 1.73559\tvalid_1's l1: 2.05458\nTraining until validation scores don't improve for 1000 rounds.\n[1000]\ttraining's l1: 1.83842\tvalid_1's l1: 2.00059\n[2000]\ttraining's l1: 1.73393\tvalid_1's l1: 1.99801\nEarly stopping, best iteration is:\n[1932]\ttraining's l1: 1.74027\tvalid_1's l1: 1.99597\nTraining until validation scores don't improve for 1000 rounds.\n[1000]\ttraining's l1: 1.84144\tvalid_1's l1: 1.95925\nEarly stopping, best iteration is:\n[857]\ttraining's l1: 1.86258\tvalid_1's l1: 1.95661\nTraining until validation scores don't improve for 1000 rounds.\n[1000]\ttraining's l1: 1.82362\tvalid_1's l1: 2.04447\n[2000]\ttraining's l1: 1.70618\tvalid_1's l1: 2.04434\nEarly stopping, best iteration is:\n[1214]\ttraining's l1: 1.79382\tvalid_1's l1: 2.0409\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"mean_absolute_error(train_y,oof)","execution_count":36,"outputs":[{"output_type":"execute_result","execution_count":36,"data":{"text/plain":"2.0151349491722423"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"features_importance[\"importance\"] = features_importance[\"importance\"]/5\npredictions[\"time_to_failure\"] = predictions[\"time_to_failure\"]/5\n\nplt.figure(figsize=(10,10))\nax = sns.barplot(x=\"importance\", y=\"features\", data=features_importance.sort_values(by=\"importance\",ascending=False))","execution_count":34,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 720x720 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAtUAAAJQCAYAAABBzpgAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xu4XVV97//3RwKi4W4oXkCCAeWiEiCgXBS0eKmVm+BBVArech6LUusvVnrUinpsBWx7pEIpWEQrxQoCIlQQgQAiARJICJGrAkcuBSx3lFvy/f2x5j4sN9mXZO69197Z79fzrGfPOeaYY37nCn981mCsuVJVSJIkSVp5L+h1AZIkSdJEZ6iWJEmSWjJUS5IkSS0ZqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktTSl1wVo8pk2bVpNnz6912VIkiQNacGCBb+tqg2H6meo1pibPn068+fP73UZkiRJQ0py53D6ufxDkiRJaslQLUmSJLXk8g+NuWcfeJAH/vl7vS5DkiRNUBt+/IO9LuF5nKmWJEmSWjJUS5IkSS0ZqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktWSoliRJkloyVEuSJEktGaolSZKklgzVkiRJUkuG6kkiyfQkNyU5JcktSU5NsmeSK5LcmmSnJFOTnJzk6iTXJdmn69zLk1zbvHZp2vdIMjfJGc3YpyZJb+9UkiRp7E3pdQEaU5sD7wU+DFwDvB/YDdgb+F/AL4GLq+rDSdYDrk7yM+B+4G1V9WSSLYDTgFnNmNsB2wD3AFcAuwI/73/hJLOB2QAbb/CSUbtBSZKkXjBUTy63V9VigCRLgIuqqpIsBqYDGwN7J5nT9F8TeCWdwPzNJDOBpcCru8a8uqruasZc2IzzvFBdVScCJwLM3PRVNfK3JkmS1DuG6snlqa7tZV37y+j8t7AU2L+qbu4+KcmRwH3AtnSWDD05wJhL8b8pSZI0CbmmWt0uAD7Zty46yXZN+7rAvVW1DDgYWK1H9UmSJI1Lhmp1+wqwOnB9szzkK0378cAhSRYBWwJP9Kg+SZKkcSlVLm/V2Jq56avqwiO+3OsyJEnSBLXhxz84ZtdKsqCqZg3Vz5lqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktWSoliRJkloyVEuSJEktGaolSZKklgzVkiRJUkuGakmSJKmlKb0uQJPPlA03GNNfQpIkSRptzlRLkiRJLRmqJUmSpJYM1ZIkSVJLhmpJkiSpJUO1JEmS1JKhWpIkSWrJR+ppzD1z/2+457hP97oMSZrUXn7YP/S6BGmV4ky1JEmS1JKhWpIkSWrJUC1JkiS1ZKiWJEmSWjJUS5IkSS0ZqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktTQpQ3WS6UluWE77t5JsPcrXPjLJnBEcb3qS94/UeCtx/TuSLE6yMMn8XtUhSZLUS1N6XcB4UlUf7XUNK2E68H7g3/sfSDKlqp4dgxreUlW/HYPrSJIkjUuTcqa6MSXJqUluTHJGkhcnmZtkFkCSx5N8NcmiJPOSbNS0n5Lk2CS/SPLrJAf0DZjkM0muSXJ9ki91tX8uyS1Jfg68ZrCiksxIcn6SBUkuT7LlENf9GvCmZqb4L5McmuScJBcDF6XjmCQ3NDPKBzbj7ZHksiTnJbk5yQlJXpDkw0n+T1c9H0vyjyPzlkuSJK2aJnOofg1wfFVtBTwK/Hm/41OBeVW1LXAZ8LGuYy8DdgPeTSfUkuTtwBbATsBMYIckb06yA/C+pu1dwI5D1HUi8Mmq2gGYAxw/2HWBI4DLq2pmVfWF3+2BA6pqd+A9zbW3BfYEjknysqbfTsAnga2BGU3fHwB7JVm96fMh4ORB6i3gp82HgNkDdUoyO8n8JPP/+/HfD/EWSJIkTSyTefnHb6rqimb7e8Dh/Y4/DZzbbC8A3tZ17OyqWgb8sm8GG3h787qu2V+LTsheGzirqn4HkOScgQpKshawC3B6kr7mFw5x3eW5sKoebLZ3A06rqqXAfUkupRPsHwWurqpfN9c+Dditqs5oZrnfneRGYPWqWjzItXarqruT/BFwYZKbquqy/p2q6kQ6HxjY9pUb1SDjSZIkTTiTOVT3D3b995+pqr62pfzhe/VU13a6/v5dVf1L9yBJPrUCNb0AeLiqZg5wfHnXXZ4nhnm9gd6DbwH/C7gJ+PagA1Td3fy9P8lZdGa/nxeqJUmSVmWTefnHK5Ps3Gy/H/h5y/EuAD7czDaT5BXN7O1lwL5JXpRkbWCvgQaoqkeB25O8txkjSbYd4rqP0ZkNH8jlwIFJVkuyIfBm4Orm2E5JNkvyAuBAmvegqq4CNqHzvpw20MBJpjb3RJKpdGbqn/dUFUmSpFXdZA7VNwOHNUsc1gf+uc1gVfVTOk/guDLJYuAMYO2quhb4D2AR8BPgmiGG+gDwkSSLgCXAPkP0vx5Y2nyh8i+Xc/ysps8i4GLgr6rqv5pj1wDfBG4Ebm/69vkBcEVVPTTItTcCft7UejVwXlWdP0S9kiRJq5w8t8JBk0mSPYA5VfXuAY6fC/xjVV000tfe9pUb1U8++4GRHlaStAJeftg/9LoEaUJIsqCqZg3VbzLPVGs5kqyX5Bbg96MRqCVJklZFk/mLij2V5Dhg137N36iqQb8YOFKqai4wdzntDwOv7m5L8hJgeQH7j6vqv0ejPkmSpInEUN0jVXVYr2sYriY4D/REEkmSpEnP5R+SJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIkteTTPzTmVv+jTfzRAUmStEpxplqSJElqyVAtSZIktWSoliRJkloyVEuSJEktGaolSZKklgzVkiRJUks+Uk9j7okHbuPKE9/d6zIkaVLbefa5vS5BWqU4Uy1JkiS1ZKiWJEmSWjJUS5IkSS0ZqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktWSoliRJkloyVEuSJEktTZhQneSOJNOa7cebvy9PcsZKjrd7kiv7tU1Jcl+Sl6/AOFsmuTLJU0nm9Dv2ziQ3J7ktyRErU+dISrJvkq279r+cZM9me26SWSsx5qnNPd6Q5OQkq49kzZIkSRPBuArV6Rh2TVV1T1UdsJKXuxzYOMmmXW17Akuq6p7hDJBkCvAgcDjw9X7HVgOOA/4E2Bo4qDvQ9si+TS0AVNXfVNXPWo55KrAl8DrgRcBHW44nSZI04fQ8VCeZ3sx0fhe4ATg4yeJm5vOoYZx7Q7N9aJIzk5yf5NYkR3f1+0iSW5JcneSkJN+sqmXAD4D3dQ35PuC05pyPJbkmyaIkP0zy4qb9lCQnJLkKOLqq7q+qa4Bn+pW3E3BbVf26qp4Gvg/sM8i9vDPJTUmuTXJsknOb9iO7Z8Cb92V6s312kgVJliSZ3dXn8SRfbWqfl2SjJLsAewPHJFmYZEZzL8/7UJLk7c3s+7VJTk+y1kB1V9V/VgO4Gth4oL6SJEmrqp6H6sYWwPHA24CvAG8FZgI7Jtl3BcaZCRxIZ9b0wCSbNEs5vgC8EdiVzqxqn9NoQnWSFwLvAn7YHDuzqnasqm2BG4GPdJ23MbBLVX16kFpeAfyma/+upu15kqwJnATsBewAvHToWwXgw1W1AzALODzJS5r2qcC8pvbLgI9V1S+Ac4DPVNXMqvrVALVMAz4P7FlV2wPzgcHus++81YGDgfMHOD47yfwk8x96/Olh3p4kSdLEMF5C9Z1VNQ/YEZhbVQ9U1bN0lha8eQXGuaiqHqmqJ4FfApvSmTG+tKoerKpngNP7OlfVfGCtJK+hs0zjqqp6sDn82iSXJ1kMfADYpus6p1fV0pW81+XZEri9qm5tZny/N8zzDk+yCJgHbELnwwnA08C5zfYCYPoK1PJGOktErkiyEDiEzvs4lOOBy6rq8uUdrKoTq2pWVc1af601VqAcSZKk8W9KrwtoPDFC4zzVtb2U4d1f32z1Vs12n1OAfatqUZJDgT26jg2n3rvpBN0+GzdtK+pZ/vDDz5oASfagswZ856r6XZK5fceAZ5pwDsN/H/oEuLCqDhr2CckXgQ2B/7kC15EkSVpljJeZ6j5XA7snmdZ80e8g4NKWY17TjLl+88XC/fsdPw34IJ0lJz/qal8buLdZ1vCBlbzuFkk2S7IGneB+zgB9bwKmJ5nR7HcH2juA7QGSbA9s1rSvCzzUBOot6cwwD+UxOvc1mHnArkk2b645NcmrB+qc5KPAO4CDmnXqkiRJk864CtVVdS9wBHAJsAhYUFU/GvysIce8G/hbOoH9Cjoh9ZGu4zfSmXm+uKq6Z6C/AFzVnHPTQOMneWmSu+isO/58kruSrNMsX/kEcAGdNdk/qKolA9T4JDAbOC/JtcD9XYd/CGyQZEkz3i1N+/nAlCQ3Al+jE4aH8n3gM0mu6wrw/Wt5ADgUOC3J9cCV/OE69P5OADYCrmy+APk3w6hDkiRplZLnVgmsupKsVVWPNzPVZwEnV9VZva5rIM3SjjlV9e5e1zIattp0vTr5c7v1ugxJmtR2nn3u0J0kkWRBVQ35Wx7jaqZ6FB3ZfOnuBuB24Owe1yNJkqRVyHj5ouKoqqo5Q/caG0nO4rl10X0+W1UX9O1U1Vxg7hiWNaTh1C1JkjRZTYpQPZ5U1X69rmFlTNS6JUmSxsJkWf4hSZIkjRpDtSRJktSSoVqSJElqyVAtSZIktWSoliRJklry6R8ac1M33NwfHZAkSasUZ6olSZKklgzVkiRJUkuGakmSJKklQ7UkSZLUkqFakiRJaslQLUmSJLVkqJYkSZJa8jnVGnMP/fZWzvj2O3tdhiRNCgd86PxelyBNCs5US5IkSS0ZqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktWSoliRJkloyVEuSJEktGaolSZKklgzVk0CSPZKc23KM85M83H+cJJsluSrJbUn+I8ka7aqVJEmaeAzVGq5jgIOX034U8I9VtTnwEPCRMa1KkiRpHDBUr6Ak05PcmOSkJEuS/DTJi5LMTTKr6TMtyR3N9qFJzk5yYZI7knwiyaeTXJdkXpINBrnW3CTfSLIwyQ1JdmrapyY5OcnVzTj7dNV2eZJrm9cuyxlzx+acGUl2b8Ze2LStPVAtVXUR8Fi/sQK8FTijafoOsO+KvJ+SJEmrAkP1ytkCOK6qtgEeBvYfov9rgfcAOwJfBX5XVdsBVwJ/NsS5L66qmcCfAyc3bZ8DLq6qnYC3AMckmQrcD7ytqrYHDgSO7R6oCdknAPtU1a+AOcBhzfhvAn4/5J3/oZcAD1fVs83+XcArltcxyewk85PMf/Txp1fwMpIkSeOboXrl3F5VC5vtBcD0IfpfUlWPVdUDwCPAj5v2xcM49zSAqroMWCfJesDbgSOSLATmAmsCrwRWB05Kshg4Hdi6a5ytgBOBvarq/zZtVwD/kORwYL2ucDziqurEqppVVbPWWctl15IkadUypdcFTFBPdW0vBV4EPMtzH1LWHKT/sq79ZQz9b1DL2Q+wf1Xd3H0gyZHAfcC2TS1Pdh2+t6lrO+AegKr6WpLzgHcBVyR5R1XdNEQ93f4bWC/JlCaQbwzcvQLnS5IkrRKcqR45dwA7NNsHjOC4BwIk2Q14pKoeAS4APtmsaSbJdk3fdYF7q2oZnS8VrtY1zsPAnwJ/l2SP5rwZVbW4qo4CrgG2XJHCqqqAS3jufg8BfrTCdyhJkjTBGapHzteBjye5Dpg2guM+2Yx5As89WeMrdJZ6XJ9kSbMPcDxwSJJFdALyE90DVdV9wLuB45K8AfhU8wXI64FngJ8MVESSy+ksKfnjJHcleUdz6LPAp5PcRmeN9b+2vmNJkqQJJp3JRo1HSeYCc6pqfq9rGUkzpq9bR31x516XIUmTwgEfOr/XJUgTWpIFVTVrqH7OVEuSJEkt+UXFcSDJccCu/Zq/UVV7jHEdrwP+rV/zU1X1hrGsQ5IkaaIxVI8DVXVYr2sAqKrFwMxe1yFJkjTRuPxDkiRJaslQLUmSJLVkqJYkSZJaMlRLkiRJLRmqJUmSpJYM1ZIkSVJLPlJPY279aVv4C1+SJGmV4ky1JEmS1JKhWpIkSWrJUC1JkiS1ZKiWJEmSWjJUS5IkSS0ZqiVJkqSWfKSextz9D97Ksae+o9dlSNIq4/APXNDrEqRJz5lqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktWSoliRJkloyVEuSJEktGaolSZKklgzVkiRJUkuGakmSJKklQ7UkSZLUkqFakiRJamnChOokdySZ1mw/3vx9eZIzVnK83ZNc2a9tSpL7krx8BcbZMsmVSZ5KMqffsXcmuTnJbUmOWJk6R1KSfZNs3bX/5SR7Nttzk8xqMfaxff8ukiRJk824CtXpGHZNVXVPVR2wkpe7HNg4yaZdbXsCS6rqnuEMkGQK8CBwOPD1fsdWA44D/gTYGjioO9D2yL5NLQBU1d9U1c/aDtqE8fXbjiNJkjRR9TxUJ5nezOZ+F7gBODjJ4iQ3JDlqGOfe0GwfmuTMJOcnuTXJ0V39PpLkliRXJzkpyTerahnwA+B9XUO+DzitOedjSa5JsijJD5O8uGk/JckJSa4Cjq6q+6vqGuCZfuXtBNxWVb+uqqeB7wP7DHIv70xyU5Jrm1nfc5v2I7tnwJv3ZXqzfXaSBUmWJJnd1efxJF9tap+XZKMkuwB7A8ckWZhkRnMvz/tQkuTtzez7tUlOT7LWIHWvBhwD/NVAfZp+s5PMTzL/8UefHqyrJEnShNPzUN3YAjgeeBvwFeCtwExgxyT7rsA4M4EDgdcBBybZpFnK8QXgjcCuwJZd/U+jCdVJXgi8C/hhc+zMqtqxqrYFbgQ+0nXexsAuVfXpQWp5BfCbrv27mrbnSbImcBKwF7AD8NKhbxWAD1fVDsAs4PAkL2napwLzmtovAz5WVb8AzgE+U1Uzq+pXA9QyDfg8sGdVbQ/MBwa7z08A51TVvYMVWlUnVtWsqpq11jprDPP2JEmSJobxEqrvrKp5wI7A3Kp6oKqeBU4F3rwC41xUVY9U1ZPAL4FN6cwYX1pVD1bVM8DpfZ2raj6wVpLX0FmmcVVVPdgcfm2Sy5MsBj4AbNN1ndOraulK3uvybAncXlW3VlUB3xvmeYcnWQTMAzah8+EE4Gng3GZ7ATB9BWp5I50lIlckWQgcQud9fJ7mA8t7gX9agfElSZJWOVN6XUDjiREa56mu7aUM7/76Zqu3arb7nALsW1WLkhwK7NF1bDj13k0n6PbZuGlbUc/yhx9+1gRIsgedNeA7V9XvksztOwY804RzGP770CfAhVV10DD6bgdsDtyWBODFSW6rqs1X4HqSJEkT3niZqe5zNbB7kmnNWt2DgEtbjnlNM+b6zRcL9+93/DTgg3SWnPyoq31t4N4kq9OZqV6Z626RZLMka9AJ7ucM0PcmYHqSGc1+d6C9A9geIMn2wGZN+7rAQ02g3pLODPNQHqNzX4OZB+yaZPPmmlOTvHp5HavqvKp6aVVNr6rpwO8M1JIkaTIaV6G6WZd7BHAJsAhYUFU/GvysIce8G/hbOoH9Cjoh9ZGu4zfSmXm+uKq6Z6C/AFzVnHPTQOMneWmSu+isO/58kruSrNMsX/kEcAGdNdk/qKolA9T4JDAbOC/JtcD9XYd/CGyQZEkz3i1N+/nAlCQ3Al+jE4aH8n3gM0mu6wrw/Wt5ADgUOC3J9cCV/OE6dEmSJPWT51YJrLqSrFVVjzcz1WcBJ1fVWb2uayDN0o45VfXuXtcyGl75qnVrzleGM7EuSRqOwz9wQa9LkFZZSRZU1ZC/5TGuZqpH0ZHNl+5uAG4Hzu5xPZIkSVqFjJcvKo6qqpozdK+xkeQsnlsX3eezVfX/phmqai4wdwzLGtJw6pYkSZqsJkWoHk+qar9e17AyJmrdkiRJY2GyLP+QJEmSRo2hWpIkSWrJUC1JkiS1ZKiWJEmSWjJUS5IkSS359A+NuT/aYAt/qECSJK1SnKmWJEmSWjJUS5IkSS0ZqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSj9TTmLvj4Vv50Fnv7HUZkrRCvr3f+b0uQdI45ky1JEmS1JKhWpIkSWrJUC1JkiS1ZKiWJEmSWjJUS5IkSS0ZqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktWSonsSS7JHk3JZjLE2ysHmdM1K1SZIkTSRTel2AJrzfV9XMXhchSZLUS85Uj5Ak05PcmOSkJEuS/DTJi5LMTTKr6TMtyR3N9qFJzk5yYZI7knwiyaeTXJdkXpINBrnW3CTfaGaHb0iyU9M+NcnJSa5uxtmnq7bLk1zbvHZZzpg7NufMSLJ71+zzdUnWHpU3TZIkaRVhqB5ZWwDHVdU2wMPA/kP0fy3wHmBH4KvA76pqO+BK4M+GOPfFzQzxnwMnN22fAy6uqp2AtwDHJJkK3A+8raq2Bw4Eju0eqAnZJwD7VNWvgDnAYc34bwJ+P0gdayaZ33wQ2HegTklmN/3mP/no00PcmiRJ0sTi8o+RdXtVLWy2FwDTh+h/SVU9BjyW5BHgx037YuD1Q5x7GkBVXZZknSTrAW8H9k4yp+mzJvBK4B7gm0lmAkuBV3eNsxVwIvD2qrqnabsC+IckpwJnVtVdg9SxaVXdneRVwMVJFjfB/A9U1YnNdZi2+bo1xL1JkiRNKM5Uj6ynuraX0vnQ8izPvc9rDtJ/Wdf+Mob+wNM/mBYQYP+qmtm8XllVNwJ/CdwHbAvMAtboOu9e4Elgu/83UNXXgI8CLwKuSLLlgEVU3d38/TUwt3scSZKkycJQPfruAHZotg8YwXEPBEiyG/BIVT0CXAB8MkmaY30Bd13g3qpaBhwMrNY1zsPAnwJ/l2SP5rwZVbW4qo4CrgGWG6qTrJ/khc32NGBX4JcjeI+SJEkTgqF69H0d+HiS64BpIzjuk82YJwAfadq+AqwOXJ9kSbMPcDxwSJJFdALyE90DVdV9wLuB45K8AfhU8wXI64FngJ8MUMNWwPxm3EuAr1WVoVqSJE06qXJ560STZC4wp6rm97qWlTFt83Vrr2N27nUZkrRCvr3f+b0uQVIPJFlQVbOG6udMtSRJktSST/8Yx5IcR2edcrdvVNUeY1zH64B/69f8VFW9YSzrkCRJGq8M1eNYVR3W6xoAqmox4K8mSpIkDcDlH5IkSVJLhmpJkiSpJUO1JEmS1JKhWpIkSWrJUC1JkiS15NM/NOamr7eFP6IgSZJWKc5US5IkSS0ZqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyUfqaczd+vC9vOus/93rMiRpUP+53+d7XYKkCcSZakmSJKklQ7UkSZLUkqFakiRJaslQLUmSJLVkqJYkSZJaMlRLkiRJLRmqJUmSpJYM1ZIkSVJLhmpJkiSpJUO1JEmS1JKhWpIkSWrJUK2VluTQJA8kWdi8PtrrmiRJknphSq8L0IT3H1X1iV4XIUmS1EvOVGu5kvxZkuuTLEryb72uR5IkaTxzplrPk2Qb4PPALlX12yQbDNJ9/yRvBm4B/rKqfjPAmLOB2QBrbrjuSJcsSZLUU85Ua3neCpxeVb8FqKoHB+j3Y2B6Vb0euBD4zkADVtWJVTWrqmatsc7UES9YkiSplwzVWmlV9d9V9VSz+y1gh17WI0mS1CuGai3PxcB7k7wEYKDlH0le1rW7N3DjGNQmSZI07rimWs9TVUuSfBW4NMlS4Drg0OV0PTzJ3sCzwIMD9JEkSVrlGaq1XFX1HQZZI930+Wvgr8emIkmSpPHL5R+SJElSS85Ua0hJPge8t1/z6VX11V7UI0mSNN4YqjWkJjwboCVJkgbg8g9JkiSpJUO1JEmS1JKhWpIkSWrJUC1JkiS1ZKiWJEmSWvLpHxpzW6z3Mv5zv8/3ugxJkqQR40y1JEmS1JKhWpIkSWpphUJ1khckWWe0ipEkSZImoiFDdZJ/T7JOkqnADcAvk3xm9EuTJEmSJobhzFRvXVWPAvsCPwE2Aw4e1aokSZKkCWQ4oXr1JKvTCdXnVNUzQI1uWZIkSdLEMZxQ/S/AHcBU4LIkmwKPjmZRkiRJ0kSSqhWfdE4ypaqeHYV6NAmsO2N67Xa0z6mWNDrO2/+jvS5B0iokyYKqmjVUv+F8UXGjJP+a5CfN/tbAISNQoyRJkrRKGM7yj1OAC4CXN/u3AJ8arYIkSZKkiWY4oXpaVf0AWAbQLPtYOqpVSZIkSRPIcEL1E0leQvPEjyRvBB4Z1aokSZKkCWTKMPp8GjgHmJHkCmBD4IBRrUqSJEmaQAYN1UleAKwJ7A68Bghwc/OsakmSJEkMEaqralmS46pqO2DJGNUkSZIkTSjDWVN9UZL9k2TUq5EkSZImoOGE6v8JnA48leTRJI8l8RcVJUmSpMaQX1SsqrXHohBJkiRpohrOLyq+eXmvsSiuF5Ls2/xq5LiQZG6SQX8aM8mnkry4a/8/k6w3gjW8N8mSJMv615Lkr5PcluTmJO8YqWtKkiRNJMN5pN5nurbXBHYCFgBvHZWKem9f4Fzgl6MxeJIpzQ/o9O0HSFUtazHsp4DvAb8DqKp3tavyeW4A3gP8S3dj8+HjfcA2dH5x82dJXl1V/jiQJEmaVIacqa6qvbpebwNeCzw0+qWNnCRnJ1nQzLbObtoe7zp+QJJTkuwC7A0ck2RhkhlJZiaZl+T6JGclWb85Z/MkP0uyKMm1Td8kOSbJDUkWJzmw6btHksuTnAP8Msn0Zmb3u3QC6yZJ3p7kymas05OstZz7+Ock85v7+FLTdjidQHtJkkuatjuSTGu2P93Uc0OSTzVt05PcmOSkZqyfJnnRQO9fVd1YVTcv59A+wPer6qmquh24jc6HLkmSpEllOF9U7O8uYKuRLmSUfbiqdgBmAYc3vxD5PFX1Czo/dPOZqppZVb8Cvgt8tqpeDywGvth0PxU4rqq2BXYB7qUzmzsT2BbYk044f1nTf3vgL6rq1c3+FsDxVbUN8ATweWDPqtoemE/nR3eoBqJ9AAAgAElEQVT6+1xVzQJeD+ye5PVVdSxwD/CWqnpLd+ckOwAfAt4AvBH4WJLtuq5/XHP9h4H9h3gPl+cVwG+69u9q2p4nyezmA8H8px99bCUuJUmSNH4NufwjyT/R/EQ5nRA+E7h2NIsaBYcn2a/Z3oROoBxSknWB9arq0qbpO8DpSdYGXlFVZwFU1ZNN/92A05rlD/cluRTYEXgUuLqZze1zZ1XNa7bfCGwNXNE8uXAN4MrllPQ/mpn2KcDLmnOuH+QWdgPOqqonmvrOBN5E54PD7VW1sOm3AJg+jLdkpVXVicCJAOvOmF5DdJckSZpQhrOmen7X9rN0QuMVo1TPiEuyB51Z452r6ndJ5tJZG94d7NYcg1KeGGQ/wIVVddBAJyfZDJgD7FhVDyU5hXZ1P9W1vRQYcPnHIO6m8yGlz8ZNmyRJ0qQynOUf61XVd5rXqVV1RZK/GPXKRs66wENNoN6SzqwwdGaSt2p+in2/rv6PAWsDVNUjwENJ3tQcOxi4tKoeA+5Ksi9Akhc2T9+4HDgwyWpJNgTeDFw9jBrnAbsm2bwZb2qSV/frsw6dIP5Iko2AP1lezf1cDuyb5MVJpjb3efkw6hmuc4D3Nfe/GZ3/AzCc+5UkSVqlDCdUH7KctkNHuI7RdD4wJcmNwNfoBFiAI+g85eMXdNZD9/k+8Jkk1yWZQef+j0lyPZ2lL19u+h1MZ1nJ9c0YLwXOorMcYxFwMfBXVfVfQxVYVQ/QeU9Pa8a7EtiyX59FwHXATcC/A93/t+BE4Py+Lyp2nXMtcAqdoHsV8K2qum6oevpLsl+Su4CdgfOSXNCMvwT4AZ0npZwPHOaTPyRJ0mSUquUvb01yEPB+Outyu2c31waWVdUfj355WhWtO2N67Xb053tdhqRV1Hn7f7TXJUhahSRZ0DwoYlCDranum8GdBvx9V/tjDP7lOEmSJGlSGTBUV9WdwJ10/pe/JoEkxwG79mv+RlV9uxf1SJIkTRTDeaTeG4F/ovNs6jWA1YAnqmqdUa5NY6yqDut1DZIkSRPRcL6o+E3gIOBWOo9d+yhw3GgWJUmSJE0kw/pFxaq6DVitqpY2SwHeObplSZIkSRPHcH785XdJ1gAWJjmazpcXV+bnzSVJkqRV0nDC8cFNv0/Q+fGRTYD9R7MoSZIkaSIZcqa6qu5M8iLgZVX1pTGoSZIkSZpQhvP0j72Ar9N58sdmSWYCX66qvUe7OK2atlh/mj/OIEmSVinDWf5xJLAT8DBAVS0ENhvFmiRJkqQJZTih+pmqeqRf2/J/21ySJEmahIbz9I8lSd4PrJZkC+BwOj9hLkmSJIlBZqqT/Fuz+StgG+Ap4DTgUeBTo1+aJEmSNDEMNlO9Q5KXAwcCbwH+vuvYi4EnR7MwSZIkaaIYLFSfAFwEvAqY39UeOmuqXzWKdUmSJEkTxoDLP6rq2KraCji5ql7V9dqsqgzUkiRJUmM4P/7y8bEoRJPHbQ89zF5nnNnrMiRNQD8+4D29LkGSlms4j9STJEmSNAhDtSRJktSSoVqSJElqyVAtSZIktWSoliRJkloyVEuSJEktGaolSZKklgzVkiRJUkuGakmSJKklQ7UkSZLUkqFakiRJamnChOokdySZ1mw/3vx9eZIzVnK83ZNc2a9tSpL7krx8BcbZMsmVSZ5KMqffsXcmuTnJbUmOWJk6R1KSfZNs3bX/5SR7Nttzk8xaiTE/0dxf9f37SJIkTTbjKlSnY9g1VdU9VXXASl7ucmDjJJt2te0JLKmqe4YzQJIpwIPA4cDX+x1bDTgO+BNga+Cg7kDbI/s2tQBQVX9TVT9rOeYVdN63O1uOI0mSNGH1PFQnmd7M5n4XuAE4OMniJDckOWoY597QbB+a5Mwk5ye5NcnRXf0+kuSWJFcnOSnJN6tqGfAD4H1dQ74POK0552NJrkmyKMkPk7y4aT8lyQlJrgKOrqr7q+oa4Jl+5e0E3FZVv66qp4HvA/sMci/vTHJTkmuTHJvk3Kb9yO4Z8OZ9md5sn51kQZIlSWZ39Xk8yVeb2ucl2SjJLsDewDFJFiaZ0dzL8z6UJHl7M/t+bZLTk6w1UN1VdV1V3THQ8a4xZyeZn2T+048+MlR3SZKkCaXnobqxBXA88DbgK8BbgZnAjkn2XYFxZgIHAq8DDkyySbOU4wvAG4FdgS27+p9GE6qTvBB4F/DD5tiZVbVjVW0L3Ah8pOu8jYFdqurTg9TyCuA3Xft3NW3Pk2RN4CRgL2AH4KVD3yoAH66qHYBZwOFJXtK0TwXmNbVfBnysqn4BnAN8pqpmVtWvBqhlGvB5YM+q2h6YDwx2n8NSVSdW1ayqmrXGOuu2HU6SJGlcGS+h+s6qmgfsCMytqgeq6lngVODNKzDORVX1SFU9CfwS2JTOjPGlVfVgVT0DnN7XuarmA2sleQ2dZRpXVdWDzeHXJrk8yWLgA8A2Xdc5vaqWruS9Ls+WwO1VdWtVFfC9YZ53eJJFwDxgEzofTgCeBs5tthcA01egljfSWSJyRZKFwCF03kdJkiQNYEqvC2g8MULjPNW1vZTh3V/fbPVWzXafU4B9q2pRkkOBPbqODafeu+kE3T4bN20r6ln+8MPPmgBJ9qCzlnnnqvpdkrl9x4BnmnAOw38f+gS4sKoOWolaJUmSJqXxMlPd52pg9yTTmi/6HQRc2nLMa5ox12++WLh/v+OnAR+ks+TkR13tawP3Jlmdzkz1ylx3iySbJVmDTnA/Z4C+NwHTk8xo9rsD7R3A9gBJtgc2a9rXBR5qAvWWdGaYh/IYnfsazDxg1ySbN9ecmuTVwxhbkiRp0hpXobqq7gWOAC4BFgELqupHg5815Jh3A39LJ7BfQSekPtJ1/EY6M88XV1X3DPQXgKuac24aaPwkL01yF511x59PcleSdZrlK58ALqCzJvsHVbVkgBqfBGYD5yW5Fri/6/APgQ2SLGnGu6VpPx+YkuRG4Gt0wvBQvg98Jsl1XQG+fy0PAIcCpyW5HriSP1yH3v/+D2/uf2Pg+iTfGkYdkiRJq5Q8t0pg1ZVkrap6vJmpPgs4uarO6nVdA2mWdsypqnf3upbRsN6MzetNRx09dEdJ6ufHB7yn1yVImmSSLKiqIX/LY1zNVI+iI5sv3d0A3A6c3eN6JEmStAoZL19UHFVVNWfoXmMjyVk8ty66z2er6oK+naqaC8wdw7KGNJy6JUmSJqtJEarHk6rar9c1rIyJWrckSdJYmCzLPyRJkqRRY6iWJEmSWjJUS5IkSS0ZqiVJkqSWDNWSJElSSz79Q2Nu8/XX8wccJEnSKsWZakmSJKklQ7UkSZLUkqFakiRJaslQLUmSJLVkqJYkSZJaMlRLkiRJLflIPY25Xz30OPv98Oe9LkPSOHLW/rv1ugRJasWZakmSJKklQ7UkSZLUkqFakiRJaslQLUmSJLVkqJYkSZJaMlRLkiRJLRmqJUmSpJYM1ZIkSVJLhmpJkiSpJUO1JEmS1JKhWpIkSWrJUK0BJZmZ5F3D7LtjkmeTHDDadUmSJI03hmoNZiYwZKhOshpwFPDTUa9IkiRpHDJUjxNJpie5KckpSW5JcmqSPZNckeTWJDsl2SDJ2UmuTzIvyeubc49M8p0klye5M8l7khydZHGS85Os3vTbIcmlSRYkuSDJy5r2uUmOSnJ1c+03JVkD+DJwYJKFSQ4cpPxPAj8E7h/k/mYnmZ9k/lOPPjxi75skSdJ4YKgeXzYH/h7Ysnm9H9gNmAP8L+BLwHVV9fpm/7td584A3grsDXwPuKSqXgf8HvjTJlj/E3BAVe0AnAx8tev8KVW1E/Ap4ItV9TTwN8B/VNXMqvqP5RWc5BXAfsA/D3ZjVXViVc2qqlkvXGe9Yb8hkiRJE8GUXhegP3B7VS0GSLIEuKiqKsliYDqwKbA/QFVdnOQlSdZpzv1JVT3T9F0NOL9p7zv3NcBrgQuT0PS5t+vaZzZ/FzT9h+v/AJ+tqmXNuJIkSZOOoXp8eapre1nX/jI6/1bPDHVuE26fqarqd26AJVW18xDXXsqK/XcxC/h+E6inAe9K8mxVnb0CY0iSJE1oLv+YWC4HPgCQZA/gt1X16DDPvRnYMMnOzfmrJ9lmiHMeA9YerENVbVZV06tqOnAG8OcGakmSNNkYqieWI4EdklwPfA04ZLgnNmukDwCOSrIIWAjsMsRplwBbD+OLipIkSZNanlslII2N9WdsWXsc/a1elyFpHDlr/916XYIkLVeSBVU1a6h+zlRLkiRJLflFRQ1Lkg8Bf9Gv+YqqOqwX9UiSJI0nhmoNS1V9G/h2r+uQJEkaj1z+IUmSJLVkqJYkSZJaMlRLkiRJLRmqJUmSpJYM1ZIkSVJLPv1DY27G+mv5Qw+SJGmV4ky1JEmS1JKhWpIkSWrJUC1JkiS1ZKiWJEmSWjJUS5IkSS0ZqiVJkqSWfKSextxvHn6aw8/6Ta/LkDTKjt1vk16XIEljxplqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIktWSoliRJkloyVEuSJEktGaolSZKklgzVkiRJUkuGakmSJKklQ7UkSZLUkqFakiRJaslQPYkl2SPJuS3HOD/Jw23HkSRJmsgM1WrrGODgXhchSZLUS4bqEZJkepIbk5yUZEmSnyZ5UZK5SWY1faYluaPZPjTJ2UkuTHJHkk8k+XSS65LMS7LBINeam+QbSRYmuSHJTk371CQnJ7m6GWefrtouT3Jt89plOWPu2JwzI8nuzdgLm7a1B6qlqi4CHmv37kmSJE1shuqRtQVwXFVtAzwM7D9E/9cC7wF2BL4K/K6qtgOuBP5siHNfXFUzgT8HTm7aPgdcXFU7AW8BjkkyFbgfeFtVbQ8cCBzbPVATsk8A9qmqXwFzgMOa8d8E/H7IOx9CktlJ5ieZ//tHH2w7nCRJ0rhiqB5Zt1fVwmZ7ATB9iP6XVNVjVfUA8Ajw46Z98TDOPQ2gqi4D1kmyHvB24IgkC4G5wJrAK4HVgZOSLAZOB7buGmcr4ERgr6r6v03bFcA/JDkcWK+qnh2iliFV1YlVNauqZr1onQEn4SVJkiakKb0uYBXzVNf2UuBFwLM89+FlzUH6L+vaX8bQ/za1nP0A+1fVzd0HkhwJ3Ads29TyZNfhe5u6tgPuAaiqryU5D3gXcEWSd1TVTUPUI0mSNGk5Uz367gB2aLYPGMFxDwRIshvwSFU9AlwAfDJJmmPbNX3XBe6tqmV0vlS4Wtc4DwN/Cvxdkj2a82ZU1eKqOgq4BthyBOuWJEla5RiqR9/XgY8nuQ6YNoLjPtmMeQLwkabtK3SWelyfZEmzD3A8cEiSRXQC8hPdA1XVfcC7geOSvAH4VPMFyOuBZ4CfDFREksvpLCn54yR3JXnHiN2hJEnSBJGq/qsINN4lmQvMqar5va5lZWy0+evrwGPO63UZkkbZsftt0usSJKm1JAuqatZQ/ZypliRJklryi4rjWJLjgF37NX+jqvYY4zpeB/xbv+anquoNY1mHJEnSeGWoHseq6rBe1wBQVYuBmb2uQ5Ikabxy+YckSZLUkqFakiRJaslQLUmSJLVkqJYkSZJaMlRLkiRJLfn0D425TdZbwx+FkCRJqxRnqiVJkqSWDNWSJElSS4ZqSZIkqSVDtSRJktSSoVqSJElqyVAtSZIkteQj9TTmHn7oWc4847e9LkPSCHjPAdN6XYIkjQvOVEuSJEktGaolSZKklgzVkiRJUkuGakmSJKklQ7UkSZLUkqFakiRJaslQLUmSJLVkqJYkSZJaMlRLkiRJLRmqJUmSpJYM1ZIkSVJLhupVRJKXJLkkyeNJvtnv2A5JFie5LcmxSdK0b5DkwiS3Nn/Xb9rT9LstyfVJth/i2oc0Y9ya5JDRu0tJkqTxyVA9TE3QHM/v15PAF4A5yzn2z8DHgC2a1zub9iOAi6pqC+CiZh/gT7r6zm7OX64kGwBfBN4A7AR8sS+cS5IkTRbjOST2XJLpSW5O8l3gBuBfk8xPsiTJl7r63ZHkS0mubWaEt2zaN2xmgJck+VaSO5NMa459MMnVSRYm+Zckqw1Sx+NJjmnG+VmSnZLMTfLrJHsDVNUTVfVzOuG6+9yXAetU1byqKuC7wL7N4X2A7zTb3+nX/t3qmAes14yzPO8ALqyqB6vqIeBCngvtkiRJk4KhemhbAMdX1TbA/1dVs4DXA7sneX1Xv99W1fZ0ZnX7Zou/CFzcnHsG8EqAJFsBBwK7VtVMYCnwgUFqmNo1zmPA/wbeBuwHfHmI+l8B3NW1f1fTBrBRVd3bbP8XsFHXOb8Z4JzljT9k3ySzmw8k8x959L+HKFmSJGlimdLrAiaAO5vZWoD/kWQ2nfftZcDWwPXNsTObvwuA9zTbu9EJvlTV+cn/396dR1tWlnce//6kEERmEBwKLQQiDQgFFAQUE0SCQ1xiDIrKErBJiB2Woi0r7UA7xGWWqB2jqBAkUGqz1EicmrQMQUAbg8xQoAyloEJQxGLUCAX19B/7LTlcbtWpy657zx2+n7XOOme/+917P/utt+55znvevU/ubuUvAfYELmvTm58C3LmaGB4Czm6vlwAPVtXyJEuABU/81B5VVZWk1sa+VrH/U4BTALbfbuGkHUeSJGkUTKqH+w1Akm3pRqD3qqq7kywG1h+o92B7foTh7Rrg81X17jWMYXmbugGwYuWxqmpFkmHHuh2YP7A8v5UB/DLJM6rqjja9486BbbZZxTbj7X//MXUvHBKTJEnSrOL0jzW3MV2CfW+Sreku5hvmYuB1AEkOAlZewHc+cEiSrdq6zZM8Z+2HDG16x31J9ml3/Tgc+GZb/S1g5d06jhhTfni7OHMf4N6BaSJjnQMclGSzdoHiQa1MkiRpznCkeg1V1TVJrgJuoJtDfPEabPZB4EtJ3gT8O9285fur6q4kxwPntjuKLAeOAX7aJ8Ykt9Il/09O8mrgoKr6IfDXwGK6aSbfbg+AjwD/nOSoduzXtfL/C7wCWAr8Fnjzqo5ZVcuSfAi4rBX9bVUt63MekiRJM00enVWgtS3JesAjVfVwkn2Bk9qFiXPa9tstrI+e8G+jDkPSWvCaQ7YcdQiSNKmSXNFuVLFajlRPrmfTjQQ/ie5iw78ccTySJEmaBCbVk6iqbgZ2X9P6SX4ArDem+E1VtWStBvYEJHk+8MUxxQ9W1R+OIh5JkqTpxKR6GpnOCWpL7Of81BVJkqTxePcPSZIkqSeTakmSJKknk2pJkiSpJ5NqSZIkqSeTakmSJKkn7/6hKbfpZvP8wQhJkjSrOFItSZIk9WRSLUmSJPVkUi1JkiT1ZFItSZIk9WRSLUmSJPVkUi1JkiT1ZFItSZIk9eR9qjXlfnvXw1x16p2jDkOalnb/i61GHYIk6QlwpFqSJEnqyaRakiRJ6smkWpIkSerJpFqSJEnqyaRakiRJ6smkWpIkSerJpFqSJEnqyaRakiRJ6smkWpIkSerJpFqSJEnqyaRakiRJ6smkehZI8pYkh49TviDJdZN87NcmuT7JiiSLJvNYkiRJ09W8UQeg/qrq5BEe/jrgNcA/jjAGSZKkkTKpnoHaqPRxQAHXAj8GHqiqjyfZEzitVT13yH7WAU4AXgasAD5XVSe2ffw9sCFwF3BkVd0x3j6q6kdtX8NiPho4GuDpm89fg7OUJEmaOZz+McMk2Rk4HjigqnYDjh1T5XTgrW3dMEcDC4CFVbUrcEaSdYETgUOqamWC/uG+cVfVKVW1qKoWbbbRFn13J0mSNK04Uj3zHAB8taruAqiqZStHiZNsCmxaVd9tdb8IvHw1+zoQOLmqHh7Y1y7ALsB5bb/rAOOOUkuSJKljUq2xAlxfVfuOOhBJkqSZwukfM893gNcm2QIgyeYrV1TVPcA9SfZrRYcN2dd5wF8lmTewrxuBpyXZt5Wt26acSJIkaRVMqmeYqrqebo7zRUmuobugcNCbgc8kuZpu1Hl1TgV+Blzb9vXGqnoIOAQ4oZVdDbxgVTtI8mdJbgP2Bf41yTlP5LwkSZJmslTVqGPQHLPTgoV1xvGrvTGJNGft/hdbjToESdKAJFdU1dDf4nCkWpIkSerJCxXngCQvpbsf9aBbqurPJrCPzwAvHFP8yao6vW98kiRJM51J9RxQVecAveY6V9UxaykcSZKkWcfpH5IkSVJPJtWSJElSTybVkiRJUk8m1ZIkSVJPJtWSJElST979Q1Nugy3n+QMXkiRpVnGkWpIkSerJpFqSJEnqyaRakiRJ6smkWpIkSerJpFqSJEnqyaRakiRJ6slb6mnKLf/lg/zi40tHHYY0IU8/bvtRhyBJmsYcqZYkSZJ6MqmWJEmSejKpliRJknoyqZYkSZJ6MqmWJEmSejKpliRJknoyqZYkSZJ6MqmWJEmSejKpliRJknoyqZYkSZJ6MqmWJEmSejKp1iolWZjkFUPqHJbk2iRLknw/yW5TFZ8kSdJ0YVKt1VkIrDapBm4B/riqng98CDhl0qOSJEmaZkyqp4kkC5LckGRxkpuSnJHkwCQXJ7k5yd5JNk/yjTYyfEmSXdu2H0jy+STfS/LTJK9J8tE2enx2knVbvT2TXJTkiiTnJHlGK78wyQlJLm3HflGSJwN/Cxya5Ookh44Xd1V9v6rubouXAPNXcX5HJ7k8yeW/fmDZ2m4+SZKkkTKpnl62B/4XsGN7vBHYDzgOeA/wQeCqqtq1LX9hYNvtgAOAVwH/G7igjR7/J/CnLbE+ETikqvYETgM+PLD9vKraG3g78P6qegh4H/CVqlpYVV9Zg/iPAr493oqqOqWqFlXVoi023HwNdiVJkjRzzBt1AHqMW6pqCUCS64Hzq6qSLAEWAM8B/hygqr6TZIskG7dtv11Vy1vddYCzW/nKbZ8H7AKcl4RW546BY3+tPV/R6k9IkhfTJdX7TXRbSZKkmc6kenp5cOD1ioHlFXT/VsuHbVtVK5Isr6oas22A66tq3yHHfoQJ9os2DeVU4OVV9euJbCtJkjQbOP1jZvkecBhAkv2Bu6rqvjXc9kbgaUn2bduvm2TnIdvcD2y0ugpJnk03yv2mqrppDWORJEmaVUyqZ5YPAHsmuRb4CHDEmm7Y5kgfApyQ5BrgauAFQza7ANhpdRcq0s273gL4bKt3+ZrGJEmSNFvk0VkC0tTYbZvn1znHfn3UYUgT8vTjth91CJKkEUhyRVUtGlbPkWpJkiSpJy9U1BpJ8mbg2DHFF1fVMaOIR5IkaToxqdYaqarTgdNHHYckSdJ05PQPSZIkqSeTakmSJKknk2pJkiSpJ5NqSZIkqSeTakmSJKkn7/6hKbfu1uv5QxqSJGlWcaRakiRJ6smkWpIkSerJpFqSJEnqyaRakiRJ6smkWpIkSerJpFqSJEnqyVvqacotv/N+fvmpC0cdhmagrd+2/6hDkCRpXI5US5IkST2ZVEuSJEk9mVRLkiRJPZlUS5IkST2ZVEuSJEk9mVRLkiRJPZlUS5IkST2ZVEuSJEk9mVRLkiRJPZlUS5IkST2ZVEuSJEk9jTypTnJrki3b6wfa8zOTnNljnx9IUkm2Hyh7eytb1D/qxxxriyQXJHkgyafHrNszyZIkS5N8KknW5rEnKsn+SV4wsPyWJIe314uTHNJj3+9s7bvl2ohVkiRpJpmSpDqdNT5WVf1HVT3hBK9ZArx+YPm1wPU99zme3wH/EzhunHUnAX8J7NAeL5uE40/E/sDvk+qqOrmqvtB3p0m2AQ4CftZ3X5IkSTPRpCXVSRYkuTHJF4DrgDe1UdvrkpywBtte114fmeRrSc5OcnOSjw7UOyrJTUkuTfK5MSPF3wAObvW2A+4F7hrY9qAk/57kyiRfTbJhK39fkstanKesHF1OcmGSE9qxbkryIoCq+k1V/T+65HrwHJ4BbFxVl1RVAV8AXr2ac94zyTXt8bEx5//pgXpnJdm/vT4pyeVJrk/ywYE6tyb5YDu3JUl2TLIAeAvwjiRXJ3lRG9F/3IeBFstFSa5Ick47l9X5BPA3QA2pJ0mSNCtN9kj1DsBngT8BPgQcACwE9kqyygRzHAuBQ4HnA4cm2SbJM+lGiPcBXgjsOGab+4CfJ9mFbsT6KytXtCkKxwMHVtUewOXAf2+rP11Ve1XVLsBTgFcO7HNeVe0NvB14/5CYnwXcNrB8WytbldOBt1bVbkP2O+i9VbUI2BX44yS7Dqy7q53bScBxVXUrcDLwiapaWFXfG2+HSdYFTgQOqao9gdOAD68qgCQHA7dX1TWrCzTJ0e0DwOXLHrh3AqcoSZI0/U12Uv3TqroE2Au4sKp+VVUPA2cAfzSB/ZxfVfdW1e+AHwLPAfYGLqqqZVW1HPjqONt9mS6hfjXw9YHyfYCdgIuTXA0c0fYJ8OIkP0iyhO5DwM4D232tPV8BLJhA/KuVZFNg06r6biv64hpu+rokVwJX0cW508C6Jxrr84BdgPNa2xwPzF9F3BsA7wHeN2ynVXVKVS2qqkWbb7jJBMKRJEma/uZN8v5/s5b28+DA60dY87jPAj4GXF5V9w1cJxjgvKp6w2DlJOvTjawvqqqfJ/kAsP44caxJDLfz2GR0fiubqId57Ief9Vus29LN496rqu5OsrhHrIMCXF9V+65B3e2AbYFrWtvOB65MsndV/WICx5QkSZrRpuruH5fSTU/YMsk6wBuAi3ru87K2z82SzAP+fGyFqvot8D94/PSFS4AXrrw7SJKnJvkDHk1K72pzrJ/wxZJVdQdwX5J92rzsw4FvrqLuPcA9SfZrRYcNrL4VWJjkSe2CwL1b+cZ0H1ruTbI18PI1COt+YKMhdW4EnpZkX+imgyTZebyKVbWkqraqqgVVtYBuisseJtSSJGmumeyRaqBLMJO8C7iAbiT0X6tq3ARzAvu8Pcnf0SXsy4Ab6C5GHFvvy+OU/SrJkcCXkqzXio+vqpuSfI7uwspf0CXuQyW5lS7JfXKbK35QVf0Q+GtgMd3c7G+3xyLoqL8AAAmCSURBVKq8GTgtSQHnDpRfDNxCN+3lR8CV7RyuSXJVO++ft3rD/B/gzDYP+q3jVaiqh9LdWu9TSTah6yP/wOTcOUWSJGlWSHdjipkpyYZV9UAbqf46cFpVfX3YdtNdu1PHWe1iyVlnt2c/r8497h9HHYZmoK3ftv+oQ5AkzTFJrmg3hlitkf/4S08faBfTXUc3mvuNEccjSZKkOWhKpn9Mlqoa7wdXprUkn6G7BeCgT1bV6SsX2u3vptUo9ZrELUmSNFfN6KR6JqqqY0YdwxMxU+OWJEmaCjN9+ockSZI0cibVkiRJUk8m1ZIkSVJPJtWSJElSTybVkiRJUk/e/UNTbt2tNvJHPCRJ0qziSLUkSZLUk0m1JEmS1JNJtSRJktRTqmrUMWiOSXI/cOOo45jmtgTuGnUQ05xtNJxtNJxtNJxtNJxtNNxMbqPnVNXThlXyQkWNwo1VtWjUQUxnSS63jVbPNhrONhrONhrONhrONhpuLrSR0z8kSZKknkyqJUmSpJ5MqjUKp4w6gBnANhrONhrONhrONhrONhrONhpu1reRFypKkiRJPTlSLUmSJPVkUq0pk+RlSW5MsjTJu0Ydz6gk2SbJBUl+mOT6JMe28s2TnJfk5va8WStPkk+1drs2yR6jPYOpk2SdJFclOastb5vkB60tvpLkya18vba8tK1fMMq4p0qSTZOcmeSGJD9Ksq/96LGSvKP9P7suyZeSrD/X+1GS05LcmeS6gbIJ95skR7T6Nyc5YhTnMllW0UYfa//Xrk3y9SSbDqx7d2ujG5O8dKB81r7vjddGA+vemaSSbNmW50Q/MqnWlEiyDvAZ4OXATsAbkuw02qhG5mHgnVW1E7APcExri3cB51fVDsD5bRm6NtuhPY4GTpr6kEfmWOBHA8snAJ+oqu2Bu4GjWvlRwN2t/BOt3lzwSeDsqtoR2I2urexHTZJnAW8DFlXVLsA6wOuxHy0GXjambEL9JsnmwPuBPwT2Bt6/MhGfJRbz+DY6D9ilqnYFbgLeDdD+fr8e2Llt89k2IDDb3/cW8/g2Isk2wEHAzwaK50Q/MqnWVNkbWFpVP6mqh4AvAwePOKaRqKo7qurK9vp+ukToWXTt8flW7fPAq9vrg4EvVOcSYNMkz5jisKdckvnAnwKntuUABwBntipj22hl250JvKTVn7WSbAL8EfBPAFX1UFXdg/1orHnAU5LMAzYA7mCO96Oq+i6wbEzxRPvNS4HzqmpZVd1Nl3A+LsGaqcZro6o6t6oebouXAPPb64OBL1fVg1V1C7CU7j1vVr/vraIfQfeB9G+AwYv25kQ/MqnWVHkW8POB5dta2ZzWvl7eHfgBsHVV3dFW/QLYur2eq233D3R/mFe05S2Aewbe1Abb4fdt1Nbf2+rPZtsCvwJOb1NkTk3yVOxHv1dVtwMfpxsxu4OuX1yB/Wg8E+03c64/jfFfgW+317ZRk+Rg4PaqumbMqjnRRibV0ogk2RD4F+DtVXXf4LrqbsszZ2/Nk+SVwJ1VdcWoY5nG5gF7ACdV1e7Ab3j0K3vAftS+Rj6Y7gPIM4GnMoNHwabKXO83wyR5L900vjNGHct0kmQD4D3A+0Ydy6iYVGuq3A5sM7A8v5XNSUnWpUuoz6iqr7XiX678Or4939nK52LbvRB4VZJb6b4yPYBu/vCm7Wt8eGw7/L6N2vpNgF9PZcAjcBtwW1X9oC2fSZdk248edSBwS1X9qqqWA1+j61v2o8ebaL+Zi/2JJEcCrwQOq0fvSWwbdbaj+wB7TfvbPR+4MsnTmSNtZFKtqXIZsEO76v7JdBd1fGvEMY1Em6P5T8CPqurvB1Z9C1h55fMRwDcHyg9vV0/vA9w78DXtrFRV766q+VW1gK6vfKeqDgMuAA5p1ca20cq2O6TVn9UjbVX1C+DnSZ7Xil4C/BD70aCfAfsk2aD9v1vZRvajx5tovzkHOCjJZu0bgYNa2ayV5GV0U9JeVVW/HVj1LeD16e4esy3dxXiXMsfe96pqSVVtVVUL2t/u24A92t+qudGPqsqHjyl5AK+gu2L6x8B7Rx3PCNthP7qvVq8Frm6PV9DN3TwfuBn4N2DzVj90V5D/GFhCdyeDkZ/HFLbX/sBZ7fVz6d6slgJfBdZr5eu35aVt/XNHHfcUtc1C4PLWl74BbGY/elwbfRC4AbgO+CKw3lzvR8CX6OaYL6dLfI56Iv2Gbl7x0vZ486jPawraaCnd/N+Vf7dPHqj/3tZGNwIvHyifte9747XRmPW3AlvOpX7kLypKkiRJPTn9Q5IkSerJpFqSJEnqyaRakiRJ6smkWpIkSerJpFqSJEnqyaRakjQpknx/io+3IMkbp/KYkrSSSbUkaVJU1Qum6ljtFxAXACbVkkbCpFqSNCmSPNCe909yUZJvJvlJko8kOSzJpUmWJNmu1Vuc5OQklye5KckrW/n6SU5vda9K8uJWfmSSbyX5Dt0Pl3wEeFGSq5O8o41cfy/Jle3xgoF4LkxyZpIbkpzRfnGRJHsl+X6Sa1p8GyVZJ8nHklyW5NokfzWC5pQ0zc0bdQCSpDlhN+C/AMuAnwCnVtXeSY4F3gq8vdVbAOwNbAdckGR74Bigqur5SXYEzk3yB63+HsCuVbUsyf7AcVW1MhnfAPiTqvpdkh3ofgFuUdtud2Bn4D+Ai4EXJrkU+ApwaFVdlmRj4D/pfk3v3qraK8l6wMVJzq2qWyajoSTNTCbVkqSpcFlV3QGQ5MfAua18CfDigXr/XFUrgJuT/ATYEdgPOBGgqm5I8lNgZVJ9XlUtW8Ux1wU+nWQh8MjANgCXVtVtLZ6r6ZL5e4E7quqydqz72vqDgF2THNK23QTYATCplvR7JtWSpKnw4MDrFQPLK3jse1GN2W7s8li/Wc26dwC/pBslfxLwu1XE8wirfz8M8NaqOmdILJLmMOdUS5Kmk9cmeVKbZ/1c4Ebge8BhAG3ax7Nb+Vj3AxsNLG9CN/K8AngTsM6QY98IPCPJXu1YG7ULIM8B/luSdVfGkOSpT/QEJc1OjlRLkqaTnwGXAhsDb2nzoT8LnJRkCfAwcGRVPdiuLRx0LfBIkmuAxcBngX9JcjhwNqsf1aaqHkpyKHBikqfQzac+EDiVbnrIle2Cxl8Br14bJytp9kjVsG/WJEmafEkWA2dV1ZmjjkWSJsrpH5IkSVJPjlRLkiRJPTlSLUmSJPVkUi1JkiT1ZFItSZIk9WRSLUmSJPVkUi1JkiT1ZFItSZIk9fT/AbSc8ME2dAE7AAAAAElFTkSuQmCC\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"predictions.head()","execution_count":39,"outputs":[{"output_type":"execute_result","execution_count":39,"data":{"text/plain":"       seg_id  time_to_failure\n0  seg_0b082e         8.161415\n1  seg_9e7dff         3.769938\n2  seg_b6c10d         6.394883\n3  seg_4435bd         4.630723\n4  seg_c09a41         3.403965","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>seg_id</th>\n      <th>time_to_failure</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>seg_0b082e</td>\n      <td>8.161415</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>seg_9e7dff</td>\n      <td>3.769938</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>seg_b6c10d</td>\n      <td>6.394883</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>seg_4435bd</td>\n      <td>4.630723</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>seg_c09a41</td>\n      <td>3.403965</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"predictions.to_csv(\"submission_lgb_15_col.csv\",index=False)","execution_count":35,"outputs":[]}],"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.5.2"}},"nbformat":4,"nbformat_minor":1}