diff --git a/case1.ipynb b/case1.ipynb
new file mode 100644
index 0000000..5870ba6
--- /dev/null
+++ b/case1.ipynb
@@ -0,0 +1,179 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "3d878b00",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " STORE_CODE | \n",
+ " PRODUCT_CODE | \n",
+ " DATE | \n",
+ " SALES_VALUE | \n",
+ " SALES_QTY | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1 | \n",
+ " 18 | \n",
+ " 2019-01-01 | \n",
+ " 708.5 | \n",
+ " 65.0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " 18 | \n",
+ " 2019-01-02 | \n",
+ " 1297.1 | \n",
+ " 119.0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1 | \n",
+ " 18 | \n",
+ " 2019-01-03 | \n",
+ " 1144.5 | \n",
+ " 105.0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1 | \n",
+ " 18 | \n",
+ " 2019-01-04 | \n",
+ " 1090.0 | \n",
+ " 100.0 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1 | \n",
+ " 18 | \n",
+ " 2019-01-05 | \n",
+ " 893.8 | \n",
+ " 82.0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " STORE_CODE PRODUCT_CODE DATE SALES_VALUE SALES_QTY\n",
+ "0 1 18 2019-01-01 708.5 65.0\n",
+ "1 1 18 2019-01-02 1297.1 119.0\n",
+ "2 1 18 2019-01-03 1144.5 105.0\n",
+ "3 1 18 2019-01-04 1090.0 100.0\n",
+ "4 1 18 2019-01-05 893.8 82.0"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import mysql.connector\n",
+ "from mysql.connector import Error\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "\n",
+ "def retrieve_data(product_code=None, store_code=None, date=None):\n",
+ " \"\"\"\n",
+ " Busca dados de vendas de forma dinâmica com filtros flexíveis.\n",
+ "\n",
+ " Parâmetros:\n",
+ " ----------\n",
+ " product_code : int, opcional\n",
+ " store_code : int, opcional\n",
+ " date : list (str), opcional -> Ex: ['2019-01-01', '2019-01-31']\n",
+ " \"\"\"\n",
+ " # Configurações de conexão com o banco de dados\n",
+ " db_config = {\n",
+ " 'host': '35.199.115.174'\n",
+ " ,'user': 'looqbox-challenge'\n",
+ " ,'password': 'looq-challenge'\n",
+ " ,'database': 'looqbox-challenge'\n",
+ " }\n",
+ "\n",
+ " conn = None\n",
+ " try:\n",
+ " conn = mysql.connector.connect(**db_config)\n",
+ "\n",
+ " # Inicialização da Query base trazendo todas as colunas\n",
+ " query = \"SELECT * FROM data_product_sales WHERE 1=1\"\n",
+ " params = []\n",
+ "\n",
+ " # Construção dinâmica das cláusulas WHERE\n",
+ " if product_code is not None:\n",
+ " query += \" AND product_code = %s\"\n",
+ " params.append(product_code)\n",
+ " \n",
+ " if store_code is not None:\n",
+ " query += \" AND store_code = %s\"\n",
+ " params.append(store_code)\n",
+ "\n",
+ " if date is not None and isinstance(date, list) and len(date) == 2:\n",
+ " query += \" AND date BETWEEN %s AND %s\"\n",
+ " params.append(date[0])\n",
+ " params.append(date[1])\n",
+ "\n",
+ " # Execução e conversão direta para DateFrame Pandas\n",
+ " df = pd.read_sql(query, conn, params=params)\n",
+ " return df\n",
+ " \n",
+ " except Error as e:\n",
+ " print(f\"Erro ao conectar ou executar query: {e}\")\n",
+ " return pd.DataFrame()\n",
+ " finally:\n",
+ " if conn and conn.is_connected():\n",
+ " conn.close()\n",
+ "\n",
+ "teste = retrieve_data(date = ['2019-01-01', '2019-01-31'])\n",
+ "display(teste.head())"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/case2.ipynb b/case2.ipynb
new file mode 100644
index 0000000..b86151f
--- /dev/null
+++ b/case2.ipynb
@@ -0,0 +1,268 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "149ad913",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " STORE_NAME | \n",
+ " BUSINESS_NAME | \n",
+ " TM | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Bahia | \n",
+ " Atacado | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Bangkok | \n",
+ " Posto | \n",
+ " 13.67 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Belem | \n",
+ " Proximidade | \n",
+ " 15.37 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Berlin | \n",
+ " Proximidade | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Buenos Aires | \n",
+ " Atacado | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " Chicago | \n",
+ " Varejo | \n",
+ " 15.53 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " Dubai | \n",
+ " Atacado | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " Hong Kong | \n",
+ " Farma | \n",
+ " 26.35 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " London | \n",
+ " Farma | \n",
+ " 28.99 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " Madri | \n",
+ " Farma | \n",
+ " 29.03 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " Miami | \n",
+ " Posto | \n",
+ " 13.67 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " New York | \n",
+ " Proximidade | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " Paris | \n",
+ " Proximidade | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " Rio de Janeiro | \n",
+ " Farma | \n",
+ " 29.59 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " Roma | \n",
+ " Varejo | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " Salvador | \n",
+ " Atacado | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " Sao Paulo | \n",
+ " Varejo | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " Sidney | \n",
+ " Posto | \n",
+ " 13.67 | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " Tokio | \n",
+ " Varejo | \n",
+ " 15.39 | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " Vancouver | \n",
+ " Posto | \n",
+ " 13.67 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " STORE_NAME BUSINESS_NAME TM\n",
+ "0 Bahia Atacado 15.39\n",
+ "1 Bangkok Posto 13.67\n",
+ "2 Belem Proximidade 15.37\n",
+ "3 Berlin Proximidade 15.39\n",
+ "4 Buenos Aires Atacado 15.39\n",
+ "5 Chicago Varejo 15.53\n",
+ "6 Dubai Atacado 15.39\n",
+ "7 Hong Kong Farma 26.35\n",
+ "8 London Farma 28.99\n",
+ "9 Madri Farma 29.03\n",
+ "10 Miami Posto 13.67\n",
+ "11 New York Proximidade 15.39\n",
+ "12 Paris Proximidade 15.39\n",
+ "13 Rio de Janeiro Farma 29.59\n",
+ "14 Roma Varejo 15.39\n",
+ "15 Salvador Atacado 15.39\n",
+ "16 Sao Paulo Varejo 15.39\n",
+ "17 Sidney Posto 13.67\n",
+ "18 Tokio Varejo 15.39\n",
+ "19 Vancouver Posto 13.67"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import mysql.connector\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "\n",
+ "# Conexão com banco de dados\n",
+ "conn = mysql.connector.connect(\n",
+ " host = '35.199.115.174',\n",
+ " user = 'looqbox-challenge',\n",
+ " password = 'looq-challenge',\n",
+ " database = 'looqbox-challenge'\n",
+ ")\n",
+ "\n",
+ "# Executar Queries originais fornecidas pelo cliente (sem alterações)\n",
+ "query_1 =\"\"\"\n",
+ "SELECT\n",
+ " STORE_CODE\n",
+ " ,STORE_NAME\n",
+ " ,START_DATE\n",
+ " ,END_DATE\n",
+ " ,BUSINESS_NAME\n",
+ " ,BUSINESS_CODE\n",
+ "FROM data_store_cad\n",
+ "\"\"\"\n",
+ "query_2 = \"\"\"\n",
+ "SELECT\n",
+ " STORE_CODE\n",
+ " ,DATE\n",
+ " ,SALES_VALUE\n",
+ " ,SALES_QTY\n",
+ "FROM data_store_sales\n",
+ "WHERE DATE BETWEEN '2019-01-01' AND '2019-12-31'\n",
+ "\"\"\"\n",
+ "df_store = pd.read_sql(query_1, conn)\n",
+ "df_sales = pd.read_sql(query_2, conn)\n",
+ "conn.close()\n",
+ "\n",
+ "# Processamento e Filtro de Datas via Pandas\n",
+ "df_sales['DATE'] = pd.to_datetime(df_sales['DATE'])\n",
+ "mask = (df_sales['DATE'] >= '2019-10-01') & (df_sales['DATE'] <= '2019-12-31')\n",
+ "df_sales_filtered = df_sales.loc[mask]\n",
+ "\n",
+ "# Merge dos DataFrames com base no STORE_CODE\n",
+ "df_merged = pd.merge(df_sales_filtered, df_store, on='STORE_CODE')\n",
+ "\n",
+ "# Agrupamento e cálculo do Ticket Médio (TM)\n",
+ "df_grouped = df_merged.groupby(['STORE_NAME', 'BUSINESS_NAME']).agg({\n",
+ " 'SALES_VALUE': 'sum',\n",
+ " 'SALES_QTY': 'sum'\n",
+ "}).reset_index()\n",
+ "\n",
+ "# TM = Valor Total de Vendas / Quantidade Total de Vendas\n",
+ "df_grouped['TM'] = (df_grouped['SALES_VALUE'] / df_grouped['SALES_QTY']).round(2)\n",
+ "\n",
+ "display(df_grouped[['STORE_NAME', 'BUSINESS_NAME', 'TM']])"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/case3.ipynb b/case3.ipynb
new file mode 100644
index 0000000..6e1525b
--- /dev/null
+++ b/case3.ipynb
@@ -0,0 +1,136 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "9b6a4671",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAKsCAYAAADbS8X9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeBVJREFUeJzt3QeYVNX9P/6zFAUU7L1hRYioYK9R7L0mdqNGg7G3qNi7xq6osZdYgg17jEYTY6yJUSMK9gb2HhUQhP0/n/P93/0Nyy7srly2vV7PM8/uzty9c+bOmTtz3/M551ZVV1dXJwAAAAAoSYeyVgwAAAAAAigAAAAASqcCCgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgCgBNXV1bYrLZ5+CsD0IoACaEEGDx6cevXq1ajLqFGjUkvxr3/9Ky299NLp9ttvr3eZ7777Ll1wwQVp4403Tssuu2xae+2104knnpi++OKLJh88Pf3002nQoEFpiy22SCuttFJe7zrrrJMOOuigdP/996cJEyZMcR1vvfVW6t+/f96e22+/fRo7dmyT2tIevPPOO+ncc89NW2+9dVpllVXSMsssk9Zbb7109NFHp5dffrnO/yn66o8//pjaiyeeeCLttddeqaUbOXJk+tnPfpZft48++midy3z99dfpd7/7XX6++/btm9Zff/303nvv5ec0Xr9MG7vttlvepnvssccUl3v22WfzcjvttNNPvs/YPx522GGpLLFfKF7/++6771SXv/LKK2uWj/eJKbn88svzcgMGDEhffvllo9p1xBFH5P8dOnToZO+/U7vfaeGoo47K71eV+8R4HHH/8fwW4v298v3+lVdemeJ6x40bl1ZcccU697n1fb6IfXi8b26zzTb5sX/66adTfS4rL7H/WH311dOvf/3r9Oc//3my/4v336222ipvc4BONgFAyxEf5uJDaaUIZp566qnUrVu3fKBfW1zfErz99tv5QGZK36ZH+LT77rvnD9ELL7xwDolef/31NGTIkPT3v/893XbbbWneeedt8H3Gh/NDDz00vfTSS/nvxRdfPH/47ty5cz6wfvjhh9NDDz2UrrrqqnywMt988022jv/9739pv/32yx+STzrppHyJg+2LL744VVVVNXFrtD0TJ05Ml112Wb7EtlpooYVy0NehQ4f0xhtvpLvuuivdc8896cgjj0x77rlnas8+/PDDfDA2zzzzpJYuDvjjIPXAAw+sc/8SzjjjjHTvvfemOeaYI6277rpp1llnTR07dpzubW0vIlCPfeKOO+5Y6v38+9//TocffngO36eHJ598Mr8HzDzzzPUu88ADDzRoXWPGjEnXX3996tq1a7r00kvT7LPPnlqLCGnuvvvudNNNN6VOnRp3KBbvZxH41Ofxxx9P33777RTXEfvu5Zdfvubv2J9/8803afjw4fl98k9/+lO66KKL0mqrrVbn/y+11FL5s0oh9h+ff/55Ds4ieI/34wirCrGvOP7449Muu+yS9x+bbbZZox4z0LYIoABakA033DBfKsWHugigZptttlx50lIPmOJAZmpVTPENbIRPUT1z+umn5w/fEWz8/ve/zwcTJ598cvrDH/7QoPv85JNP0s4775x/rrnmmrkCaokllpgsoDrttNNyuLX//vvngKv2B/647ziYifZHRcGbb76Z/vrXv6YbbrhhqpUI7ckpp5ySD0wWWGCB/Hts80KEjhFQHHvssemss87KB5i/+MUvam4vvhVv7MFWaxV9ujX4+OOPc3AYlRfx+qjPf//73/wzqiOiCiqMHz8+P68R9jLtnX322bm6bP75528T/bRHjx457P/b3/6Wttxyy3q/xHj11Vdzn4r+NSUR0H311Ve5T/bu3XuatDECkk033TS/15YlArgIdCPsjaqjhoovmn744Yf0l7/8ZYoVa8VrckrbL76kif10XdVT8cVLfGET+4OoZI4vdWqLzygRWNdVHRuh6XXXXZe3Y3xBUXmf8ZjjfT/6dffu3Rv4yIG2xhA8AJosAqeoGIqhRvEN6pQOluKDdwRA8Y31McccUxNGRAVNVM3Et7JxcPL+++836L7jfiN82mCDDXIVR+3wKSy44IL52/H4xjiCr6iIqi0+EMe3xlGZFeKb2vhb+PT/PPbYYzl8igqYm2++eZLwKUSlWAyxiKGU4cILL8wHS4U4iKnrQIbmFdWGMWwyQt8pVfsVB7OV1YlxkBvPaVQyMu2fl++//z4dd9xxbWbTxrDNEAFKfYqgeq211prq+qLK8rXXXstBx7QSVVTRp8usprr22mvTZ599lvbee+9G/V8ENhH+xtDXESNG1LlMfJESX7Y0ZPvVZYYZZsjD5OLLg+h/559/fqP+f9FF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V//sZz/Lt73++us119955535ui222CJvp8K3335bvddee+Xbzj///MleN3E59NBDq8eNG1ez7YttFZdLL7205n8+/fTT6hVXXDFfX/ka2HzzzfN1tftJLF/0iXvuuWey53GttdaabPnll18+94mhQ4dOctvtt9+er+/Xr1/1xx9/XHP9kUcemdd12GGHTdIX77777rx83LbrrrvW+bivuuqqyfpQYx9LKK5/9913p/gYv/vuu/x3XH/jjTfWXB/7n9///veTvL7Hjh1bs2w8B5X7qMcee6y6b9++1X369Kl+5ZVXap635ZZbLr/OPvnkk5plo08dcMABeT0XX3xx9dQU/Sgu8X/RjqKN5513Xr5+yy23rNlejW1n5X4wnuv333+/Zv2V/1uXeB7j/5588slJ9nPRvysVz/GOO+44yTaOfX1cf/zxx9f092LfXuyfYj87pfWEhx56KF+//fbb5+e00hVXXJFv22CDDaa6rWu/J7zwwgv59/3333+y5Ypt/9Zbb+XnsfbrubH763j+4nmM66PNhdguxb43LtEfCnXdb/G+dcopp0zy/EW/+O1vf5tvi/fahihey9Fv6lK8zuJ5qe91VuzrKt9Piv1g9MXY19W3zy0eXzwnU3PSSSflZS+44ILJnsvar7PYph9++GH1ZZddVr300ktX//KXv5yk/1V6/PHHJ3vfA9oXFVAArVgxpCOG88SwgEKUz8dwkagqiW8k6/oWMybtjrPZFOJb7t/+9rf5m934pn9aK0ruu3TpUuftxfUNKc0vKgLqO8tYDOmK6pDal7i+ENUvUfkS32AXQxsKMVwvvkWOioKYkLy2qCaorGaIibmLYVaVFVxRiRDbM4aIxGnuK5+fqByLSpL41rquYQ4xVKQQlStRORDPS/weFUaVlV8xN1NUwhUVSMXwh6IipPbcXPFNelQTxanApzYRcbGOKVW9/BRR0RTbrxBDfYpv3+PseoWYGDdEtVPM7VWICc/juqiyiaGJtaugovIiKjmKybJj20clRojhhFE5VVl5EpUhoZiLLLZlvLaieqd2P4nli+qmysqe+kSlTPTvqOKIS6Wosojr4v6K119UP0X1RgzHiiGe0fZCDD2svY5K0Reibxei30zLx1JfhUf05ag0qey/8RzEMNiofoznJ6oEY4hpLBtVaTHktHIOqqhIitdYLFcM/4yhmlHV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pB2nn356Ouyww9Jyyy2X1l577XTllVem6urqSdr+j3/8I22++eZ5OOFmm22WHnvssZr1L7300umDDz6YZPkddtgh/f73v5/m2xAAAACgJWiRAVQMwbv//vtzGFTXbREELbnkkum2225LF110Ufrvf/+bfv3rX6cJEybkZY466qj05JNPpgsuuCANGTIkffvtt+mBBx6YZD3vv/9++vTTT9Pdd9+dDj300PTyyy+nAw88MAdG9913X1737LPPno488sg0bty4mv/705/+lLp3755DrPi/Sy+9NF111VWTrPuPf/xjOv744/N6evbsmQ455JD0/fffp3XWWSev85577qlZ9p133kkvvvhi2m677UrYkgAAAADNr0UEUFdccUXq169fvkTVUARPCy64YNpiiy0mW/baa6/NE31HwLP44ounVVddNZ1//vnplVdeSU888UQaOXJkeuihh3IF1Oqrr56WWmqpdM4556Q555xzsnVF5VMM94swK+aYinXuscce+brevXvnKqsvv/wyffHFFzX/s+iii6aTTjop3/c222yTw7AInCqroI455phcfRXL7r///rki66233kqdOnVKW2211SQBVARgUW21xBJLlLJtAQAAAJpbi5gDascdd8xBTvjxxx/Te++9l6uXYv6n22+/fZJlX3/99bTGGmtMcl0Ma4uqpNdeey1PYh4izCrMOOOMadlll53sfqM6qRCB0yyzzJKH1L399tu5Da+++mq+raisChEsVVVV1fwd9xMVUJVDACN4KvTo0SP/LNoVlU4RokXVVrTp3nvvTfvss08TthoAAABA69AiAqgIfhZZZJGav6O6KK7beeed01NPPTXJsrXnW6q8vnPnzjVny5s4cWKj5pn617/+lYfxxTC5mBcqqq+icikqmCpFFVOl4n4qz9LXocPkhWVFu6PSKeaPiuApQqnPP/88zxcFAAAA0Fa1iACqLkVgUztIiuF3//nPfya5LiqVvvvuuxxcRfVRVCjFvEoxSXiIOZxiiN5qq61W7/1FVVJUNw0ePLjmuhtvvHGStoRhw4ZN8n/PP/98Hi4YgVlDRRXUZZddlh/b+uuvX1MlBQAAANAWtYg5oEaPHp0+++yzfImJwZ977rl0xhlnpLnnnnuy0GjPPffMQ+1OPfXUPK/Ss88+m4444ojUp0+fvGzM37TJJpvk259++un05ptv5rPgffzxx5MMnattvvnmy+uN+x41alS688478wTnoXIS8rj94osvTu+++26644470s0335z23nvvRj3emOj8m2++yROZxzxSAAAAAG1Zi6iAiuqjuBTD12addda04oorpnPPPTd17dp1kmVj+NrVV1+dLrzwwrT11lunmWeeOVcRHX744XkIXojw6bTTTstntYvqpRhOF3M1FbfX5aCDDsrD4fbdd9+aoXIRgv3ud7/LVU9RXRXWW2+9HHxtueWWOSAbNGhQ2mmnnRr1eIs2x7C/2vNZAQAAALQ1VdX1TarUSv3www/pn//8Zz47XgQ9hY022iiHRrXndGqMmCh9gQUWSGedddZPbmesq3///unQQw/9SesphgQeceWTadhbH/3kdgEAAADl6bv4fOmhwf9X/NLaFZlE3759W0cF1LQ0wwwzpJNPPjmtvPLKab/99suTg8dQuQ8//DBtvPHGzd289Mgjj6QRI0bkOarOPvvs5m4OAAAAQOnaXAAV8zxdeeWV6Zxzzkk77LBDmjBhQp4fKob4FcPomlMMH3znnXfyMMGYdwoAAACgrWtzAVTo3bt3zZxS01JxVryfYsiQIdOkLQAAAACtRYs4Cx4AAAAAbZcACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSdSp39UwvSyw0p40NAAAALdwS7fT4XQDVRlx65PbN3QQAAACgASZMnJg6dmhfg9La16Nto8aNG5fGjBnT3M2ghYq+MXz4cH0E/QP7D7y/4DMILYbPqLT3/tGxnYVPof094jaqurq6uZtAC+4bsePWR9A/sP/A+ws+g9BS+IyK/tH+CKAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaDaiKqqquZuAi24b3Tt2lUfQf/A/gPvL/gMQovhMyr6R/tTVV1dXd3cjaDphg0bln/27dvXZgQAAIBmNmHixNSxQ/uo9xnWiEyi03RoD9PBEVf8Nb314Ve2NQAAADSTxeefLZ07cAPbvw4CqDYiwqfh733e3M0AAAAAmEz7qAkDAAAAoNkIoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAoVZsNoHbbbbd09NFH13lbXB+3h169eqWhQ4c2aJ1fffVVuv3226dpOwEAAADauk6pnXviiSdS9+7dG7Ts2WefnUaNGpV+8YtflN4uAAAAgLai3QdQc801V4M3VnV1dalPBgAAAEBb1GaH4DVU5RC8L774Ih100EFplVVWScsuu2zacccd07/+9a+aYXt33XVX/jv+J0yYMCFdf/31aaONNkp9+/bNP//0pz/VrPvZZ59Nffr0SVdeeWVe57bbbpv233//tPvuu0/Shrfffjuv84033piujx0AAABgemj3FVCVTjrppDRu3Lh00003pRlmmCFdfvnlab/99kuPP/54OvbYY9PYsWPTxx9/nAYPHpyXP+uss9I999yTjj/++BxAxXKnn356+uGHH9Iee+xRE1L94x//SLfeemsaM2ZM+vDDD3MI9dFHH6X55psvL3P33Xfn/19yySWny5MOAAAAMD216QDqvvvuSw899NBk10fI1L9//8muf//999NSSy2VFlpoodSlS5ccOm2xxRapY8eOqVu3bvm6zp0752F73333Xa52isqoWCb07NkzzxEVFU+/+tWvata711575dtChExzzjlnuvfee9PAgQPTxIkTc4j1m9/8ptRtAQAAANBc2nQANWDAgHTEEUdMdv25556bvv7668muP+CAA9Lvfve7HFqtsMIKac0110ybb755mnHGGSdbNobNjR8/Pi9XaeWVV0433HBDHs5XKMKn0KlTp7Tlllvm0CkCqGeeeSZ9+eWX+X4AAAAA2qI2PQfUTDPNlBZZZJHJLnF9XTbYYIP0z3/+Mw+tW2CBBdJ1112XNt544zrnZqpvQvKoaCqCpkLtAGu77bZLb731Vnr55ZdzJdR6662XZplllp/4aAEAAABapjYdQDVGDMs788wz08iRI9Omm26aTjvttPTII4+kDh06pMceeywvU1VVVbP84osvnofj/ec//5lkPc8991weojelQCn+t1+/funBBx9Mjz76aJ6cHAAAAKCtatND8BojJh0fNmxYDpBiUvGYpykmFR89enQOi0LMA/Xpp5/mkCrmidphhx3SxRdfnGadddY8ifgTTzyRbrnllnTYYYdNElbVJaqgIuTq0aNHWmONNabTowQAAACY/lRAVbjgggtysPTb3/42D70bMmRIni9qxRVXzLdvvfXW+Ux2MV/TJ598kgYNGpR23333vMxmm22WJyU/4YQT8qTjU7PJJpvkYXyxzpjkHAAAAKCtqqqubzIjShVVVBtuuGEehlc5SXljRdVWOOGOEWn4e59PwxYCAAAAjdFnkTnTXSf/st1stGH/fyYRo8KmxhC86eyjjz5KL730Uh6qt9Zaa/2k8AkAAACgNRBATWdfffVVOvroo3PwdMkll0zvuwcAAACY7gRQ01mfPn3SCy+8ML3vFgAAAKDZmIQcAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFJ1Knf1TC+Lzz+bjQ0AAADNyLF5/QRQbcS5Azdo7iYAAABAuzdh4sTUsYMBZ7XZIm3AuHHj0pgxY5q7GbRQ0TeGDx+uj6B/YP+B9xd8BqHF8BmVttw/hE91E0C1EdXV1c3dBFpw34gdtz6C/oH9B95f8BmElsJnVPSP9kcABQAAAECpBFAAAAAAlEoABQAAAECpBFAAAAAAlEoABQAAAECpBFAAAAAAlEoABQAAAECpBFBtRFVVVXM3gRbcN7p27aqPoH9g/4H3F3wGocXwGRX9o/2pqq6urm7uRtB0w4YNyz/79u1rMwIAAEAzmzCxOnXs0D6KRIY1IpPoNB3aw3Rw0p+eSu9++j/bGgAAAJpJz7l7pJN2Wt32r4MAqo2I8On1D75q7mYAAAAATMYcUAAAAACUSgAFAAAAQKkEUAAAAACUSgAFAAAAQKkEUAAAAACUSgAFAAAAQKkEUAAAAACUSgAFAAAAQKkEUAAAAACUSgAFAAAAQKkEUAAAAACUSgAFAAAAQKkEUAAAAACUSgAFAAAAQPsKoL777ru03HLLpdVXXz2NHz++Uf87dOjQ1KtXr1Smr776Kt1+++01f++2227p6KOPLvU+AQAAAFqzTqmFeeCBB9Icc8yRPvvss/TXv/41bbrppg3+31h2rbXWKrV9Z599dho1alT6xS9+kf8ePHhw6tixY6n3CQAAANCatbgKqDvvvDOHSKuuumoaMmRIo/63S5cuaa655kplqq6unuTvWWedNXXv3r3U+wQAAABozVpUAPXWW2+l//73v2mNNdZIG264YXr22WfTO++8U3P7gAED0jXXXJMOPPDA1K9fv7TKKquk0047Lf344491DsGL32+99da08847p759+6ZNNtkkPf/88/m6ddZZJ/Xv3z8dcsghaezYsTX/E8Prtthii7Tsssum5ZdfPv/vsGHD8m0x1O6uu+5K//rXv2rup/YQvBdeeCHtvvvuaYUVVsjtGzRoUB6219DHAAAAANDWtKgA6o477kjdunVLa6+9dtpggw1S586dJ6uCuuiii9JKK62U7r333nTkkUemm266Kd1///31rvOCCy5Ie++9d7rnnntypdK+++6bHnrooXTllVemM888Mz3yyCM1czrFkL9TTjklL//ggw+m66+/Pv3www/puOOOy7cfe+yxOcSK4OiJJ56Y7L5eeumlHEgtueSS6bbbbsttjUDt17/+dZowYUKTHwMAAABAa9ZiAqioAIpAJiqEYihdDG1bc8010913351DoEJcFxVGCy20UNpuu+3S0ksvnaua6hPLxDoXW2yxtNVWW6VvvvkmnXDCCWmppZZKG220Uerdu3d644038rJxn6effnpeboEFFsgVUNtvv316/fXX8+0RYEXbIhira6jftddemyujjj/++LT44ovnYYTnn39+euWVVyYJrBr7GAAAAABasxYzCfk//vGP9Pnnn6fNNtus5rr4/e9//3uuRtp6663zdRHsVIpQaEpny1tkkUVqfu/atWv+ufDCC9dcF4HSuHHj8u9RlRTDAC+99NL09ttvp/feey+99tpraeLEiQ16DBFUxfDBShEuRRtjPT//+c+b9BgAAAAAWrMWE0DF/E3hgAMOmOy2GIZXBFAzzDDDVCcGr9Sp0+QPsUOHugu/7rvvvjyfU8wBFfND7bjjjjlUimF5DVFfO+L6qJoqNPYxAAAAALRmLSKA+uKLL3IF1Lbbbpv23HPPSW6LeZjizHjFMLgyxbxQMeTu5JNPrrnu0UcfrQmIqqqq8qU+MfzuP//5zyTXvfrqq+m7776brOoJAAAAoL1oEXNAxdxPMQfUPvvsk+dmqrzEpOFRsVR7MvIyzDfffHkuppiz6f3338/hV0wQHophejFJ+qeffppGjhw52f9HeBZD7U499dQ8lC/O4nfEEUekPn36pNVWW6309gMAAAC0RB1ayvC71VdfPU8UXlvM17T++uvnkGr06NGltiMmD59zzjnTrrvumn7xi1/k+afOPvvsfNuwYcPyzxgKOGbMmLT55punTz75ZJL/X2655dLVV1+dXn755bzcIYccks+Yd911100yBA8AAACgPamqNvlQq1YEY+f97YP0+gdfNXdzAAAAoN1aaoHZ0vUHb5zaWybRt2/f1lEBBQAAAEDbJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFSdyl0900vPuXvY2AAAANCMHJvXTwDVRpy00+rN3QQAAABo9yZMrE4dO1S1++1QmyF4bcC4cePSmDFjmrsZtFDRN4YPH66PoH9g/4H3F3wGocXwGZW23D+ET3UTQLUR1dXVzd0EWnDfiB23PoL+gf0H3l/wGYSWwmdU9I/2RwAFAAAAQKkEUAAAAACUSgAFAAAAQKkEUAAAAACUSgAFAAAAQKkEUAAAAACUSgAFAAAAQKkEUG1EVVVVczeBFtw3unbtqo+gf2D/gfcXfAahxfAZFf2j/amqrq6ubu5G0HTDhg3LP/v27WszAgAA0G5NnFidOnRQnNFSM4lO06E9TAcXPPBCGvXld7Y1AAAA7c6Cs8+cDt2sX3M3gykQQLURET69/en/mrsZAAAAAJMxBxQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAAperUlrfvgAED0gcffFDzd+fOndOcc86Zfv7zn6eDDz44zT777M3aPgAAAID2oE0HUGGvvfbKlzB27Nj0+uuvp3POOSftuuuu6dZbb03du3dv7iYCAAAAtGltfghet27d0lxzzZUvCy20UFpvvfXStddemz766KN09dVXN3fzAAAAANq8Nh9A1WX++edPG2ywQXrggQfy37169UoXX3xxWnfdddOaa66Z3n333fThhx+mQw89NK222mrpZz/7WVp77bVz5dTEiRPz/wwdOjSvY8iQIWmdddZJyy23XDrooIPSJ598ko444ojUr1+//D933HFHzf1+88036bjjjktrrbVWXmesO/4eM2ZMs20LAAAAgLK1+SF49VlqqaXSPffck77//vv89y233JKuuuqqNGHChNSzZ8+01VZb5aqp6667Ls0000zp0UcfTWeeeWYOltZff/38PxFS/eUvf0lXXnllrqjab7/90jPPPJN++9vf5t+j0uqkk07KVVezzTZbOvroo3NAdckll6Q55pgjPf/88+mYY45JSyyxRNpjjz2aeYsAAAAAlKPdBlA9evTIP7/77rv8MwKnvn371swVFX9vsskmab755svXRUAUAdVrr71WE0D9+OOP6fjjj0+LL754DrSWXnrpPNH5nnvumW+Pn7fffnuuqIoAao011kgrrbRSrrgKCy64YLrpppvyvFQAAAAAbVW7DaC+/fbb/HPmmWfOPxdZZJGa27p06ZInKY/qppdeeim99957OXj6/PPPa4bgFRZeeOFJ5psqAqsw44wz5p/jxo3LP3feeef0t7/9Ld111105lHrzzTfTqFGj0mKLLVbyowUAAABoPu02gHrllVfyULsYXleEToXRo0fnACoqoTbeeOO0zTbbpGWXXTbtsssuk60nKp4qdehQ97RaEVwNHDgwvfHGG2nzzTdPm266aZ4HKiqoAAAAANqydhlAffzxx3lOp3322afO25944okcUD355JNpzjnnzNd9/fXX6YsvvkjV1dVNus8RI0akxx9/PN122215wvIwfvz49P777+ez8wEAAAC0VW0+gIpqps8++yz/HhVNMZTuwgsvzPMvFXM11TbvvPPmn/fee2/aaKON8gTj559/fg6MiuF0jRVBVqdOndKDDz6YZp999hxoXX755bltTV0nAAAAQGvQ5gOoOBNdXIrhcjFHUwx/22uvvWqG39UWw+0GDRqUrr/++hxWzTPPPPl/4n+HDRvWpHbEOs4666w0ePDgdPPNN+cz7K2zzjp5cvOYFwoAAACgraqqbuqYMlqEIhC7/sWv09uf/q+5mwMAAADT3WJz90jn7baWLd9MmUTfvn2numzdM2YDAAAAwDQigAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAErVqdzVM70sOPvMNjYAAADtkmPilk8A1UYculm/5m4CAAAANJuJE6tThw5VnoEWyhC8NmDcuHFpzJgxzd0MWqjoG8OHD9dH0D+w/8D7Cz6D0GL4jEoZ/UP41LIJoNqI6urq5m4CLbhvxI5bH0H/wP4D7y/4DEJL4TMq+kf7I4ACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYBqI6qqqpq7CbTgvtG1a1d9BP0D+w+8v+AzCC2Gz6joH+1PVXV1dXVzN4KmGzZsWP7Zt29fmxEAAIB2YeLE6tShg0KM1pRJdJoO7WE6uP7xV9PH34y2rQEAAGjT5p2lW9pj7aWbuxk0kgCqjYjwadSX3zd3MwAAAAAmYw4oAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVK0+gBowYEDq1atXuu666+q8/YQTTsi3Dx48+Cff14cffpgeeOCBn7weAAAAgPak1QdQoXPnzumhhx6a7Poff/wxPfzww6mqqmqa3M9RRx2V/vnPf06TdQEAAAC0F20igFpttdXSiy++mD7++ONJrn/mmWdSt27d0nzzzddsbQMAAABo79pEALXsssum+eefP/3lL3+Z5Po///nPaZNNNskVUFENFUHVJZdcMskyQ4YMSWuuuWa+/d13302//vWv0worrJD69euXf3/ttdfycrvttlv617/+le6666487C+MGzcunXPOOWmttdbKy//yl79MTzzxRM26hw4dmjbYYIN02mmn5XXut99+aeutt06DBg2apA1RVdW3b9/09ddfl7iVAAAAAJpHmwigQgRNlQFUhEOPPPJI2myzzfLfnTp1SltuuWW69957J/m/u+++O18ftx922GFpnnnmSXfeeWe6/fbbU4cOHdIBBxyQl4s5pCJkivu544478nURJD355JPp3HPPzcFU3Lbvvvumxx57rGb977//fvr000/z/Rx66KFp2223zcMFx44dO0kbItSaddZZS99OAAAAANNbmwqgYhjeJ598kv+OYGj22WdPffr0qVlmu+22S++991564YUX8t/vvPNO/j1CoSIsiv9ZYIEF0hJLLJHOOOOMXL00ceLEHA7FXFNdunTJy8R67r///nTmmWemVVZZJfXs2TPtueeeOfC65pprJmlbVD4ttNBCackll0xbbLFFTTgWvvvuu/x70QYAAACAtqbNBFDLLLNMDnmKychj+F1R/VRYaqml8lC3qDgK8TOG70XYFKJCKc6mF4FSVDLFBOZLL710roSqbfjw4fnnzjvvnCujikucJe+tt96aZNkIpwqzzTZbWm+99Wra8OCDD6bu3bvnYYAAAAAAbVGbCaAqh+H98MMP6dFHH02bbrrpZMtEFVSEPlGFdN9996Vtttmm5rZddtklPf744+m4447LodDFF1+cQ6zPP/98svVUV1fnnzfffHMOk4pLBFC33nrrJMtG1VTtNjz11FPpiy++yEMCt9pqq9SxY8dpuCUAAAAAWo42F0A9//zzeQ6nqIZafPHFJ1tm8803zwFVVDpFsBR/hwiDTjnllDR+/Pg8HC4mF49w6LPPPsuTj9cWw+lC3L7IIovUXGLi8bhMSVQ7zTXXXOm2225Lzz33nOF3AAAAQJvWqan/+OWXX6Zrr702hzP/+9//8tCyFVdcMe2xxx5pjjnmSM2hd+/eOQQ677zz0sCBA+tcJiqb4sx0l112WR4K16NHj3z9LLPMkicPj3mgDj/88DTzzDPnICnmfYrhfWGmmWZKH3zwQfr4449zALXuuuumE088MZ1wwgn576i+uuKKK/K8UFMSQ/ribHiXX355HhJYV1AGAAAA0K4roCKAiSqhG264Ic0444x5ou84i1xUFUWwUkwE3lxVUDGxd13D7wrR9jgLXeXE39H+q666KodDEaLF0LsYJnfllVemhRdeOC+z4447ptdffz2fNW/ChAnpggsuSBtuuGEOoOL+Ygje6aefPsmwvsa0AQAAAKAtqqouJjNqhKgQijPOXX/99XmoW2HkyJFpr732SiussEI666yzUksVlU2DBw/O80TVNcH49PDss8/mKq1//vOfuSqrqYYNG5Z/PvDu+DTqy++nYQsBAACg5Vlw9pnS0Vv0b+5mkP5fJhGju0oZgvfEE0+kY445ZpLwKcTf+++/fzr77LNb5BPxyiuvpLfffjtPLr7rrrs2S/gUZ8iLKqoYfheVUj8lfAIAAABoDZqUwMTws5jzqS6zzz57HgLXEkXVVpzhbrnllku/+tWvmqUN7733Xho0aFCaddZZ06GHHtosbQAAAACYnppUAdWrV6903333pbXXXnuy2+6555601FJLpZZol112yZfmNGDAgByEAQAAALQXTQqg9ttvv/TrX/86ffPNN3ny7bnmmit99tln6YEHHsjD82KIGwAAAAA0OYBaY4018iTj5557bnr88cdrrp9zzjnTGWeckTbYYANbFwAAAICmB1BPP/102njjjdNWW22VJ/WOSqhZZpklLbbYYqmqqqopqwQAAACgjWrSJOQHHnhgevjhh3PYtPjii6f+/fvnn8InAAAAAKZJANWjR4/UpUuXpvwrAAAAAO1Mk4bgDRw4MJ122mnpnXfeSUsvvXTq1q3bZMustNJK06J9AAAAALTHAOrEE0/MPy+44IL8s3LoXXV1df57xIgR06qNAAAAALS3AOqPf/zjtG8JAAAAAG1SkwKolVdeedq3BAAAAIA2qUkBVPjyyy/TNddck5566qn02Wefpauvvjo98sgjeU6o9ddff9q2EgAAAID2dRa8kSNHpi233DLddtttaZ555klffPFFmjBhQp6U/KCDDkqPPfbYtG8pAAAAAK1Skyqgfv/736c55pgj3XjjjfkMeMsss0y+/rzzzks//PBDuvzyy9M666wzrdsKAAAAQHsJoJ5++ul0xhlnpB49euTKp0o77LBDOuSQQ6ZV+2igeWfpZlsBAADQ5jn+bWdzQHXqVPe/jhs3LlVVVf2UNtEEe6y9tO0GAABAuzBxYnXq0EH20ObngFpxxRXTFVdckUaPHl1zXYROEydOTH/6059S//79p2UbmYoI/caMGWM7UafoG8OHD9dH0D9oNPsP9A9+CvsQ9A/K3H8In9pJBdThhx+edtppp7ThhhumVVZZJYdPcUa8t956K7333nvplltumfYtZYqqq6ttIertG7Hj1kfQP2gs+w/0D34K+xD0D+w/+MkVUEsttVS68847c/j07LPPpo4dO6annnoqLbzwwmnIkCGpd+/eTVktAAAAAG1Qk+eA6tmzZz7rHQAAAACUEkBFSe2IESPyPFB1De1ZaaWVmrpqAAAAANp7APXSSy+lgw8+OH388cf57yKAirmg4vf4GeEUAAAAADQpgDrzzDNTp06d8s955503dejQpKmkAAAAAGgHmhRAvfLKK+n8889P66+//rRvEQAAAABtSpNKl+aYY4585jsAAAAAKCWA2nnnndMVV1yRJyAHAAAAgGk+BO+9995Lb731VlpjjTXSkksumbp06TLJ7TEJ+Q033NCUVdNEsc2hvr7RtWtXfQT9gya9t9h/oH/QVPYh6B/ANAmgll566Zq/i7Pg1fc35ZphhhnyAQLUJfpGnz59bBz0DxrN/gP9g5/CPgT9g4aYWF2dOiioaBeaFEDdeOON074l/CT3v/hu+uK7sbYiAAAArcIcM3dJmy/fs7mbQUsOoArffPNNeu6559Knn36aNtpoo/T111+nRRdd1FCfZhDh0yf/G9Mcdw0AAABQTgD1hz/8IU9EPnbs2Bw4LbvssunCCy9MX331Vbr22mtTjx49mrpqAAAAANrrWfAiWHr77bfTTTfdlAYPHpz23HPPdNttt9XM+bTrrrumkSNHposuuqis9gIAAADQVgOo4447Ll166aV5MsGYA+o3v/lNOvjgg9PPfvazmmV+/vOfp0MOOST97W9/K6u9AAAAALTVIXj3339/GjJkSJpvvvnShx9+mFZeeeU6l1tsscXS559/Pi3bCAAAAEB7qICKSqd99tknffbZZzmEeuGFF+pc7uWXX863AwAAAECjAqgbbrghDRgwIJ/5bvvtt0+XX355uuaaa9K7776bbx89enR66KGH8sTk22yzja0LAAAAQOOG4HXq1CmdfPLJaeLEiWnxxRdPo0aNSueee26+hN133z1PRr7lllumgQMHNnS1AAAAALRxDQ6gCh06/F/R1CmnnJL22muv9Mwzz6Svv/46de/ePc8LteSSS5bRTgAAAADaSwD14IMP5p+bbLJJWnjhhXMIVVVVla+79tpr0xZbbJHPhAcAAAAAjZoDasKECWn//fdPhx12WHr88cfzdTHkLs6IF1VPUf0077zzpquvvjq9//77ti4AAAAAjauAuu2223LwdNFFF6UNN9xwktsOPPDAfJa8sWPHpo022igNGTIkHXnkkQ1dNQAAAABtWIMroO655560ww47TBY+VerSpUvabrvt0pNPPjmt2gcAAABAewmg3nzzzbT22mtPdbn+/fsbggcAAABA44fg/fjjj6lr166TXNexY8f08MMP57mfKq8rzpQHAAAAAA1OiuaZZ570zjvvTHZ9nAlvhhlmqPn79ddfT/PPP3+L37IRqN1www1p2223Tf369UurrrpqPqPfM888M8X/GzBgQBo8ePB0aycAAABAu6mAWnPNNdOtt96att9++3ornMaPH5/uuOOOtO6666aW7Icffkh77rln+uijj9JBBx2UA6iYQP3OO+/M15999tlpiy22qPN/4/HNOOOM073NAAAAAG2+AmqXXXZJb731VjrkkEPSV199Ndnto0ePTkcddVQOdXbaaafUksWZ/F577bV0yy23pG222Sb17NkzLb300unYY49NW2+9dTrttNPS999/X+f/zj777GmmmWaa7m0GAAAAaPMVUIsttlg644wz0jHHHJPWW2+9tNpqq+XgJnzwwQfpiSeeyMPaonpovvnmSy1VVGlFpVMMvaurnRGwRYAWZ/Tr1atX2n///dNdd92V/++mm27Kw/QitDrwwAPzULz//Oc/acUVV8xh1pgxY3Ll1G9/+9t00kkn5eF8c889dw621llnnbz+cePG5QDs3nvvTd99911acsklcxVWVJgBAAAAtOsAKmy66aa5Uuiqq65Kf/vb39Kjjz6ar4/JyWNupIEDB6allloqtWQjR45MX3/9dT5bX31zXcWlEMFSPN4JEybUBG6VnnvuuTTHHHOkm2++OT3//PM5oIvt8rvf/S4deeSR6ZxzzklHH310evrpp1NVVVUaNGhQriQ799xz8/38/e9/T/vuu2+65JJLakIqAAAAgHYbQBWVUGeeeWb+/X//+1+aOHFimnXWWVNr8c033+Sfs8wyS4OW32qrrVLfvn3rvT0e/8knn5xmnnnmtOiii+bAKSY0j6F8IaqpImT67LPPcoXU/fffn+6+++7Uu3fvfHvMOfXqq6+ma665RgAFAAAAtEmNDqAq9ejRI7U2MYdTiCqohlhkkUWmeHtUP0X4VOjWrVs+M2AhhvIVQ++GDx+ef995550nWUcM72uN2xIAAACg9ACqNVpooYXSnHPOmYfLxZDC2mJ43Omnn56HylUGSPXp3LnzZNfVd5bA6urq/DOG69WeyLy+/wEAAABo7dpd6hFBz/bbb5+GDh2az9hX29VXX52GDRuWFlhggWl+3zHheIjheFFZVVyiLXEBAAAAaIvaXQAVYtLvmFA8hsLFfEzvv/9+eumll3LVU/x96qmn5qF0ZQRQ6667bjrxxBPzJO4xIXpMcH7FFVdMMmwPAAAAoC1pd0PwirP23XTTTenaa6/NAdCHH36Yh9r16dMn3XjjjWnFFVcs7b4vuOCCfDnhhBPyhOgRPMWQv2222aa0+wQAAABoTlXVxcREtEoxXDA8/03n9Mn/xjR3cwAAAKBB5unRNf1qzaUnu3706NFpxIgR+ezxZYxOYtpnEn379p3qsu1yCB4AAAAA048ACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSdSp39Uwvc8zcxcYGAACg1XAc274IoNqIzZfv2dxNAAAAgEaZWF2dOlRV2WrtgCF4bcC4cePSmDFjmrsZtFDRN4YPH66PoH9g/4H3F3wGocXwGZWC8Kn9EEC1EdXV1c3dBFpw34g3eH0E/QP7D7y/4DMILYXPqND+CKAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUAqo2oqqpq7ibQgvtG165d9RH0D+w/8P6CzyC0GD6jQvtTVV1dXd3cjaDphg0bln/27dvXZgQAAKBZRcTwUwskRo8enUaMGJF69+6dunXrNs3aRvNmEp1KuH+awTNvfZz+N2acbQ8AAECz6NF1hrTq4vPa+tRJANVGRPj09egfmrsZAAAAAJMxBxQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAAFAqARQAAAAApRJAAQAAANB+AqjvvvsuLbfccmn11VdP48ePn+ryAwYMSIMHD07Ty+jRo9PNN9883e4PAAAAoC1oUQHUAw88kOaYY4707bffpr/+9a+ppbn22mvTNddc09zNAAAAAGhVWlQAdeedd6a11lorrbrqqmnIkCGppamurm7uJgAAAAC0Oi0mgHrrrbfSf//737TGGmukDTfcMD377LPpnXfeqbk9qqKOOuqotOKKK+aA6rrrrqu57fvvv0/9+vVLt9xyyyTrvOSSS9I666yTJk6cmMOjq666Kq233np5mN9WW22V7r333ppl4/769OmT/vGPf6TNN988LbPMMmnjjTdOjzzySL49hvrF+j744IPUq1evNGrUqHT00Uen3XbbbZL7rLwulollr7jiivy44r5jmGE8luOPPz4/jhVWWCHtvvvuadiwYaVtWwAAAIDm1GICqDvuuCN169Ytrb322mmDDTZInTt3nqQK6pBDDkkvvfRSuvzyy3P49Nhjj+UwKMw000w5LLr//vsnWed9992Xg6YOHTqkCy64IP3pT3/KwU9cH6HPSSedNMmcThMmTEjnnHNOOvbYY/O6llpqqRx6RcC111575cu8886bnnjiiTTffPM1+LHddddd6YYbbkgXXnhhbus+++yTRo4cmYOp2267LS2//PJpp512SsOHD58m2xIAAACgJWkRAdSPP/6Yq5FiUvEuXbqkWWedNa255prp7rvvTj/88EN6++23c+hzwgkn5Aqo3r17p/POOy/NMMMMNevYZptt0vPPP18TSkVY9e6776Ztt902Tx5+/fXXp2OOOSZXRC288MJpu+22S3vsscdkczpF0LXaaqulnj17pv322y9XLL3++us5OIqArGPHjmmuuebKPxtq5513TksssUTq27dveuaZZ9KLL76Yw6ioxFp88cXTYYcdlkOoP/7xj9NwqwIAAAC0DJ1SCxDD3j7//PO02Wab1VwXv//9739PDz74YA6lQgQ4hTnnnDMttNBCNX+vtNJKacEFF8yVSwMHDsyBVv/+/dMiiyySw6gIsg4//PBcDVUZfI0bNy6NHTu25rrFFlus5veZZ545/2zIGfmmJNpQeOWVV/JwwHXXXXeSZaId0UYAAACAtqZFBFBDhw7NPw844IDJbotheHvuuWf+PeZyqtSp0/9rflVVVdp6663z8Lq99947B1dRzVQ5eXhUHVUGTIXKSqrK35sy+XiEWrUVAVrxGCLYKh5zfe0AAAAAaCuafQjeF198kSugYqhcDLmrvMQwuRdeeKGmgiiG2BX+97//pffff3+SdcUwvDfffDOHVjFv0yabbJKvj9ApwqoPP/wwr6u4xP3GELzKqqgpiZCrUsxTFUP0Kr333ntTXEfMKxX/E1VVlW2JCdIfffTRBrUDAAAAoDVp9gAqhspF1VBMzB3hTOVl3333zeFQTNQdk4yfcsop6amnnspzMh155JF52FqlBRZYIK2yyip5fqj111+/Zghd9+7d04477pguuuiidM899+QJwGPS85hwfO65525wW2MOqG+++SafnS8CpJi36dVXX82PIdZ56aWX5rZNyVprrZXnsDr00EPzfFARWJ155pm5IirmgwIAAABoa5p9CF4EL6uvvnqdQ+NisvAIkiLgefzxx3NgFMFNDGPbYYcd0pdffjnZ/0QlVQQ78bPSoEGD0myzzZZDqE8//TSfxe6ggw7Kw/UaasMNN8xh2JZbbpluuumm/HPEiBHptNNOyyFaVFz96le/ylVb9YnJy6+99tr8WGKI4JgxY3LwdMkll+TJzwEAAADamqrqxkxwRIszbNiw/POjqlnS16NNYg4AAEDzmLXbjGnDZRb+yeuJM9lHsUeMHoqRSLT8TKLypHEtdggeAAAAAG2bAAoAAACAUgmgAAAAACiVAAoAAACAUgmgAAAAACiVAAoAAACAUgmgAAAAACiVAAoAAACAUgmgAAAAACiVAAoAAACAUgmgAAAAACiVAAoAAACAUgmgAAAAACiVAAoAAACAUgmgAAAAACiVAAoAAACAUnUqd/VMLz26zmBjAwAA0GwclzIlAqg2YtXF523uJgAAANDOVVdXp6qqquZuBi2QIXhtwLhx49KYMWOauxm0UNE3hg8fro+gf2D/gfcXfAahxfAZte0SPlEfAVQbSpmhvr4Rb/D6CPoHTXlvsf9A/6Cp7EPQP4BKAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAaiOqqqqauwm04L7RtWtXfQT9A/sPvL/gMwgths+o0P5UVVdXVzd3I2i6YcOG5Z99+/a1GQEAAChdxAhlFkGMHj06jRgxIvXu3Tt169attPth+mYSnabB/dECvP7h12nMuB+buxkAAAC0YV1n6JSWmn/W5m4GrZAAqo2I8On7HwRQAAAAQMtjDigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAAStXuA6h77703/fKXv0zLL7986tevX9puu+3SkCFDGrTxnn322dSrV680atSoepcZPHhwXqauy7bbbluzzIABA6bZkwoAAADQknRK7dgdd9yRTj/99HTsscemFVZYIVVXV6cnn3wynXbaaenzzz9PBxxwwBT/PwKrJ554Is0+++xTXG7eeefN91Vbp07/t/n32muvtMsuu/zERwMAAADQMrXrAOqWW27JFU/bb799zXWLLbZY+uSTT9If//jHqQZQM8wwQ5prrrmmej8dO3ac4nIzzTRTvgAAAAC0Re16CF6HDh3SCy+8kL755ptJrv/Nb36Tbr311vz7+PHj00UXXZTWXXfdtNxyy+Vhc1El1dAheA1hCB4AAADQlrXrAGrvvfdOw4cPT2uvvXYOna688sr00ksvpe7du6dFF100LxND9GJOqKOOOirdd999aa211kr77rtvevvtt5u7+QAAAACtQrsegrfxxhvn+ZliuF1UNf3jH//I1/fs2TOdccYZubop5m46/vjj87Lh0EMPzXNFfffddw2+nw8//DDPF1VbVF8BAAAAtHXtOoAKcfa7uEycODG9+uqrOYS66aab0j777JOuv/76PAQvht5VOuyww2qG4FWeTe/EE0+s+TsmNb/66qvz73PPPXe68cYbp9tjAgAAAGhJ2m0A9fHHH6crrrgiDRw4MFdBxXxQffr0yZf1118/bb755unxxx9v8PoGDBgwSVDVpUuXSc52t8gii0zzxwAAAADQGrTbOaDiDHa33357rlyqrUePHvnnyiuvnDp37pyGDRs2ye2//OUvc3VUpZlnnjmHTMVlnnnmKfkRAAAAALQO7bYCavbZZ8+TkMcZ7r7//vs8x1OESG+++Wa67LLL0iqrrJIDqF133TUvE8svueSSeU6o119/PZ111lnps88+a+6HAQAAANDitdsAKhxyyCF5wvHbbrst3XzzzWns2LFp/vnnT5tsskkemlfM99SxY8c8v9O3336bll566Xy2vMUWW0wABQAAANAAVdVxSjdarWJ44MTu86Xvf/ixuZsDAABAGzbTjJ3Scj3nLPU+Ro8enUaMGJF69+6dunXrVup9MW0yib59+0512XY7BxQAAAAA04cACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKJUACgAAAIBSCaAAAAAAKFWnclfP9NJ1Bk8lAAAAjj1pmaQWbcRS88/a3E0AAACgHaiurk5VVVXN3QxaGUPw2oBx48alMWPGNHczaKGibwwfPlwfQf/A/gPvL/gMQovhM2rrJnyiKQRQbSiBhvr6RrzB6yPoHzTlvcX+A/2DprIPQf8AKgmgAAAAACiVAAoAAACAUgmgAAAAACiVAAoAAACAUgmgAAAAACiVAAoAAACAUgmgAAAAACiVAKqNqKqqau4m0IL7RteuXfUR9A/sP/D+gs8gtBg+o0L7U1VdXV3d3I2g6YYNG5Z/9u3b12YEAACgFBEdTK/Ch9GjR6cRI0ak3r17p27duk2X+6T8TKJTE++DFubDL79PP/w4sbmbAQAAQBszY6cOaf7ZZ2ruZtDKCaDaiAiffhg/obmbAQAAADAZc0ABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUKo2G0AdffTRqVevXlO87Lbbbnm5xhg1alT+32effTb/XbmOuC5ui2UAAAAA+D+dUht17LHHpsMPP7zm7zXXXDMdc8wxadNNN6257rDDDmv0euebb770xBNPpFlmmWWatRUAAACgLWuzAVT37t3zpfZ1c801109ab8eOHX/yOgAAAADakzY7BK+hvv/++zRo0KC04oorphVWWCEPpxs9enTNkLo+ffqkK6+8Mq2yyipp2223TSNHjpxkCN6UVFdXp6uuuiqtt956abnllktbbbVVuvfee2tur2v9EydOLPXxAgAAAExvbbYCqqEefvjhtO+++6ahQ4emN954Ix166KF5mN3BBx+cb58wYUL6xz/+kW699dY0ZsyYVFVV1eB1X3DBBen+++9PJ5xwQlpsscXSv//973TSSSelb7/9Nu2yyy51rr9Dh3afCQIAAABtTLsPoJZddtkcOoWFF144rbHGGunll1+eZCPttddeqWfPnvn3hk4wHlVU119/fTr//PPTOuusU7P+Dz74IF1zzTU1AVTt9QMAAAC0Ne0+gKod/MTk4hESVWpKOPTmm2+mH374IU+EXlnV9OOPP6Zx48alsWPH/qT1AwAAALQW7T6AiknFp2bGGWds9IaN+Z/ChRdemIff1TbDDDP8pPUDAAAAtBYmHCpJhE6dOnVKH374YVpkkUVqLjHfUwzBM9cTAAAA0F4IoErSvXv3tOOOO6aLLroo3XPPPfnseXfccUc655xz0txzz13W3QIAAAC0OO1+CF6ZBg0alGabbbYcQn366af57HoHHXRQ2nvvvUu9XwAAAICWpKq6mKyIVmnYsGH558zz9Ew/jJ/Q3M0BAACgjZmxc8e06Nzdp9v9xVnlR4wYkXr37p26des23e6XpmcSffv2neqyhuABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUCoBFAAAAAClEkABAAAAUKpO5a6e6WXGTrJEAAAAHG/SMgmg2oj5Z5+puZsAAABAG1VdXZ2qqqqauxm0Yspm2oBx48alMWPGNHczaKGibwwfPlwfQf/A/gPvL/gMQovhM2rrI3zipxJAtaE0GurrG/EGr4+gf9CU9xb7D/QPmso+BP0DqCSAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAAgAAAKBUAigAAAAASiWAaiOqqqqauwm04L7RtWtXfQT9A/sPvL/gMwgths+o0P5UVVdXVzd3I2i6YcOG5Z99+/a1GQEAAJimIjKY3gUPo0ePTiNGjEi9e/dO3bp1m673TXmZRKdGrpsW6uvvx6UfJ8oSAQAAmDY6dahKs840g83JNCGAaiMifPpxggAKAAAAaHnMAQUAAABAqQRQAAAAAJRKAAUAAABAqQRQAAAAAJRKAAUAAABAqQRQAAAAAJRKAAUAAABAqQRQAAAAAJRKAAUAAABAqQRQAAAAAAigAAAAAGi9VEABAAAAUCoBFAAAAAClEkABAAAAUKo2H0DttttuqVevXnVefv/735dyn0cffXS+3/Dss8/m+xo1alQp9wUAAADQ0nVK7cAmm2ySjj322Mmu79q1ayn3F/c1YcKEUtYNAAAA0Nq0iwCqS5cuaa655ppu99e9e/fpdl8AAAAALV2bH4I3Nd9880067rjj0lprrZV+9rOfpdVWWy3/PWbMmJohdH369El//etf00YbbZSWXXbZtPvuu6ePPvoonXbaaWnFFVfM//OHP/yhziF4lR555JG09NJLpw8++GCS63fYYYfShgMCAAAANLd2H0BFWDR8+PB0ySWXpIceeigNGjQo3X333enWW2+t2UgxnC4CpnPPPTfdcMMN6dVXX01bbbVV6ty5c7r99tvTjjvumC688ML02muvTXFjr7POOmn22WdP99xzT81177zzTnrxxRfTdtttV+oTDQAAANBc2kUAdd9996V+/fpNctl7773zbWussUY688wz03LLLZcWXHDBtOWWW+aKp9dff32SdRx88MGpb9+++X9XXXXVPH/UkUcemRZddNE0cODAvMwbb7wxxXZ06tQpB1eVAVSEXbHeJZZYopTHDgAAANDc2sUcUAMGDEhHHHHEZPNChZ133jn97W9/S3fddVd6991305tvvpnPWLfYYotNsvwiiyxS83u3bt1yWFVVVTXJusaNGzfVtkSl07XXXpv++9//5uF89957b9pnn32myeMEAAAAaInaRQA100wzTRIgFSZOnJirl6JyafPNN0+bbrppngfq+OOPr7N6qVKHDk0rHotKp6i2iuBp7Nix6fPPP8/3DQAAANBWtYsAqj4jRoxIjz/+eLrttttyKBTGjx+f3n///bTQQguVdr9RBXXZZZflAGz99ddPPXr0KO2+AAAAAJpbu5gDqj5zzjlnrmx68MEH08iRI9OwYcPSIYcckj777LMGDadrqs022yyffW/o0KFpm222Ke1+AAAAAFqCdh1AzTPPPOmss87Kc0DF8LuYaDyu22OPPdLLL79c2v3OPPPMufJplllmyZOgAwAAALRlVdXV1dXN3Yj2aLfddkv9+/dPhx566E9aT1Rthfl6LpV+nOCpBAAAYNro1LEqzdl9xum+OUePHp2nzOndu3c+CRgtV5FJ9O3bd6rLtus5oJrDI488kl9IL774Yjr77LObuzkAAAAApRNATWdXX311euedd9Kpp56a5ptvvul99wAAAADTnQBqOhsyZMj0vksAAACAZtWuJyEHAAAAoHwCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFQCKAAAAABKJYACAAAAoFSdyl0900unDlU2NgAAAI4zaZEEUG3ErDPN0NxNAAAAoI2prq5OVVUKHvjpDMFrA8aNG5fGjBnT3M2ghYq+MXz4cH0E/QP7D7y/4DMILYbPqK2H8IlpRQDVhlJpqK9vxBu8PoL+QVPeW+w/0D9oKvsQ9A+gkgAKAAAAgFJVVSuLaNWef/75/O1S586dlUZSp+gf48eP10fQP2g0+w/0D34K+xD0D+w/2seUQFVVVal///5TXdYk5G1kPK5xuUypj8wwg0nq0T9o2nuM/Qf6B01lH4L+gf1H+9jXVzVwknoVUAAAAACUyhxQAAAAAJRKAAUAAABAqQRQAAAAAJRKAAUAAABAqQRQAAAAAJRKAAUAAABAqQRQAAAAAJRKAAUAAABAqQRQAAAAAJRKAAUAAABAqQRQAAAAAJRKANWKTZw4MV188cVprbXWSssvv3zaZ5990siRI5u7WbRAV1xxRdptt92auxm0IF9//XU64YQT0tprr5369++fdtppp/Tcc881d7NoIb744ov0u9/9Lq266qqpX79+6Te/+U166623mrtZtEDvvPNO7iNDhw5t7qbQgnzyySepV69ek130Ewp333132nTTTVPfvn3TZpttlh588EEbh+zZZ5+tc/8Rl/XWW89WauU6NXcDaLrLLrss3XLLLemss85K8847bzrnnHPS3nvvne677740wwwz2LRkN998c7rwwgvTiiuuaItQ47DDDkufffZZOv/889Mcc8yRbrzxxvTrX/863XXXXWmxxRazpdq5/fffP3/JceWVV6aZZpopXXTRRWmPPfZIDz/8cOratWtzN48WYvz48emII45Io0ePbu6m0MK8+uqracYZZ0yPPPJIqqqqqrm+e/fuzdouWoZ77rknHXvssemYY47JX6Q/8MAD+XNJHM9EoE37Fn3giSeemOS6F198MR144IFpv/32a7Z2MW2ogGqlxo0bl6699tp00EEHpXXWWSctvfTS6YILLkgff/xxPkCA+PZx3333Teeee27q2bOnDUKN9957Lz355JPppJNOysHkoosumo4//vg099xz5wCb9u2bb75JCyywQDrttNPSsssumxZffPH8ge/TTz9Nb7zxRnM3jxZk8ODBaeaZZ27uZtACvf766/mzR7yvzDXXXDWXLl26NHfTaGbV1dX5S43dd9897bLLLmnhhRdOv/3tb9Pqq6+e/vWvfzV382gBopCicr8RX4SdeeaZaZtttknbbbddczePn0gA1Yq/Wfr+++/TaqutVnNdjx49Up8+fdK///3vZm0bLcMrr7ySOnfunO6999603HLLNXdzaEFmm222XNkSZe+F+IY6Lv/73/+atW00v1lmmSWdd955aamllsp/f/nll+n666/P30wvscQSzd08Woj4rHHrrbfmKmyo7bXXXsvhNdQ1bPeDDz5IW2yxxSTXX3PNNWngwIE2GJO5/PLL05gxY9JRRx1l67QBhuC1UlHpFOabb75Jro9vmorbaN8GDBiQL1BbhNU///nPJ7nuoYceypVRUQ4PhaiMu+222/K3kX/4wx9St27dbBxyUH3kkUem4447brLPIVBUQMWXHVHhEoHDIosskqtcYt5B2rfoDyGG7sbQ/+HDh6cFF1ww9w+fW6mt+BLs8MMPT7POOqsN1AaogGqlIgUOted6ivH2P/zwQzO1CmiNnn/++TRo0KC04YYb5iG9UPjVr36V7rzzzrT55pvneaGishJi+G7M0VG7ggHCjz/+mN5+++08nDfmbImK2zhZTpzM4Omnn7aR2rnvvvsu/4xqlnhviSlF1lhjjTzUW/+gtpjvOOaO22GHHWycNkIFVCtVjKGPuaAqx9NH+GSCWKChYoLYmEQ4zoQX84VBpWLI3emnn57++9//pptuuinPw0D7PnNVnDHTfHHUp1OnTvksVh07dqz5jLrMMsvkOeRimFXl9BG0PzE9RIjqp5jTJ/Tu3TtXQl133XX6B5O952y99dbmj2tDVEC1UkXJe0wKWyn+nmeeeZqpVUBrEmFCfDu97rrr5vH1UUEJUe4eZySKKoZChw4dchhV+z2H9icq4r744otcLRlVUMUZq0488cR8Jl4IMWlw7QnHl1xyyXyCFNq34jilmGewEO8xo0aNaqZW0VLnPB45cqRq2zZGANVKxVnv4swz8Q1T5ZwM8e3BSiut1KxtA1pHSfOpp56a5+c4//zzJxvOS/v1+eef59NhVw6FGD9+fH5/MakwUSn55z//OX8rXVxCnJU3KuUgKp2iqrbyM2p4+eWXnciA9LOf/SwHlFFVW3vesDgjHhSi2naOOebIx720HYbgtVJxsLjrrrvmD4Kzzz57PmX2Oeeck89SFPO4AExpAtAzzjgjbbDBBvmMMxE4FOIb6xhrT/sV30rHRMGnnXZavsRZ8a644or8Jccee+zR3M2jmdVXZR0HCSqwCRFUL7bYYumUU05JJ598cp6MPE5m8OKLL+YKOtq3+JwR1ZKXXnpp3mcsu+yyuer2ySefzJNNQyG++OrVq5cN0sYIoFqx+LYxhkjEWWjGjh2bK59ibH0xthqgLnHGu6ho+etf/5ovlWI+BqdVJ6rizjvvvHTooYemb7/9Nq244orp5ptvTvPPP7+NA0xRDNmNYd2xDznkkENyeN2nT588v0/tYVe0TzHheMxZe8EFF+RhmRFaDh48OK2yyirN3TRakM8++8yZ79qgqurq6urmbgQAAAAAbZc5oAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAAAAgFIJoAAAAAAolQAKAKCVqa6ubu4mAAA0igAKAKAku+22W+rTp08aNmxYnbcPGDAgHX300Y1a5xtvvJF22mmnadK+Xr165cv5559f5+0TJ05Ma621Vl5m6NChdS7zy1/+Mq277rrp888/n+r9DR48OK+rEI89tgEA0PYJoAAASjRhwoQ0aNCgNG7cuGmyvr/85S/phRdeSNNKhw4d8jrr8u9//zt9+umn9f7vY489lgOxP/zhD2nOOeds9H3vt99+6ZJLLmn0/wEArY8ACgCgRN27d88hzaWXXtoit3P//v3Te++9l4YPHz7ZbQ888EDq3bt3vf+7zDLL5PBq6aWXbtJ9L7zwwrlCDABo+wRQAAAligBn6623TldffXV6+eWXp1otdfPNN6ctttgiLbvssmmdddZJ5557bvrhhx9qhrAVFUMxlC3+Dl9++WU6+eST81C4CIVWXnnltP/++6dRo0ZNtX0rrbRSrl6qXQX1448/pocffjhtttlmk/3P119/nU444YS05ZZbpvXXXz8Pw3v66acnWSbafOaZZ6Y11lgj9evXL1eBFY+jviF4Y8eOTeedd17acMMN8+OIcGzPPfdMI0aMmOrjAABaNgEUAEDJjjnmmDTbbLNNdShehDoR2kSoE8Padtlll3TTTTfloWox8fgvfvGLtP322+dlb7311vx3XD9w4MD05JNPpiOOOCJdc8016YADDsiB0IknnjjVtnXs2DFttNFGkwVQ8f8RGNWeoymu+9WvfpUeffTRdOihh+ZAbN5550177733JCHU7373u3Tbbbfltl144YXpm2++Sddff/0U23LkkUemO++8M/3mN79J1157bd5eUT12+OGHm3gdAFq5Ts3dAACAtm6WWWZJp5xySvrtb3+bh+JFcFPbm2++me64444ctkQAE6J6aO65587BzOOPP55+/vOf57AnLL/88vnnJ598krp27ZqOOuqotOKKK+brVllllfT+++/nkKohNt1001x5FcPwiiFxf/7zn9N6662XZpxxxkmWveeee9Krr76aw6XlllsuX7f22mvnCdejWisCpAiNHnrooXTSSSfVTJgek5lHZVc8zrpEMPf999+n4447LrcnRCXXd999l84666w8yflcc83VwC0OALQ0KqAAAKaDqCSKIWsxFO+VV16Z7PZ//etf+WftIW/xd1QpPfvss3Wud5555kl//OMf0worrJCH3EUl1I033pief/75Bk98Hv8b6ymqoOL/HnnkkbT55ptPtmxUOUUQ9LOf/SwP04tLDB2M4X8xxDAqnZ577rmax1w52XlUWtVnhhlmyNVbET5FqPbMM8+kIUOGpL///e81bQIAWi8VUAAA00lU90SAE0PLolKoUgQ3oXaVT6dOnfLwvW+//bbe9d57773p/PPPTx999FGaddZZ87xTXbp0aXC7qqqq0sYbb5wDqMMOOyz985//zIFRVGBFGFR7/qfPPvssB1B1iduKxxLtrjS1Cqa43zPOOCO9/fbbaaaZZsqTm3fr1i3fFkMNAYDWSwAFADAdh+LFsLSYIPyyyy6b7LYiwFlggQVqrh8/fnz66quvJgtzClFtFMPvYgjcr3/961zJFM4+++z0n//8p8Fti8qjG264IU/4HcPvYiLwzp0713lWv549e+bhdnVZcMEFa9oaw+bmn3/+ScKr+sSQwdguMf/VFVdckRZaaKEcjMXQwAimAIDWzRA8AIDpKAKWGNp25ZVX5rPXFWK+o/DAAw9Msnz8HUPcYphciMqkSi+88EKaOHFiOvDAA2vCp1j+qaeeyr/HbQ0Rc0pF8BVzPP3tb3+r8+x3RTuj0mqOOeZIffv2rbnE0L8YXhjDBVddddW8bO2JzYvhdHWJ4XsxwXnMf7Xwwgvn8CkU4ZMKKABo3VRAAQBMZ8cff3ye4ygqhApLLLFE2mabbdLFF1+cxowZk1ZaaaVcjRRnmYtJxWMS79CjR4/88/7778+TgC+77LL575jkfLvttsvD36JqKCYKD6NHj04zzzxzg9oVw/BiPqkYxlcEYrVtu+22+cx8e+65Z9p3333TfPPNl8Ouq666Ku266665amqRRRZJO+ywQ7rgggvyHFExJDCCrddee63e+44hfTHc8Jxzzkl77bVXnvNp6NCh6bHHHqt5HABA66UCCgBgOouAJ4bi1Xb66afnYWj33XdfrgSKIGn33XfP4U5R+RRD46Li6Oijj86Tdkc4dcIJJ+RKqH322SefMS6GvUVwFRo7DC+G/G2yySaTVVoVYk6maFdUZEVYFPf58MMP57P3xdxWhRNPPDHfFmHVAQcckMaOHZsDq/pEaHXeeeflOafibIHxmEJMqB7VUMXE5gBA61RVrZ4ZAAAAgBKpgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAEolgAIAAACgVAIoAAAAAFKZ/j/5eFAUI71YRQAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns\n",
+ "import mysql.connector\n",
+ "import warnings\n",
+ "\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "warnings.filterwarnings('ignore', category=FutureWarning)\n",
+ "\n",
+ "# Conexão com banco\n",
+ "conn = mysql.connector.connect(\n",
+ " host='35.199.115.174',\n",
+ " user='looqbox-challenge',\n",
+ " password='looq-challenge',\n",
+ " database='looqbox-challenge'\n",
+ ")\n",
+ "\n",
+ "# Query\n",
+ "query = \"\"\"\n",
+ "SELECT\n",
+ " genre,\n",
+ " rating,\n",
+ " revenuemillions,\n",
+ " year\n",
+ "FROM IMDB_movies\n",
+ "WHERE revenuemillions IS NOT NULL\n",
+ "\"\"\"\n",
+ "\n",
+ "# Carregando dados\n",
+ "df_imdb = pd.read_sql(query, conn)\n",
+ "\n",
+ "# Encerrando conexão\n",
+ "conn.close()\n",
+ "\n",
+ "# Separar múltiplos gêneros\n",
+ "df_imdb['genre'] = df_imdb['genre'].str.split(',')\n",
+ "\n",
+ "# Explodir lista em múltiplas linhas\n",
+ "df_imdb = df_imdb.explode('genre')\n",
+ "\n",
+ "# Remover espaços extras\n",
+ "df_imdb['genre'] = df_imdb['genre'].str.strip()\n",
+ "\n",
+ "# Estatísticas por gênero\n",
+ "genre_stats = (\n",
+ " df_imdb.groupby('genre')\n",
+ " .agg(\n",
+ " avg_rating=('rating', 'mean'),\n",
+ " movie_count=('genre', 'count')\n",
+ " )\n",
+ ")\n",
+ "\n",
+ "# Filtrar gêneros relevantes\n",
+ "top_genres = (\n",
+ " genre_stats[genre_stats['movie_count'] >= 20]\n",
+ " .sort_values(by='avg_rating', ascending=False)\n",
+ " .head(10)\n",
+ " .reset_index()\n",
+ ")\n",
+ "\n",
+ "sns.set_theme(style=\"whitegrid\")\n",
+ "\n",
+ "plt.figure(figsize=(12, 7))\n",
+ "\n",
+ "# Gráfico\n",
+ "sns.barplot(\n",
+ " data=top_genres,\n",
+ " x='avg_rating',\n",
+ " y='genre',\n",
+ " palette='Blues_r'\n",
+ ")\n",
+ "\n",
+ "# Título\n",
+ "plt.title(\n",
+ " 'Top 10 Gêneros Cinematográficos por Nota Média (IMDB)',\n",
+ " fontsize=16,\n",
+ " pad=20\n",
+ ")\n",
+ "\n",
+ "# Labels\n",
+ "plt.xlabel('Nota Média', fontsize=12)\n",
+ "plt.ylabel('Gênero', fontsize=12)\n",
+ "\n",
+ "# Ajuste layout\n",
+ "plt.tight_layout()\n",
+ "\n",
+ "# Salvar imagem\n",
+ "plt.savefig('top_generos_imdb.png', dpi=300)\n",
+ "\n",
+ "# Mostrar gráfico\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/top_generos_imdb.png b/top_generos_imdb.png
new file mode 100644
index 0000000..37aef73
Binary files /dev/null and b/top_generos_imdb.png differ