{ "cells": [ { "cell_type": "markdown", "metadata": { "nbpages": { "level": 0, "link": "[](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html)", "section": "" } }, "source": [ "\n", "*This notebook contains material from [CBE30338](https://jckantor.github.io/CBE30338);\n", "content is available [on Github](https://github.com/jckantor/CBE30338.git).*\n" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 0, "link": "[](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html)", "section": "" } }, "source": [ "\n", "< [3.5 One Compartment Pharmacokinetics](https://jckantor.github.io/CBE30338/03.05-One-Compartment-Pharmacokinetics.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [3.7 Interacting Tanks](https://jckantor.github.io/CBE30338/03.07-Interacting-Tanks.html) >

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 1, "link": "[3.6 Second Order Models](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6-Second-Order-Models)", "section": "3.6 Second Order Models" } }, "source": [ "# 3.6 Second Order Models\n", "\n", "A standard form for a generic second-order model for a stable linear system is given by\n", "\n", "$$\\tau^2\\frac{d^2y}{dt^2} + 2\\zeta\\tau\\frac{dy}{dt} + y = K u$$\n", "\n", "where $y$ and $u$ are **deviation variables**. The parameters have a generic interpretation that are commonly used to describe the qualitative characteristics of these systems.\n", "\n", "| Parameter | Units | Description |\n", "| :-: | :-: | :-: |\n", "| $K$ | $\\frac{\\mbox{units of } y}{\\mbox{units of }u}$ | Steady State Gain |\n", "| $\\tau \\gt 0$ | time | Time Constant |\n", "| $\\zeta \\geq 0$ | dimensionless | Damping Factor |\n", "\n", "The standard form assumes that a zero input (i.e, $u(t) = 0$) results in a zero response ($y(t) = 0$). In practice, the nominal or quiescent value of $y$ or $u$ may different from zero. In that case we would write\n", "\n", "$$\\tau^2\\frac{d^2y}{dt^2} + 2\\zeta\\tau\\frac{dy}{dt} + y - y_{ref} = K\\left(u(t) - u_{ref}\\right)$$\n", "\n", "where $u_{ref}$ and $y_{ref}$ represent constant reference values." ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[3.6.1 Step Response](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1-Step-Response)", "section": "3.6.1 Step Response" } }, "source": [ "## 3.6.1 Step Response\n", "\n", "The step response corresponds to a system that is initially at steady-state where $u = u_{ref}$ and $y = y_{ref}$. At time $t=0$ the input is incremented by a constant value U, i.e. $u = u_{ref} + U$ for $t \\geq 0$. The subsequent response $y(t) - y_{ref}$ is the **step response**.\n", "\n", "Second order linear systems have elegant analytical solutions expressed using exponential and trignometric functions. There are four distinct cases that depend on the value of the damping factor $\\zeta$:\n", "\n", "* Overdamped\n", "* Critically damped\n", "* Underdamped\n", "* Undamped Oscillations" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[3.6.1.1 Overdamped ($\\zeta > 1$)](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1.1-Overdamped-($\\zeta->-1$))", "section": "3.6.1.1 Overdamped ($\\zeta > 1$)" } }, "source": [ "### 3.6.1.1 Overdamped ($\\zeta > 1$)\n", "\n", "An overdamped response tends to be sluggish, and with a potentially a large difference in time scales $\\tau_1$ and $\\tau_2$. The geometric mean of $\\tau_1$ and $\\tau_2$ is $\\tau$. The value of $\\zeta$ determines the differences.\n", "\n", "$$y(t) = y_{ref} + KU\\left(1 - \\frac{\\tau_1e^{-t/\\tau_1} - \\tau_2e^{-t/\\tau_2}}{\\tau_1 - \\tau_2}\\right)$$\n", "\n", "where $\\tau_1$ and $\\tau_2$ are found by factor the polynomial\n", "\n", "$$\\tau^2s^2 + 2\\zeta\\tau s + 1 = (\\tau_1s + 1)(\\tau_2s + 1)$$\n", "\n", "For $\\zeta \\geq 1$ the solutions are given by\n", "\n", "\\begin{align}\n", "\\tau_1 & = \\frac{\\tau}{\\zeta - \\sqrt{\\zeta^2-1}} \\\\\n", "\\tau_2 & = \\frac{\\tau}{\\zeta + \\sqrt{\\zeta^2-1}}\n", "\\end{align}\n", "\n" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "nbpages": { "level": 3, "link": "[3.6.1.1 Overdamped ($\\zeta > 1$)](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1.1-Overdamped-($\\zeta->-1$))", "section": "3.6.1.1 Overdamped ($\\zeta > 1$)" } }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from ipywidgets import interact" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "nbpages": { "level": 3, "link": "[3.6.1.1 Overdamped ($\\zeta > 1$)](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1.1-Overdamped-($\\zeta->-1$))", "section": "3.6.1.1 Overdamped ($\\zeta > 1$)" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ad3ba8301e2344e0a04df39bec70b6ea", "version_major": 2, "version_minor": 0 }, "text/plain": [ "A Jupyter Widget" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def overdamped(K, tau, zeta):\n", " t = np.linspace(0,20)\n", " tau_1 = tau/(zeta - np.sqrt(zeta**2 - 1))\n", " tau_2 = tau/(zeta + np.sqrt(zeta**2 - 1))\n", "\n", " y = K*(1 - ((tau_1*np.exp(-t/tau_1) - tau_2*np.exp(-t/tau_2))/(tau_1 - tau_2)))\n", " plt.plot(t,y)\n", " plt.grid()\n", " \n", "interact(overdamped, K=(0.5,2), tau=(0.5,2), zeta=(1.01,2));" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[3.6.1.2 Critically Damped ($\\zeta = 1$)](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1.2-Critically-Damped-($\\zeta-=-1$))", "section": "3.6.1.2 Critically Damped ($\\zeta = 1$)" } }, "source": [ "### 3.6.1.2 Critically Damped ($\\zeta = 1$)\n", "\n", "$$y(t) = y_{ref} + KU\\left[1 - \\left(1 + \\frac{t}{\\tau}\\right)e^{-t/\\tau}\\right]$$" ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "nbpages": { "level": 3, "link": "[3.6.1.2 Critically Damped ($\\zeta = 1$)](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1.2-Critically-Damped-($\\zeta-=-1$))", "section": "3.6.1.2 Critically Damped ($\\zeta = 1$)" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def criticallydamped(K, tau):\n", " t = np.linspace(0,20)\n", " y = K*(1 - (1 + t/tau)*np.exp(-t/tau))\n", " plt.plot(t,y)\n", " plt.grid()\n", " \n", "criticallydamped(K=2, tau=2)" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[3.6.1.3 Underdamped ($0 \\lt \\zeta \\lt 1$)](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1.3-Underdamped-($0-\\lt-\\zeta-\\lt-1$))", "section": "3.6.1.3 Underdamped ($0 \\lt \\zeta \\lt 1$)" } }, "source": [ "### 3.6.1.3 Underdamped ($0 \\lt \\zeta \\lt 1$)\n", "\n", "One version of the solution can be written\n", "\n", "$$y(t) = y_{ref} + KU\\left(1 - e^{-\\zeta t/\\tau}\\left[\\cos\\left(\\frac{\\sqrt{1-\\zeta^2}}{\\tau}t\\right) + \\frac{\\zeta}{\\sqrt{1-\\zeta^2}}\\sin\\left(\\frac{\\sqrt{1-\\zeta^2}}{\\tau}t\\right)\\right] \\right)$$\n", "\n", "This can be expressed a bit more compactly by introducing a frequency\n", "\n", "$$\\omega = \\frac{\\sqrt{1-\\zeta^2}}{\\tau}$$\n", "\n", "which results in\n", "\n", "$$y(t) = y_{ref} + KU\\left[1 - e^{-\\zeta t/\\tau}\\left(\\cos\\left(\\omega t\\right) + \\frac{\\zeta}{\\sqrt{1-\\zeta^2}}\\,\\sin\\left(\\omega t\\right) \\right)\\right]$$\n" ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "nbpages": { "level": 3, "link": "[3.6.1.3 Underdamped ($0 \\lt \\zeta \\lt 1$)](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1.3-Underdamped-($0-\\lt-\\zeta-\\lt-1$))", "section": "3.6.1.3 Underdamped ($0 \\lt \\zeta \\lt 1$)" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e69f482c6c814da5af8addbcf8b529f0", "version_major": 2, "version_minor": 0 }, "text/plain": [ "A Jupyter Widget" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def underdamped(K, tau, zeta):\n", " t = np.linspace(0,20)\n", " c = np.cos(np.sqrt(1-zeta**2)*t/tau)\n", " s = np.sin(np.sqrt(1-zeta**2)*t/tau)\n", " \n", " y = K*(1 - np.exp(-zeta*t/tau)*(c + zeta*s/np.sqrt(1-zeta**2)))\n", " plt.plot(t,y)\n", " plt.grid()\n", " \n", "interact(underdamped, K=(0.5,3), tau=(0.5,3), zeta=(0,0.999))" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[3.6.1.4 Undamped ($\\zeta = 0$)](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.1.4-Undamped-($\\zeta-=-0$))", "section": "3.6.1.4 Undamped ($\\zeta = 0$)" } }, "source": [ "### 3.6.1.4 Undamped ($\\zeta = 0$)\n", "\n", "Finally, there is the special case of an undamped oscillation\n", "\n", "$$y(t) = y_{ref} + KU\\left[1 - \\cos\\left(\\omega t\\right) \\right]$$\n", "\n", "where $\\omega = 1/\\tau$." ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[3.6.2 Simulation](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.2-Simulation)", "section": "3.6.2 Simulation" } }, "source": [ "## 3.6.2 Simulation\n", "\n", "A second-order differential equation can be simulated as a system of two first order differential equations. The key is to introduce a new variable $v = \\frac{dy}{dt}$. \n", "\n", "$$\\begin{align*}\n", "\\frac{dy}{dt} & = v \\\\\n", "\\frac{dv}{dt} & = -\\frac{1}{\\tau^2}(y-y_{ref}) - \\frac{2\\zeta}{\\tau}v + K\\left(u(t)-u_{ref}\\right)\n", "\\end{align*}$$" ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "nbpages": { "level": 2, "link": "[3.6.2 Simulation](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.2-Simulation)", "section": "3.6.2 Simulation" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3625a868b2ee4d1db0c0e42759a52dd2", "version_major": 2, "version_minor": 0 }, "text/plain": [ "A Jupyter Widget" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import odeint\n", "from ipywidgets import interact\n", "\n", "def simulation(yref=0, U=1, K=1, tau=1, zeta=0.2):\n", "\n", " def deriv(X,t):\n", " y,v = X\n", " ydot = v\n", " vdot = -(y-yref)/tau/tau - 2*zeta*v/tau + K*U/tau/tau\n", " return[ydot,vdot]\n", "\n", " # simulation \n", " t = np.linspace(0,20*tau,1000)\n", " y = odeint(deriv, [yref,0], t)[:,0]\n", " \n", " # plot steady state line and bounds\n", " plt.figure(figsize=(12,6))\n", "\n", " \n", " # plot solution\n", " plt.plot(t,y,lw=3)\n", " plt.title('Step Response of a Second Order System')\n", " plt.xlabel('Time')\n", " plt.ylabel('y')\n", " \n", " # plot limits\n", " plt.ylim(plt.ylim()[0],1.1*plt.ylim()[1])\n", " plt.xlim(t[0],t[-1])\n", " dy = np.diff(plt.ylim())\n", " \n", " # arrow props\n", " ap1 = dict(arrowstyle=\"->\")\n", " ap2 = dict(arrowstyle=\"<->\")\n", "\n", " if zeta < 1:\n", " #overshoot\n", " os = np.exp(-np.pi*zeta/np.sqrt(1-zeta**2))\n", " \n", " # time to first peak\n", " tp = np.pi*tau/np.sqrt(1-zeta**2)\n", " yp = (1+os)*K*U + yref\n", " \n", " plt.text(tp,yp+0.02*dy,\"Overshoot\\n b/a = {0:0.2f}\".format(os), ha='center')\n", " plt.annotate('',xy=(tp,K*U+yref),xytext=(tp,yp),arrowprops=ap2)\n", " plt.text(tp,(K*U+yref+yp)/2,' b')\n", " plt.annotate('',xy=(tp,yref),xytext=(tp,K*U+yref),arrowprops=ap2)\n", " plt.text(tp,K*U/2+yref,' a')\n", " plt.annotate(\"Time to first\\n peak = {0:.2f}\".format(tp),\n", " xy=(tp,yref), xytext=(1.2*tp,0.2*K*U+yref),arrowprops=ap1)\n", "\n", " # rise time\n", " tr = t[np.where(np.diff(np.sign(y-yref-K*U))*np.sign(K*U)>0)[0][0]]\n", " if tr < plt.xlim()[1]:\n", " plt.plot([tr,tr],[0.3*K*U+yref,K*U+yref],'r:')\n", " plt.annotate('',xy=(plt.xlim()[0],0.4*K*U+yref),xytext=(tr,0.4*K*U+yref),\n", " arrowprops=ap2)\n", " plt.text(plt.xlim()[0]+tr/2,0.42*K*U+yref+0.02*dy,\n", " 'Rise Time\\n = {0:.2f}'.format(tr),ha='center')\n", " \n", " # period\n", " P = 2*np.pi*tau/np.sqrt(1-zeta**2)\n", " if tr + P < plt.xlim()[1]:\n", " plt.plot([tr,tr],[0.3*K*U+yref,K*U+yref],'r:')\n", " plt.plot([tr+P,tr+P],[0.3*K*U+yref,K*U+yref],'r:')\n", " plt.annotate('',xy=(tr,0.4*K*U+yref),xytext=(tr+P,0.4*K*U+yref),arrowprops=ap2)\n", " plt.text(tr+P/2,0.42*K*U+yref+0.02*dy,'Period = {0:.2f}'.format(P), ha='center')\n", " \n", " # second peak\n", " if tp + P < plt.xlim()[1]:\n", " plt.annotate('',xy=(tp+P,K*U+yref),xytext=(tp+P,K*U*(1+os**3)+yref),\n", " arrowprops=ap2)\n", " plt.text(tp+P,K*U*(1+os**3/2)+yref,' c')\n", " plt.text(tp+P,K*U*(1+os**3)+yref+0.02*dy,\n", " 'Decay Ratio\\n c/b = {0:.2f}'.format(os**2),va='bottom',ha='center')\n", " \n", " # settling time\n", " ts = -np.log(0.05)*np.sqrt(1-zeta**2)*tau/zeta\n", " if ts < plt.xlim()[1]:\n", " plt.fill_between(t[t>ts],0.95*K*U+yref,1.05*K*U+yref,alpha=0.4,color='y')\n", " plt.text(ts,1.05*K*U+yref+0.02*dy,\n", " 'Settling Time\\n = {0:.2f}'.format(ts),ha='center')\n", "\n", " \n", " plt.plot(plt.xlim(),[yref,yref],'k--')\n", " plt.plot(plt.xlim(),[K*U+yref,K*U+yref],'k--')\n", " \n", "interact(simulation, yref = (-10,10,0.1), U=(0.01,5,0.01), \n", " K = (-5,5,0.01), zeta=(0.01,3,0.01), tau = (0.1,5.0,0.01));" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[3.6.3 Performance Indicators for Underdamped Systems ](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.3-Performance-Indicators-for-Underdamped-Systems)", "section": "3.6.3 Performance Indicators for Underdamped Systems " } }, "source": [ "## 3.6.3 Performance Indicators for Underdamped Systems \n", "\n", "For an underdamped second order system, the desired performance metrics are given by the following by formulas in the following table.\n", "\n", "| Quantity | Symbol | Expression/Value |\n", "| :----------------: | :----: | :----------------------------------------------------: |\n", "| Rise Time | $t_r$ | Time to first SS crossing |\n", "| Time to first peak | $t_p$ | $\\frac{\\pi\\tau}{\\sqrt{1-\\zeta^2}}$ |\n", "| Overshoot | OS | $\\exp\\left(-\\frac{\\pi\\zeta}{\\sqrt{1-\\zeta^2}}\\right)$ |\n", "| Decay Ratio | DR | $\\exp\\left(-\\frac{2\\pi\\zeta}{\\sqrt{1-\\zeta^2}}\\right)$ |\n", "| Period | | $\\frac{2\\pi\\tau}{\\sqrt{1-\\zeta^2}}$ |\n", "| Setting Time | $t_s$ | Time to +/- 5% of SS |" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[3.6.4 Estimating Parameters for an Underdamped System](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.4-Estimating-Parameters-for-an-Underdamped-System)", "section": "3.6.4 Estimating Parameters for an Underdamped System" } }, "source": [ "## 3.6.4 Estimating Parameters for an Underdamped System" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[3.6.4.1 Starting with a Physical Model](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.4.1-Starting-with-a-Physical-Model)", "section": "3.6.4.1 Starting with a Physical Model" } }, "source": [ "### 3.6.4.1 Starting with a Physical Model\n", "\n", "A dynamical model for a u-tube manometer is given by\n", "\n", "$$\\frac{d^2h'}{dt^2} + \\frac{6\\mu}{R^2\\rho}\\frac{dh'}{dt} + \\frac{3}{2}\\frac{g}{L} h' = \\frac{3}{4\\rho L} p'(t)$$\n", "\n", "where $h'$ is the liquid level displacement from an equilibrium position due to a pressure difference $p'(t)$.\n", "\n", "| Parameter | Symbol |\n", "| :-: | :-: |\n", "| radius | $R$ |\n", "| liquid length | $L$ |\n", "| gravity | $g$ |\n", "| density | $\\rho$ |\n", "| viscosity | $\\mu$ |\n", "\n", "What is the gain $K$? Time constant $\\tau$? Damping factor $\\zeta$? How would choose the radius for the fastest response without overshoot?" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[3.6.4.2 Starting with a Step Response](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.4.2-Starting-with-a-Step-Response)", "section": "3.6.4.2 Starting with a Step Response" } }, "source": [ "### 3.6.4.2 Starting with a Step Response\n", "\n", "Underdamped systems have clearly identifiable and measureable characteristics that can be used to identify parameters $K$, $\\tau$, and $\\zeta$. One procedure, for example, is to execute a step response experiment. Then,\n", "\n", "1. Measure overshoot, then estimate damping factor $\\zeta$ using a chart of of this equation (or by directly solving the equation for $\\zeta$):\n", "$$OS = \\frac{a}{b} = \\exp\\left(\\frac{-\\pi\\zeta}{\\sqrt{1-\\zeta^2}}\\right)$$\n", "2. Measure time-to-first-peak $t_p$. Given $t_p$ and $\\zeta$, solve for\n", "$$\\tau = \\frac{t_p}{\\pi}\\sqrt{1 - \\zeta^2}$$\n", "Alternatively, given period $P$,\n", "$$\\tau = \\frac{P}{2\\pi}\\sqrt{1 - \\zeta^2}$$\n" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[3.6.4.2 Starting with a Step Response](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.4.2-Starting-with-a-Step-Response)", "section": "3.6.4.2 Starting with a Step Response" } }, "source": [ "![](2ndOrder.png)" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "nbpages": { "level": 3, "link": "[3.6.4.2 Starting with a Step Response](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.4.2-Starting-with-a-Step-Response)", "section": "3.6.4.2 Starting with a Step Response" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe4AAAH0CAYAAAD7Ws6rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsnXd4VUXawH+Tm4QkpFASWiih10Ao\n0pGgoiggioK4iIoriHVt6Kqri37qumvBurquYkEFlRVpgggSOiId6R0SICEkJITUezPfH+fk5iak\nXEJubu7N+3uePDkzZ8p75p5z3jMz77yjtNYIgiAIguAZ+LhbAEEQBEEQnEcUtyAIgiB4EKK4BUEQ\nBMGDEMUtCIIgCB6EKG5BEARB8CBEcQuCIAiCByGK20mUUi8rpZKVUqfdLUt1QSl1VCl1jbvlqAyU\nUh8ppZ6vQL7mSqkMpZTFFXKVUF9DpdQqpdR5pdSbVVBflFJKK6V8q2N5rkIpFauUine3HBVFKTVN\nKfVVFdTzuVLqZVfXIxTFaxW3qVSyzJdqolLqM6VUcAXLagY8AXTSWjeqXEmrL0qpUKXU20qp42Y7\nHjTD4e6WzRGlVJxS6t7LKUNrPUVr/X9O1FXkY0VrfVxrHay1tl1O/ZfAZCAZCNVaP1GCfBe1hacr\noeqIUmqUUmqbUird/KBfrpSKcrdczqKUqqOU+lApdVoplamU2qmUmlgN5Kr0djU/FNtUjoTVA69V\n3CYjtdbBQA/gCuBvl1qA2TNoAZzVWidVML/HoZTyB5YDnYFhQCjQHzgL9K7kupRSym33YlX1liuJ\nFsBu7QGekzz13i8PUwl8ifExHwa0BP4N5LtTLmcxn+1lGPdSP4xrmAq8ppR6vJQ8lfpbllSep7dr\nlaK19so/4ChwjUP4dWCheRwGfAqcAhKAlwGLee5uYC0wHUgB1gBZGDdPBvC5me5GYBdwDogDOhar\n+2lgB5AD+JpxU824C2b9DYHFwHmMB6muQxnfA6eBNGAV0Nnh3OfAB8AiM+9vQGuH852BX0z5E4Fn\nzXgf4K/AIQwF/B1Qr5T2u9fMG1xOGz9pXlMa8C0QYJ6rCywEzgCp5nFTh7xxwCtmW2cBbYCJwB7z\nmg4D9xWrbxSwDUg3r2GYWYYNyDZ/n/fNtB0c2mAfMLZY+30I/GT+FteYcS+b58NNec+Z+VebbTfT\nvA+yzLqeAqIADfiaeesBnwEnzev+sawyS2nX/sDvZpv+DvR3kDsPyDXrv6aEvHHAvcXiYoF4h7AG\npgAHTBk/AJR5zgK8gdGrPww8WOz6LuXZedmJ8kr9zQvkNts5yazzJuAGYL9Zx7MO6acBczDuw/PA\nFqCbw/kmwP8w7skjwCMO5wLN9k0FdmM8q/Gl/D63AtvKeC7KfM6AgcA68144Adzt0LZfmvIdw+ho\n+Di07RqzLVNN+a93KLMlsNK87l+A94GvSpHvz2Z71i4WfxvGfRVaxnusu9mu5812no353Jh5RmA8\no+fMa+xa1nvR2XYFGgGZQH2HuJ5mW/lhvD9WYjwzycC3ZppVGPfbBfPabnNSTqfe1UAA8JX5O5/D\neF4bVqYuK7E9XF2Bu/5wUNxAMwwl+39m+EfgP0BtoAGwEfOFYT4gVuBh80YN5OIXXzvzBx1q3jRP\nAQcBf4e6t5n1BjrEbTBvgEjzwdliPgi1gF+BvzvUcQ8QYp572/GGxnjBpGD0fH2Br4HZ5rkQjBfc\nE+ZNFQL0Mc89asrQ1Cz3P8CsUtpvNvCFE228EeOFWA/jBTzFPFcfuAUIMmX4HlOJmefjgOMYHxm+\nZjsOB1oDChiM8aD2MNP3xngoh2K8GCOBDg5l3etQdm2MF+JEs+weGA9zZ4f2SwMGmGUFUFRx/wP4\nyJTJDxhEoWI7StEPwiiKKqJFGC+0umbeweWVWaxN62G8mCeYst9uhus7yP5yGb9JkbYw42K5WHEv\nBOoAzTFefsPMc1OAvRj3bj1gRbHru9Rnp7zyyvrNY83yXjDbbJIp6zcY91RnjA+2Vmb6aRgfNrea\n6Z/EUHB+5u+82SzLH2iF8aFwnZn3NYyPqXqmrH9QuuJuZdY7HRhCsY9bynjOzPY+b/6ufhjPSYx5\n7ktgnnltURgfJ392aNs8sw0swP0YH4cF9+V64C2zvivNOkpT3CU+2+ZvZnVok6M4vMfMdjsGPGbK\nfqspU8Fz0wPjvdbHlPEus4xapb0XL7FdfwLudwhPB94zj2cBz1H4PA8sdr+3cQg7I6dT72rgPmAB\nxnvOgvExEepK3aa19yvuDIyvoGMYQy6B5o+R43jjmA/RCocH5HixsmIp+uJ7HvjOIeyD0fuIdaj7\nnhLkGe8Q/h/woUP4YRwUW7G8dcybL8wMfw584nD+BmCvw7VsLaWcPcDVDuHG5oPnW0LaX4DXnGjj\nOxzC/wI+KiVtDJDqEI4DXiqn/B+Bv5jH/wGml5IujqKK+zZgdbE0/3F42D4Hvix2/nMKX0AvYbxA\n25RQ11FKUdxme+bjMHLikK7UMoulmwBsLBa3nsJemV1OZ9qilPtXU/TF9h3wV/P4V8yPLzN8rcP1\nVeTZKbU8J37zWIzRjYIefYiZt49D+s3ATebxNGBDsefyFMZHUp8SZHsG+Mw8Poz58WKGJ1OK4jbP\n9zXb7QyGsvkcU9FQxnNm1jm3hPIsZtt2coi7D4hzaNuDDueCzLZohPExYMWhB43xcVOa4l5GKc82\nxijfeId7/R6Hc1fi8LFgxq2j8Ln5ELNz5HB+H4Ufr0XKq0C73gasdWiv00BvM/wl8DEOo3rF7ndH\nxe2MnE69qzE6WEV67FXx5+1z3DdpretorVtorR/QWmdhzOv4AaeUUueUUucwXuoNHPKdKKfcJhgf\nAwBorfPNPJHllJHocJxVQjgYjDlXpdRrSqlDSql0jBsJjOHWAhyt2zML8mJ8zR4qRe4WwFyH696D\nMczcsIS0ZzFeOOVRohxKqSCl1H+UUsfMa1gF1Ck2n1ykjZRS1yulNiilUkz5bqDwmsu6ruK0APoU\nXKdZ1niMl1yJdRfjdYwRlKVKqcNKqb86WW8zIEVrnXoZZRa5t0yOUfTeKgsrxv3tiB+G4nCktPun\nCUXbxlGWijw7ZZVX3m8Ohm1JgeFflvm/xOemeP3mcxlvytACaFLsnniWwnu/TDmLo7XeoLUeq7WO\nwPgwuBKjxwdlP2el3cfhFPZoHWVw/N3tv5nWOtM8DDZlT9VaX3BS/mRKeLbNeedw83wBjm3SBEjQ\npsYqoZ4WwBPF2riZma+k8i6inHadB3RSSrXCGHlL01pvNM89hTFqs1EptUspdU8Z1Tgjp1Pvaozp\ns5+B2Uqpk0qpfymlij9/lY63K+6SOIHxZRtuKvU6WutQrXVnhzS6lLwFnMT48QHDuArjh0+4hDLK\n4k8Y87nXYMx7RRVU5UTeExhDj6Wdu97huutorQO01gklpF0GXKeUqn1pott5AmiP0TsKxXgAoeg1\n2NtIKVUL48v2DYw5ojoYQ2MF6cu6ruJtfQJYWew6g7XW95eRp/CE1ue11k9orVsBI4HHlVJXl5fP\nrLeeUqrOJZbpSJF7y6Q5Re+tsjhO4f1SQEvKUUQOnMK4lx3rLqAiz06p5Tnxm1cEe12mwWNTjDY9\nARwpdk+EaK1vKE/O8tBa/w78AHQxo8p6zkq7j5MxPq4cf3tnf/dTQN1iz2pZ8i8Dri/h2b4F4/fd\n4BDn+HueAiLN911J9ZwAXil23UFa61mllFcmxdtVa52N0RsfjzEyNdMh7Wmt9SStdROMkYp/l2FJ\n7oyczsqYp7V+UWvdCcM2ZQRw56WWc6nUOMWttT4FLAXeNJc7+SilWiulBl9CMd8Bw5VSV5tfV09g\n3PDrKknMELO8sxhDYq9eQt6FQCOl1KNKqVpKqRClVB/z3EfAK0qpFgBKqQil1KhSypmJcYP/TynV\nwWyn+kqpZ5VSN5SSp/g1ZAHnlFL1gL+Xk94fY/7oDGBVSl2PMaxawKfARLPNfZRSkUqpDua5RIz5\nMcc2aKeUmqCU8jP/rlBKdXRCbpRSI5RSbcwXVDpGb6mg11e8LjvmvbUY46VR16z3SifKdOQnU/Y/\nKaV8lVK3AZ3Ma3KGbzHaqbdprd8OY05ytpP5vwMeUUo1VUrVxTCycry+S312Si2P8n/zitBTKTXa\n7D0+SqEi2gikK6WeVkoFmqNaXZRSVzjI+Yz5uzXFGA4tEaXUQKXUJKVUAzPcAcNYtUDhlfWcfQ1c\no5Qaa/6+9ZVSMeaowndmvhAz7+MYhk9lorU+BmwCXlRK+SulBmJ8HJbGTIyRiO+Vsa7eTyl1HfAu\nME1rnVZKvvUYIzqPmLKPpugKk/8CU5RSfcx7r7ZSarhSKqS8awCn2hWMIfG7zfivHPKOMX83MGxC\nNKU/s5clZzGZhyilopUxkpiO8fHl8qWhNU5xm9yJ8dLYjfEjz8G5YWEAtNb7gDuA9zC+lEdiLD3L\nrST5vsToISWYMm4oO3kR2c5jDCONxBhaO4Bh6AHwDjAfY7j2vFlun1LKycHo8e/FmO9Ox3j5hWNY\nsZfH2xg2BclmPUuckPsRjJdXKsaow3yH8xsxjM2mYxiWraSwd/IOcKtSKlUp9a5Z1rXAOIze1mng\nnxhKwhnaYvRKMjBeVv/WWseZ5/4B/E0ZQ2xPlpB3AsbDuxfDqOVRJ8p0bIezGF/tT2B8uD0FjNBa\nJxdPWxJa658xlONnGO30E/AFxvyfM/wXY+hvO4ZBzg/Fzl/qs1NqeeX95hVkHsZcaIGB32izV2TD\neCZiMAzWkoFPMEa0AF7EeOaOYHyczKR0zmEojp1KqQyMe3suho0HlPGcaa2PY0wHPIFhYLoN6Gbm\nexjD6PUwhgX5N8AMJ6/7T2YdKRgfyV+WltDh2T6B8SynYxi2Pae1fr2MfLnAaAzFmYrRzo6/5yYM\n47n3zfMHzbTOUl67orVei2FHskVrfdQh7xXAb2a++Rh2EkfMc9OAL8xndmwlyOlII4xnIB1jSmQl\nTnxsXS4FFomCIAgejVJqGoYR0h3ulkVwHUqpX4FvtNafuFsWd+GVDhIEQRAE78Oc2uiBYQNUY3HZ\nULlSaoZSKkkp9Ucp55VS6l1luNHcoZTq4SpZBEEQBM9GKfUFxnTTo+Y0S43FZUPlplFOBsZ62S4l\nnL8BY07nBoy5mXe01iXOtwqCIAiCYOCyHrfWehWGoURpjMJQ6lprvQFjja/TBmKCIAiCUBNxp1V5\nJEUX48fjvJMJQRAEQaiRuNM4rSQnCyWO2yulJmO4IMQSbOnpF+5yxzSXhEJhURZ88MGiLFiwGP+V\nBaUVfj5+9rjqjM1mw2Kp3jI6kp+fj4+PZ6xolLZ1HZ7Utp7UriBt60r279+fbHqIu2TcqbjjKeqp\nqMDD0UVorT/GXIfaqpm/fuzBFtiunEr9YH/ydT75Oh+btmHLt2HVVqz5VvJseeTm55KXn0euLZds\nazY5thyybdlkW7PJsmaRZc0iMy+TTGsmWdaskqquVCzKQnhgOI1rN6Zx7cY0Cm5E49qNaVK7CZHB\nkTQJbkKQX5DL5SiNhQsXMmLECLfVf6nExcURGxvrbjGcQtrWdXhS23pSu4K0rStRSjnrzfAi3Km4\n5wMPKaVmYxinpZmemcqkns3GA+dP859zvZnQO7rShLHl28i0ZnIh7wIZuRlk5GWQnptOWk4a6bnp\n9uNzOeeMv+xzpGankpKdQrYt27k6tI3EzEQSMxPZdmZbydcXUI/I4EiahjSlWUgz+1+L0BbUD6iP\nUpfjDVIQBEHwdFymuJVSszB29wlXSsVjePPxA9Baf4Th0ekGDK81mRhesZzCojS7dm6BaytPcVt8\nLIT4hxDiH2JsWHgJZOZlkpKdwtnssyRnJZOcmcyZrDMkZyWzJ34PtgAbSZlJpOaUtPdEUVKyU0jJ\nTmFn8s6LzgX7BdMitAUtQlsQFRpFyzotaRnakqiwKGpZnHUKJgiCIHgyLlPcWuvbyzmvgQcrWr7l\n7H6On82keX33DS0XEOQXRJBfEE1Dml50znH4JseWQ9KFJE5nnubUhVOcyjjFqQunOJlxkoSMBE5e\nOIk131pqPRl5Gew6u4tdZ3cViVcoIoMjaVOnDW3qtqF1nda0qdOGVmGt8Lf4V+q1CoIgCO7FYz2n\ntfGJZ8muU0y+srQNo6oftSy1aBbajGahzUo8b8u3cSbrDPHn4zlx/oT97/j54xxLP8aFvAsl5tNo\n4jPiic+IJy4+zh5vURaiQqNoV7cd7eq1o13ddnSo14GIwAgZchcEQfBQPFZxt1UJfPzHaY9S3OVh\n8bHQqHYjGtVuRK9GvYqc01pzNvssx9KPcTTtKEfTj3I47TBH0o6QkJFAvs6/qDybtnEo7RCH0g6x\n+Ohie3y9gHp0qNeB9vXa06l+JzrX61ziaIEgCIJQ/fBoxb31+DlOpWXROCzQ3eK4HKUU4YHhhAeG\n07NhzyLncmw5HE07ysFzBzl07hAHzx3k4LmDnDhf8p71KdkprDu5jnUnC3chDfUPJUJHcHDzQaLD\no+kS3oWGtRu69JoEQRCES8djFXeUOo0fVpbuSuSu/lHuFset1LLUon299rSv175IfGZeJgfPHWR/\n6n72pexjf+p+9qbsJdOaeVEZ6bnppJPOoT8O2eMaBDUgOjyarhFd6RbRjc71OxPgG+Dy6xEEQRBK\nx+MUd74yRPZV+USp0yz+o0GNV9ylEeQXRNeIrnSN6GqPy9f5nDh/gj0pe9h7di+7z+5m19ldpOem\nX5Q/KTOJ5ceXs/z4cgB8lS/t67UnpkEM3Rt0p3uD7jQIalBl1yMIgiB4ouL2KbSSbqviWXKkKWcz\ncqgfLMuhnMFH+diXlA2LGgYY8+cJGQnMXDqTWi1qsTN5J7vO7rrIKY1VW+1W7V/v+RqAyOBIejTo\nQa9GvejZsCfNQ5qL4ZsgCIIL8TjFbfPxA2yAMc/9Uz4s3Z3I7b2bu1cwD0YpRdOQpkTXimZEL8NL\nki3fMGzbeWYn289sZ/uZ7RxOO3xR3oSMBBIyElhweAEAEYER9GzYkysaXUHvRr1pEdpCFLkgCEIl\n4nGK2+hxGz3Btj4JYIPFf5wWxV3JWHwsxjKyuu24pd0tAKTlpLHjzA62Jm1la9JWdibvJMeWUyTf\nmawzLDm6hCVHlwDGPHnvRr3p07gPfRv3pVHtRlV+LYIgCN6Exylum/KjQHG3UQkArDuYzLnMXOoE\nibMRVxJWK4xBTQcxqOkgAPJseexO2c2WxC1sStzE1sStnM8rur99UmYSCw8vZOHhhQBEhUbRt3Ff\n+jbpS59GfQj2D67y6xAEQfBkPE5xO85xt/Y5hQUb1nwLS3cnMrZXyY5NBNfgZ/GjW0Q3ukV0Y2KX\nidjybexP3c/vp3/n99O/sylxExl5GUXyHE031qDP3jcbi7LQLaIbAyIHMKDJADrW74iP8pzdfQRB\nENyBxylurXwgNBLSE/DDSguVyGHdhJ92nhLF7WYsPhY61u9Ix/odubPznVjzrexN2ctvp37jt1O/\nsSVpS5GhdZu2sSVpC1uStvDe1veoF1CPgZEDGRg5kP5N+hNWK8yNVyMIglA98TjFDUBEe0g3hsnb\nqgQO6yasOSDD5dUNXx9fuoR3oUt4F/4c/WdybDlsTdrK+pPrWX9yPXtS9hRJn5KdwvxD85l/aD4+\nyoduEd0Y3HQwsc1iaRXWSozcBEEQ8FjF3QEO/QrAoDpn+TkFrPlahsurObUstYz57cZ9eaznYyRn\nJbP+5Hq7F7eU7BR72nydbzeCe3vL2zQNbkpss1iGNBtCj4Y98PXxzFtXEAThcvHMt19EoYewviFn\nwHzfL9ohw+WeRHhgOCNbj2Rk65Hk63z2nN3DqoRVrIlfw87knWi0PW18Rjxf7fmKr/Z8RVitMAY3\nHUxEZgS983oT5Of+HeIEQRCqCg9V3B3sh83zC/1xrxXrco/FR/nQObwzncM7c3+3+0nJTmF1/GpW\nxq9kbcLaIm5a03LSmH9oPgBff/s1AyIHcE2LaxjcdLCxn7ogCIIX45mKO7yd/dA/9SA9moawJf68\nMVy+K5GxV0iv29OpF1CPUW1GMarNKHJtuWw6vYkVJ1aw4sQKEjMT7emybdl2t6y+Pr70a9yPa6Ou\nZUizIWLcJgiCV+KZijuoHgQ3hIxEsGYzto1mS7xxatHOU6K4vQx/iz/9I/vTP7I/z/Z5lt0pu/n1\n+K8s2LOAU3mn7Oms+VZWJ6xmdcJqfH186d+kP9dFXceQZkOkJy4IgtfgmYobjHnuDKPndU1EKuAH\nyHC5t6OUonP9znSu35notGhadG/BsmPL+OXYL0Ws1K35VlbFr2JV/Cr8ffwZ1HQQw1oOY3DTwQT6\nev82sIIgeC+e6+3CYZ47POsIMc3qANiHy4WaQcuwlkzqOonvRn7H4tGLebzn43Su37lImtz8XJYf\nX87UlVOJ/TaWZ1Y/w9qEtVjzrW6SWhAEoeJ4sOJ22Hv6zD6GRze2BxfuPFVCBsHbaRrSlIldJjJ7\nxGx+Gv0Tj/V8jI71OhZJk2nNZOHhhUxZNoVrvr+Gf278J7vO7kJrXUqpgiAI1QsPVtyFPW7O7OX6\n6MLNK9YdTCb1Qq4bhBKqC81CmnFPl3v4buR3zLtpHvd3u5+o0Kgiac5mn+WrPV8xbuE4bp53MzP+\nmEFSZpJ7BBYEQXASL1Hc+2gaFlBkuPznXafdJJhQ3WgV1ooHYh5g/k3zmT1iNhM6TSA8MLxImkNp\nh5i+eTpD5wxlyi9TWHxk8UU7nwmCIFQHPNc4rXY4BIVDZjLkZcK5o4zo2phtJ84BsGDHScbJVp+C\nA46GbY/3fJyNpzay8PBClh1fRpbV2HEuX+ez9uRa1p5cS6h/KMNbDefmNjfTsX7HckoXBEGoGjy3\nxw3QsFPhceJuRnRtQoE76/WHzpJ0Pts9cgnVHl8fX/pH9ufVQa8SNzaOlwe8TO9GvYukSc9NZ9be\nWYxdOJYxC8Ywe+9szueeL6VEQRCEqsGzFXcDB+vhpD00Cgvgiqh6AORrWLxThsuF8gnyC2JUm1F8\net2n/HzLzzwY8yCRwZFF0uxN2csrv73CVd9dxd/W/I1tSdvEoE0QBLfg2YrbscedtAuAkd2a2KMW\nbD9Z1RIJHk6T4CZM6TaFn0b/xKfXfsrwVsOpZallP59ty2beoXlMWDyBWxbcwuy9s8nIzSijREEQ\nhMrFsxW3Y487cTcA13dphMXHGC/fdCyVhHNZ7pBM8HB8lA+9G/fmtUGv8evYX3m2z7O0q9uuSJoD\nqQeMXvj3V/Hi+hfZl7LPTdIKglCT8GzF7biW++xBsOYQHlyL/q3r26MX7ZBet3B5hPqHcnuH25kz\ncg7f3PANo9uOLuJ9LcuaxZz9c7h1wa3ctfgulhxZQp4tz40SC4LgzXi24q4VDHWjjGNtgzNGj6fo\ncLk4YxEqB6UU0RHRvNj/RZaPWc4zvZ+hdVjrImm2JG1h6qqpXPu/a/n3tn+TnJXsJmkFQfBWPFtx\nw0UGagDXdW6Ev8W4tJ0JaRxJvuAOyQQvJsQ/hD91/BNzR83l82Gfc33U9fiqwtWVyVnJfLj9Q4bO\nGcozq58hwZrgRmkFQfAmPF9xl2CgFhbox+D2EfbohWKkJrgIpRQ9G/bkX4P/xdJbl/JAzANEBBbe\ne9Z8KwsPL+T9tPe5c/GdLD26FFu+zY0SC4Lg6Xi+4m7g4BjDNFCDosPl87eflKU7gsuJCIrg/m73\n8/OtP/P6la8TExFT5PzWpK08sfIJhs8dztd7vuZCnowECYJw6XiB4nYcKi9U3Nd0bECgnwWAA0kZ\n7EsUxxlC1eDn48ewlsOYecNMZg2fxfBWw7FgsZ9PyEjgtY2vMfT7oby1+S3xjy4IwiXh+Yq7fmuw\nmHtvpydAluHyNMjfl6s7NrAnm79NhsuFqqdLeBdeG/QaT9V9iknRkwirFWY/dz7vPJ/98RnX/e86\nXlj7AofPHXajpIIgeAqer7gtfhDusCzMNFCDYtblO2S4XHAfoT6hPNLjEX659Rf+1udvtAhtYT9n\nzbcy9+BcRs0bxcO/Psy2pG1ulFQQhOqO5ytuKNFADSC2fQShAYal74mULLYcT61qyQShCIG+gdzW\n4Tbm3zSfd4a8c9E8eNyJOCYsnsDEJRNZm7BWPjYFQbgI71DcpRio1fK1cEN0Y3v4x60yXC5UD3yU\nD1c1v4qZN8zky+u/ZEizIUXOb0rcxJRlU7ht4W38cuwX8nW+myQVBKG64SWKu2QDNYBRMYWbRSza\neYo8m7wAhepF9wbdefeqd5k3ah6jWo8qsh58T8oeHo97nFvm38JPh3+SpWSCIKA8ZShOKTUSGNmo\nUaNJs2bNKnKuVvYZ+m24F4A839qsHfA1Bft75mvNE3FZpOYY1/lYz1p0i6i6bcgzMjIIDg6usvou\nh7S0NMLCwspPWE3w1rZNsaawPH056zPWk6eLuk5t4NuAa8OupVftXliUpZQSLh9vbVt340ntCtK2\nrmTIkCGbtda9KpLXYxR3AW3bttUHDhwoGqk1vNYCctKM8GO7Iaywp/3qT3v4eJVhsTsqpgnvjOte\nVeISFxdHbGxsldV3OSxcuJARI0a4Wwyn8fa2Tc5KZubumczeO5tMa2aRc81CmnFf1/sY3mo4vj6V\n/yHq7W3rLjypXUHa1pUopSqsuL1jqFypYgZqxYfLC63Ll+5K5EKOtaokE4QKEx4YzmM9H+PnW37m\nvq73EeIXYj934vwJ/rb2b4z6cRTzD83Hmi/3tCDUFLxDcUMxA7VdRU51ahxK2wbGEEpWno1fdidW\npWSCcFnUCajDQ90f4udbf+ahmIcI9Q+1nzt+/jjPrXmOm+fdzJIjS8SITRBqAF6kuEvvcSuluKl7\n4dD5j9tkwwfB8wjxD+G+bvex5JYlPBjzICH+hT3wo+lHmbpqKmMWjGHF8RWyjEwQvBjvUdwNS7cs\nB7jRwRnL6gPJJGfkVIVUglDphPiHMKXbFJbcsoQHuj1AsF+hQc7+1P08suIRxv80ng2nNrhRSkEQ\nXIX3KG7HofIz+8FWdM6vWb0gerWoC4AtX7Noh+zTLXg2of6h3B9zP0tuWcK90fcS6BtoP7czeSeT\nlk5i8tLJ7EreVUYpgiB4Gt4SRLTbAAAgAElEQVSjuAPrQojZq7blQMqhi5KMchgunyfD5YKXEFYr\njL/0+AuLRy9mQqcJ+Pv428+tP7WecYvG8Xjc4xxNO+o+IQVBqDS8R3FDUcvyxIt7GcOjG+PrY6zv\n3nL8HMfOyraKgvdQP7A+T13xFItGL+KWtrfgowof71+O/cJN827i5Q0vk5yV7EYpBUG4XLxMcXcp\nPE7846LT9Wr7E9s+wh6eu1V63YL30ah2I6b1n8bcUXMZ2mKoPd6mbXy771uG/zCcj7Z/RGZeZhml\nCIJQXfEuxd0ouvD49M4Sk9zcvan9+IctCWJ9K3gtrcJa8VbsW8waPosrGl1hj8+0ZvLBtg8YMXcE\ncw/MFTeqguBh1DjFfXXHBoSYO4YdT8lk8zHZMUzwbrqEd+HTaz/lg6s/oE2dNvb4M1lneGHdC9y2\n8DaxQBcED8K7FHf9NlBgWXv+FFy4eC4vwM/CiK6FS8P+t0WGywXvRynFlU2vZM7IObzU/yUaBDaw\nn9uXuo9JSyfx0PKHxIBNEDwA71LcPpaiy8JK6XWP7uGwY9iOk2TnyVChUDOw+Fi4ue3NLLh5AQ90\ne6DIErKV8Su5ed7NvP7762Tmy/y3IFRXvEtxg1PD5b1a1KVZPeOFlZ5t5de9SVUhmSBUG4L8grg/\n5n4W3LSAUa1HoTBWW1i1lS93f8n/Jfwf3+//Xua/BaEaUiMVt1KqmJFavKulEoRqScPaDXl54MvM\nHjGbHg162OMz8jN4af1LjFs0jq1JW90ooSAIxfFuxV3CkrACRjs4Y4nbd4az4gJVqMF0qt+Jz4d9\nzuuDX6dx7cb2+L0pe7lz8Z08u/pZzmSecaOEgiAU4H2K29Fn+Zl9kJddYrKo8Nr0NF2gWvM1C7af\nrArpBKHaopRiWNQw5t80nxvCbiDAEmA/t+DwAkb+OJIvdn1BXn6eG6UUBMH7FHetEKjXyjjWNjiz\np9SkNzv0un8QZyyCAECAbwDX17meeTfNK+LA5ULeBd7Y9AZjF4xlc+JmN0ooCDUb71PcUGyeu/Th\n8hFdG+NvMZpgR3waB5POu1oyQfAYmgQ34a3Yt/h46Me0Cmtljz947iB3L7mb59Y8x9mss26UUBBq\nJt6puBuWb6AGUCfIn6s7Fq5nlTXdgnAx/Zr0Y86Nc3ii5xNFlo/NPzSfkT+O5Pv935Ov890ooSDU\nLLxTcTthWV7A6B5Frctt+eICVRCK4+fjx91d7mb+TfOLDJ+fzz3PS+tf4q7Fd3Eg9YAbJRSEmoP3\nK+7EP6AMf+Sx7SMIDza2QUxMz2H1AbGcFYTSaFS7EW/FvsWH13xIs5Bm9vhtZ7YxdsFY3t78NlnW\nLDdKKAjej3cq7tAmxv7cADnpcO5YqUn9LD7cFFNopPb9ZlnTLQjlMTByID/c+AOTu07G18fw/W/V\nVj7941NGzxvN+pPr3SyhIHgv3qm4lbqk4fJbexUOl/+yK5G0TFnuIgjlEeAbwMPdH2bOyDlFnLfE\nZ8Qz+ZfJPL/2edJy0twooSB4J96puAEadS08Lkdxd2gUSnRkGAC5tnzmbxcjNUFwltZ1WvPZsM+Y\n1m8aIf4h9vgfD/7IjT/eyJKjS2T7XEGoRLxXcTfsUnhcxpKwAsY49LrnyHC5IFwSPsqHW9rdwvyb\n5nNti2vt8SnZKUxdOZVHVzwqntcEoZLwXsV9CUPlADd2a2Jf0709Po39ibKmWxAulfDAcN6MfZN3\nhrxTZOvQX0/8yk3zbmL+ofnS+xaEy8R7FXd4O7AY1uKkHYes1DKT1wnyZ2inhvbw95tOuFI6QfBq\nrmp+FT/e9CNj2o2xx6XnpvPcmud4cPmDnL5w2o3SCYJn472K29cfItoXhp0YLnc0Upu79SR5NnEq\nIQgVJcQ/hBf6vcB/r/0vkcGFKzdWJ6xm9LzRzDs4T3rfglABvFdxQ1EDtTJ2CitgUJtwGoTUAiA5\nI4eV+2ROThAul76N+/LDjT8wvuN4+77f5/PO87e1f+ORXx8hOSvZzRIKgmfh5YrbYZ771I5yk/ta\nfIp4Uvt+swyXC0JlEOQXxF97/5XPhn1WxHFLXHwcN827iSVHlrhROkHwLGqO4nbCQA3g1p6Finv5\nniSSZZ9uQag0ejbsyZyRcxjXfpw9Li0njamrpvLUyqdk3bcgOEHNUdxn9pS6N7cjbRoEF9mne65s\nPCIIlUqQXxDP9X2O/177XxrXbmyPX3x0MaPnj2bdyXVulE4Qqj/erbgDwqBea+M43wqJu5zKdtsV\nhUN5s38/LgY0guACCua+b25zsz0uKTOJ+365j1d/e1V8ngtCKXi34gZo3K3w+NRWp7IMj25MbX8L\nAIfOXGDL8bKXkgmCUDGC/YN5acBLvD3kberWqmuPn7V3FuMWjmNfyj43SicI1RPvV9xNYgqPT213\nKkvtWr7cGNPEHp69UYzUBMGVXN38an4Y9QODmw62xx1OO8zti27ny11fetV+30opnnjiCXv4jTfe\nYNq0aWXmiYuLY926yp1CiIqKIjn5Yov+qKgooqOj6datG88//zynT1/amvsXXniBZcuWOZ0+Li6O\nESNGlHq+Z8+e5ObmFomLjY2lffv2dOvWjQEDBrBv36V94H300Ud8+eWXTqc/evQoXbp0KT9hFeH9\niruxg+I+uc3pbGN7FQ6XL9xxivPZsvGIILiS8MBw3rvqPV7o9wKBvoEA5OXn8fqm17l/2f1e4zK1\nVq1a/PDDDyUqzdKoiOK22WyXKpqdFStWsH37dtq2bcurr756SXW+9NJLXHPNNRWu25GjR48SGRmJ\nv7//Ree+/vprtm/fzl133cXUqVOdLtNqtTJlyhTuvPPOSpHRHdQAxe0wVJ60B6zOWYnHNKtD+4bG\nhglZeTYW7jjlCukEQXBAKcWYdmP4dsS3dKrfyR6/7uQ6bpl/C6viV7lRusrB19eXyZMnM3369IvO\nLViwgD59+tC9e3euueYaEhMTOXr0KB999BHTp08nJiaG1atXc/fddzNnzhx7vuDgYMBQ8EOGDOFP\nf/oT0dGGce5NN91Ez5496dy5Mx9//PElydq5c2cOHjwIwNKlS+nXrx89evRgzJgxZGRkAEYP/aWX\nXmLgwIF8//33RWRbvnw53bt3Jzo6mnvuuYecHOP9u2TJEjp06MDAgQP54YcfSq1/8eLFDBs2rEwZ\nr7zySruMmzdvZvDgwfTs2ZPrrruOU6eM93ZsbCzPPvssgwcP5p133mHatGm88cYbAGzbto2+ffvS\ntWtXbr75ZlJTU+1ldevWjX79+vHBBx9cUru5Gu9X3IF1oG5L4zg/z2kDNaUUY4sYqclwuSBUFS3D\nWvLV9V9xT5d77E5bUnNSeXD5g/zr93+Ra8stp4TqzYMPPsjXX39NWlrR5W8DBw5kw4YNbN26lXHj\nxvGvf/2LqKgopkyZwmOPPca2bdsYNGhQmWVv3LiRV155hd27dwMwY8YMNm/ezKZNm3j33Xc5e/as\n03L+/vvvREdHk5yczMsvv8yyZcvYsmULvXr14q233rKnCwgIYM2aNYwbV7jMLzs7m7vvvptvv/2W\nnTt3YrVa+fDDD8nOzmbSpEksWLCA1atXlzkUv2TJknIV94IFC4iOjsZqtfLwww8zZ84cNm/ezD33\n3MNzzz1nT3fu3DlWrlxZZJoC4M477+Sf//wnO3bsIDo6mhdffBGAiRMn8u6777J+ffXbW96lilsp\nNUwptU8pdVAp9dcSzjdXSq1QSm1VSu1QSt3gEkGKGKg5N88NcHP3yMKNR06cY+/p9MqWTBCEUvCz\n+PFYz8f45NpPimxYMnP3TO746Q6OpR9zo3SXR2hoKHfeeSfvvvtukfj4+Hiuu+46oqOjef3119m1\ny7mOhiO9e/emZcuW9vC7775Lt27d6Nu3LydOnODAgQPlljFkyBBiYmLIzMzkmWeeYcOGDezevZsB\nAwYQExPDF198wbFjhe1/2223XVTGvn37aNmyJe3atQPgrrvuYtWqVezdu5eWLVvStm1blFLccccd\nJcqQm5tLfHw8rVq1KvH8+PHjiYmJYe3atbzxxhucOHGCP/74g6FDhxITE8PLL79MfHzhTo8lyZiW\nlsa5c+cYPHhwERmLx0+YMKHcNqtKfF1VsFLKAnwADAXigd+VUvO11rsdkv0N+E5r/aFSqhPwExBV\n6cI0iYHdPxrHp5yf565X25+hnRuyyBwm//b3E/x9ZOdKF08QhNLp3bg3c26cw/Nrn2dl/EoA9qTs\nYeyCsfy939/dLF3FefTRR+nRowcTJ060xz388MM8/vjj3HjjjcTFxZVqtObr60t+vmGwp7UuYrxV\nu3Zt+3FcXBzLli1j/fr1BAUFERsbS3Z2+f4sVqxYQXh4OAsXLqROnTporRk6dCizZs0qMb1jnQWU\ntYxWKVWuDKtXr2bgwIGlnv/666/p1atXkfo6d+5cag+5JBlLQ2vtlIzuwpU97t7AQa31Ya11LjAb\nGFUsjQZCzeMw4KRLJKmggRrAOIfh8rlbE8ixVtzgQxCEilE3oC7vXfUeT1/xNH4+fgBkWjN5evXT\nzM2YS7a1fGVU3ahXrx5jx47l008/tcelpaURGWlsyPLFF1/Y40NCQjh/vnCr4aioKDZv3gzAvHnz\nyMsr2Xg2LS2NunXrEhQUxN69e9mwYUOFZO3bty9r1661zyVnZmayf//+MvN06NCBo0eP2vPMnDmT\nwYMH06FDB44cOcKhQ4cASv0YWLJkCddff73TMjZr1owzZ87YFXdeXl65IxZhYWHUrVuX1atXF5Gx\nTp06hIWFsWbNGsD4SKhOuFJxRwKOE8PxZpwj04A7lFLxGL3th10iSREDtd1gdX5+bEDrcCLrGBau\n5zLz+HlXYmVLJwiCEyiluKPTHXx1w1e0CG1hj9+Ys5HxP43nSNoRN0pXMZ544oki1uXTpk1jzJgx\nDBo0iPDwcHv8yJEjmTt3rt04bdKkSaxcuZLevXvz22+/ldqbHDZsGFarla5du/L888/Tt2/fCskZ\nERHB559/zu23307Xrl3p27cve/fuLTNPQEAAn332GWPGjCE6OhofHx+mTJlCQEAAH3/8McOHD2fg\nwIG0aNGixPxxcXH2oWpn8PPzY86cOTz99NN069aNmJgYpyzxv/jiC6ZOnUrXrl3Ztm0bL7zwAgCf\nffYZDz74IP369SMwMNBpOaoC5SqvYEqpMcB1Wut7zfAEoLfW+mGHNI+bMryplOoHfAp00brook2l\n1GRgKlAnIiIifMaMGZcsz5Adj1I711hOsqrTK6QHRTmdd/FxWHTcGDZpF6Z5JLqcDA7YbDYsFsul\niOo2PElW8Cx5PUlWqP7yZudnM/fCXHbkFm4e5I8/o4NH061WtzJyupfq3q7FcZe8ycnJvPfee3ZD\nMWfwtLYdOXLkZq11r/JTXowrFXc/YJrW+joz/AyA1vofDml2AcO01ifM8GGgr9Y6qbRy27Ztq50x\nrriIbyfAnvnG8ch3oeddTmc9nZbNgH/+ii3faKtfnxhMq4hgp/LGxcURGxt7qdK6hYULF5bpCKG6\nIW3rOjyhbbXWfL//e/6x4R9Ysdrjb+9wO1N7TcXP4udG6UrGE9rVEU+6bz2tbZVSFVbcrhwq/x1o\nq5RqqZTyB8YB84ulOQ5cDaCU6ggEAK7xslDEg9qlzXM3Cgvgqg6FVq2yNEwQ3I9SirHtx3J/2P00\nD2luj5+1dxZ3/3w3py9cmscvQfAUXKa4tdZW4CHgZ2APhvX4LqXUS0qpG81kTwCTlFLbgVnA3dpV\nQwCXYaAG8Kc+hS+GOZvjxUhNEKoJTXybMHvEbK5ufrU9bseZHYxdMFZ2GhO8Epeu49Za/6S1bqe1\nbq21fsWMe0FrPd883q21HqC17qa1jtFaL3WZME26Fx4n7gLbpbkwvbJthN1ILeVCLkv+kK95Qagu\nhPiHMD12Ok/2ehKLMuY5U3NSmfLLFD7Z+Yns8Cd4Fd7vOa2AoHoQZvaabTlwpmyLyOJYfFSRpWGz\nNh6vTOkEQbhMlFLc1fkuPrn2E8IDDYtsjeadLe/weNzjXMi74GYJBaFyqDmKG6Bx18LjCgyXj72i\nGRYfw7p8w+EUDp3JqCzJBEGoJHo16sX3I7+nR4Me9rhlx5fxp0V/8sglY4JQnJqluC/DQA2gYWgA\nVzsaqUmvWxCqJeGB4Xxy3SeM7zjeHlewTWjciTj3CSYIlUDNUtyNHea5L8FnuSO3FzNSy84TIzVB\nqI74+fjx195/5dWBr1LLUguAC3kXeOTXR/jvjv/KvLfgsdQsxe3Y4z79B9ispactBUcjtdTMPH7e\nJUZqglCdGdl6JDOvn0lksOG4UaN5d+u7PLnySTLzMt0snSBcOjVLcdcOh9CmxrE1C87sueQiLD6K\n23sXGql9vUGGywWhutOxfkdmDZ/FFY2usMctPbaUOxffSUJGghslE4RLp2YpboBIh+HyhC0VKmJs\nr2b4mkZqG4+msO/0+XJyCILgbuoG1OU/Q//D7R1ut8ftS93H7QtvZ0tixd4FguAOaqDi7ll4nLC5\nQkU0CA3gus6N7OGvf/PcfYEFoSbh5+PHs32eZVq/afj6GLsap+ak8uelf+bHgz+6WTpBcI4arrgr\n/pU9vm+hkdoPWxLIyLn0+XJBENzDLe1uYcZ1M6gXUA8Aa76V59c+z1ub3sKWLwanQvWm5inuxjGA\nuUF60m7IrZhThn6t6tM6wthKLyPHyo9bZZ5MEDyJ7g26M2v4LNrWbWuP+2zXZzy64lExWhOqNTVP\ncQeEQkR741jb4NSOstOXglKKCX0L95H9asMxWV4iCB5Gk+AmzLx+JrHNYu1xcfFx3LXkLtmkRKi2\n1DzFDZUyzw0wumdTAv0Mv8h7T59n87HUy5VMEIQqprZfbd6OfZuJXSba4/am7GX8ovHsOXvpK08E\nwdXUUMVd6ArxchR3aIAfN3VvYg9/tUGM1ATBE7H4WHi85+O81P8lfJVhtJaUlcRdS+5i5YmVbpZO\nEIpSQxV35fS4Acb3KRwu/2nnaZIzci6rPEEQ3MfNbW/mw6EfEuIXAkCWNYtHVjzCN3u+cbNkglBI\nzVTcDTqD6QKRc8fgQnKFi+oSGUb35nUAyLXl892mE5UhoSAIbqJv477MvKHQ01q+zucfG//Bm5ve\nJF/nu1k6QaipitvXv+hOYZexLAwoYqT2zW/HseWLkZogeDKt67Tmqxu+omt44Xvi812f8/Sqp8m1\n5bpRMkGoqYobKnW4/IboxtQN8gMgPjWLX/cmXVZ5giC4n4IdxoY0G2KPW3J0CZN/mUxaTpobJRNq\nOjVYcfcqPL5MxR3gZ+G2Kwodsny5/uhllScIQvUg0DeQ6bHTGdd+nD1uc+Jm7losy8UE91GDFXcx\ny/LLXIN9R9/mmO7LWX0gmYNJGZdVniAI1QOLj4Vn+zzL4z0ft8cdSjvEHT/dwcHUg26UTKip1FzF\nXa8VBBhGZWSlQOrRyyquad0grunY0B6WXrcgeA9KKSZ2mcg/B/3T7uM8MTORu5bcxbakbW6WTqhp\n1FzFrVSlznMD3N0/yn78v83xnM/Ou+wyBUGoPtzQ6gb+ffW/CfINAiA9N517l95L3Ik49wom1Chq\nruKGSttwpIB+revTrmEwABdybczZHH/ZZQqCUL3o16QfM4YVblCSY8vhLyv+IruLCVWGKO4CKqHH\nrZTizn5R9vDM9cfIF//lguB1dK7fmZnXz6RpcFPAWOv9/Nrn+XLXl26WTKgJ1HDF7WCgdmo72C5/\naPvm7pGEBBhzYIeTL7ArWbYIFARvpHloc2beMJP2ddvb417f9DrvbX1PNhwSXErNVtzBDSDMXMZl\nzYKky99QoHYtX8b0bGYPLzsu+3QLgrcSHhjOjGEz6NGgsBPw8Y6PefW3V8XLmuAyarbihmLLwjZV\nSpF39muBMpeG7Thj49jZiu35LQhC9SfUP5SPhn7EwMiB9rjZ+2bz7JpnsebLh7tQ+Yjidpznjr/8\neW6AqPDaxLaLAEADX6yTXcMEwZsJ9A3k3SHvMixqmD1u0eFFTF05lbxKmIITBEdEcTfrXXh84rdK\nK/buAS3tx99tOiFLwwTBy/Gz+PHaoNcY026MPW7Z8WU8suIRsq3ZbpRM8DZEcTeOAR/DzzhnD0Bm\nSqUUe2XbcNo0MJaGZeRY+X6TLA0TBG/H4mPh+b7Pc2enO+1xaxLW8ODyB8nMy3SjZII3IYrbLwAa\ndysMx/9eKcUqpZg4IMoe/nzdUdk1TBBqAEopnuz1JPd1vc8et/H0Rib/Mpms/Cw3SiZ4C6K4wWXD\n5aO7N6W22Zk/npLJ8j2JlVa2IAjVF6UUD3V/iEd7PGqP235mO+8nvk96brobJRO8AVHcUExxb6y0\nYgP9LQxu6mcPz1h7pNLKFgSh+vPn6D/z195/tYeP5x7n3p/vlW1BhctCFDdAUwfFnbAZbJW3hOPq\n5r5YzG3DNhxOYddJeWAFoSYxvuN4nu/7vD28J2UP9y69l9TsVDdKJXgyorgBwiIh1HBdSF4mJO2q\ntKLrB/pwfZdG9vBna49WWtmCIHgGY9uP5cX+L6IwPuL3puzlz0v/TEp25RjDCjULUdwFuGi4HOCe\ngYVLw+ZvO8mZ8zmVWr4gCNWf0W1HM77+eLvyPpB6QHreQoUQxV2ACxV3j+Z1iWlm7P2da8vn69/E\nIYsg1ET6BPfhlYGv4KOMV2+B8j6Xfc7NkgmehCjuAlxkWV6AY6/7qw3HyM6TzUcEoSYysvVIXh34\nql1570/dz6RfJonBmuA0orgLaBgNvgHG8bljcL5yl25d36URjcOM8pMzcvlxa0Klli8IgucwvNVw\nXh7wcpE570lLRXkLzqE8Zfs5pdRIYGSjRo0mzZo1yyV1xGx9hjppuwH4o/NfSY7od9llZmRkEBxs\neFBbfCSPb/flAtCktuLlgYH4FOxGUg1IS0sjLCzM3WI4jWPbVnekbV2HJ7Vt8XbdkLGBb85+g8Z4\nDzf3b85DDR8i0CfQXSIWwZPbtrozZMiQzVrrXhXJ61vZwrgKrfUCYEHbtm0nxcbGuqaSvKGw1lDc\nXcIuQCXUExcXR4G8Pfrmsegfv5KRY+XkBY1q3JnYDg0uu47KYuHChbisbV2AY9tWd6RtXYcntW3x\ndo0llnYH2vH3dX8HjHXes3Jm8dE1HxHkF+QmKQvx5Lb1ZmSo3JFmfQqPT1SO61NHQgP8uO2Kwr26\n/7v6cKXXIQiCZzG67egi67y3Jm3lkV9lYxKhdERxO+LoiOXkVrDmVnoVEwdE2R2yrDt0lj8SZE5L\nEGo6Y9uP5akrnrKHfzv9G4/HPS5bggolIorbkeAIqGtaf9ty4PSOSq+iad0gbohubA9/Ir1uQRCA\nCZ0m8Jcef7GHVyes5qlVT2HNrzxPjoJ3IIq7OC5eFgYwaVDh0rCFO05xKk12DBIEAe6NvpfJXSfb\nw8uOL+Pv6/5Ovs53o1RCdUMUd3Fc6IilgK5N69C7ZT0ArPmaz8UNqiAIJg/FPFRkP+/5h+bz+u+v\n4ykrgATXI4q7OE2L9bhd9LBMHtTKfvzNb8c5ny1zWYIgFO7nfUvbW+xxX+35io+2f+RGqYTqhCju\n4jTsDP4hxvH5U5B61CXVXNWhAa0iahvV5FiZvfGES+oRBMHzUErxfN/nubbFtfa4f2//N1/v+dqN\nUgnVBVHcxfGxFB0uP77eNdX4KCY59Lo/XXOEXKvMYwmCYGDxsfDaoNfo36S/Pe61ja8x/9B8N0ol\nVAdEcZdECwePacfWuayam7tHEhFSC4DT6dnM2yZuUAVBKMTP4sf02OnERMTY415Y+wKr4le5USrB\n3YjiLokWAwqPXdTjBgjwszBxQJQ9/J9Vh8nPFwMUQRAKCfIL4v2r36dd3XYA2LSNJ1c+yfYz290s\nmeAuRHGXRJMeYPE3js8ehIwkl1U1vk8LgmsZnmcPJmXw617X1SUIgmcSViuMD6/5kMjgSACyrFk8\nuPxBDqeJH4iaiCjukvALgMiehWEX9rrDAv34U5/m9vBHKw+5rC5BEDyXBkEN+Oiaj6hbqy4AaTlp\nTPllCokXKncnQ6H6I4q7NJo7znO7TnED3DOgJX4Www3qpmOpbDqa4tL6BEHwTKLCovjg6g8I9DV2\nDzt14RRTlk0hPTfdzZIJVYko7tJoUWjJybG1Lq2qUVgAN3ePtIc/WinDX4IglEx0RDTTY6fjq8wp\ntnMHeWzFY+TaKn9vBaF6Ioq7NJr1BnOTexL/gGzXftFOvrJwadiyPYkcSDzv0voEQfBcBkQO4KUB\nL9nDG09v5IV1L4h3tRqCKO7SCAiDRl2MY53vMvenBbRpEMLQTg3tYel1C4JQFiNbj+SR7o/Yw4sO\nL+K9re+5USKhqhDFXRZFloW5bj13AVMGt7Yfz9uWQHxqpsvrFATBc7k3+l5ubXerPfzfnf/l+/3f\nu1EioSoQxV0WVWigBtCzRV36tircfOTjVdLrFgShdJRSPNfnOQZFDrLHvbLhFXHQ4uWI4i4LRwO1\nhM2Ql+3yKh8c0sZ+PPv3EySdd32dgiB4Lr4+vrwx+A061e8EGA5apq6cyr6UfW6WTHAV5SpupdQX\nSqk6DuG6SqkZrhWrmhDcAOqZw9e2HDi5xeVVDmwTTtemYQDkWvOZseaoy+sUBMGzCfIL4oOrP6BJ\n7SYAZFozeejXhziTecbNkgmuwJked1et9bmCgNY6FejuOpGqGVXkt7wApRQPxBb2ur/acIy0TNny\nUxCEsgkPDOf9q9+ntp+x6+DpC6d55NdHyLJmuVkyobJxRnH7KKXqFgSUUvUAX9eJVM1o7jBc7kIP\nao5c26khbRoEA5CRY+XL9UerpF5BEDybtnXb8sbgN/BRxqv9j7N/8Nya58jXsvOgN+GM4n4TWKeU\n+j+l1P8B64B/uVasaoRjj/vERsi3ubxKHx/FA7GFFuYz1h4hM9fq8noFQfB8BkYO5Jnez9jDvxz7\nRZaJeRnlKm6t9ZfALZaWMMEAACAASURBVEAikASM1lrPdLVg1Ya6LSGksXGck244Y6kCRnZrQtO6\nhlvD1Mw8Zm08USX1CoLg+YzrMI47Ot5hD3+y8xMWHFrgRomEyqRUxa2UCjX/1wNOA98AXwOnzbia\ngVJFrcuPrqmSav0sPtznsK7741WHyLG6vrcvCIJ38GSvJ7my6ZX28LR109hxZocbJRIqi7J63N+Y\n/zcDmxz+CsI1h6iBhcdHVldZtWN6NiUipBYAiek5fL8pvsrqFgTBs7H4WPjnoH/SOszoAOTm5/Lo\nikdlNzEvoFTFrbUeYf5vqbVu5fDXUmvdqrR8XklU4Vcrx9ZVyTw3QICfhcmDCpv6w7hD5FrFyEQQ\nBOcI9g/mvaveI6yWscT0TNYZ/rLiL2RbxT+EJ+PMOu7lzsR5NfVbO8xzp8Gp7VVW9fi+zalX2x+A\nhHNZzN0qvW5BEJynWWgz3hz8JhZlAWDX2V2yIYmHU9Ycd4A5lx1uOl2pZ/5FAU2qSsBqgVIQVehS\nkCNV504wyN+XSQ697g9WHMJqk163IAjO06dxH57u/bQ9vPjIYj7b9ZkbJRIuh7J63PdhzGd3MP8X\n/M0DPnC9aNWMlg6K+2jVzXMDTOjXgjpBfgAcT8lk3raTVVq/IAiez7j24xjTbow9/M6Wd1iX4Hqn\nUkLlU9Yc9zta65bAkw5z2y211t201u9XoYzVA8ce97H1YKs6b2bBtXz584CW9vAHKw5iy5dhLkEQ\nnEcpxTO9n6FHgx4A5Ot8pq6ayonzstTU03DGActppVQIgFLqb0qpH5RSPVwsV/WjbhSENTOO8y7A\nya1VWv1dA6IICTAc1h1OvsDCHdLrFgTh0vCz+PFm7Js0CGwAQHpuOo+ueJTMPNlC2JNwRnE/r7U+\nr5QaCFwHfAF86FqxqiFunOcGCA3wY6JDr/v9Xw+SL71uQRAukfDAcN4a8hZ+Psb02/7U/UxbP02M\n1TwIZxR3wdqn4cCHWut5gL/rRKrGuHGeG+CeAVEE1zJ63QeSMlj8x+kql0EQBM+nW0Q3nu3zrD28\n+Mhivtz9pRslEi4FZxR3glLqP8BY4CelVC0n83kfjj3u47+BNadKq68T5M9d/VvYw+8s3y+9bkEQ\nKsSt7W7l1na32sPTN09nc+JmN0okOIszCngs8DMwzNzesx4w1aVSVVfqNDN8lwNYsyCh6m/yewe2\nsve69ydmsGjnqSqXQRAE7+CZ3s/QNbwrADZt48mVT5KclexmqYTyKNdXORAAxAFnzXXdOdQ0l6eO\nOA6XV6H70wLq1vbn7v5R9vDby/aLhbkgCBXC3+LPm7FvUreWsXNzclYyU1dOxZovuxFWZy7FV7nj\nWu6aq7gd3Z+6YZ4b4N5BLQkxe92HzoiFuSAIFadR7Ua8duVrKBQAmxI3yTag1ZwyfZUrpRQwuNg6\nbqd9lSulhiml9imlDiql/lpKmrFKqd1KqV1KqW9KSlOtcOxxn9gIeVXv87dOkD8TB0TZw+8sPyC9\nbkEQKkz/Jv15IOYBe3jGHzNYcXyFGyUSyqLMOW5trA+YW5GClVIWDA9r1wOdgNuVUp2KpWkLPAMM\n0Fp3Bh6tSF1VSkgjqN/WOLblQPxGt4jx54GtCtd1n7nA/O0JbpFDEATvYHLXyQyMLNwJ8bk1z5Fi\nS3GjREJpOGOctkEpdUUFyu4NHNRaH9Za5wKzgVHF0kwCPtBapwJorZMqUE/V09J967kLCAvy4x6H\ndd3vLj8oPswFQagwPsqHfwz8B41rGxsqnc87z6zzs8irQi+RgnM4o7iHYCjvQ0qpHUqpnUopZ3Zj\njwQcfenFm3GOtAPaKaXWKqU2KKWGOSe2m3FcFnZ4pdvEuGdgS3uv+0jyBfFhLgjCZVEnoA5vDn4T\nXx/jvRJvi2f6lululkoojirPW45SqkVJ8VrrY+XkGwNcp7W+1wxPAHprrR92SLMQyMNYctYUWA10\nMZedOZY1GWMJWp2IiIjwGTNmlHddLsUv7zzXbr8fhSYfH5bG/Aerb1CJaW02GxaLxWWyLD4Oi44b\nRiXhAZrne4ClgqvsXS1rZeNJ8nqSrOBZ8oqslc+arDUsylxkD08ImUAn/05l5HA/ntK2BYwcOXKz\n1rpXRfL6lpdAa33MdHfaVmv9mVIqAgh2oux4oJlDuClQvEsY///s3Xd0VNXax/HvTickhBp6J5RQ\nEmpoYhCkCagUBRUEBCu2q+hVr/3awFevYldARQQpKkVQFKVLJ6F3CIQaWkghdfb7xxlmEoQwwEzO\nlOez1qx79rmZmZ/HyMPZZxdgldY6F9ivlNoJRAFrL8rwBfAFQFRUlO7du7cDX+9iJz6Fo4n4YaFH\ng1BodOlMixcvJj4+3mUxOmXlsvydv0g9n8vJLEVGxabcFVfjmj5r3rx5uMW1dZCrr60zybV1HU+6\ntp5yXW/Rt5DxZwaLkxcDMDt7NkO6DaFyWGVzgxXBU66tM1zx3kwp9TLwLMYgMoBA4DsHPnstEKWU\nqq2UCgIGAXMu+pmfMbriUUqVx+g63+dYdJPVvcl+vM+80ZelQgJ54Eb7IP/xf+4mKze/iHcIIUTR\nlFL8t+N/ifCLAIzNSJ5Z+gy5Fnne7Q4c6VS9HegLZABorY8A4Vd6k9Y6DxiNseradmC61nqrUuo1\npVRf64/9hrGwyzbgL2CM1vrU1f9jmKBOZ/vxXnOnTQxrX4vyYcEAHE3N4vvVB03NI4TwfBHBEQwO\nG4y/MrqfE1IS+HjjxyanEuBY4c6xTgvTAEqpko5+uNZ6vta6vta6rtb6Deu5l7TWc6zHWmv9L611\ntNa6qdZ62rX8Q5iiRlsIKGEcn94LZ4p85O9SoUEBPNK5rq39yeI9ZObIykdCiOtTM7Amjza3DUti\n4paJrDlqzhRYYedI4Z5u3WSktFJqFPAH8JVrY3mAgGCo2d7eNrG7HOCuuBpUiQgB4GR6DpNWHDA1\njxDCOwxvMpx2ldsBoNE8t/w5zmadvcK7hCtdsXBrrd8FZgKzgAbAS1rrD10dzCPUdZ/u8uAAfx7r\nEmVrf75kL6nn5XmUEOL6+Ck/3uj4hm098xOZJ2T/bpM5MjjtHa3171rrMVrrp7XWvyul3imOcG6v\n4AC1/UvAYu6gsP4tq1GznDEt7VxWHhOWecY4PyGEe6sQWoHXOrxmay86uIiZu2eamMi3OdJVfvMl\nzvV0dhCPFBkNYRWN4/Nn4GiiqXEC/f14smt9W3vC8v2cSi/ePcOFEN4pvno8gxoMsrXHrhnLvrNy\nc2CGorb1fEgptRloaF0x7cJrP7C5+CK6MaWgTry9vfdPs5LY9ImpQv2KxjT7jJx8Pvprj8mJhBDe\n4qlWT1GvdD0AsvKzeHbZs7IkqgmutK1nH2C29X8vvFpqre8uhmyeoeC0sH2LTYtxgb+f4uluDWzt\nKasOcuh0pomJhBDeIiQghLdveJsgvyAAdpzewSeJn5icyvcUta1nqtb6APABcFprnWRd5jRXKRVX\nXAHdXp14+/HBVZCTYVYSm5ujK9KiRmkAcvItvP/HLpMTCSG8RYOyDXiipX0jx4lbJpJwIsHERL7H\nkWfcnwLpBdoZ1nMCoFRl41k3gCUXklaamwdj1aNnezS0tX/aeJidx9JMTCSE8CZ3N7qbuErG/ZtF\nW3hu2XNk5krPXnFxpHArXWDcv9baggNrnPuUQquomf+cGyCuTjk6N6gAgNYw7redJicSQngLP+XH\n6x1eJyzQGE+TnJ7MuHXjTE7lOxwp3PuUUo8ppQKtr8fxlPXEi4sbzecu6JkeDVHGxmH8sf046w6c\nNjeQEMJrVA6rzPNxz9vaM3fNZGnyUhMT+Q5HCveDQHvgMMZuXnHA/a4M5XFqtgd/Y7AGKdsh9bC5\neawaVS7FrTFVbO13ft0hiyYIIZymd53e3FzTPmP4pRUvcSbrjImJfIMjK6ed0FoP0lpHaq0raq3v\n0lqfKI5wHiOoJNRoZ2/v+cO8LBf5180NCPQ3brvXHjjDXzvlX50QwjmUUrzY9kXKhZQD4FTWKd5a\n/ZbJqbyfIyunhSilHlFKfaKUmnjhVRzhPEpUgXVq9vxuXo6L1CgXyl1t7Ptzv71gB3n5FhMTCSG8\nSZmQMoVWVVtwYAF/JLnPzYs3cqSrfDJQCegOLAGqATJE+WJR3ezHexdDXo5pUS72aJcoSgYZW/Pt\nOp7OrA3JJicSQniTTtU6cWvdW23t11e9Ll3mLuRI4a6ntX4RyNBafwPcAjR1bSwPVL4+lLbe2eak\nwaHV5uYpoHxYMA/eaN/28/8W7pJtP4UQTjWm9RgiS0QCcDrrNG+tkS5zV3GkcF9Yz+6sUqoJEAHU\nclkiT6UU1CvQXb57oXlZLuG+G2oTGR4MwIm0bCYs229yIiGEN4kIjuDl9i/b2gv2L2BR0iITE3kv\nRwr3F0qpMsB/gDnANkB2B7uUgt3lu93nOTdAaFAA/7rZvgHJZ0v2clI2IBFCOFGnap3oW7evrf36\nqtdl724XKLJwK6X8gHNa6zNa66Va6zrW0eWfF1M+z1L7hsLTws4eMjfPRQa0rEZUpH0Dkg/+2G1y\nIiGEt3mm9TNUKGEs/nQq6xRvr33b5ETep8jCbV0lbXQxZfF8QSWhVkd7241GlwME+PvxXC/7Uqjf\nrznI3pT0It4hhBBXJyI4gpfb2bvMf9n3C8uSl5mYyPs40lX+u1LqaaVUdaVU2QsvlyfzVIWec7vf\nlIjODSJpW8f415dv0Yz9dYfJiYQQ3ubG6jfSq3YvW/u/q/4ra5k7kSOFewTwCLAUWG99rXNlKI9W\n8Dn3vsUoi3vtVauU4vlejWzt37YeZ/W+UyYmEkJ4o2fbPEvpYGOXwiMZRxi/cbzJibyHIyun1b7E\nq05xhPNI5epCmdrGcW4Gpc9uNTfPJTSrVppbY+1Lof73l+1YLLIUqhDCecqGlGVM6zG29vc7vmdz\nymYTE3kPR+64UUo1UUrdoZQaeuHl6mAeS6lCq6iVPb3BxDCX90yPhgQHGP/6Nx9O5aeN7rG+uhDC\ne/Sp04d2lY3loC3awst/v0yum/VCeiJHljx9GRhvfXUGxgJ9i3yTryvQXV729HoTg1xe1dIlGHWD\nveNk3G87yc43MZAQwusopXix3YuE+IcAsPvMbr7e8rW5obyAI3fcA4AuwDGt9XAgBgh2aSpPV6sj\nBBi/qCUzk+HMAXPzXMaD8XWpYF2U5di5LBbJTbcQwsmqh1dndHP75KTPEj8j6VySiYk8nyOF+7x1\nWlieUqoUcAKQZ9xFCSwBtW6wt91sMZYLwoIDeLqbfVGWP5LhWGqWiYmEEN7o7kZ3E10uGoAcSw5v\nrn5Tthi+Do4U7nVKqdLAlxgjyjcAa1yayhvU724/3rnAvBxXMKBldRpWCgcgx6J4d+FOkxMJIbxN\ngF8AL7V7CT9llJyVR1byW9JvJqfyXI6MKn9Ya31Wa/0ZcDNwr7XLXBSlfg/78f6lkHXOvCxF8PdT\nvNg72taetSGZzcmpJiYSQnijxuUac2eDO23tsWvGkp4jC0BdC0dHlVdVSrUHagCllVKdXBvLC5Su\nDpWsm6hZcmGv+y6236Feebo2Mnb10RpenbtVurGEEE43uvloyoWUAyDlfAofJ3xsciLP5Mio8neA\nFRibjIyxvp52cS7v0MC+cpA7d5cDPN+rEf7KKNbrks4wd9NRkxMJIbxNqaBS/5jbveO0rN54tRy5\n474NaKC17qW17mN9yXQwRxQs3Lt+g3z33QO7ToUw4u1rsvDW/O2cz5H5YUII5+pVuxdxleMAY273\n66tex6ItJqfyLI4U7n1AoKuDeKXKMWQHGd1CZJ2FQ6vMzXMFPapD+TBjd7OjqVl8umSvyYmEEN5G\nKcULcS8Q6GeUlU0pm/hx948mp/Isly3cSqnxSqkPgUwgQSn1uVLqwwuv4ovowZTiZPk29vaO+eZl\ncUCJABjTvYGt/fmSvSSfkY0BhBDOVTuiNsOb2Mc4f7jhQ1KzZVCso4q6416HMf1rDvA6sBL7JiPu\nuRyYGzpVrkDh3jnfGP3lxga0rE6TqqUAyM6z8NYCef4khHC+UU1HUaWk8XzuTPYZPk381OREnqOo\nwj0fWKu1/qbgC6Nou/etoxs5U6YpBIVZG/shxb3nSfv7KV7p09jW/mXTUVbJ7mFCCCcLCQjh6db2\ncc7Tdkxj95ndJibyHEUV7vFAhUucrwp84Jo43kf7BUK9LvYTO93/7zytapWlb4x9pNorc7aSly+D\nR4QQztW1RlfiKhkD1fJ1Pu+seUemojqgqMLdVGu95OKTWuvfgGaui+SFPGha2AX/7tmQEoH+AOw4\nlsaU1QdNTiSE8DZKKZ5t8yz+yvizZvWx1fxx8A+TU7m/ogp3USPJZZT51YjqBtZfTJLXQvoJc/M4\noErpEoy+qZ6t/X8Ld3IyPdvEREIIbxRVJopBDQfZ2uPWjuN83nkTE7k/dbluCaXUL8DHWuv5F53v\nCTymte5ZDPkKfm8foE+lSpVGTZ06tTi/+rqkp6cTFhZG7MYXKJ26BYAdDUZzrPLNV3hn8UtNTSUi\nIsLWzrVo/rP8PMczjd+RG6oGcF9T99kY7sK19QQXX1t3J9fWNTzpukLxXdvM/ExeP/I66RZjCdSe\nET3pVbrXFd5VmKdd286dO6/XWre6lvcWVbjrA/OwjyYHaAW0A3prrXddyxder6ioKL17t+cMYFi8\neDHx8fGw8iNY+IJxsn5PuGuaqbkuZd68efTu3bvQub92nmD4pLW29k8Pt6d5jTLFHe2SbNfWA1zq\n2rozubau4UnXFYr32s7YNYPX/n4NgBD/EObePpdKJSs5/H5Pu7ZKqWsu3JftKrcW5qbAEqCW9bUE\naGZW0fZoDQp0UOz7C7I9Y3H9zg0iuTm6oq390uyt5Ftk8IgQwrn61etHo7KNAMjKz2L8xvEmJ3Jf\nRa6cprXO1lpP0lo/ZX1N1FrLhs3XolxdiLROs8rLgt0Lzc1zFV7qHU1wgPGrsvlwKj+sPWRyIiGE\nt/H38+fpVvbpYXP2zmHbqW0mJnJfDu0OJpwkusAS79vnmJfjKlUvG8pD8XVt7bG/7eB0Ro6JiYQQ\n3qhN5TbEV4u3td9d965MD7sEKdzFKfpW+/GuhZDrOSMnH7yxLtXLlgDgbGYu78iKakIIF3iy1ZO2\n6WFrj61l8aHF5gZyQ47ux11CKdXgyj8pilShIZSLMo5zM2CP++7RfbGQQP9CK6r9sO4Q65NOm5hI\nCOGN6kTUYWD9gbb2e+vfI9eSa2Ii9+PIftx9gATgV2s7VinlOf287kQpj+0uB+jSqGKhgWov/LRF\nVlQTQjjdQ7EPERZoTO06cO4AM3bOMDmRe3HkjvsVoA1wFkBrnYAxwlxci0YFCvfOXyHPs54Vv9wn\nutCKal+vPGBuICGE1ykbUpb7m91va3+a+Cnncs6ZmMi9OFK487TWst+as1SOgdI1jOPsVNj/j1Vl\n3Vq1MqE81iXK1n7/910cTfWcZ/VCCM9wV6O7qBpWFYCz2Wf5esvX5gZyI44U7i1KqbsAf6VUlFJq\nPMaiLOJaKFX4rnvbbPOyXKP7OtYmKtLoxsrIyef1eTJlQwjhXMH+wTzW/DFbe/K2yaRkppiYyH04\nUrgfBRoD2cD3QCrwhCtDeb2Co8t3/AL5eeZluQZBAX68flsTW3v+5mMs3un+668LITxLj9o9aFi2\nIWAsyvL5ps9NTuQerli4tdaZWusXtNatra//yCIs16lqKwi3bpt5/jQkLTc3zzVoW6cc/VpUtbVf\nnL2F8zn5JiYSQngbP+XH4y0et7Vn7ZrFwXOyU6Ejo8p/V0qVLtAuo5T6zbWxvJyfHzTqY29v86zR\n5Rc836sRpUONjeIOnT7P/xbJSrhCCOfqUKUDrSoaS3rn6Tw+SvjI5ETmc6SrvLzW+uyFhtb6DBDp\nukg+ouC0sB3zwOJ506rKhwXzfM9GtvZXy/az7YiM/BRCOI9SqtBd94L9C9hx2rcXgHKkcFuUUjUu\nNJRSNQFZg+561WgHJSsYx+nH4eDf5ua5RgNbVaNN7bIA5Fs0z/20WTYhEUI4VWxkLJ2rd7a1P9jw\ngYlpzOdI4X4BWK6UmqyUmgwsBZ5zbSwf4OdfuLt8yyzzslwHpRRv3t6UIH/jVynx0Fm+W5Vkcioh\nhLd5rPlj+Cnjz5nlh5ez9tjaK7zDezkyOO1XoAXwAzAdaKm1lmfcztCkv/14288eN7r8gnqRYYU2\nIRn3206Opcr4RSGE89QrU48+dew3O+M3jvfZDUgc3WQkGDiNMRUsWinVyXWRfEiN9hBe2TjOPOVx\ni7EU9HDnutSpUBKA9Ow8Xp6zxeREQghv83DswwT4BQCw8cRG/j7qmY8Yr5cjo8rfAVZgdJmPsb6e\nLvJNwjF+ftC4n73tod3lAMEB/rx5e1Nb+7etx1mw+aiJiYQQ3qZKWBX61bP/mflJwic+edftyB33\nbUADrfUtWus+1lffK75LOKZpge7y7XMhL9u8LNepbZ1yDGpd3dZ+ac5WUjNlVx8hhPOMajaKQD9j\nGmpiSiIrj/jeQp6OFO59QKCrg/isKi2gTC3jOPsc7P7d1DjX67lejYgMDwYgJS2bN+bLcqhCCOep\nVLIS/aJ8+67bkcKdCSQopT5XSn144eXqYD5DqcKD1Dy4uxwgokQgr91qXw51+rpkVuw5aWIiIYS3\nGdl0pO2ue9PJTSw/7HmrT14PRwr3HOB1jI1F1hd4CWdpMsB+vOtXyMkwL4sT9GhSiZ5NKtnaz/24\nmcwczxwxL4RwP5VKVmJAffufm7521+3IdLBvLvUqjnA+o2I0VLCuQJabCTsXmJvHCV69tTGlQozR\nnwdPZ/LeQlkOVQjhPCObjiTILwiALae2sPX8VpMTFR9HRpVHKaVmKqW2KaX2XXgVRzif0tR7ussB\nIsND+E/vaFt74or9bDx4xsREQghvEhkaycAGA23tBakLfOau25Gu8knAp0Ae0Bn4FpjsylA+qeC0\nsN2/w3nPL3IDW1ajY73yAFg0jJm5iaxc2UFMCOEcI5qMINjfGAx7MOcgK46sMDlR8XCkcJfQWi8C\nlNY6SWv9CnCTa2P5oHJ1oUpz49iSa0wN83BKKd7q15TQIH8A9pxI58NFu01OJYTwFpGhkfSPsvdW\nfrX5KxPTFB9HCneWUsoP2K2UGq2Uuh3ZHcw1Cg5S2zzDvBxOVL1sKM/1bGhrf7ZkL4mHzhbxDiGE\ncNywxsMIUMZ4mvXH17Ph+AaTE7meI4X7CSAUeAxoCQwB7nVlKJ/VpD9YF9Fn/zI4e8jcPE5yd1xN\n2tYxdhAzuswTyc6TLnMhxPWrHFaZ3nV729q+cNftyKjytVrrdK11stZ6uNa6n9Z6VXGE8zmlKkOd\nC1vXadg83dQ4zuLnpxjbP4YSgUaX+a7j6YxftMfkVEIIbzGiyQgUCoBlh5d5/X7djowqb6WU+kkp\ntUEptenCqzjC+aSYwfbjxGngJaMka5QL5dkeDWztT5fsZXNyqomJhBDeonZEbWJCY2ztCZsnmJjG\n9RzpKp+CMbK8P9CnwEu4QsNbICjMOD65C454z/Oaoe1q0aaW0WWeb9E8NSNBusyFEE7RrVQ32/HC\npIUknUsyMY1rOVK4U7TWc7TW+62jypO01t57RcwWFArRt9nbidPMy+Jkfn6KsQOaFeoyf/93GWUu\nhLh+1YOr06FqBwAs2sKkLZNMTuQ6jhTul5VSXymlBiul+l14uTyZL4sZZD/ePBPycszL4mS1ypfk\nuV72UeZfLN3L+qTTJiYSQniLkU1G2o5n753NsYxjJqZxHUcK93AgFuiBvZu8d5HvENenZgeIsG6P\nef407PHsHcMudk9cTTrUKwcYo8yfmp4oa5kLIa5by4otaR5prIeRZ8nju23fmZzINRwp3DFa61Za\n63uto8qHa61HuDyZL/Pzg2Z32tuJU83L4gJGl3kM4cHG3MsDpzJ5Z4F7jQJNTk7m1ltvJSoqirp1\n6/L444+Tk+O6no+wsDCnfM7PP//Mtm2ylarwTUop7mtyn609a/cs0nPSTUzkGo4U7lVKqegr/5hw\nqoLd5Tt/hUzv6k6uWroEL/Wx/1p983eS22z/qbWmX79+3HbbbezevZtdu3aRnp7OCy+8cF2fm5fn\n+l4FKdzC191Q7QZqlaoFQHpuOj/t+cncQC7gSOHuiLEf907rVLDNMh2sGJSPgqqtjGNLLmz90dw8\nLjCgZTW6NrIvwjdmRiKp53NNTGT4888/CQkJYfjw4QD4+/vz/vvvM3HiRFq3bs3WrfZdiOLj41m/\nfj0ZGRmMGDGC1q1b07x5c2bPng3A119/zcCBA3nttdfo1q0bR48epVOnTsTGxtKkSROWLVtm+6wX\nXniBmJgY2rZty/HjxwFISkqiS5cuNGvWjC5dunDw4MHLnl+5ciVz5sxhzJgxxMbGsnfv3uK6ZEK4\nDT/lx5DoIbb2lO1TyLN416M4Rwp3DyAK6Ib9+bZMBysOBe+6E7yruxyMbq03+zWlTGggAEdSs3h5\n9haTU8HWrVtp2bJloXOlSpWiRo0a9O7dm+nTjYVxjh49ypEjR2jZsiVvvPEGN910E2vXruWvv/5i\nzJgxZGQY+6r//fffPPnkk/z55598//33dO/enYSEBBITE4mNjQUgIyODtm3bkpiYSKdOnfjyyy8B\nGD16NEOHDmXTpk3cfffdPPbYY5c93759e/r27cu4ceNISEigbt26xXXJhHArfer2oXRwaQAOpx9m\n0cFFJidyriILt3WN8l8KTgO7mulgSqke1jv1PUqpfxfxcwOUUlop1eoq83u3Jv3BzyhqHF4HJ9zr\nObAzRIaH8ObtTW3tnxOOMDfxiImJjK5ypdQlz8fHxzNjhrGO/PTp0xk40NhWcOHChbz99tvExsYS\nHx9PVlaW7e745ptvJjw8HIDWrVszadIkXnnlFTZv3mw7HxQURO/expjPli1bcuDAAcAo+nfddRcA\nQ4YMYfny5UWemgfyiwAAIABJREFUF0JAiYAS3NnAPk7o223fmpjG+Yos3FprC5ColKpxtR+slPIH\nPgZ6AtHA4Es9K1dKhWOsg776ar/D64WWhYa97O2N3rmbas+mlenfopqt/cJPmzmaet60PI0bN2bd\nunWFzp07d45Dhw7RunVrypUrx6ZNm/jhhx8YNMjoFdFaM2vWLBISEkhISODgwYM0atQIgJIlS9o+\np1OnTixdupSqVasyZMgQvv3W+AMlMDDQ9pcFf3//yz4Pv9RfKIo6L4SvGtRwEIHWG59NKZtIOJFg\nciLncaSrvDKwVSm1SCk158LLgfe1AfZorfdprXOAacCtl/i514GxQJbDqX1Ji6H248SpkJdtXhYX\neqVvNNXKlADgXFYeT89IxGIxZ7nXLl26kJmZaSuq+fn5PPXUUwwbNozQ0FAGDRrE2LFjSU1NpWlT\no7ege/fujB8/Hm1donbjxo2X/OykpCQiIyMZNWoU9913Hxs2FL0yXvv27Zk2zViEZ8qUKXTs2LHI\n8+Hh4aSlpV3nFRDC85UvUZ5b6txia3vTXbcjhftVjOfarwH/V+B1JVWBgttbJVvP2SilmgPVtdbz\nHErri+p0hlLWu9HMU7Bzvrl5XCQ8JJD37ojlwo3jij2nmLTygClZlFL89NNPzJgxg6ioKOrXr09I\nSAhvvvkmAAMGDGDatGnccccdtve8+OKL5Obm0qxZM5o0acKLL754yc9evHgxsbGxNG/enFmzZvH4\n448XmeXDDz9k0qRJNGvWjMmTJ/PBBx8UeX7QoEGMGzeO5s2by+A04fMKDlJbdHARyWnJJqZxHqUd\n2MRCKVURaG1trtFan3DgPQOB7lrrkdb2EKCN1vpRa9sP+BMYprU+oJRaDDyttV53ic+6HxgDlK5Q\noUL5iRMnOvQP5w7y8/Px9/e/rs+of3gW9Y8ao8pPlGrKmvqXHS5wXZyR9XrNPgC/JxvVO0BpxsRC\n1ZKX/ll3yOsoT8oKnpVXsrqOJ+W9XNYJ5yawJ9fYjbB9SHv6lHSPsdV9+vRZr7W+tnFdWusiX8Ad\nQBLwDfAtsB8Y4MD72gG/FWg/BzxXoB0BnAQOWF9ZwBGgVVGfW69ePe1J/vrrr+v/kDNJWr8cofXL\npYz/PX3g+j/zEubOneuSz70a2bn5uuf/luqaz87TNZ+dp7u9t0Sfz8m75M865doWE3e4tldDrq1r\neNJ11do7ru2y5GW6yddNdJOvm+i4KXE6PSe9eINdBrBOX6GOXu7lSFf5C0BrbaycNhTj2fWl+wEL\nWwtEKaVqK6WCgEGA7dm41jpVa11ea11La10LWAX01Ze44/Z5pWtA3ZusDQ0JU0yN40pBAX58MCiW\n4ADjV3Pn8TTemr/d5FRCCE/VoUoH24IsGbkZzNvr+U9mHSncfrpw1/gpR96ntc4DRgO/AduB6Vrr\nrUqp15RSfa8prS8rOEht43dg8d7tMKMqhvNi78Krqv2547iJiYQQnkopxaCG9jUxpu2cZhtE6qkc\nKdy/KqV+U0oNU0oNA34BHBohpbWer7Wur7Wuq7V+w3ruJa31P0ala63j5W67CA16QaixMQfnDsPe\nP83N42J3x9Xg5uiKtvbTMzZx4pxMPBBCXL2+dftSIsCYtbLn7B42nCh6Noe7u2zhVkoFA2itxwCf\nA82AGOALrfWzxRNP2AQEQcxge3uD90xtuBSlFO/0b0bFUsEAnM7I4SkTp4gJITxXeFB4oalh03ZM\nMzHN9SvqjvtvAKXUZK31j1rrf2mtn9Rae9+K7Z6iYHf5zvmQnmJelmJQtmRQoSliy3afZMLy/eaG\nEkJ4pEEN7N3lfyT9wcnz7rGp0bUoqnAHKaXuBdorpfpd/CqugKKACg2gepxxbMnz2pXUCupQrzwP\ndLKvuT32tx0kHjprYiIhhCdqULaBfa9uncfMXTNNTnTtiircDwJtgdIYm4oUfPV2fTRxSS2H2Y/X\nT/LqQWoX/Ovm+sRUiwAgN1/z6NSNnMsyfxcxIYRnKXjXPWPXDI/dNeyyhVtrvRx4BHhPaz38oteI\n4osoCml8O5QoYxyfPQh7/jA3TzEICvBj/OAWhAcHAHDwdCbP/7jZ40eGCiGKV9eaXSkbUhaAE5kn\nWHJoicmJro0jm4zI3bU7CSwBze+xt9d+ZV6WYlSjXChv9rPvIjZv01GWJHvm35aFEOYI8g+if1R/\nW3vqTs/cLtmR6WALlVL9lWw/5D5ajQCs/zp2/w6nfWPAVp+YKgxuU93WnrI9h13HZUMNIYTjBtYf\niJ8ySt/qo6vZn+p5f346Urj/BcwAcpRS55RSaUqpcy7OJYpStg7U62ptaFjnOWu3X6+XejemfsUw\nAHIt8MiUDWTmyJ23EMIxlcMqc2O1G23tn/Z43kQpR1ZAC9da+2mtA7XWpaztUsURThSh9Uj78cbJ\nkGve/tXFqUSQPx/f1YKQQONXd/eJdF6avdXkVEIITzKg/gDb8Zw9c8i1eNZg1ysWbmW4Ryn1orVd\nXSnVxvXRRJGiboaIGsbx+TOw9Wdz8xSjqIrhvNa3ia09c30y09cdKuIdQghh175KeyqUqADAqaxT\nLE9ebnKiq+NIV/knGDt93WVtpwMfuyyRcIyfP7QuMLjfRwapXTCwVTU6VAmwtV/8eQvbj8oTHCHE\nlQX4BdC3rn3LDE/rLnekcMdprR/B2HYTrfUZIMilqYRjmg8Bf+u/isPr4MhGc/MUI6UUQ6ODiIo0\nnndn51l4ZMoG0rPlebcQ4spuj7rddrw0ealHraTmSOHOVUr5AxpAKVUBsLg0lXBMyfLGvO4L1vjW\nXXdwgOLTe1pQItAfgH0nM/j3rE0yv1sIcUU1S9WkRWQLAPJ1PnP3zjU5keMcKdwfAj8BkUqpN4Dl\nwJsuTSUcV3CQ2uYZXr9++cXqRYbzZj/78+55m44yeVWSiYmEEJ6i4F33T3t+8pi/9DsyqnwK8Azw\nFnAUuE1rPcPVwYSDqrWGKsbfGsnP9qmpYRfc3rwag9vUsLVfn7eNDQfPmJhICOEJutXsRmhAKAD7\nU/eTmJJociLHFLWtZ4hS6gml1EfAjcDnWuuPtNbbiy+euCKloO3D9vbaryAv27w8Jnm5TzRNqhqz\nFHPzNQ9/t4GT6b53HYQQjgsNDKVn7Z62tqcMUivqjvsboBWwGegJvFssicTVa3wbhFcxjjNOwJZZ\n5uYxQUigP5/e3ZKIEoEAHDuXxWNTN5KXL8MxhBCXd1u922zHv+7/lczcTBPTOKaowh2ttb5Ha/05\nMADoVEyZxNXyD4Q2o+ztvz8BD3lW40zVy4byv0H2/btX7j3F//2+y9xQQgi3FlMhhtoRtQHIzMtk\nYdJCkxNdWVGF27aUjNZa5ti4u5bDINB4VsPxzXBgmalxzNK5QSSP3RRla3+6eC8Ltx4zMZEQwp0p\npbi9nn2Q2uw9s01M45iiCneMdW3yc0qpNKCZrFXuxkLLQsxge/vvT8zLYrLHu0RxY/0KtvZT0xPZ\nm5JuYiIhhDvrXae3beOR9cfXczzjuMmJilbUftz+1rXJL6xPHiBrlbu5tg/Zj3f9Cqf2mpfFRH5+\nig8GxVKtTAkA0rLzuP/bdaRledZ6xEKI4lEhtAKtK7UGQKP59cCvJicqmiPzuIWnKB8FUd2sDQ2r\nPzM1jplKhwbx2T0tbZuR7E3J4KnpiVgsvvfsXwhxZbfUvsV2PH//fBOTXJkUbm9TcGrYxinGBiQ+\nqknVCN7p38zWXrjtOB/9tcfEREIId9WlZhcC/YxZKdtObXPrfbqlcHubOvEQ2dg4zs3wuc1HLnZr\nbFXu61jb1n7/j10s2u7ez6+EEMWvVFApOlWzT55asH+BiWmKJoXb2ygFHR6zt1d9BjnuPy/RlZ7r\n2ZD2dcsBxiy5J6YlyGA1IcQ/9Krdy3Y8f/98t10CVQq3N2rSHyKqG8eZJyFhirl5TBbg78f4wc2p\nWto+WG3UN+tIPS+D1YQQdp2qdaJkYEkAks4lse30NpMTXZoUbm/kHwjtH7W3V3wI+b5dpMqFBfP5\nEPtgtX0nM3h06kbyZbCaEMIqJCCELjW62Nrz97nnIDUp3N6q+RAINbqHST0IWz1jDV5XalI1gnED\nYmztpbtSeHuBLL0vhLAr2F3+6/5fybfkm5jm0qRwe6ugUIh70N5e/r5PLoN6sT4xVRjduZ6t/eWy\n/cxcn2xiIiGEO4mrHEfZkLIAnDh/gvXH15uc6J+kcHuz1iPB+ryGE9tgt/uvwVsc/nVzfW6Ormhr\nP//jZtYn+e60OSGEXYBfAN1rdbe13XFOtxRubxZaFloNt7eX/8+8LG7Ez0/x/p2x1K8YBkBOvoUH\nJq8j+Yxvj74XQhgKdpcvTFpIrpuNEZLC7e3aPgzWRQU4uBIOrjI3j5sICw7gq6GtKRNqXJuT6TmM\n/GYd6dmyn44Qvi6mQgxVw6oCkJaTxppja0xOVJgUbm8XURVi7rS3l44zL4ubqVEulM/uaUmgv7EP\n6I5jaTwuI82F8HlKKW6qcZOt/efBP01M809SuH1BhyfBuvMNe/6A5HXm5nEjcXXK8ebtTW3tRTtO\n8NZ8GWkuhK8rOC3sr0N/YdEWE9MUJoXbF5SvB00G2NuL3zYvixsa2Ko6D95Y19b+avl+pq45aGIi\nIYTZYivE2kaXp5xPYVPKJpMT2Unh9hWdxgBGlzB7fodk95viYKZnujegW4GR5i/+vIXlu0+amEgI\nYSZ/P3/iq8fb2u7UXS6F21dUqA9NC9x1L5G77oL8/BT/GxRL4yrGVvN5Fs1D361n57E0k5MJIcxS\nsLt80cFFbrN2uRRuX1Lwrnv3QrnrvkhoUAAT7m1NpVIhgLGm+Yiv13LiXJbJyYQQZoirHEdoQCgA\nB9MOsvfsXpMTGZS7/A3iSpRSfYA+lSpVGjV16lSz4zgsPT2dsLAws2PYNNr2LhVPLAPgVNlWbG72\nou3/S01NJSIiwqxoV81V1/bguXzeXJ1FlnWlw1ql/HiuTQjBAeqaP1Ouret40rX1pOsKcm0BJqZM\nZGPmRgBuibiFHqV7OOVzO3fuvF5r3epa3hvglATFQGs9F5gbFRU1Kj4+3uw4Dlu8eDFulTe6EnzS\nFtCUO72O+KhwqNoSgHnz5rlX1itw5bWt0eAE932zjnyL5sA5CzMOh/H5kFb4+11b8ZZr6zqedG09\n6bqCXFuAzH2ZbFxmFO59/vvc4npIV7mviWwIjW+3txe/Y14WNxbfIJLXbm1sa/+x/QSvzt3qNs+4\nhBDF44ZqNxDgZ9zjbj+9naPpR01OJIXbN934DPZn3b/BwdWmxnFXd8fV5IEb69ja3/6dxGdL9pmY\nSAhR3MKDwomrFGdr/3nI/NHlUrh9UWSjwiPMF70qO4ddxrPdG9Inpoqt/c6vO/hxg+wmJoQvKbiK\n2qKDi0xMYpDC7as6Pw/W7h+SVsAe838Z3ZGfn+Ldgc1oW6es7dwzMzexbHeKiamEEMWpc/XOKGsv\n5frj6zmTZe5uglK4fVXZOtDiXnt70SvgRkv6uZPgAH8+H9KKBhXDgQtzvDew9UiqycmEEMWhQmgF\nmlVoBoBFW1iSvMTUPFK4fdmNz0BACeP42GYqn5Fn3ZcTUSKQr0e0pnKEMcc7PTuPYZPWcvCUbAUq\nhC/oXL2z7XjF4RUmJpHC7dvCK0HbB23NhodngJvtO+tOKkeU4OvhbQgPMR4xpKRlM3TialLSsk1O\nJoRwtY5VO9qO/z76N/mWfNOySOH2dR0ehxBjgYWS2cdh43cmB3JvDSqF89XQVgQFGP/pHDiVybBJ\na0jLkr/wCOHN6pepT7mQcgCkZqey/bR5uwhK4fZ1JcpAhyfs7SXvQI50/xYlrk45PhrcnAtrsWw9\nco4HJq8nO8+8v4ELIVxLKUX7Ku1tbTO7y6VwC4h7EMKsO2OlHYVVn5ibxwN0a1yJt/rZ9/FeufcU\nT/6QQL5FptUJ4a3aV7UX7pVHVpqWQwq3gKBQuPFZe3v5+5B23Lw8HuLO1jUY072BrT1/8zFe+Gmz\nrK4mhJdqV7md7TgxJZG0HHN2D5TCLQwt7iUtpKpxnJMOf71hbh4P8XB8XUZ0qG1rT1t7iDfnb5fi\nLYQXKleiHI3KNgIgX+ez5tgaU3JI4RYG/wC2Vb/b3t44GY5tMS+Ph1BK8Z9bGtG/RTXbuS+X7efj\nv/aYmEoI4SodqnawHa88bE53uRRuYZMSEQN1rRvHawssfEGWQnWAn5/inf5N6RZd0Xbu3YW7+Gbl\nAfNCCSFcotAAtSMrTOldk8ItCuv+Bijrr8W+xbD7d1PjeIoAfz/G39WcjvXK2869PGcrs9bLuuZC\neJPYCrGEBoQCcDj9MAfTDhZ7BincorDIRtBymL298AVZlMVBxtKoLWleo7Tt3JiZifyyyfxtAIUQ\nzhHoH0ibSm1sbTNGl0vhFv8U/zwEGetyc3IXrP/a1DiepGRwAF8Pa0PDSsb1s2h4fNpGNp8yOZgQ\nwmkKTQsz4Tm3FG7xT2EVoNNT9vaf/4UMqTyOiggN5LuRcdStUBIwNiWZsAPZUUwIL9Ghin2A2ppj\na8gt5l5JKdzi0uIegjK1jOOss8buYcJh5cOC+X5UW2qWM56F5WnFqG/XsWqf/AVICE9XPbw6VcOM\n6bOZeZkkpCQU6/dL4RaXFhgCPd6xtzdMhuT15uXxQBVLhTBlZBxVrDuKZeVaGPH1WtYdOG1yMiHE\n9VBKFbrrLu7n3FK4xeU16AH1e1obGuY/BSbuiOOJqpUJ5ftRbSkVZEwZyczJ596Ja1ifdMbkZEKI\n62Hm8qdSuEXRerwF/sHG8ZGNsOFbc/N4oFrlS/JYE6P7HCDDWrw3HpTiLYSnalOpDQpjp6Edp3eQ\nkZtRbN8thVsUrWxt6Pikvb3oVciUrt6rVSkUpo6Ko1zJIADSs/MYOmENiYfOmpxMCHEtwoPCqV+m\nPgAWbWFTyqZi+24p3OLKOj4BpWsax+fPwKLXzM3joaIqhvP9qLaUtRbvtOw87pmwmk3JUryF8ESx\nkbG2440nNhbb90rhFlcWWAJ6vG1vr/8aDpmzuL6na1ApnO/ui6N0aCAAaVl53P3Vauk2F8IDtYhs\nYTvecGJDsX2vFG7hmAY9Iaq7taFhzmOQl2NqJE8VXaUUU0YWLt5DJ8iANSE8TfPI5rbjTSmbyLPk\nFcv3SuEWjlEKbnkXAo1FRUjZDis+MDeTB2tcJYLvR7alzIXinZ3H0AmrWStTxYTwGJXDKlOpZCUA\nzuedZ+eZncXyvVK4heNK14Cb/mNvLx0LJ3ebl8fDRVcpxdT729oGrF0Ybb5aFmkRwmM0r2C/6044\nUTwLsUjhFlcn7gGoYn2uk58Dcx8Hi8XcTB6sYaVSTLu/rW2qWGZOPvdOWiPLowrhIZpXtBfuDceL\n5zm3FG5xdfz8oe+HoPyNdtIK2DjZ3EweLqpiONPub0tkuFG8s3It3Pf1Ov7YdtzkZEKIKyn4nDvh\nREKx7M8thVtcvUpNof2j9vbvL0LaMfPyeIF6kWH88EA72/KoOfkWHvxuPfM2HTE5mRCiKFGloyhp\nHftz4vwJDqcfdvl3SuEW1yb+31CmtnGclQrznoRi+JumN6tdviTTH2xn35jEonls6kZmrk82OZkQ\n4nL8/fyJqRBjaxfHfG4p3OLaBJaAPgVGle+cD4nTzMvjJaqVCWX6A+1sW4JaNDw9I5GvV+w3OZkQ\n4nIKdpdL4Rburc6N0Hqkvb3gWUh1fTeRt6tYKoQfHmhHo8qlbOdembuNDxftLpbnZ0KIqyOF20T+\n/v7ExsbSuHFjYmJieO+997CYMGL6lVdeoWrVqsTGxhIdHc3UqVOv+J6ff/6Zbdu22dovvfQSf/zx\nhytjGrq+at+3OzsV5jwqXeZOUD4smGmj2tKiRmnbufd+38Xr87Zjscj1FcKdNC3fFH/rgN09Z/eQ\nmp3q0u+Twl1AiRIlSEhIYOvWrfz+++/Mnz+fV1991ZQsTz75JAkJCcyePZsHHniA3NzcIn/+4sL9\n2muv0bVrV1fHhOAwuO1TsO6Sw95FsOEb13+vD4gIDeS7kXHcEFXedm7iiv08M2sTefkyBU8IdxEa\nGErDsg1t7cSURJd+nxTuy4iMjOSLL77go48+QmtNfn4+Y8aMoXXr1jRr1ozPP//c9rNjx46ladOm\nxMTE8O9//xuAL7/8ktatW3PffffRv39/MjMzSUtLo3bt2rYifO7cOWrVqlVkUY6KiiI0NJQzZ84U\n+tyYmBjb565cuZI5c+YwZswYYmNj2bt3L8OGDWPmzJkALFq0iObNm9O0aVNGjBhBdna2cy9WzfbQ\n9mF7+7cX4EySc7/DR4UGBfDVva3o0biS7dzM9ck8NGUDWbmyN7oQ7qI4u8ulcBehTp06WCwWTpw4\nwYQJE4iIiGDt2rWsXbuWL7/8kv3797NgwQJ+/vlnVq9eTWJiIs888wwA/fr1Y+3atUyYMIFGjRox\nYcIEwsPDiY+P55dffgFg2rRp9O/fn8DAwMtm2LBhA1FRUURGRhb63MTERNvntm/fnr59+zJu3DgS\nEhKoW7eu7f1ZWVkMGzaMH374gc2bN5OXl8enn37q/IvV5UUoF2Uc56TDzw+DRQqLMwQH+PPRXc0Z\n2LKa7dzv244zdMIaUs8X3RMjhCgeBQu3qxdicWnhVkr1UErtVErtUUr9+xL//7+UUtuUUpuUUouU\nUjVdmedaXBgMtHDhQr799ltiY2OJi4vj1KlT7N69mz/++IPhw4cTGmpM4SlbtiwAW7Zs4YYbbmDE\niBFMmTKFrVu3AjBy5EgmTZoEwKRJkxg+fPglv/f999+nQYMGxMXF8corr9jOX/jcpk2bFvrcy9m5\ncye1a9emfn1j39h7772XpUuXXvsFuZzAEnD7Z6Csv1JJy2HF/5z/PT4qwN+PsQOacX+nOrZzaw6c\n5s7P/+b4uSwTkwkhoHDh3npqKzn5rtuEyWWFWynlD3wM9ASigcFKqeiLfmwj0Epr3QyYCYx1VZ5r\nsW/fPvz9/YmMjERrzfjx40lISCAhIYH9+/fTrVs3tNYopf7x3mHDhvHRRx8xceJEXn75ZbKyjD9c\nO3TowIEDB1iyZAn5+fk0adLkkt/95JNPsnPnTn744QeGDh1qe/+Fz928eXOhz72cYh2FXK0VdBpj\nb//5BiSvK77v93JKKZ7v1Yjne9mfpe04lkb/T1eyLyXdxGRCiAqhFagWZvSKZedns+P0Dpd9lyvv\nuNsAe7TW+7TWOcA04NaCP6C1/ktrnWltrgKq4SZSUlJ48MEHGT16NEopunfvzqeffmp7Hr1r1y4y\nMjLo1q0bEydOJDPT+Mc4fdrY3SktLY3KlSuTl5fHlClTCn320KFDGTx48GXvtgvq168frVq14ptv\nvin0ubm5uYU+Nzw8nLS0tH+8v2HDhhw4cIA9e/YAMHnyZG688cZruCIO6vQMVGtjHOt8mHUfZP8z\nl7h293eqy3t3xBDgZ/yFMfnMeQZ89jcbZE9vIUzVtHxT27ErdwpzZeGuChwq0E62nruc+4AFLsxz\nRefPn7dNB+vatSvdunXj5ZdfBowu7ujoaFq0aEGTJk144IEHyMvLo0ePHvTt25dWrVoRGxvLu+++\nC8Drr79OXFwcTz/9NA0bNiz0PXfffTdnzpxh8ODBDuV66aWXbFPTLnzuzTffXOhzBw0axLhx42je\nvDl79+61nQ8JCWHSpEkMHDiQpk2b4ufnx4MPPni9l+ry/AOg/5cQbJ2DfOYA/PK0677PR/VrUY0v\n721FiUBjCsrpjBzu+nIVC7fK0rNCmKV+2fq2412nd7nse5SrulKVUgOB7lrrkdb2EKCN1vrRS/zs\nPcBo4Eat9T+GPCul7gfGAKUrVKhQfuLEiS7J7Ar5+fn4+/sXOrdixQpWrVrFU089ZVKqS7tU1mtV\n5dRKWuz/2NbeWPthDpfr4JTPvsCZeV3NVVkPpMFnWyE9z7j7VmgG1oVOla/vc+XauoYnZQXPyusO\nWXfk7OCbNKN3tFZALR6IeOCyP9unT5/1WutW1/RFWmuXvIB2wG8F2s8Bz13i57oC24FIRz63Xr16\n2pP89ddfhdqjR4/WdevW1Tt37jQnUBHmzp3r3A/88UGtXy5lvN6oqvXJPU79+IuvrTtz+rUtYF9K\nuu409k9d89l5ttdb87fr/HzLNX+mXFvX8KTrqrVc26t1NP2obvJ1E93k6ya63ZR22mK5/H+DwDp9\njfXVlV3la4EopVRtpVQQMAiYU/AHlFLNgc+BvlrrEy7M4jbGjx/Pnj17bKO8vVqvsfaNSHLSYMa9\nkHve3ExeqHb5ksx6qD0x1SJs5z5bspfHpm2Uud5CFKOKoRUJDwoHIC03jWMZrnl05bLCrbXOw+j+\n/g3jjnq61nqrUuo1pVRf64+NA8KAGUqpBKXUnMt8nPBEweEwYCL4BxntY5thwTPmZvJS5cOCmXp/\nW7o0jLSdm7fpKHd/tZpT6U5ecEcIcUlKKeqXKfCc+4xrnnO7dB631nq+1rq+1rqu1voN67mXtNZz\nrMddtdYVtdax1lffoj9ReJyqLaDH2/b2hm9h45TL/7y4ZqFBAXw+pCVD2tqXQ1ifdIZ+n65kr0wX\nE6JYeHzhFgKAViOg6R329i9PwbEt5uXxYgH+frx2a2P+c0sjLiwvkHQqk36frOTvvafMDSeED5DC\nLbyDUtD7fahgnb6Wdx6mD4Wsc+bm8lJKKUbeUIfP7mlJSKDxn3jq+VyGTFjND2sPmpxOCO9WsHDv\nPrPbJd8hhVsUj+AwuONbCCxptE/vhZ8fAhO2TfUV3RtXYvoD7agQHgxAnkXz7KzN/HfeNvJla1Ah\nXKJe6Xoo626JB84dIDvf+WNMpHCL4lOhAfT90N7eMQ+WvGNeHh/QrFppZj/SgUaVS9nOfbV8PyO/\nWUtalmxQIoSzhQaGUj28OgD5Op99Z/c5/TukcIvi1XQAtBttby95G7bNNi+PD6hSugQzH2xHt+iK\ntnN/7UwKHF76AAAgAElEQVSh/6crSTqVYWIyIbyTq59zS+EWxa/rq1Cns73900MyWM3FSgYH8Nk9\nLXmks33L113H0+n70QqW7z5pYjIhvI8UbuF9/AOM+d0XFmfJzYBpgyFDRj27kp+fYkz3hrx/ZwxB\nAfZBa0MnruarZfuKdyc5IbyYFG7hnULLwuCpEBRmtM8eNFZWy3PdHrbCcHvzasx4oB0VSxmD1iwa\n/vvLdp6akSgrrQnhBFK4hfeKbAT9vrS3DyyDuY+D3Pm5XEz10swd3ZEWNUrbzv244TADP/ubw2dl\nWVohrkfV8KqUCCgBwOms05w879zHUVK4hbka9oIuL9nbid/DkrHm5fEhkaVCmHp/W+5oVc12bvPh\nVPqMX862U3LnLcS18lN+RJWJsrWdfdcthVuYr+O/oPkQe3vxm5Aw1bw8PiQ4wJ93+jfjtVsbE+Bn\nzD09nZHDuLVZfL5krzz3FuIauXIhFincwnwXVlarE28/N+dR2L/UrEQ+RSnF0Ha1mHZ/W9tiLRp4\na8EOHvl+g8z3FuIaRJWWO27h7fwDjZXVIqONtiUXpt0DJ7abm8uHtKpVlnmPdqRlzTK2c/M3H+PW\nj1aw45gsTyvE1XDlADUp3MJ9hETAXdMhrJLRzk6FybfDmSRzc/mQiqVCmDqqLV1qBNjO7TuZwW0f\nr2DW+mQTkwnhWQo+4957di+5Fuf1XEnhFu6ldHW46wewbkZP2lGYfBuknzA3lw8JCvBjSHQwHwyK\nJTTIH4CsXAtPzUjkuR83yZQxIRwQERxBpZLGTUiuJZekVOfdgEjhFu6nSiwM/h78g4z26X3wXX/I\nSjU3l4+5NbYqsx/pQL3IMNu5qWsOcdvHK2R/byEcUGiA2lnnDVCTwi3cU+1OxupqyvoremwTTB0M\nuTLHuDhFVQxn9iMd6BtTxXZux7E0+oxfzk8bpetciKK46jm3FG7hvhr1gT4FdhNLWgHT74U852+T\nJy6vZHAAHwyK5Y3bm9iWSs3MyefJHxJ5ZmYi53Ok61yIS6kTUcd2fPDcQad9rhRu4d5aDIGbX7e3\nd/8GM4ZDvkxRKk5KKe6Oq8nPD3egTvmStvPT1yXT56PlbDsio86FuFjFUPuOfM5cPU0Kt3B/HR6D\nG562t3f+AjNHoCx55mXyUdFVSjHn0Y7cFmvvOt9zIp3bPlnBpBX7ZcEWIQooH1redpxyPsVpnyuF\nW3iGm/4DHR63t7fPodH29yBfindxCwsO4P07YxnbvxklAo1R5zl5Fl6du437vlnHqXR5lCEEQIUS\nFWzHJ8+fdNpfbKVwC8+glLGPd9tHbKciU1bAzw9K8TaBUoo7Wldn7qMdia5cynb+zx0n6PHBMv7a\nKdP3hAgLDCPEPwSA83nnycjNcMrnSuEWnkMp6P4GtHnAfm7zDJg5XLYDNUm9yDB+eqQ993WsbTuX\nkpbN8ElreWn2Fhm4JnyaUoryJZzfXS6FW3gWpaDnO9B6pP3c9jnww90yVcwkwQH+vNg7mknDW1M+\nLNh2/tu/k+g9fhlbDsv8e+G7ChZuZw1Qk8ItPI9S0OtdDlXrYz+3eyF8fwdky8IgZuncIJLfnriB\nm6PtI2n3phjLpY5ftJu8fIuJ6YQwR4VQ+3PulEy54xa+TCn21r0POo2xn9u/1Fjb/PxZ83L5uHJh\nwXwxpCVv92tqWy41z6L5v9930f+zv9lzQv5iJXyL3HELUZBSxmjzLi/bzyWvgUk94dwR83L5OKUU\ng9rUYP5jN9C8Rmnb+cRDZ7nlw2VMWL4fi0WmjQnfcPHIcmeQwi083w3/gp5j7e0T2+CrmyFlp3mZ\nBLXKl2TGA+14pkcDAv0VANl5Fl6ft41BX67iwEnnjLAVwp3J4DQhLifuAbj9C/Czbkd5LhkmdIOD\nq8zN5eMC/P14OL4ec0Z3pFGBaWNr9p+mxwdLmbB8P/ly9y28WKFn3FK4hbhIzJ3Gft6B1iU5s87C\nt7fC9nnm5hI0qlyK2Y904NGb6uHvZ9x9Z+Uad993fP637DYmvFahrvJM6SoX4p/qdYHhv0BJ638s\neVnwwz2w4kOQ5ThNFRTgx1PdGjD7kQ40rBRuO78+6Qw9P1jGx3/tIVdGngsvI13lQjiiSnO4byGU\nubAoiIbfX4Q5j8pCLW6gSdUI5ozuyBNdowiw3n3n5FkY99tO+oxfTuIhmRUgvEeZkDL4K2OGxbmc\nc2TnX/+SwFK4hXcqWwdGLoIa7e3nNk42potlnjYvlwCMu+8nutZnzuiONK0aYTu/41gat3+ygtfn\nbSMjW5ayFZ7PT/lRLqScre2MkeVSuIX3KlkOhv4MMXfZzyUth6+6wPFt5uUSNtFVSvHTw+15oVcj\nQgKNP44sGiYs38/N7y3h923HTU4oxPUrtEuYExZhkcItvFtAMNz2CXR9xX7u9D74qits+dGsVKKA\nAH8/RnWqw8InbuSGKPsfcEdSsxj17Tru/3YdR87KcrbCczl7LrcUbuH9lIKOT8Kd39lHnOdmGJuT\nLPyP7C7mJmqUC+XbEW34v4ExlC0ZZDu/cNtxur63hC+X7pPBa8IjOXv1NCncwnc06gMj/4Cyde3n\nVo6HybdBuvM2uRfXTilF/5bVWPSvG7mzVXXb+cycfN6Yv51bPlzGqn2nTEwoxNVz9lxuKdzCt1SM\nhlF/Qv2e9nMHlsFnHY21zoVbKFMyiHcGNGP6A+2Iigyznd91PJ1BX6zi8WkbOXEuy8SEQjjO2V3l\nSnvI3FalVB+gT6VKlUZNnTrV7DgOS09PJyws7Mo/6AZSU1OJiIi48g+6ieu6ttpCzaQZ1DowFYXx\n34BGkVTzDg7UuhOs0zecxaeurZPlWTQLk3KZvSeX7ALbe4f4Q996gcSVPk+5Mp5xbd3pujrCk35v\n3fnabsrcxJcpXwIQXSKahyIfonPnzuu11q2u5fM8pnBfEBUVpXfv3m12DIctXryY+Ph4s2M4ZN68\nefTu3dvsGA5zyrXd8wf8+AAUXNGoZkfo/yWUqnJ9n12AT15bJzuaep43ftnOvE1HC52vEKJ5+87W\n3NQwEqWUSekc447XtSie9Hvrztd2c8pm7ppvzG5pVLYR0/tMRyl1zYVbusqFb6vXFR5cDrVusJ9L\nWg6ftoetP5uXS/xD5YgSfHRXC6aMjKNege7zlCzFfd+sY9iktew5kWZiQiEuzdmrp0nhFqJUZRg6\nG+KfB2X9T+L8GZhxr3E3npVqbj5RSId65Vnw+A281Dua8JAA2/klu1Lo/r9lvPjzFk6lX//qVEI4\nS8HCfTrrNPmW/CJ++sqkcAsB4OcP8c/CvfMgwj6amU3T4JP2sG+JednEPwT6+zGiY20WPx1Ph0qa\nCz3k+RbN5FVJxI9bzOdL9pKVe31/QArhDIH+gZQONvamt2gLp7Oub/VGKdxCFFSrAzy0AmIG28+d\nS4Zv+8IvT0HWOfOyiX8oFxbM4Hrwy6M30L6ufVnJtOw83lqwg67vLeHnjYexyNahwmTO7C6Xwi3E\nxUIi4PbPYOA3UKKM/fzar+CTdrBroXnZxCVFVynFlJFxfDW0FXUqlLSdTz5znid+SKDPR8tZtlvm\n6gvzOHNKmBRuIS6n8W3w8Cqo38N+7lwyfD8QZo2CDFkIxJ0opegaXZHfnujEq30bUyY00Pb/bT1y\njiET1jBkwmo2J8uYBVH8Ci7CIoVbCFcKrwSDp0H/CRBq74pl83T4qCWs/wYssgynOwn09+Pe9rVY\n8kxnHulc17Z5CcCy3Sfp89FyHvpuPbuPywh0UXwKdZVf50YjUriFuBKloOkAeGQNNB1oP3/+DMx9\nDCZ2g6OJ5uUTl1QqJJAx3Ruy+OnODGpdHb8CU7wXbDlG9/8t5V/TEzh4KtO8kMJnFOwql2fcQhSX\nkuWh/1dw13QoXcN+PnktfBEP88fIXt9uqFJECG/3b8bCJzvRq2kl23mLhh83HOam/1vMv2dt4tBp\nKeDCdZy50YgU7v9v787DqyrvBI5/f8nNzZ5ANpZsbAkEAWUHRQERy1grOrZoH7Wte+3Uqbb1scuM\ndTqd6WIduzljsdra1gUFF6QILYiiyE5YAogECJAFAklIyEa2d/54b7g3G7lAbu694fd5nve5555z\ncnzzM9zffc95F6XOV/bn4Bsb4ZrHINS1ipVpgU0L4TfjYcNz0Nzo3zqqDkakxPK/d0xk2cMzmDXS\n3fppajG8tvkos3/5Ad9/cxdFuoSo8gHtVa6Uvzmj4Np/g4fWw7BZ7v31p2DF47b3+b4VEGRTCl8K\nxqTG86e7p/D6g9OZNizh7P6mFsOrm44w66k1fG/JTr2FrnpUm85ptdriVsp/kkbAXW/Dgr9A/yHu\n/WX74dXb4KUvwNHNfque6tqUoQm89sB0Xrl/KlOGuBN4Y7OrBf70B3x70XbyS6v9WEvVV+gzbqUC\niQiMvsl2Xpv7YwiPcx8r+AheuI5J+c9A6V7/1VF16crhSSx6cBov3zeVyUPc4/abWwxv5hYx95kP\neeivW9lx9JQfa6mCXVRYFFGOKAAaWy7uUZombqV6iiMcrvoWPLwNJt3TZmnQgae22IVL3nwQTub7\nsZKqMyLCVSOSeOPrV/LaA9O4aoR76J8xthf6/GfXcccfNvDx/pME26qKKjB43i6/GJq4leppMclw\n4zPwzc0w5lb3ftNi5z5/drKdwOXEZ/6ro+rStGGJvHzfNJY8dCWzR7b9oF2XX8adL2zkxt9+zNu5\nRTQ26xh+5T3PDmoXQxO3Ur6SOBy++CI8uJbSuHHu/abFTuDy7BRYfC8c2+W/OqouTczszx/vnsJ7\n37qam68YTKjHQPDdxVU8smg7V/98Dc99eIDKOh1FoLrn+Zz7YmjiVsrXBl3OpuzH4Z6/w/BrPQ4Y\nyFsMz82Av/wzHFqrvdADUM6gOH51+3g++O4svjo9s81MbMeq6vnZe58y/aereeKdPA6c0I5sqmva\n4lYq2GRMhbvegntXwYjr2h47sNr2QH/+Wti1WMeBB6D0hCj+Y/4YPvneHL4zN5ukmPCzx2obmvnz\n+sPMefpDvvriJtbsK9UVyVQHmriVClbpk+HOJXD/Ghh9M4jHP8PibbDkXvjVWFj7FNRc3HhP1fMS\nop08PCeLjx+fzS9uHUf2gJg2xz/87AR3/3Ez1z79Ac+vPUhFTYOfaqoCjXZOUyrYpU6ABS/BN7fY\nXuih7hYcp0vg/Z/A/4yGtx6yY8H1NnpAiQgLZcHkdFY+cg0v3zeV63JSEI/50AvKavmv5XuZ9tPV\nfOf1HeQeqdDe6Je4nmpxO3rkKkqpC5c43PZCn/V92PJH2PICVB+3x5rPwI5XbBkwBiZ+DcbdBhFx\n57yk6j2tQ8muGpHE4bIaXvrkMG9sPcrp+iYAzjS1sGRbIUu2FZIWI9znPMQt49OI91h2VF0atHOa\nUn1NTArMehweyYNbFsLg8W2PH8+D5d+Fp0fCW1+3ndl0SdGAkpkYzRNfGM3GH8zh57eOZUxq2y9Y\nhdWGJ9/dw5T/XsWji7bzyYGT+iz8EtJTiVtb3EoFGocTLr8Nxi2Aom2w9UXYtQSaXItfNNbCjldt\nic+Ay2+3JXG4f+utzopyOrhtcgYLJqWzo7CSlzccZtnOEuoamwHbCn8rt4i3cotI6x/JrRPSuHVC\nGhmJUX6uufKl+PB4wkLCdOY0pfosEUibCPOfhe/ugxt+CSmXtT2n8gis/QX8dgL8fiZ88luoLPJP\nfVUHIsIV6f146kuXs/GHc/jKaGfHVnhFHb9evZ9rnlrDgufW88rGI1TW6qiCvkhESItNIzUm9aKu\noy1upYJBRDxMuR8m3wcl22H7K7DrDaircJ9Tst2Wv/87ZF4JOTdBzhcg/uI+JFTPiIsI49qMMH48\n62ryiip5Y8tR3tlRzCmPJL2poJxNBeU8uXQ3s0clc/MVqcwelUJEWOg5rqyCydKblwIgSDdndk0T\nt1LBRMQ++x48Hq7/CXy2AnYsgvx/QHPrsCMDh9fZsuJxSJ1kE/ioz0NSll+rr6wxqfGMSY3nB5/P\nYfXeUhZvLeSDfaW0Pu5uaG5h5e7jrNx9nGhnKHNHD+DGcYO5OjuJcIcm8UudJm6lgpUjHEbPt6Wu\nAvYuszOxHVprp1VtVbTFllU/goThMPKfIHseZEyHUP0I8KdwRyg3jB3EDWMHUXq6nmU7Snh7exE7\nCyvPnlPT0Mzb24t5e3sxsREO5uYMYN6YgVyTnawt8UuU/qtVqi+I7A8T7rKluhQ+XQZ7lrqSeLP7\nvPIDsP53toTHwbCZMHwOjJgD/TL8V39FSmwE98wYyj0zhnLgRDXv5Bbx7s4SDp2sOXvO6fom3swt\n4s3cIqKcocwemcLnxgxkZnYy8ZE6vOxSoYlbqb4mJsVO6DLpHqgth33vwb7lcOB92yO91Zkq2Puu\nLQCJWTaRD70GR+OFP39TF294cgzfvn4kj87NZndxFct2lrBsZzGFFXVnz6ltaOZvu0r4264SHCHC\n1GEJzM0ZwJycAaQnaO/0vkwTt1J9WVQCjL/DlsZ6KPjIJvLPVkJVYdtzy/bbsvkPXIXAgTGQOQMy\np0PGlXa5UtWrROTs8/DH540kr6iK9/JKWJF3jIMeLfGmFsO6/DLW5Zfx5Lt7yEqJYdbIZGaPTGHS\nkAScDh1A1Jdo4lbqUhEWAVlzbTEGTn4G+avtAicFH0NT/dlTBWOXGz22Czb+n92ZOAIypkHaFEib\nDMmjIEQTQm8REcamxTM2LZ7HPjeS/aXVrMg7xqq9x9s8EwfYX1rN/tJqnv/oENHOUKYPT2TGiCRm\nZCUzPDkaEb2jEsw0cSt1KRKB5JG2TP+GbY0f3WifiR9aiyncgtBuVrayfFty/2rfh8fZ3u2pE9w9\n3ePTQZOCz4kI2QNiyR4Qy7/OyeJYZT2rPz3OP/YcZ/2BMs40uf/f1TQ0s2pvKav2lgIwOD6CK0ck\nMX1YItOHJzK4X6S/fg11gTRxK6Vsa3zYTFuAj1ct5+rMMDj8CRxZD0VbPYabuZypgkMf2tIqKgkG\njYOBY2HgOFsSh0OI9n72pYHxEdwxNZM7pmZS19DMhoNlrNlXypp9pRwtr2tzbnFlPYu3FrJ4q31U\nkpEQxbRhCUweYktmYpS2yAOcJm6lVAfNjijImmVvq4NtkRdvg6OboHCzLa0LoXiqPWk7wR14373P\nEWFb9imjISUHknPs+/h0vdXuA5HOUGaPSmH2qBSMMRw6WcO6/JN8tP8k6w+UcfpMU5vzj5TXcqS8\nlte32ESeHBvO5CH9mZDRn9oqqG9s1mFnAUYTt1Kqe2ERdja2zCvte2Pg1BGbzItzXWW7bYW311QP\nJTts8eSIhKQRkJRte7QnDrfjzBOH2eFt6qKJCMOSYxiWHMNd04fQ1NzCjsJKNhwsY/2BMrYcLqe+\nse0jkROnz7B81zGW7zoGCL/JW8nowXFckd6PManxjE2NJyslBkeofunyF03cSqnzJwL9M2257Ba7\nr6UFKg7BsZ3ujm0lO6H6WOfXaKpzn9deZAL0H9K29Eu3i6rEp9kvEuq8OUJDmJjZn4mZ/fmX2SNo\naGphR+EpNh4sY8vhCrYerji7HGmrphbDzsLKNh3gwh0h5AyKY/TgOHIGxZEzMJZRg+KICdeU0hs0\nykqpnhESYlvNicPdyRzsWPLSvVC6x/W61/Zorz3Z9bXqym0p3tb58egUm8DjBnNZeQN8nA9xqRA7\nEGIHQewACI/t2d+vD3I6Qs4+2wZoaTF8VnqazQUV5B6pYN3eQo7XdXzefaaphe1HT7H96Kk2+9P6\nR5KVEkPWgFiyUmIYkRLDsKQYXXu8h2niVkr5VlQCDLnKFk+15XByP5zcB2UHbI/18oO2eAxN61RN\nqS3F2xgKsOrvHc9xxtjJaKJT7Bj06BT7PirRlugk25kuKsG28B3OnvqNg1ZIiDBqYByjBsZx17RM\nli0r5Oprryf3aAW7CivZVVRJXlElxZWd//8prKijsKKONftOtNmfEO1kaFI0QxKjyUyMIiMhivSE\nSNITokiOCdfOcOfJp4lbROYBvwZCgT8YY37W7ng48GdgIlAG3GaMKfBlnZRSASIqATKm2uKppQVO\nl8Cpw1BR4C6njkJlIVQVtZ3GtSsN1VBebb8IeCMs2pXE+0FEP/drRLy7hMdBRJxtzTtjPF5j7M/3\nwc528VFhzBqZwqyRKWf3lVWfIa+4ik9Lqvj02Gn2llSRX1pNU+sqKe2U1zRQXtPA1sMVHY6FO0IY\nFB/B4H6RDIqPZHC/CFLiIkiJDSclNpwBcREkxjh1cRUPPkvcIhIKPAvMBQqBzSKy1Bizx+O0e4EK\nY8wIEbkd+Dlwm6/qpJQKAiEhdinS+FR3ZzhPzU02sVcVQVURezasYnRaP/v+9HF7rPp496329hpr\noLIGKo9eeN3DosAZ3fY1LNJuOyIYVVYJ1e/YjnlhEbbHvSPc/Roablv+oeGu906PEuYqTghx2O2Q\nMLtQTEiY3RfisEPvfNyCTYwJZ2Z2MjOz3bPpNTS1UFBWw/7j1ewvPc3+0mryj1dTUFbTZlx5e2ea\nWigoq6WgrLbLcwBiwx0kxDhJiHaSGO0kLjKMeI9SVNRIfd4xYsIdxEQ4iHaGEukMJcrpIDIslIiw\nkD7Tsvdli3sKkG+MOQggIq8B8wHPxD0feNK1vRj4nYiIMabzr21KKRXqsB3V+qUDcLAgnNHzbmx7\njjFQfwqqT9hb6tXHXdsn7LP1mpNQW+Yq5XZ1NW9a8d1prG07H3w7AwGOr7n4/053JNSdxEMcICGu\nhB7qfpUQ+yVJQtzv2xSYUXUain8JiGufdLJtX50iZAPZ4D6WACZBONNsqGtspq6hhbqmFuobm6lr\ntK9NzYb2H/im3VrVBoEWoMpVOpEO8CnUY0tnPShCRAgR12uIXRE7RARx/Roidp+IXS+7Nc+7ayMB\nMb+QLxN3KuD51bUQmNrVOcaYJhGpBBLpPOZKKeUdETukLLI/JGd3f74xdihbbblN+HWnPF4r7bH6\nSqivsttnqu1rQ7Xdbqg+Z8LudaYZmpvhIr+L9AOoLbioawgQ4SqdDvLz1x3wrm8CBDxfJu7Ovpe0\n/2LlzTmIyAPAY9i/o2YR2X7x1es18UBlt2cFhgzgiL8rcR40tr6jsfWNYIoraGx9aeSF/qAvE3ch\nrrsXLmlAcRfnFIqIAxv48vYXMsYsBBYCiMgJY8wkn9TYB0RkoTHmAX/XwxsaW9/R2PpOMMU2mOIK\nGltfEpEtF/qzvuwCuRnIEpGhIuIEbgeWtjtnKfBV1/YXgfe9eL59qpvjgeZdf1fgPGhsfUdj6zvB\nFNtgiitobAOSz1rcrmfW3wRWYp9ivGiM2S0iPwa2GGOWAi8AfxGRfGxL+3YvLh1Mt0IwxgTTH5PG\n1nc0tr4TNLENsriCxjYg+XQctzFmObC83b4nPLbrgS+d52UX9kDVVOc0tr6jsfUdja3vaGx954Jj\nKzrySimllAoefW+aH6WUUqoPC9jELSLzRGSfiOSLyPc6OR4uIotcxzeKyJDer2Vw8iK23xaRPSKy\nU0RWi0imP+oZjLqLrcd5XxQRIyJB0WM3EHgTWxFZ4Prb3S0ir/R2HYOVF58JGSKyRkRyXZ8LN/ij\nnsFGRF4UkVIRyeviuIjIb1xx3ykiE7y6sDEm4Aq2M9sBYBjgBHYAo9ud8w3gOdf27cAif9c7GIqX\nsZ0NRLm2H9LY9lxsXefFAmuBDcAkf9c7GIqXf7dZQC7Q3/U+xd/1DobiZWwXAg+5tkcDBf6udzAU\n4BpgApDXxfEbgPewc5pMAzZ6c91AbXGfnS7VGNMAtE6X6mk+8JJrezEwR/rKRLS+1W1sjTFrjDGt\n00BtwI7BV93z5u8W4D+BX2BnZlTe8Sa29wPPGmMqAIwxpb1cx2DlTWwNEOfajqfjnByqE8aYtXQy\nN4mH+cCfjbUB6Ccig7q7bqAm7s6mS03t6hxjTBN22EJir9QuuHkTW0/3Yr8Rqu51G1sRGQ+kG2OW\n9WbF+gBv/m6zgWwRWSciG1yrE6rueRPbJ4E7RaQQO1Lo4d6pWp93vp/HQOCux91j06WqDryOm4jc\nCUwCZvq0Rn3HOWMrIiHAM8DXeqtCfYg3f7cO7O3yWdi7RB+JyBhjTDBNIuIP3sT2y8CfjDFPi8h0\n7PwbY4wxQTzjd0C4oDwWqC3u85kulXNNl6o68Ca2iMh1wA+Bm4wxZ3qpbsGuu9jGAmOAD0SkAPtM\na6l2UPOKt58J7xhjGo0xh4B92ESuzs2b2N4LvA5gjFmPXTMkqVdq17d59XncXqAmbl9Nl6q8iK3r\ndu7vsUlbnxN675yxNcZUGmOSjDFDjDFDsP0HbjLGXPCcxZcQbz4T3sZ2rEREkrC3zg/2ai2Dkzex\nPQLMARCRHGziPtGrteyblgJfcfUunwZUGmNKuvuhgLxVbnw3Xeolz8vYPgXEAG+4+vsdMcbc5LdK\nBwkvY6sugJexXQlcLyJ7sAtaPmaMKfNfrYODl7H9DvC8iDyKvZX7NW0odU9EXsU+ukly9Q/4ERAG\nYIx5Dttf4AYgH6gF7vbquhp7pZRSKngE6q1ypZRSSnVCE7dSSikVRDRxK6WUUkFEE7dSSikVRDRx\nK6WUUkFEE7dSSikVRDRxK6WUUkFEE7dS6iwR+bKIbBeRXa71wnP9XSelVFs6AYtSqg0RycIumbsH\neMIYo0s4KhVAAnLKU6WUf4jIZdj17R81xqzwd32UUh1pi1spBYCIhGEXPnnEGPORv+ujlOqcPuNW\nSrWaB+zWpK1UYNPErZRqNQVY4+9KKKXOTRO3UqrVaWC6vyuhlDo3TdxKqVbPA8kisldElolIvL8r\npJTqSBO3UgoAY0yFMeYWY0wOIMAof9dJKdWRJm6lVBsicgdQBmz2d12UUh3pcDCllFIqiGiLWyml\nlAoimriVUkqpIKKJWymllAoimriVUkqpIKKJWymllAoimriVUkqpIKKJWymllAoimriVUkqpIPL/\nIz/A3MMAAAADSURBVF+XpHGRXAMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import odeint\n", "\n", "zeta = np.linspace(0,0.999,100)\n", "os = np.exp(-np.pi*zeta/np.sqrt(1-zeta**2))\n", "dr = np.exp(-2*np.pi*zeta/np.sqrt(1-zeta**2))\n", "pd = np.sqrt(1-zeta**2)\n", "\n", "plt.figure(figsize=(8,8))\n", "plt.plot(zeta, os, lw=3)\n", "plt.plot(zeta, dr, lw=3)\n", "plt.plot(zeta, pd, lw=3)\n", "plt.axis('square')\n", "plt.xlim(0, 1)\n", "plt.ylim(0, 1)\n", "plt.title('Performance Characteristics of Underdamped Second Order Systems')\n", "plt.xlabel('$\\zeta$')\n", "plt.ylabel('Performance Characteristic')\n", "plt.text(0.35, 0.4, 'Overshoot')\n", "plt.text(0.05, 0.2, 'Decay Ratio')\n", "plt.text(0.70, 0.8, 'Natural Period / Period')\n", "plt.gca().set_xticks(np.arange(0,1,0.1), minor=True)\n", "plt.gca().set_yticks(np.arange(0,1,0.1), minor=True)\n", "plt.grid(b=True, which='major')\n", "plt.grid(b=True, which='minor')\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "nbpages": { "level": 3, "link": "[3.6.4.2 Starting with a Step Response](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.4.2-Starting-with-a-Step-Response)", "section": "3.6.4.2 Starting with a Step Response" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "nbpages": { "level": 3, "link": "[3.6.4.2 Starting with a Step Response](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.4.2-Starting-with-a-Step-Response)", "section": "3.6.4.2 Starting with a Step Response" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[3.6.4.2 Starting with a Step Response](https://jckantor.github.io/CBE30338/03.06-Second-Order-Models.html#3.6.4.2-Starting-with-a-Step-Response)", "section": "3.6.4.2 Starting with a Step Response" } }, "source": [ "\n", "< [3.5 One Compartment Pharmacokinetics](https://jckantor.github.io/CBE30338/03.05-One-Compartment-Pharmacokinetics.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [3.7 Interacting Tanks](https://jckantor.github.io/CBE30338/03.07-Interacting-Tanks.html) >

\"Open

\"Download\"" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 2 }