{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "\n", "%autoreload 2\n", "\n", "import sys\n", "sys.path.append(\"./../..\")" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [], "source": [ "%reload_ext yellowbrick\n", "%matplotlib inline\n", "# Imports\n", "import pandas as pd \n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib\n", "from sklearn.preprocessing import OneHotEncoder\n" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['surgery', 'Age', 'Hospital Number', 'rectal temperature', 'pulse',\n", " 'respiratory rate', 'temperature of extremities',\n", " 'peripheral pulse', 'mucous membranes', 'capillary refill time',\n", " 'pain', 'peristalsis', 'abdominal distension', 'nasogastric tube',\n", " 'nasogastric reflux', 'nasogastric reflux PH', 'rectal examination',\n", " 'abdomen', 'packed cell volume', 'total protein',\n", " 'abdominocentesis appearance', 'abdomcentesis total protein',\n", " 'outcome', 'surgical lesion', 'type of lesion 1',\n", " 'type of lesion 2', 'type of lesion 3', 'cp_data'], dtype=object)" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "headers = pd.read_csv(\"./horse-colic.attrs\")\n", "headers.Attribute.values" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(299, 28)" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/horse-colic/horse-colic.data'\n", "\n", "# Retrieve Data Set\n", "df = pd.read_csv(url, delim_whitespace=True)\n", "df.columns = headers.Attribute.values\n", "df.replace(to_replace=\"?\", value=np.nan, inplace=True,)\n", "df.shape\n", "# matrix = df.as_matrix()" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [], "source": [ "matrix = df.as_matrix()\n", "\n" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([['1', 1, 534817, ..., 0, 0, 2],\n", " ['2', 1, 530334, ..., 0, 0, 1],\n", " ['1', 9, 5290409, ..., 0, 0, 1],\n", " ..., \n", " ['1', 1, 529386, ..., 0, 0, 2],\n", " ['1', 1, 530612, ..., 0, 0, 1],\n", " ['1', 1, 534618, ..., 0, 0, 2]], dtype=object)" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matrix" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [], "source": [ "# a = np.asarray([[320, True], [400, False], [350, True], [360, True], [340, True], [340, True], [425, False], [380, False], [365, True]])\n", "# print (a)" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [], "source": [ "# matrix[matrix==np.nan] = -999999" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [], "source": [ "nan_matrix = matrix.astype(float)\n" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1,\n", " 0,\n", " 0,\n", " 60,\n", " 24,\n", " 58,\n", " 56,\n", " 69,\n", " 46,\n", " 32,\n", " 55,\n", " 44,\n", " 56,\n", " 103,\n", " 105,\n", " 246,\n", " 102,\n", " 118,\n", " 29,\n", " 33,\n", " 164,\n", " 197,\n", " 1,\n", " 0,\n", " 0,\n", " 0,\n", " 0,\n", " 0]" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nan_col_counts = [np.count_nonzero(np.isnan(col)) for col in nan_matrix.T]\n", "nan_col_counts" ] }, { "cell_type": "code", "execution_count": 148, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ind = np.arange(len(nan_col_counts)) # the x locations for the groups\n", "width = 0.5 # the width of the bars\n", "\n", "fig, ax = plt.subplots(figsize=(8, 6), dpi=80,)\n", "rects1 = ax.bar(ind - width/2, nan_col_counts, width,\n", " color='black')\n", "# Add some text for labels, title and custom x-axis tick labels, etc.\n", "ax.set_ylabel('Count')\n", "ax.set_title('Missing Values by Column')\n", "ax.set_xticks(ind)\n", "ax.set_xticklabels(headers.Attribute.values, rotation='vertical')\n", "ax.legend()\n", "\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 195, "metadata": {}, "outputs": [], "source": [ "# yellowbrick.features.missing\n", "# Feature importance visualizer\n", "#\n", "# Author: Nathan Danielsen \n", "# Created: Fri Mar 24 8:17:36 2018 -0500\n", "#\n", "# Copyright (C) 2018 District Data Labs\n", "# For license information, see LICENSE.txt\n", "#\n", "# ID: missing.py [] nathan.danielsen@gmail.com.com $\n", "\n", "\"\"\"\n", "Implementation of missing values visualizers\n", "\n", "To Include:\n", "- Bar\n", "- Density Matrix (by time, specifiable index)\n", "- Heatmap\n", "\n", "\"\"\"\n", "\n", "##########################################################################\n", "## Imports\n", "##########################################################################\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from yellowbrick.utils import is_dataframe\n", "from yellowbrick.utils import is_structured_array\n", "from yellowbrick.features.base import DataVisualizer\n", "\n", "# from yellowbrick.style.colors import resolve_colors\n", "\n", "\n", "\n", "##########################################################################\n", "## Feature Visualizer\n", "##########################################################################\n", "\n", "\n", "class MissingValuesBarVisualizer(DataVisualizer):\n", " \"\"\"\n", " \"\"\"\n", "\n", " def __init__(self,\n", " ax=None,\n", " x=None,\n", " y=None,\n", " features=None,\n", " classes=None,\n", " color=None,\n", " colormap=None,\n", " **kwargs):\n", " \"\"\"\n", " \"\"\"\n", "\n", " super(MissingValuesBarVisualizer, self).__init__(ax, features, classes, color,\n", " colormap, **kwargs)\n", "\n", "\n", "\n", " def fit(self, X, y=None, **kwargs):\n", " \"\"\"\n", " TODO if y, then color code the missing values in the chart?\n", "\n", "\n", " \"\"\"\n", " nrows, ncols = df.shape\n", "\n", " # Handle the feature names if they're None.\n", " if self.features_ is not None and is_dataframe(X):\n", " X = X[self.features_].as_matrix()\n", "\n", " # handle numpy named/ structured array\n", " elif self.features_ is not None and is_structured_array(X):\n", " X_selected = X[self.features_]\n", " X = X_selected.copy().view((np.float64, len(X_selected.dtype.names)))\n", "\n", " else:\n", " pass\n", "\n", " if self.features_ is None:\n", " self.features_ = range(nrows)\n", "\n", " if self.classes_ is None:\n", " # TODO: Is this the most efficient method?\n", " self.classes_ = [str(label) for label in np.unique(y)]\n", "\n", " nan_matrix = X.astype(float)\n", " self.nan_col_counts = [np.count_nonzero(np.isnan(col)) for col in nan_matrix.T]\n", "\n", " # Draw the instances\n", " self.draw(X, y, **kwargs)\n", "\n", " # Fit always returns self.\n", " return self\n", "\n", " def draw(self, X, y, **kwargs):\n", " \"\"\"Called from the fit method, this method creates a scatter plot that\n", " draws each instance as a class or target colored point, whose location\n", " is determined by the feature data set.\n", " \"\"\"\n", "\n", " width = 0.5 # the width of the bars\n", "\n", " self.ax.bar(ind - width/2, self.nan_col_counts, width,\n", " color='black')\n", "\n", " def finalize(self, **kwargs):\n", " \"\"\"\n", " Finalize executes any subclass-specific axes finalization steps.\n", " The user calls show and show calls finalize.\n", "\n", " Parameters\n", " ----------\n", " kwargs: generic keyword arguments.\n", "\n", " \"\"\"\n", " # Set the title\n", " self.set_title(\n", " 'Missing Values by Column'\n", " )\n", " ind = np.arange(len(self.features_)) # the x locations for the groups\n", " # Remove the ticks from the graph\n", " self.ax.set_ylabel('Count')\n", " self.ax.set_xticks(ind)\n", " self.ax.set_xticklabels(self.features_, rotation='vertical')\n", " # Add the legend\n", " self.ax.legend(loc='best')\n" ] }, { "cell_type": "code", "execution_count": 196, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAGFCAYAAADw//QxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsnXeYJFXVh9/ZXXYRBCWJIAiozE8QEwuCEhUVw4cBUcDMihhAQFRUFF1UDKgoSE4SBQEjSFKRKIizIrgCB8lKUEEJKkva+f44t5ianqrqqpmumYU+7/P0M9PVp6tvd1ffc++JA8PDwwRBEAT9y7SpHkAQBEEwtYQiCIIg6HNCEQRBEPQ5oQiCIAj6nFAEQRAEfU4ogiAIgj5nxlQPIHhiIml14GbgYjPbtOOx7wPvB1YAVgc+Y2bbjOM1vgTcYGbHT3CsA8ANwOfN7OSOx74HDJvZrhXPvwA4yMxOn8g4uoxx8/Qa60zgHNOB3YB34r/tmcAZwBfM7KEuzx0GVjCzu8f7+sETl9gRBBNhATAoabXsgKQlgY2z+2Y2NB4lkJ77hYkqgXSeYeBQYE7+uKSnAO8CDp7oaywiHAq8HNjCzF4CrA8IOGpKRxUs8sSOIJgIjwE/xCfTr6ZjWwM/Az4Bo1e6kjYG9gemA8PA18zsRxXHjwXmm9m3JC0Avg68BlgZOMDMvptWwd8E3gTcB/wOWNvMNu8Y6zHAPpJWM7Nb07F3APPMzJICOxQYBJYFHgDeaWaWnSDtguab2VNL7n8A+Ci+wLoH2MXMrit7fwWf51MlnQ48D7gX2An4G3A7sIGZXZ9e55fpM/1ZbmxrpO9hJTO7H8DM/ivpw8ArkszTcKX3kjSOs4G9zOzR3HneD2xjZv/XeT99Hw/iCuaZwKnAP4Gt0v0dzez8JHc/8EJgVeA6YDsz+0/Bew4WAWJHEEyU44F35+6/Dzi2RHYfYH8zm42vzl/V5XieWcDdZrYRsA3wdUmLAzsCs4F18NXwc4te2Mz+hU9cO+QO7wQclP5/PXCvmW1oZoPA74FdSt7HGCRthr/3TczspcB+wI8bvD/wSXP/tJr/AXCCmf0POC69TyQ9F1/ln9nx3HWBP2dKIPe+7zKzbBwH4grqhcB6wIuBT9Z9j4mX4p/zesDHgf+Y2SuAA4DP5ORmA68D1sIV99sbvk4wiYQiCCaEmc0DFkqaLWlVYCkzm18ifipwsKST8Iliry7HO8lWwH/AFcOSwBuA481sgZk9DBxeMdxDgPdLGpD0AuBZpAk12f+PlfQxSQcAmwNP7fL287wRX8n/VtIfcUWwrKRlG7y/q83st+n/Y4H10ir+EOC9khbDlddRZvZYx3MX0v33/Hp8JzGcfAaHpWNNOMPMHjGzu4D/Auek4zfiO6mMc8zsITN7BPhTx2PBIkYogqAXnIDvCt6T/i/EzA7HV6O/BLYErpb0tLLjBad4MJ0nK5A1ADya/mZ0TpD51/898A/g1cAHgcOyCVXSR4Cjgf/hq/GTO84Lbk7JH5uZ+386voJ/SVrRr4uvmv/d4P11jn0YeCSZhK4G3oybf4ps/lcAa0laKn9Q0rMk/SL5Qzp/79OAxRq8R4BOp/MjBWOB9F2VnDNYxAhFEPSCE/Gt/7b4JFqIpN8CLzWzY/GV7dOBZcqO13ztXwDvljRL0gw8WqmqkuIhuAnnbYyeULcEjjWzowHD7d7TO557LzBT0trp/ltzj50HbC9ppXT/w8Cvofx9F4ztxZJekv7/EHBJMg2B2/a/CfzOzO7ofKKZ3Q6cBBwjaen0ukun93uPmT0InAvsnHZEs9JYftlxqn8C60haPH2eWxWMM3iSEYogmDBpEroW+EuyxZexJ/AlSVcCvwH2MbNbKo7X4VjcQXwl8FvgYXxVX8Yp+KR/fkeo5LeADyWzzq9x89Pz8k80s/vSWM+W9HtyCsfMzgW+AfxS0tV4COfWafdS9/1dC3xR0lW48/t9ucfOxE1Vh1W8t48C1zBinvpdur9jenxX4Bm4qeZPuMLbt+Mc5wEX4g7ei5Nc8CRnIMpQB09kJL0WeIaZnZjuHwAsMLNPT+3IeoukVwBHAuvkTGNB0BMifDR4ovNn4FOSPoVfz1cBH5naIfUWScfhzuv3hhII2iB2BEEQBH1O+AiCIAj6nCecaWjevHmz8MzGO6kIFQyCIAhGMR1YCfj97NmzR4UBP+EUAa4ELp7qQQRBEDxB2QS4JH/giagI7gQYHBxk5szOXJfxM3/+fNZZp17hx5AN2fHKLirjCNknv2wnDz/8MNdffz2kOTTPE1ERPAYwc+ZMZs2a1dMTNzlfyIbseGUXlXGE7JNftoQxJvVwFgdBEPQ5oQiCIAj6nFZMQ6lK4jF4d6pZwFeAv+Jp8n9JYoea2Q8lfRGv3PgosLuZXdHGmIIgCIJi2vIRvBsvdPWeVIb3j8CX8Frr386EJK0LbAZsgNdi/xEeFRQEQRBMEq1kFkt6KjBgZg9IWg5v8nEu3lBjBr4r2B1vErKEmX09Pe9K4LVm9s+yc8+bN291vFduEARB0Jw1Zs+efcuoI8PDw63dBgcHlxocHPzN4ODgOwcHB3cYHBycnY5/bnBw8FuDg4OfHxwc/EhO/qLBwcHnVZ1zaGho9aGhoeEFCxYM95KhoaGQDdnWZReVcYTsk1+2kwULFgwPDQ0NDw0NrT7cMa+25ixO3ap+gzfr+AHwk9TNCuAneMu7+4F8I42l8JrvQRAEwSTRiiKQtCJe1/zTZnZMOnyupJel/7cA5gGXAltKmibp2cC0jhrxQRAEQcu05SzeC+/AtLekvdOxPYDvSHoEuAvYyczul3QxcBmulHZuaTxBsEgzMFDcyXFoaGiSRxL0I60oAjPbDdit4KGNCmTnAnPbGEcQBEHQnUgoC4Ig6HNCEQRBEPQ5oQiCIAj6nFAEQRAEfU4ogiAIgj4nFEEQBEGfE4ogCIKgzwlFEARB0OeEIgiCIOhzQhEEQRD0OaEIgiAI+pxQBEEQBH1OKIIgCII+JxRBEARBnxOKIAiCoM8JRRAEQdDnhCIIgiDoc0IRBEEQ9DmhCIIgCPqcUARBEAR9TiiCIAiCPicUQRAEQZ8TiiAIgqDPCUUQBEHQ54QiCIIg6HNCEQRBEPQ5oQiCIAj6nFAEQRAEfU4ogiAIgj4nFEEQBEGfE4ogCIKgzwlFEARB0OeEIgiCIOhzQhEEQRD0OTPaOKmkxYBjgNWBWcBXgGuAY4FhYD6ws5ktlPRF4I3Ao8DuZnZFG2MKgiAIimlrR/Bu4B4z2wR4HXAQsD/w+XRsAHizpHWBzYANgO2Ag1saTxAEQVBCW4rgNGDv9P8AvtqfDVyYjp0NvBrYGDjPzIbN7DZghqQVWhpTEARBUMDA8PBwayeXtBTwc+BI4FtmtnI6/ipgDnAdvnM4NB2/CJhjZjeUnXPevHmrAze3NuggmALWW2+9wuNDQ0OTPJKgD1hj9uzZt4w6Mjw83MptcHBw1cHBwaHBwcE56f7fco+9eXBw8KDBwcFdBwcH98wdv3JwcHD5qvMODQ2tPjQ0NLxgwYLhXjI0NBSyIdu6bJk87jsbc1sUxhyyT0zZThYsWDA8NDQ0PDQ0tPpwx7zaimlI0orAecCnzeyYdPhKSZun/18PXAxcCmwpaZqkZwPTzOzuNsYUBMGiz8DAQOEtaJdWooaAvYBlgL0lZb6C3YADJc0ErgVON7PHJF0MXIb7K3ZuaTxBEARBCa0oAjPbDZ/4O9msQHYuMLeNcQRBEATdiYSyIAiCPicUQRAEQZ8TiiAIgqDPCUUQBEHQ54QiCIIg6HNCEQRBEPQ5oQiCIAj6nFAEQRAEfU4ogiAIgj4nFEEQBEGfE4ogCIKgzwlFEARB0OeEIgiCIOhzQhEEQRD0OaEIgiAI+pxQBEEQBH1OKIIgCII+JxRBEARBnxOKIAiCoM8JRRAEQdDnhCIIgiDoc0IRBEEQ9DmhCIIgCPqcUARBEAR9TiiCIAiCPicUQRAErTIwMFB4CxYdQhEEQRD0OaEIgiAI+pxQBEEQBH1OKIIgCII+JxRBEARBnxOKIAiCoM8JRRAEQdDnhCIIgiDoc2a0eXJJGwDfMLPNJb0UOBP4S3r4UDP7oaQvAm8EHgV2N7Mr2hxTEARBMJrWFIGkPYH3AP9Nh2YD+5vZt3My6wKbARsAqwI/AtZva0xBEATBWNo0Dd0IbJ27Pxt4o6SLJB0taSlgY+A8Mxs2s9uAGZJWaHFMQRAEQQcDw8PDrZ1c0urAKWa2oaQdgKvNbJ6kzwHLAPcC95jZoUn+ImCOmd1Qds558+atDtzc2qCDYApYb731Co8PDQ1N8kh6T5P39mT+HBYh1pg9e/Yto44MDw+3dhscHFx9cHDw8vT/03PH1x4cHPz14ODgroODg3vmjl85ODi4fNU5h4aGVh8aGhpesGDBcC8ZGhoK2ZBtXbZMHii8LQpjnqhsk/f2ZP4cJlu2kwULFgwPDQ0NDw0NrT7cMa9OZtTQuZJelv7fApgHXApsKWmapGcD08zs7kkcUxAEQd/TatRQBx8BvifpEeAuYCczu1/SxcBluL9i50kcTxAEQUDLisDMbgE2TP//AdioQGYuMLfNcQRBEATl1DINSXpBwbENez+cIAiCYLKp3BFI2giYDhwl6QNA1lZoBnAYMNju8IIgCIK26WYaeg2e8LUS8KXc8UeBw9saVBAEQTB5VCqCZL9H0nvM7IRJGVEQBEEwqdR1Fl8k6ZvAsoyYhzCzOa2MKgiCIJg06iqCU4GL0629VOQgCIJg0qmrCBYzs0+2OpIgCIJgSqibWXyJpK0kzWx1NEEQBMGkU3dHsA2wC4Ck7NiwmU1vY1BBEATB5FFLEZjZym0PJAiCIJgaaikCSV8oOm5mXyo6HgRBEDxxqOsjGMjdZgJvAlZsa1BBEATB5FHXNLRP/r6kLwPntTKiIAiCYFIZbz+CpwLP7uVAgiAIgqmhro/gZkYSyaYBTwe+2daggiAIgsmjbvjo5rn/h4F7zez+3g8nCIIgmGzqmoZuA94AfBs4EHi/pMlscxkEQRC0RN0dwX7AmsAxeOTQDsBzgN1bGlcQBEEwSdRVBK8FXmpmCwEk/QL4U2ujCoIgCCaNuuadGYxWGjOAx3o/nCAIgmCyqbsjOAm4QNLJ6f72wA/aGVIQBEEwmXRVBJKWAY4ErgRelW7fjY5lQRAETw4qTUOSXgpcA8w2s7PN7FPAucDXJb1oMgYYBMH4GRgYKLwFQZ5uPoJvAdub2TnZATPbC5gD7N/mwIIgCILJoZsiWMbMLug8aGbnAsu3MqIgCIJgUummCBYrShxLx6JbWRAEwZOAborgQuCLBcc/Dwz1fjhBEATBZNMtauizwFmS3gX8Hs8qXhf4B96TIAiCIHiCU6kIzOwBSZsCrwReCiwEDjaziydjcEEQBEH7dM0jMLNh4Px0C4IgCJ5kRAXRIAiCPicUQRAEQZ8TiiAIgqDPCUUQBC0R5R2CJwp1q4+OC0kbAN8ws80lPQ84Fm91OR/Y2cwWSvoi8EbgUWB3M7uizTEFwUQomsiHhiKlJnhi09qOQNKewFHA4unQ/sDnzWwTPB/hzZLWBTYDNgC2Aw5uazxB8GQhdhpBr2nTNHQjsHXu/mw8UxngbODVwMbAeWY2bGa3ATMkrdDimIIgCIIOBoaHh1s7uaTVgVPMbENJd5jZyun4q/AKptcB95jZoen4RcAcM7uh7Jzz5s1bHbi5tUEHQQXrrbfemGNlpqEi2TL5RUG2LZ5o4+0D1pg9e/Yt+QOt+gg6WJj7fyngXuD+9H/n8a6ss846zJo1q2eDmzdvHrNnzw7ZkG0sCzSSbSo/1bKLyuc21eN9osl28tBDDzF//vzCxyYzauhKSZun/18PXAxcCmwpaZqkZwPTzOzuSRxTEARB3zOZO4JPAEdKmglcC5xuZo9Juhi4DFdKO0/ieIIgCAJaVgRmdguwYfr/ejxCqFNmLjC3zXEEQRAE5URCWRAEQZ8TiiAIgqDPCUUQBEHQ54QiCIIg6HNCEQRBEPQ5oQiCIAj6nFAEQRAEfU4ogiAIgj4nFEEQBEGfE4ogCIKgzwlFEARB0OeEIgiCIOhzQhEEQRD0OaEIgiAI+pxQBEEQBH1OKIIgCII+JxRBEARBnxOKIAiCoM8JRRAEQdDnhCIIgiDoc0IRBEEQ9DmhCIJaDAwMjLkFQfDkIBRBEARBnxOKIAiCoM8JRRAEQdDnhCIIgiDoc0IRBEEQ9DmhCIIgCPqcUARTQFEoZoRjBkEwVYQiCIIg6HNCETyJiJ1GEATjIRRBEARBnxOKoE+J3cMI8TkE/U4oguAJQ0zYQdAOMyb7BSX9Abg/3b0ZOBw4AHgUOM/M9pnsMQVBEPQzk6oIJC0ODJjZ5rljfwTeBtwE/ELSS83syskcVxAEQT8z2TuCFwNLSDovvfZcYJaZ3Qgg6Vzg1UAogiAIgklishXB/4BvAUcBawJnA/fmHn8AeE6dE82fP7/ng5s3b17IhmzrsovKOEL2yS9bm+Hh4Um7DQ4OzhocHHxK7v4fBgcHb87d321wcPCTVecYGhpafWhoaHjBggXDvWRoaGjSZIHC22Set+kY2hhvU9m2xtDW59DW99Hm91zEonxdtjHeJ4tsJwsWLBgeGhoaHhoaWn24Y16d7KihOcC3ASStDCwB/FfScyUNAFsCF0/ymIIgCPqayVYERwNPl3QJ8ENcMewInARcAVxpZr+b5DEFPSbCPIPgicWk+gjM7GHgnQUPbTiZ4wiCIAhGiISy4ElJ7EqCoD6hCIIgCPqcUARBEAR9TiiCIAiCPicUQRAEQZ8TiiAIgqDPCUUQBEHQ54QiCIIg6HNCEQRBEPQ5oQiCIGhMtDp9chGKIJhSYjIJgqknFEEQBEGfE4ogCIKgzwlFEAQBEHb/fiYUQRAEQZ8TiiAIgqDPCUUQBEHQ54QiWMQJu20QBG0TiiAIgqDPCUUQBEHQ54QiCIIg6HNCEQRBEPQ5oQiCIAj6nFAEQRAEfU4ogiAIgj4nFEEQBEGfE4ogCIKgzwlFEARB0OeEIgiCIOhzQhEEQRD0OaEIgiAI+pxQBEEQBH1OKIIgCII+JxRBEARBnzNjqgcAIGkacAjwYuAhYEczu2FqRxUEQdAfLCo7grcAi5vZy4HPAN+e4vEEQRD0DYvEjgDYGDgHwMwul7Rehex0gIcffnhcL7TGGmsUHj/jjDN46KGHap9nIrIrrbTSE0q2Sj5km8sWyYdsc1ko/j1P5m95UZfNk5szp3c+NjA8PDyuk/YSSUcBPzKzs9P924DnmNmjnbLz5s3bGLh4kocYBEHwZGGT2bNnX5I/sKjsCO4Hlsrdn1akBBK/BzYB7gQea3tgQRAETxKmAyvhc+goFhVFcCmwFXCqpA2BP5UJzp49+yHgkrLHgyAIglJuLDq4qCiCnwCvkfRbYADYYYrHEwRB0DcsEj6CIAiCYOpYVMJHgyAIgikiFEEQBEGfE4ogCIKgz1lUnMWLPJLWBNYErgZuN7NC54qkb5vZJxqee1kz+1cPhpk/Z63xJtlpuJP+FcDvzGx82XpBLSRNN7MIfX6SI2mWmVVmf0l6CrCwm1zb9K0ikLQN8NOKfIW87C7AW4FlgeOA5wG7lIivLenpZnZvjfNuBhwMTJd0GnCrmR1d9z30YrySvgtcC6wGrAv8HXhfxbmXAj4NrAycCVxdVhdK0rOApwGPpud8z8z+WHHuLYDnApcD15vZgso32gKSngEsnt03s9tK5Jp8DqcAHzCz/0paAzgR2KhD5k5gGFfIywD/Sv8Pm9nKJefdC9gT+F832SY0fG+NxtDkO5a0KrA9o7+PL1XILw2sDtxoZv+tkBsA1u8470Vl8t2QtBVwEPAI8Dkz+2F66GzgVR2yawNfBf4NnAQcBTwmaTczO3O8Y5gofasIgPWAvSX9EjjazK6tkN0O2BT4tZl9V9KYhIwcawP3SPon/sOu+mF8OZ33R/jFcSlQqggkTQfej0/a5wPzzezuCY53fTPbXdJvzOyVkn5dIQtwDH6Bbwbclca7WYnsD4C5wM7A6cB3gFeWvLevAqsAa+GFBz+LTwJFsrV/yJKWxCfWR4CdgOPN7NYS2UOANwB3kCY1fJdURJPP4VzgAkkn4d/f7p0CZvZ4bYXsuyg5V55tgZXN7H81ZLNz11F0Td5b7TE0+Y4TpwG/Av5a49zbAJ/D57RTJQ2b2VdKxH8EPCN33mFg1PUj6TfArI7nZYqu85r4HPAS3NR+mqTFzey4JN/JYcDeuMI6HRgEFuCfd6kikLQSsFg658pmdlmZ7HjoW0VgZp9Jq5nXA1+R9EzgSOAkM3ukQ3waaVJP90u3cWa2WoNhLDSzf6WLdoGkB7rIH45PUq/BswOPxyeuTmqPF9+NzAZukTST0RneRSxnZsdIereZ/TaZlcpYiP/APmdmp0j6YIXsxma2aZoEj5P0kQrZrj/kHKfjP763AdcARwBblsi+DC9tsrDitTOafA6n4N/TF4D9zOyCLueuG9N9M/BgTdkmiq7Je2syhibfMcADZvb5muf+OLAhXrPsK8BQ+lvEMwsm804+g88Hb8V3tFU8bGb/BpD0ZuD8VCan6HucZmYXAhdKeqWZ/SM9r/Q1JB0NvBxYElgCTwrbsMuYGtG3iiCtKl8LvBdfYZ8ELA+cAbyuQ/xkfKJZTdJZwE8rzvsCfOJZBjcBzK/Y8t0g6WvAcpI+AxSuVHM818x2lLSxmZ2RnlNE7fHiyuQQYA6wH65sKpH0/PR3Fap/JIulc14k6ZXAzArZGZIWB4bTzqfKhl7nh5yxBPBzYDcze6+kV1fI3oCvlmutsBt8Dr/HJ5X3AN+UdI6ZdV5j42Em8CdJWSb+sJm9s0K+tqJr8N6ajKHJdwwwX9J2wJWkSdXMri+RfczMHkqLqmFJpaYh4DpJK5vZHWUCZvY7SScALzKzn3QZ5y2S9gf2NrMHJG2N7wKfXnTqVFttJzN7P0D6Hd9Vcf4XAy/Af5t74YubntK3igD4C1687kAzuzQ7mCbyUZjZ9yT9ClgHuM7MSktgAAfimdFH4lvqqi3fR/EJ+BLgv0DVihn8h7R8GudS+Iq7iEPxLfU6gAGFdm4AMzskmSxWw1fuVT8ggF2B7+Pb+9PTeyhjB3z3chRearzU94CbjeYBKwC/S/fL6PpDzjET2A2Yl+yzS1bIPhu4VVJmDy8yA2Q0+RzenfONfEzSmzoFJL02d3fZ/H0zO6/kvN+oeM0i6iq6Ju+tyRiafMfg5paX5O4P02Fzz3GJpJOBVSQdRkE9nRwbA7dJupsK862ZfbPL+DLmAO9mRFn9NS18Plsg+0Fgqw5l/Dd83ijjnqTcljSzuyXVHFZ9+jazWNIXqhxPHbLHdBx6BDdLHJxtCXOyvzazLSSdb2avqrL3SjrPzF5b9FiJ/Ga4aWOl9Pq7m9kvc48/E1gaX+W/B9/+TweOM7OXlZzzbcDnSbZV/EdRtqXufO6qZlZqv02rvh3wCbbKp5HJL4M7tm8ys3sq5P4CrAH8Mx2qcqi+AldCX8V/rFeY2RUlsmPMemX+hCS/PG7rvaEqOEDSFwrO+6UOme+XPH3YzOaUnHdp3N68NnA98OWq6DN5CZc1cYWQnbvuzqrzXP9nZmdK2qnzMTM7ouJ5qwLPBP5e5ogfL5JeB7wQuHYqHa+9JvlW/gWsCKyK7+oKf8/jpZ93BJtL2rdmGN9TcLvcxbhtbn3gH3hETufq7l+SPgQsmba1VdFD/06rw+tJq/uKrS/JtihJKwD/Loh42hBf/QpXGKTznlsxhj2ob1tF0qfSe3o6sEMyc+xRIl7Xp5FFXuxAcmRKwswKZc1szYr3k51vFTP7G3A3viN5BlC2ss54DF+lZhPrxyvOPwePlrkGWEvSF83s1BLxv6e/A3hk1hibu5ntkCb2Rxs4f48BLsTNmpsBxzL2esxT5Zh9HEn74qvcx1eJBYp2ufS3vIHA2PN+EZhlZntJOk3SkJmN2VFIOt3MttFIJBV0j6BaA3e8DuCRe2ub2X4lsi/EP7tVcJPMHDO7su77mAK+gM9BD+I+zardzrjoZ0WwAnCHpJsZ2R6WrY5WMLPsR3RuWsnvLanIQfkB3I53Nx6Z9IGKMTyD0ZNN1dYXSe/CJ6tZwH6Svmlm38oeN7OfAj+V9AYzO6vidfM0sa2CO103Bc4xs7UlnV8hW9enAfAt4EN4WF0hkj5vZl9JJoBRW9kCu/Qe6XY4I2GZUP0ZH4mb1S4CNsdNe1uUyH4YeEly8i+J73gKFYGZjfK7SDq74L3tDHwSeFTSLmZWpbwzljOz76X//yiPnKniUdyU8ww8Iudqiv1SbwRWt4rY9hQVg5ntk/wuzyGFhFa8/pvMbHZ63tslXUqBacnMtkl/aysZ4GfAj6m4fnIciLfDvUrSS/AQ7o26PGfSKdnh34D7vGJH0CP+r4Hs0pKeb2bXSVoLeKqk5YCndgqa2f3pAr8b+FPVVr3MZFTBbviK4BTc3HIePoF28i9JhzM63KwsUqaJbRVcET2TkVXuEhWydX0aAH+uEU1zRvp7WBc5sl1K/jPuZsrC26X+PP3/U0llOx2Ae3ATIfhKrco0NJi7uxLuj+nkXfhObmngBKp3cRlPkfRMM7tL0ooUdJ7q4Ai8DezeuLI7juLokyvxnVnXJCc1CwldKGmmmT0saTG6VDZQs8CLv5rZ3G7jTQyY2VUAZvZHVUfs1M5laEF2PDv8cdHPiqDu6gg8GeskeSzvg/gWfFtg305BSQfj2+bLgB0lvdrMPlV00txuJOM+M3tpxZizML0H0iq+7Ps7FI/W2Qbv7VAarZO26a8D/kA92+oF6fZuSd8BflEh+3k8N2IlfLU4Jn4+x88kXYYnt2VjG2Ubz368+Hvakpyiw00kY2hoypoh6YVm9qdkPhjjQMvtRlbAHdCX4+aeqhDK/I5gAVCUeb7APKP7bnkYbx32Bn4rKWvsNMZe38FTzOz8tLMySWXJXPOBOyXdxYhJ5jklsk1CQg/DI4H+BDwfv0araBJ4cYakr+OmOgDM7PgS2cck/R9u6t2UaoVXO5eh17Lj3OGPi35WBHVXR5hNRwBPAAAgAElEQVTZFekC3wUPOV3RzL5cct4Xm9nG6f8DkoOujOenvwPAbODtXcZ8Ez6hfjzZW68ukbvbzE6W9FozmytpzCRZ4Oy7D1hZ0k5Vzj4z+xyeQIOk39vYnIu8bN6ncbdVlLnAI1X2o9qnkvETXGG8EJ9Yq2zqnaas33QZwzGSVgZup3hiLdqNnFw12HHs/IoSkYrO+0vgOZKWr3LC51ggaUs8d2RD/LMrYlvcGV/nu6gdEmpmR0v6OW5GurHOmM3shmS2/Keq82y2w6+JtdL9qmttDr6TzhRHVbRek1yGtmSb7PDHRT8rgq6ro7Qy2x7PjH0I37avYWZVq7/bMkdl2q5Xafz8SuRSeU5BKcmh+FQz+0+ahP9eIrowbauXkCS81EQnZc6+shpKlxU9lpy6hb4VSa/BfSB5B3CZff4uG0nN78aAmX1YHs21I9U9rDtNWU8pE0wOw/WrXjgpNyS9t9sgO5ydGWVOzxdI+kF6PPs/e81R/g9JB5nZLvnvRCmksEsU0E74BLg87o8oW73fCvy3ykeQozMkdP8ywWSP34nR10NhRFSiSeDFQ2ZWmaAmaUYKsLgTN8VlSXVVNMllaEu29g5/vPSzIqizOroFX+29y8z+IunsMiWQ+9EvDrxVnlm4Cu4rKCRN/NmFuBIlNvRO52j2o08/pKLknT3wBJQD8TIPY8pWZM4+3Fn8eJRQhTLarux9VPAd3BxUZ6v8oKRzGP3D2KtE9tG0Cl0yyVZdxxfQxZSlcUSpMLLyHMBj3f+FO/XyfNU8B2VDM7u8YowA78j9380Hku1G3wvkCwQWKfzHSYuTxyfiClYFbpR0U7pfFUhxGR6X/zw8y3i5Ejlwk+pB1LseYGzgRZXSuFXSZ3ETZ3b9dEaJHQ+8E8+tGfU947uUIprkMrQl23WHP1H6WRHUWR19F185rC7PBizdsjeMcMi4Lvf/VbgNtIiuztEO5thIBdTZRQKSPoCvpteSlIVpTsNXG2MSYSzF06sgJh4oy8e4zcx+VXPMZ3QXeZyD8e/sT3gyTumOoI4pazxRKmb2+Gckz1Ivsl3vkibTfZOvYiD3/FGTVLbTqMlAckDno0mm4b6I0mgSScfj0TH3MTIBrlsgum23AUhaB3gW7mfbMx1eDje3vKTkaXeZ2VHdzp1jVzN7PNIsLVKKkrTAzSaD6Qb+3jo/43emv2vkzllZCda8/tZyeKG8m6rMWW3JUm+HPyH6WRFMY+QCBnhE0mL5icI8Dnk/eSLXjsD6kr4BnGBm84tOqo54+HSewnh4vODb41VB0w91jMmhiTkiUacC6onAr/EVV+b0XojnR1TRNSY+xz/kkUj5Vf4o/4Ok9cxsCN+u12UY/z7+jZvsxiRjjdOU9Wr8NzEN+B5eMuAHJbL57flKuE29k08DW+OJQPmd25hJqiHjjSaRmT23xvmLMsA7lf0y+C5xRUaihBbi5UrKuEUeQpy/HsZ8DiWLlOn4ZF+oCJLZdB1SDohVV7mtDMPukH07nldzLbCOpLlmduJkyjJ2h9+Z4Dph+lkRnImbbq7DVxH/wx1fe3Z+ITZSJOrp+ArsBKAsuqdOPPzOeETNMvK6JOAT6zVlz0nUMUeA/xjuVnUK/QvNbEjSj/AJJf8apZOU1YiJz3Fz+vvM9LfIHrsFnsTWGXJYNVnuDbzMzP6R/DBnMHYSHI8pa198ws7iyk/Ff3hFZOaFATxiaEwETC7qYyvzPIpl8UTA2un8RSvWCUSTXCFJZmZd5OokwF0MXCxpXTP7QwoIuMeq6xjNwq+17Hor+44bL1IkfQz/7n4HfFLSqWWTO/XDsMEn4dnJL7cUni9SNWH3XNbM/gz8Od0t3OFPlH5WBDcDrzKv3bEMnn36Qdw8U/aF3IuvFL9X9Hiiazy8mR0MHCxpLzP7at0B1zRH1K2Amk3AnRNm5WpV9WLis3Hso47yuQUyWULRpXmzgaRdK8Z+j6WqjWb2d3n4ZOd5M1PW8/BorPwYPlRy3v/hk+Cj5rH5VRP2O8zs8ZyLtGss435J8/FV7WmSSvtOqEbvghxNo0nuA34v6T9U+EAaKvunJfPXffjC5oOWK3vScd4dOs5baIpLTupbJH0UN+G+AE9UO7RiHO8ENjGzR+U5Cr+lfHKvG4YNXiH4P2lcD6g85Lbnsjmf1Sw8X+evuDnun2a2esW5G9PPimDFzC5nZv+WtKJ5Seg6JYir6BoPn+MwSdsz+odcGjnUYY5YmWJzRC2yCdhGSht0cyBm1ImJB8aUz30KHv66YYfM9nhZhFdKypxl0/DQ0LJCXA9IOhfPHZiN206/mt5Pp4P5B3i46cZ4uYsxSYA57sdLbRyRdm1jVqCSNsF3XB+XV5zMxrsLXuSviCZ9J7r2LsjRNJrkVcCy1qUZUxNlj7+3jc3sDnkjoh8DhYpA0pdwX9xMfGK7Hp/kyzgcVzC/xEtoHEWB6TQxkL0vM3tEUmlYM/XDsAFukvRtPMR8U7zUzKTIZj4rSScCnzUvZrcy3Yv1NaafFcEf5NE4l+GT1R8lbcvItni8jCce/kX4KqVbjRnDV5Ur4BVFK8NN6yDpOHyS7OZA9AG4k2sF3Ml1vVW32KxTPvcc3D+wHCNKZiHVP6J8We3bK+QA/mNmX5O0ppnNkVQVavoOvCzGNcnefGSBzL9xU9csRkJvFzLa39RJk74TTXoXNI0muR636Xf7zGorezzq7A4AM7u9yyr4Tbg59jt4mGmVPwFgTTPbNP3/U1Xn5Fwi6XQ8cGATXNkWYqPDsIfMrKoE9A74DvI1uOm2qkxKW7LPsZQRnxTusytkx0U/K4K9cE28FnCimf0ieeSbRK8U0VY8PPgPcn/cr7E0vsIdgxq04QSeX9OBmJ37I3huwJ9xp/SXK5xcXcvnmldvvSDdamEjoa91GJbXbFlKXhOoakfwDOD/NLpmzygnaQoSmC/pSKtXBhua9Z1o0rugaTTJRrjJ5R6qyy83SYC7P9nns5Vt1cLgzmSKWco8UazbDmZxSUuY2f/kvX1LS2iY2SclvRH/PR9T5TtJn9lhySR8oqQxpSs0EsTwKrxk/V/SQ6+kw3TalmyOa+S9Ea7AF63zyt7beOlnRXCmeQZwVluGGk60OrQVDw/FTtKii6dJG866DsSMnfBmHQskLYGbZ8oUwTxJn8SL+51CRTJXi+yDd5k6ATcJnFAhW7tEQAMlAM36TnTtXZCjUTSJdanaqmYJcI+PFw982Bdf2VbF+v9NXrX1v0kxFjVuyfNd4KrkX1kb+GLF2LcC1jOzL0o6R9KjVt7HoU7piiZBDG3JZuyEX8ODwA/N7GfgZdOtokx6E/pZEfxL0m64uSUrAT2RkL6MpvHwu+MXwF/xiaKKrk7S9FiTNpy1HIg5/s5Ix6oH8eJrZRyH71qy8rmFfQBaZmkzy5yMP5f0jgrZJmn/TTjT6vedeFPB5P/zIsGm0STqUn7ZxpcLc6hVd0XLsye+kz0N9390e96dwAZ4stfNVtGjAlf42U5mW3xyr4p+qyxd0eFDm47/Nl6ORyVNimzuOQtx/1In36eiWnET+lkR3MPo7L6JxnZn3Nxd5HEWN7OvA0g6zcwKJ/YctZykataGs5YDMcc03J/yWzyEdjGlcggFE8LRNlJ3qVBBqqCxSYZV1Dzqhryo2EbA9vLmNNnY30xJuWgapP1Lei6+Ozs5rW4PN7NbSs7bpO9E7TyNpOz3JOdb6qLEa5Vf7qYwOpgl6UWMfm8Pl8iekbseqiLvMvZJPoIqc1PGI2Z2X3r9+yRV9RmpXbpC0ndxP95q+PdxF67EJk22glo1qerQt4qgM5Sth2QZygP4tv0Wyhur74RP0tRQAlDfSVq7DSf1HYgZ+YqrJ3WR/a+8rEN+19U5uZetQifaOu8q3AH9YHp90hhOqXhOk7T/4xlxop5Nde+C2n0nrFno5rZ4pFndRjZ1yy83qdc/iPcCyKgq19B0Fz4s6Scd8mVm1ivSguQyvF5UVaOZJj1D1jez3ZU6DUr69RTIltGz9pJ9qwhy9tAB3Ml2k5mtVf2s7thIA5ss3LNs9Qm+mrqS0Rd66Xa5gZP0eCuog16i/Go5EHPnaFIKIYvyWLFCprJy53hJURbHJScb+Mr65VQk7aUf5NPw9pM3WorzrpC/PP29SFLpyr2J81XNQjdvprr8dSd1yy/XrtdvZi9MJo4VgH9YdUJZ01147QxaM/uYpLfgyWqn20hficfp+Gzz516e8l3HdEmz8d/ITLzcdxltybZO3yqCvD1U3qt2bgsvM4Py1RF4CYI22Fw123B2cyBOBPOEsq3wVeN8K+661dlBLKOyW1sD9mf0FvzvFJdQQB39m5MNuaxt573JrHUZXt+nKiS0CU1CN2cCf5LX9wdX4lV297rll2vX65f0Vvwz/jfewOkjNsGEshyn4SGWg7gv5PBOgaSEpuM7ve2As/BJ9nwbW+m28/nZdddt53cI/tntVzSGSZAtI0xDvcTMbpX0/O6S3enYacwADqgQ/wOuDFbGoxaqEluaULsNp5p1gWqExjbp2cLMRsXbNwxVHA9NtuBN+je/D1cab6V7tExtGn4eY9o8djn3rXTveQHN6vV/AdigI5KtVwllP8BDpc/Bd67fx6OUOse6F57bcR3+u3uMgsCL8VxrZnaIPLlvNeBzZlbayrUtWYC048x2XZlJqKpNbCP6VhFodGnnlXBnzYRpGHlxDG5f3iy9/tHp/4nSpA1nrS5QKugTnFGxCu3apEfjKwHdhCZb8K79m5V6TeDmxHxC1LKUlByv41huErqp1FSI0TWiMoqaEDUtVfAWYCfzHI9u1IpkSzRNKFvORqqP/kwFyYBmdiRwpKQ5ZtbzYmxNdoktym7NyK5rqWzXZeXNsRrTt4oAr0v/NDwUsrDtZBNUXJ4ZgCJ7fWI5MztG0rvN7LdVduaGPIb/2NbGV10frxLuFkqXaFoKG+o16bkg/X2rda/ZPx6abMEvSQ7Hqv7Ne6RbZtKCeuaFbo7lJr0LGjUVsualCmYAv5J0HXCkVWc3Nyn30TSh7M+SNjKzS1Mk063yOkIDBZFJq3b+Bit+d01osktsS7Yof6hw1zVe+lkRfBD3C+yMl/L9JiNxyOOhszTFkrjZ5xbK6/WTmaQkrcJIfP5EORKvQ3MRsDnVES21QulspBT2snTpF6xmTXp2TSasrjX7x4OZHcLIyrOqbg820r/5SuA6MxsT8moj/Y7PMrNvNhhHN8dyk94FWdDAvriyr1snqlapAjP7NvBtSesDn5J0hJkNFsnSrNxH04SyTYAtJT3MSB2l6ymOTMp29KVhtx3O4lFYeThv113iJMg22XWNi35WBAvxifJzZnaKpCo7aFcsF/YnaSO8QNZBeJGxMnbF7Z5r4XV4PjqRMeRYPBc18VNJZc3aoVkoHdToF9zQPLYnLdTsb2Jy6nA4bovbXsscjhmvl7R/HYc89RzL4+ld8At8grw3J7t1iSyMLlXwCkpKFcjLObwN94MMUJHR2yCSDdzxuwo1E8rMrMp/0ClbJ+y2bDdYtZu7JJlFq3aJbcs22XWNi35WBIvhpoKLJL2SHvQBTdvWrwKvBt5p5Uk4gNetkSca1Sng1oQZkl5oZn9KW+qqeOPDukSadFK7PpJqNOmxHtTsL8JS1zG8zWg3p1re4ZjlHAxTXfuptkOeGo7lcX4Oi5tZE59SVqpgTeDkohDLxNX4wuQjZnZDg/N3Y8k0hiw4oizxrDEdq/2VKQi7LXMWV5mocrvEPwDXVgVStCWLZx0/iCv8nYFvU53R35h+VgQ74JX/jsazTQtDCusi6aX46v4c3J5XVQY3e85HcXNFnQJuTfgYcEyyA99OddTHLNXPDIVm9ZG6NunJUbtmf0Pm0iW6YpwOx63p0i94PI5lmn0OF8n7budLnt9WMeZl8J2A8D4CF1rKxu1gLaufad6EtoIjwFf7WevHy3AbfCHJFLoHI+bNRxhpcZnJdGa83wesLGknG9tlrxXZHG8DtjOzG5PD/FgbqcraE/pWEZhZvvJfVdJXXX6H17PfDO9mBiOmiLKV4gepX8CtCauY2frZHXl9natKZJtkhkKz+khdm/TkaFKzvwlNslOHJL08yX0Vd+COCjeV121amnr9gsfjWG7yOayIF2bLm4bKrjXSmM9IfzfBa0G9pVOojhJINv4y53TZ51srOKLLCr1skXIo7mz9JW62XKF08L6q3hzfpZ1Gse+oiXmzLdmMR8zsRgAzu0kT75kyhr5VBC0wnsSsJgXcuqLx1deZY6M7bW3e5WWa1Edq0qSnSc3+JjQJKTwMbzCzD97wfj+8ZWKefL/gw/GJvbBf8Dgdy00+h+dbs2z4xc0si/66Sh7COF6uG8+TagZH5NuA5qlapHwcWNdGt34sqzR7h5ndmaKXLpA3pxk9ALN9uryV1mVz3Jp8ApmPqW45mNqEIugRNr5ysE0KuNWhdn0dja/TFjSrj9SkSU+Tmv1NyDp9PRufHOZXyC7AzXQzzexyFRQus/H1C27iWG7yOVwtaUNGF8kbs2LO2c/vTrvDi/AJ5eYOudIKqWWRS/I2j+tT0Y40R63gCDMbT+e9Jm0i75OXoxhOZqLlx/F6k8kOwIfxhkXXUh5mOm5CEUwtTQq4dcVy9XUsV/NFxan84+m0Bc3qIzVp0tOkZn8TDsNLYb8Gj8w4Hv9BFTGcHj8rTZhVfp6Hk7NvGl5Jc28zK2t038Sx3ORz2BR4Y8f4i1bM+WiZD6cb+Hefp7NGfv68ZZFLP8GVwLNwv8YdlNSPahockWR3ZkTJLGdmLyoRb9Imcsc0hs/i+R0fK3jtTVOo7yzzHspV42xFNsPMFuAmwNYIRTC13AZsxeiomv16cN658k5ipan8NtJp65ikQACQVNqmMtGkPlKTJj1NavY34blmtqOkTVI0TlVLwG1xR/9ZKZJsuwrZffHwx6wy56l4SYQiujqWc9T+HComxU65VwJI+jBjnaR5PlTnfB0sb2Yvl3QUPqGWJjqNIzjiK2lMHwZ+gyvzMvKtH6+luvXj2nhZjAOTz6doZ3ugPAz8F5Jew+i8js5dV1uyk0Yogh6h8ZVg+Bne7LtOVE0TmqTyny1pDzM7T9In8FouL62Qb1IfqUmTniY1+5swQ9LyuBlgqezceTRSsmHrdD+L7FgTTzYs4n8kH4+Z3SVpzHff0LGcUftzaLhiBt9tbMaIk3S3jscz23yezLldZpvP8kiWNLMHiz6HHE2DI+40s8skfdjMjpX0/jLB5OA+uOJceQ5iRMnvDRyL7yLynItf2yvj30VG0WfRluykEYqgd4ynBMNfzWxurwdCs1T+LYATJH0D31Zv2OXcTUIAm9jna9fsb8jngMuBVXFnW1GESFnJhirux0OFj5C0M/CPApnajuUcTT6HJitm6OIk7bTNS1oO+FeXXIYfS9obdz5fDlSV7m4aHPGQpE1x39mW9M6W3zUKx8w+DXxa0t7WpaZPW7KTSSiCHmENSjDkOENSVuExO8/xPRhOk1T+F+ET4CX4TmAVqu2rTeoj1bbPW3tVSJfHr/Mb8J7JReP9jbzcwvcbnPcduNnpGknr4GU9RjEex3LDz6H2ijlRy0maJt9DqJfL8DPgdvMyCb+gukxK0+CIjwDPxxXel9OtFzSJwjlW0mmM1O3avSIwpC3Z1glF0Hu6lmDIsV2SzUIAe9VxqElv2LnAG83sthSB8lN87KXUDAGEZvb5tigq2NXp+Mwc2svh1Un/hPtU7qK8F/CqwJslbcOIwi+zsTdxLDeh6Yp5R+B5VDhJE1+hSy5DUn7Pwkth7ynPm5kOfI3RXd7yZMERw9QLjtjBRipyvi0tauoGH1Sel5EonGuojsI5gtF1u46hvG5XW7KtE4qg99QuwQA8ZGYfqXh8vDTpDbspXnDuRfgEWNaSMKNJfaSu9vlJoGvBLjN7OYA88ey9KfxwSaq7p/0AV/ob47uep1bINnEsN6HRitnMHmCkhWNVw5s6uQzL4AuZFRmJNlpItT/qWtxUlzWa2dcKSl1L+gD+21lLUraDnIYHP3y24vyVSFrPzIbwa/4aRnbim1EeFdVZt6uqkm9bsq0TiqD3NCnBcKukz+IO2CyqZsIVN2nWG/Yt5Oqip3GUrpBStNHLa47j8/hqciXcTl9a/VPSQcBRZvbHmueuS5OCXaukyRIz+29J2G3Gf8zsa5LWNLM5KqiVn6OrYzlDNXoX5HiRmWXF1d4maZeKMTShay6DmV0MXCxpXTP7g6QVcKVbpex/mG7H4ArxBIp7Z5yIJ/LtxcguYiHFfpgmbIGXe+4Mk60Kj+2s21VFW7KtE4qg9zQpwbAYvjrKEn4mVHEzR5PesE3qopMcjDuTMwlZSQOZ5DeRpBXM7J9dxnwmsJekZ+ETwUnWPWGtDk3KJJ8n6UL8M3hZx3M7GU5RQUul3UPVjqCOYzmjTu+CjE+kUMQD8Gq3vSpE9mF8RX4J7vytymV4mrx89n3AMpI+aCWtKgFsdGbzO0pkHsIbCX0UT2B8AW5HP7TxOxl93qyj21xGm2EfkbSYFdcHy+p2rYTv/Ko+i7ZkWycUQe+51cx+BF6CgYpQTDPbQZ71+Tw8pOyOibywpBkpjK5JPHiTuujgK7jVzKxr0/TkkPwQsHiyIWNmaxfJmtk5wDlpZXkA8E1JpwNfziI8xoM1KJNsZp+TdzMbBI631MC9hH3wSp4nADdRXs4AajiWO8bRrXdBxmvwekF/BfYw773QC2bj2dU7y9spXsqISamTLwMbm/c3eBYeDl2mCK6T9C48wmk2cE+6/stCZA/HFcwvcfPNUcB7x/me8pyBB0Vch3/X/8NX6Ht25jWkHer6Y08xlrZkJ4NQBD1C4yjZkLbyb8UTjI7F49Ynsr0/HrdF5+PBu8WB1+nKlecfVGfc5tkNd8h1zZOQtBbu2N4Knyg2YcRcVeaw7TlmNo+SOv0dchfhjj6AsnLOGU0cy3V6F2Tsi18z78N3U/82syq/Rl3qxNlnPGZmdwCY2e2qLu3w/HTbMXcsK8hXFCK7po1U2fypClqdjpObgVeZ2d2SlsEVzAfxHVgvij4+4QhF0DvGU7JhO/wH9mszO0BSt0m4kiwEz8zWkDdbyZpdl9ptrUZXLhiVMLcicKW8VDJ4uYSyqKSr8VyJOjV2jsB/kPuY2eORVsnpvsgh6XY85v+feLTOAtwP8NEC00gTx3LX3gU5ZgCbmNmjks7DP79eKIIm1S7vl/QxRko7lJaN6AyNrTDHZCwuaQkz+5+8Wc70+m+hkhXN7O40pn9LWjE5x6cimGGRIBRBj7CRkg1HmNmdNZ82jVR7Jt2vVXukG5Leykiz66WVml2XyWdmmS6nHU/C3Pl4DZgbGSnJXZYc9bciM46Z1c0WnWwuAuaamSUH7xfxlqQnMtY00tWxrHH0LjCzPSVtkV7/cjwrvBc0ibN/N6649sWjgnYoE1SNPgAdHID7Eubju+3STmkN+UNa2FyGBz78UdK2jG03m417C7w20eV4jaTSXU9bsm0TiqBHKLVGxC+yytaIOU7GJ5TVJJ1FtXOyCV/Aa6n0rNm1jSTMPYOOEMCKp30It4/XqT66mJo1yOkZ8lLZhaUVrLw43CpmZgDmDUOebZ7FXZRXUcex3Lh3QZqsV8FDeR/CQyvLCsc1oUm1y4+Z2adyY/oa5SGedfoA5LkQ2AA3a95M7zKL98J3L2sBJ5rZL+ROrDG74SafcVuyk0Eogh6RlEDTfr2HAr/CfQiGF6HrBV1j5yXtYmYHSdrAzH7X4Nx1QwAB/gb8vktI4eNDolmDnF5SVVyujDvlWeG/xZvB3CUvIlakvLo6lm18vQs2NrNNJf3GzI6TFxqcMFaj2qXGF+vftQ9AOveoZLV0eHng65QnqzXhTPM8m8d9O5lSL6DJZ9yWbOuEIugx8oYwh+C29NuBHTtj4zW2GNlVuP3zPMqLkTUhHzu/HsWx87vKyyLvK2mUH8O65DLUCQFMzGJka5/lSRT6E8xsymKpLaX2S3oe8HZGlwcpc+q+Fw9tfB1eQ2kuHiE2ZlXX0LHcpHfBDHnOynDyCdV5Tq8YT6x/3T4A40lWa0KTPJsmn3Fbsq0TiqD3fA9vXJ+FCh7B2PaB4ylG1oQ6sfN74tU28z826J7L0CQE8Gt1B6zmlTTboIlT9xFGfryL4dm4lxUJNnQsN+ldsD8e4bQC3ip1/xK5npPF+uPKsC61SlxYR7LaBIdaRJM8m+8w+jP+TsV525JtnYHh4V6VtwkAJP3azLbI3f+Vmb26RLZJl6smY1gSX1U9iofFHW8lBa0kbWVeB6hOZiiSflPyUJUjuM6Yr6ajkqaZvWu85xvnGM43s1fJezTMkXSxmW1SIns07vu4GI9xX87MCmPck2Oy0LFsZht2yK5JR+8CMyuL4SeFPz4PuDmLhBkvkr5Q9piZfWki534ikz7j5+KfcWXSXluybRM7gt7zD3mTjvPxFfO0FBeOmY2qbd+GEkicjvsftsFDEI/AK6IW8R81ywxtq0po00qabdAkW7hJjHtXx3KBubBO7wLMa/VMKOw4RxY18xbcOXspnvT07B6df5FA0p2M9EReFrjJSno/d5p6JY0x9bYtOxmEIug9WVPvNfHSAhfieQWTufVaAo+A2N3M3iupcEeSqJUZmkVF5X5Ej1MRFdWEtmrPN6FJtnCTGPc6juW2zYVdMbPDASS9zcyyYoInSZpQxNlEkGdWD+Cf2+96EUmWD+iQtBru3ymjjqm3bdnWCUXQY8xsH0lL45PlW/AIhV53IOvGTHxSmSdpbbwAXhm1MkOzqCjgXWZ2fp1BJAU0g3rllzsrafa8QXc3Gjp1m8S4d3Us2zh6F7TIspKem3YvAp7Wi5Om8OAlcQX3VeCrZvbrCvnv4uGrqwHr4juW9/ViLBlmdqtSWfUS7jWza5LsfElVZeXbkm2dUAQ9RtIpeOqyboUAABMSSURBVAG1V+AT4Nb4KjMvk9+a5qnKOWjCJ3AltC+e8NPZkjBP7czQxFzc7FWHruWXM0dzIuudPO5SwxNB0nvTaz/e1N3MCkNYzewkSWfjIa43WXUj9tqOZWr0LpiE62d34CfynJHbGWl2P1EOw0uo7IPnouyHRx6Vsb6Z7Z5CLF8pqUq2NhrdVnZlShLJErVNvS3Ktk4ogt6zspmdKOkD6eL9VadAw1yDxph3DlsCT+a6iNG9UTvJZ4Z2K2kAbkf/CaND78oa0tcpv3x42evQm1aVTfg0Xuvor90Ec7ud6cAP5a0Hy3Y7R+CO5fPoXjytq/KchOvnEnntrNWBG82sqv1kExbgSYgzzexySd1CJqfLiwDeIm+3ulSPxpHPkl+AV5sto4mpty3Z1glF0HtmStoauEbelKX04pV3BNuBXNy6mZU5dWujBlmLZnYf8Kmix0poUvvnAbqUX27R+TwebjKzG2rKNmk208Sx3KR3QVvXz9vI9aiQV6bthaluGHeGnyXPP+lWvPB43KE6B989lC0amnIDbu56DA+jXoDn8hTxDODImo7ctmRbJxRB79kP2BY3z+xKddeoQ5P8Nnh3sKom801oM2uxSUP6t9Ol/HKR85nupTna4n/J3PNHRhLgJrLbyWjiWG7Su6Ct66dRj4oGbIs33TlL0ivpktFtXlY7SyLrVo6iCT/ATZw74xF23wXKFiRnUL9PRluyrVNV6zwYB2b2Y3zyfznwYzM7s0L8bvOywfeb2Vx8Fd8L2sxaPAxXAq/BdzvHV8h+GtgmxadvDYzpWWxmK5nZyh23laZACQCcBZyCb9st3crIJuxTa0zYmWP5J7iSqUoeegewk5kdj5sLqnIp2rp+HjNPGBs2s2GgW4+KSiRlJUi2xsud74SbRLYpkT89/b1T0h3pdqekCfXryLEQN5k+3cxOoaKFqpmdY2bvwH1um+DJfsfK80EmRXYyiB1Bj5G0K26G+R3wKUmnmtm3SsQXSnoBXgJCeExzL6idcSrvJfxp3Gl2JnB1F/NIk4b0mRNuAI/6GLPwkPR5M/tKhwMPKC9H0Ws00su2btVYaNBspqFjuUnvgraun6Y9KrqxXPpby7dh46vb1YTF8J3URWlnUrqTUoM+GW3JTgahCHrP9ozUiF8Mjx0vUwR74G34DsS3q0f3aAz34GUS6mScHoM35NgMuCuNYbMK+doN6bO49Iw0GXaSVXwcT5nrXjGeXra1J+yGjuUmZS5auX6sZo+KBuc7Lv3dR9LT8GvmLfjCo5SG4cdN2AHf0R4NvJnqkNQjqd8noy3Z1glF0HsGzNtFYmaPSKpyiL3czI5K/89Ou4lesE9yTtZZyS1nZsdIeneKNupmLmzSkD4fGroSHg8+ChtpB3kt9ctb9xRLvWzNW4cuDSxe42lNJuwmjuWuvQtytHL9SNo+mZzOkbSSpLPN7PU9OG/X0OoOmnxutTGzvwB/SXdP7SJ+jpkdm92R9DUz+6wV98loS7Z1QhH0nkuSjfNifLt3aaeApO2BNwGvlJSFSE4DXoiv7iZKkxBPlBJqJK1Cril9EWZ2YTJHrIx3H6tykuZ3BAsYacpeRJPy1q0g6Th8Yr+PkV4A65aIN5mwmziWu5a5mITr5z2SHsDzKb5K7xrCdA2t7qDJ59ZTVFxmezpuVvrsZMhOJqEIeoyZfVLSG/HQze+b2S8KxM7B7dHL4SaRrJzAuJu0d9Bke7kr8H18vKcDH60STqGx36ZG97P0Y18OL6x1UxcTVZPy1m3xfDOr66xrUpeoSSRQnTIXbV8/b8NNdovjEWj/7NF5a4dWJ5p8br2mSZnttmQnjag+2iPkWamFpAiQouc8D8+ePFlei+YwM7ulpSEWIumTFc7sIvkrgS0t1/3MzAqLokl6Ox52eC3efGeumRU2B5d0KHAJI+Wt309aIdnY8tatIOl7wEFmpU1K8rKb4vb523F77wlm9skS2VmMdixfbz2omdPr66fDYb8U7is6E3rjuE9KIAut3gm4oiqqruBz+0uKZgp6TOwIeke+euH2uC0zMy+UcRwj5pKzcOfVFuXirfAGSd+xeo1QoEb3sxx7ALPN7D/JsXw+viIq4vnptmPuWNa2cbIyjO8Dfi/pP3TJZbBmdYmaOJab9C7o9fXT6bCvvUCog5n9WF6b6UV4tnVVL2Tw97+XvNTFaXidoibd9IKahCLoEWb2uH1P0oZVNvmO512e/l5Uw1HbBk0aocDo7mezKe5+lrHQUnkCM3tAJQXt0uOjEnokLWZm3TJPe82r8Pr/lX4SaFaXiGaO5Yso6V1AQVXYXl4/NtKXeitgPTP7oqRz6FHTFEm74GavZYFj8VyCXSqecgRuhtwb/1yOwxPdgh4TiqAd6trb7pUn11yG15x/oL0hldLUIVun+1nGTZK+zUhBu1Ibtrx14R6MlEt4BI8gmkyuZ6TFaDdq1yWimWO5a++CHG1dP/swkmm7LR5e3Ity2Nvh18GvzewASd2i2p5iZufLc02saiERTIxQBFPL+/BwzLfgdvRuBd/aGkMnpd2ospjwmuyAm0Begxe0q0o+2xnYHP88TqO3JQXqshFe4OweRnZHZRnOTeoSNXEs36nuvQsy2rp+HjGvQYWZ3afuxeHqMo30uab73ez9C+S9KabL6yqFImiJUAQ9IudoGwBeIM/MBCobtt8t6Uw84/RyoFdVHpvQNft3AswGppvZLpJOwleuZW0X7zCzOyUtZWYXSOpVyGJtzGzNBuJN6hI1aXjTtXdBbrxtXT9XpOs322mUtspsyMn47nA1SWcxendZxE64n2J54JP0rhx20EEogt5xWMn/pahBldC2qJn9O14OYqSw2N64XXjTEtn7JL0FXz1/iCnoUCbphXjo7Sp4lvUcK+8XXLt5TEPHcu3eBW1dP2b2sfRdCDjNzLqNuS6HAr/CI8gMuK2L/OvM7PHCdClhrhd5EkEHoQh6ROZoa0ibVUJroRrZvxPgETO7EcDMbpJUWo4CjxZ6Lj6ZfQL4WA/HUZcDgR3N7CpJL2Eko3UMTUxkDR3LTXoXtHL9SFoWeAqeq7CMpM+a2dcmcL7OfsxX4UlU51HQj3kSEuaCDkIRTC1tVgmtS2f27x49PPetadWamRiqnLBrAxuY2YFp4piKkrwDWckLM/tjiYN2PDRxLDfpXdDW9fMT3OfwQvyamGgbxXw/5qz7VlU/5nzC3OE5+V4lzAUdhCKYWmpXCW1zDJYrKtbjjN4dcLvuG3BncVVN+yZmpLZ4TF4y+eL02r1KXmriWG7Su6Ct62fAzD4sL4C2I/55jBtr2I/ZvMf3BcAFKYcgq/0U81VLxAc7tTSpEtpT0oS3EbC9pJenw9PwaozdCnHV5WXAH9INYANGbOWdNDEjtcUc3Dn5dVxxfbBH523iWM56F8zHd0lVTvO2rp9H005jyTTeXs0Td0g6hFxRPzMrjXSSdDDwRjz3IkvOrMpxCcZJKIKppUmV0F5zFb71fpCRBiwL8cYsveIj+I93Gl6O4RbKFUETM1IrmNmteFe1XtPEsdykd0Fb18/BwMdxG/5f8dIfveBYfOdXx0QGvnB4jplNxaKgr4haQ1OIpAuBf1GzSmhLY5iW/6FJWsnMmjRoqfs6M4FTzewtJY8vjpuRhNunD5+sujIaaZc5C1gCn6ieBfzTzFafjDHkxpLvXXAgFTX427x+UpbyCsCD1qMWipLOMbPXNZA/BY/cmqiPIuhC7AimlilpQtHB3BRtMhOfBK/HV++9Zga+yi3EzBbgvWMnHUudsCSdCHzWzP4qaWV6VFqhIU1q8Ldy/aTicPvjFWaXUkWF2YbcIu9odyUjJrKyxj/gLVFvlZT5V7qVPwnGSSiCKaRhlm5bvAmPRf8O/uM/pFq8PrmV9gB+rR3Qq3O3xHPM7K8AZnaHpGdPwRhq1+Bv8frZG28y/3iFWQrqHI2DWfiOT+l+VQc4mOScmn4mFEFwp5k9lDJ6b0gmnJ5g7fWcbYtrJJ0AXIE7JedNwRimsgZ/RpMKs7Ux7wA3iDu3r8adwFU8CnwDr8Z6WnrOrb0YSzCaUATB3yTNAf4r6WvA03t14lTFcgdGR4m8ofwZU85OeCmINYGTe5hR24R3MLoG/5FTMIYmFWZrE9VHF11CEQR74lmfp+HNYCbcgCTHt/Cic//u4TnbZBl8JyDgaZIuzIqvTSK1exe0SJMKs02I6qOLKKEIgjPMbOP0//d6fO4/m9kFPT5nmxyP28OPx/tNH4dX9pxMmvQuaIUWfQ9RfXQRJRRB8C9JuzE6BLHKgdeEn0m6DA8HJZ17Kkpt12VxG903+W1TMIYmvQueaPyAiVUfnfRaXP1CKILgHuAl6QbdIzmasOv/t3d3oZbVdRjHvw1OvmGiBGFGaOJ5jBAiNFArTKGL9MIQIS9CnDkGGkUmkmVQF4bSTTAYGKE0o6jdJRYDhi8Yao1KTcrQk4HK4IwwgzhYSE12vPivw+zJ6ey9xr1e9vk/H9icfTZrHX4HDvzOWuv3AvyEMkRttCYG7+1X2bP8e0pT28sDhNNmd8FCsX2npMco5cl/tf3ClFPeBu62/bvm+cKi3GJcOEkElTuKSo42Xrf9qzn+vK5MDt67oXnB7Jvm5qnN7oKFIuk6YMn2zZIekXSv7bV+vwc5VHL8BmVdZ9uNejGDJILKHUUlRxtvq+y8nWwg6rVzehb+n33JqyRtHCCWNrsLFs31HBo7fRnl91wrEZxo+zcAtu+XtNxxfNVKIoi2lRxtPDz9kPHQCPYmt9xdsGjesf0fANsH12qWa/y7WdP5B0oCycyhjiQRRNtKjpmNpHO6jTHsTW6zu2DRPNQ8/N5BWYv60JTjlykPi7dQpsH2XUZbjSSCaFvJsZ4NvjeZdrsLFort25ody0vAVtt/mXL835srpOMZ5nlNNZIIKtdUcjxKqeTwDJUc69nge5Npt7tgoUj6GHArzd+apBttv7LG8dsog/cOcGgfwWd6CLU6SQSVayqG7qB0074o6aZmLn+NlinVU0PuTZ55d8EC+gVlgf2TlFtwdwOXrnG8bJ/VQ1zVSyKIbZSSxacp3ay/BI5YRbPe2X6LUuEEJREMEcOiPVdp47iJ+U2/lnTjlON3SJJtTzku3qckgvin7e3N+99Kmufy+ohJx0g61/YLks6d4fgDwLOS/kFza8j2R7sNsU5JBLFb0g+AxyiTJv8l6Usw11ETEVA6ze9plv68RhkhsZZLgFNXS06jO0kEsQKc1bygLEW5mvmOmojA9p+A81uc8jfgIwywv7o22VkcSPoQh+8MGGIZSqxzTSnoLRz+t/Z/m+UkvQScQZmHtUJuDXUmVwSVk7SV8pA4JXrRte9SVqPO1Cxn++xuw4lVSQRxTkr0oietmuWaB8r3UHZqvw5sam4vxZwlEURK9KIvbZvltgDLtndK+jTwM0qDWcxZEkGkRC/60rZZ7gO2dwLY/rOkVA91JIkgUqIXnZJ0nu3ngL0tT31H0uWURUFfYI4DEeNwSQSREr3o2qXAc5Sy5EnTSpQ3UaaP3kGZPnpdJ9FFykdrlxK96FNKlccpiSAienGkUmXb7ylVlrSX8k/JscAJlHLT04F9ts/oLeCK5NZQ5SR9CrgLOIWyE/bF1fWAEXM2U6my7dMAJN0HfM/27mYsxU+7DrBWG4YOIAa3BbgW2EcZC/yjQaOJ9WyHJLU4/hO2dwPY3gN8vJuwIlcEsboJasX2PklvDR1PrFttS5V3SbqXstryQuD5HmKsUhJBvNFs4zpR0leBN4cOKNattqXKXwe+ApwNPDCxyyDmLLeGYjNwJrAfOI9SshfRhdVS5VmdQrkS+BxwgaSTO4kqckUQfMv2LavfSLqdsqoxYt4uAl6RNGup8jbg4ebr54GtwBWdR1mhJIJKSdpM2dH7SUlfbj7eAHyQJILowFFMEz3O9l3N+52Srpx3TFEkEdTrPuBR4PvAj5vP/gukwSc6Mes0UUlLzdv9kq6ijJj4LPByX7HWJg1lEdELSY8D356cJmr7PdNEm+OOZMX2JZ0GWalcEUREX2aaJmr7i0f6XNLGLoOrWRJBRPSl1TTRpqz5O8BGSt/BQWBprXPi6KR8NCL6sgm4BngK+BrTp4l+A7gY2E7pft/VZXA1yxVBRPTC9qvAVS1O2WN7r6STbD8h6YddxVa7JIKI6NT7mCZ6QNIVwEpzm+jDXcdaq9waiohO2T6taRzbDizZXqKMjfjjlFOXgVcpfS1LwDc7DbRiKR+NiF5Ietr2hRPfP2P7giFjiiK3hiKiL5kmOlK5IoiIXkjawKFporsyTXQ88owgIvqSaaIjlUQQEX3ZBrwE3Aq8RpkmGiOQZwQR0ZdMEx2pJIKI6FSmiY5fEkFEdO3nE+9vaF5QmsxiBFI1FBGDkLTR9sGh44hcEURETzJNdLxSNRQRfck00ZFKIoiIvuyxvRc4yfYTQPoIRiKJICL6kmmiI5VEEBF9yTTRkUrVUERE5XJFEBFRuSSCiIjKJRFERFQuiSAionLvAs+yPBdqGnSEAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "viz = MissingValuesBarVisualizer(features=headers.Attribute.values)\n", "viz.fit(matrix)\n", "viz.show()" ] }, { "cell_type": "code", "execution_count": 210, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 1.00000000e+00, 1.00000000e+00, 5.34817000e+05,\n", " 3.92000000e+01, 8.80000000e+01, 2.00000000e+01,\n", " nan, nan, 4.00000000e+00,\n", " 1.00000000e+00, 3.00000000e+00, 4.00000000e+00,\n", " 2.00000000e+00, nan, nan,\n", " nan, 4.00000000e+00, 2.00000000e+00,\n", " 5.00000000e+01, 8.50000000e+01, 2.00000000e+00,\n", " 2.00000000e+00, 3.00000000e+00, 2.00000000e+00,\n", " 2.20800000e+03, 0.00000000e+00, 0.00000000e+00,\n", " 2.00000000e+00])" ] }, "execution_count": 210, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matrix\n", "nan_matrix = matrix.astype(float)\n", "nan_matrix[0]" ] }, { "cell_type": "code", "execution_count": 266, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 271, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/var/pyenv/versions/3.5.2/envs/yb-dev/lib/python3.5/site-packages/matplotlib/figure.py:418: UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure\n", " \"matplotlib is currently using a non-GUI backend, \"\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nrows, ncols = matrix.shape\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 290, "metadata": {}, "outputs": [], "source": [ "# yellowbrick.features.missing\n", "# Feature importance visualizer\n", "#\n", "# Author: Nathan Danielsen \n", "# Created: Fri Mar 24 8:17:36 2018 -0500\n", "#\n", "# Copyright (C) 2018 District Data Labs\n", "# For license information, see LICENSE.txt\n", "#\n", "# ID: missing.py [] nathan.danielsen@gmail.com.com $\n", "\n", "\"\"\"\n", "Implementation of missing values visualizers\n", "\n", "To Include:\n", "- Bar\n", "- Density Matrix (by time, specifiable index)\n", "- Heatmap\n", "\n", "\"\"\"\n", "\n", "##########################################################################\n", "## Imports\n", "##########################################################################\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from yellowbrick.utils import is_dataframe\n", "from yellowbrick.utils import is_structured_array\n", "from yellowbrick.features.base import DataVisualizer\n", "\n", "# from yellowbrick.style.colors import resolve_colors\n", "\n", "\n", "\n", "##########################################################################\n", "## Feature Visualizer\n", "##########################################################################\n", "\n", "\n", "class MissingValueDensity(DataVisualizer):\n", " \"\"\"\n", " \"\"\"\n", "\n", " def __init__(self,\n", " ax=None,\n", " x=None,\n", " y=None,\n", " features=None,\n", " classes=None,\n", " color=None,\n", " colormap=None,\n", " **kwargs):\n", " \"\"\"\n", " \"\"\"\n", "\n", " super(MissingValueDensity, self).__init__(ax, features, classes, color,\n", " colormap, **kwargs)\n", "\n", "\n", "\n", " def fit(self, X, y=None, **kwargs):\n", " \"\"\"\n", " TODO if y, then color code the missing values in the chart?\n", "\n", "\n", " \"\"\"\n", " nrows, ncols = df.shape\n", "\n", " # Handle the feature names if they're None.\n", " if self.features_ is not None and is_dataframe(X):\n", " X = X[self.features_].as_matrix()\n", "\n", " # handle numpy named/ structured array\n", " elif self.features_ is not None and is_structured_array(X):\n", " X_selected = X[self.features_]\n", " X = X_selected.copy().view((np.float64, len(X_selected.dtype.names)))\n", "\n", " else:\n", " pass\n", "\n", " if self.features_ is None:\n", " self.features_ = range(nrows)\n", "\n", " if self.classes_ is None:\n", " # TODO: Is this the most efficient method?\n", " self.classes_ = [str(label) for label in np.unique(y)]\n", "\n", " nan_matrix = X.astype(float)\n", " self.nan_col_counts = [np.count_nonzero(np.isnan(col)) for col in nan_matrix.T]\n", "\n", " self.nan_locs = np.argwhere(np.isnan(nan_matrix))\n", " \n", " # Draw the instances\n", " self.draw(X, y, **kwargs)\n", "\n", " # Fit always returns self.\n", " return self\n", "\n", " def draw(self, X, y, **kwargs):\n", " \"\"\"Called from the fit method, this method creates a scatter plot that\n", " draws each instance as a class or target colored point, whose location\n", " is determined by the feature data set.\n", " \"\"\"\n", "\n", " width = 0.5 # the width of the bars\n", "\n", " x, y = list(zip(*self.nan_locs))\n", "\n", " self.ax.scatter(x, y, alpha=0.5, marker=\"|\")\n", "\n", " def finalize(self, **kwargs):\n", " \"\"\"\n", " Finalize executes any subclass-specific axes finalization steps.\n", " The user calls show and show calls finalize.\n", "\n", " Parameters\n", " ----------\n", " kwargs: generic keyword arguments.\n", "\n", " \"\"\"\n", " # Set the title\n", " self.set_title(\n", " 'Dispersion of Missing Values by Feature'\n", " )\n", " ind = np.arange(len(self.features_)) # the x locations for the groups\n", " # Remove the ticks from the graph\n", " self.ax.set_xlabel('Count')\n", " self.ax.set_yticks(ind)\n", " self.ax.set_yticklabels(self.features_)\n", " # Add the legend\n", " self.ax.legend(loc='best')\n" ] }, { "cell_type": "code", "execution_count": 291, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pylab import rcParams\n", "rcParams['figure.figsize'] = 5, 10\n", "\n", "viz = MissingValueDensity(features=headers.Attribute.values)\n", "viz.fit(matrix)\n", "viz.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.3" } }, "nbformat": 4, "nbformat_minor": 2 }