{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Chapter 8\n", "### This notebook and the figures below are made by Yeseul Lee, under the guidance of Steven Skiena." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import random\n", "from matplotlib.patches import FancyArrowPatch\n", "from mpl_toolkits.mplot3d import proj3d\n", "from sklearn.decomposition import PCA\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### For Figure 8.1, Arrow3D Class\n", "#### The source of the following code is http://stackoverflow.com/a/11156353" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class Arrow3D(FancyArrowPatch):\n", " def __init__(self, xs, ys, zs, *args, **kwargs):\n", " FancyArrowPatch.__init__(self, (0,0), (0,0), *args, **kwargs)\n", " self._verts3d = xs, ys, zs\n", "\n", " def draw(self, renderer):\n", " xs3d, ys3d, zs3d = self._verts3d\n", " xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)\n", " self.set_positions((xs[0],ys[0]),(xs[1],ys[1]))\n", " FancyArrowPatch.draw(self, renderer)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 8.1 Left\n", "The three figures may look different from the textbook because of random points." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\nHSYAADbQYQJORocJmEVgAg5BhwmYxZIs4CB0mEBC0GECAGADHSbgZHSYgFkEJuAQdJiAWSzJAg5C\nhwkkBB0mAAA20GECTkaHCZhFYAIOQYcJmMWSLOAgdJhAQtBhAgBgAx0m4GR0mIBZrO0ASay1tVWB\nQECff/65+vv7FQqFdPDgQX3++efq6enRjBkz9P3vf9/0mEBaIDCBJLZnzx4dOnRo0GPV1dWSJI/H\no4KCAhNjAWmJJVkgiS1ZskRer3fI55YtW6aHH344wRMB6YvABJKY1+vVX/zFX8jlGnwPQmZmpr79\n7W9f9ziA0UNgAkmuqKhIM2bMGPSYZVnyeDyGJgLSEx0m4ABu9x9f22ZlZemRRx5RVlaWwYmA9MMV\nJuAAf/Znf6bZs2dLutJrLly40PBEQPohMAEHGDdunFauXCmXy6XS0lLT4wBpicAEHGL8+PGyLEv5\n+fmmRwHSEkfjAQ7S19en7Oxs02MAqY6zZAEAsIGzZAEAuF0EJgAANhCYAADYQGACAGADgQkAgA0E\nJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGAD\ngQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADY\nQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAA\nNhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkA\ngA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGAC\nAGADgQkAgA0EJgAANhCYAADYkHGL510JmQIAgCTHFSYAADYQmAAA2EBgAgBgA4EJAIANBCYAADYQ\nmAAA2PD/AbIEPjfm0coEAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Points in uniform distribution\n", "d = 1.25\n", "n = 10\n", "x = np.random.uniform(-d,d,n)\n", "y = np.random.uniform(-d,d,n)\n", "z = np.random.uniform(-d,d,n)\n", "\n", "# points being represented to vector and scaled.\n", "fig = plt.figure(figsize=(8,8))\n", "ax = fig.gca(projection='3d')\n", "ax.set_aspect('equal')\n", "\n", "ax.plot(x,y,z, 'bo', markersize=7)\n", "\n", "# Draw the axis\n", "m = 2.5\n", "\n", "xa = Arrow3D([-m,m], [0,0], [0,0], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", "ya = Arrow3D([0,0], [-m,m], [0,0], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", "za = Arrow3D([0,0], [0,0], [-m,m], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", "ax.add_artist(xa)\n", "ax.add_artist(ya)\n", "ax.add_artist(za)\n", "\n", "ax.set_xlim(-1.5,1.5)\n", "ax.set_ylim(-1.5,1.5)\n", "ax.set_zlim(-1.5,1.5)\n", "\n", "ax.set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 8.1 Middle" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\nk1AwCakSmpubEUURJk6cWOmlEHJMwtZ4hFQRw8PDqK2trfQyCHmvw16yhBBCSBmwlywhhBDydqFg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAxSb/K+NyarIIQQQsY5tDAJ\nIYSQMqBgEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBv8fCaqteBH9VQwAAAAASUVO\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make vectors from those points and draw a transparent sphere\n", "fig = plt.figure(figsize=(8,8))\n", "ax = fig.gca(projection='3d')\n", "ax.set_aspect('equal')\n", "\n", "for i in range(0,n):\n", " ax.plot([0,x[i]],[0,y[i]], [0,z[i]], color='b' )\n", "\n", "ax.plot(x, y, z, 'bo', markersize=7)\n", "\n", "# Draw a sphere \n", "u = np.linspace(0, 2 * np.pi, 500)\n", "v = np.linspace(0, np.pi, 500)\n", "\n", "x1 = 1 * np.outer(np.cos(u), np.sin(v))\n", "y1 = 1 * np.outer(np.sin(u), np.sin(v))\n", "z1 = 1 * np.outer(np.ones(np.size(u)), np.cos(v))\n", "ax.plot_surface(x1, y1, z1, color='y', alpha=0.2, linewidth=0)\n", "\n", "# Draw axis through the origin\n", "m = 2.5\n", "\n", "xa = Arrow3D([-m,m], [0,0], [0,0], mutation_scale=20, lw=1, linestyle=':', arrowstyle=\"<|-|>\", color='gray')\n", "ya = Arrow3D([0,0], [-m,m], [0,0], mutation_scale=20, lw=1, linestyle=':', arrowstyle=\"<|-|>\", color='gray')\n", "za = Arrow3D([0,0], [0,0], [-m,m], mutation_scale=20, lw=1, linestyle=':', arrowstyle=\"<|-|>\", color='gray')\n", "ax.add_artist(xa)\n", "ax.add_artist(ya)\n", "ax.add_artist(za)\n", "\n", "ax.set_xlim(-1.5,1.5)\n", "ax.set_ylim(-1.5,1.5)\n", "ax.set_zlim(-1.5,1.5)\n", "\n", "ax.set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 8.1 Right" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcwAAAHMCAYAAABY25iGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXl8HWd1//+ZuVf7Zi2W5EVWrHh3EpO9JCE0ZCGQlNAE\nQghLSr6klC8QmubLtz+2soVSWmjL0hB+UEoSKBDKTggJZN/3BS+xHVvere1ql67uMjPfP545c84z\n915bSWwpis/79ZJl3TvzzDNzpfnMWR8nCAIoiqIoinJg3NmegKIoiqLMBVQwFUVRFGUaqGAqiqIo\nyjRQwVQURVGUaaCCqSiKoijTIHmQ9zWFVlEURTnScIq9qBamoiiKokwDFUxFURRFmQYqmIqiKIoy\nDVQwFUVRFGUaqGAqiqIoyjRQwVQURVGUaaCCqSiKoijTQAVTURRFUaaBCqaiKIqiTAMVTEVRFEWZ\nBiqYiqIoijINVDAVRVEUZRqoYCqKoijKNFDBVBRFUZRpoIKpKIqiKNNABVNRFEVRpoEKpqIoiqJM\nAxVMRVEURZkGKpiKoiiKMg1UMBVFURRlGqhgKoqiKMo0UMFUFEVRlGmggqkoiqIo00AFU1EURVGm\ngQqmoiiKokwDFUxFURRFmQYqmIqiKIoyDVQwFUVRFGUaqGAqiqIoyjRQwVQURVGUaaCCqSiKoijT\nQAVTURRFUaaBCqaiKIqiTAMVTEVRFEWZBiqYiqIoijINVDAVRVEUZRqoYCqKoijKNFDBVJQ5gud5\neO6552Z7GopyxKKCqShzhI0bN+LWW2+d7WkoyhGLCqaizBEymQyy2Sz27ds321NRlCMSFUxFmQME\nQYBHH30UAPDLX/4Se/bsmeUZKcqRhwqmorzC8TwPX//61zEwMAAA6O/vx7333jvLs1KUIw8VTEV5\nhTM0NIR0Om295jjOLM1GUY5cVDAV5RVOb28vMpmM9drWrVuxbdu2WZqRohyZqGAqyiuY/fv34+67\n7y763k9/+lN0d3fP8IwU5chFBVNRXqEEQYAbb7wRqVQKjuMgkUjAdV04jgPHcZDL5ZBKpWZ7mopy\nxOAEQXCg9w/4pqIoh5f169djbGwMTU1NWLlyJfL5PB5//PHoZ0VRDgtFkwRUMBVljpDP5/Hzn/8c\nl1566WxPRVFe7RQVTHXJKsocwfd9bVqgKLOIWpiKMofI5/NIJpOzPQ1FebWjLllFURRFmQbqklWU\nuUw+n8ctt9wy29NQlCMWFUxFmSNoDFNRZhd1ySrKHEJjmIoyI2gMU1EURVGmgcYwFWUuozFMRZld\nVDAVZY6gMUxFmV3UJasocwiNYSrKjKAxTEVRFEWZBhrDVJS5jMYwFWV2UcFUlDmCxjAVZXZRl6yi\nzCE0hqkoM4LGMBVFURRlGmgMU1HmMhrDVJTZRQVTUeYIGsNUlNlFXbKKMofQGKaizAgaw1QURVGU\naaAxTEWZy2gMU1FmFxVMRZkjaAxTUWYXdckqyhxCY5iKMiNoDFNRFEVRpoHGMBVlLqMxTEWZXVQw\nFWWOoDFMRZld1CWrKHMIjWEqyoygMUxFURRFmQYaw1SUuYzGMBVldlHBVJQ5gsYwFWV2UZesoswh\nNIapKDOCxjAVRVEUZRpoDFNR5jIaw1SU2UUFU1HmCBrDVJTZRV2yijKH0BimoswIGsNUFEVRlGmg\nMUxFmctoDFNRZhcVTEWZI2gMU1FmF3XJKsocQmOYijIjaAxTURRFUaaBxjAVZS6jMUxFmV1UMBVl\njqAxTEWZXdQlqyhzCI1hKsqMoDFMRVEURZkGGsNUlLmMxjAVZXZRwVSUOYLGMBVldlGXrKLMITSG\nqSgzgsYwFUVRFGUaaAxTUeYyGsNUlNlFBVNR5ggaw1SU2UVdsooyh9AYpqLMCBrDVBRFUZRpoDFM\nRZnLaAxTUWYXFUxFmSNoDFNRZhd1ySrKHEJjmIoyI2gMU1EURVGmgcYwFWUuozFMRZldVDAVZY6g\nMUxFmV3UJasocwiNYSrKjKAxTEVRFEWZBhrDVJS5jMYwFWV2UcFUlDmCxjAVZXZRl6yizCE0hqko\nM4LGMBVFURRlGmgMU1HmMhrDVJTZRQVTUeYIGsNUlNlFXbKKMofQGKaizAgaw1QURVGUaaAxTEWZ\ny2gMU1FmFxVMRZkjaAxTUWYXdckqyhxCY5iKMiNoDFNRFEVRpoHGMBVlLqMxTEWZXVQwFWWOoDFM\nRZld1CWrKHMIjWEqyoygMUxFURRFmQYaw1SUuYzGMBVldlHBVJQ5gsYwFWV2UZesoswhNIapKDOC\nxjAVRVEUZRpoDFNR5jIaw1SU2UUFU1HmCBrDVJTZRV2yijKH0BimoswIGsNUFEVRlGmgMUxFmcto\nDFNRZhcVTEWZI2gMU1FmF3XJKsocQmOYijIjaAxTURRFUaaBxjAVZS6jMUxFmV3Ut6Mos4jv+8hm\nR5HNjsDzJpHPTyKXm0IQZOB5OQRBDkHgIZfzkM/nsGvXNmzb9jMEgQPHScJxXLhuGRKJciQS5Ugm\nq+G6VaioqEF5eT3Kyurguvpc/FJ4+OGHcdddd+EDH/gAWlpaZns6yisAFUxFmSEymQlkMilks4PI\nZIaQy40in59AEACuC/g+4DiA7wdwHPII8f9dF7jwwk74fjbcJtwiCOD7iLYBHAQBwnFdJBI1qKio\nQ1lZI2pqWlBVNR/JZPlMn/4rnueffx533XUXFixYgFQqhb179+Koo45CU1PTbE9NeYWgMUxFOUxk\nMqOYmupFOt2HTGYQnjcBIIDv+3AcF77vw3WN6gVBAPOnGIQ/A4ATCqgRwiAoDKvQPvxnTPubbR3H\nFa8FCIIAjpNEMlmNyspm1Na2o6ZmIcrLqw7PRXgFs2/fPvz6179Gc3MzxsfHsXv3bsj7YXV1Na65\n5hpNsjoyKRrD1N8ERTlE+L6Pycn9mJjYg3R6P3w/DRbIBAA/FDYXjmMsR7o/22JozEXXdUKBc0Mr\nMo+HHurDGWcsKBBXM1YA+juPDFRLTJ1wbA+53ATy+TGMj++C7wcoL69Dbe0C1NYuRl1d+2G6Qq8s\n6uvrkUql0NvbW3IbFUtFor8NivIyCIIAk5P7MT6+Hel0L3w/AxIp4xJ1QjHzQ9eqB8cJ4PtSIMnt\n6obilwgtUC/8v48gcOB5LgYHM+F2XmidkkA68H0gkUBkJRmhRii6vB1Zriy6AbLZEQwOjmNwcCuS\nyXLU1nagsXEZqqtfve7I2tpavPvd78Yf//hH7Nmzp+D9lStXzsKslFcy6pJVlJdANjuG4eHNSKd3\nwvdzCAIfRvgAEjSArD9XuPqcMGHHD4WMYpaJcJsAFIM0whuE1ql53fe9MInHCY9JLl1fuF8dyD9r\n3w/gum5srABB4ISi7IQ/uyIu6gNwUV4+D/X1S9DY2IXy8urDd0FnkVwuhxtuuAGDg4PRaytXrsRl\nl102i7NSZhl1ySrKyyEIAoyP78LExFak071WnNG4Oh1htRnxMiLlR+5XE7cEgsCInrE0gyhBx/P8\naExjNRpxM3FMX7heyVWLyColEXUcB67rhGO5QpwdBIEnXME8huu6UeKRfIjOZofQ3z+EgYH1qKlZ\ngObmla86l213dzeampowPj6ObDYLADjmmGNmeVbKKxEVTEU5CL7vYXz8BYyMPI9cbiJK1GGLEiCB\nJEGjzFfXdeE4DjwvgOMEsX2Npen7DhwnEGJJ1iRbgq4bIJ/38fDDfTj99HYYK9YImxE9P9qPhJmE\n3FiOQWSRUjYu4TiA59H+Zm5AInQdh68EHsbH92F0dDeqqprQ0rIajY1LD8flnjE8z1jrK1aswPLl\ny3Hrrbdi8+bNyGQyyOfzsz095RWIumQVpQSe52F09HmMj29GPj8Zc3lKcQHYuqRYZD6KFxb+jZkY\nZiJB5R/kVkVoWRo3qhFeJxKyXM7Hbbftwlve0hVlvNLQxk0bRFapLEsxAorofX6dtoeIacrSFjea\nl/nuR9Yo4KCiog5NTavQ2Ng152o9+/v7cdNNN+HKK69EY2Oj9foDDzyACy64AOXlWnpzBKOt8RRl\nOvi+j7GxFzA2thH5/ATM3w7HHY3AUDKPSeQx2wShqzUQAsQCZcTTC0XQzmq1/wydcB5B6CZ14fs5\n+H6AiQkHNTUOEgnAuFtJcINoDtLKNfroROJr3MFsYdLrgBd+dyOBNlZxAiZRia6NI4TUmJ/JZA3a\n21+DxsajDtEncPjp7e3FxMQEurq6ZnsqyisTFUxFORjj4zsxPPws8vkxmL8ZL4rzAVQ7ybWOJHpk\nffLfk4kfGtjKNK5TSrwJt/QdyExWKZiJhIt83g9dqsYiTSTc0GL0o1il43DCDs+DykhMzJSSjMzP\nsP5vxC8RCbBxx3phti7NzcRmOYbKGbf5fIDq6ia0tZ2A+vq2l/05HC42bdqErq4uVFRUzPZUlFc2\n2ktWUUqRzY6gt/dODA4+AM8bFzG/JIxQmJggJ+y4UXINxwpJhFhg2M1p3JjF3LmuG0T78bF8JBKm\n9pKE1Pc9PPTQvvA1D8a164VxUj+cA1vBnIjkinmQyEnL1wiheRAIonEAKo1JgIXSD93GbiTgvm8y\nhKemhrBjxx+xY8cDyGanDuGnc2hYv3497r777iIuckWZHpr0oxzRmDjlcxgZ2QzAJHqQGBhx9MIt\nE5EYUXKNDd2EyV0ZCNEhiyzuegVYQLmRgZ2QYxJ+PM+I79BQJhI7ioEagbPnRC5bY9EC7PqVEyB3\nLMSx6bUgslp9yvyJSmLI2uQxKIYaBAFGR3djYqIXbW3HoqVlxQGu/syyatUqrFq1SpsRKC8Zdckq\nRyzpdB8GBx+D542JBJh8JB5UuyiFBbAbAbCrM4hijkZUIN73xPbkqjWdfzi+GITuVcqeRezYlLzj\nI5Ega5X7znK9J5e3uK4Ttd+TFiefAwrOyyBLYmQyE1mg5meuH/Wj1ymJyWQEJ1BZ2YyOjj9DZWX9\nIfnMXizj4+P41a9+hYsuugi1tbWzMgdlTqIxTEUBjOgMDz+DsbHnAVCGqAfjZiXRYXEBEqJMg8TG\n7tFK7lYpHOY7iZ0thNKKM65V/n/8T5IF2Lfe4wxaijMCMou3MLGI6kM5rhmOFDue/NkR23qhNSlL\nXuR2pg6U6klNaz8XrptAa+uxaGtbXfIzOVw8//zzSKVSOO2004QbWlEOigqmomSzE0il7kcuNxje\n+Ck7lATMFjMTDzSvc/IPiRI1BmDLzhZRgMtMjGuXRIysO983Lle2cONCx232fD8I6zAXgOOkvmXV\ncfMCNyaWdGzbvUriSeUlFM80SLera/1sxjSuWFMCw+dvjpNAEFAto9mmoWEhOjpOR1nZ4S/XGBkZ\nQX19vYqk8lLRpB/lyGZiYid6en4XimUAz6NerQjFhgr2SfiokYBsRQcYATSJP0ZMPGHdcTySLcZ8\nZIkZyywRuUKpzCMIqMsPLLHkuKHJph0cnILpHATI1ngUHyXr14hfIhIMW0DdsDSGzo9FnDNryc3K\n7mjuUYtofr7vgUU3EbmNTR2qC/kgMja2H1u23IqJCW5BdzjYunUrvvOd7yCdTh/W4yhHHmphKq96\nfN/H4OBTmJzcCmpazl1yELanoxISLu3gxgHct5WEkaxS7v9KJCAzTA2BGJPa20lr1AktW0C6Nlm4\n6TguPC8P101E23PNpazn5GOw1cniaycucXkIvWceANjK5PNIhJYyW6Hy2pjjS7F3oyxedk2bmOjC\nhccfNhft4OAgHMexGhIoyotELUzlyMP3sxgYuAuTk1tg6hZdIQBuJDTc79W4ExkWRLJC2Vpk9yZ3\n+uEif3tf2SWIhRcgsZRlHlS6UZjYk0jIuRmx6u0dxpNPPo++viHLdSzdy2RV0tjxeKuxCv1oTmbO\nNG+6TZBbmRomGFcsP1TIXroQrmFpDZvVWvbtewrd3feLa/jyyOfzuO+++5DNZtHU1KRiqRwWNL9a\nedWSy41jYOAe5PMjAEjwAE6KkYk9JKQ+HMcLBcdYVNx0wAkFgEXRrr2ksWkGZIlxjI+sRipdofgg\nW3wOKAHJNA5gd6vneXjkEbMeJgBMTk7hP6/9Dxy1vhvrUiN4vLkB249Ziiv/5X+jpqZajGnqNE33\nOjcSRsdJRDWUUkDlMakshVY64WshlwzjRgkmLuyImk5OfKK4rYl7+hge3oVcbgKdna9HRcXLW8D6\nySefRF9fn5aMKIcVdckqr0qmpkYwOHgX8vl0KIx043YgaxO5oJ9/1dltiWh7FjXahi3GeB2ktLbI\ndWp32XFAC0h7HlmZCOOKMlnIvGcydJ2wl+xuvOUtSwH4+Prf/Bs+ffdTkH11egF84Q0n4MP/cW3k\nemVXr+0ypTU4zesyPstLk4UzjsRRun4585eWCUuCk5vcWAJTYfYuPZQkEtVYtuwNqKqqm96HqyiH\nH3XJKkcGk5M9SKXugO9nQlerK0QjAMf3EN7wpSVEXXyAnp4hPPro8+jtHRbbSGuMYoGUxMMuTjM2\n1ydKaCxqek6uXj5GtGW4jUkyKitL4IILOhAEAXp7h7F0/XbEm9C1Aej803b09aXALl9Aih7FEs1S\nXl74BZA7WMZSKXmJXdfyPGgszpClBwVaPYWaPfD9x7HOLwg8eN4EXnjhD5iYGCr9oRZh//79+MY3\nvhEtyaUohxv1XyivKsbHd2Bo6GFhRbLIsbVlx/d44WRzc5+YmMINH/0Wljy7HetSI3igpQE7j1uK\nv/nah1FVVRGOKZN3KJEIKKzFZHckuWftRBtyf1J7O0RJSab5AAmwESUTw3Swe3cvjkuNFL0G61Kj\n2L27H62tTaDEINNYwU5ckg/RVM/JJS/xMhQqLSFB9KJzkA0Y2Crn9oDGFczlLiSsXM/pwPOmsG3b\nH7F06etRV9c6zc96HG9605t0VRFlxlALU3nVMDGxA8PDD4fuTsAWBZlcwu5B6o8qheGGj34Ln/zj\nU/g//cM41w9wbd8wPvnHp/Htj34zsgi5Aw6XgsSX1JLN16lWU5ZmkCVm8l4o+zQIE3CCaCwSWM/z\n8MAD+wEE6OhoxXPNDUWvw7PN9ejoaANbrWzVsTXI5SZmnrS4tOxu5IvzlA3kEY1hTjlhJfvwA4N0\nB8evufzZuHE9L4fu7nswOtpb9LxozO7ubgRBgOXLl2PZsmUlt1WUQ40KpvKqYGJiFwYHH4LdBF1m\nnrrgUo14og7hord3BJ3PFXd1djzXjZ6eQXieERg6hskadYV7leoPKbmGxAdiH7u0gxN+2EKVmExW\nYHAwY+bT1ojuY5ciLi29AHYc04W2tkbYiUxmfsZ6pcWiyZ1KFiIlHDkwK6pI96kLapRgmsVT43Xu\nmWv2QXR9Ob4pHwBYrE2JTzJKrgJ8+L6P7u57SrpnH3vsMfz+978/ZNm1ivJi0KQfZc4zObkbqdSD\ncBzTWSYIEjCreXACD7s5OVOVf/cTIPF47LHNmHfZF3GuX/irf4frYvQnn8JJJy0HZbGSmzWe0ENi\nwy3rimGXYQBcQsJjSesQUcs5x3FMluw138DR9z6Dta6LZ5vrseOYLlz5Lx9ETU0lpHuYxrOPBXEs\nTmBiVzFbxbIJAc2Z3bb2OdiZx3nYIonw85DXT+5nHjiSyXIsW3YuqqrsHrQTExMoKytTN6xyuNGk\nH+XVx9RUHwYHHw4FUi7oTPWCsn8rQL1UpRgZUTAWS2dnK55rKe7qfK6lHh0dLaB4HCfFmPelcJDl\n5bosHmx5mi/f5+47Zh4sYGb+5K70Q4vURzJJy4H5qKkpx9995gpcPH8eBm7+JE79n8/jI9f/Haqr\nK6zEGluwHDEPEspAuJql9eyLbQNwR5/wjFx2y8oHb4qB+j51OIrXnaLI9QvEtfCRz2fxwgt3Ympq\nHGNjY/jFL34Bz/NQU1OjYqnMGiqYypwllxvF0NB9ALJRMgnffN3QFUhb082dMkJ9cOYnW3Xt7c3Y\neVxXUVfnruOWoq2tUSQRmXHYIiPrlY7FXX9kqzlJcdcwzZe/k3X5wAM94pyAZGoErW1NOPHElWht\nbQTFO1mggjCxhqxBzlwlt6mcO7mMzaLWxuLk0hAakyxFB4UWKGcJG0tYLqwty1xQIJSOw80THCdA\nPj+JrVvvxHPPPYv58+fHmjYoysyjWbLKnMT3s0il7oHnZUAraQDkRuSmBKaGMQG7Aw9lq8quNxxX\n+5uvfRBf/Oj1WPJcN44bGMWfGmvRNzqB//2xd4BX/GCxkauVyLZzdq/XuOg4UVYsWcYsJvFMVU4U\nohgmkegfgddcH3swoO9GpLgVoMxY5bnIVoFUFsKvmfFcl2sseYkyKf4co2QBtLNleRFqOU8STjf8\nrKgO1EEu58H3x9DSUonly8+Fosw2GsNU5iT9/Xchm+0FxR6prtKIDN/8OS5HOGHvWFq7Mr4vdcIB\nenqGsWtXL5YsacWKnz2Aykc2oef7fw/EmhzYMUxAridZGicmHsXijYiEkMTT83yxcDTQcMtdqHzu\nBez//FVFY6Wc6crix6Us9tjsUrZXS7HHc+G65HKmhwf7+vJpy/MLCo7LDxjxDFxg374JbNgwgHPO\n6YTjuJg3bzG6us48wPVUlEOKxjAPJZwer8w0w8NPI5PZH2ZKcgYouzzZ2jNrONKeXArCcTc3EhqK\n4xkxcNDW1oiTT16BtrZGjFz1JriDo6j7+X3g7FNy58ZnSCIOUOySxdusEWkX81OmaSC+5Ioh5v8m\nq5TGNq8lB4bhNTcIK46yX2VMEOBm6hQnpUWsi6+JWViWw+JIGarkkjYrvvB23M82iO3riOtA29oP\nDuTSLi938NrXLg5f9zA0tBc9PRvjF1pRZhQVzGnS39+Pnp4eZLNZbNmyBV/+8pdx/fXXI5fLzfbU\njigmJrZjfHwTHMcVS2OxUNrCAAAOXDcJWkWEl/GiGGYA6VL1PEck6gjBKEsi9c9XofGffoxE32D4\nulzw2c4ENcdFdCzZ8q5QZB3rZ27EbkMxTD43IDEwgnxLA5yYasvrABiL0NR+umFCDomwXFJM1pLa\nyTlkqXNpjLzGspWe3JY7LMkHAo712i5a3w/Q3T2CIPAxf34NamtJiBNwHB/79j13wBpNRTncaAyz\nBFNTU7j55puxZs0aZLNZPPbYY3Acx1pjb968eSgrK5vFWR5ZZLMjGBl5TAilL4SBi+K51tHcqE1s\nzI+sF35ffo+7IOPWFZBZ3Ymxy85C8z/ciL5vXQNKLnIcI0Cu60aCUuiWRGxsgpNuOH5ZmGQDFI9h\nJgdGkD55VbSdPK4soeHEJnmN7Hnw/rRodrzkA2J/tyCZKL44NpePxN26lCglV3sJsGnTANJpD52d\ndbHtPRhr2EN39wNYterNL7tZu6K8FNTCLEFZWRlGR0dxzz334L777sPU1FTBgrSpVErdsjNEEAQY\nHHwAQZCH5/mgFT0AjqdRlqfdVYdazjnhtgAX2JPrkm/wcfcsLxZt3hj+yFtRtn0fqm97GCRE5jsV\n+su6yWKWoswy5XgiHZPdxuTKdWHqShMoL0/iwguPEhmpCSRSo8i3zItcnfKhwFjK8cWg47+vhXM0\ny5vJ2CzNma1pTuaRgmiLJluoQfgwIY9lu2aDAFi9ugUnnNAei7lS0pT5DHO5NHbvfrTIdVWUw48K\nZgkSiQSuvfZafOQjH0Fra/HelkuWLFHBnCFGR5+F5w2L8gdePYQsOpnEYluHLFJmWy96jV2M8XZ6\ndOP3RDYrgIpyDPzT+9H8uZvhDo2FL1LGK7le7Qbj/JWwBFU2dLdbxvnRF9VcmgbpfhTDNHhIDowg\n31wfbsNj2DF2ab3ataBsZXMs03V9xF28truWHko4ZsrlNIDr2hm0ZIGzB8CNXMJDQxk8+ODe8LjG\njU1zoRip65aF8zeLUY+M7MbAwA4oykyjgnkQ6uvrcckll6CiosJ6vaKiAlNTU9i8eTMA04FkdHR0\nNqb4qieT6QvjluZnY4HIuJlM+jHfSSy4QTqVQtiQZSYXlualp8i6AbiNHTB1/HJMXPhnaLruh+Ba\nTimM0p1KFixbW3xsWD8Xh9+XMUyaS2JgGF5LfUFska8DXzOOSyIag0SP1sW03cG28Jn5J4Q7nJKe\nXMgYJcVKZfc6bnbggjovOY6LkZEMli9vitznAKLlzNhNnA9HoTh0Env2PI50evIg105RDi0qmNNg\n/vz5OP3007Fw4cLotY6ODlx11VVYvXo1AOCFF17At7/9bfT0mBtaJpPRfpeHAN/PY2joocjFasf5\nivVeNa+ZukGA6yLd0AqjBBcndD2aGz33mSULNh53I9E0AjF07aWofHIrqu95BizQ/L6Ex2KLTyb6\n2E6KYm5cdidzDDOAk87AyXnw66pL7svCwyuNUIYwW6q8XXz5Mt6HEnC4Sb08P+4QRK5cP7aCC4t1\nEAQYHc0CCLB0aT1aWythEnvYDWySlGwBN630zDb5fBY7dz5Y5FopyuFDBXMaOI6D173udbjyyiux\ndu1aAGYtPsm6devwsY99DO3t7QCAu+++G1/96lejuKe6bl8ao6NPw/Mmw4xTafGQsNk1gAbjwmSr\nk5eUMrE9imHSElU20r2LqAxEbuEjqC5H/xffj5ZP/RecMTu2XexByT4MWZ7sepTrThpxopIPjlea\nGGYnaIWRZGoMXksD4CTCNnuO2I+uEVmGxTsN2XMq9hqJNa+ZycIn45AAlcvYWbQsvpQgtWXLEJ5+\nutdyGQN5xGOwZCHbYozo4WR8vA89PZtKnI+iHHpUMF8EiUQCZ55piqfXrVt3wG3PP/98fPSjH0VV\nlcnmu/HGG3HTTTepcL4IpqZSmJjYCi4B4axK2wVr3K3SygPohi7FQ8b3Cl2YJGAMuywLrUEHmdNX\nI33msWj68o/F9vG+qTwHjr/aS4OZccnKDUCLOtt1mBTDJHeoj8TAMPIt9TCxU95XWoH2smMyyciN\n5sKix/HN4lm+4sqEQkg1q8YaNC5bzp7l60CfXxAEWLCgGqedtgj8mdmubErcsl3rfEwSUccJsH//\neuRyduawohwuVDBfJK2trbjyyitx0kknHXRb2ST6Pe95Dy644ALQckc33HAD7rrrrsM51TnP2Njj\n4f+kJWI07YaVAAAgAElEQVR+lq5Veo0SWDizUroW7RszJ+eQoLB71l5Ps1hskN8b+PhlqL77GVQ+\nsgls0dHi1AjFg5NwOPGl6KAoJVCAHcMMAkRNCw6+r0zWYTc1P2AA3LHHXB9qrG5fY3EkkZUsE6bk\nwtKm3tOMn07nsXFjCgBQX1+BsjL6bNxoPP7uCKF0xHWjBbYBagyRz2ewe/cTJa+ZohxKVDBfAh0d\nHWhsbHxR+yQSCTQ3NwMwiQ/vfOc7sXLlSgDA6Ogobr75ZmzapO4lYmJiG3K5QVAnGRY6sjKk+HF7\nNo6ZyZZt8obPN2L6v0lS8QrmYFuLAJWecLarg6CuBgOfuwItH/9PYHKqQEjYWnNhW3PFONB7hXWY\niYFR5EusrGKNGlnHJH5uJOiceCRjk7aYUoySz8sVrt7Sx5LW9NatQygrS8S2lQtKI9rWxCrN9ZAJ\nSBQb5v7A5noODe3CyIg2NFAOPyqYs0RDQwMWLVoEAKirq8Ppp5+OmpoaACY++pvf/AZ9fX2zOcVZ\nw/d9jI09C7Z+7Bs6Cw+JJd2c5Q3Zt/4vY25snbJw2tmhJCSyyw1nysabCkyefQIyx3Wh8d/+p+Bc\nOJOUrVd+rzAhh+On0kI175eVJXDBBUtArt5kyhZMCp1yhi+dryNeM9dS1qba2BYlxw39cAUTerig\neRe7hcjrZM553boWLF8+D7KshdzD5Bngelpy69oPOtQ5iDJqKTnL9z3s2fNkkXkoyqFFBfMVgOM4\n6OrqwpIlSwAAzc3NaGtrQyZjrImdO3fiwQcfxNTU1GxOc8YYG/sTPG8Snmd3p2FrjV2qcnktatFm\nuybZouIs13CrUJjYrSgzb91IWO24sxPFC1lMHQx8+t2o/dVDqHh2W7QluxEd64stJbJcPSEAMvaH\n0IXP1m8iwVZWYmAY+dAlGwSIViKhukd2BfuRUNliKmOyhcQzXF03bp2T+NI28nuA3bvHcO+9e/nK\nOQDFMeMLa5Mwm4QsE6s1rlfpquXzYPevuR7p9DBSqe7SJ6MohwAVzFcg5eXlOOWUU9DR0QEAqKmp\nwejoKIaHhwEA3d3d2Lx586sygcjzspic3ALACdc/pOSZhJWBSYkfMimH1mdkjKA6jhMW/NNr4buO\njNHF46OFxfsmy1NaiNzpx2+eh9Sn3oP5f/9dBFM5kFAXxlGldUpzd8R2NkaozPae5+GBB/ZH55sc\nGDFZsmBXKNeOOtHrfBp0ndjy4wQkaZHG3dFyzsXjmWTFshia/U84oVVsR+M61pw44ccRjd25tR41\n15dxTOlloHH27n32Vfk3obxyUMGcA7S0tOBNb3pTVLKSy+Xw1FNPYWzMdJrZtWsXUqnUbE7xkDE5\nuRVBQAtCU5aoWfiZmqLbcTf7NbsFmyyqR/QawjINHodFV9YC2kIK2DFRFhd6b+LCU5DrbEXTDb/m\noxW5f9s9VK13imzLzQfiMczkwAi8+fEYZinBKDa2eV12+WGrEUJ8pIXsx85Jvh7A83z09k4iCAJ0\ndNShtrYMprOPFDh5TBY982ATt3zl58wPFmwp8/dsNo3+frbwFeVQo4I5B1mxYgXe+c53or6+HgCw\nY8cO/OIXv4ieznt7e+fcKir79u3Dvffei+7uxxBfEJpckjIOyauOyN6rJEZ8oy/WO9WIkCcEEmL8\nIGb9kBswEW5jW4uWFeo4GPj8X6H+v+9E+fO7IFcliZKEYstbvRjKylxccEFH9HMiNRK5ZPkcio9p\nYpCAvdwYYXcgsuPDNE8+X9P6jr4oNmv2e/rpfuzbNxEek1zK5hjcdN38TONz7Jb7/8q5kAUsG+sb\n0fSj/YjeXk2cUw4fuoD0q4wgCPCjH/0IuVwOV1xxBYIgQDqdRnV19cF3ngXGx8dx3bvehfbHH8fa\n3l78aX49dq7rwoe/+UHU1lbB8xC6U+kGL12cMs5m/6rSjZdX0YjeiW0v/5+A7+ej5JL4NiTM1Bau\n1J9O3S33ou6Hd2Lv/3wGSNqZoeZhQAoHPRRIFzC5JwMxfzvm5/sBVp50FV649xvwa+Vny/HaYiue\nFD4UAIUPFqUWkGZr0mQWk/XPDx7ptIfycsqOpUYTQdFjmFhrqVsMWfCFi1Nzc3fzMMWuebPP0qVn\noKVlSYlxFWVaFMuIUwvz1YbjOLj88stxxRVXADDLlN1www249dZbo21eSXGe6971Llzz61/jb/fv\nx7m+j7/rHcYn7ngK//Hhb8FOJCkmiJyQUgivSAJA7G/3R2XhdeF5JvvTrk+EEDZYVmOhy9bMa/Rt\nr4ffUIN53/s9ZKKSPQ+22szC0EB80WjXDaJG5o5j12Em0hnADxDUVsKuG/XgOLLxgezwE4/TynMg\nV2gA+XDB1h3HEE2CEXcpSqWm8NRTpnNPRYWxxil7WcYY7Zgwz6d4uU08XsmJXmy1+2Gc205E6ulZ\nD0U5HKhgvsqpqqrCNddcgze+8Y0AgJ6eHnz5y1/G008/PcszM27YBY8/jrbY620AOp7djv37U7GY\nFa3cwUkhnPkq44rSVcgJJbIXqi0EsMYotISKP2BQQg21qoviao6L/uveh3nf+S3KuvdFbkRZzkJj\nE6UWjbatSo5hJlNmlZLiTwvFx5KxQjsb17biqDsRt+uTIkrz5fjxvn3jWLiwNhzbhev6kRVuJzTx\nIIVWM1vY8fgxZ0gXfhZUfiKbRaTTIxgasltXKsqhQAXzCMBxHCSTZq3w9vZ2XH311Vi1ahUAYOPG\njfjWt76FPXv2zPi8tm3bhrW9xQvOj+0fwa5d/bDjkbIswrxGGDGiBJ9iTe8DeB7feAHpspSJPmT5\nuCUEjso64h1ofCv2me9ox9CH/xLzP/5dBJ60lEpx8GQdGcNMDIzAa5lXfI+SHgRpZcqYMMcSjavZ\nnI9dFiMfOoy7OJs1seVjj52PtraacAw7KYjLcpww/knrhtqxYnarAnxbKhRqWZ8Zdy/LloOplCb/\nKIceFcwjkOrq6qjH7apVq/CWt7wFTU1NAIBHH30UP/3pTzE+Pn7Y53H00UdjQ1vcvjRsCAIcc/Od\nSD6/E3yT96MbOpd4sOXhuqaXaSFkMcVFkrDvylyXmYQpZ+Ht2E1Y+ryo3nDkPecAfoCG/74TLNS2\nC5SPL8UhnoXLPyeTRnCSqdGwpERaYva4xbNZ7XM311Am7hSei8weJnf1hg0pPPlkH6j/bnErNB47\n5S4+hQ8P0sJn74As/SFxlF2EAERlLOx+djE8vOcVFXpQXh2oYB7huK6LRYsWRUlBxx13HFavXh1Z\npPfffz/uueeeML53aFm4cCH2n3wy4jZmL4CdZx6D1q52NL/zn9F06ZdQdccTcKKm3ubmSHWX5Kbz\nfcDuYCMtEdkYwLaWDFJIyaLKw8QEaWZU/F+YZMTwn1TguOj/0vvR9PVfILl3oKggcVaonA/Pm7cD\n8nkf99+/H0EAJPpHkGtpEC5l10pukq3vuKUfLFGm7cmyLCao9rXh69PaWo2TT26LPYTY8UhZOsIP\nIYj2kQ8DbInSPOlnH45TVnAMdmGbbYxoUt2uiQv39m4tvOCK8jJQwVQsqqqqcMwxx6CyshKAKWEh\n8QSMgD7//POH7HifuPlGfOm8E/HVtnm4w3Xx1bZ5+MfzjseHvvNRjF9zMXoe+RomLzsTtd/4DVpP\nvxY1N/wOGJ6ETAIBOA7JN//SWayAuWmbmyy3agv3AlkphcjyCxe2sDhFBCtA7uiFGL7yfMz/5H8i\n8D0xvhR/xF6XbfQ44SUIAgwOZuA4AZKpkbDxOgkElW0EQmwgxibLzG4CH20hRJdjrnazh8nJPLq7\nRwAEaG2tRllZPIEKQvT4OhbvOStLVjjWaVvZNI+cZVHyteFxeBUXdi/3928uOK6ivBy0rER5Uaxf\nvx49PT0455xz4Ps+nnjiCXR1daGlpeUljTc5uQ0jI4+hp2cAO3cOoLOzBe3tjeCltihJx0HZUy+g\n9r/uQOVdz2Dyotdi4q/ORX7F4shlB8Aqz5DJQQaOxZn3Cy2nYjd3ie/bWblc9iGTkGKJQ7k8Fl3y\nWYy89zyMXXKm2Dc8shPb3sK11tf0PB+JhIu2z/wXplYuwfA7z47mXyiAhXDcr9DcZWuTltYC2FUK\n3H//XrS312DZMm7HV+zY9BqPK6+5LJ+h8h25zJnZlz9H/szsEqG4xUzCHMB1E9ExV648B/X13G1I\nUaZJ0aCLCqbykvE8D3fffTccx8HZZ5+NbDaL7u5uHHXUUaioqJjWGAMDdyKb7QljUy5MSYRc4YNX\nrjC6EcDtHUbtD+9CzQ/vQm7lYkxc+SZMvP4YuGXJoqJRWIfJFqANiS4iC8ZOMqJ5lBJVeXO3M0PL\nNuzCwvf9E3b/5h/htc6LzUGurGIj3amShR/+d4z8xRkYP++k6BxlTWNpt3FccMh9yhYlxQkL52Je\nd123YDs7y5cfUIrfX2Rstth5mxIf143Xp8aXGwus14yg2ouMNzcfja6uU4scQ1EOSFHBVJes8pJJ\nJBI455xzcPbZxsrJZrN48skn8cQTZn3Cqakp9Pb2lrSePC+LXK4/dI9yGzwSGiOe8qZoYmB+WyPG\nrr0YPQ//OyYueR3q/u1nWPjn/xe137kNzshEND4tSWUg96B0GxbCiSVyJQ7p9iz9DBlvFC6PkV3T\nidF3vAHzP3sjAp8EJp6IYycG2c0aHKsOM9k/Am/+vMhVaUTeEV9yOTFq+C6tPhJKsor9MHHKtqC7\nu0fx+OO94bYyCUdajnydi1vo8cxcsjQp7lhwJaOs2cLPML50Gr8mY6O+b1zuY2P7ioyvKC8NFUzl\nkFFbW4vLL78cp59+OgBgYGAAt9xyC9avN4Xk2Ww2WoEFADKZ3eAWeAlQ31e2Xqi+kTMwLTdgeRLp\nS85A328/h8FvfBBlz27HgjOuxbxPfR/JF3ogi/bNDZVKP4r92ssWe7QcF23PK5iUJt5AQYqfGXPw\nQxehfPs+1N7+qBAq87DAyTuyNhTRuRsRcMI6TAeJ1AhyTfWWG5UTfCDEncWevxdLfCIL0xa8TMbD\n6tVN0Vzk+YUzBDVIkOUdxbsryRgkr30Zr6W0Xcbc7ajQixx3LTtR0pfrOnBdYGpqEmNj/SU+M0V5\ncahLVpkxnnrqKdx+++244oorsHDhQgwM3ItMZjeodIE8nXRztNumsbuTXLNGVO0kH7dnGLU/uBO1\nP7ob2dVLMP6+8zB11nHhkh+229KUjHD2r+3uK4adIRtvTs59bKVYyLkDlU9vRfuHvoZdt34JfmP9\nAVrD8b5yG8/zkXAdrDjx/dh6//UIaiqi7Yq3t7ORDx6lsnY9Dxgby2HevIromKYpuhsmShWuH1rs\nmLaFXMz6ZDcq95k1+8djlTzn+Osy05fdw0HghMuRuWhtXYHOzhMLT1ZRSqMxTGX2odhUEAT42c++\nid27x/DWt3agqiphWVnU+aVQxFiQTP2lXA7KD5NyHARTOdT89hHUfe92OONpjF9xLiYuPRNBXW3o\n/rXLT2TP1mKwUMqEIW5QLuOe9DNjxxNbvvgDuEPj6PvKByPxL4W0Ngl3Io1lZ34EW578HigGGI9h\n0r7FxqPzKdXB6P7796O2tgzr1s2nvYTL1ZxLXMx4bPlAEX+4cMMHIU7osWOgNJ4togb52ZgHHXpg\nMufvQrqKuUNRgMrKBqxb9xdFz1VRSqAxTGX2SSQScBwHuVwfTj+9BRdeuAiVlaZ+7vbb9+EPf9iP\nIMhb1k+x1mokWHIdRuOSCy2UyiQm3/Y69N76BQz+6wdQ8dQLWHDaNWj49H8huW0fCkWY4l/xvxO6\nsdvb2sX8UizJBesUGcuQuuZtqHpyC6rveaaolSfnJYXJ83w8+GAPEgOj4SolLBAHfu4tpDBLll3I\nxx3XguOOa4a85rIuUnbv4RVYIASMxFta806UJCRdtnY7PJ4LfacEI7sOkwRX1LwWuJMD0Jqe2ew4\nstnJF3eBFKUIKpjKrJDN9gHwUVdXHt1IzzqrHevWNURlAb/97V48++xwaBHaiSMmGaRYdxoqXg9x\nHGRPWoGBb34IvXd8CUFdFdrfcR1ar/gXVN79bGQKUnalmYu0fsyNuJQ1Vggn/HBRv3RNJhBUV6P3\nuv+F+f/wX3DHp4T1RvtDbM/fqZdscmAY+ZYGK2Zo9mfRthN+ZBIRx4WlO7O/fxKbNw8iCALU15cX\nEVSJTP6ha2TGtS3Iwmtjn6tf9L3oKI7MSI5//pQ4xIIry0mMMLObd2hIk3+Ul48KpjIrZLND4B6m\n5oZbVuaira0KJFyvfW0Lmpsr4DjA5GQOd93Vi927KQuWbqRyjUTzMyeYyBs6kG1txNC1b8eeB/4N\nExeeinlf+SkWnv1/Uff9P8AZm4rmJhu6F0/2iYtBXOTi2am+2M6sIjJ1+lpMnnEsmr/835FVRk3c\nuSmCa41ZVpbAm9+8xLTFa24QizJTpmoimpu0iNnakwk69mogW7YMo7GxMrKaDySYvK9M5OHGCXYi\nUbH97VIQeo1WQDE/u9b87Dk5VqIQHYfFVS4wbfYbG+speT6KMl1UMJVZIZcbACXKGOtAuuWMJdbc\nXInFi03P26qqBI46qiaMFboYHs7i8cdTGB01C2WbTFPq+2q7AwG6IYc30coKTF76evTeeh1S/3wV\nKh5/HovO+CiaPvcDJLt7YvvZy3nZ1hy7MamUgdyVXPpQmtTHL0fNvc+g6tGNkJZp4Xf+SiQcJPqN\nhWmSWtgKLtyezoGvgSQIAM8z8z3ttAVoba0ScUByo8qHD4BFML58l7xm0RHEwwxbttz7Vc4lCNe2\ndFAYv5RxUHLl2sdBmKUslx3jrFtgcjJV/ENQlBeBCqYy42SzQ/C8NKQLVLojqc0buxhNEkdXVy06\nOqoRBAGqqhJIJJxQMB0MDmaxZctwKFr28WhsaXUFgQ84DjInr8TAf1yN/bd9EUF1BRa8/fNovfIr\nqLz3OcCnfrUy2YfjdHb8tFhc8MD4ddXo+8wVaPvUd+GkMwXvmxgcj0kxzGRqFPmWeus8ix36YNN5\n5pkUnn66VMlFIK4lxyo5yebAY8s+suZc/DBRx7YkY3uB+gPHP0Mp3EHgob9/GE89tQkDA0OgB68g\niLtwqRTFQzo9hnw+d+BJK8pB0CxZZcYZG9uE8XGzHie3k0tEQikbeBuLEuBfRdcSUsr2TKWy+NOf\nhrBmzTy0tFQglcoin/fQ2loB07yb4pCFmbBcrhDAzeRQ/auHUPf9O+Bmchi94o0Y+8vTENRWiT3s\ndnt2eYkc1+5tW4hxLbZfez3yLQ0Y+PjlsN2cUqBN8/XbbtuFqx6/E1Nrj8LIZedYFqE4cvh6AvG1\nLuW5d3ePYfHiGiSTZJVx7DbuMo3PO/6QIC1Cc852yY59XQBabYbjney65vIiPhZ9PpOTU/jhp67H\n0Zu6cfzgCJ5pasALq5fiXdd9CJWVFeLa0bV3QT1mly17HZqaOorOSVFiFP2rVcFUZpyhoQeRTm+H\n3UkHsEsdHHHj5F9Dtnji75H1Yb5v3z6GjRtHceaZrairK8fQUAaVlS6qqspiImC7G6P4WOCj8vHN\nqPv+Hah6ZBPG//J0jL73XOQ72xAXleI4omTEjbJqjUDwuQQB4KZGcNRbPoF91/8tptYts8aIH8fz\nfCy5+msY+cvXYfyck61rJ/9cC5ONELom8xgfz6KtrUZYx/b1kGJYvE7UvtZ0PLN4tBuubBNf8zIO\n9ci1ewbL9/g6UYYt8J2/+yo+f//T1qLjvQA+c+YJuPJfrgnnbTfAoPNvb1+LJUteU2pCiiIp+pur\nLlllxsnnx0G/ehyLcoQFCFB8TK5IIlfT4E45xZbbcrB0aS0uvHAR6urKAATYtm0Mv/vdvnARaWBi\nIi/EgF2rUfMBx8HUKavQ9x9XY+9vvoCgvAwLL/kc2t7/VVTe/ycg4BpMA8XRbAvRnCMtyOxFCUVs\nBQJ+cwP6P/FutH3iu3CyHmwrkxJ6zM+JhIvkwAi8+Y3RMe02e7RUmBsKh0x+Mg3UJyZykTVffN7x\nrFsbjonStuwuNXFI+lzjK7qIqxVZzrzgN5cP2VYxXbOBgSEs29SN+AqqbQC6Nm5Hfz+7Z/lBiDN6\nM5kJKMrLIXnwTRTl0OJ54yJ7NEAQJEAt8riBti/EklyvfuSeY8w2vo+wG008nmheO+mkZpx0Ukso\nID7uu68Xvg+8+c2LAJiEHbO/xIXj+PAWtWDo7y/D0Ef+ErW/fgjN//jfgOdh5L1vxNhFpyOoqQDV\nYrLGFGvlFhvdZQtu7M2nou63D6Pphl8idfUl1tzNdTHW5SOP9OHogRHkm+ui82dLLG4t2hae6wJv\neMPicFkuSowB7Piu/fBhJznRXKjO1BfbyTMLYt95DHuJruJWMXkREPgo6xtE9abtqNm0A32Prsdr\nBoYLLySAdYOj2Lm3Dy0tjeIBzA0/VwBwkc+ni+6rKNNFBVOZUTwvDc+birJiPQ9wXY5dcUG7dAk6\n4iZojyeNIHLpFu9GQ+OY188/f3HkMs1mffz85ztx9NF1OPnkFlH2EGvlVl2BsXechbFLX4/KR59H\n/U1/QNO//hRjF78OI+8+B/klrWIufhinK30tLHen46D3s3+Fzrd+EmPnnYzsqiUFiS++DwymppBI\njYSNC+S5l46ebNs2gqkpD2vXNkdiKQ5bcJw4nBXLlhu7xIvFOe2aVtl5h+ZKn6/cNdk/jOpN3ajZ\ntANVG7ejZlM34PuYXL0UE2u6UH/xG/Dwvn6cOzhaMMdnm+qxZmErXJdrMH3fDdfJNJ/9xERxsVWU\n6aKCqcwo+fxw5FblZA4WSIBcmGR92Ddq+zvtQ/EumSFZuK20PoOALY+yMuDtb+9ELmfeHxrK4M47\n9+P445vR1VUb29f8M/Vnq5E+dTWSewdQ/8M7sfiSz2LqhOUYueI8pF+7poSQ2NADAYmq396Egb97\nB9o/8V3suuWzcJJJKyu1rCyBC8+cjyCZAKorASuGSIso25aj75tFp1evbiw1C2sMFjInTMpxYK+8\nEs9Ctq9tqfGpfIgsy+TgCKo37UDlBiOM1Ru74WZzmFi9FOk1S5G66PXY+ffvQ769EQibSlQEwNZ7\nnkTvfU8VxDC3re7Cn7c2Rr9TVHtK4mx65GaRyUygoqLmgJ+LopRCk36UGWV8fBPGxp4OLQCA3J5A\nIkr06OkZxI4dvejsXID29nlFkkc4zlksCzXeqacQuxyEx6DMTWB0NItEwkFNTRJ79kxgw4ZhnHSS\naaRg9rGzQJ10BrW/ehDzbrwDCIDh956HsYvOQFBdKW7aPNeS7eyCAIuu/DImTzsGQ1f9RcF2Zd37\n0fE3X8X2279S5Jx5Q8/zkc36qKhIimxTOwmGxuWORihxPQ/+s0zQMeOzde4OjaF60w5UbzTCWL2p\nG+5EGunVS41Aru3CxKqjkFnQAjiyi5B5WOJErwDp9BR++Olv4eiN27FucBTPNtVj25ouXP75D6Kq\nirNkZS9Z6gAUBMCyZa9Dc7NmyioHRbNkldlndPRJjI9vhuuy9UI3yImJDL754eux5NntOK5/BH+a\n34Cdx3XhQ9/8EGpqysMReBkosi4l1DWI/s9lBXIrueJJsQQXFlTjNg7Q0zOJefMqUFOTxAsvjKK/\nP4t16xrDPrhmn3AgVD2yEQ033oHKJzZj9JIzjbt28fxodMr6NHWObmR5hbujbE8vOt/2Gez80T8g\nt7Qd1KvV83zsuOkRnHXnndj1g09DJrhwhrGxru65Zy9aW6uwZk1LNH6pEhHzoOJGxw9nKeYrti6S\nOSt7yTrD46h+nsWxalM3kiPjmFx1FCZXL8XkmqWYXL0U2Y5WwJFLmRVruC4/Q9m9B+jrG8TevX1Y\ntKgNzc3zQlesfR3jzfuDAFi69BS0tS0vch0UxUIFU5l9hobuRzq9W8QaqQ4vwD9d8W/4xB8K3W3/\neO4J+Nj3rrGSREgYyd1mkO9zXZ9dj0c36AO7TFlQXTFP897kZA47d06is7MWlZXJqGHCihUNInHI\nRWJXLxp++AfU//x+pE9aiZH3nof0qatDoZAZroXzmHfT7aj9/WPYffMnEYRilsv52P7Pt+Gsvm3Y\n97Wro3OLEwQB+vunMH9+JWQtJte0ym3lT8WX7DK1r1Qjy7FIdzyNqk07UEWW48ZuJFMjSK/sxOSa\no5BesxSTa7qQ7VwAv6B8B5bY29fA3rbw85XXj8TefFaeZ/expT7E5PpfvHgdFi8+pvCiKYpNUcHU\nGKYyo3heBpRRam5iJkO2p2cInc9tL1oysOS57ejpGcGCBTLRxc62tLM4AXkD5vjmwVy1PDbFA834\nVC9ojllZWY5Vq8qjcRobK7Br13iUabt16yjq68vR2tGK1P93OQavvhh1v3oILZ+7CXAdjLz3PIz+\nxWkIqipKJt0Mv/tc1P3uUcz70Z0YuvxcAEBZmYtTOpLw/IbCHQD096cxNeWho6MWra1V4loUd7XS\ntSkl2uGeAHy4k2lUbtqJ6k07UbVhO6o2bkdZTwpTK5Zgcu1SjJ6+Dj1XvRWZoxYAiSLVatFJco9Y\ndp/y29IdS3HmwusTwHGS8P2cJY5B4IfuVyrNCeC6ych17jgB8vmp+GCKMm1UMJUZxffToLiUSf4x\nN8+dO/twbP9I0X2O7R3GyPu/itXLFsFvqYPf0gC/pR5eSwO85np4zfXIN9UD5abm0s6+pFgYYDdV\nL90LlaCbMS2aLJOGpADPn18VWnNs/W7fPhr1Zt3Rl0PrRWdi9LKzUPXwRjTcdAeavvpTjL7tTAy/\n81zkFzWDMoAjYUsk0PuPf43Fl38eY68/AflFLQCAssGxMENWJtsYN+mTT/bjxBNbIR+OyfVb4oG5\n+HmnM6jashtVG7qNOG7oRvm+fkwtW4zJtV0YO2UN+t53AaaWLoRTlgzPWSZxFbNSOWnIvra2u9yM\nw652asdXGMP2LLHk122XLo9jLNBMRpf5Ul46KpjKjGKsAhlbNILW0dGKe1sacG5fYer/n5pq8cYr\n36yRrqoAACAASURBVIis78PtH4XbP4Lk83uQ6B+Bmxo13wfHEFRXwJtvRNQnMZ1fD79ZiGtLPbzm\nBqC2StqgKIxnFrZ/symWHWpeW7FiXri/Wcuxt3cKfX0ZnHLKfIyfuhY7lx2N1vFRNP/4j+i8+FOY\nPGUVht9zHtInr4riegCQWboAQ391Pto/85/Y852PwfMDpDbuR/05x8SOayyx889fUmROFHekB5RY\nTDKTReXmPajasA2VG3agasN2VOzuxVTXIqTXLsXECSvR/643IrNsEfxkEnHhDYTlKBOK+HrwCiZS\nSOW1pfeKiS29boTfdgnzuZLnwIdpyRf3JrBL1vOyUJSXigqmMqOQG022wfN9H+3tTdj5mqXovaOw\n7dmuE1eg8ZLTMQlpgQT2zd/34Y5MwOkfRTI1CndgFE7fCJKDoyhfv8MI64B5PZEaBfJeKKS2mPrN\nDaGo1iPfHIpvU11RNyPd4OVNOXwH1EXHdQOceion/GSzHp5+OoX29ioc9/F3oe9Dl6D6Z/eh9TPf\nR1CWwPB7zsPYX5yGoNKsEzp45ZvR+fvH0PDL+zFw4RlIDIzAazEu2SAI8MQT/aisTOKYY5qiY3CG\nKSe/uK4LZLOo2LI7shorN3SjYsd+ZI5agPSapUgf24XBd5yNzIoO+GX2rSEIwseKkgY5L6TN5SlB\nQS/g4jFXEsRSY1P8lcQw+gSi8+U+uPx+1EnJp7pPIJcrbHKvKNNFk36UGWX//h8D8KIMVHKV+T4w\nOZnGNz90PZY8141j+0fxp/n12HXc0jBLtkLE2kioAGkZkhDLGJl0zVLpSBD4cNJZuAOjcPuHkQjF\n1HwPrdaBEfNzagzuyAT8hurQ/duAvLBg880NyDfVwZ9PotuAoLJCxElLuULNPPr7p3Dvvftxwmua\nsHb/LjTcfAeqntuG0be9HkPvPBf5Bc0o37gTHe//Mi4+ZinqHngOyZNX4ePf/yR8P8DGjUNYubIB\nibig5/KoeGFvJIxVG7pRsW0vsh1tSK89ClNrlyK9dimmViwR8y208NjqpsSfYu5WiAcHfq1wDLtE\nhq1F3o+W/pLHIesw3syeLGfKALYbwSfE71cimntFRR2OP/6iEp+JokRolqwy++zf/5Mw/gSQVWK7\n1QL09Axi164+LFnShvb2edYN0yAXZbaTPOwEFpk1S/vZN+gDx9vM+342j+RIOhTVEbj9Q0gOjsLt\nH0ViUIgrWa9lCeTD2KrXJC1YEtl65JuMJes31MIX7skXXhjBzju34qK9G9D2+0cw+Wer8e1FLfjF\n927D+QBOBfAYgNsAnPfZ9+HSS98A5H2Ub9sbCWPlhm5Ubt2N3IIWpI9Ziqm1Jlt1amUHgurKop8L\nLeVVeokyR1iLtK6lZ7UTJFEtDZd3FGvMLve3S0KM6Pm+qHt1qNSmsEbXPIB5YrtE6NlIoKysAiec\ncAkU5SCoYCqzz759Pwr/x91jOEMSUdYsuzm5rtKusQtfCdxQgOOxLYlM3gHohm+XpNjzMD9Llx+P\nxXWLRTJugwAYm0IyJUV0JPwaRVJYsonBUbjpDLzGehbY5gZkGmoRtM6DX1uF0Qe34H1/eBA/Bwpc\n1R8DcMPxy1H5/C7k2hoxtbbLWI3HLMXUqk74NVXheUO0iCtOaXcoXQOnqBhKq85xkuFKJcXHoTE4\nhh2fD61gglD0/LDfbrHYJZeSSCEtLphuKO4JJBIVOPHEi0teB0UJ0bIS5ZWALBWQsUyyJvLg1Tl8\nUPcdSqIxN0np6uQ6ziBwYsJAySQyeScA11TaQmwnrUiXsZh9AHE8P4q/0fHgOAjqapCrq0a2sw32\niiaIBJbE2M3ljQs4FNHkIH0fQWLLbvztE8/iTUDRcps1AD6ecPHBu78Ov6666LWm8zZWXfwczTYm\ni5ZWOSnWgxewG8vHz8cuC2HPAbldKfFHLkhNXXjsHrMs0L64/uQZ4GOQi9W+vk54PjKOyedgBPhA\nFrCiHBgVTGXGMDcyasHGIkUZnDKbkm6sci1MU47iRA22aX+6AdtiSSuelK4xJIuJ27kF1vHopl64\nOgrCY8tEE3nj5sxQc950Xo4QFCPEflkSfnsT8u1NiBMEwK0n/TWuLHE9jwfw+Q07cE5fDkfXldhI\nwEt42dfDXE/p5i66N82q5NhB4FlCacTLLv+Ql1LGKmUru1JeYRmLlMcEuHMSJRtxUwvpyYgLrKK8\nOPS3R5lROEFHtoSLxxKNG01aQrQgMCWGlE6mYctTHs+2msx2JCDGRchdgUhAHQcmuzSaA32XMVc6\nZiC+5Dw4S5TWxeQEJB5XHpfdlw5OO20tHitxpo8BOPnkNSgvN+Ue2ayPp54awMCAXZzPrucA7Aq3\nXcm0TdzFzA8FB3Lpmjhh4efFq5LIz12eN52veZjykUgkUBxy58rz4qxkEkueIq33yZ+XnIeivBRU\nMJUZw4gPWQmyoJxE02zH7lguQqcbL7tTbdGkZaTiFhC5TVmUpaUUt2bYQmE3HiLxYlFgl2Lh/Xc6\nN+R4Filixw3dl5ksflJWhttgYpaSXgC/B3DDDddiyZJaAAGSSQcNDWWYmMgBACYmcti8eRiTk/mS\nVps896KvBnydzJJsTih6FMOlfXkx6vi52jWXUijjx7XrJu25SRc5W+70YEOeBuopK4Xedd3woQhw\nXXWqKS8dFUxlRnGccjhOAhzHc0H1e6ZMgC0JdqfyDToucLLmsPQxARK6OLIcojBr0xZXY7WQKNgW\ncGkKhcguh5FWqrAwhyZQ+/brkE5N4PLL3oBLAHwBwO0ArgNwMYBzP3NldA5GLFwcffQ8dHbWw3Ec\nJJMuJifzSKUyCIIAY2NZ7N07UdA8HYAV9yvEiR46TDYtW8omSzb+sBPbO7JeeQ1QFrmCmYDiqia+\nKa8bu1bN70w86zkQ7n3bxU+fWTJZDkV5qahgKjNKMmkyN83NLt7GTFqS7G6T1qjtFaTtPBQXRNui\nLCygd8PjSWuJ3KG0TzEhkRYVu37jCyLLOdluSemGlnFb85XYN4DOd38B/polGL7hb/G/nnkBP/7a\n1Xjy1NX4sAO8AcAPfvQZvOMdZ0Vj225WM05FRQLHH9+Cjo4aOI5x2W7fPhq6bB2MjeUwOpqLXTfb\nJSwtyGIuWenqNedYaOWzZR6AewgXsyRt65OyZPm68Xv0+1OY5Rx3N0sXsK+CqbwsVDCVGYVdp5To\n4YWvk4tTiiJluQJszbjCYpAuUbpJOkJwWUgKC/IB+4bLS4IVj3UCRfQiel/OmWN+9FoitK7oGpT+\ns5t8eCsWv+NzGL34TKS/dCUabnsUQWUFxs45Cf/+4Uvw7GuW49TaKtTfXiqyWXyOANDcXIkzzliA\n+fOrAThIpTJ46KH9GBszLtzJyTzyeXoAIKuf9+eHmeLXgK+zEybo0HWQC1BLgsjilELJLmrp+pbu\nd0A+qPDvU0LMlx5K7Icpx1GXrPLS0d8eZUbhdRdNPNLENQN4nikJMdvI5bXk3nTTNStQ2Akg3LSA\nLSMuk5CZteb49D7dlLkhfLEEE/v4dEx7PUeZWCStWcfhBBgaxxzLGg1l9zyLFddejx3/910ILj0T\nTiaL+V//H+z/yofguC6QyWE47WPe8sWoeWg9yBIky04+SMg507WU1nYQBOjsrEVnZ220z9atw9iz\nZxznn9+JRMJBPu8hGfWPLZXwY58DZy17oD7BB9zDkfWZcZc7Y5J67PISOYZxxZI3gC14+hzoo08m\nSyUVKcrBUQtTmVEcpwIAhGVpxNPORg1C8eQYFllo5gaYp9GKHIGTZkgsqQk6jR23iCgDlEWO181k\nK4mzLO26wQDui/4rcmJiD9T/4j4s+eS30f+tjwLveB0AoPGHd2BqTSfSJ64w85zKYSpwMX7aMajo\n3gdkc+E5UhKVdBWzpWyE5ODx1nXr5uPNbzZiCQD33bcP99+/B1KkyEUq467yGhZmOwMs1naiD3sb\n/NB7EIhtIcain3ltSwkfkq1VfviRv18BEomqg14HRSmFCqYyoyST1SJhI54JKeOWdk0kWYtGDO2S\nFJMo5MTGCPdyEImKiaW5BTd205y8WLKKE2aGIsq+5LmLmVtjFTtr2yqy2r/5ASY//gM0/PvPsOfm\nTyJ76ho4joPE6Diavnsr+q+5NHLllvl5tCysQ/rkVQiSSVSt317gCi79NR1sMTrrrMU45ZQ2BEGA\nfN7HbbftwPr1A6EbtdCVemBoHxeumyi6mDXNgReFtl345md24XPcmROoAI7pkrCTx8JxHFRW1kzz\nWihKISqYyoySTNo3LN8nN5sfWkoJsMBwbWSxzE6iuFUjXnFk56C4tRONIra3XZe8TzyhhI5HQmNb\nsrYVFr+hA0E2h/mf/C46nlyP3T/+B2S6FkZi3vTt32D8nBORPXpRJCxONg9UlGFqzVI4uTyqH9kg\nsk2DA3zZ52cLqe2+ZavalI+Ul1cgCIBk0sXZZ3egs7MeADA2lsPdd+/Cvn3jiAuWHJPrZ90onhnv\nQRuH3bqFokqdgUxvWV/sYy88bVzRsluQSSKqqmoseVxFORgqmMqM4ji1lhUj6/LMzTAPLufgm7B5\njy0KWVspu/kUJuCwVcJQIhDAVorcvlCcSxfty7HkeK6Iz5GVy+KVSY2j/QP/ioqBYQz+4rPAAu70\nk9w3gHk/uxcDH7Z7ngZTOfSO5ODXViHf0oC6e54J51ZiatYc49Y87UQxPVm/CPDDAsdyy8sTqKkx\naQ+1tWVYt64FdXXm576+CTz22H6MjJjls4z7OiHcooXZxrIBBBM2vPfZkiysyZRWKFm6fiwByA2T\nyuSxXNTUqGAqLx0VTGVGSSbrYFs9fiRyxmBwwQ3XbeuHShIoBigFKNoq6kFKrlcnNkb8Z9oPOLD7\nMq5K0rKMW3nm/yQ4dJOnh4Pc7hTmv/0LGG9owJ7rr4VXVSksUActX/85hi47G/nWxnDscE6ZHCY9\n8/+J45ejYssuOJkcYFmM9GVqV+V5FU9i4nIWvqbFzhXiPM2cGhurUFdnYtKNjZVYsKA26tSzd+8Y\nNm7sRzZbqr4zLsyJ6P+O48ZWQZE1q/HMaHbt294A/kxJSJPJZJjEpCgvDRVMZUZJJuuF25UsEFq9\nwhcC5CMIkigmcgCE5WCPz4LKfWsLkWsnSoHwYuPHb8Z006Z52FbjwS09oHzbXiy/4jrkLjgF4//6\n13DKzAOC65rxKjbvRM39z2Lw/ReIcc3ACS+PxV3zEAQBpl6zHH5tNSqf2RrNxf6SnZLi5TqlKLZB\noQuaLXp+aEgmXXR01KK21nxm8+ZVwXGAXM5Yivv2jWPPnjHretmt6jxQYlVhvS3ENS90pXPCEOGD\ns5w55p1MFl/aTFGmiwqmMqO4rivimDJ7M7AyZc2N2BNuTSlklBAUTxxyLCtDlilw+QdAjb4P3GiA\n5ldofZYqfThYn9LUL5/Cwnd9EamrL0H62rcBUeITl4e0fOUnSH3gLfBrq4RIh9cumwcqyuE4DqaO\n7ULgOqh5bGMkMLY1KcWILM5i638eiGLnw9fBdnfa1NSUYeXKJlRXlwEwMdCBgclw/coE9u8fx/Dw\nlGUxUjzWjm/G46K2tWtKSnzr2htXMK1sw16HioppdKhXlAOggqnMOGVl88CNAnxQHSS7BwHbtSlX\nwZAjySSe0jV6dhzMFtrSGmffqKlBe2GCkXTjFks4Ci2wnz+I4z7//2PXFz+AsbeegbhF6DhA1cPr\nUb6jB8OXnR0TvJBMDrv7TYxwauUSJEYnUPPIBpC7VbqF7UxgeSwW1Li72j5fgEWWM4Q5FknLrsk4\nZDGr3dDaWoPjj29HMmnijxMTOWzZMhjNcWBgEpmMB5ngZa80Iz8Pds/SKcp9TAyUrgGLe22txi+V\nl4c69JUZp6ysCen0LnCbtCQchxf8paYGkmINBeimbneSoZssWaRB9Bpbm+R6dcHlKLRIsRyDj003\ndrsBgi2essSCMjwD38e8792GeTfejr0//DiC1UcVz9Lxfcz/l59g4Jq3A+Ul/iyncpjIARUAgqoK\nZDvbUblxJ5zJNFBzYHcjnacs5OekGWNxm+XR3OghxrioC7HjvoXXwXEAz5N9ZqV73Bxz2bJ5ABpD\ngfSxc+coHMfBCScsgO8HmJzMoLo6GZagxJtI0PH4IUnGrfk8k+IcHNTUNB/wGinKwVDBVGacsrL5\nMDdQqqekhZjlDZ1v8HTTtAvZi8WzgPjNtNiKIiy0FNuTZR+FYsaiyuNTcoopVyAXcT6ak+MA2XQO\n+Y98Bwt278Sen/wD8gvmx9ysnEFb+7tHETjA2PmnxNzHJAZA0svj6DXNGAr3njruaLhTWVQ/vQWT\nZxwnzzD2/0ILmM+dBYbd3fL6SKuR9427QWNXWDxYxB987OeFIDDdnk44oT36OZvN44knetDWVoNV\nq5oBOMjn/bBLj7Re4+54amxA7/lhP1rzu1Bb21JivooyPdQlq8w45eUtcJykdcOW3WLYTck3a74J\nItzWLdiOINehEdl4nBJiDCcmEmQJUWxVNkQgq1G6Mm1BthqspzNY/LffxOLhFHpu+TTyC5oBS3TJ\nqvWBbA4t/34L+v/PZQgcJ0wCkl11wphsLg+nsiKyttNrl8KrrkLt48+DLVw5Pif/yKXDbIGMY7uq\n2bVrJ+nI+Cg3GeB9ZMchuW28PaHd7s5sV1mZxJ//+ZJQLIHBwTTuvHMH9uwZtfblz4k/Q1qCjH6f\nTIwzQDJZhYqK6mInrCjTRgVTmXFM4k+D9ZrdMF3GogB5U2TLkvqz8mom4Ujh/kZweD1ijnvZMb/i\ncUc+HnUI4pZwlGwikVm7w1v7seDdX4JTV4nB//44goba+BGsr3k/vgu5pQuQ/rPVwvUsVzAJ5zKV\nw7Y9E5GATR3bhcTEJGoe3QAWQbsmlBOA5IostF1hyUehu5XHkmPzeDxOcYPTTtiS2cbcnpDmaj/8\nUDOIpqb/196Zh8dV3vf+e84sGo32xZJlZMuSjW2wjWM2x0DDhQRwaAsphVwSUpLSkjQkPFzitNws\nbdo0fVISIOTmxpAmT5rbtCV7IE7SCyHFN24wmMU2m21sy2tsy9plyZJmOef+8c7vvO97ZkSGYGs0\n+Pt5Hj0azZw55z1n7POd316Jd7xjPs44QyXtHDgwgg0b9mNkJGU1tBCXejZrz0x1XQc1NbQuyRuH\nLllSEuLxWchk+iEjtsIZoXKzk7Z2yv3pwa7PdAzRNC1OWK/bFow5Y7FQE3QTeUGXmwDa0tTb6GNM\nvHQAC269B8N/+FaMfeI9xs5lGxlrpnCPn0Djg4/g0DfvKnD+uSOIlTmZxojvQ1JXJs6ci2jfMCID\nI3CPn4BXk7QEx84s9mCKquu6Vnu6sOVnurz152NeN9O60zWm4ZaDphtdN8if4vwA4/MU61BlSkci\nEp90MXduLRobE0gkonBdYNeuAQwOTmDFijbEYua2wRFQW9sKQt4otDBJSUgk2gN3Z9i1pghbGuJe\nDY+K0haY3FBN7GxP0y2pjhHuC6stP994v21uqeoX0+WpxCW+dQ/O+tAXMH7btRj75Htzb/bz3m/S\n8I2fYext5yC1ZN6U2+g6zCyWntuiX4hHMXlmO1Lz25B8bmfe+6aKMYa7+YiFp66F+gln3BbYS25f\nsLYJj+EKl+7I9mYGbCGRFes/3+JUlmRVVQUiEfXZdXbWo7OzIYiBv/JKL3bu7LfEuqHhjILXgpDX\nAwWTlIREYjZctwqFaimDR1bcEtBWj3aMmNai7hcbTnQpPPxYBE8Ew47B/Ta0SzWbBX6z7j/Rdus9\nOPa5WzB+89tRWCh12zzARbRnCPXf+U/03X59sC9J+CmUFeqk0nAS9gDk8bO7kGmqQ9Xm7cF7tYtT\nfiQb2DGOE7Zm5YtLLq4KHZO1LczC18Z2H7tBQtRU78sXWOk1G7Z0jasXCKb9QjQaRXNzEtGoup3N\nm1eLZDIWWKs7dgxg1669BddNyOuBgklKRjzeCCnnEMzyETNL02xB5/s6G7WwG9PPxT/dYErFa2V0\n2nE228I1+nvnbujaAhWRqPjG/8UF//wDHPraWoxdtvI1BFdKN1Qnmsav/BBD11+KzJwmIw4oa41A\nxC74mUzjle4x6D66DsaXdwGZLKo2vwLTIrOt6fykn/z+uub1MK+naWnbcWBTmB3HzGDVnXYkcang\n1fAd4/pmkb+ZF/x7ABA0W7fdttKgQMdXq6srMHduXTBhpqurE+Pj4wCAVCqFDRs24OjRo1OcPyFT\nQ8EkJSMeb4Uqy5BnfGSzWSueqbJd7exKuVlOleUp1pPjeIE1oi07vZ1ONFHHNtH9VSUBx57XCQCp\niQwa7v4O2n7wSxz74d8is3Khsc1Ua1O/47sPo/qXz2Pg1mtgxgtta88UOw9OKoPhCS1+juNjclkX\n4kf6EDvQg8jw8eB89HXVVqX+MgLYwvjbMbsmKXF0guumrlU2b5/2Z6Q9BSo5x8l9eZANzJpKc8am\nuQa9jSoXsWPUegSbXE/1+S5fvhIXXnghACASicB1Xezfvx8AMDo6iq1bt+LEiROv63qQ0xMKJikZ\nicRcqL6yXiBI6iZqWznaBVfIXZv/msbc3rRCTCtMjhH+r2BaURKrVI99HxjtH4fzvvsQe3oHDn33\nM0i1zypwbNvNalp9zfd9FwN//vvw6pJTrD20Gt9HJJ3BeRfNsZ6f7JqDWM8gxpcvQNWzO0LvModJ\ne8Hxze5H+da3nSxjn0PYYlXiJkJVaM3yW4m47u4k9av2cc3yFMf4IiOfhXwG5hBrOZYTWLSyLscB\notEKK+EnEongbW97G1atWqWukOehu7sbr776KgBgZGQE+/fvt0aHESJQMEnJiMWSiMWacm47nfjj\numY2pQtdxmFbDloQABEyOyt2qmQVP9hex1DD3YLU+/WEFE1kZAwLP3IvWhpj6P33T8FrqIaeuamT\nZsIxOaHyuVeR2HEAQze94zWuTv77nFQaTqUdw3RiEUws6UBqbguqnn7FOs/X6m2rrThzzJkZ87Rd\nuFO7VaWJgUwYMT0BkSAeK+Un4euZv1+5JdnnrwU33JxdW+fSDs9sj1dfPyfUo9imtrYW1113Hd7y\nlrcAAIaGhvDYY4+hu7sbgLJAjx8/PuX7yekFBZOUlGSyK3ejE3HRlqaJzqSVjEyzvhCQm6aur3QL\n3FT9IKFFHcMWStVMwdwegGHF+r6P3zy5F7Nv+CzSy+Zj6ME7gMp4aF0ebMvOxIHv+Zj1xYfQd8f1\nQK4JgfzYbkhbSBzHAVIZbNs+HLouwPiyTnixCJKbTcHUjd1FDKVRQ77xpNYq8VU7dqjFJ3wu8lut\n3891PIoEQ57tLyH2+2zLXZ+rcu2GF2jOQZXXvNxjXUJijgCTDN2WlsXhk31N5s2bh1tvvRULFyr3\n+s6dO/Hggw+ir68PADA5OUnr8zSGgklKSmXlPDhOFK4rA5cBKR/Rhe325A0dOzPFxW6B5zgS41IJ\nNOZNVSfG2Aksqsm7mWSk3ZGO42Ds17uw8vZ7MHz9pej/9J8AEYmphXudKuypG2rNNY8/C2cihZE/\nXG18UTDdkDreqF9TVp+TSmNgzO5C5Ps+xpd2ItY7jNixQUT6RgA4uZu6CL1Ydn4gboXIt4ZFSF3j\neujXtOi5gSWpE37C2c/BJxO0EtRlLHZ8Wgs9oD8b0yOgfstIONMCNi3mqqpG1Na+sf6x5513Hv7y\nL/8Szc2q8cGjjz6KL33pS0in08HxyOkDBZOUlEgkhkTijJCVqSxHz5O/tZDlM/UNy7Ziwu5cs+eo\nCAkC4bNdu0Dlr17E0o99GaN//36MffBq6zVlUU11fH1TdTJZNN/zXfSuvRG+lVUqbk+zVaBpxahz\ncNMZXPL2dmt7QI36qnxlL06cuxhVz7wCsRblvbqdnxb/qeKm4krW5+AbfXzly4uUjcg+7C8M5nUP\n12XmjhJsY2bfhj9Ls3WhRveG1V+CZFi4fI6qOURd3eyC5/hGuOaaa3D77bcjFlNjy77+9a/joYce\nOunHITMTCiYpOVVVC0IWmsS7YNyY8+OSpuDp+FvwqmGlmjFQH56nttUt1Oxjmzf5iYks9v/tI2ha\n+wB61t2BE1erbEuzpEK5K8MxN9tlCQC133sC6TOacOKSZQVjo7K9/Vs/76RUL1n7OEBqXisiw2MY\nP2cBkpu3F9gnjMxa88uAj7AlLfuUWKbjRGGKmXRe0j1mC83YNEVSfwEyS0BeI7wa7FP1hQ2/5ua5\nh/V8U22tu66L5uYFr3WQ35l4XMeRb7nlFlx11VUAgEwmg3Xr1mHjxo2n5Lik9FAwSclJJOYgEklC\nWUb6DilCpF2ycqPMH8MVLh/RNZxmPFK9R8o0XDdiCZ8QPOf7qL//B1j1+AYceehTmDh/UbCdmcGp\nhD0SEh/ZTrkmnbEJNK17GL1rb8y9eWoLbyqcVBqbtw1Yz/lKHTBx9nxkaquCxJ/8mKNOipFzVOOw\n7HOWEhpdKqLrQ+11ate4GTu0f4djj/lrsuPMZvMCnZRkXle7GYJaRzabDfYla6qqmoVksnbqi3mS\niEajaGxsDB6/973vDeKfAwMD+Pa3vx1k4JLyh4JJZgTJ5JnQ1qJqgyduRbtWE5DuPPmTSNTN1fPU\nDVQsSbObT757T1ueahvVrX2wdwxNf/V1ND71Inof/ltkFtjlHLmVQQuk1I/Kj2f9bvjnn+PEqrMx\ncXZn7pxs12Z+7C58HMBJZdB3PAtTlOVnfNkCRIZGERkeReTokLE/iRPaU0WUyGvLWMc4TQuw8O3B\nvMbBlfdVwo8ZYw7HlW23uFiCZgxXJwDZ71OfoYil/lKl2+iZZSuAg7a2JQXXfqqpr69HW1sbAKCh\noQGrV69GMqmmpBw8eBDr169Hf39/SdZG3jgUTDIjqKpaBNeN54RSbvRCvvtSC53d5k3H6MR9KKPA\n3CBOKpjWiuzD97Po39uPxj/5IpzeERz+t08j21xvHNlsvWe6NoHCYucj2j+Chm//An3/43rDT8dq\nWwAAIABJREFUEtZuTZ3cowUs/EXA9wE3lcbbr55vuEO1II8vnY/Kl/di7IKzcPzxzXjuuR04dmzQ\nWqPtcrX3b/0VWHZ6TWYmb24vgGVFyvvsrFe9rXkuyppU7mx9fB2vtEtHJIkoPJVGN1IwS1FcJBLV\naGxsD5/ktOM4DhYuXIj2drWWWbNmYdasWZicnAQAdHd348knn0QqlSrlMsnrgNNKyIwgEomhsrIL\no6Oq+F7XNOpyEm2ZmJacC2lIIBNNkMsSNcdxmfFM2Ye+4ertIz2DWP7Re3HiLV3o/4c/he+ayTnq\ncVh01f4Kn5fvA43/+8cYedclyMxtzdswHP/TiSz2ceB5cDJZuKFesiJi48u6UP35f8XfNVRj7q+2\n4Zx0Gs811qF7WSf+9Au3IZlMIL8BROFpLbaLFbDjm5Hg+ttLz48zq+sKyGcoyTjmeYavm5mQFE4+\nUhapfEHygmkryv2s3bWtrYswE0kkEnjrW98a/F1dXY2hoSGMjIygubkZe/bsged5WLhw4RTxbVJq\naGGSGUNNzdJQkknWcKsC2pozmxk40BaoF4odAvaN37f2o/at4nWe5+DVH7+Itj/+O5z4g1UY+vwt\n8COSqKJdu2bSis4oNW/ydiZqfN8R1Pz8KfR/6Brj+LmVFbwnFlZeN5OBF4viyU095h6CR+k5zfj8\n0HF8YtchrJ1M4QrPx8f7hvCZDVvwrbvWWdvqLwDmNdSWut1azr72Kq7pG+c49bp1/FF3+LFjlp5V\nb2t2AlJ/y3ZqHSrmrDOIZVqJanyhjheNJtDScmbBazjTaGlpwdVXXx2UrExOTuLZZ58N+t7u27cP\ng4ODpVwiCUHBJDOGaDSBRKID4rbzPIljmjdjiXMi575VVqYUk5txOXt2pqCtHV036GP8P57HpZ9d\nh4GPXY+hD18DOOFEozAiOPZj0RBJumm67/sYvOVq+E31CMcoC9fwTZEMlMrAj0cxODiZtwYAONY7\nhDbHQXjqYyuA+S/tzblnzWOoH7MWVFuNur4xfO3tJvjymtlnV+9f7Vfa6JnCq/cnGa3qvXqqjDRL\nMJOLtDvXCbwCpjvXcVy0tZ2JiJ4aXlacffbZeM973hPEPLu7u/Hwww8H16SnpweZTKaUSzztoUuW\nzCjq65ejp2c/fD9jZbkqF2UEutwEQFBO4lrCpZD4HmAPbbYFKZv1UPPTp9DxuX9Fz1c/iomLlubi\nZTqWNzW2i1g2labgia27kNi6Gz1f+BDCXW/s7E9JAtLNCpSLOKLfM5mBH49hzZoO4xykdMbFwYN9\nWJYufDNd0T+CgwePorm5AbYIOgWvm9lzV7k8pRFB/rXQn5FrXActdKYY63pQHZPWmbuFvpyYwi3T\nSrQ1KdarfDmJRBJobT2r4DUoRy6//PLgse/7ePTRR4NMXN/3MT4+HogrmR4omGRGEY1WoapqCY4f\nfxE6diZNBbzgBiw3ajtjMwLV5EAnldjCKQ0RsnAcB4MDJzDy19/DRVuew5FvfwKpxe1GPFO9Q5p6\nO04ksGh0go+HKZ00vo/mL3wHA3f8MfzKCmjXom+Jo9z8zSQX1dAcMEdwuek0/HgUynjSwiLx2blz\nm/F8bRWuGBnLW8q2plqc1z7bEGQd383HTrayY5yOIW4KZQXqNeljTOFadtX1D5eGqEsmX45s16wQ\niURyzSx0qYsWUQdnnLEM0eib85bmOA5uvvnm4O+xsTE8+OCDOOecc3DllVcCML9EkFMFXbJkxlFb\nuxyRSDXMTFQtlIDOpHSsm6oSGCm2z3cnAtDimvXQ/o//hgt2bcfRH34GqcVzIVaSWQuqLVkVu9M3\nd0BKUMLa4Ps+qp7YCnd4FCN/9DaI8GsR1lmuhe5vhbTGSaVVDPPJ8BxHtYOWlgbsXdaJntCrPQD2\nLu1CS0u9kSyl3qePbWUX2Xt3ZNaleUPWn0kx92fl/o7k3KxZ66Zu7k99buKatT0C6ouOTtwyR3m5\nrotEohazZ5dH7PJkUF1djbVr1wZW6MGDB3H33XfjxRdfLPHK3ty8Ob+OkbLGdV1UV5+F4eFn4fvR\nnGXpQzq6ANrKEBefxizVsAVJhOrgzkGce8+3EJ1I4egP/hp+TTVMgTUnXpiJPXbmqtmaTboG5b5/\nZjw03fNd9H383UBErEp5DwquKT+BxlYiN61csmYMU69N8f7778C9l9yGWdWVWDE0im1Ntdi7tBMf\nuPs2a1+2RQfovqySDCWxYN1j13Y/m0Jn7Tl4Tru1zXpUGPsQK9tsqp819qF+u650UjKza5WV6rrR\nnOWfxbx555121pXjOIFFPXfuXNx+++1B/Hbbtm146qmncO2112L27JPfIvB0hYJJZiTV1WdibOxV\nZLMj8DzdnUdukLokxIPvRwHobi9qOzPmpsXvN1uOYPGdX4G3sgNH190BxKNwYLpEzckhTu7Gn5nC\nGjOfk5FeHuoe/n/INlTjxGXn5tYkLmIRSzsBRg9CltdEULRV7aTSQDyGd75znmXlSn2i7wPJZCU+\nfdFy7HzbOdi+oB3ntbfgnS0NkEQeLUThdnZKrORYqjeu2a/VFiLtTvat/eoyEp3JOlXilHxOtnvZ\ntN7V+8TlqieQIPfFxcllOXuoqZmNhoa2Ap/L6UVVVVXwePny5WhqakJdXR0A4Ne//jWOHj2Kq6++\nGpWVlaVaYtlDlyyZkbiui/r683NiqUsTRJzssgftvjMTSExLynGA6N4erLrzXlT84bkYuO9DcCpi\n0O5AJ7gZm/vTCS86O9S2ZOR5JS7uRAqN/+tH6PurG9WegwQY3Vxd3LthzKQZz0MgPp4HOKksvHg0\naPRuJgfJ8QEP48s6Mf9gL849dzFaWxuhyjHMa+QbPybaRatdt/kzNXXcEBCXtGBmraptpXesYz2n\nfszPEcZvP/itR5+Ja1iLuHqchetG0Nl5Qd61PN1xXRft7e2BOK5cuRKLFi0KLNAnnngCGzdu5Kiy\n1wkFk8xYKivbkEzOhz370IPMtBQXqJSeaKPJFNcIxscz2PrAJsy+4bMY/os/wNDaGwAzAzW3bbhR\nu+NIcowWMr2t9KEVF6R6X/3/eRQTKxdicsXC3HO6HZ2Il0zbCAuXeXxVWyj79uGkUrkY5hFokTdj\nuupY40vV5BJ1TN/6rWO/4Sud79Y248e6jZ+4R0Xc5HPJd4WaXYFU6YhuAKHjk6bbN/866Guty4bM\nshXHcdDWthTJZF3e8YlNMpnE8uXLg8bxS5YssQZrb9iwAbt27SrV8soGCiaZ0dTXnwfHqYCyZuTm\nrARHjZ1yQlYcoHvN5pJ8fvw03vngv6DvC7di9D2XBbEzHet0rf2Y37plqki4CbjvZxG2vtyB42j4\n5n+g7853B5auLqsApLYwn3y3Z9gCdFIZ+LFwHWboHT4wvrQTla/sU52BpnCHmo0X8uN+pjVvJvjo\nzjrmW8Lir/vi2kKtkq1c+CG1lmsaLm+xr59ujScJWb4PVFXNQnv78imvB5matrY2XHzxxYFoNjQ0\n4NChQwDU1JXNmzdjYGDgtXZxWkLBJDOaaLQCDQ3nwY7rqeQQs0uMOXlDthsdzaDuXx7Doq98F/3/\n+j8xftlbcttK2Yjp0lUuQmUNRUNWmNy89QQNfVz9uPGBh3H891cjPd+Op0lTcjN+GLbywroV7tnq\npNJAIm7EMHXJjWmlZRtqkK1NIn4gnC+r0M0ARBgl4cbOWNU/unORHhGmLWHz/GX6SziRqXC5g85y\ntl+SOKj6XMzEJj0vVH2+HR10xZ4sVqxYgcsuuyz4e2hoKMi4nZiYwM6dO193z9vHHnsMIyMjJ3Wd\npYaCSWY8VVWduSHTZtxSknLMmCWCxwf3j+LEh7+O6n/5BY5+/9NILe/I3eDNuFnYDetBEmC0KDnG\n9uo95mOJKUYP9KL2kV+j/yPXBuvQrlyJWcrQZ4kF+tDjtFxoC1YaMRj/PXMWpjms2iyxyT0TuGWT\nL++DjEXTma1urr4zf1C1EiYdtzQb2oeTkiSJyRxKDcgXEVtU1ft1Bq6UqKjts8Z5wLDyVTxWJ16J\n8Mq5e5g9ewmqq82m+ORkEY1GceWVV+LSSy8FoFr2PfPMM9i6dSsAYHx8HMeOHcvzFpj09vZi06ZN\n+OlPfzota54uKJikLGhuXo1oNAnPkzrJ/M4zQbLKRArL/+GbWHqiDz0/+huk21tki+CGHs4czf+/\nr92JkjSk3mtai4KDpvu/j8E/uRLZprqCmaV6fVpkZJ8qVipNCkQspORCrddNpZGNRawYpl5jfuJP\n5cvdENERITbjgIW6GImrWm3nBcKpm5uL+1Q6J2nBE7Ez96OtVgTXwyxRsV234c/TrKdV10Us4Kqq\nJsyd+5a860tODXV1dXjf+96HCy9Uw9N7enrw0EMPYefOnQCUoIatzz179sB1XezevRvPP//8tK/5\nVEHBJGWB68bR1HRR4PaTrj8KdTPNZh289KsDaHnf3YjGHPT9+13w6ussV60kkUisU2KK+ZZkYZS4\nIRAEzwMSL+9FcvN2DN1ytbFl2PKTEhVtaeoG8VMdy8guTafhx8w6TLMEw952YmknEi91h/Zl/iXX\nwLYcza45aq3iotUxXzl3eY9O+rGnweimDuYosrBr1vYY2G5yAMgGz8laXDeGBQsuKeDiJdPF/Pnz\ncccdd2DJEjVzdOvWrbj33ntx7NgxACpburm5OZdj4GP9+vW49957sX///lIu+6TAOkxSNiQSLair\nW4nBwWchNYg9PQPYt+8I5s+fjROvDODiT3wVqavPxdCn3gu4DhzjRq77mPqBVSSuWD36ys1ZsW7O\nNYuclWUmnIjY+YDvoemL38HAR/4IflUip2DKElWCpIvxtYtRRNqsVQTC7l4z9uemMkCFjmHq+KX5\nW3HirE4kduwHMlkgqixiaWGnazeViKrsVR0zFdesWIm229fOfAWk1Z24Ws01m25t7RKWGKru2uPA\n/HKhro/5mUkrQ/W4s/NCVFbWFPcPhkwLq1atwvnnnx+UrPzkJz8JrE9hdHQU//Vf/4V58+aV9Zcd\nCiYpK2prF2Nysh+9vdvx4B3rMO+FbqzoG8bGumocPTGB+XdeB/9Df2C4DVXZiT2o2DVEM+yLlXma\nmcAlKfFE06KVm3zlxhcQPdKP4esvDZ4LuyT1Y4nnZWDWkpqF+lKqYruMkWu+btZh2vFb87z82hpk\nWhuR2HcUEwvbA0syXAajz0WsNynfsNvQ2QlBesKJGZuUzGRdkuPmjqkHbpvnphvL+8Z1Uu5pdUxd\nGyszMGfPXoxZszpfzz8XMk2YE2IWL16MHTt25G2ze/durF+/HqtXr8asWbOmc3knDbpkSdnR2HgB\nvnbnP+FTjz+Pjx8bwhWej48NHsfayTTue/bV3FaSUGNaStp9qDvHqHio6ZqUUhJTjGwXqxI7P5NF\n8xe/i/61NwAxNcfTnvloxi1ze3fMukUfKg7oBb+lwYEuj8lZbUEvWRXD1GPMzBifJC15GF/aicSL\ne4I16OQm+7+8GXtUv+U7tOny1ZasbjcoNZh22Y2dQaz60Nr9Yh2rJtO0vs3ra+/LR23tLHR0nAcy\n8zl06BAmJwuXP23ZsgXr1q3Do48+Os2rOjnQwiRlR09PLzpfOFBw9uPcF/aip2cIra0yykon9IRj\ndvZNWzJozc4n0izBMf4WfNSufxJeZQVGr1gFLSZiYRUaXK2tLE1YmAvjpJVghuswzbILAMH+x5eq\nxJ+hP1KWb9hKlC8U+WtRLmRx22pxluOJe9duPSiuW2U5epBSVp24JNdHrFc3V5spCT8K6WOr+/b6\nqKioxcKFl77m9SEzh9raWutxbW0tDh8+jBUrVuDiiy9GX18fKioqSrjC3x0KJik7du/ejaW5BIMw\n5/SN4MCB3lxbOLFqJDMUCGe3mi5K3aMUkLpDJXoRAOasSR/OZBqN9/8APffeBji68bqIl9pHxLrx\n63heIesVxmOdRRrEClMZeJUJrFkzDzrL1t6P2aB+fFkX6n6+yTo/SXCSeGD4GihxkwYRufO0aill\nPqV8sXCN98p+JGZrWtLi2tbbS4KRvvZmnFie9xGLVWLRossRi8VByoN4PI7W1lasWrUKK1euhO/7\nyGazQaP4pqamEq/wd4eCScqOkZERvFBTgyuGh/Nee6G5Fr83bxZsFypgWzmAdsPqbcQiVDdtc+pJ\nBlLsL7Mya7/9GCbPno+J8xcpyfFhiIndcaiQoJmWHnK1l3Y8TwZl59oBpjLw62KIRHQTd7WtvMeF\nlKMALsYXz0diz2+AVAaIRy3rWWoZNdoqVq/L8fX6tMUsz7k5Edbnp/dl/taJQXrCjL4Oer86EUk6\n+0SjFVi06O2orKzO+5zJzGXlypVYuXJl8Lc5VaXcYQyTlB2XX345hn7v9wrOfjxwThdaW+tCsTlt\nren4pI4BKmHMT+rRcT/ZTomIMzSGhn/6GfrX/vcgAUe212OxdDzRtKTyEXHOQCfPZCHiHszhTKWR\njbp48skjoQQeB+baJB7qJyuQam9BYtdB6EYI+njh4+vHCM5FEo9MQVPnIbMtzS8c+r3hLkWqvEA9\n47puUBqkPpv8doQSI1648FJUVbFPLJk5UDBJWTAyMoIf/vCHyGazSCaT+JuHHsKXrrkG97e14Reu\ni/tmz8Ln3n4uPnT/RyDTMKSrjCmWdkwSudcRuAJ1opDZXMD8b+Kj4WvrMXbF+UgtaAueU8LgQOoP\npTm7aaXZ/WjlfWYWqr0m9Zok/WTgWXWYYZEzY5nqmCqOuReSPBQ+rqxNXNXitpZz18IP2N2PzF67\naju5TrrtnvmlRJ2H60aQzXrQSVhOzvpUa1LCqfbb2XkRamvLM5OSvHl5c9jJ5E3P9u3b0dbWFqSv\nV1dX4x8feQSHDx9Gd3c3buzqQjI5gKGhF42bPKBnY5oxQWkkLu3ozC47QL7V5KCnZwgHDhxFZzyK\nzh9swP71n4dtnelpKqaFagq1ElWJ8cnkFd9oPSflGrolX2DlptJwEjFcdVV7cE1sN6m5fsX4si5U\nvtyNAf/y3L5EvKQ20zP2o+dOhrNd7WNpgQ/cxUF5TjhjFrnzicB1s4ZQAsrqlSxbbbVGIi46Olah\nubmj8D8EQkoIBZPMaCYmJpBIJLBq1aqCr8+ZMwdz5syRv+A4UQwOPpdzF0rnGkl6UVvpySamsIoQ\nANoycjE6Oo5vrF2Hjhf2YkX/MDbFovje7Ea8vyaJZEhgpU9rvnXlwHF08b1Ya7o+0ox96gkdWuQc\nFcOMxxGLRQMLUN4b7v0qazpxdicavv+fwTN6bVKfqhvKh2O5doKPGVuVWKm4i5Fbtwyy1p2CxFWs\nmzeYFqquc1XnkkUkEsX8+RehqWnelP8eCCkldMmSGcvLL7+MBx544HUNua2rW4Lm5ovgODHDClKv\nSbmC58lkDTNL08uNOpIEHHXD/8badfj0L7fg472q3vPOyTTu2t+Db3xsnTFVQ94TdrWaQ6m1tamP\nk5/pqhOGJKFH/fQcH8Om/Ufws5/tgMQ61Ta6Ibm8Xyy5ycVz0b/vCJ5/8iUcOzYAsSAFlYijk3oE\nqU0Vl7YWZ0B18DHXqpu1y6Bt30cubhmeRKLWrc85mrNAgWg0hs7OSyiWZEZDC5PMWGpra/GBD3zA\nGnRbDNXVnfD9CPr6NsF1PWSz4vqL5rJcxarzcxaTiJRpFQI9PUOY/+LegvWeHS91o7d3AK2tTdAT\nNuwyCnms9qfrEQVxZWo3phYnSYQ5cWIS37rrASx4ZgeWb3oJr1bX4Ks/PxMfuPs2JJOJ4D0mjuNi\nbGwc37rrAZyZyWLZh+/GlqZ67Fnahff/44eRTCYs168uOdElJKabWpeDSAxY98IVt6tdPuMbIqoz\nfqVDkI6dqo5H0WgCXV2XoLa2BYTMZJzXGtGCcFCEkFNMOp3Gli1bcMEFF+QlwrxeTpzoQW/vRmSz\nE7mbezZwK6obuDkEWm7+OiFl8+YdaH7fP+CKAkOfH3NdDPzbJ3HeeUughdAJCTFgCo0pOCIuytJV\nYpnNeohEIsbYrwzW3X4//uaJ5y3R7gHw2ctW4ravfCwo9JdkI3G5rrv9PnxmQ/77/u6/rcRffPlj\nEFe1ndGqazVNYddJQi60tamviY7V6nmbYjVLkwLbzSvX20c8Xo1Fiy5DZWUtCJlBFLz50CVLZhRP\nPPEEDh069IbFEgCSyVbMmbMG8XgDlEBEIEX3ys0bgZ6qISOtlDvWcRzMm9eCF5oLlzW80FyL9vYW\nmFm3OlYnNY8iKiIUOrYpDcY9LwOZmqIsvmzOesuit3cYnS92F7Rw57+0F8eODQbuXT1zM4uenkF0\nvVT4fZ0v78WxY0NQYhZOGNKJRrpeVbuNVTxSu8elXlXOU1zU8sVDZcaaczM96Dioj5qaVpx11hqK\nJSkbKJhkRvGOd7wD11133UnbXyxWjTlzrkJl5RxoCzCSqwdUbkHfl/6mgPRI9TwPs2c3Yt/yroL1\nnvuXdeXa74nA2RaY6vIjszP1KC/bwhKB1ok4WsBc7N9/FCsG8pszAMCK/hEcPHgssFaVMClRPniw\n5zXfd+hQD8TClGPJlJagjMWoQbXdyZLgpEtPpDOSXb9qxjSzwfVRpSRAS8vZWLz47YjHy7NFGjk9\noWCSknPw4EF885vfDCySk43rRjF79qWoq1sKaf2mklIcOE40JwrZIHFFkl0A4Nb7PozPXX4u7mmp\nx2Oui3tm1ePvLz8Xf37fbUGMTifT+HBdM0YnjdXV69qiE+EQQQUkAQZAkOTU0TEb25oKW7jbmmox\nd24rrNKTnCjPnduCbY1Tv6+9vRVmPFWdu1iEdgMCaV6gGxdoUVXHdAzxtJum6/maOhnIcSKYN281\n5s1beVK8CIRMJ0z6ISXn2LFjuPTSS0/5DbSx8RxUVrbi2LFN8LzxYM6ibsvmGUKgnk8mk7jja3fi\n2LFBHDzYi9XtrXhXa31gSXqelFFIDNCMg4rVqSxIuzmCCLRpdUoCjXJZzprVgL3LutBTIIa5d2kX\nrm5pMMRLX7vW1kZ0L+tCT4EY5t6lXbiqRTWm1+313JyVra1cXRYiLlffeM08RxHTTCCcejSXrtP0\nPB+VlfXo7LwYVVX1b+hzJKRUMOmHlATf99HT04PZs2dP+7EzmRT6+jZhdPRgzqL1gxu9Ts4J/9PX\nzQbMjFazObkiknNBiqvVz8X2POMLgRNqhJ6/Rmm3NzY2gW/dtQ7zX+rGiv4RbGuqxd6lXfjTL9yG\nyspEcIzcuyDW7Pj4JL5111fR+fLe4H3dZ3fiA3d/BMlkIncMqak0z9FO6DEzf6WPrtl0XSUrqWPr\nxhAqCcnzsjnXt4uGhi7MnXueNTeRkBlMwW/vFExSEjZs2IDdu3fjz/7sz0rmmjt+/AD6+p6B501A\nd7nRdYmqyYBZYiFEDMvLbBUnWbBuYK0qQRRR1bE/cVdKY3I7k9YLEmPkcW/vIPbtO4q+PgfvfOeS\n3P58yNBowRRw3wd6e4dx8GAP2ttbMWtWnbFOuebiMtYNDOTjUIlIbm69ujWeshjF3RoJhFSLpZOr\ndXURj1eho2MVamvDKUiEzGgomGTm0N/fj5qaGsTjpR3blM1m0Nf3DI4f3wvTSlKi4eUsTzNOZzdU\n12OtdPKOuGC1iDiGRaqESCXKwPqyoI8rrl27TnNyMo1f/vIw1qyZF8R6tVvXrOP0AqEDlMtVCZwI\npe3CVceTcwrXiar16wxgWNtJtyHXjRpt/1R8trl5Ec44Y8UpiUsTcoqhYJLSMjw8jM2bN+OKK64o\n9VLyGBs7goGBZzExMQwZlSUiqMXCLLxXyUO6tZ1p3ZluUnPuJCDuXhFV87+f6eJVf0uMVFy+PiYn\nPVRUyPHFCrRFV63FtvjksTQ41/FUP1c7abqGdbzStDr1efnGaxL/9YP3J5PNmDv3QlRXNxT/ARAy\nsygomEz6IdPGk08+ifr6mZnwUVXVhsrK38fQ0HYMDW1HNjsJJTBmJx5zuHImEAg9cUNKSAA9Fktt\nVOiLqTRQUI/FKnWDbXXWro5/JpOxoPzDcVSzctMyNbNU5blMJgs71qr7t6rtIlBddyLQHXpsATUF\nXp+vfh0AYrEqzJmzDM3NC1/XtSekXKCFSU45nueVlVsunZ7EwMCLGBvrRjabgjmFRA9D9uG60ZCr\nUiGWl+f5iET0hBR5XguqF4idaQFq161qvi7u22zWw9NP92D16jZL+KStn7IenZyLVMdNxU0L6CYE\nZl2ldsfmu2V11q7ehxxbrkUkEkdz85lobV36phkUTE57aGGS6Wfr1q3YvHkzPvjBD5Z6KUUTi1Wg\ntfV8ZDLnoL9/G44f7zasPgRWn2paEIXnpY2ONvIdMwvXdQJ3p0LHAM3OP5JwYwqTmSgk7k7P8zE4\nOGnFPrNZcam6kDpK6axjCqMS4iyUkIug6tirEm09Bk1l9zpGjSqC5g7qWnhwnBja2pZg1qwlFEpy\nWkALk5xSXn75ZbS1taGxsbHUS/mdSafHMTj4EkZH9yKTycCsYQS0qJkxv3ByjVlrqS1DGe/lGy5T\nQP+3iwTZqUqwlECaXXakDETEWf2W+Ku5jbh7dbYu4CCb9Yz6SZ3MpNYigukba3MRiVSguXkhWlvP\nRjQaO3kXmpCZA5N+yPSQTqexZ88eLFmypNRLOalkMimMjOzC8PBuTE6OwXV9wxpT25guz3wx1AIq\nyTfqsTQ9N2sZATOrVVugflDuoRubS7aqlITo9nTptIdoNBK4xSVbVl7X7ljBsdbjupFAgOPxGrS0\nLEJj4wLWU5I3OxRMMj38+Mc/RiQSwTXXXFPqpZwyjh8/gpGRbpw48Rt43iR0bFKhxMwccaUzT81E\nIGUdRiBCqF9Xxf864cZHNutj82YVwxRkH7qtoG8IrnTacXJr0u5W+dt1zZpK9R4RYs/zEI8nUVNz\nBhobF6CmpvmkX0dCZiiMYZLpYc2aNUgkEqVeximlpqYNNTVt8LwMhof3YGRkPyYm+qB1zz7EAAAI\n90lEQVTLRtxcezg/iBnq5B9JpLE760iLOu0GNVvTKXEcHJyAFlQ3sGD1IGdAiZ9YpbrJgm6kLhNZ\npHG7jBRT1q7rxlBd3YL6+vloaOgoq4QtQk4ltDDJSWH//v3YunUrrr322lIvpWSk0+M4fnw/xsYO\nY3y8N9caTrJUHcvaAyS5x24zp124YgVK9qqyYDOZbM4dapaHmNar7FsycnXtqI6PushmM7lZnB5c\nV01WqapqRU3NHDQ0dCAaLW1DCUJKDF2y5NTx+OOPo7OzEwsWLCj1UmYEnpfF2NhRjI0dxsTEACYm\nBgMBlaQg/X9PxNELslxF4HQzA7Npglm64uWyZnWMVCUKRSDt8WyRVsIdjcZQUVGPqqoWVFfPRnV1\nCy1JQjQUTHJy8X0fo6OjqKmpKfVSZjzZbBap1CDGxnowMTGEyckBpNNjkFZ6Wix1/1kzAUiVlXh4\n+umjuOiiOQBgdOiR/9teYLVKJqwk98TjdaioqEMi0YTq6mZUVTWV4jIQUi4whklOLo899hj6+vpw\n0003lXopM55IJILKymZUVurEGc/zMDk5glTqONLp40inx5DJjCGTScPzJpHNZpDNpnJdeJR4Dg5O\nBAKrmgfEEIlE4boxuG4FYrEKRKOViMerUFFRm/vhFxpCTga0MMnvzL59+zBnzpySN1A/HVAC6SGT\nyeSaBLh0oRJy6qBLlrxxhoeHsWvXLpx//vmlXgohhJwqCgomv6KSgmzcuBHbt2/Pe379+vX4LV+y\nyCkik8nge9/7XqmXQchpC2OYJI/h4WH86le/AgAsXLgQ1113HWIx1QLtpptusrIuyfTheR4OHz5c\n6mUQctpClyzJY3R0FF/+8peDeNmZZ54J13Vx/fXXl3pppz06hkkIOYXQJUuK45VXXsk1GVc36AMH\nDuCSSy4p8aoIAIolISWEgkksduzYgY0bN1rPjY2N4ZFHHsGWLVtKtCoCMIZJSKmhYBKLp556CqOj\no3nPHz16FD/5yU/Q09NTglURgDFMQkoNBZNYJJPJvOfq6upw1llnobq6Gvv27Zv+RREAQDwex0c/\n+tFSL4OQ0xYGREjAM888g+3bt6O6uhodHR04cOAAzjrrLKxZs4aZsTMExjAJKR3830cCfvGLX2D+\n/Pm4+eabKZAzkEwmgx/96Ed497vfXeqlEHJaQsEkAZ/85CdLvQTyGjCGSUhpYR0mIWUE6zAJmRbY\nS5YQQggpAjYuIKScYR0mIaWFgklImcAYJiGlhS5ZQsoIxjAJmRYYwySEEEKKgDFMQsoZxjAJKS0U\nTELKBMYwCSktdMkSUkYwhknItMAYJiGEEFIEjGESUs4whklIaaFgElImMIZJSGmhS5aQMoIxTEKm\nBcYwCSGEkCJgDJOQcoYxTEJKCwWTkDKBMUxCSgtdsoSUEYxhEjItMIZJCCGEFAFjmISUM4xhElJa\nKJiElAmMYRJSWuiSJaSMYAyTkGmBMUxCCCGkCBjDJKScYQyTkNJCwSSkTGAMk5DSQpcsIWUEY5iE\nTAuMYRJCCCFFwBgmIeUMY5iElBYKJiFlAmOYhJQWumQJKSMYwyRkWmAMkxBCCCkCxjAJKWcYwySk\ntFAwCSkTGMMkpLTQJUtIGcEYJiHTAmOYhBBCSBEwhklIOcMYJiGlhYJJSJnAGCYhpYUuWULKCMYw\nCZkWGMMkhBBCioAxTELKGcYwCSktFExCygTGMAkpLXTJElJGMIZJyLTAGCYhhBBSBIxhElLOMIZJ\nSGmhYBJSJjCGSUhpoUuWkDKCMUxCpgXGMAkhhJAiYAyTkHKGMUxCSgsFk5AygTFMQkoLXbKElBGM\nYRIyLTCGSQghhBQBY5iElDOMYRJSWiiYhJQJjGESUlrokiWkjGAMk5BpgTFMQgghpAgYwySknGEM\nk5DSQsEkpExgDJOQ0kKXLCFlBGOYhEwLjGESQgghRcAYJiHlDGOYhJQWCiYhZQJjmISUFrpkCSkj\nGMMkZFpgDJMQQggpAsYwCSlnGMMkpLTQt0PIDObIkSPo6enBpk2bMDk5iVQqha1bt2LTpk0YGRlB\nR0cHbrzxxlIvk5DTAgomITOYp59+Gtu2bbOee+SRRwAAkUgEDQ0NpVgWIacldMkSMoNZvXo1Wltb\nC7528cUX48orr5zmFRFy+kLBJGQG09raihtuuAGOY+cgxGIxvPWtb817nhBy6qBgEjLDaWpqQkdH\nh/Wc7/uIRCIlWhEhpyeMYRJSBriu/m4bj8exZs0axOPxEq6IkNMPWpiElAHvete7sGTJEgAqrrly\n5coSr4iQ0w8KJiFlQE1NDS677DI4joOFCxeWejmEnJZQMAkpE2pra+H7Purr60u9FEJOS9gaj5Ay\nYmJiAolEotTLIOTNDnvJEkIIIUXAXrKEEELI7woFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUUQ/S2vO9OyCkIIIWSGQwuTEEIIKQIKJiGEEFIEFExCCCGkCCiYhBBCSBFQ\nMAkhhJAioGASQgghRfD/AeARpSuDbbYzAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Then make unit vectors from those points and draw a transparent sphere\n", "fig = plt.figure(figsize=(8,8))\n", "ax = fig.gca(projection='3d')\n", "ax.set_aspect('equal')\n", "\n", "# New points\n", "for i in range(0,n):\n", " mag = (x[i]**2 + y[i]**2+ z[i]**2)**0.5\n", " ax.plot([0,x[i]/mag],[0,y[i]/mag], [0,z[i]/mag], color='r', marker='o', markersize=7)\n", "\n", " \n", "# Draw sphere \n", "u = np.linspace(0, 2 * np.pi, 500)\n", "v = np.linspace(0, np.pi, 500)\n", "\n", "x1 = 1 * np.outer(np.cos(u), np.sin(v))\n", "y1 = 1 * np.outer(np.sin(u), np.sin(v))\n", "z1 = 1 * np.outer(np.ones(np.size(u)), np.cos(v))\n", "ax.plot_surface(x1, y1, z1, color='y', alpha=0.2, linewidth=0)\n", "\n", "# Draw axis through the origin\n", "m = 2.5\n", "\n", "xa = Arrow3D([-m,m], [0,0], [0,0], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", "ya = Arrow3D([0,0], [-m,m], [0,0], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", "za = Arrow3D([0,0], [0,0], [-m,m], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", "ax.add_artist(xa)\n", "ax.add_artist(ya)\n", "ax.add_artist(za)\n", "\n", "ax.set_xlim(-1.5,1.5)\n", "ax.set_ylim(-1.5,1.5)\n", "ax.set_zlim(-1.5,1.5)\n", "\n", "ax.set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 8.16 Left - PCA" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "(-3, 22)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "numPoints = 50\n", "x = np.random.uniform(3,12,numPoints) +3\n", "y = x + np.random.uniform(-3,3,numPoints)+3\n", "\n", "# Use PCA function\n", "X = np.array([[xi,yi] for xi,yi in zip(x,y)])\n", "pca = PCA(n_components=2)\n", "pca_result = pca.fit_transform(X)\n", "\n", "pts =[abs(d[1]) for d in pca_result]\n", "min_index = np.argmin(pts)\n", "\n", "x_pca = np.linspace(0,18,30)\n", "r = np.matmul([-5,0],pca.components_)\n", "centroid_orig = [sum(x)/float(len(x)), sum(y)/float(len(x))]\n", "centroid_pca = [sum(pca_result[:,0])/float(len(x)), sum(pca_result[:,1])/float(len(x))]\n", "\n", "# Plot points and lines\n", "plt.plot(x,y,'ko', label='orig points', markersize = 4)\n", "plt.plot(pca_result[:,0], pca_result[:,1],'ro', label='pca 2d points', markersize=4)\n", "plt.plot([centroid_orig[0], centroid_pca[0]], [centroid_orig[1], centroid_pca[1]],'bo', label='centroids')\n", "plt.plot([-9,9],[0,0],'k-', label='PCA axis')\n", "\n", "# Line through orig points\n", "line_xrange = np.linspace(5,16,20)\n", "line_slope = (centroid_orig[1] - y[min_index])/(centroid_orig[0]- x[min_index])\n", "b = -centroid_orig[0]*line_slope + centroid_orig[1]\n", "plt.plot(line_xrange, line_slope*line_xrange + b, 'k-')\n", "\n", "plt.legend(loc='upper left')\n", "plt.xlim(-10,17)\n", "plt.ylim(-3,22)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Figure 8.16 Right - PCA" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(6, 21)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n3HrBfQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(5,5))\n", "\n", "#Draw just the original points, the line and their projection to the line.\n", "plt.plot(x,y,'ko', markersize=4)\n", "plt.plot(line_xrange, line_slope*line_xrange + b, 'k-')\n", "for xi,yi in zip(x,y):\n", " #Find the new b of the perpendicular line\n", " bi = 1/line_slope * xi + yi\n", " #Solve for x and y\n", " new_x = (bi-b)/(line_slope+(1/line_slope))\n", " new_y = line_slope*new_x + b\n", " plt.plot([new_x], [new_y], 'ro', markersize=3.5)\n", " plt.plot([xi, new_x], [yi, new_y], 'k--')\n", " \n", "plt.xlim(3,18)\n", "plt.ylim(6,21)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 0 }