{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function\n", "from deltasigma import *\n", "from IPython.core.display import Image" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# skip this, this is just to display nice tables.\n", "from itertools import izip_longest\n", "class Table(list):\n", " def _repr_html_(self):\n", " html = [\"\"]\n", " for row in self:\n", " html.append(\"\")\n", " for col in row:\n", " try:\n", " float(col)\n", " html.append(\"\" % col)\n", " except(ValueError):\n", " html.append(\"\" % col)\n", " html.append(\"\")\n", " html.append(\"
%.6f%s
\")\n", " return ''.join(html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Modulator realization and dynamic range scaling - # demo3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this ipython notebook, the following is demonstrated:\n", "\n", " * A 5th order delta sigma modulator is synthesized, with optimized zeros and an OSR equal to 42.\n", "\n", " * We then convert the synthesized NTF into `a`, `g`, `b`, `c` coefficients for the `CRFB` modulator structure.\n", " \n", " * The maxima for each state are evaluated.\n", " \n", " * The `ABCD` matrix is scaled so that the state maxima are less than the specified limit.\n", "\n", " * The state maxima are re-evaluated and limit compliance is checked.\n", "\n", "**NOTE:** This is an ipython port of `dsdemo3.m`, from the **[MATLAB Delta Sigma Toolbox](http://www.mathworks.com/matlabcentral/fileexchange/19-delta-sigma-toolbox)**, written by Richard Schreier." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Delta sigma modulator synthesis" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "order = 5\n", "R = 42\n", "opt = 1\n", "H = synthesizeNTF(order, R, opt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's inspect the NTF, printing out the transfer function and plotting poles and zeros with respect to the unit circle." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " (z^2 - 1.995z + 1) (z^2 - 1.998z + 1) (z - 1) \n", "--------------------------------------------------------------\n", " (z^2 - 1.614z + 0.6657) (z^2 - 1.797z + 0.8552) (z - 0.7783) \n" ] } ], "source": [ "print(pretty_lti(H))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure(figsize=(10, 5))\n", "plotPZ(H, showlist=True)\n", "title('NTF');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evaluation of the coefficients for a CRFB topology\n", "The CRFB topology is depicted in the following diagram." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(url='http://python-deltasigma.readthedocs.org/en/latest/_images/CRFB.png', retina=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the modulator order is 5, we're interested in the topology for odd order modulators." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Unscaled modulator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the coefficients" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a, g, b, c = realizeNTF(H)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Feed-in selection\n", "We'll use a single feed-in for the input, to have a maximally flat STF.\n", "\n", "This means setting $\\ b_n = 0, \\ \\forall n > 1$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "b = np.concatenate((b[0].reshape((1, )), np.zeros((b.shape[0] - 1, ))), axis=0)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
CoefficientsDAC feedbackResonator feedbackFeed-inInterstage
a(n)g(n) b(n) c(n)
#10.0006670.0016220.0006671.000000
#20.0085830.0045930.0000001.000000
#30.0552010.0000001.000000
#40.2476070.0000001.000000
#50.5569350.0000001.000000
#60.000000
" ], "text/plain": [ "[['Coefficients',\n", " 'DAC feedback',\n", " 'Resonator feedback',\n", " 'Feed-in',\n", " 'Interstage'],\n", " ['', 'a(n)', 'g(n)', ' b(n)', ' c(n)'],\n", " ('#1',\n", " 0.0006670795813848786,\n", " 0.001622050471799641,\n", " 0.0006670795813848786,\n", " 1.0),\n", " ('#2', 0.00858263528791771, 0.004592653480622877, 0.0, 1.0),\n", " ('#3', 0.05520145164491604, '', 0.0, 1.0),\n", " ('#4', 0.2476072516506828, '', 0.0, 1.0),\n", " ('#5', 0.5569351152496502, '', 0.0, 1.0),\n", " ('#6', '', '', 0.0, '')]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t = Table()\n", "ilabels = ['#1', '#2', '#3', '#4', '#5', '#6']\n", "t.append(['Coefficients', 'DAC feedback', 'Resonator feedback', \n", " 'Feed-in', 'Interstage'])\n", "t.append(['', 'a(n)', 'g(n)', ' b(n)', ' c(n)'])\n", "[t.append(x) for x in izip_longest(ilabels, a.tolist(), g.tolist(), b.tolist(), c.tolist(), fillvalue=\"\")]\n", "t" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the state maxima" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The state maxima have been evaluated through simulation.\n" ] } ], "source": [ "ABCD = stuffABCD(a, g, b, c);\n", "u = np.linspace(0, 0.6, 30);\n", "N = 1e4; \n", "T = np.ones((1, N))\n", "maxima = np.zeros((order, len(u)))\n", "for i in range(len(u)):\n", " ui = u[i]\n", " v, xn, xmax, _ = simulateDSM(ui*T, ABCD);\n", " maxima[:, i] = np.squeeze(xmax)\n", " if any(xmax > 1e2):\n", " umax = ui;\n", " u = u[:i];\n", " maxima = maxima[:, :i]\n", " break;\n", "# save the maxima\n", "prescale_maxima = np.copy(maxima)\n", "print('The state maxima have been evaluated through simulation.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the state maxima" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(order):\n", " semilogy(u, maxima[i, :], 'o-', label=('State %d' % (i+1)))\n", " if not i:\n", " hold(True)\n", "grid(True)\n", "title('State Maxima'); ylabel('Peak value'); xlabel('DC input')\n", "xlim([0, 0.6]); ylim([1e-6, 10]);\n", "legend(loc=4);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scaled modulator\n", "### Calculate the scaled coefficients" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Scaled modulator, umax = 0.58\n", "\n" ] } ], "source": [ "ABCDs, umax, _ = scaleABCD(ABCD, N_sim=1e5)\n", "as_, gs, bs, cs = mapABCD(ABCDs)\n", "print('\\nScaled modulator, umax = %.2f\\n' % umax)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
CoefficientsDAC feedbackResonator feedbackFeed-inInterstage
a(n)g(n) b(n) c(n)
#10.1002980.0085080.1002980.135347
#20.1746560.0108170.0000000.190649
#30.2141650.0000000.380271
#40.3653040.0000000.424567
#50.3488520.0000001.596478
#60.000000
" ], "text/plain": [ "[['Coefficients',\n", " 'DAC feedback',\n", " 'Resonator feedback',\n", " 'Feed-in',\n", " 'Interstage'],\n", " ['', 'a(n)', 'g(n)', ' b(n)', ' c(n)'],\n", " ('#1',\n", " 0.1002977628115526,\n", " 0.008508036472714772,\n", " 0.1002977628115526,\n", " 0.1353470899398978),\n", " ('#2', 0.17465586699409, 0.01081726217175677, 0.0, 0.19064921465740636),\n", " ('#3', 0.21416477448557475, '', 0.0, 0.3802708889041198),\n", " ('#4', 0.3653036244427978, '', 0.0, 0.4245670861721391),\n", " ('#5', 0.348852264230054, '', 0.0, 1.5964784304291457),\n", " ('#6', '', '', 0.0, '')]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t = Table()\n", "ilabels = ['#1', '#2', '#3', '#4', '#5', '#6']\n", "t.append(['Coefficients', 'DAC feedback', 'Resonator feedback', \n", " 'Feed-in', 'Interstage'])\n", "t.append(['', 'a(n)', 'g(n)', ' b(n)', ' c(n)'])\n", "[t.append(x) for x in izip_longest(ilabels, as_.tolist(), gs.tolist(), bs.tolist(), cs.tolist(), fillvalue=\"\")]\n", "t" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the state maxima" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The state maxima have been re-evaluated through simulation.\n", "The maximum input was found to be 0.583333\n" ] } ], "source": [ "u = np.linspace(0, umax, 30)\n", "N = 1e4\n", "T = np.ones((N,))\n", "maxima = np.zeros((order, len(u)))\n", "for i in range(len(u)):\n", " ui = u[i]\n", " v, xn, xmax, _ = simulateDSM(ui*T, ABCDs)\n", " maxima[:, i] = xmax.squeeze()\n", " if any(xmax > 1e2):\n", " umax = ui;\n", " u = u[:i]\n", " maxima = maxima[:, :i]\n", " break\n", "print('The state maxima have been re-evaluated through simulation.')\n", "print(\"The maximum input was found to be %.6f\" % umax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the state maxima after scaling" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEfCAYAAACAm/v/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4U1UbwH83Sffek7ZQ9kZAQLaoIIqAYERBUETcguBC\nZQgqisrnVjbI0igqKkOhDEH23qub7r1Hmtzvj3SluYW0trYN9/c8eTDnnpycN8J97zuPIIoiMjIy\nMjIytUHR0BuQkZGRkWm6yEpERkZGRqbWyEpERkZGRqbWyEpERkZGRqbWyEpERkZGRqbWyEpERkZG\nRqbWyEpERsaCEAThcUEQtA29D5lbB1mJyDQpBEGwEwRhgSAIVwRByBcEIU0QhCOCILxYac5yQRB2\n12LtfoIg6AVBCKqjvepLXyMkrv1Sem1ZXXxXJb4H/Ot4TRmZalE19AZkZGrIN8Ag4CXgNOAM3AY0\nq8PvEOpwrWhgCvB7+eKC4A8MB2KAOq32FUWxECisyzVlZG6EbInINDVGAotEUfxNFMVoURTPiqK4\nRhTFdwEEQZgHTAYGVrIEJpZemyYIwklBEHIEQUgQBGGjIAi+pddCgL9LvyOy9HO7yr5UEIRxgiCc\nEgShQBCESEEQPhEEwd6M/a4ChpUqjjImA/uASCopLEEQ7hYEYU+pdZVZ+t89K12/QxCEYkEQRlUa\nG1w6dnfpeyN3Vtl7QRAGCYJwttR62yUIgm/pZ08JgpArCMKOynsUBKG5IAg/C4IQJwhCniAIZwRB\nmGCGvDK3GLISkWlqJAD3CoLgVs31j4ANwAHAt/SlKb0mAjOBjsBoIAiD+wcMVsHI0v/uWfq5B8Fw\nIwa+Ll27HTARuAv41oz9hmNQTk+UrqXAoESWVtpTGQ7Al0BvoA9wFdguCII7gCiKB4B5wApBEJoJ\nguAFrAMWi6K44wZ7UABzSr+3LxAI/Fi61tRKY4ur7GUnMAzD77UUWCUIwiAzZJa5lRBFUX7Jrybz\nAu4AooASDO6sJcDIKnOWA7vNWKsboAf8St/3K30fVGVeFDC1ytiA0rkuN1hfDzwKPARElI4NA5IA\nK2APsPQGn1cA6cCjlcYEYAcGxbQVOAQoK11/HNBWea8HOlcae6V0rFulselAyk1+r19vtF/5dWu+\nZEtEpkkhGp7GQ4H+wBrAB/hJEITfbvbZUpfOn4IgxAiCkI3BpQQQfIPPeGGwWP5X6gbLEQQhB8MN\nXARamrHtXwGHUpfTVOA7URRNMqhKXUhrBUG4KghCFpAFuJR+f5n8IvAY0Ln0NxgniqLuJt8vAmcr\nvU8q/fNMlTEPQRCE0r3YC4LwgSAI50rdazkY4jh1knQgYznIgXWZJkfpTfNg6WuxIAjjgbWCIPQX\nRXGf1GdKM662YlA884BUDMH4nYD1Db6u7EHrJUAq4yvOjP1qBUFYDbyNwVXVqexSlal/AMnAc0As\noAX2S+yvG1AWjwnCYCndCH2p8infUum+dFXHMFg6IgbX3QPAy8BlIB/4BEMig4xMObISkbEELpX+\n6V36ZzGgrDKnJ2ALTBdFsQigctC60ueo/FlRFJMEQYgF2oqiuOJf7HEpBjfSPlEUr1S9KAiCB4Z4\nywyxNL4hCEJgJZnK5vliUITvAm7AOkEQuoiimPEv9iZFf2CdKIo/lX6vAmiDISYlI1OOrERkmhSC\nIOzFEDg/DqRgcCe9D2RQYSlEAGMFQWiP4ck+G7iC4Qn7FUEQNgBdgNlVlo/GECu4TxAEDVAkimIW\n8BaGYHYG8BsGC6EdMEwUxWfM2bcoiuGliqKosjhUZGdllMozVRCECMATWAQUVJJdAL4DLgALMPz7\nHQCsxJAoUJdcBkYJgvAzkAfMAPyQlYhMFeSYiExTYyswHtiCwQJZieGG11cUxfTSOSuAoxgytJIx\nxA3OAi8CTwPnMdwUp1PJpSSKYhIwC3gDiAd+KR1fB6iB+4HDwBFgLnC9JhsXRTFTFMWCykNUuJb0\nGALwoRhiFSuB/2F8034NQ03MeNGAFhgHDBEE4dkq63KD9+aMvYxBqe7G4PKLBX66oYAytySCsatU\nRkZGRkbGfGRLREZGRkam1shKREZGRkam1shKREZGRkam1shKREZGRkam1lhcim9YWJicKSAjIyNT\nC4YMGVLjDtYWp0QAhgwZ0tBbkJGRkWlShIWF1epzsjuribFnz56G3kK9IsvXdLFk2cDy5astshKR\nkZGRkak1FldsGBYWJsruLBkZGZmaERYWVquYiGyJyMjIyMjUGlmJNDEs3S8ry9d0sWTZwPLlqy0W\nmZ0lIyMjIwM7/gxj/dqf0OtBoYDxj43l7qF16+5vEkpErVY7YDjjugjYo9FoNjTwlhqMQYMGNfQW\n6hVZvqaLJcsGTU++HX+G8fbMuThla1HpSihRqnj7lOGAy7pUJE3FnfUgoNFoNFMxnLYmIyMjI3MD\nFrw5H4+4JJ5MymZSaj5PJmXjEZfEgrfm1+n3NJgSUavVK9VqdZJarT5bZXyYWq2+pFarr6rV6tdL\nhwMwnGcAcLPzpC0aS/fLyvI1XSxZNmh68uVci+CxfGNn02P5KnKuhdfp9zSkO2sV8AWGk9oAUKvV\nSuBL4C4MZ1cfVavVv2E4/KcZhsN6mor1JCMjI/OfU1Ki45cfjuNQome7MpNrDnpsVEqKSnS0zFOg\n0tU4i/eGNJgS0Wg0+9RqdUiV4duBaxqNJgpArVZ/D4wEPge+VKvV92E4nvSWpan5ZWuKLF/TxZJl\ng8Yj3/YdW1m5/lu0+mKsFNZMHv8Mw+4eDkBGeh7LZ2/EZu+f5OtzSPd056u2vcs/O/vSIbLy8up0\nP40tsF7ZbQUGC6SXRqPJByabu8iePXvK/4eXmaDye/m9/F5+39TfL/rkQ37YtgLPniWU8daH0wGw\nynDi0rzPcEmPxOuZUVivPMiCNhUKBGBB2948fWl/+fuq69eGBq1YL7VEftdoNJ1K348Bhmk0mqdK\n30/AoEReNHdNS69Y31NJQVoisnxNF0uWDQw38GNn/5G0AP4rxk68n5yACybjUbuzadvLhSI7sLdz\nxNXBg8SvI3k/tJfJ3DdiT7H90iWT8dpWrDc2SyQOQ+yjjGYYrBEZGRmZBmP7jq0mFsC7n88CkFQk\nN3I51WRuYXEBl2JPcjriMGcjD3Mq4gChAa4ma6jyrJgz6Wc6d26HSqEiacMvzGK25Pdp6zYk0uiU\nyDGgVamFEg88DDzSoDtqZFjykx7I8jVlmqJs5t7sv13zuZECAXDomMOS7z7nniHDUCgq8n2279jK\nu5/PwqFjTvlYdQpn+46tvDLvGQIGVNyKX543hZ0nhqN3ySI84SLNfdvSufntPNTnSX7+8C9JOQoL\ntHS/rQslOblEfvg/dLn5dJwwhrnrNvJOaI/yeXPCj3HvU4+b/wOZQYMpEbVavREYCHio1epYYI5G\no1mlVqtfAP4ElMAKjUZzsaH2KCMjY7lUd7PX6fW079KS89HHuRB1nAsxJ7gQc47mzZxN1rgQc5xR\n8zrh7xGEv0cw/h4hrF+6yWhNMCicz5d/iGugDXmFOeQVZpNbmMN78z4gcICV0dygAbZs+3U7nzw1\nE096kRcWRdrZnUQkrMenWE/i5gx8R7qVz0/8NQPrVAX516KImr8Y597dCZg6npkqFaKdDTO/W4eV\naLBA7n3qcV6Z9Xad/o5yF98mhqX7nWX5mi6NQbaauJHUjz9Alt85k/HI/dn0G9mZ9iHdaR/UnQ7B\n3Zn8xERUXZJM5urO+vLbpr9ISIshLi2K+LQoPvnwU9y7lpjMTTiqZeSEu3GwdcbRzhl7WycWvPYe\nrYe7m8wN35DCqx73keXiRa6TJ6KbF3oHF7avf5N7tCL73fLQW4kotAL9MhzI8fPk6W7dCXz+CdwG\n31GLX85yYiIyMjIytaI6y0IURXr3uZ349BgS02NJSIsmPj2GS9dP4udnZbJOm6AurHzF+JQ/26QS\nrktYAH6iHYUXoglqGUKof3sAPp79NWCqRGyKXHnl9lmkHDlD9LajpB7ZjSrLdB5AsV6B7oVptPNz\nJrSZK54ejri42fPzn4v4JzWDwDwHVEoFJTo9ugAv7vUPouXHc7ALaSa5Xn0iK5EmRkM/6dU3snxN\nl4aWbeX6byXdSC/Nn0jXoSH4uQfh594MP49gurTozW73o+gl8nbsrBwBKErPJPaXv4jWbMX2bDTD\nVU7s/y6r3AIYnuHEVZs8Dj/1FjnXorF2dcKpdXM4FU9immiicBwj0/h50OMUeAaQ4xNIXu974Zej\n0u6pHBXPTe5jsrdBg/sQuz2M19t1Lx/7+MoptrXw4r4GUCAgKxEZGZlGTnUuKm1JMeHxF0pjFic4\nE3mIYD9Hk8+3C+nGj7N3moyLTznw5sJpePWq6KSUfEjB+H638feDz5G87yi+d/Wl9bOPknx2P2PT\nrOic6mC0xl5rLa4fLcIqp4C82ATiwqNx3vcXvaKsTBTObpUOv01r6NjWlwBPBwRBYOu5H9FeOk9+\npblkK3Br21Hyt7DLyuLdSgoE4JXWXVmbl1ubn7ZOkJVIE6Mx+J3rE1m+pkt9yCblonrtg2dYvjUE\nrXM6/h7BtAvqRu+2QzgScJkiTPtC2aocTMYArIrB4WIh+Zfzy2/gDuk60nIP0X/a0/RZvQjB3o64\n6HQUviGsLYg26kX1nX0JeDfjzJUkUop0xOQpyHIPJs1KSeciBxOFs906h2H9WxqNLVg4j+nT30If\nn4hNnkiRQqAo2JcPFs6V3LOgLcGQc1QFrba6n7DekZWIjIxMtdQkUF1X64qiSHJmPOEJF1jw+Swc\nq7io/G5XkRsBmxYexMHWqXy85AkbE8si5bCSl2c9bfT5ovRM0o6c4eunZ/BcuiNgbL1oirPo7t2a\nvWuOEhORiruXEyoHFzz7PMjK83tQlpSgU6nw6zCIiORzHHe2p3eIB6ND3Gnr48TgX0JZGxFvonCc\nQkNNfod777oTPn2P5d9vplgP1gqYMm6kYbwKurx88qKvg2ew6Q9qZRrb+a+QlUgTw1KfYsuQ5Ws8\n1KTeAaBQm4/68QduqnCk1n3zo5fYdvQHbL1LCI+/iJXKmlC/duhF6cCznY29kQKBaiwLvT1FV+K4\nFvUDqUdOk3roFAXxSbj36EReRhZgWriXGHWdrIx82t/enLZD2xObp+X6Ni3padcYPnx6+bytx3/E\n29uepY8Yu5dmvz+Ht2fOZWWOtlzhZDta8e57cyRlufeuOyWVRmUKomKJemcxd/a5g6WnTjDVwaf8\n2tL8JB6a+foNPl2/yEpERkZGkuoC1SvXL5EsmqtO4dwzZBip2YnEp0WTkB7Dgs/examTcRNAr+56\nTh46wycffUpL//a4OXkBcGXvA2RhmoZrpbAxGVsy5z1Jy2LNa3N57ZFJOHXtiMP9w8m0dSMpIZuU\nQ7ukkqjIE3V8lVZIYWI0oZ6OhHo64OrnT1Ye7NjyLnYKgQK9SEGn/gT6mO6j7MCnDes3oSsRUaoE\nHh0/ptYHQWXsPcj1L1YSMHUC7e4ZiNf27axd+Z3BhWVlxUMzX2fwsGG1WrsukJVIE8OSfeogy1cb\n6qrFRhnJmfGcvLaf8ITzePqZrnE26jAvfjUKF3s3nO3dcHZwY101BXYz359Ci79dcLRzwd8jGD+P\nIAoL83EyXRaFTkXPNgONxrq37sHy7/fT4r4KiyFiSybjBwQRuX4zWRfDyb4UQfbFa5RcugwqL5N1\nk6yt2ePZC21ECZ4FBVi7CeTbWpHj6s7a7DwTt1OhqyerJ/TAx8kGQTCUTez6NBmfmHjmt+lUPndO\n1CkK9P6Sv/PdQ4f869MDRZ2O+OUbyNp/hNAP3sS+ZXMABg8b1qBKoyqyEpGRaYSYqxhq2mJDam5R\ncSE+LVw4cXU/J67tJysvna6hd+Bs7wGkmnxn64DOPD9iHln56WTnZ5Kdl45OLx3YDfJpyY+zt2Nr\nbV8+tnre94CpDz854joJf+1Hm5OLNisHbXYe51b/wtjrjkaZTmMzHLkQ8xvxWda4tAul+fgHsAkJ\nYv5dw0AiSalQgKyuQVzKLiQ9X0sre1va+jhhH9qcqOsprCyqcDvF2Vjh38ofX2dbozX8ivKY6R9i\nNDbfP4TFxRmScv9btBlZRL/3GYKVFa2/eh+Vs5TabRzISqSJYclP6WDZ8pUphs9WflBniqE6l9PX\nq/9H+y5tAMqfpr9etVhy7isLn2L0pGF0b9WP1x9eTKhfBxQKBd29TPeRe9aJl6dNp21QV6N1fljx\nm6TbycnWzUiBAHgW2JK4OdWkNsIrTsWlz1Zj5eyIlbMDVk6OCCV6OutMM50yu4UQ8t5bXD2fwIHz\nCSTsPUuRqw9r9ekmlkWmkxP9O/kz1deJIDd7lArD79FBfJFXF3xKrM4eFQIliCiV+bz+8jNG3yWK\nIh6C9Fl4Xk6mrVBqyu7t2/l9xRqEkhJElYq777mHoN3HcL97AL4TH0JQNu5z+GQlIiNTifrMRjJH\nMej0Opat/UryZv/+l28Toz1FRk4K6TnJpOekciriOM39TG9k1+LP8c66p6G0rZEoilxLuECzYHuT\nue1DurPoqfUm48PuHs7po8dYu3EZoqBDEJU89sgYyd9j8vhnqlE4hswobXYuMT9tI2LtrzjHZNLH\nyrRwb7+bLYO3LDdat3DvFohLM/m+85ev88OKA7Tu4EeXga1QFZeQftgLrdLKxLLwa+nP8A6+JmuU\nBbNvlBmVfy2K+GXryY9PhEAXkzVyL10j5dftuA8dhNLO1uT6zdi9fTs/LljEVHtvDKm7Il9+8Amj\nXniGDk88XOP1GgJZiTQx5JhBzakP11BN1s0tyGbx0vckFcO0d5+g86FAikuK0JYUo9OXEB6ZKdnu\nu6ikADdHT1r4tsPNyRMPJ29ST0wnn8smczsG386KGZuNxtTnpIPUNio7kzGAsC1bObf6F96KrghU\nb139C2FdejDkPmM5h909nM2an9j3x45yhTPh4QfpqnDlwOOvEb91Dz6DetFm+hMU5KVw+mokz1Wy\nLr6zLyHf3pu3nt2IIAgIAggKgWuZImvtS0ysC7sWIYSOuY3fLyQSfiiaIW28aRPajITOdxJ7/kiF\nZdHhdnx00ZLyQfWZUcUpaSSs+oGcY6fxnTCGcQO68dnsBUzzqEivXZqfxKgZL5F7+gJJ63/G4767\n8Bw5FCs3FxPrYsSTkyTjGL+vWFOqQCp4oUVH1h48wP0vv1DtvhsTshKRsWikFMOCz94gOy+TPn17\nU1CUS0FxPgVFeXz0zXzJG/3StV8y9K57y91C1a1bpnB69urBuaijnIs6ytnIIySkx5CUkYOvRJFY\nq4AOLHv5R6xU1lirbFAprXj4iZGSN/tgr9Y8NGCq0djTE1+8oQVQmZtZC1X54cPPGB5daDQ2PLqQ\ntW++S1vssPF0w8bdFRtPN/7ev5/YzXt4K6tC4fww/ysUITu477kp2E2YwJXoHPbsTUC0dpWsufD1\nzOHdr8chiiKiCKJe5PjVX/Bo1c9k7rGUixyITOOR7s24o7kH1ioFXRUPMfebDYgjK/1GB9cz5bnx\nkvKBqSvpvvGP0D49n9Q/duJ5/120W/U/lA723AmcO3+BtcdOSGZFFV1PIHnTFi49OYOLPi7sPnGM\np539KbMuli5YhKgT6dulKwWRsRRGxVIQGUPBucsQ2Np0Yw1YPFhTZCXSxLBkKwTqXj6pmIFjp1xm\nL55O32sdsbNxMLysHcjMS8FTYo1zUUcYPa8z3m4B+LgG4OMWgGbF75IK5+X3nqT9nb50DOlBx5Ce\nTBv9Hi39OzB+ylhJxWBv7YSro4fRWE1u9mWWz8r1S9Dqi7BS2PDytKclLaKbuae0OXkk7TlM4o79\nJPy1n4zos0jVUWhT0ri29HuK0jIpSs2gKC2D9RmRjFcaZ0Y9LHiwojiPwmgHglXptOsSyPCxt6Fa\nEoNm/Z9GNRdb/lnFoNsGsy88jaxCLVkFhtfV6/F07T+SZsHGMZjTCUf4cGQnozFJ99Rz46utwZB0\nJc18k7sH38nobz/A2tv4b8NLr70iuQ6ATaAfzaZNwXfiQ3x7/6hSBVLBVHtvvp72Gr59BmEb0gzb\nkGa49uuJ9ZG/oUhiwQYsHqwpshKRsVhEUSQp8zq2Emmq7UNuY+Ur243GLu+Rdvd0bdGXVbPWkpQR\nV/q6TpGuECknUIhvK358e4/RIUVQc8VgbiwCDEV2HolAkQJsDO+lkHJP/b5Uw6praQRdzyT9+Dk8\nenTG755+9PvxC7a++hrsvmKyjkuXdgzcvKT8vSiKfOnTErJMv7M4L4vX3h+FrZ3hpqgXRXaduUZx\n76FsOru5wu3UZxhbT56BbnG42lnhYmuFi50VNt6ebD3xE8NvG1u+5tbjP+LkZ5rKC2BbUkxwVnK5\nZWFbUs2PAfy2bLW0Kyk7lYe9pR4nbo6Vmwu23p6SWWJO7VvTfu0XRmOjinNZWq7IDDR08WBNkZVI\nE0OOiZhHSlYCn/78JmlZKQRIpJNKFavd6EbvYOtMCz9nWvi1A2CD18/VZiNVVSBQYTF8/MVCnFwd\nbmgx1CQWEbZlK6tffsvI7bQq/C20ufn0u703xVnZaDNzKM7KZu3sBSbuqREJOrbs3sWHX32Bz8Db\nUTlUBN5D+/Zm+f5jTNFWBO6XW2XRq1UH/gm7RFJ8FskJhleuVocUeisVqBTsC09l77UU9l1LIyK9\nAPcuXaGlsXXhq43m0zFdjMb+aBHIZWWIscLp1o8WEnEOKcti6fwPKU5Oo3fLNhTFJVIUn0hRfBLF\n8YkUnDoHLSQaHVbjSjL376aoUgES5zTZmv6dK3OHNabiwZoiKxEZi0IURXac2MTybR8wss8k7nh9\nNAu/ml3nrqGaxhfAYCF4JoFbzo0tBs3iLyVjESuffRW7wbvRFRahLyxCV1jMkmN7GJ1rnBV0X0wh\nSyc+T3FwR6xcnLF2dcLKxRltagZgeuaQU0gzAoYPMhk/dT6SgAETjOIRAR0e4OjJa/S+I5eAYHdu\n69MCHz8Xdv79pWS/qHQXT4Z9vZ/W3k4MauXJ47cH89JJDbEScltLZLI+NW4Us+Z/gktRCTZ6PUUK\nBXkXdjJlrrFrSRRFNn+91MSymOrgwzcLP6HVmIex9vfFNjgQlzt6YOPvi920FEnr6d+6kkY8OalG\n1kVjKx6sKbISaWJYshUC/06+tOwkg/WRncTCJ9cSWmo1KJUqsxQDGBSJOSm9NVE4UGExjIwupKyA\nb1XEW+THJ9PFw4/MM5fIOH2JzDOXSIu9AILpaXdWDnb4De2P0tYGpY01SlsbnF+9BudNCwJ97ujO\nA7u3Go1tHDZS0j0l2FojiiLpqblEXU0h6loyUVdTiI1Mp99tg03iEWRl88C4HsZjPt5E5ehM0mtt\n/L359ak+uNpbl099atwoQwC896MVn68mAG5bUkzXnDSme4aUj32aGoUqLZ3Mf45ScDmc/CsR5F+J\noOhyBAS1NVnDsW0oLd41vYE/MOXxGt3szf27aQnWRU2QlYhMo6Cm9RmV56sEK7r37sqJtO2M6D2e\ncYO+wUpVcdMyVzHUlJqs+9MXS0ysi/uiC1nz8lu8NHQUrp3b0GLSaFw7tWX78y9K3uztQwJp/ugD\nRmNW3u6SSkSwtTYZk3JPLVNlEWTnx4ezDOnAzVt5E9LKi/53t+Ns5Fbir58lNeIAVohoEfBscQdK\nN4HMAi1n4rI4HZfJmbgsIkrscWzVkayz+7CzEijQF6JvZegtVVmBgCEAfu7YMbatmllx9vfERyQD\n4L8tXWmkQACme4bw9ez5tBj7KPatW+A5cij2rVtg98xzkCnhRqrGsqjPm31Tty5qgqxEmhiWGBOp\nTX1G1fkrNxzmjefe4bG7nq3/DZcStmUrP32xBIq0YGPF2BefNopZ6IqLST1wkvjtf5P+zwmqNgYE\n8OrZhQGbvjIaG/vi0yy+MB3n7MLyI1CznW2Z8cJUk8+H9u3N5/sOEWJlUz43SlvE6D69yMrMJzsj\nn6zS1+6/z2HXoT/fRB3GVhAoFEWcQwaQoy1g6sy7cCs9KKkMO1uR63//zII2FZbI7FObiGrZmVFL\nD9DBz5kuAS5MuaM5177Lxinqslm9pXZv307k79tZHNCmfOzbnzazuUhPT/9mFCUkU5yYTHFCMgVn\nL0LzDiZrOLVvQ+j7bxiN1dSNBDW72Vviv726QFYiMvWGOdZFcUkRn6/4SDJddtaiFziaPAwbKzts\nrGyxtbLDxtqOFV+uNZnfvJ8j2//czuRH/hslIhXQXh3xFoUpGbQpsSLhz79J2nsEp1Yh+A/tj1PH\nVlw+GcllW135zb5NoVLSYlAoFbg42vNam9vKxxbFXUJRpf2FKIrsCvsHfx9fXg9tVz6+IPwimg3b\n0OW1xcXNvvxVkJmKd1Y673buVT73g+hwch38cPdyRF+sRZuRiTYtk+K0dK7v/cdIgQAsaNuNeVHn\nWRKUj8pOj6K4AEV8OkFZ6bws0Vvqs5QYEtb8iC43D11OLrrcPL7f/BPP+hqfrfGMWzOWbtlC75dn\n4tq/F9Z+3tj4eWM3ZSpkSvwPsDa1Lm41N1JjQVYiTYz6eBKqj1Yf0kV+s0jJSsSvhRuXr5/mcuxp\nopKuEJ2cQWBz05YR7i5eDOx8P0XFBRSVFBr+1BZSUk2zP61eKuHetKCsuurhmsz96YslhMZk8ptd\nJaUQU8jKZ2Yy8+HHCBx9Dz2/no+tlyG20VHIYl/sama3q7iBL7h4jP539DBZe9WHi3ktwNi3/1pA\nWz6e8z5O6Soy4jPJTM4kOyUbISKC2W06G82dHdqOdyPP80RnEcRcIBeKwCMjjjeaG2cjvREcyqcR\nZzk75in0+fmILs5k2zhwHWvsdBKuIcAWAe31BIqKitEXFaEvLMYhr0DK0MJBYSiwtPHzRtm6BUpH\nB+yO/C2ZvGQX4IvPI6OMxh54smZxi/p0I8lWiDSyErnFqakryVyki/xyeP+LN5nw9EO0adaFAZ2G\n0yqgIxOnjpNMl/Vw9GVAJ9M9/PrdX2afMSGZ9rlgEYDJzWb39u1898Zcpnk1L5/72Rtzy+fqtVqy\nLlwj7ehL1dEAAAAgAElEQVRZok+cIc9VyeudKpTC4rPHEHyDuWPNRwCIej3FyakUXU/g2s69zG5n\nrDBmt+vBNxs2cf5iAqJWi75Yi1hcjF10PISaBtZVKWlo/9iKm4Mtfk722IY4sMda4qhUwFoAsagY\nQ/8Qw5i9tanVA5DnYM+RqS+yNSYPnSgytJ0P97TzYdmArZLzk62UBL442WjM9tIJyXiETUgz/CY9\nZDSmcHE2O3YhWxeNH1mJNDHq2i9bk4OH4MZWS1p2cnm7j/Mxxwn0M72ptw3uyluPGhdc1TRdtibz\nf1u6yjTt096bpbPfpXVUMkpHB8PLyZE1c99juldzo7nTvJqz8IVX0QWuIev8NewCfXDv2h6dFcxo\nb6wUZnTqwcLw00TO/x9FcQkUxyehdLDHJtCPooxM8DGuTAfIsbEjavCDpGUUkJpeRHZuMRfOn5SU\nO85aRZ8Ni43GhD3bJOdaNfPHb/I4o7GYRQsl50bmFpBtZcf8+0No7+tUHhcZPvFR5iz7jvmVailm\nh5/l3qmTTNYY8eQkPnvzHZPeUlIWQ1NNgZVjItLISsRCuZmLKi41ihNX93E1/hzeEhXdF2KOsWD9\nc/i5BxkOE3IP4tLZCL5c8TGOnYyPNf1l/yqKnVLJzs+kQ3B3OjW/nWDvVuiIMVlXyloYdvdwzh07\nwbbv1iFoSxCtVIye+NAN03Ch+vRaUacj5/gZ0nfuI//0BWhhGpgtKi6mKCcfbeR1tBlZlOTkIiam\ngHOAyVxnnR4vZxt8+nUGAcSMVEJsJXw3gLOzM679e2ET6IdNgC9Ke0Nde1SbnyTnx2dn4xYaSEtv\nJzy9nXD1cODEpY18EB3OG8EVcYOF0eHYBZuerf3E6zP4cOYsXvevCFJ/EHeZpxdXKIycQi2XknJI\n92rGnPgo5leKXcyOi8KhdWtevrOVydqvvvEaADO+21iRRTV1Uvl4ZQYPG8bZM+eq7S1VdS7I1oWl\nICuRJoY5T0JSLqr5n73OhejjqDyLOHF1P0XaQrq36o+7ozeQbLJGiE8b+ne8l/j0GC7GnGTXqc38\nsW43wX2Nz3Xw6q7n8plIVn2zjmDv1uXV2k5FgWZbC7u3byfij118ElgRxF36xy52d+tR7Y3FRqcg\nMM8eocQaUaXCukRB/pUI0nfuI3PPAax9vXEb0o9YUTp+Ehl7nfA/9mLr44mtjyd2wUHE79kiOTdW\nLKHLb6uNxhweekTSJePcOhS3wXeUv09JzObgnitkKdwkFYNjSAvuuLON0RovvjqN997+gNnxSVih\nR4uCHBdX3nplmsn3Faqsuejhz3OZGeXFeFluvmwNz2Ln7+e4mJhDWl4xrbwdUbr7EN26P8+dCqso\n3Ov7IC3FOEm5waBIpJSGFDfqLVWVxmJd1ATZCpFGViJNhJoEv1es+8bEReXUKY+1P6zirTlvMqL3\nBEJ82iAIAh1dpQ8emj3tFQZ1MV4/fP8wUiLPobgINigoQo++HXg5edLc1zgQXJNiPKl22FPtvVn5\nyRf08G2G0tG+wu1kb8eev/4yiXN89dJrxIa05J4Jj9Bq8TyU7q5EbfwdfUoWi/OPMaNThevpk7NH\ncQ8O4u69G42+0+XXjSw+azrXKcjUVBvx5CQ+nTXPpAhu0sx56PUiV87Hc3D3FRLjMunRN5TWXdpg\nlefJ7IiD5YrBs83d2LuZph5JndH9UjVndC/Z+AtWI2aiBcrUpT0QtnMDCxYMYHKfEELcHVAqBLZ5\nP8rcbzagVb9ePtf6Jl1uZWRuhqxEmgDbd2zl7TnTsM8vKL95z7rwPJdiphLaPpCUrASSM+NJyUog\nJTOekxHnCfU37b4a4teasf2nGI1VdiWVuSyqcyXlJ+XgGW3DvGY9y8fmnTpKfrBEtzlMrQUbXUWK\nqiiKFMXGk3P8DEVXIsE7xOTzupQ0Etf+hC4335AimpuHvrCQDeHneL5K7cDzIe1Z66ZgTP/eXPhy\nHRHf/YxX7274t21N0NkYFh39B6VSiU6no3WhiuRupocUPTvvTRY/O91obpazHTPmvmkyt0SwIkrl\nZGQtZNs5ceZMIicO/IGtnTV3DG5Nx+5BWFkpweZhPl+8ms6VWrmfidjCS+OfkPztSpQCWdYqtCoB\nK4VIibKifqOgWMfByDR2X03h+PVsfE2LtAlwc+C+jsbKr6ZdbmuKpccMLF2+2iIrkUaOKIosXDib\nwAw985r1Kx+fF3uUFd98xZS3JuHl6k+P1gPxcvXD29WfFy88R2LkKROLwUWiAVxNXEk+xXbMqKRA\nAOY168n/SkxPnpPMinrnA3LPXaaLwo6c42dA1OPUvQsKLzeTzwPYtm5Bq0/mGv8eOj36gaZP5ABx\nh0/yZz81LSY+yND9GhxbNENbWs8xolI9x5ZgW56QKNwbct9w+AY2fbkUsbAYwdaaJ1+YatL0EGD9\n2p/o22Oyyfj27b+zZPnnNGvuYVS4V2ZFfPnFMlyc3QzWxYwnJK2LbTt3mbQFefvr9RyNSifbozXH\nYjLo6OfMoFZedPFzIknit5DqQwXVH8IkI1NbZCXSgHy88F0jC+DeiRN4ZdbbZOamceLafk5c3c/x\nq/soiIjjs1aDjD47r1lPZsSe4KWRCxCqdI3t3bY3+5Zd4p3QCrfM3CPH6PVYFwpj4koLv/Ioyc1j\n08JPJF1J3746B79fdqHPL0RXUIA+vwD7mERoYdoi2y4miQsTX0Lp6FjuetL8sYmnXQKN13X0Zcm6\njfSeMwfvMfdhE+SPIAg82CHY7GwdQakgLj4BQn1MrqWXFDHy2i5U9hVN2ssUQGXF8EQ1iqFsfnXX\nytDp9OTnacHJ9JqXrwtBEr8RGBSJlNKoyrLvfzXuKwUo+oznh83r+OiDvsy5tx3OtoZ0WIcJD5rd\nh6q+sfSndEuXr7bISsQMalKsZi4fL3yXfctW80mlG/07S1dxcu/PtG7uSGvH5vRW+TBcP4yPlT9K\nrtGq2IrTQx8FpRKFlQrBSoWgUnHl9CEjBQLwTmgPvt64mciYnIr4gqMD5BeCRPmAra8XQa8+h9Le\nFoWdHUp7O+wmTJSsHrbv1JbQhW+iy82jpLQq2WqndJDavnkzvB40vkkPHjaM00eP8caqdViLUCzA\nsCcmmPzGuuJi0o+eRVWkk4xdOPt5GymQMsxRDGXs+DOM9Wt/Qq8HhQLGPzaWu4cOIT+viKsXErh8\nNp6rFxJITc6ilalHDKXKtEtuGdt27mLZ97+i1RtcVE+NG8W9d92JKIokZBdyKTGHi0k5XEjKw6mN\n6edbeDkxvMN/66KSkbkZt6QSqWkF85pZc5nuWVGA9umsigK0qlRnXZQh6vSkXb3E3hVrWFDlRj+3\nZU8+unqKSYMnY+PliZWnO1ae7uj275bcW2Fzf7r8tRGxRIdYUoKoLUEsKcHxscdBos24U4fWtFv1\nP6Mx61MHJbOMlG4u2LcMMRq7UfWwTYDxHVXl42V2QVnYlq0cX7uJSXEVN+Ctazexs0sXuvkFk7T3\nMEm7D5N6+BTOrUJwsbWnRVy2WXGOmrDjzzBD3KJFhcJZ9O4Stv9yChe7IJq38qFNJ3+Gju7K7Udc\nTeaeidjCSzOkYxxSLqppi9fwzd/h5Hu3xUoh0NbXiXY+Tvg6WpEnsUZjd1FZeszA0uWrLbecEjFH\nKZTk5FIYHUdRTBzfzZrDdO8WRmtM92zOZ2+9Q1c7F6y9PLH29kDl7sonH75vYl3MX7aGhdciGBDk\njzY8FvuUQnJUxTjqpZ9Y06wg5PUXjMYenz2LT8v3bOB/qZE8vvAdBEFAsFKBlYryo/bs7aDYvBt4\nTQq/apLfX5N1pTrcDo8u5OuHpjClQy98BvWm1dOP0HfdJ1i7uaCqQZwDqrcuyijR6khLzmHJV+uM\nlALA7R1HczVxJx/8MA0r64p/LpIZVNXEOAC+WveziYvKZfAkck79yI+vTcTTsSJe1axA3WhcVDIy\nN+OWUyKrFn3MDE/jquTpns35/PU5NAs7SkH0dfQFBeDrTpGXAzm5WeBtuk5+ZjqnNd9hnaPFOqcY\nZYGWs5dP8U5LY+tiTmh33t+1j9Bxg3C9uzMBvQfSvUVX3u8ocaIaBuulKlI378dnvlOt9VRfiqFs\nvjmuPHNcVEWpGaQePkXu5UjJNbx6dmb4/t9MxmsS55CyLj5+fxnHD0YQ4NOGlMRsstLzcHV3ICe7\nCExrDbG1szZSIGWYE+M4n5DN98djOZ2Qg69pzSOONtZGCgSarovK0p/SLV2+2nLLKZGUhDgINA18\npmen8a12GwnBOSg9XHF3zsPd2Yt4MV9ynetCIXEPtkerK6ZEp6WksJCEVw5Jzs22UaJeuMxo7N6J\nE5i7bLVR7GJO+DHufepxyTVqUpxVX4qhJki5qH5f/j1rE3NoWQCph05RlJKOe49OiColFVUOFSid\nHEzGyjAnzqHV6lj27XoT66JH+5EcOLyN998bipevCx7ejqhUSk5PkI7jVBfnqC7GUaLTs+tKCt+f\niCU1txj1bYF083ciQWKNxu6ikpG5GbecEikUpc+CzrCGOe9twcne1Sg185+1fZkXfdSoNmJu7BEc\nQ5sxfsiLRmv8+Ob3kmtLWRdlcZKZleMnTz1uFD+Rwly/bENXBEu5qEYk6vjj9z+YP28e7WY+iXPb\nUBRKJaJEW/UbuaegehdVRlouV84lcPl8PFFXk0lPyQeJUImrmwMdbwsyGhv/2Fiz4xzVpeHuuJjE\nZVUQgW52PNYzmAEtPVEqBDzGN54sqvrC0mMGli5fbbmllIio09HHw49Pw08xPbSiLmJu7BFsQ/xx\ndjCtV3j5lbd4e840XkrZh42opEjQkedmz3uvmBag1dS6eGXW2zdVGo2NGx3EVJiSTuLOf4j/cx+p\new4Dpr+nc2gwoZONu7pWdk9lJCbj5ut9wzRcKRfVB/O/5deNRwnwak2rDn506RnM2Im9iXhml+Qa\nUtZFTeIc1aXhhoWtR7PkU9r4GOf/llkVi75ehaOre5NxUcnI3IxbRonoC4uIev9zRra/jem6LWYp\nBTBt3+GmsGHyeOn2HbW1LmpCfTwJ3eyEvsrzqloMKy68SlT/3wmMSiPnSiTeA3vhP7Q/bpFn4FC0\nyRpShzBBzdJw16/9ycRF1bvzg0Sk7OKLla+jUFQoiJpYF3DjSvEyknIKScyR7skV5O5ookDKsHQX\nlaU/pVu6fLXlllAiJdk5RMxehI2fDz2//ogHV7my/sfVNPdrc0OlUEZNztKuL+vC3Bt9bdaVOqEP\nKiwEXXExBfEpbFjwkamLKknP1kMH+HjFUjzv6Iay9MyKh/2dauyiMoeUxGwS47IIkGj1YWWtMlIg\nUDPrQspFNfebDWQXaHFr2ZVjMRkci8kgu6iE7PwiTCtSqo9xyMhYKhavRIoSk4l48wNc+nTH78lH\nEBQKcm2v89EHH3N39zENvT2zMOdGX1uqS69d/uR0tCEryI9LQpuRja2vJ3lpkSBx63QMCsBnUC+j\nsZpWipdRnd85PSWXXVvOcvl8Aja20gcxVRcA/zeV4mLvR3nli9Won/WjR5AbD3ULJNTLgT/bamsV\n47Bkv7olywaWL19tsWglkn8tisjZi/BWj8Br9L0AZOWlczbyCK8//L+bfLrxUN2N/odFn9daiZTk\nF5AYdpDss1ckr9t5edDzy3nYB/hg4+2BQqlk+7CRsNt0fl24qKojMz2PPdvOc+5kLH0GtWbm/PvZ\n97dLjVxU5pJbrJcc7xLoxiejjY+gbappuDIydY1FKpEZDz3CkEGDCN5znMAXJuM6sHf5tb/PbKFn\nm0HY20gfKtQYKUmT6DUCZBw5ze/thuJ3d1/87umP96DbsXI0pMVKub/69uxF3NY9xP2+i6S9h3G/\nrQNKF0dINe3Caxvog0ePTkZjY198mtURde+iAuNsq9XLf2D0mBEoi304dSSKnv1DmTHvfuxL6ylq\nWuh3I0RR5Eh0Bt+fiOVSYhY+nUzn2NRhGq4lP8lasmxg+fLVFotUIhMzRb5c/AUPzpxGx0oKBCDs\n1GYeHfx8A+2sZuiKi7nwwRLSz10BTFu7ew3qRb9FH5Lw5z4uf/EdBya9gnuPTsQEurIjbCcjEirS\nmb/aN4X9Vs4MGX4vzcYMpdey97Bxd4UapNfW1kV1M6SyrT56dxnDhw9j+tyJODqbutDMdVGBdD3H\nwAED2Ho+Ec3J6ygFgYe7N2PwjEm8u8yy03BlZOoaQRQl2mM0YcLCwkSPDwyFfWvdFHyi2VB+LT4t\nmpe/Hcv6Nw6gUpq2AGlMZJy5xKEnZ2Ef4EPumIF8v2CR6Y3+f+8Z3cC1uXkk7znCay+8yP0JpvUw\nfw9qxTd/mlaAh23ZaqQYxtSBYoCbtxvR6fQkJ2Tx/DPTadfMtKYlPm8fq777+l/tQSpYnrV7DY4t\nuzPkzsGMuy2Q25pV1AZt27nL2EU1bmSduqgs2a9uybKB5csXFhbGkCFDqu8gWg0WaYmUozVOw9x1\n8lcGdrq/USsQvVbLhY+WceWrdXRd+CrNHxuFIAjYurvctI7CytGBgPsH4/xJECRItBIpLpH8zrqI\nXVRFyrpYvGgFly/EE+jdhvjYDJLjs3D1cKAgT3pfupJ//4AjFSx3GTwJn/M/89Gol0zmW3oaroxM\nXWPZSqRSw0FRFAk79SuvP/xpA27ImKpxi3sfGIH1d9uw8XRn2OGfsQ+sKLWu0Y3eRlpJVhcArwk3\nsy7A0G5kxbKNJrUct7UewdY//mD2273o1rs5vgGu2NhacerqH5LfVZu26iU6PZeTczkbn8XZ+CxO\nXM/GS6KtuqCQzvCqbyz5SdaSZQPLl6+2WKwSqdpw8HLsaQQE2gR2vsGn/juk0nZX7XqTMc9OYfyn\n7xm1Xqkp9RUAl7IuPl+8ipTkbEKDOhIXk05cTDppSTmkJOQQ6mW6hqePM30GtzYaq2lBYHVt1T/f\nc408zzYEuNjSyd+F3s09OOHtQKrEGnI9h4xM3WCRSmStm8Kk4WDYqV8Z0m30v7o51yVSabtqwYN9\nVy4w4QZ7NMcvW9MAuDnWhSiKrFn1g4l10bnFfSz/diMvPDOTgCB3evZviW+AK089IX0Gys3ajaSl\nZuDh6XbDbKulG6VdVMWnf2Lr7Mk42lT8tVZNHNOoelZZsl/dkmUDy5evtlikEqkcTAco0WnZe2YL\nnz23qYF2VIGuqJjEsANkn7kMmN5QxUKJ06RqgbnuLynr4tOPV3I9Oo2WzTuRkphNckIWKYnZXI/M\nIFjiOPTAYA8efMy42LCm1kVZttWN/qGKosiByDTOJOTgLlGxbm9tZaRAQK7nkJGpbyxSiVTl+NV9\nBHiG4OcedPPJ/xKp+oyBd95J4l/7ifnlL+K37cW1QyuUrk6QZlqfcbO4RV0/CUn1oera8n42rvuZ\naS+EEhjiwW29m+Pl50L4M2GSa/zbZoaVqU6+47EZfLMvguzCEpq52DTJk//Asv3qliwbWL58teWW\nUCK7Tv7KnV1H1vv3SMU5vjn4DPsFe/r16k3Q6HvotvAV7Py8EWrR/ryuiYtOJ/F6FgHtTK/5Brpx\nn7q70VhtrQtzqC5Qfj4hm2/3RxCbkc/Uvs0Z2s6Xv4LyGpWLSkbmVsbilUheYQ5HLu/h+Qfeqdfv\nEfV6vn9/sUmcY0yhA3v7tWDIn6uNxuu6t5TZ+xRFrl1M5O+/LpKWnIOtvfRfgbq0Lm6GVKD8zS/X\nsfJgFPmebZjcJ4QHOvlhpTSYGk3ZRWXJfnVLlg0sX77aYvFK5J/zf9K5RW+js0Jq2hFXav6dw+8l\n91o0SXsOk7TnEEl7j5CVGQU4m3xe0EvXO9Qkbbcs+J2ensnq5T9IBr+l5pcFy8dNGIOfR0v2/XUR\nnU5kwD3t6NQjiG5hjvVmXZiLVC2Hqu8Erh/5nt0bJmFrZZqO25hcVDIytzIWr0TCTv7K/b0qblA1\n7Ygr6aI69CyH7FzpYOeGz+De+A0bSNeFr7Jj6rM1alBoLpWD3wGlR1V8vng1gOQNXSpY/t7sr7m9\ne1+een4crTv4l7dMry/roiZo9dLZaJ5OdpIKpCljyU+yliwbWL58tcWilUhqViLX4s/Tq23FDbG6\njrhLHnuekjbd0ev0iDodYokOUadjdfRZxhQbHzI0psCe3Z19eXPvdqOU4fqqz5AKfnduMZzFH64g\nK8EehVKBUqVAqTS8vl6yis6h9xnNH9DjIeLz9tG2U4DJ+vVhXZiDKIoci8ngWnI2jhJxGbmWQ0am\n8WPRSmT36d/p12Eo1lY2FYNF0ifSOTdvRo8v5iKolAhKJQqlAkGh5LfHp8DJBJP5SqXSpOakvhoU\n6qSPhcfO3oYWbXzQ6UR0Oj16nR6dTo8gSN9966KNSF1Qotez60oKa4/EUKjV8fCo+9iydQP0sfxA\nuSX71S1ZNrB8+WqLRSuRXad+5Zn7ZxsPVtMSxNrb3aT1OWBIxcVUidTnGRqVSUvOIT4mjSDTJr64\nuNtxW58WJuMr1jhIrnWjNiL1QdWMq8fHPkChd1vWH4vBy9GGKXeE0D/UE4XQm14h7iz/fjPJ6Zl4\nu7s2mUC5jMytjsUqkcjES2TnZ9Ip5Haj8Zq6nOrzDI0bIYoixw9E8Oevpxk5+n527NhC5xYVLqob\nBb9rmopbH0hlXD378UruGDCY+U+OpUuAi9H8WyVQbslPspYsG1i+fLXFYpVI2MlfubPrAygUxq6d\nIfcNR5ubz9KJz+PduxsKe9sbupzqy0V1I/Jzi/hl/RHSU3KZ8vIQfPxdaNcpwOzgd2MIln+74ReT\njCv/oZPRX95Ml4An/7N9yMjI1C8WqUT0ej27T/3Ge5NXS17vYOvCi3c/wOA/lpm1Xn20Sq+OaxcT\n2PTdYTr3CObhyXegKs1OMqctSGXqK1heXVEgQFaBln3hqey+msKJ69n4SgTLqzmBthxL9ztbsnyW\nLBtYvny1xSKVyJnIw7g4uBPi01ryeuLOA/gOueM/3pUplWs5BEGkTYtuqHS+jJ3Um9C2vjdf4D9G\nykX19lfrORCeRrpbS84nZNMz2J0hrb25GuAkEUmSM65kZCwNs042VKvVCmAKMA7w0mg0ndRq9QDA\nV6PRaOp5jzUiLCxMPJ35F0HerRjbf4rknD86DKPvxk9x6yzRxe8/QqqW48CpTcyYNYURD5ie8tcY\neHDKS8S2GWUyXrh/PZ8tWkif5h7YWRssJymFw8H1zJcD5jIyjZL6PtnwHeAe4FPg29KxuNL3jUqJ\nAPxz/i8m3T1D8lpedBzFWTm4dpS2Uv4rpGo/7ug6hp9/+q1RKpHsQi3x2dIdhkM8HLmzjbfRWFNu\nTSIjI2M+5joXngDu12g0G4Eyr3YkYJpf2ggI/zuDo4ePS15L3HUQ3zv7ICgazq+i1+vJyiiQvHaz\nWo49e/bU+X627dzFg1NeYsTkaTw45SW27dwFQFGJjl2Xk3n117M8sOQAuQXSSuRG3XM3Lf+M31d+\nxqbln5mlQOpDvsaEJctnybKB5ctXW8y1RBRA1b7lDkBO3W6nbvDpqeDdz2cBMOxu46f9xLAD+N7V\ntyG2BcDVCwls+/kkOVnSSqQhajmqup3e+GId3x+P5bp9c1p7OzKsnS9zhrVlfwed3D1XRkbGCHNj\nIiuAYuBlDJV3HsBiwFqj0TxXrzusIWFhYeKinU8B4JLQCc3qzeXXRL2eX5r1Y+jBn3AI8v9P95Vw\nPYPtP58iMy2PoaO7cj3pEl8sXiNZy/FfpuJWF+dQHfmeX1d+jo+TrdH4tp27jF1U40bKLioZGQug\nvmMiM4DVQCZghcEq+QuYWNMv/C/R6ouM3meevYy1m0u9KpCq3XNHjbkfXY4HV84nMPjeDvTs3xKl\nUkF7AhEQGrSWA6CompYqnk52JgoEbp2iQBkZGfMwS4loNJosYLRarfYBgoFYjUYjlcHZqLBS2Bi9\nr+/UXqmMq4/fW86IEffx8ryJ2NoZt0qpTS1HXeaqH45K50J8Jp7tTa81VCqupefiW7J8liwbWL58\ntcWsW4VarVaUpvmmAMeApEpjjZLcs05MHv+00VhZUL2+kMq4GthTzaXwEyYKpCFJzytm9h/nee/P\nS7wwYTTCIeMz6Tm4ninj6v8kSBkZmaaPue6skmrGRaDRHfjgktCJl6c9bRRU1xUWkXroJH3XL67z\n78vLLeLciRjiojMI6Gh6vS675/7bUw1/O5vAV/vCua+DHz880Qs7ayXt/VwaTSqupT/pWbJ8liwb\nWL58tcVcJVI1ldcXmAX8XrfbqRsqB9PLSDl4EpcOrbB2NT158GZUjXOMf2wsAwYO4MLp65w5Gk10\neCqtO/jh6m4n+fn/OuMKTNuTPDB8GAeKfCks0fHF2K608ak4I0WOc8jIyNQWc2MiUVWGotRq9UTg\nKLC8rjdVHySGHaiVK0sqzvH+vG/YELifwYMH0fX2EMZN6YuNrRUezQrrvXuuOX5ZqbTdt75eycQx\nI3j3aTVKxX+v1MzF0v3OliyfJcsGli9fbfk3vbOcAa+62kh9k7TrIN0+fA2QtiykAtx5OYUs+3aD\nZGV5bNZeJj430Gi8MXTPBekzy/2HTubK8c0oFQ//p3uRkZGxbMxSImq1em2VIXtgALC+zndUDxSl\nZZB9JRKPXl0kLYvPF68iKzOfNi27kBCbQUJcJgmxGWiLS8hIzTM470yQfpqv76Nmb/YklFdcUm17\nkpt10G0MWPqTniXLZ8mygeXLV1vMtUTCMQTRy+6cucA3Go1mZ73sqo5J2nsE777dUVpbV3Ne+X18\n+b81THl8Gn6BrvTsG4pfM1dc3R144rEwyTUbIs5xIy4n5bDpVBw7LyeTW1CMVHRG7qArIyNT15gb\nE5lXz/uoV5LCDuJTGg/RV/M0HtTCiwnP9DcZbwynBEJFoDwlPQsvdxeeGjeKwQMH8telJH4+HU9q\nbhGju/jzw+ReHGtf0mTbk1i639mS5bNk2cDy5ast1SoRtVr9JAbr44ZoNJqVdbqjeiAx7ACtnjXc\nUPjnd5gAACAASURBVKvru1idZdEY4hxVA+WxwEufrMHpt3MMHDSQKX1C6NPcozxgLnfQlZGR+a+o\ntneWWq3eg3lKZHAd7+lfERYWJg4ZUnGDz42IZcegRxkV/TeCIEjGRBqiZ1VNqK6/lc/5X/hj9RcN\nsCMZGRlLo857Z2k0mkH/akeNhMRdBleWIBh+mzJF8d7cb/ALdMfWXtWoFQhAsV76/2tDtrOXkZGR\ngVqk+KrVaoFKqUkajaZR5/wk7jqI/73Gqbi39+rD3f0yefOjB8uVS2Mlv7iE6LQcTFshWmag3NL9\nzpYsnyXLBpYvX20xN8U3APgSGAi4UKFEGmXbkzL0Oh1Juw9y20dvGI3HhKcSFOrV6BXItZRc3vjt\nHN36DOTCwQ0IfZpeoFxGRsayMdcS+RYoAO4E9mJQJnOBbfW0rzoh8/QlbL09sQ/wMRqPDk8hONSz\ngXZ1c0RR5PdzCXyxN5xpg1pyf8febNvZ7JYIlFv6k54ly2fJsoHly1dbzFUifYEgjUaTq1ar0Wg0\np0qztw4AS+tve/+OxF3SrU6ir6Vw/8PdG2BHN6egWMeHOy9zITGHJeNuo4WnAyD3t5KRkWmcmOtV\nL6Gik2+GWq32BvKAgHrZVR2RuPNAeX1IGUWFWlKTcwgIcm+gXVVQ9WzzlZu2MGndUQDWTOhRrkAq\nY+nnPMvyNV0sWTawfPlqi7mWyBHgXuAX4E/gBwzurWP1tK9/TUlBIWlHz+Az8Haj8etRafgFuqKy\nathQjlSTxNnfrOSpcaOYN3xsA+5MRkZGxnzMtUQewxALAcM567uAs8Cj1X6igUn55ziundpg5exo\nNB5dGlRvaKprknj20L4bfs7S/bKyfE0XS5YNLF++2mKuJaLUaDSpABqNJh9YUH9bqhuSdh2UPAo3\nOjyF3gNbNcCOjNFWU/vRFJokysjIyJRhriUSo1art6rV6glqtdrUUd8IkTo/RK/XExuZ1uCWiE4v\nkpxdIHntZrUflu6XleVruliybGD58tUWc5VIMLAFeBbD+eob1Wr1CLVa/W/OI6k3ilIzyI2IxeP2\nzkbjiXFZOLva4eBo00A7g8TsQp7TnMSjXQ90B6p00pfPNpeRkWliVNs7qzrUanUI8AiGeIifRqNp\nVAUXYWFhYsv0IqI2/M7AX74xunZozxXiYzN48LFeDbK3vy4l8XHYFR7t0YzHegbz167dxrUf40bK\nabwyMjINQp33zroB3qUvTyCjFp+vd5J2HZSuDwlPoWU7v/98P7lFJXy08wrnErL5dEwX2vsaznmX\naz9kZGSaOua2PemAwfoYh+FUQw0wUqPRHKnHvdWaxLADtHlpksl4dHgqQ0Z0lvhE3VF27odWL2Cl\nELnrrrv4M9uT3iHurJvYEzvrf5dabOn9e2T5mi6WLBtYvny1xVxL5B9gE/A0sEej0ejqb0v/Hr22\nBOe2oUZjmel5lGh1eHg5VvOpf49U7cf7y1fy0mNjeO0e00wxGRkZmaaOuUrER6PRFNXrTuqQyq3f\ny/gvmi5K1X74DZ3M4X2bYdLoOvkOS38SkuVruliybGD58tUWs7KzmpICAVhybC9hW7YajUX9B00X\n5doPGRmZWw0LPJEChl7KZPXLbxkpkpjwFILrsT6kRK8nPjNP8lpdnvth6bnqsnxNF0uWDSxfvtpi\nkUoEYHh0IZu+NDQYLizQkpaSi3+QW718V1peMS/+eIqAjr3QH5RrP2RkZG4dzFIiarXav5rxrnW7\nnbpFLCwGIDYyFf9mbqhUdd908UxcFhPXHqWzvwu/zJvCu8+NJ+jyZnwvbibo8mbm1/G5H5bul5Xl\n+3979x4eRXk2fvybhHOyJhwlRsCiNAKCYgVBTmrkIIeSV8zD2SIIBstB5ac1Fyq1BywvfVOxbTgo\nGKF4eNQqVRQ0EYW8pVgu66s2HJRIDEHOCSScEsj8/thNGpJdMtmd3ewM9+e6crE7mZ297yTsPfPM\nzHPbl5NzA+fn5y+zJ9Y/UkoN0lofq1yglOoNvAu0D0pkFoho1gSonHTR2vMhhmGg/7Wf1dv28eTw\nrgz0bF/u/RBCXE7MFpEVwCal1B1a6xKl1G3AX4FpwQstMBs6NeP+2TMB9/mQ25ISLdv2mbIL/PbD\nXeQdPcWqSbdwdVxzy7ZdF6dfqy752Vcwcjt79iyFhYVh0cq6uLiYuLi4hg7Db4Zh0Lx5c666yuvA\nkt9MFRGt9fNKqThgg1Lqd8BLwCStdZal0Vhk652J3D97JkkjR3DhQgX784/RsbP/RyLVbyA8f/48\np+Nv4M7bB7N60k9o1sB9SYRwqrNnz5Kfn0+XLl2IjHTs6duQOnDggOXF0PS0J1rrX3kKyWvAKK31\nFsuisFjGB+9UPT64v5jYli1oEe3fpIvebiA89ekaet/1Y5o17hZwrPXl1L3YSpKffVmdW2FhoRQQ\ni8XHx5OXlxeaIqKUKvCyOAL3yfh1SikAQ2vd0bJogiA/wEt7vd1AGD34Pla9vp4RQ5ICDU8I4UNE\nRIQUEItFRERYPjR4qSORKZa+UwP5Pu8oiTf4PwZYWuZ9luOGuoHQyWPqIPnZmZNzE775LCJa609C\nGEdQGIbBvm+PMGSMf5Mubtp5kF0Hi7myR+3vWXkDoRBC2JXpcyJKqV7AQKA17mEtALTWTwchLksU\nHz+FYRi0alO/SRfPlF1gSfYe/q+wmKdmjOeF1y4+J8K2dTzw0CSLozXH6Xt6kp99OTk34ZvZmw1n\nAjnAHcATQA9gPnBd8EILXP7eo3Sq56SLuw+VMGXtP6kwDNbc15sZKSN5ZtbEoN5AKISwn5ycHG67\n7Tbi4uJo3bo1AwYMYMeOHQBkZmYycOBA09vat28fkZGRVFT4P04+c+ZMrr/+eqKionj55Zf93k59\nmR2U+QVwt9b6v4DTnn/vBc4HLTIL5Ndj0kXDMHj98wJmv/EF0/pewy9HdCO6iftA7e677uStF5fy\n7uqlvPXi0gYtIE6fv0fys69wyu2DrI+554G5jJ42j3semMsHWR9buv2TJ08yatQo5s2bR1FREYWF\nhSxcuJCmTQNrvV3fTrPV3XTTTWRkZHDzzTeH9L4as8NZbatd0luhlIoCNgKvBCcsa3y/9yg39+tc\na3nNxlET/2sU28rac6TkHKsn/YQOLVs0QLRCCCt4uyx/4TL3R5VVO4B79uwhIiKCcePGAdCsWTOG\nDBkCwM6dO5k1axbl5eW4XC4aN27M8ePH2bBhA08++SR5eXnExsYyffp0Fi5cCMCgQYMAqi69zcrK\n4tZbb2X16tX8/ve/5+DBg/Tp04eVK1fSsaP3C2IfeuihqlhCyeyRyH6l1I88j78BxuA+PxK2U8Sf\nOV3G8aOlXNXh4kkXK//AChKTOdh1DAWJyTz8hzWU5n3JKhsUEKePO0t+9hUuuXm7LN/oO5EXX1tv\n2XskJiYSFRXF1KlT2bhxI0VF/+kU3rVrV5YvX06/fv0oKSnh+PHjAMTExPCXv/yFEydOsGHDBpYt\nW8b69e6Ytm7dCsCJEycoKSnh1ltvZf369Tz77LO8/fbbHD16lIEDBzJhwgTLcrCK2SORJUBX4Dvg\nGdxdDpsAc4MUV8AKvjtKQqdWREVdXCd9NY46unM9jaMmhzJEIUQ99V5S97BUYf4JErzMcrQtv9jU\n6//5WN1HKy6Xi5ycHBYvXsyMGTM4ePAgI0aM4IUXXqBdu3Zeh6UGDx5c9bhHjx6MHz+eTz/9lDFj\nxnhdf/ny5aSlpZGY6E4mLS2NRYsWUVBQQIcOHeqMMVTMTnvyUrXHHyilWgJNtNYlQYssQPl7j9Kp\nc+2bDO3eOMrp1+JLfvYVitzMfMDfs/sdvN0p3a9THG+ZeL1Z119/PS+95P5o3L17N5MnT+bhhx/m\nlVe8j/Jv376dJ554gn//+9+UlZVx7tw5PDdte5Wfn8+8efOYP3/+RcsLCwvDqoiYvttBKdVaKXWf\nUupxT6fDK5RSVwcxtoB8v/eI15l7G0d6P3El930I4QwzxicT8Y8aH+RB7uuTmJjIz372M77++msA\nrye2J06cSHJyMvv376e4uJjU1NSqq7G8rd+xY0dWrlxJUVFR1depU6fo27dv0PLwh9lLfAcDu4GJ\nwFOexV2AZUGKKyDuSRePe510sSH+wKzk1L3YSpKffYVLbnffdWfQL8vfvXs36enpFBYWAlBQUMCr\nr75Kv379ALjyyivZv38/5eXlVa8pLS2lZcuWNGnShM8++4xXXnmlqni0bduWyMhI9u7dW7V+amoq\nixYtIjc3F3CfL3njjTd8xlReXs7Zs2epqKigrKyMs2fPBnS1l1lmz4ksBcZrrbOUUpVnkP4B3Bqc\nsALzQ0ERLdtE07xFk1rfq/xDeuS5tbS7ojltWzTmAbnvQwhHCXZfH5fLxfbt20lPT6+aFXf06NEs\nWbIEgKSkJLp370779u2Jiori8OHDZGRkMH/+fGbPns3gwYMZN24cxcXFALRo0YIFCxbQv39/ysvL\n2bRpE8nJyZSWljJ+/Hjy8/OJjY1l6NChpKSkeI1pyJAhbNmyhYiICLZt28bMmTP55JNPqq78ChrD\nMOr8SklJKar5OCUlJSolJeWYmdeH8isrK8vIydppvLPuM8OXCxUVxu1LPzWOnzrnc51wtXnz5oYO\nIagkP/uyOre9e/dauj3h5uvnmpWVZRh+fOaaPROwUyk1vMayJOAri2uaJb7PO3rJmwwLis7gatqI\nll6OVIQQQphntog8CvxFKbUGaKaUWgm8DDwetMgCsO/bI3S8xPTvuQdP0q29K4QRWSdcxp2DRfKz\nLyfnJnwzVUS01v8AbgT+jburYR7QW2v9WRBj81tERAQtW0f7/H7uwZN0bX9FCCMSQghnuuSJdaVU\nNPAkcAPwOfCs1vpsKAILRKdr21xy7pjcH0pIHeB/u9yG5OT7DEDyszMn5yZ8q+tI5E/AKGAXMBb4\nfdAjssDrb6/ko03ZXr93vqKCb46UypGIEEJYoK4icjcwTGv9mOfxqOCHFLjune7m+fRMr4Xku6On\naedqSkxT061UworT9/QkP/tycm7Ct7qKSLTW+gCA1roAiA1+SNbo2XkEr6x7q9ZyO59UF0KIcFPX\n7niUUqryjp0IoFG15wBora2dqN9CF87XvlvTXUTsO5Tl9HFnyc++nJyb8K2uInIYWFXt+bEazwF+\nRJiKalT75HruwRJGdI9vgGiEEMJ5LllEtNbXhCgOy32Zt4G5j95/0bJz5y/w3bFTJLarX8/1cOL0\nPT3Jz76cnJs3OTk5PP744+Tm5hIVFUXXrl157rnnuOWWW8jMzGTVqlVVfULqsm/fPjp37sz58+eJ\njKz/bLB79uzhscceY9u2bVy4cIHevXvz/PPP8+Mf/7je26ovR85de+DUVuY+ej9DhiVdtPybw6V0\nbNmCZo2jGigyIUQofLQpm6mTZ3HfxFlMnTzL59Wa/gq39rgnTpwgOTmZPXv2cOjQIfr06cOYMaGZ\nVNaRReSlNRm1Cgi4h7K6xdv7pHo49bEOBsnPvsIlt482ZfN8eiYJrkF0iB1EgmuQz6s1/VW9PW5E\nRERVe9wePXpUtcfdtm0bLpeLVq1aAbBhwwZ69epFbGwsHTt25JlnnqnaXvX2uJWTOwKsXr2abt26\n0apVK4YPH87333/vNZ7evXtz//33ExcXR6NGjXj44YfZvXv3RR0Xg8WRRcQXu59UF0LUbd3aN+nZ\necRFy3xdremvcG+Pu2XLFuLj42nZsmXdKwfInjdL+Cn3YAkTfhI+HcH84fRxZ8nPvkKR24JZr9a5\nzt5dh0noXXv5t7mHTL3+t8vq/qAO5/a4+/fvZ/bs2aSnp9eZhxUumyJyquw8P5w8w7VtfM+pJYQI\nb2Y+4KdO3uJ1+XXdrjT1erPCsT3ukSNHGDp0KD//+c8ZN26cn5nVz2UznLXrUAnXtYmhUZS9Uw6X\ncedgkfzsK1xymzTlXr7Me/+iZV/mbWDipLFBe89waI9bVFTE0KFDSU5OJi0tzcLsLs3en6j1kPtD\niZwPEeIyMGRYEnMfncqBU1spOLHF59WagQi39rgnT55k2LBhDBgwgEWLFlmWpyn+dLIK5y9Pd65a\nnlj/lfHeVwd89PoSQoSbcO5sWFhYaCiljISEBCM6OtpISEgwUlNTjZKSEsMwDKOsrMwYOXKk0apV\nK6Nt27aGYRjGm2++aXTq1MlwuVzGqFGjjDlz5hhTpkyp2ubTTz9ttG3b1oiLizO2b99uGIZhrF27\n1ujRo4dxxRVXGB06dDCmT5/uNZ7MzEwjIiLCiI6ONmJiYoyYmBjD5XIZBQUFtda1urNhhOHndcnh\nKjs720hKqr3Hkbzy7/xh7I386BJ9RoQQ4SMvL4/OnTs3dBiO4+vnmp2dTVJSku8eGj5cFsNZxWfK\nKT5TTqdWLRo6lICFy7hzsEh+9uXk3IRvl0UR2XnwJNdf6SLyEo2qhBBC1N9lUUSc1A7XyfcZgORn\nZ07OTfh2mRSREukhIoQQQXB5FJEfnDPdidPHnSU/+3JybsI3xxeRI6XnKK8wuCq2WUOHIoQQjuP4\nIuI+CnF5vSPUjpw+7iz52ZeTcxO+Ob+IyMy9QggRNJdBESmhq4NOqjt93Fnysy8n5yZ8c3QRMQyD\nnQdP0l2ORIQQFsvJyeG2224jLi6O1q1bM2DAAHbs2AFAZmYmAwcONL2tffv2ERkZWTUhY30dO3aM\n/v3706ZNG2JjY+nVqxfvvPOOX9uqL0dPBV9YfIamjaJoExNYy8pw4vRxZ8nPvsIpt+wN7/PmH1fA\nuXJo2ph75zxI0sgRdb/QpMr2uCtWrEApxblz59i6dWuDtceNiYlh9erVdOnShcjISNavX09KSgrH\njx8nJiYmoJjq4ugjkdxDcn+IEJeb7A3vk/nIAgZt3sOgv3/HoM17yHxkAdkb3q/7xSaFW3vcpk2b\nkpiYWHU0ExkZSZs2bWjSpIllOfvi7CLyw0m6xTtrKMvp486Sn32FS25v/nEFI/LPXrRsRP5Z3vrT\nSsveI1zb4/bs2ZPmzZszdepU3n777ZAUEUcPZ+UeLGF6v2saOgwhhEVebdq1znUOnz8CjdrWWn7o\nwxxTr59wbmed64Rre9wvv/ySsrIyVqxYwdixY9m1a1fQh7McW0QuVBjsPlTC9Vc6azgrnMadg0Hy\ns69Q5GbmA37L8DGweU+t5VcOHcCED6w72RyO7XEBmjRpwpw5c8jIyCA7O5sxY8b4kZ15jh3O2nf8\nFK2imxDbvHFDhyKECKF75zzI+50unqFiQ6dmjJ09M2jvGQ7tcWs6f/480dHB75/k2CLi1EkXw2Xc\nOVgkP/sKl9ySRo5g6h9+y9Y7E9ly24/Yemci9//ht5ZenRVu7XG3b99OTk4OZWVlnDlzhsWLF3P2\n7FnTBScQjh3O2il3qgtx2UoaOcLSolFT5RVU6enpFBcXExcXx+jRo1myZIn7/ZOS6N69O+3btycq\nKorDhw+TkZHB/PnzmT17NoMHD2bcuHEUFxcD0KJFCxYsWED//v0pLy9n06ZNJCcnU1payvjx48nP\nzyc2NpahQ4eSkpJSK55z584xd+5c8vLyaNq0KX369GHjxo1BPx8COLc97tS/7GDe7dfR6+q4hg5J\nCOEHaY8bHNIe14TyCxXsPVpKYrvgV2EhhLicObKIfHuklKtim9OiifNG68Jl3DlYJD/7cnJuwjdH\nFhGnnlQXQohw49Ai4tyT6k6+zwAkPztzcm7CN2cWEQe1wxVCiHDmyCJSUHyGLm2deVLd6ePOkp99\nOTk34Zsji0jnNtE0aeTI1IQQIqzY4vIlpdSPgAVArNa69p02NTh5KMvp486Sn305OTfhmy1217XW\n32mtHzC7vlyZJYQQoRHSIqKUWq2UOqSU+qrG8uFKqV1KqW+UUr8I9H0ylvyGD7I+DnQzYcnp486S\nn305OTdvwqk9bnVr1qwhMjKSVatWBbwtM0I9nPUS8EdgTeUCpVQU8CfgLqAQ+KdS6m/ALcDNwBKt\n9YH6vMmxHveycJl7Oua777rTmsiFELax8aP3Wb1uOeUVZTSObMK0SakMH+Lc9riVioqKWLRoETfc\ncIPXmYGDIaRHIlrrrUBRjcV9gG+11vu01uXAa8AYrfVarfUjWusDSqlWSqnlwE1mj1SMvhN58bX1\n1iYQBpw+7iz52Ve45Lbxo/f5zfNpnIj/mtMJezgR/zW/eT6NjR85tz1upbS0NObNm0fr1q0ty7Uu\n4XBOJAEoqPZ8v2dZFa31ca11qta6i9Z6sdkNl1W4D7GrH2bLc3kuz+3z3B+r1y0n+oaSi5ZF31DC\n6nUrAtpudeHYHvezzz7j888/JzU19ZKxV84cDNb8vEM+i69S6hrgXa11D8/zscBwrfUMz/PJwK1a\n6zn+bD87O9t44nP3YVzH3et568WllsQdLj755JOw2eMLBsnPvqzOzdtss8PS6p7V99utRVw3sKXp\n5TVtejbPVHy7du1i8eLFZGVl1WqPm5mZyapVq6qKgzcPP/wwkZGRpKens2/fPjp37sz58+eJjHTv\n2999992kpKQwbdo0ACoqKnC5XOzatatWZ8MLFy7Qt29f/vznP9OnTx/uuOMOpkyZUvXa6qyexTcc\nLvEtBKr/RDrgPhoJzLZ1PPDQpIA3I4QIH2Y+4NXUn3KCr2st/8l1g9DPWjfEHU7tcTMyMujZsyd9\n+vSpWhaqA4RwGM7aAXRRSl2jlGoCjAP+FsgGO+5ez68emuTIk+pO3YutJPnZV7jkNm1SKqe+vvgy\n/9KvXEyb9GDQ3rOh2+N+/PHHvP3228THxxMfH8/f//535s+fz9y5cy3OtLaQHokopV4FBgOtlVIF\nwNNa65eUUrOBTUAUsEprvTOQ93HaEJYQwrzKq7BWr1tBecU5Gkc25ZF5D1p6ddbu3bvZsGED48aN\nIyEh4ZLtcRs3bgx4b487bNgw4OL2uF26dAHc7XGfeuopbrzxRrp168aJEyf48MMPvXY2zMzM5Ny5\nc4D7COSee+4hJSWF6dOnW5azT4ZhOOorKyvLcLLNmzc3dAhBJfnZl9W57d2719LtWamwsNBQShkJ\nCQlGdHS0kZCQYKSmpholJSWGYRhGWVmZMXLkSKNVq1ZG27ZtDcMwjDfffNPo1KmT4XK5jFGjRhlz\n5swxpkyZUrXNp59+2mjbtq0RFxdnbN++3TAMw1i7dq3Ro0cP44orrjA6dOhgTJ8+3VR8t99+u7Fq\n1Sqv3/P1c/V8dtb7MzcczokIIYStXHXVVbz++us+v9+4cWPee++9i5aNHTuWsWPH+nzNM888c9Fl\nvwCTJ09m8uTJ9Y5v8+bN9X6Nv8LhnIioh3AZdw4Wyc++nJyb8E2KiBBCCL9JEbGZQG8MCneSn305\nOTfhmxQRIYQQfpMiYjNOH3eW/OzLybkJ36SICCGE8JsUEZtx+riz5GdfTs5N+CZFRAghhN+kiNiM\n08edJT/7cnJuwjcpIkII4Ydwa48bGRlJTEwMLpcLl8vFzJkz/d5Wvd43JO8iLOP0cWfJz77CKbfN\nGzfyaMoE5v9XCo+mTGDzxo2Wbr+yPe68efMoKiqisLCQhQsXNnh73K+++oqSkhJKSkpYuXJlQNsy\nS4qIEMJRNm/cyBu//m/uKzaYUhrFfcUGb/z6vy0tJOHaHjeQIxl/SRGxGaePO0t+9hUuub276mVm\ntmh30bKZLdrx3uo1lr1HOLbHBXcxio+PZ+zYseTn51uW76XILL5CCNv4Ysj4Otc5vfdruPaGWstP\n7fjS1Otv+ui1OtdxuVzk5OSwePFiZsyYUas9rrdhqcGDB1c97tGjB+PHj+fTTz9lzJgxXtdfvnw5\naWlpJCYmApCWlsaiRYsoKCio1dkQYMuWLfTt25dTp07x5JNPMmrUKL744guioqLqzCcQUkRsxsk9\nukHys7NQ5GbmA75FygQorv2hHH1LT27S3lvX+iOc2uMCDBgwAIDY2FiWLl1KbGwsu3btonv37v6m\naIoMZwkhHGX09J+x8vThi5atPH2IUdPuC9p7NnR73Joqj2wCPVFvhhQRm3HqXmwlyc++wiW3O4YP\nJ+Wpx1nbMpK1MRdY2zKSlKd+wR3Dh1v2Hrt37yY9PZ3CwkKAS7bHreStPW5l8ajeHrdSamoqixYt\nIjc3F3CfL3njjTe8xpObm8sXX3zBhQsXKC0t5dFHH+Xqq6+ma9euluXsiwxnCSEc547hwy0tGjVV\nXkGVnp5OcXExcXFxjB49miVLlgCQlJRE9+7dad++PVFRURw+fJiMjAzmz5/P7NmzGTx4MOPGjaO4\nuBiAFi1asGDBAvr37095eTmbNm0iOTmZ0tJSxo8fT35+PrGxsQwdOtRrj/VDhw4xa9Ys9u/fT3R0\nNP379+e9994L+vkQgIhQHO6EUnZ2tpGUlNTQYQSNk8fUQfKzM6tzy8vLo3PnzpZtT7j5+rlmZ2eT\nlJRUe1ytDjKcJYQQwm9SRGzGqXuxlSQ/+3JybsI3KSJCCCH8JkXEZsJpfqJgkPzsy8m5Cd+kiAgh\nwpJhGA0yF5STGYZh+b0jUkRsxunjzpKffVmdW0JCAt98840UEgv98MMPtG7d2tJtyn0iQoiw1KxZ\nMzp16sR3333n9Y5uUT+GYdC8eXPi4uIs3a4UEZtx8n0GIPnZWTBya9asGddee62l2/SXk393gZDh\nLCGEEH6TO9aFEELIHetCCCFCT4qIzTj9WnzJz76cnBs4Pz9/OXI4q6FjEEIIO/JnOMtxRUQIIUTo\nyHCWEEIIv0kREUII4TcpIkIIIfwmRUQIIYTfbDvtiVJqOPAcEAW8qLVe7GWd54G7gdPAVK31v0Ib\npf/qyk8pdT3wEtALWKC1/p/QR+k/E/lNAh4HIoASYJbW+suQB+oHE7mNAX4FVHi+HtNafxzyQP1k\n5v+eZ73ewDZAaa3/GsIQA2Li93c7sB7I8yx6S2v9m5AGGQCTn523A38AGgNHtda3+9qeLY9EPVf0\nVwAABexJREFUlFJRwJ+A4UA3YIJSqmuNdUYA12mtuwAzgWUhD9RPZvIDjgFzgN+HOLyAmcwvDxik\nte4J/BpYGdoo/WMytyyt9Y1a617AVGySG5jOr3K9xcBG3DsCtmA2P+BTrXUvz5edCoiZz8444M/A\naK31DcC9l9qmLYsI0Af4Vmu9T2tdDrwGjKmxzk+BlwG01tuBOKXUlaEN02915qe1PqK13gGUN0SA\nATKT3zat9QnP0+3A1SGO0V9mcjtV7WkMcDSE8QXKzP89cO/gvAkcCWVwFjCbn20KYw1m8puI++hq\nP4DW+pJ/n3YdzkoACqo93w/camKdq4FDwQ3NEmbys7P65jcdeD+oEVnHVG5KqWTgWSAeGBqa0CxR\nZ35KqQTcH0x3Ar0BO92MZub3ZwC3KaX+DygE/p/WOjdE8QXKTH5dgMZKqc2AC1iqtV7ra4N2PRIx\n+0dZc2/BLn/MdonTX6bzU0rdAUwDfhG8cCxlKjet9Tta667AaMDnf9AwZCa/54AntNYG7v+Ddtpr\nN5Pf50AHrfWNwB+Bd4IbkqXM5NcYuBkYAQwDnlJKdfG1sl2LSCHQodrzDrgr6qXWudqzzA7M5Gdn\npvJTSvUEXgB+qrUuClFsgarX705rvRVopJSytt1c8JjJ7yfAa0qp74CxQIZS6qchii9QdeantS7R\nWp/2PP4A9157q9CFGBAzv78C4EOt9Rmt9TFgC3Cjrw3adThrB9BFKXUNcAAYB0yosc7fgNm4/5j7\nAsVaazsMZYG5/CrZaS+vUp35KaU6An8FJmutvw15hP4zk9u1QJ7W2lBK3Qzg+c9qB3Xmp7XuXPlY\nKfUS8K7W+m+hDDIAZn5/VwKHPb+/PkCE1vp4yCP1j5nPlvXAnzwn4ZviHu5K97VBWx6JaK3P4y4Q\nm4Bc4HWt9U6l1INKqQc967wP5CmlvgVWAA81WMD1ZCY/pVR7pVQB8AjwpFLqe6VUTMNFbZ6Z/ICn\ngZbAMqXUv5RSnzVQuPViMrexwFdKqX8BS4HxDRNt/ZnMz7ZM5ncv7t/fF7iH7hz1+9Na78J9Vd2X\nuC9qeeFS53xkAkYhhBB+s+WRiBBCiPAgRUQIIYTfpIgIIYTwmxQRIYQQfpMiIoQQwm9SRIQQQvhN\niogQQaSUmqSU2tTQcQgRLHKfiBAeSql9QDvgPHAB981Ya4CVnnmgKtfrA/wS6Ie7H8i3wDKtdWZo\nI/4Pzx3IeUAjrXVFQ8UhLj9yJCLEfxjAKK31FUBH4He4J35cVbmCUqofkA1sBq7VWrcGZuHuzxAO\n7DgNjrAxORIRwsMzYeD06l0GPd35/gH00FrnKqVygH9preeY3OZUzzYHep5X4C4684G2wDqt9exq\n687APUvsFOAH4OeV8XiOlKZrrbM9z3+Ju5BNUUp9j3uS0cpeJXd5+ugIEVRyJCLEJWit/4l7ltOB\nSqkWQF/czZYCMRK4BegJKKXUsGrf64N7eKw1sBD4q6fTHLiPlKrv9VV/PNDzb6zW2iUFRISKXWfx\nFSKUDgCtcE8IGYn7CCEQv9NanwROehr/3IR7Qjxwzw671PNYK6Xm4y4667xsJ8LHYyFCRo5EhKjb\n1cBxz1cF7m6EgThY7fFpILra85o9b/KBqwJ8PyGCRoqIEJfgOSdyFZCjtT4DbMM9FXiwJNR43gn3\nkRC4z3dULzjtqz2Wk5uiQchwlhAXiwBQSl0BDMLdL2Kt1vrfnu8/DnyolMoHXtJaH1NK3Yi7Hayv\nxmF1vV/1oah2Sqm5wDIgGbie//SX/wIYr5T6APcQ2FjgA8/3juA+SroW+MaPOITwixyJCHGxd5VS\nJ4HvgTTgf4D7K7+ptd4G3On52quUOoa76dkGH9u71Mlwb9/fDnTBXRR+DYyt1hr4KdxFogj3fSpV\n50k87Vp/C/yvUqrIcy+LEEEnl/gKESZqXg4shB3IkYgQQgi/SRERInzUHNoSIuzJcJYQQgi/yZGI\nEEIIv0kREUII4TcpIkIIIfwmRUQIIYTfpIgIIYTwmxQRIYQQfvv/J6tIZZNwmiIAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(order):\n", " semilogy(u, maxima[i, :], 'o-', label=('State %d' % (i+1)))\n", " if not i:\n", " hold(True)\n", "grid(True)\n", "title('State Maxima'); ylabel('Peak value'); xlabel('DC input')\n", "xlim([0, 0.6]); ylim([6e-2, 1.2]);\n", "legend(loc=4);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### System version information" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/json": { "Software versions": [ { "module": "Python", "version": "2.7.10 64bit [GCC 4.2.1 (Apple Inc. build 5577)]" }, { "module": "IPython", "version": "3.2.1" }, { "module": "OS", "version": "Darwin 14.4.0 x86_64 i386 64bit" }, { "module": "numpy", "version": "1.9.2" }, { "module": "scipy", "version": "0.16.0" }, { "module": "matplotlib", "version": "1.4.3" }, { "module": "deltasigma", "version": "0.2.2" } ] }, "text/html": [ "
SoftwareVersion
Python2.7.10 64bit [GCC 4.2.1 (Apple Inc. build 5577)]
IPython3.2.1
OSDarwin 14.4.0 x86_64 i386 64bit
numpy1.9.2
scipy0.16.0
matplotlib1.4.3
deltasigma0.2.2
Fri Aug 07 16:19:23 2015 CEST
" ], "text/latex": [ "\\begin{tabular}{|l|l|}\\hline\n", "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n", "Python & 2.7.10 64bit [GCC 4.2.1 (Apple Inc. build 5577)] \\\\ \\hline\n", "IPython & 3.2.1 \\\\ \\hline\n", "OS & Darwin 14.4.0 x86\\_64 i386 64bit \\\\ \\hline\n", "numpy & 1.9.2 \\\\ \\hline\n", "scipy & 0.16.0 \\\\ \\hline\n", "matplotlib & 1.4.3 \\\\ \\hline\n", "deltasigma & 0.2.2 \\\\ \\hline\n", "\\hline \\multicolumn{2}{|l|}{Fri Aug 07 16:19:23 2015 CEST} \\\\ \\hline\n", "\\end{tabular}\n" ], "text/plain": [ "Software versions\n", "Python 2.7.10 64bit [GCC 4.2.1 (Apple Inc. build 5577)]\n", "IPython 3.2.1\n", "OS Darwin 14.4.0 x86_64 i386 64bit\n", "numpy 1.9.2\n", "scipy 0.16.0\n", "matplotlib 1.4.3\n", "deltasigma 0.2.2\n", "Fri Aug 07 16:19:23 2015 CEST" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#%install_ext http://raw.github.com/jrjohansson/version_information/master/version_information.py\n", "%load_ext version_information\n", "%reload_ext version_information\n", "\n", "%version_information numpy, scipy, matplotlib, deltasigma" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }