{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Matplotlib\n", "\n", "In this lecture we will talk about how to produce scientific graphs using the python library [matplotlib](https://matplotlib.org/).\n", "Matplotlib provides a variety of functions that will allow you to quickly and easily produce a variety of useful, pretty graphs.\n", "\n", "Matplotlib is not included by default withpPython. It is a separate python library that is downloaded and installed alongside python. If you installed python using anaconda, you probably already have it.\n", "\n", "In order to use matplotlib you need to import it like this\n", "```\n", "import matplotlib.pyplot as plt\n", "```\n", "The name after `as` is just an abbreviation for the library. That means that, whenever we want to use a function from matplotlib, we will prefix it with `plt`.\n", "\n", "**DISCLAIMER:** The graphs we will plot here are highly customizable, and we are far from exhausting every configuration option. We encourage you to check [matplotlib's documentation](https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html) and the [gallery of examples](https://matplotlib.org/gallery/index.html) to find out more.\n", "\n", "## Prelude\n", "\n", "The code below is similar for all that comes afterwards, so we will keep it once here to avoid having to copy/paste it everywhere." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import math\n", " \n", "# Generates a range of floating point numbers\n", "def rangeFloat(low, hi, step):\n", " res = []\n", " i = low\n", " while i < hi:\n", " res.append(i)\n", " i += step\n", " return res" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot\n", "\n", "The `plot` graph simply plots whatever coordinates we pass to it.\n", "\n", "If we pass coordinates separately, it plots the points:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "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", "def drawPoints():\n", " # Setting the plot's title\n", " plt.title(\"My first graph\")\n", "\n", " # Setting the label for the x and y axes\n", " plt.xlabel(\"x axis\")\n", " plt.ylabel(\"y axis\")\n", "\n", " # Plotting each point separately\n", " # 'b' stands for blue, and 'o' stands for circle\n", " plt.plot(1,1,'bo')\n", " plt.plot(2,4,'bo')\n", " plt.plot(3,9,'bo')\n", " plt.plot(4,16,'bo')\n", " plt.plot(5,25,'bo')\n", "\n", " # Renders the graph on the screen\n", " plt.show()\n", " \n", "drawPoints()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, we can pass the x coordinates as a list (first parameter) and the y coordinates as a list (second parameter). In this case, mathplotlib will connect the dots. Observe that the lists must be in the correct order. That means that (x,y) coordinates of the same point need to be at the same position in both lists." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAHLJJREFUeJzt3XuclnP+x/HXR6LIoTQ/+ikby4Of\ndQiDyLEUFZWN5BhaWYms8MtpyWazct6IpN+2TkWTUnKoRFjFdFhyzDqEThMqKdU0n98f39tKO9Pc\nM3Pf9/e+73k/H495dM9137PXe69t3nv1vb7X9zJ3R0REct8WsQOIiEhqqNBFRPKECl1EJE+o0EVE\n8oQKXUQkT6jQRUTyhApdRCRPqNBFRPKECl1EJE9smcmdNW7c2Js3b57JXYqI5LxZs2Ytc/eCyj6X\n0UJv3rw5xcXFmdyliEjOM7MvkvmchlxERPKECl1EJE+o0EVE8oQKXUQkT6jQRUTyRKWFbmbNzGya\nmb1vZu+ZWd/E9pvN7Gszm5v46pD+uCIiUpFkpi2WAv3cfbaZbQfMMrPJiffudvc70hdPRESSVekZ\nursvcvfZidffAx8Au6Y7mIhIXvjhB+jbF5YvT/uuqjSGbmbNgYOAmYlNfczsHTMbYWYNK/iZXmZW\nbGbFJSUlNQorIpJTvv8e2reHIUPgjTfSvrukC93MGgBFwBXuvhIYCvwaaAEsAu4s7+fcfZi7F7p7\nYUFBpXeuiojkh+XLoV07+Mc/4MknoWPHtO8yqUI3s7qEMn/c3ccCuPsSd9/g7mXAw8Bh6YspIpJD\nvv0W2raFWbPg6aehW7eM7DaZWS4GPAJ84O53bbS9yUYfOxWYl/p4IiI5ZtkyaNMG3nkHxo6FU0/N\n2K6TmeXSCjgXeNfM5ia2XQecaWYtAAc+By5OS0IRkVyxZEko83/9CyZMCEMuGVRpobv764CV89ak\n1McREclRCxeGMl+wAJ57Dlq3zniEjC6fKyKSl778MhT44sXwwgtw9NFRYqjQRURq4vPP4fjjw4XQ\nl16CI46IFkWFLiJSXZ98Es7MV62CqVOhsDBqHBW6iEh1fPhhGDNftw5efhlatIidSIUuIlJl8+bB\nCSeAO0ybBvvtFzsRoOVzRUSq5p//DGPmW2wBr76aNWUOKnQRkeTNmhXKvF69UOb77BM70S+o0EVE\n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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawLine():\n", " # First parameter: x coordinates\n", " # Second parameter: y coordinates\n", " # 'r' stands for red\n", " plt.plot([1,2,3,4,5],[1,4,9,16,25], 'r')\n", " \n", " plt.show()\n", " \n", "drawLine()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we make the coordinates closer, the line will look smoother. The function below plots a graph of the sine function, using x coordinates at every 0.1." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawSineGraph():\n", " # Generate a list containing all the values from 0 to 10 \n", " # with a step of 0.1. We'll use these as our x-values.\n", " x = rangeFloat(0,10,0.1)\n", "\n", " # For each x value, generate the appropriate y-value.\n", " sin_x = []\n", " for i in x:\n", " sin_x += [math.sin(i)]\n", "\n", " # Plot the x,y values with a blue line\n", " plt.plot(x, sin_x, 'b')\n", " plt.title(\"This is the title!\")\n", " plt.xlabel(\"X-Axis Label\")\n", " plt.ylabel(\"Y-Axis Label\")\n", "\n", " # Show the plot\n", " plt.show()\n", " \n", "drawSineGraph()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot more than one graph in one." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawSineCosineGraph():\n", " # Generate a list containing all the values from 0 to 10 \n", " # with a step of 0.1. We'll use these as our x-values.\n", " x = rangeFloat(0,10,0.1)\n", "\n", " # For each x value, generate the appropriate y-value.\n", " sin_x = []\n", " cos_x = []\n", " for i in x:\n", " sin_x += [math.sin(i)]\n", " cos_x += [math.cos(i)]\n", "\n", " # Plot sine with a blue line and cosine with a red line\n", " plt.plot(x, sin_x, 'b')\n", " plt.plot(x, cos_x, 'r')\n", " plt.title(\"This is the title!\")\n", " plt.xlabel(\"X-Axis Label\")\n", " plt.ylabel(\"Y-Axis Label\")\n", "\n", " # Show the plot\n", " plt.show()\n", " \n", "drawSineCosineGraph()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pie charts\n", "\n", "The `pie` function from matplotlib plots pie charts. It expects a list of values as a parameter, and it will create one pie slice for each one of those values. The whole pie corresponds to the sum of values.\n", "\n", "Optionally, we can pass a named parameter to this function to determine the label of each slice. The name of this parameter is `labels`, and the label must be at the same position in the list as its slice.\n", "\n", "Another useful optional paramter for the `pie` function is `autopct=\"%.1f%%\"` which writes the percentage of each slice on the pie." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZwAAAGeCAYAAACgibcyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XecXGXd/vHPdwtpm0wKLYTAIIFI\nYEgCCCjBJ4CKGiSoCFhgQEWw8ahYxgfUUQTCY3sAjaA/1BVBlCbCIIoQQBAIkACHEoySpQZIQtqm\nbrl/f5xJWNK2zZz7zDnX+/XaV3aZstfo7rn2/s4p5pxDRESk2up8BxARkXRQ4YiISCRUOCIiEgkV\njoiIREKFIyIikVDhiIhIJFQ4kmpmdpmZfatKz/0bM/t+NZ5bpBapcKRmmdldZrbUzAb04H5rzazV\nzBab2Q1mNhrAOXemc+68Pn5/M7OzzOwJM1tlZi+a2bVmluvL8/Xg+xXN7HfVeG6RKKhwpCaZWRY4\nHHDAsT14yBecc03A3sBw4CcViHEx8N/AWcDI8nP/CZhWged+EzNrqPRzikRNhSO16hTgAeA3QL6n\nD3LOvQ5cD+wHm4+9zOwYM3vUzJaZ2T/NbP8tPY+Z7QV8Hvioc+5O59w659xq59xVzrkZXe46wsxK\nZrbSzB40sz27PMfFZvaCma0ws0fM7PAutxXN7Doz+52ZrQDOBP4HOLG8Unusp69ZJC5UOFKrTgGu\nKn8cbWY79eRBZrY98GFg7hZumwz8CjgDGAVcDvx5KyO7o4AXnXOzu/mWJwHfBUYA/wbO73LbQ8Ak\nwtXR1cC1Zjawy+3TgesIV2RXABcAf3DONTnnJnbzfUViR4UjNcfMpgC7A390zj0C/Af4WDcPu8TM\nlgGPAQuBr2zhPp8BLnfOPeic63DONQPrgEO3cN9R5efpzo3OudnOuXbCcpy04Qbn3O+cc0ucc+3O\nuR8BA4DxXR57v3PuT865Tufcmh58L5FYU+FILcoDf3POLS5/fTXdj9XOcs4Nd86Ncc593Dm3aAv3\n2R04uzxOW1YuqLHALlu47xJgdA+yvtLl89VA04YvzOyrZva0mS0vf68MsH2X+7/Qg+cXqRl6I1Jq\nipkNAk4A6s1sw8Z8ADDczCY65/rz3sYLwPnOufO7vSfcAfzMzA5yzj3c229Ufr/m64SjuSedc51m\nthSwLnfb9FTuOrW71DStcKTWHAd0ABMIx1OTgH2AfxC+r9MfvwTONLNDyrs8DzGzaWY2dNM7Oufm\nAzOB35vZVDPbzswGmtlJZlbowfcaCrQDi4AGM/s2MKybx7wKZM1Mv7dSk/SDK7UmD/zaOfe8c+6V\nDR/AT4GP92f34fJK5fTycy0lfJP/1G085KzyfX8GLCN8L+mDwM09+HZ/BW4D/gU8B6yl+xHateV/\nl5jZnB58D5FYMV2ATUREoqAVjoiIREKFIyIikVDhiIhIJFQ4IiISCRWOiIhEQoUjIiKRUOGIiEgk\nVDgiIhIJFY6IiERChSMiIpFQ4YiISCRUOCIiEgkVjoiIREKFIyIikVDhiIhIJFQ4IiISCRWOiIhE\nQoUjIiKRUOGIiEgkVDgiIhIJFY6IiERChSMiIpFQ4YiISCRUOCIiEgkVjoiIREKFIyIikVDhiIhI\nJFQ4IiISCRWOiIhEQoUjIiKRUOGIiEgkVDgiIhIJFY6IiERChSMiIpFQ4YiISCRUOCIiEgkVjoiI\nREKFIyIikVDhiIhIJFQ4IiISCRWOiIhEQoUjIiKRaPAdQCTWipmBwOAuHwOADqBtmx/F5Z1e8orE\nmDnnfGcQqb5ixoAdgJ2B0V3+7fr59sAQ3iiXgfR9CrACWAIs7vLvpp+/ADxLcfmiPn4PkZqiwpHk\nCEtlN2AfYG9gry4fuxHfFf0KYAHwH+DZTf5doNWSJIUKR2pTOOo6ADgEmAjsC7wVaPIZqwpWA48D\nc8ofc4EnKC5f7zWVSB+ocCT+wpXLeMJyOQQ4GNgfaPQZy6M24EneKKF/Ao9pJSRxp8KR+Clm6oCD\ngPcA7wTeBgz3min+lgJ3A7PKH09QXK5fbokVFY7EQzGzK3A0Ycm8CxjpN1DNWwzcxYYCKi5/2m8c\nERWO+FLMDACOICyZownf6JfqaQFuBv4M3E1xeZvfOJJGKhyJTjHTSLiCORE4Fsj4DZRay45b993f\nPer2uhP4S8uMaWt9B5J0UOFIdRUzDYQjshOA44ARfgNJm6t/Ya91V44tf9kK3AJcS1g+a/wlk6RT\n4UjlhXuVTQU+CnwIGOU1j7zJXR37331qW+G/tnDTKuAG4PKWGdPuiziWpIAKRyqnmNkBOA04HRjn\nOY1sxQnrvvXUbLfPhG7u9gRwOXBly4xpyyOIJSmgwpH+K2amAmcQrma28xtGtmWTcVpPrAauAS5r\nmTHtoSrFkpRQ4QBmNhC4h/DEjA3Adc6575Rv24PwF24U8AhwsnNu/SaPPxU4yDn3hW18jyLQ6pz7\nYS9ytTrn4nnkfDEzEsgDnyE8wl9qwDbGaT0xl3DVc1XLjGmtFYwlKaHLE4TWAUc65yYCk4D3mtmh\n5dsuAn7inBtHeHDdpzxljIdiZhzFzOXAS8CPUdnUlJnt03fox8MnA5cBL2cLpcuyhdL+FYolKaHC\nAVxow19sjeUPZ2YGHAlcV76tmXBPq60ysw+Y2YNmNtfM/m5mO3W5eaKZ3W9m883s9C6P+ZqZPWRm\nj5vZdyv3yiqomJlEMXMNMI9wVTPQcyLppTZX/0IP3rvpiaGEI9THsoXSTdlC6YAKPKekgAqnzMzq\nzexR4DXgdufcg4RjtGXOufby3V4ExnTzVPcChzrnJhOO4r7e5bb9CQvs7cC3zWwXM3sP4dmMDyZc\nXR1oZu+s1Ovqt2LmcIqZWwnHKScC9Z4TSR/d27nff6rwtMcCj2QLpZuzhdJBVXh+SZC4nq49cs65\nDmCSmQ0HbjSz/YBX+vBUuwJ/MLPRhG+gL+hy203OuTXAGjObRVgyUwgPhpxbvk8TYQHd07dXUgHh\nbs3TgAJwmLccUlE/bz92xyo+/THAMdlC6VagqB0MZEu0wtmEc24Z4fmn3kt4sazhZrahmHclfO9i\nWy4FfuqcyxGOHbqOnjbdQ8MBBlzonJtU/hjnnLuiv6+jz4qZo4CHCE+DorJJiAqO07rzfmB2tlC6\nNVsoHRLB95MaosIBzGyH8soGMxsEvBuY58Jd+GYBx5fvmgdu6ubpMrxRSvlNbptuZgPNbBThgZEP\nAX8FPmlmTeXvP8bMqvmX6JYVM/tTzNwG/B04MPLvL1VVpXHatrwPeCBbKN2WLZTeHvH3lpjSSC00\nGmg2s3rCEv6jc+6W8m3fAK4xs+8Tjr26W30UgWvNbClwJ7BHl9seJyyw7YHznHMvAy+b2T7A/eE+\nCrQCnyB8L6n6ipmxwHnAyegPkMSq8jhtW44Gji6P2r7UMmPafE85JAZ0HE5aFTPDgW8CZ6E9zhKt\nDwd7Vss64EfA+S0zpq32HUaip79o06aYqaOY+QLwH8I96FQ2CedhnLY1A4D/AZ7OFkof9h1GoqcV\nTpoUMwcQHimu3VdT5IR133p6ttsnjtcbuh34YsuMac/4DiLRUOGkQTHTRPg+zRfRcTSpEqNx2tas\nB34CnNcyY9oq32GkujRSS7pi5jjgKeBLqGxSJ0bjtK3ZjnDHnHnZQukE32GkurTCSapw77NLgem+\no4g/MR6nbc0dwKdbZkxr8R1EKk8rnCQqZj5LuKpR2aRY+WDPWiobgKMIz9F2su8gUnla4SRJMTMa\n+BXhWRIk5WZ1TLz7tLZv9PVSBHFwDfDZlhnTlvkOIpWhFU5SFDPHAwEqGymb2T7d18GelXIS4Wqn\nlktTutAKp9aFe6BdCpzqOYnESA3sndYbncAPgG+1zJjW5juM9J1WOLWsmDkQmIPKRjZxb+d+z/rO\nUEF1hHuy3Z8tlMb7DiN9p8KpVcXMV4B/El7KQORNEjBO25IDgTnZQulM30GkbzRSqzXFzGDCE4ie\n5DuKxFPCxmlbcxNwSsuMaSt8B5Ge0wqnlhQzexCualQ2slUJG6dtzXTCyx/s6TuI9JwKp1YUM+8C\nHgYm+o4i8ZbQcdqW7AM8mC2UpvoOIj2jwqkFxczXgNuAkb6jSLy1ufrnH3JvrbWDPftjFPC3bKH0\nGd9BpHu6AFuc6f0a6aV/dOaeBXbznSNijcDl2UJpP+DLLTOmdfgOJFumFU5chWcNuA+VjfTCz9uP\n3cl3Bo++CNyaLZSG+w4iW6bCiaNiZjxwPzDJdxSpHSkcp23Jewh3JtDhAjGkwombYuYQ4F5gd99R\npLaUx2kC4wl3JjjKdxB5MxVOnBQz7wfuBLb3HUVqz8/bj93Zd4YYGQHcli2UPu47iLxBhRMXxcyp\nhAezDfacRGpQeZz2Vt85YqYB+G22UDrNdxAJqXDioJgpAL9Gew1KH2mctlV1wBXZQukM30FEheNf\nMfND4ELfMaS2aZy2TQZcli2Uvug7SNqpcHwqZn4AnO07htQ2jdN67JJsofRV3yHSTIXjSzEzA9AP\nv/Sbxmm98oNsoXSO7xBppcLxoZg5n/D6HiL9pnFar30/Wyh9z3eINFLhRK2Y+S7wP75jSDJonNZn\n38oWSjN8h0gbFU6UiplvA9/2HUOS4x+duQW+M9Swb2QLpR/5DpEmKpyoFDPfBL7rO4YkS4ouRVAt\nX8kWSl+r5jcws7FmNsvMnjKzJ83sv7vcNtLMbjez+eV/R2zh8VPN7JZuvsepZvbTXuZqMbNIDzJX\n4UShmPk0cIHvGJIsba7++Yfd+LSfO60SLsoWStU8SW47cLZzbgJwKPB5M5tQvq0A3OGc2wu4o/x1\nYqlwqq2YeS/wc98xJHk0TqsYA36TLZTeWY0nd84tdM7NKX++EngaGFO+eTrQXP68GThum0HNDjaz\n+81srpn908zGd7l5rJndVV4tfafLYz5hZrPN7FEzu9zM6iv24npJhVNNxcxk4Fp0BgGpAo3TKmoA\n8KdsoVTVFaOZZYHJwIPl/7STc25h+fNXgO4uLzEPONw5N5nw/eCuk5ODgQ8D+wMfMbODzGwf4ETg\nMOfcJKAD8HZ+OW0Iq6WY2R0oAU2+o0jytLn65zROq7gRwF+yhdKhLTOmvVLpJzezJuB64EvOuRWb\n3u6cc2bmunmaDNBsZnsBjvDicxvc7pxbUv5eNwBTCMd5BwIPmRnAIOC1/r6WvtIKpxqKmeHArcBo\n31Ekme7p3F/jtOrYHShlC6WK/qFoZo2EZXOVc+6GLje9amajy/cZTfdlcB4wyzm3H/ABYGCX2zYt\nK0c4Lmx2zk0qf4x3zhX78VL6RYVTacXMdsCNwITu7irSVym/sme1HQD8MVsoVeS9DguXFlcATzvn\nfrzJzX8G8uXP84RnjN+WDPBS+fNTN7nt3eW93gYRvhd0H+GOCMeb2Y7lLCPNzNu1tlQ4lfcrYKrv\nEJJcGqdF4n1Ubmefw4CTgSPLb9w/ambvL982g7Ao5gPvKn+9Lf8LXGhmc9n8LZHZhKuox4HrnXMP\nO+eeAs4F/mZmjwO343HyYs51NzKUHitmvgxs+heMSEXd0TH5rk+1fW2q7xwpcU7LjGk6pKFCtMKp\nlGJmCuFfHyJVpXFapL6fLZTe6ztEUmiFUwnFzM7AHLSTgFRZm6t/bq91V3qbwafUEuCAlhnTnvcd\npNZphdNfxUwD8AdUNhIB7Z3mxSjCnQi28x2k1qlw+m8GUJUjlEU2NVOXIvDlEEAn+uwnjdT6o5g5\nnvBMAiJVp3FaLJzUMmPaH3yHqFVa4fRVMbM34S7QIpHQOC0WLs8WSnv4DlGrVDh9Eb5vcxUw1HcU\nSQ+N02IhA1ydLZR0WrA+UOH0zTnAQb5DSHq0ufrnHnHjdWXPeDgUXduqT1Q4vVXMHEh45K5IZO7p\n3L/FdwZ5k0K2UDrCd4hao8LpjWJmIHAlOsu2ROxn7dN1sGe81AFXZgul4b6D1BIVTu9cAOgcVhKp\nNlf/3By3t8Zp8TOG7s99Jl2ocHqqmJkKfMl3DEkfjdNi7TPZQukw3yFqhQqnJ4qZocBvCK8tIRIp\njdNizQh3lW7s9p6iwumhiwgvzCQSKY3TasK+wNd9h6gFKpzuhHulneE7hqSTxmk149xsobSX7xBx\np8LZlmKmDpiJ/ncSTzROqxkDgct8h4g7bUi37dPAwb5D+LS23XHwL1uZeFkr+85s5Tuz1gKwYGkn\nh/y/VsZdspITr1vN+o4tn5Pvwn+sY9wlKxn/01b++u92ABat6mTKr1ax38xW/jSvbeN9p1+zmpdX\ndlb/RdWI9Rqn1Zojs4XSKb5DxJkKZ2uKmVGEu0Gn2oB6uDM/hMfObOLRM4Zw23/aeeDFdr7x97V8\n+dAB/PusoYwYaFwxp22zxz61qINrnmzjyc81cdvHB/O5W9fQ0en4/RNtnHlQI7NPH8L/PbAegJuf\naWPyznXsMlQ/khvo3Gk16UfZQml73yHiSr/dW3ch4XUwUs3MaNou3DmvrRPaOsLdcu5c0MHxE8Lj\nX/MTG/nTM5sXzk3z2jlp30YGNBh7jKhj3Mg6Zr/UQWOdsboN1rVDfR20dzr+78H1fP2wAVG+tNib\n2T5d506rPdsDP/QdIq5UOFtSzBwMfMp3jLjo6HRMuqyVHX+wkne/pYE9R9YxfCA01IVFtOuwOl5a\nsflI7aWVnYzNvLEn+a5D63hppeNjuUZueqadd1+5iv+ZMoCZD63n5P0bGdyovc430DitpuWzhdJU\n3yHiSKdo2VS4o8DPUBlvVF9nPHpmE8vWOj74h9XMW9y/91kyA43SxwYDsHSNY8Z967jxxMGc/uc1\nLF3rOPvt2/H2sen+0SyP07Qrfu36AfA23yHiRhvVzZ2MzgS9RcMHGkdkG7j/hQ6WrQ1HYQAvruhk\nzLDNVydjhtbxwvI3Vj4vruxkzNA33++8e9ZxzuED+H3QxpTd6mk+bhDFu9dV94XUgJnt03XJ8tp2\nULZQ+pDvEHGjwumqmBkAfM93jDhZtKqTZWvD0ljT5rj92Xb22aGOI/ao57qnwr3Omh9rY/r4zQ+0\nPnZ8A9c82ca6dseCpZ3MX9LJwWPqN94+f0kHL67oZGq2gdVtjjoDM1iz+dtBqVIep433nUP67bxs\noaRtbBfpnlts7nPAbr5DxMnCVkf+T6vp6IROByfs28gxezcyYYd6TrpuNefeuZbJo+v51OSwcP78\nTBsPv9zB944YyL471nPChEYmzGyloc742fsHUl/3xgrnnDvXcf6R4Y4CH801ctw1a5hx33q+NzXd\nOw9onJYYE4BPAL/1HSQuzLktHz+ROsXMMOBZtGeaePahdcVntMJJjAXA+JYZ01K+bg9pufeGr6Cy\nEc80TkucPQgPIBdUOKFiZgS69IDEgA72TKRzs4XSIN8h4kCFE/oqkPEdQkR7pyXSLsDnfYeIA72H\nU8xsTzhnbfIdRdJtvat/bu91V2pngWRaAuzRMmPaSt9BfNIKB85CZSMxcE/nxBbfGaRqRgFn+w7h\nW7oLp5gZBHzWdwwRgJ/p3GlJ95VsoZTq0X26CwfyhCfbE/Fqvat/bq7bS3unJdtQ4FTfIXxKb+EU\nMwZ82XcMEdA4LUU+ny2UUnuW2vQWDnwA2Nt3CBHQOC1F9gKO9h3ClzQXzld8BxABWO8aWjROS5Uv\n+g7gSzoLp5g5EPgv3zFEAO7u3L/FdwaJ1PuyhdI43yF8SOvJO1O/e6LER60c7Nm+YhGLSz+mc9Uy\nwGiadDTDDppOx5qVLL7pItpXvErDsJ3Y/rgC9QM3P9KgNbiD5fdfA0Dm7SfRlDsK197GazecR8fK\nxQydPI2hB0wDYMltl9I06X0M2DmR22UjPBA0de8hp2+FU8zsBHzEdwwRqLFxWl09I474FLt8+ufs\nfPIPWTmnxPrFz7PigWsZmJ3ImM/8koHZiax44NrNHtqxZiXL77uanU/+MTuf8hOW33c1HWtbWbNg\nDgN2ncDoT/6U1ifvBGD9a8/iOjuTWjYbnJYtlIb4DhG19BVOeIG1tK7sJGZqaZzW0DRyYwnUDRhM\n46ixdKxcwup/P8iQ/Y4CYMh+R7F6/gObPXbtgjkMzE6mftBQ6gc2MTA7mbXPPoLV1ePa1kFHB5RP\nerLsH79j+OGfiOx1eZIh3BalShoL5zTfAUQ2qJVx2qbal7/K+lefZcAu4+lYtYyGppEA1A8ZQceq\nZZvff+US6oe9cchb/dBRtK9cwsA9JtO+/DUWXnk2ww76AKvnP8h2O+1Jw9BUnLj9C74DRC1dhVPM\nHEx4USQR72pqnNZF5/o1LLrxAkYedTp1Awa/6TYzozcHmVhdPTsc+zV2Oe0SBo+fwoqHb2LY2z7I\n63f8kkU3XsDq+Q9WNny87JstlI70HSJK6SocrW4kRmppnLaB62hn0Y0XMGTCVAaPfwcA9UOG0976\nOgDtra9TN2T4Zo9rGDqKjhWLN37dsXLJZquYlXNLNO13JOtefoa6AUPYfvo3WPHQjVV8NbFwpu8A\nUUpP4RQzA4GTfMcQ2WBm+/RdfGfoDeccS/5yMY2jxjLs4A9u/O+Dxx3CqifuAGDVE3cweNwhmz12\n4B4HsKZlLh1rW8OdBVrmMnCPAzbe3rG2lTX/fogh+x2Ja18HZmAWfp5sx6Rp54E0vXl+HLD5n14i\nHpTHaTV1pot1Lz3Fqidn0bhDlpd/HR67OOKdpzDs0ONZfNMMWh//Gw3DdmT76YXw/gvn0/roXxj1\nvrOoHzSU4e84kVeawz2Bh7/jJOoHDd343Mvv+z2Zd5yAWR2D9jiAlXNKLLziCzRNfl/0LzRag4Bp\nwB99B4lCeq6HU8z8FXiP7xgiALd3HHDX6W1fneo7h8TC9S0zph3vO0QU0jFSK2bGAO/yHUNkg1ob\np0lVvT8tY7V0FA58kPS8Vom5WhynSVVtGKslXlo2wsf5DiCywd2dE5/znUFi5wTfAaKQ/MIpZoaj\nE3VKjOhSBLIFqRirJb9wwqVqmvbGkxhb7xpaHnXjau5gT6m6QcAxvkNUWxoKR+M0iQ2N02QbEn9S\n4WQXTjEzAHiv7xgiG2icJtuQ+LFasgsHjgI2vzCHiAcap0k3Er+3WtILR+M0iQ2N06QHEn28YNIL\nJ/HnxZDaoXGa9ECi96hNbuEUM3sCu/qOIQKw3jUs0DhNemDvbKFUk9dI6onkFk7C/1KQ2nKXxmnS\nc4nddqlwRCJQq1f2FC8Su+1S4YhUmcZp0kuJ3XYls3CKmd2B3X3HEAGN06TX9skWSjv6DlENySyc\nBP+FILVH4zTpg3f6DlANKhyRKtI4Tfpoqu8A1aDCEakijdOkjxK5DUte4RQzI4A9fccQAV3ZU/ps\n32yhNMp3iEpLXuHARN8BRGDjOE1X9pS+MODtvkNUmgpHpEo0TpN+muA7QKWpcESqROM06ScVTg1Q\n4Yh3GqdJBahwYq2YaQD29R1DZFbnxOd9Z5Cat4/vAJWWrMKB8cAA3yFEdLCnVEBTtlAa6ztEJSWt\ncDROE+/Wu4YFj2mcJpWRqLFa0gpnf98BRDROkwpS4cSYDvgU7zROkwpK1Ps4SSscnSFavNI4TSpM\nK5wYU+GIVxqnSYVphRNLxcwgIJHXkJDaoXGaVNjIbKG0s+8QlZKcwoHdfAeQdFuncZpUR9Z3gEpJ\nUuFonCZe3dU5SedOk2rYwXeASlHhiFTIzPZjde40qQYVTgxlfQeQ9NI4TapIhRNDiToFhNQWjdOk\nirb3HaBSklQ4ibs6ntSOme3Tx/jOIImlFU4MZXwHkHQKx2l77uU7hySWCieGhvsOIOmkcZpUmQon\nhlQ44oXGaVJlKpwY0khNIqdxmkRAhRMrxUw90OQ7hqSPxmkSgSHZQmmg7xCVkIzC0epGPNE4TSKS\niFVOUgpH799I5DROkwgN9R2gEpJSOMN8B5D0mdU5SZcikKjU+w5QCUkpnEbfASR9ZrZP17nTJCoq\nnBhJyuuQGrHONSx4XOM0iU6D7wCVkJQNdSLaX2qHxmkSsURs45JSOEl5HVIjNE6TiCWicBKxTDsg\nO7azDdb4ziHp4fjlrk36mZOouHpgmu8U/ZaIwmkzAxjkO4ekh/kOIOliHc53hEpIyiiq03cAEZEq\nSsQ2LimF0+E7gIhIFalwYkSzdBFJstW+A1RCUgpnpe8AIiJVlIhtnApHRCT+ErGNU+GIiMRfIrZx\niSicIB+0Aet85xARqYK1QT5o9x2iEhJROGWJ+AtARGQTidm2qXBEROItMdu2JBXOMt8BRESqIDHb\ntiQVzkLfAUREqiAx27YkFc7LvgOIiFRBYrZtKhwRkXhLzLZNhSMiEm+J2bapcERE4i0x2zYVjohI\nvCVm25akwnnJdwARkSpIzLYtSYXzKrDKdwgRkQpqDfLBq75DVEpiCifIBw74l+8cIiIVlKhtWmIK\np+wZ3wFERCooUdu0pBXOPN8BREQqKFHbtKQVTqL+GhCR1EvUNk2FIyISX4napiWtcP4FON8hREQq\nIHE7QiWqcIJ8sApY4DuHiEgFLAjywWrfISopUYVTNtt3ABGRCnjQd4BKS2LhJO7/JBFJpcRty1Q4\nIiLxlLhtWRILZy7Q5juEiEg/tBFuyxIlcYUT5IO1wOO+c4iI9MNjQT5Y5ztEpSWucMoStxQVkVRJ\n5DZMhSMiEj+J3IapcERE4ieR27CkFs6/gGW+Q4iI9MFSYL7vENWQyMIpXxvnId85RET64KHyNixx\nElk4ZXf5DiAi0gd3+Q5QLUkunJt8BxAR6YPEbrvMuUSu3ADINef+BezlO4eISA/9K8gH432HqJYk\nr3AgwX8piEgiJXqblfTC+ZPvACIivZDobVbSC+d+4FXfIUREeuAV4AHfIaop0YUT5INO4GbfOURE\neuDm8jYrsRJdOGWJXqKKSGIkfluVhsL5O9DqO4SIyDasBO7wHaLaEl845VN83+Y7h4jINtyWxMsR\nbCrxhVOW+KWqiNS0VGyj0lI4JaDddwgRkS1oA271HSIKqSicIB8sA+72nUNEZAvuLm+jEi8VhVOW\niiWriNSc1Gyb0lQ4N6CxmojESzvhtikVUlM4QT54mRT9JSEiNeHGIB8s9B0iKqkpnLJLfQcQEeki\nVdukRF+eYEtyzbnHgP195xBscr3cAAAOZ0lEQVSR1HssyAeTfIeIUtpWOAA/9R1ARIQUbovSWDhX\nAUt9hxCRVHudcFuUKqkrnCAfrAau8J1DRFLtiiAfrPEdImqpK5yymUCiTwMuIrHVSbgNSp1UFk6Q\nDxYQnu5GRCRqtwT5oMV3CB9SWThlqdodUURiI7XbnjQXzt+Beb5DiEiqPB3kg7/7DuFLagsnyAeO\nFO6WKCJepXqbk9rCKWsGVvgOISKpsAL4re8QPqW6cIJ80EpYOiIi1fab8jYntVJdOGU/AhJ/aVcR\n8Wod8GPfIXxLfeEE+eA5Uj5XFZGqu7S8rUm11BdO2fnodDciUh2vE25jUk+FAwT5YClwge8cIpJI\nF6TlEtLdUeG84VKgxXcIEUmUFjSy30iFUxbkg3XAub5ziEiinFPetggqnE1dDczxHUJEEuER4Pe+\nQ8SJCqeL8tkHvuY7h4gkwtfK2xQpU+FsIsgHdwJ/8Z1DRGrarUE+mOU7RNyocLbs6+h6OSLSNx2E\n2xDZhApnC4J88AQ65Y2I9E1zkA+e9B0ijlQ4W/ctYLXvECJSU1YTbjtkC1Q4WxHkg5eA//OdQ0Rq\nyk+CfPCy7xBxpcLZthlA6s9/JCI98hxwke8QcabC2YYgH6wETgO0a6OIbIsDTi1vM2QrVDjdKO/a\neInvHCISaxcH+eAu3yHiToXTM98EnvEdQkRiaR7hNkK6ocLpgSAfrAFOIdy/XkRkg3bglCAfrPUd\npBaocHooyAezgQt95xCRWLkwyAcP+Q5RK1Q4vfM9dHJPEQnNAc7zHaKWmHPaAas3cs25fQnPAjvA\ndxYR8WYdcKDOKNA7WuH0UvkHTEcSi6TbuSqb3mvwHaBG/Qg4FpjiO4j0zzNnP0PdoDrMDOphXHEc\n7a3tvPDzF2hb3Ebj9o3s9rndqB9Sv9ljl967lEU3LwJghw/swIgpI+hs6+T5i5+nbWkbI48cyaij\nRgHw0q9fYuQRIxmUHRTp65Oq+AfwY98hapFWOH0Q5INOIA+0+s4i/bfHN/Zg3HnjGFccB8Di0mKa\n9mli74v2pmmfJhaVFm32mPbWdl676TXe8q23sOe39+S1m16jY1UHrU+0MnjvwYw7bxzL/hlexn7N\n82twnU5lkwytQL68DZBeUuH0UZAPngW+6juHVN6KuSsYPmU4AMOnDGfFnBWb3af1iVaa9m2ioamB\n+iH1NO3bxMpgJVZvdK7vxHW4jeeneO2G19jpQztF+RKkes4O8sEC3yFqlQqnH4J8cDlQ8p1D+sGg\n5Yct/Ps7/+b1u14HoH15O43DGwFoyDTQvrx9s4e1L22ncWTjxq8bRzTSvrSdpn2baFvcxrPnPcuo\nd49ixdwVDNx9II0jGjd7Dqk5pSAf/MJ3iFqm93D67xPAA8B430Gk995yzlvCsljRTssPWhgw+s07\nH5oZWM+fz+qNsWeOBcC1O1p+1MJuZ+3Gwt8vpG1JG8MPG86wycMq+RIkGs8AH/cdotZphdNPQT5Y\nRrgDwTLfWaT3Nqw8GoY1MPSAoax5dg0NmQbalrUB0LasjYZhm/9d1jCigbbX2zZ+3ba0jYYRb77f\nkjuXMPwdw1nznzXUD6pn7OfGsvi2xVV8NVIlS4EPBPlgue8gtU6FUwFBPvgXcAI69U1N6VzXScea\njo2ftz7ZyoAxAxg2aRjL7g3/flh277Itrkia9mui9YlWOlZ1bNxZoGm/po23d6zqYOVjKxl+2HA6\n13duXCW59Trurca0AycE+WC+7yBJoAM/KyjXnDsLuNh3DumZ9a+t5/lLnwfAdTgyh2bY8dgdw92i\nf/YCba+30TiqkbGfG0tDUwNrFqzh9VmvM+aTYwBYes9SFt3SZbfow0dsfO6FVy9k6OShNO3TROf6\nTp67+Dnal7Yz8oiRjHr3qOhfrPTVWUE+uNR3iKRQ4VRYrjn3C+B03zlEpN9+EeSDM3yHSBKN1Crv\n88A9vkOISL/cDXzBd4ik0QqnCnLNue2B2cAevrOISK8tAN4W5IMlvoMkjVY4VRDkg8WEe67pcrMi\ntWUlcKzKpjpUOFUS5IMngI8S7uUiIvHXDny0/LsrVaDCqaIgH5SAT7LxJCciElMOOK38OytVosKp\nsiAfXAl8yXcOEdmm/w7ywe98h0g6FU4EgnxwCfBd3zlEZIuKOtYmGtpLLUK55tzFwFm+c4jIRhcH\n+UATiIhohROtLwG/9R1CRIDwd/HLvkOkiVY4Ecs15+qBKwn3YBMRP34PnBzkA53/MEJa4USs/AN+\nMnCV7ywiKXUVKhsvVDgelH/QTyFc6YhIdH4LnKKy8UOF40n5muinArqCoEg0LgdOLf/uiQd6DycG\ncs25n6BjdUSq6SdBPviK7xBppxVODAT54MtA0XcOkYQqqmziQSucGMk15z5JuOzf/JrGItJb7cAZ\nQT74le8gElLhxEyuOfde4Fqgqbv7ishWtQIfCfLBbb6DyBtUODGUa84dAJSAnX1nEalBrwDTgnww\nx3cQeTMVTkzlmnNZ4C/AWz1HEakl84D3BvngOd9BZHPaaSCmgnzQAhwG3OE5ikituAN4h8omvlQ4\nMRbkg9eBo4GLfGcRibmLgKODfLDUdxDZOo3UakSuOfch4DfAUM9RROJkJeHBnDf4DiLdU+HUkFxz\n7q3Ajeh9HRGAp4EPBflgnu8g0jMaqdWQ8i/WwcD1vrOIeHYdcLDKprZohVOjcs25rwMXAPW+s4hE\nqAP4ZpAPfuA7iPSeCqeG5ZpzRwLXADv4ziISgUXASUE+uNN3EOkbjdRqWPkX70Bglu8sIlU2CzhQ\nZVPbVDg1LsgHLwBHAWcAyz3HEam05cBngKPKP+tSwzRSS5Bcc24M8HPgA76ziFTAn4HPBvngZd9B\npDJUOAmUa86dBFyC3tuR2rQIOCvIB9f4DiKVpZFaApV/UScAV/vOItJLVwH7qGySSSuchMs156YB\nlwG7+s4isg0vAmcG+aDkO4hUj1Y4CVf+Bd6XsHT014XEjSP82Zygskk+rXBSJNec+y/g/wHjfGcR\nAeYDnw7ywT2+g0g0tMJJkSAf3A3sD/wvsN5zHEmv9YQ/gxNVNumiFU5K5ZpzuwHfBk5Fp8eRaLQD\nzcD3gnzwvO8wEj0VTsrlmnN7Ad8FTgLMcxxJJkd4CqbvBPlgvu8w4o8KRwDINedywPeBY31nkUS5\nCfhWkA8C30HEPxWOvEmuOXcIYfG8y3cWqWm3A+cG+WC27yASHyoc2aJcc24qcD7wDs9RpLbcB5xT\n3kFF5E1UOLJNuebc+wlXPJN9Z5FYm0u4ornVdxCJLxWOdCvXnDPgw8C5wETPcSReHiP8g+T6IB9o\nYyLbpMKRXsk15w4lvBTCicAgz3HEjzXAH4DLg3zwgO8wUjtUONInuebccOAUwvKZ4DmOROMp4HLg\nt0E+WOY7jNQeFY70W645dzhh8RwPDPAcRyprHXAdcFmQD+71HUZqmwpHKibXnBsF5AnLZ2/PcaR/\nngF+ATQH+WCJ7zCSDCocqYpcc+4IwuL5ILCd5zjSM+uBGwnfm5nlO4wkjwpHqirXnNsR+BjhGQym\nAI1+E8km2oB/ADcDVwX5YJHnPJJgKhyJTK45lwHeAxwDvA9dAtuXRcBfgFuAvwb5YIXnPJISKhzx\nItecqwMOISyfYwgvmyDV8zhhwdwCPBjkg07PeSSFVDgSC7nm3FjC4pkGHImO8emvNcCdhAVTCvLB\nC57ziKhwJH5yzblBwFGEBTQFeCu6Zk93OoB5wL2EJXNHkA/W+I0k8mYqHIm9cgFNBA7o8rEv6d37\nbT3wJDCny8djKhiJOxWO1KRcc247wtLpWkL7A4N95qqC1YTvv3QtlyeDfKBLhEvNUeFIYuSac/WE\n47cDCM9uvScwuvyxE/HdJbsNeBVYWP74D2GxzAXmBfmgw2M2kYpR4UgqlM94PYo3Cmg0sPNWvm6q\n0Ldt5Y0SeaXL55t+vURnWpY0UOGIbCLXnGsiLKdGoGErHwDtW/loIyyR1miTi8SbCkdERCJR5zuA\niIikgwpHREQiocIREZFIqHBERCQSKhwREYmECkdERCKhwhERkUiocEREJBIqHBERiYQKR6SPzKzF\nzAIze9TMHu7y30ea2e1mNr/874gtPHaqmd3SzfOfamY/7UOm7XvzGJGoqHBE+ucI59wk59xBXf5b\nAbjDObcXcEf5a5HUU+GIVN50oLn8eTNw3LbubGYHm9n9ZjbXzP5pZuO73DzWzO4qr5a+0+UxnzCz\n2eXV1eVmpiuiSuypcET6zgF/M7NHzOwzXf77Ts65heXPXyG8Fs+2zAMOd85NBr4NXNDltoOBDxNe\nXO4jZnaQme0DnAgc5pybRHh56Y/3/+WIVFdD93cRka2Y4px7ycx2BG43s3nOuXu63sE558ysu1Oy\nZ4BmM9uLsMS6XijudufcEgAzuwGYQngJhAOBh8wMYBDwWkVekUgVqXBE+sg591L539fM7EbC1cg9\nwKtmNto5t9DMRtN9GZwHzHLOfdDMssBdXb/Npt8WMKDZOffN/r8KkehopCbSB2Y2xMyGbvgceA/w\nRPnmPwP58ud54KZuni4DvFT+/NRNbnt3ea+3QYTvBd1HuCPC8eWV1Ya94nbvx8sRiYQKR6RvdgLu\nNbPHgNlAyTl3W/m2GYRFMR94V/nrbflf4EIzm8vmU4fZwPXA48D1zrmHnXNPAecSvn/0OHA74aWx\nRWJNV/wUEZFIaIUjIiKRUOGIiEgkVDgiIhIJFY6IiERChSMiIpFQ4YiISCRUOCIiEgkVjoiIREKF\nIyIikVDhiIhIJFQ4IiISCRWOiIhEQoUjIiKRUOGIiEgkVDgiIhIJFY6IiERChSMiIpFQ4YiISCRU\nOCIiEgkVjoiIREKFIyIikVDhiIhIJFQ4IiISCRWOiIhEQoUjIiKRUOGIiEgkVDgiIhIJFY6IiERC\nhSMiIpH4/6FMVuneWQVOAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawPie():\n", " plt.figure(figsize=(7,7)) # Make the chart a perfect square\n", " plt.title(\"A Pie Chart\")\n", " plt.pie([20,30,50], labels=[\"20 label\", \"30 label\", \"50 label\"], autopct=\"%.1f%%\")\n", " plt.show()\n", " \n", "drawPie()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Histograms\n", "\n", "The `hist` function plots histograms. A histogram takes a list of values, organizes them into bins, and then graphs how many items are in each bin. Note that the order of this list of values does not matter.\n", "\n", "Let's start with a basic example that takes a small list of numbers and generates a histogram using the bins [0,2) (2 is not included in the bin), [2,4) (4 is not included in the bin), and [4,6]. Observe that the bin list specifies where each bin begins, and where the last bin ends." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawHistogram():\n", " L = [1, 2, 3, 4, 4, 4, 2, 2]\n", " plt.title(\"This is a Histogram\")\n", " plt.hist(L, [0,2,4,6]) \n", " plt.show()\n", " \n", "drawHistogram()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see from the output, there is one number in the range [0,2), four numbers in the range [2,4), and three numbers in the range [4,6].\n", "\n", "Instead of including a list indicating the start and end point of the bins, you can also just specify the total number of bins you want and matplotlib will automatically generate the bin ranges. Matplotlib generates the bins by taking the lowest and highest values in the list, and splitting this interval into the number of bins requested." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawHistogram():\n", " L = [1, 2, 3, 4, 4, 4, 2, 2]\n", " plt.title(\"This is a Histogram\")\n", " plt.hist(L, 3) # We want three bins. \n", " plt.show()\n", " \n", "drawHistogram()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are a number of simple arguments you can pass to `hist` in order to improve the appearance of the histogram.\n", "From the example below, can you figure out what `rwidth` and `color` do? Change the values and experiment to see what happens to the graph." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawHistogram():\n", " L = [1, 2, 3, 4, 4, 4, 2, 2]\n", " plt.title(\"This is a Histogram\")\n", " plt.hist(L, 3, rwidth=0.8, color=\"g\") \n", " plt.show()\n", " \n", "drawHistogram()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bar charts\n", "\n", "The function `bar` is used to plot bar charts. A bar chart looks a lot like a histogram, but the difference is that the \"bins\" on the x-axis may be completely unrelated categories, while in histograms these are continuous values.\n", "\n", "The `bar` function takes as paramters a list of the positions of the bars on the x-axis, and a list of the heights of each bar. Optionally you can define the named parameter `labels` as the list of labels for the bars to be placed on the x-axis." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawBarChart():\n", " plt.title(\"A Bar Chart\")\n", " # Position of bars, height of bars\n", " plt.bar([0,2,4,6,8], [100,88,75,98,64], tick_label=[\"label1\", \"label2\", \"label3\", \"label4\", \"label5\"])\n", " plt.show()\n", " \n", "drawBarChart()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Subplots\n", "\n", "Sometimes you want to produce multiple different plots and display all of them at the same time, but not on the same set of axes. We can accomplish this with subplots.\n", "\n", "The `subplot` function can be used to allow multiple plots to be displayed in the same figure. It takes as arguments three numbers: the number of rows, the number of columns, and which subplot you want to activate. For example, `plt.subplot(121)` says to arrange the subplots in a grid with 1 row and two columns, and then activate the first subplot. (In the case, the left one.) `plt.subplot(122)` say to arrange the subplots the same way, but activate the 2nd subplot.\n", "\n", "Consider the following example that graphs both sine and cosine in the same figure, but on different subplots. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nzZFHxnfSsmXVt/85c6LV/LrroofSH/8Yq2iIiIhUuyFDYpKVlSth//1h5MjqnTxu5swoEB5/PMbH\nPvywxpyL1IbDD49VG5o3j8dDhlTvuPS5c6Mb/W23wbBh0Stmm22qb//VSAW6SD3QsSO88kos2zpx\nIuy5ZzRAVGXVmk8+ieUi994bZs2CO++MOXwaN66+uEVERL7h4IOjkD72WDj33LiYf/HFqu1zwQL4\n2c+iOP/yy1h2aejQ6F4vIrWje/dYBmjoUBg9Grp1ixtyVblgXbYMhg+Pi98ZM+Dee+Hmm3O99m+S\nAt3Mfmxmc8xsrZmVbGS7I83sbTObZ2Yjyrzezsxeyl6fZGZNaidykeLVtClcc03MidG6dUyY2b07\n/PrX8NlnFd/P/PkxLO/b34ZbboGf/jSWdRs4UNcxIvWJcrkk1apVrEs+diy89hoceGAsYzJtWuUu\n5hcvjta03XePO9iDBkXxf8ABNRe7iJRv882j98q0afDFF/CDH8QKCvffX7nl2D78MC5UO3SI/Z1y\nSrSi9+9fc7FXE/Oq3JEo9KBmewBrgV8D57r7jA1s0xB4BzgcWAhMB/q5+xtm9jAw1d0fMrOxwCx3\nH7Op45aUlPiMGd84lEi9s2pVLCs7Zkxc17RoEcvN7rMP7LEHdOoUvX4+/zyuXRYvjhuaDz4Y3eUB\nDjooehbuu2/azyJSX5jZy+5ebiFc21LkcuVx2aAVK2DcOLjpJnj/fejcGb7//SjaDzwwJoBauzaS\n36pVkfiefDLWAZ0xI+4uDxgAl10Gbdum/jQiUurzz2O99FGj4K23Yqb1Xr2iZb1bt/hbb9IkCvnl\ny2HJkpgz4re/jV417lHg33xzdPlMrKJ5PEmB/u+Dmz1L+Ul9f+Bydz8ie35h9qvrgCXAdu6+ev3t\nNkaJXWRd7vCXv0QDxOTJ8f1WavPN130O0TuoXz/o2xd22612YxWp7/JWoJeqzVyuPC4btXJldF+d\nOjWSW+lM72bfbFVv2BB69IgxqX37amZTkTxbuzZuqt12W6znu2JFvN6oUfwtr1y57vZdu8YEj8cf\nD1265KaLZ0XzeH4738OOwIIyzxcC+wHbAMvdfXWZ13csbydmdjpwOkBb3RUVWYdZ9OI74IBYceIf\n/4gblG++CYsWRVf47bePNdTbt9f1i4hUWpVzufK4VNhmm8VspT//OaxZA6+/Ht2+Fi+OVrbGjeOn\n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\nSUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def drawSimpleSubplots():\n", " # Generate a list containing all the values from 0 to 10 \n", " # with a step of 0.1. We'll use these as our x-values.\n", " x = rangeFloat(0,10,0.1)\n", "\n", " # For each x value, generate the appropriate y-value.\n", " sin_x = []\n", " cos_x = []\n", " for i in x:\n", " sin_x += [math.sin(i)]\n", " cos_x += [math.cos(i)]\n", "\n", " # Set the size of the plot\n", " plt.figure(figsize=(14,4))\n", "\n", " # Configure the subplot. The layout as a whole is 1 rows with 2 columns,\n", " # and we are currently plotting the first location.\n", " plt.subplot(121)\n", "\n", " # Make the first plot\n", " plt.title(\"This is the left title!\")\n", " plt.xlabel(\"X-Axis Label (left)\")\n", " plt.ylabel(\"Y-Axis Label (left)\")\n", " plt.plot(x,sin_x,'b')\n", "\n", " # Switch the subplot to the 2nd subplot\n", " plt.subplot(122) \n", "\n", " # Make the second plot\n", " plt.title(\"This is the right title!\")\n", " plt.xlabel(\"X-Axis Label (right)\")\n", " plt.ylabel(\"Y-Axis Label (right)\")\n", " plt.plot(x,cos_x,'r')\n", " \n", " # This help avoid overlap between the two plots\n", " plt.tight_layout()\n", " \n", " # Show the final, combined plot\n", " plt.show() \n", " \n", "drawSimpleSubplots()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise\n", "\n", "Use the file https://web2.qatar.cmu.edu/cs/15110/resources/zoo.csv containing information about animals to build a pie chart showing the division of animals per class. The class is indicated in the `type` column by a number ranging from 1 to 7. The mapping of numbers to classes is:\n", "1. Mammals\n", "2. Birds\n", "3. Reptiles\n", "4. Fish\n", "5. Amphibians\n", "6. Insects\n", "7. Others" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbwAAAGjCAYAAABXMKCRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl4VNX5wPHvO0tWIBCWsAQYRcRd\nEVCR1Y2qUVtbtVptpVXr0tpatf7Samtqq0arti7VtrZuWPdd4orKDgICAgIqy7DvSxbINjPn98e9\ngclkkkySSe4k836eZ56Qe8+9553JcN97zj33XDHGoJRSSnV0LqcDUEoppdqCJjyllFJJQROeUkqp\npKAJTymlVFLQhKeUUiopaMJTSimVFDThKdWKRMSIyFSn42gOsdwqIitFpMJ+L9+L074L7P2Nj8f+\nlIqFJrwEICI++z9/+KtKRNaLyHMiMsTpGDuKsM/6mTjtb6qIdNSbWS8H/gqUAQ8BfwJWOhqRUi3g\ncToAVcu3wAv2v7sApwI/Br4nIicbY1Y4FplqriOB/U4H0Uzn2D/PM8ZsdTQSpeJAE15i+cYYUxC+\nQET+AdwA/A74iRNBqeYzxrTnFlEfAE12qqPQLs3E94z9c1i0lSIyVEReFZFtIlIpIqtF5F4R6RRR\nbrzdlVdg/3uGiJSJyC4RmSQifaLs29hddv1F5Hm7jpCInNDU+u2yF9v17rCvCW0SkfdE5KwoZU+z\n1+2yyy4XkXwR8USUm2jHOVFEJojIbBHZZ2/3rIh0Dy8LrLV/vTKiC3m8XaaviNwlIvPsOCtFZJWI\nPCAinSM/H2Bc2GdV83omvEy0a3gicryIvB5Wx7cicneUv9uBLlgROUxE3hSRPfZ7nCIix0fuuyGx\n1FvzmQKnRbw3f4x1nC4i74bV4be/P8c0sl2KiPxKRD62vxtVIrJFRF4QkcFRyqeJyG0islRESu3v\n8xq7rkFh5Vwicq2ILLA/u/1iXS54XUTq/L8SkR/Y3/tiESkXkUUi8vPm1q8Sh7bw2o/qyAUiciHw\nElAFvAVsBU4E8oHTRGSsMaYqYrORWK3FycAjwHDgCmCUiIwwxuyKKN8dmA3sAF4EMrG76JpSv4j8\nAngMWA28DJQCfYFRwHeAj8Pe1y/t2HYCbwN7gNHAvcBJwPejfD4XAHnAu3a8Y7FaxIPsbQEWAw8D\nvwa+tGOu4bd/jgV+A3xi78cAJwO3AGNFZJQxpuZv8SdgIjDQ/neNxVHiO0BExgHvA27gFWATVnL5\nPfAdERljjCmP2MwHzAW+Ap6y39d3gc9E5EhjzLaG6mxivYvreW97Y6jjFuABrL/vm8BmoD9wOrAA\nWNbA5tlY1wqnY/0di4EhwCXA2SIyzBizNqz8JOAiYBbwJBCy4z0H63u52i53H3ArsAR4FqgEcu33\nPhL4Iiz+v9pl12F9T/cDZwH/sj/n3zSjfpUojDH6cviFdTAzwOQo6x631z0WsbwHUAKsAfpGrPut\nvc2tYcvG28sM8LOI8n+2lz8asbym/JOAq4X1L8Q6wGZEeY/dw/59NFZynwtkhS0XrIRpgIvClk+0\nl1UDo8KWu4HP7HWnRPmsn6nnb9ETyIyy/A57uysilk+1/hvV+7c1wNSIuFZjHRzHRby/Z+zyd0aJ\n1wD/V8/fLT+G71iT6o3lvUWp4wQgiJUs+kWs8wA5Yb8X2HWOD1uWGvldspePAwLAf8KWZdnv5c0o\n5VOAzmG/78ZKtu6Ici6gW9jv37FjegtIC1vutZcZYERT69dX4rwcD0BftQ5q39gHggLgQayDfs3y\n3hHb3GyvuyTK/lzAdmBB2LLxdvmVgESUz7QPCnvC19nlKwhLSC2ofyFWd2JqI5/FI/Z+T4qyrot9\nkHktbNlEu/yzUcrXrLsxymf9TBP/RtnRtqPpCW+cveztKGX7YrU+1kSJdw11Tzpq1r0eQ/xNqjeW\n9xZlP08Q5aSgnrIFRCS8RsovAfwR3wUDvBDDtruBmZHf+yjl3rG/XzlR1h1j1/dAU+vXV+K8tEsz\nsQwG7oxYtgoYbYzZHrH8ZPvnKBE5Ksq+qoEjoiyfZez/sTWMMftEZDFWF89ADnbvgXWQiezmbE79\nLwOFwDIReQnrYDrHGBM5gvFkrAPJeSJybpT9ltfzvr6Ismyj/bNrlHX1EpGLgWuxWizdqH2tu861\nziaqueY2LXKFMWaziHwLHC0inY0xpWGrFxtjQhGbNOX9Nbfephhh//yomdtjX1O7DauruxdW66rG\nge55Y0yJiHwAXCYiuVgtsGlYn1MwYrcvA9cBC0XkNazv3nxTt7v/ZKyu2OtFJDK0mjiOaEb9KkFo\nwkssRcaY8wBEJAfrP2kB8JqInG6MCYSVzbZ//qqJdUQmzho114Cy6lkeqan13491pn0dVvfgHUCl\nfQC6xRy8BpWN1c32hwb2lRllWUmUZTWflzvGGBGR39qxbse63rUJq5UL1slIaqz7qkcX+2d9n+tW\nrG7dLlgH3xp13p8xJmAfmGN5f82ttymygECUk7OYiMhorGunIeBDrJO9fVgnQBOxTsbCXYT1PboM\nq0cEYJeIPA782Ry81vorrN6FnwJ/sZeVishzWN3BZfaybKxjYuRJZ7jw716s9asEoQkvQdkJ4E8i\n0hsrSdwI/C2sSM0B8EjTtKHvvepZnmP/LI4MpZ7yTarfblU+CTwpIj2xuth+gnVzc3/795r9GqBT\nlNZfqxJrBOgdWAMtjjfG7Axbl0PDB8JY1XxuOfWsz4koFy9tUe9ewCMivZqZ9H6Hdf1rlDFmdvgK\nEflhZGFjzD57m9+JyGFYA2N+gXWyZLD/XnbiuR+4326NnQZcY5ftDFxp77IEqDbG9I4l2FjrV4lD\nb0tIfH/Amunidqk9LH6e/fOUJu5vlET014hIJlb33V6sAQexaG79GGN2GGNeM8ZcgDUicKyI1LQs\n52G18E5q6n5jVNPdFK1V1AOrhTMnPNnZRjW0PxGJtRVZM4JzbOQKsW4NORzrWlpzW1lO1jvf/jmh\nmdsPAnZFSXY59rp6GWNWGWP+jZXMQlijdqOV22iMmQSciTXyOLzcPCBHRHxNDTzW+pWzNOElOPvA\n+w+s2wPCuw+fxkqE90qUqcdEJEtEhkbZ5RCsrp1w+VjXqp6PvL7XgCbVbw+JjyyTjt0NxsFE9Lj9\n70dFpG+UbXJE5MgYY4xmD9bZd/8o67ZjdV+eaMdWU2cf4J569rfb/hltf9HMxBqAcoHdhRfubqwW\nznMx7qsp2qLef2Md7O8WkX7hK0TEIyL19S7UWA9kh/99RSQFa3Ru+LU8RKSniBwdZR+9sI5rFXa5\nVBEZGaVcZyCdg93VAI/aP/8rInWui4p1T6SvKfWrxKJdmu3Dg8AvgVtE5FFjTIkxZruIXI51QX6p\niLyHNTVZJnAI1qjMZ7G6Q8N9BDwhInnA11j34Z2FdY2jINaAmlH/2yKyF/gcqxWZhnW/0iFYt1yU\n2ftdKiI3Yh3kvhGRIqxBNN2Aw4AxWK3eZk2zZowpE5H5WK3KSXbMIWCSMWadiDyBdR/eIrvubOA8\nrAEJ0eY0/RTrWs7rIvI+1oHuS2PMu/XUHxKRnwEfAFNEpOZ+uPFYreUvsLrf4qot6jXGLBaR27Du\nw1shIm9gdQ/3xWpRPQD8vYFdPIb1XZwlIi9jnQidiZXsvuTgwBuAflh/o0XAUrueXsD3sE5oHrLL\npQOzRWQl1kjhDVgnWRcAnQj7zhtj3hORe7G6Kb8VkQ+xBgb1xJoi7hTgR1jfx1jrV4nE6WGi+qo1\nvLzOfXhhZf5K9HuljsK6j2oD1ii2nVj/sQuBI8LKjbe3L7D/PQNrQMBurBtoo93/VGtIfT1xxVr/\n9VjDvv1YSWEHVqvjx0QZLo51Q/CrwBZ7v1uxbtP4IzAgrNxEO86JUfZx4D1HLD8cKMJq7YUIGx6P\n1dL5I9aAiQqse9cK7OV1Pg+sk8b7sJJ4NRG3LtT3GWJ1Ib8B7LLf3yqsVmSner4bz0TuI9a/UXPq\ntctOpQm3JYRtNwErse6xP0O//R07OqxMQfjnHrb8EmAR1g3fW+3vVk5kLFgjU+/EOhHZgnVbxQas\niQpGh5XzAv+HdaK30S63BWuig/Prif8c+/ux0/6MNtn13AL0aEr9+kqsl9h/PNXBiTV11mfAn0zE\nfJ1KKZUM9BqeUkqppKAJTymlVFLQhKeUUiop6DU8pZRSSUFbeEoppZKCJjyllFJJQROeUkqppKAJ\nTymlVFLQhKeUUiopaMJTSimVFDThKaWUSgqa8JRSSiUFTXhKKaWSgiY8pZRSSUETnlJKqaSgCU8p\npVRS0ISnlFIqKWjCU0oplRQ04SmllEoKmvCUUkolBU14SimlkoImPKWUUklBE55SSqmkoAlPKaVU\nUtCEp5RSKilowlNKKZUUNOEppZRKCprwlFJNIiITRcTYr8OjrB8Xtv5MJ2JsTSLyjIj4nY5DNZ0m\nPKVUc5UCP46y/Ep7nVIJRROeUqq53gCuEBGpWSAi6cBFwOuORaVUPTThKaWaaxIwEBgdtuxCrONK\nrYQnIiNE5DUR2Sgi5SLytYjcYyfI8HJTRWSmiJwtIovtsotE5GQR8djbbBGR3XbXYmbYtj67G/U6\nEblXRLaKSKmIPC8iGSJymIh8KCJlIrJKRK6MqPswEZkkImvteteIyBMi0q2hD8GO688islpEKkRk\np/0eRje0nWp7HqcDUEq1W+uA6VjdmjPsZT8B3gTKIsoOABYDz2B1dx4N/BE4FLg0ouxhwF+Bu+39\n3A+8Y788wETgSLvMduC2iO1/B0zF6lo9yt4+BAwFngQeAK4HnhaRBcaYr+zt+gIbgJuAPXZsvwfe\nA0Y28Dn8H/Ab4Hb7PXYBhgPZDWyjnGCM0Ze+9KWvmF9YCcdgJaafYSWHNKAPEADOAsbbZc6Msr1g\nJa4rsBJR97B1U4Fq4NCwZRfY+5oSsZ83gLVhv/vscp9GKWeAK8KWdbNjvbOB9+nBar0aYGjY8mcA\nf9jvk4E3nP676Kvxl3ZpKqVa4lUgFTgfuBzYCnwSWUhEuojIfSKyGqjESmqTsJLf4Iji3xhj1oT9\nvtL++WFEuZVAbvg1RNv7UcrV2t4Yswerddg/LMYUEfm9iKwUkXI7xpqW65DI9xRmPnCuiNwtIqNF\nJKWBsspB2qWplGo2Y0ypiLyF1a3pA/5njAnVzUE8DZyJ1Y25GNgHnAT8A6t1GG5PxO9VDSz3AG6s\n1lpztg+v+17gRuAuYDZW12suVgsxMsZw9wAVWC3W3wNlIvIa8FtjzM4GtlNtTBOeUqqlngOKsAar\nXBa5UkTSgO8CBcaYh8OWH9tmEcbmUuA5Y8xfahaISKfGNjLGVAP3AfeJSG/gPOAhIAP4YSvFqppB\nE55SqqU+Bl4B9pqDA0DCpWK1wqojlk9s5biaKoO6Mf60KTswxmwF/iMi5wLHxCswFR+a8JRSLWKM\nCRKlZRe2vlhE5gK3iMgWYCfWYJd+bRRirD4ArhSRpcAq4PvAqY1tJCJvA18CC7G6TYcCZwP/ar1Q\nVXNowlNKtYXLgCewrtmVY7UIf401wjFR3Ig1iOZu+/f3sOKe18h204GLgV9gtRLXY90KcXdDG6m2\nJ/awWqWUUqpD09sSlFJKJQVNeEoppZKCXsNTqhX48ovcWNdzwl+pWPd+7Q977fMX5gWdilOpZKLX\n8JRqhC+/qDvWXJCRr57UTWoZQDrQlNk2wpPgPmonxF1Y8zuuwxoMsR5Y5y/M293S96VUstGEp5Ke\nL7+oC3A8MIi6Sa0/VhJLNGXUTYTrgbXAEn9hXomDsSmVkDThqaTiyy/qBpxov4bZPw/DGo7eURis\n+8i+CHst9BfmFTsalVIO04SnOiy7K3IYBxPbMOAQR4NyjgFWAwvQJKiSlCY81WHYrbezgO8AZ2A9\nnFTVryYJzsSaHmyKvzBvu7MhKdV6NOGpdsuXX+QCRmAluLOxZt93OxpU+2aAJcAUrAQ4zV+YV+Fs\nSErFjyY81a748ot6czDBnQV0dzaiDm0/8CnwLjDZX5i32eF4lGoRTXgq4fnyi4YBFwHnAMfRsQaY\ntCeLsOa+fM1fmLfE6WCUaipNeCoh+fKLDgN+ZL8aetq0csZi4FngBb3up9oLTXgqYfjyi3oAl9uv\nEQ6Ho2ITwHqszrPAu/7CvEqH41GqXprwlKPsKbjOxno+2vmA19mIVAvsAV4CnvUX5n3udDBKRdKE\npxxhd1n+DLgS6OtwOCr+VgLPAZP8hXkbnQ5GKdCEp9qYL7/oVOD/sFpzOvik4wsBbwP3aatPOU0T\nnmp1vvwiAS4AbgNOdTgc5ZxpWInvfacDUclJE55qNb78ohTgx8CtwBEOh6MSx1LgfuAlf2FewOlg\nVPLQhKfizpdflAVcB/wKvT6n6rcO+BvwH39h3j6ng1EdnyY8FTe+/KK+wE3AtUAXh8NR7cdu4B/A\nI/7CvJ1OB6M6Lk14qsXspxLciZXomvLgU6XClQNPAH/2F+btdToY1fFowlPNZl+juxG4A+jqcDiq\n49gF/Al4Qq/xqXjShKeaxZdf9APgPqynhCvVGr4GbvUX5k12OhDVMWjCU03iyy8aATwEjHY6FpU0\npgC36ITVqqU04amY+PKL+gP3Yk3mrDeMq7YWAp4C7vAX5m1zOhjVPmnCUw3y5Rd1An4H/AZIdzgc\npcqAQuBBfTitaipNeKpevvyii4FHgN5Ox6JUhPXAjf7CvHecDkS1H5rwVB32Y3oeBy52OhalGvE8\nVuLT2xhUozThqVp8+UXfx7oXqpfTsSgVo83ANf7CvPecDkQlNk14CgBfflE28BhwmdOxKNVMTwM3\n+QvzSpwORCUmTXgKX37RBcC/0Gt1qv3bAFzlL8z72OlAVOLRhJfEfPlF3bAGpVzhdCxKxdm/se7d\nK3M6EJU4NOElKV9+0XlYB4U+TseiVCvxAz/zF+Z95nQgKjFowksy9vyXD2M9vkepjs4Afwdu03k5\nlSa8JGI/vud14BSnY1GqjU0DLvEX5m13OhDlHJfTAai24csvGg18gSY7lZzGAV/Yc8GqJKUJLwn4\n8otuBD5FR2Gq5JYLzPDlF/3U6UCUM7RLswPz5RelYd1u8BOnY1EqwTwB/NpfmFftdCCq7WjC66B8\n+UUDgTeAE52ORakENQu4yF+Yt9XpQFTb0C7NDsiXX3QGsABNdko1ZBTWdT29rp0kNOF1ML78ot8C\nHwI9nI5FqXagLzDNl190rdOBqNanXZodhC+/yAX8A72/TqnmeshfmHeL00Go1qMJrwPw5Rd5gWfR\niZ+Vaqn/Aj/3F+aFnA5ExZ8mvHbOl1+UDrwGnOt0LEp1EK8Bl/sL86qcDkTFlya8dsyXX9QFeBcY\n63QsSnUwHwLf9xfm7Xc6EBU/mvDaKV9+UU/gA3QkplKtZRaQ5y/MK3Y6EBUfmvDaIV9+UX/gY2CI\n07Eo1cEtBr6jc3B2DHpbQjvjyy86HJiJJjul2sIJWNORDXA6ENVymvDaEV9+0VBgBqD/+ZRqO4cD\nM335RXqS2c5pl2Y74csvGgZ8AmQ5HYtSSWoHcIa/MG+p04Go5tGE1w6EdWP2dDoWpZLcFuBUf2Ge\n3+lAVNNpl2aCsx/a+hGa7JRKBH2Aj+xR0qqd0YSXwHz5Rd2w7gca6HQsSqkDBgPv+fKLOjkdiGoa\nTXgJyp5BZTJwjNOxKKXqGA686csvSnE6EBU7TXgJyJdf5AFeBU51OhalVL3OBJ715ReJ04Go2GjC\nSzD2f57/AnlOx6KUatSlwMNOB6Fiowkv8fwV+InTQSilYnajL7/odqeDUI3T2xISiC+/6DbgPqfj\nUEo1yzX+wrz/OB2Eqp8mvAThyy+6ApjkdBxKqWYLAj/wF+a97XQgKjpNeAnAl190PDAHSHc6FqVU\ni5QBp/gL875yOhBVlyY8h/nyi7oCC4BBTseinLPtlT9SsXYhXUb+kG5jfwxAqHI/xbNepHLrt1Rt\nW42pKifnsntIG3BczPstXfwBJfPfIlC8FU9WDl2Gf5fOQ2s/K3jf8qnsnfE8oYoyMg4/lW5nXovL\nm3pgfaB4G5uf+iU5P/wLqX11OskYfAuM0McKJR4dtOIge0Tms2iyS2r7lk+jevvaOstDFaWULf0Y\ncblJ9w1t8n5LF3/A7g//QcaQU8m5+C4yhoxm90dPULrovQNlqndvYmfR3+h03AS6n/sbytd8Qcnn\nr9Xaz+4p/ybzyHGa7GI3GPif3q6QeDThOSsfuMDpIJRzghVl7P70SbqdfnWdde4uvej/65fIufRu\nOkW0yhpjQkH2zphE5jGn0W3sT0gbeBzdxv6YzGPPYO+M5zHBAAAV/kV4u/Ula+QlZAw+mc7Dzqd8\nzRcH9rN/1TwqN62g67grW/ZGk08ecKfTQajaNOE5xJdfdDrwZ6fjUM7aO/VpUnoMJPOocXXWiTS/\ngVC5aQWh/cVkHnVareWdjj6dUHkJlRuXA2CCAcRzcLIQ8aZiAlUAhKor2TPlX3Q77We40zs3O5Yk\n9kdfftF5TgehDtKE5wBfflE/4CXA7XQsyjkVG7+ibNmnZJ91fdz3Xb1zPQDenrWnYfX2sB6lWL3L\nWp/SZwhV29dSvnYRgdJd7Fs6hdS+RwBQMucV3J27k3nMGXGPL0kI8Jwvv0jnwk0QmvDamC+/yIs1\nbZjOtp7ETLCa3R/8gy4nfR9v99y47z9UUQaAO632/MYuu6UWLC8FIC33SDoPv4Dtr/yBTY9fiTEh\nskb/iOrdmyhZ8DbZE25oUUtT0Q14yf5/rxzmcTqAJPQgMNLpIJSzij9/HROoJGvkJU6HQvbpV5N1\nysWEKvfj6dobEWHby3+g89BzSenpY9+K6eyd+QKh/cWk+U4ge8IN2sXZNKcAhcAtTgeS7LSF14Z8\n+UWXAjc6HYdyVqBkOyVzXiFrzBUQrCZUUXagRVbzuwkFW1SHy27ZBWv2awvZLbvIhOXOyMLbrQ8i\nwr6VM6netYGsUZdRvXMDO4seIvus6+h33X8JVe5nzyf/blFsSepmX37R+U4Hkey0hddGfPlFhwE6\n7ZAisHcrJlDFrskPsitiXcm8NyiZ9wZ9Jj5CSs6hza7jwLW6nevxdMo+sLzm2p23+4Co24Wqytnz\nyZN0O/PnuFLSKVu3mJQeA0n3nQBA5xPPZdd7OldyMz3jyy86wV+Yt8HpQJKVJrw24MsvcgFPA5lO\nx6Kcl9LrUHIuu6fO8m0v/p7Mo0+j03Fn4enWp0V1pPY9Ald6F/Z9NfVAsgLY99VUXGmdSc09Mup2\nxTNfwNvLR+aQUQeWhaorD/zbVFW0KK4klw38E30SimM04bWNXwOjnQ5CJQZXWqd6Z0txd+lVa135\n6gWEqiuo3rEOgIr1ywjuL8HlTSN90PAD5Tb96xo8WT3JudRKpOL20HXMFez+6AncnbuT7jueinVL\nKFvyMdlnXYu4646hqNrhp/TLD+jz00cPLEsbcBx7PnmSvbNeJLXP4RTPfpm0ZtwErw4415dfdIW/\nMO95pwNJRprwWpkvv+hw4G6n41Dt066PHidYsv3A78WzXgCsxJh7/VMHlptQEBMK1dq289BzQYSS\neW9SMu91PF16kn3WdXQ+MXoDY/fH/7RGjXbtfWBZSs+BdD/3JopnvUDJvDdIG3g82Wf+PJ5vMRn9\n3Zdf9KG/MG+H04EkG51LsxXZXZkz0CeXK6Vqe8lfmHeZ00EkGx2l2Yoe9D5xVSblsc/0q5RKFpfq\nqM22py281lKQ5QO+ChjX3j8GJm54IXjmyU6HpJRKKJuAo/yFeSVOB5IstIXXep4AMjwS6nuP96mT\nZ6XeOK+/bN/kdFBKqYTRD/ir00EkE23htYaCrB8B/4tcbAz7XgmOX/D7wFWjgrh1wJBSygCn+wvz\npjodSDLQhBdvBVnZwAqgV31Fyk3Ktz+vvrliRui4Y9suMKVUgloFHOcvzCt3OpCOTrs04+8+Gkh2\nAOlSNfg5b+Ex76TcPqMrpXvaKC6lVGI6DLjL6SCSgbbw4qkg6zhgEU04kQgZ2flQ4KKvHwteOKrx\n0kqpDioIHO0vzPva6UA6Mm3hxVchTfxMXWJ63Op9ddTC1GsXHyHr17RSXEqpxOYG6s43p+JKW3jx\nUpB1GvBpS3ZhDFUfhYbN+VX1jSdXkpIWp8iUUu3HKf7CvM+dDqKj0hZePBRkCXB/S3cjQsp33F+M\nW5Z61bbzXbMXxCEypVT7cp/TAXRkmvDi4xJgeKOlYuSV4MBHUx4b/mnKzXN6s3tbvParlEp443z5\nRec6HURHpV2aLVWQ5cW6DWFQa+zeGEqeDp69+M+BK0YbXHqColTHtwQY6i/MCzVaUjWJHkBb7jpa\nKdkBiNDlZ54Pxi5NvXrlcPl6RWvVo5RKGMcBlzsdREekLbyWKMjqDKwGerZFdcYQnGeOmHVV1a0n\nlJHRpS3qVEo5wg8M8RfmVTkdSEeiLbyWuY02SnYAIrhPdq0c+2XqNfuvdH84t63qVUq1OR9wg9NB\ndDTawmuugqw+WFMCZTgVwlbTbcGlVXfk+E2f/k7FoJRqNTuBQfo0hfjRFl7z5eNgsgPoLXuGf5Zy\nS4+HvI9P8xCodjIWpVTc9QB+63QQHYm28JqjIKsrsAHo5HQoNSqMd/UN1b8u+zR04vFOx6KUipti\nINdfmFfmdCAdgbbwmucaEijZAaRJ9aCnUh44/r2U/FnZFO9yOh6lVFxkAROdDqKj0BZeUxVkeYA1\nQMJeNwsZ9jwavHDZ3wIXjQYRp+NRSrXIt1gjNvVg3ULawmu6i0jgZAfgErr92vPmmMWpP196tKxd\n5XQ8SqkWGQzkOR1ER6AJr+ludjqAWHWVfcdNTrl94FPe+6emU7nf6XiUUs12k9MBdATapdkUBVmj\ngRlOh9Ec1ca9Mb/6mi2vh8aOcDoWpVSzHOsvzFvmdBDtmbbwmuY3TgfQXF4J5j6Y8s8R01NumtuX\nnVucjkcp1WS/djqA9k5beLEqyDoU6+Jxuz9JMIay54NnfnFnYOLoEC630/EopWJSAfT3F+btdDqQ\n9qrdH7zb0K/oIJ+XCJ1+7JkyblnqVatOcX31ldPxKKVikgZc63QQ7Zm28GJRkJWFdaN5Z6dDiTdj\nCC00g2dOrLrt+FIys5yORyk4qW3iAAAgAElEQVTVoM2Az1+YpzMrNUOHaLG0gSvogMkOQATXMNe3\nYxen/rzyGnfRbKfjUUo1qC9wsdNBtFea8GLzI6cDaG1uMb1u9/7v1Pmp138xSDatczoepVS9tFuz\nmbRLszEFWT6smVWSZsYSY6gsCp0y9+bq60+pwpvqdDxKqVpCWINXNjsdSHujLbzGXUYSJTsAEVLP\nc88dtyz1qs1nuz5f6HQ8SqlaXMAlTgfRHmnCa1yH786sT4oEDvlnysMnfpTy21k92LvD6XiUUgdc\n6nQA7ZF2aTakIOtYYInTYSQCYyj+Z/D8JfcFLtUJqZVKDIf4C/P8TgfRnmgLr2FJ27qLJELW9Z53\nxyxJvfqr42XVN07Ho5Tih04H0N5owmuYdhtE6CLlx7yV8sdDJ3nvmZZBxT6n41EqienxqYm0S7M+\nBVmnArOcDiORBYxr8x8CP934YvCMk5yORakkNcRfmKc9LjHSFl79tDuzER4J9b3X+9+TZqXeOK+/\nbN/kdDxKJSFt5TWBJrxorKea62wGMeonu06annJT10LPv6e6CQacjkepJKIJrwk04UU3HujldBDt\niQiZl3qmjl+WetXaMa4lS52OR6kkcaQvv+g4p4NoLzThRTfB6QDaq3SpGvyct/CYd1Jun9GV0j1O\nx6NUEtCb0GOkCS+6M5wOoD0TQY5zrR2zMPW64C/cb810Oh6lOjg9QY+RjtKMVJDVHdiOngzEzW7T\nefGPqm7vstIMONTpWJTqgIJAtr8wr8TpQBKdHtTrOg39XOIqW0pPeD8lP/df3oemplJV4XQ8SnUw\nbmCs00G0B3pgr+tMpwPoiERI+Y57wfhlqVdtO8815wun41GqgxnvdADtgSa8uvT6XSvySnDgYymP\nDvs05eY5vdm9zel4lOogTnM6gPZAr+GFK8gaAOjDT9uIMRT/N3jOl3cHLh9tcOnJl1LNFwJ6+Avz\ndGR0A/QgU5t2Z7YhEbKu9rw/dmnq1SuHy9crnI5HqXbMhV7Ha5QmvNq0O9MBnaTiqFdT/nT4Syl/\nnp5JeanT8SjVTo13OoBEpwmvNk14DhHBfYprxdglqVfv+4n7wzlOx6NUO6TX8Rqh1/BqFGQdA+iU\nWAliq+k2/9KqO3r7TZ/+TseiVDthgJ7+wrxdTgeSqLSFd9BIpwNQB/WWPSM+S7mlx0Pex6d5CFQ7\nHY9S7YAA45wOIpFpwjtIJ2BNMCKkf989c9yy1KvWn+5a+KXT8SjVDujAlQZowjtIE16CSpPqQU+l\nPHD8eyn5M7Mp1u4apeqnx7EGaMI76FinA1ANO8q1fvSC1BvkN55XZ4JefFYqiqOdDiCR6aAVgIKs\n/sB6p8NQsdtrMr+8vOr3mV+ZQw5zOhalEkxPf2HeTqeDSETawrNoN0A701X2HT855faBT3nvn5ZO\n5X6n41EqgWgrrx6a8Cya8NohEbynuxePW5J69e4LXTPmOx2PUglCE149NOFZNOG1Y14J5v4t5YkR\n01JumtuXnVucjkcph2nCq4cmPIsmvA5goGv7KbNSf9XpLs/T01yEgk7Ho5RDNOHVQxNeQVYqcLjT\nYaj4EKHzTzwfj1uWetW3J8vy5U7Ho5QDjnI6gESlCc/6cnicDkLFV4ZUHvFSyl+OeC2lYHpn9hU7\nHY9SbainL7+op9NBJCJNeHCM0wGo1iGCa7jrm7GLU39eebW7aLbT8SjVhrRbMwpNeDDQ6QBU63KL\n6XWH93+nzk+9/otBskkf8KuSgSa8KDThQR+nA1Bto6cUD5uS8tucR72PTPUSqHI6HqVakV7Hi0IT\nnia8pCJC2vnuueOXpf5s03dc8xY5HY9SrUSPa1FowtMvRlJKlcAh/0r5+9CPUn47uwd7dzgdj1Jx\npoNWotCEpwkvqR3u2nTqvNQbvLd5XpqhE1KrDqSX0wEkIk140NvpAJSzXELXGzzvjFmSes2y42XV\nN07Ho1QcaAsviuR+WkJBVjagz1dTBxhDYEbo2FnXVf9m+H7SMp2OR6lmMkCKvzAv4HQgiSTZW3ja\nnalqEcEz1r103JLUq4svdX/6udPxKNVMAvRwOohEowlPqSg8Eupb6P3PyTNTfzWvv2zf5HQ8SjWD\nXseLoAlPqQbkys6Tpqfc1LXQ8+Q0N0HtHlLtiV7Hi6AJT6lGiJB5qeezcctSr1o7xrVkqdPxKBUj\nTXgRkj3h5TgdgGo/0qVq8HPewmPeTrljRhZle52OR6lGaJdmhGRPeGlOB6DaFxHkeNeaMYtSrw38\nwv3WLKfjUaoB2sKLkOwJTx8LpJrFJabHb72vjPoi9dpFQ2T9WqfjUSoKTXgRkj3heZ0OQLVv3aV0\n6Acp+f3+6X1oWipVFU7Ho1QYvY80QrInPG3hqRYTIeVs94Jxy1Kv2naea84XTsejlM3tdACJRhOe\nUnHileDAx1IeHfZJyi1zcti93el4VNLT41sETXhKxdkg15aRc1N/mXqH5/npQijkdDwqaWkLL4Im\nPKVagQhZV3veG7s09eqVJ8o3K52ORyUlPb5F0ISXoF5bXs0PXtnPwL+Xkn53CUMeK+N3Uyooraw9\n2feecsPV75TT4/5SMu8p4czn9rF0WzCmOkLGcO+MSnx/LyXtLyUc/88yXl9eXafcg7MryX2olJwH\nSvndlApCEROOf74xQOd7S/Dv1cZMpE5ScdTrKQWDX/T+eVom5aVOx6OSirbwIiTsAb+NJOwozQdm\nVzEgS7jn9DRyuwiLtgYpmFrJZ/4gs6/KwCWCMYbzX9yPf2+IR89Jo1u6cO/MSk57dj+Lr8skt0vD\n5zN/+LSSB+ZUcffpqQzr4+alZdVc/Go5k38E5w62PppP1wbI/6SSf5ybRucU4drJ5Qzp4WLiCSkA\nBEOG64sq+P3oVHxdk/38KToR3Olpq3s8sOTlDwcNvmpguifjGKdjUh1fCOqevSa5ZE94Cfv+370s\nnZ6ZBxPIOJ+H7HThyrcqmOoPcvohHt75OsCsDUE+/UkGpx1ivZWRuW4OebiU+2dV8cg59d9Xv31f\niAfmVJE/KoVbT00F4LRDPKzaEyJ/SuWBhPf+twHOOtTDz4dZCW76ugDvrwocSHhPLKimPAC3nprS\nKp9DR/DvrC4zXTM6V52wfvuId9P+VX5Sj7M+93U6ZpSIJOwJl2r/3NqDV0eyfyAJm/DCk12NEX2t\nHopNJVbX4TtfB+jbWQ4kO4CsNOH8IV7e/rrhk7sPVwWoCsIVx9U+5l5xrJel20Os3WPVURWE9LAi\nGV6hwp5CeVtZiD98VsHj56bhdUuT32NHF4DAT3v3mv52IKvvqcvNqMzy7QNTvSdsmLfzvfGfbnlh\nVdAE9IZ11Zpiu7aRRGJKeCIyUURM2CsoIptE5BURGRJWrkBEWvRE2XjsownaVcKfts76/h7Z00p8\nX+0IcUyvum/h6J4u1hcbyqrq/xi/2hEi1Q2HZdfe/uhe1r6X77DqOjnXzZQ1ARZuCbJqd4hXl1dz\nSj+rzK0fV5I32Fsr4SrLbpdr1+kD+i39Ii119J+eD+4TSAXoHOyfCu41Oys3HvnmuodzdlVsnu50\nrKrD0qd7RGjqAf9iYCQwFvgdMBT4RESy7PX/sde3F/udDiBWm0pC/PGzSs481M1wu6W3u9zQLa1u\nyyo73Vq2p7z+hLe73NA1TRCpvX3NtrvtbX94tIfvDPIw7N/7GPxoGYdlu/jVySlM8weY/E01D05I\njcv760iWpKZ8ffqAfuV73O6hEz8Ozcis5Niadb13LPR40k7eAhA0gYwpWyaNnbfj/XnGmJ3ORaw6\nKG3hRWjqqfliY8wq+9+zRGQz8DFwKvC+MWYjsLGhHYiIGxBjTCKcfbSLUXNlVYbvvrQfjwue/m56\nm9btdgmvXJzB5tIQgRAMyHJRHTT84r0K/nJaGjmdXDw8t5KHP6+irAq+f6SHv30njXRvcnZxTurS\nefb92V1PQCSj926z4ewvzPDw9Tnb5g3+9tC7uwYq5m6AUH+AtWVLTtpSvnrHhL5XLkj3dB4efc9K\nNVkiHGMTSku79Ersn16I3h1pd4HeLSL5IrIWqALrjFdEhorIDBGpsLtI/4D1aHoi9vFrEVkhIuUi\nskdEFojIhS2MHdpBwiuvtkZirtkT4sMrMmqNvOyWDnsq6rbialpn3dLrTzrd0oS9FQYTcYtBzbbZ\nEdv27exiQJZV99/nVpHmgetHePl4dYA/fFbJGz/M4KsbMpm3Kcg9Myqb92bbsRCErs/pOe3+7t1O\nRSQD4K5JwR0SMZ9hanVpT7cJ+t2pw2pdv6sI7uv5zobHh31TvGCaMUbn5FTxUOZ0AImmqQnPLSIe\nEUkVkSOBe4DtwNRGtpsI5AG32j83i0gP4FOgB3Al8AvgbOBn4RuKyOXAg8CLwLnA5cBrQHYTY48m\noRNeddBw0avlLNgc5L3LMzg2p/ZtNUf3dPPV9rr3vi3fEWJAltAppf6Ed3QvF5VBWL2ndsKruXZ3\nVM/ot/BsLAnxlxmVPJGXjkuED1YFOGuQhxN6u+mZ6eKnJ6TwwerkOrEsdknxGf37LZyZkT6uZtnF\nM4Izuu7nxGjls0rWbvakjzwZZEvEKlm0+5NxH29+dmMgVP11qwatkoF2k0doasJbiXVvRwWwHDgS\nOM8YU9LgVlarbYIx5nVjzAfGmG3Ab7DOficYY142xrwFTAAi++xGAkuMMXcZYz4zxrxnjCk0xvy3\nibFHk7AJL2QMl79RzqdrA7z1wwxOya3b+3zBEA+bSg3T/AcTTEml4d1vAlxweMO91Wcf5sHrgv8t\nqT2a8/kl1RzTy8Uh3aJ/NW76oILLj/Uyot/BhLgvbHBMWZXBtNWQowSwIsW7evyA3L07Pe4DXZHZ\nJWbbRTPNcfVt03vr5xkinlR36nHfRlu/p2rbYW+u+/shW8vXTjORTXClYrfD6QASTVMT3oXACOAk\n4HtYSe89u7XXkA+MMeURy0YCc40xG2oWGGP2Ae9GlJsPnCAij4rImWJ3F8VJY4naMb8oquDV5QFu\nGZlCZgrM3Rg48Npo35ZwwRAPI3PdXPFmOS8tq+bDVQEueHE/xhhuG1V7MInnrhKuevvgn6BXpoub\nR6Zw78xKHppTyVR/gOsnl/Pp2iD3nhF9IMqHqwLMWB/knjMO3t935qFupqwJ8vj8Kt5aWc2j86qY\nMCg5Rm2+0rnT3Ev69s4JiAwMX/7nSUG/QFZ92/XcufhIjAl40scOp56z8BChlGlbXxk3e/tbi0Im\nFNkSVCoWmvAiNPXItCxs0Aoi8hGwASgAftjAdtH+w/YBlkVZvi3i9+ewnkx+FXADUC0i7wE3G2P8\nMUce3e4Wbt9q3l9ltdrunlHF3TOqaq27c1wKBePTcIkw+UcZ3PpRBTcUlVMRgJH93Xx2ZSb9s2qf\nywSN9Qp39+mpdEoRHv68iq1lhiHdXbxycTrnHV73fujKgOGX71fw17NS6Ro2MvScwV7uOSPEPTMq\n2V9t+N4RXu4Y27FHbhowN/fqMW1KRvq4yGGu584LzelZ0vBIZU+wspMnUL4k4M04zpVy1PxQ1fJx\n9ZXduP+bE99e/+ies/r+ZG4nb7dT4vUeVFLQLs0IEkuPiYhMBJ4GBocnPHvdPKCzMeZIESkA7jTG\nSNh6A9xtjLkjYrtPAY8xZmzE8qeBieH7CFvXDavb80FgkzHm5JjeZX0Ksr4LvNWifaikUiZS+v3c\nPiu2eDwnRa7rvN/sfvKRYNBlGn/S9NKjrp62o9fQccZUllbu/UcQ6NrYNkd3HTXz6K6jThCRTs0M\nXyWXobmFYxY7HUQiadEoTbt7cRDNazrPAU4Rkf5h+8sEzq9vA2PMHmPMy8ArQDzmI9QzIBWzVV7v\n2nEDcrdHS3YABf8Lrogl2QH02TqnK4BIameXd3BMB6Wv9s4a/f6m/+yqClVE6xlRKpIe3yI0NeGd\nICKniMhIEfk+MBlrtOSjzaj7b8A+4CMR+aGIfA/4CKh1rU9E/i0iD4rIRSIyVkSuBn5sl20p/UKo\nmLzTKWP+hf16Z1e5ZFC09eOWhub338moWPeXvWfFUVjXrPFmnHk8MQ4hL63ePfCtdY8csWHfyqnG\nGL2xWDVEr+FFaGrCexWrZTYb+Ke97GxjzKtNrdieWeIMrKTzLPAP4APgqYiis4BhwONYN7nfDjyP\ndStDS+2Kwz5UB/f7Ht2n3d6j+zAOzihUS3qFKbmuKJTblH26TMibUlW8AkBc6d1cHt+CWLc1GM/s\n7W+Pn7b1leUhE1zflHpV0ijNLRyTfDfENiKma3gdVkGWC6gkgSeRVs7ZL7Lv4n69l6z3ehschHL3\ns4HpgzcztqEy0aw8/LJpm/uOHgdgQmU7Kov/3RlrgFbMPJJSekafy7/smtprdFPrVx3a2tzCMYc6\nHUSiaVeTJ8ddQXEIWOd0GCrxrPN4Nowb0G9TY8lu+DehxYdtZkxz6uizdU6fmn+Lq1NP8fSb19R9\nBExV5w83Pz164a6P5xhj9jYnDtUhaXdmFMmd8CzfOB2ASiwfZaQvPD+3T6cKl+vwhsqlVJv9N78Z\n6iZRpsOLRZcS/2BM6MB1ZG/G2YfRzId2fluycOTkjf8srwjuX9Sc7VWHowkvCk14EHW2C5Wc7ure\nbdotvXocb6xbYBp022uh+Z4QAxsrVx8BSS/fceD753Jn9RV3r8+bu7/9gZI+b69/9ITVpV9OM8ZU\nNb6F6sD8TgeQiDThaQtPAZVCxff69Z71apfO47Ce6NGgY/yhr471m2Z1ZYbrtWNRrYlHvZnn9qdl\nj3WRBTs/GPfJlv+tCYYCq1sWnWrHljsdQCLShKctvKS3yePePHZA7trVKSkx3VbgCZqq/FdDqRKH\n/z99tn7uC//d5c4eKK7suS3d767KTUe8uf7hvjsqNuoDZpPTCqcDSESa8LSFl9Smp6d9eU5uX+9+\nl6ux+WAP+NXbodkpAQ6LR/0Z5dv7Syi4IXyZN/Pc3kCLh08HTSD90y3/G/v5jqL5xoQS5prOlpLt\n/OHjv/PdSdcz+MGz6H/fWDYU1519sCJQyV8+e5xhj32Pwx48k+9Oup65G2KfOOSFxe8y/skrGPTA\nGYx78nImLXq7Tpk3l3/MqH9dyjEP53Hb+/dTXl17JP+G4i0c8bfvsGhzu2swtbuA24ImPFiPdWuC\nSjJ/ze46/Rc5PY8yIjHNjgIwaLP55uSvTcw3mMeiU9lGf/jvLk+vQeLKava1vEj+smUj3tnwOPsD\nJfPjtc+W8O/dxOSVn5GV1omTcut9qAS/ff8+XvxyMreMvopnfnAfvTplc8Urt/LVtsY7ZV5Y/C75\nHz7AOUPGMeniv5I3ZDy3f/QQzy06OJPgmt0buLnoHi477jweOvd3fLbmc574/H+19nPnlEf43pFn\nMrTvUc1/w21vd27hmMg5iRWa8GpuTdBrHUmkCqou6dt7xnNZXcYiUnem7Hq4Qib4xxeDAbEfeBwv\nOdvn17lm6M08u96nLTRHRXBfz3c3PDFi5d7Pp0d5ckmbOrn/8Sy68W2eu/ivnHfEaVHLLN++ireW\nT+GPp/+SH51wPqN9w3jiu3+iX5ccHpjZ8JPBAqEA9894kh8cM4H/G3sNpw48kdvGXsPFx57DAzP+\nS3XQumw63T+fQ7rl8suRVzBh8Gh+Ouz7fLbm4HnGlFWz+WLTMv5v3LXxe/NtQ7sz66EJz6Ldmkli\nm9u9bdzA3G9WpKY0ecDJNR+EZqRXEfdT/d7bFhwe+eh5l6ffkUhmzLOvxOrLPVPHfrjp6S2BUNXK\neO87Vi5p/LDz0bez8Lo8XHDk6QeWeVweLjjiDKavnU9loP5BqF9s+opd+/dy4VETai3/wdET2FNe\nzPyNSwCoDgZI8xx8ske6N+3AfsurK7lzysPcftoNdEvv0qT3lwC0O7MemvAsOnAlCcxNS102oX9f\nylyuJk88nrvD+E//soVP56hHSnVpD1eoqs5Jlzfz7FZ5zlJx9Y5D31z38KFb9q+eaowJtUYdLfXN\nzrX079qHdG/tiWcO7+GjKliNf8+mBrb1AzCk5yER21q/f7PLWj+0z5Es376a6Wvns7V0J68sfY8T\n7a7Lx+ZMIqdzTy4+5uw4vaM2pS28emjCs2gLr4N7rGvWjGt69zo8JJLT5I2NMX96PlgskN4KoQGQ\nVbx2a+Qyt3fgsUh6q9xIHiKUMn3ba+Nnbn9jSciENrdGHS2xt6KErNTOdZZ3tVtbeyvqf3Zzzbqs\ntNrbd023ft9bXgrA8Nxj+dnwH3D5K7cw4vHvEzKG34z+KWt3b+A/C17lngk3Rz7usL3QFl49dA5J\ni54RdVDVUP2zPjlzFqelNnmuyxpXfBqa0bmi6XNlNkWfbXMz92QfUWe5N+NMqve922r1bt6/6oS3\n1j9SfGbfn8zu4s0+tdUqSlB/PP2X/PKUKyip3MfArn0RES5/+RZ+PPS7HNHzUN5Z8Ql/m/k0O/fv\nZbRvGPdMuKU9dHFqwquHtvAsC2nmlE4qce1yuXaeNqDf8pYku157zabz55mh8Ywrmp47vjwSY+p8\nB90pg4ciKUtbs+7qUGXW+xufPHXJ7mmzjDGlrVlXrLLSOlNcWTeUveVW661rWv1Jp6ZlV1xRe/ua\nll1NS69GdkZXfN36ISJMXvkZ3+7y85tRE/l2p5/fFN3DXWfdxJzrXqGscj8FnzzSovfVBkpzC8ds\naLxYctKEB1BQXI6V9FQHsTA1ZcUZA/pVFbvdx7dkP3dNCm4RqNu3FmfuUFWmJ7A/6pm5N/20itau\nH2BF8dxR7218cm9VsKJVE2wshvQ4hA17t1BeXfutf7vLT4rbi69bv3q3PbyHDzh4LS98W4DDu/ui\nbrevaj9/+uQxCs64kcyUDGau+4IhPQ5hjG84nVIz+MmJ32PqmrjdLdJatLeqAZrwDprldAAqPp7K\n6jzryj45vqBI35bs58JZoZnZZQyPV1yNyd6zck+05e7Uo0eA5+u2iKEssKf/W+sfOWpd2fKpxphA\n41u0jjMPO5XqUIDJKz87sCwQCvDuik8Z6xtBqiel3m2H9T2G7PQs3vzq41rL3/jqI7qmdWF47rFR\nt3to5tMc2etQzh0y/sCy/WEJd19VectnA2h9c5wOIJG5CwoKnI4hMUwt7AT80OkwVPMFIXht754z\nXuvSeUxT7q+LpmuZ2fG7V0O9W3OgSiR3sLJ0W85J0QfVSOqqUGBtkx4y2wKujfu/8e2o2LBiQKej\nyl3i6hrvCopWTuXbnX7mb1rKkq1fc2j2ADYWb2XX/r30z+pNr07dWbVrHc8tfJNu6VkUV5Ry79R/\nsXjLSh4+73ZyOvU4sK/R/7qMj1bN5CJ7RKXb5aJTSiaPzZlEdSiAS1y8vOQ9nlrwGrefdj3D+tUd\npLtyxxru+PhvPPWDQrraXaIZ3nQenTMJAcoDlTww/T8M73cs5w4ZF++PI57u73LmQMduOUl0yf0A\n2HAFWTlAnZFyqn3Y63Lt+W5un7W73e4T47G/R54IzOm9lwafhRdvIXFVTx37SCUinSLXGWNM5d5H\n1kBwUFvG5BFv2el9frSoW2rvFk+UHa7/fdEvq57S/wRe/ZF1nay8upL7pz/J2yumUFJRxpG9BvH7\n8dcxckDtS6ojn7iE3KzeB7ar8fzit/n3vJfZVLKNvl16cfXwS7jyxAuj1nvRCzcyeuAwbho1sdby\n15d9yEOznmb3/r2MGjiM+87+Ld0z4p7/48UAPXMLx+xyOpBEpQkvXEHWKqBNDyiq5ZalpHz74745\nqQGRAfHY31kLQ3Ov+TB0Sjz21VSzRv5lfmVqtxHR1gXK580KVMyM67RmsRrU+YS5w7pPGCIxPDZJ\nOWZZbuGY6P21CtBreJH0Ol4780LnTnMu65vTN17JrlO52XvVR6FD47Gv5uixc+n++ta504afAq71\nbRlPjdWli095d8MTlRXBfTq4K3FNdTqARKcJrzZNeO1ECEI39uox9d4e2SMRyYzXfu98IbjMZegV\nr/01VZ+tc+sdaCPicrvThq9ry3jClQdLe7+9/rGhq0oWTTPG6ITriWea0wEkOk14tc12OgDVuBKX\nFE/o3/eLqZkZ4+O531FfhRYM3M7oeO6zqTqXrjuMBh7l40kbeTJI3WfptB35YtdH46ZsnrQuGKpe\n5WAcqi599mEjNOHV9hWw1+kgVP2+9nrXjB+Qu3ubxxP1OldzpVWZsl9ODvWO5z6bQ0Ay9m+vd25X\nEXeKO/UEx+d+3V215fA31j+cu718/TSjAwESwYrcwjHbnQ4i0WnCC1dQbND7WBLWG50y513Ur3eP\napFDGi/dNL9/ObjQHaKthv03qNeOhcGG1nvSR48AHH+ga8gE0z7b+uK4uTsmf2FMSA+2ztLuzBho\nwqtritMBqNoMmN/27D7tzh7ZIxCJ+0SGQ1eFvhyykbgOu2+JPls/bzChi3jT3SlHJ8x8iev3LR/+\n9vp/uPdVFyf8NCQdmCa8GGjCq+utxouotrJPpOyc3L6ff9Apc1xrTF3vDZiKW98IdRFImGnx0yt2\n5koo0ODgFE/G+BNJoO73ytD+7pM3/vPk5XvnzDDG1DvSVLUaTXgx0IQXqaB4DbDE6TAUrPV61o0b\n0G/rJq+n1e6Ju+WN0FxvkLh3kbZU57KNDd5+IJLa2eU9/Mu2iidWS/dMH/PBpqe2VYeqEqYFmgRW\n5BaOcXIgU7uhCS+6N50OINm9l5mx4Lv9+mRVulyHtVYdR2wwK4auNgnTlRkuZ9u8Rh/d5c0443gg\nIZ5uEK6keuchb657ePCmfd8m7ANmOxjtlYqRJrzoNOE56I89sqf+X8/uJxqRVpvDyR001be/FHQL\nuFurjpbI2b5gCI2MfhRXeleX55Av2iqmpjCEvDO3vzF+xrbXl4ZMqP7Hk6t4eMPpANoLTXjRFBR/\nCax1OoxkUy6y//x+fWa/2bnTeERa9bv5i8mh2akBDm/NOloipXpftitU1egTEryZE44GytsgpGbZ\nUr76+LfWP9KpuGqnTmOcFTIAACAASURBVOrQOjbkFo5Z4HQQ7YUmvPppK68NbfB4No4d0G+DP8Xb\n6k/d9m01q0ctN206MXRzdC1eva2xMuLK7Cme3PltEU9zVYcqsz7Y9N9Ri3d/NssYU+x0PB1M3I5T\nIjJBRN4XkV0iUiEi34jIfeHzp4pIVxEpEJE6k7SLyFQRmRmveFqDJrz6acJrI59kpC/Ky+2TXuFy\nDWntusSY0J0vBMsF6n+gWoLos3VuTFOmpWSePRioauVwWuzr4nmjijb+u7QyWJ5wg23asbh0Z4rI\n74EPgQrgauA7wD+BicB8EelvF+0K3AnE5akkbU0TXv1mA3ozbSu7J7vb9Jt69TjWiHRvi/p+9mFo\nRmYldR+IloB67Fx6FMY0msjE1aWPuHPaxT1w+wJ7c99a/8ix/tJl04wx1U7H085tBVrcohKR04C/\nAH83xlxojHnTGDPNGPMQcAqQDTzX0nriQURSW7K9Jrz6FBSHgLedDqOjqhQqftC398wXszqPRaTR\nEYnx0HeXWTdhkYnrlGStyR2qyvAE9q2Ipaw381wf4NgTypvI9fnOonGfbX3h26AJ6LXy5nslt3BM\ng7PyxOg2YDfwu8gVxpi1QCEwXkRO5uDYhidFxNivieHbiMiZIrJQRPaLyDIRqfMQQhE5XkTeEZE9\nIlIuIrNEZExEmWdEZKOIjBSR2SJSDtxvr/uRiCwSkTIRKRGRpSJybWNvVBNew3S4byvY4nZvGTcg\nd803qSltOlHzXZOCuwUy2rLOlsrevXJPLOVc7m79xdW9XbTyauyo2HjUm+se6bWrcvMMp2Npp15s\n6Q7EOtkcB3xsjKmop9g79s+zge/b/74XGGm/isLKDgIeBh6yy24BXhWRA7cX2df/ZmO1HK8BfgDs\nAqaIyLCIurOAl7De6znACyIyGnge62b77wEXAU9idbc2qE3OrNuxKVizWSTsI47bm5npaUtuyOnZ\nx4gc1Zb1XjotOKNLeeJMHxarPlvn9NieMzymst7Mc3pXlT4foh2dyAZNdeaUzZPGHNrpuM+H9zj7\nMGmjru0OYG1u4Zi5cdhPdyAd8DdQpmZdDrDI/vcaY0y0+nsAY40x3wKIyEKspHcJcI9d5q/AeuB0\nY3fZi8iHwDLgD1hJrEYn4ApjzIHeNhG5FdhrjLkprNxHDb5LW7v5j+GIguIqEqTvuiP4W7es6dfn\n9DzSiPRsy3q7F5stF842x7dlnfHSbe83R2BMTDeXuzy9Bomr67zWjqk1rClbcvK7Gx4PlAfKdIh9\nbF5yOoB6fFuT7ACMMduxxkIMABCRdKwW5atASEQ8ditTsBoYYyP2Vw1Mjlg2H+gmIs+LyHnShPt1\nNeE17p9OB9DeVUP1ZX1yZjzVNWssIt62rv/Pk4IbBOI+6XRbcJmQJ7Vyz8pYy3szz+7WeKnEVB4s\ny3lnwz+GfVO8YFoD3WvK8kKc9rMLa2Smr4EyNes2xLC/3VGWVQJp9r+zsSZ7+ANWMgt//RIrkYXn\npR3GmFrXKY0x04CLgf5Yo+l3iMgUETmuseA04TWmoHgF+mDFZtvudm8fNyB3xbK0VEe6E8+fG5rd\no5STnKg7XnrsXBLzZMwuT98hSKeEvi+vEbJo9yfjPt787IZAqPobp4NJULNzC8csi8eOjDEBrGth\nZ4lIWj3FLrB/fhqHKvcCIeBRYES0V8R0dFFnGzLGvGaMGQd0Ay4E+gAfSCMTVmjCi4228pphflrq\n8rP69w2Wul2Nnnm1hqx9Zufln4X+v73zDo+ruPr/5+xq1avVLdlyt2RsDMY22OCCA6EllJAQUkCQ\nkEL8QiAKJS9JUCAhzg8SQkkoeQmhhSj0IEIHV7BxwXhtS+6Sm3rvZXd+f8zKVrOad7Va7Xye5z7y\n3jt35qys3e+dOWfO8fjePk+TXLw+ZTDtbWEXhHjKluGiqrVk6muFD6WVNBWYArM9ecTN/T2A9uXd\n1/2C6NqTdwCrlVIb0LM10H6/QaOUagDWALOBLUqpTd2PQfZXr5TKBZ5Ai16fPmATtDIwXkEX3BxW\n35Mv80R05NpHo6PmcZL7Zk6G7Ocduy3g8cwtniay/tAUlLMUsSQMpL3VljazTUK2oJp8cnNwB04c\nQSuLc5aMC0vffFb8V1MsYvF6RfoRQBH6+8htKKU+EJG7gd+IyAR03EIVenP5nUANcI2reQl6GfRq\nEdkGNAAHlFIVgxjyZ+hVs3dF5Cn0e4pzjWdVSt3Z180icg86gOZj4CiQCtwMbFVK9VkY2czwBoIO\nXnna22b4Au3Qfn1SwupHY6LP8abYnfuF87OUSt8Xuw5CG0v2Dqa9LfT8UfPZPtSQf8YbBx8NrG+r\ndkdUoq/zeOqKRW7fsK+Uugcd9h+G/q57D/gJWvzmKqUOuto50ZlYYtBBJhuBrw5yrC3o5csK4GHX\nWA8BsxiY+2gD2q/4IPA+8Af0suwl/d0oZrVggGRHTQL2MoIKhY40Ki2WistTkw9WWa2ne9OO0GZV\n89SfHU1WxaiZERxIu3jtgYmXDGrfYnP1X7ahWryynOwpZkafs2ZG9MI5IjKgtGujjFZgfOqKRf3m\nWDX0zqh5CvQ4ujDs+942Y6TyRVDgrmXjU5q8LXYAv3rRsW00iR1AUsmGSYO9xxaybMTn1xws26vX\nLnr7yFPlbc6WHd62xQu8ZMTu5DCCNzhM8EovPBsZ8cl3kxPHOURSvW3LmfnOLZOLfW+DeX+ENFeM\nFWd7wWDusQZlzAXbgFKT+RJ1bRVprxU+NP1ww66V3UPWRzmPetsAX8cI3uB4EzDFLF04wXljYvzK\n+2NjFiLi9ZRdQa2q4advOEdtYFFE3cGB7IPqQkDo4lpP2OJtFCpgXenrS1eXvLTDqRyHvW3PMLDJ\nTZlV/BoTpTkYsmvayY56EviNt00ZblYWtHPuMz22g1ksIfVLZzzWd5YwZ6uT0ldLqf60Gkejg+Dx\nwSRdlUTY9ONuGOVUlLxcQtWaKsQmxF0QR9wFcV36qfmshqJ/FjH191OxhvQsVH7HS87NAc4emRpG\nDUklG221UYNb2bQGnjq/vXHlXnBM6b+171HcdODU1wsfrl029rvrogPjz/a2PR7E3VsR/BIzwxs8\nj6DDdP2Shy8M5h83RB6ecueE4km/nMTE2yf2e8+Rvx+hclUlCVckkHZrGrZoGwUPFNBUeLxQd/Xa\naio/riT5O8kkfCWB4pxi6vPqj113NDsoerGIpKuTehW7WQec9lMOqmFNRj3cJJZunk7XTbn9IiIS\nELJwVJe5alOtke8e+fvZn1d8+MkoLTBbBuR424jRgJnhDZbsmiqyox4Cfu1tU7xBYWJI3rtnjx0X\nLBI+kPZNB5uoWV9DyvdTiFmks16FTQ9jz117KH2tlLRb0gCo21ZH9IJoos/SafFqP6+l3l5PeIYe\npvT1UoKSg45d70xAu2q54yVnqIzyBzhbe0OM1dGS5wgIzhjMfdagM85sb1pXCM60gbQ/UF7J+zv2\ncKS6lnaHg7jwMM6eMoH5k8b1eZ9TKT7O38f6fQepa24hPiKM80+ZyqmpyV3ardy1nzW7D+BwOpk/\ncRwXzpqORY4HPxdWVPHkqg1kXbCYMWEDXynfXbtp4eHGPUe/PPbaA0HW0NMGfOPI58nUFYta+m9m\n6I9R/QXhQR7Ez2Z5ypXi55X4yHQGKHYAdZ/XIVYhan7UsXNiFaLOjKJ+ez3ONj1hUQ6F2I5/6VkC\nLag2vWWm+XAzVR9XMfaasb2Ocevrzk8DHUwewtvyOaJq9g06Sk/EYrUGzz84kLZHq2t5YtUGHE4n\n35g7i8yFZzBuTDT/3rSNT/YW9nnvu9t38d6OPZw9JY0bFs8jLTaG5z7ZQl7R8QnmnpJy/rstn/Nn\nTOWy02ewbm8hmwuOu+CcTsWrm7ezLGPKoMSug8b2mrGvH3zk1P1120ZLgdk69PeNwQ0YwRsK2TXV\nwJ+9bcZwUSdSe2vkmHyAQ08elu3XbydveR6HHj9Ea0Xfke8tR1qwxduwBHX9UwtOCUa1K1pL9f0h\nk0Ko3VRLS0kLTQVN1O+oJ2Syzl509NmjxH45lqDknvvYpx5Ru+buGd1LmZ1JLl4/pCTYAcFnngVy\ntL92Ww8eRSnF986Zx8yUJKYlxfP1ubNIi41mc+GJY0PqmltYuesAy9InszR9MlMS4vj63FlMTojl\nv9uO577OLy5jWmIcZ00ez+njU5iTNpb84uPJMT7ZV0ibw8HS6YPehdEZy8byt5d8VPTCXodq338y\nHY0A/pS6YtFgspgY+sAI3tB5EJ0IdVSz12Y7sDQttbw+Ligj9sJYUq5PYeIdE4m/NJ76HfXsv3c/\n7bUnLrTd3tCONbSnz80aps856nVUeex5sdjibOy5Yw/7svcRMTuCqPlRVK2roq2qjfiv9gy+tDhV\n+69edCjxo6X5uAp7BkoNenlLxGqzBp3eb7YWh9OJRSzYrF3/z4JtNpx95KjYXVyGw+lkTlrXtJ9z\n0lIoqqmjor7xWP+d+7ZZrbQ79Cy/rrmFd7fv4mtnzMRqOfmvpvKWIxmvFT6UXN58xFeTv1cAf/S2\nEaMJI3hDJbumhlG+1PCf8NCNV6QkjWkVmRSSFkLy1clEnh5JWHoYcRfEMSFrAu217VS8f/IPoNYQ\nK5N+MYlpD0xj+p+nM+7GcTibnBTnFDP2O2ORAKHk5RLyb80n/5Z8Sl4u4YdvOdYGt5HuhrfqM1id\nbSG2toYh7a0LCDlnPkifASxzJ2o/3euf76CmqZmm1jbW7zvInpJyFk87cYBScW09ARYLceFdlyGT\nIiMAKKnVJf3Gj4lmT2k5h6tqKK9rYNvhIsbHar/sm1/kkZGcwJSErtG5J4NDtYd8WPT84g1lb32m\nlLPPPIsjkBWpKxYNqBaiYWD4zZOxh3gIuAWdV25UcWd87Kq3wkIX0Ue5jZAJIQQlBdF0oOlETbCG\nWWmr6OlKcTTomZ01vOtMIjAu8Ni/S14pIXRKKBGnRVC5spLqT6uZ9L96qavw3v2O8hDr2UT7XzH6\nMVU7q0sSB1/xSCQg2Bp4ygZH6/YTJqFOjorgxnPP4pl1m/lkn/bZWS3ClWfM5PTxvftQARpbWwkJ\ntCHSNfNeaKAuf9jUqv8GThs3lu1HSvjz+2sBmJwQyzlTJ7CvtIK8oyXcftHSQb+vgVBQv31+cdOB\nsvPHZm4MDYiY55FB3MsRzEZzt2ME72TIrqkhO+pB4B5vm+IuGkUavp6StO2QzbbEHf0FpwRTt7kO\nZ4uzix+v+UgzEiAEJgT2el9TQRPVn1Qz5Xd6+1i9vZ7IuZEExgciSjkvCgir/KShIf4qPxS85KL1\n8UMRPICA0KVnOFq3V3GCh7Syugae/WQziZHhXHnGTGxWKzuOlPDK5u3YrNYeS5aDxWIRrl04h5qm\nZpxORUxYCA6nk1e3bOfCmdOJCA5ize4DrNlzgJZ2B7NSkrjstBnYAnouiw+WZkdD/JuH/hp/2phz\nV0+LnDfPVX17pPLb1BWLTBFcN2OWNE+eh9ClNHyegoCAg4vHpxw9ZLMtGEj7pgNNtBS1EDLpxN8b\nEadFoByKmo3Hg1qVQ1H7WS3hp4RjsfX8E1ROxdFnjxJ/aTyBsccF0dmifT3XfuBca3PIqM2o0h8x\n1bvTGeJ+M5HAcItt+rYTXX/bno9VLHx/0TxmjE1kamIcl885hdnjknn98x04T5BsPsRmo6m1je7J\n6BtdM7uQwK6F7qNCgokJ0383q3cfwGa1smBKGruLy3hn+24yF57BbRcs5lBlNR/mDapQRL9srfx4\n8XtH/3G03dm6y60du499wFPeNmI0YgTvZMmuqQX+5G0zTpb3QkO2XJqaHNFisUzt7fqhxw9R8koJ\nNZtqqN9ZT/nb5RT8sQBbjI3Y83XNxdbyVrZ/bzulbxx3E4WkhRA1P4qifxZRuaqS+p31HHrsEK1l\nrSRc0fvKWtWqKpwtTuK+fNyXE3ZKGDXra3C8U1nZ9mH1/Ldqa1kY5o8J80FQ1qCWyiF/WdtCv3Qa\n0GvKsaKaOpKjI3oEjYwfE01jaxv1zb3HyyRFRdDudB4LTumgw3eX6PLldae6sYkP8/bytTNmYhE5\nFsWZEhNFeHAQ8yamdonidBfVraWTXyt8aGJR4/6VI7DAbLYnSgAZjOC5i4fQRQx9kt/ExqzKSoib\nrURO6IsMTg2m9vNajjx1hII/FlD+fjmRZ0Qy6deTCIhwrYwrwKlnaJ1JuUFvOi99pZTCPxXSVtlG\nWlYaIRN6zgzb69opebmEsdfqQJUOxiwdQ8zSGI68VBz5QFlp8Dejo7kyKqrH/f5CfPm2EztO+0Es\nwVEW26QtvV2LCA7iaHXtscjJDg5WVhNgtRAa2PsS9PSkeKwWYcvBrqlmtxQeISkqgtjw3vfUvbF1\nJ6ePH8v4MceXplsdx/NBt7R7Lje0E2fg6pKXlq4rfX2rUzlHyud3O/BPbxsxWjH18NxFdtS3gRe8\nbcZgaBZpunps0pZ9gTafyEH49TXOtVetdfrNnru+qAtP3bdx7i+GvNleORvKW2qeCAW6KNEXh4p4\n7tMtTEuMY+GUNO3DO1rCJ3sLWTxtIpeepvOm3v7Sf5k7IYWr5s0+du9b2/JZs/sAF82aTkpMFF8c\nOsr6fQe5/py5zBib2MOGXcVlvLhhK3dctPTYkmdeUSlPr93EZafPICokmFc3b2fuhFQuPtWzwbiB\nluDq88ZekxdhGzOg5XwPckXqikWve9mGUYsRPHeSHfURcK63zRgIRwKsR69ISa5pslgGlabKW4yp\nVSWP/cURLOC/07pufLTkkWLEMuS6f611L61yth/qEZyUV1TKx/n7KKmtp93hIDY8jDMnjWPBpDQs\nFj3r/vm/32LuhFSunn9c8JxOxUf5e1m//xB1zS0kRIRx3oypzB6X3H0I2h0OHnh3NefNmMrcCV2r\nSn2cv4+1ewpodTiYOTaRK+bMJNANQSsDYUb0grUzoxfNFpHe12A9yyepKxb5xMOnr2IEz51kR2UA\nXwC2/pp6k1UhwV/clBg/VonvBH488tf29Yk1nOVtO0YSG+bdta4hbOyQvyCVs664peZvMUDPFDZ+\nTERAzMHzxl5bE2gNnjWMw7YBc1JXLNo+jGP6HcaH506ya/IY4QEs/29M9Or/SYyf4Utid+Em56dG\n7HqSULr5pJ5WxRKRJNakz9xlz2ihrr1q/OsHH55xsD5vOAvMPmDEzvMYwXM/9wKDLtTpaVqh9aqx\nSWuei4pcjMiInoF2JqJRVV73gXNU1nI7WZKKPzvphNm2sIsmAifODeenKJT107L/LF1VnJPnVI6+\ns2afPPsYRXt5RzJG8NxNdk0DOvvKiKHYai1Zkpa6Oy8ocJG3bRksd7/gyLMofGY2OpyEtFQmi7Pt\nwMn0YbHGpIo1zlTSPgElzYUzXyt8KLaqpWStB4f5sdlkPjwYH56nyI76L3CRt81YHxy0/UdJCfFO\nkZ5hciOcRdudm2560znX23Z4k7UN9TxVWcnelhZqnU7GWK2cFhLC8tg4pgQFsfn0n62uiZrca5X3\nxpY6Xlv/BNsK1tHW3srExBl8bcGNpMQer0TQ2tbMC6vuq9t58LOI0EAbF82azmndUoh9nL+PLYVH\nuOX8c9yS1NlXmRIx59M5seelSx/bd4bA86krFl3jxv4MfeC/f72e5ybAq09tj0ZHrflBUsI0XxS7\nkBZV95Nc54mTN/oJNQ4nM4KC+WViIv+XOo5b4+LZ29LCtw4WcqStjaTiz3rdGKeU4vF3fkneoY18\n4+ybuOH8u3E423k4N4uq+uMbud/b+iL7S/ZEXHHGvPx5E1N58bOtlNU1HLte3djEBzv3cqWbKhj4\nMnvrtizIPfRYc7Ojodc9jEOgAviZm/oyDAD//gv2JNk1+4A/eGPoNmi7Jjlx9RMxUYsQ6X2n8Ajn\nrn85Prcq/F7wLomM5LaEBC6IiGReaCiXRkXxcEoKDU4n79XVklC2OQOlnN3vsxd+wv7i7Vx77p3M\nnbKMGePn86ML7kUpxQdf5Bxrt/PQRhafchlnnfITy3kzpqrYsFD2lJQfu/7G1p3MHpfEhLgxw/OG\nRziNjrrkNw4+evq+2q2rlFJ9F4Psn9tSVyzytQoOPo0RPM+yAtg9nAOWWy1l545P2bk1OKjXZS5f\n4Iw9zq1Tj+Jz/sbhItqi96QFiGBrb4qyOlryu7exF3xCVGgs01JOP3YuJCicmWlnsa1g3bFzDkcb\ntoAgLAHJ07BEbLQFWGl3ZTrJLyplX2kFl5zqE1s1hxPZVPHukg+Lnj/gcLbvG2IfK1NXLHrarVYZ\n+sUInifJrmkGvoPeY+NxNgcF5Z03LqWtxmqd3X/rkUlgm2rKetUZIyD9t+6d4rY2fltSzLcKC5iz\nexczduVzpK3rw/iRtjaWHznMl/bt5fTdu1i4dw/XHixkVX39gMZwKsWTFRWct28vp+3exRUFB3iv\nrmd6yqcrKzh3314W7d3Dn8pKeyRf/qKpibm7d/ewrzsOpWhVioLWVrJLiomzWrk4Qhc/j67Z06PG\nXVFVIcljetavS46ZQFV9KS1tOjNZWkIGG3a9R01DBXml8YlHq2sZHxtDu8PB65/v4JJT0wkL8slF\nAo9T0XJ0+msHHxpb1nxo1SBvbQF+5AmbDH1jBM/TZNdsAn7p6WGeiopcd11ywgSHiE8vA972ivOz\nACdpJ9PHwbZW3q2rI9Jq5YyQ3nM4NjqdxFit/DQunsdTU7k3MYkwi4Ubjxzm/br+a24+XF7OXyrK\n+XZMDE+kpnJqcAi3Hj3aRTDXNzTwYFkZN8bGcWdCIi9WV/NG7fEiBw6luKekmB/GxpJi61tUri4s\n5LTdu7j4wH52tbTw9LjxxAboHKbJxRt6ZJ9paKklNCi8Rz9hQTqBSGOLfo8Xz70Gh7ONu56/iqc+\neiTtzEmTSibExfBR/n7CggKZ7yoIa+gdh2oP+ajon0vWl765aRAFZn+bumLRsK78GDSmHt7wcD9w\nPnCeuzt2gONHSQlrN4QEu6V+nTeZUah2nnpAnXSuzLkhoayZoos+vFxdzbrGhh5tpgYF8dukrimv\nloSH8+X9+3itpprzI06cWaqivZ2nqyq5YcwYvjdGV4o4MzSMg22tPFhWxpJwLTRrGhpYEBZGR82+\nTY2NrGlo4Ioo/fpf1dW0KMX1Y/r3j61ITqbe6eRwWxtPV1Zww+FDPD9+PCm2QGIr7Bko1YxI8AB+\nPV2IDovnF1//G+W1RYQEhRFiKS8uLnkxcdWufSxftpA2h5P/bN3J9iPF2AKsLJk2kXOmnrjyub9S\n2LBzbnFTQfn5KZmfhQVE9lWscC3w++Gyy9AVM8MbDrJrFHAtUN5f08FQbbFULRuf8sVoELsAh2r9\nxb8dNoGTTppokaGthgaIEG6xYO3n/nUNDbQpxVcju06svhoZye7WFg636uXJNqUI7tRXsEVocS1p\nlre380h5Gb9KTMQ2AHsnBwUxOySESyIj+fu48TQ6nfytohIAq7M92NZWn9e5fWhQBI0tPZdnG1wz\nu9Cg44IuIsRHjSU8OApr4OTZ/95or50/cTxjoyP5MG8Ph6tq+PkFi7lu4Rm8bd/VJajFcJwWZ2Nc\n7qHH5udVr1+tlGrspUk18J3UFYuGK3uLoRtG8IaL7Joi4Hp3dWcPDNx97viU+kqrdY67+vQmN/3H\n+WlQO73W4vMkTqVoV4qy9nb+Wl5OQWsr347ue5vV3tYWAkVIs3VNWDMlUKek3OcSvFNDgvm0sZGd\nzc0Utupl1tnBuiTS/WWlLA4L58zQwdf0i7RaGW8L5GAnv19s5c4uBWGTYyZQXFXQ497iqkJiwhMI\nsvVetPeLA2spqWsOuWDmNADyi8uYOyGF8OAgUmKimJYY75H6dKOJbVWrFr975O8lbc7W7sFEP0hd\nseigV4wyAEbwhpfsmlzgLyfbzQuR4Z9+e2xiSrvIqHCwTCpSe87KVwu9MfYDZWWcunsXS/bt5e+V\nlfxxbAoL+iksW+NwEGGxIN1mZlFW67HrABdFRHJ2WBhfLyzgogP7SQsM5LsxMWxsbGRVfT23J/Re\nALc/ytvb2d/awrhOfr/k4k+7dDYrbQHVDeXsOfrFsXNNrQ3YCz9lVlrvv+rWtmZe/uQvXHXOrbZg\nW8jOY+fbO9enaweTrKJfatrKJ75W+NDko417Vyq9beRvqSsWvextu/wd48Mbfn4OLAYGnYndCc6b\nE+PWrAoN9fklzA4sTuW4+5+ONvFShYlrY2K4ODKC8nYHb9TWcFvRUf4sKSwN7xnwMVisIjw4NoXS\n9jbaFYy12WhTintLirk5Lp64gACeq6rkuaoqGp1OzguP4M6EBII7bfC+6chhZgQFMy0oiHCrhYLW\nVp6tqiJA5Jjvb2NjI9/b9eaMq4OnNy5IvygUYNaEhUxMnMEzH/2ey8/6IaFBEbz3+YsAnH/aN3u1\n9+0tz5MYPY45k5fS3jKmvr3xA6YmxLFubyEJkeHUNDWzt7SCJdMn9Xq/oSsKp21NyStLx4VNf2Nh\nwuUjKt2gv2IEb7jJrmkmO+pbwCZgwEEGtRapuSIleXdpQMCoETuAG95xrg1pxWvvKclmI8m1NLk0\nPJzMg4XcX1bap+BFWq3UOZ0opbrM8jpmdh0zvQ4SAo5r+bNVlQSJhaujo/mkoYGHy8t5dtx4EgMC\n+MHhQzxZWcHNccdTh84ODuGdulr+UVVJm1IkBdiYFxrKD2PHHIvsVCgcgKOxrBiYBGARCz++8He8\ntv4J/r32YdocrUxMmMHNX/0jMeE9Z5bFVQdZs+MNbr/yMQCsgbPmtTeu3HP+jKlT61taydm4DZvV\nwsWzpjM9yaQ2HQQNhxp2/SJ1xaLefHqGYcYInjfIrtlBdlQWA1zezA+07fv22CRLm8g8D1s2rKSU\nq8IvfaH6imgbdk4JDuG5qso+20wJDKJVKQ62tZEWeHxZcV9rCwCTA3vfYlDc1sYTFRU8lToOiwhr\nGupZGBpKRrB+GBq3LQAAGxlJREFU7rkiKor/1NZ2EbwbYmO5ITa2T3vmh4axc3o6e+JTDh9yCR5A\nWHAk3116G3Bb328aSIoZzwPfe/PYaxGRgJCFZbB6aucir4ZB84OsnNy8/psZhgPjw/MW2TV/Bfpd\n0381POyzb4xNim8TGV2x4Eqpe553VAn0Hj3hBZxKsaWpsYtvrDfOCQsjAMit7brR/M3aWqYGBpF6\nAsFbUVrKVyIjmRVy/C03OY/7wxqd6qTcY8nF693q07UGnXEWWE6qGoOf81hWTu6L3jbCcBwzw/Mu\n1wFTgNO6X1CgbouPXf1uWOjiHtERo4DvrHSuiWjCY+nP3nVlPdnRrPN3r6lvICagmTHWAOaFhvJo\neRk1DidzQkKICwigvL2dV2qqsTc3c39y1737s3blc1lU1LF9e7EBAVw3Zgx/q6wgzGJhRnAQb9fW\nsaGxkb+kpPZqz9qGejY3NfLWxOP+rwWhYTxfVcWLVVXEBwTwQlUVl0f12EM+YMIbjk5EOYsQS3L/\nrftHRCwBwWceaW/+dHQ9bA0PG4BbvW2EoStG8LxJdk0D2VGXARuBY46VBpH6K1OStx+xjS5/XQfx\n1eropevV6f23HDq3Hj3a5fU9pSUAzAsJ4ZnxacwIDua5qirerqulzukkzmolPSiY58aNZ05o1+ws\nDuiREuyncfGEWiw8V1VJucPBRFsgfxo7tlffX6vTyW9LSvh5fAKRnfx7i8PDuSUunicrK2hyOvlS\neAQ/7mf5sj/CGor2N4SnuEXwAKzB889sb15/GFTvSm7ojQLg0qyc3BZvG2LoiqmHNxLIjloIfAwE\n7rcFFF41NqmtxWIZtVW+H3ukfWNsPaPKHzlSKBj/5XX7J112tjv7bGtctdrRstlnk5EPM7XAwqyc\n3B3eNsTQE+PDGwlk13wC/OitsNBNl6UkR49msbvsU+c6I3aeI6nks8nu7jMg5Oz5ICXu7ncU4gCu\nMmI3cjGCN1LIrvnHnfGx7yMydCfOCCeqXpV9a6XT1JrxIMEt1UkWZ9tQS9b0ikhAsDVwZo8SRIYe\n3JyVk/uut40wnBgjeCMJkbuAURvVdc/zjr0WMJVEPUxEbeERd/cZELpkLtD3fg3/5uGsnNy/etsI\nQ98YwRtB2DPtCp1vc423bXE3521xrk+uYoG37fAHkks2BLm7T5HAMEtgut3d/Y4S3sJEZPoERvBG\nGPZMewtwGTBqlpDCmlTNDe85TT6qYSK+9PN0lHJ7Rn5byLLTgJp+G/oXXwBXZ+XkOr1tiKF/jOCN\nQOyZ9irgYqDI27a4g1+/6LBbFEPLlGwYNDZHU5TV0ez2ByaxBEdZbJM/d3e/Pkwe8OWsnNyedZgM\nIxIjeCMUe6b9AHAuUOxtW06GhTudmyeWcNJFXQ2DI6Z6j0dq+NhCz58F9Kyo63/sA87Lyskt9bYh\nhoFjBG8EY8+070KLnk+GhAe3qvqb3nQmetsOfySpeH20J/oVS2isJWD8Jk/07UMcBL6UlZN7tN+W\nhhGFEbwRjj3Tno+Pit4v/u3YYnViMnR4gbiKHRko1eSJvm1hF6QD/ppF5CiwLCsnt9DbhhgGjxE8\nH8Ceac8DlgE+s3wye59zW/ohFnnbDn/FotqDbG11HsnSL5aIRLEmb/BE3yOcUvTMzq37HA3DhxE8\nH8Gead+JnumNeNGztavm219xRgiMuqTXvkRcxY7a/lsNDVvYRZOANk/1PwKpBM7PyskdNdHT/ogR\nPB/CJXrLAI8EJLiLn73qXG9zYDLse5nk4vUe859arNGpYo33l1leNXBBVk7uNm8bYjg5jOD5GPZM\n+w5GsOhNP6Ty5uxTJipzBBBVs286SlV7qn9b2MWpwGjff1YELM7KyfX3QJ1RgRE8H8Sead8OfAko\n97YtnbE4VftdOQ6LmLJTIwJBWYKbyz22BGexxk4QS8x6T/U/AtiLrnxgMsyMEozg+Sj2TLsdWAoc\n8rIpx1ie61wb3MZ0b9thOE5C2dZWT/ZvC7s4HhiNNcY+B87Oyskt8LYhBvdhBM+HcS1vLgC87ltI\nK1H7ztmhTK7MEUZS8YbxnuzfEpA4FUvkRk+O4QU+BpaaTeWjDyN4Po49034EWAR86C0bRCln9guO\nJgG3Jy02nBzhjUUTUA6PbpAODL2wZ5l33+VV4KKsnFyPRbgavIcRvFGAPdNeC1wEPO+N8a9/z7k2\nrIWZ3hjb0D/h9UX7Pdm/xZY6AwkbDUEdf0MXcPXXTfWjHhNcMEqwZ9rbgGtmPTNrP/Dr4Ro3qVId\numCLOmO4xjMMnsTSjVIf4dmEN7awLwe21b/m0TE8iALuzsrJvdfbhhg8i5nhjTLsmfa7gW8BzcMx\n3r3POcoEwoZjLMPQSCrZONXTY1htE09Fgr/w9DgeoAG40oidf2AEbxRiz7T/C1iChystfHOVY01U\nI3M8OYbh5AlqrUmwOFr3enocW+iX2j09hpspQG878NmpqWFwGMEbpdgz7Z8B84Ctnug/tlYVf+0T\ndaon+ja4n8i6wiOeHsMaOP0MCNzh6XHcxEpgvsme4l8YwRvF2DPth4Gzgb+7u+97nnMcFIhyd78G\nz5BUvCFkOMYJCF3iC7Xy/oiuZTcisxUZPIdPCZ6IXCciqtPRKiL7ROQ+EQn24LiniUi2iIzp5ZoS\nkexOr7NFZMRsxLVn2hvtmfbvo/16bgm1vuQz5yfxtcx3R1+G4SGh7PN0lHJ4ehxr4Mx5ELDb0+MM\nkQbg6qyc3J9n5eR6/HdhGHn4lOB14hvoDdeXAO8CvwDu9+B4pwF3Az0Ez2XH/3lwbLfg8uudDpzU\nJuHIBlVxzYdOk03FxwhwNEdaHc0eKRfUGRGRgJBzKjw9zhDYDpyVlZOb421DDN7DVwVvq1JqvVLq\nfaXUT4APgO+JyLC/H5cdh4d73KFgz7TvRy9x3s8Q00Flv+DYZYFYtxpmGBZiqnYNS+5Va9DpZ4L1\nwHCMNQAU8BAwLysnd7u3jTF4F18VvO5sAUKBuI4TIjJRRF4QkTIRaRGRrSJyReebOpYfRWSWiHws\nIo0iUiQi93SIp4hcBzztumVPp+XUCa7rXZY0e0NEAkTkFyKS77LlqIj8sfMyrKvNva4l2mYRKReR\ntSLi1soD9kx7mz3Tfjt6o/qgUict3eb8LLWChe60xzB8JBevjxmOcUTEEhB8pkezuwyQIuDCrJzc\nW7Jyck96m04nl8oUN9jmEVw2fs/bdoxURovgTQBqgAoAERkHbABmA7cCl6JF8RURubSX+19HzxIv\nB/4J/Irjm7ffAn7r+nfHUuoC9IdpoDwP/NLV9yXA74HvAy90anOHy9aHgQuA69HpwnpbRj1p7Jn2\nd9G/n/cH0j60WdX86L/OcZ6wxTA8xFbuzECpxuEYyxo8/0yweHPl43Xg1Kyc3Pe8aIM3uA4wgncC\nfDXTilVEAoAI4ArgSuAWddwpn42utr1EKdXhT3jXJYT3AP/p1t/flFIrXP9+T0QigSwR+bNSqkxE\n9rmubVVKDWo/k4gsAr4JZCqlnnWd/kBEKoHnReQ0pdRWtIi+p5R6qNPtbw5mrMFiz7QXz3pm1gXA\n7WhRP+Hfwy//5dhmVSzypD0Gz2JRjsDA1lp7a1CUxzPjiFgCrEFz9jtaNnk2xUtPGoBbsnJyR7xf\n3TD8+OoMLx9oAyqBp4AnlFKPdrp+IfBfoMa1VBjgEsh3gdkuQevMv7u9/hcQDm7JD3kh0Aq83M2W\njifPxa6fG4GLReR3InKOiAS6Yex+sWfalT3T/ge0b69XH8f8Xc7PpxQZsRsNxFZurxuusQJCFp4J\n4tHkB93YCJw+XGInIitdbofzRGSLyyWyvRfXyTQReU1ESl3uioMi8pLre6CjTbyIPC4iR1xuj3wR\n+WEvY04UkedEpNjVbr+IPNRhDzrhxNmdXC8rXdeSROQZlzulxeW6yRWRBE/+jkYavip4V6A3VV+M\nXor8iYhc2+l6AnAtWhQ7Hx2RnN2DLkpO8DrFDbYmAIHoJ8/OtnT4zzpsuQ8dCXopsAaoEJGnRSSO\nYcC1UX0Oeun1WPLcwDbVeMvrThOkMkpILlqfNFxjiQQEWYNO3TUMQ9UDPwMWZOXk7hmG8TozGR0U\n8yfga2hXx0vd/Hxvob9LbkS7K+5Ef8Y64gQigbXo77NstNvjTeAxEbmpoxMRmQh8hn5I/jX6Yfo3\nHI9d+Am6jt82jrtefuK69pzr9W3A+cDNwGF07IPf4KtLmts7lhZF5CP0f/D9IvKKUqoB7ctbA/zh\nBPd3d6gnAvu7vQZwR3aKCnReyxPNkI4CKKXa0Pb+QUSSgK+gP0Sh6CVRj+NKQP27Wc/Megl4Elhy\nx0vOjQFOlgzH+AbPE1W7fzpKVdLLnlJPEBCyeJ6j5YtyOgWUuZnXgJuzcnK95S+MAxYrpfYAiMgW\ntOhdBdznemCdAlymlOrsSvlnp3//FEgDZnX0g3Z7RAN3i8hjSql2tLiFALOVUp2/w54BUErtFJFa\nIEAp1b0S/QLgf5VSneMGXhr62/ZNfHWGdwylVAv6qSWB408z7wCnAjuUUpt6ObqX/7iq2+ur0U+N\ndtfrjvZDyVbxDhAMRJ3Alh7RbEqpYqXU/6Fnr8Nedseead8NnJtapq6dWahmDPf4Bs8hICFNZcO2\nMVzEFmoJzPBEurFC4NKsnNyveVHsAPZ0EimUUqXo1ZuOwrsV6IfpFSLyAxHpLZH3hegguwO9uGBi\ngY7P4JeB3N6+MwbARuA2EfmpKypdhtCHz+PzggfgenLaiA40CUFP96OA1SKSKSJLRORyEfmliPSW\nZusHIvK/InK+iDwA3AA8oJSqcV3f6fq5XEQWiMjcgfrYlFIrgRfRPrxficgFrnF+4FrXnwYgIm+I\n3g5xucveW9AfBK9Emdkz7ertn29/TvSH7SmGuG/PMPKIL9/aOpzj2UKXnY6OonYH7cD/A2Zk5eR6\nNKhrgFT2cq4F/ZCLUkqhlxA3oaOzd7v8bjd2ap+AXqbs7oLpmIHFdvo5VHH/JjpY73b0itgREfm1\neGHvsjfx1SXN3vgl+onox0qpB0VkLno9/D4gHv2ktR3X9L8blwGPoLcj1KAjFo+VC1FKfSF6r90P\ngR+gHxQmorOtD4TvAjehw4XvQn8gClz2dvgLV6O3PSxHL2MeRH+wfzfAMTxCRn5eOXBDXnrGU+jf\nkal95+MkF6+fcHD8l4dtPJGgSIttykpn296lJ9nVOuDHvraBXCm1H7jWNauaDfwP8FcRKVBKvY3+\nbipFL232RocftJwhxhW4Zp7L0Q/t04FM9BJpGfDYUPr0RUQ/gPgnLhG7G7C51sgNfZCXniHonJz3\noX0OBh/l48UPH1YW67BtGVDOxsqWmscD0dHPg2Uf+mH0X1k5uV77wpLjSSimKqX2uiIgA5RS53Rr\nVwCsVEpdd4J+ItEP1rcrpe53fQ/dBGS4hOlE4z+DDoyZppTqdR+wiLwLxCnVf1Fm19aoF5VSy/tr\nO1oYTTM8g4fJyM9TwD/z0jNeQX9A7wKivWuVYSiENRwpqI8YP2yCJ5bQMZaAtFXO9sLBBECVoFda\nnszKyW3zkGkeRURORUdx5gB7ASt6c3g78JGr2YPoJcc1IvIgekYXBqQDi5RSl7na3Y2O5PxERO5z\n9ZcCXKiU+q6rzU501Po30Q8Kdei6mB+gE110bOm6DIjBSy4Tb2EEzzBoMvLzWoAH8tIz/o5eSl6O\n3nph8BGSSjZZ9kaM77+hG7GFXZDRUvNkMy7/Vh/UobcQPZiVk1vvecs8SjHaPfEzIBUdsW0HvqKU\n2gyglKoRkYXo2IM70CJWjRa+Vzo6UkoViMhZaJfL79Gz5SPAG53G+wMwHZ3QPhxYhd4KsQXtjkkD\nnK6+v6OU6nzvqMevlzQN7iEvPWMS+unz25iHKJ+gJTCybN3C38cP+7h1/1qt2o8uPsHlVrQ/6Xem\nVp3BExjBM7gNl/DdiXaImxnfCGflogf3OK2BvYXJewyno+Zoa+1T8YCt0+l29L60u7NycguG0x6D\nf2EEz+B28tIzxqGXZr5P/8tXBi+xZfbNq6pjpg97UoGW2ufXKEfpIvTy3t+B+43QGYYDI3gGj5GX\nnpEM/Bz4EdoJbxhBFCWduTEv/dp5wz2u01Fub619Nhf4c1ZO7qBKVBkMJ4MRPIPHyUvPiEbvQVwO\nTPKyOQYX7dagutXn/DGETkmMPcwedMTiP5Y/vqxhmMY0GI5hBM8wbOSlZ1jQYdU3obNP+GV6o5HE\n6rPvt7fbQmd5eJiP0KH3by1/fJn5wjF4DSN4Bq+Ql54xHZ1xIhNd19DgBeyn3LCyLP70pR7ougFd\nduvPyx9fts0D/RsMg8YInsGr5KVnhKML+GYCSzGzvmGlfMzMbdtOvfFUN3XnBFYCzwKvLH98ma/v\noTOMMozgGUYMeekZ49F5R69Fb541eBinWNpWLn64FZGTCSrKR4vc88sfX3bITaYZDG7HCJ5hRJKX\nnnEmWvi+js4mb/AQaxf8blNrUPTcQd5WCLwM5Cx/fNlGD5hlMLgdI3iGEY0r0GUhcLnrmOxdi0Yf\n+dO+tero2HMGsh/vILpkzUvLH1+2wcNmGQxuxwiewafIS8+YyXHxM6WK3EBN5ITdm+fcNq2XSwpd\nUutd4GUjcgZfxwiewWfJS89IAc4DlrmOYcv+P5pQoD5e8kgFYokDDqEz638AfLj88WUlfd9tMPgO\nRvAMo4a89IxpHBe/c4E471rkExQDaz6ffdN/q2LSP13++LJd/d5hMPgoRvAMoxJXsdoZwDxgruvn\nbCDIm3Z5mWZgG7AZ2ASsycjP2+NdkwyG4cMInsFvyEvPsAGzOC6Cp6OLbI7GPJ+NwBdocduMroe2\nMyM/r92rVhkMXsQInsGvcc0Ex6Nng9OBacBU15GKrlA9UmkF9qNzVO52/ez49xFXhfoRgYj8DbgB\n+LNS6lYv2fAP4DylVJ++XhG5DngamKiUKnCdKwDWdqos3tcYS5VSE07aYIPbMYJnMJyAvPQMK5CI\nrkCdAozt9jMWiHQdEUCIG4ZtAepdRxnax1bkOoq7/TyckZ/ncMOYHkVEQtA2RwKlQIpSathnmoMQ\nvHj09pfPlVItrnMFDEzwJgORSqnP3WK0wa2Y6tQGwwlwiclR19Hv5uq89IwAjotfJLoIrvRxdBa3\neqDeFwRsCFyO/n38F508/EIg16sW9YFSqgz9sDGUe/e52RyDO1FKmcMc5jCHxw7gHaASiEf7Fl/q\ndj0bvecvHb3nrwG9yf161/Vr0OnL6oGPgcnd7i8Angd+AOxFB+dsAc7t1u4fwGG073aNy5Y9wI+7\ntbvOZc+EIY5R0O3cb1xta4FydPWIs7q1Weoa81LgUVe7cteY0d3a/hTIA5qAKnQA0hXe/n/2hcMy\naIU0GAyGASIiY9F7JXOUnjm9DnxVRGJ6af4S8BZ6RrgZ+LuI3AfcCNwJXI/2s/6zl3uXAj8D7gKu\nRs+e3xaR7jlZI133Pw9chp65PyYi5w7g7Qx0jO6koMsjXYYW01JgtYj0VpbpIbTwfRstlFe6zgEg\nIt8B/gi8iJ4tfwed4m3MAOw3eFtxzWEOc4zeA7gd/QW+wPX6AtfrH3dqk+06d22nczFAO1CB9ol1\nnL/Z1Tat07kCdADPuE7nItCzyuc6nfuH695zO50Lco3xZKdz19H7DG+gYxT08fuwol1Ju4CHOp1f\n6hrzmW7tH0XPJqXT6y3e/n/11cPM8AwGgyfJBPYopT51vf4A7RPN7KXt2x3/UEpVoWdC65VStZ3a\n5Lt+jut273ql1LFKDUqpOvRscUG3do1KqY87tWtBR7WOH8B7GegYXRCR80TkYxGpQIt4GzoauLeZ\n4VvdXtvRopzoer0ROE1EHnH1GzoAuw0ujOAZDAaPICJz0ds9XhWRaBGJRs+KXgXOEpHu+Turur1u\nPcE5gOBu53tLgVaCXk7sawzQS5Pd++uNgY5xDBGZgw7WqQe+D5yF3gf6xQnGrOzFNjq1fRa9xHsm\n2t9ZKSKvisiEAdjv9xjBM4wIROQ6EVEnOM5zHUpEzhlEn78VEbPvxnt0zOLuQAtNx/E/rvPXunGs\nxBOcO+LlMa5Ez+q+ppR6XSm1QSm1Cb1kO2iU5gml1Hx06rxMYD6QM5T+/A2zLcEw0vgGOpKuMztd\nPxcAO4bXHMNQEJFA4FvABnTASXceBK4RkV+5acizRGRcx5KjiEQAl9BziXC4xwgFHGj/HK77lqGX\nUA+cjDGuZd8cETkT+NHJ9OUvGMEzjDS2KqX2nuDa+mG1xHAyXILemJ+llFrZ/aKIPAE8hg7WcAcl\nwHsiko1eBrwDnTLuXjf1P9Qx3gFuAf4hIk+jfXe/YogzTxF5EqgDPkX7OKeht228N5T+/A2zpGnw\nCXpb0hSRi0TkUxGpEZF6EckXkbt6uXeyiLwtIg0iUiAivxQR87fvWTLRX8wvneD6i+h9ZL0FrwyF\nVehw/fvQy3vBwEVKqd1u6n9IYyil3kVHlp6N3mz/PfRS7oke6vpjHboO5F+B99FbJJ7Hfb/HUY1J\nLWYYEXTKX5gOdM5WoZRSDhE5D/0BX6SUWisiU9HLm/9C76tqQ+e/TFNK/cLV52/RXwh2dLj4NvQe\nr+XoEPjnhuGtGTzMQNN+GQxmSdMw0sjv9nod0FugyhmADbhRKdXgOvfhCfq8v5O4fSAiX0L7l4zg\nGQx+hBE8w0jjCroGrdSdoN3n6Oi3HJdvZLXSmTx6o3tQwXYg46SsNBgMPocRPMNIY3sfQSvHUErt\nEpEL0Zk8ngeCRGQDcLtSak23tr3tbRrIviuDD6BMKR7DADGOe4PPopT6UCl1AXpP0/no0O//iojJ\nK2gwGHpgZngGn0cp1Qx8KCJRwCtAGj0zVhgMBj/HCJ7BJxGR5eiN6O8Ah9ClZ/4X7f/b2cetBoPB\nTzGCZ/BVtqIz769Ai10lsBq42pUQ2GAwGLpg9uEZDAaDwS8wQSsGg8Fg8AuM4BkMBoPBLzCCZzAY\nDAa/wAiewWAwGPwCI3gGg8Fg8AuM4BkMBoPBLzCCZzAYDAa/wAiewWAwGPwCI3gGg8Fg8AuM4BkM\nBoPBLzCCZzAYDAa/wAiewWAwGPwCI3gGg8Fg8AuM4BkMBoPBLzCCZzAYDAa/wAiewWAwGPwCI3gG\ng8Fg8AuM4BkMBoPBLzCCZzAYDAa/wAiewWAwGPwCI3gGg8Fg8AuM4BkMBoPBLzCCZzAYDAa/wAie\nwWAwGPwCI3gGg8Fg8AuM4BkMBoPBLzCCZzAYDAa/wAiewWAwGPwCI3gGg8Fg8AuM4BkMBoPBL/j/\n5vGm1WGSJm0AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def classPieChart():\n", " file = open(\"18-files/zoo.csv\")\n", " \n", " traits = ['hair',\n", " 'feathers',\n", " 'eggs',\n", " 'milk',\n", " 'airborne',\n", " 'aquatic',\n", " 'predator',\n", " 'toothed', \n", " 'backbone',\n", " 'breathes',\n", " 'venomous',\n", " 'fins',\n", " 'legs', # Numeric {0,2,4,5,6,8}\n", " 'tail',\n", " 'domestic',\n", " 'catsize',\n", " 'type'] # Numeric [1..7]\n", " \n", " typeNames = [\"Mammals\", \"Birds\", \"Reptiles\", \"Fish\", \"Amphibians\", \"Insects\", \"Others\"]\n", " \n", " # Reads the csv file as a dictionary of dictionaries\n", " animals = {}\n", " for line in file:\n", " if not line.startswith('#'):\n", " vals = line.strip().split(\",\")\n", " animal = vals[0]\n", " \n", " # Builds the internal dictionary for each animal\n", " d = {}\n", " for i in range(len(vals[1:])):\n", " v = vals[i+1]\n", " # Number of legs is numeric\n", " if i == 12:\n", " v = int(v)\n", " # Save the type with the proper name instead of a code\n", " elif i == 16:\n", " typeIdx = int(v) - 1\n", " v = typeNames[typeIdx]\n", " # All else is boolean\n", " else:\n", " v = bool(int(v))\n", "\n", " d[traits[i]] = v\n", "\n", " animals[animal] = d\n", " \n", " # Collects the type column as a list\n", " types = []\n", " for animal in animals:\n", " types += [animals[animal]['type']]\n", " \n", " # Counts how many animals of each type\n", " mammals = types.count('Mammals')\n", " birds = types.count('Birds')\n", " reptiles = types.count('Reptiles')\n", " fish = types.count('Fish')\n", " amphibians = types.count('Amphibians')\n", " insects = types.count('Insects')\n", " others = types.count('Others')\n", " \n", " plt.rcParams.update({'font.size': 16}) # Makes font bigger\n", " plt.figure(figsize=(7,7))\n", " plt.title(\"Representation of classes\")\n", " plt.pie([mammals, birds, reptiles, fish, amphibians, insects, others], labels=typeNames, autopct=\"%.1f%%\")\n", " plt.show()\n", " \n", " \n", "classPieChart()" ] } ], "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.8.3" } }, "nbformat": 4, "nbformat_minor": 2 }