{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Import libraries and global variables\n", "The cell below will install dependencies if you choose to run the notebook in [Google Colab](https://colab.research.google.com/notebooks/intro.ipynb#recent=true)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%pip install idr-py" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas\n", "\n", "from ipywidgets import widgets, interact, fixed\n", "from functools import wraps\n", "from IPython import get_ipython\n", "from IPython.display import display, HTML\n", "\n", "from idr import connection\n", "from idr import create_http_session\n", "from idr import genes_of_interest_go\n", "from idr.widgets import textbox_widget\n", "from idr.widgets import dropdown_widget\n", "from idr import get_phenotypes_for_genelist, get_similar_genes\n", "\n", "from idr.visualizations import plot_idr_attributes, plot_string_interactions\n", "from idr.externalDBs import genes_of_interest_from_string" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Querying" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Variables:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9823f09051a14b19b3c0993e6491db20", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Dropdown(description='Select Organism:', options=('Homo sapiens', 'Saccharomyces cerevisiae'), value='Homo sap…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d0ac7d808ac94c3faf5f153f2c38dc75", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Text(value='9606', description='Taxonomy Id:', placeholder='Enter Taxonomy Id for Organism')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3adbe2506dc44aab8f8876309ea9680c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Text(value='GO:0008290', description='Gene Ontology Id:', placeholder='Enter GO Id')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "fd1d058fbad64d6dba67aec9f17f8078", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Text(value='', description='Manual Gene List:', placeholder='Comma seperated gene symbols')" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "organisms_list = ['Homo sapiens', 'Saccharomyces cerevisiae']\n", "org_sel = dropdown_widget(organisms_list, 'Select Organism:', True)\n", "tax_id = textbox_widget('9606', 'Enter Taxonomy Id for Organism',\n", " \"Taxonomy Id:\", True)\n", "go_term = textbox_widget('GO:0008290', 'Enter GO Id',\n", " 'Gene Ontology Id:', True)\n", "manual_gene_list = textbox_widget('', 'Comma seperated gene symbols',\n", " 'Manual Gene List:', True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import query list" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Query list of genes: ['CAPZA3', 'CAPZA2', 'CAPZA1', 'ADD2', 'ADD1', 'CAPZB', 'HEL-S-86', 'MTPN', 'hCG_28646', 'CAPG']\n" ] } ], "source": [ "go_gene_list = []\n", "if go_term.value.split(\",\") != ['']:\n", " go_gene_list = genes_of_interest_go(go_term.value, tax_id.value)\n", "else:\n", " print('Please enter a valid Gene Ontology Id')\n", "manual_list = manual_gene_list.value.split(\",\")\n", "if manual_list != ['']:\n", " go_gene_list = list(set(go_gene_list + manual_list))\n", "print(\"Query list of genes:\", go_gene_list)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Query IDR for Phenotypes" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[============================================================] 100.0% ...Iterating through gene list\r" ] }, { "data": { "text/html": [ "
\n", " | Entrez | \n", "Ensembl | \n", "Key | \n", "Value | \n", "PhenotypeName | \n", "PhenotypeAccession | \n", "ScreenIds | \n", "
---|---|---|---|---|---|---|---|
CAPZA3 | \n", "[93661] | \n", "[ENSG00000177938] | \n", "GeneName | \n", "CAPZA3 | \n", "[misshapen DNA, elongated cell phenotype, fan-... | \n", "[CMPO_0000267, CMPO_0000274, CMPO_0000299, CMP... | \n", "[206, 206, 206, 206, 206, 206, 206, 206, 206, ... | \n", "
CAPZB | \n", "[832] | \n", "[ENSG00000077549] | \n", "GeneName | \n", "CAPZB | \n", "[decreased cell numbers, fan-shaped lamellipod... | \n", "[CMPO_0000272, CMPO_0000288, CMPO_0000274, CMP... | \n", "[206, 206, 206, 206, 206, 206, 206, 206, 206, ... | \n", "
CAPZA1 | \n", "[829] | \n", "[ENSG00000116489] | \n", "GeneName | \n", "CAPZA1 | \n", "[geometric cell phenotype, increased actin loc... | \n", "[CMPO_0000272, CMPO_0000288, CMPO_0000289, CMP... | \n", "[206, 206, 206, 206, 206, 206, 206, 206, 206, ... | \n", "
CAPG | \n", "[822] | \n", "[ENSG00000042493] | \n", "GeneName | \n", "CAPG | \n", "[cell death phenotype, mitosis delayed phenoty... | \n", "[CMPO_0000305, CMPO_0000348, CMPO_0000307, CMP... | \n", "[1101, 1101, 1101, 1101, 1101, 1101, 1101, 1302] | \n", "
\n", " | round cell phenotype | \n", "cell death phenotype | \n", "increased variability of nuclear shape in population | \n", "mitosis delayed phenotype | \n", "metaphase delayed phenotype | \n", "mitosis arrested | \n", "mitotic metaphase plate congression phenotype | \n", "abnormal cell cycle phenotype | \n", "metaphase arrested phenotype | \n", "polylobed nuclear phenotype | \n", "fan-shaped lamellipodia phenotype | \n", "increased variability of cell shape in population | \n", "increased lamellipodia width phenotype | \n", "misshapen DNA | \n", "geometric cell phenotype | \n", "increased actin localised to the cytoplasm | \n", "decreased nucleus size phenotype | \n", "increased microtubule-based processes phenotype | \n", "increased cell size phenotype | \n", "decreased cell numbers | \n", "elongated cell phenotype | \n", "increased amount of punctate actin foci phenotype | \n", "disorganised cortical actin cytoskeleton phenotype | \n", "increased cortical actin cytoskeleton mass phenotype | \n", "microtubules nuclear ring phenotype | \n", "increased amount of stress fibers phenotype | \n", "increased amount of zig-zag stress fibers | \n", "microtubules nuclear bracket phenotype | \n", "increased number of filopodia | \n", "more multinucleate cells | \n", "increased amount of transverse stress fibers | \n", "increased amount of stress fibers located in the cell cortex phenotype | \n", "star shaped cell phenotype | \n", "increased number of actin filament phenotype | \n", "loss of cell monolayer | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1101 | \n", "NaN | \n", "[CAPG] | \n", "[CAPZB] | \n", "[CAPG] | \n", "[CAPG] | \n", "[CAPG] | \n", "[CAPG] | \n", "[CAPG] | \n", "[CAPG] | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
1202 | \n", "[CAPZB] | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
1302 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "[CAPG] | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
206 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "[CAPZA3, CAPZB] | \n", "[CAPZA3] | \n", "[CAPZA3, CAPZB] | \n", "[CAPZA3] | \n", "[CAPZA1] | \n", "[CAPZB, CAPZA1] | \n", "[CAPZA1] | \n", "[CAPZA3, CAPZB] | \n", "[CAPZB, CAPZA1] | \n", "[CAPZB] | \n", "[CAPZA3] | \n", "[CAPZA3, CAPZB] | \n", "[CAPZA3, CAPZB] | \n", "[CAPZB, CAPZA1] | \n", "[CAPZB, CAPZA1] | \n", "[CAPZA3, CAPZA1] | \n", "[CAPZA3] | \n", "[CAPZA1] | \n", "[CAPZB] | \n", "[CAPZB] | \n", "[CAPZA3, CAPZA1] | \n", "[CAPZA3, CAPZA1] | \n", "[CAPZA3] | \n", "[CAPZB, CAPZA1] | \n", "[CAPZA3, CAPZB] | \n", "
\n", " | round cell phenotype | \n", "cell death phenotype | \n", "increased variability of nuclear shape in population | \n", "mitosis delayed phenotype | \n", "metaphase delayed phenotype | \n", "mitosis arrested | \n", "mitotic metaphase plate congression phenotype | \n", "abnormal cell cycle phenotype | \n", "metaphase arrested phenotype | \n", "polylobed nuclear phenotype | \n", "fan-shaped lamellipodia phenotype | \n", "increased variability of cell shape in population | \n", "increased lamellipodia width phenotype | \n", "misshapen DNA | \n", "geometric cell phenotype | \n", "increased actin localised to the cytoplasm | \n", "decreased nucleus size phenotype | \n", "increased microtubule-based processes phenotype | \n", "increased cell size phenotype | \n", "decreased cell numbers | \n", "elongated cell phenotype | \n", "increased amount of punctate actin foci phenotype | \n", "disorganised cortical actin cytoskeleton phenotype | \n", "increased cortical actin cytoskeleton mass phenotype | \n", "microtubules nuclear ring phenotype | \n", "increased amount of stress fibers phenotype | \n", "increased amount of zig-zag stress fibers | \n", "microtubules nuclear bracket phenotype | \n", "increased number of filopodia | \n", "more multinucleate cells | \n", "increased amount of transverse stress fibers | \n", "increased amount of stress fibers located in the cell cortex phenotype | \n", "star shaped cell phenotype | \n", "increased number of actin filament phenotype | \n", "loss of cell monolayer | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1101 | \n", "NaN | \n", "[ENSG00000124209, ENSG00000134955, ZDHHC17, OR... | \n", "[, C1orf126, ENSG00000131183, ICK, PPAP2B, ENS... | \n", "[ENSG00000124209, , ASCC3L1, ENSG00000164542, ... | \n", "[ENSG00000124209, , ASCC3L1, MFAP1, ENSG000001... | \n", "[ENSG00000124209, , ASCC3L1, ENSG00000164542, ... | \n", "[ENSG00000124209, , ASCC3L1, ENSG00000148136, ... | \n", "[ENSG00000124209, , ASCC3L1, ENSG00000148136, ... | \n", "[ENSG00000124209, , ASCC3L1, MFAP1, ENSG000001... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
1202 | \n", "[, SYTL4, APBB1IP, IFLTD1, BTN3A1, CDX1, FLJ16... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
1302 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "[, UBL5, ENSG00000167513, CRISP2, ASCC3L1, NUF... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
206 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "[C6ORF168, BAF53A, PTK2, CYFIP1, LOC201176, RR... | \n", "[C6ORF168, MAP4K3, PTK2, DMD, MYH15, RASD1, TM... | \n", "[BAF53A, ACTG1, MAP3K9, FMNL1, RAMP, ARHGAP27,... | \n", "[ACTG1, DTL, LOC201176, RAD51L3, FMN2, LASP1, ... | \n", "[C6ORF168, MAP4K3, TPM4, CYFIP1, ACTG1, RASD1,... | \n", "[RASD1, DTL, RHOT2, SPTBN1, TNNT3, LHX3, ECT2,... | \n", "[MINK1, MAP4K3, MINK, SVIL, MYH15, MYH4, WASF3... | \n", "[C6ORF168, BAF53A, PTK2, CYFIP1, LOC201176, MY... | \n", "[BAF53A, CYFIP1, ACTG1, RASD1, DTL, TMSB4X, MY... | \n", "[BAF53A, ACTG1, LASP1, MAP3K9, FMNL1, RAMP, AR... | \n", "[C6ORF168, BAF53A, PTK2, CYFIP1, MYH15, RASD1,... | \n", "[C6ORF168, BAF53A, PTK2, CYFIP1, MYH15, LOC201... | \n", "[BAF53A, MAP3K9, FMNL1, RAMP, ARHGAP27, ARHGAP... | \n", "[MAP4K3, TPM4, DMD, ACTG1, RASD1, LOC201176, M... | \n", "[MAP4K3, DMD, ACTG1, TMSB4X, MYO1F, SPTBN4, NC... | \n", "[C6ORF168, MAP4K3, CYFIP1, ACTG1, LOC201176, M... | \n", "[TPM4, CYFIP1, ACTG1, RASD1, DTL, LOC201176, M... | \n", "[EPB41L1, MINK1, MAP4K3, MINK, DBNL, MYH15, WD... | \n", "[BAF53A, CYFIP1, MYH15, RASD1, DTL, LOC201176,... | \n", "[BAF53A, PTK2, DMD, ACTG1, RASD1, DTL, LOC2011... | \n", "[MAP4K3, PTK2, CYFIP1, ACTG1, RASD1, MYO1F, RA... | \n", "[C6ORF168, MAP4K3, PTK2, CYFIP1, ACTG1, RASD1,... | \n", "[C6ORF168, BAF53A, PTK2, CYFIP1, LOC201176, RR... | \n", "[ACTG1, WDR1, DTL, RAMP, PTPN14, MYOHD1, CFL1,... | \n", "[C6ORF168, BAF53A, PTK2, DMD, MYH15, DTL, LOC2... | \n", "
Failed to display Jupyter Widget of type interactive
.
\n", " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", " that the widgets JavaScript is still loading. If this message persists, it\n", " likely means that the widgets JavaScript library is either not installed or\n", " not enabled. See the Jupyter\n", " Widgets Documentation for setup instructions.\n", "
\n", "\n", " If you're reading this message in another frontend (for example, a static\n", " rendering on GitHub or NBViewer),\n", " it may mean that your frontend doesn't currently support widgets.\n", "
\n" ], "text/plain": [ "interactive(children=(IntSlider(value=1, description=u'Threshold_for_plot', max=10, min=1), IntSlider(value=1, description=u'Threshold_for_category', max=10, min=1), Dropdown(description=u'Filter_by_category', options=('Phenotypes', 'Screens'), value='Phenotypes'), Output()), _dom_classes=('widget-interact',))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "filter_by_category = widgets.Dropdown(description='Filter',\n", " options=['Phenotypes', 'Screens'])\n", "threshold_for_category = widgets.IntSlider(description='Threshold',\n", " min=1, max=10, step=1, value=1)\n", "threshold_for_plot = widgets.IntSlider(description='Threshold_for_plot',\n", " min=1, max=10, step=1, value=1)\n", "\n", "\n", "@interact(primary_dictionary=fixed(overlap_genes),\n", " secondary_dictionary=fixed(overlap_genes),\n", " plot_title=fixed('Query Genes'),\n", " filter_by_category=filter_by_category,\n", " threshold_for_category=threshold_for_category,\n", " threshold_for_plot=threshold_for_plot)\n", "@wraps(plot_idr_attributes)\n", "def myfun(**kwargs):\n", " global screenids_removed, phenotypes_removed, genes_of_interest\n", " [screenids_removed, phenotypes_removed,\n", " genes_of_interest] = plot_idr_attributes(**kwargs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot Similar Genes" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "029072c2cde54ba58cd8633c89d46a1d", "version_major": 2, "version_minor": 0 }, "text/html": [ "Failed to display Jupyter Widget of type interactive
.
\n", " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", " that the widgets JavaScript is still loading. If this message persists, it\n", " likely means that the widgets JavaScript library is either not installed or\n", " not enabled. See the Jupyter\n", " Widgets Documentation for setup instructions.\n", "
\n", "\n", " If you're reading this message in another frontend (for example, a static\n", " rendering on GitHub or NBViewer),\n", " it may mean that your frontend doesn't currently support widgets.\n", "
\n" ], "text/plain": [ "interactive(children=(IntSlider(value=5, description=u'threshold_for_plot', max=10, min=1), Output()), _dom_classes=('widget-interact',))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for ids in screenids_removed:\n", " if ids in similar_genes:\n", " del similar_genes[ids]\n", "\n", "\n", "@interact(primary_dictionary=fixed(similar_genes),\n", " secondary_dictionary=fixed(overlap_genes),\n", " plot_title=fixed('Similar genes'),\n", " filter_by_category=fixed(filter_by_category.value),\n", " threshold_for_category=fixed(threshold_for_category.value),\n", " threshold_for_plot=widgets.IntSlider(min=1, max=10, step=1, value=5))\n", "@wraps(plot_idr_attributes)\n", "def myfun2(**kwargs):\n", " global screenids_removed, phenotypes_removed, genes_of_interest\n", " [screenids_removed, phenotypes_removed,\n", " genes_of_interest] = plot_idr_attributes(**kwargs)\n", "\n", "\n", "similar_genes_list = genes_of_interest" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get String Interactions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot interactions between similar genes and query genes/similar genes" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Primary Interactors:\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm4AAAJfCAYAAADGjlobAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3XuYZFV97//31xllRC4qIiogg1xURJQ73iFqJCdEJCLMKIkYj5N4oolgjERRRzxGokZFw9GMRjEmAa8oKkY9AjpGUZCbzBC5Rwc8PyEg4mWEYb6/P9ZuKIrurl1du7t6Tb9fz9PPdO/Lt1Z31XR/au211o7MRJIkSfPf/cbdAEmSJLVjcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKrF4mIPvvPnaWbnNwv0f9piYjbqSJEmbkqGCG3fdOUvNkCRJ0iBDBbe8847ZaockSZIGGK7HbcNvZ6kZkiRJGsQeN0mSpErY46ZNSkScACwZdzskzZr1mXnyuBshjctwwc0eN81/SzJz5bgbIWl2RMTKcbdBGqfhLpXa4yZJkjQ2XiqVJEmqRBWXSiPiUOAUYBHwkf7xDRHxaODjwIObY07IzLPnvKGSJEmzaMhZpXPf4xYRi4BTgecC64ALIuKszFzbc9iJwKcy84MRsQdwNrB0zhsrSZI0i4a8VDqWHrcDgKsz81qAiDgDOBzoDW4JbNV8vjVw45y2UJIkaQ4MecurDbPSiIhYAazo2bQqM1c1n28P/KRn3zrgwL4SK4GvRcSrgQcBz5mVhkqSJI3RvBjj1oS0VVPsnuwG9P03u18OnJaZfx8RTwE+ERF7ZubGLtspSZI0TvMiuA2wDtix5+sduO+l0JcDhwJk5ncjYgnwMOBnc9JCSZKkOVBDcLsA2C0idgZuAJYBL+475sfAs4HTIuLxlJXzb5rTVkqSJM2yIYPbnbPUjKll5oaIeBXwVcpSHx/NzDURcRJwYWaeBbwW+HBEHEe5jHpsZvZfTpUkSarakLNK5z64ATRrsp3dt+3NPZ+vBZ421+2SJEmaSzVcKpUkSRJDL8A7nh43SdL8EREnUMYSj8PSMd9ofn3/3XukuTRcj9sdBjdJEksyc+W4GzEOYw6N0rCXSmdnAV5JkiQN5qVSSZKkStjjJkmSVIl5v46bJEmSiuEuld5hj5skSdK4eKlUkiSpElX0uEXEocAplFtefWSyNXQi4ihgJeWWV5dmZv/9TCVJkqo25KzSu2arHVOKiEXAqcBzgXXABRFxVnObq4ljdgP+BnhaZt4aEQ+f84ZKkiTNsiF73OY+uAEHAFdn5rUAEXEGcDiwtueYVwCnZuatAJn5szlvpSRJ0iwbMrhtnK12TGd74Cc9X68DDuw7ZneAiPgPyuXUlZn573PTPEmSpLkxL4JbRKwAVvRsWpWZqyZ2T9aUvq8XA7sBBwM7AKsjYs/M/HnXbV0oxnwvwlGM+z6GM+X9DyVJAw0Z3PrzUjeakLZqit3rgB17vt4BuHGSY87PzDuB6yLiR5Qgd0HXbV1AFuy9CMeh0rApSZpjQwW3jXfMVjOmdQGwW0TsDNwALAP6Z4x+HlgOnBYRD6NcOr12TlspSZI0y+Z9cMvMDRHxKuCrlPFrH83MNRFxEnBhZp7V7PvdiFgL3AW8LjP/e+5bK0mSNHuGC253TjbcbPZl5tnA2X3b3tzzeQLHNx+SJEmbpKGC21133m+22iFJkqQBhgxu4+lxkyRJkj1ukiRJ1RhujNtdBjdJkqRxGSq4bdhgcJMkSRoXL5VKkiRVYrgeNy+VSpIkjY3BTZIkqRJDBbc771o0W+2QJEnSAMP1uG20x02SJGlchutxy/EswBsRhwKnUO5V+pHMPHmK444EPg3sn5kXzmETNQMRcQKwZNztmCeWRsTKcTdinlg/1f9xSVrohgtuzH2PW0QsAk4FngusAy6IiLMyc23fcVsCfwF8b84bqZlakpkrx90IzS8GWEma2lBJ7E5iVj4GOAC4OjOvzcw7gDOAwyc57m3AO4H1w3xPkiRJtRiuxy3GMsZte+AnPV+vAw7sPSAi9gZ2zMwvRcRfzWXjJEmS5sqQwW12xrhFxApgRc+mVZm5amL3JKdkz7n3A94LHDsrjZMkSZonhgxus9OIJqStmmL3OmDHnq93AG7s+XpLYE/gvCjB8hHAWRHxfCcoSJKkTcm86HEb4AJgt4jYGbgBWAa8eGJnZt4GPGzi64g4D/grQ5skSdrUzIset+lk5oaIeBXwVcpyIB/NzDURcRJwYWaeNfetkiRJmnvzPrgBZObZwNl92948xbEHz0WbJEmS5tqQ67hJkiRpXIYKbneMqcdN0n1twnee2FTvIuEdISSNrIpLpZIm5Z0nKrKJhlFJc2zIS6U5+CBJkiTNCnvcJEmSKmGPmyRJUiUMbpIkSZUwuEmSJFViyOC2cbbaIUmSpAHscZMkSarE/YY5eAMbZ+VjkIg4NCJ+FBFXN4uO9u8/PiLWRsRlEfGNiNhpmO9LkiSpBkP1uG3Iue9xi4hFwKnAc4F1wAURcVZmru057GJgv8z8dUS8EngncPScN1aSJGkWDRfcxjPG7QDg6sy8FiAizgAOB+4Obpl5bs/x5wPHzGkLJUmS5sC8mJwQESuAFT2bVmXmqubz7YGf9OxbBxw4TbmXA1/ptoWSpLk2T+/HOx/vpet9cBeQ4YJbzk5wa0Laqil2T3a/hkmv2UbEMcB+wLM6apokaXy8H28L8zBIahbNix63AdYBO/Z8vQNwY/9BEfEc4I3AszLzt3PUNkmSpDkz5OSEsQS3C4DdImJn4AZgGfDi3gMiYm/gH4FDM/Nnc99ESZKk2TfkpdK7ZqsdU8rMDRHxKuCrwCLgo5m5JiJOAi7MzLOAdwFbAJ+OCIAfZ+bz57yxkiRJs6iGHjcy82zg7L5tb+75/Dlz3ihJkqQ5Nu973CRp3Dqa3djFbERnD0oL3JA9bgY3SQvSvJjd6OxBSfa4SZIkVcIeN0mSpEoM1+O20eAmSZI0Lva4SZIkVWK44LZxw2y1Q5IkSQN4qVSSJKkSXiqVJEmqxHDB7a7xBLeIOBQ4hXLLq4/0L0AZEZsB/wzsC/w3cHRmXj/X7ZQkSZpN8/5SaUQsAk4FngusAy6IiLMyc23PYS8Hbs3MXSNiGfB3wNFz3lhJkqRZNOTkhLH0uB0AXJ2Z1wJExBnA4UBvcDscWNl8/hngHyIiMjPnsqG6txa3CWpzCyBv8SNJUmOo4HbXeILb9sBPer5eBxw41TGZuSEibgO2AW6ekxZqKiPfJshb/EiSdI/hLpXecUPMRiMiYgWwomfTqsxcNbF7klP6e9LaHCNJklS1oYLbbGlC2qopdq8Dduz5egfgximOWRcRi4GtgVu6bqckzSaHF0gaZF4EtwEuAHaLiJ2BG4BlwIv7jjkLeCnwXeBI4BzHt0mqkMMLJE1r3ge3Zszaq4CvUpYD+WhmromIk4ALM/Ms4J+AT0TE1ZSetmXja7EkSdLsmPfBDSAzzwbO7tv25p7P1wMvmut2Sapfi8uTMPgSpZcnJc2JKoKbVIOWAaBLbcY7dW1TDChenpRUDYOb1J2RA8B8Z0CRpPG637gbIEmSpHbscZMkaQpjGAIxE+MYNjGsTXGYxVgY3CRJmtomPwRiLlQQLKvhpVJJkqRK2OMmLTAjXvoZ5ZKMl0okaUQGN2nh6WL5i5mEv8fNIPQZ9iSph8FNC16Hg4+7GCBcS1CZk3E/jouRpHszuEnzaPCxQUWSNB0nJ0iSJFXC4CZJklQJL5VKkqTWZjgueCZjgGsZ8zunDG6SJGkYTk4aI4ObJGmT1cGs8VFni9trNImWz8ugn/2C/Nka3KQ54i8qaSzGOmvcXqMpdbGe5Ejn18rgJs0df1GpCi3eZLTphfJNhjQLDG6SpH6+yejhbeI0n0RmjrsNkiRJasF13CRJkirhpdIF6DcfP2HkbtYtX/GJLpoiaY7d/um/HL3I+t+MXGLLP1o1ejukATbccUOMuw1ds8dNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSQtWRBwRERkRj2u+XhoRv4mIiyPiioj4fkS8tOf4YyPipmb/VRHx1Yh4as/+F0XEmojYGBH7dd1eg5skSVrIlgPfBpb1bLsmM/fOzMc324+LiJf17P9ks3834GTgcxHx+Gbf5cAfAt+ajcYa3CRJ0oIUEVsATwNezr2D290y81rgeOAvpth/LrAKWNF8fUVm/mhWGozBTZIkLVwvAP49M68EbomIfaY47iLgcdPUGbS/M4vn4kHmUkScACwZdzvmo8xcOe42SJI0VyJiBU1PWGNVZq7q+Xo58L7m8zOar0+drNSgh5pxI4e0yQU3YIkBRZIkNSFt1WT7ImIb4HeAPSMigUVAAv9nksP3Bq6Y5qEG7e+Ml0olSdJCdCTwz5m5U2YuzcwdgeuAHXoPioilwLuBD0xWJCKeRenV+/CstraxKfa4SZIkDbKcMiO012eBNwC7RMTFlKFXtwMfyMyP9Rx3dEQ8HdicEvZemJlXQFlehBLytgW+HBGXZObzumq0wU2SJC04mXnwJNveD7x/wHmnAadNs/9M4MzRWjc1L5VKkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVInF426A5t6Wr/jEuJsgzYn/3HXPkWusuWWbkWtsmRtGrgHwoEWj19nyRad00BJJ4zJycIuIE4AlHbSlK0vH3QBJkqTZ0EWP25LMXNlBnU5ExMpxt0GSJGk2OMZNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJ0oIUEY+IiDMi4pqIWBsRZ0fE7s2+4yJifURs3XP8wRFxW0RcHBFXRMRbevYdEBHnRcRVEXFRRHw5Ip7YdZsXd11QkiRpvouIAM4EPp6Zy5ptTwa2A64ElgMXAEcAp/WcujozD4uIBwGXRMSXgHXAp4AXZ+Z3mlpPB3YBfthluw1ukiRpIToEuDMzPzSxITMvAYiIXYAtgNcBb+DewW3i2F9FxA8o4ewFlAD4nZ79356NRnupVJIkLUR7Aj+YYt9y4HRgNfDYiHh4/wERsQ1wELAGeAJw0Sy18142xR639RGxctyNmI8yc+W42yBJ0lyJiBXAip5NqzJzVYtTlwFHZObGiPgc8CLg1GbfMyLiYmAjcHJmrilXXe/1uN8DtgK+lpl/Oer30WuTC26ZefK42yBJksavCWlTBbU1wJH9GyNiL2A34OtNIHsAcC33BLfVmXnYJLX2Ab7QPO6BEXEk0H/cyLxUKkmSFqJzgM0i4hUTGyJif+AUYGVmLm0+HgVsHxE7TVPrVODYiHhqz7bNZ6PRm1yPmyRJ0iCZmRFxBPC+iDgBWA9cDxwMvLLv8DMpl0+/N0Wt/xcRRwN/FxHbAz8DbgZO6rrdBjdJkrQgZeaNwFEtjju+58vzpjjmfOBZ3bRsal4qlSRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSi8fdAM29m1/02JFrbH7ye0eucddFXx25xo1v/MbINbqw1SPXj1wjOvjfuPlhTxy5xsZ1Px25xoYf3zpyjS5sduQhI9fY/vbbRm/IFluOXgNgiwePXuOw741eowNrdxn9tfqIZ+bINTb+/I7Ra9yxceQadFCiC+su3WrkGrf8ZsnoNeL+I9fYVNnjJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZIWpIh4REScERHXRMTaiDg7InZv9h0XEesjYuue4w+OiNsi4uKIuCIi3tJsf3tEXNLzcWVE3BURW0TEsRFxU7N9TUR8JiI2n2mbDW6SJGnBiYgAzgTOy8xdMnMP4A3Ads0hy4ELgCP6Tl2dmXsD+wHHRMS+mfnGzHzyxEdz3jsy85fNOZ9s9j0BuAM4eqbtNrhJkqSF6BDgzsz80MSGzLwkM1dHxC7AFsCJlAB3H5n5K+AHwC692yPiGGBXYGX/ORGxGHgQcOtMG21wkyRJC9GelOA1meXA6cBq4LER8fD+AyJiG+AgYE3PtqXAycBLMnNDz+FHR8QlwA3AQ4EvzrTRi2d64nwREScAS8bdjhpk5spxt0GSpLkSESuAFT2bVmXmqhanLgOOyMyNEfE54EXAqc2+Z0TExcBG4OTMXNM81iLgX4A3ZebVffU+mZmvai7Pngq8jhLwhlZ9cAOWGEgkSVK/JqRNFdTWAEf2b4yIvYDdgK+XnMUDgGu5J7itzszDJql3IvDTzPzYNO3JiPgi8GpmGNy8VCpJkhaic4DNIuIVExsiYn/gFGBlZi5tPh4FbB8RO01VKCIOAo7l3r17U3k6cM1MG70p9LhJkiQNpen9OgJ4XzPsaj1wPXAw8Mq+w8+kXD793hTl3gpsDpzb9NJNeGHz79ER8XRKh9k6SsibEYObJElakDLzRuCoFscd3/PleZPsf940p18DnDZs26bipVJJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKrF43A3Q3Lv9yhi9yF+/ZuQSm614ycg1rrrpISPX6MJW/33nyDV+s3H0/46P+/nakWtcc902I9fYeccOXmMd+Mnx/zFyjUft+YuRazxgl61GrgGw5lP376TOfHDjLVuOXGOPj32ng5ZoU7Zh3A2YBfa4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUWd1BjfUSs7KDOTC0d42NLkiTNmZGDW2ae3EVDZmrMoVGSJGnOeKlUkiSpEgY3SZKkShjcJEmSKmFwkyRJC1JEPCIizoiIayJibUScHRG7N/uOi4j1EbF1z/EHR8RtEXFxRFwREW9ptr89Ii7p+bgyIu6KiC16zv1CRHy37/H/LCJ+2Jzz7YjYY1CbDW6SJGnBiYgAzgTOy8xdMnMP4A3Ads0hy4ELgCP6Tl2dmXsD+wHHRMS+mfnGzHzyxEdz3jsy85fNYz0Y2Ad4cETs3FPr3zLzic057wTeM6jdBjdJkrQQHQLcmZkfmtiQmZdk5uqI2AXYAjiREuDuIzN/BfwA2KV3e0QcA+wKrOzZ/ELgi8AZwLKeGr/oOeZBQA5qtMFNkiQtRHtSgtdklgOnA6uBx0bEw/sPiIhtgIOANT3blgInAy/JzA2T1DudviAYEX8eEddQetz+YlCju1iAVzMQEScAS+byMTNz5Vw+niRJ4xQRK4AVPZtWZeaqFqcuA47IzI0R8TngRcCpzb5nRMTFwEbg5Mxc0zzWIuBfgDdl5tU9bdiO0gP37czMiNgQEXtm5uUAmXkqcGpEvJjSw/fS6RpmcBufJQYpSZJmTxPSpgpqa4Aj+zdGxF7AbsDXyzA4HgBcyz3BbXVmHjZJvROBn2bmx/q2Hw08BLiuqbcVJRie2HfcGcAHB3xLXiqVJEkL0jnAZhHxiokNEbE/cAqwMjOXNh+PAraPiJ2mKhQRBwHHcu/evQnLgUMn6gH70oxzi4jdeo77feCqQY22x02SJC04zWXLI4D3NcOX1gPXAwcDr+w7/ExK2PreFOXeCmwOnNv0qk14IfBo4Pyex70uIn4REQcCL46I5wB3Arcy4DIpGNwkSdIClZk3Ake1OO74ni/Pm2T/86Y5fftJjt+n+XSqIDglL5VKkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVInF426A6vSgD/zTyDXuWre2g5bMD1s98Lcj13jIot+MXGP97fcfucbuu980co07f7No5Bpd2OaRvxy5xtoLth25xr7P3GrkGgBP+sRBoxf5ve+NXqMDz7n1O+NuglQle9wkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqsTicTegA+sjYuW4GzEDS8fdAEmSVJfqg1tmnjzuNsxEpWFTkiSNkZdKJUmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEnSghQRj4iIMyLimohYGxFnR8Tuzb7jImJ9RGzdc/zBEXFbRFwcEVdExFua7W+PiEt6Pq6MiLsiYouec78QEd/te/xnRsRFEbEhIo5s02aDmyRJWnAiIoAzgfMyc5fM3AN4A7Bdc8hy4ALgiL5TV2fm3sB+wDERsW9mvjEznzzx0Zz3jsz8ZfNYDwb2AR4cETv31PoxcCzwb23bbXCTJEkL0SHAnZn5oYkNmXlJZq6OiF2ALYATKQHuPjLzV8APgF16t0fEMcCuwMqezS8EvgicASzrqXF9Zl4GbGzbaIObJElaiPakBK/JLAdOB1YDj42Ih/cfEBHbAAcBa3q2LQVOBl6SmRsmqXc6UwTBthaPcrLmr4g4AVjSuy0zV46nNZIkzb2IWAGs6Nm0KjNXtTh1GXBEZm6MiM8BLwJObfY9IyIupvSSnZyZa5rHWgT8C/CmzLy6pw3bUXrgvp2Z2Yxn2zMzL5/J92Rw23QtMahJkhayJqRNFdTWAPeZEBARewG7AV8vw+B4AHAt9wS31Zl52CT1TgR+mpkf69t+NPAQ4Lqm3laUYHjiUN9Mw0ulkiRpIToH2CwiXjGxISL2B04BVmbm0ubjUcD2EbHTVIUi4iDKJIMVk+xeDhw6UQ/Yl55xbsMyuEmSpAUnM5MyY/S5zXIgaygTCg6mzDbtdSbTh623ApsD5/YtC7IL8Gjg/J7HvQ74RUQcGBH7R8Q6yqXYf2zaMC0vlUqSpAUpM28Ejmpx3PE9X543yf7nTXP69pMcv0/PlzsMevxe9rhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVAmDmyRJUiUMbpIkSZUwuEmSJFXC4CZJklQJg5skSVIlDG6SJEmVMLhJkiRVwuAmSZJUCYObJElSJQxukiRJlTC4SZIkVcLgJkmSVInF426A5t4DH7Zh9CIb7xq5RCzebPR2zBN3blg0L2pEjFyCX90y+vPygAd28BrrwMa7OviBdGHLLTspk5df1EkdSfUyuI3P+ohYOYv1l85ibUmSNAYGtzHJzJNns/4sh0JJkjQGjnGTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmHl1EJnAAAf7klEQVRwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mStCBFxCMi4oyIuCYi1kbE2RGxe7PvuIhYHxFb9xx/cETcFhEXR8QVEfGWZvvbI+KSno8rI+KuiNii59wvRMR3+x7/+OZxL4uIb0TEToPabHCTJEkLTkQEcCZwXmbukpl7AG8AtmsOWQ5cABzRd+rqzNwb2A84JiL2zcw3ZuaTJz6a896Rmb9sHuvBwD7AgyNi555aFwP7ZeZewGeAdw5qt8FNkiQtRIcAd2bmhyY2ZOYlmbk6InYBtgBOpAS4+8jMXwE/AHbp3R4RxwC7Ait7Nr8Q+CJwBrCsp8a5mfnr5svzgR0GNdrgJkmSFqI9KcFrMsuB04HVwGMj4uH9B0TENsBBwJqebUuBk4GXZOaGSeqdzhRBEHg58JVBjV486ABVa31ErOzdkJkrJz9UkqRNT0SsAFb0bFqVmatanLoMOCIzN0bE54AXAac2+54RERcDG4GTM3NN81iLgH8B3pSZV/e0YTtKD9y3MzMjYkNE7JmZl/cccwzl0uuzBjXM4LaJysyTx90GSZLGqQlpUwW1NcCR/RsjYi9gN+DrZRgcDwCu5Z7gtjozD5uk3onATzPzY33bjwYeAlzX1NuKEgxPbB7vOcAbgWdl5m8HfU9eKpUkSQvROcBmEfGKiQ0RsT9wCrAyM5c2H48Ctp9uxmdEHAQcy7179yYsBw6dqAfsSzPOLSL2Bv4ReH5m/qxNo+1xkyRJC05z2fII4H0RcQKwHrgeOBh4Zd/hZ1LC1vemKPdWYHPg3KZXbcILgUdTJh5MPO51EfGLiDgQeDtlEsSnm/N+nJnPn67dBjdJkrQgZeaNwFEtjju+58vzJtn/vGlO336S4/dpPn3OoMfu56VSSZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSaqEwU2SJKkSBjdJkqRKGNwkSZIqYXCTJEmqhMFNkiSpEgY3SZKkShjcJEmSKmFwkyRJqoTBTZIkqRIGN0mSpEoY3CRJkiphcJMkSapFZvrhx30+gBXWsIY15q7GfGqLNayxUGrU+GGPm6aywhrWsMac1uiqjjWsYY1NmMFNkiSpEgY3SZKkShjcNJVV1rCGNea0Rld1rGENa2zCohngJ0mSpHnOHjdJkqRKGNwkSZIqYXCTJHUqIp4/7jZIm6rF426A5q+I2CIzfznudoxDRCwGfg94XLPpCuDfM3PDiHX3z8wLRqyxBPiDzPz0KHVGFRGvycz3jXD+QzPzlhHb8PzMPGuUGppc2+c3Iv6wfxNwavN/iMz83Gy0T/WJiP2AHYENwFWZ+Z9jblKVnJygKUXEjzPz0S2OeyLwYWB74CvA6zPz1mbf9zPzgBHb8cPMfGLLY/94uv2Z+c8tajwKOBf4KXAx5Q/R3sAjgEMy88Y2bemptwewDFgO3JaZ+w1zflNjEfC7TY3nAasz88gW5715mt2ZmW8bti09tVu9PppjT8zM/918vgfweeD+lJ/t0Zn5vRY1Jg0IwP+C0QNCRLw5M09qcdwS4GjgVuCLwF8DzwCuAd6WmTeP2I5Wr/eIeBjw5007Pgq8q6cdr83Mq0dsR9v//xuAfwd+RnlOAI4EPkN5jf3JCG24MjN3H/KcQ4AX0hMQgI+M+vNoaq/KzBkt+hoR52Tm7wxx/J9k5kebz3cAPg7sC6wFjs3MK1vUeA/w2cz8j5m0uanxBGCXiTdIEfFeYOtm9z9k5kUtajwL+Hvg55Tv4T+AhwB3An+UmT9pUeNrmfm7zed/k5nvmMn3sykwuC1wEXH8VLuAN2bmQ1vU+Dbwv4Hzgf8JvAx4fmZeExEXZ+beLWr0/1HubceHMnPbQTWaOh+YosYfANtn5sBe5og4Dbikv7chIv4C2DczX9qixk6UkLWc8sdjJ2C/zLx+0Ll9dZ4JvBj4feD7wNOAx2Tmr1ue/9pJNm9OeZ62ycwthmlPX+2fZOaOLY+9KDP3aT7/MuUX/lci4gDgfZn51BY1Zi0gNPXbBpVPUf7gPIjyx+dySoB7OvDkzDysRY2RX+8R8TXgQmBL4NnAx5p2PAN4SWYePKjGgPqtnt+I2B84mfI8fCgzMyKuy8ydh3y824GJP0gTz+/mwK8pz+9WLWqcDGwHfAN4AXAdcCUl3P9tm17qiJjqd14Al2bmDi1qXDbJubsDPwLIzL1a1Oj9P/Mpyvf0YeBw4FWZ+ewWNW4C/gvYFvgkcHpmXjzovL4aXwTekZnfab5eC7yJ8ty8MDNf0KLGxcDvZuZNEbEz8J7MPCIingu8biKQDaox8bek92ezEBncFriIWE95pz7ZJcDjMvPBLWpckplP7vn6EMr6On8E/J82/8Ei4k7gX7nnF3evIzNzy0E1JqkZwEuA11Pepb49M/t/oU523n9m5uOm2PejzHzsgPO/Q3lHegZwRmZeNcM/ZOuAHwMfBD6fmbfPpE5PvS2BvwReDnwK+PvM/NlMajX1hulx6/0jdK8wP0S4HzkgRMQvptoFPLBlsL88M/dsLgWuy8xH9Oy7NDOf1KLGyK/3icdqXuf/1ftc9P+fnIkhn9/7Aa+mhKXXU173jxny8T5A+X/zusz8/5ptwz6/d/dWNs/PNzPzaRHxEEov9Z4tatxFCTvRszmbr7fPzAe0qHEW8AvKG9rfNOeupoR7MvO/WtTo/T/T/zu27f+ZizNz74jYjdLrvwxYBJxOCXFteu0u7L1KEBHnZ+ZBzeffzsynt6hx2URYba4eXNDzva3JzCe0qNH781jQwc0xbrqIEgp+0L8jIv5nyxoREVtn5m0AmXluRLwQ+CwwsMeucRnw7sy8fJLiz2lZY+L4xcCxwGuB71H+EP5oiBK/mWZfm56um4AdKO/8t6VcqpnJO6TPUv4QHg3cFRFfmEmdpgfheEqI/TiwTzaXsluc29sLcq9dwAOHaMZjmj9mAewQEZv39Brev02BzLygeYf+auCciHj9FG2bzs+B/SeCQa+IGHi5pnFH054NEdF/2fyuljW6eL3f1bQjI6L/8uzGNgW6en4zcyNwSkR8Bnhv2/P6arw6IvYFTo+IzwP/MEXbprMx7hk7+ShKSCEzb20CbhvXAs/OzB/372j7GsnM50fEEZQ3sO/OzLMi4s42ga3HDhHxfspzsW1E3D8z72z2tfo/Q/Pzy8yrgLcBb4uIvShXAs4Gdm1R415vIiZCW+PhLdtxYUT8E6XX8HDgPICI2JzmOWqh93fIxOe97VowE2IMbnoZMNUA8bZjsf4OeDzlUikAmXlZRDyb0qXexmso71Anc0TLGkTEn1N6lb4BHDrkL8oJW09xKSuAgZdrMvPwiNiaMs7mrRGxK/DgiDggM7/fthGZ+ZcR8RrgEMov2ncBW0XEUcDZ2WLiSES8C/hDyh+QJ7Y5p68NQ/d0TuHwvq/vBxAR21F6FNu2Z9SA8M+Uy9b3CW7Av7Ws0fsHdeJzmq+3b1mji9f7VH/IAmjVS9Xh8ztR7wbgqBHO/0ETXF8FfBNYMmSJvwUujogfUSYWvRIgIrYFLm1Z432US+D3CW7AO9s2JDPPbC5nv615Ezywp67P63o+vxDYArg1Ih4BtJ2Qc5+w2lx1uAz4m5Y1boyIA7NvHGpEHAS0He/7p8ArgKcC/5cyJhNKsHxeyxq9v0Pe3fKcTZKXSjWyKIO1t8zMm/q2Pxz4RWauH7H+gzLzVy2P3UgZA3UT9363HpTOiTZjSz423f7MfFmbtvTU247Sa7YM2LHNuKEp6tyfMtN1GWW8yMNanLMR+C3lUvhkP4+BQXSSmiPPBp2PIuJR2WLiSURMO8YxMz/eXaumbcezBrTjmy1qTNsj3uZ57u/5mKTGjHpCIuKRwN6ZefaQ5z0UeAxwdWb+fCaP3bWIeBLwlMz80Bw/7sgrA0QZh/pJ4DTKFRooEwxeSplY1PrNqLphcFvgmpAy1YsgM/PlLWqsoiyV8bm+7S8Bnp6Zr2zZlu2BRwKXZeYdTfB7DWUG1aNa1thpuv0z7IHrTETs1EUbIuKBmTndJd2J43ovr8zkcaabDbosM8+f7vyeOl28zkauMaB+6zFdo4puZuqdlpnHjtiO66bZnW3GqUUZAP8Tyrip79HXy9MmQDZ1njnd/sz8Vosa0457avlznRftGFC/7QzoTtrR/C5+FTAxFm0NcOpkQw6GFRFfyczfG3eNmhjcFrhmLFq/R1MC06JsN4NqbWbuMcW+tgNPXwO8Ebga2Aw4BXgP5dLWOzPzp4NqNHXunjI+UzH1TFsAMvM9A85/FWVw9s3NZdKPAk+kzG57+WTjmqaocy7TB5U2s8pGGsQbHcwGbc7t4nU2co0B9dvOovwcZfzhF2bamxHdzNSbFwO0oww2fy7lcv5ewJcpA9/XDFnni5NsTuBJwA6ZOXAsVPN/ZsK+QO/Y3cwWy3HMUjsu5J5A26odA+q3nQE9q+1oa5oAGcCXMvORc1FjU2Fw090i4jHAG4BnUsYP/VNm3tHivCsy8/HD7us7bi2ld+6WiHg0JcA9s22PTk+dVrOtBtTYCFxCWZPut9y3B+GtA86/O6w2YecjzXiXgykzW5/Wsh37TrL5IMq6YT/LzP1b1Bjp5xEdzAadpOaMXmdd15ikZts/hjcA3wV+hzJe53Tgy8M8fnQzU+8/KWFp0kH3LXuX1gL/QnmjcW3b9k9TbzPuGY95UmZOtjxP21pPp7yZewjl/81kgWq680f+XTDOdkQHM6C7aMeAmq16uqLM1P0mk79WD8rMgRNhuqixqXBygoiIx1N+Me1N+YX7ZzncHQJ+FpMMvI+yfMNNU5zTb/3EeJrM/HGUhTeHCm2NqSYW0NRus0jrPpRxZL9Pecd+OvCNbP8up/f/1cMz88zmsc+LsiRHK9kz07cZz/QmSm/kn2XmV1qW2Xa6HsRBvYd0MBt0Qgevs5FrRFlyYqpZlAOXvmn8LDOPbJ7LF1AGXa+KiC9Repq+1qJGFzP1tqcsajrZH7KkBMtBllNe61+PMjP1dOBTOfwi05tR/r8sB5YC7wdmtCBy3DOpKSlrr319JnWY2Uzu+dSOLmZAj9yOAT1dbZecuQL40yyzW/vrt/1euqixSTC4LXAR8WnK7NF3A8dRlhjYKpqZ89luEPrrgE9FWbh2ImzsB/wx5Y9CG72z8wAe3vt1Zv5FyzpbA4cx9R+zgX9MMvMSSo/bCRHxVMofow9ExOuz3e2VPtP8LE4CzmwuA3+OskjqZDPVphQRz6P88VhPebd/7oBT+i2izEZruxRCv05mg3bxOuvotXrhDPf1mlhi4XbgE8AnogyIPwo4AWgT3LqYqXf1qJe6MvNSymzLv2ke+2jg/Ii4mhJCPzyoRkR8HNiT0kP91rZDASap8/uUUH4bZfHvGa/2P4r50g66mQHdhQuYuqer7ZudlUx9b/RXz2GNTYKXShe4iLiee96J9a9a3mpwclPn4ZTb70wscLmGMh6q1QKv0dFMvS7H/URZQuAo4EWUlfLf1LYXMCKOpSxFsAull+wnlIH9f5fNenctalxAWQfuXZRLc/fS8lLYqGPcOpkx3MXrrKMai4ft5Zukxrcyc9oB7C1qjDxTbzYufTV1D6Zcft4jMzdrcfxGoHfWd+9zk9ly5nJTZx0lSN7nD1O2mJ3a16O6jLIIdm+NgW8A50s7utDRz+Ny4IiperrajAtVt+xxW+Ayc2lHpbYHfkgZK3PFDNrR1RIKM+1ZuqdAxMsoPQ9LKKv0H9U2gE7IzNMof5T7ax9ImXnXxq+AX1Ju6/RC7v29tb0UNurP4/2U20z191Q+l7IKfKsZw128zjp6rX6fcimciPhAZg79Tn260DZZL9oUNb7fvBZeRVksGsqbnYMmuzQ2hXdExB6ZubavDU+gXM5tO0xhYljDcsrr7HrKun8Dbw8FkJlT9YIM65AOavT2mt5nUfGa2jHNJUqg9YzQLn4eK+mgpysi9qSMz92D8vtrLeXuLQPvZtNljU2BPW4iyp0G7srMjIgdgQMpl2EuaXn+m4FjKL8YDqTMlht4iWWSOi+lLJ47cUupK4D3Z4sbw/fUeEIOOZttkhobKSF04rLmvf6TtHnHPU3tTpaciIiD2vT+NRM9fprNkiAR8Vjgf1BukTTwsnF0MGO45/iRXmdd1IhZvt/hEBMculjK4wzgg9m33EZzef2lmfniFjX+ltKr/HPuuUXbuiHbsQT4M8oq/JcBH51Jr2ZEPDonuVvBkDWOysxPjVhjvrRj5BmhXbSjCxFxOGWIwzu45/vYl7II8F9l5hfmosYmIzP9WMAflIHVt1BCyisoS1acQbkZ8utb1lgDbN58vg3lPnTDtuOPgYsp73a3poyd+B1KGPzjIercTlmRfuLj9t5/W9Z41nQfI/68f9LR8/bjlsd9C9it+XzX5rn+AOXOEu9ocf4VM9k3S6+zLmpcNNnnXX20fX67eGxgzTT7Lm9Z42zK7O2Jr/8Y+AKlp/WhLWt8kjIz9U8pwwFOmeH30/vcfHaGNb5E6SF+zAg/13nRjr56F4+zHZQhMP9MCUwXUG6dt9cQ518KLJ1k+1Lg0rmqsal8jL0Bfoz5BVBC10Mo62H9CnhYs33z6f4w9NX4wXRft6xx/jT/Kc8fos7nm1p/DTy6g5/PtsC2Hf68WwWuFnXaBoQf9nz+NsqimVBuv/PDFud/Ezhgku37A9+a49dZFzV+TekV+mHP53d/zNXzC/wnZWbsPpN9tKxx1TT7ftSyxkU0AY2ytMqNlMulbwM+M4PX2GJmGErpCSfMMKg0576A0lv/JuBhlPslP5T2QXRetKP/eRrjz+Nwyv2W/4SyTt+Tms+vAg5vWWPtTPZ1XWNT+XCMm+7IcsPxWyPi6sy8GSAzfx0Rbdel2iXufZ/E3q/JdpcWt8rM6/s3Zub1EdH6tkyZ+YIo9wn9Q+DDzWWcT1IuAbW6TVOUaYpvoYw/CuB+EbEB+EC2W638i0y95MQ27b6TgdqOceg97ncoEx3IcmeKNjci72LGMHTzOuuixpOA7SiTRXrtRMvZnB09v10s5XFlRPyP7LslVET8HuVG6W3cr+f/xdHAqsz8LPDZiGh7CfvuO3Nk5oZofS/3+8gpPh+uSObno9wR4lvAy3tqJeVWWLW0oxMdtOMk4Ll9v58vjYhzKL2zbS5R3jnZJegod7ppe1m9ixqbBIObHhgRe1MGnz6g+Tyaj7Y3eO5fMmImNwCe7vZNA2/t1CvLrM2PNcsUHE25NLiEcieGNl4DPI2yhtJ1wMSCrx+MiOMyc9DNzaf7/lv/bDoKCJdFxLuBGyiXSr/W1G41jT/LIPoDKDOGj202rwEOzOEmbHTxOuuixnuBN2TfbceaGcTvBf6gRY0unt+Rl/KgLInypYg4inuH6qdQlsRpY3HPTNtnAyt697Ws8eS4Z7HYoDxPv2DIWaXAk3rOe2BfzVZ1oqwndyJlQs9LMvNLLR973rWjb0Zo/3JJZLsZoV38PO4/zZvqtms5vgX4v82Yyh9Qvq/9KcvnvH4Oa2wSnJywwPUNgL2PzBxphlVEPC1brIMUEb+m3C3hPrso4zMeNMRjTqy99gzg28AnM3P1EOdfTHmHeXPf9m2Br+WAJRi6GHje1HnWdPuz3U3EH0iZ8PFIyqDxS5vtT6XcK/MTLWrsTVnWZE3OYMZwU2Pk11lHNS7PzD2n2PfDzHxiixojP7/R3ar+mwEvpoxBSkqovgpYnpl/3uL8N1Imq9xMuQS9T2ZmlFu1fTxb3OWjq++lCxHxI8rtyN6WLe7lO5/bER0skdRROy4F/mCKnq4vZuZeLes8CXgt5X6nAVxOmRF66RBtGbnGpsDgtsC1nZ04oMYiysy07Sk3m788Ig6j3JLogW1+qUfEcZSQdSs9l14m9PeQTFPnv5oaZwDn0NeFnu3WPpvuj/uU+3qO6WS2Yhez2/rqbQuQwy0T0dWM4S5eZ13UuDozdx12X99xIz+/TS/Z5dnBUh7NeXtT3qwcBVxHGVT/Dy3PPYgS7L+Wmb9qtu0ObNHy/0tXr/eRZ6fGJMujVNyOLmamdtGOFwDvBCbt6crMz7eo0cX3Mi9myM4HBrcFrqM/QqcBO1LWyDoQ+C/K5ZoT2vynbmq8G3gq8DjKL8vvAP8BfLft2LSmznlMM0alzeWp6X4mbX5e0cE9JPsfKyI+m5mT3WR9UI0A3kwZr3e/5mOY8XprKJeMfx0R21CC+cB7pE5Sp4vXWRc1TgfO6Q+fEfFy4Hcz8+gWNbq4R2gXS3nsThlnuBz4b8pYzr/KzJ0GnduliFjHNMMQcvBt1SbqfJLypm018HuUJWv+csi2THtnk2y3eO58aceXKJer/1fO8D6yXbSjqTNST1dH38vINTYVBrcFrovLHFFW1t4rMzc271ZvBnbNzP83g1oPoIzTeSol/D0F+HlOsZbYJOcfQJlx+dPm65dyz6KiK9uEwCg3M/7VZLuAJZk57biOiLidMmV+0oHnbcc2xb3XHJvpjaqPo1wKW9E/Xo8SwqYdrxcRP8jMfaf6eoh2dPE666LGdsCZwB3ce1zYAyirww98zXbx/MY0a+C16dVtjttICRcvz8yrm23XZsu7nXQlIn5KeT1NFWTf2rLO3Zeqo6zX9/1hg3pE3ESZeHI6ZaHre7Wp5fCCedGOps4LKOuW/RvlZ3z3hKKWv8u6+Hl00tM16vfSVY1NgcFtgYuIn1NmG02q5TvDe/WEjNIzEmVG6FMokwOeQlnP7YeZ+bKW518EPCczb4mIZ1Iumb6acjPkx2fmkTNp1zA6HL/U2+M2o59pjD5er/f1EZRxg3e/XoZ4x97F62zkGj21DqHn9myZec4Q53YRIK/KzN2m2PejzHzsZPv6jjuC0uP2VMpaXWcAH8nMnUdp27A6vFQ68u+RZtjGcym9kHsBX6bcc7X1otzzpR09tZ5Eed3fSs+M0DYBvaOfR2c9XaN8L13WqJ2zSnUTZVmCUTwuIiZuOTKxHMhlzecbM/NJgwpExCpKN/ztlHeG3wHek2X5h2EsytGXN5gvRp7dRpkRdnP/xsy8KdrNCOtixjB08zrrogYAmXkuMO1kh1k28lIemXkmcGZEPIiyVtdxwHYR8UHgzMxsc7P7Lox8m7nGk2LE2amZeRclxP57lIkby4HzIuKkzPxATe2IDmaEdtGOzDys6en6ckTMtOevi1m2XcyQ3SQY3HR72277aTx+km0B7ECZoNDGoyk3Y7+KsnTFOspteIa1KEZf3mBUndxDMjMXddCW6dY3G7j22XSvjYgYOOOwRxevsy5qdKGL57eLpTwAyDKh4F+Bf42IhwIvogwcn6vg9uwuinT0ep/4A//7lJCylHIXiIG3d5tv7aCM9f0sZabvjGfIdtCOLtaC6+J76eTnsSkwuOn6UQtkz4zPiHgyZXmCu2e3taxxaDOQ/gmUSz+vBfaMiFsoExTe0rI5pwPfjIibKeu/rW7atStwW8sao/pDYLIbhe8AvJHy85krvb0HvVqtfRYDZgxTVv9v4/qWx812jS6M/Pxm5pUR8UTuvZTHecCHKcu3DFzKY4q6twD/2HzMifk0tijK2o17Al8B3pqZl1fcjiP63xyMox0d9XSN/L10VGOT4Bi3BS7KzLR3Udbp+iFlVtoNM6jR2ey2+P/bu2PdKGIgDMD/QE1FQ5GCipoWKOmQoCAFAsQrIOUNKJFSU1FRIFGkQvRIIKAF0aCIB0CigwbRDIV9ZI87crfrP/HY+39SFCVRnPV6ovP6PB6zHaQ9bleRVh/Ou/tWB8bm3y863qAUY+N5FEbIGM7tsOKsqA0G9vhawVEesiwnbCwSi4YvbmMPA65+HcbJTGVcB+MsOEZfKBmyPdDEbebM7C1S8eA3AG4BuOLut0e2UZzdZmYPkSZq15BS8d8B+JA/f3b3bcozhcDYeB6FkTKGSXFW3AYDKbEgxFEeEhcrM5VwHYyz4BjZrSHuRwR6q1TO+dGZVvs5K3OsXaQXoddmtshuG7th+SKAAwB7no/yaBijhmQUvxeTZnf/ZWaHYydtGSPOGG0wMMb3C9LDzs3Bw84e9zKlcRdwlBF6DwWZqYUe2zH1Z7dc6WL0Jcr9qE4rbjNnq4eJPgdwf/HzMW8tDrLb7iIVyX6G081uCyGvprxCyoxd2Xju7oe1rm0sWy5FZkhvU37FiIzh3E5xnDFjtQRjfKMc5SFtGGSE7gMYkyHL+NvUlS5GX2rejwg0cZs5S/UfHcv/jH+DwicWwh5kt92Z2kbLrLCGZBSW6hGufBs5Y9jdb2zZTnGcnVSsTsEaXz3syHHWZIS+RCrBdWp7O1ln0jH6EuF+RKCJ28wZodKA/F9PG8/XZQxv2xdGnEWMVeb4zv1hR5b9kxH6olaG7NDUlS5GXyLej1o0cZs5C1BpoDc9bTxn9YURZ1FitafxlbiiZMjmayla6SJlt4a5H7Vp4jZzZvZpsU/JzJ4A+O7uj/LXH939cs3raxEjyzYKVl8YcRYlVnsaX5FNtNIVz5naFyDVnbVUSBlIJ6APazYq63iaXQDfkLJsn5rZdYzPso2C1RdGnEWJ1Z7GV2STBwAuIR0M/d7MfuSPn7b+cG85YXphlgiVBrricWpIFiP2hRFnIWK1p/EV2cTdtcATjN4qleqVBuagp43nU/vCiLOosdrT+IpIbJq4iYiIiDRCS6AiIiIijdDETURERKQRmriJiIiINEITNxEREZFGaOImIiIi0og/Or6NTpQ/CxQAAAAASUVORK5CYII=\n", "text/plain": [ "