{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Chapter 1 – The Machine Learning landscape**\n",
"\n",
"_This is the code used to generate some of the figures in chapter 1._"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Setup"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"# To support both python 2 and python 3\n",
"from __future__ import division, print_function, unicode_literals\n",
"\n",
"# Common imports\n",
"import numpy as np\n",
"import os\n",
"\n",
"# to make this notebook's output stable across runs\n",
"np.random.seed(42)\n",
"\n",
"# To plot pretty figures\n",
"%matplotlib inline\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['axes.labelsize'] = 14\n",
"plt.rcParams['xtick.labelsize'] = 12\n",
"plt.rcParams['ytick.labelsize'] = 12\n",
"\n",
"# Where to save the figures\n",
"PROJECT_ROOT_DIR = \".\"\n",
"CHAPTER_ID = \"fundamentals\"\n",
"\n",
"def save_fig(fig_id, tight_layout=True):\n",
" path = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id + \".png\")\n",
" print(\"Saving figure\", fig_id)\n",
" if tight_layout:\n",
" plt.tight_layout()\n",
" plt.savefig(path, format='png', dpi=300)\n",
"\n",
"# Ignore useless warnings (see SciPy issue #5998)\n",
"import warnings\n",
"warnings.filterwarnings(action=\"ignore\", module=\"scipy\", message=\"^internal gelsd\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Code example 1-1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This function just merges the OECD's life satisfaction data and the IMF's GDP per capita data. It's a bit too long and boring and it's not specific to Machine Learning, which is why I left it out of the book."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def prepare_country_stats(oecd_bli, gdp_per_capita):\n",
" oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"]\n",
" oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n",
" gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n",
" gdp_per_capita.set_index(\"Country\", inplace=True)\n",
" full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita,\n",
" left_index=True, right_index=True)\n",
" full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n",
" remove_indices = [0, 1, 6, 8, 33, 34, 35]\n",
" keep_indices = list(set(range(36)) - set(remove_indices))\n",
" return full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The code in the book expects the data files to be located in the current directory. I just tweaked it here to fetch the files in datasets/lifesat."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"datapath = os.path.join(\"datasets\", \"lifesat\", \"\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x110a2d908>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 5.96242338]]\n"
]
}
],
"source": [
"# Code example\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import sklearn.linear_model\n",
"\n",
"# Load the data\n",
"oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',')\n",
"gdp_per_capita = pd.read_csv(datapath + \"gdp_per_capita.csv\",thousands=',',delimiter='\\t',\n",
" encoding='latin1', na_values=\"n/a\")\n",
"\n",
"# Prepare the data\n",
"country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)\n",
"X = np.c_[country_stats[\"GDP per capita\"]]\n",
"y = np.c_[country_stats[\"Life satisfaction\"]]\n",
"\n",
"# Visualize the data\n",
"country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction')\n",
"plt.show()\n",
"\n",
"# Select a linear model\n",
"model = sklearn.linear_model.LinearRegression()\n",
"\n",
"# Train the model\n",
"model.fit(X, y)\n",
"\n",
"# Make a prediction for Cyprus\n",
"X_new = [[22587]] # Cyprus' GDP per capita\n",
"print(model.predict(X_new)) # outputs [[ 5.96242338]]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Note: you can ignore the rest of this notebook, it just generates many of the figures in chapter 1."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Load and prepare Life satisfaction data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you want, you can get fresh data from the OECD's website.\n",
"Download the CSV from http://stats.oecd.org/index.aspx?DataSetCode=BLI\n",
"and save it to `datasets/lifesat/`."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>Indicator</th>\n",
" <th>Air pollution</th>\n",
" <th>Assault rate</th>\n",
" <th>Consultation on rule-making</th>\n",
" <th>Dwellings without basic facilities</th>\n",
" <th>Educational attainment</th>\n",
" <th>Employees working very long hours</th>\n",
" <th>Employment rate</th>\n",
" <th>Homicide rate</th>\n",
" <th>Household net adjusted disposable income</th>\n",
" <th>Household net financial wealth</th>\n",
" <th>...</th>\n",
" <th>Long-term unemployment rate</th>\n",
" <th>Personal earnings</th>\n",
" <th>Quality of support network</th>\n",
" <th>Rooms per person</th>\n",
" <th>Self-reported health</th>\n",
" <th>Student skills</th>\n",
" <th>Time devoted to leisure and personal care</th>\n",
" <th>Voter turnout</th>\n",
" <th>Water quality</th>\n",
" <th>Years in education</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>13.0</td>\n",
" <td>2.1</td>\n",
" <td>10.5</td>\n",
" <td>1.1</td>\n",
" <td>76.0</td>\n",
" <td>14.02</td>\n",
" <td>72.0</td>\n",
" <td>0.8</td>\n",
" <td>31588.0</td>\n",
" <td>47657.0</td>\n",
" <td>...</td>\n",
" <td>1.08</td>\n",
" <td>50449.0</td>\n",
" <td>92.0</td>\n",
" <td>2.3</td>\n",
" <td>85.0</td>\n",
" <td>512.0</td>\n",
" <td>14.41</td>\n",
" <td>93.0</td>\n",
" <td>91.0</td>\n",
" <td>19.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Austria</th>\n",
" <td>27.0</td>\n",
" <td>3.4</td>\n",
" <td>7.1</td>\n",
" <td>1.0</td>\n",
" <td>83.0</td>\n",
" <td>7.61</td>\n",
" <td>72.0</td>\n",
" <td>0.4</td>\n",
" <td>31173.0</td>\n",
" <td>49887.0</td>\n",
" <td>...</td>\n",
" <td>1.19</td>\n",
" <td>45199.0</td>\n",
" <td>89.0</td>\n",
" <td>1.6</td>\n",
" <td>69.0</td>\n",
" <td>500.0</td>\n",
" <td>14.46</td>\n",
" <td>75.0</td>\n",
" <td>94.0</td>\n",
" <td>17.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 24 columns</p>\n",
"</div>"
],
"text/plain": [
"Indicator Air pollution Assault rate Consultation on rule-making \\\n",
"Country \n",
"Australia 13.0 2.1 10.5 \n",
"Austria 27.0 3.4 7.1 \n",
"\n",
"Indicator Dwellings without basic facilities Educational attainment \\\n",
"Country \n",
"Australia 1.1 76.0 \n",
"Austria 1.0 83.0 \n",
"\n",
"Indicator Employees working very long hours Employment rate Homicide rate \\\n",
"Country \n",
"Australia 14.02 72.0 0.8 \n",
"Austria 7.61 72.0 0.4 \n",
"\n",
"Indicator Household net adjusted disposable income \\\n",
"Country \n",
"Australia 31588.0 \n",
"Austria 31173.0 \n",
"\n",
"Indicator Household net financial wealth ... \\\n",
"Country ... \n",
"Australia 47657.0 ... \n",
"Austria 49887.0 ... \n",
"\n",
"Indicator Long-term unemployment rate Personal earnings \\\n",
"Country \n",
"Australia 1.08 50449.0 \n",
"Austria 1.19 45199.0 \n",
"\n",
"Indicator Quality of support network Rooms per person Self-reported health \\\n",
"Country \n",
"Australia 92.0 2.3 85.0 \n",
"Austria 89.0 1.6 69.0 \n",
"\n",
"Indicator Student skills Time devoted to leisure and personal care \\\n",
"Country \n",
"Australia 512.0 14.41 \n",
"Austria 500.0 14.46 \n",
"\n",
"Indicator Voter turnout Water quality Years in education \n",
"Country \n",
"Australia 93.0 91.0 19.4 \n",
"Austria 75.0 94.0 17.0 \n",
"\n",
"[2 rows x 24 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',')\n",
"oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"]\n",
"oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n",
"oecd_bli.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Country\n",
"Australia 7.3\n",
"Austria 6.9\n",
"Belgium 6.9\n",
"Brazil 7.0\n",
"Canada 7.3\n",
"Name: Life satisfaction, dtype: float64"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"oecd_bli[\"Life satisfaction\"].head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Load and prepare GDP per capita data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Just like above, you can update the GDP per capita data if you want. Just download data from http://goo.gl/j1MSKe (=> imf.org) and save it to `datasets/lifesat/`."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Afghanistan</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>599.994</td>\n",
" <td>2013.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Albania</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>3995.383</td>\n",
" <td>2010.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Subject Descriptor Units \\\n",
"Country \n",
"Afghanistan Gross domestic product per capita, current prices U.S. dollars \n",
"Albania Gross domestic product per capita, current prices U.S. dollars \n",
"\n",
" Scale Country/Series-specific Notes \\\n",
"Country \n",
"Afghanistan Units See notes for: Gross domestic product, curren... \n",
"Albania Units See notes for: Gross domestic product, curren... \n",
"\n",
" GDP per capita Estimates Start After \n",
"Country \n",
"Afghanistan 599.994 2013.0 \n",
"Albania 3995.383 2010.0 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdp_per_capita = pd.read_csv(datapath+\"gdp_per_capita.csv\", thousands=',', delimiter='\\t',\n",
" encoding='latin1', na_values=\"n/a\")\n",
"gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n",
"gdp_per_capita.set_index(\"Country\", inplace=True)\n",
"gdp_per_capita.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Air pollution</th>\n",
" <th>Assault rate</th>\n",
" <th>Consultation on rule-making</th>\n",
" <th>Dwellings without basic facilities</th>\n",
" <th>Educational attainment</th>\n",
" <th>Employees working very long hours</th>\n",
" <th>Employment rate</th>\n",
" <th>Homicide rate</th>\n",
" <th>Household net adjusted disposable income</th>\n",
" <th>Household net financial wealth</th>\n",
" <th>...</th>\n",
" <th>Time devoted to leisure and personal care</th>\n",
" <th>Voter turnout</th>\n",
" <th>Water quality</th>\n",
" <th>Years in education</th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Brazil</th>\n",
" <td>18.0</td>\n",
" <td>7.9</td>\n",
" <td>4.0</td>\n",
" <td>6.7</td>\n",
" <td>45.0</td>\n",
" <td>10.41</td>\n",
" <td>67.0</td>\n",
" <td>25.5</td>\n",
" <td>11664.0</td>\n",
" <td>6844.0</td>\n",
" <td>...</td>\n",
" <td>14.97</td>\n",
" <td>79.0</td>\n",
" <td>72.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>8669.998</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mexico</th>\n",
" <td>30.0</td>\n",
" <td>12.8</td>\n",
" <td>9.0</td>\n",
" <td>4.2</td>\n",
" <td>37.0</td>\n",
" <td>28.83</td>\n",
" <td>61.0</td>\n",
" <td>23.4</td>\n",
" <td>13085.0</td>\n",
" <td>9056.0</td>\n",
" <td>...</td>\n",
" <td>13.89</td>\n",
" <td>63.0</td>\n",
" <td>67.0</td>\n",
" <td>14.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9009.280</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Russia</th>\n",
" <td>15.0</td>\n",
" <td>3.8</td>\n",
" <td>2.5</td>\n",
" <td>15.1</td>\n",
" <td>94.0</td>\n",
" <td>0.16</td>\n",
" <td>69.0</td>\n",
" <td>12.8</td>\n",
" <td>19292.0</td>\n",
" <td>3412.0</td>\n",
" <td>...</td>\n",
" <td>14.97</td>\n",
" <td>65.0</td>\n",
" <td>56.0</td>\n",
" <td>16.0</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9054.914</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Turkey</th>\n",
" <td>35.0</td>\n",
" <td>5.0</td>\n",
" <td>5.5</td>\n",
" <td>12.7</td>\n",
" <td>34.0</td>\n",
" <td>40.86</td>\n",
" <td>50.0</td>\n",
" <td>1.2</td>\n",
" <td>14095.0</td>\n",
" <td>3251.0</td>\n",
" <td>...</td>\n",
" <td>13.42</td>\n",
" <td>88.0</td>\n",
" <td>62.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9437.372</td>\n",
" <td>2013.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Hungary</th>\n",
" <td>15.0</td>\n",
" <td>3.6</td>\n",
" <td>7.9</td>\n",
" <td>4.8</td>\n",
" <td>82.0</td>\n",
" <td>3.19</td>\n",
" <td>58.0</td>\n",
" <td>1.3</td>\n",
" <td>15442.0</td>\n",
" <td>13277.0</td>\n",
" <td>...</td>\n",
" <td>15.04</td>\n",
" <td>62.0</td>\n",
" <td>77.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>12239.894</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Poland</th>\n",
" <td>33.0</td>\n",
" <td>1.4</td>\n",
" <td>10.8</td>\n",
" <td>3.2</td>\n",
" <td>90.0</td>\n",
" <td>7.41</td>\n",
" <td>60.0</td>\n",
" <td>0.9</td>\n",
" <td>17852.0</td>\n",
" <td>10919.0</td>\n",
" <td>...</td>\n",
" <td>14.20</td>\n",
" <td>55.0</td>\n",
" <td>79.0</td>\n",
" <td>18.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>12495.334</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chile</th>\n",
" <td>46.0</td>\n",
" <td>6.9</td>\n",
" <td>2.0</td>\n",
" <td>9.4</td>\n",
" <td>57.0</td>\n",
" <td>15.42</td>\n",
" <td>62.0</td>\n",
" <td>4.4</td>\n",
" <td>14533.0</td>\n",
" <td>17733.0</td>\n",
" <td>...</td>\n",
" <td>14.41</td>\n",
" <td>49.0</td>\n",
" <td>73.0</td>\n",
" <td>16.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>13340.905</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovak Republic</th>\n",
" <td>13.0</td>\n",
" <td>3.0</td>\n",
" <td>6.6</td>\n",
" <td>0.6</td>\n",
" <td>92.0</td>\n",
" <td>7.02</td>\n",
" <td>60.0</td>\n",
" <td>1.2</td>\n",
" <td>17503.0</td>\n",
" <td>8663.0</td>\n",
" <td>...</td>\n",
" <td>14.99</td>\n",
" <td>59.0</td>\n",
" <td>81.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>15991.736</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Czech Republic</th>\n",
" <td>16.0</td>\n",
" <td>2.8</td>\n",
" <td>6.8</td>\n",
" <td>0.9</td>\n",
" <td>92.0</td>\n",
" <td>6.98</td>\n",
" <td>68.0</td>\n",
" <td>0.8</td>\n",
" <td>18404.0</td>\n",
" <td>17299.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>59.0</td>\n",
" <td>85.0</td>\n",
" <td>18.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>17256.918</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Estonia</th>\n",
" <td>9.0</td>\n",
" <td>5.5</td>\n",
" <td>3.3</td>\n",
" <td>8.1</td>\n",
" <td>90.0</td>\n",
" <td>3.30</td>\n",
" <td>68.0</td>\n",
" <td>4.8</td>\n",
" <td>15167.0</td>\n",
" <td>7680.0</td>\n",
" <td>...</td>\n",
" <td>14.90</td>\n",
" <td>64.0</td>\n",
" <td>79.0</td>\n",
" <td>17.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>17288.083</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Greece</th>\n",
" <td>27.0</td>\n",
" <td>3.7</td>\n",
" <td>6.5</td>\n",
" <td>0.7</td>\n",
" <td>68.0</td>\n",
" <td>6.16</td>\n",
" <td>49.0</td>\n",
" <td>1.6</td>\n",
" <td>18575.0</td>\n",
" <td>14579.0</td>\n",
" <td>...</td>\n",
" <td>14.91</td>\n",
" <td>64.0</td>\n",
" <td>69.0</td>\n",
" <td>18.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>18064.288</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Portugal</th>\n",
" <td>18.0</td>\n",
" <td>5.7</td>\n",
" <td>6.5</td>\n",
" <td>0.9</td>\n",
" <td>38.0</td>\n",
" <td>9.62</td>\n",
" <td>61.0</td>\n",
" <td>1.1</td>\n",
" <td>20086.0</td>\n",
" <td>31245.0</td>\n",
" <td>...</td>\n",
" <td>14.95</td>\n",
" <td>58.0</td>\n",
" <td>86.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>19121.592</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovenia</th>\n",
" <td>26.0</td>\n",
" <td>3.9</td>\n",
" <td>10.3</td>\n",
" <td>0.5</td>\n",
" <td>85.0</td>\n",
" <td>5.63</td>\n",
" <td>63.0</td>\n",
" <td>0.4</td>\n",
" <td>19326.0</td>\n",
" <td>18465.0</td>\n",
" <td>...</td>\n",
" <td>14.62</td>\n",
" <td>52.0</td>\n",
" <td>88.0</td>\n",
" <td>18.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>20732.482</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Spain</th>\n",
" <td>24.0</td>\n",
" <td>4.2</td>\n",
" <td>7.3</td>\n",
" <td>0.1</td>\n",
" <td>55.0</td>\n",
" <td>5.89</td>\n",
" <td>56.0</td>\n",
" <td>0.6</td>\n",
" <td>22477.0</td>\n",
" <td>24774.0</td>\n",
" <td>...</td>\n",
" <td>16.06</td>\n",
" <td>69.0</td>\n",
" <td>71.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>25864.721</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Korea</th>\n",
" <td>30.0</td>\n",
" <td>2.1</td>\n",
" <td>10.4</td>\n",
" <td>4.2</td>\n",
" <td>82.0</td>\n",
" <td>18.72</td>\n",
" <td>64.0</td>\n",
" <td>1.1</td>\n",
" <td>19510.0</td>\n",
" <td>29091.0</td>\n",
" <td>...</td>\n",
" <td>14.63</td>\n",
" <td>76.0</td>\n",
" <td>78.0</td>\n",
" <td>17.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>27195.197</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Italy</th>\n",
" <td>21.0</td>\n",
" <td>4.7</td>\n",
" <td>5.0</td>\n",
" <td>1.1</td>\n",
" <td>57.0</td>\n",
" <td>3.66</td>\n",
" <td>56.0</td>\n",
" <td>0.7</td>\n",
" <td>25166.0</td>\n",
" <td>54987.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>75.0</td>\n",
" <td>71.0</td>\n",
" <td>16.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>29866.581</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Japan</th>\n",
" <td>24.0</td>\n",
" <td>1.4</td>\n",
" <td>7.3</td>\n",
" <td>6.4</td>\n",
" <td>94.0</td>\n",
" <td>22.26</td>\n",
" <td>72.0</td>\n",
" <td>0.3</td>\n",
" <td>26111.0</td>\n",
" <td>86764.0</td>\n",
" <td>...</td>\n",
" <td>14.93</td>\n",
" <td>53.0</td>\n",
" <td>85.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>32485.545</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Israel</th>\n",
" <td>21.0</td>\n",
" <td>6.4</td>\n",
" <td>2.5</td>\n",
" <td>3.7</td>\n",
" <td>85.0</td>\n",
" <td>16.03</td>\n",
" <td>67.0</td>\n",
" <td>2.3</td>\n",
" <td>22104.0</td>\n",
" <td>52933.0</td>\n",
" <td>...</td>\n",
" <td>14.48</td>\n",
" <td>68.0</td>\n",
" <td>68.0</td>\n",
" <td>15.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>35343.336</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>New Zealand</th>\n",
" <td>11.0</td>\n",
" <td>2.2</td>\n",
" <td>10.3</td>\n",
" <td>0.2</td>\n",
" <td>74.0</td>\n",
" <td>13.87</td>\n",
" <td>73.0</td>\n",
" <td>1.2</td>\n",
" <td>23815.0</td>\n",
" <td>28290.0</td>\n",
" <td>...</td>\n",
" <td>14.87</td>\n",
" <td>77.0</td>\n",
" <td>89.0</td>\n",
" <td>18.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37044.891</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>France</th>\n",
" <td>12.0</td>\n",
" <td>5.0</td>\n",
" <td>3.5</td>\n",
" <td>0.5</td>\n",
" <td>73.0</td>\n",
" <td>8.15</td>\n",
" <td>64.0</td>\n",
" <td>0.6</td>\n",
" <td>28799.0</td>\n",
" <td>48741.0</td>\n",
" <td>...</td>\n",
" <td>15.33</td>\n",
" <td>80.0</td>\n",
" <td>82.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37675.006</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Belgium</th>\n",
" <td>21.0</td>\n",
" <td>6.6</td>\n",
" <td>4.5</td>\n",
" <td>2.0</td>\n",
" <td>72.0</td>\n",
" <td>4.57</td>\n",
" <td>62.0</td>\n",
" <td>1.1</td>\n",
" <td>28307.0</td>\n",
" <td>83876.0</td>\n",
" <td>...</td>\n",
" <td>15.71</td>\n",
" <td>89.0</td>\n",
" <td>87.0</td>\n",
" <td>18.9</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>40106.632</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Germany</th>\n",
" <td>16.0</td>\n",
" <td>3.6</td>\n",
" <td>4.5</td>\n",
" <td>0.1</td>\n",
" <td>86.0</td>\n",
" <td>5.25</td>\n",
" <td>73.0</td>\n",
" <td>0.5</td>\n",
" <td>31252.0</td>\n",
" <td>50394.0</td>\n",
" <td>...</td>\n",
" <td>15.31</td>\n",
" <td>72.0</td>\n",
" <td>95.0</td>\n",
" <td>18.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>40996.511</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Finland</th>\n",
" <td>15.0</td>\n",
" <td>2.4</td>\n",
" <td>9.0</td>\n",
" <td>0.6</td>\n",
" <td>85.0</td>\n",
" <td>3.58</td>\n",
" <td>69.0</td>\n",
" <td>1.4</td>\n",
" <td>27927.0</td>\n",
" <td>18761.0</td>\n",
" <td>...</td>\n",
" <td>14.89</td>\n",
" <td>69.0</td>\n",
" <td>94.0</td>\n",
" <td>19.7</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>41973.988</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Canada</th>\n",
" <td>15.0</td>\n",
" <td>1.3</td>\n",
" <td>10.5</td>\n",
" <td>0.2</td>\n",
" <td>89.0</td>\n",
" <td>3.94</td>\n",
" <td>72.0</td>\n",
" <td>1.5</td>\n",
" <td>29365.0</td>\n",
" <td>67913.0</td>\n",
" <td>...</td>\n",
" <td>14.25</td>\n",
" <td>61.0</td>\n",
" <td>91.0</td>\n",
" <td>17.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43331.961</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Netherlands</th>\n",
" <td>30.0</td>\n",
" <td>4.9</td>\n",
" <td>6.1</td>\n",
" <td>0.0</td>\n",
" <td>73.0</td>\n",
" <td>0.45</td>\n",
" <td>74.0</td>\n",
" <td>0.9</td>\n",
" <td>27888.0</td>\n",
" <td>77961.0</td>\n",
" <td>...</td>\n",
" <td>15.44</td>\n",
" <td>75.0</td>\n",
" <td>92.0</td>\n",
" <td>18.7</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43603.115</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Austria</th>\n",
" <td>27.0</td>\n",
" <td>3.4</td>\n",
" <td>7.1</td>\n",
" <td>1.0</td>\n",
" <td>83.0</td>\n",
" <td>7.61</td>\n",
" <td>72.0</td>\n",
" <td>0.4</td>\n",
" <td>31173.0</td>\n",
" <td>49887.0</td>\n",
" <td>...</td>\n",
" <td>14.46</td>\n",
" <td>75.0</td>\n",
" <td>94.0</td>\n",
" <td>17.0</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43724.031</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United Kingdom</th>\n",
" <td>13.0</td>\n",
" <td>1.9</td>\n",
" <td>11.5</td>\n",
" <td>0.2</td>\n",
" <td>78.0</td>\n",
" <td>12.70</td>\n",
" <td>71.0</td>\n",
" <td>0.3</td>\n",
" <td>27029.0</td>\n",
" <td>60778.0</td>\n",
" <td>...</td>\n",
" <td>14.83</td>\n",
" <td>66.0</td>\n",
" <td>88.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43770.688</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sweden</th>\n",
" <td>10.0</td>\n",
" <td>5.1</td>\n",
" <td>10.9</td>\n",
" <td>0.0</td>\n",
" <td>88.0</td>\n",
" <td>1.13</td>\n",
" <td>74.0</td>\n",
" <td>0.7</td>\n",
" <td>29185.0</td>\n",
" <td>60328.0</td>\n",
" <td>...</td>\n",
" <td>15.11</td>\n",
" <td>86.0</td>\n",
" <td>95.0</td>\n",
" <td>19.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>49866.266</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Iceland</th>\n",
" <td>18.0</td>\n",
" <td>2.7</td>\n",
" <td>5.1</td>\n",
" <td>0.4</td>\n",
" <td>71.0</td>\n",
" <td>12.25</td>\n",
" <td>82.0</td>\n",
" <td>0.3</td>\n",
" <td>23965.0</td>\n",
" <td>43045.0</td>\n",
" <td>...</td>\n",
" <td>14.61</td>\n",
" <td>81.0</td>\n",
" <td>97.0</td>\n",
" <td>19.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>50854.583</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>13.0</td>\n",
" <td>2.1</td>\n",
" <td>10.5</td>\n",
" <td>1.1</td>\n",
" <td>76.0</td>\n",
" <td>14.02</td>\n",
" <td>72.0</td>\n",
" <td>0.8</td>\n",
" <td>31588.0</td>\n",
" <td>47657.0</td>\n",
" <td>...</td>\n",
" <td>14.41</td>\n",
" <td>93.0</td>\n",
" <td>91.0</td>\n",
" <td>19.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>50961.865</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ireland</th>\n",
" <td>13.0</td>\n",
" <td>2.6</td>\n",
" <td>9.0</td>\n",
" <td>0.2</td>\n",
" <td>75.0</td>\n",
" <td>4.20</td>\n",
" <td>60.0</td>\n",
" <td>0.8</td>\n",
" <td>23917.0</td>\n",
" <td>31580.0</td>\n",
" <td>...</td>\n",
" <td>15.19</td>\n",
" <td>70.0</td>\n",
" <td>80.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>51350.744</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Denmark</th>\n",
" <td>15.0</td>\n",
" <td>3.9</td>\n",
" <td>7.0</td>\n",
" <td>0.9</td>\n",
" <td>78.0</td>\n",
" <td>2.03</td>\n",
" <td>73.0</td>\n",
" <td>0.3</td>\n",
" <td>26491.0</td>\n",
" <td>44488.0</td>\n",
" <td>...</td>\n",
" <td>16.06</td>\n",
" <td>88.0</td>\n",
" <td>94.0</td>\n",
" <td>19.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>52114.165</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United States</th>\n",
" <td>18.0</td>\n",
" <td>1.5</td>\n",
" <td>8.3</td>\n",
" <td>0.1</td>\n",
" <td>89.0</td>\n",
" <td>11.30</td>\n",
" <td>67.0</td>\n",
" <td>5.2</td>\n",
" <td>41355.0</td>\n",
" <td>145769.0</td>\n",
" <td>...</td>\n",
" <td>14.27</td>\n",
" <td>68.0</td>\n",
" <td>85.0</td>\n",
" <td>17.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>55805.204</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>16.0</td>\n",
" <td>3.3</td>\n",
" <td>8.1</td>\n",
" <td>0.3</td>\n",
" <td>82.0</td>\n",
" <td>2.82</td>\n",
" <td>75.0</td>\n",
" <td>0.6</td>\n",
" <td>33492.0</td>\n",
" <td>8797.0</td>\n",
" <td>...</td>\n",
" <td>15.56</td>\n",
" <td>78.0</td>\n",
" <td>94.0</td>\n",
" <td>17.9</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>74822.106</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Switzerland</th>\n",
" <td>20.0</td>\n",
" <td>4.2</td>\n",
" <td>8.4</td>\n",
" <td>0.0</td>\n",
" <td>86.0</td>\n",
" <td>6.72</td>\n",
" <td>80.0</td>\n",
" <td>0.5</td>\n",
" <td>33491.0</td>\n",
" <td>108823.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>49.0</td>\n",
" <td>96.0</td>\n",
" <td>17.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>80675.308</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Luxembourg</th>\n",
" <td>12.0</td>\n",
" <td>4.3</td>\n",
" <td>6.0</td>\n",
" <td>0.1</td>\n",
" <td>78.0</td>\n",
" <td>3.47</td>\n",
" <td>66.0</td>\n",
" <td>0.4</td>\n",
" <td>38951.0</td>\n",
" <td>61765.0</td>\n",
" <td>...</td>\n",
" <td>15.12</td>\n",
" <td>91.0</td>\n",
" <td>86.0</td>\n",
" <td>15.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>101994.093</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>36 rows × 30 columns</p>\n",
"</div>"
],
"text/plain": [
" Air pollution Assault rate Consultation on rule-making \\\n",
"Country \n",
"Brazil 18.0 7.9 4.0 \n",
"Mexico 30.0 12.8 9.0 \n",
"Russia 15.0 3.8 2.5 \n",
"Turkey 35.0 5.0 5.5 \n",
"Hungary 15.0 3.6 7.9 \n",
"Poland 33.0 1.4 10.8 \n",
"Chile 46.0 6.9 2.0 \n",
"Slovak Republic 13.0 3.0 6.6 \n",
"Czech Republic 16.0 2.8 6.8 \n",
"Estonia 9.0 5.5 3.3 \n",
"Greece 27.0 3.7 6.5 \n",
"Portugal 18.0 5.7 6.5 \n",
"Slovenia 26.0 3.9 10.3 \n",
"Spain 24.0 4.2 7.3 \n",
"Korea 30.0 2.1 10.4 \n",
"Italy 21.0 4.7 5.0 \n",
"Japan 24.0 1.4 7.3 \n",
"Israel 21.0 6.4 2.5 \n",
"New Zealand 11.0 2.2 10.3 \n",
"France 12.0 5.0 3.5 \n",
"Belgium 21.0 6.6 4.5 \n",
"Germany 16.0 3.6 4.5 \n",
"Finland 15.0 2.4 9.0 \n",
"Canada 15.0 1.3 10.5 \n",
"Netherlands 30.0 4.9 6.1 \n",
"Austria 27.0 3.4 7.1 \n",
"United Kingdom 13.0 1.9 11.5 \n",
"Sweden 10.0 5.1 10.9 \n",
"Iceland 18.0 2.7 5.1 \n",
"Australia 13.0 2.1 10.5 \n",
"Ireland 13.0 2.6 9.0 \n",
"Denmark 15.0 3.9 7.0 \n",
"United States 18.0 1.5 8.3 \n",
"Norway 16.0 3.3 8.1 \n",
"Switzerland 20.0 4.2 8.4 \n",
"Luxembourg 12.0 4.3 6.0 \n",
"\n",
" Dwellings without basic facilities Educational attainment \\\n",
"Country \n",
"Brazil 6.7 45.0 \n",
"Mexico 4.2 37.0 \n",
"Russia 15.1 94.0 \n",
"Turkey 12.7 34.0 \n",
"Hungary 4.8 82.0 \n",
"Poland 3.2 90.0 \n",
"Chile 9.4 57.0 \n",
"Slovak Republic 0.6 92.0 \n",
"Czech Republic 0.9 92.0 \n",
"Estonia 8.1 90.0 \n",
"Greece 0.7 68.0 \n",
"Portugal 0.9 38.0 \n",
"Slovenia 0.5 85.0 \n",
"Spain 0.1 55.0 \n",
"Korea 4.2 82.0 \n",
"Italy 1.1 57.0 \n",
"Japan 6.4 94.0 \n",
"Israel 3.7 85.0 \n",
"New Zealand 0.2 74.0 \n",
"France 0.5 73.0 \n",
"Belgium 2.0 72.0 \n",
"Germany 0.1 86.0 \n",
"Finland 0.6 85.0 \n",
"Canada 0.2 89.0 \n",
"Netherlands 0.0 73.0 \n",
"Austria 1.0 83.0 \n",
"United Kingdom 0.2 78.0 \n",
"Sweden 0.0 88.0 \n",
"Iceland 0.4 71.0 \n",
"Australia 1.1 76.0 \n",
"Ireland 0.2 75.0 \n",
"Denmark 0.9 78.0 \n",
"United States 0.1 89.0 \n",
"Norway 0.3 82.0 \n",
"Switzerland 0.0 86.0 \n",
"Luxembourg 0.1 78.0 \n",
"\n",
" Employees working very long hours Employment rate \\\n",
"Country \n",
"Brazil 10.41 67.0 \n",
"Mexico 28.83 61.0 \n",
"Russia 0.16 69.0 \n",
"Turkey 40.86 50.0 \n",
"Hungary 3.19 58.0 \n",
"Poland 7.41 60.0 \n",
"Chile 15.42 62.0 \n",
"Slovak Republic 7.02 60.0 \n",
"Czech Republic 6.98 68.0 \n",
"Estonia 3.30 68.0 \n",
"Greece 6.16 49.0 \n",
"Portugal 9.62 61.0 \n",
"Slovenia 5.63 63.0 \n",
"Spain 5.89 56.0 \n",
"Korea 18.72 64.0 \n",
"Italy 3.66 56.0 \n",
"Japan 22.26 72.0 \n",
"Israel 16.03 67.0 \n",
"New Zealand 13.87 73.0 \n",
"France 8.15 64.0 \n",
"Belgium 4.57 62.0 \n",
"Germany 5.25 73.0 \n",
"Finland 3.58 69.0 \n",
"Canada 3.94 72.0 \n",
"Netherlands 0.45 74.0 \n",
"Austria 7.61 72.0 \n",
"United Kingdom 12.70 71.0 \n",
"Sweden 1.13 74.0 \n",
"Iceland 12.25 82.0 \n",
"Australia 14.02 72.0 \n",
"Ireland 4.20 60.0 \n",
"Denmark 2.03 73.0 \n",
"United States 11.30 67.0 \n",
"Norway 2.82 75.0 \n",
"Switzerland 6.72 80.0 \n",
"Luxembourg 3.47 66.0 \n",
"\n",
" Homicide rate Household net adjusted disposable income \\\n",
"Country \n",
"Brazil 25.5 11664.0 \n",
"Mexico 23.4 13085.0 \n",
"Russia 12.8 19292.0 \n",
"Turkey 1.2 14095.0 \n",
"Hungary 1.3 15442.0 \n",
"Poland 0.9 17852.0 \n",
"Chile 4.4 14533.0 \n",
"Slovak Republic 1.2 17503.0 \n",
"Czech Republic 0.8 18404.0 \n",
"Estonia 4.8 15167.0 \n",
"Greece 1.6 18575.0 \n",
"Portugal 1.1 20086.0 \n",
"Slovenia 0.4 19326.0 \n",
"Spain 0.6 22477.0 \n",
"Korea 1.1 19510.0 \n",
"Italy 0.7 25166.0 \n",
"Japan 0.3 26111.0 \n",
"Israel 2.3 22104.0 \n",
"New Zealand 1.2 23815.0 \n",
"France 0.6 28799.0 \n",
"Belgium 1.1 28307.0 \n",
"Germany 0.5 31252.0 \n",
"Finland 1.4 27927.0 \n",
"Canada 1.5 29365.0 \n",
"Netherlands 0.9 27888.0 \n",
"Austria 0.4 31173.0 \n",
"United Kingdom 0.3 27029.0 \n",
"Sweden 0.7 29185.0 \n",
"Iceland 0.3 23965.0 \n",
"Australia 0.8 31588.0 \n",
"Ireland 0.8 23917.0 \n",
"Denmark 0.3 26491.0 \n",
"United States 5.2 41355.0 \n",
"Norway 0.6 33492.0 \n",
"Switzerland 0.5 33491.0 \n",
"Luxembourg 0.4 38951.0 \n",
"\n",
" Household net financial wealth ... \\\n",
"Country ... \n",
"Brazil 6844.0 ... \n",
"Mexico 9056.0 ... \n",
"Russia 3412.0 ... \n",
"Turkey 3251.0 ... \n",
"Hungary 13277.0 ... \n",
"Poland 10919.0 ... \n",
"Chile 17733.0 ... \n",
"Slovak Republic 8663.0 ... \n",
"Czech Republic 17299.0 ... \n",
"Estonia 7680.0 ... \n",
"Greece 14579.0 ... \n",
"Portugal 31245.0 ... \n",
"Slovenia 18465.0 ... \n",
"Spain 24774.0 ... \n",
"Korea 29091.0 ... \n",
"Italy 54987.0 ... \n",
"Japan 86764.0 ... \n",
"Israel 52933.0 ... \n",
"New Zealand 28290.0 ... \n",
"France 48741.0 ... \n",
"Belgium 83876.0 ... \n",
"Germany 50394.0 ... \n",
"Finland 18761.0 ... \n",
"Canada 67913.0 ... \n",
"Netherlands 77961.0 ... \n",
"Austria 49887.0 ... \n",
"United Kingdom 60778.0 ... \n",
"Sweden 60328.0 ... \n",
"Iceland 43045.0 ... \n",
"Australia 47657.0 ... \n",
"Ireland 31580.0 ... \n",
"Denmark 44488.0 ... \n",
"United States 145769.0 ... \n",
"Norway 8797.0 ... \n",
"Switzerland 108823.0 ... \n",
"Luxembourg 61765.0 ... \n",
"\n",
" Time devoted to leisure and personal care Voter turnout \\\n",
"Country \n",
"Brazil 14.97 79.0 \n",
"Mexico 13.89 63.0 \n",
"Russia 14.97 65.0 \n",
"Turkey 13.42 88.0 \n",
"Hungary 15.04 62.0 \n",
"Poland 14.20 55.0 \n",
"Chile 14.41 49.0 \n",
"Slovak Republic 14.99 59.0 \n",
"Czech Republic 14.98 59.0 \n",
"Estonia 14.90 64.0 \n",
"Greece 14.91 64.0 \n",
"Portugal 14.95 58.0 \n",
"Slovenia 14.62 52.0 \n",
"Spain 16.06 69.0 \n",
"Korea 14.63 76.0 \n",
"Italy 14.98 75.0 \n",
"Japan 14.93 53.0 \n",
"Israel 14.48 68.0 \n",
"New Zealand 14.87 77.0 \n",
"France 15.33 80.0 \n",
"Belgium 15.71 89.0 \n",
"Germany 15.31 72.0 \n",
"Finland 14.89 69.0 \n",
"Canada 14.25 61.0 \n",
"Netherlands 15.44 75.0 \n",
"Austria 14.46 75.0 \n",
"United Kingdom 14.83 66.0 \n",
"Sweden 15.11 86.0 \n",
"Iceland 14.61 81.0 \n",
"Australia 14.41 93.0 \n",
"Ireland 15.19 70.0 \n",
"Denmark 16.06 88.0 \n",
"United States 14.27 68.0 \n",
"Norway 15.56 78.0 \n",
"Switzerland 14.98 49.0 \n",
"Luxembourg 15.12 91.0 \n",
"\n",
" Water quality Years in education \\\n",
"Country \n",
"Brazil 72.0 16.3 \n",
"Mexico 67.0 14.4 \n",
"Russia 56.0 16.0 \n",
"Turkey 62.0 16.4 \n",
"Hungary 77.0 17.6 \n",
"Poland 79.0 18.4 \n",
"Chile 73.0 16.5 \n",
"Slovak Republic 81.0 16.3 \n",
"Czech Republic 85.0 18.1 \n",
"Estonia 79.0 17.5 \n",
"Greece 69.0 18.6 \n",
"Portugal 86.0 17.6 \n",
"Slovenia 88.0 18.4 \n",
"Spain 71.0 17.6 \n",
"Korea 78.0 17.5 \n",
"Italy 71.0 16.8 \n",
"Japan 85.0 16.3 \n",
"Israel 68.0 15.8 \n",
"New Zealand 89.0 18.1 \n",
"France 82.0 16.4 \n",
"Belgium 87.0 18.9 \n",
"Germany 95.0 18.2 \n",
"Finland 94.0 19.7 \n",
"Canada 91.0 17.2 \n",
"Netherlands 92.0 18.7 \n",
"Austria 94.0 17.0 \n",
"United Kingdom 88.0 16.4 \n",
"Sweden 95.0 19.3 \n",
"Iceland 97.0 19.8 \n",
"Australia 91.0 19.4 \n",
"Ireland 80.0 17.6 \n",
"Denmark 94.0 19.4 \n",
"United States 85.0 17.2 \n",
"Norway 94.0 17.9 \n",
"Switzerland 96.0 17.3 \n",
"Luxembourg 86.0 15.1 \n",
"\n",
" Subject Descriptor \\\n",
"Country \n",
"Brazil Gross domestic product per capita, current prices \n",
"Mexico Gross domestic product per capita, current prices \n",
"Russia Gross domestic product per capita, current prices \n",
"Turkey Gross domestic product per capita, current prices \n",
"Hungary Gross domestic product per capita, current prices \n",
"Poland Gross domestic product per capita, current prices \n",
"Chile Gross domestic product per capita, current prices \n",
"Slovak Republic Gross domestic product per capita, current prices \n",
"Czech Republic Gross domestic product per capita, current prices \n",
"Estonia Gross domestic product per capita, current prices \n",
"Greece Gross domestic product per capita, current prices \n",
"Portugal Gross domestic product per capita, current prices \n",
"Slovenia Gross domestic product per capita, current prices \n",
"Spain Gross domestic product per capita, current prices \n",
"Korea Gross domestic product per capita, current prices \n",
"Italy Gross domestic product per capita, current prices \n",
"Japan Gross domestic product per capita, current prices \n",
"Israel Gross domestic product per capita, current prices \n",
"New Zealand Gross domestic product per capita, current prices \n",
"France Gross domestic product per capita, current prices \n",
"Belgium Gross domestic product per capita, current prices \n",
"Germany Gross domestic product per capita, current prices \n",
"Finland Gross domestic product per capita, current prices \n",
"Canada Gross domestic product per capita, current prices \n",
"Netherlands Gross domestic product per capita, current prices \n",
"Austria Gross domestic product per capita, current prices \n",
"United Kingdom Gross domestic product per capita, current prices \n",
"Sweden Gross domestic product per capita, current prices \n",
"Iceland Gross domestic product per capita, current prices \n",
"Australia Gross domestic product per capita, current prices \n",
"Ireland Gross domestic product per capita, current prices \n",
"Denmark Gross domestic product per capita, current prices \n",
"United States Gross domestic product per capita, current prices \n",
"Norway Gross domestic product per capita, current prices \n",
"Switzerland Gross domestic product per capita, current prices \n",
"Luxembourg Gross domestic product per capita, current prices \n",
"\n",
" Units Scale \\\n",
"Country \n",
"Brazil U.S. dollars Units \n",
"Mexico U.S. dollars Units \n",
"Russia U.S. dollars Units \n",
"Turkey U.S. dollars Units \n",
"Hungary U.S. dollars Units \n",
"Poland U.S. dollars Units \n",
"Chile U.S. dollars Units \n",
"Slovak Republic U.S. dollars Units \n",
"Czech Republic U.S. dollars Units \n",
"Estonia U.S. dollars Units \n",
"Greece U.S. dollars Units \n",
"Portugal U.S. dollars Units \n",
"Slovenia U.S. dollars Units \n",
"Spain U.S. dollars Units \n",
"Korea U.S. dollars Units \n",
"Italy U.S. dollars Units \n",
"Japan U.S. dollars Units \n",
"Israel U.S. dollars Units \n",
"New Zealand U.S. dollars Units \n",
"France U.S. dollars Units \n",
"Belgium U.S. dollars Units \n",
"Germany U.S. dollars Units \n",
"Finland U.S. dollars Units \n",
"Canada U.S. dollars Units \n",
"Netherlands U.S. dollars Units \n",
"Austria U.S. dollars Units \n",
"United Kingdom U.S. dollars Units \n",
"Sweden U.S. dollars Units \n",
"Iceland U.S. dollars Units \n",
"Australia U.S. dollars Units \n",
"Ireland U.S. dollars Units \n",
"Denmark U.S. dollars Units \n",
"United States U.S. dollars Units \n",
"Norway U.S. dollars Units \n",
"Switzerland U.S. dollars Units \n",
"Luxembourg U.S. dollars Units \n",
"\n",
" Country/Series-specific Notes \\\n",
"Country \n",
"Brazil See notes for: Gross domestic product, curren... \n",
"Mexico See notes for: Gross domestic product, curren... \n",
"Russia See notes for: Gross domestic product, curren... \n",
"Turkey See notes for: Gross domestic product, curren... \n",
"Hungary See notes for: Gross domestic product, curren... \n",
"Poland See notes for: Gross domestic product, curren... \n",
"Chile See notes for: Gross domestic product, curren... \n",
"Slovak Republic See notes for: Gross domestic product, curren... \n",
"Czech Republic See notes for: Gross domestic product, curren... \n",
"Estonia See notes for: Gross domestic product, curren... \n",
"Greece See notes for: Gross domestic product, curren... \n",
"Portugal See notes for: Gross domestic product, curren... \n",
"Slovenia See notes for: Gross domestic product, curren... \n",
"Spain See notes for: Gross domestic product, curren... \n",
"Korea See notes for: Gross domestic product, curren... \n",
"Italy See notes for: Gross domestic product, curren... \n",
"Japan See notes for: Gross domestic product, curren... \n",
"Israel See notes for: Gross domestic product, curren... \n",
"New Zealand See notes for: Gross domestic product, curren... \n",
"France See notes for: Gross domestic product, curren... \n",
"Belgium See notes for: Gross domestic product, curren... \n",
"Germany See notes for: Gross domestic product, curren... \n",
"Finland See notes for: Gross domestic product, curren... \n",
"Canada See notes for: Gross domestic product, curren... \n",
"Netherlands See notes for: Gross domestic product, curren... \n",
"Austria See notes for: Gross domestic product, curren... \n",
"United Kingdom See notes for: Gross domestic product, curren... \n",
"Sweden See notes for: Gross domestic product, curren... \n",
"Iceland See notes for: Gross domestic product, curren... \n",
"Australia See notes for: Gross domestic product, curren... \n",
"Ireland See notes for: Gross domestic product, curren... \n",
"Denmark See notes for: Gross domestic product, curren... \n",
"United States See notes for: Gross domestic product, curren... \n",
"Norway See notes for: Gross domestic product, curren... \n",
"Switzerland See notes for: Gross domestic product, curren... \n",
"Luxembourg See notes for: Gross domestic product, curren... \n",
"\n",
" GDP per capita Estimates Start After \n",
"Country \n",
"Brazil 8669.998 2014.0 \n",
"Mexico 9009.280 2015.0 \n",
"Russia 9054.914 2015.0 \n",
"Turkey 9437.372 2013.0 \n",
"Hungary 12239.894 2015.0 \n",
"Poland 12495.334 2014.0 \n",
"Chile 13340.905 2014.0 \n",
"Slovak Republic 15991.736 2015.0 \n",
"Czech Republic 17256.918 2015.0 \n",
"Estonia 17288.083 2014.0 \n",
"Greece 18064.288 2014.0 \n",
"Portugal 19121.592 2014.0 \n",
"Slovenia 20732.482 2015.0 \n",
"Spain 25864.721 2014.0 \n",
"Korea 27195.197 2014.0 \n",
"Italy 29866.581 2015.0 \n",
"Japan 32485.545 2015.0 \n",
"Israel 35343.336 2015.0 \n",
"New Zealand 37044.891 2015.0 \n",
"France 37675.006 2015.0 \n",
"Belgium 40106.632 2014.0 \n",
"Germany 40996.511 2014.0 \n",
"Finland 41973.988 2014.0 \n",
"Canada 43331.961 2015.0 \n",
"Netherlands 43603.115 2014.0 \n",
"Austria 43724.031 2015.0 \n",
"United Kingdom 43770.688 2015.0 \n",
"Sweden 49866.266 2014.0 \n",
"Iceland 50854.583 2014.0 \n",
"Australia 50961.865 2014.0 \n",
"Ireland 51350.744 2014.0 \n",
"Denmark 52114.165 2015.0 \n",
"United States 55805.204 2015.0 \n",
"Norway 74822.106 2015.0 \n",
"Switzerland 80675.308 2015.0 \n",
"Luxembourg 101994.093 2014.0 \n",
"\n",
"[36 rows x 30 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita, left_index=True, right_index=True)\n",
"full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n",
"full_country_stats"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"GDP per capita 55805.204\n",
"Life satisfaction 7.200\n",
"Name: United States, dtype: float64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"full_country_stats[[\"GDP per capita\", 'Life satisfaction']].loc[\"United States\"]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"remove_indices = [0, 1, 6, 8, 33, 34, 35]\n",
"keep_indices = list(set(range(36)) - set(remove_indices))\n",
"\n",
"sample_data = full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices]\n",
"missing_data = full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[remove_indices]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure money_happy_scatterplot\n"
]
},
{
"data": {
"image/png": "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\nMqcI9P8AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x110a07be0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
"plt.axis([0, 60000, 0, 10])\n",
"position_text = {\n",
" \"Hungary\": (5000, 1),\n",
" \"Korea\": (18000, 1.7),\n",
" \"France\": (29000, 2.4),\n",
" \"Australia\": (40000, 3.0),\n",
" \"United States\": (52000, 3.8),\n",
"}\n",
"for country, pos_text in position_text.items():\n",
" pos_data_x, pos_data_y = sample_data.loc[country]\n",
" country = \"U.S.\" if country == \"United States\" else country\n",
" plt.annotate(country, xy=(pos_data_x, pos_data_y), xytext=pos_text,\n",
" arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5))\n",
" plt.plot(pos_data_x, pos_data_y, \"ro\")\n",
"save_fig('money_happy_scatterplot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"sample_data.to_csv(os.path.join(\"datasets\", \"lifesat\", \"lifesat.csv\"))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Hungary</th>\n",
" <td>12239.894</td>\n",
" <td>4.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Korea</th>\n",
" <td>27195.197</td>\n",
" <td>5.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>France</th>\n",
" <td>37675.006</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>50961.865</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United States</th>\n",
" <td>55805.204</td>\n",
" <td>7.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" GDP per capita Life satisfaction\n",
"Country \n",
"Hungary 12239.894 4.9\n",
"Korea 27195.197 5.8\n",
"France 37675.006 6.5\n",
"Australia 50961.865 7.3\n",
"United States 55805.204 7.2"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.loc[list(position_text.keys())]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure tweaking_model_params_plot\n"
]
},
{
"data": {
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ae91550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"\n",
"sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
"plt.axis([0, 60000, 0, 10])\n",
"X=np.linspace(0, 60000, 1000)\n",
"plt.plot(X, 2*X/100000, \"r\")\n",
"plt.text(40000, 2.7, r\"$\\theta_0 = 0$\", fontsize=14, color=\"r\")\n",
"plt.text(40000, 1.8, r\"$\\theta_1 = 2 \\times 10^{-5}$\", fontsize=14, color=\"r\")\n",
"plt.plot(X, 8 - 5*X/100000, \"g\")\n",
"plt.text(5000, 9.1, r\"$\\theta_0 = 8$\", fontsize=14, color=\"g\")\n",
"plt.text(5000, 8.2, r\"$\\theta_1 = -5 \\times 10^{-5}$\", fontsize=14, color=\"g\")\n",
"plt.plot(X, 4 + 5*X/100000, \"b\")\n",
"plt.text(5000, 3.5, r\"$\\theta_0 = 4$\", fontsize=14, color=\"b\")\n",
"plt.text(5000, 2.6, r\"$\\theta_1 = 5 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
"save_fig('tweaking_model_params_plot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4.8530528002664362, 4.9115445891584838e-05)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn import linear_model\n",
"lin1 = linear_model.LinearRegression()\n",
"Xsample = np.c_[sample_data[\"GDP per capita\"]]\n",
"ysample = np.c_[sample_data[\"Life satisfaction\"]]\n",
"lin1.fit(Xsample, ysample)\n",
"t0, t1 = lin1.intercept_[0], lin1.coef_[0][0]\n",
"t0, t1"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure best_fit_model_plot\n"
]
},
{
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x111538b38>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
"plt.axis([0, 60000, 0, 10])\n",
"X=np.linspace(0, 60000, 1000)\n",
"plt.plot(X, t0 + t1*X, \"b\")\n",
"plt.text(5000, 3.1, r\"$\\theta_0 = 4.85$\", fontsize=14, color=\"b\")\n",
"plt.text(5000, 2.2, r\"$\\theta_1 = 4.91 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
"save_fig('best_fit_model_plot')\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"22587.49\n"
]
},
{
"data": {
"text/plain": [
"5.9624474431881502"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cyprus_gdp_per_capita = gdp_per_capita.loc[\"Cyprus\"][\"GDP per capita\"]\n",
"print(cyprus_gdp_per_capita)\n",
"cyprus_predicted_life_satisfaction = lin1.predict(cyprus_gdp_per_capita)[0][0]\n",
"cyprus_predicted_life_satisfaction"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure cyprus_prediction_plot\n"
]
},
{
"data": {
"image/png": "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\nWEfoGnYwAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11160a198>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3), s=1)\n",
"X=np.linspace(0, 60000, 1000)\n",
"plt.plot(X, t0 + t1*X, \"b\")\n",
"plt.axis([0, 60000, 0, 10])\n",
"plt.text(5000, 7.5, r\"$\\theta_0 = 4.85$\", fontsize=14, color=\"b\")\n",
"plt.text(5000, 6.6, r\"$\\theta_1 = 4.91 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
"plt.plot([cyprus_gdp_per_capita, cyprus_gdp_per_capita], [0, cyprus_predicted_life_satisfaction], \"r--\")\n",
"plt.text(25000, 5.0, r\"Prediction = 5.96\", fontsize=14, color=\"b\")\n",
"plt.plot(cyprus_gdp_per_capita, cyprus_predicted_life_satisfaction, \"ro\")\n",
"save_fig('cyprus_prediction_plot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Portugal</th>\n",
" <td>19121.592</td>\n",
" <td>5.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovenia</th>\n",
" <td>20732.482</td>\n",
" <td>5.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Spain</th>\n",
" <td>25864.721</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" GDP per capita Life satisfaction\n",
"Country \n",
"Portugal 19121.592 5.1\n",
"Slovenia 20732.482 5.7\n",
"Spain 25864.721 6.5"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data[7:10]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.766666666666667"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(5.1+5.7+6.5)/3"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"backup = oecd_bli, gdp_per_capita\n",
"\n",
"def prepare_country_stats(oecd_bli, gdp_per_capita):\n",
" oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"]\n",
" oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n",
" gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n",
" gdp_per_capita.set_index(\"Country\", inplace=True)\n",
" full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita,\n",
" left_index=True, right_index=True)\n",
" full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n",
" remove_indices = [0, 1, 6, 8, 33, 34, 35]\n",
" keep_indices = list(set(range(36)) - set(remove_indices))\n",
" return full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1115eecf8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 5.96242338]]\n"
]
}
],
"source": [
"# Code example\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import sklearn\n",
"\n",
"# Load the data\n",
"oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',')\n",
"gdp_per_capita = pd.read_csv(datapath + \"gdp_per_capita.csv\",thousands=',',delimiter='\\t',\n",
" encoding='latin1', na_values=\"n/a\")\n",
"\n",
"# Prepare the data\n",
"country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)\n",
"X = np.c_[country_stats[\"GDP per capita\"]]\n",
"y = np.c_[country_stats[\"Life satisfaction\"]]\n",
"\n",
"# Visualize the data\n",
"country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction')\n",
"plt.show()\n",
"\n",
"# Select a linear model\n",
"model = sklearn.linear_model.LinearRegression()\n",
"\n",
"# Train the model\n",
"model.fit(X, y)\n",
"\n",
"# Make a prediction for Cyprus\n",
"X_new = [[22587]] # Cyprus' GDP per capita\n",
"print(model.predict(X_new)) # outputs [[ 5.96242338]]"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"oecd_bli, gdp_per_capita = backup"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Brazil</th>\n",
" <td>8669.998</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mexico</th>\n",
" <td>9009.280</td>\n",
" <td>6.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chile</th>\n",
" <td>13340.905</td>\n",
" <td>6.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Czech Republic</th>\n",
" <td>17256.918</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>74822.106</td>\n",
" <td>7.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Switzerland</th>\n",
" <td>80675.308</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Luxembourg</th>\n",
" <td>101994.093</td>\n",
" <td>6.9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" GDP per capita Life satisfaction\n",
"Country \n",
"Brazil 8669.998 7.0\n",
"Mexico 9009.280 6.7\n",
"Chile 13340.905 6.7\n",
"Czech Republic 17256.918 6.5\n",
"Norway 74822.106 7.4\n",
"Switzerland 80675.308 7.5\n",
"Luxembourg 101994.093 6.9"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"missing_data"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"position_text2 = {\n",
" \"Brazil\": (1000, 9.0),\n",
" \"Mexico\": (11000, 9.0),\n",
" \"Chile\": (25000, 9.0),\n",
" \"Czech Republic\": (35000, 9.0),\n",
" \"Norway\": (60000, 3),\n",
" \"Switzerland\": (72000, 3.0),\n",
" \"Luxembourg\": (90000, 3.0),\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure representative_training_data_scatterplot\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzsnXd4U2X7xz+ne9HSlj0KlFHoBkoB\noQwRUBmyhyAiomwUxIEDUfT3IiAKCL5MEUH0ZYq4AAHZUwEREZQps3vQnTy/P54mbaEjLWmTludz\nXb16npOTc+6kTfLNPTUhBAqFQqFQKBTlCRtLG6BQKBQKhUJhbpTAUSgUCoVCUe5QAkehUCgUCkW5\nQwkchUKhUCgU5Q4lcBQKhUKhUJQ7lMBRKBQKhUJR7lACR6FQKBQKRbmjVAWOpmnjNU07pmlamqZp\nK++6rZOmaWc1TUvWNG2Xpml1StM2hUKhUCgU5YfS9uBcB94DVuTcqWlaJWAj8BbgBRwDvi5l2xQK\nhUKhUJQT7ErzYkKIjQCapoUBtXLc1Af4QwixLuv26UCUpmmNhRBnS9NGhUKhUCgUZZ9SFTgFEACc\nNCyEEHc0Tfsna38ugaNp2vPA8wCurq7NGzduXJp2KhQKhULxQJOSIn87O8vff/4JHh5Qo4Zc//Yb\nVKkCNWvKdWQkVKgATk7muf7x48ejhBCVCzvOWgSOGxB51754oMLdBwohlgBLAMLCwsSxY8dK3jqF\nQqFQKB4g0tPBwUFuz54NtrYwebJcN2oEISGwbp1cjx0LLVrAM8/IdWKiFDQlhaZpl005zloEThLg\nftc+dyDRArYoFAqFQvHA8OuvcPky9O4t1/37w7//wsGDcr1vHzg6Zh+/bBlUzuE/WbQo9/lKUtwU\nBWsROH8ATxsWmqa5AvWz9isUCoVCoSgmer0ULD4+cr18OXz7LWzeLNeLFsGWLdkCp2dPiIvLvv/m\nzaBp2et27UrH7vultMvE7TRNcwJsAVtN05w0TbMDNgGBmqb1zbp9GnBKJRgrFAqFQlE0fv8d3n0X\nMjLk+r33oG7d7NyZ1FQpYAy3T5smvTgGnnoKJkzIXucUN2WJ0i4TfxNIAV4DhmZtvymEiAT6Au8D\nsUBLYFAp26ZQKBQKhdWTkgJHjshcF4Dt22VezMWLcv3bbzB9ugw7gfTILFkCQsj1uHGwezfY28u1\njw/UylnXXE4oVYEjhJguhNDu+pmeddsOIURjIYSzEKKDEOJSadqmUCgUCoW1IATodHL76lWYOBFO\nnZLrgwehZUs4fFiuK1WC4GDIzJTrfv0gKQkaNJDr0FAYORJcXEr3MVgaNapBoVAoFAoLkp4O338P\nZ7OSMq5eBW9v+OILudbr4bPP4Px5uW7eHDZtgqZN5bppU1i/Hho2lGsXlwdPzORFuRQ4tra2hIaG\nEhISQrNmzThw4IBZzjty5EjOnDkDQN26dYmKijLLeQ1omsbQoUON68zMTCpXrkz37t2Ldb4tW7Yw\nc+ZMc5lXaty8eZNBgwZRv359mjdvzuOPP86SJUvyfR5K+u9iKnnZfe7cObOce/r06cyZM6fQ4+rW\nrUtQUBDBwcG0b9+ey5dNqqYsEitXrmT8+PF53ubm5gbA9evX6devn9mvrVCUVdLTITZWbuv1MHQo\nrMjq6S8E9OgBX34p19Wrw8CB2R4YHx9ISIC+feXawwN69ZIiSJE/1lJFZVacnZ05ceIEAD/99BNT\np07ll19+yXVMZmYmdnZFe/jLli0zm4154erqyunTp0lJScHZ2Znt27dT09ApqRj07NmTnj17mtHC\nkkcIQe/evXn66af56quvADh58iRbtmzJ9z4l/XcxhfzsvnXrFo0aNSpVW3bt2kWlSpV4++23ee+9\n91i6dGmpXh+gRo0arF+/vtSvq1BYC+vXg52dFCIA9etD585S1NjYwKVLYPgu5ugIhw5lCxo7O/j0\n0+xzldUkX0tTLj04OUlISMDT0xOA3bt3ExERQc+ePfH39wegV69eNG/enICAAJYsWQJIz0doaCih\noaH4+flRr149ADp06EBJNxZ8/PHH+e677wBYu3YtgwcPNt52584dRowYQXh4OE2bNuWbb74B4KOP\nPmLEiBEA/P777wQGBpKcnJzrm/atW7fo3bs3ISEhhISEGL1ac+fOJTAwkMDAQD7++OMSfWymsGvX\nLuzt7Rk9erRxX0hICBERESQlJdGvXz8aN27MkCFDEFkZc/n9XVavXk14eDihoaGMGjUKnSGgXcp2\nT5s2zfj/VLNmTZ7J6oaVn30//vgjzZo1IyQkhE6dOhnPd+bMGTp06ICvry/z588v1KbWrVtz7do1\n4zq/67m5uTFp0iQCAgLo1KkTkZGy52bO5zUqKoq6desaz3X16lU6dOhAw4YNeeedd+659qVLlwgM\nDARAp9MxZcoUAgMDCQ4OZsGCBSY9pwqFNRMVBadPZ68nToRhw7LXH30E8+Zlr6dPh0E5Smf27YNX\nXslet2gBWR9VCnMhhCizP82bNxd5YWNjI0JCQoSfn59wd3cXx44dE0IIsWvXLuHi4iIuXLhgPDY6\nOloIIURycrIICAgQUVFRuc7Vv39/8cknnwghhGjfvr04evSoEEKIOnXqiMjIyDyvX1xcXV3FyZMn\nRd++fUVKSooICQkRu3btEt26dRNCCDF16lTxxRdfCCGEiI2NFQ0bNhRJSUlCp9OJiIgIsXHjRtG8\neXOxb98+IYQQn332mRg3bpwQQogBAwaIjz76SAghRGZmpoiLixPHjh0TgYGBIikpSSQmJgp/f3/x\n66+/mvUxFZV58+aJF1988Z79u3btEu7u7uLq1atCp9OJVq1aib179woh8v67nDlzRnTv3l2kp6cL\nIYQYM2aM+Pzzz0vd7pzExsaKwMBAcezYsXztu337tqhVq5bxf9Tw//n222+L1q1bi9TUVBEZGSm8\nvLyM981Jzv/LF154QSxevFgIIQp8PgCxevVqIYQQ77zzjvF/JufzGhkZKerUqSOEkP9X1apVE1FR\nUcbXjeE4V1dXIYQQFy9eFAEBAUIIIRYtWiT69u0rMjIycj0mhcLa0euzt7dsEeLNN7PX/fsLUb9+\n9vrtt4WYNCl7ffOmEHm8RBVmADgmTNAI5T5EdfDgQYYNG8bpLKkdHh5u9MgAzJ8/n02bNgHyW+n5\n8+fxzgpszpo1C2dnZ8aNG1dqtgcHB3Pp0iXWrl3L448/nuu2bdu2sWXLFmMuRmpqKleuXKFJkyas\nXLmS4OBgRo0aRZs2be45786dO1m1ahUgc5Q8PDzYt28fvXv3xtXVFYA+ffqwd+9emhoy16yM8PBw\namXVMoaGhnLp0iXatm2b57E///wzx48fp0WLFgCkpKRQpUqVUrP1boQQDB06lMmTJ9O8eXM++eST\nPO07dOgQ7dq1M/6Penl5Gc/RrVs3HB0dcXR0pEqVKty6dcv4fOSkY8eOxMTE4ObmxowZM4CCnw8b\nGxsGDhwIwNChQ+nTp0+hj6dz587G10mfPn3Yt28fYWFheR67Y8cORo8ebQwJ53xMCoW1cO2arErq\n3VuGhD78EGbOhJs35ZiCAwdg1Sp45x0ZYpo8ObtMG6SHJidVq5aq+Yo8KJcCJyetW7cmKirK6HY3\nfJiDDFnt2LGDgwcP4uLiQocOHUhNTQXkm/K6devYs2dPqdvcs2dPpkyZwu7du4mOjjbuF0KwYcMG\n/Pz87rnP+fPncXNz4/r166VpqtkJCAjIN3fDMUevcFtbWzINNZF5IITg6aef5j//+Y/ZbcyLguwG\nmSRcq1YtY3gqP/u+/fbbfM9h6uPftWsXFStWZMiQIbz99tvMnTu3SM+HlhXwt7OzQ6/XAxhfF3cf\nk99aobBGkpJkvou9PezfD3PmyLED3t6yW+/48bLjb82aEBAgE4FTU8HVFWbMgJwvn1atLPc4FKZR\n7nNwzp49i06nM37bzEl8fDyenp64uLhw9uxZDh06BMDly5cZN24c69atw9kwLrUUGTFiBG+//TZB\nQUG59nft2pUFCxYYc09+++03QD6OiRMnsmfPHqKjo/P8oO3UqROfZmWt6XQ64uPjiYiIYPPmzSQn\nJ3Pnzh02bdpERERECT+6gnn44YdJS0sz5kMBnDp1ir179xbpPJ06dWL9+vXcvn0bgJiYmBKpKDJQ\nkN3ffvstO3bsyJU3k599rVq1Ys+ePVzM6tgVExNTLHvs7Oz4+OOPWbVqFTExMQU+H3q93vg/8+WX\nXxq9YnXr1uX48eMA9/xPbd++nZiYGFJSUti8eXOeXkMDnTt3ZvHixUZBVtzHpFAUhchIWLxYllwD\n/PijnJFk6NibnCzLsrNeEvTtC8eOZc9YevRRmUdj+E5cxJoUhRVQLgVOSkqKMalz4MCBfP7559ja\n2t5z3KOPPkpmZiZNmjThtddeo1WWJF+5ciXR0dH06tWL0NDQe0JFJU2tWrWYOHHiPfvfeustMjIy\nCA4OJiAggLfeeguASZMmMW7cOBo1asTy5ct57bXXjB9kBubNm8euXbsICgqiefPmnDlzhmbNmjF8\n+HDCw8Np2bIlI0eOtHh4StM0Nm3axI4dO6hfvz4BAQFMnTqVatWqFek8/v7+vPfee3Tp0oXg4GA6\nd+7MjRs3Ssjqgu2eO3cu165dMyb4Tps2LV/7KleuzJIlS+jTpw8hISHG0FFxqF69OoMHD2bhwoUF\nPh+urq4cOXKEwMBAdu7cybRp0wCYMmUKn376KU2bNr2n9D48PJy+ffsSHBxM37598w1PgSzj9/Hx\nITg4mJCQEL401MIqFPeBXi879WY557l6FSIiZD8ZgFu3YPRo6akBCAqSIwsMbyWdO8Off0KTJnJd\nrZrsL2OYoK0o+2gGb0BZJCwsTJR0VZNCUd5xc3MjKSnJ0mYoFAWSkQGzZkFYGHTtKnvKeHnJfS+/\nLMNPjz0Gr70G3brJ469fh9q1Zc6MovygadpxIUT+36qyUH92hUKhUFgFJ07IOUoGwsNhyhS5bWcH\nc+fCrl1y7ekpu/v26CHXbm6wd68UNyDzbOrUUeLmQUZFFRWKBxzlvVGUJsnJ2WMEZs2SHX7ffFOu\nhw2TosSQa9+uHWS1U0LTZKWTk1P2uYYPLzWzFWUQJXAUCoVCUSIcPQp//w2GfqUDB8K5c9lempMn\npcAxsHRp7vEDd08nySluFIrCUAJHoVAoFMUiI0OOHDAMeVyxQs5T2rFDrj//XA6MHDRIemD69ctO\nCgZYsyb3+Vq2LBWzFQ8IKjp5n+h0Oq5cuWJpM6yexMREXnrpJQ4ePGhpUwolIyODL7/8km7dupGW\nlmZpcxQKq+HUKRlOSkmR6w8/hEaN5CBIAzY2sncMwBtvSA+OoU1S//4wdmzp2qx4cFEC5z5ZsWIF\nderU4datW8W6/3PPPcfq1avNbJX1IITgq6++wt3dnblz53LkyBFLm5QvUVFRvPnmmzg4ODBkyBC+\n//57EnK+cysU5Zw7d+SMpLg4ud65E+rWlf1iQP6eOROy2jTRo4f00hi6cIwYAdu2ZYeSqlfP7iuj\nUJQ2JgscTdMGapq2RNO0zZqmbcn5U5IGWjuhoaGAbIVfVKKjo1m2bJlxrER549y5c8ZeLCDHZrzw\nwgsWtupeTp8+zaOPPkrlypV5//338fT0ZOvWreh0Oiqrd2dFOUMIGVoCmbQ7erRscAcyJyYiIrt3\nTLVq8NBD2fd94gmZJJw1q5iAAJkYnKNBvEJhNZgkcDRNmw2sBuoCcUD0XT8PLM2aNQPI1cHWVHZk\nBar79etnVpssTXJyMuPHj8fPz49bt24xe/ZsMjMzjY0UrQG9Xs+3336Lp6cnQUFB/PTTTzz22GOc\nPn2amJgYunXrho2qL1WUcTIy5AiCkyfl+tYtcHeXuTIgPS//+x9cuCDXISGyUV7r1nLt7y9zaho3\nlmtHR9UIT1F2MDXJeBgwWAiR/7CdBxRbW1v8/Pz45ZdfEEIUaSbPokWLAIwDEMsD33zzDb169QKg\nTZs2rF+/vshdiEuSxMRElixZwhRDcw1g2rRpTJw4Mc9xHgqFtZOcLJvcVakivTODB0svzLhxMvdl\n0CCYOFGKlypV4Lnnskuvq1aF6OjsHBlXV9ksT6EobTIzM4mNjSU6OpqoqCiio6Pz3TYVUwWODVA+\n4yhmYNKkSYwePZq//vqLxoavOoUghGDPnj0EBQXlOUairHHx4kU6d+7MP//8A8hBpu3bt7ewVdlc\nuHCBt956K9eYgLVr19K3b1/s7e0taJlCUTS+/loKmUGD5DowUA5+/PJLKVTi46XgAdkc7+hRmUcD\n8va5c7PPpWakKkqCtLQ0oygxRbBER0cTGxub7/kcHByoVKkS3t7eRfoiaqrAWQIMBaabfOYiomla\nXWAR0BpIA9YDLwoh8h8ZbSV06dIFgJ9++slkgXPq1CkAJk+eXGJ2lQZpaWlMmzaNWbNmAXJq9uuv\nv24VokEIwe7du3nuueeMwis8PJwFCxYQHh5uYesUiry5eVPmxjRvLtcTJ8oJ1xs3yvXixZCZmS1w\n3ntPemIM/PBD7vPdNbNXoTAZIQTJyckmCxXD74Kah7q6uuLt7W0ULPXq1cslXvLadnV1zRUdMTVS\nYqrAqQg8qWlaZ+AUkHHXk3DvZMiiswi4DVTPut52YCwwv6A7WQP16tUDYNasWSYn0W7ZInOzu3bt\nWmJ2lTTbtm0z2h8cHMx3331HrVq1LGwVpKamsnr1ap577jnjvvHjxzN16lRq1KhhQcsUColOl115\ntGUL/PKLLLkGePVV+PlnKWoAatWSYwcMbNgAHh7Z6yefLB2bFWUbIQQJCQkmeVNybqcaav7zwMPD\nwyhCqlatir+/f74ixfDjVIrdGk0atqlp2q4CbhZCiIfv2xBN+xN4SQjxfdZ6NuAuhBiV332sadhm\njx492Lp1K+np6SZ5L+zs7NDpdJTFYaf//vsvPXr0MFZ//fjjj1Yh1K5fv87MmTNZsGCBcd+SJUsY\nOnQozs7OFrRM8SBz9aosvR4wQIqajz6Ct96SwyLt7eHdd2UH3wsX5PrXX2VfmQ4dLG25wlrR6XTG\nfBVThUp0dDSZmXkHRGxsbPDy8ipQnNy97eXlhZ2dZXoFmzps0yTrhBAd79+kQvkYGKRp2m7AE3gM\neKsUrmsWhg8fztatW/nggw84d+4cbdu25fnnn8/z2ISEBHQ6HaNG5avdrJKMjAxmzpzJtGnTAHj5\n5ZeZMWMGjo6OFrXr6NGjjB8/3thjx9fXl6VLl9KxY8ciJX0rFMUlJkYm6Do6woED8P77UrTUqAE/\n/SQTe1u2BF9faNpUJgCnpkpB8+abkPWSAiCrMFPxgJCRkWGySDFsx8bG5vvl2N7ePpcgadKkSaGC\npWLFiuWyarRI8kvTNCegASCAf4QQ+fuuis4e4HkgAbAFPgc252HD81nH4ePjY8bLF4/k5GTeffdd\nNmzYAMgwVWJiIpGRkfkKnJ07dwIwyBBELwPs2bPHmDRcr149fv75Z2NozhJkZmayfv16Y48dgMGD\nBzNjxgzq169vMbsU5Z/ISFi7Vk6trl9fhpMeeUSGmdq1k+Gna9dkdVKNGrJ3TMuWULu2vH+HDrm9\nM+Xwc+WBJSUlpcghoIKaibq4uOQSJD4+PoV6Vtzc3NQXuyxMDVHZA/8HjAccAA2ZCLwAeEMIkVHA\n3U05vw1wEZnMPAdwA1YAfwkhXsnvftYQooqJiaFatWpkZOR+Clq1apXvWILu3bvz3XffkZaWhoOV\nN5W4efMm/fv3Z9++fQBs2rTJWAZuCWJiYpg/fz7vvPOOcd+sWbMYNWoU7u7uFrNLUX7Q6+Gff6RH\npkYNuH4devWC116DPn3g/Hk5nmDlSnj6aSl4Pv9cjiGoU8fS1ivMgRCCxMTEIntWUgwzLPLA3d09\nlyAxJRSkQut5Y9YQFfABMBgYDezL2hcB/AdZQj4ln/uZihfgA3wihEgD0jRN+wx4D8hX4FgDXl5e\njB49miVLluSaWxQfH5/n8UIIvvvuO3x8fKxa3Oh0Oj7++GNjv5gxY8YwZ84cXFxcLGLPmTNnePnl\nl/n+++8B+WbxxRdf0K1bt3JRZq8ofYSQZdJ6Pbzzjqxa6tlTzllq1AhmzJDhI29vmdRreLn6+sKN\nG9mVS5Urw5T7fQdUlBh6vZ64uLgie1bu/tJqQNM0Y76Kt7c3tWvXJjQ0tECh4uXlZdXv9+UVUwXO\nk8AIQwJwFv9omhYJLOM+BY4QIkrTtIvAGE3TDB6cp5EVW1bPm2++ybJly3LtS0xMzLXesmULhw4d\nIiirZvPVV18tNfuKyqFDh2id1cq0cuXK7N27Fz8/v1K3Q6/X8+OPPzJs2DBjc6cuXbowe/ZsgoOD\nS90eRdnl2DFZWm1oph0eDmFhsGiRDBEtXy6FTc+e0nPz1VfZuTCOjrB9e/a5bG3lCANF6ZORkUFM\nTEyRPCuxsbHo9fo8z2dnZ5dLkDRq1KhQL0vFihXVl6oygqkCxwP4J4/9/yBLus1BH2Si8auADtgJ\nTDLTuUuUKlWqMHr0aBYtWmT04tzdB2D16tVs2LAB16yhLV999RVOTk489dRTVtEzBuRsrKFDh/Lj\njz8CshHewIEDSz2em5SUxLJly5g0KfvP//rrrzNp0iQqVapUqrYozEN0Uhr/xqZQy9MZbzfHQvcX\nFSFkg7uKWe9GM2dCYqJM9gUYM0beZhAqjz0mPTEGLl2STfEMDBxYbFMUJpKamppbkPTpQ1R8vHH+\nT1TW72g7O6J8fIiOjs7XMw7g5OSUS5CEhIQUGgJyd3dX+SrlGFNzcA4Bx4UQ4+7a/ykQKoRoXUL2\nFYg15OAYiIqKwsfHxxiDdXR0zNU/oGPHjuzevTvXfTRN4+LFi9SxcOBer9ezZMkSxowZA8BTTz3F\nwoULqVChQqnacfHiRaZPn86qVauM+9asWUP//v2tRgQqis43J67x6oZT2NvYkKHXM6tvMD1Da+a7\n3xQOH4Y//pDTq0GOJzhxAv78U66fe05OxF63Tq5PnJACx9DRV2E+hBDcuXPnnmZvhW0nJyfne84K\ngHfWTyXA+8knC/WsWCp8rih9TM3BMVXgtAO+B64Bh7J2twJqAI8JIfbld9+SxJoEDsiy6QULFpCW\nloamaWRkZBhdmcHBwfz+++/GY21tbenVqxfr11t2vNdvv/1GixYt0Ol0uLi45AqjlQaGkRXPP/88\n586dA+QA04ULF1rVcM7CMJcnoqxduzCik9Jo88FOUjOyQwRO9jZsHd+W7p/su2f//lcfxtvNkdRU\nmcxr+FdcsQKWLIGDB2XezJQpsHChHElgayub5d24AWWs84LVodfriY+PzxYkjz1GdFxctjeFLM+K\nvT3RjRsbRUt6enq+5/T09DStt0rHjkZRc0+2ShnsF6YoOczdB2ePpmmNgHGAYRbBOmCREOJ68c0s\nX0ydOtU4QNPe3p7ExEQqZvnM4+Lich1rb29vHG9QGsTExDB69GhmzpyJr68v8fHxjBw50iiwli9f\nzjPPPFNq7trU1FS+/PJLnn32WeO+MWPG8Prrr1tFN+SiYIonoqRESGHXjk5K44/rCYAgoIZHqQug\nf2NTsLexIZVsIWOraZy4Gpdrf/rtCtw5W5uzg1No4+/Ip5/C5Mlw+7ZM4nV2lr+TkqBCBdnt9803\ns7sB9+xZqg+rTJCZmWnMVylKM7j88lVsyfaqeGdkUL9+fcLDwwsUL56enipfRWExTO6DkyVk3ihB\nW8o8Xl5eTJgwgXnz5mFjY0N8fLxR4ORMOra3t2fQoEH45kwCKEFu3LhBmzZtuHr1Krdv3+aZZ55h\n+PDhAPTq1YsVK1bg6elZKrbcvHmTWbNm8dFHHxn3ffrppwwbNqxMupijk9J4dcMpUjP0xg/rVzac\nok2DSkYxcT+hmPu59jcnrvHS/06QmfV5ZW+r8WH/ELNc21RqeTqTodejT7cl7XpFHKokcIcMDu63\n4c+57anS7ygOVRPIjHcm+kgdMuNlp9Xu3WWJtqFKdvBg+WOgcuVSewhWQc7hhaaGgO7+UpUTR0fH\nXIIkMDAwb6HSrZsMESETMXN9/dm0qWQftEJxn+QrcDRNawacEELos7bzRQjxq9ktK6O8+uqrfPLJ\nJ6Snp+dKiMuZdGxra8t7771XKvZcuHCBNm3aEBUVRWZmJnv37uWXX34BZAfgsLBCvXxm4fjx40yc\nOJEDBw4AsknjihUrePjhh8t0kl9eHgp7Gxv+jU3B283RJAFUEtcGeGX9SaO4AcjQCV5eb55r54VO\nBxkZ4OQEf/ydxuuvw/MjNd7q5s+U/17h9tetqPTEcVwb32TTub95qL0HV50Ebo52OPpFs/jwDdo3\nl+KrYUP5YwrWHKK7G8PwwqKWLBc2vDCnOPH19S20z4qLi0uZft0pFKZQkAfnGFANOQDzGLJ7cV6v\nCIH0XiqQ8eYXX3yR999/39ihMiUlxdhW29HRkWeffZaaNUv+W/Tp06dp164dcXFxxuvr9XqcnJy4\nfft2iScRZ2ZmsnnzZgYNGoROpwNgwIABvPfeezQ09dPLyjF4KHKSoddTy1O6HgoTQCV17X9jU7DV\nbJAFidnY2mhmuXZmppxu7esry61jYqTH5YMPoG77a0xZc4ZLP7TjaMYZpo53xbNmCvqBh3CsJkW/\na6VUFryWSS3PlvclTkrKO2YKQghjvkpRPCs5+2XdTcWKFY0ipFq1agQEBBSav2LpUSlmo2pVuHUr\n7/0KRTEoSODUAyJzbCtM5OWXX2b+/PlGD05sbCwODg6kpKRga2vL9OnTS9yGI0eO8Mgjj9zTjwek\nyJkxY4ZZcoCuXr3K5MmT+c9//kODBg0A+Xg/+eQT48wqgA8++IBRo0bhkXMMcjnA282RWX2DeeWu\nD1nDh3VhAqgkr60T9+ZS6PTC5GvHx8ucF4MWHzAAWrSAl1+WuS/PPiurmMLCwNMTXnoJGvqnM3nD\nKTJs9dQctwOAT3ZpoGk41402ntvwHHi7ORZbbJnTO2YYXlgUz0pMTEyhwwsNIqRu3bqEhYUV2gzO\nUsMLrYKbNy1tgaKcke+rSQhxOecSuCryKLnSNM3yA6GsDA8/PzYlJhLYvTsAMcgn2gmYMGFCifdy\n2bFjB7169eLOnTu59js4OGAZHuIsAAAgAElEQVRra4uPjw8tW7a87+t8/fXXjBw5kpSUFCpUqMDL\nL7/Ma6+9xpYtWwDpOl+zZg3du3cv14mGPUNr0qZBpTw9EYWJkOKQMyST37W93RyZ3S+EyXfl4Mzu\nl/+1v/wS0tMhKz2Lli3B3196akB2/DVoNU2D48ez5ytpmuw5c/JqMvb7cnusHGxteb6dLwt3/429\njQ3pOh3jOjQo9uM3kJ937OKteNITdUXyrBQ0vNDBwSGXIPH39y80BOTh4VE+hheWslfl9u3bVKxY\nUXX9VZgFU8vEdUB1IcTtu/Z7A7eFEBb59LK2MnEjd8W29wCdkaWP/8bFlagXY9OmTQwZMsTYj8fW\n1hYnJyc8PDx49tlneeqpp+47PJSQkMDIkSP57rvv8uxl0alTJz788ENCQkLu6zrlifvJE8l5331/\nRxUpJBOdlMbBf6KJSkqlvksVbFPceOghedvEifDXX3LaNcDjj8veMVlpUmzYAF5e0LFj0WzNqyx8\n/6sPA7Dm8BUW7vobB1vT7E9OTs5XmFy7eZu1e/4gIzkBfUoiupQEREoC+vT85wEZhhfmJU7yEyxq\neGHpIITA39+fmTNn8sQTT1janAebatXyF7ZW4Gkz9ywqDenFuRs3wJwTxcslsUA68BaUqLhZsWIF\nzz33HHq9ngoVKmBjY8OQIUMYMWIEzZo1M8ub9IEDB+jTpw9xcXG5cglsbW1p3bo1GzdupPKDVuJi\nAsUNxeTMMUnX6dALmSycX0gmPT17ZtI338CnX2RyqclJ7G1suPqtHeKiM/Gx8vtIo0YyIdjA//4n\nxxQY6Nu3eI8zL4+Vl6sDl29E8fGmvaQkxhsFyXNHNrOnqTfJCXF5elYKGl7o4eGBa4WKxOkdcXCr\niE2lWrQP9iW8Sd08hYoaXmg6cXFx9O/fn3Xr1hkrQUua/fv3c/bs2QL/5opSIi9xU9B+K6VAgaNp\n2vysTQH8R9O0nF/XbYFw4EQJ2VZuiAE8Kdm5E5988gkTJkzAycmJXr16MXLkSDp06GC20FBmZiZv\nvfUW8+bNy/MNSKfTcfbs2VIrN38QyCvHJCeZCU4kXavCxVsyaXj+fJkHEx8PLi7w66lMdv6sUb0u\npNpl4tL0InbB/xKV2JxKFRwZPz73+dzcTLNLr9cTGxt7jyDJKUwa3LzNzduRZCbE8fxSma+S3/DC\nuduzhxdWqlQJHx8fmjZtWqCXxcvLy9jduixVUZUFMjMz6dGjB6dPn8bd3b3Urvvhhx8C5Pt/olAU\nlcI8OIaWthrQBOmIMJAO/ArMKQG7yhUtgS8BV5Cuv+K4+ApxGbq4uLBhwwYef/xxnHJ+LTcDf//9\nN7179+bChQv3iBs7OztcXFxITU3F2dmZmJgYqlSpYtbrP6hcjUmBZCf0pGJjryftWkXi9vrh/dgp\n7DxSSL3qRfTWINLfki/LFi1g6lTpxXFxgd5PJ7Ex8zCJaVIcOVSWpcZrj1xhQicZpjQMLyxKcm1h\nwwtzCpM6TRpne08qVOTTQ7fQObhh6+yOjbM7LhU82D+tB1U8it8D6X4SlRX3MmHCBPbt28eAAQNK\nLY8oMjKSH374AScnpwK7IisURaFAgSOE6AigadpnwAtCiIRSsaqc4Z/1AxTfxVeIy3CEYSiPGRFC\nsGLFCsaOHWv8VuXu7k56ejqOjo40bdqUjh070qpVK8LCwvDy8jK7DQ8SUVHw+efQrRs0bgxXz7jw\n19yOVBlwGOd6UWAjEOl22GY4UMExA/vGUcwYeYuWTWXCZ2hoCrVrR3P5cjS//hrNxX9vcPvIAdKS\nZEhIn5qILjmBl1clMtcpg5joaGMrg7zIObywUqVKhIaGFpq/UqFChQJDoaEnrt0TvrofcaMwL4sX\nL2bVqlW4uLjQr1+/UrvusmXL0DTNOOJGoTAHpubgTAXcgVzvhpqm1QIyhBBlKzBX0uRXeVDGeOGF\nF1iwYAHOzs6EhITQvn17HnroIVq0aEHNmjVV4mUR0evhzBlwdwcfH4iMhC5d5FylIUMgJUVuV6wo\nqFkzCZ/q0Tzx1EUOxx1Fdy4G/Z04evVwxo1U/v3tFqlJ8Sz9OZb/TJCelYKGF2oOzkaviYOrO/7B\nvjSoXb3A5NqS6CxdUMWZwrLs2bOHSZMmkZKSgoODA507dy6V6+r1eubNm0dqaioODg7Kg6MwG6YK\nnNXA18DSu/Z3BQYCXcxpVJnn5s17KqmshiJkx48aNYrx48fToEGDUi95Lct5FTqd7BMjBLz+up6G\nDeOJiIji5s1oOnSIpnPXWwSG3SDjTjwxMfEsWhTN0qVSpFStGs3YsdGMHJn3m/z/NA1PT0+jCKlZ\nsybBwcH5ChUb5wr0WnaS9ByFjk72NqzKGmppCVRIyfq4cOECPXr0MIagmzRpUmrJxdu2bTO2tNDr\n9UrgWAPlpOmiqQInDDlo8272ArPNZ46ixClCdnxAQEAJG5M3luxOWxA5hxca8lGOHIkmOjoKDw+Z\np7JxYxQODtF4ecljoqJi4K4E4Z9+kD9oNnh4euEWVwVvb28aNGhAq1atCuxaW5zhhXMG2pm1D4+i\nfJGQkECnTp2M4yAcHBwYOHBgqV1/9uzZxmvr9XoVorIGcnzZ1ev1Zbank6kCxw7I6x3RKZ/9CkWx\nKMnZTTkxDC/MK4n27n23b0cTFxdd6PDCSpUq4eTkjaenN4GBQVnVPt5UrizFib2LO69+d5FMezds\nXdzRHFxwdrBlTwl7U1RYSJEfOp2OJ554ghs3bhgTx+3t7enRo0epXP/KlSvs37/fuNbr9QWOslCU\nPgEBAWzYsAF/f//CD7YyTBU4h4ExWT85GQccNatF5QVzu/jKicuwMIo6u0kIwZ07d4o8D+juLs85\ncXR0o1o16TW5ft2bhIT6jBghRcru3d6kpFRixgzpWYmNrUTt2t40bFj48MKTV+NwP+VEYlp2e39z\nzaUqDBUWUuTFpEmTOHLkSC5R4ejoWGre20WLFt3TQTo1VbVWsyb++ecfPvvsM2bPLnvBGlMFzhvA\nTk3TgoGdWfseBpoCj5SEYWUec3d7tILukSWNEIIKWhp3oq6RlhiHPiUBXUoiyemJrErZRXJifJ5e\nlsKGFxrCO9WqVaNx40CE8MbfX3pWTp3y5ocfvNm4sRJVqngzb543H33kyPnzYG8P27bB1aty7hLA\n228X//GV5FwqhaKofPHFFyxbtuye1g/du3cvlQKCjIwM/vvf/96Tc6M8ONZDSkoKGRkZrFy5kg8+\n+KDMhapMEjhCiEOaprUGXgb6ZO3+DRgrhDhZUsYpyi46nc6Yr2KqZyU6Oto4dfxu5u20zdUMztfX\nlxYtWuSZp+LlJbe9vDz58087li2DadPA2xs+/RTGjpWipVYt2LRJase6daFiRdlHZto0KW5AVjmZ\ni5KYS6VQFBdbW1vjKBeD18Td3Z2+xWlhXQwOHz5MYmIibm5uxhwcUB4cayI2NhZnZ2dSU1M5cOAA\nbdu2tbRJRcLk0bVZQmZoCdqiKCFyVSQVI9SVnp5uslAx/I6Liyt0eKFBkPj7+98jVOxd3Mm0d6Vx\n3Zo08Kme7/DCpCTYuxeaNpUFYvv2QUQEfPcdVKkC16/D8uXw1FNS4Dz2mBweaSgQ6d1b/hgo6cIR\nlQ+jsBaefPJJIiIi8PGR85IdHBxITU3l4YcfLpXrt2nThhMnTrBu3TpmzJhBgwYNuHHjBhUqVCiV\n6ysKJyYmBjs7O+7cucOKFSvKr8AxoGlaNeTcSCNCiCtms0hhVu6uSJqxaR8tazrkLVImTsxzf2Ji\nYr7nd3V1zSVM6tatW+ikZVdX1yK5wNPTZY8YV1e4fRsmTYIRI6BTJ7h8WQ6JXL1a9pKpUwf69QPD\ne+Qjj0BCAhi0Ud268seSqHwYhbUwd+5cALZu3crmzZu5c+cObqbO7LhPNE0jKCiIA1nTXXfs2GEU\nWwrrICYmBhsbG/R6PevWrWPx4sXGESllAZMEjqZpHsB8YAB3iZsszDZNXNO0QcDbgA9wExguhNhr\nrvOXNiXVz0UIQUJCQoHelOu3Itn+63k5bTk5AX1qIgPey7/HhIeHh1GEVKlShSZNmhQoVLy9vc0+\nFkKvhzVrwNcX2rSRHhpPT3jvPXj1VTkvaf9+KWpADozcswcMg8tr14bFi7PPZ2tbtnvqKBQlRWRk\nJB9//DFBQUF069aNbt26WcSOrVu3AuDj46Oah1oZMTExRk+8pmn89NNPdO/e3cJWmY6pHpw5QAjQ\nC9gIjABqAi8AL5nLGE3TOgMfIJsHHgGqm+vclsDUfi46nY64uLgizQOKjo4mMzMzj6uCjY0Nnp6e\nVKjoBZn22LlXwaZqfWyd3XGuUJFRXUIIbVg7l2DJObywpImMlMKlXj257t8fAgNlAq+NjfTQ9O0r\nBY6bG7zzjgw7gZyxdOlS9rns7bNvy4vi9NRRgkjxIPDCCy8AsG7dOovaYRA4StxYHzExMca8yMTE\nRJYuXVouBc5jwGAhxF5N03TAcSHE15qm3QBGAevNZM87wLtCiENZ62tmOm+pkZGRQXR0NP9cvcGE\nBdtJTYxHlyK9J8N3LOPR+q4kJcTlylmJjY3NN1/F3t4+l9ekcePGhYaAKlasiI2NDdFJabT5YCep\nGdmVO072NkwcW7pdbL/4AhITZXIvyLBRrVoyTwZk6MkxhznHj0ONGtnr118v3nWL01PHWpsMKhTm\n5PLly6xdu5YuXbrg5+dnMTsMvXcGDRpkMRsU+RMTE5Orqm3btm0kJSWVWhjzfjFV4FQELmdtxwPe\nwN/AQWCZOQzRNM0W2TF5i6ZpfyObCG4GXhZCpOQ47nngeaDE47UpKSlF6q0SXcjwQs3OkZ2Xvale\nVXau9fHxKTD84+3tTbrmwLW41GJ5E0qraufSJbhwAQy5iS+8AEePQlZonU2b4MaNbIHzn/9Iz4yB\nlStzn69OnYKvZ6qHpag9dUqryaBCYWmGDx8OwPLlyy1qxz///ANAF3OWKyrMxu3bt3NFCuzs7Ni0\naRNPPfWUBa0yHVMFzj+AL3AF+BMYpGnaEWTJeIyZbKkK2AP9gAggA/gGeBPZhwcAIcQSYAlAWFhY\n3m6PuxBCkJSUVOQQUEHDC93d3XMJkkaNGuUSJw6u7ryz/So6ezdsnCtg41wBFxcX9heha605vAnm\nqtpJTpbhIYBvvoH162HVKjlya+5c+OwzmcyraRAUBM45Wrt8+SXkTNUx5M8Uh6I8J0XtO1NUQaRQ\nlEXOnDnD7t27GTZsGLVq1bKoLSdOnAAgxJBEp7Aqbt7Vfy0pKYnFixeXO4GzEggGdgMzga3AeMAG\nmYdjDgxemgVCiBsAmqbN5S6Bk5M7d+6wdetWkwRLfvNNtBzDCytVqkStWrUIDQ0t0LPi5eWFg0Ne\nuda5qRJyrdjeE3N6E4patXP5Mvz0EwwdKkXNwoUwfjzExYGHB/z7r/TQXL6ZRnxmCkOecWHYMAeE\nkAJn5Mjc5zNXHnJRn5OierBUIz7Fg4Chz82HH35oYUswjmkoi2MAHgRu3759z74DBw4QFRVFpUqV\nLGBR0TC10d9HObZ3aprWGBlOOi+E+N0chgghYjVN+xfI6ZUp0ENz9uzZXDNTbG1tcwmShg0bGocX\n5hcCKs7wQlPJ6T1xdbDlTrqO6KQ0k8RGSXoT9HopUoRDGnEZKdz+x4UZ0xxYuhT8/KR4GTUKwsKg\nWTNo1QpmzJD3Axg3Dmq1ucaji3ILhzCbks1VKc5zUhQPlmrEpyjvHD58mLNnzzJlyhSr+ID68ssv\nAcxejakwD2lpacb+Y3q9ns6dOxMWFlZm/l5afsmtWcnE1YUQtzVNWwG8IITIvyGKOYzRtHeRCc3d\nkCGqLcBuIcRbeR3fsGFDsWbNGqNgcXd3t8pM/OJW8uSVIFyUEJfxXNGydLp7dwgOhkOHoHVrqDng\nOJ6No0i66YLzkXC+WOZI8+YyITg6Gnx8svvHlJRtRXocpXRdVUWlKI8IIahYsSIJCQnGDsKWRtM0\nmjVrxvHjxy1tiiIPYmNjAdiyZQvDhw/nr7/+olGjRha2CjRNOy6ECCvsuIIGS6QAhlfA08ik35Jm\nBnJ45zlkrs9vwPv5Hezh4UF4eDi+vr54eHhYpbjJGVZJTMskNUPPKxtOEZ1U8LwVgzfByd6GCo52\nONnb5OtN0Ovh118hK1+P2Fjw94elS7Nvf+MNOHhQrqvVSaPqY6fBK57EtEyEZwL67jup6ydtqlBB\nNsPLb+yIwZOSE4MnpSQpynNyv9cJqV1RiRtFuWL79u0kJCQwa9YsqxA3UVFRAAwYMMDClijyw9PT\nE09PT+rXrw9kJ4WXFQoKUR0ANmuadhzQgPmapuX5CSaEGGEOY4QQGcDYrJ9ywf2Emu4Or1RwyD7+\ntdekiBk2DISAhx6SeTJz5shxA0FBcnQBQOXKMgHY0N03PjOFyi2uFXuqtSVzVdSoA4Wi6Oj1erp2\n7QrAxIkTLWyN5ORJOcawWbNmFrZEURjlUeA8BUwBGiBzYbwBNea1iBRXDOzdK8cTdOkiE4TDw2V3\n36++krdv3w6GvGlbW9iyRXb1BZno+/XXuc+Xc7zL/QoUS+eqqFEHCkXRMDTzW758OY6O1vHa+e23\n3wBVQVUWqJb1bfnYsWMWtqRo5JuDk+sgTbsIhAkhokveJNMJCwsTZeEJ33Li3mqqxwNrcvOmbHgH\nsjfMxYuwZIlcd+4M8fFw5Ihcz58PXl6ysgkwViyZ06ailqCrXBWFwvrJyMgwVn1mZmaWWFFFUWnZ\nsiVHjhzJt8mpwrrQNI3q1atz/fp1S5ticg6OqVVU9fK4gH1WSElRCD1Da2IfVZltu3S8OdUGbzdH\nRoyAH3+U065Bji6Ij8++z6efgrt79vpur/L9phuZI9SjPCkKhfWzbJnsxbpx40arETcAR44cwdPT\n09JmKEykRo0aViFuikJBScZGNE2bqGla3xzr5UCKpml/aZpmuT7fVkRCghwCmTW2g88/hwYN5CRs\ngGMHHfhkljOudlIQPP00zJwpPTEA77+fO6zUoAFUqVKyNqtkWoWifJOSksLYsWOxsbGhV69eljbH\niKH9/5AhQyxsicJUDN2my5LHzSSBA0wEIgE0TWuHnCr+JHACsHy3qFJCiOxeML//DmPGyBEEABs2\nQNu2MswEULUqtGghS64BXnxRemkM7QPat5cJwlZY+GUkOimNk1fjCq34UigU1smcOXMA+Pnnn62q\nyvTPP/8EoG3btha2RGEqYWEyInR3d2NrxlSBUxPI+uimB7BOCPE/YDrQqgTssjiJiXIkwdWrcn3o\nkAwZ7dkj1zExMuH3ctaEri5dYOvW7MqlRx+FtWvB21uuK1TIPVDS2vnmxDXafLCTocsO0+aDnWw5\nUebmnioUDzTx8fFMmzaNqlWr0qFDB0ubkws1oqHsURYrqUwVOAmAIWDSGfg5azuD0umPUyIkJ2fn\nvURHQ//+2ROub9+GXr1g2za5rlsXnnkGDM0/27WTIqdVlryrWRO6dcs9RLKsUtzePQqFwnp44w05\n4eb777+3sCX3smPHDgAaNmxoYUsUplKeBc42YKmmacuQZeM/ZO0PINuzY9UIAcuXw86dcp2aKj0y\n8+bJtbs7/PGHFC0gBc3hwzBwoFxXqyYrmQID5VrTSj68ZKkQkaUa+SkUCvNw69YtFi5cSNOmTa2y\nz8xXWf0urCnpWVEwderUAeSw1rKCqQJnHLAfqAz0E0IYJog3A9aWhGHF4fp1+Ouv7HW/fvDqq3Jb\n02DaNFi9Wq6dnGRTvKy8Kezt4cwZMAxJtbWF8HDLeWRKO0SUU0ypoZMKRdlm7FjZK/XruxtiWQFC\nCHQ6HY8++qilTVEUAUOrge3bt1vYEtMxtUw8AZiQx/63zW5REYiOhrlzYfJkue7dWwqSn7MCaFWq\nyN4xBo4fl119Dbz4YunZWhTMOUncFPKalaWGTioUZZOLFy+yceNGHnvsMasMAV3NSmzMOShZUTZw\ncHAwNmgsC+QrcDRN8zJ4ajRN88rvOIAcHp1SJSEB/ve/bIHzf/8HzjmcDIsW5T7ekABs7ZTkJPG7\nyU9M7X/1Yfa/+rBq5KdQlDGeynJDLzUMo7MyDCMaQkNDLWyJoqi0b9++3HhwIjVNqy6EuA1EIcc1\n3I2Wtd8igdS6dWV1k4FOnSxhhfkpzRBRQWJK9chRKMoWv//+O/v372fEiBHUrFm0zuSlxdGjRwEI\nCgqysCWKotKxY0e2b99OYmIiFXLO/7FSChI4DwMxObatrruPFbV1MCulOetJ5dsoFOUHQzO/2bNn\nW9iS/FmzZg1AmfiAVOSmQYMGAFy4cKFMlPjnK3CEEL/k2N5dKtYojJTW1GxLD85UKBTm4cCBA1y4\ncIGpU6fi5VVgVoFFuXDhgrHkWFG2yFkqXqYFTk40TdMBhnBVzv3ewG0hhKr1KwFKa9ZTaYkphUJR\nMggh6Ny5M5Dd/8YaScxq7f7kk09a2BJFcTAInL///tvClpiGqWXi+QWDHIF0M9misCBqLpVCUXb5\n8ccfSU5OZu7cubi6ulranHw5deoUAC1atLCwJYri4OHhAcAvv/xSyJHWQYEeHE3TsuqTEMBoTdOS\nctxsC0QAZ0vINoVCoVAUgl6v5/HHHwdg3LhxFramYFQFVflg9+7dljbBJAoLURl632jASECX47Z0\n4BIw2vxmKRQKhcIUDF2BV61aZWzGZq1s2bIFgFq1alnYEkVxCQgI4I8//rC0GSZRoMARQtQD0DRt\nF9BHCBFbKlYpFAqFolAyMjIYMmQIgPG3NfPTTz9hZ2dnVZPNFUWja9eu/PHHH2RkZGBvb29pcwrE\npBwcIURHJW4UCoXCuli8eDEA3377LTY2pqZUWobMzEwABg8ebGFLFPdDQEAAAFeuXLGwJYVjUhUV\ngKZpjYB+gA+Qyw8qhBhhLoM0TWsI/A6sF0IMNdd5FQqFojyRnJzMhAkTcHBwoFu3bpY2p1DOnz8P\nQKfy0pH1ASVnqbi1l/ubWibeDdgA/AY0B44C9ZFVVHvNbNPCrPMrFAqFIh9mzpwJwM8//1wmQj4q\nwbh8kFPgWDum+jTfBd4RQrQG0oCngLrADmC3uYzRNG0QEAf8bK5zKhQKRXlkzZo1VK9enbZt21ra\nFJNwcHDAycmJJk2aWNoUxX1Qo0YNAI4fP25hSwrHVIHjB3ydtZ0BuAghUpHCxywzuTVNc8863+RC\njnte07RjmqYdi4yMNMelFQqFosxx9uxZLly4YGkzTKZPnz6kpKRYfaWXomBsbGzo2rVrmRCqpubg\nJAJOWds3gAbA6az7e5rJlhnAciHEvwW5W4UQS4AlAGFhYVY3H0uhUChKA3t7e6uvYlGUT3788UdL\nm2ASpgqcw0Bb4AzwHfChpmkhQG/g4P0aoWlaKPAI0PR+z6VQKBQKhUJhqsCZDLhlbU8HKgB9gXMU\nElIykQ7InJ4rWd4bN8BW0zR/IUQzM5xfoVAoFArFA4RJAkcIcSHHdjIwxsx2LAG+yrGeghQ85r6O\nQqFQKBSKBwBTy8QrAwghIrPWQcBA4A8hxNr7NSJLNCXnuF4SkGq4nkKhUCgUCkVRMDVE9T/gC2CF\npmmVgD3AdWCCpmk1hBAfmtMoIcR0c55PoVAoFArFg4WpZeLBwKGs7X7A30KIAGAYMKokDFMoFAqF\nQqEoLqYKHGcgKWv7EWBL1vavQG1zG6VQKBSWRtM0XnrpJeN6zpw5TJ8+3XIGmZn333+fgIAAgoOD\nCQ0N5fDhw4XeZ9q0aezYsQOAjz/+mOTk5ELuYRrTp09nzpw5ZjnX8OHDWb9+vVnOZSpubm6FH1TC\nWOJxWzumCpzzQB9N02oDXYBtWfurIjsPKxQKRbnC0dGRjRs3EhUVVaz7G4ZLWiMHDx5k69at/Prr\nr5w6dYodO3ZQu3bh31XfffddHnnkEcB8AseanycF6HQ6S5tQbEwVOO8AHwCXgENCCIPU74qcT6VQ\nKBTlCjs7O55//nk++uije267dOkSDz/8MMHBwXTq1Mk4WXn48OGMHj2ali1b8sorrxAUFERcXBxC\nCLy9vVm1ahUAw4YNY/v27Vy6dImIiAiaNWtGs2bNOHDggPH2zZs3G683ZMgQvvnmG7M9ths3blCp\nUiUcHR0BqFSpEteuXaNPnz4AfPPNNzg7O5Oenk5qaiq+vr7Gx7d+/Xrmz5/P9evX6dixIx07dmTL\nli2EhoYSGhqKn58f9erVA2Q7//bt29O8eXO6du3KjRs3AOjQoQMvvvgiYWFhzJs3L5dtS5cupUWL\nFoSEhNC3b1+jiBo+fDgTJ07koYcewtfX1+itEEIwfvx4/Pz8eOSRR7h9+7bZnqf74W6PisHLs2nT\nJjp16oQQghs3btCoUSNu3ryJTqfj5ZdfpkWLFgQHBxsnxe/evZv27dvzxBNP4Ovry2uvvcaaNWsI\nDw8nKCgo10yoHTt2EBYWRqNGjdi6dSsAqampPPPMMwQFBdG0aVN27doFwMqVKxk/frzxvt27d2f3\n7t1GW1966SVCQkI4ePAg33//PY0bN6Z58+ZMnDiR7t27l+hzZy5MEjhCiI3IKeJhwKM5btqBefrg\nKBQKhdUxbtw41qxZQ3x8fK79EyZM4Omnn+bUqVMMGTKEiRMnGm/7999/OXDgAHPnzqVNmzbs37+f\nP/74A19fX/bulbOJDx48yEMPPUSVKlXYvn07v/76K19//bXxPM8++ywrV64EID4+ngMHDph1YniX\nLl24evUqjRo1YuzYsfzyyy80bdqUEydOALB3714CAwM5evQohw8fpmXLlrnuP3HiRGrUqMGuXbvY\ntWsXPXv25MSJE5w4cYKQkBCmTJlCRkYGEyZMYP369Rw/fpwRI0bwxhtvGM+Rnp7OsWPHcoUBQY50\nOHr0KCdPnqRJkyYsX77ceNuNGzfYt28fW7du5bXXXgOkYPjrr784c+YMq1atMopEa6V3795Ur16d\nhQsX8txzz/HOO+9QrSTSq+8AABR8SURBVFo1li9fjoeHB0ePHuXo0aMsXbqUixcvAnJQ6X//+1/+\n/PNPvvjiC86dO8eRI0cYOXIkCxYsMJ770qVLHDlyhO+++47Ro0eTmprKwoUL0TSN33//nbVr1/L0\n00+TmppaoI137tyhZcuWnDx5krCwMEaNGsUPP/zA8ePHKUsjkkytokIIcQu4dde+woO2CoVCUUZx\nd3dn2LBhzJ8/H2dnZ+P+gwcPsnHjRgCeeuopXnnlFeNt/fv3x9bWFoCIiAj27NlDnTp1GDNmDEuW\nLOHatWt4enri6upKfHw848eP58SJE9ja2nLu3DkA2rdvz9ixY4mMjGTDhg307dsXOzuT364Lxc3N\njePHj7N371527drFwIEDmTlzJvXr1+fPP//kyJEjTJ48mT179qDT6YiIiDDpvLNmzcLZ2Zlx48Zx\n+vRpTp8+TefOnQEZ6qhevbrx2IEDB+Z5jtOnT/Pmm28SFxdHUlISXbt2Nd7Wq1cvbGxs8Pf359Yt\n+XG0Z88eBg8ejK2tLTVq1ODhhx8u7tNSaixYsIDAwEBatWrF4MGDAdi2bRunTp0yen3i4+M5f/48\nDg4OtGjRwvjc1a9fny5dugAQFBRk9MgADBgwABsbGxo2bIivry9nz55l3759TJgwAYDGjRtTp04d\n4/9Zftja2tK3b19Azjzz9fU1euUGDx7MkiVLzPhslBzme8UoFApFOeTFF1+kWbNmPPPMMyYd7+rq\natxu164dCxcu5MqVK7z//vts2rSJ9evXGwXDRx99RNWqVTl58iR6vR4nJyfjfYcNG8bq1av56quv\n+Oyzz8z7oJAfYh06dKBDhw4EBQXx+eef065dO3744Qfs7e155JFHGD58ODqdjtmzZxd6vh07drBu\n3Tr27NkDyNBRQEAABw/mPc0n5/OUk+HDh7N582ZCQkJYuXKlMWwCGENqhvNbM3Z2duj1egD0ej3p\n6enG2/79919sbGy4desWer0eGxsbhBAsWLAgl6ADGaLK+bhtbGyMaxsbm1w5THfPcSxormNO+4Bc\nXh0nJyejSC/LmJqDo1AoFA8kXl5eDBgwIFeo5KGHHuKrr2Tz9TVr1uTr4ahduzZRUVGcP38eX19f\n2rZty5w5c2jXrh0gv6VXr14dGxsbvvjii1wJncOHD+fjjz8GwN/f36yP6a+//uL8+fPG9YkTJ6hT\npw4RERF8/PHHtG7dmsqVKxMdHc1ff/1FYGDgPeeoUKECiYmJAFy+fJlx48axbt06o6fLz8+PyMhI\no8DJyMjgjz/+KNS2xMREqlevTkZGBmvWrCn0+Hbt2vH111+j0+m4ceNGLo+GJalbty7Hjx8HYMuW\nLWRkZAAyqXrEiBGsXbuWJk2aMHfuXAC6du3Kp59+ajzu3Llz3Llzp0jXXLduHXq9nn/++YcLFy7g\n5+dHRESE8Xk8d+4cV65cwc/Pj7p163LixAn0ej1Xr17lyJEjeZ7Tz8+PCxcucOnSJQC+/vrrIj8X\nlkJ5cBQKhaIQXnrpJT755BPjesGCBTzzzDPMnj2bypUrF+hhadmypVG4REREMHXqVNq2bQvA2LFj\n6du3L6tWreLRRx/N5dWoWrUqTZo0oVevXmZ/PElJSUyYMIG4uDjs7Oxo0KABS5YswdXVlVu3bhkF\nWHBwMDdv3szTE/D888/z6KOPUqNGDTp06EB0dLTR1ho1avD999+zfv16Jk6cSHx8PJmZmbz44osE\nBAQUaNuMGTNo2bIllStXpmXLlkYRlR+9e/dm586d+Pv74+PjQ+vWrYv5rBSf5ORkatWqZVxPnjyZ\n5557jieeeIKQkJBcf9v/+7//IyIigrZt2xISEkKLFi3o1q0bI0eO5NKlSzRr1gwhBJUrV86VaG4K\nPj4+hIeHk5CQwH//+1+cnJwYO3YsY8aMISgoCDs7O1auXImjoyNt2rShXr16+Pv706RJE5o1+//2\n7j9Yzqq+4/j7A+FnQoAoDUibhB+JiRkkSFBaRKgiRlqrJXYKcWzHXwGFlIaBSmegMtBSAUeshWBh\nQsOACFQLWFC0iFUopTRJCSUQKb8CQUJMwIQkEH59+8c5lz532d27d3fv7t5nP6+ZM9l9znP2+e65\nJ3e/93nOs6f6so+77LILixYtevM9HHbYYc13VIep10/z1TN79uxYunRpt8MwM2u7rVu3ctBBB7F8\n+XJ23333bodjfWzz5s2MGzeOiOCUU05h6tSpLFy4sGvxSFoWEbOH2q/hS1SSJko6Q9LlebkGJB0h\nab9WAjUzs8HuuOMOZsyYwYIFC5zcWNddeeWVzJo1i5kzZ7Jx40ZOOml0LGDQ0BkcSYcCPwGeAGYC\n0yPicUnnAtMiYt6IRlmDz+CYmZn1l3afwfka8HcRcQiwrbD9R8ARTcRnZmZmNmIaTXAOBa6usv1Z\n0nINZmZmZj2j0QTnJWDPKtunA73xvdhmZmZmWaMJzi3AVyQNfNtQSJpCWp/qeyMQl5mZmVnTGk1w\nzgAmAL8CdgXuBh4lrSR+9siEZmZmZtachr7oLyI2Ae+X9EHgPaTEaHlE3DGSwZmZmZk1o2aCI+l1\nYJ+IWCfpKuC0iLgTuLNj0ZmZmZk1od4lqpeAcfnxnwI719nXzMzMrGfUu0R1D3CzpGWAgG9Keqna\njhHx2VYDyROYFwHHkOb7PAb8ZUT8sNXXNjMzs/5SL8H5NGly8YFAAG9j8Jf8jUQsTwNHAU8BxwE3\nSjooIp4cweOamZlZydRMcCLiOeBMAElPACdGxIaRCiQitgDnFjbdmo97KPDkSB3XzMzMyqfRu6g6\nvqCmpInANGBlp49tZmZmo1u9u6hOBxZFxMv5cU0R8fV2BiVpB+DbwNURsaqibj4wH2DSpEntPKyZ\nmZmVRM3VxPPlodkRsSE/riUiYv+2BSRtB1wHjAc+HhGv1trXq4mbmZn1l0ZXE683B2e/ao9HkiQB\ni0kLeB5XL7kxMzMzq6XRpRqqkjRZ0o3tCga4HJgBfCwiqt6SbmZmZjaUlhIcYA9gbjsCkTQZOAmY\nBayVtDmXT7Xj9c3MzKx/NHQXVSdExGrSFwqamZmZtaTVMzhmZmZmPccJjpmZmZVO3UtUkr4/RPvx\nbYzFzMzMrC2GmoMz1NIMG4B635FjZmZm1nF1E5yI+EynAjEzMzNrF8/BMTMzs9JxgmNmZmal4wTH\nzMzMSscJjpmZmZWOExwzMzMrHSc4ZmZmVjpOcMzMzKx0nOCYmZlZ6TjBMTMzs9JxgmNmZmal4wTH\nzMzMSscJjpmZmZWOExwzMzMrHSc4ZmZmVjpOcMzMzKx0nOCYmZlZ6fRUgiNpgqSbJG2RtFrSvG7H\nZGZmZqPPmG4HUOEy4BVgIjALuE3SiohY2d2wzMzMbDTpmTM4ksYCc4FzImJzRNwNfB/4dHcjMzMz\ns9Gml87gTANei4hHCttWAEcVd5I0H5ifn26T9GCH4rPk7cD6bgfRZ9znnec+7zz3eeeN1j6f3MhO\nvZTgjAM2VWzbCOxW3BARVwBXAEhaGhGzOxOegfu8G9znnec+7zz3eeeVvc975hIVsBkYX7FtPPBi\nF2IxMzOzUayXEpxHgDGSpha2HQx4grGZmZkNS88kOBGxBfhn4DxJYyUdAXwcuKZOsys6EpwVuc87\nz33eee7zznOfd16p+1wR0e0Y3iRpAnAV8GFgA3BWRFzX3ajMzMxstOmpBMfMzMysHXrmEpWZmZlZ\nuzjBMTMzs9IZlQmO16waPkk7SVqc++tFSfdL+mih/kOSVknaKumnkiZXtL1K0iZJayWdXvHaTbft\nF5KmSnpZ0rWFbfPyz2OLpJvzHLSBurpjvJW2/UDSCZIezn3wmKQj83aP8xEgaYqkH0h6Ib//SyWN\nyXWzJC3L/bZM0qxCO0m6UNKGXC6UpEJ9023LRNKpkpZK2iZpSUVdV8Z0vbY9IyJGXQG+A9xA+nLA\n95O+EHBmt+Pq5QKMBc4FppAS298nfcfQFNK3WW4E/gjYGbgYuLfQ9m+Bu4A9gRnAWmBOrmu6bT8V\n4Me5H67Nz2fm/v9AHsfXAdcX9q85xltp2w+FdJPCauDwPNb3zcXjfOT6/AfAktw3ewP/A/wZsGP+\nWSwEdsrbVgM75nYnAb8AfjP/jB4CTs51TbctWwGOBz4BXA4sKWzvypgeqm2vlK4H0MQPeixpQc5p\nhW3XAF/tdmyjrQAPkNb/mg/cU9HHLwHT8/NfAscW6s8nf6C20rZfCnACcCMpwRxIcC4Arivsc0Ae\n17sNNcZbadsPBbgH+FyV7R7nI9fnDwPHFZ5fDPwDcCzwDPmGllz3VOGD8h5gfqHucwMflK20LWsB\n/prBCU5XxvRQbXuljMZLVLXWrJrZpXhGJUkTSX25ktR3KwbqIn0n0WPATEl7AvsU6xnc3620LT1J\n44HzgMpLFpX99hg5MWHoMd5K21KTtD0wG9hL0qOS1uTLJbvgcT6SvgGcIGlXSfsCHwVuJ/XBA5E/\nBbMHqNGvvLXPm23bL7o1pmu2bcu7apPRmOA0tGaV1SZpB+DbwNURsYrUpxsrdhvo03GF55V1tNi2\nH5wPLI6INRXbh+q3emO8lbZlNxHYAfgkcCQwCzgEOBuP85H0c9KH2yZgDbAUuJn6/UaV+o3AuDyX\nppW2/aJbY3qon01PGI0JjtesaoGk7UiXLF4BTs2b6/Xp5sLzyrpW25ZanhB5DHBJleqh+q3eGG+l\nbdm9lP/9+4h4NiLWA18HjsPjfETk3ym3k76JfixpfsaewIUMfyyPBzbnszattO0X3RrTo+L3zGhM\ncLxmVZPyXzaLSX/lzo2IV3PVSlIfDuw3ljSvY2VEvAA8W6xncH+30rbsjiZN4n5K0lrgDGCupOW8\ntd/2J02kfIShx3grbUstj7k1QPFDbuCxx/nImABMAi6NiG0RsQH4R1JSuRJ4d8VZlXdTo195a583\n27ZfdGtM12zblnfVLt2eBNRMAa4n3SkyFjiCPrtLpIV++xZwLzCuYvteuQ/nkmbEX8jg2fRfBX5G\n+qtsOmngz2m1bdkLsCvpjpKB8jXgu7nPBk7nH5nH8bUMvhOq5hhvpW0/FNKcp/8CfiOPu7tIlwo9\nzkeuzx8HzgLGAHsAN5Hu7hu4E+o0UhJ+KoPvhDqZNEF5X+AdpA/Iyruoht22bCX3686kO5uuyY/H\ndGtMD9W2V0rXA2jyhz2BdH13C2lW/bxux9TrBZhM+kv2ZdLpxYHyqVx/DLCKdIr/34AphbY7kdYI\n2wQ8B5xe8dpNt+2nQuEuqvx8Xh6/W4BbgAmFurpjvJW2ZS+kOTiLgF+Tbm39JrBzrvM4H5k+n5X7\n5AVgPemuwYm57hBgWe635cAhhXYCLgKez+UiBt811XTbMpX8uyMqyrndHNP12vZK8VpUZmZmVjqj\ncQ6OmZmZWV1OcMzMzKx0nOCYmZlZ6TjBMTMzs9JxgmNmZmal4wTHzMzMSscJjplZiyRNkRSSZnc7\nFjNLnOCY9RFJEyVdIul/Jb0saZ2keyQtkDSusN+T+QM78n5PS7pJ0seqvGYUyouSlko6vrPvrOue\nJq2+fD+ApKNzf7y9u2GZ9S8nOGZ9QtIU0rfBzgHOAd4DvA+4APgQ8AcVTc4jfWhPA04AngRuknRp\nlZf/Qt73MGAF8E+Sfrvd76EeSTt28nhFEfF6RKyNiNe6FYOZDeYEx6x/XA68AcyOiOsj4qGIeCIi\nbo2IT5DWryp6MX9oPxUR/x4RC4EvAadI+t2KfX+d911FWiNoG29NmIBBl3PmSbo7nyFaJenYiv3e\nJem2fFZonaTvSNq7UL9E0q2SvixpDWmRzaokHS7pTklbJG3Mj9+R6+ZIukvSC5Kel/QjSTOGE2/x\nElVOJH+aq36Vty9p5Fhm1j5OcMz6gKS3AR8BLouILdX2icbWbVlMWm9obq0dIq1S/yppTah6LiKt\nEzUL+FfgFkn75nj3AX4OPAi8l7Tuzbi8T/H31lGkFabnkM5CvYWkg0kJx6OkxUcPB24gLVYIaVHS\nb+TjHE1aRPBfqpwRqhlvhaf5//6ZSTqzddowj2VmLRoz9C5mVgIHkhYn/EVxYz7zsUd+em1EnFzv\nRSLidUmPAPtXq5e0E3AmMB74yRAxXR4RN+Z2p5ESsC8CZ+d/V0TElwuv/SekRRVnA/flzS8Dn42I\nbXWO8xfA/RExv7Dt4cJ7+l7Fe/gMaYHB9wJ3Nxjvm3IfPZ+frouI9U0cy8xa5DM4Zv3tSNIZifuA\nnRtsI9JqxkXXSNoMbAVOB86IiB8O8Tr/MfAgIt4A/hN4V950KPABSZsHCunMCMABhdd4cIjkBtKK\n1HfWfDPSAZKuk/SYpIGVk7cDJg0j3oYM41hm1iKfwTHrD4+SkpLpxY0R8QSApK2NvIik7UmTju+r\nqDoTuB3YFBHrWo42fejfBpxRpe65wuOql9uG6VbS/J2TgGeA14CHgJG4bNTJY5n1NZ/BMesDEbEB\n+DFwavF28CZ8nnRJ67sV29dGxKPDTG4OH3ggSaTLNAOXjpaT5q+szq9bLC8OM+b/Bj5YrSLPTZoO\nXBARd0TEw8BuVP/jr168lV7J/27f5LHMrEVOcMz6x5dI/+eXSTox36U0TdKJwMHA6xX77yZpb0m/\nJel3JF0CXAZcGhE/a0M8X5T0SUnvJE28nUy604t8nN2BGyS9T9L+ko6RdIWk3YZ5nIuBQ3LbgyW9\nU9LnJU0iTZheD3xB0oGSjgK+RTqzMpx4K60mnTH7PUl75aRyOMcysxY5wTHrExHxOGk+yu3A+aQz\nG8tJc2YWAX9e0eSvgGdJl7duBPYDjo+IBW0K6ax87BWku6D+MCLW5Fh/Sbrj6Y0c70pS0rMtl4ZF\nxP2ku7CmA/eS5s6cALya59L8MelOrAfzMc6pcYya8VY55jPAV4C/IV1Su3SYxzKzFqmxO0PNzNoj\nf0/ME8BhEbG0u9EMbbTFa2aJz+CYmZlZ6TjBMTMzs9LxJSozMzMrHZ/BMTMzs9JxgmNmZmal4wTH\nzMzMSscJjpmZmZWOExwzMzMrnf8DAIFvs8mGsRsAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11160a400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n",
"plt.axis([0, 110000, 0, 10])\n",
"\n",
"for country, pos_text in position_text2.items():\n",
" pos_data_x, pos_data_y = missing_data.loc[country]\n",
" plt.annotate(country, xy=(pos_data_x, pos_data_y), xytext=pos_text,\n",
" arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5))\n",
" plt.plot(pos_data_x, pos_data_y, \"rs\")\n",
"\n",
"X=np.linspace(0, 110000, 1000)\n",
"plt.plot(X, t0 + t1*X, \"b:\")\n",
"\n",
"lin_reg_full = linear_model.LinearRegression()\n",
"Xfull = np.c_[full_country_stats[\"GDP per capita\"]]\n",
"yfull = np.c_[full_country_stats[\"Life satisfaction\"]]\n",
"lin_reg_full.fit(Xfull, yfull)\n",
"\n",
"t0full, t1full = lin_reg_full.intercept_[0], lin_reg_full.coef_[0][0]\n",
"X = np.linspace(0, 110000, 1000)\n",
"plt.plot(X, t0full + t1full * X, \"k\")\n",
"\n",
"save_fig('representative_training_data_scatterplot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/ageron/.virtualenvs/ml/lib/python3.6/site-packages/numpy/core/_methods.py:116: RuntimeWarning: overflow encountered in multiply\n",
" x = um.multiply(x, x, out=x)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure overfitting_model_plot\n"
]
},
{
"data": {
"image/png": "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\nAWchLLEhtmCnAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x111ec6dd8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"full_country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n",
"plt.axis([0, 110000, 0, 10])\n",
"\n",
"from sklearn import preprocessing\n",
"from sklearn import pipeline\n",
"\n",
"poly = preprocessing.PolynomialFeatures(degree=60, include_bias=False)\n",
"scaler = preprocessing.StandardScaler()\n",
"lin_reg2 = linear_model.LinearRegression()\n",
"\n",
"pipeline_reg = pipeline.Pipeline([('poly', poly), ('scal', scaler), ('lin', lin_reg2)])\n",
"pipeline_reg.fit(Xfull, yfull)\n",
"curve = pipeline_reg.predict(X[:, np.newaxis])\n",
"plt.plot(X, curve)\n",
"save_fig('overfitting_model_plot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Country\n",
"New Zealand 7.3\n",
"Sweden 7.2\n",
"Norway 7.4\n",
"Switzerland 7.5\n",
"Name: Life satisfaction, dtype: float64"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"full_country_stats.loc[[c for c in full_country_stats.index if \"W\" in c.upper()]][\"Life satisfaction\"]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Botswana</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>6040.957</td>\n",
" <td>2008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kuwait</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>29363.027</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Malawi</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>354.275</td>\n",
" <td>2011.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>New Zealand</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37044.891</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>74822.106</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Subject Descriptor Units \\\n",
"Country \n",
"Botswana Gross domestic product per capita, current prices U.S. dollars \n",
"Kuwait Gross domestic product per capita, current prices U.S. dollars \n",
"Malawi Gross domestic product per capita, current prices U.S. dollars \n",
"New Zealand Gross domestic product per capita, current prices U.S. dollars \n",
"Norway Gross domestic product per capita, current prices U.S. dollars \n",
"\n",
" Scale Country/Series-specific Notes \\\n",
"Country \n",
"Botswana Units See notes for: Gross domestic product, curren... \n",
"Kuwait Units See notes for: Gross domestic product, curren... \n",
"Malawi Units See notes for: Gross domestic product, curren... \n",
"New Zealand Units See notes for: Gross domestic product, curren... \n",
"Norway Units See notes for: Gross domestic product, curren... \n",
"\n",
" GDP per capita Estimates Start After \n",
"Country \n",
"Botswana 6040.957 2008.0 \n",
"Kuwait 29363.027 2014.0 \n",
"Malawi 354.275 2011.0 \n",
"New Zealand 37044.891 2015.0 \n",
"Norway 74822.106 2015.0 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdp_per_capita.loc[[c for c in gdp_per_capita.index if \"W\" in c.upper()]].head()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure ridge_model_plot\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzs3XlclVX+wPHPAREEFQU3lgC13EFA\n3Mo9TcvRRtOf2aY15ZiZ01i2Z7Y4M5k1LVOWU0qLleXWMs1MaTpmaYqG5q4lLrghKoqAbOf3x7kb\ncC9c4LLp9/163Zf3PPdZzn2gni9n+yqtNUIIIYQQlxKvmq6AEEIIIYSnSYAjhBBCiEuOBDhCCCGE\nuORIgCOEEEKIS44EOEIIIYS45EiAI4QQQohLjgQ4QgghhLjkVGuAo5SaqpRKUkpdVEolFvvsWqXU\nbqVUllJqtVIqsjrrJoQQQohLR3W34BwFngcWOG5USjUDlgFPAUFAErC4musmhBBCiEtEveq8mNZ6\nGYBSKgEId/hoNLBDa/2Z5fNZwCmlVAet9e7qrKMQQggh6r5qDXBK0RnYai1orS8opX61bC8S4Cil\nJgGTAAICArp16NChOusphBBCXNays82/DRqYf3ftgsBACA015Z9/hhYtICzMlNPSoFEj8PPzzPU3\nb958SmvdvKz9akuA0xBIK7YtA2hUfEet9XxgPkBCQoJOSkqq+toJIYQQl5HcXKhf37x/8UXw9obp\n0025XTvo2hU++8yUp0yB7t3hzjtN+fx5E9BUFaXUQXf2qy0BTibQuNi2xsD5GqiLEEIIcdnYsgUO\nHoRRo0x57Fg4cgTWrzfldevA19e+/zvvQHOH9pM33yx6vqoMbsqjtgQ4O4AJ1oJSKgBoa9kuhBBC\niAoqLDQBS0SEKb/7Lnz5JaxYYcpvvglffGEPcEaOhLNn7cevWAFK2cv9+lVPvSuruqeJ11NK+QHe\ngLdSyk8pVQ9YDnRRSt1k+XwmsE0GGAshhBDl88sv8OyzkJdnys8/D1FR9rEzOTkmgLF+PnOmacWx\nuv12uP9+e9kxuKlLqnua+JNANvAocJvl/ZNa6zTgJmA2cAboCdxczXUTQgghar3sbNi40Yx1Afj2\nWzMu5sABU/75Z5g1y3Q7gWmRmT8ftDbl++6DNWvAx8eUIyIg3HFe8yWiWgMcrfUsrbUq9ppl+Wyl\n1rqD1rqB1nqA1jqlOusmhBBC1BZaQ0GBeX/4MEybBtu2mfL69dCzJ/z0kyk3awYxMZCfb8pjxkBm\nJlx5pSnHxsLdd4O/f/V+h5omqRqEEEKIGpSbC19/DbstgzIOH4bgYPjgA1MuLISFC2HfPlPu1g2W\nL4e4OFOOi4MlS+Cqq0zZ3//yC2ackQBHCCGEqGK5uXDmjHlfWAi33QYLLGv6aw0jRsBHH5lySAiM\nG2dvgYmIgHPn4KabTDkwEH7/exMECddqyywqIYQQ4pKxZAnUq2cCEYC2bWHIEBPUeHlBSgqcOmU+\n8/WFDRvsAU29ejBvnv1cdXWQb02TAEcIIYQop1On4Phx6NLFlKdNMzOT3n/flP/+d7NQnjXAmTUL\nrrjCfvy6dUXP1717lVf5siMBjhBCCOGE1vbWky+/NDOXnnvOlKdMMVOr9+835aAg0/JitWyZ2Wb1\nhz9UT52FnYzBEUIIcdlLTTVBiXUq9UsvmXxK1plMP/5oupcKC015+vSi3UizZsHLL9vLLVvap2GL\nmiEBjhBCiMtCZqZ9cbsffjAr96anm/KKFWYQ79Gjpty5sxkInJNjys89Z4IgL8tTs1cvM6ZG1F4S\n4AghhLjkpKXB22+bKdcA//mPyZFkXbE3K8tMyz550pRvugmSkuw5loYNM+NoAgJMuZ4M6Khz5Ecm\nhBCiziksNMGLv78JSg4fhltugccegxtugBMnYPJk+PhjuPlmiI42KQtatTLHDxkCu3bZz9eqlf0z\nUTvk55ufY2qq/WVtYXOHBDhCCCFqvbw8mDMHEhJg6FDIyDD5lebMgRkzoGlTs591DE379mYqtnXm\nUlgYPPFETdRcFKe1STPhGLgUD2JSU80sNeuYJ6vytKRJgCOEEKJWSE42Dz/rCr09epjM1XPnmgfb\nyy/DPfeYAKdpU7O6b69eZt+GDeH77+3n8vGByMjq/w6Xu7w8E5g4BirOXhculDy2aVMTiIaFmRa3\n0FB72fpq3hy8vd2riwQ4Qgghqk1Wlj2NwJw5ZoXfJ5805TvuMEHJl1+acr9+9nVmlDIPRj8/+7km\nTqy2al/2tDatZq5aW6yvEyfsrWhWPj72YKVrV9OFGBZWNIAJDfV8egkJcIQQQlSJTZvMOjHjx5vy\nuHGwd6/Jdg2wdasJcKz++c+i6Qfmzi16PsfgRnhObq691aW0LqOsrJLHBgfbA5XY2JItLqGhJhmo\nVw1MaZIARwghRIXk5ZlxLtYkjwsWmHxKK1ea8nvvmYSRN99sWmDGjDGzm6wWLSp6vp49q6Xalw2t\nTf4rV60t1ldaWslWl/r17UFKfDz87nfOg5faHHRKgCOEEMIt27bBp5+awboNGpjF8B57zHRdNG5s\n9vHyMmvH+PmZ/Z5+2r4a8NixNVf3S01ubsmAxVk5O7vksc2a2YOUhISiAYv1fXBw3c+BJQGOEEII\nwAz8/PlnM+6lSRP47ju46y6zhkyHDmbdmL/9zUzH7tTJZMAODbUP+rzrLvOyCgmpme9Rl2kNp0+X\n3V3k2BJm5etrD1C6dy/Z4hIWZn4mvr7V/71qgtsBjlJqHHAt0IJiCwRqrUd6uF5CCCGqgNZmfREf\nH/OgfO45uPtu85f81q3Qty989RUMH27Whbn6avuxN95oxmHUr2/KnTubl3BPTo49QHHVXXT0KFy8\nWPLYFi1MgBIebmaXOQtemjat+60unuRWgKOUehF4AFgNHAV06UcIIYSoaXl58K9/QevWZvbKiRNw\n5ZVm8O4f/2haXj79FAYNMgFO167w9df2sTCdOpkxNVaXy1/+5aW1yS5e1gwja1oIRw0a2AOU3r2d\ndxeFhNiDSuE+d1tw7gDGa62XVGVlhBBClE9Wlsmx1KKFedCOH29aYe67z/w1f/PNMG2aCV5atDDr\nyFinXrdsaR661r/6AwLg+utr7rvURtnZpbe2WP91nA0G5p62bGkClchI0xLmbJBukybS6gKYrKan\nT5tfyPR0EzH27m1+aZOSTGZT62ducjfA8QKSK1RpIYQQHrN4sQlkbr7ZlLt0MYvdffSReVBmZJiA\nB8zieJs2mRV/wXzumPH6cn6wFhaacSxlLUh35kzJYwMC7EFKnz7OF6Rr1eoyziaem2sCEX9/CAw0\nN3rZMnvgYg1UHnoIBgwwg70GDy45lcvaV3rypBkIFhxcdB2BMrgb4MwHbgNmuX3mclJKRQFvAr2B\ni8AS4AGtdX5VXVMIIWob63ok3bqZ8rRpcOSIeT6ASSCZn28PcJ5/3rQUWP3730XPFx1d9XWubbKy\nSu8qSk2FY8fsmcWtvLzMvQwLg7ZtzUKDxbuLwsLMjLHLKjjMz4dffikanJw6ZZoKBw0yN3jkSPtn\n58+b4157De6/354YDEx0aA1UrAvrXHklzJxp396smfm3XTvz+Q03mB+alZs3390Apwlwi1JqCLAN\nKPJrobWe5uZ5SvMmcBIIsVzvW2AK8JoHzi2EELVGQYF95tEXX8D//memXAM88gisWmWCGjCDSh1b\nApYuNX8UW91yS/XUuTYoLDR/zJfWXZSaCmfPljy2YUN7gNK/v/PuolatLuGs4VrDuXNFA5Rmzcx0\nK61Nn6Y1gLH+e/vt8Ne/mlHP8fElz/n00ybACQgwkWGnTkUDlL59zX7t25tf6OBg5wvnRETArFke\n/8pKF28ScraTUqtL+VhrrQdVuiJK7QIe1Fp/bSm/CDTWWv/R1TEJCQk6KSmpspcWQogqc/gwrFsH\n//d/Jqj5+9/hqadM14ePDzz7rFnB97ffTHnLFvMcGjCgpmtevTIzy+4uOn7cNCY48vIyg3CdtbQ4\nvho1qpnvVSUKCswv0MWL5ssBLFliVl10bGXp1Mk08YGJlB1bQcAsLf3JJ+Z927bmF9AanAQHm6Rf\n48aZAOjzz+3bg4MhKKjG+uCUUpu11gll7udOgFMdlFJ/BK4BJgNNgf8CT2mtl7s6RgIcIURtcPq0\n+SPW1xd+/BFmzzZBS2govPOOGdj766/Qpg2sWWO6kZ580jx0CwtrZhn76lJQYHooyuoyOneu5LGN\nGztvaXEst2zpfvLFWu3AATh0qGgLS/368OCD5vN77jFNfenpJrjR2rS+bNxoPo+LM9lKfXzsQcig\nQaabCExkXVhYtIUlPNyebr0OcTfAKVdjnFLKD7gSM038V611TgXr58xaYBJwDvAG3gNWOKnDJMt+\nREREePDyQghRtrQ0+PhjM/axbVvTnTR4sHn29OtnHujWKcGhoWbtmJ497c+RAQOKts7U5eDm/Pmy\nF6Q7ftzcE0fe3vZWl44dzf1zFsQ0bFgz36vCsrKKBihnz5r8FADvvw/ffFO0C0gpE/mCCWSWF/t7\n/sor7QFOy5amm8gxQLGOHgcTNfv7m6jZ2RiVP//Z41+3tnO3i8oH+AswFagPKMxA4NeBJ7TWeaUc\n7s75vYADmMHMc4GGwAJgj9b6YVfHSQuOEMLTCgvNMycgwDxojx6F3/8eHn0URo+GffvM2MfERJgw\nwQQ8771n0hBERtZ07T0jP98EJqV1F6Wm2mdrOWrSxHVri/XVvHktb3XR2kRv6en2QVDJybB2bcmB\ntp9/bn5ZHn0UXnih5LkuXjQtMY88Ap99VrQLqEUL+7S2TZtMM5ZjN5Cn02tfIjzdgvMCMB7TfbTO\nsq0v8FfMFPKHKlJJB0FABPAPrfVF4KJSaiHwPOAywBFCiIrS2vyhW1gIzzxjZi2NHGnWPWnXzqzw\n++ST5jkTGGhfaK1NGzMDxzpzqXlzM9u1LrCOMy2ru+jECXNfHNWrZw9YoqNh2LCSQUxoqHnW10pn\nz8KuXUWDk/R0mDLFBDHLl5vBUdbPrVOsdu82g2S/+860pihllgy2tqRkZZkvfd11JrpzbGEJDraP\nWn7hBecBkFX37lV/Dy4z7gY4twB3WQcAW/yqlEoD3qGSAY7W+pRS6gBwr1LK2oIzATNjSwghKiUp\nybRK9Oplyj16mJV733zTdBG9+64JbEaONM+qTz6xTxrx9YVvv7Wfy9vbzLapbfLy7FPMS5thdOFC\nyWObNrUHKTExzruLmjevBd1peXn2xeCsAUp8vGk6270b5swpudbKokUm+Fi92jTBOapXz0xBDg83\nUWy7diUDlObNzb53322a7Jo0cd78NGiQeYlaw90AJxD41cn2XzFTuj1hNPAK8AhQAHwHXH6dhkJc\nYhYtMlmlDx0ys0Fnz4Zbb3W9vSK0NgvcNbH83+hvfzM9DLNnm/K995rPrIHK9deblhirlJSi04PH\njatYPaqC1qbxoawZRidPllwnrX59e4DStat5ljsbtNugQQ18sZwcE4D4+pqAokUL5xkkAwPNDfjl\nFxN9FffuuybD54ULZoyLNTiJiTHvrU1tV19txqk4rrXiOF6lrADFmi5d1BnujsHZAGzWWt9XbPs8\nIFZr3buK6lcqGYMjRO22aBFMmmRfzwvMsIIJE8y4leLb5893L8j56SfYscOeuXr8eDNEYtcuU77n\nHvNM/OwzU05ONgGO45jM2iA313R3ldVllJ1d8tjg4LJnGDVrVs0L0m3eXHKMSlycGcSUnQ3XXGPf\nbv3hP/GEmcpcWkW1NjOHXn+95GJwbdoUXRhIXPI8Ok1cKdUP+BpIBTZYNvcCQoHrtdbrXB1blSTA\nEbWBJ1si6tK13REVBQcPltzu7V1yZg2YnoaUFPPH/b599lV4Fywwwc/69eY5+NBD8MYbZpCrt7dZ\nLO/YMZNAsjawPo/L6i46ebLksb6+pa/nEhpqXs7WS6u0wkLTFGYNQq6/3vmqeT4+0KGD2W/oUPMD\nAjPtqXgf2JQp5oeltQl0mjQp2gXUvbvpZiorwBHCwuPr4CilQoH7gA6WTbuAN7XWRytcy0qSAEfU\nNFctFI4tEVUVhJR17UWL4E9/suemCw6GV1+t3gDIy6v8zyatzZId06ebAKB5czMt+6OPzKtRI9OT\n4eNj75KqThcvmiCltO6io0dNkFZc8+ZlL0gXFOShVpf8fBNlZWaadOJgIsHiA21DQuCtt8znsbGw\ndat757/xRhOoXH21vSntm2/sS/E3a2YG97g7XUoCHOGmOrfQX0VIgCNqmqsWCmtLhDsBUFVce/Zs\nuPPOkrl26tc3f2xXV5Djqo6uhISY4GDfPrOi7/Dh1bcWitbmmV9aV1FqqokJivPzK7u7KCTEtM5U\nysGDZsljxwDl4kWzHDLAww+b2UDWNVjA/ssIZurTf/9rKmINQmJjTX8hmFUJz5+3t7AMH176DfMk\nCXCEmyod4Cil4oFkrXWh5b1LWustFatm5UiAI2qaqxYK6/TjsgKgqrp2RITrwMIT13amoMAEVEuX\nmiU/UlPNuExnK9Q606CBWf23PMGXu61jOTnOAxbHbUePmlihuBYtSu8uCgszDRVutbpobV8MznGs\nyujRJvpctszcQMfPrLOG6tUzo6WtrS1WTZvaF417+WWznopjF1BIiH2xufR0E435+7tX4eoMOiTA\nEW7yRIBTCLTSWp+0vNeYBf6K01rrGlmySQIcUdPKCmDKCoCq6tqHDrl+Jnji2vn55lncpo2Zbn36\ntHnYjx1rtju2WJXGWteKdN0tWmQGEzsOwK1f3zQ6BAUVDVys3XSO/P3L7i5q1cq+/k0J1kVlTp2y\nT0XavdvM1Cm+1kpiovmSc+fCjBklz3X4sJmq/PLLMG9eyYG0s2eb8+/YYfrtHD+rdLNQKaoz6GjV\nyizAU1zLlmb+uxAWnghwIoFDWmttee+S1rocjdCeIwGOqGlldUFVZQtOadd+4onKt+BkZJjhG9Zc\nfv/3f2Y86IwZ5tnWuLEZevHqq6b85JNmxq6zZ1RF6pGdXfrsop9+cj5QGcyzsrTuorAwM/GmxPP7\n/HnYtq1kgHLHHSZx4Zo1Juuy9XNr5se1a03m5EWL4LbbTGQbFGQPQhYsMGusbNpkFowrvtbKVVfV\nWOLCUkmriqiFKr2ScbGgRQOHtZNoSCklCaGKk79ELhvWFgdX3SSzZzsPQqzrs5RX8S6ZCRPg66+d\nX9vVGBxX1/7oIzNteeJEU+7Z0zzTly0z5cJCe8uPUmZGsDW/klLmvH/9q/vf5exZszDsVVc5D2DO\nnCl5TECAPUBxFdz4kMuxn08X7ebp2NG8UlPNDSw+lfnVV+H2281aK336FDuhj/1mNGliZg85BifN\nmpkvATBqlGnOCgx0vipe9+51a8Xali1d/79MiFrO3WniBUCI1vpkse3BwEnpoipG/uoRDiozi8rx\n2KAg08CQm2v/vLQBy4sWmWnT1lm7SplZutaAZdo02LPHjDkFswjc2bMmGzaYoSBBQTBwoPvfNSLC\n9LYUV7++CY6sDR7FeXmZvwtKtLQ0u0hYw7OEhXsRFtucRg3yUfPfhvR0Fs5Np/75UwSTzlJu4h3u\noSXHOU5IyQv85S/w2GOmcn36lOwCuuUWMxsoIwM2bCj6WcOG1byYjBA1rJb/ke7pdXAKgZZa67Ri\n2yOBnVrrGsk+IgGOuJQ564JyxrGrJzfXPmZk+nSzLlrxoOLDD01A9I9/mMBpzhyzPTPTtJA4+/Ut\nKDBDP8qaYZSR4byOoaGmYSMnB1pwgiDSaU4aIRyjU6PDPPFqK+rdebvZuXdvOHLEtKxY51rfc4+J\n5AoLTYtKYSG5DRpzJKcZp3QwiUxkHlMIbJDL/254ga6DinUBRUaawbhCiLLV8meYRwIcpdRrlrf3\nAQsBx//VegM9gFyt9TWVqGuFSYAjLmXlmWKtNbz2munyycgwLTtNmzpfoy0oqOig28zMshekO3as\nZJeQt7emVVAuYU2zTEtLfCvTdbR0OV7bkgnL/Y3O9fbQKeAQDa6Ox+s/X6M17KctbfnNdp5CFF7/\nNxYWLzYb7rzT/Dfk2MoSHW26icBEWk2bgo9PrV/oUIg6qZY/wzwV4Ky2vO0PrAccGsfJBVKAuVrr\nfRWvasXVyQCnok18tbzJUHieu70i1rVj1q83E3imTzdDRUo7vnNnE7AcPao5d67kjoF+OYQFnCW0\nfjph3scJa5hB2P2jTbfRX+4jbOMyWnASbyyDcjp2hJ07zfvRo2Hv3qLdPDExRM2dysGD0IfvKcCb\nUzQjnWACI5rw28Ea6eUWQjhziQQ4pSbb1FoPtJxsIfAnrbWbK1oIl9ydYuLucRU9n6h1Tp0y660N\nH27Gsboa3+nIxwdGjDCDe62tLdcNyCX1iEZRH+1kZYfGZFB/x6+0qXeY6/JTCOUoYT4nCfvPAsLC\nFaGzJtHw438CftDAEqBERcEUSybmi/3hWLuiXUAtWtgvYB3kU8zspqbLbV1WX9s2f3947S/lvFFC\nCOEGd8fgtALqaa2PFNseDuRprWvkKVtrW3BctbZYVSQCruURtShbYaFp5Gjc2HSnpKXBddeZvEq3\n3mrGv0ZEwItzNH27ZfHROxf48JN6+OtM6pHPYSIooB71yCffyd8mTQILzWDcnP2E/bqWMFIJI5VQ\njhLIWUbwJecJZAKJDGYlt00rNtB27Fgz2jcjw0RO/v4evwfSpSREHVDLnzeeHmS8Elistf5nse1/\nAMZpra+rcE0rodYGOOD5XxBPna8OdHXV9YdgQYFJv6M1PPG4JvaqC4ztc4w075a0uqoxwX6ZdMte\nR7363vys4gj3P01BnuaoXxtOnPYpsQifD7mEcpQMn2a0i2tI76a7CNv8BWFNLGNfQgoJDffCf+ZD\nJlj59VcTLTVrRud+wew/E0QuRReDq6rVjIUQl4Ba/pzwdIBzFuiptd5TbHs7YIPWOqjCNa0ECXAq\ncL5aHplXZe4mj8nOhqQkSE9n/U9eZJ26wFXeB0iNH8Htc6IJbnCBAUc/JvVCIMsuDsePHC7iSxYl\nJxs25TQh9dKIaHSGsL5tCO3awox5SfmBsMh6hLXxpVnrRni1aGa6icq5am2duJ9CCFEOng5wMoGr\ntdbbim2PAdbLNHEnJMCpkKpc+beInBz7Qm/Wxd7atIFu3czy+1Onok+lc/pEHtuPBZFzLo/UG+7h\n4zPDOHH4IlF7/ksqYfxCNHn4UDyLSX2vPEIDMggLvGBaWVrms2x9Kw6eC6IeufiRQyYNAa8qb02p\n6y1iQgjhyNMBzipgr9b63mLb3wbaa60HVLSilVGrAxxPN/F56ny1PMApd+4ma/LCU6fsWSYB3n7b\n3BfH5fYHDoRHH4WCAnLr+XOMVpZRKpZX/Ei2Bg/iwK+FcOggqQUhZGu/EpesX1/TITyTsJBCAhrX\n44q29ekYXY+wcGVboC44uOStrsq8VEIIcbnwyCwqB08A31labL6zbBsExAGDK1bFS5yn+ylrQb9n\nldOaiAjFwYMQzTbCOUIzzEq1bRqlw2stzPK7YJbd3brVBC7WFNAjR6JXfM7p05D6xGKOptcn1b8d\nqX49Sa0XQerBaA5/DIcPe3OGkmmjfXdoGjSAjAwvxo5tzchws0YMmFX8rTmNfH0V0KjcX89Vhu8I\nSXYihBAe51aAo7XeoJTqDcwALHNF+RmYorXeWlWVE3VYQYFZutaxCygvD8aMMZ+/9BKsW1e0hSUs\njNmztzBpEszLupdr+NF2usLzXlxccR1HR0wz06G9xpMaPoGjoa1IzWtBalZTUpMCOepvXfzWEodn\nmVezZhDeAArzTY6jBx80S7ekpJj1Y+bPh9atlW0CUUAVdLp6Oi+VEEII19xtwcESyNxWhXURVaD4\n+ItdgS1pkFHO5Hm5ufZApXNn06fyv//BDz8UDVAuXIDVlrUhJ0wwF3cUFGQPcPbuhf37ITgY3bET\n6Q0jSG3ShaZNYfx4uPOTzzh7oR75vgE0bu7LhRxvTq1W0MZ6MrOsv5+fWdQ2MhJ6JpguoC++gMcf\nNz1S+/bBlClmAbyEBBPQ/PwzDBliUgwV16RJee5u+ZSVmFMIIYTnuDUGp8gBZk2c+o7btNaHPFkp\nd9XqMTi1QMkZNBr/BjD/n4pbBx2DHTtKZlV+9lnzlJ83zyQpSk83GR6tzp41mZIffhhefNE0dTgu\nqf/vf5s50v/+N+zfT06j5qTqUFLzW3I0J4jU3OZOUwI4JpAEE0O1aGG6hUJCTPwVFQWNGsHnn5ug\n4KabzPHR0fb8SocPw/PPm54s62q9SjlP7CyEEKLu8fQg40DgNeD/KBbcAHgym7hS6mbgaSACOA5M\n1Fp/72zf2h7gVOnsFa3NbB/H4CQ9Ha691kQEP/7IV0NeoUFWum0cSzDp9GY9ZyNjSXn0Lbj33qLn\nDAw005+vvNJEEUuWFF0ILjgYRo4EPz8Kz1/g1BlvUtP9XOYvSk01vVTF+fsXyxgdZh/fEhICGzdC\nfDz072/GwDRtaoKWRx4xwVqnTvZ7mZdnkj937WoW0KvWn4EQQohq5+lBxnOBrsDvgWXAXUAY8Cfg\nwYpWsjil1BDgBWAcsBEI8dS5q1vx1pODB00ZnDxgCwvNwJD0dHsgcfy4aZZwDF7S02HmTBPEfPMN\nDBtW8sL/+peJEs6f58qsbaQTTApRbKYb6QRzhqYcPoRZ379TJ3vwEhRkBp9glnlJ7XwjqU1utAcr\neyz/vmKCmKNHA8jLK3pppcxkr9BQaN0a+vRxHsTk5prerNatzXFjx5qgxzp++MYbTetM//6mG+mZ\nZ6CvZXV/f/+iU6p9fOyfVepn4HCMBERCCFH3uduCcwQYr7X+Xil1DojXWu9XSo0H7tJaD/FIZZT6\nEXhXa/2uO/vXyhYcrUEprozMI/TQ+iKtJ804xbYWQ3j/xFDTlzJ4sAlazpyxzxN+/XWYOhW2bzd9\nLz4+RbuAnnzSHHfkiMm+HFxsuf0rroAGDQDXa8q0amUG1TrLIJ2a6jwDdcOGRYMUZy0wrVpBPSch\n8wcfmF6uKVNMuWtXCA83sRjAxIkm99Kjj5rywYPmGpZ4q8LKu6aOLIonhBC1X1Us9NdJa31IKXUY\nGKO1/kkpFQXs8MRCf0opbyAPnsSYAAAgAElEQVQbmAncDfgBK4AZWutsh/0mAZMAIiIiuh109gTz\nlOzskl1AISGmyUBruOMOs92xheWee2DuXBqqC5aF3OyyaMBzzOSv+lGT7+ePfyzZBdSzp+kiys9n\n8cIsHnm+EYcOqzJbEy5cKBmofPcdrFplxqG44uVlAhNnLS2OZWfdP1YpKfDbbzBokCn/6U+waRP8\naJkENXo0HDtmZisBfP21CZj69XPvx+CoPC0s5V13ptoWGRRCCFFhng5wtmKyia9RSn0D7ACmA38G\n/qy1vsIDFQ4FUoHNwAggD/gcWKO1fsLZMW634GhtmhDS0yE/H666ymxPTIQDB4oGKF27wty55vMW\nLUxGREfjxsEnn5j3MTFm6XzHAGXQILjxRqIiNVceWsUpmlnab4LJxt/th6Wz1oT69c0Mo7CwkmNe\nMjJKnqNxYxNInD5tpk43bgyjRsHvf28PYlq2dN7qUlxWlj33onV4zvvvm2Bh2jRYuNAMCVIK3nnH\nTJD629/M/jk5ZrZTZZW3haW8AYssxCeEELWfp8fgJAIxwBrgb8BXwFTACzMOxxOsrTSva62PASil\nXgaexCw06OSIbPjqq6KtLP7+phsH4JZbzLTl9HRsA0Z69ICffjLvX3kFtm0zo1itLSmO/SLPPWee\nbo6tLK1a2T/fViRzRRGz/6KYNGlwqWuenD/venDuv/5VcmZRbi68956ZpBQSYoKUDh1MTOWsBaZR\n+deiA0xQ8N//wm23mTq/8YbpNbNOoDpyxLQMRUaa9yEhZlKVpXeOu+8uej5PBDdgWm4c7yeY8hNP\nOA9wyrvujCzEJ4QQlxCtdblfmBlOo4HoihxfynkPA3c4lEcDP7vav1uTJlqb56p5eXtrHRenbZ57\nTuu779b60Ue1fvFFrRcs0HrVKvvnGRla5+drT8vL0/rIEa2feUbr5s1N1ZQy//r5aR0aqnWjRkWr\nbn0FBmrdqZPzz6yvyla5oEDrV17R+oorTL1atdK6fXutd+82n3/2mbnO5s2mnJRkbuXp06b84Yda\n+/sXrZO/v9lelaz3sPhLKdfHfPih1pGRZp/IyNLrWFPfSwghhPuAJO1GTOGyi0opVQCEaK1PKqUW\nYLqozjvd2UOUUs8C1wPDMV1UX2C6qJ5ytn9C5846aeFCewtL48al51rygHPnXA/OtbbCHD9eepeG\nt7eZCHXttSXHvFhX0PXkeJD0dJOa6Xe/M71qzzwDs2YV3cfLy2x/8kl7b15EhPP1Y2pqrEp1XFdm\nUQkhRO1W6TE4loHFMVrr3yzBTiutdZrTnT1EKeUDvArcAuQAnwIPa61znO3vyVlU+flmIGzxrqLi\nAYw1N5Gjpk1dD86dNMl5GqmyHsrlGW9SWAjJyab7qG1bMynrmmvgz382Y57T0sxworfeMuOaIyLM\nJK7y1smqpsaqyCwnIYQQnhiD8yOwQim1GVDAa0qpbGc7aq3vqlg1S5wnD5hieXmE1mYAbmmL0aWm\nmkTdxR/aPj72gKVrV5PfsXgQExpqH3zrjLME4GBaCErjbFn/Z56xb3/0UbOMzR13mHpffbUZJzN3\nrlmIODraPlyoeXPT8mQdk3PkSMXqZFVTY1Uk1YEQQgh3lRbg3A48BFwJaCAYnKRgrkFamwddad1F\nqaklB6aCWdfOGqTExjqfIt2sWeWX+K9oMPD99yYwsbao9Ohhsh9MmGDK335rHzft7W3yL7VrZ8pK\nmSVyHDkOOK5sgFKTSSNvvVUCGiGEEGVzd5r4ASBBa51e9VVyn1IJGop2UdWvX/aCdKGhnpvZUxZX\n3Srz5pnZT+HhZttf/2pmrM+fb8pDhpiWp40bTfm110xQdpsl3al1xpIn61Serh4ZqyKEEKImeHQd\nHBcX8LF0KdWY0NAE/cwzSUWCl+DgKh9nXG6LFsGDD5ruqshIEwysWgX/+Y9paQITLOzfb2952b/f\njJlu0aLq6iQBihBCiLrG0wv9TQNStdZLLeV3gQnAr8BIrfWeSta3QmpTqoZz5+CXX6BXL9Nl9N57\nZhmdnTtNq9Jzz5lE3efPm9aj//3PdBPdfnvtC8iEEEKI2srdAMfdESbTgDTLifthsorfAiQDL1W0\nknWN1vZZQr/8YpJxHztmykuXmuSSBw6YcsuW0L27CWgAHnjAzMCydo31728GCNfW4GbRIjMt28vL\n/LtoUU3XSAghhHCfuwFOGGB5dDMC+Exr/SkwC+hVBfWqcefPm5QE1unUGzaYLqO1a0359GmTscE6\nWPe668yiytaZS8OGwccfmy4zMIN8fX2r9ztUlHWMzsGDJqizZuGWIEcIIURd4W6Acw6wjgYZAqyy\nvM/DJMWsk7Ky7Dmc0tNh7Fh7huuTJ03Opm++MeWoKLjzTjOzCkyiyNOnTZcUmPE/w4eb3E91XWkp\nEYQQQoi6wN0A5xvgn0qpdzDTxv9t2d4Ze8tOraY1vPuuybAN9uSTr75qyo0bw44dJmgBE9D89JPJ\nrQmmZea116BLF1NWqmq7l2qyi8jVejjurpMjhBBC1DR3A5z7gB+A5sAYrbUlDCAe+LgqKlYRR4/C\nHofhzmPGwCOPmPdKwcyZ8OGHpuznZxbFu+46U/bxMQOCb7/dlL29zdozNdEiU91dRMWDqaAg5/tJ\n0kkhhBB1RYWnidcGrVsn6PvvT2L6dFPu2dMEJKssHWhTpphp2dYg5/hxs3iet3fN1Ndd1Znrydma\nOD4+JiB0zGYuKRGEEELUBp7IRRVkbalRSrn4m95waNGpVsHBCfqqq5LYsMGUV62CBg1M2oK6rDpz\nPbkKpoKDTbAo6+QIIYSoTTyRiypNKRWitT4JnMKkayhxHcv2GmkTiYrCFtyAyc59KajOXE+uxtWc\nPg2nTnn+ekIIIUR1KC3AGQScdnhf6/qyausaMpVVnbmeaipxphBCCFGVXAY4Wuv/ObxfUy21EUD1\nZs2uycSZQgghRFUprQXHRilVAFi7qxy3BwMntda1fNhu3VNdWbOrM5gSQgghqotbAQ5mrI0zvkCu\ni89EHVFdwZQQQghRXUoNcJRSlgnYaGCyUirT4WNvoC+wu4rqJoQQQghRIWW14Nxv+VcBdwMFDp/l\nAinAZM9XSwghhBCi4koNcLTWrQGUUquB0VrrM9VSKyGEEEKISnBrDI7WemBVV0QIIYQQwlPcHWSM\nUqodMAaIAOo7fqa1vstTFVJKXQX8AizRWt/mqfMKIYQQ4vLh7jTx4cBS4GegG7AJaIuZRfW9h+v0\nhuX8QgghhBAV4m428WeBZ7TWvYGLwO1AFLASWOOpyiilbgbOAqs8dU4hhBBCXH7cDXDaA4st7/MA\nf611DibwecATFVFKNbacb3oZ+01SSiUppZLS0tI8cWkhhBBCXGLcDXDOA36W98eAKy3v6wFNPVSX\n54B3tdZHSttJaz1fa52gtU5o3ry5hy4thBBCiEuJu4OMfwL6ADuBfwEvKaW6AqOA9ZWthFIqFhgM\nxFX2XEIIIYQQ7gY404GGlvezgEbATcBeyuhSctMAzJieQ8qkCG8IeCulOmmt4z1wfiGEEEJcRtxd\nB+c3h/dZwL0ersd84BOH8kOYgMfT1xFCCCHEZcDdaeLNAbTWaZZyNDAO2KG1/riylbAETVkO18sE\ncqzXE0IIIYQoD3e7qD4FPgAWKKWaAWuBo8D9SqlQrfVLnqyU1nqWJ88nhBBCiMuLu7OoYoANlvdj\ngP1a687AHcAfq6JiQgghhBAV5W4LTgMg0/J+MPCF5f0W4ApPV0oIITwtLy+PI0eOkJOTU9NVEUK4\nwc/Pj/DwcHx8fCp0vLsBzj5gtFJqKXAd8KJle0vMysNCCFGrHTlyhEaNGhEVFYVltqYQopbSWpOe\nns6RI0do3bp1hc7hbhfVM8ALQAqwQWv9k2X7UEx+KiGEqNVycnIIDg6W4EaIOkApRXBwcKVaXN2d\nJr5MKRUBhAJbHT5aiUnCKYQQtZ4EN0LUHZX979XdLiq01ieAE8W2/eRidyGEEEKIGuNuF5UQQohK\natiwYYltb731Fu+//34N1MYzJk6cyJIlSyq9jydZ73NKSgpdunQpc3936peYmMjRo0c9Uj9RPdxu\nwRFCCOF5kydPrtLza63RWuPlJX/PVkZiYiJdunQhNDS0pqsi3CS/8UKIy9OAASVfb75pPsvKcv55\nYqL5/NSpkp9V0KxZs5g7d66lSgN45JFH6NGjB+3ateP7778HoKCggBkzZtC9e3diYmJ4++23AcjM\nzOTaa68lPj6e6OhoPv/8c8C0XLRv35477riDLl26cPjw4SLXjIqK4rHHHiM2NpaEhAS2bNnC0KFD\nadu2LW+99RZgAqMZM2bQpUsXoqOjWbx4sW371KlTad++PYMHD+bkyZO2827evJn+/fvTrVs3hg4d\nyrFjx0r97snJyfTq1YuYmBhGjRrFmTNnSr0Pjlx9d3eU9h2effZZunfvTpcuXZg0aRJaa5YsWUJS\nUhK33norsbGxZGdnO91P1C4S4AghRC2Sn5/Pxo0beeWVV3jmmWcAePfddwkMDGTTpk1s2rSJf/7z\nnxw4cAA/Pz+WL1/Oli1bWL16NQ8++KDtQbtv3z6mTJnCjh07iIyMLHGdiIgIkpOT6du3r62LZsOG\nDTz99NMALFu2jOTkZLZu3crKlSuZMWMGx44dY/ny5ezZs4edO3fy/vvv8+OPPwJmnaH777+fJUuW\nsHnzZu666y6eeOKJUr/rHXfcwQsvvMC2bduIjo62fV9X98FRad+9LK6+A8DUqVPZtGkT27dvJzs7\nm6+++ooxY8aQkJDAokWLSE5OpkGDBk73E7WL211USqmWwO1AW+AprfUppdQ1wFGt9YGqqqAQQlSJ\nNWtcf+bvX/rnzZqV/nkljB49GoBu3bqRkpICwDfffMO2bdts40QyMjLYt28f4eHhPP7446xduxYv\nLy9SU1M5ccLMBYmMjKRXr14urzNy5EgAoqOjyczMpFGjRjRq1AhfX1/Onj3LunXrGD9+PN7e3rRs\n2ZL+/fuzadMm1q5da9seGhrKoEGDANizZw/bt29nyJAhgGl1CgkJcXn9jIwMzp49S//+/QGYMGEC\nY8eOLfU+ONJaO/3urVq1KvMeu/oOAKtXr2bOnDlkZWVx+vRpOnfuzIgRI0qcw939RM1xN9lmN2AV\ncADojFno7xQwBGgH3FJVFRRCiMuJr68vAN7e3uTn5wPmYf76668zdOjQIvsmJiaSlpbG5s2b8fHx\nISoqyrZuSEBAgFvX8fLysr23lq3XLQ+tNZ07d2b9+vXlPra0+jneB0eLFi1y+d0rKicnhylTppCU\nlMQVV1zBrFmznJ7T3f1EzXK3i2ou8KrWOg646LD9v8A1Hq+VEEIIm6FDhzJv3jzy8vIA2Lt3Lxcu\nXCAjI4MWLVrg4+PD6tWrOXjwoMeu2bdvXxYvXkxBQQFpaWmsXbuWHj160K9fP9v2Y8eOsXr1agDa\nt29PWlqaLcDJy8tjx44dLs8fGBhI06ZNbeNrPvjgA1trjjsq891dfQdrkNKsWTMyMzOLzKxq1KgR\n58+fL3M/UXu420XVDfiDk+3HMOkahBBClCErK4vw8HBbefr06W4dd/fdd5OSkkJ8fDxaa5o3b86K\nFSu49dZbGTFiBNHR0SQkJNChQweP1XXUqFGsX7+erl27opRizpw5tGrVilGjRvHdd9/RqVMnIiIi\n6N27NwD169dnyZIlTJs2jYyMDPLz83nggQfo3Lmzy2u89957TJ48maysLNq0acPChQvdrl9lvrur\n79CkSRPuueceunTpQqtWrejevbvtmIkTJzJ58mQaNGjA+vXrXe4nag/lzqAspdQJ4Aat9Wal1Hmg\nq9b6N6XUMGC+1jqiqivqTEJCgk5KSqqJSwsh6phdu3bRsWPHmq6GEKIcnP13q5TarLVOKOtYd7uo\nPgeeVkpZO2q1UioKk59KUjUIIYQQolZxN8B5CAgC0gB/YB2wH5NJ/MmqqZoQQgghRMW4m2zzHNBH\nKTUIiMcERlu01iursnJCCCGEEBXhMsBRShUAIVrrk0qpBcCftNbfAd9VW+2EEEIIISqgtC6qbMCa\nGW4C4Ff11RFCCCGEqLzSuqh+BFYopTYDCnhNKZXtbEet9V2VrYhlAPObwGDMeJ9fgce01v+u7LmF\nEEIIcXkprQXndsxCfk0ADQQDzV28PKEecBjoDwRiBi9/apmtJYQQdV7Dhg1LbHvrrbd4//33a6A2\nnmHNY1XZfWpCYmIiR48etZXvvvtudu7cWeoxAwYMoKzlSdasWcPvfve7UvdJTk7m66+/dr+yotxc\ntuBorU8AMwCUUgeA8Vrr9KqqiNb6AjDLYdNXlut2A1Kq6rpCCFGTJk+eXKXn11qjtcbLS3IrOyoo\nKCAxMZEuXboQGhoKwDvvvFNt109OTiYpKYkbbrih2q55uXHrN15r3boqgxtnLMk92wGu1/oWQogK\nGjAAEhPN+7w8U/7wQ1POyjLlxYtNOSPDlJctM+VTp0z5yy9N+fjxitdj1qxZzJ0711KnATzyyCP0\n6NGDdu3a2dIYFBQUMGPGDLp3705MTAxvv/02AJmZmVx77bXEx8cTHR3N559/DkBKSgrt27fnjjvu\noEuXLhw+fLjINaOionjssceIjY0lISGBLVu2MHToUNq2bctbb70FmMBoxowZdOnShejoaBZbbobW\nmqlTp9K+fXsGDx7MyZMnbefdvHkz/fv3p1u3bgwdOpRjx46V+t2Tk5Pp1asXMTExjBo1ijNnzpR6\nHxytWbOGfv36MXz4cNq3b8/kyZMpLCwE4N577yUhIYHOnTvbsqNbv/cjjzxCfHw8H3/8MUlJSdx6\n663ExsaSnZ1dpHXG1Tlc+c9//kOHDh2Ij49nmfUXBdi4cSO9e/cmLi6Oq6++mj179pCbm8vMmTNZ\nvHgxsbGxLF682Ol+opKs0X3xFzAd8HN47/Ll6hwVfQE+wErgbSefTQKSgKSIiAgthBDu2LlzZ5Fy\n//5aL1xo3ufmmvIHH5jyhQum/Mknpnz2rCkvXWrKaWmm/MUXpnzsmHt1CAgIKLHt6aef1i+++KKl\nTv319OnTtdZa/+tf/9LXXnut1lrrt99+Wz/33HNaa61zcnJ0t27d9G+//abz8vJ0RkaGpU5pum3b\ntrqwsFAfOHBAK6X0+vXrndYjMjJSv/nmm1prrR944AEdHR2tz507p0+ePKlbtGihtdZ6yZIlevDg\nwTo/P18fP35cX3HFFfro0aN66dKltu2pqak6MDBQf/bZZzo3N1f37t1bnzx5Umut9SeffKLvvPNO\nrbXWEyZM0J999lmJekRHR+s1a9ZorbV+6qmn9J/+9KdS74Oj1atXa19fX/3rr7/q/Px8PXjwYNs1\n0tPTtdZa5+fn6/79++utW7favvcLL7xgO0f//v31pk2bnJZdnaP4MVprnZ2drcPDw/XevXt1YWGh\nHjt2rB4+fLjWWuuMjAydl5entdb622+/1aNHj9Zaa71w4UJ933332c7har/LXfH/brXWGkjSbsQS\npQ0yvh94D8ixvHcZIwEvVzC+KkEp5QV8AOQCU0tcTOv5wHwwqRo8dV0hxOVlzRr7ex+fomV//6Ll\nwMCi5WbNipZbtfJcvUaPHg1At27dSElJAeCbb75h27ZttnEsGRkZ7Nu3j/DwcB5//HHWrl2Ll5cX\nqampnDhxAoDIyEh69erl8jojR44EIDo6mszMTBo1akSjRo3w9fXl7NmzrFu3jvHjx+Pt7U3Lli3p\n378/mzZtYu3atbbtoaGhDBo0CIA9e/awfft2hgwZAphWp5CQEJfXz8jI4OzZs7YEmxMmTGDs2LGl\n3ofievToQZs2bQAYP34869atY8yYMXz66afMnz+f/Px8jh07xs6dO4mJiQFg3LhxLuvkqLRzFLd7\n925at27NVVddBcBtt93G/Pnzbd9zwoQJ7Nu3D6WULWGqs/vhzn7CfaWNwWnt7H1VUkop4F1MAs8b\ntNbyExZCXFZ8fU1GHG9vb/Lz8wHT0v76668zdOjQIvsmJiaSlpbG5s2b8fHxISoqypbpOiAgwK3r\neHl52d5by9brlofWms6dO9uyiVeWs/tQnHlkFC0fOHCAuXPnsmnTJpo2bcrEiRNt9wTKvi9Ameco\nj6eeeoqBAweyfPlyUlJSGDBgQKX2E+6r1KgzpVSkUupTT1UGmAd0BEZorZ1OSRdCiMvN0KFDmTdv\nnu2v+r1793LhwgUyMjJo0aIFPj4+rF69moMHD3rsmn379mXx4sUUFBSQlpbG2rVr6dGjB/369bNt\nP3bsGKtXrwagffv2pKWl2QKcvLw8duxwPYQyMDCQpk2b2sbXfPDBB7bWHHdt3LiRAwcOUFhYyOLF\ni+nTpw/nzp0jICCAwMBATpw4wb//7XqlkUaNGnH+/PkS28tzDoAOHTqQkpLCr7/+CsDHH39s+ywj\nI4OwsDDABKSuru1qP1FxbqVqKEUT4CZPVEQpFQn8EbgIHHeIzP+otV7kiWsIIURNysrKIjw83Fae\nPn26W8fdfffdpKSkEB8fj9aa5s2bs2LFCm699VZGjBhBdHQ0CQkJdOjQwWN1HTVqFOvXr6dr164o\npZgzZw6tWrVi1KhRfPfdd3Tq1ImIiAh69+4NQP369VmyZAnTpk0jIyOD/Px8HnjgATp37uzyGu+9\n9x6TJ08mKyuLNm3asHDhwnLVsXv37kydOpX9+/czcOBARo0ahZeXF3FxcXTo0IErrriCa665xuXx\nEydOZPLkyTRo0KBIy1PXrl3dPgeAn58f8+fPZ/jw4fj7+9O3b19b8PLwww8zYcIEnn/+eYYPH247\nZuDAgfztb38jNjaWxx57zOV+ouKUGa9TwYOV6orJSeXtuSq5LyEhQZe1HoEQQgDs2rWLjh071nQ1\nhIesWbOGuXPn8tVXX9V0VUQVcvbfrVJqs9Y6oaxjZWEEIYQQQlxyKttFJYQQQlS7AQMGyEBcUapS\nAxyl1BdlHN/Yg3URQgghhPCIslpwylq9OB044KG6CCGEEEJ4RKkBjtb6zuqqiBBCCCGEp8ggYyGE\nEEJcciTAEUKIauLt7U1sbCxdunRhxIgRnD171uPXWLNmDb/73e/KdczRo0cZM2ZMpa/tmDjU1faZ\nM2eycuXKSl+rpjgm5KzMPjXhlVdeISsry1a+4YYbyvwdjIqK4tSpU6Xuk5iYyNSpJTIrFbFmzRp+\n/PFH9yvrARLgCCFENWnQoAHJycls376doKAg3njjjZquEvn5+YSGhtryXFW1Z599lsGDB1fZ+SuS\nZuJyUFBQUCLA+frrr2nSpEm1XF8CHCGEqAYPPAADBnj29cAD5atD7969SU1NtZVffPFFunfvTkxM\nDE8//bRt+3PPPUf79u3p06cP48ePt7WEOLYSnDp1iqioqBLX2LhxI7179yYuLo6rr76aPXv2AOYv\n7pEjRzJo0CCuvfZaUlJS6NKlC2BWTY6NjSU2NpbmzZvzzDPPlFq/2bNn065dO/r06WM7f2kmTpxo\nC6aioqJ4+umniY+PJzo6mt27dwNw4cIF7rrrLnr06EFcXByff/45ACkpKfTt25f4+Hji4+NtD8w1\na9bQt29fRo4cSadOnUpcs2HDhsyYMYPOnTszePBgNm7cyIABA2jTpg1ffGEmC+fk5HDnnXcSHR1N\nXFycLQVFdnY2N998Mx07dmTUqFFkZ9uzCH3zzTf07t2b+Ph4xo4dS2ZmZqnffdWqVcTFxREdHc1d\nd93FxYsXS70PjhITE7nxxhsZMGAAV111le3nAvD73/+ebt260blzZ1uST+v3fvDBB+natSuzZ8/m\n6NGjDBw4kIEDB9qua22dcXUOVxYuXEi7du3o0aMHP/zwg237l19+Sc+ePYmLi2Pw4MGcOHGClJQU\n3nrrLf7+978TGxvL999/73Q/T5N1cIQQopoVFBSwatUq/vCHPwDmQblv3z42btyI1pqRI0eydu1a\nGjRowNKlS9m6dSt5eXnEx8fTrVs3t6/ToUMHvv/+e+rVq8fKlSt5/PHHWbp0KQBbtmxh27ZtBAUF\nFcnW/c477wBw8OBBhg0bxsSJE13WLyAggE8++YTk5GTy8/PLXT+AZs2asWXLFt58803mzp3LO++8\nw+zZsxk0aBALFizg7Nmz9OjRg8GDB9OiRQu+/fZb/Pz82LdvH+PHj7cFeVu2bGH79u20bl0yN/SF\nCxcYNGgQL774IqNGjeLJJ5/k22+/ZefOnUyYMIGRI0fyxhtvoJTil19+Yffu3Vx33XXs3buXefPm\n4e/vz65du9i2bRvx8fGACSqff/55Vq5cSUBAAC+88AIvv/wyM2fOdPo9c3JymDhxIqtWraJdu3bc\ncccdzJs3jwcskbGz+1Dcxo0b2b59O/7+/nTv3p3hw4eTkJDAggULCAoKIjs7m+7du3PTTTcRHBzM\nhQsX6NmzJy+99BIACxYsYPXq1TRr1qzEuV2dw5ljx47x9NNPs3nzZgIDAxk4cCBxcXEA9OnThw0b\nNqCU4p133mHOnDm89NJLTJ48mYYNG/LQQw8BcObMGaf7eZIEOEKIy84rr9TMdbOzs4mNjSU1NZWO\nHTsyZMgQwAQ433zzje0hkZmZyb59+zh//jw33ngjfn5++Pn5MWLEiHJdLyMjgwkTJrBv3z6UUrZk\nnQBDhgwhKCjI6XE5OTmMHTuW119/ncjISF5//XWX9Rs1ahT+/v4AjBw5stz3ZPTo0QB069aNZcuW\nAeZ+fPHFF7bWqpycHA4dOkRoaChTp04lOTkZb29v9u7daztPjx49nAY3YPJkDRs2DIDo6Gh8fX3x\n8fEhOjraFtytW7eO+++/HzCBYWRkJHv37mXt2rVMmzYNgJiYGGJiYgDYsGEDO3futOWpys3NteXl\ncmbPnj20bt2adu3aATBhwgTeeOMNW4Dj7D4UN2TIEFvQMXr0aNatW0dCQgKvvfYay5cvB+Dw4cPs\n27eP4OBgvL29uekm97otua0AAA/qSURBVNJFujqHMz/99BMDBgygefPmAIwbN872szhy5Ajjxo3j\n2LFj5ObmuvyZuLtfZUgXlRBCVBPrGJyDBw+itbaNwdFa89hjj5GcnExycjL79++3te64Uq9ePQoL\nCwETADjz1FNPMXDgQLZv386XX35ZZL+AgACX5548eTKjR4+2jZWpSP3c5evrC5gB2NbxM1prli5d\narveoUOH6NixI3//+99p2bIlW7duJSkpidzcXLe+j4+PD9YEzl5eXrZrenl5VXjMjtaaIUOG2Oq4\nc+dO3n333QqdC5zfh+IcklDbymvWrGHlypWsX7+erVu3EhcXZ/s5+/n54e1ddqrI0s5RXvfffz9T\np07ll19+4e2333Z5Hnf3qwwJcIQQopr5+/vz2muv8dJLL5Gfn8/QoUNZsGCBbQxHamoqJ0+e5Jpr\nrrEFJpmZmUUSS0ZFRbF582YAlwOEMzIyCAsLA8wYDne88cYbnD9/nkcffdS2zVX9+vXrx4oVK8jO\nzub8+fN8+eWX5b4XzgwdOpTXX38dazLon3/+2fZ9QkJC8PLy4oMPPqCgoMAj1wPo27cvixYtAmDv\n3r0cOnSI9u3b069fPz766CMAtm/fzrZt2wDo1asXP/zwA/v37wdMN5hji1Jx7du3JyUlxbb/Bx98\nQP/+/ctVx2+//ZbTp0+TnZ3NihUruOaaa8jIyKBp06b4+/uze/duNmzY4PL4Ro0a2bKcOyrPOQB6\n9uzJ//73P9LT08nLy+Ozzz4rci7r79x7773n8tqu9vMkCXCEEKIGxMXFERMTw8cff8x1113HLbfc\nQu/evYmOjmbMmDGcP3+e7t27M3LkSGJiYrj++uuJjo4mMDAQgIceeoh58+YRFxfnchrvww8/zGOP\nPUZcXJzbLRVz587ll19+sQ00fuutt1zWLz4+nnHjxtG1a1euv/56unfv7pF789RTT5GXl0dMTAyd\nO3fmqaeeAmDKlCm89957dO3ald27d5faalNeU6ZMobCwkOjoaMaNG0diYiK+vr7ce++9ZGZm0rFj\nR2bOnGkbY9S8eXMSExMZP348MTEx9O7d2+ngYCs/Pz8WLlzI2LFjiY6OxsvLi8mTJ5erjj169OCm\nm24iJiaGm266iYSEBIYNG0Z+fj4dO3bk0UcfpVevXi6PnzRpEsOGDbMNMrYqzzkAQkJCmDVrFr17\n9+aaa64pku171qxZjB07lm7duhUZ6zNixAiWL19uG2Tsaj9PUtYIuS5KSEjQtXGtASFE7bNr164i\n/yOuKzIzM2nYsCFZWVn069eP+fPn2wa6istHYmIiSUlJ/OMf/6jpqlQrZ//dKqU2a60TyjpWBhkL\nIUQtNmnSJHbu3ElOTg4TJkyQ4EYIN0mAI4QQtZh1/Ie4vE2cOJGJEyfWdDXqFBmDI4S4bNTlLnkh\nLjeV/e9VAhwhxGXBz8+P9PR0CXKEqAO01qSnp+Pn51fhc0gXlRDishAeHs6RI0dIS0ur6aoIIdzg\n5+dHeHh4hY+XAEcIcVnw8fGpktVShRC1U63qolJKBSmlliulLiilDiqlbqnpOgkhhBCi7qltLThv\nALlASyAW+JdSaqvWekfNVksIIYQQdUmtacFRSgUANwFPaa0ztdbrgC+A22u2ZkIIIYSoa2pTC047\nIF9r7ZjMYytQJFmHUmoSMMlSvKiU2l5N9RNGM8D5uvCiqsg9r35yz6uf3PPqV1fveaQ7O9WmAKch\ncK7YtgygkeMGrfV8YD6AUirJneWahefIPa9+cs+rn9zz6if3vPpd6ve81nRRAZlA42LbGgMlU58K\nIYQQQpSiNgU4e4F6SqmrHLZ1BWSAsRBCCCHKpdYEOFrrC8Ay4FmlVIBS6hrgRuCDUg6bXy2VE47k\nnlc/uefVT+559ZN7Xv0u6XuuatOy5UqpIGABMARIBx7VWkumOSGEEEKUS60KcIQQQgghPKHWdFEJ\nIYQQQniKBDhCCCGEuOTUyQBHclaVn1LKVyn1ruV+nVdKJSulrnf4/Fql1G6lVJZSarVSKrLYsQuU\nUueUUseVUtOLnbvCx14ulFJXKaVylFIfOmy7xfLzuKCUWmEZg2b9rNTf8cocezlQSt2slNpluQe/\nKqX6WrbL73kVUEpFKaW+VkqdsXz/fyil6lk+i1VKbbbct81KqViH45RS6gWlVLrl9YJSSjl8XuFj\nLyVKqalKqSSl1EWlVGKxz2rkd7q0Y2sNrXWdewEfA4sxiwP2wSwI2Lmm61WbX0AAMAuIwgS2v8Os\nMRSFWc0yAxgL+AEvAhscjv0r8D3QFOgIHAeGWT6r8LGX0wv4xnIfPrSUO1vufz/L7/FHwCcO+7v8\nHa/MsZfDCzNJ4SDQy/K7HmZ5ye951d3zr4FEy71pBfwCTAPqW34WfwZ8LdsOAvUtx/0R2AOEW35G\nO4HJls8qfOyl9gJGA7/n/9u792ArqzqM499HMEnAlCK8TErgKOmMQqFSjUnlENnUlDgT0kwz5SU1\nHMvB9A+tRovx0oRTeGuGiQYzJRtz0olulpfISEkcEDIQL6hIiDdQEPXXH2vtes9mn7PPPu85bs67\nn8/MGvZ+17vetfY6i/Ouvd61zoLrgIWF421p083S7i6h7QXoww96OGlDzsMKxxYBl7e7bIMtAA+T\n9v86E1haV8evARPy+2eAaYX4y8g31DJpOyUAM4HFpA5mrYMzF7ipcM743K5HNmvjZdJ2QgCWAqc1\nOO52PnB1vho4qfD+KuAGYBrwNHlBS457snCjXAqcWYg7rXajLJO2qgH4Hl07OG1p083S7i5hMD6i\n6m7PqiPbVJ5BSdIYUl2uItXdilpcpL9JtA44UtJ+wAHFeLrWd5m0lSdpH+BSoP6RRX29rSN3TGje\nxsukrTRJQ4DJwGhJayVtyI9L3onb+UC6GpgpaW9JBwGfBpaQ6uDhyHfB7GG6qVd2rfO+pu0U7WrT\n3abtl0/VTwZjB6dXe1ZZ9yTtCfwc+FlErCHV6Ut1p9XqdEThfX0cJdN2gsuABRGxoe54s3rrqY2X\nSVt1Y4A9gVOA44GJwCTgYtzOB9I9pJvby8AG4AHg1/RcbzSIfwkYkefSlEnbKdrVppv9bHYLg7GD\n4z2rSpC0B+mRxevA7Hy4pzrdWnhfH1c2baXlCZEnAvMaRDert57aeJm0Vfda/vfHEfFsRGwGfgic\nhNv5gMi/U5aQ/hL9cNL8jP2AK2i9Le8DbM2jNmXSdop2telB8XtmMHZwvGdVH+VvNgtI33JnRMTO\nHLWKVIe184aT5nWsiogXgGeL8XSt7zJpq24qaRL3k5I2AnOAGZKWs2u9jSNNpHyU5m28TNpKy21u\nA1C8ydVeu50PjFHAwcD8iNgREc8DPyV1KlcBR9WNqhxFN/XKrnXe17Sdol1tutu0/fKp+ku7JwH1\nJQA3k1aKDAc+SoetEilRb9cD9wMj6o6PznU4gzQj/gq6zqa/HLib9K1sAqnhTy+btuoB2Ju0oqQW\nfgDcmuusNpx/fG7HN9J1JVS3bbxM2k4IpDlP/wDem9vdvaRHhW7nA1fnjwEXAUOBfYHbSKv7aiuh\nziN1wmfTdSXUWaQJygcBB5JukPWrqFpOW7WQ63UYaWXTovx6aLvadLO0u0toewH6+MMeRXq+u400\nq35Wu8u0uwfgENI32e2k4cVa+FKOPxFYQxri/wswtpB2L9IeYS8DzwHn1127z2k7KVBYRZXfz8rt\ndxtwOzCqENdjGy+TtuqBNAfnWuBF0tLWHwHDcpzb+cDU+cRcJy8Am0mrBsfkuEnAg7nelgOTCukE\nXAlsyeFKuq6a6nPaKoX8uyPqwnfb2aZ7Sru7BO9FZWZmZpUzGOfgmJmZmfXIHRwzMzOrHHdwzMzM\nrHLcwTEzM7PKcQfHzMzMKscdHDMzM6scd3DMzEqSNFZSSJrc7rKYWeIOjlkHkTRG0jxJ/5a0XdIm\nSUslnStpROG8x/MNO/J5T0m6TdJnG1wzCuEVSQ9IOvnt/WRt9xRp9+WHACRNzfXxnvYWy6xzuYNj\n1iEkjSX9NdjpwCXAB4HjgLnAJ4HP1SW5lHTTPgyYCTwO3CZpfoPLn5HPPQZYAfxS0of7+zP0RNI7\n3s78iiLizYjYGBFvtKsMZtaVOzhmneM64C1gckTcHBGPRMT6iLgjIj5P2r+q6JV8034yIv4aEd8E\nzgG+Lunjdee+mM9dQ9ojaAe7dpiALo9zZkm6L48QrZE0re68IyTdmUeFNkn6haT9C/ELJd0h6UJJ\nG0ibbDYkaYqkuyRtk/RSfn1gjpsu6V5JL0jaIul3kj7QSnmLj6hyR/LPOeo/+fjC3uRlZv3HHRyz\nDiDp3cCngGsiYlujc6J3+7YsIO03NKO7EyLtUr+TtCdUT64k7RM1EfgDcLukg3J5DwDuAVYCx5L2\nvRmRzyn+3jqBtMP0dNIo1C4kHU3qcKwlbT46BbiFtFkhpE1Jr875TCVtIvibBiNC3Za3zlP8v36O\nJI1snddiXmZW0tDmp5hZBRxK2pzwX8WDeeRj3/z2xog4q6eLRMSbkh4FxjWKl7QXcAGwD/CnJmW6\nLiIW53TnkTpgZwMX539XRMSFhWt/mbSp4mRgWT68HfhqROzoIZ9vAQ9FxJmFY6sLn+lXdZ/hK6QN\nBo8F7utlef8n19GW/HZTRGzuQ15mVpJHcMw62/GkEYllwLBephFpN+OiRZK2Aq8C5wNzIuK3Ta7z\nt9qLiHgL+DtwRD70IeBjkrbWAmlkBGB84Rorm3RuIO1IfVe3H0YaL+kmSesk1XZO3gM4uIXy9koL\neZlZSR7BMesMa0mdkgnFgxGxHkDSq725iKQhpEnHy+qiLgCWAC9HxKbSpU03/TuBOQ3iniu8bvi4\nrUV3kObvfA14GngDeAQYiMdGb2deZh3NIzhmHSAingd+D8wuLgfvg9NJj7RurTu+MSLWtti5mVJ7\nIUmkxzS1R0fLSfNXnsjXLYZXWizzP4FPNIrIc5MmAHMj4o8RsRoYSeMvfz2Vt97r+d8hfczLzEpy\nB8esc5xD+j//oKRT8yqlwySdChwNvFl3/khJ+0t6n6SPSJoHXAPMj4i7+6E8Z0s6RdLhpIm3h5BW\nepHzeRdwi6TjJI2TdKKkn0ga2WI+VwGTctqjJR0u6XRJB5MmTG8GzpB0qKQTgOtJIyutlLfeE6QR\ns89IGp07la3kZWYluYNj1iEi4jHSfJQlwGWkkY3lpDkz1wLfqEvybeBZ0uOtxcD7gZMj4tx+KtJF\nOe8VpFVQX4iIDbmsz5BWPL2Vy7uK1OnZkUOvRcRDpFVYE4D7SXNnZgI781yaL5JWYq3MeVzSTR7d\nlrdBnk8D3wG+T3qkNr/FvMysJPVuZaiZWf/IfydmPXBMRDzQ3tI0N9jKa2aJR3DMzMysctzBMTMz\ns8rxIyozMzOrHI/gmJmZWeW4g2NmZmaV4w6OmZmZVY47OGZmZlY57uCYmZlZ5fwX6gHPaF0OR/8A\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10a9f39b0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,3))\n",
"\n",
"plt.xlabel(\"GDP per capita\")\n",
"plt.ylabel('Life satisfaction')\n",
"\n",
"plt.plot(list(sample_data[\"GDP per capita\"]), list(sample_data[\"Life satisfaction\"]), \"bo\")\n",
"plt.plot(list(missing_data[\"GDP per capita\"]), list(missing_data[\"Life satisfaction\"]), \"rs\")\n",
"\n",
"X = np.linspace(0, 110000, 1000)\n",
"plt.plot(X, t0full + t1full * X, \"r--\", label=\"Linear model on all data\")\n",
"plt.plot(X, t0 + t1*X, \"b:\", label=\"Linear model on partial data\")\n",
"\n",
"ridge = linear_model.Ridge(alpha=10**9.5)\n",
"Xsample = np.c_[sample_data[\"GDP per capita\"]]\n",
"ysample = np.c_[sample_data[\"Life satisfaction\"]]\n",
"ridge.fit(Xsample, ysample)\n",
"t0ridge, t1ridge = ridge.intercept_[0], ridge.coef_[0][0]\n",
"plt.plot(X, t0ridge + t1ridge * X, \"b\", label=\"Regularized linear model on partial data\")\n",
"\n",
"plt.legend(loc=\"lower right\")\n",
"plt.axis([0, 110000, 0, 10])\n",
"save_fig('ridge_model_plot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"backup = oecd_bli, gdp_per_capita\n",
"\n",
"def prepare_country_stats(oecd_bli, gdp_per_capita):\n",
" return sample_data"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"# Replace this linear model:\n",
"model = sklearn.linear_model.LinearRegression()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"# with this k-neighbors regression model:\n",
"model = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 5.76666667]]\n"
]
}
],
"source": [
"X = np.c_[country_stats[\"GDP per capita\"]]\n",
"y = np.c_[country_stats[\"Life satisfaction\"]]\n",
"\n",
"# Train the model\n",
"model.fit(X, y)\n",
"\n",
"# Make a prediction for Cyprus\n",
"X_new = np.array([[22587.0]]) # Cyprus' GDP per capita\n",
"print(model.predict(X_new)) # outputs [[ 5.76666667]]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
},
"nav_menu": {},
"toc": {
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 6,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": true
},
"toc_position": {
"height": "616px",
"left": "0px",
"right": "20px",
"top": "106px",
"width": "213px"
}
},
"nbformat": 4,
"nbformat_minor": 1
}