{ "metadata": { "name": "", "signature": "sha256:cf8a8fc13ae83e9b831f55806e2fdb9830b47be1f45e666171b0ee04cc86a17a" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import print_function\n", "from deltasigma import *\n", "from IPython.core.display import Image" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "# 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)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "heading", "level": 1, "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", "collapsed": false, "input": [ "order = 5\n", "R = 42\n", "opt = 1\n", "H = synthesizeNTF(order, R, opt)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "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", "collapsed": false, "input": [ "print(pretty_lti(H))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "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" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "figure(figsize=(10, 5))\n", "plotPZ(H, showlist=True)\n", "title('NTF');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAeYAAAFXCAYAAAB3Be0fAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVGX7P/DPMCzKLqjsiMq+iiguqGgo7qgpo9jilmZl\n21NmtnzrV0+lT6uVVmaKtoiHyqVMUVFcQwXX1FA2RUSQTdlhmPv3x8AIzGGfYYY51/v14hVz5iwX\nlxMX59zn3JeIMQZCCCGEaAc9TQdACCGEkIeoMBNCCCFahAozIYQQokWoMBNCCCFahAozIYQQokWo\nMBNCCCFahAozIYQQokWoMBMiACKRKFokEslEItHaJssd65YvqPtvS1//JxKJ+jXz3lVN/WyE6Bp9\nTQdACOkSDEAlgBdEItF6xtitJu/fBWBb970IwLq615IG65QC6Fv3fQSAMw3ek6o8YkIEigozIcJx\nCoApgA8BPN7kvQrGWF79C5FIVAmgpuGyuuX13xY2fY8Qohp0KZsQYRBBftb8KoAokUgUpIL9EULU\ngAozIcLBGGMnAOwG8Ekn93VAJBKVNPh6QgXxEUJAl7IJEZL6s9xVAK6IRKLpAM53cF8LASQ3eH2v\nE3ERQhqgwkyIwDDGbohEou8ArAUwuYO7yWaMpaswLEJIHbqUTYhwNOzx+v8A2AN4uo3rE0K6CBVm\nQoRDccMWYywfwBoAL7VlfUJI16HCTIgwMCifAX8O+dgw35kx3/oN3yOEqImIMe34f0wikWwGMBVA\nHsdxfs2s8yXkY2LlABZyHNfRG1cIIYQQraRNZ8xbAExq7k2JRDIFgCvHcW4AlgH4pqsCI4QQQrqK\n1hRmjuOOAyhqYZUIAFvr1j0NwFIikdh0RWyEEEJIV9GawtwGDgCyGry+DcBRQ7EQQgghatGdCjOg\nfJeodgyQE0IIISrSnSYYyQbg1OC1Y90yXvHx8VS0CSGEaFRYWFi7HzvsToV5D4AVAGIkEslwAMUc\nx+W2tEFYWFiXBEZUr6i8Gqn3SpGaX4a0uv9m5JfBvKc++lubwM68B/qaGcHGrMF/TY3Q01DcJfHJ\nGENplRSF5dW4c78SWUXlyCqqwK2ictwuqkBuSRV6mxrCybIn+lmZwNPWDD625uhnZQyxHj0eTIgQ\nxMfHd2g7bXpcajuAUAC9AeQCeAeAAQBwHPdd3TpfQ37ndhmARRzHnWtuf/Hx8YwKc2MJCQkYO3as\npsNQUiWtxZWcBzh/uxgXbt/H9bxSVNfK4NrbBK59TOVfvU0wsI8pTI1U/7ekOvIirZXhzgN5wc4s\nKMe13BJcyXmAovJqeNqYwcfOHN625vCxM4eNmVHDdopaQ1s/L5pGeVFGOeEXHx/fvc+YOY6LasM6\nK7oiFqJe5dVSXL7zAOduF+N8VjH+zS1Bf2tjBDpaYs4gB3jYmGltsWorfbEenHsZw7mXMUIGPFxe\nXFGDa3cf4ErOA/x5JQf/O5QCQIQABwsMd7HCMBcrOFj21FjchBDN05ozZlWjM2btwRjDtdwSHE3N\nx5nMQqTll8GjrykCnSwR6GgJfwcLmBhqzd+IXYoxhtySKpzLKkZiZgFOZxbC1Egfw12sMby/FYKc\nLGEs0NwQ0t11+zNmoltqamU4l1WMhBv3cCwtHz30xRjr1hsrxgyEj505ehh0zViwthOJRLA174Ep\nPraY4mMLGWO4kVeKvzML8EvSLbz1xxV42ZphRH9rPOLeB069jDUdMukgxhhu3bqF2tpaTYdCVEws\nFsPZ2VllV/moMAuIuseBSquk+DujAEdT8/F3RgGcexkj1K031kcOgou1idqO21naND6mJxLBw8YM\nHjZmWDjMBeXVUiRnFeNUegGe+uUcbMyMEO5lgwmefWFj1kOtsWhTXrRJR/Ny69YtWFlZwczMTPVB\nEY0qKSnBrVu30K9fP5Xsjwoz6RQZYzh7swh//JODE2n5CHCwRKhrb7w01hW9TY00HV63Z2yoj9ED\ne2P0wN54JcwNybeKcfDfXDwWfQYDepsg3NMGYR590cvYUNOhklbU1tZSUdZRZmZmuHfvnsr2R2PM\npEOyiyvw5z85+PNKDix6GCDCzx4TvWxg0dNA06EJQrVUhr8zC3Dw3zycTC+Ar505pvna4hH3vjAQ\nd7d5g4QhPT0dAwYMaH1F0i3x/ft2dIyZ/g8mbVZZU4t9V+/imR3nsfCnJJRUSfHJTH/8tCAYksGO\nVJS7kKG+HkJd++C/03zw1/IQTPe1w+5LOZj+3Sl8cyIduSWVmg6RtJFYLEZgYCD8/PwgkUhQUVHR\n7LrR0dF4/vnnO33MqqoqhIaGoqUTs0uXLmHJkiWdPhafhIQETJ8+XS377qi5c+ciLS2txXXCwsJQ\nUlKi9lioMAtIQkJCh7bLLanEuoRUTPv2JPZdvYvZgxywd3kIXg1zh4dN978019G8aIuehmKEe9lg\nw9xAfDM3EKWVUsyPPoNVuy8j6VZRi798W9Ld86Iuqs6LsbExzp8/j8uXL8PQ0BDffvtts+uq6uai\nn3/+GdOmTWtxf/7+/khLS0NeXp5KjqlOjLEOf84BIDU1FWVlZRg4cGCL682bNw/ff/99h4/TVlSY\nSbNu5JXinb1XMT/6DGQyhh+fHIov5wzCeI++MNSnj4426m9tgpXj3bHn6ZEY4twL/zt0HXO3nAF3\n7jbKqqWaDo+0YtSoUUhNTUVRURFmzpyJgIAAjBgxApcvX1Za9969e5gzZw6Cg4MRHByMU6dOAQCO\nHj2KwMBABAYGYvDgwSgtLVXadvv27ZgxYwYAYOfOnRg/fjwAICcnBx4eHopiPHnyZMTGxiptn5mZ\niTFjxiAoKAhBQUH4+++/ATy8MS4yMhJeXl54/PHHFdvs378fXl5eCAoKws6dO3l//qVLlypi79u3\nL95//30AwMcff4zg4GAEBATg3XffVcTg4eGBBQsWwM/PD1lZWVi5ciX8/Pzg7+8PjuMUP9OYMWMU\nVyVOnDihdNyYmBhEREQ0yo+/vz/8/Pzw+uuvK5ZHREQgJiaGN3aVqv9LQ9e+Dh06xEj7yWQylphR\nwFZw59mk9cfZlsQMdr+iWtNhkQ6SyWTs7M1C9tquS2z8V8fYxpPp7AH9e2pEWloa73JTU1PGGGM1\nNTVsxowZ7Ntvv2UrVqxg7733HmOMscOHD7NBgwYxxhjbsmULW7FiBWOMsaioKHbixAnGGGM3b95k\nXl5ejDHGpk+fzk6dOsUYY6ysrIxJpdJGx5NKpczW1rbRsscff5x99dVXbNq0aSwmJkax/PDhw0wi\nkSjFXF5eziorKxljjF2/fp0NGTKEMcbYkSNHmIWFBcvOzmYymYyNGDGCnTx5klVUVDAnJyeWmprK\nGGNMIpGw6dOnN5urzMxM5u3tzW7dusXi4uLYsmXLGGOM1dbWsmnTprFjx46xjIwMpqenx06fPs0Y\nY+zXX39lEyZMYDKZjOXm5jJnZ2eWk5PDPvnkE/bBBx8wxuT/P5SUlCgdb9KkSSw5OZkxxlh2djZz\ndnZm+fn5TCqVskceeYTt2rVLsW7//v1ZaWmp0j74/n3r6lC76xfdlU0AAFKZDIf+zcNPZ2+hulaG\nx4c649NZ/nRm3M2JRCIMce6FIc69cLOwHFsSMzFrUyIkgQ6YF+QE8x50X4CmVVRUIDAwEAAwZswY\nLF68GMOGDcPvv/8OABg3bhwKCgqUxjYPHTqEa9euKV6XlJSgrKwMISEhePnll/HYY4/h0UcfhYOD\nQ6Pt8vPzle4O/+qrr+Dj44ORI0di7ty5iuV2dnbIzMxUirm6uhorVqzAxYsXIRaLcePGDcV7wcHB\nsLe3BwAMGjQIGRkZMDY2Rv/+/RWXih9//HFs3LiRNx+VlZWIjIzEV199BScnJ6xbtw4HDhxQ5Kis\nrAypqalwcnJCv379EBwcDAA4efIk5s+fD5FIhL59+yI0NBRnz55FcHAwFi9ejJqaGsVViKZu3rwJ\nOzs7AMDZs2cxbtw4WFtbAwAee+wxHDt2THGFwcbGBllZWfD09OSNXxXot66A8I2NMcZw5Po9RG05\ng18vZOPpUQMQs2gYIvzsBVOUhTKW2s/KGO9O8caWx4Jw90EVHt2UiG9OpON+RQ3v+kLJS3upOi89\ne/bE+fPncf78eaxbtw4GBvI/lliTMdOm48GMMZw+fVqxbVZWFkxMTLBq1Sr88MMPqKioQEhICFJS\nUpSO2XTfWVlZEIvFyM3NbfQeY4x3HPrzzz+HnZ0dLl26hKSkJFRVVSneMzJ6+JikWCyGVCrljb05\ny5cvx5w5c/DII48olq1evVrxc16/fh2LFi0CAJiYNJ4fgS9no0ePxvHjx+Hg4ICFCxfixx9/5D1u\n/bYikUgpB03XU/d0wcL4zUt4JWcVYcnPyfj+VAZeGueK76MGY/TA3tDrxnNUk9Y59TLG/032QvTj\nQ1BQWoXZm/7GhuNpKG6mQJOuN3r0aPz8888A5H8I9OnTB6ampo3WCQ8Px5dffql4feHCBQBAWloa\nfHx88Nprr2Ho0KFKhbl3796Nxp2lUimWLFmCmJgYeHp64rPPPlO8l5OTwztpxoMHD2BrawsA2LZt\nW4uzmYlEInh6eiIzMxPp6ekA5GO4fNavX4/S0lK89tprimUTJ07E5s2bUVZWBgDIzs7mfWZ49OjR\n2LFjB2QyGe7du4djx44hODgYt27dQp8+ffDUU0/hqaeewvnz55W27devH3JycgAAQ4cOxdGjR1FQ\nUIDa2lrExMQ0mlAmNzcXjo6Ozf68qkCXsgWk/sN1Pa8E64+lI7OwDE+HDMAkbxtBF2Ohzm7laNkT\nb03ywuIRLtiSeBOSzYlYPNwFcwY5QF+sJ9i8tEbVeeE7+3r33XexePFiBAQEwMTEBFu3blWsW7/+\nl19+ieeeew4BAQGQSqUIDQ3Fhg0bsG7dOhw5cgR6enrw9fXF5MmTG+1bLBbD19cXKSkp8PDwwEcf\nfYQxY8Zg5MiR8Pf3x9ChQzFt2jR4eHjgzJkzGDNmjFJ8zz77LGbPno1t27Zh0qRJjf5o4Pt5jIyM\nsHHjRkydOhXGxsYYPXq0otA29Omnn8LQ0FBx2fqZZ57BsmXLcO3aNYwYMQKAfDKPn376qVEuAGDW\nrFn4+++/ERAQAJFIhI8//hh9+/bFtm3b8PHHH8PAwABmZmbYtm2b0nFHjRqFpKQkBAUFwc7ODmvW\nrMG4cePAGMO0adMUj3bdvXsX1tbWSmfqqkYTjAhIdnEFvjuZjtOZRVg0vB8eDXAQzOVq0rq0/FJ8\nfvgG8kqr8PI4N4zob63pkHSKNk0wEh0djdzcXKxatarF9caOHQuO49C3b98uikwz0tPT8fzzz2Pv\n3r0trrdx40aUlZXh5Zdf5t0HTTBC2qxKWovvTqRj/pa/4WjZE78vHY55QU5UlOvQWKrcwN6m+Cpy\nEFaMccXHh67jyY2HcbOwXNNhaR1d+LzMnz8fe/fubXWCEVdXV50vygAwYMAAmJmZtTrByI4dO7B0\n6VK1x0O/mXXc6cxCRG05g7T8MrzsI8KykAGCbbFIWicSiTDGtTdiFg3DADMRlvySjHUJqSitomeg\ndYmhoSGOHTvW6gQjmzZt6sKoNCsmJqbVCUbi4+OVxvrVgX5D66iCsmp8fuQGLmXfx8rx7hg9sLem\nQ9JaNJaqzFBfD+9GjUNBWTW+OZ6GOT8k4uVxrgj3tFH7Hanajj4vRN2oMOsYGWPYdfEOvj2Zjum+\ndtixaBh6GlLvY9Ix1iaGeGuSF67kPMB7+6/h0L95WDXBgzqHEaJGdClbh6TeK8VTvyTjzys52CAJ\nxPOhro2Ksi6MjakD5YVfw7z42JnjxyeGon9vEzy29Qz2X73bqbmJuzP6vBB1ozNmHSBjDDvO3cbm\nvzOxfNQAzAqwF/TjT0Q9DPX18OzogRjr1gfv7buG+BQ6eyZEHeiMuZvLL63Ci79exIFrudj8WBBm\nD3JotijT2Bg/ygu/5vLibWuObU8MxYC6s+d9Ajt71tbPS2FhISZMmAB3d3eEh4ejuLiYd72PPvoI\nPj4+8PPzw/z58xWzdjW3/c8//6xoLBEYGAixWIxLly4BAN588004OzsrTfHZVpMnT8adO3caLbtz\n5w4iIyMbxevm5gZPT08cOHCAdz+xsbHw8fGBWCzGuXPnGuVk3LhxMDMzU2qXuWPHDgQEBMDX17dR\nowoA4DgOPj4+8PX1xWOPPdahn61TOjLBdnf4EkITi6M37rGJ64+zb46nsRpprabDIQJ0Nec+m7s5\nka3ceYmaY7SiuSYWHXHkyBG2cOHCRstWrlzJ1q5dyxhjbM2aNWzVqlVK22VkZLD+/fsrGlBIJBIW\nHR3d5u0vX77MXF1dFa9Pnz7NcnJyFI04+ISGhrLMzEyl5eXl5Sw4OLjFn/PKlSssICCAVVdXs4yM\nDDZw4EBWW6v8u+7atWssJSWFjR07VtGMgjF5E48TJ04oGoPUy8/PVzSqYIyxBQsWsPj4eMaYvClH\nYGAgKy4uZowxdu/evRZjrKfKJhZ0xtwNVdbUYs3BFHx6+DrWRPhi+agB0Be3/k9JY2P8KC/82pIX\nr7qz5z6mRnjyxySk5Kq/ibymqerzsncv0PCktrhYvqwt+O6M37NnDxYsWAAAWLBgAXbt2qW0jrm5\nOQwMDFBeXg6pVIry8nJFk4u2bP/LL79g3rx5itfBwcGKqTlbipUv3oSEBIwbN05peWZmJvz8/AAA\nu3fvRlRUFAwMDODi4gJXV1ecOXNGaRtPT0+4u7srLTc2NkZISEij+bsB+WQgbm5uikYVYWFh+O23\n3wAA33//PVasWAELCwsA8ilMuxoV5m4mJbcET/54FqVVUvy8IBiDHC01HRIROEN9Pawc745nRg/A\nitgL+P1CtqAubXdUSAjw5pvyglxcLP8+JKRt2/LlNzc3FzY2NgDkHZByc3OV1rGyssIrr7wCZ2dn\n2Nvbw8LCQtGLuS3bcxyHqKiotv6ILca7f/9+TJo0qcXt7ty502heakdHR2RnZ7f7+E3/MHB1dUVK\nSgpu3rwJqVSKXbt24fbt2wCAGzduICUlBaNGjcKIESMQFxfX7uN1Ft381Y38deUuPj9yAy+Pc8MU\nn5b/SuWjrWNjmkZ54dfevIR72sCjrxle330Z528XY3W4B4x1cDIbVX1eLC2BDz4AnntO/nr9evmy\nlgwfPhxVVVUoLS1FYWGhYk7ptWvXNlqvubPUtLQ0fPHFF8jMzISFhQUiIyPx888/K42j8m1/+vRp\nGBsbw9vbu9WfbcuWLYoGG6mpqZgyZQoMDQ0xYMAAxZnpyZMn8emnn7a6r6ZU8Rx9r1698M0332Du\n3LnQ09PDyJEjFQ02ampqkJqaiqNHjyIrKwtjxozB5cuXFWfQXYHOmLuBWhnDuoRUbDyZjm/mBnao\nKBPSFfpZGWPL40NgINbDwp+SkJ6v3KiAdFxiYiLOnz+PTZs2ISIiQtEKMTw8HDY2Nrh79y4AeVco\nvqk0k5KSMHLkSFhbW0NfXx+PPvooTp06BQCtbh8TE4P58+e3Kc5FixYpYhsyZAj27duH8+fPK4py\neno6nJycoK+vj9OnTytuLPvzzz8b7cfBwQFZWVmK17dv31bqL91R06ZNQ2JiIk6dOgV3d3fFpXAn\nJydMnz4dYrEYLi4ucHd3R2pqqkqO2VZUmLXcg8oavPTbRVzPK8HWJ4bCtU/Hp4OjsVR+lBd+Hc1L\nDwMx/m+yFx4f6oynY87hwDXlS6Ldmao+L/WXr9evl3/VX9ZuC75LwxEREYouVFu3bsXMmTOV1vH0\n9ERiYiIqKirqb5JVnAG3tL1MJkNsbGyj8eX2aBrvvn37FF2vhg0bpiji06ZNU/qZYmJiUF1djYyM\nDNy4cQPBwcHtOlZzy/Ly8gAARUVF+Oabb/DUU08BAGbOnKn4N87Pz8f169e7vPkIFWYtllFQhkU/\nJaG/tQnWzQmARU8DTYdESJtF+NljgyQQ64+nYdOpDBp3buLkSfmlbEvLh5e1T55s27Z8l5pff/11\nHDx4EO7u7jh8+LDiEaA7d+5g6tSpAICAgAA8+eSTGDJkCPz9/QEAy5Yta3F7ADh27BicnZ3h4uLS\n6JivvfYanJycUFFRAScnJ7z33nvNxttQXFxci+PL9et7e3tDIpHA29sbkydPxoYNGxTvLV26FMnJ\nyQCAnTt3wsnJCYmJiZg6dWqjVpcuLi545ZVXEB0dDScnJ/z7778AgJdeegk+Pj4YNWoUVq9eDVdX\nVwDy/s/W1tbw8fHBI488gk8++QS9evVqNlZ1oLaPWupYaj7+G3cNz4e6YrqvnabDIaTD8kur8J+d\nlzCwtwneCPeEQRueINBF2tT2UZOqqqowevRo3rurASA5ORmvvPJKt7uSRW0fdRhjDNtO38Tagyn4\nbJY/FWXS7fU2NcJ3cwfjQaUUL/56ESWVNZoOiWiQkZFRs0U5KSkJ8+fPx0svvdTFUWkXKsxaRMYY\nvkhIxV9X72LL40Pga6/auwC721+gXYXywk+VeelpKMb/ZvhhQG8TPLX9HHLuV6hs312NPi/qM2TI\nEKSkpPCOjwsJFWYtIZXJ8N6+a/jnzgNsjBqMvmY0/zDRLWI9EV4Nc8dMf3ss+SUZV+8+0HRIhGgl\nKsxaoLKmFqt2/4PC8mp8HTkI5j3Uc5MXPa/Lj/LCT115iQpywmvjPfDirxdxKqNALcdQJ/q8EHWj\nwqxhpVVSvPjbRfQ0EOPTWf7UO5kIwli3Pvh0lj/e/esqjqflazocQrQKFWYNKiyrxvKYcxhgbYL3\npnqr/W5VGhvjR3nhp+68+DtY4PNHA/Df/ddw9MY9tR5LlejzQtSNCrOG5JVUYen2cxg9sDdeG+9O\n/ZOJIPnYmeOL2QH48MC/OHw9T9PhdGudbft48eJFjBgxAv7+/oiIiEBJibwhSWVlJaKiouDv7w9v\nb2+sWbNGaZ8RERGKxhPtoaq2jytXroSXlxcCAgLw6KOP4v79+4qctLft47fffgt/f38EBgZixIgR\nuHjxYrt/rk7rSEuq7vClzW0fC0qr2OxNf7Oticqt0AgRon/vPmDhXx9nB//N1XQoaqPtbR+HDBnC\njh07xhhjbPPmzeztt99mjDG2ZcsWNm/ePMaYvFWji4sLu3nzpmKfv/32G5s/fz7z8/PjjbUr2j4e\nOHBAsXzVqlWKn70jbR8fPHigWG/Pnj0sLCysxRjrUdvHbux+RQ1WxF7ABI++eHJYP02HQ4hW8LAx\nw9eRg/BJ/HXEXbur6XC6hLa1fbxx4wZGjx4NABg/frxiXms7OzuUlZWhtrYWZWVlMDQ0hLm5OQCg\ntLQUn3/+Od56661mZ3briraPEyZMgJ6evJwNGzZM0SmqI20fzczMFOuVlpZS20ddV1Ytv9FraL9e\nWBbSv8uPT2Nj/Cgv/Lo6L259TfF15CB8cSQV+65qb3FWVV60oe2jpaWlou2jj48Pdu/eDQCIjY1V\nNI+YOHEizM3NYWdnBxcXF6xcuRKWdW2w3n77bbz66qswNjZud7zqavu4efNmTJkypdGytrR9bNgs\nY8OGDXB1dcV//vMffPTRRy0eTx2oMHeRyppavPzbJXj0NcVLY11V0rqMEF3j2scU6yWB+OJIKk6m\nd79HqdqjYdvH5557OG92S4YPH47AwEAsXboUe/bsUXRlajr22pa2j3fu3EFpaSl+/vlnAPKCtmHD\nBgwZMgSlpaUwNDQEAPz000+oqKhATk4OMjIy8MknnyAjIwMXLlxAeno6ZsyYoVR4t2zZoogtKSkJ\nU6ZMQWBgIGbPnq1Y5+TJkxg1alS789bS784PPvgAhoaGrXbBatj2ccyYMejfvz/E4odPxDz77LNI\nTU3FZ599hsWLF7c7xs7SvWapWqhaKsNruy/D1twIqyZ4aKwo0/OX/Cgv/DSVlwG9TfDxTD+8uusS\nPn80AD525hqJozma/LwkJiYCAI4ePYro6Ghs2bJF8V5920ZbW9s2tX0EoGj7+Nhjj8HDwwNxcXEA\ngOvXr+Ovv/4CAJw6dQqzZs2CWCxGnz59EBISgqSkJBQUFCApKQn9+/eHVCpFXl4eHnnkERw+fBiL\nFi3CokWLAADjxo3D1q1b4ezsrIijadvH5cuXAwDef/99+Pr6KtZrT9vH6Oho/PXXX4iPj29TLqdN\nm6boZrVx40bo6yuXw7lz5ypi60p0xqxmUpkMb/55BUb68lZ4dPc1Ia3zd7DAmxM98crOS8gqKtd0\nOGqhbW0f792TP7Imk8nw3//+V1GQPD09cfjwYQBAWVkZEhMT4eXlheXLlyM7OxsZGRk4ceKEoitV\nW+JVddvH/fv34+OPP8bu3bvRo0ePNuWrubaPDXsv7927V9GFqytRYVazT+NvoLKmFh9M84G+nmbT\nTWOp/Cgv/DSdl1DXPlgW0h8v/HoRBWXVGo2lIVXlRdvaPm7fvh0eHh7w8vKCo6MjFi5cCAB4+umn\nUV1dDT8/PwQHB2Px4sWNzmoBeeFr6Uqguto+njt3DgDw/PPPo7S0FBMmTEBgYCCeffZZxb7a2/bx\n66+/hq+vLwIDA/HVV181uirRZTpyK3d3+NKGx6V2JGexyB8SWUlljaZDYYzJH7Egyigv/LQlL98e\nT2NPbD3Dyqq69/9HqnxcqjurrKxkQ4cObfb9pKQkFhoa2nUBqQg9LtUN/J1RgM2Jmfj8UX+YGmnH\nUD6NpfKjvPDTlrwsC+kPdxtTrNr9D6S1Mk2HozV56a6o7WPrqDCrQXp+Gd756yrWRPjCwbKnpsMh\npFsTiUR4fYIH9MUirDmY0uzzsqT7o7aPclSYVay4vBr/+f0iXgx1xSDHVp596GKaHjPUVpQXftqU\nF309PXwwzQeX7jzAzkt3Wt9AjbQpL0Q3UWFWofrHosZ72mCqr52mwyFEpxgb6uN/M33x7Yl0XMmh\nXs5Ed1FhVhHGGNYcTIFFT0M8O3qApsPhRWNj/Cgv/LQxLy5WJngz3BOrdl9GoYbu1NbGvBDdQoVZ\nRf74JwdX7j7Ae1O86VllQtQo1K0PpvjY4o0//oFUpvmbwQhRNSrMKpBRUIavjqbhw+k+6Gkobn0D\nDaGxMX6co9mYAAAgAElEQVSUF37anJenQwbAQKyH9cfSu/zY2pqXtrR9TElJUUyVGRgYCAsLC3z5\n5ZcA5LNc1S/v378/AgMDAbTc9nHSpEkYNGgQfHx8sGTJEtTU1HTND6vjqDB3UmVNLVbv+QfPjRmI\ngb1NNR0OIYIg1hPh/Wk+OHw9D4dShNfHOSEhQTHlZb01a9ZgwoQJuH79OsLCwnj7Jnt4eChm2UpO\nToaxsTFmzZoFQN6fuP692bNnK+a1jomJAQBcunQJycnJ+O6773Dr1i0A8mYXFy5cwJUrV3D//n3s\n2LFDnT+2YFBh7qQvjqRiYG8TzPDT/pu9aGyMH+WFn7bnxbKnAdbO8MPagyldOm2nqvKiibaPDR06\ndAgDBw6Ek5NTo+WMMXAch6ioKAAtt32sb5FYU1OD6upqjbRI1EVUmDshPiUPiZkFWB3uSd2iCNEA\nTxszLB7hgnf+uopaWfd6vlkTbR8biomJ4e3CdPz4cdjY2GDgwIEAWm77WP++jY0Nevbs2WobR9I2\nVJg7KLu4AmsPpeCD6b5aM7NXa7R1bEzTKC/8ukte5g52hJG+GNvO3OyS46kqL5po+1ivuroaf/zx\nByIjI5Xe2759e6OC3Vzbx3pxcXHIyclBVVWVookG6RwqzB0grZXhrT+vYEFwP61rSUeI0OiJRHhn\nshd+ScpCSm6JpsNRq8TERJw/fx6bNm1CRESEYkw4PDxc0fYRQLNtH+vt27cPQUFB6NOnT6PlUqkU\nO3fuxNy5cxXLmmv72JCRkRFmz56Ns2fPqvCnFS4qzB2w7cwtmBrpI2qIU+sraxFtHzPUFMoLv+6U\nF1vzHnhprCve+esqqqXqfYRKVXnRRNvHetu3b1eMITd06NAheHl5wd7eXrGsubaPZWVlyMnJASAv\n6H/++afiTm7SOVSY2ymzoAy/JGfhjXAPel6ZEC0yxccWTr2M8e2Jrn+EqiM00fYRkBfXQ4cO4dFH\nH1Xa744dO5QKdnNtH0tLSzFjxgwEBARg8ODBcHZ2xuLFi9uZBcJHpKsTwsfHx7OwsDCV7lPGGJ7e\nfg7jPfti7uDudbYMyMfGutNZUFehvPDrjnkpKq9GVPQZfBThi0A1zVXf0bykp6djwADtnBWQdB7f\nv298fDzCwsLafQZHZ8ztsPPiHdTKGOYMctR0KIQQHr2MDbE63APv/nUVFdW1mg6HkA6hwtxGuSWV\n+PZEOt6c5AmxXve8hN3dzn66CuWFX3fNS6hrH/jZW2BzYqZa9t9d80K6D615zkcikUwC8AUAMYBN\nHMetbfL+WAC7AdQPIP3Gcdx/uyI2xhjWHryOyEAHmt2LkG7gxbGuiIo+g6m+tnCxMtF0OIS0i1ac\nMUskEjGArwFMAuANIEoikXjxrHqU47jAuq8uKcoAcCglD7eLK7BwmEtXHVItustzqV2N8sKvO+el\nj6kRFg7rh0/jb/DewdwZ3TkvpHvQisIMIBhAKsdxmRzH1QCIATCDZ70uv4ZcWiXFZ4dv4K2JnjDU\n15Z0EUJaM2+wI3JLqnDkxj1Nh0JIu2jLpWwHAFkNXt8GMKzJOgzASIlEchFANoBXOY67qu7Atp6+\nieH9reDvYKHuQ6kdjY3xo7zw6+550Rfr4bXx7vh/+65ihIu1yjq/dfe8EO2nLaeAbbnWdA6AE8dx\nAQC+AtDyDO0qcPdBJXZezMYzowaq+1CEEDUY4twL/vYW2HI6U9OhdJm2tH8EgHXr1sHPzw++vr5Y\nt26dYvnFixcxYsQI+Pv7IyIiAiUl8tnUfv7550YtI8ViMS5duoSSkpJGy/v06YOXX365w/EvX74c\np06dUloe0mAi8a1bt8Ld3R3u7u7Ytm0b736qqqowd+5cuLm5Yfjw4bh58+GUrbdu3UJ4eDi8vb3h\n4+Oj6JY1ZswYxc/h4OCg6Lz18ccfK5b7+flBX1+/2byqBGNM41+RkZHDIyMj9zd4vToyMnJVK9tk\nREZGWjX3/qFDh9iRI0dYvSNHjrT79bIf4tk3x9M6vL22vf7888+1Kh5teV3/vbbEoy2vdeXzkvug\nko35LJ5x+w6rZH/137d3++TkZNYQx+1nEyasZhMmrGYct5+115EjR9jChQuVlq9cuZKtXbuWMcbY\nmjVr2KpVq5TWuXz5MvP19WUVFRVMKpWy8ePHs9TUVMYYY0OGDGHHjh1jjDG2efNm9vbbb/Nu7+rq\nyhtXUFAQO378eIuxL1iwgCUkJPC+N2jQICaTyZrdtqCggA0YMIAVFRWxoqIixfdNrV+/nj3zzDOM\nMcZiYmLY3LlzFe+FhoayQ4cOMcYYKysrY+Xl5Urbz549m/34449Ky//44w8WFhamtLzhv2/9v3/d\nMdpdEzVelJm8yOpHRkamRUZGukRGRhpGRkZeiIyM9Gqyjk1kZKSo7vvgyMjIzJb2WZ/0jrqSc59N\nWn+clVbVdGo/2qThLwryEOWFny7lZdvpTPaf3y+qZF8dzUtaWprie47bz6ystjBAxgAZs7LawmJj\n21ecExISeAuzh4cHu3v3LmOMsZycHObh4aG0TmxsLFuyZIni9fvvv8/+97//McYYs7CwUCy/desW\n8/b2Vtp+9erV7K233lJanpKSwpycnFqNfeHChezo0aNKy69evcokEgnvNiYmJowxxn755Re2fPly\nxfKnn36abd++XWn9iRMnssTERMYYYzU1Nax3796MMcauXLnCRo0a1WJ89+/fZ7169WIlJSVK70VF\nRbFNmzYpLW/471uvo4VZKy5lcxwnBbACQByAqwB2cBx3TSKRPC2RSJ6uW20OgMsSieQC5I9VzVNX\nPIwxrEtIxbKQ/jAx1JZh+M6jsTF+lBd+upQXyWBH/Jtbgis5Dzq9L1Xk5fvvj6KwcAHk97OKUFi4\nABs3Hm3XPlgzd5u3pf2jr68vjh8/jsLCQpSXl2Pv3r24ffs2AMDHxwe7d+8GAMTGxiIrK0tp+4b9\nmhuKiYnBvHlt+9XMF/++ffswefJk3vXrpyDNzs6Go+PDSZ4cHR2RnZ2ttH52drai17S+vj4sLCxQ\nUFCA69evw9LSErNnz8bgwYPx2muvQSZrPL/6rl27MH78eJiaNn48try8HHFxcZg9e3abfsaO0pqq\nw3HcPgD7miz7rsH36wGs74pYjqXmo7iiBtP97LricIQQNTPSF2PJcBd8eyIdX0UO0nQ4nTJ8+HBU\nVVWhtLQUhYWFisYR//vf/zBhwoRG6zbX/tHT0xOrVq1CeHg4TExMEBgYCD09+Xna5s2b8cILL+D9\n999HREQEDA0NG217+vRpGBsbw9vbW2m/O3bswE8//cQbd1xcnGL+7lu3buHEiRMwNTVFjx498Pff\nfwMADhw4gOjo6BZ//pbaWbZGJBJBKpXi+PHjuHDhApycnDB37lxER0c3mud7+/btWLZsmdL2f/zx\nB0aNGtWoH7U6aMUZszaR1srw5dE0vDjWFfp6upUeev6SH+WFn67lZbqfHW4VleNcVlGn9qOKvCxd\nGgorq62Q3/fKYGW1FcuWhbZp2+ZaP9YX5ba2f1y8eDGSkpJw9OhRWFpawsPDAwDg4eGBuLg4JCUl\nYd68eRg4sPHNrzExMY36Nde7ePEipFJpsx2mJk6cqIg1IiICP/zwA86fP68oyuXl5SguLoatrS2y\nsrIUN1tt3Lix0X4cHBwancVnZWU1OoNuuF79TV1SqRT379+HlZUVHB0dMWjQILi4uEAsFmPmzJk4\nd+6cYrv8/HycPXu2UeOPhj8735UCVdOtyqMCf165CxszI4xwsdJ0KIQQFTIQ62HpyP749kS6yicd\naa/IyIn47js7TJjwJiZMeBPffWeHOXMmtmsfzf0MbW3/mJeXB0B+9rpz505Fsb13T/7ct0wmw3//\n+18888wzim1kMhliY2N5L1dv376dt2C3Nf4jR47gkUceAQA4OTkpinjTM9fw8HAcOHAAxcXFKCoq\nwsGDBzFxonLuGubh119/RX1To6FDh6K4uBj5+fkA5I0mfHx8FNv9+uuvmD59utKVgvv37+PYsWOY\nMYNvig0V68jAdHf46sjNXzW1tWzmxlPsXJbyHX6EkO6vpraWzd70N0vMKOjyY/PdHNQZCQkJbNGi\nRUrLCwoKWFhYGHNzc2MTJkxQ3LGcnZ3NpkyZolhv9OjRzNvbmwUEBLDDhx/esb5u3Trm7u7O3N3d\n2erVqxvt+8iRI2zEiBG88QwYMIClpKS0KXa+m7+ee+453hvC6pmZmSm+37x5M3N1dWWurq4sOjpa\nsfz//u//2J49exhjjFVWVrLIyEjm6urKhg0bxjIyMhTrHTx4kPn7+zM/Pz+2aNEiVlPz8CbfsWPH\nsri4OKXjR0dHs6ioqGbjU+XNX9T2sYED13LBnb+NTfOD1BQVIUTTDvybi1+SsrDlsaBOjVe2F7V9\nbFlQUBDOnDkDsVh5IpiCggIEBQUhMzOz6wNrI2r7qAaMMWxJzMSi4f00HYra6NqYoapQXvjpal7G\ne/RFVU0tjqcVdGh7Xc2LpiUnJ/MW5Tt37mDkyJFYuXKlBqLSDK25K1vTTqQXQCQSYWR/a02HQghR\nIz2RCMtCBuCHvzMweqB1l541k/azt7dHSkqKpsPoUnTGjMZny7r8P6kuPZeqSpQXfrqclzGuvfGg\nUorLd9r/XLMu54VoByrMAM7dLsb9iho84s7/WAEhRLeI9USYO9gR25OVJ88gRNOoMAOITryJBcP6\nQaynu2fLAI2NNYfywk/X8zLdzw5nbxbi7oPKdm2n63khmif4wpx6rxTp+WWY7G2r6VAIIV3IxFAf\nU33sEHv+tqZDIaQRwRfmnRfvYIa/HQzEup8KGhvjR3nhJ4S8SAY7YvflHJRXS9u8jbbnRV1tH6ur\nq7Fo0SL4+/tj0KBBOHpUPrd3RUUFpk6dCi8vL/j6+mL16tWdir8r2j4CwIMHD+Do6Ijnn39esSwj\nIwPDhg2Dm5sb5s2bh5qaGgDA7t27ERAQgMDAQAQFBeHw4cOd+hlb1ZGHn7vDV1smGKmolrKwL4+y\nnPsVra5LCNFNr+68xLhzWWo/TtMJKLpb28evv/6aLV68mDHGWF5eHgsKCmIymYyVl5crWjhWV1ez\n0aNHs3379rUYu6bbPjLG2AsvvMDmz5/PVqxYoVgWGRnJduzYwRhjbPny5eybb75hjDFWWlqqWOfS\npUts4MCBSsfTue5SmnIwJQ9+9hawNe+h6VC6BI2N8aO88BNKXqKCHBGTfBuyNk62pIq8xMbGYfny\nHBw8+AEOHvwAy5fn4Ndf49q1j+aeINmzZw8WLFgAAFiwYAF27dqltM6///6LYcOGoUePHhCLxQgN\nDcXvv/8OALhx4wZGjx4NABg/fjx+++03AMC1a9cwbtw4AECfPn1gaWmJpKQk9OzZE6Gh8nm+DQwM\nMHjwYN5uT01j54v/2rVrcHd3532vvtNTXFwcwsPDYWlpCUtLS0yYMAH79+9vMQ+zZ89GfHy84r3k\n5GTk5eUhPDxcsYwxhiNHjmDOnDlKuTMxMVGsV1pait69e7f483WWoAvzzovZmBXgoOkwCCEaFOho\niR4Gejh7s3PNLdqjO7Z9DAgIwJ49e1BbW4uMjAwkJycrtqlXXFyMP/74A22ZdZEvfnW3fSwsLIRM\nJsOrr76KTz/9tNH6BQUFsLS0VHTZcnBwaLTfXbt2wcvLC5MnT8aXX37Z6s/XGYKdYCT1XilyS6ow\ncoBwmlVo+9iYplBe+AklLyKRCNN87bD3Sg6GtaF5jabzoqm2j4sXL8a1a9cwZMgQ9OvXDyNHjmw0\nU5dUKkVUVBRefPFFuLi4KB1TG9o+MsawYcMGTJkyBfb29s3+ccNn5syZmDlzJo4fP44nnnhCrZOe\nCLYw77x4BzP87HSutSMhpP0metpg48kMlFdLYWyo/l+LS5eGIjl5a91ZM9rd9hEAjh49iujoaGzZ\nsqXR+/VtH21tbVtt+1jfg/iNN96As7MzgIdtHwHg+vXr2Lt3LwBALBbjs88+U2wfEhICd3d3xetl\ny5bBw8MDL7zwAu/xJk6cqOgCtWjRIixatAhjxoxRvN+07WNERAQA4JlnnmnUYcrBwaHRcEJWVpai\nK1VD9W0f7e3tFW0fra2tkZiYiOPHj2PDhg0oLS1FdXU1zMzM8OGHH6K4uBgymQx6enq4ffs2HByU\nr6iOHj0aUqkUBQUFsLZWz0yRgqxKlTW1iLt2FxF+9poOpUsJZcywvSgv/ISUFysTQwxysEDCjXut\nrquKvHTHto8VFRUoKysDABw8eBAGBgbw9PQEALz11lt48OABPv/88w7H31VtH3/66SfcvHkTGRkZ\n+OSTT/Dkk0/iww8/BACMGzcOsbGxSrlLS0tTxFvfu1ldRRkQ6Bnz4evCuumLENK6yT622HPpDqb4\n2HXJ8ebMmdjuYtxQc5epX3/9dUgkEvzwww9wcXEBx3EA5M0gli5dqjgDnjNnDgoKCmBgYIANGzbA\n3NwcgLyv8vr16wHIb5pauHAhAPnY9aRJk6CnpwdHR0f8+OOPAIDbt2/jww8/hJeXFwYPHgwAeP75\n5xVn4y3F39C+ffsgkUhaXd/Kygpvv/02hg4dCgB45513YGlpqfh+yJAhmD59OpYsWYInnngCbm5u\nsLa2RkxMTKtxrF27FvPmzcNbb72FwYMHY8mSJQCA3377Ddu2bYOBgQFMTU2b3ZeqCLLt48u/X8RE\nTxtMoklFCCF1KmtqMeWbk4hZNAx9zYxUvn9q+9gyavv4kOAuZZdWSXE+qxijBqr3dndCSPfSw0CM\nce59EHftrqZDESRq+/iQ4Arz8bR8DHbqBVMj4V3FF9KYYXtQXvgJMS9TvG3x15WWC7MQ86JJ9W0f\nn3vuOU2H0mUEV5gPp+QhzL2PpsMghGihQCdLlFZLcSOvVNOhEAETVGEuq5bi7K0ijHYV5mVsTT9/\nqa0oL/yEmBc9kQhj3frgWFrzd2cLMS+kawmqMJ9ML0CAgyXMexhoOhRCiJYaNaA3TqYVaDoMImCC\nKszxKXkI8xDuZWwaG+NHeeEn1LwMdrJEekEZisqred8Xal5I1xFMYa6orsXpzEKMcRVuYSaEtM5A\nrIeh/axwKr17nTXHxsbCx8cHYrFYMQkGn/3798PT0xNubm5Yu3atYnlL7SI/+ugjuLm5wdPTEwcO\nHFAsT05Ohp+fH9zc3PDiiy+q5wcTIMEU5vPZxXDvawbLnsK9jE1jY/woL/yEnJdRA6xxopnCrKq8\nxMbGITz8DYSHv4HY2PZ1lkpISMCiRYsaLfPz88POnTsbTXPZVG1tLVasWIH9+/fj6tWr2L59O65d\nuwYAWLNmDSZMmIDr168jLCwMa9asAQBcvXoVO3bswNWrV7F//348++yzilmwnnnmGfzwww+4ceMG\nbty4wdvlibSfYArz2ZtFGNqvl6bDIIR0AyEDrHE6sxDSWpla9t/Zto/NNaZoOHc1nzNnzsDV1RUu\nLi4wMDDAvHnzFJ2kmmsXuXv3bkRFRcHAwAAuLi5wdXXF6dOnkZOTg5KSEgQHBwMAnnzySd4Wk6T9\nBFOYk24VYaizsAszjY3xo7zwE3JeepsawdGyJy5m31d6TxV56Wzbx47O2NiwFSLQuGVic+0i79y5\nw9tmsenypm0SSccJYpaN+xU1yCoqh4+duaZDIYR0EyF1l7ODtOgP+uZaPq5duxbh4eGtbt/0TJsx\nxnv23dw83KRrCKIwJ2cVwd/BAgZiwVwg4CXkMcOWUF74CT0vI/pbY81B5Z67qshLR9s+ttbysTUO\nDg7IyspSvG7Y2rC5dpF82zg6OsLBwQG3b9/m3RfpHEFUKrqMTQhpLy9bM2QVl6OsWqryfXe27WNr\nl7Kbe3/IkCG4ceMGMjMzUV1djR07dij6HjfXLjIiIgIxMTGorq5GRkYGbty4geDgYNja2sLc3Byn\nT58GYww//vhjsy0mSfsIojDLb/yy0nQYGifkMcOWUF74CT0vBmI9ePQ1w5WcB42Wqyovc+ZMxIED\nH+LAgQ/b3f6R71Lzzp074eTkhMTEREydOhWTJ08GIB8jnjp1KgBAX18fX3/9NSZOnAhvb2/MnTsX\nXl5eAOTtIg8ePAh3d3ccPnwYr7/+OgDA29sbEokE3t7emDx5MjZs2KA49oYNG/DUU0/Bzc0Nrq6u\nmDRpUqdyQuR0/lL2vdIqFJVXw62PqaZDIYRogb17gZAQoK6FL4qLgZMngbra1Yi/vQUuZd9HsJb9\nYR8aGorQ0MaXvmfNmoVZs2YprWtvb6/owQwAkydPVhTthqysrHDo0CHe473xxht44403lJYHBQXh\n8uXL7Q2ftELnz5jPZRUh0NESYj26kUHoY4bNobzw09W8hIQAb74pL8jFxfLvQ0L41/V3sMClO43v\nzNbVvBDtofNnzNfulsCb7sYmhNSxtAQ++ACo7yK4fv3Ds+em/Owt8N6+a5AxBj26S5l0EZ0/Y07J\nK4GHjZmmw9AKQh8zbA7lhR/lBbA2MYR5D31kFpQrllFeiLrpdGFmjCEltxQefakwE0Lk6i9fr18v\n/6q/rN0cvsvZhKiTThfmO/cr0cNAD9YmhpoORSvQ2Bg/ygs/Xc3LyZPyS9mWlg8va5882fz69TeA\n1etoXsRiMUpKSjq0LdFuJSUlEIvFKtufTo8x02VsQkhTTe++trTkvyO7noeNGfZczun0cZ2dnXHr\n1i3cu3ev0/si2kUsFsPZ2Vll+9PxwkyXsRtKSEjQ2bOgzqC88KO8yPW3NkFmYbniBrCO5kUkEqFf\nv36qD1AL0GdFtXT6UnZKbgkVZkJIp5ga6cPEUIy8kipNh0IEQucLs6cNTSxSj/6i5Ud54Ud5ecjF\n2gQZBWUAKC98KCeqpdOFuaKmFrbmPTQdBiGkm+tvbYyMBo9MEaJOOl2Y7S16UuuyBuj5S36UF36U\nl4dcrEyQWXfGTHlRRjlRLZ0uzA4WdLZMCOm8/tbGyCws03QYRCB0ujDbW/TUdAhahcaB+FFe+FFe\nHupvbaK4lE15UUY5US2dLsx2dMZMiE7bu7fxrF3FxfJlqmZtYgipjKG4okb1OyekCZ0uzHTG3BiN\nA/GjvPDrDnlpT6eozhCJROhrZoT80qpukZeuRjlRLZ2eYMSezpgJ0Wnt6RTVWdbGhsgvpWeZifrp\n+BkzFeaGaByIH+WFH+WlMWsTQxSUVVNeeFBOVEunC7OxoU5fECBE8NrbKaozepsaIb+sWj07J6QB\nnS7MpDEaB+JHeeHXHfLS3k5RnVF/xtwd8tLVKCeq1aZTSolEEgaA8bxVBeA2x3E3VRoVIYS0QXs7\nRXVUbGwcNv3xL6r79MEDsxy6dEvUSsQYX71tTCKRZAKwh7w4FwCwBiACkAfABsAlAPM4jruhtkjb\nKT4+noWFhWk6DEJINxcbG4fly3NQ0ysC9uMzcS/2Er77zg5z5kzUdGhEy8XHxyMsLKzd00+29VL2\nJgDrAFhyHGcPwBLA5wC+BdALwFkAG9p7cEII0Xbff38UhYULUFNiBH2zahQWLsDGjUc1HRbRYW0t\nzC8BeIPjuAoAqPvv2wBe4jiuFMArAIaqJ0SiKjQOxI/ywo/y0lhNqSEMTOnmLz70WVGtthbmMigX\n3qC65YD8Enfr18QJIaSbWbo0FFZWWyGrjoeeQRXE4gXw87PQdFhEh7X1eaK3AcRJJJI9AG4DcAQw\nHcDzde+HAfhV9eERVaIbVvhRXvhRXuQiIyciMXEtvvyqHCKxJ2proxEdvQ0jRsTROHMd+qyoVpvO\nmDmO2wZgGIAUABZ1/x3BcdzWuvf/4DhuqdqiJIQQDbp8+T6kNc+AyUQQ6TMaZyZq1eYZODiOuwrg\nPTXGQtQsISGB/rLlQXnhR3lRJqvRg56+DLVSmgKiIfqsqFabC7NEIpkBIBQPH5UCAHAc96QqApFI\nJJMAfAFADGATx3Fredb5EsBkAOUAFnIcd14VxyaEkJYsXRqK5OStYNKBEOnXwsrqZyxbFqrpsIiO\natOffRKJ5B0A39WtL4H8WeaJAFQy+Z1EIhED+BrAJADeAKIkEolXk3WmAHDlOM4NwDIA36ji2EJC\nf9Hyo7zwo7w8FBk5EQsX5gKyQlj1eRYLF+bS+HID9FlRrbZej1kCYALHcS8BqOI47mXIb/7qr6I4\nggGkchyXyXFcDYAYADOarBMBoH5M+zQAS4lEYqOi4xNCuoGu6r/cVGxsHKKjbSCtssGD0i8RHW2D\nX3+NU/+BiSC1tTBbcBx3ue77aolEYshx3BnIL22rggOArAavb9cta20dRxUdXxDoWUN+lBd+2piX\nruq/3FT9JCNGVhXQN5bSzV9NaONnpTtra2FOl0gkPnXfXwHwjEQieRJAoYriaOsz0E2nNmtxu4Yf\nloSEBMG/vnDhglbFQ6+1+7U2fl7qG1XMmZOLOXNyFQ0s1H38oiL5rzo9fQajPuWNlmlTfjT1+sKF\nC1oVj7a9bq+2zpU9FUApx3FHJRLJMAC/ADAF8CzHcb91+OgP9z8cwLscx02qe70agKzhDWASieRb\nAAkcx8XUvf4XQCjHcbl8+6S5sgnRTcXFwHPPyb9fv15emNWtfr5su4VeSP/FGz2rf6P5skmrOjpX\ndpvuyuY4bm+D708DGNjeA7UiCYCbRCJxAXAHwFwAUU3W2QNgBYCYukJe3FxRJoTopob9lwH59/Vn\nzeoUGTkRIlEcPr5yDyOGfYFnHg+mokzUps0P40kkEmOJROIvkUhGNvxSRRAcx0khL7pxAK4C2MFx\n3DWJRPK0RCJ5um6dvyC/pJ4K+R3iz6ri2ELSmUsruozywk8b89KV/ZebYgxgenp4UFiINlxoFBRt\n/Kx0Z23tx/wk5I8zVQOoaPK2kyoC4ThuH4B9TZZ91+T1ClUcixDSPXVV/+Wm6i9lOz0/EFfOrcHy\n5dshEtGUnEQ92jrByMcAZnMcd1CdwRD1omcN+VFe+FFeHpLflf0B+ukfg6xGjMKyBdi48U0qzHXo\ns12pBTIAACAASURBVKJabb2UXQUgQY1xEEKI1tPTl0FG03ESNWvrJ+wdAJ9JJJI+6gyGqBeNA/Gj\nvPCjvDzk62sBfcO6yQZlIlhZbaUpORugz4pqtfVSdgqA9wE8J5FIGi5nHMeJVR4VIYRoidjYOGzd\nagOZyBYyaQ3E4gVYuNAHc+Ys1HRoREe19Yx5G4AtAAIAuDf48lBTXEQNaByIH+WFH+VFrn7WL7HR\nONRWGaO2disuX76v6bC0Cn1WVKutZ8zWAP6P4zh6SIAQIkgGZlWoKTHUdBhEANp6xrwFgEraOxLN\noXEgfpQXfpQXuaVLQ2FltRUG5lWQlhjCzGwTjS83QZ8V1WrrGfMwAM9LJJI3ATScbYtxHDdG9WER\nQoh2qJ/166u9OyA1s8T8/zygx6SIWrW1MH9f99UUXdruRmgciB/lhR/l5aE5cyai2N4d1bUyPDta\n1TMSd3/0WVGtFguzRCIJg7z4ZkG5CIt4lmkVxhhEonbPH04IIUoKyqrhYm2s6TCIALQ2xvxD3dem\nBt83Xaa1CsqqNR2CVqFxIH6UF37dIS9798obW9QrLpYvU4eCsmr0NjHqFnnpapQT1WrxjJnjOJcu\nikMtsu9XorepkabDIISoSUjIww5TQOPvVS2/rArWJoYobn1VQjqlTf2Yu6P4+HhWY+eDSd62mg6F\nEKJGXdWfecbGU1gfOQiOvehyNmmbjvZj1ulJX+/cr9R0CIQQHVBTK0N+aTX6mvXQdChEAHS8MDft\nUClsNA7Ej/LCrzvkpbhYfvl6/Xr515tvNh5zVpWsogrYmBnBUF+vW+Slq1FOVEvHCzOdMROiy06e\nlI8pW1rKvz74QL5M1TILyuBibaL6HRPCQ6fHmL9K64ldy0ZqOhRCSDf3w98ZKK+uxfOhrpoOhXQj\nNMbMI7+sGtVSmabDIIR0cxkF5XTGTLqMThdmR8ueSMsv1XQYWoPGgfhRXvhRXh7KLChDfyv53diU\nF2WUE9XS6cLsaWOGlDwqzISQjpMxhptFdMZMuo5OF2b3vmb4N7dE02FoDZrPlh/lhR/lRe7ug0qY\nGenD1Eg+HxPlRRnlRLV0ujB72pjiOhVmQkgnZBSUwcWKzpZJ19Hpwuze1ww38ktRK9PNO8/bi8aB\n+FFe+FFe5K7kPIC3nbniNeVFGeVEtXS6MJsa6aOPiRFuFpZrOhRCSDd1Kfs+/O0tNB0GERCdLswA\n4GFD48z1aByIH+WFn67mpT0dqWplDP/kPIC//cMzZl3NS2dQTlRL5wuze19TpORRYSaEyNV3pCou\nfjilZ0gI/7rp+WWwNjGCpbFh1wZJBE3nC7OfvQUuZd/XdBhagcaB+FFe+OlqXuqn7nzuOflX/ZSe\nfC7fuQ+/BmfLgO7mpTMoJ6olgMJsjvT8MpRWSTUdCiGkm7l05z78HWh8mXQtnS/MRvpi+NiZ41wW\ntTencSB+lBd+upqX9nSk4rvxS1fz0hmUE9XS+cIMAEP79ULSrSJNh0EI0QJt7UhVWFaNoooaDOhN\nzzCTriWMwuzcC2dvFmo6DI2jcSB+lBd+upqXqVMbjylbWsqXNXX+djH87S2gJ2rcHEhX89IZlBPV\nEkRh9rQ1Q86DShSWVWs6FEJIN3EiPR8jB1hpOgwiQIIozPp6egh0skRylrAvZ9M4ED/KCz8h50XG\nGE6lFyJkQG+l94Scl+ZQTlRLEIUZAIY6W+HsTWEXZkJI21y7WwKLnvpwtOyp6VCIAAmmMAf364XT\nNwvBmHDnzaZxIH6UF35CzsuJtHzes2VA2HlpDuVEtQRTmAfW3Vl5nfozE0JacTK9AKMGWGs6DCJQ\nginMIpEIYe59cfh6nqZD0RgaB+JHeeEn1Lzkl1bhdnEFApqZWESoeWkJ5US1BFOYASDMoy8OpdwT\n9OVsQkjLTqYXYJiLFfTFgvr1SLSIoD553rZmqK6tRVp+maZD0QgaB+JHeeEn1LzIx5ebv4wt1Ly0\nhHKiWoIqzCKRCI8I/HI2IaR5JZU1OHurCGNc+W/8IqQrCKowA0CYe1/EX7+n6TA0gsaB+FFe+Akx\nL4dS8hDczwrmPQyaXUeIeWkN5US1BFeYfe3NUVopRUaBMC9nE0Kat+/qXUz1sdV0GETgBFeY9UQi\njHPvg/gU4V3OpnEgfpQXfkLLS3ZxBTIKyjGylcekhJaXtqCcqJbgCjMATPKywV9X7kJGd2cTQurs\nu3oX4z36woDuxiYaJshPoI+dOXoYiAXXCpLGgfhRXvgJKS+MMey7ehdT2nAZW0h5aSvKiWoJsjCL\nRCLMCrDHzot3NB0KIUQLXMl5AADwtTPXcCSECLQwA8Bkb1ucziwUVCtIGgfiR3nhJ6S8/HX1LiZ7\n20LUpPcyHyHlpa0oJ6ol2MJsaqSPce598Oc/OZoOhRCiQeXVUhy4ltumy9iEdAXBFmYAmOVvj52X\n7gjmJjAaB+JHeeEnlLz8+c9dDHbqBXuLtrV4FEpe2oNyolqCLsw+duboKcCbwAghcjLGsONcFqKG\nOGk6FEIUBF2YhXYTGI0D8aO88BNCXk6lF8DYUB+DmukkxUcIeWkvyolqCbowA/KbwM7eLETO/QpN\nh0II6WLbk7MQFeTYppu+COkqgi/Mpkb6mOFvj5/OZmk6FLWjcSB+lBd+up6X1HulSMsvw3gPm3Zt\np+t56QjKiWoJvjADQFSQE/Zfu4sCAT06RYjQxZzLwpxBDjDUp1+DRLvQJxJAb1MjhHvaYHuybp81\n0zgQP8oLP13OS1F5NQ6n3MPsQQ7t3laX89JRlBPVosJc54lgZ+y6mI2SyhpNh0IIUbOY5CyEefRF\nL2NDTYdCiBIqzHXsLXpi1MDeiD2frelQ1IbGgfhRXvjpal6Kyqvx24VsLB7er0Pb62peOoNyolpU\nmBtYMKwfdpzLQkV1raZDIYSoydbTNxHuZQO7Nk4oQkhXo8LcQH9rE/g7/P/27jy+qvrM4/gnZIGE\nJCRANkhIgBA2owTKJqhQVHQQ1Lb+rHVFZ5w6tnW0OnVcyjjVaR2njqO2at2q2FZ/YsUNKxAFXMom\nYd8JAQIkJISQFbLd+SNXRbiQEG7uucv3/XrllXvCybkPz/3lPvec55zfSWDuuuC8rll9IM+UF8+C\nMS9lNUd5b/1+Zo7L6vA2gjEvZ0o58S4V5uPcMj6LV5ftoq6hyelQRMTLXl5axPSz0kiK7ep0KCIn\nFeZyeJ5oY0xP4A0gEygCjLW20sN6RUAV0Aw0WmvHnGq7+fn5rilTpnQopgfe30B6QjQ/njigQ78v\nIv5n/+F6rn91BW/eMk4nfYlP5OfnM2XKlNOevcYf9pjvBRZYa3OAfPeyJy5gkrU2r62ifKZuP28A\ncwqKOVB9tDOfRkR86MW/F/H9EX1VlMXv+UNhngG84n78CnDFKdb1ybx5aT2iufzsPjz7WaEvns5n\n1AfyTHnxLJjysvtQHYu2l3Pt6H5nvK1gyou3KCfe5Q+FOcVaW+p+XAqcbH48F7DQGLPSGPNPnR3U\nzHFZfF54kC2l1Z39VCLSyf5v0Xau/U4G8d0inQ5FpE0RvngSY8wCwNNdyO8/dsFa6zLGnKzpPcFa\nu98YkwQsMMZsttZ+6u1YvxLbNYJbxmfxf4u28zszIigmude1hp4pL54FS14+21FO0cFafj39LK9s\nL1jy4k3KiXf5w8lfm2ntHZcYY9KAT6y1Q9r4nVlAjbX2tydbJz8/3xUeHv71gPnqUMvpLDe3uHhm\nZzR3Ts6mcff60/59LWtZy84uj594Hj98eTmXJB9hcI8wx+PRcmgtNzc3d+jkL38ozP8NHLTWPmqM\nuRdIsNbee9w6MUC4tbbaGNMdmA88ZK2df7LtnslZ2cdavL2M3y0p5M83jiYi3B+O/HfcokWLvh44\n8g3lxbNgyMsLX+xky4EaHrsi12vbDIa8eJty4lkgn5X9G+AiY8xW4LvuZYwxfYwxH7jXSQU+Ncas\nBpYB75+qKHvT+QN7kxLXlddW7vbF04mIl+ytrOf1VcXcNTnb6VBETovje8ydxVt7zAD7Dtdzw+yV\nvPijUWT2jPHKNkWkc9399lqGpcZz8/gsp0OREBXIe8x+r0+PaG4el8UjH22mJUg/yIgEk88Lyyks\nr+U6L1weJeJrKsztdPXIdBqbW5i7NnDn0f7qhAT5NuXFs0DNS31DM/+Tv42fT8khKsL7b3GBmpfO\npJx4lwpzO4V3CeP+qUN45tNCzQgm4seeWrKd3D7xTBjQy+lQRDpEhfk0ZCfF8v0RffnvhVsIxN68\nzpr0THnxLBDzsnTnQZZsL+eeKTmd9hyBmJfOppx4lwrzabp5XBa7Kur4eGuZ06GIyDGqjjTyq482\n8+AlQ4nTDF8SwFSYT1NURBcemDqEx/K3Ul4TWIe01QfyTHnxLNDy8tjCrUzKTmJsVs9OfZ5Ay4sv\nKCfepcLcAeekJ3Dl2X345QcbaW4JvEPaIsFm4ZYDbCyp5qcXDHQ6FJEzpsLcQbecm0VTi4tXl+9y\nOpR2Ux/IM+XFs0DJS3nNUR5buJX/nDaMbpHhnf58gZIXX1JOvEuFuYMiunThV5cN4/Uvi1lTXOl0\nOCIhqcXl4uGPNnPlOX0YnhbvdDgiXqHCfAZS4rpx/9QhPPDBBg7XNzodTpvUB/JMefEsEPLyyrJd\nVNU3cosPZ/cKhLz4mnLiXSrMZ+j87N5MHpTMw3/bFJCXUIkEqqU7D2JXFfOby3OJDPAbzIgcS6PZ\nC35y/kBKqo/yZsFep0M5JfWBPFNePPPnvOw7XM+seZt4ePpwkuO6+vS5/TkvTlFOvEuF2QuiIrrw\nX9OH8/wXO1m797DT4YgEtSONzfzinfXcOLYfozISnQ5HxOtUmL0kIzGGX146lF+8s479h+udDscj\n9YE8U14888e8uFwuHl24hYzEaK4ZleFIDP6YF6cpJ96lwuxF5w3szXWj+/Hzt9dR29DkdDgiQeev\na/axqaSaB6cOJSzstO+mJxIQdD9mL3O5XDwyfzMVtY08dkUu4V305iHiDWv3HubuuWt54Uej6Jeo\n+6KL/9P9mP1EWFgYv7hwMHUNTTy9ZIfT4YgEhaKKWu6Zu45Zlw5TUZagp8LcCSLDu/Cby3NZvK2M\nd/zo/s3qA3mmvHjmL3kprznKHXPWcPv5A/ziVo7+khd/opx4lwpzJ0mIjuTx753N7z7dwZd7Djkd\njkhAqjnaxB1vrWFGbhozcvs4HY6IT6jH3MmWFVXwyw828OQPRjA4Jc7pcEQCRmNzC3fMWUO/xBh+\ncVGOTvaSgKMes58am9WTf7twMHe8tYadB2udDkckILS4XDz04Sa6R4Vzz4UqyhJaVJh9YMrgZH56\n/kB+8uZqig/VORaH+kCeKS+eOZmXpxbvoKTqCL+6bLjfXdmg8XIi5cS7VJh9ZNpZacwcm8ntb66m\npOqI0+GI+K2XlxbxeWE5v73ybJ/cxlHE36jH7GOzl+9m7tp9/OGakfTqHuV0OCJ+5YUvdvLRplKe\nuTqP3rG+nQNbxNvUYw4Q14/px9ShyfzEFgTErSJFfMHlcvHcZ4XM33xARVlCngqzA/7p3P6MzerJ\nT99cTaUPi7P6QJ4pL575Ki8ul4tnPivkk21lPBsARVnj5UTKiXepMDsgLCyMOyZlMzozkVv/8iWl\n1eo5S2hyuVw8vWQHn+04yLNX59FT7R0R9Zid9uqyXcxZvZenrhpBZk9NNSihw+Vy8cQn2/lyzyGe\nNnkkREc6HZKIV6nHHKBuGJvJLeOz+PHrq9hcWu10OCI+0dzi4tGFWynYW8nvr1ZRFjmWCrMfuPzs\nPvzbhYP52ZzVfLm786bvVB/IM+XFs87KS31DM/fMXceuijp+b/KI7xZYRVnj5UTKiXepMPuJyTlJ\nPHLZcO59dz2Lt5U5HY5IpyivOco/v76KHtERPPmDc4jtGuF0SCJ+Rz1mP7NhfxV3/XUtt07oz/dH\n9HU6HBGv2VFew51vrWVGbhq3jM/SNJsS9NRjDhLD0+J5/kcjeWPVHn4zfwuNzS1OhyRyxpbvquC2\nNwr48cQB/OO5/VWURU5BhdkP9UuM4aVrv0NpzRFutwVU1DZ4ZbvqA3mmvHjmrby8t34/D76/gV/P\nOIt/GJ7qlW06SePlRMqJd6kw+6nYrhH89sqzyUtP4MbXVrBFZ2xLgGlqbuGJT7bxwhc7ee6HIxmV\nkeh0SCIBQT3mALBwywEeXbCFe6bkcPHQFKfDEWnTgeqj3PfeerpHRfDQtGG6HEpCUkd7zDolMgBc\nODiZfonR3DN3HVvLarht4gC/uxWeyFeWFVUwa95Grh6Zzo1jM+mifrLIadGh7ACRkxzHH6/7Dhv2\nH+ZfbEGHbh2pPpBnyotnp5uX5hYXf/i8kIc+3Mgjlw1n5risoCzKGi8nUk68S4U5gCTGRPH0VXmM\n79+TG2avYMHmUqdDEgGgoraBn81Zzao9lbx6/WhG9VM/WaSj1GMOUBtLqnjw/Q3k9unBPRfm0D1K\nXQlxxsrdh5g1byPThqdy64T+RHTR530R0HXMIWdYajyzbxhNRHgY1/5xOev2HXY6JAkxdQ1NPLpg\nC7PmbeT+qUP4l/MGqiiLeIH+igJYTFQED0wdys8mZXP322t54YudNLWcfEIS9YE8U148O1VeVuyq\n4Jo/LudoUwuv3zSGc/v38l1gDtN4OZFy4l06/hkEvpuTzFlpPfiPeRtZsqOc+y4ewpCUOKfDkiBU\n29DEU4t28Glh6zibMCB0CrKIr6jHHERcLhfvbyjh6cXbuXhoCj+eOEC9Z/Ga5bsqePhvmxmdmci/\nTsomLsDuCiXia7qOWQgLC2P6WWmcN6AXTy7egXlpGT//7iAmD0rS3MTSYYfqGvjdpztYurOC+6YO\nCanD1iJOUI85CCXERPHLS4fyq2nDePazQu56ey37DterD3QSyotnCz/+hD+v3I15aRndIsJ5feZY\nFWU0XjxRTrxLe8xBbGRGIn+6cQyzl+/mhtkrmdDLxblNLURF6POYnNrnhQd5fIOLgakVPPfDkQzo\n3d3pkERChnrMIaL4UB2Pf7Kd7WU13DqhP5cOS9W0nnKCoopanvhkO3sO1XHn5EFMGNBLbRCRDlKP\nWU4pPTGGx793NquLK3lq8Q5eW7Gb288fyES98QpQdaSRF/9exAcbSrhpbCaPXZFLZLiOrIg4QX95\nIWTRokWMSE/ghR+N5LbzBvD0kh3c+pdVrNkb2pOThHJ/7HB9I898Vsj3XlhKXUMzb8wcy3Wj+xEZ\n3iWk83IqysuJlBPv0h5zCAoLC+OC7CQmDujNvI0lPPD+enKS47ht4gCyk2KdDk98oLK+kT+v3M1f\nV+9l0qAk/njdd0hPiHY6LBFBPWYBjjY1M6dgL68u382wtDiuH92PvPQEHeIOQpV1Dby2cg9z1+xl\nck4yN43NpK8KskinUI9ZOqxrRDjXju7H90f0Zd6GEh75aDNx3SK5fnQ/Jg1K0kliQaC85ih/+XIP\n76zdx5TBycy+YTRpPVSQRfyReswhpK0+ULfIcL43oi/25nHcOCaTP63czQ9eXMqbBcUcaWz2TZAO\nCNb+mMvloqC4kvveW495aRl1Dc28duMY/v3iIe0qysGalzOlvJxIOfEu7THLCcK7hDE5J4nJOUms\nKa5k9ordPP/FTq48py+X56bRR3tafq2+oZkPN5Uwp2AvR5ta+EFeX/79osGaQlMkQKjHLO1SVFHL\nnIK9/G1TKTlJsczITWPSoCS6RYY7HZq47aqoY87qYj7cUMI56QmYvHRGZybSRecKiDhCPWbpVFk9\nu3P3lBx+esFAlmwv5911+3ksfysXDU5hem4aw1LjdLKYAyrrG/l46wHmbyql8GAtM3L7qH8sEuBU\nmEPIokWLmDRp0hlto2tEOBcNSeGiISmUVB1h3oYS7n9vPd0iw5l+VhpTBieTGt/NOwH7iDfy4ku1\nDU0s3lbG/M0HWF1cyfj+vbh6ZAbnDuhJ1wjvHcEItLz4ivJyIuXEu1SYpcNS47tx8/gsbhqXSUFx\nJR+sL+HlZStIjevKBYOSmJSdRHZSd+1Je8GRxma+KDzI/M2lLC2qIC8jgalDU3hk+nDd2lMkyKjH\nLF7V1NLCmr2HWbKtnEXbywC4IDuJC7J7c056DyK66EKA9nC5XOyprGfpzgr+XnSQgj2VDE2N5+Ih\nyXw3J5ke0TqRS8TfqccsfiGiSxdGZSQyKiORf52czfayWhZvL+OJRdvZX3WEsZmJjMxIJC89gf69\nYrQ3fYyao02s2HWIpUUHWVpUQWNzC2OzenLp0FRmXTKUhJgop0MUER9wvDAbY64C/gMYAoy21q46\nyXqXAE8A4cAL1tpHfRZkkPB1HygsLIxBybEMSo7lH8/tT0nVEZbvqqCguJLZy3dR29DMiPQE8tIT\nGJmRwKCkWEcmM3GqP1ZWc5SN+6vYUFJFwZ5Kth6oIbdPPOP69+KqvHQG9na2DaC+oWfKy4mUE+9y\nvDAD64ArgedOtoIxJhx4GrgQ2AusMMa8a63d5JsQxRtS47sxI7cPM3L7AFBafYSCPZUUFFcyd+1e\nymoayO0Tz5CUOLKTYsnuHUu/ntFBcfi7+kgjG0uq2VhSxcb9VWwsqeZocwvDUuMYnhrPzeOzyEtP\n0OVnIuJ8YbbWbgYwxpxqtTHAdmttkXvd14HLARXm0+Bvn2hT4rpxybBULhmWCkBFbQNr9h5mW1k1\nCzcf4NmyQg7UHKVfYgzZSd0ZlBTLwKRYBvTqTlJsV6/tXXsrLy0uF6VVR9hTWc+eQ/XsPlTHnkP1\n7KqopbymgcEpsQxNjeeioSncMXkQfXt08+tD+f42XvyF8nIi5cS7HC/M7dQX2HPMcjEw1qFYpJP0\n7B719YxjX6lvaKbwYC07ymvYXlbL33fuZufBWirrG+nZPYqUuK6kxHUjOa7rtx736h5FTGQ40VHh\nRIV3OaMC2OJyUXWkicr6BirrGqmsb+RQXQOV9Y1U1jWy93A9uw/Vs+9wPfHdIshIjCEjMZqMhBjO\n6duDzJ4xZPaMCYo9fxHpfD4pzMaYBUCqh3+6z1r7Xjs2EZynjvtYIPaBoqPCGZ4Wz/C0+G/9vKm5\nhbKaoxyoPkqp+2vf4SMUFB/mQPURKuoaqG9soa6hiRYXXxfpY7+HdwmjucVFxaFKYuPiaXK5aG75\n5qupxUVtQxNV9U3ERIWTGBNJj+hIEqKjSIyJJCE6kt6xXTm7b4+vC3F0VPAcig7E8eILysuJlBPv\n8klhttZedIab2AtkHLOcQete8ynl5+ef4dMGn2DMSTjQx/1FnPvrBC1Ao+cNJAEcbuNZPPx+E1Dd\n+rWn+NuHdIJFMI4Xb1BeTqSceI+/Hco+2fHGlcAgY0wWsA+4GrjmVBvqyLVjIiIiTnN8ghFjzJXA\nk0BvWndbCqy1lxpj+gDPW2unude7lG8ul3rRWvtrp2IWERHpLI4XZhEREfmGThMVERHxIyrMIiIi\nfsTfTv7qEE3r6ZkxpifwBpAJFAHGWlvpYb0ioApoBhqttWN8GKbPtOf1N8Y8CVwK1AE3WWsLfBul\n77WVF2PMJOAdoND9o7estQ/7NEgfM8a8BEwDDlhrc0+yTkiNlbZyEorjBMAYkwG8CiTTemnvH6y1\nT3pYr93jJVj2mL+a1nPJyVY4ZlrPS4BhwDXGmKG+Cc8x9wILrLU5QL572RMXMMlamxfERbnN198Y\n8w9AtrV2EHAr8IzPA/Wx0/i7WOweH3mh8GYLvExrTjwKxbFCGzlxC7VxAq3XUd5prR0OjANuP9P3\nlqAozNbazdbarW2s9vW0ntbaRuCraT2D2QzgFffjV4ArTrFusF9e1p7X/+t8WWuXAQnGmBTfhulz\n7f27CPbx8S3W2k+BQ6dYJeTGSjtyAiE2TgCstSXW2tXuxzW0ThXd57jVTmu8BMWh7HYKxWk9U6y1\npe7HpcDJBoILWGiMaQaes9Y+75PofKs9r7+nddJpzV2wak9eXMC5xpg1tE72c7e1dqOP4vNXoThW\n2hLy48Q910YesOy4fzqt8RIwhVnTenp2irzcf+yCtdZljDlZDiZYa/cbY5KABcaYze5Px8Gkva//\n8Z/4g3LcHKM9/79VQIa1ts49n8BcIKdzwwoIoTZW2hLS48QYEwvMAe5w7zkfr93jJWAKs1PTevq7\nU+XFGFNqjEm11pYYY9KAAyfZxn739zJjzNu0Ht4MtsLcntf/+HXS3T8LZm3mxVpbfczjD40xvzfG\n9LTWVvgoRn8UimPllEJ5nBhjIoG3gNestXM9rHJa4yVgCvNp8Nq0nkHgXeBG4FH39xMGjDEmBgi3\n1lYbY7oDFwMP+TRK32jP6/8u8BPgdWPMOKDymFZAsGozL+5e2AH3UZcxQFgovNm2IRTHyimF6jgx\nxoQBLwIbrbVPnGS10xovQTHzl6b19Mx9uZQF+nHM5VLH5sUYMwD4q/tXIoA/BWtePL3+xph/BrDW\nPude56szlGuBmSe79C6YtJUXY8ztwG203rajDrjLWrvUsYB9wBjzF+ACWt9TSoFZQCSE7lhpKyeh\nOE4AjDETab0iaC3fHJ6+j9b33Q6Nl6AozCIiIsEiKC6XEhERCRYqzCIiIn5EhVlERMSPqDCLiIj4\nERVmERERP6LCLCIi4kdUmEWkw4wxk4wxe9peU0TaKxhn/hIRD9z33U6m9b7btcAC4HZrbZWTcYnI\nt2mPWSR0uIDLrLVxwDlALvCAsyGJyPG0xywSgqy1pcaY+cBwAPf8vY8DQ4FdtN4hZ7H732YC99A6\n8X4Z8Ki19g+OBC4SArTHLBJawgCMMem0ztu7zBjTF3gf+E9rbSJwN/CWMaaX+3dKgWnW2nhgJvC/\nxpg834cuEhpUmEVCRxgw1xhTBewGdgCPANcB86y1fwOw1i6k9a5T09zL86y1O92PlwDzgfN8H75I\naNChbJHQ4QIut9Z+bIw5H3gPGAVkAlcZY6Yfs24E8DF8ffepWcAgWj/Mx9B6Jx0R6QQqzCIhegqq\n/gAAAMxJREFUyFq7xBjzFK336v4ImG2tvfX49YwxXWm9Afx1wDvW2mZjzNuc/L7nInKGVJhFQtcT\nwJ3Ag8AdxpiLgXxa77E7DtgGVAFRQDnQ4t57vhhY50jEIiFAPWaREGWtLQdeAe4CZtB6c/cDtPaf\nfw6EWWurgZ8BFqgArgHeOW5Tuqm7iBeFuVz6mxIREfEX2mMWERHxIyrMIiIifkSFWURExI+oMIuI\niPgRFWYRERE/osIsIiLiR1SYRURE/IgKs4iIiB9RYRYREfEj/w8VB+QDnUYGcwAAAABJRU5ErkJg\ngg==\n", "text": [ "" ] } ], "prompt_number": 6 }, { "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", "collapsed": false, "input": [ "Image(url='http://python-deltasigma.readthedocs.org/en/latest/_images/CRFB.png', retina=True)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "" ] } ], "prompt_number": 7 }, { "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", "collapsed": false, "input": [ "a, g, b, c = realizeNTF(H)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "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", "collapsed": false, "input": [ "b = np.concatenate((b[0].reshape((1, )), np.zeros((b.shape[0] - 1, ))), axis=0)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "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" ], "language": "python", "metadata": {}, "outputs": [ { "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
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "[['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, '')]" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the state maxima" ] }, { "cell_type": "code", "collapsed": false, "input": [ "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+1];\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.')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The state maxima have been evaluated through simulation.\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the state maxima" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(order):\n", " semilogy(u, maxima[i, :],'o-')\n", " if not i:\n", " hold(True)\n", "grid(True)\n", "xlabel('DC input')\n", "ylabel('Peak value')\n", "title('Simulated State Maxima')\n", "xlim([0, 0.6]) \n", "ylim([1e-4, 10]);" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scaled modulator\n", "### Calculate the scaled coefficients" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ABCDs, umax, _ = scaleABCD(ABCD, N_sim=1e5)\n", "as_, gs, bs, cs = mapABCD(ABCDs)\n", "print('\\nScaled modulator, umax = %.2f\\n' % umax)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Scaled modulator, umax = 0.58\n", "\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "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" ], "language": "python", "metadata": {}, "outputs": [ { "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
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "[['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, '')]" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the state maxima" ] }, { "cell_type": "code", "collapsed": false, "input": [ "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)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The state maxima have been re-evaluated through simulation.\n", "The maximum input was found to be 0.583333\n" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the state maxima after scaling" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(order):\n", " semilogy(u, maxima[i, :], 'o-')\n", " if not i:\n", " hold(True)\n", "grid(True)\n", "ylabel('Peak value')\n", "xlabel('DC input')\n", "xlim([0, 0.6])\n", "ylim([4e-2, 4]);" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### System version information" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#%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" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
SoftwareVersion
Python2.7.8 |Anaconda 2.1.0 (x86_64)| (default, Aug 21 2014, 15:21:46) [GCC 4.2.1 (Apple Inc. build 5577)]
IPython2.2.0
OSposix [darwin]
numpy1.9.1
scipy0.14.0
matplotlib1.4.2
deltasigma0.1-9
Tue Nov 11 11:44:19 2014 CET
" ], "json": [ "{\"Software versions\": [{\"version\": \"2.7.8 |Anaconda 2.1.0 (x86_64)| (default, Aug 21 2014, 15:21:46) [GCC 4.2.1 (Apple Inc. build 5577)]\", \"module\": \"Python\"}, {\"version\": \"2.2.0\", \"module\": \"IPython\"}, {\"version\": \"posix [darwin]\", \"module\": \"OS\"}, {\"version\": \"1.9.1\", \"module\": \"numpy\"}, {\"version\": \"0.14.0\", \"module\": \"scipy\"}, {\"version\": \"1.4.2\", \"module\": \"matplotlib\"}, {\"version\": \"0.1-9\", \"module\": \"deltasigma\"}]}" ], "latex": [ "\\begin{tabular}{|l|l|}\\hline\n", "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n", "Python & 2.7.8 |Anaconda 2.1.0 (x86\\letterunderscore{}64)| (default, Aug 21 2014, 15:21:46) [GCC 4.2.1 (Apple Inc. build 5577)] \\\\ \\hline\n", "IPython & 2.2.0 \\\\ \\hline\n", "OS & posix [darwin] \\\\ \\hline\n", "numpy & 1.9.1 \\\\ \\hline\n", "scipy & 0.14.0 \\\\ \\hline\n", "matplotlib & 1.4.2 \\\\ \\hline\n", "deltasigma & 0.1-9 \\\\ \\hline\n", "\\hline \\multicolumn{2}{|l|}{Tue Nov 11 11:44:19 2014 CET} \\\\ \\hline\n", "\\end{tabular}\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "Software versions\n", "Python 2.7.8 |Anaconda 2.1.0 (x86_64)| (default, Aug 21 2014, 15:21:46) [GCC 4.2.1 (Apple Inc. build 5577)]\n", "IPython 2.2.0\n", "OS posix [darwin]\n", "numpy 1.9.1\n", "scipy 0.14.0\n", "matplotlib 1.4.2\n", "deltasigma 0.1-9\n", "Tue Nov 11 11:44:19 2014 CET" ] } ], "prompt_number": 17 } ], "metadata": {} } ] }