{ "metadata": { "name": "", "signature": "sha256:b2b9606a257cdcea1307ea54b4daf2076d4b95e22df7028015604c57739645b3" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "*Sebastian Raschka* \n", "last modified: 03/31/2014" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "I am really looking forward to your comments and suggestions to improve and extend this tutorial! Just send me a quick note \n", "via Twitter: [@rasbt](https://twitter.com/rasbt) \n", "or Email: [bluewoodtree@gmail.com](mailto:bluewoodtree@gmail.com)\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem Category\n", "- Statistical Pattern Recognition \n", "- Supervised Learning \n", "- Parametric Learning \n", "- Bayes Decision Theory \n", "- Univariate data \n", "- 2-class problem\n", "- different variances\n", "- Gaussian model (2 parameters)\n", "- No Risk function\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "# Sections\n", "\n", "\n", "

Given information
\n", "• Deriving the decision boundary
\n", "• Plotting the class conditional densities, posterior probabilities, and decision boundary
\n", "• Classifying some random example data
\n", "• Calculating the empirical error rate
\n", "\n", " \n", "\n", " \n", " \n", "\n", "\n", "\n", "


" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Given information:\n", "\n", "[back to top]
\n", "\n", "\n", "\n", "####model: continuous univariate normal (Gaussian) model for the class-conditional densities\n", "\n", "\n", "$ p(x | \\omega_j) \\sim N(\\mu|\\sigma^2) $\n", "\n", "$ p(x | \\omega_j) \\sim \\frac{1}{\\sqrt{2\\pi\\sigma^2}} \\exp{ \\bigg[-\\frac{1}{2}\\bigg( \\frac{x-\\mu}{\\sigma}\\bigg)^2 \\bigg] } $\n", "\n", "\n", "####Prior probabilities:\n", "\n", "\n", "$ P(\\omega_1) = P(\\omega_2) = 0.5 $\n", "\n", "#### Variances of the sample distributions\n", "\n", "$ \\sigma_1^2 = 4, \\quad \\sigma_2^2 = 1 $\n", "\n", "#### Means of the sample distributions\n", "\n", "$ \\mu_1 = 4, \\quad \\mu_2 = 10 $\n", "\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Deriving the decision boundary\n", "[back to top]
\n", "### Bayes' Rule:\n", "\n", "\n", "$ P(\\omega_j|x) = \\frac{p(x|\\omega_j) * P(\\omega_j)}{p(x)} $\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Bayes' Decision Rule:\n", "\n", "Decide $ \\omega_1 $ if $ P(\\omega_1|x) > P(\\omega_2|x) $ else decide $ \\omega_2 $.\n", "
\n", "\n", "\n", "\\begin{equation}\n", "\\begin{aligned}\n", "&\\Rightarrow \\frac{p(x|\\omega_1) * P(\\omega_1)}{p(x)} > \\frac{p(x|\\omega_2) * P(\\omega_2)}{p(x)}\n", "\\end{aligned}\n", "\\end{equation} " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Bayes' Decision Rule:\n", "\n", "Decide $ \\omega_1 $ if $ P(\\omega_1|x) > P(\\omega_2|x) $ else decide $ \\omega_2 $.\n", "
\n", "\n", "\n", "\n", "$ \\Rightarrow \\frac{p(x|\\omega_1) * P(\\omega_1)}{p(x)} > \\frac{p(x|\\omega_2) * P(\\omega_2)}{p(x)} $\n", "\n", "\n", "We can drop $ p(x) $ since it is just a scale factor.\n", "\n", "$ \\Rightarrow P(x|\\omega_1) * P(\\omega_1) > p(x|\\omega_2) * P(\\omega_2) $\n", "\n", "$ \\Rightarrow \\frac{p(x|\\omega_1)}{p(x|\\omega_2)} > \\frac{P(\\omega_2)}{P(\\omega_1)} $\n", "\n", "$ \\Rightarrow \\frac{p(x|\\omega_1)}{p(x|\\omega_2)} > \\frac{0.5}{0.5} $\n", "\n", "$ \\Rightarrow \\frac{p(x|\\omega_1)}{p(x|\\omega_2)} > 1 $\n", "\n", "$ \\Rightarrow \\frac{1}{\\sqrt{2\\pi\\sigma_1^2}} \\exp{ \\bigg[-\\frac{1}{2}\\bigg( \\frac{x-\\mu_1}{\\sigma_1}\\bigg)^2 \\bigg] } > \\frac{1}{\\sqrt{2\\pi\\sigma_2^2}} \\exp{ \\bigg[-\\frac{1}{2}\\bigg( \\frac{x-\\mu_2}{\\sigma_2}\\bigg)^2 \\bigg] } \\quad \\bigg| \\quad ln $\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$ \\Rightarrow ln(1) - ln\\bigg({\\sqrt{2\\pi\\sigma_1^2}}\\bigg) -\\frac{1}{2}\\bigg( \\frac{x-\\mu_1}{\\sigma_1}\\bigg)^2 > ln(1) - ln\\bigg({{\\sqrt{2\\pi\\sigma_2^2}}}\\bigg) -\\frac{1}{2}\\bigg( \\frac{x-\\mu_2}{\\sigma_2}\\bigg)^2 \\quad \\bigg| \\quad \\sigma_1^2 = 4, \\quad \\sigma_2^2 = 1,\\quad \\mu_1 = 4, \\quad \\mu_2 = 10 $\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$ \\Rightarrow -ln({\\sqrt{2\\pi4}}) -\\frac{1}{2}\\bigg( \\frac{x-4}{2}\\bigg)^2 > -ln({{\\sqrt{2\\pi}}}) -\\frac{1}{2}(x-10)^2 $\n", "\n", "$ \\Rightarrow -\\frac{1}{2} ln({2\\pi}) - ln(2) -\\frac{1}{8} (x-4)^2 > -\\frac{1}{2}ln(2\\pi) -\\frac{1}{2}(x-10)^2 \\quad \\bigg| \\; \\times\\; 2 $\n", "\n", "$ \\Rightarrow -ln({2\\pi}) - 2ln(2) - \\frac{1}{4}(x-4)^2 > -ln(2\\pi) - (x-10)^2 \\quad \\bigg| \\; + ln(2\\pi) $\n", "\n", "$ \\Rightarrow -4ln(4) - (x-4)^2 >- 4(x-10)^2 $\n", "\n", "$ \\Rightarrow -ln(4) - \\frac{1}{4}(x-4)^2 > -(x-10)^2 \\quad \\big| \\; \\times \\; 4 $\n", "\n", "$ \\Rightarrow -8ln(2) - x^2 + 8x - 16 > - 4x^2 + 80x - 400 $\n", "\n", "$ \\Rightarrow 3x^2 - 72x + 384 -8ln(2) > 0 $\n", "\n", "$ \\Rightarrow x < 7.775 \\quad and \\quad x > 16.225 $" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Plotting the class conditional densities, posterior probabilities, and decision boundary\n", "\n", "[back to top]
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "\n", "def pdf(x, mu, sigma):\n", " \"\"\"\n", " Calculates the normal distribution's probability density \n", " function (PDF). \n", " \n", " \"\"\"\n", " term1 = 1.0 / ( math.sqrt(2*np.pi) * sigma )\n", " term2 = np.exp( -0.5 * ( (x-mu)/sigma )**2 )\n", " return term1 * term2\n", "\n", "# generating some sample data\n", "x = np.arange(-100, 100, 0.05)\n", "\n", "# probability density functions\n", "pdf1 = pdf(x, mu=4, sigma=4)\n", "pdf2 = pdf(x, mu=10, sigma=1)\n", "\n", "# Class conditional densities (likelihoods)\n", "plt.plot(x, pdf1)\n", "plt.plot(x, pdf2)\n", "plt.title('Class conditional densities (likelihoods)')\n", "plt.ylabel('p(x)')\n", "plt.xlabel('random variable x')\n", "plt.legend(['p(x|w_1) ~ N(4,4)', 'p(x|w_2) ~ N(10,1)'], loc='upper left')\n", "plt.ylim([0,0.5])\n", "plt.xlim([-15,20])\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEZCAYAAACXRVJOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8TNf7B/DPZN9XZJvESEISiUSI2Am1RRWliPrVrrG1\npZuqIm1VaYu2QtEvag1qCyUpRZQqoXaxZt/Jvsg6c35/3OY2I9tMMlvkeb9e02bm3nvuM3fGfeac\ne+45AsYYAyGEkBZPS90BEEII0QyUEAghhACghEAIIeRflBAIIYQAoIRACCHkX5QQCCGEAKCEoFFC\nQkLw1ltvqTsMhfrll1/Qt29f/rmpqSkSEhLqXN/Lywt//vmnUmNKSEiAlpYWJBKJTOtPnToVS5cu\nVWpMDb3v4cOHY9euXQrf7+bNm7Fw4UIANY9L9X2++DnKqr7PXxXHFQCioqLg6OjY4HqhoaH45JNP\nlB6PJtNRdwAtzd69e7F27Vo8fPgQpqam6Ny5M5YsWYLevXtDIBCoOzylKyws5P+eOnUqHB0d8eWX\nX/Kv3b17Vx1h1UsgECj9s6n+vkNCQhAbGyuVAE6ePKnwfZaXl+Orr77ClStXal2ujH1W//xVcVzl\nMWvWLLi6uuKDDz5A69at1R2OWlANQYXWrl2LhQsX4rPPPsPTp0+RnJyMefPm4fjx4wAAukdQc72M\nn014eDg8PDxgZ2en7lA0gr6+PgIDA7Fz5051h6I2lBBUJD8/H8uXL8fGjRsxevRoGBoaQltbG6++\n+ipWrVpV6zbjxo2DnZ0dLCws0L9/f8TExPDLTp48CU9PT5iZmUEoFGLNmjUAgKysLIwYMQKWlpaw\ntrZGv3796jyZ3bt3D4MHD4a1tTVsbW3x9ddfAwDKysqwYMECODg4wMHBAQsXLkR5eTkArvotFAqx\ndu1a2NjYwN7eHr/88gtfZnZ2NkaOHAlzc3N0794dsbGxUvvU0tJCbGwstmzZgr179+Kbb76Bqakp\nRo0aBQAQiUQ4c+ZMk+M4ceIEfH19YW5uDicnJ3z++eeyflS4ceMGunTpAjMzMwQFBaG0tFRq+W+/\n/YbOnTvD0tISvXv3xp07d/hlIpEIa9asgY+PDywsLBAUFISysrI6P5vq2505cwaRkZH4+uuvsX//\nfpiamsLX1xcAEBAQgK1bt/Lrb9u2DR07doSVlRWGDRuGpKQkftnChQthY2MDc3NzeHt74969e7W+\nz4iICPTv37/O4/DiPqv76KOP0LdvXxQWFiI/Px8zZsyAvb09hEIhli5dWmdznJaWFuLi4vjnOTk5\nGDFiBMzMzNCjRw+pZZcuXUK3bt1gYWEBf39//P333/yytLQ0jBw5EtbW1mjfvj3+97//8ctKSkow\ndepUWFlZwdPTE1evXpWKYfXq1RAKhTAzM4O7uzvOnj0r9Z5PnDhR5zF56TGiEhEREUxHR4eJxeI6\n11m+fDn7v//7P/759u3bWVFRESsvL2cLFixgnTt35pfZ2tqyixcvMsYYy8vLY9evX2eMMfbJJ5+w\n2bNns8rKSlZZWcmv86KCggJma2vL1q5dy8rKylhhYSG7cuUKY4yxpUuXsp49e7Jnz56xZ8+esV69\nerGlS5cyxhg7d+4c09HRYcuXL2eVlZXs5MmTzMjIiOXl5THGGJswYQKbMGECe/78Obt79y5zcHBg\nffv25fcrEAhYbGwsY4yxqVOn8uVWEYlE7MyZM02OIyoqit29e5cxxtjt27eZjY0NO3r0KGOMsfj4\neCYQCGr9LMrKypiTkxP7/vvvWWVlJTt48CDT1dXl93v9+nXWpk0bFh0dzSQSCduxYwcTiUSsvLyc\nj7979+4sPT2d5eTkMA8PD7Zp06YGP5vq7zskJIS99dZbUnEFBASwrVu3MsYYO3r0KHN1dWUPHjxg\nYrGYrVixgvXq1YsxxlhkZCTr2rUry8/PZ4wx9uDBA5aenl7rd6Bbt27s4MGD/PMXj0v1fW7fvp31\n6dOHSSQSNnPmTDZs2DBWUlLCGGNs9OjRbPbs2ez58+fs6dOnzN/fn23evFlqu9o+/ylTpjBra2t2\n9epVVllZySZNmsSCgoIYY4xlZ2czCwsLtnv3biYWi1lYWBiztLRkOTk5jDHG+vbty+bNm8fKysrY\nzZs3WevWrdnZs2cZY4wtWrSI9evXj+Xm5rLk5GTm6enJHB0d+ePh6OjIH5PExEQ+HsYY++eff5iV\nlVWtx6sloBqCimRnZ6NVq1bQ0pL9kE+dOhXGxsbQ1dXF8uXLcevWLb4NVk9PD/fu3UNBQQHMzc35\nX5J6enpIT09HQkICtLW10bt371rL/u2332Bvb4+FCxdCT08PJiYm8Pf3B8Bd51i2bBlatWqFVq1a\nYfny5VLt2bq6uli2bBm0tbURGBgIExMTPHz4EGKxGIcPH8YXX3wBQ0NDeHp6YsqUKfU2t9S3rLFx\nAED//v3h6ekJAOjUqROCgoJw/vz5Bo/55cuXUVlZiffeew/a2toYO3YsunXrxi/fsmULgoOD0a1b\nNwgEAkyePBn6+vq4fPkyv867774LW1tbWFpa4rXXXsPNmzcByP7ZMMbqPS6bNm3C4sWL4ebmBi0t\nLSxevBg3b95EUlIS9PT0UFhYiPv370MikcDNzQ22tra1lpOXlwdTU9MGj0mViooKBAUFIS8vD8eP\nH4eBgQEyMzMRERGBdevWwdDQEK1bt8aCBQuwb9++BssTCAQYM2YM/Pz8oK2tjUmTJvHH6sSJE3Bz\nc8OkSZOgpaWFoKAguLu749ixY0hOTsalS5ewevVq6OnpwcfHBzNnzuSben799VcsWbIEFhYWEAqF\neO+99/jjqa2tjbKyMty7dw8VFRVwcnKCs7MzH5OpqSny8/NlPiYvG0oIKmJtbY2srCyZe7aIxWJ8\n8skncHV1hbm5Odq1aweBQICsrCwAwKFDh3Dy5EmIRCIEBATwJ6SPPvoIrq6uGDJkCFxcXLB69epa\ny09OTpb6h1BdWloa2rZtyz93cnJCWlqa1HupntiMjIxQVFSEZ8+eobKyUqpHh5OTk0zvV5FxAMCV\nK1cwYMAAtGnTBhYWFti8eTOys7Nl2qeDg4PUa9VjSExMxJo1a2Bpack/UlJSpOKqfgI2NDTkY5L1\ns2lIYmIi3nvvPX7/1tbWfOwDBgzA/PnzMW/ePNjY2CA4OFjqQm51lpaWKCgokHm/T548wfHjx7Fs\n2TLo6OjwsVRUVMDOzo6PZ/bs2Xj27JlMZdrY2PB/Vz9WaWlpNb47bdu2RVpaGtLT02FlZQVjY2N+\nWfXvRlpaWp3fQVdXV3z//fcICQmBjY0NJk6ciPT0dH55YWEhzM3NZT0kLx1KCCrSs2dP6Ovr48iR\nIzKtv3fvXhw7dgxnzpxBfn4+4uPjpX45+vn54ejRo3j27BlGjx6N8ePHAwBMTEzw3XffITY2FseO\nHcPatWul2kirODk5SbXXVmdvby/VNTQpKQn29vYNxty6dWvo6OhItWdX//tFDfUwaWwcAPDmm29i\n9OjRSElJQV5eHmbPni1TMrazs0NqaqrUa4mJifzfTk5OWLJkCXJzc/lHUVERJkyYUGt51d9jbZ/N\nuXPn6t2mNk5OTtiyZYtUDMXFxejRowcA4J133sG1a9cQExODR48e4dtvv621HG9vbzx69KjefVXn\n4eGBbdu2ITAwkN/O0dER+vr6yM7O5mPJz8+Xuq7SGA4ODlLHHeA+BwcHB9jb2yMnJ4dPHgD33ahK\n5HZ2dvV+BydOnIgLFy4gMTERAoEAixYt4pfdv38fnTt3blLszRklBBUxNzfHF198gXnz5iE8PBzP\nnz9HRUUFIiIipL6QVYqKiqCvrw8rKysUFxfj008/5ZdVVFRgz549yM/Ph7a2NkxNTaGtrQ2Aawp6\n8uQJGGMwMzODtrY2v6y6ESNGID09HT/88APKyspQWFiI6OhoANw/mBUrViArKwtZWVn44osvZLo/\nQltbG2PGjEFISAhKSkoQExODHTt21Lm+jY1NnUmpKXEA3PGztLSEnp4eoqOjsXfvXpm6OPbq1Qs6\nOjr48ccfUVFRgcOHD0tdlJw1axY2bdqE6OhoMMZQXFyMEydOSJ2cqqve9FPbZ1NbE6KtrS0SEhLq\nbDaaPXs2Vq5cyXcyyM/Px6+//goAuHbtGq5cuYKKigoYGRnBwMCg1s8f4O4zkKUZrbqgoCCsXLkS\ngwYNQlxcHOzs7DBkyBC8//77KCwshEQiQWxsrEz3ktTXLFaVdMLCwlBZWYn9+/fjwYMHGDFiBIRC\nIXr16oXFixejrKwMt2/fxrZt2/B///d/AIDx48fj66+/Rl5eHlJSUrB+/Xq+3EePHuHs2bMoKyuD\nvr5+jeNz/vx5BAYGynVMXiaUEFTo/fffx9q1a7FixQq0adMGTk5O2LhxI15//XUA0v2yJ0+ejLZt\n28LBwQFeXl7o2bOn1Alt9+7daNeuHczNzbFlyxbs2bMHAFetHzx4MExNTdGrVy/Mmzev1p4kJiYm\nOH36NI4fPw47Ozt06NABUVFRAIDPPvsMfn5+8Pb2hre3N/z8/PDZZ5/x29Z3Yg0NDUVRURFsbW0x\nffp0TJ8+XWr96n/PmDEDMTExsLS0xJgxY2qU1ZQ4Nm7ciGXLlsHMzAxffvlljV/wdW2rq6uLw4cP\n45dffoG1tTUOHDiAsWPH8su7du2Kn3/+GfPnz4eVlRXat2+PnTt31lle9c9U1s9m3LhxALgmMT8/\nvxrLR48ejUWLFiEoKAjm5ubo1KkTfv/9dwBAQUEB3n77bVhZWUEkEqFVq1b46KOPao1txIgRePDg\ngVSTiSzvY/LkyVi2bBkGDhyIpKQk7Ny5E+Xl5Xyvp3HjxiEjI6PGdi+WX9t9CFXPra2t8dtvv2HN\nmjVo1aoVvvvuO/z222+wsrICAISFhSEhIQH29vYYM2YMvvjiCwwcOBAAsHz5crRt2xbt2rXDsGHD\nMHnyZL7csrIyLF68GK1bt4adnR2ysrL43nWlpaWIiIjAlClTaj0GLYGA1ZemmygyMhILFiyAWCzG\nzJkza/wSjoqKwqhRo/i27LFjx0r9gyeEKNfPP/+MmJgYrFu3Tt2hqF1oaChSUlLq7AbeEigtIYjF\nYri5ueGPP/6Ag4MDunXrhrCwMHh4ePDrREVFYe3atTh27JgyQiCEECIHpTUZRUdHw9XVFSKRCLq6\nuggKCkJ4eHiN9ZRYQSGEECIHpSWE1NRUqa5fQqGwRu8NgUCAS5cuwcfHB8OHD5e6E5cQQohqKW1w\nO1l6dHTp0gXJyckwMjJCREQERo8eLVc3OEIIIYqjtITg4OCA5ORk/nlycjKEQqHUOtXvkgwMDMTc\nuXORk5PD9ySo4urqWmNMHEIIIfVzcXHBkydPZN9AWWNiVFRUMGdnZxYfH8/KysqYj48Pi4mJkVon\nIyODSSQSxhhjV65cYW3btq21LCWGqRLLly9XdwhN0pzjb86xM0bxq1tzj1/ec6fSagg6OjoIDQ3F\n0KFDIRaLMWPGDHh4eGDz5s0AgODgYBw8eBA//fQTdHR0YGRkJNP4J4QQQpRDqRPkBAYG1rjrLzg4\nmP973rx5mDdvnjJDIIQQIiO6U1kFAgIC1B1CkzTn+Jtz7ADFr27NPX55KfVOZUURCAR0vwIhhMhJ\n3nNns55T2crKCrm5ueoOg7QQlpaWyMnJUXcYhChNs64hUM2BqBJ930hzI+93lq4hEEIIAUAJgRBC\nyL8oIRBCCAFACUFtysrK4OnpiczMzAbXTUhIQLt27VQQFReXh4cHP3ezOmzevBkLFy5UeLmZmZno\n2LEjysvLFV42IS8DSghqsmXLFvTv319qknFVOXfuHAYMGAALC4saiUZfXx/Tp09XyiQhU6dOhZaW\nltSUlE+ePJGaRrK8vBxfffUVPv744xrb79y5E1paWti6dWuD+8rJyUHr1q3Rt29f/jUbGxsMGDAA\nW7ZsaeI7IeTlRAlBTTZv3izz/MCKZmJigpkzZ9Y5+frEiROxY8cOVFRUKHzfVlZW9c6KFx4eDg8P\nD9jZ2Um9npubi5UrV8LLy0umkXQXLVqEjh071lh30qRJ/PAphBBplBCURCQSYdWqVfD09ISVlRWm\nT5+OsrIyAEBSUhLi4uLQvXt3ANyvYl9fX4SGhgLgZpvr3bs3VqxYUaPc0tJSGBoa8v3hv/rqK+jq\n6vKTvC9durTB5pZu3bph0qRJdTZDCYVCWFpa4u+//27cm6+DQCDAlClTcPv27TonYY+IiKh1nuHF\nixfjvffeg7W1dYP7uXTpEu7du4dp06bV6HLn7++PuLg4qZF4CSEcSghKtHfvXpw6dQqxsbF49OgR\nf4K/c+cOnJ2d+aYSPT097N69G8uWLcODBw+watUqMMawZMmSGmUaGBjA398fUVFRAIDz589DJBLh\n4sWL/HNF3G7v4eGBW7duNbmcFxkZGeHTTz+t9b0BwN27d+Hm5ib1WnR0NK5fv47Zs2c3WL5YLMY7\n77yDDRs21LpcR0cHrq6uuHnzpvzBE/KSe6kTgkCgmEfj9i3A/Pnz4eDgAEtLSyxZsgRhYWEAgLy8\nPKm5IADA09MTn332GUaNGoW1a9di165ddTaN9O/fH+fPn4dYLMadO3fw7rvv4vz58ygtLcW1a9fQ\nr1+/xgVdjampKfLy8mpdlpeXh+DgYDg5OcHDwwMrVqxAfHw8kpKSMGvWLCQlJdVZrkAgQHBwMJKS\nkhAZGVlr2dWPjVgsxrx58xAaGipTU9GPP/6IHj16wNfXt973lp+f32BZhLQ0L3VCYEwxj8aqPoWo\nk5MT0tLSAHBDIBQWFtZYf/LkyUhKSsLw4cPh4uJSZ7n9+/dHVFQUrl+/jk6dOmHQoEE4f/48rly5\nAldXV1haWjY+6H8VFhbWWc7vv/8OPz8/xMXF4ejRo8jOzkafPn0QGBgIX19fODk51Vu2np4eli5d\niqVLl9Y4yVtaWqKgoIB/vnHjRnh7e8Pf359/ra47L9PS0rB+/fpam9pefG8WFhb1rkNIS9SsxzLS\ndNV/KSclJcHe3h4A4O3tjfj4eEgkEqkeNnPnzsWIESMQGRmJv/76C71796613J49e+Lhw4c4cuQI\nAgIC4OHhgaSkJJw8eVJhozPev38fH374Ya3Lxo8fz5/I3dzcsG7dOqxbt06mcqtO5lOnTsXq1atx\n6NAhqeXe3t5S06iePXsW58+fx8mTJwFwvYdu3LiBW7du4ccff5TaNjo6Gunp6ejYsSMAoKSkBCUl\nJbC3t0dqaioEAgEqKyvx5MkT+Pj4yBQvIS2KwqbmUaK6wtTk8Nu2bcu8vb1ZSkoKy87OZr1792ZL\nlizhl3t7e7NLly7xz3fu3MlcXV1ZcXEx27t3L3NxcWFFRUWMMcbi4+OZSCSSKr9Xr17MzMyMXbx4\nkTHG2Lhx45iZmRk7ePBgg7FJJBJWUlLCTp48ydq2bctKS0tZWVkZvzwlJYVZW1uz8vLyJh2DF02Z\nMoV99tln/PM9e/YwKysrJhAI+NcOHz7MhgwZwj/Py8tjmZmZLDMzk2VkZLBevXqxdevWsYKCAsYY\nY+fOneO3Lysr49fNzMxkP/zwA+vevTvLzMzky/vrr79Yx44dGxW/Jn/fCKmNvN/Zl7rJSJ0EAgHe\nfPNNDBkyBC4uLmjfvr1Ud8vg4GDs2rULAFd7WLhwIXbu3AkjIyNMnDgRfn5+eP/99+ssv3///qis\nrOSbUvr374+ioiKZrh+cP38eRkZGePXVV5GcnAxDQ0MMGzaMX753715MnToVurq6jX37tRIIBFJN\nRBMnToS9vb3UayNGjMCDBw+Qnp4OADA3N0ebNm3Qpk0b2NjYQE9PD2ZmZvx1huTkZL4mpaenx6/b\npk0bmJub869V2bNnD+bMmaPQ90XIS0NJiUmh6gpTk8MXiUTszJkzdS4vKytjHTt2ZBkZGQ2WVVsN\nQVlKS0uZu7s7e/bsmUr2V5stW7awBQsWyLTuzJkz2alTp2RaNzMzk3l4eEjVhuShyd83Qmoj73eW\nhr9Wknbt2mHr1q0YOHBgk8tKSEjAgAEDEB8fr4DISGNp8veNkNrQ8NcvKVm6XFbn6ekJU1PTGo+q\nrq+EEPIiqiEQIiP6vpHmhmoIhBBCGoUSAiGEEACUEAghhPyLEgIhhBAAlBAIIYT8ixKCmtAUmnVT\n1hSaDQkNDcUnn3yi8v0SoikoIaiJOqfQ/Pbbb9GpUyeYmZnB2dkZ3333Hb9ME6fQfPvtt+Hu7g5t\nbW3s2LGjRrnr1q2DnZ0dzM3NMWPGjHrnTK6vrFmzZmHPnj149uxZU94mIc0WJQQ1UecUmgCwa9cu\n5OXlITIyEqGhodi/fz+/TNOm0OzcuTM2btyILl261LhB7/fff8fq1atx9uxZJCYmIi4uDsuXL6+z\n/PrK0tfXR2BgIHbu3NnId0dI80YJQUk0eQrNjz76CJ07d4aWlhY6dOiAUaNG4a+//uKXa9oUmnPn\nzsXAgQNhYGBQY/0dO3Zg5syZ8PDwgIWFBZYtW4ZffvmlzhjqKwsAAgICcOLECdnfFCEvEUoIStQc\nptBkjOHPP/+El5eX1OuaNIVmfWJiYqTmNvD29kZmZiZyc3MbFZ+7u7tS3jchzcFLPUGO4PNGzn/5\nArZc/uEKqk+hCQBLlizBO++8gy+//LLBKTSzsrIQHR3d4BSao0aNwp07d/Dpp5/yiUDeKTRDQkIA\nANOmTZN6vaEpNBctWoSIiAgYGxtj0qRJmDRpErS1tfHll19i6dKldc6aVjWF5nfffYfIyEi4urrW\nKPvFY1OfoqIimJub88/NzMwA1D/jW31oek3Skr3UCaExJ3JFaswUmkuWLMEbb7zR4BSa77//vtQU\nmjNmzJB7Cs3Q0FDs3r0bFy5cqDH3gSxTaG7YsAGxsbHYtGkT+vTpAwsLC8ybN0+uKTT37dsntezF\nKTQbYmJiIrV+1clcnqRSXWFhoVSCIaQloSYjJZJlCs3qXpxCsy6KmEJz27Zt+Oabb3DmzBk+ruru\n379f5zST48ePx6xZs6Cjo8NPoZmamop79+5h7ty59e6XVZtCMy8vr8EpNBvi6emJmzdv8s9v3boF\nGxubRs8rff/+fXTu3LlR2xLS3FFCUBLGGDZu3IjU1FTk5OTgq6++QlBQEADuoq2rqyuuXLnCr79r\n1y7cuHEDO3bswI8//ogpU6aguLi41rKNjIzQtWtXbNiwgb8A26tXL2zatKnGBdna7NmzB0uWLMGp\nU6cgEolqLK+KuUePHrVuL+9Q3FWqj7qoo6ODzz//HKtXr5ZaZ/jw4Th//rzUaxUVFSgtLYVEIkF5\neTlKS0v5siZPnoytW7fi/v37yM3NxZdffinV/DV16lSp5/WVBXDXYAIDAxv1/ghp9hQxK4+y1RWm\nJocvEonYqlWrWMeOHZmFhQWbOnUqKykp4Zdv2LCBzZkzhzHGWGJiIrO2tpaaY3nChAns7bffZozV\nPmPa4sWLmZGRET/vcWhoKNPS0mJPnz5tMLZ27doxPT09ZmJiwj+qYmGMsW+++YZ98MEHjX/zdZg6\ndSpbunQp/1wikTAvLy+mpaXFv1ZeXs6cnJxYWloa/1r//v2ZQCBgWlpaTCAQMIFAwM6fP88vX7t2\nLbOxsWFmZmZs+vTpUnNBv/LKK+x///ufTGWVlJQwoVBY5zHU5O8bIbWR9zur1G94REQEc3NzY66u\nrmzVqlV1rhcdHc20tbXZoUOHal3eXBMCTaHZOPJMoVmfqmNcWVkp0/rr169nixYtqnO5Jn/fCKmN\nvN9ZpU2QIxaL4ebmhj/++AMODg7o1q0bwsLC4OHhUWO9wYMHw8jICNOmTcPYsWNrlNUcJ8ihKTRf\nPpr8fSOkNhozQU50dDRcXV0hEomgq6uLoKAghIeH11hv/fr1eOONN9C6dWtlhfJSoCk0CSHKprRu\np6mpqVLdLoVCodRF1Kp1wsPDcfbsWVy9erXRFys1kSJ/zYtEIsTFxcm1zb179xS2f0JIy6C0hCDL\nyX3BggVYtWoVX62pr2pTdQMVwA0vIM/duIQQ1WKMYfGZxXha/BQbhm+Aoa6hukNqEaKiovhRDBpD\nadcQLl++jJCQEERGRgIAvv76a2hpaWHRokX8Os7OznwSyMrKgpGREX7++WeMHDlSOshmeA2BvHzo\n+ya7nbd24ocrP8De1B7ebbzx1StfqTukFkne76zSEkJlZSXc3Nz4G5/8/f1rvahcZdq0aXjttdcw\nZsyYmkFSQiAagL5vsuu6pStWDlyJ9tbt4f+zP1LfT4W+jr66w2px5P3OKq3JSEdHB6GhoRg6dCjE\nYjFmzJgBDw8PbN68GQAQHBzc5H1YWlq+VNcdiGZr7N3PLU1aYRoS8hIwyHkQtLW04d7KHecSzmGY\n6zB1h0YaoLQagiLRLzNCmo8dN3fgxOMTODDuAADg6wtf42nxU6wbtk7NkbU8GtPtlBDSMp2KO4Uh\nLkP4570ce+HvFMXOrUGUgxICIUShLiReQIAogH/uZ++HO0/voLSyVH1BEZlQQiCEKEz282zkl+XD\n2dKZf81YzxjurdxxPf26GiMjsqCEQAhRmFuZt+Bj4wMtgfSppYdDD1xJuVLHVkRTUEIghCjMzYyb\n6Gxbcz6JTjadEPMsRg0REXlQQiCEKExdCaFj646IyaKEoOkoIRBCFObO0zvo1KZTjdc7tu6ImGcx\n1H1cw1FCIIQoBGMMj7Mfo4N1hxrLWhm1gq6WLjKKMtQQGZEVJQRCiEKkF6XDSNcI5gbmtS6vqiUQ\nzUUJgRCiEHXVDqq4t3LH/az7KoyIyIsSAiFEIR7nPEZ76/Z1LnexdEF8Ls36p8koIRBCFOJR9iO0\nt6o7IThbOiMuT76JnohqUUIghCjE45zHDSeEXEoImowSAiFEIRLyEqSGrHhRO8t2iMuNo66nGowS\nAiFEIZLyk+Bk7lTncgsDC+hq6SK7JFuFURF5UEIghDRZUXkRnlc8RyujVvWuR81Gmo0SAiGkyZLz\nk+Fk7tTgDIZVzUZEM1FCIIQ0WUPNRVWczJyQnJ+sgohIY1BCIIQ0WWJ+IpzMGk4IQjMhUgpSVBAR\naQxKCITVkGGvAAAgAElEQVSQJkvKT0Jbi7YNrudo7oiUQkoImooSAiGkyWRtMhKaCanJSINRQiCE\nNJk8CYGajDQXJQRCSJPJmhBsTWyR9TwLFeIKFURF5EUJgRDSJGKJGKmFqRCaCRtcV0dLBzYmNkgr\nTFNBZERelBAIIU2SUZQBSwNLGOgYyLQ+NRtpLkoIhJAmSS1MhYOZg8zrU0LQXJQQCCFNklmUCVsT\nW5nXdzRzRHIB9TTSRJQQCCFNklGUAVtj2RMC1RA0FyUEQkiTZBRlyFVDoISguSghEEKaJLM4EzYm\nNjKvLzQTUpORhqKEQAhpEnlrCHYmdsgoylBiRKSxKCEQQppE3oRga2KLjKIMmjlNA1FCIIQ0SWZx\nJmyMZW8yMtQ1hKGOIXJLc5UYFWkMSgiEkCaRt4YAAHam1GykiSghEEIarbi8GJWSSpjpm8m1na2J\nLdIL05UUFWkspSaEyMhIuLu7o3379li9enWN5eHh4fDx8YGvry+6du2Ks2fPKjMcQoiCVTUXNTR1\n5ouqriMQzaKjrILFYjHmz5+PP/74Aw4ODujWrRtGjhwJDw8Pfp1BgwZh1KhRAIA7d+7g9ddfx5Mn\nT5QVEiFEwRrTXARwPY3Si6iGoGmUVkOIjo6Gq6srRCIRdHV1ERQUhPDwcKl1jI2N+b+LiorQqlUr\nZYVDCFGCxiYEqiFoJqUlhNTUVDg6OvLPhUIhUlNTa6x39OhReHh4IDAwED/++KOywiGEKEFmkXw9\njKrQvQiaSWkJQdY2xdGjR+P+/fs4fvw43nrrLWWFQwhRgqbUEKjJSPMo7RqCg4MDkpP/uz09OTkZ\nQmHdE2j07dsXlZWVyM7OhrW1dY3lISEh/N8BAQEICAhQZLiEkEbIKMpAZ9vOcm9HTUbKERUVhaio\nqEZvL2BKul2wsrISbm5uOHPmDOzt7eHv74+wsDCpi8qxsbFwdnaGQCDA9evXMW7cOMTGxtYMUiCg\nuxoJ0UCj943GZJ/JGOMxRq7tsp5nocP6DshZlKOkyAgg/7lTaTUEHR0dhIaGYujQoRCLxZgxYwY8\nPDywefNmAEBwcDAOHTqEnTt3QldXFyYmJti3b5+ywiGEKEFjm4ysDK1QVF6Essoy6OvoKyEy0hhK\nqyEoEtUQCNFMou9FODvlLJwtneXe1nGdI/6a/heczJ2UEBkB5D930p3KhJBGYYzJPY5RdXS3suah\nhEAIaZSCsgLoaOnAWM+44ZVrQReWNQ8lBEJIozT2+kEVultZ81BCIIQ0SlOaiwCqIWgiSgiEkEZR\nRA2BEoJmoYRACGmUpiYEultZ81BCIIQ0SmZRZpMTQmZRpgIjIk1FCYEQ0igZRRlNuoZgY2JDTUYa\nhhICIaRRMoqb1mRkY8wlBLrpVHNQQiCENEpTm4yM9Yyhq62LgrICBUZFmkLmhFBaWoqysjJlxkII\naUYyijJgY9L4JiOAup5qmjoTgkQiweHDhzFu3Dg4ODigXbt2aNu2LRwcHPDGG2/gyJEjVNUjpIWS\nMAmeFj9t0jUEgGs2yiymC8uaos6EEBAQgH/++Qcffvgh4uLikJ6ejoyMDMTFxeHDDz/E1atX0b9/\nf1XGSgjRELkluTDRM2nySKVUQ9AsdQ5/ffr0aejr1/yw9fX10aNHD/To0YOakAhpoRTRXAT8W0Og\nrqcao84aQlUy+OOPP2os27Fjh9Q6hJCWpak3pVWhGoJmafCi8ueff445c+aguLgYGRkZeO2113Ds\n2DFVxEYI0VCZxU3rYVTF1sSWriFokAYTwvnz5+Hs7AwfHx/07dsXEydOxKFDh1QRGyFEQzX1prQq\ndHOaZmkwIeTm5uLq1atwcXGBnp4ekpKSqHcRIS2cIpuMqIagORpMCD179sTQoUPx+++/4+rVq0hN\nTUXv3r1VERshREMpqsmo6m5lohnq7GVU5fTp02jbti0AwMjICOvXr8f58+eVHhghRHMpssnoafFT\nMMYgEAgUEBlpijprCLGxsQDAJ4Pqqu4/qFqHENKyKKrJyEDHAIY6hsgtzVVAVKSp6qwhfPrppygu\nLsbIkSPh5+cHOzs7SCQSZGRk4Nq1azh27BhMTU2xb98+VcZLCNEATR3HqLqqYbCtDK0UUh5pvDoT\nwv79+/HkyRPs27cPS5YsQWJiIgCuxtCnTx+sX78ezs7OKguUEKIZxBIxskuy0dq4tULKq+pp5NHa\nQyHlkcar9xqCq6srPvjgAxgaGuLChQvQ0tJCnz59MGfOHBgaGqoqRkKIBnn2/BksDSyho9XgJUiZ\nUE8jzdHgJzp58mSYmZnhvffeA2MMe/fuxeTJk/Hrr7+qIj5CiIZRZHMRQD2NNEmDCeHevXuIiYnh\nnw8cOBAdO3ZUalCEEM2lqHGMqtBUmpqjwfsQunTpgr///pt/fvnyZXTt2lWpQRFCNJeiehhVsTG2\nQUYx1RA0QYM1hGvXrqF3795wdHSEQCBAUlIS3Nzc0KlTJwgEAty+fVsVcRJCNERmcSZsjRWXEKiG\noDkaTAiRkZGqiIMQ0kxkFGXA3tReYeXReEaao8GEIBKJVBAGIaS5yCjKQBe7Lgorj3oZaQ6Z51Qm\nhBBAceMYVWlj3AZPi59CwiQKK5M0DiUEQohcFDWOURU9bT2Y6ZshpyRHYWWSxqGEQAiRi6J7GQF0\nL4KmoIRACJFZubgchWWFsDayVmi51NNIM1BCIITI7GnxU7QyagUtgWJPHTS3smaghEAIkZkymosA\nrsmIehqpn9ITQmRkJNzd3dG+fXusXr26xvI9e/bAx8cH3t7e6N27N93oRogGU/Q4RlWohqAZlJoQ\nxGIx5s+fj8jISMTExCAsLAz379+XWsfZ2Rl//vknbt++jaVLl+Ltt99WZkiEkCZQ9DhGVWxMqIag\nCZSaEKKjo+Hq6gqRSARdXV0EBQUhPDxcap2ePXvC3NwcANC9e3ekpKQoMyRCSBNkFGUodNiKKlRD\n0AxKTQipqalwdHTknwuFQqSmpta5/tatWzF8+HBlhkQIaQJF35RWxcbYhnoZaQDFzHBRB3kmzT53\n7hy2bduGv/76S4kREUKaIqMoA70ceym8XKohaAalJgQHBwckJyfzz5OTkyEUCmusd/v2bcyaNQuR\nkZGwtLSstayQkBD+74CAAAQEBCg6XEJIA5TVy6i1cWtkl2RDLBFDW0tb4eW3FFFRUYiKimr09gLG\nGFNcONIqKyvh5uaGM2fOwN7eHv7+/ggLC4OHx39zpyYlJWHgwIHYvXs3evToUXuQAgGUGCYhREZu\noW4IDwqHeyt3hZfd5ts2uDPnjlIuWrdU8p47lVpD0NHRQWhoKIYOHQqxWIwZM2bAw8MDmzdvBgAE\nBwfjiy++QG5uLubMmQMA0NXVRXR0tDLDIoQ0UnphukLHMaquqqcRJQT1UWoNQVGohkCI+hWXF8P6\nG2uULCmR6/qgrAbvGoyPen2EIS5DFF52SyXvuZPuVCaEyCSjKAN2pnZKSQYA9TTSBJQQCCEySS9K\nh52JndLKp55G6kcJgRAiE2X1MKpC4xmpHyUEQohM0guphvCyo4RACJFJelE67EyVlxBoPCP1o4RA\nCJGJspuMqIagfpQQCCEyUfZFZeplpH6UEAghMkkvVG6TUSujVsgtzUWFuEJp+yD1o4RACJGJspuM\ntLW0YW1ojWfPnyltH6R+lBAIIQ2qlFQiuyQbbYzbKHU/tia21GykRpQQCCENelr8FNaG1tDRUurw\nZ3RhWc0oIRBCGpRemK7U5qIq1PVUvSghEEIaVDWOkbLZGlMNQZ0oIRBCGqTsLqdVbEyo66k6UUIg\nhDRIVU1Gtia2yCimGoK6UEIghDQooyhDNTUEujlNrSghEEIapOxxjKpQLyP1ooRACGmQKq8hUEJQ\nH0oIhJAGpRWmqaSGYG1ojecVz1FaWar0fZGaKCEQQuolYRKkF6bDwdRB6fsSCASwN7VHSkGK0vdF\naqKEQAip19Pip7AwsIC+jr5K9udo7kgJQU0oIRBC6pVSkAKhmVBl+xOaCSkhqAklBEJIvVSeEEyF\nSM5PVtn+yH8oIRBC6pVakKrShEBNRupDCYEQUq+UghSVXFCuIjQTIqWQEoI6UEIghNQrpZCuIbQU\nlBAIIfVSdZOR0IyuIagLJQRCSL1SClLgYKa6JqM2xm2QX5ZPN6epASUEQkidGGMqv4agJdCCvak9\n0grTVLZPwqGEQAipU15pHvS09WCqb6rS/VKzkXpQQiCE1EnV9yBUoQvL6kEJgRBSp+SCZLUkBEcz\nuhdBHSghEELqlJCXAJGFSOX7pRqCelBCIITUKTEvEW3N26p8v0IzIZIL6BqCqlFCIITUKSFfPTUE\najJSD0oIhJA6qavJyNHcEUn5SSrfb0un1IQQGRkJd3d3tG/fHqtXr66x/MGDB+jZsycMDAywZs0a\nZYZCCGmEhLwEtLVQfZORjbENisqLUFRepPJ9t2RKSwhisRjz589HZGQkYmJiEBYWhvv370utY21t\njfXr1+PDDz9UVhiEkEYqqShBfmk+bE1sVb5vgUAAkYUI8bnxKt93S6a0hBAdHQ1XV1eIRCLo6uoi\nKCgI4eHhUuu0bt0afn5+0NXVVVYYhJBGSsxPhJO5E7QE6mlZbmfZDvF5lBBUSUdZBaempsLR0ZF/\nLhQKceXKFWXtjhCNV1wMPH0K5OX995qBAdCmDWBpCWhp2BU9dTUXVXG2cEZcbpza9t8SKS0hCAQC\nhZYXEhLC/x0QEICAgACFlk+IolRWAtevAxcuALdvA3fvAg8fAmIxYGMDWFgAVf88nj8Hnj0DCgsB\nJyfAy4t79OgB9OsHmJur730k5iVCZC5S2/7bWbajJiM5RUVFISoqqtHbKy0hODg4IDn5v37EycnJ\nEAobf8dj9YRAiKbJywOOHQMOHwaiogChEAgI4E7qc+cC7u6Amdl/ieBF5eVAfDyXPG7fBn74AXjz\nTcDDA3jtNWD8eMDNTZXvSH09jKq0s2iHqIQote2/OXrxx/Lnn38u1/ZKSwh+fn54/PgxEhISYG9v\nj/379yMsLKzWdRljygqDEKWRSIDTp4FNm4AzZ4ABA4A33gC2bOGageShp8ed8N3cgLFjudfKyoC/\n/+aSzIABQOvWwMyZwOTJqqk5JOQn4NX2ryp/R3VwtqQmI5VjSnTy5EnWoUMH5uLiwlauXMkYY2zT\npk1s06ZNjDHG0tPTmVAoZGZmZszCwoI5OjqywsLCGuUoOUxC5JKfz9i33zLm4sKYry9jW7Ywlpen\n3H2KxYydPcvYhAmMWVgwNmsWY3fvKnefflv82KWkS8rdST3yS/OZ0VdGTCKRqC2G5k7ec6fg3400\nmkAgoFoEUbvcXK4pZ8MGYMgQ4N13AX//upuBlCUjA/jf/4DQUKB3b+CzzwBfX8XugzEGy9WWiH03\nFtZG1ootXA7W31gjZm4MbExs1BZDcybvuVPD+jUQonmKioCQEMDVFUhO5ppx9uwBundXfTIAAFtb\nLgnExQF9+wIjRgCjRgEv3ObTJM+eP4OWQEutyQDgmo2o66nqUEIgpA5iMbB1K9eu/+gRcO0a99zV\nVd2RcYyMgAULgNhYoH///y5gP33a9LIfZz9GB+sOTS+oiZwtnfEk54m6w2gxKCEQUosLF4AuXYDt\n24EjR4C9e4F27dQdVe0MDID33wcePOAuTnfsCHz7LVBR0fgyH2U/Qnvr9ooLspHcrd3xMOuhusNo\nMSghEFJNTg7Xk2fiRK5Z5sIF7jpBc2BtDXz/PdekdeYM0LUr93djPM55jA5W6q8huLdyx4PsB+oO\no8WghEAIAMaA3bu5X9dGRkBMDDBunHquETRV+/ZARATw6adcF9bgYO6CuDw0pobQyh0PsighqAol\nBNLiJSRwvYbWrgWOHwd+/JG7iaw5EwiAoCAusenoAJ6ewNGjsm//OOcx2lupPyF0sO6AJzlPIJaI\n1R1Ki0AJgbRYjHHdN7t1AwYPBqKjub9fJhYWXDfZAweAjz4C3nqLaxarj4RJ8CTniUbUEIz1jNHa\nqDUS8xPVHUqLQAmBtEjp6dyQEBs3AufOAR9/zP2Sfln16QPcvAlYWQHe3sCJE3Wvm1qQClM9U5jp\na0Y1iZqNVIcSAmlx9u0DOnfmehFdvswNJtcSGBtzN9bt3g288w4wfTqQn19zvbtP78KrjeYcFEoI\nqkMJgbQYWVnAhAnA558Dv/0GfPEF102zpQkI4AbQ09fnagtnz0ovv515G9423mqJrTaUEFSHEgJp\nEU6eBHx8AAcHbmjql+1agbxMTICffuIG4psyBXjvPW4obgC48/QOOrXppN4Aq3Fv5Y6YZzHqDqNF\noIRAXmrFxcCcOdxjzx6uJ5Ghobqj0hxDh3K1hawsbjyk6GjNqyH42PjgduZtSJhE3aG89CghkJfW\n1avcdYLCQuDWLa6phNRkacklyxUrgNdGl+N+5mO4mndUd1g8ayNrWBhY0FDYKkAJgbx0Kiu5k9ur\nr3LXCXbv5rpfkvqNGwfsO/0Q+qVtMaCvIe7eVXdE//G188WN9BvqDuOlRwmBvFRiY7lB3s6d464V\nTJig7oial3TJHQR26YR587hJeb77jhvkT918bX1xI4MSgrJRQiAvBcaAbdu4uYjHjeNmMmvCjK0t\n1q2MW+hk0wkzZnDXE44f5xJDnJpbayghqAYlBNLsPXsGjBnDDex29iywcCGgRd/sRrmadhXd7Lku\nWO3acTWt0aO5uR+2bOESrzpQk5Fq0D8b0qwdPcp1J3Vx4S4id9Kc3pLNjlgixrW0a/B3+G94Vy0t\nbmjt8+eBzZu56zLp6aqPzdHMERWSCqQXqmHnLQglBNIsZWUBb77Jjc9z4ADX1q2vr+6omrcHWQ9g\nY2JT6yxpHTtyd3V368bd5X3ggGpjEwgE6O7QHZdTLqt2xy0MJQTS7Bw+zNUEbG257qR9+qg7opfD\nldQrUrWDF+nq/neX97Jl3JwRDQ2Up0h9nfriz8Q/VbfDFogSAmk2srK4IZ0/+QQ4eJC7yczISN1R\nvTz+SvoLPYU9G1yvWzfgxg3AxoYb+iIiQgXBAejXth/+TKKEoEyUEIjGk0i4HkSentzQEzdvAr17\nqzuql09UYhQGiAbItK6hIXcRf9cu7i7wt9+WfxIeefnZ++Fh1kMUlBUod0ctGCUEotHu3uUmkN+0\nCYiMBNasoVqBMiTlJ6GwrBAdW8t3h/KAAVyzna4ud53hl1+4BK4M+jr66ObQDZeSLylnB4QSAtFM\nRUXAokXcCefNN7m5gX191R3Vy+tc/DkEiAIgaMScoebm3CQ8x49z80v068eNj6QM/Zz64XzCeeUU\nTighEM0iFgPbtwNubkBqKnDnDtckoa2t7shebpGxkRjsPLhJZfj5cYn7rbeAQYO4EVSzsxUU4L9e\ncX4Fv8f+rthCCY8SAtEY585xJ5X//Y/rSbR7N9eTiChXhbgCvz/5HSM6jGhyWdraQHAwcO8el9zd\n3YFvvgFKSxUQKIBejr2QmJ+IlIIUxRRIpFBCIGp3/TowYgQwYwbw6afAxYvcnbFENS4mXYSLlQvs\nTO0UVmbr1kBoKPdZ/v03V+Pbtavp4yLpaOlgmOsw/PboN8UESqRQQiBqc/s28PrrXDIYOhSIieHG\nIWpEMzZpgoMxBzHabbRSynZzA44c4Wp7mzZxPcV27+ZGpG2s0W6jcTDmoOKCJDxKCETlrl7lTvxD\nhnAXIGNjuTl+DQzUHVnLUy4ux4GYA3iz05tK3U/fvlxtYcMGbkykjh2BHTuAigr5yxrRYQSup1+n\nZiMloIRAVEIiAcLDuQQwbhzQqxeXCBYupBnM1Onk45Nwb+WOdpbtlL4vgQB45ZX/xkXasQNwdgZW\nrZLv4rOhriHGeIzBntt7lBdsC0UJgShVVhawbh13cfGrr4B584AnT7hEYGys7uhIaHQogrsGq3Sf\nAgHXnfjsWa6r6sOHgKsrMHs216tMFsFdg/HTtZ9QKWlC2xOpgRICUTiJBPjjD26YCVdXbpiDbduA\nK1e4CWt0dNQdIQG4uZPvZ93HeM/xaouhc2eum/GDB1yPssBArqfZxo313/nczaEbhGZCHLl/RHXB\ntgACxtQ1wrnsBAIBmkGYLRpj3An/wAHg118BKytg1ixg0iRuzl6ieUaGjUSAKADv93xf3aHwxGLu\nx8T27dyd6UOGcE2MgYGAiYn0uicencDHf3yMW7NvQUeLfmXURt5zJyUE0mhlZcCFC8DJk8ChQ9yQ\nEuPHcw9PT3VHR+pzNv4spodPx8P5D6Gvo5njhufmcoMYHjrEdV0dOJCbCGnYMK5bK2MMATsCMNFr\nImb7zVZ3uBqJEgJRGokEuH+fuygYEcH939OT+wc6Zgzg5UVdRpuDwrJCeG/yxvrA9Qq5GU0VcnO5\n6w1HjnA3MLq4cLWH9r3vYVFMAKJnRavkwnhzo1EJITIyEgsWLIBYLMbMmTOxaNGiGuu8++67iIiI\ngJGREX755Rf41jJgDSUE9Sgo4EYWvXSJ6zJ46RLXFNS3L3ffwODBgHXNuVSIBquUVGL0vtFwNHPE\nTyN+Unc4jVJRwTVPnjrFPa7rfQ/dbtsxRXIBAT3N0KMH4OhIP06ARpw7mZJUVlYyFxcXFh8fz8rL\ny5mPjw+LiYmRWufEiRMsMDCQMcbY5cuXWffu3WstS4lhqsS5c+fUHUK9iosZu32bsUOHGPv8c8Ze\nf50xZ2fGjI0Z696dsbFjz7GDBxlLT1d3pPLT9GPfEEXGX1RWxMbsH8OG7R7GyivLFVZufVRx/IuK\nJGz0z3OZ4+f+bOjYDNamDWNWVoz178/Y/PmMbd7M2KVLjOXkyF92c//+yHvuVFovo+joaLi6ukIk\nEkFXVxdBQUEIDw+XWufYsWOYMmUKAKB79+7Iy8tDZmamskJSm6ioKLXtmzGu6+ft29xFum3bgBUr\ngJkzgYAAQCjkfuVPmMANXVxSwv198iSQn89Nm+jlFYWxY5vnuELqPPaKoIj4GWOIeBwB703eMNM3\nw9EJR6Grrdv04GSgiuNvbCzA4RmhmN4vEDd7+OCb33fi1p1KLFkCtGvHXX945x3AyYnr4NClC/DG\nG8DHHwM//cQ1RV29CiQnA+Xlqo9fkyjt0nxqaiocHR3550KhEFeuXGlwnZSUFNjY2CgrLI3HGNfT\noqKCe5SUAM+fA8XF3P+rHlXPi4uBvDyujTUnh/t/9b8zM7n+/vb20o+uXbluoe3bc0mBRhN9eTDG\nkF6UjntP7+FC0gUcun8I2gJtfD/0e7zm9pq6w1MKgUCAkIAQBLoG4qPTH2Fp3md4o+MbGPDqALw+\nzQttLdpCAC1kZwNxcUB8PPf/69eBEyeAjAzu8fQpYGrK/fhp1Yp7LS4OsLCQfpiacp0oDA3/e7z4\n3MCg+f27UlpCkHVcdfZC+1Zd27VZ+O/Frxeaw1j1F9iLi9m/+6hlv1Vr1ijvxf82vM/atuVfY0DZ\n1ViseXoJEsbAGMAk3OsSxv2fezD+b4Br/9TS4h7a2oCWNoO2NqDNP+f+1tIGdHQYdM0AHStuohId\nHUBfFxDqAO10GbT+/VJWAEj89/E3AJbCgDru/q/+HhNuJuDcL+deeF91t0uyFw+YArZr7LbJ15MR\n+b/IRu2zvv01ZVt5tku/lo5jm4/JtG25uBzZz7ORXZINSwNLeLbxhL+9PzaP2Izejr0bNddBc9Nd\n2B1/TvsTtzJuIfxhODZc3YC7T+8ioygDFgYWaGXUCsZ6xtDV0oWurS507XWhq62L1gIttAb376+i\ngutBV1oBFPz2BLe8orkfaJVAZQ5QmSlARSUgEQNiyb//Fwsglnr+70RBTACB1r//ngXg/671ebX2\nGsG//xHwT6T/lmWdRn3aCm2wqubvv/9mQ4cO5Z+vXLmSrVq1Smqd4OBgFhYWxj93c3NjGRkZNcpy\ncXFh4M609KAHPehBDxkfLi4ucp23lVZD8PPzw+PHj5GQkAB7e3vs378fYWFhUuuMHDkSoaGhCAoK\nwuXLl2FhYVFrc9GTJ0+UFSYhhJB/KS0h6OjoIDQ0FEOHDoVYLMaMGTPg4eGBzZs3AwCCg4MxfPhw\nnDx5Eq6urjA2Nsb27duVFQ4hhJAGNIsb0wghhCifxg5u9+uvv8LT0xPa2tq4fv06/3pCQgIMDQ3h\n6+sLX19fzJ07V41R1q2u+AHg66+/Rvv27eHu7o5Tp06pKULZhYSEQCgU8sc8MrLui7SaJDIyEu7u\n7mjfvj1Wr16t7nDkJhKJ4O3tDV9fX/j7+6s7nAZNnz4dNjY26NSpE/9aTk4OBg8ejA4dOmDIkCHI\ny8tTY4T1qy3+5vLdT05OxoABA+Dp6QkvLy/8+OOPABpx/OW64qBC9+/fZw8fPmQBAQHsn3/+4V+P\nj49nXl5eaoxMNnXFf+/ePebj48PKy8tZfHw8c3FxYWKxWI2RNiwkJIStWbNG3WHIRZYbIzWdSCRi\n2dnZ6g5DZn/++Se7fv261L/Pjz76iK1evZoxxtiqVavYokWL1BVeg2qLv7l899PT09mNGzcYY4wV\nFhayDh06sJiYGLmPv8bWENzd3dGhQwd1h9FodcUfHh6OiRMnQldXFyKRCK6uroiOjlZDhPJhzaxl\nUZYbI5uD5nTc+/btC8sXhratfvPplClTcPToUXWEJpPa4geax2dga2uLzp07AwBMTEzg4eGB1NRU\nuY+/xiaE+sTHx8PX1xcBAQG4ePGiusORS1paGoRCIf9cKBQiNTVVjRHJZv369fDx8cGMGTM0utpf\npbabHpvDca5OIBBg0KBB8PPzw88//6zucBolMzOT7zloY2PTLEciaG7f/YSEBNy4cQPdu3eX+/ir\nNSEMHjwYnTp1qvE4fvx4ndvY29sjOTkZN27cwNq1a/Hmm2+isLBQhVH/pzHx10YTbhiq670cO3YM\nc+bMQXx8PG7evAk7Ozt88MEH6g63QZpwTJvqr7/+wo0bNxAREYENGzbgwoUL6g6pSQQCQbP7XJrb\nd/WkmEwAAAfKSURBVL+oqAhjx47FDz/8AFNTU6llshx/tc4qcfr0abm30dPTg56eHgCgS5cucHFx\nwePHj9GlSxdFh9egxsTv4OCA5ORk/nlKSgocHBwUGVajyPpeZs6cidde0/zhD148zsnJyVI1s+bA\nzs4OANC6dWu8/vrriI6ORt++fdUclXxsbGyQkZEBW1tbpKeno02bNuoOSS7V49X0735FRQXGjh2L\nt956C6NHjwYg//FvFk1G1dvwsrKyIBaLAQBxcXF4/PgxnJ2d1RWaTKrHP3LkSOzbtw/l5eWIj4/H\n48ePNb4HSXp6Ov/3kSNHpHphaKrqN0aWl5dj//79GDlypLrDktnz58/5mm9xcTFOnTrVLI77i0aO\nHIkdO3YAAHbs2MGfqJqL5vLdZ4xhxowZ6NixIxYsWMC/LvfxV+KF7yY5fPgwEwqFzMDAgNnY2LBh\nw4Yxxhg7ePAg8/T0ZJ07d2ZdunRhv/32m5ojrV1d8TPG2FdffcVcXFyYm5sbi4yMVGOUsnnrrbdY\np06dmLe3Nxs1alStw4toopMnT7IOHTowFxcXtnLlSnWHI5e4uDjm4+PDfHx8mKenZ7OIPygoiNnZ\n2TFdXV0mFArZtm3bWHZ2NnvllVdY+/bt2eDBg1lubq66w6zTi/Fv3bq12Xz3L1y4wAQCAfPx8WGd\nO3dmnTt3ZhEREXIff7oxjRBCCIBm0mRECCFE+SghEEIIAUAJgRBCyL8oIRBCCAFACYEQQsi/KCEQ\nQggBQAmBvOREIhFycnLUHYaUtLQ0jBs3rt51oqKi6rwrVhPfE3k5UEIgGokxppBRJjVt7JzKykrY\n29vj119/bXQZmvaeyMuDEgLRGAkJCXBzc8OUKVPQqVMnJCcnY+7cuejWrRu8vLwQEhLCrysSiRAS\nEoKuXbvC29sbDx8+BABkZ2djyJAh8PLywqxZs6SSytq1a/lB+3744Qd+n+7u7pg2bRrc3NwwadIk\nnDp1Cr1790aHDh1w9erVGnH27NkTMTEx/POAgABcv34dV69eRa9evdClSxf07t0bjx49AgD88ssv\nGDlyJF555RUMHjwYiYmJ8PLy4vffr18/dO3aFV27dsXff//Nl1tQUIARI0bA3d0dc+bMqTVB7t69\nG927d4evry9mz54NiUQitTw/Px/u7u58LBMnTsTWrVvl+lxIC6L0e6oJkVF8fDzT0tJiV65c4V/L\nyclhjHET3gQEBLA7d+4wxrjJY0JDQxljjG3cuJHNnDmTMcbYO++8w7788kvGGGMnTpxgAoGAZWdn\ns2vXrrFOnTqx58+fs6KiIubp6clu3LjB4uPjmY6ODrt79y6TSCSsa9eubPr06YwxxsLDw9no0aNr\nxLlu3Tq2fPlyxhhjaWlpzM3NjTHGWEFBAausrGSMMXb69Gk2duxYxhhj27dvZ0KhkB82oPokT8+f\nP2elpaWMMcYePXrE/Pz8GGOMnTt3jhkYGLD4+HgmFovZ4MGD2cGDB/n3np2dzWJiYthrr73G73PO\nnDls586dNeI9ffo069mzJwsLC2OBgYHyfCSkhVHraKeEvKht27ZSg/3t378fP//8MyorK5Geno6Y\nmBj+1/WYMWMAcKPeHj58GABw4cIFHDlyBAAwfPhwWFpagjGGixcvYsyYMTA0NOS3vXDhAkaOHIl2\n7drB09MTAODp6YlBgwYBALy8vJCQkFAjxvHjx2PIkCEICQnBgQMH+OsBeXl5mDx5Mp48eQKBQIDK\nykp+myFDhsDCwqJGWeXl5Zg/fz5u3boFbW1tPH78mF/m7+8PkUgEgPtlf/HiRYwdOxYA16R25swZ\n/PPPP/Dz8wMAlJSUwNbWtsY+Bg0ahAMHDmD+/Pm4fft2vceftGyUEIhGMTY25v+Oj4/HmjVrcO3a\nNZibm2PatGkoLS3ll+vr6wMAtLW1pU6+rJamFYFAIPU6Y4xvi68qBwC0tLT44dW1tLSkyq1ib28P\na2tr3LlzBwcOHMDmzZsBAEuXLsUrr7yCI0eOIDExEQEBAfw2RkZGtb7fdevWwc7ODrt27YJYLIaB\ngYFUzNXj1dKq2cI7ZcoUrFy5stayq0gkEty/fx/GxsbIycmBvb19veuTlouuIRCNVVBQAGNjY5iZ\nmSEzMxMRERENbtOvXz/s3bsXABAREYHc3FwIBAL07dsXR48eRUlJCYqLi3H06FH07du30ReuJ0yY\ngNWrV6OgoICvsRQUFPAn2+3bt8v8Hqt+1e/cuZMf2h3gpgFNSEiARCLB/v370adPH36ZQCDAK6+8\ngoMHD+LZs2cAuAnVk5KSauxj3bp18PT0xJ49ezBt2rRakxwhACUEomGq/yr28fGBr68v3N3dMWnS\nJKkT4ovbVG23fPly/Pnnn/Dy8sKRI0fQtm1bAICvry+mTp0Kf39/9OjRA7NmzYKPj0+Nfb74vK4e\nPW+88Qb279+P8ePH8699/PHHWLx4Mbp06QKxWMxvW9tMVVXP586dix07dqBz5854+PAhTExM+OXd\nunXD/Pnz0bFjR7i4uOD111+X2tbDwwMrVqzAkCFD4OPjgyFDhiAjI0NqPw8fPsTWrVuxZs0a9OnT\nB/369cOK/2/nDo0AgGEYiP3wGbzEsCNIGwT9meTuexN4fw1AZSEAMIIAQCUIAIwgAFAJAgAjCABU\nggDACAIAVT3MLe+SqI6IOgAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "def posterior(likelihood, prior):\n", " \"\"\"\n", " Calculates the posterior probability (after Bayes Rule) without\n", " the scale factor p(x) (=evidence). \n", " \n", " \"\"\"\n", " return likelihood * prior\n", "\n", "# probability density functions\n", "posterior1 = posterior(pdf(x, mu=4, sigma=4), 0.5)\n", "posterior2 = posterior(pdf(x, mu=10, sigma=1), 0.5)\n", "\n", "# Class conditional densities (likelihoods)\n", "plt.plot(x, posterior1)\n", "plt.plot(x, posterior2)\n", "plt.title('Posterior Probabilities w. Decision Boundaries')\n", "plt.ylabel('P(w)')\n", "plt.xlabel('random variable x')\n", "plt.legend(['P(w_1|x)', 'p(w_2|X)'], loc='upper left')\n", "plt.ylim([0,0.25])\n", "plt.xlim([-15,20])\n", "plt.axvline(7.775, color='r', alpha=0.8, linestyle=':', linewidth=2)\n", "plt.axvline(16.225, color='r', alpha=0.8, linestyle=':', linewidth=2)\n", "plt.annotate('R2', xy=(10, 0.2), xytext=(10, 0.22))\n", "plt.annotate('R1', xy=(4, 0.2), xytext=(4, 0.22))\n", "plt.annotate('R1', xy=(17, 0.2), xytext=(17.5, 0.22))\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEZCAYAAACJjGL9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlclPX2B/DPsCjKvsk2KMoiCIIo7rGYW3qVXMo0c8kl\ntWtd23+mN7G6lt1spe61csk1s66ZG7niVoom5gIEKrtAyL7INpzfH09MjDAwM8zOefuimJlnOfOd\nYc485/t8v4+IiAiMMcaYHCa6DoAxxph+40TBGGOsTZwoGGOMtYkTBWOMsTZxomCMMdYmThSMMcba\nxInCyOzcuRPjx4/XdRitMjExwZ07d1Ra18vLCydOnGj1sbNnz8Lf319m2ZMnTwIA1q1bh8WLF8vd\nrj63l6YEBQXhzJkzbS6TlZUFa2trGPvZ8x15T3aWNgIAEFNZr169qFu3bmRlZUUuLi40f/58qqys\nVHl7a9asoaeeekqNEXacOp+jSCSi27dvq7Sul5cXnThxokPLpqenk0gkIolEolIM2iQSicjS0pKs\nrKzI0dGRRo8eTXv27NF1WGrR/Lk5OTnRrFmzqLS0VGexqPqe7Ez4iKIDRCIRDh48iIqKCly5cgWX\nL1/G22+/rbN4JBKJyusSUavfjBR9jg0NDSrvW9tae5766Nq1a6ioqEBqairmz5+P5cuX480339R1\nWGrR9Nzu3LmDkpISxMTE6DokpRjS+10dOFGoibu7Ox555BHcuHEDAPDjjz8iMDAQ9vb2GDVqFFJS\nUqTLrl+/HmKxGDY2NvD398fJkycRFxeHd955B3v27IG1tTVCQ0MBAGVlZVi4cCHc3d0hFovxz3/+\nE42NjQCArVu3YuTIkXjxxRfh5OSEmJgYbN26FeHh4dJ9/fzzzxg8eDDs7OwwZMgQ/PLLL9LHoqKi\nsHr1aowcORKWlpZIT09X6DnevHkTgHDY/vnnn8PX1xd9+/YFAHz55Zfw9fWFo6MjHn30UeTl5cls\n49ChQ/D29oazszNeffVV6Yf27du38fDDD8PJyQnOzs546qmnUFZWJrNuQkICAgMD4eDggAULFqC2\nthYAEB8fD09Pz1ZjjomJwZw5cwAAERERAAA7OzvY2NjgwoULLdorJSUFY8eOhaOjI/z9/bF3717p\nY4cPH0ZgYCBsbGwgFouxYcOGVvfZq1cvXLlyBYBQ2jIxMUFycjIAYNOmTZg6dWqb7fwgBwcHPPXU\nU/jPf/6Dd955B8XFxQDafm8AwmvRr18/2NjYIDAwEFevXgUgW5pLSEhAWFgYbG1t4erqipdeegkA\nkJGRARMTE+n27t69i+joaDg6OsLX1xdfffWVTBvPmDED8+bNg42NDYKCgvDrr78q9Nysra0xefJk\nJCUlSe9ra1/z58/HP//5T+ntB197Ly8vbNiwASEhIbCzs8PMmTOl7xMA+Pe//y1tr82bN8vEcujQ\nIYSGhsLW1hY9e/bE2rVrpY81tcfmzZvRq1cvjBkzBpmZmTJt1NbrcevWLURGRsLOzg7Ozs6YOXOm\nQu2jN3R7QGPYvLy86Pjx40RElJWVRYGBgfTGG2/Q77//TpaWlnT8+HFqaGig9957j3x8fKiuro5S\nUlLI09OT8vLyiIgoMzNTeugbExNDc+bMkdnHlClTaOnSpVRdXU1//PEHDRkyhDZu3EhERFu2bCEz\nMzOKjY0liURC9+/fpy1bttBDDz1ERERFRUVkZ2dHO3bsIIlEQrt37yZ7e3sqLi4mIqLIyEjq1asX\nJSUlkUQiofr6eoWfI5Fw2D5u3DgqKSmhmpoaOnHiBDk5OVFiYiLV1tbSc889RxEREdJtiUQievjh\nh6mkpISysrLIz8+PvvrqKyIiunXrFh0/fpzq6uqosLCQIiIiaMWKFdJ1e/XqRf3796ecnBwqLi6m\nkSNH0urVq4mI6NSpUyQWi2Vibio9xcTESMt5GRkZLUpPzdursrKSxGIxbd26lSQSCSUmJpKTkxMl\nJycTEZGrqyudO3eOiIhKS0vpypUrrb4v5s6dSxs2bCAiosWLF5OPjw/95z//ISKiOXPm0EcffdTq\nes21VhKpq6sjMzMziouLI6K23xvffvsteXh40OXLl6Xtm5mZ2aJ9hg0bRjt27CAioqqqKrpw4QIR\ntSzThYeH09///neqra2lq1evkrOzM508eZKIhJKphYUFHTlyhBobG2nlypU0bNiwNp/brVu3iIio\nuLiYxo4dS2vWrJE+3ta+5s+fT//85z+ly7b22g8dOpTy8vKouLiYAgIC6L///S8RER05coRcXFzo\n5s2bVFVVRbNmzZJp5/j4eLpx4wYREV27do1cXFzohx9+kGmPefPmUXV1NdXU1LRoo7Zej5kzZ9K6\ndeuIiKi2tpbOnz8vt330ESeKDujVqxdZWVmRnZ0d9erVi/7+97/T/fv36c0336QnnnhCulxjYyN5\neHjQ6dOnKS0tjXr06CH9UGzuwT6K/Px86tq1K92/f196365du2jUqFFEJHzI9ezZU2YbzT/4tm3b\nRkOHDpV5fPjw4bR161YiIoqKipL5A1X0OdbU1BCR8Ad/6tQp6bILFiyg1157TXq7srKSzM3NpR9Q\nIpGIfvrpJ+njn3/+OY0ePbrV/e7bt49CQ0Olt728vKR/dEREhw8fJm9vbyJqO1E0b9PW+iiat9c3\n33xD4eHhMnE888wztHbtWiIi6tmzJ23cuJHKysrabLNNmzZRdHQ0EREFBATQpk2baObMmUQktGdi\nYmKb6xPJr527urrSrl272n1vjBs3jj755JNWt928fSIiImjNmjVUWFgos0zztsrKyiJTU1OZvqmV\nK1fS/PnziUho47Fjx0ofu3nzJnXr1q3N52ZjY0N2dnZkampKAQEBlJubS0TU7r7mz58v/YJA1Ppr\nv3PnTuntV199lZYuXUpERE8//TStXLlS+lhqamqbfRT/+Mc/6IUXXpBpj/T09FbbqL3XY+7cufTM\nM89QTk6O3HbRZ1x66gCRSIT9+/ejpKQEGRkZiI2NhYWFBfLy8tCzZ0+Z5Tw9PZGbmwsfHx989NFH\niImJgYuLC2bNmtWiPNMkMzMT9fX1cHNzg729Pezt7bF06VIUFhZKl5FXcgGEQ/jmcQBCWeTu3bsK\nrS/vOXbt2rXV9fPy8tCrVy/pbUtLSzg6OiI3N7fV5Xv27CmNpaCgADNnzoRYLIatrS3mzJmDoqIi\nmVjkrasumZmZuHjxorSt7e3tsWvXLhQUFAAAvv/+exw+fBheXl6IiorChQsXWt1OREQEzp49i/z8\nfEgkEjz++OM4f/48MjMzUVZWhgEDBqgUX319PQoLC+Hg4NDueyMnJwfe3t7tbnPTpk1ITU1FQEAA\nhgwZgkOHDrVY5u7du3BwcIClpaX0vp49e8q8ri4uLtLfu3fvjpqaGpky2IMSExNRUlKCmpoaLF26\nFOHh4aitrVVoX+1xdXWV/t6tWzdUVVUBEN6fD76Hmrt48SJGjRqFHj16wM7ODhs3bmzzPdhce6/H\ne++9ByLCkCFDEBQUhC1btij8fPQBJwoNcHd3R2ZmpvQ2ESE7OxseHh4AgFmzZuHs2bPIzMyESCTC\na6+9BkD4UG7O09MTXbt2RVFREUpKSlBSUoKysjJcv35dusyD6zTn4eEhEwcgvKGb4mhvfUU0X9/d\n3R0ZGRnS21VVVSgqKpLZX1ZWlszvTY+9/vrrMDU1xY0bN1BWVobt27e3+KB5cF13d3eVY21Nz549\nERkZKW3rkpISVFRU4LPPPgMAhIWF4YcffkBhYSGmTJmCGTNmtLodHx8fdO/eHZ9++ikiIyNhbW0N\nV1dXfPHFFzL9Icrav38/zMzMMGTIkHbfG56enrh161a72/Tx8cGuXbtQWFiI1157DY899hju378v\ns4y7uzuKi4tRWVkpvS8rKwtisVjl59LEzMwMCxcuRHp6Om7evNnuviwtLVFdXS19LD8/X+F9ubm5\ntXgPNffkk09iypQpyMnJQWlpKZYuXdriPSjvPdTe6+Hi4oIvvvgCubm52LhxI5599lmVT8vVBU4U\nGjBjxgwcOnQIJ0+eRH19PTZs2AALCwuMGDECqampOHnyJGpra9G1a1dYWFjA1NQUgPBNKCMjQ9rB\n6+bmhnHjxuHFF19ERUUFGhsbcfv27XbPgW8yYcIEpKamYvfu3WhoaMCePXuQkpKCSZMmSZchNZ4B\nNGvWLGzZsgW//fYbamtr8frrr2PYsGEy39zef/99lJaWIjs7G5988gmeeOIJAEBlZSUsLS1hY2OD\n3Nxc/Pvf/5bZNhHhs88+Q25uLoqLi/Gvf/1L6Q5BZ2dnmJiY4Pbt260+/re//Q2pqanYsWMH6uvr\nUV9fj0uXLiElJQX19fXYuXMnysrKYGpqCmtra+nr1prIyEjExsYiMjISgHDiQPPbimh6bYqLi7Fz\n504sX74c//d//wd7e/t23xuLFi3C+++/jytXroCIcOvWrRYfjACwY8cO6bdeW1tbiEQimJjIfix4\nenpixIgRWLlyJWpra3Ht2jVs3rwZTz31lMLPRd5zk0gk2LJlC7p3744+ffq0u68BAwbg8OHDKCkp\nQX5+Pj766COF9zVjxgxs3boVycnJqK6ulumsBoT3oL29Pbp06YKEhATs2rVL4S9S7b0ee/fuRU5O\nDgDhZIrW2lmfGU6kBsTPzw87duzAc889B2dnZxw6dAgHDhyAmZkZamtrsXLlSjg7O8PNzQ337t3D\nO++8AwB4/PHHAQCOjo4ICwsDAGzbtg11dXXo168fHBwc8Pjjj0u/RYlEohZv5Ob3OTo64uDBg9iw\nYQOcnJzw/vvv4+DBg3BwcJBZXlUPrjt69Gi89dZbmD59Otzd3ZGeno5vvvlGZplHH30UgwYNQmho\nKCZNmoQFCxYAANasWYMrV67A1tYWkydPxvTp02W2LxKJMHv2bIwbNw7e3t7w9fXF6tWr230ezduj\ne/fuWLVqFUaOHAkHBwdcvHhR5nFra2scPXoU33zzDTw8PODm5oaVK1eirq4OgPCh2rt3b9ja2uKL\nL77Azp075bZNZGQkKisrpWdaPXh73bp1mDhxYpvtGxISAmtra/j6+mLz5s3SkmWTtt4bjz32GFat\nWoUnn3wSNjY2mDZtGkpKSlrs46effkJQUBCsra3xwgsv4JtvvpGWFpu36e7du5GRkQF3d3dMmzYN\nb775Jh5++OEWbdy83RV5bg4ODti+fTv27dsHOzu7dvc1Z84chISEwMvLC4888ghmzpzZ5r6ax/bI\nI49gxYoVePjhh+Hn54fRo0fLrPv555/jjTfegI2NDd566y3pl5i2nlPz+9p6PS5fvoxhw4bB2toa\njz76KD755BN4eXm12Ub6RETq/Er5gLi4OKxYsQISiQSLFi2Sllia7Ny5U1q7s7a2xn/+8x8EBwcD\nEE5zs7GxgampKczNzZGQkKCpMBljjLVBY4lCIpGgb9++OH78ODw8PDB48GDs3r0bAQEB0mV++eUX\n9OvXD7a2toiLi0NMTIy0g7B379749ddfZb79MsYY0z6NlZ4SEhLg4+MDLy8vmJubY+bMmdi/f7/M\nMsOHD4etrS0AYOjQodIaXhMNHuwwxhhTkMYSRW5ursypZGKxuM1T3DZt2iRTsxWJRBgzZgzCwsLw\n5ZdfaipMxhhj7TDT1IaV6SQ9deoUNm/ejPPnz0vvO3/+PNzc3FBYWIixY8fC39+/Q6cWMsYYU43G\nEoWHhweys7Olt7Ozs1s97/ratWtYvHgx4uLiYG9vL73fzc0NgHBK49SpU5GQkNAiUfj4+Mg91ZEx\nxljrvL29FRpnI6WpId/19fXUp08fSk9Pp9raWgoJCaGkpCSZZTIzM8nb25t++eUXmfurqqqovLyc\niIRpIEaMGCEz9UMTDYavFe1Nn6HvOH7dMuT4DTl2IsOPX9nPTo0dUZiZmSE2Nhbjx4+HRCLBwoUL\nERAQgI0bNwIAlixZgjfffBMlJSVYtmwZAEhPg83Pz8e0adMACNP5Np0/zxjTsj/H8+DyZd3GYciM\noA01ligAYWTwhAkTZO5bsmSJ9PevvvpKZgrhJn369JFOicwY0yED/nDTG0bQhjwyW4eioqJ0HUKH\ncPy6ZcjxG3LsgOHHryyNjszWNJFIxGMtGGNMScp+dmq09KQrDg4Orc5rwzTL3t5eevU1ZiSMoL6u\nc0bQhkZ5RMFHGrrB7c6YYVD2b5X7KBhjjLWJEwVjjLE2caJgjMkXFvZXjZ2pxgjakBOFHtm4cSNe\neOEFrewrPj4eo0aNUmjZ2NhY/N///Z+GI2J66fJlg+6E1QtG0IacKLTMy8sL3bt3l15H+emnn0ZV\nVRXq6urwr3/9C6+++qpa9lNfX4/HHnsMvXv3homJCU6fPq3ythYvXoydO3dKL5nJGOtcOFFomUgk\nwsGDB1FRUYErV67g8uXLePvtt7F//374+/tLJ0NUh4iICOzYsQOurq4duuRp165dMWHCBGzbtk1t\nsTHGDAcnCh1yd3fHhAkTcOPGDcTFxcmM9pw3bx4++OADAMK1PUxMTPD5558DAG7fvg1HR8c2t21u\nbo7nn38eI0eOhKmpaZvL1tXVITQ0FLGxsQCEqxOOHDkSb7/9tnSZqKgoHDp0SJWnyQyZEdTXdc4I\n2pAThQ40nb+cnZ2Nw4cPIzQ0FNevX0ffvn2ly0RFRSE+Ph4AcPr0afTp0wdnzpyR3o6IiFBbPF26\ndMGOHTvwxhtvICUlBe+++y6ICKtWrZIu4+/vj99++01t+2QGwgjq6zpnBG3YaROFSNTxH1UQEaZM\nmQJ7e3uEh4cjKioKr7/+OkpLS2FtbS1dLiIiAufOnQMR4ezZs3j11VelF3Y6ffo0IiMj1dEMUoGB\ngVi9ejUeffRRfPDBB9i+fbtMucra2hplZWVq3SdjzDB02kRB1PEfVYhEIuzfvx8lJSXIyMhAbGws\nLCwsYG9vj/Lyculy3t7esLS0xNWrV3H27FlMmjQJ7u7uSE1NxZkzZ9SeKABg7ty5yMrKwsSJE+Ht\n7S3zWEVFhfT65oyxzqXTJgp9ExwcjNTUVJn7IiMjsXfvXtTX18Pd3R2RkZHYunUrSkpKMGDAALXH\n8Oyzz2LSpEmIi4uTuSwtACQnJ2tkn0zPGUF9XeeMoA05UeiJiRMntjiFNTIyErGxsdL+iKioKMTG\nxiI8PFyhs5hqa2tRU1PT4vfWbN++HYmJifj666/xySefYN68eaiqqpI+fvr06RbXFmGaYWpqitDQ\nUAQHB2PatGmorKyUPvbII4/A3t4ekydP1k4wGqqvy3uOV69exYgRIxAUFISQkBB8++23at+31qnQ\nhnr1HgAnCr0xadIkpKSkIC8vT3pfREQEKisrpYli5MiRuH//vsId2X379kX37t1x9+5djB8/HpaW\nlsjKymqxXFZWFl544QVs27YN3bt3x6xZsxAWFoYXX3wRAFBTU4MjR45g3rx5animrD3du3dHYmIi\nrl27BhsbG+lVIQHg1Vdfxfbt23UYnXrIe46WlpbYvn279EzAFStWyJRkOwt9ew8Y5TTj+iw9Pb3V\n+83NzbF69Wq89957+PDDDwEIH/SNjY3SZWxtbVFfX6/wvjIyMhRarmfPnrh3757Mfd98843096++\n+gqzZ8+Gs7Ozwvtm6jF8+HCZs80efvhh6dlwxqL5c/T19ZXe7+bmhh49eqCwsBA2Nja6Ck/n9OE9\nwIlCjyxevFjXIbRq+fLlug6hU5JIJDh69ChGjx6tuyA0fC2Ftp5jQkIC6uvrW5xYYXA60IZ68R4A\nl54M2rp162Btbd3i529/+1u764pEog6N1maac//+fYSGhsLNzQ3Z2dlYunSp7oLRUB9Fe88xLy8P\nc+fOxZYtW9S+b61ToQ316j0AThQG7fXXX0dFRUWLH0VGUEdGRuLkyZNaiJIpq1u3bkhMTERmZiYs\nLCywf/9+mceNIcG39RzLy8sxadIkrFu3DkOGDNFhlLqjb+8BThSM6alu3brhk08+wapVq2SuRmZM\nVxF88DnW1dVh6tSpmDt3LqZNm6br8HROX94DnCgY0zPNvy0OGDAAPj4+0tNEw8PDMWPGDJw4cQKe\nnp44duyYZoPR0BiA1p7jnj17sHfvXpw9exZbt25FaGgoQkNDce3aNbXvX6tUaEO9eg+Ar5nN1Ijb\nnTHDwNfMZowxplacKBhjjLWJE4Ueqa2tRWBgIAoKCrSyv6ioKKWufDd06FAkJSVpMCKmd4xgniKd\nM4I25EShR7744gtERkbCxcVFLdt7+eWX4efnBxsbGwQEBLQY9t98LEViYiJsbW1x+/Zt6eO//vor\n7O3tpdN+vPzyy3jjjTfUEhszEEZwLQWdM4I25EShRzZu3Ig5c+aobXtWVlY4ePAgysvL8fXXX+Mf\n//gHfvnll1aXDQ0NxfLly6Wjw+vr67FgwQK89dZb6NmzJwBg8uTJOHXqlNaOeBhj+oEThZZ5eXnh\n3XffRWBgIBwcHLBgwQLU1tYiKysLd+7cwdChQwEIc0LZ29tL11u8eLHMkcacOXPw8ccft7mvmJgY\n+Pn5AQCGDBmC8PBwuYkCANasWYO8vDx88cUXWLduHWxsbGSm77CwsMCgQYPw008/qfTcGWOGiROF\nDuzatQtHjx7F7du3kZqairfffhvXr19Hnz59YGIivCS9e/eGjY0NEhMTAQBnzpyBtbU1UlJSpLeb\nX2O7Pffv38elS5cQFBQkd5kuXbpg06ZNePXVV/HBBx9g06ZNLZYJCAjgS6J2JkZQX9c5I2jDTjsp\noGhtx4fA0xrlxwyIRCIsX74cHh4eAIBVq1bhueeeQ0BAgMylUAFhmo34+Hi4ublBJBLhsccew+nT\np9G1a1eUl5cjJCRE4f0uXboUAwYMwLhx49pcLjAwEObm5vD395cejTRnbW0tMxU6M3IGXlvXC0bQ\nhp02UajyIa8unp6e0t979uyJu3fvwt7eHhUVFTLLRUZG4scff4RYLEZERAQiIyOxfft2WFhYIDw8\nXOH9vfLKK0hKSsKpU6faXfall15CZGQkLl++jD179uCJJ56Qeby8vFymJMYYM36dNlHoUvOLB2Vl\nZcHDwwPBwcFIT09HY2OjtPwUGRmJV155BWKxGFFRUXjooYewdOlSWFhYKFx2WrNmDX766SecPn0a\nVlZWbS57/PhxHDhwAMnJybh48SKefvppjBs3TiYxJCcnY+7cuco/acaY4SIDJi98fX5avXr1ouDg\nYMrJyaGioiIaOXIkrVq1ioiIgoOD6eeff5ZZ3s3NjWxsbCgnJ4eIiMLCwsjGxoYuX77c7r7WrVtH\nvr6+lJ+f3+rjUVFRdPr0aSIiqqyspN69e9OuXbukjz/11FM0b9486e379++Tg4MD5eXltbo9fW53\npqJBg4Qfpjo9bENl/1a5M1vLRCIRnnzySYwbNw7e3t7w9fXF6tWrAQBLlixpMdYhKioKTk5O0j6N\npiOJgQMHtruvVatWITs7Gz4+PtJrVbz77rutLvv666+jX79+mDVrlvS+jz76CEeOHMGJEycAAAcO\nHMCoUaPg6uqq9PNmBsoIxgDonDG0oYYSFhERHTlyhPr27Us+Pj707rvvtnh8x44dFBwcTP3796cR\nI0bQb7/9pvC6RIZ5ROHl5UUnTpxo9bHa2lrq16+f3CMAdWt+RKGIoUOH0s2bN+U+rs/tzhj7i7J/\nqxrro5BIJFi+fDmOHz8ODw8PDB48GNHR0QgICJAu06dPH5w5cwa2traIi4vDM888gwsXLii0rjHq\n0qULbt68qesw5Lpw4YKuQ2CM6YDGSk8JCQnw8fGBl5cXzM3NMXPmzBZXaRo+fDhsbW0BCPMI5eTk\nKLwuE1hZWbV6OdTz58/rOjRmDIxgDIDOGUEbauyIIjc3V+Y0ULFYjIsXL8pdftOmTZg4caJK6xqS\n9PR0tW6vsrJS5XUVOV2WdXKGXlvXB0bQhhpLFMpc0/XUqVPYvHmz9FuwMuvGxMRIf4+KilJqtDJj\nTPu+ufENdl3fhffHvQ8/x5aDOpn6xcfHIz4+XuX1NZYoPDw8kJ2dLb2dnZ0NsVjcYrlr165h8eLF\niIuLk56vr+i6gGyiYIzpt/SSdCw/vBxzQ+Zizr45uLDwglJfDJlqHvwSvXbtWqXW11gfRVhYGNLS\n0pCRkYG6ujrs2bMH0dHRMstkZWVh2rRp2LFjB3x8fJRalzGmBWqur//38n/x9ICn8f6491FyvwQX\ncjrBCRLcR9HGhs3MEBsbi/Hjx0MikWDhwoUICAjAxo0bAQhjBt58802UlJRg2bJlAABzc3MkJCTI\nXVdR9vb2/C1FB3hqDyOk5vr6wbSD+HrK1zARmeDJ/k/i++TvMdxzuFr3oXeMoI9C9Oc5tQZJ2QuE\nM8Z0J6c8BwP+OwAFLxfA1MQUl3IvYcGPC3B92XVdh9bpKPvZySOzGWNacez2MYzpMwamJqYAgAGu\nA5Beko6ymjIdR8baw4mCMSafGuvrZ7POIsorSnrb3NQcA90GIiE3QS3b11tG0EfBiYIxJp8a5ym6\nmn8VA91k5ygbLh6OX3LkX3XRKBjBXE+cKBhjGlcnqUPKvRQE9ZC9wuIw8TBczDWOwbTGjBMFY0zj\nUu6lwMvOC93Nu8vc39+lP5IKk3QUFVMUJwrGmHxqqq9fzb+KAa4DWtzf2643CioLUFVX1eF96C0j\n6KPgK9wxxuRTU239esF19O/Rv8X9piam8HP0Q8q9FAxyH6SWfekdA++fAPiIgjGmBanFqXLndern\n3I/LT3qOEwVjTOPSitLg6+jb6mOcKPQfJwrGmHxqqK9LGiVIL02Hj4NPq4/7O/kj+V5yh/ah17iP\ngjFm1NRQX88uz4ZTd6cWZzw18bb3Rnqpeq/Tole4j4IxxtqWWpQKX4fWy04A0Me+D+6U3OF52/QY\nJwrGmEalFaW1mShsLWzRxbQL7lXf02JUTBmcKBhj8qmhvp5RmoE+9n3aXKa3XW/cKbnTof3oLe6j\nYIwZNTXU17PKs1rM8fSgPvZ9kF6ajqHioR3en97hPgrGGGtbVlkWetr2bHOZpn4Kpp84UTDGNEqR\nRGHUpSdZT6FTAAAgAElEQVQjwImCMSZfB+vrdZI6FFYVws3arc3letr2RHZ5tsr70WvcR8EYM2od\nrK/nlOfAzdoNZiZtf9SIbcTIKc/p0L70FvdRMMaYfFllWehl26vd5TxtPY03URgBThSMMY1RpH8C\nAGy72kLSKEF5bbkWomLK4kTBGJOvg/V1RROFSCQy3vIT91EwxoxaB+vrWWXtj6Fo0pQo+jn369A+\n9Q73UTDGmHyKHlEAQj9FdpmRnvlk4DhRMMY0JrMsU+FEIbY20tKTEeBEwRiTr4P19dzyXHhYeyi0\nLPdR6C/uo2CMydeB+np1fTXqJHWws7BTaHlPW0/sS9mn8v70FvdRMMZY6woqC+Bi5QKRSKTQ8kZ7\nRGEEOFEwxjQivzIfrlauCi/PiUJ/caJgjMnXgfp6QVUBXCxdFF7e3sIedZI6VNRWqLQ/vcV9FIwx\no9aB+rqyRxQikQhu1m7Ir8yHdVdrlferd7iPgjHGWqdsogAANys35FXmaSgipipOFIwxjSioVK70\nBACuVq7Ir8zXUERMVZwoGGPydaC+nl+l2hGF0SUK7qNgjBk1LfZRAMIRRV6FkZWeuI+ibXFxcfD3\n94evry/Wr1/f4vGUlBQMHz4cFhYW2LBhg8xjXl5eCA4ORmhoKIYMGaLJMBljGtA0jkIZrlauyK8y\nsiMKI6CxIwqJRILly5fj+PHj8PDwwODBgxEdHY2AgADpMo6Ojvj000/xww8/tFhfJBIhPj4eDg4O\nmgqRMaYhRKRaZ7a1m/EdURgBjR1RJCQkwMfHB15eXjA3N8fMmTOxf/9+mWWcnZ0RFhYGc3PzVrdB\nRJoKjzGmCBXr6xV1FTARmcCqi5VS6xllZ7YR9FFoLFHk5ubC09NTelssFiM3N1fh9UUiEcaMGYOw\nsDB8+eWXmgiRMdaey5dVqrGrUnYCjLQzW8U21CcaKz0pOr+LPOfPn4ebmxsKCwsxduxY+Pv7Izw8\nXE3RMcY0SZWyEwA4Wzqj6H4RGhobYGbC59roC429Eh4eHsjO/usiJNnZ2RCLxQqv7+bmBkAoT02d\nOhUJCQmtJoqYmBjp71FRUYiKilI5ZsaYeqiaKMxMzODQzQGFVYVws3bTQGSdU3x8POLj41VeX2OJ\nIiwsDGlpacjIyIC7uzv27NmD3bt3t7rsg30R1dXVkEgksLa2RlVVFY4ePYo1a9a0um7zRMEYU7Om\n2rqSpRNl53lqrml0ttEkChXbUJ0e/BK9du1apdbXWKIwMzNDbGwsxo8fD4lEgoULFyIgIAAbN24E\nACxZsgT5+fkYPHgwysvLYWJigo8//hhJSUn4448/MG3aNABAQ0MDZs+ejXHjxmkqVMaYPCp+uKl6\nRAEYYYe2gfdPAICIDPjUIpFIxGdGMaaHFv24CEM8huCZQc8ove7T+59GeM9wLAhdoIHIGKD8ZydP\n4cEYU7uOlJ5cLY1wdLaB40TBGJNPxTEAXHpqxgjGUfD5Z4wx+XTQR+Fm7YazWWdVWlcvGUEfBR9R\nMMbUiojwR9UfKg24A4zwiMIIcKJgjKlVSU0Jupl1g4WZhUrrG+XobAPHiYIxJp8K9fWOlJ2AP6ca\nN6ar3HEfBWPMqKk4z1NHEkXTRIKVdZVKTyqol7iPgjHGZOVX5qvcPwEI5/i7WLpw+UmPcKJgjKlV\nfmU+XC1VP6IAuENb3yicKGpqalBbW6vJWBhj+kaF+npBVcdKTwDgYuWCgsqCDm1DbxhzH0VjYyN+\n+OEH7N69Gz///DMaGxtBRDA1NcXw4cMxe/ZsTJkypcPTiTPG9JgK9fX8ynz4Ofp1aLeulkZ0RGHM\nfRRRUVH49ddf8fLLL+POnTvIy8tDfn4+7ty5g5dffhmXLl1CZGSkNmNljBmAjp71BPx5RFFlJEcU\nRkDuEcWxY8fQtWvXFvd37doVw4YNw7Bhw7gUxRhrQR2lJ1crV1zJu6KmiFhHyT2iaEoSq1evxrFj\nx1BVVSV3GcaYkVJxHIWqEwI2cbE0oiMKY+6jaNKnTx/s2rULzz//PKysrBAREYHw8HBMmTJFG/Ex\nxnRJyfq6pFGCe9X30MOyR4d2a1RnPRlBH4XC16PIz8/Hnj178P7776OkpASVlZWajq1dfD0KxvTL\nH1V/IPDzQBS+Utih7aSXpGPU16OQsSJDPYExGcp+drZ7RLFw4UIkJyfDxcUFDz30EL7//nuEhoZ2\nKEjGmHFSR9kJEDqz8yvzQUR8ZqUeaHccRXFxMRoaGmBnZwcHBwc4OTnB3NxcG7ExxnRNyfq6Os54\nAoDu5t3RxbQLymvLO7wtnesMfRT79u0DACQnJyMuLg6jRo2CRCJBTk6OxoNjjOmYkvX1js7z1FzT\nUYWtha1atqczRtBH0W6iOHDgAM6ePYuzZ8+itLQUDz/8MMLDw7URG2PMwKir9AQIHdoFVQXo69RX\nLdtjqms3UcTFxSEiIgIrVqyAu7u7NmJijBkodZWeAPDEgHpEbqJo6kT67LPP5K7MHU2MGbmm2rqC\n5ZOCqgIMcB2gll27Wrkax3xPSrahPmpzCo9///vfSE1NbfHY77//jvXr1/MUHowZu8uXlfqA6+gU\n480ZzRGFkm2oj+QmiqNHj8LR0RF///vf4ebmBj8/P/j6+sLNzQ3Lly+Hi4sLjh8/rs1YGWN6Tp2l\np6Y+CqZ7cktPXbt2xYIFC7BgwQJIJBLcu3cPAODk5ARTU1OtBcgYMxzqmOepSdNZT0z35CaK+/fv\n47///S9u3bqF4OBgLFy4EGZmfOVUxjoVJerr9ZJ6lNaUwrGbo1p2bTRHFEbQRyH3k3/evHno0qUL\nHnroIRw+fBhJSUn4+OOPtRkbY0zXlPhw+6PqDzh1d4KpiXoqDkbVR2Hg5CaK5ORkXL9+HQCwaNEi\nDB48WGtBMcYMjzrLToBQevqj6g8+u1IPyO3Mbl5m4pITY6w96hxsBwAWZhboZtYNJTUlatsmU43c\nDHDt2jVYW1tLb9+/f196WyQSobzcCOZgYYy1TYn6ujrPeGrSNJbCoZuDWrerVcbcRyGRSLQZB2NM\nHynx4abOeZ6aNJ35FOAcoNbtapUBJ4gm7c4eyxhjilB36QkwojOfDBwnCsaYWuRXqb/0ZDRnPhk4\nThSMMfmUuJaCJkpPRjHfU2e4HgVjrBPT0TxPTVytXJFWnKbWbWod91EwxphAE2c9uVi6GP4RhRHQ\naKKIi4uDv78/fH19sX79+haPp6SkYPjw4bCwsMCGDRuUWpcxpj9qGmpwv+E+7C3s1bpdVytX7qPQ\nAxpLFBKJBMuXL0dcXBySkpKwe/duJCcnyyzj6OiITz/9FC+//LLS6zLGtEDB+npBZQF6WPZQ+whq\nFysXwz/ryQj6KDSWKBISEuDj4wMvLy+Ym5tj5syZ2L9/v8wyzs7OCAsLg7m5udLrMsa0QMFrKWii\n7AQAPSx7oLCqEI3UqPZta40xX4+io3Jzc+Hp6Sm9LRaLkZubq/F1GWPap+55npp0Me0C667WKL5f\nrPZtM8VpLFF05BCUJwBjzLBoYrBdE+6n0D2NnR7r4eGB7Oxs6e3s7GyIxWK1rxsTEyP9PSoqClFR\nUSrFyxhrhYLzFGmq9AT8deZTUI8gjWxf4/Rgrqf4+HjEx8ervL7GEkVYWBjS0tKQkZEBd3d37Nmz\nB7t37251WSJSed3miYIxpmYKfrgVVBZobD4mgz+i0IP+iQe/RK9du1ap9TWWKMzMzBAbG4vx48dD\nIpFg4cKFCAgIwMaNGwEAS5YsQX5+PgYPHozy8nKYmJjg448/RlJSEqysrFpdlzGmn/Iq8xDlFaWR\nbbtYGsGZTwZORA9+nTcgIpGoxdEIY0z7RmwagffGvoeHej6k9m2vP7ceRfeL8N7Y99S+7c5K2c9O\nHpnNGJNPwTEAeZV5cLNy00gIBj+WwgjGUfBcT4wx+RSorxMR8iryNNaZzX0UusdHFIyxDimrLUMX\n0y6w7GKpke3zfE+6x4mCMdYheRV5cLPWTNkJMIIjCiPAiYIxJp8C9XVN9k8AgLOlM4ruF0HSaKCX\nZ+Y+CsaYUdPhPE9NzEzMYG9hj3vV99R+vQut4D4Kxlhnl1eh2SMKwAjOfDJwnCgYYx2SV6nZPgqA\n+yl0jRMFY0w+Berrmi49AcKZTwabKLiPgjFm1BSor2u6MxsQjigM9hRZ7qNgjHV2mj49FuDSk65x\nomCMdUhepeZGZTfhiQF1ixMFY0y+durrNQ01qK6vhmM3R42GYdBHFNxHwRgzagpcsMjF0kXjV6U0\n6NNjuY+CMdaZaXIywOYM+ojCCHCiYIypLL8yX+Md2QDg2M0RpTWlqJfUa3xfrCVOFIwx+dqpr2vj\n1FgAMDUxhVN3JxRWF2p8X2rHfRSMMaPWTn1dG9N3NGkadOdu7a6V/akN91EwxjqzuxV3tVJ6AgB3\na3fkVeRpZV9MFicKxpjKcipy4GnjqZV9iW3EyC7P1sq+mCxOFIwx+dqpr+eW58LDxkMroXjaeCKn\nPEcr+1Ir7qNgjBm1durrOeU5ENuItRKK2EaM05mntbIvteI+CsZYZ1VZV4k6SR3sLey1sj8uPekO\nJwrGmEpyy3MhthFrfFR2E09bAy09GQFOFIwx+dqor+eU52itfwIAPKw9kFOeAyLS2j7VgvsoGGNG\nrY36ujb7JwDAuqs1zE3MUVpTCvtu2il3qQX3UTDGOqvcilyIrbWXKADup9AVThSMMZVou/QEcD+F\nrnCiYIzJ104fhTZLTwAgthYbXqLgPgrGmFFro76eW5Gr/URhI0Z2mYGVnriPgjHWWenkiMJGjJwK\nAzuiMAKcKBhjSqtpqEFpTSl6WPbQ6n65j0I3OFEwxuSTU1/PKsuCp40nTETa/QgR23AfhS5wHwVj\nTD459fXM0kz0suul5WD+6qMgIq2NCO8w7qNgjHVGGaUZ8LL10vp+bbrawNTEFGW1ZVrfd2fGiYIx\nprSM0gx42XnpZN+eNp7IKsvSyb47K40miri4OPj7+8PX1xfr169vdZnnn38evr6+CAkJQWJiovR+\nLy8vBAcHIzQ0FEOGDNFkmIwxeeTU1zPKMnRSegKA3va9kV6SrpN9q4T7KOSTSCRYvnw5jh8/Dg8P\nDwwePBjR0dEICAiQLnP48GHcunULaWlpuHjxIpYtW4YLFy4AAEQiEeLj4+Hg4KCpEBlj7Wmjj0JX\nRxS97XrjTskdnexbJdxHIV9CQgJ8fHzg5eUFc3NzzJw5E/v375dZ5scff8S8efMAAEOHDkVpaSkK\nCgqkjxvcLJGMdRK6LD31tuuN9FIDOqIwAhpLFLm5ufD0/OtaumKxGLm5uQovIxKJMGbMGISFheHL\nL7/UVJiM6VxdHZCTA/z2G5CYKPxcuwbk5QH19bqOrqU6SR0Kqwvhbu2uk/33se9jWEcURkBjpSdF\nT12Td9Rw7tw5uLu7o7CwEGPHjoW/vz/Cw8NbLBcTEyP9PSoqClFRUaqEy5jGEQG3bgHx8cDVq8CN\nG0BSElBaCjg7A05OgKmpsGx9PXDvHlBUBDg6AkFBws/AgUBUFNCzp5aCbqqtNyufZJdlw93aHWYm\nujm7vre9gR1RtNKG2hYfH4/4+HiV19fYK+3h4YHs7L/mZMnOzoZYLG5zmZycHHh4CLNRursL31ac\nnZ0xdepUJCQktJsoGNM39fXAyZPA3r3ATz8BjY3AqFHA4MHAtGlAYCDQowdgIufYvrERuHtXSCo3\nbgAHDgAvvQTY2gITJgCPPw6MHPlXglG7Vj7cdFl2Av4sPZWkG85YCj3oo3jwS/TatWuVWl9jpaew\nsDCkpaUhIyMDdXV12LNnD6Kjo2WWiY6OxrZt2wAAFy5cgJ2dHVxcXFBdXY2KigoAQFVVFY4ePYr+\n/ftrKlTG1O7GDeDvfwfc3IA1a4CAAOD4caHEtGMH8I9/AKNHA66u8pMEIDwmFgOPPAK8/LKQcAoK\ngP/9T1j3uecAT0/gtdeAO1qqxmSUZqCXrW7OeAKECxhZdrFEQVVB+wsztdDYEYWZmRliY2Mxfvx4\nSCQSLFy4EAEBAdi4cSMAYMmSJZg4cSIOHz4MHx8fWFpaYsuWLQCA/Px8TJs2DQDQ0NCA2bNnY9y4\ncZoKlTG1kEiA778HPvtMKDEtWgT8+ivQS82fqSYmQHCw8LNqFZCSAnz1FTB0qHCk8txzQmLR1Jft\nW8W34G3vrZmNK6jpqMLVylWncXQWIjLgU4tEIhGfGcV0rr4e2LULWLdO6Gd48UUgOhowN9duHPfv\nA99+C3zwAWBmBqxeDTz6aNtHLO1qpb7+2LeP4fF+j+OJoCc6FnAHPPHdE4j2i8bs4Nk6i0FhetBH\n8SBlPzt5ZDZjKmpsFBJE377A1q3Af/8LnDsHTJ+u/SQBAN26AfPmCWdNvfEG8K9/ASEhwKFDQke6\nSi5fbvEBl1qUCl9H344H3AF97PoYTod2K21oaDhRMKaCs2eBYcOADz8EtmwBTp0SOqn1oW/VxEQ4\nkrh0STjKefllYOxY4fTbjmqkRtwqvgVfBx0nCvs+uFV8S6cxdCacKBhTQlaWcMTw1FNCh/TFi0Bk\npK6jap1IBEyeLIzJmDYNGD8eWLgQKCxUfZu55bmwtbCFdVdr9QWqAn8nf/xe9LtOY+hMOFEwpoCG\nBqH2P3CgUM5JSQFmz+5g/V9LzM2BZ58Ffv9dOK02KAjYvFnBctQD8xSlFafBz9FPc8EqyN/JHyn3\nUgyjj5LnemLM+F26BDzzjDDw7ZdfAF/dVl1UZmsrJLs5c4AlS/7qV+nXr42VWuuf0HHZCQCcujvB\nRGSCP6r+gIuVi67DaZuB908AfETBmFzV1cCKFUL55qWXgGPHDDdJNBcaKiS8J54QymZvvqn4VCFp\nRWl6kShEIhGXn7SIEwVjrfjlF2DAAGEajZs3hT4JfeioVhdTU2FAYGKi8FyHDRMGCbZHX0pPANDX\nsS9S7qXoOoxOgRMFY83U1gIrVwJTpwLvvCOMonZ01HVUmiMWA4cPC30Yo0YJz7mhodkCD9TXfy/6\nXeenxjZp6qfQe0bQR8GJgrE//fYbMGQIkJws/D59uq4j0g6RSDgb6vJl4MQJYe6olKbP32ZjAO7X\n30dWWZbeHFEYTKLgcRSMGb6GBmFw2pgxwqjqffsAFz3vH9WEXr2Efpj584HwcOCjj4RBhU2SCpPg\n6+CLLqZddBZjcwaTKIwAJwrWqaWlAQ89JAyY+/VXYWSzMfVFKEskApYtE/ot9u4VJi7MzBQeu/7H\ndfR30Z/JOXvb9UZeZR6q66t1HYrR40TBOiUiYONGYPhwYTzE0aNavMaDAfDxAc6cAXanhaHEJwxb\ntgC/5V9DcI9gXYcmZW5qDn8nf1wruKbrUNpmBH0UPI6CdToFBcLMrrm5wodhm+MIOjFTU8A15zIK\nrwMfzwFyR1/HR0+M0XVYMkJdQ3E1/yqGiYfpOhT5DLx/AuAjCtbJHDggnPbavz9w4QInCUX07w8k\nJADV1tewYlYwvv9e1xH9JdQ1FIl5iboOw+hxomCdQmWlMBr5+eeFqbjXrQO66EefrEEoqStAl251\n2L/dAytXCqO7S0t1HRUQ6haKxHxOFJrGiYIZvYsXhdHINTXCtapbuaIuk+fP+vq1gmvo36M/RowQ\nITFRmA4kOFg4S0qXQlxCcLPwJhoaG9pfWFeMoI+CEwUzWg0NQEyMcBGhd94Bvv5a+IBjSvhzDMCl\nu5cw2H0wAMDSEoiNBTZtEsZfLF8OVFXpJjzrrtbwsPbQ79NkeRwFY/rp5k1gxAjg55+BK1eAxx7T\ndUSGLSE3AUPFQ2XuGztWmMK8vPyv+aN0IdSN+yk0jRMFMyoNDcLRQ2Sk8G33p58ADw9dR2XYiAgX\ncy9iqMfQFo/Z2QHbtgltPnWqcA3vujrtxjfUYygu5FzQ7k47GU4UzGjcuCGMizh5Uhg8t2RJ5x48\npxZhYagbGIJGakRPW/kDTaZPF6Y9uX5dmAblmhaHNoT3DMeZrDPa26GyuI+CMd2rrxfOYho1Srhu\nxNGjwnQUTA0uX8b/tq3EcPFwiNrJui4uwP79wpX/Ro8G1q8HJBLNhxjqForM0kwUVRdpfmeq4D4K\nxnTr55+BQYOA06eFo4jFi/koQt3iM+IxymuUQsuKRMDTTwufi3FxQEQEkJSk2fjMTMww3HM4zmef\n1+yOOjFOFMwgFRUJSeHxx4W6eFwcT8GhKacyTiHKK0qpdXr1EmaiffJJob/otdeEsSyaEtEzAmcy\n9bj8ZOA4UTCD0tgonOYaGAhYWAjfVp94go8iNKUuNATfrr+j0mSAJibCxZFu3ADy8oRR8N9/r+C1\nupUU0SsCpzNPq3/D6mAEfRQiMoirk7dOJBIZxsXVmVqcOydMAw4An39u8H97BmHTlU04euco9jy2\np8PbOn1aSBxiMfD++0BQkBoC/FNtQy1c3ndB2nNpcLZ0Vt+GjZSyn518RMH03p07wIwZQhnjH/8Q\n5mjiJKEdB1IPYLLfZLVsKzJSuPTqhAlCZ/fixcKRhjp0NeuK0X1G43DaYfVskMngRMH0Vn4+sGKF\ncLplSIhw1bXZs4WSBtO8moYanEw/iQk+E9S2TXNzIdn//jvg4CAcVaxZIwza66hJvpNwIPVAxzfE\nWuA/OaZ3/vgDePlloaYtEgk17lWrgO7ddR1Z53Ik7QgufUFwjBiv9m3b2Qmnz165AqSnA97ewJtv\ndmyiwUl+k3D8znFU1mmw11wVRtBHwYmC6Y2cHOCVV4CAAGECv+vXgQ8/BFxddR1Z57T92nac+/4j\njY4B6NVLGNl9/rxQYvTxEebnKi5WflvOls4Y2XMk9iXvU3ucHcLjKBjruMRE4KmnhNlI6+uF27Gx\nPPWGLhVVF+FE+glM7zddK/vz8wO2bhX6n7KyhITx7LNCuVEZc4LnYNu1bRqJsTPjRMF0orZWuC7E\nww8DkycLSeLOHeCjj3g8hD748sqXmOo/FXYWdlrdr48PsHmzMKmjk5PQAT5xojBORpFR3lP8p+B6\nwXUkFyZrPthOhE+PZVqVlAR89RWwY4dw5bTFi4Fp0/giQvqkTlKHPh/3wcEnD2LApEXCnToqndTU\nALt3A599JlzCdt48YP58IaHIExMfg7yKPGycvFFrcbapqX9Cj8pPyn52cqJgGnfnDrB3r3AEcfeu\nMMXDggVt/7Ez3fnk4ieIuxWHw7P161TT69eBLVuAnTuBvn2FgZZTpwLu7rLLFVYVIuCzAFxcdBHe\nDt66CVbPcaJgOkckXEnuyBFg3z4gM1M4apgxQ5j7x8xM1xEyeYqqi9Dv8344NucYgl2CdR1Oq+rq\nhFLUd98BBw8KJz9MmyZcoMrHRzhT7q3Tb+G3gt/w3YzvdB2uXuJEwXQiNxc4e1a4/kNcHGBtDTzy\niPDHGxXFycEQEBFmfT8LblZu+PCRD3UdjkLq6oRp5b//XvhiYm4OjBsHRIy+j7X5A/HWwzF4IugJ\nXYepd/QqUcTFxWHFihWQSCRYtGgRXnvttRbLPP/88zhy5Ai6d++OrVu3IjQ0VOF1OVHoRl2d0Ndw\n4YIwrca5c8KEbyNHCn+kjzwinBfPDMuGnzfg69++xoVFF9Dd/M9BK3pYX5eHCEhOFqaZP3YMiE+9\njNrHJuBvxcfwt0EDMHy4MDbH1FTLgelhGyr92Uka0tDQQN7e3pSenk51dXUUEhJCSUlJMsscOnSI\nJkyYQEREFy5coKFDhyq87p8JTlPha8WpU6d0HUKb6uuJbt0iOnKEaMMGorlziYKDibp1I+rXj2j8\n+FP01VdEyclEjY26jlZ5+t7+7VFX/I2NjfTv8/8mzw88KbM0Uy3bbI822r6hgei9Q9+SzZuuNGHx\nL+TrS9S9O9GgQUTz5wvv6aNHiXJyiCQS5bZt6O8dZT87NVYQSEhIgI+PD7y8vAAAM2fOxP79+xEQ\nECBd5scff8S8efMAAEOHDkVpaSny8/ORnp7e7rrGID4+HlFRUTrbf0WF0Lnc/Cc7G7h1C0hLE85n\nd3MT6r7+/kB4OPDcc8LMrd26ATEx8Vi4UHfxd5Su27+j1BF/cmEyVvy0AkXVRTi34FybV7FTJ220\nvakp8MrEx+HvbYFFBx7FwicWYmn/V5F72w7Xrwud4z/+KBwdV1QAvXsLP336CD+ensJgz6YfKyvt\nxq9PNJYocnNz4enpKb0tFotx8eLFdpfJzc3F3bt32123syESptiurxeuC11TA1RVAdXVf/08eLus\nDCgpEUa5Pvj/wkJhe+7usj9eXsDYsUJy6NMH6NpV18+cqVNpTSmSCpNwKfcSDqQewI0/buDF4S/i\nxeEvwszEODuSJvedjKvuV/F/J/4PA7b0weS+kzFu2DgsmRICXwdfdDXrispKYSqR9HThLL07d4Q+\nt/z8v35MTISE0aOH8PeTmipMRdL8x9ZW+BLVrZsw5UzT7w/eNjU1rKnxNfbOaO+yiU2og30MPV6Y\n9OeGHthu8zvowYf/uvXg7qXrtbj/wf+2v8/W1m2+39pLt7Hhj59BRGgk4T4igBr/TAwktE/T/YDw\n5hKJhDeaiQlgakowMRVum5pA5ndTM4KZBWDeEzDzBszNADNzwMUM8DAnmJkC+PNlyv/z5woAKiKg\nCICc3Nz0PDOuZuDU1lMPPC/5ryc92GBqWK8j62ZfyUbcV3Fa3ac6n2fe5Tz8uPHHdteVNEpQUlOC\ne9X3YCoyRT/nfhjgOgDLwpbhb35/g4WZhfyd6mF9XRVu1m74esrXuFtxF/tT9mNfyj68deYt3C65\nje7m3eHU3Qm2XW1hbmoOcxtzmA8yh/lgc9iamMIWQF8CGiTCQNG6OqDqwC0khSZIv7jVVwANxSLU\nNwCNEmFwoKRR+P3Ud+dRTYDf5Iekj4FEwt+yifD3bPLn37XM7Wa/N/2ditDy9+b3ybu/xe9K0lii\n8PDwQHZ2tvR2dnY2xGJxm8vk5ORALBajvr6+3XUBwNvbG7c/OqSB6LWn/vIdpZanP38aNRKN8rL2\nZ4y1KGEAAAsWSURBVOk6hA7JPZCr6xA6JP9QvtLrXPrz35f4UvGVNPD1d+3atWrfpirK//ynrLyj\ntxRablDTL1tlP6ua/pYBQAuXFpfhreTZJhpLFGFhYUhLS0NGRgbc3d2xZ88e7N69W2aZ6OhoxMbG\nYubMmbhw4QLs7Ozg4uICR0fHdtcFgFu3FHuhGGOMqU5jicLMzAyxsbEYP348JBIJFi5ciICAAGzc\nKAyrX7JkCSZOnIjDhw/Dx8cHlpaW2LJlS5vrMsYY0z6DHnDHGGNM8wxy9ti9e/ciMDAQpqamuHLl\nivT+jIwMdOvWDaGhoQgNDcWzzz6rwyhbJy92AHjnnXfg6+sLf39/HD16VEcRKi4mJgZisVja3nFx\nrXcM65u4uDj4+/vD19cX69ev13U4SvPy8kJwcDBCQ0MxZMgQXYfTrgULFsDFxQX9+/eX3ldcXIyx\nY8fCz88P48aNQ2lHrlikYa3Fbyjv/ezsbIwaNQqBgYEICgrCJ598AkCF9lfnIA5tSU5Opt9//52i\noqLo119/ld6fnp5OQUFBOoysffJiv3nzJoWEhFBdXR2lp6eTt7c3SZQdBaRlMTExtGHDBl2HoRRF\nB3PqMy8vLyoqKtJ1GAo7c+YMXblyReZv85VXXqH169cTEdG7775Lr732mq7Ca1dr8RvKez8vL48S\nExOJiKiiooL8/PwoKSlJ6fY3yCMKf39/+Pn56ToMlciLff/+/Zg1axbMzc3h5eUFHx8fJCQk6CBC\n5ZCBVS6bDwQ1NzeXDuY0NIbU7uHh4bC3t5e5r/lg23nz5uGHH37QRWgKaS1+wDBeA1dXVwwYMAAA\nYGVlhYCAAOTm5ird/gaZKNqSnp6O0NBQREVF4dy5c7oOR2F3796VOQW4afChvvv0008REhKChQsX\n6nX5oIm8QZ6GRCQSYcyYMQgLC8OXXypxiqseKSgogIuLCwDAxcUFBQUFOo5IeYb23s/IyEBiYiKG\nDh2qdPvrbaIYO3Ys+vfv3+LnwIEDctdxd3dHdnY2EhMT8cEHH+DJJ59ERUWFFqMWqBJ7axQdtKhJ\n8p7Ljz/+iGXLliE9PR1Xr16Fm5sbXnrpJV2H2y59aNOOOn/+PBITE3HkyBF89tlnOHv2rK5D6hCR\nSGRwr4uhvfcrKysxffp0fPzxx7C2tpZ5TJH219sx+8eOHVN6nS5duqDLn5dKGzhwILy9vZGWloaB\nAweqO7w2qRJ7a4MPPfTgotGKPpdFixZh8uTJGo6m4xQZCKrv3NzcAADOzs6YOnUqEhISEB4eruOo\nlOPi4oL8/Hy4uroiLy8PPXr00HVISmker76/9+vr6zF9+nTMmTMHU6ZMAaB8++vtEYWimtcJ7927\nB8mfF9a9c+cO0tLS0KdPH12F1q7msUdHR+Obb75BXV0d0tPTkZaWpvdntOTl5Ul/37dvn8xZIfqq\n+UDQuro67NmzB9HR0boOS2HV1dXSo+SqqiocPXrUINr9QdHR0fj6668BAF9//bX0A8xQGMp7n4iw\ncOFC9OvXDytWrJDer3T7a7DDXWP+97//kVgsJgsLC3JxcaFHHnmEiIi+++47CgwMpAEDBtDAgQPp\n4MGDOo60JXmxExH961//Im9vb+rbty/FxcXpMErFzJkzh/r370/BwcH06KOPUn5+vq5DUsjhw4fJ\nz8+PvL29ad26dboORyl37tyhkJAQCgkJocDAQIOIf+bMmeTm5kbm5uYkFotp8+bNVFRURKNHjyZf\nX18aO3YslZSU6DpMuR6Mf9OmTQbz3j979iyJRCIKCQmhAQMG0IABA+jIkSNKtz8PuGOMMdYmgy89\nMcYY0yxOFIwxxtrEiYIxxlibOFEwxhhrEycKxhhjbeJEwRhjrE2cKFin5OXlheLiYl2HIePu3bt4\n/PHH21wmPj5e7ihgfXxOzDhwomAGhYjUMmunvs0t1NDQAHd3d+zdu1flbejbc2LGgxMF03sZGRno\n27cv5s2bh/79+yM7OxvPPvssBg8ejKCgIMTExEiX9fLyQkxMDAYNGoTg4GD8/vvvAICioiKMGzcO\nQUFBWLx4sUyy+eCDD6STHX788cfSffr7++Ppp59G3759MXv2bBw9ehQjR46En58fLl261CLO4cOH\nIykpSXo7KioKV65cwaVLlzBixAgMHDgQI0eORGpqKgBg69atiI6OxujRozF27FhkZmYiKChIuv+I\niAgMGjQIgwYNwi+//CLdbnl5OSZNmgR/f38sW7as1cS5Y8cODB06FKGhoVi6dCkaGxtlHi8rK4O/\nv780llmzZmHTpk1KvS6sE9H4GHLGOig9PZ1MTEzo4sWL0vuKi4uJSLgQUVRUFF2/fp2IhIv6xMbG\nEhHR559/TosWLSIioueee47eeustIiI6dOgQiUQiKioqosuXL1P//v2purqaKisrKTAwkBITEyk9\nPZ3MzMzoxo0b1NjYSIMGDaIFCxYQEdH+/ftpypQpLeL88MMPac2aNUREdPfuXerbty8REZWXl1ND\nQwMRER07doymT59ORERbtmwhsVgsnT6h+YW3qqurqaamhoiIUlNTKSwsjIiITp06RRYWFpSenk4S\niYTGjh1L3333nfS5FxUVUVJSEk2ePFm6z2XLltG2bdtaxHvs2DEaPnw47d69myZMmKDMS8I6Gb2d\nPZax5nr16iUzSeKePXvw5ZdfoqGhAXl5eUhKSpJ+G582bRoAYQbh//3vfwCAs2fPYt++fQCAiRMn\nwt7eHkSEc+fOYdq0aejWrZt03bNnzyI6Ohq9e/dGYGAgACAwMBBjxowBAAQFBSEjI6NFjDNmzMC4\nceMQExODb7/9VtrfUFpairlz5+LWrVsQiURoaGiQrjNu3DjY2dm12FZdXR2WL1+O3377DaampkhL\nS5M+NmTIEHh5eQEQjgTOnTuH6dOnAxBKcydOnMCvv/6KsLAwAMD9+/fh6uraYh9jxozBt99+i+XL\nl+PatWtttj/r3DhRMINgaWkp/T09PR0bNmzA5cuXYWtri6effho1NTXSx7t27QoAMDU1lflQplZK\nNCKRSOZ+IpLW+v+/vTt2SSaO4zj+9iZJaWnSxaElKzgVDAeVQHAXpIaGbHCRZsEhWiRoEOeGEIsE\nRfA2d/+FhnCzpkQwOIgmpeHBI9Pnnodni+fz2s677+93v+U+9/OO3y3aATAMw1nC3jCMpXYXgsEg\nW1tbPD4+0ul0uLm5AeDi4oJMJkOv1+P5+ZnDw0OnZmNjY+146/U6gUCA+/t7ZrMZXq936Zy/nq9h\nrP6DfHp6ytXV1dq2F+bzOU9PT/h8PqbTKcFg0PV4+X/pGYX8OLZt4/P52NzcZDwe0+/3/1iTTqdp\ntVoA9Pt93t7e8Hg8pFIpLMvi4+OD9/d3LMsilUr98wPz4+Njrq+vsW3bmeHYtu1chBuNxl+PcTEL\nuLu7c5bPh1+fcx2NRsznc9rtNslk0tnn8XjIZDJ0u10mkwkA0+mUl5eXlT7q9Tp7e3s8PDxwdna2\nNvxEQEEhP8TXu2jTNIlGo+zs7HBycrJ0ofxes6i7vLxkMBiwv79Pr9cjFAoBEI1GKRQKHBwckEgk\nKBaLmKa50uf37d+9YZTP52m32xwdHTm/lctlKpUKsViM2Wzm1K77sthiu1Qq0Ww2iUQiDIdD/H6/\nsz8ej3N+fs7u7i7b29vkcrml2nA4TLVaJZvNYpom2WyW19fXpX6GwyG3t7fUajWSySTpdJpqtbp2\nTCJaZlxERFxpRiEiIq4UFCIi4kpBISIirhQUIiLiSkEhIiKuFBQiIuJKQSEiIq4UFCIi4uoTPzSj\noW0r0AUAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Classifying some random example data\n", "\n", "[back to top]
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Parameters\n", "mu_1 = 4\n", "mu_2 = 10\n", "sigma_1_sqr = 4\n", "sigma_2_sqr = 1\n", "\n", "# Generating 10 random samples drawn from a Normal Distribution for class 1 & 2\n", "x1_samples = sigma_1_sqr**0.5 * np.random.randn(20) + mu_1\n", "x2_samples = sigma_1_sqr**0.5 * np.random.randn(20) + mu_2\n", "y = [0 for i in range(20)]\n", "\n", "# Plotting sample data with a decision boundary\n", "\n", "plt.scatter(x1_samples, y, marker='o', color='green', s=40, alpha=0.5)\n", "plt.scatter(x2_samples, y, marker='^', color='blue', s=40, alpha=0.5)\n", "plt.title('Classifying random example data from 2 classes')\n", "plt.ylabel('P(x)')\n", "plt.xlabel('random variable x')\n", "plt.legend(['w_1', 'w_2'], loc='upper right')\n", "plt.ylim([-0.1,0.1])\n", "plt.xlim([0,20])\n", "plt.axvline(7.775, color='r', alpha=0.8, linestyle=':', linewidth=2)\n", "plt.axvline(16.225, color='r', alpha=0.8, linestyle=':', linewidth=2)\n", "plt.annotate('R2', xy=(10, 0.03), xytext=(10, 0.03))\n", "plt.annotate('R1', xy=(4, 0.03), xytext=(4, 0.03))\n", "plt.annotate('R1', xy=(17, 0.03), xytext=(17.5, 0.03))\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nlON0AAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Calculating the empirical error rate\n", "\n", "[back to top]
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "w1_as_w2, w2_as_w1 = 0, 0\n", "for x1,x2 in zip(x1_samples, x2_samples):\n", " if x1 > 7.775 and x1 < 16.225:\n", " w1_as_w2 += 1\n", " if x2 <= 7.775 and x2 >= 16.225:\n", " w2_as_w1 += 1\n", " \n", "emp_err = (w1_as_w2 + w2_as_w1) / float(len(x1_samples) + len(x2_samples))\n", " \n", "print('Empirical Error: {}%'.format(emp_err * 100))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Empirical Error: 2.5%\n" ] } ], "prompt_number": 27 } ], "metadata": {} } ] }