{ "metadata": { "name": "", "signature": "sha256:9b209dd9aa27f1f6f8909f2a9f45c1abba15304cdddfe3c208c5c711e7d67c8c" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Model checking and diagnostics\n", "\n", "## Convergence Diagnostics\n", "\n", "Valid inferences from sequences of MCMC samples are based on the\n", "assumption that the samples are derived from the true posterior\n", "distribution of interest. Theory guarantees this condition as the number\n", "of iterations approaches infinity. It is important, therefore, to\n", "determine the **minimum number of samples** required to ensure a reasonable\n", "approximation to the target posterior density. Unfortunately, no\n", "universal threshold exists across all problems, so convergence must be\n", "assessed independently each time MCMC estimation is performed. The\n", "procedures for verifying convergence are collectively known as\n", "*convergence diagnostics*.\n", "\n", "One approach to analyzing convergence is **analytical**, whereby the\n", "variance of the sample at different sections of the chain are compared\n", "to that of the limiting distribution. These methods use distance metrics\n", "to analyze convergence, or place theoretical bounds on the sample\n", "variance, and though they are promising, they are generally difficult to\n", "use and are not prominent in the MCMC literature. \n", "\n", "\n", "More common is a\n", "**statistical** approach to assessing convergence. With this approach,\n", "rather than considering the properties of the theoretical target\n", "distribution, only the statistical properties of the observed chain are\n", "analyzed. Reliance on the sample alone restricts such convergence\n", "criteria to **heuristics**. As a result, convergence cannot be guaranteed.\n", "Although evidence for lack of convergence using statistical convergence\n", "diagnostics will correctly imply lack of convergence in the chain, the\n", "absence of such evidence will not *guarantee* convergence in the chain.\n", "Nevertheless, negative results for one or more criteria may provide some\n", "measure of assurance to users that their sample will provide valid\n", "inferences.\n", "\n", "For most simple models, convergence will occur quickly, sometimes within\n", "a the first several hundred iterations, after which all remaining\n", "samples of the chain may be used to calculate posterior quantities. For\n", "more complex models, convergence requires a significantly longer burn-in\n", "period; sometimes orders of magnitude more samples are needed.\n", "Frequently, lack of convergence will be caused by **poor mixing**. \n", "Mixing refers to the degree to which the Markov\n", "chain explores the support of the posterior distribution. Poor mixing\n", "may stem from inappropriate proposals (if one is using the\n", "Metropolis-Hastings sampler) or from attempting to estimate models with\n", "highly correlated variables." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "from pymc.examples import gelman_bioassay\n", "from pymc import MCMC, Matplot, Metropolis\n", "import matplotlib.pyplot as plt\n", "\n", "M = MCMC(gelman_bioassay)\n", "M.use_step_method(Metropolis, M.alpha, scale=0.001)\n", "M.sample(1000, tune_interval=1000)\n", "Matplot.plot(M.alpha)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 1000 of 1000 complete in 0.1 sec" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Plotting alpha\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Informal Methods\n", "\n", "The most straightforward approach for assessing convergence is based on\n", "simply **plotting and inspecting traces and histograms** of the observed\n", "MCMC sample. If the trace of values for each of the stochastics exhibits\n", "asymptotic behavior over the last $m$ iterations, this may be\n", "satisfactory evidence for convergence. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "M = MCMC(gelman_bioassay)\n", "M.sample(10000, burn=5000)\n", "Matplot.plot(M.beta)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------61%--- ] 6166 of 10000 complete in 0.5 sec" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 10000 of 10000 complete in 0.9 sec" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Plotting beta\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ngyxbtowLL7yQu+66i/79+zN+/HheeeUVBg8ezIABAxgyZAjvvvtuXv0iwuLFi/nxj3/MtttuyzHH\nHLPy3M9//nNWrPga6ABOAPoC/YA/Av8AJgFHAwOAb8t7IwyjyUi0yk9EegJ/A76H84byF1W9QUTa\ngFOATzNZz1PVx/zlo9yWVJXJkycDjpDUu3dvttxyS/r168fDDz8MwPLlywHo0qXLyuOrr76aW265\nhV69erHTTjvl+UZ58wJ06uTIkFOmTGHBggU8/fTT/OMf/+Dhhx9mgw02YPbs2SxZsoQ11lgDVWXb\nbbfliCOO4IILLsjpg2EYRhDffPMNkydP5tlnn+Wkk05i6tSpXHrppey9996MGjWKr776il122YV9\n9tmH3/3ud7z66qvccMMNACxatIhnn32WlpYWJk6cyG9+8xvuueeenPrdZ+W0adPYeOONGTJkCM8/\n/zyDBw/2+KJOBj4Gpma+LwS6AzcCf8ARqAzDSJOkYROWAb9S1SkisibwqohMwBGurlXVa4vtiIiw\ndOlSDjjgAJYsWcK4ceNYb731OPLIIxk6dCgtLS307duX66+/noMPPpgjjjiCww47jMMOO4yRI0fS\nt29funfvnlevN6/bDsC2227Lhx9+yH777cc222yDiCAiKx98q6++OieffDJHH300Tz75JHvttRci\nwtFHH81JJ51U7GUahtHgHHXUUQDsscceLFy4kAULFvDEE0/w0EMPcc011zB37ly++eYbPvroI69J\nEYCvvvqK4447jhkzZiAioSuUBw0axCabbALAjjvuyMyZMxk8eLAnx/eBfwNnACOA/TznbEFOuXD9\npyx8QnOSSKBS1bnA3MzxYhF5G9g0czr+Mr0Ajj/+eI4//vi89GOOOSZHpQ1w2mmncdppp+WUDcOf\n12X11VfnmWeeyUs/8MADOfDAA3PSrrvuuoL9NwzDCMJ9ibv33nvp3bt3zrmXXnop5/tvf/tb9t57\nb+677z4+/PBDWltbA+tcddVVVx63tLQEaM7XBl4HHgf+BxgP3Ob2qMgrMQphglRzU7QPlYj0AvoD\nL2aSTheR10XkNhFZO4W+GYZh1BWqyl133QXAc889x9prr0337t3Zf//9V5r1gJXuDd26dWPRokUr\n0xcuXLhS8zR69OhiewF8DqwAfgT8DscECNANx/xnGEbaFBUpPWPuuwc4M6Op+jNwSeb073CM9Cf7\nyz33XBttbc5xa2tr6NuXYRj1SXt7O+3t7dXuRtUQEbp27cqAAQNYvnw5o0aNAhzN01lnnUW/fv3o\n6Ohgyy235MEHH2TYsGFcccUV9O/fn/POO49f//rXHH/88fz+979nxIgRgfH5XPeEiF4Ac4ATcZzT\nAa7IfJ4A/CewOvA80DXyehYt+oInnngi9HzUOT/rr7/+yoVHhtGIiN+Ju2ABkS7Aw8CjqvrHgPO9\ngIdUta8vXc85R7niCn8JwzAaFRFBVevexiQimvRZGUY5/WwmTZrEPvv8JwsWTEqhtjdYY43/pnPA\na/eCBRMAWGutfWPVtGzZp+y008Y888wjKfSrdjEfqsYi6fMr6So/wTHET/MKUyKysaq60eIOJbu0\nxDAMw/BQP5NtP5YsCdNAOXPMggVxNVSPsHz5jan0qpapn7E1ykFSk98Q4BjgDRFxjfK/AY4SkR1x\njPcfAD9Pr4uGYRiGYRi1TdJVfs8R7MiebO8Eo2xccgmMHAn9+lW7J4ZhGIbRPFQ0UrrtR1x+LroI\nbrqp2r0wDCMM2++tcbGxbW6KWuVn1DYmuBpG7WJ+No2LjW1zUzN7+RmGYRiGYdQrJlCVmYULwfZT\nNgzDMIzGxkx+ZWbgQFixAt5/v3JtmsnPMGoXi1XUuNjYNjcmUJWZ996rdg8Mw6glbLJtXGxsmxsz\n+RmGYRiGYZRI0wlU660HH3xQ7V6UFzP5GYZhGEZlaTqB6osv4K23Ktde5B6mRkPR0QF33lntXhi1\njsUqalxsbJubivpQmebEaGTeeQeOOgqOPLLaPTFqGfOzaVxsbJubptNQGYaRZcIEeNQ2jjIMwyiZ\nuhaoXnkF3ngjebn334ennkq/P0Zzk7YG9pNP4P77k5e76ir47rt4eUeMgAMPTN6GYRiGkUtdC1SD\nB8NhhyUvd9ZZsNdeyct9/XXyMtXATKuNweWXw6GHJi93zjkwbVq8vObjV3nMz6ZxsbFtburah2r5\ncsfJvFKssQbMmAHf/378MiIm4DQLaQsna6yRbn1BmEBVeczPpnGxsW1u6lpDVUlcoejbb6vbD6N2\nSVtw3njj4svG7UsnewIYhmGkQkUfp8W8DX/5Zfp1FoM7QdkbfeNzzDGOs3Y5+e47J8xCFD16lLcP\nUPj3/N570LNn+fthGIZR7yQSqESkp4g8JSJvicibInJGJn1dEZkgIu+KyBMisnZQ+aRv8C++COuu\nm6xMuXAnv6TXYAJY/fH3v8ODD5a3ja5d4bLLovN0roBBvtDv87XXYPbs8vejmTA/m8bFxra5SfrI\nXgb8SlWniMiawKsiMgE4EZigqleJyDnAuZm/kvj888J5KiWwFNIm1BLms1U6lbiHb78dfd79bXd0\nlM80V+j/5913y9NuM2N+No2LjW1zk+gxrapzVXVK5ngx8DawKXAwMDaTbSwwMo3O1ZJgUE8CldFY\nrFhRvroLCVQXXli+tg3DMBqJot97RaQX0B94CdhQVedlTs0DNiy5ZzVGowhU331Xf2bId9+tfJ9r\nSZhfvrz4sp98Un/jbRiGUY8UJVBlzH3/AM5U1UXec6qqQA1NR/kUM8EU60NVDaL6uGxZ5fqRFrNm\nla/uO++E8ePz02tpnEsRqObMcT5r6XqaHfOzaVxsbJubxG6vItIFR5i6XVXdOM7zRGQjVZ0rIhsD\n84PK/utfbbS1Ocetra20trYWaCtp7+LRqVNyM0qxGqpa0w7UWn/iUM4+H3WU83s44ojc9FoSQEoR\nqNyI6S+/DLvskn8+7Xvb3t5Oe3t7upWGICKjgBHAfFXtm0lbF7gL2ByYCRyhql9lzp0HnASsAM5Q\n1Scy6TsBY4CuwCOqemY5+21+No2LjW1zk0igEhEBbgOmqeofPaceBI4Hrsx8Bm6YMXhwVqCKQ7km\ntTQEqn/9C9ZaC7bfvrg+vPMO7LgjfPNNceWLxZ1AVetHuKpGPxtFoHLjplUiSCg4L0o77NDKOus4\n38v8tj4a+BPwN0/auQQskBGRPsBPgD44fp8TRaR3RqP+Z+BkVX1ZRB4RkeGq+lg5O24YRuOR1OQ3\nBDgGGCYikzN/w4ErgH1F5F1gr8z3ilDMZFvMiilXAHMn2t13h+OPT16Py6GHVjdIaLECw1tvpduP\nWqCcwtOyZfH31fPj9qsYp3R/3LRC/yevvJK8jSBmzKhcqBNVfRbwR6oLWyBzCDBOVZep6kxgBrBL\nRqPeTVVfzuT7GyktqjEMo7lIpKFS1ecIF8L2Kb07lWGLLWD69GRlXA3VRx9B377O8YIFxfehnFqX\nKAHBPVfsUvztt3eEqj59iutbMdSLhiqozAknOI7hTz5ZfF9K0VC5hJms3Xs7aFA6guWiRYXzlJmw\nBTKbAC968s3G0VQtyxy7zMmklw1Xa2fmocbDxra5qehefuWgmMl2gw2KF6iuvRZGjHCO62HbDhGn\n715TH5S2anHp0tL7lYR6EaiCePzxePHUoihGoPKPd6VMmLVkRlZVFZEaMt462GTbuNjYNjd1L1BV\nClcA8a6SiyNQ1dIE46WWfIQahXKNdTEClX98GyXsRwzCFsjMAbyb6PTA0UzNyRx70+cEVdzmcQCN\ns6jGMIz6otRFNSZQxSRoQipFQ1UJk5/3M00NVTMIY59+mrxM0H1JY5xLMfkV0lCl/TusgReIsAUy\nDwJ3iMi1OCa93sDLGS3WQhHZBXgZOBa4IajitiQragzDqDv8L0pJF9XUgdEqmmpuPVMDk0di7rvP\n+awngaoa93nVVdOpJ42+pxEp/fTTS6+j1hCRccDzwA9EZJaInEjIAhlVnQaMB6YBjwKnZlb4AZwK\n/BV4D5hR7hV+FquocbGxbW5MQxWTtDVUlSBIO+Gu5qonE1ASoWT6dGePvEMPLa3NlpbkZYL6WYpA\nlYb/k1v2X/8qvo4kVFL4VdWjQk4FLpBR1cuAvC2pVfVVoG+KXYvE/GwaFxvb5qamBapaMi0FRUqv\nJZPfVVfBrrvGz19PAlUcPvoINtsMzj8f7r238G/nootg7bXDzxcztuX6vZbz/6ABTX6GYRhVoaIC\nVS0JSEkJEqjiTB5BeR59FGbOTKVbKznnHPjhD3PTojQc9SRQFbrPH38Mm2/uXGfcrXUuuSQbLyno\n/qSlfUxDwEhDQ1Up3OtduBDWXLOybRuGYVSTqhmtvvzSefiecEJ4nnK/7SaZbNI0+R14ICxeXFzZ\nOPiva+bM/MCNjeRD5Q2QmtZvJm2BKmmYDi/1OFZrrQXXXFPZtusF87NpXGxsm5uqmfzeeMP5HDsW\nxowJzhNnMpg3D26+GU49NX7bQavfClEPPlT+a3Gv89RTYcKE3PtZTxqqML74wvkdbbZZNi2JQBX1\n+0pboCpli6G0gowGUc6Xln//u3x11zPmZ9O42Ng2NzUmEgTz739HP/jvuitZfcU4+wattKo1gcqP\ne33eEAC1EDbhlFPg8svj5w8b+z/9CYYNi5c3KUmc0r/7Dg44IDpPtcx2xZR98UVHWC0G86EyDKNZ\nqXGRwOGTT9KtL6lQoepowvzUmkDljzUVRC0IVLfd5mgV4xI2SX/9dfy8Lh0d8MEHxbcZxPz58Nhj\nwb+RqHoKtVHpKOcuu+0Gl+WthTMMwzCiqJpIkOabbNIJJ+lEdc89sNde2TJuuZdeCp7UvVTzjT1K\neEoiUN15p7NdT5qkYXJ0BdokCwXuuAO23DJ+3UlYuDA/Le7mxFGUU/gN69dXXxXXnmmoCmN+No2L\njW1zU9NhE1zSfkNPIlB99ZWjgfCW/eyz7Pf586FXr+Cy//VfjjkIYJttHFNK1FL9cuH6q0FxGqpn\nn8295jTGI0kdYZN0kNBTaEKPu6F1EoEq6lqqtcpvyBDHKXyrrYpr0wSj8mF+No2LjW1zU2NGq+Jw\nH/5Ll+ZO/GEkEajWWSff5OiNoh1Vx3XXZY/fecdZ2VhO4myIW4rJb9as4voVRJL20xSoSmnzhRec\nRRSVJs7v9Isv4Kmnst+XLoUHHyxe+C32PpogZhhGs1JXApVI7hJ5L21t8L3vxTNNJTX5RZn1kkxY\ntRCHy+2Dq3V74QVn8o3CnSS9q+mi+NGPYI894vWjFCotUJ1xRnSYjyDS8LOLc68uvjhrlk5C2P0y\ngcowDCMZFRWokgbFDCJMuLn44sLmnHfeye1HpU1X5SYsbEIQZ57pfA4eDE8/HV2vv55C1zxhAjz3\nXHSeWtdQxW3PS7k2R47zGwu7F1Flx4wJ3yew2gFJGxnzs2lcbGybm0Q+VCIyChgBzFfVvpm0NuAU\nwF2cf15am4sGPZCDImFHPbiPOsrxI7nwQsePKW65sHxep/QkdSTNWwpJfXrSjknlbeORR2CffWCV\nVXLzlEND9d576cWhCiLuqjxwArdecUW8lZdx6itEWJiHqDpOPLFwvTvsAK+/Hr8fpqEqjPnZNC42\nts1NUg3VaGC4L02Ba1W1f+Yv9Z3avZNC3K1FXO6805nYvEJDUg1VlMARdu611/LTonyaykFUe509\nonRSs1SSPo8YAe3t+enlWOX37be5E/p778Wrxy/sQfRGx2GmNW+ZX/wCLr00Xvte2tqSawShuM2c\n/XiDj5YiCBqGYTQjiaZSVX0WCHKtrth7aZBAVeitePny4CjhcSeLG24IPxdWx047xau70hNWMQJV\nqVqHoDGLK1C9/TZce23wuSiT39dfw9Zbw6JFwee9BK3SDMrntud1/vbiHcv//d/8tDhcfHG+T1uc\nOjqH6JqTtH/nndnjuALVsGFw9dX55QzDMJqNtHyoTheR10XkNhFJJTDA008Hb12R1OTnOqkHmemK\nNcMUMvndeGN42ThpxRLHh8pN82o0kmo3ksY2KuW6r7suPBJ+lEDl+galac5MYvJz+fBD57Nr18L1\nu+UHDYqu96yz8hdnpKGhWrIkexxXoGpvh3vvLb3tZsL8bBoXG9vmJo04VH8GLskc/w74A3ByoUKF\nJqfW1uD0pCY/l6CJtVxO6aefXlr5OCxe7GgUTjmluPLrr589LnfE91ICi4bdn5kzc8NSuLi/qyRa\nyCjzXqE0bxtRv2nvPR7uN5r76vHGDQvi+uvhv/8bevQIrt+lkFN6HPzlly2DLl3C85uGqjDmZ9O4\n2Ng2NyULVKq6MuyliPwVeCgs7wsvtNHW5mgPvve9VqA1cXtJBaqgN+0gDdVrr8HIkfDRR9H1pe2U\nXqwG5YEH4Gc/g6OPho03dtKSxKE68MBgQaCjw7nH3lhbSUlTQxWW79Zbs1u9eK+3nL4//vsURxDt\n3Dnf5Pz448naDfq9+TVSaWiovPjv46RJsP32sNpqTlp7e/BLz0svtQPtK8sYhmE0CyXrJkRkY8/X\nQ4GpYXl3262NM85o4/e/b2PbbVuLaq9YgSpog2DvRPWvfxUXuHL6dDjnnHh5y2HyW7AgGy4ijnbA\ne+2uWczbh6uuKmyeSsPk5zUvFdNWofhJpYbGCKp/jTWyx1MDfuVBbblxq+L0I8wZ3Zu+fHlw2WJW\n+fnxXrP/Pu68c+7/3rBh2e/ecrvu2gq0AW0MHNgWv3HDMIw6J5FAJSLjgOeBH4jILBE5CbhSRN4Q\nkdeBocCvoupw40i5W7IkJakPlct222WP3WXgBx8M48c75V94obj+jBnjCCHFUuqE753MkqwOCxOo\n3n67uP5EkdZedO++m71eN6aYF5F8k1/cuuOw7rrZY/fejRoFf/pTOm3FyeP+/v1503BK95JUOC+1\nvWbC/GwaFxvb5iaRyU9VjwpIHhW/fPaBW+wkGyRQhb21Q3Zi8C4Jd3nuOceXaMAAGDcufh9qweTn\n4p34/vGPwu0V0lDFIWn+uNqoIKZNyx57tYz33JM9doX0IJOfv6+l+kv5Of30eJH0SxGogjRU/rxB\noR9KIcp06qY980y6bTYL5mfTuNjYNjcVjZQ+cWI2uGaxb7IdHc7D3ruSLizaMyR70y4Gt+zJBd3w\nnbx+AarQti+FKNYJ2CtQ+dP9JNUm+vv0618XLvPii8Hp3vsVJjR89VV+2+51+GNRxR3rUoSsoPbc\n65g7N165V1/NrwOCNVQDBzobIUe1D/DKK/Ha9hK1mGPy5Pw2TENlGEazUlGB6s03s2/zxWpm3Ae2\ndyVdHA1VFEmja3snDfc6RsXU0912W+73IM0ZOL43b74ZXk9Un+NoRTo64muo/Ev0w/J/+22wkPbF\nF9H1A+y2W+44vvWW087qqxcu67bpNfm5fRw9unD5uBQSsqJMYKrw8cdw333h9fuFpKD0IIHq1Vdh\nzpz8dD9J9vqL8/ty7/tLLyWvwzAMo9Go2ubIpZrKvEQJVIUo9aGfRDBUhQ8+yE8LYuzYfBNeEEEr\nzVTDhbFNN83mCRKoggSiuIEmV1sNzj8/nlO6t99B57ff3vGTilqi78dr8gsLm1DKeLvBOl1WrMit\n310Z6TVLe/tx3HFw6qm5dXz8cX7E9yj8+1H6Wbw493tSp/SHHsoeg+O35scvUIW1Z9qqYMzPpnGx\nsW1u0ohDVRTFPmyDypWqoSpFuAsqu/nm2YCOXubOTeY4Hoeg63vzTejbN9cU5jotb7VVtt2gCfGO\nO/LTkqys9Po8RRGl2Tn/fOdz6dLkzuXFrPKLY96bPz8/TxxH8LFjs2n//Gd+3kWLnHNBv+Gga3BD\nFYRdV9TiClUnqvnIkdC7d3Ae9zcRpVUs1Q+y2TE/m8bFxra5qZqGKs2HcSkClUjyvgSZ/AC23RYu\nuQR+/vPgcldcEV1XUN+KOec30UG+xua003LNRF4ToJ9S/bxOOin6vF9w8N6npGPjF6juuivax65Q\nPS5xfeS8n0Hnwli8OJ5TujfNb36G3G1g/GVVHX+2J58M74erEQyq2399cX3wDMMwmoG6E6iChKdK\naqj8TJyYPZ4+3fkeVl/caO0nnlh8f7x1rr12fpr7uXQpPPJINu0//xN+/OPg+pJoqFTzYyJttRX0\n7AlnnplNCzL5xV2G713h58/jN/ktXBiuNUsy7n6hMuh3lVSg8kYyD9JeBpXt3z+btu66+VH5vf8L\nhSK7BxG0ibj/u5unGEHVMAyjUakJgSrJxPbcc9nj3Xd3PqPME+UQqKLyB73ZR5ULSvv888J9iOM0\nHJQWpF1Tdfy1whymk27Wu/XW+WmzZzvBU138Ucf9/XHzBAmh/hWBUSY/cISquCQZuyR1FKo3rnBy\n+OHZcl99BTfdFN1OmIN8GO6522/Pv/cmUKWD+dk0Lja2zU3VfKi8D+sVK8L9USB8AlhnHeezko7l\nbuTrKErVULnOzRdd5PgTRW0rknTyDtP+uBqjnXfOX14/cKCz1Uih+l3iOKUXWh3nEiR4xzGFhpll\ng/KGBUedPx++973wvvkpxuTnLRNHmPPmX221/FWi3mt9/PHcgLZB/fNqyfwCrP++PfFEbvly7Y/Z\n6JifTeM8Wsa8AAAgAElEQVRiY9vcVE1D5X27TfKmG+eBPW2as3luHJJuILvmmtHn09BQeSl0b4LK\nB127e51hk7MrtAVd3w9+EN0HP/6Vh16torc/Qf3wE5Tmr7+Qhso78UdFlvemTZ0KG24YnjeuFjCo\nD0FlPvsMvvwyOo8/LWiFp//3cu210fV5w1LMnp17zl/XT37ifLpmRe/5c8/Nb8cwDKOZqJpA5fXL\nSSJQXXpp9jgsmvN228Gee+bmiSKpOacUk1+ctsoRv8fVPgRNmKr5Gw17iSNMeM/5+//gg9HlvP2I\nMi8m0VD5NaBB9UXhXSEZt1wpGqphw2CXXcLrGz06V3MYJlBFaVuD+rfaatnjyy6L1lC5bLSR8/n0\n09m0K6/Mr9swDKOZqJpA5Z04i30IR02s7lt0nFV+aU8CpZr8kpz3bscSRadO+XXFXb2X9P7EEQi9\nwoC7F2JHB/z737n5gu5ZKRqqQgQJHYMH50YuL1TWNY2F9TEs3V11GcRJJ8EFF+SWC7rPSQUqv0Yy\nzn1zV5EWE3ndMD+bRsbGtrmpmg9VkpVjYaQVBb2QOcafFsepN0l9fpJcV58+hfO6+f0aqrhahaQa\nvKTjMmNGtqzfPOfdBHnXXZ3PKIHq5pvz08JMfkFpQUJH3I2z3TLXXx9+Lm56UB6/pi0NDZXfP8+v\n2evUqTiB1AjH/GwaFxvb5qYmTH7lpBSTX9CEFaeuUjRUHR0wfnzhviVl2bJ8gcqlUER2f5lhw6I3\nkw67b956vBsmeyd6/z3ymqRc3GjvUUT5AgW1G5b2/PPBZaPCJhTqT9wyQXm8/Qu6z3G0jn5hc+TI\n3O/e46gFEYZhGEaWqglU3bplj0s1+UVpeWrJ5BdHQ+WPqZVm38aNCw4h8Ne/hpdZbTX4xS/y08P2\nb4PSNmz2Cw9BQuhmm+WX8xPHFyisD94yQ4ZE5/PimsKK8aGKYvr04HJBAtUbb4TXEyZA7rNPcH86\nOqJfKoYODW/DMAyj2aiaQLXuurnfH3sM/vznZHUUmri/+Qa6di1cT9IJtxSn9EJpcR3AixFa/v1v\nOPvs8PObbJLfXlDUdYD33w9O//TT5H1z7/+yZU6ASy9xFiy4fXZ9sbxp3vr9RPXztdfitenluOPC\n8wetdAyrx8933zmfftNkGosX/PUkCWcSdc6t28jH/GwaFxvb5qZqPlT+ifKssxx/mSBtSBiFVnv9\n5Cfw1luF6wh68IcJDHEo1eQXp65iJtNCgmNHR75AE0aYaemVV2C//YLPFRI0b7ghdxWnqhNOoFA9\n7nevdiZslV9QOREnTMLaa8MGGwTnLdSHQufOO6/4eoI2eg7TUEURpKHya6H855LGQPMGbzWCMT+b\nxsXGtrmpmUjppbzNhpX94IPiy4e9ZJSqoSqkgYorUBVDIYFKNdcJvFDeMMKEvSlTovd/++ST3HR3\na5xCbQcJCl7TaRwNZL9+MHx4/Ptd7MIEL3HNzV6BqpAPVRRu2f/6r9w6vfX4TaVRbfj7/umn4ftY\nGoZhNDqJHskiMkpE5onIVE/auiIyQUTeFZEnRGTtqDpcwgSH1lZ46KG4/ckt6z8Xx6F2/Pj88q+/\n7my9EUaQ1sQlqcmvUJ40BapCdXnPb7lldN4oISVqEn7vvfB2//nP3PSwhQv+tl2tWpgjelhf/enL\nlqUjUMWlkHB+zjnOp39rHrdssQIVwIQJ2bSwYKcrVkT/D/nvnxtV3jAMoxlJqqEaDQz3pZ0LTFDV\nrYF/Zr4XJEygevppeOCB4HN+Cpn8Cvl4hPXlmmvC86rCIYfEqzeobKE0v7DmPf/AA7lmqqTEMfm5\nFNLuFaOhAvjww/w0d7Nj/7mweh5+OPe7K3h5+/TYY9njMJOfX2BLIiSlIVCtskp0Pe4YeAOfupx7\nbnTcqkK4m3r7tVBJVvmZj1RxmJ9N42Jj29wk8qFS1WdFpJcv+WDAXe8zFmgnhlAVNbn7zyXZi81l\n8WKYNatQLxySTgw9emQnu+7dc1fORWkd4vhQHXlk+PmRI51wA97tQpKQRENVSl1+TZOX4R5xfOlS\n6NIlPG+YQOVflej2Zdq0bNq772aPC23E7frZJTE9B2naXOJuxrzGGslMft7rCDOHJuXLL8Od0k2g\nKg/mZ9O42Ng2N2n4UG2oqpmNS5gHbBiV2cUfpND7cPZPSMUIAmH7osUpX0j7s9ZasPXWzvFNN+XX\nVYpA5Y8U7vcPKmUSS6KhgmjBLaoud1VaITbfHG69Nfx80DgEaR2D+hLHh8pff1icriCOPTb83Jtv\nxqsjKHp9EEEaqmIIKv/tt+EmPxOoDMMw4pPqKj9VVRGJeMy2rTyaNq0VaPWUzea677547aW1551/\nwo3SMKg6piJ3Yt9hh+A8YWULpYV9d81h7uRaDpOfv+1vvomftxjmzk2uaYm73YpXYD/mGLjzTsc3\nz79Szl9PJYWElpZkGqpvv02272VcvFpC/+rI5AJVe+Yv3nY9hmEYjUIaAtU8EdlIVeeKyMbA/PCs\nbSuPXA2Pi//NOOyclyin9CQErVaKYvny7CSUJGJ2Kav8ttgi23axJBWo0sobhd9fzkuhbWKi+uIX\nPFy/qyiBShUuuSS8P2kT16ncvZZJk5y/pBx9tLPx8hlnhPejXz8n7IT3njz5ZDECVSvui5IzVuZP\n4sf1sTHzUONhY9vcpCFQPQgcD1yZ+bw/TqEkYROKcUpPgn+SDdtuxD3v1VD5+5B0lV9cDZVLKRqK\nQgJVku2A/P366KPk/SmGuBqqOIJnkPAatSAhbeKa/JIEng1CpPACjqC22ttLM/lFaTibGZtsGxcb\n2+YmadiEccDzwA9EZJaInAhcAewrIu8Ce2W+FyRJvKVym2G89ReKw7RwYfECVZyJsdB9KSQoFArp\nEMXXX0ef9+Lt5yuvOP5QabPRRrnf11qrcF9cCgXzDCLuIoa0SOpDVSxBAlXQ79b7Cc5vLUnYBD+r\nrhq/j4ZhGPVOIoFKVY9S1U1UdRVV7amqo1X1C1XdR1W3VtX9VPWrOHX5J4lSNFSlClzuxNC9e25d\nW22Vn/fss52JJkygiiKOhqqQQHXZZdHtRvUnrrN4HNx+PfkkPPpoevV68Tugd+lSvMkviGo7VS9f\nHr5XoJfrry+9rSiBSiR4JWEhgarQ/QsTgA3DMBqRmoiUXixpmvy23hrWXDO3zl69gvO//nr4RFPI\n5FesD5XLvfcG1+0SdU++iiXqxsPt1wEHQJiW+3/+p7Q2/PeipaU4p/Qwqi1QFfLVS4s4Jr9NNnGO\n0xSoqn1/axWLVdS42Ng2N1Xby69QbCAvlXBKd80v3olnq62yARC9dO4MPXvm9sFbl7c/a67pxMQC\n55oLCUz+7xMmOE7FLh9/HH0tURNn3ECncXCvI2xPP0i2L2MQ/nvRqVO6PlTVnvDHjq1cW34HeDeY\nqsugQc5vLYnJr5YFKhE5DzgG6ACmAicCawB3AZsDM4EjXI16Jv9JwArgDFV9olx9Mz+bxsXGtrmp\nmoYq7ia8kN6D+aCDgtPdaNGquVvOhAknLS3ZiSbKBLXKKrlxllTzNSf9+zsb8wJMn57vx3TMMcF9\nKMbkl4ZW0KUSk2VcgWrq1Py0YnyoGpUgDZU33lmYU3qpAlWav7ckZIIP/wwYoKp9gRbgSEJ2dRCR\nPsBPgD44O0HcLCJVezYahlGfVO2hceWV8fOef35welKT32qrBafPmAELFjgThNcfKKz+pUvDBaqp\nU7MTzVlnwYAB2XNBAhVko3pvu21we/vsE5weRCMLVGEmvzvuyE8LitZ+ySXlieNUD0SNvXeT5iQa\nqnnzws/566owC4FlwOoi0hlYHfgYZ1cHVy84FhiZOT4EGKeqy1R1JjADGFTRHhuGUfdUzeTnpdCD\nd/Lk4PSkJr+wuD+rruoE6Jw0KZ5ZbPnybF2Fom17J6T33y9uQvcLB+PGBQsRQf3x9y0tKjFZ+vsb\npqGKy0UXhft7FUOvXjBzZnr1FUPfvsEaOi8i+SEM1lsPPv88Nw9EB/Y89VS4+ebs99mzo9utloZK\nVb8QkT8AHwHfAI+r6gQRCdvVYRPgRU8Vs4FNy9U/f6yizz//nFGjRqVS96xKL1U1crA4VM1NTQhU\n779fXLmkk2uYX427xcb8+blCV1j9K1aEC1QAzz2XPfa/4aehIfnFLxyNWhBR9yTNyNW1ZPJLQpoa\nqkWL0qurWM48E045JTrPvHn5Kzy7dIFdd4UXX4w2+XmjqP/Hf+QKVIWoloZKRL4PnAX0AhYAd4tI\njvG88K4OlK33/sn2008/5YILLqej4+QUal+VFSsi9kUyyooJUs1NTQhUO+9cmXYeeyw43fWhglzf\nrqjJO0qgcgUXkXyNV9Bb+6xZyYTKKEfwsD7H0WQkoRLah7gmvyT8/vellffi1fAkpaUlHeEuzC/Q\ny+OPO07nXsJCf/hNfl27Zr8HbbMUxOqrO76AVTT5DQSeV9XPAUTkXmA3YG7Irg5zgJ6e8j0yaTm0\ntbWtPG5tbaW1tTW1Dq+66vdYtOjq1OozDCM57e3ttLe3F12+JgSqYpk+PVn+sEjgYZvARk3eUU7p\nQflcgibRX/3K+YtLIX8YP4cfHuxTlIRjjoH//d/sd3ey7NSpfMKVf0KeM8dx9I/i1VfhqKOyfmm1\nyFprwYknwh//WFo9J5wAG8bYinzddfN/F16Byot3LKM0mmeeGR4fa8AAR0tbLZMfMB34rYisBnwL\n7AO8DCwheFeHB4E7RORaHFNf70z+HLwClWEYjYf/RSlpCIy6Xsni+nDEfRMO0wiECVRRxBGovBHV\nC/UhCUkFqp/+NPn1+fHvA+fe87RigQXhH9c4kdz79IG1147fxoEHJutTFF7zWCHmR+x4WQhXo+ve\n++OOi87f0eH4Px1+eDYtbD/KuP9LcX5P1dJQqerrwN+AScAbmeS/ELKrg6pOA8YD04BHgVNVy9d7\ni1XUuNjYNjcVFajibgYL8NBDhfN8+63zGTcCeJgws2JFPGf0//f/ssfuJBQlUKy3Xnbi6dnTWa1X\nDYEKSheowvqQZEyLbcNLIQFOJPceFxKY1lwzeb/CGDw4P23KlPy0BQsKr5CLg3svCsWz6uiADTbI\nFby8v3nvKr+4WqWwcd9kk+R1lQNVvUpVt1PVvqp6fGYFX+iuDqp6mapuparbqOrj5ezbRRddZL42\nDYqNbXNTswLV8OGF8/gFqb32StYfl9Gjgydqf1rPnvkTcKEI1O6k1bmzM4mlIVBF1RF2j9MWqKqh\noYrTXqdOufenX7/o/HH9goolrP5ShI24upMf/Si8rbCQCHHrDhuHY491fKiS1GUYhtEIVFSgSjKp\nx5mo/YLFf/93sv64TJkCH32Unx60bN9NiyNQiGSvuUsXp2yxAlVcwSWOYBikSYnD0KHZ47fecj7L\nqaHyT8jXXlu4jHdfOijcvzQFzSTCZSUEqn/8I7ytsA2+4/YrrA+rrOKE9LjjjvBwJ4ZhGI1IVTRU\nG2yQTn3+h3qhCW277XIdq6PqgnynXK9pJE6bXg1Vly7xNVRBWo1SBCo/QZs+x6G9HfzhciopUN1+\nO3zxhXP8yCPBZUTgwgtzv0eR5nY8SWJSVUKgKtSW14fK1byWaqZbdVVYf/3wILWG+dk0Mja2zU1V\nBKoDDkinvjjCzaae8HydOuXui+cl7C3eX39QROkwvBqqzp2dNuJMNKXcn7iC14knFle/X6NTSYHK\nG+nevUfPPpubRwQOOyz3exRRAtX3vle4j3Hr8lNJgSosv9vflhYnqn+SusPyuQ7z5fxd1DvmZ9O4\n2Ng2N1Ux+cV52MYRDOIIVN44OlGTRVKB6j/+w9kSZ401wuv0C1QrVsDGG4fn95YLSjviiOLKQv61\nr79+4bqC8I9dnHHyx0AqRPfuzmdHB+y4Yzb9t7/Nz9utW3R/3O/+fC5RK/MGDsxf3RhF2O8raNVh\nHMElzGE+LQ2V+9vs1s3RLPnNpUm57jrYbz/nuJy+dYZhGLVIRQUq9404jkAVZ9KII1Bttln2OGqy\ncB1pvbgBNF97LVu/6wjft68TJDJqQvZuSuv6UBXrqCsSvprL2/c0TYNxysUZy2eeSdbG5ps7n6q5\nWp84YQnCBKof/zg4f5QPVZcu8JOfFG7TJWxse/XKT4sjuKyyClxwQfx2wvD7/bm499YVNlVL01DF\n2WXAMAyjUUlNoBKRmSLyhohMFpG8oHiQfeCWU0O1zjrheaImi6BI5a5A1b9/brpXy+Tv51prBdef\nRKBSzZ/oRYIFigMOgCVLwvsTRrEmGb9mK057xbalmlt/UFuFYk5FRbSHwma6JIJB2Nh6taQucQSq\nL76A3/0ua+o86aTcsgsXxutX2P0fMgS22QZ69Ajeyy8Jv/td7ibeJlCFY342jYuNbXOTpoZKgVZV\n7a+qgUaeJAJVp05OZOwo/A9/EXjjjdw07yR3yCHhdQVNTj/4gRNLyls/5Ao2/mt56aWsac57zt1q\nJI5AFTSpdekSfN+i7uWNN2aPkzrwh9GnT/z2k+QJIkiz5V1puGyZo83yC9FeCsULKyRQJdEGhQkj\nf/hD/n1LIrgMGRLcl7h7CYZp4fbZB95+O9dX7NZb49XpH9MLLsi/RiMY87NpXGxsm5u0TX6R03SY\nQOV1NvayySbZ41VXzT8fJCT06BGe5/LLw/ummu/rc8898OGH+Xm9258EmZjuuss59q6ma2kpbUl6\n587xQiJ4CfMbguSaCLcdv/BSDoHKXQn5wANZrYzLbrtlj11hKGo7mlIEqqRCZ5jwNXiws3VPnLxR\n9fpNd4sXxysfdo1Bm4XH3Z9ws82itzOqZlBPwzCMapC2hmqiiEwSkZ8FZRg+3NEw+CfYOKujvBPp\nygYTaF3cVUwAI0cG53nppdzvXbsGO51HCVTutS1bBgcfnE1vaXG0Z3FeXlSd/dC8hG27EiWseIUJ\n/71yv48bV7g/Xrz3Q7V4823PnvlpLm4EfICf/zy3nqC6CvmxhfUBoiOlh7UXhvce77gj3Hxz8DkI\nFjhOOy243n79nN+P68+l6mhb464GDdNQeQXuoN+IS9DKWNXiA+kahmE0ImkKVENUtT9wAPBLEdnD\nn+Evf4FHH82fhP2mixdeyK88zsS2/fb5ae4k4Z0477svPF8UQZNz2Ko3v5C4ySYwbBh89RWR7Lab\ns7Lsz3/OTd9mm+D8UVqKqHvmXm+UGbRQnXvvXfyedEGBVF285leRXDNU0DWVoqFaf33405+cY7/r\nw+qrB/8udtopWJBUzQZN3W47+MUvcs95CRKovAsovFxzjSNQuwJURwfcf7+zyjQOQS8sqvE2VgbY\nI+8/ubAGyqKkh2N+No2LjW1zk1pYQ1X9JPP5qYjcBwwCcqIEXXppGwAvvwzQmvnLJ2jyc1fahbH6\n6sEBQ+M+2PffP14/INesGHfV23rrOVvcXH45/OY34f0YNcrR3nz2WW66Vxvxve9lBRmv5s1PlEDl\nxucKM7cW4tJLHS3aU08VVz4K/7Wfcgr8LKPzDLqm446DtrbgusIEqjXXdITRTp2yTuP+GGFhmp0b\nbsj6NXlRhX/9y2nLr9n0CyBBAknYb6dTp1yhMeo3veqq+Vsy+QWqRx8NL1+Id95xfAvD+tDe3k57\ne3sqexU2KuZj07jY2DY3qWioRGR1EemWOV4D2A+Y6s/X1tZGW1sbgwe3ESZMOXXkpy1YEJ3HaxK7\n7rr88t4An0GMH589Hj06Ou9OO4X3I0xb4uY777xoc1dYeXdyf+GF3EjgUfGk/OY5L6eeCrNmhZct\nxPbbZ2MOVZIgoeOii+Dcc4Pzr7uu8ykCY8ZktVGuqbNTp+y9DQu5EIZf4HLv8ahR+dsghZlcvfz0\np85vr9BOAlHxrtztZlz22Se7p59LnH0yw9h6a+czTNPa2tpKW1sb//mfbUBb8Q0ZhmHUGWmZ/DYE\nnhWRKcBLwMOq+kRY5qBNh8MYNixeHV68Duyq8OWXTiDOuITV7aZ76/dO8B9+WFhwg2hBxhWCwjRf\nu+6a6xgetCTf5cADHe2Ndzk7OBN2ly5ZTZtfM+M1VYWxdGlh/6mDDipcT1LiBi4FJ06Y+/sRgeOP\nd+6fl0IC1Y47wv/8T3AfWlpy23VNaCeeCL17R/cvSEO18cZwwgn56X7CBKpDD4URI3LTJkzIXe0Z\nh6CYbH4KbaFkJj/DMJqNVAQqVf1AVXfM/G2vqhHr6XJDEUC+UOCd2CZMgDPPzH9rL7SHXrZvzpt7\nkpVmSTbU9eYN84EJIqj/3bqF+7WExWOKEqhWWcUJBurVVP32t465zsuVV+Z+v+mmwv11Y3RFETdK\nvZ+//CV8RWMSgWrTTcNNfu73Tp1yNwn2x1JaffXwbXq8prRevaJXvcURqOJSrLASt5x/L8mgcu4K\nwRtuCK6jWFNyM2B+No2LjW1zU5Udt3bZJfq8d6JqaYFrr3ViUq21lrPS6ZZbshPiv/+dX94vUAUx\nYwZMnBh8LkygcjVTUdG1w/BP6EF1RGnqwupyt2kphHsfRowIDkERVr+LV6C96aZgnzM/fvOlX5AO\nY/PNs9HS4/QN4PXX89O6dIknUG27rSNEbLVVrnnMm8fPjjvmars23DA6HlYcH6q4lFv7E2cBiCtQ\nnX56cH+23tr5HzPysVhFjYuNbXOTmlN6EvzL3N0H+P33w0Yb5b8hd+rk/Hn9Ntwl5ltskc3jzV+I\n738fZs4MPhe0gfFbb8GWWzomGb8w1KcPTJtWuE0vhfYd9OOdtNzrW7w4OKxD9+7hUbSDhNlCE3SQ\n/5XLX/6SNae+/75zX138AlUSQeD44+GDD3LTRMLH9tNP89O8sbvCBKqWFicswZQpznf/ZstBZVUd\nx26v4F9ICPnyy9zvF1zgrHR89ll4/HE4/PD4dYXdx7Sik8epx7/PZVAd3t+CYRhGo1MVDZU7Ed1x\nh/PpPsAPOcSZ8JPGNurePTdWzqGHZo+Tbois6ix599OnT1bg8QtUr7+eP/kn5f77c+MWBfXLT9jG\nzGHanSQcfHD+arsgfvazbFiDXr1yz+29N9x7b/Z71Fh4zaWdOzur9vx7F66zTvhkHzTBe6PL+39T\nPXo49flNyV5TZpSGaqONkm0w7Y2tBXDssU7YA1fovPvu/DLPPRdcVyHBNGz7o2K45Zbg9KCgoIZh\nGM1MVQQqV0PlOtAW82btneSmTs315fBOdFGTTyHH2jD8AlXnzsEb4Ebhv2ZXmCwF1xE6aH+7pGai\nBx6I7wcTpAX6/ved6OBe4davpfFy+eUwd64TZb61Nf/8woWOJimJQBWloerb19krz7svY1g9SVf/\nBXHllfDqq8nKBIVmgMJjefXVwelxBS3v9Q0fHu1DZSTH/GwaFxvb5qaqJr+WFvjVrxxT0fTpyerw\nPvSjnMGTaqjcfkVRjA+Vn0KTcpCZKS4PPJAfWX3LLcM1f2F1r7pqvEk46FriRL/3smKF44fk7oPo\nx43qHXbf/BP87rvDwIFZjZNbrtB9dOvp0SM/Wn0UhcZz3XWzIRy8BK0KLVRXIf+rsN/n0KEwe3Z0\nWT9hvxkTqIqnWX1s3nnndQ477PhU6tpzz0GceeYvU6krTZp1bA2HqgtU116b6z+SFgsXFnbYDnPO\n7tw5euJNKixAOlqOuG2ss06+g/Sdd+abnfzcfrtjinJpaSkc2d3bbinXFFd7EqZV9E/wri+Uuxdj\n3L6ddpoTZ2zYsOgtbdLiuuvCg5KGUUgoDAt7IBIvrId7r370I0cIHDo0P9yECVRGMvrxxReX5bgA\nFM9LLFnydE0KVEZzU3WBCigqqnJra36wTy+uRiNq8ilmL7Lrrw/fCzAJSYWPIO1GElzn/SD23tsx\nEx1zTP4mvnEI24YlCd59D6MIWjAA4RO8KzQXWtno0r174RWMaa6y69o1ejFCMfz4x45Js1jc3+b4\n8c7/aJ8+udtBXX11sFnWMMLpAaSjnYLVgHtSqssw0qMqAtXmmzs+Ja6mJ2ovtjDuvDOeD1TU5Cfi\nRNmOE1PJ5Ywz4uf1txX1PYxjj3WibpdzxdSaa+ZH9k6C/1qGDXNMuX623tqJrt6vn/P96KPh739P\n1laY9iVs1dlGGzlaKtf5PA1hyO/rtt56pfu/JaHQNbS0BC+sSErYb7SU34rBSh8bMw81Hja2zU1V\nBKquXeHXv85+L2aSixt/qRBJzS2VYrvtnL9TT80KILVKnLhf4IQmWHXVrEZr7NjkAlXYysZRo8Kd\n3pMEXA3j+eezGx/7fZTmz0/XhFusD1VaQncaJlwjHJtsGxcb2+amKgKVn3IGKqzVLTBEnFV033wT\nfL5zZ3jzzeBzm22WNWm6nH66Y5qpBnF9jfyrBltanE2vH3ssflu77Zbdh8/LgQfGr6MYdtst/FyS\nKPxpEPSbXrw4nejkV17pOOM//bQJVIZhGEloeIGqFjj00NwI3AMGOGai++8P17hEseuu+YE7w7YA\nqQSHHQZPPVVc2f79nb+4rLIKHHlkcW3VAgcdBA8/XHz5DTZwVmz6KeZ3FMSvf104aKdhGIaRT8ML\nVLUgrPlXtrz0kvP239Li7B0XtgVOvdClizkpx+WHPywsUO2/f3gU/6efjrd5cSlUWuPWbJifTeNi\nY9vcNLRA1atX/jY2tYA37MJ++9W/QGXE55RTnFV4Udx6a/iqxbBVjmnS0mJhEcqJTbaNi41tc9PQ\nAtWUKekvSTfqm2prLDt1it5EGRyNXyViYEWRRvBawzCMZqKhBao09zQrF/XQR8MwDMMwoqkJbwn/\nBrXNxMknw3vvVbsXzcPAgXDffdXuhdHM2H5vjYuNbXMjmpJ6SESGA38EWoC/quqVvvMa1taiRU7U\n8x49UumKYZSFuPsBGllEBFWt+wAMUc+vUpk+fTqDBo1k0aKEG5pWFXdIq/HPMJ7997+Hxx4bX4W2\njWYi6fMrFQ2ViLQANwLDgT7AUSIS2322W7f6Eqba29ur3YVUaJTrALsWwzAMo7qkZfIbBMxQ1Zmq\nuvmZE+YAACAASURBVAy4EzgkpbprjkaZ8BrlOqAy1/LQQ/DAA2VvpqHGxTAMo1lIyyl9U2CW5/ts\noIK7mxlG+TnooGr3wGgELFZR42Jj29ykJVCZV4lhGCUjIn8Dxqnqo9XuS7mwybZxsbFtblJxSheR\nXYE2VR2e+X4e0OF1TBcRE7oMowlJ4tQpIqsCPwFGAM/jLHBZUq6+xcWc0v2YU7rR+CR1Sk9LQzUJ\n6C0ivYCPcR6IR3kzNMJKH8Mwys56wJbAAmAeMArneWIYhlHTpCJQqepyETkNeBwnbMJtqvp2GnUb\nhtFU/D/gZlV9H0BEZhXIX3eYn03jYmPb3KQWKT3j89Cwfg+GYVSEdo8wNUJV/6/aHUobm2wbFxvb\n5qbskdJFZLiITBeR90TknHK3VwwiMkpE5onIVE/auiIyQUTeFZEnRGRtz7nzMtczXUT286TvJCJT\nM+eur8J19BSRp0TkLRF5U0TOqONr6SoiL4nIFBGZJiKX1+u1ePrRIiKTReShzPe6vBYRmSkib2Su\n5eWUr2Wop6k9KnNFhmEYpVNWgarUgJ8VZDROH72cC0xQ1a2Bf2a+IyJ9cHw6+mTK3CzixtDmz8DJ\nqtobx6fMX2e5WQb8SlW3A3YFfpm533V3Lar6LTBMVXcE+gHDRGT3erwWD2cC08h68tbrtSjQqqr9\nVXVQJi2ta9lARPYWkb2ADSt3SYZhGKVRbg1VXQT8VNVngS99yQcDYzPHY4GRmeNDcJZ1L1PVmcAM\nYBcR2RjopqovZ/L9zVOmIqjqXFWdkjleDLyNEyOs7q4FQFW/zhyuguOb9yV1ei0i0gM4EPgr2SVS\ndXktGfyLTNK6ljOArYFtgLPK1/3qYfu9NS42ts1Naj5UIdRzwM8NVXVe5nge2bflTYAXPflm41zn\nssyxy5xMelXIrLjsD7xEnV6LiHQCXgO+D/xZVd8Skbq8FuA64GyguyetXq9FgYkisgK4RVVvJb1r\n2QxYC1gVR6N3SbkuolqYn03jYmPb3JRboGqI2FOqqlJHcbREZE3gH8CZqrooa2Gpr2tR1Q5gRxFZ\nC3hcRIb5ztfFtYjIQcB8VZ0sIq1BeerlWjIMUdVPRGQDYIKI5ARQKvFa/gv4A47AZRiGUTeUW6Ca\nA/T0fO9J7ltpLTNPRDZS1bkZ88T8TLr/mnrgXNOczLE3fU5FeupBRLrgCFO3q+r9meS6vBYXVV0g\nIv8H7ER9Xstg4GARORDoCnQXkdupz2tBVT/JfH4qIvfhmPbTupb3VPXNcl+DYRhG2pTbh2plwE8R\nWQXHOfXBMreZFg8Cx2eOjwfu96QfKSKriMgWQG/gZVWdCywUkV0yTrfHespUhEy7twHTVPWPnlP1\neC3ruyvFRGQ1YF9gMnV4Lar6G1XtqapbAEcCT6rqsfV4LSKyuoh0yxyvAewHTCW9axkmIg+JyN0i\ncnflrqxymJ9N42Jj2+Soaln/gAOAd3CcUc8rd3tF9nEcToT3pTg+XycC6wITgXeBJ4C1Pfl/k7me\n6cD+nvSdcCaXGcANVbiO3YEOYAqO8DEZZ2VVPV5LXxz/qSnAG8DZmfS6uxbfdQ0FHqzXawG2yIzJ\nFOBN9386rWsB1gR2zhz3KKGfawP34CzMmIbju7kuMCGkj+cB72X6uF9AfVou3n77be3W7QcKWkd/\nZP6q0fZduv/+Py7beBiGS+b/PvZzJ5W9/AzDMNJARG4FlqrqL0XkZlU9tch6xgJPq+ooEekMrAGc\nD3ymqleJExNvHVU9NxPa4Q5gZxzH+InA1ur48Ln1abmelbaXX1JsLz+jMkjCvfzKHtjTMAwjAYtx\nVgkCfFNMBZlFDHuo6ihwtsZS1QUkC+0wCMMwjASYQGUYRi3xGTBYRP6AY74uhi2AT0VktIi8JiK3\nZvy9okI7eBfLuKEdyoL52TQuNrbNTblX+RmGYcRGVS8VkW2ATqo6rchqOgMDgNNU9RUR+SOZyO2e\ndgqFdsg719bWtvK4tbWV1tbWojpnsYpK5/PP5/HPf/4zlbo23nhj+vTpk0pdNrb1TXt7O+3t7UWX\nNx8qwzBqBhEZlzlcDUBVE0eCF5GNgBfUWVVJZsui84AtcbYzckM7PKWq24jIuZm2rsjkfwy4SFVf\n8tRpPlQ5VNOHqp011/wdLS2l17R06cccfPCu3Hnn6NIrMxqOpD5UpqEyDKNmUNWjYGUIkF8VWcdc\nEZklIlur6rvAPsBbmb/jgSvJD+1wh4hci2Pq6w28nF+zURu0snhxa0p1jWbFimdSqstodkygMgyj\nZhCR7XDUHl2A7Uqo6nTg75n4d+/jhEJpAcaLyMnATOAIAFWdJiLjccIrLAdOLZs6Clb62Jh5qPGw\nsW1uzORnGEbNICLuTPQd8Kiqvl7N/riYyc9PNU1+aTKaww9/hrvvNpOfkY+Z/AzDqGcmeY57iEgP\nVf2/qvXGMAwjJiZQGYZRS5wC/AtH9bE7Fd5axzAMo1hMoDIMo5aYrqrXAIjIBqo6tlCBesP8bBoX\nG9vmxgQqwzBqChG5DUdDNa9Q3nrEJtvGxca2uTGByjCMWuJ8oAfwFY5jumEYRl1gW88YhlFL/BEn\nqOZC4E/V7oxhGEZcTKAyDKOW6AA+zBx/Vc2OlAvb761xsbFtbszkZxhGLfEd0EdETgfWqXZnyoH5\n2TQuNrbNjQlUhmHUBJntZu4B1seJHHlzdXtkGIYRHxOoDMOoCVRVRWSYql5V7b4YhmEkxQQqwzBq\nAhE5BDhERPYHvgBQ1R9Xt1fpY7GKGhcb2+amYgKViNT7pk+GYRRBgr2whqvqEBH5s6r+oqydqiI2\n2TYuNrbNTUVX+alqQ/xddNFFVe+DXYddSz38JWQzERmR+TxQRA4sw2PIMAyjLJjJzzCMWuFuHIf0\n8cAGVe6LYRhGIkygMgyjJlDVMdXuQyUwP5vGxca2uTGBqghaW1ur3YVUaJTrALsWo36wybZxsbFt\nbixSehE0yoTXKNcBdi2GYRhGdTGByjAMwzAMo0QKClQiMkpE5onI1Ig8N4jIeyLyuoj0T7eLhmEY\njYPt99a42Ng2N3F8qEbj7Pr+t6CTmaXNW6lqbxHZBfgzsGt6XTQMw2gczM+mcbGxbW4KaqhU9Vng\ny4gsBwNjM3lfAtYWkQ3T6Z5hGIZhGEbtk4YP1abALM/32UCPFOo1DMMwDMOoC9JySvdvLWHbzBiG\nYQRgfjaNi41tc5NGHKo5QE/P9x6ZtDza2tpWHre2ttrycMNoMNrb22lvb692N2oa87NpXGxsm5s0\nBKoHgdOAO0VkV+ArVZ0XlNErUBmG0Xj4X5Tsbd0wjGahoEAlIuOAocD6IjILuAjoAqCqt6jqI5mN\nTGcAS4ATy9lhwzAMwzCMWqOgQKWqR8XIc1o63TEMw2hsbL+3xsXGtrmpmb38xowZw5IlS/jlL39Z\nMO/YsWP56U9/SpcuXSrQM8MwjPSwybZxsbFtbmpm6xkR/0LBcMaMGcPSpUvL2JtcOjo6cr6r2iJG\nwzAMwzCy1IxABTBx4kRGjBjBnnvuyccffww4wtOee+7JkCFDeOqpp3jhhReYMmUKBxxwANdddx0T\nJ06ktbWVQYMGceWVV+bVec011zBs2DB22mknJk6cCMCMGTPYe++9GTZsGGeffTYA1157LYMHD2aP\nPfZg8uTJAAwYMICzzjqL4447josvvpgTTjiBESNG8MYbb1TojhiGYRiGUReoakX+nKbCGT16tB59\n9NGqqvrYY4/pGWecoZ9//rkOHz5cVVUXL16sra2tqqra2tqqS5YsUVXVr7/+WlVVV6xYoTvvvLN+\n++23OfW65+fNm6dDhw5VVdVDDz1UX3vtNVVV7ejo0E8++UT33HNPVVWdOXOm7rvvvqqqusUWW+j7\n77+vqqptbW164YUXRl6DYRi5ZP7vK/acKddfoedXEtra2rStrW3l97ffflu7dfuBgtbRH5m/avej\n1L9RevjhJ5RtbI36Junzq2Z8qESEAQMGADBw4ECuv/563n//fd566y2GDRsGwGeffZZXbtKkSVxy\nySUsW7aMmTNnMn/+fHr2zIbF+tvf/sYdd9xBp06dmDt3LgCzZ8+mf//+K9v98MMP2WGHHQDYfPPN\n+eqrrwBYZ5112HLLLVfWtfPOO5fhyg3DaCbMz6ZxsbFtbmpGoFLVlaa2SZMm0bt3b7bcckv69evH\nww8/DMDy5csB6NKly8rjq6++mltuuYVevXqx0047uW+TK7nxxht54403mD9/PnvssQcAPXv2ZPLk\nyfTv3x9VpVevXkyZMgVV5cMPP2SdddYBoFOnXItoEj8vwzAMwzCah5oRqESEpUuXcsABB7BkyRLG\njRvHeuutx5FHHsnQoUNpaWmhb9++XH/99Rx88MEcccQRHHbYYRx22GGMHDmSvn370r1797x6d999\nd4YMGcKuu+5Kt27dALjqqqv42c9+hqoycOBArr76ag455BAGDx5Mp06duPHGG0P7aBiGYRiG4Uf8\nGp2yNSSilWrLMIzaQERQ1bp/E0nz+eWPVTR9+nQGDRrJokXTU6m/MrhDWu/P9NEcfvgz3H336FRq\nszhUjUXS51fNaKgMwzCaAZtsGxcb2+ampsImGIZhGIZh1CMmUBmGYRiGYZSICVSGYRgV5OKLL17p\na2M0Fja2zY35UBmGYVQQ87NpXGxsmxvTUBmGYRiGYZSICVSGYRiGYRglYgKVYRhGBTE/m8bFxra5\nMR8qwzCMCmJ+No2LjW1zU1BDJSLDRWS6iLwnIucEnF9fRB4TkSki8qaInFCWnhqGYRiGYdQokQKV\niLQANwLDgT7AUSKyrS/bacBkVd0RaAX+ICKm+TIMwzAMo2kopKEaBMxQ1Zmqugy4EzjEl+cTwN2V\nuDvwuaouT7ebhmEY8RGRFhGZLCIPZb6vKyITRORdEXlCRNb25D0vo4GfLiL7lbtv5mfTuNjYNjeF\nNEmbArM832cDu/jy3Ao8KSIfA92AI6IqbGtro62tLWE3DcMwEnEmMA3nmQRwLjBBVa/KuC6cC5wr\nIn2An+Bo4DcFJorI1qraUa6OmZ9N42Jj29wU0lDF2Ur8N8AUVd0E2BG4SUS6hWU26d0wjHIiIj2A\nA4G/Au5O8QcDYzPHY4GRmeNDgHGqukxVZwIzcDTzhmEYiSikoZoD9PR874mjpfIyGLgUQFXfF5EP\ngB8Ak/yVuZqptrY2WltbaW1tLarThmHUJu3t7bS3t1e7G9cBZ5N1RQDYUFXnZY7nARtmjjcBXvTk\nm42jqTIMw0hEIYFqEtBbRHoBH+Ooxo/y5ZkO7AP8S0Q2xBGm/h1UWVtbGxdffLGZ/AyjQfG/KFVa\nIy0iBwHzVXWyiLQG5VFVFZEo7XsczXzRuPfEzEONh41tcxMpUKnqchE5DXgcaAFuU9W3ReTnmfO3\nAJcBo0XkdRwT4q9V9Ysy99swDCOIwcDBInIg0BXoLiK3A/NEZCNVnSsiGwPzM/n9WvgembQ8vC+C\npWjYbbJtXGxs65tSNeyiWtaXsWxDIqqqiAiVatMwjOqS+X+XwjnL0vZQ4L9V9YcichXOCuQrReRc\nYG1VdZ3S78Dxm9oUmAhspb6HlPv8KgfTp09n0KCRLFo0vSz1lwd3SOv9WT6aww9/hrvvHl3tjhg1\nSNLnl8WLMgyjkXFn/CuA8SJyMjCTzGpkVZ0mIuNxVgQuB04tm+RkGEZDYwKVYRgNiao+DTydOf4C\nx9czKN9lOK4LFcH8bBoXG9vmxgQqwzCMCmKTbeNiY9vcFNzLzzAMwzAMw4jGBCrDMAzDMIwSMYHK\nMAyjgth+b42LjW1zYz5UhmEYFcT8bBoXG9vmxjRUhmEYhmEYJWIClWEYhmEYRomYQGUYhlFBzM+m\ncbGxbW7Mh8owDKOCmJ9N42Jj29yYhsowDMMwDKNETKAyDMMwDMMokaoKVG1tbdVs3jAMo+KYn03j\nYmPb3EilNlYXEVVVRAS3Te+xYRiNR+Z/XKrdj1Jxn1/lYPr06QwaNJJFi6aXpf7y4A5pvT+/R3P4\n4c9w992jq90RowZJ+vwyk59hGIZhGEaJFBSoRGS4iEwXkfdE5JyQPK0iMllE3hSR9tR7aRiGYRiG\nUcNEhk0QkRbgRmAfYA7wiog8qKpve/KsDdwE7K+qs0Vk/XJ22DAMo55xfWxsiX3jYWPb3BSKQzUI\nmKGqMwFE5E7gEOBtT56fAv9Q1dkAqvpZGfppGIbRENhk27jY2DY3hUx+mwKzPN9nZ9K89AbWFZGn\nRGSSiBybZgcNwzAMwzBqnUIaqjhLOLoAA4C9gdWBF0TkRVV9r9TOGYZhGIZh1AOFBKo5QE/P9544\nWiovs4DPVPUb4BsReQbYAcgTqNy4U21tbbS2thbXY8Mwapb29nba29ur3Y2axvxsGhcb2+YmMg6V\niHQG3sHRPn0MvAwc5XNK3wbHcX1/YFXgJeAnqjrNV5fFoTKMJsPiUBXG4lBVE4tDZYST9PkVqaFS\n1eUichrwONAC3Kaqb4vIzzPnb1HV6SLyGPAG0AHc6hemDMMwDMMwGplCJj9U9VHgUV/aLb7v1wDX\npNs1wzAMwzCM+sAipRuGYVQQ2++tcbGxbW4KaqgMwzCM9DCH5cbFxra5qRkNlbsC0DAMwzAMo96o\nGYHK1KSGYRiG8f/bu/dYOcrzjuPfXw0utxJCkYDYjqANNKYKxVxsB0hyuBtEgVSIYIUSEUBILYEC\nScFRwWv3DwxKqQkohDqEUKqYRIRyUUnAXBa1AQwEzNXm0hRhQzBOQsDcjA1P/5hZvD7snj17dvbs\nXH4faXV2Z2fffd+ZPe88O+8z71pR5SagMjOrAufZlJf3bbU5h8rMbBw5z6a8vG+rzWeozMzMzHrk\ngMrMzMysRw6ozMzGkfNsysv7ttqcQ2VmNo6cZ5MvS5b8nL32GsqkrJNP/jLnnnt2JmVZ8TigMjOz\niprFG2/syuOPZ1HWTSxf/kIWBVlBOaAyM7OK2jm9ZeFJ4LmMyrIicg6Vmdk4cp5NeU2evIP3bYXl\n7gxVrVbzz9CYWWk5h6q8Vq36LYsWXTHoatiA5O4MlaN7MzMzK5rcBVRmZmZmReOAysxsHDmHqryc\nQ1VtHXOoJM0CFgITgB9ExCVt1tsPeAA4ISJuyrSWZmYl4Ryq8nIOVbWNeIZK0gTgSmAWsAcwW9LU\nNutdAvwCUB/qaWZmZpZbnYb8pgMvRMSLEbEeuAE4tsV63wBuBNZkXD8zMzOz3OsUUE0CVjY9XpUu\n+4ikSSRB1lXposisdmZmJeMcqvJyDlW1dcqhGk1wtBC4ICJCkhhhyK8xv1StVmNoaKhjwZ6TyqxY\n6vU69Xp90NXINedQlZdzqKpNEe1jJkkzgVpEzEofzwE+bE5Ml/RrNgZROwDvAKdHxK3DyoqIQBKN\n92x1v93zZlY86f9w4fMqG/1XP6xYsYLp049j7doVfSm/Pxq71P3zRldw2mnPOaAqkW77r05nqB4B\ndpO0C/AK8BVgdvMKEfFnTW9+LXDb8GDKzMzMrMxGzKGKiA3AmcAdwDPATyJiuaQzJJ0xHhU0M+uG\npCmS7pX0tKSnJJ2VLt9e0hJJz0m6U9J2Ta+ZI+l5SSskHd7P+jmHqrycQ1VtIw75ZfpGHvIzq5xB\nDPlJ2gnYKSKWSdoG+BVwHHAK8NuIuFTS+cAnI+ICSXsAPwb2I7no5i5g94j4sKlMD/ltwkN+H+ch\nv7Lptv/yTOlmVioR8WpELEvvvwUsJwmUjgGuS1e7jiTIguQq5cURsT4iXgReIJkyxsxs1BxQmVlp\npfmf04ClwI4RsTp9ajWwY3r/UyRTwjR8bHoYM7NOChFQeeoEM+tWOtz3M+DsiFjb/Fw6fjfSeFXf\nxrKcQ1VezqGqto6/5ZcH8+bNc1BlZqMmaXOSYOr6iLg5Xbxa0k4R8aqknYHX0uUvA1OaXj45XbaJ\n5j5oaGhoVHPpteJ5qMrL81AVW6/z6BUiKd3J6WbFNKCkdJHkSP0uIs5pWn5puuwSSRcA2w1LSp/O\nxqT0zzRnoTspfTgnpX+ck9LLJut5qMzMiuYA4CTgCUmPpcvmAAuAn0o6FXgROAEgIp6R9FOSqWE2\nAH/Xt+jJzErLZ6jMrG88U/rHNXJsGkN/PkNVFldQq/0e8LBuWfgMlZlZjvlgW17Ooaq2QlzlZ2Zm\nZpZnDqjMzMzMelS4gMrTJ5hZkXkeqvLyPFTVVrikdCeomxWHk9I7c1J6WXjahLLxb/mZmZmZjTMH\nVGZmZmY9KmxA5VwqMysi51CVl3Ooqq2wOVTOpTLLP+dQdeYcqrJwDlXZ9CWHStIsSSskPS/p/BbP\nf1XS45KekPRLSXt2U2kzMzOzIusYUEmaAFwJzAL2AGZLmjpstV8DX4yIPYF/Bv4t64qamZmZ5dVo\nzlBNB16IiBcjYj1wA3Bs8woR8UBEvJE+XApMzraaI3M+lZkVhXOoyss5VNU2mt/ymwSsbHq8Cpgx\nwvqnArf3UqluzZs3z0GVmRWCf8uvvPxbftU2moBq1FmHkg4Cvg4cMOYamZmZFdCPfrSIxYsXZ1LW\nN795FrXaRZmUZeNjNAHVy8CUpsdTSM5SbSJNRF8EzIqI11sV1DiLVKvVGBoa6rKqndVqNZ+pMhug\ner1OvV4fdDXMBuA0NmyYzYYNWZR1OW+99U4WBdk46jhtgqTNgGeBQ4BXgIeA2RGxvGmdTwP3ACdF\nxINtyunbtAmeSsEsnzxtwsc1cmwaQ3+eNqE8arV56d9eh3UXcN55f+A731nQe6VszLrtvzqeoYqI\nDZLOBO4AJgDXRMRySWekz18NXAR8ErhKEsD6iJg+lgaYmZWZc6jKq/dAyopsVPNQRcTPI+IvIuIz\nEXFxuuzqNJgiIk6LiD+NiGnpbeDBlIf+zMzMbLwU9qdnOvGlq2ZmZjZeShtQNfhMlZnlieehKq9a\nbd5HeVRWPaX4LT8nqpvlk5PSO3NSun2ck9LzoC+/5WdmZmZm7Y1mHqrS8DxVZpaFNWvWcPzxJ/P+\n+72X9e67b/HBB72XY2aDVamAyj9RY2ZZeO+991i69GHWrbu+69fWag+lf5svht46o5rZIGU3D5UV\nUaUCKjOzrGy22ZasW3dk16+r1bp/jRWDA6lqq2QOlc9SmZmZWZYqGVD5kmUzMzPLUiUDKjOzQfFc\nReXlfVttlc+h8pV/ZjaenGdTXt631Vb5M1Qe/jNrr/nLRuN+py8g/oJiZlVU+YCq2WgPGGZV0fyF\no3G/eVmrgMtfUsysihxQNWl1wDCrotF+qWgVcNnInGdTXt631eaAqgOfrepdqzN/Iy2zwXNw1D+1\n2lzn2pSU9221OaDqoHFg8cG+O83bq9WZv5GWeVsPhre7mdnYdQyoJM2StELS85LOb7POd9PnH5c0\nLftqDl67vBHLPo+mU45Oq+3vM13dce6TmVm2FBHtn5QmAM8ChwIvAw8DsyNiedM6RwFnRsRRkmYA\nl0fEzBZlRUQgicZ7tro/qGVjeU3Vp1xotH+Q+2ekOlR9/7TSr33W4XmNdzuz1ui/GlauXMnUqfvz\n9tsruy6rHL/31til7Y8fVZTdvl3AZz+7mH32mdF7pYATTzyGo48+OpOyqqTb/qtTQPV5YG5EzEof\nXwAQEQua1vk+cG9E/CR9vAL4UkSsHlZW6QKqVgf2Kh3Ei7h/qm5A+8cBVek4oOqvZcBDGZV1C/Pn\nz+TCCy/MqLzq6Lr/ioi2N+B4YFHT45OAK4atcxuwf9Pju4B9WpQVaY8UDa3uD2pZP8ouk7lz527y\nN6KY+6e5/lUxHvusw/Mj9jNFuA3/v37ppZdi660nB0RFb6S3QdfDt863f4r58+eHda/b/qtTDlV0\neL5heAQ32teVWtHPiHRKLC+iKuXCOTfKzGz8dBrymwnUYuOQ3xzgw4i4pGmd7wP1iLghfdx2yA/m\nNi0ZSm9mVh719NYwj/CQ3yacQ1Ve+dy3FzJ//kQP+Y1B1kN+mwH/C+wCTCQZ2J06bJ2jgNvT+zOB\nB9uU1c8zc4XTPAzT6n7z9mrc7+eyKg6FdavdPuu0bpbv1+lzkzd0eco8r7fh/ZeH/DzkV5ybh/zG\nqtv+a8QzVGmEdiSwEJgAXBMRF0s6I+1hrk7XuRKYBbwNnBIRj7YoJzq9l23UnETd6qq1Vknw3V7B\n5URt6zcnpZeVz1AVx4UcdthSDjnkkExKO/jgg9lvv/0yKSvvMr3KL0sOqMau28CnVTDmK95sEBxQ\nlZUDquK4gwkT7smkJOluLr30q5xzzjmZlJd33fZfm/WzMpaNboOf5vXnzp27yd+xlGdm2clnno1l\nIZ/79gg++OCITEqaOLEagdRY+QyVmfWNz1CVlc9QVdHEieewYMGnfYaqDf+Wn5mZmVmPHFCZmZmZ\n9cgBlZlVnkbxI/BZqdXmfZRrY+XifVttDqjGoF6vD7oKmShLO8BtsbFT8iPwjalf9gBmS5rar/er\n1eb2OWm53seys1QfdAVGqT7qNfu/b0dSH9D7dq+sfZyv8huDer3O0NDQoKvRs7K0A9wW68l04IWI\neBFA0g3AscDyQVZq7OoU41co6rieWapTjHpm38ctXHglS5b8MpOyJkyAiy46j3333bfr1zqgMrOq\nmwQ0X663CpgxoLqY5VYE3HLLbaxa9WpP5dx///+wdu27nHDC3zBjRu//avfc8wC33749cGDPZW25\n5Xc49dSXHVCZmY3BmK79X7duDdtu+9ddv+7cc5OO+rLLHhnL23b03nvPssUWv+pL2Q1vvpn8HUv7\nG8ajnlnopp793rcjGY/tuXbt3dx337vcd9+9PZf14IP3c9lll2ZQq4223falnstYt27VmF87rvNQ\njcsbmVmu5H0eqlH+CLz7L7MKyuVPz5iZ5ZGkzYBngUOAV4CHgNkRUdAcKjMbBA/5mVmlRcQGSWcC\nd7DxR+AdTJlZV3yGyszMzKxHfZ+HajwnzMuapCmS7pX0tKSnJJ2VLt9e0hJJz0m6U9J2g67rQ/mF\nywAABPBJREFUaEmaIOkxSbeljwvZFknbSbpR0nJJz0iaUcS2SJqTfr6elPRjSX9clHZI+qGk1ZKe\nbFrWtu5pW59P+4PDB1Pr7hWlD5P0oqQn0v/vhwZdn4ZuPyeD1KauNUmr0u36mKRZg6xjWqdCHJtG\nqGeutqmkLSQtlbQsPZ5cnC7vanv2NaAa7wnz+mA9cE5E/CUwE/j7tP4XAEsiYnfg7vRxUZwNPMPG\nK5uK2pbLgdsjYiqwJ7CCgrVF0i7A6cDeEfE5kuGmEylOO64l+d9u1rLukvYAvkLSD8wCvicp9xML\nF6wPC2AoIqZFxPRBV6bJqD8nOdCqrgFclm7XaRHxiwHUa7iiHJva1TNX2zQi3gMOioi9SI4nB0k6\nkC63Z787tI8mzIuI9UBjwrxCiIhXI2JZev8tkon+JgHHANelq10HHDeYGnZH0mTgKOAHbPy5+MK1\nRdIngC9ExA8hyYGJiDcoXlveJOlwtkoTo7ciSYouRDsi4r+B14ctblf3Y4HFEbE+nUDzBZL+Ie+K\n1ofl7orKLj8nA9WmrpCz7VqUY9MI9YT8bdN30rsTSb7cvk6X27PfAVWrCfMmtVk319KzCdOApcCO\nEbE6fWo1sOOAqtWtfwW+BXzYtKyIbdkVWCPpWkmPSlokaWsK1paI+D3wL8BLJIHUHyJiCQVrxzDt\n6v4pkv//hqL0BUXqwwK4S9Ijkk4fdGU6KNpn/BuSHpd0zaCH0YYryrGpqZ4PpotytU0l/ZGkZSTb\n7d6IeJout2e/A6pSZLxL2gb4GXB2RKxtfi6SrP7ct1PS0cBrEfEYbb4ZFKUtJFen7g18LyL2Bt5m\n2KnYIrRF0p8D/wDsQhJwbCPppOZ1itCOdkZR9yK0qwh1bDggIqYBR5IMrXxh0BUajQJ8xq8i+RK3\nF/Abki9BuVCUY1NazxtJ6vkWOdymEfFhOuQ3GfiipIOGPd9xe/Y7oHoZmNL0eAqbfkvNPUmbk3xg\nr4+Im9PFqyXtlD6/M/DaoOrXhf2BYyT9H7AYOFjS9RSzLauAVRHxcPr4RpIA69WCtWVf4P6I+F1E\nbABuAj5P8drRrN3naXhfMDldlneF6cMi4jfp3zXAf5LvIdXC9DsR8VqkSNIlcrFdi3JsaqrnfzTq\nmddtCpCmj/wXsA9dbs9+B1SPALtJ2kXSRJKk1Fv7/J6ZkSTgGuCZiFjY9NStwNfS+18Dbh7+2ryJ\niG9HxJSI2JUk8fmeiPhbitmWV4GVknZPFx0KPA3cRrHasgKYKWnL9LN2KMkFA0VrR7N2n6dbgRMl\nTZS0K7AbyQSaeVeIPkzSVpL+JL2/NXA48OTIrxqowvQ76YG04cvkYLsW5djUrp5526aSdmgMO0ra\nEjgMeIxut2dE9PVGcvr5WZIk1Dn9fr+M634gSb7RsnTjPkZyBcj2wF3Ac8CdwHaDrmuX7foScGt6\nv5BtAf4KeBh4nOTMzieK2BbgH0mCwSdJkh43L0o7SM50vgK8T5JndMpIdQe+nfYDK4AjBl3/LtqZ\n+z6MZPhkWXp7Kk/17PZzkrO6fh34d+CJtK+5mSSvZtD1LMSxqU09j8zbNgU+Bzya1vMJ4Fvp8q62\npyf2NDMzM+tR7ueBMTMzM8s7B1RmZmZmPXJAZWZmZtYjB1RmZmZmPXJAZWZmZtYjB1RmZmZmPXJA\nZWZmZtYjB1RmZmZmPfp/tbYjYRG1EJ4AAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A similar approach involves\n", "plotting a histogram for every set of $k$ iterations (perhaps 50-100)\n", "beyond some burn in threshold $n$; if the histograms are not visibly\n", "different among the sample intervals, this may be considered some evidence for\n", "convergence. \n", "\n", "Note that such diagnostics should be carried out for each\n", "stochastic estimated by the MCMC algorithm, because convergent behavior\n", "by one variable does not imply evidence for convergence for other\n", "variables in the analysis. \n", "\n", "An extension of this approach can be taken\n", "when multiple parallel chains are run, rather than just a single, long\n", "chain. In this case, the final values of $c$ chains run for $n$\n", "iterations are plotted in a histogram; just as above, this is repeated\n", "every $k$ iterations thereafter, and the histograms of the endpoints are\n", "plotted again and compared to the previous histogram. This is repeated\n", "until consecutive histograms are indistinguishable." ] }, { "cell_type": "code", "collapsed": false, "input": [ "fig, axes = plt.subplots(2, 5, figsize=(14,6), sharex=True, sharey=True)\n", "axes = axes.ravel()\n", "for i in range(10):\n", " axes[i].hist(M.beta.trace()[500*i:500*(i+1)])\n", "plt.tight_layout()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n1joPPislmWBbl1mgH+TV6L6ttfYNSf52kn9cVX992R1oo3MalvFv8HNJLk3y9Un+OMlPL6qhqvri\nJL+S5Edaa5/d+d6itnfc5jvHbf55Fry9rbUnWmtfn+SiJH+jqr5j1/tdt/Og8nDgWUjWLw8HkYUd\n7a56HhwblvdvsLZ5WHYWEnlYhHU7NiSbkQeflRZj3fLgs9Kp9/fd1mUW6A8kuXjH64sz+iZs4Vpr\nfzz+76eS/KeMTplZhhNV9awkqapnJ/nkohtsrX2yjSV5axa0rVX1RRmF7Bdba+8eT17o9u5o8z88\n2eaytre19qdJ/p8kfy3z2c4DycMBZiFZ0zwcRBZ2tbvqeXBsWEIWkvXNw0FmYdyWPMxmLY8Nyebl\nwWeluVjLPPisNN22LrNA/60kz62qS6rq7CQvS3LbohutqmdU1V8eP/9LSV6c5O69l5qb25J8//j5\n9yd59x7zzsX4f/qT/l4WsK1VVUl+IcmR1tq/3vHWwrb3TG0ucnur6plPnvZSVU9P8qIkd2U+27n0\nPBxwFpI1zMNBZGGvdlc0D44NS8hCsp55OIgsjNcvD/OzdseGcRsbkQefleZu7fLgs1KHPLQFXcHu\ndI+MThX5vYyuyHj9ktq8NKOrPn44yccW1W6SW5L8UZKTGf1e5hVJzktyR5J7k9ye5NwFt/kPkrw9\nyUeTfGT8P//8BWzrtyd5Yvxvetf4cfUit/cMbf7tRW5vkucl+Z1xmx9N8uPj6XPZzmXnYVlZOMO+\nuZZ5OIgs7NHuyuZh2VkYt7m2x4YztLuWeTiILIzblYf57JdreWzYY99cuzwsMgvj9fistNg21/LY\nsEe7K5GHGi8EAAAAHKBlnuIOAAAAnIECHQAAAHpAgQ4AAAA9oEAHAACAHlCgAwAAQA8o0AEAAKAH\nFOgAAADQAwp0AAAA6IH/H7Pd1snOYd4FAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another *ad hoc* method for detecting lack of convergence is to examine\n", "the traces of ***several MCMC chains*** initialized with different starting\n", "values. Overlaying these traces on the same set of axes should (if\n", "convergence has occurred) show each chain tending toward the same\n", "equilibrium value, with approximately the same variance. \n", "\n", "The\n", "tendency for some Markov chains to converge to the true (unknown) value\n", "from diverse initial values is called ***ergodicity***. This property is\n", "guaranteed by the reversible chains constructed using MCMC, and should\n", "be observable using this technique. Again, however, this approach is\n", "only a heuristic method, and cannot always detect lack of convergence,\n", "even though chains may *appear* ergodic." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from pymc.examples import disaster_model\n", "M = MCMC(disaster_model)\n", "M.early_mean.set_value(0.5)\n", "M.sample(1000)\n", "M.early_mean.set_value(5)\n", "M.sample(1000)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 1000 of 1000 complete in 0.1 sec" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 1000 of 1000 complete in 0.1 sec" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(M.early_mean.trace(chain=0)[:200], 'r--')\n", "plt.plot(M.early_mean.trace(chain=1)[:200], 'k--')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A principal reason that evidence from informal techniques cannot\n", "guarantee convergence is a phenomenon called ***metastability***. Chains may\n", "appear to have converged to the true equilibrium value, displaying\n", "excellent qualities by any of the methods described above. However,\n", "after some period of stability around this value, the chain may suddenly\n", "move to another region of the parameter space. This period\n", "of metastability can sometimes be very long, and therefore escape\n", "detection by these convergence diagnostics. Unfortunately, there is no\n", "statistical technique available for detecting metastability.\n", "\n", "### Formal Methods\n", "\n", "Along with the *ad hoc* techniques described above, a number of more\n", "formal methods exist which are prevalent in the literature. These are\n", "considered more formal because they are based on existing statistical\n", "methods, such as time series analysis.\n", "\n", "PyMC currently includes three formal convergence diagnostic methods. The\n", "first, proposed by [***Geweke*** (1992)](http://projecteuclid.org/DPubS?service=UI&version=1.0&verb=Display&handle=euclid.ss/1177011446), is a time-series approach that\n", "compares the mean and variance of segments from the beginning and end of\n", "a single chain.\n", "\n", "$$z = \\frac{\\bar{\\theta}_a - \\bar{\\theta}_b}{\\sqrt{Var(\\theta_a) + Var(\\theta_b)}}$$\n", "\n", "where $a$ is the early interval and $b$ the late interval. If the\n", "z-scores (theoretically distributed as standard normal variates) of\n", "these two segments are similar, it can provide evidence for convergence.\n", "PyMC calculates z-scores of the difference between various initial\n", "segments along the chain, and the last 50% of the remaining chain. If\n", "the chain has converged, the majority of points should fall within 2\n", "standard deviations of zero.\n", "\n", "In PyMC, diagnostic z-scores can be obtained by calling the `geweke` function. It\n", "accepts either (1) a single trace, (2) a Node or Stochastic object, or\n", "(4) an entire Model object:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from pymc import geweke\n", "\n", "M = MCMC(gelman_bioassay)\n", "M.sample(5000)\n", "d = geweke(M.alpha, intervals=20)\n", "Matplot.geweke_plot(d, 'alpha')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------92%--------------- ] 4644 of 5000 complete in 0.5 sec" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 5000 of 5000 complete in 0.5 sec" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The arguments expected are the following:\n", "\n", "- `pymc_object`: The object that is or contains the output trace(s).\n", "\n", "- `first` (optional): First portion of chain to be used in Geweke\n", " diagnostic. Defaults to 0.1 (*i.e.* first 10% of chain).\n", "\n", "- `last` (optional): Last portion of chain to be used in Geweke\n", " diagnostic. Defaults to 0.5 (*i.e.* last 50% of chain).\n", "\n", "- `intervals` (optional): Number of sub-chains to analyze. Defaults to\n", " 20.\n", "\n", "The resulting scores are best interpreted graphically, using the\n", "`geweke_plot` function. This displays the scores in series, in relation\n", "to the 2 standard deviation boundaries around zero. Hence, it is easy to\n", "see departures from the standard normal assumption.\n", "\n", "The second diagnostic provided by PyMC is the [***Raftery and Lewis*** (1992)](http://projecteuclid.org/DPubS?service=UI&version=1.0&verb=Display&handle=euclid.ss/1177011143)\n", "procedure. This approach estimates the number of iterations required to\n", "reach convergence, along with the number of burn-in samples to be\n", "discarded and the appropriate thinning interval. A separate estimate of\n", "both quantities can be obtained for each variable in a given model.\n", "\n", "As the criterion for determining convergence, the Raftery and Lewis\n", "approach uses the accuracy of estimation of a user-specified quantile.\n", "For example, we may want to estimate the quantile $q=0.975$ to within\n", "$r=0.005$ with probability $s=0.95$. In other words,\n", "\n", "$$Pr(|\\hat{q}-q| \\le r) = s$$\n", "\n", "From any sample of $\\theta$, one can construct a binary chain:\n", "\n", "$$Z^{(j)} = I(\\theta^{(j)} \\le u_q)$$\n", "\n", "where $u_q$ is the quantile value and $I$ is the indicator function.\n", "While $\\{\\theta^{(j)}\\}$ is a Markov chain, $\\{Z^{(j)}\\}$ is not\n", "necessarily so. In any case, the serial dependency among $Z^{(j)}$\n", "decreases as the thinning interval $k$ increases. A value of $k$ is\n", "chosen to be the smallest value such that the first order Markov chain\n", "is preferable to the second order Markov chain.\n", "\n", "This thinned sample is used to determine number of burn-in samples. This\n", "is done by comparing the remaining samples from burn-in intervals of\n", "increasing length to the limiting distribution of the chain. An\n", "appropriate value is one for which the truncated sample's distribution\n", "is within $\\epsilon$ (arbitrarily small) of the limiting distribution.\n", "Estimates for sample size tend to be conservative.\n", "\n", "This diagnostic is best used on a short pilot run of a particular model,\n", "and the results used to parameterize a subsequent sample that is to be\n", "used for inference. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "from pymc import raftery_lewis\n", "\n", "M = MCMC(gelman_bioassay)\n", "M.sample(1000)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 1000 of 1000 complete in 0.1 sec" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "raftery_lewis(M.alpha, q=0.025, r=0.01)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "========================\n", "Raftery-Lewis Diagnostic\n", "========================\n", "\n", "937 iterations required (assuming independence) to achieve 0.01 accuracy with 95 percent probability.\n", "\n", "Thinning factor of 1 required to produce a first-order Markov chain.\n", "\n", "18 iterations to be discarded at the beginning of the simulation (burn-in).\n", "\n", "4775 subsequent iterations required.\n", "\n", "Thinning factor of 3 required to produce an independence chain.\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "(937, 1, 18, 4775, 3)" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The arguments are:\n", "\n", "- `pymc_object`: The object that contains the Geweke scores. Can be a\n", " list (one set) or a dictionary (multiple sets).\n", "\n", "- `q`: Desired quantile to be estimated.\n", "\n", "- `r`: Desired accuracy for quantile.\n", "\n", "- `s` (optional): Probability of attaining the requested accuracy\n", " (defaults to 0.95).\n", "\n", "- `epsilon` (optional) : Half width of the tolerance interval required\n", " for the q-quantile (defaults to 0.001).\n", "\n", "The third convergence diagnostic provided by PyMC is the ***Gelman-Rubin\n", "statistic*** [Gelman and Rubin (1992)](http://projecteuclid.org/DPubS?service=UI&version=1.0&verb=Display&handle=euclid.ss/1177011136). This diagnostic uses multiple chains to\n", "check for lack of convergence, and is based on the notion that if\n", "multiple chains have converged, by definition they should appear very\n", "similar to one another; if not, one or more of the chains has failed to\n", "converge.\n", "\n", "The Gelman-Rubin diagnostic uses an analysis of variance approach to\n", "assessing convergence. That is, it calculates both the between-chain\n", "varaince (B) and within-chain varaince (W), and assesses whether they\n", "are different enough to worry about convergence. Assuming $m$ chains,\n", "each of length $n$, quantities are calculated by:\n", "\n", "$$\\begin{align}B &= \\frac{n}{m-1} \\sum_{j=1}^m (\\bar{\\theta}_{.j} - \\bar{\\theta}_{..})^2 \\\\\n", "W &= \\frac{1}{m} \\sum_{j=1}^m \\left[ \\frac{1}{n-1} \\sum_{i=1}^n (\\theta_{ij} - \\bar{\\theta}_{.j})^2 \\right]\n", "\\end{align}$$\n", "\n", "for each scalar estimand $\\theta$. Using these values, an estimate of\n", "the marginal posterior variance of $\\theta$ can be calculated:\n", "\n", "$$\\hat{\\text{Var}}(\\theta | y) = \\frac{n-1}{n} W + \\frac{1}{n} B$$\n", "\n", "Assuming $\\theta$ was initialized to arbitrary starting points in each\n", "chain, this quantity will overestimate the true marginal posterior\n", "variance. At the same time, $W$ will tend to underestimate the\n", "within-chain variance early in the sampling run. However, in the limit\n", "as $n \\rightarrow \n", "\\infty$, both quantities will converge to the true variance of $\\theta$.\n", "In light of this, the Gelman-Rubin statistic monitors convergence using\n", "the ratio:\n", "\n", "$$\\hat{R} = \\sqrt{\\frac{\\hat{\\text{Var}}(\\theta | y)}{W}}$$\n", "\n", "This is called the potential scale reduction, since it is an estimate of\n", "the potential reduction in the scale of $\\theta$ as the number of\n", "simulations tends to infinity. In practice, we look for values of\n", "$\\hat{R}$ close to one (say, less than 1.1) to be confident that a\n", "particular estimand has converged. In PyMC, the function\n", "\\`gelman\\_rubin\\` will calculate $\\hat{R}$ for each stochastic node in\n", "the passed model:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from pymc import gelman_rubin\n", "\n", "M = MCMC(gelman_bioassay)\n", "M.sample(1000)\n", "M.sample(1000)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 1000 of 1000 complete in 0.1 sec" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 1000 of 1000 complete in 0.1 sec" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "gelman_rubin(M)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "{'LD50': 1.0024108640285339,\n", " 'alpha': 1.0037164995885997,\n", " 'beta': 1.0326677954517838,\n", " 'theta': [1.002200525805691,\n", " 1.0171883080130166,\n", " 0.99985011876851737,\n", " 1.000496557746906]}" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the best results, each chain should be initialized to highly\n", "dispersed starting values for each stochastic node.\n", "\n", "By default, when calling the `summary_plot` function using nodes with\n", "multiple chains, the $\\hat{R}$ values will be plotted alongside the\n", "posterior intervals." ] }, { "cell_type": "code", "collapsed": false, "input": [ "Matplot.summary_plot(M)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAEgCAYAAABvi64JAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucHHWZ7/HPlwSFkQFEPMhNc5RBJelJAsjBmaNGPfAa\nXFazEidLVkDX1RUvuB5QV4Z1whJQlwVZUQEVAcUcuS2suMdBQeCIIiwmpDsBcZRLwv2qMgGVJM/5\no2pCp5lLZ6anqqvn+3695pXqruqqp7ouT/1+9XRFEYGZmVkWtsk7ADMzmz6cdMzMLDNOOmZmlhkn\nHTMzy4yTjpmZZcZJx8zMMuOkY01B0oWSTkmH3yTpV1Xj7pX09lE+t0DSuqzizIukGyR9IO84LB+t\ntP2ddApE0usl/UTS7yQNSlpYNW6WpE2Snq7666sav0TSg5LukbSg6v3XSPqZJI2z7N0lnZ/O4w+S\n7pS0VFJbg1Yv0j8i4qcR8bqRxjVSdaKrY9qlkr7T6Bi2wpR8B5af9GLqmfRYfVjSdyTtOMrkE97+\nW7OfZ8FJpyAkzQT+A/g+8FLgQ8DFkjpqJt0xItrTv1OrPvt5YD7wMeDsqum/DPxDjPErYUm7ADcD\nLwYOjogdgUOAnYDXjBLrRIyZ+KZAZidySTOyWI4VSgCHR0Q7MBcoASflG9LUc9IpjtcBu0fEWZG4\nHvgZcFTNdCNt05cBD0TEI8B1wKsBJC0C1kXEf42z7P8N/D4i3hsRawEi4v6I+GREVNJ5bZL0EUmD\nwF3pe4dLul3SU2lrqjQ8Q0nzJa1IW03fA7arGjdSl9lBktZIelLStyS9eKRAJe0h6QpJj0q6W9LH\nx1k3pZ8bbikeLek+SY9JOjEd1wN8FlicXpWuTN/fqar1d7+kUyRtk457X7rOZ0p6HDgl/R5mV8X6\n8vRKd1dJL5X0gzTuJyVdLWnPUdZxH0k3pi3ex9LvzwosPTZ/BMweY7JZkm5Kj5lrJL1seISkyyQ9\nlO4TN0raL33/Q8AS4NPpvvsfU7oidXDSKbZtgDk1790naV16Yh7eKR8DXpaexA4BVkvaAegjOZmO\n538B/17HdO8C3gDsJ2k+cD7wQWAX4Dzg+5K2lfQi4CrgIpJW22XAEYze6hDJgXMoSctqX0a4IkxP\n+FcDK4E9gLcD/yDp0DpiH9adzv/twOckvTYiBoDTgO+lLcj56bQXAn9OY5qfxvd3VfM6CPgt8N+A\nfyb5Do+sGt8L3BARj6freD7wyvTvWeAro8R4CjAQETsDe5K0Vq2Yhi969gJ6gFvGmG4J8D6S/elF\nwAlV4/8T2Ad4ObAC+C5ARHw9Hf5iuu++q/GrsHWcdIrjLuBRSZ9KT9yHAm8Gtk/HPwYcSHLCOgBo\n5/kdbxNwLHA5SavlgyQnwS8D85TcJxqovgqvsQvwUB0xfj4ifhcRfyLp/jsvIv4rbZl9G/gT8Ebg\nYGBmRPxbRGyMiCuAsVpbAXwlIh6IiKeAU9ny5D3sDcCuEbEsIjZExD3AN4G/riP2YSdHxJ8iogys\nIun2gOSg39z9J2k34DDgkxHxbEQ8BpxVs6wHI+KrEbEpIv4ILK8ZvyR9j4h4MiKujIg/RsQQSZJ7\nyygx/pnkqnfPiPhzRPx8K9bPmoeAqyT9AVhLcoGybJRpA/hWRPwm3ZcuBeZtHhlxYUSsj4jngJOB\nuZLaa5bVFJx0CiLdmRYCf0GSAD5JsuPdn45fHxEr0hPcoyT3bg6V9JJ0/E8i4o0R8VaSHXB/kpbG\nRcAxJFfP3xxl8U+QtBzGU90l9irg+LRL6SlJTwF7Abun83qg5rP3bcW8144Sz6uAPWqW+VmSK8N6\nPVw1/AywwyjTvQrYFnioalnnklxpjhQzwA1Am6SDJM0iSWhXAkhqk3ReenP598CNwE7SiAUenybZ\nhrdKWi3p/VuxftY8AnhXeo90AfA24EBJ5+j5YqB/rJq+et98lnTflDRD0hck/Sbdd+5Jp9l16ldh\n6030hq/lIL1/smD4taSfAxeM87EtLizSk9jZJEnp5cCMiFgn6VGgc5R5XAv8laSTxyo4YMvusbXA\nqRFxWu1Ekt5C0i1U7VXAb8aY9ytrhh8cYZp1wD0Rse8Y85mo2vVeR9Jye1nakhz3MxGxUdKlJK20\nR4GrI2J9Ovp4km69gyLiUUnzSLpJNMJ8HiFpSSKpG7hW0o0RcfeE185yFRH/T9LZJN1gbyXpmajX\nEuCdwNsj4j5JOwNP8nzrpqmqHt3SKRBJJUnbpVfFJwC7kdxXIL16fq2kbdJ7OV8Gro+Ip2tm83fA\nL9PuoyeA7SW9HngrSfN+JGcCOwIXSXplurw9JZ0hqfae0rBvAB9O45Kkl0j6i/Re0s+BDZKOS7sK\n303SNTbqqgMfTZe5C8m9qJFunt8KPC3p05K2T68A50g6cIz51uthki4tAUTEQyQ3fs+U1J5+76+R\n9OZx5jPcxba5ay21A8nV6+/TdewfbQaS3pPeAwD4HclJZbTEZ8VxFknBzP8YZfxo++sOJBdAT6Y9\nG7UXeo+QFg81AyedYjmK5Ar/EZIkcUja7QbJTvVD4A9AheQEtsV9D0m7AscB/wQQERtIWjw/Ab4G\njFjpld5H6QKeA25J+6CvJTnhDbdOaq/Gf0ly7+grJFddg8DR6bjngHeT3BR9guSG+hW1i60Z/i7J\nSf636byW1U4bERuBw0n6uu8muc/1dZKEOeKqjbCc0VyW/vuEpNvS4aNJbujeka7jZcArRpk3aYy3\nAkMk3Yw/rBp1Fsn9ucdJkvIPx4jnQOAXkp4mKaM/LiLuHSN2K4C0oOQi4DOjTVIzPPz62yTd0w8A\nq0l+3lA97fkkxT1PSaqnIGhKyf+Jm5mZZcUtHTMzy4yTjpmZZcZJx8zMMuOkY2ZmmWnZ3+lIcoWE\nWYFFRG6/ovf5Y/JG234t29KJiIb9NXp+zfzX39+fewxeV69r5Jhwxjvem+G7bIYYxolj1O3XsknH\nzMyaj5OOmZllxknHtrBgwYK8Q8iM19Umohm+y2aIASYWRys/kaBhK7Z06VKWLl3aqNmZ2fjyfhR/\ny54YMzLq9nPSMbNm5KRTbC4kMDOz/DnpmJlZZpx0zMwsM046ZmaWGSedOrhyzcysMVy9VgdJtPD3\nZNaMXL1WbM1XvSbp3vT/gp/UNM0mIiiXy5TLZScqM7MaeXav1XNGDvK/4qnbpk2bOPTQj9LVtYru\n7gqLF5/kxGPWInxB2RiZdK9JuhLYG9gO+LeI+Iake4ADgB2BAeA2YH9gDXB0RDybTnMR8JfAtsB7\nIuIuSQcBZ6XzexZ4f0T8umaxU9a9pgamQe+7ZiPK+2JziyMzIujt7WNgYA4Ahx22hksuWYYaeTJo\nLbl3r/1tRBwIvAE4boQus32Br0bEfsAfgI9UjXssIg4AzgFOSN+7E3hTROwP9AOnTSY4aey/2mka\nabxljxWTmWWjUqkwMDCHoaElDA0tYWBgNpVKJe+wCimr/8TtE5IWpsN7AR0149dFxM3p8MXAccAZ\n6et/T/9dAbw7Hd4Z+LakfUiuSLadTHAR453I++udE9AHzElfrwGW0aiLNreKzKzoprylI2kB8Hbg\n4IiYB9xO0i1Wrfp0qprXf0r/3cjzSfIU4LqIKJF0vdXOb6tFjPW3dJzxsGlTsGhRHzvsMJu2trUc\ncsj1bNx4ChEa97P1/plZPkqlEj09q2lvX057+3J6etZQKpXyDquQsmjp7Ag8FRF/lPR64OARpnml\npIMj4hfAEuCndczzwXT4/Y0LdeIkcemlp6ZN7hKlUsn9vWYtYsvjG0qlI318T1AWSWcA+LCkO4C7\ngOFutOpr97uAj0r6Fkmf1DkjTBNVr/8FuEjSScB/1kyXG0l0dnbmHYaZTQEf342R+49DJc0Crk67\nyhqpKRKRmU1I3s0Inz8mJ/fqtfF4A5uZTQO5J52IuDcimrrN6mevmZk1Ru7da1PIz14zKy53rxVb\n03evmZnZNOCkY2ZmmXHSMTOzzDjpmJlZZpx06tDfX++z18zMbCyuXjOzZuTqtWJz9ZqZmeXPScfM\nzDLjpGNmZplx0jEzs8w46dTBz14zM2sMV6/Vwc9eM8ucq9eKzdVrZmaWPycdMzPLjJOOmZllxknH\nzMwy46RTBz97zcysMVy9ZmbNyNVrxebqNTMzy5+TjpmZZcZJx8zMMuOkY2ZmmXHSqYOfvWZm1hi5\nVa9JmgVcHRGlOqc/BvhRRDxU5yL87LVpKiKoVCoAlEolpLwLoWwC8t5oPuAnpyWq194H7JF3EJa9\niKBcLlMul8dN/hFBb28f3d2r6e5ezeLFJ/mCwRpqa/ZHe6G8Wzo/BH4J7A+sAY4G9gPOAHYAHidJ\nNv8TuAB4AHgG6AI+DRwObA/8PCL+vmYRbunkwI2KF/KuMyF570kjbrXhi5qBgTkAHHbYGi65ZJlb\n0y806heSd9K5G+iOiJslnQ/8ClgIvCsiHpe0GDg0Ij4g6Xrg+IhYkX7+pRHxVDr8beDSiPhB1SIK\nm3S8/1qr2orDKO+jYMRIy+Uy3d2rGRpaAkB7+3JuumkOnZ2dmQZXAKNuv5lZRjGCdRFxczp8MdAH\nzAF+nF45zAAerJq+ekXeJulTQBuwC0lLqTrpFIITTKMFz+9GkOwWy8j/HNY83PKyPOWddKp3fwF/\nANZERNdY00vaDvgqcEBEPCCpH9huqoKcymev+QQwtuHujGuuSZJIT8943Rki4tSqQoIj3fVhDVMq\nlejp+R7XXLMcSPbHUunInKMqlmboXuuKiF9I+ibwa+CDwFHpe9sCHRFxh6TvA2dGxA2SdibpiptF\nkjh/QdK99s9Vi/DpvEW4Gm1aynsjj3r+8P5Yl6a8p/MqYAC4DTiApB/kKOC1wJeBnUgSypci4nxJ\n7wZO4/lCgj7gSOBh4C7gPicds5aR95nc54/Jab6kk4GWXTGzacBJp9ha4nc6ZmZWcE46ZmaWGSed\nOvjZa2ZmjeF7OnXwEwnMMud7OsXmezpmZpY/Jx0zM8uMk46ZmWXGScfMzDLjpFOHqXz2mpnZdOLq\nNTNrRq5eKzZXr5mZWf6cdMzMLDNOOmZmlhknHTMzy4yTTh387DUzs8Zw9Vod/Ow1s8y5eq3YXL1m\nZmb5c9IxM7PMOOmYmVlmnHTMzCwzTjp18LPXzMwaw9VrZtaMXL1WbK5eMzOz/DnpmJlZZpx0zMws\nM046ZmaWGSedMUQE5XKZY4891o/BMTNrgDGTjqSdJB1b9XqBpKu3ZgGSjpG0+1Z+5kJJd0v6UPr6\nzZJWSHpO0hFV071a0u2Snt6a+dcjIujtPZGurlWce+659Pb2OfGYTWPDF6HlctnngkkYr6XzUuAj\nk1zG+4A9tvIzAZwQEV9PX98HHAMs32KiiLsjYt4k4xtRuVzmyiv3Zf36owC46qp9KJfLU7EoM2ty\nyUVoH93dq+nuXs3ixSc58UzQeEnnC8BrJK2U9C8kyWAHSZdJulPSxcMTSjpA0g2SbpM0IOkVkhYB\nBwLfTVsq20n6nKRbJVUknTfGsjfXeUfEfRFRATZNfFW3zuDgIBs3Pl9qvmHD3zI4OJjV4s2siVQq\nFQYG5jA0tIShoSUMDMymUqnkHVYhjZd0PgP8NiLmR8SnSRLBfOATwH7AqyV1S9oWOBs4IiIOBC4A\nTo2Iy4HbgCURsX9E/BE4OyIOiogSsL2kw6do3Salo6ODGTOu5fnGVR8dHR15hmRmVnjjJZ2RflV6\na0Q8GEnb8nZgFvBaYDZwraSVQB+w5yjzeZukX0gqA29LP9d0Ojs7Wbhwb9ra1gKwaFHQ2dmZc1Rm\nlodSqURPz2ra25fT3r6cnp41lEqlvMMqpJkT+MyfqoY3Vs1jTUR0jfKZAJC0HfBV4ICIeEBSP7Dd\nVi4/k45USVx22WlUKhXOOec+vva1U5HyfjKHmeVBEpdeeurmLrVS6UifDyZovJbO00D7ONMEcBfw\nckkHA0jaVtJ+VfPYMR0eTjBPSNoBeA9bl0REhs9kkkRnZyfnnHOOdzCzaW74fNDZ2enzwSSMmXQi\n4gngZ+lN/y+SJIgXJImIeA5YBHxR0u3ASuCN6egLgXMlrQD+CHwDWA0MALeMtfjhAUlvkLQuXcZ5\nknwHz8ysgJryKdOSLgB+EBFX1Dn90xFR2yJrvhUzs3rl3ZTw+WNyCveU6d8Dpwz/OHQ0wz8OBR7O\nJiwzM5uMpmzpNEjLrpjZNOCWTrEVrqXTVJYuXZp3CGZmLcEtnTpI8iMvzLLllk6xuaVjZmb5c9Ix\nM7PMOOmYmVlmnHTMzCwzTjp16O/vzzsEM7OW4Oo1M2tGrl4rNlevmZlZ/px0zMwsM046ZmaWGScd\nMzPLjJNOHfzsNTOzxnD1Wh387DWzzLl6rdhcvWZmZvlz0jEzs8w46ZiZWWacdMzMLDNOOnXws9fM\nzBrD1Wtm1oxcvVZsrl4zM7P8OemYmVlmnHTMzCwzM/MOoAgigkqlAkCpVELKu7vZzKyYmralI2mW\npGclrZC0l6TrJa2RtFrScVXTnS7pIUnHT0UcEcHs2W+iq2sVXV2r6O3t8yNxzKapiKBcLlMul30e\nmKCmrV6TNAu4OiJKkl4BvCIibpe0A/BLYGFE3JlO2w8MRcQZVbNoyIqtWrWKefPmbTG7229fxdy5\ncxsxezMbWd7dCS84f0QEvb19DAzMAeCww9ZwySXL3PMxsmJXr0XEwxFxezo8BNwJ7JHFsgcHB1/w\n3rx5c/F+Zja9VCoVBgbmMDS0hKGhJQwMzN7c7W71K9w9nbQFNB+4JYvldXR0pEPL03/XAMsAIUGT\nNhTNzJpSIVo6w9KutcuBT6QtninX2dkJQFvbWtra1rJoUbBpU5JsnHDMpo9SqURPz2ra25fT3r6c\nnp41lEqlvMMqnMK0dCRtC1wBXBwRV2W4XABuvvkdgKvXzKYrSVx66alVlaxH+lwwAYVIOkq27PnA\nHRFxVtbL7+/v39ziMbPpS5LPBZNUlO61buC9wFslrUz/Dstq4f7vqs3MGqMQLZ2IuImxE6TbuGZm\nBdDMLZ0NwE6SVow1kaTTgb8BMiksMDOziWvaH4c2QMuumNk0kHfvhc8fk1PsH4eamVlrcNKpgwsJ\nzMwaw91rdZDkh/uZZcvda8Xm7jUzM8ufk46ZmWXGScfMzDLjpGNmZplx0qlDf39/3iGYmbUEV6+Z\nWTNy9VqxuXrNzMzy56RjZmaZcdIxM7PMOOmYmVlmnHTq4GevmZk1hqvX6uBnr5llztVrxebqNTMz\ny5+TjpmZZcZJx8zMMuOkY2ZmmXHSqYOfvWZm1hiuXjOzZuTqtWJz9ZqZmeXPScfMzDIzM+8Aiiwi\nqFQqAJRKJaS8ewTMzJpb07Z0JM2S9KykFZJeLOlWSbdLukPS56umO13SQ5KOzzK+iKC390S6ulbR\n1bWK3t4+P7XArIVFBOVymXK57GN9Epq2kEDSLODqiCilr9si4hlJM4GbgBMi4qZ0XD8wFBFnVM2i\nYSu2dOnSFzx/bbRGTZN+nWZFk3e3wRZHcnKR2cfAwBwADjtsDZdcssy9G6MrfiFBRDyTDr4ImAE8\nmdWyTz755C1ej7WfeR80az2VSoWBgTkMDS1haGgJAwOzN3et29YpzD0dSdsAK4DXAOdExB35RhRA\nHzAnfb0GWEb+F2hmZs2rSC2dTRExD9gLeLOkBfnFAps2wRFHBG1ta2lrW8uiRcGmTe5eM2tFpVKJ\nnp7VtLcvp719OT09ayiVSnmHVUiFuadTM+6fgGcj4l/T11N6T2e0/9rA1WtmUybvg+kFB7yP960y\n6pdTiO41SbsCGyLid5K2Bw4BTh7nY1NOEp2dnXmHYWYZ8PHeGIVIOsAewIXpfZ1tgO9ExHVZLdzP\nXjMza4xCdq+NMO1S4Omp6l4zs8zl3Xfl88fkFLJkegOwk6QVY00k6XTgb4ChTKIyM7MJa9qWTgO0\n7IqZTQNu6RRbIVs6ZmbWYpx0zMwsM046dah97pqZmU2M7+nUYbQfh5rZlPE9nWLzPR0zM8ufk46Z\nmWXGScfMzDLjpGNmZplx0qmDn71mZtYYrl4zs2bk6rVic/WamZnlz0nHzMwy46RjZmaZcdIxM7PM\nOOnUwc9eMzNrDFev1cHPXjPLnKvXis3Va2Zmlj8nHTMzy4yTjpmZZcZJx8zMMuOkUwc/e83MrDFc\nvWZmzcjVa8Xm6jUzM8vfzLwDaCURQaVSAaBUKiHlfbFmZtZcmralI2mWpGclrah6b4aklZKurnrv\ndEkPSTo+n0gTEUFv74l0da2iq2sVvb19/kGpWQuJCMrlMuVy2cf2JDRt0kn9JiL2r3r9CeAOqvpb\nI+JTwLlZB1arXC5z5ZX7sn79UaxffxRXXbUP5XI577DMrAGSi8o+urtX0929msWLT3LimaBmTzqb\nSdoLeAfwTTK+yVjPs9cGBwfZuPH5sDZs2IbBwcEpjMrMslKpVBgYmMPQ0BKGhpYwMDB7c1e6bZ3C\nJB3gS8CngE1ZL/jkk08ed5qOjg5mzLgWWA4sZ+bM6+jo6Jjy2MzMiqQQSUfS4cCjEbGS/EspR9TZ\n2cnChXvT1raWtra1LFy4N52dnXmHZWYNUCqV6OlZTXv7ctrbl9PTs4ZSqZR3WIXUtL/TkTQLuDoi\nSpJOA44CNgDbATsCV0TE0em0/cBQRJxRNYvMnzLt6jWzhsn74HnBAe/je6uM+uUUIunUvP8W4ISI\n+Muq95oi6ZhZw+R9RvcBPzkt9+NQ7xBmZgVUuB+HRsSNwI01b0/pVZGfvWZm1hjN3L22F/Bz4PGa\n3+rUTnc6sBD414g4r2pUc66YmdXD3WvFVrx7Og3QsitmNg046RRby93TMTOzAnLSMTOzzDjpmJlZ\nZpx06lDPs9fMzGx8LiSog38capY5FxIUmwsJzMwsf046ZmaWGScdMzPLjJOOmZllxkmnDn72mplZ\nY7h6zcyakavXis3Va2Zmlj8nHTMzy4yTjpmZZcZJx8zMMuOkUwc/e83MrDFcvVYHP3vNLHOuXis2\nV6+ZmVn+nHTMzCwzTjpmZpYZJx0zM8uMk04d/Ow1M7PGcPWamTUjV68VW/7Va5KGRnhvqaT7Ja2U\n9GtJV0h6fdX4CyXdnY5fKWlu1bgvSxqUtErS/EbHGxGUy2XK5bLLpc3MGiTL7rWRztwBnBkR8yNi\nX+AS4CeSdq0af0I6fn5ErAKQ9A5gn4joAD4EnNPQQCPo7T2Rrq5VdHWtore3z4nHbJrzhWhjNMM9\nnc3NsIi4FPgRsGSk8VXeCVyUfuYWYGdJuzUqoHK5zOWXf571649i/fqjuPzy0yiXy42avZkVTHIh\n2kd392q6u1ezePFJTjwT1AxJp9YK4HVVrz+fdqGdKelF6Xt7Auuqprkf2KtRAQwODr7gvXnz5qK8\ne5nNLBeVSoWBgTkMDS1haGgJAwOzqVQqeYdVSM2YdKpj+mza7fYGYBfgM1XjalNAwy47Ojo6gBOB\n5enfmxo5ezOzaasZk8584A6AiHg4/ffPwIXAQek0DwB7V31mr/S9hujs7OSII4K2trW0ta0FbmLT\nJnBr2mx6KpVK9PSspr19Oe3ty+npWUOpVMo7rELKrGRa0tMR0V7zXj8wFBFnpK+PAM4GShHxhKTd\nI+IhSQK+BDwTESemhQQfi4h3SDoYOCsiDq5Z5KRWLCI2N5/nzp3r/luzbOXdmf2CA776nFAqlZD7\n28cy6peTZdLZCDxY9daZwI7AB4HHgJcAFaAvIn6VfuY64OUkK7AS+HBEPJOO+wrQA6wH3h8RK2oW\n6adMmxVX3md0H/CTk3/SyYGTjllxOekUW/4/DjUzM3PSqYOfvWZm1hjuXjOzZuTutWJz95qZmeXP\nScfMzDLjpGNmZplx0jEzs8w46dRh6dKleYdgZtYSXL1WB/841Cxzrl4rNlevWX1uuOGGvEPIjNfV\nJqIZvstmiAEmFoeTjm2hWXbmLHhdbSKa4btshhjAScfMzJqck46ZmWWmZQsJJLXmiplNExGRWzGB\nzx+TN9r2a9mkY2Zmzcfda2ZmlhknHTMzy4yTzjgk9Uj6laRBSZ/JO56pJOleSWVJKyXdmnc8jSTp\nW5IekVSpem8XST+W9GtJP5K0c54xNsoo67pU0v3ptl0pqSfPGItopO81z+VJWiDp91Xb9KQpimNv\nSddLWiNptaTjJjM/J50xSJoBfAXoAfYDjpT0+nyjmlIBLIiI+RFxUN7BNNgFJNux2j8CP46IfYHr\n0tetYKR1DeDMdNvOj4iBHOIqupG+17yXd2PVNl02RXE8B3wyImYDBwMfrT0PSrq33pk56YztIOA3\nEXFvRDwHfA94V84xTbW8Hz8yJSLip8BTNW+/E7goHb4IWJhpUFNklHWFFt22WRnje81zeVO+TSPi\n4Yi4PR0eAu4E9qidrN75OemMbU9gXdXr+9P3WlUA10q6TdIH8w4mA7tFxCPp8CPAbnkGk4GPS1ol\n6fxW6Uqc5gLoSrfp/5W031QvUNIsYD5wy0Tn4aQztulWT94dEfOBw0ia0G/KO6CsRPLbgVbe3ucA\n/x2YBzwEnJFvONYAK4C9I2IucDZw1VQuTNIOwOXAJyJiSFLf8P0kYI+qe0tnjzUfJ52xPQDsXfV6\nb5LWTkuKiIfSfx8DriTpXmxlj0h6BYCk3YFHc45nykTEo5ECvknrb9uWFxFPR8Qz6fAPgW0l7TIV\ny5K0LXAFcHFEXJUu89Th+0nAg1X3lj4+1rycdMZ2G9AhaZakFwGLge/nHNOUkNQmqT0dfglwKJBJ\nlU6Ovg8ckw4fwxRfKeYpTarD/orW37YtT9JukpQOH0TyY/8np2A5As4H7oiIsyY7v5mTD6l1RcQG\nSR8DrgFmAOdHxJ05hzVVdgOuTPfhmcB3I+JH+YbUOJL+D/AWYFdJ64DPAV8ALpX0AeBeoDe/CBtn\nhHXtBxZImkfShXgP8Pc5hlhIVd/ry4b3oYi4IIPlVW/HbQEi4jxgEXCspA3AM8BfT1Eo3cB7gXLa\nlQbw2ZoKyLq7pv0YHDMzy4y718zMLDNOOmZmlhknHTMzy4yTjpmZZcZJx8zMMuOkY2ZmmXHSMTOz\nzDjpmJn20s6hAAAACElEQVRZZv4/SYv7DywlXboAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Goodness of Fit\n", "\n", "Checking for model convergence is only the first step in the evaluation\n", "of MCMC model outputs. It is possible for an entirely unsuitable model\n", "to converge, so additional steps are needed to ensure that the estimated\n", "model adequately fits the data. One intuitive way of evaluating model\n", "fit is to compare model predictions with the observations used to fit\n", "the model. In other words, the fitted model can be used to simulate\n", "data, and the distribution of the simulated data should resemble the\n", "distribution of the actual data.\n", "\n", "Fortunately, simulating data from the model is a natural component of\n", "the Bayesian modelling framework. Recall, from the discussion on\n", "imputation of missing data, the posterior predictive distribution:\n", "\n", "$$p(\\tilde{y}|y) = \\int p(\\tilde{y}|\\theta) f(\\theta|y) d\\theta$$\n", "\n", "Here, $\\tilde{y}$ represents some hypothetical new data that would be\n", "expected, taking into account the posterior uncertainty in the model\n", "parameters. Sampling from the posterior predictive distribution is easy\n", "in PyMC. The code looks identical to the corresponding data stochastic,\n", "with two modifications: (1) the node should be specified as\n", "deterministic and (2) the statistical likelihoods should be replaced by\n", "random number generators. Consider again the `gelman_bioassay` example, \n", "where deaths are modeled as a binomial random variable for which\n", "the probability of death is a logit-linear function of the dose of a\n", "particular drug." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from pymc import Normal, Binomial, deterministic, invlogit\n", "\n", "n = [5]*4 \n", "dose = [-.86,-.3,-.05,.73] \n", "x = [0,1,3,5]\n", "\n", "alpha = Normal('alpha', mu=0.0, tau=0.01) \n", "beta = Normal('beta', mu=0.0, tau=0.01)\n", "\n", "@deterministic \n", "def theta(a=alpha, b=beta, d=dose):\n", " \"\"\"theta = inv_logit(a+b)\"\"\" \n", " return invlogit(a+b*d)\n", "\n", "# deaths ~ binomial(n, p)\n", "deaths = Binomial('deaths', n=n, p=theta, value=x, observed=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The posterior predictive distribution of deaths uses the same functional\n", "form as the data likelihood, in this case a binomial stochastic. Here is\n", "the corresponding sample from the posterior predictive distribution:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "deaths_sim = Binomial('deaths_sim', n=n, p=theta)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that the observed stochastic `Binomial` has been replaced\n", "with a stochastic node that is identical in every respect to \\`deaths\\`,\n", "except that its values are not fixed to be the observed data -- they are\n", "left to vary according to the values of the fitted parameters.\n", "\n", "The degree to which simulated data correspond to observations can be\n", "evaluated in at least two ways. First, these quantities can simply be\n", "compared visually. This allows for a qualitative comparison of\n", "model-based replicates and observations. If there is poor fit, the true\n", "value of the data may appear in the tails of the histogram of replicated\n", "data, while a good fit will tend to show the true data in\n", "high-probability regions of the posterior predictive distribution.\n", "The Matplot package in PyMC provides an easy way of producing such\n", "plots, via the `gof_plot` function." ] }, { "cell_type": "code", "collapsed": false, "input": [ "M_gof = MCMC([alpha, beta, theta, deaths, deaths_sim])\n", "M_gof.sample(2000, 1000)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r", " [-----------------100%-----------------] 2000 of 2000 complete in 0.4 sec" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "Matplot.gof_plot(deaths_sim.trace(), x, bins=10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Plotting MCMC[0]-gof\n", "Plotting" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " MCMC[1]-gof\n", "Plotting" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " MCMC[2]-gof\n", "Plotting" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " MCMC[3]-gof\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n/T9f+PP8MSj/6AAAAABJRU5ErkJggg==\n", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n/x/308Jqg6rzAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A second approach for evaluating goodness of fit using samples from the\n", "posterior predictive distribution involves the use of a statistical\n", "criterion. For example, the Bayesian p-value [(Gelman et al. 1996)](http://www.cs.princeton.edu/courses/archive/fall09/cos597A/papers/GelmanMengStern1996.pdf) uses a\n", "discrepancy measure that quantifies the difference between data\n", "(observed or simulated) and the expected value, conditional on some\n", "model. One such discrepancy measure is the Freeman-Tukey statistic\n", "[(Brooks et al. 2000)](http://projecteuclid.org/DPubS?service=UI&version=1.0&verb=Display&handle=euclid.ss/1009213003):\n", "\n", "$$D(x|\\theta) = \\sum_j (\\sqrt{x_j}-\\sqrt{e_j})^2,$$\n", "\n", "where the $x_j$ are data and $e_j$ are the corresponding expected\n", "values, based on the model. Model fit is assessed by comparing the\n", "discrepancies from observed data to those from simulated data. On\n", "average, we expect the difference between them to be zero; hence, the\n", "Bayesian *p* value is simply the proportion of simulated discrepancies\n", "that are larger than their corresponding observed discrepancies:\n", "\n", "$$p = Pr[ D(x_{\\text{sim}}|\\theta) > D(x_{\\text{obs}}|\\theta) ]$$\n", "\n", "If $p$ is very large (e.g. $>0.975$) or very small (e.g. $\\lt 0.025$) this\n", "implies that the model is not consistent with the data, and thus is\n", "evidence of lack of fit. Graphically, data and simulated discrepancies\n", "plotted together should be clustered along a 45 degree line passing\n", "through the origin.\n", "\n", "The `discrepancy` function in the `diagnostics` package can be used to\n", "generate discrepancy statistics from arrays of data, simulated values,\n", "and expected values:\n", "\n", " D = pymc.discrepancy(x, x_sim, x_exp)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from pymc import discrepancy\n", "\n", "expected = theta.trace\n", "d = discrepancy(x, deaths_sim, (theta.trace() * n).T)\n", "d[0][:10], d[1][:10]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Bayesian p-value: p=0.528\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "(array([ 8.00586116, 7.54824818, 7.61897007, 5.51814759, 4.71425899,\n", " 5.92566363, 6.5113111 , 6.8857899 , 6.75169211, 6.61520254]),\n", " array([ 6.333347 , 6.59294285, 4.42646029, 4.10638046, 3.23953671,\n", " 3.96147884, 4.84305854, 4.14681932, 4.6239425 , 6.15356062]))" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a dataset of size $n$ and an MCMC chain of length $r$, this implies\n", "that `x` is size `(n,)`, `x_sim` is size `(r,n)` and `x_exp` is either\n", "size `(r,)` or `(r,n)`. A call to this function returns two arrays of\n", "discrepancy values (simulated and observed), which can be passed to the\n", "`discrepancy_plot` function in the \\`Matplot\\` module to generate a\n", "scatter plot, and if desired, a *p* value:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "Matplot.discrepancy_plot(d)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Plotting discrepancy-gof\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ngDWaTbK4FwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise: Meta-analysis of beta blocker effectiveness\n", "\n", "Carlin (1992) considers a Bayesian approach to meta-analysis, and includes the following examples of 22 trials of beta-blockers to prevent mortality after myocardial infarction.\n", "\n", "In a random effects meta-analysis we assume the true effect (on a log-odds scale) $d_i$ in a trial $i$\n", "is drawn from some population distribution. Let $r^C_i$ denote number of events in the control group in trial $i$,\n", "and $r^T_i$ denote events under active treatment in trial $i$. Our model is:\n", "\n", "$$\\begin{aligned}\n", "r^C_i &\\sim \\text{Binomial}\\left(p^C_i, n^C_i\\right) \\\\\n", "r^T_i &\\sim \\text{Binomial}\\left(p^T_i, n^T_i\\right) \\\\\n", "\\text{logit}\\left(p^C_i\\right) &= \\mu_i \\\\\n", "\\text{logit}\\left(p^T_i\\right) &= \\mu_i + \\delta_i \\\\\n", "\\delta_i &\\sim \\text{Normal}(d, t).\n", "\\end{aligned}$$\n", "\n", "We want to make inferences about the population effect $d$, and the predictive distribution for the effect $\\delta_{\\text{new}}$ in a new trial. Build a model to estimate these quantities in PyMC, and (1) use convergence diagnostics to check for convergence and (2) use posterior predictive checks to assess goodness-of-fit.\n", "\n", "Here are the data:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "r_t_obs = [3, 7, 5, 102, 28, 4, 98, 60, 25, 138, 64, 45, 9, 57, 25, 33, 28, 8, 6, 32, 27, 22]\n", "n_t_obs = [38, 114, 69, 1533, 355, 59, 945, 632, 278,1916, 873, 263, 291, 858, 154, 207, 251, 151, 174, 209, 391, 680]\n", "r_c_obs = [3, 14, 11, 127, 27, 6, 152, 48, 37, 188, 52, 47, 16, 45, 31, 38, 12, 6, 3, 40, 43, 39]\n", "n_c_obs = [39, 116, 93, 1520, 365, 52, 939, 471, 282, 1921, 583, 266, 293, 883, 147, 213, 122, 154, 134, 218, 364, 674]\n", "N = len(n_c_obs)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "# Write your answer here" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", "Gelman, A., & Rubin, D. B. (1992). Inference from iterative simulation using multiple sequences. Statistical Science. A Review Journal of the Institute of Mathematical Statistics, 457\u2013472.\n", "\n", "Geweke, J., Berger, J. O., & Dawid, A. P. (1992). Evaluating the accuracy of sampling-based approaches to the calculation of posterior moments. In Bayesian Statistics 4.\n", "\n", "Brooks, S. P., Catchpole, E. A., & Morgan, B. J. T. (2000). Bayesian Animal Survival Estimation. Statistical Science. A Review Journal of the Institute of Mathematical Statistics, 15(4), 357\u2013376. doi:10.1214/ss/1177010123\n", "\n", "Gelman, A., Meng, X., & Stern, H. (1996). Posterior predicitive assessment of model fitness via realized discrepencies with discussion. Statistica Sinica, 6, 733\u2013807.\n", "\n", "Raftery, A., & Lewis, S. (1992). One long run with diagnostics: Implementation strategies for Markov chain Monte Carlo. Statistical Science. A Review Journal of the Institute of Mathematical Statistics, 7, 493\u2013497.\n", "\n", "[CrossValidated: How to use scikit-learn's cross validation functions on multi-label classifiers](http://stats.stackexchange.com/questions/65828/how-to-use-scikit-learns-cross-validation-functions-on-multi-label-classifiers)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.core.display import HTML\n", "def css_styling():\n", " styles = open(\"styles/custom.css\", \"r\").read()\n", " return HTML(styles)\n", "css_styling()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "" ] } ], "prompt_number": 20 } ], "metadata": {} } ] }