{ "metadata": { "name": "", "signature": "sha256:520a7f79e9062a6fb7e79e407e223cd5ba90e31db65c318069378ae8ffe127e2" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction to GPy: Covariance Functions\n", "\n", "### 20th January 2014\n", "\n", "### Neil D. Lawrence\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import numpy as np\n", "import pods\n", "import pylab as plt\n", "import GPy\n", "from IPython.display import display" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Covariance Functions in GPy\n", "\n", "In the last session we introduced Gaussian process models through constructing covariance functions in `numpy`. The `GPy` software is a BSD licensed software package for modeling with Gaussian processes in python. It is designed to make it easy for the user to construct models and interact with data. The software is BSD licensed to ensure that there are as few as possible constraints on its use. The `GPy` documentation is produced with Sphinx and is available [here](http://gpy.readthedocs.org/en/latest/).\n", "\n", "In the introduction to Gaussian processes we defined covariance functions (or kernels) as functions to which we passed objects in `GPy` covariance functions are objects.\n", "\n", "In `GPy` the covariance object is stored in `GPy.kern`. There are several covariance functions available. The exponentiated quadratic covariance is stored as `RBF` and can be created as follows." ] }, { "cell_type": "code", "collapsed": false, "input": [ "k = GPy.kern.RBF(input_dim=1)\n", "display(k)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
rbf.ValueConstraintPriorTied to
variance 1.0 +ve
lengthscale 1.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here it's been given the name 'rbf' by default and some default values have been given for the lengthscale and variance, we can also name the covariance and change the initial parameters as follows," ] }, { "cell_type": "code", "collapsed": false, "input": [ "k = GPy.kern.RBF(input_dim=1, name='signal', variance=4.0, lengthscale=2.0)\n", "display(k)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
signal.ValueConstraintPriorTied to
variance 4.0 +ve
lengthscale 2.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting the Kernel\n", "\n", "The covariance function expresses the covariation between two points. the `.plot()` method can be applied to the kernel to discover how the covariation changes as a function as one of the inputs with the other fixed (i.e. it plots `k(x, z)` as a function of a one dimensional `x` whilst keeping `z` fixed. By default `z` is set to `0.0`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "k.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nSHD8P7wND5VnWattAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here the title of the kernel is taken from the name we gave it (`signal`). \n", "\n", "## Changing Covariance Function Parameters\n", "\n", "When we constructed the covariance function we gave it particular parameters. These parameters can be changed later in a couple of different ways firstly, we can simple set the field value of the parameters. If we want to change the lengthscale of the covariance to 3.5 we do so as follows." ] }, { "cell_type": "code", "collapsed": false, "input": [ "k.lengthscale = 3.5\n", "display(k)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
signal.ValueConstraintPriorTied to
variance 4.0 +ve
lengthscale 3.5 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can even change the naming of the parameters, let's imagine that this covariance function was operating over time instead of space, we might prefer the name `timescale` for the `lengthscale` parameter." ] }, { "cell_type": "code", "collapsed": false, "input": [ "k.lengthscale.name = 'timescale'\n", "display(k)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
signal.ValueConstraintPriorTied to
variance 4.0 +ve
timescale 3.5 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can set the time scale appropriately." ] }, { "cell_type": "code", "collapsed": false, "input": [ "k.timescale = 10.\n", "display(k)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
signal.ValueConstraintPriorTied to
variance 4.0 +ve
timescale 10.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Further Covariance Functions in GPy\n", "\n", "There are other types of basic covariance function in `GPy`. For example the `Linear` kernel,\n", "$$\n", "k(\\mathbf{x}, \\mathbf{z}) = \\alpha \\mathbf{x}^\\top \\mathbf{z}\n", "$$\n", "and the `Bias` kernel,\n", "$$\n", "k(\\mathbf{x}, \\mathbf{z}) = \\alpha\n", "$$\n", "where everything is equally correlated to each other. `Brownian` implements Brownian motion which has a covariance function of the form,\n", "$$\n", "k(t, t^\\prime) = \\alpha \\text{min}(t, t^\\prime).\n", "$$\n", "\n", "Broadly speaking covariances fall into two classes, *stationary* covariance functions, for which the kernel can always be written in the form\n", "$$\n", "k(\\mathbf{x}, \\mathbf{z}) = f(r)\n", "$$\n", "where $f(\\cdot)$ is a function and $r$ is the distance between the vectors $\\mathbf{x}$ and $\\mathbf{z}$, i.e.,\n", "$$\n", "r = ||\\mathbf{x} - \\mathbf{z}||_2 = \\sqrt{\\left(\\mathbf{x} - \\mathbf{z}\\right)^\\top \\left(\\mathbf{x} - \\mathbf{z}\\right)}.\n", "$$\n", "This partitioning is reflected in the object hierarchy in GPy. There is a base object `Kern` and this is inherited by `Stationary` to form the stationary covariance functions (like `RBF` and `Matern32`).\n", "\n", "## Computing the Covariance Function\n", "\n", "When using `numpy` to construct covariances we defined a function, `kern_compute` which returned a covariance matrix given the name of the covariance function. In `GPy`, the base object `Kern` implements a method `K`. That allows us to compute the associated covariance. Visualizing the structure of this covariance matrix is often informative in understanding whether we have appropriately captured the nature of the relationship between our variables in our covariance function. In `GPy` the input data is assumed to be provided in a matrix with $n$ rows and $p$ columns where $n$ is the number of data points and $p$ is the number of features we are dealing with. We can compute the entries to the covariance matrix for a given set of inputs `X` as follows." ] }, { "cell_type": "code", "collapsed": false, "input": [ "data = pods.datasets.olympic_marathon_men()\n", "# Load in the times of the olympics\n", "X = data['X']\n", "K=k.K(X)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now to visualize this covariation between the time points we plot it as an image using the `imshow` command from matplotlib.\n", "```python\n", "imshow(K, interpolation='None')\n", "```\n", "Setting the interpolation to `'None'` prevents the pixels being smoothed in the image. To better visualize the structure of the covariance we've also drawn white lines at the points where the First World War and the Second World War begin. At other points the Olympics are held every four years and the covariation is given by the computing the covariance function for two points which are four years apart, appropriately scaled by the time scale." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def visualize_olympics(K):\n", " \"\"\"Helper function for visualizing a covariance computed on the Olympics training data.\"\"\"\n", " fig, ax = plt.subplots(figsize=(8,8))\n", " im = ax.imshow(K, interpolation='None')\n", "\n", " WWI_index = np.argwhere(X==1912)[0][0]\n", " WWII_index = np.argwhere(X==1936)[0][0]\n", "\n", " ax.axhline(WWI_index+0.5,color='w')\n", " ax.axvline(WWI_index+0.5,color='w')\n", " ax.axhline(WWII_index+0.5,color='w')\n", " ax.axvline(WWII_index+0.5,color='w')\n", " plt.colorbar(im)\n", " \n", "visualize_olympics(k.K(X))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nSf3r/wN+xSwF30d/LgAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "k.timescale" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "
Indexsignal.timescaleConstraintPriorTied to
[0]10.0+veN/A
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "\u001b[1msignal.timescale\u001b[0;0m:\n", "Param([ 10.])" ] } ], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "of 10 is ensuring that neighbouring Olympic years are correlated, but there is only weak dependency across the period of each of the world wars. If we increase the timescale to 20 we obtain stronger dependencies between the wars." ] }, { "cell_type": "code", "collapsed": false, "input": [ "k.timescale = 20\n", "visualize_olympics(k.K(X))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nSZKkwfX/ATw6aVYrNKeFAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Covariance Matrices and Covariance Functions\n", "\n", "A Gaussian process specifieds that any finite set of realizations of the function will jointly have a Gaussian density. In other words, if we are interested in the joint distribution of function values at a set of particular points, realizations of those functions can be sampled according to a Gaussian density. The Gaussian process provides a prior over an infinite dimensional object: the function. For our purposes we can think of a function as being like an infinite dimensional vector. The mean of our Gaussian process is normally specified by a vector, but is now itself specified by a *mean function*. The covariance of the process, instead of being a matrix is also a *covariance function*. But to construct the infinite dimensional matrix we need to make it a function of two arguments, $k(\\mathbf{x}, \\mathbf{z})$. When we compute the covariance matrix using `k.K(X)` we are computing the values of that matrix for the different entries in $\\mathbf{X}$. `GPy` also allows us to compute the cross covariance between two input matrices, $\\mathbf{X}$ and $\\mathbf{Z}$.\n", "\n", "## Sampling from a Gaussian Process\n", "\n", "We cannot sample a full function from a process because it consists of infinite values, however, we can obtain a finite sample from a function as described by a Gaussian process and visualize these samples as functions. This is a useful exercise as it allows us to visualize the type of functions that fall within the support of our Gaussian process prior. Careful selection of the right covariance function can improve the performance of a Gaussian process based model in practice because the covariance function allows us to bring domain knowledge to bear on the problem. If the input domain is low dimensional, then we can at least ensure that we are encoding something reasonable in the covariance through visualizing samples from the Gaussian process. \n", "\n", "For a one dimensional function, if we select a vector of input values, represented by `X`, to be equally spaced, and ensure that the spacing is small relative to the lengthscale of our process, then we can visualize a sample from the function by sampling from the Gaussian (or a multivariate normal) with the `numpy` command\n", "```python\n", "F = np.random.multivariate_normal(mu, K, num_samps).T\n", "```\n", "where `mu` is the mean (which we will set to be the zero vector) and `K` is the covariance matrix computed at the points where we wish to visualize the function. The transpose at the end ensures that the the matrix `F` has `num_samps` columns and $n$ rows, where $n$ is the dimensionality of the *square* covariance matrix `K`. \n", "\n", "Below we build a simple helper function for sampling from a Gaussian process and visualizing the result. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "def sample_covariance(kern, X, num_samps=10):\n", " \"\"\"Sample a one dimensional function as if its from a Gaussian process with the given covariance function.\"\"\"\n", " from IPython.display import HTML\n", " display(HTML('

Samples from a Gaussian Process with ' + kern.name + ' Covariance

'))\n", " display(k)\n", " K = kern.K(X) \n", "\n", " # Generate samples paths from a Gaussian with zero mean and covariance K\n", " F = np.random.multivariate_normal(np.zeros(X.shape[0]), K, num_samps).T\n", "\n", " fig, ax = plt.subplots(figsize=(8,8))\n", " ax.plot(X,F)\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 75 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are now in a position to define a vector of inputs, a covariance function, and then to visualize the samples from the process." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# create an input vector\n", "X = np.linspace(-2, 2, 200)[:, None]\n", "\n", "# create a covariance to visualize\n", "k = GPy.kern.RBF(input_dim=1)\n", "\n", "# perform the samples.\n", "sample_covariance(k, X)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "

Samples from a Gaussian Process with rbf Covariance

" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
rbf.ValueConstraintPriorTied to
variance 1.0 +ve
lengthscale 1.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAHfCAYAAACBE6uXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VEX3wPFvKgRCAiR0hNBD7wKiFFEpogIKiqKAKHbs\nKBbELiqIiIooKEUBQRCQKiBVqrSENEggIYH0kF62zO+Psb4/Ssru3t3kfJ5nH3xfkntPQrLnzsyZ\nMyCEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEOVKZeAAcAzYDzxrbDhCCCFExVXlzz8r\nAaFAcwNjEUIIIVySuw2ukffnn76AJ1Bog2sKIYQQooTcgeOAGXjS4FiEEEIIl+Rmw2sFARuA+4Cj\nf/2fzZo1U9HR0Ta8jRBCCOHUoinF8q0tpqz/chadkHv8+/+Mjo5GKVVuX2+88YbhMcjXJ1+bfH3l\n7yVfn+u+gGalSaJlTciBQPU//zsAuAVYU8ZrCiGEEBWOZxk/vx6wEPAAEoGPgQtlDUoIIYSoaMqa\nkEOALrYIxFX169fP6BDsqjx/feX5awP5+lydfH0Vjy2Lui5H/TmnLoQQQpR7bm5uUIr8asuiLiGE\nEEKUkiRkIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQwglI\nQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQ\nwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRk\nIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGcgCRkIYQQwglIQhZCCCGc\ngCRkIYQQwglIQhZCCCGcgKfRAQghhBAloRQkJEBUFCQmQkoKWCz676pXh9q1ISgIWrYEb29DQy0R\nNwfcQymlHHAbIYQQ5VVEBGzYAFu3woED4OkJrVtDvXoQGKj/N8DFi5CUBDExEBsLwcFw441w000w\nYIBjErSbmxuUIr9KQhZCCOGUMjLgu+9g8WJIToahQ+Hmm6F3b6hb9+qfX1AAR47A9u2waROEh8Pw\n4fDII9C9u/3iloQshBCiXDh3Dj76CJYsgSFD4MEHoW9f8PAo+3WXLoUvv9QJffJkGDYM3GycCSUh\nCyGEcGnp6fDee/Dtt/DQQzBpEjRoYPv7WCywdi289ZZO8u+/r0fetlLahCxV1kIIIQylFCxaBG3a\nQHY2hITA9On2Scagk/Dw4fDHH/Dyy/DYY3DnnRAXZ5/7FZckZCGEEIaJj4dbboFZs2DdOvjqK6hf\n3zH3dneHu+6C0FDo3Bm6doUvvgCr1TH3/3/xGHNbIYQQFd3KlToJ9u0LBw/at9DqSipXhtdegz17\n9Ej9llv0tipHk4QshBDCoUwmeOYZeOklPSp+7bV/ti0ZqVUrnZT79IFu3fQWK0eSoi4hhBAOk5qq\np4mrVIHvv4caNYyO6NK2b4cxY3Rh2UsvlawSW4q6hBBCOLXTp6FXL/1at855kzHoZiKHDsGKFTBu\nHBQW2v+ekpCFEELY3cGDcMMN8OKLeptRWfcUO0KDBrBrF+Tk6HXlzEz73k8SshBCCLvatUt32Zo3\nDyZONDqakqlaVY+SO3TQxWeJifa7lyRkIYQQdrN1q14zXroUbrvN6GhKx90dZs/We5VvuEF3/LIH\nJ6hrE0IIUR7t2AH33gs//aQTmStzc4PXX9cj5n794LffoFEj295DErIQQgib27cPRo2C5ctdPxn/\n23PP6eTcr5+eim/Y0HbXloQshBDCpkJD9aENCxdC//5GR2N7zz6r91IPGgS7d9uuWlz2IQshhLCZ\nc+f08YgffKCnq8srpeCFF/TZzFu26H3Vf5HTnoQQQhgqM1Mn43HjdLIq76xWGDtWf92rVv3TbUwS\nshBCCMNYLHD77RAUBHPm2P6MYWdlMumvu359+OYb/XVLpy4hhBCGmTpVN9CYNaviJGMALy+9Tzk0\nVFdhl4UUdQkhhCiTFStgyRLdatLLy+hoHM/XF375BXr0gNatS38dmbIWQghRaidOwIABsHkzdOli\ndDTGCgnRPbBTU2XKWgghhAOlpcHw4bqLVUVPxgDt28P8+aX/fBkhCyGEKDGrFYYM0Unoo4+Mjsa5\nSFGXEEIIh5k1C7Ky9MlNwjZkhCyEEKJEjhzRXaoOHtTbnMR/yQhZCCGE3eXmwujRet1YkrFtyQhZ\nCCFEsT30EJjN8N13RkfivEo7QpZ9yEIIIYplxQrYuVNPWQvbkxGyEEKIq4qP11ub1q+H7t2Njsa5\nSS9rIYQQdqEUDB2qO1FNnWp0NM7PqCnra4BFQG0gBZgH/FDGawohhHAi33+vj1VcvdroSMq3so6Q\n6/75OgYEAgeBjkD2vz5GRshCCOGikpKgQwfYsAG6djU6Gtdg1LanRHQyBkgFTgLdynhNIYQQTuLJ\nJ2H8eEnGjmDLKuvmQFv0KFkIIYSLW7VKHx6xaJHRkVQMtkrI1YDlwLNA7v/+5bRp0/7+7379+tGv\nXz8b3VYIIYQ9pKfr0fGKFeDjY3Q0zm3Hjh3s2LGjzNexRZW1F7Ae2ADMusTfyxqyEEK4mAcf1Of8\nzp5tdCSux6gqazdgPhDKpZOxEEIIF7N3L2zZAuHhRkdSsZS1qKs3MAa4ETj652tQWYMSQghhDLMZ\nHn8cZsyAatWMjqZiKesIeQ9yQIUQQpQbX3wBgYEwapTRkVQ80qlLCCEEAImJ0L497NoFrVsbHY3r\nktaZQgghyuT++6FBA/jgA6MjcW1y2pMQQohS27VLn+QUFmZ0JBWXrP8KIUQFZzLBE0/AJ5/orU7C\nGJKQhRCigps3D+rWhREjjI6kYpM1ZCGEqMAuXoRWrWDrVl3QJcpOirqEEEKU2Isv6qT89ddGR1J+\nSEIWQghRIjExcO21EBqqp6yFbRh1/KIQQggX9fLL8OyzkoydhYyQhRCiAtq7F0aPhogIqFLF6GjK\nFxkhCyGEKBarFZ57Dt57T5KxM5GELIQQFcyyZTop33uv0ZGIf5MpayGEqEAKCyE4GBYuhD59jI6m\nfJIpayGEEFc1b54+OEKSsfOREbIQQlQQOTnQogVs3AidOhkdTfklI2QhhBBXNGsW9O8vydhZyQhZ\nVHjZZjNxhYVkmExkWixkms1kms2YlMIdcHdzwx3wcncnwNOTQC+vv181vbxwd3PEr5EQZZOaqteO\n9++H5s2NjqZ8k05dQlyBVSli8vM5lpPD0ZwcIvPyOFtQwJmCAgqsVhpVrkwNT0+qe3ri7+mJv4cH\n3u7uWJXCCliUokgpMkwmUv98pZhMFFittPDxoWWVKrT08SG4ShWu9fOjhY/PX7+UQjiFF16AvDz4\n4gujIyn/JCEL8S/5Fgu/Z2XxW0YGuzMzOZaTg7+nJ519fens60vrqlVpUrkyQZUrU8vLq9TJM9ts\nJio/n6i8PKLy8zmZm8uBrCxyLBZ6+vnRy8+P/jVq0NPPDw9J0KIkLBbIyoKiIn0+4l8vDw/w8fnn\nVakSXOVnKz4eOnbULTLr1XNQ/BWYJGRRoSmlCM3NZU1qKlsyMjiSnU1HX1/6Va9O3+rV6VqtGgFe\nXg6L53xhIfuzstiXlcWv6emcKyxkYM2a3BoQwKCaNR0ai3BCqakQGQmxsRAX988rKQnS0/UrOxuq\nVtUJ18vrn5fFAvn5/7ysVqhVC+rU0T0w69SBoCBo2VIf49SyJQ8/V43AQHj/faO/8IpBErKocKxK\nsTczk9WpqaxJTcWiFMMCAxkcEEBvPz98PT2NDvFv8QUFbExPZ31aGjsuXuR6f3/G1KnD7YGBVPHw\nMDo8YS8FBXD8OPzxB5w4AeHh+lVUpBd0g4KgUaN/XnXqQEAA1KwJ/v56NHw1JhMkJ+tknpioX2fO\n6IQfFUVUpKJ30XaiBk6ixg3t9GkS3brp6wu7kIQsKoyI3FwWJyWxJCkJP09P7qpVizsCAujo6+sS\n67Y5ZjM/p6ayJCmJA9nZDAsM5KF69bjOz88l4heXoRScPQu7dsGePXDoEERF6VFq1656zrhNG/2q\nW/eq08y2cv8YRavaGbzWcyscPKhfR47o/U+33KJfvXtD5coOiacikIQsyrUcs5klSUksSEwkvrCQ\ne2vX5v66deno62t0aGVyobCQH5KTmXv+PH4eHkxq2JC7a9WisoyanZ9SOuHu3KmT8K5deuTbty/c\ncIMeiXboYGiii4jQDUBOnwY/v3/9hcmkHxg2b4YtW+DkSf2Bd90Fd9wBNWoYFnN5IAlZlEvhubl8\ncf483ycl0b96dR6uV4+batTA0718baG3KsWm9HRmx8dzNCeHR+vXZ1LDhrLW7GwuXoStW2HDBti0\nCTw9dQLu21cntBYtHDbyLY5774V27eCVV67ygRkZ+utZsQK2bdMPFKNGwfDhUK2aQ2ItTyQhi3JD\n/ZmcZpw7R2huLg/Xr88j9erRsIJMqUXk5jIjPp5VKSk8Ur8+zzVsSKC3t9FhVUxK6bXfjRt1Ej56\nFK6/HgYP1q8WLYyO8LLCwqBfP4iOLmFOzc6Gdev0CRS7d8PIkTBxol53FsUiCVm4PLPVyvKUFD6M\ni0MBk6+5hlG1a+NdzkbDxXU2P5/34+JYmZLCw/Xq8WKjRjJidgSLRa8Br1oFq1fryuYhQ/Srb1+X\nOa/wnnugc2d46aUyXOTCBfj2W/j6a11o9sgjcP/9eruVuCxJyMJlFVqtLLhwgelxcTTx8WHyNdcw\nqGZNKXD6U2xBAe/FxrIqNZWXGzXiyQYNqFRBH1LsprBQT0WvXg1r10LDhjBihJ6ybdPGqaahiyM0\nFG66Sa8d26TMwmrV35/PPtNrz089BY8/LmvNlyEJWbgck9XKd4mJvBMbS7uqVZkaFESP/1SeiH8L\nz83lxehowvPymN60KXfWqiUPLWVhMsGvv8LSpfDLL3qxdcQIGDYMmjQxOroyGTlS15S9+KIdLn7y\nJHz8MaxZA+PG6RZg9evb4UauSxKycBkWpVicmMhbsbE09/HhzaAgesmeyGLbmp7O89HR+Hl68mWL\nFrRz8Upzh7JY9Lro0qV6SrpFCxg9WmewunWNjs4mTpzQO5mio3VfEbuJj4eZM/XByg89BJMn6z3U\nQhKycH5KKTampzM5OpqaXl6826QJN1SvbnRYLsmiFPPOn2fq2bNMqFuXqUFB0mDkcpTS06xLl8KP\nP+quVqNHw91368Yc5czIkdCzJzz/vINumJAAb78NK1fCM8/oVwV/SJSELJza4awsJsfEcKGoiOlN\nm3JbQIBMt9pAYmEhz0ZHsz8rizktWnCrjFD+ERqqK4WXLdNrwKNH61fr1kZHZjfh4bqyOibGzqPj\nSzl9Gt54A7Zvh/feg7FjoYLWOkhCFk7pQmEhL8XEsDUjg2lBQTxYt26520PsDLakp/N4VBTX+vkx\np0ULalbUauwzZ/RIeOlSvWf47rt1Eu7SxeUKs0rjgQd0Y7BXXzUwiL+KvpTSRWDXXmtgMMaQhCyc\nislqZXZCAu/HxvJQvXq82rgx1Zyot3R5lGexMCUmhpUpKcxr1arijJaTk/VU9A8/6FHaXXfpJNy7\nd4UaocXE6Nx3+jQYvhJktcLixTBlCgwaBNOn66WCCkISsnAav6anM+n0aYIqV+bT5s1p6SL7NsuL\nHRkZjI+M5Mbq1fmkeXP8yuODUHY2/PwzfP897N8PQ4fqtlQ336z3DVdAjz6qa6refdfoSP4lKwum\nTdP/TjNn6n+jCjBTIQlZGC62oIDnTp/maE4Os5o3l3ViA2WbzbwQHc3m9HR+aNOG68pDFXtRkW7v\n+P33+s8+feC+++C22wxYMHUuCQnQvr0+4MkpB6KHDsGECXp/99y5+mSrcqy0CbnizOcIuzFZrUyP\ni6Pr4cN08vXlZPfu3B4YKMnYQNU8PfmqVStmt2jBiNBQ3o2NxeKKD8ZWqz68YeJEqFdP73+98UY9\nP7tunW5HVcGTMcCMGbqGyimTMUD37nD4MFx3nT756ssv9Rqz+A8ZIYsyOZSVxcORkdTx9mZuy5Y0\nkZZ6Tie+oIAx4eG4u7mxpHVr6leqZHRIV6aUPkP4++91hXRAgJ7qvOeecj+yKo3UVGjZEkJCoEED\no6MphvBw/fQQGAgLFpSb/d//JiNk4VA5ZjPPnj7NbSEhvNioEZs6dJBk7KQaVq7Mtk6d6F+9Ol3/\n+IPN6elGh3Rp4eHw1lvQtq1uWentraemjx3TTSckGV/SrFl677FLJGPQ28727tUj5c6ddccvAcgI\nWZTChrQ0Ho+Kom/16sxo1kxOInIhuy5eZHRYGI/Wr8+rjRvjbvSyQni4PvLvxx/1EYAjR+pj/3r1\nqhDFP2WVmQnNmsHBg9C0qdHRlMLevfqwiptugk8+KTfLD1LUJewutaiISadPcyAri69atuSmmjWN\nDkmUwoXCQkaFheHn4cHi1q0dv2f5Ukl45EidhCvQNiVbeO89/e1cvNjoSMogKwueeEIfbbliRblo\n3CIJWdjVmtRUHouKYnTt2rzdpIm0aXRxJquVyTExrElN5ae2bels70PoJQnbXG6uHhX/9ps+kMql\nKQXz5+t9y7Nn633kLkwSsrCLDJOJp0+f5vfMTL4LDuZ6wzsOCFtanpzMk6dO8XmLFoyqXdt2F7Za\n9TzqmjX6lZkpSdjGZs3S52T89JPRkdjQsWP6Z+Tmm/UUtrMXIF6GJGRhc5vS0ng4Koo7AgKY3qwZ\nVWVUXC4dzc5mWGgoD9arx9TGjUu/Xa2gALZt0wl43Tp9oP0dd+hX9+6ShG2osFCvHa9Zo2ujypXM\nTL1nOTZWn0/dsKHREZWYJGRhM1lmM89HR/Nrejrzg4MZIIeQl3uJhYUMCw2lceXKfBscXPwlibQ0\nfZbw2rX6APuOHf9Jws2b2zfoCuybb/TIeONGoyOxE6Xgo4/0NMCKFboNqguRhCxsYntGBhMiI7mp\nRg1mNGtWPtsuiksqsFh4KDKSiLw81rRvT4NLTRcqBRERsGGDTsJHj8KAAToB33qrE3emKD+sVl33\nNG8e9O1rdDR2tmEDjBunq9ceesjoaIpNErIok3yLhZdiYlidmsq8li0ZXFEOJhD/oZRielwccxIS\nWN2uHd39/CAnR09Fb9yo9wVbrfrAgNtu09tVZP+5Q/38M7z/vm7hXSF2hkVGwu23wy236H7YLtCr\nXBKyKLWQnBxGh4XRrmpVvmzZkhou8AMv7Egp1hw9ykNpaXy+di2jvvsOevTQSXjwYF3SWyEygfNR\nSneffOEFuPNOo6NxoIsXdeW11aqnsP38jI7oiiQhixJTSvF5QgJvxsYyo1kz7q9TR/pPV1RZWf8d\nBbu7c2z0aIbefDPPNWrEc7Ie7BT27IHx4/WqQYWrsTSb9TnLe/fC+vVwzTVGR3RZkpBFiaQUFTE+\nIoIkk4mlrVvTXI5IrFiUgtBQnYA3btSN/3v10iPgQYMgOBjc3IgrKGDwiRPcUrMmM5o1M76zVwV3\n++0wZIg+arFCUkpPW3/yia5h6NLF6IguSRKyKLYt6emMj4jggbp1eTMoCG9HbUexWiE+Hi5cgKQk\nSEzUfxYV/ffjvLygdm2oU0e/6tbVfYylwKxsLl787yjY21sn4MGDoX//y7YtzDCZGBYaSm1vbxYH\nB1O5wg3NnENYmD7o6swZWbbnp5/0U8l33+liQicjCVlcVaHVyqsxMSxPSWFhcDA32nM7k9WqK3AP\nHdIn9xw7pkdkfn5Qv/4/ibZOHahc+X8CLYTk5H+SdmKiPtKmdWvo0EFvrenaFa69VicVcWlWq/7e\n/5WAjx6F66//ZxTcokWx14ILLBbGRkRwvqiINe3aOb7dpuDBB3VnrtdeMzoSJ7F/Pwwbpivcxo83\nOpr/kIQsrigyL4/RYWE0rlyZb1q1IsAeb6gXLsCWLbB5M/z6qz5e7brrdALt2FEn09I+BOTk6IR+\n/DicOAEHDsCpU3DDDbqrzy23/D3NWqGlp+t/g02b9Mvf/59irL59yzS0sirFi9HRbExPZ2OHDjT+\n3wcpYTcJCdC+PZw+rfutiD9FROif78cf1yeCOQlJyOKSlFLMv3CBKWfO8E6TJkysV8+2hVuZmbBy\nJSxapBPlgAEwcKB+2fu4vNRUPQX76686CVWtCmPG6LNzmzSx772dhdUKf/zxz1rwyZM68f41CrbD\nEUCzzp3j43Pn2NChAx18fW1+ffH/TZ6sV3ZmzTI6EicUH69/1gcNgg8/dIqOcJKQxf+TbjIxMTKS\nU/n5LG3Thja2OtpMKdi+XTeD37BBL2w98ICuNjFqClkp2LdPH2r/44/6xPaxY3WCLm8Fa4WF+vu/\nZo0ubPH319/7wYP1lLQDRq4/Jifz1KlTrGrXjt7+/na/X0WWmamfq44cgcaNjY7GSaWn633xzZrp\n9yWDl1QkIYv/2HnxIveHhzMiMJAPmja1TSGOyaST3ccf68f1xx6De+7RU9POxGTS0+Zffw2//w4P\nP6yPd3OZE9wvISNDP/z8/LOeEWjX7p8WlS1bGhLS5vR0xoSHsyg4WBrJ2NFHH+mVmiVLjI7EyeXl\n6YMpvL1h2TJDD6aQhCwAfazeW7GxfHPhAvNbtWKILd4o8/Lgq6/0VoNmzeDFF/X0kBNMDV3V6dP6\nOLclS/QI8pVXoG1bo6MqngsX9HLAzz/r4rj+/XUCHjpUV6E7gX2ZmQwLDWVW8+aMrlPH6HDKncJC\nPTresEGXYYirKCrSDUTy83UltkHl6JKQBTH5+dwXHo6/hwffBQdTt6xPiGaz3lYwbZru1DRlCnTr\nZotQHe/iRf1QMXOmLgKbNs05Dz9IS4NVq/QT/pEjehruzjt1zE469R6Sk8PgEyd4tXFjHnPlWQgn\n9O23sHy5rs8TxWQ26+WqxES9pGOrpboSkIRcwX2flMQzp0/zaqNGTGrYsGwNHJTSx+dNmaKnoz/8\nUCfk8iArS1fGzJ4NI0bA1KnGH++Wna3Xg5ct0wfcDhyon/IHD3bIerAtxOTnc/Px44yvW5dXy3KE\no/ib1apXJubM0WUaogQsFpg4UffB3rDB4a02JSFXUFlmM0+cOsXh7Gx+aN2aztWqle2CkZF6bTg5\nGT74QG+6L49vrunpenHu66/h2Wd1c2BHrjkppde3v/lGT0n37q2T8O23Q1n/DQ1yobCQgSdOMODP\nk8Kkq1fZrF8Pr7+ui+jlW1kKVis8+aTuQrdpk0P3i5U2IbvAIqC4nP2ZmXQ+fJgq7u4c7tq1bMm4\nsBDefFMnhjvu0I08hg4tv+8ENWvqhgKHDulf2Hbt9JO0vSUl6QeB1q31Iext2+q9lL/8Avfd57LJ\nGKBepUrs7NSJA1lZPBIVhUUexMtk5kx4/vny+ytod+7u8PnnulfBjTdCSorREV2VjJBdkEUpPoiL\nY3Z8PF+2bMmIsp5Bu3MnPPKIbqzx2WdO3bTdbjZtgkmTdKKcM8e23wOldGX0l1/Cjh0wfLhOxtdd\nVy7fbXPMZm4LDaW+tzcLg4PxdIXiPydz7JguH4iJMXwHj+tTSk81rF4Nv/3mkIJImbKuIM4VFHB/\neDhubm4sDg6mYVnWGPPz4aWX9A/qZ5/pNnQVWWGhXi+fPVtP1z/4YNkSZk6Obpjy2Wd6K8aTT+pt\nYi48Ci6ufIuFESdPUsXdnaVt2jiuX3o58cADetLGiZpPub433tDvddu3232rpiTkCmBVSgqPRUXx\nTMOGTG7UCI+yJItjx/QUabt2MHdu6VtalkchITBunH6S/vrrkhd9xcfrwrFvv4V+/fTIu0+fcjka\nvpJCq5XRYWEUWK381LYtPnIoRbH81SYzOlp+LW1KKXj1Vd3Rbts2u64pyxpyOZZrsTAxMpLJ0dGs\nbd+eKY0blz4ZW626scfNN+sq6mXL5Lf+f7VvrxvXX3cddO6st34V56EyMlJPRXfooL/PR47ovZB9\n+1a4ZAxQyd2d5W3aUN3Tk1tDQsgxm40OySXMmQP33y+/ljbn5gbvvqvb+95yi94K6WRkhOzkjmZn\nMzosjB5+fnzWogV+ZTmCMDVV93nOz4fFiyEoyGZxllvHj+vvWadOeibhUtPNx47BO+/Arl16WvqJ\nJ0A6V/3NohSPREYSnpfH+vbtqS6LopeVk6N/LQ8etEsbcgH64frZZ3Wr3V9/tcuWKCNHyAuAJCDE\nBtcSf7Iqxcdxcdxy4gSvBwWxsHXrsiXjgwf1kYVdu+rCBknGxdOxo67E9vHRh6EfOfLP34WF6VZ9\ngwfr6vQzZ/S+ZknG/+Hh5sa8Vq3oWq0aA44fJ/V/z78Wf/vuOz2hIsnYjtzcdNfBbt307252ttER\n/c0WI+QbgBxgEdD+En8vI+QSSigsZGx4OAVWK4tbt6ZJWdq/KQXz5ukqw3nzpHCrLJYu1evBjz6q\ny19//VW3EX38cUO6AbkapRRTYmL4JS2NrR07lr2TXDljsUCrVroO8LrrjI6mArBa9e9yRIReV7bh\n77DRRV1BwDokIZfZX4VbTzZowJRGjcq2ZaSgQDf5OHRIt2M06BCCciMtDZ57Tp8o1aaNPsCiXj2j\no3IpSineiY1lcVIS2zt2LNsugXJm9WqYPl3PpFbAkgNjWK267iMuTndisdHPoxR1ubgcs5mHIiJ4\nMTqaNe3a8XpQUNmScUqKLl7IzYUDByQZl0VRkZ7iCg4GX189Ou7USU93nTljdHQuxc3NjdeDgphY\nrx59jh3jbH6+0SE5DWkEYgB3d90tLzBQb0k0uPCwDIuSxTdt2rS//7tfv37069fPEbd1GYeysrgv\nPJze/v4c69aNamVZKwa9tjl0qN7W9OabrnEqk7P65Rd45hmdjHft0o1DABYu1PuVe/XSI+YBA4yN\n08W80KgRldzd6XvsGFs7dqSFkx6c4SgHD8K5c7pnjHAwDw9d5HrHHbr3wHfflfg9c8eOHezYscMu\n4ZVGEJcv6lLi0sxWq3rv7FlVa88etTwpyTYX3bJFqVq1lFq40DbXq6hiY5W64w6lWrZUavPmy3/c\n9u1K1anyqqF3AAAgAElEQVSj1CefKGW1Oi6+cuKrhATVYO9eFZaTY3Qohrr7bqVmzjQ6igouN1ep\n669X6qmnyvy7DJRqnVaGTgaJKyjgxmPH2Jyezh9duzLKFu3cvvlGb2BcuVK3+hElZzLpbl1duuiK\n9BMn9J7Fy+nfX+9Z/uYbeOopw6e8XM3E+vV5t2lTbjx+nBM5OUaHY4jYWF0fOGGC0ZFUcFWq6Bmx\nPXt0Vy8D2CIhLwV+B1oC54DxNrhmubY8OZluf/zBkIAAtnXqxDVlLSRQSm94f/99fXxfnz62CbSi\nOXxYJ+IdO/S6++uvF+8EqKAg2LtXNwYZNkxvJhXFNrZuXWY1b84tx49zxIm2oDjK7NkwfrzDTwgU\nl+Lvr/va//ijXtR3MGkM4kBpJhNPnjrF0exsvm/Thq626GlstepN7jt26B8kqfotub9Oupo/Xxdv\njR5dusoak0lXtR85op+069e3fazl2OqUFB6JimJtu3b09Pc3OhyHyMqCJk3g6FFo1MjoaMTfzp3T\np0RNnarXlUtIqqyd3C+pqXQ4dIh63t4c7dbNNsm4qAjGjNGdonbulGRcGgcP6lFxRISenr733tKX\nuXp56d7XI0dCz55w8qRtYy3nhteqxbfBwdwWGspuJ2xraA/z5+sVEUnGTuaaa2DLFnjtNd3+1kFk\nhGxnmWYzz54+zY6LF/k2OJi+1avb5sJ5eTBihN43t3Sp7iQlis9shrfegq++gk8/hbvvtu1+kyVL\n9B6WNWt0chbF9mt6OveGh7OsTRsGlOOGzmYzNG8OK1ZA9+5GRyMu6dgx/cS0YoVuoVZMMkJ2QlvT\n0+lw6BDebm4c79bNdsk4O1vvga1TRxdwSTIumTNn9Dr7gQP6F+6ee2y/+XPMGH3a02236QYiothu\nrlmTlW3bMjosjI1paUaHYzerVumRsSRjJ9apkz6AZ9QoPYNmZ5KQ7SDXYuGJqCjGR0Yyr1Ur5rZq\nVfa9xX/JzISBA3WPvW+/BVtdt6L44Qe49lq46y7dLs+e0/xDhsDPP+uK9+XL7Xefcqhv9eqsadeO\nsRERrElNNTocm1MKZszQjd+Ek7vxRn2m+ZAhcPasXW8l7+Y2tufiRcZFRNDb35+Qbt1se7JNerpO\nxr166WlWaelTfHl5uuf0/v16bahzZ8fct3dvvadl8GDIyNC9c0Wx9PL3Z0P79twaEkKh1WqbrYFO\n4vffdSfW224zOhJRLKNGQWIiDBqkt0UFBtrlNpKQbSTbbObVM2dYmZLCFy1aMKxWLdveIDVVn2F8\n0016n6wk4+I7dQruvFNPP/3xh+MPgujQQW9HGzBAV3Q//bRj7+/Cuvn5saVjRwadOEGR1cqYunWN\nDskmZs7UmyM8PIyORBTbpElw4YLugrhtm13eR6SoywbWp6XxeFQUA2rU4ONmzahp6/Ne09L0tMnQ\nofrcXUnGxffzzzBxoi7geuQRY793sbE6KU+cCJMnGxeHCwrLzeXm48d5q0kTJrj4boLoaOjRQ/84\nyCFhLkYpvQ0qOVm/t1zmvd7o056upNwm5OSiIp45fZoDWVl81bIlN9WsafubZGToN/GBA+G99yQZ\nF5fZDK++qgsyVqzQ68bOICFBP1yNGaMbj4hiO5WXx4Djx3mpUSOeaNDA6HBKbdIknYjff9/oSESp\nmEy6AVCtWrqO5xLvyZKQHUgpxaKkJCZHRzO2bl2mBQVRxR5zT5mZepr6hhvg448lGRfXxYt6G5PV\nqreE2Wm9p9QSE/VD1vDh8Pbb8u9aAmfy87nx+HGeatCA5665xuhwSiwjA5o1g9BQ6Rvj0nJz9e9w\n//6XfLIqbUKWNeQSisjN5clTp0gzm9nQoYNtGnxcyl9bm3r0kGRcEqdO6UqZgQN1GaszVqHXrQu/\n/abrAdzd9XS6KJYmPj7s6tSJG48fp8Bq5ZXGjY0OqUTmzYNbb5Vk7PKqVtXd+K6/Xu/UmDTJJpeV\nEXIx5ZjNvBMbyzcXLvBq48Y82aABXvY61jAvT1fztWkDX34pybi4tm3Tnbbefluv0zq75GT9hH3P\nPTJ9XUIXCgsZcPw4d9WqxZtBQX+NSJxaURE0bQrr1jmuyF/YWWys3kkxc6auxP6TjJDtRCnFypQU\nno+Opm/16oR070694hw4UFpFRboiuEkT+OILScbFNXcuTJum14z79zc6muKpXVs/RPTrB97e8NJL\nRkfkMupVqsSOTp246c+R8vSmTZ0+Ka9YAS1bSjIuVxo3hg0b9GxX3bplPthHRshXEJGby1OnT5NY\nVMTnLVrQx1adti7HYoH77oP8fN0/1RmnW52N1QqvvAKrV8P69boXoatJSNBt+R5/XDpFlFCaycTA\n48e5zt+fT5s3d9qkrBR066ZXJ2691ehohM1t3arfu3/7Ddq0kdaZtpRuMvH86dPccOwYt9asyZGu\nXe2fjJWCJ5+EpCTd1UmS8dUVFekuWDt36uMPXTEZAzRoANu3w5w58PnnRkfjUgK8vNjasSOHsrN5\nNCoKq5M+/O/apeuABg82OhJhFzfdpGt9hgyB8+dLfRl51/+XQquVOQkJfBAXx4jAQEK6daOuPaen\n/+211+DQIf3GXNbzkSuCrCx9uIavr572rVLF6IjKplEj/XX06QPVq+unbVEs1b282NKhA7eGhPBg\nRATzg4PxcLKR8l+NQOxVdiJsx2QxkZybTFZhFrmmXCxWC+5u7lT2rEztqrUJqBKAp/slUuf990Nc\nXJmmQGTKGrAqxfLkZF45c4b2VasyvWlTWjtyx/6MGfDNN/ox2tYdvsqjCxf0UOO663SP2fLU7ig0\nVG+nWLBA5jZLKNdi4Y6QEGp5e7MoONh+RZclFBWli3HPnnX958byJM+Ux5ELRziUcIjjSceJTIsk\nOj2ajIIMAqsE4l/Jn6reVfF098SqrOSZ8kjJTSGjIAO/Sn7UrlqbVgGt6FCnA+1rt6d9nfa0qNEc\nj8efwG3ePJB9yCW38+JFXoiOBuCjpk3p5+jj3r79Ft58U7dWdMF9lQ535ozemz1unG784WQjIZvY\nv19v3Vq1Su9BF8WWb7Fw18mTVHJ3Z1mbNng7QVJ+/HEICNDF/8I4SinCU8P5OeJntkRv4fD5w7Sp\n1Ybu9bvTqW4nggODaV6zObWr1sbD/fIP+RarhYyCDBJzEglPCSckOYQTSScISQ4hNS+V6+v3ZMPY\nLeCsCTkrK4tq9tqvW0r7MjOZdvYsUfn5vNekCXfXro27o9/cV6+GJ57QhQCtWjn23q4oPFyfTfry\ny/r7Vp79+quett6yRffgFsVWaLVyT1gYJquVlW3bUtnAGZS0NF3aEB6ui3CF453LPMei44tYfGIx\nuaZchgcPZ1DzQfRp3Adfb1+b3is1L5XdsbsZ0WYEOGtC7tChA2vXrqWxE2ziP5CVxRtnzhCRl8er\njRsztm5dY56id+/W25s2bYIuXRx/f1dz5Iiewv3wQ71WUxGsXKkPoti503UL1gxisloZEx5OhtnM\nz+3a2aeTXjG8957uVfPtt4bcvsJSSrHj7A5mHZjFnrg9jGozirGdxtKjQQ+HVOKXtsraEdTMmTNV\nvXr11O+//66MYLVa1fb0dDXw2DHV6Pff1dyEBFVosRgSi1JKqbAwpWrXVmrLFuNicCW7dytVq5ZS\nq1YZHYnjzZunVJMmSsXHGx2JyzFZLOr+sDDV58gRlWkyOfz+BQVK1aun1PHjDr91hWW1WtWaiDWq\n61ddVfCcYDX30FyVW5Tr8DgAp12nVUoptX79elWrVi21aNEih31TzFar+jEpSXU7fFgFHzig5p8/\nrwqMTMRKKZWQoFTjxkotXGhsHK7it9+UCgys2A8vH3ygVNu2SqWlGR2Jy7FYrerxyEjV5dAhlVRY\n6NB7L1yo1E03OfSWFdpvZ35TXb/qqjrN7aRWha1SFqtx7/U4e0JWSqnQ0FDVpEkTNWXKFGWxY2JM\nLypSM+PiVLN9+9R1f/yh1qSkKIvVarf7FVtmplIdOyr17rtGR+Iatm/XyXjbNqMjMd7zzyt1/fVK\n5ecbHYnLsVqt6vWYGNVi/3511kHfP6tV/6pv3OiQ21VoMekx6valt6sms5qo5aHLldUJ3uspZUJ2\neJV1SkoKd955JwEBASxevBhfX9stqh/NzubzhAR+Sk1lSM2aPNGgAdf5+9vs+mVSVKTXQJs3l5aY\nxbF9uz6xacUK3VqyorNaYfRo/d9Ll8qG1lL4ND6eGefOsalDB9rYeVvjtm36vIHQUPlVt5ciSxEz\nfp/BjH0zeOG6F3i257NU8nRQ34ircKnjFwsLC3nsscc4evQoa9eu5ZoybPdJM5lYnpzMwsRELhQV\n8Wj9+jxUrx61vb3LGrftKAVjx+rjFFetKl/7Zu1h2zZ94MLKlbqlpNAKCvSWr169dHGbKLEliYm8\nEB3Nmvbt6eHnZ7f73HqrPl3zoYfsdosKLSQphAd+foB6vvX4fMjnNKnRxOiQ/sOpi7ouxWq1qo8+\n+kjVr19f7du3r0TTAflms1qdnKyGh4Qo/1271OiTJ9XG1FRlMnp9+HKmTFGqZ0+lch1fXOBy/pqm\n3rHD6EicU1qaUq1aKTVnjtGRuKx1KSkqcM8etcVOa/J/1Wzm5dnl8hWa1WpVH+/9WAV+GKgWHFng\nFNPTl4IrrCFfyrp161StWrXU/Pnzr/hxF00m9UNiohoZGqr8du1SfY8cUd+cP68uGlA9WSJz5yrV\nooVSKSlGR+L89u7VyXj7dqMjcW4xMbp89+efjY7EZe3MyFC19uxRK5KSbH7tiROVeuMNm1+2wruY\nf1ENXzZcdZ/XXZ3JOGN0OFeEq6whX0pERAR33HEHN998M5988gleXl5YlOJYTg5bMzLYmpHBgaws\n+vj7M7xWLW4PCKCWM01JX87mzXqqes8e2Ud6NUeO6DOgFy3Sf4orO3xYtw9dvx6uvdboaFzSsexs\nhoSE8GZQEA/Xr2+Ta6ak6CMWIyKgTh2bXFIAJ5JOcOePd3JL01uYOXCm06wV/yXflM/xpOMcSjjE\n4QuHWTR8EbjKGvKlnEtLY9S995KUmUnr6dPZ7+FBHW9vbqpRgwE1atC/enX8XOkEpJAQ3ZN41Srd\nyFZcXmioPi3lyy/1wpsonnXr4JFH9ANf06ZGR+OSTuflccuJEzxcrx4vN2pU5qYRb7+tz6z/5hsb\nBShYdHwRz295nk8Hfcq97e81OhwALhZcZHfsbnbG7mTH2R2EpYTRulZrutXrRvcG3Xm468Pg7AlZ\nKUWm2cyp/Hyi8vOJyssjKj+fYzk5xBUU0KFKFSwLFhCzdi1LVqxgUK9eDgjPDhIToWdP3abnXuf4\nAXJap07pKuqPPpLvVWl88QV8+ins2wc1axodjUs6X1jIoBMn6OPvz6ctWpT6pKiCAggK0jWJbdva\nNsaKSCnF67+9zvKTy/n57p9pW9u4b2pWYRY7zu5gx9kd7IzdSVRaFD0b9qRf4370DepLt/rdqOz5\nzyl9Tl1l3f3wYZKLikgymfB0c6OFjw8tfXxoWaUKLXx8aF+1Km2rVv37dJaVK1fy2GOPMWvWLO5z\ntWPo8vJ0ghk6FKZONToa55aQAL1766MnpRy19J5/Ho4d021YvbyMjsYlZZrNjAgNxd/Tk+9bt8an\nFDshFiyAH3/U/wyibEwWExN/mUhYShi/jP6FWlUdfwpedHo066LW8UvULxxIOEDPhj3pH9SffkH9\n6Fa/G94el182deqEvO/iRep4e1Pb25uqxfxBDwkJYdiwYQwbNozp06fj6QrT1VYrjBwJVavCwoWy\nAfFKMjL02b9jxsBLLxkdjWuzWOD22/VpYV9+KT93pVRktTI+IoIzBQWsa9+egBI83CgF7dvDJ5/o\nnWmi9HKKchi5YiQebh4sv2s5Vb0dcxSuxWph77m9rItcxy+nfuFiwUVubXErQ1sO5aamN5XoIAqn\nTsjFWUO+lPT0dO655x6UUixbtoyAgAAbh2ZjkyfDgQP6hJ5KzlV04FTy8/WpTd266ZPbJYGUXVaW\nPh/6kUfgqaeMjsZlWZViSkwMa1JT2dihA018fIr1eVu26ImKEyfkx7ksknOTufWHW+lQuwNf3fYV\nnu72HYgppTiQcIClIUv5MexH6lStwx2t7mBoy6F0rd8Vd7fSNeAplwkZwGw2M2XKFFauXMnKlSvp\n2rWrDUOzoa+/1uug+/bpw0/FpZnN+pQrX19YvFg6TtnSmTM6KS9cqB94RKnNiY/n/bg41rVvT5di\nHB07aJBuLDd+vAOCK6eSc5Ppv7A/w4OH83b/t+12KpNSipDkEJaGLGXZyWVU8qjE6Hajubvd3QQH\nBtvkHi7XGKSkVqxYoQIDA9W8efOcbzP4li1K1amjVFSU0ZE4N6tVqQkTlBo4UCkHN/qvMHbt0idj\nhYUZHYnL+yk5WQXu2aM2pqZe8eNCQpSqW1ef7iRKJzknWbX7op2aun2q3e6RkpuiZv4+U7X9vK1q\n9EkjNXnLZHX0wlG75BNceR9ycUVGRjJixAh69OjB559/jk8xp5Ps6uRJ6N9ft3ns08foaJzba6/p\nub3t2/UIWdjHd9/BO+/o5ROZrSmTvZmZ3HXyJFMbN+axBg0u+TEPPghNmsDrrzs4uHIiNS+VAYsG\ncFvL22w+MrYqK9titvHN0W/YfHozt7e6nQmdJ3BD4xtKPR1dHOV2yvp/5eTk8PDDDxMZGcnKlStp\nauT+y6Qkvb3p7bd1cZK4vM8+gzlz9J7ZWo6vmKxwXnxRNw/ZvBlcoYmOE4vOz2doSAgDa9RgRvPm\n/9kWdf683uJ0+rQ8+5RGen46AxYNYFCzQbw34D2bJeOErAQWHF3AgmMLqF65Og93eZh7299L9crV\nbXL9q6kwCfnPC/LZZ5/x7rvvMn/+fIYOHWrT6xdLfr4eGQ8cCG++6fj7u5IVK+C552D3br1RU9if\nxQLDhkH9+jB3rlQalVGGycRdJ0/i4+7O0jZtqPbnro+XX4bcXP28KUomqzCLGxfeSP+g/nx484dl\nTsZKKfbF72P2gdlsid7CqLajeLjLw3St7/i6owqVkP+yd+9e7r77bsaPH8+0adPwcNQpSlarPo3I\nywuWLJE3uyv5/XedGH79FTp2NDqaiiU7W8/gPPUUPPqo0dG4PJPVyuOnTnEwK4tf2renuqkyQUF6\nIqKJcx025PRMFhO3/nArTWs05ctbvyxTMi40F/LjyR+ZfXA26fnpPHXtU4zvNB7/ysYdvVshEzJA\nUlIS99xzD15eXvzwww8EBgba7V5/e+UV2LULtm6FypWv/vEVVXS0bhu6YIHuuywc79Qp3Xxl9Wr9\npygTpRQzzp1jVnw8I3d04fzxyixfbnRUrkUpxbg148jIz2DV3atKvbUpOTeZLw59wVd/fEW72u14\nusfTDG4+GA9344+3LW1Cdvk9J3Xq1OHXX3+lS5cudO7cmT179tj3ht9+C8uX6zc4ScaXl56uD4Wd\nOlWSsZFatNBFXqNG6c5ookzc3Nx4oVEjPglqwexP3eg8Id3okFzO1N+mEpEawdI7l5YqGcdkxPDE\n+icInhPMhewLbHtgG7/e/ytDWw51imRcFi6fkAE8PT354IMPmDt3LnfddRfvv/8+VqvV9jfauVN3\nlVq/XgqTrqSoCEaM0An5sceMjkYMGQKPP673fxcWGh1NuVCwrRZdgj2YWy2S12JisNpxFrA8mffH\nPJadXMYvo38pcQeu44nHufene7n262vxr+xP+BPhfHXbV7Sp1cZO0Tqey09Z/6/4+HjuuecefH19\nWbx4MbVslThPnYIbboDvv9enOIlLUwrGjdPrlytWgKPW9cWVKQV33QU1augmNlL3UGpK6XKI6dOh\n64Ai7jp5kuqenixp3dq1TqRzsA2nNjBh7QR2j99N85rFO45WKcWu2F18sPcDTiSd4NmezzKx60T8\nKvnZOdqyqbBT1v+rYcOG7Nixgy5dutClSxd27dpV9ov+Nf369tuSjK/mnXcgPFwXu0kydh5ubnrq\nev9+XXUtSm3LFp2UBw2C2t7ebO3YkYaVKtHzyBGi8vKMDs8pRaZGMu7ncfw06qdiJ+MdZ3fQb2E/\nHl73MHe1vouYSTG8cN0LTp+MnZ3Nu6AU16ZNm1TdunXV22+/rcxmc+kuUlioVN++Sj3/vE1jK5eW\nLFGqcWOlLlwwOhJxOadOKVW7tlK7dxsdicsaMECphQv///8/NyFB1SpGZ6+KJrMgUwXPCVbzDs8r\n1sf/duY31ffbvqr57OZq0bFFymQx2TlC26MidOoqjYSEBO699168vb1ZsmQJderUKf4nKwUTJkBa\nGqxaJSO+K9m7F4YP11242rUzOhpxJZs26fZSBw9Cw4ZGR+NSjhyBO+7QGwgu1W9lz8WLjAoL45mG\nDXnxmmvs1o/ZVViVleHLh1Pftz5fDv3yih+78+xOpu2cRnxWPK/3eZ17299r98Ml7EWmrC+jQYMG\nbNu2jZ49e9KlSxe2bdtW/E/+8EM4elSvG0syvrzYWH3s5MKFkoxdwaBBem/yyJG6AE8U28cfw9NP\nX7752fXVq3OgSxdWpKQw8uRJssxmxwboZN7e+TZpeWl8OvjTy37Mrthd3LjwRiasncC4juMIfyKc\nBzo+4LLJuCzK/Qj537Zu3crYsWO5//77eeutt/C+UkvBVav0b96+fTKKuJKcHL3X+P779flzwjVY\nrXpGo3FjmD3b6Ghcwtmz0LWrPlTL7yrLmAUWC89GR7M9I4OVbdvSvgL2bl8TsYYnNz7JoYcPUde3\n7v/7+/3x+3l1+6ucvXiW1/u8zpgOY66YhJVSmM0ZFBaex2xOw2zOwmLJwmzOxmLJRikLYEEpK0pZ\ncHPzxN29Mh4ePri7V8bdvQqenjXw8grAyysAT8+aeHr622UWo8I2BimplJQUHnzwQRITE/nhhx9o\n0aLF//+gw4f13tnNm6FLF8cH6SqsVj3K8vPTzT8q+PScy7l4UWeYd9/VnefEFT39tD7m/MMPi/85\nixMTeS46mpnNmnF/3f+flMqr0+mnuW7+dawbvY4eDXv85+/CUsJ4dfurHD5/mDf6vsHYjmPx8vAC\nwGotJC8vivz8KPLyosjLiyQ//zRFRQkUFl7Aw8MHb+/6eHkF4OHhh6enHx4efnh4+OLm5ombmztu\nbh6AO0pZsFrzsVoLsFrzsVhyMZszMJnSMZvTMJnSUMqEt3cDKlVqSOXK11Cp0jX4+DTHx6cFPj4t\n8PauU6qELQm5BJRSfPHFF0ybNo2PPvqIsWPH/vNNP3cOevXSByEMG2ZsoM7ujTd0t7Lt2/U7lXA9\nx47BzTfrPfZtys9+TltLT4fmzSEkBC5z6NNlheTkcOfJkwyoUYNZzZtTqZyfAV5oLqT3gt6M7TiW\np3o89ff/H5cZx7Qd0/gl6hde6v0Sj3V7BEvhKbKzD5Gd/QfZ2YfJywuncuXG+Pi0okqVllSp0gof\nn+ZUqnQN3t718PCw7Ql/FksuhYUJFBbGU1gYT0FBLPn5p/98IDiFUkVUqdIGX99O/3q1x8Pjynuo\nJSGXQmhoKKNHj6Zt27bMnTuX6p6eevr1vvv0aTni8lasgBde0IVBJSmUE87n22/1sO/gQahWzeho\nnNJbb+kp6wULSvf5WWYz4yMiiCssZEWbNgQ5w9GxdvLspmc5m3mWVaNW4ebmRmpeKu/tfo+Fxxcy\nocOdjGvZDEvuPjIzd+LtXZdq1XpQrVo3qlXrhq9vR5sn3bIwmdLJzT1JTs6xv195eeFUqnQNvr6d\n8PPrhb9/b3x9O+Hu7vX350lCLqX8/HwmT57M+rVrOdywITXbtIF58xw6/Zqen05cZhyJOYmk5qWS\nZ8qjwFyAG254untSrVI1alSuQV3fujSu3pgAnwBjqzePHNGnXG3ZAp07GxeHsJ2HHtLNXJYtk6WH\n/5GTA02b6sPKWrUq/XWUUnwSH8/0uDi+bNmSEeWw29+6yHU8ufFJjj5yFG8Pb2b+/jGfHviEwdc0\n4u56qdTyqUKNGgOoXr0/1av3o1KlekaHXGJWq4m8vEhyco6QlbWPzMw9FBScpVq17vj7X4+///UE\nBAwEScilFzNsGAkbN/Lb5Mm88sYbeNqp405CVgL74vexP34/BxIOEJYShtlqppF/I+r51iOwSiBV\nvapS2bMyCoXZaiarMIuMggwuZF8gLjMOs9VMu9rt6FCnA70a9qJ3o940q9HMMUk6MRGuvRZmztSd\nn0T5kJ+vD58YNw4mTTI6GqfyySf60LIVK2xzvQNZWYwOC2NQzZrMaNYMn3Kyg+Nc5jm6fd2NH+9a\nxuHY1Xyw/2s6+1t5om0bOje+h4CAO6haNdjoMO3CZMr4MznvJTNzD1267AJJyKU0dy7MmkXi6tU8\n8PTTZGdns2jRoksXfJVQkaWI7We2syp8FZtObyLPlEeva3rRs0FPejbsSfs67alVpVaJkmlaXhqh\nyaEcSzzGvvh97Inbg6e7J4ObD+aO4DsY0GTA30USNlVYqM+AvuUWmDbN9tcXxoqJ0fUTq1fDddcZ\nHY1TKCyEZs1g7Vrb1ndmms08EhnJybw8lrVpQ9uqJevr7GzMVjN3/3AtzaoUsSImkoDKPrx9/WPc\n2PoZlxwFl1Vpp6wdwcE9Ukpo82al6tTRHYyUUhaLRc2ePVsFBgaqL7/8Ulmt1hJf0mQxqbURa9WY\nVWNUjQ9qqF7f9FIf7f1IRaRElOp6V2O1WlVoUqj6cM+Hquc3PVXgh4Hq0XWPqsMJh217o0cfVeqO\nO5SyWGx7XeE81q1TqmFDpZKSjI7EKXz9tVIDB9rn2larVc0/f14F7tmjvkpIsMt7g71ZLEUqMXGp\nmrWujuo0y001mVFDLT82xyW/FltCOnWVwsmTesT300/64Ih/iYiIYMyYMdSuXZv58+dTr97Vn/KS\ncpKYf3Q+cw/PpX61+jzQ8QGGBQ+jfrX69voKLin2YiyLTyxm/tH51PSpyTM9nuHudnfj7XGFfddX\n87gr128AACAASURBVN138P77uvDH37iDv4UDvPIK/PEHbNwI5bwi+ErMZggO1oVcffrY7z7hubnc\nExZGqypVmNeyJdW97DC7ZWNFRSlcuDCPEzFz+CrGzK/n03i975u81Ptl+8zOuRinHiFnHsxUpkwn\n60eakKD7Li9ZctkPKSoqUlOnTlV16tRRK1asuOzHHbtwTI1eOVr5v++vJqyZoP44/4cdAi45i9Wi\n1ketVzcuvFE1mNFAfXHwC1VkLir5hf74Q6nAQKVOnrR9kML5mExKXX+9Uu++a3Qkhlq6VKnevZVy\nxGAv32xWT0ZFqWt+/11tTU+3/w1LqaAgXkVFTVK/7qiuJq3somp+4K9qTq+pvvnjG6NDcyo48wj5\nUKdD5EXm4VnTkyrBVajauipVgqtQpXUVqgRXwbuet2OrhrOz9SPvyJF6NHAVBw4c4P7776dnz558\n9tln+P85QgxNDmXajmnsPbeX53s9z4TOE6jhU8Pe0ZfK4fOHeXX7q0SnR/N2/7e5u93duLsVY/ST\nlqabR3z0kf5+iYohPh66ddOVTP8ze1QRKAWdOsF77+mD3hxlc3o6EyIiuLNWLT5o2tRpCr4KCuKI\ni5tOYtIPHMjvyaehJ+jd6HqqelUl15TL8ruWGx2iU3H6bU/KqiiIKyAvPI+8iLz//KksCt+OvlTt\nWBXfjr76v9tWxb2SHabLTCa47TZo1Ai++qrYWzxyc3OZPHkyv/zyC2/OepNNlk3sOLuDF697kce6\nP0YVryq2j9UOtp/ZzpRtUyg0F/LxLR9zU9ObLv/BFovuWNaxo07IomLZuBEmTtTb3MrhFp0rWb9e\nP6sfO+b4XWDpJhNPnDrFsZwcFgUH0/1qfTrtqKgohdjYt0hK+oE494F8HHKSSp5VmHHLDIosRdy3\n6j5OPHqCgCoBhsXojJw+IV9JUVIROcdzyDmWo/88nkNBdAE+zX3+TtLVulajWrdqePqVYTuSUvoN\nJj4e1q2DEm5tyizIZPyM8az5aA09b+rJ6q9XU7tG7dLHYxClFKsjVvP8lue5odENzBw4k8Aqgf//\nA199Vffy3rKlxN8rUU68/DIcP64zVAVZT1ZK9wd66iljO4ouS0ri6dOnebxBA15p1AgvB37/LZYC\nEhI+JS7uI/J8BjMnMpWQlAg+GPABo9qOIrsom45zO/L5kM8Z0mKIw+JyFS6dkC/FUmAhLyzv7wSd\nfTibnGM5VG5UmWrXVsPvWj+qXVsN3w6+uHsX8wf13Xd1AdfOnSXqSGRVVhYfX8yUbVMY0mIIL3Z+\nkXdeeYd9+/axYMEC+tiz4sOOcopymPrbVH4I+YGZA2cyut3of5YOfv5Z70c9fBhqu95Dh7ARkwn6\n9YPbb4eXXjI6GofYtUufuhoRYfwhbwmFhUyIiCDdbOa74GDa2Hl7lFKK5ORlxMRMweLdlh/OB/Bj\n+AYm957MpB6TqOxZGYCH1j6Eu5s7826bZ9d4XJVTF3XZiqXIorKOZqmErxJU+IRwdbD9QbWzyk51\nuMdhFfVUlEr8IVHln8u/9CcvXqyLuM6fL9E9Q5JCVK9veqnu87qrA/EH/vN3a9asUfXr11eTJk1S\nOTk5pfyqjHcg/oBq/0V7NXjJYHU+67xSERFK1aql1IEDV/9kUf7FxSlVu7ZSu3cbHYlDDByotzs5\nC6vVqr6Mj1cBu3ert86cUUV22naYmxuhjh7tr/bu76De3va4CvwwUD2x/gmVnJP8n4/bfHqzavxJ\nY5VVkGWXOMoDSlnU5Qh2/cJN2SaVsTNDxX4Yq0KGhajdAbvVvib7VNgDYSrh6wSVG5GrrFu36jeU\nElQJmywm9f7u91Xgh4Fq7qG5ymK99C9BWlqaGjNmjGrWrJnauXOnrb4shysyF6k3fntDNX+njspu\n3lipr74yOiThTNatU+qaa5RKTTU6Ers6fFipBg2UKigwOpL/LzY/Xw0+flx1OHhQHc6yXTI0m/NU\nTMzrateummrurnGq6adN1dAfhqqw5LD/97E5hTkqaFaQ2nhqo83uXx7hzFXWJ5NP0qaWY06SUVZF\nXkQembszubj7IkXbjtAm6SkSbpiJ14ibqd6/OlXbV71iVXdEagTjfh5HVe+qLLh9AY2rN77qfdeu\nXctjjz3GnXfeyfvvv09VV+y8oxTJt/ZnW9ohTr73DNP6v1khDwkXl/HiixAWpusvyul68siRuknZ\ns88aHcmlKaX4PimJ56OjGVe3LtOCgspUiZ2R8RuRkQ8TU9SIOadyyDebmHHLDG5scuMlP/65zc+R\nkpfC4uGLS33PisCpp6wDPwxUU7ZOUTmFDp7WjY9XqlEjVfjpt+rC4gsqYmKE2tdsn9pTZ486ed9J\ndeG7C6og4Z9HYavVqj7Z94kKmB6gPj/4+WVHxZfz12i5adOmaseOHbb+auzvo4+U6tZNJaacVTcv\nulndsOAGFZ8Zb3RUwlkUFSnVo4dSn3xidCR2cfKkXqnJzjY6kqtLLCxUI0NDVYv9+9XOjIwSf77Z\nnKuiop5SP22to0Z830c1mNFALTiyQJkt5v9j77zDo6i6MP7SS2jpJIRQIknoINKUpiKIICKIqFhA\nQAQRCyJ+SgfpvUivIqDSpUknvffeey+bun3e748REElI281uQn7PM8+2mblnZ3fuuffcU0o9xj3J\nneYbzZlZlFkV0Z8JoM8m6+T8ZH5w9gNab7Xm2ZCz1ZNWLS+P7N2bXLPmiY+KY4qZvC+ZQe8E0dHI\nke7d3Bn4RSDnL5zPl3a8xKjsqCo1/WBt+csvv6w5a8u3b4spROPiSIpJRVbfX812m9vRI8lDx8LV\noTdER4tJYnx8dC2Jxnn//RK7C73mXEYGLZ2d+WloKDPl8nIdI5G48JZjZ8441Y1G6w25/O7yMidL\ncpWcPX7pwZMBJzUhdq0HOlTIwwCEAogE8GUJnz8U8m7sXXbf3Z0jjo6gT4oWb2iplHz5ZTH3chnK\nX1AJdP7LmV+88QX/7Pkn7xvcp+8rvkzYmsDiqOJKi/Dv2fLdu3crfZ5qISGBbNuWvHnziY8uhF6g\nyQYTng05qwPB6tBLTpwg7ezImjLYLAehoeLsWINLs9VGnlLJ+RERNHNy4sGUFKpL6fPUagXDIr/n\nt6da0nR9a06/MJ3J+cnlamPlvZUc+9vYZz5HdXmBDhWyL0Sl3AFAGID/BrQ+JqhSreRez70032jO\n6Remi169mkSlIidNIt95R3z+FARB4CbnTTTbaMYLoRdE+QqUzDifwdBPQ+lk7kR3e3dGLYxirkMu\n1cqKezdevHiRVlZWnDlzJnP0MSWeTEYOGECuW1fqLt4p3my3uR3XOa6ruyHrEPnoI3LmTF1LoTGm\nTiVXr9a1FFXDOz+fA7y8+KK3NwP+Y3cvLo7j1it27LTJgC8fHUrfVN9ynzckI4TG640ZL4nXtMi1\nFuhIIbeGqJAfsAPAfxPNlSiwRCrh9ze+p9F6Iy67u4x5sryqXwVBIGfPJl99tUw3yUJ5Id/98132\n39+fsbmxJZ9OLTDPPY8xi2Po2ceTjsaODP00lFlXs6iWl185SyQSzpkzh5aWlvzzzz/1S6l99hk5\ncWKZloTEvET22duHn174tHL5sOuoXeTnkzY25FNyvNcUwsNFK3yeBrogXaMSBO5NTqapkxMXREay\nQKnkrZAtfH57I3bZZs7L4X9VqP8RBIHDjwznDrcdWpS69gEdKeSRAE796/XnAFb9Z5+nCh6TE8OP\nz39M0w2m3OC0gUWKospfhcWLyX79yrQ7xUvi2WdvH358/mNKlaXELZeANF7KhC0J9H7Rm45Gjgz5\nJIRZl7OolpVPOTs6OtLe3p5vvfUWk5L0wFnq4EHS3r7cPVGBvIBjTozhW6feqtB1q6OW4uEhhhPG\n1+yZ08cfkytX6loKzZIul3Oy53V239OBRmvqc4vDQirVFS/w86v/r+y7t+9Tnb3qeBLUVIX8gOCM\nYE76fRItN1tyl/uuinf427eTtrZkRsZTd3OMd6TFJgtudtlcpZmqNFHKxO2J9BniQ8c2jgz5KITZ\nf2dTUD39nDKZjEuXLqWJiQl/+eUXqnVVW9jTU5wWhIZW6DC5Ss53/niHrx1/rfq95uvQP9atI4cO\nLXN5SF+JjBRvA4lE15JojnxZPr//ez5b/9yQH/5mw8Guf3GQtzfdK2gCyJXm0mKTBd0S3bQkae0F\nOopDbg3gHoC+/7zeCeA6gCv/2ofLli17+GLEiBEYMWJEqSf0TvHG8vvL4Z3ijW8Hf4vZ/WajZZMy\n0lyePCmm9XN0BDp2LHW3Qz6H8OOdH3F8wnGMfm70089ZAeQpcmT+mYn0E+mQJ8th9r4ZzD8yR4ve\nLUqNdw4ODsbMmTPRoEEDHDhwAF27dtWYPGWSmSlW8tmyBZg0qcKHqwQVZl6aiejcaFx+/zJaN62r\nj/zMIgjAqFFi9bSlS3UtTYWZPl3sMv7VRdVYVIIKh3wOYdndn/B8aymWvDQHg7ptAFEPx9PS8GNs\nLEYZGmJN586wbNKkzPN9efVLKNQK7HtzXzVIX7O5d+8e7t279/D1ihUrAB3FIT9w6uqIcjh1lRe/\nVD9O+XMKTTaYcNndZaXHvl27JprNAgNLPZcgCFxyZwltttswLDOsUvKUl8KQQkb/GE0Xaxe6d3dn\n/Lp4ypJKXs9WqVTcuXMnjY2NuWLFCsrLGbZQJZRKcY190aIqnUYtqDn38lz229ePWUW1O3tTHWWQ\nnCyGzDk56VqSChEVRRobk5UI49UrBEHglYgr7La7G1/ab89DV9swM/PiE/vlK5X8ITqaxo6OXBMX\nR+lTrBpeyV4032hed29XEujQy3o4xLCnKADzS/i8Sl8sPCucMy7OYJt1bTjz4kwGpv9L8To4iLEK\nzs6lHi9XyfnJ+U844MAAphemV0mWiiCoBebez2XYzDA6Gjoy4M0AZv6VWaJJOyEhgePGjWP37t3p\n4uKiXcEWLRIVsrLi60n/RRAELryxkL339GZOsR56kNdRfVy6JOaKr0Habdo0culSXUtRNbxTvDny\n+Eja77Tnvrvj6OrahYWFT6a8/DdRxcV8OzCQHVxceDw19YkwKZVaxf77+/Owz2Ftil6rgT4nBtEE\n6YXpXHlvJS02WfCVY6/w/ukNFExNyVu3Sj0mT5bHkcdH8s2Tb+p0vVNZoGTKwRR6DfCii5ULY5bF\nUJrw+Bq5IAg8ffo0LSws+NlnnzE7O1vzgpw5I3aaZayzVwRBEPjN9W846OCgumTzzzrz5pHvvlum\nx74+EBYmrh3XoPHDY0RmR3LKn1NoscmCO9220sv3dfr5vUaFovxfyDE3l4O8vdnbw4PXs7Mf+tTs\n9dzLlw69VOFMhXU8ArVdIT9ArpLzyunVzG7ZkB/NNObi24tLDFtKyU9h7z29OefynEp5F2qLAr8C\nhn8RTkdDR/q/4c+sq1kU1I86sNzcXH7xxRc0Nzfn0aNHNRciFRIi9kCenpo5378QBIGzLs3iiKMj\nWKyofDKVOmo4UinZsyd56JCuJSmT996reVm5SDK1IJVzL8+l8Xpjrr6/mtn5EfT07MOwsJlUqyse\njigIAs9mZNDWzY2v+vryVkYiTTeY0j/NXwvSPzvgWVHIDAwU16vOnmVAWgC/vPoljdcbc9Svo3gy\n4CSLFEWMzY2lzXYbrrq/Sr9ifv+FqlDFlEMp9OjtQTc7Nyb9kkRV4aM1HU9PT/br14/Dhg1jUFBQ\n1RrLyxPDmw4erKLUpaNSq/jB2Q845sQYylXVsBZeh34SHCwO/CIjdS1Jqfj7i11ITchZ/YA8WR4X\n315Mo/VG/Ob6N8wsymRBgT9dXNozLm5Nlfs5hVrNPUlJbH77KrvcPMaIoiqEn9bxjCjk8HDS0pL8\n7bfH3i5WFPOE/wmO/nU0W61txeY/N+fcy3P1amZcGoIgMPde7sPSkVHfRz00Z6tUKu7atYsmJiZc\ntGhR5fJiC4KY+OOzzzQs+ZMoVApOOD2Bk36fVCOufR1aYscOsQiFBvwUtMFbb5FbtuhaivIhU8q4\n1XUrzTaa8ZPznzAuV8w1n5Nzi05OpkxLO6WxtvzT/GmyuT3/FxlCY0dHTg8NZUxxncWrMqDWK+To\naLEe6+HSHQ28kr1ousGUU89OZf/9/Wm6wZQzLs7gX+F/1QhTanF0MSO/jqSjoSODpgQx30dck01N\nTeUHH3zADh068OLFJ70nn8q6dWJqzGoq8CpTyvjqsVc55/IcvbVO1KFl1Grytdf0MtuGh4dY71jf\n9YxKreIxv2PssLUDx50cx4C0gIefpaf/SScnU+bmaq7+uiAIHHF0BHd77CZJ5igUXBwTQyNHR84O\nC2OCtC4RUEVArVbICQlkx47k7t2l7uIQ50DTDaY8H3r+4XsxOTHc6rqVw48MZ6u1rTjx94k87nec\n2cVacJjSIMo8JRM2J9DZ0pn+b/hT4ixmLbh16xZtbW351ltvMb482ZFu3hSLRiQkaFnix5FIJez5\nS09ucNpQre3WoUckJYnhiB76VSls9Ghyzx5dS1E6giDwYthF9vylJwcfHEyHOIfHPk9O3k9nZwvm\n55c/F3V5OBN8hj1/6fmEZStTLueiqCgaOTpyXkQEU6ppYF/TQa1VyPHxZOfO5ObNpe5yN/YuTTaY\n8Gb0k9WKHpBZlMkjvkc44fQEtlzTksOODOPKeyvpkuCit+ZVtUzN5L3JdO3kSp/hPsy+kU2pVMpV\nq1bR2NiY69evLz12OS5OXCi7c6d6hf6HxLxEtt/SnqcCNWdSq6OG8fvvYvY8PVmPdHAQx/XVEe5f\nUQRB4LXIa+y/vz977enFC6EXHrMwCYLAuLi1dHXtxKKiCI22XawoZsdtHXknpvS+Ik0u57eRkTR0\ndOTc8HDG1c2YnwpqpUKOjRXvoKcs+NyKvkXTDaa8G3u33KctUhTxWuQ1Lvh7AXvv6c3Wa1vzzZNv\ncrvbdgZnBOudqVWtVDP1eCrdu7rTq78XMy9mMioqimPHjqWdnR2vX7/++AFSqZjTe+NG3Qj8DwFp\nATTdYMr7cZozrdVRw/jwQ3LuXF1LQUEghw0jjxzRtSRPcjvmNl889CK77urKP4L+eCLcSBAERkV9\nRw+PHpTJylcusSKsvLeSk36fVK590/41Y54WGsowPRls6RuodQo5Koq0tiZ37ix1lxtRNzTS4acX\npvN04GnOvDiTnbZ1oskGE7558k2ucVjDe7H39CZns6AWmHEmgx49Peg10Is5t3N4+fJlPvfccxw/\nfjyjo6PFnufTT8nJk/UiHvRW9C2abTRjSMbTkxXUUUvJzRXv46tXdSrGlStioIE++Zk5xDlwxNER\nfG7Hczzhf6LEAg6CoGZ4+Bf08upPhULzS20JkgQarTcqteJdaeQoFFwZG0tTJydODgqib00sJK1F\nUKsUcng4aWVF7t1b6i7XI6/TdIMpHeMdq3DZSiYpL4l/Bv/5MOFF85+bs9++fpx3ZR6P+B6hX6qf\nTksQCmqBaSfT6GrjSt9XfZnhkMG1a9fS2NiYi994g4X29npVaf2o71HabLfR+7X7OrTE3btidERm\nKelvtYxKRfboQZ4/X/a+1YFbohtfO/4aO27ryMM+h0tdMhMENcPCPqO392AqldqpfvHRuY/40+2f\nKn18gVLJTQkJtHB25hh/f97OydE7C6MugI6KS5SHf+QrJ8HBwOjRwIoVwIwZJe5yM/ompp6bigvv\nXcCL7V/UkJilI1PJ4J3iDbckN/ik+cAn1Qfxknh0M+2Gvm374nmL59GnbR90M+1WrYUWBKWAtCNp\niFsZh1b9W6HRqzFY8d27cDIywqZt2zB58uRSi1tUNwtvLIRfuh+uTb2GhvUb6lqcOqqb774DYmOB\nM2eAav5PHj0KHDgAODlVe9OP4ZzgjNWOqxGcEYyfhv6E6X2no3GDxiXuS6oRHj4TUmk0eva8goYN\nyyiwUwl8Un0w9uRYRMyLKLuATxnI1GqcSE/HlqQkNKlfHwusrDDFzAyN6tfXkLQ1i3/63Qr/2/RL\nIXt6Am++CWzeDEydWuIuDvEOmPTHJJyfch5DrIdoUMyKUaQoQkB6AHxSfeCb5gu/ND+EZoXCqJkR\nupt2RzfTbuhu2h3dzcTnrZq00posaqkaKRsjkLAiAsYjmiLpiwZYsGIBjIyMsGPHDvTs2VNrbZdb\nRkGNsSfHoqtJV2x9fauuxamjupHLgf79gQULgE8+qbZmpVLAzg44fRp4Uftj9ycgibtxd7HKYRXi\nJfH435D/4ePeH6NJw9KrLQmCCuHh0yGXJ6Nnz7/QoIGBVuR69firmNJ9Cma/MFtj5xVIXM/JwebE\nRERIpZjfrh1mWVigTaNGGmujJlDzFfLdu8CUKcChQ6JSLgH3JHe8eepNnJx0EiM7j9SwmFVHoIB4\nSTyCM4MRnBGM4MxghGSGPFTU3Uy7wdbIFrbGtuhi3AW2xrbo0LoDGtRvULWGVSrgtdeg6jcUCY2m\nIeVACtp+2RbXW1/HyjUr8d5772HFihUwNDTUzBetJLnSXAw8OBA/Dv0R0/pM06ksdeiAgADg1VcB\nDw+gU6dqaXLjRsDFBTh/vlqaewhJXIu6htUOq5EjzcGPQ3/E+z3eR6MGT1dMpICQwI8hy0+BdeEx\nqNMbQZGhgDJDCUEhAIJ4bghAvcb10Mi4ERqZNBIfTRuhmU0zNLFqgnr1n961X4m4goU3FyJgToDW\nLFa+BQXYnJiIqzk5mGpuji8sLWFvoPnBhT5SsxXyxYvArFnAn38Cw4eXuItfmh9GnxiNw+MPY6zt\nWC2IqT0ECoiTxCE0MxSROZGIyI5ARHYEInMikV6Yjk6GnWBrbAtbo0eK2tbYFhYtLMpncl64UOzs\nrl4FGjSANEaKmEUxyPfIR+ufWmO793ZcvHgRy5Ytw6xZs9Cwoe5MxmFZYRh2ZBguvX8Jg6wG6UyO\nOnTEpk3ApUviALxBFQeiZZCTI86OHRyA6io3LlDAhbALWO2wGipBhcXDFmNS10mlDrrlKXJI7ktQ\n6F+IwqBC5L2wFIJRApof24Emxq3Q2LwxGpk3QmPTxqjftL7YY9cXO3xBIUCZrYQySwlVtgqKDAWk\nUVKoJCo0t2uO5vbNYdDLAK2HtEbLF1qiQVNRBpWgQq89vbDhtQ0YZztO69ckSSbDvtRUHEhJQQ8D\nA8xr1w7jjI3RsBabs2uuQj52DPjhB+DyZaBfvxJ3CckMwavHX8WuMbswqdskLYmpG4qVxYjOiX6o\noP+trIsURehi3AVdjB4paTtjO9iZ2KFN0zbiCX7/Xbx+Xl6AsfFj55Y4SBD1dRTqN62Pos+LsPTI\nUmRkZGDz5s14/fXXdfBtRa5EXMHsy7PhOcsTFi0tdCZHHTpArRZnyWPGAIsWabWphQuBvDxg/36t\nNgMAUKgVOB10GhucN6B5o+ZYPGwxxtmOQ/16jysdZa4SOX/nQHJXAsk9CZRZSrQZ1gYtXmiBghfW\nQN4yAL373UCjKixxqfJVKA4rRnFYMQp8CpDnlIfi0GK0fL4lWg9pDScbJxxrcAy3pt2qVh8TuSDg\nbGYmdiUnI0kuxxxLS8y0sIBp45LX0WsyNU8hk8DPP4sm6mvXAHv7Eg+OyonCiKMjsG7kOnzY60Mt\ni6pfSGQSRGZHIjInEuFZ4YjIiRAfsyNg0NgAdk2tYOcQDLt358Ku58uwM7FDZ8POj5mgKBBpx9MQ\n+2MsDMcYImRECP636n+wsbHBpk2b0L17d518t5X3V+JO7B3c+vhWnZPXs0Z8PPDCC8Dt20CvXlpp\nIiEB6NMHCAoCLC210gQA8R7d770fO9x3oKtpVyx8cSFe6/zaY4pOmaNE1oUsZP6ZiTyXPLQZ3gZt\nXmkDw5cNYdDTAKgHxMb+iJycG+jd+zYaNWqjcTlVBSrku+Uj43YG3I+7o6OiI8wnmMPkLRMYjjRE\ng2batVb8F5+CAuxOTsa5rCyMNjTETAsLvGJoiPp64oRaVWqWQlapgDlzAB8fcWZsUfIsKV4Sj+FH\nh+OnoT9hVr9Z1SBqzYAkkhODEP7+aIRPHY3wTq0Qnh2O8OxwpBakomObjrAzsRNn0//MqJ9r8hwK\n1hQg43QGrFZZ4XzxeaxZswaTJk3CihUrYGZmVq3fQaCAN357A33b9sXakWurte069IDDh4GdOwF3\nd0ALM6QPPwQ6dgRWr9b4qQEACXkJ2O62HUf9j+KNLm9gweAF6NO2z8PPBZWAnCs5SNmfgjynPBi+\nZgizyWYwGmuEhi0eH4DGxa1CZuYf6NPnHho1Mv5vUxplyZ0liM+Lx77e+5B1MQtZF7JQFFQEs3fN\n0PbTtmj5QstqnTXnKpU4mZGBAykpyFOrMaNtW0xr2xZWTZtWmwzaoOYo5MJC4N13xRnyn38CLVqU\neFB6YTqGHBmCLwd8ifkD51eDmDUItRoYOxbo1g3YsuWxj6RKKaJyokQFnRX+UFGHZ4WjScMm6Nas\nGyw8LNBF1gX9PumHv2/8jd9P/I7vv/8e8+fPR9NqvBGyirPQb38/7BqzC2/alezIV0cthQTGjRNn\nyitWaPTUbm7ApElAeHip3Uul8U31xWbXzbgWdQ3T+0zHVwO/QvvW7R9+LkuSIfVgKlIPpqJph6aw\nnG0J00mmaGBQ8gw0IWETUlMPoE+f+2jSpK1mhf0PyfnJ6LW3F3xn+8K6tfUjmRNlSDuWhrQjaWjQ\nvAHaftoWbae3RaM21ecZTRI+hYU4mJqK3zMyMLhVK8ywsMBYY2M0qYFrzTVDIScnA+PHA337Anv2\nAKW4wufJ8jDi2Ai8bf82lg5fWg0i1jB+/BFwdQVu3gTK6aBFEskFyQhMD0RgeiA8nD0QkBiARJNE\nmLYwhTJZCVm8DNPHTses8bNga2xbde/vcuCa6IoJv0+A2ww3dDKsHs/bOvSElBTRrnztWqn+IxVF\nEMTwpjlzNBddpRbUuBp5FdvdtyMsKwxfDfwKn/X77LGcA4WBhUhYl4Ccazkw+8AMlrMt0aLn8BWJ\n4gAAIABJREFU00cDycm/IDFxE/r0cUDTplaaEfYpfHrxU5gbmJdqkaJASBwkSD2QipxrOTD/2BxW\nX1uhWcdmWpft3xSr1TiTmYnDqakILCrCO6am+NDcHC+1bl1jTNr6r5A9PICJE4EvvhCdkEq5sDKV\nDK+feB09zXpix5gdepPYQm84c0aM5fTyAkxNq3QqRboC4d+FIyggCLJFMtyR3cEl90tQtFGgXst6\n6GPRB/0s+uF5i+fRz7Ifupl208p673a37TgecBzOnzqjacOabaqqo4L89huwdi3g7Q00KT02t7yc\nOAFs3y5awqs6scouzsZh38P4xesXmBmYYV7/eZjSY8pjyTzy3PKQsDYBBR4FsPrGCpafW6Jhq7Lv\nkfT03xAT8wP69HFAs2baH4j6p/lj9InRCJ8XXq7kRbIkGZJ3JCP1UCoMRxrC+ntrtOyn+eQkZZEg\nk+FURgZ+TUtDoVqNqebm+NDcHF31PHxKvxXyiRPA11+LDlzjx5e6o0pQYfKfk9G0YVP8NvG3JzwU\nn3mCg4ERI4Dr1zU2owCAnJs5CJ8VDsNXDdFxQ0ecvHgSS1Yvgc0QG7w46UUkqhPhk+qDhLwE9DDr\n8VBJD2g3AN1Nu1d5Jk0S7555F2bNzbB77G4Nfas6agSkaF+2tQXWravSqYqKRN/Q06eBl16q/Hl8\nUn2wy2MXzoedx1t2b+GL/l+gf7v+j+1T4F2AmB9iUBxZDOvvrdF2ettyO0bl5NxAaOhH6NPnDgwM\ntO9USRKjTozCBLsJ+GLAFxU6VlWgQurBVCRuTkTLF1qi04pOaNFbw+sA5YAk/AsLcSI9HSczMmDe\nuDHeMTXFO6amsGvevNrlKQv9VsidOomxxk/JGEUSs/6ahcT8RPz1/l+lppR7ZpFIxExHS5YAH3+s\n8dOrClSI+SEGWRezYLvHFgYjDbBz505s3LgREydOxLJly9DSuCX80vzgk+oD71RveCR7IKUgBS9Y\nvoBBVoMw2GowBloNhJlBxR3E8mR56LOvD7aO3ooJ9hPKfZxaDaSmAnFxj7a0NPFyPdjy88V+H3hk\nmGnWDDA0fLQZG4tOQJ07i5uVldbDZOt4QEaG6G194QIwqPKx6cuWARERwKlTFT9WrpLjTMgZ7PLc\nhZSCFMx5YQ5m9J0BU4PHrVDSGClif4qF5L4EHZd1RNtP26J+o/JPHPLzvRAY+Aa6dz+HNm2qJ9Pg\nrZhbmHtlLoLnBpeZmKQ01FI1UvalIHF9IloPaY2OyzvCoLtuZqlqEs55eTiTmYmzmZkwatTooXLu\n1ry5XlhV9VohCxkZqFeGefV/t/6Hu3F3cevjW2jRuPpHYHqNIIjZy2xsgB07tNqU5L4EYTPC0Gpg\nKzy3/TkU1i/EunXrcOjQIXz++ef4/vvv0br1I5NXjjQHHskecE10hVuyG9yT3GHc3BiDrAZhULtB\nGGQ1CL3b9i7XAOvBerL3Z96wavXkmlp+vuiY7+8vbn5+QGioqFA7dny0tW0rvtemjbi1aiWaLx8o\nZVJMqZibKyaPyM0FsrJEZR4TI26ZmeKk7fnnH219+gAtq99q92xw5gzw00+Ary9QiRlPQoLomuLr\nC1hbl73/AyKyI3DY9zCO+h1FT/OemNd/HsbZjnvC6qPMUSJuZRzSf02H1ddWsPrG6glv6bIoLo6E\nn99w2NrugYnJWxU6trKQxKBDg/DNoG/wXo/3qnw+dZEaybuTkbgpEcbjjdFpdSc0aVv1pYbKIpBw\nzc/HmcxMnMnMRIsGDTDe2BjjjI0xuFUrnSUf0WuFnJ7+B8zMJpe6wxbXLTjocxCO0x1h3Fy7bv81\nkqVLgXv3xLjNasgJqy5WI3ZJLDJOZqDLri4wnWSKxMRELF++HJcvX8aiRYswd+7cEj2yBQoIzwqH\nW5KbuCW7ISonCn3b9sVQ66EY1mEYXmz/YqnrWD87/IybMTdx++PbkOQ2gKOjmGnJwQEICxMnUn36\nAL17i489egDaWE6SyYCQEHEA8GALChId2195Rdxeekk7bT+zvP++OJraWvFc5x98ADz3HLByZdn7\nFiuLcTbkLA76HkRYVhg+6f0JZvSdATsTuyf2pUCkHUlDzE8xMJ1oio7LO6KxWcWtd3J5Gnx9X4K1\n9Q+wtKy+EM5L4Zew+M5i+H3up9ElQKVEifjV8Ug7kob2C9rD6hurao9l/i8CCc+CAlzOzsaV7GzE\ny2QYbWSEccbGeN3ICEbVmE+7sgq5OqCzczsqlXkllqk67nec1lutmSBJ0HABrFrChQtk+/ZkWlq1\nNy1xkdCtixtDPgqhUiKWiAsKCuL48eNpbW3NY8eOUaV6sobrf8mX5fNm9E0uvbOULx99mS3WtGCf\nvX345dUv+UfQH0wtSCUplm/28lGx0/IRtPpgNVu1IkePJn/+mXR0JGUyrX7dMpHJyHv3yKVLySFD\nSAMDcuRIcvduMlnzdeOfPbKyxDKN9ytW3/zuXfEWKXxK2XJBEOiV7MU5l+fQaL0R3/jtDZ4LOffU\nMqr5Pvn0HuRNr4FezPeufDlTpTKPnp59GBu7stLnqAxqQc1ee3rxQugFrbVRFFnEwImBdOngwvQ/\n0vWq9GKiVMp9yckcHxDAlg4OfMnbm8tiYuiQm0u5Wq3VtqHP5RdDQz9FgwYt0aXLtsc+uBF9Ax+d\n/wj3PrmHrqbVlGy2JhEUBLz8MnDlCjBggE5EUBepEb0wGtlXsmF/zB6GI8QCFU5OTli0aBEKCgqw\nZs0ajB07ttxrNwq1At4p3nBMcIRDvCMcYp1RX2YMZfRQGGQPxYgeXXDTaBIuvH8BwzsP1ubXqxKF\nhcCNG8C5c2IacVtb0T/pgw+Adu10LV0N5a+/RAdQf/9yBRErFKKl5OefgbfffvLzhLwE/BbwG04E\nnoBUKcX0PtMxrc+0x2KH/4uqUIXYn2KRcToDndd0Rtvpbcss1lAagiBHQMAbaN7cHl267KrW9c3T\nQaex1W0r3Ga4ab1dyX0JIudFonG7xrDdbYtmNtUbKlUWMrUaDnl5uJ2bi9u5uYiQSvFiq1Z4xdAQ\nrxoaok+LFmigwWuk1yZruTwTnp7d0avXdbRs2ReAWCxi1K+jcG7KOZ2WUdRbsrNFJbxihZh2SNfi\nXMtG+MxwmL1vhk6rO6FB0wYgiUuXLmHx4sUwMDDAqlWrMHLkyDJvflKMcjl9WkzF3bqNgJenBMOw\ntyMi5Y5wTHBEsbIYcrUcy4cvx+jnRqOHWQ+99rpXKMRVhT/+AM6eFX+6adOACRNEB7I6KsC0aeI6\n8i+/lLnr+vXicsbly48c9iQyCc6EnMGJgBMIygjC5G6T8WGvD/Fi+xfL/G/m3MpBxKwItB7eGs9t\nfg6NjCtv5iQFhIR8AFKF7t1/R7161WfSVQkqdP+lO3aN2YXXbF6rljYFpYCkbUlIWJ8Aq6+sYP29\nNeo30c97NlepxD2JBHckEtzOzUWKXI4BrVphUKtWGPzPo2EVTNx6bbImyZSUg/TyGkhBUDMuN47t\nNrfjmeAzWjUb1FgUCnLECPL773UtyWPIM+UMnBhIjx4eLPArePi+Wq3mqVOnaGdnx6FDh/J+KSbH\nzExy61ayRw+yc2dy8WIyKOjJ/QRBYExODEccHcEuO7qwy44uNFxnyDdPvsmNzhvpnuT+VFOjrikq\nIn/7jRw1ijQ0JOfOJUNCdC1VDSI3V7RB37z51N3i4khjYzI6WlwWORV4ihN/n8hWa1tx0u+TeD70\nPGXK8q1zKCVKhs0Mo4u1C7OuZWniWzA6+n/09n6JKpVUI+erCId9DnP4keE6MSFL46UMnBBIN1s3\n5jrmVnv7lSFDLuelzEz+LzqaL/v6soWDA+3d3Tk9NJS7kpLomJtLiVJZ7vNBn03WJEEK8PUdipZG\nk/DWlYP4/IXP61JilsbcuaLb6MWLehd7QxLpv6YjekE0rH+whtU3Vg/NeSqVCidPnsSKFSvQuXNn\nrFq1CgMHDsLdu8DevaJ59803gRkzgGHDyk7cUKgoRJ+9fbBp1CYMbDfwHxO3AxwTHBGbG4tBVoMw\nrMMwDOswDAPaDdDLpCJJSWK1of37RQe0efPEa6BnP6v+ceOGWJI1MFB0ky+BcZPy0bT3X1DbncGd\n2Dt4qf1LmNxtMibYT4Bhs/LX/s75OwfhM8NhPM4Yndd3Lldij7JITT2EhIR16NvXFY0bm1T5fBVB\nrpLDbpcdTkw8oVPrY+aFTETOjYTZFDN0+rkTGjSvOX96lSAgqKgIrvn58C0sREBhIYKKimDSqBF6\ntWiBXgYG6NWiBWybNYNNs2Zo+Z+MiXptsuY/8SbZeZ5w9XoJLuqZWDOqbHPUM8mePWLSfTe3Ujsi\nfUAaJ0Xo+6Fo2KYh7I/ZP+Z5qlQqsX//USxZsgpKZU+Yma3EggX98MEHYhhSRXBJdMGkPybBb7Yf\nzFuYP3w/R5oD5wRnOMQ7wCHBAcEZwXje4vmHCnqw1WC0bKI/MUpyuWjK3rlTjJNesAD49NNKRfg8\nO8yaJY5c9u59+FZGUQauRFzBvvsX4Jl1F6Pth2FKj8kYbze+QkoYEGNrYxbFIOtCFuyP2MPw1Yod\nXxo5ObcQGjoVffs6onlzW42csyLs9tiNy5GXcW3qtWpv+78os5WInB+JAo8C2B22Q5uhmq9kVV0I\nJGKkUgQUFcG/sBABRUWIkkoRI5XCoEED2DRrBpumTWHTrBlWdu4M6LNCFihgypkpeMkgEKM69Ue3\nrr9WQ9M1jLt3gffeA5ydxRgOPUdQCohbFoe0Y2noerwrDF81RHy8uPR3+DAwcKAcnTodwLlzazFw\n4ECsWLECPZ+SHKY0frz9I4IygnDxvYulrgEWKgrhmuj6UEF7p3ijq2lXDLMWFfQQ6yF6E1Ln5iau\nfbq4AF9+KWaTNdSMLqhd5OWBPXogZttSnDbNwOXIywjNDMXLHUbC6dB47F8wHm+PqVwHX+BbgNCp\noTDoZQDbPbZoZKiZkJiiomD4+b2M7t3PoE2bYRo5Z0UoVhajy84uuPTeJfSz1Fw2v6ryYLZsOtkU\nndd0LrXYRk2EJNIUCkRLpYiWyRAtlWJVJRVydUCS/Pra1xx+ZDiLZFl0cWnPnJy7Gl4FqOFER5Pm\n5uTt27qWpMJk38zmXVNnbrSLpqmhmt98Q0ZFPfq8uLiYmzdvprm5OadMmcLAwMAKnV+ukrP3nt48\n6H2w3MdIlVI6xjvyZ4efOfrX0Wy1thV7/NKDcy/P5enA00zKS6qQDNogOJj85BNxnfl//yOzs3Ut\nkX4gkUp4Mewi516ey2kzTRlv3JDfnZvDG1E3KFPKuGgROWVK5c4tqAXGb4ink6kT006kaXSNVSZL\npatrR6alndDYOSvKRueNnPj7RJ21/zQU2QqGfBhCVxtX5t6vGWvLlQWVXEOuDrjZZTO77+7OXKn4\nI2RknKO7e1eq1XIdXzY9IS+P7N6d3LVL15JUCEEgb9wgX36Z7GEl56Wu/vQY4M3i2OIS9y8oKOC6\ndetobm7OiRMn0sfHp9xtBaYH0mSDCaNzoislq1KtpGeyJze7bOb4U+NpssGEVlus+M4f73CT8yY6\nJzhTqqx+5xtSdE6aNUt0UFq5Uvw7PEvIVXLej7vPJXeWcPDBwWyxpgVHHh/JdY7rGJQeROGjj8j5\n80mSnp6kmVnlwvLlmXL6j/Gn92BvSuM0+1urVEX08urP2NgVGj1vRciT5dFsoxmD0kvwlNQjMi9m\n0tnCmdE/RFMt1248sK6APitkqy1WjyX+EASB/v5jGRe3RoeXTE9QKsmxY8nPPhM1XA1ArSbPniVf\neIHs2pU8dkx0DBfUAhM2JdDJ1Inpf6aXenxhYSG3bNlCS0tLjhs3ju7u7uVqd4PTBg4/Mpxqoeo3\nsSAIjMqO4gn/E5x3ZR777evH5j83Z//9/Tn/6nyeDDjJyOxIjbRVXiIjyQ8/FBXOhg2it3ZtpEhR\nxHux97j6/mq+fuJ1tlzTkv329eMPN3/grehbLFb8Z0CXnU1aWFBxx5E9e5InKjEBzXXIpYuVC6O+\nj6JaodnfVBDUDAx8myEhH+k0McaKeys49exUnbVfEeTpcvqP9adnP08WhdW+Pzr0WSH7p/k/IXBx\ncQwdHY1ZXByjg8ulR8ybJ6Z7UuhvGM8DlEry6FHS3p7s3588f15Uzv8lzyOPrjauDPssjKri0jN5\nSaVS7tq1i+3bt+eoUaPo6Oj41PZVahUHHhjI3R67q/pVSqRIUUTHeMeHZj/rrdZstbYVhx8Zzq+v\nfc3jfscZlB5Epbr84Q+VISiIfOcd0sKC3LmTlNdwQ1JKfgrPhZzjt9e/5cADA9n85+YceGAgv73+\nLc+GnGVWUTnCjM6dY6axLSeOKa7QuFVQC4z7OY5O5k7MuqKZcKb/EhW1iD4+w6lW6y6VXHZxNo3X\nGzMyO1JnMlQUQRCY9EsSnUycmLw/Wa+yfFUV6HvYU0nEx69BXp4Levb8Sy8qdFQ7O3YA+/aJ3j2t\ny65RqivUauDkSTFPcLt2YsGpV14ptaQ1AECVr0LE5xEoCi5C9zPd0bxL6e7ECoUCx44dw9q1a9Gh\nQwcsXboUI0aMKPE/EZIZgmFHhsHrMy90bNNRA9/u6WQXZ8M3zRc+qT4Pt+SCZPQ064nnLZ5HL/Ne\n6GbaDd1Mu8GkuWbDW3x8xHoLUVHAxo3AW289/ZrrGpJIzE98eJ28U73hk+oDpVqJAe0GYIj1ELzU\n/iX0b9cfzRtVzL08MBCIfmEKXv20A1ru2VCuYxQZCoR+FAqhWEDXU13R1ErzYXHp6acQG/sT+vXz\nRKNGunMa/N+t/yFbmo39b+7XmQyVpSi0CKEfhKJpx6awPWCLxiY1v9JfjQh7+i+CoICXV2906rQG\npqYl5L2rzfz1FzB7tqiMO3bUtTQlolaLmadWrABMTUWF/PLL5T+eJFL2pSBuaRy6/NIFZu88vSyj\nUqnEyZMnsWbNGpiammLx4sUYPXr0E4p5reNa3Im7gxsf3tDJQC5fng//NH/4pPogMCMQIZkhCM4M\nRpMGTdDdrDu6mYgKuotxF9gY2sC6tXWly94BwN9/i2FSJibAli1i5SldQhJJ+UkIzQpFWFYYQjND\nEZoViqCMIDSs3xD9LPs9rJn9vMXzaN+qfZV+J5UKGDwY+Or9DHy4oRdw6VKZqWQljhKEvB+Cth+3\nRceVHVG/oeYzRhUU+CAgYDR6976NFi16afz85SWtMA3df+kOv9l+T00Jqs8IcgGxi2ORfiod9kft\nYTTSSNciVYkaqZABIDf3LsLCPkH//iFo2PAZKbvo4wOMHi3m+xs4UNfSPIEgiDGzy5eLE/eVK4FX\nX6387KzAuwDBk4Nh/KYxbDbaoH7jp3eOarUaf/zxB37++Wc0btwYixYtwjvvvIMG/2TTUAkqDDo4\nCJ+/8DlmPj+zckJpGJJIKUh5qJxDMkMQlROFmNwYpBamwqqVFWwMbdDZsDM6G3aGVSsrWLa0RLuW\n7dCuVbsyZ4wqlRhKtmwZMGqUmLvZ6skKlRpDIpMgXhKP+Lx4xEviESeJQ3ye+BieHY4WjVugq0lX\n2JvYo6tJV3Q17Yrupt1h0dJC47Js3CgOSm7eBOr9fhpYvVrMvdrkybJ/JJG8MxnxP8fD/pg9jF/X\nzqxVociAt3d/2NhshpnZO1ppo7x8de0r1KtXD9te31b2znpO7u1chH4cirbT26Ljcu0MpKqDGquQ\nASA09GM0bmwOG5uN1SCOjklKEouwb98uViLQIwRBrBG/fDnQtKmoiEeP1oyZVJmrRNi0MCjSFej+\nR3c0tS7bfCgIAq5evYp169YhLS0N3333HaZNm4amTZsiMD0Qrxx/Bb6zfUusnaxPKNQKxEniEJ0T\njejcaMTmxiK5IBkpBSkPH5s0aIJ2rdqhbYu2MGxqCKNmRg+3B69bNG4BtaIpfv+tKS782Qwff9AU\n8z5vCsOW4rXkP/H+BB8+VwkqFCmLUKQoeuIxV5aLzKJMZBb/sxVlIqMoA5nFmaiHeujQpgM6tP5n\na/Po0c7YrsJJOCpLYKC4POLhAXTqBDER+ttvAz17AqtWPbavuliNiM8jUBhQiB7neqBZZ+0kERcE\nBfz9R6JNm+Ho1GlV2QdokYS8BPTZ2wehX4Q+ljinJqNI/2epQaq9pQZtU6MVskKRAU/PHujd+5ZO\nTT9ap6AAGDoUmDoVWLhQ19I8hBQt6MuWieksV6wAxo7V/HolSSRuTkTipkTYH7GH8Zjyz16cnJyw\nfv16eHl5Yf78+ZgzZw52+O+Ae7I7Lr9/uUb7IJBEriwXyfnJSC9KR640FznSnIdbriwX2dJsFCuL\nIVVKIVPJUCCVISlNCqlKBoNWMjRuAtSvVx/1UA/16tV7+LxB/QZo0bgFDBoZwKCxAQwaGTx83aZp\nG5gamMK0uenDRzMDM5gamKJl45Y6v6YyGdC/v2iunzbtXx+kpooFsf/+G+grFquRxkkR/HYwmndr\nDrsDdlpN0xgRMRdyeRJ69LiAejoueDLr0iyYNDfB2pFrdSqHpqFAJGxIQNK2JNgdtIPJuOpNP1pV\n9L64RFkkJe2ht/eLFKoxzKRaUSrJN94QA071xJtQEMgrV8h+/cjevcXSy9UhWq6jGIIS/WM01cqK\n/d6BgYH86KOPaGRkxG8XfMuua7vymN8xLUmq/9y+TXbrJhayCAvTtTSa5euvycmTS/lPHj1K9ulD\nKhTMvpFNJ3MnJmxN0LqnbnLyfrq725da3706icyOpPF6Y2YX196MMhInCV3auzDy28gaFbMMfQ57\nKg+CoKaX1wCmpJQ/G1ONQRBERfzaa3oR3iQI5N9/kwMHivlIzpwpOXxJm8jT5fQb6UffEb6UpVY8\nXCQuLo7z589nqzat2HRAUzp6Pz1kqjajUJBbtoiJRb7/nszP17VEVef6dbHgU6nZywSBwpgxzB21\ngM5tnZlzN0frMkkkTnRyMmNRUbjW2yoPU89O5cp7K3UthtZRZCkY8GYAvfp7sTim5KRD+gZqukIm\nyfx8Hzo5mVEuz9TipdIBy5aJ01Ad95SCIM6oXnpJjCU+dar6FfFj8qgExiyLobNl5TvUzMxMDvlo\nCBu3bMwJEybQ0dGxVsUzVoTUVPLjj8l27ciTJ/XGEFNhMjJIS8unZ5FVFigZNvYmFQ3bUHa7/Bnf\nKotUmkhnZwtmZV3TelvlITA9kGYbzZgvqwWjr3IgCAITtpaddEhfQG1QyCQZETGfoaHTtXSZdMCe\nPeRzz5Hpuv0T3b9PDh9OdukiZjpSlZ6vo9rJ/jubzm2dGbcmjoK64lpEppTRfos9p/84nTY2Nhww\nYABPnz5NZQXql9YmnJxEa+6wYWRAgK6lqRiCQL71FrlwYen7FEUU0b2bO0NnhFK9bSf54otaHVmq\nVMX08nqB8fHrtNZGRXn79Nvc6LxR12JUO3meeXTt7MrwueFUSfWoE/sPqC0KWanMo7NzO+bm1gIT\n5Llz4lD/35UWqhlnZ/LVV8nOncVlN33VUdJEKb1f9Kb/G/5UZFXcrO+S4EKLTRbMLMjk+fPnOWTI\nEFpbW3Pz5s3Me9aSQ1MccP3yC2lqSn71FSmR6Fqi8rF7tziYkJWyipH5VyadTJ2YvPefzE5qtWjy\n2a2d7G2CIDAk5EMGB7+nN5YXz2RPWm62fDLF6DOCUqJk0OQgevT2YFG4fqbdRG1RyCSZnv47PTx6\nUK3W/Xprpbl/X+wNvb110ry7O/n666S1NXnggF4sXZeJWqFm5IJIunRwYZ5bxZXonMtzOOvSrIev\n3d3dOWXKFBoZGXHBggWMj4/XpLg1gsxMcuZMsm1bcUCmyyWKsnB3F2+ZiIgnPxPU/yxvtHOmxOU/\no4uQENLEhExIePLAKpKQsJmenn2pUulPx//6ide1lj62piAIApP2iGk3U4+n6lqcJ0BtUsiCINDP\nbxTj4zdo4VJVAwEBYoWAmzervWlvb3LcONLKSrSW18Q8yJkXMulk5sTEbYkVmpVIpBK229yODnEO\nj70fFxfHb7/9lkZGRnzvvffo4eGhaZH1Hnd3sRjIiy+Svr66luZJMjPFweOFC09+ppQoGTAugD5D\nfEp3AFy5Uvzja3AWm519g87ObSmVxmnsnFXFMd6RHbd1pFxVA29sLVDgX0B3e3eGfBJCZYH+mP9Q\nmxQySRYVRdLR0VivboZyERcnasNTp6q1WQ8Pce3NwoLcsYOU6qaSoMYojimm1wteDJwUSKWk/Dfa\n2ZCztN9lT5nyyY5bIpFw8+bNtLa25tChQ3n+/Hmq9GkxXcuoVOS+feJY8YsvyBztOyaXC5VKDEBY\ntOjJzwqDCunWxY0R8yKeHvYil4shA6dPa0Sm4uIoOjmZMTf3nkbOpwkEQeCwI8N4xPeIrkXRK1SF\nKoZOD6WbrRvzffXDyQ21TSGTZGzsKvr7v6E3azdlkpEhui9v21ZtTd6/L3Zm7duLirg2lexTy9SM\nmBdBVxtX5vuU70YTBIFvnXqLy+8uL3UfpVLJU6dO8YUXXqCNjQ23bdv2TK0zZ2WRn39OmpuThw7p\n3oy9ZAk5YsST/g3pf6bTydSJqcfKaZJ0dRVt81lVq+qkVObT3b07k5L0yyz8d9TftNtpp/VqYzWV\ntBNpdDJxYtKuJJ3rDOizQl5eet/4VNRqOd3duzM9XTOjXq2SkyNm11iyROtNCQJ57Ro5ZAhpYyOu\nEddE03R5Sf89/XFHnjJIkCTQeL0xQzJCnrqfIAh0cnLiu+++S0NDQ86fP58RJS1g1lI8PcVY9EGD\nSC8v3chw+bJoUEpLe/SeWqlm1PdRdOngwnzvCs54vvqK/OSTSsvzoLZxWNhMnXfq/0YQBPbf35+n\nA2tAX6hDiiKK6Pm8JwPfDqQiR3eOM9Bnhdytm6inKvP/lkhc6OzclgqFHmejycsjBwwgFyzQavCn\nUkn+8YcY0ty9O/nbb/rrNa1pisKL6NHLg8EfBJdrrWiH2w4OPTyU6nJmfktISOAPP/yKdRSgAAAg\nAElEQVRAExMTjh07ln///bdedcjaQq0WZ8nm5uKsudREHFogJEQ0nzs5PXpPni6n78u+9HvNj/LM\nSowyCwrIDh3IGzcqJVNs7Ap6ew/WaW3jkrgQeoG99/Qu9//5WUYtUzPiqwi6dHChxFk34QXQZ4Wc\nnk726lV5fRUePpehoTM0f9U0QWEhOXQoOWeO1pRxfj65dSvZsaMY4XH+vO7NjLpAVaxi2Mwwutu7\nsyCw4On7qlUccGAAD3gfqFAbxcXFPHDgAHv06MGuXbtyz549LCwsrIrYNYKcHHFd2cyM3L9f+/+v\n9HSyUyfR8/sBeW55dGkvplQVVFW4l65eFU9ewd8tI+M8XVysKJOlVL5tLaAW1Oz5S09eCruka1Fq\nFJkXRefQyuY3qArQZ4VMiiPv/v3FUXhF/WiUyjy6uFgxJ+eu5q9cVZBKyZEjRROZFnqwhATyu+9I\nIyPy3XdJNzeNN1EjST2WKoY7HH362qJ/mj9NN5gytaDiYRGCIPDOnTucMGECjY2N+d133zE2NraS\nEtccfH1FT+z+/UXPbG0glZKDB5M//SS+FgSByXuT6WTqxMwLGsrSN3WqOAMoJ4WFQXRyMmFenv55\n4J8MOMmBBwY+ExYbTSNNlNJnqA/9RvpVKkVvZYG+K2RStOyOGCEmjC8t8L80MjMv0M2tC1UqPXEf\nlsvFMIspUzSa9koQSEdH8v33SUND8ptvyGdAD1SYwqBCund1Z+j0UKoKS7/+i24u4rt/vlultmJi\nYh6GTb399tu8d+9ere4c1Wpx5tq2Lfnpp2RysmbPPWWKuKnVotUjdFoo3bu7azbJQ2amaIcvR4ib\nQpFDN7fnmJqqf0VKlGolu+zowpvR1R9CWVtQK9WMWRpDZwtnZv5VPWmZURMUMimOjt95R1TMFc0e\nFBg4kdHRP2nwslUSpVIcVYwfr7GMG7m5opd0t26krS25eXPNya6kK5QFSoZ8HCKasP1KNmEXKYrY\naVsnXo+8XuX2CgoKuHv3btrZ2bF37948dOgQpTU9vuwpSCRisQojI3L58gpbgEvkp5/E2bFUKoa2\nefb1ZPB7wU8dVFWaEyfEtbKn3KNqtZJ+fqMYGfmN5tvXAId8DnHE0RG1egBYXeQ65NK1oyvDPgvT\neswyaopCJsUJ5RdfiE7JKRVYrpHJkunkZMKCgkANXroKolKRH34o1rurYmcsCKIZeto0snVrcdZw\n927NLQqgKx6EO5SWSORKxBXabLfRWKpBtVrN69evc8yYMTQ1NeWPP/7IpKQkjZxbH4mJEf+b7dqR\nhw9X3iC0b5+YwjUjg8y+nk0nMy2XTBQEMV3dmjWl7hIV9R39/EZSrYehRDKljB22dqBzgrOuRak1\nKPOUDPkkhK42rk9mfNMgqEkKmRTvlVWrRN+LitRxFesmD6Ig6CChg1Ip2pJHjqxSwG9yMrlxozh4\nt7Eh16/Xee2JGk9xVDG9BnjRf6w/5RlPeudO/H0il95ZqvF2w8PDOW/ePBoaGnLKlCl0dnautbMZ\nV1dxdtunz9MrMZXEr7+KCj08VM2YxWKFr9z7udoR9N/ExYl1KcOfLJmYlnaCrq6dqVBULW5ZW+x0\n38k3fntD12LUSjLOZNDJzIkxi2OoVmje/wc1TSE/4ODBimWZFAQ1fXyGMClplwYuWwVQKEQz9euv\nk8UVn2lJJOK63MiR4trwjBnknTvPpre0tlAr1Iz+IZrOls7Mvvl4/M6D2OTwLO3UspVIJNy2bRtt\nbGzYr18/Hjt2jLKKOkrUAARBDL3r1Ek0EpUnC+nZs+J6tM9tmehg85of5WnVGDi/fbtY+upfN1t+\nvtc/1jb9LIdVpCiixSYLeqfoJhf+s4AsRUb/Mf707OfJwlDNRlJAnxVy//5iAfXScvvfvSv6X5S3\nYEthYcg/aTUTNXYBn4pcTr79tujEVQEzdUaGOOAYM4Zs2VJccv7jj0rp8zoqQPbNbDpbOjNqYRTV\nsked8CbnTRx5fKRWZ7BqtZqXL1/mqFGjaG5uziVLljBZk15ReoJcLuZKb9dOTNnq71/yflevigPu\n29ty6GSumxAUqlRiBpR9+0iScnkaXVysmZFxtnrlqADrndZz0u+TdC1GrUcQBCb9kkRHY0fGrY3T\n2GwZ+qyQb9wQvTWNjcVwihUrxMxA/54dRkWJDk1z5pTPTyomZhkDAsZr3zwok5FvvklOmFBmOixB\nIP38yHXrxNrDrVqJk+pTp8RY4jqqD3mGnIFvB9Kjh8fDtJsKlYI9f+nJU4HVk2c8JCSEc+fOZZs2\nbfj+++/T1dW11pmzi4vFwba5Ofnee48vP929S5qYCPzjvUS6WLtQ4qRDL8XAQNLEhOrEWPr4DGFM\njPYz6lWWPFkeTTeYMjgjWNeiPDMUxxbTb5QfPft4Vjw7XAlAnxXyAxQKce3p229JOzvRjDV9Onny\nJJmUJIZFvfEG+corZa+pqtUyurvbMyPjTJUvXqnk54vFhCdPLnGUIAiiw8uxY6JjloUF+dxz5Lx5\n5F9/1c2EdY0gCEw9nkonUyfGroylWqmmU7wTLTdbUiKtPuWQm5vLLVu2sHPnzuzfvz9//fXXWmfO\nLigQfadMTMR74eBB0sRI4F67MAaMD6AiWw/qf/70E/NHd/5nIK+/a0XL7y7nR+c+0rUYzxyCIDD1\naCqdzJwY/UM0VcWV91NCJRVyPQ0r35L4R74niY4Grl4F7twBHB2BNm2AIUOArCzAyws4dQp4+eXS\nTyyROCEkZAr69w9Go0ZtNCt1djbwxhtA797Anj1AgwYoKgL8/QEfH8DFBXBwANRqYOhQYPhwYPRo\n4LnnNCtGHVVHliRD+IxwqHJVsD9mj68iv4JBIwNsH7O9WuVQq9W4evUqduzYgaCgIMyePRuzZ8+G\nhYVFtcqhTSQSYNZM4q9zAlY3CMaQr40wcEM71KtXHV3N00mJ3gmjEQvQaOevaDBhiq7FKZHs4mzY\n7bKDxywPdDbsrGtxnkkU6QpEfhmJQr9C2B20Q5thFdct//zfK/yn16lC/jeCAISGikrOyUlU0ImJ\nQLt2wJgxQI8eQJcu4taxI9CokXhcRMRcCIIc9vaHNCZwcWQy6r0+CvE9xuHMC+sQEloPvr5AfDzQ\nrRvQty8weDAwbBhgYwPoQV9TRxmQRMq+FMQujoXJdyYYUX8Ern50Fc9bPK8TeUJCQrBz506cPn0a\nY8eOxfz58zFgwACdyKJJdm9SYeUSYnO7cBS83RE/n2qBHj2AhQuBV17R3b0ikTghOHgS+uVtRNM5\nS4DgYKBFC90I8xQW3VyEPHke9o7bq2tRnoogiIOvrCwgM1N8lEiAoqInt+JiQKkESPG4fz+SQJMm\nQNOmT27NmwOGho82I6NHz1u00P5/KfNCJiLnRcJ4jDE6remExqaNy31sjVfIJREaCkyeLF74AQNE\nBR0ZCaSkAFZWgKUl0L59AaZO7Yn4+H2oV280WrQADAzEH6xZswcCPNqkUqCgAMjPFx8lEiA1VTxn\nairQOCEKJ7NH4YLZbDi+uAi2toCdHfD886IyfjAQqKNmIo2WImxaGNIL0rF74m5cWHwBDeo30Jk8\nubm5OHz4MHbt2gVzc3PMnz8f77zzDho3Lv/Nrw+QwJJPinDkZAP8+mk6Ruxsj/pN6kMuB06cALZu\nFfebPx/48EOxs60uZLJE+PgMhJ3dYRgbvw5Mmyb26g+E0hPSCtPQbXc3BMwJgFUrK53JIZEACQlA\nUpK4JSY+ep6cLCrfnBygZUvAxOTR1qaN2Pc+6H8fPG/eXOw369cX+/J/PwKAQgHIZOImlT56XlQE\n5OaWvKnVYv9f0taxI9C5M9C2bdWVtipPhbjlcUg/kY4OyzrA8nNL1G9Yv8zjaqVCBsQf68cfgdOn\ngQMHxNmyXC7OVlNTgbQ0oLDwBiwtZ+Hq1UBIJK1QWAgUFoo/LiD+KA+2Zs3EP9KDrXXrRz9kl1wP\n2C6agHrLlqH+nNka+vp16BsUiOS9yfBf5A/pe1K8vfNtNGiqO6UMiObsy5cvY8eOHQgNDcXnn3+O\n2bNnw9zcXKdylYeiVCU+HVEIr9gmuPy7El3fbv3EPiRw+zawYwfg6gp8+ikwc6Zo8dImarUUvr5D\nYGb2HqytF4pvZmWJJrcrV4B+/bQrQAWYf20+GtRrgK2va3+gkJMjTm6ioh49PniuUAAdOoiTHisr\noH37R8/btQNMTcXZqi4nJ0VFjyZS/96Sk4G4OCAmRpxwdeokKucHm7090LWr+J0qoqwLgwoRNT8K\nymwluuzsUqYZu9Yq5AfcvQtMnw6MGgVs3iwq038TFjYT9es3gq3tnso1cOkSMGMGcOjQ/9u777iq\n6jeA4x+GTAVBBcTciCIuRCvT1DSzcpQjszJNU1NLbf/a2tD69WuYljmyYVqmZpqae1vmAFwIKig4\nmCJ733vP74+vOMqBci/nXnjer9d5XYTDPc/xXO5zz3c8X+jbt8zxCuu3f/9+1j25jrsL76b5N81v\nqa/IEg4fPsyMGTNYvHgxffr0Yfz48bRv317vsP5F0zQiZ5/jiQnO1Kprz+IdLnj7O97w92Ji1LCM\nH39UrU4jR8KAAZdatMwZX1TUk4CJoKCFV/Zjz58P06bBnj3geOOYLe1U5ilCZocQ9WwUPu4+ZnlO\nTYPkZDh8WG2HDqnH48fVHWaTJmrMS8ljyde1alWMbricHDh5UiXnEyfU6y46WrW8ZmdfSs5BQRAc\nDG3aXD9Ra5pG6pJUYl+JpWpIVRp92Aj3IPer7lvhEzKoZuYXXlDJ+fvvVR9uCYMhk717W9Cs2Q94\neXW7uSeeORPefx9WrFBt46LSeGX9K7hscuHBnx7Es4snjf/bGOc6znqHBcD58+eZN28eX331FbVr\n12bChAkMGDDAKpqzC84UsPyxMzy/uy5PDdWYOsflYhNkaRUVqc/B33wDe/eqpDx4sBog6WCGBovT\npz8lOXkhISE7cXD4Rxu5pkGPHmrg5osvlv1gZTTy95H4uvsypfuUW/r9rKxLiffy5GsyQcuWqkGg\nZGvaVDUxV4Ske6syMlRiLtkOH1YDdgsK1DjeNm0ubUFBcPmfnLHAyNkvz3L6v6ep+XBNGrzbAGf/\nK98zbjUhl8UjQCRgBK43MqYMA9Gv7vffNc3fX81tTr1s8Y5z51Zru3Y11IqLr79W7kVGo6qeHxio\nabGxZo9TWL/swmyt7md1tS2Ht2ixr8dqO2rs0OI/ir+ioIjeiouLtWXLlmldu3bV/P39tffee09L\nSkrSJRZjgVGL+zBee8P9qObtZtCWLjbP/1N8vKZ9/LGmtW2rpkM+95xa9exW62anpa3V/vzTT8vP\nv0Y1Ik3TtGPHVHGEuLhbO4iZHDt3TKvx3xra+bzzN9y3oEDVOvjxR037z380rVcvTatXT9Pc3VWN\nh+HD1cI069erdQIq2LR3i0tK0rR161Q548ceU7UxXF1VudjhwzVt1ixNCw9Xs2CLzhdpMa/GaDu8\nd2gxL8dcsbwjOkx7agaYgNnAS0D4Nfa7EJ95ZWXBpEmwcCF88IFq9rK3h6ioYTg6etKkyfTrP0FO\nDgwdCikp6s64Rg2zxyhsw29Rv/Hm5jfZP2Y/hpMGYl+IJe9oHo3/15gafWtYxZSdEgcPHmTGjBks\nXbqUvn37MmHCBELLqR807Y80wsbH8Wl+Y065ebBkuT0tWpj/OMeOwS+/wNKlqk/wgQegVy81rdDL\n68a/n5cXQ0RER4KDl1K9+t3X33nKFNWpvXKlbreMTyx7gqCaQbzV+a2L3zMY1LTQw4fVgPCSu964\nONUXevldb8uWqq/0ZlsoROnk5alrsG+fasnZvVuNYWrTRjWodggooNGe0+T/nozvEF/qvlIX13qu\noFOT9RZ0SMgl9u+HceNU08z06RAScp69e1vSvPmia/8xxsWpfuL27VVztbN1NFEKfWiaRp+f+9Cp\nXide6/QaAGlr0jjx6gkcPBxo9FEjqt9tHf3LJdLS0vjmm2+YOXMmt912GxMmTKB///5UscBIm9zo\nXE68coJN4VX4b2Egg5+0Z+pU8/f5Xs2pU6pWwapVakpkcLBq0u7SBTp2BA+PK/c3GLIJD7+TOnWe\no06dsTc+QFGRmkLxzjswaJBlTuI6DiYdpvsP9/Jl0+OciKp2MfkeOwa1a19KusHBl5qb5e1Kf1lZ\nEBamkvOePerRrbCQ0Z5naJOYyH35d0NlTMigkvH336u/qTvvhBdf3IiDwzjatdv/776j7dvh0Ufh\n9ddh/PjK3ZEiLjqRfoLb595O2Ogw6levD4Bm1EhemMzJd07i3sKdRlMbUbWVdc1dNRgMrFixgunT\npxMbG8vYsWMZPXo0tWrVKvNzF5wqIO7dOE6vSGd+kxZsP1uV7763o9tNDtEwl/x8+Ptv2LZNbXv3\nqgTVrp3KqW3bmnBy6o+Liw+BgbNL37Lx559qfuWRI2rujgWkp6vBVJdvx45BRNN+VE27mw68eEXi\nDQpSU4aE7Th7ViXn8C1FfDDDGSyQkDcAflf5/hvAygtf3zAhT5o06eI/unbtSteuXW8uylLKy4MZ\nM+CTT6BLl81MnPgnd9/99oUoNJgzR2XtBQvUgA4hLvPB9g/Yl7CP5YOXX/F9U6GJhFkJxH8Yj2cH\nT+q9UQ+P9h7XeBb97N+/nxkzZvDrr7/Sr18/JkyYQEhIyE0/T1FqEaemniLhhyT2dgrks3216HGf\nHdOmWSxf3ZLCQnWXEh6uHv383qZOna3Mnr2Jxo2dCAyEwEA1erhOHXXHec1aIGPHqveIWTdfkKOw\nUI1mvnzO7uWPsbFqn5LCRiWbwWcv7xzpR8yE47hWKYfmBmExW7duZevWrRf//e6770JlvUP+p/R0\nmDo1j9mzC+nfv4DXJ3rS9PMxEBEBy5ZZfvKjuKiwUDXvlGyZmZeKshQXq74yo/HKx39W7yn52tlZ\nTXfz9lZd/tWrm3fGSqGhkFazWvFJj0/o07TPv35uzDOSOC+R0/87jVtTN+q9UY/qXatbVR8zwLlz\n55g7dy4zZ86kQYMGTJgwgX79+uF4g/+s/BP5nP7sNCkLU0juUY//nbgNo50906erynTWLCXlF2Jj\n/0OLFnuIj/fh6FF1B3rsmEqIJXNUq1RRNQe8vVUNAk9P1exd0zGD//wYzM/9FpPQoCMODur1WFSk\nXsNFReoOPT1dzeG9/LGoCHx81JSZkjm7l8/dbdxY/fyfL5OeC3rSr1k/xrQbo89/mrAYPac9bQFe\nBsKu8fNyT8gloqPX8cl/I/l9wTA61T7Jqz8Ec+c98knUHHJz1cCGuDh1J5CUdPXNYLj0pufhcenr\natXUm6Ojo5ricvkjqDfBgoIrH/Pz1Vi8tDT1ZpiZeWWCrl3732+GJcUMStvfufHERkb+PpIjzx7B\nrcrVy0mZikwkL0zm1EencHB3wH+sP76P++Lgrm9xkX8qLi5m+fLlTJ8+nbi4OMaNG8eoUaOoWbPm\nFftl7cvi9P9Ok74pnYL+9fku3Z/NOx2YOhWGDbP+wULZ2eEcPNiTVq02UK1am2vup2nqNXP2rEqk\nl39AzMmBxuFL6LhxMrOfiaAIJxwd1XQXZ2f16OJyqXzj5WUc3d1vvudrW9w2hq8YTvRz0Tg56D+N\nTZiXHgm5HzAdqAlkAhHAA1fZT7eEzJIlRB98koKWnfgzZQOffmZHjRqq/sdjj6nkIK5O01SN2qNH\nuXi3ERd3acvOVtV8GjRQSa92bVWq7vLN1/fW3qxKy2hUb6hpaWpLTLx6ub+EBDXvsqT4wT+3fzZj\nPvbrYzSq3uiGc0I1k0b6hnTOzjxL5s5MfJ/wxf8Zf9yDra/zLyIighkzZvDbb7/Rv39/xj41Fv8j\n/iR+m0hRYhHpjzTk2xM+bNtpz3PPwfPP28bfR1FRMmFht9O48Sf4+DxStifTNOjTRzUHvPmmeQK8\n6mE0On3XiTGhY3iy9ZMWO47QT6UoDFJqubnw0kuwfj2Gxd+xzzCcgIDpeHn1ZsMGVYxrwwY10Hr4\ncFVgxByFCGxRYaFq0ouOvpR8jx5V/7azU9VsmjZVfXENG6oE3KCBaoKz9junEkajSswl5QEv32Jj\n1bkEB6uqUc2bg0+DVIbubM/OMWsIqhVUqmMUnCogcW4iid8mUqVWFXwe9cHnUR9cG1lPi4yp2ETs\n77F89cFX/HTgJ+p6N6Rz9ylEZXTj0GF7Xn4ZRo2yyjUXrspkKmT//m54ed1Lw4bvmudJ4+NVOc1d\nuyzWtbXq2Cpe2/gaB8Yc0LWOurAcScglwsPh8cfVBLEvvwQPDzIytnPkyGDatTuAk5MafZqaqkr3\nzZ+v7qAeegj691cr0lS0aQWapsr3Rkdf2kqS7pkz6k63aVO1lSTgylLNx2hU5fWOHFFzDUseDx8p\nxr7qee5p70Pz5nYXE3ZQ0PXvHDWjRubOTFJ+SSH111Rc6rlQ46EaeN3rRbV21UpVmN6cDFkGzq87\nz7kV5zi/5jyujVzJ6ObPyqwa/LDIiNEYg6PjfF56yZcxY4ZTw0bm42uaxtGjIzEY0gkOXoqdnRn/\nXz/7TNW53rjR7H8AJs1EyOwQ3u36Lg83e9iszy2shyRkk0kNr/7kE/jiC9UmfZnY2FfIzz9x4Y/3\nytM+cQKWL1fjvSIjoWvXS1vLlrZzJ2gwqHO5POGWbCaTSiYlSbck8TZqdGVZOKEUFhsI+W8/HvR8\nmZq5XS4m6uho1W9Ycjd9+ebtfeVzmAwmMrZmcH7NedI3plN4qhDPLp54dfOiWmg13Fu541jNvHWU\nC5MKydqVRdZfWWT+lUnuoVzcO3hyqlVt/i7yYv0OR5KTVU2cYcPU6yAsLIwZM2awYsUKBg4cyPjx\n42nVqpVZ4zK3M2emk5j4DSEhf+HoaOZbeoMB7rgDJk5U/1Fm9POhn/li9xfsenqX1Q0GFOZTuRNy\nTIwq1WUyqdve+vX/tYvRWEB4eHvq1n0VP79r99skJ8PmzbB1q6qZnZYGnTqpeY4hITcuQG5pBQWX\nVjO5vHD60aPq3/7+Vybckq8rSsH48vT3mb/p/0t/op6NwtNF3RabTKpYxZEjV25RUWrgWElyDgpS\no2sbNVIvR2dntfB5+uZ0MrZlkBORQ+7hXJz9nanapiquAa441XHC+TZnnOs44+TrhL2LPXZOdtg7\nqUdTgQlDhgFjphFDpoHi1GLyY/LJO55H/vF88o/lY8w14tjek7P1a3Hc2YPwBBc2brGnXj1V8eqB\nB1RBjat10SQnJzNnzhxmzZpFYGAgEyZMoG/fvjhYWX/O+fMbiI4eSkjILlxdG1jmIGFhqs51ZKRq\nKjKDYmMxzWc2Z3bv2XRrqNNkblEuKmdCNhpVea4pU9QajRMnXrczODt7PwcP9iA0NBwXl7qlOsTZ\ns6puwP79aouIUP2uTZuqPtWSrV49lfRq1FCbm1vpE2Bx8aURn+npl5aVTEy88utTp9QHhHr11Bt9\nydJiDRuqeAICyqd6UmUyeuVonB2cmfHgjOvup2mq6+PyJF3yoen0afXaKHmtNGigBsHVqmnCq7iQ\nqim5uJzLxzE1H1NSIYVnCilOKcZUaMJUZEIr0jAVmrB3scfR0xE8q5Dv7kRuVRfSvKqS6upGkubC\n2dwqRJ5w4MQJ1cTerp260bvvPvVBrbSKiopYtmwZ06dPJyEhgWeffZann34a7382AeggL+84ERGd\nCA5eTPXqXSx7sBdeUMP5f/jBLE83J2wOiyMXs3HoRrM8n7BelS8hR0WpRVWdnNRyMaUcgBEfP5X0\n9E20br3hlvudkpNVpZ2TJy9tJcmyZDOZ1Ajjy6dNODqq5Hv5lpOj5jGWTAvy8lIjlGvXvnLz81N3\n5nXqVN4BaHpIy0sjeGYwqx9fTaj/rdWMNhjUB7uSFo34ePUhKzn50mN6uhq57uSkpnJdPjq95DEv\nT31oK3m9eHldGmRXspVUezJXN8TevXuZMWMGK1euZNCgQYwfP54WlihgXQoGQybh4R247baJ+PuX\nw3rlOTnqP/Pbb6F79zI9VX5xPk1mNGHZo8u4vY6sKFfRVZ6EnJ8PH30EX30F770HY8bcVCevyWRg\n//7O1Ko1iLp1nzdfXFcJMy/vUmGBwkL1xlylypVb1ao3dzctyt93Ed/x9b6v2fX0LouOitU09brJ\nzlYTBUq+V/Lo5qYSsSWnkl1LUlLSxebsoKAgJkyYQO/evcutOdtkMnD4cF9cXBoQGDizXI4JqEUn\nXnwRDh4sU/PTp399ys7TO/nt0d/MGJywVpUjIa9cqZql27WDTz9Vt4y3ID8/lvDwO29YSEAIUCNj\nO3/XmSGthlT6qkpFRUUsXbqU6dOnk5yczHPPPceIESPwKs0yTGVw/PgE8vKiaNnyD+ztzb+AxnU9\n8ojqE/rgg1v69azCLJrMaMLmoZsJ9gk2c3DCGlXshBwbqyoVHD+upjLde2+Zg0pOXkhc3Pu0axeG\ng4P1FXIQ1uVQ8iG6z+/O4XGH8XH30Tscq7B7925mzJjB6tWrGTx4MOPHj6d58+ZmP86ZM1+SkDCT\nkJC/qFJFh2LaCQlq1fqtW1UT9k2atGUScZlx/PCwefqihfW71YRs3RN6zp1TifiOO9TQ0IMHzZKM\nAXx9n8DD4w6OH59olucTFVtL35YMbT2UVze8qncoVuOOO+5gwYIFHDlyBF9fX7p160aPHj34/fff\nMRqNZjlGWtoaTp2aQsuWq/RJxqBGxL33HowerQaH3ITU3FS+3Pslk7tMtkxsokKxzoRc0k/crJnq\neD1yBF57zewTZps0+ZLMzO2kpPxi1ucVFdOkLpPYdHIT2+O36x2KValduzaTJ08mPj6eYcOGMWXK\nFBo1asSUKVNISkq65efNyTlEdPQwgoN/xdW1kRkjvgXPPHNpxbib8OHOD3msxWM09GpoocCEuDla\nqeXna9pXX2nabbdp2sCBmnbsWOl/9xZlZe3Tdu6speXlnbD4sYTtWxK5RGv+Vbd4zMMAACAASURB\nVHOtyFCkdyhWLSwsTBs5cqRWvXp1bdCgQdqWLVs0k8lU6t8vKEjU/vqrvpaU9JMFo7xJhw5pWs2a\nmpaQUKrdT6af1Lz/660lZJVuf1FxALfUT2sdfcj5+TB3Lnz8saq+8fbbqvRlOTl9+jNSU5fQps32\n8h8wImyKpmk8+NODdGvQjVc6vqJ3OFYvIyODH3/8ka+//hqAMWPGMHToUKpfZ2FlozGf/fu7UqPG\ngzRoMOma++nizTfVWJbFi2+465BlQwjwDmBy18mWj0tYFdsc1JWerhLxtGmqn/jtt1VJrHKmaSYO\nHepN1aohNGp0/RV+hIg5H8Od39xJ+DPh1POsp3c4NkHTNLZv387XX3/NunXrGDBgAGPHjiU0NPQf\n+5k4cmQwdnZVCApaYH3lJfPzoVUr+Pxz6N37mruFJ4bT66deHHvuGNWcq5VjgMIa2NagrmPH4Lnn\nVG3BQ4dgzRr47TddkjGAnZ09zZp9T1LS96Snb9YlBmE7ArwDGH/7eJ5fa7l57BWNnZ0dXbp0YdGi\nRURHR9OoUSP69+/P7bffzty5c8nOzgbgxIk3KCw8S9Om86wvGYOaizxrFjz7rCocchWapvHKhleY\n1GWSJGNxU8rvDtlggLVrYfZs+PtvNWLx2WdvrqafhakaucNp1y7i4qpQQlxNgaGAll+3ZFrPafQK\n7KV3ODbJaDSydu1avvnmG7Zu3cp99zWje/ezPPVUOE5O5qkfbTHDhqnVRD7//F8/WhuzlufXPs+h\nsYeo4iBdYJWRdTdZv/EGfP+9KsL89NNqeUQ3t3I49M07ceJ1srPDadXqD+zspEaluLb1sesZs2oM\nkeMica0iRcTL4vDheXz99Qts2FATBwdnnn76aYYOHYqPj5XO+T53TtUpXb1arZ98gdFkJGR2CO/d\n854sr1iJWXeTdX4+rF+vFv0eOdJqkzFAgwbvYzIVEhf3vt6hCCt3X+P7aOffjqk7puodik3LzPyT\nzMzX+eijrRw9GsvcuXOJjIwkMDCQ/v37s3r1agwGg95hXqlmTTUIddQo1fp3wY8Hf8TD2YOHmj6k\nY3DCVlnHKGsrU1iYRFhYKM2afYu3d0+9wxFW7GzWWVrPas2fI/6kac2meodjc3Jzo9i//x6Cgn74\n199aVlYWv/zyC/PmzSMuLo7BgwczZMgQQkNDraN/WdOgRw+1puVLL5FfnE/gl4EsHriYDnU76B2d\n0JF1N1nbWEIGyMjYRmTko4SG7sHFRUbSimv7fNfnrDq+io1PbrSORGEjCgsTCQ/vQIMGk6ld+6nr\n7nv8+HEWLlzIggULcHR0ZMiQITzxxBM0bKhzwY2YGLjzTti3j4/OLGJfwj6WDlqqb0xCV3l5ebi7\nu4MkZPM6depjUlOXERKyHXt781YJExWHwWTgjm/uYMLtExjWZpje4dgEgyGL/fu7ULPmABo0eKvU\nv6dpGrt372bBggX88ssvNG3alCFDhvDII49Qo0YNC0Z8HVOnUrRtM/7dIvhr5C4CawTqE4coNwUF\nBRw9epTjx48TExNzxZaWlkZBQQFIQjYvTTNx+HA/XFzq0aTJ9ReoF5VbeGI4Dyx8gMNjD1PLXUbo\nX4/JVMShQ71xcWlIYOCsW25VKC4uZt26dSxYsIA1a9bQqVMnBg4cyEMPPYS3t7eZo76OoiISA/1Z\nMziUER+tK7/jCosrKCggOjqayMhIjhw5cvHx9OnTNGzYkKZNmxIQEECTJk0ICAggICCAOnXq4Ojo\nCJKQza+4OIPw8PbUr/8Wfn5y9yOu7eX1L5Ocm8yP/X7UOxSrpWlGjhx5DJOpiODgpdjbO5rlebOz\ns1m1ahVLly5l48aNdOjQgYEDB/Lwww9Ts6Zlp1DFno/l2bfbsnqZKw5HosDCS1EK88vPzyc6OvqK\npBsZGcmZM2do3LgxzZs3Jzg4mODgYJo3b06TJk2oUuXaU9qkD9mCcnMj2b+/Ky1b/oGHR3u9wxFW\nKrcolxZft2BWr1n0DJDBgP+kaRpHj46ioCCOli1X4eDgYpHj5OTk8Mcff7BkyRLWr19P+/bt6du3\nL3369LFIn/MjSx6htW9r3lqUoEZc3+QCFKL8lCTef97xliTekoRbknwDAgKum3ivRRKyhaWm/kZM\nzERCQ/fi5OSrdzjCSq2NWcu41eM4NPYQ7k6yznYJTdOIjX2ZzMw/ad16I46OVcvluLm5uaxbt46V\nK1eyevVqfHx86NOnD3369OGOO+7AwaFstQa2xW1j6PKhRD8bjWtekVov+eef4e67zXQG4lbk5eVd\n9Y737NmzBAQE/OuO91YT77VIQi4HJ09OIiNjM61bb5JBXuKanlj2BHWq1eHjHh/rHYrViIt7/8IC\nLlupUqUc+3cvYzQa2bt3LytXrmTlypUkJSXRs2dPevTowb333ov/TVYNNJqMtJ/bnlc7vsrgFoPV\nN3/9VdXkj4gAZ2cLnIW4XEnivTzpRkZGkpCQQEBAwBVJNzg4mMaNG5s18V6LJORyoAZ5PYyz820E\nBs7UOxxhpVJyU2j5dUvWPrGWkNoheoejuzNnpnP27AzatNmBs7Of3uFcFBcXx7p169i4cSObN2/G\nz8+PHj160KNHDzp37ky1atevQz0vfB7f7v+WncN3XhqYpmnw0EPQrh288045nEXlkJeXR1RU1L/u\neBMSEmjSpMkVSbfkjvfCwCpdSEIuJwZDFuHhd1CnzkTq1BmjdzjCSn0X8R1f7f2Kv0f+jaOZBi7Z\noqSkHzh58m1CQnbg4lJf73CuyWg0Eh4ezsaNG9mwYQN79+6lRYsWdOzYkU6dOtGxY0dq1bo0ej6r\nMIumXzbl98G/077OP8aVnD6tlpH9809oKsVibkZWVhZRUVFER0cTFRV18Y43MTHxYuL95x2vnon3\nWiQhl6O8vBgiIjoRFPQj3t499A5HWCFN0+g+vzt9AvvwQocX9A5HF6mpv3H8+Dhat96Cu3szvcO5\nKXl5eezZs4c///yTnTt3smvXLnx9fS8m552GnRi8DcwfOP/qT/DFF2oFuy1bQIrFXEHTNBITE69I\nvCVfZ2Rk0LRpU4KCgggKCrqYfK018V6LJORylpGxg8jIAbRpsxV39+Z6hyOs0PG043SY14F9o/fR\noHoDvcMpV+fOreLo0adp1Wot1arZfrO90WgkMjKSnTt3sm7LOlZtW4VzrjMtglsQGhpK27Ztadu2\nLS1atMDZ2RmMRlXBa+xYGDFC7/DLnaZppKWlERsbS0xMzMXHo0ePEh0djZOT08Wk26xZs4tf161b\nF3t7fVYFNidJyDpISppPXNxk2rb9GycnK12VRujqwx0fsiVuC+uGrKs0ZTXT0lYTHT2Cli1XVchp\nggMWD6CtX1smtp3IgQMHCA8PJywsjPDwcI4dO0a9evVo1qwZ3b29Gf3bbxz+6SeadOxI9erV9Q7d\nrLKysjh9+vTFLS4u7orkCxAQEEDjxo0vPgYGBtKsWTOLzw3XmyRknZw8+Tbp6Zto3XqzxeZVCttl\nMBm485s7eSb0GUaFjtI7HItLS1tDdPQwWrZciYfHHXqHY3YbYjcwetVojow7ctUlN4uKioiJiSE6\nOpro6GhaL1iAQ3IyjxQV4ezsTL169ahfv/6/Hn19falVqxaurvov45mbm0tKSsoVW2Ji4sXEe+rU\nKU6fPo3RaKRu3boXt/r161+RgL29vSvNh9B/koSsE00zceTIY9jZ2RMUtBA7O9tvbhHmdTjlMPf8\ncA9ho8Oo51lxFyo5f34dUVFP0qLF73h63ql3OGZXaCik1axWfNLjE/o07VO6X8rNhRYt0L7+mtS2\nbYmPj+fUqVPEx8df/PrUqVMkJyeTmppKlSpVqFmzJrVq1aJWrVrUqFGDqlWr4u7u/q/N1dUVe3v7\nq24Gg4HCwsKLW1FR0cWvs7KyyMzMvPhYsmVkZJCamoqmaRc/IPj4+ODj44Ofn98VybdevXpUr169\n0ibcG5GErCOjMZ+DB++jWrXbCQj4VO9whBWaumMq2+K3sfaJtRXyTSwtbS3R0UNp0WIFnp4Vc+nB\nj3Z+xM5TO1n1+Kqb+8W1a2HcODh8+LprwWuaRk5ODqmpqZw7d47U1FTS0tLIyckhNzf3ii0nJ4eC\nggI0TcNkMl2xGY1GHB0dcXZ2vrg5OTld/NrDwwMPDw88PT2v2KpXr46Pj0/JSkWiDCQh66y4OJ2I\niLvx83uKevVe1jscYWVKmq7HtBvDyLYj9Q7HrFJTl3Ps2DO0aLG8wibj05mnCZkdwu6Ru2ns3fjm\nn+Cxx6BuXfhYisVUBpKQrUBBwWkiIjrRsOEU/PyG6B2OsDKHkg/RbX63CtV0nZz8MzExL9Cq1R9U\nq9ZW73As5pEljxBcK5jJXSff2hOkpEDLlrB6tSoaIiq0W03I0uFpRi4udWnVag2xsS9x/rwswyau\n1NK3JRPvmMjolaOpCB9SExO/JTb2ZVq33lihk/H62PWEJYTxn47/ufUn8fGBTz6Bp5+G4mLzBScq\nFEnIZubu3pwWLZYRFfUkWVl79A5HWJn/dPwPqXmpfBvxrd6hlMmZM18SFzeZNm22ULVqC73DsZhC\nQyHj14xn+gPTrzqq+qYMGQL+/vC//5knOFHhSJO1hZTMxWzVah3VqrXROxxhRQ4mH6T7/O6Ejw6n\nrmddvcO5KZqmERc3meTkhbRuvQFXV/MvZ2hNpu6Yyq4zu1j52ErzPGF8PISGws6d0My2qpeJ0pM+\nZCuUkrKUmJjxtG69Sap5iSu8v+19/jrzF388/ofNjLrWNCPHjj1LdvYeWrVaU+GXIT2Wdoy75t1F\n2Ogw6lc3Yx3uL7+ERYtg+3aoAFWpxL9JH7IV8vEZSKNGH3PgwH3k5cXoHY6wIq91eo2U3BTmhNnG\nYvZGYwGRkYPIz4+hTZutFT4Za5rGM6ue4a3Ob5k3GYOaAqVp8PXX5n1eYfMkIVuYn9+TNGjwDgcO\n3EtBQbze4QgrUcWhCgv7L+StLW9x9NxRvcO5LoMhk4MH78fOzpFWrVbj6Oihd0gW923Et+QW5TL+\n9vHmf3J7e/jmG5g0CU6dMv/zC5slCbkc+PuPpm7dF9i/v5skZXFRs5rNmNxlMkN+G0Kx0TpH3ubn\nnyQ8/C6qVm1F8+Y/Y2/vrHdIFpeck8zrm15nbp+5ONg7WOYgQUHwwgswZoy6WxYCScjl5rbbJnLb\nbROIiOhCfn6s3uEIKzGu/ThqutXkvW3v6R3Kv2Rl7SYioiP+/mNo0mR6pSkLO3HtREaEjKC1X2vL\nHujVV+HsWVi40LLHETZDBnWVs7NnZ3Hq1BRat96Im5ssXi4gKSeJNrPa8OugX+lYr6Pe4QCQkrKE\n48efpVmz76hRo5fe4ZSb1cdWM3HtRA6NPVT2aU6lsW8f9OoFhw6pucqiQpBBXTaiTp0xNGjwHvv3\ndyM3N1LvcIQV8Kvqx6zes3jytyfJKszSNRZN04iPn0ps7Eu0arW+UiXjzIJMxv0xjtm9Z5dPMgZV\ntWvoUJg4sXyOJ6ya3CHrJDl5IbGxL9Oy5eoKXeVIlN6o30dRaCxkfr/5uhzfYMjh6NERFBTE0aLF\nbzg719ElDr2MWDECJwcnZvWeVb4HzsuDVq3g88+hTylXkRJWTe6QbYyv7xM0afIVBw/ez/nzG/UO\nR1iBafdPY1/CPn7Y/0O5Hzs/P5aIiLtwcKhKmzbbK10yXnl0Jdvit/HJfZ+U/8Hd3GDuXDUdKjOz\n/I8vrIbcIessI2MbkZGPEBAwHV/fwXqHI3RWsnby9qe2E1QrqFyOqdYxHkqDBpPw9x9rM4VKzOVc\n3jlaz2rNogGLuLv+3foFMnq0epxjG3PTxbVJpS4blpNziEOHHuS2216ibt3n9Q5H6Oyb8G/4YvcX\n7B65G7cq114/t6w0zUh8/FQSEr6mefNfqF5dx2Sko0eXPkpdj7r63B1fLitLrQg1dy7cd5++sYgy\nkYRs4woK4jl48H68vXvRuPF/sbOz0PxHYfU0TWPIb0Nwr+LOnD6WuVsqLEwiKmoImmagefOfcHb2\nt8hxrN2iw4t4b9t7hD8Tjouji97hwLp16k750CHwqPgFWCoq6UO2cS4u9QkJ2Ul29j4OH+6HwZCt\nd0hCJ3Z2dszqNYutcVv5+dDPZn/+9PRNhIW1xdPzLlq33lhpk3FidiIT105kfr/51pGMAXr2VHfH\nL7+sdyRCB3KHbGVMpiKOH3+OrKxdtGixElfXBnqHJHQSkRjBfQvuY8fwHTSrWfaVgUymYuLj3yMx\ncR7Nms3H2/teM0Rpm4wmIz0X9KRTvU5M7jpZ73CuJE3XNk/ukCsIe3snAgNnU7v2KCIiOpCRsVPv\nkIROQmqH8FH3j3h40cNlnp+cmxtFeHgHsrPDCA0Nr9TJGOCjnR9RbCrmrc5v6R3Kv3l4qGQ8apSM\nuq5k5A7Zip0/v56oKLU4hb//uEo3+lUo41aPIyE7gWWPLsP+JstXapqJs2dnEBf3Pg0bfoC//zOV\n/nW0I34Hjyx5hLDRYdTxsOLpXaNHqzrXc+fqHYm4STKoq4LKy4shMnIg7u5BBAbOwdGxmt4hiXJW\nZCzinh/u4f7G9/N2l7dL/XsFBfFERz+NyZRLs2bzcXNrYsEobUNaXhohs0OY1XsWDzZ5UO9wrq+k\n6XrOHNW3LGyGNFlXUG5uAbRtuwsHh2qEhbUjJ+eQ3iGJcubk4MTSR5YyO2w2q46tuuH+mmbk9Olp\n7NsXipdXd9q02SHJGDV6/akVTzEoeJD1J2NQTdfffCNN15WI3CHbkKSkH4mNfZFGjT7Cz29EpW96\nrGx2nd7FQ4seYueInQTWCLzqPjk5Bzh6dBT29m40bToHN7er71cZfb7rcxZFLmLH8B04OTjpHU7p\nSdO1zZEm60oiNzeSI0cew8WlEU2bzsHJSVaIqUzmhs3lk12fsOvpXXi7el/8vsGQQ3z8ByQlfUvD\nhlOpXXtEpVkusTS2x29n4OKB7B65m4ZeDfUO5+ZkZala119/DQ88oHc0ohSkybqScHcPJjR0L25u\nzdi3rzXnzv2ud0iiHI0KHUXfwL48vOhhCg2FaJpGUtIC9uxpRlHRWdq1O4C//0hJxpeJz4jn0aWP\nsqD/AttLxqCarr/7DkaOhLQ0vaMRFiR3yDYsI2Mn0dHDqF69KwEBn+Ho6Kl3SKIcmDQTg5YMoo5z\nLsPqZmEyFdKkyXQ8Pe/SOzSrk1uUS8dvOzK09VBe7PCi3uGUzYsvwunTsHgxSHeVVZM75EqoevVO\ntGu3Hzu7KuzZ05yUlMXIh5+Kr7DgFJODnbnXfRO7M7wIDd0tyfgqNE1j+IrhtPZrzQt3vqB3OGU3\ndSocOQILF+odibAQScg2ztGxGk2bziI4eDFxce9x6FAv8vNP6h2WsICiolSOH59IWFgo7m4BtL89\nmk8OR/GdDss12oIpO6ZwKvMUs3vPrhgDIF1cYMGCS3fKosKRhFxBeHp2pF27cDw9OxMW1p74+KkY\njfl6hyXMoLj4PCdPTmLPniBA4/bbo2jY8F38PBrxx+N/8MamN1h5dKXeYVqVZVHLmLVvFsseXWY9\ndarNISQEnn8ennoKTCa9oxFmJn3IFVB+/gliY18mOzuMRo0+xMdnsAzysUFFRSmcPv0ZiYlzqVmz\nH/Xrv4Gra6N/7bf37F56/dSLnwb8xL2NKndJTICtcVsZtGQQa55YQ6h/qN7hmJ/BAJ07w6BBKjkL\nqyPTnsS/ZGRsJzb2JcCOxo0/rbTr3dqa/Pw4zpyZRnLyfHx8HqdevVdwcal/3d/ZEb+DAYsHsOzR\nZXSq16mcIrU+EYkR9FzQk0UDF9GtYTe9w7GcmBi4807Yvh2aN9c7GvEPeiTk/wG9gXxgO/D6ha//\nSRKyjjTNRErKz5w48QZubkE0aDAJT88Oeocl/kHTNDIz/+TMmWlkZGzBz284deu+eFNLI26I3cAT\ny55g9eOraV+nvQWjtU7H047T5fsuzHhgBgOaD9A7HMubMwdmz4Zdu8DJhgqdVAJ6JOQewKYLX88G\n/gbmXWU/SchWwGQqJCnpe+LjP8TNLfBCYu6od1iVntGYR2rqEs6cmYHRmEmdOhPx8xt2yzXLVx5d\nyciVI1k/ZD2t/VqbOVrrlZCdQKdvO/Fap9cYHTpa73DKh6ZBnz7Qpg188IHe0YjL6N1kPRDoCwy9\nys8kIVsRk6mIpKT5nDo1BWfn+tSt+wI1avTGzs5B79AqlezsCBIT55KSsggPjw74+4+hRo1eZunr\nXxK5hOfWPMfyR5fToW7Fbw1JzU2l2/xuDA4ezJud39Q7nPKVlKQGei1eDHdLl5S10DshrwO+AZZc\n5WeSkK2QyVRMaupSzpyZRnHxOerUeY7atUdIcRELKixMJCXlF5KTf6S4+By1az+Nn99wXFzqmv1Y\nfxz/g2HLh7Gw/0Lua1xxF7lPyU2h+/zu9A3sywfdPqgY05tu1h9/wNixEBEB3t433l9YnKUS8gbA\n7yrffwMomWfxDtAKdZd8NdqkSZMu/qNr16507dr15qIUFpWZ+Tdnz37B+fPrqFmzP7VrD8fD467K\n+eZmZsXF50lNXUZKys/k5IRTo8ZD+Po+jpdXd4u3Suw8tZMBiwfw5QNf8kjwIxY9lh4SshPo8WMP\nBgYNZHLXyZX79frCCxAfD7/+KlW8dLB161a2bt168d/vvvsu6HCH/BQwCugOFFxjH7lDthGFhYkk\nJ/9IUtJ3aJoRP7+n8PV90iJ3cBVZfn4caWkrOHduBdnZ+/Dy6oGv7+N4ez+Ig4NrucZyIOkAD/70\nIJO6TKpQfavH047Tc0FPRrUdxet3v653OPorLFSjrp95BsaM0TuaSk+PJuv7gU+BzsD1Kp5LQrYx\nmqaRlbWbpKTvSE39FVfXxtSqNYBatQbg6tpY7/CsjtFYQGbmTtLTN3D+/DqKihKoUaM3NWs+hJdX\nDxwc3HSNL+Z8DPcvuJ+BzQcypdsUHOxte7zAvoR99P25L+/d8x4j247UOxzrcfQodOoEW7ZAixZ6\nR1Op6ZGQjwNOwPkL/94FjLvKfpKQbZjJVExGxlZSU3/l3LnfcHLyo0aNB/Hy6oGnZ0fs7Z31DrHc\nmUyFZGfvu5CEN5OV9Rfu7i3x8upx4f+lg9UNkjuXd46Biwfi4ezBgv4L8HD20DukW7L0yFLGrh7L\n3D5zebjZw3qHY32++w4+/RT27gXX8m2NEZfoPajreiQhVxCaZiQzcxfp6es4f34DeXlH8PTsRPXq\n3fD0vIuqVdvi4FCByhSiWgsKC0+RnR1GdvZeMjN3kp0dgZtbswvn3gUvr242MRiuyFjExDUT2Ry3\nmaWPLKWlb0u9Qyo1k2bi/W3vMy9iHisGryCkdojeIVknTYMnnoDq1WHmTL2jqbQkIYtyV1ycTnr6\nJjIzt5GZuYu8vCjc3Vvi6dmBqlVDcHdvhbt7kM3cRRcXZ5CXF0VeXjR5eVHk5BwgOzsMe3snqlUL\npWrVUDw9O+HhccctzxO2Bj8e+JEX17/IR90/YkTICKsfDJWWl8aQ34aQU5TDLwN/wb9a6YulVEqZ\nmWoq1KefQr9+ekdTKUlCFrozGnPJzt5HVtbf5OQcICfnAAUFJ3BxaYy7e3NcXRvj6hqAi0tjXF0b\n4eRUG3v7KuUWn8lUSGFhAoWFZy5spykoiCMvL4rc3ChMplzc3Jrh5haEm1sz3N1bUq1a6E1Vy7IV\nkSmRPL7scRp5NWJO7znUcq+ld0hXtenEJoavGM7gFoOZ0m0KVRzK7/Vi03bvhr59Yd8+qCuDMsub\nJGRhlYzGAvLyjpCXF01+fuyFLYaCghMUF6fi6OiNk1NtnJ1rU6WKD46Onjg6VsfRsToODh7Y27tg\nb+98cQN7NM1w1c1ozMZgyMBgSL/wqLbi4jQKC89iMGRcONZtODvfhotLXZyd611MwM7Odaz+btGc\nCg2FvL3lbeYfmM8n933CEy2fsJrzzynK4c1Nb/Jr1K/M6zuPngE99Q7J9nz0EaxapQZ5VZEPMuVJ\nErKwOSaTgeLiVIqKEi9sqRiNmZcl00xMpkJMpkI0rRCTqQhNM2JvXwU7O8d/bQ4O1S4kc6+LSb3k\n387OdXBy8rG6wVbWYM/ZPTyz6hlqutVkWs9pBPsE6xaLpmksj17O8+uep0v9Lky7fxrerlLs4paY\nTNC7NwQHw//+p3c0lYokZCHELTOYDMzcO5MpO6bwcNOHebvL29zmcVu5xrAvYR+vbXyNhOwEZvaa\nSdcGXcv1+BVSWhqEhsK0afCwjEovL7eakGWRXCEEjvaOTLhjAtHPRuPp4kmrr1vxzMpnOJ523OLH\n/uv0X/T7pR8PL3qYQcGDODDmgCRjc6lRA375BUaPhthYvaMRNyB3yEKIfzmXd44v/v6C2WGzaePX\nhtGho3mwyYO4VTFPkZPMgkwWRy5mXsQ8UvNSefHOFxkeMtxszy/+YcYMNUf5r7/ApWJNTbRG0mQt\nhDC7AkMBvx75le/2f8e+hH30DOhJj0Y9uKfBPTTyalTqQWAmzcSxtGNsjdvKqmOr2HFqB/c2upen\nWj/Fg00etPnqYVZP0+DRR8HLS62hLCxKErIQwqJSc1NZeWwlm09uZkvcFgoMBbTybUUT7ybUrlqb\nmm41cXZ0xsHOgZyiHDIKMojPjCc2PZaDyQfxcvGiU71O9GrSi/sa34eXq5fep1S5ZGVB+/bw2msw\nfLje0VRokpCFEOUqOSeZA8kHOJl+koTsBM7lnaPIWIRBM1DNqRqezp7U86xHY+/GtPBpgY+7j94h\niyNHoEsXWL0abr9d72gqLEnIQgghbmz5chg/XtW79rva6rqirCQhCyGEKJ133lEFQzZtAicnvaOp\ncCQhCyGEKB2TCR56COrXhy+/1DuaCkfmIQshhCgde3tYsAA2bIBvv9U7GnGB3CELIURlFR0NnTvD\n0qXqUZiF3CELIYS4Oc2awcKFMGgQxMToHU2lJwlZCCEqsx49YPJktRBFWo0OZQAACPVJREFUerre\n0VRq0mQthBACnn8eIiPhjz9kucYyklHWQgghbp3RCH37Qr16MHMmWMna2LZI+pCFEELcOgcH+Pln\n+PNPWT9ZJ456ByCEEMJKeHjAmjVw111QuzY8+aTeEVUqkpCFEEJcUqeOSsr33AO+vnDffXpHVGlI\nk7UQQogrNW8Ov/4KQ4ZAWJje0VQakpCFEEL8W6dOau3kPn0gNlbvaCoFabIWQghxdf36QXKyarbe\nvl01ZwuLkYQshBDi2saMgexs6N4dtm1T/crCIiQhCyGEuL5XXoHcXFXVa+tW8PbWO6IKSQqDCCGE\nuDFNg//8R62jvHEjeHrqHZHVkkpdQgghLEvTYPx42L9fTY2qVk3viKySVOoSQghhWXZ2MH06BAdD\nz56Qmal3RBWKJGQhhBClZ28Ps2ZB+/ZqoFdamt4RVRiSkIUQQtwcOzuYNg3uvVdV9EpO1juiCkFG\nWQshhLh5dnbw4Yfg6gpdu6qBXjJPuUwkIQshhLg1dnYwaZJKyh07qoFeQUF6R2WzJCELIYQom1df\nVQVDunaFpUvh7rv1jsgmSR+yEEKIshs2DBYsgAEDYMkSvaOxSTIPWQghhPns3w+9e8NLL8Hzz6tm\n7UpGCoMIIYSwDqdOwYMPwp13wpdfgouL3hGVKykMIoQQwjrUqwe7dkFGBnTpAmfP6h2RTZCELIQQ\nwvyqVVN9yQ8/rIqI7Nihd0RWT5qshRBCWNbatWrQ1xtvwIQJFb5fWfqQhRBCWK/YWHj8cbV043ff\ngZ+f3hFZjPQhCyGEsF6NG8POnRAaCiEhsGqV3hFZHblDFkIIUb62b4ehQ9VI7I8/hqpV9Y7IrOQO\nWQghhG3o3FnNV87Lg+bNYcUKvSOyCnKHLIQQQj9btsCYMaoG9owZULeu3hGVmdwhCyGEsD333AMH\nD6p+5ZAQ+O9/1Z1zJSQJWQghhL6cndWqUbt2wd69EBgIc+aAwaB3ZOVKmqyFEEJYlz174PXX4cwZ\neP99tWCFg4PeUZWazEMWQghRsWzcCG+/DSkpMHEiDB+uKoBZOelDFkIIUbHce69qxl6wQM1hbtBA\nrSIVE6N3ZNdWhrrdkpCFEEJYtw4dYPFiCA9XZTc7doTbb4dp0yAxUe/oICEBpk+Hu++Gli1v+Wmk\nyVoIIYRtMRhg82b4+WdYvhzatIGePaFbN2jbFhwdLXv8/Hz46y8Vw6ZNcOwY9OkDgwbBvfdip5ab\nlD5kIYQQlUhBAWzYoBLj5s1qLebOndVazMHBamvY8NYHheXlwZEjcOiQ2sLC1Na6tfoAcM896o7d\n2fnir8igLiGEECIlRRUbCQuDyEi1paZCQAD4+kLNmpc2FxcwmS5tRUXq95OS1JaYqP4dGAitWqnm\n6Nat4a67rju4TBKyEEIIcTXZ2XD8uErM586pLTVVJWB7+0ubo6NK2n5+avP1VZXDqlS5qcNJQhZC\nCCGsgEx7EkIIIWyYJGQhhBDCCkhCFkIIIayAJGQhhBDCCkhCFkIIIayAJGQhhBDCCkhCFkIIIayA\nJGQhhBDCCkhCFkIIIaxAWRLy+8ABYD/wI1DDLBHZmK1bt+odgkVV5POryOcGcn62Ts6v8ilLQv4Y\naA20AY4DE80SkY2p6C+qinx+FfncQM7P1sn5VT5lScjZFx4dAXegoOzhCCGEEJVTWfuQpwBJQCfg\nk7KHI4QQQlRON1qNYgPgd5XvvwGsvPC1GyoxA7xwlX1jgMa3FJ0QQghhe2KBAL0O3hL4W6+DCyGE\nELauLE3WTS48OgKPAcvKHo4QQgghbtZS4BCwBzXi2kvfcIQQQgghhBBCCCvzPyAKCAemAa7X2K/z\nhf2OA+PLJzSzeASIBIxA2+vsFwccBCJQrQi2oLTnZqvXrhqwAjgFLAeqXmO/OGzr2pXmenwInADC\ngGblFJe53Oj8ugKZqOsVAbxVbpGV3bdAMqq18Vps+drd6Py6YrvXri6wBfWeuRV4/Br76Xr9eqD6\npu2BucDT19gvAvWHVh+IBmqWS3Rl1wwIRF2I6yWtk4B3uURkPqU9N1u9dq8CMwBn4Evg5WvsZ2vX\n7kbX43ZgJ+qcHgNWlWt0ZXej8+sK/F7OMZnL3UAI105Ytn7tbnR+XbHda+eHKowF6jV5AvWh/3I3\ndf0sUct6A2C6sK0DulxlH88Lj9uBeGA9cIcFYrGEaOBYKfe90bQya1Oac7Pla3c7MA8oRH1yv17c\ntnLtSnM97kCN+TgP/AwElVt0ZVfa15utXK9/2gGkX+fntnzt4MbnB7Z77ZJQpaMBzqHulNv9Y5+b\nun6WXlxiFJfmK1+uPerNv8QR4E4Lx1LeNGAzqmm0r86xmJMtX7vLY49GJeirsaVrV5rrcfuF75dI\nxXZqA5Tm/DTgLtSb42fYzrmVhi1fu9KoKNcuAAjm311cN3X9HG/x4KUpGPIOqrzmkls8hp5Kc343\n0hFIRH0iWom6UElmia5szHFu1uxa5/cmpf8kbq3X7lbZ8e9z1/QIxELCUf15xcAw4Augt64RmY9c\nO+tXDfgFVRgr9x8/s4rr9xTwJ+ByjZ97ovqFSswAelk4JnO7UT/r5T5DtRbYiuudmy1fu19R/VkA\noaimpBux9mtXmusxniur6MVaOigzutnXmx1qEJGzJYMyswZcu4/Vlq9diQZcf9BaCVu8dlVQ3SjP\nX+PnN3X9LNFkfT/wCqqp71oLTmReeOyMulg9gN0WiMXSrnXH5calzv1aQE9gbblEZD7XOjdbvna7\ngRGokf8juHp1OVu7dqW5HruBAaglUh9HjVi2FaU5P18uvV77oEbIF5ZHcOXAlq9dadjytbNDjUk5\njJpRdDW6X7/jqMEXJcPYZ174vj+w+rL9uqCCiwEmlGeAZdQPOA3ko5ox11z4/uXn1wjVJ7If2IR6\n87cFpTk3sN1rd61pT7Z+7a52PZ65sJX4CDV6PAzbGxh0o/N7FvWmuB+YD7Qq7wDL4GcgAShC/e2N\noGJduxudny1fu06owcv7uZTvHqBiXT8hhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBC\nCCGEzv4PgCqirQ+kF6YAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 76 }, { "cell_type": "code", "collapsed": false, "input": [ "k = GPy.kern.Poly(input_dim=1, order=6)\n", "X = np.linspace(-.8, .8, 500)[:, None]\n", "sample_covariance(k, X)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "

Samples from a Gaussian Process with poly Covariance

" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "
poly.ValueConstraintPriorTied to
variance 1.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 82 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Combining Covariance Functions\n", "\n", "Covariance functions can be combined in various ways to make new covariance functions. \n", "\n", "### Adding Covariance Functions\n", "\n", "Perhaps simplest thing you can do to combine covariance functions is to add them. The sum of two Gaussian random variables is also Gaussian distributed, with a covariance equal to the sum of the covariances of the original variables (similarly for the mean). This implies that if we add two functions drawn from Gaussian processes together, then the result is another function drawn from a Gaussian process, and the covariance function is the sum of the two covariance functions of the original process.\n", "$$\n", "k(\\mathbf{x}, \\mathbf{z}) = k_1(\\mathbf{x}, \\mathbf{z}) + k_2(\\mathbf{x}, \\mathbf{z}).\n", "$$\n", "Here the domains of the two processes don't even need to be the same, so one of the covariance functions could perhaps depend on time and the other on space,\n", "$$\n", "k\\left(\\left[\\mathbf{x}\\quad t\\right], \\left[\\mathbf{z}\\quad t^\\prime\\right]\\right) = k_1(\\mathbf{x}, \\mathbf{z}) + k_2(t, t^\\prime).\n", "$$\n", "\n", "In `GPy` the addition operator is overloaded so that it is easy to construct new covariance functions by adding other covariance functions together." ] }, { "cell_type": "code", "collapsed": false, "input": [ "k1 = GPy.kern.RBF(1, variance=4.0, lengthscale=10., name='long term trend')\n", "k2 = GPy.kern.RBF(1, variance=1.0, lengthscale=2., name='short term trend')\n", "k = k1 + k2\n", "k.name = 'signal'\n", "k.long_term_trend.lengthscale.name = 'timescale'\n", "k.short_term_trend.lengthscale.name = 'timescale'\n", "display(k)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
signal.ValueConstraintPriorTied to
long term trend.variance 4.0 +ve
long term trend.timescale 10.0 +ve
short term trend.variance 1.0 +ve
short term trend.timescale 2.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 63 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Multiplying Covariance Functions\n", "\n", "An alternative is to multiply covariance functions together. This also leads to a valid covariance function (i.e. the kernel is within the space of Mercer kernels), although the interpretation isn't as straightforward as the additive covariance. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "k1 = GPy.kern.Linear(1)\n", "k2 = GPy.kern.RBF(1)\n", "k = k1*k2\n", "display(k)\n", "visualize_olympics(k.K(X))" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "
mul.ValueConstraintPriorTied to
linear.variances 1.0 +ve
rbf.variance 1.0 +ve
rbf.lengthscale 1.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRvx/3uEqQyxLFYMAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 62 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our choice of `X` means that the points are close enough together to look like functions. We can see the structure of the covariance matrix we are plotting from if we visualize C." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.matshow(C)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 253, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 253 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now try a range of different covariance functions and values and plot the corresponding sample paths for each using the same approach given above." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Try plotting sample paths here" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 254 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 3\n", "\n", "Can you tell the covariance structures that have been used for generating the\n", "sample paths shown in the figure below?\n", "
\n", "
\n", "\"Figure \n", "\"Figure\n", "\"Figure \n", "\"Figure\n", "\"Figure \n", "\"Figure\n", "
\n" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 3 answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A Gaussian Process Regression Model\n", "\n", "We will now combine the Gaussian process prior with some data to form a GP regression model with GPy. We will generate data from the function $f ( x ) = \u2212 \\cos(\\pi x ) + \\sin(4\\pi x )$ over $[0, 1]$, adding some noise to give $y(x) = f(x) + \\epsilon$, with the noise being Gaussian distributed, $\\epsilon \\sim \\mathcal{N}(0, 0.01)$. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.normal?" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 255 }, { "cell_type": "code", "collapsed": false, "input": [ "X = np.linspace(0.05,0.95,10)[:,None]\n", "Y = -np.cos(np.pi*X) + np.sin(4*np.pi*X) + np.random.normal(loc=0.0, scale=0.1, size=(10,1)) \n", "pb.figure()\n", "pb.plot(X,Y,'kx',mew=1.5)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 256, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nI488Mmeb+eZm1oL/xo0bZvXq1ebcuXPm+vXrpra21pw5c2ZGm7feesuEw2FjjDGDg4Omvr4+W+Vl\nVTJ9cfz4cXPlyhVjzM3/ADb3xXS7zZs3m6amJnP48OEcVJp5yfTF5cuXzZo1a0w8HjfG3Ay/QpRM\nXzz//PPmJz/5iTHmZj+sWLHCTExM5KLcjPrb3/5mTp48OWfwp5KbWduyIRaLqaKiQuXl5SopKVFL\nS4uOHj06o01vb69aW1slSfX19bpy5YrGxsayVWLWJNMXjz76qJYuXSrpZl8MDw/notSMS6YvJOml\nl17S97//fa1cuTIHVWZHMn3xhz/8Qd/73vdUVlYmSXrwwQdzUWrGJdMXq1at0meffSZJ+uyzz/Sl\nL31JxcWFt/1YQ0ODli9fPuf7qeRm1oJ/ZGREfr8/cVxWVqaRkZH7tinEwEumL27329/+Vlu2bMlG\naVmX7PfF0aNHtXPnTkmF+3cfyfTF0NCQxsfHtXnzZtXV1el3v/tdtsvMimT6oq2tTR988IG+8pWv\nqLa2dsausDZJJTez9uMx2f+s5o4VQoX4n3w+/6Z33nlHr7zyit57770MVpQ7yfTFc889p71798px\nnMQ+/4Uomb6YmJjQyZMn9de//lXXrl3To48+qm9+85uqrKzMQoXZk0xf7NmzR+vXr1c0GtU///lP\nNTY26vTp01qyZEkWKswv883NrAW/z+dTPB5PHMfj8cSvq3O1GR4els/ny1aJWZNMX0jSP/7xD7W1\ntcl13Xv+qreQJdMXf//739XS0iJJunTpkvr7+1VSUqLm5uas1pppyfSF3+/Xgw8+qAceeEAPPPCA\nHn/8cZ0+fbrggj+Zvjh+/Lh+/vOfS5JWr16tr371q/rwww9VV1eX1VpzLaXcTNsdiPuYmJgwDz/8\nsDl37pz573//e9+bu++//37B3tBMpi8++eQTs3r1avP+++/nqMrsSKYvbvfjH/+4YFf1JNMXZ8+e\nNU888YS5ceOGuXr1qnnkkUfMBx98kKOKMyeZvujo6DCdnZ3GGGNGR0eNz+cz//nPf3JRbsadO3cu\nqZu7yeZm1kb8xcXF2r9/v4LBoCYnJ7Vjxw5VV1frwIEDkqT29nZt2bJFfX19qqio0OLFi3Xw4MFs\nlZdVyfTFL37xC12+fDkxr11SUqJYLJbLsjMimb6wRTJ9UVVVpVAopHXr1ukLX/iC2tratGbNmhxX\nnn7J9MXPfvYzbd++XbW1tZqamtKvfvWrgtwFeNu2bXr33Xd16dIl+f1+dXV1aWJiQlLquel5kzYA\nwMLCE7gAwDIEPwBYhuAHAMsQ/ABgGYIfACxD8AOAZf4HDtHyBwUsrUAAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 256 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A GP regression model based on an exponentiated quadratic covariance function can be defined by first defining a covariance function, " ] }, { "cell_type": "code", "collapsed": false, "input": [ "k = GPy.kern.RBF(input_dim=1, variance=1., lengthscale=0.2)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 265 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And then combining it with the data to form a Gaussian process model," ] }, { "cell_type": "code", "collapsed": false, "input": [ "m = GPy.models.GPRegression(X,Y,k)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 266 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just as for the covariance function object, we can find out about the model using the command `print m`. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "display(m)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "

\n", "Model: GP regression
\n", "Log-likelihood: -413.019393422
\n", "Number of Parameters: 5
\n", "

\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
GP_regression.ValueConstraintPriorTied to
add.rbf.variance 243.874122742 +ve
add.rbf.lengthscale (2,) +ve
add.bias.variance 94.4144417427 +ve
Gaussian_noise.variance 1e-05 fixed
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that by default the model includes some observation noise\n", "with variance 1. We can see the posterior mean prediction and visualize the marginal posterior variances using `m.plot()`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "m.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 268, "text": [ "{'dataplot': [],\n", " 'gpplot': [[],\n", " [],\n", " [],\n", " []]}" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\np66urmSUmrBEzgngO9/5Dvfffz+FhYVJqPLaJHJOP/3pT/n4xz9ORUUFAAUFBckoNWGJnFNpaSlj\nY2MAjI2NkZ+fj8Uyr4PSZu3mm28mLy/vAx9P9YzIqNDu7u6msrJy6uuKigq6u7uv+pxUDrlEzum9\n/u3f/o277757IUqbsUT/n1588UUee+wxIPXH/CdyTmfPnmVoaIjbbruNtWvX8uMf/3ihy7wmiZzT\no48+yvHjxykrK6O5uZlvf/vbC13mnEv1jEjtS+I1SvQPW71v/HgqB8K11Pb73/+eZ555ht27d89j\nRbOXyDl96Utf4sknn5zadun9/2epJpFzikajHDx4kNdee43JyUk2btzIjTfeSH19/QJUeO0SOacn\nnniCNWvWsHPnTlpaWti2bRuHDx/G4/EsQIXzJ5UzIqNCu7y8nM7OzqmvOzs7p96KftBzurq6KC8v\nX7Aar1Ui5wRw5MgRHn30UbZv337Ft36pIJFzOnDgAA888AAQv9n129/+FqvVyh/90R8taK2JSuSc\nKisrKSgowOl04nQ6ueWWWzh8+HDKhnYi5/Tmm2/yta99DYDa2lqWLFnC6dOnWbt27YLWOpdSPiOS\n26U+t6LRqFq6dKlqbW1V4XD4qjci33rrrZS7yfB+iZxTe3u7qq2tVW+99VaSqrw2iZzTe/35n/+5\n+tWvfrWAFV67RM7p5MmTauvWrSoWi6mJiQm1cuVKdfz48SRVfHWJnNNf/uVfqscff1wppZTP51Pl\n5eXK7/cno9xr0tramtCNyFTMiIxqaVssFp5++mnuuOMOdF3ns5/9LI2NjfzgBz8A4POf/zx33303\nr7zyCnV1dbjdbp599tkkV31liZzT3/7t3zI8PDzV/2u1Wtm3b18yy76iRM4p3SRyTg0NDdx5552s\nXr0ak8nEo48+SlNTU5Ir/2CJnNNXv/pVHn74YZqbmzEMg3/4h3/A6/UmufIre/DBB3n99dcZHByk\nsrKSb37zm0SjUSA9MmJeF4wSQggxtzJq9IgQQmQ6CW0hhEgjEtpCCJFGJLSFECKNSGgLIUQakdAW\nQog08v8DBV1SMlt+OAgAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 268 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The actual predictions of the model for a set of points `Xstar`\n", "(an $m \\times p$ array) can be computed using `Ystar, Vstar, up95, lo95 = m.predict(Xstar)`\n", "\n", "## Exercise 4\n", "\n", "a) What do you think about this first fit? Does the prior given by the GP seem to be\n", "adapted?" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 4 a) answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) The parameters of the models can be modified using a regular expression matching the parameters names (for example `m['noise'] = 0.001` ). Change the values of the parameters to obtain a better fit." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 4 b) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 269 }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) As in Section 2, random sample paths from the conditional GP can be obtained using\n", "`np.random.multivariate_normal(mu[:,0],C)` where the mean vector and covariance\n", "matrix `mu`, `C` are obtained through the predict function `mu, C, up95, lo95 = m.predict(Xp,full_cov=True)`. Obtain 10 samples from the posterior sample and plot them alongside the data below." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 4 c) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 270 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Covariance Function Parameter Estimation\n", "\n", "As we have seen during the lectures, the parameters values can be estimated by maximizing the likelihood of the observations. Since we don\u2019t want one of the variance to become negative during the optimization, we can constrain all parameters to be positive before running the optimisation." ] }, { "cell_type": "code", "collapsed": false, "input": [ "m.constrain_positive('.*') # Constrains all parameters matching .* to be positive, i.e. everything" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[0 1 2]\n", "WARNING: reconstraining parameters ['rbf.variance', 'rbf.lengthscale', 'Gaussian_noise.variance']\n" ] } ], "prompt_number": 271 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The warnings are because the parameters are already constrained by default, the software is warning us that they are being reconstrained.\n", "\n", "Now we can optimize the model using the `m.optimize()` method." ] }, { "cell_type": "code", "collapsed": false, "input": [ "m.optimize()\n", "m.plot()\n", "print m" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " GP_regression. | Value | Constraint | Prior | Tied to\n", " \u001b[1mrbf.variance \u001b[0;0m | 0.675369033494 | +ve | | \n", " \u001b[1mrbf.lengthscale \u001b[0;0m | 0.127867676628 | +ve | | \n", " \u001b[1mGaussian_noise.variance\u001b[0;0m | 0.00698660648594 | +ve | | \n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nL03JqLIAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 272 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parameters obtained after optimisation can be compared with the values selected by hand above. As previously, you can modify the kernel used for building the model to investigate its influence on the model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Running Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we'll consider a small example with real world data, data giving the pace of all marathons run at the olympics. To load the data use" ] }, { "cell_type": "code", "collapsed": false, "input": [ "data = pods.datasets.olympic_marathon_men()\n", "print data['details']" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Olympic mens' marathon gold medal winning times from 1896 to 2012. Time given in pace (minutes per kilometer). Data is originally downloaded and collated from Wikipedia, we are not responsible for errors in the data\n" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "X = data['X']\n", "Y = data['Y']\n", "plt.plot(X, Y, 'bx')\n", "plt.xlabel('year')\n", "plt.ylabel('marathon pace min/km')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 5\n", "\n", "a) Build a Gaussian process model for the olympic data set using a combination of an exponentiated quadratic and a bias covariance function. Fit the covariance function parameters and the noise to the data. Plot the fit and error bars from 1870 to 2030. Do you think the predictions are reasonable? If not why not?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 a) answer \n", "kern = GPy.kern.RBF(1, lengthscale=80) + GPy.kern.Matern52(1, lengthscale=10) + GPy.kern.Bias(1)\n", "model = GPy.models.GPRegression(X, Y, kern)\n", "model.optimize()\n", "model.plot()# Exercise 5 d) answer\n", "model.log_likelihood()\n", "display(model)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "

\n", "Model: GP regression
\n", "Log-likelihood: -5.99078279431
\n", "Number of Parameters: 6
\n", "

\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
GP_regression.ValueConstraintPriorTied to
add.rbf.variance 2.58425103654 +ve
add.rbf.lengthscale 102.447254296 +ve
add.Mat52.variance 0.0204066240251 +ve
add.Mat52.lengthscale 6.52778209539 +ve
add.bias.variance 17.5408872485 +ve
Gaussian_noise.variance0.0368133074589 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ngg==\n", "text": [ "" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Fit the same model, but this time intialize the length scale of the exponentiated quadratic to 0.5. What has happened? Which of model has the higher log likelihood, this one or the one from (a)? \n", "\n", "*Hint:* use `model.log_likelihood()` for computing the log likelihood." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 b) answer\n", "kern=GPy.kern.RBF(1, lengthscale=0.5)+GPy.kern.Matern52(1,lengthscale=10)+GPy.kern.Bias(1)\n", "m=GPy.models.GPRegression(X,Y,kern)\n", "m.optimize()\n", "m.plot()\n", "model.log_likelihood()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 276, "text": [ "-5.994683440941623" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRqMYvwBzNnA1KuK9eQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 276 }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) Modify your model by including two covariance functions. Intitialize a covariance function with an exponentiated quadratic part, a Matern 3/2 part and a bias covariance. Set the initial lengthscale of the exponentiated quadratic to 80 years, set the initial length scale of the Matern 3/2 to 10 years. Optimize the new model and plot the fit again. How does it compare with the previous model? " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 c) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 277 }, { "cell_type": "markdown", "metadata": {}, "source": [ "d) Repeat part c) but now initialize both of the covariance functions' lengthscales to 20 years. Check the model parameters, what happens now? " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 d) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 278 }, { "cell_type": "markdown", "metadata": {}, "source": [ "e) Now model Model the data with a product of an exponentiated quadratic covariance function and a linear covariance function. Fit the covariance function parameters. Why are the variance parameters of the linear part so small? How could this be fixed?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 e) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 279 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## More Advanced: Uncertainty Propagation\n", "\n", "Let $x$ be a random variable defined over the real numbers, $\\Re$, and $f(\\cdot)$ be a function mapping between the real numbers $\\Re \\rightarrow \\Re$. Uncertainty\n", "propagation is the study of the distribution of the random variable $f ( x )$.\n", "\n", "We will see in this section the advantage of using a model when only a few observations of $f$ are available. We consider here the 2-dimensional Branin test function\n", "defined over [\u22125, 10] \u00d7 [0, 15] and a set of 25 observations as seen in Figure 3." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Definition of the Branin test function\n", "def branin(X):\n", " y = (X[:,1]-5.1/(4*np.pi**2)*X[:,0]**2+5*X[:,0]/np.pi-6)**2\n", " y += 10*(1-1/(8*np.pi))*np.cos(X[:,0])+10\n", " return(y)\n", "\n", "# Training set defined as a 5*5 grid:\n", "xg1 = np.linspace(-5,10,5)\n", "xg2 = np.linspace(0,15,5)\n", "X = np.zeros((xg1.size * xg2.size,2))\n", "for i,x1 in enumerate(xg1):\n", " for j,x2 in enumerate(xg2):\n", " X[i+xg1.size*j,:] = [x1,x2]\n", "\n", "Y = branin(X)[:,None]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We assume here that we are interested in the distribution of $f (U )$ where $U$ is a\n", "random variable with uniform distribution over the input space of $f$. We will focus on\n", "the computation of two quantities: $E[ f (U )]$ and $P( f (U ) > 200)$.\n", "\n", "## Computation of $E[f(U)]$\n", "\n", "The expectation of $f (U )$ is given by $\\int_x f ( x )\\text{d}x$. A basic approach to approximate this\n", "integral is to compute the mean of the 25 observations: `np.mean(Y)`. Since the points\n", "are distributed on a grid, this can be seen as the approximation of the integral by a\n", "rough Riemann sum. The result can be compared with the actual mean of the Branin\n", "function which is 54.31.\n", "\n", "Alternatively, we can fit a GP model and compute the integral of the best predictor\n", "by Monte Carlo sampling:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Fit a GP\n", "# Create an exponentiated quadratic plus bias covariance function\n", "kg = GPy.kern.RBF(input_dim=2, ARD = True)\n", "kb = GPy.kern.Bias(input_dim=2)\n", "k = kg + kb\n", "\n", "# Build a GP model\n", "m = GPy.models.GPRegression(X,Y,k)\n", "m.Gaussian_noise.variance = 1e-5\n", "display(m)\n", "m.Gaussian_noise.variance.fix()\n", "display(m)\n", "\n", "# constrain parameters to be bounded\n", "#m.constrain_bounded('.*rbf_var',1e-3,1e5)\n", "#m.constrain_bounded('.*bias_var',1e-3,1e5)\n", "#m.constrain_bounded('.*rbf_len',.1,200.)\n", "\n", "# fix the noise variance\n", "\n", "#m.constrain_fixed('.*noise',1e-5)\n", "# Randomize the model and optimize\n", "m.randomize()\n", "m.optimize()\n", "\n", "# Plot the resulting approximation to Brainin\n", "# Here you get a two-d plot becaue the function is two dimensional.\n", "m.plot()\n", "display(m.add.rbf.lengthscale)\n", "\n", "# Compute the mean of model prediction on 1e5 Monte Carlo samples\n", "Xp = np.random.uniform(size=(1e5,2))\n", "Xp[:,0] = Xp[:,0]*15-5\n", "Xp[:,1] = Xp[:,1]*15\n", "Yp = m.predict(Xp)[0]\n", "np.mean(Yp)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "creating /var/folders/22/6ls22g994bdfdpwx4f9gcmsw0000gn/T/scipy-neil-mcRzlh/python27_intermediate/compiler_08f57918657bc3b6af9ef49d104a532a\n" ] }, { "html": [ "\n", "\n", "

\n", "Model: GP regression
\n", "Log-likelihood: -74285.8774977
\n", "Number of Parameters: 5
\n", "

\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
GP_regression.ValueConstraintPriorTied to
add.rbf.variance 1.0 +ve
add.rbf.lengthscale (2,) +ve
add.bias.variance 1.0 +ve
Gaussian_noise.variance1e-05 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "WARNING: reconstraining parameters GP_regression.Gaussian_noise.variance\n" ] }, { "html": [ "\n", "\n", "

\n", "Model: GP regression
\n", "Log-likelihood: -74285.8774977
\n", "Number of Parameters: 5
\n", "

\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
GP_regression.ValueConstraintPriorTied to
add.rbf.variance 1.0 +ve
add.rbf.lengthscale (2,) +ve
add.bias.variance 1.0 +ve
Gaussian_noise.variance1e-05 fixed
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "html": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
IndexGP_regression.add.rbf.lengthscaleConstraintPriorTied to
[0]3.00660818886e-08+veN/A
[1]0.511855770259+veN/A
" ], "metadata": {}, "output_type": "display_data", "text": [ "\u001b[1mGP_regression.add.rbf.lengthscale\u001b[0;0m:\n", "Param([ 3.00660819e-08, 5.11855770e-01])" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "66.628745898828541" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ngg==\n", "text": [ "" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 6\n", "\n", "a) Has the approximation of the mean been improved by using the GP model?" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 6 a) answer " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) One particular feature of GPs we have not use for now is their prediction variance. Can you use it to define some confidence intervals around the previous result?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 6 b) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computation of $P( f (U ) > 200)$\n", "\n", "In various cases it is interesting to look at the probability that $f$ is greater than a given\n", "threshold. For example, assume that $f$ is the response of a physical model representing\n", "the maximum constraint in a structure depending on some parameters of the system\n", "such as Young\u2019s modulus of the material (say $Y$) and the force applied on the structure\n", "(say $F$). If the later are uncertain, the probability of failure of the structure is given by\n", "$P( f (Y, F ) > \\text{f_max} )$ where $f_\\text{max}$ is the maximum acceptable constraint.\n", "\n", "### Exercise 7\n", "\n", "a) As previously, use the 25 observations to compute a rough estimate of the probability that $f (U ) > 200$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 7 a) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Compute the probability that the best predictor is greater than the threshold." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 7 b) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) Compute some confidence intervals for the previous result" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 7 c) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These two values can be compared with the actual value {$P( f (U ) > 200) = 1.23\\times 10^{\u22122}$ .\n", "\n", "We now assume that we have an extra budget of 10 evaluations of f and we want to\n", "use these new evaluations to improve the accuracy of the previous result.\n", "\n", "### Exercise 8\n", "\n", "a) Given the previous GP model, where is it interesting to add the new observations if we want to improve the accuracy of the estimator and reduce its variance?" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 8 a) answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Can you think about (and implement!) a procedure that updates sequentially the model with new points in order to improve the estimation of $P( f (U ) > 200)$?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 8 b) answer" ], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }