diff --git a/docs/index.rst b/docs/index.rst index 967928d..029192f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -16,6 +16,7 @@ All code is freely available at ``_. :caption: Tutorials notebooks/quickstart + notebooks/hierarchical_states notebooks/performance .. toctree:: diff --git a/docs/notebooks/hierarchical_states.ipynb b/docs/notebooks/hierarchical_states.ipynb new file mode 100644 index 0000000..e84f674 --- /dev/null +++ b/docs/notebooks/hierarchical_states.ipynb @@ -0,0 +1,386 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "61de2ff1", + "metadata": {}, + "source": [ + "# Hierarchical states\n", + "\n", + "Node states can be any hashable value, including tuples, which are a natural way to represent a state with several parts.\n", + "This notebook uses a 2-tuple, `(cell_type, k)`, to combine a cell's type in a differentiation hierarchy with its progress through the cell cycle.\n", + "\n", + "Splitting the cell cycle into stages controls the distribution of generation times, which would otherwise be exponential.\n", + "With few stages, generation times vary widely and lineages quickly fall out of step; with many stages, generation times are nearly constant and divisions stay synchronized." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "c9d2575f", + "metadata": { + "tags": [ + "nbval-ignore-output" + ] + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import scipy.stats\n", + "from matplotlib.patches import Patch\n", + "\n", + "import bdms" + ] + }, + { + "cell_type": "markdown", + "id": "41a6c292", + "metadata": {}, + "source": [ + "## Model\n", + "\n", + "Cells are progenitors, intermediates, or terminal cells.\n", + "The state of a dividing cell is `(cell_type, k)`, where `k = 0, 1, ..., K - 1` is its stage in the cell cycle.\n", + "\n", + "- **Cell-cycle progression:** a cell in stage `k < K - 1` moves to stage `k + 1` at rate `K / T_gen`. In BDMS, these are mutation events.\n", + "- **Division:** only cells in the last stage, `K - 1`, divide, also at rate `K / T_gen`. A full cycle is then `K` exponential stages, each with mean `T_gen / K`, so generation times have a gamma (Erlang) distribution with mean `T_gen` and standard deviation `T_gen / sqrt(K)`. With `K = 1`, this is a birth process with exponential generation times.\n", + "- **Differentiation:** each daughter cell starts a new cycle at stage 0, and may take a new cell type: daughters of progenitors can become intermediates, and daughters of intermediates can become terminal cells. Setting `birth_mutation_prob=1.0` gives every daughter a mutation event at birth, which applies this change.\n", + "- **Terminal cells** don't divide, so they have a single state, `(\"terminal\", 0)`.\n", + "- **Death** happens at a constant rate for each cell type, highest for intermediates.\n", + "\n", + "These are the parameters:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1918b68b", + "metadata": {}, + "outputs": [], + "source": [ + "K = 100 # number of cell-cycle stages\n", + "T_gen = 1.0 # mean generation time\n", + "dividing_types = (\"progenitor\", \"intermediate\")\n", + "# probability that each daughter of a dividing cell has each cell type\n", + "fate_probs = {\n", + " \"progenitor\": {\"progenitor\": 0.75, \"intermediate\": 0.25},\n", + " \"intermediate\": {\"intermediate\": 0.5, \"terminal\": 0.5},\n", + "}\n", + "death_rates = {\"progenitor\": 0.05, \"intermediate\": 0.5, \"terminal\": 0.2}" + ] + }, + { + "cell_type": "markdown", + "id": "36e26ddb", + "metadata": {}, + "source": [ + "Next, we build the Poisson processes and the mutator as `bdms` API objects.\n", + "The mutator's transition matrix describes both kinds of state change: from a stage `k < K - 1` it moves to stage `k + 1`, and from the last stage it applies the daughter cell-type probabilities." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1585ef53", + "metadata": {}, + "outputs": [], + "source": [ + "states = [(cell_type, k) for cell_type in dividing_types for k in range(K)]\n", + "states.append((\"terminal\", 0))\n", + "index = {state: i for i, state in enumerate(states)}\n", + "stage_rate = K / T_gen\n", + "\n", + "birth_rates = {}\n", + "progression_rates = {}\n", + "transition_matrix = np.zeros((len(states), len(states)))\n", + "for state in states:\n", + " cell_type, k = state\n", + " i = index[state]\n", + " if cell_type == \"terminal\":\n", + " # terminal cells neither progress nor divide\n", + " birth_rates[state] = 0.0\n", + " progression_rates[state] = 0.0\n", + " transition_matrix[i, i] = 1.0 # never used\n", + " elif k < K - 1:\n", + " # move to the next stage\n", + " birth_rates[state] = 0.0\n", + " progression_rates[state] = stage_rate\n", + " transition_matrix[i, index[(cell_type, k + 1)]] = 1.0\n", + " else:\n", + " # divide, and each daughter starts a new cycle, maybe as another type\n", + " birth_rates[state] = stage_rate\n", + " progression_rates[state] = 0.0\n", + " for daughter_type, prob in fate_probs[cell_type].items():\n", + " transition_matrix[i, index[(daughter_type, 0)]] = prob\n", + "\n", + "birth_process = bdms.poisson.DiscreteProcess(birth_rates)\n", + "death_process = bdms.poisson.DiscreteProcess(\n", + " {state: death_rates[state[0]] for state in states}\n", + ")\n", + "# mutation events move cells through the cell cycle\n", + "mutation_process = bdms.poisson.DiscreteProcess(progression_rates)\n", + "mutator = bdms.mutators.DiscreteMutator(states, transition_matrix)" + ] + }, + { + "cell_type": "markdown", + "id": "32b0930a", + "metadata": {}, + "source": [ + "## Generation times\n", + "\n", + "As the number of stages grows, the generation-time distribution narrows around its mean, `T_gen` (dashed line).\n", + "We use `K = 100` stages:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "350e57e2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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6jMpo/nbtm2rSozUN5P8r/5DvtCvhiyjp2QUn+Qv3XjjjWq0itOBAwdwzTXXqL59aQr15ZzGSpqIpc9eWhHlXv35z39WXY9Ozr8En332WbWWRNR//etfqrVMmt4ld+Laa69VLRGNVX5+PsaMGVNlf7du3fDmm2+q7e+//17d2w8++EC1yIqjR4+q/CYZ0Sv38s4771QtY43ZE088oXJrKnvppZcwYMAAV96ifFad3UVSgf+1115TrWXSxSvJ+2PHjkVjNm7cOI+j9+TeOO/bkiVL8Nxzz6nWM2mFEJJb9vTTT6t/59JtKYnWjbmF8d1331XJ+J4YWxVlpojp06dj4sSJ6rG0esu50vooPRDSSun8XdRYHTt2DC+//LJq+ZLWf6lwIAn8zZs3dx3z4osvYvXq1Vi0aJHb6FXZLy2P0pMlAwAaIpWDwRgRERFRADFnjIiIiCiAGIwRERERBRCDMSIiIqIAYjBGREREFEAMxoiIiIgCiMEYERERUQAxGCMiIiIKIAZjREReyJRcCxYswPHjxxvVexNRw2EwRkRUrqysTAU/Mrenk8zvOXnyZOzatSts35uIAovBGBGRYXJhCX5keh4nq9WKq6++GqmpqWH73kQUWBEBfn8iChMyz6DMIdq5c2f06dNHzYt5wQUXuM0FJ/NqyryZdrsd/fv3R6tWrdxagT7++GNcfPHFOHHiBLZv347WrVu75og08vV1Dh06hN9//10dI9f14YcfqhYomRuxffv26rUjIyNd53700UdqvWLFCvX1NG3aVH0NV155JZo0aeJ2DRkZGfjxxx/V+eecc46ag/ZUvpbavLfxdbOysvDbb7+puUedr7t161YVzMmcet27d6/VfSOiAKr3qciJKOw99dRTWmRkpHbBBRdo/fr108aOHavJj5eVK1e6jvn000+1pk2basOGDdPGjBmjJSUlaf/4xz9czx85ckSdc9lll2mnnXaadskll2iJiYna1KlT3d7L19eR87t166ZNmDBB++abb9RzN954o3b11Vdr48eP13r06KF1795d27t3r+vciRMnqnNHjRqljvvrX/+q5eXlqX3r1q1zHTd37lwtJiZGO++887SzzjpLS05O1r788stafy1Gvry383XlfXv16qXuc1RUlHbnnXeqr61v377axRdfrPb95z//qdV9I6LAYTBGRHUiwUxERIS2aNEi176bbrrJLRhLT0/X4uPj3QKWX3/9VYuOjlZrY6BxzTXXaHa7Xe374Ycf1L4dO3bU+nWuuOIKzWazVXvdDodDvdekSZNc+7Kzs9W5P//8s2tf5YBo//79Kth56623XMc88MADWps2bbSCggKfv5bKfHlv5+tef/316vrFm2++qfbdfPPNrn0vvfSS1qxZM9fr+HLfiChwmDNGRHUi3WZt27bFhAkTXPsefPBBt2MWLlyIhIQE5ObmYtGiRWqR7sMWLVpg1apVbsfeeuutMJv1H01nn302oqOjsXPnzlq/zh133KG6IyuT4z/77DPVjSq5WD/99FOtv14574YbbnDte/jhh1WX6Jo1a3z+Wupi6tSpMJlManvIkCFqfcstt7jty8zMxMmTJ2t934io4TFnjIjqJD09HR07dnTbV/nx/v37VZ7S4sWL3fYPHjxYBQRGkitlFBUVpXKlavs6lfOhSktLVf7VDz/8gIEDByI5ORmHDx/GsWPHavX1pqWloVOnTq7AR8hrpaSkqOd8/Vrqwpi/Jq9Z3b5TuW9E1PAYjBFRnUjA4WyBcTKWZxCS3B4XF6dKN9RFbV7HGCwJOWfjxo0qMHEm28+bN0/tqw1pFZOkfCMJdHJycoJ21KO/7j8R1Q92UxJRnQwdOhRbtmzB3r17Xfs++eQTt2PGjBmDffv24csvv6xSzkGCGF/V5XWOHj2qWsuMox5ldKVRbGysCuK8tV6de+65ahSjLMauS+mOlBa3U+XLe58qf91/IqofbBkjojo5//zzcdFFF2H06NGYPn26qhb/+uuvu7VODRs2DHfffTfGjRuHadOmoUePHip3asmSJfj000+RlJTk03vV5XXGjh2LmTNnqvOkrMPSpUtVl6WRlKk4/fTT8eyzz6oux2bNmqmyFZWDMcmPkwDnvvvuUwHNk08+ib/85S8qd+5U+fLep8pf95+I6gdbxoiozqRG1m233YZffvlFPZZAR0jSuNMLL7ygWsxKSkpUorvkWK1evRqnnXaaej4mJkYVOJX8K6Px48ejXbt2dX4dqX0mNbYkQFy7dq0KIOV1jAMPnF+L1Olavny5Sm73VHj1vffew6xZs/Drr7+qwGn+/PnqsZOvX4un++jtvT29rnQ/yj7jvZbnZZ8c7+t9I6LAMcmQygC+PxGFAcmhMiarS3AiIwllRJ90vxERUfXYTUlEdfbYY4+hqKhI5UzJPIovvfSSKvfAQIyIqGZsGSOiOpMphv773/+q6YGki0zyqWQqHyIiqhmDMSIiIqIAYgI/ERERUQAxGCMiIiIKIAZjRERERAHEYIyIiIgogBiMEREREQUQgzEiIiKiAGIwRkRERBRADMaIiIiIAojBGBEREREC5/8B+9e1JIbRom4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "t = np.linspace(0, 3 * T_gen, 600)\n", + "fig, ax = plt.subplots(figsize=(6, 3), layout=\"constrained\")\n", + "for K_example in (1, 10, 100, 1000):\n", + " gamma = scipy.stats.gamma(a=K_example, scale=T_gen / K_example)\n", + " ax.plot(t, gamma.pdf(t), lw=2, label=f\"K = {K_example}\")\n", + "ax.axvline(T_gen, color=\"k\", lw=1, ls=\"--\", zorder=0)\n", + "ax.set_xlabel(\"generation time\")\n", + "ax.set_ylabel(\"density\")\n", + "ax.legend(frameon=False)\n", + "ax.spines[[\"top\", \"right\"]].set_visible(False)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "33ed3531", + "metadata": {}, + "source": [ + "## Simulation\n", + "\n", + "Simulate a tree starting from one progenitor at the start of its cycle, for 10 mean generation times:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4e0d827f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "87 divisions; cells alive at the end: progenitor 30, intermediate 17, terminal 12\n" + ] + } + ], + "source": [ + "tree = bdms.Tree(state=(\"progenitor\", 0))\n", + "tree.evolve(\n", + " 10 * T_gen,\n", + " birth_process=birth_process,\n", + " death_process=death_process,\n", + " mutation_process=mutation_process,\n", + " mutator=mutator,\n", + " birth_mutation_prob=1.0,\n", + " seed=1,\n", + ")\n", + "divisions = sum(node.event == \"birth\" for node in tree.traverse())\n", + "alive = [leaf.state[0] for leaf in tree if leaf.event == \"survival\"]\n", + "counts = \", \".join(\n", + " f\"{cell_type} {alive.count(cell_type)}\"\n", + " for cell_type in (\"progenitor\", \"intermediate\", \"terminal\")\n", + ")\n", + "print(f\"{divisions} divisions; cells alive at the end: {counts}\")" + ] + }, + { + "cell_type": "markdown", + "id": "7f33fdd0", + "metadata": {}, + "source": [ + "## Rendering\n", + "\n", + "We'll color the tree by cell type.\n", + "`Tree.render` colors branches using a map from state values to colors, so we map each `(cell_type, k)` state to the color of its cell type.\n", + "These are the colors:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b75b1ea3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeUAAAAyCAYAAABifMNBAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvgI3uAAAAAAlwSFlzAAAPYQAAD2EBqD+naQAADb1JREFUeJztnAeQFNUWhs/CAgqoPEBFEAMomCMCKmICREFAnyWKucxalAKKoVREMYuICbDKrGVEUAQTGDCAWTAHzCQDrAoo7MK++g7vjr3DzG5TMrM9y/9VUez09nTf7Xv6/Oece7qLysvLy00IIYQQ1U6t6h6AEEIIIVYiURZCCCESgkRZCCGESAgSZSGEECIhSJSFEEKIhCBRFkIIIRKCRFkIIYRICBJlIYQQIiFIlIUQQoiEIFEWQgghEoJEWQghhEgIEmUhhBAiIUiUhRBCiIQgURZCCCESgkRZCCGESAgSZSGEECIhSJRFRm644QZ7+eWXdXVyzM8//2znnnuu/f7772vNtX7vvffs8ssvT31+88037aqrrqrWMYnqY9CgQfb5558XzHFzTVF5eXm5FQhzSkqtZHFZ3s7XqEGxNW9Ux9ZGdtllFzv22GPtvPPO88/XXXeddezY0fbdd18rNJYvmGfli0rycq6iho2sduNmsffHaWy77bb2448/2qabbhrrO/PmzbNrr73WrrzySltvvfWs0HjwwQftwgsvtJ9++sk/jx492m688Ub7+uuvYx/j9ddft9dee80uuugiSyqzl5TYgmWL83a+xnUbWIv6jWLvf9ttt1mrVq3skEMOseqkuLjYnnnmGevevXtBHDfXFFsBCXKP4bNsWVn+Yoi6xUU2cVDrtVKYzz//fBeLwAMPPGD16tUrOFFGkBcO+a9Z2bL8nLC4rv1n6NjYwrzxxhvbiBEjrFGj+M70119/tZEjR7qwFaIop7P33nvbOuuss1rf+fDDD+2+++5LrCgjyJ0nj7ClK/KXRNSrVWxTuwyILcxPPPGEderUqdpF+aabbqrga9Z2CkaUyZDzKcjA+ThvXFF++umnbe7cuS5ckyZNst9++8169eplHTp0WGWf/fbbz2+KxYsX29VXX+2/mzFjhv9+yZIlnpXy3aKiogrneOWVV+yFF16wjTbayHr27OnnwaC7du2a2ueHH36wxx9/3M/ftm1bO+qoo1xQA5QK999/f/v777/tjTfecIfIPi1btkztM2fOHGvevHkqoiY7GzdunH333Xe+jcyGSLSqMYdzUZ4ls9lhhx2sX79+li88Q86XIEPZspXnjCnKpaWlfk2XL1/un8mYhw8fbpdddplNmDDBvvrqK2vdurUdd9xxfr3//PNPr1oA+9SvX9923HFHO/nkk33bq6++ai+99JLvu88++7idBcKxL730Unvsscfsm2++8e9hj++++64dfvjh9uyzz/rc871u3bp59ootYSuHHnqotWvXbpXxjx071u2gadOmbpPYXJRffvnFBXTRokWrfB/4m2bPnp36/NFHH9ldd93lP/P3Yd99+/a1unXr+rYPPvjAzxlK/3DYYYf5fRdnPPmADDmfggycj/PGEeV7773X5/avv/7yeYGhQ4faBhts4Pf6o48+6v9je/iGhg0bpr5788032/bbb+/zMXnyZNtss83spJNO8qraGWecYTNnzvQ53HDDDe3EE090//Lwww97VWjrrbe2448/3u0z8P333/s4oKyszI/Tv39/n0OCL45zwgkn2Prrr5/6DssfJSUlVqtWLa8w9ejRo1rmORdoTXkNMnXqVDcWyiUIIs6ISBSDTN8H8cIQgxBS0ttjjz3ccWJoGDeOKMrtt9/ujhKBmz9/vh144IE2bNgwe+utt1L7PPfcc7bzzjv7DcCNhDPcbbfd3PEF7rnnHnfyCCbnYu2Y7+DkAg899JCv/UGzZs2sTp061rhxY9tiiy38H8IbZ8ycizI45VZuKhyl+IcFCxZ41hvmh3nlM9njtGnT3PFdccUV7hihdu3a1qJFC/8Z22EuCNDgzDPPdOeFY0OcuO5UPALh2Hvuuae9//77HnStu+66Ps8EhtgW+/zxxx+ePZ1++ul28MEHu53ioBnT9OnTU8djzGy79dZbrUGDBh5cEIASvEXPueuuu9pTTz3lNoIdEBREwYljJwGEONgZP3N8jrts2crginM1adLEbTLsh23FGY9YCUKHWCLC4RpiW6zvEzhjE1RhuHZ8jvqGRx55xG1j8ODBfgyqPdgcttWlSxefa5IAgnkCchKGKVOm+Fyy5HLKKadUmAa+F4L9sv8f56CDDvLAgOPcf//9ttdee/nvAsH2uRc+/fRTD/bwfTWBgsmUCwWcEJE8IgdbbrmlO0aykJCt4ohxbptvvrl/JlIdMGCAXXPN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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "colors = {\"progenitor\": \"#2a78d6\", \"intermediate\": \"#eb6834\", \"terminal\": \"#1baf7a\"}\n", + "\n", + "fig, ax = plt.subplots(figsize=(6, 0.4))\n", + "ax.legend(\n", + " handles=[Patch(color=color, label=label) for label, color in colors.items()],\n", + " ncol=len(colors),\n", + " loc=\"center\",\n", + " frameon=False,\n", + ")\n", + "ax.axis(\"off\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "c3c816d8", + "metadata": {}, + "source": [ + "Time runs down the page.\n", + "Dashed branches are lineages that died out.\n", + "Intermediate cells, in orange, have the highest death rate.\n", + "Divisions happen in nearly synchronized waves, about one mean generation time apart:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "de51047a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApEAAAHCCAYAAAC32ZIPAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAgAElEQVR4nOzdd5wkV3kv/N+p6jR5dsKuNidlCUkIEMIW0Zj82heDueD3tX0NDjhgbGG4yEnC4IQJtrGNA9fXAV4TbGPsizAYEPmVBMpxpc15dnLo6VTh/aO7p87sdM90qFPnVM3v+/nAjnY7nOmuOvXUOc95jvB93wcRERERURtSuhtARJREf/blSdx7ZBl7xzJ47+u2624OEVHoGEQSESnwnafzeOhkAWdmK7qbQkSkhKW7AURESTS56AAAFouu5pYQEanBIJKISIELC9URyHzJ09wSIiI1GEQSESngekJ3E4iIlGIQSUSkRLXwhRAMJokomRhEEhEpkE1Vu1cBVlEjomRiEElEpEDJqeZCeowhiSihGEQSESng+5zGJqJkYxBJRKSED3Aqm4gSjEEkEZEyHI0kouRiEElEpIBlMYAkomRjEElEpIDvcyqbiJKNQSQRkQKMIYko6RhEEhEpsDKbzVltIkooBpFERArYtSiSMSQRJRWDSCIiBSzBoUgiSjYGkURECth29U+LtSKJKKEYRBIRKeC41T8ZQhJRUjGIJCJSoOJWw0funU1EScUgkohIAU5jE1HSMYgkIlKAI5BElHQMIomIiIiobQwiiYiIiKhtDCKJiBTwWR6SiBKOQSQRkQrMiSSihGMQSUSkgIAAI0kiSjIGkURESvjglodElGQMIomIFOjrqXavKZuBJBElE4NIIiIFHKf6p+vpbQcRkSoMIomIVBD1P5gXSUTJxCCSiEiBUpl7ZxNRsjGIJCJSgamQRJRwDCKJiBTwfQ5BElGyMYgkIlJACA5FElGyMYgkIlKAI5FElHQMIomIFOA4JBElHYNIIiIFOA5JREnHIJKISAFuVENESccgkohIAYtRJBElHINIIiIFHIcT2kSUbAwiiYiIiKhtDCKJiBSw2LsSUcKxmyMiUoBlIoko6RhEEhEp4DGIJKKEYxBJRERERG1jEElEpAC3ziaipGMQSUSkwECPDQBIs14kESUUg0giIgVKlWpSpMPkSCJKKAaRREQKVNxq8MhV2kSUVAwiiYgU8DkCSUQJxyCSiEgBwZU1RJRwDCKJiBQQtd6VsSQRJZXwfWbskF7v+Kcz+M+HF3Q3g4iIWnT1jhw+87b9uptBmqV0N4Do24fyuptAFLoRaxY2HHiwMO2N6m4OUajOzFZ0N4EMwCCStFsquys/3/qKrRpbQhSeT901C8cBbAHc+jIe15QMH/nyJCqOj8Wiu/GDKfEYRJIBBIBqVsVbXsgRG0qGt7zw+3Q3gSh0H/7PCwB8+D6TfYkLa8gAKS5AICKKB1H9Py6mIIBBJBmgN1vdHs7m0UhEZDQuxSUZL9ukXdHxAAC+p7khRERE1DIGkaRduVyNHl3e4RIREcUGg0jSjrEjEVE8CDB5nQIMIkk7dklERPGQSlV7bC6EJIBBJBmAI5FERPEw3FsNG7Iphg/EIJKMwnCSiMhki0UfgI9ShSshiUEkGYXzI0REJiuWXbBOJNUxiCQiIqKWMBeSZAwiST/2SkREsWCxuyYJg0jSjn0SEVE8cMcakjGIJO189kpERLHgsbsmCYNI0k5wOpuIKBa4pIZkDCJJO45EEhHFg88EJJIwiCTtuI0WEVFMrHTXvPknBpFkAJ8xJBFRzLDjJgaRZAC71hexSyIiMpvNHHaSMIgk/Wp9EidHiIjM5nF5NkkYRJJ+XFhDRBQPHIkkCYNI0k74AMchiYhigDf9JGEQSdo5PsCMSCIi87GuL8kYRBIREVFruBCSJAwiSTve2BIRxUNvtho22IweCAwiyQBBEMlokojIZKWKBwDwWOCXwCCSDJCr3dLaggnbREQmq1ST2OFxgQ2BQSQZwK39yT1ZiYjMxl6aZAwiSbuKU50e8XlnS0RkNPbSJGMQSdpxAwQiorhgh00BBpGkXX16hF0TEZHpOKFNAQaRZAB2SkREccCSbCRjEEkG4BgkEVEssLsmCYNI0k5Y1Vtb3uASERmOHTVJGESSfrVV2bzBJSIym8UokiQMIkk7T3cDiIioJZZd/ZOhJAEMIskAgttnERHFgutu/BjaPBhEknY+J7KJiGKhXteXvTYBDCKJiIioZQwfKcAgkoiIiFrDQpEkYRBJhuDdLRGR6SzGkCRJ6W4AURV7JiIK12zehe/zBjVM24dSODNbQX/WwsySo7s5iTTQYyNtx+OayCCS9BNipVYkEVFYXv+RYzg/X9HdjERaKnl4/u8+rbsZifSxt+zB8y7t092MlnA6m7SzGEASEREBAD73vVndTWgZRyJJO9sS8DwGkkQUnoWCixeUPoHrXv923U1JlN/57Bl4rgdA4I7X79LdnMT4wOcnMVeopgd85cm85ta0jkEkaScsAB6zIokoPN9+agmPO1fh9mcN625Kohw+X8ZjZ4rYOmTjtfxsQ/Ohz0+t/Oy48RlUaRpEfuHhBcwtszQ9qVepHWY+gH+6Oz7D+BR/L3/GIEb6bN3NIAX2jmUxZk1t/EBqyztfvVV3ExJpx2gaM6er+bujA/EZ32va0r/52jQOnStG2RYivO9z53U3gTaRK7fnMNLXo7sZpEDF9bHVmtTdDKKWjA8EN7PDvfG5seXCGtJu3JrEiDWDcXb4FLGvP7mkuwmkiON6OOUyZ4/i4cJcUEVgdjE+pZMajkS6Z4/g+tmP4x/u+K2o20Ob0P+6awRPn1/G2EAav/aaHbqbQwn3/3z0OJ6eKAEAnjhf1twaUmWp5KOCrO5mELUknQ5GH1Op+KwQaBxELkwDAPqzHKgk9d7+im26m0CbyEw+yPU+N1PS2BJSy0e/WNTdCKKWXLc7hwdPVldlX7M9Pik2DaNEa2gMI5WFqNtCRBQpi3u4JZYtAMePT24ZbW6HzwU3tEen47MepfFQo+tiJj0YcVOIiNTryQSB40BOY0NIqYlFF9uu/790N4OoJfOFoKzPfDE+lXEaBpF+cQnXLp+Iui1ERMrNF4IOenLB09gSUmnfaAb2o3+tuxlELcmXg8U0xfgMRDYLIpeR8uOzOoiIqFWFUhA4Tufjc8dP7ZlYcPCI8wzdzSBqiVxgPE4buDUMIkVPHypWOuq2EBGpJwSqpe192FaMemtqy2i/jWekHtHdDKKWlKQg0o1RFNl4JDK/gK3luajbQkSk3Fi/jeommwJ7RzO6m0OKWJbAUXe/7mYQtWTvlmDgbutQfHasaRhE2lt3466h66JuCxGRcsN9QWc9PsgZl8TygQP2Md2tIGrJpduDG9p94/G5uW0YRLpTZ/Di+YejbgsRkXKOG+RBFsrxmTai9iwVXe5YQ7Hhyl2RH5/SY43rRI7u5EgkESVSXlpYs1TiwpqkWix6mPLGdDeDqCVHLwTbHh6fis/y7MY5kXMTUbeDiCgSS+UgiFwsMIhMqr6cjQHBvdEpHuaWgyByoRCf0mONRyKHx7G9PB11W4iIlOvLWKivzh7q4dauSbV1wMalqcO6m0HUkqVSMJ9d9mIeRDrnT+BNe+OzdyMRUav6csHq7P4ct8VLqhPTZdaJpNgYTAd9Uc6KT7/UeHX22E58/GQ56rYQESknl4a07PgksFN7bEtgUMzrbgZRS3p7g8CxJxefGZLGOZGeB0/E55cgImpVMUg9wnKJq7OT6pKhNLaIWd3NIGqJL01he258+qXGQeTSDA4WzkXdFiIi5XZKRX33jsSnqC+1RwAYtBZ1N4OoJdP5YKvpOC34a7ztYf8WTKYHo24LEZFyKSndKJ3mjEtSTS85OOxcqrsZRC0pSTVrK/FZV9MkiBQWptJDUbeFiEi5ueXgLn920VnnkRRncwUX+294ie5mELUkZQX52VaM7m0bB5HpLBbs3qjbQkSknLyWxkpxYU1SXbYtizMPfUF3M4hacum27MrPcsqN6RoGkd78VNTtICKKxHBfMJ890hOfUhrUHscF9tindDeDqCUjg1K/1BuffqlxsfGBLVG3g4goEp4X5B7FaBEktanCL5diJZ6zIg2DSHd2AjfmWemfiJJHiMY/U7Lk0gIn3d26m0HUkifPBPtlH74QnzrdTdI3PfR5pWhbQkQUganFYGHN5GJlnUdSnLmez+lsio2lQrDIr1iOzyh64x1rtmzH4ewlUbeFiEi5uWIQRM4sxqceG7XHtjjMTPHRI+Vnp9PxOXYbFxuHjyG3EHVbiIiUKznBXf5ynAqyUVsqno+in9PdDKKW7B3JrPy8Y0t8NkFoMp0t8GTPrmhbQkQUge1DQWe9dyy7ziMpzlKWQE4UN34gkQFK5eCGtlyJ+XS2EAKXF85E3RYiIuW2DgTd3tbB+JTSoPacn6/gmLtPdzOIWuJL0ZiPmAeRfqmAp3p2Rt0WIiLllqWk9WIpPp01tckHFn1u30vxsJCX0mxK8UmzaVxsfHEWL1h4NOq2EBEp9+TZYIrzu8eZ+51Ugz02rks9rLsZRC3p7wnCsd5MfPY9bLLtYQZlKz6JnURErbJE0O1ZMZo2ovYsFDw85V6uuxlELUnbQV9k2fFZnd0wUvR9Hy6YK0REydOfE5jJV38e7+fNclJtHbSxy2KdSFqt5PhwPfNuHvPFoE2lkoflsllT2mlbIN0guG0cRDpl9LgsNk5EyTM+aOPkdPXnbcNpvY0hZUqOj17BdAVa7V2fPIMvP7aouxnrOjlTwXNuP6S7Gau89SVjeNsPjq/5+8bFxke34xtD1ypvFBFR1MqO/LN5IxIUjuFezqbRWt940uwAMm4aj0TOTkTdDiKiSAg/CBx9xpCJ9fjZItxrf1Z3M8gw8v4Cv/lD5uzMd/ehedz/dLW04uV7tuGl141qbtFq/3znXXjbD/7Imr9vGESK3iHlDSIi0mFJKp+xWOK2h0l12dYsHv38nwCvu113U8ggwY2jwJuet0VnU1Z55fWD+PqT1fZ832V9GB8wK1/7C3fmG/5945FIt4Jrl08obRARkQ4zy0HgODFf1tgSUunUTBkPO8/Q3QwyjQCqRRnMmoYY7rXxwzeaO4B3n/Pshn/fOIgsFTHqMG+AiJInZQUXj0w6PvXYaGNPnS/h3FwFL7yyH7m0Bc+38fUnlwAAAzkLN+7r1dxC0s6s2DE2bkl/E8BVa/6+YQ9qDY/j64NcWENEyTM6EOydvX2Qq7OTwi8X8U9/9Qf41D2zAIAb9/XistRT+NQ9s/jUPbP46t++F+40t/Ml6sTTTWquNhyJdCdP4dbty0obRESkgyOtpilzZU1i+IVFvHr2Xjz79moO5JY+G++/450r/77wlw7c00/DHuWWvpvZymw2taWIXMO/b7ywJpXBvYeO4QeUNoko3p44W8Rf3zWtuxnUphMXgjzIB44V8Kuf4OhUXNgW8IE3NQ4CBQTyVk/T5354oh+/Ob5XVdMoLlaiyPjsCmOCl2e+CODmNX/fMIhMX3UTvjtwOYNIonXcd2wZX3p0QXczqAuFssfvMEZS62wH5/tAn9d8k4xf3bYEd/IE7B37VTSNYiKXtlAoe7Btjke24zPFH0WjOgdNRyLffcf7FDeJKN6+dShI+dg+lMZIP4sbx8HhC0W4lWrF8Vw2jb1jWc0tolY9dqa4zr/6ONDTvGTThyf6cVuOC2s2u7QtUABgCy6qa8ersp8HcPWavzerEBFRjByeCC5oB7fm8Fdv3qWxNdSqf/jWDN5/Z3VDhTtetwOvfMag5hZRqz78xQv42Nem8dMvWluIWWRz+EjuuQ1HS+rsobXbttHmYovqCKTF2ey2FP02ciKJaGML5WDU48JSRWNLqB0/ccsIfuKWEd3NoA48+u078ab//rqG/+a7Ll4xd9/6L8CFVJveYrG62UC5wmOhHaPWTMO/53guUYfK0v5ZSwV2SESqpUQFvZkmly2ngksqs02fe/XySfgedyja7NxaV+2t/zC6yLfL39/w7xlEEnXIsoLTJ8UkbSLlZrwRHDrfOC9SpNL4u/GXNn3umLsIb/aCqqZRTASD0eyz2+E1Wc3OIJKoQyP9wemzdyyzziOJKAz77aPYN9qkQHwqjWFnqelzl0UaVpqLqIg64aHxwlEGkUQdGsoFKcUjvUwvJlLtnLsDC8UmI0iug7lUf9PnPv/gDnjF5kEmETU3JOYb/j2DSKIO+dLoPvNriNTLiDLKTuOzzXfK+KGZu5s+95OnyrAvOaCqaRQTK9224PLsdmRE4xqsDCKJOpSVzp5cs2R/IgqNgI9Mk4Ljwk5hLj3Q9LnXLp+AO3FcUcsoLsYGq9Oy/eyz23J16omGf89PkahDS+VgWm1+2dHYEqLNYbd9CrtHm+Qfex5ybvMdaxxhcac7wmItHaJQ4fxROz5dfEPDv2cQSdShmaUyqiv8fEzMs04kkWqDN/887j9eaPhvvmUhjeYlfBwrBVhNFuXQpuHWgkePNUPb8obcpxv+PYNIog4VKwLVoQ2BhSLvaolUW7j7o7hqe5MV1p6PrNf8Zu7Zl+4FnOYjlbQ5OLXY0eewdFs4EkkUMjk1q1meFhGFq1m9OvjrFxL/7Mk80MMtLje7oEwkRyLbwZFIopCtWp3NgUgi5R53rsKJ6SajiaksHurd1/S5r93TBxQW1DSMYoOLssPFIJKoQwOZoDca62euFZFqDlIolhuPIAk7hSO5HU2f+40j5yB6ORJJdYwm2/Gd8vc1/HsGkUQd8qRrmcsttIiUuy71CC67pElOZGkZL5+7r+lzT2fHAZs3e5tdqpZ6ZDH6aUsJjc87foxEHerNBdtADffyVCKKQjbdeATJF0BqnbL/E+lhwG68dRttHm7tEPE83vi3Y9Saavj3vPIRdciXrlcVhx0SkWpPOlfg+GS58T9aKXx++Dnrv0ClyXNp02Dw2JnrUo80/HsGkUQdmloKCowfn2TpECLVrkwdws4tTaaknQreVryn6XOfkT8GeOuv4KZNhCts2vKoc23Dv2cQSdQpqUQEK/wQqXfc3Yczc01qQQqBw8Xm09Ujbh5+mTd7m10uXQ172Ge354S7p+HfM4gk6pBlB6dPhvuwEinn+Cn0pBufayKVxheGn930ucL3ICxGDpudU5vOZpnI9pR9LqwhClWPtIVvf46rPolUuzR1GGMDqcb/aFm4efHJps995uUH4Fc4ErnZ1YNIbnvYngoaX+MYRBJ1aPtQcFLtGWMQSaTa485VOHqhWSAoMG/3Nn3uhyf6YQ2OqWkYxYe/8n/Uhtdk/6Ph3zOIJOpQJVhXg1KJW9YQqWYJD+lmaY+WhSd6G+dtrbCbjGLS5iFW/o/a8Id3vKvh3zOIJOrQ0algROSR00WNLSHaHK60D8Hzm9SJLOTXXZ0NAH5+TkWzKEa4oCZcDCKJOiQPiKRsTo8QqfakcyWarY0RmSzucbas+3xrZLuCVlGceLVJI8ESP6FgEEnUobHBIA9y90iTrdiIKDQZUcZArvF8trBsPNS7r+lz9xfPw1viSORmxwX64WIQSdQhzw3yIJkRSaTeAfsoUs1yInN9ePd7frfpcw8Wz8PLL6hpGMVGplYiintnh4MfI1GHPCly9Byn+QOJKDRDPZ0tjvny8A2wR3eG3BqKm1Kl2nG7LlOQwsAgkqhDI1K9uq1DmXUeSURhGLz55/Ho6ULHz2exceLW2eFiEEnUoT2jQR7knhEGkUSqPf2df8G1u3IdP98vdR6AUsJwYU0oGEQSdShfDuazlyu8vSVSbc4bwfGpckfPzXkliJ7mxchpc1iJHX1msoeBQSRRhx47E4xq3Hd8WWNLiDaHEWsK2wY7y4m8qnAafpHn6WYX7HbIkcgwMIgk6lC5EtzJFisaG0K0Scx5w5gruB0994G+g0C686lwIlqLQSRRh6qLaXwAPnaNcDs1ItUuSx3GntHO84/9MnMiicLEIJKoQwI+qlMiAjaTtImUO+RcgcPnO9ti9Pbbb0d63zUht4hoc2MQSdShyaVgDvvMLOeziVS7InUI+8a5OxR1jrf74WIQSdQhIXVHHIgkikYqxZONOrfSV/MwCgUTuYg61JO2MItqkn9/lj0SkWqDN/88HjhWwLP2slSPCn/3zRn8+ZcndTdDqZVi4z7wnNsPaW2Laj960zDe9eptSt+DQSRRh0b6bJydq05jbxtstqEvEYVl4e6P4hmvv1V3MxLr/zw4j+Xy5qmfmNTf9RML70SfX8TU/TcAr/6A0vdiEGmobz21hIVCMg/wpJhbDr6fk7MO7nxoQWNraCPjgyk8Zz9HsOJs2e9Bb4ZZWKocu1Ba+fnnXjymsSXq/MPXz8PzXcAX+B8v3qG7OUrs/OwEBIChqe8qfy8GkYb6wJ0X8PREEUzciId7j+Rx75G87mZQUz6ed2k/nvOWPbobQl3wIZCx2SeqUpE2lv7ll41rbIk6Q702HjlVwO7RTGJ/x6nPVv+0KupLWjGINNTRyTIYQJptQCwiK6p37nm/HwWfhYzNJXDfMe5WEnfvv+OdupuQaClhwUWyZ8B+8pYR3U2Ijq9+O14GkYbyaneEtiXwn+88qLk11MiTZ5bxue9OAAB+8kU7cMkwS4+Y6Af/8DAAoOJyf3Oi9Tg8RRJG/UAUg0hD1c9lz/exYzittS3U2I7hIbzkmiHdzaANCFG7IefAPtG6XI9RZJKIjPrZMWYoGy6C0WiiRLNqwaNtMYokWh8vOEniVzrb3akdDCJNx+seUVfqN2Keq7cdRESRimAUikGkoaxaWf1cil8RUTfqM3QeR1mI1pXmyndqEyMUQ6VrtasHeljEmoiI1OvNMiSg9vCIMVSpNvU2u+TobQgREW0KFgfrqU0MIk1Vy2XwuLKGiIgisJjQbQBJHQaRhmMMSUREUfAZQyaLrb48IINIwzGGJCKiKPRmuLAmEWpfo+jtV/5WDCKJiIgIhQqHLZLEL6nfO5tBpOF4X0hERFFwOJ2dDPV7gUpJ+VsxiCQiIiIIJlAlC4uNE4ciiYgoCrbFkIDawyOGiBKtfh8meENGtC7X43x2ItT7Oq7OJptXPqKu+PVzyOe5RLQen1NfyVCfxXYryt+KQaThHI85KkRdqeUF+cz3IlrXUI4hAbWHRwwRERFBcOaL2sQg0nA8p4nCwXOJaH0LRVd3EyhMEXR6DCINx20PibojGvxERGv5vOAkSwRfJ4NI0/G6R9SVlX6UF0iiDfCCkygRfJ0MIg1n8bpHFAqeSkTrE4JnSaJYnM7etETtFsKK4CAgIiLqyTAkSBRXfd1PHjGGqpcjYYkfIiKKQoo71lCbeMQYjitKibojLvqTiBorc8eaZOHqbOKFj6g7K2P5PJmI1lVxGEQmibCzyt+DQaSh6qmQuTS/IqIwcHE20foclolMFN8tKX8PRiiGqqdCFsq8MyQiIvU4WJ806u+cGUQSERERfCbhJ4z6EI9BpOE4A0dERFGwmPORDPV7AZ8lfjY93hcSEVEkWJc4WSxb/Vsofwfqis9zmoiIItCfZUiQCLXg0d5+QP1bKX8H6g5nF4iIKAKuywtOItRW5vpLM8rfikGk4ZjnTNSd4d5qNzfWn9LcEiKiCNRyIb35aeVvxV7VVEIAvs+cSKIulZ3anxxlIVpXX1YgX9bdCpI5pw7Bm73Q8fPLD3+z5cemr34uRCrT1usziDRU2hKouD4Ge9QnxhIlWaFSvStfLLKSMtF6xgbTuLDockWnQQpf/AeU7vtSx89f+OitLT925A+/CDE40tbrM4g0VMWtXvjmlnnhI+pGvWoJq5eQab74yAL+4itTupux4sRUbRjSB374j4/qbYykP2fhE2/dp7sZWpQfvEt3E9bFIJKIiEiDrx9awuEJ9VvTdcKkdm3mtQG+66z8vOW3P93Sc0793k/B9z1kt2zDtl94f0vPcafO4L0f/ghuv/32ttrHIJKIkk0A8LmKkMxz1xNLKz/fdGkftg3ovSQ/+MQJFGpJxM+7/qDWtgDAnQ8twPX8TT6LEPzy9vb9LT1j56/8CeCUYQ1vg71tT0vPcY49iucuHmq7dQwiDbeJb8CIQpGxBcqOj2yGZxOZxZOyld747CG8/PohfY0BcHRydGUE8mXXDmptCwD8nwfmdTchltIHr2/7Odb4TkynBtp+HoNI0/G6R9Sd+o08K/eTYYZ6LSyVqpHklgH9iygPjGdxYDyruxkrakVKKALu1BmMuEsbP/AisQ8iv/bEEs7MJrgmge/jE99RXzA0alftyOHGfb26m0GbgFPbPrbkqt9HlqgduUyQZJFL8SbnYinbQtnheRsNgU6KCsY+iPzY16bwwMmC7mYo40Pg9/5jQnczQvejzx1mEEmR8OtDGbwWkWFKleCgLLGO6RoVh59JVOytu3Est63t58U+iHz0TFF3E5RIwYEQgOcLuNA/zRG2R08n83tLitOzFd1NCE39MuRBJOb3sgSwYzituxnUpUIpCJKKJd7lXEyIzb6oBpHN6acPXo9ffO8H235e7INIp3b3JgB873eu0NuYEL38/Ycwu+Tiih05/ONb1W+iHpVn/XZ19de5JKcgJMCrPnAYyZv99fHy9x/W3YhQDORs3H375bqbQV1akArgn03IDU6oapUVNjXDo+jYB5H1g8wHkEsnp4jHP771IEqOj4Gclajfq87xmP9jsuQFkMmyWOImBEngSedZvmJ2sKCDx37IePEPIhN63u0ZbW//yrgpVHgRjIO0beEP3rBddzO68pufOQnXdZFNp3DH63brbk5Xfv2fz6JU8RPb7202vVmBxWL1y9y5hekJF+NAJIxfoh77INLcj5bWwzvMeHA8D6+4Tn+9uG4UKrtwbs7B3tFM7H+Xd3/6jO4mUIjGB1JYLFZTe8aHYn85Dl3Ktla2AN60DA9y4n/U8lYlljbzNlYUrdc+a1h3E0LTk7FRKXAUPylSVpCqZLNTXKMvC8wt626FZpYAPHODnNgn2/G0i6lNfnNpOgEfgI9smmeYSSoGX0yofUUpD7LirPPATSqdin2IEgKzz/nYf0NXbs8BAPaNJTuHMGm4eYjZqkVnRTX/jvzhyfcAACAASURBVIxRKvPuK0mECM4vy+C8N13mlxlZmzwKCSQgiLywUC2LMLXIKZ44yXB3hlgwu/siirflcnCGsdj4Wg4v68aLfRBZL4tQ5gkYKw6/r1hgqG8Wwby5RJHTE4qbfQFJA4YPwkVC2GZvNhL7ILJY9gD43F8zZnx+XbFgMWYxis8pz0TJS8XGJ6dZbPxivGmC8atQYx9EVufbzP6QaS0R/yNvU8gmsNB9nDGETBZ57GOe+cdr2Ly0wzd8hDr2VwgeY/HE2ex4KJT5RZmEA5HJ0iPdpO3kXuhr2IwiIbK9tR/MDNfMbFUb2KfGFL+4mDD7Lpgozkb6g3y3sUGzc9908JgUCTil6p+G3kHGPogkIoVYi4lImT0jQWm60T6ORF4swzq1EKlqGUNYDCLV4DEWS0yYjocUp5OIlBnuC0YfWdh/LdflZ+KVlmo/6G1HM7EPIoWZwTltwOJ8diz0Z2PfRSQLr6mJMidtYVmqGBolaFR2WSjS1GnsOl4hSAuPF8NYSGf4RRnF7OsJtWkgF4xEpllPaw2mRJov9kGkuOhPigeOIMdDkauzjcIskGSRt7Gs8Cq2hmBOtvFiH0TWjzFe6uKFfUM8sIi/WQZ7uII3Seal6WyH09lr8DoBY0v71JnduhYYni5ATfB7iwebU2xG2TOSBQBYHJJMhNOzwS41M8vcseZiPVxsBGt4a/WHVGb9B2oS+yCSYopBpNHqXfflW3Na20GrPX2+AADweBeWCGVpl5oiY8g1tg5UR943daBimf3bm926FvA+JZ4yqdgfeolWv7QduVDU2g5areR54B1YcixXgunsCwtljS0x06mZamS9mSf6/UK9xI+ZK9XjfyUXq/6gmBBcWRMLBeZpmcUXYG+XHI60/+uZGUdjS8zEqwTgFxeqPzCIVIOzOvFUdvjFmUzUum+PAYtR2N8li5DOL55pjfBTMX0YNvZBZB371njhjjVm82udN4MWInWy6eASvJ/5x2v47ICMl5ggkuIlbbNziAd+TyYR/D4SRd5VtCfN75bih0Ek6cECYLGQYokfo9iGr9Sk9hSkhTXn5szMedOJvQ9g+qfAHom0MDzNg2r6MuwiTOJzQVqi2FIh6SEWkl+Dx7v5eIUgLeRViWSu+QLDfZP4/DoSpa83CBy3DDCIXIshiul7ncb+GzL746VmGELGA4tam8XjmZMotvR9ZmxezdZg/wORqS24MjSYjH0QyUOMSB2m4BmGucSJIm/rl2IQuQY/EUAMjlT/TGc1t6SxBFwiGEbGETuHeBjIcYqNSJWiE/SEJYe5Chfjuj4AlepORr5r5sKr2AeRguFIrNS/rZG+lNZ2UGtsQ6dQiJJgXtowe2qOO9ZczOPIO7y5qeoPrpmbq8c+iOQxFi/1ceOFgpl3VbRavsjRESJVXGkkcm6ZQeTFOM8ImF7LJDHDQYwl48X12D3EgbD4PZlECK41SJKUDbi1GGG4L6O3MW1wPeDOh+aVv49l+fBqn89/PKD+/a7d1YP94/H5HkwQ+yBS+NW7Ffar8cJcF7MJVM8pm8n+RklZQIWD+ImxdySNpyZKAID92+ITvJQdD+/+9NlI3zOK93vnq7Zh//iI8vdph7As+J65o5EJms5mGBkfPjKp2B96iVY/mwqczjbKSH9adxMoRFfsCPbLHuuPzyK2xWI0dzKj1jTGrCmMW5OK36k6FHXPkSXF79M+366f82be0Md+JDJg5gdMjQhUDL6zogC/JbMERfrZ3yXByelgsUS+FJ8h5uklB/Vbzb6Mjf+49YCS97nzgS2478g8spkU3vVDe5S8x+Nn8vilfzwHAPjesZKS9+iKUz9GzBwoi38Q6a/5gWLA0GoFREZbXNlBiP1dEpSlsj5OjPLEF4ou6jcyJdfDtiE1I+Q/9aJL8FMvukTJa9cdPR/MilU8Ey9MZh8XkQeRH/zCBczmVXxRAr/5z+dCe7WejMBv/JDag3czEywdEwvZFL8nk7hcVZMoo9IUdiYVnzGdtLTntxXzUfH+3uBz77ENTLOybMA1d+V+5Eft3N1fQmkpjxP2djxmX9b16/WJPFJw4MLGZ+8LoYHwAQhkGUQq1ZMx8GSlNThibJaejMBSkYFkUsh70ztOfE42z3eln+N9PA73BAuado1Gl3M8/6GfQ0ujjFIAOf+hn2359Xte8mPI3PCi9hvWpsiDyF++8BEIeJhOj+DWvX/R9evlZyax7PeiRxQwNtr9qqrjU9Xq8KVyvE8M0wW5XdTM4YkSShW9n5Pj+3jsdFHLe+8ZS3PHnIvsH8vikdMFWBzJT4TpxSBAmItosUoY5palIDLmidMFJ8hLnZiL7juoHH4Q8Nv78CpPP9DyY9P7rklmEClqqfqjzgw+/46DXb+e5x+E71frp4VRNua633hipW4XqeMZnudhgnd96iwOndMTwMne8OfHtLzvR358F15y9YCW9+7EFx9ZwK3/75lI3svzfVxz2xNK3+Pmg334Xz+tZjEDVS1XgotNnAYutvQHoYMd8/u8snSjXoowJ/LPt70Kvzo6s+Hjzjz1GCrChvB97L38qvUf7LooP3kPAMCbnw6jmRvSmIQRznSmJRDqQkVbCLjwufhRtfj0l9ocuWDgSsEIffw7s7EKIu96wrzyIN347tG87iYk3lBvCnO1NQKDPfG56AzlgtBhuCc+uZyNzEhrNMrlaEaQSvd/GXtLFzD4S3++4WNTd/4tnJOPwxoYRf//fdu6j3UnT6L8268DADgXjofR1A1FPxJp2/BdF/aIofmGohbdMMhRKsecyA3Vp/xTtsBf/dTuSN/7rR87Ch/Alv4M/uCNuyJ73//1tWl853A1eDk2WY7sfcPw1ccXV36++pJevOKG/tDf439/+ShsrwgfAj/5sg1GJTr0of+8AABgxkkEVq3Ijk+fmJYW3KXseB8oxbK8Qj6aQN4vFXAiu7Wlx/a+6s2tv24xmLny52fbblcnIg8irYERuHOTSF16Q9Rv3RJOZUcjH6P8H90c18fNB/sifc9fffVO+D5w474eXLe7J7L3/d/fDKZgCjHbmkWufbptMIW3vHA09Pf4/sv68PRECWlb4BXXDYb++kAQRJJ6+XJwjC+XzV2BezF5CrhQic8IaiM96aD9US3Otkd3IOfdHfrr+pXllZ+94uI6jwxP5EGkW5unrxx+MOq3bkkmbaFQ8jb9dPb8souHThWUvb7nA984FO70Xy5t4aYDvaG+5mb1k7fo2fprclGaWtK8qKhd2wbSODVTTdK/cndWyXtcuSOHK6VdTlSob3m5ybvArvzJlyZx54Mb7/U8Ix3vt336PHoz6wfw/3HrQWQMKLvVmw0SIUf64p0UafnS5xnRgjV/eRE7yxvnQ7YtFawut9LRrDSPPpmhthrJmwmvpmOY0jZQADb9dPaT50r4+b87pez1fR+hv/6OLWn817suDfU1KVrDPWkA1SmZdHxm9wAAN+zpxamZauDwjB3Rjd6Grh5FUsceOLGM07OVjR8omcm7q/LzGjHla0lJcWNfVn9Q242KVKIoqnrvvhA4klOQ0ifVZPMjqs+mLyPWlLPhIvmSoQ2L2N0xTKo/22anTeY5OJbGPUeqP48PZdZ/sGFm81K5llJ882IyKYFSxUcmHe/gQKelWrpONiXwQzcONX3cf3x3AtnaTdOBXdtw6fb1R5n/4Hd/B7fffnt4De3Q5GKQr3w4ZrnLFxvIyfmd0Rzz3vRZ3LB8NPTX9ReD0U2/EE1lDw0lfmrxo6F1zlbKNpnZvMjcfzwIIp+1vxe/GVLh9R/70yfgAdg91os/+rG9obzm6z5yNPa1ytZj6KmixFW7MkC1QgWu3ql22jZsp2eCi+nZ2SKA+Kwsl9Vrk8YtncAk5+arNxQVx8cdr93e9HGO5+NLD1dz137/jbuwe6T5FGTlyEP4vYfDbWen5qQR01JEK5pV6ZOKjQ9koutsfT/893Jmp6Q3SPhIpEhFVxm+HZbwq0Pam7z/PLsQjKrMLvu4/JJwcrw++BOXouL62DOaCe01q0FWErO4qrdcInG/V3MPnwrKGj18YnmdR5pnXhp9nFyI94UV2PRdYFfquwptdBS873U78L7Xtfaa7tmncWP+cHcNC4kjr0CN+YFiCekXiKirtbftxURmOPzXHQwqQvgRpapGHkSufF2umVOP3spYaczPjC450ihE2Qlv1eALrwy/7ElSgywBvzZqv3mOxSfPB0HkZD4+q1UBwJdyq9wkD43ThhwlZT4szKXC7z87MSwXGzdgoU835NZHNevjHH8MP37z1aG/rsgGqRNCRDNQF3nqev07MnW7zZV2baY5xAZW7f4T1S1NhzK1PJakfWP12Y7NtMVdxQkuvm5UWe4hGcwGF9bRgXjlc8o2z9GmjhXG9mlr+BhyzChoL6QLeNyPl1lpC8eFiHKZU/uuxR/dp2JxcfBtiIiCLH3rHw29MKYsFhsHquVy6voMT01zasGGghQTvWrH4GbaZ3xJ2qQnwh3IQiFvYbdcitco6ipJO480qJe9CTOY9MslpNvca1mVVCYY5cqYPcawocVCcK46EU2QuhMncH0+/O1khZD2NI8outMQRNZOqpSZd+ovvaZawLdnk++oYktTqMLQgL+u4jLwTwr5ehS3mwI52K/EuACzqbNEcVLvk/wQP0yRzWHONqMO7mIhWERWNDMzrWVyJRwvootIaseleKhvf+iv65aDL0NENPgQeaTk17+kcjTLz9tVqK002+wpTY4ILuee4dOKtpKpI9JhpD847nKpeN3IbZGKLo8PxavtFK6UFX6KjV+p4Kme6LYgXc+FeXmrQLOvDxuR9yyPqjZt5cgDeOezmq/a75SdkRarWtH8MtpyIk0dNnroRHWXlpKzuaPIhaXgjmZh2eypOVskMycyib/RRjKWPAKusSEdKEhb2NVX59LmtFSsDUaEeRhUivi168LfSrMT2Zjvly3LZoJc5qhqo6Z2XKYkJ1IMjq38bA1Gc6xoGIk02zz3dAZw0R2Z4Vfzci3gN/3YalstpSCiG0ojLElVASoxu5FbKARtPzMb7wLM1J1ybXV2mD2nfcl+fODh6Y0fGIGsdIGI+0RQr5z/H1EamztzFjfkwy82LjLBTlmif0vor9/IJro8tSZely11XLn7Mzw6M7x5HcvWeufRATNrqqogp5DF7eLkS0ei58V8tQF1xVeQpu1On8P1y+EvxujEuNQn5eK2P+nFpNmPqO5braFx5O3wV6z6Upqgl58N/fUbifm3r0BSI5I2paQreNrwTiJmsUbLyrXE6IWY1UvsxtXSntPbBuMVPMsL0Gwrvt9ZPcd4M5WWioPUrsvxUG/4izE6kbaDm6S4L0LNS2V9liPafcebPYcBtxD66/qF+eA/luabPzBE8f72SZmstIdoNqL9RDuVi3CrqkjVfq1NVOEHFalIcyVmCfsZqaJBbza+I5GeX19ZrLkhtIq/FM3IUisWK8FNklwiJ46KpSCFrRJRZ5vafx3u7zsY+ut6bvBd+BHVSGMQeTHefQMA8pXgAFw0PE+0WE7m1a5+EY9bvcRu9GWDLikbs9XZsIP22nZ8g0isTMUm87yKrUwaQ25edysAAPL6k7ilnVzMR/T5ne70WYw6C6G/rj0gLazZcknor99IzHrpCPD2u0Y+sQzvJUxvX7eszXNMyrWU4/atlqRi4/OF+Eb+m+doixeRGUDeMmPnh8FcUOd5dNDMms+t2jEcpM1sG4omhcabPY/9xYnwX3cxGK325iZDf/1G9AWRht6px/2uKizyiNBAj9n3GmEW9DXL5jsYhRQwx+1btaWRyN4Y54ltvqMufCquI+6FE9heMWNK2xdS2okTtzN1tYpUFLoYUU6kPb4bF9LDob+u7wQLa4QbTYUIfT2dkg3quxezNCxlPOnEMn/bvWRe9uoDrD1JzflsYFGqr7hcMf24W82XlnaWSvHdxmNlp6Ckj/ArpOLItUe341RmbOMHRsBzBaq/pb+SQxtXGWlAqy+iXGaR7cHJ7Hj4r5sOdjTyI9oVMLXxQ8JVP/TMHfJbaeGmJs3MwTX8TtOykrnDUH2ENb+JCleXytEnuYclnbKAWi5xf2/kXWt46h97zIMDrRR8dM7ECTwrfzj8F+5AqeKifvNeiHlOui3NfqQjWkSaufYW3H7tLaG/rpUN0h1EOpogUl+xcVM7KFNj24hlUvEp8dOfrbU1cd9dbSeexP1ezU3ngyAyqqmlsPRIKSBDuRgHkdQ9BeesPbQVx7LRLJbYyLI86h6zTQEuJucym74724ak0RQR0bSqtuhACDNzIjkIWeXIpVYMTT2oK9bOe5HQ724zBZGWLS/oitcXun0ouPPftWUTfWm0hq3gvtbqH0aPV9z4gREoSrUV/ZjngDle8C0ZPum2MbnPjCi60xZE+obuDcOuvyqbCkZSTM/Jq3fYcT//LyZqHULsSt10w5d/NPu4u9i8VC9vrqSxIV3K1k79jKH3+XFg1Y7dULfOPvog3vTsK0J8xc5lpFF3y9jUtNY4rjT7UTEzLmmV51Skn6MZVY386rRyuJk6nZ24UKQzFT84sRzX7E6iGPvbx8bqO6BYm+iYjPP1aE4q6zM5H98SP6Xatacc319BOxWF8q2RHcbsnT2cC0KH/hhXIgAAqdZ4ZNseKuMGQaRwo1ncpy0nUggzD7yVrctifDELw0hPMAyxpc/s/C4/7id+E17tQpRPaJDcyIHxYEp4fDBeQ2FlaTX5suEF+kktFSkoIpvDpYWz4b9wB8pO8AtWYn6Tu7QsDZjEfGreW14KfnYTOhJpOj/YrmFTK0vHX9n0pc9JD/gN//jDtOq08+L1xcqTK46xMy0b431095SMkQiBJbtn48dFwJW20arErBTXxVy514l5EGn1SseHHU3hdH05kYZ2sgLsQQGgUJY3pTfzu1oRswUY1JyQvsu4fauOJ58z8Y38WSaye7lU+B+eN3kGu8pTob9uJ8pS+a2414lMS4v5RJzzaQBYbjB7E1Vwpy0nMqoaRu1aWREa8xOjWyXp7tL4wsl+vE/8Zuo3NFkFFyRTFaVNFgwvCrCGPIhRNvyUaUXcFjaZpKjg+/dcB5Yh0xLDPUGKU38uXmknF5N3Z4uqTqQqroZhQX0jkRHN17crs1ITMd4HU7fkrazMT7BPZsBfvym2Y96xteOps8Gy5gvzMYvE5C0bY/yVpWrHW2oTHXdhc2uDEKGW+OkdQMkyY/AlZQWhQy7mC2vk7UrjfsinegeD/+gZiOQ9NW57aGYQWTKzWZGTk6VNH4hMqvqFqByznVu6kXeCOxY3ZrMBQgoZ0jGeC67vFGT+dqfmUlGVyx7djod694f/wh2YLQQXhZnFeF805cAx7uWK/EyQE2n19Efynvp2rDFU3Aocq+I48Sk2bvxB1RXf+G0nw5S25GLjGhvSgRFpq8NLt0WT1K5CsOvh5jnuwlYvPRjmJ+ieO44bl8zY9rAgjbbE/SZ3sZCcOpEoBquz/cW5SN5S4zi0mVcI0xciRyUlDfFnDN/2MNlEsmPki1y9M5iuGxswY+quVeMDQW7Y1sF4tX2VzXTAKaLiI7R3XYr7+y9V8Mrt82IeOMrktI3Yj0RWgnQg1yuv88jwaCwAaOZBGLcpNFVGelMrd2hjfWYnTqdTYlUOJ+lRrHiYXuougfb0bPD8haKDM7Pd5VIM9tgYyEVzEzSzFIzOzOTjO8VnieoioXhfTvUSVvj1a33PnGPKTgXXBDvmYwzDfXLh9Hgf9W4pv/KzVYkmD83sKtIaWP6mKsvX1JU7szgxXb2ruWqXGbXJmkl83B+Tfu07T+fxtn88Hdrr5UseXvb+7qbvbn3lVrzlBaMhtWh9c8tBz3FmJsaJxAKAzxI/3RjI2lgohLsi0btwEtfnj3b8/E/ePYt/+W44U5z5kryjGfCjHzkWyusO99n4mzfvCeW1WiUQBMSZmG8xa0s5kUoScxvQF0Qa2kN59R50k5M7iXzR8M8jsaU9q8diXH6vT97T/QUqI8oYFvMAgLzfi7zf19Xr3fnQQmRBpFwnctH8kgZNifpxZ2gfHQfDfdUgMszVvva2/Xio7wD+W6dtevDf8FNPfwsVYeHXe2/tqi0CPobEAgCgiBweD2kjnZSGIG5B2vN+Nh/f8xYARE5aTJOJZnU2p7MvIoSf/JGtFhw6G+RTPH5uWWNLNtaTsrDouLEuq9JYvHZPeup8cMw8e18P/vvNI22/xtPnFvHv364mh7/4yhG88Nqxtl/DcYDb/vkMAODohdIGjw6PBwv1eQwrZrvtyOrbbbox371Dp0Ip/Pksb2kOVxZOdfz86478KzKV8wAEXv7cwQ0fv56K6+KhJ2cAALt6S7h0/3hXr/fFR6oBqaNh82pbKs0V9xsn53wwUu0tRVOYXmMQqe6O47Ezxc5XWfnBSOR9xzsPnq7YnkN/Nr5D4wXpZC6UzL6YLBYVLIU0SFx+rSWpwrIrBF51fQcXqusH8fZX7OyqHcvLwG2oBpGVCAMhOTfMjnHtvLgcbyabruXEhrn+xJs8hdc894aOn59ZvlD7yceHfqy7cwwAPL867RzGWpRrb1sMthyOmDxopKsNYXGkwFFENBqmL4i01HWy7/702VBGIH7ir050/NxPvHUfbthrdi7hei4ZSOFwLadnx5DpqbNMQTCBXB1L5xFjS+vAIp1VkO5bPTe+02L1syneYzJ61Y+7MD9DkenBXV/+Ml7z2l/q8AWCkfIwxHwh84qMdMOXjvnuYOnBS1Cs/SyUbOC+lpq+3nXgl4sbPMaDX1ha/XfCgsj1dv32Ryc7DyBHrFnYqAAQmPQ6H6J/4Hgh1kHkjft7cbgWiN+4r/vvhJIvk7awXKkGT/09+lb0y0Fk2LMBc8suppoUV5ZHIi0BHJ5o3g+N9KcwYmjVAxUrizcb/6I/w2DvvRr39T2B13T4fJNvtfeMZnBiugRbQWS6WHTx5r852fTfy1Jlj1LZ33CR0LP39+J/vmZbaO0LkxiU8r9T0ZQZUxJElr73JSz+3e0bPMrD9K0vXvU39rY92HLHv3TfgPoxIXx8/Ofaq/D/6W+l8OTpBaRSAh9+/b62nvuR/7qAe45Up8AfP1do67mmKZSDq4i8j7aJMimg7HDkRLdc2gJQDSKHc2as2dsa8ij6v98/jz/8/MSGj/uvxxbxX48tNv33t79sHD/74vbzPaNgQcCDDzvm+WFa+eGP5bqnD+GZ+S6qFRhcBPnUbDWfWkUebsUFHj+7waBWTcnxNnysyanCQsPdn5KevvjdL6p42bYJX+CZbY4GPnPvZR2/X0lKgJlaNPeEbcVwbzCsMtxn9sWkvk2bwed2h0weO1hrXlrlWC8PpVvK0Dm3v/vWjLFBZL1WrhujY888Qvr/8JS72TvbtgENC1daoTK+ff77nsIrrmuen71UcHDoSDV1zUv14DlX7mj4uK8+toiy6+N0l7VrVfK8oG1+RLvvKQkivTNHVn7O3vQqpA9et/Lfx//lL+H6QC6Twc4fevOq533iP7+G/zF5Gvb4rq7e37KqKwwHe6IdDZHfzTag2uT8sos3/Fln9bumpcLJH//2HO58sPmoynr+9e0H0Kd4gZEfr1irbXEZEMqkLBRqpW0GNE5ny5+XG/LOGse+8hH82Y+/o2FK919+5SyOn62WOXrd9+/Bcw6s3bv2F//+FHwASyXzcyZZpaJz9YLtYX6EfmEJr3zuMzt/AWEDMDcAUuWe6z6H1M7LkHvB6xr+e8Xx8cdfygEAXnDFAJ57sHH61jW3PQEAWCqae+5atrzdaoxzIr1yUDU9Nb5j1Ze3P9cHv5SHfcl+pC+7cdXzDnzuk3DPHe06iBzpS2Fq0cGVO7JdvU67zi4EJ+i5Of0H2lzB6/iuKScK2GpVc1YXKoM4PdvZZ7lY9NGn+GsQXqJjyNgEkb4UsAmN91DympYz8+Hv8nHLFX1INygAeMX2/XjgRDWN5UVX9qOnwQrt+iek6vb2/uPLoe5lfPeR/MYPWkfGFpsyp1rFlGdqz1X44D99Du9+bYcvYNCONxcTCtdFf/6hI/iRZ7206b+nUwLvfJWZOY7NlB/9FipP3bfm7725Cys/+66D/L/+yap/T+24FNmbXx1qW9T0ZVJ5Hf+iorvZm17R9GnPvvryjRfktGBuufqep2ai2TuyriKVwimW9Y9EPnU++CwHe2y8/BmtFx89ctrFqfPVn6/dmcb+HcMtP/fOB+eRL1c/i1MzZVwypHaBUcIHIk1OZVqlt8fGQq0+Xr/GRSOOdK0shXwe3n5781zvS4bSeOV16ab/DgTH6tjg+o/r1Ds/dRbn58IbbXrLx5ovSGjF1sEU7rqt8xQhCvjFJYw4nc0IAQg6EgNvSoVQN/J9MjMG0dPdpgUyEz6+8gN3ofidf1//QU4Fhf/6+Kq/yj7zJTEJIr0geHFnWi+O+qHTGdx289opoHY5tdvAbvfxbdfWLWlM1ireX7JFf1mcRangrQBwx2u3t/Hsdh672lceW0K+XL2SR5GEHJMYK/HkG6diSd+oR0o69Uzbxax+OpwLMdCThRFAjlsX4MOGgItJb2tXrzXdZCU7tc+bn8aO8kzHz/ctG3DNnLaxhICnKIq8MX8EzsmnkNp9VSivZ8LH55yvpakJQPQOBf/guUHVG2FB9K4eOCo98FWEvY+NmkhHqkclMq1PZRwonoPV230QKVZyUaK9Z9g3lsVjp4u1n6NZXr+etLSowI5wYOjySzK4+0j14rF1sPtD7ENfuICvPN7aHfirP3hkw8f89Zv3YOcWNSNBF/vk3bN4+FRnK/XruyfZFvDrn+lsX7GXXjOAl1wdzfZX8tlmWWbkRFqGLqxRfSESAvjUL7RXmaLuk9+0cWG2hPHhLN70gs72Mb7tM2dx5ELJ2M9ftXRKoOKE+y2L3iHc139ZxyV+jBhCayLk1OVV5lP9EP2tz6TFgb8wvfLzuG+CrAAAIABJREFU6Ae+vPKztziDmXe9HACQe+4r0f+Td6x63g989U/xFwsTuGIwvOl7JUGkyGTh1+aU7JFLWn5ezqvAW+h+/10hBHzfR9SbRhybDIKFY1PRTqU3FpyZfoTbsKWl4Z8wardOLTk43uLn2crjDk+UIgsi73x4Afcd627bSNcDPnf/fEfP7clYkQWRu0fTmK2lkhwYj+bzbUSeznb0pyY3FMWilWt25Tp63nvfdHnX712v1VtRGR0YzBYClbD3vfc9XLvc+QYYRgyhNeErPCFedsPl8OdD2AJwJW9KfzTuzdV+n4s+Nqt/GFtu/3T1Z7lmpEJqRiKlA8JzW59eqVipUIbM6sPihZDvBDdyciq4eh29oD+InJGm8wuV6K6m5+eD73y55ALoLqD43P3z+JFnN7+T/MYDxyD8CgQEbrmxcf7Vt5/OY6LWrsMTJbzwyu5HvFvxRL3mmBA4ON7e6PTC1Bk4sJERDvpH21tsdqRWKP6z35vHb/1w6zdy3chLudBLGnOC5euRafs/169Dqu9vdW+8sdlXdquYmvWWZpHzuiidFVHJF9N88KkSbruucdmetvhrftDGd5rEVcKCfUlnMxCdUhJE+mWpVtH89DqPXO3p3A6IEKush13eYyNFKWgtRhzANuL5wZUkyj1Bl4rSvttd1iXzJs/in/K/gute17z26D/v6cFjZ4roz1p4xysb53C9/s+OrQSRUd5crBRq9338+68eaOu533pqKxaLHrYPp3HDnvYWJ9XLUZQjrAt3QcrHOzqhLxdu1Wp2w5a2r+xkorhZ5gzA6u8HdajvghLmby/SGZS6qROp+qDrirrlkc/KH4Zf/P6uX8e2BVzXRy7qKc5GVK5EapOaINISK72Yn279oB92lmB1Wd5Hp2xawKkFrr0GZPRnM0GnkbKja8+2gdTKwoGBbncuyWbx2dHvw3XrPOT1zxnG65+z/st40nR+lEX9uxmRuOXy7kdLo+xmLCvYsSabMWMk0tTRF9XNMufXNjlw6cz//uY0FgutH99/+qXJpv/Wm7Hw0y9qbdrRLyzh5Tc/q+X3vZiVyrQ1MxgllSV+lkUGVl/zYuOtqg9KlU3YwS2TAUrtV7L5ykt+OfSmKAkird4BeLURyPR464nZb3/vH4XTgNpNjYp9ONezfSiDw8XqF7tjVF9O2ArpztOLMJyYk0Yii12OhAkhMOR0V6sOAKakqf2zsxGmGmiuPxTlGeBJ0XnF0Rc8pKVTbyBn1v7U9cNB9SGR0nwTWy+2nUQf+9r0Shm5VvzVXc3z8cYGUi0Hkfbuq/D+T38Bt3dYJ9JzzNhFqpH6OgYV8nYOsMILdVStIm+La05NEjU9jfQZexoLsETdiQ1LtfHkbQN1caUCgyLChTWTUtH1qcXuJtZ818Gwu9Rtk1CS6pXOddmmdmjYynSVKGdzLenNGu3oEhX5d25UFFynepekekrM1xzBJTWABKo7gQHV470vazX8nwUPNlzYwmv6mL6shak2SiC5Zw/jpqWnOm63cM1JcriYyrjsR5+xG269JE43RP0PA/oUr7Pv8ge++qc4tDARalPUTGcXg5Ejf/bCOo9UpHZAiojndGbzQfA0G2Gg0sx2qaDxUIRBrXyn5nZZKdt3Knju4qFumwRHyoMsGHQXp5olovvedw1nMb9crVBw6bZod4uSyReksgG5yY2onyQx4EKXUCt5rfBx7x1XNnzMr3/mLD53/zy2D6bw5Xc3L7b+nve8B+UHXoDMM1+84fvaoztwb//leGUnjYbZ2akqp7M/+FQJv37TpV2/jgUBDz4sE3JFdI9OSBTtWBNMF/qzrS+sCUvGFii7PkYHoi34bUsdd0p/rfFVG7CHXGxiXWnbRgHVO+xuZ9UEAFd0PyXpSpFFvhjdog/9+c/RdTZ90o3KUGfVZUJRkdK+8obuUV1SFNzaloDr+Rgb0DuNn+Tp7Lr1etRfe+VWvPUlYxumVN20dAi+c3NL7+fNXcCzlp5uo4WriVQavqO/akgjmZRA0fFNWwe3Sn1wxDehkR1eVA48OI0dzx/a+IFtUDNMIX3Ivoa+rL537NRCtCtE09LiFQPW1WBhWRp9K0d3MZXX8KS7XNAjcv348tANXbYIEFLNk0w6uoNSe/pMhB2eXA3B9fSdAPKvrP3zb0LVVpb1kkYLRb0jFb0Zs3JRVRDrnFsj/SnsGc1sWI826zvwy61tRiDSGSzYne9DLrK15xoQA12sp9sFmOu4IX8U3vSZ7l+o9rmprGmp2t/c+h4MpMO9w1fS08u7ztg7Dqp4i5ZE/V0vSoHa0rL+A+3kbLB6a6kUXXtsqXPtelG4AOZT3e97evnWoErALVdEUyMS0N9fOxGWuSpKx39RY5Fp+doe9eK6linunLpd0NatggkrWBULowbpNweugb2zeXH397znPZh97xsBAKJ/CwSA2fe+EbPvfSOmfn6DkhQX8ZYXqj8Y+NXM11LBVJwWx7LbYG/tbOelVWpdiWXCSKRB1ORESpdOoTHDPuqvWg6YbAMS+kd7g7vgVIQDAxnp5jvX5aift7yIX3Yf7LJFwK7RDB6tbUm5ezjClfObaHV2SjrXdXa0cirJUI+ZI2IpxdXAXc25oN3mQsdCSF+hv9g45cs5exS3LD6GwVt/HwCQuf6FeINUAu/1h76A26ZP4KbRveE0RCOhsKOcT/XBD2O8rHZIm7aBgW5qIjx5OX2IS+vbFeGCZABAfzb4OHt79M9n75L2797WH13gtCTVUFvIdzeNbvUN4U/t7qezT04FiXKn56KrlSYa/BSlvaPR7eEup8YLoS+IkHMiF9ooxRIlS/GdBS9zEQjhQ95dnmq6+4iwbaR8b9Vsnr3j4Mr/2t2YQ9QXY+gf31hL8WIVnYNZSafkk/VdKRexoi+RV0Q8n10sB+9XKum/E98iLXTYOhTdiEzZkbdb7O61/FIBVxS7z2c5NxfUSHv6XPtFWjtVz5sSmi7rUU4r9maDY6wnwuL2F5MHQaOsj9oW5avmDf29EySMWCxv5WAPjzV+/Z5+fG3wGSG8S/0F60l94b1kWFzFIz7e8nyIr2ZiFK6Pmp6sGNT1c6dPK3mLVkS5IhkA0in5Z/13Pp40pVSKcI1R2Q0+94VKd2/sexUcLJzrtkkoSsHUbJejo+3wvPC3P2vHfBs7a3SrIO2XvayxjJJ872hqDnyP8q3TeKFTr/vP2PJd+M3OFaeC5y0+2fV7rKiPXG6yQ+PKwmkIK8xBFAM6lQhLt21EzUikH1ykndnm1fpVi/pc2TqUln7WX+OnII2MLkW4WrNHmjkfznZ38gqRwZnMSJctArLp4FDf0h/dCaivu6nui+JFWE/s2EQw2vvISX27Y8g1laO+kWyVqzjIZu6/emFUNtxbugBvpslNsm3j/xtoXIcSAP71+T/bVj6kqM8OGBADXUxleserrz8I9/yJ7l9IrPlBH4PqRCq5msofcToTXU6WbkvSFHa+rP9MPTIVjAJOzEeXByjX0bK6XWAkfCxb3ReulvP8naiTZbUQiLqzk4u4Ty5FW15LJm97aOri7JLi1euW5gvdZghiw0izu6//MsBuPODghxwo+I6+c3Ij47WNMVScr//28HGI/hBqI/prfiCoGomUhlr9bI+Kt2hJ1BeQk9PB6MuJyejy7pqZWQrao6q4cSP7RoOgb0e3K6FdFwdK3W/TJK8WVj6TKL+v5lkHJ8LvXd6Jq1TUOAYrvbVBsz6rpBR3Tq7mC11GY06savVvzgvhZvQdl2fh5xca/pufX8Sr577b9Lk/8s2/xr3TrY+wmRxElmolqVQsfE75LkSXaVUAjBiANJGikchgCnOlwKkG6xWDVaEs5d2ZsN3aQDYYBW5ys6tEReoJvG57BQE4IUQCYwPBa+wciW50XHelk0iPQul8E5a+X1wO3C3fzJ7fVTwSqXtntnpJMTM//e74DX7q1Mcfm4C9+4rG/ygAK8QOJNy8wHCpLGt6qGcXxMi27l9I/yU9YJvzXaoZiZRfVcfvWruYRV1oeDAX/LK9Wf05kdu3BO0Z6DI3sR2np4MV+efmu7wDzObwlRB2rOnLWqjnCfZlkztKcrFUlPVKpcjFU7RmrxWrFtYY1fMHiopvMnVfYyqO3gVl0ej+t5tIDzetImL3DOLe/uaFyNvWo29AZyNbeqsHrIpL9jsuz8I9dzT8F9ZIRDkqtAE1I5HSvJafX1bxFuurnZRRFwWVV2T3pvV3n2lpSCYdYUAtv1Wq272bi8v4gfnui40/cbaCep7g1w4tbfTwEOk9DtKKi1rL5M4kp7HY/qoJCFOTIlWp/boaF8dX3z/B4WOwvqL7y+eO8jT8SpPUp57+cHNLNZbb28iu2uyQvAAyLF994HFYg6MhvqL+PsWvRLfGYSNqhgvk6cxylBfs1Zyo60RKU1RFA7b9mpUWNyyW9BRd9ro84URPfygjkY40LbSYj/IKq7fDyUQYRG0bCtIErtnV/WKoMJg65qzsa6n1ebpLG6V1JwMrFKyv6P5DPpsZhcg1HiEUuV783Pv+uOlz212djbL+PP1mztbq+FYUzGsv2H0QPd1vnWsUg26O1Zzpq34/jcOuEXek26S8u7FB/avS5en8KFdrysF713soe+EEvxk7aMeAAbsJRSXKmwd5Ws4ypNh4T9aczlamLsgT0v/ro3skNAphpEvdtHgI7vnj3TemBaaWuwKAYm2QVMXk4bKVhsjkQns9IyoPGLRiUNHq7OBnu8ldVhSi/q6F9Itblv6RSLnkUDnCFR5yzuFIb5fJWZaFtNf9yrqMtHn4ll5z8klUi3Jhz4J0vE1HWFLqYnIn75u566FyunufyiaIIv0QIp6FVF/Hi0/bXZ1t7rh8UPJKxXE75izBvXAqtNfzdQ/zAxAat5O+mJKjyu4NajKJHQdUvIWRZpaDjnNmQX85BUsafYsyoC5JU/lL5e4uJr4PVEI4YVLCRn1hTU/O3M40bFF2d/JWh/0aP2O52Phil8efKqoHEowYLUm4blN1AODJnl1AiKNk6xG6V1utY2m5er1UEZ890rsXIhNCqcHa1x111ZdGfDfhOZHWrmBFWWrXZSrewkj5YhA4LhtQbHyLtHVMbya6DkSeyUyLLt/XdfD8hUe7ew0A2ayP+sKaoZz+TiAqUXZ4vVJ1gqE+fXfKZWn9gK+4lE6nhhWnVKiuQ7kRcdGfydT9sbW9PA2rdziEtmzMd81dWKPyNH3O4lPwy4WuXyc4pg3oU0JK8wqDkp4sNbYzeIP+LSrewkjytofjBmx7OCDNkgxFODJky4W9u1yl7peLeGZfGNPZwc/pdLIvbTIRYcHA+eXge5qe03envGrAxYBRg0Z6FZfc8jXXx6y/vQGX29AFq7O7/4wrIgUvP9f161BzD/UfgL2tjQVITdRHSQ2YzYZJqQlKIh1PqsAfxh1Ap6L+rq/ekcOjp4q1n/WvTi1XgPqnsBzhtJ6cwG3GCQdkV5VfMndaJ2wiwrGgpVIQRJ7SmM4hX9ujDKLbobp6Q5R7pjdiAd0W9zJWmKuzp9JDHe+D/K/P/9mu398UvoCyC3ZZpBDKmHitjUb0KLYA9GfMAVAUzlaOBdOPlZNPq3iLlkR9L352Nhh9OatxYUHdw2eLqE/hTkW4l3FvJvjkc13ueigyWRxa6v5yJAeRKmqRbUzPyNBAhCPQWak2ZH9OX6Auj0TmUubcsctU17CNuETuWmYOAIcqjEHuvaUJoFza+IGhMPNcAKA0Mntm/kgoK+DrX3fUm5g05Jozna1mJHJhKvj5zFMq3qIlUfejFxaCL3ay251aQpBfDtrjRTi91ZsNL2ATmR58cehG3Nxlm/aPZfDIqeqo+O6RLiPbNljCr332eq7qUQbMA70pLJSqN0+XDIcfRB6bLOOOz57b8HGrdqzxffzkX2+8gvWmA734xZeOd9O8thQV50zrvsyZMgOhUhhB5PnMCKzxnRs/sIEf+eZf491Xv7zlWpHW8Bi8uQtGpnhYlrpKEg/0HcQrBoY2fuAGhC/gw4dtwuyGQSdY10Fk4a5PApXVd1LC91Yume6pQyh86e9X/i195U1I7bmq27dtSeTnivx+BuzZK+QloBEe+AuFoDfIl7qtE+nhmfnut6zaKQWOo/3RjZLprs02m4/ujnXXaBZnaqPxB8fCr5N6eqaC7x1rbwesYsVf9zk/X/gkxr0ZWPOXAy99W7dNbJmleDTD0rhjEABD5vzUCiNj4Jeu6Idz7FGkmu2fHab6BdGgAKTOEgKeooPmhvwRoPT8rl+n3r6yOYOARug6iFz+97+EX8w3/ffKqSdROfXkyn/3veEdEQSR1ZEfO+KOdL4QHF2zBf1HWjYVnJRR9hv5YvC7LxW7+xz8ShFzdve1Rh8/E+TmHp8s4aaD0exgoLu/tiLMTNvWL9UH7Qt/tPfQ2WDHjQPjmZWt0i7m+8A9T81U/8NO4eZLB5u+5n+/9wsQvg/3xAMAogsifcU5i1n96/oSrFrpQYRwI/C1Bx7DD17xnO6b1AJ/cTaS9+lEGDU3mzmTGYW1dbey19dBpDPwDdnGsuuuplEAWbAyWLarta+2OEuwIk/yrh6QURZaBlZv2eQYsO3huLRrTibC3DA5eO9272bfcXBN4WS3TUKhErSj6BicGxQyoaAg4efun8dnv7d2RemxyaBT+9tvTOFz9ze+aP3ANQP48e8faft9T80EecY7R9L46P9ofGFwHOCG36put3pgLNP0cQAwdU/1PE350eQw1xMbVJ+PFc33sBozOCJQ7UvsEDaUeKB3P15zw4u6fp2W2HakizGeOFtseSZE/iS/83TzQamLPe/Svg1nHH/hfR9u+fXWY1sCrucj1eU1LQy+navuha6/KeHmRI79xb0AgMWP/QZ6HvgKAGDwV/4CmctuBADMlpfxnH9/Dx7FG8N826airiw/2GNjZql60gz16w9UnrEzCCIv2xrdNoz9WYGF2sCfvMimE8IHUiFsO5KSpvNTqejuLiyhd5GDilPg7GwF320wRTxiTcNCtaTXxNQMjk42Hu3tyYiOgkh5cdjUOvufp1LAo7/f4mxHfcVlROkn9a9D9dbSFUdzBJfYADK4EQgjZem37vidjp+70epsd+IkfEcarbIzAKods3Pm8JrHWwMjsAbbPy+b+ch/TeHrTy62/byf+dvWBw0eeO+VyEQU1Hn1felNqD1bqn2uBjQl3EmP2i3BwM/8Hgaa/Lvo6z7BtYWGAPBDv4D+/bdm8JXHmp8UM4tBsHNhwcFP/FXzhP4fvLaz0Zh2TEmrmiciLLkyI919nu9ygZHo68e/jTwP13fZprl80I65EFZ7tyqTtlAse6FMfXVEwdte+Naf4/lXvHnN3y/NFWFPzwMADu7cgnSuf9W/f+vQEnwA336qvbzGum0DQS7r1sGQ8lrrfUTE+yMWSmqPQd0DFLpvnpSqRZEp3XmnG1j4y1+De/5Yw3+be9+b1vxd7yt+Cr0//Auhvf+9R1sfURwQC8iICgCBaa/162Kh7K3a0jYSJixMMujcSmjmjJpP+O7DS7jvePMLoCV8ZEX1zm+xmMF9x5tfmAZ6bOVBpFwjMMqdS+TE40K32x56Lm5eenLjB27gyHQwXXnv4Tx+4aVjXb9mK5z6HsKaTnoVGxXdU7kJdzacIl4/7+ja254AALgdfhg5adV/j6Gle1qle6BQtcQGkAhG94sVvZUw212d7Qobbi29JeOtTd+oHHkw1Pat1EIVwGd+af+6j/3pjz5Ru25Y+Mzb1n/s2//xNM7WNjOIMm0jKDZuwMEtTClYmdggUo17jwaLM15wRf+af5+YnMbkXPXua9sWgfGxtUHid55eguMB52bVJ8VuHQoutLu2RFfWRs5FXS53d7H3iwVsK3e/o4McUKej+yggNCeHqdh+84S7r6vnd7ol36K06n8x5JG8qMcW1C0kqG3vqegXOj1TQaHN4OnpidbqIB4Yz5hRg69FuncFWs8908fx9R7gV34xyAc8989/ifzMBIQADv7M7St/v/DRW6tR/zoLZDsTHONX71h/f/DvvPeZLb+qnAqiI6Az4gbJoKTjSIPILZlePPKq34js/ayQe9KitHCmUbJ+ydmFiVqR8W1DaWQb5GpcUxuNOT6tPpF/62AQLT1zXwgb0LdInsryul0dLHyUre4P02t3ZPG92ijy91++9gZAlXS6WgFL17XRUdDJvihzF4AuKix0OCr+0KlgdfaTZ4rrPLJ9UXXH9a5f3cxA9XVVXVz/56fO4MGT7e1C9t/+uLUSXd/4jcsw2h+jcQ0T6gU2MVFcxPEX/wgy196y8ne7910Df3EOEAL2JfuCB9e6aHfmQqhtUBXfLRWDa4ruBWSq+ZUyKk/cve5jyg9/Y9V/pw5cB6s/mv3YgYSORKbt6sE1MhDuXJ7lr7+VVzYlsGd0/QUsQlRPrv+fvfeOk+SqzoafW1Wde/LMzmwO2l2tckZYAiQkQGQhRDKC14DBWEIEm2CCsZBJxpigF4zAgA0Gm2iSBAiUkAEBymm1u9o8uzu7k2Pnrqrvj6rqOj19q7pv1e2w+73P7ydtT1fsqhvOPec5z0nHm29VFEjMrJV6gXQCm8+GH0nySvikoLUD0YoRubKnda5Ivc0hkGYEfR8snRfouIp2bDnYwqJQpJOH7FBia638dCzYm3nwQBb//PNGJnuGV//rAc+t371uQyBb/p+efCNi5QxmlF5c3X2T+Al8cGSmcFwZkZFmZ0dJhpLuA9J9nC12wkipSZVzJA99WWJEZnMGwPtJTUQrHQJmZg4LN7+75vu8EkWJ2X1l2faev7kZytbzW3F7AGQakQ2MSLPFLJ51x+dCeyO3H87joz875rndqRCSKRh4zZcOeO73jbesRzzSeIuQ0hfsk+RaIPF0cNL1dj4oKNIcBvQ58byxYidjiBvhH9aTR90BcvdkEVeEPmNjKNjh5FZWDKJQm8CJVML2hICPgj5D+cLErTHyzWX/isLY/wSu3vUtAMBXkq/CMebN7X3icLXH8Lr8d3Bp8X77r18Gun68nAGDiQFzHl/6C28O7Bd/dQij4xloKsMnrvEW0v7gD45gLmsZBXuPFXHmutbot8pAu21I2bWzTaP9VdYaQYnEk2dyJQCtUx4BWlsTvjx1mPv9tNaF1cVpFJQWcrM8INGIbN0K8t49S5USdn7IFY2a/U4vP4VLyg8CAIzSh4BIrOHryphmnHMUWkDK3jHm/vajc62r5a0pDGW7ow91hSx7yBiiEga38TnXEN3fIEdLLtpDwo9H5FuR69WDQIBClE4oNygnMhZxe2BUlnXcJmrRQsBiBOvu+Bg2lqzSj0PROH6y9Z1V2+978jAUBhRNDRedOlK17eV/uAMRO6GClUuByMHM5qowRcEl27xpIf2pDdg3WUQiynz3KxD91vFM68aoMHCiSaEXyE3ES1efgYe/9iNARMe8Kd79ZnQu97xaK+uB25dlLYxalA8+6V6+qxe9f/tvAADt2CEUZicRUTT0nXxmZR9j8jDu+upnccWn/7tl9yjN8lMSreOZbT/s8qHW90exZWW1IfjQzkOAqcNUojjv5FVV267Zfis2LdlZaEvXAsmVTb9fHowWhDfzxPZqJRlYVQAnYpkIOdAqAytx9k3BvCYUWZKIMTbbjhV3eyacZtRojrJgRnjFCxfwUTAyYTBpk5M1M8jmKP7n72dw6yPzntsNE3jVv7ryKxsHY/jUq1d57u8gkp2vLEfO7Z7Cs1+3pmr7K75QwlLewHkbk/j4K6rHtuk/Ev9twEoMTI3CNPJQov4c6zPWJnDG2vo8bLqgSLZaqiUgnKFbNMFINuplZ99www3c7z0hvShIkyYdYpvKXCPvHi/gLV/30agk1KRLP7Hbc7fvX78RK7rlmFbG1CH38tkM1BErc713hJ/BbuaWsKT4JzHJhjQj0siLi4oGhUkG/As2JXDj1dWD7w0/VjG9WMZZ6xJ4y6XV4Z7ZDxyB4wOIFhYANG5EOivQULA7QCuyEFf2ua83FlL0WwRUi7UQkP8mG6rKKjfWhIp8DaA9RmS5CWWbHiiFK9NmBBTrpZN2UbLXRPZ09/vdi1WLXQddzBoni4hiO4lUNTp/s/QQkLf0Z7Wh2nDyD/3kUSQ8MrNsLSCMghx6TFQDYK9JkvHji2PYIUObRMjtBc3yQ6rMrEhkxSVqmLG9D+HLR/4BAPCV+J/j19E/89x3ctHbETG+UJJmRJpFN4LWyMLZMBm69NZR1wCZ4ewGXF2ysrNPGoziDvvzxhW1VveNV3kbhmbWlTEwsmKGr6YwlCSp1beidNKWIddaqpfwIxPUSFjsjPKeSMZYhYfaJ6mDNwJ3IJU/nOqGiakl/7CoCW+heYUBQ13iz+JV8e8DEPRyLLunQMeRdiXNhrRXhUxyZOD3u9yB/Lmnu6UXHnpyGgDQFyvj5JPcBW7fnq+jkWeqDgxDn7KMSDYgWg+481JZ+7s0TNuFAAbas7oLjE6QC5QKyVNSsx4PNTVKEhfJ3Tt/BcWw5OTeHP0NVlz0oqrt3753BoAVzr7moupsnlsfmcdc1upfDx/I4Iw1ctRQlGQ3+aO+waxENGSOV09kKys+PDDqDtAPHsjiDc9sXLTbJEkaZlHMiJQSErbPUW6B2rBO4oatHO8Y8frFOkT3LULuIx1rXdhMtfmhzXgKB6aKeOnn6sinmMBln+SHXga7NNzzwS1NuDN/BK0bTRdwhmR+RjPTdD5/jRtyzhSsqElUY4iQiic33gg8NZ7H1mH/CYD1DFQ+K12CaanUNRQ0fO8Y3ZIm74OTLjVi+1gezz61dbSo8DjRrMjjwxOsqUDRXhcnJMaztQNPVpz1w8VRfOAlw1XbHxnNYmy2hK0j8Zpt3/vTTOXzo4fkeQKrkp0aWLWYxQJGSuF1lUUgMbGm/i6ysrNnSN3caVFXFxn8zIKY3hmTqAumSuqvB6aKODAQZ/K6AAAgAElEQVTJfwa3b1+qfN53rIjf7Fji7peOKzh/Y1LODQFIRxjm7Ql/pLczJDtM5j5wU+JYqRvArmM+moVOv2AMT45577dxMIpEtLWD+JRPSMYP9xYvCnXdYsA4YLmDxZ0bRcpH2ifWgHGtJF0jiyUEM5mVCOBUKgmZWmzKMqCYAsdDquud5yn1Q6tqNntBdnY2O044qcxUUOFmSHQHsxjxhLPaZ/G9t3lTReiQlpFYCMGknMgGEkyV3kHcl94C70C8fEg0IlvXALvJQNyTFPsJTNUq3kiVuoobgIzFt8Or7EnIefQ/e3gBX7lrsu5+Jd3A2/7zEHfbySvj+NE7/EtNiYAm9Cw1uUZwwyCkM70kb+BZyut45Rf49WmrLm+avvt9663rce4GMUP+2zf/E/7+yndwNQc/9cMnYZomlEgC73vZpqpt7//+mNB1luOi6L0Anhv4+KDjfpR0mVaW8WwFxje8CQcmi1hfh3ai9LoeEFFBYZbugzlna0y2W5/GRn9KwbF5y3jcONTaMFxQqAqDbpjoSx5f4fe6aFb2peSuSnneGYk5klrPAHSbp6wI2gbUyZ8ry/vBhuoOeg0lExom1hWnpF2/EcgzIlu4irlkWxqP2iHtZ24Te9lK3zCMCcuYUvrrZ0NSqCqDETIMHdMY8iUTa/vlDEC3PeadAaqhjD5lFgBQNKOYN3u4++0JIHkzl9Wheww6EQ0o2J3bMExML/F7ejKqtMz7tmEwivF56z5OXtW4rFM9zEoaxR7YnxU2IqeNQZy5Jo7TOPybqHYaTBPYMhLDSSuqf+/7fzAWKhL3WPmM4AeHQG9axeSS5UlLJTrbayKaVDB84N/Rdcl76+5X2vOo+/nwU4ic2rjPoSryousdYUi+8VkD+OQtlubv007qDI3IbNHA2Ky33FClcAAzfcfOzcPyxhkeRGtn14PZLE+wdNuU9C6Zhi+RDWOa2PxMXSVlSXkTAKAle+G0RLMBTqS+OFepj94qyDMii63T+BpfcMO3U/OC4WzaOAQf9ki3hkMzpVCZ1XnbCN3uE9oUwSwJ7f/sb6o9Tpmcjpt+vhcAcPmZQ7hwazWH6mU37YNhAHoA19Ab/u1gQzVx3/ddvlgqALzrihV4y6UDnttFMblYRsHDy5giPEhmmjg8w2+v6biC3mTjBgoNCa/qjeDGl1cndX3+ln04Mp1BOhHBDa/eVrXt334zjfv3WYle24+IG/JP6ZsxNlfGaWtqt11xhvfiSgWDHmJk31kOUfIQwXUiT10VxW6bOrBlqLkTdFiIPt2HSufhOQ14yPUxl9+qj+4Qu0izKpKEwB93u4mOkwtFjPS0n/7ywP4srv0GP2pDMT5XwpU+JR0f+/i246oWeCcsKhoBNXVlGmxmlCxiBPSjAYtN6szE6Zi8d64Mrq58ZtH6TgYlEkWkxaLxEnts67Kzf/tUjnzO4B0C5UdMUmTeLIsZvg5nKdS4YD+moqTEmnzR7VLLPU4A8PXrvL1GlQhvgFvxW4HHWQ4JZk32c0YvlqeV/GL+rwFmYvL+S4FL/1H84h74u++N4U97M3X3+8StE/jErfzSca+/uB/vf/EwdxsPu8fcNjS1pOOiLdXelMHXbsXUYhnJmIKz11V7DL9yp0tDmFsSX4TFmSXmLIqwLS/N+Nzahq8f0HugUk6kNJlIi18i6nmQjVXKYfSnGpjEC+7i08wuiF2ENpUOoQPsJok1h2fLOEM04bwJ+NmDchITckUgfXxE6G0cH4lCKlxDUiYvVYm58yero4O6HL0JFTN2dvYZa+XlF4CE1Vms/nlZNIZFVU5meKNo/7IvAGZJeHRsTswTaZCB18h4h4J52G8PeDJkfmStUKn+oSjC/Ap67MeWiRr/8v4j2H3YMube96IhdCWqJ+jU17KACaQO3gFAnhH5/sevQ1dxGhNqP17b9S9V2+KsgCSz7mnB7EHZ5Hsbf/3EopARuWfKNf7KHN2ZrSMxbB3hr2qTxDuaDJAxrkIP1I7Ctt6ztYchVgqjGkGDZjuPuQbHvmlJXjXTCY2116g6YqzBTAP17fWC+7uNxWmha7BUD8w5e+ES1oiUZIQWyPCdLXYGf3rXhNunn74lhf9zUbX6xwe+tR0MJpgaxcdfu7Vq29u/fRi6PR4XijrS8eZNseYThzF0jsRsdumcyCYpRZLTKhL7rT47XvlsLtTPM6CgxZ9SEg3byIbTKp9jpzVAXdGiiBqtrfwksYW3rnZ2TDMrmn/Cnph4GshbnkzRKjtu1FeCESmpnYVKTpPRxxlw1XnVBP/lfy/H1NfsQyULrfUXJwCYWK1P4DN/vrpq2x2PTuL+XZYH7S3P6sfmldXv/t3fOQJAvBzdwpI7qYv+nHiU/7lRrNt2ARbz4iZZWL3TA8aGQMeFbW7Ti+5vXczKMjis85hluYKmqiKmZXl25BGs7H1e3f0YqRpuGmLhx8i6U1GYu8f6I2zoUlLXpdJbnZIcvET6lMpqyzve8JpTkC8aWDsYw7nrq70+1MvebBW3H18rbwEOyKwCZSGqMhR1U3qUPKYCTvdP+KgdiMLIuJJ/ek5MuSVTcJ/dZFYet7Q84xq2pbE9dfc3Zo7hpMJ43f1kQp4R2QDpUxZimgpn8E9GBBsRIZebJcGJo1KyJrwFWJTE5ehNaDhWKga6I4WxwOUXHYMgTBdWB1fX30kI7m95/pnVnEDr75M8j3SMSNGnYaruEaJqkAenitzPjWJs572Inf8C4eN6kgqmFo3AzqSCGYyPWHlSAa/bl1Yxbof908nO5m8lYyoWBRYku8ubsZAtA/BfTZgqA+xAjCKoE1bc86D7h64DWpjhX1bRBfc8CdGxvEmgSdcpThUdP76xogIOJU1Vjo/wsANTMsXBlF5G0QI9qymjDJNzrpxLFWG6oPwfGdSiEl1z5SfuqXw2SB1tz/vQNCwpreWLS+u1rUwIol1T2AOvu6FwsyiW3BKEf9ZsZArWRBVkuNpm1xwfTIu3eud6wZIkrGOU/sbDxq2CqAh8MsREPJMxuZ8bxbzZjWIAuSJHHieoBLoS0oAI2oteeJarLvDc07p89mw/cgUxb0QJ0YZCxGrKDa1qK9aJ3RT1tnZIuRU6+aoSdXjDIFdy392SYGSii6gGxDrFtdooZAroAigZ1ruVHSVPE3m8uMyFBzEcTUEnD43szGclJvssEcpdAxqD2sYzcMln/0fa9RuBtDdgllsnFEsrPcRE+QdkoBLVmnNIvDI06jRJq75SiMlg3na754NwkezbN0IIQLNIB7LOBX9OtSdX7F2YJN5pBqjjF0ceWgBexIyTxBOw7fQpM/V38kHQJtudcIerXkk6q82CaFGeM7THq8Y1L7Ao8TIkBAn89MF3SGINFV9vRGy9FaBGwJiHioMXdLK7bnTGM24YTO4cXmliko1Iy2NvIVuQd3Klx12gsZiY3JRKfmSEyfOOaiNu9MyMdaYiRUs5kbKys6Nk9RETXIkwNQITNo8tIvbzo6q8XmFIcvXHVYagYkGObmImiBFpP4Ig8kDOwcbssQDHNheitlx3nHgbBCdm+uiCPMY+ZRbRAJ5go5JMEgyzRuNlRmViz7jrSdvtVyWoA1ASfMY33FC/bjYAKCnigRUse2hG4kDJtnI6xIicJEmS0zKVo0OAdilNERsQlshYWiyXARw/guSyW0RUAwql4JJeXqD6xIEcIB5QEm4teyUlWIiEAU5/L0hcPJgJl3PLtM40IuWFs1voui8Sr2dBUB3eJOmARlasxmVBoiZVWVJDK4XoQ2W7M7YriGSWZGeRsWX/BjiD4KEq4UQqgpZgJMK4nxvFBvVgQBpJuDd+SfSe+jv5IOjbiRD+nNYhXisvGBLHCory0VH3Gvt3CR2rkrrbnWJEWhJlJgATSxITEsKAekeHegUnbmrgNDuzRjYUuQavo9lblkydMEn0S2Y306fdvqXP8yXgPGEyWCMbk1qB3MyTxXK5MxZZyyEvnG3WHwBmi1mc8YuPh74W1TXPimanUg+gLiYTspi3MzllNFxJ/J+sIPdKFpxuHCbzjiXk6lkxR2chGiDV2YYhSOAZ7HIHXtFEB5pIEDSpYDAdQBooZK+/u/jsUMerAaUJVvW771VWxadmoVnmg0nipVTztqFjFwm/qkM4kdZi2vov2yHh34EuN0I10i0WraIJ814VvToWstOomxTOpgg7llWD3Kigc6aHUG3W9Mkbm8ycq1kqnAjcIkjMj29dh6F6YpmioBFFfrGpCpY2kvgbj/fav44PM5hwtJ1Y0ys5sca5lzDvSfC99BAjTtQZHyeVDeIBqhzMbX4zDkyLDyxha8DHEE6jMWhCz8P7XOL7g/vFogjesHnOkidQuZObC2pE6nkx0Xez4EqYhG4E0iTK3L6qlztDJzJJ0mtTcbFOTV97QqJe4HGJJpkEtM0UwoTilkEZcMsgU35kI4hG6Vgur/Mrqrtw7lSTQd6vbeHKNkI6p6i+Hou7ml9qyl/PsAYSf2LQqh0155FylqBgoRJrTEOuF9V0Mu8FKxFRqIJPtEQmY9F5mWZvBsnk7N3zNazuE/e6hhW6j7CgK2KbCxvQgDlM6hmPzUmiQshwqXMgUwSZggbLmGiTYcSrFnZGkjTwlEjItxGx9VZgmlSPGl8QCyF2J1U44flkrLO95cshWsGtPprVB9zzKhItK4XYBiwqlvQ5t+SOaRML8jyGjDpaEp2pSCFv5BQe0YKDSlJqgvqUCiGjK3GxDKzjLDhRF0xCJw/Wh21jYvpo6OtXwbmZEAOLaLazWiVRInatw6Ta0mHByksOglT5CJYM5WLcGAl4pO2BDnj0APH6DgQI4/tCshNMNg/MgUkzPwUXcIzKUXVInWTKb5ta7AwjkpakFfZ0mYATnmeSs52bDumuLrMpp6VNNyVR4KM8N1b5bC6IVYOi3HhNot6hsnK9e94VHVATlAOJv7Z12dl5kta/IJjRZ8xPuZ8Fw0Eyh11ZHSvUaWxeZpBzOHkNXfEwOpEr6+wnCGfiDpH5LhpqXUmI9wNdYoYNlR0NIkF6QN8YSOIibCSzn4WV+AnWapNR4rmNSDIi7TYj3StuAs1YdipEFouJZmcTjdzQjUASDGK9F0WpSU1ClhiO84Kc+2yeGqAdGn/0QFXilUTIXk9RRYxkTJ7ATKUkKAAjJ2YbRAh/JSkxnM0YSeyKnODZ2WggsUbapUgoWLDyF4yCS0bX58QysEJEbmvPJes8Ie6pN2l1xkiACdmhL+VDJIwp3WKTYH20vhwlM6jWo9jBBjFYjQCm/KQxWMUPahXWqwdCHW8GfE8zVA4mKylTsfLY5T5Hpfrk8hB3tSHV1PFvRKrEa9MToOhBM0CjuqKi8UaVS7sznnGj0ImDRQ6aY0QXyfwfdCzhoop/KNYW6X3I/NX6omvYlqdbW86wUbQ0sUZWdjZVqU9HRXUi3cahCov1iu3uf672r1JnbQ5SsSS+AHBCCtEQRcDNvFhpqWbC8Qz3JcUM6kNEjHhS0CtuUgM0wKQ+rIxXVchoFVarY/V38kPAJlPV/WT1nybZ4M2q4KXQZMCIKB+WPLMOCWdTpAIklzUDcRIW6BUcD6jObIc4VhvHcZJNzohxLnMNrRAhf1OwEpnFzbS4sDKTZs1JV3YIC5PeO7YRnTeSNABaHKcgqMVlUi0sRVBipllyAiHQrmG3xw4pbBwMIqdj/fbi47+TeEchYb8O0Zrmkxl3QCsLGoK5Iv9zo1ihTHTMxCuCoKXKCmRWNqRlZTrZ2bLrBjfnvegFkpWeX/TekXsw5VMGHX/C844p0kQaZf1gZ4Trqo0AQY40aUfx4yuvRjwMUwdOkrvk08Ik5Rll9jOTjimC9JbNwzE4XNj1EiV+qDdbqtdVIiSaRa2bzPpS7m0Pd4m9MEZiFUZZrOqFTOX9jpD4CXELMm6flcJJxciEMxaVBBclcTJCiiYq0QmUfm4U+S2vw2gAiZ+wL+/B0nmBjqskQgccDCl1oiCp4pMDU3pioPMbJfdzSseZEQw/VmnkBnWTObxjORMa1WFc1Rtc31UmRogRsHFIzLCtVnc4vmpnK6pcI94ZS2Xr7vcmKf9Q4okNdyxlgkbkEuHOikpX+0EddsseKr0r5J1YIiQyQKWdqS5MOgkqgi2UeIuYoFhvQnOYTuF7hbRVRZgCpSFuYdauLrF7PHj5OUN6zC9EI7SfxZKgh6tYovWIxS7ZnWTcz42id8/XsElwkgPCt995syfQcc5Vg1bySJFnlAhQ4YeLSpEjuTOdO0RJ5lr2r658VtefInhw53kyqKzP3FJniCknI8G9id0k/C1YVbftkJ5cJvVsLtaT6FdUYuWqMHPy2Ky7wj0yK6+yjE55zB3qiRRu5ovf/AgKf/pl7QbTxNR1FwIABr94b7UOjw1Z2dmDaQWH7Az8waQoAZbo+glWrFmySdZBxZIpZOlbuUlGrfVsOo4IUToBhaLJjveE72S64LKZ0dq6gs6xKMnoiwZQp36odC6eNVO0QymNQwGD3sYBKagTsY96bmVr8IkWTa+D/lQEk4sl6d2SVq0wSmKC6yyWhJmzjxHkfHHOFvJ4C7RYRECVK+mgXqVMTqyfDHRFMGlLFcmuGd18yB4TGKxBUe5z2D3uNpRcyUBXgCgOD0qqD8bkEeuPuFi+BF0wRCMSi5JQR1cH5RBQCD/98sEd1izg/EfB+64JoPO8LuhBqBYBFvv5Mkm8sqLZapvD4mEeiSloxNdHeL6WKM2AluITrVTQQxZAPYKLIQBIK0uBVuLddjgo6GO6LHpXsANtBKUx7Z9wqShHZFkcFVkoOadzsOTE3iWfVyEyH2pEjNMdWUc8l6ETayQVSyDOr1wYqQeJODzrtq1dgpGWDMnmllnhrBWoyt6Xc0Y0w7lRIpWNyhKdp0qPq3bAEmmfPWtBaXXDgqUy/WDqbls0jc7oH8shPJIYM3aaOWNIXfk2HIv04Vi0H7NaF1JXvg3xZ74cX/3w33CPlZWdvUi0uBazYkarQTykSlwwLCexP4h6vLygak5WmDhk2J9KmIo1sg1gGbVaBVcKNLSyfkDMOzZEBp4hQW4vAOTNhDCHEwDWD1iGSCQg4/0H+VcGOq6CgO+HigjIlzaSe75mkeD1mcOVz6WDTwoda2QX3D86pHa2QZ6TTIMgDDRGw9lifWSehOePu9rZHdIm6mGp6N5nVqYfIuP2DyMv5uU/ba27oFstMbGGVSX7dKZklLDJbBZt96ppIvH8N2BL7xBMvQR11WZENp6O4o77MLabE+6WiDyp0iHKr2KqCtM26EVLGykAZI1zsswna7XbRm9kCIcGkz3ImjUfAkDsWWbyRJhYcEEztVjkfm4UZ2qPYrDrCuHj9tjeFdFMdAfRwGUPLTRy1f2TReSW8VPzOs2EN/HkWLWXKKYxnLQiGNNedg9SlOCLO1+QRyJK/le6BgDstv/oDGEOTVVQsK3H7kRnkAi7E2qFq9krGCGgsj4Syzq3BJ2Q69kIysQTaVEP5LQb2lsVQSrC3TsWK2d4aH8WZ6wRlA/0uieS7GOanemJFH/6y8bF2NNfVPU30zSsKoqVDBJFgswTSUG5EMZI/pxgKFDmmNAJMnfMZDBDMjzD1QCXPZG1PuFp11G3k08I1tmlSTlVCToNYlRfV2XENoqK7RjwcZ2uPg7g7GAHN4gP/88YHj7ozQFazBp45Rf2V323ZTiGn7xrU6DryeA5U+SKzfHqmCFGofI40ZzTdQm8yPDoSaqVEPBQT/vvBwDKhJIlbAgSepWMsrKtRLNkqeSDLNAk0udYutf9Iy5Wp3puSYezFB0X1Av2g0IKCiiC9JVWQbzXKoqvW7W05xFcc6Fg1qAgZkmx8/F5wRdG830EVxtSvf2SOmxEYYFD485TbFsQQ+s8CQxRjmmVXI3gg6SewCBewRmzH/kA7o5SyCSSA/rGhvb7wX1z+ONevgLCu79jEdg/8cpViGm1z/wRjgGpwEDM9oIWEYVu68X9Yv6tSJk5GHMMwH2+92QszcFcmnO/YAwwTTCFQT92wL1Wz6AwL6oKTepU6op10I/sAQAoG88QO5iG6DrEEzmYVjE2a33ukZQgERZFUnmqLLi4q+rTIZIO24LjxBWpKWbFuE9E5c0hyoqNAO6xrrFijdCxNCJ6aKrks6cgdHIu2VpJkiBsRCo9QzBmxwGNr+mlrdyEr/zwFrz9pbXbZGVn50g4OyNYlqpqtRW408h4mXIaRNCQJAAozAxdpCCMLaxonSEuTBET5ED1klJtUUEqDH32Qd6DYSooB/B29CQ0TC+VA8dwL4/dCeAZdfe7e8ci7tnJr0F722MW/+ijV68E70bo4/jqm9YBAL5xzzie3D8PADhpOIl3vsAa6FOftcLajehP5u/6LrK//Hrt9QwDsze6XM+uv7gBsae/uO75vBDVWCjlAi+o8a4KpUZJinlLjNy8+4euhzMkJdkbo2TCPTRdArbIOW8YmGRMLQguuKhjzDB1HFdakRxFFT+Mz5fwws/sbWjf8/5hp+e2/752A05eKUAtU1hlwJTph1BMoiEtSBWJaqwSfRjqlndT+pHd7j3l5nz2bB+CeSIBeBlBLJ5C2miuiHRUUyoemERU0HMUT0HPWpUegruHO2fFFsqbz2C7V0NkM4e4vBFY8LgZsJ5DqSj6QEkdV0FXNdU6DKJ7eG7kIazqea7wcYtOCDygjXNn8XLc0MB+jx2yvImMMWxbGcPOo7nKNbetsvreBTfswvZP+kcuLtqSAgCcu2ED9k6sBGBVN0nb2fBTtjexkcb4FXMBX3/2pUgaOn5xz2+rtk3Horj6oosAADfmp3F1A7/RC65ik9yxwiDpzKJUEmYQskaxCERCJABIso9zRTeSNN4hGj/xGAPsYkCiZVApyuXOmScagdozJLT/E4fzyDfoqfXb7393ZXyNyNHpIl71xQOVv2ky4Z/ffKBiklywKYkvvF7Mg0hRHnPpMebRA5778RDT3Kpj3RLlx8pzbr3sIKVxWwHxxJqFGeuDznfZlg9sx0hphrtttpjFs+74XGhv5JqBCJ48bA0+m0bECKxK9wD0mWPWH7HO5BiIIEwWqNUmgw10DitFCxECkS4pIWBMcA4GABiCzplMgWSXGmIXHuzSuJ8bxQF9I4wAHAtNNe1QW7B3d3m0MU/kvC1Ib5omfvj2jTj3wztRKJs4Z30C3/7rDcjd+R389uDPAHynoevGIwpOW13bZ5kagVkuoJHfs72vD3Mz81hiDN1//WnMf/VDMIwy1FQXzFf/DeYO3wsA2NUl5uWruSe7lq6MwgQUxpED7ufRJwRvCq7x1yHh7GRcRcFOYlnZ3xl1Amm0Shf1RNJnzHQAnfGbGoFZECu+cft2t+ymyoC/umywavu3794PDTp0U8E1l1Vzlf/r3jks5Kzx/393LuItlw54XufJI0UsVrQ7q8etTFHHdfnv4CT9EHLYBODDQr+hCiWXQmMIzk06oUCY0tJvAVLhsWNrVIsbkWXb3PYYG1lPP8ai3g1CBmgyTUwTXI0Tw5EdT6GGpiB4BqlzVBgZC+axEAkOh2wd3LAVXewNdZESXIJJXt1xBc49W5/FsEHdH0gju6xbNV6bjeUt408fORmmSbx0qoaiYAiNex2nHTVgUMeTPcAMwJiC6FmXInX5a2DMTUJdsxWL254O2EZkPBWsKo+Dsh0SlZ2wY5KQG4piGoYm7e91jMjS7oeQ/UVt2J9i/qa31XyXuvqd0NZsbfieztuQwh3bLWoDb4HQDmTyOpznNJcVnF9Mt91HAhQQaCdMwQpuk0ukLTLg+udUezIPT5ewf6qI4R6tZtstD85jwbbZtDoJrruOZuE81aHuCMr5RShl6+DnPm0TXnXbbdZi7dh2hDIiVbf9iRbCoMyVpQDJjl6IDqxBGQ8AAEy1MxLPliPAXfkbHsxkUJqsN0XPHhH0hJVHXW5GeX4c0cGVDR+rKtILW4SGpgDlwPcUMk0XITPWZXtDKm6A4L9H9EidtHVd8Gk8OpqDY8xZn8Uwt/nNODZfwplrxSbfsqClfNoHduCNzxzAe17o1m79l19MVD5n7r8ZN9xQG+BWGKt6Pst1KZWhtXgwtQU85mFllGmkewu8tPWpfgBA1DZek1e9vbItlXc9K2uTfQiDkhG+b3GhRgBYbcWMiEmUVaHOGL1r5hB+UrJUNq45OIqucu2Cr7SzNompfGC7kBG575hLfRqbK+H0DjAkc0U303ZyScyrtLovgsMz1rPqThw/Xsgg2DIcwx93W8laCc4C+p9evcrz2AwJby8W/Mej7UeLcN5HtmjgY6/cjNufsLjW73/xSszfJqevsbS7cFSSYkl1XXFWCWev7A3P9TcLOaBchJEgEREtCjPj8ppZsrsjkqGCcSJ9LCnW1YOc0tzO00cKsHcLclZo+LeR508dbU6IquZ7zrl2Hs1zM0zpnXz3j7M13774nJ4K16sRRDQFZWEe33K0pyHK53i0PnttnNRJzQtSgelAmgkg8TOx638RO+clwseJrvG+UvgQ5jLXAXgOAGDdZddXth2cKuLh0nnc46IqkPOpemYc24c/W9zBv8eaD37osJUd0LSmyCIqTHtYYYKl2Ry2BwBA9R83H4aOL28+CQDwosQK9NtajuN7dqLMFERQxoqTTgUAGDNj0CcsEfTSnocQf8ZVDd/TOPFmHZxsLpe+UShknBfl3E8vueNBUTeQOh6iXc7PjYgZPyM97jwvWnowRwzH2SX/iFQ34YvHVAXPO70bzzu9W+h6jcAouEmAZkFsUU8lvWYWw9O0Mj/5IvK/+X7Vd2Y+g+n3PKfy98C/3AEWMmIiA8JGJIslYGYXAcZvNPr4KNYXJ7nbwmRn3/CjoyjZIaI/EdmQu3YuovQD6/tUTMGHXjrif6JoEshZxzPNfyV/z84lXPfNQ9xtZ3zQnfxefWEf/uFl1de9c/sivnTnlM/ZGT7602M139/hP3EAACAASURBVF64KYm0gGByqPKsMvSQw2Rnm52UWGNDcGU3TwbDsmCWUy9ZAPUGIPAvGSkYgmU/AXEj8s6es/D3z3A5TW98pktX+cOeDPY8NM87zPUMe1xPXbkJB2Ir+BuPd1QqE4RfoOlTY5XPRoFMuItzlW1MVaH0DfufSNOAon18nSjAvpQ7NhZf87foGdgAAFC//XHok6PQ1p2C1NXvAgDM/9NfVFhg5QNiVXT0KjkdoUObhlhUQdZWDU/ExN5fiWR2y6pKJhu527+F0p6H3S8cFlA+g4Wb/xYAQ/e1n6l7HqqDqQpORDQakqtTn3y43zVT+rt446QzkYXra8aca7foS2KZ0LppwHmQovOACO4YGcaX7MXdLeUC2m9CBuFEFmwejseDMktFPPsZF3sef+ONN3JDX/Xwk4fmKzwjipklHT+1J7GGjEhCHjbrcIq69v4O/z3/BQDADenrsVvdwN3vd0/Vypj85MFFzp5AmmXAYKIEDXmz1oj95eMLuO7yxrPklDB1oiHBhgxxAvnathJ+kaCFNUQlfgTF6/tINYy+ALWzFdYaQeOLF5+EsTADdWWtkPdITwQRxl951xtKmRbB0Sbzp9sFd3gM2x4NzH74Su6m4oHtKNrblP6V6P/4z3xPxeLdMJ1CEHXa+bl9ayufVybcqSr9ulongBElcm+CvK2hbhWHZiyDbeMwXzau1aBasRFByg2NUIWRX2smbj+2A7sWD2GgWMRLj4xVbSs+9ltPB9FyUC8tT+vVD6qiomzL6MTqRN7OXONSHM7mUXccImqYyQgAI5JzTLAdF4quEXt0LtxqKKsX8dFjj+LG130I5aP7sHj3DwAA0eH12PX0i7EvazmflhR2fBqRXlnZDpTuAXzqjkdwA0cnEkAgAxJwieqawpCMGCgXLS5GNJZCTmcolExkGgnrEv0no+xvRK697+tgpsX9umHwHvx1Zh2KJR0mGN7x/FX47C8nYIJfv3s26z6nuz94Mhx6zJWf2YWZTBkvOb8f73uhxce87JNPIWu7w3eNiYV0gvMhw6Gy9gvjClVlTxrhB+1GjPLrvnkITx6x2g7VAiyVDVz6CVfX6wdv34ghn6zrMpE4KgeQOzpbexh9KXGJHwYmlNX/+65T8exevseQMYaVylHutkKdxmmU67f19jN+AkKS/WCYJp53ySUAgDfv24dXHaqOjPzfrVtw68pVGC4bqF9sltyURD4yy7vjqNnAO6UoEE9+vfbSKiRjSkXipzsp9pw0BXCmIdFFZavw/e4EftO1FRuLJVwdG8SRQ6OWY0OJYP3qVfh8dl1DEl4JjRqRYr81rpko2GvP7jpG5CxJbprOcMZJSfRjtX8Y5X3WZ9Y96L/zMmgRBt2ew3sCOAQoCnoZv9hyCj518ctgzE6gtOtBAEDy8tdC61KB3XYEU+0Mzq30dB8l3YuRIl/iRwZ008QX37AB1/+nxcH5t79ch2tutvWdGmhE6vB6lA89BQDQ+ryJvwCgFBYqp9wcy+AFWwbwx71L6IqpeNOzBvCZ2yasa3L6ALWtuuJKxYi85T0nW/QTlVVWbwbRhRCtJqKHSGIKk/9UUQoJfgp0oolgNNCInrHvv3DZ7CHs1DbhO7EXuseawKVTP8crC78GAJjj/wp0eVd30amUSEC3bJBEr0SUVRYtjaKiyrAMEwsl7NWDlRpkUJHW62QYd14TaQipuCIlS9NkDBNxy0Oy64LLoMUeQ9kORcYvvgrbByKYKMwh20CWexXPS2Lyo7FAxnvBMCBthvkOYbdsHIxidMpq71uHxaZIxhQ4Pni1Q9vu7ngMyOVxNJFEz3v/GfGH7gTTDSgrN0BbswUnf+CvUHjgdsTO91+gHpxxx4TxeTHvWzoewbxNIh/ghqhd3E/oa4/sz/rsKY7sL75WyUovj7oUNWP2KDI/usn6gylIkQQ8HoZTEYwWredx6ip5RTSUvhXo+9B/Vf7edPCByuekR8GXVkN6drZZzCNhNo/copjAeRuS+MM/uBmAIk6c6ClPrxiRStrfGcyKZXeRk8/gI1dVh8odLzpvIh9IacgUrEZFlR5SnFVXPOKKpw/V6VDLkYoqKAYofQeIe6R4CGPEKin55OjQaMCYu3zmVqjlAv6M7UD2rNfg3setqg19Pd14y5FbEDMsyZLojruBzd5GZJLI+iQDSPwcMdYgFyAhJx5lyBYbp38+a+EJmAX+4J2OK4EXEiyRwJLqz0tustBD01BugkEUH1qD1AsvQPa2/wAAJJ7zWkT33Q1MzEFpwCthlojBrut1k2sahuHSGUxBj/pgt4a5rHX8ipAeHFnYO+F6U3ceFUySIFy/Tm265/Wvw5Ejj+OktOVti517edX2MhhYAxI3jg4sAGQFvcgzGddGOFwn/Ht41n0f2dBJpNXI3fXdqoxnB+biPHK3f9v6owEjUqPJPwEKRxzPEE+s6eqHuTjtWfbQmJ9Ef2kh9I15QeFob4k0K6WfGIJ1OgpLxoGc9VtYV63B6SY61g4XEyRLr6RbmapeyBErdDorNggvhVi+hzUggaAKA9ZCRBkMXl3A77yhvFcN8GpUO2QXKy7iI69YhVs3WxVVzlmfROxG19hiR5/yPc+h6TL3c6NQzVKgesNW9QizugSoD87buBJmjq8hx4DAXCRj8ii25Q4HOrbTEXRhtxyU87ohNYDIlgvRc8qF7nfj/fgtgG6e3E+5BH3WrXhBLXJ9fBSIW8ewaBxKj1j4jsKkYRdB99scGSdnM52RWUMlZ2Y5VCU/GAqr1DhmzMBxVfbQRtwow5jhU1Qo0nH3twmH7sljLdV57QrpA9L1PGwDkjEF5UgMS3a1iSQrI1IuWeRmTv6HblQvNqhBvftYCU/Z0lVRjWHDoJjHUFZ56FZBPLFmyQ5deIS3bMGb4Hfkc1aLg+e9rRGYlNNZz81BQkTMR/4gk689T4FMIvVCjgbZd25BzCgM4/FIRK16n6KZdQCgMAWGaSARhPdju3BZKlxVkJrTqpr1fgWFYik0wWcR1Rhefn5v5e9p5tYoUepIXeUKZe7nRjFqbMD4QgmnQ0wvMK4xZAuNp+R8bnoAfz/IT1grlk0UzWDPm6W7UfbyY9qdOkziWDvRCew+fWIUsx99DXfb7Cf+vPI5etpF6L7+psDXUaJJ6LASduopXpR1Ew8ecBda8zl3ALvvQA6rB6zFSiqm4PQ17dGMjEVU2Kn1SMcEF0hk90YXaZ0GDXpDfLttJGy7aVAshKtF4cidIp3wf04q4V5KqE3gAYaB934N6j/9BQCg57rPYf4L7/TcO1vUcdVN+7jbvvX7GXzr95adtHUkhh+/Mxjd53iB9HB29OxLseeeR4PfkQecK5a5K/zG0/vzd3638lmfHoO2eovnvkbW9b4Y895yPUadqi315BDpWMOE43fBvYm6zcUUrcELAIa9OgsUXXCum5FbUL6yQKi3tPVBQxV4nC7ASU6g4Tyz7K81looz7udGsfWUMwJVDEpGVcxk9Iaz4589/yj02Umow7Wh+bPWJfA/H3059ziFVWerLgeLp7EnweclO1QRGd7ydkCG8kFYlHbeX/V3mWko2bNwQi/gb88+G4/19uDpuoIvh7iO0jcEfdJK+FHqJCQs5HS89avW5KszBQZZRNzy8AJuediK/Jy6Ko4fvN2bCtJMbOyPYsKu433ysNgCTVUYShIqZ7UTL/vUNxraLxGhEmViv3XbSAL377fm1/M2+uudruyOwBEkSseaRHlgKrQ1WzH4xT+43/nMxfsmGptj9kyK14OXVR66VRB2I6kjGwBYEwB3++BqvOuj/xzqpvzA65emgLfCWJh2P89N+OxZnWlo5vmSPQC4MV3q0KqXCNmfcjvGaevEBITDZIKVbTdmGK9JMC00W0/r0K4QV+Yh/KDdkPfAkX+oQ2w269TStiT/LFOpEMDuPbDjfkQFpTUAYNpRDmjw1d3dcxaUtHgFl3rrIWO2Vie1Aub8U//3MYfb10av5VLBwOOHcpX/6E+n3zvVTFoB/eD2ymelbwWK60/DvJrEvJpE15s/gV2r12IqFsOTff2hrqN0u5Jkak+dc81P4I75N+GO+Tfh6sLtiLAyUiyDFMuAEVrEk2NiJR1loj/tDth9af/xNVc08Me9mcp/RaLW8Me9S5Xvdx5t3+9pFn67y5W2+9M+MXFumsBYz4mxiUg/remTnJFsT84KL9Li4/bcPeE6mFSF4Yoz0lCZAZUZ+MBLhivzv9mhMk8yIWyB6NMWV8IsitXZlAVeeMvNh6sP+krr2QssnoZZsAxJtcdPf9K/odSb2uj2RsN381kdJoD+tFohps8RXkZEZTVJPIdnS3iMlNcz4dZu/sWjLo9183AMW0f8wxNWSg6DFkKbyyzJzj6Q0WEbOEfZDj1zdEZpVZB6tcEXc64HfbGO4C4PZ0ceRX/qCuHj8oKL48vmH4W5+ALh69SFjx6d8wyNBjzzlUmojVk4TxzO4S+/Nlr5m8GEwkyYJvCaLx2ofP+y83rw8Vf4q0LIQnnqiPtHIYu17/gcjIzVz9XB1dB+/RhQLiASE1u41kCnsmn+jSu+7w9wgtnX4mfQzr8Kv3jQWkx84ZpVuP5b9bl4zcZA2jVUuhP+8dMjs6Wq907x3u+5GowXbU3iq29cL+cGOwS7jrnjX04wJKWThMBiHSbPxVtS+OLtlhD4i8+WS4FywoT6Ak9RxnsuzpfdbaZp4trLV2DriEW/eNl5vfjUrRYX+cQ3IYOEs52JM0AYTQZ42c1dMQXzeaMhR5TSNwhj0urcaq9/hQdtcDVK8zbXZ9UGoftUVBW6rUlZj2aXiqvAgtWTulKNOYef/cndVRqFAHDxR91Ejuec1oWbXleduPLw7ll85n8sHcNppdc2Ii2897vOhGPiTZcM4t3P968kYtoPuxyqGbSPOfbZX07gtsf5CWDP++c9lc+ffNUqnLdBYJLVIkDR9mDXaV8mqfMdJGz7cOlsXLJUn0u5d6JQ4egA1qDn4CM/diftc9YnceW5tQlkd/WchT/rr1MNhQNNVXwlq4yZo3jP6b2e248npHffgzvnbwQAvC/1XoxGV2DSGEKUFVE0XU/KLx9daJkRSZM6TKaCJbqgklq8I4luHMzOYFUinGSxkSXlW7M+ERsAKBMPjl7C+166Dtc/3xqnehIqgPYbkXlCNC/UMY4eaFBy5r69cqVpOgFaCM//kTl33Do47b/wGJ1yF+OPHsrjtX8W+LKeYKVafVMlnYaxUFuaGAD6yZQQURi2DMewZdh1vGgaQ7Fkhqsod5wgQJkMtJU1zqsCkC3pAFhjZn+RNJaSf+NVhjcAex8DAERWeK8iGacz6WR1Xs+jnSEZ1ks5Od65XUdrO8WmP/wrfrjwCwDAm7s+iqlID1SUYELFtOGEoRh+/cRCXSNSBljIdZp+dB9KB7Zzt+X/cEvlc2TD6VBXVvOrHh7N4cgs31NIv987XhQyIlmqB2bRokloK9fVbP/fXUsVHqOquJ5IVTFx945F+zPDs07m00VO+8AOvPGZA3jPC1fgnMgjuH370/DAfsu7/B+/ncb2T55Sc8yuowX84D4+/5R+v3+yyDUir5h9CObsFcCwmCfFqEMG1jaejk98+6e44erabRGVoaSbDVbCaP96f9WfvlXhCX98xV340SnvwaGJJWiqipc/cz3e+NWDAFCz8GsmWMJNTGGxJgoTU2pTjN9uKzDchSuDgqjGENU6K4P5oX2uoXv/wRxee5E3lePRg65xuKJHxVK2CN2u3/iFN5yMa785Ct0wj1upKj+MdLvvMiL6CkkEq96zeWLMjZ7tOCIWNm8UJidqZCx5lHMFkIySSmUcSZ+yPcYHee8nfHY2InGgkEO7VIBLHD0qow73rAqmQj76e/0MEg4qT43BiwHHUR2qqlzA205RJF7dpQbCmqXt9+Jd5W8h+fJP4tO3HoFeKgBgeP9VG/Gpn08gW9ArupMUI2P3Vabbmy+bxd/u2YRDU1l0JzR8962b8dxP7QbAMNYQb8s2gEI0AxYy1W76id/j8G1fAwCsy1av9Jf+8x8rn1MvvRaJZUbkmG0oqgrD1Rf04lf3HQCDibISxeqRfuyyK9LcuX0Br7rQw1vGWTxENp+Dwv2/ss69vtage+93jmCpUPtujs3rFQH9dEzBnz5ycs0+9+7O4FXx72Og63oAVvWn//ity/H9XuadQPnWGq7m/+5yJ8XetIp4/hhyehQq05HsGcZh+1k8dog/QP+q71xc0L+au80PdelAPtGMwS4VR+fKWNPfgDxGB8zQjJRTTeuLeOeL25+RSbmKSkhvoz/I869TMo9FSca15j39tHp22T3uLroPzbteskcPZivbNIVh41B1e6RCEImIgn9/+1bssPmcF21JVhaMQYoCdDoyZI6plzy6HD0xDZOL1nMe8KnqBQATxGs5s8RxsjgcItmcaJ9xZalAw/G1+znPo/0jU/MhbkQ6tbPb9Hh4844Qd5UMXPVkko3MIvlc68mpJOlyjo2oCoq2wVuPNkgzshupRmYCWFLj+D8X9GI+a+A3OxehKsArLujFDT+ywkHTvM6Wc8O33dkJfOf6rct2EOmEDnNY4JDlZ0iGm9h+UJrDJ5/5DADAA7++HZpHp88/eDsSL3hT1XcOj9QwTdzwshHcvzeDXNnA+RuTmMkYcH7YYZ630hm0OC9Ln3YXHsZiLc+GZ0DW7OMRQhvsUmGYDG98pltvmn7e/70CV6dgD9Ezu2BDEtde9jSMTpcQ1Rgu2ZbGaR+wKjV4tdP+8hJMU1yCqJ5qQvngds9w9kLOegaz2SDXbT2U3kHos0ftzzwvfvhFl/A9JV0POgvLe/S9EKk5XCd+ZxDNPZPzMJwxtdWzy8s+z5drGZ8vVbaN9ERw5/s3V23vIZzJnoSCjUPRGkPzREWUZEo3WG7bheq2A6XO245G3JNrPI+MM+6HWUxy2623xgI1HLlrYbNxxZjlOOGzs9ttWyeitbfsZ3gZM8cw8/4XVv4zZtyM0LnPX4uZ978QuV9/k3usQhovlNqBoSI7xLFic2SVVi+ClSQ8z54GpBL0YwewtmARjf/ykn58663r8Y23VIcauQkJpKi8GZEzqfAmgoaPrUPCr4dH+91M0O6P/wxm3wqUmQqzbwV6/859p8ZsbRZ+MmYN/k4i063vPgl3/t0WfOpVqzGfK8PRO83wygM6P5nnSS27RqdZ9jaAmAK86Rm9lczUNz2j123HHu2lqFvJGl5YVBLctzE55z7nwzNFnLwyjuee3oVLtlWHHr0WY736ElAM8q7qp5Td+4c/cLc4t2I0xO5oP/FIHXGpC9pKnhcy/KJLFPqcKzSuzzevFC3LuOd2Ene8oBYIzUavbVOd4LnpVebRzRbQzRaQZK6HmVfab2pRJ59PQHejD0YIf19UL1ihfN06ZsiaXtfdu6K3OdQHrgkZ9dYpLVPLkWu8tn9MahU6o86UAHqTtY0oFVGqqgxQlCcPwZif5G4zs1ZtbK9qHPoMGYTH+Rl4gFP7etm5q7Z7HgoAyJB7n1lsYNYsF6F5DLeMMZimyS0cwQhtlPlUlqjnTaBQw2Rnc7KbRbCpawiw1wSRnkH0vfXTMJbmoaR7wRKuh8tktW0m6qMKQ0NPJi8O5XzFMRJpWzJz3jqYpgG89TnDuORUyxu7bVUc//47f91MXQfhrtairCjgDV60MmLBpzyZVzu9clWkuj6yJKgj6zGl8UtfOmL9DZU5c0Ql2zlwU23SOlzrVsFYJO2p0Dw1Daf2MIDq+twclPOuLAzqqBe0A+dvTOKc1Sn87glrYHnx09fii3fNIlfkp77Rsq++HO8T0KY4Nu/2zZxg2cNpUp1oYt6/v3Sn3PG7m5NYKwWc2zd9VrD9pFIY9ZRWEEIoloGhmGkO97MZkC423mwYnBJEeZ94dvngk5XPSlc/ZhCr1LTecPbToaW6kL3tP5C88rqaY82cO+AZ895Zg7zBI0I4kfVyA7LEiJzKNNAZFdUzt8mpuqXy3LM0A40YyMvBcfZyr2OYgMbrQI1CDxeq7I+lKp8ZGLT1p1b+No4edLcZtYOUY7jzhOJpe+KrEDnhE85bIBMj8/x5JhhjSMcUnE+Edqk8EB/M1/N7S9+FOJfz3q2SZNYPiXHqb1ZCiB6nfmzfYVz4HHEPgJMc4wUzu4hFj9rZju1ebEQFwqz50HKUySLTOHbAc79WSlnScnFmk+ZeYBm3uU7ZQ0bLMzLe9NPe+WVioYx3/dVJeNeLXM/yv9zmvYBa0e16yfr9NCU7wcUqGbpCqAmhhNX957yhtNu+VvVxpOcUxSIhNsIF8wB3iWD4zE/kWn6/PMhT6Y0msOuVHwtwZHsQwIhsb2+YXaptcCWfeLE+7hp/pqFj4we+An3MknCJnnYxoCg4LTaHPaYBbTmxQ4tWPAx+nCLexN6b1DBhy/b48McBAN0Jl2S8sgExVW3D6XggvQ8v4mxziNxFjgetyjsa8b5OI84fZ24vh8k2FSbSNA6ThO55g0vOtit5RluMTIRRwZWvSTxSerFW1sOaIhkG0rVGmapynZsVzGRKKPiUONyUPwZe/4yQ35PkrGjsAkKeor8FFgnU61XFywi3ED3zWZj5+e/8T3KcTL5l4vWjBQ2Wo5VGJM2OZ02MtOqLrgyKseQv8aMkXYkhJVo7MLI21yia5yziTR9u715SueTwnLdn9Tit3umLFAlhiw7l8YgKwBrsUnH/Oe/hUTdi9SBPUskxYEMYskqEw2P1WdEXiQwUb4xzRGyOk+ErFJq4Pm0O/DwbPKhxd+WiqBGoAysRPeOZiJ7xzLorF3W1S6KObD3PZ8/ae+oihOt6D5mGs6c4vJvlKO15GO89x0OCx6cfUS+A0jXkuR9HsaD2XPaoGKoBNXFkNUtEVL1QK3ekqY4+Yy3o5Kv7hWl41ZPyZJCbqy2V6cejrZfhuJAzMHj6Cz23G2Dc0dwghn6Rp2Rgb/Z6HRk1FqhobcyWbvE6L4un8P4bPy583k6EAmL9c0uzWhDNYg0DmrBnQrawvwuThu+N2r5WBRJW53GGndBgPUWLZoG3+Paj98wsueN13idprgMEBKRj20qXMzjcLeaP6iN8ysEu/7ElS3jpPNWRyiQUoM0wO71eGTmpdqPp3WcWSLS5zFl8n4Cv2xPHnREpKt5Zmjlc+azn+KvkVQvVoZ8KqEdh3rtEosK5qalFd4CsJ++gk5ml1ED4Tlu5CV+/bw9/o9/hSTeRQu3xrnHbkGybPSqGqurUxJlCUdzVLYvUDnD5kveNK4RD6SsDxTkFLZVZPrrX81An+7jqut5XAmB5FHc89oDn9r/45Je4RiT9yu+Re9FbH06dFEjTczFv9YETcQKtQd5970ZpyWfH1sHMEJ27JvI0GREwZ3V0IvWs67HlGZFF20holyQOz6O2yk7s4FUTo4593zXxieiJjLsPS5SrmCI0KCfJ0QsjPe72QU4EpxIND9BmTDsRUj+6n7PR+zepjNCWQuQFnAgQn8Xb7JdPcgh7fndkTBJvUJnv5bv39R/lDhB60V1u+GUd8qhxVU29ziOj9a/XDfiXGwSA8tF9+MunbeZv9Hk/NKTl5/nP+hhYlePtf8N4VsxS8+RbTIUYjlzulTe6U+7D6eKSpu3tHO8c9VooqdokmEpiN+f511s/9KVUJCBe+eKU1a7H4IzVnHB4nfZ5bmZPIEswTOa+EEJwoWSBxYmwd8LbkGrl8EkNOqY2T2xcXeUqQ2gD/nqiaspdvFZqnleBkf+3HjznU1fCGj94SYQZwv3hRRfcE4e+tY5Drug+rMWCmKebcv+nFvznAUqz4T/GEFakc16d40H34ffmy0RvmuccdQ49ARcPy3HcGZE8d7YvH6MqvCLWyNQImRji3jU7Dc7gUiCTbj1Dq4us6HpS9d2A2rpT8emHvTyj3qOVseh6VvXRnZ77iSyswtAaWRNLH9EJisVqDSc//v/opLvYmFqs9eAothdXHa6tSENpxixee13n0XbFa99zvacxkFZxsrarzl61oF5EbmjO3hz1yADbHxuBtq5WOF3kukHR0GjTARO0NuiWGFVGNnru10qvrEFkmYxy88LZ+iE3KqIf81axAJY5dziqCU7QoF3LggLHBarb3/FUOGhZzw5ohi1FnISseNJ7fsgUXMNxoeBvRO4Zd7cfmeHsay77NwC444xPZ6VzNm8Na0i4p+MFAcoeRizDrE3GZJEzFsY1VsWboFBSvS4bSBH8uUkiP5L2rvHLOIOLXqYTt/9lJufdH3Vgog6nCIB+dC/OW/IPZ2u+LXsZj2kZIgKaX2YDs2L2Z19Gaf/jtccCmL/pbZW/09d8EOqgeGUULmiYieMxVBQGXTe5owcNdfPmXscY16cO12xj0RhMO2tH7fHmnRY43l7Vzqz36lkHpwrYUT7VY6s3JhbcHzHBMYqdrHAvM+MdH/208DVlobExuP0jtU6lbfzkdFrpiaTLkiZm1pikEINR9NeJrCoRy1nQOGVtm2fy+iPC4Xs4ZVB1zliXiroJIipnEVZRsTgBM2vyhC/OG898j827+89n/dvmLOWd8jjqTkJ/iEfMvXuf0NAAycRP1wnHn+gQX/A5vts2EZ147cTvThTiLVKiKZ89a6EOrqp81oZWee7HyydMk8Saep69PHFVLuTqh3jV4XV4MO0Vzrb+KXN87FXPzscV1wjPsRKWrb8rfjq9D18sTeGHi4dR2nlf1bbSzvsq/xV3efP9RGGS2uUGR7vO9FkpdiXcZxOJ+QhJ8nQiyWRRlSG+DDmeR937lgAAQ91RnKI96bHVG1STbXy+dnp2nkWoTHsOWjZCOKLA7ZyoiUHEOB62doClaCa0d1Z/6OvQx17nFdB7AlfMub3h7DSH2+enVdpHOHpxjgHabc8D3an2Uy5k48C0uyCdakTfmIDWm05xZMcoaPTE12MYxibhHeuTgLGi283mXs+pzTX8LQAAGbJJREFUUNT+ZW3rEKBlt1eVn8fly5VNeL02bdOZ7uf124SuZZBEHDNfK4zt3EqM47mji5N6yUBVZZ8akCkwffiZzBmEeUkfVBi36J0F7puR7JzL/rcROtr3+9O4efNmfGfrNkS2XUBullVV0cn/7if1T9YgqGQDS9YuHngZdQ664+49JXi8Lb8MeCIFZSa9uXG8q0c0/wn02HwZT5W3eF/cAzT7f26pdWUE6+mjygIr++g1tQgmkbnR52qpJk43SQmG/UKhxy2JyeL+CS+hQJQeeDzgKhB1AMbh+dQp2tR0JHgcaJ+bSUbc8SHGOdYxQDP5E8+smCRcRr8iBjys6Xef24ZBf75uMgbYSrbQBCvjNArGG3V95uI84fPPZ2sN6BNvyeAN8XB2KzUqOOB69UzAc+olFRKM7Dx/Hw+Yh3ZXPhd3P4Tl62bnVngF2GeIi77eE+tLRXDU1hjbPFy/7iqLJbElP8bfZvtFI7wZXFNc+RGOYeV3v1+5ewrf/eNszfclHXj2J93n9PdXjuDyU6v5owdjUSBfwJFUGj3v/BSmrrUMSaV3GMbiLJxwkNSqKMQTy/MMOWEmXrNJk4meP6nYao88z1eeKAAseLc33qERVUEOuuecVSgZWH/mpZ7n9EJXQqsMdANd3l1e9jQnOK9w0Ygd6qVv2UrQqi3gaCU6j8JP01Y2FI14H7Xm1XPWBkagj1vZrUr3gO++epY8m1JthIBbrrUlsK47lRFbZM3lXQOC57F03nepzfNmM1AgIStRtsQkKRE5USexZmbJKUMLFHh8NhngWX20xNsy7DnmOpUOT9dShDSNoVgy251C0hIIG8zMCYu06emIptPrk66xpXNqKPseSwY8k9TcXg6TY3bRMaPeHLeaCIyvGaifRcnSPdgd54fXKxX5ODFpRl+36j2pxDhCkT+8fw4TC+XKfxSp2YP48qHr8OVD16HvgR/WHHtmr8Vz3NY9DAAYvPl+DN58P/o/cQuUKNHxTPJL4AVBVWawzgvhOgK1tcca5Fj+2GhrTHJeLCPJWIpfli7nu6U6GY4bh6KIPflV33146CYk8P6UtxEpu0fLMAcaOgcvPbLFoEoDuu5dsqwRCS9ZMEjtbGOxdgEoDVSoOeKvLsEKZFHPrVjVrlmXAbB50pwtFmq3aWQ+UjjbK6yZ9q9zpEOhOqSCr41WaVvI+497VH6zaT09wZl7fKqEzBPPMo/+5RzJ9XCeYBA2Ik2n47erV3CM12TUh9+34NbNrlfXteZSUXdwVH3DNLXXp+Kr9TzwO8bcVc2f9tSXcNEnDuGM7AH+Rvu18OYqgxhTXvXCAaA3Ueu5O0qqMVxzUT9SLIs0W0JCzePNaw5jwJzDgDmHVXtvq3v/VfeU7Kl8Vns8BNQDgJGSVWaZl0Tk036Z+5z8M8g5Ew7h0SpDK2u3L/u36mx1Rsh4IyrwHKzpdxcma/s5ixRve/o4QfvvnBFaBvNZoLXyTo1pN/HLbGLtbJ2OK/UEHikvneMdVWyjrF1TL9d7zmo+VHDBSW7U5dQ1tRxPh8rEjVoc55ghXlvRqEOGeBTrSfyMdLljVtAx0BN21qsSr43M8egWDpKEO8t7tVnbA91I4unxDvFwdsh6x2HBEwX3G7fUFevgmD8s5Z1hzQNL9wGOsTXgY+BwWlGVV6lOOyqWKWetvrs+fvGVePnFV9bdbzkURkwi0/s9aj4yMADwwZcMIxFlGJ8v4+x1CVyR2YHMDmtb1Oe8PKj5XCUT08iJ0Q38UF50eaOiYXI64DNBDSNz3l20YL72us5j5E0qiuLflvdNFvFo+UzvHTzw6EF3YfInXtmwDoZocYF2wYwngLzV5lSeV4OZgMnqLiil3lOOltVoXr6zQihDKPgLrasD7sJK6aoteHDSihh2jxfQzxOVbgG4bCnTe2uSJohwDByjsqg/8YwJq1a4pSYiWjciGVGRtxMTe5P+77q/292els0ptt8Lz8Hkp3O7sd/1uA/wojtm1T8nNMSNyDY/lQTH6+hXClHrGyGfh4WuZZSI3E7ReyXPk/hZyLmDdtEA/II8mqJU9MYSDehEBkXVU/IxjmZztROOo6Lg4G+ucI3qwn0uD0rprUOsXwaDtkCJFoNByw8KlqWiPMi45pv7X3vdJVfupDR9yPO981ao8QhDpuA9dBVKJradeaHP/fCRJzlUOZ4Ulmn9jysLFQKKYsLglVlsABHV4tvykhU6EVq6ByU7fMz6OH3AHiNaaUuYpGpTM+vUG6RevFGnMo7a1ed+7q2VwDo2bx2/UEf2pVlQfOlStW358cPuOLN9rFaeraI+cwJaE2etS+Ou7da8OCBY9vDUtXH87ilrwXH+Rn/VlMOTbpua5VT6CgfbiFziJKsa3g4RplAJv+NkpdskBBAbb8JdCMCpHlAFnw5aPnaw8pmn6+cHWn/ZyHh7cHicSOpRqucEoPpjpk/d3dCgySY+HmWd4w5T/SSBjriJNcbRA0K3xEgojEkkTbMImUB5RWd8GvJM1n02c7VJ+aRWa53O4Eem51Wssb/0as7rBoJxInvTpE4tz8PDrP/JrkIZ1IAEXK3SWKtSvEOCGod+tIRW5gAp3a4xy2LNS6xR+11j0E8bFQCQdMO/PE1YW2IV5TZ57rjvx6cJPnnYHSCmFmsVL3yKWx33WE+oMev6xCoibRx0l9cbVvi3TVrdpsSLmzuL3zCLYN6hPh15mpQ1Xshy5tLjY9iSAvGn3ubekOMYGqrPZM4SruQKE9RKq0qSSHklSdRXOfWrjgJUhzq4RoskMNrJfDpckdsnvH+EMXWk8tnMi9UNNojWol6uL7TeKFiVsDzn3n1cAwtk0CrwHkblUM4gQ6RUtN6R2u3ONk6jKBT8FxAT80U8UT7ddx8eqP4j1661NxdDFUKvRRgemEPxyPlo9FXgyDC1kXdGxxbG1T+0t7VydqGrgiZeVp845H6eOuq7b/novsrn4q4/1u5QTyy1yeCVv/WbJKMkMsZTA6uEs9ulnt5ELOTdsXGWI3Pjh4PT7kQ3Ounvve6K02fMeT82fUTh0UgaBNc28BlPji24c1WeJ7R+AnqevSCene1Mzm0asBc47uxKuTaerZB2wydIiTWyyNqtlc/qRq/Jm3EfBf2qnvchTohSq3ubZ6RXGRA+RpTJ+UFFH7Iei5FwhGhVIPqkJIYFFFLqkMVqg8p+jo5VZIVNKxO4B9v/cl5s7NSnVz5rm8/yvAZP2LveuLOiJ4rTtSfq7FWLKGlfET+HgeSBb0WX1Zb9vNheUOyhqaFjfYTjWwbd9UIxbiKXBV5hgmZB6yWcw6h32dawqKqBXed90dKrRqZ2wemsY1pWd30ZeNJoUR9Kxepe14uW5pQybbNN3FTQ6j48rWQ/HJxyDdD9k/6ek5W97qCV4ojBG5n5qn+DgZdi7eMhJfQQXks9AfOoPCHMiTRL9gtvU7hB50zcecdbwVsQLLkNy0+kmwelzyWB+4VpePy2mMYqVUm0OnbhQJeKJdsLtWFInKbaKBhzNQgNH1kFnlTFck5k1bZ+l2uqJMUmK7VrAHrOei/aYG02c2BUecwF10rU+SjYzstTrqSUsTjnuR9vYaEq/lmO56xP4JwbbhC6H6DaNlc5b1FRrAUGr553GKzqjWB8oYx4gJC0qpiAXl/ZwEL7rUgj59JdzFytTqSDVibWIOUqHyhpsWpdImAx1/vOy3KtQh26jtm2osPW9ZKctmr4eAGGSOWS3njt2G1Lyp6QRsU0KUc4l6nviXzqmOu9m1hwj90zUaxs0xRg04rqRf8Q0bbtTvBWweHbjJnnKLeUvCNjw93uPUZ9OvUJ+Npr0DyLpUngdUbfKFyeGJEFsczU8rG95POoZ5IEL2xnEAH0eg1plpDID81KintwI7is4glRfFbXg921HZUx5ilXYEy7ISxD0FBX15wEfcISKlZXiVUU8gXRq6vylDaAmTzRMCv4SQHVfmXOu1qkxuKU56HcLNBGbi4AaCnNqSUO35UxGDCRSsi1cCZs3lAhAM/XEfAv8BKBlqMDZmgjQyvWTHruJ5kx4AtjwfX6mYti/VIEJk3aqROJULrcRSY37O8Ucm85rDaU4VBK/LQ9U8RZleA5rk7gLN0kKcsWayBr+hVf2MdVnzg2X8ZVN1k0hxXdGu7+QHVVrilSZWsp611pLRS8wokeL25tn/vbV/ZxFg8n8HtfjuPOiOSNL6rCuB5KADBAyt8J1rQ1Jt1EHH18r8deHtc16+3hIku8gqPH/PkhjYIbrY5oQME6PyNZksvBE9GuVHjhgch6mILCz2qvm+UtmtntBypKz3hkJR/ESEhO5XFHncGFk5VPebSm5p2Tz8sCrSexFxQGuU9ePRxnkpwWrH9bD/N2ln+Q3+UYW0VOoys+/ltk/ufz7heEcDb7kasrn+MXvwyJ575e/OIBwIyy6w/xIcC1snAJK5KxRG/S5AtAHx91P0/yK2lVECf1vDlVs5xxpl3LAoMnGO4zgK8dIDWUB/2F1k800AhbI8GGRsYBmrDioJcsbhNNKhtqcucIFdVhKReG6d6H329v//K2+TjujEjeS1ndH8HoVJGrIcmIUWMK6ixQF7fpGZpkXGNCUyyJEutg/+tYnkxrpwiH8yEE+1TcJMP+tcBRyxhWN5zqeQpetRu/WtPaqo3Aw3cDEK86Q0Phak+tblxQVN2tj1QDD8mY+z5jftETzlOmHiks+XF0uHLjHt+HA7VpSmVvDVCvhVhQZG0vbpiz8iZwfXRXleFStW18FJ86ZRtyqorLMsfw8hDXFoElMG5HOnwS+PxCX7LB0m44m/lUTwqC7M+/BrNoUZvMjDs2msUMMj/+onVNVUXypddWHWeSsqBmhhP2b7MHh7to9MHhGddQ388pf1fBCeiSojSVmE/BDwfOLNedUHH5qV348YNWu3nzpYP4999MwQDfU99LeOl9zZLAK/MSKL0Xg6PkXY/OcBZofvyvEwwBjMj2Ph3elR21Gp6iCKMrCVGXCJ3BOKXz3Hvi3BUxDOuNS/1pFePz1n2eulosg7z2ZnzeT4mE8wveZGbh1R6p5sMSYpxIY9otJ+kXBhSFQiqIUG5YI+gnFXsGBEO8lDLBOEZkRTeOO+Y2Z9060qth1g5pb1rhUbHGDCLV4A9VaU5WamHHnyqfo9uehsk921FkGhSYWH3BpfhpVwFZmFBSiZYZkYglANuY4la/gPXeW0mJpMoUiMr1kt31yC9RLOSwOpfFSTSRSNeR+/U3reurkRojkj4bFueEs+0xt30MBbFM28dG3f5+YIIv8WOa4dRnOgn/+JNjODJr/c5JUmlmdKqEt/6Hm6X/uWtWI7lsHnGZiybecukABu3Eu2su6sPXfjMNrwe9ghiR3ETHZsHnvS8R8V2uhN//C2f7IBoHijl0kqM2YY+PjBeKIAMcEwy1Kv0roI9ZfD1l9Wbv/bicSCKrUqcl0c7WxSk5KALGN2kt5Ejd2kxtLV0FlmiNd0fle8qUflfKhqf95ofSzvsqn8u7HwCeJWnaJ94gdXh9zWZNYSgb/BzQRcLDWxTk87FIvFJS0uSE65wzc2WpHBK+0BXrY+NQFDuO5u3PtcaEY+D4SWUFQbMMAf3QrspntXcEKy8/BaUDT0LtHkD69R9G4acfBkwTRxPeUjuyoaT7oc9Y3GCF41F33ntetD5cCOhzLifXyHgneQXB+0/ejDlNwzWHj+H63XsxazPGe1FEyizCLBXdErkUNOFNrV3QGI7V1abZ178PcCIPVdSX2nfrTAOt1AdtJn71xAI3iWYhp1fEwwEgWzRqjEgHugGsH4ziXaRghd+8FSUezwiPy88US9MxhKA+tzKZjz+GJiFGFN5O//9xRQobkUy18zsF+YVy4GHE2Ms8btINqVxiCvKCaH1pIzPtuR+PR0PDv8u3lnQTH/up64GjskW/f2oJ4/PWfQ52aXj7c+uI9y6/Z7+NXYOAHUJSe1fVbHbuYt9UrZfS6hL8AZZ6EPXZ8Qbv1L5m3n3G+oI88j/lZppZjpSId0J/1URfKIlZQmZVzW7v7L4Yp0RaXGN8zbGQWEN4W2s4osDOROdHWQiCplXaI/3YKObQ9bIPV21OazHMl3I4p29Nk26gFsqKVcDoduvz0NqWXdcPSoTIXClyxcYXNGvqeOL087Dyqr9D17c/AQBIverdWLzpHTBRBK930bA6j5etcEs3tA68LuBrDpD4K89H4djEneNyCQfHgFQYw5bhKHbZWdV9KRW6DizY/P7JxRIGPZwRvES7lT0RjM2XuHP4jjGXVrbrKCeC5jx4QSdRFXj2J1M8Q9qqqsBpFXwD1GyKQ6ATIS7x40z6gjWS5YD/So7a7nUeaZ2R70SLoZtLrrfOHONzsKyN/t8tp2IWSgZ+eD/fM/DIaA6PjFqdpi+tChuRflD7R6AfszyrLO3NXSxwDBm/gdRcdGtEm6IeDxLnYRF5CxMz6/KtjCNP1W73MbdPWhHDA3utdr5+0K+L1LZHGs42ZiZqtjvI5msb6/kbk/jdUxnplWO2H3EH3p1j3jQG2ZzIZq3ETeYS3jtlkGZE6FiN8ygd9gK4hTdMn77s0mxdkTjmS3mc1bsa2uqt6P27b1S2GWWOXIqzjSwy9ckjNdvbXWKaxwd3GUJcRUB3P7+Xe4I4pZxHYZgmbn7DWjzv0xbH/oMvGcFnfzmOBXt4yRe87QOa1e1AsT26vKFvH6EJTC9JXplWwjC8RZb3+7SSiuztHG1U24Y8UV67L447pobGWaqUfVIezSLhAfrwGrnH0sejidnbUbWSwlujob2Ud5tWKqYgGTURYwXEWAF9SbWyfyPaW7XwbvjGrOv9NLPeXj+Fs7JS/CYh0gGZYEUjhYa0OOGtoNAXXT6izhGh9ZtSz1nnenDO38CTB3LE7TlnIb9B8ZEW4hHIXSkRuRP+Isn+X/SpPdsBSjkNQRtyPYzatvPaeCcEtHQp4z1j++G2cFYx50k4m+ONDwPVHiMSXEFm72nFzLqRB1aslVxrl8i4e/1Gv7RAqUw8h9SJJvVCf8dwTwSPfmwbHv3YNrzwrO6qAaRkcuYQe/PzTqtdZB2xE5R44yIVcde4NCCf8bgenOtxCgQw1XvOjxLDUePR6KpOfmJD2BOppLphLM2H4h+Ewer+2kFrMKXhUJEfqlaH1sPZoggmWKgj66EfsrxYkc3ek1WUk+M/1B2pZHAttz+pvMvpqxM4e30CX7nbGvC//vo1ePO/H0S+FGxVHtGAUhlIc7K8qzKn48ma7Q4GUrXHrh+MYO9EkauJGT31fGR/ZRlekfOeV7P9xatPx7buYaxJ9tZsY+kBYOIggGq5n0Zwdt8aXL/1EgC1hi+LET4cxzhlPiycCzel8JZLBwAAzz+zdsBjyRTM7BKUnoGabbFzLkfhD7cAAKLnPZtzXe/Emm0jcRyeLnGrZoTBlpE4HrO925tHavuPE3JLNpBhKYJEREWmqEs3TiPnXAp9wfLyautOqdn+ls0XI6+X8PSBDTXbLhzYgOu3XoIoZ7GT1KKV9rSt27tkJQ/alnOA3/3I+rz+tJrtzjNOCD5jxlC5p3P7a8Pkl67Yip5IAt2R2oQ8Rtqnkqhd0Fy99mxcMLAem9K1HM4tXSsq1+3hnPsvT7oIOb2ECznPWB1cBX38IPf3aOtOdvdbV6sQ4Uj8tGv67eVw0hMxFbkCf0F/9ro47t9nGcObfPjGbZouubhi5alYl+rHMNdj7g8/p+xJQzEcnbNm22FOKPvNlw7CNE1ctIWjFOCjD/qsbSnctcNyely4ubYtquu2wZg5CqU/RLEKjsGoDKysRO6Wo5tkifelao/VVIayLn9hfmr3SKVfxiU6XcKAmYIx3sIff47y6JNQugaReMEbm3VfNbhn5xJ0w8TGoRg2DlVPhKPTJYwvlKApwDnrq42j0qGdWPjCOwEAiee+DkkB3bjyoV3I3f4tAEDqqrdD6Ruu2v6lO6ewkNNx9roEnn9mdXj4N/9fe2cTEkUYxvGf437o6iq2kbTYp2RBRUoLQZKSfRhs2UEoqAgjosBOBdFBgspb5aEO4SkTIkiIDkWQYh3qUBBlbmiBZOuuJZS76O7O7M6O02GyfN1KRjQK5nd9eGdgeOfhz/M8//ftj9EZMDZ+c71X2ExJVaex3XCy7dtUxM517h+zOFIWXHk4wssPCgsLsrl6yNxc17iioWqGsM0QkvrEz57/L36ag9cHUTWdmrX5nNgqttFfB2X6wgoOexb1vkwxOFu0r2FSgWcAOCt2IBX8/vxKU6QUIs0HjOdW1uGqbRDC5+99oieoUJgrceNYpvHmT6SH3qErcaS8QrK9pUJMT4yhjRoVX9vilRnf2d8ygKpBVVkeTXvNCZXZ8nwgwbVOY261qa6YNV4xEZ++HSYa16hYnsvJ7XM3PnHnRZTeIRl3jsQZf/HMC6bQ2v2Fz2Mqyzw5NGyZoz0xj0xERki+6gbA6atFKhDPPH0UGCeuaCz12Nm4Yv5uj5mKOthL7OYFAFz+ozh9u/7Kew1jzGRCm+bQTcrIXbcAcGyowlZSJsQf98cYHlUpdGWzu3z2dyGb5dxdwxRVvTqfbdMqZV1vx+kJyuQ7JY7XiIJ7OJrm8gOjRX+kegHrS0Qz1+HWj4QjKks8dtpM5pl/kcqL75FTE3iL7Nw/Jea+J30xOr6PaV3a78Vl4ri6xrYQPaEEDlsW3WdXzbxgjoh3tKArceyl5Tg37xGDWho9bYhioSiBMVM/6cwv8TiEW3UA2p+O8iYks8htM537/jdMi0gLCwsLCwsLCwuLb706lvO4DDzHAAAAAElFTkSuQmCC", + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "color_map = {state: colors[state[0]] for state in states}\n", + "tree.render(\"%%inline\", color_map=color_map, h=5, units=\"in\")" + ] + }, + { + "cell_type": "markdown", + "id": "c7bc3882", + "metadata": {}, + "source": [ + "## Synchronization\n", + "\n", + "To see synchronization over many trees, we pool the division times from 200 simulations, up to time 5.\n", + "Setting `min_survivors=0` keeps simulations in which every cell dies, so the sample isn't limited to populations that survive.\n", + "\n", + "Divisions cluster around multiples of `T_gen` (dashed lines).\n", + "The clusters spread out over time, because the time of the `n`th division in a lineage is a sum of `n` generation times, with standard deviation `T_gen * sqrt(n / K)`:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "64c87d33", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "t_end = 5 * T_gen\n", + "n_simulations = 200\n", + "rng = np.random.default_rng(0)\n", + "division_times = []\n", + "for _ in range(n_simulations):\n", + " tree = bdms.Tree(state=(\"progenitor\", 0))\n", + " tree.evolve(\n", + " t_end,\n", + " birth_process=birth_process,\n", + " death_process=death_process,\n", + " mutation_process=mutation_process,\n", + " mutator=mutator,\n", + " birth_mutation_prob=1.0,\n", + " min_survivors=0,\n", + " seed=rng,\n", + " )\n", + " division_times.extend(node.t for node in tree.traverse() if node.event == \"birth\")\n", + "\n", + "fig, ax = plt.subplots(figsize=(6, 2.6), layout=\"constrained\")\n", + "ax.hist(\n", + " division_times,\n", + " bins=np.arange(0, t_end + 1e-9, T_gen / 15),\n", + " weights=np.full(len(division_times), 1 / n_simulations),\n", + " color=\"#52514e\",\n", + " ec=\"white\",\n", + " lw=1,\n", + ")\n", + "for n in range(1, round(t_end / T_gen) + 1):\n", + " ax.axvline(n * T_gen, color=\"k\", lw=1, ls=\"--\", zorder=0)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"divisions per simulation\")\n", + "ax.spines[[\"top\", \"right\"]].set_visible(False)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c93e129c", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".hatch", + "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.15.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}