Files
optoelectronic-systems-theo…/assignment.ipynb

408 lines
162 KiB
Plaintext

{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Optoelectronic Systems Theory Assignment\n",
"\n",
"1. For a cylindrical diffraction-limited optical system (Fig. 1), on which a plane monochromatic wave with length $\\lambda$ and amplitude $A=1$ falls, find:\n",
"\n",
" 1. A coherent transfer function $\\tilde{h}(\\nu_x)$ and plot its graph\n",
" 2. An optical transfer function $\\tilde{H}_N^{OS}(\\nu_x)$ and plot its graph\n",
"\n",
"2. Find a polychromatic transfer function $\\tilde{H}^{PC}(\\nu_x)$ for the radiation of a corresponding blackbody with temperature $T$, if the image is formed in the rear focal plane, and the spectral sensitivity of the radiation receiver is approximated by a Gaussian distribution with a mathematical expectation of 600 nm and a standard deviation of 100 nm. The pupil function $P(\\xi)$ is shown in Figure 2.\n",
"\n",
"3. Find the time-frequency spectrum of the radiation flux $\\tilde{\\Phi}_t(\\nu_t)$ and the magnitude of the radiation flux $\\Phi_t(t)$ in the image analysis plane of the optical system at the output of the modulator of the image analyzer during its linear scanning (Fig. 3) and plot their graphs. The optical system is a lens with a normalized scattering function $H_N^{OS}(x', y')=\\delta(x', y')$, the source of radiation is an object in the form of a rectangle with a constant energy brightness $L_0$, the study of which obeys Lambert's law. The modulator of the image analyzer is a lattice with a cosine distribution of the transmission coefficient along the x axis."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from scipy import signal, constants\n",
"import matplotlib.pyplot as plt"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Initial data"
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {},
"outputs": [],
"source": [
"wavelength = 0.8e-3 # mm\n",
"focus = 90 # mm\n",
"T = 5000 # K\n",
"mu = 0.6e-3 # mm\n",
"sigma = 0.1e-3 # mm\n",
"\n",
"def triangle(x):\n",
" return np.where(np.abs(x) <= 1, 1 - np.abs(x), 0)\n",
"\n",
"def rect(x):\n",
" return np.where(np.abs(x) <= 0.5, 1, 0)\n",
"\n",
"def pupil(x):\n",
" return triangle((x - 3) / 3) * rect((x - 1.5) / 3)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pupil function"
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(0, 4, 100)\n",
"\n",
"plt.figure()\n",
"plt.plot(x, pupil(x))\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max frequency = 41.667 [1/mm]\n"
]
}
],
"source": [
"pupil_diameter = 3\n",
"max_frequency = pupil_diameter / (wavelength * focus)\n",
"print('Max frequency = {:.3f} [1/mm]'.format(max_frequency))"
]
},
{
"cell_type": "code",
"execution_count": 145,
"metadata": {},
"outputs": [],
"source": [
"def transfer_function(pupil_func, frequency, wavelength, focus):\n",
" return signal.convolve(pupil_func(-frequency * wavelength * focus), pupil_func(frequency * wavelength * focus), 'same')\n",
"\n",
"def transfer_function_n(pupil_func, frequency, wavelength, focus):\n",
" result = transfer_function(pupil_func, frequency, wavelength, focus)\n",
" return result / np.max(result)"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"freq = np.linspace(-max_frequency, max_frequency, 1000)\n",
"H = transfer_function_n(pupil, freq, wavelength, focus)\n",
"\n",
"plt.figure()\n",
"plt.plot(freq, H)\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.000579554391\n"
]
}
],
"source": [
"wien = constants.value('Wien wavelength displacement law constant')\n",
"wavelength_peak = wien * 1e3 / T\n",
"print(wavelength_peak)"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [],
"source": [
"def sensitivity_n(wavelength):\n",
" return np.exp(-(wavelength - mu) ** 2 / (2 * sigma ** 2))\n",
"\n",
"def luminance(wavelength):\n",
" c = constants.c * 1e3 # mm\n",
" numerator = 4 * (c ** 2) * constants.hbar\n",
" exp = np.exp((2 * np.pi * constants.hbar * c) / (wavelength * constants.k * T))\n",
" denominator = (wavelength ** 5) * (exp - 1)\n",
"\n",
" return numerator / denominator\n",
"\n",
"def luminance_n(wavelength):\n",
" return luminance(wavelength) / luminance(wavelength_peak)"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Maksim Vinogradov\\AppData\\Local\\Temp\\ipykernel_20280\\2852790975.py:7: RuntimeWarning: divide by zero encountered in divide\n",
" exp = np.exp((2 * np.pi * constants.hbar * c) / (wavelength * constants.k * T))\n",
"C:\\Users\\Maksim Vinogradov\\AppData\\Local\\Temp\\ipykernel_20280\\2852790975.py:7: RuntimeWarning: overflow encountered in exp\n",
" exp = np.exp((2 * np.pi * constants.hbar * c) / (wavelength * constants.k * T))\n",
"C:\\Users\\Maksim Vinogradov\\AppData\\Local\\Temp\\ipykernel_20280\\2852790975.py:8: RuntimeWarning: invalid value encountered in multiply\n",
" denominator = (wavelength ** 5) * (exp - 1)\n"
]
},
{
"data": {
"image/png": "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UiKEEEIIjyBJiRBCCCE8giQlQgghhPAIXpWULF68mOTkZAICAkhLS2Pjxo2nPP+DDz5g8ODBBAQEMGLECFasWNHhfkVRePDBB0lISCAwMJDp06ezb9++DudUVlZy/fXXExYWRkREBLfccgv19fUdztmxYwdTpkwhICCApKQkHn/88a55wRrxxHZeu3Ytl19+OQkJCQQHBzNq1CjeeeedrnvRGvDEdj7W/v37CQ0NJSIi4qxepyfw1LZWFIUnn3ySgQMHYrFYSExM5JFHHumaF60BT23nL7/8kokTJxIaGkpMTAxXXXUVeXl5XfKataBFOz/yyCNMmjSJoKCgk34m5Ofnc8kllxAUFERsbCy/+93vsNlsnXtxipdYunSpYjablVdffVXJyclRFixYoERERCglJSUnPP+HH35QDAaD8vjjjyu7du1S7r//fsVkMinZ2dmucx577DElPDxcWb58ubJ9+3blsssuU1JSUpSmpibXORdeeKGSmpqqrF+/Xvnuu++U/v37K9dee63r/pqaGiUuLk65/vrrlZ07dyrvvfeeEhgYqLz44ovd1xjdyFPb+ZFHHlHuv/9+5YcfflD279+vPP3004per1c+/fTT7muMbuSp7ezU2tqqjBs3TrnooouU8PDwLn/97uTJbf3LX/5SGTRokPLxxx8rBw8eVDZv3qysWrWqexqim3lqOx88eFCxWCzKokWLlP379ytbtmxRpk6dqowePbr7GqMbadXODz74oPLUU08pCxcuPOFngs1mU4YPH65Mnz5d2bZtm7JixQolOjpaWbRoUaden9ckJRMmTFDuvvtu1892u13p2bOn8uijj57w/GuuuUa55JJLOhxLS0tTbr/9dkVRFMXhcCjx8fHKE0884bq/urpasVgsynvvvacoiqLs2rVLAZRNmza5zvniiy8UnU6nFBYWKoqiKM8995wSGRmptLS0uM657777lEGDBp3lK9aGp7bziVx88cXK/PnzO/8iPYCnt/Pvf/975YYbblBee+01r09KPLWtd+3apRiNRmXPnj1d80I15qnt/MEHHyhGo1Gx2+2ucz755BNFp9Mpra2tZ/mq3U+Ldj7WyT4TVqxYoej1eqW4uNh17Pnnn1fCwsI6/H78KV4xfNPa2sqWLVuYPn2665her2f69OlkZmae8DGZmZkdzgeYNWuW6/xDhw5RXFzc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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"wv = np.linspace(0, 1e-3, 1000)\n",
"\n",
"S = sensitivity_n(wv)\n",
"L = luminance_n(wv)\n",
"\n",
"plt.figure()\n",
"plt.plot(wv, L)\n",
"plt.plot(wv, S)\n",
"plt.plot(wv, S * L)\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"330 890\n",
"0.0003303303303303303 0.0008908908908908909\n"
]
}
],
"source": [
"spectrum = S * L\n",
"start_index = np.argmax(spectrum >= 0.01)\n",
"end_index = len(spectrum) - np.argmax(spectrum[::-1] >= 0.01)\n",
"\n",
"start_wavelength = wv[start_index]\n",
"end_wavelength = wv[end_index]\n",
"\n",
"print(start_index, end_index)\n",
"print(start_wavelength, end_wavelength)"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [],
"source": [
"def transfer_function_polychromatic(pupil_func, sensitivity_func, luminance_func, frequency, start_wavelength, end_wavelength, focus):\n",
" delta_wavelength = 1e-5\n",
" wavelength_range = np.arange(start_wavelength, end_wavelength, delta_wavelength)\n",
" \n",
" numerator = np.sum([transfer_function_n(pupil_func, frequency, wv, focus) * sensitivity_func(wv) * luminance_func(wv) * delta_wavelength for wv in wavelength_range], 0)\n",
" denominator = np.sum([sensitivity_func(wv) * luminance_func(wv) * delta_wavelength for wv in wavelength_range])\n",
"\n",
" return numerator / denominator"
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"H_pc = transfer_function_polychromatic(pupil, sensitivity_n, luminance_n, freq, start_wavelength, end_wavelength, focus)\n",
"\n",
"plt.figure()\n",
"plt.plot(freq, H_pc)\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 159,
"metadata": {},
"outputs": [],
"source": [
"b = 6 # mm\n",
"beta = 0.5\n",
"period_x = 2.5 # mm\n",
"vel_x = 90 # mm/s\n",
"c = 1 # mm\n",
"sigma_aperture = 7 # deg\n",
"tau = 1\n",
"luminance_0 = 0.7e-6 # W / (mm^2 * srad)"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3.9193865806850914e-07"
]
},
"execution_count": 173,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flux_0 = 0.5 * np.pi * tau * np.sin(sigma_aperture * (np.pi / 180)) ** 2 * luminance_0 * 2 * b * 2 * c\n",
"flux_0"
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {},
"outputs": [],
"source": [
"def sinc(x):\n",
" return np.where(x == 0, 1, np.sin(x) / x)\n",
"\n",
"def flux(t):\n",
" return flux_0 + flux_0 * sinc(2 * np.pi * b * beta / period_x) * np.cos(2 * np.pi * vel_x / period_x * t)"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGsCAYAAAAPJKchAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABgrklEQVR4nO3dd3hc1Zk/8O+drjbqvVqWuy33IowxxgXbxJQksICDSUJIczaQhPzAu2TBCQSn7UKWrBdMS5Y4poSOwQiD3C3LRbbcm3q1ep8ZzdzfHzN3bGHZ1kgzc+fe+X6ex09ieXTnncPMnfec855zBFEURRARERHJRCN3AERERBTcmIwQERGRrJiMEBERkayYjBAREZGsmIwQERGRrJiMEBERkayYjBAREZGsmIwQERGRrJiMEBERkayYjBAREZGsFJWMbN++HStWrEBKSgoEQcB7773n0+fLysqCIAiX/Vm9erVPn5eIiCiYKCoZ6erqwuTJk/GXv/zFL89XVFSE2tpa95/8/HwAwJ133umX5yciIgoGikpGli1bhqeeegp33HHHgP9usVjwyCOPIDU1FWFhYZg9ezYKCgqG/Hzx8fFISkpy//noo48wcuRIzJ8/f8jXJCIiov4UlYxcy09+8hPs2bMHmzZtwpEjR3DnnXdi6dKlOHPmzLCvbbVa8frrr+O73/0uBEHwQrREREQEAIIoiqLcQQyFIAh49913cfvttwMAKioqkJ2djYqKCqSkpLgft2jRIsyaNQu//e1vh/V8b775Ju69997Lrk9ERETDo5qRkZKSEtjtdowePRrh4eHuP9u2bcO5c+cAACdPnhywIPXSP4899tiA13/55ZexbNkyJiJEREReppM7AG/p7OyEVqvFgQMHoNVq+/1beHg4ACA7OxsnTpy46nViY2Mv+1l5eTk+//xzvPPOO94LmIiIiACoKBmZOnUq7HY7GhoaMG/evAEfYzAYMHbsWI+v/eqrryIhIQG33HLLcMMkIiKir1BUMtLZ2YmzZ8+6/15aWori4mLExMRg9OjRWLlyJVatWoU//elPmDp1Ki5cuICtW7ciNzd3yImEw+HAq6++ivvvvx86naKai4iISBEUVcBaUFCABQsWXPbz+++/H6+99hpsNhueeuop/O1vf0N1dTXi4uIwZ84crF27FpMmTRrSc3722We4+eabcerUKYwePXq4L4GIiIi+QlHJCBEREamPalbTEBERkTIxGSEiIiJZKaIi0+FwoKamBhEREdz9lIiISCFEUURHRwdSUlKg0Vx5/EMRyUhNTQ3S09PlDoOIiIiGoLKyEmlpaVf8d0UkIxEREQCcL8ZsNnvtujabDZ999hmWLFkCvV7vtetSf2xn/2Fb+wfb2T/Yzv7hy3Zub29Henq6+3v8ShSRjEhTM2az2evJSGhoKMxmM9/oPsR29h+2tX+wnf2D7ewf/mjna5VYsICViIiIZMVkhIiIiGTFZISIiIhkxWSEiIiIZMVkhIiIiGTFZISIiIhkxWSEiIiIZMVkhIiIiGTFZISIiIhkxWSEiIiIZMVkhIiIiGTFZISIiIhkpYiD8nzl1d3l2F2mQfm28xiXEoUZmdGIDjPIHRYReUFbjw37SptxtqETzV0W6LUapEaHYHJaFCakmK95cBcR+U9QJyObj9ahuFaDgtqzAACdRsCNY+Lxg/kjMTMrRuboiGgoDla0YMP288g/Xo8+hzjgY1IiTVg5JxPfmpOJyBCeBkskt2FN06xbtw6CIODhhx8e1OM3bdoEQRBw++23D+dpvebOaam4KcWB2ycnIychHH0OEZ+faMCd/7sHP/i//Wjo6JU7RCIapIaOXjy06RC+/j+78cnROvQ5RGTHheGOqan4/g3Z+PZ1WbhhdDxCDVrUtPXiD1tOYcEfC/Dm/kqI4sBJCxH5x5BHRoqKivDCCy8gNzd3UI8vKyvDI488gnnz5g31Kb3urhlpCG84guXLJ0Gv1+NsQwde3lmGt/ZXYsuxehSWNuM/75qMm8Ymyh0qEV3F7nON+Ok/itHYaYEgAN+YlobvzRuBsUnmyx7ba7Njc0kt/vLlWZy70IX/9/YR7DjTiGe+PgnhxqAeLCaSzZBGRjo7O7Fy5Ups2LAB0dHR13y83W7HypUrsXbtWmRnZw/lKf0iJyECz3x9Ej781+sxIcWM1m4bvvfX/XhlZ6ncoRHRFWwsrMC3XipEY6cFY5Mi8OFPrscf75w8YCICACa9Fl+floZPH74Bjy4dC51GwIeHa3DHX3ahro2joURyGFI3YPXq1bjllluwaNEiPPXUU9d8/K9//WskJCTggQcewI4dO675eIvFAovF4v57e3s7AMBms8Fmsw0l5AFJ1/rqNXPiQvDW92fhyQ9P4M0D1fj1R8fR1m3BTxaM9NpzB5MrtTN5X7C19cu7yrDu09MAgDumpmDt18YhxKAd9Ov/3twMTE834183HcaZhk7c+b+78dfvTEd6dOhVfy/Y2lkubGf/8GU7D/aagujhZOmmTZvw9NNPo6ioCCaTCTfeeCOmTJmCZ599dsDH79y5E3fffTeKi4sRFxeHb3/722htbcV77713xed48sknsXbt2st+vnHjRoSGXv0m4U2iCORXC/i4UgsAuC3TjptSOLdMFAh21gl4q9T52VyU4sDXMhwY6gKZpl7gL8e1aLIIiDWKeHiiHWYurCMatu7ubtx7771oa2uD2TzwaCXg4chIZWUlHnroIeTn58NkMl3z8R0dHbjvvvuwYcMGxMXFDfp51qxZg5///Ofuv7e3tyM9PR1Lliy56ovxlM1mQ35+PhYvXgy9fuCK+lsAjCo4j2e3nsX75VrcNDsXyycleS2GYDCYdibvCJa2/vxEA/65txgAsPrGbDy8MGfY11yyqBf3vFSEypYevFkXg9e/OwOhhoFvkcHSznJjO/uHL9tZmtm4Fo+SkQMHDqChoQHTpk1z/8xut2P79u14/vnnYbFYoNVq3f927tw5lJWVYcWKFe6fORwO5xPrdDh16hRGjrx86sNoNMJoNF72c71e75M35LWu+/DiMeiw2PHyzlI8+u5RjEw0Y2JqpNfjUDtf/fejy6m5rc/Ud+Dnb5XAIQJ3z0zHIzeP9cqeIWmxevztgdn4+v/sQkl1O/7t/RN4/p6pV722mts5kLCd/cMX7TzY63lUwLpw4UKUlJSguLjY/WfGjBlYuXIliouL+yUiADB27NjLHn/rrbdiwYIFKC4uRnp6uidPL6t/Wz4O80fHo9fmwA/+7wDaejiHSeRvXZY+/OjvB9Fjs2NuTiyeun2iVzcvGxEXhpfunwGdRsDHR2rxtz3lXrs2EV2ZR8lIREQEJk6c2O9PWFgYYmNjMXHiRADAqlWrsGbNGgCAyWS67PFRUVHu6xgMypmU1WoE/PmeqciICUV1aw8ef+8o9yYg8rP/eP8YzjZ0ItFsxHN3T4VO6/0TLaZnxmDN8nEAgKc+Po6SqjavPwcR9ef1T3JFRQVqa2u9fdmAEBmix7N3T4HWtRTwveJquUMiChqfH6/HPw9WQSMAz987DXHhl0/lest352Zh6YQk2OwifvFWMSx9dp89FxF5YTv4goKCq/79q1577bXhPqWspmVE46GFo/Cf+afx5AfHMW9UvE9vikQEtHXb8G/vlgAAHpyX7fPjGgRBwG+/Pgn7y5txur4Tf956Br+8eaxPn5MomPHU3iH48Y0jMT7ZjLYeG3778Qm5wyFSvd98fBwNHRZkx4XhZ4tH++U5Y8IMeOr2SQCA9QXncLxmcKsCiMhzTEaGQKfV4LdfnwRBAN45VI1dZxvlDolItfaVNuPtA1UQBOD338yFSa+99i95ydKJSbhlUjIcIvDkB8dYJ0bkI0xGhmhKehRWzckEADz+3lFY+xwyR0SkPg6HiF9/dAyAcxnvDBlO0/73W8YhRK/FvrJmfHC4xu/PTxQMmIwMwyM3j0F8hBGljV34eyGXABJ529sHqnC0uh0RRh1+sWSMLDGkRIVgtesoiN9uPoEuS58scRCpGZORYYgw6fGzRc756z9vPYP2Xu49QuQtHb02/H7LSQDAQ4tGyVoo/r152ciICUV9uwUvbD8vWxxEasVkZJjumpGGnIRwtHTbsL7gnNzhEKnGSztK0dhpRXZcGFblZckai0mvxWPLnKtpXt5xHk1dVlnjIVIbJiPDpNNq8NhS503qlZ2lqG3rkTkiIuVr6bLilZ2lAJzToQad/LeqZROTMCk1El1WO17cXip3OESqIv8nXAUWjkvArKwYWPoc+F+OjhAN24s7zqPD0odxyWYsnRAYB1MKgoBHbnbWrby+rxItFpkDIlIRJiNeIAgCHl48CgDwj6JK1Lf3yhwRkXI1dlrw2q4yAMDPF4+GRuO9s2eG64ZRcZg1IgbWPgc+q+btk8hb+GnykrzsWMzIjIa1z4EXtrHAjWioXtx+Hj02OyanRWLRuAS5w+lHEAT8wrXpWmGDwI4HkZcwGfESQRDw04XO0ZG/F5ajoYM3KSJPtfXYsLGwAoBzBY03T+T1ltnZsZieEQW7KODV3VzST+QNTEa8aN6oOExJj4Klz4FXdpbJHQ6R4mwsrECnpQ+jE8OxYExgjYpc6gc3jAAAbCqqQls3l/QTDReTES8SBAGrF+QAADYWlnNzJCIPWPrseHWXc5XK928YGZCjIpIbR8chJVREl9WOv+4pkzscIsVjMuJlC8cmYERcGNp7+/D2gSq5wyFSjPcP1aChw4Ikswm3Tk6RO5yrEgQBi1KdR0C8trsMvTa7zBERKRuTES/TaAR893rnEO7LO0thd/BgLaJrcThEvLDduSz+u9dnBcS+ItcyJVZESqQJzV1WfMgza4iGJfA/8Qr0jWmpiArVo6K5G/nH6+UOhyjgbTt9AecudCHCqMM9szLkDmdQtAJw76x0AM7REZ7oSzR0TEZ8INSgw8rZzhvqK7u4UyPRtfzfXueqlLtmpiPCpJc5msG7a0YqjDoNjtW040B5i9zhECkWkxEfuW9OFrQaAftKm3G6vkPucIgCVmVzN7481QAA+NacTJmj8Ux0qAG3T0kFALy6u0zeYIgUjMmIjyRFmtwbNkn7JhDR5f5eWAFRdC6NHxEXJnc4Hrv/uiwAwKdH61DXxv2FiIaCyYgPrZzt7OX982AVuq1c5kv0VZY+O97cXwlAeaMikvEpZswaEQO7Q8TfC7kJGtFQMBnxoetz4pAZG4qO3j58dLhW7nCIAs4nJXVo7rIiOdKEhWMDd5Oza1mV50yk3txfiT67Q+ZoiJSHyYgPaTQC7nWtDHidPSaiy0iFq/fMyoBOq9zb0eLxiYgJM6C+3YJtpy/IHQ6R4ij3068Q35yeBoNWgyNVbThS1Sp3OEQB40x9Bw6Ut0CrEXD3zHS5wxkWo06LO6Y6C1nfKKqUORoi5WEy4mOx4UYsm5QEANjEmxSRm7RD8YIxCUgwm2SOZvj+xZVQbT3ZwIMyiTzEZMQP7prhvEl9dLiG20YTAeizO/DOoWoAwJ0z0mSOxjtGJ0ZgakYU7A4R7xysljscIkVhMuIHedmxSIk0ob23D5+f4I6sRNvPXMCFDgtiwwy4ScGFq18lTTe9WVTJHVmJPMBkxA80GgFfn+bs/f2Th+cR4a39zs/BbVNSoVdw4epX3ZKbglCDFucbu1BUxh1ZiQZLPXeBAPf1ac7itm2nL6ChnfPJFLyau6zuEUK1TNFIwo063DIpGQDw7iF2PIgGi8mIn2THh2N6ZjQcIvBeMeeTKXh9UFwNm13ExFQzxiWb5Q7H66RVNR8fqYWljzViRIPBZMSPvuGaqnn7QBXnkyloSYWr35ymrlERyezsWCSZnTViX57kniNEg8FkxI9uyU2GUafB6fpOHKtplzscIr8rbezCkao2aDUCVkxOkTscn9BqBNw2xfna3jvEUVCiwWAy4keRIXosGpcIAPjwcI3M0RD5n/S+n5sTh9hwo8zR+M5trpN8vzjZgLYem8zREAU+JiN+9rVcZ3HbR0dqOVVDQUUURXzgSkZuVemoiGRccgTGJEbAanfgkxKeS0V0LUxG/GzB2ASEGbSobu3BwYpWucMh8psTtR0429AJg06Dmyckyh2OTwmCgNtdhazvcqqG6JqYjPiZSa/FkgnO7eE5VUPBRBoVuWlMAiJMepmj8T2pbqSwtBm1bT0yR0MU2JiMyGDFZOdUzccltbA7OFVD6ieKojv5Vmvh6lelRIVgemY0AOCTkjqZoyEKbExGZHB9TjwiQ/S40GFBYWmT3OEQ+dzBihZUt/YgzKDFwnHq2f79Wpa7NkD75CjrRoiuhsmIDAw6DZa6pmo+OsKbFKnfB8XOUZElE5Jg0mtljsZ/lrtO7N5f3oJ67rxMdEVMRmQiDVV/UlILm90hczREvuNwiNh81DlNofZVNF+VHBmCaRlREEVwVQ3RVTAZkcmc7BjEhRvQ0m3DrrONcodD5DMHK1pwocOCCJMOc3Pi5A7H76Spms2sGyG6IiYjMtFpNbjZNVWz5RhvUqRen7hGRRaNS4RBF3y3nGWuZKSovJmHZBJdQfDdGQLI0onOZCT/eD1X1ZAqiaKIT13JiJR8B5vUqBBMSXdO1XzKjgfRgJiMyGhOdizMJh0aO604UN4idzhEXnesph3VrT0I0Wsxf3S83OHI5hbX6MjHLFgnGhCTERnptRosdJ1Vw6kaUiNpVOTGMfEIMQTPKpqvWuZaVbOvrBkNHZyqIfoqJiMyu7RuhGfVkNpI0xLSlGSwSosOxeS0SIgi8PnxBrnDIQo4TEZkNn90PEx6DapaenC8tl3ucIi85myD8ywavVbAgrHBs9HZlSwe7xwFzT/OUVCir2IyIrMQgxY3jHLOpW85ypsUqYc0RXN9ThzMQXAWzbVIZ1LtOteELkufzNEQBRYmIwFAGsLecqxe5kiIvIdTNP2NSghHZmworH0ObD99Qe5wiAIKk5EAsHBsInQaAafqO1Da2CV3OETDVt3ag6PV7dAIzv1FCBAEAYvHSVM17HgQXYrJSACIDNVjTnYsAOAzrqohFfjipLNIc1pGNGLDjTJHEzikupEvTjWgj8dAELkxGQkQSyY4b1JbT7LSnpRv6wlnz38hR0X6mZ4ZjehQPVq7bSgq495CRBImIwFiwRjnaoMD5S1o7bbKHA3R0HVb+7D7XBMAYOE4rqK5lE6rwU1jOVVD9FVMRgJEekwoxiRGwO4QsY3FbaRgO880wtrnQHpMCEYlhMsdTsBxL/E9wb2FiCRMRgLITa5e5BecqiEFk96/C8cmQhAEmaMJPDeMjoNRp0Flcw9O1XfIHQ5RQGAyEkAWujaGKjh1gcVtpEgOh+iue+IUzcBCDTpcnxMHANh6gh0PIoDJSECZmhGNqFA92npsOFjRKnc4RB4rqW7DhQ4LwgxazB4RK3c4AWuBu+PBZIQIYDISULQaATe6TjbdepLFbaQ80qjIDaPjYdDx9nIlN45xfs4PlLegrdsmczRE8hvW3WLdunUQBAEPP/zwFR+zYcMGzJs3D9HR0YiOjsaiRYuwb9++4Tytqt3kWgr5BYdvSYG4pHdw0qJDMToxHA4R2H6GBetEQ05GioqK8MILLyA3N/eqjysoKMA999yDL7/8Env27EF6ejqWLFmC6urqoT61qs0fFQ+tRsCZhk5UNHXLHQ7RoNW19eJYTTsE4WLPn65MWs7/JadqiIaWjHR2dmLlypXYsGEDoqOjr/rYv//97/jxj3+MKVOmYOzYsXjppZfgcDiwdevWIQWsdpGheszIdLbpF5yqIQWRphanpkchjruuXtONrmRk26kLcDi4xJeCm24ov7R69WrccsstWLRoEZ566imPfre7uxs2mw0xMTFXfIzFYoHFYnH/vb29HQBgs9lgs3lvflW6ljev6Q03jo5DYWkzPj9Rj5Wz0uQOZ9gCtZ3VSM623uraxOvG0XGq/2/tjXaenBqOcKMOTV1WHCpvQm5apLfCUw3eO/zDl+082Gt6nIxs2rQJBw8eRFFRkcdBAcCjjz6KlJQULFq06IqPeeaZZ7B27drLfv7ZZ58hNDR0SM97Nfn5+V6/5nBoewBAhz3nGvHuh5th1ModkXcEWjurmb/bus8B7DyjBSBA23ASmzef9Ovzy2W47ZwTpkGxRYMNH+/GsnSOjlwJ7x3+4Yt27u4eXLmBR8lIZWUlHnroIeTn58NkMnkc1Lp167Bp0yYUFBRc9ffXrFmDn//85+6/t7e3u2tNzGazx897JTabDfn5+Vi8eDH0er3Xrjtcoiji/8p3orKlB+ZRM9z7jyhVoLazGsnV1nvPN8NauB9x4QZ87xuLodGoe7Mzb7Vzd1I1it89hhpEY/nyOV6MUB147/APX7azNLNxLR4lIwcOHEBDQwOmTZvm/pndbsf27dvx/PPPw2KxQKsduBv/xz/+EevWrcPnn39+zaJXo9EIo/HyOWe9Xu+TN6Svrjsc88fE4/W9Fdh1rgVLJ6XKHY5XBGI7q5W/23rXeeehbzeMiofRaPDb88ptuO28cFwS8O4xlFS3o83iYK3NFfDe4R++aOfBXs+jAtaFCxeipKQExcXF7j8zZszAypUrUVxcfMVE5Pe//z1+85vf4NNPP8WMGTM8ecqgNX+0czSEy/5ICaTzlOZzFY1HEswmTEw1QxSB7TyTioKYRyMjERERmDhxYr+fhYWFITY21v3zVatWITU1Fc888wwA4He/+x3+4z/+Axs3bkRWVhbq6uoAAOHh4QgP5yFaV5I3MhY6jYDypm6UNXYhKy5M7pCIBtTQ3osTtc4lvdI25zR4C8Yk4Gh1O748dQFfn6b8gnWiofD6FokVFRWora11/339+vWwWq345je/ieTkZPefP/7xj95+alUJN+ow3bXEl6MjFMi2n2kEAExKjUQspxk8dnGJbwPsXOJLQWpIS3svVVBQcNW/l5WVDfcpgtb8MfEoLG3G9tMXsCovS+5wiAbknqIZzSmaoZiSHoXIEOeZVEeqWjE14+p7NxGpEQ+PCGA3jHLe3Hefa4K1j6f4UuCxO0TscI3c3cBkZEi0GgFzc5yHCu5wjTIRBRsmIwFsfLIZceFGdFvt2F/eLHc4RJcpqW5Da7cNESYdpqZHyR2OYl2f40zkdnBKloIUk5EAptEIuGGUsyBw+2n2mCjwbDvl/PKcOzIOOi1vJ0M1z/U5P1jRio5e7jZKwYd3jwAnLZXksj8KRFJxNZf0Dk96TChGxIXB7hCx9zxHQSn4MBkJcNfnxEEQgOO17Wjo6JU7HCK3tm4bDlW4NjtjvciwSaMjnKqhYMRkJMDFhhsxMcV5gNYOTtVQANl5thEOEchJCEdqVIjc4SietEcLi1gpGDEZUQBpyeQ2TtVQANnOJb1elTcyFlqNgNLGLlQ2D+5wMSK1YDKiANLw7e5zjRBFbopE8hNFETvPOnvw0vuThifCpMe0jCgAcLctUbBgMqIAUzOiEaLXorHTilP1HXKHQ4Typm5Ut/ZArxUwa0SM3OGoxrxRXOJLwYnJiAIYdBrMznbe8HdyPpkCgNRzn5oRjVDDsDdyJpfrXaNMO880cmt4CipMRhRi7kjnTWoXh28pAOw+53wf8mA878pNjYTZpEN7bx+OVLXKHQ6R3zAZUYi5rpt+YWkzbHZuDU/ycThE7D7XBADubczJO3RajfuzzlFQCiZMRhRibFIEYsMM6LbaUVzZKnc4FMSO17ajtduGcKMOuWlRcoejOteP4hJfCj5MRhRCoxGQN9LZC2WPieQkTRXOHhEDPbeA9zrpgMyDFS3otPTJHA2Rf/BOoiDS/Lw0X08kB6l4dS7rRXwiPSYUGTGh6HOIKCrl1vAUHJiMKIh08z9U0coeE8nC0mdHUZnzC/J67i/iM9e5RkHZ8aBgwWREQS7tMe0rbZI7HApCB8tb0WtzID7CiFEJ4XKHo1p57mSEn3MKDkxGFOZipT1vUuR/Uk997shYCIIgczTqJSUjx2vb0dJllTkaIt9jMqIwrBshOUn1ItexXsSnEiJMGJUQDlEECjkKSkGAyYjCSD2mk3UdaOjolTkaCibtvTYcqWoDwOJVf5jr7ngwGSH1YzKiMDFhBkxIMQMA9vAmRX5UeL4ZdoeIEXFhSI0KkTsc1ZM6Htx1mYIBkxEFkqZqeJMif9rlXtLLXVf9Yc6IWAgCcO5CF+rbOQpK6sZkRIGucycjHBkh/3EnIyM5ReMPkaF6TEyJBMBRUFI/JiMKNCMzGjqNgOrWHlQ2d8sdDgWBhvZenGnohCBcnD4g3+N+IxQsmIwoUJhRh8npUQCAPefZYyLfk95nE1LMiAo1yBxN8OB+IxQsmIwo1JzsGADAXiYj5Ad7zzt3Xc3L5qiIP83MioFOI6CqhaOgpG5MRhQqL9s5b7/3XBNEUZQ5GlI7Kemdw2TEr8KMOkxxjYKyYJ3UjMmIQk3PjIZeK6CmrRcV7DGRD9W19aK0sQsaAZg5IkbucILOdZyqoSDAZEShQgxad4+JUzXkS9IOoBNTI2E26WWOJvjkjby4+RlHQUmtmIwomDRkzmV/5EucopHX1IwoGHUaNHZacLahU+5wiHyCyYiCScWEe883s8dEPiMVr0pF0+RfJr0WM7Ocbc+6EVIrJiMKNi0zGgatBnXtvShrYt0Ied+l9SIzspiMyEVa4islhkRqw2REwUx6LaZkRAFg3Qj5hvS+Yr2IvGa7Cof3lXEUlNSJyYjCsW6EfElKRri/iLxy06Jg0mvQ3GXFGdaNkAoxGVG4i3UjrLQn72PxamAw6DSYnhkNgKOgpE5MRhRuakYUDDoNGjosON/YJXc4pCK1bT0oa+p21YtEyx1O0Js9wpkQFrJuhLzsr3vKsa1WQJ2Mp0MzGVE4k16Laa66EU7VkDdJPfBJqZGIYL2I7KS6kcJSjoKS94iiiJd2luGdMi3OXZCvQ8tkRAXcW8Nz+Ja8aO85aUkvp2gCweR0ab8Rq6xfGqQulc09qGu3QCOImJoeKVscTEZU4OKheay0J+/ZW8p6kUBi0msxlavnyMukz3lmOBBq0MkWB5MRFZhyyQ6N5y6w0p6Gr6a1B+VN3dBqBNaLBBB33Ugp60bIO6TEdqRZ3o4skxEVMOq07kp71o2QN1y6vwjrRQLHbNcoaCFXz5GXSAXROUxGyBukJb57OHxLXnBxSS93XQ0k0zKcuy43dFhQytVzNEyVzd2obu2BViMgO4LJCHnBHNd20ftKWTdCw3fxPBrWiwQSk/7iad2cqqHhkt5DE1PMMGrljYXJiErkpkXC4Kq0534jNBzVrT2oaHbVi2SyXiTQXDpVQzQc0ntoVgDUhTEZUQmjTouprh7TPvaYaBgKWS8S0C4tYuUoKA2HNDIyawSTEfIi92FaTEZoGFgvEtimZUZBrxVQ29aLimae1k1DU9vmHAHVCMD0DCYj5EWzRlysGyEaKun9M2cE60UCUahBh9y0KADcGp6GTvqcT0iJRIRJvv1FJExGVGRaZhR0GgHVrT2oamGPiTzX0N6LsqZuCAIwPQDmkWlg0iiotGEVkaekZGRmVmCMgDIZUZFQgw4TU53b+XJ0hIZiX5nzfTMuyQwz60UC1uxsHppHw1NUJtWLMBkhH2DdCA3HvtLAukHRwGZkRkPrGgWtZN0Ieaily4rT9c7dumcGyAgokxGVmcVkhIaByYgyhBl1mOQaBeV+I+QpaVRkZHwYYsONMkfjxGREZWZkxkAQgPONXWjo6JU7HFKQtm4bTtV3AAiceWS6Mu43QkN1cYomcIrUmYyoTGSoHmOTzACAotIWmaMhJdlf3gxRBLLjwhAfERi9JboyabUTi1jJU/sCaH8RCZMRFZLqRgp5kyIPSMWrHBVRhhlZ0dAIQGVzD2rbeuQOhxSiy9KHozXtAALrs85kRIVYN0JDwXoRZYkw6TE+xTkKys86DdahilbYHSJSo0KQFh0qdzhuTEZUSMp2T9Z1oLXbKnM0pAQ9VjtKqtoAMBlREumzLtUAEF3LPteIeaCsopEwGVGh+AgjRsaHAQCKylg3Qtd2qKIFfQ4RyZEmpEWHyB0ODdIsKRlhfRgNkns6NsA6HcNKRtatWwdBEPDwww9f9XFvvfUWxo4dC5PJhEmTJmHz5s3DeVoahItbw7NuhK7t0noRQRBkjoYGa4YrGTlVz1FQujZrnwOHKloBXKwtDBRDTkaKiorwwgsvIDc396qP2717N+655x488MADOHToEG6//XbcfvvtOHr06FCfmgaBm5+RJ1gvokzxEUZku0ZB93MUlK6hpLoVlj4HYsIMGBkfLnc4/QwpGens7MTKlSuxYcMGREdffd7pueeew9KlS/HLX/4S48aNw29+8xtMmzYNzz///JACpsGRvlSO1rSj09InczQUyKx9DhyscH6RMRlRHmmqZh/rRuga9rmm82ZkRgfcCOiQjupbvXo1brnlFixatAhPPfXUVR+7Z88e/PznP+/3s5tvvhnvvffeFX/HYrHAYrG4/97e7lyGZLPZYLPZhhLygKRrefOagSI+TIe0KBOqWnux7/wFzMuJky0WNbdzoBlKWxdXtqLX5kB0qB6ZUUb+dxqEQHpPT0uPxKaiShSebwqIeLwpkNpZDQrPNwIAZmRG9WtTX7bzYK/pcTKyadMmHDx4EEVFRYN6fF1dHRITE/v9LDExEXV1dVf8nWeeeQZr16697OefffYZQkO9vxQpPz/f69cMBMl6DaqgwabP96PjtEPucFTbzoHIk7beWi0A0CLNaMGnn37iu6BUKBDe0529AKBDSXUr3v1wM4xauSPyvkBoZ6VziEDhOS0AAZaqY9i8+dhlj/FFO3d3D+7sJI+SkcrKSjz00EPIz8+HyWQaUmCDsWbNmn6jKe3t7UhPT8eSJUtgNpu99jw2mw35+flYvHgx9Hr1nVDadaAKRe8dR7MuBsuXz5ItDrW3cyAZSlu/9/pBAI342uyxWD43y6fxqUUgvadFUcSL57ajrt2CpAmzkZcdOFt8D1cgtbPSnajtQM/ePQgzaPG9byyCTnuxSsOX7SzNbFyLR8nIgQMH0NDQgGnTprl/ZrfbsX37djz//POwWCzQavun5UlJSaivr+/3s/r6eiQlJV3xeYxGI4zGy7ej1uv1PnlD+uq6csvLSQBwHEeq2mGHBia9vF0mtbZzIBpsWzscIg6UtwIA5oyM538fDwXKe3rWiFh8cLgGByraccOYK99blSpQ2lnJDlU5k4JpmdEIMQ183IMv2nmw1/OogHXhwoUoKSlBcXGx+8+MGTOwcuVKFBcXX5aIAEBeXh62bt3a72f5+fnIy8vz5KlpCLJiQxEfYYTV7sDhyla5w6EAdKq+A+29fQg1aDEhxXujjuRf0p4R3PyMrsS9Yi6AtoC/lEcjIxEREZg4cWK/n4WFhSE2Ntb981WrViE1NRXPPPMMAOChhx7C/Pnz8ac//Qm33HILNm3ahP379+PFF1/00kugKxEEAbNGxODjI7XYV9qM2SoaviXvkL68pmdG9xu2JWWRvmAOVbTCZndAz/+WdAlRFAN2szOJ19+xFRUVqK2tdf/9uuuuw8aNG/Hiiy9i8uTJePvtt/Hee+9dltSQb7j3G2GPiQZQGOC9JRqcUQnhiArVo8dmx9HqNrnDoQBT3tSNCx0WGLQaTEmPkjucAQ1pae+lCgoKrvp3ALjzzjtx5513DvepaAikfSMOlLewx0T9iKKIotLA7i3R4Gg0AmZkxuDzE/XYV9qMqRmBde4IyUuaoslNi5S9dvBK+M2kcqMTIhAZoke31Y5jNYOraqbgUN7UjYYA7y3R4M0a4UxAWDdCXxXoUzQAkxHV02gE9+mMPKeGLiXdoAK5t0SDd/EE3xY4HKLM0VAgkRLUQN5hmclIEJjlPqeGZ1fQRTyPRl0mpkYiRK9FW48NZxo65Q6HAkR9ey/Km7ohCM5C9UDFZCQISCf4FpU1s8dEbkUKGLqlwdNrNZiWGQWABet0kdTpGJdkhtkUuHu1MBkJAhNSzO4e0+mGDrnDoQAg9ZY0Ad5bIs9IUzU8rZskSpiiAZiMBAW9VuP+winiTYpwSW8pObB7S+QZaYl2UWkzRJGjoKSc6VgmI0FC6jEVMhkhXLxBzeT+IqoyNSMaOo2AuvZeVLX0yB0Oyayt24ZT9c7R8ED/rDMZCRKzLtkumj0mkoZuZwd4b4k8E2LQYlJaJABO1RCwv7wZoghkx4UhPmLg82gCBZORIDE1Iwp6rYD6dgsqmgd3pDOpU2u3FSfrnL2lGQHeWyLPzWLdCLkoaQSUyUiQMOm1yE2LAsCbVLDbX+Zc4p0dH/i9JfLcxf1G+DkPdkrY7EzCZCSIsNKegIs3KJ5Ho04zXJscnm/swoUOi8zRkFx6rHaUVDnPKVLCdCyTkSAym8eME5RTXU9DExVqwNikCADAfn7Wg9ahihb0OUQkmU1Iiw6RO5xrYjISRKZlRkMQgLKmbtS398odDsmg29rnPtVVCfPINDRcPUeXTtEIgiBzNNfGZCSIRIboMS7JDIBTNcHqUEUr+hwiUiKV0VuioZnJUdCgp5TNziRMRoLMLN6kgprUU1ZKb4mGRqoHOlHbjo5em8zRkL/Z7A4cLG8FoJzaMCYjQebioXlMRoJREetFgkJSpAkZMaFwiMCBch6QGWyOVrehx2ZHZIgeoxLC5Q5nUJiMBBlpLvlUfQdau60yR0P+ZO1z4FCl84tJKb0lGjqungte7kMws2Kg0ShjBJTJSJCJjzAiOy4MonhxvwkKDiXVbei1ORAdqkeOQnpLNHSzRrjOo+KUbNC5uGJOOYdgMhkJQqwbCU6X9pZYL6J+0sjI4co29NrsMkdD/uJwiChydTSVtGKOyUgQ4rK/4MR6keAyIi4MceFGWO0OHHFtfkXqd6ahE209NoTotZiYGil3OIPGZCQISV9GR6vb0G3tkzka8geHQ8T+cuX1lmjoBEFwD9PvK22SORryF2l/kWmZUdBrlfMVr5xIyWvSokOQHGlCn0PEoYpWucMhPzjd0IG2HhtCDVpMSDHLHQ75ibuIlfVhQUNJh+NdislIEHL2mFhpH0ykKZppGdHQKai3RMMjfc4Plregz+6QORryNVEUFTsdy7tSkGIyElwKFdpbouEZm2RGhFGHTksfTtR2yB0O+VhVSw/q2nuh1wqYmq6clTQAk5GgJe0zcbCiBdY+9pjUTBTFiytpFLTUj4ZPqxHcp/ju4+o51ZM6HRNTIxFi0MocjWeYjASpnIRwxIQZYOlzoKSalfZqVtncg/p2iyJ7SzR87nNqOAqqekqdogGYjAQtQRAwI1OqtOdNSs2kHvEkBfaWaPikUdCismaIoihzNORL7sPxFDgdy2QkiHHzs+BQdMnheBR8JqVFwqjToKnLinMXuuQOh3ykoaMX5xu7IAjAjEzlfdaZjASxS5MRu4M9JrVScm+Jhs+o02JKehQAjoKqmXS8x5jECESG6mWOxnNMRoLY+GQzwgxadPT24VQdK+3V6EKHRdG9JfKO2RwFVb19Cq4XAZiMBDWdVoNpmdyhUc32u758lNpbIu+YyaX8qsdkhBTtYo+JOzSq0b4y7i9Czs3utBoB1a09qG7tkTsc8rL2XhtO1LUDUO50LJORIDdrRCwA5/p0Vtqrz8X9RZR5gyLvCDPqMNF1DACX+KrPgbIWiCKQGRuKBLNJ7nCGhMlIkMtNi4RBq0FjpwWljay0V5OOXhuO1yi7t0Tec/GcGiYjarNPBUXqTEaCnEl/sdKexW3qcqC8BQ4RyIgJRVKkMntL5D2sG1GvfSpYvs9khNxbhBfyJqUqRawXoUtI74OzDZ1o7rLKHA15S6/NjiNVrQAu1gAqEZMRcteNcGREXYpKnUXJs3geDQGICTNgVEI4AH7W1aS4shU2u4iECCMyYkLlDmfImIwQpmVEQSM4zzCpbWOlvRpY+hwodvWWODJCEp7WrT6XLukVBEHmaIaOyQghwqTHhJRIALxJqUVJdRusfQ7EhRswIi5M7nAoQPAICPVx77Cs4CkagMkIubgr7ZmMqIK0NfTMLGX3lsi7pM/50eo2dFr6ZI6GhqvP7sCB8oufdSVjMkIA2GNSm/3lrQCUf4Mi70qJCkFadAgcInCwnBsdKt2xmnZ0W+0wm3QYkxghdzjDwmSEAAAzs5xFjqfrWWmvdA4ROFDRCkD5Q7fkfdJeFOx4KN+lK+Y0GmWPgDIZIQBAbLgROay0V4WabqDT0odwow7jks1yh0MBRkpQuZRf+QoVfh7NpZiMkJt7qoY3KUU71+7sIU3PdJ5HQnQpaWOs4spWWPrsMkdDQ+VwiO6DMJW82ZmEyQi5zeJ20apw3pWMqKG3RN6XHReGuHADrH0OlFS1yR0ODdHZC51o6bYhRK/FRNdqSCVjMkJu0pfXsZp2VtorlCiKONfhTEZYvEoDEQTB/d7gVI1ySSsfp2ZEwaBT/le58l8BeU1KVAhSo0Jgd4istFeo8uZudNgE6LUCctOU31si35jJIlbFU9txD0xGqJ/ZXOKraEVlrQCAyWmRMOm18gZDAUsaBT1Q1gK7Q5Q5GvKUKIrukREln0dzKSYj1M9MVtor2n7XiNaMTJ5HQ1c2LtmMcKMOHZY+nKhtlzsc8lBVSw9q23qh0wiYmqGOzzqTEepnFivtFe1iMhIlbyAU0LQaAdNdCStHQZVHGhWZlBaJEIM6RkCZjFA/l1baH2GlvaI0tPeiorkHAkRMy4iSOxwKcDw0T7nc59GopF4EYDJCX3FppT1vUsoiLclODXMefkh0NZceASGKrBtRkn0qORzvUkxG6DLsMSmTtFlddgS/WOjactMiYdBp0NhpRWljl9zh0CBd6LDg/IUuCAIwI5PJCKmYNDJyoJyV9koiFR2PNPO/GV2bUafFlPQoAOx4KIm06+qYxAhEhqpnBJTJCF1mXLIZEUYdOllprxgtXVacrOsAwGSEBo+7LiuPms6juRSTEbqMViNguusUXy7xVQbpy2RkfBgi1NNZIh+bxX2FFEdtm51JmIzQgHhonrIUnpeq69Wx5wD5x7TMaGgEoLK5B7VtPXKHQ9fQ3mtzj1YH9cjI+vXrkZubC7PZDLPZjLy8PHzyySdX/Z1nn30WY8aMQUhICNLT0/Gzn/0Mvb29wwqafG9WFivtlaSwtAkAkxHyTLhRhwmuQ9ZYNxL4DpS3wCECmbGhSDSb5A7HqzxKRtLS0rBu3TocOHAA+/fvx0033YTbbrsNx44dG/DxGzduxGOPPYYnnngCJ06cwMsvv4w33ngD//Zv/+aV4Ml3JqVFwqjToKnLinMXWGkfyNp6bDiu0t4S+R5XzymH9N9IbVM0gIfJyIoVK7B8+XKMGjUKo0ePxtNPP43w8HDs3bt3wMfv3r0bc+fOxb333ousrCwsWbIE99xzD/bt2+eV4Ml3WGmvHPvLmiGKwIi4MCREGOUOhxSGh+YpR+F55wioWs6juZRuqL9ot9vx1ltvoaurC3l5eQM+5rrrrsPrr7+Offv2YdasWTh//jw2b96M++6776rXtlgssFgs7r+3tzt7fTabDTabbaghX0a6ljevqSYzMqNQWNqMwvONuHNa8pCvw3b2rd1nLwAAZmZGsa39RE3tPCUtAgBwur4TDW1diA41yBzRRWpq5+Hqtva5d8WekRGpmO/CwV5TED0sCCgpKUFeXh56e3sRHh6OjRs3Yvny5Vd8/J///Gc88sgjEEURfX19+OEPf4j169df9TmefPJJrF279rKfb9y4EaGhoZ6ES8NwqlXA/5zQItog4snpPKcmUP3piBYVXQK+lWPHzHjW95DnflusRX2PgO+NsWNSDN9Dgehkq4D1Crwfd3d3495770VbWxvMZvMVH+dxMmK1WlFRUYG2tja8/fbbeOmll7Bt2zaMHz/+sscWFBTg7rvvxlNPPYXZs2fj7NmzeOihh/Dggw/iV7/61RWfY6CRkfT0dDQ2Nl71xXjKZrMhPz8fixcvhl7P9ZBf1WXpw/Tffgm7Q0TBL+YhNSpkSNdhO/tOp6UPM1z/jbY/cgPiQrVsaz9Q23v68feP4439VfjOdZn4t2Vj5A7HTW3tPBz/mX8G67eX4o4pyfj9NyZ59dq+bOf29nbExcVdMxnxeJrGYDAgJycHADB9+nQUFRXhueeewwsvvHDZY3/1q1/hvvvuw/e+9z0AwKRJk9DV1YXvf//7+Pd//3doNAOXrBiNRhiNl8996/V6n7whfXVdpYvS6zExNRKHK1txqKodWfHDSwTZzt53pLQVdoeI9JgQZMRFuIdE2db+oZZ2vi4nDm/sr0JReUtAvh61tPNwFJW3AgDycuJ91ha+aOfBXm/Y+4w4HI5+oxiX6u7uvizh0Gqdxx1zuagySEtFWcQamC4WtMXKHAkp2Zxs5/vnWE072npYnxFouq19OFzVCgCYo9LPukfJyJo1a7B9+3aUlZWhpKQEa9asQUFBAVauXAkAWLVqFdasWeN+/IoVK7B+/Xps2rQJpaWlyM/Px69+9SusWLHCnZRQYJvleuMzGQlM0g65aqyuJ/9JNJuQHRcGUeRGh4HoYHkrbHYRKZEmpMcMbbo80Hk0TdPQ0IBVq1ahtrYWkZGRyM3NxZYtW7B48WIAQEVFRb+RkMcffxyCIODxxx9HdXU14uPjsWLFCjz99NPefRXkMzMynSMj5y50obHTgrhwLh0NFD1WO45IvaVsdfaWyH9mZ8fifGMX9p5vwqLxiXKHQ5eQNjWcnR0LQRBkjsY3PEpGXn755av+e0FBQf+L63R44okn8MQTT3gcGAWG6DADxiRG4FR9B/aXNWPpxKEv8SXvOljRAptdRHKkCWnR6uwtkf/MyY7BP/ZVYK/ri48Cx17XdOycbPWOgPJsGrqmmSN4aF4gunQDJLX2lsh/WDcSmHqsdhyudO4voubaMCYjdE1S3Qh3aAwse6V6EU7RkBewbiQwHapogdXuQJLZhMxY9e6zxWSErkk6NO94TTvae9ljCgS9NjuKK1sBsHiVvEdKbKVpAZKf1OmYk63uEVAmI3RNSZEmZMSEwiE6T40k+RVXtsLa50B8hBEj4sLkDodUQqpJYN1I4JASQ7WPgDIZoUGRTvbk8G1gKDx/cUmvmntL5F+sGwksvTY7iitaAah/xRyTERoUKRnh8G1guHSpH5G3sG4ksByqaIXV7kBChBFZKq4XAZiM0CDlub70jlS1ocvSJ3M0wc3a58DBCud02RzWi5CXzRnJupFAcXFJr3r3F5EwGaFBSY8JRVp0CPocIlfVyKy4shW9NgdiwwzISQiXOxxSGWk6YA+TEdlJI6Bqn6IBmIyQB6TRkT3neJOSk9T+c0aqv7dE/ieNth2vbUdbN+tG5NJrs+Ogq15ktoo3O5MwGaFBuy6HPaZAsPtcIwDgupHq7y2R/yWYTciOd9aN7OMoqGwuXTGXHQQr5piM0KDlZccBAI5Wt7HSXia9NjsOuXpL142MkzcYUq053G9EdsG2Yo7JCA1aUqSz0t4h8hRfuRwov7gbo9qr60k+TEbkd2nxajBgMkIeyXNNDUhTBeRfl07RBENvieTBuhF5OetFXCvmgqBeBGAyQh6SkhEWscpjt6vd81gvQj7EuhF5HaxogaXPub/IyPjgWDHHZIQ8Ig0ZnqzrQFOnReZogkunpQ9HqpyndzIZIV/jVI18dp91tnkwjYAyGSGPxIUbMSYxAgCw9zx7TP5UVNoMu0NERkwo0qJZL0K+NYdL+WXjno7NCZ4idSYj5DH3VM151o34E5f0kj9JtQon6trR0mWVOZrg0dFrw2HXCGgwfdaZjJDHLhaxssfkT9L+LpyiIX9IiDBhdGI4RJF7C/nTPtcIaGZscI2AMhkhj80ZEQtBAM5f6EJ9e6/c4QSF1m4rjtW0A7i4Ey6Rr0l72ew8y1FQf5E6ecE0KgIwGaEhiAzVY0KKGQDnk/1l7/lmiCKQkxCOBLNJ7nAoSMx11SzsZjLiN7vOStOxwVMvAjAZoSGSPihMRvxDWtHAURHyp9nZMdBqBJQ1daOqpVvucFSvqdOCk3UdAIJvOpbJCA2J9KW4m0WsfsHiVZKD2aRHblokgIvLTcl3pNqcsUkRiAs3yhyNfzEZoSGZOcLZY6ps7kFlM3tMvnShw4LT9Z0AgmdraAocc12joLu467LP7XLvLxJcUzQAkxEaonCjzt1jYqW9b0lTNOOSzYgOM8gcDQUbqW5k19kmiKIoczTqtseV8M3NCb5OB5MRGrLruDW8X0hTNKwXITlMy4yCSa9BY+fFETryvurWHpQ1dUOrETBrRHCcR3MpJiM0ZHMvWfbHHpNviKKIHWecycj1o5iMkP8ZdVrMzHJ+Oe7iqhqfkdo2Ny0SESa9zNH4H5MRGrLpWdEw6TW40GHBqfoOucNRpfKmblS19ECvFTB7BJMRkod7iS/rRnxGGmGeG4T1IgCTERoGo06LWa4vyJ1neJPyhR2u3tLUjGiEGXUyR0PBSvqC3Hu+GX12h8zRqI8oipfsLxKcnQ4mIzQs81w9ph1MRnxi55kLAC62M5EcxqeYERWqR6elz31uCnnPuQudaOiwwKjTYFpmtNzhyILJCA3L9aOcX5KFpU2w9NlljkZd+uwO99bQUjsTyUGrES7uLcS6Ea+TlvTOyIqGSa+VORp5MBmhYZE25+m1OXCgvEXucFTlSHUbOnr7YDbpkJsWJXc4FOSk4+x5To33SSPLwbi/iITJCA2LIAiY5+q1s27Eu6T2nJsTB61GkDkaCnbXu5KRQxWt6Lb2yRyNelj7HO79ReaPjpc5GvkwGaFhu549Jp/Y6V7SG7y9JQocWbGhSIk0wWp3oKiMo6DecqiiBV1WO2LDDBifbJY7HNkwGaFhk74sS6rb0NJllTkadei09OFghfOGPy8neHtLFDgEQXAv8ZUKq2n4trva8vpRcdAE8QgokxEatkSzCaMTwyGKcBdc0vAUnm9Cn0NERkwoMmJD5Q6HCABwg2saYdtpJiPeItWL3DAquDsdTEbIK6539d53nuVNyht2cIqGAtD1OXEQBOB0fSdq23rkDkfxmrusKKl2LpWeF+SfdSYj5BXSB2n7aW4N7w07uL8IBaDoMAMmu1Z27TjNGrHhch6l4VyVmGA2yR2OrJiMkFfMzo6BXiu4D3uioatt68G5C13QCMG91I8CE6dqvGeHqw1vCOJVNBImI+QVoQYdpmU4dw5kcdvwSFM0k9KiEBkafAdmUWCbP/ri6jm7g6OgQyWKort4NdinaAAmI+RF7qka7jcyLNKSXk7RUCCanBYFs0mHth4bDle1yh2OYp1p6ER9u3MLeOlU5GDGZIS8Rhpq3H22EdY+HqY1FHbHxd4Sh24pEOm0Gndh9bZTHAUdqu2uKZrZ2bFBuwX8pZiMkNdMTIlEXLgBXVY79pc3yx2OIh2uakVrtw0RJh2mZUTJHQ7RgKSdQrdzSnbItruX9HIEFGAyQl6k0Qju3nwBe0xDUnCyAYBzzwGdlh9PCkzS5/xwZSvaum0yR6M8vTY7Cs8792TiCKgT73bkVTeOSQAAFJxqkDkSZSpwDd3OH8MbFAWu5MgQjEoIh0PkMRBDUVTWDEufA0lmE0YlhMsdTkBgMkJedcOoOGhcmyLVtHJTJE80dlpwpMq5AdKN7C1RgJvvXuLLjoenpFqb60fFQRCCdwv4SzEZIa+KCjVgqmuJL6dqPCMVtI1PNgf9BkgU+KTpBW506LkvXSPHC1wjycRkhHzgRnfdCHtMnpCStxs5RUMKMGtEDIw6Derae3GmoVPucBSjoqkb5y50QacRMG80i1clTEbI66S6kV1c4jtoly7pXTCWvSUKfCa9FnOyYwGw4+GJL07WAwBmZEXDbOKmhhImI+R1E1LMF5f4lnGJ72AUVzqX9JpNOkxNj5I7HKJBWeAaxfviJJORwfrCNQJ6Ezsd/TAZIa/TaATMH+1aVcPzKwZlm6tnOY9LeklBbhqbCAAoKmtBWw+X+F5Lt7UPe11LepmM9Me7HvmEVPfA4dvB4ZJeUqKM2FCMSgh3TjOy43FNu842wdrnQFp0CEbGc0nvpZiMkE/Mu2SJb21br9zhBDQu6SUlu2mcs4e/9US9zJEEPmk666axCVzS+xVMRsgnokIN7lN8v+AS36uSVtFwSS8p0aJxzqmagtMX0GdnwfqViKLoHilmkfrlmIyQzyx03aRY3HZ1nx939igXjU+UORIiz01Nj0JUqB6t3TYcqmyVO5yAdaK2A7VtvTDpNchzrUKii5iMkM8sHu/M/vecb0avXeZgAlSvze5e0rt4HJMRUh6dVuOeXtx6gh2PK5E2Ops7Mo6n9A6AyQj5zMj4cIyIC4PNLuJkK+dHB7LnfBO6rXYkmo2YmGqWOxyiIbnJlUizbuTKpBFiTtEMjMkI+YwgCFjkKm472sxkZCDuKZpxiSxoI8WaPzoeWo2AMw2dqGjqljucgNPSZcWhihYATEauxKNkZP369cjNzYXZbIbZbEZeXh4++eSTq/5Oa2srVq9ejeTkZBiNRowePRqbN28eVtCkHFJx27FWgcVtXyGKontYm/UipGSRIXrMzHIVrJ/k6MhXbT3ZAIcIjE2KQGpUiNzhBCSPkpG0tDSsW7cOBw4cwP79+3HTTTfhtttuw7FjxwZ8vNVqxeLFi1FWVoa3334bp06dwoYNG5CamuqV4CnwTc+MRlSIHt19Ag6yuK2fYzXtqGvvRahBy4I2UryFrg3QtrJg/TKfHasDANw8IUnmSAKXzpMHr1ixot/fn376aaxfvx579+7FhAkTLnv8K6+8gubmZuzevRt6vXMP/qysrKFHS4qj02qwYEwc3i2uxRcnL2DuKI4ASPJdUzQ3jIpnQRsp3k3jEvD05hPYe74JHb02RPDcFQBAj/VikfqSCbz/XYlHycil7HY73nrrLXR1dSEvL2/Ax3zwwQfIy8vD6tWr8f777yM+Ph733nsvHn30UWi1V775WiwWWCwW99/b29sBADabDTab97Yclq7lzWvS5eaPisG7xbXIP9GAR2+2sjbCJf+4s7e0YEys196DfE/7B9v5chlRRmTHheJ8Yze2Hq/DLZOGPwqghnb+8kQDem0OpEaZMCouJCBfiy/bebDX9DgZKSkpQV5eHnp7exEeHo53330X48ePH/Cx58+fxxdffIGVK1di8+bNOHv2LH784x/DZrPhiSeeuOJzPPPMM1i7du1lP//ss88QGhrqacjXlJ+f7/Vr0kUWO6AVtKho7sGr//wESd7/T6g4LRbgeK0OAkT0VRzG5trDXr0+39P+wXbuL9ugwXlo8NetxRAqvVcjpuR2/vtZDQANckzd16yxlJsv2rm7e3AFzYIoiqInF7ZaraioqEBbWxvefvttvPTSS9i2bduACcno0aPR29uL0tJS90jIf/7nf+IPf/gDamtrr/gcA42MpKeno7GxEWaz95Y/2mw25OfnY/Hixe5pJPI+m82Gb/x5K060avDI4lH4wQ0j5A5Jdq8XVmDtRycxIzMK//jeLK9dl+9p/2A7D+xIVRu+8UIhwgxaFD52I4zDnH5Uejv32R3I+902tPbY8Pp3Z2D2iBi5QxqQL9u5vb0dcXFxaGtru+r3t8cjIwaDATk5OQCA6dOno6ioCM899xxeeOGFyx6bnJwMvV7fb0pm3LhxqKurg9VqhcFgGPA5jEYjjEbjZT/X6/U+eUP66rp00cRoESdanVvD/2ThaLnDkd1nx51zyDdPSOZ7WsHYzv1Ny4pFcqQJtW29KCxvc+/CPFxKbef9FU1o7bEhOlSPOSMD/0RuX7TzYK837JZxOBz9RjEuNXfuXJw9exYOx8XhutOnTyM5OfmKiQip08Ro5wDcocpW1LcH98F5TZ0WFJY6jxFfOpHV9aQegiC4V4x8erRO5mjk95mrLmzhuMSAT0Tk5lHrrFmzBtu3b0dZWRlKSkqwZs0aFBQUYOXKlQCAVatWYc2aNe7H/+hHP0JzczMeeughnD59Gh9//DF++9vfYvXq1d59FRTwoozAtIwoiCJvUp8dr4dDBCalRiI9hgU0pC5SMpJ/oj6o9xYSRRGfHXOumFvCfYSuyaNkpKGhAatWrcKYMWOwcOFCFBUVYcuWLVi8eDEAoKKiol8tSHp6OrZs2YKioiLk5ubipz/9KR566CE89thj3n0VpAhLXcvaPi65cr1QMPjElYxxVITUaGZWNGLCDGjttmFfabPc4cjmWE07qlt7EKLX4gbX2T10ZR7VjLz88stX/feCgoLLfpaXl4e9e/d6FBSp083jE/DbT06hqKwZDR29SIgwyR2S37V127D7bCMAYBmTEVIhnVaDxeMS8cb+Smw5VofrcuLkDkkWm12drvmjuY/QYHASi/wmJSoEU9KdUzVbgnSqJv9EPfocIsYmRSA7PlzucIh84uaJzlHQLcfq4XB4tGBTFURRdI8A35KbLHM0ysBkhPxquWsjpM0lwZmMfOK6QS2byBsUqdd1I+MQbtShrr0Xh4LwGIhjNe0ob+qGSa/BTTwYb1CYjJBfSV/ChaVNaOwceBWWWnX02rDjjGuKxgu7UxIFKpNe6z6x+6MjNTJH438ful7zwrGJCDMOeaPzoMJkhPwqPSYUk1Ij4RCBLceCa3Tki5MNsNodGBkfhlEJnKIhdVsxOQUA8PGRWtiDaKpGFEV8fIRTNJ5iMkJ+t3yS8wP6SZBN1Xx05OIUDc/nIbWbNyoekSF6NHRc3FcnGBypakNVi3MVzYIxnKIZLCYj5HfSKpI954Nnqqat24aCU86j1W+dkiJzNES+Z9Bp3J/1Dw8Hz3J+aVpq4bgEhBi4imawmIyQ32XFhWFSaiTsjovDmWr3ydFa2OzOVTSjEyPkDofIL6SpGuf7X/0boF06RfM1TtF4hMkIyeL2qakAgPeKq2WOxD/eL3b2lm6bkipzJET+Myc7FnHhRrR227DTVbytZocqW1HT1oswgxY3corGI0xGSBYrJidDIwCHKlpR1tgldzg+VdfWi72uOfMVk9lbouCh1QjuEYIPD6t/Vc0Hrk7HovGJ3OjMQ0xGSBYJESZcP8q5RbLaR0c+OlIDUXRuk50WzbNoKLhICfhnx+vRa7PLHI3v2OwOfOBKuKSRXxo8JiMkm9tdhZzvF9dAFNW79E+aormVUzQUhKamRyM1KgSdlj58cbJB7nB8ZtupC2jusiIu3Ih5QboF/nAwGSHZ3DwhCSF6LUobu3C4qk3ucHzi3IVOlFS3QacRcMskTtFQ8NFoBPcKsncOVskcje+8c8j52m6bkgKdll+tnmKLkWzCjDoscZ3k+94hdU7V/POA8wY1b1QcYsIMMkdDJI9vTEsDAHx56gIaOnpljsb72rpt+PyEc9TnDk7RDAmTEZKVNLf64eEa1S39sztEvHPQmWTdOSNd5miI5JOTEI6pGVGwO0S8f0h9hawfl9TC2ufAmMQITEgxyx2OIjEZIVnNy4lDbJgBTV1WbD99Qe5wvGrHmQuoa+9FVKgeC8dxmR8Ft29Od46OvH2gSnU1Yu+6pmjumJbK3ZWHiMkIyUqn1biHNd8oqpQ5Gu96a7/zBnX7lFQYdVzmR8Hta7kpMOg0OFXfgaPV7XKH4zXlTV0oKmuBIDg/6zQ0TEZIdv8y0zmFsfVkAxra1TGf3NptRf7xegDAnTPSZI6GSH6RIXrcPMG5PfzbB9TT8djk6kTNGxWPpEiTzNEoF5MRkt2oxAhMz4yG3SHibZVU279fXAOr3YEJKWZMSImUOxyigCBN1bx/uAaWPuXvOWLtc+Ct/c5k5N5ZrAsbDiYjFBCk0ZE3iipVMZ/8pusGded0jooQSa7PiUNypAmt3TZVnNq99UQ9Gjude4ssHJcodziKxmSEAsLXcpMRbtShvKkbe883yx3OsByubMWxmnYYtBqeRUN0Ca1GwN0zMwAAr+8tlzma4fuHa4rmrhlp0HNvkWFh61FACDXo3BsjbSqqkDma4fk/1032a7nJiObeIkT93D0rHVqNgP3lLThZp9xC1srmbuw441wBKI3s0tAxGaGAcbfrA/1JSR0aOy0yRzM0LV1W94Fg38rLlDkaosCTaDZhyXjnlIaSR0ecU8rOqafM2DC5w1E8JiMUMCalRmJyWiSsdgc27VPm6Mib+yth6XNgYqoZU9Oj5A6HKCB9a44zUX/3YDU6LX0yR+M5a58Db7jqwu5m4apXMBmhgCEIAr4zdwQA51SH0nZktTtEvF7o7OndNyeTmx8RXcF1I2ORHReGLqtdkUdBfFxSgwsdFiREGLFkfJLc4agCkxEKKMsnJSM+woj6dgs+Oaqsavvtpy+gsrkHZpMOt05m4SrRlQiCgHtnOwtZ/29PuaJW0ImiiFd3lQEAVuVlwqDj16g3sBUpoBh0GnxrtnMI99VdpTJH45nXdpcBcJ5DE2LgjqtEV3Pn9HSEGrQ4Vd+B7Wca5Q5n0A5WtOBIVRsMOg3umZUhdziqwWSEAs69szOg1wo4VNGK4spWucMZlBO17dh2+gI0grO3RERXFxmqdy/z3bD9vMzRDN4rO8sAAHdMSUVsuFHeYFSEyQgFnPgII1bkOpf5vrxTGaMj0s102cRkVtYTDdJ3r8+CViNg59lGHKtpkzuca6pq6canx5zTx9+5PkveYFSGyQgFpAfmOQtZPz5Sg/KmLpmjubqa1h584FrO+/0bsmWOhkg50qJDccukZADASzsCv+Px4vbzsDtEXJ8Th7FJZrnDURUmIxSQJqRE4sYx8XCIwP9uC+wh3Fd2lqLPIWJOdgwmczkvkUekBP7DwzWoae2ROZora+jodR+Kt3pBjszRqA+TEQpYP3F94P95oAp1bYF5mm9zlxX/cO2J8oP5I2WOhkh5JqZG4rqRsehziHgxgGtHXt5ZCmufA9MyojAnO0bucFSHyQgFrBlZMZg1IgZWuwMbdgTmTerF7efRZbVjfLIZN46OlzscIkX68Y3OjsfGfRUB2fFo67bh9T3OPYRWL8jhHkI+wGSEApo0HPr3wnI0tAfWTaqx04K/upbz/nzxaN6giIZobk4sZmXFwNrnwP8UnJU7nMu8tNPZ6RibFIGbxibIHY4qMRmhgHbDqDhMy4hCr82BP39xRu5w+nlx+3n02OzITYvEwnG8QRENlSAI+Nni0QCATfsqUR1AtSMXOizu4tqHF7HT4StMRiigCYKAR5eOBeC8SQXKypqG9l78bU8ZAOBnHBUhGra8kbHIy46F1e7A8wHU8Xj+izPosdkxOT0KN09IlDsc1WIyQgFvdnYs5o+OR59DxH/mn5Y7HADAnz47jV6bs5iNtSJE3vHzJc7RkTeKKnGqrkPmaIDK5m5sdBWoP7p0DDsdPsRkhBThlzePAQC8X1yDI1WtssZytLoNbx5wLvF7/GvjeYMi8pKZWTFYOiEJDhF46uPjsp9Z8/stp2Czi5g3Kg7XjYyTNRa1YzJCijAxNRJ3THUePver94/B4ZDnJiWKIn7z0XGIInDr5BRMy4iWJQ4itVqzfCwMWg12nGlEwWn5zqzZfa4RHx6ugUaAe6qYfIfJCCnGmmVjEW7U4XBlK97cXylLDJ8crUNhaTOMOg0eXcYbFJG3ZcaGubdaX/fpKfQ5/B+Dze7AE+8fAwCsnJ2JiamR/g8iyDAZIcVIMJvw8KJRAIDffXoSLV1Wvz5/W48NT37gvEH9YP5IpEaF+PX5iYLFTxbkIC7ciPON3fisyv9fU6/tKsOZhk7EhBnwyJIxfn/+YMRkhBTl/uuyMDoxHC3dNvz6o+N+fe7ffXoSDR0WZMeF4cc3crdVIl+JMOnx69smAADyawSc9GMxa3lTl7tQ/rGlYxEZqvfbcwczJiOkKHqtBuu+kQuNALx7qBqbS2r98ry7zjZiY6Gzqv6Zr0+CSa/1y/MSBatlE5OweFwCHKKANe8eQ5/d9/M1doeIR946jB6bHXOyY/DN6Wk+f05yYjJCijMtI9q9ffS/v1vi851Zmzot+NkbxQCAb83JwOzsWJ8+HxE59xh6csU4hGhFHK1px5+3+n7vkZd2nEdRWQvCDFr84ZuTodFwpZy/MBkhRfrpwlGYkGJGS7cNP3uz2Ge9JodDxP97+wgaOiwYlRCOf18+3ifPQ0SXS4gw4q5s52f7v788i51nfLe6Zl9pM36/5RQA4FdfG4/0mFCfPRddjskIKZJBp8Gz/zIFoQYtdp1twu8+PemT53l26xlsPdkAg06DP98zFSEGTs8Q+dO0OBF3z0yDKAIPbTqEyuZurz9HQ0cvfrLxIOwOEbdOTsG/zEz3+nPQ1TEZIcUalRiBP945GQCwYUep15f7fnC4xj00/PTtEzEu2ezV6xPR4Pz7sjGYkGJGU5cV33mtCG09Nq9du9PSh+++VoSGDgtGJ4Zj3TcmcSNDGTAZIUVbPikZP3Gd7PvYP4/gEy8VtG49UY9fvFkMAPjBDdm4cwZ7SkRyMem1ePn+mUgym3C2oRMP/nU/uix9w76upc+OH71+AEer2xETZsAL981AqEHnhYjJU0xGSPF+sWQ0/mVGOhwi8NNNh/Dh4ZphXW/riXr86PWDsNlFfC03Gf+Puy8SyS4p0oRXvj0T4UYd9pU14/5X9qGjd+gjJF2WPjzw2n7sONOIUIMWr357JkbEhXkxYvIEkxFSPEEQ8NuvT8LXcpNhs4v4138cwvqCcx6fayGKIl7acR4P/m0/rHYHlk9KwrP/MgVaVtQTBYTxKWa8/r3ZMJt02F/egm+s343zFzo9vk5VSzfu2bAXO882IsygxUurZmByepT3A6ZBYzJCqqDVCHju7qn49nVZAJwblK16ZR9q23oG9ft1bb34/v8dwFMfn4BDBO6akYbn7p4KnZYfEaJAMiU9ChsfnIP4CCNO13fitud34Y2iikGdVyWKIj44XIPlz+3Akao2RIfqsfHBObguh4fgyY2TY6QaWo2AJ2+dgJEJ4Xjqo+PYcaYRC/5YgPuvy8K3ZmcOuFSvurUHf99bjr/tKUenpQ96rYDHlo3Dd+dmsYiNKEBNTI3Ex/96PVZvPIiishY8+s8SbCyswI9uHImbxibCoOvfieizO1Bw6gJe2H4ORWUtAJxJzX/fM5VLeAMEkxFSnfvmZCIvOxaP/vMIDpS34IVt5/HCtvMYnRiOsUlmmEN06Ojtw6m6jn7bTE9Jj8LvvpGLMUkRMkZPRIORYDZh44Nz8NfdZXj28zM4XNWGH75+EOFGHaZmRCEtOgSAgJrWHhysaEFHr7Pg1aTX4IfzR2L1ghzoOfIZMJiMkCrlJITj7R/mYeuJBvx1Txl2nm3E6fpOnK7vP78sCMCsrBh89/oRWDwukTsuEimIXqvB9+Zl49YpKfjr7jK8UVSFxk4LdgywOVpMmAHfnJ6Gb1+XhRQechlwmIyQagmCgEXjE7FofCKaOi3YX96CiqZudPTaEGrUYURcGKZmRCEhwiR3qEQ0DAkRJvzy5rH4xeIxOFrThhO17ahrs0CEiESzCWOTIpCbFsVi9ADGZISCQmy4ETdPSJI7DCLyIY1GQG5aFHLTouQOhTzECTMiIiKSFZMRIiIikpVHycj69euRm5sLs9kMs9mMvLw8fPLJJ4P63U2bNkEQBNx+++1DiZOIiIhUyqNkJC0tDevWrcOBAwewf/9+3HTTTbjttttw7Nixq/5eWVkZHnnkEcybN29YwRIREZH6eJSMrFixAsuXL8eoUaMwevRoPP300wgPD8fevXuv+Dt2ux0rV67E2rVrkZ2dPeyAiYiISF2GvJrGbrfjrbfeQldXF/Ly8q74uF//+tdISEjAAw88gB07dgzq2haLBRaLxf339vZ2AIDNZoPN5r2jo6VrefOadDm2s/+wrf2D7ewfbGf/8GU7D/aagujhaWIlJSXIy8tDb28vwsPDsXHjRixfvnzAx+7cuRN33303iouLERcXh29/+9tobW3Fe++9d9XnePLJJ7F27drLfr5x40aEhnLrXiIiIiXo7u7Gvffei7a2NpjN5is+zuNkxGq1oqKiAm1tbXj77bfx0ksvYdu2bRg/fny/x3V0dCA3Nxf/8z//g2XLlgHAoJORgUZG0tPT0djYeNUX4ymbzYb8/HwsXrwYer3ea9el/tjO/sO29g+2s3+wnf3Dl+3c3t6OuLi4ayYjHk/TGAwG5OTkAACmT5+OoqIiPPfcc3jhhRf6Pe7cuXMoKyvDihUr3D9zOBzOJ9XpcOrUKYwcOXLA5zAajTAajZf9XK/X++QN6avrUn9sZ/9hW/sH29k/2M7+4Yt2Huz1hr0Dq8Ph6DeKIRk7dixKSkr6/ezxxx9HR0cHnnvuOaSnpw/3qYmIiEgFPEpG1qxZg2XLliEjIwMdHR3YuHEjCgoKsGXLFgDAqlWrkJqaimeeeQYmkwkTJ07s9/tRUVEAcNnPiYiIKHh5lIw0NDRg1apVqK2tRWRkJHJzc7FlyxYsXrwYAFBRUQGNhpu6EhER0eB5lIy8/PLLV/33goKCq/77a6+95snTERERURBQxKm90oIfab8Rb7HZbOju7kZ7ezuLo3yI7ew/bGv/YDv7B9vZP3zZztL39rUW7ioiGeno6AAAFr0SEREpUEdHByIjI6/47x7vMyIHh8OBmpoaREREQBAEr11X2r+ksrLSq/uXUH9sZ/9hW/sH29k/2M7+4ct2FkURHR0dSElJuWpNqSJGRjQaDdLS0nx2fekUYvIttrP/sK39g+3sH2xn//BVO19tRETCpS9EREQkKyYjREREJKugTkaMRiOeeOKJAbeeJ+9hO/sP29o/2M7+wXb2j0BoZ0UUsBIREZF6BfXICBEREcmPyQgRERHJiskIERERyYrJCBEREclKdcnIX/7yF2RlZcFkMmH27NnYt2/fVR//1ltvYezYsTCZTJg0aRI2b97c799FUcR//Md/IDk5GSEhIVi0aBHOnDnjy5egCN5u53feeQdLlixBbGwsBEFAcXGxD6NXDm+2s81mw6OPPopJkyYhLCwMKSkpWLVqFWpqanz9MgKet9/PTz75JMaOHYuwsDBER0dj0aJFKCws9OVLUAxvt/WlfvjDH0IQBDz77LNejlp5vN3O3/72tyEIQr8/S5cu9V7Aoops2rRJNBgM4iuvvCIeO3ZMfPDBB8WoqCixvr5+wMfv2rVL1Gq14u9//3vx+PHj4uOPPy7q9XqxpKTE/Zh169aJkZGR4nvvvScePnxYvPXWW8URI0aIPT09/npZAccX7fy3v/1NXLt2rbhhwwYRgHjo0CE/vZrA5e12bm1tFRctWiS+8cYb4smTJ8U9e/aIs2bNEqdPn+7PlxVwfPF+/vvf/y7m5+eL586dE48ePSo+8MADotlsFhsaGvz1sgKSL9pa8s4774iTJ08WU1JSxP/6r//y8SsJbL5o5/vvv19cunSpWFtb6/7T3NzstZhVlYzMmjVLXL16tfvvdrtdTElJEZ955pkBH3/XXXeJt9xyS7+fzZ49W/zBD34giqIoOhwOMSkpSfzDH/7g/vfW1lbRaDSK//jHP3zwCpTB2+18qdLSUiYjLr5sZ8m+fftEAGJ5ebl3glYgf7RzW1ubCED8/PPPvRO0QvmqrauqqsTU1FTx6NGjYmZmZtAnI75o5/vvv1+87bbbfBKvKIqiaqZprFYrDhw4gEWLFrl/ptFosGjRIuzZs2fA39mzZ0+/xwPAzTff7H58aWkp6urq+j0mMjISs2fPvuI11c4X7UyX81c7t7W1QRAEREVFeSVupfFHO1utVrz44ouIjIzE5MmTvRe8wviqrR0OB+677z788pe/xIQJE3wTvIL48j1dUFCAhIQEjBkzBj/60Y/Q1NTktbhVk4w0NjbCbrcjMTGx388TExNRV1c34O/U1dVd9fHS/3pyTbXzRTvT5fzRzr29vXj00Udxzz33BO0hZL5s548++gjh4eEwmUz4r//6L+Tn5yMuLs67L0BBfNXWv/vd76DT6fDTn/7U+0ErkK/aeenSpfjb3/6GrVu34ne/+x22bduGZcuWwW63eyVuRZzaS0TeZbPZcNddd0EURaxfv17ucFRpwYIFKC4uRmNjIzZs2IC77roLhYWFSEhIkDs01Thw4ACee+45HDx4EIIgyB2Oqt19993u/z9p0iTk5uZi5MiRKCgowMKFC4d9fdWMjMTFxUGr1aK+vr7fz+vr65GUlDTg7yQlJV318dL/enJNtfNFO9PlfNnOUiJSXl6O/Pz8oB0VAXzbzmFhYcjJycGcOXPw8ssvQ6fT4eWXX/buC1AQX7T1jh070NDQgIyMDOh0Ouh0OpSXl+MXv/gFsrKyfPI6Ap2/7tHZ2dmIi4vD2bNnhx80VJSMGAwGTJ8+HVu3bnX/zOFwYOvWrcjLyxvwd/Ly8vo9HgDy8/Pdjx8xYgSSkpL6Paa9vR2FhYVXvKba+aKd6XK+amcpETlz5gw+//xzxMbG+uYFKIQ/388OhwMWi2X4QSuUL9r6vvvuw5EjR1BcXOz+k5KSgl/+8pfYsmWL715MAPPXe7qqqgpNTU1ITk72TuA+K42VwaZNm0Sj0Si+9tpr4vHjx8Xvf//7YlRUlFhXVyeKoijed9994mOPPeZ+/K5du0SdTif+8Y9/FE+cOCE+8cQTAy7tjYqKEt9//33xyJEj4m233calvT5o56amJvHQoUPixx9/LAIQN23aJB46dEisra31++sLFN5uZ6vVKt56661iWlqaWFxc3G+JnsVikeU1BgJvt3NnZ6e4Zs0acc+ePWJZWZm4f/9+8Tvf+Y5oNBrFo0ePyvIaA4Uv7h1fxdU03m/njo4O8ZFHHhH37NkjlpaWip9//rk4bdo0cdSoUWJvb69XYlZVMiKKovjf//3fYkZGhmgwGMRZs2aJe/fudf/b/Pnzxfvvv7/f4998801x9OjRosFgECdMmCB+/PHH/f7d4XCIv/rVr8TExETRaDSKCxcuFE+dOuWPlxLQvN3Or776qgjgsj9PPPGEH15N4PJmO0vLpgf68+WXX/rpFQUmb7ZzT0+PeMcdd4gpKSmiwWAQk5OTxVtvvVXct2+fv15OQPP2veOrmIw4ebOdu7u7xSVLlojx8fGiXq8XMzMzxQcffNCd3HiDIIqi6J0xFiIiIiLPqaZmhIiIiJSJyQgRERHJiskIERERyYrJCBEREcmKyQgRERHJiskIERERyYrJCBEREcmKyQgRERHJiskIERERyYrJCBEREcmKyQgRERHJiskIERERyer/AzDARq27yU58AAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.linspace(0, 0.05, 1000)\n",
"\n",
"plt.figure()\n",
"plt.plot(t, flux(t))\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.10.5"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}