diff --git a/Grouped_barplot.ipynb b/Grouped_barplot.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..48613a3a440a0e78fcec7bc1e796c965809543a9 --- /dev/null +++ b/Grouped_barplot.ipynb @@ -0,0 +1,478 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "b74e6051-2004-4713-b0b7-015febb66ffb", + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.patheffects as pe\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c26c5978-54e3-488b-82f5-012857bb9f58", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>bench_id</th>\n", + " <th>compile</th>\n", + " <th>measurement</th>\n", + " <th>tasks</th>\n", + " <th>num_iters</th>\n", + " <th>grid_size</th>\n", + " <th>avg_t(s)</th>\n", + " <th>rate (MFlops/s)</th>\n", + " <th>tool slowdown</th>\n", + " <th>compile:measurement</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>base</td>\n", + " <td>24</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.093211</td>\n", + " <td>47195.414773</td>\n", + " <td>1.000000</td>\n", + " <td>base:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>must</td>\n", + " <td>24</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.101288</td>\n", + " <td>43431.658425</td>\n", + " <td>1.086653</td>\n", + " <td>base:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>base</td>\n", + " <td>24</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.876520</td>\n", + " <td>5018.848593</td>\n", + " <td>9.403611</td>\n", + " <td>tsan:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>must</td>\n", + " <td>24</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>1.474257</td>\n", + " <td>2983.956428</td>\n", + " <td>15.816341</td>\n", + " <td>tsan:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>base</td>\n", + " <td>48</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.045422</td>\n", + " <td>96850.042577</td>\n", + " <td>1.000000</td>\n", + " <td>base:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>must</td>\n", + " <td>48</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.053436</td>\n", + " <td>82324.290675</td>\n", + " <td>1.176434</td>\n", + " <td>base:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>base</td>\n", + " <td>48</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.626195</td>\n", + " <td>7025.158598</td>\n", + " <td>13.786161</td>\n", + " <td>tsan:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>must</td>\n", + " <td>48</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.770547</td>\n", + " <td>5709.090651</td>\n", + " <td>16.964180</td>\n", + " <td>tsan:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>base</td>\n", + " <td>96</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.022924</td>\n", + " <td>191899.157068</td>\n", + " <td>1.000000</td>\n", + " <td>base:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>must</td>\n", + " <td>96</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.033269</td>\n", + " <td>132227.502774</td>\n", + " <td>1.451274</td>\n", + " <td>base:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>base</td>\n", + " <td>96</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.287862</td>\n", + " <td>15282.055308</td>\n", + " <td>12.557233</td>\n", + " <td>tsan:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>must</td>\n", + " <td>96</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.409369</td>\n", + " <td>10746.112400</td>\n", + " <td>17.857660</td>\n", + " <td>tsan:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>base</td>\n", + " <td>192</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.011040</td>\n", + " <td>398474.354788</td>\n", + " <td>1.000000</td>\n", + " <td>base:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>must</td>\n", + " <td>192</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.029213</td>\n", + " <td>150587.148007</td>\n", + " <td>2.646105</td>\n", + " <td>base:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>base</td>\n", + " <td>192</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.155908</td>\n", + " <td>28216.100553</td>\n", + " <td>14.122101</td>\n", + " <td>tsan:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>must</td>\n", + " <td>192</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.209394</td>\n", + " <td>21008.772344</td>\n", + " <td>18.966848</td>\n", + " <td>tsan:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>base</td>\n", + " <td>384</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.005288</td>\n", + " <td>831945.953164</td>\n", + " <td>1.000000</td>\n", + " <td>base:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>41</td>\n", + " <td>base</td>\n", + " <td>must</td>\n", + " <td>384</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.035963</td>\n", + " <td>122325.029349</td>\n", + " <td>6.800870</td>\n", + " <td>base:must</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>base</td>\n", + " <td>384</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.079069</td>\n", + " <td>55636.650885</td>\n", + " <td>14.952534</td>\n", + " <td>tsan:base</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>41</td>\n", + " <td>tsan</td>\n", + " <td>must</td>\n", + " <td>384</td>\n", + " <td>400</td>\n", + " <td>20000</td>\n", + " <td>0.121535</td>\n", + " <td>36196.216854</td>\n", + " <td>22.983169</td>\n", + " <td>tsan:must</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " bench_id compile measurement tasks num_iters grid_size avg_t(s) \\\n", + "0 41 base base 24 400 20000 0.093211 \n", + "1 41 base must 24 400 20000 0.101288 \n", + "2 41 tsan base 24 400 20000 0.876520 \n", + "3 41 tsan must 24 400 20000 1.474257 \n", + "4 41 base base 48 400 20000 0.045422 \n", + "5 41 base must 48 400 20000 0.053436 \n", + "6 41 tsan base 48 400 20000 0.626195 \n", + "7 41 tsan must 48 400 20000 0.770547 \n", + "8 41 base base 96 400 20000 0.022924 \n", + "9 41 base must 96 400 20000 0.033269 \n", + "10 41 tsan base 96 400 20000 0.287862 \n", + "11 41 tsan must 96 400 20000 0.409369 \n", + "12 41 base base 192 400 20000 0.011040 \n", + "13 41 base must 192 400 20000 0.029213 \n", + "14 41 tsan base 192 400 20000 0.155908 \n", + "15 41 tsan must 192 400 20000 0.209394 \n", + "16 41 base base 384 400 20000 0.005288 \n", + "17 41 base must 384 400 20000 0.035963 \n", + "18 41 tsan base 384 400 20000 0.079069 \n", + "19 41 tsan must 384 400 20000 0.121535 \n", + "\n", + " rate (MFlops/s) tool slowdown compile:measurement \n", + "0 47195.414773 1.000000 base:base \n", + "1 43431.658425 1.086653 base:must \n", + "2 5018.848593 9.403611 tsan:base \n", + "3 2983.956428 15.816341 tsan:must \n", + "4 96850.042577 1.000000 base:base \n", + "5 82324.290675 1.176434 base:must \n", + "6 7025.158598 13.786161 tsan:base \n", + "7 5709.090651 16.964180 tsan:must \n", + "8 191899.157068 1.000000 base:base \n", + "9 132227.502774 1.451274 base:must \n", + "10 15282.055308 12.557233 tsan:base \n", + "11 10746.112400 17.857660 tsan:must \n", + "12 398474.354788 1.000000 base:base \n", + "13 150587.148007 2.646105 base:must \n", + "14 28216.100553 14.122101 tsan:base \n", + "15 21008.772344 18.966848 tsan:must \n", + "16 831945.953164 1.000000 base:base \n", + "17 122325.029349 6.800870 base:must \n", + "18 55636.650885 14.952534 tsan:base \n", + "19 36196.216854 22.983169 tsan:must " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Read csv and create a dataframe\n", + "df = pd.read_csv('stencil_2.csv')\n", + "\n", + "# Calculate slowdown, and tool slowdown\n", + "#df[\"slowdown\"] = [row[\"avg_t(s)\"]/df.loc[(df['compile'] == \"base\") & (df['measurement'] == \"base\") & (df['tasks'] == df['tasks'].min())][\"avg_t(s)\"].iloc[0] for index, row in df.iterrows()]\n", + "df[\"tool slowdown\"] = [row[\"avg_t(s)\"]/df.loc[(df['compile'] == \"base\") & (df['measurement'] == \"base\") & (df['tasks'] == row['tasks'])][\"avg_t(s)\"].iloc[0] for index, row in df.iterrows()]\n", + "\n", + "# Create the new feature \"compile:measurement\" that is the combination of the \"compile\" and \"measurement\" features.\n", + "# We use this later for the \"hue\" arguement in the seaborn plotting functions, which creates a color encoding based \n", + "#on the values of the \"compile:measurement\" feature. e.g. the data points for \"base:base\" and \"tsan:must\" will have different colors\n", + "df[\"compile:measurement\"] = df[\"compile\"] + \":\" + df[\"measurement\"]\n", + "display(df)\n", + "\n", + "# Drop \"base:must\" because it is not of interest\n", + "df = df.drop(df[df[\"compile:measurement\"] == \"base:must\"].index)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "8b1abc69-f247-4ab6-8df0-78b07ea405e4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHmCAYAAACPoq+5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwK0lEQVR4nO3deVxN+f8H8Ne9FanQ7ZYSMbKULTJ2g0l2smUbxSBL1iE7E7KFKGTLOraxD8Y+lmHM2LchhTBUlHYqabv390c/9ztNRcvtnntvr+fjMY/H3HPuPZ/3Xdz76nw+5/MRyeVyOYiIiIi0hFjoAoiIiIiUieGGiIiItArDDREREWkVhhsiIiLSKgw3REREpFUYboiIiEirMNwQERGRVmG4ISIiIq3CcENERERaheGGiIiItArDDREREWkVhhsiIiLSKgw3REREpFUYbiibhQsX4vbt20KXQUREVGgiuVwuF7oIUh+2trYQiUSoUqUKnJ2d0bt3b5iZmQldFhERUb7xzA3lsG3bNrRp0wbbtm2Dg4MDxowZg99//x0ymUzo0oiIiL6IZ24oG1tbW/z111+QSqVIT0/HuXPncPjwYVy7dg1SqRR9+vRBnz59ULVqVaFLJSIiyhXDDWXz73Dzb2/evMHhw4dx5MgRREREIDg4WKAKiYiIPo/hhrLJK9x8IpfLcfXqVbRq1UrFlREREeUPx9xQNpaWlhCL8/5YiEQiBhsiIlJrPHNDREREWoVnbihfbty4gY8fPwpdBhER0Rcx3FC+uLm54fXr10KXQURE9EXslqJsevfunev24OBgWFtbo3Tp0gCAI0eOqLIsIiKifNMVugBSL0+fPkWLFi3QsGFDxTa5XI7Hjx+jWbNmeV5FRUREpC545oayuXPnDmbOnAknJyeMHz9eceVU3bp1cezYMdSoUUPgComIiD6PY24om6+//hq//PILXr58iYEDByI0NFTokoiIiAqE4YZyKFu2LHx9fTFgwAAMGjQI+/fvh0gkErosIiKifOGYG8qTs7Mzvv76a0ydOhUZGRlCl0NERJQvHHNDXySTyZCcnAwjIyOewSEiIrVXYsNNbGwiSuYzJyIi0jwiESCVls3XfUtst5RcDoabQli0aB6iot5izZqNQpdCRESUqxIbbqhwTE3NPruwJhERkdBKbLdUTAy7pYiIiDSFSASYmuavW4p/glOBvH0biSVLvIQug4iIKE8MN1Qg79+/x5kzJ4Uug4iIKE8cc0PZ/Pnn5c/uf/OGK4MTEZF6Y7ihbGbNmgqRSITPDcXiXDdERKTOGG4oG6nUFFOmzEDr1t/muj8k5Anc3AartigiIqIC4JgbysbGxhZPnjz+zD0+f1aHiIhIaDxzQ9kMGjQEKSkpee6vXNmKE/gREZFa4zw3REREpPY4zw0RERGVWAw3REREpFUYboiIiEirMNwQERGRVuHVUiWMWCyCWKyaSfhkMjlkMo7aJiIi1WK4KUHEYhFMJGUgEuuopD25LBNx8SkMOEREpFIMNyWIWCyCSKyD+AdbkJEUWaxt6RpZQGI3AmKxiOGGiIhUiuGmBMpIikR6YqjQZRARERULDigmIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFpF0HBz69YtuLu745tvvoGNjQ3Onz+f78feuXMHderUQc+ePYuxQiIiItI0goabDx8+wMbGBvPmzSvQ496/f48ZM2agRYsWxVQZERERaSpBF85s27Yt2rZtW+DHzZs3D927d4eOjk6BzvYQERGR9tO4VcEPHz6MsLAw+Pj4YMOGDYU+jkikxKLos/haExFRURXkt0Sjws3Lly+xcuVK7NmzB7q6RStdKi2rpKrocyQSQ6FLICKiEkZjwk1mZiamTJmCCRMmoFq1akU+XmxsIuRyJRSmQXR0xCoPG/HxycjMlKm0TSIi0j4iUf5PTGhMuElOTkZgYCCCg4OxcOFCAIBMJoNcLkedOnWwdevWAg0wlstR4sKNUPg6ExGRKmlMuDEyMsLx48ezbfv5559x/fp1rFmzBpUrVxaoMiIiIlIngoab5ORkhIaGKm6Hh4cjODgY5cuXh6WlJVauXIm3b99i+fLlEIvFqFWrVrbHS6VSlC5dOsd2IiIiKrkEDTeBgYEYMmSI4ra3tzcAoHfv3li6dCmio6MREREhVHlERESkgURyeckcERETU/IGFOvqZg0ojr66COmJoV9+QBHola0Cs5Y/Ij4+GRkZHFBMRERFIxIBpqb5G1DMtaWIiIhIqzDcEBERkVZhuCEiIiKtwnBDREREWoXhhoiIiLQKww0RERFpFYYbIiIi0ioMN0RERKRVGG6IiIhIqzDcEBERkVZhuCEiIiKtwnBDREREWoXhhoiIiLQKww0RERFpFYYbIiIi0ioMN0RERKRVGG6IiIhIqzDcEBERkVZhuCEiIiKtwnBDREREWoXhhoiIiLQKww0RERFpFYYbIiIi0ioMN0RERKRVGG6IiIhIqzDcEBERkVZhuCEiIiKtwnBDREREWoXhhoiIiLQKww0RERFpFYYbIiIi0ioMN0RERKRVGG6IiIhIqzDcEBERkVZhuCEiIiKtwnBDREREWoXhhoiIiLSKoOHm1q1bcHd3xzfffAMbGxucP3/+s/f/7bffMGzYMDRv3hyNGjXCgAEDcOXKFRVVS0RERJpA0HDz4cMH2NjYYN68efm6/61bt9CyZUts2rQJv/zyC5o1a4YxY8YgKCiomCslIiIiTaErZONt27ZF27Zt833/OXPmZLvt4eGBCxcu4OLFi6hTp46yyyMiIiINJGi4KSqZTIbk5GQYGxsX+LEikfLrodzxtSYioqIqyG+JRoebrVu34sOHD+jSpUuBHyuVli2Giui/JBJDoUsgIqISRmPDzfHjx7Fu3TqsX78eUqm0wI+PjU2EXF4MhakxHR2xysNGfHwyMjNlKm2TiIi0j0iU/xMTGhluTp48iR9//BGrV69Gy5YtC3UMuRwlLtwIha8zERGpksbNc3PixAnMmjULK1euxLfffit0OURERKRmBD1zk5ycjNDQUMXt8PBwBAcHo3z58rC0tMTKlSvx9u1bLF++HEBWV9TMmTMxe/ZsNGjQANHR0QAAfX19lC3LMTREREQkcLgJDAzEkCFDFLe9vb0BAL1798bSpUsRHR2NiIgIxf4DBw4gIyMDCxYswIIFCxTbP92fiIiISCSXl8wRETExJW9Asa5u1oDi6KuLkJ4Y+uUHFIFe2Sowa/kj4uOTkZHBAcVERFQ0IhFgapq/XhqNG3NDRERE9DkMN0RERKRVGG6IiIhIqzDcEBERkVZhuCEiIiKtwnBDREREWoXhhoiIiLQKww0RERFpFYYbIiIi0ioMN0RERKRVGG6IiIhIqzDcEBERkVZhuCEiIiKtwnBDREREWoXhhoiIiLQKww0RERFpFYYbIiIi0ioMN0RERKRVGG6IiIhIqzDcEBERkVZhuCEiIiKtwnBDREREWoXhhoiIiLQKww0RERFpFYYbIiIi0ioMN0RERKRVGG40wKVLF/Dx40ehyyAiItIIukIXQF/m6TkTBgYGaNeuI7p374m6desJXRIREZHa4pkbDfHdd4Px5EkQ3N2HYfDg/jhw4Ge8e5cgdFlERERqh+FGQ/Ts2Qfbtu3B5s070aBBI2zbthm9e3eFp+dM3Lp1XejyiIiI1Aa7pTSMrW1t2NrWxoQJk/H77+dx8uSvmDJlIszNLXDw4K9Cl0dERCQ4hhsNIBKJcmwrXbo0Onfuhs6duyE8PAwnTzLYEBERAeyW0ghyufyz+ytXtsLo0eNUVA0REZF6Y7jRAAcP/gpjY4nQZRAREWkEdktpAAuLikKXQEREpDF45kYD+Pktx99/3xO6DCIiIo0gaLi5desW3N3d8c0338DGxgbnz5//4mNu3LiB3r17o169eujQoQN++eUXFVQqrF9+OYgJE0Zj4MA+2L37J8TGxghdEhERkdoSNNx8+PABNjY2mDdvXr7uHxYWhtGjR6NZs2Y4duwYvv/+e/z444+4cuVKMVcqPF/ftWjRohX27dsNZ+fumDnTA3/9dQUymUzo0oiIiNSKoGNu2rZti7Zt2+b7/vv27UPlypUxc+ZMAED16tVx584d/PTTT2jdunVxlakWqlevgcaNm2LcuB9w+fLvOHnyV8yePRUSiQm6dOmObt16oHJlK6HLJCIiEpxGjbm5f/8+WrRokW3bN998g/v37wtTkAB0dXXh6NgBvr7+2L//GJyceuHcuTMYNMhZ6NKIiIjUgkZdLRUTEwNTU9Ns20xNTZGUlISPHz9CX18/38fKZV48tSYS5ay5YkULjBgxGm5uo3Dr1g21fU7qWhcREWmOgvyWaFS4USaptKzQJeSbpaUlTE3LQSLJu+auXTuosKL8k0gMhS6BiIhKGI0KN6ampoiJyX6lUExMDIyMjAp01gYAYmMT8YWJf9XGgQPHkJkJxMQkFuk4OjpilYeN+PhkZGZy0DMRERWNSJT/ExMaFW4aNmyIP/74I9u2q1evomHDhgU+llwOjQk3nyOXy3Nde0qdaMPrTEREmkPQAcXJyckIDg5GcHAwACA8PBzBwcF48+YNAGDlypWYPn264v4DBw5EWFgYli9fjufPn2PPnj04ffo0hg4dKkT5KpOWloa1a1dh3LiR2L37JwDATz9tQYcOrdGxYxvMnz8HyclJwhZJRESkJgQ9cxMYGIghQ4Yobnt7ewMAevfujaVLlyI6OhoRERGK/VZWVggICIC3tzd27twJCwsLLFq0SOsvAw8IWIsLF86hfftOOHPmJN6+fYurV69g2rTZEIlE2Lo1AJs3b8CkSdOELpWIiEhwIvmXlpzWUjExmjPmpk+fbpg1ay6aNGmG16/D8d13fbB48XK0bv0tAODWretYtmwxDh06/tnj6OpmjbmJvroI6YmhxVqzXtkqMGv5I+Ljk5GRwTE3RERUNCIRYGqavzE3GjXPTUn17l0CrKyqAgAqVaoMsViMSpX+N2Ff5cpVkJAQL1R5REREaoXhRgOYm1vg0aMHAIDg4EcQiUQIDn6k2B8UFAhT0wpClUdERKRWNOpqqZKqVy9nLF7shePHj+LJk8cYN+4HbNq0Dq9evYRYLMbRo4cwcKCr0GUSERGpBYYbDdC//yAYG5vg0aMH6NatBzp06Axr6xrYujUAHz9+RP/+gzBkyHChyyQiIlILHFBcgnBAMRERaSoOKCYqAVJSUnD//l2hyyAiUjsMN1ogIGAdlizxEroMUrHw8DBMnOgudBlERGqHY260QFTUW0RHRwldBhERkVpguNECnp4LhC6BikGXLu0+u18my1RRJUREmoXhRkMkJCTg5MljCAx8iLi4WACAiYkU9evboUsXJ0gkEoErJGVLT09Dr159Ub16jVz3R0ZGYPv2zSquiohI/THcaIDg4Efw8JgAfX19NG7cFFZWVQAA8fFxOHRoP3bv3gFfX3/Y2tYRuFJSppo1a6FCBXN06dI91/0hIU8ZboiIcsFwowH8/Hzg4OCoWCjz3+RyOXx8lsDPzwcBAdsFqpCKQ4sW3yApKTHP/eXKlUPnzt1UWBERkWZguNEAz56FYM6c+TmCDQCIRCIMGOCCYcNcBKiMitOXJmY0N7fA7NnzVFQNEZHm4KXgGkAqlSIoKDDP/UFBgTAxMVFhRUREROqLZ240wMCBrvDxWYInTx6jceMmkEikAID4+Fjcvn0Lx48fwbhxk4QtkpRu797dcHBwhIVFRaFLISLSKFx+QUNcuPAb9u//GU+eBEMmy1rOQCwWw8amNgYMcIGjY4cvHoPLL2iW1q2bQCwWw97+azg59UKbNg7Q09MTuiwiIkEUZPkFnrnREI6OHeHo2BEZGRlISEgAABgbG0NXl2+hNpsx40dcuXIJCxfOhaGhITp27Aonp56wts798nAiImK40Ti6urowNTUVugxSkRYtWqFrVyfEx8fh1KnjOHXqOA4f3g8bG1s4OfVG+/YdYWBgKHSZRERqhQOKiTSARGICF5fvsWfPIfj7B+Crr6zh7++Lnj07C10aEZHa4ZkbIjWV26X/ANCggT0aNLDHpElTceHCORVXRUSk/njmhkhNfWmsv6GhEXr06K2iaoiINAfP3BCpqStXbgldAhGRRipyuElLS0OpUqWUUUuJJhaLIBbn3g2hLDo6PFFHRETar8Dh5vLlyzh16hRu376NyMhIyGQylClTBnXq1EGrVq3Qp08fmJubF0etWkssFkEiMSz2cEOaZfr0yWjXrj0cHBxRurS+0OUQEWmMfE/id+7cOaxYsQLJyclo06YN7OzsUKFCBejr6yMhIQEhISG4ffs27t+/j969e2PSpElqvSSAOk3i92lyvYsPIxGfnFZs7VhJDdC0pikn8dMQnybxK1OmDNq374Tu3XvB1ra20GUREQmiWCbx27JlC2bNmoU2bdpALM67e+Pt27fYtWsXfv31VwwdOjS/hycA8clpiE1MLbbjGxtwdltN89NPe3Hr1nWcPPkrfv31CKyta8DJqSc6dOiCcuXKCV0eEZFa4vILauDTmZvD10OLNdxUNzeCo11FnrnREK1bN8Gvv56FRJJ1BjQoKBAnThzDxYvnkJ6ejtatv4WTUy98/XUTgSslIip+BTlzo5QRppmZmQgODsa7d++UcTgiykWdOvUwffocHD16BlOmzERU1FtMnjxO6LKIiNROoa6WWrx4MWrVqoV+/fohMzMTrq6uuHfvHsqUKYONGzeiWbNmyq6TiP6fvr4+unZ1QteuTggNfSV0OUREaqdQZ27Onj0LW1tbAMDvv/+O8PBwnD59Gt9//z38/PyUWiBRSdWwYSPo6n5+nFSVKlVVVA0RkeYoVLiJj4+HmZkZgKxLwzt37oxq1arB2dkZT58+VWqBRCWVv38AypbNX/8yERH9T6HCjampKZ49e4bMzExcuXIFrVq1AgB8/PgROjo6Si2QiIiIqCAKNeamT58+mDRpEszMzCASidCyZUsAwN9//w1ra2ulFkhEuQsIWIfY2BjMnj1P6FKIiNRKocLNhAkTULNmTURGRqJz586K5Rd0dHQwcuRIpRZIRLmLinqL6OgoocsgIlI7hV5bqnPnzjm29e7NFYqJVMXTc4HQJRARqaV8h5uTJ0+iW7du+bpvREQE3rx5g6+//rrQhRERkJCQgJMnjyEw8CHi4mIBACYmUtSvb4cuXZwgkUgErpCISP3ke0Dx3r170aVLF2zevBnPnz/PsT8xMRGXL1/GlClT0Lt3byQkJCizTqISJzj4Eb77rg8OHdoPIyMjNGhgjwYN7GFkZIRDh/bDxaUvHj8OErpMIiK1k+8zN7t378aFCxewe/du+Pr6okyZMjA1NUXp0qXx7t07xMTEQCKRoHfv3jhx4gRMTU3zXcSePXuwdetWREdHw9bWFp6enrCzs8vz/j/99BP27t2LiIgISCQSdOrUCVOmTEHp0qXz3SaRuvPz84GDgyOmTZsNkSj7ivFyuRw+Pkvg5+eDgIDtAlVIRKSeCjTmxtHREY6OjoiLi8Pdu3fx+vVrpKamQiKRoHbt2qhTp85nF9XMzalTp+Dt7Q0vLy80aNAAO3bsgJubG86cOQOpVJrj/sePH8fKlSuxZMkS2Nvb4+XLl5g5cyZEIhFmzZpVoLaJ1NmzZyGYM2d+jmADACKRCAMGuGDYMBcBKiMiUm+FGlBsYmKC9u3bK6WA7du3o3///nB2dgYAeHl54dKlSzh8+DBGjRqV4/737t1Do0aN4OTkBACoXLkyunfvjr///lsp9RB9TlpaGsRiMXR1s/7pvH4djhMnjiEqKhLm5hXRvXtPWFpWUkpbUqkUQUGBqFr1q1z3BwUFwsTERCltERFpk0JN4ufo6Ij4+Pgc29+/fw9HR8d8HyctLQ2PHj1SzJMDAGKxGC1btsS9e/dyfYy9vT0ePXqEBw8eAADCwsJw+fJltG3btoDPgqjgPDzG48qVSwCABw/uY/Dg/rh69U9kZGTg+vW/MGTIAAQGPlBKWwMHusLHZwlWrVqBP/+8jEePAvHoUSD+/PMyVq1agRUrvDFo0BCltEVEpE0Kdebm9evXkMlkObanpaXh7du3+T5OfHw8MjMzc3Q/SaVSvHjxItfHODk5IT4+HoMGDYJcLkdGRgYGDhwId3f3Aj2HXM70UzHRptc6JOQJatasBZEI2Lx5PXr37ouJEz0U+zdt2oD161djw4atRW6rb9/+MDY2xv79P+PIkYOKf3NisRg2NrUxZ858ODp2KHI7RESaoCC/JQUKNxcuXFD8/5UrV7KteyOTyXDt2jVUqqScU/J5uXHjBgICAjBv3jzY2dkhNDQUixcvxrp16zBu3Lh8H0cq5Zo9qiCRGApdglLJ5XKUK6cPU9OyCAsLxfz582Bq+r/PkqvrQBw8uDfbtqIYONAZAwc6Iz09XXG2VCKRQE/v8wtqEhGVZAUKN5/Cg0gkwsyZM7MfSFcXlSpVyrH9cyQSCXR0dBAbG5tte2xsbJ5XW61evRo9evRAv379AAA2Njb48OED5s6dizFjxuR7QHNsbCLk8nyXWqx0dMRaFwI+iY9PRmZmzrN8mqp27bo4ceIMXFyGoGJFS9y6dQ+mpv8L9Ddu3EXZsuUQE5Oo9LbF4jIAgHfvPgL4qPTjExGpM5Eo/ycmChRuHj9+DABo164dDh06VOTBjKVKlULdunVx7do1xQDlT2eAXF1dc33Mx48fcwSYT4t1yguQVuRyqE240Xba9DqPHDkGU6dOREpKCtq374S1a1chLCwMVatWQ1jYKxw8uA+DBw/VqudMRKRpCjXm5uLFi/m6n5OTEzZt2oSKFSvmeZ9hw4ZhxowZqFevHuzs7LBjxw6kpKSgT58+AIDp06fD3NwcU6ZMAQA4ODhg+/btqFOnjqJbavXq1XBwcOCK5FTs6tWzw4oVa+Dv74egoEAAwM6d2wAApqZmGD58FPr3/07IEomISrxCry2VH+Hh4cjIyPjsfbp27Yq4uDisWbMG0dHRqF27NrZs2aLoloqIiMh2pmbMmDEQiURYtWoV3r59CxMTEzg4OGDy5MnF+VSIFOrVs0NAwHbEx8fjzZvXkMtlkEpNUbGipdClERERijnc5Jerq2ue3VC7du3KdltXVxfjx4/H+PHjVVEaUZ4kEgnXdiIiUkNqEW6INElq6kc8fvwY5cqVQ7Vq1v/Zl4qLF8+hS5fuXzyOWCyCWKya6+RlMjlkMg4EIqKSgeGGqABCQ1/Bw2M83r6NhEgkgp1dQ8yfv0TRjZqcnARv7wVfDDdisQgmkjIQiVUzTkwuy0RcfAoDDhGVCAw3RAWwYYM/rK2rY8uWXUhKSsSaNSsxZowb/P0DYGFhke/jiMUiiMQ6iH+wBRlJkcVYMaBrZAGJ3QiIxSKGGyIqERhuiAogMPABVq1aD2NjYxgbG2PZMj+sXLkU48aNwJo1G1GmTJkCHS8jKRLpiaHFVC0RUclUqLWl8mvBggW5ruxNpKlSU1OzTTkgEokwdeostGrVGhMmjEZYGIMKEZHQCnXmZufOnbluF4lEKF26NKpUqYImTZooVu4m0hZVq1bF48dB+Oqratm2e3jMAADMmOGR28OIiEiFChVufvrpJ8THxyMlJQXly5cHALx79w5lypSBgYEBYmNjYWVlhZ07d352Aj8iTdOmjQPOnz+Lzp275djn4TEDMpkcx44dFqAyIiL6pFDdUh4eHqhXrx5+++033LhxAzdu3MDZs2dhZ2eHOXPm4NKlSzA1NYW3t7ey6yUS1ODBw7BixZo890+dOhNXrtxSYUVERPRfhQo3q1atwuzZs1GlShXFtqpVq2LGjBlYuXIlLCwsMG3aNNy9e1dphRKpsy/NxE1ERKpTqHATHR2d65d5RkYGYmJiAAAVKlRAcnJy0aojUjPXr1/F8+fPAGQt8vrTT1vQq1cXtGvXEr17d8WuXT8VaAFXIiJSvkKFm2bNmmHevHkICgpSbAsKCsL8+fPRvHlzAMDTp09RuXJl5VRJpCbWrFmJpKREAMCePTtw8OBefPedK5YvX4XvvhuMgwf3Ys+eHQJXSURUshVqQPHixYsxffp09OnTB7q6WYfIzMxEixYtsHjxYgCAgYEBZsyYobxKidRAZGQEzM2zBsmfO3cGU6bMQrt27QEAzZu3ROXKVlizZiVcXYcKWCURUclWqHBjZmaG7du34/nz53j58iUAoFq1arC2/t86O5/O4BBpk7JlyyEmJhoWFhZISEjIcXbSyqoKoqOjBKqOiIiAQnZL3b59GwBQvXp1ODo6wtHRMVuwIdJWbdo4YOfObcjMzMQ337TBkSOHso2xOXx4P2rWtBGwQiIiKtSZm6FDh6JChQro3r07evTogRo1aii7LiK1NHr0OEyaNBYuLn1Rt259/P77Bdy6dQNWVlUQHh6OxMR3WLlyrdBlEhGVaIU6c/PHH39g+PDhuHnzJrp3746ePXtiy5YtiIws3gUAiYRmZGSEjRu3YeBAF7x//w4VK1aEnp4e0tPT0b59R+zcuR9169YTukwiohKtUGduTExM4OrqCldXV4SFheHEiRM4evQofH190bhx4zyXZyDSBrq6uujVqy969eordClERJSLIq8KbmVlhVGjRsHW1harV6/GrVucnZWIiIiEU6Rwc+fOHRw/fhxnz55FamoqHB0d4eHBhQOp5AoIWIfY2BjMnj1P6FKIiEqsQoWblStX4uTJk4iKikKrVq0wZ84cODo6okyZMsquj0ijREW95aXgREQCK1S4uXXrFtzc3NClSxeYmJgouyYijeXpuUDoEoiISrxChZt9+/YBAJ49e4bAwECkp6dn2+/o6Fj0yojUVEJCAk6ePIbAwIeIi4sFAJiYSFG/vh26dHGCRCIRuEIiopKtUOEmLCwM48ePx5MnTyASiRSTmIlEIgBAcHCw8iokUiPBwY/g4TEB+vr6aNy4KaysqgAA4uPjcOjQfuzevQO+vv6wta0jcKVERCVXodeWqlSpErZv3w5HR0ccOnQI8fHxWLZsGdeTIq3m5+cDBwdHTJs2WxHmP5HL5fDxWQI/Px8EBGwXqEIiIirUJH737t3DxIkTYWJiArFYDJFIhMaNG8PDwwOLFi1Sdo1EauPZsxAMGOCSI9gAWWcuBwxwQUjIUwEqIyKiTwoVbmQyGQwNDQEAEokEUVFZV4dUqlQJ//zzj/KqI1IzUqkUQUGBee4PCgrkIHsiIoEVqluqZs2aePLkCaysrNCgQQNs2bIFenp6OHDgAKysrJRdI5HaGDjQFT4+S/DkyWM0btwEEokUABAfH4vbt2/h+PEjGDdukrBFEhGVcIUKN2PGjEFKSgoAYOLEiRg9ejRcXFxgbGwMPz8/pRZIpE6cnfvD2NgY+/f/jCNHDkImkwEAxGIxbGxqY/bs+XB07CBwlUREJVuhwk3r1q0V/1+1alWcOXMGCQkJKF++fK5jEYi0iaNjRzg6dkRGRgYSEhIAAMbGxtDVLfJqJkREpARK+zY2NjZW1qGINIKuri5MTU2FLoOIiP6jUAOKiYiIiNQVww0RERFpFYYbIiIi0ioMN0RERKRVeHkH0X+IxSKIxcV71Z+ODv+uICIqLgw3RP8iFosgkRgWe7ghIqLiw3BD9C+fztpcfBiJ+OS0YmvHSmqApjV5GTkRUXFQi3CzZ88ebN26FdHR0bC1tYWnpyfs7OzyvP/79+/h5+eHc+fOISEhAZUqVcLs2bPRtm1bFVZN2iw+OQ2xianFdnxjA71iOzYRUUkneLg5deoUvL294eXlhQYNGmDHjh1wc3PDmTNnIJVKc9w/LS0Nw4YNg1QqxerVq2Fubo43b96gXLlyAlRPRERE6kbwcLN9+3b0798fzs7OAAAvLy9cunQJhw8fxqhRo3Lc//Dhw3j37h327dsHPb2sv34rV66s0pqJiIhIfQkabtLS0vDo0SOMHj1asU0sFqNly5a4d+9ero+5ePEiGjZsiAULFuDChQswMTFB9+7dMXLkSOjo6OS7bS6BpTp8rdUH3wsi0lQF+f4SNNzEx8cjMzMzR/eTVCrFixcvcn1MWFgYrl+/DicnJ2zatAmhoaHw8vJCRkYGxo8fn++2pdKyRaqd8kciMRS6BPp/fC+IqKQQvFuqoORyOaRSKRYuXAgdHR3Uq1cPb9++xdatWwsUbmJjEyGXF2OhBaCjI9baH574+GRkZsqELiPf+F4QEaknkSj/JyYEDTcSiQQ6OjqIjY3Ntj02NjbP1ZbNzMygq6ubrQvK2toa0dHRSEtLQ6lSpfLVtlwOtQk32o6vs/rge1E0r1+H48GD+4iNjYFYLIalZSU0adIMhoZGQpdGRP8iaLgpVaoU6tati2vXrqF9+/YAAJlMhmvXrsHV1TXXxzRq1AgnTpyATCaDWJw1y+vLly9hZmaW72BDRFQQKSkpWLx4Pi5fvggAEIlEkEgkSEhIQKlSpeHuPh7Ozv0FrpKIPhF8Dvhhw4bhwIEDOHLkCJ4/f4758+cjJSUFffr0AQBMnz4dK1euVNz/u+++Q0JCAhYvXox//vkHly5dQkBAAFxcXIR6CkSk5fz9fREbG4MdO/Zi795f0KaNAzp16oazZy/jhx+mYMOGNfjttzNCl0lE/0/wMTddu3ZFXFwc1qxZg+joaNSuXRtbtmxRdEtFREQoztAAQMWKFbF161Z4e3ujR48eMDc3x5AhQzBy5EihngIRabk//vgdK1b4w9q6BgBg+vQ56NWrC4YPH4Xu3XsiNTUVe/fuRMeOnQWulIgANQg3AODq6ppnN9SuXbtybLO3t8eBAweKuywiIgBARkYmDA3/N9DcwMAAmZkZSElJgb6+Ppo2bY5161YLWCER/Zvg3VJEROqudu06OHhwr+L2gQN7YWwsgUQiAQCkpHyAgUEZocojov9QizM3RETqzN19AiZPHofLly9CV1cPcXGxmDNnvmL/w4cP0Lx5K+EKJKJsGG6IiL7AxsYWO3fux9WrV5CenoZGjZqgWjVrxX5eKUWkXhhuiIjywdTUFD169Ba6DCLKB4YbIqJ8SE9Pxx9/XMKjRw8UE49KpVLUq9cArVu3VSzkS0TCY7ghIvqC8PAweHiMR0xMDOrUqQsTk6z18J4+fYKjR39BhQoVsGLFGlSubCVwpUQEMNwQEX3RihXeqF69BrZv35NjqYXk5CQsWjQPvr7L4Ou7VqAKiejfeCk4EdEXPHz4N0aOHJPrGlKGhkYYMWIM/v77ngCVEVFuGG6IiL7AyKgsIiIi8twfEfEGRkb5W62YiIofu6WIiL7AyakXFi2ah6FD3fD1101hYmICAIiLi8OdOzexY8c2Xg5OpEYYboiIvmDECHfo6+vj5593Ye3aVRCJRAAAuVwOExMpXFyGwMXle4GrJKJPGG6IiPLB1XUoXF2H4s2b14iLy7oU3MRECkvLSgJXRkT/xXBDRFQAlpaVFIHmzZvXyMjIgK4uv0qJ1AkHFBMRFdKgQc4IDw8Tugwi+g/+uUFE9AWzZ0/LdbtMJsOqVT4wMDAEACxZ4qPKsogoDww3RERfcOXKJTRoYJ/r+JoyZQxgZJRz/hsiEg7DDRHRF8ybtwjr169Bly7d0a1bD8X2s2dPYdSosdlWCCci4XHMDRHRF7Rv3wnr1m3GiRPHMGfONLx//17okojoMxhuiIjyoWJFS6xbtxnW1jUwdOh3uHHjmmK+GyJSL+yWIiLKJ7FYDDe30WjcuBkWLZoHmUwmdElElAuGGyKiAmrQoCF27NiL16/DUbmyldDlENF/MNwQERWCgYEBatasJXQZRJQLjrkhIiqigIB1WLLES+gyiOj/8cwNEVERRUW9RXR0lNBlENH/Y7ghIo0VEvIUT54Ew97+a1SqVBkvXjzHL78chFwuQ5s2DmjWrIVK6vD0XKCSdogofxhuiEgjXb58EXPnzoKRkRHS0tKxZIkPPD1nwta2NsRiHUyfPglz5nihY8fOSmkvISEBJ08eQ2Dgw2yrgtevb4cuXZwgkUiU0g4RFR3DDRFppB07tmH48FH4/ns3nD9/Fp6eMzFwoAuGDh0BANi7dzf27t2plHATHPwIHh4ToK+vj8aNm8LKqgoAID4+DocO7cfu3Tvg6+sPW9s6RW6LiIqO4YaINFJY2Ct07NgFAODo2BGLFs1D69bfKva3afMttm3bpJS2/Px84ODgiGnTZueYuE8ul8PHZwn8/HwQELBdKe0RUdHwaiki0kgGBgZ49+4dACAxMRGZmZl49y5Bsf/9+3cwMCijlLaePQvBgAEuuc5ILBKJMGCAC0JCniqlLSIqOoYbItJIjRs3ha/vMvz222ksXjwPTZo0R0DAOrx69RKhoS+xbt1q1K/fUCltSaVSBAUF5rk/KCgQJiYmSmmLiIqO3VJEpJHGjZuEhQvnwsfHG/XrN8CCBd7YvHk9XF37QSQSwdKyMmbNmquUtgYOdIWPzxI8efIYjRs3gUQiBQDEx8fi9u1bOH78CMaNm6SUtoio6BhuiEgjmZhI4ee3Ltu2yZOno3//QUhN/YgqVb6Crq5yvuKcnfvD2NgY+/f/jCNHDirWlBKLxbCxqY3Zs+fD0bGDUtoioqJjuCEirVKpUuViOa6jY0c4OnZERkYGEhISAADGxsZKC1BEpDz8V0lEGuuvv64gOPgRmjZtDju7hrhz5xb27t0FmUyOtm0d0LNnH6W3qaurC1NTU6Ufl4iUhwOKiUgjHT16GLNnT8W1a39h2rQfcPbsKcyaNRVmZhVQsWJFrFmzEgcO7BW6TCISAM/cEJFGOnRoP6ZMmYkePXrj7t3bmDr1B4wfPwl9+vQDANStWx8//7wT/ft/J3ClRKRqPHNDRBopIuI1mjbNWjuqUaPGkMky0bChvWK/vf3XiIyMEKo8IhKQWoSbPXv2oF27dqhfvz769euHBw8e5OtxJ0+ehI2NDcaOHVvMFRKRuilf3hhv32aFl5iYaGRmZuLt20jF/sjICJQrV16o8ohIQIJ3S506dQre3t7w8vJCgwYNsGPHDri5ueHMmTOQSqV5Pi48PBzLli1D48aNVVgtEamLb75pA2/vhejSpRv+/PMPdO7cDWvXroJIJIZIJML69avRpEmzfB9PLBZBLM45A7GyyWRyyGTyYm+HqCQTPNxs374d/fv3h7OzMwDAy8sLly5dwuHDhzFq1KhcH5OZmYmpU6diwoQJuHPnDt6/f6/KkolIDYwZMxHp6b64cOE31Ktnh8mTp+PgwX2YNWsKMjIy0LBhI7i7j8/XscRiEUwkZSAS6xRz1YBclom4+BQGHKJiJGi4SUtLw6NHjzB69GjFNrFYjJYtW+LevXt5Pm7dunWQSqXo168f7ty5U6i2c1kihooJX2v1oU3vhYFBGcycOSfbNheXwejbtz8yMjJgaGiY72OJxSKIxDqIf7AFGUmRX35AIekaWUBiNwJisQhyOcMNUUEU5PtL0HATHx+PzMzMHN1PUqkUL168yPUxt2/fxqFDh3D06NEitS2Vli3S4yl/JJL8/8BQ8So570Xh/21nJEUiPTFUibXkruS8F0TCELxbqiCSkpIwffp0LFy4sMiL1MXGJkJd/nDS0RFr7ZddfHwyMjNlQpeRb3wvNEtMTAzu3LmJsmXLoUmTZtDT01PsS0lJwd69uzF8+MgvHkfV77s2vhdExU0kyv+JCUHDjUQigY6ODmJjY7Ntj42NzXUG0LCwMLx+/RpjxoxRbPu0xkudOnVw5swZVKlSJV9ty+VQm3Cj7fg6qw9tei+Cgx9h8uTxkMtlyMjIgJlZBSxZsgLW1tUBAB8+fMD27ZsxbNiXw40QtOm9EMLr1+F48OA+YmNjIBaLYWlZCU2aNIOhoZHQpZEaEDTclCpVCnXr1sW1a9fQvn17AFlh5dq1a3B1dc1xf2traxw/fjzbtlWrViE5ORlz5syBhYWFSuomIuEFBKxDmzbfYuZMT3z8mIL16/0xYcIo+PmtQ61atkKXR8UkJSUFixfPx+XLFwEAIpEIEokECQkJKFWqNNzdx8PZub/AVZLQBO+WGjZsGGbMmIF69erBzs4OO3bsQEpKCvr0yVoTZvr06TA3N8eUKVNQunRp1KpVK9vjy5UrBwA5thORdnvy5DE8PGZALBbDwMAQU6fOhLm5BX74YSx8ff1hbs4/drSRv78vYmNjsGPHXpQqVRobN66FpWUlDB8+CufPn8WqVT4oW7YcOnbsLHSpJCDBw03Xrl0RFxeHNWvWIDo6GrVr18aWLVsU3VIREREQi9VirkEiUjNpaWnZbg8ePBQ6OjqYPHk8Zs2aK1BVVJz++ON3rFjhD2vrGgCA6dPnoFevLhg+fBS6d++J1NRU7N27k+GmhBM83ACAq6trrt1QALBr167PPnbp0qXFURIRqTlr6+oIDPwbNWrUzLZ90KDBkMtl8PKak8cjSZNlZGRmu8zfwMAAmZkZSElJgb6+Ppo2bY5161YLWCGpA54SISKN1LlzNzx8+Heu+1xcvsfw4aPYNaWFateug4MH/7fa+4EDe2FsLIFEIgEApKR8gIFBGaHKIzWhFmduiIgKysmpF5yceuW539V1KFxdh6qsHlINd/cJmDx5HC5fvghdXT3ExcVizpz5iv0PHz5A8+athCuQ1ALDDRERaQwbG1vs3LkfV69eQXp6Gho1aoJq1awV+3mlFAEMN0SkpQIC1iE2NgazZ88TuhRSMlNTU/To0VvoMkiNMdwQkVaKinqL6OgoocugYpCeno4//riER48eKCaBlUqlqFevAVq3bpttpmoqmRhuiEgreXouELoEKgbh4WHw8BiPmJgY1KlTFyYmWWsTPn36BEeP/oIKFSpgxYo1qFzZSuBKSUgMN0SksRISEnDy5DEEBj5EXFzWX/AmJlLUr2+HLl2cFFfQkPZYscIb1avXwPbte3IstZCcnIRFi+bB13cZfH3XClQhqQNeCk5EGik4+BG++64PDh3aDyMjIzRoYI8GDexhZGSEQ4f2w8WlLx4/DhK6TFKyhw//xsiRY3JdQ8rQ0AgjRozB33/fE6AyUic8c0NEGsnPzwcODo6YNm02RCJRtn1yuRw+Pkvg5+eDgIDtAlVYcqSlpUEsFkNXN+sn5fXrcJw4cQxRUZEwN6+I7t17wtKyklLaMjIqi4iICMUMxf8VEfEGRkb5WzmatBfP3BCRRnr2LAQDBrjkCDZA1mKKAwa4ICTkqQCVlTweHuNx5colAMCDB/cxeHB/XL36JzIyMnD9+l8YMmQAAgMfKKUtJ6deWLRoHvbv34Nnz0IQFxeLuLhYPHsWgv3792DJEi9eSUU8c0NEmkkqlSIoKBBVq36V6/6goECYmJiotqgSKiTkCWrUyFq8eNOm9ejduy8mTPBQ7N+8eQPWrVuNDRu2FrmtESPcoa+vj59/3oW1a1cpwq1cLoeJiRQuLkPg4vJ9kdshzcZwQ0QaaeBAV/j4LMGTJ4/RuHETSCRZV83Ex8fi9u1bOH78CMaNmyRskSWETCaDTCYDAISGvsIPP0zNtr9rVyccOLA3t4cWyqfZp9+8eZ1tILmyur5I8zHcEJFGcnbuD2NjY+zf/zOOHDmo+HEVi8WwsamN2bPnw9Gxg8BVlgx16tTDX3/9gapVv0KlSpXw7NlT1KxZS7E/JOQJypUrp/R2LS0rMdBQrhhuiEhjOTp2hKNjR2RkZCAhIQEAYGxsrBjYSqoxcuQYTJ06ESkpKWjfvhPWrVuF8PAwVK1aDWFhr3Dw4D4MHjxUae3FxMTgzp2bKFeuHBo3bpZt0r6UlBTs27cbw4aNVFp7pHn4DVAEv/xyEJcv/45y5cqhZ88+aNy4qWJfQkICRo78HgcPHhOwQqKSQVdXF6ampkKXUWLVq2eHFSvWwN/fD0FBgQCAnTu3AQBMTc0wfPgo9O//nVLaCg5+hMmTx0MulyEjIwNmZhWwZMkKWFtXB5C1Kvj27ZsZbko4hptCOnhwHwIC1qJrVyckJydh2rQfMHz4KAwePAwAIJNl4u3bCIGrJCJSjXr17BAQsB3x8fF48+Y15HIZpFJTVKxoqdR2AgLWoU2bbzFzpic+fkzB+vX+mDBhFPz81qFWLVultkWai+GmkI4d+wXTp/+Ijh07AwB69eqLWbOmIjU1FSNGuAtcHRGRMCQSSbHODP3kyWN4eMyAWCyGgYEhpk6dCXNzC/zww1j4+vrD3Nyi2Nqm3MlkMojFOWeWkclkiIqKgoWF6t8TznNTSBERr1G/vp3idv36DbBmzQb8+usRbNzIab+JqORKSUnByZO/IiBgHQ4f3o937xKUevy0tLRstwcPHorBg4dh8uTxePhQOfPpaLOMjAxERkYW+TjJyUnw9JyJ9u1bw8mpI7Zs2YjMzEzF/oSEePTv36PI7RQGz9wUUvnyxoiKepvtlKu1dQ2sXr0BP/wwBjEx0QJWR0SkOq6u/bB+/RaUK1ceb99GYty4kUhKSoSVVRW8fv0aP/20FQEB25VyZZO1dXUEBv6NGjVqZts+aNBgyOUyeHnNKXIb2u6ff17Azc0Vf/xxs0jH2bx5I549ewpPTy8kJSVhx46tePr0MRYv9lEM8pbL5cooucB45qaQ7Owa4vLlizm2V6tmjVWr1uP69asCVEWkXcRiEXR1xcX+n44OvwqL4tWrl4q/2AMC1sHMzAyHDp3A5s07cejQcVSvXgObNq1XSludO3fDw4d/57rPxeV7DB8+il1TKnLlyiVMmzYbDg7t4eTUC1u27EJ8fDxmzJisOLuW2wziqsAzN4Xk6joUT54E57rP2ro61qzZgEuXcoYfIsofsVgEicQQYrEwX45UOIGBDzBt2iwYGWUtbGlgYAA3t9GYN2+2Uo7v5NQLTk698tz/aYK/kmz4cJfP7k9NTVVKOwkJ8bCwqKi4bWxsjNWr18PDYwKmTfsBM2b8qJR2CoPhppBq1KiZ47Tov1lb18hzYTci+jKxWASxWISLDyMRn5z25QcUgZXUAE1r8lLyoskKoWlpaZBKs7+WZmYVFPMQUfF7+fIfODp2zPNKtdjYGISFhRa5HXNzC7x69U+27kYDA0P4+q6Fh8d4zJ49rchtFBbDTRHI5XJERLxBhQrm0NXVRXp6Ov7443ekpaWhRYtvYGxsLHSJRBovPjkNsYnK+UszL8YGel++E33WpEljoKOjg+TkZISGvsr2x11kZATKly+vkjoCAtYhNjYGs2fPU0l76qhateqoU6ceevfum+v+kJAnOH78aJHbadq0OU6ePI4WLb7Jtt3AwAC+vv6YNGlckdsoLIabQgoNfYnJk8cjOjoKlpaV4Ou7Fp6eMxEa+hJyuRz6+vrYsGEbrKyqCF0qEVGx+u+EeWXKGGS7/ddfV2Bn11AltURFvUV0dJRK2lJX9es3QGjoqzz3GxgYokED+yK3M3z46DwvnjEwMMSqVevw5MnjIrdTGAw3hbRhgz9q1qyF5ctX4eTJY5g+fRKsrKogIGA7ZDIZPD1n4KefNsPTc6HQpRIRFavhw0d9dv+4cT+oqBLA03OBytpSV5MmTf3s/kqVKsPfP6DI7ZQrV+6za4YZGBjC3v7rIrdTGAw3hfTw4QP4+a1F9eo1MHLkWBw8uA/Tps1RrGnj6joU8+fzkkShnTp1HG3aOCgGNxKR5ktISMDJk8cQGPgw26rg9evboUsXp2KdRJCyS039iMePH6NcuXKoVs36P/tScfHiOXTp0l3ldTHcFFJKygeULZvVh1ymTBno65fJtrZNhQrmiI+PE6o8+n/Lly9GnTr1GG6IBPT6dTiWLVuENWs2FvlYwcGP4OExAfr6+mjcuKmi6z8+Pg6HDu3H7t074OvrD1vbOkVuS9lCQp5i377dePDgb8TGxkAsFsHSshJat/4WgwYNhqGhcr+nXr8Ox4MH9/+/LTEsLSuhSZNmSmsnNPQVPDzG4+3bSIhEItjZNcT8+UsUv4XJyUnw9l7AcKNJTE3N8PZtpGJa6bFjJ2b7ayEhIQFly5YVqrwSp0uXdrluz8zMhLv7MIhEWfOYnD7Ny/OJVO3Dhw+4f/+uUo7l5+cDBwdHTJs2O8ccKnK5HD4+S+Dn54OAgO1KaU9Zbty4htmzp6JFi1aws7PD5cu/o1u3HtDXL4MLF37D+fNnsX79lhxXmhVGSkoKFi+er5iLTSQSQSKRICEhAaVKlYa7+3g4O/cvcjsbNvjD2ro6tmzZhaSkRKxZsxJjxrjB3z9AkCUX/o3hppAaN26K0NCXaNCgIQDkGJV+8+Z1LuKmQhkZGbC3bwQHh/aKbXK5HMuWLcKgQUNgZlZBwOqItNvBg/s+u1+ZA3yfPQvBnDnzc50cTiQSYcAAFwwb9vl5XoSwcaM/JkyYjF69sn4rOne+jlWrVmDPnkMYOXIMpkyZiICAdUq5ysvf3xexsTHYsWMvSpUqjY0b18LSshKGDx+F8+fPYtUqH5QtW06xNmJhBQY+wKpV62FsbAxjY2MsW+aHlSuXYty4EVizZiPKlClT5OdSWAw3hTRt2ucnpHJ07CDIqbiSavv2PfDymoM7d27Bw2MGDAyyrtZYtmwRWrf+NkdfMBEpz5o1KyGVmiqm3P+v9PR0pbUllUoRFBSIqlW/ynV/UFAgTExMlNaesrx69QrNmrVU3G7cuBlevw5HTEwMTE1NMXz4SMyZM10pbf3xx+9YscJfcTn+9Olz0KtXFwwfPgrdu/dEamoq9u7dWeRwk5qaCh0dHcVtkUiEqVNnwdd3GSZMGI158xYV6fhFwXBTTJSxhgrlX+XKVtiwYRs2bVqPYcMGYc6c+Sq79JTyFhkZmW1sQfnyxkKXRMXAwqIi3N0nwNGxQ677Q0KewM1tsFLaGjjQFT4+S/DkyWM0btwEEokUABAfH4vbt2/h+PEjGDduklLaUiYzMzOEhr5STKz3+nU45HK5Yv4fM7MKSEn5oJS2MjIyYWhoqLhtYGCAzMwMpKSkQF9fH02bNse6dauL3E7VqlXx+HEQvvqqWrbtHh4zAAAzZngUuY3CYrgpgtTUjzh37uz/D9iKzTY4rHHjpkKXV+Lo6upi7NiJaNasBby8fkTHjl0EW9ekpPvll4PYs2dHju6IunXr44cfpsLWtrZAlVFxsLGxxZMnwXmGG0CktAUUnZ37w9jYGPv3/4wjRw5CJpMBAMRiMWxsamP27PmfqUM4nTt3w7JlizBkyDDo6ZXC/v170KpVG8XZrpCQp6hYUTl/FNeuXQcHD+5VhIwDB/bC2FiiGBeakvIBBgZF7zJq08YB58+fRefO3XLs8/CYAZlMjmPHDhe5ncJguCmk8PAwTJo0FqmpqdDT00N0dBRatGiF4OAgHD16GG3aOGDevEWKS8NJdb7+ugm2bduNZcsWQ1+/DBdFVLGff96FAwd+xuDBQ1GqVGns378H7dt3gq1tHZw7dwbjx4/E2rWb1PJqFiocNzd3pKZ+zHN/tWrWOHjwV6W15+jYEY6OHZGRkaFY1sHY2Fitv28HDx6GlJQU/PTTVqSnp6Fp0xb44Yf/zUdjZmaGqVNnKqUtd/cJmDx5HC5fvghdXT3ExcVizpz5iv0PHz5A8+atitzO4MHDMHjwsDz3T506U2nPqaDU95Og5lat8kGzZi0wdeosiEQi7N79E+7fv4tNm35CWFgoPDzGY8eOrXBzGy10qSVS+fLGWLLER+gySqQjRw5ixowf0aJF1pdngwb2GDNmOI4dO4vmzVuibNlyCAhYBz+/dQJXSsrypTFturq62RZYVBZdXd1sU3Cos09nlseOnZjr/jp16imtLRsbW+zcuR9Xr15BenoaGjVqku09UsaVUuqOf9IW0v37dzFwoKui22PAABfcvn0T794lwMqqCiZO9MCZMycFrrJky8jIQFhYKJKSkoQupUSJj4/L1gdvZVUFSUlJir+wu3XrgcDAhwJVR1QymJqaokeP3nB2HiDYBRWvX4dj4kR3QdpmuCkkI6Oy+PDhf4O/Pn78iMzMTEX/afXqNREbGyNUeSXOnj07FKfFMzMzsXbtKnTo0BouLn3RrZsjlizxQkZGhsBVlgxWVlVw69YNxe27d29DT08PUmnWwM/SpUtxLFQJExCwDkuWeAldhuCuXfsTS5cuxPr1q/Hy5T/Z9r1//15pQWDv3t2IjIxQyrGKQpnzGxWUWnRL7dmzB1u3bkV0dDRsbW3h6ekJOzu7XO974MABHD16FCEhIQCAunXrwsPDI8/7F5cmTZrB398X06bNhp6eHgIC1qJmzVowMMgaof72bSSMjTkFuKoEBKxD165OKF1aH/v3/4yTJ3/F1KmzUKdOPYSEPIG/vx/2798DF5fvhS5V67m6DsPChZ64ffsmSpUqhcuXf0ffvgMVgebu3Tuwtq4ucJWkSlzMEvjttzNYvHgemjVrgdDQVzh06ABmzsy68AEAMjLSlRYE1q9fjY0b/WFv/zWcnHqhTRuHPC/TLwpVzm9UUIKHm1OnTsHb2xteXl5o0KABduzYATc3N5w5c0bxl96/3bhxA926dUOjRo1QqlQpbNmyBcOHD8fJkydhbm6usrrHjp2ImTOnwNW1H0QiESpUMM82xiMhIR6DBinn0kf6sn9fiXH+/Bm4u49Ht249APxvPMCuXdsZblTA0bEDDAwM8Ntvp/HxYwomTJiMHj16K/Y7ODjCwcFRwApJ1biYJbB3706MHz8Z/foNBABcuHAOS5cuQFpaKrp376X09mbM+BFXrlzCwoVzYWhoiI4du8LJqadi7htlUOX8RgUleLjZvn07+vfvD2dnZwCAl5cXLl26hMOHD2PUqJwrza5cuTLb7UWLFuHs2bO4du0aevXqpYqSAQASiQkCArYjLCwU6elpqFLlq2wj9f89Uy6pStaZgbdvI1G/fvYzefXq2SEi4o0QRZVILVq0Ugwo/i/OdaOdlLmYpVgsglhc/F2XMpkcMplyLlH/kvDwMLRq1Vpx29GxAyQSCWbM8EBGRgbatHFQanstWrRC165OiI+Pw6lTx3Hq1HEcPrwfNja2cHLqjfbtOyp6GgpLlfMbFZSg4SYtLQ2PHj3C6NH/u6JILBajZcuWuHfvXr6OkZKSgoyMDMVESKr2adE2Et7x40dQpowBdHX18P79+2z7Pnz4AD29UgJVRqTdlLmYpVgsgomkDERinS/et6jkskzExaeoJOAYGBgiLi4u2wSvjRo1xvLlfpg+fTKiooqnC0ciMYGLy/dwcfkef/99DydOHIO/vy/8/X1x7tyVIh1blfMbFZSg4SY+Ph6ZmZk5up+kUilevHiRr2OsWLECFSpUQMuWLb98539RxnjGf/55gcOHDyAw8EG2v1Tq1bODs3N/Tvn//1QxdtTc3ALHjx8FAJQqVQpPnz6GvX0jxf57926jSpWqKqlFnani+WdkZCAgYB0uX/4d5cqVQ69ezujevadif1xcLHr27IIrV24WfzFqTJs+i35+PmjX7suLWW7a9OXFLMViEURiHcQ/2IKMpMjiKhm6RhaQ2I2AWKyaH+A6derixo2rqF+/frbtjRp9jeXLfTF9+mQAyvlciEQiiEQ5j9WwoT0aNrTH5MlTceHCuSK3NWKEOz5+/JjncaytrXHo0K9K+6wX5DiCd0sVxaZNm3Dq1Cns3LkTpUuXLtBjpdKirdh9+fJljBs3DnXr1kWnTh0VAS02NhZ//fUXhg93xfr169G6desvHEm7SSRFO+2ZX5cvX/rs/pYtm+Lbb7+BqWnJXaldVe+Fv78/fvvtNIYPH473799j7dpVePHiKRYs+DTuIhVyuZzvhRZ5/jwEK1Ysh5lZuVz3jx49Er179y7Qe56RFIn0xFBllZgnVb0Xo0aNwL1793J9DTp2dEC5chtx7Ngxpfy7kMvlMDExyvN3ztS0LIYPH1LkdkxNG3zxPhYWwlxYI2i4kUgk0NHRQWxsbLbtsbGxX5yYaevWrdi0aRO2b98OW9uCr74dG5uIooT15ct94OLyPUaOzHnp3nffDcXWrQHw9l6K2rUbfvFYOjpirfuy+yQ+PhmZmTKhy0DlyllX58TEJH72fnwviu7o0WOYPn2OYnyBg0MnTJkyEZMnT8Xs2XMRH58EkUjE90IN/l28f/8ef/31R5EX+TUxkeLq1ZsoX75CrvuvXr0JicTki+85oPr3XVXvhbV1bVhb187zNahRoy6mTKmbr9foS/788xbk8i9/32kakSj/JyYEneemVKlSqFu3Lq5du6bYJpPJcO3aNdjb2+f5uM2bN2P9+vXYsmVLjlN8+SWXF+2/0NBQdOzYOc/97dt3QlhYWL6Ope2K+loX5b++fXsiNDQ03/fXdqp4zaOjo1CtWnXF7UqVrODvH4CHD//GggVzFT8kfC+E/y8yMhJLliwo8nEGDnTF8uVL4Oe3AleuXEZgYCACAwNx5cpl+PmtgI+PNwYNGqK2/waFev3T0zMQGhqKxMQkwT8LxfHfxo3rsHixl1KPmV+Cd0sNGzYMM2bMQL169WBnZ4cdO3YgJSUFffr0AQBMnz4d5ubmmDJlCoCsrqg1a9Zg5cqVqFSpEqKjowFkrXr671VQi1vFihVx9eqfqFLlq1z3X736JywsLFRWT0mX13wLUVGROHXqOExMsroNP12GScXHxMQUr1+HK1Y/BrJWPPb3D8CECaOxePF84YorYZKTPz87978nIi0KTV3MUpX27NmBvn0HoHRpfWRmZmLDBn8cPrwfmZmZEIlE6NSpK6ZPn6O09bE+jQl99Cj7mNC6dVU3JlTI+Y0EDzddu3ZFXFwc1qxZg+joaNSuXRtbtmxRdEtFRERALP7fCaZ9+/YhPT0dEydmX59j/PjxmDBhgsrqdnNzh5fXHNy7dweNGzeDiYkJACAuLg537tzEjRvXMG/eIpXVU9KtWbMSZmYVoKOT/QoLmUyGM2dO/v8XhojhRgW+/roxzp07g8aNm2bbbmpqhjVrNmLCBK63piqdOzt8djZouVyutNmiNXExS1VS5USj1679hdmzp6JWLVt8801bxR93cXGxuH37BtzcXOHtvRLNmrUoclufI+T8RmrxqXN1dYWrq2uu+3bt2pXt9sWLF1VR0he1a9ceZmZmOHRoH/bt2/2fq6Xqw98/APXqqXbW5JKsR4/eCAoKxLx5i7Ota9S2bTP4+q7llWsqNHToCLx69TLXfWZmFbB27aZsyzNQ8TEwMMCQIcPzXJQxPDwMPj5LlNqmJi1mqUqqnGh048a1cHH5HiNG5BwT6uY2Glu3BmD9+tVKCTfKnN9ImdQi3Giq+vUboH79BkKXQQCmTZuNy5d/h4fHeLi4DIGz8wChSyqxLCwqfnYFaFNTsyIPYKX8qVUr62ILe/uvc91vZFQWQs1DUjKpZqLRsLCsMaF56dChE/bs2VnkdpQ5v5GyMdyQ1mjb1gF16tTFokXzcPXqX5g9e67QJZVoUVFvYWRUFgYGBtm2Z2RkIDDwARo2bJTHI0lZOnTojNTU1Dz3S6VSDBs2UoUVlWyqmmhUVWNC/fx84ODw5fmNAgK2F7mtgmK4KSYBAesQGxuD2bPnCV1KiWJmVgGrVq3H7t0/YfhwF6HLKZFiYmIwa5YHnjx5DJFIhPbtO2HKlJmKkPP+/TtMnOiOP/4o2ZP4qcK/1/TKjYmJFMOH51zmhpQvt4lG/x3w797NmmhUGVQ1JvTZsxDMmTM/13FbIpEIAwa4YNgwYb6HGW6KCVfBFY5IJMLgwcPQpElzPHhwH1Ip+/9VaeNGf4hEYmza9BMSExOxceNaTJzoDl/ftShXLmuSN3aFaB5VrfekoyPoDCXF5tCh45/dX6dOPTRsmPcUKAWhqjGhUqkUQUGBqFr1q1z3BwUFKoKVqjHcFBOugis8W9vasLWtLXQZJc7t2zexZImPop+9QQN7eHrOwA8/uGP16g0AoLQrdKho4uJicezYL1/smhKLRZBIDFUSbkqqevUKN2dbXlQxJnTgQFf4+CzBkyeP0bhxE0gkWVdlxcfH4vbtWzh+/AjGjZtUrDXkheGmCNR1lHhJpQ7zOlDW3Cply/5vGv5SpUph8WIfeHrOxIQJ7pg7d6GA1dG/xcbGYvv2zfkKN2KxCBcfRiI+Oa1Ya7KSGqBpTe0825qeno4//riER48eKGbml0qlqFevAVq3bgs9PT2BKywYdZ7fiOGmkNR5lHhJpC7zOhBgaVkJz5+HKP5NAFmXBy9cuBSenjMxffok4YorYZ49C/ns/tDQVwU6XnxyGmIT8x6grAzGBpr1A59f4eFh8PAYj5iYGNSpU1fxHfX06RMcPfoLKlSogBUr1qByZatir0WZY0LVdX4jhptCUudR4iWRKud1oM9r1qwlfv31CL791jHb9k8B58cfp3M8mooMGzYIIlHuq15/2s4uQtVYscIb1avXwPbte2BoaJRtX3JyEhYtmgdf32Xw9V1b7LUUx5hQdZvfiOGmkNR5lHhJpKp5HejLRo0ai9TUj7nu09XVxaJFyxETE63iqkqmcuXKYcyYiTlmi/7kn3+eY8YMDxVXVTI9fPg3Nm/ekSPYAIChoRFGjBiDUaOKPoFffpSEMaEMN4WkzqPESyKu9aU+dHV1oaub8wv83/s/N8kfKY+NTW3ExETn+XonJibyyjUVMTIqi4iICFhb18h1f0TEGxgZ5W/F6/wo6WNCGW4KSZ1HiZdEXOtLvXBwt3ro2dMZHz+m5Lnf3NyCc3GpiJNTLyxaNA9Dh7rh66+b5viO2rFjG5yd+yulLY4JZbgpNHUeJV4Sca0v9cHB3eqjbVuHz+4vV64cl8JQkREj3KGvr4+ff96FtWtXKYY0yOVymJhI4eIyRCnrSgEcEwow3BSJuo4SL6m41pd64OBuoty5ug6Fq+tQvH4djvj4OABZf4BZWlZSajvKHBOqqskbZTI5ZDLldZHyV1gJ1G2UOJGQOLhbvbCLUP1UqlQZlSpVLrbjK2tMqFgsgomkDERiHSVXmJNclom4+BSlBRyGGyoRuNaX6nBwt/pgF6F6UVXQVNaYULFYBJFYB/EPtiAjKVIpteVG18gCErsREItFDDdEBcG1vlSHg7vVB7sI1Ycqg6ayx4RmJEUiPTG0yHWpEsMNlQglYV4HdcHB3eqDXYTqQ9VBs6SPCS0Zz5JKhJI+r4M64eBu9cAuQvUhVNAsqWNCGW4+Q1WjxHV0xMXehrbjvA5EObGLUH0waKoWw00exGIRyhsbQJfBQyNwXgfNwcHdqsMuQvXBoKlaDDd5EItF0NURw331SYSExxZrW+3sq2HOoNbF2oa241pfmoODu1WLXYTqgUFTtRhuviAkPBYP/ineL+KalbgGVVFxrS/NwcHdVFIxaKoOww1pBa71pV44uFszsItQc6liTKgmjwdluCGtwLW+1AcHd2sOdhGqj4IETbFYBInEUCUXvGgqhhvSGiV9Xgd1wcHdmoNdhOqjIEHz01mbiw8jEZ+cVmw1WUkN0LSmZl5Gzm990joldV4HdcHB3eqFXYSaoTBBMz45DbGJqcVQTRZjA71iO3ZxY7ghIqXi4G71wS5C9cKgqToMN0SkVBzcrT7YRag+GDRVi+GGiJSKg7vVB7sI1QeDpmox3BCR0nFwt3pgF6H6YNBULX7TkMbgvA6ah4O7hcUuQvXBoKlaDDekEbjWF1HBsYtQfTBoqhbDDWkEVa31xXW+SNuwi1A9MGiqFj/dpFGKe60vrvNF2opdhMJj0FQdvqJEREQqxKBZ/BhuiKjAOLibiNQZww0RFQgHdxORulOLcLNnzx5s3boV0dHRsLW1haenJ+zs7PK8/+nTp7F69Wq8fv0aX331FaZOnYq2bduqsGKikouDu4lI3Qkebk6dOgVvb294eXmhQYMG2LFjB9zc3HDmzBlIpdIc97979y6mTJkCDw8PODg44Pjx4xg3bhx++eUX1KpVS4BnQFQycXC3emAXIVFOgoeb7du3o3///nB2dgYAeHl54dKlSzh8+DBGjRqV4/47d+5E69atMWLECADApEmTcPXqVezevRsLFhR8VVUiIk3FLkL1ooqgCTBs5oeg4SYtLQ2PHj3C6NGjFdvEYjFatmyJe/fu5fqY+/fvY+jQodm2ffPNNzh//nxxlkpEpHbYRag+GDTVi6DhJj4+HpmZmTm6n6RSKV68eJHrY2JiYnJcQieVShETE1OgtsViQC7/8v3qW5vDoLRegY5dUNUts06/m5YtDV2d4kv95Q1LAQB0y1lBpFOq2NoBAB1Dc8X/i5X4b7243w++F/mnLe8FoLr3o7jeC/1SusX6XpTS1QHA9+JzPgVN/6M38TrmfdEP+BkNq1tgoEM9rfmeyu97kcuyXHnfVy7Pz0988Xj79i3atGmDffv2wd7eXrF9+fLluHXrFg4ePJjjMfXq1cPSpUvRvXt3xbY9e/Zg3bp1uHr1qkrqJiIiIvUl6PkziUQCHR0dxMZmP50aGxub5wRHpqamOc7SfO7+REREVLIIGm5KlSqFunXr4tq1a4ptMpkM165dy3Ym598aNmyI69evZ9t29epVNGzYsDhLJSIiIg0h+MinYcOG4cCBAzhy5AieP3+O+fPnIyUlBX369AEATJ8+HStXrlTcf8iQIbhy5Qq2bduG58+fw9/fH4GBgXB1dRXqKRAREZEaEfxS8K5duyIuLg5r1qxBdHQ0ateujS1btii6mSIiIiD+1wijRo0aYcWKFVi1ahV8fX3x1VdfYd26dZzjhoiIiAAIPKCYiIiISNkE75YiIiIiUiaGGyIiItIqDDdERESkVRhuiIiISKsw3KixgIAAODs7w97eHi1atMDYsWPzXJZCLpdjxIgRsLGx4TpbKrBp0ybY2Nhg8eLFim3R0dGYNm0aWrVqhYYNG6J37944e/asgFVqr6SkJCxevBgODg6ws7PDwIED8eDBg2z3ef78Odzd3fH111+jYcOGcHZ2xps3bwSqWHvcunUL7u7u+Oabb3L9vomJicHMmTPxzTffoEGDBnBzc8PLly8V+xMSErBw4UJ06tQJdnZ2+Pbbb7Fo0SIkJiaq+Jlovp9//hlOTk5o1KgRGjVqhAEDBuDy5cuK/QX5TkpLS0PPnj1hY2OD4OBgVT2FYsNwo8Zu3rwJFxcXHDhwANu3b0dGRgbc3Nzw4cOHHPfdsWMHRAVZeIMK7cGDB9i3bx9sbGyybZ8xYwb++ecfbNiwAcePH0eHDh0wadIkBAUFCVSp9vrxxx9x9epVLF++HMePH0erVq0wbNgwvH37FgAQGhqKQYMGwdraGrt27cKvv/6KsWPHonTp0gJXrvk+fPgAGxsbzJs3L8c+uVyOcePGISwsDOvXr8eRI0dQqVIlDBs2TPG9FRUVhaioKMyYMQMnTpyAt7c3rly5gjlz5qj6qWg8CwsLTJ06Fb/88gsOHz6M5s2bY9y4cQgJCQFQsO+k5cuXo0KFCqp+CsVHThojNjZWXqtWLfnNmzezbQ8KCpK3bt1aHhUVJa9Vq5b83LlzAlWo/ZKSkuQdO3aU//XXX3JXV1f5okWLFPsaNmwoP3LkSLb7N23aVH7gwAEVV6ndUlJS5LVr15b//vvv2bb37t1b7uvrK5fL5fJJkybJp06dKkB1Jct/v29evHghr1Wrlvzp06eKbZmZmfLmzZt/9t/BqVOn5HXr1pWnp6cXa70lQZMmTRSvdX6/ky5duiTv3LmzPCQkRF6rVi15UFCQqsotNjxzo0E+nbYtX768YltKSgqmTJmCuXPnwszMTKjSSowFCxagbdu2aNmyZY599vb2OH36NBISEiCTyXDy5EmkpqaiadOmAlSqvTIyMpCZmZnjLEzp0qVx9+5dyGQyXLp0CV999RXc3NzQokUL9OvXj921KpCWlgYA2d4bsViMUqVK4c6dO3k+LikpCUZGRtDVFXxeWY2VmZmJkydP4sOHD4rli/LznRQTEwNPT08sX74c+vr6QpWvdAw3GkImk2HJkiVo1KhRttmYvb29YW9vj/bt2wtYXclw8uRJBAUFYcqUKbnuX7VqFTIyMtCsWTPUr18fc+fOxdq1a1G1alUVV6rdjIyMYG9vj/Xr1+Pt27fIzMzEsWPHcP/+fURFRSE2NhYfPnzA5s2b0bp1a2zbtg0dOnTA+PHjcfPmTaHL12rW1tawtLTEypUr8e7dO6SlpWHTpk2IjIxEdHR0ro+Ji4vD+vXrMWDAABVXqx2ePHkCe3t71K9fH/PmzcO6detQo0YNAF/+TpLL5Zg5cyYGDhyI+vXrC/k0lI4xWUN4eXkhJCQEP//8s2LbhQsXcP36dRw5ckTAykqGiIgILF68GNu2bctz3Mbq1avx/v17/PTTT5BIJDh//jwmTZqEPXv25BifQ0WzfPlyzJ49G23atIGOjg7q1KmDbt264dGjR5DJZAAAR0dHDB06FABQu3Zt3L17F/v27eOZtGKkp6cHf39/zJkzB02bNoWOjg5atGiBNm3aQJ7LZPhJSUkYPXo0qlevjvHjxwtQsearVq0ajh49isTERJw9exYzZszA7t27UaNGjS9+J+3atQvJyckYPXq00E9D6RhuNMCCBQtw6dIl7N69GxYWFort169fR2hoKJo0aZLt/hMmTEDjxo2xa9cuVZeqtR49eoTY2FjFgq5A1mngW7duYc+ePThz5gx2796NEydOoGbNmgAAW1tb3L59G3v27MGCBQuEKl0rValSBbt378aHDx+QlJSEChUqYNKkSbCysoJEIoGuri6qV6+e7THVq1f/bNcIKUe9evVw7NgxJCYmIj09HSYmJujXrx/q1auX7X5JSUkYMWIEDA0NsW7dOujp6QlUsWYrVaqU4kxMvXr18PDhQ+zcuRMjRoz44nfS9evXcf/+/RxnbZydneHk5IRly5ap/PkoC8ONGpPL5Vi4cCHOnTuHXbt2wcrKKtv+UaNGoV+/ftm2OTk5YdasWXBwcFBlqVqvefPmOH78eLZts2bNgrW1NUaOHImUlBQAyLbIKwDo6Ojk+hcrKYeBgQEMDAzw7t07/Pnnn5g2bRpKlSqF+vXr459//sl235cvX6JSpUoCVVrylC1bFkDW6x4YGIgffvhBsS8pKQlubm4oVaoUNmzYwKvYlEgmkyEtLS1f30k//vgjJk2apNgXFRUFNzc3+Pn5oUGDBiqruTgw3KgxLy8vnDhxAuvXr4ehoaGiz7ps2bLQ19eHmZlZroOILS0tcwQhKhojI6McK88bGBjA2NgYtWrVQnp6OqpWrYq5c+dixowZMDY2xvnz5/HXX38hICBAoKq115UrVyCXy1GtWjWEhoZi+fLlsLa2VpxZc3Nzw+TJk9GkSRM0a9YMV65cwe+//46dO3cKXLnmS05ORmhoqOJ2eHg4goODUb58eVhaWuL06dMwMTGBpaUlnjx5giVLlqB9+/b45ptvAGQFm+HDhyMlJQU+Pj5ISkpCUlISAMDExAQ6OjqCPC9NtHLlSrRp0wYVK1ZEcnIyTpw4gZs3b2Lr1q2wtrb+4neSpaVltuMZGBgAyDoz+u9eAk3EcKPG9u7dCwAYPHhwtu3e3t7ZukdIeHp6eti0aRNWrlwJd3d3fPjwAVWqVMHSpUvRtm1bocvTOomJifD19UVkZCSMjY3RsWNHTJ48WdG10aFDB8yfPx+bNm3CokWLUK1aNaxZswaNGzcWuHLNFxgYiCFDhihue3t7AwB69+6NpUuXIjo6GkuXLkVsbCzMzMzQs2dPjB07VnH/R48e4e+//waQ9T7924ULF1C5cmUVPAvtEBsbixkzZiAqKgply5aFjY0Ntm7dilatWgFAif5OEsl5zpyIiIi0CC8FJyIiIq3CcENERERaheGGiIiItArDDREREWkVhhsiIiLSKgw3REREpFUYboiIiEirMNwQERGRVmG4ISKt5u/vj549ewpdBhGpEMMNEamVwYMHY/HixUKXQUQajOGGiIiItArDDRGpjZkzZ+LmzZvYuXMnbGxsYGNjg9DQUMyePRvt2rWDnZ0dOnXqhB07dmR73I0bN9C3b180bNgQjRs3xsCBA/H69etc2wgNDYWjoyMWLFgAuVyO169fw93dHU2aNEHDhg3RrVs3XL58WRVPl4iKCVcFJyK1MWfOHLx8+RI1a9bExIkTAQDly5eHhYUFVq9eDWNjY9y7dw9z586FmZkZunbtioyMDIwbNw79+vWDr68v0tPT8eDBA4hEohzHf/z4MUaMGAFnZ2dMnjwZALBgwQKkp6dj9+7dMDAwwLNnz2BgYKDS501EysVwQ0Rqo2zZstDT04O+vj7MzMwU2z8FHQCwsrLC/fv3cebMGXTt2hVJSUlITEyEg4MDqlSpAgCoXr16jmPfvXsX7u7ucHd3x/DhwxXb37x5g06dOsHGxkZxfCLSbAw3RKT29uzZg8OHD+PNmzdITU1Feno6bG1tAQDGxsbo06cP3Nzc0KpVK7Ro0QJdunRBhQoVFI+PiIjA8OHDMWnSJAwdOjTbsYcMGYL58+fjzz//RMuWLdGxY0fFsYlIM3HMDRGptZMnT2LZsmVwdnbGtm3bcPToUfTp0wfp6emK+3h7e2P//v2wt7fH6dOn0alTJ9y/f1+xXyKRoH79+jh58iSSkpKyHb9fv344f/48evbsiadPn6Jv377YtWuXqp4eERUDhhsiUit6enqQyWSK23fv3oW9vT1cXFxQp04dVK1aFaGhoTkeV6dOHYwePRr79u1DrVq1cOLECcU+fX19BAQEoHTp0nBzc8sRcCpWrIjvvvsOa9euxbBhw3DgwIHie4JEVOwYbohIrVSqVAl///03wsPDERcXh6pVqyIwMBBXrlzBP//8g1WrVuHhw4eK+4eFhWHlypW4d+8eXr9+jT///BMvX76EtbV1tuMaGBggICAAOjo6GDlyJJKTkwEAixcvxpUrVxAWFoZHjx7hxo0buY7ZISLNwTE3RKRWhg8fjpkzZ6Jbt274+PEjTp8+jeDgYEyePBkikQjdunXDoEGD8McffwAAypQpgxcvXuDIkSNISEhAhQoV4OLigoEDB+Y4tqGhITZv3gw3NzeMHj0amzZtgkwmw4IFCxAZGQkjIyO0bt0as2bNUvXTJiIlEsnlcrnQRRAREREpC7uliIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKtw+QUtIpPJkJaWJnQZREQkMD09Pejo6AhdhmAYbrREWloaXrx4gcxM2ZfvTEREWk0kAoyNjVGxYkWIRCKhy1E5hhstIJfL8ebNG8jlIkil5iXyg0xERJ/IkZqaivj4BACApaWlsOUIgOFGC2RkZCA5+QOMjaUoXVpf6HKIiEhgpUpl/RYkJCTA3Ny8xHVRcUCxFsjMzAQA6OrqCVwJERGpi9KlS0MuB9LT04UuReUYboiIiLRSyR2iwHBDREREWoXhRouJRCLo6IhV9l9BBzKPGTMSfn4+xfTsC6d580a4fPl3octQKXX/nKiDN2/eoHnzRnj69InQpagMPxekyTigWEuJRCIYldWHro7q8mtGpgxJiR8hl8tV1iYVjUgkQrlyZSAWq+6HRSaT4/37lHx/TsaMGYlatWph8uRpxVwZfSISiVC+XGmIxKobhCqXZeLd+1R+LvKhJD/3/GK40VJisQi6OmK4rz6JkPDYYm+vZmUpNv7QDWKxCJmZDDeaQiwWQSwW4eLDSMQnF/8EkBLDUmhX34KfEzUnFosgEusg/sEWZCRFFnt7ukYWkNiN4OeClIbhRsuFhMfiwT9RQpeRp8zMTKxYsRSnT5+Crq4u+vTpi1GjxkAkEuH06RPYv38vQkNfQV+/DBo3boJJk6bCxMQEAPD+/XusWLEMN29eQ0pKCszMKmDo0OHo3r0nAODt20isWeOHGzeuQSwWo0EDe0yePO2Lcz7ExMRg0qTxuHfvDqRSU4wf/wPatWuv2L927Wpcvvw7oqKiIJVK0alTF7i5jVRcrRYS8hR+fivw+HEQABGsrKwwc+aPqF27DgDg/v172LDBH48fB6N8eWO0beuAsWMnoEyZMsXwCudPfHIaYhNTBWs/LwsWzMO9e3dw794d7N+/FwCwY8fP2LNnV57v+5fen82bN+KPPy5h0CBXBARsQGJiIlq0aIlZszxhaGj42XpevXoJHx9vPHnyGJUrW2Hq1Jlo1OhrAFmf5aVLF+H27VuIi4uFubkFnJ37YcCAQYrH37lzG+vWrcaLF8+hq6uLatWqY8GCxahYMesz+ccfl7Blyya8fPkCpqZm6Nq1O4YOdYOurjBf1RlJkUhPDBWk7c9Rl8/Fmzdv0KdPdyxatBQHD+7D48fBsLauDi+vxUhKSsLy5Uvw6tVLNGhgj3nzFkIikQDI/czL9OkeMDIqi7lzvQAAhw4dwL59exAV9RaGhkZo2NAe3t4+uT73X345USLnsvkchhsS1KlTJ+Dk1BPbtu1EcHAQli5dBHNzC/Tq1QcZGRkYNWosqlativj4OKxe7YuFC+fBz88fALBp03q8fPkCfn5rUb68McLDw5Ca+hEAkJGRjh9+GIf69e2wceNW6OjoYPv2rZg8eTx2794PPT093LlzG+PGjcrxxbBp0waMHTsBHh7TcPr0SXh6zkK1ataoVs0aAGBgYAhPTy+Ymprh+fMQeHsvgoGBAQYPHgoAmDdvDmrVssH06bMgFusgJOSJ4scpPDwMkyePx+jRYzFnznwkJMRjxYplWLFiKTw9vVT4ymsGD4+pCAt7BWvr6hg1agwAKH78c3vfgS+/PwDw+nU4Ll++hJUrVyMx8T3mzJmJnTu3Y8yY8QCAEyd+xaJF83H9+t1s9fj7r8KkSVNRrVo17N27B1OnTsKRI8dRvrwx5HIZKlSogCVLlqN8+fJ48OBvLF26CFKpKdq374iMjAzMmOGBnj17Y8GCJUhPT0dQ0CPFWJP79+/Cy2suPDymoWFDe4SHh2Pp0kUAgBEjRhfny6xx1O1zsXnzRkyePBXm5hZYvNgLc+fOhoGBISZPngZ9fX3MmTMDmzZtwIwZs/P1/IKDg+Dn54N58xaifn07vH//Hvfv38vzuRsbSwr9WmorhhsSVIUK5pg0aSpEIhGqVv0Kz58/w759e9CrVx84OfVS3K9Spcrw8JiOYcNc8eHDBxgYGCAyMhK1atkozoj8O6CcO/cb5HI5Zs+eq/jx8PScj/bt2+Lu3dto1qwF9PX1UbXqVzn+Km7Xrj169uwNABg9eixu3ryOgwf3Y/r0WQCA4cNHKO5raWmJ0NBXOHfurOJLMjIyEi4uQ/DVV9UAAFWqVFHcf8eO7ejUqQsGDnRR7PPwmIaxY0di+vTZKF26tDJeVq1hZFQWurp60NfXh1RqCgCIjo7K830Hvvz+AFnrsHl6ein+Iu/cuStu3775r3aNULXqVznq6dt3ANq1cwQATJ8+C9evX8Wvvx7F4MFDoaurh5Ejx/yr7UoIDHyACxfOoX37jkhOTkZSUhJatWqDypWtAEARmIGsH+chQ4aiWzcnAFmf+VGjxmDdutUMN/+hbp8LF5chaN68JQBgwIBB8PSchbVrN6JBg4YAgB49euHkyeP5fn6RkRHQ1y+DVq1aw9DQEBUrWsLGxjbP5045MdyQoOrVq5/tKon69e3w88+7kZmZiZCQJ9i8OQDPnoUgMfE9ZLKsdbPevo1EtWrW6NOnH2bNmoYnTx6jadPmaNvWAXZ2DQAAz549RXh4GNq1+yZbe2lpqQgPD0ezZkDduvWwf/8vOWqqX98ux+2nT58qbp87dxYHDuzD69fhSEn5gMzMzGynrb/7zgVLlizE6dMn0bRpM7Rr117xY/bs2VM8exaCs2dPK+4vl8shk8nw5s3rbD92lLvPve/Al98fAKhY0TLbNlNTU8THxytuf/ttO3z7bbscbdevX1/x/7q6uqhduw5evvxHse3Qof04fvwY3r6NRGpqKtLT01Grlg0AoHz58ujWzQmTJo1DkybN0LRpMzg6doCpqRmArM/Gw4d/46eftiqOJ5PJkJqaio8fU6CvL1y3pSYQ8nNRo0ZNxf9/6javXj37tvj4uHw/l6ZNm8PCwgLOzk5o3rwlmjdviW+/deBnoAAYbkgtpaWl4YcfxqNZsxbw8loEY2MJ3r6NxA8/jFPMttmyZSscPXoSV6/+iZs3r2PCBHc4O/fHxImT8eFDCmxsasPLa1GOY3/q9y6Mhw//xvz5P2LEiNFo3rwlDA2NcP78Wfz88y7FfUaOdEenTl3w119XcO3aVWzevBELF3rj22/b4cOHD+jVyxn9+w/McWwLi4qFrqsk+dz7np/3B0COs3UikUgRngvr3Lmz8PdfhQkTJqN+fTsYGBhgz56dePQoUHEfT08v9O//Ha5fv4rz539DQMB6rFmzHvXq2SElJQUjRozO9cezVCme0fsSIT8X2R8nynXbv48jFovw34vCMjIyFP9vaGiIHTt+xt27d3DjxjVs3rwRW7YEYPv23ShbtuwX6yGGGxLYv7/4ASAw8CGsrKzw6tU/ePcuAePGTYC5uQWArH7o/5JIJOjWzQndujnhyJFD8PdfjYkTJ8PGxhYXLvwGExMTGBoaFaimwMCH6Nq1e7bbtWplnRJ+8OABLCwqYtiw/53ijoiIyHGMKlWqokqVqvjuO1d4es7CiRO/4ttv28HGpjb++ecFrKyq5HgM5U5PTy/Havd5ve/5fX8KKzDwIeztswYQZ2Rk4PHjYPTt2x8A8Pff91G/vp3iNgCEh4fnOIaNjS1sbGzx/ffDMWLE9zh79gzq1bNDrVq2CA19xc9GPqnT56KgjI0liI2NUdzOzMzEixfP0KhRE8U2XV1dNG2adYZvxIjRaN++LW7fvgkHB8dcnztlx3Cj5WpWlqp1O2/fRmLVqpXo3dsZT548xsGD+zBx4mSYm1eEnp4eDhzYhz59+uL58+fYvn1Ltsdu2rQBtra1Ua2aNdLT0/Hnn1cU41w6d+6CPXt2Yto0D4wa5Y4KFcwRERGBS5cuYvDg71GhgjkePQrEggVz4e+/ERUqVFAc9+LFc6hduzYaNLDH2bOnEBT0CHPmzAMAWFlVQWRkJM6dO4vatevgr7/+zDbp38ePH7F27So4OLSHpaUloqKiEBz8CN9+mzVOY/Dg7zFixFCsWLEUPXr0hr5+Gbx8+QI3b17H1KkzC/UaKoPEsJTatlOxYkUEBQXizZs3MDAogwMH9uX5vn/p/cmvS5cuYsOGtTm6LQ8fPgArqyr46qtq2LdvDxIT38PJqaei7dOnT+L69auwtKyE06dPIjg4SDH2482b1zh69Be0bt0GpqZmCA19hbCwMHTpkhWk3dxGYsqUSTA3t0C7du0hEonw7FkInj9/Bnf3cQV+Dsqga2Shtu2o0+eioBo3boLVq33x119XUKlSZezduxuJiUmK/X/++Qdev34Ne/tGKFu2LK5e/QtyuUwx3ue/z71cufIQizkn778x3GgpmUyOjEwZNv7QTWVtZmTKIJMVbI6KLl26ITU1FcOHD4GOjhj9+3+HXr2cIRKJ4OnphQ0b1uLgwX2wsbHFhAmTMG3aZMVjdXX1sH69PyIiIlC6dGk0bGiPRYu8AQD6+mWwceMWrFu3BjNnTsWHDx9gZlYBjRs3UfSpf/z4Ea9evcx2OhgARoxwx7lzv8HHZymkUlMsWLBEMRamTZu2GDhwEFasWIb09DS0bPkNhg8fgS1bAgAAOjo6ePfuHRYsmIu4uFgYGxujbdt2GDnSHQBQs2YtbNiwGRs3roO7uxvkcjkqVaqM9u07Fu5FLyKZTA6ZTI529VXzI/bvNvPLxWUIFiyYi+++64vU1I8YNWpsnu/7l96f/EpKSsKrVy9zbB87diJ27vwJISFPULmyFXx8/BRXqvTu7YynTx/jxx9nQiQSoUOHznB27odr1/4CAJQurY9Xr17i1KnjePfuHaRSU/Tt2w+9ezsDAJo3b4mVK1dh69bN2LVrB3R1dVG16lfo0aNXgWpXBplMDrksExK7EV++s5LIZZka+7koKCennggJCYGX11zo6Ojgu+9c8PXXjRX7jYzK4tKli9i6NQCpqWmwsrLCggVLYG1dPdfnzkvBcxLJOZ2sxvv48SOeP38BU1OLbH3zIpFI5TPP8uOkefg5odzwc6H50tJSERMTierVraGvry90OSrFMzdaTC6Xc7ZP+iJ+Tig3/FyQJmMnHREREWkVhhsiIiLSKgw3REREpFUYboiIiLRSyR0zxXCjBXR0dABkLRZJREQEAKmpqRCJsiY8LGl4tZQW0NXVhaGhAd6/T4COjm62tZqIiKikkSM1NRWJiQmQSIwVfwCXJJznRkukpaXhxYsXnJKbiIggEgHGxsaoWLFiifyDl+FGi8hkMqSlpQldBhERCUxPT69EnrH5hOGGiIiItAoHFBMREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVf4PIf46bz/T2DkAAAAASUVORK5CYII=\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "custom = {\"grid.linestyle\": \"solid\", \"grid.color\": \"white\"}\n", + "sns.set_style(\"darkgrid\", rc = custom)\n", + "\n", + "#Slowdown\n", + "plt.clf()\n", + "ax = sns.barplot(x=\"tasks\", y=\"tool slowdown\", data=df, hue=\"compile:measurement\", palette=[\"#00549f\", \"#8ebae5\", \"#fabe50\"]) \n", + "ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.12), fancybox=True, ncol=3)\n", + "\n", + "#Show values\n", + "for i in ax.containers:\n", + " texts = ax.bar_label(i, fmt='%.3g', rotation=90)\n", + " for text in texts:\n", + " text.set(y=5, zorder=2000)\n", + "plt.show() \n", + "\n", + "\n", + "#Runtime\n", + "plt.clf()\n", + "ax = sns.barplot(x=\"tasks\", y=\"avg_t(s)\", data=df, hue=\"compile:measurement\", palette=[\"#00549f\", \"#8ebae5\", \"#fabe50\"]) \n", + "ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.12), fancybox=True, ncol=3)\n", + "#Show values\n", + "for i in ax.containers:\n", + " texts = ax.bar_label(i, fmt='%.3g', rotation=90)\n", + " for text in texts:\n", + " text.set(y=5, zorder=2000)\n", + "plt.show() \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5642ce4-036d-4745-80bc-e3a0d30d332b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}