{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "\"GMV\n", "\"UPM\n", "

EDA: EMT dataset 🚦

\n", "
INESDATA-MOV
\n", "
\n", "\n", "\n", "# AnΓ‘lisis EDA\n", "\n", "En este cuaderno se realiza el anΓ‘lisis de datos exploratorio (EDA) del dataset de la [EMT](https://www.emtmadrid.es/Home). Una vez realizado el anΓ‘lisis de calidad se estudiarΓ‘ para el dataset resultante:\n", "\n", "* Valores nulos y unicidad de las variables\n", "* Correlaciones entre las variables\n", "* Correlaciones entre las variables y la variable de estudio `estimateArrive`\n", "\n", "Con ello se pretende hacer un filtrado de las variables que no dispongan de informaciΓ³n relevante para el modelo o variables con la misma informaciΓ³n. Por otro lado se harΓ‘ un estudio de los valores nulos para, en caso de que sea pertinente, reconstruir estos datos. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "import statistics\n", "import random\n", "import polars as pl\n", "import pandas as pd\n", "import seaborn as sns\n", "import polars.selectors as cs\n", "import matplotlib.pyplot as plt\n", "from datetime import datetime, timedelta\n", "\n", "import warnings\n", "\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "ROOT_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(os.getcwd()))))\n", "DATA_PATH = os.path.join(ROOT_PATH, \"data\", \"processed\")\n", "EMT_DATA_PATH = os.path.join(DATA_PATH, \"emt\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dataset" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "sample_data = pl.scan_csv(os.path.join(EMT_DATA_PATH, \"2024\", \"03\",\"13\", f\"emt_20240313.csv\"))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1_134_462, 19)
datedatetimebuslinestoppositionBusLonpositionBusLatpositionTypeBusDistanceBusdestinationdeviationStartTimeStopTimeMinimunFrequencyMaximumFrequencyisHeaddayTypestrikeestimateArrive
strstri64stri64f64f64i64i64stri64strstri64i64boolstrstri64
"2024-03-13""2024-03-13 08:…513"27"56-3.69054240.42373901841"PLAZA CASTILLA…0"05:55""23:30"312false"LA""N"473
"2024-03-13""2024-03-13 08:…521"27"56-3.68901940.42901101221"PLAZA CASTILLA…0"05:55""23:30"312false"LA""N"313
"2024-03-13""2024-03-13 08:…2549"150"56-3.69160840.42136602081"VIRGEN CORTIJO…0nullnullnullnullfalsenullnull547
"2024-03-13""2024-03-13 08:…2561"150"56-3.69841140.41801302779"VIRGEN CORTIJO…0nullnullnullnullfalsenullnull1080
"2024-03-13""2024-03-13 08:…5571"14"56-3.68791840.432850679"PIO XII"0nullnullnullnullfalsenullnull197
"2024-03-13""2024-03-13 22:…2141"174"51023-3.66704840.48913608114"VALDEBEBAS"0"06:00""23:45"722false"LA""N"1225
"2024-03-13""2024-03-13 22:…8810"171"510230.00.0013290"VALDEBEBAS"0nullnullnullnullfalsenullnull2163
"2024-03-13""2024-03-13 22:…8829"171"510230.00.002088"VALDEBEBAS"0nullnullnullnullfalsenullnull396
"2024-03-13""2024-03-13 22:…2290"174"3256-3.62309240.48233013847"VALDEBEBAS"0"06:00""23:45"722false"LA""N"1960
"2024-03-13""2024-03-13 22:…8879"174"3256-3.67613740.4696204891"VALDEBEBAS"0"06:00""23:45"722false"LA""N"746
" ], "text/plain": [ "shape: (1_134_462, 19)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ date ┆ datetime ┆ bus ┆ line ┆ … ┆ isHead ┆ dayType ┆ strike ┆ estimateArrive β”‚\n", "β”‚ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- β”‚\n", "β”‚ str ┆ str ┆ i64 ┆ str ┆ ┆ bool ┆ str ┆ str ┆ i64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═════════════════β•ͺ══════β•ͺ══════β•ͺ═══β•ͺ════════β•ͺ═════════β•ͺ════════β•ͺ════════════════║\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 513 ┆ 27 ┆ … ┆ false ┆ LA ┆ N ┆ 473 β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 521 ┆ 27 ┆ … ┆ false ┆ LA ┆ N ┆ 313 β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2549 ┆ 150 ┆ … ┆ false ┆ null ┆ null ┆ 547 β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2561 ┆ 150 ┆ … ┆ false ┆ null ┆ null ┆ 1080 β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 5571 ┆ 14 ┆ … ┆ false ┆ null ┆ null ┆ 197 β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2141 ┆ 174 ┆ … ┆ false ┆ LA ┆ N ┆ 1225 β”‚\n", "β”‚ ┆ 22:59:07.770061 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 8810 ┆ 171 ┆ … ┆ false ┆ null ┆ null ┆ 2163 β”‚\n", "β”‚ ┆ 22:59:07.770061 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 8829 ┆ 171 ┆ … ┆ false ┆ null ┆ null ┆ 396 β”‚\n", "β”‚ ┆ 22:59:07.770061 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2290 ┆ 174 ┆ … ┆ false ┆ LA ┆ N ┆ 1960 β”‚\n", "β”‚ ┆ 22:59:36.378432 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 8879 ┆ 174 ┆ … ┆ false ┆ LA ┆ N ┆ 746 β”‚\n", "β”‚ ┆ 22:59:36.378432 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Variables numΓ©ricas" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 10)
busstoppositionBusLonpositionBusLatpositionTypeBusDistanceBusdeviationMinimunFrequencyMaximumFrequencyestimateArrive
i64i64f64f64i64i64i64i64i64i64
51356-3.69054240.423739018410312473
52156-3.68901940.429011012210312313
254956-3.69160840.421366020810nullnull547
256156-3.69841140.418013027790nullnull1080
557156-3.68791840.4328506790nullnull197
" ], "text/plain": [ "shape: (5, 10)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ bus ┆ stop ┆ positionBus ┆ positionBus ┆ … ┆ deviation ┆ MinimunFreq ┆ MaximumFreq ┆ estimateAr β”‚\n", "β”‚ --- ┆ --- ┆ Lon ┆ Lat ┆ ┆ --- ┆ uency ┆ uency ┆ rive β”‚\n", "β”‚ i64 ┆ i64 ┆ --- ┆ --- ┆ ┆ i64 ┆ --- ┆ --- ┆ --- β”‚\n", "β”‚ ┆ ┆ f64 ┆ f64 ┆ ┆ ┆ i64 ┆ i64 ┆ i64 β”‚\n", "β•žβ•β•β•β•β•β•β•ͺ══════β•ͺ═════════════β•ͺ═════════════β•ͺ═══β•ͺ═══════════β•ͺ═════════════β•ͺ═════════════β•ͺ════════════║\n", "β”‚ 513 ┆ 56 ┆ -3.690542 ┆ 40.423739 ┆ … ┆ 0 ┆ 3 ┆ 12 ┆ 473 β”‚\n", "β”‚ 521 ┆ 56 ┆ -3.689019 ┆ 40.429011 ┆ … ┆ 0 ┆ 3 ┆ 12 ┆ 313 β”‚\n", "β”‚ 2549 ┆ 56 ┆ -3.691608 ┆ 40.421366 ┆ … ┆ 0 ┆ null ┆ null ┆ 547 β”‚\n", "β”‚ 2561 ┆ 56 ┆ -3.698411 ┆ 40.418013 ┆ … ┆ 0 ┆ null ┆ null ┆ 1080 β”‚\n", "β”‚ 5571 ┆ 56 ┆ -3.687918 ┆ 40.43285 ┆ … ┆ 0 ┆ null ┆ null ┆ 197 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(cs.numeric()).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Variables categΓ³ricas" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 8)
datedatetimelinedestinationStartTimeStopTimedayTypestrike
strstrstrstrstrstrstrstr
"2024-03-13""2024-03-13 08:…"27""PLAZA CASTILLA…"05:55""23:30""LA""N"
"2024-03-13""2024-03-13 08:…"27""PLAZA CASTILLA…"05:55""23:30""LA""N"
"2024-03-13""2024-03-13 08:…"150""VIRGEN CORTIJO…nullnullnullnull
"2024-03-13""2024-03-13 08:…"150""VIRGEN CORTIJO…nullnullnullnull
"2024-03-13""2024-03-13 08:…"14""PIO XII"nullnullnullnull
" ], "text/plain": [ "shape: (5, 8)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ date ┆ datetime ┆ line ┆ destination ┆ StartTime ┆ StopTime ┆ dayType ┆ strike β”‚\n", "β”‚ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- β”‚\n", "β”‚ str ┆ str ┆ str ┆ str ┆ str ┆ str ┆ str ┆ str β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════════════════β•ͺ══════β•ͺ════════════════β•ͺ═══════════β•ͺ══════════β•ͺ═════════β•ͺ════════║\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 27 ┆ PLAZA CASTILLA ┆ 05:55 ┆ 23:30 ┆ LA ┆ N β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 27 ┆ PLAZA CASTILLA ┆ 05:55 ┆ 23:30 ┆ LA ┆ N β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 150 ┆ VIRGEN CORTIJO ┆ null ┆ null ┆ null ┆ null β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 150 ┆ VIRGEN CORTIJO ┆ null ┆ null ┆ null ┆ null β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 14 ┆ PIO XII ┆ null ┆ null ┆ null ┆ null β”‚\n", "β”‚ ┆ 08:00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(cs.string()).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preprocesamiento previo \n", "### Creamos la PK" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 20)
datedatetimebuslinestoppositionBusLonpositionBusLatpositionTypeBusDistanceBusdestinationdeviationStartTimeStopTimeMinimunFrequencyMaximumFrequencyisHeaddayTypestrikeestimateArrivePK
strstri64stri64f64f64i64i64stri64strstri64i64boolstrstri64str
"2024-03-13""2024-03-13 08:…513"27"56-3.69054240.42373901841"PLAZA CASTILLA…0"05:55""23:30"312false"LA""N"473"2024-03-13 08:…
"2024-03-13""2024-03-13 08:…521"27"56-3.68901940.42901101221"PLAZA CASTILLA…0"05:55""23:30"312false"LA""N"313"2024-03-13 08:…
"2024-03-13""2024-03-13 08:…2549"150"56-3.69160840.42136602081"VIRGEN CORTIJO…0nullnullnullnullfalsenullnull547"2024-03-13 08:…
"2024-03-13""2024-03-13 08:…2561"150"56-3.69841140.41801302779"VIRGEN CORTIJO…0nullnullnullnullfalsenullnull1080"2024-03-13 08:…
"2024-03-13""2024-03-13 08:…5571"14"56-3.68791840.432850679"PIO XII"0nullnullnullnullfalsenullnull197"2024-03-13 08:…
" ], "text/plain": [ "shape: (5, 20)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ date ┆ datetime ┆ bus ┆ line ┆ … ┆ dayType ┆ strike ┆ estimateArriv ┆ PK β”‚\n", "β”‚ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ e ┆ --- β”‚\n", "β”‚ str ┆ str ┆ i64 ┆ str ┆ ┆ str ┆ str ┆ --- ┆ str β”‚\n", "β”‚ ┆ ┆ ┆ ┆ ┆ ┆ ┆ i64 ┆ β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•ͺ════════════════β•ͺ══════β•ͺ══════β•ͺ═══β•ͺ═════════β•ͺ════════β•ͺ═══════════════β•ͺ═══════════════║\n", "β”‚ 2024-03-13 ┆ 2024-03-13 08: ┆ 513 ┆ 27 ┆ … ┆ LA ┆ N ┆ 473 ┆ 2024-03-13 β”‚\n", "β”‚ ┆ 00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ 08:00:01.7653 β”‚\n", "β”‚ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 17_B513_… β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 08: ┆ 521 ┆ 27 ┆ … ┆ LA ┆ N ┆ 313 ┆ 2024-03-13 β”‚\n", "β”‚ ┆ 00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ 08:00:01.7653 β”‚\n", "β”‚ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 17_B521_… β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 08: ┆ 2549 ┆ 150 ┆ … ┆ null ┆ null ┆ 547 ┆ 2024-03-13 β”‚\n", "β”‚ ┆ 00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ 08:00:01.7653 β”‚\n", "β”‚ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 17_B2549… β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 08: ┆ 2561 ┆ 150 ┆ … ┆ null ┆ null ┆ 1080 ┆ 2024-03-13 β”‚\n", "β”‚ ┆ 00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ 08:00:01.7653 β”‚\n", "β”‚ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 17_B2561… β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 08: ┆ 5571 ┆ 14 ┆ … ┆ null ┆ null ┆ 197 ┆ 2024-03-13 β”‚\n", "β”‚ ┆ 00:01.765317 ┆ ┆ ┆ ┆ ┆ ┆ ┆ 08:00:01.7653 β”‚\n", "β”‚ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 17_B5571… β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data = sample_data.with_columns((pl.col('datetime').cast(pl.String)+\"_B\"+pl.col('bus').cast(pl.String)+\"_L\"+ pl.col('line').cast(pl.String)+\"_S\"+pl.col('stop').cast(pl.String)).alias('PK'))\n", "sample_data.head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**PK no ΓΊnica**" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
PKcount
stru32
"2024-03-13 22:…2
"2024-03-13 22:…2
"2024-03-13 22:…2
"2024-03-13 22:…2
"2024-03-13 22:…2
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ PK ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 2024-03-13 22:57:54.826278_B5738… ┆ 2 β”‚\n", "β”‚ 2024-03-13 22:58:02.761728_B2260… ┆ 2 β”‚\n", "β”‚ 2024-03-13 22:39:53.268162_B5738… ┆ 2 β”‚\n", "β”‚ 2024-03-13 22:53:53.748548_B5738… ┆ 2 β”‚\n", "β”‚ 2024-03-13 22:54:57.597581_B5413… ┆ 2 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('PK')).count().sort('count',descending = True).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Eliminamos los valores incorrectos `estimateArrive`" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
estimateArrivecount
i64u32
9999992558
888888753
53891
53431
53391
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ estimateArrive ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 999999 ┆ 2558 β”‚\n", "β”‚ 888888 ┆ 753 β”‚\n", "β”‚ 5389 ┆ 1 β”‚\n", "β”‚ 5343 ┆ 1 β”‚\n", "β”‚ 5339 ┆ 1 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('estimateArrive')).count().sort('estimateArrive',descending=True).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Filtramos por un ETA < 88888 ya que es un valor de tiempo errΓ³neo" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.filter(pl.col('estimateArrive')<888888)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Comprobamos que la PK es ΓΊnica**" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
PKcount
stru32
"2024-03-13 22:…2
"2024-03-13 10:…2
"2024-03-13 10:…2
"2024-03-13 10:…2
"2024-03-13 10:…2
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ PK ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 2024-03-13 22:56:55.785282_B2263… ┆ 2 β”‚\n", "β”‚ 2024-03-13 10:36:31.407876_B2544… ┆ 2 β”‚\n", "β”‚ 2024-03-13 10:37:05.685830_B2544… ┆ 2 β”‚\n", "β”‚ 2024-03-13 10:55:23.770393_B2539… ┆ 2 β”‚\n", "β”‚ 2024-03-13 10:35:57.665293_B2544… ┆ 2 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('PK')).count().sort('count',descending = True).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sigue habiendo datos duplicados, por lo que para esos casos, cogeremos el que tenga menor ETA" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.group_by('PK').min()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
PKcount
stru32
"2024-03-13 15:…1
"2024-03-13 17:…1
"2024-03-13 17:…1
"2024-03-13 12:…1
"2024-03-13 14:…1
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ PK ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 2024-03-13 15:28:07.888841_B4840… ┆ 1 β”‚\n", "β”‚ 2024-03-13 17:50:57.960038_B2260… ┆ 1 β”‚\n", "β”‚ 2024-03-13 17:14:02.830113_B4965… ┆ 1 β”‚\n", "β”‚ 2024-03-13 12:19:58.867713_B8846… ┆ 1 β”‚\n", "β”‚ 2024-03-13 14:27:27.845018_B4723… ┆ 1 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by('PK').count().sort('count',descending=True).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matriz de confusiΓ³n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pasamos `datetime` a formato fecha**" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.with_columns(pl.col('datetime').map_elements(lambda x: datetime.strptime(x, \"%Y-%m-%d %H:%M:%S.%f\")))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pasamos `date` a formato fecha**" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.with_columns(pl.col(\"date\").cast(pl.Date))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pasamos la variable `isHead` a numΓ©rica**" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.with_columns(pl.col('isHead').cast(pl.UInt8))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 20)
PKdatedatetimebuslinestoppositionBusLonpositionBusLatpositionTypeBusDistanceBusdestinationdeviationStartTimeStopTimeMinimunFrequencyMaximumFrequencyisHeaddayTypestrikeestimateArrive
strdatedatetime[ΞΌs]i64stri64f64f64i64i64stri64strstri64i64u8strstri64
"2024-03-13 13:…2024-03-132024-03-13 13:57:02.9217085575"14"54-3.69213340.42017202227"PIO XII"0nullnullnullnull0nullnull844
"2024-03-13 21:…2024-03-132024-03-13 21:53:03.3318145667"40"52-3.69702840.43239804060"ALFONSO XIII"0nullnullnullnull0nullnull1406
"2024-03-13 13:…2024-03-132024-03-13 13:41:03.3860374793"45"72-3.69474340.39275102869"REINA VICTORIA…0nullnullnullnull0nullnull1085
"2024-03-13 13:…2024-03-132024-03-13 13:56:54.781069521"27"54-3.68954840.437140612"PLAZA CASTILLA…0"05:55""23:30"3120"LA""N"194
"2024-03-13 18:…2024-03-132024-03-13 18:24:05.9960582468"134"4968-3.71393740.48317901207"MONTECARMELO"0"06:25""23:45"9260"LA""N"283
" ], "text/plain": [ "shape: (5, 20)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ PK ┆ date ┆ datetime ┆ bus ┆ … ┆ isHead ┆ dayType ┆ strike ┆ estimateArri β”‚\n", "β”‚ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ ve β”‚\n", "β”‚ str ┆ date ┆ datetime[ΞΌs] ┆ i64 ┆ ┆ u8 ┆ str ┆ str ┆ --- β”‚\n", "β”‚ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ i64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ════════════β•ͺ═══════════════β•ͺ══════β•ͺ═══β•ͺ════════β•ͺ═════════β•ͺ════════β•ͺ══════════════║\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 5575 ┆ … ┆ 0 ┆ null ┆ null ┆ 844 β”‚\n", "β”‚ 13:57:02.9217 ┆ ┆ 13:57:02.9217 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 08_B5575… ┆ ┆ 08 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 5667 ┆ … ┆ 0 ┆ null ┆ null ┆ 1406 β”‚\n", "β”‚ 21:53:03.3318 ┆ ┆ 21:53:03.3318 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 14_B5667… ┆ ┆ 14 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 4793 ┆ … ┆ 0 ┆ null ┆ null ┆ 1085 β”‚\n", "β”‚ 13:41:03.3860 ┆ ┆ 13:41:03.3860 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 37_B4793… ┆ ┆ 37 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 521 ┆ … ┆ 0 ┆ LA ┆ N ┆ 194 β”‚\n", "β”‚ 13:56:54.7810 ┆ ┆ 13:56:54.7810 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 69_B521_… ┆ ┆ 69 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 2468 ┆ … ┆ 0 ┆ LA ┆ N ┆ 283 β”‚\n", "β”‚ 18:24:05.9960 ┆ ┆ 18:24:05.9960 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 58_B2468… ┆ ┆ 58 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.head().collect()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "numeric_var = ['bus', 'line','stop',\n", " 'positionBusLon',\n", " 'positionBusLat',\n", " 'DistanceBus',\n", " 'deviation',\n", " 'MinimunFrequency',\n", " 'MaximumFrequency',\n", " 'isHead',\n", " 'estimateArrive',]" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "sample_data_df = sample_data.collect()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "matrix = [[0] * len(numeric_var) for _ in range(len(numeric_var))]\n", "for i in range(0,len(numeric_var)):\n", " for j in range(0,len(numeric_var)):\n", " matrix[i][j] = sample_data_df.select(pl.corr(numeric_var[i],numeric_var[j])).item()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "matrix_corr = pd.DataFrame(matrix, columns=numeric_var,index=numeric_var).apply(lambda col: col.round(2))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
buslinestoppositionBusLonpositionBusLatDistanceBusdeviationMinimunFrequencyMaximumFrequencyisHeadestimateArrive
bus1.000.040.110.27-0.270.000.090.100.280.010.07
line0.041.000.24-0.080.090.270.010.430.390.080.12
stop0.110.241.000.08-0.070.13-0.020.010.070.260.06
positionBusLon0.27-0.080.081.00-1.000.12-0.010.02-0.02-0.020.11
positionBusLat-0.270.09-0.07-1.001.00-0.110.010.020.020.02-0.10
DistanceBus0.000.270.130.12-0.111.000.000.240.22-0.060.86
deviation0.090.01-0.02-0.010.010.001.00-0.00-0.00-0.020.02
MinimunFrequency0.100.430.010.020.020.24-0.001.000.780.030.30
MaximumFrequency0.280.390.07-0.020.020.22-0.000.781.000.040.26
isHead0.010.080.26-0.020.02-0.06-0.020.030.041.000.02
estimateArrive0.070.120.060.11-0.100.860.020.300.260.021.00
\n", "
" ], "text/plain": [ " bus line stop positionBusLon positionBusLat \\\n", "bus 1.00 0.04 0.11 0.27 -0.27 \n", "line 0.04 1.00 0.24 -0.08 0.09 \n", "stop 0.11 0.24 1.00 0.08 -0.07 \n", "positionBusLon 0.27 -0.08 0.08 1.00 -1.00 \n", "positionBusLat -0.27 0.09 -0.07 -1.00 1.00 \n", "DistanceBus 0.00 0.27 0.13 0.12 -0.11 \n", "deviation 0.09 0.01 -0.02 -0.01 0.01 \n", "MinimunFrequency 0.10 0.43 0.01 0.02 0.02 \n", "MaximumFrequency 0.28 0.39 0.07 -0.02 0.02 \n", "isHead 0.01 0.08 0.26 -0.02 0.02 \n", "estimateArrive 0.07 0.12 0.06 0.11 -0.10 \n", "\n", " DistanceBus deviation MinimunFrequency MaximumFrequency \\\n", "bus 0.00 0.09 0.10 0.28 \n", "line 0.27 0.01 0.43 0.39 \n", "stop 0.13 -0.02 0.01 0.07 \n", "positionBusLon 0.12 -0.01 0.02 -0.02 \n", "positionBusLat -0.11 0.01 0.02 0.02 \n", "DistanceBus 1.00 0.00 0.24 0.22 \n", "deviation 0.00 1.00 -0.00 -0.00 \n", "MinimunFrequency 0.24 -0.00 1.00 0.78 \n", "MaximumFrequency 0.22 -0.00 0.78 1.00 \n", "isHead -0.06 -0.02 0.03 0.04 \n", "estimateArrive 0.86 0.02 0.30 0.26 \n", "\n", " isHead estimateArrive \n", "bus 0.01 0.07 \n", "line 0.08 0.12 \n", "stop 0.26 0.06 \n", "positionBusLon -0.02 0.11 \n", "positionBusLat 0.02 -0.10 \n", "DistanceBus -0.06 0.86 \n", "deviation -0.02 0.02 \n", "MinimunFrequency 0.03 0.30 \n", "MaximumFrequency 0.04 0.26 \n", "isHead 1.00 0.02 \n", "estimateArrive 0.02 1.00 " ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matrix_corr" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAApYAAAIhCAYAAAD0PfrHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1QUVxvA4d8uVVCajSK9gwpWxN7FFnuN3diNGkuiMfaaxF6iEbvGLjbsYjd2Rayo2AuosEuVzvcHuLiwCygYks/7nDPnuLPv3HlnuKyXW2YlaWlpaQiCIAiCIAhCPkkLOwFBEARBEATh/4NoWAqCIAiCIAgFQjQsBUEQBEEQhAIhGpaCIAiCIAhCgRANS0EQBEEQBKFAiIalIAiCIAiCUCBEw1IQBEEQBEEoEKJhKQiCIAiCIBQI0bAUBEEQBEEQCoRoWAqCIAiCIAgFQjQsBUEQBEEQCtHp06dp2bIl5ubmSCQSdu/enesxJ0+epGLFiujo6ODg4MDatWuzxSxduhQbGxt0dXXx8vLi0qVLBZ98FqJhKQiCIAiCUIhiY2Px8PBg6dKleYp//PgxzZs3p169egQGBjJixAi+++47Dh8+rIjZunUrI0eOZNKkSVy7dg0PDw+aNGnCmzdvvtRlACBJS0tL+6JnEARBEARBEPJEIpGwa9cuWrdurTbmp59+Yv/+/dy6dUuxr3Pnzsjlcg4dOgSAl5cXVapUYcmSJQCkpqZiaWnJ999/z9ixY79Y/qLHUhAEQRAEoYAlJCQQFRWltCUkJBRI2efPn6dhw4ZK+5o0acL58+cBSExM5OrVq0oxUqmUhg0bKmK+FM0vWrog5GK/lnNhp6Ck/J1dhZ2CEt3E6MJOQYl++NPCTkHJyaJtCjsFJS6Gzwo7BSX6ifLCTkGJ5F84QFb07cPCTkFJWJnKhZ2CEp3kuMJOQYm5c/kvfo6C+n/p8vguTJkyRWnfpEmTmDx5cr7LDg0NpXTp0kr7SpcuTVRUFO/fv0cmk5GSkqIy5t69e/k+f05Ew1IQBEEQBKGAjRs3jpEjRyrt09HRKaRs/jmiYSkIgiAIgpBBoiUpkHJ0dHS+WEPS1NSUsLAwpX1hYWEYGBhQpEgRNDQ00NDQUBljamr6RXL6QMyxFARBEARByCDVlBTI9iV5e3sTEBCgtO/o0aN4e3sDoK2tTaVKlZRiUlNTCQgIUMR8KaJhKQiCIAiCUIhiYmIIDAwkMDAQSH+cUGBgIM+epc/bHjduHD169FDEDxw4kEePHvHjjz9y7949/vjjD7Zt28YPP/ygiBk5ciS+vr6sW7eOu3fvMmjQIGJjY+ndu/cXvRYxFC4IgiAIgpBBovXP97lduXKFevXqKV5/mJvZs2dP1q5dy+vXrxWNTABbW1v279/PDz/8wMKFCylTpgwrV66kSZMmiphOnTrx9u1bJk6cSGhoKJ6enhw6dCjbgp6CJp5jKRQqsSo8Z2JVeM7EqvCciVXhuROrwnP2Na4KP1q6bIGU0yjsVu5B/4fEULggCIIgCIJQIMRQuCAIgiAIQoaCWhX+tRINS0EQBEEQhAxfekX3/zsxFP4Vq1u3LiNGjCjsNARBEARB+D8heiyF/yyTmpWxG9UXw4pl0TUvxZV2gwnbG5D7gZ9hj/8BtvntJkImx97WhqEDvsPF2Ult/Kmz51i7cTOhYW+wMDejX68eeFWppDJ2wZJl+B86wqB+fWjXqmWe8tl58Bibdx8gQh6JvY0lP3zXHTdHe5Wxj569YNUWP4JDnhD69h3DenelY0sfpZjA2/fYtOcAwSFPCJfJmfnTcGp7qc5Xla0nLrLu8FnCI2NwsjTlpy7NKWtbRmWs3+kr+J8P5OGr9Af3ulqb832bRkrxFfpNUHnsiPZN6NmkZq75pKWlcWjHUs4f30F8bDQ2zhXo0GcCJc2s1R5zbLcvQZeP8ebVY7S0dbFx8qRllx8oZW4LQMTbl0wb1kTlsT2Hz8Wzmur3PtW+ffvYsXMnMpkMO1tbBg0ahLNzwS5y8ztwhC27/DPqjxXD+/XEzclBbfyJcxdYtWk7oW/eYWFmysAenfGuXEHxfoQ8kuXrNnM5MIiY2Dg83F0Y3q8nluZmn53f5t37FfmN+K4nbk6q6/fjZy9YtXkHwSGPCX37ju/7dKNjy6afdd4Ptp64yLojf6fX5zKl+alLM/X1+cwV/M/f4OGrNwC4WpnzfZsGSvFx8Qks8jvGicB7RMbGYV7CmC71vehQp0qe8tm7z1+pTgweNDDHOnH6zBnWb9hIWFgYFubm9OnTm6pVMs919tw5Dhw4yIOHD4mOjmbp4kXY26u+v6rs2n+Irbv2ZnweWjOsfx9cnRzVxp88e57Vf20h9M1bypib0r9nN6pVrqh4v943HVQeN6BXNzq3bZXnvAqKGArPH9FjKfxnaejrERUUzK1hU3IPzocTp8+yfOUaunfpxPKFc7GztWHsxKnI5HKV8bfv3mPGb/PwadSA5YvmUqOaF5NmzObxk+wrqs/+fYG7wfcpbmKS53wCzl5gyZpN9O7YmlVzpuJgY8XIqb8jk0epjE9ISMS8dEkGdu9IcSNDlTHvExLSy+nXQ+X7OTl8+SZztx1kQMt6bJowCKcypgxesI6IqBiV8VeCH+NTtRy+o/qwbmx/TI0NGTR/HW9kmfkfnfOj0ja5VxskEgkNKrrlKafj+1Zz+tBfdOg7kRHTNqGjU4TlsweQlJig9piQu1eo2bgLw6duYuDPK0hJTmL5rP4kxKevijUqbsqUZSeVNp/2Q9DR1cPVs9Yn3DH1Tp06xQpfX77t2pXFixdja2fHLxMmIFdT1z5HwNnzLF29kV6d27Jy3gwcbKwYPWU2Mnmkyvib9+4zde4Smjesy8p5M6nlVYnxs+fx6OlzIL0RP37WXF6FvWHmz6NYNX8mpUuWYOSkWbyPj/+s/Jas+Ytendqycu50HGysGDVVfX7xCQmYlS7FgO6dMTE2+uTzZXX48i3mbj/MgBZ12fTLAJwsTRm8cEMO9flJRn3uxbqfvsPUxIBBCzYo1ee52w/z9+2HzOjbFr8pQ/m2QTV+3XyAk4G5f2fzqVOn8fX1pVvXrixZvAg7O1vG51An7ty5w+xff6NJ48YsXbwIb29vpk6bzpMnTxQx8fEJuLu70ecznmd4/Mw5lq1aR8/OHVgx/1fsbaz5cdIMtT+fW3eDmTZnAc0a1cd3wW/U9KrKhJm/8fhp5hMUdq5bobT9OGwwEomE2tWrfXJ+BeG/8ID0fzPRsPzKJScnM3ToUAwNDSlRogQTJkzgwxOoJBIJu3fvVoo3MjJi7dq1ACQmJjJ06FDMzMzQ1dXF2tqaWbNm/WO5vz18mvuTFhC259gXPc/O3Xtp1qQRPo0aYG1lyYghA9HR0eHQUdW9o357/alSqQKd2rXB2tKS3t274mBvxx7/A0px796Fs+TPlYwb/QOamhp5zmfLvkO0bFSX5g1qY2tpwZgBvdDV0cH/+CmV8a6Odgzp2YWGNauhpaWlMsa7ogf9u7anTrVPf9TJxqN/07ZWZVrVqIi9eSnGd2uJrrYWu89dUxk/s18HOtbzwtnKDFuzkkzs2Zq0tDQu3g1RxJQwLKa0nQy8SxVnW8qUzL0BnpaWxqmDG2jcpj/lKtfH3NqZroNnEiV7w80r6nu0B4z7k6p1WmNm6YCFtQtdB81A9u41Lx7fAUAq1cDAqITSdvNyAJ7VmqCjq/eJd021Xbt20dTHh8aNG2NtZcX3Q4eio6PDkSNHCqR8gG17DtCicT2aNaiLjWUZRg3qi66ODvsDVNefHfsOUbWiB13atMTG0oLvvu2Ik50tfgfSc3rxKpTbwQ8ZNbAPro72WFmYM2pgHxISEwk4c/6T89u69yAtG9WjeYM62FqWYfTAPjnm5+poz5BeXWlYyxttzfwPwm08+jdta1aiVY0K6fX52xYZ9fm6yviZ37WnY92qOFtm1OcerdLr871HipgbIc9p4e1BZWdbzEsY0652ZZzKlOb2k5e55uO3axc+Pj40btzoozqhy2E1dWL3nr1UrlSJDu3bYWVlRc8e3XGwt2fvPn9FTMMG9fm2a1cqVPD8tJsDbN/jT/PGDWjasB42VpaMHNwfXR1tDh47rjJ+5779VK3oSee2rbC2LEOfbp1xtLNj1/5DihgTY2Ol7dzFy3iWc8fc9Ms+b1EdiYakQLavlWhYfuXWrVuHpqYmly5dYuHChcybN4+VK1fm6dhFixaxd+9etm3bRnBwMH/99Rc2NjZfNuF/WFJSEvcfhlDR00OxTyqVUtGzPHfuBas85s69YKV4gCoVPblz777idWpqKrPnLaBj21bYWFt9Qj7J3A95QuXy7kr5VC7vxu3gf/55fEnJydx9+govVzulfLxc7QkKeZ6nMuITk0hOScFQX3XjLDwqhrM379O6ZkWV72eLf/OCaPk7nMpmfm1ZEb1iWNuX58mDG3kqA+B9XHoPlV5R1b28zx/d5uXTe3jVa5vnMnOSlJTEg4cP8fT0VOyTSqV4enpy917uPVt5O0cy90MeU7l85nP6pFIplTzKcjv4gcpjbgc/oFJ55ef6Va1QXhGfmJQEgPZHf7RIpVK0NDUJuqP6dyS3/Cp5KOdXubz6/ApSUnIyd5+9VlGf7Qh69Kn1uYhin4e9JaduBPNGFkVaWhqX7z3maVg41dxyHn7+UCcqZKkTFXKoE3fv3cvWYKxUqWKB1KH0z8NHVPLMfJakVCqlokd5bn/0+faxO/fuU8lD+dmTVSp6qI2PkMm5cOUazRrVz3e+QuEQcyy/cpaWlsyfPx+JRIKzszM3b95k/vz59OvXL9djnz17hqOjIzVr1kQikWBtrX7+2n9VZFQ0qampGGcZQjY2MuL5C9W9DTKZHGMjI6V9RkZGRMhlitdbduxCQ0ODNt+0+LR8oqNJSU3FxMhAab+JkSFPX77+pLIKgiwmLj0fg6JK+4sbFOVJ6Ls8lbFw5xFKGhXDy81O5fv7/r6Ono4O9fM4DB4dmX7eoobFlfYXNSxOtDxvOaWmprJ7/WxsnStgZql67tjFE36UtrDD1qmCyvc/VVRUVHpdMzZW2m9sZMSL53lr1OTmQ/3JWp9NDA159uKVymMi5HJMstZ/Q0MiZHIArMuYU7pkCVZs2MLowX3R1dFl274DvA2PIFwmU1Fi7vmZGGb9fTPg6UvV+RUktfW5WFGevM5rfT5KScNiSo3Tnzo3Y9rGvTT5aS6aUikSqYQJ3b+hkpNNjmV9qBNGWYb4jYyMeK6mTshkMoxUfP7IPvFnoYr6z0NDnr1U/XkYIZer/PyUZdSfrA4fP4VeEV1qe3vlO9/PJf2KexsLgmhYfuWqVauGRJL5S+Tt7c3cuXNJSUnJ9dhevXrRqFEjnJ2d8fHxoUWLFjRu3FhtfEJCAgkJynPcktJS0ZJ8XR3n9x+GsGuvP8sWzlW691+j1QdPc/jSTXzH9EFHzTD9nnPXaOpVXu37V8/6s21l5jzbfj/+ke+8dq6ZzuvnDxk2eb3K9xMT47n69wEatxmQ73P912lqajL9pxH8usSX5t36o5HRA+pV0SP3g//PrD54hsOXb+E7updSfd1y4iI3H71gwZCumBU35Nr9p8zetJ+ShsVy7bX82hw8dpyGdWqhra1daDlIpF/353J+iYaloJZEIiHrN34mZQx7AVSsWJHHjx9z8OBBjh07RseOHWnYsCE7duxQWd6sWbOYMkV5oU0XiQnfapQo+OQLiKFBMaRSabaJ6TK5HGM1CwWMjY2yLeyRy+WYGKX3RN28fQd5ZCRde2f2CqempvLnqrX47dnHX6tXqM+nWDE0pFIisizUiZBHql2Y8yUZF9VLzyfLwobwqBiKZ+n1yWr94bOsOXiG5SN74VTGVGXMtftPeBL6jtn9O6otx71SPUY7ZA61JSclAhATGY6hcUnF/pjIcMxtcl9dvXPNDO5cO8XQSeswKq46rxsXj5CU8J4qtb/Jtby8MjAwSK9rWXqWZHI5xp+wuCsnH+pP1vocERmpduGLiZEREVnrf5Z4Zwc7Vi+YRUxsHMnJyRgZGjBgzAScHVT3QueWX0Rk1t+3qH+kfqutz9ExFDfMpT4fOceaQ2dZ/kMPpfocn5jE4l0BzBvUmVrl058k4VTGlOAXoWw4+neODcsPdUKepXdPLpdjbGKs8hhjY+NsC3vkcnm2nvDPof7zMBKTLL2kH5gYGeX58zPo9l2ev3zFxB9/yHeuQuH5urqKhGwuXryo9PrChQs4OjqioaFByZIlef06c3j1wYMHxMUpf2+sgYEBnTp1wtfXl61bt7Jz504iIiJUnmvcuHFERkYqbR2lBfMf5peipaWFk4M9124EKfalpqZy/cZN3FxUN1LcXJy5HhiktO/q9Ru4uaT/p9KwXh1WLJ7Pn4vmKbbiJiZ0aNuK2VMn5ZKPJk72NlwNuq2Uz9WgO7g7q39czJeipamJq7U5F+9mLlRITU3l0t1HlLe3VHvc2kNn8N1/kqXDe+BuY6E2bvfZa7ham+Nsqf6xNbpF9ClpaqXYTMvYU8yoBPdvXVDExMfF8DQkCBtH9b1oaWlp7Fwzg5uXAxj8y2qKl1L9eBlIHwZ3r1SPogYFV3+1tLRwdHAg8EbmPNDU1FQCAwNxdXEpoHNo4mRvm63+XAu6jbuz6iF/d2dHrgUpf+fx5cCbKuOL6uthZGjA81evCQ55RM2qeX9kVU75Xb15S21+BUlLUxNXKzOlhTfp9fkx5e1yqs9n8fU/xdLh3bLV5+SUFJJTUrKNTmhIJKSm5vzd6Zl1IlApn5zqhKuLC4GBynOJr12/XiB1KP3z0I5rN24q5XMt6CbuLqofv+bm4sS1oJtK+64GBqmMP3A0ACcHOxxsbfKda35INKQFsn2tRI/lV+7Zs2eMHDmSAQMGcO3aNRYvXszcuXMBqF+/PkuWLMHb25uUlBR++uknpVXF8+bNw8zMjAoVKiCVStm+fTumpqbZ5vd8oKOjg46OjtK+/AyDa+jroe+QufBFz7YMBh4uJEZEEv+84OYbtmv9Db/NX4Szoz3OTo747fEnPj4en4YNAJg9dyElipvwXa/uALT9pgUjx/7Cdr89eFWpxInTZ7n/MIQfhg4CwNDAAEMD5TmSmpoamBgbY1lGfSPrg84tfZix2BcXB1tcHe3Ytu8I7xMSaF6/NgDTFv5JyeLGDOyW3suXlJTMk4z5oEnJybyNkPHg8VOK6OpSxix91WXc+3hehoYpzvH6zVsePH5KsaL6mJbMuUe5W6PqTFzth5uNBWVtLdh07DzvExNpVSN9sc0vq3ZQytiAYW3Tp0msOXiaZXuPM/O7DpiXMOJdZDQAejra6Olm1o+Y9/EcvXqLkR18sp80BxKJhDpNu3N09wpKmlpjUsqCg9uXYGBcinKVGyji/pjel3JVGlCrSVcAdq6eztW/D9B31CJ0iugTlTEfU1evKNrauorj3oY+49G9q/T7cdkn5ZUXbdq0Ye68eTg6OuLs5MTuPXtISEigUaNGBXaOjq2aMWvhcpwd7HB1tGf7voO8j4+nWYM6AMxY8AclipswoHtnANq39GHY+Gls2b0f78qeBJw5T3DII8YM/k5R5olzFzAyMKB0yeKEPH3O4pXrqVm1MlUrlFeZQ046fdOUmYv+xMXeNj0//0O8j09Q5Dd94TJKmBgzMCO/9Pr9Iv3fycm8DZfx4PGTjPqtusc5J90aVWfiml24WWetz+lzaX9Z7Ucpo2IMa5v+M1lz6AzL9p5gZt/2mBfPXp+LFtGlkpMNC3YeQVdbE7PiRly9/wT/CzcY2SH3Z5+2bdOGOR/ViV179hCfEE/jjDrx+5y5FC9enD69ewHQutU3jPlpLDv9/KhapQonT53mwYOHDP/+e0WZ0dHRvHnzhvCMToAXGZ8PxsbGmOTSO96hVQtmL1iKk4M9rk4O7Ni7n/j4BHwa1ANg5vzFlDQxoV/PbwFo17I5I36exLZd+6hWpSLHT58j+GEIo4YoTyOJjYvj1LkLDOrz6Y88K2hijmX+iIblV65Hjx68f/+eqlWroqGhwfDhw+nfvz8Ac+fOpXfv3tSqVQtzc3MWLlzI1atXFccWK1aM3377jQcPHqChoUGVKlU4cOAAUuk/85eaYaWyeAdsULx2m/MzAM/X+xHUd1yBnade7ZpERkaxduMWZDIZ9na2zJo6UTGU8+btW6Qfzclxd3Xh5zE/sGbDJlav34iFuRlTxo/F1qZgFjc1qFkNeVQ0Kzf7ESGPxMHWirkTxigWWIS9C1fK551MRu9RmQ8c37znIJv3HMTT3YUl09Lv2b2QxwybmPmoqMVrNgHQtF5Nxn/fP8d8mlQphyw6lmV7AgiPisHZ0oylw3sohsJDIyKRfvQHxPZTl0lKTmHM8i1K5QxoWY+B32SuBD18Ob2Xw6fqpzdO6rfsQ2LCe7atnMz7uGhsnSsyYOxytLQzG67vwp4TG5057Hzu2FYAlk5TfrZfl4HTqVqnteL1pZN+GJqUxrl89U/OKzd16tQhMiqKjRs2ECGTYW9nx7SpUwtkGPODBjW9kUdGsXrzDiJkchxsrZkzaWxm/XkbjuSjn1c5FycmjhzCyr+247txK2XMTZkxdiR21pk9eOEyOUtWb0QWGUlxY2Oa1K1Jz46ft1q+QU1v5FHRrNqygwhZZHp+E3/Kkp9y/e4zcrzi9ZY9+9myZz+e7q4snv7LJ5+/SZWy6fV57/H0+lzGlKXDumepz5nn337qSnp9/nOrUjkDWtRl4Dfpja3Z/dqzeNcxfl61k6jY95iZGDGkdYM8PSC9Tp3aREZFsmHDxvQHpNvZMf2jOvHm7VulOYFubm789OMY1q3fwNq16zC3sGDihF+Unthx/sIF5s1foHg969dfAfi2a1e6d/s2x3zq16qR/nm4aWv6A9LtbPh18njF1Ig3b98p3Z+yrs78Mmo4q//azMoNm7AwN2Pazz9im+VpGMdPnyMtLY36tWvkek+EfzdJWtZJdILwD9qvVbDfKJJf5e/sKuwUlOgmRhd2Ckr0w7M/5L0wnSzaprBTUOJi+Cz3oH+QfqK8sFNQIvkX/ndT9O0//5iunISV+fRnyX5JOslxuQf9g8ydP/0PzU91sYBWpHudv5h70P8h0WMpCIIgCIKQQQyF58/XO7tUEARBEARBKFCix1IQBEEQBCHD1/x1jAVBNCwFQRAEQRAySP6hBaj/r0TDUhAEQRAEIYP45p38Ec1yQRAEQRAEoUCIHktBEARBEIQMYlV4/oiGpSAIgiAIQgYxFJ4/YihcEARBEARBKBCix1IQBEEQBCGDWBWeP6JhKQiCIAiCkEEMheePaJYLgiAIgiAIBUL0WAqFqvydXYWdgpIgtzaFnYKSuqd/LewUlISY1ynsFJRUSgoq7BSUFHsZUtgpKAmzqFjYKSgxu7SzsFPIrkiRws5ASZHS0YWdghLN5PjCTuEfJ1aF549oWAqCIAiCIGQQQ+H5I4bCBUEQBEEQhAIheiwFQRAEQRAyiFXh+SMaloIgCIIgCBnEUHj+iIalIAiCIAhCBtGwzB/R3ysIgiAIgiAUCNFjKQiCIAiCkEH0WOaP6LEUBEEQBEHIIJFKC2T7HEuXLsXGxgZdXV28vLy4dOmS2ti6desikUiybc2bN1fE9OrVK9v7Pj4+n5VbXokeS0EQBEEQhEK2detWRo4cyfLly/Hy8mLBggU0adKE4OBgSpUqlS3ez8+PxMRExevw8HA8PDzo0KGDUpyPjw9r1qxRvNbR0flyF4Hosfxq1a1blxEjRgBgY2PDggULCjUfQRAEQfg3kGpICmT7VPPmzaNfv3707t0bNzc3li9fjp6eHqtXr1YZb2JigqmpqWI7evQoenp62RqWOjo6SnHGxsafdV/ySvRYCly+fBl9ff3CTkPJHv8DbPPbTYRMjr2tDUMHfIeLs5Pa+FNnz7F242ZCw95gYW5Gv1498KpSSWXsgiXL8D90hEH9+tCuVcsCy9mkZmXsRvXFsGJZdM1LcaXdYML2BhRY+R/beuxv1h88TXhkNE5WZvzYrRVl7SxVxvqdvIj/39cIeREGgKuNBUPb+6iNn7HWj50nLzKqSwu+bVIrT/mkpaWxdeNqjh3eR1xsDM6u5eg/ZCRmFqrP8cFBfz/27tyCXBaBta09fQcOx9HZTfG+LCKcDauXEXT9Cu/fx2FexpJ2nbpTrUbdHMv1O3CELbv8iZBHYm9jxfB+PXFzclAbf+LcBVZt2k7om3dYmJkysEdnvCtXULwfIY9k+brNXA4MIiY2Dg93F4b364mluVme7s/WExdZd/gs4ZExOFma8lOX5pS1LaM699NX8D8fyMNXGT8va3O+b9NIKb5Cvwkqjx3Rvgk9m9TMNZ+9+/zZsXMnMpkMO1tbBg8aiLOzs9r402fOsH7DRsLCwrAwN6dPn95UrVJF8f7Zc+c4cOAgDx4+JDo6mqWLF2Fvb59rHh9suXSHdedu8S7mPU6mxoxt6k25MiVzPe7gzUeM3XmSes5WLOjSULF/2YlrHLr1mNCoWLQ0pLiZFWdog0qUL5O910dlPn/fZN3p67yLjsPJrDhjW9WmnGVplbHHboWw6vhVnodHkpSSinUJQ7rXrkDLipn3Mzw6jgUHz3P+/jOi4xOpaGvO2Fa1sC5hlKd8du0/zJbd+4iQZdTn/r1xzaU+r/5rG6Fv3mJhbsrAHl2p9lF9jnsfz4r1mzh78QqR0dGYlSpFuxY+tGraKE/57Dx4jE17DhIhj8TBxoof+nbDzdFOZeyjZy9ZucWP4EdPCH0bzrDeXejUoolSzHo/f05duMrTl6/R0dainLMDg7p3xNoib79fBa0w5lgmJiZy9epVxo0bp9gnlUpp2LAh58+fz1MZq1atonPnztn+Pz958iSlSpXC2NiY+vXrM336dIoXL16g+X9M9FgKlCxZEj09vcJOQ+HE6bMsX7mG7l06sXzhXOxsbRg7cSoyuVxl/O2795jx2zx8GjVg+aK51KjmxaQZs3n85Gm22LN/X+Bu8H2Km5gUeN4a+npEBQVza9iUAi/7Y4cv3mDeFn/6t27ApinDcLQ0Y8icVURExaiMv3rvET5enqz4qT9rfxlMaRNDBv++kjeyyGyxx6/e4mbIM0oaGXxSTrt3bOLAvp30HzKKmfP+REdXl2kTRpOYmKD2mHOnA1jnu5QOXXvx26KV2Ng6MH3CaCLlMkXM4nkzePXyGT9NnMm8pWvxql6bebMn8yjkvtpyA86eZ+nqjfTq3JaV82bgYGPF6CmzkcmzXy/AzXv3mTp3Cc0b1mXlvJnU8qrE+NnzePT0OZDeaB4/ay6vwt4w8+dRrJo/k9IlSzBy0izex+f+PcqHL99k7raDDGhZj00TBuFUxpTBC9ap/XldCX6MT9Vy+I7qw7qx/TE1NmTQ/HW8kUUpYo7O+VFpm9yrDRKJhAYV3VSW+bFTp07j6+tLt65dWbJ4EXZ2toyfMAG5mt+vO3fuMPvX32jSuDFLFy/C29ubqdOm8+TJE0VMfHwC7u5u9OndO9fzZ3Xo1iPmHL7EgLqebBnwDc6lTRi08TDhMe9zPO6lLJp5Ry5R0Sp7g8+6uCHjmlVj56DWrO3THHOjYgzacJiI2JzLBDh04wFz/M8yoEEVtgzriLNZCQat2kd4TJzKeMMiunxXvzLrB7djxw+daVXZlUnbAzgX/AxIrz8j1h/gRUQkC3o2Y+vwjpgZFWWA7x7iEpNyzef4mb9ZunoDPTu1x3feLOxtrRk9eZba+nzrbjDT5iyiWcN6+M6fTS2vyoyfNUdRnwGWrl7PpWs3GP/DENYvmUv7b5qycMUazl28kms+x85dZPHaLfTp2JrVv0/BwdqSkdPmIIuMUhmfkJiAeemSDOrWgeJGhipjAm/fo61PfVbMmsCCSWNITknhh6lzeB+v/vPjvyAhIYGoqCilLSFB9TW9e/eOlJQUSpdWrs+lS5cmNDQ013NdunSJW7du8d133ynt9/HxYf369QQEBPDrr79y6tQpmjZtSkpKyudfWC5Ew1LINhQukUhYuXIlbdq0QU9PD0dHR/bu3at0zK1bt2jatClFixaldOnSdO/enXfv3hVIPjt376VZk0b4NGqAtZUlI4YMREdHh0NHVff++e31p0qlCnRq1wZrS0t6d++Kg70de/wPKMW9exfOkj9XMm70D2hqahRIrh97e/g09yctIGzPsQIv+2N/HT5DmzpVaVWrCnYWpRnfsw262lrsOX1ZZfyMgV3o2MAbZ2tzbM1LMbFPe9LS0rh056FS3BtZJL9t3MOMgZ3R1Mj7/UlLS2P/nu2069Sdqt61sLG15/tR45FFhHPp/Fm1x+3btY2GPi2o36gZllY29B86Ch1dXY4f2a+IuX/3Nk1btsPR2Y3SZua079wTPf2iPHqovmG5bc8BWjSuR7MGdbGxLMOoQX3R1dFhf8AplfE79h2iakUPurRpiY2lBd992xEnO1v8DhwB4MWrUG4HP2TUwD64OtpjZWHOqIF9SEhMJOBM7j0JG4/+TdtalWlVoyL25qUY360lutpa7D53TWX8zH4d6FjPC2crM2zNSjKxZ2vS0tK4eDdEEVPCsJjSdjLwLlWcbSlTMvc/mPx27cLHx4fGjRthbWXF90OHoqOjy+EjR1TG796zl8qVKtGhfTusrKzo2aM7Dvb27N3nr4hp2KA+33btSoUKnrmeP6sN52/RtqIzrSs4YV/KmF9a1EBXS5Pd19X/jFNSU/nZ7xSD6lWkjHGxbO83K29PNXsLypgY4FDKmNFNqhKTkMSDMJmK0rLkcyaQtlXdaV3FFfvSJvzSpm56PpfvqoyvYm9Bg7J22JU2wbK4Id/W9MDRtDjXn7wG4Om7SIKehTG+dR3KWpbGpqQxv7SpS3xSCocCH+Saz7Y9+2nRuD7NGtbFxqoMowZ9h66ONgeOnVQZv2PfwfT63Da9Pvf9thNOdrbs2n9YEXP73n2a1K9NhXLumJUuxTdNGmJva83dByEqy/zY1n2HadmwDs3r18LW0oIxA3qio6ONf8BplfGuDnYM7dmZhjWroaWlepB03oTRNK9fCzsrCxxtrBg/9DvC3oUTHPIk13y+hIJavDNr1iwMDQ2VtlmzZn2RnFetWkW5cuWoWrWq0v7OnTvzzTffUK5cOVq3bo2/vz+XL1/m5MmTXyQPEA1LQY0pU6bQsWNHgoKCaNasGd9++y0REREAyOVy6tevT4UKFbhy5QqHDh0iLCyMjh075vu8SUlJ3H8YQkVPD8U+qVRKRc/y3LkXrPKYO/eCleIBqlT05M69zP+YUlNTmT1vAR3btsLG2irfeRaWpORk7j55iZebo2KfVCrFy92BoJBneSojPiGJ5JQUDPQze6lTU1P5ZcVWejStg72F6Sfl9Cb0NXJZBOU9Kyv26esXxdHZlfv3bqm+jqQkHj28r3SMVCqlnGclgu/dVuxzcnXn3OnjREdHkZqaytlTASQlJuJezlNNucncD3lM5fJllcqt5FGW28Gq/xO/HfyASh/FA1StUF4Rn5iU3qukraWlVKaWpiZBd1TXSUU+ycncffoKL9fMYUKpVIqXqz1BIc9zODJTfGL6z8tQX/WoQnhUDGdv3qd1zYq5lpWUlMSDhw+p4OmplE8FT0/u3run8pi79+5lazBWqlRRbfynSEpO4e6rcKrZmX+Uj4RqduYEvXir9rg/TwVirK9L24rqp8d8fI6dV4MppqONU+mcG95JySncffmWao6Z0w6kUgnVHMoQ9Cz3XqO0tDQuPnzOk7dyKtmaK8oE0PmoUSWVStDW1FA0PtXmk1GfK3mU++hYKZU8ynE7WHXD+3bwA6V4gCoVPJTi3V2cOHfpKm/DI0hLS+Na0G2ev3xNlQrlc80nOOQJVcpn9oxLpVIql3fn1v3cG6V5FRuX3rNsUKxwpmhJpJIC2caNG0dkZKTS9vFQ98dKlCiBhoYGYWFhSvvDwsIwNc35Mzk2NpYtW7bQt2/fXK/Nzs6OEiVK8PDhw1xjP5eYYymo1KtXL7p06QLAzJkzWbRoEZcuXcLHx4clS5ZQoUIFZs6cqYhfvXo1lpaW3L9/Hyen3D/s1YmMiiY1NRXjLEMmxkZGPH/xUuUxMpkcYyMjpX1GRkZEfDSkumXHLjQ0NGjzTYvPzu3fQB4dR0pqKiaGRZX2mxgU48lr9f8Rf2zR9gOUNDLAyy1zjtbaA6fQlErp0qjGJ+ckk4UDYJRlQrihkQlyWYTKY6KjIklNTcHQSPkYIyMTXj7PbCCPGjuFeb9OpnfnFmhoaKCjo8uYX6ZjZq56fmJkdDQpKuqPiaEhz168UnlMhFyOSdb6ZmhIhEwOgHUZc0qXLMGKDVsYPbgvujq6bNt3gLfhEYTLcu4Bk8Vk/LwMlH9exQ2K8iQ0bz38C3ceoaRRMbzcVM9h2/f3dfR0dKifh2HwqKj0BrqRsZHSfiMjI54/V93QlclkGKn4/ZLlcu15IYtLICUtjeJFiyjtL65fhMfv5CqPufY0lF3X7rNtYOscyz4V/IyfdpwkPimZEsX0WN6jCcb6urnkE09KahrFiyo34osX0+PxW/XXG/0+gUYz15KUnIpUKuHn1rXxdkqfX2xTyggzo6IsOnieCW3rUkRbiw1nbxAWGcPbqNgc84mMilJZn42NDHmm5vMwQi5XGR/x0dSX4f17M2epL+37DEZDQwOpRMLoIf3xcHfNMR95xu9X1t8XE0MDnr3MuZGcV6mpqSxcs4nyLo7YWan+Pf+v0NHRyfMKbG1tbSpVqkRAQACtW7cG0u9FQEAAQ4cOzfHY7du3k5CQQLdu3XI9z4sXLwgPD8fM7MvNXxUNS0Gl8uUz/3LV19fHwMCAN2/eAHDjxg1OnDhB0aJFsx0XEhKitmGZkJCQbX5JQmIiOtraBZh5dvcfhrBrrz/LFs5FIvm6H3y7xv8Ehy/eYMXYAehop/fA3Xnygs1HzrJpyvA83Z/TJ46wYslcxetxk3/9Yvlu2bCK2JgYJs6Yj4GBIZcunGHe7MlM+20x1jZ5XxySH5qamkz/aQS/LvGlebf+aGT0gHpV9Mj94HxaffA0hy/dxHdMH3Q+6jH92J5z12jqVV7t+/9PYhOSGL/rNJO+qZFrI7GKrRnbBrZGHhfPzmvBjNl+go3ftczWiC0I+jrabBveibjEJC4+fMFc/3OUMTGkir0FWhoazOvelMk7jlNryio0pBK8HCyp6WxFWlqBp5Infv6HuBP8gJnjx2BaqgQ3bt9lwZ+rKWFiTGXPcrkX8AXN9d3Ao2cvWDZjfKHlUFgPSB85ciQ9e/akcuXKVK1alQULFhAbG0vvjLnLPXr0wMLCIttw+qpVq2jdunW2BTkxMTFMmTKFdu3aYWpqSkhICD/++CMODg40aaK8gKogiYaloJJWlv+kJBIJqampQHplbdmyJb/+mr1BkdNfQbNmzWLKFOWFLSOGDmbksCGK14YGxZBKpdkmpsvkcoyz9LJ8YGxslG1hj1wuxySjN+zm7TvIIyPp2ruf4v3U1FT+XLUWvz37+Gv1CrU5/9sYFdNDQyolIlJ54UdEVDTFDbPPNfvY+oOnWLP/JMt/7IeTZebP6XrwYyKiY2k2KvPDKiU1lflb9rPpyDn2zx2rVE4Vr5pKK7eTM4aK5TIZxiYlFPsj5RHY2KleuVrMwBCpVENpoQ6AXB6BkXH6cGXo65cc9Pdj/h/rsLS2BcDGzoG7t4I45L+LAUNHZyvXsFgxNFTUn4jISEzU1B8TIyMista3LPHODnasXjCLmNg4kpOTMTI0YMCYCTg7qO5F/MC4aMbPK8tCnfCoGIobZP/D7GPrD59lzcEzLB/ZC6cyqofCrt1/wpPQd8zun7dpKAYGBkilUuQZvbEfyOVyjE1UP4LE2Ng428IeuVxeII8sMdbTQUMiybZQJzz2PSWKZh/6fx4RxSt5DMM2Zc5jTs1onVWcsoY937fD0iR94ZmethZWxbWwKm5AectStFy0g93X79O3lvo/CIz1dNGQSrIt1AmPjqNEMfULHKVSCVYZK7xdzEvy+I2MVSeuUsXeAgC3MqXYNqIz0e8TSEpJxaRoEb5dsh33XFapGxoYqKzPMnnO9Vl1fHovY0JCIr4btzB93Ci8K6dPn7C3sebho6ds3e2fY8PSKOP3K+vvS0RkVLZezM8x13cDf1+9wdJp4yhVvOAXWObV5z7cPL86derE27dvmThxIqGhoXh6enLo0CHFgp5nz54hzZJbcHAwZ8+e5YiKOdIaGhoEBQWxbt065HI55ubmNG7cmGnTpn3RZ1mKhqXwySpWrMjOnTuxsbFBUzPvVWjcuHGMHDlSad+b54+UXmtpaeHkYM+1G0HU8PYC0huB12/cpFWLpirLdXNx5npgkNKjg65ev4GbS3rPacN6dajooTx3aOzEqTSsXwefhg3ynP+/gZamJq42Fly685B6ldyB9Ptz6c5DOjWorva4tQdOsnrfcZaM6otblsfcNK9RES93R6V9Q+asonn1inxTqzJZFdHTo8hHTxFIS0vDyNiEmzeuYmufXk5cXCwPgu/SuFlr1dehpYWdgxM3A69S1buW4jpuBl6jaYs2ACQkpK+4ztqLKtWQkpaquqtHS0sTJ3tbrgbdpla1KopyrwXdpk2zxiqPcXd25FrQLTp+k1m/LgfexN3ZMVts0Yx5js9fvSY45BF9u3bIFqOUj6YmrtbmXLz7iHoV3BT5XLr7iE71vdQet/bQGVYdOMXS4T1xt7FQG7f77DVcrc1xtszbsJaWlhaODg4E3gikenVvRT6BgYG0bKl6moiriwuBgTdokzE8B3Dt+nVcXVzydM4c89HUwNW8OBcfv6K+q3VGPmlcfPSKzlWzD8valjBkx6A2SvuWHr9KbGISP/pUw9RA/Zy81LQ0EpNzXgmrpamBq0VJLj58QX13u8x8Hr6gc/W89+SlpqWRpGLVbbEi6f+ZP30n586LtwxprL4OwMf1+VaW+nyLNs1U9zi5OztyNegWHb5ppth3JTAI94zHtSWnJJOcnKLy9yo1LTXXfJztbbhy8w61vSop8rkadId2TT//szQtLY15Kzdy+tJVlkwZi3np3B819SUV5lc6Dh06VO3Qt6oFN87OzqSp6fouUqQIhw8fVvnelyQW7wifbMiQIURERNClSxcuX75MSEgIhw8fpnfv3jk+wkBHRwcDAwOlTdUweLvW33Dg8FGOBBzn6fPnLPzjT+Lj4xWNwNlzF7Jy7QZFfNtvWnD52nW2++3h2fMXrPtrC/cfhtCqRfoHq6GBAbY21kqbpqYGJsbGWJZR/5/2p9LQ18PAwwUDj/T/cPVsy2Dg4YJuHv/Tz6tvm9Ri16lL7Dt7lUevwpi5fhfvE5IUjcAJK7ayePtBRfza/SdZ5neESX06YF7ChHfyaN7Jo4nLeJSHUVF9HMqYKm2aGhoUNyyKjVnuH/ASiYTmrTqwc8t6Ll84y9MnISyeOwNjk+JU9c58puLkn0dwcN9OxeuWbTpy7LA/J48d5MWzJ/gunUtC/HvqNUr/uVmUscbU3II/l8zhQfAdQl+/ZK/fFoKuX1EqN6uOrZrhf/QEB4+f5snzl8xdvpr38fE0a1AHgBkL/uDPDVsU8e1b+nDxehBbdu/n6YuXrN68g+CQR7T9qCF64twFrt+8w6vQMM5cvMKoSbOoWbUyVXNZ7ADQrVF1dp25yt6/r/Po9Rtm/rWP94mJtKqR3lv0y6odLPLL7G1Yc/A0f+wJYFLPNpiXMOJdZDTvIjN/Xh/EvI/n6NVbtKmp+nmt6rRt04aDhw5z9Ngxnj17xuKlS4lPiKdxo/RnGP4+Zy6r16xVxLdu9Q1Xrl5lp58fz58/Z8PGv3jw4CHffNQQjY6OJiQkhGfP0ufHvnjxkpCQEMWCv5x09y6L39X77A18wKO3cqbv/5v3Scm0rpDeEBrvd4qFx9Ifg6OjpYljaWOlrZiuNvraWjiWNkZLU4O4xCQWHbtC0PM3vJLHcOfVOybuPsObqDgaudvmnk8tT/wu3WHv1Xs8Cotg+q6T6flUTm/ojt96jIUHM58GsOrEVc7ff86L8EgehUWw7vR19l+7T/MKmc+xPBL0kMshL3kRHsmJ248YuHIv9dxtqe6U+0LCjq2as//IcQ4dP8WT5y+Zt3wV7+MTaNowoz7PX8qK9ZsV8e1bNuXStRts3e3P0xcvWbN5O8Ehj2jTPL0hqq+nh2dZV5av/YvrN2/zOuwNBwNOcvjEaUXjNSedWjZh37FTHDhxlicvXjFnxXriExJoXj/9D8Rpi1awbON2RXxSUjL3Hz/l/uOnJCWn8DZcxv3HT3nxOnORylzfDRw5/TeTRwxEr4gu4TI54TI5CQmJ2c4v/PuJHkvhk5mbm3Pu3Dl++uknGjduTEJCAtbW1vj4+GTrpv8c9WrXJDIyirUbtyCTybC3s2XW1ImKofA3b98i/egvSndXF34e8wNrNmxi9fqNWJibMWX8WGxtrPOdy6cwrFQW74DMBq/bnJ8BeL7ej6C+qlcCfo4mXh7IomNZtusI4ZHROFuZs2RUH8VQeGi4HOlHvRHbj18gKTmFMUs3KpXTv1VDBrbJ2wORc9O6fVcS4uP5c/EcYmNjcHErxy/T5qCtnTncEvb6FVFRmUNoNWo3ICpSzpaNq5HL0ofNx0+doxgK19TUZPzk39i49k9mTx1H/Pv3mJpbMHTkz1Ss4q02lwY1vZFHRrF68w4iZHIcbK2ZM2msYqgu7G04EklmPS3n4sTEkUNY+dd2fDdupYy5KTPGjsTOOvPh7uEyOUtWb0QWGUlxY2Oa1K1Jz45t83RvmlQpl/7z2hNAeFQMzpZmLB3eQzEUHhoRifSjfLafupz+81q+RamcAS3rMfCb+orXhy/fBMCnau6N24/VqVObyKhINmzYmP6AdDs7pk+dqhjafvP2rVKPjZubGz/9OIZ16zewdu06zC0smDjhF2xsbBQx5y9cYN78BYrXszKmyXzbtSvdu32bYz4+Ze2Qxcbzx4lrvIt5j7OpCX90a6yYCxkaGatUn3OjIZHw+F0ke28cRx4Xj1ERHdwtSrKmTzMcSuU+fO/j4Ygs9j1/HLnIu+g4nM1L8EefFhTPGAoPlUcr5fM+MYmZu08RFhmDjpYmtiWNmdG5IT4emT3eb6NjmeN/jvCYOEoW06NFRRcGNMg+GqBK/VrVkUdFsXrTdkV9/n3SWEwyFlS9efdO6fOwrKszE0Z9z6qNW/HdsCW9Po8brVSfJ44ezor1m5k+bwlRMTGYlizJd90608on98+DhjW8kEdGs3LLLiLkkTjaWjH3l1GZv1/vwpV6Q9/JZPQePUnxevPeQ2zee4gK7s4smZr+ubjr8HEAhk6crXSun4f0VTRY/0mFNRT+/0KSpq4PVRD+Ac8f3CnsFJQEubXJPegfVPf0l1sY8zkelVTfoCsMpZJeFHYKSoq9LbhHrhSEMIvcH0H0TzK7tDP3oH9akYJfzJMfcpd/viGVE83k3L8E4J9UouyX/wx68X3+H50HUGbxtgIp579GNMsFQRAEQRCEAiGGwgVBEARBEDIU5uKd/weiYSkIgiAIgpBBzLHMH3H3BEEQBEEQhAIheiwFQRAEQRAyiKHw/BENS0EQBEEQhAxiKDx/xN0TBEEQBEEQCoTosRQEQRAEQcgghsLzRzQsBUEQBEEQMoiGZf6IhqUgCIIgCMIHYo5lvoi7JwiCIAiCIBQI0WMpCIIgCIKQQSIRQ+H5IRqWQqHSTYwu7BSU1D39a2GnoORk7Z8KOwUllW5uKewUlLzTMi/sFJRomiQUdgpKktEq7BSUvK7arrBTyEYnOa6wU1Bi9Ca4sFNQIivtUtgp/OPE44byR9w9QRAEQRAEoUCIHktBEARBEIQMYlV4/oiGpSAIgiAIwgdiKDxfxN0TBEEQBEEQCoTosRQEQRAEQcgghsLzRzQsBUEQBEEQMkgkYjA3P8TdEwRBEARBEAqE6LEUBEEQBEH4QAyF54toWAqCIAiCIGQQD0jPH9Gw/Mr16tULuVzO7t27CzsVQRAEQSh0YvFO/oiGpfCvs/PgMTbvPkCEPBJ7G0t++K47bo72KmMfPXvBqi1+BIc8IfTtO4b17krHlj5KMYG377FpzwGCQ54QLpMz86fh1Paq9Ek5bT32N+sPniY8MhonKzN+7NaKsnaWKmP9Tl7E/+9rhLwIA8DVxoKh7X3Uxs9Y68fOkxcZ1aUF3zap9Ul55cSkZmXsRvXFsGJZdM1LcaXdYML2BhRY+R/btf8wW3bvI0IWib2NFcP798bVyUFt/IlzF1j91zZC37zFwtyUgT26Uq1yBcX7ce/jWbF+E2cvXiEyOhqzUqVo18KHVk0b5SmftLQ0tmxcw9HD/sTFxuDiWpb+Q0ZiblEmx+MO+u9i984tyGUR2Ng68N3AYTg6uwLwJuw1A/t0UXnc6LGTqV6rrtpydx4M4K89B4mQR+JgY8XIvt/i5minMvbRs5es3LKLe4+eEPo2nOG9u9CpRWOlGL9Dx9l1+ASv374DwNbSgj4dvsG7Yvkcr++DtLQ0/tq4nsOHDhIbG4OrmzuDhwzDwsIix+P89+3Fb+d2ZLIIbG3tGDBoCM7O6V/5Fx0dxV8bN3D92lXevn2DoaEh1byr0617L/T19XMsd+8+f3bs3IlMJsPO1pbBgwbi7OysNv70mTOs37CRsLAwLMzN6dOnN1WrVFG8f/bcOQ4cOMiDhw+Jjo5m6eJF2Nur/gxRZdf+Q2zdtZcImRx7W2uG9e+Dq5Oj2viTZ8+z+q8thL55SxlzU/r37Ea1yhUV79f7poPK4wb06kbntq1yzWfr8QusO3yW8MgYnCxN+alLC8raqa7Lfqcv438+kIcvMz5/rM35vk3jbPGPXr1h4c4jXLv/mOSUVOzMSzFnUBfMihvlms/u/QfZ6pd5f74f0DeX+/M3azZ+uD9m9OulfH8Anj5/wYq1Gwm6dYeUlBSsLcswedxoSpcqmWs+wr+L6O/9SuzYsYNy5cpRpEgRihcvTsOGDRkzZgzr1q1jz549SCQSJBIJJ0+eBODmzZvUr19fEd+/f39iYmIU5fXq1YvWrVszZcoUSpYsiYGBAQMHDiQxMTFfeQacvcCSNZvo3bE1q+ZMTf9PeOrvyORRKuMTEhIxL12Sgd07UtzIUGXM+4SE9HL69fisnA5fvMG8Lf70b92ATVOG4WhpxpA5q4iIilEZf/XeI3y8PFnxU3/W/jKY0iaGDP59JW9kkdlij1+9xc2QZ5Q0Mvis3HKioa9HVFAwt4ZNKfCyP3b8zN8sXb2Bnp3a4ztvFva21oyePAuZPPv1Aty6G8y0OYto1rAevvNnU8urMuNnzeHR0+eKmKWr13Pp2g3G/zCE9Uvm0v6bpixcsYZzF6/kKaddOzazf99OBg4Zyex5y9DRLcK0CWNITFT/Xd5nTx9nje8fdOzaizmLfLGxtWfqhDHI5TIAipcoxaoNO5W2zt/2RrdIESpUrqq23GPnLrJo7Rb6dGzFmt8n42BtyQ/T5hIRqbpOxycmYF66JIO6dVBbp0sVN2FQt/as+W0Sq3+bRKWyrvz06yIePXuZp/uzc8c29u3dzZChw5g7fxG6urpMnDAux9/f06dOstL3T7p07cbCxX9ga2fHxAk/K+5PeHg4EeHh9PmuH0uXrWDED6O5euUKCxfMzTGXU6dO4+vrS7euXVmyeBF2draMnzABuVyuMv7OnTvM/vU3mjRuzNLFi/D29mbqtOk8efJEERMfn4C7uxt9evfO0/342PEz51i2ah09O3dgxfxfsbex5sdJM3Kpzwto1qg+vgt+o6ZXVSbM/I3HT58pYnauW6G0/ThsMBKJhNrVq+Waz+FLN5m77SADWtZj08TBOFmaMnjBWrWfP1eCH+NTtTy+o/uybtwATI0NGTR/LW9kmfXt+Ztw+vzqi61pCXzH9GXb5KH0a1EXHa3c+5pOnDnHspXr6NGlA38u+A17Wxt+mjg9h/tzj+m/L6Bp4wasWPg7NapVYeIM5fvz8nUow3/6BasyFsybORnfxXPp1rk92trauebzRUikBbN9pb7eK/+KvH79mi5dutCnTx/u3r3LyZMnadu2LZMmTaJjx474+Pjw+vVrXr9+TfXq1YmNjaVJkyYYGxtz+fJltm/fzrFjxxg6dKhSuQEBAYryNm/ejJ+fH1Om5K8Rs2XfIVo2qkvzBrWxtbRgzIBe6Oro4H/8lMp4V0c7hvTsQsOa1dDS0lIZ413Rg/5d21OnWuXPyumvw2doU6cqrWpVwc6iNON7tkFXW4s9py+rjJ8xsAsdG3jjbG2OrXkpJvZpT1paGpfuPFSKeyOL5LeNe5gxsDOaGhqflVtO3h4+zf1JCwjbc6zAy/7Ytj37adG4Ps0a1sXGqgyjBn2Hro42B46dVBm/Y99Bqlb0oEvblthYWtD320442dmya/9hRczte/dpUr82Fcq5Y1a6FN80aYi9rTV3H4Tkmk9aWhr+e3bQvlN3qnrXxMbWnmGjxhER8Y5L58+qPW7fru008mlOg0ZNsbSyYcDQkejo6nL8yAEANDQ0MDYprrRdPH+GGjXrUaSIntpyt+w7wjcNa9Oifi1sLS34cUAPdHS08Q84ozLezcGOoT070aimF1pq/qOvWcWT6pU8sDQ3xcrclIHftqOIri637+ft/uzZvYtOnbtSzbs6trZ2jBz1IxHh4Zw/f07tcbt37aSJT1MaNW6ClZU1Q4YOR0dHh6NH0n9uNja2/PzLRLy8vDEzM8fDswI9evbm0sWLpKSkqC3Xb9cufHx8aNy4EdZWVnw/dCg6OrocPnJEdR579lK5UiU6tG+HlZUVPXt0x8Henr37/BUxDRvU59uuXalQwTPX+5HV9j3+NG/cgKYN62FjZcnIwf3R1dHm4LHjKuN37ttP1YqedG7bCmvLMvTp1hlHOzt27T+kiDExNlbazl28jGc5d8xNS+eaz8aj52hbqzKtalbC3rwU47t9g662FrvPXlUZP7NfRzrW88LZygxbs5JM7NWGtLQ0Lt7NrBtLdh2jZjknRnTwwcXKHMtSxanr6YqJQdHc78/ufTRr0pCmDetjY2XJD4P7o6Ojw8Gjqu+P394DWe5PFxztbdntf1ARs3rDJqpWqsiA3t1xtLfDwsyUGl5VMFbzh9WXJpFKCmT7WomG5Vfg9evXJCcn07ZtW2xsbChXrhyDBw+maNGiFClSBB0dHUxNTTE1NUVbW5tNmzYRHx/P+vXrKVu2LPXr12fJkiVs2LCBsLAwRbna2tqsXr0ad3d3mjdvztSpU1m0aBGpqamflWdSUjL3Q55Quby7Yp9UKqVyeTduBz/M4cgvJyk5mbtPXuLlljnMI5VK8XJ3ICjkWQ5HZopPSCI5JQUD/czGR2pqKr+s2EqPpnWwtzAt8Lz/Kek/s8dU8iin2CeVSqnkUY7bwfdVHnM7+IFSPECVCh5K8e4uTpy7dJW34RGkpaVxLeg2z1++pkqF3Id6w0JfI5dF4OGZOd1BX78ojs5uBN+7o+Y6kgh5GEz5j46RSqWU96yk9piQB8E8fvSQBo2bqc0lKSmZYBV1ukp5N27dL5g6nZKSytGzF4mPT6Csc+7DvWGhochkEXh6Zg5F6uvr4+zswr27d1Uek5SUxMOHD/D0zJyuIJVK8fSswL17qo8BiI2NRU9PDw01fzglJSXx4OFDKnh6KpVbwdOTu/fuqTzm7r172RqMlSpVVBv/KZKSkrj/8BGVPDPrmVQqpaJHeW7fU12f79y7TyUP5XpZpaKH2vgImZwLV67RrFH93PNJTubu01d4uWX+XKVSKV6u9gQ9ep7DkZniE9M/fwz1iwDpnz1ng4KxKl2CwfPXUv+HWXSfsZwT11XXc6V8PtwfD+X7U8mzHHeCg1Uec+fefSp6Zrk/FTwV9yc1NZULV65haWHGjxOn0bZbHwaPGsvZ85fydH3Cv49oWH4FPDw8aNCgAeXKlaNDhw74+voik8nUxt+9excPDw+leVE1atQgNTWV4I8+PDw8PNDTy2wseXt7ExMTw/Pnqj/wEhISiIqKUtoSPhp6i4yOJiU1FZMsw8ImRoaEqxlm+dLk0XHpORkq/yVvYlCM8MjoPJWxaPsBShoZ4OWWOedw7YFTaEqldGlUo0Dz/adFRkWRkpqarWfB2MiQCJlc5TERcrma+Myf8fD+vbGxLEP7PoNp0K4bP06ZxYgBffBwd801J7ksAgBDYxOl/UZGxsgy3ssqOiqS1NRUjIyyHyNXc8yxIwcoY2mNi1tZ9bmoq9OGhkSomd6RVyFPn9Pg24HU7dyP3/9cx6wfh2JrmfMcSUBxD4yMjZT2p1+r6s+FqKio9PtjbJztGFmE6vsTGRnJls1/4dNUfcM7s9ysuRghi1Cdi0wmw8hIRXwOn2l5FRkVTaq6+qxmaF51fTZCpqb+Hz5+Cr0iutT29so1H1lMxudPlp7E4gZFCY9UPRSe1cIdhylpVEzROI2IjiUuIZE1B09T3d2RZT/0ol4FV0b9sZkrwY9zLEtxf4yzX2/Ov+9GWeINkWXcT3lkJO/fx7N5x26qVPTkt6kTqFnNi0mzfufGzdt5usYCJ5UWzPaV+nqv/CuioaHB0aNHOXjwIG5ubixevBhnZ2ceP875Q6SgzZo1C0NDQ6Vtoe+6fzSHf9oa/xMcvniDOcN6oKOdPlR/58kLNh85y5TvOiKRfL3DJTnx8z/EneAHzBw/Bt95MxncpxsL/lzNlcCb2WJPnThK13Y+ii0lJfmL55eQkMCZU8dy7K380qzMzVg3Zwq+syfQpkk9pi9ZyePn2edYnjgRQPu23yi25ByGpQtKXFwsUyb9gpWVFV2/7f7Fz/dfcvDYcRrWqfWPzB9cfeBU+hzNwd+ikzFVKDUtDYC6nq50a1wDZysz+jSrQ63yzuw49c/3EqampudT3asKHVq3xMHOlq4d2lCtSiX2HlI9HeJL+7DmIL/b10qsCv9KSCQSatSoQY0aNZg4cSLW1tbs2rULbW3tbPOfXF1dWbt2LbGxsYpey3PnziGVSpVWat64cYP3799TpEj6EMuFCxcoWrQolpaqVz+PGzeOkSNHKu2LCrmh+LdhsWJoSKXZenIi5JFqFzF8aUbF9NJzytI7EBEVTXHDYjkeu/7gKdbsP8nyH/vhZGmm2H89+DER0bE0GzVLsS8lNZX5W/az6cg59s8dW7AX8QUZGhigIZVmm7gvk0dikqUX6gMTIyM18ek/44SERHw3bmH6uFF4Z6wctbex5uGjp2zd7U9lT+Vh9KpeNXByzuzJTEpKAiBSFoGJSXHFfrlchq2d6pXqxQwMkUqlyOXKvW9yuQyjLD2fAOfPnSIxIYG6DZqoLO8DI3V1OjIyWy/mp9LS0qSMWfocPRd7G+4+fMK2/Uf5aWAvpTgvL2/Fym3IvD9ymVzF/VE9lG5gYJB+f7L0CsrlMoxNlO9PXFwcEyeMp4ieHuMnTEZTU/1/M5nlyrOUK8fYxFjlMcbGxtkW9sjlcoyNVcd/CkODYkjV1ecsvW4fqK7PcoxV1P+g23d5/vIVE3/8IU/5GBfN+PzJslAnPCqG4oY5z4dcf/gsaw6eYfmo3jhZZk63MS6qh6aGFDtz5dXWdmYluf7gaY5lKu6PLPv15vz7Ls8SH6noxTQ0KIaGhgbWVsqr1q0tLbh5J//TG4R/nuix/ApcvHiRmTNncuXKFZ49e4afnx9v377F1dUVGxsbgoKCCA4O5t27dyQlJfHtt9+iq6tLz549uXXrFidOnOD777+ne/fulC6dOdk8MTGRvn37cufOHQ4cOMCkSZMYOnQoUjVDADo6OhgYGChtOh/91a6lpYmTvQ1XgzKHP1JTU7kadAd3Z/WPrvmStDQ1cbWxUFp4k5qayqU7Dylvb6X2uLUHTrJybwBLRvXBzVb5A7N5jYpsnTaCzVOHK7aSRgb0aFqHpaP7frFr+RLSf2a2XA26pdiXmprKtaBbuDs7qTzG3dlRKR7gSmCQIj45JZnk5JRsf/FLNaSkpmWfv1tETw8z8zKKzdLKBiNjE4JuXFPExMXF8iD4Ds4ubmquQwt7B2eCAjOPSU1NJSjwqspjAo7sp7JXdQwNjVSWl1muJs72Nly9mTl/LTU1lStBdymbw+OYPkdqWipJSdl7a/X09DA3t1BsVlbWGBubEHjjuiImLi6W4OB7uLiqnmqgpaWFg4MjN24EKl3HjcBAXFwyj4mLi2XCL+PQ1NRkwsQpufbKaWlp4ejgQGCWcgMDA3F1cVF5jKuLC4GBN5T2Xbt+XW38p9DS0sLJwY5rNzJ7xtPr803cXVTXZzcXJ64FKfekXw0MUhl/4GgATg52ONja5C0fTU1crc25ePeRUj6X7j2ivJrHlwGsPXgGX/8TLB3RE3cb5ekRWpqauNlY8DT0ndL+p2Hvcn3UkOL+BGW5Pzdu4qbm8VBuLk5K9xPgSuANxf3R0tLC2dGe5y9eKcU8f/ma0iUL6VFDYig8X77eK/+KGBgYcPr0aZo1a4aTkxO//PILc+fOpWnTpvTr1w9nZ2cqV65MyZIlOXfuHHp6ehw+fJiIiAiqVKlC+/btadCgAUuWLFEqt0GDBjg6OlK7dm06derEN998w+TJk/OVa+eWPuw7doqDJ87w5MVL5vy5jvcJCTSvXxuAaQv/ZPnGbYr4pKRkHjx+yoPHT0lKTuZthIwHj5/y4nXmIqO49/GKGIDXb97y4PFTQt8qf7Cq822TWuw6dYl9Z6/y6FUYM9fv4n1CEt/USl9lPmHFVhZvz1zhuHb/SZb5HWFSnw6YlzDhnTyad/Jo4uLTH3VjVFQfhzKmSpumhgbFDYtiY1ZwH6Qa+noYeLhg4JH+H66ebRkMPFzQ/aj3tCB0bNWc/UeOc+j4KZ48f8m85at4H59A04Z1AJgxfykr1m9WxLdv2ZRL126wdbc/T1+8ZM3m7QSHPKJN8/TeP309PTzLurJ87V9cv3mb12FvOBhwksMnTlOrWhWVOXxMIpHQolV7dmzZwKUL53j65BGL5s7ExKQEVb1rKuIm/TySA/v8FK9btunAscP+nDh2iBfPnvLn0vkkxMdTv1FTpfJfv3rBnVtBNGzcPE/3p3PLxuw9dooDJ87y5MUrfl+xnviEBFrUT89l6iJflm3crohPSkrm/uNn3H/8jOTkFN6Gy7j/+JlSnV62cTvXbwfz+s07Qp4+V7xuXNs7T/enVes2bN2yiYsXzvPk8WPmzfkNk+LF8fbOnPP787gf2bdvj+J16zbtOHzoAAHHjvD82TP+WLqI+IR4GjZK/7nFxcUyYfw4EuLjGT5iJO/j4pBFRCCLiMhxVXjbNm04eOgwR48d49mzZyxeupT4hHgaN0p/Zunvc+ayes3azDxafcOVq1fZ6efH8+fP2bDxLx48eMg3LVsoYqKjowkJCeHZs/QFdi9evCQkJIQINfNBP9ahVQv8jwRwKOAkT5+/YP4yX+LjE/BpUA+AmfMX47vuL0V8u5bNuXQtkG279vHsxUvWbtpG8MMQ2jRXfp5ubFwcp85doHmjBrnm8LFujWqw6/QV9p67xqNXb5i5cS/vExJpVSN9odkvq3awaGfmkPGag6f5Y88xJvVqi3kJI95FRvMuMvPzB6Bnk1ocvnwLv9OXeRYWzpbjFzh9I5iO9dQ/Nktxf1q3ZP/hYxzOuD8L/si4Pw3T78+seYuU7k/bb5px+Vog23bt5dnzl6zdtJX7Dx/RukXm71Wntq04efZv/A8f5eWr1+zyP8j5S1do1SznEYEvRawKzx8xFP4VcHV15dChQyrfK1myJEdUPNajXLlyHD+u+vERH5syZUq+HzH0sQY1qyGPimblZr/0h0nbWjF3whhMMobCw96FI/3oF/adTEbvURMUrzfvOcjmPQfxdHdhybSfAbgX8phhEzOHnRev2QRA03o1Gf99/1xzauLlgSw6lmW7jhAeGY2zlTlLRvVRDIWHhsuRftS7tv34BZKSUxizdKNSOf1bNWRgm7w94LsgGFYqi3fABsVrtznp9+P5ej+C+o4rsPPUr1UdeVQUqzdtJ0Imx8HWmt8njVUMHb55907pZ1bW1ZkJo75n1cat+G7YQhlzU2aMG42ddWYPzMTRw1mxfjPT5y0hKiYG05Il+a5bZ1r55O3+tWnfhYT4eJYvnpPxAPByTJj2G9raOoqY0NcviYrKHNKrWbs+UZFyNm9cg1wWga2dAxOm/pZtKDzg6EGKlyiJZ8XcG7kADWt4IY+MxnfLbiLkkTjaWjHvl5HKdVrycZ2W02v0JMXrTXsPsWnvISq4O7N0avo0CVlkNNMW+xIui0RfrwgO1pbMnzCKqh7u5EW79h2Jj49n8eIFxMbE4OZelqlTZyr1MIa+fk1UZOb9qV2nLpFRkWzcsD79QeZ2dkydOkMxBP3w4UOCg9OHLvv17aV0vlVr1lO6tOqnH9SpU5vIqEg2bNioKHf61KmKct+8fav0n7Sbmxs//TiGdes3sHbtOswtLJg44RdsbGwUMecvXGDe/AWK17N+/RWAb7t2pXu3b3O8N/Vr1SAyMoq1m7amPwDczoZfJ49XDPW+eftO6edV1tWZX0YNZ/Vfm1m5YRMW5mZM+/lHbK2VRzSOnz5HWloa9Wt/2oK9JlXLIYuJZdmeAMKjYnC2NGPpiJ6KofBsnz8nL6V//izbrFTOgJb1GNgqvVFbv6Ib47t/w+oDp/lt836sTUvw+6AuVHC0yTWferVqII+MYs1fW5B9uD9Tst6fzD6rsq4ujB89nNUbt7Bqffr9mTpe+f7U8vbih8H92LR9F0tWrMHSwpwp40ZTLg+L9b6IQnwG5dKlS/n9998JDQ3Fw8ODxYsXU7Wq6gb/2rVr6Z3lWa06OjrEx8crXqelpTFp0iR8fX2Ry+XUqFGDZcuW4eio/oH2+SVJS8uYySsIn6Cgvgry7e2LBZNQAdGLel3YKSg5Wfunwk5BSaWbWwo7BSXhmv+uRzWZxv+zC+JyE1Ek91Xi/yRNkgo7hWx0kuMKOwUlRm9UP7ansMhK53+KQUGycCqXe1A+xfxRMPPciw6e/UnxW7dupUePHixfvhwvLy8WLFjA9u3bCQ4OplSpUtni165dy/Dhw5We1iKRSJSmrP3666/MmjWLdevWYWtry4QJE7h58yZ37txBV1f38y8uB2IoXBAEQRAE4QOppGC2TzRv3jz69etH7969cXNzY/ny5ejp6bF69Wq1x0gkEsVzqE1NTZUalWlpaSxYsIBffvmFVq1aUb58edavX8+rV6/y3SmUE9GwFD7L2rVrv2jFFARBEITCIJFIC2T7FImJiVy9epWGDRsq9kmlUho2bMj58+fVHhcTE4O1tTWWlpa0atWK27czF78+fvyY0NBQpTINDQ3x8vLKscz8Eg1LQRAEQRCEAqbyS0ESElTGvnv3jpSUFKUeR4DSpUsTGhqq8hhnZ2dWr17Nnj172LhxI6mpqVSvXp0XL14AKI77lDILgmhYCoIgCIIgfFBAQ+GqvhRk1qxZuZ8/j7y9venRoweenp7UqVMHPz8/SpYsyZ9//llg5/gcYlW4IAiCIAhCBkkBPYNS1ZeC6OjoqIwtUaIEGhoahIWFKe0PCwvD1DRvixS1tLSoUKECDx+mP3f5w3FhYWGYmWU+Zi4sLAxPT8+8XsYnEz2WgiAIgiAIBUzll4KoaVhqa2tTqVIlAgICFPtSU1MJCAjA2zv359MCpKSkcPPmTUUj0tbWFlNTU6Uyo6KiuHjxYp7L/Byix1IQBEEQBOGDQvqe75EjR9KzZ08qV65M1apVWbBgAbGxsYpnVfbo0QMLCwvFcPrUqVOpVq0aDg4OyOVyfv/9d54+fcp3332XcRkSRowYwfTp03F0dFQ8bsjc3JzWrVt/sesQDUtBEARBEIQPCunrGDt16sTbt2+ZOHEioaGheHp6cujQIcXim2fPnil9ZbJMJqNfv36EhoZibGxMpUqV+Pvvv3Fzy/wa2h9//JHY2Fj69++PXC6nZs2aHDp06Is9wxLEA9KFQiYekJ4z8YD0nIkHpOdMPCA9d+IB6Tn7Gh+QHre2YL5NTq/XpNyD/g+JHktBEARBEIQPCmko/P+FaFgKgiAIgiBkKKhV4V8r0bAUCpV++NPCTkFJiHmdwk5Byb9t6Plquc6FnYKSWT4rCjsFJbtnaRd2CkokpBZ2Ckokaf+ufABiNQ0LOwUlseZVCzsFJUbxX+5B2v9an/itOYIycfcEQRAEQRCEAiF6LAVBEARBED6QijmW+SEaloIgCIIgCBkkYig8X8TdEwRBEARBEAqE6LEUBEEQBEH4QAyF54toWAqCIAiCIHwghsLzRdw9QRAEQRAEoUCIHktBEARBEIQPxDfv5ItoWAqCIAiCIHwgvnknX8TdU+HkyZNIJBLkcnmOcTY2NixYsOAfyUkQBEEQBOHfTvRYqlC9enVev36NoWH6V32tXbuWESNGZGtoXr58GX19/QI9d69evVi3bp3itYmJCVWqVOG3336jfPnyBXKOJ0+eYGtry/Xr1/H09CyQMgva1hMXWXf4LOGRMThZmvJTl+aUtS2jMtbv9BX8zwfy8FUYAK7W5nzfppFSfIV+E1QeO6J9E3o2qZlrPmlpaWzduJpjh/cRFxuDs2s5+g8ZiZmFZY7HHfT3Y+/OLchlEVjb2tN34HAcnd0U78siwtmwehlB16/w/n0c5mUsadepO9Vq1M2x3F37D7Nl9z4iZJHY21gxvH9vXJ0c1MafOHeB1X9tI/TNWyzMTRnYoyvVKldQvB/3Pp4V6zdx9uIVIqOjMStVinYtfGjVtFGu9yavTGpWxm5UXwwrlkXXvBRX2g0mbG9AgZX/uWp7l6B1UzOc7YthaKBFr2FXePg4tkDPsfPgMTbtOUiEPBIHGyt+6NsNN0c7lbGPnr1k5RY/gh89IfRtOMN6d6FTiyZKMev9/Dl14SpPX75GR1uLcs4ODOreEWsLszzlk5aWxsaNGzh86CCxsbG4urkxZMj3WFhY5Hic/7697Ny5A5lMhq2tHQMHDcbZ2Vnx/sGDBzh18gQPH4bw/n0cW7ftoGjRornms9d/Pzt2+hEhk2Fna8vggQNwcXZSG3/6zFnWbdxIWNgbLMzN6du7F1WrVAYgOTmZtes3cvnKFV6HhqKvr08FTw/69upJ8eLF83x//tq4PuP+xODq5s7gIcPydH/8dm5HJovA1taOAYOG4OzsAkB0dBR/bdzA9WtXefv2DYaGhlTzrk637r3y9P/IvymnnQePsXn3ASLkkdjbWPLDd91xc7RXGfvo2QtWbfEjOOQJoW/fMax3Vzq29FGKCbx9j017DhAc8oRwmZyZPw2ntlelXO/JFyMW7+SLuHsqaGtrY2pqiiSXeRYlS5ZET0+vwM/v4+PD69evef36NQEBAWhqatKiRYsCP8+/1eHLN5m77SADWtZj04RBOJUxZfCCdURExaiMvxL8GJ+q5fAd1Yd1Y/tjamzIoPnreCOLUsQcnfOj0ja5VxskEgkNKrqpLDOr3Ts2cWDfTvoPGcXMeX+io6vLtAmjSUxMUHvMudMBrPNdSoeuvfht0UpsbB2YPmE0kXKZImbxvBm8evmMnybOZN7StXhVr8282ZN5FHJfbbnHz/zN0tUb6NmpPb7zZmFva83oybOQySNVxt+6G8y0OYto1rAevvNnU8urMuNnzeHR0+eKmKWr13Pp2g3G/zCE9Uvm0v6bpixcsYZzF6/k6f7khYa+HlFBwdwaNqXAyiwIRXSlBN2JYtm6R1+k/GPnLrJ47Rb6dGzN6t+n4GBtychpc5BFRqmMT0hMwLx0SQZ160BxI9XfYx14+x5tfeqzYtYEFkwaQ3JKCj9MncP7ePX18WM7dmxn3949DBk6jHnzF6Crq8uECeNJTExUe8zpU6fw9fWla9duLFq8BFs7OyZMGK/0B3dCQgIVK1WmY6dOecoD4OTpM6zwXcm3XbuwdNEC7GxtGT9hotoRo9t37jLrt9/xadyYPxYtpLp3NaZMn8GTJ08VOTwMCaFrl04sXbSAiePH8eLFSyZNnZ7nnHbu2Ma+vbsZMnQYc+cvQldXl4kTxuVyf06y0vdPunTtxsLFf2BrZ8fECT8jz/h9Dw8PJyI8nD7f9WPpshWM+GE0V69cYeGCuf+pnALOXmDJmk307tiaVXOm4mBjxcipvyOTq6nPCYmYly7JwO4d1dbn9wkJ6eX065Gne/HFSSUFs32l/rMNy7p16zJ06FCGDh2KoaEhJUqUYMKECaSlpQEgk8no0aMHxsbG6Onp0bRpUx48eKA4/unTp7Rs2RJjY2P09fVxd3fnwIEDgPJQ+MmTJ+nduzeRkZFIJBIkEgmTJ08Gsg+FP3v2jFatWlG0aFEMDAzo2LEjYWFhivcnT56Mp6cnGzZswMbGBkNDQzp37kx0dLTSteno6GBqaoqpqSmenp6MHTuW58+f8/bt22z5fRAYGIhEIuHJkye5Xl9uEhISGDZsGKVKlUJXV5eaNWty+fJlxfsfzh8QEEDlypXR09OjevXqBAcH56n83Gw8+jdta1WmVY2K2JuXYny3luhqa7H73DWV8TP7daBjPS+crcywNSvJxJ6tSUtL4+LdEEVMCcNiStvJwLtUcbalTEmTXPNJS0tj/57ttOvUnaretbCxtef7UeORRYRz6fxZtcft27WNhj4tqN+oGZZWNvQfOgodXV2OH9mviLl/9zZNW7bD0dmN0mbmtO/cEz39ojx6qL5huW3Pflo0rk+zhnWxsSrDqEHfoaujzYFjJ1XG79h3kKoVPejStiU2lhb0/bYTTna27Np/WBFz+959mtSvTYVy7piVLsU3TRpib2vN3QchKsv8HG8Pn+b+pAWE7TlWYGUWhMMn3rB2y1OuBMpyD/4MW/cdpmXDOjSvXwtbSwvGDOiJjo42/gGnVca7OtgxtGdnGtashpaW6kGleRNG07x+LeysLHC0sWL80O8IexdOcMiTXPNJS0tjz+5ddOrcBW9vb2xt7Rg1agwR4eGcP/+32uN27fLDx8eHRo0bY2VlzdCh36Oro8ORI5n1qHXrNnTs2AkXF5dc8/jAb9dufHya0KRRQ6ytrBg2dDA6ujocPnJUZfzuvXupXKkiHdq1xcrKkp7du+Fgb88ef38A9PX1mT1jGnVq1cKyTBlcXVwYMmgADx4+5M2bN59wf7pSzbs6trZ2jBz1Y8b9Oaf2uN27dtLEpymNGjfBysqaIUOHo6Ojw9GM+2NjY8vPv0zEy8sbMzNzPDwr0KNnby5dvEhKSsp/Jqct+w7RslFdmjeonVGfe6Gro4P/8VMq410d7RjSs0tGfdZSGeNd0YP+XdtTp1rlHO/DP0YiLZjtK/WfvvJ169ahqanJpUuXWLhwIfPmzWPlypVA+pDylStX2Lt3L+fPnyctLY1mzZqRlJQEwJAhQ0hISOD06dPcvHmTX3/9VeWQTfXq1VmwYAEGBgaKXsTRo0dni0tNTaVVq1ZERERw6tQpjh49yqNHj+iU5S/3kJAQdu/ejb+/P/7+/pw6dYrZs2ervcaYmBg2btyIg4NDnodxPuX6VPnxxx/ZuXMn69at49q1azg4ONCkSRMiIiKU4saPH8/cuXO5cuUKmpqa9OnTJ8/5qZOUnMzdp6/wcs0cJpRKpXi52hMU8jyHIzPFJyaRnJKCob7q3uTwqBjO3rxP65oV81Tem9DXyGURlPfM/NDT1y+Ko7Mr9+/dUn0dSUk8enhf6RipVEo5z0oE37ut2Ofk6s6508eJjo4iNTWVs6cCSEpMxL2cp5pyk7kf8phKHuWUyq3kUY7bwaobo7eDHyjFA1Sp4KEU7+7ixLlLV3kbHkFaWhrXgm7z/OVrqlQomOkXX6ukpGSCQ55QpXxmz7hUKqVyeXdu3S+4Rnts3HsADIrlPqQaGhqKTCbD0zNzKoS+vj7Ozi7cu3tX5TFJSUk8fPhA6RipVIqnZwXu3VN9TF4kJSXx4OFDKnp6KJVbwdOTO/dU/6F69949KmSZwlOpYgXu3run9jyxsXFIJBL08/AZGBYaikwWgadn5ufDl7o/sbGx6OnpoaGh8Z/IKf3z5wmVy7srlVm5vBu3gx/meA3C1+M/PcfS0tKS+fPnI5FIcHZ25ubNm8yfP5+6deuyd+9ezp07R/Xq1QH466+/sLS0ZPfu3XTo0IFnz57Rrl07ypVL/w/Xzk71fCdtbW0MDQ2RSCSYmpqqzSUgIICbN2/y+PFjLC3T592tX78ed3d3Ll++TJUqVYD0BujatWspVqwYAN27dycgIIAZM2YoyvL391c0AmNjYzEzM8Pf3x/pJ6xUy+v1ZRUbG8uyZctYu3YtTZs2BcDX15ejR4+yatUqxowZo4idMWMGderUAWDs2LE0b96c+Ph4dHV185xnVrKYOFJSUzExUP4PoLhBUZ6EvstTGQt3HqGkUTG83FRf876/r6Ono0P9PA6Dy2ThABgZGyvtNzQyQS6LUHUI0VGRpKamYGikfIyRkQkvnz9TvB41dgrzfp1M784t0NDQQEdHlzG/TMfMXPV80sioKFJSUzHOMqRkbGTIsxcvVR4TIZerjI+QZQ6dD+/fmzlLfWnfZzAaGhpIJRJGD+mPh7uryjKFvJFHR6fX5yz338TQgGcvXxfIOVJTU1m4ZhPlXRyxs1Jdbz4mk6X3zBobGyntNzIyUryXVVRU+h8+RiqOef48b3/w5Vhult8TYyMjnj9/ofIYmUyOsZFRtniZTK4yPjExkVVr1lK3Tm308zB1SZbxO539Wo2R53p/sv6+G/NCzf2JjIxky+a/8Gna7D+TU6SiPhso7TcxMuRpAdXnfwXxuKF8+U83LKtVq6Y0D9Lb25u5c+dy584dNDU18fLyUrxXvHhxnJ2duZvx192wYcMYNGgQR44coWHDhrRr1y5fi2Pu3r2LpaWlolEJ4ObmhpGREXfv3lU0LG1sbBSNSgAzM7NswzP16tVj2bJlQPp/An/88QdNmzbl0qVLWFtb5ymfz72+kJAQkpKSqFGjhmKflpYWVatWVdy7Dz4uz8wsfdHAmzdvsLKyUll2QkICCQnKc8BSEpPQ0VY9PPI5Vh88zeFLN/Ed0wcdNcMue85do6lXebXvnz5xhBVLMucYjZv8a4Hll9WWDauIjYlh4oz5GBgYcunCGebNnsy03xZjbaN6MvyX4Od/iDvBD5g5fgympUpw4/ZdFvy5mhImxlT2LJd7Af8RjeqUYsyQzEUhoyffJOiO6rmp/xVzfTfw6NkLls0Yr/L9EyeOs2TxIsXryVOm/lOpFbrk5GRmzPoVSOP7IYNVxpw4EcDSxQsVrydNyftczM8VFxfLlEm/YGVlRddvu/8ncvqqiMcN5ct/umGZH9999x1NmjRh//79HDlyhFmzZjF37ly+//77L3rerHNMJBIJqampSvv09fVxcMhc4bty5UoMDQ3x9fVl+vTpip7LD/NJAcUQ/wf/xPV9fC0fGvhZr+Vjs2bNYsoU5YUbP/dqz/jeHRSvjYvqoSGVZluoEx4VQ3GDnIex1h8+y5qDZ1g+shdOZVT3Ll+7/4Qnoe+Y3b+j2nKqeNVUWrmdnHFv5TIZxiYlFPsj5RHY2KleiV3MwBCpVENpoQ6AXB6BkXH6vM7Q1y856O/H/D/WYWltC4CNnQN3bwVxyH8XA4Zmn3JhaGCAhlSabaGOTB6JSZbejA9MjIzUxKf3oiUkJOK7cQvTx43Cu3L6UJu9jTUPHz1l627//6uG5dlL4dy5n7kg6W24+oUPBcGoWLH0+pzl/kdERmXrxfwcc3038PfVGyydNo5SxVXPF/byqqZYBQyQlJR+zTKZHBOTzOk1crlc7ciGgYEBUqkUeZZeQblcjrGJscpj8kJRbpbfE5lcjrGx6nKNjY2QZVnYkx5vpLQvOTmZGbN/JeztG36bOUNtb6WXl3eW+/Ph9z3r/ZFha6f6j73M+5P1912GsYnyzyUuLo6JE8ZTRE+P8RMmo6mZ/b/hf2NOAIaK+qy8UCdCHql2YY7w9flPN8svXryo9PrChQs4Ojri5uZGcnKy0vvh4eEEBwfj5pbZYLC0tGTgwIH4+fkxatQofH19VZ5HW1s718nVrq6uPH/+XGlY6M6dO8jlcqVzfg6JRIJUKuX9+/R5VCVLlgTg9evMoYfAwMBsx+X1+j5mb2+PtrY2585lTghPSkri8uXL+b6OcePGERkZqbSN/ra1UoyWpiau1uZcvJu5Qjc1NZVLdx9R3l79o33WHjqD7/6TLB3eA3cb9Y/f2H32Gq7W5jhbqn8sSxE9PczMyyi2MlY2GBmbcPPGVUVMXFwsD4Lv4uRSVmUZWlpa2Dk4cTMw85jU1FRuBl7D2SV9flJCQjxAtqcPSDWkpKWmoYqWliZO9rZcDcqc25mamsq1oFu4q3k8i7uzo1I8wJXAIEV8ckoyyckpKvNITVP/h8J/0fv3Kbx8Ha/YEhO/7PVpaWnibG/DlZt3FPtSU1O5GnSHsk6f3yOdlpbGXN8NnL50lUWTf8S8dEm1sXp6epibmys2KytrjI2NuXEjUBETFxdLcPA9XFxVT33Q0tLCwcGRwI+OSU1NJTAwEBeXz58uoaWlhaODA9cDg7KUewM3F2eVx7i6uBB444bSvmvXA3H9aMHQh0bly1evmD1jOgYGBlmLUUi/PxaKLf3+mBB447oiJq/350aW+3Mjy/2Ji4tlwi/j0NTUZMLEKWhra/9nckovUxMnexuuBmXOE/9Qn92d1T/u7D9HIimY7Sv1n+6xfPbsGSNHjmTAgAFcu3aNxYsXM3fuXBwdHWnVqhX9+vXjzz//pFixYowdOxYLCwtatWoFwIgRI2jatClOTk7IZDJOnDiBq5pfUBsbG2JiYggICMDDwwM9Pb1sjxlq2LAh5cqV49tvv2XBggUkJyczePBg6tSpQ+XKn7bSLSEhgdDQUCB9KHzJkiXExMTQsmVLABwcHLC0tGTy5MnMmDGD+/fvM3eu8uMh8nJ9qlZxu7u7M2jQIMaMGYOJiQlWVlb89ttvxMXF0bdv30+6jqx0dHTQ0dFR2henYhi8W6PqTFzth5uNBWVtLdh07DzvExNpVSO9N+2XVTsoZWzAsLaNAVhz8DTL9h5n5ncdMC9hxLvI9FX2ejra6Olmni/mfTxHr95iZAefbOfMiUQioXmrDuzcsh4z8zKUMjVjy4ZVGJsUp6p35jMwJ/88Ai/vWjRt2Q6Alm06smTeLOwdnXFwcmX/nu0kxL+nXqP0+UsWZawxNbfgzyVz6NF3MMUMDLl0/gxB168wbpL6BV0dWzVn1sJluDjY4eLowI59B3gfn0DThunzXWfMX0rJ4ib079EFgPYtmzJs/FS27vanWuUKHD/zN8Ehjxg9pD8A+np6eJZ1Zfnav9DR1sa0VEkCb93h8InTDOlTcENiGvp66DtkTpPQsy2DgYcLiRGRxD8vvPlZxYpqUrqkDiVM0uuKlUX673aELJEIeVJOh+ZJp5ZNmLHYFxd7W9wc7djmf4T4hASa168FwLRFKyhhYsygbuk990lJyTzOmC+blJzC23AZ9x8/RU9XlzJmpYH0nsqjZ84ze+xw9IroEp7Rk1hUTw8dHfUNA0ivz61at2HLls2Ym5tjWtqUDRvWY1K8ON7e1RVxP48bi3f16rRs+Q0Abdq0Zd68OTg6OuLk5MyePbuIT4inUaPGimMiIiKQyWS8fvUKSH9mbpEiRShVqpTSFKCPtW3Tmjnz5uPk6ICzkxO79uwhPj6exo0aAvDb3HmUKF6cPr16AtD6m28YM3YcO/x2UbVKZU6dPsODhw8Z8f1QIL1ROW3mbB6GhDB10kRSU1KJiEjvtStWrKjalclZ78/WLZuwMLegdGlTNm5Ym3F/MqcI/TzuR7yr16Bly/T/U1q3acf8eb9n3B8X9uzxIz4hnoaN0p9BGhcXy4Tx40hISGD0mJ94HxfH+7g4AAwMDXNcwPNvyqlzS5/0+uxgi6ujHdv2HeF9QgLN69cGYNrCPylZ3JiB3dJHhZKSknmiqM/JvI2Q8eDxU4p8VJ/j3sfzMjTzCSqv37zlweOnFCuqj2nJEvzjvuIV3QXhP92w7NGjB+/fv6dq1apoaGgwfPhw+vdP/89yzZo1DB8+nBYtWpCYmEjt2rU5cOCA4kMlJSWFIUOG8OLFCwwMDPDx8WH+/Pkqz1O9enUGDhxIp06dCA8PZ9KkSYpHDn0gkUjYs2cP33//PbVr10YqleLj48PixYs/+boOHTqkmLNYrFgxXFxc2L59O3Xr1gXS/xLdvHkzgwYNonz58lSpUoXp06fToUPmkHJerq9z587Zzv38+XNmz55Namoq3bt3Jzo6msqVK3P48GG1Q1MFrUmVcsiiY1m2J4DwqBicLc1YOryHYig8NCIS6Ue/+NtPXSYpOYUxy7colTOgZT0GflNf8frw5ZsA+FT99Lm0rdt3JSE+nj8XzyE2NgYXt3L8Mm0O2tqZDdew16+Iisoc8qxRuwFRkXK2bFyNXJY+bD5+6hzFULimpibjJ//GxrV/MnvqOOLfv8fU3IKhI3+mYhVvtbnUr1UdeVQUqzdtJ0Imx8HWmt8njcUkY0HDm3fvkH70DLWyrs5MGPU9qzZuxXfDFsqYmzJj3GjsrDN7gCeOHs6K9ZuZPm8JUTExmJYsyXfdOtPKp+AekG5YqSzeARsUr93m/AzA8/V+BPUdV2Dn+VQ1vYozfkRmb9fUn9J75ldvesLqzU/zXX7DGl7II6NZuWUXEfJIHG2tmPvLKMVQeNi7cKXe4ncyGb1HT1K83rz3EJv3HqKCuzNLpqbfp12HjwMwdKLyHyA/D+mraLDmpH37DsTHx7N48SJiY2Jwc3dn2tTpSr1Vr1+/Iioysz7XrlOHyKhINm7YgEwmw87OjqlTpyt9Lhw8sJ9Nm/5SvP7px/TpHCN+GKnUAP1Y3dq1iIyMZP3GvxTlzpg6RVHu27dvkX50f9zdXBk7ZjTrNmxk7br1mFuYM+mX8djYpM8/fxcezoWM0arB3w9TOtdvs2biUT73qR3t2nfMuD8LMu5PWaZOnal0f0Jfv85yf+pm3J/1H92fGYrrePjwIcHB6SvX+/XtpXS+VWvWU7q0+sWh/6acGtSshjwqmpWb/dIf+G9rxdwJY5Tq88efP+9kMnqPyvyCis17DrJ5z0E83V1YMi39M+BeyGOGTZyliFm8ZhMATevVZPz3/XO8L8K/jyTt44l6/yF169bF09NTfKXif1zc6W2FnYKSEPM6hZ2CkpLJrwo7BSVXy2X/Y6QwzfJZUdgpKNk9K+fewn+avEjOjZV/mmZa/nuAC1qSRCf3oK+YUXxoYaegpKS7V+5B+RR/aGWBlKPr812BlPNf85/usRQEQRAEQShQX/H8yIIgJhIIgiAIgiAIBeI/22N58uTJwk5BEARBEIT/N2LxTr78ZxuWgiAIgiAIBU4MheeLaFgKgiAIgiB8IL55J1/E3RMEQRAEQRAKhOixFARBEARByJAmhsLzRTQsBUEQBEEQPhCLd/JF3D1BEARBEAShQIgeS0EQBEEQhA9Ej2W+iIalIAiCIAhCBjHHMn9Es1wQBEEQBEEoEKLHUihUJ4u2KewUlFRKCirsFJS80zIv7BSUzPJZUdgpKBl3qH9hp6Dk2dy/CzsFJcbICjuFfz2ttITCTuFf7aW2XWGnoKTkP3GSQhwKX7p0Kb///juhoaF4eHiwePFiqlatqjLW19eX9evXc+vWLQAqVarEzJkzleJ79erFunXrlI5r0qQJhw4d+mLXIHosBUEQBEEQPpBICmb7RFu3bmXkyJFMmjSJa9eu4eHhQZMmTXjz5o3K+JMnT9KlSxdOnDjB+fPnsbS0pHHjxrx8+VIpzsfHh9evXyu2zZs3f9ZtySvRsBQEQRAEQShk8+bNo1+/fvTu3Rs3NzeWL1+Onp4eq1evVhn/119/MXjwYDw9PXFxcWHlypWkpqYSEBCgFKejo4OpqaliMzY2/qLXIRqWgiAIgiAIH0ilBbIlJCQQFRWltCUkqJ56kZiYyNWrV2nYsOFHaUhp2LAh58+fz1PacXFxJCUlYWJiorT/5MmTlCpVCmdnZwYNGkR4ePjn35s8EA1LQRAEQRCEDGkSSYFss2bNwtDQUGmbNWuWynO+e/eOlJQUSpcurbS/dOnShIaG5invn376CXNzc6XGqY+PD+vXrycgIIBff/2VU6dO0bRpU1JSUj7/BuVCLN4RBEEQBEH4oIAW74wbN46RI0cq7dPR0SmQsrOaPXs2W7Zs4eTJk+jq6ir2d+7cWfHvcuXKUb58eezt7Tl58iQNGjT4IrmIHktBEARBEIQCpqOjg4GBgdKmrmFZokQJNDQ0CAsLU9ofFhaGqalpjueZM2cOs2fP5siRI5QvXz7HWDs7O0qUKMHDhw8/7WI+gWhYCoIgCIIgZEiTSAtk+xTa2tpUqlRJaeHNh4U43t7eao/77bffmDZtGocOHaJy5cq5nufFixeEh4djZmb2Sfl9CtGwFARBEARB+KCQHjc0cuRIfH19WbduHXfv3mXQoEHExsbSu3dvAHr06MG4ceMU8b/++isTJkxg9erV2NjYEBoaSmhoKDExMQDExMQwZswYLly4wJMnTwgICKBVq1Y4ODjQpEmTgrlXKog5loIgCIIgCIWsU6dOvH37lokTJxIaGoqnpyeHDh1SLOh59uwZUmlmf+CyZctITEykffv2SuVMmjSJyZMno6GhQVBQEOvWrUMul2Nubk7jxo2ZNm3aF5vrCaJhmauTJ09Sr149ZDIZRkZGauNsbGwYMWIEI0aM+MdyEwRBEAShYH3qMHZBGjp0KEOHDlX53smTJ5VeP3nyJMeyihQpwuHDhwsos7wTDctcVK9endevX2NoaAjA2rVrGTFiBHK5XCnu8uXL6OvrF+i5s34Vk4mJCVWqVOG3337LdYJuXj158gRbW1uuX7+Op6fnZ5XxJRrVaWlpHNqxlPPHdxAfG42NcwU69JlASTNrtccc2+1L0OVjvHn1GC1tXWycPGnZ5QdKmdsCEPH2JdOGqe7+7zl8Lp7V1A8N+B04wpZd/kTII7G3sWJ4v564OTmojT9x7gKrNm0n9M07LMxMGdijM96VKyjej5BHsnzdZi4HBhETG4eHuwvD+/XE0jxv817S0tLYsnENRw/7Excbg4trWfoPGYm5RZkcjzvov4vdO7cgl0VgY+vAdwOH4ejsCsCbsNcM7NNF5XGjx06meq26ecotN7W9S9C6qRnO9sUwNNCi17ArPHwcWyBlfwqTmpWxG9UXw4pl0TUvxZV2gwnbG5D7gZ8hLS2NHX+t5PiRvcTGRuPsWp4+g8dgZm6p9pi7t67j77eJRyHByCPeMfLnWVTxrqMUc+nvkxw7uIvHIcHEREcxa+FabOyccs1n7z5/duzciUwmw87WlsGDBuLs7Kw2/vSZM6zfsJGwsDAszM3p06c3VatUUbx/9tw5Dhw4yIOHD4mOjmbp4kXY29vn4c5k5OO/nx07/Yj4kM/AAbg4q7+O02fOsm7jRsLC3mBhbk7f3r2oWiV9fllycjJr12/k8pUrvA4NRV9fnwqeHvTt1ZPixYuLfAogH1XS0tLY/tcqAg7vy6jj5fhu8GjMLNTX8Tu3Atm3cxOPQ4KRRYQzevxMqnjX/uwcCsxnDGMLmcQcy1xoa2tjamqKJJeKVrJkSfT09Ar8/B9/FVNAQACampq0aNGiwM/zb3N832pOH/qLDn0nMmLaJnR0irB89gCSEtV/r2/I3SvUbNyF4VM3MfDnFaQkJ7F8Vn8S4uMAMCpuypRlJ5U2n/ZD0NHVw9WzltpyA86eZ+nqjfTq3JaV82bgYGPF6CmzkckjVcbfvHefqXOX0LxhXVbOm0ktr0qMnz2PR0+fA+kfwONnzeVV2Btm/jyKVfNnUrpkCUZOmsX7+Pg83Z9dOzazf99OBg4Zyex5y9DRLcK0CWNIzOH+nD19nDW+f9Cxay/mLPLFxtaeqRPGIJenf5908RKlWLVhp9LW+dve6BYpQoXKqr+r9nMU0ZUSdCeKZeseFViZn0NDX4+ooGBuDZvyxc+1b+dGDvlvp+/gMUybsxIdXV1mT/whx59XQnw8VrYO9Bk4KoeY9zi7edCl5+A853Lq1Gl8fX3p1rUrSxYvws7OlvETJmT7Y/mDO3fuMPvX32jSuDFLFy/C29ubqdOmK/WWxMcn4O7uRp+MuWCf4uTpM6zwXcm3XbuwdNEC7GxtGT9hotp8bt+5y6zffsencWP+WLSQ6t7VmDJ9Bk+ePAUgISGBhyEhdO3SiaWLFjBx/DhevHjJpKnTRT4FkI86e3f+xcF9O/huyGhmzF2Brm4RZk4cmUsdf4+1nQN9Bo5UGyP89/xfNCzr1q2r6D42NDSkRIkSTJgwgbS0NABkMhk9evTA2NgYPT09mjZtyoMHDxTHP336lJYtW2JsbIy+vj7u7u4cOHAASO96lkgkyOVyTp48Se/evYmMjEQikSCRSJg8eTKQ3mu3YMECRZnPnj2jVatWFC1aFAMDAzp27Kj0GIHJkyfj6enJhg0bsLGxwdDQkM6dOxMdHa10bR9/FZOnpydjx47l+fPnvH37Nlt+HwQGBiKRSBQf/DldX25CQkJo1aoVpUuXpmjRolSpUoVjx44p3funT5/yww8/KO5JfqWlpXHq4AYat+lPucr1Mbd2puvgmUTJ3nDzivoepQHj/qRqndaYWTpgYe1C10EzkL17zYvHdwCQSjUwMCqhtN28HIBntSbo6Kr/o2DbngO0aFyPZg3qYmNZhlGD+qKro8P+gFMq43fsO0TVih50adMSG0sLvvu2I052tvgdOALAi1eh3A5+yKiBfXB1tMfKwpxRA/uQkJhIwJncv2EhLS0N/z07aN+pO1W9a2Jja8+wUeOIiHjHpfNn1R63b9d2Gvk0p0Gjplha2TBg6Eh0dHU5fiS9LmhoaGBsUlxpu3j+DDVq1qNIkYL7o+nwiTes3fKUK4GyAivzc7w9fJr7kxYQtudY7sH5kJaWxsG922jTsReVq9XG2taBwT9MRBbxjisXTqs9zrOyN526D8jWS/mxWvWb0q5LH8p5VlEbk5Xfrl34+PjQuHEjrK2s+H7oUHR0dDl85IjK+N179lK5UiU6tG+HlZUVPXt0x8Henr37/BUxDRvU59uuXalQwTPPeWTmsxsfnyY0adQQaysrhg0djI6uDoePHFWdz969VK5UkQ7t2mJlZUnP7t1wsLdnj396Pvr6+syeMY06tWphWaYMri4uDBk0gAcPH6r9zmWRT97zUSUtLY0De7bTtlMPqlSrhbWtA0NG/oIsIpzL58+oPa5CZW86d+9P1erq63ihkEgLZvtK/d9c+bp169DU1OTSpUssXLiQefPmsXLlSiB9SPnKlSvs3buX8+fPk5aWRrNmzUhKSgJgyJAhJCQkcPr0aW7evMmvv/5K0aJFs52jevXqLFiwAAMDA0Uv4ujRo7PFpaam0qpVKyIiIjh16hRHjx7l0aNHdOrUSSkuJCSE3bt34+/vj7+/P6dOnWL27NlqrzEmJoaNGzfi4ODwSUMWeb0+deds1qwZAQEBXL9+HR8fH1q2bMmzZ88A8PPzo0yZMkydOlVxT/Ir/M0LouXvcCqb+YiFInrFsLYvz5MHN/Jczvu49JVxekUNVb7//NFtXj69h1e9tmrLSEpK5n7IYyqXL6vYJ5VKqeRRltvBD1Qeczv4AZU+igeoWqG8Ij4xo95pa2kplamlqUnQneBcryss9DVyWQQenpUU+/T1i+Lo7EbwvTtqriOJkIfBlP/oGKlUSnnPSmqPCXkQzONHD2nQuFmuOQnqvQl7hVwWTlnPzEeB6OkXxd7JjQf3bv2juSQlJfHg4UMqfDTtRSqVUsHTk7v37qk85u69e9kajJUqVVQb/zn5VPT0yJbPnXuqfxfu3runlD9ApYoVcswnNjYOiUSCfi6feyKfvP2/kNWHOv7xHzh6+kVxcP7n63hBKKhv3vla/d/MsbS0tGT+/PlIJBKcnZ25efMm8+fPp27duuzdu5dz585RvXp1IP2L2y0tLdm9ezcdOnTg2bNntGvXjnLlygHpDxBVRVtbG0NDQyQSSY4PLA0ICODmzZs8fvwYS8v0+SXr16/H3d2dy5cvUyVjblJqaipr166lWLFiAHTv3p2AgABmzJihKMvf31/RCIyNjcXMzAx/f3+llWG5yev1qeLh4YGHR+aH2rRp09i1axd79+5l6NChmJiYoKGhQbFixXJ9iGteRUe+A6CooXLjuahhcaLl7/JURmpqKrvXz8bWuQJmlo4qYy6e8KO0hR22ThVUvg8QGR1NSmoqxkbKjVMTQ0OevXil8pgIuRyTLPHGhoZEyOQAWJcxp3TJEqzYsIXRg/uiq6PLtn0HeBseQbgs9148uSwCAENj5e+DNTIyRpbxXlbRUZGkpqZiZJT9mJfPn6k85tiRA5SxtMbFrazK94W8ifzw88py7w2NTBQ/y39KVFRUej0wNlLab2RkxPPnz1Ueo2rhopGREbI81NU852NkrLTf2MiI589fqMlHjnGWfIyNjJBl/H5llZiYyKo1a6lbpzb6uUxXEvl83siE4jMpS56GRsbI5f9sHRcK3/9Nj2W1atWUhmG9vb158OABd+7cQVNTEy8vL8V7xYsXx9nZmbt37wIwbNgwpk+fTo0aNZg0aRJBQUH5yuXu3btYWloqGpUAbm5uGBkZKc4J6cPnHxqVAGZmZtmGIurVq0dgYCCBgYFcunSJJk2a0LRpU54+fZrnfPJzfTExMYwePRpXV1eMjIwoWrQod+/eVfRYfoqEhASioqKUtqTEBK6e9eenXlUUW0py8ieXndXONdN5/fwhPb7/XeX7iYnxXP37AF511fdWfimamppM/2kEz1+F0rxbfxp36sX1m3fwquih8g+GUyeO0rWdj2JLScn//clNQkICZ04dy3dvZaM6pTiyraZiK++muvf4/8nZk4fp1aGBYksugPosfJ7k5GRmzPoVSOP7IXmfhyryydmZE0fo0b6RYiuIz+x/FTEUni//Nz2W+fHdd9/RpEkT9u/fz5EjR5g1axZz587l+++//6Ln1fpoKBRAIpGQmpqqtE9fXx8Hh8zVxytXrsTQ0BBfX1+mT5+uaIh8mE8KKIb4P8jP9Y0ePZqjR48yZ84cHBwcKFKkCO3btycxMfGTr3fWrFlMmaK8UKJr/19o12MUox0yV7knJ6WXHRMZjqFxScX+mMhwzG3Ur1z9YOeaGdy5doqhk9ZhVFx1L+qNi0dISnhPldrf5FiWYbFiaEil2RbqRERGYpKl1+cDEyMjIrLEy7LEOzvYsXrBLGJi40hOTsbI0IABYybg7JC9N7mqVw2cMlZuQ+bPN1IWgYlJZq+uXC7D1k71SvViBoZIpdJsvQdyuQyjLD2fAOfPnSIxIYG6DfL3EN2zl8K5c/+K4vXb8E+vN/81larWxMHJXfE6KaM+R8ojMDYpodgfKY/Axk51b/qXYmBgkF4PsvReyeVyjE2MVR5jbGycbaGIXC7H2Fh1/GflI1fu/ZTlUL6xsRGyLPmkxxsp7UtOTmbG7F8Je/uG32bOyFNvnMgnbyp71cTR2U3xOrOOy7LUcRk2tuqfnvFvlcbXO4xdEP5vmtQXL15Uen3hwgUcHR1xc3MjOTlZ6f3w8HCCg4Nxc8v8xbC0tGTgwIH4+fkxatQofH19VZ5HW1ublJSUHHNxdXXl+fPnSkNLd+7cQS6XK53zc0gkEqRSKe/fvwfSV6MDSnMbAwMDsx2X1+vL6ty5c/Tq1Ys2bdpQrlw5TE1Nsz07Ky/3BGDcuHFERkYqbR17/4RuEX1KmlopNtMy9hQzKsH9WxcUx8bHxfA0JAgbRw+15aelpbFzzQxuXg5g8C+rKV5K/aN3Lp7ww71SPYoaZG9UfUxLSxMne1uuBt1W7EtNTeVa0G3cnVU3CtydHbkWpDyv6HLgTZXxRfX1MDI04Pmr1wSHPKJm1UrZYoro6WFmXkaxWVrZYGRsQtCNa4qYuLhYHgTfwdlFdf3S0tLC3sGZoMDMY1JTUwkKvKrymIAj+6nsVR1DQyOV5eXV+/f/Y+8+o6K4+gCMP0sRBOmiFEF6s2FFjLHERiyxG7vYu8bYe69RYzSWqFFENJooKvbeY1c0UURBCRaasHTp+34AF1eWpijmzf2dM0d39s6d/87ODHdvm0xehKXIl7S0rMI3+pcrq6WNiVkl+VLJ0hp9AyP+vptbwE5OTiL40QPsnT5tNwN1dXXs7ezwv+svX5eVlYW/vz/OTk5Kt3F2csLfX7Fv8+07d/JN/z7x3PHPbUXJjucuLk7Kf0Q6Oznhf/fdeBTjf1NoevHyJUsWLkBXV1fEUwLxvFFWS0vpOf6Xv+I5HhT46c/xklAaj3T8f/J/88lDQ0P5/vvvCQwM5LfffmPNmjWMHTsWe3t72rdvz+DBg7l06RJ3796ld+/emJub0759ewC+++47jh8/ztOnT7l9+zZnz57F2dlZ6X6srKxITEzk9OnTvHr1iuTk5DxpmjdvTrVq1ejVqxe3b9/m+vXr9O3bl8aNGxfpWZ5vS01NlT+mKSAggNGjR5OYmEi7du0AsLOzw8LCgjlz5vD48WMOHz7MihUrFPIoyucLDAyUN7m/WdLT07G3t8fX1xd/f3/u3r1Lz54989SqWllZceHCBV68eMGrV/n3gdTQ0EBXV1dhUS+Td/Z/iURC46/7cHL/Rv6+eZaXoY/YsX4augYVqFanmTzdugUDuXh8p/z13i0LuHnpEL1HLUWjrDbxsa+Ij31FWpriFD5R4aE8eXiL+k07F3L0s3Vr35pDJ89y9MwFQp69YMWGLbxOSaF1s+yRjAtXreOX7bvk6bu08+DanXvs2n+Yf56/YMtvewgMfkKn1i3lac5evsqdvx7wMjyCi9duMn72YhrWq0O9moXPTyqRSGjbvgt7dm3n+tXL/BPyhNUrFmFoWJ567g3l6WZP+54jB33lr9t17Mqp44c4e+oYz0P/4Ze1P5KaksJXLb5WyD/s5XMe/H2P5i3bFOn4FJdOOTXsrLWxssie99XSXAs7a20M9dUL2bJkqWproVvDCd0a2X9wtawroVvDCU2Lkn2GrkQi4etvurF/9zZuXrtIaEgw61fOw8CwPHXq587Zt2D6aI4f2iN/nfI6mZAnjwh58giAqIgwQp484lVkuDxNYkI8IU8e8fzZUwDCXoQS8uQRsdLofOPp1LEjR48d5+SpU4SGhrJm7VpSUlNo2aIFAD8sX8GWrV7y9B3af8PNW7fY6+vLs2fP2O6zg8ePg/imXe60ZwkJCQQHB8u7yDx//oLg4GBiYgrvX9epYweOHj/OyVOnCQ19xpq160hJSaFli+YALFuxki1eufP5dvjmG27eus0e332EPnvG9h07eRwURPucadgyMjKYv2gJjx4HMXnCBLIys4iJkRITI83TmiPiKX48ykgkElq378q+3du4ee0SoSHBrF25AANDI+q6507lNn/aWI4d3Ct/nX2OPybkSfbAxsiIMEKePFY4x4V/n/+bpvC+ffvy+vVr6tWrh6qqKmPHjmXIkCEAbN26lbFjx9K2bVvS0tJo1KgRR44ckTdFZ2ZmMnLkSJ4/f46uri4eHh78+OOPSvfToEEDhg0bxrfffkt0dLT80Ulvk0gkHDhwgNGjR9OoUSNUVFTw8PBgzZo1xf5cx44dkz8sXkdHBycnJ/744w+aNGkCZP+i/e233xg+fDjVq1enbt26LFiwgK5du8rzKMrn6969e559P3v2jJUrVzJgwAAaNGhA+fLlmTx5MvHx8Qrp5s2bx9ChQ7G1tSU1NVWhWf59fdVuAGmpr/l98xxeJydg7ViLoVM2KBREX0U8Iykht4no8qndAKydrziXXo9hC6jXuIP89fVzvugZVsSxeoMixdKsoTuxcfFs+W0PMdJY7Kwrs3z2FPkAnYioaCRv/Tqt5uTArO9HsnnHH2zy2U0lMxMWTvkem8q5fW6jpbH8vMUHaVwcRgYGtGrSkH7dit7fs2OXHqSmpLBhzXKSkhJxdqnGzPnLKPPW8QkPe0F8fG6TfMNGXxEfF8tvPluJlcZgbWPHzHnL8jSFnz55FKPyxrjWKvoUNsXR0M2I6d/l1p7Mm5xdY7plZwhbfit63+EPpVe7Ku6nt8tfuyyfBsAzb1/uDZya32bvpV3n3qSmpLD556UkJyXi6FKdKXNXKnxfEeEvSIiPlb9+EvSQ+dNyn8Cx/dfVADT6qjXDx80A4Na1i2z4KXew3+plswDo3GMAXXoOUhpL48aNiIuPY/t2n+wJ0m1sWDBvnrxpNTIqColKblOgi4sLkydNZJv3dry8tmFmbs6smTOwsrKSp7ly9Sorf1wlf7146VIAevXsSZ/evQo8Nk0afUlcXBzePjvk8SycN1ceT1RUFCpv9Z+v4uLMlIkT2LbdB69t3piZmzF7xnSsrLIfnvAqOpqrOS1UI0aPUdjXssWLqFG9mojnA+LJzzede5GaksLGNctyzvFqTJ23osBzPPjxQ+ZNy43Be3P238jGzb5mxLjp7xVHifgP1zaWBImsJEoBpaxJkya4uroqzCMp/Dscuf1+v5A/ltplP2zgVkl7pW5W2iEoGDruUWmHoGDqsSGlHYIC0/t/lnYICgxUS3eu0HdJZP//XSH+38TKPrwvbUlytTcuPNEHkt5VPkdxcRnU+Mzm5/xERLFcEARBEARBKBH/N03hgiAIgiAIH+q/PPCmJPxfFCzPnTtX2iEIgiAIgvD/4D/81JySIIrlgiAIgiAIQon4v6ixFARBEARBKAmiKfzDiIKlIAiCIAhCDvHknQ8jiuWCIAiCIAhCiRA1loIgCIIgCDlEU/iHEQVLQRAEQRCEN8So8A8iCpaCIAiCIAg5ZKKX4AcRR08QBEEQBEEoEaLGUihVTnqhpR2CAp0XwaUdggI1w9TSDkHB/sVlSjsEBaErPq9nc4dVaVDaISjQf3iktENQUCHqQWmHkIdMRbW0Q1AQalS7tENQkDmkQ2mHoOjs5Y++C5loCv8gomApCIIgCIKQQwze+TDi6AmCIAiCIAglQtRYCoIgCIIg5BATpH8YUbAUBEEQBEHIIZrCP4w4eoIgCIIgCEKJEDWWgiAIgiAIOcSo8A8jCpaCIAiCIAg5RB/LDyOawgVBEARBEIQSIWosBUEQBEEQcojBOx9GHL1ikEgk7N+/v7TDEARBEAThI5EhKZHlv0rUWAKenp5s27YNADU1NQwNDalevTo9evTA09MTFZXs8ndYWBgGBgZFylMikbBv3z46dOjwscJ+b1ZWVvzzzz8AqKioULFiRb7++muWL19e5M/3OTl48CB79u5FKpViY23N8OHDcXR0LNF97D57jW3HLxEdl4iDhQmTe7ShqnUlpWl9L9zk0BV/gl5GAOBc2YzRHVsopK85eKbSbb/r0op+rRoWGs/eo6fZceAoMbFx2FlZ8v3AXrjY2yhN+yT0BZt37ePhkxDCo6IZ278H37ZtqRjzsTPsO36WsKhXAFhbmDOg6ze416peaCzZ8Zxi51vxjBvYu5B4fAnMiWdM/x5827aVQhpv30Ocv3qLf16EoVFGnWqOdgzv043K5qZFikcmk7Fnx2bOnPAjKSkBR+fqDBgxEVMzi3y3Cfj7Dod8d/IkOJDYmFd8P20xdd0bK6S5/uc5Th3dx9PgQBIT4ln8kxdWNg5Fiqkwhg3rYDN+IHq1qqJpVoGbnUcQ4Xe6RPL+EJ/k+jr1J95HLxAdl4CDpSmTerenqo3y78r33DUO/Xmb4Oc515eVOaO6eOSbfqGXL3vPXWN8j7b0avVlkeL5/dRlvI+cIzouAXsLUyb16UhVW0vl8Zy9yuHLtwh+Hp4TTyVGdv1anj49I5P1e49y6e5DXkRGU06rLG5V7BndrTXGBnpFikcmk/Gbz1ZOHT9MUlIiTs5VGTpyHGbmyu9Bbxw5tI/9e3cTK43BytqWQcPG4ODorJDmYcB9dnj/yuPAAFRUVLC2sWPW/GVoaGjkm69xh05U/LYn6oaGvA4OInT1jyQ/DMg3fYXO3TD+piNlKlYkIy4W6flzvNi0AVl6mjyNevnymA8ZgV69+qhoapL64jkhSxeR/OhhkY5RSRI1lh9GHL0cHh4ehIWFERISwtGjR2natCljx46lbdu2ZGRkAGBiYlLgxfZvMm/ePMLCwggNDWXHjh1cuHCBMWPGlHZYxXb+/Hk2btpEr549WbNmDdY2NsyYOZPY2NgS28fxG3+x4vejDG3XlJ0zh+NQyYQRq7YRE5+oNP3NwKd41KvGpvED2DZlCCYGegz/cRuR0nh5mpPLJyksczw7IpFIaFbLpdB4Tl2+xmqvXQzo1p6tP8zBrrIF4+avICYuXmn6lLRUzCoaM7x3V4z0lf8hq2BkyPDeXdi6bDZbls2mdlVnJi9dzZPQF0WKZ43XLgZ068CWH+ZiV9mC7+cvR5pPPKlFiMf//kM6eXzFxsUzWTV7IhmZmYybt5zXKUV7dvrBvT4cO/QHA0dMZP7yzWhoarJk1jjS0vLfPjUlBUtrOwYMG19Amtc4utSgR78RRYqjOFS1tYi/F8jfY+aWeN7v65NcX9fusnLXIYZ0aMbOuWOwtzBl5PJf872+bj18goebKxsnD8FrxggqGuox4ofNRErj8qQ9c+tv/goOxVhft8jxnLjqz8qdfgzp0IId877DwdKMUT9sIiY+IZ94gmlV35Vfpg5j66zRVDTSY+QPG4mMyY4nJS2NhyEvGNS+OTvmj2P5mH6EhEUy7setRY5p355dHD7oy9CR41i6ch0amprMmzmJtLS0fLe5dOEMWzet59ue/VixeiNW1rbMmzmJ2FipPM3DgPvMnzUZ15p1WPbjOn5YtZ7W7TqgopJ/bZtB02ZUGj6asG1bCBgygOTgIOyXrURNX195+mYtMB8yjJfeW7jfrychPyzBoGkzzAcPladRLaeD45oNyDIyeDxlPPc9e/Fs/c9kJCo/5sLnTRQsc2hoaGBiYoK5uTm1atVi2rRpHDhwgKNHj+Ll5QUoNoWnpaUxatQoTE1N0dTUpHLlyixevBjIrhEE6Ngxu7Dw5nVwcDDt27enYsWKlCtXjrp163Lq1CmFOKysrFi0aBEDBgxAR0cHS0tLNm7cqJDm+fPn9OjRA0NDQ7S1talTpw7Xrl2Tv3/gwAFq1aqFpqYmNjY2zJ07V144fkNHR0f+eZs2bUq/fv24ffu2/P05c+bg6uqqsM2qVavknwXg3Llz1KtXD21tbfT19fniiy/kNaGfyr59+/jaw4OWLVtS2dKS0aNGoaGhwYkTJ0psHz4n/6TTl3Vo/0UtbM0qML13OzTLqLP/8m2l6RcN7kq3pm44WppibWrMrH4dkMlkXAsIlqcpr6ejsJzzD6CuozWVjA0LjWfXwRN807wRbb/6EmsLcyYN7YuGRhkOnb6oNL2LnQ2j+n1Li4ZuqKsrb6RoWNeVBrVrYGFmgqWZCcN6daaspib3HwUrTf+23QeP0655Y9rkxDNxaL+ceC4oTe9sZ8Ooft1p3rB+vvGsnDmBNl99iY2lOfZWlkwfNYiIV9EEBocUGo9MJuOo3+907OZJnfqNqGxtx4hxs5DGvOLmVeUxAbjWcefbPkPz1FK+7cuvvqZzjwFUc61baBzFFXX8Ao9mryLiwKnCE38in+L62nH8Ih0b16P9l3WxMa/I9H4d0SyjzoELN5SmXzisB92aueNY2QxrswrMGtAFmUzG9QdBCukipXEs8znAwmHdUVNVLXI8PsfO07GJG980qoeNuQnTPDujqaHOgfP5xDO8F92af4FjZXOszSowc2A3ZFkyrj94DICOVlnWTR5KSzdXrEwrUM2uMpP7diQg5Dlhr6RK83ybTCbj0IE9dP22D27uDbGytmXs+KnExLzi2pVL+W7nt+8PWni0oVmLr7GwtGLYqO/R0NTk9Imj8jRbN62lzTed6NytJ5aVrTGvZMkXXzZFXb1MvvlW7Potrw4fJPrYEVL+CSF05Q9kpaRi9HVbpenLValG4t9/IT19krSIcBJuXkd65iTaTrk1pyY9epEWGck/yxaR/DCAtPAwEm5eJ+1l4T9sP4bSbApfu3YtVlZWaGpq4ubmxvXr1wtM/8cff+Dk5ISmpibVqlXjyJEjip9FJmPWrFmYmppStmxZmjdvzuPHj98rtqISBcsCfPXVV9SoUQNfX988761evRo/Pz9+//13AgMD2bFjh7zQdeNG9g1o69athIWFyV8nJibSunVrTp8+zZ07d/Dw8KBdu3aEhoYq5L1ixQrq1KnDnTt3GDFiBMOHDycwMFCeR+PGjXnx4gV+fn7cvXuXSZMmkZWVBcDFixfp27cvY8eO5cGDB/zyyy94eXmxcOHCfD/nixcvOHjwIG5ubkU+NhkZGXTo0IHGjRtz7949rly5wpAhQ5B8wvm/0tPTeRwUpFAAVlFRwdXVlYCHJdN8kp6RQcA/L3Fzzm3WVVFRwc3ZlnvBz4qUR0paOhmZmehpayl9Pzo+kUt/PaJDw1qFx5OeQWBwCHWqV1GIp251F/5+FFTAlkWXmZnFyUvXSElJpaqjbZHiqVs9t6ZVRUWFOtWr8HcRCqVFlZT8GgBdHe1C00ZGvCRWGk1V1zrydVra5bB1cOHxw79LLKb/d5/s+gp5gZuLvcI+3KrYcS84tIAtc6WkZl9fum9dX1lZWczYuJu+XzfG1tykWPE8DHlBvSq53RtUVFSo52LPX0FF+9GckpqWJ553JSanIJFI0NEuW2h+EeFhSKUx1HCtLV+nrV0Oe0dnAh/eV/450tMJDnqksI2KigrVXWvJt4mNlfIoMAA9PX2mjB+FZ69OTJ88lgf3/8o3FomaGloOjsTfequQLZORcPsm5apUVf5Z7/+FloMjWjkFyTKmZui6uRN37ao8jV6DhiQHPsRm9nyq+x7CeeNWyrdpV+ix+VhkEpUSWYpr9+7dfP/998yePZvbt29To0YNWrVqRWRkpNL0f/75Jz169GDgwIHcuXOHDh060KFDB/7+O/c+t2zZMlavXs2GDRu4du0a2tratGrVipSUlPc+PoURfSwL4eTkxL179/KsDw0Nxd7enoYNGyKRSKhcubL8PWNjYwD09fUxMcm9qdWoUYMaNWrIX8+fP599+/bh5+fHqFGj5Otbt27NiBHZTW2TJ0/mxx9/5OzZszg6OrJz506ioqK4ceMGhobZtVt2dnbybefOncuUKVPo168fADY2NsyfP59JkyYxe/ZsebrJkyczY8YMMjMzSUlJwc3NjZUrVxb5uMTHxxMXF0fbtm2xtc0ufDg7OxeyVcmKj48nKysrT79QA319nj8rWqGvMNLEZDKzsjDULaew3ki3HCHhr4qUx097T2Csr4Obi/I+hwf/vIOWhgZfFaEZPDYhITued5r2DPX0+OdFeJHiyU/wP88YMm0haWnplNXUYPGkUVhbmBcxHsUmbUM9XUJfhH1QPG9kZWXx09adVHeyx8ay4D5lAHHSGAD09BVrf/X0DYnNeU8o3Ke4vmITcq4vPcXry1BXh5CwqCLlsfqPIxjr6+Lmknsf9DpyHjUVFXq0+KKY8SSRmZWF0bvXu54OIWHK/7jniWf3Ycob6OFWxV7p+6lp6az+/TCt6rtSrqxm4TG9OZ/f+R709Q3yPZ8T4uPIyspCTz/vNi+eZRfYI8Kzr89dO7fhOXAY1jZ2nDt9gtnTxvPTui1K+2+q6ekjUVUj4539pktj0LRU3gdVevokanp6OK5ej0QiQaKmRtSBfYTv8Jan0TAzw7h9ByL+2E3YDm+0nZyxGD2OrIwMYo4fVZrv/6OVK1cyePBg+vfvD8CGDRs4fPgwW7ZsYcqUKXnS//TTT3h4eDBx4kQgu0xx8uRJfv75ZzZs2IBMJmPVqlXMmDGD9u3bA+Dt7U3FihXZv38/3bt3/yifQ9RYFkImkymthfP09MTf3x9HR0fGjBlTpKahxMREJkyYgLOzM/r6+pQrV46AgIA8NZbVq+cOmJBIJJiYmMh/sfj7+1OzZk15ofJdd+/eZd68eZQrV06+DB48mLCwMJKTk+XpJk6ciL+/P/fu3eP06ewBAm3atCEzM7PwgwIYGhri6elJq1ataNeuHT/99BNhYQUXJFJTU4mPj1dYUlOL1mfu32rL0Qscv/4XK0b0RENdXWmaA5dv87Vb9Xzf/1QszUzZtnwum5bMpGOrpiz4eTNPn5VOU9TbVmzazpPQ58z9frjS9y+dO45n12by5d1uH8L/r62HznL82l2Wj+mLRpns6+dByHN+O3GJuYO6fdIWFICtB89w4po/K8b0k8fztvSMTKas3Y5MBlM9OyvN4/zZk/To/LV8ycj8OOezLKeVq9XXbWnW4mtsbO0ZMGQk5pUsOH2y5Apz5WrUxLRXX0JXreDBkP4Ez5yKXn13TPp45iaSqJD86BEvN//C66DHvDrkx6vDfhi361BicRRHSTWFF+dvXlpaGrdu3aJ58+bydSoqKjRv3pwrV64o3ebKlSsK6QFatWolT//06VPCw8MV0ujp6eHm5pZvniVB1FgWIiAgAGtr6zzra9WqxdOnTzl69CinTp2iW7duNG/enD179uSb14QJEzh58iTLly/Hzs6OsmXL0qVLlzwdsNXfKWBIJBJ5U3fZsgU3nSQmJjJ37lw6deqU5z1Nzdxfx+XLl5fXdNrb27Nq1Src3d05e/YszZs3R0VFBZlMprB9enq6wuutW7cyZswYjh07xu7du5kxYwYnT56kfv36SmNbvHgxc+cqDkwYM3o0Y8eOLfAz5UdXVxcVFRWkUsV+StLYWAzyKXgXl0E5LVRVVPIMJIiOT8xTq/Eu7+OX2Hr0Ihu+98ShkvLmuNuPQggJf8WSId2KFI++jk52PLGKA2Ni4uLy1GIWl7q6GpVMKwLgZGtFQFAIvx8+yeRhnkWIR3HgRExcfJ5azPexYtN2/rx1l7Xzp1LBSPl3WrteQ+wccrsGpOeMNI2LjcHAsLx8fVxsDFY2ymuRhLw+xfWlr5NzfcUpXl8x8QkY6ekUuK330fNsPXyODZMG42CRO1vAncCnxCQk0Xr8Yvm6zKwsftx1mJ0nLnN4Rd6an9x4tFFVUSH63es9LoHyegVfX95HzuF1+AzrJw3F3tIsz/tvCpVhr6RsmDIs39rKem5f4OCY23ohP5+lUgwNjeTrY2OlWNvY5dkeQEdXDxUVFeJiFb+72Fgp+gbZ351BTl6VLKwU0lSysORVVITSfDPiYpFlZqBmoPj9qxsYkh6jvPbUbMBgok8cJ/rIQQBSnj5BRVOTyuMnE+6zDWQy0qOjSfknRGG71/+EoP9lE6V5fmwl9UhHZX/zZs+ezZw5c/KkffXqFZmZmVSsWFFhfcWKFXmYT9eT8PBwpenDw8Pl779Zl1+aj0HUWBbgzJkz/PXXX3TurPyXpa6uLt9++y2bNm1i9+7d7N27l5ici0tdXT1P7d/ly5fx9PSkY8eOVKtWDRMTE0JCQooVU/Xq1fH395fv5121atUiMDAQOzu7PMubaZOUUc3p3P76dXZfNmNjY8LDwxUKl/7+/nm2q1mzJlOnTuXPP/+katWq7Ny5M999TJ06lbi4OIVl2LBhRfnYSqmrq2NvZ4f/3bvydVlZWfj7++Ps5PTe+SrsQ00N58pmXAt4orCP6wFPqG6b/9Q1XscusunwOdaO7UsVq/ybk/dfuo1zZTMcLYo2jY66uhqOtlbc+uuBQjw37wVQ1UH5H5n3lSXLIj294NqSN/HcfCeeW/ceUNWh4P6ZBZHJZKzYtJ0L12+xes4kzCoa55u2rJY2JmaV5EslS2v0DYz4++5NeZrk5CSCHz3A3kl5PzAhr092fVmZKwy8ycrK4vqDIKrnM70PgNeRc2z2O83P4wfg8s60X22+qMXu+d/x27yx8sVYX5e+Xzdm7YSBhcbjZGXOjfu5gxuysrK48SCIanaV891u2+GzbD5wip8nDMZFybRHbwqVz8KjWD95KPoF9BUuq6WFqZm5fLGwtMLAwJB7d3MHCyYnJ/E4MABHpypK81BXV8fWzoF7/rnbZGVl8Zf/bfk2FSqaYGhUnpcvFLs1vHzxHOMKigWRN2QZGSQ/CkS3Vm7/ZSQSdGrVJvG+8v7LKpoaIMtSzCenooScAlzS/XtoWCh+35qVLEmL+HiFn09B2d+8qVOnlnZYH52oscyRmppKeHg4mZmZREREcOzYMRYvXkzbtm3p27dvnvQrV67E1NSUmjVroqKiwh9//IGJiQn6OVMuWFlZcfr0ab744gs0NDQwMDDA3t4eX19f2rVrh0QiYebMmfKayKLq0aMHixYtokOHDixevBhTU1Pu3LmDmZkZ7u7uzJo1i7Zt22JpaUmXLl1QUVHh7t27/P333yxYsECeT0JCgrzg+OzZMyZNmoSxsTENGjQAoEmTJkRFRbFs2TK6dOnCsWPHOHr0KLq62b/anz59ysaNG/nmm28wMzMjMDCQx48fKz1Wb2hoaOSZrunVB07f1LFjR1asXIm9vT2ODg7sP3CA1NRUWrRo8UH5vq13iwbM2uKLi5U5Va3N2XnqCq/T0mj/RfZgmxm/7qGCgS5jOmXPDbn16AXW+51h0aCumJXX51Vc9pQZWhpl0NLM/byJr1M4eetvvu/qUax4urdryYI1m3GytcLF3obdh06QkppK26+y57+ct3oTxob6DO/dFcgeYPP0+UsAMjIyiYqW8uhpKFqaGvIayvU+f1C/ZnVMjI1Ifv2aExevcud+ID/OzH/qnTe+bdeKhWs24WRrjYu9Db/nxNPmq+w5A+ev3kh5Q4N34sluYk+Xx/MPWpqa8nhWbNrOyYtXWDJlLFplNYmWxgJQTksLDY38R6xCdg3/1990Y//ubZiYWVChohl/+GzEwLA8deo3kqdbMH00dd0b06ptFwBSXicTHvZc/n5URBghTx5Rrpwu5Stk1zgnJsTzKiocaUx2/9qwF9ndWPQNjNA3yK1Neh+q2lpo2+X+cdWyroRuDSfSYuJIeVYy/VWL61NcX71afcnsTb/jYl2JKjaV2HniEq9T0/nmy+zCy8yNu6lgoMvorl8D4HX4HOv3nWDR0B6YlTfkVWzO9aWZfX3pl9NGv5xiwU1NVRUjvXJYmeb/A+WN3h6Nmb1pF87WlahqY8nOExd5nZrGN42yZwKY9ctvGBvoMbpb6+x4Dp1hg+9xFg7vhWl5A17ltCZoaWqgpalBekYmk9d48/Cf56z6fiCZWVnyNHrltFBXK/jPsEQioW37LvyxazumZuZUNDFl5/YtGBqWx809d87bWdO+p777l7Ru1xGAbzp2ZfXKJdjaO2Dv4MyhA3tISUmhWQsPeb4dOn3Lrh1eWFnbYm1jx9nTx3nxPJSJ0+bkG0/EH7uxmjKdpEcPSQ54QIUu3VDR1CT62GEArKbOIC3qFS83bwAg7s/LVOzaneTHj0gKeICGeSXMBgwm9splyPn7F/HHbpx+/gWTXn2Rnj2NlrML5dt+Q+jKZYV+Xx+DTFYyNZbK/ublp3z58qiqqhIRoVhbHBERoTBW420mJiYFpn/zb0REBKampgpp3p31pSSJgmWOY8eOYWpqipqaGgYGBtSoUYPVq1fTr18/pTV9Ojo6LFu2jMePH6OqqkrdunU5cuSIPO2KFSv4/vvv2bRpE+bm5oSEhLBy5UoGDBhAgwYNKF++PJMnTyY+Xvlcf/kpU6YMJ06cYPz48bRu3ZqMjAxcXFxYu3YtkN2/4tChQ8ybN4+lS5eirq6Ok5MTgwYNUshn1qxZzJo1C8iunaxbty4nTpzAyCj7j6OzszPr1q1j0aJFzJ8/n86dOzNhwgT51EdaWlo8fPiQbdu2ER0djampKSNHjmTo0KF8So0bNyYuPh6f7duJkUqxtbFh/rx5JTrRe6u61ZAmJLH+wGmi4xNxtDBl7di+8qbw8Jg4VN4aAfjH+RukZ2QyccMuhXyGtmvKsG++kr8+fiN79KVHvaJNQv5G8y/ciI1LYNOu/cTExmFvbcnKGd/Lm54jXkWj8lZTzitpLJ4Tcgdu7fQ7xk6/Y9Ss4sjaednNgtK4BOav2US0NA5trbLYVbbgx5njqVdDeY2Isng279onj2fFjPEK8UgU4pHS/614fvM7xm858fw8L/vX/L7jZwAYNWuJwr6mjRwoL7AWpF3n3qSmpLD556UkJyXi6FKdKXNXUqZM7k0+IvwFCfGx8tdPgh4yf1ruILrtv64GoNFXrRk+bgYAt65dZMNPuTMsrF6WfQ117jGALj0Vr7Hi0qtdFffT2+WvXZZPA+CZty/3BpZOLccnub7camRfX/tOEB2XgKOlGT+PHyBvCg+PjlU4n/84czX7+lrro5DPkPbNGdbxwwu8Leu7Ik1IZIPv8ZwJ281YM3HQW/FIFc7nPWeukJ6RyaQ13gr5DOnQgqGdWhEljeP8neyR2D1mKA6Q/GXqMOo4F97S0LFLd1JSXrN+zQqSkhJxdqnGzPlLKVMm90dWeNhL4uNzu6Q0bPQV8XFx7PLxQiqNwdrGllnzlsqbwgHadcjuirVl01oSExKwsrZl9oLlmJrm38oiPXsaNT19zDwH5UyQ/pjHk8eTkdNlokyFisiyclu6wrZnN3ebDRxCmfLGZMRKib1ymZebc6fRSw58SPDMqZgPHoZpX09Sw8J4vvYnYk6V3LRWxSErhcbcMmXKULt2bU6fPi1/sEpWVhanT59WGNz7Nnd3d06fPs13330nX3fy5Enc3d0BsLa2xsTEhNOnT8sLkvHx8Vy7do3hw5X3WS8JEtm7HekE4RN6ElxyU9KUBJMXt0o7BAWvDQsfBf0pfW6PKQstUzJPvSkpYVUalHYICpwfHik80SdUMTL/qWxKi0yl6HNcfgqhRrULT/QJvR7ctbRDUFD77OWPvo/HwSUzH7O9bf7dJ5TZvXs3/fr145dffqFevXqsWrWK33//nYcPH1KxYkX69u2Lubm5fM7sP//8k8aNG7NkyRLatGnDrl27WLRoEbdv36Zq1exuP0uXLmXJkiVs27YNa2trZs6cyb1793jw4IHCuIuSJGosBUEQBEEQcpTWD+hvv/2WqKgoZs2aRXh4OK6urhw7dkw++CY0NFShBbVBgwbs3LmTGTNmMG3aNOzt7dm/f7+8UAkwadIkkpKSGDJkCLGxsTRs2JBjx459tEIliBpLoZSJGsuCiRrLgokay4KJGsvCiRrLgv0XaywDi/jwi8I4FjDA8/+ZqLEUBEEQBEHI8bn9gP63EdMNCYIgCIIgCCVC1FgKgiAIgiDkEDWWH0YULAVBEARBEHKU1DyW/1WiKVwQBEEQBEEoEaLGUhAEQRAEIYdoCv8womApCIIgCIKQQxQsP4xoChcEQRAEQRBKhKixFARBEARByCFqLD+MKFgKgiAIgiDkEKPCP4woWAqlSjsttrRDUBBhXqu0Q1CQgXpph6BAQlZph6DAAGlph6BA/zN7hGKAU+vSDkHRZ3Z8PkfqpJd2CAq0Nm0t7RCEfxlRsBQEQRAEQciRJZrCP4goWAqCIAiCIOQQfSw/jChYCoIgCIIg5BB9LD+MmG5IEARBEARBKBGixlIQBEEQBCGHaAr/MKJgKQiCIAiCkEM0hX8Y0RQuCIIgCIIglAhRYykIgiAIgpBDNIV/GFGwFARBEARByCGawj+MaAr/xJo0acJ3331XInmFhIQgkUjw9/f/LPIRBEEQBOG/TdRY/otZWFgQFhZG+fLli7yNp6cnsbGx7N+//4Py+dh8j5xg175DxMTGYWtlydjB/XBxsMs3/dnLV/l15x+ER77C3NSEYX27416npvz9mNg4Nmz7jRv+90hMSqZGFSfGDu6HhZlpkeLxO3iIPXv3IpVKsbG2ZsTwYTg6Ouab/sLFi3hv9yEiIgJzMzMGDOhPvbp15e9funyZI0eO8jgoiISEBNauWY2trW2RYgGQyWTs8PHm+LGjJCUl4uxShREjx2Bubl7gdocO+uG79w+k0hisrW0YOnwkjo5OACQkxLPDZzt3bt8iKioSPT096rs3oHcfT7S1tQuNx8dne048STi7uDBy5OgixbN37x6kUinW1jYMGz5C4bgePXqE8+fOEhQUzOvXyez+fQ/lypUr9Ph8bt9XcRw8eFAh9uHDhxcY+8dk2LAONuMHolerKppmFbjZeQQRfqdLJZY3ZDIZ2318OHbsGElJSbi4uDBq5MhCz7V/ezyf0zXvd+gwe/b6EvPm+ho2FCdHh3zTX7h4iW0+PkRERGJuZsbA/p7Uq1sHgIyMDLy8fbhx8yZh4eFoa2tT07UGAz37YWRk9B5H6sN9Xg+u/fcRNZb/YqqqqpiYmKCm9mG/D0oqn5Jy+tIV1m7xwbN7JzavXIidlSUT5i5BGhunNP1fDx8xb8XPtGnehM0rF/GlW22mL1nJk3+eAdk35OmLV/AyIpJF08bz64+LqGhcnu9nL+Z1Skqh8Zw/f4FNmzbRu2dPfl6zGhsba6bPnElsbKzS9A8ePGDJ0mW0atmStWtW4+7uzrz5CwgJCZGnSUlJpUoVFwb071/s4wOwd8/vHPTbz8hRY1jx42o0NTWZNXMqaWlp+W5z4fw5Nm/6hR49e/PTmnVY29gwa+Y0YmOzn7cdHR1NTHQ0AwYNZu36jXw3bgK3bt7kp1UrCo1nz54/OOh3gJGjxrDyx1Voamoyc+b0QuI5z6ZNm+jZszer1/yMtY0NM2dOVziuqamp1Kpdh27fflvkY/M5fl9Fj/08GzdtolfPnqxZswZrGxtmFBD7x6aqrUX8vUD+HjO3VPavzB979uDn58foUaNY9eOPaGpqMmPmzALPtf+HeD6Xa/7chYts3LSZXj17sHb1KmysrZk+c1a+5+j9BwEsXvYDHi1bsm71TzRwr8/cBQsJCfkHyL7Gg4KD6dnjW9auXsWs6VN5/vwFs+cteP+D9YFkMkmJLP9VomD5ESUlJdG3b1/KlSuHqakpK1YoXqypqalMmDABc3NztLW1cXNz49y5cwDEx8dTtmxZjh49qrDNvn370NHRITk5OU8TdmZmJgMHDsTa2pqyZcvi6OjITz/9JN92zpw5bNu2jQMHDiCRSJBIJJw7d05pU/j58+epV68eGhoamJqaMmXKFDIyMuTvN2nShDFjxjBp0iQMDQ0xMTFhzpw5JXLcfj9whLYtm9K6WROsLCoxfvhANDU0OHz6vNL0ew4eo16tGvTo2A4rC3MG9eqGg401vkdOAPD8ZTj3A4MYP2wAzva2WJqbMX7YAFLT0jh98Uqh8fju24eHhwctW7agsqUlo0eNQkNDk+MnTihNv/+AH3Vq16Zrl85YWlrSr28f7Gxt8Tt4SJ6mebOv6NWzJzVruhb7+MhkMg7s38e33XtS370B1tY2fD9+EjHR0Vy5cjnf7fbv20srj69p0bIVlpaVGTlqLBoaGpw8cRwAKytrps2YhZubO6amZtRwrUnffv25fu0amZmZRYinB+7u7lhb2zB+/MSceP7Md7t9+3zx8PCgRcuWWFpWZtSo0WhqaHAiJx6ADh060q3btzg5ORX5+Hxu31dx7Nu3j689PGjZsuVbsWtwIp/YP7ao4xd4NHsVEQdOlcr+3yWTydi/fz/du3fPOdesmTB+PNHR0fx5pfBr+d8az+d0zfvu24+HRytatWhOZUtLxowagYamBsdPnFQeg58fdWrXomvnTlhaWtCvT2/sbG05cCj7+tLW1mbJwvk0/vJLLCpVwtnJiZHDh/I4KIjIyMgPPHJCaRAFy49o4sSJnD9/ngMHDnDixAnOnTvH7du35e+PGjWKK1eusGvXLu7du0fXrl3x8PDg8ePH6Orq0rZtW3bu3KmQ544dO+jQoQNaWlp59peVlUWlSpX4448/ePDgAbNmzWLatGn8/vvvAEyYMIFu3brh4eFBWFgYYWFhNGjQIE8+L168oHXr1tStW5e7d++yfv16fv31VxYsUPwFuW3bNrS1tbl27RrLli1j3rx5nDyp/OZSVOnpGTwKfkqd6lXl61RUVKhdoyr3Ax8r3eZ+4GNqv5UeoF7N6vL0aenpAJRRV1fIU11NjXsPAguJJ53HQUHUdHVV2LamqysBDx8q3Sbg4cM8BZDatWvlm764IsLDkUpjcHWtJV+nra2No6MTDwMClG6Tnp5OUNBjXF1zuweoqKjg6lqThw+VbwPZP460tLRQVVXNN014eDhSqVQh748VT2E+x++rqN7E7vpO7K4FxP5f8+Zce/v7zT7XHPM91/4f4vlcrvk352gt1xoKedZ0deXBQ+X30oCHDxWOD0DtWjULPKeTkpKRSCRoF6Hby8cgQ1Iiy3/V59H2+X8oMTGRX3/9FR8fH5o1awZkF8QqVaoEQGhoKFu3biU0NBQzMzMgu+B37Ngxtm7dyqJFi+jVqxd9+vQhOTkZLS0t4uPjOXz4MPv27VO6T3V1debOzW2ysra25sqVK/z+++9069aNcuXKUbZsWVJTUzExMck39nXr1mFhYcHPP/+MRCLBycmJly9fMnnyZGbNmoWKSvbvkerVqzN79mwA7O3t+fnnnzl9+jQtWrR47+MWl5BAZlYWBvp6CusN9fQIff5S6TYxsbEYvpPeQE+PGGksAJUrmVHRuDwbt+9iwoiBaGpo8vvBI0RFxxAtlRYYT3x8PFlZWegb6Cus19fX59mzZ0q3kUql6OvnTS8tZF9FJZXGZOeZJyYDYvPZR+7nMMizzfN8PkdcXBy7ftuBx9etC4kne58GSo5Rfp/5fY5rUXyO31dRvYnd4J3vyEBfP9/v6L8m91zLe4w+9ff1KeP5XK55eZ76eT/vs2fP84k9FoN3rq/s4xOrNH1aWhq/bvWiSeNGaCupQPkU/svN2CVBFCw/kuDgYNLS0nBzc5OvMzQ0lHfC/+uvv8jMzMTBQbHDc2pqqrzDcuvWrVFXV8fPz4/u3buzd+9edHV1ad68eb77Xbt2LVu2bCE0NJTXr1+TlpamUANSFAEBAbi7uyOR5F5cX3zxBYmJiTx//hxLS0sgu2D5NlNT0wKbLlJTU0lNTVVcl5aGRpkyxYqvuNTU1Fgw+TuW/ryJNr2HoJpTA+pWq0bhG38Gzp49zdo1uV0aZs/9+H2PkpOTmDt7BpaWlvTs1eedeM7w85rV8tdz5s776PEI/01nzp5lzZo18tdv/3AuDZ8qns/tmv9UMjIyWLh4KSBj9MgRpRIDiHksP5QoWJaSxMREVFVVuXXrVp4mhzejXsuUKUOXLl3YuXMn3bt3Z+fOnXz77bf5DrLZtWsXEyZMYMWKFbi7u6Ojo8MPP/zAtWvXPspnUH+raRlAIpGQlZX/eLrFixfnuRGPHzGYiaOGyl/r6eigqqKSZ6BOTFwchu/8Wn/DUF+fmHfSS99J72hnw5ZVi0lMSiYjIwN9PV2GTpyJo51NQR8RXV1dVFRUiH3n13VsbCwGhgZKtzEwMMjTkT02NjZPrUZRubm5y0dxQnZzFECsNBZDw9xRk7GxUqxtlI9Uzv0cirUbsbFSDAwNFdYlJycza+Z0ymppMX3mnDznm5tb/XfiyR48IM0TTyw2NsqP7/sc16L4HL6v9/Um9ndruqSxsXm+o/+K+m5uOL01Iv7NuS+VSjF865hIY2Oxzedc+zfG87ld83nyjFVyjuZzvRgY6CN95/rKTq+vsC4jI4OFS5YSERXJskULS622Uvhwoo/lR2Jra4u6urpCoU4qlfLo0SMAatasSWZmJpGRkdjZ2SksbzdT9+rVi2PHjnH//n3OnDlDr1698t3n5cuXadCgASNGjKBmzZrY2dkRHByskKZMmTIFDsQAcHZ25sqVK8hkMoW8dXR05E3572Pq1KnExcUpLGOGKI6yVVdXw8HWmlv37svXZWVlcfvefao42ivNt4qjPbfv/a2w7ob/X0rTl9PWQl9Pl2cvwwgMfkLDerULjFldXR17Ozv87/orxOPv749zPgNKnJ2c8Pe/q7Du9p07+aYvjJaWFmZm5vLF0rIyBgaG+N+9I0+TnJxEYOBDnJyd8/0cdnb23H3nc9z198fJKXeb5OQkZs6YipqaGjNnzaWMktrk7HjM5Et2PAYKeRc1HmXH9e14iutz+L7eV27subEUFvv/u7znmiUGBgYKxygpOZnAwMB8z7V/Yzyf2zX/dp72dnbc8b+nkKe//11cnJRPieXs5KRwfABu31E8p98UKl+8fMmShQvQ1dXNN4ZPIUtWMst/lShYfiTlypVj4MCBTJw4kTNnzvD333/j6ekp75/o4OBAr1696Nu3L76+vjx9+pTr16+zePFiDh8+LM+nUaNGmJiY0KtXL6ytrRWa1t9lb2/PzZs3OX78OI8ePWLmzJncuHFDIY2VlRX37t0jMDCQV69eyX8Jv23EiBE8e/aM0aNH8/DhQw4cOMDs2bP5/vvv5fG/Dw0NDXR1dRUWZc3g3dq35tDJsxw9c4GQZy9YsWELr1NSaN2sMQALV63jl+275Om7tPPg2p177Np/mH+ev2DLb3sIDH5Cp9Yt5WnOXr7Knb8e8DI8govXbjJ+9mIa1qtDvZrV8+z/XZ06duToseOcPHWK0NBQ1qxdS0pqCi1z+pL+sHwFW7Z6ydN3aP8NN2/dYq+vL8+ePWO7zw4ePw7im3Zt5WkSEhIIDg4mNDQUgOfPXxAcHExMTEyh8UgkEtp36MjuXTu5dvUKIU+fsnL5MgyNjHB3/0KebtrUSRw8eCA3ro6dOX7sCKdPneBZaCjr1q4mJTWF5i1aATl/YKZPJTUlhbHffc/r5GSkMTFIY2IK/DHyJp5du37jak48K5Yvz4knd3DYtKlTOHjQT/66Y8dOHD92lFOnThIaGsratWtISU2hRYvc7y0mJobg4GDCXmb3rw0JCSE4OJiEhIR84/ncvq/i6NixI8eOHZPH/vPataSmpn5Qv+UPoaqthW4NJ3RrZBcCtKwroVvDCU2Los3/WtIkEgkdOnRg165dXL16lac555qRkREN3N3/b+P5nK75Th07cPT4cU6eOk1o6DPWrF1HSkoKLVtkd9FatmIlW7y25cbwzTfcvHWbPb77CH32jO07dvI4KIj2bbOvr4yMDOYvWsKjx0FMnjCBrMwsYmKkxMRIlf59+hTE4J0PI5rCP6IffviBxMRE2rVrh46ODuPHjycuLrfJduvWrSxYsIDx48fz4sULypcvT/369WnbNvcPmkQioUePHixbtoxZs2YVuL+hQ4dy584dvv32W/l2I0aMUJiyaPDgwZw7d446deqQmJjI2bNnsbKyUsjH3NycI0eOMHHiRGrUqIGhoSEDBw5kxowZJXNgCtGsoTuxcfFs+W0PMdJY7Kwrs3z2FPkAnYioaCSS3AJuNScHZn0/ks07/mCTz24qmZmwcMr32FS2kKeJlsby8xYfpHFxGBkY0KpJQ/p161SkeBo3bkRcfBzbt/tkT1ptY8OCefPkTT+RUVFIVHJvIi4uLkyeNJFt3tvx8tqGmbk5s2bOUDjOV65eZeWPq+SvFy9dCkCvnj3p0zv/Wuk3OnfpRkpKCmvWrCIpMRGXKlWZN2+RQm1DeFgY8W+db40aNyEuPg6f7d7yzzFv3kL55wgKCiIwMHuk5uCBngr7+3WrNxUr5j/gq0uXrjnxrM6Jpwrz5y1QiCcs7OU78TTOiWf7W/EsUGhSO3rkMDt37pC/njxpAgDfjfteoQD6ts/x+yqqxo0bExcfj8/27cRIpdja2DD/rdg/Nb3aVXE/vV3+2mX5NACeeftyb+DUUompa5cupKSksHrNGhITE6lSpQrz580rsKbt/yGez+Wab9LoS+Li4vD22SHPc+G8ufI8o6KiUHmrf34VF2emTJzAtu0+eG3zxszcjNkzpmNlVRmAV9HRXM1p2RsxeozCvpYtXkSN6tXe95AJpUQie7u9UxA+sYiAW6UdgoLkMnqFJ/qEMlAvPNEnJPnMnkmhSsHdOj61z62WIsCp4BH9n5rzwyOlHcJnL/Mzq+9Rl6UWnugTsrLL/wk/JeXc369LJJ8mVcuWSD7/Np/XGSwIgiAIglCKRHXbhxF9LAVBEARBEIQSIWosBUEQBEEQcmR9Zl1a/m1EjaUgCIIgCEIOmUxSIsvHEhMTQ69evdDV1UVfX5+BAweSmJhYYPrRo0fj6OhI2bJlsbS0ZMyYMQqDiSF7sPC7y65du/LJNX+ixlIQBEEQBOFfolevXoSFhXHy5EnS09Pp378/Q4YMYefOnUrTv3z5kpcvX7J8+XJcXFz4559/GDZsGC9fvmTPnj0Kabdu3YqHh4f89buPuy0KUbAUBEEQBEHI8TkP3gkICODYsWPcuHGDOnXqALBmzRpat27N8uXLMTMzy7NN1apV2bt3r/y1ra0tCxcupHfv3mRkZCg8aUlfX1/hIS3vQzSFC4IgCIIg5CipCdJTU1OJj49XWFJTP2z6pitXrqCvry8vVAI0b94cFRWVYj2+OS4uDl1d3TyP7xw5ciTly5enXr16bNmyhfeZkVIULAVBEARBEHKU1CMdFy9ejJ6ensKyePHiD4otPDycChUqKKxTU1PD0NCQ8PDwIuXx6tUr5s+fz5AhQxTWz5s3j99//52TJ0/SuXNnRowYwZo1a4odo2gKFwRBEARBKGFTp07l+++/V1inoaGhNO2UKVNYmvNEr/wEBAR8cEzx8fG0adMGFxcX5syZo/DezJkz5f+vWbMmSUlJ/PDDD4wZM4biEAVLQRAEQRCEHCU1oltDo0y+Bcl3jR8/Hk9PzwLT2NjYYGJiQmRkpML6jIwMYmJiCu0bmZCQgIeHBzo6Ouzbtw919YKf7Obm5sb8+fNJTU0t8ucAUbAUBEEQBEGQK43BO8bGxhgbGxeazt3dndjYWG7dukXt2rUBOHPmDFlZWbi5ueW7XXx8PK1atUJDQwM/Pz80NTUL3Ze/vz8GBgbFKlSCKFgKgiAIgiD8Kzg7O+Ph4cHgwYPZsGED6enpjBo1iu7du8tHhL948YJmzZrh7e1NvXr1iI+Pp2XLliQnJ+Pj4yMfSATZBVpVVVUOHjxIREQE9evXR1NTk5MnT7Jo0SImTJhQ7BhFwVIoVZLPbF4H0+t7C0/0CYXV61zaISiQyLJKO4TPWoWoB6UdgqKHR0o7AgUBTq1LO4Q87LtYl3YICjTm/1TaISioEHq9tENQZOfw0XfxuT95Z8eOHYwaNYpmzZqhoqJC586dWb16tfz99PR0AgMDSU5OBuD27dvyEeN2dnYKeT19+hQrKyvU1dVZu3Yt48aNQyaTYWdnx8qVKxk8eHCx4xMFS0EQBEEQhByfWX1HHoaGhvlOhg5gZWWlME1QkyZNCp02yMPDQ2Fi9A8hphsSBEEQBEEQSoSosRQEQRAEQcjxMZ/z/V8gCpaCIAiCIAg5sj7zpvDPnWgKFwRBEARBEEqEqLEUBEEQBEHI8bkP3vnciYKlIAiCIAhCDtlnPt3Q504ULAVBEARBEHKIPpYfplT7WDZp0oTvvvuuyOlDQkKQSCT4+/t/tJgEQRAEQRCE91PiNZaenp5s27aNoUOHsmHDBoX3Ro4cybp16+jXrx9eXl74+voW+hD0t1lYWBAWFkb58uVLOuxiCwkJwdo67xMbevXqhY+PTylE9P/N98gJftt/mJjYOGytLPluUD9cHGyVpn0a+pxff9tDYPBTwqNeMXpAb7q1+/qD9r/r+gO2Xf6bV4mvcTAxYMrX7lSrVPhzXY/+9YQpe8/R1NGSVT2ay9evP3ubY38/JTw+CXVVFVxMjRjVrDbVK1UoUjx+Bw+xZ+9epFIpNtbWjBg+DEdHx3zTX7h4Ee/tPkRERGBuZsaAAf2pV7eu/P1Lly9z5MhRHgcFkZCQwNo1q7G1VX58lcZz6DB79voS8yaeYUNxcsz/CRkXLl5im48PERGRmJuZMbC/J/Xq1gEgIyMDL28fbty8SVh4ONra2tR0rcFAz34YGRn9K+PZfepPvI9eIDouAQdLUyb1bk9VGwulaX3PXePQn7cJfh4BgLOVOaO6eOSbfqGXL3vPXWN8j7b0avVlkeIpDplMxnYfH44dO0ZSUhIuLi6MGjkSc3PzEt9XYQwb1sFm/ED0alVF06wCNzuPIMLvdInvR69FOwzbdUFVz4DU0CdEea0jJfiR0rSVZi5Dy6V6nvWJd67zctksACQamhj3GIB2HXdUdXRJjwwn9vgB4k4V7clIfocO88feffLzeeSwIYWez14+O+Tn86D+/eTnM4D3jp2cu3CRqKhXqKupYW9nh2ff3jg75X8PKcyuczfZdvIK0fGJOFSqyORvW1HNSvk5cvrOQ349dpnQqBgyMrOwrGBI3+ZutHXLexxLg+hj+WE+So2lhYUFu3bt4vXr1/J1KSkp7Ny5E0tLS/k6Q0NDdHR0ipyvqqoqJiYmqKl9Pi34p06dIiwsTL6sXbs2TxqZTEZGRkYpRPf/4fSlK/y8dQee33Zi84oF2FlZMn7eEqSxcUrTp6SmYlqxAkP7dMfQQP+D93/s7ycsP36doU1c2TX0GxwrGjLc5zjRia8L3O6FNIGVJ65Ty7JinvcqG+kxtXV99g7vgNeANpjp6zB8+3FikgrOE+D8+Qts2rSJ3j178vOa1djYWDN95kxiY2OVpn/w4AFLli6jVcuWrF2zGnd3d+bNX0BISIg8TUpKKlWquDCgf/9C9/+ucxcusnHTZnr17MHa1auwsbZm+sxZ+cZz/0EAi5f9gEfLlqxb/RMN3Oszd8FCQkL+ASA1NZWg4GB69viWtatXMWv6VJ4/f8HseQv+lfEcv3aXlbsOMaRDM3bOHYO9hSkjl/9KTHyi0vS3Hj7Bw82VjZOH4DVjBBUN9Rjxw2YipXnP9zO3/uav4FCM9XWLFMv7+GPPHvz8/Bg9ahSrfvwRTU1NZsycSVpa2kfbZ35UtbWIvxfI32PmfrR9lKvfCOM+g4ne60PotFGk/vME8ykLUdXVU5r+5cp5BA/rIV9CJg5FlplJ4tWL8jTGfYagVaMO4Wt/IGT8EGKP7qeC50i0a9cvNJ5zFy7yy6Zf6d2zO+tW/4iNtRXTZs5GWsD5vGjZcjxatmD96lU0cHdjzoJFPM05nwEqmZszathQNq5dw8ofllKxYgWmzpxNbJzye2phjt+8z4q9Jxna5kt+mzYIh0oVGbH6N2Lik5Sm19XWZNDXX+A9sT9/zBhMe/cazPY+yJ8Pgt9r/yVNJiuZ5b/qoxQsa9WqhYWFBb6+vvJ1vr6+WFpaUrNmTfm6d5vCraysWLRoEQMGDEBHRwdLS0s2btwof//dpvBz584hkUg4fvw4NWvWpGzZsnz11VdERkZy9OhRnJ2d0dXVpWfPnvJnZr7Zz6pVqxRidnV1Zc6cOfLXEomEzZs307FjR7S0tLC3t8fPzy/PZzUyMsLExES+6OnpyeM6evQotWvXRkNDg0uXLpGVlcXixYuxtrambNmy1KhRgz179ijkd+TIERwcHChbtixNmzbFy8sLiUQi/6M4Z84cXF1dFbZZtWoVVlZWCus2b96Ms7MzmpqaODk5sW7dujzH0dfXl6ZNm6KlpUWNGjW4cuWKQh6XL1+mSZMmaGlpYWBgQKtWrZBKpXh7e2NkZERqaqpC+g4dOtCnT588x+hD7fY7SrsWTWnTrDHWFpWYMGwAmhoaHD59Xml6Z3tbRnr2pPmX7pQpgR8h26/8TadajnSo6YBtBQNmtP0CTXU19t9RXoMBkJmVxTTf8wxvWotKBnl/PLWubkt9W3MqGepiV8GACa3qkZiazuMIaaHx+O7bh4eHBy1btqCypSWjR41CQ0OT4ydOKE2//4AfdWrXpmuXzlhaWtKvbx/sbG3xO3hInqZ5s6/o1bMnNWu6Fn5A8sSzHw+PVrRq0ZzKlpaMGTUCDU0Njp84qTwePz/q1K5F186dsLS0oF+f3tjZ2nLgUHY82traLFk4n8ZffolFpUo4OzkxcvhQHgcFERkZ+a+LZ8fxi3RsXI/2X9bFxrwi0/t1RLOMOgcu3FCafuGwHnRr5o5jZTOszSowa0AXZDIZ1x8EKaSLlMaxzOcAC4d1R01VtdA43odMJmP//v10794dd3d3rK2tmTB+PNHR0fz5zv3iU4g6foFHs1cRceDUR9uHQZtOxJ85Rvz5k6S9CCXy1zXI0lLRbdJKafqspEQy46TyRataTbJSU0i4dkGepqyDC/EXTvE64B4ZryKIO3OU1H+eoGlbeA3h3n0H+Nqjpfx8His/n5Ufg/1+B6lbuxbdcs5nzz69sbO1we/QYXmar5o0plZNV0xNTbCqbMnQwQNJTk7m6dOQ4h2sHNtPX6PTFzXp0MAVW1NjZvRojWYZdfZf8Veavq6DFV+5OmFjWh4LY0N6fVUPe/OK3Al69l77Fz4vH62P5YABA9i6dav89ZYtW+hfhNqQFStWUKdOHe7cucOIESMYPnw4gYGBBW4zZ84cfv75Z/7880+ePXtGt27dWLVqFTt37uTw4cOcOHGCNWvWFPszzJ07l27dunHv3j1at25Nr169iImJKfL2U6ZMYcmSJQQEBFC9enUWL16Mt7c3GzZs4P79+4wbN47evXtz/nx2AenZs2d06tSJdu3a4e/vz6BBg5gyZUqx496xYwezZs1i4cKFBAQEsGjRImbOnMm2bdsU0k2fPp0JEybg7++Pg4MDPXr0kNes+vv706xZM1xcXLhy5QqXLl2iXbt2ZGZm0rVrVzIzMxUK2pGRkRw+fJgBAwYUO96CpKdn8Cj4KbVrVJWvU1FRoU71qtwPfFyi+1K6/4xMAl5GU9/G7K39S6hvY8a951H5bvfLeX8MtDXpVCv/5qq397H3ViA6GmVwqGhYcNr0dB4HBVHzrR8XKioq1HR1JeDhQ6XbBDx8mKfAWLt2rXzTF8ebeGq51sgTz4OHyq/bgIcPFeIHqF2rZoHxJCUlI5FI0C5X7t8VT0YGASEvcHOxV4jHrYod94JDC9z2jZTUdDIyM9HV1pKvy8rKYsbG3fT9ujG25iZFyud9hIeHI5VKFY6PtrY2jo6OPAwI+Gj7LTWqamha25P0953cdTIZSX/foay9c5Gy0GvSioQr55G99cP79aMHlKtdHzWD7K4TZV2qU8bUnOR7twrMK//rvUa+5+eDhw+p+db5D1CnVv7Xe3p6OkeOHkdbWxsbJd27CpOekUlAaBhuTrnbqqhIcHOy4t6TF4VuL5PJuPbwKSER0dSytyw0/aeQJZOUyPJf9dHalHv37s3UqVP555/s6vfLly+za9cuzp07V+B2rVu3ZsSIEQBMnjyZH3/8kbNnzxbYf2zBggV88cUXAAwcOJCpU6cSHByMjY0NAF26dOHs2bNMnjy5WJ/B09OTHj16ALBo0SJWr17N9evXFR7U3qBBA1RUcsvnFy/mNn/MmzePFi1aANnNaYsWLeLUqVO4u7sDYGNjw6VLl/jll19o3Lgx69evx9bWlhUrVgDg6OjIX3/9xdKlS4sV9+zZs1mxYgWdOnUCwNramgcPHvDLL7/Qr18/eboJEybQpk0bILsQXaVKFYKCgnBycmLZsmXUqVNHoaazSpUq8v/37NmTrVu30rVrVwB8fHywtLSkSZMmxYq1MHEJCWRmZWGop9gMZaCvyz8vXpbovpSRJqeSKZNhVK6swnoj7bI8fRWrdJvb/4Sz7/Yjfh/WocC8zweGMnnPOVLSMyivo8WGvq0w0NYscJv4+HiysrLQf6eJX19fn2fPlP/al0ql6OvnTS+VFl47Whh5PPoGCusN9PV59ux5PvHEYvBOPAb6+kilsUrTp6Wl8etWL5o0boS2lpbSNJ9rPLEJyTnnr2IB1FBXh5Cw/H+YvG31H0cw1tfFzcVOvs7ryHnUVFTo0eKLIuXxvt6cIwYGeY9nSZw/nxtVXV0kqqpkxsUqrM+Mi6WMmfI+rm/TtHVAw9KaiI0/KqyP8lpPhcFjsFm3A1lGBjJZFhGbfuL1w78LzO/N+azs/Hz2THmhTdn5rK+vT8w739fV6zdYtPQHUlNTMTQ0YMmCeejpFb9LhTQxmcwsGUa62grrjXTLERIRne92Ca9TaDn1J9LTM1FRkTCtx9e4O9sUe/8fw3+5GbskfLSCpbGxMW3atMHLywuZTEabNm2KNOimevXczrsSiQQTE5NCm5ve3qZixYpoaWnJC5Vv1l2/fr3Yn+HtfLW1tdHV1c0Ty+7du3F2zv0la2FhIW9SrlMnt7N0UFAQycnJ8oLmG2lpafLuAQEBAbi5uSm8/6YQWlRJSUkEBwczcOBABg8eLF+fkZGB3juFs7c/n6mpKZBd8+jk5IS/v7+80KjM4MGDqVu3Li9evMDc3BwvLy88PT2RSPL/lZaampqn+Tw1LQ2NMmWK9Rk/Z0mp6Uzfd4HZ33xRaCGxrrUpvw/rQGxyCntvBzLxj7P4DGqXpxD7X5aRkcHCxUsBGaNHjijtcD55PFsPneX4tbtsnDIUjTLZAx0fhDzntxOX2Dl3bIHX2/s4c/asQuvO3Lkfry/j/yPdJh6khj7NM9BHv9U3lLVz5sUPs0l/FYmWU1Uq9h9JpjSG5LdrRz+hGtWrsX7NKuLj4zly7AQLlixl9crleQqlH4u2hga7pw0mOTWN64EhLN9zEvPy+tR1sPok+xc+no86CmbAgAGMGjUKQOmgFmXeHSUukUjIysoq8jYSiaTQPFRUVJC985MkPT39vWKxsLDAzs4OZbS1c3/BJSZmd9Q/fPhwntGUGhoaSrdXprDY3+xn06ZNeQqpqu/0w3r3uAHyz1e2bMGFm5o1a1KjRg28vb1p2bIl9+/f5/DhwwVus3jx4jx/qCaMGMzEkUPy3UZPRwdVFRVi3ulULo2Nx0hfeWf6kmSgpYGqRJJnoE500mvKl8tbW/UsJp6XsYmM2Znb/ykr5/uqNXcrB0Z3xsIwu1ZAq4w6lkbqWBrpUt2iAu1W72H/nUcM/LJGnnzf0NXVRUVFhdh3atNiY2MxMDRQuo2BgUGegSuxsbF5aqHehzyeWMXaEGkB+RsY6OcZeJCdXl9hXUZGBguXLCUiKpJlixYWWjv4Ocajr6OVc/4qDtSJiU/ASK/ggYveR8+z9fA5NkwajIOFqXz9ncCnxCQk0Xr8Yvm6zKwsftx1mJ0nLnN4RfG7z7xR380Np7dah97cW6RSKYaGud00pLGx2Np8HrVLJSkzPh5ZZiaqevoK61X19MmMLbiGVqKhgU6DxkT/4a24Xr0M5bt78nLlfJLuZFdwpIU+RaOyLQZtOxdYsHxzPis7P/MbmKjsfI6NjcXwnfO/rKYm5mZmmJuZ4ezkhOfgoRw7cZIe3fKvUFC6v3JaqKpIiH5noE50fCLldfPvKqKiIsGyQvY55WRhwtOwV2w59udnUbAUNZYf5qPOY+nh4UFaWhrp6em0aqW843NpMDY2JiwsTP46Pj6ep0+fftR9uri4oKGhQWhoKHZ2dgqLhUV2E4uzs3OemtWrV6/miT08PFyhcPn2vJ4VK1bEzMyMJ0+e5NmPsumR8lO9enVOny54Go9Bgwbh5eXF1q1bad68ufxz5Gfq1KnExcUpLGMGexa4jbq6Gg621ty6d1++Lisri1t//U0VR/sCtiwZ6mqqOJsZce1pbrN7VpaMa09eUl3JdEPW5fXYM7wju4d1kC9NHC2pa23K7mEdMHmnuehtWTIZaRmZBcejro69nR3+d/3fiicLf39/nJ2clG7j7OSEv/9dhXW379zJN31xvInnjv+9d+K5i0s+U5c4Oznhf/fdeBTjf1OIe/HyJUsWLkBXt2hNdJ9dPGpqOFuZKwy8ycrK4vqDIKrb5t+fzOvIOTb7nebn8QNwsa6k8F6bL2qxe/53/DZvrHwx1tel79eNWTthYJHiyo+WlhZmZmbyxdLSEgMDA4Xjk5ScTGBgIE7ORetz+K+SmUHK08doVXXNXSeRoFXFldePC+5TquPWCImaOvGXziisl6ipIVFTR/ZOpYQsKwsKqXGWX+9vXb/Z5/O9fK9fFycn7ty9p7Du3fNZGVmWTGkFS2HU1VRxtjTlemDu39CsLBnXA0OoblP0Kamy73+fx+wpWbKSWf6rPmqNpaqqKgE5HbzfrS0rTV999RVeXl60a9cOfX19Zs2a9dHj09HRYcKECYwbN46srCwaNmxIXFwcly9fRldXl379+jFs2DBWrFjBxIkTGTRoELdu3cLLy0shnyZNmhAVFcWyZcvo0qULx44d4+jRowp/6ObOncuYMWPQ09PDw8OD1NRUbt68iVQq5fvvvy9SvFOnTqVatWqMGDGCYcOGUaZMGc6ePUvXrl3lXRp69uzJhAkT2LRpE97e3oXkmF0z+27tbEoRmsG//eZrFq3+BSdba5ztbfnj0DFep6TSulljABb8tJ7yhgYM69MdyB7wE/I8uz9dekYGUdFSHj8NoaymJpVMiz/QoY97VWbuu0gVs/JUNTfG5+p9Xqdn0KFm9sCc6b7nqaCrzdjmddBQV8O+omLNgI5m9md8sz45LZ3NF+7SxNGS8jpaxCansOt6AJHxybSoUnjhv1PHjixfuRJ7e3scHRzYd+AAKakptMzpZvHD8hUYGRkxoL8nAB3af8PEyVPY6+tLvbp1OXf+Ao8fBzF29Gh5ngkJCURGRhKdMzjt+fPs/lsGBgYKNVXK4+nA8pU/4mBvlxtPSgotW2TP27lsxUrKGxkxwDO7f2+Hb75h4pSp7PHdR726dTh/4SKPg4L4bnR260ZGRgbzFy0hKDiYebNnkZWZRUxMdm2Rjk65Que+/dzi6dXqS2Zv+h0X60pUsanEzhOXeJ2azjdfZneVmblxNxUMdBndNXuuVa/D51i/7wSLhvbArLwhr2ITANDSLIOWpgb65bTRL6f4A0VNVRUjvXJYmRY+t2pxSCQSOnTowK5duzA3M6NixYps374dIyMjGhSzm05JUNXWQtsut0CuZV0J3RpOpMXEkfIsrIAti0562BeT4RNIffKYlKBA9L/uiIqGJvHns2ddMBk+gQxpNK92bVXYTrdpKxJv/klWYoLC+qzXySQ/uIdxr0FEpqWR/ioCLefq6DZqRtT2jRSmc8f2/LByFfb2djg5OOB7wI+UlBRatWgGwLIVP2JkZMhA+fncjglTpuWcz3U5d+ECj4KCGDt6JACvU1L4bffvuLvVw9DQkLi4eA4ePsyr6GgaNWz4XsesTzM3Zm7zw8XSlKpW5uw4c43Xqem0d89ufZnhdYAK+jqM6fAVAL8eu4xLZVMsyhuQlpHJpftBHL72F9N6fNh8w8Ln4aNPCFnUX/af0tSpU3n69Clt27ZFT0+P+fPnf/QaS4D58+djbGzM4sWLefLkCfr6+tSqVYtp06YBYGlpyd69exk3bhxr1qyhXr168umX3nB2dmbdunUsWrSI+fPn07lzZyZMmKAwLdOgQYPQ0tLihx9+YOLEiWhra1OtWrViPeXIwcGBEydOMG3aNOrVq0fZsmVxc3OTD2YC0NPTo3Pnzhw+fJgOHTp88PHJT7OG7sTGJ/Drrj3ESOOws67M8lmTMcxpCo+Iilboa/ZKKmXA99Plr3cdOMyuA4dxreLMmgUzir1/j6o2SJNSWHf2Nq8SX+NoYsi63i3lfSHD45JQKUZfN1WJhKev4vC7e4bY5BT0y2pQxdyYrQNaY1eh8Obpxo0bERcfx/btPtkTpNvYsGDePHlTb2RUFBKV3HhcXFyYPGki27y34+W1DTNzc2bNnKEwRdWVq1dZ+eMq+evFOQPGevXsSZ/evQqMp0mjL4mLi8PbZ4c8noXz5srjiYqKUjg+VVycmTJxAtu2++C1zRszczNmz5iOlVVlAF5FR3P12jUARoweo7CvZYsXUaN6tX9VPK3caiBNSGL9vhNExyXgaGnGz+MHyJvCw6NjFeL548xV0jMymbhW8UELQ9o3Z1hHxT7an0LXLl1ISUlh9Zo1JCYmUqVKFebPm0eZUugbrVe7Ku6nt8tfuyzPvnc+8/bl3sCpJbKPxKsXeKWrh1GXPqjqG5D6zxNeLJkhH9CjVr5Cnu5I6qaV0HKqyvNFymMIW72Y8t37YzpqEirldMiIiuTV7m3EnSq4+xC8fT7vfOt8nqN4vb9zPk+dOB6v7TvYum07ZuZmzJkxDeuc81lVRYVnz55z8vQZ4uPi0dHVxdHejpXLlmBV+f1GZbeqUwVpYjLrD53nVXwSjpUqsm50D4xymsLDYuIUYnydmsai344SGZuAhroaViblWdi/Pa3qVMlvF5+U7D88orskSGTvXiHCZ+XcuXM0bdpU6cjez0GzZs2oUqUKq1evfq/tIx/cLOGIPozu3ZJ/iseHCKvXubRDUCCRFdzf+b/OOOpBaYegIKJCwYXeTy3AqXVph5CHfZfiT7HzMWnM/6m0Q1BQIbT4A18/prJflfxcye/yVj5FcrH1bVwy+fzbfD6PsBH+VaRSKefOnePcuXMKUxIJgiAIwr/Zf7l/ZEkQBUvhvdSsWROpVMrSpUsLnGNUEARBEIT/DlGw/Mw1adIkT3+ez8Hbz5kWBEEQhP8Xn+Gf3H8VUbAUBEEQBEHIIQqWH+ajzmMpCIIgCIIg/HeIGktBEARBEIQcYvDOhxEFS0EQBEEQhByiKfzDiKZwQRAEQRAEoUSIGktBEARBEIQcWeI5EB9EFCwFQRAEQRByiKbwDyOawgVBEARBEIQSIWosBUEQBEEQcogayw8jCpZCqSoXFVTaISgqW7a0I1CgkZFc2iEoSFLTK+0QFKjLUks7BAUyFdXSDuGzZt/FurRDyOPxnqelHYKC6vMySzsEBTJ1zdIO4ZMT0w19GFGwFARBEARByFFyj1GWlFA+/y6ij6UgCIIgCIJQIkSNpSAIgiAIQg7Rx/LDiBpLQRAEQRCEHFlZJbN8LDExMfTq1QtdXV309fUZOHAgiYmJBW7TpEkTJBKJwjJs2DCFNKGhobRp0wYtLS0qVKjAxIkTycjIKHZ8osZSEARBEAThX6JXr16EhYVx8uRJ0tPT6d+/P0OGDGHnzp0Fbjd48GDmzZsnf62lpSX/f2ZmJm3atMHExIQ///yTsLAw+vbti7q6OosWLSpWfKJgKQiCIAiCkONzbgoPCAjg2LFj3Lhxgzp16gCwZs0aWrduzfLlyzEzM8t3Wy0tLUxMTJS+d+LECR48eMCpU6eoWLEirq6uzJ8/n8mTJzNnzhzKlClT5BhFU7ggCIIgCEKOLFnJLB/DlStX0NfXlxcqAZo3b46KigrXrl0rcNsdO3ZQvnx5qlatytSpU0lOzp3O7sqVK1SrVo2KFSvK17Vq1Yr4+Hju379frBhFjaUgCIIgCEIJS01NJTVVca5dDQ0NNDQ03jvP8PBwKlSooLBOTU0NQ0NDwsPD892uZ8+eVK5cGTMzM+7du8fkyZMJDAzE19dXnu/bhUpA/rqgfJURNZaCIAiCIAg5ZLKSWRYvXoyenp7CsnjxYqX7nDJlSp7BNe8uDx8+fO/PNGTIEFq1akW1atXo1asX3t7e7Nu3j+Dg4PfOMz+fdY2llZUV3333Hd99911phyIIgiAIwn+ArITasadOncr333+vsC6/2srx48fj6elZYH42NjaYmJgQGRmpsD4jI4OYmJh8+08q4+bmBkBQUBC2traYmJhw/fp1hTQREREAxcoXilmw9PT0ZNu2bQwdOpQNGzYovDdy5EjWrVtHv3798PLyKlYQ+blx4wba2tolkldJCwkJwdo67+PJevXqhY+PTylE9P9l99lrbDvxJ9FxiThUqsjkHq2pal1JaVrfizc5dOUuQS+zLzZnSzNGd2ymkD45JZXVvqc46/+QuKRkzMob0OMrN7o2rlukeHb9+RfbLtzhVUIyDqZGTGnfiGoWFZWmPfV3ML+eucWz6DjSM7OoXF6PPo1q0q6WozxNdEIyq45e4cqjUBJS0qhlbcaU9l9Subx+keLZd/gYu/f5ESONxda6MmOGDMDZwT7f9OcuXWHLjl2ER0ZRycyEIf16U79OLfn7Tb/pqnS7oZ696d6pfaHxyGQydvh4c/zYUZKSEnF2qcKIkWMwNzcvcLtDB/3w3fsHUmkM1tY2DB0+EkdHJwASEuLZ4bOdO7dvERUViZ6eHvXdG9C7j2eh9wW/Q4fZs9eXGKkUG2trRgwbipOjQ77pL1y8xDYfHyIiIjE3M2Ngf0/q1c3uw5SRkYGXtw83bt4kLDwcbW1tarrWYKBnP4yMjAo9NgC/n7qM95FzRMclYG9hyqQ+Halqa6k0re/Zqxy+fIvg59nNT85WlRjZ9Wt5+vSMTNbvPcqluw95ERlNOa2yuFWxZ3S31hgblPwjN2UyGdt9fDh27BhJSUm4uLgwauTIQr/b4tBr0Q7Ddl1Q1TMgNfQJUV7rSAl+pDRtpZnL0HKpnmd94p3rvFw2CwCJhibGPQagXccdVR1d0iPDiT1+gLhTR0osZgDDhnWwGT8QvVpV0TSrwM3OI4jwO12i+wA4cOgIv/vuz7nerRg1dFCB5/P5S5fx8vmN8IhIzM1MGezZF7e6tZWmXfXzeg4dO8HwwQPo3L5dkeLZfeYq245fyr4/W5gwuUdbqtrkc3++cINDV/wJepFdSHGubMboji3zpH/yMpKf9p7g9qOnZGRmYWNWgeXDe2BqpF+kmD5HxWn2NjY2xtjYuNB07u7uxMbGcuvWLWrXzv5Oz5w5Q1ZWlrywWBT+/v4AmJqayvNduHAhkZGR8qb2kydPoquri4uLS5HzhfdoCrewsGDXrl28fv1avi4lJYWdO3diaan8Rvm+jI2NFYbDf45OnTpFWFiYfFm7dm2eNDKZ7L3mgvqvOn7jb1b8cZyhbZuwc8ZQHCxMGPHTdmLilc/TdTMwBI961dg03pNtkwdhYqjL8FXbiZTGy9Os+OM4f94PYuHATvjOHUWvZvVZ+tsRzvkX3rRw7O5jlh+6xNBmddk1phuOpuUZ/utBohOVP8dbr6wmg76qg/eIzuwZ1532dZyZ/cdpLgeGAtnnw3feR3geE8eqfq3ZPbYbpvrlGLrpAMlp6YXGc+biZdb/uo1+3buy8cel2FpVZtLshUhj45Sm/zsgkPnLV9G6xVdsWrWMhm71mLloGU//CZWn2btto8IyacwIJBIJjRrULzQegL17fueg335GjhrDih9Xo6mpyayZU0lLS8t3mwvnz7F50y/06Nmbn9asw9rGhlkzpxEbKwUgOjqamOhoBgwazNr1G/lu3ARu3bzJT6tWFBjLuQsX2bhpM7169mDt6lXYWFszfeYsYmNjlaa//yCAxct+wKNlS9at/okG7vWZu2AhISH/ANn9pIKCg+nZ41vWrl7FrOlTef78BbPnLSjSsTlx1Z+VO/0Y0qEFO+Z9h4OlGaN+2ERMfILS9LceBtOqviu/TB3G1lmjqWikx8gfNhIZk/39pqSl8TDkBYPaN2fH/HEsH9OPkLBIxv24tUjxFNcfe/bg5+fH6FGjWPXjj2hqajJj5swCv9viKFe/EcZ9BhO914fQaaNI/ecJ5lMWoqqrvJD8cuU8gof1kC8hE4ciy8wk8epFeRrjPkPQqlGH8LU/EDJ+CLFH91PBcyTatYt2PheVqrYW8fcC+XvM3BLN921nL1xiw+at9OnxLRt+WoGNtRVTZs1Dmt/5HPCQhctW4tGiGRtWr+CL+m7MXriEpznn89su/XmVgMBHGBkaFjme49f/YsXvRxnarik7Z43Ivj+v8irg/vwUj3rV2TRhINumDsXEQI/hP3op3J+fRUYzYOkmrE3Ks2niQH6fM4rBbZugoV46jaqf8+AdZ2dnPDw8GDx4MNevX+fy5cuMGjWK7t27y0eEv3jxAicnJ3kNZHBwMPPnz+fWrVuEhITg5+dH3759adSoEdWrZ/9Ia9myJS4uLvTp04e7d+9y/PhxZsyYwciRI4vdJ7TYBctatWphYWEh7/AJ4Ovri6WlJTVr1pSvO3bsGA0bNkRfXx8jIyPatm2r0Jbv7e1NuXLlePz4sXzdiBEjcHJyko9UsrKyYtWqVfL3JRIJv/zyC23btkVLSwtnZ2euXLlCUFAQTZo0QVtbmwYNGijsx9PTkw4dOih8hu+++44mTZrIXzdp0oTRo0fz3XffYWBgQMWKFdm0aRNJSUn0798fHR0d7OzsOHr0aJ7jYWRkhImJiXzR09Pj3LlzSCQSjh49Su3atdHQ0ODSpUtkZWWxePFirK2tKVu2LDVq1GDPnj0K+R05cgQHBwfKli1L06ZN8fLyQiKRyP8ozpkzB1dXV4VtVq1ahZWVlcK6zZs34+zsjKamJk5OTqxbt07+XkhICBKJBF9fX5o2bYqWlhY1atTgypUrCnlcvnyZJk2aoKWlhYGBAa1atUIqleLt7Y2RkVGeTskdOnSgT58+eY5Rcfmc/JNODWvT/oua2JpVYHqvtmiWUWf/5TtK0y8a1IVuTerhaGGKtakxs/q2RyaTce3hE3mau8HPaOtegzqO1piVN6Bzozo4VKrI/ZAXhcaz/aI/nepVoUNdZ2wrGjKjYxM01dXYfyNAafq6tuY0q2qDTUVDLIz06NWwBvYmRtwJCQPgn1dx3AuNYHqHxlS1qIiVsQEzOjYhJT2TY/6Pleb5tj8OHKJNy2Z83bwpVpYWfD9iCJoaZTh66ozS9HsPHqZeLVe6d2pPZYtKDOjdHXsbG/YdPiZPY2hgoLBcvnYD12pVMDNRXiv7NplMxoH9+/i2e0/quzfA2tqG78dPIiY6mitXLue73f59e2nl8TUtWrbC0rIyI0eNRUNDg5MnjgNgZWXNtBmzcHNzx9TUjBquNenbrz/Xr10jMzMz33x99+3Hw6MVrVo0p7KlJWNGjUBDU4PjJ04qj8PPjzq1a9G1cycsLS3o16c3dra2HDh0CABtbW2WLJxP4y+/xKJSJZydnBg5fCiPg4LyNEkp43PsPB2buPFNo3rYmJswzbMzmhrqHDh/Q2n6hcN70a35FzhWNsfarAIzB3ZDliXj+oPsc0NHqyzrJg+lpZsrVqYVqGZXmcl9OxIQ8pywV9JC4ykOmUzG/v376d69O+7u7lhbWzNh/Hiio6P58537xfsyaNOJ+DPHiD9/krQXoUT+ugZZWiq6TVopTZ+VlEhmnFS+aFWrSVZqCgnXLsjTlHVwIf7CKV4H3CPjVQRxZ46S+s8TNG0dleb5vqKOX+DR7FVEHDhVovm+be9+P1q3aoFHi2ZUtrTgu5HD0NDQ4NhJ5TWjvn6HqFu7Jt927khlCwv69+mJna0NBw4p1ta+ehXNz79sZuqEcaipqRY5Hp+Tl+n0ZR3aN6ydfX/u/U32/fnSLaXpFw3uRrembjha5tyfPTtm358Dcv9O/7zvFA2rOfBdVw+cLM2wqGBEE1dnDHXLFTmuklRSfSw/lh07duDk5ESzZs1o3bo1DRs2ZOPGjfL309PTCQwMlJelypQpw6lTp2jZsiVOTk6MHz+ezp07c/DgQfk2qqqqHDp0CFVVVdzd3enduzd9+/ZVmPeyqN5r8M6AAQPYujX31/GWLVvo37+/QpqkpCS+//57bt68yenTp1FRUaFjx45k5UxH37dvX1q3bk2vXr3IyMjg8OHDbN68mR07dhRYSzl//nz69u2Lv78/Tk5O9OzZk6FDhzJ16lRu3ryJTCZj1KhRxf5M27Zto3z58ly/fp3Ro0czfPhwunbtSoMGDbh9+zYtW7akT58+CsPzCzNlyhSWLFlCQEAA1atXZ/HixXh7e7Nhwwbu37/PuHHj6N27N+fPnwfg2bNndOrUiXbt2uHv78+gQYOYMmVKsT/Ljh07mDVrFgsXLiQgIIBFixYxc+ZMtm3bppBu+vTpTJgwAX9/fxwcHOjRo4e8ZtXf359mzZrh4uLClStXuHTpEu3atSMzM5OuXbuSmZmJn5+fPK/IyEgOHz7MgAEDih3v29IzMggIDcPN2Ua+TkVFBTdnG+49eVakPFLS0snIzERPu6x8XQ1bC87fDSRSGo9MJuPGw6f8ExFNfRfbQuLJJOBFFPXtc5ttVFQk1LerxL3QwkfKyWQyrgU9IyQqltrWZvI8AYVf4yoqEsqoqcoLn/nGk57Oo6An1HbNbQpUUVGhVo3q3H+ovOnwwcNH1K6h2HRYt1aNfNPHSGO5evM2rVt8VejnA4gID0cqjcHVNbdpXVtbG0dHJx4GKC98p6enExT0GFfX3B+jKioquLrW5OFD5dtA9n1FS0sLVVXlfwjT09N5HBRELdcaCvnWdHXlwcNApdsEPHxIzXd+rNWuVZOAAjrKJyUlI5FI0C5X8B++9IwMHoa8oF6V3GZLFRUV6rnY81dQ3hokZVJS08jIzERXO//7YmJyChKJBJ23zvmSEB4ejlQqVTg+2d+tY77fbbGoqqFpbU/S32/9aJTJSPr7DmXtnYuUhV6TViRcOY/srR+6rx89oFzt+qgZZHdVKOtSnTKm5iTfU174+VxlX+/Bec7nWq7V8z2fHzwMVEgPULeWKw/eut6zsrJYsnIV3Tq1x6py0Vsa0zMyCPjnJW5v3Tez78+2731/zsrK4tK9QCwrlmfEj158NW4xfRZu4OydB0WOq6RlZclKZPlYDA0N2blzJwkJCcTFxbFlyxbKvXUvsrKyQiaTySvQLCwsOH/+PNHR0aSkpPD48WOWLVuGrq6uQr6VK1fmyJEjJCcnExUVxfLly1FTK36t8XvVM/fu3ZupU6fyzz/ZN8bLly+za9cuzp07J0/TuXNnhW22bNmCsbExDx48oGrVqgD88ssvVK9enTFjxuDr68ucOXPkfQby079/f7p16wbA5MmTcXd3Z+bMmbRqlf3rduzYsXkKuUVRo0YNZsyYAWR3uF2yZAnly5dn8ODBAMyaNYv169dz79496tfPbU5p0KABKiq55fOLF3ObY+bNm0eLFi2A7Oa0RYsWcerUKdzd3YHsjriXLl3il19+oXHjxqxfvx5bW1tWrMhu6nN0dOSvv/5i6dKlxfoss2fPZsWKFXTq1AkAa2trHjx4wC+//EK/fv3k6SZMmECbNm0AmDt3LlWqVCEoKAgnJyeWLVtGnTp1FGo6q1SpIv9/z5492bp1K127ZvfN8/HxwdLSUqEm+H1IE5PJzMrK80vVSKccIWGvipTHT3tPYqyno1A4ndy9NfN9/Gg1eQVqKipIVCTM7PMNtR2sCo4nOYXMLBlG5RT/qBvpaPE0Kv/aoYTXqbRY5EV6RhYqKhKmdWiEu4MFAFYV9DHVL8fqo1eY2akJZcuos/3SXSLiEomKTyownrj4BLKysjDQV2wmNNDXI/SF8trXmNhYJen1kUpjlaY/fuY8WmU1aeRetP46UmkMAPoG+grr9fUNiJUqP0bx8fFkZWWhb2CQZ5vnz5T/gYqLi2PXbzvw+Lp1vrHI89VXzNdAX59nz57nE38sBvr6edLnd3zS0tL4dasXTRo3QruQrjqxCUlkZmVh9O75rKdDSFjhtZ0Aq3cfpryBHm5VlPehTU1LZ/Xvh2lV35VyZTWLlGdRSXO+PwODvMdTms93WxyqurpIVFXJjItVWJ8ZF0sZM4tCt9e0dUDD0pqIjT8qrI/yWk+FwWOwWbcDWUYGMlkWEZt+4vXDvz845k8p/+tdn2fPlV/vys5nfX19YmJzv69de/ahqqpKx2/aFiuefO/PuuUICS/i/XnPcYz1deSF05iEJJJT09h69AIjOzRnbOdWXP77EePX/cbGCQOo45h3LIPweXuvgqWxsTFt2rTBy8sLmUxGmzZtKF++vEKax48fM2vWLK5du8arV6/kNZWhoaHygqWBgQG//vorrVq1okGDBkWqnXvTHwBy51iqVq2awrqUlBTi4+PzlMaLmq+qqipGRkZ58gXyNH3t3r0bZ+fcX9YWFhbyJuW3JzANCgoiOTlZXtB8Iy0tTd6FICAgIE/n2zeF0KJKSkoiODiYgQMHygvFkD0AQU9P8eb09md+04E3MjISJycn/P395YVGZQYPHkzdunV58eIF5ubmeHl54enpiUQiyXcbZXN6Zaalo1FGvVifsSBbjl7k+I2/2TTBEw313Hx3nb3GX0+es2pkT0yN9Lj96B+W7DyMsZ5OobWW70Nbowy/j/2W5LR0rgU9Z8Why1Qy1KOurTnqqqqs7PM1c/ac4cu5v6KqIsHNzoKGjpafxRMfjp46Q/PGX+b7pIWzZ0+zds1P8tez5xatr+GHSE5OYu7sGVhaWtKz14d3t3hfGRkZLFy8FJAxeuSIj76/rQfPcOKaPxunDld6naRnZDJl7XZkMpjq2VlJDsVz5uxZ1qxZI389d+7H6ztYEnSbeJAa+jTPQB/9Vt9Q1s6ZFz/MJv1VJFpOVanYfySZ0hiS364d/Q96FBTMPr9DrP9pRYH3649hy5HzHL/+F5smDpTfn7NybnpNXJ3p3fILABwtTbkb/Iw956+XSsHyc7gP/5u9d8/YAQMGyJuclQ1YadeuHZUrV2bTpk2YmZmRlZVF1apV83T4vnDhAqqqqoSFhZGUlISOjk6B+1V/q7Dw5qJQtu5NQVZFRQXZO2dJenreARJv5/Emn4LyfcPCwgI7Ozulsb49cvXNA+IPHz6cZzRlcTrGFvZ53uxn06ZNeQqp7zYfFvT5ypYtuEmtZs2a1KhRA29vb1q2bMn9+/c5fPhwgdssXrw4zx+qaf06M71/F/lrg3JaqKqo5OkIHp2QiJFewc2O3icus/XYJTaM64tDpdzpEVLS0lmz7zQrh3fny+rZTZIOlUwIfB7O9pN/FliwNNDSRFVFkmegTnRCMuV18q+tUlGRYJkzwtvJzJinkVJ+PXuLurbZ371LpQr8/l13El6nkp6ZhWG5svT6+Q+qVKqQb54Aero6qKio5BmoI42Nw/CdWoo3DPX1laSPxcAgb/p79wN49uIlsyaNyzcGNzd3+chtyD3/YqWxGBrmjpKOjZVibaP82Orq6qKiopKnRjM2VorBOwMJkpOTmTVzOmW1tJg+c06BTTPyfGMV883+vAZKtzEw0M8zEELZ8cnIyGDhkqVEREWybNHCQmsrAfR1tFFVUSH63fM5LoHyegX/8PU+cg6vw2dYP2ko9pZ5H9P2plAZ9krKhinDSqS2sr6bG06Ouf0Q33y3UqkUw7e+F2lsLLY2Nnm2L67M+HhkmZmo6ukrrFfV0ycztuAaUYmGBjoNGhP9h7fievUylO/uycuV80m6kz14IS30KRqVbTFo2/lfVbDM/3pXfv2C8vM5NjYWw5xa/L/uPyA2Lo6e/XMrHrKysvjlVy98Dxxkx5aN5Cff+3N8Ee7Pxy+x9ehFNozvj4NF7v3ZoJwWaqoq2Jgpjoi2MTXmzuOidRcpaaJg+WHee4J0Dw8P0tLSSE9PlzdDvxEdHU1gYCAzZsygWbNmODs7K202+fPPP1m6dCkHDx6kXLly79U3sjDGxsaEhSn2W3szzP5TcnFxQUNDg9DQUOzs7BQWC4vsJh9nZ+c880hdvXpV4bWxsTHh4eEKhcu3P0/FihUxMzPjyZMnefajbHqk/FSvXp3TpwueNmPQoEF4eXmxdetWmjdvLv8c+Zk6dSpxcXEKy4ReilPZqKup4WxpqjDwJisri+sBT6luk3/+XscusenQedaO7U0VK8WCe0ZmJhmZmXl+natKJIX2g1FXU8XZ3JhrQbnNqFlZMq4FPae6ZdHn9sqSyUhXMuBEp6wGhuXK8s+rWB48j6KJS8Hfkbq6Og52Nty++9db8WRx+95fVHFSPv2Ii5MDt+/9pbDulv89pemPnDyNg50NdtZW+cagpaWFmZm5fLG0rIyBgSH+d3P/YCcnJxEY+BAnZ+X95NTV1bGzs+fuXX+Fz3HX3x8np9xtkpOTmDljKmpqasycNbfQ59Wqq6tjb2fHHf97Cvn6+9/FxUn5wA1nJyf8795VWHf7jj/OTrmF5zeFyhcvX7Jk4YIit4aoq6nhZGXOjfu5g7KysrK48SCIanaV891u2+GzbD5wip8nDMZFyXn/plD5LDyK9ZOHoq9TMtOyZX+3ZvLF0tISAwMDheOTlJxMYGBgvt9tsWRmkPL0MVpVXXPXSSRoVXHl9eOC+3DquDVCoqZO/CXFQWsSNTUkaurI3qkEkGVlwSeuoftQ2de7LbfvKp7Pd+7+le/57OLkqHD+A9y6cxeXnOu9edPGbFzzI7+sXilfjAwN6dqpPUvmzS44HjU1nCubcS3gnfvzwycF35+PXmTTobOs/a5fnvuzupoaLlbm/PNOU/o/Ea/+1VMN/Ze9d8FSVVWVgIAAHjx4kKcmzMDAACMjIzZu3EhQUBBnzpzJM0loQkICffr0YcyYMXz99dfs2LGD3bt35xkl/aG++uorbt68ibe3N48fP2b27Nn8/fen72ejo6PDhAkTGDduHNu2bSM4OJjbt2+zZs0a+aCaYcOG8fjxYyZOnEhgYCA7d+7MMydokyZNiIqKYtmyZQQHB7N27do8o9Xnzp3L4sWLWb16NY8ePeKvv/5i69atrFy5ssjxTp06lRs3bjBixAju3bvHw4cPWb9+Pa9e5V78PXv25Pnz52zatKlIg3Y0NDTQ1dVVWJQ17/Vu0YB9F2/j96c/T8KiWLTjEK/T0mj/RXaXgRlbfFntmzvCd+uxi6zzO8Psfh0wM9LnVVwCr+ISSE7JbnYvV1aT2g5WrNp7gpuBT3nxSorfn3c4dPUuTWs65dn/u/p86Yrv9Qf43XrIk4gYFuw7x+v0DDrUyf7DOn33KX46mjtC9tezt7jy6BnPo+N4EhHDtgt3OHz7EW1q5v4hOHEviBvBL3geHcfZ+08YttmPplWsaeBQeEf6ru3bcujEaY6dPsc/z57z4/pNpKSk4tGsKQCLflzDpm075Ok7t2vD9dv+/L7vIKHPX+C183cCg4Lp2MZDId+k5GTOX75KmxbNCo3hbRKJhPYdOrJ7106uXb1CyNOnrFy+DEMjI9zdv5CnmzZ1EgcPHpC/7tCxM8ePHeH0qRM8Cw1l3drVpKSm0LxF9g/V5OQkZk6fSmpKCmO/+57XyclIY2KQxsQUOCq8U8cOHD1+nJOnThMa+ow1a9eRkpJCyxbNAVi2YiVbvHIHsnX45htu3rrNHt99hD57xvYdO3kcFET7ttn9zzIyMpi/aAmPHgcxecIEsjKziImREhMjVdr68a7eHo3Zd/4aBy/e4OmLCBZv8+V1ahrfNMqeQ3XWL7+x5vfcEbteh86wfu8xZg/qhml5A17FxvMqNl5+PqdnZDJ5jTcBT5+xYHgvMrOy5GnSS3haM4lEQocOHdi1axdXr17l6dOnrFi+HCMjIxoUs5tOfqSHfdFr+jW6jZpTxsyCCgNGo6KhSfz5EwCYDJ9A+e55+83rNm1F4s0/yUpUnLYp63UyyQ/uYdxrEGWdq6NmXBHdRi3QbdSMxBt/lkjMb6hqa6FbwwndGtn3ES3rSujWcELTwrTE9tG5wzccOX6SE6fP8M+zZ/y07hdSUlLwaJ59nS5Z8RObvbbL03f6pi03bt/hD98DhD57zrYdu3gUFEz7ttl9k/V0dbG2qqywqKmpYmhggEWlwucm7d3iC/ZduInf5ds8eRnJIh8/Xqem0f6L7PERM37dw+q9J+Tptx69wLoDp5jt2Qmz8nnvzwD9Wn3J8Rt/VYNccQAAfWlJREFU43vhBqER0ew6c5ULdwPp1rReiRzD4sqSyUpk+a/6oEmi8vvVrqKiwq5duxgzZgxVq1bF0dGR1atXKwzsGDt2LNra2ixatAjI7ie5aNEihg4diru7e4lNvtuqVStmzpzJpEmTSElJYcCAAfTt25e//vqr8I1L2Pz58zE2Nmbx4sU8efIEfX19atWqxbRp0wCwtLRk7969jBs3jjVr1lCvXj0WLVqkUGhzdnZm3bp1LFq0iPnz59O5c2cmTJigMNXAoEGD0NLS4ocffmDixIloa2tTrVq1Yj3ByMHBgRMnTjBt2jTq1atH2bJlcXNzo0ePHvI0enp6dO7cmcOHD+eZ0ulDtKpbFWlCEuv9zhAdn4hjJRPWjukjHwARHhOHyls1D3+cv0l6RiYTf9mtkM/Qtk0Y9k12YWvJ4C6s2XeKab/uJT7pNaaG+ozs0KxIE6R71LBHmvSadSeu8SohGUez8qwb0BajnKbw8NgEhXhep6WzaP95IuIS0VBXw9rYgIXdm+NRI3fwRVRCEssPXSY6MRljHS3a1nJiaLM6efatzFdffkFcXDxeO3dnT5hsY8XSOdMxzGkai4x6pRBPVWdHZowfy5Ydv7F5+07MzUyZP20S1u+MBj1z4TIymYyvGn1BcXXu0o2UlBTWrFlFUmIiLlWqMm/eIoUaxvCwMOLjcpv0GjVuQlx8HD7bvZFKpdjY2DBv3kJ5k3VQUBCBgdkjswcP9FTY369bvalYUXmNcZNGXxIXF4e3zw55vgvnzZXnGxUVpXB8qrg4M2XiBLZt98Frmzdm5mbMnjEdK6vsGsVX0dFcvXYNgBGjxyjsa9niRdSoXo2CtKzvijQhkQ2+x4mOS8DB0ow1EwdhpJfd7Sc8WqpQm77nzBXSMzKZtEaxiXdIhxYM7dSKKGkc5+/cB6DHDMUfi79MHUYdZ+Vdc95X1y5dSElJYfWaNSQmJlKlShXmz5tXaO1xUSVevcArXT2MuvRBVd+A1H+e8GLJDPmAHrXyFfJ0/1E3rYSWU1WeL5qqNM+w1Ysp370/pqMmoVJOh4yoSF7t3kbcqYK76xSXXu2quJ/OLdS5LM++lz/z9uXeQOWxFVfTRg2zr3efXUilUmxtrFk8b5a8KTwyKgoVlbfOZ2cnpk0cx9btO9ni7YO5mSlzp0/B2ir/GvLiaFWvGtLEJNYfOJ19f7YwZe13/eRN4eHRsYr353PXs+/P639TyGdou6YMa59dOP6qlgvT+3zDliMXWPbbYSqblOeH4T2oaW9VIjEXlyyr8DRC/iSyd69Y4bNy7tw5mjZtilQqRT+fPnSlqVmzZlSpUoXVq1e/1/bJ53eVcEQfRkVatJG6n0qMc5PSDkFBklrJP9nlQ6jLUgtP9AmVj1Y+BUxpiSxfvCdmfGwZM0aWdgh5PN7ztLRDUFD9wb7SDkGBUfj90g5BgdaX+Q8qLSnzdpRMzf+sXp/1U7M/mv/mpxY+mFQq5dy5c5w7d05hSiJBEARB+DcT9W0fRhQshfdSs2ZNpFIpS5cuxdGxZJ9mIQiCIAilJUs0hX8QUbD8zDVp0uSz/PUUEhJS2iEIgiAIgvCZEQVLQRAEQRCEHJ9jZc6/iShYCoIgCIIg5PiIj/n+TxAFS0EQBEEQhBwyUbL8IO89QbogCIIgCIIgvE3UWAqCIAiCIOQQXSw/jChYCoIgCIIg5MgSTeEfRDSFC4IgCIIgCCVC1FgKgiAIgiDkENMNfRhRsBQEQRAEQcghE0/e+SCiYCmUqohKdUo7BAVlKyaUdggK9CMDSzsEBUlm9Uo7hM9aqFHt0g5BgTrppR2CAo35P5V2CHlUn5dZ2iEouOfSsbRDUFAl4GBph6DAqrQDEAolCpaCIAiCIAg5skRT+AcRBUtBEARBEIQcoo/lhxGjwgVBEARBEIQSIWosBUEQBEEQcoh5LD+MKFgKgiAIgiDkEC3hH0YULAVBEARBEHLIRI3lBxF9LAVBEARBEIQSIWosBUEQBEEQcojphj6MKFgKgiAIgiDkEE3hH0Y0hX/mmjRpwnfffVfaYRTq3LlzSCQSYmNjSzsUQRAEQRBKiaix/Mz5+vqirq5eaDpPT09iY2PZv3+/wvpz587RtGlTpFIp+vr6HyfIj8Dv4CH27N2LVCrFxtqaEcOH4ejomG/6Cxcv4r3dh4iICMzNzBgwoD/16taVv3/p8mWOHDnK46AgEhISWLtmNba2tkWOZ9/h4+zaf5AYaRy2VpaMHdIfZwe7fNOfvXyVLTt+JzwyCnMzE4b17Un9OjXl7ye/TmGj904uXbtJXEICphUq0LmtB+2/blGkeHafucq245eIjkvEwcKEyT3aUtWmktK0vhducOiKP0EvIgBwrmzG6I4t86R/8jKSn/ae4Pajp2RkZmFjVoHlw3tgaqRfaDwymYwdPt4cP3aUpKREnF2qMGLkGMzNzQvc7tBBP3z3/oFUGoO1tQ1Dh4/E0dEJgISEeHb4bOfO7VtERUWip6dHffcG9O7jiba2doH5+h06zJ69vsS8OX+GDcXJ0SHf9BcuXmKbjw8REZGYm5kxsL8n9epmP240IyMDL28fbty8SVh4ONra2tR0rcFAz34YGRkVemzeHJ/ffLZy6vhhkpIScXKuytCR4zAzV/6dvXHk0D72791NrDQGK2tbBg0bg4Ojs0KahwH32eH9K48DA1BRUcHaxo5Z85ehoaFRYDyf2/f1x9598u9r5LAhhX5fXj475N/XoP795N8XgPeOnZy7cJGoqFeoq6lhb2eHZ9/eODvlfw9524FDR/jddz8x0lhsra0YNXRQgfGcv3QZL5/fCI+IxNzMlMGefXGrq/zxnqt+Xs+hYycYPngAndu3K1I8RWXYsA424weiV6sqmmYVuNl5BBF+p0t0H/D5XV8lTdRYfhhRY/mZMzQ0REdHp7TD+KTOn7/Apk2b6N2zJz+vWY2NjTXTZ87Mtzb0wYMHLFm6jFYtW7J2zWrc3d2ZN38BISEh8jQpKalUqeLCgP79ix3PmYt/snbLdvp924VNKxdja12ZCXMWI42NU5r+74BA5i9fTevmTdn04xK+dKvD9MXLefLPM3matVu8uX77LtPHjcT75xV0+eZrftq4lcvXbhYaz/Hrf7Hi96MMbdeUnbNG4GBhwohVXsTEJypNfzPwKR71qrNpwkC2TR2KiYEew3/0IlIaL0/zLDKaAUs3YW1Snk0TB/L7nFEMbtsEDfWi/fbcu+d3DvrtZ+SoMaz4cTWamprMmjmVtLS0fLe5cP4cmzf9Qo+evflpzTqsbWyYNXMasbFSAKKjo4mJjmbAoMGsXb+R78ZN4NbNm/y0akWBsZy7cJGNmzbTq2cP1q5ehY21NdNnzsr3/Ln/IIDFy37Ao2VL1q3+iQbu9Zm7YCEhIf8AkJqaSlBwMD17fMva1auYNX0qz5+/YPa8BUU6NgD79uzi8EFfho4cx9KV69DQ1GTezEkFHp9LF86wddN6vu3ZjxWrN2Jlbcu8mZPkxweyC5XzZ03GtWYdlv24jh9Wrad1uw6oqEgKjOdz+75+2fQrvXt2Z93qH7GxtmLazNlIC/i+Fi1bjkfLFqxfvYoG7m7MWbCIpznfF0Alc3NGDRvKxrVrWPnDUipWrMDUmbOJjVN+zb7t7IVLbNi8lT49vmXDTyuwsbZiyqx5+ccT8JCFy1bi0aIZG1av4Iv6bsxeuEQhnjcu/XmVgMBHGBkaFhrH+1DV1iL+XiB/j5n7UfKHz/P6KmlZspJZ/qtEwfIz93ZT+Lp167C3t0dTU5OKFSvSpUuX98rz0qVLfPnll5QtWxYLCwvGjBlDUlKS/P3t27dTp04ddHR0MDExoWfPnkRGRirkceTIERwcHChbtixNmzZVKMR9KN99+/Dw8KBlyxZUtrRk9KhRaGhocvzECaXp9x/wo07t2nTt0hlLS0v69e2Dna0tfgcPydM0b/YVvXr2pGZN12LH8/uBw7Rt+RWtmzfByrIS44cPQlOjDEdOnVOafs/Bo9SrVYMendphZWHOwF7f4mBjzb7Dx+Vp7j98RKuvGlGzWhVMK1bgm1bNsbWuTMDj4ELj8Tl5mU5f1qF9w9rYmlVgeu9v0Cyjzv5Lt5SmXzS4G92auuFoaYq1qTGzPDsik8m4FpC7r5/3naJhNQe+6+qBk6UZFhWMaOLqjKFuuULjkclkHNi/j2+796S+ewOsrW34fvwkYqKjuXLlcr7b7d+3l1YeX9OiZSssLSszctRYNDQ0OHki+zhZWVkzbcYs3NzcMTU1o4ZrTfr268/1a9fIzMzMN1/fffvx8GhFqxbNqWxpyZhRI9DQ1OD4iZPK4/Dzo07tWnTt3AlLSwv69emNna0tBw5lnz/a2tosWTifxl9+iUWlSjg7OTFy+FAeBwXluS7yOz6HDuyh67d9cHNviJW1LWPH/6+9u46KKu3jAP6dIUQ6DZAGCYOwOzBRsV4TVMy1MHHVdcXu1VXMVUFAUVwVWwm7BaVcCQEpERVJAcm57x/I6MAAuit3Rvl9zplzmDvPzP1y7ww889RdjszM93j88F61z7tw9hT6DhgEm74Doa2jh5lzF6GBjAyuB1zllzlyaC8G2Y3AyNHjoaOrD61mOujSrRekpKRrzCNO5+vM2fMYOKAf/3zN55+va8JzXLiIdm2sMfrT+XKc4AAjQwNcuHSZX6Z3zx6wtrJE06ZNoKerg1+mT0VBQQESEhKrzcHPc+4CbPv3xYC+NtDV0caCOTPRoEED+AUKb/nzvXAJ7dpYYczI4dDV1sbkCeNhZGiA85euCJR7/z4De/46jOXOCyEpKVFrjn8j3f8OXqzaibfnhR+770HcPl9E/FDF8gfx5MkTzJs3D2vXrkVMTAz8/PzQvXv3b36d+Ph4DBgwACNHjkRERAROnjyJe/fuYe7cufwyJSUlWLduHcLDw3Hu3DkkJibC0dGR/3hKSgpGjBiBIUOGICwsDNOmTcOyZcu+x6+JkpISxMbFwcrSkr+Ny+XCytISUdHRQp8TFR1dpcLYpo11teW/LU8pXsQnoI1FK4E8bSxa4XnMC6HPeR4TK1AeANpZWQiUb2HaHPeDniI9IxMMwyAk4jlSUtPQzqp1zXlKSxGV9BodzD9343O5XHQwM0TEy5QanvlZYXEJSsvKoCTXEADA4/FwLyIGOo3VMftPD/ReuAkTNhzAzdDIr3q9t2/eICsrE5aW1vxtcnJyMDExRXRUlPDfo6QEcXGxsLT8PDyAy+XC0tIK0dHCnwMA+fn5kJWVhYSE8H/MFe8fa0sLgde1srREZHSM0OdERUcLvN8AoI21VY3vn/z8AnA4HMjJ117xfvsmDVlZmbCw/Nw1KicnD2MTM8REP6/294iPeyHwHC6Xi9aW1vznZGdn4UVMFJSUlLFs8Vw42o/AiqXzEfn8WS15xO98Vf28W1R7/COjo2H1xfkFgLbW1X/eS0pKcOWqP+Tk5GCgr19t1oqyL+Liq7x/rC1bV/v+iYyOESgPAO2sLREZ/fnzzuPxsHnHToweMRR6ujo1ZhBn4vj5qgsMj/kut/qKxlj+IJKTkyEnJ4fBgwdDQUEBurq6sLKyEihz6dIlyFf6IFZuKdi0aRPs7e35raDGxsZwdXVFjx49sH//fsjIyGDKlCn88gYGBnB1dUW7du2Ql5cHeXl57N+/H4aGhti+vbyLy8TEBM+ePcOWLVv+8++Zm5sLHo8HZRVlge3KyspISRFecRI2flRZWRlZWVlCy3+LnNxclPF4UFFWEtiuoqyE5FepQp+TmZ0ttHxm1uduuPkzJuOPvYfwvymzISEhAS6HA+c5M2DRwqzyywnIyitAGY9XpSVRTVEeiW/ef9XvtOu0PzSUFfiV08wP+SgoKsaRq3cwZ1gfzB/ZH/f/eYHF+07goPMUtDWp+Z9xVlYmAAg5ZyrIruYcfD7PKlWe86qa85yTkwOfE94YMNC22iz811UWfF0VZWWkpLyqJn82VCq9f1SUlZGVlS20fHFxMdyOeKBnj+6Qk5WtNkuF7E/HR0nI71rxWGUfcnPA4/GgpFz1OakpyQDKK6wA4HPcE45TZ0LfwAi3rgdg1W+LsWufe7XjN8XxfAk7/ikpwj9fws6XsrIyMitlfxQUjI1btqGoqAiqqirYvH4tlJQUq80CADm5Hz7lqfz5VUZKNZ/3avN8MWTB5/RZSEhIYLjd4Br3L+7E8fNVFxhabug/oRbLH0Tfvn2hq6sLAwMDTJgwAd7e3igoKBAo06tXL4SFhQncDh8+LFAmPDwcHh4ekJeX59/69+8PHo+HhIQEAMDTp08xZMgQ6OjoQEFBAT169ABQXrkFgKioKHTo0EHgdTt16lTr71BUVITc3FyBW1FR0b8+Jj8y30t+iIyJxcYVS3Box0bMnuKAnX+540lYza1N/5X7ldvlYzRn26PBp0lhFWu29bQ0g0O/LjDRaYoptj3QrbUJTt8OqvIaN29ex/9G2PFvpTV0c34vBQX5WLPqd+jo6GC8/YQ63191SktLsWHTFgAMnObMFlrm9s1AjBs5kH8rLSutkywMjwcA6D9wMGz6DoSBoTGmzJgDrWbauB74ubu8vp4vi9atsH/3Tuz8YwvaWltj/eYt1Y6TrEsv4uJx9sIlLFkwDxxOzWNf67uv+XyxgcdjvsutrmRmZsLe3h6KiopQVlbG1KlTkZcnfIw9ACQmJoLD4Qi9nTp1il9O2OM+Pj7fnI9aLH8QCgoKCAkJwa1btxAQEAAXFxesXr0awcHB/NY6OTk5GBkJzlR+9UrwW2ReXh5++eUXzJs3r8o+dHR0kJ+fj/79+6N///7w9vaGhoYGkpOT0b9//xoH9n+NTZs2Yc0awUHl85ycsGD+5yyKiorgcrnIrvRtNjs7Gyqqgt+SK6ioqFQZOJ6dnQ0VFeHlv4WSoiIkuNwqE3WysnOgWqnFp4KqsnI15ctbQYqKinHomA/WL1+MTm3LuyMN9XQR9zIJJ89dQlvLVlVes4KKvCwkuNwqE3UycvOgplRzt5GX/z0cuXoXBxZPRnPtJgKvKSnBhYGmhkB5g6YaCI2tOgGhQ4dO/JnAQHn3GABkZ2VDVfXzLM7s7CzoGwifef/5PAu2MmVnZ0Gl0sSGgoICuKxcgYayslixcjUkJav/s8V/3WzB182q4f2goqJcpcJRXl5ZYFtpaSk2bN6Ct+nvsHXjhmpbU9p36ILmJub8+yUl5Z+bnKwsIcdH+MoCCopK4HK5yMmuenyUVcqPj8qn12qmrSdQppm2Dt6nv+Xf/xHOl7DjX93nS9j5ys7Ohmql89tQRgZamprQ0tSEmakpHKf/Ar+AQIwbParaPEqKCp/yVP78Vn0/1JrnU6ves+eRyM7JwfjJ0/mP83g8/OXmAd/zF+HtfrDaPOJGHD5fBLC3t0daWhoCAwNRUlKCyZMnY8aMGTh+/LjQ8tra2khLSxPYdvDgQWzbtg0DBw4U2H7kyBEMGDCAf//frCZDLZY/EElJSfTp0wdbt25FREQEEhMTcePGjW96DWtra0RGRsLIyKjKTVpaGtHR0cjIyMDmzZvRrVs3mJqaVhlAbWZmhqAgwZasR48e1brv5cuXIycnR+A2a+YvAmWkpKRgbGSEsPAw/jYej4ewsDCYmZpCGDNTU4SFhQtsCwkNrbb8t5CSkkRzQ308jfhHIE9IxD9oUc3yGi1MjAXKA8CTsAh++dKyUpSWllVpveBKcMFjeDXnkZSEma4mHke9FMgTFP0SrQ20q32ex9W7OHTpJvYumIQWeoJLykhJSsJcTwtJlbrSk96+F7rUkKysLDQ1tfg3HR1dqKioIiw8lF+moCAfMTHRMDUT3rUvJSUFIyNjhFc6z+FhYTA1/fycgoJ8rPx9OSQlJbHSZQ2kpauflFLxusZGRggNixB43bCwcJhXs9SMmakpwsIrv38E328V//RSX7/G5g3roahYfZdqQ1lZNNXU4t+0dfSgoqKKiPAQgd8rNiYKJqYtqv09DI2aIyLs83N4PB6ehYXwn9OocROoqqnjdapgV/Tr1FfQaNSYf/9HOF9ffn7Lz1dEtZ9fc1NThIZHCGyrfL6EYXgMv1JdU57mRoYICRd8/4SGP6v2/WNuaiLwfgOAp6HhMDct/7z36dUDB3f/ib9cd/BvaqqqGDViKDavXVVjHnEjDp8vNjAM811udSEqKgp+fn44fPgwOnTogK5du2L37t3w8fHB69evhT5HQkICTZo0EbidPXsWo0ePrjJ8TllZWaCcjIzMN2ekiuUP4tKlS3B1dUVYWBiSkpLg5eUFHo9X49qOwixduhQPHjzA3LlzERYWhtjYWJw/f54/eUdHRwfS0tLYvXs3Xr58iQsXLmDdunUCrzFz5kzExsZiyZIliImJwfHjx+Hh4VHrvhs0aABFRUWBm7C19kYMH46rfv4IvHYNycnJ2L13LwqLCtGvb/kaj9v+2A73I5/3N2yoHZ48fYozvr5ISUnB0WPeiI2Ng92Qz+OZPnz4gPj4eH53/qtXqYiPj0dmpvAxbl8aPXQQLgfcgN+N20hMScWOA274WFiEgX3Khwhs+HMvDnqd4Jf/35CBCAoJx8lzl5D0KhVHTpxCTPxLDB/UHwAgJysLy5ZmOODhjdBnz5H29h2uXr8F/5t30K1jO6EZvuTQtwvO3nmCC/dD8PL1O2w8dgEfi4oxtEv5RI/f3U7D9cznGfRHrt7BvvPXsMpxBDTVlfE+5wPe53xAQeHnYQiT+neDf/A/8L0TjOS3GfC58Qh3wmMwulf7WvNwOBwMHTYcJ32O4/Gjh0hMSMCOP7ZCVU0NnTp14Zf7bfmvuHjxPP/+sOEj4e93BdevBSAlORn79rqisKgQffqWH6eCgnysXLEcRYWFmL9gET4WFCArMxNZmZk1zjIeMXwYrvr7I/DadSQnp2D33n0oLCxEv759AABbt++Au4fn5xx2dnjyNASnfc8iOSUFR72PIzYuDkMHl79/SktLsW7jZryIjcNSZ2fwynjIzMxCZmZWrRWViuMzeOj/cMrnKIIe3UdS4kvs2r4Jqqrq6NCpK7+cy2+LcOXiWf59u+GjEOh/CTeu+SElOQl/7f0ThYWFsOk7gP+6w0aMweULvnhw7zbSXqfi+FF3pL5Khk2/6sc1itv5Gjl8KK74ByDg0/ly3bsfhYWF6N/X5tP5+hNuAudryBfn6xW8vI/jRVwc7AYPAgB8LCyEu6cXoqKj8fbdO7yIjcP2nbvwPiMD3bt2FZpBIM8wO1zxD0TA9RtISknBrn1/obCwEAP6lOfZvH0XDnsc5ZcfYTcYwSGhOOV7Hskpr+Dp7YMXcfEYOrj8HCgpKkJfT1fgJikpAVUVFWg3q3nd0G8lIScLRQtTKFqUV9pk9ZtB0cIUMtpNv9s+xO3zVRfEefLOw4cPoaysjLZtP6/b2qdPH3C5XDx+/PirXuPp06cICwvD1KlTqzw2Z84cqKuro3379nB3d/9XFWTqCv9BKCsrw9fXF6tXr0ZhYSGMjY1x4sQJtGghvMWjOq1bt8bt27exYsUKdOvWDQzDwNDQEGPGjAEAaGhowMPDA7/99htcXV1hbW2NP/74A3Z2dvzX0NHRwZkzZ7Bw4ULs3r0b7du3x8aNGwUm/fwXPXp0R05uDo4ePVa+QLqBAdavXcvvanmXng7OF+v0mZubY+mvS+DpdRQeHp7Q1NKCy8rfoaenxy/z8NEj7PhzJ//+pk8TjezHj8cEB/sa8/Tu1hnZublwP34KmVnZMNLXxbZVy6D6qYvg3fv3AusGtjQzwcrFTnA7dhKHjvqgmWYTbFjuDAPdzy2KLs7zcdDrBNbv2IPcvDw00dDANIexGDqg9gXS+7dvhay8fOw/fx0ZuXkw0W6KvQsm8bvC32Rkg/tFa+ipW0EoKS3Dkv0nBF7nlyG9MHNo+T/L3tbmWDHBDu5X7mDricvQbaKObbPGwcpYD19j5P9Go7CwELt370R+Xh7MW7TE2rUbBVqs3qSlIfeLdQS79+iJnNwcHDvqxT/Pa9du4J/nuLg4xMSUzxydPtVRYH9uR7zQuHETCNOzezfk5OTA65g3/3U3rF3Df9309HSB49PC3AzLljjD8+gxeHh6QVNLE6t+XwE9PV0AwPuMDDz69Ad7tpPgEJKtmzbConX1QxcqDP/fWBQWfsT+3ds/LUjeCivXbal0fF4jN/fz8enavTdyc3Lgc8yjfEFyA0O4rN3C7woHgCHD/ofi4mK4H9qLvA8foKdviFXr/0DTpjVXWMTzfB3/4nytFvy8Vzpfy5cshsdRbxzxPApNLU2s/v036H86XxJcLlJSXiHw+g3k5uRCQVERJsZG2LF181fNyO7VvStycnLhccwHWVlZMDTQx6a1Lvyu23fp6QKf9xZmpvhtyUIcOXoc7l7HoKXZFGtWLOPnYZNSm5bodP1zpdf8j98AAClevoiYuvy77EMcP1/iqqioqMo8ggYNGtR48YLavHnzBo0aNRLYJikpCVVVVbx58+arXsPNzQ1mZmbo3LmzwPa1a9eid+/ekJWVRUBAAGbPno28vDyhQ+dqwmFo+hMRoYT4OFFHENCw5IOoIwhQTBev45OqWXsLJpukGPGa/FUA0SyPUh0pjmhafKojzRSKOkIVXKbuJzN9iwjz4aKOIKBF1EVRRxCgZ1T9FX6+lylrvs/6mTrMvirzClatWoXVq1dXKbts2bJaV1aJioqCr68vPD09ERMjuLxTo0aNsGbNGsyaNavG1/j48SOaNm2KlStXYvHixTWWdXFxwZEjR6pdkaU61GJJCCGEEPIJ7zu1ty1fvhyLFi0S2FZda+XixYsF1osWxsDAAE2aNKky76G0tBSZmZlo0kR4r8CXTp8+jYKCAkycOLHWsh06dMC6detQVFT0Ta2sVLEkhBBCCPnOvqXbW0NDAxoaGrWW69SpE7Kzs/H06VO0aVM+rv7GjRvg8XhVlgEUxs3NDXZ2dl+1r7CwMKioqHxz1z1VLAkhhBBCPhHnq+aYmZlhwIABmD59Og4cOICSkhLMnTsXY8eOhaamJgAgNTUVNjY28PLyQvv2n4cvxcXF4c6dO7hy5UqV17148SLevn2Ljh07QkZGBoGBgdi4cSOcnZ2/OSNVLAkhhBBCPhH3qSfe3t6YO3cubGxswOVyMXLkSLi6uvIfLykpQUxMTJWLqLi7u6NZs2bo169fldeUkpLC3r17sXDhQjAMAyMjI+zYsQPTp0+vUrY2NHmHiBRN3qkZTd6pGU3eqRlN3qkdTd6pWX2cvDNxZVrthb6C17rvt8zTj4RaLAkhhBBCPqnLyzHWB1SxJIQQQgj5RJzHWP4IqGJJCCGEEPIJjRD8b+iSjoQQQggh5LugFktCCCGEkE8YHk/UEX5oVLEkhBBCCPmEJu/8N1SxJCLVoLSg9kIskiwVr+VQshqbijqCAOXCN6KOICBV2kDUEQSUzRgm6ggCZA8dEXUEAY2Sg0QdoQpGSkbUEQSI2/I+z82GiDqCAL2SmNoLEZGiiiUhhBBCyCc0eee/oYolIYQQQsgntNzQf0OzwgkhhBBCyHdBLZaEEEIIIZ9Qi+V/QxVLQgghhJBPeAwtN/RfUFc4IYQQQgj5LqjFkhBCCCHkE+oK/2+oYkkIIYQQ8glVLP8bqlgSQgghhHxC61j+NzTGUghHR0cMGzZM1DFYpaenh507d4o6BiGEEEJ+YPW6xTIxMRH6+voIDQ2FpaUlf/uuXbtY+cbi6OiI7OxsnDt37l89/9WrVzAwMEDz5s3xzz///KcswcHBkJOT+0+v8T2dveyHk2cvIDMrG4b6upg3YwrMmhtXW/7WvYdw9/bBm3fpaKbZBDMmOaBjW2v+473sRgl93i+ODhg7Ymitec5cvYbj568iMzsHRno6WDjVAebGwi8n+DI5FYd9fBHzMhFv0jMwb/I4jBncX6CMl+8l3H70FEmpaWggLYVWJkaYNWE0dLWa1poFAM5dvoqTvp+Pj9MvU2s5Pg9w5FjF8WmK6Y6CxwcAklJe4aDHMUT8E4mysjLoajfD6uXOaNxIo9Y8Z65ew4lzV5CZnQNDPW0snDYB5saGQsu+TH4FNx9fxMQn4k36e8ybPB6jhwwQKBP2PBrHz19BTHwiMrKysXHpfHTv0OYrjoxwDMPglLcbrvtfRH7+B5iYtcK02c5oqqVd7XMi/wnDxTPHkRAfg6zMDDiv2Ih2nbr/q/1rDBuBxmPGQ0pVFR/j45Ds+icKoqOqLd9o5Gho2A2HdOPGKM3JRtbtW0g9dABMSTG/jJS6OrRmzIZS+47gysigKPUVErdsRMGL6FrzXLh0GafP+CIzKwsG+vqYPfMXmJo0r7b8nbv34HnsGN6+fQctTU1MneyI9u3aAgBKS0vh4XUMwU+eIO3NG8jJycHK0gJTHSdBTU3tG47SZz63nsAz8CEycvPQvFljLB3TH630tISWvR4aDTe/+0hOz0RpGQ86jVQxsU8HDO7Q+l/tGwBO3ngET/97yMjJQ3PtJlg6bjBaGjQTWtb3TjAuPQxDXOpbAICZriachverUv7l63fYdSYAIS8SUFrGg4FmI/wxaxyaqinXmkfcz1d1VLu2hcHiqVCybgkZzUZ4MnI23l64/l33URd4PJoV/l9Qi6UQSkpKUFZWFnWMWnl4eGD06NHIzc3F48ePay1fUlJSZVtxcfk/Kg0NDcjKyn73jP/Gjbv3sd/NE5PGjsLBP7fAUE8Xv67agKzsHKHl/4mKwbo/dsK2b28c2rkVXTu0x8qNW5GQlMwvc8bzoMDt13mzweFw0L1zx1rzXLv/GLs9fDBl9DC4b1sDI11tLFr3B7JycoWWLyougmZjDcxyGAU1ZSWhZcKeR2PEgN44uGkldq5agtKyMixc+wc+FhbVmufm3fvYf9gTE8eNwl87t8JQXw9LXdbXcHyisX7bTgzsZ4ODu7ahS8d2cNkgeHxS095g/tLfodNMCzs2rsah3dvhMPZ/kJaWrjXP9XuPsOfIcUwePQxuf6yFkZ4OFq3dhqzsao5PUTE0G2tg5oTR1R6fj0VF5a8zfWKt+/8aF8544+rF05g2xxkbth+EjExDbHRZhOLi6o93UeFH6BoYYcrMRf9p3yq9bNBslhPSPN0RNWMKCuLjYLx1BySr+RujYtMXWjNm4rWXO55PGo/EbZuh0ssGWtN/4ZeRkFeAye4DYEpLEbtsMZ472iNl/x6U5n2oNc+tO3dx8NBh2I8fh72uO2Ggr48VK12QnZ0ttPzzyChs2roNA/r1wz7XXejcqSPWrN+AxMQkAEBRURHi4uMxftwY7HXdCZcVy/HqVSpWrV3/zccKAPyfPMf2M4H4ZVA3nPhtGpo3a4zZrieQmZsvtLyinAymDewCryWTcer36RjayQKrvC7iQWT8v9t/0DNs//sqfhnSC8ddZqO5dhPM3umBzNw8oeWfxCRgQPvWOOQ8FZ7Lf0ETFSXM+tMD77I+v/9T3mVgypZD0G+ijkNLpuLv1XMxfXBPNJCqvW1H3M9XTSTkZJEbEYN/5q357q9dlxge811u9dVPUbHk8XjYtGkT9PX10bBhQ1hYWOD06dMAgKysLNjb20NDQwMNGzaEsbExjhw5AgDQ19cHAFhZWYHD4aBnz54AqnaF9+zZE05OTliwYAFUVFTQuHFjHDp0CPn5+Zg8eTIUFBRgZGSEq1ev8p9TVlaGqVOn8jOZmJhg165d/MdXr14NT09PnD9/HhwOBxwOB7du3QIApKSkYPTo0VBWVoaqqiqGDh2KxMREgd+ZYRgcOXIEEyZMwPjx4+Hm5ibweGJiIjgcDk6ePIkePXpARkYG3t7e/N9tw4YN0NTUhImJCQDBrvDx48djzJgxAq9XUlICdXV1eHl51XrM/6tT5y9hUD8bDOzTC3o62lg0ewZkGkjj6rUbQsufuXgZ7a0tMXbEUOhqN8MUh7EwNjDA2ct+/DKqKioCt/uPg2HZqgU0mzSuNc/Ji/4Y0qcHBvXuBn1tLSz5ZRIaNJDGpet3hJY3MzLA3Elj0adrR0hV849jx0pnDOrdDQY6WjDW08GKudPw9n0GYuITaz8+5y7Ctn8fDOzTG3o62lg4ewYaNGiAq4HCj4/vhSuVjs84GBvq49ylz+9X96PH0b6NNX6ZPAHGhgbQatoEXTq0g0o1Fb8v+Vz0w5C+PTHIpvun4+MImQYNcOnGbeHHx9gAcyaN+3R8pISW6WRtgRnj/4ceHdvWuv/aMAyDK+dPYcSYiWjXsRt09Y0wZ9HvyMrMQPDDu9U+z6ptJ4ydMAPtO/f4T/tvPGoM3l++iAy/KyhMSkTyjm3gFRZBbeBgoeXlW7RC3j/PkHU9EMVv3+DDkyBk3QiEnKkZv0yTcfYofvcOSVs3oiA6CsVv0vDhSRCKX6fWmsf37DkMGNAf/fv2ga6ODubNnY0GMg3gHxAotPy5CxfQto01Ro0cAR0dbUya4AAjQ0Ocv3QJACAnJ4fNG9ahR7du0G7WDGamppgz6xfExsXh3bt333y8jl5/jBFdrDCssyUMm2rg93G2kJGWwrmHYULLt2uuh96WpjBoqg5tDVXY924PY63GCI1L+eZ9A8CxwPsY0a0thnZtA0PNRljhYFe+/3tPhZbfOH00RvfqABOdptBvqgEXx+FgGAaPoz5XbPecvYaurZpjwagBMNXRhHYjNfS0NIOqonytecT9fNUk3f8OXqzaibfnr33X1yXi7aeoWG7atAleXl44cOAAnj9/joULF8LBwQG3b9/GypUrERkZiatXryIqKgr79++Huro6ACAoKAgAcO3aNaSlpcHX17fafXh6ekJdXR1BQUFwcnLCrFmzMGrUKHTu3BkhISHo168fJkyYgIKCAgDlFa9mzZrh1KlTiIyMhIuLC3777Tf8/fffAABnZ2eMHj0aAwYMQFpaGtLS0tC5c2eUlJSgf//+UFBQwN27d3H//n3Iy8tjwIAB/NZFALh58yYKCgrQp08fODg4wMfHB/n5Vb/RL1u2DPPnz0dUVBT69y/vjr1+/TpiYmIQGBiIS5/+2HzJ3t4eFy9eRF7e52/o/v7+KCgowPDhw2s95v9FSUkJXsS9RBvLz91YXC4X1hat8Tz6hdDnREa/QBsLwW6vdtYW1ZbPzMrGoychsO3b+yvylCImPhHtWpsL5GnbugX+efHvWkSEyS/4CABQVKh5OAL/+FgIHp82lq0QGRMj9DmR0S9gbVnp+FhZ8o8Pj8fDoych0NZqil9d1mGEwxTMXrwM9x4G1Zq7pKQUL+IT0bZ1C4E8bVub43lMXK3PZ8O7t6+RnZWBVpbt+Ntk5eRhZGKO2Oj/NoSkNhxJScg2N0Hu0+DPGxkGH0KeQL5FS6HPyXv+DLLNTSD7qSIp3VQTih06IefxI34Zpc5dURATDYNV69Da9xLMDh6B+qAhteYpKSlBbFwcrC0t+Nu4XC6sLC0RGS38/RMVHQ2rL4YKAUAbaytERVff5Z6fXwAOhwM5+dorTgL5SssQlZyGDqb6X+TjoIOpHiJe1l5pZhgGj6MTkPg2A9bGOt+07/L9lyIq6TU6mH8exsHlctHBzBARL7+uolpYXILSsjIoyTUEUP75uhcRA53G6pj9pwd6L9yECRsO4GZoZO15xPx8/awYhvddbvXVDz/GsqioCBs3bsS1a9fQqVMnAICBgQHu3buHv/76C3l5ebCyskLbtuUtH3p6evznamiUjx1TU1NDkyZNatyPhYUFfv/9dwDA8uXLsXnzZqirq2P69OkAABcXF+zfvx8RERHo2LG8JWbNms/N//r6+nj48CH+/vtvjB49GvLy8mjYsCGKiooE9n3s2DHweDwcPnwYHA4HAHDkyBEoKyvj1q1b6NevHwDAzc0NY8eOhYSEBFq2bAkDAwOcOnUKjo6OArkXLFiAESNGCGyTk5PD4cOHq+3m7N+/P+Tk5HD27FlMmDABAHD8+HHY2dlBQUGh1mPeo8e/b+HJyf0AHo9XpaVMRVkJyanC/7FkZmcLKa+MrKxsoeX9b9yGbEMZdO/UodY82R8+oIzHg2ql11dVUkRyalqtz/8aPB4Pu44cR2tTYxjoCB/HVYF/fFSq/r7Jr2o6PsqVyish61NXWnZODj5+LMSJ0+cw2WEsZjg6IOhpGFZt2oYdG1bDolWLqi9akYd/fBQFtqsqKyHpOx2f/yo7KxMAoKSsIrBdSVkF2dmZdbpvSSVlcCQkUZoluJ+SrEzI6Aiv+GRdD4SkkhJMXPeX92ZISiL9/Fm88fbil2mgqQmNocPw9tRJpHl7Qc7UDNpOC8ErLUWm/1WhrwsAubm54PF4UK50LFSUlZGS8kp4nixh75/qP1/FxcVwO+KBnj26Q+4bh9dk5RWgjMdATVHwC5aaojwS32ZU+7wPHwvRb/kulJSUgcvl4LdxA9HJTPgY6Nr3z6vSkqimKI/EN++/6jV2nfaHhrICv3Ka+SEfBUXFOHL1DuYM64P5I/vj/j8vsHjfCRx0noK2JvrVvpa4n6+fVX3uxv4efviKZVxcHAoKCtC3b1+B7cXFxbCyssLq1asxcuRIfqvisGHD0Llz52/eT+vWn1t8JCQkoKamhlatWvG3NW5c3qX6ZVfC3r174e7ujuTkZHz8+BHFxcUCk4SECQ8PR1xcHBQUFAS2FxYWIj6+vIUsOzsbvr6+uHfvHv9xBwcHuLm5ValYVlSov9SqVasax85JSkpi9OjR8Pb2xoQJE5Cfn4/z58/Dx8cHQO3HvDpFRUUoKhIc01ZUXIwGXzGO73u6eu0G+vTo9lXjB9mw/dBRvEx+hf0bVohk/7xPf0Q7d2iHUcPKW72MDPTxPDoGF/wCaqxYiqO7NwNwaO82/v1lq7aKMM23k7ewQlP7iUjeuR35Uc8ho9UM2nPno8kER7w56lFeiMNFQUw0Xh/+CwDwMS4WDfUNoDFkWI0Vy7pWWlqKDZu2AGDgNGc2a/uVa9AAJ3+bjoKiYgTFJOKP04HQUldGu+Z6rGUAAPcrt+Ef9AyHlkxFg0/DPHifJoL2tDSDQ78uAAATnaYIj0/B6dtBNVYs65qozhf5uf3wFcuK7trLly9DS0tw1mCDBg2gra2NpKQkXLlyBYGBgbCxscGcOXPwxx9/fNN+Ko8F43A4AtsqWhcrZpP5+PjA2dkZ27dvR6dOnaCgoIBt27bVOskmLy8Pbdq0gbe3d5XHKlpYjx8/jsLCQnTo8LnFjWEY8Hg8vHjxAs2bf54tKGym99fM/ra3t0ePHj3w7t07BAYGomHDhhgwYAA/I1D9Ma/Opk2bBFpxAWDRnJlY7DSLf19JUQFcLrfKRJSs7ByoVjPZQVVZWUj5bKioVC0f8TwKKamv4fLrwmpzfklZQQESXC4yK71+Zk5ulVbMf2P7oaN48DQce9ctRyM11VrL849PVtXfV1XI7wtUHJ/sSuVz+K0aSooKkJCQgG6l1lJdbS08i6x5hrES//gITtTJzM6pdmJOXWvboSuMTT4PXSj5NJM6JzsLKqrq/O052VnQ0zeq0yylOdlgykohqSJ4bqVUVFGSKby1VHPKdGQE+CPjykUAQGHCS3BlZKC7eCneHPMEGAYlGRkoTEoUeN7HpEQod+tZYx5FRUVwuVxkZ2cJbC//vKgIfY6KirD3T9XPV2lpKTZs3oK36e+wdeOGf9X6pSIvCwkuBxmVJupk5OZBvYbxiFwuBzqNyo+xqXYTJKS9h7vfg2+uWJbvn1tlok5Gbh7UlGruJvbyv4cjV+/iwOLJaK79uRdKRV4WkhJcGGgKrq5g0FQDobFJNb6muJ+vnxW1WP43P/wYS3NzczRo0ADJyckwMjISuGlrly8loqGhgUmTJuHYsWPYuXMnDh48CAD8FquysrLvnuv+/fvo3LkzZs+eDSsrKxgZGfFbHCtIS0tX2be1tTViY2PRqFGjKr+PklL5P2o3NzcsXrwYYWFh/Ft4eDi6desGd3f375K/c+fO0NbWxsmTJ+Ht7Y1Ro0bxK9Jfc8yFWb58OXJycgRuc3+ZKlBGSkoKzY0MEBL+jL+Nx+MhJOIZWpgKX17D3LQ5QiKeCWx7GhYhtPyVwOtobmQAI329rzoOUlKSMDHUw5Nnn8dD8Xg8PI2IRMvmwpfT+RoMw2D7oaO4E/QUrqt/hWbj2pf0Kc/z6fhEVDo+4c9g/mkiVmXmps0FjicAPAkL5x8fKSkpmBgbIuXVa4EyKalpaKxRcy4pKUk0N9TD04jnAnmeRkSihUndVtqq01BWFk00m/FvzXT0oayihmdhT/hlCgryERcTCWNT4eMcvxemtBQFL2KgaP1FzwGHAwXrNsh7Lnx8J1emAVBpfBZTsfzJpy+w+c8j0EBbsCtdppkOit++qTGPlJQUjI2MEBoWwd/G4/EQFhYOc1Ph7x8zU1OEhYcLbAsJDYOZqSn/fkUlJfX1a2zesB6KioqVX+arSElKwEynKYJiEr7IxyAoJhGtDYQvNyQMj2FQXFr6L/YvCTNdTTyOevnF/nkIin6J1gbV/23zuHoXhy7dxN4Fk9Ci0rJIUpKSMNfTQlKlrvSkt+9rXWpI3M/Xz4rH8L7Lrb764SuWCgoKcHZ2xsKFC+Hp6Yn4+HiEhIRg9+7d8PT0hIuLC86fP4+4uDg8f/4cly5dgplZ+aD4Ro0aoWHDhvDz88Pbt2+RkyN8uZZ/w9jYGE+ePIG/vz9evHiBlStXIjg4WKCMnp4eIiIiEBMTg/fv36OkpAT29vZQV1fH0KFDcffuXSQkJODWrVuYN28eXr16hbCwMISEhGDatGlo2bKlwG3cuHHw9PRE6b/4gyrM+PHjceDAAQQGBsLe3p6/vbZjXp0GDRpAUVFR4CasG3zU0MG4FHAdftdvISnlFf7cfwiFhUUYYNMLALDxz9045Pm5RXfkkEEICgnD32cvIvlVKjyO/42YuHgMHyS4NmJ+QQFu33+EQX1tvuk4jBnSHxev3caVm/eQ+Oo1/jjohcKiIgzq3Q0AsM71IPYfO8UvX1JSihcJSXiRkISS0jKkZ2ThRUISXqW95ZfZfugoAu48wOoFMyHbUAYZWdnIyMpGUVFxlf1XOT7DhuCy/zX4fzo+O/d9Oj59yo/Pph2uAsdnhJ0tgkPC8PfZC0hOSYXH8ZN4EfcSwwYP/Pw7jhiKW/ce4JJ/IFJfp+Hspat4GPQEQ237V9l/ZWOHDMDFa7dx9eZdJL5KxR9/eeJjUREG9S5f83Hdrr9w4NjfAscnNiEJsQlJKCktRXpmFmIrHZ+Cj4X8MgCQ9i4dsQlJeJP+dePcvsThcGA7dBTOnvTEk8f3kJwYj7071kNFVQ3tOnXjl1v323z4XTzDv1/4sQCJL2OR+DIWAPDubRoSX8bi/buaK2+VvT11EuqDh0C1/0DI6OhCZ6EzuDIyyPC7DADQW/47NKfN5JfPeXAfGnbDodLLBtJNmkKhTTtoTpmO7If3gU8VzLenTkLevAWa2E9EA00tqNj0hfpgO6Sfr34CYoURw4fhqr8/Aq9dR3JyCnbv3YfCwkL069sHALB1+w64e3z+HA+zs8OTpyE47XsWySkpOOp9HLFxcRg6uHxWe2lpKdZt3IwXsXFY6uwMXhkPmZlZyMzMErrEWW0m2HSA771QXHgYjpdp77HhxBV8LCrB0E7lE1h+9zgP13OfV0Bw87uPh1Ev8So9Cy/T3sPr2iNcfvwMg9q3qm4XNXLo2wVn7zzBhfshePn6HTYeu4CPRcUY2qV8HdXf3U7D9UwAv/yRq3ew7/w1rHIcAU11ZbzP+YD3OR9Q8MXSYZP6d4N/8D/wvROM5LcZ8LnxCHfCYzC6V/ta84j7+aqJhJwsFC1MoWhRXqmV1W8GRQtTyGh/3Xq95Mf0w3eFA8C6deugoaGBTZs24eXLl1BWVoa1tTV+++03pKSkYPny5UhMTETDhg3RrVs3/lhBSUlJuLq6Yu3atXBxcUG3bt34S/78V7/88gtCQ0MxZswYcDgcjBs3DrNnzxZYkmj69Om4desW2rZti7y8PNy8eRM9e/bEnTt3sHTpUowYMQIfPnyAlpYWbGxsoKioiC1btsDc3BymX3z7rDB8+HDMnTsXV65cERgT+m/Z29tjw4YN0NXVRZcuXQQeq+mY/1e9u3VBTk4uPI6fLF8A3EAPW1av4Hf1vkt/D+6nlhsAaGlmgt8Xz4e79wkcPnocWppNse63X6GvK9iic+POfTAMg97dBX+X2vTp0gHZOR9w2OcsMrNzYKyvg+2/L+Z3hb99n8EfCgEA77OyMNl5Ff/+iQt+OHHBD1YtTLBn7XIAwFn/8n+Mc102C+zrtzlT+RXW6vTq1gXZObk44u2DrIrjs6by8fn8nbGlmSlWOM+H+zEfuHmVH5+1KwSPT7dOHbBw9nQcP3UWew4egbaWJtYsd0arFmaVd1+FTdeOyM79gMMnfMsXkNfXwfaVSwSOD5db6fgsXvn5+Jy/ihPnr8KyhSn2rCt//0THJ2CeyyZ+md1HjgMABvbqihVOM2rNVJndSHsUFRbi4O6tKMjPg4l5Kyxfux3S0p+Hbrx9k4oPudn8+/Gx0Vj72zz+fa/DuwEAPWwGYvbCrx8Pm3XzOiSVlKHpOO3TAumxiF26GKVZ5d2b0o0aC3S9pR0t7+7WnDoD0uoaKM3OQvbD+3h9+CC/TEFMNOJXLofW9JloOtERRWlpeLV3FzKvBVTZf2U9u3dDTk4OvI55IysrCwYGBtiwdg2/azU9PV3g89XC3AzLljjD8+gxeHh6QVNLE6t+XwE9PV0AwPuMDDz6NMRnttM8gX1t3bQRFq2/rYLXv20LZOUVYP+l23ifmw+TZo2xz2kc1D51hadl5gh83j4WFWPjiat4l/0BDaQkoddEHRsmD0X/tv9ubHD/9q2QlZeP/eevIyM3DybaTbF3wSR+V/ibjGyB43PqVhBKSsuwZP8Jgdf5ZUgvzBxa/iW2t7U5Vkywg/uVO9h64jJ0m6hj26xxsDLWqzWPuJ+vmii1aYlO14/y75v/Uf75TvHyRcTU5d9tP98bdYX/NxyGLopJROh1TETthVgkXSJ8EWZRKZIWr+U/pEsKRB1BQKr0t8/8rUtlM4aJOoIAtUNHRB1BQOPk2i/kwDZGSkbUEQS8a2pReyEWPTerfRkrNg0qEb7M0vfU1174mqXfKtD7318t7Ef2U7RYEkIIIYR8D9Ri+d/88GMsCSGEEEKIeKAWS0IIIYSQT+rzVXO+B6pYEkIIIYR8wqOu8P+EusIJIYQQQsh3QS2WhBBCCCGf8C9IQP4VqlgSQgghhHxCs8L/G+oKJ4QQQggh3wVVLAkhhBBCPmEY3ne51ZUNGzagc+fOkJWVhbKy8lf+TgxcXFzQtGlTNGzYEH369EFsbKxAmczMTNjb20NRURHKysqYOnUq8vLyvjkfVSwJIYQQQj5heMx3udWV4uJijBo1CrNmzfrq52zduhWurq44cOAAHj9+DDk5OfTv3x+FhYX8Mvb29nj+/DkCAwNx6dIl3LlzBzNmfPsldGmMJSGEEELID2LNmjUAAA8Pj68qzzAMdu7cid9//x1Dhw4FAHh5eaFx48Y4d+4cxo4di6ioKPj5+SE4OBht27YFAOzevRu2trb4448/oKmp+dX5qMWSEEIIIeQThsf7LreioiLk5uYK3IqKilj/fRISEvDmzRv06dOHv01JSQkdOnTAw4cPAQAPHz6EsrIyv1IJAH369AGXy8Xjx4+/bYcMIT+4wsJCZtWqVUxhYaGoozAMQ3lqQ3lqRnlqJ26ZKE/NxC0PW1atWsUAELitWrXqu73+kSNHGCUlpVrL3b9/nwHAvH79WmD7qFGjmNGjRzMMwzAbNmxgmjdvXuW5GhoazL59+74pF7VYkh9eUVER1qxZI5JvgsJQnppRnppRntqJWybKUzNxy8OW5cuXIycnR+C2fPlyoWWXLVsGDodT4y06Oprl3+DfoTGWhBBCCCHfWYMGDdCgQYOvKrt48WI4OjrWWMbAwOBf5WjSpAkA4O3bt2jatCl/+9u3b2Fpackv8+7dO4HnlZaWIjMzk//8r0UVS0IIIYQQEdLQ0ICGhkadvLa+vj6aNGmC69ev8yuSubm5ePz4MX9meadOnZCdnY2nT5+iTZs2AIAbN26Ax+OhQ4cO37Q/6gonhBBCCPlBJCcnIywsDMnJySgrK0NYWBjCwsIE1pw0NTXF2bNnAQAcDgcLFizA+vXrceHCBTx79gwTJ06EpqYmhg0bBgAwMzPDgAEDMH36dAQFBeH+/fuYO3cuxo4d+00zwgFqsSQ/gQYNGmDVqlVf3eVQ1yhPzShPzShP7cQtE+Wpmbjl+dG5uLjA09OTf9/KygoAcPPmTfTs2RMAEBMTg5ycHH6ZX3/9Ffn5+ZgxYways7PRtWtX+Pn5QUZGhl/G29sbc+fOhY2NDbhcLkaOHAlXV9dvzsdhGIYuikkIIYQQQv4z6gonhBBCCCHfBVUsCSGEEELId0EVS0IIIYQQ8l1QxZIQQgghhHwXVLEkhBBCCCHfBVUsCfnJpaSkICUlRdQxCCH1yN27d+Hg4IBOnTohNTUVAHD06FHcu3dPxMlIXaN1LMlPIzs7G8rKyiLNEBcXh/j4eHTv3h0NGzYEwzDgcDis5ygtLcWaNWvg6urKXzRXXl4eTk5OWLVqFaSkpFjPBADFxcV49+4deDyewHYdHR3Ws0hISCAtLQ2NGjUS2J6RkYFGjRqhrKyM1TwpKSngcDho1qwZACAoKAjHjx+Hubk5ZsyYwWoWALh+/TquX78u9Hy5u7uznmfSpEmYOnUqunfvzvq+hRGHPLm5uV9dVlFRsQ6TCDpz5gwmTJgAe3t7hIaG8q8RnpOTg40bN+LKlSusZSHsoxZL8kPasmULTp48yb8/evRoqKmpQUtLC+Hh4aznycjIQJ8+fdC8eXPY2toiLS0NADB16lQsXryY9TxOTk44ePAgtm7ditDQUISGhmLr1q1wc3PDvHnzWM8TGxuLbt26oWHDhtDV1YW+vj709fWhp6cHfX191vMAQHVL+BYVFUFaWprlNMD48eNx8+ZNAMCbN2/Qt29fBAUFYcWKFVi7di2rWdasWYN+/frh+vXreP/+PbKysgRuopCTk4M+ffrA2NgYGzdu5LeCiYo45FFWVoaKispX3di0fv16HDhwAIcOHRL4EtulSxeEhISwmoWwjxZIJz8kfX19eHt7o3PnzggMDMTo0aNx8uRJ/P3330hOTkZAQACreSZOnIh3797h8OHDMDMzQ3h4OAwMDODv749Fixbh+fPnrOZRUlKCj48PBg4cKLD9ypUrGDdunMAVGdjQpUsXSEpKYtmyZWjatGmVVlwLCwvWslRcSWLhwoVYt24d5OXl+Y+VlZXhzp07SExMRGhoKGuZAEBFRQWPHj2CiYkJXF1dcfLkSdy/fx8BAQGYOXMmXr58yVqWpk2bYuvWrZgwYQJr+/wa6enpOHr0KDw9PREZGYk+ffpg6tSpGDp0qEha4UWd5/bt2/yfExMTsWzZMjg6OqJTp04AgIcPH8LT0xObNm3CpEmT6jxPBVlZWURGRkJPTw8KCgr8v4cvX76Eubk5CgsLWctCRIAh5AckIyPDJCcnMwzDMPPmzWNmzJjBMAzDxMTEMMrKyqznady4MRMWFsYwDMPIy8sz8fHxDMMwTHx8PCMnJ8d6Hg0NDSYyMrLK9sjISEZdXZ31PLKyskxUVBTr+xVGT0+P0dPTYzgcDqOtrc2/r6enxzRv3pzp168f8+jRI9ZzycnJMQkJCQzDMMyQIUOYzZs3MwzDMElJSYyMjAyrWVRVVZm4uDhW9/mtnj59ysydO5eRkZFh1NXVmQULFjAvXryot3l69+7NHD9+vMp2b29vpkePHqzlYBiG0dfXZwIDAxmGEfx76OnpyZiZmbGahbCPusLJD0lFRYU/IcXPzw99+vQBUN69yfbYOADIz8+HrKxsle2ZmZkiuT7u3LlzsW7dOv7YJqC8i3fDhg2YO3cu63nMzc3x/v171vcrTEJCAhISEtCjRw+Eh4fz7yckJCAmJgb+/v7o0KED67latGiBAwcO4O7duwgMDMSAAQMAAK9fv4aamhqrWaZNm4bjx4+zus9vkZaWhsDAQAQGBkJCQgK2trZ49uwZzM3N8eeff9bLPA8fPkTbtm2rbG/bti2CgoJYyVBh+vTpmD9/Ph4/fgwOh4PXr1/D29sbzs7OmDVrFqtZiAiIumZLyL8xZ84cRldXl+nTpw+jpqbGfPjwgWEYhjlx4gRjZWXFep6BAwcyv//+O8Mw5d/QX758yZSVlTGjRo1iRo4cyXqeYcOGMQoKCoy6ujpjY2PD2NjYMOrq6oyioiIzfPhwgRsbrl+/znTq1Im5efMm8/79eyYnJ0fgRhjm5s2bjLKyMsPlcpnJkyfzty9fvpy181Rh3rx5jLKyMtO9e3dm7ty5zMKFCwVuolBcXMycPn2aGTRoECMlJcW0adOG2b9/v8D7x9fXl7UeC3HL07x5c2bJkiVVti9ZsoRp3rw5Kxkq8Hg8Zv369YycnBzD4XAYDofDyMjI8P9Gkp8bjbEkP6SSkhLs2rULKSkpcHR0hJWVFQDgzz//hIKCAqZNm8Zqnn/++Qc2NjawtrbGjRs3YGdnh+fPnyMzMxP379+HoaEhq3kmT5781WWPHDlSh0nKcbnlnSOVx1Yyn2bNi6KVGQBevXqFCxcuIDk5GcXFxQKP7dixg/U8ZWVlyM3NFZhskZiYCFlZ2Sqz1+tSr169qn2Mw+Hgxo0brGWpoK6uDh6Ph3HjxmH69OmwtLSsUiY7OxtWVlZISEiod3muXLmCkSNHwsjIiN/iHhQUhNjYWJw5cwa2trZ1nqGy4uJixMXFIS8vD+bm5gLjmcnPiyqWhHwnOTk52LNnD8LDw5GXlwdra2vMmTMHTZs2FXU0kftykoEwPXr0YCnJZ9evX4ednR0MDAwQHR2Nli1bIjExEQzD8L8gEPFx9OhRjBo1CjIyMqKOAkD88gDlX5T279+PqKgoAICZmRlmzpwJbW1tVnMcO3YMI0aMEDo8iPz8qGJJfkheXl41Pj5x4kSWkoi39PR0xMTEAABMTEygoaEh4kTio3379hg4cCDWrFnDn7naqFEj2NvbY8CAAayPBdPX169xzVM2Z4V/6dWrVwDAX19TVHJyclBWVgZVVVWB7ZmZmZCUlGR1nUZxzCNONDQ08PHjR9jZ2cHBwQH9+/eHhISEqGMRllDFkvyQKq/LVlJSgoKCAkhLS0NWVhaZmZmsZ8rOzkZQUJDQBaXZrujm5+fDyckJXl5e/CwSEhKYOHEidu/eLZKWhOzsbLi5ufFbU1q0aIEpU6ZASUmJ9SwAoKCggLCwMBgaGkJFRQX37t1DixYtEB4ejqFDhyIxMZHVPLt27RK4X1JSgtDQUPj5+WHJkiVYtmwZa1l4PB7Wr1+P7du38xfYV1BQwOLFi7FixQr+0AY2DRw4EEOGDMHs2bMFth84cAAXLlxgfdFtcctToaCgQOjQjtatW7OWobS0FH5+fjhx4gTOnz8PWVlZjBo1Cvb29ujcuTNrOYiIiGpwJyHf24sXLxgbGxvGz8+P9X1fuHCBUVBQYDgcDqOkpMQoKyvzbyoqKqznmTFjBmNgYMBcuXKFP0Hm8uXLjKGhITNz5kzW8wQHBzOqqqqMlpYWf9JQs2bNGDU1Nebp06es52GY8iWiKpZkMjMzY86fP88wDMOEhYWJZImo6uzZs4dxdHRkdZ/Lli1jNDQ0mH379jHh4eFMeHg4s3fvXkZDQ4P57bffWM1SQUVFRegSWlFRUYyqqmq9z/Pu3Ttm0KBBDJfLFXoTlfz8fObYsWOMra0tIy0tzRgYGIgsC2EHVSzJTyU4OJgxMTFhfb/GxsbM/Pnzmfz8fNb3LYyamhpz8+bNKttv3LghknUsu3btyjg6OjIlJSX8bSUlJcykSZOYbt26sZ6HYRhm6NChzMGDBxmGYZjFixczRkZGzPr16xlra2vGxsZGJJmEiY+PZxQUFFjdZ9OmTfkV7S+dO3eO0dTUZDVLBVlZWSYiIqLK9oiICKZhw4b1Ps/48eOZLl26MMHBwYycnBwTEBDAHD16lDExMWEuXbrEep4vpaenM7t372ZatGgh0kouYQetY0l+KpKSknj9+jXr+01NTcW8efPEZrB6QUEBGjduXGV7o0aNUFBQwHqeJ0+eYOnSpZCUlORvk5SUxK+//oonT56wngcon/VdMXt2zZo1sLGxwcmTJ6Gnpwc3NzeRZBLm9OnTVcbx1bXMzEyYmppW2W5qaiqSYSZA+ZjYgwcPVtl+4MABtGnTpt7nuXHjBnbs2IG2bduCy+VCV1cXDg4O2Lp1KzZt2sR6noKCAnh7e8PW1hZaWlrYuXMnhg8fzvpVyAj7JGsvQoj4uXDhgsB9hmGQlpaGPXv2oEuXLqzn6d+/P548eQIDAwPW9y1Mp06dsGrVKnh5efFnrX78+BFr1qzhX+6NTYqKikhOTq5SWUlJSYGCggLreQAInCs5OTkcOHAAQPn4sHfv3rGex8rKSmDyDsMwePPmDdLT07Fv3z5Ws1hYWGDPnj38y19W2LNnD6uX3/zS+vXr0adPH4SHh8PGxgZA+cz+4OBg1i/hKo558vPz+UtSqaioID09Hc2bN0erVq1Yvz732LFjcenSJcjKymL06NFYuXKlSP7uENGgiiX5IQ0bNkzgPofDgYaGBnr37o3t27eznmfQoEFYsmQJIiMj0apVqyrXCbazs2M1z86dOzFgwAA0a9aMXxEIDw+HjIwM/P39Wc0CAGPGjMHUqVPxxx9/8Afv379/H0uWLMG4ceNYz1OT58+fw9ramvW1NSu/p7lcLjQ0NNCzZ0+hrYd1aevWrRg0aBCuXbsmcN3plJQUkU1K6dKlCx4+fIht27bh77//RsOGDdG6dWu4ubnB2Ni43ucxMTFBTEwM9PT0YGFhgb/++gt6eno4cOAA60ueSUhI4O+//6bZ4PUUzQonP7yKWc+imKlaoaZ9i2oB8IquqOjoaADla9rZ29ujYcOGrGcpLi7GkiVLcODAAZSWlgIApKSkMGvWLGzevFkkl72sTnh4uEgqluLm9evX2Lt3r8D7Z/bs2dDU1BRxMiLMsWPHUFpaCkdHRzx9+hQDBgxAZmYmpKWl4eHhgTFjxog6IqknqGJJflhubm74888/ERsbCwAwNjbGggULWL/qjji6c+cOOnfuLDCmESjv5n3w4AG6d+8uklwFBQWIj48HABgaGkJaWhrv3r0Tq8qKOFQsGYbBzZs38fHjR3Tu3LnK8lr1FY/HQ1xcnNAlvUTxnha3PF8qKChAdHQ0dHR0oK6uXuf7c3V1xYwZMyAjI1NlCEVl8+bNq/M8RHSoYkl+SC4uLtixYwecnJwEuur27NmDhQsXYu3atSJOKFoSEhJIS0urchnAjIwMNGrUSGxa48ShElcZ25mys7Mxf/58hISEoGPHjti+fTtsbW3x4MEDAOUTrgICAup8HcKIiAi0bNkSXC4XERERNZZlc03ECo8ePcL48eORlJSEyv+2RNErIG55KhQXFyMhIQGGhoZVvljWJX19fTx58gRqamrQ09OrdrF/DocjssX+CTuoYkl+SBoaGnB1da0yPu/EiRNwcnLC+/fv6zyDOH9D53K5ePv2bZUr7bx48QJt27ZFbm4uq3mqI4qKZW2VpujoaIwbN461TNOmTcOdO3cwadIkXLx4EVwuFwzDYOfOneByufj1118hLy+Pixcv1mkOLpeLN2/eoFGjRuByueBwOFUqTIDoKk2WlpZo3rw51qxZg6ZNm1apuLC90L645SkoKICTkxM8PT0BlH/WDQwM4OTkBC0tLVYX2Cf1G1UsyQ9JWVkZwcHBVQbJv3jxAu3bt0d2dnadZ/jyG7q+vn615dj8hj5ixAgAwPnz5zFgwACBsYtlZWWIiIiAiYkJ/Pz8WMlTG1FULGurNDEMw2rlSUtLC8ePH0ePHj2QmpoKbW1t3LhxAz179gQABAUFwc7ODm/evKnTHElJSdDR0QGHw0FSUlKNZXV1des0izBycnIIDw+HkZER6/sWRtzyzJ8/H/fv3+dP3IuIiICBgQHOnz+P1atXIzQ0lJUcJSUlMDU1xaVLl2BmZsbKPol4oVnh5Ic0YcIE7N+/Hzt27BDYfvDgQdjb27OSISEhQejPolTRSsIwDBQUFAQm6khLS6Njx46YPn26qOKJBXE5VxXevn2L5s2bAyivZMrIyEBbW5v/uI6ODtLT0+s8x5eVxaSkpBrH6IqiYtmhQwfExcWJTUVO3PKcO3cOJ0+eRMeOHQVaT1u0aMEf18wGKSkpFBYWsrY/In6oYkl+GIsWLeL/zOFwcPjwYQQEBKBjx44AgMePHyM5OZm163J/macmHA6HtSWQjhw5AqB8qMDq1av5C7YnJibi3LlzMDMzY2Ugf4Xaup1jYmJYSvKZKCpFNeHxeAJLskhISAhUDKobq1aXevXqJXSMbk5ODnr16iWSrnAnJycsXrwYb968EbqkF9vjPsUtT3p6epXzBZSvb8n2e2jOnDnYsmULDh8+zOo4TyIe6IyTH0blrpyKq1tUfBtXV1eHuro6a1d2+NquJVFUDEJDQ+Hl5YWZM2ciOzsbHTt2hJSUFN6/f48dO3Zg1qxZrOSwtLT8qm5nUfDz84O8vDy6du0KANi7dy8OHToEc3Nz7N27l9WZ2IcPH4a8vDyA8lZBDw8P/heADx8+sJajQnXnJSMjA3JycqznAYCRI0cCAKZMmcLfJoqhC+Kap23btrh8+TKcnJz4WYDy9xbbi5MHBwfj+vXrCAgIQKtWraq8Z3x9fVnNQ9hFYywJ+Qmpq6vj9u3baNGiBQ4fPozdu3cjNDQUZ86cgYuLC6KioljJUdtYvQqiaEVs1aoVtmzZAltbWzx79gzt2rXDokWLcPPmTZiamvJbf+taTTNov8RGF744j9EVt3Gf4pbn3r17GDhwIBwcHODh4YFffvkFkZGRePDgAW7fvs3qZSYnT55c4+NsfbaIaFCLJSE/oYKCAv6lEgMCAjBixAhwuVx07Njxqyt734O4dTt/KSEhAebm5gCAM2fOYPDgwdi4cSNCQkJga2vLWo7ExETW9lUbcR6jK27vJXHL07VrV4SFhWHz5s1o1aoVAgICYG1tjYcPH6JVq1as5SgtLUWvXr3Qr18/NGnShLX9EvFBFUtCfkJGRkY4d+4chg8fDn9/fyxcuBAA8O7dOygqKrKeR5y6nStIS0ujoKAAAHDt2jX+2FxVVVWRL8dUWFjIv8Y7mypakvT09ODs7Cyybu/qHD16FAcOHEBCQgIePnwIXV1d7Ny5E/r6+hg6dGi9z2NoaIhDhw6xvt8vSUpKYubMmaz1ihDxI7pr4BFC6oyLiwucnZ2hp6eHDh068MdYBQQEwMrKivU8S5Ys4VfWnj17hsWLF8PW1hYJCQlfPQnqe+vatSsWLVqEdevWISgoCIMGDQJQvmRVs2bNWM9TVlaGdevWQUtLC/Ly8vwlqlauXAk3NzdWs6xatUrsKpX79+/HokWLYGtri+zsbP4YRmVlZezcubPe5snNzf2qG5vat2/P2vJGRAwxhJCfUlpaGhMSEsKUlZXxtz1+/JiJiopiPYucnByTkJDAMAzDrFq1ihk5ciTDMAzz9OlTpnHjxqznYRiGSUpKYgYNGsS0bt2aOXz4MH/7ggULGCcnJ9bzrFmzhjEwMGCOHTvGNGzYkImPj2cYhmF8fHyYjh07sp7n1KlTzKhRo5gOHTowVlZWAjdRMDMzY86ePcswDMPIy8vzj8+zZ88YNTW1epuHw+EwXC632lvF42w6efIkY2BgwOzevZt58OABEx4eLnAjPzfqCifkJ9WkSZMqY5zat28vkizi2O2so6ODS5cuVdn+559/iiAN4OXlhYMHD8LGxgYzZ87kb7ewsEB0dDSrWVxdXbFixQo4Ojri/PnzmDx5MuLj4xEcHIw5c+awmqVCQkKC0Nb2Bg0aID8/v97muXnzJv9nhmFga2uLw4cPQ0tLi7UMlY0dOxaA4BXHRDljnrCLKpaEkDpX0e3cpUsXBAUF4eTJkwBE1+0MAMnJyTU+rqOjw1KScqmpqUIX2+bxeCgpKWE1y759+3Dw4EGMGzcOHh4e+PXXX2FgYAAXFxdkZmaymqWCvr4+wsLCqkya8fPzE8kVXsQlT48ePQTuS0hIoGPHjjAwMGAtQ2XidhECwi6qWBJC6tyePXswe/ZsnD59Gvv37+e3ply9ehUDBgwQSabalvlhu1XF3Nwcd+/erVJROX36NOvjYpOTk9G5c2cAQMOGDflraU6YMAEdO3bEnj17WM0DlF+QYM6cOSgsLATDMAgKCsKJEyewadMmHD58uN7nESfVzZjn8Xi4cuWK2M2oJ98XVSwJIXVO3LqdgaoL3JeUlCA0NBQ7duzAhg0bWM/j4uKCSZMmITU1FTweD76+voiJiYGXl5fQY1eXmjRpgszMTOjq6kJHRwePHj2ChYUFEhIShC52z4Zp06ahYcOG+P3331FQUIDx48dDU1MTu3bt4ne91uc84iwuLg7u7u7w8PBAeno66y3whF20QDohpM6JW7dzTS5fvoxt27bh1q1brO/77t27WLt2LcLDw5GXlwdra2u4uLigX79+rOaYNm0atLW1sWrVKuzduxdLlixBly5d8OTJE4wYMYL1WeqVFRQUIC8vT+glDEVBnPIoKCggIiIC+vr6Is3x8eNHnDp1CocPH8b9+/fRrVs3jB07FsOHD0fjxo1Fmo3ULapYEkLqHJfLFatu55rExcXBwsJCJBNCxAWPxwOPx+Nf59nHxwcPHjyAsbExfvnlF0hLS4s4IalQcbWkChcvXkTv3r1FdhnF4OBgHD58GD4+PjA0NIS9vT2WLl2KiIgI/gUJyM+NusIJIXVO3LqdAVSZjc4wDNLS0rB69WoYGxuznic4OBg8Hg8dOnQQ2P748WNISEigbdu2rGXhcrngcj8vczx27FiRd+/q6+vX+OWkYt1PtohLnoqrJVVwcHBgZb/CtG7dGrm5uRg/fjwePHiAFi1aAACWLVsmskyEfVSxJITUOQsLiyrb2rZtC01NTWzbtq1KqwsblJWVq1QMGIaBtrY2fHx8WM8zZ84c/Prrr1UqlqmpqdiyZQseP35cp/uPiIhAy5YtweVyERERUWPZ1q1b12kWYRYsWCBwv+LLiZ+fH5YsWVJv84jTdbdjYmIwZswY9OrVi1on6zGqWBJCRMbExATBwcEi2feX6/8B5a10GhoaMDIy4ncBsykyMhLW1tZVtltZWSEyMrLO929paYk3b96gUaNGsLS05K87WJmo1iGcP3++0O179+7FkydPWE4jfnkqy83NxY0bN2BqagpTU1NW9vny5Ut4eHhg1qxZ+PjxI8aNGwd7e/saW3bJz4fGWBJC6lxN3c7R0dEICwsTTTAxoqamhkuXLvEvv1nhwYMHGDRoELKysup0/0lJSdDR0QGHw0FSUlKNZcVpuZiXL1/C0tJS5Nd3ryCqPKNHj0b37t0xd+5cfPz4ERYWFkhMTATDMPDx8cHIkSNZzXPjxg24u7vD19cXhYWFcHZ2xrRp09C8eXNWcxD2UYslIaTOiVu3MwBkZGRATU0NAJCSkoJDhw7h48ePGDJkCLp37856nn79+mH58uU4f/48f9xcdnY2fvvtN/Tt27fO9/9lZbFx48aQkZGp831+D6dPn4aqqqqoY/CJKs+dO3ewYsUKAMDZs2fBMAyys7Ph6emJ9evXs16x7N27N3r37o2cnBx4e3vD3d0df/zxB1q2bFnrUAvyY6MWS0JInbt9+7bAfVF2Oz979gxDhgxBSkoKjI2N4ePjgwEDBiA/Px9cLhf5+fk4ffo0hg0bxmqu1NRUdO/eHRkZGfwF0cPCwtC4cWMEBgZCW1ubtSyKiooYPnw4HBwcYGNjIzCRR1SsrKwEvpwwDIM3b94gPT0d+/btw4wZM+p1noYNG+LFixfQ1tbGxIkToampic2bNyM5ORnm5ubIy8tjNY8wYWFhcHd3h6urq6ijkDpEFUtCSL0ycOBASEpKYtmyZTh69CguXbqE/v3749ChQwAAJycnPH36FI8ePWI9W35+Pry9vREeHo6GDRuidevWGDduHKSkpFjNcfbsWRw/fhyXL1+GkpISxowZAwcHB1Znple2Zs0agfsVX0569uzJ2hhCcc7TvHlzrF+/HoMGDYK+vj58fHzQu3dvhIeHw8bGBu/fv2c1T2lpKW7duoX4+HiMHz8eCgoKeP36NRQVFSEvL89qFsIuqlgSQuqcOHU7q6ur48aNG2jdujXy8vKgqKiI4OBgtGnTBgAQHR2Njh07Ijs7m9Vc4ujDhw84ffo0Tpw4gRs3bsDAwAAODg5wcXERdTRSyb59+zB//nzIy8tDR0cHoaGh4HK52L17N3x9fatMVqtLSUlJGDBgAJKTk1FUVIQXL17AwMAA8+fPR3FxMfbv389aFsI+qlgSQuqMOHY7c7lc/uxnoPxKJeHh4TAwMAAAvH37FpqamiKZ+RwbG4ubN2/i3bt34PF4Ao+JujIXGRkJe3t7REREiOTYfMtkGEVFxTpMUk7c8gDA06dPkZycjH79+vEXSL98+TJUVFT4135nw7Bhw6CgoAA3NzeoqanxP1+3bt3C9OnTERsby1oWwj6avEMIqTO//vorWrVqBW9vbxw9ehSDBw/GoEGDBLqdN2/ezPp4xsoTicRhOZRDhw5h1qxZUFdXR5MmTQQycTgckVQsCwsLceHCBRw/fhx+fn5o3LixSNaMBIRPAKuMYRjWlkMShzyLFi3CunXrICcnh0WLFvG33717t0pZNiuWd+/exYMHD6pcoUlPTw+pqams5SCiQRVLQkidCQ4O5nc7W1hY4ODBg5g9ezZ/MoiTkxM6duzIei5HR0c0aNAAQHnlaebMmfwWnqKiItbzAMD69euxYcMGLF26VCT7/5K/vz+OHz+Oc+fOQVJSEv/73/8QEBAgktnyFY4cOYJly5bB0dGRvyTTw4cP4enpiU2bNkFPT6/e5QkNDUVJSQn/5+qw/cWJx+MJrUy/evUKCgoKrGYh7KOucEJInRHHbufJkyd/VTm2r2iiqKiIsLAw/rERJVlZWQwePBj29vawtbVlffKQMDY2Npg2bRrGjRsnsP348eM4ePAgbt26Va/ziJMxY8ZASUkJBw8ehIKCAiIiIqChoYGhQ4dCR0dHrK4WRL4/qlgSQuoMl8vF27dvoaGhAQD8fzL6+voARDueUdxMnToV7dq1w8yZM0UdBR8+fBC7liVZWVmEh4dXuY77ixcvYGlpiYKCgnqdR5y8evUK/fv3B8MwiI2NRdu2bREbGwt1dXXcuXOH/0WT/JyoK5wQUqfEsdtZHBkZGWHlypV49OgRWrVqVaWVcN68eaxlUVBQQHx8PI4cOYL4+Hjs2rULjRo1wtWrV6Gjo4MWLVqwlqWCtrY2Dh06hK1btwpsP3z4MKtrfIprHnHSrFkzhIeH4+TJkwgPD0deXh6mTp0Ke3t7NGzYUNTxSB2jFktCSJ0R125noHzNyM2bN+P69etCZ2G/fPmS1TwVrbjCcDgcVvPcvn0bAwcORJcuXXDnzh1ERUXBwMAAmzdvxpMnT3D69GnWslS4cuUKRo4cCSMjI3To0AEAEBQUhNjYWJw5cwa2trb1Oo84uXPnDjp37lzl4gelpaV48OCBSMfqkrpHFUtCSL00btw43L59GxMmTEDTpk2rTHCYP3++iJKJXqdOnTBq1CgsWrRIYFxsUFAQRowYgVevXokkV0pKCvbv34/o6GgAgJmZGWbOnCmyFkJxyyMuJCQkkJaWVqXLOyMjA40aNaKhLz85qlgSQuolZWVlXL58GV26dBF1FLEjLy+PZ8+eQV9fX6BimZiYCFNTUxQWFoo6IhFjlcdWV3jx4gXatm37TWuAkh8PjbEkhNQ5cet2BgAVFRWoqqqyvt+avHr1ChcuXEBycjKKi4sFHtuxYwdrOZSVlZGWllalez40NBRaWlqs5ajs7t27+Ouvv/Dy5UucOnUKWlpaOHr0KPT19dG1a9d6n0fURowYAaB86MaXY6sBoKysDBEREayup0lEgyqWhJA6N23atBq7nUVh3bp1cHFxgaenJ2RlZUUdB9evX4ednR0MDAwQHR2Nli1bIjExEQzDwNramtUsY8eOxdKlS3Hq1ClwOBzweDzcv38fzs7OmDhxIqtZKpw5cwYTJkyAvb09QkJC+BO/cnJysHHjRly5cqVe5xEHSkpKAMoXhldQUBCYqCMtLY2OHTti+vTpoopH2MIQQkgdU1JSYu7duyfqGAIsLS0ZBQUFRl5enmnZsiVjZWUlcGNbu3btGBcXF4ZhGEZeXp6Jj49nPnz4wNjZ2TH79u1jNUtRUREzbdo0RlJSkuFwOIyUlBTD4XAYBwcHprS0lNUsFSwtLRlPT0+GYT4fH4ZhmJCQEKZx48b1Po84Wb16NZOXlyfqGEREqMWSEFLnxLHbme3LSNYmKioKJ06cAABISkri48ePkJeXx9q1azF06FDMmjWLtSzS0tI4dOgQXFxc8OzZM+Tl5cHKyqrKmo1siomJETqbWElJCdnZ2fU+jzhZtWqVqCMQEaKKJSGkzolbtzMgfv/85OTk+OMqmzZtivj4eP56ke/fv6/z/X95rWlhHj16xP+ZzfGeFZo0aYK4uLgql0q8d++eSK5WJG55xM3p06fx999/Cx0vHBISIqJUhA1UsSSE1Lnt27cjPj4ejRs3hp6eXpXFv0X5j+bp06eIiooCALRo0QJWVlYiydGxY0fcu3cPZmZmsLW1xeLFi/Hs2TP4+vqycj31yteaDgkJQWlpKUxMTACUz+iVkJBAmzZt6jyLMNOnT8f8+fPh7u4ODoeD169f4+HDh3B2dsbKlSvrfR5x4urqihUrVsDR0RHnz5/H5MmTER8fj+DgYMyZM0fU8Ugdo4olIaTOiVu3MwC8e/cOY8eOxa1bt6CsrAwAyM7ORq9eveDj41NlqZS6tmPHDuTl5QEA1qxZg7y8PJw8eRLGxsastBDevHlTIIuCggI8PT2hoqICAMjKysLkyZPRrVu3Os8izLJly8Dj8WBjY4OCggJ0794dDRo0gLOzM5ycnOp9HnGyb98+HDx4EOPGjYOHhwd+/fVXGBgYwMXFBZmZmaKOR+oYrWNJCKmXxowZg5cvX8LLywtmZmYAgMjISEyaNAlGRkb88Y71kZaWFgICAqpcuvGff/5Bv3798Pr1a1bzlJWV4f79+2jdujVkZWURFxeHvLw8mJubQ15entUs4phH3MjKyiIqKgq6urpo1KgRAgMDYWFhgdjYWHTs2BEZGRmijkjqELVYEkJYIy7dzgDg5+eHa9eu8SuVAGBubo69e/eiX79+rOcxMDBAcHAw1NTUBLZnZ2fD2tqa1bU+c3NzkZ6eXmV7eno6Pnz4wFqOChISEujXrx+ioqKgrKwMc3Nz1jOIcx5x06RJE2RmZkJXVxc6Ojp49OgRLCwskJCQAGrL+vlRxZIQUufErdsZAHg8XpWxngAgJSVVZQF3NiQmJgq91F1RURFSU1NZzTJ8+HBMnjwZ27dvR/v27QEAjx8/xpIlS/iLYLOtZcuWePnyZY3XVGeTuOURJ71798aFCxdgZWWFyZMnY+HChTh9+jSePHkisvcPYQ91hRNC6pw4djsPHToU2dnZOHHiBDQ1NQEAqampsLe3h4qKCs6ePctKjgsXLgAoH4fq6enJX2QaKO9yvX79OgIDAxETE8NKHgAoKCiAs7Mz3N3dUVJSAqB8CaSpU6di27ZtkJOTYy1LBT8/Pyxfvhzr1q1DmzZtqmRQVFSs13nECY/HA4/Hg6RkeduVj48PHjx4AGNjY/zyyy+QlpYWcUJSl6hiSQipc0pKSrh27RratWsnsD0oKAj9+vUTybp/KSkpsLOzw/Pnz6Gtrc3f1rJlS1y4cAHNmjVjJQeXywVQfhm8yn+OpaSkoKenh+3bt2Pw4MGs5PlSfn4+4uPjAQCGhoYiqVBWqDhOAASu3MQwDDgcjtDW3vqUhxBxQV3hhJA6J27dzgCgra2NkJAQXLt2DdHR0QAAMzMz9OnTh9UcFb+/vr4+goODoa6uzur+ayInJ4fWrVuLOgYAwVnr4kDc8oibwsJCRERE4N27d1U+43Z2diJKRdhALZaEkDonLt3OP5rs7Gz+mNT6auLEidi7dy8UFBQAAOHh4TA3Nxf6RaU+5hFHfn5+mDhxotCF/ak19+dHFUtCSJ0Tl25nV1dXzJgxAzIyMnB1da2x7Lx581jJVGHLli3Q09PDmDFjAACjRo3CmTNn0LRpU1y5cgUWFhas5hEXEhISSEtLQ6NGjQCUj10MCwsT2dVtxC2PODI2Nka/fv3g4uKCxo0bizoOYRlVLAkhrGAYRuTdzvr6+njy5AnU1NRqnM3L4XBYXd4HKM/m7e2Nzp07IzAwEKNHj8bJkyf5l8ULCAhgNY+44HK5ePPmDb8ip6CggPDwcJFV5MQtjzhSVFREaGgoDA0NRR2FiACNsSSEsILD4aBv377o27evyDIkJCQI/VkcvHnzht+ae+nSJYwePRr9+vWDnp4eOnToIOJ0hHy9//3vf7h16xZVLOspqlgSQuqEOHc7A8DatWvh7OwMWVlZge0fP37Etm3b4OLiwmoeFRUVpKSkQFtbG35+fli/fj2A8pbe+j4mLTIyEm/evAFQfjyio6P5l7+swOYkI3HLI2727NmDUaNG4e7du2jVqlWV8aei+LwT9lBXOCGkTohztzNQdaxchYyMDDRq1Ij1ytzcuXNx6dIlGBsbIzQ0FImJiZCXl4ePjw+2bt2KkJAQVvOICy6XK3QpJuDzEk1sTggRtzziyM3NDTNnzoSMjAzU1NQElmMS1eedsIdaLAkhdUKcu52Bz+sNVhYeHg5VVVXW8/z555/Q09NDSkoKtm7dyr/mdFpaGmbPns16HnEhbu8dccsjjlasWIE1a9Zg2bJlAut9kvqBWiwJIXVOnLqdVVRUwOFwkJOTA0VFRYHKZVlZGfLy8jBz5kzs3buXtUyE/ExUVVURHBxMYyzrKapYEkLqnDh1O3t6eoJhGEyZMgU7d+4UuISitLQ09PT00KlTJ1ayXLhwAQMHDoSUlBT/0o7VoUWly9f1DAoKErro9sSJE1nPQ4uAC7dw4UJoaGjgt99+E3UUIgJUsSSE1Dkul4u3b99CQ0NDYPuNGzcwZswYpKens57p9u3b6Ny5s0gXtv5y6Zqaugzr+5g9ALh48SLs7e2Rl5dXpaWZw+EgMzOT1Ty0CHj15s2bBy8vL1hYWKB169ZVPmM7duwQUTLCBqpYEkLqjLh1O+fm5kJRUZH/c00qyhHx0Lx5c9ja2mLjxo1VhlSIAi0CXr1evXpV+xiHw8GNGzdYTEPYRhVLQkidEaduZ0CwS75idm9lopjVy+Px4OHhAV9fXyQmJoLD4cDAwAAjR47EhAkThOasb+Tk5PDs2TOxWYicFgEnRDiaFU4IqTOTJk0CUL70kKi7nYHyrveKGd83b94UaZYKDMPAzs6Of9nGVq1agWEYREVFwdHREb6+vjh37pyoY4pc//798eTJE7GpWNIi4IQIRy2WhJA6Qd3OX+fIkSOYP38+zp8/X6UL8caNGxg2bBj27Nkjkskp4sTNzQ1r167F5MmThS66zfZkmYKCAowaNQoaGhq0CDiAESNGwMPDA4qKihgxYkSNZX19fVlKRUSBKpaEkDohrt3OFfz8/CAvL4+uXbsCAPbu3YtDhw7B3Nwce/fuhYqKCis5+vXrh969e2PZsmVCH9+4cSNu374Nf39/VvKIK3Gb3ESLgAuaPHkyXF1doaCgAEdHxxqHbxw5coTFZIRtVLEkhNSJ27dvo0uXLpCUlMTt27drLNujRw+WUn3WqlUrbNmyBba2tnj27Bnatm2LxYsX4+bNmzA1NWXtn1+TJk3g5+cHS0tLoY+HhoZi4MCB/EsIEvHQpEkTzJs3jxYBJ6QSqlgSQuoleXl5/PPPP9DT08Pq1avxzz//4PTp0wgJCYGtrS1rFTlpaWkkJSWhadOmQh9//fo19PX1UVRUxEoe8nVoEfDq9e7dG76+vlBWVhbYnpubi2HDhtGs8J8cTd4hhNQ5cel2/pK0tDQKCgoAANeuXeOPYVRVVa11TOj3VFZWBknJ6v8US0hIoLS0lLU84mrt2rU1Ps7m1ZuA8olpJ0+epEXAhbh16xaKi4urbC8sLMTdu3dFkIiwiSqWhJA6t2TJEmzZsgUA8OzZMyxatIjf7bxo0SKRjLnq2rUrFi1ahC5duiAoKAgnT54EALx48QLNmjVjLQfDMHB0dESDBg2EPk4tleXOnj0rcL+kpAQJCQmQlJSEoaEh6xXLsrIybN26Ff7+/rQI+CcRERH8nyMjIwVa/cvKyuDn5wctLS1RRCMsooolIaTOJSQkwNzcHABw5swZDBkyBBs3buR3O4vCnj17MHv2bJw+fRr79+/n/8O7evUqBgwYwFqOiiWZalLfZ4QD5WNNK8vNzYWjoyOGDx/Oep5nz57BysoKAPDPP/8IPFZf1x21tLQEh8MBh8NB7969qzzesGFD7N69WwTJCJtojCUhpM6pqqri3r17MDc3R9euXTFx4kTMmDEDiYmJMDc353dJE/Ktnj17hiFDhiAxMVHUUeq9pKQkMAwDAwMDBAUFCVzCVVpaGo0aNYKEhIQIExI2UIslIaTOiUu3c2VlZWU4d+4coqKiAAAtWrSAnZ0d/fP7geTk5CAnJ0fUMQgAXV1dAOVXkiL1F1UsCSF1Tly6nb8UFxcHW1tbpKamwsTEBACwadMmaGtr4/LlyzTbV8y4uroK3GcYBmlpaTh69CgGDhzIep5evXrV2OVdn2c+e3p6Ql1dHYMGDQIA/Prrrzh48CDMzc1x4sQJfgWU/JyoK5wQUi/Z2tqCYRh4e3vzL/OYkZEBBwcHcLlcXL58WcQJyZf09fUF7nO5XGhoaKB3795Yvnw5FBQUWM2zcOFCgfslJSUICwvDP//8g0mTJmHXrl2s5hEnJiYm2L9/P3r37o2HDx/CxsYGO3fuxKVLlyApKUlX3vnJUcWSEMIKcet2lpOTw6NHj9CqVSuB7eHh4ejSpQvy8vJEkov82FavXo28vDz88ccfoo4iMrKysoiOjoaOjg6WLl2KtLQ0eHl54fnz5+jZsyfS09NFHZHUIbpcACGkzsXFxcHMzAwTJ06Er68vfH194eDggBYtWiA+Pl4kmRo0aIAPHz5U2Z6XlwdpaWkRJCI/AwcHB7i7u4s6hkjJy8sjIyMDABAQEIC+ffsCAGRkZPDx40dRRiMsoDGWhJA6N2/ePBgaGuLRo0dVup3nzZsnkm7nwYMHY8aMGXBzc0P79u0BAI8fP8bMmTNhZ2fHeh5Ss8LCQuzevRs3b97Eu3fvqkwQCQkJEVEyQQ8fPoSMjIyoY4hU3759MW3aNFhZWeHFixf8JcWeP39O4yvrAapYEkLq3O3btwUqlQCgpqaGzZs3o0uXLiLJ5OrqikmTJqFTp078xa1LSkowdOjQej0+TlxNnToVAQEB+N///of27duLfK3IESNGCNyvmEz05MkTrFy5UkSpxMPevXuxcuVKpKSkwNfXF2pqagCAp0+fYvz48SJOR+oaVSwJIXVOHLudlZWVcf78ecTFxSEyMhIAYG5uDiMjI5HkITW7dOkSrly5IrIvIpUpKSkJ3OdyuTAxMcHatWvRr18/EaUSD8rKyhg1ahT++usvrF69Gi1btoSWlhYMDQ1hYGAg6nikjlHFkhBS58S129nNzQ1//vknYmNjAQDGxsZYsGABpk2bJrJMRDgtLS3WZ37XRBSXIf1RnDlzBhMmTIC9vT1CQ0P5lyXNzc3Fxo0bceXKFREnJHWJJu8QQuqcq6srDA0N0alTJ8jIyEBGRgadO3eGkZGRyLqdXVxcMH/+fAwZMgSnTp3CqVOnMGTIECxcuJD1606T2m3fvh1Lly5FUlKSqKNUkZeXh9zcXIFbfbZ+/XocOHAAhw4dEriGepcuXcRmLCypO7TcECGENeLU7ayhoQFXV1eMGzdOYPuJEyfg5OSE9+/fiygZESY9PR2jR4/GnTt3ICsrK1BhAYDMzExW8yQkJGDu3Lm4desWCgsL+dsZhgGHw0FZWRmrecSJrKwsIiMjoaenBwUFBYSHh8PAwAAvX76Eubm5wPEiPx/qCieEsELcup1LSkrQtm3bKtvbtGmD0tJSESQiNRk3bhxSU1OxceNGNG7cWOSTdxwcHMAwDNzd3cUijzhp0qQJ4uLioKenJ7D93r17NMayHqCKJSGkzrm4uGDHjh1wcnJCp06dAJQvy7Jw4UIkJydj7dq1rGeaMGEC9u/fjx07dghsP3jwIOzt7VnPQ2r24MEDPHz4EBYWFqKOAqB8If2nT5/yLwdKPps+fTrmz58Pd3d3cDgcvH79Gg8fPoSzs3O9nzFfH1DFkhBS5/bv349Dhw4JdDvb2dmhdevWcHJyEknFEihvRQ0ICEDHjh0BlE8oSk5OxsSJE7Fo0SJ+ucqVT8I+U1NTsVpcu127dkhJSaGKpRDLli0Dj8eDjY0NCgoK0L17dzRo0ADOzs5wcnISdTxSx2iMJSGkzikrKyM4OBjGxsYC21+8eIH27dsjOzub9Uy9evX6qnIcDgc3btyo4zSkNgEBAVizZg02bNiAVq1aVRljqaioyGqe+Ph4zJw5Ew4ODmjZsmWVPK1bt2Y1jzgqLi5GXFwc8vLyYG5uDnl5eVFHIiygiiUhpM45OTlBSkqqSsufs7MzPn78iL1794ooGflRcLnli5hUHssoqskyjx49wvjx45GYmMjfxuFwaPIOqfeoK5wQwgrqdib/xc2bN0UdQcCUKVNgZWWFEydO0OQdQr5ALZaEkDpH3c7kZyMnJ4fw8HC6UhMhlVCLJSGkzolbaxP5MURERKBly5bgcrmIiIiosSzbYxp79+5NFUtChKAWS0IIIWKJy+XizZs3aNSoEbhcLn8MY2WiGNN48OBBrF+/HlOmTBE6mUiUlyolRJSoYkkIIUQsJSUlQUdHBxwOp9ZLOerq6rKUqlzFZCJhaPIOqc+oYkkIIYQQQr4LGmNJCCHkhxAbG4ubN2/i3bt34PF4Ao+5uLiIKBUh5EvUYkkIIUTsHTp0CLNmzYK6ujqaNGkisLwPh8NBSEhInWdwdXXFjBkzICMjA1dX1xrLzps3r87zECKOqGJJCCFE7Onq6mL27NlYunSpyDLo6+vjyZMnUFNTg76+frXlOBwOXr58yWIyQsQHVSwJIYSIPUVFRYSFhcHAwEDUUQghNah+WhshhBAiJkaNGoWAgABRx+ArLCys9rG0tDQWkxAiXmjyDiGEELFnZGSElStX4tGjR0LXjWR7TKO1tTWOHz8OS0tLge1nzpzBzJkzkZ6ezmoeQsQFdYUTQggRe+I2pnH27Nlwd3fHmjVrsHTpUuTn52POnDn4+++/sWHDBixcuJDVPISIC6pYEkIIIf/C5cuXMW3aNBgZGSEtLQ3y8vI4duwYWrZsKepohIgMVSwJIYSQf4HH48HJyQn79++HpKQkLl68iP79+4s6FiEiRWMsCSGEiKVFixZh3bp1kJOTw6JFi2osu2PHDpZSlYuPj8f48ePx5s0b+Pv74/bt27Czs8P8+fOxYcOGKmNACakvqGJJCCFELIWGhqKkpIT/szixtLTEoEGD4O/vD2VlZfTt2xe2traYOHEiAgMDxS4vIWyhrnBCCCHkGx09ehQTJkyosv3Dhw9YsGAB3NzcRJCKENGjiiUhhBCxNWXKlFrLcDgcqsgRIiaoYkkIIURscblc6OrqwsrKCjX9uzp79iyLqT6LjIxEcnIyiouL+ds4HA6GDBkikjyEiBqNsSSEECK2Zs2ahRMnTiAhIQGTJ0+Gg4MDVFVVRR0LL1++xPDhw/Hs2TNwOBx+pZfD4QAAysrKRBmPEJGhSzoSQggRW3v37kVaWhp+/fVXXLx4Edra2hg9ejT8/f1rbMGsa/Pnz4e+vj7evXsHWVlZPH/+HHfu3EHbtm1x69YtkeUiRNSoK5wQQsgPIykpCR4eHvDy8kJpaSmeP38OeXl51nOoq6vjxo0baN26NZSUlBAUFAQTExPcuHEDixcvplnhpN6iFktCCCE/DC6Xy+96FmV3c1lZGRQUFACUVzJfv34NANDV1UVMTIzIchEialSxJIQQItaKiopw4sQJ9O3bF82bN8ezZ8+wZ88eJCcni6S1EgBatmyJ8PBwAECHDh2wdetW3L9/H2vXroWBgYFIMhEiDqgrnBBCiNiaPXs2fHx8oK2tjSlTpsDe3h7q6uqijgV/f3/k5+djxIgRiI2NxZAhQ/DixQuoqanBx8cHNjY2oo5IiEhQxZIQQojY4nK50NHRgZWVFX/GtTC+vr4sphIuMzMTKioqNeYk5GdHyw0RQggRWxMnThSritrXLNgOAO7u7nWchBDxRC2WhBBCyFcS9wXbCRE1arEkhBBCvpK4LthOiLigFktCCCHkGxQVFcHX1xfu7u548OABBg0ahKlTp6Jfv35i1W1PiChQxZIQQgj5l8RlwXZCxAWtY0kIIYT8S+KyYDsh4oIqloQQQsg3EMcF2wkRFzR5hxBCCPlKlRdsP3HihFgs2E6IuKAxloQQQshX+pEWbCdEFKjFkhBCCPlK4rZgOyHihlosCSGEEELId0GTdwghhBBCyHdBFUtCCCGEEPJdUMWSEEIIIYR8F1SxJIQQQggh3wVVLAkhhBBCyHdBFUtCCCGEEPJdUMWSEEIIIYR8F1SxJIQQQggh38X/AWMi7WqRtQOiAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.heatmap(matrix_corr, cmap='coolwarm',vmin=-1, vmax=1,annot= True)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "matrix_corr.to_csv('/home/mlia/proyectos/data-generation/docs/notebooks/aux/matrix_corr_emt.csv', index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obtenemos que las variables mΓ‘s correladas entre sΓ­ son:\n", "- `positionBusLon` y `positionBusLat`\n", "- `MinimunFrequency` y `MaximumFrequency`\n", "\n", "AdemΓ‘s la variable mΓ‘s correlada con `estimateArrive` es `DistanceBus`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Estudio por variables\n", "\n", "Para cada variable:\n", "1. Comprobaremos si tiene valores nulos \n", "2. Calcularemos la correlaciΓ³n con la variable `estimateArrive`\n", "3. Dibujaremos el tiempo medio de llegada segΓΊn sus categorΓ­as en el caso en el que fuera posible\n", "4. Decidiremos si la mantenemos o la eliminamos" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (9, 21)
statisticPKdatedatetimebuslinestoppositionBusLonpositionBusLatpositionTypeBusDistanceBusdestinationdeviationStartTimeStopTimeMinimunFrequencyMaximumFrequencyisHeaddayTypestrikeestimateArrive
strstrstrstrf64strf64f64f64f64f64strf64strstrf64f64f64strstrf64
"count""5""5""5"5.0"5"5.05.05.05.05.0"5"5.0"4""4"4.04.05.0"4""4"5.0
"null_count""0""0""0"0.0"0"0.00.00.00.00.0"0"0.0"1""1"1.01.00.0"1""1"0.0
"mean"null"2024-03-13"null2826.6null2255.0-3.67958440.4642480.03542.0null0.0nullnull5.7520.250.0nullnull742.2
"std"nullnullnull3510.668711null2304.7006310.0152010.0342550.02000.683633null0.0nullnull1.2583062.3629080.0nullnull544.644104
"min""2024-03-13 11:…"2024-03-13"null122.0"174"78.0-3.70203740.4051060.0339.0"ALSACIA"0.0"05:30""23:45"4.017.00.0"LA""N"76.0
"25%"null"2024-03-13"null584.0null246.0-3.68578240.4649950.03195.0null0.0nullnull6.020.00.0nullnull281.0
"50%"null"2024-03-13"null2071.0null1762.0-3.67851940.4782970.03891.0null0.0nullnull6.022.00.0nullnull860.0
"75%"null"2024-03-13"null2506.0null3794.0-3.66605840.4837160.04703.0null0.0nullnull6.022.00.0nullnull1190.0
"max""2024-03-13 22:…"2024-03-13"null8850.0"C03"5395.0-3.66552540.4891270.05582.0"VALDEBEBAS"0.0"06:00""23:45"7.022.00.0"LA""N"1304.0
" ], "text/plain": [ "shape: (9, 21)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ statistic ┆ PK ┆ date ┆ datetime ┆ … ┆ isHead ┆ dayType ┆ strike ┆ estimateArri β”‚\n", "β”‚ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ ve β”‚\n", "β”‚ str ┆ str ┆ str ┆ str ┆ ┆ f64 ┆ str ┆ str ┆ --- β”‚\n", "β”‚ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•ͺ══════════════β•ͺ════════════β•ͺ══════════β•ͺ═══β•ͺ════════β•ͺ═════════β•ͺ════════β•ͺ══════════════║\n", "β”‚ count ┆ 5 ┆ 5 ┆ 5 ┆ … ┆ 5.0 ┆ 4 ┆ 4 ┆ 5.0 β”‚\n", "β”‚ null_count ┆ 0 ┆ 0 ┆ 0 ┆ … ┆ 0.0 ┆ 1 ┆ 1 ┆ 0.0 β”‚\n", "β”‚ mean ┆ null ┆ 2024-03-13 ┆ null ┆ … ┆ 0.0 ┆ null ┆ null ┆ 742.2 β”‚\n", "β”‚ std ┆ null ┆ null ┆ null ┆ … ┆ 0.0 ┆ null ┆ null ┆ 544.644104 β”‚\n", "β”‚ min ┆ 2024-03-13 ┆ 2024-03-13 ┆ null ┆ … ┆ 0.0 ┆ LA ┆ N ┆ 76.0 β”‚\n", "β”‚ ┆ 11:11:06.651 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ ┆ 553_B2071… ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 25% ┆ null ┆ 2024-03-13 ┆ null ┆ … ┆ 0.0 ┆ null ┆ null ┆ 281.0 β”‚\n", "β”‚ 50% ┆ null ┆ 2024-03-13 ┆ null ┆ … ┆ 0.0 ┆ null ┆ null ┆ 860.0 β”‚\n", "β”‚ 75% ┆ null ┆ 2024-03-13 ┆ null ┆ … ┆ 0.0 ┆ null ┆ null ┆ 1190.0 β”‚\n", "β”‚ max ┆ 2024-03-13 ┆ 2024-03-13 ┆ null ┆ … ┆ 0.0 ┆ LA ┆ N ┆ 1304.0 β”‚\n", "β”‚ ┆ 22:04:04.171 ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ ┆ 556_B2506… ┆ ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.head().describe() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `date`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 2)
datecount
dateu32
2024-03-131131139
" ], "text/plain": [ "shape: (1, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ date ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ date ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═════════║\n", "β”‚ 2024-03-13 ┆ 1131139 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('date')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `datetime`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
datetimecount
datetime[ΞΌs]u32
2024-03-13 11:37:57.3212672
2024-03-13 13:26:54.20861212
2024-03-13 09:59:29.1406724
2024-03-13 10:52:58.6649174
2024-03-13 21:01:54.7486382
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ datetime ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ datetime[ΞΌs] ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 2024-03-13 11:37:57.321267 ┆ 2 β”‚\n", "β”‚ 2024-03-13 13:26:54.208612 ┆ 12 β”‚\n", "β”‚ 2024-03-13 09:59:29.140672 ┆ 4 β”‚\n", "β”‚ 2024-03-13 10:52:58.664917 ┆ 4 β”‚\n", "β”‚ 2024-03-13 21:01:54.748638 ┆ 2 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('datetime')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `bus`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
buscount
i64u32
33171260
432959
2266515
475817
548229
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ bus ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 3317 ┆ 1260 β”‚\n", "β”‚ 4329 ┆ 59 β”‚\n", "β”‚ 2266 ┆ 515 β”‚\n", "β”‚ 4758 ┆ 17 β”‚\n", "β”‚ 548 ┆ 229 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('bus')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
bus
f64
0.06748
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ bus β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.06748 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('bus','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tiempo medio de espera segΓΊn autobΓΊs" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
busestimateArrive
i64f64
4755398.504202
25041082.137097
5654380.661765
560442.948276
563528.829897
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ bus ┆ estimateArrive β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•ͺ════════════════║\n", "β”‚ 4755 ┆ 398.504202 β”‚\n", "β”‚ 2504 ┆ 1082.137097 β”‚\n", "β”‚ 5654 ┆ 380.661765 β”‚\n", "β”‚ 560 ┆ 442.948276 β”‚\n", "β”‚ 563 ┆ 528.829897 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('bus')).mean().select(pl.col('bus'),pl.col('estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SegΓΊn que autobΓΊs sea, el tiempo medio de espera varia bastante. Por lo que esta variable va a ser necesaria a la hora de la creaciΓ³n de nuestro modelo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `line`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
linecount
stru32
"167"3352
"67"46138
"48"13481
"173"23933
"C2"1650
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ line ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 167 ┆ 3352 β”‚\n", "β”‚ 67 ┆ 46138 β”‚\n", "β”‚ 48 ┆ 13481 β”‚\n", "β”‚ 173 ┆ 23933 β”‚\n", "β”‚ C2 ┆ 1650 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('line')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
line
f64
0.120876
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ line β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.120876 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('line','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tiempo medio de espera segΓΊn lΓ­nea" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.4.0'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var reloading = false;\n var Bokeh = root.Bokeh;\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n root._bokeh_is_loading = css_urls.length + 0;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.4.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.4.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.4.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.4.0.min.js\", \"https://cdn.holoviz.org/panel/1.4.0/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n\ttry {\n inline_js[i].call(root, root.Bokeh);\n\t} catch(e) {\n\t if (!reloading) {\n\t throw e;\n\t }\n\t}\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n if (!reloading && !bokeh_loaded) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));", "application/vnd.holoviews_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n console.log(message)\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n comm.open();\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n }) \n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n", "application/vnd.holoviews_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ] }, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "p1002" } }, "output_type": "display_data" }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ ":Bars [line] (estimateArrive)" ] }, "execution_count": 33, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "p1004" } }, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('line')).mean().select(pl.col('line'),pl.col('estimateArrive')).collect().plot.bar(x='line',rot=90)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SegΓΊn que lΓ­nea sea, el tiempo medio de espera varia bastante. Por lo que esta variable va a ser necesaria a la hora de la creaciΓ³n de nuestro modelo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `stop`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
stopcount
i64u32
17453446
59193435
58031707
306801
2711721
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ stop ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 1745 ┆ 3446 β”‚\n", "β”‚ 5919 ┆ 3435 β”‚\n", "β”‚ 5803 ┆ 1707 β”‚\n", "β”‚ 30 ┆ 6801 β”‚\n", "β”‚ 271 ┆ 1721 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('stop')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
stop
f64
0.063389
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ stop β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.063389 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('stop','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tiempo medio de espera segΓΊn parada" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
stopestimateArrive
i64f64
5800804.162099
4493711.560164
1608605.882045
5919773.480058
5803786.485647
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ stop ┆ estimateArrive β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•ͺ════════════════║\n", "β”‚ 5800 ┆ 804.162099 β”‚\n", "β”‚ 4493 ┆ 711.560164 β”‚\n", "β”‚ 1608 ┆ 605.882045 β”‚\n", "β”‚ 5919 ┆ 773.480058 β”‚\n", "β”‚ 5803 ┆ 786.485647 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('stop')).mean().select(pl.col('stop'),pl.col('estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SegΓΊn que parada sea, el tiempo medio de espera varia bastante. Por lo que esta variable va a ser necesaria a la hora de la creaciΓ³n de nuestro modelo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `positionBusLon`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
positionBusLoncount
f64u32
-3.6979793
-3.6471531
-3.63477
-3.7111682
-3.71340123
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ positionBusLon ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ f64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ -3.697979 ┆ 3 β”‚\n", "β”‚ -3.647153 ┆ 1 β”‚\n", "β”‚ -3.6347 ┆ 7 β”‚\n", "β”‚ -3.711168 ┆ 2 β”‚\n", "β”‚ -3.713401 ┆ 23 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('positionBusLon')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
positionBusLon
f64
0.10522
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ positionBusLon β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.10522 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('positionBusLon','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `positionBusLat`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
positionBusLatcount
f64u32
40.4818689
40.46763917
40.4241762
40.46955124
40.4756469
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ positionBusLat ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ f64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 40.481868 ┆ 9 β”‚\n", "β”‚ 40.467639 ┆ 17 β”‚\n", "β”‚ 40.424176 ┆ 2 β”‚\n", "β”‚ 40.469551 ┆ 24 β”‚\n", "β”‚ 40.475646 ┆ 9 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('positionBusLat')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
positionBusLat
f64
-0.103452
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ positionBusLat β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ -0.103452 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('positionBusLat','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `positionTypeBus`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (3, 2)
positionTypeBuscount
i64u32
111
51356
01129772
" ], "text/plain": [ "shape: (3, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ positionTypeBus ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═════════║\n", "β”‚ 1 ┆ 11 β”‚\n", "β”‚ 5 ┆ 1356 β”‚\n", "β”‚ 0 ┆ 1129772 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('positionTypeBus')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
positionTypeBus
f64
0.028544
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ positionTypeBus β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.028544 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('positionTypeBus','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como no tenemos informaciΓ³n acerca del significado de esta variable, no podemos entenderla por lo que decidimos eliminarla" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.drop('positionBusType')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `DistanceBus`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
DistanceBuscount
i64u32
108883
565148
644337
2385248
670284
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ DistanceBus ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 10888 ┆ 3 β”‚\n", "β”‚ 5651 ┆ 48 β”‚\n", "β”‚ 6443 ┆ 37 β”‚\n", "β”‚ 2385 ┆ 248 β”‚\n", "β”‚ 670 ┆ 284 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('DistanceBus')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
DistanceBus
f64
0.857959
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ DistanceBus β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.857959 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('DistanceBus','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como era de esperar, es la variable que mayor correlaciΓ³n tiene con el `ETA`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `destination`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
destinationcount
stru32
"TELEFONICA"5120
"SANCHINARRO"37472
"BARRIO DEL PIL…54330
"PLAZA CATALUΓ‘A…1672
"REINA VICTORIA…18282
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ destination ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ TELEFONICA ┆ 5120 β”‚\n", "β”‚ SANCHINARRO ┆ 37472 β”‚\n", "β”‚ BARRIO DEL PILAR ┆ 54330 β”‚\n", "β”‚ PLAZA CATALUΓ‘A ┆ 1672 β”‚\n", "β”‚ REINA VICTORIA ┆ 18282 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('destination')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tiempo medio de espera segΓΊn destino" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ ":Bars [destination] (estimateArrive)" ] }, "execution_count": 47, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "p1066" } }, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('destination')).mean().select(pl.col('destination'),pl.col('estimateArrive')).collect().plot.bar(x='destination',rot=90)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SegΓΊn que destino sea, el tiempo medio de espera varia bastante. Por lo que esta variable va a ser necesaria a la hora de la creaciΓ³n de nuestro modelo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `deviation`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
deviationcount
i64u32
1376
01123941
52613092
53738
85854044
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ deviation ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•ͺ═════════║\n", "β”‚ 137 ┆ 6 β”‚\n", "β”‚ 0 ┆ 1123941 β”‚\n", "β”‚ 5261 ┆ 3092 β”‚\n", "β”‚ 537 ┆ 38 β”‚\n", "β”‚ 8585 ┆ 4044 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('deviation')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
deviation
f64
0.022565
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ deviation β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.022565 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('deviation','estimateArrive')).head().collect()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (7, 2)
deviationestimateArrive
i64f64
8585799.088279
5261711.674968
1259367.625
537463.5
288517.5
137512.833333
0637.801457
" ], "text/plain": [ "shape: (7, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ deviation ┆ estimateArrive β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•ͺ════════════════║\n", "β”‚ 8585 ┆ 799.088279 β”‚\n", "β”‚ 5261 ┆ 711.674968 β”‚\n", "β”‚ 1259 ┆ 367.625 β”‚\n", "β”‚ 537 ┆ 463.5 β”‚\n", "β”‚ 288 ┆ 517.5 β”‚\n", "β”‚ 137 ┆ 512.833333 β”‚\n", "β”‚ 0 ┆ 637.801457 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('deviation')).mean().select(pl.col('deviation'),pl.col('estimateArrive')).sort('deviation', descending=True).collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "No tenemos informaciΓ³n acerca del significado de esta variable. Por lo que la eliminamos tambiΓ©n" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.drop('deviation')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `StartTime`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (9, 2)
StartTimecount
stru32
null533127
"06:30"13514
"06:25"54669
"06:20"23954
"06:15"41060
"06:10"61758
"06:00"306036
"05:55"47464
"05:30"49557
" ], "text/plain": [ "shape: (9, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ StartTime ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•ͺ════════║\n", "β”‚ null ┆ 533127 β”‚\n", "β”‚ 06:30 ┆ 13514 β”‚\n", "β”‚ 06:25 ┆ 54669 β”‚\n", "β”‚ 06:20 ┆ 23954 β”‚\n", "β”‚ 06:15 ┆ 41060 β”‚\n", "β”‚ 06:10 ┆ 61758 β”‚\n", "β”‚ 06:00 ┆ 306036 β”‚\n", "β”‚ 05:55 ┆ 47464 β”‚\n", "β”‚ 05:30 ┆ 49557 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('StartTime')).count().sort(pl.col('StartTime'),descending=True).collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `StopTime`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (3, 2)
StopTimecount
stru32
null533127
"23:45"526594
"23:30"71418
" ], "text/plain": [ "shape: (3, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ StopTime ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•ͺ════════║\n", "β”‚ null ┆ 533127 β”‚\n", "β”‚ 23:45 ┆ 526594 β”‚\n", "β”‚ 23:30 ┆ 71418 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('StopTime')).count().sort(pl.col('StopTime'),descending=True).collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La informaciΓ³n que nos dan las dos variables anteriores refleja que estamos considerando solo autobuses diurnos e ignorando los nocturnos. Por tanto, esta variable no va a inferir en el tiempo de estimaciΓ³n ya que el hecho de que su horario comience a las 6 de la maΓ±ana o a las 7 de la maΓ±ana no va a depender de que tarde mΓ‘s o menos a lo largo del dΓ­a. Por tanto consideramos que se pueden borrar tambiΓ©n." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.drop('StartTime','StopTime')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `MinimunFrequency`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
MinimunFrequencycount
i64u32
null533127
7116427
347464
671872
1240808
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ MinimunFrequency ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ════════║\n", "β”‚ null ┆ 533127 β”‚\n", "β”‚ 7 ┆ 116427 β”‚\n", "β”‚ 3 ┆ 47464 β”‚\n", "β”‚ 6 ┆ 71872 β”‚\n", "β”‚ 12 ┆ 40808 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('MinimunFrequency')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
MinimunFrequency
f64
0.302355
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ MinimunFrequency β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.302355 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('MinimunFrequency','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `MaximumFrequency`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (11, 2)
MaximumFrequencycount
i64u32
null533127
3046138
2913514
2654669
24102448
2123933
2037704
1749557
1561758
1247464
" ], "text/plain": [ "shape: (11, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ MaximumFrequency ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ════════║\n", "β”‚ null ┆ 533127 β”‚\n", "β”‚ 30 ┆ 46138 β”‚\n", "β”‚ 29 ┆ 13514 β”‚\n", "β”‚ 26 ┆ 54669 β”‚\n", "β”‚ 24 ┆ 102448 β”‚\n", "β”‚ … ┆ … β”‚\n", "β”‚ 21 ┆ 23933 β”‚\n", "β”‚ 20 ┆ 37704 β”‚\n", "β”‚ 17 ┆ 49557 β”‚\n", "β”‚ 15 ┆ 61758 β”‚\n", "β”‚ 12 ┆ 47464 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('MaximumFrequency')).count().sort(pl.col('MaximumFrequency'),descending=True).collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
MaximumFrequency
f64
0.260828
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ MaximumFrequency β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.260828 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('MaximumFrequency','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Las variables `MinimunFrequency ` y `MaximumFrequency ` tienen muchos valores nulos pero si que estΓ‘n relacionadas con el `ETA`. Una opciΓ³n es mantener solo una de ellas ya que es probable que aporten la misma informaciΓ³n. De momento mantenemos las dos." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `isHead`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (2, 2)
isHeadcount
u8u32
01068067
163072
" ], "text/plain": [ "shape: (2, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ isHead ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ u8 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•ͺ═════════║\n", "β”‚ 0 ┆ 1068067 β”‚\n", "β”‚ 1 ┆ 63072 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('isHead')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CorrelaciΓ³n" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 1)
isHead
f64
0.018379
" ], "text/plain": [ "shape: (1, 1)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ isHead β”‚\n", "β”‚ --- β”‚\n", "β”‚ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•‘\n", "β”‚ 0.018379 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.corr('isHead','estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tiempo medio de espera segΓΊn si el autobΓΊs es cabecera o no" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ ":Bars [isHead] (estimateArrive)" ] }, "execution_count": 61, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "p1128" } }, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('isHead')).mean().select(pl.col('isHead'),pl.col('estimateArrive')).head().collect().plot.bar(x='isHead')" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (2, 2)
isHeadestimateArrive
u8f64
1673.029807
0636.534496
" ], "text/plain": [ "shape: (2, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ isHead ┆ estimateArrive β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ u8 ┆ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•ͺ════════════════║\n", "β”‚ 1 ┆ 673.029807 β”‚\n", "β”‚ 0 ┆ 636.534496 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('isHead')).mean().select(pl.col('isHead'),pl.col('estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mantenemos esta variable ya que estΓ‘ bastante relacionada con el `ETA`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `dayType`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (2, 2)
dayTypecount
stru32
"LA"598012
null533127
" ], "text/plain": [ "shape: (2, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ dayType ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•ͺ════════║\n", "β”‚ LA ┆ 598012 β”‚\n", "β”‚ null ┆ 533127 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('dayType')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Vemos de que tipo son los dΓ­as nulos utilizando la fecha**" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [], "source": [ "def get_type_day(date):\n", " \n", " day = date.strftime(\"%A\")\n", " \n", " if day in ['Monday','Tuesday','Wednesday','Thursday','Friday']:\n", " \n", " type = 'LA'\n", " elif day == 'Saturday':\n", " type = 'SA'\n", " else:\n", " type = 'FE'\n", " \n", " return type" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "sample_data = sample_data.with_columns(pl.when(pl.col('dayType').is_null()).then(pl.col('date').apply(get_type_day)).otherwise(pl.col('dayType')).alias('dayType'))" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (1, 2)
dayTypecount
stru32
"LA"1131139
" ], "text/plain": [ "shape: (1, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ dayType ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•ͺ═════════║\n", "β”‚ LA ┆ 1131139 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('dayType')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `strike`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (2, 2)
strikecount
stru32
null533127
"N"598012
" ], "text/plain": [ "shape: (2, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ strike ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•ͺ════════║\n", "β”‚ null ┆ 533127 β”‚\n", "β”‚ N ┆ 598012 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('strike')).count().head().collect()" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (2, 2)
strikeestimateArrive
strf64
null687.680016
"N"594.787466
" ], "text/plain": [ "shape: (2, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ strike ┆ estimateArrive β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•ͺ════════════════║\n", "β”‚ null ┆ 687.680016 β”‚\n", "β”‚ N ┆ 594.787466 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('strike')).mean().select(pl.col('strike'),pl.col('estimateArrive')).head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- La variable `Strike` toma solo 'N' o nulo, por lo que para ningΓΊn dΓ­a se tiene constancia de que hubo huelga. Por tanto para estos datos esta variable no va a aportar informaciΓ³n." ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 16)
PKdatedatetimebuslinestoppositionBusLonpositionBusLatpositionTypeBusDistanceBusdestinationMinimunFrequencyMaximumFrequencyisHeaddayTypeestimateArrive
strdatedatetime[ΞΌs]i64stri64f64f64i64i64stri64i64u8stri64
"2024-03-13 12:…2024-03-132024-03-13 12:14:06.1457915552"42"5018-3.68936240.4670080880"BARRIO PEΓ‘AGRA…7240"LA"232
"2024-03-13 12:…2024-03-132024-03-13 12:58:02.7760954757"19"89-3.69477240.39207501550"PLAZA CATALUΓ‘A…nullnull0"LA"434
"2024-03-13 10:…2024-03-132024-03-13 10:00:02.7093594737"49"1542-3.68914540.46768502618"PITIS"4150"LA"707
"2024-03-13 15:…2024-03-132024-03-13 15:07:05.1411162132"107"1841-3.666740.46979901855"HORTALEZA"11220"LA"363
"2024-03-13 15:…2024-03-132024-03-13 15:08:07.0854984725"49"5636-3.70047340.4682730137"PITIS"4150"LA"39
" ], "text/plain": [ "shape: (5, 16)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ PK ┆ date ┆ datetime ┆ bus ┆ … ┆ MaximumFreq ┆ isHead ┆ dayType ┆ estimateArr β”‚\n", "β”‚ --- ┆ --- ┆ --- ┆ --- ┆ ┆ uency ┆ --- ┆ --- ┆ ive β”‚\n", "β”‚ str ┆ date ┆ datetime[ΞΌs ┆ i64 ┆ ┆ --- ┆ u8 ┆ str ┆ --- β”‚\n", "β”‚ ┆ ┆ ] ┆ ┆ ┆ i64 ┆ ┆ ┆ i64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ════════════β•ͺ═════════════β•ͺ══════β•ͺ═══β•ͺ═════════════β•ͺ════════β•ͺ═════════β•ͺ═════════════║\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 5552 ┆ … ┆ 24 ┆ 0 ┆ LA ┆ 232 β”‚\n", "β”‚ 12:14:06.14 ┆ ┆ 12:14:06.14 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 5791_B5552… ┆ ┆ 5791 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 4757 ┆ … ┆ null ┆ 0 ┆ LA ┆ 434 β”‚\n", "β”‚ 12:58:02.77 ┆ ┆ 12:58:02.77 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 6095_B4757… ┆ ┆ 6095 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 4737 ┆ … ┆ 15 ┆ 0 ┆ LA ┆ 707 β”‚\n", "β”‚ 10:00:02.70 ┆ ┆ 10:00:02.70 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 9359_B4737… ┆ ┆ 9359 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 2132 ┆ … ┆ 22 ┆ 0 ┆ LA ┆ 363 β”‚\n", "β”‚ 15:07:05.14 ┆ ┆ 15:07:05.14 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 1116_B2132… ┆ ┆ 1116 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 4725 ┆ … ┆ 15 ┆ 0 ┆ LA ┆ 39 β”‚\n", "β”‚ 15:08:07.08 ┆ ┆ 15:08:07.08 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 5498_B4725… ┆ ┆ 5498 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data = sample_data.drop('strike')\n", "sample_data.head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Variable `estimateArrive`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Valores nulos" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 2)
estimateArrivecount
i64u32
172778
828750
223613
167959
423947
" ], "text/plain": [ "shape: (5, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ estimateArrive ┆ count β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ i64 ┆ u32 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════║\n", "β”‚ 1727 ┆ 78 β”‚\n", "β”‚ 828 ┆ 750 β”‚\n", "β”‚ 2236 ┆ 13 β”‚\n", "β”‚ 167 ┆ 959 β”‚\n", "β”‚ 423 ┆ 947 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.group_by(pl.col('estimateArrive')).count().head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Resumen**\n" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (9, 2)
statisticestimateArrive
strf64
"count"1.131139e6
"null_count"0.0
"mean"638.569465
"std"455.633197
"min"0.0
"25%"274.0
"50%"566.0
"75%"922.0
"max"5389.0
" ], "text/plain": [ "shape: (9, 2)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ statistic ┆ estimateArrive β”‚\n", "β”‚ --- ┆ --- β”‚\n", "β”‚ str ┆ f64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•ͺ════════════════║\n", "β”‚ count ┆ 1.131139e6 β”‚\n", "β”‚ null_count ┆ 0.0 β”‚\n", "β”‚ mean ┆ 638.569465 β”‚\n", "β”‚ std ┆ 455.633197 β”‚\n", "β”‚ min ┆ 0.0 β”‚\n", "β”‚ 25% ┆ 274.0 β”‚\n", "β”‚ 50% ┆ 566.0 β”‚\n", "β”‚ 75% ┆ 922.0 β”‚\n", "β”‚ max ┆ 5389.0 β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.select(pl.col('estimateArrive')).describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "- Las variables `MinimunFrequency ` y `MaximumFrequency ` estΓ‘n muy relacionadas entre ellas. Se podrΓ­a dejar tan solo `MinimumFrequency` ya que aporta mas informacion al `ETA` que la otra\n", "\n", "\n", " " ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 15)
PKdatedatetimebuslinestoppositionBusLonpositionBusLatpositionTypeBusDistanceBusdestinationMinimunFrequencyisHeaddayTypeestimateArrive
strdatedatetime[ΞΌs]i64stri64f64f64i64i64stri64u8stri64
"2024-03-13 09:…2024-03-132024-03-13 09:51:55.5816724860"49"1550-3.7135740.4831890642"PITIS"40"LA"230
"2024-03-13 16:…2024-03-132024-03-13 16:53:04.7514562468"134"2864-3.70843440.4988550575"MONTECARMELO"90"LA"209
"2024-03-13 16:…2024-03-132024-03-13 16:14:04.4873832310"178"1760-3.68578640.4782803282"MONTECARMELO"60"LA"415
"2024-03-13 16:…2024-03-132024-03-13 16:56:06.2207149120"177"5800-3.68815340.4675920910"MARQUES DE VIA…90"LA"607
"2024-03-13 08:…2024-03-132024-03-13 08:29:03.0234085637"147"29-3.69003240.4554470972"BARRIO DEL PIL…null0"LA"170
" ], "text/plain": [ "shape: (5, 15)\n", "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n", "β”‚ PK ┆ date ┆ datetime ┆ bus ┆ … ┆ MinimunFreq ┆ isHead ┆ dayType ┆ estimateArr β”‚\n", "β”‚ --- ┆ --- ┆ --- ┆ --- ┆ ┆ uency ┆ --- ┆ --- ┆ ive β”‚\n", "β”‚ str ┆ date ┆ datetime[ΞΌs ┆ i64 ┆ ┆ --- ┆ u8 ┆ str ┆ --- β”‚\n", "β”‚ ┆ ┆ ] ┆ ┆ ┆ i64 ┆ ┆ ┆ i64 β”‚\n", "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ════════════β•ͺ═════════════β•ͺ══════β•ͺ═══β•ͺ═════════════β•ͺ════════β•ͺ═════════β•ͺ═════════════║\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 4860 ┆ … ┆ 4 ┆ 0 ┆ LA ┆ 230 β”‚\n", "β”‚ 09:51:55.58 ┆ ┆ 09:51:55.58 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 1672_B4860… ┆ ┆ 1672 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 2468 ┆ … ┆ 9 ┆ 0 ┆ LA ┆ 209 β”‚\n", "β”‚ 16:53:04.75 ┆ ┆ 16:53:04.75 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 1456_B2468… ┆ ┆ 1456 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 2310 ┆ … ┆ 6 ┆ 0 ┆ LA ┆ 415 β”‚\n", "β”‚ 16:14:04.48 ┆ ┆ 16:14:04.48 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 7383_B2310… ┆ ┆ 7383 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 9120 ┆ … ┆ 9 ┆ 0 ┆ LA ┆ 607 β”‚\n", "β”‚ 16:56:06.22 ┆ ┆ 16:56:06.22 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 0714_B9120… ┆ ┆ 0714 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 2024-03-13 ┆ 2024-03-13 ┆ 2024-03-13 ┆ 5637 ┆ … ┆ null ┆ 0 ┆ LA ┆ 170 β”‚\n", "β”‚ 08:29:03.02 ┆ ┆ 08:29:03.02 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β”‚ 3408_B5637… ┆ ┆ 3408 ┆ ┆ ┆ ┆ ┆ ┆ β”‚\n", "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data = sample_data.drop('MaximumFrequency')\n", "sample_data.head().collect()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ConclusiΓ³n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para cada _.csv_ de un dΓ­a concreto vamos a crear otro _.csv_ que tan solo tenga las columnas:\n", "- `PK`\n", "- `predict_arrival_date`\n", "- `reliable_arrival_date`\n", "\n", "Por otro lado vamos a crear otro _.csv_ que tenga las columnas:\n", "- `PK`\n", "- `date`\n", "- `datetime`\n", "- `bus`\n", "- `line`\n", "- `stop`\n", "- `positionBusLon`\n", "- `positionBusLat` \n", "- `DistanceBus`\n", "- `destination`\n", "- `MinimunFrequency`\n", "- `isHead`\n", "- `dayType`\n", "- `estimateArrive`\n", "\n", "El dataset de entrenamiento serΓ‘ la concatenaciΓ³n de todos los dΓ­as y el join de ambos mediante la `PK`\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "venv", "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.10.12" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }