{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Using Python Data Science packages to manipulate and visualize data\n", "\n", "In this Jupyter notebook we will:\n", "- Go over several popular Python packages used for Data Science\n", "- Go through the example of analyzing avocado prices using these popular Python Data Science packages\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 1: An overview of popular Python Data Science packages \n", "\n", "Let's very briefly discuss several popular Python Data Science packages. The packages we will discuss are:\n", "- NumPy\n", "- pandas\n", "- Matplotlib\n", "- seaborn\n", "\n", "We can discuss additional Python packages, particular for modeling and prediction, later in the workshop.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 1.1: NumPy\n", "\n", "[NumPy](https://numpy.org/) is a library that adds support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. In many ways, it's functionality is similar to MATLAB's basic functionality. \n", "\n", "The core data structure of NumPy is the `ndarray`. ndarrays are similar to Python lists but all elements in an ndarray must of the same type; e.g., all elements are numbers, or all elements are strings, etc.\n", "\n", "Let's create a few ndarrays below!\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4 5 6 7 8 9]\n" ] } ], "source": [ "import numpy as np \n", "\n", "x = np.array([1, 2, 3])\n", "\n", "print(np.arange(10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 1.2: pandas\n", "\n", "[pandas](https://pandas.pydata.org/) is a package for data manipulation and analysis that has two main data structures:\n", "\n", "1. `Series`: One-dimensional ndarray with an index for each value. They are similar to a named vector in R.\n", "\n", "2. `DataFrame`: Two-dimensional, size-mutable, potentially heterogeneous tabular data. They are similar to an R data frame. DataFrames can also be thought of as multiple Series of the same length with the same index, or as muliple ndarrays with the same index.\n", "\n", "Here are some documents that show translations between Data 8 datascience package and pandas\n", "- [googledoc I created](https://docs.google.com/spreadsheets/d/1GeghI6Md4QjJcugEEa4a_N_jQNGZRdxqFrynvJgq1CM/edit#gid=0)\n", "- [babypandas documentation](https://pypi.org/project/babypandas/)\n", "\n", "\n", "Let's load our avocado data as a DataFrame and look at the first three rows using the `df.head(3)` method.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DateAveragePriceTotal Volume404642254770Total BagsSmall BagsLarge BagsXLarge Bagstypeyearregion
012/27/20151.3364236.621036.7454454.8548.168696.878603.6293.250.0conventional2015Albany
112/20/20151.3554876.98674.2844638.8158.339505.569408.0797.490.0conventional2015Albany
212/13/20150.93118220.22794.70109149.67130.508145.358042.21103.140.0conventional2015Albany
\n", "
" ], "text/plain": [ " Date AveragePrice Total Volume 4046 4225 4770 \\\n", "0 12/27/2015 1.33 64236.62 1036.74 54454.85 48.16 \n", "1 12/20/2015 1.35 54876.98 674.28 44638.81 58.33 \n", "2 12/13/2015 0.93 118220.22 794.70 109149.67 130.50 \n", "\n", " Total Bags Small Bags Large Bags XLarge Bags type year region \n", "0 8696.87 8603.62 93.25 0.0 conventional 2015 Albany \n", "1 9505.56 9408.07 97.49 0.0 conventional 2015 Albany \n", "2 8145.35 8042.21 103.14 0.0 conventional 2015 Albany " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "avocado = pd.read_csv(\"avocado.csv\")\n", "avocado.head(3)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 1.3: Matplotlib\n", "\n", "[Matplotlib](https://matplotlib.org/) is a plotting library. Each plot has a figure and a number of different subplots which are called \"axes\". Matplotlib is based on MATLAB's plotting syntax and it can be roughly thought of as being similar to base R's graphics. \n", "\n", "Matplotlib has two interfaces for plotting:\n", "\n", "1. A \"pylab\" procedural interface based on a state machine that closely resembles MATLAB. Updates are made to the most recent axis plotted on.\n", "\n", "2. An object-oriented API. Updates are made to the axis object that is selected. \n", "\n", "Generally the objected oriented interface is preferred although they are rather similar (a few of the functions/methods are named slightly differently)\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "\n", "# using the pylab interface\n", "plt.subplot(1, 2, 1)\n", "plt.plot([1,3,10]);\n", "plt.subplot(1, 2, 2)\n", "plt.plot([2,6,12]);\n", "\n", "\n", "#using the object oriented interface\n", "fig, ax = plt.subplots(1, 2)\n", "ax[0].plot([1, 3, 10]);\n", "ax[1].plot([2,6,12]);\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 1.4: seaborn\n", "\n", "seaborn is a visualization library built off Matplotlib, but it provides a higher level interface that uses pandas DataFrames. One can think of it as being somewhat similar to ggplot. \n", "\n", "There are \"axes-level\" functions that plot on a single axis and \"figure-level\" functions that plot across multiple axes. Figure level plots are grouped based on the types of variables being plotted; e.g., a single quantitative variable, two quantitative variables, etc. The image below shows different categories of plots that can be created in seaborn.\n", "\n", "\n", "\n", "Note: to use the seaborn functions below you will have to use seaborn version 0.11 or higher which might require updating your packages in conda. This can be done using: \n", "- conda activate facwavdev\n", "- conda update seaborn\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAboAAAFgCAYAAADNUrzMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABY1UlEQVR4nO3dd3xV9fnA8c+TvfeGQFgiiIoIiuLAgUVri7Z1YOtoba1Wa23t0P467B62Wlfds3W2thYVRVScbDJIQhKyCSFA2AEySPL9/XFP4BKzIPfcc8fzfr2uufec7znnOerNk3PO9/t9xBiDUkopFahCnA5AKaWUspMmOqWUUgFNE51SSqmApolOKaVUQNNEp5RSKqCFOR2AN8ydO9e8/fbbToehlAoO4nQA6nBBcUW3bds2p0NQSinlkKBIdEoppYKXJjqllFIBTROdUkqpgKaJTimlVEDTRKeUUiqgaaJTSikV0DTRKaWUCmia6JRSSgU0WxOdiMwVkQoRqRKRO/pYLyJyv7V+rYhMs5ZHichKESkSkVIR+ZXbNneJSKOIFFqvi+w8B6WUUv7NtinARCQUeAiYA2wEVonIAmPMOrdmFwITrNepwMPWz3bgXGPMXhEJBz4RkbeMMcut7e41xvzFrtiVUkoFDjuv6E4BqowxNcaYDuAlYF6vNvOA54zLciBJRLKtz3utNuHWS0uhK6WUOmJ2JroRQIPb543WsiG1EZFQESkEtgKLjTEr3NrdYt3qfEpEkvs6uIjcICKrRWR1c3PzME9FKaWUv7Iz0fU1g3fvq7J+2xhjuowxU4GRwCkiMsVa/zAwDpgKNAF/7evgxpjHjDHTjTHT09PTjzx6pZRSAcHORLcRyHX7PBLYdKRtjDG7gA+AudbnLVYS7AYex3WLVAWQXbt28bmLLiYhMZkf/fgndHd3Ox2SUsqP2ZnoVgETRGSMiEQAVwILerVZAFxj9b6cCew2xjSJSLqIJAGISDRwPlBufc522/5SoMTGc1AOuOHG71C3N4Qzf/gIL76+mFu//wOnQ1JK+THbEp0xphO4BVgElAGvGGNKReRGEbnRarYQqAGqcF2dfcdang0sEZG1uBLmYmPMG9a6P4tIsbXuHOD7dp2D8r6FCxey5JNlHH/594nPHMWMb/2OZ5/7B6WlpU6HppTyU2JM4HdmnD59ulm9erXTYaghmHPh59mTeRJjTv/8wWWV779CwrZSlrz7joORKTVkWmHcx+jMKMpnbNmyhaWffMzIaecctnzsWZeSn19AWVmZQ5EppfyZJjrlM/75z38ycurZhEfFHLY8NCycUadfzAMP/d2hyJRS/kwTnfIZL7zyKlknndvnurxZX+Cf/3ye/fv3ezkqpZS/00SnfMLevXspLS4ifcKJfa6PTc0mLe9Y3njjjT7XK6VUfzTRKZ/w8ccfkzV2MmGR0f22STvxHJ795wtejEopFQg00SmfsGjxYhLHnTRgm5FTz+KD99+npaXFS1EppQKBJjrlExa98x5pE08esE1EbAJZE6eyYEHveQeUUqp/muiU41paWqitriQlb9KgbVOnnMnL//6PF6JSSgUKTXTKcfn5+aSPnkBoWPigbXOOP53333uX9vZ2L0SmlAoEmuiU41avXk38yIlDahuVkELyiDF8+OGHNkellAoUmuiU4z5ZtoL43KElOoDUyafz6n9fsy8gpVRA0USnHLdq1SpSRg/+fK5H1pTTef2NNwmGeVqVUsOniU45aufOnWzf1kx81qghb5OYM5bW9g4qKyttjEwpFSg00SlH5efnk5E3kZCQ0CFvIyJkTT6Vt956y8bIlFKBQhOdclRxcTGxWWOPeLuUY0/hvwvetCEipVSg0USnHLW6oIiYrDFHvF3msdNZsXwpra2tNkSllAokmuiUo4rWFpM4YtwRbxcRE0/6qAksXbrUhqiUUoFEE51yTHd3N1UVZSTmHPkVHUDi+JN4+x2tOq6UGpgmOuWY2tpaouMTiYiJP6rt0ydO561F73o4KqVUoNFEpxxTUlJC8lHctuyROuY4qivXs3PnTg9GpZQKNJrolGPWrl1LVGbeUW8fGh5BzsQTWbJkieeCUkoFHE10yjEFxaXEZeUNax/xeSfy7vua6JRS/dNEpxxTVlZOQtboYe0j7ZipvPf+B54JSCkVkDTRKUd0d3dTV11JfObQp/7qS8roY9lQX8eOHTs8FJlSKtBoolOOaGxsJCI69qh7XPYICQ0je8LxfPzxxx6KTCkVaDTRKUeUl5eTkpPnkX3F553Ae/qcTinVD010yhHl5eVEpQ/vtmWP1PEnsOSjTzyyL6VU4NFEpxyxtnQd0ekjPbKvlLxJVJav03kvlVJ90kSnHFFSWkb8MHtc9giLiCJt1HhWr17tkf0ppQKLJjrliKrK9cPucekuYdRkPv30U4/tTykVODTRKa/bv38/u3ftICYl02P7TB57PO9/qM/plFKfpYlOeV1VVRUpmSOPqKr4YFLHTmHlimUYYzy2T6VUYNBEp7yusrKS+Ixcj+4zJjkDQsKor6/36H6VUv7P1kQnInNFpEJEqkTkjj7Wi4jcb61fKyLTrOVRIrJSRIpEpFREfuW2TYqILBaRSutnsp3noDyvsrKSiJQcj+83fcxkVq1a5fH9KqX8m22JTkRCgYeAC4HJwHwRmdyr2YXABOt1A/CwtbwdONcYcyIwFZgrIjOtdXcA7xljJgDvWZ+VHykpq/DY0AJ30TkTWLFypcf3q5Tyb3Ze0Z0CVBljaowxHcBLwLxebeYBzxmX5UCSiGRbn/dabcKtl3Hb5lnr/bPAJTaeg7JBecV64jM8n+iSR0/ik2Wa6JRSh7Mz0Y0AGtw+b7SWDamNiISKSCGwFVhsjFlhtck0xjQBWD8z+jq4iNwgIqtFZHVzc/Nwz0V5UG11lcef0QGk5B1LcVEB3d3dHt+3Usp/2ZnopI9lvbvE9dvGGNNljJkKjAROEZEpR3JwY8xjxpjpxpjp6enpR7KpslFLSwt7W/YQneT5/yaRcUlExSWyfv16j+9bKeW/7Ex0GwH3P9tHApuOtI0xZhfwATDXWrRFRLIBrJ9bPRaxsl11dTUp2blIiD3/66WOPpbCwkJb9q2U8k92JrpVwAQRGSMiEcCVwIJebRYA11i9L2cCu40xTSKSLiJJACISDZwPlLttc631/lrgfzaeg/Kw6upq4tJ738H2nKjMMazJL7Bt/0op/xNm146NMZ0icguwCAgFnjLGlIrIjdb6R4CFwEVAFbAf+Lq1eTbwrNVzMwR4xRjzhrXuj8ArInI9sAG4zK5zUJ5XVVVly9CCHokjx7Nyzbu27V8p5X9sS3QAxpiFuJKZ+7JH3N4b4OY+tlsLnNTPPrcD53k2UuUtZRXriU61L9El5U5g2b/usW3/Sin/ozOjKK+qqLT31mVMciatra1s3aqPbpVSLprolFfV1dbYmuhEhPS8YygqKrLtGEop/6KJTnlNe3s727ZuISYly9bjxGSNo6BAO6QopVw00SmvqaurIzEtk5BQWx8NE5c9ljWFa209hlLKf2iiU15TXV1NYqbnZ0TpLSFnDMUlpbYfRynlHzTRKa+prq4mMiXb9uMkZOdRW7VepwJTSgGa6JQXra+sIiLZ/kQXER1HdFyC1qZTSgGa6JQXlVdWE5dm3xg6d8kjxlJaqrcvlVKa6JQX1dbUEJvunUQXlTGadevWeeVYSinfpolOeYUxho0b6oj10hVdbGae9rxUSgGa6JSXbN26lfDIKCKi47xyPO15qZTqoYlOeUVNTQ1JmZ6vKt6fhMxR1NVU4ZpOVSkVzDTRKa+oqakhJtX+Hpc9ImITCAuPoKmpyWvHVEr5Jk10yiuqq6sJ98LQAnfJOXlabVwppYlOeUd5ZTXRXryiA4hJz6WiosKrx1RK+R5NdMorqqpriLOxDl1fIlJHULquzKvHVEr5Hk10yivq62q9NoauR0LmKErKyr16TKWU79FEp2zX0dHBjm3NxCRnePW48VmjqNRndEoFPU10ynYbNmwgMTXD9vI8vcWmjWBL0yY6Ojq8elyllG/RRKdsV1tbS7yXb1sChIaFk5ieRU1NjdePrZTyHZrolO1qa2uJsrmqeH8SMkZSXV3tyLGVUr5BE52yXVV1DeGJziS6yJQcqqqqHDm2Uso3aKJTtquoqiYmzbtj6HpEpuRQVqEdUpQKZprolO1qamq9Voeut/iMkZSv1ys6pYKZJjpluwYvlufpLS59BNXVmuiUCmaa6JSt9u3bR+u+fUQlpDhy/Ni0bDY3bqSzs9OR4yulnKeJTtmqrq6OpIwcRMSR44eGRxKfksaGDRscOb5Synma6JSt6urqHBlD5y4xI1eHGCgVxDTRKVvV1tYSkZTpaAxRqTlUVlY6GoNSyjma6JStqmpqCHc40UUkZ1KlV3RKBS1NdMpW66ucG1rQIzY1h/JKnQZMqWCliU7Zqra2lphUZ2ZF6RGbnqPzXSoVxDTRKVs1Nmwg1suVxXuLS8uhcUO9ozEopZxja6ITkbkiUiEiVSJyRx/rRUTut9avFZFp1vJcEVkiImUiUioi33Pb5i4RaRSRQut1kZ3noI7enj176OhoJzIuydE4ImIT6ezqYufOnY7GoZRyhm2JTkRCgYeAC4HJwHwRmdyr2YXABOt1A/CwtbwTuN0YMwmYCdzca9t7jTFTrddCu85BDU9dXR3JGSMcG0PXQ0RIzhxBbW2to3EopZxh5xXdKUCVMabGGNMBvATM69VmHvCccVkOJIlItjGmyRiTD2CMaQHKgBE2xqpsUFdXR6zDz+d6xKblaKJTKkjZmehGAA1unzfy2WQ1aBsRyQNOAla4Lb7FutX5lIgk93VwEblBRFaLyOrm5uajPAU1HHV1dUQk+0aii0jWAqxKBSs7E11f96vMkbQRkTjgVeA2Y8wea/HDwDhgKtAE/LWvgxtjHjPGTDfGTE9PTz/C0JUnVFXXOD5YvEdkchYVVTqWTqlgZGei2wjkun0eCWwaahsRCceV5J43xvynp4ExZosxpssY0w08jusWqfJBVTW+c+syLj2H9ZWa6JQKRnYmulXABBEZIyIRwJXAgl5tFgDXWL0vZwK7jTFN4uq98CRQZoy5x30DEXHvq34pUGLfKajhqK2rc3wMXY/Y1Gw26BADpYJSmF07NsZ0isgtwCIgFHjKGFMqIjda6x8BFgIXAVXAfuDr1uazgKuBYhEptJb91Oph+WcRmYrrFmcd8G27zkENT2PDBiY6PIauR0xKFk2NDRhjHO8FqpTyLtsSHYCVmBb2WvaI23sD3NzHdp/Q9/M7jDFXezhMZYOWlhba29scH0PXIzwqhojIGLZu3Upmpm88N1RKeYfOjKJsUV9fT7KDdej6kpiRQ11dndNhKKW8TBOdskVdXR2xab5x27JHTEqWJjqlgpAmOmWLuro6In1kaEGP8KRMTXRKBSFNdMoWNbW1hCdmOB3GYaKSs1hfpYPGlQo2muiULdZX1frMGLoesWlZVNXoNGBKBRtNdMoWrjF0vvWMLjY1m/r6OqfDUEp5mSY6ZYvGjc7XoestJiWLpo2usXRKqeChiU553L59+9i/by9R8X3Ot+2Y8KgYIqKi2bp1q9OhKKW8SBOd8rgNGzaQnJ6DhPje/16JGTnU1+tUYEoFE9/7TaT8Xn19vc91ROkRk5yliU6pIKOJTnlcXV0dkcm+NYauR3hShiY6pYKMJjrlcTW1dYQn+maii0zK0CEGSgUZTXTK49ZX1xCT4puJLiY1i8pqTXRKBRNNdMrjfHGeyx6xKVls0FuXSgUVTXTK4zZu2EBsio92RknNZlNjg9NhKKW8SBOd8qj29nZ279pJVFKa06H0KSImnu7ubnbt2uV0KEopL9FEpzyqoaGBxLQMQkJCnQ6lTyJCUrqOpVMqmGiiUx5VX19PvI9N/dVbbKqOpVMqmGiiUx7ly2PoekToWDqlgoomOuVRtXV1PleHrrfwxAxqtQCrUkFDE53yqMrqWqJ9tMdlj9jULCpr6pwOQynlJZrolEfV1Nb57DyXPWJSsqir01uXSgULTXTKozY2bPCLRNfYsMHpMJRSXqKJTnlMZ2cn27ZuIdrHO6NEJ6bSsmc3bW1tToeilPICTXTKYzZt2kRcYjKhYeFOhzIgCQkhKS2TDRv0qk6pYKCJTnlMXV0dCem+PYauR5wfj6Xr7Ozk8ccf55IvX87137qBbdu2OR2SUj4tzOkAVOCor68nOsU/El1ksn9e0e3atYszZ59LSVHBwWVPPfE4S5YsYfbs2c4FppQP0ys65TG1tbWEJfj2GLoe/jiWrrW1lbPPOY+SogJSEuMo+vUZlPz2LADOOeccWlpaHI5QKd+kiU55TGVNHdE+Woeut+gU/6tLd+N3bmFtYT5xsTE0/HEWJ+QmctyIeHY+NAeAhIQEhyNUyjdpolMeU11TS4yPDy3oEZuSRa0fjaV75ZVXeO6Zp0BCWHL7ScREHXrqkBQTwXPfOhGATz/91KkQlfJZ+oxOeUzDhnqOP98/ntHFpGZR7ifP6LZu3cq3v3MzEhrOZSenM31MEgAdnV08/m459dta+eqsPADOOOMMjDHOBauUD9IrOuUR3d3dbGnaRIyPT//VIyY5g21bN9PV1eV0KIP69nduoYMIIsLDePb64wFo2d/B7N99xJ1vNvJ0TQen/n4l3zjN9Xy0tLTUyXCV8jl6Rac8YvPmzUTHxRMWEel0KEMSGh5BbEISmzZtIjc31+lw+rVw4UI++nQZB9r2ccecEURFuL6y1z+xivJ9whefu5yImAjqPqnjhT9+AMC5557Lli1bHIxaKd9i6xWdiMwVkQoRqRKRO/pYLyJyv7V+rYhMs5bnisgSESkTkVIR+Z7bNikislhEKq2fyXaegxqauro6EtNznA7jiCSkZ/v0WLp9+/bxzW/fROSIYwmnk7sumQDA4sIGXi/ZzXl/vpCImAgA8s7IY+RZYwDXrU5/uFJVyltsS3QiEgo8BFwITAbmi8jkXs0uBCZYrxuAh63lncDtxphJwEzgZrdt7wDeM8ZMAN6zPiuH1dXVEZ3sH7cte0QnZ/p0ovvFL+8iNncS2ysL+MmcHEJCXF/X775Yzug5xxCfHX9Y+1k/PJPYaFdl99tvv93r8Srlq4aU6ETkVRH5vIgcSWI8BagyxtQYYzqAl4B5vdrMA54zLsuBJBHJNsY0GWPyAYwxLUAZMMJtm2et988ClxxBTMom9fX1hCf5x9CCHmGJGdT56Fi6kpISHn/yacIzJxByoJWffWE8AIsKGmjY1ckpN57ymW1CQkIY+wXX34P33XefV+NVypcNNXE9DFwFVIrIH0Xk2CFsMwJocPu8kUPJashtRCQPOAlYYS3KNMY0AVg/+xyhLCI3iMhqEVnd3Nw8hHDVcFRUVROZ7B+DxXtEJWdS5YN16YwxXH/DjUy86OvUffxfbjwj4+DV3K9fryJz5ijCIvp+vD7tumkH3+/bt88r8Srl64aU6Iwx7xpjvgpMA+qAxSKyVES+LiL9zeArfe3qSNqISBzwKnCbMWbPUGJ1i/kxY8x0Y8z09PT0I9lUHYWq6hri0vzrGV1sahbVtXVOh/EZL7zwAg1bdiBx6Rxo2c6fLp8EQGXTLlZv2M/Mm0/rd9uQkBDGnJUHwDXXXOONcJXyeUO+FSkiqcB1wDeBAuA+XIlvcT+bbATcu7ONBDYNtY2VQF8FnjfG/MetzRYRybbaZANbh3oOyj719fXEpvnHGLoeMSlZbNjgW8/o9u/fzw9++GMmffl7VLz9DF+emkxEmOtr+vDiSpJyk4lKjBpwH9O/OQOA//znPwO2UypYDPUZ3X+Aj4EY4AvGmC8aY142xnwXiOtns1XABBEZIyIRwJXAgl5tFgDXWL0vZwK7jTFNIiLAk0CZMeaePra51np/LfC/oZyDsk93dzdbNjUS4ycTOveITc2mqbHBpwZY/+nuu4kffRzdoRHs3VTF36+eAkBXVzfPrdjGMV86btB9xGXEEZPgGuaxf/9+W+NVyh8M9YruCWPMZGPMH3qej4lIJIAxZnpfGxhjOoFbgEW4OpO8YowpFZEbReRGq9lCoAaoAh4HvmMtnwVcDZwrIoXW6yJr3R+BOSJSCcyxPisHNTU1ER2X4Ddj6HqER8UQERmNrzzD3bFjB/fe+zeO/cK3KH3zGWaNSyQlzjV8YFFhA+1GGHf+uCHta8p815Rgt9xyi23xKgUgIgtFJMnpOAYy1AHjv8WVlNwtw3Xrsl/GmIW9tzPGPOL23gA397HdJ/T9/A5jzHbgvCFFrbyitraWxAz/ej7XI9EaS5eR4XxHmr/ccw/ZJ5wJYZFsW7eUv9916FncM59uJGly5sFOKYOZ9IVJrHx0JU8//TRPPfWUXSErhTHmosFbOWvAb42IZInIyUC0iJwkItOs12xctzGVco2h87Pblj1iUrJ9YohBS0sLDz74dyZ87mqK336BsRlxTBnpqkbQ0dnFwtLdTLn8hCHvLyQshJgk17O87u5uW2JW/kNEYkXkTREpEpESEblCROpE5E8istJ6jbfapltDylZZr1nW8jgReVpEiq0JPr5sLa8TkTTr/desfRWKyKMiEmq9nrGOWywi3/f2+Q/25+HngL/g6iRyD/BX6/UD4Kf2hqb8RW1tLeGJ/jWGrkd4UqZPJLp//OMfZEw8iejkTBqXv8Fvvph3cN3rq+oJjQgj+8Qj+2Pi5BtcnVJ++9vfejJU5Z/mApuMMScaY6YAb1vL9xhjTgEeBP5mLbsPuNcYMwP4MvCEtfznuPpRHG+MOQF43/0AIjIJuAKYZYyZCnQBXwWmAiOMMVOMMccDT9tziv0bMNEZY541xpwDXGeMOcft9cVePSFVEKuoqvGbOnS9RSZnOF6XzhjDvfc/SO7pl7B+6SKiQmH+zEPDSf+xrJGk44581pmxs8cCcNddd3kqVOW/ioHzrSu4M40xu63lL7r97LlXfj7woIgU4ur8lyAi8dbyh3p2aIzZ2esY5wEnA6usbc8DxuLqhzFWRB4QkbnAEQ0V84QBn9GJyNeMMf8E8kTkB73X99EjUgWh6poaYk+e6nQYRyU2NZuqyvcHb2ijpUuXsntvK9OOPZnVr1zLNaekHlzX0dnFO+UtzP79rCPeb0hICOFRYRxo6/RkuMoPGWPWW4+hLgL+ICLv9Kxyb2b9DAFOM8a0uu/D6g0/UBdlAZ41xtz5mRUiJ+K6Q3gzcDnwjaM6kaM02K3LWOtnHBDfx0sp6uvqiE31z2d0sanZ1DtcgPXZf/yT7BmfY2fTBvZtqeP3X5l4cN1b+Q2ER4SRdfzRzSPaM6bu9ddf90isyj+JSA6w37pw+QuHOhJe4fZzmfX+HVw95nu2ndrP8t4T6r8HfEVEMqz1KSIy2np+F2KMeRXX7c8BOzHaYcArOmPMo9bPX3knHOVvDhw4QPOWzX5TWby3mNQsNm3cgDEG1x+s3tXV1cW/X32V0259kLWLX2FSTjxJVkUCgBdXNJJw7NHP7HPMRcew7MFlXHfddWzfvt0TISv/dDxwt4h0AweAm4B/A5EisgLXRc98q+2twEMishZXjvgIuBFX7/uHRKQE1/O3XwEHH2EZY9aJyM+Ad6x5kQ/guoJrBZ52myv5M1d8dhvS8AIR+TOuk2zF9RDzRFzTcv3TxtiUH2hoaCA+JY3QsP5mgvNtEdFxhISGsWPHDlJTUwffwMM+/vhjohLTiEsbQdPqRfzha+MPruvq6mZh6W5m/nzGUe8/JCQEEdcYPRW8jDGLcI1pPsj6w+6h3hcyxphtHLrSc1++l0OTdbgvz3N7/zLwch8heP0qzt1QB4xfYM01eTGuabuOAX5kW1TKb9TW1pKY3nuubv+SlDmC2lpnOqS88NLLZJxwNhtKVhJqurhq5qFbwEtKGzEhIYycPnJYx5j4Bdcc7I2NjcPaj1L+aqiJrufP9YuAF40x+uehAqCmpoaoFP+8bdkjJiXLsSEGby58m6zjZ1G74i1mjo49bED4S8sbiR+bNuxjzLCe033lK18Z9r5U4DDG5FlXbwFvqInudREpB6YD74lIOtBmX1jKX1RWVROe5J8dUXpEJGc5ckVXXV3N3n37SMjKY1vJp/zggtEH13Wbbhas3cX4i44Z9nF6SvosX7582PtSyh8NtUzPHbjGWEw3xhwA9vHZIqoqCFVUVhOb7p/Tf/WITM6ioqra68ddvHgx2ZNPoaFkFaFimDft0JXxmupt7O3oZuw5Yz1yrHSrQ4vOkqKC0ZFUDJ8EXCEi1wBfAS6wJyTlT6pravx2aEGPuLQcKqtqvH7c/735FknHTGdD/hJOHnn4jHovL6snYVTykOe2HMzs/5sNwC9/+UuP7E8pfzLUMj3/wDX24gxghvXqs2qBCi4N9bXE+XlnlNi0bOrqvHvrsru7m08+/JDMY6ezvWw5X5t5+HPO/xTtJNdDV3MAcemualq///3vPbZPpfzFUP9cnI5r/rLvGGO+a71utTMw5fv27NlDW1sbkfG9x436l9jUbDY3Nnj1tt66deuITkjmQEcHHXt38o0zD/WsrNq8i8ZdB5h08SSPHjMiLkJvXfoJCQvfJCLGY6+w8N5Fr/s+rsil1jbH9rP+AxEZ8CLHvY2vlPAZapmeEiALaLIxFuVnampqSMkc6chAa08Ki4wmMjqWzZs3k5PjneeNS5cuJWXsFGpWvU92SixREYe+iq8srScxM56wqKF+PYdm1vdnseQ3SygsLGTq1Kke3bfysK7O7NE/eeMDT+2u/k8Xzx5i0/nAJ7gKZd813OP6SgmfoV7RpQHrRGSRiCzoedkZmPJ9VVVVxGUMb4yXr0jM8O5Yuvc//Jj4UZPZWrqUC445fDa9Vwu3k35qrsePmTcrD4B587QfmfosEYnDVfT6elyJDhGJFpGXrLI8LwPRbu0vEJFlIpIvIv+ytu+9zwFL+HjnzIae6O4CLgF+z6FSPX+1JyTlL6qrq4lI9u+OKD1iUrO9mug+/fRTUscdz+4N5Xzd7bblrn1tFDe2MuVLU2w79oYNG2zbt/JrlwBvG2PWAztEZBquqcL2W2V5foerOgFW8voZcL4xZhqwGlf5tj4NUMLHK4Z0b8QY86GIjAYmGGPeFZEYwGvZWPmm0vL1RKf5d0eUHuFJWdTUeKfn5datW9m+fRsHOrsQ08UZEw4943xtZT3xiVHEpscOsIejN+bsMdR+WEtXVxehofoVVoeZz6GadC9ZnycA9wMYY9Za818CzAQmA59ajy4iODQpdF/cS/iA68pwq2fD799Qe11+C9cEoI9ai0YAr9kUk/IT6ysrA+bWZXRqNuWV3hlLt3LlSrLGHUdDyQpyUg6fDeXV/K3ET86w7dhn3H4GAN/5zndsO4byPyKSCpwLPCEidbimeLwCV+mdvkrzCLDYGDPVek02xlw/0CFwlfDpaT/RGHOXZ8+if0O9dXkzrnu3ewCMMZWAfd9G5Rdqa2r8fmhBj7j0EVR6adD46jVriMmewI6KNZw55uAjD7q6uvlgfQuTvjjZtmP3zJLy+OOP23YM5Ze+AjxnjBltTQ2WC9QC+Vi3GEVkCnCC1X45MEtExlvrYkRkoGl8+izhY9O5fMZQu3W1G2M6enrXiUgYAxfgUwGura2Nndu3EZMcGH/vxKWNoNRLY+mWrVhNQu6plH/4X+bPPdSLe9n6LZiQELJPtPe5Z1RiFG27dQY/nxYa1nQEPSWHtL9BWswH/thr2avASUC0dcuyEFgJYIxpFpHrgBdFJNJq/zNgfV87H6CEj1eKQQ410X0oIj/FdcJzgO8AWskxiNXW1pKUkUNIqGe7wDslOiWDndu30dbWRlRUlK3HKiws4NhjL6S7o42LTjhUa+611RuJG5Fo67EBzvzRmSz+2WJKSkqYMsW+Ti/q6JnOA16dV88YM7uPZfcPss37uCYP6XdfQyzhY7uh3rq8A2gGioFvAwtxZW8VpKqqqogPkNuWACEhoSRnZNtexaC5uZmWlj3s3raZxPiYw57PvVm6m5xZ9t/N6Sn7o8MMVLAYaq/LbhF5DXjNGNNsb0jKH1RVVRGV6t+TOfcWnz6C6upqjj22z0khPKKgoIDMvGPZVlPCpLRDX7/te1qpam7nsovtO3Zv3uplqpTTBryiE5e7RGQbUA5UiEiziPzCO+EpX1VaVkFUWmD0uOwRmZJt+y//NWvWEJMznj11JcyeeGhYwduFG0lIiCQqwd7bpj2yjvfvGoJKHYnBbl3ehqu35QxjTKoxJgU4FVdvm+/bHZzyXaXl5cRnen72DidFJGezvrLK1mOsXFNAXM449m6p5yvTD3U6ebu4meixqbYe2905Pz8HgEceecRrx1TKKYMlumuA+caYg93RjDE1wNesdSpI1VRVEZ8xyukwPCoufQRl6+1NdMXFJRgJI0RgWt6hjifvV7aQd9YYW4/trufK8Uc/+pHXjqmUUwZLdOF9lVq3ntOF2xOS8nX79+9n545tRKcExtCCHrFpOdTU2DeWrqOjg4b6Gva17CYl/tD4uY3b9tK8t5Ox53quLM9QSKiwd+9erx5TKScMlug6jnKdCmBVVVWkZo0iJCSwppCKzxhJ44Y620rZVFRUkJSRw+5NtRzj1hHlrYKNJCRHHxzM7S0T5k4AtOq4L4oME4+W6YkMk0HL9IhIljWBc7WIrLNK7NwgIm/00/4JETni2Q1EZKqIeLWqwWDfrBNFZE8fywXwzlNz5XPWr18fcM/nwFWuJzoukY0bNzJqlOdvyxYXF5OYM46tGys4dVLCweUfVOwgakyKx483mJnfmcn6N9fz4x//mL/85S9eP77qX0cX2eaXCR94an/yqz2zB1zvmg3kv7im6eqpXDAV+EJ/2xhjvnmU4UzFVeN0YR9xhBljOo9yv/0a8IrOGBNqjEno4xVvjNFbl0GqoqKC8JTAGlrQIylrFFVV9jynKyxaS1RmHnu3NjB3yqGB4p/U7CXXhrI8g+mZ1PmBBx7w+rGVzzkHOGCMOdg7yRhTCHwMxInIv0WkXESet5Ji7wKre0XkdyJSJCLLRSTTWn6ZiJRYyz8SkQjg18AVVrmeK6ye/Y+JyDvAcyKSJyIfW+V/8kXkdGtfs619/Ne64nzEmmVlUEMdMK7UQcXryolND7wrOoDotBFUVlbasu81hWuJSEijq6OVc4519bDcta+NTbsPMHa2d5/P9QgJD6GjQ59CKKYAa/pZdxKuHviTgbG4euL3FgssN8acCHwEfMta/gvgc9byLxpjOqxlL1uTO/fMlHIyMM8YcxWuqgZzrPI/V2BVT7CcAtwOHA+MA740lJPTRKeO2LqywBta0CMiJYeK9X1O1zds69aV0tbaSmxMNGFhrq/eByVNxMdFEBkXOcjW9ph8qesRS1dXlyPHV35hpTFmozGmG9d8l3l9tOkAep7lrXFr8ynwjFUBZ6CH+guMMa3W+3DgcREpBv6FK8G6x1JjjOkCXgTOGMoJ2JroRGSuiFSISJWI3NHHehGR+631a61Cfz3rnhKRrSJS0mubu0Sk0brsLfT2Q81gZ4yhurKChOw8p0OxRVzGSErLPJ/o9u3bx47mrexv2U1uUsTB5R+WNxORbf/8lv2Zdq3rK/fDH/7QsRiUTyjFKqrah3a391303bfjgDHG9G5jjLkR13SRuUChVQ6oL/vc3n8f2AKciOtZXoTbut7FBIZUXMC2RCeuMukPARfiysjz++ihcyGuwn4TgBuAh93WPQPM7Wf397rVNfrMA01ln82bNxMSGk5kXJLTodgiPiOXyirP37osLy8ndUQeezdVcWLOoau3T2r2knGCc7OU9Dyn04HjQe99INK68gJARGYAZw9npyIyzhizwhjzC2AbroTXAsQPsFki0GRdQV7N4VeCp4jIGOvZ3BXAJ0OJw87+zKcAVdYAc0TkJWAesM6tzTxcNZAMsFxEkkQk2xjTZIz5SETybIxPHYWysjJSRnhvYLO3xaWPODjEwH3C5eFat24d8Vl5NKwv5rQ5rqm/uk03ZZvbOOcMr5Xl6pOECm1tWrbHl0SE0jRYT8kj3d9A640xRkQuBf5m3X1rA+oYfoHtu0VkAq6e+u8BRcAG4A4RKQT+0Mc2fwdeFZHLgCUcfrW3DFc5oeNxPQv871CCsDPRjQAa3D5vxDV92GBtRsDA/1GAW0TkGmA1cLsxZmfvBiJyA66rRFu6igersrIyYgJsRhR3YZHRRMcn0dDQwOjRnktAxSWlRKTl0rbiPeYePx6A6s176OyG1Anem/qrL2Nnj6X6Pe8UnVVD095pvN6t2RizCbi8j1WPu7W5xe39bLf3cW7v/w3823rfV2eRHfRR3sdt+0oOFXgFuNPt/X5jzBX9nkQ/7HxGJ30s630/dShtensYV2+bqbgS4l/7amSMecwYM90YMz09Pb2vJuoorC0pJSo9cBMdQHL2aNZ7uENKwdoSJDwaEZiY7fqd8Gn5FuISozx65Xg0Tr/1dAAdS6cClp3fsI247sf2GAn0Hp0/lDaHMcZsMcZ0WfdvH8d1i1R5ydqSdSRkOXurzW7RablUVFR4dJ9l60o50NFOXMyhqb9W1uwiIidhgK28IyzSdWPn97//vcORKNU/Y8wHxpiLj2ZbOxPdKmCC9eAwArgSWNCrzQLgGqv35UxgtzFmwNuWIpLt9vFSoKS/tsrzKivKScgO7EQXmTaS4tJ1gzccotbWVrZuaaKtdR+5iYeeFiyv20f6cZkeO85w7dz5mScASgUE2xKdNY3LLcAioAx4xRhTKiI3isiNVrOFQA1Qhevq7Ds924vIi7gePE4UkY0icr216s8iUiwia3GN5tdyQV6ye/du9u5tISbZd3452yEhaxQl68o9tr+KigpSMnPZ21TLlGxXj8tu0035ljZGne4bt4HTJqY5HYJStrF1Flmr6//CXsvcp5gxwM39bDu/n+VXezJGNXSlpaWk545DHH6mZLf4zFGsqvTcM7qysjISsvPYWF12sMflhm176eo2pI53tiNKjzN+cAavffs1ioqKOPHEE50ORymPCuzfWMqjSkpKiMsK3KEFPWJSs9i5Yxv79u0bvPEQlJauIzItl7ZdW7lgiuvKaXXlNuLiIx3viNIjebQrAX/96193OBKlPM83vmXKLxQWrSUygIcW9AgJCSU1e5THel4WrC0hJCoOjGFiVqxrWf1OwlNjPbJ/TyooKHA6BAWEhId4tExPSHjIUMr0ZIrICyJSIyJrRGSZNbbuiInIbSISczTb2sG7BbCUXytYW0LitHlOh+EV8Zmjqaio4KSTThr2vsrKy4ialEVMTPTBK7j8hn3Ej/GtZ50R8RF0tOgEz77AdJrsKc9M+cBT+yu5rmT2QOutigSv4SrTc5W1bDTwxaM85G3AP4H9R7m9R+kVnRqy8rJSEnOcmWXf2yLTcin1QM/Lzs5OGjfU0d7eTlb8ob8rS5tayTzBtxLdlC9NAXSC5yB1LtDRqw9FvTHmAREJFZG7RWSVNSfxt+Fg2ZwPpFcJHxG5FcgBlojIEqvtfKsTYYmI/KnnGP0t9zRNdGpImpubaW9vJzopOAbfx2fnkV9UPOz9VFdXk5Cayb5tjUy0qoq3H+hk0+5Ock/xrQoQUy53Jbrf/OY3DkeiHHAckN/PuutxDf2agWtGk2+JSM/D+s+U8DHG3I9rPPQ5xphzRCQH+BOuZDoVmCEil/S33POnpolODZGrx+V4XHc4Al9C9hhK15UOez/r1q0jMTuP/ZvrmDbaVaWguH4HUREhRCdFD7K1d/VM8Hzfffc5HIlymog8JK5iqauAC3CNdy4EVgCpuCbih6GV8JkBfGCMabaGnT0PnDXAco/TRKeGpLi4mJgg6HHZIz5zFJsaNtDe3j544wGsW7eOyPRRtO7YxFnHpABQVL+D6IQoT4Rpi127djkdgvK+UuBgmTRjzM3AeUA6rqkav+tWMWaMMeYdq+lQSvj099ex1/5q1kSnhmRVfmFQJbrQ8AiSM3OGXW08v6iYqJQsOtv2c+Yxri78pRv3EOqDPS4BUsamOB2Ccsb7QJSI3OS2rKfX5CLgJhEJBxCRY0RksP+B3UvxrADOFpE0q3zbfODDAZZ7nPa6VENSUFhExpxvOh2GVyVkj6W0tJQpU6Yc9T5KStcRNWUkEZGRREW4vm7FTW0kjHGuBt1AZt48k4W3L6SpqYns7OzBN1C2kDBpGqyn5JHub6D1VpmeS4B7ReTHQDOu8jg/wVXlOw/It3pnNgOXDHLIx4C3RKTJek53J66SOwIsNMb8D6C/5Z6miU4Nqquri6qKMiZcN87pULwqKn0UxcUlXHHFEVcFAVz/3upqKhk7cTbJcYeKra7f2kbuhRmeCtOjMq25N2+44QZef/11h6MJXt0Hup0o09OEa07ivvzUern7wHr1bO9ewucB4AG3zy8AL/RxzD6Xe5reulSDqqmpISYhmYjouMEbB5Dh9rysqakhPimNvduayEt0fdW6urpp2n2AnGle/z12RBYtWuR0CEp5jCY6Nai1a9eSPHK802F4XeKI8RQXrz3q7detW0dSzhj2b6llSo7rcUf1lj2EhgpxGb77R4OECgcOHHA6DKU8RhOdGlRhYRFRmcHTEaVHfGYuzVs209LSclTbl5SUEJkxmv3NGzllrKsjytq6HcTERngyTI/z9atNpY6UJjo1qJVrCkgYEVzP5wBCQsNIyx1HcfHR3b4sWFtCXOZo2vds57xJrioFJY27CUv2mSkA+3T691wVxz/55BOHI1HKMzTRqUGtXVtEcu4xTofhiPiccRQVFR3VtmvXFhMSFQsI4zJdvbHXNe0n2geqig8kLs11W/XWW291OBKlPEMTnRrQrl272LVzB3HpI5wOxREx2eNYtebIZ/Tv6OigvraKjgOdxMYcGhxesaXNb8aqFRYWOh2CUh6hiU4NqKioiPTREwK+2Gp/kkaOZ3X+kSe68vJykjNHsmfLRjLdJnPesLODjMm+ObTAXVhUGK66yEr5v+D87aWGrLCwkLjs4Otx2SNx5Hgqy9cd8Yz+RUVFJI4YR8vmWo61JnPe195BS1s3Gcf5fqIbMzv4Oh+pwKWJTg1oxao1xOYEX0eUHhHRccSnZFBWVnZE2+UXFhKVOZb9m+s4yZrMubxxF9GRIYRF+P48DafeeCoAL774osORKDV8mujUgNYUFJKUO2HwhgEsOW8SK1euPKJtVucXkjhyHPt3NB2czLmsYTdRsZGDbOkbwqPCAfi///s/hyNRavg00al+dXR0UFddGTTFVvsTO3IinyxdfkTblBYXE5s+ki63yZzLm/YQ4mOleQZTW1vrdAhKDZsmOtWv0tJSkjNHEhbhuyVlvCElbzJLl68YcvtNmzZxoLOT/Xt2ExEZdXAy5/LNbUTnxA+yte+ISgzu/+4qcGiiU/0qLNTblgDJuROorVpPa2vrkNqvXLmSjLHHsb2hmpS4Q7OgVGxtI3Vsql1hetxxXz4O4Ig74ijlazTRqX6tXL2GqOzg7YjSIzQ8kvTcceTn5w+p/bLlK4gdeSy7m2oZk3ToK9aws4P0Sel2helxPYnuN7/5jcORKDU8muhUv1auzg/aGVF6S8ibwscffzykth8vXU5y3iT2ba7hhJGuGVHaOjppae8m41jfH1rQIzQ0FIAHHnhgkJZK+TZNdKpP3d3dlJUWk6SJDoCU8VN5a/H7g7br7u6mqGANKXmT2L+1gdPGuTqiVDTuIjoihLAo3x9a0NuOHTucDkGpYdFEp/pUXV1NdFwikbG+PS+jt6RPmMqqFcsGLV9TUVFBdHwSYdHxtLds53NTXLcqK5p2ExXj21UL+pKYm+h0CEoNmyY61aeCggJSRunVXI/IuESSMkYM+pzu008/JXXMFHY01hIaFk5Wkqvn4vqmFsIS/WtoAcCpN7kGjjc3NzsciVJHTxOd6tOqNWuI9sOOKPv37KT0/ddY8e9HKHnvv7Tv3+exfSeNm8qSJUsGbPPGW4tIHH8S2+rXkxR7qHt+1dZWwtJ9uzxPX0ZMc03mff311zsciVJHTxOd6tPylWtIHOk/V3TGGFb953HeuPNSNi9+lPj1b9D0zqP870cXsea1pzBd3cM+RtrE6fx3wZv9ru/u7uaDJe+TNWkGuzZWMzop9OC69c1tJI1KGnYMTnnrrbecDkGpo+Z/T8aV7YwxlKwt5My533U6lCHp6jzABw/dyf66At645UQuOvFQz8aFRVu57LHn2V5VwHm33UNoWPhRHydz0nQWPvtrmpubSU//7DCBoqIiImITiUnJZF9TFeeNOHQFV7+jgwnj04762E4KCQuhs7PT6TCUOmp6Rac+Y9OmTXR2GaKT/GPM14eP/pIDDUVU/+70w5IcwEUnZtDwpzMIba7g3Xu+N6wru9DwSEZMmcmCBQv6XP/OO++QPnE6AHu31DNrgqvHZbfpprml0y+qFvQld2au0yEoNSya6NRnFBQUkD7mWETE6VAGlb/gGXZXLKfkrlMPdvzoLSUugurfnU7XlvV8+o8/D+t4aVPO4PmX/tXnun++9Appk0/DdHXTvudQj8vG7fsQgbiMuGEd2ymnf+90QCsZKP9la6ITkbkiUiEiVSJyRx/rRUTut9avFZFpbuueEpGtIlLSa5sUEVksIpXWz2Q7zyEYrVmzhhg/qEG3tW49VYueZsHNxzMyZeAejQkx4ay4czqbV79NxaeLjvqY2cefzsqVK6ivrz9s+dq1a9nYuInMyTPY1lhNaFjYwZjKN+4iOvrob5k6LSre9QfED3/4Q4cjUero2JboRCQUeAi4EJgMzBeRyb2aXQhMsF43AA+7rXsGmNvHru8A3jPGTADesz4rD1q2cg0JI3w70ZmubpY//jO+dFIanzt+aLcEJ+XEc+9l41n70p/Ys63pqI4bHhVL3umf589/+ethyx957HFyZ15ESEgoW6tLSYk/lHirtrQQGecf5XkGsmnTJqdDUOqo2HlFdwpQZYypMcZ0AC8B83q1mQc8Z1yWA0kikg1gjPkI6GtKhnnAs9b7Z4FL7Ag+mBUVFZLs42PoCt56ntDWnbx0w9Qj2u67c8YwfVQcy5789VEfe+zsy3nuuefYvHkzAPX19fzz+ecZNfMiAHZuWM8xqYd6XFZv3Yf4WXme3vy5x6hSdia6EUCD2+eN1rIjbdNbpjGmCcD62eef8yJyg4isFpHVOth16Hbs2MGunTuISx/pdCj92r9nJ9VvP80jX51AWNiR/y+86Psnsa+xnLKP3jiq48ckpzP+3Cs474K5rFq1ii9ddgXjz7uKuLQcAPZurODUMYdmlFm/tZ1YPyrP05dZt88CoLKy0uFIlDpydia6vnoymKNoc1SMMY8ZY6YbY6b31RVc9a2oqIiM0ccgIb7bT2n1Kw8yLj2ar5422N9EfUuKieDPXxpL6av3HfWA8mPmXktY7ol88fKv0pY4ignnzz+4bu/WBuZOOfT/XM32NpJH+/ej5IyJrr8n58+fP0hLpXyPnb/NNgLu/ZJHAr1v8g+lTW9bem5vWj+3DjNO5aagoIDYHN99Prdr80Y257/LC9/s/bj3yNx2wVhyEsJY+cr9R7W9iDBp3o2cfeezHH/Z9w/+YbB/z066Olo559hDdec27TpA2jH+OYautzVr1jgdglJHzM5EtwqYICJjRCQCuBLoPQBpAXCN1ftyJrC757bkABYA11rvrwX+58mgg92ylauJG+G7xVbz/3U/08ckMn1M0rD39dpNx9O08m22NVQPPzDLlqpSYmOiD95S7ejsYndbN2kT/T/RxWX55/AIpWxLdMaYTuAWYBFQBrxijCkVkRtF5Ear2UKgBqgCHge+07O9iLwILAMmishGEemZbO+PwBwRqQTmWJ+Vh+QXFJDso1XFdzTWsa1sBc9/8ziP7G9aXiKzJyaz+oW/eGR/AFurSxidfGgoQfXm3USFCxF+WLmgtzN/eCYAJSUlg7RUyrfYOgWYMWYhrmTmvuwRt/cGuLmfbft8GGCM2Q6c58EwlaW1tZWN9XVMyxnrdCh9Knj1IU4bl8iETM9dWfz7phPJ+MGH1BZ8ypiTZg17f7tq1zJn7KH4Khp3ExXt/0kOIGtKFgBXXHEFpaWlDkej1ND5bo8D5XXFxcWkjRgzrPkg7bJjUz3by1fwzDc8czXXIyUugm/OymTtv/6G6++u4WnZVMWl07IOfq7a0kJ4fN8ztvirdevWOR2CUkdEE506qLCwkHgfHShe9NpjnJzn2au5Hg9+dQrs30Hp+68Naz8t27fS3dHGnMmHnsdVb21FUv17DJ279Enag1n5H0106qAVq9cQk+N7Nej2bNtCc8knPH3d8Hpa9icsLIRff2E0FW88SmdHx1Hvp3HdGhLjYw4b21fZ3E5CTuBUaT//1+cDcPfddzsciVJDp4lOHbRqdT7Jub43I0rRgieYnBPPlJH2JYwfXTiOhHBD4ZvPHfU+mqvXclzG4bd963a0kzI2Zbjh+YyeeS9/9rOfORyJUkOniU4B0NXVxfqyUpJG+laPy9aW3TStWcwjX7M/AT981Xhq33uBtpY9R7X9rqp85h6XetiyzXsOBMTQAnfhMeF0DOPKVylv00SnAFi/fj3xKemER8c6HcphCt94ltyUGM44JnXwxsN0+Sk5jEqNYvWrDw/euJf2fS3s376JG2Yfmv+gZX8HbQcMqWPtj92bzr7zbAAWL17scCRKDY0mOgW4ZkTxtduWB9pb2bj0Ne65zHvDHV64fjKbVi5k15bGI9qurmgpCXExZCQc6mFZsWkX0ZEhhBzFfJy+LHeGK5nPm9d7jnalfFNgfQPVUVu9Zg1RWb7VEaX4nVdIjgnny9OzvXbM08YnM2NMIqtf/Ovgjd00lSxjxsjDS/FUNu0hMgAGivclMj6S1tZWp8NQakg00SkAlq/KJ8mHZkTp6uqidslL/PzC3MEbe9irN53Azso1NJYVDHmbnZVr+OrMnMOWVW/dS1hC4AwtcDf3blepyHvuucfhSJQanCY6hTGG0uIin6pBV/7R60TQyXfPH+31Y49MiWb+jAzWPP/HIQ0i31JbTuf+ls9UU6jc2kpYeoxdYToqJc/Vk/T22293OBKlBqeJTrFx40YICSU60Td6BxpjqFr0HLeenUWIQ+WCnvrGCbB3G2vfeWXQtpUf/o8Tc+OI6PUsrqq5ncSRiXaF6LjJl7rGNa5atcrhSJQamCY6RUFBAWmjJzodxkE1qz+ka/8ufnOpc1eYEWEhPDR/AuvfeJS9O/sv3GuMYUvh+/zoglGfWbdhZzup4wOrx6W7U799quvnqac6HIlSA9NEp1iTn0+0D3VEKX/rab46Pe2oqod70tfPzOXEEbEsffLX/bapXrWEENPJFacc3mGm23SztaWTzMmZdofpqAlzJ2CM4YEHHnA6FKX6pYlOsXzlGhJ9ZGhBY3khrVvrue8qe6b7OlLvfH8a+zaUUPDmPz6zzhhD6X8f4ttnZH7mFuvmnfsxQHx2vJcidcYZt50BwK233sr+/fsdjkapvmmiUxQVFZLkI4mu5PUn+NzkZBJifKOCQlp8BP+96QQqFz5B9eoPD1u3dvErSOsu7rli0me2q2jcTUyUrVWwfMalj18KQGxsLG1tbQ5Ho9RnaaILctu3b2fP7t3EpeUM3thmzRuq2F1bzOPXTnE6lMNcdGIGd39pHPlP/4LVrz3J3p3NrH3nFdb/7+889rWJfd5iXd+0h8gAK8/Tn6TcJM7/jWuy5+joaE4//XQOHDjgcFRKHaKJLsgVFBSQkTcRcah3o7viBU9w2rhEcpJ9L0HcfuE4Xr7heHYv/xdv3nkJ9W8/zlPXTuJrp4/os33Vlr1IUmCOoetL7oxc5v9rPhIiLFu2jIiICESEjIwMtm3b5nR4KsgFx70V1a/8/Hxisp3viLKnuYlt65bx4a9PczqUfn1lRjZfmZFNd3f3oMMe1je3E5sTuD0u+xIVH8V1C6+jq6uL1U+spmxBGc3NzaSnp/O5z32Ot99+2+kQVZBy/s945ahlK1cT7wMVCwoXPMmUEfFMyvH9zhtDGdtXva3t4KDqYBMaGsqp3z6V6968jmvevIbw2HAWLVrEBRdc4HRoKkhpogty+fn5JI9ydgzd/j072Zy/mIe/5jtj+YZr487AK89zNEJDQ/naq18jJjWGxYsX8+abbzodkgpCmuiC2J49e9jStImELO9Ps+Wu6M3nGJ0aw6wJgXEF1NbRSUt7N+kT050OxWdc8fwVAFx88cUOR6KCkSa6IFZQUEDG6GMICXXuUe2BtlY2Lv0f91w23rEYPK28cRfRESGEBcnwgqGa89s5AMyfP9/hSFSw0UQXxNasWUPcSGfHzxUteonU2HAuPTnL0Tg8qWzjLqJiA7M8z3CMnD4SgJdeesnhSFSw0UQXxD5dvpK4Ec51ROnqPED9By/zq4s/O0+kP6vY3EJYUmBWLRiuc39+LgAPPvigw5GoYKKJLoityc8nZfSxjh1/3QcLiArp4qZz8xyLwQ4Vm1uJzIxzOgyfNHqW63nwd7/7XYcjUcFEE12QamlpYfOmRhKy8xw5vjGG6sX/4LZzvFc93FvWN7eRPCbZ6TB8VsaUDMBVXFcpb9BEF6TWrFlDRp5zHVGqV3+IaWvhl190fgyfp23Y0UH6sdrjsj9z/+CqTn7JJZc4G4gKGprogtSKFSuIG+HcuLWKt57m6hmpjpfi8bT2A53s2N9F5nGBXZ5nOELDQwF44403HI5EBYvA+i2jhuyjpctJHP3ZWfe9oWl9Mfu31HPPlb5RiseTqpp2ExUeQoT2uhxQ3pl5gN6+VN6hiS5IrVm9mhSHEl3Jm08xZ1KSz5Ti8aSyjbuJCsDz8rSz7jgLgBtuuMHhSFQw0EQXhDZv3kzLnj3EZYz0+rF3bWlkZ+UaHr76OK8f2xvWNe4mPFmHFgwmNNR1+/Kpp55yOBIVDDTRBaFVq1aROW4yIuL1Yxe/+QxTRiYwJj0wk0FJ034iA7yquKfEZekQDOUdmuiC0CefLiUu1/tXVO37Wmhas5j7r/CNauZ2KNvcRtoEncx5KOb8xjUlmJbvUXazNdGJyFwRqRCRKhG5o4/1IiL3W+vXisi0wbYVkbtEpFFECq3XRXaeQyD64ONPSR7j/US39p2XyUyMZvakwK3TVr+jnawTAmc6Mzsl5SYB8I1vfMPZQFTAsy3RiUgo8BBwITAZmC8ivbvZXQhMsF43AA8Pcdt7jTFTrddCu84hEHV2drK2MJ/Usd5NdKarmw0fvcrPL/T+c0Fv2bmvjf0dRqsWHKGmpianQ1ABzs4rulOAKmNMjTGmA3gJmNerzTzgOeOyHEgSkewhbquOwtq1a0lMyyYixrvPkSqWLiKcA9x4TmDNa+muqG47sdFhhATY2EA7jZg+wukQVBCw8xs5Amhw+7zRWjaUNoNte4t1q/MpEelzriURuUFEVovI6ubm5qM9h4CzbNkyR25bVr37PNedmjak6tz+qrRhF5EJUU6H4Vdm3zkbgHvvvdfZQFRAs/O3Tl9d+swQ2wy07cPAOGAq0AT8ta+DG2MeM8ZMN8ZMT0/XW0k93vvgI+JHezfRNa0vpnXbRv58uTPj9rxlXeNewtJjnQ7Dr/QMrP/FL37hcCQqkNmZ6DYCuW6fRwKbhtim322NMVuMMV3GmG7gcVy3OdUQGGP46KOPyDhmqlePu+6tZzl3YiJxAV6ItLiplaS8wKiS7k0SIuzdu9fpMFQAszPRrQImiMgYEYkArgQW9GqzALjG6n05E9htjGkaaFvrGV6PS4ESG88hoFRVVdHVbYhN895zkZbtW9lesZIHvxp40331Vr6ljeypgVeNwW55Z+Q5HYIKcLYlOmNMJ3ALsAgoA14xxpSKyI0icqPVbCFQA1Thujr7zkDbWtv8WUSKRWQtcA7wfbvOIdB8+OGHZBwzzasDxde+9Q8mZMUzMTuwBwfvbetgx74uRpysnSuO1KwfzALgnnvucTgSFahsvZdkdf1f2GvZI27vDXDzULe1ll/t4TCDxjvvvU/CmOO9drwD7e1sWvEm//l2YE735S6/ehux0WGEBfjtWTuER7nmBv3Vr37FD37wA4ejUYEocLvAqcMYY/jggw9JP+Ykrx2zdMl/SIwOZ960wB9AXVC3g8jEaKfD8F8Ce/bscToKFaA00QWJ8vJyOrsN8ZneGcdmjKH2/Ze4/bzgeGZV2NBCuM5xedRGnRa44yuV8zTRBYm3336bjEmneO35XPWqJdC+lzs/P84rx3NaYWOrVhUfhjNvPxOAxx57zOFIVCDSRBck/vfm26ROnOG1461f9BxXnpwS0APE3VU1t5FzUo7TYfitnvF0d955p8ORqEAUHL+FglxbWxsrly8l89jpXjle0/pi9m2u44GrAr8TCkDtlj10dBoyjstwOhS/t2PHDqdDUAFIE10Q+PDDD0nLHU9EbIJXjlfyxpMBW0G8L0srthCfEBU0V692yT4pOJ7nKu/Tb2YQePlfr5IyeZZXjrWjsY6dVfk8ek1wXM0BLK/eSXi2d/6ICGSzfzobgBdffNHZQFTA0UQX4Lq7u/nf//7HiJPO9srxCl97lJljkxidFpgVxPuyvG4f6cdlOh2G34uKd02I/b3vfc/hSFSg0UQX4JYvX05EXCLxGfbXgdu1pZFtpUt58rrAn+6rR7fppmxzK6Nmafd4T9FqI8rTNNEFuBdfepn048/yyrEKXn2IaaMTmJQTPOPJarbsobMb0o5JczqUgKDP6ZQdNNEFsM7OTp5/8UVyZ1xg+7F2NNbRXPIpz39ziu3H8iVLijcTnxStHVE8pOc53T/+8Q9nA1EBRb+dAWzRokXEpuYQn5k7eONhWvPy3zh9fGLAT97c27vl24kep6V5PEWf0yk7aKILYI898RRZJ9t/Ndewbg27qgt55dsn2n4sX/NJ1V5Gz8pzOoyAIiHCzp07nQ5DBRBNdAFq06ZNvPveu+TOON/W45iubgpevJuvnpJOTnKUrcfyNZt37qN5bydjZo9xOpSAMn7OeAC6urocjkQFCk10AeqBhx5i9IwLiIixt2NI4dsvwN5mnvj6CbYexxctKmokISmKsAgtzeNJp916GgC33Xabs4GogKGJLgC1trbyyKOPkXf2l209zp5tW6h660mevHoiEWHB97/SOyXbiB6T6nQYASc0NBSAhx9+2OFIVKAIvt9OQeDhRx4hZcwUErJG23YMYwyfPPJTZuTFM39m8FXV7jbdvF22mwkXHuN0KAEpMj5Sb10qj9FEF2D27t3Lb3//ByZc+A1bj7P6v0/Qua2Od39wsq3H8VX51dto7TSMOl0Hitvh7J+6ZvJZtWqVw5GoQKCJLsD86e67SRk3laSR4207Rm3+J9S990/e+O4JxEUF5/Opf69oIGFkso6fs8mIk1x3CebNm+dwJCoQ6Lc0gFRXV/O3v93PpEtusu0YW6rLWP3UL/jtvLGcOyl4ZwP5T9EOcs6w79awAgSampqcjkIFAE10AaK7u5tvfOvbTJhzFbEpWbYco7luPR/ffyvfnJXOnRfbd8Xo64rrt7Fh5wGmfCm4ZoHxtuMvPx6ALVu2OByJ8nea6ALEPff+jarGZsafd6Ut+29Yt4YP/noTV09P5tFrg28ogbtH36shOS+FsCC9best07/uKhQ8a5Z3SkypwKWJLgAsW7aMX//2d5x0zc8JCfX8L9+it19k2UM/4Mfn5/D09cE3+4m7rq5unl+9nYlf0as5rxDXLXmlhkMTnZ9raGjgi5d8ialfvZO4dM9289+7czvv/PVWahY+xr++fTx/uOxYj+7fHz3/cRVdISGMnT3W6VCCwqk3ngpARUWFw5Eof6aJzo9t376d2efNYdTZl5Fzgudu7xhjWPvOK7z1i8sZ2VZD491n8eXpWj6l23Tz6zfrGDV3otOhBI3J81y1DU8+OTiHsSjP0IcMfmrXrl2cc/4FxIybwYTz53tsv41lBeS/8Ge6W7by6FXj+ebZOk6sx3+X17F5bzdfsZ4dKe+ISY1h3/Z9Toeh/Jhe0fmh7du3c9Y559GVfgyTPTSUYPfWTbz7tx+w9MHbuHRcJ7vvn61Jzk37gU5ufWk9eZ8/lpAgnO7MSfMecY2lu/jiix2ORPkrvaLzM42Njcw+bw5RY6czZd6NiMiw9te+fx9rXn2YjctfZ3peIv/505mMTIn2ULSB4xevFLE/NJw51+vVnLf11Kh78803HY5E+Sv909SPFBcXc/KMU4mfci7HXXLTsJKc6eqm6O0Xef2OeZiK9/joRyez8v9O1STXh8WFDdz3wRZm3jFbZ0JxyBcf+iIAl156qcORKH+kV3R+4o033uCrV1/LcV/+HqNOmTOsfdXmf0LRK/cQ1rGHv185jhtm6y3K/pRt3MFlj5Zw7OUnkH2idshxSuq4VBB47bXX6OrqOljhQKmh0ETn47q6urjr17/mwb8/yoxv/5G0sUc/fmtLdRn5r9zDvsZKbjorm/uuOluvUAZQumE7Z/1pJWmnjGbaNdOcDifoXfH8Fbx81cvEx8ezf/9+p8NRfkQTnQ9raGjgyqu+xoYd+zjrx08QnXh0tc+aN1RR+OpD7KzM58IpqTz/o7NJionwcLSB5ZWl1Xz9mQpyzhjDmT852+lwFBCTEkPuabk0LGvgpptu0np1asjEGON0DLabPn26Wb16tdNhDFlnZycPP/wwP/vlXYw95womzLmKkJAjv1XTsG4NZQufYVfNWs6YkMQ/vzmFUakxNkQcOBq2tfDd5wp5p7yF478xg+MuPc7pkFQvz33xObo6unjggQe45ZZbnA6nL8PrIaY8ztZEJyJzgfuAUOAJY8wfe60Xa/1FwH7gOmNM/kDbikgK8DKQB9QBlxtjdg4Uh78kus7OTv7973/z05/fRWdkAsd95TYSc8Yc0T727mim/KPXaVzxJgdadjB3chKPXHOcdjIZxPpNu/jj6+W8sHo7yXmpnPXL84hNj3U6LNWPp+c+DcCFF17IwoULHY7mMzTR+RjbEp2IhALrgTnARmAVMN8Ys86tzUXAd3ElulOB+4wxpw60rYj8GdhhjPmjiNwBJBtjfjJQLL6c6Lq6uigoKOBfr77K0888R2RSJmPnfI2s42YOqVdlW8seGisK2FK+hu3lK2jd3sSItFi+dXoGd3x+PBE65qtP3aabtXU7eCN/I6/kb6diSxspY1KZdtOpZB6X6XR4agheuOwF2lvaAbjxxht96VamJjofY2eiOw24yxjzOevznQDGmD+4tXkU+MAY86L1uQKYjetqrc9te9oYY5pEJNvafsA5mY4m0T355JPU1dUN2q73v7+ez93d3XR3d9PV1UVnZycdHR20trayd+9edu/ezZatzTQ2NbF96xZCwyNJmTCNtClnEJOei+nqpLurk84DB+g+0E7ngTYOtO6jY98eOvbu5sCerbTv3EL7rq10d7QSHhnJ6KRQ5kxM4NrTs0gM4Fn13f9tdxtz8N+3Ma7P3d2GA12G9s4u2jq62NfWye7WDra1dLB5dzs129op39pGzfYDAEQnxZB28giO+9JxRMTqc0t/07C8gWUPLjtsmYiQnJxMZmYmWVlZpKSkkJCQQFRUFJGRkYSFhREaGkpISAgiMmCHrLS0NL73ve8daVia6HyMnYnuK8BcY8w3rc9XA6caY25xa/MG8EdjzCfW5/eAn+BKdH1uKyK7jDFJbvvYaYxJ7uP4NwA3WB8nAkcyK2wk4MXp6fv4XvReZA7+Y7AtPcLYuG+79XUhbExf//bo6r0pfTYLWIF2vnaNOdgIHElRvG3GmLk2xaKOgp1/+vf1e7L3l6q/NkPZdkDGmMeAx45km/6IyGpjTFBNiSEiq7uD8JyD6b9zsJ0vBOc5K3tnRtkI5Lp9HglsGmKbgbbdYt2yxPq51YMxK6WUCjB2JrpVwAQRGSMiEcCVwIJebRYA14jLTGC3MaZpkG0XANda768F/mfjOSillPJztt26NMZ0isgtwCJc986fMsaUisiN1vpHgIW4elxW4Rpe8PWBtrV2/UfgFRG5HtgAXGbXObjxyC1QP6PnHPiC7XwhOM856AXFgHGllFLBSwdZKaWUCmia6JRSSgU0TXSAiDwlIltFpKTX8u+KSIWIlFozsvQsv1NEqqx1n/N+xMPT1/mKyFQRWS4ihSKyWkROcVvn1+cLICK5IrJERMqs/57fs5aniMhiEam0fia7beO35z3A+d4tIuUislZE/isiSW7b+O35Qv/n7Lb+hyJiRCTNbZlfn7MaImPNLhHML+AsYBpQ4rbsHOBdINL6nGH9nAwU4RpUPgaoBkKdPgcPnO87wIXW+4twzTgTEOdrnUc2MM16H49rirnJwJ+BO6zldwB/CoTzHuB8LwDCrOV/CpTzHeicrc+5uDq31QNpgXLO+hraS6/oAGPMR8COXotvwjVrS7vVpme83jzgJWNMuzGmFleP0VPwI/2crwESrPeJHBq36PfnC2CMaTLWhOHGmBagDBiB6/yetZo9C1xivffr8+7vfI0x7xhjOq1my3GNUQU/P18Y8L8xwL3Ajzl84gm/P2c1NJro+ncMcKaIrBCRD0VkhrV8BNDg1m4jh75M/uw24G4RaQD+AtxpLQ+48xWRPOAkYAWQaVxjN7F+ZljNAua8e52vu28Ab1nvA+Z84fBzFpEvAo3GmKJezQLqnFX/NNH1LwxIBmYCP8I1dk/wwPRkPuom4PvGmFzg+8CT1vKAOl8RiQNeBW4zxuwZqGkfy/zuvPs7XxH5P6ATeL5nUR+b+935wuHnjOsc/w/4RV9N+1jml+esBqaJrn8bgf8Yl5VAN5DG0KY280fXAv+x3v+LQ7dwAuZ8RSQc1y/A540xPefa35Ryfn/e/ZwvInItcDHwVWNMzy92vz9f6POcx+F6/lYkInW4zitfRLIIkHNWg9NE17/XgHMBROQYIALYhmsKsitFJFJExgATgJVOBelBm4CzrffnApXW+4A4X+tq/EmgzBhzj9uq/qaU8+vz7u98xVXQ+CfAF40x+9028evzhb7P2RhTbIzJMMbkGWPycCW3acaYzQTAOauhCdzCZUdARF7EVQcvTUQ2Ar8EngKesrrgdwDXWn/9lorIK8A6XLdFbjbG9C734tP6Od9vAfeJSBjQhlXiyLimbfPr87XMAq4GikWk0Fr2U/qZUi4Azru/870fVy/Dxa68wHJjzI0BcL7QzzkbY/osQR4g56yGQKcAU0opFdD01qVSSqmApolOKaVUQNNEp5RSKqBpolNKKRXQNNEppZQKaJrolFJKBTRNdMorRORWq3xKo4g8aC27UUSucSieOvdyLR7aZ56IXOX2+bqec1VKOUcHjCtv+Q5wIa7ZV6YDGGMesfOAPXOTGmO67TyOmzzgKuAFLx1PKTUEekWnbCcijwBjcU255F7Y9C4R+aH1/gMR+ZuILBWRkp7Cr1abf4jI+1Zx1G+5bf8jEVllFRH9lbUsz7py/DuQz+FzGfYX39dEZKW4is4+KiKh1vK9IvI7ESkSV1HaTGv5OOvzKhH5tYjstXb1R1wVLwpF5PvWshwReduK/c99HN49jr0i8icRWSMi74rIKda/lxprBv6eq8TXROR1EakVkVtE5AciUmDFlDL4fxGlgosmOmU7Y8yNuObSPAfYOUDTWGPM6biu/p5yW34C8HngNOAXIpIjIhfgmpvwFGAqcLKInGW1nwg8Z4w5yRhTP1BsIjIJuAKYZYyZCnQBX+2JB9cUWScCH+GaJg3gPuA+Y8wMDp8E+A7gY2PMVGPMvdayqdb+jweuEJGBEm8sroK3JwMtwG+BOcClwK/d2k3BdeV4CvA7YL8x5iRgGeDIrWClfJneulS+5EVwFYYVkQQRSbKW/88Y0wq0isgSXL/gz8BVLbvAahOHK/FtAOqNMcuHeMzzgJOBVdbcj9EcqmDQAbxhvV+DK+mAK+FeYr1/AVf9vv68Z4zZDSAi64DRHF4DzV0H8Lb1vhhoN8YcEJFiXLdFeyyxCou2iMhu4HW3bU4YIBalgpImOuVLek+8agZYLsAfjDGPuq8QV8HNfUdwTAGeNcbc2ce6A25lbLo4uu9Lu9v7wfbhfrzunm2NMd3WZNt97bPb7XP3UcaoVEDTW5fKl1wBICJnALt7roSAeSISJSKpuKourAIWAd8QV5FNRGSEiGT0sc/BvAd8pWdbEUkRkdGDbLMc+LL1/kq35S1A/FHEoJSykf71p3zJThFZCiQA33BbvhJ4ExgF/MYYswnYZD1fW2bdctwLfA3XVdOQGWPWicjPgHdEJAQ4ANwMDPRs7zbgnyJyuxVXT0JeC3SKSBHwDAM/j1RKeYmW6VE+QUQ+AH5ojFnda/ldwF5jzEDPwbxKRGKAVmOMEZErgfnGmHlOx6WU6pte0Sl15E4GHrTG6e3i8KtPpZSP0Ss6FdBEZAWuitrurjbGFDsRD/hmTEoFMk10SimlApr2ulRKKRXQNNEppZQKaJrolFJKBTRNdEoppQLa/wNbQedMjWJF3QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "penguins = sns.load_dataset(\"penguins\") \n", "\n", "# axes-level plots\n", "\n", "# create two subplots and set the figure size\n", "plt.rcParams[\"figure.figsize\"] = (12, 5)\n", "fig, ax = plt.subplots(1, 2)\n", "\n", "# create two axes-level plots of a distribution of a single quantitative variable\n", "sns.histplot(data=penguins, ax = ax[0], x=\"flipper_length_mm\", hue=\"species\", multiple=\"stack\");\n", "sns.kdeplot(data=penguins, ax = ax[1], x=\"flipper_length_mm\", hue=\"species\", multiple=\"stack\");\n", "\n", "\n", "# create a figure-level plot of a distribution of a single quantitative variable\n", "sns.displot(data=penguins, x=\"flipper_length_mm\", \n", " hue=\"species\", multiple=\"stack\", kind=\"kde\");\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 2: Revisiting manipulating and visualizing the avocado data\n", "\n", "Let's revisit manipulating and visualizing the avocado data but using popular Python Data Science packages. \n", "\n", "Below we reload these packages, although not really necessary if one has loaded them already. It is recommended that all packages are loaded at the top of a Jupyter notebook.\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# importing packages that we will use \n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# make sure we can display figures in the Jupyter notebook\n", "%matplotlib inline\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.1: Loading the avocado data\n", "\n", "Let's reload the avocado data as a pandas DataFrame using the `pd.read_csv(\"csv_or_url\")` method. We will also convert the `Date` column to a `datetime` data type. \n", "\n", "**Exercise 2.1**: Please show the first 5 rows of the avocado DataFrame using `df.head(5)` method.\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "avocado = pd.read_csv(\"avocado.csv\")\n", "\n", "# convert the Date column to a \"datatime\" data type\n", "avocado['Date'] = pd.to_datetime(avocado['Date'])\n", "\n", "# Ignore this (this will remove a warning later that arises in later exercises when plotting with dates)\n", "from pandas.plotting import register_matplotlib_converters\n", "register_matplotlib_converters()\n", "\n", "\n", "# show the first 5 rows of the avocado DataFrame\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.2: Relabeling columns\n", "\n", "Let's rename the `4046`, `4225` and `4770` columns. The code below does this using a `df.rename()` method which takes a dictionary of elements to describe how the columns should be renamed. A Python dictionary is a data structure that enables you to look up a value based on a key that is supplied. \n", "\n", "If you would like to know more about Python dictionary let me know and we can discuss them!\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "avocado2 = avocado.copy()\n", "\n", "# rename using a dictionary - requires knowledge of a dictionary\n", "avocado2.rename(columns = {\"4046\": \"sold_nonorg_sm\", \n", " \"4225\": \"sold_nonorg_l\",\n", " \"4770\": \"sold_nonorg_xl\"}, \n", " inplace = True)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.3: Reducing (filtering) the data to a smaller number of rows\n", "\n", "To filter data using pandas requires creating a \"Boolean mask\". We do this by creating a Series of Boolean values (True's and False's) that meet particular criteria. Once we have this mask we can use it to select only the columns that are listed as True (this is similar to how one can filter rows of an R data frame in base R). \n", "\n", "**Exercise 2.3**: The code below filters the avocado data to get only the data from the Northeast. Please use the `df.shape` property to see how many rows this DataFrame has. Also play around with the code to explore filtering the data in other ways.\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 False\n", "1 False\n", "2 False\n", "3 False\n", "4 False\n", " ... \n", "18244 False\n", "18245 False\n", "18246 False\n", "18247 False\n", "18248 False\n", "Name: region, Length: 18249, dtype: bool\n" ] } ], "source": [ "\n", "# print the boolean mask\n", "the_mask = avocado2.region == \"Northeast\"\n", "\n", "print(the_mask)\n", "\n", "# filter the data based on a boolean mask\n", "avocado3 = avocado2[the_mask]\n", "#avocado3 = avocado2[avocado2.region == \"Northeast\"]\n", "\n", "# print how many rows the \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.4: Selecting a subset of the columns\n", "\n", "We can select a subset of columns using the syntax `df[[\"col1\", \"col2\", \"col3\"]]`; i.e., we pass a list of columns we would like to select into our data frame `df[]`. \n", "\n", "**Exercise 2.4**: Create a DataFrame `avocado4` that only has only the columns:\n", "- Date\n", "- AveragePrice\n", "- Total Volume\n", "- type" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.5: Creating separate tables for conventional and organic avocados (can skip)\n", "\n", "To gain more practice with filitering data in pandas, let's create separate DataFrames that have the conventional and organic avocados.\n", "\n", "**Exercise 2.5**: Please create a DataFrame called `conventional` that only has data from conventional avocados, and a DataFrame called `organic` that only has data from organic avocados. Then print the number of rows in each DataFrame.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.6a: Supply and demand visualization using Matplotlib\n", "\n", "Let's create a scatter plot of the volume of avocados sold as a function of their price using Matplotlib. To do this we can use the `plt.scatter(\"x_col\", \"y_col\")` function. \n", "\n", "**Exercise 2.6**: Please go ahead and create the scatter plot. You can also use the `plt.xlabel(\"label\")` and `plt.ylabel(\"label\")` to add better labels to the axes.\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# plotting using Matplotlib pylab interface\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.6a: Supply and demand visualization using seaborn\n", "\n", "Let's also create a scatter plot of the volume of avocados sold as a function of their price using seaborn. To do this we can use the `sns.relplot(data = df, x = \"x_col\", y = \"y_col\")`.\n", "\n", "**Exercise 2.6**: Please go ahead ans create the scatter plot. Create two versions of this plot that have one additonal argument which is either:\n", "- `col = \"type\"` \n", "- `hue = \"type\"`\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.7: Joining Tables (can skip)\n", "\n", "In order to practice joining DataFrames, let's join the information about conventional and organic avocados into a single wide DataFrame. \n", "\n", "To join to DataFrames together we can use the `df1.merge(df2, on = 'Date', suffix = ('_left_suffix, '_right_shuffix')` method. Where:\n", "- `df1` is the first DataFrame we want to join\n", "- `df2` is the second DataFrame we want to join \n", "- `on` is the name of a column that both tables have in common that we want to join on\n", "- `suffix` is an optional tuple that specifies a string to append to the names of the left and right columns\n", "\n", "\n", "Note: different types of joins are possible, see `? df.merge` for more details.\n", "\n", "**Exercise 2.7**: Please create an variable `wide_data` that has the data from `conventional` DataFrame joined with the `organic` DataFrame. Then print the first 5 rows of this DataFrame. \n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.8: Are organic avocados really more expensive? \n", "\n", "Now we are ready to again address whether organic avocados are really more expensive and by how much! Let's start addressing this question by visualizing the data and overlapping histograms using seaborn.\n", "\n", "**Exercise 2.8**: Please use the `sns.displot(data = df, x = \"x_col\", hue = \"hue_col\", kind = \"plot_type\")` method to plot overlapping kernel density estimates of the average avocado price where:\n", "\n", "- `df` is the data frame you want to plot the data from\n", "- `\"x_col\"` is the name of the data column you want to plot\n", "- `\"hue_col\"` is the name of the column that specifies the type of avocado \n", "- `\"plot_type\"` should be set to the string \"kde\" to plot a kernel density estimate\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.9: Are organic avocados really more expensive? Additional visualizations!\n", "\n", "Let's use seaborn to create some additional visualizations comparing conventional and organic avocados. \n", "\n", "**Exercise 2.9**: The code below uses `sns.catplot()` function to create a stripchart of the data for the conventional and organic avocado prices. Please create versions of the plot that plot the same data but that create different plots by setting the `kind` argument to the following values:\n", "\n", "- `\"box\"` to create a boxplot\n", "- `\"swarm\"` to create a swarmplot\n", "- `\"violin\"` to create a violin plot\n", "- `\"point\"` to create a single connected point at the category means\n", "- `\"bar\"` to create a dynamite plot\n", "\n", "You can also use `? sns.catplot` to see more options. Which type of plot do you think looks best? \n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "\n", "# default kind is stripplot\n", "#sns.catplot(data = avocado4, x = \"type\", y = \"AveragePrice\", kind = \"strip\")\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.10: Getting the difference in conventional and organic prices for each date (can skip)\n", "\n", "Another way we can assess whether organic avocados are more expensive than conventional avocados is to compare their prices on each date. \n", "\n", "To examine this in pandas, we can pull a Series out of our DataFrame using the syntax: `my_series = df[\"colum_name\"]`. If we have two Series with the same index values in `my_series1` and `my_series2`, then we can create an Series that has the differences between each index value using `diff_series = my_series1 - my_series2`.\n", "\n", "\n", "**Exercise 2.10**: Please complete the following steps to create a Series called `price_difference` that has the difference in prices of organic and conventional avocados for each date:\n", "\n", "1. Extract a Series from the `wide_data` DataFrame that has the prices of organic avocados and store it in a variable called `organic_array`. \n", "2. Extract a Series from the `wide_data` DataFrame that has the prices of conventional avocados and store it in a variable called `conventional_array`. \n", "3. Create a variable called `price_difference` that is a Series that has the difference in prices between the organic and conventional avocados.\n", "4. Use the `min()` and `max()` functions to find what the minimum and maximum price differences are. Does this provide evidence that organic avocados are always more expensive? \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.11: Adding a column that has the difference in organic and conventional prices our wide DataFrame (can skip)\n", "\n", "Now that we have a Series of price differences, we can add these price differences back as a column to our wide data table. To add an Series to a DataFrame, we can use `df[\"new_col_name\"] = series_to_add`; note: the `series_to_add` needs to have the same number of elements as the number of rows in `df`.\n", "\n", "**Exercise 2.11**: Please add a new column called `Price difference` to the `wide_data` DataFrame which has the difference in organic and conventional avocado prices. Once you have added this column, using the `df.head(5)` to see the first 5 rows of the DataFrame.\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.12: Calculating summary statistics (can skip)\n", "\n", "We can calculate summary statistics, such as the mean and standard deviation, on values in a DataFrame using `df.mean()` and `df.std()`. \n", "\n", "**Exercise 2.12**: Using the `wide_data` DataFrame, calculate the mean and standard deviation of the conventional prices and organic prices. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.13: Calculating summary statistics II\n", "\n", "We can also calculate summary statistics on a DataFrame using `df.groupby(\"grouping_column\").agg_method()` method. Let's try that approach here as well.\n", "\n", "**Exercise 2.13**: Use the `avocado4` table to calculate the mean conventional and organic avocado prices. Hint, to calculate the mean of the values in a DataFrame use `df.mean()`. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part 2.14: Explore on your own! \n", "\n", "Try exploring the data further to see if you can find anything else interesting in it! \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:wavfacdev]", "language": "python", "name": "conda-env-wavfacdev-py" }, "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.7.10" } }, "nbformat": 4, "nbformat_minor": 5 }