{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "92e48866", "metadata": {}, "source": [ "## Model Training" ] }, { "cell_type": "markdown", "id": "25791a74", "metadata": {}, "source": [ "#### 1.1 Import Data and Required Packages\n", "##### Importing Pandas, Numpy, Matplotlib, Seaborn and Warings Library." ] }, { "cell_type": "code", "execution_count": 2, "id": "b080dfb2", "metadata": {}, "outputs": [], "source": [ "# Basic Import\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# Modelling\n", "from sklearn.metrics import mean_squared_error, r2_score\n", "from sklearn.neighbors import KNeighborsRegressor\n", "from sklearn.tree import DecisionTreeRegressor\n", "from sklearn.ensemble import RandomForestRegressor, AdaBoostRegressor\n", "from sklearn.svm import SVR\n", "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", "from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error\n", "from sklearn.model_selection import RandomizedSearchCV\n", "from catboost import CatBoostRegressor\n", "from xgboost import XGBRegressor\n", "import warnings" ] }, { "cell_type": "markdown", "id": "e45079ad", "metadata": {}, "source": [ "#### Import the CSV Data as Pandas DataFrame" ] }, { "cell_type": "code", "execution_count": 3, "id": "e11c6255", "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('data/stud.csv')" ] }, { "cell_type": "markdown", "id": "20634923", "metadata": {}, "source": [ "#### Show Top 5 Records" ] }, { "cell_type": "code", "execution_count": 4, "id": "e7e412a2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
genderrace_ethnicityparental_level_of_educationlunchtest_preparation_coursemath_scorereading_scorewriting_score
0femalegroup Bbachelor's degreestandardnone727274
1femalegroup Csome collegestandardcompleted699088
2femalegroup Bmaster's degreestandardnone909593
3malegroup Aassociate's degreefree/reducednone475744
4malegroup Csome collegestandardnone767875
\n", "
" ], "text/plain": [ " gender race_ethnicity parental_level_of_education lunch \\\n", "0 female group B bachelor's degree standard \n", "1 female group C some college standard \n", "2 female group B master's degree standard \n", "3 male group A associate's degree free/reduced \n", "4 male group C some college standard \n", "\n", " test_preparation_course math_score reading_score writing_score \n", "0 none 72 72 74 \n", "1 completed 69 90 88 \n", "2 none 90 95 93 \n", "3 none 47 57 44 \n", "4 none 76 78 75 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "id": "fbd32281", "metadata": {}, "source": [ "#### Preparing X and Y variables" ] }, { "cell_type": "code", "execution_count": 5, "id": "56d72fde", "metadata": {}, "outputs": [], "source": [ "X = df.drop(columns=[\"math_score\"], axis=1)" ] }, { "cell_type": "code", "execution_count": 6, "id": "cd613177", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
genderrace_ethnicityparental_level_of_educationlunchtest_preparation_coursereading_scorewriting_score
0femalegroup Bbachelor's degreestandardnone7274
1femalegroup Csome collegestandardcompleted9088
2femalegroup Bmaster's degreestandardnone9593
3malegroup Aassociate's degreefree/reducednone5744
4malegroup Csome collegestandardnone7875
\n", "
" ], "text/plain": [ " gender race_ethnicity parental_level_of_education lunch \\\n", "0 female group B bachelor's degree standard \n", "1 female group C some college standard \n", "2 female group B master's degree standard \n", "3 male group A associate's degree free/reduced \n", "4 male group C some college standard \n", "\n", " test_preparation_course reading_score writing_score \n", "0 none 72 74 \n", "1 completed 90 88 \n", "2 none 95 93 \n", "3 none 57 44 \n", "4 none 78 75 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.head()" ] }, { "cell_type": "code", "execution_count": 7, "id": "f237ea14", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Categories in 'gender' variable: ['female' 'male']\n", "Categories in 'race_ethnicity' variable: ['group B' 'group C' 'group A' 'group D' 'group E']\n", "Categories in'parental level of education' variable: [\"bachelor's degree\" 'some college' \"master's degree\" \"associate's degree\"\n", " 'high school' 'some high school']\n", "Categories in 'lunch' variable: ['standard' 'free/reduced']\n", "Categories in 'test preparation course' variable: ['none' 'completed']\n" ] } ], "source": [ "print(\"Categories in 'gender' variable: \", end=\" \")\n", "print(df[\"gender\"].unique())\n", "\n", "print(\"Categories in 'race_ethnicity' variable: \", end=\" \")\n", "print(df[\"race_ethnicity\"].unique())\n", "\n", "print(\"Categories in'parental level of education' variable:\", end=\" \")\n", "print(df[\"parental_level_of_education\"].unique())\n", "\n", "print(\"Categories in 'lunch' variable: \", end=\" \")\n", "print(df[\"lunch\"].unique())\n", "\n", "print(\"Categories in 'test preparation course' variable: \", end=\" \")\n", "print(df[\"test_preparation_course\"].unique())" ] }, { "cell_type": "code", "execution_count": 8, "id": "924b7f9d", "metadata": {}, "outputs": [], "source": [ "y = df[\"math_score\"]" ] }, { "cell_type": "code", "execution_count": 9, "id": "ffc69816", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 72\n", "1 69\n", "2 90\n", "3 47\n", "4 76\n", " ..\n", "995 88\n", "996 62\n", "997 59\n", "998 68\n", "999 77\n", "Name: math_score, Length: 1000, dtype: int64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y" ] }, { "cell_type": "code", "execution_count": 10, "id": "1e290fe3", "metadata": {}, "outputs": [], "source": [ "# Create Column Transformer with 3 types of transformers\n", "num_features = X.select_dtypes(exclude=\"object\").columns\n", "cat_features = X.select_dtypes(include=\"object\").columns\n", "\n", "from sklearn.preprocessing import OneHotEncoder, StandardScaler\n", "from sklearn.compose import ColumnTransformer\n", "\n", "numeric_transformer = StandardScaler()\n", "oh_transformer = OneHotEncoder()\n", "\n", "preprocessor = ColumnTransformer(\n", " [\n", " (\"OneHotEncoder\", oh_transformer, cat_features),\n", " (\"StandardScaler\", numeric_transformer, num_features),\n", " ]\n", ")" ] }, { "cell_type": "code", "execution_count": 11, "id": "9c68f99a", "metadata": {}, "outputs": [], "source": [ "X = preprocessor.fit_transform(X)" ] }, { "cell_type": "code", "execution_count": 14, "id": "1f57b3ec", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1. , 0. , 0. , ..., 1. ,\n", " 0.19399858, 0.39149181],\n", " [ 1. , 0. , 0. , ..., 0. ,\n", " 1.42747598, 1.31326868],\n", " [ 1. , 0. , 0. , ..., 1. ,\n", " 1.77010859, 1.64247471],\n", " ...,\n", " [ 1. , 0. , 0. , ..., 0. ,\n", " 0.12547206, -0.20107904],\n", " [ 1. , 0. , 0. , ..., 0. ,\n", " 0.60515772, 0.58901542],\n", " [ 1. , 0. , 0. , ..., 1. ,\n", " 1.15336989, 1.18158627]])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X" ] }, { "cell_type": "code", "execution_count": 12, "id": "72459f1d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1000, 19)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.shape" ] }, { "cell_type": "code", "execution_count": 13, "id": "ed5c4e99", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((800, 19), (200, 19))" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# separate dataset into train and test\n", "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(\n", " X, y, test_size=0.2, random_state=42\n", ")\n", "X_train.shape, X_test.shape" ] }, { "cell_type": "markdown", "id": "4cd80317", "metadata": {}, "source": [ "#### Create an Evaluate Function to give all metrics after model Training" ] }, { "cell_type": "code", "execution_count": 15, "id": "8c247bd0", "metadata": {}, "outputs": [], "source": [ "def evaluate_model(true, predicted):\n", " mae = mean_absolute_error(true, predicted)\n", " # mse = mean_squared_error(true, predicted)\n", " rmse = np.sqrt(mean_squared_error(true, predicted))\n", " r2_square = r2_score(true, predicted)\n", " return mae, rmse, r2_square" ] }, { "cell_type": "code", "execution_count": 16, "id": "79ccb8e7", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear Regression\n", "Model performance for Training set\n", "- Root Mean Squared Error: 5.3231\n", "- Mean Absolute Error: 4.2667\n", "- R2 Score: 0.8743\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 5.3940\n", "- Mean Absolute Error: 4.2148\n", "- R2 Score: 0.8804\n", "===================================\n", "\n", "\n", "Lasso\n", "Model performance for Training set\n", "- Root Mean Squared Error: 6.5938\n", "- Mean Absolute Error: 5.2063\n", "- R2 Score: 0.8071\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 6.5197\n", "- Mean Absolute Error: 5.1579\n", "- R2 Score: 0.8253\n", "===================================\n", "\n", "\n", "Ridge\n", "Model performance for Training set\n", "- Root Mean Squared Error: 5.3233\n", "- Mean Absolute Error: 4.2650\n", "- R2 Score: 0.8743\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 5.3904\n", "- Mean Absolute Error: 4.2111\n", "- R2 Score: 0.8806\n", "===================================\n", "\n", "\n", "K-Neighbors Regressor\n", "Model performance for Training set\n", "- Root Mean Squared Error: 5.7079\n", "- Mean Absolute Error: 4.5168\n", "- R2 Score: 0.8555\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 7.2530\n", "- Mean Absolute Error: 5.6210\n", "- R2 Score: 0.7838\n", "===================================\n", "\n", "\n", "Decision Tree\n", "Model performance for Training set\n", "- Root Mean Squared Error: 0.2795\n", "- Mean Absolute Error: 0.0187\n", "- R2 Score: 0.9997\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 7.9294\n", "- Mean Absolute Error: 6.4050\n", "- R2 Score: 0.7416\n", "===================================\n", "\n", "\n", "Random Forest Regressor\n", "Model performance for Training set\n", "- Root Mean Squared Error: 2.3125\n", "- Mean Absolute Error: 1.8477\n", "- R2 Score: 0.9763\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 5.9646\n", "- Mean Absolute Error: 4.6275\n", "- R2 Score: 0.8538\n", "===================================\n", "\n", "\n", "XGBRegressor\n", "Model performance for Training set\n", "- Root Mean Squared Error: 1.0073\n", "- Mean Absolute Error: 0.6875\n", "- R2 Score: 0.9955\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 6.4733\n", "- Mean Absolute Error: 5.0577\n", "- R2 Score: 0.8278\n", "===================================\n", "\n", "\n", "CatBoosting Regressor\n", "Model performance for Training set\n", "- Root Mean Squared Error: 3.0427\n", "- Mean Absolute Error: 2.4054\n", "- R2 Score: 0.9589\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 6.0086\n", "- Mean Absolute Error: 4.6125\n", "- R2 Score: 0.8516\n", "===================================\n", "\n", "\n", "AdaBoost Regressor\n", "Model performance for Training set\n", "- Root Mean Squared Error: 5.8340\n", "- Mean Absolute Error: 4.7767\n", "- R2 Score: 0.8490\n", "----------------------------------\n", "Model performance for Test set\n", "- Root Mean Squared Error: 6.0478\n", "- Mean Absolute Error: 4.7079\n", "- R2 Score: 0.8497\n", "===================================\n", "\n", "\n" ] } ], "source": [ "models = {\n", " \"Linear Regression\": LinearRegression(),\n", " \"Lasso\": Lasso(),\n", " \"Ridge\": Ridge(),\n", " \"K-Neighbors Regressor\": KNeighborsRegressor(),\n", " \"Decision Tree\": DecisionTreeRegressor(),\n", " \"Random Forest Regressor\": RandomForestRegressor(),\n", " \"XGBRegressor\": XGBRegressor(),\n", " \"CatBoosting Regressor\": CatBoostRegressor(verbose=False),\n", " \"AdaBoost Regressor\": AdaBoostRegressor(),\n", "}\n", "model_list = []\n", "r2_list = []\n", "\n", "for i in range(len(list(models))):\n", " model = list(models.values())[i]\n", " model.fit(X_train, y_train) # Train model\n", "\n", " # Make predictions\n", " y_train_pred = model.predict(X_train)\n", " y_test_pred = model.predict(X_test)\n", "\n", " # Evaluate Train and Test dataset\n", " model_train_mae, model_train_rmse, model_train_r2 = evaluate_model(\n", " y_train, y_train_pred\n", " )\n", "\n", " model_test_mae, model_test_rmse, model_test_r2 = evaluate_model(y_test, y_test_pred)\n", "\n", " print(list(models.keys())[i])\n", " model_list.append(list(models.keys())[i])\n", "\n", " print(\"Model performance for Training set\")\n", " print(\"- Root Mean Squared Error: {:.4f}\".format(model_train_rmse))\n", " print(\"- Mean Absolute Error: {:.4f}\".format(model_train_mae))\n", " print(\"- R2 Score: {:.4f}\".format(model_train_r2))\n", "\n", " print(\"----------------------------------\")\n", "\n", " print(\"Model performance for Test set\")\n", " print(\"- Root Mean Squared Error: {:.4f}\".format(model_test_rmse))\n", " print(\"- Mean Absolute Error: {:.4f}\".format(model_test_mae))\n", " print(\"- R2 Score: {:.4f}\".format(model_test_r2))\n", " r2_list.append(model_test_r2)\n", "\n", " print(\"=\" * 35)\n", " print(\"\\n\")" ] }, { "cell_type": "markdown", "id": "06480b5a", "metadata": {}, "source": [ "### Results" ] }, { "cell_type": "code", "execution_count": 17, "id": "e0159e5f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Model NameR2_Score
2Ridge0.880593
0Linear Regression0.880433
5Random Forest Regressor0.853797
7CatBoosting Regressor0.851632
8AdaBoost Regressor0.849691
6XGBRegressor0.827797
1Lasso0.825320
3K-Neighbors Regressor0.783813
4Decision Tree0.741615
\n", "
" ], "text/plain": [ " Model Name R2_Score\n", "2 Ridge 0.880593\n", "0 Linear Regression 0.880433\n", "5 Random Forest Regressor 0.853797\n", "7 CatBoosting Regressor 0.851632\n", "8 AdaBoost Regressor 0.849691\n", "6 XGBRegressor 0.827797\n", "1 Lasso 0.825320\n", "3 K-Neighbors Regressor 0.783813\n", "4 Decision Tree 0.741615" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(\n", " list(zip(model_list, r2_list)), columns=[\"Model Name\", \"R2_Score\"]\n", ").sort_values(by=[\"R2_Score\"], ascending=False)" ] }, { "cell_type": "markdown", "id": "357a7c1c", "metadata": {}, "source": [ "## Linear Regression" ] }, { "cell_type": "code", "execution_count": 18, "id": "9a6ad559", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Accuracy of the model is 88.04\n" ] } ], "source": [ "lin_model = LinearRegression(fit_intercept=True)\n", "lin_model = lin_model.fit(X_train, y_train)\n", "y_pred = lin_model.predict(X_test)\n", "score = r2_score(y_test, y_pred) * 100\n", "print(\" Accuracy of the model is %.2f\" % score)" ] }, { "cell_type": "markdown", "id": "1d31453e", "metadata": {}, "source": [ "## Plot y_pred and y_test" ] }, { "cell_type": "code", "execution_count": 19, "id": "eb557b0a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Predicted')" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGwCAYAAACzXI8XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLgElEQVR4nO3deXhU9d3//9dkD0smBCQTkCUiFiIqIqIRu0EoCLd7FylYXG76k0Jlaa3SimgRcbmr1KpYKdpa3Oq3ouJCLwWKYgNBNqUoILIVSJAlCVtCyJzfH+mMmWSWc2bObMnzcV25LpmcnPnk1DpvPp/34jAMwxAAAEASSon3AgAAAMJFIAMAAJIWgQwAAEhaBDIAACBpEcgAAICkRSADAACSFoEMAABIWmnxXkC0ud1u7du3T+3bt5fD4Yj3cgAAgAmGYejo0aPq0qWLUlIC77u0+EBm37596tatW7yXAQAAwrBnzx6deeaZAb/f4gOZ9u3bS2p4EDk5OXFeDQAAMKO6ulrdunXzfo4H0uIDGc9xUk5ODoEMAABJJlRaCMm+AAAgaRHIAACApEUgAwAAkhaBDAAASFoEMgAAIGkRyAAAgKRFIAMAAJIWgQwAAEhaBDIAACBptfjOvgAAwH71bkNlOw7rwNEadW6fpUGFeUpNif1wZgIZAADiLFGCArOWbNqv+xZv1v6qGu9rBc4szbyySCP6FcR0LQQyAADEUSIFBWYs2bRfExauk9Hk9fKqGk1YuE7zxg6I6brJkQEAIE48QUHjIEb6OihYsml/nFbmX73b0H2LNzcLYiR5X7tv8WbVu/1dER0EMgAAxIEdQUG921Dp9kN6Y8NelW4/FPUAomzH4WZBV2OGpP1VNSrbcTiq62iMoyUAAOLASlBQ3Ktjs+/H40jqwNHA6w3nOjuwIwMAQBxEEhTE60iqc/ssW6+zA4EMAAA2MnvcE25QEM88lUGFeSpwZilQPZVDDbtCgwrzbH/vQDhaAgDAJlaOezxBQXlVjd+gxCHJ5ScoiPRIKhKpKQ7NvLJIExauk0PyWbcnuJl5ZVFMS8fZkQEAwAZWj3s8QYGkZjscwYKCeOepjOhXoHljB8jl9N0pcjmzYl56LbEjAwBAxEId9zjUcNwzrMjlE5h4goKmuziuIEm7iZCnMqJfgYYVuRKiiR+BDAAAEYrkuMdqUBDukZTdUlMcth9dhYNABgCACEV63GMlKEjEPJV4IkcGAIAIxfq4J9HyVOKJHRkAACIUj+OeRMpTiScCGQAAIhSv455EyVOJJ46WAACwAcc98cGODACg1al3G1E5khnRr0BD+uTrr6U7tevwCfXIa6Mbi3sqI419g2ghkAEAtCrRHLbo795/WrkjqoMcWztCRABAqxHNYYvxGuTY2hHIAABahWgOWwx1b0PSXa99qo+2HYzKMMfWjEAGANAqWOm+a/e9JanyRJ3GLFityx9axu6MjQhkAACtQjSHLVr5GY6a7EUgAwBoFax23613GyrdfkhvbNir0u2Hgh4JWenYG+kxFnxRtQQAaBWsdN+1WtkU6t5NBRsiCWvYkQEAtAqe7rvS1912PRp3331vc7nl6qNg9w4mnGMs+CKQAQC0eJ5jotrTbk0pOUf5Of677w4rcoWsPvr1ok+1aH3z46ZAnX2DsWuIZGvG0RIAoEXzd0zkysnU1JLe6tmprU9n39Lth0JWHx0+Xqepr2yQ1Py4yTPIcdWXhzTxhXWqPFnn9x7RGCLZWrEjAwBosQI1qauortXc97cpMy1Fxb06escTWD3q8XfclJri0OCzO+nB68+TQ8GPsVrbpOpoIJABALRI4TTAs3rUE6wCaUS/Av30W4VyNIlVHA7pf79ZKGd2hqmKKATH0RIAoEWy0gDPUzk0qDBPuW3SVXnC/5GQ2ftIDbtBz3ywo1kg5Tak+R/u0PwPd3hfs2vWU2vEjgwAoEWKZgO8UPcJthvkD03ywkcgAwBokaw2wJMadnGs7MYEu0+opOHGaJIXPo6WAAAJq95tqGzHYR04WqPO7bN0UY8OWrvriPfPnmojf6w0wPMIZ3fGrvvQJC88BDIAgITkr2w6xdGQY+IRLLfE06RuwsJ1ckg+wUygyiGryb523acxmuRZw9ESACDhBCqbbnrqEiq3JFCTOk8DvKYBkGcXx2xRdH5Opi33aYwmedawIwMASChWEmUNNeyK3Ld4s4YVufweM3ma1DU+ogp0JOXZxblt4TqTq/UfqgTbDQp2J5rkWceODAAgIXjGCDz23hbLibKe3JJAUlMcKu7VUVf37+rTAC9SFdWBd4SsjCygSV742JEBAMSdv3wYq+zILfHsBpkVakfI327QkeO1mvX2Z74jE+gjEzYCGQBAXHnyYSItOrYjt8Rq2bQUutrIsxvU2PB+BaaOuhAagQwAIG6sNo7zx87ckkh2daz8rL/gBuEhRwYAEDfh7IA0ZnduSSS7OlQbxQeBDAAgbqzugDSNVQKVUYcr3LLp3DbpVBvFCUdLAIC4MbuLMem7Z2vw2Z0sdfYNpmnHYM99wimblnyLsAPdG9FBIAMAiBuzYwSmDjvHGwyEyi0JFUj4q5Bq3CHYUzZtpYrqyIk6le04rKqTp4LeG/ZzGIbRoqdTVVdXy+l0qqqqSjk5OfFeDgCgCU/VkuR/jICVo6NQQUqgCil/7+UJiN7dtF/Pl+4K+d63Du6pZz/aaereCM3s5zc5MgCAuLI6RiCQQGMNPGMM3vlkX8AKKX/Tpz2VRVeYfP9FG/aavjfsw9ESACDurIwRaKrebWjVl4d0198/DRhIOCTd/cYmHT5eF/A+gfrBXNSjQ7NhlU2lOBTWvRE5AhkAQEIIp7eK2Y7AhoIHGo01raRau+tI0CBGCh7kBLs3IkcgAwBISnZ1BG7KU0nVOEfG7nvDPgQyAICEFagCyY6OwE017hAczuynDm3SVXmiLmj1Fb1m7EcgAwBISMEqkJzZGRF1BG6qcYfg9zaXh7XT85PiHnp86RfN+s8w2Tq6qFoCAMRFvdtQ6fZDemPDXpVuP+RT0ROqAum9zeW2rsVTITWsyBX2Ts9ZZ7QLu/oq2LNAcHHdkamvr9e9996rhQsXqry8XF26dNFNN92ku+++Ww5HQ9RqGIZmzpyp+fPnq7KyUoMHD9a8efPUu3fveC4dABCBYLstwYIJTwXSGxv22baWGaP66qbBhUpNcah0+6Gwd3o6t89Sca+OlquvQvW+QXBx3ZF56KGHNG/ePD3xxBP67LPP9NBDD+nhhx/WH/7wB+81Dz/8sB5//HE9/fTTWr16tdq2bavhw4erpobMbwBIRoF2W/b/d7fliWXbggYThqRDx08pr2160JlIbTJSTa2nU/tMb6ARTlWRQw2Bhyf/xVN9dXX/riru1TFkEBNs52mJjYnGLVVcA5l//etfuvrqqzVq1Cj17NlT3//+9/W9731PZWVlkhp2Y+bOnau7775bV199tc4//3w9//zz2rdvn15//XW/96ytrVV1dbXPFwAgMYRK0jUk/XHFl6budW3/rpLULJhx/Pfr//vWWabu07hK6eDRWlM/0/i9pPDyX4I9C5romRfXQOayyy7T0qVLtXXrVknSxo0btXLlSl1xxRWSpB07dqi8vFwlJSXen3E6nbrkkktUWlrq955z5syR0+n0fnXr1i36vwgAwJSyHYdDHt2cqKs3da+SIlfQnJRJQ3qrwBm83LmgUZXS5Q8t06y3PzP13k3fK5wjoFDPonETPQQW1xyZu+66S9XV1erTp49SU1NVX1+v2bNna8yYMZKk8vKGZK78/Hyfn8vPz/d+r6np06dr2rRp3j9XV1cTzABAgiivOmnLfXLbpMvtNjSsyBU0J+WqCwr0xw92BLxPUUF7PbHsC819f2vIBF/PfsuUknPUs1ObiCdbmz3GoolecHENZP72t7/phRde0Isvvqhzzz1XGzZs0JQpU9SlSxeNGzcurHtmZmYqMzPT5pUCAOxw+PgpW+5TeaJOYxas9psU66kAKq+u0atr/xP0Pks//0pLP//K1Hu6bE7ANdscjyZ6wcU1kLnjjjt011136YYbbpAknXfeedq1a5fmzJmjcePGyeVySZIqKipUUPD1vzgVFRXq379/PJYMAIhAXjt7/6LpSYr1HO+E08jOjMaVTXYZVJinAmeWyqtqaKIXgbjmyJw4cUIpKb5LSE1NldvtliQVFhbK5XJp6dKl3u9XV1dr9erVKi4ujulaAQCRc+WEt7vQJt1/BVLjpNh3PtnntwLIDo0rm6wK1CMmNcWhmVcWSfKfsCzRRM+MuO7IXHnllZo9e7a6d++uc889V+vXr9ejjz6qW265RZLkcDg0ZcoU3X///erdu7cKCws1Y8YMdenSRddcc008lw4ACINnF8JqsBEsAdiTFHvH3z+xfe6SR7jHO6F6xIzoV6B5Ywc0u8buY6yWzGEYRtzquo4ePaoZM2Zo0aJFOnDggLp06aLRo0frnnvuUUZGhqSvG+I988wzqqys1OWXX66nnnpK55xzjqn3qK6ultPpVFVVlXJycqL56wAATPD0TpFkKsHW+d8ZRvHgOd5ZeecQyzsjgYZaeu7SuNop0Eyp1szs53dcA5lYIJABgPhr+kF95PgpzXo7eC5L4yqhx97fGpuF+nn/cMqr692GLn9oWcDfL5IAqbUw+/nN0EgAQFQFOl75zRV9VHG0VrsOn9CJ2tNa+UVDpZGHq9HIgpfX7A6YFBstkRzvWOkRU9yrYwSrBIEMAMRRSz9SCHS8sr+qRpNe3uDzmisnU1NLeqtnp7bNnsXMK4s0YeG6ZpOlrXA4pJ9c2kN/Kd3ld0K1IQV8f6vs6BHT0v/dsAuBDADESUsfFhhqHEFTFdW1euz9bbplcE8NK3J571G247BqT7s1peQcvVS222fXxgrDkEb0K1Bxr45RT66NtEdMS/93w07kyABAHFhJBE1WpdsPafT8VWH/fG6bdEnySfR15WRq9KDuqqt364nl2y3f8/c39NfV/btGfbfDkyMTqkeMvxyZ1vDvhhlmP7/j2kcGAFqjWAwLDNS7xOo1kdz7oy/MdcwNpPJEXbNqpfLqWs19f5uKCnK8gY4Vnh0QKxOqwxFujxgGSVrH0RIAxJjVRFCruwdmjiXCPboI9952MiT99q3Nln8uxSFd1KOD/QsKIJweMSQJW0cgAwAxZiUR1GrAEehYonErf0khr7H73nYrr661/DNuQ1q760hMA4AR/QqCDrVsikGS1hHIAECMmU0E3XnwuOa+v810wBHqWMKhhmMJwzBCXjOsyOXzYWvm3ve++W9JjpiWSFsVjwDAc4xlBoMkrSNHBgBizNOmP9DhkEMNuy4vle22lCth9lgi2G5G46OLxszcu7y6NuyKolhJ9ADA7L8bDJL8GoEMAMSYmUTQGy7ubingsCO5trGmOxeJeJThzE4P+IHfVCwDgHCTqCUGSYaDQAYA4sCTCOpy+u4QuJxZmjd2gHp2amPqPp48mssfWhZWOXIgTXcuormTMbJfflg/d8vgQknNP/CbimUA4PnfYvT8VZr88gaNnr9Klz+0TEs27Td9j1D/brSG0msryJEBgDgJlghauv2QqXvsPHhCc9/faiovxdO7xDAMVVTXBu1v0nTnwnPkEawvSn5OpiSHKqqtjRIY3q9AV/XvaqnSqcCZpUlDztamfZV6b/OBoNfGapK0mWRos2uwmiTcmhHIAEAcBUoENRs4BMqj8Xe9JO+xhb92/8F2LjxHHrf9d2p1U4ake686V5ICXhNI5/ZZKu7V0eeDe+fB43rs/W1B1/jwks+CBjFD+5yh//1mr5gEAGYTrZsmUQdjJUm4NeNoCQASkJlcidGDuptOrm18LBHu0cX63UeCvkeo7zfVNG+lcZO6ySXn6OkgaxzSJ1/zP9wR9P7Lt3yli3p0iMkuhpX+L7AXOzIAkKBCNVSrPe02dZ9J3z1bU4ed4/OBbvXo4tRpt575IHjg8McPdsiVYy4XxEzeSrA1LvjwS4XKoXUb0l9Ld+rWb55lak2RoP9L/BDIAEACsyOPZvDZnfwGC1aOLv7yrx2mjrCs7BCZyVsJtMZdh0+Yeh+z10WK/i/xQyADAAkukjyaxom7kQxKXLPT2rFRMNf076KHv3+BMtLCz27okWeuqsvsdZGy+r8F7EOODAAkKSs9RyItC26bkWrbul/fsE/ffmS5pZLkpm4s7qlQMViKo+G6WKD/S/wQyABAEguWuDul5BzVnnbr9+9v04SF65olo3rKgs0EFNcNONPUesx+TFt5b38y0lI0/puFQa8Z/83CiHZ9rKL/S3w4DMNI5LEYEauurpbT6VRVVZVycnLivRwAiIrGx0Y7Dx7XS2W7TQ1W9Bx5rLxzSNDdgnq3oaJ7lgRNME5Pdaiu3vxHitn3DmbOO5s1/8MdPom/KY6GIGb6yKKw7hmpSI7w8DWzn9/kyABAC+DJo1myab/fQZOBNC4LDpX4m52RGjSQSUuxFshYee9Apo8s0i++10d/Ld2pXYdPqEdeG91Y3LPZTkwsgwv6v8QWgQwAtBDBmrKFEqosuGzHYVWeqAt6zck6c+XgVt87lIy0lKAl1ks27W9Wwl4Qo26/iD5yZACghQjVlC2YUGXB0ex/sq3imOXhimZ5xgZEkh+ExEYgAwAtQMP064OWf65pd91Ak5uj2f/kieVfhDVcMZRQYwMMNYwNiEYAhdjhaAkAkpy/oxMz/JVo3/vmZp+mdq6cLN17VZGGFblU4MwK+h757TP01bFTITvuBhLOcMVgzOxQRZqjg/hjRwYAkligoxMz8nMyfUq0b1u4rlln3vLqGt22cJ3e21yuqy4IHlwMKswLO4iR7N8lMdtl2Ox1SEzsyABAkookuVeSDhyt1WPvbzV17fTXPlVmiJ4sH24zNzIhFLt2SQ4fC11+buU6JCYCGQBIUpEk90qytHtyJETFkiRVngx9jVl27JLktc2w9TokJo6WACBJma0kapdp33iBUNqEGGWQnW5uLXbskric2bZeh8REIAMAScpsJdGx2voor+RrKY7gTeZCfNvLjl0SzyDHYAoY5Jj0CGQAIEl5PqgDxQYOSbnZ6TFZi0NSXtt0Has9HfS6E6fMBVV27JJ4BjkGez4Mckx+BDIAkKTMTFy+eXDPqK/D817X9u9q6vpQwZWduySeQY5Nd2YKGOTYYpDsCwBJzPNB3bSPjOu/LfiHFbn08po9Kq+qCbu6KRTPezmzM7Tgo50hry/p21n/b91ev9+Lxi7JiH4FGlbkYpBjC8X0awBoAYINRVyyab9uW7jO9vf8SXEPXdGvwPte9W5Dlz+0zFTQlNumYVem8fwm5h+hMaZfA0AcxXLashR84vL63UdM3aPAmaUZo4q0t/KEZr/zecjrhxe5fN7Tc9RlJmiq+m8AM7XkHPXs1IZdEoSNQAYAbBaPacuBAqdTp92a/+GOkD//6yv66KbBhUpNcejZlaGvl9Q8MccC478//vKa3Vp55xACGISNQAYAbOQZGdD0aKW8qqHV//cHdFWbzDT1yGujG4t7KiNEt1yz73nvm/9WefXXvVdcOZm696pztffISVON7x5493M9tWK7JN/jnmAONun14uk0bJah0F18Y72zheRDIAMANgk1bVmST5Lr7Hc+0/hvFmr6yCLL7+P5cN958Lgee39bs2vKq2t128J1+vY5nUzf12wA49G0j024nYYDNfaLx84Wkg+BDADYxOoHuduQ/vhBwzGO2WDG6qTrsh2HTa/HihSHdFGPDj6vme003JS/xn7BdrbsnJCN5EcfGQCwSbgf5PM/3KFTp90hrwtn0vXJutD3DYfbkNbu8k0iNttp2MMh/z1jzOxs2TUhG8mPQAYAbGL1g9zDbUh/Ld0pqeFDvHT7Ib2xYa9Ktx/yflhHMum69xltw1pXKE0Dt1CdhhvzXOOvZ0yona3GuTUAR0sAYBPPB3k4zed2HT4RNGnXmZ0R9qTrbV8dV2ZaimpN7PpY0TRws1J+7QqS62J2Z+ujL74i+RfsyACAXYKNDAjlRO1p3bZwnU8QI32dtPv+5vKI1mZnEBPoSMiMWwf31EvjL9XKO4cEzHExu7P1xPLtuvyhZVqyab/ldaDlIJABABt5Rga4QkxdbizFIb23uSLoNa98vCfSpdki2JFQqPJrh6R3NpUH3EXxHKuVV51UXtsMU8GgJ/mXYKb14mgJAGzWdLbPe5sr9NYngT9or+jn0tufBt9xOVZbrw5t0lV5oi5qM5PMCHYkZCW3pWnfGKvVWI3v6VBD8u+wIhfHTK0QgQwAREHjkQFX9++qrrmbNf/DHT7N6VIc0vhvFio91dzm+KVn5WnJpgo5pLgEMzde2l33XtUvYLBgNrel6XWBSq3NMtNYDy0XgQwAxMD0kUX6xff66K+lO7Xr8Amfzr7/948tpu7R64z2mje2a1g7F3YY0CN4Yq3Z3JbG15mpxmqbmarjtfUh7xtu+TuSG4EMAMRIRlqKbv3mWc1eL+7VUU8s/yLkzxf36qjBZ3fyHluVV53UrLc/0+Hjp8Jek0NSXtsMHTJxD1dO8EAlVNWWQw1HU42ThM00ETQTxEjhl78juZHsCwAxEqhHzKVndVRum/SgP9suM00Hqmt8fm77V8ciDmIk6d6rzlWo1BJ/nXybCla1FShJ2OwuSm52esDk30iqqJD82JEBgBgINTfowevOC9p/5VjtaU3920ZJDUGFHU1tPYm7zuyMkPfzdPINlYPiqdpq+rsGShI2u4ty8+BCzX1/a7P8oGBVVGgdCGQAIMpCTcSeWtJbPTu11ZXnu/TWJ+Uhk14jCWLy2qZrxv+cK1fO15Ok39iwN/QPyvzuSdOqrWBTq80eR00acra+4WpnOkBC60EgAwBR4JlQXV5do1lv/Tvo3CB/06uj5fDxOrlysnx2VsJJ0g2lcdVWqOtmXlmkCQvXhdxtsRIgofUgkAEAm4XbEyVWAs1IspKkaycrx1FmAyS0HgQyAGCjSHuixILVGUmGop+Dwm4LwkUgAwAheI6JQn3ARjKh2i7Beq5Ee2clUuy2IBwEMgAQRKhqI496t6E/f7QjbsdJniBlxqi+mvjieknmq3vMzEhiBAASFX1kALRqgXq7SF8fEzUNTpoOKlyyab8uf2iZZr39WUzX7tE4SBl5fhe/QytdzizNGzsg4hlJQKJhRwZAqxVst2VYkSvgMVHjQYVut6GJL66P6XFS0z4yTZNizeabeI7M3jU5OZoRAEhEBDIAWqVgvV0mLFynKSXnmNqluPO1T0wHMZ5xAH0K2uujLw6FuXLpjHYZ+vElPdSzU9uAQUqofJNwKqsYAYBExNESgFYnWFKu57Xn/rXD1L2O1pibA+Qx+9p+GvKNzpZ+pqkDR09p7vvblJmWouJeHU3nrXiO0X67+N+6zc+RWSCMAEAiY0cGQKtjJiek8kSdre+Z4pDGf7NQI/oV6NRpt2a/81nYHXo9P3bX3z9V+6x0XXpW6GAm3N42jABAomNHBkCrY8egQqsMQ3rmgx1asmm/MtJSNP6bhRHfs/Jkncb8abUuf2iZN/HYn0BJy2YESxIGEgGBDIBWx/ygwp62JfF67nPf4s2qdxuaPrJI/9+3CkNOnTajaRWV9PUx0qL1e/XrRZ9a/j1+UtxDL42/VCvvHEIQg4QW90Bm7969Gjt2rDp27Kjs7Gydd955+vjjj73fNwxD99xzjwoKCpSdna2SkhJt2xa7uSQAElOwsulQBhXmKbdNetBrOrRJV+/O7SNdpo+mZczTRxbp81lX6Dcj+6pNempE95W+DpI85eCj56/S1Fc26PBx68dkV/QrsJR/A8RLXHNkjhw5osGDB+u73/2u3n33XZ1xxhnatm2bOnTo4L3m4Ycf1uOPP66//OUvKiws1IwZMzR8+HBt3rxZWVlk0AOtkdkmdZGoqavX3W9ssuVeTTU+2spIS1G/rk6dqLOWNNyUJ0h6YtkXmvv+1rB3khK9+y/QVFwDmYceekjdunXTc889532tsPDrc2PDMDR37lzdfffduvrqqyVJzz//vPLz8/X666/rhhtuiPmaAURfsJEAocqmzeRzlO04HDKZ92SdWyfrTkXyawTU9GjLzv4sz320I6LjsFjMVQLsFNejpTfffFMDBw7UD37wA3Xu3FkXXnih5s+f7/3+jh07VF5erpKSEu9rTqdTl1xyiUpLS/3es7a2VtXV1T5fAJJH42ORyS9v0Oj5q7zJrGbKpj3HK/54jqPMNoCzW6AyZjv7s1SetLfaCkh0cQ1kvvzyS82bN0+9e/fWP/7xD02YMEG33367/vKXv0iSysvLJUn5+fk+P5efn+/9XlNz5syR0+n0fnXr1i26vwQA2wSqrtlfVaPbFq7TpBeDV94Ea6XfOEB6vnSX3UsPKVgZ86DCPBU4s4JWSHVokyZnduC8HocaqqzsWGewYBBINHENZNxutwYMGKAHHnhAF154oX76059q/Pjxevrpp8O+5/Tp01VVVeX92rNnj40rBhAtZiZHv7vJ/19gmmp6VBNJ+bFdgpUxp6Y4NPPKIklqFsw4/vs157rz9dD153n/3PQaqaHKKlLMVUKyiWsgU1BQoKKiIp/X+vbtq927d0uSXC6XJKmiosLnmoqKCu/3msrMzFROTo7PF4DEF6pJnRWNj2rMBEjRNmNU35BlzCP6FYQc9ui5Jj/H/zWThvQOurPjkNQu01xqJHOVkCzimuw7ePBgbdmyxee1rVu3qkePHpIaEn9dLpeWLl2q/v37S5Kqq6u1evVqTZgwIdbLBRBFdnxw+qu4sTNA8mg6tDHomhzSjcU9TSXPmh32qCZhmWE0/NmzszNh4To5mlzlucP4b56lx97fGnItzFVCsohrIDN16lRddtlleuCBB/TDH/5QZWVleuaZZ/TMM89IkhwOh6ZMmaL7779fvXv39pZfd+nSRddcc008lw7AZpF+cAbKQbFzZ+HGS3to5HkFuqhHB63ddUQrt32lJ/+5PejPGIa0ZsdhDe7dye/3/VVoBRr2GKhiq6K61qdia97YAc3K012Npnq/vGa3yqtq/O5SUX6NZBPXQObiiy/WokWLNH36dP32t79VYWGh5s6dqzFjxniv+dWvfqXjx4/rpz/9qSorK3X55ZdryZIl9JABkkCwMuqmPAmvgT5gQ3EF6CNj587CyPMKvEFGca+O+uiLr0z9XOmXB/0GMlb64YSq2PIk6Q4rcoXc2Qm1a0P5NZKJw/DsSbZQ1dXVcjqdqqqqIl8GiKFwmtZ5dhykpocngU36bi8NPvuMgEFSvdvQ5Q8tCztA8ihwZmnlnUN83uP//rFFTyz/wsQaz9Yvh3/D57VAuyueuzdNDC7dfkij568K+V4vjb804I5O0/ePdlNBIBJmP7+Zfg3AduE2rQt0LBJIhzbpmjrsG0F3D4LljZgRbJeiuFdHU4FM08DCyu6K5z3NHpGZvc58Pg6Q2AhkANgqnA/pxjwfsKu2H9L4v36sE6cCt+43G5QECpAKnFmaMaqvOrTN1IGjNdp58LheKtut8upa7zWBjqwk6eKeeXI4GvJgAnE4Gq5rLFQCcuMSaE8QZPaIzMpRWmqKw9TuDZDICGQA2CqcD+mmUlMcSklxBA1iJKnyRF3Q+zRmdgdi0pDepncp1u46EjSIkRqCnLW7jvisMZzdlVA5RCTporUikAFgK7uOQOw+SpHM7UBY2aUw+94ffXHQJyAKZ3fFTGk1SbpojeLaEA9Ay2PXEUg0jlLsZva9n1j+hXdelBR6JEGgmUxmmuYBrQ07MgBsZdcRSDIcpQwqzFNum/SQk7Sl5onO4e6ukKQL+DK9I9N0onSwLwCtl+cIJFDqiCFzRyCh5g/J5H3s4Jma/caGvSrdfiisgYpNp3NHsrviOf66un9XFffqSBCDVs30jkxubq4cDnP/Z6mvD56gBwBmhOpSG4ujlGD9VpzZGaZ2YzyaJjr7213xdA1+Y8NedlsAE0wHMsuXL/f+886dO3XXXXfppptuUnFxsSSptLRUf/nLXzRnzhz7VwkgaXjKrwMJVX7dVDyPUkL1wwl32nTjJOHGycVLNu3Xtx9ZTpM6wIKwOvsOHTpU//u//6vRo0f7vP7iiy/qmWee0T//+U+71hcxOvsCsWV3B9p48XQEDlRK7pCU1zZDh46fsnxvf7+71U6/QEtn9vM7rKql0tJSDRw4sNnrAwcOVFlZWTi3BNBCRKNsOh7M9MM5dPyU8tqmB6w+8ievbbrKq2t8cm1CNRGUvs6tAeArrECmW7dumj9/frPX//SnP6lbt24RLwpA8opX2bQdCbmNmQ20ru3fVVLzhORADh+v09RXNmj0/FXekmwrTQQB+Aqr/Pqxxx7T9ddfr3fffVeXXHKJJKmsrEzbtm3T3//+d1sXCCC5eMqmg30w++uREgmzAxCtTOM2G2iVFLl0cWFes/dPcUihYimruTaJvosFxENYgczIkSO1detWzZs3T59//rkk6corr9Rtt93GjgzQyqWmOHTVBQX64wc7Al5z1QUFtiXrmh1QaXXas5U+NqkpjoDVR+VVJzXr7c902E8ujWf21Bsb9pn6XePZ/A9IVGEl+yYTkn2B2AqVJCs1BBAr7xwScTBj9r1mjOqriS+uD5hIO6XkHPXs1KbZLo0nSJL8N60zk4BrNvm5bWaqjtcGbl2R2yZda+8eRik2Wo2oJvtK0ocffqixY8fqsssu0969eyVJf/3rX7Vy5cpwbwmgBQiV7yFZz/cIlP9i9r3ufmNTwERaQ9Jj72/V5Jd981akr/vY5OeEPxLA7HFQqL9SEr4A/oUVyPz973/X8OHDlZ2drXXr1qm2tmHkfVVVlR544AFbFwggudhdtbRk035d/tAyjZ6/qlmwUV5t7h6Hj5tvWuc5kvIEMw18owwrG9lmj4NCTfo+8t9J3wB8hRXI3H///Xr66ac1f/58paene18fPHiw1q1bZ9viACSfTu0ybbvOc7TTdNfFE2x8tO2rsNYYTONy53c+aXj/8upan2sqqmv9BDv+mRkQmdsmPcB3fZHsCzQXViCzZcsWfetb32r2utPpVGVlZaRrApDMzG5WhLguVG8VQ9L7nx2wtjaTPOXOwY6kJHO9XczMjLr5skJT6yLZF2gurEDG5XLpiy++aPb6ypUrddZZZ0W8KADJ6+Dx2tAXmbjOTP5L5UlzR0Z5bTNMXdeUv0ojDyu9XUINiJw05OyQuzZ2l6wDLUVY5dfjx4/X5MmT9eyzz8rhcGjfvn0qLS3VL3/5S82YMcPuNQJIInY1xDOb/9ImPVUn6oJX+1w/oKvmfxi4HDwSZo97Qs2MmnllkSYsXCeH/FdIxWrSN5Bswgpk7rrrLrndbg0dOlQnTpzQt771LWVmZuqXv/ylfv7zn9u9RgBJxEr/lWAOHzO3s+MOcUblkLR4o7k+LY1/pkPbdFNJwlaOexoPiGwqESZ9A8kooj4yp06d0hdffKFjx46pqKhI7dq1s3NttqCPDBB7dvRfWbTuP5r6t43RWWAQnjU++eMLNevtz0IGZHb0w2nMSvdhoCWLah+ZW265RUePHlVGRoaKioo0aNAgtWvXTsePH9ctt9wS9qIBtAyhckLM7C64nNnRWl6I921Y48jzu4RM0o3GcY9n1+bq/l1V3KsjQQwQQlg7Mqmpqdq/f786d+7s8/rBgwflcrl0+vRp2xYYKXZkgPiJZHfBTNfePJPHP2ZM+m4vDT77DO9oAc+ajxyv1ay3PzM92gCAPcx+flvKkamurpZhGDIMQ0ePHlVW1td/26qvr9c777zTLLgBgHB4ypb9zVGSGnZF7r+6n6njH8MwVFFdG/SaqcO+ofc2l+vbjyxvFrTMGFWkDm0zOO4BEpClQCY3N1cOh0MOh0PnnHNOs+87HA7dd999ti0OQPKyOqTRH88R1b1v/tunKZ0rJ1P3XnWuRvQrUEqKI2S1j6SQ17y3uTzg8MmJLzYMn7y6f1dT6wYQO5YCmeXLl8swDA0ZMkR///vflZf3ddVBRkaGevTooS5duti+SADRZXeCqdmJ1OY1z1Jx/3f+Uu1pt6aUnKOXynb7lGw3rfYJVhE0rMilyx9aFrD5nUMNze+GFbnYiQESTFg5Mrt27VL37t3lcCT+/6HJkQGCs2PnpLFQuS1Wqn0CBUT+5LfP1Dd7n6E2manqkddGNxb3VEaabz1DoIDN7ITql8ZfGrB8GoC9opIj47Fs2TK1a9dOP/jBD3xef/XVV3XixAmNGzcunNsCiDH7d05Cd+Rt3BE3WFAQbESBPxVHa/X/1v3H++c/rdzRLBgL1MfF7kGXVlBuDUQmrPLrOXPmqFOnTs1e79y5M9OvgSQRapaRZG6WUFN2BAX1bkN//mhHyBEFwfifYu2fXd2IrQo22RuAOWEFMrt371ZhYfMhZz169NDu3bsjXhSA6LOyc2JFpEGB58N91tufWXrfpqwEY2YmVNs96yjUZG+CGcCcsAKZzp0765NPPmn2+saNG9WxI+fHQDKIxnFKvduQ220oNzs94DXBgoJAH+7hMhuMmZlQbWfzu2jthgGtUViBzOjRo3X77bdr+fLlqq+vV319vZYtW6bJkyfrhhtusHuNAKLA7uMUz07KmAWrA06lDhYUWM2JscJMMGZHN2KzorUbBrRGYSX7zpo1Szt37tTQoUOVltZwC7fbrZ/85CfkyABJwq7hjpL56qJgAxBDfbhHwmwwFmpCtV3imVwMtDRhBTIZGRl65ZVXNGvWLG3cuFHZ2dk677zz1KNHD7vXByBKGnfODdYoLtSHuJmdlNzsdD05ZoAuPSvw7KBofGhbCcY8gk2otku8kouBliisQMbjnHPO8dvhF0By8BynBGoUZ+Y4xcxOSuXJOqU4HEpNcQQsNzb7oT1jVF8VOLM16+3NQd83moMdI2XnbhjQ2pkOZKZNm6ZZs2apbdu2mjZtWtBrH3300YgXBiA2Ij1OsXJMsmTT/oDjBoYVuUx9uN80uFCpKQ4N7/f1mncePP7fzr6N7htmU79Y9HWxazcMgIVAZv369aqrq/P+cyDJ0O0XgK9IjlPM7qTsPHhcj72/rdnr5dW1um3hOj09doClD/ema540pHfEAYjdXY6DsWM3DECYIwqSCSMK0JrEo0usZyRBqJ2Uk6dOq/Lk6YD3yW2TrrV3D9N7m8tjFkw0Fihh2fP07K5c8qCzL+BfVEcUAEg8kewmRPJhGuqYxJB0wZk5WvLvA0HvU3miTqu2H4pZ5VBjofq6RHNoZCySi4GWzHQgc91115m+6WuvvRbWYgCEJ5KZSXYcpwQ6JnE4JMNQyCDGo/TLgxrcu/n4k2izaz4UgNgzHcg4nU7vPxuGoUWLFsnpdGrgwIGSpLVr16qystJSwAMgcpHsJtg5NLLxTsr7m8u14KOdst6Y1hHTPBUP+roAyct0IPPcc895//nOO+/UD3/4Qz399NNKTU2VJNXX1+tnP/sZeShAjIW7mxCN45TUFIcGFeZp2t82WPkVvNJSZPs0bjOi0deF3BcgNsLKkXn22We1cuVKbxAjSampqZo2bZouu+wyPfLII7YtEEBw4e4mROs4JdwOvR3apOvlNXvikqdid1+XeOwqAa1VWLOWTp8+rc8//7zZ659//rncbnfEiwJgXri7CdE6Tgn3+OWmywp9+sA0Fc35Q3YOjWSqNRBbYe3I3Hzzzbr11lu1fft2DRo0SJK0evVqPfjgg7r55pttXSCA4MLdTYhWm3yr13t2KmpPm/tLULTyVOzo6xLP6iegtQorkPm///s/uVwu/e53v9P+/Q1/uygoKNAdd9yhX/ziF7YuEEBw4XaJjVab/FD3laS8tuma8T/nypXzde5I6fZDpu4fzflDkZZ+U/0ExF5YR0spKSn61a9+pb1796qyslKVlZXau3evfvWrX/nkzQCIDc9ugsvp+yHvcmYFTJC18zjFyn0dkh649jxde2FXFff6eoikJwAK9m652elyG4bqrZdDmebp63J1f9/1mUH1ExB7YXf2PX36tP75z39q+/bt+vGPf6z27dtr3759ysnJUbt27exeZ9jo7IvWJJxKmWglpoZzX09+iaSg07QTNXG2dPshjZ6/KuR1L42/lB0ZIASzn99hBTK7du3SiBEjtHv3btXW1mrr1q0666yzNHnyZNXW1urpp5+OaPF2IpABQotWqbBdgVVTZscGxLoE2uy4hpV3DiFHBgghqiMKJk+erIEDB2rjxo3q2PHrv1Vce+21Gj9+fDi3BBBH0WqTH859PXkqq7Yf0sQX16nyZF2za/wlzjYNWo4cP6VZb8e2BJqp1kDshRXIfPjhh/rXv/6ljIwMn9d79uypvXv32rIwAK1XaopDKSkOv0GMR+PE2aqTp0Lu4kjRb6wnMdUaiLWwAhm32636+vpmr//nP/9R+/btI14UAJhNiH1/c7me/Whn0Jwaj1iVQMdj8CXQWoVVtfS9731Pc+fO9f7Z4XDo2LFjmjlzpkaOHGnX2gC0YmbLrBdt2GsqiPGIZmO9xiKpfgJgXth9ZEaMGKGioiLV1NToxz/+sbZt26ZOnTrppZdesnuNAFohM31u8tpm6NDxU2HdnxJooGUIa0emW7du2rhxo37zm99o6tSpuvDCC/Xggw9q/fr16ty5s91rBNAKmelzc3X/LmHfP5qN9QDEjuXy67q6OvXp00dvvfWW+vbtG6112YbyayC5BetH48zOMNW3pTFKoIHkELXy6/T0dNXUsCULIDQ7+rgES5ytdxshxyE0Rgk00PKE1RDvgQce0NatW/WnP/1JaWlhpdnEDDsyQHxEq2Owv/cx0w04Wu8PIDqi2tn32muv1dKlS9WuXTudd955atu2rc/3X3vtNesrjhICGSD2PMFF0/+4mO3IG877+QuaZozqqw5tMymBBpJQVDv75ubm6vrrrw97cQBarnq3ofsWb/a7OxKtPi70bQFaL0uBjNvt1iOPPKKtW7fq1KlTGjJkiO69915lZ2dHa30AkkzZjsNBO+w27uNi51iEaI1ZAJDYLJVfz549W7/+9a/Vrl07de3aVY8//rgmTpwYrbUBSEJm+7PQxwWAHSwFMs8//7yeeuop/eMf/9Drr7+uxYsX64UXXpDb7Y54IQ8++KAcDoemTJnifa2mpkYTJ05Ux44d1a5dO11//fWqqKiI+L0ARI/Z/iz0cQFgB0uBzO7du31GEJSUlMjhcGjfvn0RLWLNmjX64x//qPPPP9/n9alTp2rx4sV69dVXtWLFCu3bt0/XXXddRO8FILo8HXkDZac41JCIO6gwL5bLAtBCWQpkTp8+raws379Fpaenq64u8ITaUI4dO6YxY8Zo/vz56tChg/f1qqoqLViwQI8++qiGDBmiiy66SM8995z+9a9/adUqaw2wAFhT7zZUuv2Q3tiwV6XbD6nebb640UxHXvq4ALCLpWRfwzB00003KTMz0/taTU2NbrvtNp8SbCvl1xMnTtSoUaNUUlKi+++/3/v62rVrVVdXp5KSEu9rffr0Uffu3VVaWqpLL73U7/1qa2tVW1vr/XN1dbXptQAw3/8lWLO7Ef0KNG/sgGb3cdHHBYDNLAUy48aNa/ba2LFjw37zl19+WevWrdOaNWuafa+8vFwZGRnKzc31eT0/P1/l5eUB7zlnzhzdd999Ya8JaM0C9X8pr6rRhIXrvP1fzAQ7lEQDiAVLgcxzzz1n2xvv2bNHkydP1nvvvdfsuCoS06dP17Rp07x/rq6uVrdu3Wy7P9BSme3/4nYbmvji+pDBjkRJNIDoC2v6tR3Wrl2rAwcOaMCAAUpLS1NaWppWrFihxx9/XGlpacrPz9epU6dUWVnp83MVFRVyuVwB75uZmamcnByfLwChme3/cvcbmwIGO1JDsGMlpwYAIhG3QGbo0KH69NNPtWHDBu/XwIEDNWbMGO8/p6ena+nSpd6f2bJli3bv3q3i4uJ4LRtoscz2dTl8PHByf+NmdwAQC3Gb+Ni+fXv169fP57W2bduqY8eO3tdvvfVWTZs2TXl5ecrJydHPf/5zFRcXB0z0BRA+O/u60OwOQKwk9Ojqxx57TCkpKbr++utVW1ur4cOH66mnnor3soAWydP/pbyqxu/RkUNSXtsMHTp+KuS9aHYHIFbCmn6dTJh+DZjnqVqS5BPMeOqMnvzxAM16e3PQYMflzNLKO4dQnQQgImY/v+OWIwO0VJE0k4s3T/8Xl9N3R8XlzNK8sQM08vwCmt0BSCjsyAA2MttMzi7BmtJF876x/j0BtD5mP78JZACbBGom5/n4b9xfxa73i2cwEa0gCgAkAhkvAhnEQr3b0OUPLQvYh8Xu3JFYB00AEGvkyAAxZLaZnB39VUJ14JVoSgeg9SCQAWxgtm+KHf1VYhk0AUCiI5ABbGC2b4od/VViGTQBQKIjkAEi4Cm1Lq+uUV7b9IDXOdSQiDuoMC/i94xl0AQAiS6hO/sCicxf1ZA/dvdXMdOB12VT0AQAiY4dGSAMnqqhUEGM9HUzObuqiFJTHDSlA4D/YkcGsChY1ZD09Uyiu0f1lcuZHZX+Kp4OvE13hFw0pQPQyhDIABaZqRo6dPyUXM5sFffqGLV1jOhXoGFFLprSAWjVCGQAi6JRNRRul9zUFEdUgyUASHQEMoBFdlcNxXvUAAAkM5J9AYs8VUOB9kuslFoHShour6rRhIXrtGTT/sgXDAAtGIEMYJFdVUOMGgCAyBHIAGHwVA25nL7HR1ZKrRk1AACRI0cGCFOkVUOMGgCAyBHIABGIpGqIUQMAEDmOloA4sTNpGABaKwIZIE4YNQAAkSOQAeIoWNLwkz8eIGd2ht7YsFel2w9RvQQAfpAjA8SZv6ThI8drNettmuQBQCjsyAAJwJM0fHX/rqo6eUoTX1xPkzwAMIFABkggNMkDAGsIZIAEQpM8ALCGQAZIIDTJAwBrSPZFwqh3G2F3yW0paJIHANYQyCAhLNm0X/ctpkrH0ySvvKrGb56MQw2l2TTJA4AGHC0h7pZs2q8JC9dRpSOa5AGAVQQyiCuqdJqzY7I2ALQWHC0hrqxU6YQ7nDEZRTpZGwBaCwIZxBVVOoFFMlkbAFoLjpYQV1TpAAAiQSCDuPJU6QQ6MHGooXqJKh0AgD8EMogrqnQAAJEgkEHcUaUDAAgXyb5ICFTpAADCQSCDhEGVDgDAKo6WAABA0iKQAQAASYujJcACJnQDQGIhkAFMYkI3ACQejpYAE5jQDQCJiUAGCIEJ3QCQuAhkgBDMTuj+80c7CGYAIMYIZIAQzE7envX2Z7r8oWUcMwFADBHIACFYmbxNzgwAxBaBDBBAvdtQ6fZDKq+uUV7bdFM/Q84MAMQW5deAH/5Krc3y5MyU7TjMyAUAiDICGaAJT6l1pPspZnNrAADh42gJaCRYqbUkOSTlZJmL/63k1gAAwkMgAzRiptS6uua08tqmK9BgAocaOv4OKsyLxhIBAI0QyACNmD0OurZ/V0lqFsx4/jzzyiJmMAFADBDIAI2YPQ4qKXJp3tgBcjl9r3c5szRv7ABmLwFAjJDsCzQyqDBPBc4slVfV+M2TcaghWPFMvR5W5GIaNgDEEYEM0EhqikMzryzShIXr5JB8ghl/x0apKQ5KrAEgjjhaApoY0a+AYyMASBLsyAB+jOhXwLERACQBAhkgAI6NACDxcbQEAACSFoEMAABIWgQyAAAgaRHIAACApBXXQGbOnDm6+OKL1b59e3Xu3FnXXHONtmzZ4nNNTU2NJk6cqI4dO6pdu3a6/vrrVVFREacVAwCARBLXQGbFihWaOHGiVq1apffee091dXX63ve+p+PHj3uvmTp1qhYvXqxXX31VK1as0L59+3TdddfFcdUAACBROAzD8NeJPS6++uorde7cWStWrNC3vvUtVVVV6YwzztCLL76o73//+5Kkzz//XH379lVpaakuvfTSZveora1VbW2t98/V1dXq1q2bqqqqlJOTE7PfBQAAhK+6ulpOpzPk53dC5chUVVVJkvLy8iRJa9euVV1dnUpKSrzX9OnTR927d1dpaanfe8yZM0dOp9P71a1bt+gvHAAAxEXCBDJut1tTpkzR4MGD1a9fP0lSeXm5MjIylJub63Ntfn6+ysvL/d5n+vTpqqqq8n7t2bMn2ksHAABxkjCdfSdOnKhNmzZp5cqVEd0nMzNTmZmZNq0KAAAksoTYkZk0aZLeeustLV++XGeeeab3dZfLpVOnTqmystLn+oqKCrlcrhivEgAAJJq4BjKGYWjSpElatGiRli1bpsLCQp/vX3TRRUpPT9fSpUu9r23ZskW7d+9WcXFxrJcLAAASTFyPliZOnKgXX3xRb7zxhtq3b+/Ne3E6ncrOzpbT6dStt96qadOmKS8vTzk5Ofr5z3+u4uJivxVLAACgdYlr+bXD4fD7+nPPPaebbrpJUkNDvF/84hd66aWXVFtbq+HDh+upp54yfbRktnwLAAAkDrOf3wnVRyYaCGQAAEg+SdlHBgAAwAoCGQAAkLQIZAAAQNIikAEAAEmLQAYAACQtAhkAAJC0CGQAAEDSIpABAABJi0AGAAAkLQIZAACQtAhkAABA0iKQAQAASYtABgAAJC0CGQAAkLQIZAAAQNIikAEAAEmLQAYAACQtAhkAAJC0CGQAAEDSIpABAABJi0AGAAAkLQIZAACQtAhkAABA0iKQAQAASYtABgAAJC0CGQAAkLQIZAAAQNIikAEAAEmLQAYAACQtAhkAAJC0CGQAAEDSIpABAABJi0AGAAAkLQIZAACQtAhkAABA0iKQAQAASYtABgAAJC0CGQAAkLQIZAAAQNIikAEAAEmLQAYAACQtAhkAAJC0CGQAAEDSIpABAABJi0AGAAAkLQIZAACQtAhkAABA0iKQAQAASSst3gtIRvVuQ2U7DuvA0Rp1bp+lQYV5Sk1xxHtZAAC0OgQyFi3ZtF/3Ld6s/VU13tcKnFmaeWWRRvQriOPKAABofThasmDJpv2asHCdTxAjSeVVNZqwcJ2WbNofp5UBANA6EciYVO82dN/izTL8fM/z2n2LN6ve7e8KAAAQDQQyJpXtONxsJ6YxQ9L+qhqV7Tgcu0UBANDKEciYdOBo4CAmnOsAAEDkCGRM6tw+y9brAABA5AhkTBpUmKcCZ5YCFVk71FC9NKgwL5bLAgCgVSOQMSk1xaGZVxZJUrNgxvPnmVcW0U8GAIAYIpCxYES/As0bO0Aup+/xkcuZpXljB9BHBgCAGKMhnkUj+hVoWJGLzr4AACQAApkwpKY4VNyrY7yXAQBAq8fREgAASFoEMgAAIGkRyAAAgKSVFIHMk08+qZ49eyorK0uXXHKJysrK4r0kAACQABI+kHnllVc0bdo0zZw5U+vWrdMFF1yg4cOH68CBA/FeGgAAiLOED2QeffRRjR8/XjfffLOKior09NNPq02bNnr22WfjvTQAABBnCR3InDp1SmvXrlVJSYn3tZSUFJWUlKi0tNTvz9TW1qq6utrnCwAAtEwJHcgcPHhQ9fX1ys/P93k9Pz9f5eXlfn9mzpw5cjqd3q9u3brFYqkAACAOEjqQCcf06dNVVVXl/dqzZ0+8lwQAAKIkoTv7durUSampqaqoqPB5vaKiQi6Xy+/PZGZmKjMz0/tnwzAkiSMmAACSiOdz2/M5HkhCBzIZGRm66KKLtHTpUl1zzTWSJLfbraVLl2rSpEmm7nH06FFJ4ogJAIAkdPToUTmdzoDfT+hARpKmTZumcePGaeDAgRo0aJDmzp2r48eP6+abbzb18126dNGePXvUvn17ORz2DXasrq5Wt27dtGfPHuXk5Nh2XzTHs44NnnNs8Jxjg+ccG9F8zoZh6OjRo+rSpUvQ6xI+kPnRj36kr776Svfcc4/Ky8vVv39/LVmypFkCcCApKSk688wzo7a+nJwc/k8SIzzr2OA5xwbPOTZ4zrERreccbCfGI+EDGUmaNGmS6aMkAADQerS4qiUAANB6EMiEKTMzUzNnzvSpkEJ08Kxjg+ccGzzn2OA5x0YiPGeHEaquCQAAIEGxIwMAAJIWgQwAAEhaBDIAACBpEcgAAICkRSATpieffFI9e/ZUVlaWLrnkEpWVlcV7SUltzpw5uvjii9W+fXt17txZ11xzjbZs2eJzTU1NjSZOnKiOHTuqXbt2uv7665vN4YI1Dz74oBwOh6ZMmeJ9jedsj71792rs2LHq2LGjsrOzdd555+njjz/2ft8wDN1zzz0qKChQdna2SkpKtG3btjiuOPnU19drxowZKiwsVHZ2tnr16qVZs2b5zObhOYfngw8+0JVXXqkuXbrI4XDo9ddf9/m+med6+PBhjRkzRjk5OcrNzdWtt96qY8eO2b9YA5a9/PLLRkZGhvHss88a//73v43x48cbubm5RkVFRbyXlrSGDx9uPPfcc8amTZuMDRs2GCNHjjS6d+9uHDt2zHvNbbfdZnTr1s1YunSp8fHHHxuXXnqpcdlll8Vx1cmtrKzM6Nmzp3H++ecbkydP9r7Oc47c4cOHjR49ehg33XSTsXr1auPLL780/vGPfxhffPGF95oHH3zQcDqdxuuvv25s3LjRuOqqq4zCwkLj5MmTcVx5cpk9e7bRsWNH46233jJ27NhhvPrqq0a7du2M3//+995reM7heeedd4zf/OY3xmuvvWZIMhYtWuTzfTPPdcSIEcYFF1xgrFq1yvjwww+Ns88+2xg9erTtayWQCcOgQYOMiRMnev9cX19vdOnSxZgzZ04cV9WyHDhwwJBkrFixwjAMw6isrDTS09ONV1991XvNZ599ZkgySktL47XMpHX06FGjd+/exnvvvWd8+9vf9gYyPGd73Hnnncbll18e8Ptut9twuVzGI4884n2tsrLSyMzMNF566aVYLLFFGDVqlHHLLbf4vHbdddcZY8aMMQyD52yXpoGMmee6efNmQ5KxZs0a7zXvvvuu4XA4jL1799q6Po6WLDp16pTWrl2rkpIS72spKSkqKSlRaWlpHFfWslRVVUmS8vLyJElr165VXV2dz3Pv06ePunfvznMPw8SJEzVq1Cif5ynxnO3y5ptvauDAgfrBD36gzp0768ILL9T8+fO939+xY4fKy8t9nrPT6dQll1zCc7bgsssu09KlS7V161ZJ0saNG7Vy5UpdccUVknjO0WLmuZaWlio3N1cDBw70XlNSUqKUlBStXr3a1vUkxaylRHLw4EHV19c3G1qZn5+vzz//PE6ralncbremTJmiwYMHq1+/fpKk8vJyZWRkKDc31+fa/Px8lZeXx2GVyevll1/WunXrtGbNmmbf4znb48svv9S8efM0bdo0/frXv9aaNWt0++23KyMjQ+PGjfM+S3//HeE5m3fXXXepurpaffr0UWpqqurr6zV79myNGTNGknjOUWLmuZaXl6tz584+309LS1NeXp7tz55ABgln4sSJ2rRpk1auXBnvpbQ4e/bs0eTJk/Xee+8pKysr3stpsdxutwYOHKgHHnhAknThhRdq06ZNevrppzVu3Lg4r67l+Nvf/qYXXnhBL774os4991xt2LBBU6ZMUZcuXXjOrQhHSxZ16tRJqampzao4Kioq5HK54rSqlmPSpEl66623tHz5cp155pne110ul06dOqXKykqf63nu1qxdu1YHDhzQgAEDlJaWprS0NK1YsUKPP/640tLSlJ+fz3O2QUFBgYqKinxe69u3r3bv3i1J3mfJf0cic8cdd+iuu+7SDTfcoPPOO0833nijpk6dqjlz5kjiOUeLmefqcrl04MABn++fPn1ahw8ftv3ZE8hYlJGRoYsuukhLly71vuZ2u7V06VIVFxfHcWXJzTAMTZo0SYsWLdKyZctUWFjo8/2LLrpI6enpPs99y5Yt2r17N8/dgqFDh+rTTz/Vhg0bvF8DBw7UmDFjvP/Mc47c4MGDm7UP2Lp1q3r06CFJKiwslMvl8nnO1dXVWr16Nc/ZghMnTiglxfdjLDU1VW63WxLPOVrMPNfi4mJVVlZq7dq13muWLVsmt9utSy65xN4F2Zo63Eq8/PLLRmZmpvHnP//Z2Lx5s/HTn/7UyM3NNcrLy+O9tKQ1YcIEw+l0Gv/85z+N/fv3e79OnDjhvea2224zunfvbixbtsz4+OOPjeLiYqO4uDiOq24ZGlctGQbP2Q5lZWVGWlqaMXv2bGPbtm3GCy+8YLRp08ZYuHCh95oHH3zQyM3NNd544w3jk08+Ma6++mrKgi0aN26c0bVrV2/59WuvvWZ06tTJ+NWvfuW9huccnqNHjxrr16831q9fb0gyHn30UWP9+vXGrl27DMMw91xHjBhhXHjhhcbq1auNlStXGr1796b8OpH84Q9/MLp3725kZGQYgwYNMlatWhXvJSU1SX6/nnvuOe81J0+eNH72s58ZHTp0MNq0aWNce+21xv79++O36BaiaSDDc7bH4sWLjX79+hmZmZlGnz59jGeeecbn+26325gxY4aRn59vZGZmGkOHDjW2bNkSp9Ump+rqamPy5MlG9+7djaysLOOss84yfvOb3xi1tbXea3jO4Vm+fLnf/yaPGzfOMAxzz/XQoUPG6NGjjXbt2hk5OTnGzTffbBw9etT2tToMo1ELRAAAgCRCjgwAAEhaBDIAACBpEcgAAICkRSADAACSFoEMAABIWgQyAAAgaRHIAACApEUgAwAAkhaBDABIcjgcev311+O9DAAWEcgAiLnS0lKlpqZq1KhRln6uZ8+emjt3bnQWBSApEcgAiLkFCxbo5z//uT744APt27cv3ssBkMQIZADE1LFjx/TKK69owoQJGjVqlP785z/7fH/x4sW6+OKLlZWVpU6dOunaa6+VJH3nO9/Rrl27NHXqVDkcDjkcDknSvffeq/79+/vcY+7cuerZs6f3z2vWrNGwYcPUqVMnOZ1Offvb39a6deui+WsCiBECGQAx9be//U19+vTRN77xDY0dO1bPPvusPLNr3377bV177bUaOXKk1q9fr6VLl2rQoEGSpNdee01nnnmmfvvb32r//v3av3+/6fc8evSoxo0bp5UrV2rVqlXq3bu3Ro4cqaNHj0bldwQQO2nxXgCA1mXBggUaO3asJGnEiBGqqqrSihUr9J3vfEezZ8/WDTfcoPvuu897/QUXXCBJysvLU2pqqtq3by+Xy2XpPYcMGeLz52eeeUa5ublasWKF/ud//ifC3whAPLEjAyBmtmzZorKyMo0ePVqSlJaWph/96EdasGCBJGnDhg0aOnSo7e9bUVGh8ePHq3fv3nI6ncrJydGxY8e0e/du298LQGyxIwMgZhYsWKDTp0+rS5cu3tcMw1BmZqaeeOIJZWdnW75nSkqK92jKo66uzufP48aN06FDh/T73/9ePXr0UGZmpoqLi3Xq1KnwfhEACYMdGQAxcfr0aT3//PP63e9+pw0bNni/Nm7cqC5duuill17S+eefr6VLlwa8R0ZGhurr631eO+OMM1ReXu4TzGzYsMHnmo8++ki33367Ro4cqXPPPVeZmZk6ePCgrb8fgPhgRwZATLz11ls6cuSIbr31VjmdTp/vXX/99VqwYIEeeeQRDR06VL169dINN9yg06dP65133tGdd94pqaGPzAcffKAbbrhBmZmZ6tSpk77zne/oq6++0sMPP6zvf//7WrJkid59913l5OR479+7d2/99a9/1cCBA1VdXa077rgjrN0fAImHHRkAMbFgwQKVlJQ0C2KkhkDm448/Vl5enl599VW9+eab6t+/v4YMGaKysjLvdb/97W+1c+dO9erVS2eccYYkqW/fvnrqqaf05JNP6oILLlBZWZl++ctfNnvvI0eOaMCAAbrxxht1++23q3PnztH9hQHEhMNoergMAACQJNiRAQAASYtABgAAJC0CGQAAkLQIZAAAQNIikAEAAEmLQAYAACQtAhkAAJC0CGQAAEDSIpABAABJi0AGAAAkLQIZAACQtP5/0c8KD7dW8akAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(y_test, y_pred)\n", "plt.xlabel(\"Actual\")\n", "plt.ylabel(\"Predicted\")" ] }, { "cell_type": "code", "execution_count": 22, "id": "1e707ec3", "metadata": {}, "outputs": [ { "data": { "image/png": "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CQkJ2gcffKBt3bpVu+yyy7SMjAytvLw8hCNveRYsWKAlJydrn3zyibZ3717tvffe02JjY7Wnnnqq9jX8rP33n//8R7vvvvu0lStXagC0VatWuTzvy2c6evRobcCAAdr333+vffPNN1rPnj21a6+9NijjZYDy/8444wxt2rRptT87HA4tPT1dW7hwYQhH1bocOXJEA6B99dVXmqZpWmFhoRYREaG99957ta/59ddfNQDaunXrQjXMFqu4uFjr1auX9tlnn2nnnXdebYDCzzkw/vKXv2hnn3221+edTqeWmpqqPfroo7XHCgsLtaioKO3tt99ujiG2Gpdccol20003uRwbM2aMNn78eE3T+FkHgnuA4stn+ssvv2gAtI0bN9a+5tNPP9VMJpOWk5MT8DFyigdAVVUVsrOzkZmZWXvMbDYjMzMT69atC+HIWpeioiIAQFJSEgAgOzsb1dXVLp97nz590LVrV37ujTBt2jRccsklLp8nwM85UD766CMMGTIEV199NTp27IhBgwbhxRdfrH1+7969yM3NdfmcExISMHToUH7OfjrrrLOwdu1a7Ny5EwCwdetWfPvtt7jooosA8LMOBl8+03Xr1iExMRFDhgypfU1mZibMZjPWr18f8DGFbLPAcHLs2DE4HI46GxWmpKRg+/btIRpV6+J0OjFjxgwMHz4cp556KgAgNzcXkZGRSExMdHltSkoKcnNzQzDKlmvFihX44YcfsHHjxjrP8XMOjD179uCFF17AzJkzce+992Ljxo244447EBkZiQkTJtR+lp7+P8LP2T9z5syB3W5Hnz59YLFY4HA4sGDBAowfPx4A+FkHgS+faW5uLjp27OjyvNVqRVJSUlA+dwYo1CymTZuGn376Cd9++22oh9LqHDhwAHfeeSc+++wzREdHh3o4rZbT6cSQIUPwyCOPAAAGDRqEn376CUuWLMGECRNCPLrW5d1338Vbb72F5cuX45RTTsGWLVswY8YMpKen87NuQzjFA6BDhw6wWCx1VjXk5eUhNTU1RKNqPaZPn45PPvkEX3zxBTp37lx7PDU1FVVVVSgsLHR5PT93/2RnZ+PIkSM47bTTYLVaYbVa8dVXX+Hpp5+G1WpFSkoKP+cASEtLQ9++fV2OnXzyydi/fz8A1H6W/P9I091zzz2YM2cOxo0bh379+uGGG27AXXfdhYULFwLgZx0MvnymqampOHLkiMvzNTU1yM/PD8rnzgAFQGRkJAYPHoy1a9fWHnM6nVi7di2GDRsWwpG1bJqmYfr06Vi1ahWysrKQkZHh8vzgwYMRERHh8rnv2LED+/fv5+fuhwsuuAA//vgjtmzZUvs1ZMgQjB8/vvZ7fs5NN3z48DrL5Hfu3Ilu3boBADIyMpCamuryOdvtdqxfv56fs5/KyspgNrveniwWC5xOJwB+1sHgy2c6bNgwFBYWIjs7u/Y1WVlZcDqdGDp0aOAHFfCy2xZqxYoVWlRUlLZs2TLtl19+0SZPnqwlJiZqubm5oR5aizV16lQtISFB+/LLL7XDhw/XfpWVldW+5tZbb9W6du2qZWVlaZs2bdKGDRumDRs2LISjbh2Mq3g0jZ9zIGzYsEGzWq3aggULtF27dmlvvfWWFhMTo7355pu1r1m0aJGWmJioffjhh9q2bdu0yy+/nEtfG2HChAlap06dapcZr1y5UuvQoYM2e/bs2tfws/ZfcXGxtnnzZm3z5s0aAO3xxx/XNm/erO3bt0/TNN8+09GjR2uDBg3S1q9fr3377bdar169uMy4OTzzzDNa165dtcjISO2MM87Qvv/++1APqUUD4PHr1VdfrX1NeXm5dtttt2nt27fXYmJitCuvvFI7fPhw6AbdSrgHKPycA+Pjjz/WTj31VC0qKkrr06ePtnTpUpfnnU6nNm/ePC0lJUWLiorSLrjgAm3Hjh0hGm3LZbfbtTvvvFPr2rWrFh0drZ144onafffdp1VWVta+hp+1/7744guP/0+eMGGCpmm+fabHjx/Xrr32Wi02NlaLj4/XbrzxRq24uDgo4+VuxkRERBR2WINCREREYYcBChEREYUdBihEREQUdhigEBERUdhhgEJERERhhwEKERERhR0GKERERBR2GKAQERFR2GGAQkRB9fvvv8NkMmHLli2hHgoRtSAMUIgoYCZOnIgrrrgi1MMgolaAAQoRkUF1dXWoh0BEYIBC1GaNGDECt99+O2bMmIH27dsjJSUFL774IkpLS3HjjTciLi4OPXv2xKeffgoAcDgcuPnmm5GRkQGbzYbevXvjqaeeqj3fAw88gNdeew0ffvghTCYTTCYTvvzyy9rn9+zZg/PPPx8xMTEYMGAA1q1b59M49+3bh0svvRTt27dHu3btcMopp+A///lP7fM///wz/vjHPyI+Ph5xcXE455xzsHv3bgCA0+nEgw8+iM6dOyMqKgoDBw7E6tWra9+rpp/eeecdnHfeeYiOjsZbb70FAHjppZdw8sknIzo6Gn369MHzzz/f6M+aiBohKFsQElHYO++887S4uDjtoYce0nbu3Kk99NBDmsVi0S666CJt6dKl2s6dO7WpU6dqycnJWmlpqVZVVaXNnz9f27hxo7Znzx7tzTff1GJiYrR33nlH0zTZyv2aa67RRo8erR0+fFg7fPiwVllZqe3du1cDoPXp00f75JNPtB07dmhXXXWV1q1bN626urrBcV5yySXaH/7wB23btm3a7t27tY8//lj76quvNE3TtIMHD2pJSUnamDFjtI0bN2o7duzQXnnlFW379u2apmna448/rsXHx2tvv/22tn37dm327NlaRESEtnPnTk3TtNqxde/eXXv//fe1PXv2aIcOHdLefPNNLS0trfbY+++/ryUlJWnLli0L0j8NInLHAIWojTrvvPO0s88+u/bnmpoarV27dtoNN9xQe+zw4cMaAG3dunUezzFt2jRt7NixtT9PmDBBu/zyy11eo4KAl156qfbYzz//rAHQfv311wbH2a9fP+2BBx7w+NzcuXO1jIwMraqqyuPz6enp2oIFC1yOnX766dptt93mMrYnn3zS5TU9evTQli9f7nLsoYce0oYNG9bgeIkoMKyhzN4QUWj179+/9nuLxYLk5GT069ev9lhKSgoA4MiRIwCA5557Dq+88gr279+P8vJyVFVVYeDAgX5fKy0trfa8ffr0qfd9d9xxB6ZOnYr//ve/yMzMxNixY2vPtWXLFpxzzjmIiIio8z673Y5Dhw5h+PDhLseHDx+OrVu3uhwbMmRI7felpaXYvXs3br75ZkyaNKn2eE1NDRISEnz6XYmo6ViDQtSGud/YTSaTyzGTyQRAajlWrFiBu+++GzfffDP++9//YsuWLbjxxhtRVVXl97WM523ILbfcgj179uCGG27Ajz/+iCFDhuCZZ54BANhsNp+u3ZB27drVfl9SUgIAePHFF7Fly5bar59++gnff/99QK5HRA1jgEJEPvnuu+9w1lln4bbbbsOgQYPQs2fP2mJUJTIyEg6HI+DX7tKlC2699VasXLkSs2bNwosvvghAsjLffPONx5U38fHxSE9Px3fffVfn9+jbt6/Xa6WkpCA9PR179uxBz549Xb4yMjIC+4sRkVec4iEin/Tq1Quvv/461qxZg4yMDLzxxhvYuHGjy027e/fuWLNmDXbs2IHk5OSATInMmDEDF110EU466SQUFBTgiy++wMknnwwAmD59Op555hmMGzcOc+fORUJCAr7//nucccYZ6N27N+655x789a9/RY8ePTBw4EC8+uqr2LJlS+1KHW/+9re/4Y477kBCQgJGjx6NyspKbNq0CQUFBZg5c2aTfyciahgDFCLyyZQpU7B582b86U9/gslkwrXXXovbbrutdhkyAEyaNAlffvklhgwZgpKSEnzxxRfo3r17k67rcDgwbdo0HDx4EPHx8Rg9ejSeeOIJAEBycjKysrJwzz334LzzzoPFYsHAgQNr607uuOMOFBUVYdasWThy5Aj69u2Ljz76CL169ar3mrfccgtiYmLw6KOP4p577kG7du3Qr18/zJgxo0m/CxH5zqRpmhbqQRAREREZsQaFiIiIwg4DFCIKqYsuugixsbEevx555JFQD4+IQoRTPEQUUjk5OSgvL/f4XFJSEpKSkpp5REQUDhigEBERUdjhFA8RERGFHQYoREREFHYYoBAREVHYYYBCREREYYcBChEREYUdBihEREQUdhigEBERUdhhgEJERERh5/8AtWJ5knyXj0wAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.regplot(x=y_test, y=y_pred, ci=None, color=\"red\");" ] }, { "cell_type": "markdown", "id": "79c2fe28", "metadata": {}, "source": [ "#### Difference between Actual and Predicted Values" ] }, { "cell_type": "code", "execution_count": 23, "id": "7c9a8b48", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Actual ValuePredicted ValueDifference
5219176.38797014.612030
7375358.885970-5.885970
7408076.9902653.009735
6607476.851804-2.851804
4118487.627378-3.627378
............
4085243.4091498.590851
3326262.152214-0.152214
2087467.8883956.111605
6136567.022287-2.022287
786162.345132-1.345132
\n", "

200 rows × 3 columns

\n", "
" ], "text/plain": [ " Actual Value Predicted Value Difference\n", "521 91 76.387970 14.612030\n", "737 53 58.885970 -5.885970\n", "740 80 76.990265 3.009735\n", "660 74 76.851804 -2.851804\n", "411 84 87.627378 -3.627378\n", ".. ... ... ...\n", "408 52 43.409149 8.590851\n", "332 62 62.152214 -0.152214\n", "208 74 67.888395 6.111605\n", "613 65 67.022287 -2.022287\n", "78 61 62.345132 -1.345132\n", "\n", "[200 rows x 3 columns]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pred_df = pd.DataFrame(\n", " {\"Actual Value\": y_test, \"Predicted Value\": y_pred, \"Difference\": y_test - y_pred}\n", ")\n", "pred_df" ] }, { "cell_type": "code", "execution_count": null, "id": "3acf1fbc", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.0" } }, "nbformat": 4, "nbformat_minor": 5 }