Skip to content

Instantly share code, notes, and snippets.

@TheZetner
Created June 13, 2019 23:35
Show Gist options
  • Save TheZetner/277e95019dd22ab3602f5e4907a657cd to your computer and use it in GitHub Desktop.
Save TheZetner/277e95019dd22ab3602f5e4907a657cd to your computer and use it in GitHub Desktop.
Jupyter Exercise 4 - Demo
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "## Create Report Ready Phylogenetic Tree from Newick\n### Example Notebook\n\n#### Summary\nUsing the Bio.Phylo module we will import a phylogenetic tree in Newick format, find the longest branch length, colour it red, output plot using matplotlib. Longest length from root to sample measured in nucleotides substitutions per site.\n\n#### Data\nExample data: \n*tree.nhx*\n* Sequenced _Vibrio cholera_ strains from [2010 Haitian outbreak](https://wwwnc.cdc.gov/eid/article/17/11/11-0794_article#tnF1)\n\nModify _TREEFILE_ below to use different set\n\n#### Imports and Parameters\n<!---\nNote that the parameter included below is what is necessary to be changed in order to run this on other data sets.\n-->"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<!---\nUse !ls data/ to list the files available\n-->"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Run this command as a system command in a code cell if necessary: eg. \"no module name Bio\"\n# !pip install biopython\n",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Import statements and data\nfrom Bio import Phylo\nfrom Bio.Phylo.PhyloXML import Phylogeny\nimport matplotlib.pyplot as plt\n\n\n# Parameter for user to change to HCtreefull.nhx\n# A newick format phylogenetic tree\n\nTREEFILE = \"data/tree.nhx\"\n\n\n\n\n# Quick preview of tree\n# print(\"Preview Newick Tree\\n\")\n# f = open(TREEFILE, 'r')\n# f_contents = f.read()\n# print(f_contents)\n# f.close()",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Read in tree\ntree = Phylo.read(TREEFILE, \"newick\")\n\n# Convert to Phyloxml to allow inclusion of tree attributes beyond what Newick can do\ntree = tree.as_phyloxml()\ntree = Phylogeny.from_tree(tree)\n\nprint(\"Number of leaves in tree: \", len(tree.get_terminals()), \"\\n\")\n# print(tree) # Ugly for anything over the tiniest trees",
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": "Number of leaves in tree: 17 \n\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Use biopython functions to run from the leaves to the root find the longest path\ndepths = tree.depths()\n\nfarthestleaf = sorted(depths, key = depths.get)[-1].name\nlongestpath = depths.get(max(depths, key = depths.get), \"no longest value found\")",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Colour the tree accordingly: highlight the longest path\ntree.root.color = \"gray\" \nlongest = tree.common_ancestor({\"name\": farthestleaf})\nlongest.color = \"red\"",
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "# This is an example of notebook magics. Something to look up later from the handouts.\n%matplotlib inline \ntree.rooted = True\n\n# Draw using matplotlib\nplt.rcParams[\"figure.figsize\"] = (15,15)\nPhylo.draw(tree)",
"execution_count": 6,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 1080x1080 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA3UAAANcCAYAAAD4rYbeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzde1RXdb7/8ddOFAYxLpaXvigqkModRTHHZoDvkJqOZbGGaE5iNWM14zjSyGi/5lRO48rWcKyZM2fOyiJRc8aMvHZGK2/laJoQqJmewKSE0AoEtSmU/Pz+8LiXxEVA5Ou252Mt1uq7L+/Pe+/tH73W5/PdX8sYIwAAAACAM13j6QYAAAAAAO1HqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYF6ebqA1rrvuOjNgwABPtwEAAAAAHlFYWPiFMeb6pvY5ItQNGDBABQUFnm4DAAAAADzCsqyPm9vH8ksAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1V7CDBw8qLi5O8fHxOnTokKfbAQAAAHAFItR52DfffNPsvtWrVystLU1FRUUKDQ295HoAAAAArj6EOg/w8/PTb37zG8XGxuqdd95RYWGhfvjDH2r48OEaO3asKisr9Y9//EPPPvus/vu//1vJycmSpJdeekkjR45UXFycHnjgATvAtaaeJCUlJWn27NkaOXKkbrzxRm3btk3SuSA4a9YsRUVFKSYmRv/5n/8pSc3WAQAAAHDl8PJ0A06Ql5d3SedPnTq1wecvv/xSiYmJ+o//+A+dOXNGP/zhD7VmzRpdf/31evnll/Xoo4/qxRdf1IMPPig/Pz/NmjVLBw4c0Msvv6zt27era9eu+sUvfqFly5ZpypQpra4nSfX19Xr33Xf1j3/8Q3PnztXGjRu1cOFClZWVqbi4WF5eXqqurtaZM2f0q1/9qtk6AAAAAK4MhLqLyMvL09GjR9WnT58Oq9mlSxfdeeedkqT//d//1fvvv6/U1FRJ52bN+vbt2+icTZs2qbCwUCNGjJAkffXVV+rVq1eb691xxx2SpOHDh6usrEyStHHjRj344IPy8jr3zyEoKEjvv/9+q/oCAAAA4FmEulbo06dPo9m2S+Hj46MuXbpIkowxioyM1DvvvNPiOcYYZWZm6qmnnrqket7e3pLOBcH6+voWx2tNXwAAAAA8i+/UedjgwYP1+eef2+HpzJkz2r9/f6Pj3G638vPz9dlnn0mSqqur9fHHH7e73oVSU1P13HPP2SGvurq6XXUAAAAAdD5CnYd169ZN+fn5mj17tmJjYxUXF6cdO3Y0Oi4iIkJ/+MMfdMsttygmJkapqalNvriktfUu9LOf/Uz9+/dXTEyMYmNj9be//a1ddQAAAAB0PssY4+keLiohIcEUFBR4ZOzzL0npyOWXAAAAANAWlmUVGmMSmtrHTB0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYIQ6AAAAAHAwQh0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYIQ6AAAAAHAwQh0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYIQ6AAAAAHAwQh0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYIQ6AAAAAHAwQh0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdZ3s3nvv1XPPPddg2+rVqzV+/HhJ0tGjR3XXXXcpNDRUw4cP16233qoPP/ywUZ0FCxYoIiJCMTExcrvd+vjjj+19Xbp0UVxcnOLi4jRp0qQW+3nttdcUHx+v2NhYRURE2L29/fbbGjZsmLy8vJSfn99ijbKyMkVFRTXaXl1drdTUVIWHhys1NVXHjx+XJBljNGPGDIWFhSkmJkbvvfeefc64ceMUEBCgiRMntjimJB0+fFiJiYkKCwtTenq6Tp8+LUmqq6tTenq6wsLClJiYqLKyMklSVVWVkpOT5efnp+nTp1+0PgAAAOAEnR7qLMvqZ1nWFsuyPrAsa79lWb/u7B48KSMjQ8uXL2+wbfny5crIyJAxRpMnT1ZSUpIOHTqkwsJCPfXUUzp27FijOvHx8SooKNDevXuVlpam3/72t/a+733veyouLlZxcbHWrl3bbC9nzpzRtGnTtG7dOu3Zs0dFRUVKSkqSJPXv3195eXm6++67232t8+fPl9vtVklJidxut+bPny9JWr9+vUpKSlRSUqKFCxfqoYcess/Jzs7W0qVLW1V/9uzZysrKUmlpqQIDA5WbmytJys3NVWBgoEpLS5WVlaXZs2dLknx8fPTkk08qJyen3dcEAAAAXGk8MVNXL+k3xpgISaMk/dKyrAgP9OERbrdbBw8eVGVlpSTpyy+/1MaNG3X77bdry5Yt6tq1qx588EH7+NjYWN18882N6iQnJ8vX11eSNGrUKJWXl7e5l5MnT6q+vl49e/aUJHl7e2vw4MGSpAEDBigmJkbXXNP+fyJr1qxRZmamJCkzM1OrV6+2t0+ZMkWWZWnUqFGqqamx74fb7VaPHj0uWtsYo82bNystLa3J+ufHTUtL06ZNm2SMUffu3TVmzBj5+Pi0+5oAAACAK02nhzpjTKUx5r3/+++Tkg5IcnV2H57SpUsX3XnnnVqxYoUkad26dUpKStK1116r999/X8OHD29zzdzcXHv5piR9/fXXSkhI0KhRo+yg05SgoCBNmjRJISEhysjI0LJly3T27Nm2X1Qzjh07pr59+0qS+vTpY884VlRUqF+/fvZxwcHBqqioaFPtqqoqBQQEyMvLq1GNC+t7eXnJ399fVVVVl3w9AAAAwJXIo9+psyxrgKR4Sbua2DfNsqwCy7IKPv/8885urcPk5eUpLy+vwbYLl2CeX3rZXi+99JIKCgqUnZ1tb/v4449VUFCgv/3tb5o5c6YOHTrU7PkvvPCCNm3apJEjRyonJ0f33Xdfu3tpiWVZsizrstQGAAAAvss8Fuosy/KT9KqkmcaYE9/eb4xZaIxJMMYkXH/99Z3f4GU0evRoVVZWas+ePdqxY4cmTJggSYqMjFRhYWGT5zz66KP2y0/O27hxo+bNm6e1a9fK29vb3u5ynZv4HDRokJKSklRUVNRiP9HR0crKytKbb76pV1999VIvz9a7d297WWVlZaV69epl93fkyBH7uPLycrvn1urZs6dqampUX1/fqMaF9evr61VbW2svMQUAAACuNh4JdZZlddW5QLfMGLPSEz14kmVZSk9PV2ZmpsaPH29/xyslJUV1dXVauHChfezevXu1bds2zZs3z375iSQVFRXpgQce0Nq1a+2wJEnHjx9XXV2dJOmLL77Q9u3bFRHR9FcWT506pa1bt9qfi4uLFRIS0mHXOWnSJC1evFiStHjxYt1222329iVLlsgYo507d8rf399eptlalmUpOTnZfjPnt+ufHzc/P18pKSnMEgIAAOCqZRljOnfAc/93vVhStTFmZmvOSUhIMAUFBZe3sWacXzo5derUDj2/uLhY8fHxWr9+vcaNG2dv//TTTzVz5kwVFhbKx8dHAwYM0LPPPqvw8PAG5//oRz/Svn377DDUv39/rV27Vjt27NADDzyga665RmfPntXMmTN1//33N9nbyZMnlZ6erkOHDul73/ueunfvrj/96U9KSEjQ7t27NXnyZB0/flw+Pj7q06eP9u/f32SdsrIyhYeHq3fv3va2Z555RikpKfrJT36iTz75RCEhIVqxYoWCgoJkjNH06dO1YcMG+fr6atGiRUpISJAk3XzzzTp48KBOnTqlnj17Kjc3V2PHjm1y3I8++kh33XWXqqurFR8fr5deekne3t76+uuvdc8996ioqEhBQUFavny5Bg0aJOncC2BOnDih06dPKyAgQG+88UazoRcAAAC4UliWVWiMSWhynwdC3RhJ2yTtk3T+rRz/zxjzj+bOuRpDHQAAAAC0VkuhzquzmzHG/FMSa+EAAAAAoAN0eqiDZ0yePFmHDx9usO3pp59udmljU/bt26d77rmnwTZvb2/t2tXo5aUdqiN6BwAAAK5WhLrviFWrVl1yjejoaPtFLZ2pI3oHAAAArlYe/Z06AAAAAMClIdQBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghLpLUFtbq5EjR8rPz0/vv/++p9sBAAAA8B1EqLsEvr6++p//+R+lpaV5uhUAAAAA31GEukvQtWtXXX/99Z5uAwAAAMB3GKEOAAAAAByMUNcOCxYsUFJSkv74xz96uhUAAAAA33Fenm7AiR5++GE9/PDDnm4DAAAAAAh1rXH06FHl5eU1uW/BggU6cuSI/vnPfyopKUljxoxpdG6fPn06oUsAAAAA30WEuos4evSoTp8+3ex+ZuwAAAAAeBKhrhW6deumqVOntuvc5mb4AAAAAKAj8KIUAAAAAHAwQh0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUdbJ7771Xzz33XINtq1ev1vjx4yWd+wmFu+66S6GhoRo+fLhuvfVWffjhh43qvP322xo2bJi8vLyUn5/faP+JEycUHBys6dOnt9jPiy++qOjoaMXExCgqKkpr1qyRJL3yyiuKjIzUNddco4KCghZrbN26VRMnTmy0/fDhw0pMTFRYWJjS09Ptn4aoq6tTenq6wsLClJiYqLKyMklSVVWVkpOT5efnd9G+JamwsFDR0dEKCwvTjBkzZIyRJFVXVys1NVXh4eFKTU3V8ePHJUkHDx7UTTfdJG9vb+Xk5Fy0PgAAAOAEhLpOlpGRoeXLlzfYtnz5cmVkZMgYo8mTJyspKUmHDh1SYWGhnnrqKR07dqxRnf79+ysvL0933313k+P8+7//u37wgx+02Et5ebnmzZunf/7zn9q7d6927typmJgYSVJUVJRWrlx50RotmT17trKyslRaWqrAwEDl5uZKknJzcxUYGKjS0lJlZWVp9uzZkiQfHx89+eSTrQ5cDz30kJ5//nmVlJSopKREGzZskCTNnz9fbrdbJSUlcrvdmj9/viQpKChIf/7znzVr1qx2XxMAAABwpSHUdTK3262DBw+qsrJSkvTll19q48aNuv3227VlyxZ17dpVDz74oH18bGysbr755kZ1BgwYoJiYGF1zTeNHWFhYqGPHjumWW25psZfPPvtMPXr0kJ+fnyTJz89PAwcOlCQNHTpUgwcPbvd1GmO0efNmpaWlSZIyMzO1evVqSdKaNWuUmZkpSUpLS9OmTZtkjFH37t01ZswY+fj4XLR+ZWWlTpw4oVGjRsmyLE2ZMqXJ+heO26tXL40YMUJdu3Zt93UBAAAAVxpCXSfr0qWL7rzzTq1YsUKStG7dOiUlJenaa6/V+++/r+HDh19S/bNnz+o3v/lNq2a7YmNj1bt3bw0cOFD33nuv1q1bd0ljX6iqqkoBAQHy8jr3+/bBwcGqqKiQJFVUVKhfv36SJC8vL/n7+6uqqqpN9SsqKhQcHGx/vrD+sWPH1LdvX0lSnz59mpzpBAAAAK4WhLrL7OjRozp69GiDbRcuwTy/9LKj/PWvf9Wtt97aIPA0p0uXLtqwYYPy8/N14403KisrS0888USH9XIlsCxLlmV5ug0AAADgsiHUecDo0aNVWVmpPXv2aMeOHZowYYIkKTIyUoWFhU2e8+ijjyouLk5xcXEt1n7nnXf0l7/8RQMGDNCsWbO0ZMkSzZkzp9njLcvSyJEj9cgjj2j58uV69dVX239hF+jZs6dqampUX18v6dz391wulyTJ5XLpyJEjkqT6+nrV1taqZ8+ebarvcrlUXl5uf76wfu/eve3lrZWVlerVq9clXw8AAABwpSLUeYBlWUpPT1dmZqbGjx9vf4csJSVFdXV1WrhwoX3s3r17tW3bNs2bN0/FxcUqLi5usfayZcv0ySefqKysTDk5OZoyZYr9opBv+/TTT/Xee+/Zn4uLixUSEtIBV3juGpOTk+03cy5evFi33XabJGnSpElavHixJCk/P18pKSltnk3r27evrr32Wu3cuVPGGC1ZsqTJ+heOCwAAAFyNCHUekpGRoT179jRYemlZllatWqWNGzcqNDRUkZGReuSRR9SnT59G5+/evVvBwcF65ZVX9MADDygyMrLNPZw5c0azZs3SkCFDFBcXp5dffll/+tOfJEmrVq1ScHCw3nnnHU2YMEFjx45tsdamTZsUHBxs/73zzjt6+umntWDBAoWFhamqqkr333+/JOn+++9XVVWVwsLCtGDBggahc8CAAXr44YeVl5en4OBgffDBB82O+de//lU/+9nPFBYWptDQUPtnIebMmaM333xT4eHh2rhxoz1TefToUQUHB2vBggX6wx/+oODgYJ04caLN9w0AAAC4kljnf9vrSpaQkGAu9ltpl8v5wNHSEsbLeT4AAAAAWJZVaIxJaGofM3UAAAAA4GBenm4AnSMxMVF1dXUNti1dulTR0dGtrvH666/bPxR+3sCBA7Vq1aoO6bE5HdE7AAAAcLUi1H1H7Nq165JrjB079qLfrbscOqJ3AAAA4GrF8ksAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDAvTzdwNautrdV//dd/6bPPPtPEiRMVFRXl6ZYAAAAAXGWYqbuMfH19lZmZSZgDAAAAcNkQ6i6jrl27ys/Pz9NtAAAAALiKEeoAAAAAwMH4Tt1lsGDBAq1du1YTJkzwdCsAAAAArnLM1F0GDz/8sLZu3ars7GxPtwIAAADgKkeou8z+9re/6aOPPtLPf/5z5eXlebodAAAAAFcZll9eZg8//LAkaerUqZ5tBAAAAMBViZk6AAAAAHAwQh0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYIQ6AAAAAHAwQh0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYIQ6AAAAAHAwQh0AAAAAOJjHQp1lWV0syyqyLOs1T/XgCffee6+ee+65BttWr16t8ePHS5KOHj2qu+66S6GhoRo+fLhuvfVWffjhh43qLFiwQBEREYqJiZHb7dbHH39s7/vkk090yy23aOjQoYqIiFBZWVmz/bz22muKj49XbGysIiIi7N7efvttDRs2TF5eXsrPz2/xmsrKyhQVFdVoe3V1tVJTUxUeHq7U1FQdP35ckmSM0YwZMxQWFqaYmBi999579jnjxo1TQECAJk6c2OKYknT48GElJiYqLCxM6enpOn36tCSprq5O6enpCgsLU2Jion39VVVVSk5Olp+fn6ZPn37R+gAAAIATeHKm7teSDnhwfI/IyMjQ8uXLG2xbvny5MjIyZIzR5MmTlZSUpEOHDqmwsFBPPfWUjh071qhOfHy8CgoKtHfvXqWlpem3v/2tvW/KlCnKzs7WgQMH9O6776pXr15N9nLmzBlNmzZN69at0549e1RUVKSkpCRJUv/+/ZWXl6e777673dc6f/58ud1ulZSUyO12a/78+ZKk9evXq6SkRCUlJVq4cKEeeugh+5zs7GwtXbq0VfVnz56trKwslZaWKjAwULm5uZKk3NxcBQYGqrS0VFlZWZo9e7YkycfHR08++aRycnLafU0AAADAlcYjoc6yrGBJEyS94InxPcntduvgwYOqrKyUJH355ZfauHGjbr/9dm3ZskVdu3bVgw8+aB8fGxurm2++uVGd5ORk+fr6SpJGjRql8vJySdIHH3yg+vp6paamSpL8/Pzs477t5MmTqq+vV8+ePSVJ3t7eGjx4sCRpwIABiomJ0TXXtP+fyJo1a5SZmSlJyszM1OrVq+3tU6ZMkWVZGjVqlGpqauz74Xa71aNHj4vWNsZo8+bNSktLa7L++XHT0tK0adMmGWPUvXt3jRkzRj4+Pu2+JgAAAOBK46mZumcl/VbS2eYOsCxrmmVZBZZlFXz++eed11kHmzp1qqZOnWp/7tKli+68806tWLFCkrRu3TolJSXp2muv1fvvv6/hw4e3eYzc3Fx7+eaHH36ogIAA3XHHHYqPj1d2dra++eabJs8LCgrSpEmTFBISooyMDC1btkxnzzb7SNrs2LFj6tu3rySpT58+9oxjRUWF+vXrZx8XHBysioqKNtWuqqpSQECAvLy8GtW4sL6Xl5f8/f1VVVV1ydcDAAAAXIk6PdRZljVR0mfGmMKWjjPGLDTGJBhjEq6//vpO6q5zXLgE8/zSy/Z66aWXVFBQoOzsbElSfX29tm3bppycHO3evVsfffSR8vLymj3/hRde0KZNmzRy5Ejl5OTovvvua3cvLbEsS5ZlXZbaAAAAwHeZJ2bqvi9pkmVZZZKWS0qxLOslD/ThMaNHj1ZlZaX27NmjHTt2aMKECZKkyMhIFRY2nXUfffRRxcXFKS4uzt62ceNGzZs3T2vXrpW3t7ekczNWcXFxGjRokLy8vHT77bc3eBFJU6Kjo5WVlaU333xTr776agddpdS7d297WWVlZaX93T6Xy6UjR47Yx5WXl8vlcrWpds+ePVVTU6P6+vpGNS6sX19fr9raWnuJKQAAAHC16fRQZ4x5xBgTbIwZIOkuSZuNMf/W2X14kmVZSk9PV2ZmpsaPH29/xyslJUV1dXVauHChfezevXu1bds2zZs3T8XFxSouLpYkFRUV6YEHHtDatWsbvAhlxIgRqqmp0fklq5s3b1ZERESTfZw6dUpbt261PxcXFyskJKTDrnPSpElavHixJGnx4sW67bbb7O1LliyRMUY7d+6Uv7+/vUyztSzLUnJysv1mzm/XPz9ufn6+UlJSmCUEAADAVcsyxnhucMtKkjTLGNPi++sTEhJMQUFB5zT1Leff2DhnzpwOrVtcXKz4+HitX79e48aNs7d/+umnmjlzpgoLC+Xj46MBAwbo2WefVXh4eIPzf/SjH2nfvn12GOrfv7/Wrl0rSXrzzTf1m9/8RsYYDR8+XAsXLlS3bt0a9XDy5Emlp6fr0KFD+t73vqfu3bvrT3/6kxISErR7925NnjxZx48fl4+Pj/r06aP9+/c3eS1lZWUKDw9X79697W3PPPOMUlJS9JOf/ESffPKJQkJCtGLFCgUFBckYo+nTp2vDhg3y9fXVokWLlJCQIEm6+eabdfDgQZ06dUo9e/ZUbm6uxo4d2+S4H330ke666y5VV1crPj5eL730kry9vfX111/rnnvuUVFRkYKCgrR8+XINGjRI0rkXwJw4cUKnT59WQECA3njjjWZDLwAAAHClsCyr0BiT0OQ+T4a61roaQx0AAAAAtFZLoc6Tv1MHAAAAALhEXp5uAJ1j8uTJOnz4cINtTz/9dLNLG5uyb98+3XPPPQ22eXt7a9euXR3SY3M6oncAAADgakWo+45YtWrVJdeIjo62X9TSmTqidwAAAOBqxfJLAAAAAHAwQh0AAAAAOBihDgAAAAAcjFAHAAAAAA5GqAMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYPz4+EWsX79en3zyifbv368XX3xRXbt29XRLAAAAAGBjpq4Fe/bs0YkTJ/TAAw9oyJAhys/P93RLAAAAANAAoa4FO3bsUHh4uCRp3Lhx2r59u4c7AgAAAICGCHUtOH78uLy9vSVJ/v7+qq6u9nBHAAAAANAQoa4FAQEBqqurkyTV1tYqKCjIwx0BAAAAQEOEuhaMHj1apaWlkqTXX39d3//+9z3cEQAAAAA0RKhrQVxcnPz8/PTcc89p//79uvPOOz3dEgAAAAA0wE8aXMStt94qSZozZ46HOwEAAACAxpipAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6jrZv/71L02YMEFDhgxRZGSk5syZY++rq6tTenq6wsLClJiYqLKyMklSVVWVkpOT5efnp+nTpzeoV1hYqOjoaIWFhWnGjBkyxkiSpk6dqoEDByouLk5xcXEaPXq0JCkvL69RjW9rbryTJ0/a9eLi4nTddddp5syZkqSPP/5YbrdbMTExSkpKUnl5uX3eb3/7W0VGRmro0KENemzKiy++qOjoaMXExCgqKkpr1qyRJL3yyiuKjIzUNddco4KCghb737p1qyZOnNho++HDh5WYmKiwsDClp6fr9OnTktp335vS3LOorq5WamqqwsPDlZqaquPHj0uSDh48qJtuukne3t7Kycm5aH0AAACgKYQ6D5g1a5YOHjyooqIibd++XevXr5ck5ebmKjAwUKWlpcrKytLs2bMlST4+PnryySeb/B//hx56SM8//7xKSkpUUl6ZGQcAACAASURBVFKiDRs22Pv++Mc/qri4WMXFxdqxY0er+2tuvB49etj1iouLFRISojvuuMO+pilTpmjv3r167LHH9Mgjj0iSduzYoe3bt2vv3r16//33tXv3br311ltNjlteXq558+bpn//8p/bu3audO3cqJiZGkhQVFaWVK1fqBz/4Qauv49tmz56trKwslZaWKjAwULm5uZLad9+b0tyzmD9/vtxut0pKSuR2uzV//nxJUlBQkP785z9r1qxZ7b4mAAAAgFDXyXx9fZWcnCxJ6tatm4YNG2bPaq1Zs0aZmZmSpLS0NG3atEnGGHXv3l1jxoyRj49Pg1qVlZU6ceKERo0aJcuyNGXKFK1evfqSe2xuvAt9+OGH+uyzz3TzzTdLkj744AOlpKRIkpKTk+0ZNsuy9PXXX+v06dOqq6vTmTNn1Lt37yZrfvbZZ+rRo4f8/PwkSX5+fho4cKAkaejQoRo8eHC7r8kYo82bNystLU2SlJmZad+rtt73prT0LC6sf+G4vXr10ogRI9S1a9d2XxcAAADg5ekGnOD06dPKy8tr9/lTp05tcntNTY3WrVunX//615KkiooK9evXT5Lk5eUlf39/VVVV6brrrmvy/IqKCgUHB9ufg4ODVVFRYX/Ozs7WH/7wB0lSZGSkli1b1u5r+Lbly5crPT1dlmVJkmJjY7Vy5Ur9+te/1qpVq3Ty5ElVVVXppptuUnJysvr27StjjKZPn66hQ4c2WTM2Nla9e/fWwIED5Xa7dccdd+jHP/5xh/RbVVWlgIAAeXmd+yd/4b1q631vSkvP4tixY+rbt68kqU+fPjp27FiHXBMAAAAgMVN3UadPn27xO2DtVV9fr4yMDM2YMUODBg3q8PpSw+WXHRnopHOhLiMjw/6ck5Ojt956S/Hx8XrrrbfkcrnUpUsXlZaW6sCBAyovL1dFRYU2b96sbdu2NVmzS5cu2rBhg/Lz83XjjTcqKytLTzzxRIf27WmWZdlBGAAAAOgIzNS1gmVZzc62tde0adMUHh5uv2hEklwul44cOaLg4GDV19ertrZWPXv2bLaGy+Vq8EKS8vJyuVyuNveyatUqzZ07V5L0wgsvKCEhocXj9+zZo/r6eg0fPtzedsMNN2jlypWSpFOnTunVV19VQECAnn/+eY0aNcpeUjl+/Hi988479rLNb7MsSyNHjtTIkSOVmpqqe++9t0OCXc+ePVVTU6P6+np5eXk1uFdtve9NaelZ9O7dW5WVlerbt68qKyvVq1evS74eAAAA4Dxm6jzgd7/7nWpra/Xss8822D5p0iQtXrxYkpSfn6+UlJQWZ3X69u2ra6+9Vjt37pQxRkuWLNFtt93W5n4mT55sz+hdLNBJ0t///vcGs3SS9MUXX+js2bOSpKeeekr33XefJKl///566623VF9frzNnzuitt95qdvnlp59+qvfee8/+fP5lLB3BsiwlJycrPz9fkrR48WL7XrX1vjelpWdxYf0LxwUAAAA6hDHmiv8bPny48ZS5c+eauXPndli9I0eOGElmyJAhJjY21sTGxprnn3/eGGPMV199ZdLS0kxoaKgZMWKEOXTokH1eSEiICQwMNN27dzcul8vs37/fGGPM7t27TWRkpBk0aJD55S9/ac6ePWuMMSYzM9MMGDDAHiM2NtbU1dWZRYsW2TXO/x05cqRRn82NZ4wxAwcONAcOHGhw/CuvvGLCwsJMeHi4uf/++83XX39tjDGmvr7eTJs2zQwZMsQMHTrUZGVlNXtvysrKTHJyshk8eLCJjY01P/rRj0xpaakxxpiVK1cal8tlunXrZnr16mVuueWWZuts2bLF+Pj4NLjGHTt2mEOHDpkRI0aY0NBQk5aWZvfYnvvelOaexRdffGFSUlJMWFiYcbvdpqqqyhhjTGVlpXG5XKZHjx7G39/fuFwuU1tb22x9AAAAfHdJKjDN5CXLXIbvi3W0hIQEc7HfJrtcfv/730uSHnvsMY+MDwAAAACWZRUaY5pcVsfySwAAAABwMF6UAo9ITExUXV1dg21Lly5VdHR0q2u8/vrr9g+Fnzdw4ECtWrWqQ3psTkf0DgAAAHQUQh08YteuXZdcY+zYsRo7dmwHdNM2HdE7AAAA0FFYfgkAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9S10b/+9S9NmDBBQ4YMUWRkpObMmWPvq6urU3p6usLCwpSYmKiysjJJUlVVlZKTk+Xn56fp06c3qFdYWKjo6GiFhYVpxowZMsZIkqZOnaqBAwcqLi5OcXFxGj16tCQpLy+vUY1va268kydP2vXi4uJ03XXXaebMmZKkjz/+WG63WzExMUpKSlJ5ebl93ieffKJbbrlFQ4cOVUREhH1dTXnttdcUHx+v2NhYRURE6LnnnpMkvf322xo2bJi8vLyUn5/fYv9lZWWKiopqtL26ulqpqakKDw9Xamqqjh8/LkkyxmjGjBkKCwtTTEyM3nvvPfuccePGKSAgQBMnTmxxTEk6fPiwEhMTFRYWpvT0dJ0+fVpS+54rAAAA0Fk8EuosywqwLCvfsqyDlmUdsCzrJk/00V6zZs3SwYMHVVRUpO3bt2v9+vWSpNzcXAUGBqq0tFRZWVmaPXu2JMnHx0dPPvmkcnJyGtV66KGH9Pzzz6ukpEQlJSXasGGDve+Pf/yjiouLVVxcrB07drS6v+bG69Gjh12vuLhYISEhuuOOO+xrmjJlivbu3avHHntMjzzyiH3elClTlJ2drQMHDujdd99Vr169mhz3zJkzmjZtmtatW6c9e/aoqKhISUlJkqT+/fsrLy9Pd999d6uv49vmz58vt9utkpISud1uzZ8/X5K0fv16+/4tXLhQDz30kH1Odna2li5d2qr6s2fPVlZWlkpLSxUYGKjc3FxJ7XuuAAAAQGfx1EzdnyRtMMYMkRQr6YCH+mgzX19fJScnS5K6deumYcOG2bNaa9asUWZmpiQpLS1NmzZtkjFG3bt315gxY+Tj49OgVmVlpU6cOKFRo0bJsixNmTJFq1evvuQemxvvQh9++KE+++wz3XzzzZKkDz74QCkpKZKk5ORkrVmzxt5eX1+v1NRUSZKfn598fX2brHny5EnV19erZ8+ekiRvb28NHjxYkjRgwADFxMTommva/0/uwvubmZlp36s1a9ZoypQpsixLo0aNUk1NjSorKyVJbrdbPXr0uGhtY4w2b96stLS0Juu35bkCAAAAnanTQ51lWf6SfiApV5KMMaeNMTWd3UdHqKmp0bp16+R2uyVJFRUV6tevnyTJy8tL/v7+qqqqavb8iooKBQcH25+Dg4NVUVFhf87OzraXSv70pz/t0N6XL1+u9PR0WZYlSYqNjdXKlSslSatWrdLJkydVVVWlDz/8UAEBAbrjjjsUHx+v7OxsffPNN03WDAoK0qRJkxQSEqKMjAwtW7ZMZ8+e7bCejx07pr59+0qS+vTpo2PHjklqeN+lxvexNaqqqhQQECAvL69GNdr6XAEAAIDO5ImZuoGSPpe0yLKsIsuyXrAsq/u3D7Isa5plWQWWZRV8/vnnnd/l/zHG2N9zu1B9fb0yMjI0Y8YMDRo06LKMfeHyy2XLlnVo7eXLlysjI8P+nJOTo7feekvx8fF666235HK51KVLF9XX12vbtm3KycnR7t279dFHHykvL6/Zui+88II2bdqkkSNHKicnR/fdd1+H9n2eZVl2IAUAAAC+yzwR6rwkDZP038aYeElfSprz7YOMMQuNMQnGmITrr7++s3u8qGnTpik8PNx+0YgkuVwuHTlyRNK50FdbW2svRWyKy+Vq8EKS8vJyuVyuNveyatUqe0avoKDgosfv2bNH9fX1Gj58uL3thhtu0MqVK1VUVKR58+ZJkgICAhQcHKy4uDgNGjRIXl5euv322xu8iKQp0dHRysrK0ptvvqlXX321zdfTnN69e9vLKisrK+3v9l1436X23ceePXuqpqZG9fX1jWq09bkCAAAAnckToa5cUrkxZtf/fc7XuZDnGL/73e9UW1urZ599tsH2SZMmafHixZKk/Px8paSktDib1LdvX1177bXauXOnjDFasmSJbrvttjb3M3nyZHtGLyEh4aLH//3vf28wSydJX3zxhb1U8qmnnrJn2EaMGKGamhqdny3dvHmzIiIimqx76tQpbd261f58/mUsHeXC+7t48WL7Xk2aNElLliyRMUY7d+6Uv7+/vUyztSzLUnJysv1mzm/Xb8tzBQAAADrV+eWFnfknaZukwf/3309I+mNLxw8fPtx4yhNPPGGeeOIJ+/ORI0eMJDNkyBATGxtrYmNjzfPPP2+MMearr74yaWlpJjQ01IwYMcIcOnTIPi8kJMQEBgaa7t27G5fLZfbv32+MMWb37t0mMjLSDBo0yPzyl780Z8+eNcYYk5mZaQYMGGCPERsba+rq6syiRYvsGuf/jhw50qjv5sYzxpiBAweaAwcONDj+lVdeMWFhYSY8PNzcf//95uuvv7b3vfHGGyY6OtpERUWZzMxMU1dX1+S9OnHihBk/fry58cYbTWxsrBk9erTZvXu3McaYd99917hcLuPr62uCgoJMREREs/f88OHDxsvLq8E1rlixwnzxxRcmJSXFhIWFGbfbbaqqqowxxpw9e9b84he/MIMGDTJRUVH2mMYYM2bMGHPdddcZHx8f43K5zIYNG5od99ChQ2bEiBEmNDTUpKWl2fegPc8VAAAA6EiSCkwzeckyTXxf7HKzLCtO0guSukn6SNK9xpjjzR2fkJBgWrOs8HKYO3euJOnxxx/3yPgAAAAAYFlWoTGmyWV5Xp3djCQZY4olXXyd4BXgzTff1JEjR1RaWqoXX3xRXbt29XRLAAAAAGDzSKhzij179ujEiRO677775OXlpfz8/EbfRfuumjx5sg4fPtxg29NPP62xY8e2usa+fft0zz33NNjm7e2tXbt2NXNGx+iI3gEAAIArBaGuBTt27FBoaKgkady4cVq0aBGh7v+sWrXqkmtER0eruLi4A7ppm47oHQAAALhSeOLtl45x/PhxeXt7S5L8/f1VXV3t4Y4AAAAAoCFCXQsCAgJUV1cnSaqtrVVQUJCHOwIAAACAhgh1LRg9erQ++ugjSdLrr7+u73//+x7uCAAAAAAaItS1IC4uTn5+fnrxxRe1f/9+3XnnnZ5uCQAAAAAa4EUpF3H+jYiPPfaYhzsBAAAAgMaYqQMAAAAAByPUAQAAAICDEeoAAAAAwMEIdQAAAADgYLwopQW1tbVauHChPv/8c91xxx2KiorydEsAAAAA0AAzdS3w9fXVT3/6U0VERHi6FQAAAABoEqGuBV27dlX37t093QYAAAAANItQBwAAAAAOxnfqmrBgwQKtXbtWEyZM8HQrAAAAANAiZuqa8PDDD2vr1q3Kzs72dCsAAAAA0CJC3UUsXbpUpaWl+vnPf668vDxPtwMAAAAADbD88iL+7d/+TZL0+OOPe7gTAAAAAGiMmToAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKEOAAAAAByMUAcAAAAADkaoAwAAAAAHI9QBAAAAgIMR6gAAAADAwQh1AAAAAOBghDoAAAAAcDBCHQAAAAA4GKGujf71r39pwoQJGjJkiCIjIzVnzhx7X11dndLT0xUWFqbExESVlZVJkqqqqpScnCw/Pz9Nnz69Qb1HH31U/fr1k5+fX4PtTzzxhFwul+Li4uy/mpoabd26VRMnTmyxx+LiYt10002KjIxUTEyMXn75ZXvf/fffr9jYWMXExCgtLU2nTp2SJL399tsaNmyYvLy8lJ+fbx+/ZcuWBj34+Pho9erVzY792muvKT4+XrGxsYqIiNBzzz3XYv2mlJWVKSoqqtH26upqpaamKjw8XKmpqTp+/LgkyRijGTNmKCwsTDExMXrvvffsc8aNG6eAgICL3jNJOnz4sBITExUWFqb09HSdPn1aUvueKwAAANBZCHXtMGvWLB08eFBFRUXavn271q9fL0nKzc1VYGCgSktLlZWVpdmzZ0uSfHx89OSTTyonJ6dRrR//+Md69913mxwnKytLxcXF9l9AQECr+vP19dWSJUu0f/9+bdiwQTNnzlRNTY0k6ZlnntGePXu0d+9e9e/fX3/5y18kSf3791deXp7uvvvuBrWSk5Pt8Tdv3ixfX1/dcsstTY575swZTZs2TevWrdOePXtUVFSkpKSkFuu3xfz58+V2u1VSUiK326358+dLktavX6+SkhKVlJRo4cKFeuihh+xzsrOztXTp0lbVnz17trKyslRaWqrAwEDl5uZKat9zBQAAADoLoa6NfH19lZycLEnq1q2bhg0bpvLycknSmjVrlJmZKUlKS0vTpk2bZIxR9+7dNWbMGPn4+DSqN2rUKPXt27dDe7zxxhsVHh4uSbrhhhvUq1cvff7555Kka6+9VtK52a2vvvpKlmVJkgYMGKCYmBhdc03z/yTy8/M1fvx4+fr6Nrn/5MmTqq+vV8+ePSVJ3t7eGjx4cKvrX8yF9zczM9OeMVyzZo2mTJkiy7I0atQo1dTUqLKyUpLkdrvVo0ePi9Y2xmjz5s1KS0trsn5bnysAAADQWQh1F2FZlh18vq2mpkbr1q2T2+2WJFVUVKhfv36SJC8vL/n7+6uqqqrdYz/zzDP2ssfzQbKt3n33XZ0+fVqhoaH2tnvvvVd9+vTRwYMH9atf/arVtZYvX66MjIxm9wcFBWnSpEkKCQlRRkaGli1bprNnz7ar76YcO3bMDsB9+vTRsWPHJDW875IUHBysioqKNtWuqqpSQECAvLy8GtXo6OcKAAAAdCRCXTvV19crIyNDM2bM0KBBgy7LGBcuv9yyZUubz6+srNQ999yjRYsWNZghW7RokT799FMNHTq0wfftLlZr3759Gjt2bIvHvfDCC9q0aZNGjhypnJwc3XfffW3uuzVaCtsAAADAdwmhrp2mTZum8PBwzZw5097mcrl05MgRSedCX21trb0U8XLatWuXPaO3du1aSdKJEyc0YcIEzZs3T6NGjWp0TpcuXXTXXXfp1VdfbdUYK1as0OTJk9W1a9eLHhsdHa2srCy9+eabra7fGr1797aXVVZWVqpXr16SGt53SSovL5fL5WpT7Z49e6qmpkb19fWNanjquQIAAACtQahrh9/97neqra3Vs88+22D7pEmTtHjxYknnvn+WkpLSKbNJiYmJ9ozepEmTdPr0aU2ePFlTpkyxvyMmnfveWGlpqf3fa9eu1ZAhQ1o1xt///vcWl15K0qlTp7R161b7c3FxsUJCQtp+Qc248P4uXrxYt912m719yZIlMsZo586d8vf3b/P3FC3LUnJysv1mzm/X98RzBQAAAFrFGHPF/w0fPtx4yty5c83cuXPtz0eOHDGSzJAhQ0xsbKyJjY01zz//vDHGmK+++sqkpaWZ0NBQM2LECHPo0CH7vJCQEBMYGGi6d+9uXC6X2b9/vzHGmOzsbONyuYxlWcblcpnHH3/cGGPM448/bm644QZ7jNjYWHP48GGzZcsW4+PjY1wul/23Y8eOBj0vXbrUeHl5NTi3qKjIfPPNN2b06NEmKirKREZGmrvvvtvU1tYaY4x59913jcvlMr6+viYoKMhERETY9Q4fPmxuuOEG880337R4r06cOGHGjx9vbrzxRhMbG2tGjx5tdu/efdH633b48GHj5eXV4BpXrFhhvvjiC5OSkmLCwsKM2+02VVVVxhhjzp49a37xi1+YQYMGmaioKHtMY4wZM2aMue666+x7tmHDhmbHPXTokBkxYoQJDQ01aWlp5uuvv273cwUAAAA6kqQC00xess7tv7IlJCSYgoICj4z9+9//XpL02GOPeWR8AAAAALAsq9AYk9DUPpZfAgAAAICDeXm6ATjT5MmTdfjw4Qbbnn766Yu+HfNC+/bt0z333NNgm7e3t3bt2tUhPTanI3oHAAAArhSEOrTLqlWrLrlGdHS0iouLO6CbtumI3gEAAIArBcsvAQAAAMDBCHUAAAAA4GCEOgAAAABwMEIdAAAAADgYoQ4AAAAAHIxQBwAAAAAORqgDAAAAAAcj1AEAAACAg/Hj4xfxxhtv6MiRIyopKdGLL76orl27erolAAAAALAxU9eCPXv26OTJk7r//vs1ZMgQ5efne7olAAAAAGiAUNeCHTt2KDQ0VJI0btw4bd++3cMdAQAAAEBDhLoWHD9+XN7e3pIkf39/VVdXe7gjAAAAAGiIUNeCgIAA1dXVSdL/Z+/ew7Iq8/2Pf5Y+JikqYAoEhocHNc4qijnacBhPHXCcKKTfNtSZaXTG7UiHwRln9tRu2trWbYc9c/3KIiFrIqPUrMTylKVZgqJpOQLBhIimgJCVKHn//nB8fpKAqJyWvV/XxVXPvdb63t/1PNfMNZ9Z91pLVVVV8vLyauOOAAAAAKAuQl0jRo0apc8//1yStG7dOv3oRz9q444AAAAAoC5CXSMiIiLUtWtXpaWlad++fbrjjjvauiUAAAAAqINXGlzE7bffLkmaN29eG3cCAAAAABfiSh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFCHq9o333yjW2+9VYMHD1ZwcLDmzZvn2lZTU6PExEQ5nU5FRUWpuLhYklReXq6YmBi5u7tr9uzZF6313nvv6aabbqozb21trby9vXXo0KELepoxY4Z69+6tkJCQOuMVFRUaO3asAgMDNXbsWFVWVkqSjDGaM2eOnE6nwsLCtHPnTtcxEyZMkIeHh2677baLfhdvvvmmhgwZovDwcAUFBemZZ56RJG3ZskVDhw6Vw+FQVlZWozWKi4sv6Ls1ei8qKlJUVJScTqcSExN16tQpSZf+GwIAAFyN2iTUWZaVYlnWPsuy9lqW9bJlWW5t0Qd+GB544AHt379fu3bt0tatW7V27VpJUlpamjw9PVVQUKCUlBSlpqZKktzc3PTII49o8eLFTao1ZswYHTx4UP/85z9d+61fv17BwcG6/vrrL6gxbdo0ZWdnXzC+cOFCxcXFKT8/X3FxcVq4cKEkae3atcrPz1d+fr6WLl2qWbNmuY558MEHtXz58ot+B6dPn9a9996rNWvWaPfu3dq1a5eio6MlSTfccIPS09N19913X7ROQ1qyd0lKTU1VSkqKCgoK5OnpqbS0NEmX9xsCAABcbVo91FmW5SdpjqRIY0yIpI6SprR2H/hh6NKli2JiYiRJ11xzjYYOHaqDBw9KklavXq3k5GRJUkJCgjZs2CBjjLp27arRo0fLzc2tSbU6dOigu+66S5mZma59MzMzlZSUVG9PN998s7y8vC4YP7+f5ORkrVq1yjV+zz33yLIsjRw5UsePH1dZWZkkKS4uTt26dbvo9/DVV1+ptrZWPXv2lCR17txZgwYNkiT17dtXYWFh6tDh8v/roCV7N8Zo48aNSkhIqLf+pfyGAAAAVyNHG857rWVZpyV1kXThGjWbSk9Pb+sWfvCmTZtW7/jx48e1Zs0a/fa3v5UklZaWqk+fPpIkh8OhHj16qLy8XNddd91F5/h+raSkJP3yl79Uamqqampq9Pbbb2vJkiWX1PeRI0fk6+srSfLx8dGRI0cu6FOS/P39VVpa6tq3Kby8vBQfH6+AgADFxcXptttuU1JS0hUFudbqvby8XB4eHnI4HHVqfL/+pf6GAAAAV4tWv1JnjCmVtFjSF5LKJFUZY975/n6WZd1rWVaOZVk5R48ebe02L0t6eroOHz7c1m2gHrW1tUpKStKcOXPUv3//Zq8VGRmpEydO6B//+IfWrl2rqKioeq/GNZVlWbIs64r6/L7nnntOGzZs0IgRI7R48WLNmDGjWeuf0xK9AwAAoGGtfqXOsixPSZMk9ZN0XNKrlmX9mzHmxfP3M8YslbRUkiIjI01r93m5fHx8GrxShLZz7733KjAwUHPnznWN+fn5qaSkRP7+/qqtrVVVVZVreeKl1pLOXq3LzMzUZ5995lp6WVJSottvv12SNHPmTM2cObPBut7e3iorK5Ovr6/KysrUu3fvOn2ec/DgQfn5+TX95M8TGhqq0NBQTZ06Vf369Wu2K8st2XvPnj11/Phx1dbWyuFw1Klxub8hAADA1aQtHpTyE0lFxpijxpjTkl6XNKoN+sAPxB//+EdVVVXpiSeeqDMeHx+vjIwMSVJWVpZiY2MveoWpoVrS2VD34osvauPGjZo0aZIkqU+fPsrLy1NeXl6jge77/WRkZLhqxMfH64UXXpAxRtu3b1ePHj0uafmiJJ04cUKbN292fc7Ly1NAQMAl1Wir3i3LUkxMjOvJnN+vf6m/IQAAwFXHGNOqf5KiJO3T2XvpLEkZkv69sWOGDRtm2sqCBQvMggULmrTvsmXLzLJly1q2IVySkpISI8kMHjzYhIeHm/DwcPPsqY8JGgAAIABJREFUs88aY4z59ttvTUJCghkwYIAZPny4KSwsdB0XEBBgPD09TdeuXY2fn5/Zt29fo7XOCQ8PN4mJiY32NGXKFOPj42McDofx8/Mzzz33nDHGmGPHjpnY2FjjdDpNXFycKS8vN8YYc+bMGfPrX//a9O/f34SEhJgdO3a4ao0ePdpcd911xs3Nzfj5+Zns7Ox656yurjYTJ040AwcONOHh4WbUqFGuOh9//LHx8/MzXbp0MV5eXiYoKKjB3ouKilx9n/tbsWJFi/ZujDGFhYVm+PDhZsCAASYhIcGcPHnSGHPpvyEAAIBdScoxDeQl6+z21mVZ1sOSEiXVStol6RfGmJqG9o+MjDQ5OTmt1V4d5x7Nfv77zRpybikbyy8BAAAANCfLsnKNMZH1bWuTp18aY/4s6c9tMTcAAAAAXE3a6pUGAFrI5MmTVVRUVGfsscce0/jx45tc45NPPtHUqVPrjHXu3FkfffRRs/TYkOboHQAA4IeGUAdcZVauXHnFNUJDQ5WXl9cM3Vya5ugdAADgh6Ytnn4JAAAAAGgmhDoAAAAAsDFCHQAAAADYGKEOAAAAAGyMUAcAAAAANkaoAwAAAAAbI9QBAAAAgI0R6gAAAADAxgh1AAAAAGBjhLrvSU1N1ZgxYzR16lSdPn3aNV5dXa34+HjFxMTowQcfdI3HxsbKw8NDb775pmts3rx5uv766/XAAw+0au8AAAAAfngIdefZvXu3SktL9f7772vw4MHKyspybVu6dKkmTZqkTZs26euvv9bHH38sSXrxxRc1d+7cOnXmzp2rl156qVV7BwAAAPDDRKg7z7Zt2zRu3DhJ0oQJE7R161bXtsLCQkVEREiShg4dqi1btkiSrr/++gvq+Pj4yLKsVugYAAAAwA8doe48lZWV6t69uySpR48eqqiocG0LCgrSxo0bJUnr169XZWVlm/QIAAAAAOcj1J3Hw8ND1dXVkqSqqip5eXm5tv3iF7/QZ599pp/85Cdyd3eXj49PW7UJAAAAAC6EuvOMGjVK69evlyStW7dOP/rRjyRJp06d0iuvvKKbb75Z//Zv/6YDBw7o5MmTSk9PV3p6uvLy8rR+/XodPny4LdsHAAAA8APkaOsG2pOIiAh5e3trzJgxuuGGG/TAAw9o3LhxmjBhgr744gv9/e9/l2VZGjVqlHr16iVJSktL0z/+8Q/t3LlTQUFBmjJlip588km98MILOnbsmEpLS/Xyyy+38ZkBAAAAuFpZxpi27uGiIiMjTU5OTpvMnZ6eLkmaNm1as+4LAAAAAE1lWVauMSayvm0svwQAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxR1N3tCyrtyS3c5+NMV+0SEcAAAAAgCa76JU6y7LiLcvKl1Qk6T1JxZLWtnBfAAAAAIAmaMryy0ckjZR0wBjTT1KcpO0t2hUAAAAAoEmaEupOG2PKJXWwLKuDMWaTpMgW7gsAAAAA0ARNCXXHLctyl7RF0kuWZT0p6euWbQvt2TfffKNbb71VgwcPVnBwsObNm+faVlNTo8TERDmdTkVFRam4uFiSVF5erpiYGLm7u2v27Nl16uXm5io0NFROp1Nz5syRMUaSNG3aNPXr108RERGKiIjQqFGjJEnp6ekX1Pi+hub76quvXPUiIiJ03XXXae7cuXWOfe2112RZlnJyciRJp06d0vTp0xUaGqrw8HBt3ry50bmff/55hYaGKiwsTCEhIVq9erUk6dVXX1VwcLA6dOjgqt2QzZs367bbbrtgvKioSFFRUXI6nUpMTNSpU6ckXd73Xp+GfouKigqNHTtWgYGBGjt2rCorKyVJ+/fv10033aTOnTtr8eLFF60PAACA5teUUDdJ0reSUiRlSyqUdHtLNoX274EHHtD+/fu1a9cubd26VWvXnr3NMi0tTZ6eniooKFBKSopSU1MlSW5ubnrkkUfq/R/+s2bN0rPPPqv8/Hzl5+crOzvbtW3RokXKy8tTXl6etm3b1uT+GpqvW7durnp5eXkKCAjQz372M9f2r776Sk8++aSioqJcY88++6wk6ZNPPtG7776r+++/X2fOnKl33oMHD+rRRx/VBx98oD179mj79u0KCwuTJIWEhOj111/XzTff3OTz+L7U1FSlpKSooKBAnp6eSktLk3R533t9GvotFi5cqLi4OOXn5ysuLk4LFy6UJHl5eempp57SAw88cNnnBAAAgCvTlFAXYIz5zhhTa4zJMMY8JSm0pRtD+9WlSxfFxMRIkq655hoNHTpUBw8elCStXr1aycnJkqSEhARt2LBBxhh17dpVo0ePlpubW51aZWVlqq6u1siRI2VZlu655x6tWrXqintsaL7zHThwQF9++aXGjBnjGvvTn/6k1NTUOsd9+umnio2NlST17t1bHh4eDV5p+/LLL9WtWze5u7tLktzd3dWvXz9J0o033qhBgwZd9jkZY7Rx40YlJCRIkpKTk13f1aV+7/Vp7Lc4v/758/bu3VvDhw9Xp06dLvu8AAAAcGWa8kqDFZZlLZf03zr7SoP/1tl76m5qycbs6vDhw0pPT2/rNprdtGnT6h0/fvy41qxZo9/+9reSpNLSUvXp00eS5HA41KNHD5WXl+u6666r9/jS0lL5+/u7Pvv7+6u0tNT1+cEHH9Rf/vIXSVJwcLBeeuml5jgdSVJmZqYSExNlWZYkaefOnSopKdGtt96qRYsWufYLDw/XG2+8oaSkJJWUlCg3N1clJSUaMWLEBTXDw8Pl7e2tfv36KS4uTj/72c90++3Nc2G7vLxcHh4ecjjO/sf2/O/qUr/3+jT2Wxw5ckS+vr6SJB8fHx05cqRZzgkAAABXrimhLkrSY5K2Seom6SVJP2rJpuxq2rRpV2Wga0htba2SkpI0Z84c9e/fv0XmWLRokevKVHPLzMzU8uXLJUlnzpzRfffdV+/vN2PGDH322WeKjIxUQECARo0apY4dO9Zbs2PHjsrOztaOHTu0YcMGpaSkKDc3Vw899FCLnENbsCzLFYQBAADQ9poS6k7r7D111+rslboiY0z9NxShwStaV6N7771XgYGBdR404ufnp5KSEvn7+6u2tlZVVVXq2bNngzX8/PxcSzels/ek+fn5XXIvK1eu1MMPPyxJeu655xQZ2fgDWnfv3q3a2loNGzZM0tl76fbu3avo6GhJZ6+4xsfH64033lBkZKQef/xx17GjRo3SwIEDG6xtWZZGjBihESNGaOzYsZo+fXqzhLqePXvq+PHjqq2tlcPhqPNdXer3Xp/Gfgtvb2+VlZXJ19dXZWVl6t279xWfDwAAAJpHU+6p26GzoW64pDGSkizLerVFu0K798c//lFVVVV64okn6ozHx8crIyNDkpSVlaXY2NhGr+r4+vqqe/fu2r59u4wxeuGFFzRp0qRL7mfy5Mmuh59cLNBJ0ssvv6ykpCTX5x49eujYsWMqLi5WcXGxRo4c6Qp033zzjb7++uwDX9999105HA4FBQXVW/fQoUPauXOn6/O5h7E0B8uyFBMTo6ysLElSRkaG67u61O+9Po39FufXP39eAAAAtAPGmEb/JEXWMzb1Ysc159+wYcNMW1m2bJlZtmxZm83fHpWUlBhJZvDgwSY8PNyEh4ebZ5991hhjzLfffmsSEhLMgAEDzPDhw01hYaHruICAAOPp6Wm6du1q/Pz8zL59+4wxxuzYscMEBweb/v37m9/85jfmzJkzxhhjkpOTTd++fV1zhIeHm5qaGrNs2TJXjXN/JSUlF/TZ0HzGGNOvXz/z2WefNXiOP/7xj82OHTuMMcYUFRWZgQMHmsGDB5u4uDhTXFzc4HHFxcUmJibGDBo0yISHh5uf/OQnpqCgwBhjzOuvv278/PzMNddcY3r37m3GjRvXYJ1NmzYZNze3Oue4bds2U1hYaIYPH24GDBhgEhISzMmTJy/7e69PQ7/FsWPHTGxsrHE6nSYuLs6Ul5cbY4wpKyszfn5+plu3bqZHjx7Gz8/PVFVVNVgfAAAAl0dSjmkgL1nmX++huhjLsnrr7PLLc2Hwi+aPmPWLjIw0F3uvV0s5d4/VD2lZJQAAAID2xbKsXGNMvUvSLrr80rKs2y3LypdUJOk9ScWS1jZrhwAAAACAy9KUB6X8RdJISeuNMUMsy4qR9G8t2xbQ/kVFRammpqbO2PLlyxUa2vTXOK5bt871ovBz+vXrp5UrVzZLjw1pjt4BAADQPjTp6ZfGmHLLsjpYltXBGLPJsqwnLn4YcHX76KOPrrjG+PHjNX78+Gbo5tI0R+8AAABoH5oS6o5bluUuaYuklyzL+lLSiZZtCwAAAADQFE0JdbslfSMpRdL/kdRDkntLNgUAAAAAaJqmhLoYc/Zl42ckZUiSZVl7WrQrAAAAAECTNBjqLMuaJenXkgZ8L8R1k7S1pRsDAAAAAFxcY1fq/q6zry5YIGneeeNfGWMqWrQrAAAAAECTNBjqjDFVkqokJbVeOwAAAACAS3HRl48DAAAAANovQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAG2uxUGdZ1vOWZX1pWdbe88a8LMt617Ks/H/907Ol5r8aTZ8+Xc8880ydsVWrVmnixImSpMOHD2vKlCkaMGCAhg0bpltuuUUHDhy4oM6WLVs0dOhQORwOZWVl1dnWsWNHRUREKCIiQvHx8Y328+abb2rIkCEKDw9XUFCQq7fG6n9fcXGxQkJCLhivqKjQ2LFjFRgYqLFjx6qyslKSZIzRnDlz5HQ6FRYWpp07d7qOmTBhgjw8PHTbbbc1OqckFRUVKSoqSk6nU4mJiTp16pQkqaamRomJiXI6nYqKilJxcbEkqby8XDExMXJ3d9fs2bMvWh8AAABoLS15pS5d0oTvjc2TtMEYEyhpw78+o4mSkpKUmZlZZywzM1NJSUkyxmjy5MmKjo5WYWGhcnNztWDBAh05cuSCOjfccIPS09N19913X7Dt2muvVV5envLy8vTGG2802Mvp06d17733as2aNdq9e7d27dql6Ojoi9ZvqoULFyouLk75+fmKi4vTwoULJUlr165Vfn6+8vPztXTpUs2aNct1zIMPPqjly5c3qX5qaqpSUlJUUFAgT09PpaWlSZLS0tLk6empgoICpaSkKDU1VZLk5uamRx55RIsXL77scwIAAABaQouFOmPMFkkV3xueJCnjX/+eIemnLTX/1SguLk779+9XWVmZJOnrr7/W+vXr9dOf/lSbNm1Sp06dNHPmTNf+4eHhGjNmzAV1+vbtq7CwMHXocPk//1dffaXa2lr17NlTktS5c2cNGjSo2eqvXr1aycnJkqTk5GStWrXKNX7PPffIsiyNHDlSx48fd30fcXFx6tat20VrG2O0ceNGJSQk1Fv/3LwJCQnasGGDjDHq2rWrRo8eLTc3t8s+JwAAAKAltPY9dd7GmLJ//fthSd4N7WhZ1r2WZeVYlpVz9OjR1umunUlPT1d6errrc8eOHXXHHXdoxYoVkqQ1a9YoOjpa3bt31969ezVs2LArnvPkyZOKjIzUyJEjXUGnPl5eXoqPj1dAQICSkpL00ksv6cyZM1c8/zlHjhyRr6+vJMnHx8d1xbG0tFR9+vRx7efv76/S0tJLql1eXi4PDw85HI4Lapxf3+FwqEePHiovL7/i8wEAAABaSps9KMUYYySZRrYvNcZEGmMie/Xq1YqdtW/nL8E8t/SyOf3zn/9UTk6O/v73v2vu3LkqLCxscN/nnntOGzZs0IgRI7R48WLNmDGjWXs5x7IsWZbVIrUBAAAAu2vtUHfEsixfSfrXP79s5fltb9SoUSorK9Pu3bu1bds23XrrrZKk4OBg5ebm1nvM/PnzXQ8/uRg/Pz9JUv/+/RUdHa1du3Y1un9oaKhSUlL07rvv6rXXXrvEs2mYt7e3a1llWVmZevfu7eqvpKTEtd/BgwddPTdVz549dfz4cdXW1l5Q4/z6tbW1qqqqci0xBQAAANqj1g51b0hK/te/J0ta3crz255lWUpMTFRycrImTpzouscrNjZWNTU1Wrp0qWvfPXv26P3339ejjz7qevhJYyorK1VTUyNJOnbsmLZu3aqgoKB69z1x4oQ2b97s+pyXl6eAgIArPLv/Lz4+XhkZZ2+/zMjI0KRJk1zjL7zwgowx2r59u3r06OFaptlUlmUpJibG9WTO79c/N29WVpZiY2O5SggAAID2zRjTIn+SXpZUJum0pIOSfi6pp84+9TJf0npJXk2pNWzYMNNWli1bZpYtW9au5t61a5eRZNauXVtnvLS01Nx5552mf//+JigoyNxyyy3mwIEDFxz/8ccfGz8/P9OlSxfj5eVlgoKCjDHGbN261YSEhJiwsDATEhJinnvuuQZ7q66uNhMnTjQDBw404eHhZtSoUWbHjh2N1q9PUVGRcTgcxs/Pz/W3YsUKc+zYMRMbG2ucTqeJi4sz5eXlxhhjzpw5Y37961+b/v37m5CQENecxhgzevRoc9111xk3Nzfj5+dnsrOzG5y3sLDQDB8+3AwYMMAkJCSYkydPGmOM+fbbb01CQoIZMGCAGT58uCksLHQdExAQYDw9PU3Xrl2Nn5+f2bdvX4P1AQAAgOYkKcc0kJess9vbt8jISJOTk9Mmc597UMm0adN+UHMDAAAAaD8sy8o1xkTWt63NHpQCAAAAALhyjrZuAO3f5MmTVVRUVGfsscce0/jx45tc45NPPtHUqVPrjHXu3FkfffRRs/TYkOboHQAAAGjPCHW4qJUrV15xjdDQ0Is+qKUlNEfvAAAAQHvG8ksAAAAAsDFCHQAAAADYGKEOAAAAAGyMUAcAAAAANkaoAwAAAAAbI9QBAAAAgI0R6gAAAADAxgh1AAAAAGBjhLo2VFVVpREjRsjd3V179+5t63YAAAAA2BChrg116dJFb731lhISEtq6FQAAAAA2RahrQ506dVKvXr3aug0AAAAANkaoAwAAAAAbI9S1gSVLlig6OlqLFi1q61YAAAAA2JyjrRv4Ibrvvvt03333tXUbAAAAAK4ChLpWkJ6e3uC2JUuWqKSkRB988IGio6M1evRo17bDhw/Lx8enFToEAAAAYFeEuhaWnp7eaDjjih0AAACAK0GoawU+Pj6aNm3aJR/X2BU+AAAAAJB4UAoAAAAA2BqhDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihzkamT5+uZ555ps7YqlWrNHHiREnS4cOHNWXKFA0YMEDDhg3TLbfcogMHDlxQZ8uWLRo6dKgcDoeysrLqbPvd736n4OBg3XjjjZozZ46MMQ328/zzzys0NFRhYWEKCQnR6tWrJUmvvvqqgoOD1aFDB+Xk5DR6Tps3b9Ztt912wXhRUZGioqLkdDqVmJioU6dOSZJqamqUmJgop9OpqKgoFRcXS5LKy8sVExMjd3d3zZ49u9E5JSk3N1ehoaFyOp11zrOiokJjx45VYGCgxo4dq8rKSknS/v37ddNNN6lz585avHjxResDAAAArYVQZyNJSUnKzMysM5aZmamkpCQZYzR58mRFR0ersLBQubm5WrBggY4cOXJBnRtuuEHp6em6++6764xv27ZNW7du1Z49e7R3717t2LFD7733Xr29HDx4UI8++qg++OAD7dmzR9u3b1dYWJgkKSQkRK+//rpuvvnmyz7X1NRUpaSkqKCgQJ6enkpLS5MkpaWlydPTUwUFBUpJSVFqaqokyc3NTY888kiTA9esWbP07LPPKj8/X/n5+crOzpYkLVy4UHFxccrPz1dcXJwWLlwoSfLy8tJTTz2lBx544LLPCQAAAGgJhDobiYuL0/79+1VWViZJ+vrrr7V+/Xr99Kc/1aZNm9SpUyfNnDnTtX94eLjGjBlzQZ2+ffsqLCxMHTrU/fkty9LJkyd16tQp1dTU6PTp0/L29q63ly+//FLdunWTu7u7JMnd3V39+vWTJN14440aNGjQZZ+nMUYbN25UQkKCJCk5OVmrVq2SJK1evVrJycmSpISEBG3YsEHGGHXt2lWjR4+Wm5vbReuXlZWpurpaI0eOlGVZuueee+qtf/68vXv31vDhw9WpU6fLPi8AAACgJRDqbKRjx4664447tGLFCknSmjVrFB0dre7du2vv3r0aNmzYFdW/6aabFBMTI19fX/n6+mr8+PG68cYb6903PDxc3t7e6tevn6ZPn641a9Zc0dznKy8vl4eHhxwOhyTJ399fpaWlkqTS0lL16dNHkuRwONSjRw+Vl5dfUv3S0lL5+/u7Pp9f/8iRI/L19ZUk+fj41HulEwAAAGhPCHXt2LRp0zRt2rQ6Y+cvwTy39LK5FBQU6LPPPtPBgwdVWlqqjRs36v333693344dOyo7O1tZWVkaOHCgUlJS9NBDDzVbL+2BZVmyLKut2wAAAAAaRaizmVGjRqmsrEy7d+/Wtm3bdOutt0qSgoODlZubW+8x8+fPV0REhCIiIhqtvXLlSo0cOVLu7u5yd3fXxIkT9eGHHza4v2VZGjFihH7/+98rMzNTr7322uWf2Hl69uyp48ePq7a2VtLZ+/f8/PwkSX5+fiopKZEk1dbWqqqqSj179ryk+n5+fjp48KDr8/n1vb29Xctby8rK1Lt37ys+HwAAAKAlEepsxrIsJSYmKjk5WRMnTnTdQxYbG6uamhotXbrUte+ePXv0/vvv69FHH1VeXp7y8vIarX3DDTfovffeU21trU6fPq333nuvweWXhw4d0s6dO12f8/LyFBAQ0AxnePYcY2JiXE/mzMjI0KRJkyRJ8fHxysjIkCRlZWUpNjb2kq+m+fr6qnv37tq+fbuMMXrhhRfqrX/+vAAAAEB7ZTX2yPr2IjIy0lzs0fgtJT09XZIuWAbZWsfXJy8vT0OGDNHatWs1YcIE1/ihQ4c0d+5c5ebmys3NTX379tUTTzyhwMDAOsfv2LFDkydPVmVlpdzc3OTj46N9+/bpu+++069//Wtt2bJFlmVpwoQJWrJkSb09/POf/9T06dN16NAhubm5qVevXnr66ac1YMAArVy5Uv/+7/+uo0ePysPDQxEREVq3bl29dTZv3qyJEyfWudr26quvytvbW1OmTFFFRYWGDBmiF198UZ07d9bJkyc1depU7dq1S15eXsrMzFT//v0lnX0ATHV1tU6dOiUPDw+98847CgoKqnfenJwcTZs2Td9++60mTpyo//3f/5VlWSovL9ddd92lL774QgEBAVqxYoW8vLx0+PBhRUZGqrq6Wh06dJC7u7s+/fRTde/e/ZJ+OwAAAOByWJaVa4yJrHcboa5x7THUAQAAAPhhaSzUsfwSAAAAAGzM0dYNoP2LiopSTU1NnbHly5crNDS0yTXWrVvnelH4Of369dPKlSubpceGNEfvAAAAQHtGqMNFffTRR1dcY/z48Ro/fnwzdHNpmqN3AAAAoD1j+SUAAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUNSI1NVX/9V//paVLl+r06dOu8erqasXHxysmJkYPPvhgnWM+/PBDWZalEydOSJK2b9+uRx55RNHR0fr0009btX8AAAAAVz9CXQN2796t0tJS/eEPf5Cvr6+ysrJc25YuXapJkyZp06ZN+vrrr/Xxxx+7tj311FMaNmyYJOm7777T2rVr9fvf/14vvfSS/vCHP7T6eQAAAAC4uhHqGrBt2zaNGzdOkhQaGqqtW7e6thUWFioiIkKSNHToUG3ZskWS9MEHHygsLEzu7u6SpGPHjsnT01MOh0N+fn7av39/K58FAAAAgKsdoa4BlZWV6t69uyTp2muvVUVFhWtbUFCQNm7cKElav369KisrJUlPPvmkZs+e7dqvV69eqqio0DfffKN9+/apoKCgzjJOAAAAALhShLoGeHh4qLq6WpL07bffysvLy7XtF7/4hT777DP95Cc/kbu7u3x8fPTee+8pPDxc3bp1c+3XoUMH3XnnnXrqqaf03//934qKilKnTp1a/VwAAAAAXL0sY0xb93BRkZGRJicnp1XnzMvL05IlSxQbG6uXX35Z/fr108iRIy/Y7/nnn9ftt9+uvLw87dy5Uw6HQ0VFRRo8eLBmz56tw4cPy8fHR6NGjdKSJUv09NNPt+p5AAAAALA/y7JyjTGR9W3jSl0DIiIi5O3trbS0NFVXVysyMlLp6emSpC+++EILFy7UY489psDAQPXq1Utjx45VamppNsVOAAAgAElEQVSq7r//fvn7++sXv/iFJGnNmjV67LHH9Ic//EF/+ctfJEkTJkxQeHi4goODNXPmTH333XeSpIceekh+fn6KiIhQRESE3n77bUlScXGxrr32Wtf4zJkzL+g3Pj5eISEhDZ5Pdna2Bg0aJKfTqYULF7rGN2zYoKFDhyoiIkKjR49WQUFBgzX+8Y9/KDo6WhEREbrxxht17733SpLKy8sVExMjd3f3OstPG9K3b18dO3aszpgxRnPmzJHT6VRYWJh27tzp2paRkaHAwEAFBgYqIyPDNT5//nz16dPHdQ9jY2pqapSYmCin06moqCgVFxe7ti1YsEBOp1ODBg3SunXrXOMzZsxQ7969G/1eAQAAgDZnjGmRP0nPS/pS0t7zxhZJ2i9pj6SVkjyaUmvYsGHGrpYtW2aWLVtWZ6yqqsoYY8yZM2fMz372M/Pyyy8bY4z585//bBYtWnRBjaKiIhMcHNzgHK+99ppJSkpqcJ/a2lrTv39/U1hYaGpqakxYWJjZt2+fMcaYwMBA8+mnnxpjjPnb3/5mkpOTG5xn3LhxZtWqVa7Pe/bsMcYYc+LECfP++++b//t//6/5zW9+0+Dx5wQEBJijR4/WGXvrrbfMhAkTzJkzZ8yHH35oRowYYYwxpry83PTr18+Ul5ebiooK069fP1NRUWGMMebDDz80hw4dMl27dr3onH/729/Mr371K2OMMS+//LK56667jDHG7Nu3z4SFhZmTJ0+azz//3PTv39/U1tYaY4x57733TG5ubqPfPQAAANAaJOWYBvJSS16pS5c04Xtj70oKMcaESTog6fctOH+7de4BLLW1tTp16pQsy7rsWidOnNCSJUv0xz/+scF9Pv74YzmdTvXv31/XXHONpkyZotWrV0uSLMty3TtYVVWl66+/vsE6ZWVl8vf3d30ODQ2VJHXt2lWjR4+Wm5vbZZ/H6tWrdc8998iyLI0cOVLHjx9XWVmZ1q1bp7Fjx8rLy0uenp4aO3assrOzJUkjR46Ur69vk+snJydLkhISErRhwwYZY7R69WpNmTJFnTt3Vr9+/eR0Ol2vqLj55pvr3EsJAAAAtEctFuqMMVskVXxv7B1jTO2/Pm6X5H/BgT8Q48ePV+/evdWtWzclJCS4xv/6178qLCxMM2bMcD1VU5KKioo0ZMgQ/fjHP9b777/vGv/Tn/6k+++/X126dGlwrtLSUvXp08f12d/fX6WlpZKk5557Trfccov8/f21fPlyzZs3r8E6KSkpio2N1cSJE/X444/r+PHjl3Xul9JjY71fbn2Hw6EePXqovLy82eoDAAAAbaUt76mbIWltQxsty7rXsqwcy7Jyjh492optNa/Dhw/r8OHDF4yvW7dOZWVlqqmpcb0eYdasWSosLFReXp58fX11//33S5J8fX31xRdfaNeuXVqyZInuvvtuVVdXKy8vT4WFhZo8efJl9/f444/r7bff1sGDBzV9+nTdd999De47ffp0ffbZZ7rzzju1efNmjRw5UjU1NZc9NwAAAIAr1yahzrKs+ZJqJb3U0D7GmKXGmEhjTGSvXr1ar7lW5ObmpkmTJrmWQnp7e6tjx47q0KGDfvnLX7qWAXbu3Fk9e/aUJA0bNkwDBgzQgQMH9OGHHyonJ0d9+/bV6NGjdeDAAUVHR6ukpMT1UJWnn35afn5+Kikpcc178OBB+fn56ejRo9q9e7eioqIkSYmJidq2bVujPV9//fWaMWOGVq9eLYfDob179zbLd9FQjw2NX0n92tpaVVVVqWfPns1WHwAAAGgrrR7qLMuaJuk2Sf/nXzf8/aCcOHFCZWVlks6Gi7feekuDBw+WJNe4JK1cudL11MWjR4+6npD5+eefKz8/X/3799esWbN06NAhFRcX64MPPtDAgQO1efNm9enTR3l5ecrLy9PMmTM1fPhw5efnq6ioSKdOnVJmZqbi4+Pl6empqqoqHThwQJL07rvv6sYbb2yw9+zsbNfL0w8fPqzy8vJmC0Dx8fF64YUXZIzR9u3b1aNHD/n6+mr8+PF65513VFlZqcrKSr3zzjsaP378ZdU/9+TMrKwsxcbGyrIsxcfHKzMzUzU1NSoqKlJ+fr5GjBjRLOcEAAAAtAZHa05mWdYESb+T9GNjzDetOXd78fXXXys+Pl41NTU6c+aMYmJiXK8o+N3vfqe8vDxZlqW+ffvqmWeekSRt2bJF//Ef/6FOnTqpQ4cOevrppy/pAR4Oh0N//etfNX78eH333XeaMWOGgoODJUnPPvus7rjjDnXo0EGenp56/vnnG6zzzjvv6Le//a3rgSiLFi2Sj4+PpLOvKaiurtapU6e0atUqvfPOOwoKCmqwVlhYmDp0OPv/Kdx11136n//5H7399ttyOp3q0qWLli1bJkny8vLSn/70Jw0fPlyS9B//8R+uc//d736nv//97/rmm29cr5F46KGH6p3v5z//uaZOnSqn0ykvLy9lZmZKkoKDg3XXXXcpKChIDodDf/vb39SxY0dJUlJSkjZv3qxjx47J399fDz/8sH7+85836TsHAAAAWkuLvXzcsqyXJUVLuk7SEUl/1tmnXXaWVP6v3bYbYy586dr3tMXLx5vLuXfCNfYAEgAAAABoTGMvH2+xK3XGmKR6htNaaj4AAAAA+CFq1eWXsIdHH31Ur776ap2xO++8U/Pnz7+kOlFRURc8HXP58uWu99u1hObqHQAAALCLFlt+2ZxYfgkAAADgh6yx5Zdt+Z46AAAAAMAVItQBAAAAgI0R6gAAAADAxgh1AAAAAGBjhDoAAAAAsDFCHQAAAADYGKEOAAAAAGyMUAcAAAAANkaoAwAAAAAbI9QBAAAAgI0R6gAAAADAxgh1AAAAAGBjhDoAAAAAsDFCHQAAAADYGKEOAAAAAGyMUAcAAAAANkaoAwAAAAAbI9QBAAAAgI0R6gAAAADAxgh1AAAAAGBjhDoAAAAAsDFCHQAAAADYGKEOAAAAAGyMUAcAAAAANkaoAwAAAAAbI9QBAAAAgI0R6gAAAADAxgh1AAAAAGBjhDoAAAAAsDFCHQAAAADYGKEOAAAAAGyMUAcAAAAANkaoAwAAAAAbI9QBAAAAgI0R6gAAAADAxgh1NjJ9+nQ988wzdcZWrVqliRMnSpIOHz6sKVOmaMCAARo2bJhuueUWHThw4II6W7Zs0dChQ+VwOJSVlVVnW2pqqkJCQhQSEqJXXnml0X7efPNNDRkyROHh4QoKCnL11lj97ysuLlZISMgF4xUVFRo7dqwCAwM1duxYVVZWSpKMMZozZ46cTqfCwsK0c+dO1zETJkyQh4eHbrvttkbnlKSioiJFRUXJ6XQqMTFRp06dkiTV1NQoMTFRTqdTUVFRKi4uliSVl5crJiZG7u7umj179kXrAwAAAK2FUGcjSUlJyszMrDOWmZmppKQkGWM0efJkRUdHq7CwULm5uVqwYIGOHDlyQZ0bbrhB6enpuvvuu+uMv/XWW9q5c6fy8vL00UcfafHixaqurq63l9OnT+vee+/VmjVrtHv3bu3atUvR0dGN1r8UCxcuVFxcnPLz8xUXF6eFCxdKktauXav8/Hzl5+dr6dKlmjVrluuYBx98UMuXL29S/dTUVKWkpKigoECenp5KS0uTJKWlpcnT01MFBQVKSUlRamqqJMnNzU2PPPKIFi9efNnnBAAAALQEQp2NxMXFaf/+/SorK5Mkff3111q/fr1++tOfatOmTerUqZNmzpzp2j88PFxjxoy5oE7fvn0VFhamDh3q/vyffvqpbr75ZjkcDnXt2lVhYWHKzs6ut5evvvpKtbW16tmzpySpc+fOGjRoUKP1L8Xq1auVnJwsSUpOTtaqVatc4/fcc48sy9LIkSN1/Phx1/cRFxenbt26XbS2MUYbN25UQkJCvfXPzZuQkKANGzbIGKOuXbtq9OjRcnNzu+xzAgAAAFoCoa4dS09PV3p6uutzx44ddccdd2jFihWSpDVr1ig6Olrdu3fX3r17NWzYsCuaLzw8XNnZ2frmm2907Ngxbdq0SSUlJfXu6+Xlpfj4eAUEBCgpKUkvvfSSzpw5c0Xzn+/IkSPy9fWVJPn4+LiuOJaWlqpPnz6u/fz9/VVaWnpJtcvLy+Xh4SGHw3FBjfPrOxwO9ejRQ+Xl5Vd8PgAAAEBLIdTZzPlLMM8tvWwu48aN0y233KJRo0YpKSlJN910kzp27Njg/s8995w2bNigESNGaPHixZoxY0az9XI+y7JkWVaL1AYAAADsjlBnM6NGjVJZWZl2796tbdu26dZbb5UkBQcHKzc3t95j5s+fr4iICEVERFy0/vz585WXl6d3331XxhgNHDiw0f1DQ0OVkpKid999V6+99tqln1ADvL29Xcsqy8rK1Lt3b0mSn59fnauHBw8elJ+f3yXV7tmzp44fP67a2toLapxfv7a2VlVVVa4lpgAAAEB7RKizGcuylJiYqOTkZE2cONF1j1dsbKxqamq0dOlS17579uzR+++/r0cffVR5eXnKy8trtPZ3333nWmq4Z88e7dmzR+PGjat33xMnTmjz5s2uz3l5eQoICLjCs/v/4uPjlZGRIUnKyMjQpEmTXOMvvPCCjDHavn27evTo4Vqm2VSWZSkmJsb1ZM7v1z83b1ZWlmJjY7lKCAAAgHbNMsa0dQ8XFRkZaXJyctq6jcty7qmN8+bNu+Rjz91PN23atDrjeXl5GjJkiNauXasJEya4xg8dOqS5c+cqNzdXbm5u6tu3r5544gkFBgbWOX7Hjh2aPHmyKisr5ebmJh8fH+3bt08nT57U0KFDJUndu3fX008/3eDVva+++kqJiYkqLCzUtddeq65du+rJJ59UZGRkg/XrU1xcrMDAQHl7e7vGHn/8ccXGxuquu+7SF198oYCAAK1YsUJeXl4yxmj27NnKzs5Wly5dtGzZMkVGRkqSxowZo/379+vEiRPq2bOn0tLSNH78+Hrn/fzzzzVlyhRVVFRoyJAhevHFF9W5c2edPHlSU6dO1a5du+Tl5aXMzEz1799f0tkHwFRXV+vUqVPy8PDQO++8o6CgoAZ+PQAAAKD5WJaVa4yJrHcboa5ltUSoAwAAAPDD0lioY/klAAAAANiYo60bQPs3efJkFRUV1Rl77LHHGlzaWJ9PPvlEU6dOrTPWuXNnffTRR83SY0Oao3cAAACgPSPU4aJWrlx5xTVCQ0Mv+qCWltAcvQMAAADtGcsvW1BqaqqeeeYZvfLKKzp9+nRbtwMAAADgKkSoayG7d+9WaWmpfvWrX6l3796ux+cDAAAAQHMi1LWQbdu2ud7xNnDgQG3durWNOwIAAABwNSLUtZDKykp1795d0tkHglRUVLRxRwAAAACuRoS6FuLh4aHq6mpJUk1Njby8vNq4IwAAAABXI0JdCxk1apTWr18vSTpw4IB+9KMftXFHAAAAAK5GhLoWEhERIW9vbz3//POqrq7WHXfc0dYtAQAAALgK8Z66FrRo0SIFBwdLkq655po27gYAAADA1YhQ105VVVXpP//zP3Xo0CFFRkYqJCSkrVsCAAAA0A6x/LKd6tKli+bOnavIyMi2bgUAAABAO0aoa6c6derkeiUCAAAAADSEUAcAAAAANsY9de3MkiVL9MYbb+jWW29Vr1692rodAAAAAO0cV+ramfvuu0+bN2/Wgw8+2NatAAAAALABQl07tmTJEu3bt0+//OUvlZ6e3tbtAAAAAGiHWH7Zjt19992SpHnz5rVxJwAAAADaK67UAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdQAAAABgY4Q6AAAAALAxQh0AAAAA2BihDgAAAABsjFAHAAAAADZGqAMAAAAAGyPUAQAAAICNEeoAAAAAwMYIdTYyffp0PfPMM3XGVq1apYkTJ0qSDh8+rClTpmjAgAEaNmyYbrnlFh04cKDeWitWrFBQUJCCg4N19913NzjnmTNnNGfOHIWEhCg0NFTDhw9XUVGRJGn+/Pnq06eP3N3dL9r7Qw89pMWLF18wnp2drUGDBsnpdGrhwoWu8aKiIkVFRcnpdCoxMVGnTp2SJG3ZskVDhw6Vw+FQVlbWRefNyMhQYGCgAgMDlZGR4RrPzc1VaGionE6n5syZI2OMJOnVV19VcHCwOnTooJycnIvWBwAAANpai4U6y7KetyzrS8uy9taz7X7LsoxlWde11PxXo6SkJGVmZtYZy8zMVFJSkowxmjx5sqKjo1VYWKjc3FwtWLBAR44cuaBOfn6+FixYoK1bt2rfvn164oknGpzzlVde0aFDh7Rnzx598sknWrlypTw8PCRJt99+uz7++OPLPp/vvvtOv/nNb7R27Vp9+umnevnll/Xpp59KklJTU5WSkqKCggJ5enoqLS1NknTDDTcoPT290SB6TkVFhR5++GF99NFH+vjjj/Xwww+rsrJSkjRr1iw9++yzys/PV35+vrKzsyVJISEhev3113XzzTdf9nkBAAAAraklr9SlS5rw/UHLsvpIGif9v/buPbzq6s77/ntBEKrIISiQKxsFEkQIh4yEQmmxAURAW7CXCNLeHBx1lNHqTW1LLU8tPqMVxz6206m9b7Fo0LsagVEp4wg+IDwwIiAgQaVKcGAqIXiAAFNtoeh6/kjcE+QUDkn4xffrunI1e/3WXuu7un+GfLJ++7f5Yy3O3SANGTKEt956i/LycgA++ugjFi9ezFVXXcXSpUtp0qQJN998c7p/7969GThw4GHjPPLII9xyyy20bt0agLZt2x51zvLycrKysmjUqPJUSaVS6ef179+frKysk17PmjVryM3NpXPnzpx11llce+21zJ8/nxgjL730EqNHjwZg4sSJPPfccwB07NiRXr16pes5lkWLFjF06FAyMzNp3bo1Q4cOZeHChZSXl7Nv3z769+9PCIEJEyakx+/WrRtdu3Y96TVJkiRJda3WQl2McTmw+wiHfgH8EIi1NXdD1bhxY66++mrmzJkDwIIFCygsLKRFixa88cYb9OnTp0bjbN68mc2bN/PVr36V/v37p3epjmTMmDEsWLCA/Px87rjjDl577bXTshaAsrIyOnTokH6cSqUoKytj165dtGrVioyMjEPaT9f4ZWVlpFKpw9olSZKkJKrT99SFEEYBZTHGkhr0/bsQwtoQwtoPPvigDqo787Rv35727dsf0lb9EszPLr08UQcPHqS0tJRly5bx1FNPceONN7Jnz54j9k2lUrz99tvcd999NGrUiCFDhrBkyZITX4wkSZKkWlFnoS6EcDbwY+CumvSPMc6MMRbEGAvOP//82i0uQQYMGEB5eTklJSWsXLmSK6+8EoC8vDzWrVt3xOdMmzaN/Px88vPzgcqgNnLkSJo0aUKnTp246KKLKC0tPeqcTZs2ZcSIETzwwAP8+Mc/Tl+qeKqys7N5991304+3b99OdnY2bdq0Yc+ePRw8ePCQ9tM1fnZ2Ntu3bz+sXZIkSUqiutypywE6ASUhhG1AClgfQmh/zGfpECEExo4dy8SJExkxYgTNmjUDYPDgwezfv5+ZM2em+27cuJEVK1Zw7733smHDBjZs2ADAVVddxbJlywD48MMP2bx5M507dz7ifOvXr2fHjh1A5Z0wN27cyIUXXnha1tK3b19KS0vZunUrBw4coLi4mJEjRxJCYNCgQem7W86ePZtRo0ad8PjDhg3jxRdfpKKigoqKCl588UWGDRtGVlYWLVq0YNWqVcQYefzxx09qfEmSJOlMUGehLsb4eoyxbYyxY4yxI7AduCTGuLOuamgoxo0bR0lJySGXXoYQePbZZ1m8eDE5OTnk5eVx5513Hnb5JlSGnTZt2tC9e3cGDRrEAw88QJs2bY441/vvv883v/lNevToQa9evcjIyODWW28F4Ic//CGpVIqPP/6YVCrF9OnTj1n3PffcQyqVSn9lZGTw61//mmHDhtGtWzfGjBlDXl4eAPfffz8PPvggubm57Nq1i+uvvx6AV199lVQqxdy5c7npppvS/Y8kMzOTn/zkJ/Tt25e+ffty1113kZmZCcBvfvMbbrjhBnJzc8nJyUl/LMSzzz5LKpXilVde4corr2TYsGHHXJMkSZJU38Jnn8912gcO4SmgEDgPeA/4aYxxVrXj24CCGOOHxxuroKAgJvUzw4qKigCYNGlSnT5XkiRJUsMRQlgXYyw40rGM2po0xnjMO3hU7dZJkiRJkk5BrYU6Jcvrr7/O+PHjD2lr2rQpq1evPqFx7r33XubOnXtI2zXXXMO0adNOucajOV21S5IkSUlkqBMAPXv2TN9I5VRMmzatVgPckZyu2iVJkqQkqtPPqZMkSZIknV6GOkmSJElKMEOdJEmSJCWYoU6SJEmSEsxQJ0mSJEkJZqiTJEmSpAQz1EmSJElSghnqJEmSJCnBDHWSJEmSlGCGOkmSJElKMEOdJEmSJCWYoU6SJEmSEsxQJ0mSJEkJZqiTJEmSpAQz1EmSJElSghnqasnUqVMZOHAgM2fO5ODBg+n2ffv2MXLkSAYNGsQPfvCDdPu5555LYWEhhYWFvP766wDMmDGDn/3sZxQWFvLEE0/U+RokSZIknfkMdbWgpKSEsrIyVqxYQVZWFmvXrk0fmzlzJqNGjWLp0qV89NFHrFmzBoCuXbuybNkyli1bRs+ePdP9v/e977Fs2TLGjx9f5+uQJEmSdOYz1NWClStXcvnllwPQs2dPSktL08feeecd8vPzAbjkkktYvnx5uv3SSy9l8uTJ/OUvfwEghMAvfvELRo4cyX/+53/W8SokSZIkJYGhrhZUVFTQokULAL70pS/x0UcfpY91796dl156CYDFixdTUVEBwJYtW1i+fDlZWVk89NBDANxyyy3ceeed3HHHHXz3u9+t41VIkiRJSgJDXS1o1aoV+/btA+DPf/4z55xzTvrYDTfcwB/+8Acuu+wymjdvTvv27QFo06YNAKNHj6akpASA5s2bA/D1r3+dHTt21OUSJEmSJCVERn0X0BANGDCABx98kAkTJvDGG29w/vnnU1RUlD5+6aWXAvDoo4/StWtXHn74YZo0aUKjRo1YunQp//Vf/0VRURHbtm2jY8eObNq0idatW9fTaiRJkiSdyQx1tSA/P5927doxcOBALrjgAgYNGkRRURGTJk3ij3/8I08++SQhBAYMGMD555/PH//4R2bNmkWzZs04++yzufHGGwH47W9/y9lnn027du3Sl2RKkiRJUnUhxljfNRxXQUFBrH4HyS+Kz3b3Jk2aVK91SJIkSapfIYR1McaCIx3zPXWSJEmSlGCGOkmSJElKMEOdJEmSJCWYoU6SJEmSEsxQJ0mSJEkJZqiTJEmSpAQz1EmSJElSghnqJEmSJCnBDHWSJEmSlGCGOkmSJElKMEOdJEmSJCWYoU6SJEk6QX/605+46aabyMnJoU+fPhQWFrJ69WoA9uzZw+jRo7n44ovp1q0br7zyCgBjx44lPz+f/Px8OnbsSH5+fnq8++67j9zcXLp27cqiRYvS7Ucb60hWrVpFv379yM/Pp1u3bkyfPh2At956i6985Ss0bdqUn//858ddW/PmzQ9r279/P2PHjiU3N5d+/fqxbdu249b+t3/7t7Rt25YePXocd87du3czdOhQunTpwtChQ6moqAAgxshtt91Gbm4uvXr1Yv369ennDB8+nFatWvGNb3zjuOM3dBn1XYAkSZKUNDfccAOdOnWitLSURo0asXXrVjZt2gTA7bffzvDhw5k3bx4HDhzg448/BuDpp59OP/+OO+6gZcuWAGzatIni4mLefPNNduzYwWWXXcbmzZtp3LjxUcc6kokTJzJnzhx69+7NJ598wttvvw1AZmYmv/rVr3juuedOer2zZs2idevWbNmyheLiYqZOncrTTz99zNonTZrErbfeyoQJE447/owZMxgyZAg/+tGPmDFjBjNmzOD+++/nhRdeoLS0lNLSUlavXs3kyZPT4fkHP/gBH3/8MQ8//PBJr6uhcKdOkiRJOgHvvPMOq1ev5p577qFRo8pfpzt16sSVV17J3r17Wb58Oddffz0AZ511Fq1atTrk+TFG5syZw7hx4wCYP38+1157LU2bNqVTp07k5uayZs2aGo1V3fvvv09WVhYAjRs3pnv37gC0bduWvn37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CgsLeeedd1i3bh333Xcf77333mHjXHDBBRQVFfHtb3/7kPbdu3dz9913s3r1atasWcPdd9+dDjWft337du69917+/d//nY0bN7Jq1Sp69eoFQI8ePXjmmWe49NJLT3qtU6dOZcqUKWzZsoXWrVsza9YsAGbNmkXr1q3ZsmULU6ZMYerUqQA0a9aMf/iHf6hx4Jo8eTKPPPIIpaWllJaWsnDhQgBmzJjBkCFDKC0tZciQIcyYMQOAzMxMfvWrX/H973//pNckSZLUkNTah4/HGJeHEDp+rnkyMCPGuL+qz/u1Nb90JKfyAevVP9R9yJAhTJw4kfLycrKysvjoo49YvHgxM2fOZOnSpTRp0oSbb7453b93795HHLNjx44ANGp06N9XFi1axNChQ8nMzARg6NChLFy4kHHjxh02xvvvv8+5555L8+bNAWjevHn6+27dup30egFijLz00ks8+eSTAEycOJHp06czefJk5s+fz/Tp0wEYPXo0t956KzFGzjnnHL72ta+xZcuW445fXl7Ovn376N+/PwATJkxI73jOnz+fZcuWpectLCzk/vvvp23btrRt25bnn3/+lNYmSZLUUNT1e+ouAgaGEFaHEP6/EELfo3UMIfxdCGFtCGHtBx98UIclqqEqKipi586dp2Wsxo0bc/XVVzNnzhwAFixYQGFhIS1atOCNN96gT58+pzR+WVkZHTp0SD9OpVKUlZUdsW/v3r1p164dnTp14rrrrmPBggWnNHd1u3btolWrVmRkZBxWR/UaMzIyaNmyJbt27Tqh8cvKykilUunH1cd/7733yMrKAqB9+/ZH3OmUJElSLe7UHWO+TKA/0BeYE0LoHD97E001McaZwEyAgoKCw45LJ6N9+/aH7LidinHjxvH973+f22+/neLiYsaPH39axj1RjRs3ZuHChbz66qssWbKEKVOmsG7duvQuWkMQQiCEUN9lSJIknZHqeqduO/BMrLQG+BQ4r45rkE6LAQMGUF5eTklJCStXruTKK68EIC8vj3Xr1h3xOdOmTSM/P5/8/Pxjjp2dnc27776bfrx9+3ays7OP2j+EwJe//GXuvPNOiouL+Zd/+ZeTWNHh2rRpw549ezh48OBhdVSv8eDBg+zdu5c2bdqc0PjZ2dls3749/bj6+O3ataO8vByovEyzbdu2p7weSZKkhqiuQ91zwCCAEMJFwFnAh3Vcg3RahBAYO3YsEydOZMSIETRr1gyAwYMHs3//fmbOnJnuu3HjRlasWMG9997Lhg0b2LBhwzHHHjZsGC+++CIVFRVUVFTw4osvMmzYsCP23bFjB+vXr08/3rBhAxdeeOFpWGHlGgcNGpS+M+fs2bMZNWoUACNHjkzflXPevHkMHjz4hHfTsrKyaNGiBatWrSLGyOOPP37E8avPK0mSpM+JMdbKF/AUUA78lcoduuupDHH/B3gDWA8MrslYffr0iap9jz32WHzsscfqu4xaUxvre+211yIQX3jhhUPay8rK4jXXXBM7d+4cu3fvHq+44oq4efPmw56/Zs2amJ2dHc8+++yYmZkZu3fvnj42a9asmJOTE3NycuKjjz561Bq2bdsWBw0aFLt27Rp79+4dL7vssrhly5YYY4zPPPNMzM7OjmeddVZs27ZtvPzyy486ztKlS2OzZs1idnZ2+mvlypXxnXfeiX379o05OTlx9OjR8S9/+UuMMcY///nPcfTo0TEnJyf27ds3vvPOO+mxLrzwwti6det4zjnnxOzs7Pjmm28edd5XX3015uXlxc6dO8dbbrklfvrppzHGGD/88MM4ePDgmJubG4cMGRJ37doVY4yxvLw8Zmdnx3PPPTe2bNkyZmdnx7179x51fEmSpIYAWBuPkpdCPPztbGecgoKCeLzP2NKp++zOkKfrPWdnmoa+PkmSJDVcIYR1McaCIx2r68svJUmSJEmnUV3f/VLSKejXrx/79+8/pO2JJ56gZ8+eNR5j0aJF6Q8K/0ynTp149tlnT0uNR3M6apckSdLhDHVSgqxevfqUxxg2bNhRb7pSm05H7ZIkSTqcl19KkiRJUoIZ6iRJkiQpwQx1kiRJkpRghjpJkiRJSjBDnSRJkiQlmKFOkiRJkhLMUCdJkiRJCWaokyRJkqQEM9Sp3kydOpWBAwcyfvx4/vrXv9Z3OZIkSVIiGepUL0pKSigrK2PFihVcfPHFzJs3r75LkiRJkhLJUKd6sXLlSi6//HIAhg8fzssvv1zPFUmSJEnJZKhTvaioqKBFixYAtGzZkt27d9dzRZIkSVIyGepUL1q1asW+ffsA2Lt3L5mZmfVckSRJkpRMhjrViwEDBrB48WIAFi1axFe/+tV6rkiSJElKpoz6LkBnlp07d1JUVFQnc33wwQdcdNFFtGnThuuvv77W5925cyft27ev1TkkSZKkumaoU9qkSZPqLNABjB07ts7mkiRJkhoqQ50OMWnSpPouodbUZWCVJEmS6orvqZMkSZKkBDPUSZIkSVKCGeokSZIkKcEMdZIkSZKUYIY6SZIkSUowQ50kSZIkJZihTpIkSZISzFAnSZIkSQlmqJMkSZKkBDPUSZIkSVKCGeokSZIkKcEMdZIkSZKUYIY6SZIkSUowQ50kSZIkJZihTpIkSZISzFAnSZIkSQlmqJMkSZKkBDPU6Qvruuuu4+GHHz6k7bnnnmPEiBEA7Ny5k2uvvZacnBz69OnDFVdcwebNmw8bZ/ny5VxyySVkZGQwb968Y8756aefctttt9GjRw969uxJ37592bp1KwDTpk2jQ4cONG/e/Li1T58+nZ///OeHtS9cuJCuXbuSm5vLjBkz0u1bt26lX79+5ObmMnbsWA4cOHDCtQPMnj2bLl260KVLF2bPnp1uX7duHT179iQ3N5fbbruNGCMAc+fOJS8vj0aNGrF27drjji9JkqQTZ6jTF9a4ceMoLi4+pK24uJhx48YRY+Rb3/oWhYWFvPPOO6xbt4777ruP995777BxLrjgAoqKivj2t7993DmffvppduzYwcaNG3n99dd59tlnadWqFQDf/OY3WbNmzUmv55NPPuGWW27hhRdeYNOmTTz11FNs2rQJgKlTpzJlyhS2bNlC69atmTVr1gnXvnv3bu6++25Wr17NmjVruPvuu6moqABg8uTJPPLII5SWllJaWsrChQsB6NGjB8888wyXXnrpSa9LkiRJx2ao0xfWkCFDeOuttygvLwfgo48+YvHixVx11VUsXbqUJk2acPPNN6f79+7dm4EDBx42TseOHenVqxeNGh3/P6fy8nKysrLSfVOpFK1btwagf//+ZGVlnfR61qxZQ25uLp07d+ass87i2muvZf78+cQYeemllxg9ejQAEydO5Lnnnjvh2hctWsTQoUPJzMykdevWDB06lIULF1JeXs6+ffvo378/IQQmTJiQHr9bt2507dr1pNckSZKk4zPU6QurcePGXH311cyZMweABQsWUFhYSIsWLXjjjTfo06fPaZ9zzJgxLFiwgPz8fO644w5ee+210zZ2WVkZHTp0SD9OpVKUlZWxa9cuWrVqRUZGxiHtp2v8srIyUqnUYe2SJEmqG4Y6fWFMmjSJSZMmHdJW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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Print out a result\nprint(\"The longest total path from root to leaf is:\", longestpath, \"and the sameple there is:\", farthestleaf)",
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": "The longest total path from root to leaf is: 1.00057053 and the sameple there is: C6706_S1_L001_001\n",
"name": "stdout"
}
]
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/15afc1e2be34a99f0dc1026f194accff"
},
"gist": {
"id": "15afc1e2be34a99f0dc1026f194accff",
"data": {
"description": "Jupyter Exercise 4 - Demo",
"public": true
}
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.7.3",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment