space-workshop/U02_3_Low_Pass.en.ipynb
2025-09-19 23:21:37 +02:00

320 lines
127 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "1a219eb5",
"metadata": {},
"source": [
"# Low-Pass Filter"
]
},
{
"cell_type": "markdown",
"id": "70bc7f0d",
"metadata": {},
"source": [
"```{figure} img/reference/shifted_waterfall.webp\n",
"---\n",
"name: fig:shifted_waterfall.en\n",
"---\n",
"Waterfall diagram after the frequency shift. One copy has moved to zero, the other to -4.8kHz.\n",
"We also see the so-called *DC-component*, previously at zero, at -2.4kHz now.\n",
"```\n",
"\n",
"In the next step we filter the signal, such that only one copy of the baseband remains.\n",
"Since it contains 4160 pixels per second, it extends from -2080 to 2080 Hz in the spectrum (this is related to the nyquist criterion).\n",
"\n",
"Therefore, we want to remove everything in the spectrum that is outside of this frequency interval.\n",
"This can be represented as a multiplication with a so-called rectangle function:\n",
"```{math}\n",
"\\text{rect}(f) = \\left\\{\\begin{array}{rcl}\n",
" 1 && -\\frac{1}{2} < f < \\frac{1}{2} \\\\\n",
" 0 &:& \\text{otherwise} \\\\\n",
"\\end{array}\\right.\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "3706c744",
"metadata": {
"tags": [
"remove-input"
]
},
"outputs": [
{
"data": {
"image/png": "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WblypaP2li1bmnPnzjn63HnnnSYxMdEYY8zOnTuNJLNq1apyv/uhQ4eMr6+v+fLLL40xxhQXF5uQkBCzcOHCi/68Bg4cWKZdkvH393f6OdarV8/UqVOn3P6nT582sbGx5g9/+IMpKSmp1GcA+G2MyQHg5KabbtKcOXMc7+vVq+f4/127dnXqu2XLFq1evVpBQUFltrNnzx6dPn1axcXFio2NdbQ3atRI1157rUs1bdmyRbt371b9+vWd2s+cOaM9e/Y43rdr106+vr6O9+Hh4dq6daukXy49+fr6qlevXuV+RkREhPr376/58+ere/fu+te//qWioiLdeeedLtV63ksvvaT4+HintsmTJ6ukpKRM3/vuu08FBQVatWqVfHw4wQ64CyEHgJN69epVeHnm14FHkn7++WcNGDBAL7zwQpm+4eHhlR7LYrPZZIxxavv1WJqff/5ZXbt21VtvvVVm3V8Piq5bt26Z7ZaWlkqSAgICfrOO+++/X/fee69eeuklLViwQImJiQoMDKzUd7hQWFhYmZ9j/fr1deLECae2v/zlL1q5cqU2bNhQJsQBqB5CDoAq69Kli95//31FRUWpTp2y/5xcffXVqlu3rr788ku1aNFCkvTTTz/pu+++czqj0qRJEx0+fNjxfteuXTp16pTT5yxdulRNmzZVcHBwlWrt0KGDSktL9fnnn5c5w3Lerbfeqnr16mnOnDlasWKF1qxZU6XPqqz3339ff/7zn/XJJ5/o6quvrtHPAi5HnBcFUGVJSUk6fvy4hgwZoq+++kp79uzRypUrNXLkSJWUlCgoKEijRo3SpEmT9Nlnn2nbtm0aMWJEmUsyN998s1555RVt3rxZGzdu1JgxY5zOygwdOlQhISEaOHCg1q5dq7179yozM1OPPPKIDh48WKlao6KiNHz4cN13331atmyZYxvvvPOOo4+vr69GjBihlJQUtW7dWnFxce75QZVj27ZtGjZsmCZPnqx27dopNzdXubm5On78eI19JnC5IeQAqLKIiAitW7dOJSUl6tOnjzp06KAJEyaoYcOGjiDz4osvqmfPnhowYIDi4+N1ww03lBnbM336dEVGRqpnz56655579NhjjzldJgoMDNSaNWvUokUL3X777Wrbtq1GjRqlM2fOuHRmZ86cORo8eLAeeughtWnTRqNHj1ZhYaFTn1GjRqm4uFgjR46sxk/mt23cuFGnTp3SX/7yF4WHhztet99+e41+LnA5sZkLL4QDQA3r3bu3oqOjNXPmTE+XUsbatWt1yy236MCBAwoNDb1o3xEjRujEiRNuf6TDpf4MwKo4kwMA+mWiwIMHD+pPf/qT7rzzzt8MOOd99NFHCgoK0kcffeTWetauXaugoKByB1sDqBwGHgOApMWLF2vUqFGKjo7W3//+90qtM3XqVD311FOSfrmbzJ1iYmKUk5MjSeXeog/gt3G5CgAAWBKXqwAAgCURcgAAgCURcgAAgCURcgAAgCURcgAAgCURcgAAgCURcgAAgCURcgAAgCX9fwBBZAvfu0EQAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"n = 8192\n",
"f_s = 2080 * 4\n",
"f = np.roll(np.fft.fftfreq(n, d = 1/f_s), -n//2)\n",
"\n",
"def rect(f):\n",
" return np.where(np.abs(f) < 0.5, 1, 0)\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.plot(f, rect(1/4160 * f));\n",
"ax.set_xlabel(\"Frequency [Hz]\");\n",
"ax.set_ylabel(\"$rect(f/4160)$\");"
]
},
{
"cell_type": "markdown",
"id": "515f4212",
"metadata": {},
"source": [
"Here, we have already scaled the rectangle such that its value is 1 if the input frequency is between -2080 and 2080, and 0 otherwise.\n",
"This can be done like this:\n",
"```{math}\n",
"\\text{rect}\\left(\\frac{1}{4160} \\cdot f\\right) = \\left\\{\\begin{array}{rcl}\n",
" 1 && -\\frac{1}{2} < \\frac{1}{4160} \\cdot f < \\frac{1}{2} \\Leftrightarrow -2080 < f < 2080 \\\\\n",
" 0 &:& \\text{otherwise} \\\\\n",
"\\end{array}\\right.\n",
"```\n",
"\n",
"A rectangle in the frequency domain corresponds to the $\\text{sinc}$ in the time domain.\n",
"This function is defined as\n",
"```{math}\n",
"\\text{sinc}(t) \\mathrel{\\vcenter{:}}= \\left\\{\\begin{array}{ccl}\n",
" \\frac{\\sin(\\pi t)}{\\pi t} && t \\neq 0 \\\\\n",
" 0 &:& t = 0 \\\\\n",
"\\end{array}\\right.\n",
"```\n",
"\n",
"Including the scaling to -2080 to 2080 Hz, we get (due to $x[at] \\,\\circ\\!\\!-\\!\\!\\bullet\\, \\frac{1}{|a|} X \\left[\\frac{f}{a}\\right]$):\n",
"```{math}\n",
"\\text{rect}\\left(\\frac{1}{4160} \\cdot f\\right) \\,\\bullet\\!\\!-\\!\\!\\circ\\, 4160 \\cdot \\text{sinc}(4160 \\cdot t)\n",
"```\n",
"\n",
"Thus, to filter the signal, we have to implement a convolution with this $\\text{sinc}$ function.\n",
"We have one problem though:\n",
"The $\\text{sinc}$ function has *infinite support*, so we would have to evaluate it at infinitely many points.\n",
"\n",
"Since we want our program to be done after a finite amount of time, we can only use a finite window of samples for the convolution.\n",
"This means our calculation can not be exact.\n",
"We can however keep the introduced error small, using a *window function*.\n",
"A commonly used window function is the so-called [Hamming window](https://en.wikipedia.org/wiki/Window_function#Hamming_window):\n",
"```{math}\n",
"w[n] \\mathrel{\\vcenter{:}}= 0.54 - 0.46 \\cdot \\cos\\left(\\frac{2 \\pi \\cdot n}{N - 1}\\right), \\quad n = 0,\\dots,N-1\n",
"```\n",
"where $N$ is the size of the window (in samples).\n",
"\n",
"We proceed as follows:\n",
"- First we determine the window size.\n",
" The more samples it has, the more accurate the result becomes, at the cost of a longer running time.\n",
" For this project, a window size of 64 samples is fine.\n",
"- We calculate the *filter coefficients*. Every coefficient $a[n]$ is comprised of $w[n]$ and value of $\\text{sinc}(t)$, where $t$ depends on $n$:\n",
" As we have seen during the frequency shift, the time between samples is $1/f_S$.\n",
" We want a time interval that is symmetric around zero.\n",
" Given $n$ and $N$, we therefore have\n",
" ```{math}\n",
" t = \\frac{1}{f_S} \\cdot \\left(n - \\frac{N-1}{2}\\right)\n",
" ```\n",
" And overall\n",
" ```{math}\n",
" a[n] = w[n] \\cdot \\text{sinc}(4160 \\cdot t)\n",
" ```\n",
"- Finally we scale each $a[n]$, such that\n",
" ```{math}\n",
" \\sum_{n=0}^{N-1} a[n] = 1\n",
" ```\n",
" (This is what allowed us to ignore the constant factor in the $\\text{sinc}$ function.)\n",
" \n",
"Here we see the $\\text{sinc}$ function:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "949bb97c",
"metadata": {
"tags": [
"remove-input"
]
},
"outputs": [
{
"data": {
"image/png": "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PDwcKSkpWL16tVeu0ZGvrvfMmTO466670LlzZ6jVajz22GPeuDy88847SExMhNFoxMCBA7Fp06Y6j//yyy/RtWtXGI1G9OrVCytXrqxyvxACM2fORHx8PIKCgpCamoqDBw9WOcadn6kSfHGtL774IgYNGoTg4GBERkYqfUl1aujrPXbsGCZOnIh27dohKCgIHTp0wKxZs2AymbxyfY588W974403ok2bNjAajYiPj8fYsWNx+vRpxa+tJr64Xkl5eTn69OkDlUqFjIwM1wYuyGnXXnutSEpKEhs2bBB//fWX6NixoxgzZkydj5k8ebJISEgQa9asEVu2bBGXXnqpGDRokHy/2WwWPXv2FKmpqWLbtm1i5cqVIiYmRsyYMaPac124cEG0b99eDBs2TCQlJSl9edX46nq3bt0qli1bJnbt2iWOHj0qPvnkExEcHCzee++9Jnetjz76qHj55ZfFpk2bxIEDB8SMGTOETqcTW7du9dq1CuG76z169Kh45JFHxJIlS0SfPn3Eo48+qvi1ff7550Kv14tFixaJ3bt3i0mTJonIyEiRnZ1d4/Hr1q0TGo1GvPLKK2LPnj3i6aefFjqdTuzcuVM+Zs6cOSIiIkKsWLFCbN++Xdx4442iXbt2orS0VD7GnZ+pv17rzJkzxbx588S0adNERESEV6/RkS+u96effhLjx48Xq1evFocPHxbfffedaNGihfjnP//Z5K5VCCHmzZsn0tLSxLFjx8S6detESkqKSElJ8eq1+vJ6JY888ogYMWKEACC2bdvm0tgZSDlpz549AoDYvHmzfNtPP/0kVCqVyMzMrPExeXl5QqfTiS+//FK+be/evQKASEtLE0IIsXLlSqFWq0VWVpZ8zPz580V4eLgoLy+v8nyjR48WTz/9tJg1a5bXA6nGcL2Obr75ZnHPPfd4elk1amzX2r17d/Hcc895elm1aizXO2TIEK8EUgMGDBBTpkyRv7dYLKJly5Zi9uzZNR5/xx13iOuvv77KbQMHDhQPPvigEEIIq9Uq4uLixH//+1/5/ry8PGEwGMRnn30mhHDvZ6oEX1yro48++qhBAylfX6/klVdeEe3atfPkUurVWK71u+++EyqVSphMJk8up16+vN6VK1eKrl27it27d7sVSHFqz0lpaWmIjIxE//795dtSU1OhVquxcePGGh+Tnp6OiooKpKam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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ntaps = 64\n",
"M = ntaps - 1\n",
"n = np.arange(ntaps)\n",
"\n",
"window = 0.54 - 0.46 * np.cos(2 * np.pi * n / M)\n",
"\n",
"M //= 2\n",
"t = (M - n).astype(np.float64)\n",
"t /= f_s\n",
"\n",
"taps = np.sinc(4160 * t)\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.plot(t, taps)\n",
"ax.set_xlabel(\"Time [s]\")\n",
"ax.set_ylabel(\"$sinc(4160 t)$\");"
]
},
{
"cell_type": "markdown",
"id": "9808b2f0",
"metadata": {},
"source": [
"And here the hamming window:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "f1c92eaf",
"metadata": {
"tags": [
"remove-input"
]
},
"outputs": [
{
"data": {
"image/png": "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Rk1NjU7G928i/tuOHj0arVq1gpWVFVq2bIkJEyYgMzNT62P7NxFjvaa6uhrdu3eHTCbD6dOnNQsumagHHnhA6tatm3TixAnpyJEjUkBAgDRu3LjbvmbmzJmSj4+PFBYWJkVGRkr9+/eXgoODG95fV1cnde7cWQoJCZFiYmKk3bt3S25ubtL8+fNv+FhXrlyR/P39pREjRkjdunXT9vAaETXW6Oho6YcffpDOnTsnJSUlSd9++61kY2MjffXVVzobqySJG+/LL78s/e9//5NOnTolxcfHS/Pnz5csLCyk6OhooxtrUlKSNHfuXGnTpk1S9+7dpZdfflnrY9uyZYtkaWkprV+/Xjp//rw0ffp0ycnJScrJybnp848dOyaZmZlJH374oXThwgVpwYIFkoWFhXT27NmG53zwwQeSo6Oj9PPPP0t///23NHr0aMnPz0+qrKxseM7dfE0NebyLFi2Sli1bJoWGhkqOjo66HqYkSWLG+scff0iTJ0+W9u7dKyUkJEi//PKL5O7uLr322mtGOV5JkqRly5ZJERERUnJysnTs2DEpKChICgoKMsqxXjN37lzpwQcflABIMTExGmU3yUJ04cIFCYD0119/NTz2xx9/SDKZTMrIyLjpa4qKiiQLCwtp27ZtDY/FxsZKAKSIiAhJkiRp9+7dklwul7Kzsxue8+WXX0oODg5SdXV1o483duxYacGCBdLixYt1Woj0YazXe/zxx6XnnnvuXod1S/o23o4dO0pLliy512HdlL6MdciQITopRH379pVmz57d8GeVSiV5enpK77///k2f//TTT0sPP/xwo8f69esnzZgxQ5IkSVKr1ZKHh4f00UcfNby/qKhIUigU0ubNmyVJuruvqbaIGO/1NmzY0GyFSPRYr/nwww8lPz+/exlKk+jLeH/55RdJJpNJNTU19zKc2xI51t27d0uBgYHS+fPn76oQmeQts4iICDg5OaF3794Nj4WEhEAul+PkyZM3fU1UVBRqa2sREhLS8FhgYCBatWqFiIiIho/bpUsXKJXKhueMHDkSJSUlOH/+fMNjGzZsQGJiIhYvXqztod1A9FivFxMTg+PHj2PIkCHaGNpN6dN41Wo1SktL4eLioo2h3UCfxqptNTU1iIqKapRTLpcjJCSkIee/RURENHo+UJ/72vOTkpKQnZ3d6DmOjo7o169fo7Fr+jXV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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.plot(t, window)\n",
"ax.set_xlabel(\"Time [s]\")\n",
"ax.set_ylabel(\"Hamming window\");"
]
},
{
"cell_type": "markdown",
"id": "730a4714",
"metadata": {},
"source": [
"And here the product of both:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "0143e3d8",
"metadata": {
"tags": [
"remove-input"
]
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAGwCAYAAACJjDBkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABifElEQVR4nO3deVzUdf4H8Nfcw3AfAooo3niCSRqWaUVq291WZqXJGm2lHUvtru720612F7fMbMuybM22suzaajfTirTyygvwvkVB5RJhuIeZ+f7+mPl+uWGY+Q7DMK/n48EjGeb4fNGGF+/P+/v+KgRBEEBEREREnaL09AKIiIiIvBFDFBEREZETGKKIiIiInMAQRUREROQEhigiIiIiJzBEERERETmBIYqIiIjICWpPL8AbWK1WnD9/HoGBgVAoFJ5eDhERETlAEARUVFSgT58+UCrlrxsxRDng/PnziI2N9fQyiIiIyAl5eXno27ev7M/LEOWAwMBAALa/hKCgIA+vhoiIiBxhNBoRGxsr/RyXG0OUA8QtvKCgIIYoIiIiL+OuVhw2lhMRERE5gSGKiIiIyAkMUUREREROYIgiIiIicgJDFBEREZETGKKIiIiInMAQRUREROQEhigiIiIiJzBEERERETmBIYqIiIjICQxRRERERE7wyhC1YsUKxMXFQa/XY8KECdi5c2eb912zZg0UCkWTD71e34WrJSIiop7I60LUunXrkJ6ejsWLF2Pv3r1ISEjAtGnTUFRU1OZjgoKCcOHCBenjzJkzXbhiIvImNSaLp5dARF7C60LUsmXLkJaWhtTUVIwYMQIrV66EwWDA6tWr23yMQqFAdHS09BEVFdXua9TV1cFoNDb5IKKe79M9+Ri5eAO+3nfB00shIi/gVSHKZDJhz549SElJkW5TKpVISUnB9u3b23xcZWUl+vfvj9jYWNx66604ePBgu6+TkZGB4OBg6SM2Nla2YyCi7mt3bimsArD7TKmnl0JEXsCrQlRJSQksFkuLSlJUVBQKCgpafcywYcOwevVqfPnll3j//fdhtVoxceJE5Ofnt/k6CxcuRHl5ufSRl5cn63EQUfd0qdoEACivrvfwSojIG6g9vQB3S05ORnJysvT5xIkTMXz4cLz55pt4/vnnW32MTqeDTqfrqiUSUTdRZg9PZTUMUUTUMa+qREVEREClUqGwsLDJ7YWFhYiOjnboOTQaDcaOHYsTJ064Y4lE5MXK7eGpzF6RIiJqj1eFKK1Wi3HjxiEzM1O6zWq1IjMzs0m1qT0WiwX79+9H79693bVMIvJSrEQRUWd43XZeeno6HnjgASQlJWH8+PFYvnw5qqqqkJqaCgCYPXs2YmJikJGRAQB47rnncMUVV2Dw4MEoKyvDiy++iDNnzuDBBx/05GEQUTdUVsOeKCJynNeFqBkzZqC4uBiLFi1CQUEBEhMTsWHDBqnZ/OzZs1AqGwpsly5dQlpaGgoKChAaGopx48Zh27ZtGDFihKcOgYi6odp6C2rrrQBslShBEKBQKDy8KiLqzhSCIAieXkR3ZzQaERwcjPLycgQFBXl6OUTkBoXGWkz4e0OrwP6/TEWgXuPBFRGRq9z989ureqKIiNzlUrNm8jJu6RFRBxiiiIjQMjSVs7mciDrAEEVEhJYhipUoIuoIQxQREYDymmbbeTWcFUVE7WOIIiICK1FE1HkMUUREaDlgkz1RRNQRhigiIrRWieJ2HhG1jyGKiAgNoal3sN7+OStRRNQ+higiIjSEpv7hBtvn3M4jog4wRBERoSE0xYX7A+D184ioYwxRREQAyu3bef3tIYojDoioIwxRRERoXImyb+exEkVEHWCIIiKfV2e2oNpkAdC4ElUPXp+diNrDEEVEPk+cCaVUALFhfgAAk9mK2nqrJ5dFRN0cQxQR+Txx6y7YT4MAnRoalcJ2O/uiiKgdDFFE5PPEEBVi0EKhUCDYT9vkdiKi1jBEEZHPEwdtBvtpAAAhBo39doYoImobQxQR+TzxzDwxPIXYw1Q5t/OIqB0MUUTk88TBmiGsRBFRJzBEEZHPExvIQwy2XiipJ4qXfiGidjBEEZHPa2gsZyWKiBzHEEVEPq+s+XYee6KIyAEMUUTk85pv57ESRUSOYIgiIp8nDdu0h6dgA+dEEVHHGKKIyOe1tZ13qZrbeUTUNoYoIvJ55TUNE8tt/9U0uZ2IqDUMUUTk0+otVlTWmQEAodKwTW7nEVHHGKKIyKeJ1SaFAgjUiz1Rtv/W1FtQW2/x2NqIqHtjiCIinyZeNy9Ir4FKqQAABOrUsP8RRm7pEVEbGKKIyKc1H7QJAEqlQroYMaeWE1FbGKKIyKc1PzNPFMIxB0TUAYYoIvJpYqVJnA0lkipRHHNARG1giCIinyaGpJaVKG7nEVH7GKKIyKeJZ+eFGpqFKPH6edzOI6I2MEQRkU9ruORL0+08qSeKFyEmojYwRBGRT7vUxnZeQ08UK1FE1DqGKCLyaQ2XfGFPFBF1DkMUEfm01uZENf6cPVFE1BaGKCLyaWLPU7Bfs54oP/ZEEVH7GKKIyKe1VYkSr5/HnigiagtDFBH5LLPFiopaMwAgtPnZeRxxQEQdYIgiIp9ltAcoAAjSq5t8TRxxUFFnRr3F2qXrIiLvwBBFRD5LHG8QqFdDrWr6dtg4VBl5hh4RtYIhioh8Vlv9UACgVikRaA9SHHNARK3xyhC1YsUKxMXFQa/XY8KECdi5c6dDj/voo4+gUChw2223uXeBROQVymvEQZvaVr8ewuZyImqH14WodevWIT09HYsXL8bevXuRkJCAadOmoaioqN3H5ebm4umnn8akSZO6aKVE1N21V4kCGsJVOcccEFErvC5ELVu2DGlpaUhNTcWIESOwcuVKGAwGrF69us3HWCwW3HfffXj22WcxcODALlwtEXVnDSGKlSgi6jyvClEmkwl79uxBSkqKdJtSqURKSgq2b9/e5uOee+45REZGYu7cuQ69Tl1dHYxGY5MPIup5xF6n5tfNE/H6eUTUHq8KUSUlJbBYLIiKimpye1RUFAoKClp9zJYtW/Cvf/0Lq1atcvh1MjIyEBwcLH3Exsa6tG4i6p7KxYsPt7Wdx+vnEVE7vCpEdVZFRQVmzZqFVatWISIiwuHHLVy4EOXl5dJHXl6eG1dJRJ5yyV5hCm6jEiX1RFWzJ4qIWlJ3fJfuIyIiAiqVCoWFhU1uLywsRHR0dIv7nzx5Erm5ubj55pul26xW29A8tVqNo0ePYtCgQS0ep9PpoNPpZF49EXU30nZeRz1RrEQRUSu8qhKl1Woxbtw4ZGZmSrdZrVZkZmYiOTm5xf3j4+Oxf/9+ZGdnSx+33HILrrnmGmRnZ3ObjsjHSdt57IkiIid4VSUKANLT0/HAAw8gKSkJ48ePx/Lly1FVVYXU1FQAwOzZsxETE4OMjAzo9XqMGjWqyeNDQkIAoMXtROR7GipRbfVEaZvcj4ioMa8LUTNmzEBxcTEWLVqEgoICJCYmYsOGDVKz+dmzZ6FUelWBjYg8xNERB+yJIqLWeF2IAoD58+dj/vz5rX5t8+bN7T52zZo18i+IiLyOxSrAWNvRsE32RBFR21iyISKfVFFbD0Gw/bmts/OCxUpUTT2sVqGrlkZEXoIhioh8kjjeIECnhkbV+luhGK4EAaioNXfZ2ojIOzBEEZFPKrP3ObVVhQIAnVoFg1Zluz+vn0dEzTBEEZFP6ujMPFEIxxwQURsYoojIJ5VXOxaigjnmgIjawBBFRD6pTLpuXuvjDUQNlShu5xFRUwxRROSTpO28dnqigEazoliJIqJmGKKIyCeVObidJ10/jz1RRNQMQxQR+aRyqRLV/nZesP3rDFFE1BxDFBH5pEviiANHK1EccUBEzTBEEZFPkrbzOuqJ8hOvn8dKFBE1xRBFRD5J2s7r6Ow8A6+fR0StY4giIp8kjiwI7WhOlNQTxe08ImqKIYqIfI7VKkiVKEd7ojjigIiaY4giIp9TUWeGVbD9ub1r5wFNRxwIguDupRGRF2GIIiKfIzaJG7Qq6NSqdu8rjkAwWwVUmSxuXxsReQ+GKCLyOeJ4g47OzAMAvUYJrdr2Vsm+KCJqjCGKiHxOmdQP1f6ZeQCgUCgaXT+PfVFE1IAhioh8jqNn5onYXE5ErWGIIiKf0zAjysEQxUu/EFErGKKIyOeIYSi4g+vmiYJ56RciagVDFBH5HOmSLw5XotgTRUQtMUQRkc8RK0qOnJ0HsCeKiFrHEEVEPqfTlSgDL/1CRC0xRBGRzxHDkMM9UdzOI6JWMEQRkc8R50R1dsRBGbfziKgRhigi8jnl0naeY5UoccRBOStRRNQIQxQR+RRBEKSKkuM9URxxQEQtMUQRkU+prDPDYhUANPQ6dYQ9UUTUGoYoIvIpYhDSa5TQa1QOPUasRNWZraitt7htbUTkXRiiiMinSOMNHDwzDwACdGqolIomjyciYogiIp8iDdp0sB8KABQKRcPUcvZFEZEdQxQR+ZTODtoUSdfPYyWKiOwYoojIp0hn5nViO892f4YoImqKIYqIfEp5dee382z3t8+K4nYeEdkxRBGRTxErScGdDVGsRBFRMwxRRORTnN3OC+alX4ioGYYoIvIpUiXKwUGbIjF0sRJFRCKGKCLyKZV1thAUqFd36nFiDxV7oohIxBBFRD6lpt4KAPBzcFq5yKC13b+qjhPLiciGIYqIfEqtyRaCxFDkKIPWVrmq4WVfiMiOIYqIfEp1vRkAoO9kiPLT2t4ua0wMUURkwxBFRD6lxuTcdp54sWJWoohIxBBFRD6ltt7F7TxWoojIjiGKiHyGIAioNtm28zpbifJjJYqImvHKELVixQrExcVBr9djwoQJ2LlzZ5v3/fzzz5GUlISQkBD4+/sjMTER7733Xheuloi6C5PFCqtg+7NfpytR9hDFShQR2XldiFq3bh3S09OxePFi7N27FwkJCZg2bRqKiopavX9YWBj+/Oc/Y/v27di3bx9SU1ORmpqKjRs3dvHKicjTGgcgvQs9UVYxiRGRT/O6ELVs2TKkpaUhNTUVI0aMwMqVK2EwGLB69epW7z9lyhTcfvvtGD58OAYNGoQnnngCY8aMwZYtW9p8jbq6OhiNxiYfROT9xK04jUoBjapzb3+NK1d1Zqus6yIi7+RVIcpkMmHPnj1ISUmRblMqlUhJScH27ds7fLwgCMjMzMTRo0dx9dVXt3m/jIwMBAcHSx+xsbGyrJ+IPEusRHW2H6r5Y9gXRUSAl4WokpISWCwWREVFNbk9KioKBQUFbT6uvLwcAQEB0Gq1uPHGG/Hqq6/i+uuvb/P+CxcuRHl5ufSRl5cn2zEQkedUiyGqk/1QAKBSKqBVK+3PY5Z1XUTknTp38SgvFRgYiOzsbFRWViIzMxPp6ekYOHAgpkyZ0ur9dToddDpd1y6SiNxOHG/gTCUKsDWXm8xW6XmIyLd5VYiKiIiASqVCYWFhk9sLCwsRHR3d5uOUSiUGDx4MAEhMTMThw4eRkZHRZogiop5J3Ibz0zr31uenUaEM9VJFi4h8m1dt52m1WowbNw6ZmZnSbVarFZmZmUhOTnb4eaxWK+rq6tyxRCLqxqTtPI1zb33SrCiGKCKCl1WiACA9PR0PPPAAkpKSMH78eCxfvhxVVVVITU0FAMyePRsxMTHIyMgAYGsST0pKwqBBg1BXV4f169fjvffewxtvvOHJwyAiD5C285zoiWr8ODaWExHghSFqxowZKC4uxqJFi1BQUIDExERs2LBBajY/e/YslMqG3zKrqqrw6KOPIj8/H35+foiPj8f777+PGTNmeOoQiMhDGs7Oc347r/HzEJFv87oQBQDz58/H/PnzW/3a5s2bm3z+17/+FX/961+7YFVE1N25cnZe48exEkVEgJf1RBERuUJqLHexJ4qN5UQEMEQRkQ8Re6IMzp6dZ69EccQBEQEMUUTkQ8QKUmevmyfiRYiJqDGGKCLyGTVSJcq5ECWGr2pWoogIToao2bNn45133sHJkyflXg8Rkdu4cu08gJUoImrKqRCl1WqRkZGBIUOGIDY2Fvfffz/efvttHD9+XO71ERHJRgw/emfPzuOIAyJqxKkQ9fbbb+PYsWPIy8vDCy+8gICAALz00kuIj49H37595V4jEZEspO08JytR4uViOOKAiAAXe6JCQ0MRHh6O0NBQhISEQK1Wo1evXnKtjYhIVjWuzonScE4UETVwKkT96U9/wsSJExEeHo4FCxagtrYWCxYsQEFBAbKysuReIxGRLBrmRDlbibK9ZXI7j4gAJyeWL1myBL169cLixYtxxx13YOjQoXKvi4hIdjWuXjtPw+08ImrgVIjKysrCjz/+iM2bN+Oll16CVqvF5MmTMWXKFEyZMoWhioi6JVfPzhPDFyeWExHgZIhKSEhAQkICHn/8cQBATk4OXn75ZcybNw9WqxUWC99giKj7cbUSZeDEciJqxKkQJQgCsrKysHnzZmzevBlbtmyB0WjEmDFjMHnyZLnXSEQkC5crURxxQESNOBWiwsLCUFlZiYSEBEyePBlpaWmYNGkSQkJCZF4eEZE8rFbB5UqUNLHcZJZtXUTkvZwKUe+//z4mTZqEoKAguddDROQWdWar9GdXJ5bX1ls7uCcR+QKnQtSNN94o9zqIiNyq8Rl1rm7nmSxWmC1WqFW8/CiRL3MqRAFAWVkZ/vWvf+Hw4cMAgBEjRmDu3LkIDg6WbXFERHIRt+B0aiWUSoVTz9F4G7Cm3oJAhigin+bUO8Du3bsxaNAgvPzyyygtLUVpaSlefvllDBo0CHv37pV7jURELhPPqDM42Q8F2AKYwp6/2FxORE5Von73u9/hlltuwapVq6BW257CbDbjwQcfxJNPPomffvpJ1kUSEbmq2sUz8wBAoVDAT6NCtcnCgZtE5FyI2r17d5MABQBqtRp/+MMfkJSUJNviiIjkIlaO9C5UogBbJYshiogAJ7fzgoKCcPbs2Ra35+XlITAw0OVFERHJrUaG7Tyg8ZgDhigiX+dUiJoxYwbmzp2LdevWIS8vD3l5efjoo4/w4IMPYubMmXKvkYjIZa4O2hRJYw4Yooh8nlPbeUuXLoVCocDs2bNhNtvOeNFoNHjkkUewZMkSWRdIRCQHsRKldzFE+bESRUR2ToUorVaLV155BRkZGTh58iQAYNCgQTAYDLIujohILnJv57EnioicnhMFAAaDAaNHj5ZrLUREbiP3dh5DFBE5HKLS09MdftJly5Y5tRgiIneRQpSLlSjx8ZwTRUQOh6isrKwmn+/duxdmsxnDhg0DABw7dgwqlQrjxo2Td4VERDKQLj6scakALz2elSgicvjdZNOmTdKfly1bhsDAQLz77rsIDQ0FAFy6dAmpqamYNGmS/KskInKRNGxT69qlWsTHs7GciJx6N3nppZeQkZEhBSgACA0NxV//+le89NJLsi2OiEgutfXy9ESJj69lJYrI5zkVooxGI4qLi1vcXlxcjIqKCpcXRUQkN2k7T+vidp798eyJIiKnQtTtt9+O1NRUfP7558jPz0d+fj4+++wzzJ07F3fccYfcayQicpkc185r/Hhu5xGRU7+SrVy5Ek8//TTuvfde1NfX255IrcbcuXPx4osvyrpAIiI5SNt5LvZESRPLuZ1H5POcClEGgwGvv/46XnzxxSbDNv39/WVdHBGRXBoqUa6enSdWoswur4mIvJtL7yb+/v4YM2aMXGshInIb2edEsRJF5POcDlGZmZnIzMxEUVERrFZrk6+tXr3a5YUREcmpVqbLvvhJl32xdnBPIurpnApRzz77LJ577jkkJSWhd+/eUCgUcq+LiEhWsjWWSxPLuZ1H5Oucbixfs2YNZs2aJfd6iIjcQtx+08sVoridR+TznDpNxWQyYeLEiXKvhYjIbWrk3s7jiAMin+dUiHrwwQexdu1auddCROQWFqsAk9nWw+Tqdp6BFyAmIjuntvNqa2vx1ltv4fvvv8eYMWOg0WiafH3ZsmWyLI6ISA6Nt95cPjtP07CdJwgCe0KJfJhTIWrfvn1ITEwEABw4cEDO9RARyU6sGikUgE7t2rBNvT2EWQWgzmx1uceKiLyXUyFq06ZNcq+DiMhtahqdmedq5ajxdmBtvYUhisiHORyi0tPT8fzzz8Pf3x/p6elt3k+hUOCll16SZXFERHKQLj4sQ+DRqJTQqBSotwioNlkQYnD5KYnISzkcorKysqTr5GVlZbV5P/YHEFF3I16ixdV+KJGfRoV6i5ljDoh8nMMhqvEWnqe381asWIEXX3wRBQUFSEhIwKuvvorx48e3et9Vq1bh3//+t9S7NW7cOPz9739v8/5E1PPIWYkCbGHMWGvmGXpEPs61DksPWLduHdLT07F48WLs3bsXCQkJmDZtGoqKilq9/+bNmzFz5kxs2rQJ27dvR2xsLKZOnYpz58518cqJyFPES77IWYkCOHCTyNc5FaJmz56N1atX4+TJk3Kvp0PLli1DWloaUlNTMWLECKxcuRIGg6HN6/V98MEHePTRR5GYmIj4+Hi8/fbbsFqtyMzM7OKVE5GnyHXJF5Gf1lbEZyWKyLc5FaK0Wi2WLFmCIUOGIDY2Fvfffz/efvttHD9+XO71NWEymbBnzx6kpKRItymVSqSkpGD79u0OPUd1dTXq6+sRFhbW5n3q6upgNBqbfBCR95LOzpOtEmV766xmiCLyaU6FqLfffhvHjh1DXl4eXnjhBQQEBOCll15CfHw8+vbtK/caJSUlJbBYLIiKimpye1RUFAoKChx6jj/+8Y/o06dPkyDWXEZGBoKDg6WP2NhYl9ZNRJ5VK9MlX0QGeyWqltt5RD7NpZ6o0NBQhIeHIzQ0FCEhIVCr1ejVq5dca5PdkiVL8NFHH+E///kP9Hp9m/dbuHAhysvLpY+8vLwuXCURyU2sGMk100l8HlaiiHybU8M2//SnP2Hz5s3IysrC8OHDMXnyZCxYsABXX301QkND5V6jJCIiAiqVCoWFhU1uLywsRHR0dLuPXbp0KZYsWSJdqqY9Op0OOp3O5fUSUffgjrPzGj8vEfkmp0LUkiVL0KtXLyxevBh33HEHhg4dKve6WqXVajFu3DhkZmbitttuAwCpSXz+/PltPu6FF17A3/72N2zcuBFJSUldslYi6j5q5N7Os4cxbucR+TanQlRWVhZ+/PFHbN68GS+99BK0Wi0mT56MKVOmYMqUKW4NVenp6XjggQeQlJSE8ePHY/ny5aiqqkJqaioA25mDMTExyMjIAAD84x//wKJFi7B27VrExcVJvVMBAQEICAhw2zqJqPuokf3sPHE7zyzL8xGRd3IqRCUkJCAhIQGPP/44ACAnJwcvv/wy5s2bB6vVCovFfb+dzZgxA8XFxVi0aBEKCgqQmJiIDRs2SM3mZ8+ehVLZ0Or1xhtvwGQy4c4772zyPIsXL8Zf/vIXt62TiLoPMUTp5To7T9zOM1lleT4i8k5OhShBEJCVlYXNmzdj8+bN2LJlC4xGI8aMGYPJkyfLvcYW5s+f3+b23ebNm5t8npub6/b1EFH3Jm3nyVWJkoZtshJF5MucClFhYWGorKxEQkICJk+ejLS0NEyaNAkhISEyL4+IyHVyz4kySJUo9kQR+TKnQtT777+PSZMmISgoSO71EBHJTqxEyT3igGfnEfk2p0LUjTfeKPc6iIjcRpznJA7JdJUf50QREbzwAsRERJ1VK/OcKHE7jyMOiHwbQxQR9XjSsE2tPG95ei0rUUTEEEVEPqBamhMlz3aegT1RRASGKCLyAbUyn50nPk8tK1FEPo0hioh6PLkv+yI1lrMSReTTGKKIqEczma0wWwUA8o048OOcKCICQxQR9XCN+5Zku3ae/XnqzFZY7AGNiHyPSyFq4sSJ0jXriIi6I3EMgVqpgFYtz++NjedNccwBke9y6VSVGTNmoKSkRK61EBHJruHMPHmqUACgaxTGauot8NfJc9YfEXkXl/7Pf+KJJ+RaBxGRW4h9S3qZmsoBQKlUQK9Rorbeyr4oIh/Gnigi6tHkPjNPJG7pcVYUke9iiCKiHq3GDdt5jZ+PU8uJfBdDFBH1aGKlSK7xBiKOOSAip0LUtm3bcODAAbnXQkQku2qTGYD823liJYpn5xH5LqdC1Lx58/DLL7+0uP3kyZOoqKhweVFERHIRQw6384hIbk6FqKNHj2LKlCktbv/+++8xc+ZMV9dERCQbd5ydBzTazmMlishnORWigoKCcOnSpRa3T5o0CTt27HB5UUREchGvb2dwUyWqxr5dSES+x6kQNX36dCxdurTlkymVMJlMLi+KiEguteLZebKPOGAlisjXORWinn/+efz444/49a9/jf379wMAamtr8Y9//ANjxoyRdYFERK4QQ47cIUovnZ1nlfV5ich7ODWxPDY2Fjt27MAjjzyChIQE6HQ6mM1mBAcH47///a/cayQicpo7LvsCNGwPVtdzO4/IVzl92Zf+/ftj/fr1OHv2LLKzs6HRaDBhwgSEhYXJuT4iIpfUuOvsPHslqpZn5xH5LKe283bt2oXrrrsOY8aMwZNPPons7GzU19ejqqpK7vUREbmk1k2XfdFzxAGRz3MqRM2aNQsqlQoPPfQQBgwYgB9//BGpqano378/wsPD5V4jEZHTxJAj98RyNpYTkVPbeXl5efj6668xaNCgJrefOXMG2dnZcqyLiEgWNW46O69hxAFDFJGvcipEJScn49y5cy1CVP/+/dG/f39ZFkZEJIcaN23ncdgmETm1nfe73/0Ozz33HEpLS+VeDxGRrGrctJ0nVaIYooh8llOVqJtvvhkKhQJDhw7FrbfeiuTkZIwdOxajR4+GVquVe41ERE5z99l53M4j8l1OhagTJ04gJydH+vj73/+O3NxcaDQaDBs2DPv27ZN7nUREThFDjkHr9ESXVrGxnIicelcZOHAgBg4ciNtvv126zWg0IicnhwGKiLoVd1WiOOKAiBzuiZo1axZqamoAAGfPnm3x9aCgIEyaNAnz5s2Tb3VERC4QBEEKUXqtUy2gbRIrWxy2SeS7HK5E+fv7o66uDn5+foiLi0NoaCjGjBmDxMREJCQkIDExESNHjoRGo3HneomIHFZntkIQbH+WezuPjeVE5PC7ysqVK6U/nzp1Cvv27UN2djZycnLw1VdfITc3F2q1GvHx8cjJyXHLYomIOqNx07deLW8lSgxRZqsAk9kKrczPT0Tdn1O/msXFxSEuLg633HKLdFtFRQWys7PZE0VE3YZYJdKqlFCrZA5RjeZO1dRbGKKIfJBT/9f/5je/wZo1a6TPz5w5gy1btmDMmDHsiSKibqPaTdPKAUCjUkClVADgmAMiX+VUiFq/fj3i4+MBAGVlZRg3bhxuu+02jBgxAseOHZN1gUREzqp105l5AKBQKGBgXxSRT3MqRJWXlyMmJgYA8NlnnyE6OhpGoxEzZszAggULZF0gEZGz3HXJF5GeAzeJfJpTISo2NhanT58GAHzyySeYM2cOdDodHn74YWzdulXWBRIROavaTZd8ETWcoWd2y/MTUffmVGP5nDlz8Pjjj+Pmm29GZmYmXnvtNQCA1WpFZWWlrAskInJWjRt7ooBGU8tNVrc8PxF1b06FqIULF0IQBHz77bdYsmQJBg8eDADYtWsX+vXrJ+sCiYicJVaI3LadJ00tZyWKyBc5FaIUCgX+/Oc/489//nOT2wsKCnDvvffKsjAiIleJFSJ3befx+nlEvk3WEb6///3v5Xw6IiKXuOu6eSLxeWsZooh8EqfDEVGPVWNy73ae2GvFixAT+SavDFErVqxAXFwc9Ho9JkyYgJ07d7Z534MHD+LXv/414uLioFAosHz58q5bKBF5lHTxYbefnccQReSLvC5ErVu3Dunp6Vi8eDH27t2LhIQETJs2DUVFRa3ev7q6GgMHDsSSJUsQHR3dxaslIk8Se6LcdXaeH+dEEfk0rwtRy5YtQ1paGlJTUzFixAisXLkSBoMBq1evbvX+l19+OV588UXcc8890Ol0Dr1GXV0djEZjkw8i8j7S2XnuqkQxRBH5NK8KUSaTCXv27EFKSop0m1KpREpKCrZv3y7b62RkZCA4OFj6iI2Nle25iajruHtOFLfziHybV4WokpISWCwWREVFNbk9KioKBQUFsr3OwoULUV5eLn3k5eXJ9txE1HXc3RNlYCWKyKfJOuKgp9DpdA5v/RFR9yWeNee2s/NYiSLyaV5ViYqIiIBKpUJhYWGT2wsLC9k0TkQt1Lp5TlTDxHKGKCJf5FUhSqvVYty4ccjMzJRus1qtyMzMRHJysgdXRkTdkTRs023XzlM3eR0i8i1et52Xnp6OBx54AElJSRg/fjyWL1+OqqoqpKamAgBmz56NmJgYZGRkALA1ox86dEj687lz55CdnY2AgADpmn9E1DOJFSK3TSzX2n4PZU8UkW/yuhA1Y8YMFBcXY9GiRSgoKEBiYiI2bNggNZufPXsWSmVDge38+fMYO3as9PnSpUuxdOlSTJ48GZs3b+7q5RNRF6p1+9l5rEQR+TKvC1EAMH/+fMyfP7/VrzUPRnFxcRAEoQtWRUTdTXW9mxvLeXYekU/zqp4oIqLOEMMNL/tCRO7AEEVEPZLVKqDObL/sC+dEEZEbMEQRUY/UuDoknkUnN32jSpTVyrYBIl/DEEVEPVLjEKVTu+etrnGvlVj1IiLfwRBFRD1SQz+UEkqlwi2v0bjXin1RRL6HIYqIeqQa6cw8952ErFIqoLVXuapNZre9DhF1TwxRRNQj1bh50KZI3NKrZSWKyOcwRBFRjyRWovQa977N+fH6eUQ+iyGKiHoksRLlzu08gAM3iXwZQxQR9UjSxYfdvJ3HgZtEvoshioh6pGo3XzdPxIGbRL6LIYqIeqSuqkTpWYki8lkMUUTUI9V2USWKjeVEvoshiog85mRxJS57/jv8M/O47M/d1dt57hhxUFVnRm5JlezPS0TyYIgiIo/5Zv8FlFaZ8MmePNmfu8say93YE/WHz/bh2pc2IyevTPbnJiLXMUQRkcdk28NBXmkNLlbWyfrctV12dp5thEK1zJUoi1XApiNFsArA5qPFsj43EcmDIYqIPEIQBGTnlUuf5+SXyfr84mVY3N4TpbW9jcpdiTpWWCFtSWblXZL1uYlIHgxRROQR58trUdKo+tQ4UMmhpt4KoAvnRMkcorIbbeFl55VBEARZn5+IXMcQRUQe0bzPR+6+n5quOjvPPhFd7hEHWWcbqk9l1fXIvVgt6/MTkesYoojII8RKy5i+wQBs23lyVltq6m3beYYuGnEgd4gSvz9qpcL+Obf0iLobhigi8ggxJMy4PBZatRJl1fU4I2O1RaxE6d28neeOieUVtfU4XlQJALhxTG8AQNbZMtmen4jkwRBFRF3ObLFif76tB2p8XBhG9gkCIG9zeVf1RLljYvm+/HIIAtA31A8pw6MANO2RIqLugSGKiLrcieJK1NRbEKBTY2CvACT0DQEgb1CoMXXRdp5W/onlYj9UYmwIxvYLAQAcOm90y0BPInIeQxQRdbls+9bU6JhgqJQKJMaGAJC3uVysDHXVdp6cAUcMk2P7hSImxA8RATqYrQIOnpf3DEYicg1DFBF1OXHbLsEensT/HjhvhMlsleU1uuqyL3KPOBAEQep/SowNgUKhkKpR7Isi6l4Yooioy4kzoRJjbWfmxYUbEOyngclsxdGCClleQ6wMdd12nlmW58u/VIOLVSZoVAqpV0ys1GWxL4qoW2GIIqIuVW0y41ihLSglxoYCABQKhVSNypahubzeYkW9xTYuoauGbdbWy1NB22vvhxrRO0jaihQrUdmsRBF1KwxRRNSlDpwzwmIVEBWkQ3SwXro9UZwXJUO1pfGZcl21nWeyWGG2uB6kGvdDicb0DYFCAZwrq0GRsdbl1yAieTBEEVGXEkOSeEaeKEHG5vJae3+SUgFoVe59m2sc0uQYc9C4H0oUoFNjWFSg7evc0iPqNhiiiKhLZTdrKheJn58orkRFbb1LryGGGT+NCgqFwqXn6ohOrYT4Eq42l9eZLTh03gigYQtPJIYqzosi6j4YoohIsvjLA5i3di/qZdiWaotYaUpsFqIiAnToG+oHQYA0iNNZDWfmqV16HkcoFAoYZBq4eei8ESaLFWH+WvQLMzT5WsMZeu69/EtFbT3nURE5iCGKiADYfji/u/0Mvt53Ad8cKHDLa5RU1iH/Ug0UCmC0vQeqMbmay6VKlLZr3uLELT1XQ1R2o4DZvIImNuHvyy+HxSrfNQYbKyivxaQXNuGO17e57TWIehKGKCICALyzNbfRn0+75TXEKtSgXgEI0mtafD3R3iflal+U2BPl7jPzRHJNLRf7ocY2q9IBwODIAATo1Kg2WaSzG+X2zrbTKKuux6ELRnx70D1BmqgnYYgiIhQaa7F+/wUAgEqpQNbZMrf03rTVVC5KkKnvpyu384BGYw5cDFFSJapZPxRg+3sZY6/euWPoZmWdGWt/OSt9vurnU7K/BlFPwxBFRHh/xxmYrQIujwvFrQl9AADvbsuV/XWy85sO2WxuVEwQVEoFCo11KCh3/lT+hsbyLtrO07heibpYWYezpdVQKFo23YukeVF58vdFfbwrDxW1ZsSE+EGrUmLv2TLsOVMq++sQ9SQMUUQ+rrbeIlUgUq8cgNQrBwAA/rfvvKwziQRBaNRUHtrqfQxaNYbaT+V3pRrV+Oy8riBHT1R2B1udQMP3Te5KlNlixb+22LZwH5kyCLeNtQXpVT+5Z1uXqKdgiCLycf/bdwEXq0zoHazH1BFRGN03GOP6h6LeIuCDRts7rsq9WI3ymnpo1UoMiw5s835ilSrHheZycdSAoYu381wJUe31Q4kSG42BMLo4BqKxDQcLcK6sBqEGDX59WV88OGkgAGDjoQKcuVgl2+sQ9TQMUUTdVG5JFZZ/fwxFFe6bUC0IgtREPiu5P9T2wZRzJsYBAD745SzqzPKc7i5WoUb2CYJW3fZbT4IMzeVimNF3USVKDGuuzIlqrx9K1CuwYQzEvjzXxkCIBEHAqp/FfwNx8NOqMDQqEFOG9YIgAKu3uL8aJQg8E5C8E0MUUTdUVm3CfW//guXfH0fav/fIFmSa233mEg6eN0KnVmLm5f2k26ePikZ0kB4llXX4et8FWV4ru4OmcpEYIlw5lb+hsbxr3uL0LlairNaGrc6xbWx1isTLwcjVF7X7zCXk5JVBq1ZidnJ/6fY0ezXq4935KKs2yfJarflsTz7G/z0T7+8447bXIHIXhiiibsZqFfDUxzk4V1YDwFaR+fvXh93yWmvsYw1uHxuDUH+tdLtGpcQs+w/Ud7bmylIpELfnmg/ZbG5IZCAMWhUq68w4VVzp1GuJwyK7bDvPHtacbSw/WVyJijoz/DQqDI0KaPe+4vdPrr6oVT/ZzsK7Y2wMIgJ00u0TB4VjeO8g1NRbZN3WbWzn6VL88bN9KK6ow6IvD+DHY8VueR0id2GIIupmVv50EplHiqBVK/GH6cMAAO9uP4Ovcs7L+jrny2qwwT4LaM6VcS2+fs/lsdCqldh/rhx7XfyBbTJbcdB+OZOOQpRKqcCoGFtflLPN5eK2Wldv5zk76VsMRGP6Bktbqm1pOEOvzOVwe7qkCt8dLgQAPDhpQJOvKRQKpNlvW7MtV/ZqaP6lajzy/h6YrQIiArSwCsD8tXudDs5EnsAQReSAOrMF727LxfaTF936OttPXsTSjUcBAM/dMhKPThmMedcMAgAs+GwfThTJN2TxvR1nYLEKSB4YjvjooBZfDw/Q4bZE21larg7fPFJghMlsRbCfBv3DDR3eXwxazjaXV0uN5V0ToqTtPCcrUVkO9EOJRvQOgkalwMUqE/JKa5x6PdG/tpyCIADXxkdicGTLZv+bxvRBdJAexRV1+CpbvhBfbTIj7d97cLHKhJF9gpCZPgXj+oeiotaMB/+9W9am+dYIggCzGy9tRL6DIYqoA6eKK3HH69uw+KuDmLlqB/729SGYzPK/ARcZa/HYh1mwCsCd4/pixuWxAIDfpQxF8sBwVJsseOT9vag2mV1+rdp6Cz7caduiaa0KJZoz0VaJ+OZAAS6UO/8DWxqy2crlTFrT0FzuXPN0bRePODC4OLFcvB5eR/1QgC2wjehjH7rpQl/UpSoTPt2TD6BlFUqkVSulfx//2nJalm1dQRDw9Cc5OHzBiIgALd6anYRggwYr7x+H3sF6nCquwuMfZrntsjMHzpXjxn9uwbi/fo+Pd+exqZ1cwhBF1I7P9+bjple34OB5I/ztPyhX/Xwad63chrMXq2V7HbPFivkfZqGksg7x0YF4/tZRUthQq5R4ZWYiIgN1OF5UiT99vt/lN/4vss6hrLoefUP9kDI8qs37jegThAkDwmCxCvhgh/N9Mdn2MJTYyvXyWiNWZA5fMDq1Rdblc6LEieVOrLWqzixdxmWsA5UooGEMgit9Ue/vOIPaeitG9glC8sDwNu83c3w/+GtVOFJQgZ+Plzj9eqJXfziB9fsLoFEp8Mb94xAT4gfAdubhqtlJ0GuU2Hy0GC9sPOLyazVmMlux7LtjuHXFVhy6YER5TT3+8Ok+/GbNLpcGu5Jv88oQtWLFCsTFxUGv12PChAnYuXNnu/f/5JNPEB8fD71ej9GjR2P9+vVdtFKSW0F5LV774TiufmETRi7agKc/ycHu3FLZf5usqjPjqY9zkP5xDqpNFlwxMAyZT03BW7PGIdhPg5z8ctz4z5/xX5n6lF789ih2ni5FgE6N1++7TBreKIoM1OPVmWOhUirwRfZ5rN3pfKARBAFr7NPIH0iOg0rZfmUo1V6JWLvzrNM9P+KZZG1N4m6uT7AeEQE6mK2C1EvVGWK1rvn30V0aJpZ3vkq4L78cVsF2zFFBeoce07gvyhm19Ra8uz0XAPDQ1QPbrQ4G+2lwt70q6uqlYDYcKMCy744BAP562yhcHhfW5OujYoLx4p0JAIA3fzyF/2Tlu/R6ooPny3Hriq34Z+ZxWKwCfjU6Gr+fNgxatRKbjhbj+pd/xKd78t1SlaqqM+PL7HP43bpsZKw/jP355ax+9SBdc+qKjNatW4f09HSsXLkSEyZMwPLlyzFt2jQcPXoUkZGRLe6/bds2zJw5ExkZGbjpppuwdu1a3Hbbbdi7dy9GjRrlgSPoOcpr6nHkghGHLhhx5mI1YkL8MKJPEIb3DkJYozO9XFVvsSLzcBHW7TqLH48Vo3GV/9M9+fh0Tz4G9fLHjMtjccdlfZucYeSMg+fL8djaLJwqqYJSATyZMhTzrhkMlVKB6OBojIwJxhMfZmH3mUt47MMsbDtZgkU3jXT6B/a3Bwvw5o+2H04v3DkGA3u1fnbWhIHh+MO0Ycj45gie/eoQxsSEYLSDlZ3GdpwqxZGCCvhpVNIPx/akDI9CTIgfzpXV4Kuc87g7qePHNGasrcfJYtvARkdDlEKhQGJsML4/XIScvDKM69/xNldjNfW27VZvmFguBiFxdIEjxJ6xQ+eNqDNboFN37ji/zD6HkkrbgNVfje7d4f1/c+UAvLstFz8fL8HhC0YM792yh64jRwqMSP84G4BtDtmMRiM1Grs5oQ+OFBixYtNJ/PGz/RgYEeDwv5vm6i1WrNh0Aq/9cAJmq4BQgwbP3zYKN42x9fpNHRGFpz/JQU5+OZ7+JAfr919Axh2jHQ6zbamtt2Dz0SL8N+cCMo8Uora+Yfv/zZ9OIS7cgJsT+uCmMX3aHTzrDKtVwPnyGpwsrkKhsRaxoQYMivRHrwCdQ1vp1DleF6KWLVuGtLQ0pKamAgBWrlyJr7/+GqtXr8aCBQta3P+VV17B9OnT8fvf/x4A8Pzzz+O7777Da6+9hpUrV3bp2ps7UmBEobEOwX4aBPtpEKRXI8hPA00rZ+dYrAIqa80or6mXPkqrTbhYWYeLlSZcrKpDSaXt89IqE5RKBSL8dQgP0No+/HWICNAizF+HyCDbwL7IQH2HVQjAdmHSc5dqcLqkCoftoenwBSPyL7XdIxMdpMfw3oEY0ScII3oHIykutFNvTIIg4EhBBb7IOofP9uajpLJhTs34AWG45/JY9A014NM9efhvzgWcLK7C39cfwQsbjiJleBRmjI/FlKG9OvWmYbUKeP+XM/jr14dhMlsRHaTHK/ckYkKzrY6YED989NAVeCXzOF7bdAIf7szD7txLeO3eyzr9hnj2YjWe+iQHgO0HVUc/0B66eiB2n7mE7w4V4pEP9uDrxyYh2ND6JULaIjaJ/3pcDIL9On6sWmWbH5TxzRGs2ZqLu8b17dT3db/9enl9Q/06FXAT+obYQpQTzeW10pyorq1E1dR3vldO7Ifq6KzFxvqFGRDmr0VplQmHzhs7FcAEQcDb9uGaqVfGtfp+01xsmAE3jO6Nr/ddwNs/n8ZLdyc4/HoAUFplwoPv7ka1yYIrB4fjmRuHt3v/p64fhqMFFfj+cBEeem83vpp/VaeDzeELRjz1cQ4OXbBVMqePjMbzt41Cr8CGf4NDogLx2SMT8dbPp7D8u+P44UgRrl/2IxbfPBJ3XBbTqX/nFquAn44V46uc8/juUCEq6xqqkv3DDZg+Khr5pTX4/nAhci9W49UfTuDVH05gaFQAbhrTB1NHRmFoZCCUDrwnA7a/x/xLNdh/rhwniipxsrgSJ4oqcaq4qtUwH6RXY1BkAAb3CsCgyAAM6hWAmBA/RAfrEWrQdHistfUWFBprUVBei4tVJlyqNuFSlQmXquvt/zWhtLoeEASEGLQINWgQ6q9FqEFr/68GoQYtgvT2n3d+agTqNQ79DOrOvCpEmUwm7NmzBwsXLpRuUyqVSElJwfbt21t9zPbt25Gent7ktmnTpuGLL75o83Xq6upQV1cnfW40dn47wREf7DiL91oZMOevVSHYT4MAvRrVJgvKa+pRWWdGZyvAp4rbv1yDRqVAnxA/9A31Q98QA/qG+sFfp8b5shrkX6pBflk18i/VoKy67TNlYkL8MLx3IAZE+COvtAaHC2xVqQJjLQqMtdh0tGHuy7CoQFw1JAKThkRgwoDwFj/giivqsPVECX46Xowtx0tQVNHwdxARoMOd4/ri7qS+TSo14weEYdHNI/G/nPP4aFcesvPKsOFgATYcLEBCbAgWTI9H8qC2+z1E206UYMmGI9hn/4GfMjwSL96Z0GR2UmNqlRJPTR2G5IHheGJdNo4XVeKO17dizW/Gt9iiaEuhsRZz1uxERa0Zl/ULwYIb4jt8jEKhwNK7EnDTqz8jr7QGi786gOX3jHXo9QDgRFEFvref0i5OJXfEjMtj8fL3x3DoghF7z3auMrTnjH0rr4Mhm801HrrZWVX2bbWuG3Fg386rc247D3DszDyRrVIXgh+OFGF37qVOhahtJy/ieFElAnRq3DO+9WpQa9ImDcTX+y7gq5xzmH/tYAyI8Hf4sX/8bB/yL9Wgf7gBr828rMMxDkqlAi/PSMQdr2/D8aJK3P/2L/j33PHoHezn0Ot9f6gQ89buRZ3ZihCDBs/dOgo3j+ndalBQq5R4dMpgpAyPwlMf52D/uXI89UkOVv18Co9dOwTTR0W3+4PebLHiq5zzWLHphFRxBWzvjTeO6Y2bx/TBqJgg6bUr68zIPFyI/+ZcwI/HinCssBLLvjuGZd8dQ5BejaS4MCTFheLyuDCMjgmW/g1brAKOFBixO/cSduWWYnfuJRS0cW1LtVKBuAh/RAXpkFdag7xL1TDWmpF1tqzVPjqtWomoIB16B/khKliPyEAdqurMtvfxctt7eXs/B1wRqLMVD4L8NHh0yiDcbL8AurfwqhBVUlICi8WCqKimjbBRUVE4cqT1JsSCgoJW719QUNDm62RkZODZZ591fcEdiAzUYXjvIBjtlSXxN5cqkwVVJgvQys8OP40KQX5qBPtpEOavRXiADhH2/4b5a6Vqk1UQWlSoLlaaUFJZh8KKWpwvq0W9RcCZi9U4c7EaQPun7ocYNIgNNWBYdCBG9LZt2Q3vHYgQQ8uQUVFbjyMFFbaq1Xkj9p8rx6ELRhwtrMDRwgr8a8tpaFVKJMWF4srBETDW1OMn+zZBY3qNElcN7oW7k/rimvjINn9jFn8Y3DO+H44WVOCjXWexblcecvLKMHPVDlwzrBf+MD2+1S2IQ+eNWLLhCH6yD/nz16rw9LRhmDMxzqHfQicOjsA3T0zC/LV7seNUKR5YvRPvzLm8RfWquYLyWsxctQOnS6rQJ1iP1+69rN1LoTQW7KfBazMvw22vb8UX2ecxK7k/xvXvOLgJgoBn/3sIVsG2jdHaKe1tCTFoMX1kNL7IPo+NBws6FaIyjxQBACYO7jjMNjY40haW80qrYbEKDv/GarUKUgCPDHRta9dRYnWjrR9qbamtt0iPGdqJvw8AuHJwBH44UoTvDhUi7eqBDj/u6/22CfQ3J/Ru80LHrUmMDcHkob3w47FiLP7qIN5Nvdyh/0e+P1SI7w4VQq1UYOX949r8xaS5QL0Gbz+QhBlv7sDxokr8+vVt+Pfc8R3+u/14dx4Wfr4fFquAq4f2wtK7xiAysOMq1tCoQPzn0Yl486dTeH3TCRwpqMC8tXsxqJc/5l0zGLck9GkS/urMFny25xze+PGENGoiSK/GHZf1xc0JvTE2NrTVqlKATo1bE2Nwa2IMymvq8e3BAny9/wJ2ni6FsdaMH44U4Qf7/zNalRIJsbYglXW2rEl1C7CFpRF9gjAkMhCDIwMwqJc/BkcGIDbM0OT9srbegtMlVVK16mRxFU4VV0pVJZPZagtbHYzM0GuUiA6y9Ss2ri41/rNCocClahPKqk0orapHWbVYtapHWY0JxhozjLX10pmsFXVmVNSZca6sxqXLJnmKV4WorrJw4cIm1Suj0YjY2M71gTjiseuG4LHrhkifmy1WGO1bdsaaelTUmuFnr0qJ5c/O9j60xWyxorCiDvmltmpT/qUanCurRmWdGTEhfugbarD9N8wPMSF+COzEm22gXoPL48KaVGQuVZmw9WQJthwvwc/HS3CurAbbTl7EtmZzl0bFBOGqwb1w9ZAIXNY/tNOVhGHRgVh8s22+0j8zj+PDnWex6WgxNh8rxh1j+yJ96lDEhPghr7Qay747hi+yz0EQbG9G91/RH/OvHdzpnqqIAB3emTMeD723Gz8fL8Gcd3bhX3OSMHFQRKv3P19Wg5mrdkh9ZB89dAX6hDj2G7YoITYEd4+LxbrdeXj2v4fwxaNXdrgN8MORIvx8vARalRJ/7mA7pTVTG4WohTfEO/QDtKC8Fjl5ZVAogOtHtH0WYGsiA/VQKxUwWwUUGmsd/h6VVNbBZLZCqQCig13rbXFUTKhtbRX2/38d2SYFIG2J234b79zb8fRR0Xj+f4ew60wpiivqmmxTtcViFfCtfcDqDaM67oVq7tlbRmLq8p/w07FifHOgoMPt5xqTBYu/OggASLt6YKd7qfqH++PTR5Ixe/VOnCquwp0rt+OdOZe3WnkTBAErfzyFf2yw/UJ957i+yLhjtEPblSK1Sol51wzGfRP6Yc22XKzechoni6uQ/nEOXv7+GB6dMhi/Gt0bn+/Nx5s/npICcLi/Fg9OGoj7r+jXqffKYD8N7kqKxV1Jsai3WHH4ghG7ci9hd24pduWWoqTShF25DWMsAnRqXNY/FJf3D8XlA8KQ0DfEoS1rvUZl/8W35fe/zmxBkbEOhcZaXCivRaGxFkUVdfDXqhEdrENUkB69g/0QHaRHkJ9atr4qk9mKitr6Jj/zhnQwrb878qoQFRERAZVKhcLCwia3FxYWIjo6utXHREdHd+r+AKDT6aDTdc1vsI2pVUqE+Wtlbcpu77ViQmwBaYLbXw0I9dfipjG2RkpBEHCqpApbjpdgx6mLCNCpcdWQCFw1OALhLjaFi3oF6vD8baPwm6sGYOnGo/h6/wV8tjcf/913HlOG9sLmo8Uw2Yft3ZzQB09PHYr+4Y5vTzTnp1Vh1ewk/Pa9PfjxWDF+s2YX3p59Oa4a0jRI5V+qxsxVO5BXWoPYMD98mHYF+oZ2PHyyNU9PG4av91/AvvxyfLY3H3e10/BtMlvx/P8OAQB+c9UAp4716qG9oFUrceZiNY4XVWJoVMeVE3Ea9tjYEIeqAY2plLbt5rOl1ThXVuNwiMqzB5PewX6d+gHqCoNWjXB/LS5WmZB/qRrBfo41/Odfso3JiAn16/QPp5gQPyT0DUZOfjm+PVSA+yb07/Axe85cQkmlCUF6Na7ooFramrgIfzwyeRBeyTyO5/57CFcP7YUAXds/Rl7bdBznymoQE+KHx64d3OnXA2DrfXx4IlLX7EJOXhnuXfULXr//MlwzrOFEIqtVwN/WH8a/7BdL/u3kgVgw3bGg35oQgxZPpgzF3KsG4P0dZ/H2z6eQV1qDhZ/vx5/+s19qrYgK0uG3Vw/CzPH9XO6/06iUGNM3BGP6hmDuVQMgCAJyL1ZjV24p6uotuKx/KOKjg2TvIdKpVYgNMyA2zLn3IWdp1UqEB+hke8/3FK8acaDVajFu3DhkZmZKt1mtVmRmZiI5ObnVxyQnJze5PwB89913bd6f3E+hUGBQrwA8MDEOb9w/Di/elYBbE2Pc8j/TgAh/rLjvMnwx70pcMTAMJrMV3x4qhMlixcRB4fhq/pV4deZYlwKUSK9R4c1Z43BtfCRq662Y++6uJtcCyyutxow3bQGqf7gB6x5KdjpAAbag+Ph1th9ML2w82qLU39iabaeRe7EavQJ1mO/kD7MAnRpXDbaFQrGa0RHxflNHtv1LS3vEGUJi2HCEeM3BmE5W91zVN1Rcq+NDScX7OvvvYNoo2/d1wwHH/j6+OWDbyksZEeXw9nFzj0wZhP7hBhQYa/HK98favN+Jokq8Zb8u3+KbR7h0HcMwfy0+TJuAq4f2Qk29BWnv7sYXWecA2H5BSP84WwpQz9w4HAtvGC5LxSRQr8EjUwZhyx+vxaKbRiAqSAdBsP1d/+32UfjpD9fgN1cNcMsJDAqFAgMi/HF3UixmJcdhZJ9gr2/C7om8KkQBQHp6OlatWoV3330Xhw8fxiOPPIKqqirpbL3Zs2c3aTx/4oknsGHDBrz00ks4cuQI/vKXv2D37t2YP3++pw6BPCAxNgQfpl2Bd+ZcjrvG9cW7vxmPDx6cgDGdbHbuiF6jwhv3X4aU4VGoM1uR9u/d2HSkCGcuVmHGm9txrqwGAyL8se6h5E5v4bVmzsQBiAs3oLiiDis2nWj1PsUVdfhnpu1rf5g2rN3KQUem2rfkvjtU2ME9bSMwxMvkTO3kVp5IDCbnOhVMqps8tquIQahzaxVDlHNrnW4Pp9tPXkR5B42/giBgoz1sTXcy1AK2f+N/uWUkAGD11twWvYziay368gDqLQKui4/s9FZuawxaNd6enYTbEvvAbBXw5LpsvLH5JB789258kX0eaqUCL89IwIOTHO8Pc5SfVoXfXDUAP/3hGnz7u6ux6ekpuG9Cf9naK8h7eV2ImjFjBpYuXYpFixYhMTER2dnZ2LBhg9Q8fvbsWVy4cEG6/8SJE7F27Vq89dZbSEhIwKeffoovvviCM6J8kEKhwDXxkXjxrgRM7uT4g87QqVV4/b7LMG1kFExmK3773h7cuXI7zpfXYlAvf6x76ArZenW0aiWeuXEEAOBfP5/GmYstz8hcaq9SjekbjF9f1tel17tueBQUCiAnv7zDy8BsPloEs1XA4MiANmdfdUQMJp2p7oghJqbLQ5QzlSjXAt/AXgEYFhUIs1WQtk7bsi+/HOfLa2HQqnD10F5OvZ7ommGRuGFUNCxWAc98cQDWZpdo+SrnPLadvAidWom/3DJStv/XtGollt2diLlX2S5T8w/7SSF+GhVWPZCE28e69u+7Izq1CkOjArtsm5i6P6/8lzB//nycOXMGdXV1+OWXXzBhQkNXz+bNm7FmzZom97/rrrtw9OhR1NXV4cCBA/jVr37VxSsmX6NVK/HavZfhV6OjYbJYUVxRhyGRAfjwoSsQ6eIgv+auGx6JSUMiYLJY8bevDzf52v78cny8Jw8AsPjmkQ7PoGlLr0Adxtmber/voBr1rf3rzlahgIYgJG7ROcLV6o6zGkKU41uPrm7nAbYGc6DjLb1v7F+/Jj5SltEPi24eAYNWhT1nLuHTvQ2TxY219Xj+f7Z/h49dO1j2XhulUoFnbhwujQQJMWiwNm1Ckx4poq7ilSGKyBtoVEr8856x+M2VA3D9iChbgOpkc7UjFAoFFt00AiqlAt8eKsQW+/XNbCMNDkIQgNsS+3R66ndbpo60haJv2wlRdWYLNttP03a2HwpwrrrT0BPVtY2yzlTN5Ah8N4y2fX9/Ol7cZl+cIAjYYO+HcmUrr7HewX74XcpQAEDG+sO4VGUbiLvs22MoqazDwAj/To1e6AyFQoGHJw/ChicnITN9cqfmZBHJiSGKyI3UKiUW3TwCq2YnuXw5mvYMiQrErCtsZ2c997+DMFus+O++C9h95hL8NCr80YFBno66fkSjPpya1vtwtp28iCqTBVFBOoyJ6fylaURic/i5spoWW0atsU1x9lRPVOcqUbX1FpRU2uZZxbpQiRoWFYi4cANMZis2Hy1q9T5HCyuQe7EaWrUS18TLV7GZc2UchkUF4lJ1PV7YeBQHzpXj3/Zr8j136yi39wzFRwd5/dld5N0Yooh6iN+lDEWoQYNjhZX415bTyFhv21J5dMoghyc9O2JAhD+GRAbAbBXa/KH97UFblSpleJRLW4i9g22XJjKZrVLgaE9plUm6TlnvkK6ZESUStx7FuTcdcWVGVGMKhQLT7TOfvmljS++b/bbbrx4S4dKJBc1pVEr89XZbf+mHO89i/tq9sAq2sSHNx3sQ9UQMUUQ9RLBBg/SpwwAAGd8cwYXyWsSE+LllS0Xa0jvYckvPahWkS8u4spUH2Cp50fYesnwH+qLEYBIVpOvyM6cMWrU0482RM/RcmRHVnNgXtelIEWpbuW7aRvuoielODNjsyOVxYbhznK2hO/diNQJ0avyfE8NcibwRQxRRDzLz8ljEN7oI8p9vHO6W68dNtW/pbT7a8od2dn4ZiivqEKhTI9mJgY7NxXSiL8pTM6JEndnSk6OpXJTQNxh9gvWoNlnws70nTnS6pApHCiqgViqQMtw9zdcLb4iXprQ/NXWo7CdPEHVXDFFEPYhaZTulXK1UYNKQCNwwSp4m4uZGxwQjOkiPKpNFmgUlEqtTU+IjnR7o2FjfEMdnRTX0Q3VtU7moM43wcp5FqFAopMGb4kBNkfh58qDwVq91KYfwAB3e/c14/O32UZidHOeW1yDqjhiiiHqYKwaGY9uCa/H2A0lum4WlVCqkAYrfHmrahyN+7spog8Y6U93x1IwoUWfO0BOrZnI1wItn3X1/qBD19ksaAWgYsOmmQC1KjA3BfRP6c6o2+RSGKKIeKDJI7/aeILEv6rtDRdKZcyeKKnGquAoalQJThrk20FHUmVlRnpoRJercdp68ZxEmxYUhIkALY61Zqg6eK6tBTn45FIqGLVgikg9DFBE5ZcKAcATq1SiprENWXhmAhirUxEERnbqafXucqe54vieqM4FPnq1HlVIhjZ8Qz9ITq1CX9w9Dr0COAiCSG0MUETlFq1biWvvMITE8if1QYpVKDjGNeqIEoe1ZUbYZUfIGk85qCHztV6Jq6y0orqizP0a+wCf2wH13qAAWqyBNMXf3Vh6Rr2KIIiKniVtE3x4sRKGxFtn2itT1w+ULUb1D9FAogJp6C0rtU7FbY6wxSxO7PVWJEl+3o1lRYsUsQKeWzmqTQ/KgcATp1SipNGHDgQLsOlMKAFLTORHJiyGKiJw2eVgvaFVKnC6pwhubTwIAxvYLkfUUd51ahUj7VlR7fVF59upPRIAWftqunREl8tc5Niuqce+WnM3/GpUSKfaG/r/YL/mT0DfYY6GSqKdjiCIipwXo1LhysG0WlHi5D3c0MDvSF+XpfiiRI83l7rw0zQ32gZridqE7BmwSkQ1DFBG5RJxKLl7aTs5+KFGMA7OiPN0PJXKkudyda500JAKGRpU49kMRuQ9DFBG55LrhkRB3pAb18segXgGyv4Yj1R1Pz4gSicGova1Hd45i0GtU0kWG46MDMSDCX/bXICIbhigicklkoB6X9QsFAOkUe7k5MivKnVtkneHp7TwAePCqAegdrMcjUwa55fmJyEa+y3kTkc965sbh+OCXs0ibNMAtz++dPVGe23oc2y8U2xde55bnJqIGDFFE5LKx/UIx1l6Ncofms6JaO6Ot+/REtR/43DUjioi6HrfziKjbE8NGRZ0Zxhpzi69X1NZLc5k83RMlBr7ymnoYa1vOinLXjCgi6noMUUTU7ek1KkQE2OYv5Ze17DUSg0mIQYMAnWcL7P46NUINtnDU2tmEYoUqJkTeGVFE1PUYoojIK8S0s02WX+rZCw83196WXndpgCci1zFEEZFX6NvOrKju0lQuau8MPXeONyCirsUQRUReob2z3hqqO55tKhe1v9bu0QBPRK5jiCIir9AwK6rtnqjuU4kSt/Naq0RxO4+op2CIIiKv4Fh1p3sEE1aiiHwDQxQReYWYkLYvp9JdLvkiaquxnDOiiHoWhigi8gpiQCqrrkdlXcOsqGqTGRerTAC6T3VHXGvzWVFiAPTXqhBi4IwoIm/HEEVEXiFAp5aCR+Mz9M7bg0lgNxpeGdDGrKhzjbbyOCOKyPsxRBGR12htdEBeN9vKE7W2pdfdereIyDUMUUTkNaRr6JW1Vt3pXsGktcDHM/OIehaGKCLyGu1Xd7pHP5RIDErnvGCtROQchigi8hpiJapxdae7zYgStR74WIki6kkYoojIa7Re3emewUTazitrvJ3HShRRT8IQRUReI6aVIZbdbUaUqPlaa+stKOKMKKIeRe3pBRAROUqs4FysMqHGZIFCgUbBpHtVd8TtxbLqelTU1ktDNg2cEUXUY7ASRUReI9hPg0Cd7Xe/c2XVuFBeCwDw06ikuUzdRaBe0zDXqqymyXgDzogi6hkYoojIqzTeJmvcD9Udg4nUF1Vaw34ooh6IIYqIvErji/t2134oUd8Q8Qy96m7bAE9EzmNPFBF5FbGSc66sBip79am7BpPGgY9N5UQ9D0MUEXmVhllRNVArFfbbuucWWdMQVWu/rXuulYg6jyGKiLxKw6yoaqiU3b0SZd/OK6tGkZGVKKKehiGKiLxK48ZyMUR1256oMNu6ckuqUVlntt3GShRRj8EQRUReRQwhRRV1sGeoblvdEbcexQBl0Ha/UQxE5DyenUdEXiXUoIGfRgUAsAqAVq1EhL/Ow6tqXeNZUUD3HcVARM5hiCIir6JQKJpUnvqG+EGp7L7BpMlauZVH1KN4VYgqLS3Ffffdh6CgIISEhGDu3LmorKxs9zFvvfUWpkyZgqCgICgUCpSVlXXNYonIbRr3QHXXfihR30ZnDnbXbUcico5Xhaj77rsPBw8exHfffYf//e9/+Omnn/DQQw+1+5jq6mpMnz4df/rTn7polUTkbk2rO907mHjTWomoc7ymsfzw4cPYsGEDdu3ahaSkJADAq6++il/96ldYunQp+vTp0+rjnnzySQDA5s2bHX6turo61NXVSZ8bjUan101E8ms8F0ps3u6uuJ1H1HN5TSVq+/btCAkJkQIUAKSkpECpVOKXX36R9bUyMjIQHBwsfcTGxsr6/ETkGm8KJjGh3hP4iKhzvCZEFRQUIDIyssltarUaYWFhKCgokPW1Fi5ciPLycukjLy9P1ucnItd4VU8Ut/OIeiyPh6gFCxZAoVC0+3HkyJEuXZNOp0NQUFCTDyLqPrwpmAyI8EdkoA6DIwMQ5q/19HKISEYe74l66qmnMGfOnHbvM3DgQERHR6OoqKjJ7WazGaWlpYiOjnbjComou+kVoEPK8EiYrQKiAvWeXk679BoVNj09BSqlgjOiiHoYj4eoXr16oVevXh3eLzk5GWVlZdizZw/GjRsHAPjhhx9gtVoxYcIEdy+TiLoRhUKBtx+43NPLcJi/zuNvtUTkBh7fznPU8OHDMX36dKSlpWHnzp3YunUr5s+fj3vuuUc6M+/cuXOIj4/Hzp07pccVFBQgOzsbJ06cAADs378f2dnZKC0t9chxEBERUc/gNSEKAD744APEx8fjuuuuw69+9StcddVVeOutt6Sv19fX4+jRo6iurpZuW7lyJcaOHYu0tDQAwNVXX42xY8fiq6++6vL1ExERUc+hEARB8PQiujuj0Yjg4GCUl5ezyZyIiMhLuPvnt1dVooiIiIi6C4YoIiIiIicwRBERERE5gSGKiIiIyAkMUUREREROYIgiIiIicgJDFBEREZETGKKIiIiInMAQRUREROQEhigiIiIiJzBEERERETlB7ekFeAPx8oJGo9HDKyEiIiJHiT+33XWZYIYoB1RUVAAAYmNjPbwSIiIi6qyKigoEBwfL/rwKwV3xrAexWq04f/48AgMDoVAoHHqM0WhEbGws8vLy3HLl6O7Gl47Xl44V8K3j9aVjBXi8PZkvHSvQ9vEKgoCKigr06dMHSqX8HUysRDlAqVSib9++Tj02KCjIJ/4Bi3zpeH3pWAHfOl5fOlaAx9uT+dKxAq0frzsqUCI2lhMRERE5gSGKiIiIyAkMUW6i0+mwePFi6HQ6Ty+lS/jS8frSsQK+dby+dKwAj7cn86VjBTx3vGwsJyIiInICK1FERERETmCIIiIiInICQxQRERGRExiiiIiIiJzAEOWg0tJS3HfffQgKCkJISAjmzp2LysrKdh9TW1uLefPmITw8HAEBAfj1r3+NwsLCJvc5e/YsbrzxRhgMBkRGRuL3v/89zGZzq8+3detWqNVqJCYmynVYbfLU8W7ZsgVXXnklwsPD4efnh/j4eLz88stuOUaRp471888/x/XXX49evXohKCgIycnJ2Lhxo1uOsTFPHe+FCxdw7733YujQoVAqlXjyySfdcXhYsWIF4uLioNfrMWHCBOzcubPd+3/yySeIj4+HXq/H6NGjsX79+iZfFwQBixYtQu/eveHn54eUlBQcP368yX2c+Z7KwRPH+re//Q0TJ06EwWBASEiI3IfUrq4+3tzcXMydOxcDBgyAn58fBg0ahMWLF8NkMrnl+BrzxN/tLbfcgn79+kGv16N3796YNWsWzp8/L/uxtcYTxyuqq6tDYmIiFAoFsrOzO7dwgRwyffp0ISEhQdixY4fw888/C4MHDxZmzpzZ7mMefvhhITY2VsjMzBR2794tXHHFFcLEiROlr5vNZmHUqFFCSkqKkJWVJaxfv16IiIgQFi5c2OK5Ll26JAwcOFCYOnWqkJCQIPfhteCp4927d6+wdu1a4cCBA8Lp06eF9957TzAYDMKbb77Z4471iSeeEP7xj38IO3fuFI4dOyYsXLhQ0Gg0wt69e912rILgueM9ffq08PjjjwvvvvuukJiYKDzxxBOyH9tHH30kaLVaYfXq1cLBgweFtLQ0ISQkRCgsLGz1/lu3bhVUKpXwwgsvCIcOHRKeeeYZQaPRCPv375fus2TJEiE4OFj44osvhJycHOGWW24RBgwYINTU1Ej3ceZ76q3HumjRImHZsmVCenq6EBwc7NZjbMwTx/vNN98Ic+bMETZu3CicPHlS+PLLL4XIyEjhqaee6nHHKgiCsGzZMmH79u1Cbm6usHXrViE5OVlITk5267F68nhFjz/+uHDDDTcIAISsrKxOrZ0hygGHDh0SAAi7du2Sbvvmm28EhUIhnDt3rtXHlJWVCRqNRvjkk0+k2w4fPiwAELZv3y4IgiCsX79eUCqVQkFBgXSfN954QwgKChLq6uqaPN+MGTOEZ555Rli8eLHbQ1R3ON7Gbr/9duH+++939bBa1d2OdcSIEcKzzz7r6mG1qbsc7+TJk90SosaPHy/MmzdP+txisQh9+vQRMjIyWr3/3XffLdx4441NbpswYYLw29/+VhAEQbBarUJ0dLTw4osvSl8vKysTdDqd8OGHHwqC4Nz3VA6eONbG3nnnnS4NUZ4+XtELL7wgDBgwwJVD6VB3OdYvv/xSUCgUgslkcuVwOuTJ412/fr0QHx8vHDx40KkQxe08B2zfvh0hISFISkqSbktJSYFSqcQvv/zS6mP27NmD+vp6pKSkSLfFx8ejX79+2L59u/S8o0ePRlRUlHSfadOmwWg04uDBg9Jt77zzDk6dOoXFixfLfWit8vTxNpaVlYVt27Zh8uTJchxaC93pWK1WKyoqKhAWFibHobWqOx2v3EwmE/bs2dNknUqlEikpKdI6m9u+fXuT+wO2dYv3P336NAoKCprcJzg4GBMmTGhy7J39nrrKU8fqKd3peMvLy936/2h3OdbS0lJ88MEHmDhxIjQajauH1SZPHm9hYSHS0tLw3nvvwWAwOLV+higHFBQUIDIyssltarUaYWFhKCgoaPMxWq22Rc9AVFSU9JiCgoImP3TEr4tfA4Djx49jwYIFeP/996FWd831oj15vKK+fftCp9MhKSkJ8+bNw4MPPujKIbWpOxyraOnSpaisrMTdd9/tzKE4pDsdr9xKSkpgsVhaXUd7x9be/cX/dnSfzn5PXeWpY/WU7nK8J06cwKuvvorf/va3Th2HIzx9rH/84x/h7++P8PBwnD17Fl9++aVLx9MRTx2vIAiYM2cOHn744Sa/AHWWT4eoBQsWQKFQtPtx5MgRj63PYrHg3nvvxbPPPouhQ4e6/Hzd/Xgb+/nnn7F7926sXLkSy5cvx4cfftipx3vTsQLA2rVr8eyzz+Ljjz9u8QPZEd52vETe5ty5c5g+fTruuusupKWleXo5bvP73/8eWVlZ+Pbbb6FSqTB79mwIPfDCJq+++ioqKiqwcOFCl56na0ob3dRTTz2FOXPmtHufgQMHIjo6GkVFRU1uN5vNKC0tRXR0dKuPi46OhslkQllZWZPf4AsLC6XHREdHtzgDQTzjKTo6GhUVFdi9ezeysrIwf/58ALYtH0EQoFar8e233+Laa6/tMcfb2IABAwAAo0ePRmFhIf7yl79g5syZHR6jyJuO9aOPPsKDDz6ITz75pEWJ2lHedLzuEhERAZVK1eKswcbrbC46Orrd+4v/LSwsRO/evZvcRzxL1pnvqas8daye4unjPX/+PK655hpMnDgRb731lquH0y5PH2tERAQiIiIwdOhQDB8+HLGxsdixYweSk5NdPbRWeep4f/jhB2zfvr3FtfaSkpJw33334d1333XsADrVQeWjxMbR3bt3S7dt3LjRoWbcTz/9VLrtyJEjrTbjNj4D4c033xSCgoKE2tpawWKxCPv372/y8cgjjwjDhg0T9u/fL1RWVvao423Ls88+K/Tv39/Fo2qdp4917dq1gl6vF7744gu5D61Vnj5ekTsby+fPny99brFYhJiYmHYbVG+66aYmtyUnJ7doUF26dKn09fLy8lYbyzvzPZWDJ461MU80lnviePPz84UhQ4YI99xzj2A2m+U8pDZ5+u9WdObMGQGAsGnTJheOpmOeON4zZ840+dm6ceNGAYDw6aefCnl5eQ6vnSHKQdOnTxfGjh0r/PLLL8KWLVuEIUOGNDmFOT8/Xxg2bJjwyy+/SLc9/PDDQr9+/YQffvhB2L17d4vTRcXTwqdOnSpkZ2cLGzZsEHr16tXqiANRV5ydJwieO97XXntN+Oqrr4Rjx44Jx44dE95++20hMDBQ+POf/9zjjvWDDz4Q1Gq1sGLFCuHChQvSR1lZmduO1ZPHKwiCkJWVJWRlZQnjxo0T7r33XiErK0s4ePCgbMf20UcfCTqdTlizZo1w6NAh4aGHHhJCQkKkswZnzZolLFiwQLr/1q1bBbVaLSxdulQ4fPiwsHjx4lZPlQ4JCRG+/PJLYd++fcKtt97a6oiD9r6n7uCpYz1z5oyQlZUlPPvss0JAQID0d1pRUdHjjjc/P18YPHiwcN111wn5+flN/j/tace6Y8cO4dVXXxWysrKE3NxcITMzU5g4caIwaNCgdn/J9dbjbe706dMcceBOFy9eFGbOnCkEBAQIQUFBQmpqapM3DfEvoHFir6mpER599FEhNDRUMBgMwu23397if77c3FzhhhtuEPz8/ISIiAjhqaeeEurr69tcR1eFKE8d7z//+U9h5MiRgsFgEIKCgoSxY8cKr7/+umCxWHrcsU6ePFkA0OLjgQcecNuxevJ4BUFo9XjlrjK++uqrQr9+/QStViuMHz9e2LFjh/S1yZMnt/j+fvzxx8LQoUMFrVYrjBw5Uvj666+bfN1qtQr/93//J0RFRQk6nU647rrrhKNHjza5T0ffU3fxxLE+8MADrf49urtaIQhdf7zvvPNOq8faFZs4XX2s+/btE6655hohLCxM0Ol0QlxcnPDwww8L+fn5bj1OkSf+LTfmbIhSCEIP7BgjIiIicjOfPjuPiIiIyFkMUUREREROYIgiIiIicgJDFBEREZETGKKIiIiInMAQRUREROQEhigiIiIiJzBEERERETmBIYqIvNKcOXNw2223dfnrrlmzBgqFAgqFAk8++aRDj5kzZ470mC+++MKt6yOirqP29AKIiJpTKBTtfn3x4sV45ZVX4KkLLgQFBeHo0aPw9/d36P6vvPIKlixZ0uSK8kTk/RiiiKjbuXDhgvTndevWYdGiRTh69Kh0W0BAAAICAjyxNAC2kBcdHe3w/YODgxEcHOzGFRGRJ3A7j4i6nejoaOkjODhYCi3iR0BAQIvtvClTpuCxxx7Dk08+idDQUERFRWHVqlWoqqpCamoqAgMDMXjwYHzzzTdNXuvAgQO44YYbEBAQgKioKMyaNQslJSWdXvPrr7+OIUOGQK/XIyoqCnfeeaer3wYi6uYYooiox3j33XcRERGBnTt34rHHHsMjjzyCu+66CxMnTsTevXsxdepUzJo1C9XV1QCAsrIyXHvttRg7dix2796NDRs2oLCwEHfffXenXnf37t14/PHH8dxzz+Ho0aPYsGEDrr76anccIhF1I9zOI6IeIyEhAc888wwAYOHChViyZAkiIiKQlpYGAFi0aBHeeOMN7Nu3D1dccQVee+01jB07Fn//+9+l51i9ejViY2Nx7NgxDB061KHXPXv2LPz9/XHTTTchMDAQ/fv3x9ixY+U/QCLqVliJIqIeY8yYMdKfVSoVwsPDMXr0aOm2qKgoAEBRUREAICcnB5s2bZJ6rAICAhAfHw8AOHnypMOve/3116N///4YOHAgZs2ahQ8++ECqdhFRz8UQRUQ9hkajafK5QqFocpt41p/VagUAVFZW4uabb0Z2dnaTj+PHj3dqOy4wMBB79+7Fhx9+iN69e2PRokVISEhAWVmZ6wdFRN0Wt/OIyGdddtll+OyzzxAXFwe12rW3Q7VajZSUFKSkpGDx4sUICQnBDz/8gDvuuEOm1RJRd8NKFBH5rHnz5qG0tBQzZ87Erl27cPLkSWzcuBGpqamwWCwOP8///vc//POf/0R2djbOnDmDf//737BarRg2bJgbV09EnsYQRUQ+q0+fPti6dSssFgumTp2K0aNH48knn0RISAiUSsffHkNCQvD555/j2muvxfDhw7Fy5Up8+OGHGDlypBtXT0SephA8NfKXiMgLrVmzBk8++aRT/U4KhQL/+c9/PHK5GiKSHytRRESdVF5ejoCAAPzxj3906P4PP/ywRyesE5F7sBJFRNQJFRUVKCwsBGDbxouIiOjwMUVFRTAajQCA3r17O3zNPSLq3hiiiIiIiJzA7TwiIiIiJzBEERERETmBIYqIiIjICQxRRERERE5giCIiIiJyAkMUERERkRMYooiIiIicwBBFRERE5IT/B4SilpIQfHn0AAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"\n",
"filt = window * taps\n",
"filt /= np.sum(filt)\n",
"\n",
"ax.plot(t, filt);\n",
"ax.set_xlabel(\"Time [s]\")\n",
"ax.set_ylabel(r\"$sinc \\cdot$ window\");"
]
},
{
"cell_type": "markdown",
"id": "4fe418dc",
"metadata": {},
"source": [
"We now process the samples using the following scheme:\n",
"```{figure} img/FIRodd.png\n",
"---\n",
"name: fig:FIRodd.en\n",
"---\n",
"*FIR filter* structure.\n",
"It computes the convolution of the signal with the coefficients.\n",
"```\n",
"\n",
"We iterate over the samples, using a sliding window of size $N$ as $x$.\n",
"This can be done using e.g. a [ring buffer](https://en.wikipedia.org/wiki/Circular_buffer).\n",
"We then calculate\n",
"```{math}\n",
"y = \\sum_{n=0}^{N-1} x[n] \\cdot a[N-1-n]\n",
"```\n",
"and save $y$ as our new sample.\n",
"\n",
"If we visualize these newly created samples, we get the following:\n",
"```{figure} img/reference/filtered_detail.webp\n",
"---\n",
"name: fig:filtered_detail.en\n",
"---\n",
"Filtered signal.\n",
"The vertical lines are removed.\n",
"```\n",
"\n",
"And in the spectrum, we can also confirm that only the part that we wanted remains:\n",
"```{figure} img/reference/filtered_waterfall.webp\n",
"---\n",
"name: fig:filtered_waterfall.en\n",
"---\n",
"Waterfall diagram of the filtered signal.\n",
"```"
]
}
],
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.11.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}