Skip to content

Instantly share code, notes, and snippets.

@nbren12
Last active August 29, 2015 14:06
Show Gist options
  • Save nbren12/8e7d76315e59804d9d0c to your computer and use it in GitHub Desktop.
Save nbren12/8e7d76315e59804d9d0c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:f83617d060cb1dbf311d49954607dca890870c3f4f576f2d15dcce15dfccf810"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, we need to use the discrete dynamical model:\n",
"$$u_{m+1} = F u_m + \\sigma_{m+1}$$\n",
"\n",
"And the observation model:\n",
"$$v_{m+1} = g u_{m+1} + \\sigma_{m+1}^o$$\n",
"The covariance of the observation error is $r = Var(v_{m+1} - g u_{m+1})$ and the model noise has constant variance sigma\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%pylab inline\n",
"rcParams['savefig.dpi'] = 100"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Define some functions for the stochastic process and the observation model"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def crandn(*args, **kwargs):\n",
" \"\"\"Complex random normal\"\"\"\n",
" return ( 1.0j * randn(*args, **kwargs) + \n",
" randn(*args, **kwargs) ) /sqrt(2)\n",
"\n",
"def discreteprocess(u0, sig, F):\n",
" \"\"\"prefect model\"\"\"\n",
" u = u0\n",
" while True:\n",
" u = F*u + sig / sqrt(2) * crandn(1)\n",
" yield u\n",
" \n",
"def obs(u, g=1.0, r=1.0, **kw):\n",
" \"\"\"observation model\"\"\"\n",
" return g * u + r * crandn(1)\n",
"\n",
"def plotuu(uu):\n",
" fig, (a,b ) = subplots(2)\n",
" a.plot(real(uu))\n",
" a.set_ylabel('Re')\n",
" b.plot(imag(uu))\n",
" b.set_ylabel('Im')\n",
" \n",
"from itertools import islice\n",
"\n",
"def getu(nt = 500, F=1.0, sig=1.0, u0 = 0.0, **kw):\n",
" return array([ u for u in \n",
" islice( discreteprocess(u0, sig, F), 0, nt)]).ravel()\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get the first `nt` points of the process"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"uu = getu()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plotuu(getu(100))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nzMwyzv8DWQbR6eNv+RAAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x104cda8d0>"
]
}
],
"prompt_number": 4
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Kalman filter"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The key to getting the kalman filter is to minimize the posterior $ p(u_{m+1} | v_{m+1} ) = p(u_{m+1}) p(v_{m+1} | u_{m+1}) $ , which is the same as maximizing the negative log posterior \n",
"\n",
"$\\newcommand{\\ub}{\\bar{u}}$\n",
"$$ J(u) = \\frac{1}{2} \\left(\\frac{(u - F\\ub_{m+1|m})^2}{r_{m+1|m}} + \\frac{(v_{m+1}-gu)^2}{r^o} \\right)$$\n",
"Here, the prior mean and covariance are known from the forecast models. The first term is a contribution from the model noise the second term is a contribution from the observation error. The Kalman filter estimates the posterior mean using\n",
"\n",
"$$ \\ub_{m+1|m+1} = \\text{argmax}_{u} J(u).$$\n",
"\n",
"This is, found using simple calculus:\n",
"\n",
"$$ g\\frac{gu - v_{m+1}}{r^o} + \\frac{u - \\ub_{m+1|m}}{r_{m+1|m}} = 0 $$\n",
"$$ u g ( \\frac{g}{r^o} +\\frac{1}{r_{m+1|m}}) = \\frac{v_{m+1}}{r^o} + \\frac{ \\ub_{m+1|m}}{r_{m+1|m}} = 0 $$\n",
"\n",
"The famous Kalman gain here is the simply the coefficient of the $ v_{m+1} $ in the expression for the posterior mean.\n",
"\n",
"$$ K_{m+1} = \\frac{g r_{m+1|m}}{g^2 r_{m+1|m} + r^o}$$\n",
"\n",
"and to summarize we have $\\ub_{m+1} =\\ub_{m+1|m} + K_{m+1} ( v_{m+1} - g\\ub_{m+1|m})$. After employing the assumption that the forecast noise and observation error are uncorrelated, we can get the update rule for the covariances $r_{m+1|m+1} = (1 - K_{m+1} g ) r_{m+1|m}$."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\n",
"def kalmanfiltergen(observations,r = 1.0, g= 1.0, F = 1.0, sig=1.0):\n",
" \"\"\"A generator for the Kalman filtered estimates\"\"\"\n",
" ub = 0.0\n",
" rb = 1.0\n",
"\n",
" for ob in observations:\n",
"\n",
" # Forecast step\n",
" ub = F *ub\n",
" rb = F * rb * conj(F) + sig\n",
"\n",
" # Analysis Step\n",
" K = g * rb / ( g**2 * rb + r) # Kalman gain\n",
" ub = ub + K * ( ob - g * ub)\n",
" rb = ( 1- K * g) * rb\n",
"\n",
" yield ub, rb, K\n",
"\n",
"def kalmanfilter(observations, **kw):\n",
" \"\"\"Convience function for returning kalman filtered obs\"\"\"\n",
" ub, rb,k = zip(*list(kalmanfiltergen(observations, **kw)))\n",
" \n",
" return np.array(ub), np.array(rb), np.array(k)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Results for the perfect model"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Run model and generate obs\n",
"d = dict(r = 1.5,\n",
" sig = 1.0,\n",
" F = .2 + .5j,\n",
" g = 1.0)\n",
"\n",
"u = getu(nt=30, **d)\n",
"o = [obs(uu, **d) for uu in u]\n",
"\n",
"\n",
"ub, rb, kal = kalmanfilter(o, **d)\n",
"\n",
"figure(figsize=(8,6))\n",
"subplot(221)\n",
"\n",
"\n",
"plot(real(u), 'k--', label='Truth')\n",
"plot(real(o), 'ko', label='Obs')\n",
"plot(real(ub), 'k-', label='Filter')\n",
"title(r'$\\Re{u}$')\n",
"\n",
"subplot(222)\n",
"plot(imag(u), 'k--', label='Truth')\n",
"plot(imag(o), 'ko', label='Obs')\n",
"plot(imag(ub), 'k-', label='Filter')\n",
"title(r'$\\Im{u}$')\n",
"ax = plt.gca()\n",
"\n",
"han, lab= ax.get_legend_handles_labels()\n",
"figlegend(han, lab, \"upper center\", ncol=3, frameon=False)\n",
"\n",
"subplot(223)\n",
"plot(kal, label='Kalman gain')\n",
"legend(frameon=False)\n",
"\n",
"rms = lambda x,y : real(((x-y)*conj(x-y)).mean()**0.5)\n",
"\n",
"print \"RMS Obs = %s\"%(rms(o,u))\n",
"print \"RMS Filter = %s\"%(rms(ub,u))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"RMS Obs = 2.16381546834\n",
"RMS Filter = 1.37419670451\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"/Users/noah/anaconda/lib/python2.7/site-packages/numpy/core/numeric.py:460: ComplexWarning: Casting complex values to real discards the imaginary part\n",
" return array(a, dtype, copy=False, order=order)\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAIsCAYAAADh1yGNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xl8TOf3B/DPTDJZJSKLBBEihMSe2CIUtdVaVEOoSiwt\n6qeWWks3LW2q31JdLC1aGoqqLopobbHvtMQSpHZJrRFZZ87vj5uZZjL7ZPY579drXuTeO3dOMpkn\nz33uec4DMMYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wx\nxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGmNPIAvCr\ntYNgCu8AkAHwt3IcTLPaEN6j4WW2vVO6jTFmImJrB8AY04tMz8czFXydaAh/bGup2UelD2ZeDQGs\nAXATQEHpv2sgvDfM9iRB8+dxPtR/bsp/PQvA82aNkjEH5mrtABhjenmp3NfDAXRVsz2jgq8TDeAt\nADsB/FNun6iC52a6DQCwFsC/AL4BcBVAOICRAAYCGAxgs9WiY9rMgfB+lXUWwme1pNz28p+lWQDW\nA/jZPKEx5ti4M8uYfUgt93VbCJ3Z8tvL8wSQb8TrccfV8iIArAaQCWGE/V6ZfYsApJfubwLVThOz\nvq0AThj5XILpP3MeAArBd1OYE+A0A8Ycx24AfwGIBbAXQB6AD0r3yQC8reY5WQBWlv4/CcLoEADs\ngubUhXYAjkDoJF8GMMwEsZtaEITv6yyAC6X/rizdbqvnngrh4uMVKHdkUfr1qwC8AUxTE896AI8g\njOguBOBe7piuAPYBeAAgF8B5/Pe7wcynNlRzZsuTQXhfh+O/z9zKMvtrAFgB4C6EtJO/ASSXO0fH\n0ucNAvA+hNSUPAA+FYyfMbvAI7OMOQ4CEADgdwi3qr+D8Aew7H51z5Fv3wPgMwATIHR05CkLZVMX\n6gHYAOBrCH9wRwJYBeA4gHMm+B5MoSqAAxBGOsuKAtAeQByAHBs8dx8II677NexPh5D60bPc9vWl\nz5tR+voTAFTBfx2ohgB+A3AKwq3wQgjvY1sj42Tq+QEI1LBP2+joMAifp8MAlpVuu1z6bzCAQwCk\nED6bORDe/28A+EIYsS9L/v6mQLigKTboO2CMMcYs6HOozojeXbpttJrjZRByYcu7CmHUR24gNE8k\nyyrdF19mWyCEEdqP9YjZUlZCiJPUPMqPetnKuSuXPn+TjuN+htCxqYT/ZsX/VO4Y+e9G49KvJ4Kr\nHphTEtRP/pJCmEgpA/BymePfgepnNxfKn0O5rwHcgHBxUlYqhFF2+Qh8x9JzXoLqqDxjDo9HZpmz\nq1b60KQAukccoyHkp5V3u/RhSQWoWGdNl7NQHjn8F8Kt9nAzvqahWkFz/qGodL+tnVt+OzhXx3G5\npa/jW2bbF+WOWQxgHIAeENJOHpRu7wdhFN0eykJ5AWhggdc5D+Cpic41DsDFctsqkgcrAvACgHUA\nXKA86psGYTJgDICDZbZ/C2FkljGnwp1Z5uxehfpcUrlzEG7TarMB6ssmvQthFMaSbkJ15rQpXVOz\n7SFUR46sSVe7VpF2z1znlndideU4+kAYBX5cZtulcsdcgdBhrV369Q8ARkEY5fsQwJ8QRoA3wnYn\nBzWAkLpibrEwftJWeUfUnKt2Bc4XBGHE/tXSR3kEIe2lLJ4YyJwSd2aZs1sK4Bct+wv0OMeL0Dwy\na2mGVi4wtA2QathuS9UPdHXmK9LZN9e5HwG4A6FSgTZNIFywPNFyTPkOagGEtJFOAHoBeA7CRKGd\nALrBNkdqz0PoaFridWyVfIL2aggjrur8Ve5rYyqXMGb3uDPLnJ0pUgFsZeKTNg8gTFApyw2qKRa2\nOlJniCMQJmSp62BT6X5bPPevEPKd46F+Elh7CDmYS8ptj4RyTeC6EDpCWeVi21n6mAJgJoRJfp0g\njNTamqcw3YipPVD3ucuBMGLvCuF9Y4xpwKW5GHMOlwF0KLftFai2AXml/9pS2oChpkG41a5u1aUr\nUC1tZSvn/hjCyNpSqE7W8ofQic2D6mS718p9/X+l/24t/Vfde3m69F83oyJlppYH1fdJCuBHCHmz\n6lKdTFFmjjGHwCOzjDkWTbf7v4bQGdoI4A8ATSHcYv633HNOQvgjOh3CSG4hhJE7XeWmbCnNIAdC\niaoUCBOyXCHc/j8CobNpbOksc587E0I5re8h3D7+BsLoam0IJdD8ASRCNS+yNoQqB9tLYxta5hyA\nkBPeHsAWCDnPVSFMVroOofYss77jALoAmAThTtEVCL9TMyCMnh8GsBxCmTx/CBO/OkMoxccYY4zZ\npcVQzV/dBeCMhuNFENaJz4aQb/k7gDpQLc0FCB2nTAg1KqX4r0zXVajPL94Fvg1qSo0gdEZvQriY\nuAlgDVQnGb4N4f2pD+VFExZBecS1E4TyXTcg5M9eLz1f+Vq5zDhJEN6HGDX7akO1NJf8fSsrEkJp\nvbzS48t+JoMgfN7/gfD7cAtCNYORZY7pWHrOAcZ8A4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOM\nMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHG\nGGOMMcYYY4wxxhhjjkNk7QAYs4CXAYQAqAPgEwCXALgBqAYgGoAXgB+tFh1jjNmHlwDUBJAHoCmA\nKwD+ByDfmkExxpijcwOwqPT/bQFkApgFwKd0Ww8AhQCaWD40xhizG68D6Fjma1cAvwI4A8DPGgEx\nxpiz8AKwvvT/Eggd11HljtkO4BgAFwvGxRhj9sIdwEo12z0B7AXwB4Q7va4AalgwLsYAAGJrB8CY\nmT0F8CeAaQCKATwC0LDcMVMANAPwhmVDY4wxu+AL4I6a7fkAukJoY98AMBrC3TDGLIo7s8wZLAXQ\nHEIj+xRA5XL7RQCuAqhd+vUQALPx34guIHxW/gbQwJyBMsaYDcoBEKhhX1Hpwx1ALoS2FOB2lDHG\nTMoFwPsAqgLIAnAWwKcA1gA4B2FSWFjpseEARkK4VSYDUKV0exMII7telgqaMcZsSBsAk6A6CDYX\n/3VgXwHQGcLAALejjDFmIt4AhgH4HEIjnAVgRem+JAgNbViZ45MhTA4bCSCjzPaxAI6aN1TGGLNp\nwQCGA+hQZtuPAE6X/j8IQB9wO8oszNXaATBmZnkAKgHYBaHjKgZQouV4+SSHRADfltkeD2CfOQJk\njDE7cRfK7SIALISQMzsAwCYIFQ7kuB1ljDEzeAzg3dL/J0F1ZBYQcmqLANQts+0ygBfMHRxjjNkg\nLwDvQEjNaqdm/zQADyHU7pbjdpQxxkxEBGHRBEC4EyED0Lv06ySo78y2gNAwy1UrPS4YwAgII72M\nMeZsBgB4AiHVoKxGENrI/mW2cTvKLIarGTBHVxVAHITf9VAA2QB2lO67XfpvBITZtf1Kv35Qerz8\n8zEawojuXQgTGp6YPWrGGLM9mwC8COBL/DdIAAgTv54AOFhmG7ejzGK4SDxzdHkQSsFMBtANwIcA\nLpTuuwxhlu0kCCMGK0r/fQDAA8LtsDgIiypUgzDS8AeAfywXPmOM2ZRMAOkAPoCQcjAcQCSEibbn\nyxzH7ShjjDHGGGOMOYqxEEp/PCp9HADwnFUjYowx+zYDwp2IT60dCGOMVYS95MxeBzAdQAyAWAA7\nAfwC1WVJGWOM6dYSQp7jGQBk5VgYY8xp3YNQmJkxxpj+KkHIG38WQv3l/1k3HMYYqxh7GZktywXA\nYAjrQKdbORbGGLM3XwD4DcIdLpGVY2GMsQqzpxXAGkMo++EOIB9AAoRZlepUg3LxZsYYM7Xb+K+8\nm70YDKAZhDQDQHeKAbeljDFzMkk7ak+d2fMAmkBYVeRFAOsAdARwotxx1apXr37r1q1blo2OMeZs\nbkLoFNpLh7YmgEUAukBYmQkQRmY1jc5yW8oYMzeTtKP2fItpB4AsCIWYy4oBcHzNmjWIioqyeFAV\nNXHiRCxcuNDaYRiFY7cOjt3yMjIy8NJLLwHChNTyF9S2qh+EovfSMttcIIzOSiHc9So7UsttqZVw\n7NbBsVuWKdtRexqZLc8FWnJ+o6KiEBMTY8FwTMPPz88u4wY4dmvh2Jme/oCw7KicCMBKABkAPoKG\nlANuSy2PY7cOjt1+2Utndj6A3yGU6PIBMATAMwDet2ZQjDFmR54AOFdu21MA99VsZ4wxu2Evndkg\nAN9BmIjwCMICCt0hzMZljDFmHALXmWWM2Tl76cyOsnYAjDHmgDpZOwDGGKsoe6wz69ASExOtHYLR\nOHbr4NgZU2XPv1scu3Vw7PbLnqsZaBID4Pjx48edOhmaMWY+J06cQGxsLGBf1QwMxW0pY8xsTNmO\n8sgsY4wxxhizW9yZZYwxxhhjdos7s4wxxhhjzG5xZ5YxxhhjjNkt7swyxhhjjDG7xZ1ZxhhjjDFm\nt7gzyxhjjDHG7BZ3ZhljjDHGmN3izixjjDHGGLNb3JlljDHGGGN2izuzjDHGGGPMbnFnljHGGGOM\n2S3uzDLGGGOMMbvFnVnGGGOMMWa3uDPLGGOMMcbsFndmGWOMMcaY3eLOLGOMMcYYs1vcmWWMMecw\nFsBpAI9KHwcAPGfViBhjzAS4M8sYY87hOoDpAGIAxALYCeAXAA2tGRRzDjk5OUhOTkbDhg1Rv359\nNGzYEMnJycjJybF2aA7NWX7urtYOgDHGmEX8Vu7r2RBGa1sBOGv5cJizyM7ORtu2bXH58mWl7efO\nnUN6ejoOHjyIoKAgK0XnuJzp584js4wxi3KWkQIb5wJgMAB3AOlWjoU5uOnTp6t0qOQuX76MadOm\nWTgi5+BMP3cemWWMWYwzjRTYqMYADkLoxOYDSACQadWImMM7cuSIXvtzcnIwbdo0HDlyBCUlJXB1\ndUWrVq2QkpLC7YIR9P25OwJ76szOBDAAQH0IjfABCPlfF60ZFGNMf/qMFKxcudLCUTmV8wCaAKgM\n4EUA6wB0BHDCijExB1dSUqJzP1/omp4+P3dHYU+d2WcALAZwFIAEwDwAaQCiATy1YlyMMT0500iB\njSoGcKX0/ycBtISQNzta0xMmTpwIPz8/pW2JiYlITEw0V4zMwbi6au9quLq68oWuGejzc7eUtWvX\nYu3atUrbHj58aLLz21Nntke5r5MAZEOYmbvP4tEwxgzmTCMFdsIFOuZOLFy4EDExMRYKhzmiVq1a\n4dy5c1r384Wu6enzc7cUdRfAJ06cQGxsrEnOb88TwORDBfetGgVjTG+2NFLghOYDaA+gNoTc2fkQ\n7nh9b8WYmBNISUlBRESE2n0RERFISUnhC10z0Ofn7ijs9S+HGMBCCCOymi87GGM2xZZGCpxQEIDv\nAFSDsGjCaQDdIdSbZcxsgoKCcPDgQa2Tu/hC1/T0+bk7Cnv97fgCQq5sO2sHwhjTX0pKCtLT09Xm\nxjnaSIENGmXtAJjzCgoK0przyhe65qHr5+4o7LEz+zmAnhBuj93SdBBPWmDM9tjjSIG5Jy4wxvhC\nl1WMyNoBGEAEoZrB8xBKyaif9ihMCDt+/PhxnrTAGDOLMhMXYuG4Za24LWUWxXVmnYsp21F7Gpn9\nAkAihM5sHoCQ0u0PARRYKyjGGGOMVZyz3BJnpmdP1QzGAPAFsBtCeoH8kWDFmBhjjDHGmBXZ08is\nPXW8mRH4FhNjjDHGDGVPnVnmwHgpQ8YYY4wZg0c7mU3QZylDxhhjjLHyuDPLbAIvZcgYY4wxY3Bn\nltkEXsqQMcYYY8bgziyzCbyUIWOMMcaMwZ1ZZhN0LVXISxkyxhhjTB3uzDKbkJKSgoiICLX7eClD\nxhhjjGnCnVlmE4KCgnDw4EEkJSUhOjoakZGRiI6ORlJSktnKcuXk5CA5ORkNGzZE/fr10bBhQyQn\nJyMnJ8fkr8UYY4wx8+BERGYzLLmUIde1ZYwxxhwDj8wyp8R1bRljjDHHwJ1Z5pS4ri1jjDHmGLgz\ny5wS17VljDHGHAN3ZplT4rq2jDHGmGPgzizTyJFn+3NdW8YYY8wx8PATU8vRZ/unpKQgPT1d7SQw\nrmvLHNhMAAMA1AeQD+AAgOkALlozKMYYqwgemWVqOfpsf2vUtWWqCgoKrB2Cs3kGwGIArQF0BSAB\nkAbAy5pBMcZYRfDILFPLGWb7W7KuLVO1efNmDB8+HJmZmXzxYDk9yn2dBCAbQAyAfRaPhjHGTMBh\nR2YHDhzoMPmd1sCz/Zm5bdq0CY8fP8bq1autHYoz8yv9975Vo2CMsQpw2M7s1atXsWrVKsTFxXGH\n1gg825+ZExEhLS0NYrEYy5cvBxFZOyRnJAawEMKI7Dkrx8IYY0Zz2M6snCPkd1qDM832Lykpwa5d\nu+yqQ2XvlSbOnDmDu3fvYvr06Th//jwOHDhg7ZCc0RcAogEMtnYgjDFWEU4xvOYI+Z2W5kyz/T//\n/HNMmjQJc+fOxezZs60djk6OUGkiLS0Nnp6emDNnDtatW4fly5cjPj7e2mE5k88B9IQwIeyWtgMn\nTpwIPz8/pW2JiYlITEzU+gI5OTmYNm0ajhw5gpKSEri6uqJVq1ZISUmx+d9PxphprV27FmvXrlXa\n9vDhQytFYx9iAFDZR2RkJDHDZWdnU1JSEkVHR1NkZCRFR0dTUlISZWdnWzs0k5FKpVS3bl2qVq0a\nAaDVq1dbOySdkpKSqPzveNlHUlKStUPUqUuXLtSjRw8iInr//ffJ09OTHj58aOWo9Hf8+HH5zzvG\nGo1cBYggdGSvA4jQcWwMADp+/LjBP5+7d+9SRESE2t/PiIgIh2pDGGPGMWU76vBpBgDndxpLPtv/\n7NmzuHDhAs6ePYuVK1c61KjK9u3bkZmZiY0bNyI5ORkjRozAnj17rB2WVvZeaeLp06dIT09H9+7d\nAQDJyckoLCxEamqqlSNzCl8AGFr6yAMQUvrwMOWLOHppP8aYbXGKzqwj5Xcy02rYsCEWLFiAuLg4\nLF26FB06dEBCQgLy8vKsHZpG9l5pYu/evSgsLES3bt0AANWrV0evXr2wfPlypePsPS/YRo0B4Atg\nN4T0AvkjwZQvYu8XXIwx+2JPQ5bPAJgKYTi6GoD+AH7W9SRHy+9kphUWFoYpU6YAACQSCTZu3IjT\np0/D29vbypFpZu+VJtLS0hAaGooGDRooto0ePRp9+/bFiRMnEBMT4xB5wTbKIgMY9n7BxRizL/Y0\nMusF4CSA10q/1jr1PDw8nFdzYgarXLkynnnmGWuHoZW9V5rYvn07unfvDpFIpNjWo0cPVK9eXTE6\ny7ep7Zu9X3AxxuyLPXVmtwF4C8BmfQ7euHGjw+V3MgYIlSYiItTP3bH1OxE3btzAuXPnFCkGcq6u\nrkhOTkZqairy8vL4NrWds/cLLsaYfbGnzixjDMLEvIMHDyIpKQnR0dGIjIxEdHS0XdyJSEtLg0gk\nQufOnVX2jRw5Eo8fP8aGDRv4NrWds+cLLsaY/eF7PYzZIXmlCXuTlpaGli1bIiAgQGVfeHg4unTp\ngq+//ppvU9s5+QUX15llzDbMmDEDERERGD16tLVDMQsemXVShswUHzZsGIYMGWKFKG2LTCazdgh2\nTSqVYseOHSopBmWNHj0a+/fvR2RkpNZz8W1q2+cMpf0Ysxffffcd1q9fb+0wzMZhhzeMXbXGGRgy\nU/zKlStYs2YNAOD7779XmrRjr+7du6d2ZFCba9euoW/fvvj222/RtGlTM0Xm2E6cOIH79+9r7cw+\n//zzCAwMREhICCIiImxiBTpeuYYx0ykoKAAAeHiYtLQx0+LRo0e4ffu2Q/z9djQyAH017DN61Rpn\nYcgKUmPHjqWgoCDKy8uzYsSmk5WVRW5ubrRlyxaDnvf06VMKCwuj8ePHmykyx/f++++Tj48PFRUV\naT1u8uTJFBAQQNevX7fZFejseAUwQ3BbykyuR48e5OvrSxMmTKDz589bOxyncPDgQcXfd1taadFZ\nVwDzBtCs9AEAdUr/X9NqEdkpfWeK37lzBytWrMDrr78OLy8vS4QGQFgh6sqVK2Y595IlS+Dp6Wlw\n+S1PT0+0a9cOJ06cMEtcziAtLQ3PPvssJBKJ1uNGjRqFe/fu4cCBA3ybmjE7oG/a2q1bt7Bt2za0\nbdsWqampaNCgAbp27YrNmzfzpE4zysjIUPt/R2JPndmWAE6UPgjA/0r//641g7JH+s4UX7RoESQS\nCcaNG2eJsBQ+/vhjtGzZ0uSNW35+PpYvX47k5GRUqlTJ4OfHxMTg1KlTkEqlJo3LGTx+/BgHDhzQ\nmmIgFxUVhfj4eJUVwRhjtic7OxtxcXFYtWoVzp07h4sXL+LcuXNYtWoV4uLilDq069evh0Qiwdq1\na3H9+nV89913yM3NRf/+/VGnTh3MmzcP2dnZVvxuHFNGRgZCQkIgEolw7tw5a4djFvbUmd0NIV4x\nAJcy/x9hxZjskj4zxR89eoQvv/wSY8eORaVKlVBYWGih6ICdO3fi/v37OHXqlEnPu27dOty7d8/o\nznlsbCyePn2K8+fPmzQuZ7B7926UlJSge/fueh0/evRo/PHHH2YboWeMmYYhC5ykpqaiV69e8PPz\ng4eHB4YNG4ZDhw7h2LFj6Nq1K+bOnYvQ0FAMHToUR48etdS34PAyMjLQvHlz1KlThzuzzHHoU9B8\n2bJlKCgoQJUqVRAWFoYBAwZYJLbCwkJFmsPu3btNdl4iwuLFi9GjRw/Uq1fPqHM0b94cADjVwAjb\nt29HnTp1NNYeLW/gwIHw9fXFihUrzBwZY6wi9E1bu3TpEo4ePap2EnZsbCy++eYb3Lx5E/Pnz8fh\nw4cRHx+Pa9eumSVmZ5ORkYGoqChER0dzZ5Y5Dl0FzT/88EMEBgYiICAAb775JoKDg5GWloZHjx6Z\nPbYTJ06goKAAwcHB2LNnj8nOe/DgQZw8eRLjx483+hyVK1dG3bp1cfz4cZPF5SzS0tL0HpUFAG9v\nbwwdOhQrV67kXDrGbJi+aWtr165FpUqV0Lt3b43H+vv7Y8qUKThx4gREIhE2bdqk9jhDSks6u4KC\nAly9epU7s8zxaFpBavjw4XjvvffQrVs3jBgxAq1atcKZM2cUyfl//PGH2WNLT0+Ht7c3xowZg717\n9xqdn1q+sevRowd8fHwQGxtbofhiYmJ4ZNZAV65cQWZmpl75smWNHj0at27dwtatW80UGWOsovRJ\nWyMipKamYsCAAfD09NR5Tl9fX3Tv3h0bN25U2WdIji4DLl68CJlMhqioKERFReGff/5BXl6etcMy\nOe7MOqnyBc2XLFmCzMxMDB06FFWqVMGBAwewefNmNGrUCLVr10Z0dDS2bNmCixcvmrUzt2/fPrRp\n0wZdunTB48ePjcqbVdfYPX78GLm5uYiPj69QYzdp0iS8+y7POTREWloaXFxc0KlTJ4Oe17x5c8TE\nxPBEMMZsmD5pa6dOncKFCxcMqvM+cOBA7N+/Hzdv3lTabkiOLvuvekGDBg0QHR0NAA4574M7s07u\n9OnT6NWrF5555hk8ffoU27Ztw65duxAXF6d0XM+ePbF161a89tprmD59ullikclk2L9/P9q1a4eW\nLVvC09PTqFQDczZ2bdq0MbhT5uzS0tIQFxeHypUrG/zc0aNHY8uWLSp/0BhjtkFX2lpKSgpSU1MR\nFBSEzp07633evn37QiKRqKQa6JujywQZGRkICgpCQEAAGjRoAAAOmWrAnVkndvz4cbRs2RKXLl3C\nunXrcOzYMXTv3l3tKiG9evXCnTt30Lx5c+zZs8cs+bMZGRm4f/8+2rdvD3d3d8TFxRk1CczQxu7Q\noUPo1KkT7t+/b/BrMe1KSkrw559/GpxiIJeYmKj2DxpjzDZoSltLSkrCwYMHERAQgHXr1iEhIUFn\njemy/Pz80LVrV5VUA31zdJlAPvkLAHx8fBAWFsadWeY48vPz8dJLL6FRo0b466+/MGjQIIjFmn8d\n4uPj4ePjA6lUiuLiYmzfvt3kMe3btw8uLi5o3bo1AKBjx45G5c0a0thJpVKMGTMGu3fvxrfffmt4\n0Eyrw4cP4/Hjx0Z3ZitXrowGDRrg7NmzJo6MMWYq5dPWyi5wsm/fPty4cQNDhgwx+LwDBw5Eeno6\n7ty5o9imT44u+0/ZziwAh50Exp1ZJzVz5kxcvXoVa9asgbu7u87jJRIJunXrhv3796Nx48b49ddf\nTR7Tvn370Lx5c8WCBh06dMCjR49w5swZg85jSGO3fPlynD59GjExMViyZAmIyPDAmUZpaWmoUqUK\nWrRoYfQ5GjRo4LCr1jDm6FJTU1GrVi2V1DVdbt26haNHj8LFxQU//fSTYrs+ObpMIJVKcfHiRZXO\nrCO2pw7bmeVOiWY7d+7EokWLMH/+fEVC+KlTp5Cenq71eb169cKRI0fQuXNn/P777ya/nZOeno72\n7dsrvm7VqhU8PDwMTjXQt7G7f/8+3nzzTSQlJeHTTz/FxYsXsXPnToPjZpqlpaWhS5cucHFxMfoc\nUVFRDjlhgemPSzHZp6KiImzYsAGJiYlq09e0uXr1KpYuXYqwsDClVAN9cnSZ4OrVqygsLFTqzEZF\nReHy5csoKCiwYmRMHzEAaM2aNcRUPXjwgGrWrEmdOnUiqVSq2P7cc89R48aNSSaTaXzu7du3CQC9\n/fbbBID27NljsriuXbtGAOjHH39U2t6pUyd6/vnnDTpXdnY2RUREEIRlj5UeERERlJ2dTURE48eP\nJx8fH7p9+zbJZDJq2LAhDRw40GTfk7O7f/8+icViWr58eYXOs27dOgJA9+7dM1FkFXf8+HH571SM\ndZo5oz0D4FcANwHIADyv5dgYAHT8+HGr/qzv3r2r1+eZ2Z7ffvuNANCZM2eMev57771HIpGIxGKx\n0vucnZ1NSUlJFB0dTZGRkRQdHU1JSUn8u1DOL7/8QgDo2rVrim379+8nAHT69GkrRiYwZTvqsCOz\nO3bssHYINmnChAl49OgRVq1apciRPXnyJLZt24YZM2ZovXoOCQlBbGwszp8/j+DgYJOmGuzfvx+A\nkJtbVoejByjDAAAgAElEQVQOHbB3717IZDK9zxUUFIQ9e/ZonJAQFBSEv//+G1999RXmzJmjWLN6\nzJgx2Lx5M27fvm2y78vciAhPnjyxdhhq/fnnn5DJZEbny8rJRxV4dNYkvACcBPBa6dc2fwvL3ksx\nOfOocmpqKho2bIjGjRsb9fxZs2ahdevWkMlkWL16tWK7thxd9p+MjAxUqlQJoaGhim3y9tQR82Yd\nTQwAql69utZRRme0ceNGAkDffvut0vaEhASqU6cOFRcX6zzHnDlzqEqVKjRx4kSaNm2ayWIbN24c\nRUZGqmzfvXs3AaCTJ0/qfa6cnByqXr06bdmyRe1+mUxGzz77LNWrV48KCwsV2x8+fEheXl703nvv\n6XyN7777jn744Qe9YzKXbdu2kaenJ129etXaoagYNWoUNWjQoMLnefr0KYlEIvrmm29MEJVp2PHI\nbFkyAH217LeJkdno6Gi1o7LyR3R0tFXj08Yao8q2Mmr55MkT8vLyog8++EDjMVKplFJSUuj+/fsa\nj7l+/Tq5urpSUFAQ/003UFJSErVo0UJle7Vq1WjOnDlWiEiZg7SjZhOD0sbi6NGj1n6vbMatW7co\nICCABgwYoNQgXLx4kcRiMX311Vd6nefQoUMEgNLT000aX5MmTWjEiBEq2/Pz88nd3Z0WLlyo97le\nf/118vHx0dh4yzv16jq7o0aNotDQUJ0d+/79+9Ozzz6rd0zmMnv2bAJAkydPtnYoSmQyGYWFhdGE\nCRNMcr7w8HCaOnWqSc5lCg7SCNtFZzYyMlJrZ1bdRbCtSEpK0hp7UlKSSV/PllIy1q5dSwDoypUr\naveXlJTQiBEjSCQS0aZNm7Se69VXXyUAlJKSYo5QHVbr1q1p2LBhKts7d+5ML7zwghUiUuYg7ajZ\nxAAgPz8/euONN6z9XtkEmUxGPXv2pODgYMrJyVHaN2rUKAoODqb8/Hy9zlVSUkKBgYE0c+ZMk8X3\n4MEDEolEtGLFCrX7O3ToQP369dPrXJmZmSSRSDSOBjx9+pRq1apFPXv2VLtf/uH6+eefFdvUjXQ0\nb96cfH19rT5S0KdPHwJAvr6+9OjRI6vGUtb58+c1XjAYo2fPntS7d2+TnMsUHKQRtovOrD2PzFo6\ndkt3nrXp06cPtWnTRu2+oqIiSkxMJBcXF1q9erXOc925c4cAkKurK/3111+mDtUhyWQy8vX1pXnz\n5qnsGz9+vE18bhykHTWbGAA0cOBACgsLs3pnwxYsXbqUANBvv/2mtP3gwYMkkUjoww8/NOh8w4YN\no6ZNm5osvi1bthAAunTpktr9b7/9Nvn7+ytNWNMkISGBatSoQXl5eWr3v/feeySRSOjChQsaz9Gq\nVSt67rnniEj7SAcAOnLkiB7fofmEhYXRkCFDyNXVlT799FOrxkL0X8c/ODiYAFCDBg1Mcotz8uTJ\nVLduXRNFWXEO0gjbRWfWljpohrL0qLKtdPzv3btHEomEPvvsM5V9BQUF1K9fP3J1daWNGzfqfc72\n7dtTnTp16OHDh6YM1WHdvHmTANBPP/2k2Hb8+HG6efMmffnll+Tq6kpFRUVWjNBh2lGziQGg6MAd\nOnTIqm+WtWVmZpK3tzeNHj1aabtUKqVGjRpRfHy83qOycvLbR9evXzdJjDNnzqTg4GCNFx47d+7U\na/alPAVi5cqVavdfu3aNPD09dd6uXrlyJYlEIrp8+bLOP6QdO3bU63s0h/v37xMA+v7772nw4MFU\no0YNvfKezcWctziXLVtGYrHY4N9Vc3GQRlivzmz79u2pT58+So/U1FSL/az1rU5iiyzdubSVlAz5\n5/XOnTsq+0aNGkXu7u4qgyu6LF68mCQSidb8WvafP/74gwDQ+fPniUi4K+nn50dTp05VzEU5d+6c\nxeJJTU1VaUfat2/vCO2o2cSgdMQsJCSEJk2aZLE3y9aUlJRQ27ZtqU6dOpSbm6uy/8qVKyppB/q4\nd+8eicViWrZsmSnCpPbt22vN38nOziY3NzdatGiRxmNkMhm1a9eOGjduTCUlJWqPGTRoEAUHB+u8\nHZ+Xl0d+fn40ffp0nX+MAgIC9PsmzWDXrl0EgP7++2/q16+fomNrLeYcQUtPTycANnOL0Zk6s9Ye\nmSWynUlNhrL0qLKtjMx27NiRunXrprI9NzeXPD091d761uXmzZskEolUJjBbgj3+/sk7/2UHOKZM\nmUJ+fn509epVAmDQyLg5OEg7ajaKBnj8+PEUGhqq1+1pRzRv3jwSi8W0b98+k5+7Xbt2Btd/Vaeg\noEBpgtfZs2eVOpvnzp2jwMBAatSoEfXv31/jeTZv3kwAaNu2bWr379mzR+uobXkTJ06kwMBAqlu3\nrtY/Dl5eXvp/sya2cOFCcnd3p+LiYrp48SKJRCIKCwuzWjzm/EOak5NDAGjDhg0mjNh4dtwIewNo\nVvqQAZhY+v+aao61mc6svbL0qLItpGRcv36dRCKR2rZWXjNa06QwXdq1a2fx3HlbmlRniHHjxqm0\nuVevXiWxWExLliyhwMBAvSr3mJMdt6MWoWiA9+7dSwBo//79Vn3DrOH06dMkkUhMOlGrrHnz5pG3\ntzcVFBRU6Dz79u0jAHTs2DEiEqoalJ19WVxcTL179yaJREKVK1fWeGGyb98+jTPnS0pKqGnTptSq\nVSu9L2zkE5hq1Kih9Y+DWCy2Sl723LlzqU2bNhQTE6PY1rdvXwJUc6Mtxdy3OAMCAqze+MrZcSPc\nEUInVgZAWub/K9Qcy51ZE7DkqJ4tpGQsWLCA3N3d1ea2Pn36lHbs2GH0uRcuXEhubm4WzZu1hQsE\nY3Tq1EntHc9+/fpRdHQ0tW/fngYPHmyFyP5jx+2oRSgaYKlUStWqVaPXX3/dqm+YNUyZMoWqV6+u\nVEfVlE6fPq0YCd21axdlZGQYdZ4PP/yQKlWqRMXFxXT9+nUCQGvXrlU65smTJ9SgQQMCjJsdv2TJ\nEgIMz5/u1KkTVa1aVWtDVqtWLXry5InBMVXEo0ePqFKlShQSEkLJycmK7Tk5OSQWiyk8PNyi8ciZ\n+xZnu3btaMiQISaKtmKcpBHmzqwdsvYt8djYWLOVfZKvFGnJFT5tJXXDUFWqVKH4+HiVeRTy9LRe\nvXqZdCK3MXgFMD2JxWK8+OKL2LBhg0ErSDmCQ4cOoV27dnBzczPL+Rs3bozQ0FBs3boVL7/8Mr76\n6iujzpOeno64uDi4urri999/h4uLC7p37650jLe3N7Zv3w6RSIThw4cjOztb7/M/ePAAb775JoYP\nH47WrVsbFNvYsWORnZ2ttHpKWRERETh69Ci8vb0NOm9FrVq1Cvn5+Xjw4AGaNm2q2B4YGIgBAwbg\n6tWr2Lp1q0VjAoBWrVpVaL8uDRo04FXAGNPBmqtjXbhwAcePH0diYqJZzl+zZk20adMGGzduNMv5\n1SkpKanQfmu4e/cuHjx4gMePH8PFxUVpX4cOHdCkSRNkZWXh/PnzkEqlVorStBy6MwsAgwYNwq1b\ntxTLpZrDzp078fTpU7Od31DFxcU4fvw42rRpo/ja1EQiEXr27ImtW7eid+/e+PXXX0FEBp1DJpNh\n//79aNeuHQBgy5YtaNu2LapUqaJybFhYGGJjY5Gbm4vevXvrvYTrnDlzUFhYiPnz5xsUGwD069cP\nISEh6Natm9alcS1JJpNh8eLF6N69OwoLC5U6swCwbNkyiMVijBkzxuD3o6JSUlLg5eWldl9ERARS\nUlIqdP6oqCicP3/e6S5M7d3p06dRv3593Lhxw+yv5cxLx9qCtWvXwtfXFz179jTbawwcOBBbt25F\nbm4uDh06hISEBLN2yFxdXSu03xrmzp0LAHj77bdVlqgXiUSYMGECzp49i8LCQly9etUaITI9KN0a\nk0qlFBoaSuPHjzfLMLn8tkfZ273WduzYMQJABw4coEuXLlF4eLjJV+wi+m/S1TfffEOAMKveEH/9\n9RcBoD///JPy8/PJy8uL5s+fr/H42bNnk5+fH3l7e1OPHj101shLT08nkUhE//vf/wyKq/xr+vj4\nqK0GYQ3ymrzvvPMOAVBbpuaFF14gQLm+oCU8fPiQ3NzcqGXLlma5xSn/3v/55x8TRFsxnGagP3ku\nt7lXb7LXiTqOQiaTUWRkpNlzSLOysggArVu3TjGx15ypMPaWM3v37l3y8PAgABrrrT99+pRGjhxJ\ngPICQZbmJO2o0VQa4EmTJlFISIjGkk0VsWLFCgJAISEhNrFAQ3Z2NrVu3ZoAUHh4OLm5uZGPj4+i\n1pwp5ebmkpubGy1YsIC8vb0NLrciL9z85MkT2r59OwGgM2fOaDx+x44dBICWLVtGY8aM0VpT9enT\npxQZGUlt2rSp0Pv+zz//kFgspqVLlxp9DlPq3r07tWzZkqZOnUo1a9ZUe8y1a9fIxcWFFixYYNHY\nVq9eTQDo2rVrZjn/5cuXCQBt377dLOc3hJM0whXuzJ44cYIAUGBgIMXGxprwHVBlb52O8qyd61pR\n8lzMikzw0lfLli3phRdeoIKCAvLw8KBPPvnEbK9lC5PqDPHKK6+Qu7u7zso28hXCtA0gmZuTtKNq\nvQYgC0A+gEMAWqo5RqUBlhfT37Vrl8nfDJlMRosWLSIAdPLkSZOf3xDWGJno2rUrdevWjQYMGEBx\ncXEGPXfIkCHUqlUrIiKaMGEChYaGar0gePLkCUkkEvr88891nnvatGnk5uZmkqLQffr0oebNm1v9\nYiUjI4MA0OrVq6l79+7Up08fjccOGTKEateubZYLOE369u2rcflKUygpKSEPDw9FGTdrcpJGWGdn\n9rPPPtNay3vAgAFUp04dSk1NJUDzKn+mYK8TdYgcY1S5a9eu1KxZM4u0kx999BF5enrSkydP6Nln\nnzV7uS57udA4deoUicViio6Oph49eug8vk2bNkrVgyzNSdpRFYMAFAAYDqABgKUA7gMon7So0gDL\nZDIKCwujsWPHmuUNKSoqosDAQHrjjTfMcn59WWNkQl4qZcmSJSQSiejGjRt6PzcsLIwmT55MRESD\nBw+mcePG6XxOfHw8DRw4UOsxR44cIbFYbFRhbnV+//13o6ohmNqsWbMoODiYCgoKKCQkhGbPnq3x\n2KNHjxJguaLY8hSDiqR06KNJkyY0ZswYs76GPpykEdbZmW3YsCG5uLjQ7du3VfadOXNGkYaUl5dH\n3t7e9P7771f4Z79mzRqViidEtrP6lTHsfVT5yJEjBIDWr1+vsq+oqMjktd4zMzMJEOpOz507l3x9\nfS164W6LZDIZderUierXr0916tRR/G3VZsSIEdSiRQsLRKeek7SjKg4D+KzM1yIANwBML3dcDABa\nvny50g/tjTfeoKpVq5ptuc/XXnuNatSoYdUPlDVGJi5evEiAUE7L19eXpk+frtfz/vnnHwJAmzZt\nUmzTp8GbNWsWBQUFabz6LywspEaNGlFMTIzJ1p2WSqVUu3ZtGj58uEnOZ6ySkhK6cOEC3b17V9GQ\na/PMM89Q27ZtLRKbMSkGBQUFNHToUINyexMSEqy6hLCckzTCWjuzt2/fVrQt6vJhExISqFatWorP\nYWJiIjVu3LjCP/uEhAS1v9e2PjIrlUrp2rVr9O+//6qUTLT12HXp168f1a9fX+3fv1WrVlFoaKjJ\nSxg2b96cBg0apFgd8OjRoyY9v725f/8+tWjRgjZt2kQikUilD6SOPEXQWgtLOWNpLjcI3+wfZbZR\n6ddx6p4wevRoTJ48WVFlICEhAdnZ2di7d69ZAhw6dChu3ryJ9PR0s5xfH9YoIeLn5wcfHx+MGzcO\nbm5uWLVqlV6zh/ft2wcAikoGgFBKTZeOHTsiJycHGRkZavfPmzcP58+fx4oVKyCRSAz4TjQTi8V4\n9dVX8cMPP+D+/fsq+588eYJz586Z5LW0cXFxQWRkJE6fPg0AKpUMyps0aRIOHDiAw4cPmz22DRs2\noE2bNqhZ87+FpIqKipCfn6/xOW5ubsjLy8OIESNw/fp1vV4nKipK43vPLGvXrl0AgE6dOmHlypVK\n1TPOnTuHDRs2YNasWYrP4aBBg/DXX39V+LPSoUMHHD16VKWCjLlLw1XUJ598grCwMAQGBsLd3R0e\nHh4ICgpCnTp1kJmZqfW5tlj+Se7vv//G5s2bMWPGDJUyUACwfv16hIeHm7yE4cCBA/Hbb7+hcePG\n8PT0xO7du016fntTpUoVHD58GOHh4SAiREVF6XxOdHQ08vLy9G5/WcVVh7BKTflCoSkQcmfLigFA\nkyZNInd3d4qMjKQDBw6QTCaj8PBweuWVV8xyhSGTyWj+/PmUlZVllvPrw9JX9xXJ8xo7dizVr1/f\n4Nd88uQJubq60pdffqmy7/Tp0+Tq6kpvvfWWwefV5e7du+Tm5qY2X3PWrFlUrVo1k7+mJikpKXpd\nTZeUlFBERAQNGjTIrPE8evSI3N3dlSZhfPjhh+Tl5UXLli3T+tx79+5RaGgodejQQa+7GmvXriVA\nfRUHS+KRWaLly5dT586dKS0tjZo3b045OTmKfYmJiVSzZk2lEciCggKqXLmy0Z/Phw8fkkwmU6qC\nUpatT9Rp3749dezYkX788UdatWoVLV68mObNm0czZsygKlWq2O3I7NChQyksLEztnbB79+6Rq6sr\nLV682OSve+HCBcXdvS5dulDPnj1N/hr2SL5k8L1793Qee/XqVQJAv//+uwUiU+Uk7agSgzuzx48f\np4yMDGrdujWJxWKaOnUqTZkyhQICAsyWamBtls67qsjrNWrUiEaOHGnU68bFxVFCQoLStuLiYoqJ\niaGGDRuabdWzPn36ULt27VS2//jjjwSAbt26ZZbXLW/o0KF6T7RavHgxubi4UFZWFv39999m+d1f\ns2YNAf+VzCouLiY/Pz9KSEjQa8LP7t27SSwW09y5c3Uee/LkSQKEsnPW5CSNsF7VDMqn/GRkZJBI\nJFJ7wTl8+HCqX7++UZOE2rRpQ6NHjyapVEr+/v709ttvqxxjqxN1Hj16RK6urvTVV1+p3W+vObOZ\nmZkkFos1dla/+eYbEolEZmsbmzZtSoMGDaLNmzfT6tWrzfIa9ubtt9+mqlWr6nWsVColLy8vWrBg\nAT19+tTMkalyknZUiRuAYgB9y23/FsBP5bbFAKD27dtTnz59qHfv3hQVFUUikYgCAwMJAKWlpVn8\nTbOEO3fukFgsttjIhLEjwffv3ycAtGrVKqNed+bMmVS1alWlP4jz588nsVhMhw8fNuqc+li5ciWJ\n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\nh1GjRjF37tyA1O8eNmwYBQUFlbWRW7ZsyfHHH09+fr7fz+Xw9ttv06pVK/r06ROwczi0atWKfv36\n0blzZwYPHhzw8wGUlZXxj3/8gwMHDjBv3rygnDOQ7HY7Z555Jp06dap3O1f1Y90xceJENm/ezJdf\nfunzsapyFburzyVPuboW/rhWvoiUZDYBeA540JeDrFu3zqf1oZaYmMjdd9/NsWPHOPnkk7HbI+XH\nF92ys7PrLFCenp5OdnY2AJdeeinbtm3jjTfecOu469evp23bthx33HF+i7WmQYMGkZeX57So/MqV\nK0lNTWXIkCGVy6ZNmwbA2LFjAxaTp6ZMmQLA3Llzue666+jWrRsXXHBBtW12797N7Nmz6dWrF926\ndaNXr17Mnj2b3bt3hyJkqcOHH37IypUrfTrGsGHDKCsr46WXXqpc1r9//zonn/HV0aNHefnllxk1\nalTQJrB55JFHePrpp4NyvpKSErp27crtt9/O7NmzadeuXcDPGSzudkT44vTTTycxMZFVq1b5fKyq\n+vTpU2cOUPVzx1+Cca1iSRaue2brvDUW7DEmgVBeXm6mTZum8bJhpupY7C5dupiEhATTpUuXakNX\nysvLTUZGhhk3bpxbxxw6dKgZP358oEI2xvw6faGz8lUnnXSSmTFjRrVl+/btM+eee26taUlDqaSk\nxMTHx5tevXoZ+LUms0MghhdpmEFgTJ8+3QwaNMinYzjayISEhMrpdxcuXGhSUlICMkb3oosuMg0b\nNqz2lHy0Oeecc0x8fHzQJp8IlmDV250wYYI55ZRT/HIsh+HDh5sxY8YE7RmgoqKiOsfNqh31XBY+\nJLPujm2M1IfEJHzccccdJjk5udZc3I899pix2WwuH0ZZu3atAcwLL7wQyDDNrl27DFBrdpdvv/02\n4OMM/al3794GMAMHDqyVsASihE2MNMJBT2Y7d+5srr76ap+Pc+zYMTNp0iTToEED8/rrr1fOPvbV\nV1/5IcpfOQrL5+Tk+PW44ebrr782r776aqjDCIhgfN4/+uijxm63+63yxKFDh0yDBg3Mvffe65fj\nuWvnzp0mMTHRpKamGrDK9qnOrHey8CGZdedDLdIfEpPwsG3bNmOz2czjjz9ebfkvv/ximjVrZubN\nm1fv/meddZbp1q1bQB6Qqalz587miiuuqLZsyZIlJiEhwezbty/g5/cHx+QJjhI4VQWihE2MNMJB\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x104d4fdd0>"
]
}
],
"prompt_number": 6
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment