{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "<figure>\n",
    "<img src=\"../Imagenes/logo-final-ap.png\"  width=\"80\" height=\"80\" align=\"left\"/> \n",
    "</figure>\n",
    "\n",
    "# <span style=\"color:blue\"><left>Aprendizaje Profundo</left></span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <span style=\"color:red\"><center>Clasificación, Softmax, Iris</center></span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<center> Clasificación con múltiples categorías</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##   <span style=\"color:blue\">Profesores</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. Alvaro Mauricio Montenegro Díaz, ammontenegrod@unal.edu.co\n",
    "2. Daniel Mauricio Montenegro Reyes, dextronomo@gmail.com \n",
    "3. Campo Elías Pardo Turriago, cepardot@unal.edu.co "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##   <span style=\"color:blue\">Asesora Medios y Marketing digital</span>\n",
    " "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4. Maria del Pilar Montenegro, pmontenegro88@gmail.com "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Asistentes</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "5. Oleg Jarma, ojarmam@unal.edu.co \n",
    "6. Laura Lizarazo, ljlizarazore@unal.edu.co "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Contenido</span> "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Introducción](#Introducción)\n",
    "* [Importa módulos](#Importa-módulos)\n",
    "* [Funciones de activación](#Funciones-de-activación)\n",
    "* [El conjunto de datos Iris](#El-conjunto-de-datos-Iris)\n",
    "* [Lectura de datos](#Lectura-de-datos)\n",
    "* [Preprocesamiento](#Preprocesamiento)\n",
    "* [Crea el modelo usando la API funcional](#Crea-el-modelo-usando-la-API-funcional)\n",
    "* [Compila](#Compila)\n",
    "* [Entrena](#Entrena)\n",
    "* [Evaluación del modelo](#Evaluación-del-modelo)\n",
    "* [Predicciones](#Predicciones)\n",
    "* [Matriz de confusión](#Matriz-de-confusión)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Introducción</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Eeta lección está dedicada a un modelo  de clasificación con mútliples categorías, que corresponde a la generalización natural del modelo logístico. \n",
    "\n",
    "* Practicaremos la codificación *one-hot* para los datos de salida.\n",
    "* También usaremos la API funcional de tf.keras, que es una forma de programación maś flexible y poderosa que el modelo Sequential\n",
    "* Usaremos las funciones *relu* para capas intermedias y entrada y la función de activación *softmax* para la salida, debido a que se tienen varias clases. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Importa módulos</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Usaremos las bibliotecas\n",
    "* *seaborn* para gráficas un poco más elegantes\n",
    "* *sklearn* para utilidades de estandarizacion de datos y matriz de confusión\n",
    "\n",
    "Puede usar las siguientes instrucciones para isntalr desde la consola."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "metadata": {},
   "outputs": [],
   "source": [
    "# !conda install -c anaconda seaborn\n",
    "# !conda install -c intel scikit-learn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Versión de Tensorflow: 2.4.1\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import tensorflow as tf\n",
    "#\n",
    "from tensorflow.keras.models import Model\n",
    "#\n",
    "from tensorflow.keras.layers import Dense, Input, Activation, Dropout\n",
    "#\n",
    "from tensorflow.keras.utils import to_categorical\n",
    "from tensorflow.keras.utils import plot_model\n",
    "#\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import confusion_matrix\n",
    "#\n",
    "#from sklearn import KFold\n",
    "print(\"Versión de Tensorflow:\", tf.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Funciones de activación</span> "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Relu"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Dada la salida del sumador digamos $y=\\mathbf{w}'\\mathbf{x} +b$, la función de activación *relu* esta definida por\n",
    "\n",
    "$$\n",
    "\\text{relu}(y) = \\begin{cases} &0, \\text{ si } y\\le 0,\\\\\n",
    " &y, \\text{ en otro caso } \\end{cases}\n",
    "$$\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Softmax"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "Dados los valores $x_1,\\ldots, x_n$ la función *softmax *  es definida por\n",
    "\n",
    "$$\n",
    "\\text{softmax}(x_i) = \\frac{e^{x_i}}{\\sum_{j=1}^{n} e^{x_j}}\n",
    "$$\n",
    "\n",
    "Es decir, *softmax* transforma los valores en un función de probabilidad."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">El conjunto de datos Iris</span> \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Este conjunto de datos fue introducido por sir [Ronald Fisher]()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lectura de datos y primera vista de los datos"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Bajamos los datos de Internet usando *tf.keras.utils* y luego los cargamos en dataframes de Python."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SepalLength</th>\n",
       "      <th>SepalWidth</th>\n",
       "      <th>PetalLength</th>\n",
       "      <th>PetalWidth</th>\n",
       "      <th>Species</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.2</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6.9</td>\n",
       "      <td>3.1</td>\n",
       "      <td>5.4</td>\n",
       "      <td>2.1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.3</td>\n",
       "      <td>1.7</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>4.5</td>\n",
       "      <td>1.6</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   SepalLength  SepalWidth  PetalLength  PetalWidth  Species\n",
       "0          5.9         3.0          4.2         1.5        1\n",
       "1          6.9         3.1          5.4         2.1        2\n",
       "2          5.1         3.3          1.7         0.5        0\n",
       "3          6.0         3.4          4.5         1.6        1\n",
       "4          5.5         2.5          4.0         1.3        1"
      ]
     },
     "execution_count": 201,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# nombres de las columnas de los datos\n",
    "col_names = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']\n",
    "target_dimensions = ['Setosa', 'Versicolor', 'Virginica']\n",
    "\n",
    "# lee los datos\n",
    "training_data_path = tf.keras.utils.get_file(\"iris_training.csv\", \"https://storage.googleapis.com/download.tensorflow.org/data/iris_training.csv\")\n",
    "test_data_path = tf.keras.utils.get_file(\"iris_test.csv\", \"https://storage.googleapis.com/download.tensorflow.org/data/iris_test.csv\")\n",
    "\n",
    "training = pd.read_csv(training_data_path, names=col_names, header=0)\n",
    "test = pd.read_csv(test_data_path, names=col_names, header=0)\n",
    "\n",
    "test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Pre-procesamiento</span> "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "La variable objetivo (target) tiene tres categorías. Usaremos la codificación one-hot para transformar las codificaciones en vectors binarios."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Codificación one-hot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train= pd.DataFrame(to_categorical(training.Species))\n",
    "y_train.columns = target_dimensions\n",
    "\n",
    "y_test = pd.DataFrame(to_categorical(test.Species))\n",
    "y_test.columns = target_dimensions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Setosa</th>\n",
       "      <th>Versicolor</th>\n",
       "      <th>Virginica</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Setosa  Versicolor  Virginica\n",
       "0      0.0         1.0        0.0\n",
       "1      0.0         0.0        1.0\n",
       "2      1.0         0.0        0.0\n",
       "3      0.0         1.0        0.0\n",
       "4      0.0         1.0        0.0\n",
       "5      0.0         1.0        0.0\n",
       "6      1.0         0.0        0.0\n",
       "7      0.0         0.0        1.0\n",
       "8      0.0         1.0        0.0\n",
       "9      0.0         0.0        1.0\n",
       "10     0.0         0.0        1.0\n",
       "11     1.0         0.0        0.0\n",
       "12     0.0         0.0        1.0\n",
       "13     0.0         1.0        0.0\n",
       "14     0.0         1.0        0.0\n",
       "15     1.0         0.0        0.0\n",
       "16     0.0         1.0        0.0\n",
       "17     1.0         0.0        0.0\n",
       "18     1.0         0.0        0.0\n",
       "19     0.0         0.0        1.0\n",
       "20     1.0         0.0        0.0\n",
       "21     0.0         1.0        0.0\n",
       "22     0.0         0.0        1.0\n",
       "23     0.0         1.0        0.0\n",
       "24     0.0         1.0        0.0\n",
       "25     0.0         1.0        0.0\n",
       "26     1.0         0.0        0.0\n",
       "27     0.0         1.0        0.0\n",
       "28     0.0         0.0        1.0\n",
       "29     0.0         1.0        0.0"
      ]
     },
     "execution_count": 203,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Elimina columna Species del dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_species = training.pop('Species')\n",
    "#test.drop(['Species'], axis=1, inplace=True)\n",
    "y_test_species = test.pop('Species') # extrae la columna y la coloca en y_test_species\n",
    "#\n",
    "#Si necesita subir al dataframe la recodificación use estas líneas\n",
    "#training = training.join(y_train )\n",
    "#test = test.join(y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Normaliza los features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### StandardScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 205,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[5.845      3.065      3.73916667 1.19666667]\n"
     ]
    }
   ],
   "source": [
    "# crea el objeto StandardScaler\n",
    "scaler = StandardScaler()\n",
    "\n",
    "# Ajusta los parámetros del scaler\n",
    "scaler.fit(training)\n",
    "print (scaler.mean_)\n",
    "\n",
    "# escala training y test\n",
    "x_train = scaler.transform(training)\n",
    "x_test = scaler.transform(test)\n",
    "\n",
    "# labels ( no requieren escalación)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Crea el modelo usando la API funcional</span> "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "La API funcional de Keras es bastante más flexible y poderosa que el modelo Sequential"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 266,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"model_22\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "capa_entrada (InputLayer)    [(None, 4)]               0         \n",
      "_________________________________________________________________\n",
      "activation_16 (Activation)   (None, 4)                 0         \n",
      "_________________________________________________________________\n",
      "primera_capa_oculta (Dense)  (None, 8)                 40        \n",
      "_________________________________________________________________\n",
      "dropout_20 (Dropout)         (None, 8)                 0         \n",
      "_________________________________________________________________\n",
      "segunda_capa_oculta (Dense)  (None, 16)                144       \n",
      "_________________________________________________________________\n",
      "dropout_21 (Dropout)         (None, 16)                0         \n",
      "_________________________________________________________________\n",
      "capa_salida (Dense)          (None, 3)                 51        \n",
      "=================================================================\n",
      "Total params: 235\n",
      "Trainable params: 235\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 266,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Con la API funcion se requiere la capa Input que transforma la entrada \n",
    "# en un tensor de tensorflow directamente\n",
    "#\n",
    "inputs = Input(shape=(4,),name='capa_entrada')\n",
    "#\n",
    "# vamos construyendo capa por capa\n",
    "x = Activation('relu')(inputs)\n",
    "x = Dense(8, activation='relu',name='primera_capa_oculta')(x)\n",
    "x = Dropout(0.2)(x)\n",
    "x = Dense(16, activation='relu', name='segunda_capa_oculta')(x)\n",
    "x = Dropout(0.2)(x)\n",
    "outputs = Dense(3, activation='softmax', name='capa_salida')(x)\n",
    "\n",
    "# Creamos ahora el modelo\n",
    "model_iris = Model(inputs=inputs, outputs=outputs)\n",
    "\n",
    "model_iris.summary()\n",
    "plot_model(model_iris, to_file='../Imagenes/iris_model.png', \n",
    "           show_shapes=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Compila</span> "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 267,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_iris.compile(optimizer='adam',\n",
    "    loss='categorical_crossentropy',\n",
    "    metrics=['accuracy']\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Entrena</span> "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 268,
   "metadata": {},
   "outputs": [],
   "source": [
    "class PrintDot(tf.keras.callbacks.Callback):\n",
    "    def on_epoch_end(self, epoch, logs):\n",
    "        print('.', end='')\n",
    "\n",
    "epochs = 200\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 269,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "........................................................................................................................................................................................................\n",
      "Hecho\n",
      "Resultados finales de pérdida y exactitud\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>val_loss</th>\n",
       "      <th>val_accuracy</th>\n",
       "      <th>epoch</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>0.303951</td>\n",
       "      <td>0.842593</td>\n",
       "      <td>0.360190</td>\n",
       "      <td>0.916667</td>\n",
       "      <td>195</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>0.281763</td>\n",
       "      <td>0.842593</td>\n",
       "      <td>0.361281</td>\n",
       "      <td>0.916667</td>\n",
       "      <td>196</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>0.290119</td>\n",
       "      <td>0.861111</td>\n",
       "      <td>0.361293</td>\n",
       "      <td>0.916667</td>\n",
       "      <td>197</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>0.292439</td>\n",
       "      <td>0.898148</td>\n",
       "      <td>0.360291</td>\n",
       "      <td>0.916667</td>\n",
       "      <td>198</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>0.293885</td>\n",
       "      <td>0.907407</td>\n",
       "      <td>0.360623</td>\n",
       "      <td>0.916667</td>\n",
       "      <td>199</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         loss  accuracy  val_loss  val_accuracy  epoch\n",
       "195  0.303951  0.842593  0.360190      0.916667    195\n",
       "196  0.281763  0.842593  0.361281      0.916667    196\n",
       "197  0.290119  0.861111  0.361293      0.916667    197\n",
       "198  0.292439  0.898148  0.360291      0.916667    198\n",
       "199  0.293885  0.907407  0.360623      0.916667    199"
      ]
     },
     "execution_count": 269,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history = model_iris.fit(x_train, y_train,\n",
    "                    batch_size= 16,\n",
    "                    epochs= epochs,\n",
    "                    validation_split=0.1, verbose=0,\n",
    "                    callbacks=[PrintDot()])     \n",
    "print('\\nHecho')\n",
    "print('Resultados finales de pérdida y exactitud\\n')\n",
    "# presenta la última parte de la historia\n",
    "hist = pd.DataFrame(history.history)\n",
    "hist['epoch'] = history.epoch\n",
    "hist.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Evaluación del modelo</span> "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 270,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEKCAYAAAAIO8L1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeVyVVf7A8c/hssmu7IIIKi5souKuuS85LmWZOm1q02bLlP1qaqZ9qmmqqWlaxszMFsd2zSzTUnPfFRUQFRUFUUBB9p3z++O5IMoFUblC+n2/Xs9L7vOc57nnmt0vZ/sepbVGCCGEOJ9NU1dACCFE8yQBQgghhEUSIIQQQlgkAUIIIYRFEiCEEEJYJAFCCCGERVYLEEqpNkqp1UqpfUqpeKXUny2UUUqp/yilkpRSe5RS3WtcG62U2m++9qS16imEEMIya7YgyoHHtNZdgD7AA0qpsPPKXA+Emo97gP8CKKVMwHvm62HAVAv3CiGEsCKrBQit9Qmt9U7zz3nAPiDgvGITgE+1YTPgoZTyB3oBSVrrw1rrUuALc1khhBBXiO2VeBOlVDDQDdhy3qUAIKXG61TzOUvne9fx7HswWh84Ozv36Ny5c6PUWQghrgU7duw4pbX2tnTN6gFCKeUCfAs8orXOPf+yhVt0Pedrn9R6DjAHICYmRm/fvv0yaiuEENcWpdTRuq5ZNUAopewwgsMCrfV3FoqkAm1qvA4E0gD7Os4LIYS4Qqw5i0kBHwH7tNZv1lFsCXCHeTZTHyBHa30C2AaEKqVClFL2wBRzWSGEEFeINVsQ/YHbgb1KqVjzub8CQQBa69nAT8AYIAkoBKabr5UrpR4ElgMmYJ7WOt6KdRVCCHEeqwUIrfV6LI8l1CyjgQfquPYTRgAR4ppTVlZGamoqxcXFTV0VcZVwdHQkMDAQOzu7Bt9zRWYxCSEuTmpqKq6urgQHB2P01gpx6bTWnD59mtTUVEJCQhp8n6TaEKIZKi4uxtPTU4KDaBRKKTw9PS+6RSoBQohmSoKDaEyX8u9JAoQQ4pJ88MEHZGdnN3U1hBVJgBBCWGQymYiOjiYiIoJJkyZRWFhYfe3FF1+kVatWtGzZskHPGjx4MFWLWMeMGcOZM2dqlXn++ed54403GqfydXjllVes+vyLVdffRUMsXryYhISERq7RuSRACCEsatGiBbGxscTFxWFvb8/s2bOrrz377LNMmjTJ4n3l5eX1Pvenn37Cw8OjUevaUHUFCK01lZWVV7g2l/d3IQFCCNEsDBw4kKSkJAoKCpgxYwY9e/akW7dufP/99wDMnz+fSZMmMW7cOEaOHElRURFTpkwhKiqKyZMnU1RUVP2s4OBgTp06BcDLL79Mp06dGD58OPv3768u8+GHH9KzZ0+6du3KTTfddE7rpUp9dZk4cSKjR48mNDSUJ554AoAnn3ySoqIioqOjufXWW0lOTqZLly7MnDmT7t27k5KSwuuvv07Pnj2JioriueeeA6gud/fddxMeHl79+eqr57Rp07j//vsZMmQI7dq1Y82aNcyYMYMuXbowbdo0i38Xn3/+Ob169SI6Opp7772XiooKAFxcXPjb3/5G165d6dOnD+np6WzcuJElS5bw+OOPEx0dzaFDh4iNjaVPnz5ERUVx4403Nkr3n0xzFaKZe+GHeBLSzk9jdnnCWrvx3LjwBpUtLy9n2bJljB49mpdffpmhQ4cyb948zpw5Q69evRg+fDgAmzZtYs+ePbRq1Yo333wTJycn9uzZw549e+jevXut5+7YsYMvvviCXbt2UV5eTvfu3enRowcAEydO5O677wbg6aef5qOPPuKhhx465/766hIbG8uuXbtwcHCgU6dOPPTQQ7z66qu8++67xMYa63aTk5PZv38/H3/8Me+//z4rVqzg4MGDbN26Fa0148ePZ+3atQQFBXHw4EEWLlzIhx9+yC233MK3337LbbfdVm89s7OzWbVqFUuWLGHcuHFs2LCBuXPn0rNnT2JjY4mOjq7+LPv27ePLL79kw4YN2NnZMXPmTBYsWMAdd9xBQUEBffr04eWXX+aJJ57gww8/5Omnn2b8+PGMHTuWm2++GYCoqCjeeecdBg0axLPPPssLL7zAv//974b9g6iDBAghhEVVv22D0YK466676NevH0uWLKkeKyguLubYsWMAjBgxglatWgGwdu1aHn74YcD44oqKiqr1/HXr1nHjjTfi5OQEwPjx46uvxcXF8fTTT3PmzBny8/MZNWpUrftXrFhRZ12GDRuGu7s7AGFhYRw9epQ2bdrUekbbtm3p06dP9fNWrFhBt27dAMjPz+fgwYMEBQUREhJS/XfRo0cPkpOTL1jPcePGoZQiMjISX19fIiMjAQgPDyc5OfmcALFy5Up27NhBz549q//ufXx8ALC3t2fs2LHV7/3LL7/U+hw5OTmcOXOGQYMGAXDnnXfW2QV4MSRACNHMNfQ3/cZWNQZRk9aab7/9lk6dOp1zfsuWLTg7O59zriHTKusqM23aNBYvXkzXrl2ZP38+v/32W60y9dXFwcGh+rXJZKpzXKRmnbXWPPXUU9x7773nlElOTq71vKoupvrqWXWPjY3NOffb2NjUqo/WmjvvvJN//OMftepoZ2dX/fdU32exBhmDEEI02KhRo3jnnXcwsuTArl27LJa77rrrWLBgAWD8lr1nzx6LZRYtWkRRURF5eXn88MMP1dfy8vLw9/enrKys+jmXWpea7OzsKCsrq/N58+bNIz8/H4Djx4+TkZFR7/MaUs+GGDZsGN988031+2VlZXH0aJ1ZuAFwdXUlLy8PAHd3d1q2bMm6desA+Oyzz6pbE5dDAoQQosGeeeYZysrKiIqKIiIigmeeecZiufvvv5/8/HyioqJ47bXX6NWrV60y3bt3Z/LkyURHR3PTTTcxcODA6mt///vf6d27NyNGjKCuTcAaWpea7rnnHqKiorj11ltrXRs5ciR//OMf6du3L5GRkdx8883VX8B1aUg9GyIsLIyXXnqJkSNHEhUVxYgRIzhx4kS990yZMoXXX3+dbt26cejQIT755BMef/xxoqKiiI2N5dlnn73k+lRRVdH3aiAbBomrxb59++jSpUtTV0NcZSz9u1JK7dBax1gqLy0IIYQQFkmAEEIIYZEECCGEEBZJgBBCCGGRBAghhBAWWS1AKKXmKaUylFJxdVx/XCkVaz7ilFIVSqlW5mvJSqm95msyLUmIZkjSfV/Y/v37Wbx4cVNX45JZswUxHxhd10Wt9eta62itdTTwFLBGa51Vo8gQ83WL06+EENZ1taX7nj9/Pg8++CAAs2fP5tNPP61VJjk5mYiIiEt6/rPPPsuvv/5a/TotLY3nn3+ewYMHX9LzmgOrpdrQWq9VSgU3sPhUYKG16iKEuHg1U23ceuutzJ49m1mzZgHUuwirvLwcW9u6v1p++umnxq3oJbjvvvsa/ZkvvvjiOa9bt27NwoW/76+1Jh+DUEo5YbQ0vq1xWgMrlFI7lFL3NE3NhBBVmlu678rKSoKDg89piXTo0IH09HR++OEHevfuTbdu3Rg+fDjp6em1Pk/N1sqOHTvo2rUrffv25b333qsuk5yczMCBA+nevTvdu3dn48aN1ddee+01IiMj6dq1K08++SRg5GX65ptvACP5Xrdu3YiMjGTGjBmUlJRUf/bnnnuO7t27ExkZSWJi4iX817hymkOyvnHAhvO6l/prrdOUUj7AL0qpRK31Wks3mwPIPQBBQUHWr60QV9qyJ+Hk3sZ9pl8kXP9qg4o2x3TfNjY2TJgwgUWLFjF9+nS2bNlCcHAwvr6+DBgwgM2bN6OUYu7cubz22mv861//qvPzTZ8+vTpN9uOPP1593sfHh19++QVHR0cOHjzI1KlT2b59O8uWLWPx4sVs2bIFJycnsrKyznlecXEx06ZNY+XKlXTs2JE77riD//73vzzyyCMAeHl5sXPnTt5//33eeOMN5s6d26D/Dk2hyVsQwBTO617SWqeZ/8wAFgG1E7mcLTtHax2jtY7x9va2akWFuJZUpfuOiYkhKCiIu+66ixUrVvDqq68SHR3N4MGD6033fdtttwENS/ft5uZWK933wIEDiYyMZMGCBcTHx9e6f/LkyXz55ZcAfPHFF0yePBmA1NRURo0aRWRkJK+//rrFe6ucnyb79ttvr75WVlbG3XffTWRkJJMmTareve3XX39l+vTp1WnKqz5zlf379xMSEkLHjh0BI/X22rVnf7+dOHEicG7a8OaqSVsQSil3YBBwW41zzoCN1jrP/PNI4MU6HiHE1a+Bv+k3tuae7rtv374kJSWRmZnJ4sWLefrppwF46KGHmDVrFuPHj+e3337j+eefr/P9tdZ11uGtt97C19eX3bt3U1lZiaOj4wXvqbpen6rU31c6dfelsOY014XAJqCTUipVKXWXUuo+pVTN0aEbgRVa64Ia53yB9Uqp3cBW4Eet9c/WqqcQouGaU7pvpRQ33ngjs2bNokuXLnh6egJGqyAgIACATz75pN7P4+Hhgbu7O+vXrwc4571ycnLw9/fHxsaGzz77rHoL0JEjRzJv3rzqcZHzu5g6d+5McnIySUlJQOOl3m4K1pzFNLUBZeZjTIetee4w0NU6tRJCXI5nnnmGRx55hKioKLTWBAcHs3Tp0lrl7r//fqZPn05UVBTR0dEXTPfdtm1bi+m+27ZtS2RkZJ1ptydPnkzPnj2ZP39+9bnnn3+eSZMmERAQQJ8+fThy5Ei9n+njjz9mxowZODk5nbMj3MyZM7npppv4+uuvGTJkSHULafTo0cTGxhITE4O9vT1jxozhlVdeqb7P0dGRjz/+mEmTJlFeXk7Pnj2tMmvqSpB030I0Q5LuW1iDpPsWQgjRKCRACCGEsEgChBDN1NXU/Sua3qX8e5IAIUQz5OjoyOnTpyVIiEahteb06dPVU3UbqjmspBZCnCcwMJDU1FQyMzObuiriKuHo6EhgYOBF3SMBQohmyM7OjpCQkKauhrjGSReTEEIIiyRACCGEsEgChBBCCIskQAghhLBIAoQQQgiLJEAIIYSwSAKEEEIIiyRACCGEsEgChBBCCIskQAghhLBIAoQQQgiLJEAIIYSwyGoBQik1TymVoZSKq+P6YKVUjlIq1nw8W+PaaKXUfqVUklLqSWvVUQghRN2s2YKYD4y+QJl1Wuto8/EigFLKBLwHXA+EAVOVUmFWrKcQQggLrBYgtNZrgaxLuLUXkKS1Pqy1LgW+ACY0auWEEEJcUFOPQfRVSu1WSi1TSoWbzwUAKTXKpJrPWaSUukcptV0ptV02VxFCiMbTlAFiJ9BWa90VeAdYbD6vLJStc99FrfUcrXWM1jrG29vbCtUUQohrU5MFCK11rtY63/zzT4CdUsoLo8XQpkbRQCCtCaoohBDXtCYLEEopP6WUMv/cy1yX08A2IFQpFaKUsgemAEuaqp5CCHGtstqe1EqphcBgwEsplQo8B9gBaK1nAzcD9yulyoEiYIrWWgPlSqkHgeWACZintY63Vj2FEEJYpozv5KtDTEyM3r59e1NXQwghfjeUUju01jGWrjX1LCYhhBDNlAQIIYQQFkmAEEIIYZEECCGEEBZJgBBCCGGRBAghhBAWSYAQQghhkQQIIYQQFkmAEEIIYZEECCGEEBZJgBBCCGGRBAghhBAWSYAQQghhkQQIIYQQFkmAEEIIYZEECCGEEBZJgBBCCGGRBAghhBAWWS1AKKXmKaUylFJxdVy/VSm1x3xsVEp1rXEtWSm1VykVq5SSPUSFEKIJWLMFMR8YXc/1I8AgrXUU8HdgznnXh2ito+vaK1UIIYR12VrrwVrrtUqp4Hqub6zxcjMQaK26CCGEuHjNZQziLmBZjdcaWKGU2qGUuqe+G5VS9yiltiultmdmZlq1kkIIcS2xWguioZRSQzACxIAap/trrdOUUj7AL0qpRK31Wkv3a63nYO6eiomJ0VavsBBCXCOatAWhlIoC5gITtNanq85rrdPMf2YAi4BeTVNDIYS4djVZgFBKBQHfAbdrrQ/UOO+slHKt+hkYCVicCSWEEMJ6rNbFpJRaCAwGvJRSqcBzgB2A1no28CzgCbyvlAIoN89Y8gUWmc/ZAv/TWv9srXoKIYSwzJqzmKZe4PqfgD9ZOH8Y6Fr7DiGEEFdSc5nFJIQQopmRACGEEMIiCRBCCCEskgAhhBDCIgkQQgghLJIAIYQQwqIGTXNVSjlipMMIBxyrzmutZ1ipXkIIIZpYQ1sQnwF+wChgDUbm1TxrVUoIIUTTa2iA6KC1fgYo0Fp/AvwBiLRetYQQQjS1hgaIMvOfZ5RSEYA7EGyVGgkhhGgWGppqY45SqiXwDLAEcMHIpSSEEOIq1aAAobWea/5xDdDOetURQgjRXNQbIJRSs+q7rrV+s3Gr00SKc8DRvalrIYQQzcqFWhCu5j87AT0xupcAxgEWd3j73dEa/XY02LVAte4GAd2hbX8IiAFTk2+4J4QQTabeb0Ct9QsASqkVQHetdZ759fPA11av3RWQU1DId6abGex0jJD0eEhcalxwcIOQ66D9UOgwHFq2bdqKCiHEFdbQX5GDgNIar0u5SmYxuTk7scLtJt4+mcvqxwbTUuXDkbVwaJVxVAWM1t0h8mYInwhu/k1baSGEuAKU1vrChZT6G3ALxv7QGrgR+Epr/Yp1q3dxYmJi9Pbt2y/6vsSTufzhP+v5Y68g/n5DxNkLWsPpJNi/DOK+gRO7AQUhAyFqMoTfCPbOjfcBhBDiClNK7TDv5ln7WkMChPkh3YGB5pdrtda7Gql+jeZSAwTA80vi+WRTMk+M6sx9g9ph3vL0XKcOwt5vYO/XkHUI7F0h8iaIuQv8oy6v8kII0QQuOUAopdy01rlKqVaWrmuts+q5dx4wFsjQWkdYuK6At4ExQCEwTWu903xttPmaCZirtX61zkrWcDkBorisgv/7ejdL95zgxm4B/GNiJCdyivFoYUdLZ/tzC2sNKVtg56cQ9x2UF0HYDTD0afAKvaT3F0KIpnA5AWKp1nqsUuoIRtdS9SVAa63rXBOhlLoOyAc+rSNAjAEewggQvYG3tda9lVIm4AAwAkgFtgFTtdYJF/iclxUgALTWvLc6iTdWHKClkx3ZhWUEeLRg4d19CPJ0snxT0RnY/D5sfBfKi6HbrTDoSXAPuOR6CCHEldIoXUyX+MbBwNI6AsQHwG9a64Xm1/uBwRiD389rrUeZzz8FoLX+x4Xe73IDRJUV8Sf5YlsKXQM9+HjjERxsbfjhoQH4uDrWfVN+Jqx7A7bPAxT0ewgGzpIxCiFEs1ZfgLjQQrnu9V2v6hK6RAFASo3XqeZzls73rqeO9wD3AAQFBV1Gdc4aGe7HyHA/AEaE+TLhvfX8a/kB/nlzPeMMLt5w/T+hz0xY9ZIRLPZ8BRM/gLb9GqVeQghxJV0oWd+/zMd7wBZgDvCh+ef/XOZ7WxgFRtdz3iKt9RytdYzWOsbb2/syq1RbWGs37uwbzFc7UohPy7nwDS3bwk0fwvRlYGOC+X8wAkZF2YXvFUKIZqTeAKG1HqK1HgIcxVgoF6O17gF0A5Iu871TgTY1XgcCafWcbzIPDQvFo4Udt3+0lTd/OUBpeeWFb2rbD+5bB13/CGtfh3mj4PQh61dWCCEaSUPTfXfWWu+teqG1jgOiL/O9lwB3KEMfIEdrfQJjUDpUKRWilLIHpnA2xUeTcG9hx6czetM9qCX/WXmQuesPN+xGB1e44T2YNN9YTzF7oDFNVgghfgcaupI6USk1F/gco7vnNmBffTcopRZiDDp7KaVSgecAOwCt9WzgJ4wZTEkY01ynm6+VK6UeBJZjTHOdp7WOv7iP1fgiA92Ze2cMd3+6nfdXH8LPzZH5G5MJ8GjBbX3a0r+DV903h98IgT3h2z/Bt3cZ6ykGPwmW1loIIUQz0dCV1I7A/cB15lNrgf9qrYutWLeL1lizmOpzODOfkW+tpbxSE+zpRH5JBSXlFex4egT2thdokJWXwtJHIHYBRNwEE94DuxZWra8QQtTnkmcxmW82YUxVHQ681diV+71p5+3CM2PDOH6miFkjOrIh6RR3fbKdjYdOMbiTT/0329obQcGzA6x8Ac4cgyn/A5cL3CeEEE3ggmMQWusKoFApJRsmmN3ZL5i/jumCo52J/h28cLY3sTz+ZMNuVspYH3HLZ3AyDj4cCpkHrFthIYS4BA0dpC4G9iqlPlJK/afqsGbFfi8c7UwM7eLLivh0KiovYtFh2HiY/pOx+nreKEjdYb1KCiHEJWhogPgRYz/qtcCOGocAro/w43RBKZsOnb64GwO6w4zlxmynT8ZB0krrVFAIIS5BgwKE1voT4Ctgs9b6k6rDulX7/RjSyQcfVwdeX55I5cW0IgA828NdK6BVO/jfZNj9pXUqKYQQF6nOAFFzzEEpNQ6IBX42v45WSjXp2oTmpIW9iafGdGZ3ag6fbEomu6CU/JJyyisasKAOwNUPpi2FoD6w6B5jYZ0Vc2QJIURD1DnN1Zzj6LTW+lul1A5gKEZyvW7m63u11pFXrqoXdiWmudZFa82k2ZvYfjS7+py/uyML/tSbdt4uDXtIeSkseRD2fAnd74Q/vCn7YgshrOqSprlqrecopZ4BvgXKtdY5522iI7/i1qCUYt70nqzal0FWQSllFZXMWXuYW+duYeHdfQj2akBWV1t7uPEDcG9jJPvLPW6swnZwtXr9hRDifA1dKPcRsBJ4ErgJeBiw01rfZ93qXZymbEFYsu9ELlM/3ExlpeatydEM6+Lb8Ju3fww/PgbeneDmj8Gns/UqKoS4ZtXXgmjoLKaHgHCgBPgfkAM80jjVu3p18XdjyQMDCGzpxF2fbOfhhbvIKiht2M0x0+HWryE/A+YMhh2fyLiEEOKKqjdAKKUclVKPAK8Bx4C+WuueWuunm1uajeYqyNOJ72b248/DQvk57iQv/1hvCqtzdRgG92+ANj3hh4fhmxlQ3ICU40II0Qgu1IL4BIgB9gLXA29YvUZXIUc7E4+O6MhNPQL5ae8J8kvKG36zqx/cvhiGPgMJ3xsZYWVRnRDiCrhQgAjTWt+mtf4AuJmzyfrEJbi5RyBFZRX8tPcE25KzSM9tYCPMxgTX/Z+xCZGuhHkjYd2bUHERgUYIIS7ShQJE9TZoWmv5NrpM3YM8aOflzEtLE5g0exPPfh93cQ8I6m1sQtRpjJHs76PhcHLvhe8TQohLcKEA0VUplWs+8oCoqp+VUrlXooJXE6UUU3q1Ibe4nMCWLVh38BQl5RUX95AWLeGWT42ZTTmpxgD2ry9AaaFV6iyEuHZdaMtRk9bazXy4aq1ta/zsdqUqeTX504B2rP/LEJ4fF05haQXbjmRf+KbzKQURE+GBrRB5C6x/E97rDYk/NX6FhRDXrIZOcxWNxMZGEdjSiX4dPLG3tWFVYsalP8ypFdz4X5j2E9g7wxdTjXxOWUcar8JCiGuWBIgm4mRvS992nqzefxkBokpwf2NsYuRLkLwe3u8DK/8uU2KFEJfFqgFCKTVaKbVfKZWklHrSwvXHlVKx5iNOKVWhlGplvpaslNprvtZ8lkc3omFdfDhyqoCNSacu/2EmO+j3EDy4DTqPNVJ1vB0NG9+FMlmyIoS4eA1KtXFJDza2Kj0AjABSgW3AVK11Qh3lxwGPaq2Hml8nAzFa6wZ/eza3VBsXUlhazpi311FWoVn+6HW4ODRiYr60WGOm06FV4BYIQ/4KXacYU2aFEMKsMVJtXIpeQJLW+rDWuhT4AphQT/mpwEIr1qfZcbK35V+3dOVEThFvLN/fuA9vHQ23L4I7lhh7Xn8/E/7b3xjIlpQdQogGsGaACABSarxONZ+rRSnlBIzGyBxbRQMrlFI7zKnHLVJK3aOU2q6U2p6ZmdkI1b6yerRtxcTugXy5LYWcorJzrr23OonZaw5d3hu0GwR3r4JJn0BlmTGQPW8UHN10ec8VQlz1rBkglIVzdf3qOg7YoLXOqnGuv9a6O0aKjweUUhZXcWut52itY7TWMd7e3pdX4yYyrV8wRWUVfLMjtfrcgi1HeX35ft5bndTwjYfqohSE3wAzN8PYf0P2Ufh4NHx+ExzdeJm1F0JcrawZIFKBNjVeBwJpdZSdwnndS1rrNPOfGcAijC6rq1JEgDs92rbks03JVFZqNiSd4tnv4/FzcySvuJw9xxtpNpLJzsgS+/AuGP68MU7x8fUwbzQcWCFdT0KIc1gzQGwDQpVSIUope4wgUGubUvPWpoOA72ucc1ZKuVb9DIwELjIvxe/LjP4hJJ8uZNr8bdz/+Q7aezvz1b19UQrWH2yEWU412TvBgEfhkb1w/WtwJgX+N8lIBBj3LVRe5OpuIcRVyWoBwpy76UFgObAP+EprHa+Uuk8pVXOjoRuBFVrrghrnfIH1SqndwFbgR631z9aqa3MwJtKPF8aHs+nQKWxNNnx0Z0+CPJ0Ib+3G+oOnOJCeR2zKmcZ9U3sn6H2v0aKY8D5UlBgpxd+NMfafKC9p3PcTQvyuWG2aa1P4vU1ztSQpIw97k4kgTycAXl2WyNx1hzHZKFrYm9j2t+HYmawU1ysrIXEprPsXnIgFV3/ofR90nQquF7EbnhDid6OpprmKS9DBx7U6OABc19GL8kqNh5MdZwrL2HjotPXe3MYGwsbDPb/Bbd+BZwf49Tl4swssuAXiF0FZkfXeXwjRrEgLopnTWrMh6TQRAW4M+Odqxkb58+pNUVeuApkHYPf/YPcXkHcC7F2hyziIugVCBhlBRQjxuyUtiN8xpRQDQr3wcLJnWBcflsefpOxyp71eDO+OxoynR+Phju8hfAIk/gif3WCMVWx6H4oaeWxECNEsSID4HRkT6U92YRlL91ieLVxcVsH+k3nWeXMbE7QbDBPeg/87ABPngrMXLH/K6IL64c9w8qqeaCbENUcCxO/I4E7edA105/Gv9/DjnhPV56u6CZ/4Zg/j3l1PYamVN/+zc4SoSXDXCrh3LUTcZHRBze4PH42CrR9C3knr1kEIYXUyBvE7k1dcxrSPt5GQlsvmvw7j881H+XzzUW7v25bXfjbyOS15sD9RgR5XtmKFWRC7AHZ+Bqf2A6VETx4AACAASURBVAqC+kLYBGPMwt1ilhUhRBOrbwxCAsTvUNzxHMa+s56Hh3Zg3oZkCkrL0RpaOtmRXVjGG5O6cnOPwKarYEYiJHxvHBnxxrk2vc3BYjx4tKn/fiHEFVNfgGjE/NLiSokIcKdXcCv+syoJgIV392F5/EnGdfVn6pwtHEy30jhEQ/l0No7Bf4FTByFhsREslv/VOAJ6QNgNxpTalsFNW1chRJ0kQPxOTesfzNbkLAZ38qZve0/6tvcEoL2PC/ubOkDU5BUK1z1uHKcPwb4lEL8YfnnGOPyjjZZF2ATwbN/UtRVC1CAB4ndqZJgvdw0IYUrPc7trOvq6sD05u4lqdQGe7Y0cUAMehexkSFhitCxWvmAcfpHQ8XroMNxoZZjkn6cQTUnGIK4y761O4vXl+9nx9HAy80vo7OdWfS0zr4QW9qbG3bmuMZxJMVoWCUsgdSvoSnB0h3ZDjGDRYRi4tW7qWgpxVZIxiGtIqI8LAFM/3MzBjHx+efQ6Ovi4su9ELrd8sIk2LZ1Y9EA/HGyb0dajHm2g7wPGUZQNh9dA0q+QtNIYvwDwCTMCRYfhENQPbO2bts5CXAMkQFxlOvm5AnAgPR+Ab3ce57Y+bblj3lZsbRQJJ3L514oD/HVMl6asZt1atDQ2Nwq/wdifImOfOVj8Cls+gI3vgIM7dBkL3e+ENr2MDZGEEI1OAsRVpk1LJzyc7Oga6IGNgkU7j7M3NYei0goWzezH/I3JzFl7mJt7BNLR17Wpq1s/pcA3zDj6Pwwl+ZC8zjx2scRYd+EZasyG6jLOGPCWYCFEo5ExiKvQ8TNFeLnY82tCBg/8bycAf78hgtv7tOVUfgm9Xv6VB4Z04LGRnZq4ppehJB/ivoG47yB5PegKaNUOekyDTn8wBsQlWAhxQZKs7xoT4NECB1sTw7r40NLJjl7Brbi1VxAAXi4O9A7x5Me9Jyguq+DnuBP17nmttWbuusOknWlmab4dXIxgcOcSeDzJyBHl4gu/PAvv9oB/R8L3Dxo75GUegKwjxn4XQogGkxbEVS4lqxB3JzvcHO2qz322+SjPLI5jQAcv1ied4pUbI/lj7yCL9+88ls3E9zcytVcQ/5gYeaWqfemyjsDh1XBoFRxZC8U19vN28TUGuVt3M7qj/CLArkXT1VWIZkBSbYhzZOQV0/uVlWgNdiZFR19Xlj40AKUUaWeKyCooJSLAHYCXf0zgw3VHcHWwZdvTw3G0a0azny6kohzSdhlrLsoKjKCRvB4KzZsumeyhbT8jaAQPMFZ1O3pI15S4pjTZNFel1GjgbcAEzNVav3re9cHA98AR86nvtNYvNuRecel8XB0Z3sWX0vJKhnb24bkl8exJzSEq0J0/fbKdfSdzeer6ztw9sB3L4k7i6+ZAem4Jy+NPMiG67qR7J3KKmL8hmUdHdGwegcRkC216GgcYXVJaQ+5xSIuFY5uMqbQrnj57j70ruAcaU28De0HERFnhLa5ZVmtBKKVMwAFgBJAKbAOmaq0TapQZDPyf1nrsxd5ribQgLo7WmvyScnq/spIhnX24uUcg0z/eRqiPCwcz8hkY6sW6g6d4dWIk76xKItjLic/v6o2q4zfs15cn8t7qQzw8LJRZIzpe4U9zGXJSIXW78WdOivFndjKkm/e38Isy9sLwCYP2Q8DVrwkrK0TjaqoWRC8gSWt92FyJL4AJQL1f8o1wr2ggpRSujnbcNSCEd1YlsfZAJq3dHVn68AD++9sh/v3rQUw2ipHhfmQXlvHPnxN57OvdvHJjpMUWwsp9GQDMXnOIid0CCPZyvtIf6dK4BxrH+XKOGwv14hfDltlQUWqc92hrdEd1Hmu0MJy9rmh1hbhSrBkgAoCUGq9Tgd4WyvVVSu0G0jBaE/EXcS9KqXuAewCCgiwPtIr6zRrRkZyiMj7ddJTHRnTEwdbEI8M70jXQg8y8Elo523PfoHaUllfy1q8HWJ2YwfWR/gR4tGB0hB/tvV1IzS4k8WQedw8MYeHWFGYu2MknM3rh7epg8T1/2J1GanYR9w9uxt037gFnV3hXlEPmPji4AtITICMBlj0Oy54A/ygjLYhfJNg6gldH8Oxg7NddWmDslWHvbBwmexnjEL8b1gwQlv4vOL8/ayfQVmudr5QaAywGQht4r3FS6znAHDC6mC69utcupRQvjA/npu6BRJoHpwGGdPY5p8yfh4fSp10r5m9MZklsGvkl5fxn5UH+Mrpz9X+cqb2C6N/Bi/s+38Gk2RtZ/EB/PJzOTYtRWan5x0/7SM8rYVJMIF4uloNIs2KyNQKAX42ZXCf3wv6fjVlTm96Fyho7+SkbYzyjJOfc59g5gXcno7vKP1paIKJZs2aASAVqphoNxGglVNNa59b4+Sel1PtKKa+G3Csal1KKrm0uvAtd73ae9G5npBbPyC3mL9/u4cWlCSgF7bycaeftQjtvFz6d0ZtbPtjEvPVHmHXegrzNR06TllMMGC2J6f1Dqq9prSmtqGxQrqicwjLsbBVO9k2UEKAqYAx6HEryjLGL8mIjPcjpQ1CSCy4+4OxjnC/Nh/xMoyWS9KuxEnz5X420Id1uM3bgs/+ddMuJa4I1/8/aBoQqpUKA48AU4I81Cyil/IB0rbVWSvXCWLh3GjhzoXtF0/Nxc2TetJ6sSEjnvdVJ3Njt7AynXiGtGB3ux8cbk5neP4TU7CJCfV1wtDOxaOdxXBxsCfBowaJdx88JEC/8kMDPcSdZ88TgCwaJP87dTIiXM+/+sbvVPmODObiCjzm/VetuDbsnIxF2fgq7/wfxi0CZjDTnHUcaz3DyAjR4dzH2ARfiCrNagNBalyulHgSWY0xVnae1jldK3We+Phu4GbhfKVUOFAFTtDGtyuK91qqruHRKKUaF+zEqvPbMngeHduDn+JP0e3UVRWUVuDrY0rtdKzYeOs3YKH86+rry0o/72JN6hqhADzYeOsX8jckArE7MZHTE2WeWlleyKjGDo6cLGNLZB183R+LTcjmUmU9RaQUt7JvBtNqL5dMZRr8Cw541FvWlbDFaFqteOrecyQH8uxo5qXzCjQV+flHGanIhrEgWygmr+tuivSSfLmBcVGt2HM1mT2oOWYWlfHRnDK09WjDizTUUllYwJtKf9UmncLY3kV9SQfcgD+bcYcy801rz6JexLI41ehmHdvZhRv8QbvtoCwBzbu/ByPMCVFlFJV9vT2VCdGucm9v+FxdSmAXp8UYXVWU5pGw1Fvylx0PxGXMhZQyGt442xjI82oBbAPhG1J0KXWuoKJNU6eIcsh+EaDIv33h2UHdKr9qzzH5+5Dqe+z6edQczCfFy5pmxYSyJTeOTTclkF5TS0tmeb3ceZ3FsGg8O6UBGXjFL95wgKtAYTHe2N/FLQnqtAPG/Lcd4bkk82YWlPDCkg1U/Y6NzagUhA8++Dptg/Kk15J0wBsfTYo2gcXgN7PnybFmTvTGOYet4dr/vwixj9XhRNqCNINJuEHQcDW36yM59ok7yL0M0KV83R2bf3uOcc7Y2Nsxdf4Rvd6ZyY7cAnvs+jj7tWvHoiI6s3JfOV9tTWbDlGCFeznQNdOfXfemUV1RiazJyTxaUlPPOqoMALNx6jPsHtcfGxpgYtz05i8e+3s3z48LPmaX1u6CUsbOeW2voOOrs+fwMI3BkHTaCRmkhlBUaealsTEZXVotWRuBBGV1Zm2cbe2s4ehgD7Y7uRmvEJ8zYk6Oi1NjZT9nAqYNQkAlOnsaMq5bB4N/NmMYrrmoSIESzE9bajT7tWvHe6iRjjKGsgpduiMBko+jb3hOTjSIzr4R+7T0ZHeHH4tg0vtt5nFvM+3PPXXeEU/ml/GlACHPXH2HtwUwGd/JhY9Ipps/fRkl5Jd/tOm61AFHVbVvXivNG5+JjHP5dIfzGht1TnGtMzz2w3AgsmYmQuLTh7+na2ph9FTrSWGTYqh3Y1jFduaLMyIN15pgxmN+ml1FeNHsSIESz9MzYMMa+s56FW1OY2C2ADj7G5kaujnZ0a+PB9qPZdA30YGSYH72CW/H3pQkMCPXCwdaGOWsPMTrcjydGd2bRruMs2HKMwZ18eP+3Q3i5ONDR14VNh06hta73S3x3yhn+9csBXp0YSWuPhmd9fX35flbvz2TZnwdeuLBZRaXGZHMFF9A5uhldV2ETKKuo5IttKUwOd8U+76jRFWWyN2ZVVZZBq/ZGepHCLCg8BSf2GHuI7/wUts4xnmdyAN9wo1zVuo4j686OoxSftx7EuzNETTYG290DjEy7BZnG+7YKoU6FWcZ0YvdAc4tIWJMECNEshbd2Z0rPIL7dkcqfh4eec21gqLcRINq4Y2OjeH1SFKP/vY57P9tBqI8LRWUV/N+oTtjb2jCxewDzNyaTnlvM1uQsbu/Tls5+rqzen8n+9Dw6+7kBxuK9t349wIAOXvRu54nWmpd+TGBbcjb3L9jJV/f2ueC028pKo+XwzY5UMvJKSM0uJO54Dj/tPcnbU6LrDEZrD2Qyc8FOFj/QrzoQXkmrEzN4ZnEc7i26Mb5rPVN0XbyNw6cLdJ1sbNp0YjfkpsHJ3XAyDs6kwPGdxrqPtv3A1d/oruo0xpjCW5QNR9YYGz2tfMHy+wQPNA6THaTtNIKHgxvs+wFOHzxbzr0NhFxnHMEDjUAjGpUECNFsvXRDBA8P64C/+7m/vd/aJwhbkyK6TUsA2no6887Ubjz8xS72Hs9hSs82dPAxpoCOifTnw3VHeOWnfZSWV3JdR29Czdc2JJ2uDhALthzlnVVJfL09lVX/N4hdx86wLTmbkWG+rEhIr3cf7/i0HP7y7R4Uiqf/0IWMvBIAtiVnsXBLCluTs7h/cHu6+LtZvH97chb5JeW8vnw/H9xucTKJVSWcMNarbjuSxfiurRt+o4MLBPc3fo6a1LB7XH2NMZHe90LeSSMpYk6q8bOzt5FpN3YB/PYPQBvjHfmrjDGVkIHQ7VbjXE6qMbtr/09GeYCWIUYZ787GinV7F2Mle9YRo5sLjDGZoL4QOkL2AmkACRCi2TLZqFrBAYxd8c6fmTQ8zJfvZvbjo3VHmDXybCbZ6DYetHZ35PvYNBxsbegd0gpHOxMhXs78uCeNsopKysor+e+aQ3T2cyXxZB5PL4pj7/Ec/Nwc+c/Ubvx10V4+23SUmYPbV6cNqeoS2nUsm1s+2ISjrYm8knIe+3o39iYbHGxtWBGfzvajWQCsiE8/J0Bk5BWzIj6dW3sHcSizAIDl8ensPJZN96CWjf53WZ99VQEiOeuS7q+o1NioSxhzcfWznBl34CxjoL282OhGqig39vNwdK9dtrLSyLqbvN44Er6H4k/PLWPb4uz4SHkJbH4fbGyN/cx1pXF4dzK6yLw6GtOFywqNoJV3wmi9eARBRYmRWwsFnf9gdNNd5SRAiKtGZz83Xp/U9ZxzSimuj/Tno/VH6GUODgDXhXrxyaaj7DxmrCvwcXVg3rSe/PPnRL7bdRxPZ3v+eVMUjnYm7rmuHd/tPM7/th5j5uAO/Bx3kse+iuXPw0P5ansq3i4OLH14IPd9voOtR7IY2tkHBSyLOwmAp7M9KxJOntNVNmfNYeauP0Kfdq1IysinbztPDmbk8c7Kg3w8vVetz6a1Ju54LuGt3apnZDWWqhZE4sk8zhSW1sqdBcbMsEGvr+bFCRGMifSvPl9RqRn8xmomx7ThwaGhte67ZPZOxgHGNFyTheAAxkwq/yjj6DvTCBglucYXeVmh0ZJwa302QWJFOSSvNRYmZiQaa0J0pZEeZf9Pxs8N4egOfWYaLSEw3tepVe1EjGXFxsyy1K1G+pWKMqPLzdbRqHOH4c16vxEJEOKqN8YcIAZ19K4+N2tkJ0ZF+BHu746DnQ02SmFva8Pfb4hgRJgvwzr7Vq/O7uznxsBQL+ZvSMbf3ZG/LYpDAa/8lAjA/Ok9aeVszzN/CGPifzcwIbo1J3OKWZmYgZeLA3cNCOGfPydy/EwRAR4t0Frz6750AHYePcORUwUM7uRNTHBL3ludRNqZIuasPYyzg4nHR3UG4KvtKfzl2708OzaMGQOMQdxDmfkcPV3A0M6+Fj93WUUlJqUsBpSCknIWbj3GDd0CSMkqYnAnb37bn8m25GxGhNV+3sGMfE7ll7I6MeOcAJGQlktKVhHfx6bVChD5JeXYmRQOtiaOnS7EZFIEXMRg/yWxsYEWHsZhickW2g81jvOVFRkzuvJOGIHF1c8YQynOMbq0bB2NNSYFmbDhbaMbbM0/zwYVexej+6tlsDFukpEAx3ecTRPv7G08w2RnjN/Efm6c9+9qZP+1NadT8Wxv5O+ysTW6xGxMxuC9exvjPYqyjUBkYzKXsTWuWyHQSIAQV73uQR7MvSOGAaFns6a6t7CjX/vaWVTdHO0YG1W7H/7BIR24fd5WHv1yNz6uDnz/YH8Wbk3BpBSDOxnTZSMD3dn61+F4ONkRm2K0TIZ29mZ0hB///DmR5XEnmTEghEOZBSSfLgTghz1plFZU0t7bhT7tPHlnVRKPf7ObDUnGtqjXR/jj4+bAyz/uA2DO2sPc1qct9rY2vPhDAusOZvL9AwOICHCjolJXrwXZeOgU93++kz8NCOGhYbV/s/9xzwle+nFfdT2n9AxiY9JptiVnWQwQhzLyAdiTeu5spPVJpwAjgKRkFdKmlVP1tSlzNmGjFK9OjGLynE0EeLRg2Z8HXrnpvxfLroXRzeQbXvt8za6wViEwZYExKL/3a2PWljLBmaPGmMrpJKOF4hUKve4xxjza9DYG+KtobWxOFfedkV7l+E5jtldl+dkxlYvh7AOPH7xwuYskAUJc9ZRSDLfwpXcxerfzZPvTw0k8kUd7b2c8XRws7prX0tnonokMcGdKzzbc0TeYEC9nwlu78d2uVGYMCGGlufXQ3tu5+gu2vY8LQZ5O9O/gyYak07T1dCKnqIznlsRTUakpLqvkuXFhvPBDAot2pTI63J8NSaeo1PCXb/fg4WRHwolcnh0bxvHsIv6z6iBlFZqvdqTw4NAOtb6UY1ONwLB0zwkAugV5EN3Gg/UHT1WXOZVfwsi31vLvydEkZRoB4mBGHgUl5dXpSzYkncLT2Z7TBaWsSszgzn7BgDHGEnfc6Loa/+56yis1iSfzSDiRS3hry91Faw5ksv9kLvdc13y7XM7hF2Ecl0IpY1xjwCPGUVNxrpFSpbLCaJ1UlhvjMdlHjT+r9k2vCiiV5WBjd/mfxwJZCilEA7k52tErpBWeDdi/wtZkw6s3RRHW2hjIvCWmDXHHc4lPy2FFQjph/m6MCvejKhVaB29jZtVtvdsC8Pz4cB4Y3IEdR7M5erqAN27pyrR+wUQEuPHOqiSW7D5OeaXm3uvakXAilz2pOfi7t2DWV7v51y8HGNrZh7+N6UJKVhHxabm16rc75QzuLYwvFU9ne3xcHRgV4UfCiVySzK2FrUeyyCoo5dd96dXnKjXEHc8hu6CUgpJytiVnMSE6gHZezqxMzKh+/ubDxoD31F5tsDUp/j05GnuTDd/tPM7SPWn8aA5MVbILSnnki128sfwAZRUXHgeYs/YQv+3PuGC5xqa1Jj4tp94yxWUVzPoqlsPmoNpQlZWaA+l5xuC3R5DRUvFsbwyg+3eFsPEQdYuR7Td0BHS6HrqMMxZHdhl74Te4BNKCEOIKmBDdmpd/3MfMBTs5erqQp67vTIh5S1YvFwfcnYwv6+sj/dn01FD83VswoIMXfu6OXNfRu/rL/Nmx4Uyes4kXlyYQ4NGCJ6/vTLeglkQFuuPj6sCyuJMEezoTGehOVkEpr/6cyNfbU/ho/RGyCkoZGOrF1F5BJJ7M497r2rHmQCYBHi1QSjE2yp+Xfkxgye40Zo3oyM6j2QBsT86muLyCmLYt2X40m6V7TvDtzm042dtSUl7JgFBPlIJPNyXz6rJEZvQPZtOh07g62PL3CRG8MD4Ce1sblsef5LPNR/lo/RHsbW3o0bYlfu5Gv/uryxLJLjSmoh49XWBxPUhxWQX2JhvyS8v558/76eDtwqCO3hfssiopr2jQ/iINsSIhnXs/28Hs23rQO6QVb/5ygICWLRgR5kt7c5BfnZjBdzuPE9TKiUeGN3xv9u92Hefxb3bz66xB1c9qahIghLgCPJzsGRHuy497TnBzj0DuHtiOUwXGeon23uduElQ1tdfOZMO489Yl9AppxZ19g5m/MZnrI/xQSp2TFr1m+VbO9vRp14pPNh3F1kYR7OXMSz/uIzW7iIpKTbeglswc0oGqMWxfN0f6tvNkSexxHh0eys5jRoBIPJlrzAaL8CPtTBGfbT6Ks70JN0dbSsoq6BXiSXhrd46eLuDDdYdZcyCTwtJyeoW0qh4TAaMVtSzuJCPDfFmVmMF7q5N4fnw4b/1ygC+3pzAw1It1B0+x/2R+rQCRV1zGsH+t4ZaYNnRt40FFpWZ/eh7xabl4utjTws5Ua/bV97HHeeuXAxzNKmTuHTEM61J/N2NDUqRsMbeM3vxlP6E+rvy494T5vdKqV87/HG/MXos7fralcSKniNhjZxht/m9myW/7M9DaWI9SFSAqKzUaruwq+xokQAhxhTx1fWd6tm3J7X2DsbFR+Lg6EubvRs/gi0sZ8cRoY4e+qv7++kzpGcSelBzenhrN4I4+jHhrTfWeG10D3XE5LxX6hOjW/OXbvWw6fJq447l08Xcz1kloTQcfF6ICPUjLOcljIztxe9+25BeX4+Jgi4uDLXPv7MmvCen86VMj5X5Vd1mVIZ19+HXWdbTzcuGZ7+NYuPUYK/elk5ZTzC0xgTw9NozoF1awPz2PP+BPSXkFs77czchwX5JPFZKRV8IX21LILizF0c6Gykp465cDbE3Owtnels//1Ks6sGitee3n/TjY2dDavQWvL9/PkE4+tWZ0pWYXknyqkAGhXny5LYW3fj3A2ieG1Nni2HE0C2d7EwfS8zmQns9jIzpSUl7J+78lUVhajslGsWqf0fVVc0D/6UVxrEzMYGqvNjw1pgtujueOGVRWajYdMiYm7Dp2pjrz8X2f78DO1ob3mmhTLAkQQlwhgS2dmFZj9zyAHx4awMX+cuhkb8vz48MvXBCjRTEm0r/6N9CZgzvw2Ne7ae3uiI9b7V3qxkT689rP+5n15W5KKyq5a0AIT3yzm0oNHbxd8ehpj5ODiTv6tsXWZFM9KF9leJgvk2Pa8OX2FPp18Kz1/Kov8IeHhbLvRC7+7i14MsKvegV3sKczB07mAfDpxqP8uPcEy+JO4Ghnwt/dkRM5xXy9PZW+7T1xdjDx096T+Lg6UKE1k2Zv4r1bu9OvvRdHThVw/EwRL90QgaujLX/+IpZlcSf5Q9TZKbrpucXcMnsTJ3KL2fzUML7ankJ6bgkJabl0s7BYsai0gvi0XP40sB2bDhtf5vcNbs+a/ZlUaohPyyW/pJy8kvLq1lB6brGx2dX+DDr6urBwawoLt6bQ2c+V72b2q94uN/FkHqcLSrE32VS33CoqNRuSTlFaUUlOURmvLkvkZE4RH93Zs9HXwtRFAoQQTehKdB3UfI/x0a15Z9VBi1+AYCRDfHxUJ578bi9gLCjs7OdGwolc2nkbYxsXyoL7woRwxke3rnO2EhjdWd/N7F/rfEdfVw6k55FVUMp/Vh2kfwdP8ovL2XM8h6/u7cvtH20hu7CMAR286N7Wg8OZBbx5SzTODibu+mQ7t83dwosTIqg0dxcNDPUisKUT76xK4slv97AtOYtHhofiaGdi+sfbyC4sQ2v4cO3h6kWTsSlnzvn7+Xp7Cu+sSmLm4PaUV2p6BrfkkeGhmGwUdiYbotoYn3N3yhkOpOfh6mDL/YPas+7gKfam5rDtaBY2SjF/ei+OnCpg06HTvLs6iUW7jnOruZW18ZAxe+ymHoEs3HqMnKIyMvOKKSitAIxUMF9tT6GiUvPFthSCvZxYuS+DY1mFpGQZU6Z/fuS6ev+7XAoJEEJcQ+xMNnz/4ADsTXVPYJwU04YFW46RV1yGj5sjI8J8sTWpBu/M52hnon+H2mtMGqKjnysrEk7y0tIECksreH5cOP4eLUg+VUBEgDvju7bmk01H6d/Bi7DWbud8KS5+oD8zF+zkxaUJdPJ1JaiVE209jfGd2bd15+2VSSzYcpTEk7m093Yh4UQuH0/ryb9XHuSjDUfMdbdh17EzTO8PmXklbDp8mie/20tFpeaZ7+MA6B7UsnpFPoCPqyP+7o5sPpzFpkOnGBPpT3SQBzYKVu/P4Ke9JxjRxZfWHi1o7dGCfu09WXMgk483JPPHXkEopVh38BTtvJwZE+nHwq3H2J1yhlP5xhiVg60Nb644QKXWRAS48dySOMoqNI52NrRt5UybVk60O28cq7FYNUAopUYDb2PsKz1Xa/3qeddvBf5ifpkP3K+13m2+lgzkARVAeV1b4gkhLk7VjKi6mGwUn87oRUFpOQCPDA/lUQtrPqyhk68rldqY0XPPde0I9TW6pCICjN/SHxoWShd/N7r4157l5OJgy+s3RzH0jd/YezyHW3uf3cGwg48r70ztxnc7vZn11W42H87irgEhDOnsw9HTBexOOUOIlzOd/VzZlZLNV9tTeOKbPQB08Xfjpu4BvPTjPtp7O9fqVgOICnRnebyxvmVSTBuc7G3p4OPCgi3HaGFn4sGhZ3OHKaWY3j+YWV/tZvaaw6TnFrPmQCb3DmpH1zYeKGWMQ5wpKqWFnYmbegTw+eZjDO3swzNjw5i5YCdjIvy4+7p25wQqa7BagFBKmYD3gBFAKrBNKbVEa51Qo9gRYJDWOlspdT0wB+hd4/oQ/f/t3XuMFeUZx/Hvj+UionJVQBZcqEiDFZWu90ujbVGpirXxFmOtNSWakqqNRoyp5Q/TljZtGqOWoiXVRqppKimpRTGk1WgVReQaQBFREQQXW7xgkMvTP+ZdcljmrHtk55yT7u+TnJyZ98ycfXhmmOfM7Z2IFsysq+9RfwAACflJREFUqvr36bl3Q1jNO5/HDMmu3mkaeDC35FwiOuiQXrmPrm01+LCDuOWbx3D3E6s4u6RrlVaXjm/kra3bWfz2f7jtvOxk/0XHH8nP5q1m4nFD6Nu7B/NWvMcv5q3m+Ma+TDl3dHa+o2cDyzZs23tfS1vjGvvx1MrNNA08mJOassNTJwzvx5stnzDjmq/uLXCtvjVuKPf/6w2mP5l113LdGU3cNmEM3Ru6MXboYTyxfCN9enVn7JGHcen4RmYvfJvrzxzJyEF9KnrOyIFS66Vdnf7F0mnAtIg4L43fARARPy8zfX9gRUQMS+PrgeZKCkRzc3MsWrToQEM3sxrZvSf46dwVXN48nHGNZfpT6sB3PLe2hbOOHtThk7nrWz5hSN+DWP7uNi6b8QIAs39wSm53LHmeX9vC1Q8u5NYJx+ztk+qDTz7j/Y92MGZI/jM+Ptu1hzdbPmHn7j37FJC/L9vIlNmvAvC905uYdvGxbNu+c++9Mp1N0ivljtAUeYhpGPBOyfgG9t07aOt6YF7JeADzJQXw+4iY2fkhmlk9aegm7r7kuAP+jq/l7D20pyndtHjcsL70aBAnjujPaaP2vwqrnFNHDeSuC8dyWXPj3rYBfXoyIOdwVKue3bvlFo+JXxnKuMZ1LNuwjXGNWeEoqjh8niILRF7pzt1dkXQOWYE4s6T5jIjYKOkI4GlJqyPi2Zx5JwOTAUaMKL/raWb2eQ7q0cDMa5o5+ohDKjq01tBNe3vZPVDduomfXDiWmx9dwqkVFKkiFNkX0wZgeMl4I7Cx7USSxgEPApMiYmtre0RsTO9bgDnA/p3kZ5/PjIjmiGg+/PDKfjWYmbV1zpeP2KdX2lo4qWkAz089t6JnoRehyALxMjBa0khJPYErgbmlE0gaATwOXBMRr5W095F0aOswMAFYUWCsZmbWRmGHmCJil6QpwFNkl7nOioiVkm5In88A7gIGAven3bnWy1kHA3NSW3dgdkQ8WVSsZma2v8KuYqoFX8VkZlaZ9q5i8vMgzMwslwuEmZnlcoEwM7NcLhBmZpbLBcLMzHK5QJiZWS4XCDMzy+UCYWZmuVwgzMwslwuEmZnlcoEwM7NcLhBmZpbLBcLMzHK5QJiZWS4XCDMzy+UCYWZmuVwgzMwslwuEmZnlcoEwM7NchRYISedLWiNpraSpOZ9L0j3p82WSxnd0XjMzK1ZhBUJSA3AfcAEwFrhK0tg2k10AjE6vycDvKpjXzMwKVOQexMnA2ohYFxGfAY8Ck9pMMwl4ODIvAv0kDe3gvGZmVqDuBX73MOCdkvENwCkdmGZYB+cFQNJksr0PgI8lrfmC8Q4CWr7gvEVyXJWr19gcV2UcV+W+SGxHlfugyAKhnLbo4DQdmTdrjJgJzKwstP1JWhQRzQf6PZ3NcVWuXmNzXJVxXJXr7NiKLBAbgOEl443Axg5O07MD85qZWYGKPAfxMjBa0khJPYErgbltppkLfDddzXQqsC0iNnVwXjMzK1BhexARsUvSFOApoAGYFRErJd2QPp8B/AOYCKwFtgPXtTdvUbEmB3yYqiCOq3L1GpvjqozjqlynxqaI3EP7ZmbWxflOajMzy+UCYWZmubp8gaiXLj0kDZf0T0mrJK2UdFNqnybpXUlL0mtijeJbL2l5imFRahsg6WlJr6f3/lWOaUxJXpZI+lDSzbXImaRZkrZIWlHSVjY/ku5I69waSefVILZfSVqduriZI6lfam+S9GlJ7mZUOa6yy65aOSsT12MlMa2XtCS1VzNf5bYRxa1nEdFlX2QnwN8ARpFdWrsUGFujWIYC49PwocBrZN2MTANurYNcrQcGtWn7JTA1DU8Fptd4Wb5HdtNP1XMGnA2MB1Z8Xn7Scl0K9AJGpnWwocqxTQC6p+HpJbE1lU5Xg5zlLrtq5iwvrjaf/xq4qwb5KreNKGw96+p7EHXTpUdEbIqIxWn4I2AV2R3l9WwS8FAafgi4pIaxfB14IyLeqsUfj4hngQ/aNJfLzyTg0YjYERFvkl3Fd3I1Y4uI+RGxK42+SHavUVWVyVk5VctZe3FJEnA58Oci/nZ72tlGFLaedfUCUa6rj5qS1AScCCxMTVPSoYBZ1T6MUyKA+ZJeUda9CcDgyO5bIb0fUaPYILtXpvQ/bT3krFx+6m29+z4wr2R8pKRXJT0j6awaxJO37OolZ2cBmyPi9ZK2querzTaisPWsqxeIDnfpUS2SDgH+CtwcER+S9XD7JeAEYBPZ7m0tnBER48l62P2hpLNrFMd+lN1MeTHwl9RULzkrp27WO0l3AruAR1LTJmBERJwI/BiYLemwKoZUbtnVS86uYt8fIlXPV842ouykOW0V5ayrF4iOdAdSNZJ6kC34RyLicYCI2BwRuyNiD/AABR6KaE9EbEzvW4A5KY7NynrfJb1vqUVsZEVrcURsTjHWRc4on5+6WO8kXQtcCFwd6aB1OhyxNQ2/Qnbc+phqxdTOsqt5ziR1By4FHmttq3a+8rYRFLiedfUCUTddeqRjm38AVkXEb0rah5ZM9m1gRdt5qxBbH0mHtg6TneBcQZara9Nk1wJ/q3ZsyT6/6uohZ0m5/MwFrpTUS9JIsuehvFTNwCSdD9wOXBwR20vaD1f2PBYkjUqxratiXOWWXc1zBnwDWB0RG1obqpmvctsIilzPqnH2vZ5fZF19vEZW+e+sYRxnku3+LQOWpNdE4E/A8tQ+Fxhag9hGkV0NsRRY2ZonYCCwAHg9vQ+oQWwHA1uBviVtVc8ZWYHaBOwk++V2fXv5Ae5M69wa4IIaxLaW7Ph067o2I037nbSMlwKLgYuqHFfZZVetnOXFldr/CNzQZtpq5qvcNqKw9cxdbZiZWa6ufojJzMzKcIEwM7NcLhBmZpbLBcLMzHK5QJiZWS4XCLMKSNqtfXuQ7bQegFPPoLW6Z8NsP4U9ctTs/9SnEXFCrYMwqwbvQZh1gvSMgOmSXkqvo1P7UZIWpM7nFkgakdoHK3sOw9L0Oj19VYOkB1J///Ml9a7ZP8q6PBcIs8r0bnOI6YqSzz6MiJOBe4HfprZ7gYcjYhxZh3j3pPZ7gGci4niyZw+sTO2jgfsi4ljgv2R36prVhO+kNquApI8j4pCc9vXAuRGxLnWo9l5EDJTUQtZdxM7UvikiBkl6H2iMiB0l39EEPB0Ro9P47UCPiLi7+H+Z2f68B2HWeaLMcLlp8uwoGd6NzxNaDblAmHWeK0reX0jD/ybrJRjgauC5NLwAuBFAUkOVn7lg1iH+dWJWmd5KD6xPnoyI1ktde0laSPbD66rU9iNglqTbgPeB61L7TcBMSdeT7SncSNaDqFnd8DkIs06QzkE0R0RLrWMx6yw+xGRmZrm8B2FmZrm8B2FmZrlcIMzMLJcLhJmZ5XKBMDOzXC4QZmaW638cyg5Wk16dVAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXxU5dn4/8+dbSb7HpKQsASQEHYIm6KAFpVqUeuCaJ+W1uWntVa7ubS1VavWVn2slrZ+qdvTVsWt4lKrFQsiCphE1gQQSICELEwWskwyySz3748zc7IvYIbE5Hq/XrzInHPmnHsmcK5zb9ettNYIIYQYvgIGugBCCCEGlgQCIYQY5iQQCCHEMCeBQAghhjkJBEIIMcxJIBBCiGHOb4FAKfWsUuq4UmpPN/uVUupJpdRBpdQupdQsf5VFCCFE9/xZI3geuLCH/cuACd4/NwJ/8WNZhBBCdMNvgUBrvQmo7uGQS4C/acNWIEYpleKv8gghhOha0ABeeyRQ3OZ1iXdbWccDlVI3YtQaCA8Pn52ZmXlaCiiEEENFXl5epdY6sat9AxkIVBfbusx3obVeA6wByM7O1rm5uf4slxBCDDlKqSPd7RvIUUMlQHqb12lA6QCVRQghhq2BDARvAd/2jh6aD9RqrTs1CwkhhPAvvzUNKaVeAhYDCUqpEuDXQDCA1vop4F3g68BBoBH4rr/KIoQQont+CwRa65W97NfALf66vhBCiL6RmcVCCDHMSSAQQohhTgKBEEIMcxIIhBAAHLI10NDsGuhiiAEggUAIgdaaS//0CU9/XDjQRREDQAKBEIImp5t6h4uKuuaBLooYABIIhBDUNRlNQnUO5wCXRAwECQRCDGOFtgYcTrcZAOqaJBAMRxIIhBimGltcLHviY17cdpRabwCoc0hn8XAkgUCIYaqs1kGzy0PpiSazJlD/FaoR1DmclJ5oGuhiDAkSCIQYpsprHQBUN7aYTUO1X6FA8OA7e7n26W0DXYwhYSDXIxCilccNxdvA5RjokvhFaa2D1GjrQBejHffBShYGFJJaVUx4aDQLA44Q1Az6YCCqq9VC+pHLo6lqaGZE1Jf4Tgp3kX7CgfuAm8CA3gvs9sDxegcpXfwejp1oYmRM6KmX5XSJGQ3x4/r9tMrI/fbVIQvTDFH734OXVgx0KYQY3M66HZbed0pvVUrlaa2zu9onNQIxONR6Vy295hWwRg9sWfrZ+/nlrNlUyM8umMj8jPiBLo5pzaZDvJ9fQUq0lezRsby9y1gO5K/fziYuPKRfr3W83kFsWAjBgUZr9J83HOTDfcd58LKpZCZH9vjeeocTrSEqNNjcduB4PXe9vhuA335zKmeM6PkcAC/nFPNKbjE/PX8iC8a1/h6e/6SIt3eVcfmskVwzb/SpfLwunWhqITQ4EEtQoLmtbc3j4PF6mlrcpMaEER8RQqPTTbPTTWxY19/9juITjB83gYh+K2ErCQRicLDbAAXjvwYBgb0e/lWyPX8feTqYg9YpzB/VfzeaL+szdyB5Oobo5mDCgkeQp6MAqIqbSVwfbqx91djiYtFf13PnhaNZddZYADY0ecjTsewOyCRzVHqP77/t+RzqHU5evWm+uS2n7Ch5ugWAQ9YpnDEqpddyfP5ZGHk6jE9axrNg1ERz+2tvOtmjo9C2GK4ZNb+HM/Sdy+3hokc2EhWqeOP787EGB/LJwUqufXEb//z+DIIDAvjGa5sByEpRvHvbfB5at5sth6r48Cedy7C7pJar3v2UK7MbefCyfiliO9JZLAYHeyWExQ3KIFBS04jb03UTqsvt6TRypbKhuV3OnpKaRgCq7S3+K2QXiqsb2/3csRm4zNtZXOdwUm1v7ST2dRh7PLrdOU5Voc1Ok9PNIZu93TaAwko7bo/mSJW9u7fzRUU9eUdq2k12yy+tJcRbuyiva9+v1Oxyk3u4ms+KqnE43eb2Mu9x+aW1AFTUOahtdJJfWkeEJYhdJbXY+ynX0scHKjl2oom9ZXXc+1Y+AB99YQPg8yM17CiuAWDJxEQOHK/H5faw51gdh6sacbk97c5V2+Tk+y/mkRARwk/Pn4g/SCAQg4PdBuGJA12KTiobmlny6EZezyvpcv+reSWc+9jGdjf+bz29jXvW7TFfF9cYgaKq4fSlbzhQUc/Zv9/A5gOVHK60s+iRDXxQUNHumIo6BwEKtDaCVUiQcTvw3XDf3HmMJY9upKz2yw3RPGRrAFoDT22jkypvUCy0NfB6XgmLHtnIf/LLO73X5fZQVuvAoyGnqNrcXlBWx4xRMYQEBZijn3ye2VzEFU9t4ar/t4WH/72v9fN6jysoq+PNHceY99CH/GLdbrSG7541BpdHk3uk5kt9Vp9X84qJCw/hxnMyWJtTTN6RGj49VGlev6CsjujQYJZNScHp1pTUNFFoa8Dt0VQ2tH9geP6TwxyraeKP18witp+b7HwkEIjBwV4JYQkDXQoaml3tnty/qKjH6dbkdXODOFxlx+H0UOatFbg9moPHG9j0hc18Aj/mrRFUtTlvQ7OLE4091xBaXB4q6vo2iqqqoZncw9XsLatDa83hKuOaeUdq2FF8Ao82PotPs8tNZUMLYxPCAThS1Uiat+3al24i93ANLo9mZ3Ftl9esbXT2+hmg9enf91kKK43AYA0OoNBm56MDxpPyT17dycb9x83AAUbw8NXGthyqAozveF9ZPVNSo0mJtlJW68DhdGOrNwLt4Uo78eEhnJuZxBvbj5m1grLaJkICA6ioa+bPGw4B8M6uMixBAVy3cCxBAcq8Rm9s9c14uqglltU28cnBSj4oqODSGSO57bwJhIUE8szmQvJL6wAoKK0jv7SOyalRZCQa33/O4WpzMl/HGs7OkhOMT4pg9ujYPpXtVEggEINDYyWED3wg+OUbu7ngD5s4Xu+9aXlvYgVldV0eX+19evM97ZbXOYyhkfYWvqhooLHFZT7hVbV50vvVm3t6HQP/l42HOO+xj2hs6b254oa/5XLFU1tY9sTH7DlWZ5Y/v7TWbAopqWl9sj/uTS6XlWp0zDc53YyM9QYCb43A95kLSrsOBD9cu52L/7iZ2sae5x4UVhrfoe878n2nZ09I5EhVI1sPVbEgIx4FrHouh/Me+4h1248BUOwNoqHBgWwpNG7SB4830OR0Mzk1iuQoK+W1Dh77z34uevJjtNaU1TpIiwvju2eNobbJyQcFFdibXdQ5XMzLiANgf0U9q84cQ0KEhfkZ8cSEhTA9Pca8Rk/yjlRz5sMfsnrDwXbbPR7N8tWfcO3T23C6NVfNSSPcEsTXp6bw7u5ytIY5Y2I5cLyBfeX13kBgdP1+uPe4eZ7yDjWwgtI6Jqf6dwCFBAIxOPRD05DT7aHySza/HKluxFbfzA9f2o7bo82b1v7yepwd2m6h9Snf1zzRtk19y6FKjnlvvgEKquytZSuqtJNf2nrD7srGL47T0Ozqtjbio7Vmb1k9M0fFGOeusptPx75mCGi9qULrTXlSSmuncFpsGGDkG/I9dfvO0dU1Pz9aQ0lNEz95dYf5dFxW29SpL6LQ+4Rf2dBMi8tDYWUDQQGKRWck0uL2UGVv4bKZI/ngx4v4+3VzmTMmlp+/sZuDx+vN4LVsajIFZXXUNjrZ6r1Zzx0bR3K0lfI6Bxv22zhe30xtk5PyWgcpUVbOHJfAyJhQXs0rMZ+yz81MAozfx02LxvHuDxfy+IoZACzIiGfPsVrq2/RFdPw8VQ3N3PLCdpxuzUufHW3Xd7SvvB5bfTO3njued25dSGay0fl+VbbRGW4JCuDaeaNxezQtLg9ZqVHEhYcQExbMJm+tqO3vxne98joHWSlRnX4H/UkCgRh4bhc01XzpGsEzm4s477GPOnW2nYzjdc0kRlrYWljNO7tKzWaMFreHg8cbOh3vCwS+/7y+G5c1OIAthVXm6zNGRLZrcvI9kW8trKYrDc0udpUYT+K9NVeU1zlocrpZmjXCeF3bZAaCkpomdhw90a5sRnmNnye1ucEkRoQQGhxIncNFUaXx1G0NDjCbNNoqqWmi3uFienoM6/ceZ9MBG8XVjSz83Qbe3d3a1q+1pqjSTqTVGKBYUeeg0GZnVFwYE9sMG10wLp4RUVbOnpDIH1fOwhocyAP/2ktJTRNKwRWz0tAaNh2wseVQFSNjQkmPCyM52sqxE03m76a4uonyWgfJ0VYCAxTfnDWSjw/YKPB+hszkKDISwlkyMYnkaCtJUVZzqOyCcfG4PZrcw0bgLaq0s/B3G3g/v7VvZfWGg1TZm/n+4nGU1TrYfLDS3OerTaycO4opI1uf4OeMiSUjMZx5GfFmsAbMp/yMhHAaW9yEBAZ06vPwffeTUyUQiKGu0Xuj+5KBYHdJrfFE2E27em2js90oEqDdfzqtNbaGZi6dkUpMWDCbD1RSaLOb49wLurgh+jqAy+uMG2txdSNKwQWTk9lWVG2OhpmRHkO1vQWPR5vXge5v8jmHq3F7dLsmke74ai3T02IICwmkrNbB8frW2oe9xU1MWDClJ5rMJ1hfe33bJ82o0GCiQoPMkTQAX5+SQlmto9OIJ9/+Oy+YiFKws7iWz4/W4PZoNuxv08xR56CxxW3Onyj3BoKMxHAyvP0Tvpu6T3K0lYunpbCtsJqiSjspUVbmZcSTEm3lldxithZVmfMAUqKsHZ7K66hvdpHsnT28eGISWsObO46Z537hhnn871UzOn2Ps0fHEhIYYH7fHx+weQNDa7DefKCS+Rnx3Pa1CcSEBfP3LYfZc6wWt0ez5VAVo+PDSO0wQ1kpxdob5vP4VdNJjw0jwhKEJSjA/Py+5qExCWFmn4ePrzaWJYFADHl2b7X4S3YW+zoZi6u7HuWyYs0WfvbaLvP1xv3Hmf/bD82bcZ3DRYvLw4goK/PGxrH5YCUlNY2cNymJ0ODALp+Mqxo61whGRFpZMjGJE41OXvzsKJagACYmR+LRcKLJaV4HMJs5Otp6qIrgQMXKuaPYVVLb4xKSvqaXjMRwkqOtVNQ5sNU3t7vJn5c5AqdbmwHgQEUDkdYgkiIt5mihKGswUdZg6hxOCkrrCAkMYPmMVKBzECworSVAwcxRsYyND6egrNa8abX9TEXeIHWm98Z9pKqRoio74xIjiAsPISnSwtkTOv/eF2TE0+R0s2HfcdJiwwgMUFw+K42PD1RyotHJAm9gSY42broW72fwNaP50khMS4smLCSQjfuNf2PJUVZSokOJDgvueEmswYHMGBVj/nvw/e37XJUNzRw43sCCcfFYggK5dMZI1u89zsV/3MzN/8jjs6Iqs1wdJUVZiY+wEBCgmJEew7S0aIK8w199HcYZCRGMiLK2e5DJL61jZEwoMd1MMusvEgjEwGv0Vq879BE0tbj71FEKRkfdYe/Td0lN57HvdQ4n+8rreW9PmfkU/+K2owCszTH+tnnb6xMjLSzIiDeHLU5IiiQzJZKCsvadpo0tLpq8NYxyMxA0khYbykXTUpg5KoYvKhpIiw0lPsICGDUI33WmpUVTVGk339s24duWwipmpseyJDMRt0eTc7jrJiSAQzY7YSGB3puc8URpq28mMyWSEVEWlMJsNiqubqSpxc2/95SzNGsESilivTfFqNAgokK9gaCsjjOSI5ieZjRl5HfoMM4vrWNcYgShIYFMSo0iv7TODBYlNU1mX8mhSl8gMG727+eX0+LyMGt0LEopXr/5TH5+0aROn2me94ba0OwiLc642V8xO83cP99XI/De8M8an0CkNYjPvN9TsjeHUXBgAHPGxOHyaGLCggkN6XmeyoKMePJLa6ltdLLNO1w1v9QYieULcL6b/c8umMhzq+Zw8+Jx/KeggjqHq92M5e48vmIGf7pmlvnaVzMYmxhOSrS1XS21oLTW77UBkEAgBgO7LxC0fzL80cs7uPXF7X06RVmdA4fTeMourulcI/DdpJxuzbodpVQ2NPPffccJDQ7kvT3l1DY5zeaUxAgLC8a1liUjMZyslCgKvDcEH19tIDQ40HyKK6lpIj0ujODAAFZfM4uYsGAyEiNI8LZDVza0mNe5ZMZIAF7YdoRPD1Uy+zcf8MK2I1Q2NLPnWC3zx8WTPTqOkKAAXtx2tFMnrE9RpZ2xCeEopUiOCqXshBEIEiMtzEiP4YykSLM9vqSmiffyy2hodnHlbKMT05fSwKgRBFHV0MLO4hNMTokmNjyEkTGhncbXF5TVme3Wk1OjKKlpYvvRE8xINwLHlsIqPB7Nf/LLibQEMSEpgvCQQDbuP45SMH+sccNMjwsjytr56TwuPMRskvN1Yo9JCGd+RhwZieFmmoa02FACAxQLxyeQHhtmNpOlRLc2z/huzsl9SHB35rh4PBruf6eAansLM9JjqG1yUlrrYMuhKiIsQUz1tv+HW4JYkpnEHRdM5ILJIwhQ9CmFSGKkhaQ2ZfF1Kk9KiTI6v2sdaG0k5SuqtDPFzyOGQFJMiMHA1zTUoUZw0NbQ5Tj1ZpebFpeHyDY3kMI2Y8+7qhH4AsHo+DBeySmmxt6Cy6P5/RVT+PErO3lnVykRFuO/Q1KUxWy6qLYbY+0np0bzwrajlNQ0kRoTSkOzy+wonpQSyedHT1DvcFJW20SadxjmyJhQ3v7BQizBAWYbe7W9BZfHCFiLzkggf+ZIVm84yN+2HMHl0fx9yxGaWtx4NHxjWgqhIYH8ZOkZ/Pbf+/jThoMszUpmfFJEu2ybhZUNzEg3xpgnR1vMoJQUaeXGszNwuDwkRISglDFy6LOiatLjQpk31hhKaQaC0GCiQ4PZ4G1GWTY1GYALpyTzty2Hqba3mN9JWa3DfFL1NUE1NLu4dEYqxdWNfLi3gpLqRj4+UMl9yycTEKBIjrZyyGZncmpUl00zHS0YF8++8nrz+wRYfc2sdv088REW3rl1IeOTIthaWGU24yRFWVrPYzYj9R4I5o6N4/ysEbz+uTGB8LqFY7n1pe3kH6tlS2EVc8bEmk06Pkopnrh6JgePN5xSNtUxCeH864fGKKPqhmZa3B6q7S2s21GKRxvfv79JjUAMPHslqECwxrTbbKtvprKhpVOO/F+8sYfL//Jpu22+J8GxCeGUdNFHkF9aR0KEhRvPyWB/RT2rNxxk5qgYLps5kjNGRPD2zlJzpE1ihBWljKfMkTGhRFqDzZtefmkdazYVsuiRDWYV3jf64/OjxsSt9NjWjs/0uDCSIq3Eh3ubhuzNrdeJtPLAZVMYnxhBs8vNdxaMZl95PX/eeIgZ6TFM8Ob7ufGcDL42aQSP/ucLLvjDJq7/vxxzuKbD6aakpslsXkhu8yScGGkhPsLCyJhQLEGBjIi08t6ecj49VMUVs9IJ8AaT2HDjphwdGmwmdkv2juABY/ij063Nsf1v7ywFMEfGtB3jPmVkNGeOT+D9/Aqe/O9BLpqWwrcXjPaWzbhJdteO3pGv72BcYmuatYQIi1lD8JmUEkVwYIC5PS48BGtwaxPQ5NQoYsKCGRMf3us1lVI8cuV00uNCGRMfxtcmGU/6f996hEKb3Wzi6sgaHNhupNDJmpwaTaA3WILR5/RqbjHT06Lbja7yF6kRiAHXUldBgDUOW32zWaV3ON1mACi0NTBzlPHEW9vo5K2dpbS4PJxobDE70QptDURYgpiZHtNlB6yvKWNFdjrJUVZaXB5mjIpBKcW8sfG8sf0YU0dGExIUQFSo8d/ivuWTzclVmcmRBAYoCkpr+fRQFScanWwrMq4zZaQRJHyjS9o+wfrEhgWjlNGc5HC6jetYg1BK8epNC6hpdBIXHsLanGKq7S385PwzzPcqpVh9zUw2H6hkR/EJVm84yP9+8AWXzEjlaHUjWrd2OKa0eSJNjLC0K0NarNHEk5EQznVnj21TtrZNQ0YguHz2SLPWMTE5kmlp0bySW0xGYjgP/msvi85INJt3EiMtJEVasDU0k5kSxb3fyOLrU5IJCQrg7AmJKO/iBslRxvfSl3Z0gCUTk1h3y1lMT+vbDTbd25fQsQkoKDCAN75/FnF97HCNDg3m9ZvOpMnpJjQkkLEJ4Xx8oJKxCeFcPbfnBHlfli+Qv7njGPvK63ng0il+vZ6P1AjEgMspOMABu5UzH/6vOfKn7cSwwjbJyt7aVWqOuGk70amw0hiSmBYXRlmdwzwGjKakAxX1ZKVGERQYwHmTRrBsaooZdCanRpkTtxIjLOaNKzY8hNHep0hrcCDjEsPJPVLDzhJjXP7HByq97zduVO940ziPim//xArGzSgmNNisEbS9TkxYCGMTwr25Z5IJDQ7k4mmp7d5vDQ7ka1kj+Mn5Z3DJjFRWbzjI0sc3cd3/GWtz+NIwt23+aNs8AkZtyRocwJ+/NctsBgNIjQklNDiQCGsQSd7O5Stmt7/hXZmdzr7yelY9l0N8RAiPr5hh1igApqfHMD4xgghLEPERFpZNTeG8SSPMEUlgNMuFBAYwx9sk1RuljBE2qo+r5PhqBF0tPDM2IbxPzVE+SVFW83c/PS0GS1AAf752VrvmSH/w9X389eMirMEBfGN6ai/v6B9SIxCnT9OJ1o5hr4YWJ1HN5RCWgD4BH39hY1xihNl8Aq25aQBeyy0mLTaUkpomCkrrzKp6oc3OnDGxpMWGorUxYcr3H/lARQMuj+52Uo7vRr6j+ATT0mK6PAaMtvB1O0rN1wePN2ANDjCfxosq7VyVndap6cInPsJCVUML9Q4XiZGWLo+5b/kUbl48nujQrm84SikeuWI6F09LpdlltJVHWYPNiWFtb4Idr3HnskxuPCfDbHLyWXXmGJZmjSAwQHHl7HRmj441cxD5XD0nnRGRFlrcHuaOieu0XsGDl03B0dLzRL7vLRzL+ZNHdNk53B/MGkE/rwT384smcfPicZ2+N39IjLTw8o3zsTU0MzouvNt/B/1NAoE4PbSG1dmtHcNeEcDUAChPnkF6QChbCqtYddZYMxAEqNYaQXF1IztLavnlRZN4+uMic1x/jb2FYyeauDox3WyfL6lpDQS+J/XuRl9MGGF0vro9utsbNBgBY92OUoICFOOTIthXXk98uIWwkCASIkJIiLBw/yXdV+UTIywcrW7E5daM7qLWABAdFtzrk2tIUIA5HLSjuPAQQgIDUAoiLe3/eydEWEiI6Pz5wi1BZo0iNCSwy7w2wYEBnD+5+07LpMjeb74RliBzhIw/pMWGERyoGBXX9Xd7qrr73vxl3gAsXiSBQJwezXVGEJi2AsYvpcXtIVDB5oOVvP75Me45//9j/icn+GBvBR6PNodYZqVGtcv3AzBrdCxZh6rMkUDrvLNGl04eQXiI8U96Z8kJ0mJD2XOsjv+36RBXzE5jTELXnYXW4EAmeG/sST0EAl+H8bS0aLJSo4xAEGE8Gf/te/MYEWVp10nZ0ZLMRB56dx8hgQFkj/FPJkmlFCOiLebPw0mEJYg3vn+WWUMTfSd9BOL08DUJZSxBT72CCz4cwUMlU3lHL+TTsCUkpIxiwbh4TjQ62Vteh62+GaVgzpg4iqqMxUt8TUQZCeFMTo3ioK0Bh9PNK7klTB0ZTWZyFCnRVixBAfz+vf0semQjt7z4ORNHRPKbHp7UofUm33ONIMocs+57ao73NpFkpUaZk8a6c9nMNAIDFC1uT4/X+bJGx4V/NRZi94MpI6MJC5Hn25Ml35g4Peyts4eP1xsTZV7JKSYpysKklCiUUuZoki2HqrA1NBMXFsIZIyJpcRmrgBXa7N5sjSFMTo3C7dH8Y+sR9pbVcf8lkwGjU/bFG+ZxxJuPXylYdEZSrzNKJ6dG88/Pj/V4g44JC+H1m89kQlKE2and282/rcRIC0smJrF+b4VfA8HDl0+lm7lnQnRJAoE4Pcw0EvFmk059s4t6m4ulWUbbc0q0MXZ7a2E1Shk3Tt8Y8i8q6o2RQd7mHd8T+QP/2ktIUADL24yumD06jtmj+zYyxWead4hix4RhHflmzp4xIpKQoIA+zVZt66rsNNbvrej1Ol9Gd53VQnTHr4FAKXUh8AQQCDyttX64w/5o4B/AKG9ZHtVaP+fPMolT4/FoNLSb0XpS2swezt9n5K0ZEWWhoq65XS6V+Rnx/Gt3GWMTwkmMtDB1ZDTBgYrPDldTaLNzbqYxySk9LoznvzsHW30zGYnhXzopV/boWF68fl6fUgSA0a/wz5vP7HLOQE+WZo3ghZO4jhCng9/6CJRSgcCfgGVAFrBSKZXV4bBbgAKt9XRgMfCYUsq/afbESbM3u7joj5v5ySs7vsRJWjOM5pfWMSY+jJVzRwGYuVvAmGxU73Cx51gtiZEWQkMCmZEewwcFFVQ2NJspe8FIMXxldvpJP/13RSnFmeMT2o2N782UkdEnHYCUUpw1PuHUA6oQfuDPzuK5wEGtdaHWugVYC1zS4RgNRCpjeEMEUA30Ld2kOC201tz9z93sLavj7V1l3a6o1Xb1Lt/49nbsVRASCcFWCsrqyEqN4qZF4/jHdfPajVn3pR/w6NaO2/kZ8ebIoYxuRv4IIU6dPwPBSKC4zesS77a2VgOTgFJgN3Cb1rrTrBSl1I1KqVylVK7NZuu4W/jR5oOVvLWzlKuy03B7NG98fqzTMYcr7Uy9930++sJGtb2FWfd/wJ83tl/P1ViKMoE6h5MjVY1MTo3GGhzIwg656JOirObwP9/Y9La5aWRooBD9z5+BoKu6b8exDBcAO4BUYAawWinVacaJ1nqN1jpba52dmPjl1rUVJ8c3dv/nX5/E7NGxvJJb3Ckd8su5xTicHj4oKOfTQ5XYW9w8+v5+Pj3UZhaxd01i3zq4PeVY9934fTWCWd6VowIDFKPiJBAI0d/8GQhKgLYJS9Iwnvzb+i7wT204CBQBmX4skzhJxdWNRFqCiA4N5srZaRyy2dvl+HG5PbyeZ6Ts3XKoiq2FRs72sQnh/PClHRz3rbbUWAXhCfwn31jPdnIPi3H70kakelMFWIMDmT061shVEyRTX4Tob/78X5UDTFBKjfV2AF8NvNXhmKPAeQBKqRHARKDQj2USJ6mkpomRsaEopcgeY3TK+p7qwUi8dry+mdmjYzlks/N+fgVzxsTy52tn09Ds5NaXthuLydttlLoieHpzEVdlp7VbmKOjZVOSefrb2cwe3Tr79uHLp7J65YyHqLoAACAASURBVKxu3yOEOHV+CwRaaxfwA+B9YC/witY6Xyl1k1LqJu9hvwHOVErtBj4E7tRaV3Z9RjEQimsazXHpo+KMtWOLKluzgb6aV0xceAg//7pRkbPVNzM/I56JyZE8eOlUthVV8/gH+9CNVfz7kJPM5EjuW97zLN+AAMXXvMso+oyODz8tS/YJMRz5dR6B1vpd4N0O255q83MpcL4/yyB65vHobodMaq0pqWnirPFGU01IUACj4sLMVA/V9hY+KKjgf+aPYXpaDJGWIOqbW9dtvXx2GjmHq/nHxt38zOrC5onkz9fO6nWWrxDi9JIG12Hsb1sOM/+3H3LsROcVvQBqGp00trjbzVTNSAg3h3K+ueMYTrfmyuw0ggIDmJcRR6Q1qF32ynuXT2ZukjGc9Px5U9vNAxBCDA4SCIax9/aUc7y+mR+8+Lm5kIvbo2lsceF0eyiuNvL1pLeZPZuRGE5RpR2PR/NqbglTRkaZufB/dfFknv/unHaTpazBgfx+mZH+YVbm+NP10YQQJ0ECwTBR2+Qk+4EP+PduIzd/s8tN3pEaJqVEsf3oCR7+9z5q7C0sffwjsn71PrPu/4DPj9YA7XPXZCRG0Ozy8MHeCgrK6rgqu3Vg2Kj4sC5n+cZqI6VEx8XphRCDgySdG6q0BlfrKl/5R6uob2jgH5u/YFlmLDsPV4PLwU+WZLG1sIq/f7KfbQeOcby6kR8uGsP/+6iQZzfuxUILaVEKnMYw0HGxQVho4Yn3dhMR6GL55DhzX7fqjSGjEgiEGJxUx8lBg112drbOzc0d6GIMfu/9HLb+aaBL0UoFwC+PQ+DpWXpPCNGeUipPa53d1T6pEQxVZTsgdizM+jYAb+8qpdBmp9nlYd7YOI6daKLF7WHVgjEA2FvclNQ0csaISBSwq6SWf+8pZ0SUhVVnjjFPq4EnPjxAs9PDldlpfc/9Ez9OgoAQg5QEgiFgd0ktq577jFdvWtA6Ksdug5RpcPaPAXgy5yNGjQnDozV/3m/ka7rh7LFwtpEQNhxjNp9PRrOL/9u7nkUjE1l19mxzuwI27vqE8loHP73kXGNRYSHEV5oEgiHgb1sOU2Vv4b/7jrcJBJUQZoz/b2pxc8jWwLIpyVw2K43Zo0tRSnHl7LRuzxlhCeKZ78zpciWt31wyBbfWkkpZiCFCAsFXnL3Zxb+8I4G2HKri3Mwkrn9uK/9tqjY7Z/dX1OPRRqK3sQnh/ODcCX06t29iWEdT06K73C6E+GqS4aNfcf/aXUZji5tJKVF8VlTN37Ycoa76OAA1yrhh55cawzfbTvQSQggfqRF8xb2WW0JGQjg3LcrgtrU7eGHbEb6RqqEafvGfMt57/194NERZg056WUUhxPAggeAr7HClnc8OV3PHhRPNZhynW/M/08JgIyyamcW4aGM27/S0mHZJ3IQQwkcCwQDYW1bH91/4nDsvzOTCKcmd9v/z8xKe/aSIf958FiFBAdQ7nHzrmc8oKK0lLjyEd394NvERFl7LKyFAweWz0kiKtDI+KYK6JifTYo3UECsWzYSkiZ3OL4QQbUkfwWlW73Dy/Rc+p6jSzk9f3UmhraHTMet2lLLnWB3/3VeB1pq7Xt/NnmO1rJiTTkVdM+t2lOL2aF7LK+GcMxIZ4c3t/7vLp/LHlTMJbKoyTiQzeYUQfSA1gtPgrtd38cZ2Y61fj9a4PZo/rJjBfW/n8/0XPmfdLWfx102FbCuq5plV2eQergbg1dwSymsd/Gt3GXcty+SmRePYXVLLq7nFJEVaKK9zcM/FWeZ1zDw/hyuNmbyhsZ3KIoQQHUkg8DNbfTOv5pUwb2ycOexy3tg4zs0cQUxYMKuey+Hap7eRd8RI8PbXTYU0triZkBTBxi9sbDpg47zMJG48OwOAK7LTuWfdHn722k6mpUWzNGtE54vabRAWDwFS4RNC9E4CgZ/c9fouggONhVzcHs39l0xhfFL7XPyLJybxgyXjWb3hIFNGRnGkqpEn/3sQMJZmvPwvW0iOCeWxq6abi8csn5bKb94pICQwgD9dM6vrNXztldIsJIToMwkEfnC0qpG1OcUAhAYHMnNUTKcg4HP71yYwIsrC0qxk/vjfA7yw7SiZyZHMHh3HkytnMiU1ipiwEPP46LBgnvrWLBIjrKTHhXV5TiMQJPT75xJCDE3SduAHr31eglIwd0wcTU43V85O7/bYoMAA/mfBGJKjrVzpze0/P8MYCrp8emqXK3qdmzmi59m9dpuZXkIIIXojNYJ+5vFoXs8rYeH4BFZfM4s3dxzjm7NG9um909OieeDSKSye+CWbdRqlaUgI0XcSCPrRrS9tZ9MXNmqbnNxx4USiQ4P5tjfNc18opfjW/NFfrhCuFnDUStOQEKLPJBD0k2aXm3/vLmNqWjRnjUtg2ZSUgSlIY6XxtwQCIUQfSSDoJwcqGnB5NNctHMvF01IHriB2XyCQpiEhRN9IZ3E/KSitAwZBhk+7seiMdBYLIfpKAkE/yS+tJTwkkNHdDek8XRolvYQQ4uRIIOgn+aV1TEqJMid+DRhfjUD6CIQQfSSBoB94PJq9ZXVMTo0a6KIYgSAgGKyyCI0Qom8kEPSDI9WN2FvcZA2KQOCdVSxrDwgh+kgCQT8YVEtBtlm0Xggh+kICQT8oKK0jKEAxYUTX+YROq0bJMySEODkSCE7RZ0XVXP9/OTjdHvJL6xifFIElKHCgi2X0EciIISHESZBAcIrezy9n/d7j7Co5QUFZ3eBoFgLJPCqEOGkSCE6Rb4nJt3aUYqtvHhwjhpxN0NIggUAIcVIkEJyiwko7AK/mlQAMnhFDIE1DQoiT4tdAoJS6UCm1Xyl1UCl1VzfHLFZK7VBK5SulPvJnefpLi8tDcXUjQQGKxhY3MEgCgS/hnIwaEkKcBL8FAqVUIPAnYBmQBaxUSmV1OCYG+DOwXGs9GbjSX+XpT0er7Xg0XDA5GYBRcWFEWYMHuFRIjUAIcUr8WSOYCxzUWhdqrVuAtcAlHY65Bvin1voogNb6uB/L028O2YxmoavnpqMUZKUMgtoAtEkvET+w5RBCfKX4MxCMBIrbvC7xbmvrDCBWKbVRKZWnlPp2VydSSt2olMpVSuXabDY/FbfvCr2BYEZ6DD9fNonvLRw7wCXykhqBEOIU9LgegVJqVk/7tdaf9/T2rt7SxfVnA+cBocAWpdRWrfUXHa6zBlgDkJ2d3fEcp12hrYHESAuR1mBuOCdjoIvTym6DICuEDIKJbUKIr4zeFqZ5zPu3FcgGdmLc4KcB24CFPby3BGi7ansaUNrFMZVaaztgV0ptAqYDXzCIFVbayUgIH+hidNZYZXQUS54hIcRJ6DEQaK2XACil1gI3aq13e19PAX7ay7lzgAlKqbHAMeBqjD6Btt4EViulgoAQYB7w+Ml+iNOp2eXm2opHmBNaBmtCB7o47VUfgthB0kwlhPjK6OtSlZm+IACgtd6jlJrR0xu01i6l1A+A94FA4Fmtdb5S6ibv/qe01nuVUu8BuwAP8LTWes8pfZLT5IG3C/gN/6UxcDSEpQ10cdoLi4esjv3xQgjRs74Ggr1KqaeBf2C0838L2Nvbm7TW7wLvdtj2VIfXjwCP9LEcA2p9QQVrtxXyGyuEzf02nNNbpUgIIQa/vgaC7wI3A7d5X28C/uKXEg1iHx+wEWvx9lUHWQa2MEII0U/6FAi01g6MtvtB3X7vb+V1DkZHBUA9ECiBQAgxNPQpECiliug89BOt9SAaO+l/5bUOxkQGGoEgKGSgiyOEEP2ir01D2W1+tmKkgojr/+IMbmW1DhaM8Q7NDLIObGGEEKKf9Glmsda6qs2fY1rrPwDn+rlsg4rT7cHW0ExyhPcrC5QagRBiaOhr01DbGcYBGDWESL+UaJCy1TejNSSH+WoE0kcghBga+to09Fibn11AEXBV/xdn8CqrdQCQGObdIJ3FQoghoq+B4DqtdWHbDd4Zw0Pep4cqySmqYXySkb8n0dc1IJ3FQoghoq/ZR1/r47Yh52+fHuHx9V9QUFYLQJzVN49AOouFEENDb9lHM4HJQLRS6pttdkVhjB4a8grK6gBYt70Ua3AA4YHGimTSWSyEGCp6axqaCFwMxADfaLO9HrjBX4UaLOocTo5WNwJw7EQTYxPCUa5qY6d0Fgshhojeso++CbyplFqgtd5ymso0aOwtNWoDEZYgGppdJEdZwd1i7JQagRBiiOitaegOrfXvgWuUUis77tda/9BvJRsE8r2BYMWcdJ7ZXERKtBVczcZOqREIIYaI3pqGfBlGc/1dkMGooKyOhAgLy6en8szmIkZEt6kRSGexEGKI6K1p6G3vj41a61fb7lNKXem3Ug0S+aV1ZKVGMTk1iktmpPK1SUlwzFsjkKYhIcQQ0dfho3f3cduQ0exyc/B4PZNTowgKDOCJq2cye3QcuIyJZdI0JIQYKnrrI1gGfB0YqZR6ss2uKIwZxkPW7pJanG7N9LTo9juks1gIMcT01kdQitE/sBzIa7O9HviRvwo1GGw5VAXAvLHx7Xe4mo0gIAvECyGGiN76CHYCO5VSbwB2rbUbQCkVCAzptpEthVVkJkcSG97hyd/dIh3FQoghpa99BP8BQtu8DgXW939xBodml5u8IzUsGBffeaevRiCEEENEXwOBVWvd4Hvh/Tmsh+O/0nYcPUGzy8OCjG4CgXQUCyGGkL4GAnvbNQmUUrOBJv8UaeBtKaxCqS76BwDcUiMQQgwtfU1DfTvwqlKq1Ps6BVjhnyINLK017+4uY2Z6DNFhwZ0PkBqBEGKI6VMg0FrneDORTgQUsE9r7fRryQbIrpJavqho4MHLpnR9gLtFAoEQYkjpa40AjCCQhZF+eqZSCq313/xTrIHzal4xlqAAvjE9tesDXA5ZnUwIMaT0dc3iXwOLMQLBu8AyYDMwpAKBw+nmrR2lLJuSTJS1i2YhAJfUCIQQQ0tfO4uvAM4DyrXW3wWmMwTnERw83kCdw8X5k5O7P0g6i4UQQ0xfA0GT1toDuJRSUcBxIMN/xTo9Nu4/znt7ys3XtnojoVxydA8TxqRGIIQYYvoaCHKVUjHAXzFSTXwOfOa3Up0mv313Hz948XPyjhirjvkCQWJEDzd6t4waEkIMLX0KBFrr72utT2itnwKWAt/xNhF9ZTmcbg7aGnB5NLe8sJ3aRifH643MoomRPdzopbNYCDHE9CkQKKWu8/2stT4M5Hs7kL+yvqiox+3RfGfBaMrrHHx80IatvpkoaxDW4MDu3+hqgSDpIxBCDB19bRo6Tyn1rlIqRSk1BdgKRPqxXH7nW4byyux0AEpqmrA1NPdcGwBvZ7HUCIQQQ0dfJ5Rdo5RaAewGGoGVWutP/FoyP8svrSXSEkRWShTRocGU1DRiq28mKbKXzKLSWSyEGGL62jQ0AbgNeB04DPyPUuormXRu84FK8o5UU1Bax6SUKAICFOlxoRRXN3G8vg81ApdDho8KIYaUvs4sfhu4RWv9oVJKAT8GcoDJfiuZHzicbm5+IQ+XW+PRmpVzRwGQFhPGgeP12HoLBB43aLesRyCEGFL62kcwV2v9IYA2PAZc2tublFIXKqX2K6UOKqXu6uG4OUopt1Lqij6W55S8n19OvcOFRtPs8jA5NQqAtNhQjlQ10tjiJqnHEUPeheuls1gIMYT0GAiUUncAaK3rlFJXdtjd4/BR7ypmf8JIR5EFrFRKZXVz3O+A90+i3Kfkldxi0mJDeeY7cxgVF8Z873oD6XFhuDwa6GXoqNsbCKSzWAgxhPRWI7i6zc93d9h3YS/vnQsc1FoXaq1bgLXAJV0cdytG38PxXs73pZTUNPLpoSqumJ3GWeMT2HTHEtLjjG6OtNjWxdd6nkPgXbheagRCiCGkt0Cguvm5q9cdjQSK27wu8W5rPYFSI4HLgKd6LIRSNyqlcpVSuTabrZfLdm370RMEBwRwxey0Tvt8AQH6MJkMpEYghBhSeuss1t383NXrjroKFB3f8wfgTq212+iD7qYQWq8B1gBkZ2f3dt0ufWN6KosmJnaZVXRkTGuNoMfho25fjUA6i4UQQ0dvgWC6UqoO46Ye6v0Z7+ve7oYlQHqb12lAaYdjsoG13iCQAHxdKeXSWq/rS+FPVneppcMtQcSFh1DX5CQmtJv00yCdxUKIIanHQKC17iHXQq9ygAlKqbHAMYz+hms6nH+s72el1PPAO/4KAr1Jjw2lIjCAgIAeWryks1gIMQSdzAplJ0Vr7VJK/QBjNFAg8KzWOl8pdZN3f4/9AqfbwgkJlJ1w9HyQdBYLIYYgvwUCAK31uxgrmrXd1mUA0Fqv8mdZevOzCzJ7P0g6i4UQQ1BfJ5QJkM5iIcSQJIHgZEhnsRBiCJJAcDJ8NQJpGhJCDCESCE6Gr49AagRCiCFEAsHJcMnwUSHE0COB4GSYncUSCIQQQ4cEgpNhdhZLIBBCDB1+nUcwJNQeg33vgNZwxLs6pzQNCSGGEAkEvfnkD/DZmtbX0ekQKF+bEGLokDtab+rLIX4CXPcf43VIxMCWRwgh+pkEgt40VkHECAiLG+iSCCGEX0hncW/sNghPGOhSCCGE30gg6I29UgKBEGJIk0DQE7cLmqohPHGgSyKEEH4jgaAnjVXG32HxA1sOIYTwIwkEPWmsNP6WGoEQYgiTQNATu834WwKBEGIIk0DQE7uvRiCdxUKIoUsCQU/s0jQkhBj6JBD0xG4DFQjWmIEuiRBC+I0Egp40VhojhgLkaxJCDF1yh+uJTCYTQgwDEgh6IuklhBDDgASCntgrIUwCgRBiaJNA0BN7pYwYEkIMecMvDXXNYajI7/04jxuaayUQCCGGvOEXCF77HhzL6/vxsWP8VhQhhBgMhl8gqD0GmRfDojt6PzYwBBIz/V8mIYQYQMMrEGhtzA1IOANSpg90aYQQYlAYXp3FjhPgccmQUCGEaGN4BQLJHSSEEJ0Mz0AgC80IIYRpmAUCWV9ACCE6Gl6BQFYcE0KITvwaCJRSFyql9iulDiql7upi/7VKqV3eP58qpfw7lEeahoQQohO/BQKlVCDwJ2AZkAWsVEpldTisCFiktZ4G/AZY46/yAEbTkDUagkL8ehkhhPgq8WeNYC5wUGtdqLVuAdYCl7Q9QGv9qda6xvtyK5Dmx/JI7iAhhOiCPwPBSKC4zesS77buXAf8u6sdSqkblVK5Sqlcm8126iWy2ySbqBBCdODPQKC62Ka7PFCpJRiB4M6u9mut12its7XW2YmJX+KJvrFKJpMJIUQH/gwEJUB6m9dpQGnHg5RS04CngUu01lV+LI8sNCOEEF3wZyDIASYopcYqpUKAq4G32h6glBoF/BP4H631F34sC3g83hqB9BEIIURbfks6p7V2KaV+ALwPBALPaq3zlVI3efc/BfwKiAf+rJQCcGmts/1SoKYa0B4JBEII0YFfs49qrd8F3u2w7ak2P18PXO/PMpgaZQ6BEEJ0ZfikoZb0EuI0cjqdlJSU4HA4BrooYpixWq2kpaURHBzc5/cMw0AgncXC/0pKSoiMjGTMmDF4mz2F8DutNVVVVZSUlDB27Ng+v2/45BpKnw9X/V2WnhSnhcPhID4+XoKAOK2UUsTHx590TXT41AiiUiBr+UCXQgwjEgTEQDiVf3fDp0YghBCiSxIIhBiiAgMDmTFjhvnn4Ycf7rdz79ixg3ffbR0Q+NZbb5nnX7duHQUFBSd9zsWLF5Obm9vvZRtoubm5/PCHPzzl9z/00EP9WJquDZ+mISGGmdDQUHbs2OGXc+/YsYPc3Fy+/vWvA7B8+XKWLzeaXtetW8fFF19MVlbHZMOnR8eyteVyuQgKOr23vezsbLKzT3161EMPPcTPf/7zfixRZxIIhPCz+97Op6C0rl/PmZUaxa+/Mfmk31dbW8vcuXN56623mDhxIitXruTcc8/lhhtu4OabbyYnJ4empiauuOIK7rvvPgBycnK47bbbsNvtWCwWPvjgA371q1/R1NTE5s2bufvuu2lqaiI3N5drrrmGt956i48++ogHHniA119/neuuu45HH32U7OxsKisryc7O5vDhwzQ1NfHd736XgoICJk2aRFNTU5dlzsvL48c//jENDQ0kJCTw/PPPk5KSwuLFi5k3bx4bNmzgxIkTPPPMM8ybN69T2fbu3UtpaSmHDx8mISGBJ554gptuuomjR48C8Ic//IGzzjqLe++9l6NHj1JYWMjRo0e5/fbbzSf5Sy+9lOLiYhwOB7fddhs33ngjABEREdxyyy2sX7+e2NhYHnroIe644w6OHj3KH/7wB5YvX87GjRt59NFHeeedd7Db7dx6663s3r0bl8vFvffeyyWXXMLzzz/PW2+9RWNjI4cOHeKyyy7j97//PXfddRdNTU3MmDGDyZMn88ILL/C///u/PPvsswBcf/313H777Sf976AjCQRCDFG+G4jP3XffzYoVK1i9ejWrVq3itttuo6amhhtuuAGABx98kLi4ONxuN+eddx67du0iMzOTFStW8PLLLzNnzhzq6uoICwvj/vvvJzc3l9WrVwPw/PPPA3DmmWeyfPlyLr74Yq644ooey/eXv/yFsLAwdu3axa5du5g1a1anY5xOJ7feeitvvvkmiYmJvPzyy/ziF78wb4Qul4vPPvuMd999l/vuu4/169d3Ktu9995LXl4emzdvJjQ0lGuuuYYf/ehHLFy4kKNHj3LBBRewd+9eAPbt28eGDRuor69n4sSJ3HzzzQQHB/Pss88SFxdHU1MTc+bM4fLLLyc+Ph673c7ixYv53e9+x2WXXcYvf/lLPvjgAwoKCvjOd75j1pJ8HnzwQc4991yeffZZTpw4wdy5c/na174GGDWZ7du3Y7FYmDhxIrfeeisPP/wwq1evNmt2eXl5PPfcc2zbtg2tNfPmzWPRokXMnDnzpP5tdCSBQAg/O5Un9/7QXdPQ0qVLefXVV7nlllvYuXOnuf2VV15hzZo1uFwuysrKKCgoQClFSkoKc+bMASAqKqrfyrdp0ybziXvatGlMmzat0zH79+9nz549LF26FAC3201KSoq5/5vf/CYAs2fP5vDhw91ea/ny5YSGhgKwfv36dn0YdXV11NfXA3DRRRdhsViwWCwkJSVRUVFBWloaTz75JG+88QYAxcXFHDhwgPj4eEJCQrjwwgsBmDp1KhaLheDgYKZOndplef7zn//w1ltv8eijjwLGMGNfzeS8884jOjoagKysLI4cOUJ6enq792/evJnLLruM8PBw8/N//PHHEgiEECfH4/Gwd+9eQkNDqa6uJi0tjaKiIh599FFycnKIjY1l1apVOBwOtNZfehhsUFAQHo8HoNP49t7OrbVm8uTJbNmypcv9FosFMDrGXS5Xt+fx3TjB+PxbtmwxA0NX52t7zo0bN7J+/Xq2bNlCWFgYixcvNj9HcHCw+RkCAgLM9wcEBHRZHq01r7/+OhMnTmy3fdu2bV1eu6v3+4OMGhJimHn88ceZNGkSL730Et/73vdwOp3U1dURHh5OdHQ0FRUV/PvfxhpRmZmZlJaWkpOTA0B9fT0ul4vIyEjzKbqjjvvGjBlDXl4eAK+99pq5/ZxzzuGFF14AYM+ePezatavTuSZOnIjNZjMDgdPpJD8/v8fP11PZAM4//3yz2QjotUO9traW2NhYwsLC2LdvH1u3bu3x+J5ccMEF/PGPfzRv6Nu3b+/1PcHBwTidTsD4ztatW0djYyN2u5033niDs88++5TL4yOBQIghytdH4Ptz11138cUXX/D000/z2GOPcfbZZ3POOefwwAMPMH36dGbOnMnkyZP53ve+x1lnnQVASEgIL7/8MrfeeivTp09n6dKlOBwOlixZQkFBATNmzODll19ud92rr76aRx55hJkzZ3Lo0CF++tOf8pe//IUzzzyTyspK87ibb76ZhoYGpk2bxu9//3vmzp3b6TOEhITw2muvceeddzJ9+nRmzJjBp59+2uPn7qlsAE8++SS5ublMmzaNrKwsnnrqqS7O0urCCy/E5XIxbdo07rnnHubPn9/j8T255557cDqdTJs2jSlTpnDPPff0+p4bb7yRadOmce211zJr1ixWrVrF3LlzmTdvHtdff/2XbhYCUP6qavhLdna27o+xxkL40969e5k0adJAF0MMU139+1NK5XWX5l9qBEIIMcxJIBBCiGFOAoEQQgxzEgiEEGKYk0AghBDDnAQCIYT4krZt28bGjRsHuhinTAKBEEPUUEhDfe+993L33Xd3unZPQ3PvvfdeM4XDr371K9avX9/pmI0bN3LxxRefdBnBSPTW9vPt2bOHp556igULFpzS+QYDSTEhxBA1FNJQr1y5kmXLlvHb3/7W3LZ27VquueaaPr3//vvv/9Jl6Ojpp59u93rKlCk899xz/X6d00kCgRD+9u+7oHx3/54zeSosO/kn/K9aGuqJEycSExPDtm3bmDdvHmAkx3v//ff561//ypo1a2hpaWH8+PH8/e9/JywsrN37V61aZWZCfe+997j99ttJSEhol+n0s88+4/bbb6epqYnQ0FCee+45Jk6ciNvt5s477+T9999HKcUNN9zArbfeyuLFi83P89JLL/HQQw+hteaiiy7id7/7HWCkp77tttt45513CA0N5c0332TEiBEn/fs6XaRpSIghqmOKiZdffpno6GgzDfXatWs7paHOzc1l165dfPTRR+zatYuWlhZWrFjBE088wc6dO1m/fj3h4eHcf//9rFixgh07drBixQrzmr401I888gg7duxg3Lhx3ZavbRrqX/ziF2Y+oo5WrlzJ2rVrAdi6dSvx8fFMmDCBb37zm+Tk5LBz504mTZrEM8880+21HA4HN9xwA2+//TYff/wx5eXl5r7MzEw2bdrE9u3buf/++81FYNasWUNRURHbt29n165dXHvtte3OWVpayp133sl///tfduzYQU5ODuvWrQPA2hKRngAACWFJREFUbrczf/58du7cyTnnnMNf//rXnn5VA05qBEL42yk8ufeHoZCGGozcRWeeeSaPPfYYa9euZeXKlYDRNv/LX/6SEydO0NDQwAUXXNDttfbt28fYsWOZMGECAN/61rdYs2YNYNSSvvOd73DgwAGUUmaCt/Xr13PTTTeZK5rFxcW1O2dOTg6LFy8mMTERgGuvvZZNmzZx6aWXEhISYvZBzJ49mw8++OCUvqPTRWoEQgwzHdNQA2Ya6g8//JBdu3Zx0UUXDYo01ADp6emMGTOGjz76iNdff52rrroKMJp9Vq9eze7du/n1r3/d6dwddXete+65hyVLlrBnzx7efvtt8zy9ffae8rS1TU/dW4rswUACgRDDzFcpDbXPypUr+dGPfsS4ceNIS0szy5KSkoLT6TTP053MzEyKioo4dOgQAC+99JK5r7a2lpEjRwKtK62Bka76qaeeMm/ivqDpM2/ePD766CMqKytxu9289NJLLFq0qMdyDFYSCIQYooZCGmqfK6+8kvz8fK6++mpz229+8xvmzZvH0qVLyczM7PG7sFqtrFmzhosuuoiFCxcyevRoc98dd9zB3XffzVlnnYXb7Ta3X3/99YwaNYpp06Yxffp0XnzxxXbnTElJ4be//S1Llixh+vTpzJo1i0suuaTHcgxWkoZaCD+QNNRiIEkaaiGEECdFAoEQQgxzEgiE8JOvWrOrGBpO5d+dBAIh/MBqtVJVVSXB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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_history(history):\n",
    "  hist = pd.DataFrame(history.history)\n",
    "  hist['epoch'] = history.epoch\n",
    "\n",
    "  plt.figure()\n",
    "  plt.xlabel('Epoch')\n",
    "  plt.ylabel('Pérdida')\n",
    "  plt.plot(hist['epoch'], hist['loss'],\n",
    "           label='Pérdida entrenamiento')\n",
    "  plt.plot(hist['epoch'], hist['val_loss'],\n",
    "           label = 'Pérdida validación')\n",
    "  plt.ylim([0,2])\n",
    "  plt.legend()\n",
    "\n",
    "  plt.figure()\n",
    "  plt.xlabel('Epoch')\n",
    "  plt.ylabel('Exactitud')\n",
    "  plt.plot(hist['epoch'], hist['accuracy'],\n",
    "           label='Exactitud entrenamiento')\n",
    "  plt.plot(hist['epoch'], hist['val_accuracy'],\n",
    "           label = 'Exactitud Validación')\n",
    "  plt.ylim([0,1])\n",
    "  plt.legend()\n",
    "  plt.show()\n",
    "\n",
    "\n",
    "plot_history(history)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Predicciones</span> "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 271,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:5 out of the last 11 calls to <function Model.make_predict_function.<locals>.predict_function at 0x7f99d8514940> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for  more details.\n"
     ]
    }
   ],
   "source": [
    "# Predicting the Test set results\n",
    "y_pred = model_iris.predict(x_test)\n",
    "y_pred_c = np.argmax(y_pred, axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Matriz de confusión</span> "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 272,
   "metadata": {},
   "outputs": [],
   "source": [
    "cm = confusion_matrix(y_test_species, y_pred_c)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 273,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Our accuracy is 93.33333333333333%\n"
     ]
    }
   ],
   "source": [
    "print(\"Our accuracy is {}%\".format(((cm[0][0] + cm[1][1]+ cm[2][2])/y_test_species.shape[0])*100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 274,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(cm,annot=True)\n",
    "plt.savefig('h.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[Regresar al inicio](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Exploración interna de la red</span> "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cálculo de la salida de los datos de entrenamiento"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 275,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.  , 0.01, 0.99],\n",
       "       [0.51, 0.44, 0.05],\n",
       "       [0.  , 0.38, 0.62],\n",
       "       [0.8 , 0.18, 0.02],\n",
       "       [1.  , 0.  , 0.  ],\n",
       "       [0.98, 0.02, 0.  ],\n",
       "       [1.  , 0.  , 0.  ],\n",
       "       [0.  , 0.02, 0.98],\n",
       "       [0.02, 0.79, 0.19],\n",
       "       [1.  , 0.  , 0.  ]], dtype=float32)"
      ]
     },
     "execution_count": 275,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inputs = x_train\n",
    "outputs = model_iris(inputs)\n",
    "outputs.numpy().round(2)[:10]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Extrae la segunda capa oculta para estos datos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 217,
   "metadata": {},
   "outputs": [],
   "source": [
    "# modelo Sequential\n",
    "#layer_2 = tf.keras.models.Model(\n",
    "#    inputs=model_iris.inputs,\n",
    "#    outputs=model_iris.get_layer(name='segunda_capa_oculta').output,\n",
    "#)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 276,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:6 out of the last 12 calls to <function Model.make_predict_function.<locals>.predict_function at 0x7f99ac40e940> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for  more details.\n"
     ]
    }
   ],
   "source": [
    "# API funcional\n",
    "# 1. crea un nuevo modelo\n",
    "# 2. Compila\n",
    "# 3. Predice\n",
    "\n",
    "inputs = x_train\n",
    "model = Model(model_iris.input, model_iris.get_layer(name='segunda_capa_oculta').output)\n",
    "model.compile()\n",
    "output = model.predict(inputs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 277,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(120, 16)"
      ]
     },
     "execution_count": 277,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "output.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Crea tabla de datos para hacer un gráfico tsne"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 278,
   "metadata": {},
   "outputs": [],
   "source": [
    "plot_data = np.hstack([output, np.array(y_train_species).reshape(y_train_species.shape[0],1)])\n",
    "plot_data = pd.DataFrame(plot_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 279,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "      <th>14</th>\n",
       "      <th>15</th>\n",
       "      <th>16</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2.467787</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.731057</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.510913</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.827167</td>\n",
       "      <td>3.498898</td>\n",
       "      <td>2.964854</td>\n",
       "      <td>1.161228</td>\n",
       "      <td>1.649435</td>\n",
       "      <td>2.353893</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.230899</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.215546</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.113442</td>\n",
       "      <td>0.213827</td>\n",
       "      <td>0.396466</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.100383</td>\n",
       "      <td>0.180319</td>\n",
       "      <td>0.579343</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.981748</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.150882</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.072097</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.005695</td>\n",
       "      <td>1.802041</td>\n",
       "      <td>1.445802</td>\n",
       "      <td>0.958601</td>\n",
       "      <td>0.674698</td>\n",
       "      <td>1.188161</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.418447</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.336955</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.276314</td>\n",
       "      <td>0.321667</td>\n",
       "      <td>0.520616</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.088640</td>\n",
       "      <td>0.445429</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.559006</td>\n",
       "      <td>0.097274</td>\n",
       "      <td>1.694688</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.285218</td>\n",
       "      <td>1.820933</td>\n",
       "      <td>1.972289</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>115</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.115792</td>\n",
       "      <td>0.183403</td>\n",
       "      <td>0.435880</td>\n",
       "      <td>0.432974</td>\n",
       "      <td>0.678667</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.090053</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>116</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.171450</td>\n",
       "      <td>0.110357</td>\n",
       "      <td>0.347058</td>\n",
       "      <td>0.385124</td>\n",
       "      <td>0.669227</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.025612</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>117</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.230899</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.215546</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.113442</td>\n",
       "      <td>0.213827</td>\n",
       "      <td>0.396466</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.100383</td>\n",
       "      <td>0.180319</td>\n",
       "      <td>0.579343</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>118</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.230899</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.215546</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.113442</td>\n",
       "      <td>0.213827</td>\n",
       "      <td>0.396466</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.100383</td>\n",
       "      <td>0.180319</td>\n",
       "      <td>0.579343</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>119</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.230899</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.215546</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.113442</td>\n",
       "      <td>0.213827</td>\n",
       "      <td>0.396466</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.100383</td>\n",
       "      <td>0.180319</td>\n",
       "      <td>0.579343</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>120 rows × 17 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           0         1         2         3         4         5         6   \\\n",
       "0    2.467787  0.000000  0.731057  0.000000  0.510913  0.000000  0.000000   \n",
       "1    0.000000  0.230899  0.000000  0.215546  0.000000  0.113442  0.213827   \n",
       "2    0.981748  0.000000  0.150882  0.000000  0.072097  0.000000  0.000000   \n",
       "3    0.000000  0.418447  0.000000  0.336955  0.000000  0.276314  0.321667   \n",
       "4    0.000000  2.559006  0.097274  1.694688  0.000000  2.285218  1.820933   \n",
       "..        ...       ...       ...       ...       ...       ...       ...   \n",
       "115  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000   \n",
       "116  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000   \n",
       "117  0.000000  0.230899  0.000000  0.215546  0.000000  0.113442  0.213827   \n",
       "118  0.000000  0.230899  0.000000  0.215546  0.000000  0.113442  0.213827   \n",
       "119  0.000000  0.230899  0.000000  0.215546  0.000000  0.113442  0.213827   \n",
       "\n",
       "           7         8         9         10        11        12        13  \\\n",
       "0    0.000000  1.827167  3.498898  2.964854  1.161228  1.649435  2.353893   \n",
       "1    0.396466  0.000000  0.100383  0.180319  0.579343  0.000000  0.000000   \n",
       "2    0.000000  1.005695  1.802041  1.445802  0.958601  0.674698  1.188161   \n",
       "3    0.520616  0.000000  0.000000  0.088640  0.445429  0.000000  0.000000   \n",
       "4    1.972289  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000   \n",
       "..        ...       ...       ...       ...       ...       ...       ...   \n",
       "115  0.115792  0.183403  0.435880  0.432974  0.678667  0.000000  0.090053   \n",
       "116  0.171450  0.110357  0.347058  0.385124  0.669227  0.000000  0.025612   \n",
       "117  0.396466  0.000000  0.100383  0.180319  0.579343  0.000000  0.000000   \n",
       "118  0.396466  0.000000  0.100383  0.180319  0.579343  0.000000  0.000000   \n",
       "119  0.396466  0.000000  0.100383  0.180319  0.579343  0.000000  0.000000   \n",
       "\n",
       "      14   15   16  \n",
       "0    0.0  0.0  2.0  \n",
       "1    0.0  0.0  1.0  \n",
       "2    0.0  0.0  2.0  \n",
       "3    0.0  0.0  0.0  \n",
       "4    0.0  0.0  0.0  \n",
       "..   ...  ...  ...  \n",
       "115  0.0  0.0  1.0  \n",
       "116  0.0  0.0  1.0  \n",
       "117  0.0  0.0  0.0  \n",
       "118  0.0  0.0  0.0  \n",
       "119  0.0  0.0  1.0  \n",
       "\n",
       "[120 rows x 17 columns]"
      ]
     },
     "execution_count": 279,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot_data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Crea gráfico tsne"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[t-SNE] Computing 119 nearest neighbors...\n",
      "[t-SNE] Indexed 120 samples in 0.000s...\n",
      "[t-SNE] Computed neighbors for 120 samples in 0.011s...\n",
      "[t-SNE] Computed conditional probabilities for sample 120 / 120\n",
      "[t-SNE] Mean sigma: 1.722451\n",
      "[t-SNE] KL divergence after 250 iterations with early exaggeration: 49.608604\n",
      "[t-SNE] KL divergence after 700 iterations: 0.032179\n"
     ]
    }
   ],
   "source": [
    "from sklearn.manifold import TSNE\n",
    "\n",
    "# reduce dimensionalidad con t-sne\n",
    "tsne = TSNE(n_components=2, verbose=1, perplexity=50, n_iter=1000, learning_rate=200)\n",
    "tsne_results = tsne.fit_transform(output)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 251,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = [target_dimensions[i] for i in y_train_species]\n",
    "#['Setosa', 'Versicolor', 'Virginica']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 281,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x7f99a4611bb0>"
      ]
     },
     "execution_count": 281,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 445x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# visualiza con seaborn\n",
    "df_tsne = pd.DataFrame(tsne_results, columns=['x', 'y'])\n",
    "df_tsne['label'] = labels\n",
    "sns.lmplot(x='x', y='y', data=df_tsne, hue='label', fit_reg=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ejercicio"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. Reescriba y reentren la red en Pytorch.\n",
    "1. Investigue como extraer la capa oculta en Pytorch\n",
    "1. Haga un gráfico TSNE para los datos originales\n",
    "1. Haga un reducción ACP y haga el correspondiente gráfico\n",
    "\n",
    "¿Cuáles son sus conclusiones?"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "toc-autonumbering": false
 },
 "nbformat": 4,
 "nbformat_minor": 4
}