{"id":46750,"date":"2023-04-26T00:00:00","date_gmt":"2023-04-26T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/"},"modified":"2025-11-13T12:56:29","modified_gmt":"2025-11-13T20:56:29","slug":"socio-economic-data-analysis-and-visualization-using-python-and-griddb","status":"publish","type":"post","link":"https:\/\/www.griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/","title":{"rendered":"Socio-Economic Data Analysis and Visualization using Python and GridDB"},"content":{"rendered":"<div class=\"notebook\">\n    <div class=\"nbconvert\">\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Today, we will explore the socio-economic dataset which contains various metrics and social indicators for 66 major countries. This dataset is originally inspired by <a href=\"http:\/\/data.un.org\/Host.aspx?Content=About\">UNData<\/a>. We will learn more about the dataset in the later section.<\/p>\n<p>The objective of this tutorial is to give a sneak peek into the socio-economic data preprocessing and analysis. We will begin with loading the libraries and our dataset followed by data preprocessing. Later on, we will visualize the statistics using interactive widgets.<\/p>\n<p>The outline of this tutorial looks like as follows:<\/p>\n<ol>\n<li>Prerequisites and Environment Set up.<\/li>\n<li>Introduction to the dataset<\/li>\n<li>Importing Libraries<\/li>\n<li>Loading the Dataset<\/li>\n<li>Data Preprocessing<\/li>\n<li>Data Filtering and Basic Data Visualization<\/li>\n<li>Interactive Data Visualization<\/li>\n<li>Conclusion<\/li>\n<li>References<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"1.-Prerequisites-and-Environment-Set-up\">1. Prerequisites and Environment Set up<a class=\"anchor-link\" href=\"#1.-Prerequisites-and-Environment-Set-up\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>This tutorial is carried out in Anaconda's Jupyter Notebook with Python version - 3.8.3 on Windows 10 Operating System. <a href=\"https:\/\/colab.research.google.com\/\">Google Colab<\/a> also offers a similar environment and is cloud-based. Hence, it could be shared among users and devices.<\/p>\n<p>The following libraries are used in this tutorial. Make sure to install them before moving to the code.<\/p>\n<ol>\n<li><a href=\"https:\/\/pandas.pydata.org\/docs\/getting_started\/install.html\">Pandas<\/a><\/li>\n<li><a href=\"https:\/\/numpy.org\/install\/\">Numpy<\/a><\/li>\n<li><a href=\"https:\/\/matplotlib.org\/stable\/users\/installing\/index.html\">Matplotlib<\/a><\/li>\n<li><a href=\"https:\/\/pypi.org\/project\/regex\/\">Regex<\/a><\/li>\n<li><a href=\"https:\/\/pypi.org\/project\/ipywidgets\/\">ipywidgets<\/a><\/li>\n<\/ol>\n<p>To install these packages using the command line, just type <code>pip install package-name<\/code> or <code>conda install package-name<\/code> if you are using Anaconda Navigator.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Moreover, if you are using GridDB, these additional libraries will be required:<\/p>\n<ol>\n<li><a href=\"https:\/\/github.com\/griddb\/c_client\">GridDB C-client<\/a><\/li>\n<li>SWIG (Simplified Wrapper and Interface Generator)<\/li>\n<li><a href=\"https:\/\/github.com\/griddb\/python_client\">GridDB Python Client<\/a><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>After installing the prerequisites, we go ahead and introduce today's dataset.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"2.-Introduction-to-the-Dataset\">2. Introduction to the Dataset<a class=\"anchor-link\" href=\"#2.-Introduction-to-the-Dataset\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>The motivation behind this socio-economic dataset is to be able to analyze country-specific data. But why is it important?<\/p>\n<p>Country-specific data can be proven useful to analyze statistics, successful approaches for policies, etc. This data has been made open-source on <a href=\"https:\/\/www.kaggle.com\/datasets\/sudalairajkumar\/undata-country-profiles\">Kaggle<\/a>. It contains information about Population, GDP Growth, Agricultural Sector, etc. The dataset has 66 rows each row representing a country and 96 columns denoting a specific metric.<\/p>\n<p>Now that we have a little background about our dataset, let's load it into our python environment. But before that, we need to import the necessary libraries!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h3 id=\"Please-Note:\">Please Note:<a class=\"anchor-link\" href=\"#Please-Note:\">\u00b6<\/a><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>We have made some changes to the column names in the original dataset by removing white spaces and special characters. The updated data can be downloaded from our repository.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"3.-Importing-Libraries\">3. Importing Libraries<a class=\"anchor-link\" href=\"#3.-Importing-Libraries\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[1]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">pandas<\/span><span class=\"w\"> <\/span><span class=\"k\">as<\/span><span class=\"w\"> <\/span><span class=\"nn\">pd<\/span>\n<span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">numpy<\/span><span class=\"w\"> <\/span><span class=\"k\">as<\/span><span class=\"w\"> <\/span><span class=\"nn\">np<\/span>\n<span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">matplotlib.pyplot<\/span><span class=\"w\"> <\/span><span class=\"k\">as<\/span><span class=\"w\"> <\/span><span class=\"nn\">plt<\/span>\n<span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">regex<\/span><span class=\"w\"> <\/span><span class=\"k\">as<\/span><span class=\"w\"> <\/span><span class=\"nn\">re<\/span>\n<span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">ipywidgets<\/span><span class=\"w\"> <\/span><span class=\"k\">as<\/span><span class=\"w\"> <\/span><span class=\"nn\">widgets<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>The cell will not return anything if executed successfully. In case of an error, kindly check the version of each package and see if it is compatible with your operating system.<\/p>\n<p>Great! We have loaded the libraries successfully. Let's import our dataset.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"4.-Loading-the-Dataset\">4. Loading the Dataset<a class=\"anchor-link\" href=\"#4.-Loading-the-Dataset\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h3 id=\"Using-Pandas\">Using Pandas<a class=\"anchor-link\" href=\"#Using-Pandas\">\u00b6<\/a><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[2]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">dataset<\/span> <span class=\"o\">=<\/span> <span class=\"n\">pd<\/span><span class=\"o\">.<\/span><span class=\"n\">read_csv<\/span><span class=\"p\">(<\/span><span class=\"s1\">'soci_econ_country_profiles.csv'<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">dataset<\/span><span class=\"o\">.<\/span><span class=\"n\">head<\/span><span class=\"p\">()<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[2]:<\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/html\" tabindex=\"0\">\n<div>\n<style scoped=\"\">\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n<\/style>\n<table border=\"1\" class=\"dataframe\">\n<thead>\n<tr style=\"text-align: right;\">\n<th><\/th>\n<th>country<\/th>\n<th>Region<\/th>\n<th>Surface area (km2)<\/th>\n<th>Population_in_thousands_2017<\/th>\n<th>Population density (per km2, 2017)<\/th>\n<th>Sex ratio (m per 100 f, 2017)<\/th>\n<th>GDP: Gross domestic product (million current US$)<\/th>\n<th>GDP growth rate (annual %, const. 2005 prices)<\/th>\n<th>GDP per capita (current US$)<\/th>\n<th>Economy_Agriculture<\/th>\n<th>...<\/th>\n<th>Inflation, consumer prices (annual %)<\/th>\n<th>Life expectancy at birth, female (years)<\/th>\n<th>Life expectancy at birth, male (years)<\/th>\n<th>Life expectancy at birth, total (years)<\/th>\n<th>Military expenditure (% of GDP)<\/th>\n<th>Population, female<\/th>\n<th>Population, male<\/th>\n<th>Tax revenue (% of GDP)<\/th>\n<th>Taxes on income, profits and capital gains (% of revenue)<\/th>\n<th>Urban population (% of total population)_y<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>0<\/th>\n<td>Argentina<\/td>\n<td>SouthAmerica<\/td>\n<td>2780400<\/td>\n<td>44271<\/td>\n<td>16.2<\/td>\n<td>95.9<\/td>\n<td>632343<\/td>\n<td>2.4<\/td>\n<td>14564.5<\/td>\n<td>6<\/td>\n<td>...<\/td>\n<td>NaN<\/td>\n<td>79.726<\/td>\n<td>72.924<\/td>\n<td>76.372000<\/td>\n<td>0.856138<\/td>\n<td>22572521<\/td>\n<td>21472290<\/td>\n<td>10.955501<\/td>\n<td>12.929913<\/td>\n<td>91.749<\/td>\n<\/tr>\n<tr>\n<th>1<\/th>\n<td>Australia<\/td>\n<td>Oceania<\/td>\n<td>7692060<\/td>\n<td>24451<\/td>\n<td>3.2<\/td>\n<td>99.3<\/td>\n<td>1230859<\/td>\n<td>2.4<\/td>\n<td>51352.2<\/td>\n<td>2.5<\/td>\n<td>...<\/td>\n<td>1.948647<\/td>\n<td>84.600<\/td>\n<td>80.500<\/td>\n<td>82.500000<\/td>\n<td>2.007966<\/td>\n<td>12349632<\/td>\n<td>12252228<\/td>\n<td>21.915859<\/td>\n<td>64.110306<\/td>\n<td>85.904<\/td>\n<\/tr>\n<tr>\n<th>2<\/th>\n<td>Austria<\/td>\n<td>WesternEurope<\/td>\n<td>83871<\/td>\n<td>8736<\/td>\n<td>106.0<\/td>\n<td>96.2<\/td>\n<td>376967<\/td>\n<td>1.0<\/td>\n<td>44117.7<\/td>\n<td>1.3<\/td>\n<td>...<\/td>\n<td>2.081269<\/td>\n<td>84.000<\/td>\n<td>79.400<\/td>\n<td>81.643902<\/td>\n<td>0.756179<\/td>\n<td>4478340<\/td>\n<td>4319226<\/td>\n<td>25.355237<\/td>\n<td>27.024073<\/td>\n<td>58.094<\/td>\n<\/tr>\n<tr>\n<th>3<\/th>\n<td>Belarus<\/td>\n<td>EasternEurope<\/td>\n<td>207600<\/td>\n<td>9468<\/td>\n<td>46.7<\/td>\n<td>87.0<\/td>\n<td>54609<\/td>\n<td>-3.9<\/td>\n<td>5750.8<\/td>\n<td>7.5<\/td>\n<td>...<\/td>\n<td>6.031837<\/td>\n<td>79.200<\/td>\n<td>69.300<\/td>\n<td>74.129268<\/td>\n<td>1.162417<\/td>\n<td>5077542<\/td>\n<td>4420722<\/td>\n<td>13.019006<\/td>\n<td>2.933101<\/td>\n<td>78.134<\/td>\n<\/tr>\n<tr>\n<th>4<\/th>\n<td>Belgium<\/td>\n<td>WesternEurope<\/td>\n<td>30528<\/td>\n<td>11429<\/td>\n<td>377.5<\/td>\n<td>97.3<\/td>\n<td>455107<\/td>\n<td>1.5<\/td>\n<td>40277.8<\/td>\n<td>0.7<\/td>\n<td>...<\/td>\n<td>2.125971<\/td>\n<td>83.900<\/td>\n<td>79.200<\/td>\n<td>81.492683<\/td>\n<td>0.910371<\/td>\n<td>5766141<\/td>\n<td>5609017<\/td>\n<td>23.399721<\/td>\n<td>33.727746<\/td>\n<td>97.961<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>5 rows \u00d7 95 columns<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>The <code>head<\/code> command displays the first five rows of the dataset. We can see there is an extra column <code>'Unnamed: 0'<\/code> which does not hold any significance, so let's go ahead and drop it.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"5.-Data-Preprocessing\">5. Data Preprocessing<a class=\"anchor-link\" href=\"#5.-Data-Preprocessing\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[3]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">dataset<\/span><span class=\"o\">.<\/span><span class=\"n\">shape<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[3]:<\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>(66, 95)<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>The <code>shape<\/code> command displays the dimension of the dataset. As mentioned before, this dataset has 66 instances and 95 attributes. However, for this tutorial, we will only be using 4 columns. Let's go ahead and create a new dataframe with only these columns.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[4]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">df<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dataset<\/span><span class=\"p\">[[<\/span><span class=\"s1\">'country'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'Economy_Agriculture'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'Region'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'Population_in_thousands_2017'<\/span><span class=\"p\">]]<\/span>\n<span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">head<\/span><span class=\"p\">()<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[4]:<\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/html\" tabindex=\"0\">\n<div>\n<style scoped=\"\">\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n<\/style>\n<table border=\"1\" class=\"dataframe\">\n<thead>\n<tr style=\"text-align: right;\">\n<th><\/th>\n<th>country<\/th>\n<th>Economy_Agriculture<\/th>\n<th>Region<\/th>\n<th>Population_in_thousands_2017<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>0<\/th>\n<td>Argentina<\/td>\n<td>6<\/td>\n<td>SouthAmerica<\/td>\n<td>44271<\/td>\n<\/tr>\n<tr>\n<th>1<\/th>\n<td>Australia<\/td>\n<td>2.5<\/td>\n<td>Oceania<\/td>\n<td>24451<\/td>\n<\/tr>\n<tr>\n<th>2<\/th>\n<td>Austria<\/td>\n<td>1.3<\/td>\n<td>WesternEurope<\/td>\n<td>8736<\/td>\n<\/tr>\n<tr>\n<th>3<\/th>\n<td>Belarus<\/td>\n<td>7.5<\/td>\n<td>EasternEurope<\/td>\n<td>9468<\/td>\n<\/tr>\n<tr>\n<th>4<\/th>\n<td>Belgium<\/td>\n<td>0.7<\/td>\n<td>WesternEurope<\/td>\n<td>11429<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Now that we have a limited number of columns, let's move onto the next step i.e. checking for missing values. <code>Null<\/code> or <code>NaN<\/code> values hinder with numerical operations. Therefore, it is important to check them before the actual analysis.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[5]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">isna<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">sum<\/span><span class=\"p\">()<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[5]:<\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>country                         0\nEconomy_Agriculture             0\nRegion                          0\nPopulation_in_thousands_2017    0\ndtype: int64<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Since, there are no null values, we can go ahead with our analysis.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>In addition to null values, we also need to remove any special characters such as <code>@, ~,<\/code> etc. from column values. We will make use of regular expressions for this task. This will also make it easy to convert any <code>object<\/code> datatype to a <code>numeric<\/code> datatype.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[6]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">df<\/span> <span class=\"o\">=<\/span> <span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">apply<\/span><span class=\"p\">(<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">x<\/span><span class=\"p\">:<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"n\">replace<\/span><span class=\"p\">(<\/span><span class=\"sa\">r<\/span><span class=\"s1\">'[~]\/^...$\/'<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">regex<\/span><span class=\"o\">=<\/span><span class=\"kc\">True<\/span><span class=\"p\">))<\/span>\n<span class=\"n\">df<\/span> <span class=\"o\">=<\/span> <span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">apply<\/span><span class=\"p\">(<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">x<\/span><span class=\"p\">:<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"n\">replace<\/span><span class=\"p\">(<\/span><span class=\"sa\">r<\/span><span class=\"s1\">'~0.0'<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"0\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">regex<\/span><span class=\"o\">=<\/span><span class=\"kc\">True<\/span><span class=\"p\">))<\/span>\n<span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">head<\/span><span class=\"p\">()<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[6]:<\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/html\" tabindex=\"0\">\n<div>\n<style scoped=\"\">\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n<\/style>\n<table border=\"1\" class=\"dataframe\">\n<thead>\n<tr style=\"text-align: right;\">\n<th><\/th>\n<th>country<\/th>\n<th>Economy_Agriculture<\/th>\n<th>Region<\/th>\n<th>Population_in_thousands_2017<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>0<\/th>\n<td>Argentina<\/td>\n<td>6<\/td>\n<td>SouthAmerica<\/td>\n<td>44271<\/td>\n<\/tr>\n<tr>\n<th>1<\/th>\n<td>Australia<\/td>\n<td>2.5<\/td>\n<td>Oceania<\/td>\n<td>24451<\/td>\n<\/tr>\n<tr>\n<th>2<\/th>\n<td>Austria<\/td>\n<td>1.3<\/td>\n<td>WesternEurope<\/td>\n<td>8736<\/td>\n<\/tr>\n<tr>\n<th>3<\/th>\n<td>Belarus<\/td>\n<td>7.5<\/td>\n<td>EasternEurope<\/td>\n<td>9468<\/td>\n<\/tr>\n<tr>\n<th>4<\/th>\n<td>Belgium<\/td>\n<td>0.7<\/td>\n<td>WesternEurope<\/td>\n<td>11429<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Now that we god rid of null values and special characters, let's have a look at the data types of each column. This, as well, will help us in numerical analysis and filtering, later on.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[7]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">dtypes<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[7]:<\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>country                         object\nEconomy_Agriculture             object\nRegion                          object\nPopulation_in_thousands_2017     int64\ndtype: object<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>The <code>Economy_Agriculture<\/code> column has datatype - <code>object<\/code>. Let us convert it to <code>float<\/code>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[8]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">df<\/span><span class=\"p\">[<\/span><span class=\"s1\">'Economy_Agriculture'<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">df<\/span><span class=\"p\">[<\/span><span class=\"s1\">'Economy_Agriculture'<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">astype<\/span><span class=\"p\">(<\/span><span class=\"nb\">float<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">df<\/span><span class=\"p\">[<\/span><span class=\"s1\">'Economy_Agriculture'<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">dtypes<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[8]:<\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>dtype('float64')<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Now that our data is processed, we can create a GridDB container and insert it using the python-client. But what is GridDB and why do we need it?<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"6.-What-is-GridDB?\">6. What is GridDB?<a class=\"anchor-link\" href=\"#6.-What-is-GridDB?\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p><a href=\"https:\/\/griddb.net\/\">GridDB<\/a> is a scalable, in-memory no-SQL database. It has a unique key-container model which is designed to handle both metadata and time series data. Moreover, GridDB makes use of an in-memory architecture in addition to parallel processing to provide efficient performance with minimum delays.<\/p>\n<p>But why do we need a database?<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h3 id=\"Why-do-we-need-it?\">Why do we need it?<a class=\"anchor-link\" href=\"#Why-do-we-need-it?\">\u00b6<\/a><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>We have all heard the term 'Big Data' but what are the challenges that come with it?<\/p>\n<p>When we have huge amounts of data, we not only face storage issues but also integrity issues. For instance, what if we want to change a row or an attribute, is the same copy available for all the users in an organization? Will they see the update when it's being done?<\/p>\n<p>If you are using a CSV file, then it could be chaotic to update and verify these changes among all users every time. Using a database management system tackles these issues. Additionally, with different kinds of access being given to the users, you can control who gets to manipulate what.<\/p>\n<p>The motivation behind GridDB is now clear. Let's see how can we insert the data into a GridDB container with the help of a python-client<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"7.-Data-Insertion-into-GridDB\">7. Data Insertion into GridDB<a class=\"anchor-link\" href=\"#7.-Data-Insertion-into-GridDB\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>With the help of GridDB's python-client, it is quite easy to interact with your data. In this section, we will first establish a connection to the node. Then, we will create a container to store the data.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h3 id=\"a.-Creating-a-connection\">a. Creating a connection<a class=\"anchor-link\" href=\"#a.-Creating-a-connection\">\u00b6<\/a><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[9]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">griddb_python<\/span><span class=\"w\"> <\/span><span class=\"k\">as<\/span><span class=\"w\"> <\/span><span class=\"nn\">griddb<\/span>\n\n<span class=\"n\">factory<\/span> <span class=\"o\">=<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">StoreFactory<\/span><span class=\"o\">.<\/span><span class=\"n\">get_instance<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">host<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"127.0.0.1:10001\"<\/span>\n<span class=\"n\">cluster<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"myCluster\"<\/span>\n<span class=\"n\">db_user<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"admin\"<\/span>\n<span class=\"n\">db_password<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"admin\"<\/span>\n\n<span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n    <span class=\"n\">gridstore<\/span> <span class=\"o\">=<\/span> <span class=\"n\">factory<\/span><span class=\"o\">.<\/span><span class=\"n\">get_store<\/span><span class=\"p\">(<\/span><span class=\"n\">notification_member<\/span><span class=\"o\">=<\/span><span class=\"n\">host<\/span><span class=\"p\">,<\/span> <span class=\"n\">cluster_name<\/span><span class=\"o\">=<\/span><span class=\"n\">cluster<\/span><span class=\"p\">,<\/span> <span class=\"n\">username<\/span><span class=\"o\">=<\/span><span class=\"n\">db_user<\/span><span class=\"p\">,<\/span> <span class=\"n\">password<\/span><span class=\"o\">=<\/span><span class=\"n\">db_password<\/span><span class=\"p\">)<\/span>\n    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"connection successful\"<\/span><span class=\"p\">)<\/span>\n    \n<span class=\"k\">except<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">GSException<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_error_stack_size<\/span><span class=\"p\">()):<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"[\"<\/span><span class=\"p\">,<\/span><span class=\"n\">i<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"]\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_error_code<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_location<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_message<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>connection successful\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>If you run this execute this code and it prints connection successful, then a connection has been made. However, if you encounter an error, please check your credentials and the host's address as well as the port number.<\/p>\n<p>More information on how to start a node and setup the host name can be found in the <a href=\"https:\/\/www.toshiba-sol.co.jp\/en\/pro\/griddb\/docs-en\/v4_3_2\/GridDB_QuickStartGuide.html\">Quick Start guide by GridDB<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>The code is not complete yet! We still need to create a container and define its schema.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h3 id=\"b.-Container-Creation\">b. Container Creation<a class=\"anchor-link\" href=\"#b.-Container-Creation\">\u00b6<\/a><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Within the <code>try<\/code> clause, we need to define a container. Thus, our final code will look like:<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[10]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n    <span class=\"n\">gridstore<\/span> <span class=\"o\">=<\/span> <span class=\"n\">factory<\/span><span class=\"o\">.<\/span><span class=\"n\">get_store<\/span><span class=\"p\">(<\/span><span class=\"n\">notification_member<\/span><span class=\"o\">=<\/span><span class=\"n\">host<\/span><span class=\"p\">,<\/span> <span class=\"n\">cluster_name<\/span><span class=\"o\">=<\/span><span class=\"n\">cluster<\/span><span class=\"p\">,<\/span> <span class=\"n\">username<\/span><span class=\"o\">=<\/span><span class=\"n\">db_user<\/span><span class=\"p\">,<\/span> <span class=\"n\">password<\/span><span class=\"o\">=<\/span><span class=\"n\">db_password<\/span><span class=\"p\">)<\/span>\n    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"connection successful\"<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">conInfo<\/span> <span class=\"o\">=<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">ContainerInfo<\/span><span class=\"p\">(<\/span><span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"socio_econ\"<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">column_info_list<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[[<\/span><span class=\"s2\">\"country\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">Type<\/span><span class=\"o\">.<\/span><span class=\"n\">STRING<\/span><span class=\"p\">],<\/span>\n                                       <span class=\"p\">[<\/span><span class=\"s2\">\"Economy_Agriculture\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">Type<\/span><span class=\"o\">.<\/span><span class=\"n\">FLOAT<\/span><span class=\"p\">],<\/span>\n                                       <span class=\"p\">[<\/span><span class=\"s2\">\"Region\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">Type<\/span><span class=\"o\">.<\/span><span class=\"n\">STRING<\/span><span class=\"p\">],<\/span>\n                                       <span class=\"p\">[<\/span><span class=\"s2\">\"Population_in_thousands_2017\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">Type<\/span><span class=\"o\">.<\/span><span class=\"n\">INTEGER<\/span><span class=\"p\">]],<\/span>\n                    <span class=\"nb\">type<\/span><span class=\"o\">=<\/span><span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">ContainerType<\/span><span class=\"o\">.<\/span><span class=\"n\">COLLECTION<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">conInfo<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">socio_econ_container<\/span> <span class=\"o\">=<\/span> <span class=\"n\">gridstore<\/span><span class=\"o\">.<\/span><span class=\"n\">put_container<\/span><span class=\"p\">(<\/span><span class=\"n\">conInfo<\/span><span class=\"p\">)<\/span>\n    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"container creation successful\"<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">socio_econ_container<\/span><span class=\"o\">.<\/span><span class=\"n\">put_rows<\/span><span class=\"p\">(<\/span><span class=\"n\">df<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"data insertion successful\"<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"k\">except<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">GSException<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_error_stack_size<\/span><span class=\"p\">()):<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"[\"<\/span><span class=\"p\">,<\/span><span class=\"n\">i<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"]\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_error_code<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_location<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_message<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>connection successful\n&lt;griddb_python.ContainerInfo; proxy of &lt;Swig Object of type 'std::shared_ptr&lt; griddb::ContainerInfo &gt; *' at 0x7f85695dc060&gt; &gt;\ncontainer creation successful\ndata insertion successful\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Here, we are creating a container name <code>socio_econ<\/code> which has the following columns:<\/p>\n<ul>\n<li>Country (Type: String)<\/li>\n<li>Economy_Agriculture (Type: Float)<\/li>\n<li>Region (Type: String)<\/li>\n<li>Population_in_thousands_2017 (Type: Integer)<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>If this executes successfully, the output will look like this:<\/p>\n<p><img decoding=\"async\" alt=\"Alternative text\" src=\"griddb1.png\"><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h3 id=\"c.-Few-things-to-note\">c. Few things to note<a class=\"anchor-link\" href=\"#c.-Few-things-to-note\">\u00b6<\/a><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>During the data insertion, I encountered a couple of errors. Here are some things to keep in mind to avoid this situation:<\/p>\n<ul>\n<li><p>The order of the schema is quite important and it should match with the columns of your dataframe.<\/p>\n<\/li>\n<li><p>Insertion could result in an <code>[1008:CM_LIMITS_EXCEEDED]<\/code> error. For me, it got resolved by removing the special characters and spaces from column names.<\/p>\n<\/li>\n<li><p>If your container type is <code>TIMESERIES<\/code>, then a <code>ROWKEY<\/code> must be defined. A <code>ROWKEY<\/code> is a primary key for your dataset. It is not need if the container type is <code>COLLECTION<\/code> which is the case for this dataset.<\/p>\n<\/li>\n<li><p>A <code>ROWKEY<\/code> is either a STRING, INTEGER, LONG or TIMESTAMP column. If you do not specify a ROWKEY column, then it takes the first column as the default ROWKEY. If your first column is not from those datatypes, then it would throw an <code>[140009:CC_UNSUPPORTED_KEY_TYPE]<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"8.-Reading-Data-from-GridDB\">8. Reading Data from GridDB<a class=\"anchor-link\" href=\"#8.-Reading-Data-from-GridDB\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>After inserting the data into our gridDB container, it's time to read it and load it into our python environment. This operation is quite simple as well.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[11]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">griddb_python<\/span><span class=\"w\"> <\/span><span class=\"k\">as<\/span><span class=\"w\"> <\/span><span class=\"nn\">griddb<\/span>\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"import successful\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"n\">factory<\/span> <span class=\"o\">=<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">StoreFactory<\/span><span class=\"o\">.<\/span><span class=\"n\">get_instance<\/span><span class=\"p\">()<\/span>\n\n<span class=\"n\">host<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"127.0.0.1:10001\"<\/span>\n<span class=\"n\">cluster<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"myCluster\"<\/span>\n<span class=\"n\">db_user<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"admin\"<\/span>\n<span class=\"n\">db_password<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"admin\"<\/span>\n\n\n<span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n        <span class=\"n\">gridstore<\/span> <span class=\"o\">=<\/span> <span class=\"n\">factory<\/span><span class=\"o\">.<\/span><span class=\"n\">get_store<\/span><span class=\"p\">(<\/span><span class=\"n\">notification_member<\/span><span class=\"o\">=<\/span><span class=\"n\">host<\/span><span class=\"p\">,<\/span> <span class=\"n\">cluster_name<\/span><span class=\"o\">=<\/span><span class=\"n\">cluster<\/span><span class=\"p\">,<\/span> <span class=\"n\">username<\/span><span class=\"o\">=<\/span><span class=\"n\">db_user<\/span><span class=\"p\">,<\/span> <span class=\"n\">password<\/span><span class=\"o\">=<\/span><span class=\"n\">db_password<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">cont<\/span> <span class=\"o\">=<\/span> <span class=\"n\">gridstore<\/span><span class=\"o\">.<\/span><span class=\"n\">get_container<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"socio_econ\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">cont<\/span> <span class=\"ow\">is<\/span> <span class=\"kc\">None<\/span><span class=\"p\">:<\/span>\n            <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"Does not exist\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"connection successful\"<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"n\">query<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cont<\/span><span class=\"o\">.<\/span><span class=\"n\">query<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"select *\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">rs<\/span> <span class=\"o\">=<\/span> <span class=\"n\">query<\/span><span class=\"o\">.<\/span><span class=\"n\">fetch<\/span><span class=\"p\">(<\/span><span class=\"kc\">False<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">df<\/span> <span class=\"o\">=<\/span> <span class=\"n\">rs<\/span><span class=\"o\">.<\/span><span class=\"n\">fetch_rows<\/span><span class=\"p\">()<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"nb\">type<\/span><span class=\"p\">(<\/span><span class=\"n\">df<\/span><span class=\"p\">))<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">head<\/span><span class=\"p\">())<\/span>\n\n<span class=\"k\">except<\/span> <span class=\"n\">griddb<\/span><span class=\"o\">.<\/span><span class=\"n\">GSException<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n    \n    <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_error_stack_size<\/span><span class=\"p\">()):<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"[\"<\/span><span class=\"p\">,<\/span><span class=\"n\">i<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"]\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_error_code<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_location<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"n\">get_message<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">))<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>import successful\nconnection successful\n&lt;class 'pandas.core.frame.DataFrame'&gt;\n     country  Economy_Agriculture         Region  Population_in_thousands_2017\n0  Argentina                  6.0   SouthAmerica                         44271\n1  Australia                  2.5        Oceania                         24451\n2    Austria                  1.3  WesternEurope                          8736\n3    Belarus                  7.5  EasternEurope                          9468\n4    Belgium                  0.7  WesternEurope                         11429\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>The output looks like as follows:<\/p>\n<p><img decoding=\"async\" alt=\"Alternative text\" src=\"griddb2.png\"><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>If you are new to GridDB, there's a <a href=\"https:\/\/www.youtube.com\/watch?v=GMURnoS9bK4\">YouTube tutorial<\/a> that covers the basic operations such as data insertion, container creation, etc.<\/p>\n<p>Our data is now ready to be used! It's time to move on to the next section - Data Filtering and Basic Data Visualization.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"9.-Data-Filtering-and-Basic-Data-Visualization\">9. Data Filtering and Basic Data Visualization<a class=\"anchor-link\" href=\"#9.-Data-Filtering-and-Basic-Data-Visualization\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>One of the first columns to notice is the <code>Population<\/code> column. How about we want to print the most or least populated countries on this list?<\/p>\n<p>This can be achieved via the <code>sort_value()<\/code> function. We will sort our dataset in descending order of population and get the 5 most populated countries.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[12]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">top_population<\/span> <span class=\"o\">=<\/span> <span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">sort_values<\/span><span class=\"p\">(<\/span><span class=\"n\">by<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"s1\">'Population_in_thousands_2017'<\/span><span class=\"p\">],<\/span> <span class=\"n\">ascending<\/span><span class=\"o\">=<\/span><span class=\"kc\">False<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">iloc<\/span><span class=\"p\">[:<\/span><span class=\"mi\">5<\/span><span class=\"p\">]<\/span>\n<span class=\"n\">top_population<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[12]:<\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/html\" tabindex=\"0\">\n<div>\n<style scoped=\"\">\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n<\/style>\n<table border=\"1\" class=\"dataframe\">\n<thead>\n<tr style=\"text-align: right;\">\n<th><\/th>\n<th>country<\/th>\n<th>Economy_Agriculture<\/th>\n<th>Region<\/th>\n<th>Population_in_thousands_2017<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>11<\/th>\n<td>China<\/td>\n<td>9.2<\/td>\n<td>EasternAsia<\/td>\n<td>1409517<\/td>\n<\/tr>\n<tr>\n<th>24<\/th>\n<td>India<\/td>\n<td>17.0<\/td>\n<td>SouthernAsia<\/td>\n<td>1339180<\/td>\n<\/tr>\n<tr>\n<th>63<\/th>\n<td>United States of America<\/td>\n<td>1.0<\/td>\n<td>NorthernAmerica<\/td>\n<td>324460<\/td>\n<\/tr>\n<tr>\n<th>25<\/th>\n<td>Indonesia<\/td>\n<td>14.0<\/td>\n<td>South-easternAsia<\/td>\n<td>263991<\/td>\n<\/tr>\n<tr>\n<th>6<\/th>\n<td>Brazil<\/td>\n<td>5.2<\/td>\n<td>SouthAmerica<\/td>\n<td>209288<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>As we can see, the <code>sort_value()<\/code> function here takes 2 arguments. The <code>ascending=False<\/code> column is optional and its default value is <code>True<\/code>. The <code>iloc<\/code> function helps us to retrieve the first 5 rows of the resulting dataframe.<\/p>\n<p>We can also plot the same information using a Bar Graph. This can be achieved by using the <code>plot()<\/code> function directly on our sorted dataframe.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[13]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">top_population<\/span><span class=\"o\">.<\/span><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">=<\/span> <span class=\"s1\">'country'<\/span><span class=\"p\">,<\/span> <span class=\"n\">y<\/span> <span class=\"o\">=<\/span><span class=\"s1\">'Population_in_thousands_2017'<\/span><span class=\"p\">,<\/span> <span class=\"n\">kind<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"barh\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">title<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"The 5 most populated countries in the world.\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">legend<\/span><span class=\"o\">=<\/span><span class=\"kc\">False<\/span><span class=\"p\">)<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[13]:<\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>&lt;AxesSubplot:title={'center':'The 5 most populated countries in the world.'}, ylabel='country'&gt;<\/pre>\n<\/div>\n<\/div>\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedImage jp-OutputArea-output\" tabindex=\"0\">\n<img decoding=\"async\" alt=\"No description has been provided for this image\" class=\"jp-needs-light-background\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAe4AAAEVCAYAAAAmQgaMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAhVklEQVR4nO3debglVXnv8e+PBmkVacVGaVqkRXFAEITWgAiicCOCgAOOaMAhaAan6EWc0egNGo3GKQaMqDggoiEoSTQOgAQRupVZnAAVUBlklEGG9\/5R68jmsM\/pfegzdHV\/P8+zn1O71qpVb9Ue3r1W1alKVSFJkvphrbkOQJIkjc7ELUlSj5i4JUnqERO3JEk9YuKWJKlHTNySJPWIiVtrvCSHJPncXMexpkmyJEklWXuW1ndRkt1mY13TKcm5SXZZVdtMskuSi6ejrZmyohiTfDrJu2czppVh4tZqL8n1A4\/bk9w48Hy\/aV7XIUluGbfOzaZzHXcjpl4mrEF9SA5TNWqyqKpHV9UJ07nulWmz\/dh62HTGo6kxcWu1V1XrjT2AXwF7Dcz7\/Ays8kuD66yqC2ZgHVrNzdZIxOpuddyPJm6pc48kn01yXRtGXDpWkGTjJF9JcnmSC5O8ejpWONaLTHJQksuS\/CbJM5LskeSnSX6f5M0D9ddN8qEkl7bHh5Ks28oWJvl6kqvbct9LslaSI4EHA19rvf+DJonjzUmuaD30\/QbKF7R9c3mSXyZ5a5K1WtkBSf43yUeTXJPk\/CS7Dix7p97+ZIclkrwkyY\/ba3BBkle0+fcG\/gvYeGAUY+O2fQcn+UWSK5McnWSDgfZe3OK9MslbVvBa3DPJB1r9a5KcnOSerWzv9p64OskJSR41sNydep+DveiB\/fr6gdf3Ja3sQGA\/4KC2PV8b2F9vTHIW8Ickaw\/uw8m2Ocn8JJ9r869OcnqSB06wvYNtHtLaGfr+H7fcSW3yzBb38wbK7rKdbf66Sd6f5FdJfpfkE2P7dkj7v0yyXZver+3fR7fnL0ty7ECbE30Wxvb7G5P8FjhiyHoem+SHbXu\/BMwfFs+qysQtdfYGjgLuCxwHfBS6L0rga8CZwGJgV+C1SZ46SVt7pUue5yb5qxWsdyO6L43FwNuBw4EXAdsBOwFvS\/KQVvctwPbANsDWwOOBt7ay1wMXAxsCDwTeDFRVvZg7jzK8b5I4FrY49gcOS\/KIVvYRYAGwGfAk4C+Alwws+2fAL9ry7wC+OphAp+Ay4OnA+q39DybZtqr+ADwNuHRgFONS4FXAM1pMGwNXAR8DSLIF8C\/Ai1vZ\/YEHTbLu99Pt8ycAGwAHAbcneTjwReC1dPv2P+l+BN1jxG3aiG7fLQZeBnwsyf2q6jDg88D72vbsNbDMC4A9gftW1a3j2ptwm+letwXAJm17XwncOGKcQ9\/\/41XVzm1y6xb3lybbzlZ2KPBwuvftw7jjvT7MicAubfpJwAXAzgPPT2zTk30WxuLZANgUOHBwBe21OxY4stX5MvDsCeJZNVWVDx9rzAO4CNht3LxDgG8NPN8CuLFN\/xnwq3H13wQcMUH7W9B9oc6jSwK\/AV4wQd1d6L5Y57Xn9wEK+LOBOsuBZ7TpXwB7DJQ9FbioTb8L+A\/gYaNs85A4bgXuPTDvaOBtbTv+CGwxUPYK4IQ2fQBwKZCB8tOAFw9bd9vXn2vTS9r2rj1BXMcCrxmI8eJx5T8Gdh14vgi4BVibLjEcNVB277Ydd9kPdB2YG+mS0fiytwFHj6t7CbBLe16D+xz4NPDuca\/v2gPllwHbj6877rV66USv3wq2+aXAKcBjpvI5YJL3\/wTLjt\/mCbcTCPAH4KEDZTsAF07Q9suA4wa29eVjryPwS2DbET4Lu7TXev64GC9u0ztz1\/fsKeNfi1X5YY9b6vx2YPoGYH66Y2Ob0g3RXj32oOvNDh2CrKrzqurSqrqtqk4B\/hnYd5L1XllVt7Xpsd7R7wbKbwTWa9Mb0315jfllmwfwj8DPgW+2YeaDJ1nnMFdV17Md3\/ZCYJ0h61088PySat9+Q+IaWZKnJTm1jVZcDezR1j+RTYF\/H3hdfgzcRvfabAz8eqxi27YrJ2hnId2oxy+GlN1pn1fV7a3dxUPqDnNl3bnXfAN3vJ4T+fUkZZNt85HAN4Cj2vDx+5KsM2KcE73\/RzXRdm4I3AtYPhDzf7f5w5wI7JRkEd2PxqOBHZMsoevRn9HqTfZZALi8qm6aYB0bM\/w92xsmbmlyv6brHdx34HGfqtpjxOWLrtcxHS6l++Ie8+A2j6q6rqpeX1Wb0Q17\/l3uONY8yi0A75fuWPL4tq+g69GNX+8lA88XJ8mQZaHrbd1roGyjYStvxye\/Qjdk\/cCqui\/dsPRYu8O24dfA08a9NvOr6hK6kY5NBtq\/F93w8TBXADcBDx1Sdqd93rZzE+7Y\/htG2b4JTPS6TPZ6TbjNVXVLVb2zqragG+15Ot1hjbl0Bd2Pz0cPxLuguhNF76Kqfk63T18FnFRV19L9qDgQOLn9cIJJPgtjTU0S028Y\/p7tDRO3NLnTgOvaiS73TDIvyZZJHjescpJ9ktwvnccDr6Ybwp4OXwTemmTDJAvphoM\/19b79CQPa19G19D1wsa+5H5Hd3x6Rd6Z5B5JdqL70v9yGw04GnhPkvsk2RT4u7H1Ng8AXp1knSTPAR5Fl3Sh6yE9v5UtZeLRh3sA6wKXA7cmeRrw5wPlvwPun2TBwLxPtLg2bftgwyT7tLJjgKcneWI7pvkuJvi+a8ngU8A\/pTvpbV6SHdqPiaOBPZPs2nqvrwduphtaHdu+F7Zldqc7DjuqUV+XQRNuc5InJ9kqyTzgWrofXLdP3NTdNnLcbd8eTne+wgNanItXcI7IicDfcsfx7BPGPYdJPgsj+D7doaGx9+yz6I6R94aJW5pES1xPpzsJ5kK6HsQn6Ybthnk+3ZD1dcBngfdW1WemKZx3A8uAs4CzgR+2eQCbA98Crqf7Yvp4VX23lf0D3Zfc1UneMEHbv6U70elSupOmXllV57eyV9H1nC8ATga+QJfoxvygrf8K4D3AvlU1Niz9Nrqe7FXAO9uyd1FV19H9yDm61X0h3UlSY+Xn031ZX9C2Y2O6wxDH0R0euA44le6cBKrqXOBv2vp+09qc7P\/A30C3T08Hfg+8F1irqn5Cd7LgR9r27UV3ot8f23KvafOupjtL\/NhJ1jHevwFbtO0ZdbkJt5mut38MXdL+MV2iO3IK8YzqEOAzLe7njlD\/jXSfiVOTXEv3Pn3EJPVPpDvf46QJnsPkn4VJtdfuWXTnZ\/weeB7w1bHyJA9Od8b8KtsLz52H+SWtadJdQetzVTXZWdcTLXsA8PKqeuI0hyVpAva4JUnqERO3JEk94lC5JEk9Yo9bkqQeWe0uvq5Vz8KFC2vJkiVzHYYk9cry5cuvqKq7XKzGxK0Zt2TJEpYtWzbXYUhSryQZekU3h8olSeoRE7ckST1i4pYkqUdM3JIk9YiJW5KkHjFxS5LUIyZuSZJ6xMQtSVKPmLglSeoRr5ymGXf2Jdew5ODj5zqMu+WiQ\/ec6xAk6U7scUuS1CMmbkmSesTELUlSj5i4JUnqERO3JEk9YuKWJKlHTNySJPWIiXs1luS2JGckOTPJD5M8YZra\/WSSLdr0RUkWTke7kqQV8wIsq7cbq2obgCRPBf4BeNJghSRrV9WtU2m0ql4+bRFKkqbEHveaY33gKoAkuyT5XpLjgPPavGOTLE9ybpID27y9W4\/9jCQ\/SXJhm39CkqVztSGStCazx716u2eSM4D5wCLgKQNl2wJbVtWF7flLq+r3Se4JnJ7kK1V1HHAcQJKjgRNHXXFL\/gcCzFt\/w5XeEElSxx736u3Gqtqmqh4J7A58Nkla2WkDSRvg1UnOBE4FNgE2HytIclBr62OjrriqDquqpVW1dN69Fqz8lkiSAHvca4yq+n47iWys+\/uHsbIkuwC7ATtU1Q1JTqDrpZNkN+A5wM6zGa8kaTgT9xoiySOBecCVQ4oXAFe1pP1IYPu2zKbAx4CnVtWNsxasJGlCJu7V29gxboAA+1fVbXeMlv\/JfwOvTPJj4Cd0w+UABwD3B45ty1xaVXvMdNCSpImZuFdjVTVvgvknACcMPL8ZeNqQqicA7xyy\/C4D00tWKkhJ0pR4cpokST1i4pYkqUdM3JIk9YiJW5KkHjFxS5LUI55Vrhm31eIFLDt0z7kOQ5JWC\/a4JUnqERO3JEk9YuKWJKlHTNySJPWIiVuSpB4xcUuS1CMmbkmSesTELUlSj5i4JUnqERO3JEk9YuKWJKlHTNySJPWIiVuSpB4xcUuS1CMmbkmSesTELUlSj5i4JUnqERO3JEk9YuKWJKlHTNySJPWIiVuSpB5Ze64D0Orv7EuuYcnBx891GLPmokP3nOsQJK3G7HFLktQjJm5JknrExC1JUo+YuCVJ6hETtyRJPWLiliSpR0zcq5Ak10+x\/i5Jvj5T8Yxb17uS7DYb65IkTcz\/49ZIqurtcx2DJMke9yqp9aRPSHJMkvOTfD5JWtnubd4PgWcNLLNBkmOTnJXk1CSPafMPSfKp1t4FSV49sMyLkpyW5Iwk\/5pkXnt8Osk5Sc5O8rpW99NJ9m3Tb09yeqtz2FhskqSZZ+JedT0WeC2wBbAZsGOS+cDhwF7AdsBGA\/XfCfyoqh4DvBn47EDZI4GnAo8H3pFknSSPAp4H7FhV2wC3AfsB2wCLq2rLqtoKOGJIbB+tqsdV1ZbAPYGnT8sWS5JWyMS96jqtqi6uqtuBM4AldAn4wqr6WVUV8LmB+k8EjgSoqu8A90+yfis7vqpurqorgMuABwK70iX\/05Oc0Z5vBlwAbJbkI0l2B64dEtuTk\/wgydnAU4BHj6+Q5MAky5Isu+2Ga1ZqR0iS7uAx7lXXzQPTt7Fyr9WwtgJ8pqreNL5ykq3peuivBJ4LvHSgbD7wcWBpVf06ySHA\/PFtVNVhwGEA6y7avFYidknSAHvc\/XI+sCTJQ9vzFwyUfY9uqJskuwBXVNWw3vKYbwP7JnlAW2aDJJsmWQisVVVfAd4KbDtuubEkfUWS9YB9V2J7JElTZI+7R6rqpiQHAscnuYEuWd+nFR8CfCrJWcANwP4raOu8JG8FvplkLeAW4G+AG4Ej2jyAN41b7uokhwPnAL8FTp+WjZMkjSTdoVJp5qy7aPNatP+H5jqMWeNtPSVNhyTLq2rp+PkOlUuS1CMmbkmSesTELUlSj5i4JUnqERO3JEk94r+DacZttXgByzzTWpKmhT1uSZJ6xMQtSVKPmLglSeoRE7ckST1i4pYkqUdM3JIk9YiJW5KkHjFxS5LUIyZuSZJ6xMQtSVKPmLglSeoRE7ckST1i4pYkqUdM3JIk9YiJW5KkHjFxS5LUIyMl7iRfTbJnEhO9JElzaNRE\/HHghcDPkhya5BEzGJMkSZrASIm7qr5VVfsB2wIXAd9KckqSlyRZZyYDlCRJdxh56DvJ\/YEDgJcDPwL+mS6R\/8+MRCZJku5i7VEqJfl34BHAkcBeVfWbVvSlJMtmKjhJknRnK0zc7YS05VX1zGHlVbV02qPSauXsS65hycHHz3UYq7SLDt1zrkOQ1BMrHCqvqtuBZ89CLJIkaQVGPcb97STPTpIZjUaSJE1q1MT9CuDLwM1Jrk1yXZJrZzAuSZI0xEgnp1XVfWY6EEmStGKjXjnt26PMkyRJM2vSHneS+cC9gIVJ7geMHeNeH1g8w7FJkqRxVjRU\/grgtcDGwHLuSNzXAh+dubAkSdIwkw6VV9U\/V9VDgDdU1WZV9ZD22LqqJkzcSZYkOWfcvEOSvGGy9SVZmuTDbXqXJE+YwraMtXFRkoVD5r80ydlJzkpyTpJ92vwDkmw8Qrsj1VsZSb7Y4nvdBOVnJDlqhmP4ZJItZnIdkqS7b9ST0z7SkuiSwWWq6rPTGUxVLQPGrsS2C3A9cMrKtpvkQcBbgG2r6pok6wEbtuIDgHOAS1fQzKj17m6MGwGPq6qHTVD+KGAesFOSe1fVH2YghnlV9fLpbleSNH1GPTntSOD9wBOBx7XH3b5iWpITkrw3yWlJfppkpzZ\/lyRfT7IEeCXwutbL3CnJhkm+kuT09tixLXP\/JN9Mcm6ST3LHcP6gBwDX0f0QoKqur6oLk+zbtuPzbT33TPL21v45SQ5LZ1i97ZKcmGR5km8kWdTieXWS81rP+S694yTzkxzRev8\/SvLkVvRNYPHY9g7ZhhfQXXL2m8A+4\/blB5MsS\/LjJI9rt2H9WZJ3D9R7UdvfZyT51yTz2vzrk3wgyZnADq29pa1s9yQ\/THLm2MmISR6f5Pst9lPineIkaVaN1OOmS1pbVFVN57qr6vFJ9gDeAew2VlBVFyX5BHB9Vb0fIMkXgA9W1clJHgx8A3hUW\/bkqnpXkj2Blw1Z15nA74ALWwL6alV9raqOSfK3dIcClrX1fLSq3tWmjwSePr5eujuifQTYp6ouT\/I84D3AS4GDgYdU1c1J7jsklr\/pNrG2SvJI4JtJHg7sDXy9qraZYH89D\/g\/wCOBVwFfGCj7Y1UtTfIa4D+A7YDfA79I8kG6Hy7PA3asqluSfBzYD\/gscG\/gB1X1+rbNtL8bAocDO7cfORu0dZ0P7FRVtybZDfh\/DLmyXpIDgQMB5q2\/4fhiSdLdNGriPgfYCPjNiio2EyX4wflfbX+X0w3Br8huwBa54+Jt67ch752BZwFU1fFJrrrLSqtuS7I73UjBrsAHk2xXVYcMWc+TkxxEdzb9BsC5wNfG1XkEsCXwPy2eedyxb86i65kfCxw7pP0n0iV9qur8JL8EHk53wt9QrQd8RVX9KsklwKeSbFBVv29Vjmt\/zwbOHbsJTJILgE3aOrcDTm\/x3hO4rC1zG\/CVIavdHjipqi5ssY6tawHwmSSb072eQ2\/rWlWHAYcBrLto8+n8wSdJa7RRE\/dC4LwkpwE3j82sqr0nqH8lcL9x8zYALhx4PtbObSPGsRawfVXdNDgzI16FtY0WnAacluR\/gCOAQ8a1NR\/4OLC0qn6d5BBg\/pDmQpcgdxhStifdj4m9gLck2aqqbh0pyIm9AHhkkova8\/XpermHt+dj+\/L2gemx52u3eD9TVW8a0vZNVXXbFGL5e+C7VfXMdkjjhCksK0laSaNe8vQQ4Bl0w6IfGHgMVVXXA79J8hSANsy6O3DyFGK7Dhi8Yts36YaIaW1u0yZPAl7Y5j2Nu\/5gIMnGSbYdmLUN8Msh6xlL0le03vy+E8TzE2DDJDu09tdJ8uh0d1LbpKq+C7yRrne63rhwvkc3TE0bIn9wa2+o1uZzga2qaklVLaE7xv2CiZYZ4tvAvkke0NrcIMmmK1jmVGDnJA8ZW6bNXwBc0qYPmEIMkqRpMOpZ5Sfejbb\/AvhYkn9qz99ZVb+YwvJfA45J929brwJe3do7iy7uk+hOYHsn8MUk59Kdgf6rIW2tA7w\/3b9z3QRc3pYF+DTwiSQ3AjvQ9WLPAX4LnD7Qxvh6+wIfTrKgxfMh4KfA59q8AB+uqqvHxfJx4F+SnA3cChzQjodPtB92Ai6pqsGz2U+iO2ywaKKFBlXVeUneSnc8fS3gFrpj7b+cZJnL23Hqr7ZlLqM7xv4+uqHytwLeq1OSZllGOd8syXXccXz6HnSJ8A9Vtf4MxqbVxLqLNq9F+39orsNYpXk\/bknjJVleVXf5D64p32QkXddwH7qTlyRJ0iwa9Rj3n1TnWOCp0x+OJEmazEg97iTPGni6Ft3\/dd80QXVJkjRDRv13sL0Gpm8FLmLg6l2SJGl2jHqM+yUzHYgkSVqxUYfKH0R3ta8d26zvAa+pqotnKjCtPrZavIBlnjUtSdNi1JPTjqC7rObG7fG1Nk+SJM2iURP3hlV1RFXd2h6f5o7bYkqSpFkyauK+st0Wcl57vIjueuSSJGkWjZq4X0p3vezf0t0Fa1+8TrUkSbNu1H8Hexewf1VdBX+64cT76RK6JEmaJaP2uB8zlrThT\/dmfuzMhCRJkiYyauJeK8mfbpfZetyj9tYlSdI0GTX5fgD4fpIvt+fPAd4zMyFJkqSJjHrltM8mWQY8pc16VlWdN3NhSZKkYUYe7m6J2mQtSdIcmvJtPSVJ0twxcUuS1CMmbkmSesTELUlSj5i4JUnqERO3JEk9YuKWJKlHTNySJPWIiVuSpB4xcUuS1CMmbkmSesRbc2rGnX3JNSw5+Pi5DkOSpuSiQ\/ec6xCGssctSVKPmLglSeoRE7ckST1i4pYkqUdM3JIk9YiJW5KkHjFxryGSXD\/F+rsk+Xqb3jvJwTMTmSRpKvw\/bq1QVR0HHDfXcUiS7HGvcVpP+oQkxyQ5P8nnk6SV7d7m\/RB41sAyByT5aJveK8kPkvwoybeSPHCONkWS1kgm7jXTY4HXAlsAmwE7JpkPHA7sBWwHbDTBsicD21fVY4GjgINmPFpJ0p84VL5mOq2qLgZIcgawBLgeuLCqftbmfw44cMiyDwK+lGQRcA\/gwmErSHLg2PLz1t9wmsOXpDWXPe41080D07cxtR9wHwE+WlVbAa8A5g+rVFWHVdXSqlo6714L7n6kkqQ7MXFrzPnAkiQPbc9fMEG9BcAlbXr\/GY9KknQnJm4BUFU30Q1tH99OTrtsgqqHAF9Oshy4YpbCkyQ1qaq5jkGruXUXbV6L9v\/QXIchSVMy17f1TLK8qpaOn2+PW5KkHjFxS5LUIyZuSZJ6xMQtSVKPmLglSeoRr5ymGbfV4gUsm+OzMyVpdWGPW5KkHjFxS5LUIyZuSZJ6xMQtSVKPmLglSeoRE7ckST1i4pYkqUdM3JIk9YiJW5KkHjFxS5LUIyZuSZJ6xMQtSVKPmLglSeoRE7ckST1i4pYkqUdM3JIk9YiJW5KkHjFxS5LUIyZuSZJ6xMQtSVKPmLglSeqRtec6AK3+zr7kGpYcfPxchyFJs+qiQ\/eckXbtcUuS1CMmbkmSesTELUlSj5i4JUnqERO3JEk9YuKWJKlHTNySJPWIiXs1lmSjJEcl+UWS5Un+M8mBSb4+Qf1PJtlituOUJI3OC7CsppIE+HfgM1X1\/DZva2DviZapqpfPUniSpLvJHvfq68nALVX1ibEZVXUm8D1gvSTHJDk\/yedbkifJCUmWtunrk7wnyZlJTk3ywDZ\/ryQ\/SPKjJN8amy9Jmh0m7tXXlsDyCcoeC7wW2ALYDNhxSJ17A6dW1dbAScBftvknA9tX1WOBo4CDhq2gDckvS7LsthuuudsbIUm6MxP3mum0qrq4qm4HzgCWDKnzR2DsWPjygToPAr6R5Gzg\/wKPHraCqjqsqpZW1dJ591owjaFL0prNxL36OhfYboKymwemb2P4uQ63VFUNqfMR4KNVtRXwCmD+NMQqSRqRiXv19R1g3SQHjs1I8hhgp5VsdwFwSZvefyXbkiRNkYl7NdV6y88Edmv\/DnYu8A\/Ab1ey6UOALydZDlyxkm1JkqYod4yGSjNj3UWb16L9PzTXYUjSrFrZ+3EnWV5VS8fPt8ctSVKPmLglSeoRE7ckST1i4pYkqUdM3JIk9Yg3GdGM22rxApat5NmVkqSOPW5JknrExC1JUo+YuCVJ6hETtyRJPWLiliSpR0zckiT1iIlbkqQeMXFLktQjJm5JknrExC1JUo+kquY6Bq3mklwH\/GSu45iihcAVcx3EFPUxZuhn3MY8O\/oYM0xf3JtW1YbjZ3qtcs2Gn1TV0rkOYiqSLDPm2dHHuI15dvQxZpj5uB0qlySpR0zckiT1iIlbs+GwuQ7gbjDm2dPHuI15dvQxZpjhuD05TZKkHrHHLUlSj5i4JUnqERO3pk2S3ZP8JMnPkxw8pHzdJF9q5T9IsmQOwhwf04pi\/rsk5yU5K8m3k2w6F3GOi2nSmAfqPTtJJZnzf6cZJeYkz237+twkX5jtGIcZ4f3x4CTfTfKj9h7ZYy7iHIjnU0kuS3LOBOVJ8uG2PWcl2Xa2YxxmhLj3a\/GeneSUJFvPdoxDYpo05oF6j0tya5J9p23lVeXDx0o\/gHnAL4DNgHsAZwJbjKvz18An2vTzgS\/1IOYnA\/dq03\/Vh5hbvfsAJwGnAktX9ZiBzYEfAfdrzx8wlzFPIe7DgL9q01sAF81xzDsD2wLnTFC+B\/BfQIDtgR\/M9X4eMe4nDLw3nrYqxL2imAfeQ98B\/hPYd7rWbY9b0+XxwM+r6oKq+iNwFLDPuDr7AJ9p08cAuybJLMY43gpjrqrvVtUN7empwINmOcbxRtnPAH8PvBe4aTaDm8AoMf8l8LGqugqgqi6b5RiHGSXuAtZv0wuAS2cxvruoqpOA309SZR\/gs9U5FbhvkkWzE93EVhR3VZ0y9t5g1fgcjrKvAV4FfAWY1veziVvTZTHw64HnF7d5Q+tU1a3ANcD9ZyW64UaJedDL6Horc2mFMbfhz02q6vjZDGwSo+znhwMPT\/K\/SU5NsvusRTexUeI+BHhRkovpelWvmp3Q7rapvudXRavC53CFkiwGngn8y3S37SVPpREkeRGwFHjSXMcymSRrAf8EHDDHoUzV2nTD5bvQ9aZOSrJVVV09l0GN4AXAp6vqA0l2AI5MsmVV3T7Xga2OkjyZLnE\/ca5jGcGHgDdW1e3TPbBo4tZ0uQTYZOD5g9q8YXUuTrI23dDilbMT3lCjxEyS3YC3AE+qqptnKbaJrCjm+wBbAie0L4uNgOOS7F1Vy2YtyjsbZT9fTHfc8hbgwiQ\/pUvkp89OiEONEvfLgN0Bqur7SebT3WBiVRjqH2ak9\/yqKMljgE8CT6uqufzeGNVS4Kj2OVwI7JHk1qo6dmUbdqhc0+V0YPMkD0lyD7qTz44bV+c4YP82vS\/wnWpncMyRFcac5LHAvwJ7ryLHXSeNuaquqaqFVbWkqpbQHQ+cy6QNo703jqXrbZNkId3Q+QWzGOMwo8T9K2BXgCSPAuYDl89qlFNzHPAX7ezy7YFrquo3cx3UiiR5MPBV4MVV9dO5jmcUVfWQgc\/hMcBfT0fSBnvcmiZVdWuSvwW+QXcm5aeq6twk7wKWVdVxwL\/RDSX+nO6kjufPXcQjx\/yPwHrAl9sv519V1d6reMyrlBFj\/gbw50nOA24D\/u9c96pGjPv1wOFJXkd3otoBc\/ljNMkX6X4ALWzH3d8BrANQVZ+gOw6\/B\/Bz4AbgJXMT6Z2NEPfb6c6H+Xj7HN5ac3zXsBFinrl1z22HR5IkTYVD5ZIk9YiJW5KkHjFxS5LUIyZuSZJ6xMQtSdI0GvUGJAP1p3SDHc8qlyRpGiXZGbie7rrwW66g7ubA0cBTquqqJA9Y0TUj7HFLkjSNht2AJMlDk\/x3kuVJvpfkka1oyjfYMXFLkjTzDgNeVVXbAW8APt7mT\/kGO145TZKkGZRkPbp7io9dgRFg3fZ3yjfYMXFLkjSz1gKurqpthpRN+QY7DpVLkjSDqupauqT8HIB2k5etW\/GxTPEGOyZuSZKmUbsByfeBRyS5OMnLgP2AlyU5EzgX2KdV\/wZwZbvBzncZ4QY7\/juYJEk9Yo9bkqQeMXFLktQjJm5JknrExC1JUo+YuCVJ6hETtyRJPWLiliSpR\/4\/nCcjN3KvTYMAAAAASUVORK5CYII=\">\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>The X-axis represents the <code>population<\/code> parameter whereas the Y-axis represents the country name. You can do much more with <a href=\"https:\/\/pandas.pydata.org\/docs\/reference\/api\/pandas.DataFrame.plot.html\">Dataframe.plot()<\/a> such as setting the title, legend, etc.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Great! Now you know how to sort our dataset using any column. But what if we want to calculate any statistic based on this data? For instance, mean population or total population for a region?<\/p>\n<p>We can do so by using the <code>groupby<\/code> clause in Pandas. But before that, let us look at how many different regions are there in our dataset.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[14]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">df<\/span><span class=\"p\">[<\/span><span class=\"s1\">'Region'<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">unique<\/span><span class=\"p\">())<\/span>\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">df<\/span><span class=\"p\">[<\/span><span class=\"s1\">'Region'<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">unique<\/span><span class=\"p\">()))<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>['SouthAmerica' 'Oceania' 'WesternEurope' 'EasternEurope' 'SouthernEurope'\n 'NorthernAmerica' 'EasternAsia' 'WesternAsia' 'NorthernEurope'\n 'NorthernAfrica' 'SouthernAsia' 'South-easternAsia' 'CentralAmerica'\n 'SouthernAfrica']\n14\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>So, there are 13 regions and each country is a part of one region. We can group our data using these regions and calculate statistical values for each. For this example, let us calculate the mean value of <code>Economy: Agriculture (% of GVA)<\/code> using the <code>agg()<\/code> function.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[15]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">agriculture_share<\/span> <span class=\"o\">=<\/span> <span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">groupby<\/span><span class=\"p\">(<\/span><span class=\"s1\">'Region'<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">agg<\/span><span class=\"p\">({<\/span><span class=\"s1\">'Economy_Agriculture'<\/span><span class=\"p\">:<\/span><span class=\"s1\">'mean'<\/span><span class=\"p\">})<\/span>\n<span class=\"n\">agriculture_share<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child jp-OutputArea-executeResult\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[15]:<\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/html\" tabindex=\"0\">\n<div>\n<style scoped=\"\">\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n<\/style>\n<table border=\"1\" class=\"dataframe\">\n<thead>\n<tr style=\"text-align: right;\">\n<th><\/th>\n<th>Economy_Agriculture<\/th>\n<\/tr>\n<tr>\n<th>Region<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>CentralAmerica<\/th>\n<td>3.600000<\/td>\n<\/tr>\n<tr>\n<th>EasternAsia<\/th>\n<td>3.200000<\/td>\n<\/tr>\n<tr>\n<th>EasternEurope<\/th>\n<td>5.444444<\/td>\n<\/tr>\n<tr>\n<th>NorthernAfrica<\/th>\n<td>11.200000<\/td>\n<\/tr>\n<tr>\n<th>NorthernAmerica<\/th>\n<td>1.400000<\/td>\n<\/tr>\n<tr>\n<th>NorthernEurope<\/th>\n<td>1.937500<\/td>\n<\/tr>\n<tr>\n<th>Oceania<\/th>\n<td>4.500000<\/td>\n<\/tr>\n<tr>\n<th>South-easternAsia<\/th>\n<td>10.183333<\/td>\n<\/tr>\n<tr>\n<th>SouthAmerica<\/th>\n<td>5.440000<\/td>\n<\/tr>\n<tr>\n<th>SouthernAfrica<\/th>\n<td>2.400000<\/td>\n<\/tr>\n<tr>\n<th>SouthernAsia<\/th>\n<td>14.950000<\/td>\n<\/tr>\n<tr>\n<th>SouthernEurope<\/th>\n<td>5.022222<\/td>\n<\/tr>\n<tr>\n<th>WesternAsia<\/th>\n<td>2.825000<\/td>\n<\/tr>\n<tr>\n<th>WesternEurope<\/th>\n<td>1.133333<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Note that the same could be achieved by <code>dataset_filter.groupby('Region')['Economy: Agriculture (% of GVA)'].mean()<\/code>. But the <a href=\"https:\/\/pandas.pydata.org\/pandas-docs\/stable\/reference\/api\/pandas.DataFrame.aggregate.html\">agg() function<\/a> allows us to calculate more than one statistic at once for one or more columns.<\/p>\n<p>Let's go ahead and plot this as well.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[16]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">fig<\/span><span class=\"p\">,<\/span> <span class=\"n\">ax<\/span> <span class=\"o\">=<\/span> <span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">subplots<\/span><span class=\"p\">(<\/span><span class=\"n\">figsize<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">,<\/span><span class=\"mi\">10<\/span><span class=\"p\">))<\/span>\n<span class=\"n\">ax<\/span><span class=\"o\">.<\/span><span class=\"n\">pie<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">=<\/span><span class=\"n\">agriculture_share<\/span><span class=\"p\">[<\/span><span class=\"s1\">'Economy_Agriculture'<\/span><span class=\"p\">],<\/span> <span class=\"n\">labels<\/span><span class=\"o\">=<\/span><span class=\"n\">agriculture_share<\/span><span class=\"p\">[<\/span><span class=\"s1\">'Economy_Agriculture'<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">index<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">show<\/span><span class=\"p\">()<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedImage jp-OutputArea-output\" tabindex=\"0\">\n<img decoding=\"async\" alt=\"No description has been provided for this image\" class=\"\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAApMAAAIuCAYAAADjQoNWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAACzzUlEQVR4nOzdd3hU1\/E38O\/cbeoNBAgECJBAAgSid5B7bEgcV+I4MbEdO05+sZ3EcULeOMmm2CZxcI1bcMO99xKXYIToVSBAdAQIhHov2+68f9wllmUkrVa7e7fM53n0oN2995wRIGn2lDnEzBBCCCGEEMIbit4BCCGEEEKI0CXJpBBCCCGE8Jokk0IIIYQQwmuSTAohhBBCCK9JMimEEEIIIbwmyaQQQgghhPCaJJNCCCGEEMJrkkwKIYQQQgivSTIphBBCCCG8JsmkEEIIIYTwmiSTQgghhBDCa5JMCiGEEEIIr0kyKYQQQgghvCbJpBBCCCGE8Jokk0IIIYQQwmuSTAohhBBCCK9JMimEEEIIIbwmyaQQQgghhPCaJJNCCCGEEMJrkkwKIYQQQgivSTIphBBCCCG8JsmkEEIIIYTwmiSTQgghhBDCa5JMCiGEEEIIr0kyKYQQQgghvCbJpBBCCCGE8Jokk0IIIYQQwmuSTAohhBBCCK9JMimEEEIIIbwmyaQQQgghhPCaJJNCCCGEEMJrkkwKIYQQQgivSTIphBBCCCG8JsmkEEIIIYTwmiSTQggRIETERLS8w+NfE5G1l23kE9HsDo+fI6IrfRhm5\/6MRFRFRMs6PX8fEe0hovvOcs93iGipv2ISQgQXSSaFECJwbAAuJ6L+3txMREYA+QBm93Cpp+0REfX0e+ACAAcAXEVE1OH5mwFMYOY7O8fIzO8z89eSTyFE+JJkUgghAscJ4N8Aftn5BSLKIKJVRLSLiP5LRMPczz9HRE8Q0SYArwO4BcAviaiIiOa5b59PROuJ6EjHUUoiupOItrjb\/HOHfvYT0fMAdgOYR0QlRLTCPdL4GRFFdwjtGgAPATgOYJa7jfcBxAHYRkSLO8X4DyL6ERH9y33tQCJ6h4h2uj9mu59\/l4i2ufu82Wd\/w0KIgJNkUgghAutRANcSUWKn5x8BsJKZJwB4CcDDHV5LBzCbmS8H8ASAB5g5j5kL3a+nAZgLYBGAZQBARBcCyAIwHUAegClENN99fRaAx5h5HIBj7sePuh\/XA7jC3UYUgPMBfADgFWiJJZj5OwDa3DG81inGX3X6uh4GUMDMEwFMBrDH\/fwNzDwFwFQAtxFRP0\/+8oQQwUeSSSGECCBmbgTwPIDbOr00C8DL7s9fgJYcnvEGM7u6afZdZlaZeS+Age7nLnR\/7ACwHUA2tKQRAI4x88YO9x9l5iL359sAZLg\/XwTgS2ZuA\/AWgO8SkaGLGLqK8VwAjwMAM7uYucH9\/G1EtBPARgBDO8QmhAgxRr0DEEKICPQgtATvWQ+vb+nhdVuHz6nDn\/cy85MdLySijLO01\/F+F4Az09zXAJhLRKXux\/2gJYefexFjxxjyoY14zmLmViJaDSDK0\/uFEMFFRiaFECLAmLkW2vrHGzs8vR7A99yfXwugsPN9bk0A4j3o5lMANxBRHAAQ0RAiGuBpjESUAGAegGHMnMHMGQD+D+6p7l74L4Cfuts0uKf3EwHUuRPJbAAze9mmECKISDIphBD6WA6g467uWwFcT0S7APwQwO1d3PcBgMs6bcD5Bmb+DNq0+QYiKgbwJjxLQs+4DMAqZu44avkegG8TkaUX7dwO4Bx3DNsAjAXwHwBGIiqBtsZzYzf3CyGCHDGz3jEIIYQQQogQJSOTQgghhBDCa5JMCiGEEEIIr0kyKYQQQgghvCbJpBBCCCGE8Jokk0IIIYQQwmuSTAohhBBCCK9JMimEEEIIIbwmyaQQQgghhPCaJJNCCCGEEMJrkkwKIYQQQgivSTIphBBCCCG8JsmkEEIIIYTwmiSTQgghhBDCa5JMCiGEEEIIr0kyKYQQQgghvCbJpBBCCCGE8Jokk0IIIYQQwmtGvQMQQohgUZKdYwDQD0B\/ALEAzABMnT66e04F0A7A1unPNgDN7o+mMx85+0qcAfrShBDCb4iZ9Y5BCCH8piQ7Jw3AYACp7o\/+Z\/n8zJ\/JACiA4dkA1AAoB3DK\/dHx8zOPK3P2lagBjEsIITwmyaQQIqSVZOcQgCEAMt0fWR0+HwVthDHUOQFU4Kvk8iiAEgB7AezN2VdSo2NsQogIJ8mk8AgRMYD7mfkO9+NfA4hjZmsv2sgHYGfm9e7HzwH4kJnf9HW87vaN0H7xPs3MS\/3Rh7ufjwF8n5nr\/dWHAEqyc2IA5AEYj68njCMBxOgXWVCogpZcnkkwS6AlmSd1jUoIERFkzaTwlA3A5UR0LzNX9\/Zmd2KXD23N2Pq+BkNEBO3NUHdTfxcAOADgKiL6Hfv4nVOHGC7xZbsCKMnOiYKWOE51f0wBkAPAoGNYwezMtP38jk+WZOc0AtgHLcHcDmADgCJZqymE8CUZmRQeIaJmAHdDG438fceRSSLKAPAMtHVnVQCuZ+bj7pHHdgCTAJwEMBuAy33NrQBuBNAILVkYBOA3Z0YpiehOAFcDsAB4h5n\/5O7nUwCboCUXPwPwBIC17rZPAriUmdvcbTwP4EMAPwXw+w4joqUAXgFwMbTpw5sB3AttlOs+Zn6iFzFcAqAAwFRmriai6wD8GgAD2MXMPySibwO4C9omjRoA1zJzRV\/+PcJJSXaOGcAEfJU4TgUwDvJm119aAWyFllhuALAhZ19Jpb4hCSFCmSSTwiPuZHIwgF0AJgK4CV8lkx8AeJOZVxLRDQC+w8zfdSeT\/aEleC4isgJoZuZ\/utt8Dtp6tsUAsgG8z8yZRHQhgCsB\/ATaZoj3AfwDwHEARwDMZuaN7sTuELREroiIXne38SIRRbmvHQXghwBymflWd7+lAP7OzI8T0QMAzgMwB0AUgN3MPNDTGDq0NxXAQADvuF+rJqIUZq4lomQA9czMRPRjADlnlgtEIvd09QIA50MbSZsALdEW+jmMDsklgF05+0pc+oYkhAgV8s5feIyZG92jfbdBK3VyxiwAl7s\/fwFa0nXGG8zc3S+ld91T1XuJaKD7uQvdHzvcj+OgrZE7DuDYmSTO7SgzF7k\/3wYgw\/35IgBfMnMbEb0F4A9E9IsOsbzv\/rMYWlLcBKCJiGxElNTLGM441\/31VgMAM9e6n08H8BoRpUFLmo528\/cRdtzldqZBSx7Ph\/b\/RZLH4DLK\/fED9+PmkuyczQA+A\/BJzr6SXbpFJoQIepJMit56ENraq2c9vL6lh9dtHT6nDn\/ey8xPdrzQPRLZub2O97sARLs\/vwbAXPeoIaDVDjwXwOed7lM7taFC+77oTQw9eQTa5qX33ZuQrL28P+SUZOeMwVfJ4zkAEvWNSPRSHLTvl3MBLCvJzikD8In744ucfSVNegYnhAgukkyKXnFP274Obb3jM+6n1wP4HrRRyWsBFHZxexOABA+6+RTAX4noJWZuJqIhAByexkhECQDmARjKzDb3c9dDSzA\/7+7ePsawCsA7RHQ\/M9ecmeaGlkid2VW7xNOvI5SUZOfEAVgI4CJoCeRQfSMSPpYObWnLTQAcJdk5awF8DODjnH0le3WNTAihO0kmhTeWA\/h5h8e3AnjWvWGlCsD1Xdz3AYA3iehS9z1nxcyfEVEOgA3ahmk0Q5t+83QN12UAVp1JJN3eA\/APIrJ40oA3MTDzHiK6G0ABEbmgTZH\/CNpI5BtEVAct4Rzh4dcR1Eqyc+IBfBvAVQC+BW3NqQh\/JmijzecAuK8kO+cYtBHLjwH8N2dfSauewQkhAk824AghPOZOIL8DLYG8CJJAiq9rBvAugJcBfC4liISIDJJMCiG6VZKdk4CvJ5Aeje6KiFcJ4A0AL+XsK9mgdzBCCP+RZFII8Q0l2Tmx0HboXwVtV7skkKIvjkIbrXwpZ19Jid7BCCF8S5JJIcT\/lGTnTIRWW\/NaeLZZSojeKgLwEoBX5LhHIcKDJJNCRDj3KOT3oJ0ENF3ncETkUAF8CeAxAO9JkXQhQpckk0JEqJLsnDxoo5Dfh4xCCn2dgHY06oqcfSVVegcjhOgdSSaFiCAdRiF\/Au1UGiGCiQ3A6wAeydlXskXvYIQQnpFkUogIUJKdkwOttqeshRShYjOAfwF4LWdfiV3vYIQQXZNkUogwVpKdMw\/AndDOKqceLhciGFUCWAHgiZx9JWV6ByOE+CZJJoUIMyXZOQqA70JLImfqG40QPuME8DaAu3P2lezSOxghxFckmRQiTDx6yyoTgOsmb1\/+vaTGI+frHY8QfsLQTtn5S86+kiJ9QxFCAJJMhh0iYgD3M\/Md7se\/BhDHzNZetJEPwM7M692PnwPwITO\/6Yd4nwOwAECD+6lWZp7t637C2aO3rIoC8GNoI5HDYlpOr5+55a\/ydyjCHQN4H8Cfc\/aV7NA7GCEimVHvAITP2QBcTkT3MnN1b28mIiOAfGhn7K7vazBERNDetKjdXHanN4mqh22HrUdvWRUH4BYAdwAYdOb51piBM1qjBxyPaascpltwQvgfAbgUwKUl2TkfQEsqt+kckxARSdE7AOFzTgD\/BvDLzi8QUQYRrSKiXUT0XyIa5n7+OSJ6gog2QSvLcQuAXxJRERHNc98+n4jWE9ERIrqyQ5t3EtEWd5t\/7tDPfiJ6HsBuAPOIqISIVhDRHiL6jIiiu\/siiMjqHlU983i3u93ObQ8lovvcrxcT0WL39flEtIaIPnJf\/wQRKe7XLiSiDUS0nYjeIKI4b\/+y9fDoLassj96y6g4ApQDuQ4dEEgBAZNibfV1p4CMTQjffBrC1JDvnw5LsHCl5JUSASTIZnh4FcC0RJXZ6\/hEAK5l5ArTjzB7u8Fo6gNnMfDm04sEPMHMeMxe6X08DMBfaruBlgJaUAciCdmpKHoApRDTffX0WgMeYeRyAY+7Hj7of1wO4okPf97kT1yIiesmDr69j21PdfU8EcL67rTT3ddOhlcMZC2AUtBHb\/gDuAnA+M08GsBXArzzoU3eP3rLK8Ogtq64HcBDAPwH06+raxoSMGTZzYmXAghMiOCwEsLkkO+fjkuycGXoHI0SkkGQyDDFzI4DnAdzW6aVZAF52f\/4CtOTwjDeYubvjzN5lZpWZ9wIY6H7uQvfHDgDbAWRDS\/QA4Bgzb+xw\/1FmLnJ\/vg1ARofX7nQnrnnMfG1PX1+ntucCeIWZXcxcAaAAXxXj3szMR9xf1yvua2dCSy7XEVERgCUAhnvQp64evWXVdwHsAvAMgKE93kBkKRlz7V4\/hyVEsLoYwMaS7JwP3DVWhRB+JGsmw9eD0BK8Zz28vqWH120dPqcOf97LzE92vJCIMs7SXsf7XQC6neaGNl3f8c1OVC9iPaPz7jKGFvPnzHyNh23o6tFbVs0EsBxArzfU1KaMneIwRjeYnG2dR6iFiBSLAHyrJDtnBYA\/yVGNQviHjEyGKWauhbb+8cYOT6+HdpQeoJ2EUtj5PrcmAPEedPMpgBvOrDkkoiFENMC7iL+hFMBkd7uTAYzo4rpCAIuJyEBEqQDmQzs5AwCmE9EI91rJxQDWAtgIYA4RZbrbjiWi0T6K2WcevWVVxqO3rHoVwAZ4kUgCAIjiD2ReJbtcRaQzAvgpgEMl2TlLS7JzLHoHJES4kWQyvC0H0L\/D41sBXE9EuwD8EMDtXdz3AYDLOm3A+QZm\/gzatPkGIioG8CY8S0I767hmsoiIzADeApBCRHsA\/BzAgS7ufQfa9O9OAKsA\/IaZT7tf2wLtOLYSAEcBvMPMVQB+BOAV99\/DBmjT80Hh0VtWJT56y6q\/A9gHLQHuk4qB08a7FFNb3yMTIuQlALi3OQqf5q7MvUrvYIQIJ1JnUoQld63MXzPzIp1D8cijt6wiADcB+BuAVF+2PfTEqjVZh9+a3\/OVQoS\/f16u7Ng8RpkE4EsAtxUvKd6td0xChDoZmRRCZ4\/esioP2hKEJ+HjRBIAyoYsGKmS4vR1u0KEmspEbHInkgBwDoCi3JW5j+SuzE3WMy4hQp2MTAqhk0dvWRUP4C\/Qlh8Y\/NnXyCPvrcs4\/tkcf\/YhRDBjwP7Lmw3lp\/rR2ao3VANYWryk+OlAxyVEOJCRSSF08K+bP7kM2lrOX8DPiSQAlA6\/ZBB\/c3e7EBGjaCRt6CKRBLS15U\/lrsz9Indlbleb\/YQQXZCRSSECaPniRUMBPEaGgYmWhGu73NzkD9n7X9o8uHz99ED2KUQwUAlV1\/\/CYGmLogQPLm8B8HsAjxQvKY7Io1qF6C0ZmRQiAJYvXqQsX7zoVgB7ACxiV8Vcl+PorkDGcHDU5TGB7E+IYPHOLNrnYSIJALHQ6vQW5q7MDZpKD0IEM0kmhfCz5YsXZUGrh\/kwviqdRI7m92OZXfZAxeEyRo+v6jehKFD9CREM2k3Y\/\/p8xZv1wrOhbdD5f7krc+WADyG6IcmkEH6yfPEiWr540f8BKMJZC4+7RjlaPl0fyJj2j\/5ed0dmChF2HrpUaWPt4AJvWADcDWBz7srcPN9FJUR4kWRSCD9YvnjREAD\/gVY0vcvpZdWxb6bqqikNVFx2S+KU+oSRJYHqTwg9nU7Cxm1ZSp4PmpoEYEvuyty\/5a7MlRN0hOhEkkkhfGz54kXXAtgN4EIPLo+yN71e5+eQvqYk+4f1gexPCD0wYLtnsWGID5s0QtuYsyN3Ze5kH7brF0Tk6nSy2FIv2sgnIu+Oc\/VjXCL4yDoQIXxk+eJF\/QA8AeDKXt3IbZOcbZvWGqNnzPVLYJ20RafOaIkZVBrbejojEP0JoYfto2jD6RTK90PTOQA25K7MvbN4SfHDfmjfV9qYOa+PbeQDaIZ2qIJHiMjIzN0dkuB1XB60LXQiI5NC+MDyxYsuhDYa2btE0s3Zvi6H1dZa30bVBSJlb851JwLSlxA6UAmVD31XmerHLswAHspdmftuqJ2eQ0R\/JKItRLSbiP5NROR+\/jYi2ktEu4joVSLKAHALgF+6RxDnEVEqEb3lvn8LEc1x32sloheIaB2AF9yPnyGi1UR0hIhu8yCuUiLq7\/58KhGt7qLtDCJa5Y7zv0Q0zH3dc0T0BBFtJaIDRLTI\/byBiO5zx7uLiH7i+79VIcmkEH2wfPEi4\/LFi5ZBWx85qA9N9bM3v7nXR2H1qClu2Ix2S3J5oPoTIpDemkMH2s0UF4CuLoW243tWAPrqrehO08mL3c\/\/i5mnMfN4ANEAFrmfXwpgEjNPAHALM5dCm2l5gJnzmLkQwEPux9MAXAHgqQ79jQVwPjNf436cDeAiANMB\/ImITD3E1Z2ObT8CYKU7zpegVck4I8Pd30IATxBRFIAbATS4Y54G4CYiksL0PibT3EJ4afniRcMAvIKz7tTuPXZVz3XZD+0wmDMn9Xx1HxGZS8b84MCkXY+k+b0vIQKo3YSSN+cqPl3n14NhANbkrsz9A4C\/Fy8pDpaTQLqaTj6HiH4DbWNgCrTatx8A2AXgJSJ6F8C7XbR5PoCx7sFMAEgg+l\/S\/j4zt3W49iNmtgGwEVElgIEAyrqJqzsd254F4HL35y8A+EeH615nZhXAQSI6Ai2hvRDABCI6M2uUCCALwNFexiC6ISOTQnhh+eJFi9BlyR\/vOVo+TGJ22nzZZlfqksdMcRhjA7r5Rwh\/u\/8yxdGHUkDeMgK4F8AnuStzBwS4b4+5R+oeA3AlM+cCWAEgyv3yQgCPApgMYAsRnW2wSQEw0z1SmcfMQ5i52f1aS6drO\/4cc6HnwSsnvspJojq91rntrnRO5BkAAbi1Q8wjmPkzD9sTHpJkUoheWL54kcE9rf0+AD+slVJHOFo+3uD7ds+CKG7\/6MU7A9KXEAFQnowNRaOUCTqGcBG0ae9zdYyhO2eStGr3iOKVAEBa8j2Umb8E8Ftoo3dxAJrw1UELAPAZgFvPPCCiPB\/GVgpgivvzK7q5bj2A77k\/vxbagRBnXEVEChGNAjASwH4AnwL46ZlpdiIaTUSxPoxbQJJJITy2fPGiQQD+C+2HLfVwuddUx6HZqrPysL\/a76gydfIEl2L29F2\/EEGLgfZ7FhuG6h0HgDQAn+euzP1L7spcg45xdF6buIyZ66GNRu6GlmRtcV9rAPAiERUD2AHgYfe1HwC47MwGHAC3AZjq3siyF9oGnT7H5X7+zwAeIqKt0EYyu3IrgOuJaBeAHwK4vcNrxwFsBvAJtHWf7dDWde4FsJ2IdgN4ErLEz+eIOViWdwgRvJYvXjQdwDsABgekQ4raaUn86YQzOy39acjJgjVjDr4+39\/9COFPW7Jo9X1XGvL1jqOTzwFcXbykuF7vQMIdET0H4ENmflPvWCKRjEwK0YPlixf9EEABApVIAgC3T3S2r18biK5ODp6bqZLiCERfQviDSqh4+DvKNL3jOIsLAGzMXZmbpXcgQviTjEwK0YXlixcpAP4O4Nc6hVBvSbzZQUpcqr87GnH0o7Ujjn0ckKLpQvjaq\/OVtW\/PUYL5\/28dgCuLlxSv0jsQIfxBRiaFOIvlixclAvgQ+iWSAJBkb3rzYCA6Kh1+4RAGqYHoSwhfajNj79uzteLZQSwZwKe5K3O9WWMoRNCTZFKITpYvXjQGwCYAF+sdC6u1s132fVv93o9iGnFy8NzN\/u5HCF9bfpniQgDWFvuAEcDjuStzH9F5Y44QPifJpBAduI9F3ARgjN6xnOFo+c8AZkdbz1f2zeGR303wdx9C+NLJFKzfNVLJ1TuOXvo5gI9zV+Ym6h2IEL4iyaQQbssXL7oBwEfQaqwFEXWYo\/nDTf7uxWWMGluZOmm7v\/sRwhcYaLtnsSFD7zi8dCG0jTmZegcihC9IMikEgOWLF\/0VwNMI0vpjqvPoXNVZfsDf\/ezPWhwK04VCYPMY2lyVRIGrsOB72QA25a7MPUfvQIToK0kmRUQrW1pofPvG3\/0dwF16x9IDo735Lbv73Fm\/cZjjJ9UlZu31Zx9C9JWLUP6vRcpUvePwgRRoG3N+qHcgQvSFJJMiYpUtLYwF8P60\/hffOjA6o1jveHrE9vHOtjV+rz1Zkv2DRn\/3IURfvLpAOWIzh82ReCYAK3NX5t7e45VCBClJJkVEKlta2A\/a0YgXE1H0goFXpyea+h\/VO66euGzb8lhtOu3PPtqj+s1ojh18xJ99COGtVjP2vDeTZusdh48RgAdzV+b+Ve9AhPCGJJMi4pQtLRwOYB2AGWeeI6LkC4f8yBRliKvULzKPJNibXi\/1aw9EtDdnySm\/9iGEFxjg5ZcrHCKlgLxxV+7K3MdzV+bK72YRUuQ\/rIgoZUsLswCsxVlK\/yhkSF+YflOtkcxNgY\/Mc6w2zHTadvu1JmRz7JAZbVEpklCKoFLWH+uLRyjj9Y7Dz24B8HLuylyT3oEI4SlJJkXEKFtamA3tjO30rq4xKubsS9JvPkAI7rOqna2fD2G2t\/itAyJTSfZ1ATl9RwhPMNB679WGkXrHESCLAbyduzLXoncgQnhCkkkREcqWFo4DsBpAWk\/XRhtjp1w45EdBfhoMD3E0v+fXk3HqEzOn2U1xNf7sQwhPbcimzdWJ1OP3bxhZBODD3JW5MXoHIkRPJJkUYa9saeEEAF8CGOjpPUnm1DnzBl5R4L+o+k51npirOsr2+a0Dopj9o68J\/l3uIuy5CKceW6TM6PnKsHM+tNJBcjqVCGqSTIqwVra0cBKAVQBSe3vv4JjMBXkp56zxfVQ+Y7A3vwNm1eWvDqr6T8xzGixBvYZUhL+X85VSu4mi9Y5DJ3MBfJG7MjdZ70CE6IokkyJslS0tnAqt\/E8\/b9sYnTBt7qj4vI2+i8rXHNnOti\/9V3uSKOnQqMvliEWhmxYLij+YqYRbKaDemgZthDJe70CEOBtJJkVYKltaOBPAFwD69G6eiJQp\/S7MGxQ9YpdvIvM9l23nFNXV4Led16fSZo9RyWD3V\/tCdIUBvu8Kg0HvOILENGhrKCN1hFYEMUkmRdgpW1o4A8BnABJ90R4RRc0feNXQRFNqsBbyjrM3vV7mt9ZJGXQ045JNfmtfiC6cSMX6vcNprN5xBJH50HZ5m\/UORIiOJJkUYcW9a\/tjAD6dDtKKmi8xRxviKnzZrs9w03Rne5HfpuOPDz1\/GIP8tjZTiM4YaLn3asMoveMIQt+CVodSRmxF0JBkMsQQUToRvUdEB4noMBE9RER+f5dKRIOJ6E1\/99MXZUsLM6CNSKb4o32FDOmXpN9UH6xFzZ1tX2Yw2\/xyrjYrxuFl6flBXi5JhJN1Y2lLTQIN0juOIHUFgGdyV+aG60lAIsRIMhlCSDtC7G0A7zJzFoDRAOIA3O3vvpn5FDNf6e9+vFW2tHAggM8BDPZnP0bFPGbh0JsPBmdRcx5kb3qnyF+tHx7xbb8k6UJ05lJQ9vhCZabecQS56wD8S+8ghAAkmQw15wJoZ+ZnAYCZXQB+CeAGIoolon8S0W4i2kVEtwIAEU0hogIi2kZEnxJpRX+J6CYi2kJEO4noLSKKcT\/\/HBE9TETriegIEV3pfj6DiHZ3+LyQiLa7P3TdaVm2tDARwKcAMgPRX5QhdvJFWlFzDkR\/vcGuU3NdjmO7\/dG2arCMOT1gql8LpQsBAC+co5xwGClK7zhCwM9yV+Yu0zsIISSZDC3jAGzr+AQzNwI4DuDHADIA5DHzBAAvEZEJwCMArmTmKQCewVejmG8z8zRmngigBMCNHZpNg1bbbBGAs\/2gqgRwATNPhnbs18O++fJ6r2xpYTSADwFMDGS\/iebUOfMGXhmMNSgVR\/N7ZmbV6Y\/GD2RdJecFC79qjsKuj6crs\/SOI4T8Nndl7v\/TOwgR2SSZDB\/5AJ5kZicAMHMtgDEAxgP4nIiKANyFr86lHu8eXSwGcC20RPWMd5lZZea9OPupMSYAK9z3vgFAl92WZUsLTQDehJb4BtzgmFEL8lLODcJTcpyjna2f+6X2pNMUN7E2OVtOxRF+wQD\/40qDvGHpvbtzV+bepncQInJJMhla9gKY0vEJIkoAMKyL6wnAHmbOc3\/kMvOF7teeA\/BzZs4F8GcAHaeUbJ3a6OyXACqgjQZOBRDwMhVlSwsJ2tdwSaD77mh0wtR5wVjU3GXfM1111Z3wR9slY65t80e7QhwbgHX7hlKO3nGEqAdzV+ZerXcQIjJJMhla\/gsghoiuAwAiMgBYDi2p+hTAT4jI6H4tBcB+AKlENMv9nImIzoxAxgMod0+FX9vLOBIBlDOzCuCHAPQoUfEPAN\/Xod+vCeKi5jH2ptf9UsbIZkme1hg39KA\/2haRi4HmZVcZsvSOI4QRgOdyV+ZO0zsQEXkkmQwhzMwALgNwFREdBHAAQDuA\/wfgKWhrJ3cR0U4A32dmO4ArAfzd\/VwRgDObZf4AYBOAdQD29TKUxwAscbeZDaClL19Xb5UtLbwBwK8D2Wd3zhQ1TzIPOKx3LF\/DLVOd7VvX+7xdIirJWVLl83ZFRFsznrbWJtDZltUIz0UDeD93Ze5QvQMRkYW0\/ESI0FC2tHABtBJAQbeuSmVX2YcnnjC1uZqD6BciVVkSbzGREp3k02aZnTM3W0\/HtFWn93yxEN1zKii77g5DqtNIFr1jCRM7AcwtXlLcrHcgIjLIyKQIGWVLCzOh1dkMukQSOFPU\/OZ6E5n9UjjcO5xqb37b9xtmiIwl2dcF6\/GSIsSsPE85IYmkT00E8FLuylz5HS8CQv6jiZBQtrQwCVoJoKAunG1UTGMuGXrzoWAqas6uirkux1Gfr+lsSBg53WaKl+lu0SdNUdj56VQpBeQH3wHwd72DEJFBkkkR9MqWFhqhlSAao3csntCKml8fTEXNydH8fiyzy+7bVilq35hr9\/i0TRFRGFD\/fpVBRiT959e5K3Nv7PkyIfpGkkkRCh4BcL7eQfRGorn\/nPkDrwyiGpSuUY6WT32+Gaem3\/hJTkNUEE3ri1BydBDWHUinbL3jCHOP567Mzdc7CBHeJJkUQa1saeFtAG7ROw5vpMWMyp+Ucl7QJJSqY99M1VVT6tNGiRIPZF61w6dtiojAQNOyqwySSPqfCcBbuStzA3LcrIhMkkyKoFW2tPBcAPfrHUdfZCVMmZcZPylYippH2Zter\/N1o6cHTR\/rUoztvm5XhLfVE2h7fRyl6h1HhEgB8FHuytwkvQMR4UmSSRGUypYWDgHwCvQpiO4zRKRM7ndB3qDokcFR1JzbJjnbNq7zaZukpB7NWLTZp22KsOZUcHzFRcpMveOIMKOhHXAhhM9JMimCjvvM7TcADNA7Fl\/QippfOSxYipo729dns9pa68s2T6SfO4JBLl+2KcLXMxcop6QUkC4uzV2Ze7veQYjwI8mkCEbLAYRVqRAiSrpg8JKoaEP8ab1jAdDP3vzmXl82yIph6PGh523yZZsiPDVGY8cXk2VUUkf\/yF2ZO1XvIER4kWRSBJWypYVXA7hV7zj8QSFlyCXpNzUGQ1FzdlXPddkP+nTjzNGMhakcPOWQRBBiQF12lSFG7zginBnA67krcxP1DkSED0kmRdBwn3CzQu84\/MmomEZfMvQnhxUovq356AVHy0fJzE6br9pTDeas04NmbvFVeyL8HE7DukNDKCTqxYa5EQCe0TsIET4kmRRBoWxpoQXA6wAS9I7F36IMMZMuHHL9Fug+iqdmOFo+3uDLFg+OuiLal+2J8MFA49+vMuToHYf4n8tzV+b+XO8gRHiQZFIEiwcATNI7iEDRippfpXsNStVxaLbqrPTZxiCnKSa3OmXcTl+1J8LHfyfSjoZY6q93HOJr\/pm7MneK3kGI0CfJpNBd2dLCKwD8VO84Ai0tZmQwFDU325vfaGFmn42S7hvz\/aA5l1wEB6eCY89cJOdvByELgNdyV+aG\/YyQ8C9JJoWuypYWDgLwpN5x6EUraj7Zp1PNvca2Cc72dWt91ZzdkjS1IWHEfl+1J0LfUxcpFU4DmfWOQ5zVKABP6R2ECG2STAq9PQWgn95B6EUran7+5LTokbpODbvaN+ey2lzlq\/ZKsn\/o0zqWInQ1xGD7qjxlut5xiG5dlbsyN+Jmh4TvSDIpdFO2tPAmAAv1jkNvRGSZN\/DK4ToXNU+yN7150FeNtUYPmN4SPfCYr9oToYkB171XG+L1jkN45P7clbmy0154RZJJoYuypYUjEOLnbvuSu6h5dIwhvlyvGFitne2y79vqk8aIDHtzrjvuk7ZEyDo4GOuPpFGW3nEIj0QBWJm7Mjekj7AV+pBkUgRc2dJCBcBKAHF6xxJMFFIGX5x+U7NJsTToFYOj5T8DmR1tvmirKX749HZzUoUv2hKhh4GGf1xpGKt3HKJXZgC4U+8gROiRZFLo4Q4A8\/QOIhgZFVPWJek3H9GvqLk61NH8oW+ORSSy7Mu+tsQnbYmQ89kkKmqMpYhdDx3CrLkrc8fpHYQILZJMioAqW1o4HsBf9Y4jmEUZYiZdNOSGrdCpqLnqPDpXdZYf8EVbtck5UxzGGN1GWoU+HAYcfe4CZbbecQivWAA8n7sy16h3ICJ0SDIpAqZsaaEZwAvQfliJbiSY+81eMPDqNTp1b7Q3veVgZrXPLRHFH8i6uqjvIYlQsuJbSpXLQCa94xDeSXa56O2y8tv0jkOEDkkmRSAtBZCndxChYlDMiAWT+52vU1Fz+zhnW4FPak9WDJgyzqWYfLIOUwS\/ulhsWz1BSgGFJOamG+obCwuOn8zLcjjugTUxW++QRGiQZFIERNnSwkwA\/0\/vOEJNZvzkeVkJ+hQ1d9m257HadLrPDZHS\/\/DISzf7ICQR5NylgJL0jkP0Xn+na9snZacaf1lXP48AgjaDtALWRNI7NhH8JJkUgfI4ZHq714hImZRy\/uS06FF6FDVPsDe9XuqLhk4Onp+pkiLHLIa5\/elYVzqIRukdh+gF5oaf1DUUfnni5JR0p2tIp1fnIgKPuhW9J8mk8LuypYXfB3C+3nGEKq2o+RUZyeaBhwLdN6sNM5223X0eVWTFMOT40AtldDKMMVB\/3xWG8XrHITw30Onc8tmJU60\/r2\/orrrGMlgThwYsKBGSJJkUflW2tDAJUpy8z4go8fzB18XoUdTc2fp5OrO9ua\/tlA7\/1iDWaYe68L\/\/TKFdTTGUonccomfEXH9bbf26L06cmpbmcqX1cHk8tJklIbokyaTwt3sBDNQ7iHCgX1FzHuxofm9bX1tRDaZRp9LmyOhkGHIYcGTl+VIKKBQMdjg3fXHilP2mhsY5vbhtIayJV\/stKBHyJJkUflO2tHAGgJv1jiOcGBVT1sL0m48Guqi56jwxV3WU7etrO4dGXSanHoWhJy5RalWFpC5hECPmmjtr6tZ\/WnZqxgCXa4AXTdwHa2KUzwMTYUGSSeEXZUsLDQCehPwf8zmLISZPh6LmBnvzO8ysuvrSiMsYPa6q\/4QdvgpK6K82DlsLxytT9Y5DdG2ow7Fh1YmT6nWNTX0ZPR4G4Fe+ikmEF\/lFL\/zldgAT9Q4iXCWY+81eMGhxgIuaO3KcbV\/2ufbk\/tHX9L0YuggKDDjvWWyQdZJBipir\/l917caPy8pn9XepqT5o8newJg7yQTsizEgyKXyubGnhAABWveMId4OiMxZM7ndBQIuau2w7p6quhpN9acNuTphSnzhKzuwOA3uHYt3xATRS7zjEN420O9YVHD9puKapeaYPm40D8DcftifChCSTwh\/+DG0HoPCzzPhJ87MSpgSyqHmsven1PiWTAFCS\/UM5rzvEqUDt8isMMvsQZBTmij9X1Wx+72T5nGRV9ceo8fWwJsq\/u\/gaSSaFT5UtLcwB8GO944gURESTUs6bPDgmsyhgnXLTdGd70ca+NNEW1X96c+zgo74KSQTex9Nod3M0Jekdh\/jKaJt97ZrjJy2XN7f48zhLBTqUeyMiFxEVdfhY6kUb+UTk86oDRPRdImIi6vH4SSL6mCj8vm8kmRS+9g8AsqszgIjIMnfA5SOSzQMPBqpPZ9uXGcy2Rq8bIFL2Zl9X5sOQRADZDTj84rlSCihYKMzld1dVb3nr1Om5iaqaFIAuz4U18TsB6KejNmbO6\/CxzIs28gH06v8tkUdVCq4BsNb9Z7eY+RJmru9NDKFAkknhM2VLC88BsEjvOCKRu6h5XIwxIUBFzXmQvemdor600ByXPqPNkhLwIuyi7x5bpNRLKaDgMNZmK1x7rCz2O82t0wLc9X2wJpoC3Oc3ENEfiWgLEe0mon8TEbmfv42I9hLRLiJ6lYgyANwC4Jfukc15RJRKRG+5799CRHPc91qJ6AUiWgfgBffjZ4hoNREdIaLbOvQfB+3YyRsBfK\/D82lEtMbd124imud+vpSI+rs\/f5eIthHRHiIK6TJ6kkwKnyhbWkgA\/ql3HJFMISXt4iE\/DlhRc3admutyHNvtdQNE5n3ZPzjgw5BEANTEY8v6scoUveOIdAbmsvsqq7e9dqpiXjxzgg4hjAbwswD2F91pmnux+\/l\/MfM0Zh4PIBpfDWgsBTCJmScAuIWZSwE8AeAB98hmIYCH3I+nAbgCwFMd+hsL4HxmPjPamA3gIgDTAfyJiM4k0pcC+A8zHwBQQ0Rnvje+D+BTZs6DVtmk6Cxf0w3MPAXAVAC3EVE\/L\/9udCfJpPCVawFM1juISPdVUXODLQDdKY7m9yzMqtPbBuqSRk+1m2JrfRmU8B8GHHcvNvTXO46IxswT221r1h4rS\/xWS6veSf2fYE0MVGmoztPcr7mfP4eINhFRMYBzAYxzP78LwEtE9AMAXf2MOh\/Av4ioCMD7ABLcI40A8D4zt3W49iNmtjFzNYBKfHWy2zUAXnV\/\/iq+mureAuB6IrICyGXmprP0fxsR7QSwEcBQAFke\/D0EJUkmRZ+VLS2MAnC33nEIjcUQk3dR+g3bEJCi5s4sZ+vn3teeJIo9kPW9Yh8GJPxo93BaX5ZKI\/SOI1IZmY8\/WFld9GJ5xfw45mComJEM4E96dU5EUQAeA3AlM+cCWAHgzCk9CwE8Cm2QY0sXax8VADM7JKhDmLnZ\/VpLp2s7vkF3ATASUQq0BPYpIioFcCeAq4mImHkNgPkATgJ4joiu6xR7PrRkdhYzTwSwo0PsIUeSSeELv4B2OoIIEgmmlNn5ASpq7rLvmaG66k54e39l6qQJLsXc+Qe3CDIqUHP\/ZUqe3nFEJGae2tZesO5YWb\/zWtsm6R1OJz+DNXGMTn2fSb6q3SOKVwIAESkAhjLzlwB+CyARWo3MJny9bN1nAG4984CI8nrZ\/5UAXmDm4cycwcxDARwFMI+IhgOoYOYV0KbPO8\/cJQKoY+ZW9y5wX9YDDThJJkWflC0tTIa2NkUEmYHRGQum9LswEEXNo+1Nr1d4fTdR8qFRl231YTzCDz6cQXtaoilR7zgijYm59LGKquJnT1cuiGGO1TueszAC+HsA+um8ZnKZe1f0CgC7AXwKbWoZAAwAXnRPfe8A8LD72g8AXHZmAw6A2wBMdW\/S2Qttg05vXAPgnU7PveV+Ph\/ATiLaAWAxtPWZHf0H2uhmCYBl0Ka6QxYxB\/J4XxFuypYW\/hXAXXrHIc6OmbmodtWGA41b\/V7GxRg9f70xaqp3\/bBanr\/mF\/0Udpl9HJbwAZsRB5fcYRipKmTQO5aIwazOam8vfLiienoUc7Te4XhgMqwNO\/QOQuhDRiaF19yjkrf1eKHQDRFRXsq5UwJR1NzZtiaL1bZ6r24mJa10+Lc2+zYi4SuPLlKaJJEMHLPKh1ecrtz779NVC0IkkQSAP+odgNCPJJOiL+4AoEdJCtELASxqnmpvftvrzTTHhl04hEGqLwMSfVeVgM0bcxSp1BAIzK75rW2rNxw7kT6z3TZe73B66VJYEyfoHYTQhySTwivFv\/tERiVDSKCKmrOrYq7LcXSXV\/cqxhEnh8zb5OuYhPcYsN+z2DCw5ytFX1lU9eCzpyv3P1pRlW8GLHrH4wUC8Ae9gxD6kGRSeOUty6ZfvmBZc7hUqSrSOxbhmQAVNSdH8\/uxzC67NzcfHnFpko\/jEX2wawRtONmfhusdR1hjdp7X0rp6\/bGy4VPbbWP1DqeProA1cVzPl4lwI8mk6DWr1ZoA4FYbOfK+MO\/Ke8FSsPOIUrFd77hEzwJT1Nw1ytHyn\/Ve3WmMyqlInbzN1xGJ3lOB6ge+K6WA\/ClKVfe\/WF5x+MHK6nwzEA6bzwiyITMiSTIpvPEzAElnHtjIOXGVeffk5y0FxYeU01LiJchZDDF530q\/YTv8WNRcdeyfpbpqSr2590DW1fJzKQi8N4tKWqOkFJBfMNsvaW5ZveFY2aiJNrteNRr95WpYE0P2JBfhHfmhLXrFarXGAPjV2V6zkzN3tXnP1JWW1Xv3G05tOds1IjjEm1Jm5Q\/6nj+LmlvsTa\/XeXOjwxw\/qTZp9B5fByQ8ZzNi\/6sLlDl6xxGOYlR176unKo79vaom36jVaAw3CoBf6x2ECCxJJkVv3QQgtbsLHOQaW2gqmfacZXXJPsPJTQwpZhqMBkYPXzCl30X+K2rObZOcbRu9OmpxX\/YP5EQcHT38HaWVtVNEhK8w277T1Lx6\/bGyMePs9nAfuVsCa+IgvYMQgSM\/LITHrFarEVo5II84yZWz1rRvxkrL6gN7DCc2SlIZfEbFT5w\/OmGqV+sbPeFsXz+W1daa3t7XbkmZ1hSXftgfMYnuVSRi45YxSrAd2RfS4lR19xunTpfdXV2bb9BOZwl3FgC36x2ECBxJJkVvfBfA0N7e5CR1zAbTgZnPWVYfLjYc38BgqSUYJNxFzacOicny18kVKfbmN\/f1+i4i2pt9nV\/LGIlvcpcCGqx3HGGDue2qxqaCdcfKxmbbHaP0DifAfgprotQhjhCSTIreuLUvN7tIzdxkOjjrWcuXpTsNpetVsMtXgQnvEZF5zoDLRiabB\/mlqDm7que47Ad7nay2xA6e2RbV76Q\/YhJnVzSS1pf3o2F6xxEOElyune+eLK\/4Y03dAiUyf9cmAviJ3kGIwJCzuYVHrFbrBAA7fdmmwlQ6yTmibKJr+EwFSjguRA8pKqvlH5X9m1udDX4YmVJKLUk\/H0RkjOrNXUn1BwsmFz24wPfxiM5UQtX1vzREtVkoXu9YQhpzy7WNTVt\/W1s\/n7RSOZHsFIARsDZ4VXdWhI5IfLckvNOnUcmzUYkztpmOzH3OsvrkNuORtSpUh6\/7EJ5TSEm7ZMiP2\/xT1FzNcLR8vLG3d9UnZk63m+KrfR+P6OydWbRfEsm+SXa5dnxQVl6ztLZ+gSSSAIDBAK7QOwjhf5JMih5ZrdYUANf6q32VePgO49G5z1pWV2wxHip0QZV3sToxKMZRC9N\/UuqPouaq49Bs1VnZu001RNH7Rl8jZYL8rN2E\/a\/PV2brHUfIYm66vr5xTcHxk3kZTqcsE\/i6m\/UOQPifJJPCEz8GEO3vTpg4fafx2LznLF9WbzIeXOOC6sdTWkRXLIboie6i5r7eKGW2N7\/Rwr1cW1Pdf0Ke02Bp8nEsooMHL1XapRSQd\/o5Xds+Litv+FWdTGt3IV+KmIc\/+eEhumW1Wg3QTrwJGCYMLjYen\/+c5cvaDcb9a5xwtQeyf6EVNT9n0PcKfd4w2yY429f1rvYkUeLBzCvkiEU\/OZ2EjduzlIl6xxFymBt+UtdQuPrEySlDnc50vcMJcjfpHYDwL0kmRU++DWC4Hh0zIW2PsWz+SsvqxrXGfQUOuFr1iCNSDYgevmCqH4qau9o3T2C1uao395QPmpWjklFGqn2MAds9iw1D9I4j1AxwOrd8Wnaq9ef1DfP0jiVELIE10aR3EMJ\/JJkUPfH5xpveYsKAfcaTC1ZaVresMe4tcMApp6MEyMj4ifPHJEzzdVHzRHvTG70rQ0TKwKMZl2z2cRwRb1smbTidQr2uHRupiLn+1tr6tf89cWraYKcrTe94QsgAaHWKRZiSZFJ0yWq1jgNwrt5x\/A8h9YCxfMFKS0H7atOeAjucso7Oz4iIJqacM3VIzGifFjVntW62y75va2\/uOT70vGEMktqkPqISKh++VJmqdxyhIs3h3PT5iVO2mxsa5+odS4iSqe4wJsmk6E5wFpwl9DtkOL3geUuBc5Vpd4ENDj+UshFnaEXNvzsyxZx2wJftOlr+M5DZ4fHSBVaMw0+kn7PJlzFEsjfnKAfazRSndxzBjphr76ipW\/9Z2akZA12ugXrHE8LOhzVxhN5BCP+QZFKcldVqNQG4Ru84ukVIPmKoWPCCZQ2+MO0qaIejXu+QwhURJZ43+AcJscZEH55Iow51NH\/Qq6nrIyMW9fNd\/5GrzYSSN+fSHL3jCHZDHY4Nq06cdP2osUnKJvUdQasMIsKQJJOiK98C0F\/vIDxCSCw1VC140bJG+cy0s6AN9lq9QwpHCimDLh7y43azElXvqzZVZ+lc1Vnu8YinarCMOT1wWq+mx8U3PXCZ4gCRlLHpAjFX\/a66dsPHZeWz+rvUVL3jCSPXw5oop52FIUkmRVd+qHcAvUZIOG6oXvCSpdD8qamooA12OTnFxwyKcdQl6Tcf82FRc6O96S0HM3tc0\/JA5lWyK7QPTiVjQ9EoZYLecQSrEXbH+tXHTyrfb2qepXcsYSgNwCK9gxC+J8mk+Aar1ZoIrSRQaCLEnTDULHjJUhj9iWlHQStsvSpDI7qnFTW\/0YdFze3jnG0FHteedJpiJ9Yk5+zyTd+RhYH2excbZPf2WSjMlX+qqtn0\/sny2SmqKssp\/EdOxAlDkkyKs7kKQJTeQfQZIfakoXbBy5a1cR+Ztq9pQXuF3iGFi3hT8qxzBn3fZ0XNXbbteaw2nfb0+n1jrpWak17YMpo2ViSTFNjuJMtuX7vm+Enzlc0tM\/SOJQJcBGuiHDkZZiSZFGcTelPc3SFElxvq5r9iWZf4gXnrmia0lesdUjgYED10wbT+31rto+YS7E2vl3p6sc2SNLUxfljvalVGOBfh9CPfVqbpHUcwUZjL766q3vL2ydNzE1U1Se94IoQC4Aa9gxC+Jcmk+Bqr1TocQHie6kCIqlAa5r9mWd\/vffOWNY3U5sOdyZFpRNyEBWMSp6\/zRVusNsx02nZ7trubiPZmX1fpi34jxevzlEM2M8XqHUewyLHZCwuPl8V8p7lVEuzAu1bvAIRvSTIpOrsWWgmH8EUwVyqN8183rx\/wrnlzYQO1ntA7pFBFRDQxOX9aeszo7b5oz9n6eTqzvdmTa1tjBs1sjU6VfzsPtJqx553ZUgoIAAzMJ\/9RWb3t9VOn5yWonKh3PBEqE9bEPL2DEL4jyaToLLymuLtDMFUrTfPeMG9Ie9u8aW0dtRzTO6RQRETm2QO+m5liSdvf99Z4sKP5vW0edmzYm33d0b73Gf6WX66oEV8KiJkntNvWrD1WlnBxS+sUvcMRuErvAITvSDIp\/sdqtU4FkK13HAFHMNYqzXPfMm9Mf8u8cV0tNUuC0ktElHBe2g8SfVHUXHWemKs6yko8ubYxYcR0mzlBdut342Q\/rC8eoeTqHYeejMwnHqysLnqpvGJ+HHO83vEIAJJMhhVJJkVH39c7AF0RDHVKy5y3zZuGv2nesL6amg7rHVIo8WFRc4O9+R0wqz2fw00UtW\/MtXv72F\/YYqD1nqsNGXrHoRtmntLWvmbdsbKU81rbJukdjviaLFgTJ+odhPANSSZFR5fqHUBQICj1Suvsd82bR7xuXr+hihpl17CHDIpx1ML0m48rZGjvW0uOHGfblx7VnqxJGTfJYYiW89nPYtMY2lKVRIP1jkMPJubSxyqqip87XTk\/hlk2HgUnGZ0ME5JMCgCA1WodB2Ck3nEEFYLSqLTNes+8JfM187pNFdTggzWB4c9siJ5w8ZAbi9DHouYu286pqquh52lzooSDWVft6Etf4chFKP9XJJYCYlZntrUVrD9WNnBeW7uc9BPEmHGZ3jEI35BkUpwRuife+BuBmpT2GR9Yto55xbJu82mq92g9XySLMyXPPDetz0XNY+1Nr3m0BvP0wGnjXIqprY\/9hZVX8pUjdhPF6B1HIJmZjzx5umrPitNVC6KYo\/WOR3wTM9pPcr\/N9zuuXDvZ9sSgjKUfjdU7JtF3cuC6OOM7egcQClqoffqHlm2IYcuWfMfYmMFqyji9YwpWqVFDF0zrf\/HqLdWf5HvdCDdPd7YXbTRG5c3s9jpSUo+M+PaarMNvz\/e6rzDSYsHu92fQbL3jCBhm17y29sIHKqtmWjgMTu8KM8xoOsJpxS+4LqA3XAtyWxA9vcPL3wEg655DHDGz3jEInVmt1lQApyEj1b0WzeZtCxxjzelqv4jeLdsVZuZddQXr9zVs6kONQzptSfpZDJElodurVFfZgsJfDFJYjeg3yQzwX69R9u7OUCLijY5FVQ8+UVHlmNpukxGuIKIyVe\/h4SXPOr8V9aE6a4IdJksXl24oXbYwct74hClJHgQALIL8X\/BKG9mn\/MdclPuiZc2O40r1Tr3jCTZERBOSF0xPjxnTh6LmPMje9E5Rj1cphvQT6edt8r6f8FDWH+sjIpFkdp7X0rp6\/bGy4ZJIBgcnK6c2qjkFP7b\/amem7YXkb9vvmfe2On9aN4kkAMzIWPrRgIAFKfwiot\/Bi\/+R9ZJ91E6OSZ+Zd8LCpqJ5jmxkqAPy9I4pWBCRafaAS7P+W\/7i\/hrbqTHetMGuU3NdjmO7Dabh47u77mjGJQOGnficKdxPceqCuxRQ2G+ki1LV\/U+drsREmz1f71ginY2NRwvV3GMrnAsHbOKxYwH0tnqAAm1A4xnfRycCRaa5I5zVarUAqAEgpTN8yMzGXXMc2c5R6sDJescSLJjVio\/KVjhanPXp3rVgPGhJ+vkIIqXbN8HZ+17YPPj0xundXROu1uXQ6oe+a8jXOw6\/YbZf3NK6\/u6qmjkmwKR3OJGqhS37PlOnVvzbuSi9hIeP8kGT75UuW\/hdH7QjdCLJZISzWq0XA\/hY7zjClYkNu2c7xrRnqWlT9Y4lGLjYeeT9448m29X2ZG\/uN5jHrTbFXpTf3TVGZ2vx\/LV3RtwaVhfh5JI7DCl2E4XlLuYYVS15przSOM5uz9I7lkjDDLUesbs\/cM2ue8p1yajjPNDLN4RdagXQr3TZwj7WpxV6kWluIbu4\/chBrvEF5r1Yz\/v3znSObh7jGhyRI2ZnGMg4cmH6T3a9d+Jf0Sq7er3r1mXfM8MQNe24YkgZ1tU1TmNMblW\/3KLUmuK8PgUbYl46RzlmN9EQvePwOWbbd5pbNvylunaeATDoHU6kYIa9Ekm73nAtaHvOeVF2NZL8WbMzBsD5AD70Yx\/CjySZFIv0DiASOMg1ttBUgg3G\/ftmOLPqs11DZhAoItf1mQ1REy4e8uONH5U9OR293\/gVbW96vSoq6ZYuk0kA2D\/6GlfqhmLvgwwxLRYUfzhDCbsdsXGquvvZ8orobLsjX+9YIgEzWo7zgOKXXOe7XnGdM74JsYGcUZFkMoTJNHcEs1qtowHIqS46MLByYLozs3asKz1ik8qq9rI1q8pf8qoupDF6\/npj1NRuk6fJ2\/+5L6nxaLZ30YUOBth6raGkZBiFz45m5rYrm5o3\/6Gmbp4ilSb8SmXU7+ehe1a6LjK+65ozoR0WvZZJbC9dtnCKTn2LPpJkMoJZrdabAPxb7zgimYGVQ1OdIyvHu4bNJFDE\/dI82lRcsLn64wVe3FplSfypiZTopK4uiG6t3DBr859neR9daDiWinV3\/tjYhzqewSXB5dr1fHlFwiiHM0PvWMKVi6miiDP3P+28JO5TdeoEFwzBMEvpApBUumxhs96BiN4Lhv9AQj9yWojOXKRmbjIdytxiPHxksnNk+QTX8JkKKGLWhWXEjZ\/f6KhZ50VR81R789uFloRr53V1QVt06oyWmIHHYlsrhvcxzKDFQMuyqw2+2E2rP+bW7zc2b\/ltrYxG+oODDcfWq+NKV7gWpqxVx48HaKDeMXViADALwOd6ByJ6T5LJyCbJZJBQiUduNR0eud14pHSSc8TJia7hMxR0XwInHJwpat7sqN9e1rq\/V2WU2FUx1+U4stNgGjmxi8aVvdlLjk\/b\/o+wTSbXjqMtNQmUr3ccfZXkchW9cKoiJcPp9GaUWnShjc0HV6mTTq5wLhxcxJmjAQT798I8SDIZkmSaO0JZrdYMAEf1jkOcncJ0fIJr+PHJzhEzFChhX0+PmZv+W\/7iqd4XNTcctiT9fCiRwdxFw\/bZG++qjbLVD\/JBmEHFpaDsujsM\/R1GCt2zqJmbf9TQtP1XdfXzIrXQvC8xg5sQvedj14zqFa6FIw7zkGBPHjv7snTZwnP1DkL0nkwlRC4ZlQxiKvGwImPp3Gctqys2Gw8VuqDa9Y7Jn4go\/ry0a5NijUllvbvTNcrR8p\/13TRs3jfmB2G5yez5c5UToZxI9nO6tn1cVl5\/R139fEkkvccMZzUn7Pi385I1s22PVEywPT1+qfPm\/BBMJAHtaMWwf\/McjsJ+Gk10SaaTQgATp+8yHksvNhwrH+caenCaM3OGAUp359yGLCJl4MXpNx55\/\/ijdb0paq469s9SXTOOKob+I872em1y9hSHMabe5GxN8lmwOmuKws5PpimhubmIufHm+sadt9Y3dLneVXSPGe0n0X\/Xq85z7C+6zh9Xj\/hJesfkIzEAJgPYpHcgondkZDJyychkCGFC2m7jifnPWb6sW2\/cv8YJV5veMfmDu6h5mYGMvTkJw2JveqO+y1eJ4vZnLS7qa2zBggH1H1d2Ma0f5FKdzq2flp1qkUSy95jReEgdvP6PjiUbxtmecc21PTz9X67L5tYj3qvTpILYXL0DEL0nayYjkNVqHQzgpN5xCO8Ro3KMa0jJDGfWNBMMMXrH42vNjvpNH5U9OQ29eMNrjJq9zhg98+y7wlmtWVB4R7RBtYf839XRgVj72xuMIfULl5jr\/6++YfdP6htDKm69qUzVuzmj5BnnxdEfqTMnOGAMyTcRvfRu6bKFl+kdhOgdmeaOTDIqGeKYMGCf8eSAfYaT1aNdaVtmOUdPMcEYp3dcvhJnSppxbtq1vSpq7mxfn2OwTKghJabfN14kpd\/hkZeuGX3ojZD+v89A07KrDKP1jqM30pzOzS+cqhg+0OWSRNIDTlZOblGzD69wXZK4Ws0br0KJtFFc+X8SgmSaOzLJeslwQeh\/wFi+YKWlwP6laU+BHc5GvUPyldSo9PnT+19S0ItbUuzNb5Z09WLZkHmZKikOH4SmmzXjaXtdPA3QOw5PEHPtr2rr1n924tT0gS5XsNU0DCo2Nh753DWl4CrbH0sybS8OucZx1\/xV6uSJKpSIqTnbQf+MpR+F\/clV4UZGJiNTaC7cF10jpBw2nF5wWDldP1IdWDDHMSbPAlOi3mH11Yj43AVNjrq1JQ0bPBqtYFf1XJf9wHaDefQ3a1aSYfCxYRetHXHsk5Ac+XAqOPHkxcpMvePwRLrDsfH58opRqS417M4L95Vmjir5TJ1ascK5cFgJDx8JYKTeMQWReQD26R2E8JwkkxHGarWaAYTPGb7i6whJRwwVC44oFQ0ZamrBXEfOxCiYkvQOqy9yk+fNaHbWbTvRss+jc3sdLR+nKKaR7UTGb5TNKR1+0eCMY59wKJaiee585aTTSEP1jqM7xFz929q6g9c2Nssb1k6YodYjrvh91+z6p1yXZJ7gATkAcvSOK0jNBbBC7yCE5ySZjDzjAEgdr3BHSCw1VC0oVaqahqn9C+Y5cnKjYU7ROyxvEJFpVup3Rrc6m\/bV2E56MP2lZjhaPl5tjvtOfudXWDGNPJU2d+OQ8rUhMcJ3RlM0ij6bEtyjkhl2x\/qV5RVjUlRVEkk3ZtgrkLzrDdeCtpXOC7OrkXT205pEZyE5exDJZM1k5MnTOwARQIT444bqBS9ZCs3\/MRUVtMFerXdI3tCKmn8\/Jc7Douaq49Ac1Vl5+GyvHRp1WYJvo\/MvBtRlVxmi9Y6jKwpz5R+razZ9cLJ8doqqfnPzU4RhRkupOnDj3Y5r1+fanmqfaXt06nLn1fOqkZSqd2whZGTG0o8G6x2E8Jwkk5EnT+8AhA4IcWWGmgUvWQpjPjZtL2iFrUrvkHqLSBnwrfQbHWYlutaDy0325jda+Cy1z1zGqLGV\/fO2+yFEvzgyCOsODqFeHjMZGFl2+9o1x0+ar2pqmaF3LHpSGXV71WHrfuO4aXO27TlDvv2BmStcC2c3Iyak3rgEGb\/\/nyKiQUT0KhEdJqJtRPQxEfW6WgIR\/YiIep38EpGViH7d4bGRiKqIaFlv2+plvx8TUZIv25RkMvLk6R2A0BEh5pShbsHLlrVxH5q3rWlG+2m9Q+oNAxlHLEy\/+aSBjD0XbWfbBGf7urVne2n\/6MUhsWaSgcZlVxmCbmerwlz+t6qaLW+fPD03UVWT9I5HDy6m01vV0Wtusd++Pcv2Qvwl9mVzXnedM90Gc8gecRlkxvuzcSIiAO8AWM3Mo5h5CoDfAfCm8sCPAJw1mSSi3uzIvwDAAQBXuePzKdIozHwJM9f7sm1JJiPPBL0DEEGAEH1aqZ\/\/qmVd8gfmrWuaqO2U3iF5ymyIyr14yI93EcjV07Wu9s0TWG3+xiisw5wwqS4xc69\/IvSdLyfQ9oY4Cqrp0RybfW3h8bKYS5tbpukdS6A52HBstWtCwbX2\/7d7lO3FgVfarfP\/o86Y7IJB9h\/43jg\/t38OAAczP3HmCWbeycyFRHQnEW0hol1E9GcAIKIMIiohohVEtIeIPiOiaCK6EsBUAC8RUZH7uVIi+jsRbYeWGN7kbm8nEb1FRF0dnnANgIcAHEeHqivu9u51t7+ViCYT0afuEdVbOlzXVdz7ieh5ALsBDHW319\/9+nXu63cS0Qvu575NRJuIaAcRfUFEPSbYkkxGEKvVmgEgSecwRDAhWCqUhvmvmdf3f8+8ZU0jtXq0JlFvsabEGeemXbvOg0sT7U1vHDzbCyXZPwzqmpxOBcee+pYSNKV1DMwn\/15ZvfX1U6fnJqgc8mWnPNXG5gMfumasvtT214NZtheG\/8ixdME6dfx4wPcjR+Jr\/Doy6W5\/W+cniehCAFkApkObyZtCRGcOO8gC8CgzjwNQD+AKZn4TwFYA1zJzHjOfmTWpYebJzPwqgLeZeRozTwRQAuDGs\/QbBeB8AB8AeAVaYtnRcWbOA1AI4DkAVwKYCeBM0thT3I8x8zhmPtahz3EA7gJwrju2290vrQUwk5knAXgVwG+6+Dv8H3k3FVny9A5ABCmCuYoa579u3uDoz\/Fr8x3jhiVx7DC9w+pO\/6gh82f0X1iwqfqjbovws1o322Ur2Wqw5Ezt+Hx7VL8ZzbGDj8S1nArK+n5PX6icdhpouN5xgJkn2OyFT56unBTHPETvcPyNGdyEmD0fumbWrHBdMuIoDx4NIKROHQoTozOWfmQqXbYw0AcNXOj+2OF+HActGTsO4CgzF7mf3wYgo5t2Xuvw+Xgi+hu0wZw4AJ+e5fpFAL5k5jYiegvAH4joF8x8ZgbmffefxQDimLkJQBMR2dzrH7uL+xgzbzxLn+cCeIOZqwGAmc+sR08H8BoRpQEwAzjazdcJQJLJSJOndwAiyBFM1dQ0903zRmcKx607xzE+PZlj9U9oupARP35Bk7N27d767ouaO1o\/HaSYM1uJTF9NLxHR3uzrTk3ftizoksmGGOz47yRF900tRuYT91VWV5\/f2hbSx1D2hBnOaiTuets1t\/lZ58VjTiPF36NiomcmaMmQv5aj7IE2utcZAbiXmZ\/82pNEGQBsHZ5yAeiuykJLh8+fA\/BdZt5JRD8CkH+W668BMJeISt2P+0FL9j53Pz7Tt9opDhVaLtdd3B1j8cQjAO5n5veJKB+AtacbZJo7suTpHYAIEQRjrdI85y3zxvS3zBvX1VJzj+9M9TI+ad6MobHZ35iu+jo13dH8webOzzbHpc9oi0oJqvWiDLiWXWWI1TcI5ilt7QXrjpWlnN\/aNknXWPyEGW1l3H\/zfY6r1+XZ\/t08zfb45Hud184\/jRQ5+jF4+HPd5CoAFiK6+cwTRDQBQCOAG4gozv3cEKIejzBtAhDfzevxAMqJyATg2s4vElECtFN\/hjFzBjNnAPg\/fHOquzufehH3KmhrOvu57zlTizgRwEn350s86VxGJiOLFMwVvUMw1FHLnLfNm9REjll\/jmP8wP4cP0rvsDpyFzUf0+ZsKqm2nezyRBHVWTpXdZbvV4xpYzrcbCoZ88NDk3c+FDQ17Q4NxrrDg0m3kUAj87GHKqrq57e1d7t8IBQxo+EQD9nzvOsC5S3X\/NxWRE3XOybRrfEA3vBHw8zMRHQZgAeJ6LcA2gGUAvgFtPWQG9wbqpsB\/ADaSGRXngPwBBG14ezHFf8BwCYAVe4\/OyeelwFYxcwdRxzfA\/APIrJ4+PV8RkQ5vYmbmfcQ0d0ACojIBW2K\/EfQRiLfIKI6aAnniJ76p7OUYRNhyGq1RgFoRQgeIyeCCIMTOHrTOY7x\/VI5IUvvcDpiVqs+LnuqvdlZ182Rg+Y9lqT\/yyEipcONLXPX\/9ZmdrTofkIQAw0332ZwNMRqOy0D2zmrM9tthY9UVE2PYg7aIum9pTJVFfOIfc84L47+WJ0xwQGjWe+YhMfeLF228Cq9gxA9k2nuyJEBSSRFXxGoUWmb+Z55S+ar5nWbKqh+n94hnUGkpH4r\/QZn90XN7eOcbQVfrz1JFLt\/9DW7\/ByeR77IoyI9Ekkz85EnT1ftWXG6ckE4JJJOVsrWu8YWXG+\/c+co2wv9LrX\/bd576pypkkiGHNn4FCJkmjty9DhMLYTHCNRM7TM+sGxDLFs259vHxaVx8li9w3IXNS9+\/8Sj0S52njUpctm25xmjppwmJX7Qmeeq+uflOQ2WZqPLFhe4aL\/OoaD0mQsDXAqI2TWvrb3wgcqqmRZGSBfbtrHp8Gp1QtkK56IBW3lMDrQdqSK0BdWSGtE1GZmMHEG3Y1WEhxayTf\/Isn3sy5a1W08qtbv1jseDouYJ9qbXS7\/2DFHSoVGX9bCJx7+e+pZS6TKQKVD9WVT10DOnK\/c\/VlGVH6qJZDNH7X3LNa\/gItuyo2NsK0f9xHHHAnciKcJDrJzRHRpkZDJyyMik8KtWsk39xLwD0WzePt8x1jhU7afbaUuxpsQZ56X9YM0X5S+cdSMLqw0znbbizUZL7v82YJxKmzN69ME37Aq7Aj4VWh+D7V9OVAKzGYTZeW5r29r7Kqtnm7UaciGDGa46xO1+zzWn4WnXJZllnKr7aLjwu0wAQVVxQXyTJJORQ0YmRUC0kX3yp+YiRLGpaJ4jB8PV1Dw94ugXNXj+jNRFqzdVfZh\/ttedrV+kG8xjmonM2tQ2KWmlwy8uHFn64bxAxsmAa9nVhu7KivhMlKruX3G6kvNs9vxA9OcLzLCfRvLO11357c87L8ypQaJUpYgsWQDW6B2E6J4kk5FDRiZFQLWTI+9z8y5Y2LhzriNHHaEOCHi9woy4cflNjpouiprzYEfzewXm+Kv+VwLn2LALho4o\/UglcMCWAB0YgnVH0vxcCojZ8a2W1nX3VNXMMWnFoIMaM5pLeVDxi67z+TVX\/vhmxETcOeDifzL1DkD0TJLJyCEjk0IXNnJO\/K+5GGY27prjGOMYpQ6aEsj+xyfNm9nsaNh6vGXv1M6vqc4Tc1VHWYliSs8BAFaMGWVD5m8YerLgbLXifI6BhvuuMPizMDNiVLXk6fJK43h7cI9Gqky1JTxs73Oui8zvu2ZPsMEckH8DEfQkmQwBkkxGAKvVmgIgQe84RGSzk3PCl+Y9WMv79sx2jGnNUtMCMtpERMaZqYuyW52NJdW2ss6bMwz25nfIkvR\/LiLFAACHR16aPPRkQSBCw6eTqagxlvxTHJzZ9u3mlg1\/qa6dawzSn\/UuVsq3c9bBp5wXx3+hTsl1wdDtsZgiIgVVPVtxdkH5A0b4nIxKiqDhINe4AvNerOP9JbOco5vGuAb7feMJEcWdm3ZN\/4\/LnjrxzaLmjmxn66oCU+z5CwBANViyKwZM2Tqwcts3RjJ9yWHA0ZXn+6cUUKyq7nm2vCIqx+7I90f7fWFnY+k6ddyxFa6F\/der48YClKZ3TCKoyW7uECClgSKDrJcUQcdJrpxCU8n05yxf7i8xlG1i+Pc4rjNFzS1KTE3n11z2XVNVV8OZs2hxIOtqv68r\/PfFSrXPSwExt1\/R2Fyw7lhZdo7dETQ1+lrZfOB916yCb9v+dnC07fmM6x2\/XbBeHT8OIDlIQfQkJWPpR\/L\/JMjJyGRkyNA7ACG64iR1zDrTfmw0Hjw4zZlZPc6VPoNAfnmjayDjiEuG3rT7\/eOPxnQqah5rb3ptT1TSzUMAwGGKm1ibNGZ3Sv3+8f6Ioy4WWwtyFZ9O88e71F3Pl1fEZzocup+pzQxuRMzuD10za1e4Fo4s5bTRkNNMhHcMAJIBdHOyldCbjExGhoF6ByBET1ykZm00HZj1nGX10V2GY+sZrPqjH7MSNf7i9B8Xf6OoOTdPd7bv2HDmYUn2D1r90T8DznuvNiT7rkFuvaahac3a42XjMx0O3WYhmOGo4sTtjzu\/XTjT9q+qibancn\/v\/PGCUk7r5qx0ITzST+8ARPdkZDIyBPysXyG85SJ11GbToVFbjYePTnaOODXBlTFTARl82UesMXH6eYN\/UPjFqRe+VlPS2bZ6pMEytpHIkmCzJE9riht6KL75hE93k+5Lx7rSQb7ZdJPkchW9cKoiJcPp9G9poS4wo62MU3e97DrX+ZLrvPGNiJusRxwi7PUHcFDvIETXZGQyMsi7OhFyVOIRW01H5jxn+bJsu+HIWhWq05ft97MMnjcz9durv\/4sD7Q3vVMEACCivdnXVfiyTwbq7rvC0PeTgZiblzQ0rllz\/OTEDKdzmA9C60XXaDigDll\/l+P6jWNtz\/I8+0MzHnddOqcRcYmBjENEFBkQCXIyMhkZ5BtRhCyVePh209HhO4ylJya6hpdOdo6YqUDxycaV4XFj8xsdNWv31q\/\/X0kadp2a63Ic220wDR\/fEps2ozW6f1lMW3W6L\/r7ZCoVN8f0rUB5isu1\/YVTFQOGBXA00sVUVcwj9z3tvDjmE3X6BCeMftmFLkQX5HdYkJNkMjLIyKQIeUw8tMhYOnSn4djJ8a6hR6Y6R80wQOnz2dLjk+bObHbUdyxqrjia37MoSf\/nJDIYS8b88MiUogf6nEzaDTj8\/Hl9KAXE3HhTQ+PO2+oaAnLco4MNZZvV7MMrXAuTC9QJ4xlKQI+ZFKIDSSaDnCSTkUG+EUXYYOIhxcbjQ3YbjpePcw09MM2ZOdMAxeJte+6i5jlfL2ruzHK2fl5giv3WgobEUdNspvgqi6MptS9xP7FQqVMV8qpcT6rTufXF8oohg50uvyZ07Ww6vFqdWPZv56KB23l0NgCfjMgK0UfyOyzIEfu3tJvQmdVqNQBwAJA6XSIsEeN0tiv9wAxn5jQjDNE933F2zGrVJ2VPtTU5686sQWwzJ\/yoSjGkDOtfvWv1hN1P5nvbdm0ctt5yq7H3RdCZG35e31D8k\/pGv5wMwwxuQVTJJ67pVStcC4cd4KFSk1YEo2dKly28Ue8gRNdkZDL8pUASSRHGmDCoxFg2qMRQVjXGNXjzTOfoaSYYYnrbDpGSelH6jaUfHH+sxqa29gMQbW96vSoq6ZZh1f1yJzkNUY1GV3uvjyVlwHnPYkNKb+9Lczo3v3CqYvhAl8uniSQzXHWIL37XNafxaefFWSeROtaX7QvhB7JUK8jJbu7wJ9+EIjIQUvcbTy1YaVndWmDcW+CAs7m3TRjIkLFw6M2nDWTUakxy6xRn+5Z1IEo8mHnlDm\/C2juM1h0fQB4faUrMtb+qrVv32YlT0we6XD6pEcsMWzmnbHnQeXnhFNvj9ZNtT+b9xXnd\/JNIlaMMRSiQae4gJyOT4U++CUVkIfQ\/aCxfcNBQXjtKHVQwxzFmkhlGj0cUTYpl3CXpN23+8MQTUxhscLYVjjaYx9eXD5qRM\/rgq+0G1RnlaVsqULv8cmWip9enO5wbny8\/PSrVpc7x9J6uMKP5KA8qftF1AV5z5Y9vQbRPT9wRIoDk91iQk5HJ8CcjkyIyEVIOG04veN5SoP7XVFxgg6PB01tjjAnTzxv8g\/Xuh6n25reLQcqAoxmLNvcmhI+n0e7maErqMVTm6qU1tRs+KTs1M9Wler3RR2Wq3aMOX\/trx082j7GtNJ1rv3\/WM66LZ7UgOt7bNoUIApJMBjnZgBPmrFbrjwA8q3ccQuiO0TBcTS2a58ieEAWzR8cZHm8uKdhQ9f4CAGyK++4uo2FYcv6aXwwhcI8n8tiNOHTdHYYRqtL96T0Zdsf6leUVY1JU1as3fk5Wyrdz1sGnnAsTvlAn56pQfHpakBBBQAVgKl220C9HrIq+82hkkoh+T0R7iGgXERUR0YzedkRE+UQ0u8Pj54joyt624w0iSiKin\/mhXSMRVRHRMg+uvYWIrvN1DB7o9UYEIcISIfGYoWrBi5ZC46emooI22Gt6umVYXM6CcUlzCgGQo\/mDeJVo0In0czd50t2ji5SG7hJJhbnyj9U1mz44WT67t4mknY2lq1x5Bd+z\/35Ppu2FQVfb\/zT\/M3VqniSSIkwp0DaTiiDV45pJIpoFYBGAycxsI6L+ALwpFJwPoBnA+h6u84ckAD8D8JinNxARQRu57e6d0AUADgC4ioh+x90M8zLzE5727WMer+8SIiIQ4k8Yaha8pBQ2p6spBfMdY8fGwNLl1PK4pDmzmh11W4+17J3qaPlPwZERi9KGlf232y6q47F5Q44yvavXM+32dc+WV45NUlWP35i3smX\/5+rk0\/92Lhqyh0dkAsjw9F4hwkAKgGq9gxBn58nIZBqAama2AQAzVzPzKSI6j4h2EFExET1DRBYAIKJSd8IJIppKRKuJKAPALQB+6R7ZPFN4dz4RrSeiI12NUhJRKhG9RURb3B9z3M9PJ6IN7hjWE9EY9\/PjiGizu59dRJQFYBmAUe7n7nNfd6e7vV1E9Gf3cxlEtJ+IngewG8A8IiohohXukdnPiKhjHbtrADwE4DiAWR1iXkZEe91t\/9P9nJWIfu3+\/CZ33zvdX5s\/Rw8lmRTibAhxZYbaBS9b1sZ+bNpe0AJb5VkvIzLOSF2UkxqVvld17J\/pRKOpfOCMLV01y4DjnsWGsyanCnP536pqtrxz8vScJFXtdqqdGWoDxxa\/6DyvYIHt\/rKxtmfH3O64dYE7kRQi0vT5tCvhP54kk58BGEpEB4joMSJaQERRAJ4DsJiZc6GNcP60qwaYuRTAEwAeYOY8Zi50v5QGYC60kc+upoofct83DcAVAJ5yP78PwDxmngTgjwDucT9\/C4CHmDkPwFQAZQCWAjjs7vtOIroQQBaA6QDyAEwh+t95uVkAHmPmcQCOuR8\/6n5c744B7r+D8wF8AOAVaIkliKgfgMsAjGPmCQD+dpav6W1mnsbMEwGUAPBnMVavTwYRIiIQYk4Z6ha8Ylmb8KF525pmtJd\/4xKi2HMGXZMab0o5bW96o\/5g5hVdfl\/tHk7ry1LpG8W\/c2z2wsLjZTGXNrd0uauaGY5KTtz2mPM7hTNsj9ZMtK3Ivct544JjPEhOohGRTpZwBLEep7mZuZmIpgCYB+AcAK8BuBfAUWY+4L5sJYD\/A\/BgL\/t\/1z2NvJeIuqqndj6AsdqsMwAggYjiACQCWOkeeWQAJvfrGwD8nojSoSVtBzvce8aF7o8zdePioCWNxwEcY+aNHa49ysxF7s+34auppUUAvmTmNiJ6C8AfiOgXABoAtAN4mog+BPDhWb6m8UT0N2jT73EAPu3ia\/cFGZkUwhOEqNNUP\/9VyzrbAE5cc45jXGY8Rw\/+38ukpF405IZjHxx\/bGi7c9e+mpSxu\/rV7p3QsQkVqLn\/MiWv43MG5lP3VNWcuqSl9axHITKj9QSnFr\/sOs\/1suvccY2Im+KXr0+I0CbJZBDzqM4kM7sArAawmoiKoSWOXXHiqxHPnhIZW4fPCQCI6G4AC9395rnbmsnM7R1vJKJ\/QUvmLnNPo6923\/MyEW1yt\/ExEf0EwJFO\/RKAe5n5yU5tZgBo6SZGF4Az09zXAJhLRKXux\/0AnMvMnxPRdADnAbgSwM8BnNupzecAfJeZdxLRj6CtJ\/UXmRoQojcIlkpqmP+aeb09lRMKz3GMG5HAMekAYCDD8IVDb97z3vHHRuwbtfDQnNq9X7v1g5m0pyXaPcvBzLk2e+G\/T1dOimP+2lGKzGg4wOm7V7ouNL7jmjehDZZeb2oUIsJIXewg5skGnDEAVGY+6H4qD8BhABcSUSYzHwLwQwAF7tdLAUwB8AncU8JuTQB6LBzMzL8H8PsOT30G4FYAZ9Y65rlHChMBnHRf86MO8Y4EcISZHyaiYQAmANgJoGOdtU8B\/JWIXnKPvA6Bdn61R4goAdpI7dAza0mJ6HoA1xDRBgAxzPwxEa3DNxNZuGMpJyITgGs7fB3+IN+AQniDYK6ixnmvmzc4+nH82nMc44Ylcewwraj5jVs+OvUWGuOHH0hoOjYaAGxGHHxlgTIHAIzMJ+6rrK4+v7XtzPIZuJgqd\/Go\/U87L475jzptghPGPhcmFyKCyMhkEPMk0YgD8AgRJUEbdTwE4GZo6wTfICIjgC3Q1kQCwJ+hTfH+Fe7RQrcPALxJRJdCSw49dRuAR4lolzveNdDWRf4D2jT3XQA+6nD91QB+SEQOAKcB3MPMtUS0joh2A\/jEvW4yB8AG9xR4M4AfQBt59MRlAFadSSTd3nPH9Gdofy9R0EZAf3WW+\/8AYBOAKvef\/iwoLN+AQvQFwVRDTXPfNG90JnPcunMd44YkGxOmnTfwW2u22zYemLFHSyb\/9W2lSSUok9vbCx4\/XTU1hnmogw0nNqo5R1a4FiYXqrnjGcoAvb8cIUKU\/C4LYlK0PMxZrdYnoSX\/QghfYLiSOHbTOY5xg9pbag8a1jyW3WquO337zwyDHqyoqp\/R6or9Us07+W\/norQdnDVa73CFCBP5pcsWFvR8mdCDTIGGP3k3J4QvEQz11DL7HfNmNdEUc3pM7pytn2WsMf7f4SEtf3PeOvIgp2cAkPI9QviW5CtBTP5xwp8kk0L4gWJwtqcML3Q+kHix8fK6TUoDdtqyXPvKpjfRyUG17BzQAPRrYlN8K2Ki7Ug0upBC2lpvIUTvEZYt1DsG0QVJJsPfN+oiCSG8Z7G0lGdmbjqQnHJywpvOq10HSobP\/gfu7PeB+a51Y2JKZ3w8ILbo6ckJdNRknAii2I73mh3c2q8R1QPquX5QHVrS6tg+oB7cv5GNiS2IirEhweRECgH9SL53hehIzuUOYpJMhj9bz5cIIXqSkFixNytzU110TMN0IqRtw9Sij0vOh4L2VIaCRfa7575lthZe2nxw\/qXNLWglanktIW7diwnx5kqDYRKIjHYTxZT3w7DyfjRsZzd9GVzsSG5G9YB61A2s5+a0Wm4fWA81tYENSS2wxLYjzuxAssJIJfk5LiKDJJNBTH4Ihb82vQMQInSxmpZ2YPPwjKIYk8n+vwLl5Ug78aD914mm05UdTrohusL+5\/kvm\/5WMNuwd0EMc+z1DU1zrm9oQq2i1DyTlLDn7bi4pCaFcnGWkxQ6chnIVJ2ItOpEpO0d3vWlxKwmtKAqtQG1g+q5aVAt2gfVsTO1gSm5GZb4NsRaHEgyqEglOcBAhDZJJoOYJJPhT5JJIXrJYHA0ZYzYvn3QoIMjFYVndnytDVHN\/w\/L2w17Gk8R8I1jE7\/vuGvB07hv9XmGHflnnktR1X6\/rq2f\/+vaehw3GsueSEo49FlsTLpNUfq0UYeJlIY4pDbEIfXQkO5nxWPbuLFfE6oH1nHDoDq0Dqpj54B6oF8TGxO+WtfZT9Z1iiAlyWQQk2Qy\/LX3fIkQAgCiohrLsrI2HU5MOj2JCAs6v84AL8UDe+x240hLVfuQrtq50XFn\/qN4aPVCw6b8zq8NczrT76muTb+nuhbFZvPBx5MTT66PjspyaYcn+E1LNCW0RCPh+IDuk05Z1ymClFPvAETXJJkMfzIyKUQPkpNP7hqVubk1Kqp5GhHSu7ruAfxmTTUNWGDeWbWGgPldXQcA\/+e4Pb8dj6++wlCY39U1uXZ71mMVVVkMcGF01M4nkhIbd1vM45gopQ9fTp\/Iuk4RpFr1DkB0Tb7Bw58kk0KcleocMmTf5mHDdyYZjc4JPV39CRat30YzFlCrs4zq7DN7uh4A7nD8NL+VLQU\/NH7xjVHOjgig+W3tE+e3tcMBOD6Mi93yTGKCo9RkzANRjKdfUSD1ZV3nwHp2pTYwUppgjmtDbNRX6zqjA\/gliNDS4o9GiegBAMeY+UH3408BnGDmH7sfLwdwkpnv97C9fAB2Zl7vwxhdAIo7PPUqMy\/zVfu+IMlk+JNpbiE6MBptDSNGbisaOPDIaCKe7ck9+5Fd8iJ+NAkATEW1pYSuRy87+4PzhgVtMK+5yfDxPKKep4VNgOmy5pZplzW3oIWo+dWE+PUvJcSZqwyGPGjH14aU3qzrjGnnhv6NqJF1neIs\/DUyuQ7aMcwPEpECoD+AhA6vzwbwy160lw\/tiGaPk0kiMjJzd9P4bcyc14sYetO2T4TcDybRazIyKQSAmJj60sysjccTEqqmnG09ZFfqkFz5N\/wlCUTR1OQ4Qk2OWb3t+x7nD+bbYC78ueHdOURQPL0vljnuxobG2Tc2NKJGUaqfSUrY+05cXEqTQRnf2xhCQWsUJR6PQqIH6zrb+jWiStZ1RhS\/jExCS\/oecH8+DsBuAGlElAwtgc0BwERUACAOQDWAHzFzORHdBuAWaOs59wJY6n7sIqIfALgVwD4ATwAY5u7jF8y8joisAEYBGAngOBHtd18z0v3ng8z8cHeBE1EpgKnMXE1EUwH8k5nzz9L27wA8Ay1RrgJwPTMfJ6LnoA04TYWWQP+KmT8kIgOAZdASYwuAR5n5ye5ikWQy\/EkyKSJav37Hd4wctcVhsbROI0JGb+51wGi7Ew9VqmQYDwCmoppK0n5A99py59Xz2tiy7k7jazOJen8yVT9V7X9nbf38O2vrccxoPPF4cuKRz2Ni0u0KjfImnlBmN1G0D9d1piiM\/rKuM+j5ZWSSmU8RkZOIhkEbhdwAYAiAWQAaAJRASzYvZeYqIloM4G4AN0BLHkcws42Ikpi5noieANDMzP8EACJ6GcADzLzW3cen0BJUABgLYC4zt7kTwGwA5wCIB7CfiB5nZgeAaCIq6hD2vcz8Wg9fWse2PwCwkplXEtENAB4G8F33dRkApkNLPr8kokwA1wFoYOZpRGQBsI6IPmPmo111Jt884U+muUXEIXLZ04fu2Tx06O5Ug8E1ydt2\/oi\/b2mj2LkAQHW2Emp1zehLXI+5Lp3TBvOGPxpfmEbk\/c\/f4U7n0GVVNUOXoQY7LeYDjycllm\/UdoQP7kt84cbTdZ1g5sRWVPdvQO2gOm4cVPdVvU5Z1xkU2nL2lfhzqnY9tERyNoD7oSWTs6ElkycBXAjgc3d5WAOAcvd9uwC8RETvAni3i7bPBzC2Q2nZBCKKc3\/+PjN3HPD5iJltAGxEVAlgIIAyeDfN3bHtWQAud3\/+AoB\/dLjudWZWARwkoiPQEtoLAUwgoivd1yQCyAIgyWQEk5FJETFMpvaakaO2FKemlo4lwty+tPU0flJwnDL+Nx1u3lnb4osp02ddF89qh3nTPcanJxHB3Nf2Jtrso5+oqBrNABdER+98MjmhcY\/ZnMtESX1tO2IQUUMs+jfEov\/hwbKuMwg1+Ln9ddCSx1xo09wnANwBoBHAagBDmPlsy1sWQqvq8G0Avyei3LNcowCYycxfG9hxJ5edp+47nljnQs85mtPdPvDNQwk8XRbAZ3lMAG5l5k89bEOSyQjQpHcAQvhbbFzNoaysjeVxcbXTiJDf1\/bWYd7WVbjgf8moUtW+k2zq1L62e8YrrvNmtLN5y\/2mx3OJfHMyDQGU39Y2Mb+tDXbA\/mFc7OZnkhJcx4zGPBDJaJqPyLpOXfg7mVwP4NcAjjCzC0AtaW\/GxgH4CYBbiWgWM28gIhOA0dCmv4cy85dEtBbA96CtqWzC1zfwfAZt7eR9AEBEecxc5KO4SwFMAfAJgCt6+Pq+B21U8loAhR1eu4qIVkI7gGEkgP3QpuJ\/SkSrmNlBRKOh7WjvMkGVZDL8VekdgBD+wZyaWrpt5KitZDa3TwHQp9NkzjiBYUcfw+1Z0BahAwBMu2p9\/sv+HXXeNLvDtO1fpodziODT8j9mwHx5c8v0y5tb0EzU9EpC\/LqXE+Kjqg1KXsevS\/hPL9d11qQ2oHZgHTen1bFtYB1cqY2sJDUjKk7qdQLaCKE\/FUPbnPJyp+fimLnSPd37MBElQvs3eBDAAQAvup8jAA+710x+AOBNIroUWhJ5G4BHiWiX+9410Dbp9EbnNZP\/YealAP4M4Gki+iu0EdSu3ArgWSK6E+4NOB1eOw5gM7QE+BZmbieip6CtpdxO2hBqFb5aY3lWxNx5hFOEE6vVGg0p9irCiKI424YNK946JH3vYEVRfbr5pAWxDT\/D07VOMv3vmETlVOtWc3Gdz0YlOztP2Vb0lGl5JhHier66b6oNStXTiQkl78bHpTQr4bkjPGxp6zprInRd5xc5+0ou0DuIcOPezf0hM7\/Z57YkmQx\/Vqu1EdruMCFCltncWpGZuakkpV9ZLhH6+bp9FYrr5\/h3UQMlT\/nfk8xs+W\/5PnJxTje39tk8ZVfx86Zlw4m+Nj3mV6VG4\/HHkxOPfBEbM8xO5NUOdRGcwnBd56s5+0qu0TuIcCPJpOgVq9V6CNq2fyFCTnx81f6srI1VMbH1032xYaUrd8NasJdyv1Z\/0nCseaNpX4NHp9301Qzau\/cV898GK4SkQPTXUZHFvP\/xpMTTG6OjRqtEaYHuX+iji3Wd6NfEhsQWRMW2I97kQgpppZP0XNf5UM6+kl\/o2L\/oQaSuv4g0FZBkUoQUVgcOOrR1xIgdZpPJlgdgjD97ewtXF3ZOJMHsMh5oGODPfjvaxGPHXmH\/8\/63zFaXQuzzkdfu5NnsY56sqBqjAurqmOiifyclNO2VHeFhz9N1nYrKzuQmVA1oQJ1O6zor\/dCm8CFJJiNDhd4BCOEJRXG0ZGQUbU0bfCBDUdTpgehzJ\/J2vY2rv1E\/0nC4aQOpfSsv1Fs7OGvMt+1\/O\/S++S7VQJwayL4BQAGUc1vb8s5t1XaEvx8fu\/nZxATXcaNxEoh8sutchB5VIWNNItJqEpFWMkyXep3yOyzISTIZGeQbUQQ1i6X5VGbWpgPJyacm9eaow76qQuqp+\/D7NBB9ffpcZbvxSFNGoOLoaA+PyLzEfu\/Rj82\/cxmIB+kRA6DtCL+yqWX6lU3ajvCXEuK3vSo7wkV3fF+vsz9pu4zld1iQk2QyMsgUgQhKiUnlezIzNzdERzdOJ0JAT2+xwdL6WzzYxKR8YwrduL9hIzHmBzKejvbzsBEX2O879pn5NyeNpA7RK44z4pjjf9LQOOcnDY2oMihVTyUm7n0vPrZ\/i6KM0zs2EZp6U68zoRUnvwxQXMI7kkxGBnlXJ4KI6ho8+MDm4RlFcUaj42wnRvgdA\/w7LN9po6hvnmrhUlsNx1v8unvbE0d48PBz7cvL\/mv+9XETuYbpHc8ZqS419Xe1dQt+V1uHIybjsceTEkv\/GxszzEE0oue7hegdu4miqxP\/d3yhCFKSTEYGSSaF7gwGe+OIkdt3DBx4aJSinPVosoD5F35ZUEFp+Wd7zbS3YQshcFPt3TnOA9MX2B4oX2351VEzOYMuWRvpcA6\/r6pmOKpqsM1i2fdEckLF5qioMSqRbtPzIuw4IL\/Dgp4kk5FBprmFbqKjG45nZm06mphYMTmQ6yG78gUu2rgRc84eh0NtUE61TgxwSN06hf5p82wPVhZYfnkoihw+OeXHH6bYbNkrTldlq4C6Kia66N9JiU0lZtMEaCeECOGt8uIlxVLDMMhJMhkZTugdgIg8ySllOzNHbWmzRDVPJ0JQTNMeQtb+Z3FTLrQjwr7BVFxXFCyjkh1VIGXAHNvDSqHl9v0xZPdrmaS+UgDl\/Na2vPO1HeG2d+PjNj6XGI8T2hnhsiNc9FaZ3gGInkkyGRmOA7ABsOgdiAhvRKpjyJC9m4cNL04xGJxBNcLXgMTqP+PuWBDFnvUCm6tKqWr327GJfVWDxP6zbY8Y1lpu3xtH7WP1jscTZsBydVPzzKubmtFE1PhSYvzWVxPiY2oUZaLsCBcekmQyBMgJOBHCarWWAMjWOw4RnozG9rqRo7btHDDg6BgiDroTVJwwOH6Gp\/e2UHyXCa55c9Uapc6u2w5uT8WjpWGd5fbjCdSqy+YlX6g0GCpXJCXs+yAutn+LooREYix0c3\/xkuI79A5CdE9GJiPHQUgyKXwsJqbuaNbojSfi46unEiFf73i6YsU9G1sofl5Xr1Or8yTV2b9RuDwYNSE2cZbtkRFrLbfvTKbmoBr99dQAl2vA72vqBvy+pg6HTcbSx5MSS1fFxgyXHeHiLA7oHYDomSSTkeOg3gGI8NG\/\/7HtI0dtcZnNbVOJENQJwPO4vuAoZXa7DtJUVHuUAN3rOXqqBdFxs22PZBVabt\/enxon6x1PX4xyODP+WVWTgaoabLVYSp5ITqzcEmXJVokG6h2bCAolegcgeibJZOSQZFL0CZHLNnTY7s3p6XsGGQyukEhgNmHW9k+xsNsjEanJcZSaHLqWKvJGGywxc2wPjy2w\/HLrIKoL2rWevTHVZst56nRljgqo\/42J3v7vpMTWfWZTruwIj2iSTIYASSYjhySTwismU1vVqMzNe\/r3Pz6OCF1OFQebkxhy7GHcMbKnjR6motrThOAeXe2KDeaoebaHJnxp+dWmdKoOiWl6TyiAckFr2+QLWttgI7S\/Exe3cWViPMq0M8JlI2HkqCleUlyldxCiZ5JMRg5JJkWvxMXVHMzK2ng6Nq52ejCvhzybVsQ0\/h7\/dIIoqbvrqN6+n1qdMwMUll84YDQvsD0w5XPznRtGKqdDboS1JxZG1Peammd+r6kZjQo1vJiQsOW1hLiYWkXJA5Gid3zCr\/bpHYDwjCSTkeMEgHYAUudNdIN5wICjW0eM3GYwm9snA8jSO6LeUkHqb\/DgfgeZp\/V0rbmoppGA7g8HDgEuGIzn2\/85\/RPz0nVjlLI5esfjLwkqJ\/6svmHuz+obUGEwVLh3hA9oVRTdj78UfiFT3CFCSgNFEKvVuhvAOL3jEMFHUZytw4bv2jpkSEm6oqgj9Y6nL\/6Ou1bvokn5PV2nVLfvMm+rmeD\/iAKHoKofmO9aN14pDZnlCL5wwGQ6+kRy4vEvY6IznETD9Y5H+MwdxUuK79c7CNEzGZmMLAchyaTowGxuOZ2ZtWlfSsrJiUQI+hqLPXkPl6\/zJJEEANOu2rB7J81QlEX2u+e+ZbaumaIcDPl\/T0+NdjhG3F9ZPQIAtkRZ9j6elFi9TdsRPkDv2ESfyDR3iJBkMrLIukkBAEhIqCjJzNpUGxPTEHLrIbuyB+P3vI7ve7SrWSlv3UYOnuLvmPRBdIX9z\/NfNv2tYLZhb9AdDelv09ptY6edroQLcH0RG7N9RWJC637tjPAEvWMTvSbT3CFCksnIskvvAISeWB2UdnBzRsaOaJPJHpLFrrtSjf7l9+JP\/T3d6WvaUx\/j75j09n3HXQuexn2rzzPsyNc7Fj0YAMNFLa2TL2pphY3Q\/nZc3MaViQk4aTTIjvDQ0AbgmN5BCM\/ImskIYrVacwDs1TsOEVgGg6M5I2PH9kFpBzIUhYfpHY+v2WBu+xmeOdpO0R4dy2c43rzRVNIQ0ju4e+NR00OrFxo25esdR7BoUKjhhYSEXa8nxMXXKcoE2REetIqKlxRP0jsI4RkZmYws+wE0A4jTOxDhf1FRTWWZWZsOJyWV54XDesiu3IX7drRT9GyPLmZWjfsbUv0cUlD5P8ft+e14fPUVhsJ8vWMJBokqJ\/68vmHez+sbUG4wlK9ISjjwYVzsgDbZER5sZL1kCJGRyQhjtVrXAKFTeFr0XlLSqeLMrM3NUVFN04nQbcHuUPc4bl29lvLzPb3ecLhxnelQU9iWzunOX43PFPzQ+EXEraH01H6T6cjjyYnHC2KiR8iO8KDwp+IlxX\/ROwjhGRmZjDzbIMlkGFKdg4fs3zx8+M5Eo9GRq3c0gfAlztu8Fgs8T45UthsPN0VskvAH5w0L2mBec5Ph43lEoV9b09fGOBwjH6ysHgkAm6Ise57QdoSPZaKIGskOIlv1DkB4TpLJyLNN7wCE7xiNtoYRI7bvGDjo8Ggi9myqNwwcwciDT+GnOSDyOCkyHmjYSBy+0\/2euMf5g\/k2mAt\/bnh3DhFkrWAXZrTbxs1w7wj\/LDZm24qkhPaDJtMEEMXrHVsE2ax3AMJzkkxGHkkmw0B0dMOxrNEbSxMSKqeES2kfTzUivtaKey29+sXuUlsNx1qy\/RhWyFjuvHpeG1vW3Wl8bWa4L4PoKwNguLildcrFLa1oJ2p7Mz52w\/MJCUq5tiPcrHd8Yexo8ZLiar2DEJ6TZDLyyCacEJbS70TRqFFb7BZLy1QiRNyUrQuK8zd46JiLjL3a5Wnc27CFAFkv6PaY69I5bTBv+KPxhWlE8nvAE1HM0T9obJ71g8ZmNChK\/crE+E1vxMfF1yvKxN6MkAuPyKhkiJENOBFINuGEFiKXPT197+ahw3b3NxicET26ZsXdaw5Sdu+mqh1qg2VVOROQ5J+oQtc1hv9uusf49CQiyCibl04ZDeX\/Tkw88HFczKA2RRmjdzxhQo5RDDHyjjQyySacEGAytdeMHLWlODX1WA4Rz9U7Hr29gh\/0PpEEYNpdVySjkmf3iuu8Ge1s3nK\/6fFcIkTpHU8oGux0pVlratOsNbXYZzYdfjwp8cSamOiRTqKwq+kaQDIyGWIkmYxMsm4yiMXG1h7OGr3xVFxczdRIWw\/ZlW2YVvQhvjur1zfaXFVKZXuYHpvoG++o86bZHaZt\/zI9nEOEsD8ZyJ+y7Y5RD1VWjwKADVFRu59ITqjdYbHkyI7wXnHAT7+jiOgBAMeY+UH3408BnGDmH7sfLwdwkpk9GhUlonwAdmZe7+M4vwvgHQA5zNxtvU0i+hjA95m53pcx9JYkk5FJ3vUFof6ppdtGjtzKZnPbFCKM0jueYFGOtBMP4DfDQGTq7b2mXbUlhMjewe2Jj9SZU9odpqKnTMsziWQ9tS\/Mam8fP6u8HU7A+WlszLanZUe4p7YXLylu81Pb6wBcDeBB0k4+6g+g45ntswH8shft5UPbg+BxMklERmZ29nDZNQDWuv\/8U3cXMvMlnvbtT7JmMkJZrdZTANL0jiPSkeJsHzZ095Yh6XvTDAZXpt7xBJs2RDX\/FM+UO8iS1dt7qc15yrymoh8Bcg6zh+Ypu4qfNy0bTvS1X7DCR9qJ2t6Ijyt6ITHeUG4wTPLmDVIEWF68pPjX\/miYiAYD2MTMQ4koF8Cvof0eXAygFUAFgIsA\/APaJtVqAD9i5nIiug3ALQCc0I4lXgpgIwAXgCoAt0I7tecJAGeWOPyCmdcRkRXAKAAjARyHthF2mPvxMAAPMvPD7hjj3K+fA+ADZh7jfj4NwGvQkl8jgJ8ycyERlQKYyszVRPQugKEAogA8xMz\/9ulfYDdkZDJyfQng+3oHEalM5taqzMzNe\/r1OzGeSNavng0DvBQP7HGQZYY395uKao8QMNjXcYWzQnVC7vfsd+19xfy3wQrJhiVfi2KO\/mFj06wfNjahXlHqVibG734jPi6hQTsjXHaEa9b5q2FmPkVETtLWs84GsAHAEACzADQAKAHwAIBLmbmKiBYDuBvADdCSxxHMbCOiJGauJ6InADQz8z8BgIheBvAAM6919\/EpgDPHdI4FMJeZ29zJZTa0hDEewH4iepyZHQAuBfAfZj5ARDVENIWZt0H7ff0pM99NRAbgrEtSbmDmWiKKBrCFiN5i5hrf\/i2enSSTkWsVJJkMuPj4qv2ZWRurYmPrp8t6yO7dj9+uqaYBXm2coSbHUWp0zPR1TJFgE48de4X9z\/vfMltdCnE\/veMJV0mqmnx7XcO82+sacNJoOPVkUuLBT2JjBrXLjnC\/JZNu66ElkrMB3A8tmZwNLZk8CeBCAJ+7c3sDgHL3fbsAvOQe\/Xu3i7bPBzC2w\/uCBPdIIwC8z8wdp+8\/YmYbABsRVQIYCKAM2tT2Q+5rXnU\/3gZgC4BnSBvNfpeZi87S\/21EdJn786EAsgBIMin8apXeAUQO5oEDD28ZMWK7yWS2TQIQ6b8sevQxvr1+O033ege2qaj2NAEjfBlTJNnBWWO+bf\/boffNd6kGYtk84mdDnK7Bf6muHfyX6lrsNZsOPZ6UWFYYE53pIkrXO7YAO1i8pLjSz32sg5Y85gLYDeAEgDsANAJYDWAIM59ts99CaOuvvw3g9+5p8s4UADOZub3jk+7ksqXTtbYOn7sAGIkoBcC5AHKJiKEls0xEdzLzGiKa747jOSK6n5mf79BHPrRkdhYztxLRaiBwFRrkOK0IZbVajwIo1TuOcKYojpYRI7eumTP35WOjx2yY7k4kRQ\/2IafkJSzx+u+K6u37qdUpo5J9tIdHZF5iv7fZxXRa71giyVi7I\/ORyur8otIT6U+ertw9qb19DTFHymkwhQHoYz2ARQBqmdnFzLXQatDOAvAKgFQimgUARGQionHuzTpDmflLAL8FkAhtTWUTtGnqMz6DtnYS7vvzehnblQBeYObhzJzBzEMBHAUwj4iGA6hg5hUAngIwudO9iQDq3IlkNoCA\/gyUkcnItgraWhDhQxZLc3lm5ub9ySkn84hkJ3Fv1CG58m78OQnamh+vmItqGwmQ9Wc+sJ+HjbjAft+xz8y\/OWkkdYje8USa2W3t42e3aTvC\/xMbs\/WppAT7YW1HeLjuuP9PAPoohraL++VOz8UxcyURXQngYSJKhJYjPQjgAIAX3c8RgIfdayY\/APAmEV0KLYm8DcCjRLTLfe8aaJt2PHUNgL93eu4t9\/MbAdxJRA5oO8iv63TdfwDcQkQl0DbwbOxFv30mu7kjmNVqvRbAi3rHES4SE0\/vzczaVB8d3ThdjqjrPQeMtp\/imYNtFDve2zaU6vZi87aas00\/iT4YRhVl\/zX\/WjWRSwpx66yNqPX1+LiiFxPjTacNhrww2hHuAtC\/eElxvd6BiN6TX3iRTdZN9pnqSks7uGV4RlGMyWSfoHc0oewP+MeWNort00k\/pl11Ll\/FI75ynAemL7A9UL7a8qujZnLKWlQdRTPHLGlsmr2ksQl1ilL7XGLCnjfjYxMaQ39H+AZJJEOXjExGOKvVWgKtRIHoBYPB3pgxYseOQYMOjlIUjrRF8j73FG4p+JIu6NORh0p563bzrrrO64iEDw1EbWWB5ZeNUeSQmqhBpsxoOOneET7Epii9rssaBP5f8ZLie\/UOQnhHRibFKkgy6bGo6MYTWVkbjyQmVkwmkvOefWEt5m\/9Euf3udamaU+9nC3tZxVIGTDb9rBhreX2\/TFkl6oEQSTd6Rry1+raIX+trsUes\/ngY8mJp9ZFR40KoR3hn+gdgPCejExGOKvVejm0Bb6iG8nJJ3eNytzcGhXVPI0IBr3jCRfHMfzI77C8H7SF7V4zHG\/eZCpp8Kq4uei9JDTVrbXcXh5H7WP1jkV0jQFeFx1V\/ERSYv0ui3kcEwVr3dBTxUuKZYNXCJORSfEFADsAs96BBB\/VOSS9ZNOwYbuSjUanrIf0sWbE1f8Bf1f6mkiCWTXub+jvo7CEB+oRnzzL9oiyznJ7cQK1yoanIEUAzW1rnzDXvSP847jYLU8nJtiPmIx5IIrVO74OArGLW\/iRjEwKWK3WTwB8S+84goXRaKsfOXJr0YCBR8cQsZxf7gcqFNfPsaKogZKm9LUtw5GmdaaDjXN8EZfonVi0Na+13H44mZon6h2L8FwrUctrCXE7X0qIN1VoZ4TrPbB0VfGS4jd1jkH0gd7\/gURweBeSTCImpv5oVtbGE\/EJVVPlqEP\/ugd\/WttASX1fc6qyw3ioUcrV6KQF0XGzbY9kFVpu396fGmXzU4iIYY69vqFp9vUNTahVlJpnExP2vB0fm9yoKON12BHuBPB5gPsUPiYjkwJWq3UQtDNJI\/JEpH79ju8YNWqLw2xpnUYkxa797U0sLnyHru7zhhsAMO5vWGMsbZbC8DqzwN5eYPnl7kFUN1XvWIT3jhuNZU8mJRz+NDZmcAB3hK8pXlIsmxlDnCSTAgBgtVrPnFcaEYhctvShe7YMHbo71WBwya7UACnCpF334ffZIOr7Gl0Xt1m+ONVIwEAfhCb6yASn\/UvLr3akU7VshAoDxWbzwceTE0+tj47KdBH5c3PM74qXFC\/zY\/siAGSaW5zxDiIgmTSZ2qpHjdqyu3\/qsXFE6FOBbNE7lRhw8p\/4f2k+SSQBGEvqNxOkPFOwcMBoXmB7YMrn5js3jFROz9I7HtE3uXZ71mMVVVkMcGF01K4nkxLriy3m8UyU4uOuPvZxe0IHMjIpAABWq3UUgEN6x+EvsXE1h7KyNpbHxdVOI4LUIwywdlhafopnyuwU5ZtRYIfaaFlV7iIg2SftCZ9RoLo+MS\/dOEYpk01RYcYBOD6Ki93xdGKCs1TbER7TxyaPFS8pzvBFbEJfkkyK\/7FarbsAhFGZD+bUAUe3jRy5jczm9j7vGhbeYYB\/hUc3VdKgmb5q07SjpsBQ2S6jkkGKoKofmO9aN14p9cnaWBF8WolaXk2IK3opId5SqZ0R7s1M5z+KlxT\/1ufBiYCTaW7R0TsIg2RSUZxtw4bt2jokvWSwoqiyIUBnj+CONZU0yHeJn81VrVTKm4NgxlCURfa7575ltq6ZohyUDVJhKIY59oaGpjk3NDShRlGqn0lK2PtOXFxyk0Hpze+QV\/0WoAgoGZkU\/2O1WvMA7NA7Dm+Zza0VmZmbSlL6lU0ggq\/X9QgvfIaLN6zEjTN9WW7EtKW6wFBrk1HJEPGy6W8Fsw175d8rQhwzGk88kZx4+LOYmKF2hUZ1c+mB4iXFsvkxTEgyKb7GarUeBZChdxy9EZ9QuS8ra1NNTEz9NCI5ySdYHMTo\/VbcM9QH66q+0uYst6ypSCbIutdQ8rTpvtXnGXbk6x2HCKxdFvOBx5MST22IjhrtIhrc6eW\/Fi8p\/qMugQmfk2lu0dnrAH6jdxA9Y3XQoENbMkbssJhMtjy9oxFfV4+kqr\/gb3E+TSQBmItqDxEg6\/BCzI2OO\/MfxUOrFxo25esdiwicCTb76McrqkYzwGuio3Y+kZTYuEfbEZ4MmeIOKzIyKb7GarXmANirdxxdMRgczcMziralpR3IUBR1uN7xiG9ywmj\/KZ7e10pxPj3PnJodx8zrKoeQvAkOWctNj6++wlCYr3ccQj92wP5+fOz7V95x6iq9YxG+E5EnnoiuWa3WEgCb9I6js6ioppPjx39RMGv2q64hQ\/YtkEQyeP0J92zydSIJAKai2pOSSIa2Oxw\/zX\/BeX6B3nEI\/ZgB85VNLVv0jkP4lvxgFmfzHICgOMUiKal8d2bmpqao6KZpRPDnKQzCB1bixjWlNMrnu3ep3n6AWpxSCDsM\/MF5w4I2mNfcZPh4nhxfGpFUAC\/pHYTwLUkmxdm8CuD\/t3fn8VGW9\/rHP99soCJWRcE9FnHBqghuoCAm1lONrW21tZ7WLtrj8qva1hZLq5yOtWrqUsWtatVqPUdr1eppSxctsikgCATZBBwZEFlkSQYCZJu5f388DyUgZBlm5p7JXO\/XKy8yk2fu+5oo4cr9bPfh7SSHZOLggxdOO6J89t4lJc2f8ZNBOmsqQ2a8xvkZuVB12ez1dYaKR1dxR8s3hjVSNum64lfPNNMesgIzjkj8I98hJL30l1g+IRKJ1BFcczKrioub4kf1mzLhrKHPrep71DuDVSTzx3IOjT3IjX0xK0732EXrGuZaQ+K0dI8rft3b8tWhd7dcOsU5Er6zSFY96zuApJ9WJmVXfgdclo2J9tgjvqxfv6mxnvt8PNBM91rON5vYM34zdycx+1Qmxi+dXduciXHFv0cSF525hbIp\/13y7Klm+veoAGwGXvYdQtJPf3llV8YCHwKHZWqC\/fZbPrvvUdMaunXbdKoZh2dqHsmcJJb8CaMXt1hZRu40VLRqyyxrTp6cibElN\/wucf7gBsrevqPkyZN1ndgu7wUi8XrfIST9tJtbdioSiSSB36d7XLNk86GHzX1ryJnPLzj+M+NO6t590+k6Zip\/3cUtk2ptv4zdsrJ0bq3KRQF4PlF5+o3N1852jgbfWSSjHvYdQDJDK5PSlqeBm9MxUElJw\/pP933n3QMPjB1r5jJykoZk16tc\/OYcG5CxwxKKP9w0zRJOx0oWiFeSQ09tai6d8VDpA8eZkdaL3UtOmEYkPsN3CMkMrQjJLkUikfeBSbszxl571X5w0oC\/Tzxj8It79O69ZLiZ65OmeOLRXE6Y+yKXnZqxCZxLlrxXt2\/GxpecNCZ5xqDvNv9okXNoV2jX84jvAJI5KpPSnidSeVGvXrEZp53+0jsnD\/zrkT17rh1mxh7pDiZ+rKXXymr++0DMumVqjuIl9VMsSb9MjS+5a2xy0IBvNo9c4hwbfGeRtFkHvOA7hGSOyqS05wVgTUc2NEs0HnFEzaQhZz63+Lj+kwZ167blFF2UuGtppGzLTdxf56zowIxNknTNJe9vyNiJX5L7JiVPPOFrTbcsTzrqfGeRtHiKSFzHw3ZhKpPSpkgk0gg83tY2paVb1hx73ITxZ5713IbDj5gztLg4oRWlLupm7pnVaHscl8k5ShZvmGpOZ\/cXurdd\/\/4XN926Oulsne8ssluSwKO+Q0hmqUxKRzwCtOz4ZI+91y46eeBf3zz9jJd6HnDAsuFmHOAhm2TJI9wwfqUdMiSjkyTcluJYvX4ZEQBmuX7HfL7pl7UJZx3aOyI56Z9E4h\/4DiGZpTIp7YpEIiuAl4JHzh14YHT66We8OPPkk\/9+dI8etWeZkbFj5yQ3jKNy2lsMy\/gF5UsW1E0z0Ela8m\/z3JFHXdB0Z33CFa30nUVSohNvCoAuDSQdYpa8r7x81sEHH\/LeYUVFycydxSs55wM+vfgJru2PWWaPf21Obij+aPMJGZ1D8tJCd\/iRn226a+lrZTd9VGLJQ3znkQ6LAX\/zHUIyz5xzvjNInhj7Rt\/JwGDfOSR7NrD3+ut4YlPCSjJ+QkxpzboJxasbdDtN2aXDbfXysWU\/TpZaQsfU5oeRROK\/8h1CMk+7uaUz7vUdQLKnheLmETywLBtFksbEuqLVDQMzPo\/ktWWu96FnN95X2uRKlvjOIu2KoxNvCobKpHTGK0DUdwjJjtu4bWq99RyQjblK59TONdg7G3NJfltBr4OGNt6\/V4Mrfd93FmnTw0Ticd8hJDtUJqXDKiuiSeA+3zkk857j8onv2zFDszLZlpaVResaT8\/KXNIlrGa\/A4c0PrDvZle20HcW2anNwP2+Q0j2qExKZ\/2O4G4G0kW9w2mzxnBRZi8B1ErZ7PXvG3TP1nzSNaxnn\/2HND54YL3rPt93FvmE3xKJ63JOBURlUjqlsiK6GXjYdw7JjJUcvOx+RhyBWVau9GD1zUst3qyTuiQldey97+DGBw\/Z4Pac4zuL\/FsTcLfvEJJdKpOSivsJDq6WLmQLe2z8Kfc2OSvaL1tzltas\/8h0iTLZDRvZa5\/BjQ8eWet6zPadRQB4hkj8I98hJLtUJqXTKiuitcCvfeeQ9EliyZ9w34JmKzsqW3NavGmxbWo5I1vzSde1iT16DGl8sN9a13Om7ywFLgHoUkAFSGVSUnUfOnayy\/g1P5m4zg44LZtzltWsrzX9DJI02UK3Pc9sfKD\/KrfvO76zFLA\/EInrih8FSD\/IJSWVFdGN6LiYLmEMX5g8y04dns05i9Y1zLOGRFbLq3R9jZR1H9o4+sTlrtfbvrMUIAfc6TuE+KEyKbvjQWC17xCSugX0n\/8c3zw52\/OWvlvblO05pTA0U1J2duN9gz5I9pniO0uBeZVIfJ7vEOKHyqSkLDyzu9p3DknNevZbfQeRfTHbI5vzFq3aMsuaklkvsFI4EhSXnNt0z2kLk4e+5TtLgXDAbb5DiD8qk7K7HgV05l6eaaK04SZGr01a8UHZnrt0Xm1ZtueUwpOkqPhzTdWD5ybLJ\/nOUgCeIxKf5TuE+KMyKbulsiLaANzuO4d0zih+NWOL7Xl8tuctXr5pmrW4rM8rhclRVHRh0+1nzUj2m+g7SxfWCNzsO4T4pTIp6fAksNR3COmY33Lt+OV2xJlZn9i5ZMmC+L5Zn1cKnNnFTbcOm5zoP8F3ki7qISJx\/fwvcCqTstsqK6JN6HiZvDCJs6ePp3KYj7mLY\/VTLen6+Zhb5D+bbzl7bOLk8b5zdDG1aM+UoDIp6fMMsNh3CNm1pZRHH+X6YzDL\/t\/7pGspWbzhkKzPK9LKlc0jho9JnD7ed44u5HYi8VrfIcQ\/lUlJi8qKaAtwk+8csnP19KgbRXUJZj19zF\/y\/oYp5jjCx9wirX2v+fvDX04MHe87RxcQAx7yHUJyg8qkpE1lRfRV4DXfOWR7CYpaRjD6g4SV+ilzCddQvKQ+a7dpFGnPj5qvHf5sy7k6hnL33EIk3ug7hOQGlUlJtxuAZt8hZJs7iEzeYJ8a6Gv+kvfq3jbI+iWIRNoyquWKsx9vuWCiczjfWfLQTOA53yEkd6hMSlpVVkQXAqN955DAi3xt0nt2vJcTbgBoSW4sXr75M97mF2nDHS3fGPZQ4otvOkfSd5Y8M4JIXCVc\/k1lUjLhF8BK3yEK3SwGzn6VS87wmaF0Xt1Mg\/19ZhBpy70tXx16d8ulU5wj4TtLnvgbkfgbvkNIblGZlLSrrIhuBEb6zlHIVtN7+b389BDMSr2FaEqsL1q1RbdNlJz3SOKiM3\/Rcvk052jxnSXHNRAcyiSyHZVJyZRngSm+QxSiBrptGsmvNzkr6uUzR+m7tXMMvJw9LtJZv0ucP\/hnLVfOcI4m31ly2K+IxKO+Q0juUZmUjKisiDrgOtCxSNnkwI3k13OarPsxXoM0tKwqWtd4mtcMIp30fKLy9Bubr53tHA2+s+SgKFDtO4TkJpVJyZjKiuhM4AnfOQrJA\/x44hrr4\/U4SYCymvWLDfbwnUOks15JDj31uuYb5jnHZt9Zcsz1ROIq2bJTKpOSaTcT3HJLMuw1zp8yjTP8nbkdsk3Nyyze7L3QiqRqTPKMQd9t\/tEi56j3nSVH\/IlI\/O++Q0juUpmUjKqsiK4FRvnO0dUt5uiFz3DlSZiZ7yylNes\/NPB34o9IGoxNDhpwefNPlzhH3HcWzzYA1\/sOIblNZVKy4TfAW75DdFV1fGrNL\/hlD8z29J3FNjS9b\/Utg33nEEmHN5MnnHBp06iPko4631k8+hmR+ArfISS3qUxKxlVWRJPAd0DHIKVbCyVNIxi9MmnFh\/jOAlBas36d6eeKdCHT3HH9L266dXXS2TrfWTyYQrAYINIm\/dCXrKisiC4GfuY7R1fzc+58e7P1ONF3DgBb3zi\/aEvidN85RNJtlut3zOebflmbcLbGd5YsagauIhLXFTmkXSqTkk0PABN9h+gqnua7E2P26aG+c2xVNnu9zvSULmueO\/KoC5rurE+4okK5u9eviMTn+g4h+UFlUrImvPbkFcAm31ny3RTOnPE6nzvTd46tilZvmWVNyYG+c4hk0kJ3+JGfbbqrqcUVfeQ7S4bNJLgtrkiHqExKVlVWRKPoVou7ZTmHxh7ih0dhVuw7y1alc2tLfGcQyYYP3MFHVDTd65pd8TLfWTJkC\/ANIvHmTE5iZjeb2Twze9fMasys04fImNlwMxvS6vHTZnZJepNuN\/aSMGuNmU3OxDz5SmVSfHgYGO87RD7axJ7xm7nHYbaP7yxbFS\/fNN1a3Am+c4hkyzLX+9CzG+8rbXIlS3xnyYCRROILMjmBmQ0GLgQGOudOBM4FPkxhqOHAkPY26mAmM7P2OtEI59yA8KPD83Zw7LzWpd+c5KZWu7t1QeBOSGLJmxi9uMVKj\/Sd5d+ccyUL4jlTbEWyZQW9DhraeP9eDa70fd9Z0uh14MEszHMQsNY51wjgnFvrnFthZpVmNsvM5pjZU2bWDcDMYmbWK\/z8FDMbb2blwDXAD8OVwq3Hjw8zs8lm9kHrVUozG2Fm08OV0FvD58rNbKGZ\/R6YCww1swVm9ttw1fQ1M2vzTl5mFjGzH7d6PDccd8exDzOzu8OvzzGzS8Pth5vZRDMbE27\/6NbiaWbnmdkUM5tpZi+aWY80fO8zQmVSvKisiC4BbvKdI5\/8ilGT6my\/U3znaK04Vj\/Fku5o3zlEfFjNfgcOaXxg382ubKHvLGmwHvg2kbjLwlyvEZSrRWb2iJmdbWbdgaeBS51zJwAlwLW7GsA5FwMeBe4LVwonhV86CDiLYOWzGoJSBvQDTgMGAIPMbOvdwvoBjzjnjgeWho8fDh\/XARe3mvbuVru5\/7cD77P12KeEc59EsBJ7t5kdFG53GsGF4fsDfYEvh+X5FuBc59xA4B3gxg7M6YXKpPj0KDDWd4h88AqXvDnXTjrbd47tJF1LyeINOXF9SxFf1rPP\/kMaHzyw3nWf7zvLbro2Wxcnd87VA4OAq4A1wAvA1cAS59yicLNngFRuD\/uqcy7pnJsP9A6fOy\/8mEVwctGxBEUPYKlzbmqr1y9xztWEn88Aylt9rfVu7q93IEvrsc8CnnfOJZxzq4EJwKnh16Y55z5wziWA58NtzyAol2+ZWQ3wLeCIDszphcqkeNNqd3ed5yg5bQ4nznmJr53a\/pbZVfL+hinmcveHm0i21LH3voMbHzxkg9tzju8sKfpfIvE\/ZnPCsFSNd879HLgO+GIbm7ewra90b2foxlafW6s\/72xVBI9yzj0Zfm3Hq4u0fn2CYIW0La2z7Zivo1cu2XE12IWZX2+Vub9z7soOjpd1KpPiVWVFdBlBoZSdWMMBK3\/FqN6Exw7ljIRrKF5Sf5TvGCK5YiN77TO48cEja12P2b6zdNKHwPeyOaGZHWNm\/Vo9NQCIAuVmtvXnyuUEq3cAMYKVTNh+t\/NGYO8OTPlP4Iqtxxya2SFmdmBq6T8hBgwMxx0I7OqY9knApWZWbGYHEKy6Tgu\/dpqZHRkeK3kp8CYwFThz6\/fDzPYys5w9pEhlUryrrIi+QnYO+s4rjZRt+Qn31TkrStcPvbQpWRh\/24Jjk0QktIk9egxpfLDfWtdzpu8sHeSAbxGJx7M8bw\/gGTObb2bvEuzOHUlw290XzWwOkCQ4FArgVmC0mb1DsFq41V+AL+1wAs4nOOdeA54DpoRjv0THSuiOWh8zWWNmZcDLwH5mNo9ghXXRLl77CvAuMBt4A7jJObcq\/Np04CFgAbAEeMU5twb4NvB8+D2aQrB7PieZc9k41lakbWPf6FsGTGbbb58F70c8OGWVHTzYd45PaElu7DZ2ZZPB\/r6jiOSibjQ1TOj2w7l9rDanTpjbiTuIxG\/2HaKQmdlw4MfOuQs9R9ktWpmUnFBZEW0iWN7f4DtLLniY70\/IySIJlM6rm6kiKbJrjZR1H9o4+sTlrtfbvrO04XVglO8Q0jVoZVJyytg3+n6V4My+gvUGn337Sa4+DTNrf+ssa0rUdhu3qtigp+8oIrmumETL62Ujpn+6aFWu\/WK4DBhEJL7WdxDpGrQyKTmlsiL6R+AB3zl8idJ38ZNcfXxOFkmgdE7tuyqSIh2ToLjk3KZ7TluYPPQt31laaQQuUZGUdFKZlFz0Y4LjJwvKBnqui3DHHuTqXQ4aEquL1jae5juGSD5JUlT8uabqwXOT5ZPa3zorbiASn+47hHQtKpOScyoros3AV4CPfWfJlhaKm0cw+sOklRzqO8uulM1ev9CgzVuLicgnOYqKLmy6\/awZyX4TPUd5ikj8cc8ZpAtSmZScVFkRXQF8je0vA9Fl\/YJfTqm3ngN859gV29TyodU15dpxXyJ5xOzipluHTU70n9D+thkxkyxfT1IKh8qk5KzKiug4gmuPdWn\/w7cmRu3oVG4bljWlNeuWGZT6ziGS7\/6z+ZazxyZOHp\/ladcDFxOJN2R5XikQKpOS0yorovcAT\/jOkSnTOX3W3\/n8EN852mIbmqJW36JVSZE0ubJ5xPAxidPHZ2m6JPB1IvFYluaTAqQyKfngWmCs7xDptpKDl93PiHLM2rv3q1elNevXmn5WiKTV95q\/P\/zlxNDxWZhqFJH4P7IwjxQw\/QMhOa+yItoCXEJwq6kuYQt7bPwp9zZjtq\/vLG2x9Y3zi7YkTvedQ6Qr+lHztcOfbTk3k8dQPkEkfkcGxxcBVCZ3i5ndbGbzzOzd8D6dnf5H18yGm9mQVo+fNrNL2tj+B2bWYGb7pJq7A5m+YGY5daxiZUW0DqiiC5zhncSSN3H\/gmYr6+s7S3vKZq\/XMVYiGTSq5YqzH2+5YKJzpPsOIv8k2KsjknEqkykys8HAhcBA59yJwLnAhykMNRzozDFzlxHcFP7LKczVLjMrcc792TlXnYnxd0dlRXQJcBGQ1wXnXkZOXG+9cv56jUUfb6mxpuRA3zlEuro7Wr4x7KHEF990jmSahpwNfIVIvCVN44m0SWUydQcBa51zjQDOubXOuRVmVmlms8xsjpk9ZWbdAMwsZma9ws9PMbPxZlYOXAP8MFzZHBqOPczMJpvZB61XKc2sL9ADuIWgVG59\/ttm9qqZvR7Oc52Z3RjmmGpm+219vZn9w8xmmNkkMzs2fP5pM3vUzN4G7grHeyj8Wm8ze8XMZocfQ8LnXw3HmWdmV2Xw+7ydyoroVOBbkPbf4rPir1z0Vo2dMtx3jo4onVNb7DuDSKG4t+WrQ+9uuXSKc7t9ObTlQBWR+MZ05BLpCJXJ1L0GHGZmi8zsETM728y6A08DlzrnTgBKaGM3g3MuBjwK3OecG+Cc23qHhIOAswhWPluvEH4N+AMwCTjGzHq3+tpnCFYrTwVuBzY7504GpgDfDLd5HLjeOTeI4C4zj7R6\/aHAEOfcjTvEfACY4Jw7CRgIzAufvyIc5xTgBjPbf1fvM93CWy7ekq350mU+x89\/nssH+c7REcUfbZpuLe4E3zlECskjiYvO\/EXL5dOcI9UVxQ0ERfKjdOYSaY\/KZIqcc\/XAIOAqYA3wAnA1sMQ5tyjc7BkglesHvuqcSzrn5gOtC+NlwB+cc0ngZYK7xGw1zjm30Tm3BogDfwmfnwOUW3CLviHAi2ZWAzxGUFq3etE5t7PfiCuA34TvOeGci4fP32Bms4GpwGFAvxTeZ8oqK6J3EBT3vLCe\/Vbfwc\/3I\/iFI7c550rmx3X\/bREPfpc4f\/DPWq6c4RxNnXxpC8Gu7XczkUukLTl9SZJcF5av8cB4M5tD23cXaGFbeW+vUDS2+twAzOwEgsL2upkBlAFLgId28ppkq8dJgv\/ORUCdc27ALubc1E6mbYHMhhMcIzrYObfZzMbT\/nvKhKuAI4BzPMzdYU2UNtzE6LXOio\/3naUjipdummpJp+tKinjyfKLy9AZXNv3Xpb85wazDP1uvJhJ\/LaPBRHZBK5MpMrNjzKz1atwAIEqwCnhU+NzlwNbLPsQIVjIBLm71uo3A3h2Y8jIg4pwrDz8OBg42syM6ktc5twFYYmZfCfObmZ3UgZeOJdxVb2bF4Vnk+wC1YZE8FjijIxnSLbyH95eBWT7m76hR3DVji+2ZF0WSpGspWRQ\/qP0NRSSTXkkOPfW65hvmOcfmDmz+SyLxpzIeSmQXVCZT1wN4xszmm9m7QH+CW\/99h2BX8hyCVcFHw+1vBUab2Ttsf7\/pvwBf2uEEnJ35GvDKDs+9Ej7fUV8Hrgx3T88jODO6Pd8HzgnfzwyC9\/kPoMTMFhAc0zm1ExnSKrxk0HlsO5YzpzzO\/xu\/3A4\/03eOjiqJbpxqjnLfOUQExiTPGPTd5h8tco76NjZ7kkh8VNZCieyEOZeXJ8WKbGfsG337ABPJ8rGbbZnI8OmPcd0gzPLjl7aEa+w2dsU6cxzsO4qIbHNW0Zw5z5beebgZO15f+A8Et0pM1yWFRFKSH\/\/IibSjsiK6CqgkOJzAuxhHRh\/jumPypkgCJQvjb6tIiuSeN5MnnHBp06iPko66Vk\/\/GbhcRVJygVYmpUsZ+0bfIwkunXSIrwwb2bv2ezyxIWElHTqeNSe0JOu7jV25xeAA31FEZOdOtsULXy6L9CoyNxP4PJF4Y7svEsmCvFk1EemI8C45lcBqH\/MnKGq5idFL8qpIAqXz62aoSIrktlmu3zGXNP18LPBFFUnJJSqT0uVUVkQXAp8F1mV77tu5dfIG2ye\/bkHYlKwrWrllgO8YItKuSTPd0VcQiXfkDG+RrFGZlC6psiI6h+As73h726bLH7ls0kLrn8pF6r0qnbN+tvGJA\/tFJLdMAi6IVVd1+JrAItmiMildVmVFdCZwPrR5WY20mMXA2f\/HxV6ut7lbGhIfF61tPNV3DBFp05sERTLjP8tEUqEyKV1aZUV0CnABGVyhXE3v5ffy00MwK83UHJlSNnv9ewZ7+s4hIrv0JnC+iqTkMpVJ6fIqK6KTgOHAx+keewvd60dy32ZnRb3SPXam2aaW5VbXlH+rqSKFQ0VS8oLKpBSEyopoDXAWsDRdYzpwP+XXc5us29HpGjObSmevW2rBPd5FJPdMQkVS8oTKpBSMyoroYuBMYH46xhvNiAlrrHderuzZhqaobWzJy+wiBeBF4DwVSckXKpNSUCoroh8Bw4BpuzPOP6iaMt3OGJ6WUB6U1qxfY1DsO4eIfMK9wKWx6qoG30FEOkp3wJGCNPaNvj2AV4BzO\/vaRRzz3q3cfjhmeXniitU2LiibtvZYA\/OdRUT+LQn8IFZd9aDvICKdpZVJKUiVFdF6oAp4uTOvq+VTa27jtp75WiQBymav36wiKZJTtgAXq0hKvlKZlIJVWRFtAr4KPNGR7VsoabqJB1YlrfjgzCbLnKKPt8y2xuQg3zlE5N\/WAOfEqqte9R1EJFUqk1LQKiuiycqK6H8Bv2pv2\/+metpm2+uELMTKmNI5tVqRFMkdi4HBseqqt30HEdkdKpMiQGVFdCRwDdCys6\/\/jv+asNSOPCu7qdKraMXm6dbiTvSdQ0QAmAIMiVVXRX0HEdldKpMiocqK6GPA54Da1s9P5qx3\/sV\/5HWRxDlXOr+up+8YIgLAn4CKWHXVWt9BRNJBZVKklcqK6FjgDILdT3zI4Use5gf9MMvry+gUL9001RLuGN85RIT7ga\/o0j\/SlejSQCI7MfaNvvtuoOcz1\/P4Z1qs9EjfeXaLc4lur69YZo78fh8i+S0J\/ChWXXW\/7yAi6aYyKbILfcbVlAD3Adf5zrI7St7f8GZJdGN+76YXyW8NwNdj1VV\/8h1EJBNUJkXa0WdczRXAI0A331k6LeEau41dsdYch\/iOIlKglhDc0Wa67yAimaJjJkXaseqcAU8Bw4GVnqN0Wsmi+NsqkiLevAycrCIpXZ1WJkU6qM+4moOAPwL5scu4Jbmp29iVmw0O8B1FpMA0Ehwf+bDvICLZoJVJkQ5adc6AlQQrlLcTHEyf00rn172jIimSde8TXIhcRVIKhlYmRVLQZ1xNJfA\/QB\/fWXaqKVnXbdxKM9jHdxSRAvIH4KpYddVG30FEskllUiRFfcbV9AaeBT7rO8uOSmeum1C8puFs3zlECsQW4Pux6qrf+g4i4oN2c4ukaNU5A1YD\/wH8jF3chtGLxsSaojUNp\/qOIVIgFgCnqUhKIdPKpEga9BlXcybwPHCY7yxl09ZMLKptGuY7h0gBeAb4Xqy6apPvICI+qUyKpEmfcTX7AU8BF\/nKYJtblpdNWn2gQZmvDCIFYBNBiXzGdxCRXKAyKZJmfcbVXA3cA\/TI9txlkz9+s2hjc35cukgkP80huAj5At9BRHKFjpkUSbNV5wx4DDgRmJDNeW1j8we2sXlwNucUKSAO+A1wuoqkyPa0MimSIX3G1RhwPVAN7JHp+comrZpatDlxRqbnESlA8wgu+TPZdxCRXKQyKZJhfcbV9AOeBIZmag6rbVxQNm3tsQaWqTlECtAW4Dbgnlh1VbPvMCK5SmVSJAvCVcprCVYp9073+N3Gr3zHGpOnpHtckQL2OnBtrLoq6juISK5TmRTJoj7jag4HHgXOT9eYRWsaZpfNXHdSusYTKXAfAzfGqqv+13cQkXyhE3BEsmjVOQOWrTpnwAXA14GV6Riz9N312rUtsvsc8ARwrIqkSOdoZVLEkz7javYGRgE\/AEpTGaNoxeZ3yubUave2yO5ZAFwdq66a5DuISD5SmRTxrM+4mmOAB4DzOvVC51y3sSvfs4Q7LiPBRLq+BuB24K5YdVWT7zAi+UplUiRH9BlX80XgPqC8I9sXL62fWvpeXJcCEknNWIITbBb7DiKS71QmRXJIn3E13YGfhB+7vjalc4lu\/1qx1JJ8OlvZRLqIj4Efx6qrnvUdRKSrUJkUyUF9xtUcAfwa+PLOvl78\/oY3S6MbddtEkY6rA+4GRseqqzZ5ziLSpahMiuSwPuNqhhFcm3LbbRKTrqnbv1Z8bI5DvQUTyR\/1wGiCC4\/Xec4i0iWpTIrkgT7jai4C7gD6lyyom1iybNMw35lEclwjwb2074xVV33sO4xIV6YyKZIn+oyrKQa+2e21j64zx0DfeURyVAvwFHBbrLpque8wIoVAZVIkz5SPHFMKXAn8DDjMcxyRXJEEngMiugWiSHapTMonmNnNwH8CCYIf0Fc7597u5BjDgSbn3OTw8dPAX51zL6U17Lb5SgjuKPOkc25kq+fvBi4A\/uacG7HDa74A9HfOVWciU6aVjxzTDfguQak82HMcEZ\/+BPx3rLpqnu8gIoVIZVK2Y2aDCc4iHu6cazSzXkCZc25FJ8eJAPXOuXvCx0+TYpk0MyP4fzXZxjbnA7cAfYCjXPg\/tpnFgf2cc4kdti9xzrV0NksuKh85pjtwNTCS4P2LFIp\/ArfEqqve8R1EpJDp3tyyo4OAtc65RgDn3Frn3AozqzSzWWY2x8yeMrNuAGYWCwsnZnaKmY03s3LgGuCHZlZjZkPDsYeZ2WQz+8DMLtk6oZmNMLPpZvaumd0aPlduZgvN7PfAXGComS0ws9+a2Twze83MWl+H8TKCMzaXEZ75bGZ\/BnoAM8zsUjN72sweNbO3gbvM7Ntm9lC4bW8ze8XMZocfQ8LnXzWzGeGcV2XiG767YtVVDbHqqtHAp4EbgQ89RxLJtAnAsFh11edUJEX808qkbMfMegBvAnsC\/wJeAN4GFgOVzrlFYcGb6Zy738xiwCnOubVmdgpwj3Nu+C5WJvcCLgWOBf7snDvKzM4DLiFYWTPgz8BdBKXwA2CIc25qWFDfD+eqMbM\/hmP8j5l1D7ftC1wOnOCcuz6ct94516NVhl7ARc65hJl9OxzvOjN7AZgSvqdioIdzLm5m+znn1ofFdTpwtnNuXdq\/8WlUPnJMMXARcD0w3G8akbTZAjwPPBSrrprlO4yIbFPiO4DkFudcvZkNAoYC5xCUyTuBJc65ReFmzwDfA+7v5PCvhruq55tZ7\/C588KPrf849AD6EZTJpc65qa1ev8Q5VxN+PoNttx28EBjnnNtiZi8Do8zsBzvu2g69uIvnK4BvAoRfj4fP32BmXwo\/PyzMltNlMlZdlSA4huxP5SPHfAa4DvgGQZkXyTcx4BHgyVh11XrPWURkJ1Qm5RPCMjUeGG9mcwiK4660sO1wie7tDN3Y6nNr9eedzrnHWm8YrkTueJeK1q9PsO12g5cBZ4WrpAD7E5TD13eSocN3vghPIjoXGOyc22xm42n\/PeaUWHXVXOCa8pFjRgLfIfhv2ddvKpF2OYI9Iw8Bf41VV+3yeGkR8U\/HTMp2zOwYM+vX6qkBQBQoN7OjwucuJzhmCYJVg0Hh5xe3et1GYO8OTPlP4Ipw9zpmdoiZHdiJvD0JVlEPd86VO+fKCQrTZR0dIzQWuDYcs9jM9gH2AWrDInkscEYnx8wZseqqulh11X3A0QQruf8g+AdbJJdsBB4EjotVV50Xq676s4qkSO7TyqTsqAfwoJl9imDV8X3gKoJjlV4ML8EzHXg03P5W4Ekzu41gNXOrvwAvmdnWY\/d2yjn3mpkdB0wJTtqmnmCX7M52Re\/Ml4A3tp4wFPo\/ghNsunVwDIDvA4+b2ZXh3NcSFK5rzGwBsBCY2sbr80L4D\/MYYEz5yDFHExTvbwM9feaSgrcAeBj4fay6aqPvMCLSOToBR6TAlY8c04PgeNHrgOM8x5HCkSD4pfOhWHXVWN9hRCR1KpMi8m\/lI8ecS1Asv0Cwm18k3ZYAfwAei1VXLfUdRkR2n8qkiHxC+cgxZcB\/AF9BxVJ2XxR4CXgxVl01w3cYEUkvlUkRaVNYLM8DvoqKpXTc+8CLBAVS14UU6cJUJkWkw1oVy68QXBhdxVJaW8S2AjnbdxgRyQ6VSRFJiYqlhN5jW4Gc4zuMiGSfyqSI7LawWH6WbbvCP+U1kGTafLYdAznXdxgR8UtlUkTSKrw3+ADg7PBjKLCvz0yy2z4AJhLcrGBCrLpqiec8IpJDVCZFJKPKR44pAk5kW7kcRnDLS8ldCwmK40SC8rjccx4RyWEqkyKSVeUjxxhwPNvK5dlAh2+hKWnngLlsW3mcGKuuWu03kojkE5VJEfGufOSYY9m+XB7sN1GXlgBmE+6yBibFqqvW+40kIvlMZVJEck75yDFHEKxe9ie4xePWP3XGeOfUA\/OAOQSrj3OAd2LVVRu8phKRLkVlUkTyRvnIMYewrVxu\/TgO6OUzVw6oBxYTXKZnLtuKYyxWXaUf8iKSUSqTIpL3ykeOOYDtVzH7A0cDvYEyj9HSqYHgrOpF4cfirX\/GqqtW+gwmIoVNZVJEurTykWN6Age0+ui1w+MdP\/bKQqwksB5YA6zdxcd2X4tVV23MQi4RkU5TmRQRaaV85Jg92L5cbl3ZtN34s5Hti2JtrLoqmfbwIiIeqEyKiIiISMqKfAcQERERkfylMikiIiIiKVOZFBEREZGUqUyKiIiISMpUJkVEREQkZSqTIiIiIpIylUkRERERSZnKpIiIiIikTGVSRERERFKmMikiIiIiKVOZFBEREZGUqUyKiIiISMpUJkVEujAzu9nM5pnZu2ZWY2anpzDGcDMb0urx02Z2SXqTbjdfiZmtMbPqDmx7jZl9M1NZRKR9Jb4DiIhIZpjZYOBCYKBzrtHMegFlKQw1HKgHJqchkwHmnEu2sdlngUXAV8zsp845t6sNnXOP7m4mEdk9WpkUEem6DgLWOucaAZxza51zK8ys0sxmmdkcM3vKzLoBmFksLJyY2SlmNt7MyoFrgB+GK5tDw7GHmdlkM\/ug9SqlmY0ws+nhSuit4XPlZrbQzH4PzAWGmtkCM\/ttuGr6mpnt0Sr3ZcBoYBkwuNXY1WY2Pxz7nvC5iJn9OPz8v8K5Z5vZy2a2Zwa+pyKyA5VJEZGu6zXgMDNbZGaPmNnZZtYdeBq41Dl3AsEeqmt3NYBzLgY8CtznnBvgnJsUfukg4CyClc9qADM7D+gHnAYMAAaZ2bBw+37AI86544Gl4eOHw8d1wMXhGN2Bc4G\/AM8TFEvMbH\/gS8DxzrkTgV\/uJO6fnHOnOudOAhYAV3b8WyUiqVKZFBHpopxz9cAg4CpgDfACcDWwxDm3KNzsGWDYzkdo06vOuaRzbj7QO3zuvPBjFjATOJagNAIsdc5NbfX6Jc65mvDzGUB5+PmFwDjn3BbgZeCLZlYMxIEG4Ekz+zKweSeZPmNmk8xsDvB14PgU3peIdJKOmRQR6cKccwlgPDA+LFnfa2PzFrYtMnRvZ+jGVp9bqz\/vdM491nrDcFf5pjZenwC27ua+DDjLzGLh4\/2BCufc62Z2GlAJXAJcB1TsMObTwBedc7PN7NsEx3qKSIZpZVJEpIsys2PMrF+rpwYAUaDczI4Kn7scmBB+HiNYyYRwt3NoI7B3B6b8J3CFmfUI5z\/EzA7sRN6ewFDgcOdcuXOunKD8XhaOuY9z7m\/AD4GTdjLE3sBKMyslWJkUkSxQmRQR6bp6AM9sPWkF6A+MBL4DvBiuVCYJjokEuBUYbWbvEKwWbvUX4Es7nIDzCc6514DngCnh2C\/RsRK61ZeAN7aeMBT6P+DzBCuUfw3fx5vAjTt5\/SjgbeAt4L1OzCsiu8HauOKCiIiIiEibtDIpIiIiIilTmRQRERGRlKlMioiIiEjKVCZFREREJGUqkyIiIiKSMpVJEREREUmZyqSIiIiIpExlUkRERERSpjIpIiIiIilTmRQRERGRlKlMioiIiEjKVCZFREREJGUqkyIiIiKSMpVJEREREUmZyqSIiIiIpExlUkRERERSpjIpIiIiIilTmRQRERGRlKlMioiIiEjKVCZFREREJGUqkyIiIiKSMpVJEREREUmZyqSIiIiIpExlUkRERERSpjIpIiIiIilTmRQRERGRlKlMioiIiEjKVCZFREREJGUqkyIiIiKSMpVJEREREUmZyqSIiIiIpExlUkRERERSpjIpIiIiIilTmRQRERGRlKlMioiIiEjKVCZFREREJGUqkyIiIiKSMpVJEREREUmZyqSIiIiIpOz\/AzuCLrKcE5kUAAAAAElFTkSuQmCC\">\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Awesome! Now we know how to plot both individual and aggregate values using Pandas and Matplotlib. But for datasets such as this, there is a huge number of columns to be analyzed. Each column represents a different statistic.<\/p>\n<p>What if we want to plot each column? One way that comes to my mind is to put up a for loop but that could be chaotic. The <code>print()<\/code> function will display a long list of graphs. It's difficult to scroll through in such a case.<\/p>\n<p>Widgets come to our rescue here. Let's try to create interactive plots where you can select from a drop-down box what you want to see.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"7.-Interactive-Data-Visualization\">7. Interactive Data Visualization<a class=\"anchor-link\" href=\"#7.-Interactive-Data-Visualization\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Let's again group our data by <code>Region<\/code> and calculate the mean for all attributes.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[17]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"n\">region_data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">df<\/span><span class=\"o\">.<\/span><span class=\"n\">groupby<\/span><span class=\"p\">(<\/span><span class=\"s1\">'Region'<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">mean<\/span><span class=\"p\">()<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Now, we will pass all our columns to our widget object. We will also define a <code>plotbar()<\/code> function which takes this data and plots a bar graph.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[18]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"nd\">@widgets<\/span><span class=\"o\">.<\/span><span class=\"n\">interact<\/span><span class=\"p\">(<\/span><span class=\"n\">Data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">region_data<\/span><span class=\"o\">.<\/span><span class=\"n\">columns<\/span><span class=\"p\">)<\/span>\n<span class=\"k\">def<\/span><span class=\"w\"> <\/span><span class=\"nf\">plotbar<\/span><span class=\"p\">(<\/span><span class=\"n\">Data<\/span><span class=\"p\">):<\/span>\n  <span class=\"n\">fig<\/span><span class=\"p\">,<\/span> <span class=\"n\">ax<\/span> <span class=\"o\">=<\/span> <span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">subplots<\/span><span class=\"p\">(<\/span><span class=\"n\">figsize<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"mi\">25<\/span><span class=\"p\">,<\/span><span class=\"mi\">7<\/span><span class=\"p\">))<\/span>\n  <span class=\"n\">ax<\/span><span class=\"o\">.<\/span><span class=\"n\">bar<\/span><span class=\"p\">(<\/span><span class=\"n\">region_data<\/span><span class=\"o\">.<\/span><span class=\"n\">index<\/span><span class=\"p\">,<\/span> <span class=\"n\">height<\/span> <span class=\"o\">=<\/span> <span class=\"n\">region_data<\/span><span class=\"p\">[<\/span><span class=\"n\">Data<\/span><span class=\"p\">])<\/span>\n  <span class=\"n\">ax<\/span><span class=\"o\">.<\/span><span class=\"n\">axhline<\/span><span class=\"p\">(<\/span><span class=\"n\">region_data<\/span><span class=\"p\">[<\/span><span class=\"n\">Data<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">mean<\/span><span class=\"p\">(),<\/span> <span class=\"n\">ls<\/span><span class=\"o\">=<\/span><span class=\"s1\">'--'<\/span><span class=\"p\">,<\/span> <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'red'<\/span><span class=\"p\">,<\/span> <span class=\"n\">label<\/span><span class=\"o\">=<\/span><span class=\"s1\">'Mean'<\/span><span class=\"p\">)<\/span>\n  <span class=\"n\">ax<\/span><span class=\"o\">.<\/span><span class=\"n\">set_title<\/span><span class=\"p\">(<\/span><span class=\"n\">Data<\/span><span class=\"p\">)<\/span>\n  <span class=\"n\">ax<\/span><span class=\"o\">.<\/span><span class=\"n\">legend<\/span><span class=\"p\">()<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>interactive(children=(Dropdown(description='Data', options=('Economy_Agriculture', 'Population_in_thousands_20\u2026<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>Using a similar logic, we can also plot pie charts for the same <code>groupby<\/code> object.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[19]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"cm-editor cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\"><pre><span><\/span><span class=\"nd\">@widgets<\/span><span class=\"o\">.<\/span><span class=\"n\">interact<\/span><span class=\"p\">(<\/span><span class=\"n\">Data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">region_data<\/span><span class=\"o\">.<\/span><span class=\"n\">columns<\/span><span class=\"p\">)<\/span>\n<span class=\"k\">def<\/span><span class=\"w\"> <\/span><span class=\"nf\">plotpie<\/span><span class=\"p\">(<\/span><span class=\"n\">Data<\/span><span class=\"p\">):<\/span>\n  <span class=\"n\">fig<\/span><span class=\"p\">,<\/span> <span class=\"n\">ax<\/span> <span class=\"o\">=<\/span> <span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">subplots<\/span><span class=\"p\">(<\/span><span class=\"n\">figsize<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">,<\/span><span class=\"mi\">10<\/span><span class=\"p\">))<\/span>\n  <span class=\"n\">ax<\/span><span class=\"o\">.<\/span><span class=\"n\">pie<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">=<\/span><span class=\"n\">region_data<\/span><span class=\"p\">[<\/span><span class=\"n\">Data<\/span><span class=\"p\">],<\/span> <span class=\"n\">labels<\/span><span class=\"o\">=<\/span><span class=\"n\">region_data<\/span><span class=\"o\">.<\/span><span class=\"n\">index<\/span><span class=\"p\">)<\/span>\n  <span class=\"n\">ax<\/span><span class=\"o\">.<\/span><span class=\"n\">set_title<\/span><span class=\"p\">(<\/span><span class=\"n\">Data<\/span><span class=\"p\">,<\/span> <span class=\"n\">size<\/span><span class=\"o\">=<\/span><span class=\"mi\">20<\/span><span class=\"p\">)<\/span>\n<\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\">\n<\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\" tabindex=\"0\">\n<pre>interactive(children=(Dropdown(description='Data', options=('Economy_Agriculture', 'Population_in_thousands_20\u2026<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>In both plots, you can just scroll down to select the attribute you want to visualize. Thus, this is an easier and more comprehensive approach.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"8.-Conclusion\">8. Conclusion<a class=\"anchor-link\" href=\"#8.-Conclusion\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<p>In this tutorial, we analyzed the socio-economic dataset. We started with preprocessing followed by filtering and visualization. We also saw how to make interactive graphs using widgets.<\/p>\n<p>Moreover, we covered how GridDB makes your life easier. Download <a href=\"https:\/\/www.kaggle.com\/datasets\/sudalairajkumar\/undata-country-profiles\">GridDB<\/a> and get your journey started today!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"9.-References\">9. References<a class=\"anchor-link\" href=\"#9.-References\">\u00b6<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\" tabindex=\"0\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\">\n<\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\"><div class=\"jp-InputPrompt jp-InputArea-prompt\">\n<\/div><div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<ol>\n<li><a href=\"https:\/\/www.kaggle.com\/datasets\/sudalairajkumar\/undata-country-profiles\">https:\/\/www.kaggle.com\/datasets\/sudalairajkumar\/undata-country-profiles<\/a><\/li>\n<li><a href=\"https:\/\/www.kaggle.com\/code\/henriquegaspar\/transforming-and-clustering-socioeconomic-data\">https:\/\/www.kaggle.com\/code\/henriquegaspar\/transforming-and-clustering-socioeconomic-data<\/a><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n    <\/div>\n    <div class=\"nbconvert-labels\">\n      <label class=\"github-link\">\n        <a href=\"https:\/\/github.com\/griddbnet\/Blogs\/blob\/socio\/socio.ipynb\" target=\"_blank\">Also available on Github<\/a>\n        <label class=\"github-last-update\"> Last updated: 26\/04\/2023 21:54:09<\/label>\n      <\/label>\n      <\/div>\n  <\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":28801,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-46750","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Socio-Economic Data Analysis and Visualization using Python and GridDB | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Socio-Economic Data Analysis and Visualization using Python and GridDB | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-26T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-13T20:56:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.griddb.net\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1278\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"griddb-admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"griddb-admin\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/\"},\"author\":{\"name\":\"griddb-admin\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/4fe914ca9576878e82f5e8dd3ba52233\"},\"headline\":\"Socio-Economic Data Analysis and Visualization using Python and GridDB\",\"datePublished\":\"2023-04-26T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:56:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/\"},\"wordCount\":20,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/\",\"url\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/\",\"name\":\"Socio-Economic Data Analysis and Visualization using Python and GridDB | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg\",\"datePublished\":\"2023-04-26T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:56:29+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg\",\"contentUrl\":\"\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg\",\"width\":1920,\"height\":1278},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL\",\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/griddbcommunity\/\",\"https:\/\/x.com\/GridDBCommunity\",\"https:\/\/www.linkedin.com\/company\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/4fe914ca9576878e82f5e8dd3ba52233\",\"name\":\"griddb-admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5bceca1cafc06886a7ba873e2f0a28011a1176c4dea59709f735b63ae30d0342?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5bceca1cafc06886a7ba873e2f0a28011a1176c4dea59709f735b63ae30d0342?s=96&d=mm&r=g\",\"caption\":\"griddb-admin\"},\"url\":\"https:\/\/www.griddb.net\/en\/author\/griddb-admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Socio-Economic Data Analysis and Visualization using Python and GridDB | GridDB: Open Source Time Series Database for IoT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/","og_locale":"en_US","og_type":"article","og_title":"Socio-Economic Data Analysis and Visualization using Python and GridDB | GridDB: Open Source Time Series Database for IoT","og_url":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2023-04-26T07:00:00+00:00","article_modified_time":"2025-11-13T20:56:29+00:00","og_image":[{"width":1920,"height":1278,"url":"https:\/\/www.griddb.net\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg","type":"image\/jpeg"}],"author":"griddb-admin","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"griddb-admin"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#article","isPartOf":{"@id":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/"},"author":{"name":"griddb-admin","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/4fe914ca9576878e82f5e8dd3ba52233"},"headline":"Socio-Economic Data Analysis and Visualization using Python and GridDB","datePublished":"2023-04-26T07:00:00+00:00","dateModified":"2025-11-13T20:56:29+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/"},"wordCount":20,"commentCount":0,"publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/","url":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/","name":"Socio-Economic Data Analysis and Visualization using Python and GridDB | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#primaryimage"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg","datePublished":"2023-04-26T07:00:00+00:00","dateModified":"2025-11-13T20:56:29+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/blog\/socio-economic-data-analysis-and-visualization-using-python-and-griddb\/#primaryimage","url":"\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg","contentUrl":"\/wp-content\/uploads\/2022\/08\/money-money-money_1920x1278.jpg","width":1920,"height":1278},{"@type":"WebSite","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","name":"GridDB: Open Source Time Series Database for IoT","description":"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL","publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization","name":"Fixstars","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/4fe914ca9576878e82f5e8dd3ba52233","name":"griddb-admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5bceca1cafc06886a7ba873e2f0a28011a1176c4dea59709f735b63ae30d0342?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5bceca1cafc06886a7ba873e2f0a28011a1176c4dea59709f735b63ae30d0342?s=96&d=mm&r=g","caption":"griddb-admin"},"url":"https:\/\/www.griddb.net\/en\/author\/griddb-admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46750","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/comments?post=46750"}],"version-history":[{"count":1,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46750\/revisions"}],"predecessor-version":[{"id":51418,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46750\/revisions\/51418"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media\/28801"}],"wp:attachment":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media?parent=46750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/categories?post=46750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/tags?post=46750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}