{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Schelling's Segregation Model" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import scipy as sp\n", "import networkx as nx\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before we start, look at [here](http://ncase.me/polygons/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On this seminar we are implementing Schelling's Segregation Model for 2 classes.\n", "\n", "To recall the model setting:\n", "* Each node has a fixed threshold of neighbourhood tolerance. If the threshold is not violated a node is called satisfied\n", "* Pick unsatisfied node\n", "* Pick a distanation node, s.t. new utility valus is greater than the current one\n", "* Move the chosen node to new destination, recalculate all utilities\n", "\n", "We will run it no Knight Moves Network. However for the sake of demonstration it would be better to run it on Regular Lattice with 8 neighbours" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def GenKnightNetwork(boardSize):\n", " G = nx.Graph()\n", " pos = {}\n", " for row in xrange(boardSize):\n", " for col in xrange(boardSize):\n", " nodeId = row + col*boardSize\n", " pos[nodeId] = np.array([1.0*row/boardSize, 1.0*col/boardSize])\n", " newPos = GetLegalMoves(row, col, boardSize)\n", " for e in newPos:\n", " nid = e[0] + e[1]*boardSize\n", " G.add_edge(nodeId, nid)\n", " return G, pos\n", "\n", "def GetLegalMoves(x,y,boardSize):\n", " newMoves = []\n", " moveOffsets = [(-1,-2),(-1,2),(-2,-1),(-2,1),\n", " ( 1,-2),( 1,2),( 2,-1),( 2,1)]\n", " for i in moveOffsets:\n", " newX = x + i[0]\n", " newY = y + i[1]\n", " if isLegalCoord(newX,boardSize) and \\\n", " isLegalCoord(newY,boardSize):\n", " newMoves.append((newX,newY))\n", " return newMoves\n", "\n", "def isLegalCoord(x,boardSize):\n", " if x >= 0 and x < boardSize:\n", " return True\n", " else:\n", " return False" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def SegregationModel(A, modelParams):\n", " \n", " # Grabbing model parameters\n", " dens = modelParams.get('density', 0.5)\n", " propA = modelParams.get('propA', 0.5)\n", " thresh = modelParams.get('threshold', 0.5)\n", " maxIters = modelParams.get('maxIters', 100)\n", " utilFunc = modelParams.get('utilFunc', 1)\n", " \n", " # Some initializations\n", " \n", " # Vertices Number\n", " V = A.shape[0]\n", " nAB = np.round(V*dens)\n", " nA = np.round(nAB*propA)\n", " nB = nAB - nA\n", " nE = V - nAB\n", " \n", " # Masks and Indices\n", " vAB,vA,vB,vE = np.zeros((V,1), dtype=bool),np.zeros((V,1), dtype=bool),np.zeros((V,1), dtype=bool),np.zeros((V,1), dtype=bool)\n", "\n", " idx = np.random.permutation(V)\n", " idxA = idx[0:nA]\n", " vA[idxA] = 1\n", "\n", " idxB = idx[nA:(nAB)]\n", " vB[idxB] = 1\n", "\n", " vE = ~(vA | vB)\n", " idxE = idx[(nAB):]\n", "\n", " idxAB = np.concatenate((idxA, idxB))\n", " \n", " # Calculate neighourhood types for the 1st step\n", " P = np.empty((V, maxIters))\n", " P[idxA,1] = 1.0*A[idxA,].dot(vB).flatten()/np.sum(A[idxA,], axis=1)\n", " P[idxB,1] = 1.0*A[idxB,].dot(vA).flatten()/np.sum(A[idxB,], axis=1)\n", "\n", " \n", " for t in xrange(1, maxIters):\n", " \n", " # Calculate all utilities\n", " utilAll = utilFunc(P[idxAB,t-1], thresh)\n", " \n", " # Check utility state\n", " if np.all(utilAll):\n", " break\n", " else: # Choose node to move\n", " utilCur = True\n", " while utilCur:\n", " idxFrom = np.random.choice(idxAB)\n", " utilCur = utilFunc(P[idxFrom, t-1], thresh)\n", "\n", " # Choose candidate node\n", " candP = np.empty((V,)) * np.nan\n", " if idxFrom in idxA:\n", " candP[idxE] = 1.0*A[idxE,].dot(vB).flatten()/np.sum(A[idxE,], axis=1)\n", " else:\n", " candP[idxE] = 1.0*A[idxE,].dot(vA).flatten()/np.sum(A[idxE,], axis=1)\n", " \n", " # Calculate candidate utility\n", " utilCand = utilFunc(candP, thresh)\n", " \n", " # Move node\n", " if np.any(utilCand > utilCur):\n", " idxTo = np.random.choice(np.where(utilCand > utilCur)[0])\n", " if idxFrom in idxA:\n", " vA[idxFrom], vA[idxTo] = vA[idxTo], vA[idxFrom]\n", " idxA[idxA == idxFrom] = idxTo\n", " else:\n", " vB[idxFrom], vB[idxTo] = vB[idxTo], vB[idxFrom]\n", " idxB[idxB == idxFrom] = idxTo\n", " \n", " idxAB[idxAB == idxFrom], idxE[idxE == idxTo] = idxTo, idxFrom\n", " \n", " # Update neighbourhood state\n", " P[idxA,t] = 1.0*A[idxA,].dot(vB).flatten()/np.sum(A[idxA,], axis=1)\n", " P[idxB,t] = 1.0*A[idxB,].dot(vA).flatten()/np.sum(A[idxB,], axis=1)\n", "\n", " print 'Finished on {0} iteration'.format(t)\n", " return vA.astype('double')+vB.astype('double')*2" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Getting the graph\n", "\n", "g,pos = GenKnightNetwork(10)\n", "A = np.asarray(nx.adj_matrix(g).todense())" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Finished on 10 iteration\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/shestakoff/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:1: RuntimeWarning: invalid value encountered in less\n", " if __name__ == '__main__':\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd8AAAFBCAYAAAA2bKVrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXtcVNe9//0Z6DAwzLC5zGt+ESIiAUEuhltBppKQUhAm\nCpiA0fAy9tQTn6apN5pzwPTV2NQ09vEX8uR1PNhqvPSReMNiUcKjMRENykVigje8vPKzatrKRUAF\nB2Ru3+ePniGMM8DcnNngev/pZq95+1l777X3XnutJSAiAoPBYDAYDKfh5moBBoPBYDCeNFjjy2Aw\nGAyGk2GNL4PBYDAYToY1vgwGg8FgOBnW+DIYDAaD4WRY48tgMBgMhpNhjS+DwWAwGE6GNb4MBoPB\nYDgZ1vgyGAwGg+FkWOPLYDAYDIaTYY0vg8FgMBhOhjW+DAaDwWA4Gdb4MhgMBoPhZFjjy2AwGAyG\nk2GNL4PBYDAYToY1vgwGg8FgOBnW+DIYDAaD4WRY48tgMBgMhpNhjS+DwWAwGE6GNb4MBoPBYDgZ\n1vgyGAwGg+FkWOPLYDAYDIaTYY0vg8FgMBhOhjW+DAaDwWA4Gdb4MhgMBoPhZH7gagHG6Fy+fBnX\nr1/HgwcPIJVKERkZibCwMObDfJgP82E+LvaxG2LwisHBQaqoqKD42fEU8HQAxbwYTfEL4yg6J4o4\nOUdzMuZQVVUVaTQap/pER8eTWBxAHBdLUmkCcVwMeXlxlJzMfFh9TTyf+OhoChCLKZbjKEEqpRiO\nI87Li+YkJ7N8mI9TEBARufoGgPEvWltbocxTwi/KF7G/iEH4i2Fwc/++Z0A7pMXVg9dwcfMl6O8Q\nPvv0s8d659fa2oqsLCUePvTHgwezAMyAcU+FFsAVSKUX4OurQ13dk+fD6mti+SizsuD/8CFmPXgw\nig1wQSqFztcXn9XVPXH5MB/nwRpfntDU1ARlnhKZf8xA5MsR4/79N39qxZl3W3DqxGlERkY+Fp/M\nTCVUqiwAUeP+vZvb15BKm9DcfOqJ8WH1NbF8lJmZyFKpLLABvnZzQ5NUilPNzU9MPszHubDGlwfc\nunULCSkJmLszE2E5z1i834U/X8TXv2vF+bPn4e/v71CfWbMS0deXDSDc4v0EgnOQy8/i8uXJ78Pq\na2L5JM6ahey+PitsgHMCAc7K5Th/+fKkz4f5OB/33/72t791tcSTzq/X/Rr6H+qQ+Ea8Vfv9r7j/\nhdtf38bDfzzEnB/NcZhPaemv0dJC0OuTrNzzKej1/4S39yDS0iavD6uvieXz69JSUEsLkvR6K22A\nf+r1GPT2xpy0NIf58C0f5uMa2JOvi1GpVAgMDsRPW5eAC+as3v/22XYcXXgMt769BXd3d4f4yOWB\nGBj4GQBfG0r4J+TyI7h9++ak9WH1NbF8AuVy/GxgwEYb4Ihcjpu3b0/afJiPa2DjfF3M7j27EZwW\nbNOFHAACk6bAQybE0aNHHeOzezcEgmmw7cAHgCAMDk5iH1ZfE85nmkBghw0gHByc1PkwH9fAGl8X\nc7LhJELmB9tVRvD8YNSfrneIz7FjJ6FSTberjP7+EHz55eT0YfU1sXxOHjuG6SqVXWWE9Pej/ssv\nHeLDt3yYj+tgja+L6bnbA68AL7vK8PL3RM+9Hof4dHf3ArDPB/BCV9fk9GH1NTZ88+nt7naADdDT\n1eUIHd7lw3xcB2t8XYzIQwSdWmdXGTq1HiIPkWN8RB4A7PMBdPD0nKQ+rL7GhG8+HiKRA2wAkaen\nI3R4lw/zcR2s8XUxQU8F4f7f7ttVRv/f+hD0VJBDfIKDgyAQ3LOrDKGwD8HBk9Mn6Kkg3LvO6mui\n+AQFB+OeQGBXGX1CIYKC7etqMMC3fJiP62BDjVyMH+eH8t+WI+HNeAhsuEhoBjU4WHQIQ6ohEBGm\nTZsGLy/bX9sEBPhh//7/hkaTAMCWi5YGev1foNXa59PR0YFdu3ahtrYG7e0XAczmhU/NoRpcOnEJ\nKWuSXVpffM2Hbz41tbW42N5uhw3wF70eQ1rtpMzHET4eHp9i8+ZNdo2t5ZuPM2BPvi5GoVCA8/LF\njeM3bdr/cuUVpCpS8cYbb6C2thbTp09HTk4OduzYgd7eXpt85HJfADds8gHakJqqsMmno6MDmzdv\nxgsvvIDIyEg0NDTgnXfeQUjIFF75TAmY4pL6mij58M1nSkiIHTaAIpXV11g+SUk/xDPPWD7ZDF99\nnA0b58sDtmzdgv/9yf/GK8cL4C60fGya+oEaFSl7sOX/3oJ58+YBAB48eIBPP/0UBw4cwBdffAGF\nQoHCwkLk5+dbfCe4ZcsWFBd/gIGBxQCsGSs3BG/vXdi3708W+3R0dODgwYM4cOAAWltb8eKLL2Lh\nwoWYO3cuPP+nn413Pk6srwmZDw99PiguxuKBASttgF3e3vjTvn2TPh9H+YwH33xcCWt8eYBWq8W8\nBfNwx68LOTvmwu0H47+Q0AxqUP1SDWY/PRs7tu4w+wrU1oZYq9Vi7tx5aGy8g4cPX4RlJ4AGYvFB\nvPRSCnbtGtunoqICdXV1EIvFGBwchFKpxJIlS4xOQL77PM76mgz58M1n3ty5uNPYiBcfPrTQBjgo\nFiPlpZewY9euSZ/P4/AxYEmD60wfvsAaX56gUqkw76V56BJ24sf/lQ6/UL9R/7brUheql9Qg/ul4\nHD54GEKhcNzyrW2IVSoVFIrnceFCL4D5AMZ6au4E8FdkZMThyBHzPo+egFlZWQgODsb/+T//BydO\nnJiQPs//5Hn0iLsx72Ol3fU1GfPhm8/zCgV6L1yw0AaIy8jA4SNHnph8HqfPeA2uvT7e3p8hMzMB\nlZV7LLoe8gJnrl/IGBu1Wk0lvy4hX5kvReXMpFcOF9Kqf6yg/7hXTCu/+yW9tC+fwp8LI9kUGS0o\nWEAxMTE0MDBg9e/09/fT3r176aWXXiIfHx/Kzs6m7du3U09Pz/Df9PT00NSpUyk/v4AkEl+SSKII\nWExAMQGlBKwhoIAkknDiOBnl5Zn6tLe3U3l5OaWnpxPHcfTqq69SdXU1DQ4OThqfglcKbK6vJyEf\nvvkU5OeTr0RCURIJLQaoGKBSgNYAVABQuERCMo6jBXl5T2Q+zvCxBGt9fv/7P5BOp7P6d1wJa3x5\nyMDAAO3cuZOSfpREsikyEkvFJA+S05yMOVRZWUlqtZr0ej0tWrSIXn/9dbt+y9yJuW3bNsrKyqLi\n4mIjn9jYJOI4GYlEYvLzk1NysqlPUVGRXSfgRPaxpL6e5Hz45pMUG0syjiOxSERyPz+ak5zM8nGy\njzn0ej3NmzfPKp+JCGt8JzD379+n8PBw+uSTTxxSnuHEjI2NJXd3d8rKyjK5QzaH4Y43LS2N3Nzc\nSKFQ2H0CMh/mw3yeLB8DH3zwAaWkpNDQ0JBDyuMrrPGd4LS2tpJMJqOrV686pLzGxkaSy+XU1tY2\n5quq0V4xNTc3Mx/mw3yYj10+N2/edEh5fIY1vpOAP/3pTxQbG2tT/+9Ienp6KDg4mA4dOmT074Y7\nZKVSSZ6enuTv709eXl708ssvm73jZT7Mh/kwH0f5TFbYDFeTgMTERJw6dQp1dXWYP3++TWUQEV55\n5RWkpaVh5cqVw//e0dGBffv2YdeuXWhpaYFSqUR6ejr8/Pxw/PhxdHZ2Qq/XG820w3yYD/NhPo7w\nmdS4rNlnOBR7+39H9rM44itK5sN8mA/zscXnSYE1vjymra2NDh8+THv27KGamhr69ttvx/x7W/t/\nGxsbKSAggNavXz/mCTiWj7kTc926deTv7898mA/zYT5j+ljSz2vt9ZDvsMaXZwwODlJFRQVFR8eT\nWBxAHBdLUmkCcVwMeXlxlJw8h6qqqkij0Zjd35r+l/b2dtq4cSOJRCLy9vY2ewLa4jPyxPT09CSJ\nREJ//OMfLfqKcqL6xM+Op4CnAyjmxWiKXxhH0TlRxMk5mpPhIp/oaAoQiymW4yhBKqUYjiPOy4vm\nJCez+uJhPnzzcUZ9EY3fz2tLPhMFNsMVj/jXzDRKPHzojwcPZgGYAeO1L7QArkAqvQBfXx3q6j5D\nWFiYURlEhFdffRVSqRRbt241+Y1HZ57x9vZGUlIS9u/fbzLzjCN8+vv7MXfuXLS3t6O3t3fcuWcn\nmo8yTwm/KF/E/iIG4S+Gwc39ex/tkBZXD17Dxc2XoL9D+OxTJ/hkZcH/4UPMevBglHSAC1IpdL6+\n+Kyu7smrL57lwzefx11fIyEi5ObmYsaMGSgrK8OjOCIfPsMaX57Q1NSEzEwlVKosAFHj/r2b29eQ\nSpvQ3HwKkZGRRtv6+vqQlJSEdevWoaioaNSp3q5cuYLq6mrU19fDw8PjsfuUlJTA29t71LlnJ5qP\nMk+JzD9mIPLliHF9vvlTK86824JTJ04/Pp/MTGSpVBakA3zt5oYmqRSnmpufnPriWT5883lc9TXa\nlLZlZWU4cODAY8+Hr7DGlwfcunULs2Yloq8vG0C4xfsJBOcgl5/F5cvnTe4qv/jiC+Tn5yM6OhrX\nrl0zmVu1qakJ+fn5aGlpwbRp05zu8+jcs1FRUWhra8OpU6fw7LPP8t4nISUBc3dmIizH8qXLLvz5\nIr7+XSvOn3W8T+KsWcju67MiHeCcQICzcjnOX7486euLb/nwzcfR9XXu3DlkZmbi9OnTiIiIMJlb\n3tn58JEfuFqAAWzYsBEDA1Gw5sAHAKI49PX9HVu2bMXataUmT7hRUVHo7OzEjRs34Of3/cT/vb29\nWLRoET7++GOThtcVPt999x0SEhIQExOD5557zuQOmW8+Gz/ciKifzrSq4QWAWT+Nxd/r/oGt27ai\n9D8d6LNhA6IGBqxMB4gjwt/7+rB1yxaUrl07eeuLZ/nwzcdR9WXkGheH9957D4WFhThz5gwkEgkW\nLVqERYsWOS0fvsOefF2MSqWCXB6IgYGfAfC1oYR/QiKpQmJiLM6dO2f0hCsSiUz6f8frZ3G1z6N3\nyMnJyaivb4RavZw3Po0tjfj3i/8GLpiz2ub22Xb8df4hxEY40Ke+HsvVahvTAaokEsQmJk7e+uJZ\nPnzzsbe+5PIjuH37JtzdjZf+M/f9iTPyOSKX4+bt2yY+fGP8hUgZj5Xdu3dDIJgG2w58AAjCw4ce\nSEtLQ0dHB3bv3o28vDx4enpCIBBgy5YtOHnyJHbv3g0A+PDDD3Hnzh1s2LCBlz6GO+Sqqir885//\nREhICHS6IF75BKZOsanhBYDApCnwkAkd6hOk09mRDuDx8OGkri++5cM3H3vra3BQiKNHj5pscVU+\nwsFBsz58g712djHHjp2ESjXdrjK02pkYGlKbXSfTx8cHlZWVyMzMhLu7OzZu3IiWlhaTDxz46COR\nSHD3rgo63Uze+Kg0KkQWjv+B1VhELIyAesBBPnfvYqZOZ5fPTK0W6qGhyVlfPMuHbz6OqK/+/hB8\n+WU9XnzxRbt9HJFPSH8/6r/80qwPn2CNr4vp7u6F7XedBrzQ1dUz6ta4uDisXbsWr732Gnbv3m22\nn5f5WObTc7cHXIDUPht/T/TcdoxPb3e3A9IBerq6HOLDt/riWz5883kS64svsNfOLkYk8gBg350e\noIOnp2jUrUSEuro6hIaG4vPPP2c+9vh4iKBT2+ejU+sh8nCMj4dI5IB0AJGZpyhbfPhWX3zLh28+\nT2J98QXW+LqY4OAgCAT37CpDKOxDcHDQqNs//PBDdHd34/Tp00b9L8zHep+gp4Jw7/p9u3z6/9aH\noKcc5BMcjHsCgV0+fUIhgoKDHeLDu/riWT5883kS64svsFWNXExAgB/27/9vaDQJAGw56DTQ6/8C\nrXYIRGS02gjwr8HqK1aswLFjxxAYGIi0tDQUFRUhLy8PMpmMtz4dHR3YtWsXamtr0N5+EcBsXvjU\nHKrBpROXkLImGQIbLhKaQQ0OFh3CkMpBPrW1uNjebkc6wF/0egxptZOzvniWD998HFFfHh6fYvPm\nTWbH1roin089PLBp82bej/VlT74uRqFQQC73BXDDxhLakJqqwBtvvIHa2lpMnz4dOTk52LFjB65f\nv24ynnfk+LvBwUFe+dy4cQObN2/GCy+8gMjISDQ0NOCdd95BSMgUXvlMCZiCG8dv2mRzufIKUhWp\njvUJCbEjHUCR6lgf3tUXz/Lhm4+99ZWU9EM884zpmHdz8wk4I58fJiWZ9eEbrPF1MQKBACUlqyEW\nN8H6vpcheHt/hbff/pXR5/pLly5FbW0tIiMj4ebmhu7ubvT29g7vtXz5ckRHR2PVqlUu9+no6IBW\nq0VnZyciIiLQ0NCA1atXDw+jyM/PR2lpMa98in9ZjOb1LdBprPNRP1Dj7MZv8NaKtxzrU1qKJrHY\nhnSAr7y98au3357c9cWzfPjmY299lZSsNtlCRFi6dCkKCgqQm5s7/O/OyGd1SYmVe7oG1vjygGXL\nlmH27Gfg6VkLy08ADcTiaixYkGn0Sb1h3JxCoUBcXBzWr19vcod89+5dk/F3zvSpqqpCUFAQAgIC\nEBoaihMnTuCjjz7CtGnToFQqh8ct8tbnZ8sQxoXh6LJj0Gv1ltkManCo8FNkKbIeSz7PzJ6NWk9P\nK9IBqsViZC5YMPnri4f58M3HUfVlYOR43o6ODqMn3MbGRqflw2fYDFc8QaVSITt7Pr75phMDAz8B\nMFZ/RSeAvyIjIw5HjhyGUCg02mpu3uZHZ5JRKBRISUnBpk2b0NjYiIgI47GrKpUKCsXzuHChF8B8\nu31yc3OxcuVK1NXV/c/qKcZzz05En+d/8jx6xN2Y97ESfqF+GI2uS12oXlKD+KfjcfjgY/RRKNB7\n4YKF6QBxGRk4fOTIk1NfPMuHbz6Ps74enVseMJ3/2Z58PvP2RkJmJvZUVpr48JbHt1ohw1rUajW9\n9VYJSSS+JJFEEbCYgGICSglYQ0ABSSThxHEyystbQDExMSbr9o63PiaRZetv9vT00NSpUyk/v8Bm\nn5Hrh4rFYrPrh050n4JXCshX5ktROTPplcOFtOofK+g/7hXTyu9+SS/ty6fw58JINkVGCwqc5JOf\nT74SCUVJJLQYoGKASgFaA1ABQOESCck4jhbk5T2Z9cWzfPjm44z6Gslo649bm88ffv970ul0o/4O\nH2GNLw8ZGBignTt3UmxsEnGcjEQiMfn5ySk5eQ5VVlaSWq0mvV5PixYtotdff314P71eT/PmzaPi\n4mKLf6uvr49SU1MpJCSEfHx8KDs7m7Zt20ZZWVnD5VjjU1RUROXl5ZSenk4+Pj4UGBhIubm5Y56A\nk8Un6UdJJJsiI7FUTPIgOc3JcLFPbCzJOI7EIhHJ/fxoTnIyqy8e58M3H2fUlyXXMUvymYiwxncC\nc//+fQoPD6dPPvmEiIg++OADSklJoaGhIZvK2bZtG+3du5diY2PJ3d2dsrKyaPv27UZ3yOZob2+n\n8vJySktLIzc3N1IoFFRdXU0bNmxgPsyH+TAfi3zsvY5NNFjjO8FpbW0lmUxGe/fuJblcTjdv3nRI\nOW1tbcOvqgx3yCNPTMMJmJ6eThzHDb9iam5uZj7Mh/kwH7t8bC1nIsEa30lAWVkZCYVCqqysfCzl\nGPqMlEoleXp6kr+/P3l5edHLL79stk+H+TAf5sN8HOUzWWEzXE1wiAgbNmwAEUGn02H+/Pk2l/P+\n+++blNPR0YF9+/Zh165daGlpgVKpRHp6Ovz8/HD8+HF0dnZCr9cPz7TDfJgP82E+jvKZ1Dzetp3x\nuDH0j9y5c8eo38SeckJDQ2np0qUmr5jG+orS8Kpq4cKFlJiYyHyYD/NhPjb52FPORII1vjymra2N\nDh8+THv27KGamhr69ttvjbY3NjYa9Y8Y+k2uXr1q1e80NjZSQEAArV+/ntLT00kikZBIJKLy8nKj\nE3Asn/7+fnr33XdJJBKRVCql7OxsWrduHfn7+zMf5sN8mM+YPpZcx8a7Hk40WOPLMwYHB6miooLi\nZ8dTwNMBFPNiNMUvjKPonCji5BzNyZhDVVVV1NnZaXY872jj5swxclyet7e30R2voZze3l6rfSwZ\nV2ivT3R0PInFAcRxsSSVJhDHxZCXF0fJya7xYfmMk090NAWIxRTLcZQglVIMxxHn5UVzkpOZzxN6\n/BCNPi+BtfloNJpxf4tvsBmueERrayuUeUr4Rfki9hcxCH8xDG7u388Aqh3S4urBa7i4+RI6L3eh\nIK8AO3bsMCqDiPDqq69CKpVi69atJr/R0dGBgwcP4sCBA2htbYW3tzeSkpKwf/9+oyneiAg5OTlo\naGnA1OSnbfbp7+/H3Llz0d7ejt7eXigUChQWFiI/Px/+/v5W+5w82QChMBgPHswCMAPGM6RqAVyB\nVHoeGk0nFi9+/D4sn3HyOXkSwUIhZj14MIoNcF4qRadGg4LFi588nyfs+BkJESE3NxczZsxAWVmZ\nyTZr8tHfIXz26WcICwvDRIE1vjyhqakJyjwlMv+YgciXI8b9+6/Kv8ZX753F6ROnERkZabStr68P\nSUlJWLduHYqKikxOQMNUb1euXEF1dTXq6+vh4eFhxicHGeU/RlThTIf4lJSUwNvbGxUVFairq4NY\nLMbg4CCUSiWWLFkyrk9mphIqVSaA6HF9gBZw3Bk0Nz8+H5bPOPlkZiJTpbLQBjjDcTjd3Pzk+Dwh\nx8/IKW1HNsRlZWU4cOCAQ/L55k+tOPNuC06ZyYevsMaXB9y6dQsJKQmYuzMTYTmWL4V14c8X8fXv\nWnH+7HmTu8ovvvgC+fn5iI6OxrVr10zmVjU3/7MzfR6dezYqKgptbW04deoUnn32WROfWbMS0deX\nDSDcYh+B4Bzk8rO4fNnxPiyfsX0SZ81Cdl+fFTbAOYEAZ+VynL98edL7TPbj59F5mx+dW97Z+fAR\n1vjygDdXvYkLXufxwh+et3rf2teOoDBmIUr/s9TkCXfGjBno6upCa2sr/Py+n/i/t7cX8fHx2LRp\nk9FyX67y+e6775CQkIAZM2agra3N5A755z9/E9u3X4RWm2G1j5dXDX7zmwKsXes4H5bPOPn8/Oe4\nuH07MrRaq31qvLxQ8JvfoHTt2snrM0mPn0fZsmULysvLcebMGXh5eTk9H77DGl8Xo1KpEBgciJ+2\nLgEXzFm9/+2z7fjr/EOIjYjFuXPnjJ5wRSKRSf/vWP0sfPB59A45OTkZ9fWNUKuXA/C12gf4JySS\nKiQmOs6nsaUR/37x31g+o+VTX4/larWNNkCVRILYxMTJ6zPJjh+5/Ahu374Jd3d3oy3mvj9xRj5H\nFx7DrW9vmfjwDbaer4vZvWc3gtOCbTrQACAwaQo8ZEKkpaUNL0htWB9TIBCYrNs7cp1NPvoY1ic1\nLBQeEhICnS4Itl0YACAIDx96ONQnMHUKy2cMnyCdzg4bwOPhw0ntM9mOn8FBIY4ePWqyxZX5mPPh\nGz9wtcCTzsmGkwiZH2xXGRELI6AeUBt9vWjAx8cHlZWVyMzMhLu7OzZu3IiWlhaTDxz46CORSHD3\nrgo63fgfXIyFVjsTQ0OO8VFpVIgsHP+DuLGY1PncvYuZOkuXQDfPTK0W6qGhyekzCY+f/v4QfPll\nvdlF7F2RT/D8YNSfNu/DJ1jj62J67vaAC5DaVYaXvyd6bveMuj0uLg5r167Fa6+9ht27d5t8YMVn\nn+7uXth+Vz5shK4uls8YRg7Lp7e72wE2QE9X16T0YceP6/PhC+y1s4sReYigU9t3Z65T6yHyEI26\nnYhQV1eH0NBQfP755xPLR+QBwD4fQAdPT5bPGEYOy8dDJHKADSAy81Q3GXzY8eP6fPgCa3xdTNBT\nQbj/t/t2ldH/tz4EPRU06vYPP/wQ3d3dOH36tFH/y0TwCQ4OgkBwzy4fobAPwcGOy+fedZbPaAQF\nB+OeQGCXT59QiKDg0bs+JrQPO34efz43+sfMhy+wVY1cjB/nh/LfliPhzXgIbLhIaAY1OFh0CEOq\nIRDR8GojBpqamrBixQocO3YMgYGBSEtLQ1FREfLy8iCTyXjr09HRgV27dqG2tgbt7RcBzAZgy0VU\nA73+L9BqHeNTc6gGl05cQsqaZJaPuXxqa3Gxvd0OG+Avej2GtNrJ6TMJjx8Pj0+xefMms2NrXZHP\n/7fsKDb9P+Z9+AR78nUxCoUCnJcvbhy/adP+lyuvIFWRijfeeAO1tbWYPn06cnJysGPHDly/fh2L\nFi3Cxx9/PNzPEhcXh/feew+FhYUYHBzklc+NGzewefNmvPDCC4iMjERDQwPeeecdhIRMAXDDJh+g\nDampCof6TAmYwvIZK5+QEDtsAEWqY/Phnc8kO36Skn6IZ54xnQyjt7fXJfkk/TDJrA/fYI2vixEI\nBFjz5ho0r2+BTmNdX4f6gRpnN36Dt1a8ZfS5/tKlS1FbW4vIyEi4ubmhu7sbvb29w/stX74c0dHR\nWLVqlct9Ojo6oNVq0dnZiYiICDQ0NGD16tXDwyjy8/NRWloMsbgJ1vdNDcHb+yu8/favHOpT/Mti\nls9Y+ZSWokkstsEG+MrbG796++3J7TPJjp+SktUmW4gIS5cuRUFBgdFEPs7IZ80v1lj5/3ANrPHl\nAct+tgxhXBiOLjsGvVZv0T6aQQ0OFX6KLEWW0Sf1hnFzCoUCcXFxWL9+vckd8t27d03G3znTp6qq\nCkFBQQgICEBoaChOnDiBjz76CNOmTYNSqRwetzjss2wZZs9+Bp6etbD8AqGBWFyNBQsyHe/D8hnX\n55nZs1Hr6WmFDVAtFiNzwYLJ7zOJjx8DI8fzdnR0GD3hNjY2Oi0fPsNmuOIJKpUK816ahy5hJ378\nX+nwC/Ub9W+7LnWhekkN4p+Ox+GDhyEUCo22m5u3+dGZZBQKBVJSUrBp0yY0NjYiIsJ4bJ1KpcLz\nP3kePeJuzPtYabdPbm4uVq5cibq6OrS2tprMPWuJj0LxPC5c6AUwH8BY/TmdAP6KjIw4HDny+HxY\nPuPko1Cg98IFC22AuIwMHD5y5MnxeYKOn0fnlgdM53+2J5/P/6/jSJiWiD3/7x4TH97i4CUKGXag\nVqup5Ncl5CvzpaicmfTK4UJa9Y8V9B/3imnld7+kl/blU/hzYSSbIqMFBQsoJibGZN3e0dbHHIkl\n62/29PSZkVyyAAAgAElEQVTQ1KlTqeCVApt9Rq4fKhaLjdYPtdUnP7+AJBJfkkiiCFhMQDEBpQSs\nIaCAJJJw4jgZ5eU5x4flM04++fnkK5FQlERCiwEqBqgUoDUAFQAULpGQjONoQV7ek+nzBB4/Ixlt\n/XFr89mwcQPpdLpRf4ePsMaXhwwMDNDOnTsp6UdJJJsiI7FUTPIgOc3JmEOVlZWkVqtJr9fTokWL\n6PXXXx/eT6/X07x586i4uNji3+rr66PU1FQKCQkhHx8fys7Opm3btlFWVtZwOdb4FBUVUXl5OaWn\np5OPjw8FBgZSbm7umCegrT6xsUnEcTISicTk5yen5GTX+rB8xsknNpZkHEdikYjkfn40JzmZ+dCT\nffxYch2zJJ+JCGt8JzD379+n8PBw+uSTT4iI6IMPPqCUlBQaGhqyqZxt27bR3r17KTY2ltzd3Skr\nK4u2b99udIdsjvb2diovL6e0tDRyc3MjhUJB1dXVtGHDBubDfJgP87HIx97r2ESDNb4TnNbWVpLJ\nZLR3716Sy+V08+ZNh5TT1tY2/KrKcIc88sQ0nIDp6enEcdzwK6bm5mbmw3yYD/Oxy8fWciYSrPGd\nBJSVlZFQKKTKysrHUo6hz0ipVJKnpyf5+/uTl5cXvfzyy2b7dJgP82E+zMdRPpMVNsPVBIeIsGHD\nBhARdDod5s+fb3M577//vkk5HR0d2LdvH3bt2oWWlhYolUqkp6fDz88Px48fR2dnJ/R6/fBMO8yH\n+TAf5uMon0nN423bGY8bQ//InTt3jPpN7CknNDSUli5davKKaayvKA2vqhYuXEiJiYnMh/kwH+Zj\nk4895UwkWOPLY9ra2ujw4cO0Z88eqqmpoW+//dZoe2Njo1H/iKHf5OrVq1b9TmNjIwUEBND69esp\nPT2dJBIJiUQiKi8vNzoBx/Lp7++nd999l0QiEUmlUsrOzqZ169aRv78/82E+zIf5jOljyXVsvOvh\nRIM1vjxjcHCQKioqKDo6nsTiAOK4WJJKE4jjYsjLi6Pk5DlUVVVFnZ2dZsfzjjZuzhwjx+V5e3sb\n3fEayunt7aWKigqKnx1PAU8HUMyL0RS/MI6ic6KIk3M0J8PUx5Jxhfb6WJOPM3xYPiyfyeQTHx1N\nAWIxxXIcJUilFMNxxHl50ZzkZIf5EI0+L4G1+Wg0mnF/i2+wGa54xL9mplHi4UN/PHgwC8AMGM8A\nqgVwBVLpeWg0nVi8uAA7duwwKoOI8Oqrr0IqlWLr1q0mv9HR0YGDBw/iwIEDaG1thbe3N5KSkrB/\n/36jKd6ICDk5OWhoacDU5KcR+4sYhL8YBjf37320Q1pcPXgNFzdfQuflLhTkmfr09/dj7ty5aG9v\nR29vLxQKBQoLC5Gfnw9/f3+rfU6ebIBQGGxzPo72YfmwfCaTT8PJkwgWCjHrwYNRbIDzUik6NRoU\nLF5stc9IiAi5ubmYMWMGysrKTLZZns8F+PrqUFf3GcLCwjBRYI0vT2hqakJmphIqVRaAKAv2aAHH\nnUFz82lERkYabenr60NSUhLWrVuHoqIikxPQMNXblStXUF1djfr6enh4eJj4KPNykFH+Y0QVzhzX\n5qvyr/HVe2dx+sToPiUlJfD29kZFRQXq6uogFosxODgIpVKJJUuWjOvzr3wyAUQ7JB97fVg+LJ/J\n5KPMzESmSmWhDXCG43C6uXlcn5FT2o5siMvKynDgwAGH5OPm9jWk0iY0N58y8eErrPHlAbdu3cKs\nWYno68sGEG7xfgLBOcjlZ3H58nmTu8ovvvgC+fn5iI6OxrVr10zmVjU3//NIn4SUBMzdmYmwHMuX\n5rrw54v4+netOH92fJ9H556NiopCW1sbTp06hWeffdbp+Vjrw/Jh+Uwmn8RZs5Dd12eFDXBOIMBZ\nuRznL1828Xl03uZH55Z3dj58hDW+PODnP38T27dfhFabYfW+Xl41+M1vCrB2banJE+6MGTPQ1dWF\n1tZW+Pl9PzF5b28v4uPjsWnTJqPlvgy8uepNXPA6jxf+8LzVPrWvHUFhzEKU/qflPt999x0SEhIw\nY8YMtLW1mdwhOzuf8XxYPiyfyeTz5s9/jovbtyNDq7Xap8bLCwW/+Q1K16412bZlyxaUl5fjzJkz\n8PLycno+fIc1vi5GpVJBLg/EwMDPAPjaUMI/IZFUITExFufOnTN6whWJRCb9v2P1sxh8AoMD8dPW\nJeCCOattbp9tx1/nH0JshG0+j94hJycno76+EWr1cpfkY86nsaUR/37x31g+LJ9J4dNYX4/larWN\nNsARuRw3b9+Gu7u70TZz3584Ix+5/Ahu375p4sM32Hq+Lmb37t0QCKbBtgMNAILw8KEH0tLShhek\nNqyPKRAITNbtHbnOplmfPbsRnBZs04UTAAKTpsBDJrTZx7A+qWGh8JCQEOh0QXBVPuZ8AlOnsHxY\nPpPGJ0ins8MGEA4O4ujRoybbXJXP4KDQrA/f+IGrBZ50jh07CZVqul1laLUzMTSkNvp60YCPjw8q\nKyuRmZkJd3d3bNy4ES0tLSYfOBg42XASIfOD7fKJWBgB9YD9PhKJBHfvqqDTjf/Bzlg4Kh+JRAKV\nRoXIwgiTbdbA8hmbyZwP33xUd+9ipk5nl09Ifz/qv/zS7CL2rsinvz8EX35Zb9aHT7DG18V0d/fC\n9rs8A17o6uoZdWtcXBzWrl2L1157Dbt37zb5wGokPXd7wAVI7bPx90TPbcf4sHxYPvb48C0fvvn0\ndnc7wAbo6epyiI8z8uEL7LWzixGJPADYd+cJ6ODpKRp1KxGhrq4OoaGh+Pzzz8f28RBBp7bPR6fW\nQ+ThIB+Wz9g+LJ+xffiWD898PEQiB9gAIjNP4bb4OCMfvsAaXxcTHBwEgeCeXWUIhX0IDg4adfuH\nH36I7u5unD592qj/xRxBTwXh/t/u2+XT/7c+BD3lGB8+5nPvOstnNFg+E8snKDgY9wQCu3z6hEIE\nBY/eVcW3fPgCW9XIxQQE+GH//v+GRpMAwJaTQAO9/i/QaodARMOrjRhoamrCihUrcOzYMQQGBiIt\nLQ1FRUXIy8uDTCYzKc2P80P5b8uR8GY8BDaclJpBDQ4WHcKQyj6fjo4O7Nq1C7W1NWhvvwhgNlyZ\nj8Gn5lANLp24hJQ1ySwfls+E96mprcXF9nY7bIBPPTywafNms2NrXZGPh8en2Lx5E+/H+rInXxej\nUCggl/sCuGFjCW1ITVXgjTfeQG1tLaZPn46cnBzs2LED169fx6JFi/Dxxx8P97PExcXhvffeQ2Fh\nIQYHB836cF6+uHH8pk02lyuvIFWRapPPjRs3sHnzZrzwwguIjIxEQ0MD3nnnHYSETHFJPqP5TAmY\nwvJh+UwanykhIXbYAD9MSsIzz5hOptLb2+uSfJKSfmjWh2+wxtfFCAQClJSshljcBOv7Oobg7f0V\n3n77V0af6y9duhS1tbWIjIyEm5sburu70dvbO7zX8uXLER0djVWrVpn1WfPmGjSvb4FOY52P+oEa\nZzd+g7dWvGWxT0dHB7RaLTo7OxEREYGGhgasXr16eBhFfn4+SkuLnZaPJT7Fvyxm+bB8Jo1PcWkp\nmsRiG2yAr7y9sbqkxGQbEWHp0qUoKCgwmsjHGfmUlKy2cj/XwBpfHrBs2TLMnv0MPD1rYfkBp4FY\nXI0FCzKNPqk3jJtTKBSIi4vD+vXrTe6Q7969azL+zsjnZ8sQxoXh6LJj0Gv1ltkManCo8FNkKbLG\n9amqqkJQUBACAgIQGhqKEydO4KOPPsK0adOgVCqHxy06Kx+rfVg+LJ9J5vPM7Nmo9fS0wgaoFouR\nuWCB2SE9I8fzdnR0GD3hNjY2Oi0fPsNmuOIJKpUK2dnz8c03nRgY+AmAsforOgH8FRkZcThy5DCE\nQqHRVnPzNj86k4xCoUBKSgo2bdqExsZGREQYj81UqVR4/ifPo0fcjXkfK+EX6ofR6LrUheolNYh/\nOh6HD5r3yc3NxcqVK1FXV/c/qzcZzz1riY9C8TwuXOgFMN/ufBzhw/Jh+Uwmn+cVCvReuGChDRCX\nkYHDR45Y5PPo3PKA6fzP9uTj7f0ZMjMTUFm5x8SHtzh4iUKGHajVanrrrRKSSHxJIokiYDEBxQSU\nErCGgAKSSMKJ42SUl7eAYmJiTNbtHW19zJFYsv5mT08PTZ06lQpeKSBfmS9F5cykVw4X0qp/rKD/\nuFdMK7/7Jb20L5/Cnwsj2RQZLSgw9Rm5fqhYLDZaP9RWn/z8ApvzeRw+LB+Wz2TyKcjPJ1+JhKIk\nEloMUDFApQCtAagAoHCJhGQcRwvy8mz2Gclo649bm8/vf/8H0ul0o/4OH2GNLw8ZGBignTt3Umxs\nEnGcjEQiMfn5ySk5eQ5VVlaSWq0mvV5PixYtotdff314P71eT/PmzaPi4mKLf6uvr49SU1MpJCSE\nfHx8KDs7m7Zt20ZZWVnD5Rh8kn6URLIpMhJLxSQPktOcDFOfoqIiKi8vp/T0dPLx8aHAwEDKzc0d\n8wS01ceSfJzpw/Jh+Uwmn6TYWJJxHIlFIpL7+dGc5GSH+1hyHbMkn4kIa3wnMPfv36fw8HD65JNP\niIjogw8+oJSUFBoaGrKpnG3bttHevXspNjaW3N3dKSsri7Zv3250h2yO9vZ2Ki8vp7S0NHJzcyOF\nQkHV1dW0YcMG5sN8mA/zscjH3uvYRIM1vhOc1tZWkslktHfvXpLL5XTz5k2HlNPW1jb8qspwhzzy\nxDScgOnp6cRx3PArpubmZubDfJgP87HLx9ZyJhKs8Z0ElJWVkVAopMrKysdSjqHPSKlUkqenJ/n7\n+5OXlxe9/PLLZvt0mA/zYT7Mx1E+kxU2w9UEh4iwYcMGEBF0Oh3mz59vcznvv/++STkdHR3Yt28f\ndu3ahZaWFiiVSqSnp8PPzw/Hjx9HZ2cn9Hr98Ew7zIf5MB/m4yifSc3jbdsZjxtD/8idO3eM+k3s\nKSc0NJSWLl1q8opprK8oDa+qFi5cSImJicyH+TAf5mOTjz3lTCRY48tj2tra6PDhw7Rnzx6qqamh\nb7/91mh7Y2OjUf+Iod/k6tWrVv1OY2MjBQQE0Pr16yk9PZ0kEgmJRCIqLy83OgHH8unv76d3332X\nRCIRSaVSys7OpnXr1pG/vz/zYT7Mh/mM6WPJdWy86+FEgzW+PGNwcJAqKioofnY8BTwdQDEvRlP8\nwjiKzokiTs7RnIw5VFVVRZ2dnWbH8442bs4cI8fleXt7G93xGsrp7e2liooKio6OJ7E4gDgulqTS\nBOK4GPLy4ig52dTHknGF9vpYk48zfHiXT3Q0BYjFFMtxlCCVUgzHEeflRXOSk5kPD334dvw4w4do\n9HkJrPXRaDTj/hbfYDNc8YjW1lYo85Twi/JF7C9iEP5iGNzcv58BVDukxdWD13Bx8yV0Xu5CQV4B\nduzYYVQGEeHVV1+FVCrF1q1bTX6jo6MDBw8exIEDB9Da2gpvb28kJSVh//79RlO8ERFycnJw8mQD\nhMJgPHgwC8AMGM9IqgVwBVLpeWg0nVi82NSnv78fc+fORXt7O3p7e6FQKFBYWIj8/Hz4+/tb7dPQ\n0oCpyU/bnI+jfXiXz8mTCBYKMevBg1FsgPNSKTo1GhQsXsx8XOzDt+PncfuMhIiQm5uLGTNmoKys\nzGSb5T4X4OurQ13dZwgLC8NEgTW+PKGpqQnKPCUy/5iByJcjxv37r8q/xlfvncXpE6cRGRlptK2v\nrw9JSUlYt24dioqKTE5Aw1RvV65cQXV1Nerr6+Hh4WHik5mphEqVCSDagv9BCzjuDJqbR/cpKSmB\nt7c3KioqUFdXB7FYjMHBQSiVSixZsmRcH2VeDjLKf4yowpkOycdeH97lk5mJTJXKQhvgDMfhdHMz\n83GRD9+On8flM3JK25ENcVlZGQ4cOOAQHze3ryGVNqG5+ZSJD19hjS8PuHXrFhJSEjB3ZybCcixf\nCuvCny/i69+14vzZ8yZ3lV988QXy8/MRHR2Na9eumcytam7+55E+s2Yloq8vG0C4xT4CwTnI5Wdx\n+fL4Po/OPRsVFYW2tjacOnUKzz77rNPzsdaHb/kkzpqF7L4+K2yAcwIBzsrlOH/5MvNxsg/fjh9H\n+zw6b/Ojc8s724eP/MDVAgxg44cbEfXTmVY1LAAw66ex+HvdP7B121aU/mepyRNuVFQUOjs7cePG\nDfj5fT+xvbl1NkeyYcNGDAxEwZoDHwCI4tDX93ds2bIVa9da7vPdd98hISEBMTExeO6550zukJ2d\nz3g+vMtnwwZEDQxYaQPEEeHvfX3YumULSteuZT5O8uHb8eMoH6PsRqzbe+bMmeHVlxYtWuQSHz7C\nnnxdjEqlQmBwIH7augRcMGf1/rfPtuOv8w8hNiIW586dM3rCFYlEJv2/Y/WzGHzk8kAMDPwMgK8N\n/6N/QiKpQmKibT6P3iEnJyejsaUR/37x31ySjzmf+vpGqNXL+ZNPfT2Wq9U22gBVEgliExOZj5N8\n+Hb82Osjlx/B7ds34e7ubrTF3PcnrvThG2w9Xxeze89uBKcF29SwAEBg0hR4yIRIS0sbXpDasD6m\nQCAwWbd35DqbZn1274ZAMA22HfgAEISHDz1s9jHcIRsWCg8JCUFg6hSX5WPOR6cL4lU+QTqdHTaA\nx8OHzMeJPnw7fuz1GRwU4ujRoyZb+ObDN9hrZxdzsuEkQuYH21VGxMIIqAfURl8vGvDx8UFlZSUy\nMzPh7u6OjRs3oqWlxeQDBwPHjp2ESjXdLh+tdiaGhuz3kUgkUGlUiCwc/wO0sXBUPhKJBHfvqqDT\njf/B11g4NJ+7dzFTZ+mC4+aZqdVCPTTEfJzgw7fjxxE+/f0h+PLLerOL2PPNh0+wxtfF9NztARcg\ntasML39P9NzuGXV7XFwc1q5di9deew27d+82289roLu7F7bfdQ4boavLMT4sn7F9eru7HWAD9HR1\nMR8n+PDt+HkSffgCe+3sYkQeIujU9t2Z69R6iDxEo24nItTV1SE0NBSff/752D4iDwD2+QA6eHo6\nyIflM2ZJHiKRA2wAkZmnKObjeB++HT9Pog9fYI2viwl6Kgj3/3bfrjL6/9aHoKeCRt3+4Ycforu7\nG6dPnzbqfzFHcHAQBIJ7dvkIhX0IDnaMT9BTQbh3neUzGkHBwbgnENjl0ycUIih49K4P5uM4H74d\nP0+iD19gqxq5GD/OD+W/LUfCm/EQ2HCR0AxqcLDoEIZUQyCi4dVGDDQ1NWHFihU4duwYAgMDkZaW\nhqKiIuTl5UEmk5mUFxDgh/37/xsaTQIAWy5aGuj1f4FWa59PR0cHdu3ahZpDNbh04hJS1iS7NB+D\nT21tDdrbLwKYzY98amtxsb3dDhvgL3o9hrRa5uMEH74dP47w8fD4FJs3bzI7tpZvPnyCPfm6GIVC\nAc7LFzeO37Rp/8uVV5CqSMUbb7yB2tpaTJ8+HTk5OdixYweuX79uMp535Pi7wcFBsz5yuS+AGzb+\nj9qQmqqwyefGjRvYvHkzXnjhBURGRqKhoQHvvPMOpgRMcUk+o/mEhEzhVz4hIXbYAIpUx+bDfCbW\n8WOvT1LSD/HMM6Zj8M3NJ+BKH77BGl8XIxAIsObNNWhe3wKdxrq+DvUDNc5u/AZvrXjL6HP9pUuX\nora2FpGRkXBzc0N3dzd6e3uH91u+fDmio6OxatUqsz4lJashFjfB+r6XIXh7f4W33/6VxT4dHR3Q\narXo7OxEREQEGhoasHr16uFhFPn5+Sj+ZbHT8rHEp7S0mF/5lJaiSSy2wQb4ytsbv3r7bebjRB++\nHT/2+pSUrDbZQkRYunQpCgoKkJubO/zvrvLhI6zx5QHLfrYMYVwYji47Br1Wb9E+mkENDhV+iixF\nltEn9YZxcwqFAnFxcVi/fr3JHfLdu3dNxt8Z+Sxbhtmzn4GnZy0sPwE0EIursWBB5rg+VVVVCAoK\nQkBAAEJDQ3HixAl89NFHmDZtGpRK5fC4RWflY7UP3/JZtgzPzJ6NWk9PK2yAarEYmQsWMB8X+PDt\n+HGUj4GR43k7OjqMnnAbGxud7sNH2AxXPEGlUmHeS/PQJezEj/8rHX6hfqP+bdelLlQvqUH80/E4\nfPAwhEKh0XZz8zY/OpOMQqFASkoKNm3ahMbGRkREGI+lValUUCiex4ULvQDmAxir/6QTwF+RkRGH\nI0fM++Tm5mLlypWoq6tDa2urydyzlvg8/5Pn0SPuxryPlXbn4wgf3uWjUKD3wgULbYC4jAwcPnKE\n+bjIh2/Hz+P0eXRuecB0/md7fLy9P0NmZgIqK/eY+PAWhy9SyLAZtVpNJb8uIV+ZL0XlzKRXDhfS\nqn+soP+4V0wrv/slvbQvn8KfCyPZFBktKFhAMTExJuv2jrY+5kgsWX+zp6eHpk6dSvn5BSSR+JJE\nEkXAYgKKCSglYA0BBSSRhBPHySgvz9Rn5PqhYrHYaP1QW30KXimwOZ/H4cO7fPLzyVcioSiJhBYD\nVAxQKUBrACoAKFwiIRnH0YK8PObDAx++HT/O8BnJaOuPW+vz+9//gXQ63ai/w0dY48tDBgYGaOfO\nnZT0oySSTZGRWComeZCc5mTMocrKSlKr1aTX62nRokX0+uuvD++n1+tp3rx5VFxcbPFv9fX1UWpq\nKoWEhJCPjw9lZ2fTtm3bKCsra7gcg09sbBJxnIxEIjH5+ckpOdnUp6ioiMrLyyk9PZ18fHwoMDCQ\ncnNzxzwBbfWxJB9n+vAun9hYknEciUUikvv50ZzkZObDYx++HT/O8LHkOmaJz0SENb4TmPv371N4\neDh98sknRET0wQcfUEpKCg0NDdlUzrZt22jv3r0UGxtL7u7ulJWVRdu3bze6QzZHe3s7lZeXU1pa\nGrm5uZFCoaDq6mrasGED82E+zIf5WORj73VsosEa3wlOa2sryWQy2rt3L8nlcrp586ZDymlraxt+\nVWW4Qx55YhpOwPT0dOI4bvgVU3NzM/NhPsyH+djlY2s5EwnW+E4CysrKSCgUUmVl5WMpx9BnpFQq\nydPTk/z9/cnLy4tefvlls306zIf5MB/m4yifyQqb4WqCQ0TYsGEDiAg6nQ7z58+3uZz333/fpJyO\njg7s27cPu3btQktLC5RKJdLT0+Hn54fjx4+js7MTer1+eKYd5sN8mA/zcZTPpObxtu2Mx42hf+TO\nnTtG/Sb2lBMaGkpLly41ecU01leUhldVCxcupMTERObDfJgP87HJx55yJhKs8eUxbW1tdPjwYdqz\nZw/V1NTQt99+a7S9sbHRqH/E0G9y9epVq36nsbGRAgICaP369ZSenk4SiYREIhGVl5cbnYBj+fT3\n99O7775LIpGIpFIpZWdn07p168jf35/5MB/mw3zG9LHkOjbe9XCiwRpfnjE4OEgVFRUUHR1PYnEA\ncVwsSaUJxHEx5OXFUXLyHKqqqqLOzk6z43lHGzdnjpHj8ry9vY3ueA3l9Pb2UkVFBcXPjqeApwMo\n5sVoil8YR9E5UcTJOZqTYepjybhCe32syYf5MB/mwz8fotHnJbDWR6PRjPtbfIPNcMUj/jUzjRIP\nH/rjwYNZAGbAeAZQLYArkErPQ6PpxOLFBdixY4dRGUSEV199FVKpFFu3bjX5jY6ODhw8eBAHDhxA\na2srvL29kZSUhP379xtN8UZEyMnJQUNLA6YmP43YX8Qg/MUwuLl/76Md0uLqwWu4uPkSOi93oSDP\n1Ke/vx9z585Fe3s7ent7oVAoUFhYiPz8fPj7+1vtc/JkA4TCYJvzYT7Mh/m4zmckRITc3FzMmDED\nZWVlJtss97kAX18d6uo+Q1hYGCYKrPHlCU1NTcjMVEKlygIQZcEeLeC4M2huPo3IyEijLX19fUhK\nSsK6detQVFRkcgIapnq7cuUKqqurUV9fDw8PDxMfZV4OMsp/jKjCmePafFX+Nb567yxOnxjdp6Sk\nBN7e3qioqEBdXR3EYjEGBwehVCqxZMmScX3+lU8mgGiH5MN8mA/zefw+I6e0HdkQl5WV4cCBAw7x\ncXP7GlJpE5qbT5n48BXW+PKAW7duYdasRPT1ZQMIt3g/geAc5PKzuHz5vMld5RdffIH8/HxER0fj\n2rVrJnOrmpv/eaRPQkoC5u7MRFiO5UtzXfjzRXz9u1acPzu+z6Nzz0ZFRaGtrQ2nTp3Cs88+6/R8\nmA/zYT6O83l03uZH55Z3tg8f+YGrBRjAhg0bMTAQBWsONAAgikNf39+xZctWrF1bavKEGxUVhc7O\nTty4cQN+ft8vRGBunc2RbPxwI6J+OtOqhhcAZv00Fn+v+we2btuK0v+03Oe7775DQkICYmJi8Nxz\nz5ncITs7H+bDfJiP9T4jGblu75kzZ4ZXX1q0aJFLfPgIe/J1MSqVCnJ5IAYGfgbA14YS/gmJpAqJ\nibE4d+6c0ROuSCQy6f8dq5/F4BMYHIifti4BF8xZbXP7bDv+Ov8QYiNs83n0Djk5ORn19Y1Qq5e7\nJB/mw3yYz9g+cvkR3L59E+7u7kZbzH1/4kofvsHW83Uxu3fvhkAwDbYdaAAQhIcPPZCWlja8ILVh\nfUyBQGCybu/IdTbN+uzZjeC0YJsaXgAITJoCD5nQZh/DHbJhofCQkBDodEFwVT7Mh/kwn7F9BgeF\nOHr0qMkWvvnwDfba2cUcO3YSKtV0u8rQamdiaEht9PWiAR8fH1RWViIzMxPu7u7YuHEjWlpaTD5w\nMHCy4SRC5gfb5ROxMALqAft9JBIJ7t5VQacb/4OvsXBUPsyH+TAfU/r7Q/Dll/VmF7Hnmw+fYI2v\ni+nu7oXtd3kGvNDV1TPq1ri4OKxduxavvfYadu/ebbaf10DP3R5wAVL7bPw90XPbMT58y4f5MB/m\nM7F9+AJ77exiRCIPADo7S9HB01M06lYiQl1dHUJDQ/H555+P7eMhgk5tn49OrYfIw0E+fMuH+TAf\n5jOhffgCa3xdTHBwEASCe3aVIRT2ITg4aNTtH374Ibq7u3H69Gmj/hdzBD0VhPt/u2+XT//f+hD0\nlP0vPLwAACAASURBVGN8+JYP82E+zGdi+/AFtqqRiwkI8MP+/f8NjSYBgMCGEjTQ6/8CrXYIRDS8\n2oiBpqYmrFixAseOHUNgYCDS0tJQVFSEvLw8yGQyk9L8OD+U/7YcCW/GQyCw3kczqMHBokMYUtnn\n09HRgV27dqG2tgbt7RcBzIYr82E+zIf5mPfx8PgUmzdvMju2lm8+fII9+boYhUIBudwXwA0bS2hD\naqoCb7zxBmprazF9+nTk5ORgx44duH79usl43pHj7wYHB836cF6+uHH8pk02lyuvIFWRapPPjRs3\nsHnzZrzwwguIjIxEQ0MD3nnnHYSETHFJPsyH+TCf8X2Skn6IZ54xnRPA3HwCrvThG6zxdTECgQAl\nJashFjfB+r6OIXh7f4W33/6V0ef6S5cuRW1tLSIjI+Hm5obu7m709vYO77V8+XJER0dj1apVZn3W\nvLkGzetboNNY56N+oMbZjd/grRVvWezT0dEBrVaLzs5OREREoKGhAatXrx4eRpGfn4/S0mKn5cN8\nmA/zsc6npGS1yRYiwtKlS1FQUIDc3Nzhf3eVDx9hjS8PWLZsGWbPfgaenrWw/IDTQCyuxoIFmUaf\n1BvGzSkUCsTFxWH9+vUmd8h37941GX9n5POzZQjjwnB02THotXrLbAY1OFT4KbIUWeP6VFVVISgo\nCAEBAQgNDcWJEyfw0UcfYdq0aVAqlcPjFp2VD/NhPszHMT4GRo7n7ejoMHrCbWxsdLoPH2EzXPEE\nlUqF7Oz5+OabTgwM/ATAWP0VnQD+ioyMOBw5chhCodBoq7l5mx+dSUahUCAlJQWbNm1CY2MjIiIi\nTHye/8nz6BF3Y97HSviF+mE0ui51oXpJDeKfjsfhg+Z9cnNzsXLlStTV1f3P6k3Gc89a4qNQPI8L\nF3oBzLc7H+bDfJiP83wenVseMJ3/2R4fb+/PkJmZgMrKPSY+vMXhixQybEatVtNbb5WQROJLEkkU\nAYsJKCaglIA1BBSQRBJOHCejvLwFFBMTY7Ju72jrY47EkvU3e3p6aOrUqVTwSgH5ynwpKmcmvXK4\nkFb9YwX9x71iWvndL+mlffkU/lwYyabIaEGBqc/I9UPFYrHR+qG2+uTnF9icD/NhPszH9T4jGW39\ncWt9fv/7P5BOpxv1d/gIa3x5yMDAAO3cuZNiY5OI42QkEonJz09OyclzqLKyktRqNen1elq0aBG9\n/vrrw/vp9XqaN28eFRcXW/xbfX19lJqaSiEhIeTj40PZ2dm0bds2ysrKGi7H4JP0oySSTZGRWCom\neZCc5mSY+hQVFVF5eTmlp6eTj48PBQYGUm5u7pgnoK0+luTDfJgP8+GvjyXXMUt8JiKs8Z3A3L9/\nn8LDw+mTTz4hIqIPPviAUlJSaGhoyKZytm3bRnv37qXY2Fhyd3enrKws2r59u9Edsjna29upvLyc\n0tLSyM3NjRQKBVVXV9OGDRuYD/NhPszHIh97r2MTDdb4TnBaW1tJJpPR3r17SS6X082bNx1STltb\n2/CrKsMd8sgT03ACpqenE8dxw6+YmpubmQ/zYT7Mxy4fW8uZSLDGdxJQVlZGQqGQKisrH0s5hj4j\npVJJnp6e5O/vT15eXvTyyy+b7dNhPsyH+TAfR/lMVtgMVxMcIsKGDRtARNDpdJg/f77N5bz//vsm\n5XR0dGDfvn3YtWsXWlpaoFQqkZ6eDj8/Pxw/fhydnZ3Q6/XDM+0wH+bDfJiPo3wmNY+3bWc8bgz9\nI3fu3DHqN7GnnNDQUFq6dKnJK6axvqI0vKpauHAhJSYmMh/mw3yYj00+9pQzkWCNL49pa2ujw4cP\n0549e6impoa+/fZbo+2NjY1G/SOGfpOrV69a9TuNjY0UEBBA69evp/T0dJJIJCQSiai8vNzoBBzL\np7+/n959910SiUQklUopOzub1q1bR/7+/syH+TAf5jOmjyXXsfGuhxMN1vjyjMHBQaqoqKD46GgK\nEIspluMoQSqlGI4jzsuL5iQnU1VVFXV2dpodzzvauDlzjByX5+3tbXTHayint7eXKioqKDo6nsTi\nAOK4WJJKE4jjYsjLi6Pk5DkmPpaMK7TXx5p8nOHDu3xmx1PA0wEU82I0xS+Mo+icKOLkHM3JYPXF\n6osfPkSjz0tgbX1pNJpxf4tvsBmueERrayuUWVnwf/gQsx48wAwYz/+pBXAFwHmpFJ0aDQoWL8aO\nHTuMyiAivPrqq5BKpdi6davJb3R0dODgwYM4cOAAWltb4e3tjaSkJOzfv99oijciQk5ODk6ebIBQ\nGIwHD2YBoxhJpeeh0XRi8eICE5/+/n7MnTsX7e3t6O3thUKhQGFhIfLz8+Hv72+1T8PJkwgWCm3O\nx9E+vMunpQFTk59G7C9iEP5iGNzcv/fRDmlx9eA1XNx8CZ2Xu1CQx+qL1ZdzfUZCRMjNzcWMGTNQ\nVlZmss3y+roAX18d6uo+Q1hYGCYKrPHlCU1NTVBmZiJLpUKUBX/fAuAMx+F0czMiIyONtvX19SEp\nKQnr1q1DUVGRyQlomOrtypUrqK6uRn19PTw8PEx8MjOVUKkyAURbZMRxZ9DcfHpUn5KSEnh7e6Oi\nogJ1dXUQi8UYHByEUqnEkiVLxvVRZmYiU6Wy0Gb8fOz14V0+eTnIKP8xogpnjmvzVfnX+Oq9szh9\ngtXXaEZPXH09Jp+RU9qObIjLyspw4MABh9SXm9vXkEqb0Nx8ysSHr7DGlwfcunULibNmIbuvD+FW\n7HdOIMBZuRznL182uav84osvkJ+fj+joaFy7ds1kblVz8z+P9Jk1KxF9fdmAFUYCwTnI5Wdx+fL5\ncX0enXs26v9v79zjojrPff8byTAwDAy3MztCMiJeQBCDQFCmkpAaFIgiJmg01pDGxt001ah1bzDn\n06SpTenHT0yzt8VztEa7JZqI1RoNO4ZUNCigaMRL0OSTk3ppIgzhouCAzIXn/JE9hGFmYG7MLIbn\n+6eL9c7X51lrPWutd73vGxeHhoYGnDx5Eg899JDb42Ovj9DikzQjCXN3ZWJitu1LqV36y2V89tt6\nXDzH+bLEaMqXq30Gzts8cG55d+dLiHDxFQAv/fznuPzOO5it19u97xF/f+T/+tco2rDB7Al38uTJ\naG5uRn19PUJCflgYoa2tDdOnT8eWLVtMlvsy8vOfv4R33rkMvX623T7+/kfw61/nY8OGIpt9bt68\niaSkJEyePBkNDQ1md8jujs9QPoKLz8sv4ZL/RTz2h0ft9il/9iMsmroYRf/O+bLEqMiXi3wGsm3b\nNpSUlODMmTPw9/e32cdV+RI6XHw9jEajQYRCgee7uhDswP7fAjggkyEhORkXLlwwecKVSCRm/b+D\n9bMYfRSKCHR1PQ84aCSTHUBycoJDPgPvkFNTU1FTVYWVWq1H4mPJp6qqBlrtSuHEp64GP7v8U8iV\ncrttbp1rxN/mf4CEGM6XNSOvz5eTPkcXV+DGVzfg4+Njss3S9yfuyJdC8RFu3bpu5iM0eD1fD7Nn\nzx6ME4kcOswAIBKA7717SE9P71uQ2rg+pkgkMlu3t/86m9Z8RKJxcOzA/97o3j1fh32M65MaFwqP\niopCpMHgsfhY8jEYIgUVn4i0sQ5dOAEgImUsfMPFnK9BjLw9X67wOXr0qNk2T+Wru9uyj9C4z9MC\no50TFRUYr9E41cYUvR7anh6TrxeNBAUFoaysDJmZmfDx8cGmTZtQV1dn9oGDkYqKE9Boxjvlo9dP\nQU+P1mkfmUwGTXs7phhsXVDbMq6Kj0wmQ3u7BgbD0B+kDIZL46PTIHZRjNk2e4hZHANtF+fLGl6d\nLxf4KOcrUXWqyuIi9p7IV2dnFD791LKPkODi62HaWlocvscz4g+gtbnZ6vbExERs2LABzz777PdP\n2gM+sOpPS0sbHL/r/MGoubnVJT4cn8F9WttbIQ8LdM4m1A+ttzhfgxl5a76E5uOOfAkFfu3sYXwl\nEjj3nAAYAEgs3AUbISJUVlYiOjoan3zyyaBtSSS+/9Oic0Z+fhKX+HB8hvDxlcCgdc7HoO2FxJfz\nNZiRt+ZLcD5uyJdQ4OLrYSKVStwWiZxqo0MsRqRSaXX7W2+9hZaWFpw6dcqk/8USSmUkRKLbTvmI\nxR1QKiNd4sPxGSI+90fi9td3nPLp/EcHIu/nfFnDq/PlCp9rnS7zcUe+hAKvauRhQsLC8Kd9+5Ck\n08GRS5YOwF97e9Gj14OI+lYbMVJbW4tVq1ahoqICERERSE9Px7Jly7BgwQKEh4ebtRcWFoJ9+/4E\nnS4JcNCot/ev0Ot7nPJpamrC7t27caS8HJcbGzHTYRvXxMfoU15+BI2NlwEnjFwanw+O4PPjn2PG\n2lSIHCh6um4dDi77AD0azpc1I6/Olwt8/nvFUWz54xaLY2s9kS9f3w+xdatlHyHBT74eRqVSIVih\nwDUH928AoEpLw4svvojy8nKMHz8e2dnZ2LlzJ77++mssWbIEf/7zn/v6WRITE/G73/0OixYtQnd3\nt0UfhSIYcMIoLU3lkM+1a9ewdetWPPbYY4iNjUV1dTVeffVVjI2K8kh8rPlERY0VVnzCxuLasesO\n2Vwpu4o0lWvjw/kaYfly0ifl4RRMmGA+OUdbW5tH8pWS8rBFH6HBxdfDiEQirCksRK1UandPRw+A\nswEB+NUrr5h8rl9QUIDy8nLExsZizJgxaGlpQVtbW99+K1euRHx8PF5++WWLPoWFayCV1sL+vpce\nBAScxSuv/Mpmn6amJuj1eqjVasTExKC6uhpr1qzpG0aRl5eHdUVFbouPLT5FReuEFZ9frsPpjXUw\n6Ozz0d7V4tym81i/aj3ny4rRqMiXkz5rf7HWbBsRoaCgAPn5+SYT+bgjX4WFa+zczzNw8RUAK1as\nwISZM1Hu52fz4aYDcEgqRebChSaf1BvHzalUKiQmJmLjxo1md8jt7e1m4+8G+sycOQF+fuWw/QTQ\nQSo9hIULM4f0OXDgACIjIxEWFobo6GgcP34cb7/9NsaNG4ecnJy+cYvuio8jPoKKz/MrMFE+EUdX\nVKBX32ubTbcOHyz6EHNUczhfVoxGTb5c6GOk/3jepqYmkyfcmpoat+VLyPAMVwJBo9FgflYW1OfP\n4/GuLgzWW6EG8DcAibNn4/BHH0EsFptstzRv88CZZFQqFWbMmIEtW7agpqYGMTGmY/00Gg1Uqkdx\n6VIbgPmADUazZyfio48OW/TJzc3F6tWrUVlZifr6erO5Z23xeVSlQtulSzbaDB4fV/gILj6PP4pW\naQvm/TkHIdEhsEbz5804tPwIpj8wHYcPcr6sGY26fA2jz8C55QHz+Z8H+tiTr4CAj5GZmYSysr1m\nPoLFxUsUMk6g1WqpcP16CpbJKE4mo6UArQOoCKC1AOUDNEkmo3C5nBYuWEBTp041W7fX2vqY/bFl\n/c3W1lZ68MEHKS8vn2SyYJLJ4ghYSsA6AooIWEtAPslkk0guD6cFCxaa+fRfP1QqlZqsH+qoT35e\nnsPxGQ4fwcXn6XwKDg+muOwp9PThRfTyN6vo326vo9U3f0lPvp9Hkx6ZSOFjw2lhPueL8+UZn/5Y\nW3/c3ny98cYfyGAwWP0dIcLFV4B0dXXRrl27KCUhgcLlcpJKJKQICaFZqalUVlZGWq2Went7acmS\nJfTCCy/07dfb20vz5s2jdevW2fxbHR0dlJaWRlFRURQUFERZWVm0Y8cOmjNnTl87Rp+EhBSSy8NJ\nIpFSSIiCUlNnmfksW7aMSkpKKCMjg4KCgigiIoJyc3MHPQEd9bElPu70EVx8fpRC4WPDSRooJUWk\ngmbN5nxxvoTlY8t1zJZ8jUS4+I5g7ty5Q5MmTaJ3332XiIjefPNNmjFjBvX09DjUzo4dO+i9996j\nhIQE8vHxoTlz5tA777xjcodsicbGRiopKaH09HQaM2YMqVQqOnToEBUXF7MP+7AP+9jk4+x1bKTB\nxXeEU19fT+Hh4fTee++RQqGg69evu6SdhoaGvldVxjvk/iem8QTMyMgguVze94rp9OnT7MM+7MM+\nTvk42s5IgouvF7B582YSi8VUVlY2LO0Y+4xycnLIz8+PQkNDyd/fn5566imLfTrswz7swz6u8vFW\neIarEQ4Robi4GEQEg8GA+fPnO9zO73//e7N2mpqa8P7772P37t2oq6tDTk4OMjIyEBISgmPHjkGt\nVqO3t7dvph32YR/2YR9X+Xg1w1vbmeHG2D/y3XffmfSbONNOdHQ0FRQUmL1iGuwrSuOrqsWLF1Ny\ncjL7sA/7sI9DPs60M5Lg4itgGhoa6PDhw7R37146cuQIffXVVybba2pqTPpHjP0mX3zxhV2/U1NT\nQ2FhYbRx40bKyMggmUxGEomESkpKTE7AwXw6Ozvp9ddfJ4lEQoGBgZSVlUWvvfYahYaGsg/7sA/7\nDOpjy3VsqOvhSIOLr8Do7u6m0tJSio+fTlJpGMnlCRQYmERy+VTy95dTauosOnDgAKnVaovjea2N\nm7NE/3F5AQEBJne8xnba2tqotLSUpsfHU5hUSglyOSUFBtJUuZzk/v40KzXVzMeWcYXO+tgTn9Ho\nw/kaIj4zp1PYA2E09Yl4mr44keKz40iukNOs2Xz8uCs+RNbnJbA3PjqdbsjfEho8w5WA+H5mmhzc\nuxeKu3enAZgM0xlA9QCuIjDwInQ6NZYuzcfOnTtN2iAiPPPMMwgMDMT27dvNfqOpqQkHDx7E/v37\nUV9fj4CAAKSkpGDfvn0mU7wREbKzs1F94gSUYjGm3b1rxQa4GBgItU6H/KVLzXw6Ozsxd+5cNDY2\noq2tDSqVCosWLUJeXh5CQ0Pt9jlxohpisdLh+Hi7D+driPjUVePB1AeQ8IupmPTERIzx+cFH36PH\nFwe/xOWtn0N9pRn5C0bh8TPM8ekPESE3NxeTJ0/G5s2bzbbZHp9LCA42oLLyY0ycOBEjBS6+AqG2\nthaZmTnQaOYAiLNhjzrI5Wdw+vQpxMbGmmzp6OhASkoKXnvtNSxbtszsBDRO9Xb16lUcOnQIVVVV\n8PX1NfPJycxEpkaDeJtsgDNyOU6dPm3Vp7CwEAEBASgtLUVlZSWkUim6u7uRk5OD5cuXD+nzfXwy\nARuNhoqPt/lwvoaIz4JszC75MeIWTRnS5mzJZzj7u3M4dXwUHT/DFJ/+U9r2L8SbN2/G/v37XRKf\nMWM+Q2BgLU6fPmnmI1S4+AqAGzduYNq0ZHR0ZAGYZPN+ItEFKBTncOXKRbO7yr///e/Iy8tDfHw8\nvvzyS7O5VS3N/9zfJ3naNGR1dNhhA1wQiXBOocDFK1eG9Bk492xcXBwaGhpw8uRJPPTQQ26Pz0j3\n4XwN7pM0Iwlzd2ViYrbtS81d+stlfPbbelw85/3Hj6vjM3De5oFzy7s7PkLkPk8LMEBx8SZ0dcXB\nngMNAIgS0dHxT2zbth0bNhSZPeHGxcVBrVbj2rVrCAn5YaJ0S+ts9mdTcTHiurrstAESifDPjg5s\n37YNRRs22Oxz8+ZNJCUlYerUqXjkkUfM7pDdHZ+R5sP5GiI+b21C3HNT7CosADDtuQT8s/IbbN+x\nHUX/7sXHj4vi05/+6/aeOXOmb/WlJUuWuC0+QoeffD2MRqOBQhGBrq7nAQQ70MK3kMkOIDk5ARcu\nXDB5wpVIJGb9v4P1sxh9IhQKPN/V5aANcEAmQ0JyskM+A++QU1NTUVVVA612pUfiMxJ8aqqqsFKr\n5XxZi09dDX52+aeQK+V229w614i/zf8ACTFefPw4GZ+jiytw46sb8PHxMdlm6fsTd8RHofgIt25d\nN/MRGryer4fZs2cPRKJxcOxAA4BI3Lvni/T09L4FqY3rY4pEIrN1e/uvs2nNZ5xI5IQN4HvvnsM+\nxjtk40LhUVFRMBgi4an4jASfSIOB8zWIT0TaWIcKCwBEpIyFb7iY4zNEfI4ePWq2zVPx6e627CM0\n+LWzh6moOAGNZrxTbej1U9DTozX5etFIUFAQysrKkJmZCR8fH2zatAl1dXVmHzgYOVFRgfEajVM+\nU/R6aHt6nPaRyWRob9fAYBj6A5DBcFV8hOijaW/HFIOtC45bxpvzpdFpELsoxmybPcQsjoG2y0uP\nHxfERzlfiapTVRYXsfdEfDo7o/Dpp5Z9hAQXXw/T0tIGx+/yjPijubnV6tbExERs2LABzz777PdP\nthb6eY20tbS4wAZobW52iY/Q4iM0H87X4D6t7a2QhwU6ZxPqh9Zb3nn8jMb4CAV+7exhJBJfAM49\nuQAG+PlJrG4lIlRWViI6OhqffPLJoC35SiQusAEkFu7KHfERWnyE5sP5GsLHVwKD1jkfg7YXEl/v\nPH5GY3yEAhdfD6NURkIkuu1UG2JxB5TKSKvb33rrLbS0tODUqVMm/S+WiFQqcVskcsqnQyxGpFLp\nEh+hxUdoPpyvIeJzfyRuf33HKZ/Of3Qg8n4vPX5cEZ9rnSMqPkKBVzXyMGFhIdi370/Q6ZIAOHIR\n1aG396/Q63tARH2rjRipra3FqlWrUFFRgYiICKSnp2PZsmVYsGABwsPDzVoLCQvDn/btQ5JO56AN\n8NfeXvTo9U75NDU1Yffu3SgvP4LGxssAZsKT8RGqz5HyclxubHTCxrvzdeSDI/j8+OeYsTYVIgdu\nUnTdOhxc9gF6NF56/LggPv+94ii2/HGLxbG1noiPr++H2LrVso+Q4CdfD6NSqaBQBAO45mALDUhL\nU+HFF19EeXk5xo8fj+zsbOzcuRNff/212Xje/uPvuru7LfoEKxRO2ACqtDSHfK5du4atW7fiscce\nQ2xsLKqrq/Hqq68iKmosPBGfkeIzNiqK8zVYfMLG4tqx6w7ZXCm7ijQVx2ew+KQ8nIIJE8zHCFua\nT8Ad8UlJediij9Dg4uthRCIRCgvXQCqthf19HT0ICDiLV175lcnn+gUFBSgvL0dsbCzGjBmDlpYW\ntLW19e21cuVKxMfH4+WXX7bos6awELVSqQM2wNmAAPzqlVds9mlqaoJer4darUZMTAyqq6uxZs2a\nvmEUeXl5KCpa57b4jESfdUVFnK/B4vPLdTi9sQ4GnX0+2rtanNt0HutXref4DBKftb9Ya7aNiFBQ\nUID8/Hzk5ub2/bs74lNYuMbO/TwDF18BsGLFCsycOQF+fuWw/YDTQSo9hIULM00+qTeOm1OpVEhM\nTMTGjRvN7pDb29vNxt8N9JkwcybK/fzssAEOSaXIXLhwSJ8DBw4gMjISYWFhiI6OxvHjx/H2229j\n3LhxyMnJ6Ru36K74eIMP52sQn+dXYKJ8Io6uqECvvtc2m24dPlj0Ieao5nB87IiPkf7jeZuamkye\ncGtqatwWHyHDM1wJBI1Gg6ys+Th/Xo2urscBDNZfoQbwN8yenYiPPjoMsVhsstXSvM0DZ5JRqVSY\nMWMGtmzZgpqaGsTEmI7102g0eFSlQtulS5hvkw2QOHs2Dn/0kUWf3NxcrF69GpWVlf+zepPp3LO2\n+KhUj+LSpTbARqPB4uONPpyvIeLz+KNolbZg3p9zEBIdAms0f96MQ8uPYPoD03H44Cg6foYxPgPn\nlgfM5392Jj4BAR8jMzMJZWV7zXwEi8sXKWQcRqvV0vr1hSSTBZNMFkfAUgLWEVBEwFoC8kkmm0Ry\neTgtWLCQpk6darZur7X1Mftjy/qbra2t9OCDD1J+Xh4Fy2QUJ5PRUoDWAVQE0FqA8gGaJJNRuFxO\nCxcsMPPpv36oVCo1WT/UUZ+8vHyH4zMafDhfQ8Tn6XwKDg+muOwp9PThRfTyN6vo326vo9U3f0lP\nvp9Hkx6ZSOFjw2lh/ig9ftwQn/5YW3/c3vi88cYfyGAwWP0dIcLFV4B0dXXRrl27KCEhheTycJJI\npBQSoqDU1FlUVlZGWq2Went7acmSJfTCCy/07dfb20vz5s2jdevW2fxbHR0dlJaWRlFRURQUFERZ\nWVm0Y8cOmjNnTl87Rp+UhAQKl8tJKpGQIiSEZqWmmvksW7aMSkpKKCMjg4KCgigiIoJyc3MHPQEd\n9bElPqPZh/M1RHx+lELhY8NJGiglRaSCZs3m48fd8bHlOmZLfEYiXHxHMHfu3KFJkybRu+++S0RE\nb775Js2YMYN6enocamfHjh303nvvUUJCAvn4+NCcOXPonXfeMblDtkRjYyOVlJRQeno6jRkzhlQq\nFR06dIiKi4vZh33Yh31s8nH2OjbS4OI7wqmvr6fw8HB67733SKFQ0PXr113STkNDQ9+rKuMdcv8T\n03gCZmRkkFwu73vFdPr0afZhH/ZhH6d8HG1nJMHF1wvYvHkzicViKisrG5Z2jH1GOTk55OfnR6Gh\noeTv709PPfWUxT4d9mEf9mEfV/l4KzzD1QiHiFBcXAwigsFgwPz58x1u5/e//71ZO01NTXj//fex\ne/du1NXVIScnBxkZGQgJCcGxY8egVqvR29vbN9MO+7AP+7CPq3y8muGt7cxwY+wf+e6770z6TZxp\nJzo6mgoKCsxeMQ32FaXxVdXixYspOTmZfdiHfdjHIR9n2hlJcPEVMA0NDXT48GHau3cvHTlyhL76\n6iuT7TU1NSb9I8Z+ky+++MKu36mpqaGwsDDauHEjZWRkkEwmI4lEQiUlJSYn4GA+nZ2d9Prrr5NE\nIqHAwEDKysqi1157jUJDQ9mHfdiHfQb1seU6NtT1cKTBxVdgdHd3U2lpKU2fOZ3CHgijqU/E0/TF\niRSfHUdyhZxmzZ5FBw4cILVabXE8r7Vxc5boPy4vICDA5I7X2E5bWxuVlpZSfPx0kkrDSC5PoMDA\nJJLLp5K/v5xSU819bBlXyD7D6zM9Pp7CpFJKkMspKTCQpsrlJPf3p1mpqewjwHyNRh8i6/MS2Ouj\n0+mG/C2hwTNcCYj6+nrkLMhBSFwwEn4xFZOemIgxPj/MAKrv0eOLg1/i8tbPob7SjPwF+di5c6dJ\nG0SEZ555BoGBgdi+fbvZbzQ1NeHgwYPYv38/6uvrERAQgJSUFOzbt89kijciQnZ2Nk6cqIZYx6Bq\nnwAAE+dJREFUrMTdu9MATIbpjKR6AFcRGHgROp0aS5ea+3R2dmLu3LlobGxEW1sbVCoVFi1ahLy8\nPISGhrKPi32qT5yAUizGtLt3rdgAFwMDodbpkL906ajzEVq+RptPf4gIubm5mDx5MjZv3my2zXaf\nSwgONqCy8mNMnDgRIwUuvgKhtrYWOQtykPl/ZiP2qZgh//5syWc4+7tzOHX8FGJjY022dXR0ICUl\nBa+99hqWLVtmdgIap3q7evUqDh06hKqqKvj6+pr5ZGbmQKPJBBBvw/+gDnL5GZw+bd2nsLAQAQEB\nKC0tRWVlJaRSKbq7u5GTk4Ply5ezj5M+OZmZyNRobLQBzsjlOHX69KjxEVq+RotP/ylt+xfizZs3\nY//+/S7xGTPmMwQG1uL06ZNmPkKFi68AuHHjBpJmJGHurkxMzLZ9KaxLf7mMz35bj4vnLprdVf79\n739HXl4e4uPj8eWXX5rNrWpp/uf+PtOmJaOjIwvAJJt9RKILUCjO4cqVoX0Gzj0bFxeHhoYGnDx5\nEg899BD72OmTPG0asjo67LABLohEOKdQ4OKVK17vI7R8ebvPwHmbB84t724fIXKfpwUYYNNbmxD3\n3BS7Ci8ATHsuAf+s/Abbd2xH0b8XmT3hxsXFQa1W49q1awgJ+WGidEvrbPanuHgTurriYM+BDwBE\niejo+Ce2bduODRts97l58yaSkpIwdepUPPLII2Z3yOwzuM+m4mLEdXXZaQMkEuGfHR3Yvm0bijZs\n8FofoeXLW33603/d3jNnzvStvrRkyRKP+AgRfvL1MBqNBhHKCDxXvxxypdzu/W+da8Tf5n+AhJgE\nXLhwweQJVyKRmPX/DtbPYvRRKCLQ1fU8gGAH/kffQiY7gORkx3wG3iGnpqaiqqoGWu1K9rHiU1NV\nhZVarYM2wAGZDAnJyV7rI7R8eZuPQvERbt26Dh8fH5Mtlr4/8aSP0OD1fD3Mnr17oExXOlR4ASAi\nZSx8w8VIT0/vW5DauD6mSCQyW7e3/zqbFn327IFINA6OHfgAEIl793wd9jHeIRsXCo+KioLBEMk+\ng/hEGgxO2AC+9+55tY/Q8uVtPt3dYhw9etRsi9B8hAa/dvYwJ6pPIGq+0qk2YhbHQNulNfl60UhQ\nUBDKysqQmZkJHx8fbNq0CXV1dWYfOBipqDgBjWa8Uz56/RT09DjvI5PJ0N6ugcEwhX2s+Gja2zHF\nYOuC45aZotdD29PjlT5Cy5c3+nR2RuHTT6ssLmIvNB8hwcXXw7S2t0IeFuhUG/6hfmi91Wp1e2Ji\nIjZs2IBnn30We/bssdjPa6SlpQ2O33X2GaG5mX3c4dPW0uICG6C1udkrfYSWL/bxvI9Q4NfOHkbi\nK4FB69yTgkHbC4mvxOp2IkJlZSWio6PxySefDO4j8QXgnA9ggJ8f+7jDx1cicYENILHwFOUNPkLL\nF/t43kcocPH1MJH3R+LOP+441UbnPzoQeX+k1e1vvfUWWlpacOrUKZP+F0solZEQiW475SMWd0Cp\nZB93+EQqlbgtEjnl0yEWI1JpvetjJPsILV/s43kfocCrGnmYEHkISn5TgqSXpkPkwEVL163DwWUf\noEfTAyLqW23ESG1tLVatWoWKigpEREQgPT0dy5Ytw4IFCxAeHm7WXlhYCPbt+xN0uiQAjlxEdejt\n/Sv0eud8mpqasHv3bpSXH0Fj42UAM9nHgs+R8nJcbmx0wgb4a28vevR6r/QRWr680cfX90Ns3brF\n4thaofkICX7y9TAqlQpy/2BcO3bdof2vlF1FmioNL774IsrLyzF+/HhkZ2dj586d+Prrr83G8/Yf\nf9fd3W3RR6EIBnDNwf9RA9LSVA75XLt2DVu3bsVjjz2G2NhYVFdX49VXX0VU1Fj2GcRnbFSUEzaA\nKs2x42ek+AgtX97mk5LyMCZMMJ+jwNJ8Ap70ERpcfD2MSCTC2pfW4vTGOhh09vV1aO9qcW7Teaxf\ntd7kc/2CggKUl5cjNjYWY8aMQUtLC9ra2vr2W7lyJeLj4/Hyyy9b9CksXAOptBb29730ICDgLF55\n5Vc2+zQ1NUGv10OtViMmJgbV1dVYs2ZN3zCKvLw8FBWtY59BfNYVFaFWKnXABjgbEIBfvfKKV/sI\nLV/e5lNYuMZsCxGhoKAA+fn5yM3N7ft3T/kIES6+AmDF8yswUT4RR1dUoFffa9M+um4dPlj0Ieao\n5ph8Um8cN6dSqZCYmIiNGzea3SG3t7ebjb8z8VmxAjNnToCfXzlsPwF0kEoPYeHCzCF9Dhw4gMjI\nSISFhSE6OhrHjx/H22+/jXHjxiEnJ6dv3CL72O4zYeZMlPv52WEDHJJKkblw4ajwEVq+vNXHSP/x\nvE1NTSZPuDU1NW73ESI8w5VA0Gg0mPfkPDSL1fjxf2YgJDrE6t82f96MT/71GJLGJWPvf+2FWCw2\n2W5p3uaBM8moVCrMmDEDW7ZsQU1NDWJiTBdz0Gg0yMqaj/Pn1ejqehzAYP0nagQEfIzMzCSUlVn2\nyc3NxerVq1FZWYn6+nqzuWfZx3mf+VlZUJ8/j8e7uoawAT4OCEBSZib2lpWNGh+h5Ws0+QycWx4w\nn/95uHwEi8sXKWQcRqvVUuH/LqTg8GCKy55CTx9eRC9/s4r+7fY6Wn3zl/Tk+3k06ZGJFD42nIo3\nFZPBYDBrw9r6mP2xdf1NrVZL69cXkkwWTDJZHAFLCVhHQBEBawnIJ5lsEsnl4fTGG38w8+m/fqhU\nKjVZP5R9hsencP16CpbJKE4mo6UArQOoCKC1AOUDNEkmo3C5nP7wxhuj0kdo+RqNPv0ZbP1xZ32E\nDhdfAdLV1UW7du2ilB+lUPjYcJIGSkkRqaBZs2dRWVkZabVai/v19vbSvHnzaN26dTb/VkdHB6Wl\npVFUVBQFBQVRVlYWvfPOOyYnptEnISGF5PJwkkikFBKioNRUc5/GxkYqKSmhjIwMCgoKooiICMrN\nzR30BGSf4fFJSUigcLmcpBIJKUJCaFZqKvuQcPM1Gn16e3tpyZIl9MILL1j9G3t8RhJcfL2IN998\nk2bMmEE9PT127Xfnzh2aNGkS7dixo+8O2dqJaYn+J6BcLu+74y0uLmYf9mEf9rHJ591337Vrv5EO\nF18voaamhhQKBV2/ft2h/evr6yk8PJy++OILIjJ9VWXpxLR2AhrveNmHfdiHfRz1GQ1w8fUCbOnn\ntQVr/S/GEzMnJ4f8/PwoNDSU/P396amnnrLYp8M+7MM+7OMqH2+FZ7ga4RARnn76aaSnp2P16tVO\ntZWcnIyTJ0+isrIS8+fPB/D9uLz3338fu3fvRl1dHXJycpCRkYGQkBAcO3YMarUavb29fTPtsA/7\nsA/7uMrHq/FY2WdcgqP9vNa4c+cORUdHU0FBgdVXTEYsvapavHgxJScnsw/7sA/7OOQzWvp/ufgK\nmIaGBjp8+DDt3buXjhw5Ql999ZXJdmf7WfrTv09HJpORRCKhkpISkxNwMJ/Ozk56/fXXSSKRUGBg\noM0fb7AP+7AP+/THWv/vUNfDkQYXX4HR3d1NpaWlFB8/naTSMJLLEygwMInk8qnk7y+n1NRZdODA\nAVKr1U73swz2EYWx/6WtrY1KS0tp+szpFPZAGE19Ip6mL06k+Ow4kivkNGu2uc9QH2+4wsee+IxG\nn+nx8RQmlVKCXE5JgYE0VS4nub8/zUpN5fiwjyB8BsPe649Op3P4tzwFz3AlIL6fmSYH9+6F4u7d\naQAmw3QGUD2AqwgMvAidTo2lS/Oxc+dOu36jqakJBw8exP79+63OPAN835ecnZ2N6rpqPJj6ABJ+\nMRWTnpiIMT4/+Oh79Pji4Je4vPVzqK80I3+BuY+lmbUWLVqEvLw8hIaG2u1z4kQ1xGKlw/Hxdp/q\nEyegFIsx7e5dKzbAxcBAqHU65C9dOuriwz6e9bEVe68/vd8RPv7wY0ycONHm3/A0XHwFQm1tLTIz\nc6DRzAEQZ8MedZDLz+D06VOIjY0d9C9tPQEH+uQsyMbskh8jbtGUIW3OlnyGs787h1PHrfsYT8zS\n0lJUVlZCKpWiu7sbOTk5WL58+ZA+38cnE0D8kD62xMfbfHIyM5Gp0dhoA5yRy3Hq9OlREx/28YyP\nI4XY3uvP+f9bjzOv1+HkINcfocHFVwDcuHED06Ylo6MjC8Akm/cTiS5AoTiHK1cumh3MjhTc/j5J\nM5Iwd1cmJmbbvjTXpb9cxme/rcfFc0P7WJp71tqJ6Y74jHSf5GnTkNXRYYcNcEEkwjmFAhevXPH6\n+LCPe30GYk8hHo7rjxDhVY0EQHHxJnR1xcGeAx8AiBLR0fEv2LZtOwCYrR4ycLmugauHWGPTW5sQ\n99wUuw58AJj2XAIUs/4Xtu8Y2qesrAxvvvkmDh06ZLIsWv/Vl4zLorkjPiPZZ1NxMeK6uuy0ARKJ\n8C8dHdi+bZtXx4d93OMzGMbVlwYug2jxeHbR9Ufo8JOvh9FoNFAoItDV9TyAYAda+BYy2QEkJyfg\nwoULdj3hWvOJUEbgufrlkCvldu9/61wj/jb/AyTEOOYz8A45NTUVVVU10GpXwhPxGQk+NVVVWKnV\nOmgDHJDJkJCc7LXxYZ/h9VEoPsKtW9fh4+Nj994Wj+e6Gvzs8k8dvv4cXVyBG1/dcMjHnfCTr4fZ\ns2cPRKJxcOzAB4BI3Lvni/T0dLufcC367N0DZbrSoQMfACJSxsI3XOywz8A75KioKBgMkfBUfEaC\nT6TB4IQN4HvvnlfHh32G16e7W4yjR486tLcln4i0sU5ffxz1cSdcfD1MRcUJaDTjnWpDr5+Cnh6t\nwwW3PyeqTyBqvtKpNmIWx0Crd95HJpOhvV0Dg2HoDy4Gw1XxEaKPpr0dUwy2LjhumSl6PbQ9PV4Z\nH/YZfp/Ozih8+mmVU20YfTQ6DWIXxQz9x4OgnK9E1SnnfYYbLr4epqWlDYC/k634o7m51RU6aG1v\nhX+Ycz7+oX5ove0aH6HFR2g+bS0tLrABWpubXaEjuPiwz+AIzUdo15/hhIuvh5FIfAE49+QCGODn\nJ3GFDiS+Ehi0zvkYtL2Q+LrIR2jxEZiPr0TiAhtA4oK3JoDw4sM+gyM4H4Fdf4YTLr4eRqmMhEh0\n26k2xOIOKJWRLvGJvD8Sd/5xx6k2Oq91IvJ+1/gILT5C84lUKnFbJHKqjQ6xGJFK57oajAgtPuwz\nsnyEdv0ZTrj4epjnnvsJpNLPAfQ62IIOPj4NePrpp13i85MlP0HDziugXsc+gtd163Dlvat4erFr\nfIQWH6H5/OS55/C5VOqEDdDg4+O18WGfkeUjtOvPcMLF18OoVCooFMEArjnYQgNSUh7GhAn2jYkb\nzEfuH4xrx647tP+VsqtIeTjFpT5Ci4/QfIIVCidsgIdTOF/sIxwfIV1/hhMuvh5GJBKhsHANpNJa\n2N/30oOAgLMoLFzjUp+1L63F6Y11MOjs89He1eLcpvNY+4u1LvURWnyE5rOmsBC1UqkDNsDZgACs\nKSx0qY/Q4sM+I8tHSNef4YQn2RAAer0ec+fOQ03Nd7h37wkAtgwO10EqPYgnn5yB3bt3QuRkv99A\nn3kL5+G7kGZk75yLMfcNfY+m69bh0JNHMPOBmdi53fU+QouP0HzmzZ2L72pq8MS9ezbaAAelUsx4\n8kns3L3b6+PDPiPLR0jXn+GCi69A0Gg0yMqaj/Pn1ejqehzAYHOTqhEQ8DEyM5NQVrYXYrF4WHzm\nPTkPzWI1fvyfGQiJDrH6t82fN+OTfz2GpHHJ2Ptfw+cjtPgIzWd+VhbU58/j8a6uIWyAjwMCkJSZ\nib1lZaMmPuwzsnyEdP0ZDnx+85vf/MbTEgzg6+uL5cufQUfHt7h0aSd8fW9Cq70PgC8AAqAB8P8g\nk30Cf//PUFS0Clu2/BH33XffsPksW7IM3355C7t+/hd8c+Ib3Bd0H8QyXxARNN914eujX6PypeM4\n/x8X8MufrsLbb749rD5Ci4/QfJ5ZvhzfdnRg56VLuOnri/u02gE2wCcyGT7z98eqoiL8ccuWURUf\n9hlZPkK6/gwLblw7mLGRrq4u2rVrFyUkpJBcHk4SiZRCQhSUmjqLysrKSKvVesQn5UcpFD42nKSB\nUlJEKmjWbM/6CC0+QvNJSUigcLmcpBIJKUJCaFZqKseHfUasj1CuP66CXzszDMMwjJvhr50ZhmEY\nxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEY\nhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EY\nhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUY\nhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZ\nhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdf\nhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PF\nl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w\n8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEzXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHcDBdfhmEYhnEz\nXHwZhmEYxs1w8WUYhmEYN8PFl2EYhmHczP8HBozQhyPfM8QAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "utilFunc = lambda x,p: x