{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "cell_00" }, "source": [ "# Transporte óptimo en dimensión uno\n", "\n", "Este cuaderno acompaña el **Capítulo 8** de las notas del curso (*Transporte óptimo en dimensión uno*). Exploraremos computacionalmente sus conceptos centrales:\n", "\n", "- La **función de distribución acumulada** (FDA) y su **pseudoinversa**.\n", "- La construcción del **mapa de transporte monótono** $T_{\\mathrm{mon}} = F_\\nu^{[-1]} \\circ F_\\mu$.\n", "- La **optimalidad** del plan comonótono: comparación con planes aleatorios.\n", "- La **fórmula del costo óptimo** en términos de las pseudoinversas.\n", "\n", "Utilizaremos la biblioteca [POT](https://pythonot.github.io/) para verificar los resultados numéricos contra el solver exacto. Los **ejercicios computacionales** están al final; sus enunciados figuran también en la sección de ejercicios del Capítulo 8 de las notas." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 17383, "status": "ok", "timestamp": 1788527492058, "user": { "displayName": "Julian Fernandez Bonder", "userId": "01548826079249958852" }, "user_tz": 180 }, "id": "cell_01", "outputId": "07497e25-4b20-4f26-ef66-65d750f6af18" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting POT\n", " Downloading pot-0.9.7.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (44 kB)\n", "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/44.2 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m44.2/44.2 kB\u001b[0m \u001b[31m1.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: numpy>=1.16 in /usr/local/lib/python3.13/dist-packages (from POT) (2.1.3)\n", "Requirement already satisfied: scipy>=1.6 in /usr/local/lib/python3.13/dist-packages (from POT) (1.16.3)\n", "Downloading pot-0.9.7.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m32.9/32.9 MB\u001b[0m \u001b[31m32.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: POT\n", "Successfully installed POT-0.9.7.post1\n" ] } ], "source": [ "# @title\n", "pip install POT" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "cell_02" }, "outputs": [], "source": [ "# @title\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import ot\n", "from scipy.stats import norm" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_03" }, "source": [ "## 1. La función de distribución acumulada y su pseudoinversa\n", "\n", "Dada una medida de probabilidad $\\mu$ sobre $\\mathbb{R}$, su **función de distribución acumulada** es\n", "\n", "$$\n", "F_\\mu(x) = \\mu((-\\infty, x]).\n", "$$\n", "\n", "Su **pseudoinversa** está definida para $t \\in (0,1)$ por\n", "\n", "$$\n", "F_\\mu^{[-1]}(t) = \\inf\\{x \\in \\mathbb{R} : F_\\mu(x) \\geq t\\}.\n", "$$\n", "\n", "Ilustramos estas nociones en los tres casos típicos: medida absolutamente continua, medida discreta y medida mixta." ] }, { "cell_type": "markdown", "metadata": { "id": "cell_04" }, "source": [ "### Ejemplo 1: medida absolutamente continua\n", "\n", "Tomamos $\\mu = U[0,2]$, la medida uniforme sobre $[0,2]$.\n", "\n", "$$\n", "F_\\mu(x) = \\begin{cases} 0 & x < 0 \\\\ x/2 & 0 \\leq x \\leq 2 \\\\ 1 & x > 2 \\end{cases}\n", "\\qquad\n", "F_\\mu^{[-1]}(t) = 2t, \\quad t \\in (0,1).\n", "$$\n", "\n", "En este caso la pseudoinversa coincide con la inversa usual, ya que $F_\\mu$ es estrictamente creciente y continua." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 365 }, "executionInfo": { "elapsed": 621, "status": "ok", "timestamp": 1788527565739, "user": { "displayName": "Julian Fernandez Bonder", "userId": "01548826079249958852" }, "user_tz": 180 }, "id": "cell_05", "outputId": "9aa7c793-6d3d-4eba-94be-a81c9c105b2d" }, "outputs": [ { "data": { "image/png": "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cerUKbn+hEpR1v3wySefiD/++ENcunRJnDhxQgwbNkzY2tqK06dPy/UnVFhWVpaIiooSUVFRAoD49ttvRVRUlLh69aoQQoh3331XjBgxQlr/8uXLwt7eXrz99tvizJkzYt68eUKlUont27fL9SdUWFn3wezZs8WmTZvEhQsXxKlTp8SUKVOEUqkUu3btkutPqLA33nhDuLi4iH379onExETpJzc3V1rH0t8XyrMPLPE9oawe9T5KZA7wr7sMGgwGUadOHbF3716j9eLi4oSXl5d4++23qzcgUSV51GeeqsImrxpFRkaKunXrCmtra9GuXTtx9OhRaVmXLl3EyJEjjdb/+eefRePGjYW1tbVo0aKF2Lp1azUnrhpl2Q9hYWHSut7e3uLZZ58VJ0+elCF15bk3HcC/f+793SNHjhRdunQp9pjg4GBhbW0t/P39xdKlS6s9d2Uq6z746quvRMOGDYWtra1wd3cXXbt2FXv27JEnfCV50N8PwOj/raW/L5RnH1jie0J5POx9lMhUPezD7vHjx4Wbm5vQ6XTS+qdOnRIajUYMHz7c6EBQUlKSjH8FUdk86jNPVVEIIUTVf19IRERERDXZvn370K1bt2L1kSNHws/PDwkJCVixYoVU//jjj/HJJ58UW79evXq4cuVKVUYlMnts8oiIiIhIVq1atcIHH3yAIUOGyB2FyCLwxitEREREJJvCwkK88MIL6NOnj9xRiCwGv8kjIiIiIiKyIPwmj4iIiIiIyIKwySMiIiIiIrIgbPKIiIiIiIgsCJs8IiIiIiIiC8Imj4iIiIiIyIKwySMiIiIiIrIgbPKIiIiIyCRMnToVgwYNkjsGkdljk0dEREREJuHYsWN47LHH5I5BZPbY5BGZsdWrV8POzg6JiYlSbfTo0WjVqhUyMjJkTEZERFR6hYWFUKvVOHz4MP7zn/9AoVDgiSeekDsWkdlSCCGE3CGIqHyEEAgODsZTTz2FyMhITJ8+HT/88AOOHj2KOnXqyB2PiIioVAwGA/7++2+0b98e0dHR8Pb2hq2tLVxdXeWORmSWrOQOQETlp1Ao8Nlnn+HFF19ErVq1EBkZiT///JMNHhERmRWlUolbt27Bw8MDQUFBcschMnts8ojMXL9+/dC8eXPMmDEDO3bsQIsWLeSOREREVGZRUVFs8IgqCa/JIzJz27dvx9mzZ6HX6+Ht7S13HCIionKJjo5mk0dUSdjkEZmxkydPYsiQIfj+++/Ro0cPfPjhh3JHIiIiKpdTp04hODhY7hhEFoGnaxKZqStXrqBv3754//33ERISAn9/f3To0AEnT55EmzZt5I5HRERUJgaDAefOncOtW7fg4OAAFxcXuSMRmS3eXZPIDKWmpqJjx47o2rUrFi5cKNX79u0LvV6P7du3y5iOiIio7FasWIFp06bh1q1beOuttzBr1iy5IxGZLTZ5REREREREFoTX5BEREREREVkQNnlEREREREQWhE0eERERERGRBWGTR0REREREZEHY5BEREREREVkQNnlEREREREQWhE0eERERERGRBWGTR0REREREZEHY5BEREREREVkQNnlEREREREQWhE0eERERERGRBWGTR0REREREZEH+H0lT/OUyLZpdAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# @title\n", "fig, axs = plt.subplots(1, 2, figsize=(9, 3.5))\n", "\n", "x = np.linspace(-0.3, 2.5, 500)\n", "F = np.clip(x / 2, 0, 1)\n", "\n", "t = np.linspace(0, 1, 500)\n", "Finv = 2 * t\n", "\n", "axs[0].plot(x, F, lw=2, color=\"tab:blue\")\n", "axs[0].set_title(r\"FDA: $F_\\mu(x)$\")\n", "axs[0].set_xlabel(\"$x$\")\n", "axs[0].axhline(0, color=\"k\", lw=0.5)\n", "axs[0].axhline(1, color=\"k\", lw=0.5, ls=\"--\", alpha=0.4)\n", "axs[0].set_yticks([0, 0.5, 1])\n", "axs[0].set_yticklabels([\"0\", \"1/2\", \"1\"])\n", "\n", "axs[1].plot(t, Finv, lw=2, color=\"tab:red\")\n", "axs[1].set_title(r\"Pseudoinversa: $F_\\mu^{[-1]}(t)$\")\n", "axs[1].set_xlabel(\"$t$\")\n", "axs[1].set_yticks([0, 1, 2])\n", "axs[1].set_xticks([0, 0.5, 1])\n", "axs[1].set_xticklabels([\"0\", \"1/2\", \"1\"])\n", "\n", "plt.suptitle(r\"$\\mu = U[0,2]$\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_06" }, "source": [ "### Ejemplo 2: medida discreta\n", "\n", "Tomamos $\\mu = \\tfrac{1}{3}\\delta_0 + \\tfrac{1}{3}\\delta_1 + \\tfrac{1}{3}\\delta_2$.\n", "\n", "La FDA es una función escalera con saltos en $0, 1, 2$, y la pseudoinversa es constante en intervalos de longitud $1/3$:\n", "\n", "$$\n", "F_\\mu^{[-1]}(t) = \\begin{cases} 0 & t \\in (0, 1/3] \\\\ 1 & t \\in (1/3, 2/3] \\\\ 2 & t \\in (2/3, 1) \\end{cases}\n", "$$\n", "\n", "Obsérvese la simetría: los **saltos** de $F_\\mu$ corresponden a los **tramos planos** de $F_\\mu^{[-1]}$, y viceversa." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 365 }, "executionInfo": { "elapsed": 406, "status": "ok", "timestamp": 1788527609932, "user": { "displayName": "Julian Fernandez Bonder", "userId": "01548826079249958852" }, "user_tz": 180 }, "id": "cell_07", "outputId": "89204904-f8e4-485e-b69b-fe46b6a3d94b" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAFcCAYAAAB1Dnd5AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQY1JREFUeJzt3XlYlPX+//HXgMiIIooLqKBIi+YS5oamlaapVKhZuf0s9XTK3E7qOWW2HNTTyZN2Op4Wzeybnm+ubW4t5K6ZISkpommpVIa4YoOyCcz9+6PDfB0BZRkY5vb5uK65Ludzb++Z8eIzr/ncn/u2GIZhCAAAAABgCl7uLgAAAAAA4DqEPAAAAAAwEUIeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsgDAAAAABMh5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwEUIeAKBM5s+fr/bt28vHx0fTp093dzmlRv0AALMi5AEAyqRRo0aaPn26HnzwQXeXUibUDwAwq2ruLgAA4JkGDhwoSfr888/dW0gZUT8AwKwYyQMAVLh9+/bp4YcfVpMmTeTr66ugoCD1799fqamp7i6tRKgfAOBJGMkDAFSo1NRUde/eXS1bttTTTz+tunXr6vz589q0aZMMw3B3eddE/QAAT0PIAwBUqE8//VQXL17U3Llz1a1bN0f7pEmTXHqcHj16KCwsTIsXL3bpfiuj/oqqXaq89x8AUHVwuiYAeLjw8HCNGDGiUHvPnj111113uaEiZ5GRkfL19VVUVJQeffRRLV++XBcuXHB3WSVG/QAAT0PIAwAPdvHiRf3000+KiIgotCwxMVG33nprkdvl5ubq7NmzJXrY7fYi95GXl6fs7Gzl5+c7/ftKdrtdXbp00TvvvKOOHTtq1qxZuvnmmxUXF1e+F19O1O/e+gEAFcgAAHisb775xpBkfPnll07tx48fNyQZ77zzTpHbbdmyxZBUokdycnKR+4iJiSm07qJFi5zWOXDggFG/fn0jMTHR0Zaenm40bdrUaNGiRble+5XuuusuY+TIkSVevyrVX9raDaNq1Q8AqFoshsGsawDwVO+++64ef/xxnTx5UkFBQY72zz77TPfff7/i4uIUGRlZaLvz589rz549JTpG9+7dZbVay1RfZGSk2rRpo//5n/9xah8/frzmzZsnm82m2rVrl3q/ubm5stlsTm0DBgxQ06ZN9cYbbzi1BwYGysurbCeuVET9lVW7VHHvPwCgauPCKwDgwfbv36+goCCngCf9fqqml5eX2rRpU+R2devWVe/evSu0tvj4eMXHx+u5554rtCwvL0+S5OPjI0k6c+aMRo0apa1btyokJETz5s1Tr169it33119/rZ49exZq37lzp1asWOHUlpycrLCwsAqtf/78+Vq4cKH279+v559/XtOnT3dr7aWpPycnR2PHjtXGjRv122+/qVWrVvrXv/6lrl27lum4AAD3I+QBgAdLSkoqcj7e3r17FR4erpo1axa53aVLl5SWllaiYzRo0EDe3t6lrm3Xrl2SpJYtWxZZX4sWLVSjRg1Jv48sBQcH68yZM9q4caMGDx6sH3/8UYGBgUXuOyIiQhs2bHBq+/Of/6zg4GA9/fTTTu3BwcGlrr209Tdq1EjTp0/XsmXLrrnfyqhdKnn9GRkZCgsL044dOxQSEqIPPvhA0dHR+umnn1SrVq0yHx8A4D6EPADwYPv379eQIUOc2ux2uzZv3qw777yz2O127txZ5GhSUYoaTbJYLNfcLiYmRpJUvXp1p/ajR4/q22+/dYwwXbx4UatXr9axY8fk5+en/v37q23btlqzZo1Gjx5d5L6LGomsW7euGjVqVKIRSlfWL0kDBw6UJH3++efX3G95a5dcW3/NmjX117/+1bF86NChmjJlig4fPqwOHTqUqB4AQNVCyAMAD3X69GmdOXNGqampTu2vv/66zp49q7Zt2xa7bVGjScUpajSpJNO533nnHUnSxo0b9fjjj0uScnJyNGbMGNWpU0djxoyRJP3444+qVauWQkJCHNu2bdtWBw4cKFF9ZeHK+t2hIuv/8ccflZaWphtvvNF1BQMAKhUhDwA81P79+yVJ69ev17hx49SyZUvFxcXpyy+/lCTt2bNHu3btKvLCK66Yk/fEE09o3bp1ysjIULNmzfTyyy8rOjrasfyBBx7QM888o8mTJ+v48eOqU6eOlixZov379+vDDz9UaGiopN9H8q68+Eft2rV17ty5ctVXWfW7S0XUn5WVpREjRmjatGkKCAiozJcDAHAh7pMHAB5q//798vb21ooVK7R+/XpNnTpVZ8+e1bZt23TDDTdo7969jguDVIQpU6bop59+Unp6ut577z2NGDHCKZg1aNBAX375pdq1a6c5c+Zo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0aBBg7RixQplZGTo1VdfLbROSd+L4pTk/b7//vv1/vvvKyAgQK1atdI333yjjRs3Om55caVbbrlFd911V7EXX9m3b58klfgHVC8vL8e977Zu3aqpU6eW6FYVZREeHq42bdpo48aNTrc2at68uTZv3qzZs2ercePGuuWWW9ShQwfH8j179igtLU0DBgyokLrgZpV/QU/A81zr9giXrzNz5kzj/fffNxYtWmT84x//MPr06WNYLBYjLCzM2L9/v2P9FStWGJKM1atXF7m//Px8o0GDBkZ0dLSjTSW4xHNsbKwhyfjoo4+u+bqaN29u/PDDD47no0ePNv797387rdOmTRuny1fv3r3b8PPzMx555BFHW0pKiuHr6+t0SefL19d/Lz8OAJ6mJH//c3JyjKefftqIiIgw/P39jZo1axoRERHGvHnznNY7deqUMX78eCM0NNTw8fExgoODjV69ehnvvPOO03rr16832rRpY1SvXt1o0aKFsWTJkiJvoWAYhrFt2zajQ4cORvXq1Y3w8HDj7bffLnbdhIQEo2/fvkatWrUMPz8/o2fPnsbOnTuLfL1X3kLh8lsGFbXe5TZs2GBIMiwWS7G3ESjJe1HcsUvyfp8/f94YPXq0Ub9+faNWrVpG3759jUOHDhnNmjUzRo4cWaiea/Wvs2fPNiQZBw8eLHadAtHR0caHH37oeD537lzjj3/84zW3K4/XXnvNqFWrltOtI1JSUhyftyTj9ddfd9pm6tSpRtOmTQ273V6htcE9CHlACZQm5BU8qlevbgQHBxv33HOP8e9//9tIT093Wj86OtqwWq1GRkZGsfscNWqU4ePj47iXUElCXkk7oosXLxr+/v5O97Rr3769sXnzZqf1Lu84jh8/bjRq1Mjo1q2bkZ2d7bTe2LFjDR8fH+PYsWNO7XQiAIDrSUl+QHW13377zQgMDDTefffdEq2fnZ1tBAcHG3Pnzq3QuuA+FsMo4TXZAZhKfHy8xowZo++++07S75eUrl+/vlJTU50madtsNoWHh2v27Nl67LHHSnWMnJwchYWF6dlnn9VTTz3l0voBAKhqMjIy1KhRI/3222+OW2x06NBBr776quNWSRXllVde0aJFi3Tw4MFC96u90ttvv62XX35ZP/74o3x9fSu0LrgHF14BrlNJSUk6fvy4UlJSlJ6erokTJ8rf37/Q5PuAgAA988wzmjNnTqkvO71o0SL5+PgUeSNbAADM5sCBA7rhhhscIavgIjpt27at8GNPnTrVcbXUa3nyySf1yy+/EPBMjJAHXKeSkpJ09913q0OHDoqIiFBERITy8vI0f/78QuuWpuO4HJ0IAOB6UtIfUIGKRsgDrlNJSUkaPXq0Tp48qeTkZP35z39Weno6p1UCAFBGpfkBFahIzMkDrlONGzfWzp07FRYW5u5SAAAwhT59+mjy5MmKiopydym4zjGSB1yH0tLS9Ntvv6lZs2buLgUAANNISkrSLbfc4u4yAEbyAAAAgPJKS0tTSEiIMjIyZLFY3F0OrnOEPAAAAAAwEU7XBAAAAAATqebuAkrCbrfrxIkT8vf3Z/gbAFBqhmHowoULaty4calvBeJK9GcAgPIoaX/mESHvxIkTCg0NdXcZAAAPd/z4cYWEhLjt+PRnAABXuFZ/5hEhz9/fX9LvL4abSQIASis9PV2hoaGO/sRd6M8AAOVR0v7MI0JewSkttWvXplMEAJSZu0+RpD8DALjCtfozLrwCAAAAACbiESN5AGA2+XZD8clpOn0hWw39rercPFDeXlyIAwCuF4ZhKHNXvGyfrlP+uTR51wtUwP3R8ovs7PazDuD5KiXkbd++XXPmzNGePXuUmpqqVatWaeDAgZVxaACocmKTUjVj3UGl2rIdbY0CrIqJbqV+bRq5sTJczaxZs/TJJ5/o0KFDqlGjhm6//Xa98soratGihbtLA+Bh8m02/TrxT8qMj3dqt330sfw6d1bIG6/LOyDATdXBDCrldM2MjAxFRETorbfeqozDAUCVFZuUqrFLEpwCniSdtGVr7JIExSaluqkyXMu2bds0fvx4xcXFacOGDcrNzVWfPn2UkZHh7tIAeBDDMBwBz2K1qs6QIQqeOUN1hgyRxWpVZny8fp34JxmG4e5S4cEqZSQvKipKUVFRlXEoAKiy8u2GZqw7qKK6bUOSRdKMdQd1T6tgTt2sgmJjY52eL168WA0bNtSePXt05513uqkqAJ4mc1e8I+CFrVgua8uWjmV1hw3VT0OHKTM+Xpnx36pmZGc3VgpPViXn5OXk5CgnJ8fxPD093Y3VAIBrxCenFRrBu5whKdWWrY4vbZBvNe/KK8wDNPD31bqJ3d1dhhObzSZJCgwMLHYd+jMAV7J9uk6SFDBggFPAkyRry5YK6N9fv33wgY6PGcMpmyZUrX59Nf/4o4o/ToUfoQxmzZqlGTNmuLsMAHCp0xeKD3iXO5+ZKym3YotBudjtdk2aNEndunVTmzZtil2P/gzAlfLPpUmSrK1bFbnc2rq1JMnIzlZedsn6DeBKVTLkTZs2TVOmTHE8L7jpHwB4sob+1hKtV9fPh5G8KzTw93V3CU7Gjx+vpKQk7dix46rr0Z8BuJJ3vd9H/7MPHCxyefaBA5Iki9XKSJ4JVatfv3KOUylHKSVfX1/5+latDh0Ayqtz80A1CrDqpC27yHl5FknBAVbtmHo3c/KqsAkTJujTTz/V9u3bFRISctV16c8AXCng/mjZPvpYtjVrVHfYUKdTNrMPHZJt7VpJUuiCBczJQ5lVyZAHAGbk7WVRTHQrjV2SIIvkFPQKIl1MdCsCXhVlGIYmTpyoVatWaevWrWrevLm7SwLggfwiO8uvc2dlxsfrp6HDFNC/v6ytWyv7wAHZ1q6VkZ0tv86d5de5k7tLhQerlJB38eJFHTlyxPE8OTlZe/fuVWBgoJo2bVoZJQBAldCvTSPNH9G+0H3ygrlPXpU3fvx4LVu2TGvWrJG/v79OnjwpSQoICFCNGjXcXB0AT2GxWBTyxuuO2yj89sEHTssL7pPHDdFRHhajEm7CsXXrVvXs2bNQ+8iRI7V48eJrbp+enq6AgADZbDbVrl27AioEgMqVbzfU8aUNOp+Zq7p+Ptr9wj2M4FUgV/QjxX3hWrRokUaNGlVpdQAwB8MwlBn/rY6PGSMjO1sWq1WhCxbIr3MnAh6KVdJ+pFJG8nr06MENHQHgMt5elv9eXCVXvtW8CXgegH4MgCtZLBbVjOws74AA5WVnyzsggDl4cBkvdxcAAAAAAHAdQh4AAAAAmAghDwAAAABMhJAHAAAAACZCyAMAAAAAEyHkAQAAAICJEPIAAAAAwEQIeQAAAABgIoQ8AAAAADARQh4AAAAAmAghDwAAAABMhJAHAAAAACZCyAMAAAAAEyHkAQAAAICJEPIAAAAAwEQIeQAAAABgIoQ8AAAAADARQh4AAAAAmAghDwAAAABMhJAHAAAAACZCyAMAAAAAEyHkAQAAAICJEPIAAAAAwEQIeQAAAABgIoQ8AAAAADARQh4AAAAAmAghDwAAAABMhJAHAAAAACZCyAMAAAAAEyHkAQAAAICJEPIAAAAAwEQIeQAAAABgIoQ8AAAAADARQh4AAAAAmAghDwAAAABMhJAHAAAAACZCyAMAAAAAEyHkAQAAAICJEPIAAAAAwEQIeQAAAABgIoQ8AAAAADARQh4AAAAAmAghDwAAAABMhJAHAAAAACZCyAMAAAAAEyHkAQAAAICJEPIAAAAAwEQIeQAAAABgIoQ8AAAAADARQh4AAAAAmAghD6hi8u2Gvjl6Tmv2puibo+eUbzfcXRJczDAM7Tx6VrasXEmSLStXO4+elWHwWQMAgPIrVcibNWuWOnXqJH9/fzVs2FADBw7U4cOHi1y3efPm2rhxow4fPqyePXsqKChIVqtV4eHheuGFF5Sbm+uSFwCYSWxSqrq/slnDFsbpqRV7NWxhnLq/slmxSanuLg0uYsvM1bCFcRq+cJeycvMlSVm5+Rq+cJeGLYyTLZO/jQAAoHxKFfK2bdum8ePHKy4uThs2bFBubq769OmjjIwMp/USExN1/vx53XXXXfLx8dGjjz6q9evX6/Dhw5o7d64WLlyomJgYl74QwNPFJqVq7JIEpdqyndpP2rI1dkkCQc8EDMPQmCW7FXcsTVYfLw2PbKpZg9pqeGRTWX28FHcsTWOW7GZEDwAAlEu10qwcGxvr9Hzx4sVq2LCh9uzZozvvvNPRvmbNGvXr108+Pj4KDw9XeHi4Y1mzZs20detWffXVV+UsHTCPfLuhGesOqqiv9oYki6QZ6w7qnlbB8vayVHJ1cJVvjp1zBLxPxnZTq8a1JUnDJI2IbKZB879W3LE0xR1LU9cb6rm3WAAA4LFKFfKuZLPZJEmBgYFO7WvXrtWUKVOK3ObIkSOKjY3VoEGDit1vTk6OcnJyHM/T09PLUyZQ5cUnpxUawbucISnVlq2OL22QbzXvyisMLlUwB29Q+xBHwCvQqnFtPXBbiJbH/6LV36UQ8gAAQJmVOeTZ7XZNmjRJ3bp1U5s2bRztKSkpSkxMVFRUlNP6t99+uxISEpSTk6MnnnhCM2fOLHbfs2bN0owZM8paGuBxTl8oPuBd7nxmriTmbHm6tk0Cim1fLulcRk6RywEAAEqizCFv/PjxSkpK0o4dO5za165dq+7du6tOnTpO7StXrtSFCxe0b98+Pf3003r11Vf1zDPPFLnvadOmOY0EpqenKzQ0tKylAlVeQ39ridar6+fDSJ4Hs2XlKis3X/tTbBpWxPL9Kb+fHVGvpm/lFgYAAEylTCFvwoQJ+vTTT7V9+3aFhIQ4LVu7dq369+9faJuCkNaqVSvl5+friSee0J///Gd5exf+wurr6ytfX77k4PrRuXmgGgVYddKWXeS8PIuk4ACrdky9mzl5Hmzn0bMavnCXPkn4VSMimzmdsnnwRLpWfferJGngbU3cVSIAADCBUoU8wzA0ceJErVq1Slu3blXz5s2dll+8eFFbtmzR/Pnzr7ofu92u3Nxc2e32IkMecL3x9rIoJrqVxi5JkEVyCnoFkS4muhUBz8N1Da+nLuGBijuWpkHzv9YDt4WobZMA7U+xadV3vyo7164u4YHqEh547Z0BAAAUo1Qhb/z48Vq2bJnWrFkjf39/nTx5UpIUEBCgGjVqKDY2VjfffLPCwsIc2yxdulQ+Pj5q27atfH19tXv3bk2bNk1DhgyRj4+PS18M4Mn6tWmk+SPaa8a6g04XYQkOsComupX6tWnkxurgChaLRQtGdHTcRmF5/C9aftnyLuGBWjCioywWwjwAACi7UoW8ghG6Hj16OLUvWrRIo0aN0po1awqdqlmtWjW98sor+uGHH2QYhpo1a6YJEyZo8uTJ5ascMKF+bRrpnlbB6vjSBp3PzFVdPx9O0TSZAD8fLX+8i+KOpWn1dyk6l5GjejV9NfC2JuoSHkjAAwAA5Vbq0zWLk5eXp88//1xffPGFU/uQIUM0ZMiQslUHXIe8vSz/vbhKrnyreRPwTMhisajrDfW4TQIAAKgQXq7aUVpamiZPnqxOnTq5apcAAAAAgFIq183QL9ewYUO98MILrtodAAAAAKAMXDaSBwAAAABwP0IeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsgDAAAAABMh5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwEUIeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsgDAAAAABMh5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwkWruLgAAAAD/xzAMZe6Kl+3Tdco/lybveoEKuD9afpGdZbFY3F0eXMjIz5f90iVJkv3SJRn5+bJ4e7u5KpgBI3kAAJTQ9u3bFR0drcaNG8tisWj16tXuLgkmk2+z6ZeRo/TLqFGyffSxLm7ZIttHH+uXUaP0y8hRyrfZ3F0iXCR9/Xod6dVb9vPnJUn28+d1pFdvpa9f7+bKYAaEPAAASigjI0MRERF666233F0KTMgwDP068U/KjI+XxWpVnSFDFDxzhuoMGSKL1arM+Hj9OvFPMgzD3aWinNLXr1fKU5OUd/KkU3veqVNKeWoSQQ/lxumaAACUUFRUlKKiotxdBkwqc1e8I+CFrVgua8uWjmV1hw3VT0OHKTM+Xpnx36pmZGc3VoryMPLzderlWVJRYd0wJItFp16eJf9evTh1E2VGyAMAoILk5OQoJyfH8Tw9Pd2N1aCqs326TpIUMGCAU8CTJGvLlgro31+/ffCBjo8ZI++AAHeUCBewX7rkOEWzSIahvJMnlbl7D2EeZUbIAwCggsyaNUszZsxwdxnwEPnn0iRJ1tatilxubd1akmRkZysvO7vS6oJ75J054+4S4MEIeQAAVJBp06ZpypQpjufp6ekKDQ11Y0WoyrzrBUqSsg8cLHJ59oEDkiSL1cpInge75kjef1Vr0KASqoFZEfIAAKggvr6+8vX1dXcZ8BAB90fL9tHHsq1Zo7rDhjqdspl96JBsa9dKkkIXLOA0Pg9m5OfrSK/eyjt1quh5eRaLqgUFya9jh8ovDqZByAMAAKgC/CI7y69zZ2XGx+unocMU0L+/rK1bK/vAAdnWrpWRnS2/zp3l17mTu0tFOVi8vRX03DSlPDVJslicg95/74MY9Nw0LrqCciHkAQBQQhcvXtSRI0ccz5OTk7V3714FBgaqadOmbqwMZmCxWBTyxuuO2yj89sEHTsv9OndWyBuvc0N0E6jdp4/077k69fIsp9soVAsKUtBz035fDpQDIQ8AgBLavXu3evbs6XheMN9u5MiRWrx4sZuqgpl4BwSo6X8WKzP+Wx0fM0ZGdrYsVqtCFyyQX+dOBDwTqd2nj/x79VLm7j3KO3NG1Ro0kF/HDozgwSUIeQAAlFCPHj24ETUqnMViUc3IzvIOCFBedra8AwKYg2dSFm9vPltUCC93FwAAAAAAcB1CHgAAAACYCCEPAAAAAEyEkAcAAAAAJkLIAwAAAAATIeQBAAAAgIkQ8gAAAADARAh5AAAAAGAihDwAAAAAMBFCHgAAAACYCCEPAAAAAEyEkAcAAAAAJkLIAwAAAAATIeQBAAAAgIkQ8gAAAADARAh5AAAAAGAihDwAAAAAMBFCHgAAAACYCCEPAAAAAEyEkOdB8u2Gvjl6Tmv2puibo+eUbzfcXRJczDAM7Tx6VrasXEmSLStXO4+elWHwWQMAAKBkSh3ytm/frujoaDVu3FgWi0WrV68ucr2ePXvq3Xff1blz59SvXz81btxYvr6+Cg0N1YQJE5Senl7e2q8rsUmp6v7KZg1bGKenVuzVsIVx6v7KZsUmpbq7NLiILTNXwxbGafjCXcrKzZckZeXma/jCXRq2ME62zFw3VwgAAABPUOqQl5GRoYiICL311lvFrpOWlqavv/5a0dHR8vLy0oABA7R27Vr98MMPWrx4sTZu3Kgnn3yyXIVfT2KTUjV2SYJSbdlO7Sdt2Rq7JIGgZwKGYWjMkt2KO5Ymq4+Xhkc21axBbTU8sqmsPl6KO5amMUt2M6IHAACAa6pW2g2ioqIUFRV11XU+++wztW/fXkFBQZKksWPHOpY1a9ZM48aN05w5c0p76OtSvt3QjHUHVdRXe0OSRdKMdQd1T6tgeXtZKrk6uMo3x845At4nY7upVePakqRhkkZENtOg+V8r7lia4o6lqesN9dxbLAAAAKq0Uoe8kli7dq0GDBhQ5LITJ07ok08+0V133VXs9jk5OcrJyXE8v55P7YxPTis0gnc5Q1KqLVsdX9og32relVcYXKpgDt6g9iGOgFegVePaeuC2EC2P/0Wrv0sh5AEAAOCqXB7ycnJyFBsbq+nTpzu1Dxs2TGvWrFFWVpaio6P17rvvFruPWbNmacaMGa4uzSOdvlB8wLvc+cxcSczZ8nRtmwQU275c0rmMnCKXAwAAAAVcHvI2b96shg0bqnXr1k7t//rXvxQTE6MffvhB06ZN05QpUzRv3rwi91GwvEB6erpCQ0NdXapHaOhvLdF6df18GMnzYLasXGXl5mt/ik3Dili+P8UmSapX07dyCwMAAIDHcXnIW7t2rfr371+oPTg4WMHBwWrZsqUCAwN1xx136MUXX1SjRo0Krevr6ytfX77MSlLn5oFqFGDVSVt2kfPyLJKCA6zaMfVu5uR5sJ1Hz2r4wl36JOFXjYhs5nTK5sET6Vr13a+SpIG3NXFXiQAAAPAQLg15hmFo3bp1WrJkyVXXs9vtkuQ07w5F8/ayKCa6lcYuSZBFcgp6BZEuJroVAc/DdQ2vpy7hgYo7lqZB87/WA7eFqG2TAO1PsWnVd78qO9euLuGB6hIe6O5SAQAAUMWVOuRdvHhRR44ccTxPTk7W3r17FRgYqNOnTyszM1Pdu3d3LP/888916tQpderUSbVq1dKBAwf09NNPq1u3bgoLC3PJizC7fm0aaf6I9pqx7qDTRViCA6yKiW6lfm0Kj4bCs1gsFi0Y0dFxG4Xl8b9o+WXLu4QHasGIjrJYCPMAAAC4ulKHvN27d6tnz56O5wVz50aOHKnQ0FDde++9qlbt/3Zbo0YNLVy4UJMnT1ZOTo5CQ0M1aNAgPfvssy4o//rRr00j3dMqWB1f2qDzmbmq6+fDKZomE+Dno+WPd1HcsTSt/i5F5zJyVK+mrwbe1kRdwgMJeAAAACiRUoe8Hj16FHtD5ltvvVUvvPCCU1vPnj21c+fOslUHJ95elv9eXCVXvtW8CXgmZLFY1PWGetwmAQAAAGXm5aodXbp0SQ8++OA1b5QOAAAAAKg4LrvwSvXq1RUTE+Oq3QEAAAAAysBlI3kAAAAAAPcj5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwEUIeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsgDAAAAABMh5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwEUIeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsgDAAAAABMh5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwEUIeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsgDAAAAABMh5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwEUIeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsgDAAAAABMh5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwEUIeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsgDAAAAABMh5AEAAACAiRDyAAAAAMBECHkAAAAAYCKEPAAAAAAwEUIeAAAAAJgIIQ8AAAAATISQBwAAAAAmQsjzEIZhaOfRs7Jl5UqSbFm52nn0rAzDcHNlAADA1Yz8fNkvXZIk2S9dkpGf7+aKAHiSSgt5b731lsLCwmS1WhUZGan4+PjKOrTHs2XmatjCOA1fuEtZub//kc/Kzdfwhbs0bGGcbJm5bq4QAK4f9GeoaOnr1+tIr96ynz8vSbKfP68jvXorff16N1cGwFNUSshbuXKlpkyZopiYGCUkJCgiIkJ9+/bV6dOnK+PwHs0wDI1Zsltxx9Jk9fHS8MimmjWorYZHNpXVx0txx9I0ZsluRvQAoBLQn6Gipa9fr5SnJinv5Emn9rxTp5Ty1CSCHoASsRiVkA4iIyPVqVMnvfnmm5Iku92u0NBQTZw4Uc8+++w1t09PT1dAQIBsNptq165d0eVWKTuPntXwhbtk9fHSJ2O7qVXj/3v9B0+ka9D8r5Wda9fyx7uo6w313FgpAFRdrupH6M9QkYz8fB3p1btQwHOwWFQtKEg3btooi7d35RYHoEooaT9SraILuXTpkvbs2aNp06Y52ry8vNS7d2998803RW6Tk5OjnJwcx/P09HSX1BL9xg6duZBz7RWrkII5eIPahzgFPElq1bi2HrgtRMvjf9Hq71IIeQBQgapSf5b84EPKO3vWJftC1WG/dMlximaRDEN5J08qc/ce1YzsXHmFAfA4FR7yzp49q/z8fAUFBTm1BwUF6dChQ0VuM2vWLM2YMcPltZy5kKOT6dku329laNskoNj25ZLOZXhWeAUAT1OV+rO8s2eVd+qUy/cLz5B35oy7SwBQxVV4yCuLadOmacqUKY7n6enpCg0NLfd+G/j7lnsflc2Wlaus3HztT7FpWBHL96fYJEn1anreawMAs6uo/qxa/frl3geqnmuO5P1XtQYNKqEaAJ6swkNe/fr15e3trVNX/OJ46tQpBQcHF7mNr6+vfH1dH1rWTezu8n1WtII5eZ8k/KoRkc0Kzclb9d2vkqSBtzVxV4kAcF2oSv1Z848/cvk+4X6OOXmnTklFXTLhv3Py/Dp2qPziAHiUCr+6ZvXq1dWhQwdt2rTJ0Wa327Vp0yZ17dq1og/v8bqG11OX8EBl59o1aP7XmvbJfi3b9YumfbLfcdGVLuGB6hIe6O5SAcDU6M9Q0Sze3gp67r9zPi2WKxb+/jzouWlcdAXANVXK6ZpTpkzRyJEj1bFjR3Xu3Flz585VRkaGRo8eXRmH92gWi0ULRnR03EZhefwvWn7Z8i7hgVowoqMsV3YGAACXoz9DRavdp4/077k69fIsp6tsVgsKUtBz035fDgDXUCkhb8iQITpz5oz++te/6uTJk2rXrp1iY2MLTV5H0QL8fLT88S6KO5am1d+l6FxGjurV9NXA25qoS3ggAQ8AKgn9GSpD7T595N+rlzJ371HemTOq1qCB/Dp2YAQPQIlVyn3yyov7CgEAyqOq9CNVpQ4AgGcqaT9S4XPyAAAAAACVh5AHAAAAACZSJe+Td6WCM0rT09PdXAkAwBMV9B/unqFAfwYAKI+S9mceEfIuXLggSS65gSwA4Pp14cIFBQQEuPX4Ev0ZAKB8rtWfecSFV+x2u06cOCF/f//r/kqS6enpCg0N1fHjx5m0b2J8ztcHPufKYxiGLly4oMaNG8vLy30zFVzVn/F/5/rA53x94HO+Prjqcy5pf+YRI3leXl4KCQlxdxlVSu3atflDcB3gc74+8DlXDneO4BVwdX/G/53rA5/z9YHP+frgis+5JP0ZF14BAAAAABMh5AEAAACAiRDyPIyvr69iYmLk6+vr7lJQgficrw98zigr/u9cH/icrw98zteHyv6cPeLCKwAAAACAkmEkDwAAAABMhJAHAAAAACZCyAMAAAAAEyHkeZi33npLYWFhslqtioyMVHx8vLtLggtt375d0dHRaty4sSwWi1avXu3ukuBis2bNUqdOneTv76+GDRtq4MCBOnz4sLvLgoehLwAAz+Cu73aEPA+ycuVKTZkyRTExMUpISFBERIT69u2r06dPu7s0uEhGRoYiIiL01ltvubsUVJBt27Zp/PjxiouL04YNG5Sbm6s+ffooIyPD3aXBQ9AXmENJv/j17NlT7777rs6dO6d+/fqpcePG8vX1VWhoqCZMmKD09PTKLRylUpof9po3b66NGzfq8OHD6tmzp4KCgmS1WhUeHq4XXnhBubm5lVw9XMFd3+24uqYHiYyMVKdOnfTmm29Kkux2u0JDQzVx4kQ9++yzbq4OrmaxWLRq1SoNHDjQ3aWgAp05c0YNGzbUtm3bdOedd7q7HHgA+gJz+OKLL/T111+rQ4cOGjRoUJF/79PS0hQcHKzjx4+revXqWrFihTp16qQGDRroyJEjGj9+vNq3b69ly5a550Xgmvr166ehQ4eqU6dOysvL03PPPaekpCQdPHhQNWvWdKyXmJioO++8U2fOnNHx48e1bds2tW/fXnXq1NG+ffv0+OOP67HHHtPLL7/sxleD8qrM73bVKvwIcIlLly5pz549mjZtmqPNy8tLvXv31jfffOPGygCUh81mkyQFBga6uRJ4AvoC84iKilJUVNRV1/nss8/Uvn17BQUFSZLGjh3rWNasWTONGzdOc+bMqdA6UT6xsbFOzxcvXqyGDRtqz549Tj/srVmzRv369ZOPj4/Cw8MVHh7uWNasWTNt3bpVX331VaXVDc/H6Zoe4uzZs8rPz3f8oS8QFBSkkydPuqkqAOVht9s1adIkdevWTW3atHF3OfAA9AXXl7Vr12rAgAFFLjtx4oQ++eQT3XXXXZVcFcqjuB/2rvZZHzlyRLGxsXzWKBVCHgC4yfjx45WUlKQVK1a4uxQAVUxOTo5iY2PVv39/p/Zhw4bJz89PTZo0Ue3atfXuu++6qUKUVnE/7KWkpCgxMbHQyO7tt98uq9Wqm266SXfccYdmzpxZ2SXDgxHyPET9+vXl7e2tU6dOObWfOnVKwcHBbqoKQFlNmDBBn376qbZs2aKQkBB3lwMPQV9w/di8ebMaNmyo1q1bO7X/61//UkJCgtasWaOjR49qypQpbqoQpVXcD3tr165V9+7dVadOHaf2lStXKiEhQcuWLdNnn32mV199tRKrhacj5HmI6tWrq0OHDtq0aZOjzW63a9OmTeratasbKwNQGoZhaMKECVq1apU2b96s5s2bu7skeBD6guvH2rVrC43iSVJwcLBatmyp/v37a8GCBZo/f75SU1PdUCFK42o/7BX3WYeGhqpVq1YaNmyY/vGPf2j69OnKz8+vrJLh4bjwigeZMmWKRo4cqY4dO6pz586aO3euMjIyNHr0aHeXBhe5ePGijhw54nienJysvXv3KjAwUE2bNnVjZXCV8ePHa9myZVqzZo38/f0d86gCAgJUo0YNN1cHT0BfYH6GYWjdunVasmTJVdez2+2Sfj+1E1WTYRiaOHGiVq1apa1btxb6Ye/ixYvasmWL5s+ff9X92O125ebmym63y9vbuyJLhou567sdIc+DDBkyRGfOnNFf//pXnTx5Uu3atVNsbGyhCfjwXLt371bPnj0dzwtOwxk5cqQWL17spqrgSgUdeY8ePZzaFy1apFGjRlV+QfA49AXmcLUvfqdPn1ZmZqa6d+/uWP7555/r1KlT6tSpk2rVqqUDBw7o6aefVrdu3RQWFuaGV4CSuNYPe7Gxsbr55pudPsOlS5fKx8dHbdu2la+vr3bv3q1p06ZpyJAh8vHxcdMrQVm567sd98kDAACoZFu3bnX64ldg5MiRCg0NVXJystNI3pYtW/T888/r4MGDysnJUWhoqAYNGqRnn3220FwuVB0Wi6XI9oIf9h555BE1a9ZML730kmPZypUrNXv2bP3www8yDEPNmjXTiBEjNHnyZFmt1soqHR6OkAcAAFCF3HrrrXrhhRc0ePBgd5eCCpSXl6egoCB98cUX6ty5s7vLgclw4RUAAIAq4tKlS3rwwQeveaN0eL60tDRNnjxZnTp1cncpMCFG8gAAAADARBjJAwAAAAATIeQBAAAAgIkQ8gAAAADARAh5AAAAAGAihDwAAAAAMBFCHgAAAACYCCEPAAAAVcLkyZM1aNAgd5cBeDxCHgAAAKqE+Ph4dezY0d1lAB6PkAd4sOXLl6tGjRpKTU11tI0ePVq33nqrbDabGysDAKDkLl26JB8fH+3cuVPPP/+8LBaLunTp4u6yAI9lMQzDcHcRAMrGMAy1a9dOd955p9544w3FxMTovffeU1xcnJo0aeLu8gAAKBG73a7du3crMjJSe/fuVVBQkKxWq+rUqePu0gCPVM3dBQAoO4vFor///e966KGHFBwcrDfeeENfffUVAQ8A4FG8vLx04sQJ1atXTxEREe4uB/B4hDzAw91///1q1aqVZs6cqfXr16t169buLgkAgFL77rvvCHiAizAnD/BwsbGxOnTokPLz8xUUFOTucgAAKJO9e/cS8gAXIeQBHiwhIUGDBw/W//zP/6hXr1568cUX3V0SAABlsn//frVr187dZQCmwOmagIf66aefdN999+m5557TsGHDFB4erq5duyohIUHt27d3d3kAAJSK3W7X4cOHdeLECdWsWVMBAQHuLgnwWFxdE/BAaWlpuv3229WjRw+9/fbbjvb77rtP+fn5io2NdWN1AACU3pIlSzR16lSdOHFCf/nLXzRnzhx3lwR4LEIeAAAAAJgIc/IAAAAAwEQIeQAAAABgIoQ8AAAAADARQh4AAAAAmAghDwAAAABMhJAHAAAAACZCyAMAAAAAEyHkAQAAAICJEPIAAAAAwEQIeQAAAABgIoQ8AAAAADARQh4AAAAAmMj/B9AUqISMWyS2AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# @title\n", "fig, axs = plt.subplots(1, 2, figsize=(9, 3.5))\n", "\n", "# FDA: función escalera, continua por la derecha\n", "xs = [-0.4, 0, 0, 1, 1, 2, 2, 2.6]\n", "Fs = [0, 0, 1/3, 1/3, 2/3, 2/3, 1, 1]\n", "\n", "axs[0].plot(xs, Fs, lw=2, color=\"tab:blue\", drawstyle=\"steps-post\")\n", "# círculos abiertos/cerrados en los saltos\n", "for x0, y_low, y_high in [(0, 0, 1/3), (1, 1/3, 2/3), (2, 2/3, 1)]:\n", " axs[0].plot(x0, y_high, \"o\", color=\"tab:blue\", ms=6)\n", " axs[0].plot(x0, y_low, \"o\", color=\"tab:blue\", ms=6,\n", " markerfacecolor=\"white\", markeredgewidth=1.5)\n", "axs[0].set_title(r\"FDA: $F_\\mu(x)$\")\n", "axs[0].set_xlabel(\"$x$\")\n", "axs[0].set_yticks([0, 1/3, 2/3, 1])\n", "axs[0].set_yticklabels([\"0\", \"1/3\", \"2/3\", \"1\"])\n", "axs[0].set_xticks([0, 1, 2])\n", "\n", "# Pseudoinversa: constante en intervalos\n", "ts = [0, 1/3, 1/3, 2/3, 2/3, 1]\n", "Fs_inv = [0, 0, 1, 1, 2, 2]\n", "\n", "axs[1].plot(ts, Fs_inv, lw=2, color=\"tab:red\", drawstyle=\"steps-post\")\n", "for t0, y_low, y_high in [(1/3, 0, 1), (2/3, 1, 2)]:\n", " axs[1].plot(t0, y_high, \"o\", color=\"tab:red\", ms=6,\n", " markerfacecolor=\"white\", markeredgewidth=1.5)\n", " axs[1].plot(t0, y_low, \"o\", color=\"tab:red\", ms=6)\n", "axs[1].set_title(r\"Pseudoinversa: $F_\\mu^{[-1]}(t)$\")\n", "axs[1].set_xlabel(\"$t$\")\n", "axs[1].set_xticks([0, 1/3, 2/3, 1])\n", "axs[1].set_xticklabels([\"0\", \"1/3\", \"2/3\", \"1\"])\n", "axs[1].set_yticks([0, 1, 2])\n", "\n", "plt.suptitle(r\"$\\mu = \\frac{1}{3}\\delta_0 + \\frac{1}{3}\\delta_1 + \\frac{1}{3}\\delta_2$\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_08" }, "source": [ "### Ejemplo 3: medida mixta\n", "\n", "Tomamos $\\mu = \\tfrac{1}{2}U[0,1] + \\tfrac{1}{2}\\delta_2$.\n", "\n", "$$\n", "F_\\mu(x) = \\begin{cases} 0 & x < 0 \\\\ x/2 & 0 \\leq x < 1 \\\\ 1/2 & 1 \\leq x < 2 \\\\ 1 & x \\geq 2 \\end{cases}\n", "\\qquad\n", "F_\\mu^{[-1]}(t) = \\begin{cases} 2t & t \\in (0, 1/2) \\\\ 2 & t \\in [1/2, 1) \\end{cases}\n", "$$\n", "\n", "El tramo plano de $F_\\mu$ en $[1,2)$ (donde $\\mu$ no tiene masa) produce un salto en $F_\\mu^{[-1]}$ en $t = 1/2$." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 365 }, "executionInfo": { "elapsed": 1006, "status": "ok", "timestamp": 1788527669505, "user": { "displayName": "Julian Fernandez Bonder", "userId": "01548826079249958852" }, "user_tz": 180 }, "id": "cell_09", "outputId": "e704dfeb-c93d-465f-afd1-b9d2948a8bb8" }, "outputs": [ { "data": { "image/png": "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GXPBpw8BgNl69uypDh06SJLuvfdeRUZG6pVXXtFHH310QZ+PVZW3t7e8vb3NLqNcWVlZqlatmmnb3759u8LCwjR69OgKz2nXXnutfvjhhzKXPfnkk/r3v/99wXUtWLBAvXv3VkBAgN345s2bJUnt2rUr9ZyBAwdq6tSpWrt2rbp27XrB20bVxJE8oAJ69uypoUOH2v20adOmzHVGjBihiRMn6osvvtDq1auVnJys3r17Kycnp9TrJiUlaf369XrllVcUHR2td95556JrPXsi+mvNcXFxDr9OeROHowYOHKgDBw5o7dq1F/R8AKiKineKk5KSJEmZmZkaN26cGjRoIH9/f9WoUUM33XSTtmzZYnvOkSNHdPfddysmJkb+/v5q2bKl3nzzTbvXHT58uBo0aFBqe+VdZ/f999/ryiuvVEBAgC677LJznjmxdetW9ezZU6GhoQoODla3bt20ceNGu3X+ek1e8Xb37t2r4cOHKzw8XGFhYRoxYoTdUcxly5bJYrHom2++KbXd1157TRaLRYmJiRV6L4q3vWvXLt15552qXr26rr32Wknnf78PHDigkSNHqmnTpgoMDFRkZKQGDBhQ7rWGu3fv1sGDB8t974pt27ZNbdu2vaAvLb///nsZhlHmz8UEvKSkJG3fvl033nij3XjHjh31f//3f5Kkyy+/XBaLxe46v/bt2ysiIkIfffTRBW8bVRchD6gEXbt21dNPP60DBw5o8eLFpZa/8847ql69um699Vbdcccd5YY8Rych6eImomLlTRxHjhxRQECA7r77brvx1atXy9fXVw8//LBtjEkEgCf6/fffJUmRkZGSpAcffFBz585V//79NWfOHD366KMKDAzUL7/8Ikk6ceKErrrqKq1evVqjR4/Wq6++qsaNG+uee+7R9OnTL6iGHTt2qHv37kpOTtbkyZM1YsQITZo0SStWrCi17s6dO3Xddddp27Zteuyxx/T0008rKSlJN9xwg3788cfzbmvgwIHKzMzUlClTNHDgQC1cuFDPPPOMbfmtt96q4OBg/e9//yv13KVLl6ply5a2M18q+l4MGDBA2dnZev7553XfffdJOv/7/dNPP2n9+vUaPHiwZsyYoQcffFBff/21brjhhjJPsW3evLnuuuuuc74H+fn52rNnj5o1a6bU1FS7n4KCgvO+h44qLCxUbm6uioqK7P67POvXr5dU+mjdhAkT1KpVK11++eW2U0r/ug/Srl27co8uws0ZAM5rwYIFhiRj9erVRkpKit3PX9f56aefynyNQ4cOGZKMO+64o9SyZs2aGffcc49hGIbx7bffGpKMTZs2lVpPktG5c+fz1puXl2f4+voaDz74YKl68/PzHfytDWPx4sWGJGP79u2llo0aNcrw9fU19u/fbxiGYfzyyy9GeHi40atXL6OoqMhu3RtvvNFo3769w9sFgKrir5//hw4dMpYsWWJERkYagYGBxuHDhw3DMIywsDBj1KhR5b7OPffcY9SqVctITU21Gx88eLARFhZmZGdnG4ZhGMOGDTPq169f6vmTJk0y/rrb1qdPHyMgIMA4cOCAbWzXrl2Gt7d3mev6+fkZv//+u23s6NGjRkhIiHH99deX+n2TkpLstnv33XfbvV7fvn2NyMhIu7EhQ4YYNWrUMAoLC21jx44dM7y8vIxnn322wu9F8baHDBlS6v043/td/Bpn27BhgyHJePvtt0stc2R+3bp1qyGpzJ+dO3eWer1Dhw6d8/XKU/x7n/2zYMECu+XF+wyGYRhPPfWUIcnIzMws9Vr16tUzhg8fXu627r//fiMwMPCC6kTVxpE8oAJuvPFGRUdH2/04qm7dugoLC7N9+1ts8+bN2r17twYPHizpj3P269ate1GnbO7atUsFBQWaN29eqXp/++03h19n9+7dklTqOkRJmjhxory8vPTiiy/q5MmTuu2229SgQQO99957pRq0NGrUSLt27brg3wcAzFb8+R8bG6vBgwcrODhYK1asUJ06dSRJ4eHh+vHHH3X06NFSzzUMQx988IF69eolwzDsjgD16NFD6enpdqd1OqKoqEhffPGF+vTpo3r16tnGmzdvrh49epRa98svv1SfPn3UqFEj23itWrV055136vvvv1dGRsY5t/fggw/aPb7uuut08uRJu+cNGjRIycnJWrdunW1s2bJlslqttoZfF/Je/HXb0rnfb0kKDAy0/XdBQYFOnjypxo0bKzw8vMz32jAMu7rLsn37dknSW2+9pa+++srup1mzZnbr+vv7q1WrVhd0lHby5MmlTuccPny4pD+OvL300kvy9fW1rX/y5En5+PgoODjY7nXS09N18ODBcnsBSFL16tWVk5PjcQ2EQOMVoEJmz56tJk2aXPDzg4ODS3XZfOeddxQTE6MuXbpIkq375eLFi/Xyyy/bXQBvONgB6+yJqHbt2nbL/joRnUt5E4ck1alTR/fdd5/eeOMNbdmyRTk5Ofrmm2/KvCD+7EkkKCjI4e0DQFVR/Pnv4+OjmJgYNW3a1O4LralTp2rYsGGKjY1V+/btdcstt+iuu+5So0aNlJKSotOnT+v111/X66+/XubrJycnV6ielJQU5eTk6PLLLy+1rGnTpvrss8/s1s3OzlbTpk1Lrdu8eXNZrVYdOnRILVu2LHd7ZwdJSbaGXqdOnVJoaKgk6eabb1ZYWJiWLl2qbt26SfrjVM02bdrY5s4LeS/K+qLxXO+3JOXk5GjKlClasGCBjhw5Yjd/pqenl/t7nsu2bdvk5+enO++8Uz4+596Fzs3NvaBtnE9Fvgwo3hc4V8grfl9ojOZ5CHlABXTs2NHWXe1CnDlzRjVq1LA9Lioq0pIlS9SlSxfbxfuSFB8fr5dffllff/21unfvXuHtVGQiuhiPPvqoZs2ape3bt+u7776zfaP9V0wiANzd+T7/Bw4cqOuuu04rVqzQl19+qWnTpunFF1/U8uXL1bZtW0nS0KFDNWzYsDKfX7wjXt7n5LmuyaoM5XXcPDs8+fv7q0+fPlqxYoXmzJmjEydO6IcfftDzzz9vW6f4fquOvBfFzj4qV+xc73fPnj01ZswYLViwQOPGjVOnTp0UFhYmi8WiwYMHV/ier8W2b9+uyy+/3KXz6oWIjIxUYWGhMjMzFRISYhsvDnnnarZ26tQpBQUFlfkew71Vrb9SwIMdPnxY6enpdrdGWLNmjY4dO6YlS5ZoyZIlpZ7zzjvvXFDIc9ZEVN7EUey5556T9MdF4hEREeW+DpMIgEtBrVq1NHLkSI0cOVLJyclq166dnnvuOX3zzTcKCQlRUVFRqUZWf1W9enWdPn261PiBAwfsHkdHRyswMLDMU/D37NlTat2goKBS49Ifp+V7eXkpNjbWgd/w/AYNGqS33npLX3/9tX755RcZhmF3b9bo6GiH34vzKe/97tmzp5YtW6Zhw4bp5Zdftq2fm5tb5nvrqO3bt+uGG264qJpdofgMnaSkJLuAvH37dtWqVUtRUVHlPjcpKUnNmzd3eY2ofFyTB1SSRYsWSZLdtRLvvPOOatSooffff7/Uz5AhQ7RixYoyb7lwPtu3bz/naTfFnnjiCT311FO2x+vWrbO7GfvZE8dfTZs2TfPnz9esWbPk4+NjC3xlYRIB4MmKiopKnQJYo0YN1a5dW3l5efL29lb//v31wQcf2N1GoFhKSortvy+77DKlp6fbjsJI0rFjx0p1zPT29laPHj304Ycf2nVd/uWXX/TFF1+UWrd79+766KOP7G4hcOLECb377ru69tprbadcXqwbb7xRERERWrp0qZYuXaqOHTvanW5ZkfeiPOd7v4u389dLHGbOnFnuEdHzda8+fvy4kpOTHZpbK1unTp0kST///LPd+MGDB1W3bt1zPnfLli26+uqrXVYbzMORPKASrFmzRv/617/UsGFD2z1rcnJytHz5cg0YMEB33HFHqefUrl1b7733nlauXGn7FnT37t0KCgoqdW3E2SoyESUmJtq1jN62bZvdt4BnTxxnj3/44Yd6/PHH9a9//UujRo3Sb7/9pjlz5ujJJ58s89qJLVu22H5vAPA0mZmZqlu3ru644w7FxcUpODhYq1ev1k8//WQ7kvTCCy9o7dq1io+P13333acWLVooLS1NW7Zs0erVq5WWliZJGjx4sCZMmKC+fftq7Nixys7O1ty5c9WkSZNS12M988wzWrVqla677jqNHDlShYWFmjlzplq2bGkXEiXp3//+t7766itde+21GjlypHx8fPTaa68pLy9PU6dOddp74evrq379+mnJkiXKysrSSy+9VGodR9+L8jjyft92221atGiRwsLC1KJFC23YsEGrV6+23fLir5o3b67OnTuX23xl27ZtkuTwF6heXl62e9+tW7dOEyZMcOhWFReiUaNGatWqlVavXm13a6OGDRtqzZo1mjp1qmrXrq3mzZurffv2tuWbN29WWlqabr/9dpfUBZNVfkNPwP2c7/YIZ6/z7LPPGosWLTIWLFhgvPDCC0b37t0Ni8ViNGjQwNixY4dt/SVLlhiSjA8//LDM1ysqKjKio6ONXr162cbkQIvnVatWGZKMZcuWnff3atiwofHrr7/aHo8YMcJ49dVX7dZp1aqVXfvqn3/+2QgKCjL+9re/2caOHDli+Pv727V0Pnt9/dl+HADcjSOf/3l5ecY//vEPIy4uzggJCTGqVatmxMXFGXPmzLFb78SJE8aoUaOM2NhYw9fX16hZs6bRrVs34/XXX7db78svvzRatWpl+Pn5GU2bNjUWL15c5i0UDMMwvvnmG6N9+/aG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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# @title\n", "fig, axs = plt.subplots(1, 2, figsize=(9, 3.5))\n", "\n", "x = np.linspace(-0.2, 2.6, 1000)\n", "F = np.where(x < 0, 0,\n", " np.where(x < 1, x/2,\n", " np.where(x < 2, 0.5, 1.0)))\n", "\n", "axs[0].plot(x, F, lw=2, color=\"tab:blue\")\n", "axs[0].plot(2, 1, \"o\", color=\"tab:blue\", ms=6)\n", "axs[0].plot(2, 0.5, \"o\", color=\"tab:blue\", ms=6,\n", " markerfacecolor=\"white\", markeredgewidth=1.5)\n", "axs[0].set_title(r\"FDA: $F_\\mu(x)$\")\n", "axs[0].set_xlabel(\"$x$\")\n", "axs[0].set_yticks([0, 0.5, 1])\n", "axs[0].set_yticklabels([\"0\", \"1/2\", \"1\"])\n", "axs[0].set_xticks([0, 1, 2])\n", "\n", "t = np.linspace(0, 1, 1000)\n", "Finv = np.where(t < 0.5, 2*t, 2.0)\n", "\n", "axs[1].plot(t, Finv, lw=2, color=\"tab:red\")\n", "axs[1].plot(0.5, 2, \"o\", color=\"tab:red\", ms=6)\n", "axs[1].plot(0.5, 1, \"o\", color=\"tab:red\", ms=6,\n", " markerfacecolor=\"white\", markeredgewidth=1.5)\n", "axs[1].set_title(r\"Pseudoinversa: $F_\\mu^{[-1]}(t)$\")\n", "axs[1].set_xlabel(\"$t$\")\n", "axs[1].set_xticks([0, 0.5, 1])\n", "axs[1].set_xticklabels([\"0\", \"1/2\", \"1\"])\n", "axs[1].set_yticks([0, 1, 2])\n", "\n", "plt.suptitle(r\"$\\mu = \\frac{1}{2}\\mathcal{U}[0,1] + \\frac{1}{2}\\delta_2$\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_10" }, "source": [ "## 2. El mapa de transporte monótono\n", "\n", "Dadas $\\mu, \\nu \\in P(\\mathbb{R})$ con $\\mu$ sin átomos, el **mapa de transporte monótono** está dado por\n", "\n", "$$\n", "T_{\\mathrm{mon}}(x) = F_\\nu^{[-1]}(F_\\mu(x)).\n", "$$\n", "\n", "Es el único (salvo un conjunto $\\mu$-nulo) mapa medible no decreciente que transporta $\\mu$ en $\\nu$ (Teorema 8.2.1).\n", "\n", "En el siguiente ejemplo tomamos:\n", "- $\\mu = N(0,1)$, la distribución normal estándar.\n", "- $\\nu = N(3, 0.5^2)$, una normal desplazada y más concentrada.\n", "\n", "El mapa monótono comprime y desplaza la distribución de $\\mu$ hacia $\\nu$." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 271 }, "executionInfo": { "elapsed": 786, "status": "ok", "timestamp": 1788527828917, "user": { "displayName": "Julian Fernandez Bonder", "userId": "01548826079249958852" }, "user_tz": 180 }, "id": "cell_11", "outputId": "0597aad6-6ec6-4b61-d464-53283abc101e" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABQkAAAFUCAYAAACHobrPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA1jFJREFUeJzs3XlcVPX6wPHPzLAMO7LvKq6oKIq7opWWu2mpLZZLZast17qldcts83a717yVv+x2s27dbO+2mZaZJiqmooSK4ooIyCb7NsDM+f0xMTIxKCgwM/C8Xy9enTl8zznPgHFmnvl+n0elKIqCEEIIIYQQQgghhBCiw1JbOwAhhBBCCCGEEEIIIYR1SZJQCCGEEEIIIYQQQogOTpKEQgghhBBCCCGEEEJ0cJIkFEIIIYQQQgghhBCig5MkoRBCCCGEEEIIIYQQHZwkCYUQQgghhBBCCCGE6OAkSSiEEEIIIYQQQgghRAcnSUIhhBBCCCGEEEIIITo4SRIKIYQQQgghhBBCCNHBSZJQCCGEEEIIIYQQQogOTpKEQgghhBBCCCGEEEJ0cJIkFEIIIYQQTaLT6XjppZf44YcfrB2KEEII0YDcp4S4MpIkFKKNqVQqnn322UuOe/bZZ1GpVC167S5durBgwYIWPacQQoiOY8mSJXz44YcMGzbM2qG0O3/729/o3bs3BoOh2ceuXbuWiIgIdDpdK0QmhGjP3nvvPVQqFWlpaWb79+7dy8iRI3Fzc0OlUrF69WqL49pSY7HWJ/cpIa6MJAlFu1F306j70mq1hISEMGHCBF577TVKS0utHaIQQohWUP/v/44dOxp8X1EUwsPDUalUTJ061QoRtg+ffvopX331FRs3bsTb29vse7t27eLZZ5+lqKjIKrE11dmzZ81eK1zs69SpU20WV0lJCS+//DJPPPEEanXzX54vWLCA6upq3nrrrVaITgjRVqZPn46rq+tF37fMnTsXJycnzp8/32px1NTUMHv2bAoKCnj11Vf54IMPUBSl1a7XUi52n2oNtnpPEeJKOFg7ACFa2nPPPUfXrl2pqakhOzubbdu28cgjj7Bq1Sq++eYb+vfvb9X4KisrcXCQ//WEEKKlabVa1q9fz+jRo832//LLL2RkZODs7GylyOyfoihkZGSwceNGIiIiGnx/165drFixggULFrTJG7PL5ezszAcffGB6XFlZyd13383VV1/NHXfcYdqvUqmIjIxss7jWrVtHbW0tt9xyy2Udr9VqmT9/PqtWreLBBx9s8ZUIQoi2MXfuXL799lv+97//MW/evAbfr6io4Ouvv2bixIn4+vq2yDVvv/12br75ZrN75MmTJzlz5gxvv/02d911FwB6vZ777rvPqvdSS7HWudR9qjXY6j1FiCshmQrR7kyaNInBgwebHi9btoyff/6ZqVOnMn36dI4cOYKLi4vV4tNqtVa7thBCtGeTJ0/ms88+47XXXjP7MGb9+vXExsaSn59vxejsm0qlYsmSJdYO44oFBARw2223mR7v27cPgClTppjtb2vvvvsu06dPv6LXCHPmzOFvf/sbW7du5ZprrmnB6IQQbWX69Ol4eHiwfv16i0nCr7/+mvLycubOnXvF1yovL8fNzQ2NRoNGozH7Xm5uLoDZhz6WxrW1i8VgjfuUrd5ThLgSstxYdAjXXHMNTz/9NGfOnOG///2vaf/Ro0eZNWsWPj4+aLVaBg8ezDfffGN2bN0ytp07d7JkyRL8/f1xc3Nj5syZ5OXlmY3dt28fEyZMwM/PDxcXF7p27Wr2KRJYrkm4Y8cOhgwZglarpVu3bo0uF3r33Xe55pprCAgIwNnZmT59+vDmm282GKcoCi+88AJhYWG4urpy9dVXc/jwYYvnLCoq4pFHHiE8PBxnZ2e6d+/Oyy+/3KAm0scff0xsbCweHh54enoSHR3NP//5T4vnFEIIa7jllls4f/48mzdvNu2rrq7m888/59Zbb20w/syZM9x///306tULFxcXfH19mT17doNaR3U1Yo8ePcqcOXPw9PTE19eXhx9+mKqqqss6pyV11zl27Bi33XYbXl5e+Pv78/TTT6MoCmfPnuX666/H09OToKAg/vGPfzQ4x4EDB5g0aRKenp64u7szbtw4du/ebfE6J06cMM388/LyYuHChVRUVDT7nM8++yx//vOfAejatatpaVX959zScTXlfE2RnJwMQHR0dLOPbSmnT58mOTmZ8ePHN/heZmYmWq22wWuJn376CUdHR/70pz+Z9sXGxuLj48PXX3/d6jELIVqHi4sLN9xwA1u2bDEl6upbv349Hh4eTJ8+3bQvMzOTO+64g8DAQJydnenbty/r1q0zO67u72tKSgq33nornTp1Ms26/2OdvwULFjB27FgAZs+ejUql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9ddmy59zcnJYv349o0ePxtPTs9XOWTfj4I/J0JaOqyXPl5ycjEajoU+fPo1+f8+ePTz66KPk5uZSUVHBuHHjuOGGG8jLyyM4ONj0AeSjjz7K4cOHOXz4MMePH+enn37is88+A4xvxHbt2sXixYspKCigX79+rFu3znSdESNGALBv374GMXz11VcsXbqU559/ngceeIC7776b999/n9OnT1uMef/+/YwcObJJz18IYdvqZg0+88wzJCUlmc0iBOPfwxtvvJEvvvjCYnLtct7PNIdarWbGjBl8++23Fv9+1d0Lm3JfbOq5/qg17n11jh49avb+7FJs5Z7yxhtv4O3tzZw5c/jvf/+Lt7c3v/zyC3FxcQwdOhQwLkPPy8tr8D74tddeu+SS6ZaoSQjGJcdZWVnEx8dzzz33sHTpUouTakTbk5mEot3ZuHEjR48epba2lpycHH7++Wc2b95M586d+eabb0y1EdasWcPo0aOJjo5m0aJFREZGkpOTQ0JCAhkZGaairU31n//8h//7v/9j5syZdOvWjdLSUt5++208PT2ZPHlyo8etWLGCTZs2ERcXx/33309tbS2vv/46ffv2NU1bB7juuutMs/nuueceysrKePvttwkICDD7A+/v789jjz3GypUrmTp1KpMnT+bAgQNs3LixQT2rP//5z3zzzTdMnTqVBQsWEBsbS3l5OQcPHuTzzz8nLS0NPz8/7rrrLgoKCrjmmmsICwvjzJkzvP7668TExMiMBSGETWps6VV9U6dO5YMPPsDLy4s+ffqQkJDATz/9hK+vr8Xxp0+fZvr06UycOJGEhAT++9//cuutt5ot12nuOVvSCy+8wObNmxk9ejT3338/Dg4OvPXWW+h0Ov72t7+16jljY2MBeOqpp7j55ptxdHRk2rRpuLm5tXhcLXW+5ORkunfv3ujyu+TkZJ577jlTEf2uXbsyaNAgU9OAXr16odfrycjI4P333yctLQ0vLy/AmDhOTExkzpw5HDx4kGeffZZhw4YBxtqW9d/wRkZG0q9fP3766SfuuOMO0/7ExETmzp3L3LlzeeqppwB4/PHHWbt2rcXZhImJiRQUFHD99dc3+WcghLBdXbt2ZeTIkXz99dcADZKEAH/961/ZunUrw4YNY9GiRfTp04eCggL279/PTz/91ORloZfrpZde4scff2Ts2LHcfffdREVFce7cOT777DN27NiBt7d3k++LTTmXJa1x7wNjTcOxY8c2uXmJrdxTFi9ezP3338+AAQPYsmUL+/bt47PPPjObWFI36/HHH3/k/vvvp3fv3uzevds0cSQxMZFff/3VdI366moSXqmQkBB2797N1KlTuf3221m5cuUVn1O0kLZspSxEa3r33XfNWq47OTkpQUFByrXXXqv885//VEpKShocc/LkSWXevHlKUFCQ4ujoqISGhipTp05VPv/88wbn3bt3r9mxde3ft27dqiiKouzfv1+55ZZblIiICMXZ2VkJCAhQpk6dquzbt8/sOEBZvny52b5ffvlFiY2NVZycnJTIyEhl7dq1yvLly5U//i/6zTffKP3791e0Wq3SpUsX5eWXX1bWrVvXoMW8Xq9XVqxYoQQHBysuLi7KVVddpRw6dEjp3LmzMn/+fLNzlpaWKsuWLVO6d++uODk5KX5+fsrIkSOVv//970p1dbWiKIry+eefK9ddd50SEBCgODk5KREREco999yjnDt3rim/GiGEaFWN/Z3+o86dOytTpkwxPS4sLFQWLlyo+Pn5Ke7u7sqECROUo0ePNvhbWff3OCUlRZk1a5bi4eGhdOrUSVm8eLFSWVlpdo2mntOSuuvk5eWZ7Z8/f77i5ubWYPzYsWOVvn37mu3bv3+/MmHCBMXd3V1xdXVVrr76amXXrl1Nuk7dz7H+/aSp51QURXn++eeV0NBQRa1WNzhPS8fV1JgaU1NTozg5OSmzZ8+2+H29Xq+4urqa3ed69epl9m9swoQJyueff658+OGHyoQJE8yOv+uuu5R//OMfSm1traLVapWsrCzT966//nrlP//5j9n4VatWKe7u7kpFRYWiKIpy9uxZJTg4WBk1apRSVVVlNva+++5THB0dlVOnTpntf+KJJ5SIiAjFYDA0+ecghLBta9asUQBl6NChjY7JyclRHnjgASU8PFxxdHRUgoKClHHjxin/+te/TGMa+/uqKJb/xta9z/nss88uOk5RFOXMmTPKvHnzFH9/f8XZ2VmJjIxUHnjgAUWn0ymK0rz74qXOdSX3qebe+wBl7NixDX5eltjKPSUzM1Px8vJS3N3dFQcHB8XLy0txdHRU3NzcFC8vL+XAgQOKoijKq6++qmg0GmXDhg1Kt27dFK1Wq1x77bXKwYMHlW7duilhYWFKYmJik5775VqyZIkCKPfee6/ct2yMSlGsXJ1aCCGEEMKGPfvss6xYsYK8vLwGM7JF+3Ts2DHi4uLIyckBjN05vb29KS4uNq1ICAkJ4ZdffmHTpk3s3LmTjz/+GICamhq6devGxx9/jK+vL2PGjDGdB4wzB7/88ktTSRIwlg+JjIzkb3/7G3feeWez49XpdHTp0oWlS5fy8MMPX8EzF0II0dLa+p6yZs0aCgoKePrpp+nVqxe7d+82dXEGuOuuu9i+fTvHjh1rg2cv7I3UJBRCCCGEEKKe5ORks2Xkhw8fplu3bqY3c/n5+RQXF9OtWzdiY2PZvn07mZmZFBUVcc899xATE8PIkSM5ePCg2XlKS0vJzMxsULPKy8uLxx9/nFdeeeWyun2+++67ODo6cu+9917mMxZCCNFa2vqesn//fgYOHEhpaSm1tbVmCUIwLjdurHaiEJIkFEIIIYQQop4/vhGz9Lhv376o1WpGjhzJvffey8CBA+nWrRtOTk589NFHFo87dOgQPXv2xMnJqcE1n3jiCVM3zua69957SU9Px9nZudnHCiGEaF1tfU/Zv38/MTEx/Pbbb2YzDMHYBCYlJUWShKJRstxYCCGEEOIiZLmxEEIIIdqDU6dO0a1bNz744ANuu+02a4cjbJAkCYUQQgghhBBCCCGE6OBkubEQQgghhBBCCCGEEB2cJAmFEEIIIYQQQgghhOjgHKwdQFMYDAaysrLw8PBApVJZOxwhhBBNpCgKpaWlhISEXFYx/vZE7mVCCGGf5F52gdzLhBDCPjX1XmYXScKsrCzCw8OtHYYQQojLdPbsWcLCwqwdhlXJvUwIIeyb3MvkXiaEEPbuUvcyu0gSenh4AMYn4+npaeVohBBCNFVJSQnh4eGmv+MdmdzLhBDCPsm97AK5lwkhhH1q6r3MLpKEdVPZPT095WYkhBB2SJYkyb1MCCHsndzL5F4mhBD27lL3so5dVEMIIYQQQgghhBBCCGEfMwmFEEIIIYQQQtgmRVHQ6XTWDkNchKOjIxqNxtphCCFsnN0nCRVFoba2Fr1eb+1QxGWQm5UQQgghhBD2LSsri5KSEmuHIS5CpVIRFhaGu7u7tUMRQtgwu04SVldXc+7cOSoqKqwdirhMcrMSQgghhBDCftXW1lJSUoKvr6/UKbRRiqKQl5dHRkYGPXr0kEkaQohGXVaScM2aNbzyyitkZ2czYMAAXn/9dYYOHdro+NWrV/Pmm2+Snp6On58fs2bNYuXKlWi12ssO3GAwcPr0aTQaDSEhITg5OUkxYTsjNyshhBBCCCHsW21tLWDsfHwl7+9E6/L39yctLY2amhp53yWEaFSzk4SffPIJS5YsYe3atQwbNozVq1czYcIEUlNTCQgIaDB+/fr1LF26lHXr1jFy5EiOHTvGggULUKlUrFq16rIDr66uxmAwEB4ejqur62WfR1iX3KyEEEIIIYS4PLYweaOOTNiwbfL7EUI0RbO7G69atYpFixaxcOFC+vTpw9q1a3F1dWXdunUWx+/atYtRo0Zx66230qVLF6677jpuueUW9uzZc8XBA6jV0qDZnsnNSgghhBBCiOarm7yxfPly9u/fz4ABA5gwYQK5ubkWx9dN3li+fDlHjhzhnXfe4ZNPPuHJJ59s48iFEELYqmZl2Kqrq0lMTGT8+PEXTqBWM378eBISEiweM3LkSBITE01JwVOnTvH9998zefLkRq+j0+koKSkx+xJCCFFPXipseR6+egB2/hPK8qwdkRBCCGEzFEXheOFx1h1ax8JNC/n+1PfWDqnF2drkDSGEEPavWcuN8/Pz0ev1BAYGmu0PDAzk6NGjFo+59dZbyc/PZ/To0aZOxPfee+9FP7FauXIlK1asaE5oQgjRMSgK/PIybPsroFzYv/3vcP0a6DPdaqEJIYQQ1lRRU8Gv534lPjOe+Mx4ssuzTd/zd/VncmTjkxTsTd3kjWXLlpn2NWXyxn//+1/27NnD0KFDTZM3br/99kavo9Pp0Ol0pscdffJGUVERn376KXfffXerXmfBggXMmjWLqVOntup1RMdQm5+P2sUFtZubtUMRdqDVuxtv27aNl156if/7v/9j2LBhnDhxgocffpjnn3+ep59+2uIxy5YtY8mSJabHJSUlhIeHt3aoNishIYGRI0fy5JNP8uKLLwJw/Phxhg8fzvnz503jZs+ezZIlSxgxYgTHjx9n/vz55Ofn4+XlxXvvvUffvn0vep2HHnqIb775hjNnznDgwAFiYmJM34uLi+P999+na9eurfIchRBNFP8P2Lay4X5dCXw2H+a8D1HT2j4uIYQQwgrOlJwhPiOe7Rnb2ZezjxpDjcVxmWWZbRxZ67LlyRuvbj7WrPGX8qdre7bo+a5EUVER//rXvywmCQ0Gg5TCEjan8OOPyV7xHKhVuHYPwL1fGO79QnEK9ER1jZQaEA0166+Yn58fGo2GnJwcs/05OTkEBQVZPObpp5/m9ttv56677iI6OpqZM2fy0ksvsXLlSgwGg8VjnJ2d8fT0NPvqyBITExk6dChffPGF2b5BgwaZHu/Zs4eCggJGjBgBwD333MPdd9/NsWPHeOKJJ1iwYMElrzNr1ix27NhB586dG3zv0UcfZfny5Vf+ZIQQl+/Id/Dz8xcej10Kd2+DfjcaHysG+Op+KM6wSnhCCCFEa9PpdezM3Mlf9/yVKV9OYer/pvLy3pdJOJdgliB0UjsxKmQUS4cuZcPMDXw4+UMrRm0b6k/e2L9/P19++SUbNmzg+eefb/SYZcuWUVxcbPo6e/ZsG0bcdGlpaQwYMIC5c+fSo0cP7rvvPr766iuGDRtGv379OH78OGlpaQwePNh0zGOPPcZ7770HwAcffMCQIUMYMGCAabJKWVkZEydOJDo6mujoaH744QeeeuopUlJSiImJ4bnnniMtLY3o6Ghuvvlm+vTpQ2VlJVOnTiU2NpZ+/frx4YcfNnquP3r22Wfp1asX11xzjdn7bUuxWTJixAiys42zZ/fv38+NN954xT9XYd+qUlPJefEl40okvYGK1Gxyv9jHqRVfc/Lp/5H93PPUZGVZO0xhY5o1k9DJyYnY2Fi2bNnCjBkzAOMnJlu2bGHx4sUWj6moqGjwiUpdF1tFUSwdYvfuuOMORowYwaJFiwB48skncXd3v+yiwPv372f27Nl88MEHHDp0iH79+pGYmEhsbKxpzFtvvcWtt94KQG5uLvv27ePHH38E4MYbb2Tx4sWcOHGC7t27N3qdMWPGNPq9KVOmsGjRIoqLi/Hy8rqs5yGEuAK6Mvj+sQuPxy2HuN9fKN74jvG/h74wzij85kG47UuQxkBCCCHagayyLOIzjEuI92TvobK20uK4YLdgxoSNIS40jiFBQ3B1dG3jSNvOlU7eAIiOjqa8vJy7776bp556yuIsOGdnZ5ydnVv+CbSCI0eO8Omnn9K9e3f69euHu7s7v/76K2+99RZvvPEGf/rTnxo97uuvvyYhIQEHBwfmzZvHhg0bqKqqwtfXl02bNqEoCqWlpfTq1YvU1FT27dsHGJOTR44c4cMPP6R///4AvP/++/j4+FBeXs6QIUOYNWsWP/zwQ4Nz1bd37142bNhAcnIyBQUFREVF8cADDzQa25QpU8yOVxSF3Nxc0+/+4MGDpnhEx2TQ6ch67M8oNcYPT9QuThgqq03frzlfRuH69VQmJdHli8+loagwafZy4yVLljB//nwGDx7M0KFDWb16NeXl5SxcuBCAefPmERoaysqVxuVw06ZNY9WqVQwcONC03Pjpp59m2rRppmRhS5n2+g7ySnWXHniZ/D2c+fbB0Zcct2/fPh566CGzx4899pjZmJtuuonU1FSLx3/77bdmy6sTExO57bbbqKio4IsvvjAlCe+77z7TmG3btplufGfPniU4OBgHB+OvV6VSERERQXp6+kWThBfj6OhIdHQ08fHxUhtDCGvY/gqUnjNu97gORtd7oatSwZRVcCYBSrPg5M+QuhF6t5/aS0IIITqOGkMNSblJpmXEJ4tPWhznoHJgYOBA4kLjGBM2hkivyA7zRlcmbzTUq1cvevXqBUBUVJSp2WZ0dDTff99445otW7awe/du0yzDiooKYmNjmTRpEo888giPP/44M2fOZMSIERQUFDQ4vmfPnmYJuVdffZVvvvkGgPT0dNLT04mOjm5wrvp27tzJzJkzcXZ2Jjg4mGuuueaisf3RqVOnzMpCHTx4kJEjR176hybarbxVr6I7fhwA59696XJ/LDXnyyg7lEnZoQwqTuSC3kBVSgqlP/2E57XXWjliYSuanSS86aabyMvL45lnniE7O5uYmBg2bdpkqoeRnp5udvP5y1/+gkql4i9/+QuZmZn4+/szbdo0U229lpRXqiO7pKrFz9sclZWVnD59mn79+pn2/XHWH8Ann3zSpPNVVVVx5MgRBg0aREBAALfeeivLly/nwIEDZufMyMhoUJOkpQUFBZGRIcsYhWhzZXmw+03jtsYZJr3ccJagizdM/ht8cpvx8S9/hV6TZDahEEIIu5BXkceOzB3EZ8aTkJVAWU2ZxXF+Ln7EhcYRFxbH8ODheDh5tHGktsOWJ29YQ/0Zj2q12vRYrVaj1+txcHAwK3dV15DFYDCwaNEii6WVkpKS+O6771iyZAlz5861OFnC1fXCjNWtW7eyc+dOfv31V7RaLYMHD0an09GvX78G5/pjMtdSgvtisdWXnJxMdHS06fGBAwe45557LnqMaL/Kd+2i4D//AUDl5ETI315GnfkFzkFeOAd54Tu+D6UHM8j4v58ByH/9DTzGjUMlNTUFl9m4ZPHixY1+QrVt2zbzCzg4sHz58japZ+fv0bpT4Zty/gMHDtC3b1/TLL7U1FQ8PDzw9fU1G9fUmYTJycmEh4fj7e2Nt7c3Op2OjRs3olKpiIyMNB3j6upKVZUxQRoeHs65c+eora3FwcEBRVFIT08nIiLisp53naqqKlxcXK7oHEKIy7DnX6D/fZb00EXgE2l5XO+pENQfspPh3G9wbJMxUSiEEELYGL1Bz8H8g8ZOxBnxHCk4YnGcChX9/fubZgv28umFWiVvZMG2J2/YooCAALKysigtLUWlUrF582ZiY2MZN24cs2fPZvHixfj6+pKbm4ter0dRFHx8fJg/fz5arZbNmzdzyy23NFgqXF9JSQm+vr5otVqSkpL47bffAMjKympwrvpGjx7NAw88wKOPPkpBQQFbt27ljjvuaDS24OBgs+OTk5NN7wX37t3Lr7/+Srdu3Vr4Jyjsgb6oiKylF7qeBzz2KNqePeEPvZvc+4WiHdCfqt+S0R07RumPP+I5cWIbRytsUat3N25LTVkK3Nr27duHTqfDYDCg1+t54YUXzLoE12nqTML9+/ebNSiZOXMmTz31lNk+gP79+5Oamkp4eDgBAQEMGjSI//73vyxYsIAvvviCsLAw01LjefPmMXPmTGbOnNms53bkyBGeeeaZZh0jhLhC1eWw923jttoBht/X+FiVCq5aBh/fYny8+01JEgohhLAZhVWF7MzaSXxGPDuzdlKsK7Y4ztvZm1Gho4gLjWNkyEg6aTu1caT2w1Ynb9giJycnHn/8cQYOHEhERIRp5l3fvn156qmnGDduHAaDAWdnZ9577z0yMjJ47LHH0Gg0uLi48M477+Dr68ugQYOIjo5m9uzZzJs3z+waEydO5M0336RPnz707dvXtPLr4MGDDc5V3+DBg5k0aRLR0dGEhoYyfPjwi8ZmKUmo1WoZMGAAo0aNIjg4mPXr13Pbbbe11o9T2CBFUTj37Apqc3MBcBs5kk6N/BtQqVT4P/gQZ3+vUZr3+ht4XHstqnYwq1hcGZViBwUoSkpK8PLyori42NTpuKqqitOnT9O1a1e0Wq2VI7xg3rx5lJWVceLECVxdXbnmmmt477332LhxIwMGDGj2+RYtWkRkZCTLlhk/Ddi7dy9Dhw7l8ccf5+WXXzaNe/3110lPT+eVV14BjDMYFyxYwPnz5/H09OTdd9813Qj79OnD+++/b9bdC4wdkTds2EB2dja+vr54eHhw4sQJwFiU97rrriM1NbVFa73Y6u9RCJux/wP45vcX/wNugZlrLz7eYIA3YqHglPHxg/vB13qfJFv6+91Ryc9CCNHRGBQDRwuOsj1jO/GZ8RzMO4iC5bceUT5RxqYjYXH08+2HRm07b1Tl7/cF9vS+rCOJioriwIEDF/35y++pndm6ssGu4l9PkvXeTgDUXl5EfvM1jnUlySyMV65aypm5t1G5fz8AIa+8gtc06T/QXjX1XtauZhLagn379vHpp5+a1SR86aWXLvt8b7/9ttnjIUOGWCwsvHDhQkaOHMmzzz6Lm5sbvXr1IiEhocG4vLw8QkNDGyQIwdghuTFr167l8ccf7zDFoIWwGUnrL2wPuevS49VqGDQffvp9lkDie3Dd860SmhBCCPFHpdWlJGQlEJ8Zz47MHeRX5lsc5+7ozoiQEcSFxjE6dDT+rv5tHKkQ7UN5eTkajUYSfx1cTXEF2R/vMT0OnhODY8o6SGn8GJVKhf9DD5K+wFjHNH/NGjwnTUTlIGmijkx++y2orKyMzMxM+vTp0+bXdnd359VXX23QNOWP/P39G9TAaIqQkBDuuOOOKwlRCNFc509C+i7jtl8vCG3Yzc6imLnw8wtgqIHfPoJxy0Ejf+6FEEK0PEVROFF0wlRbMCk3iVql1uLY7t7diQuLIy40jpiAGBzVjm0crRDtj5ubG4cOHbJ2GMLKSn49haGqBgCvYZF4Dup86YO2rsRVUXDtEUjF8Ryq09IofuVevJf9u5WjFbZM3jW2IHd3d4qLLddWaQvjxo1rtXM/9NBDrXZuIUQjkuvVLo25temdit39oddEOPItlOfBmR0QeVWrhCiEEKLjqaipYE/2HuIz4onPjOdc+TmL41wcXBgWNMyUGAx2D7Y4TgghxJUpSTxj2vab0vQyZyqVCv9pMZxZ9QMA+d8n4/VYDSpH+RCno5IkoRBC2KrDX/2+oYL+NzXv2L43GJOEAIf/J0lCIYQQV+RMyRlTUnBv9l5qDDUWx3X27ExcqDEpGBsUi7PGuY0jFUKIjqU6t4Sq9PMAaCN8cfL3aNbxrj0CcesdTPnRc9TklVL8zTd433hja4Qq7IAkCYUQwhblpUJ+qnE7Yjh4NnP2Rc8J4OgKNRWQ8g1M/jto5BNBIYQQTaPT60jMTiQ+M57tGdtJL023OM5R7ciQoCGMCRvD6NDRdPZswhI3IYQQLaZk/4VZhJ6xl/c32G/qAMqPGmeF5//fm3hNm4bKyalF4hP2RZKEQghhi+pmAQJETWv+8U5uxkTh4f9BZQGk7YBuV7dcfEIIIdqdc2XnTLUFf83+lcraSovjgtyCGBNq7EQ8NGgoro6ubRypEEKIOiWJaaZtj9gul3UO124BuPUJoTwli5rMTIq/24D3DTNbJkBhVyRJKIQQtuhKk4R1xx3+n3H7+I+SJBRCCGGmxlBDUm6SaRnxiaITFsdpVBoGBgxkTNgY4kLj6ObdDVVT6+QKIYRoNbqcEnQZhQBou/jh5Ot+2efym9yf8pQsAEo3b5YkYQclSUIhhLA1pTlwLsm4HTwAvCMu7zzdxoFKA4oejv0AE1e2WIhCCCHsU15FHjsydxCfGU9CVgJlNWUWx/lqfU0NR0aEjMDDqXk1roQQQrS+0nqzCC93qXEdl67+aDy16EuqKN+9G4NOh9pZ6sp2NJIkFEIIW3Nq24Xt7tde/nlcvCFihLG7ccFJyD8Bft2vNDoB/PWvf2XZsmU8/PDDrF692trhCCFEo/QGPYfOH2J7xnbiM+I5UnDE4jgVKqL9o03LiHv79EatUrdxtEIIIZqjZH+aadtz0JUlCVVqFe59QylOOIlSWUnFnj24x8VdYYTC3kiSUAghbM3Jny9sd7vmys7V8zpjkhDg+A+SJGwBe/fu5a233qJ///7WDkUIISwqqipiZ9ZO4jPj2Zm5kyJdkcVxXs5ejAoZRVxYHKNCRtFJ26ltAxVCCHHZdOeK0GUWAeAS6Y+jz+UvNa7j3i+M4oSTAJRt+0WShB2QfDwohBC2xGC4kCR0coewIVd2vh4TLmyf3Hpl5xKUlZUxd+5c3n77bTp1kjfTQgjbYFAMpJxP4a3f3uK2729j7KdjWRq/lA2nNjRIEEb5RHF3/7v5YNIH/DLnF14e8zJTI6dKglDYtbVr1xITE0N0dDROTk7ExMQQExPDmjVrrui8ZWVljB8/HkVRGh1TWFjIlClTrug6QlyOksR6XY2vcBZhHbeoYHB0BKBs27aL/tsX7ZPMJBQtZseOHTz22GOo1WpuvPFGHn30UWuHJIT9yT0M5bnG7S5x4OB0Zefz7wXugVCWA+kJoK8BjeOVx9lBPfDAA0yZMoXx48fzwgsvWDscIUQHVlpdyu5zu9mesZ0dmTvIr8y3OM7N0Y2RISOJC41jdOho/F392zhS0eFsbeEayFcvu+SQe++9l3vvvZfk5GQWLVrEr7/+2iKX/ve//82cOXMu2qinU6dOhIaGkpCQwIgRI1rkukI0Rf2lxpfb1fiPNC5OuA6OpSJhNzWZmVSfPIlzd1mJ1JFIklC0mMjISLZv346TkxNXX3019913H66urtYOSwj70pJLjQFUKug6Bg5+BtVlkHUAwode+Xk7oI8//pj9+/ezd+/eJo3X6XTodDrT45KSktYKTQjRASiKwsmik8RnGjsRH8g5QK1Sa3Fsd+/uxIXGERcWR0xADI5q+XBIdAyHDx+mb9++LXa+9evX8+2335oejxgxgv/9738EBQWxf/9+XnzxRb744gumT5/ORx99JElC0WaqMgupPlcMgEu3ABy9W+59t/vYsVQk7Aag7JdfJEnYwUiSULSYkJAQ07ZGo0GtltXsQjRbSycJwTgj8eBnxu3Tv0iS8DKcPXuWhx9+mM2bN6PVapt0zMqVK1mxYkUrRyaEaM8qairYm73X2HQkM55z5ecsjtNqtAwLHsaYsDGMDh1NiHuIxXFCtHeHDh1qsSShTqcjJyeHwMBAwJioz83NJSgoCICDBw+a6hMPGjSIZ599tkWuK0RTlO6vt9T4Crsa/5H72LHk/vVlwFiX0PfOO1v0/MK2SRbHxiUkJKBSqXjqqadM+44fP46vr6/ZuNmzZ5OQkADAddddR//+/YmJiSEuLo4DBw5c8jrHjx9n5MiR9OzZkyFDhnD48GGL47p06UKvXr1MdT4++eSTBmM2b95Mt27dTG+k4+LiOH36dJOfsxAdVq0Ozhj/P8YrHHy7tcx5u465sH16e8ucs4NJTEwkNzeXQYMG4eDggIODA7/88guvvfYaDg4O6PX6BscsW7aM4uJi09fZs2etELkQwt6kl6Tz4ZEPuXfzvcR9HMfinxfz6bFPGyQIwz3CmRs1l7Xj17Ljlh28Me4N5vSaIwlC0aEdPnyYfv36tci5zp8/b1Z/+NSpU3Tt2tX0+ODBg0RHRwPg7+/PuXOWk/hCtDRFUShJTDM+UIFHC9UjrOOc9jGO/h4AVCTuQ79hRcuXERA267JmEq5Zs4ZXXnmF7OxsBgwYwOuvv87QoZZnplx11VX88ssvDfZPnjyZDRs2XM7lO5TExESGDh3KF198wYsvvmjaN2jQINOYPXv2UFBQYJre/umnn+Lt7Q3A//73PxYsWMBvv/120evcc8893H333SxYsIDPP/+cBQsWNLqk7pNPPiEmJsbi9zIyMli5ciXffPONad+jjz7K8uXLef/995v6tIXomDL3g/735aldxxiXCreETl3AKwKK0+HsHqipAsemzYYTRuPGjePgwYNm+xYuXEjv3r154okn0Gg0DY5xdnbG2dm5rUIUQtipan01+3L2EZ9hXEZ8puSMxXGOakeGBA0xLSPu7NmybwqFaA/qzyQ8efIk999/P2PGjCE9PZ2BAweyYcMGvvjiC3Q6HY8//jiOjo706NGDyZMn8+CDD3L11VeTkZHBP//5T7RaLVVVVaZzJycnm5KCAAcOHOCee+4BoKqqChcXl7Z9sqLD0qWmUp1jLGPj2j0QR6+WL/Hl3i+Mwq1HwKBQfiQLzxaqeShsX7OThJ988glLlixh7dq1DBs2jNWrVzNhwgRSU1MJCAhoMP7LL7+kurra9Pj8+fMMGDCA2bNnX1nkNszT05OkpCQiIyP5+OOP2bJlC2+//fZlnWv//v3Mnj2bDz74gEOHDtGvXz8SExOJjY01jXnrrbe49dZbTY/rEoQAxcXFFy20C5Cbm8u+ffv48ccfAbjxxhtZvHgxJ06coHsz6g/odDoWLFjAm2++ibv7hfbrU6ZMYdGiRRQXF+Pl5dXk8wnR4aTvurAdMbzlzqtSQdc4SPoQaqsgY6/xsWgyDw+PBjMT3Nzc8PX1bbEZC0KIjuNc2TlTbcFfz/1KZW2lxXFBbkHGpGBoHMOCh+HqKLWehWhMZWUlhYWFhIWFAcak3k033cQdd9zB7Nmzuffeezl58iTl5eW8+eabPPTQQ0RFRXHzzTcTFhbG7bffzi233MKdvy+t9PHxobKyktraWhwcHEhOTjYlDffu3cuvv/5Kt27GVR8nTpwgKirKOk9cdDglGzeZtj1aeKlxHffoUGOSECg7mCFJwg6k2cuNV61axaJFi1i4cCF9+vRh7dq1uLq6sm7dOovjfXx8CAoKMn1t3rwZV1fXdp0kDA8PJyMjA4Dhw4eza9cus+/fdNNNpuW6f/z643K0ulmDN954I1988YVpX/0k4bZt2xg2bJjZcfPmzSM8PJynn36aDz744KLxnj17luDgYBwcjDljlUpFREQE6enpFsfPmzeP6Oho7rzzTvLy8kz7169fT0pKCvfccw9XXXUVmZmZADg6OhIdHU18fPxF4xCiw0vffWE7YmTLnluWHAshhNXUGGrYm72XVYmrmPn1TK774jqe3/08285uM0sQalQaBgcO5k+xf+LL6V/y440/8syIZ7g64mpJEAqL1qxZQ5cuXdBqtQwbNow9e/Y0Ovaqq65CpVI1+JoyZUobRtx6jhw5Qu/evU2Pk5OTufbaa8nKyqJPnz4AFBUV0alTJ1NSr7CwkICAAJKTkxk9ejQ6nc6s9vDYsWNNnZKTk5MpKSlhwIABvPvuuwQHB7N+/XoAfvnlFyZNmtSGz1Z0ZCWbNho3VCo8B7ZOktC1eyAqZ2N+oOxwFopBaZXrCNvTrJmE1dXVJCYmsmzZhTb0arWa8ePHm+rhXco777zDzTffjJubW/MibYq3xkJZbsuft457ANzTcOn0H4WHh5uSfcnJyYSGhpp931IdP0uqqqo4cuQIgwYNIiAggFtvvZXly5dz4MABsyRhRkaGqaBunbqlvf/5z3944okn+P7775t0zUvZvn07ERER1NTU8Je//IX58+ebzr1w4UIWLlxo8bigoCBT4lQIYYFBD+nGF6G4+bdcPcI6XUZf2E5v2t9rcXHbtm2zdghCCBuWX5nPjswdbM/YTkJWAmU1ZRbH+Wp9GR06mjFhYxgeMhxPJ882jlTYK5td4XX1skuPaQWDBg1i586dpscZGRmEh4ezceNGU4ORusaK06ZN4/7776e2tpa//OUvPP/884SHh3PgwAFTQhHg/vvv57333mPUqFGkpKRw4MABiw3Mvv32Wz7//PNWfoZCQE1mJjVnjJN5XLsH4ODZOsvc1Y4a3HoHU/bbWfRlVVSdyUcW1HcMzUoS5ufno9frGySkAgMDOXr06CWP37NnD4cOHeKdd9656DidTodOpzM9LikpaVqAZblQmtW0sa0oLCyMjIwMioqKeOKJJ3jrrbfMvn/TTTeRmppq8dhvv/2W8PBwwJhgDA8Px9vbG29vb3Q6HRs3bkSlUhEZGWk6xtXV1axeRn3z58/n3nvv5fz58w2andQJDw/n3Llzpqn0iqKQnp5OREREg7F1+xwdHXnkkUfo2bPnpX8gSJ0OIS4pNwV0xcbtiOEtV4+wjlcYeIZCSebvtQ9rQSMN7oUQoqXoDXoOnT9kqi2Ycj7F4jgVKqL9o021BaN8olCrpJegaL76K7wA1q5dy4YNG1i3bh1Lly5tMN7Hx8fs8ccff9yuV3jVlXuqP8Ov7n3ZzJkzmTlzZoOxAwcOZODAgab9w4cPJyUlhfLycjQajcUEYWFhIQ8++KBZkxMhWktFYqJp27VnUKtey71fGGW/GSc/lR3KlCRhB9Gm7xDfeecdoqOjG21yUmflypWsWLGi+Rdwb/iJWYtq4vnDw8NJSUlhxowZ/PnPf2bMmDFm32/qTML9+/ebNSiZOXMmTz31lNk+gP79+5Oamkp4eDhFRUVUVFQQEmLsbPfVV1/h6+trelEwb968BjfFgIAABg0axH//+18WLFjAF198QVhYWIN6hOXl5dTU1JhqHn700UdmN9GLOXLkCM8880yTxgrRIbXmUuM64UPh8P+gphxyD0PwgNa5jhBCdBBFVUXsytrF9szt7MzcSZGuyOI4TydPRoWOYkzYGEaFjKKTVpIJ4srY/AqvduSOO+4AjE1RLOnUqRMzZsxow4hER1axd59p27V76+Y/3PtdWBFZdjAD/1a9mrAVzUoS+vn5odFoyMnJMdufk5NDUNDFs9jl5eV8/PHHPPfcc5e8zrJly1iyZInpcUlJiWl23UU1YSlwWwgPD2flypW8//77zJkz57LP88cuxjfeeCMvv/wyjz/+uNm4WbNm8cMPPzB+/HiKi4uZPXs2lZWVqNVq/P39+e6770zNS/bt28dDDz3U4FpvvfUWCxYs4KWXXsLT05N3333X9L277rqL6dOn069fP2688Ub0ej2KohAZGdmkjsVpaWno9XoGDJCEhBCNOlOvdmnnEa1zjbDfk4Rg7HIsSUIhhGgWRVE4WnDU2HQkI57k/GQMisHi2CifKNMy4mi/aDTqhl3QhbhcNr/CSwjRKkwzCdUqXCJbN23n6O2Kc7gPurMFVJ0toCY3F0cLpQxE+9KsJKGTkxOxsbFs2bLF9GmJwWBgy5YtLF68+KLHfvbZZ+h0Om677bZLXsfZ2RlnZ+fmhGZT7rjjDtMnTlfijx2RhwwZgqI0LBi6cOFCRo4cybPPPkvnzp0bLVicl5dHaGgogwcPbvC9Xr16Nfqp47///W/T9oEDB5rzFADj0ofHH3/8kl2WheiwFOXCTEIndwiMbp3rhNdrcHR2Dwxd1DrXEUKIdqSsuoyEcwnEZ8SzI3MHeZV5Fse5OboxMmQkcaFxjAodRYCrvJEStqvVV3gJIVpc7fnzVJ86BYBLZ1/UTq2/MNS9Xyi6swUAlG/fjvesWa1+TWFdzf5XtWTJEubPn8/gwYMZOnQoq1evpry83FQLY968eYSGhrJy5Uqz49555x1mzJjRaF08cfnc3d159dVXOX36NP369Wt0nL+/P5s3b27DyIxCQkJaJGkqRLtVknWhnmpobOvVCgyKBgct1FbB2V9b5xpCCGHnFEXhVPEpU23B/Tn7qVVqLY7t5tWNuLA44kLjGBgwEEeNYxtHKzoqm1/hJYRocWb1CHsEXmRky/HoF8b5jQcBKPvlF0kSdgDNfid60003kZeXxzPPPEN2djYxMTFs2rTJNNU9PT3d1DWqTmpqKjt27ODHH39smahFA+PGjbN2CI2ytLxZCFFP5oUbPmENZ/q2GAcnCBlo7G5cdAZKc8CjbV5gCCGELauoqWBv9l7TMuKscsuN8LQaLcOChxEXGsfosNGEuodaHCdEa5MVXkJ0PBX7LtQjdOneNq/htV180bg7oy/TUbZzF4bqatROTm1ybWEdlzVdZfHixY3efLZt29ZgX69evSwukxVCCAFk7b+wHRrbutcKH2pMEgJk7IGoaa17PSGEsFFnS86yPXM78Rnx7M3eS7Wh2uK4MPcwxoSNIS4sjsGBg9E6NOxuKmxXTU0Njo7tc4anrPASomOp3Pf7xAKVCtdWrkdYR6VW4943lOJfT6FUVFB18CCusa38fkVYVZt2NxZCCGFB/ZmEIYMaH9cSzOoS/ipJQiFEh1Gtr2Zfzj5TbcG0kjSL4xzVjgwOHGxaRtzZs7PUVbZDiqKQmprKnj17GDlyJN27d7d2SC1OVngJ0XHoy8qo+r0pkXPPnmjc2m6Gr0v3QIp/NdZCrExKkiRhOydJQiGEsCaDAbKSjNseIeAZ3LrXCxtyYTuz+Y2IhBDCnmSXZ7M9YzvxmfH8eu5XKmsrLY4LdA00zhYMjWNY8DBcHV3bOFLRknJzc9mxYwf5+fl0796d4OBWvrdakazwEqJjqDxwwPi+AXC10Ii0NdWftViZlNSm1xZtT5KEQghhTedPgK7EuB3ayrMIAdwDwDMUSjLh3G/GFxt/mGUghBD2qsZQw2+5vxlrC2bGc7zwuMVxGpWGmIAY4kLjiAuLo4d3D5kt2I5UVlaiUqm4/vrrTbPqhBDCnlXsvVCP0HVwLJDUZtd2CvJC7eKIobKGigNJKIoi98x2TJKEQghhTfWXGrdFkhCMzUtKMqG6FApOgl+PtrmuEEK0gvzKfHZk7iA+I56ErARKa0otjvPR+piSgiNCRuDp5NnGkYrWUltbS3JyMgUFBYwfP57OnTsTEREhb2I7sAULFjBr1iymTp16xefKysriz3/+Mx9++OEVX6cp41sydtF+1O9s7BIbC4eT2uzaKrUKl67+lKdkoc/PpyYzE6ewsDa7vmhbdp8kNPw+5VbYJ1nuIDq8tmxaUic4Bo5+9/v1D0iSUAhhV/QGPYfPHzZ1Ij58/rDFcSpURPtFMzpsNGNCxxDlG4VaJTOn25tTp06xe/duKioqiI6OxmAwoFarJUEoWkxISIjFBKEQbcXw4wtU/WYsE+To74Hj4XfaPIa6JCFA5YEkSRK2Y3abJHRyckKtVpOVlYW/vz9OTk7yYsDOKIpCXl4eKpWq3XadE+KS6s8kDI5pm2uGDLywnZUE/ee0zXWFEOIyFeuK2Zm5k/jMeHZm7qRQV2hxnKeTJ6NCRxEXGseo0FH4aH3aOFLRljZu3MjZs2fp3LkzU6ZMwcvLy9ohCSt69tln+eijjwgNDcXZ+UJThw8++IDXXnuN6upqxo0bx6pVq0hLS+P6668nJiaGPXv20L9/fz7++GPKy8uZNWsWmZmZAPz973+nV69ezJo1i3379l30OlOnTuXcuXPodDqWLVvG3LlzLzr+cmOv7/z58wwbNowTJ05QW1vL4MGDOXDggLwvbmeq0vJRan+vR9jDOiUUXOrXJTxwAK9pMtO1vbLbJKFaraZr166cO3eOrKwsa4cjLpNKpSIsLAyNRmPtUIRoe7XVkH3QuO3bA1y82+a6ITEXtrOkeYkQwvYoikJqYSrxGcbagr/l/YZBsbx6pLdPb9My4mi/aBzUdvvyVjRBVVUVGo0GR0dHunbtSnR0NGEyo8VmnL5xFrX5+S1+Xgc/P7p+8Xmj39+7dy8bNmwwLTuPiorigQce4MiRI3z99dckJCTg4ODAvHnz2LBhA3379uXIkSN89NFHREVFcfXVV7Njxw5yc3Px9fVl06ZNKIpCaWkpBQUFl7wOwPvvv4+Pjw/l5eUMGTKEWbNmkZyc3Oj4y419ypQppmN9fX1N8Tk4OBAQEEBGRgbh4eEt+eMXVlZxPMe07do9wCoxuHT1A5UKFEWal7Rzdv0qysnJiYiICGpra9Hr9dYOR1wGR0dHSRCKjivnEOirjdttVY8QwM0PvMKh+CxkJ4NBD2r5/1AIYV1l1WXsPrfbtIw4rzLP4jg3RzdGBI8gLiyOUSGjCHSTxhQdgcFg4PDhwyQmJtKvXz8GDx5M7969rR2W+IPa/Hxqc3IuPbCF7dy5k5kzZ+Ls7ExwcDDXXHMNAFu2bGH37t0M/r0bbEVFBbGxsfTt25devXrRp08fAAYOHEhaWhrDhg3jkUce4fHHH2fmzJmMGDHCLEnY2HUAXn31Vb755hsA0tPTSU9Pv+j4y439jzw8PCguLsbDw4P09HS8vb1b4CcqbEnFifpJQuvc8zQuTjh3747u+HGqUlMxVFSgdnW1Siyiddl1khAwLVWV5apCCLtj1rSkjeoR1gmJMSYJq8uMHZb9e7Xt9YUQHZ6iKJwuPs32jO3EZ8azP2c/tUqtxbGRXpHEhcYxJmwMAwMG4qiR130dydmzZ0lISKC4uJioqCj69etn7ZBEIxz8/Kx2XktLbA0GA4sWLWL58uVm+9PS0syW9Wo0GvR6PT179iQpKYnvvvuOJUuWMHfu3AYNRCxdZ+vWrezcuZNff/0VrVbL4MGD0el0jY6/ktj/KCQkhHPnzvHBBx8wfvx4PDw8Lnk9YT+U2loqTxk/NHPwcsHRz91qsbjExKA7fhz0eioPHsJt2FCrxSJaj90nCYUQwm7VX+rb5knCgXDk2wtxSJJQCNEGKmsr2Zu9l+0Z29mRuYPMskyL47QaLUODhxIXGsfo0NGEechy0o4qPz+fjRs3EhwczLhx4/D19bV2SOIiLrYkuDWNHj2aBx54gEcffZSCggK2bt3KHXfcwbhx45g9ezaLFy/G19eX3Nzci65Ay8rKwsfHh/nz56PVatm8ebNZkrCx65SUlODr64tWqyUpKYnffvvtouOvJPbg4GCz44ODg/n000/56aef2LRpUwv+VIUtqDpyFIPO+AGaa49Aq9abdBk4kKLPPgOgMilJkoTtlCQJhRDCWs4ZX0Ci0kBgG8+K+GPzkgE3t+31hRAdxtnSs6bZgnvP7aXaUG1xXJh7GGPCxhAXFsfgwMFoHbRtHKmwFdXV1Rw/fpy+ffvi5+fH9OnTCQoKsnZYwoYNHjyYSZMmER0dTWhoKMOHDwegb9++PPXUU4wbNw6DwYCzszPvvfcebm5uFs9z8OBBHnvsMTQaDS4uLrzzjnkX2cauM3HiRN5880369OlD3759TcuCGxt/JbFbShJ+8cUXbNmyBVdZ/tnuVPzeMAfAxUr1CE3Xj4kxbUtdwvZLpSiKYu0gLqWkpAQvLy+Ki4vx9PS0djhCCHHlanXwUggYaiGgD9yf0LbXryiAv3U1bocPhzt/aJXLyN/vC+RnITqKan01iTmJptqCaSVpFsc5qB0YHDjY1HSki2cX6cjZwSmKQmpqKnv37qWmpoYbbrjBJuqryd/vCyz9LKqqqjh9+jRdu3ZFq5Xkvq2S35N9Ort4MWU/bQGg61+moQ3tZLVYlKuWcnz4CPTFxWg6daLHrp1y37YjTb2XyUxCIYSwhtwjxgQhQFD/tr++qw94d4aiM9K8RAhxxbLLs01Jwd3ndlNZW2lxXKBrIHFhccSFxjEseBhujpZn84iOJycnh507d5Kfn0/37t0ZNmxYo7O9hBCiI1AMBir3GWuYq12dcA72tmo8KpUKl5gYyn75BX1hITVnzuDUpYtVYxItT5KEQghhDdkHL2wHRVsnhpCBxiRhTQXkH4OAKOvEIYSwO7WGWn7L+434jHjiM+M5VnjM4jiNSsMA/wGmxGDPTj1l1oGwKCcnB5VKxfXXX09goHSsFkKI6lOn0BcVAeDaPQCV2vr3T5eBxiQhQEVSkiQJ2yFJEgohhDVkJ1/YDrbCTEIwdjhO+cq4nZUkSUIhxEXlV+azM3Mn8Znx7MraRWl1qcVxPlofRoeOJi4sjhHBI/By9mrjSIU9qK2tJTk5mdraWoYOHUq/fv2Ijo6WJLIQQvyufj1C1+628eGJWV3CA0l4z5hhtVhE65AkoRBCWEP9mYRt3bSkTv0ZjDmHrBODEMJmGRQDh/MPsz1zO/EZ8Rw+f9jiOBUq+vn1M9UW7OPbB7VK3cbRCnty6tQpdu/eTUVFBf37Gz8oU6vl34y9s4NS9x2a/H7sT0XiftO2aw8bSBJuXYlLVQ2oVKAoVO74EXjW2lGJFiZJQiGEaGsGw4UkoVeEsT6gNQTWSxLWT1oKITqsYl0xu7J2EZ8Rz86snRRUFVgc5+nkyaiQUcSFxTEyZCS+Lr5tHKmwR3q9no0bN5KVlUXnzp2ZMmUKXl4y09TeOTgY31KWlpbKTFAbpSgKeXl5qFQqHB0drR2OaKKqg8bX5yoHNdow6zUsqU+tdcQ51BtdRiG6rCL0ZWVo3N2tHZZoQZIkFEKItlZ4GqrLjNvWWmoM4BEIbgFQnmtMEiqK8ZNBIUSHoSgKxwqPsT1jO/GZ8fyW9xsGxWBxbG+f3qbZgtF+0Tio5WWkaJqqqiqcnZ3RaDQEBgYSExNDWFiYtcMSLcTBwQFPT0/Onz/P+fPnrR2OaIRKpSIsLAyNRhrV2QN9aSnVaWkAOIf5oHKwnd+bS6Q/uoxCUBSqkpNxGznS2iGJFnRZr+7WrFnDK6+8QnZ2NgMGDOD1119n6NChjY4vKiriqaee4ssvv6SgoIDOnTuzevVqJk+efNmBCyGE3apfj9BaTUtM1+8HJ3+GygIoPQeeIdaNRwjR6sprytmdtdvUjTi3MtfiOFcHV0aEjCAuNI7RoaMJdLOBpU7CrhgMBlJSUti3bx8jR46kZ8+eDBkyxNphiVYQEhKCn5+fLGm1YY6OjpIgtCNVh1NM2y4RtjVb3zXSn6LtxoZlFUlJkiRsZ5qdJPzkk09YsmQJa9euZdiwYaxevZoJEyaQmppKQEBAg/HV1dVce+21BAQE8PnnnxMaGsqZM2fw9vZuifiFEML+nKufJLTiTEIwJilP/mzczj4kSUIh2iFFUThdfNqUFEzMTaTWUGtxbKRXpGm24KCAQThqZFmauDwZGRns2rWL4uJievfuTUREhLVDEq1IpVLh7Oxs7TCEaDeqDl+oF67tbFtJQpfIC3mfyqQk6wUiWkWzk4SrVq1i0aJFLFy4EIC1a9eyYcMG1q1bx9KlSxuMX7duHQUFBezatctU/6CLtMkWQnRk9ev/WXsmoVldwmToeZ31YhFCtJjK2kr2Zu8lPiOe+Mx4MssyLY5z1jgzNGgocWHG2YLhHuFtHKloj9LT09m0aRPBwcGMGzcOX1/beoMrhBC2rvKQ7SYJHf3c0bhr0ZdVUZn0G4rBgEqaT7UbzUoSVldXk5iYyLJly0z71Go148ePJyEhweIx33zzDSNGjOCBBx7g66+/xt/fn1tvvZUnnnii0enOOp0OnU5nelxSUtKcMIUQwrbVLTd26QReVq7JJB2OhWg3zpaeNSUF92bvRafXWRwX6h7KmLAxxIXGMSRoCFoHbRtHKtqj6upqMjIyiIyMJCwsjIkTJ8rswTYgZaCEaJ+qDh0GQOXignOQbTV4UqlUuET6UZacgaGkhOrTp3Hu1s3aYYkW0qwkYX5+Pnq9nsBA85o0gYGBHD161OIxp06d4ueff2bu3Ll8//33nDhxgvvvv5+amhqWL19u8ZiVK1eyYsWK5oQmhBD2oTQHynKM20HR1m8U4tsdNM6g10mHYyHsTLW+mv25+41NRzLiSStJszjOQe1AbGCsaRlxV8+u0oFUtBhFUTh27Bh79uyhtraWkJAQtFqtJAjbgJSBEqJ90hcVUXP2LADaqChUGtubpecSGUBZcgZgXHIsScL2o9Xb0hkMBgICAvjXv/6FRqMhNjaWzMxMXnnllUaThMuWLWPJkiWmxyUlJYSHy/IXIUQ7YLbU2Mr1CAE0DhAQBeeS4PxJqC4HJzdrRyWEaER2eTY7MncQnxHP7nO7qaitsDguwDXAlBQcHjwcN0f5/1q0vJycHHbu3El+fj7du3dn2LBhaLUyM7WtSBkoIdqnyt9nEQJo+/W1YiSNc430N21XHDiA9403WjEa0ZKalST08/NDo9GQk5Njtj8nJ4egoCCLxwQHBzfopBQVFUV2djbV1dU4OTk1OMbZ2VkK3woh2qf6S3qtXY+wTlC0MUmIAjkpEC6dJ4WwFbWGWn7L+820jPhY4TGL49QqNTH+McSFxREXGkfPTj1ltqBodceOGf89Tp8+vdH3AqJ1tFUZKCFE26uqV4/QpV8/4HDjg61E29kX1CowKFT99pu1wxEtqFlJQicnJ2JjY9myZQszZswAjDMFt2zZwuLFiy0eM2rUKNavX4/BYED9ezHLY8eOERwcbDFBKIQQ7VpuyoXtgD7Wi6M+s7qEByVJKISVna88z86sncRnxLMzayel1aUWx/lofRgdOpq40DhGhIzAy9m2ahaJ9qe2tpbk5GRcXV3p3bs3I0aMQKPRSELaCtqqDJTUihei7Zl1Nu7XD87YXpJQ7eSAc4g3uoxCdCdPYaioQO3qau2wRAto9nLjJUuWMH/+fAYPHszQoUNZvXo15eXlpmnu8+bNIzQ0lJUrVwJw33338cYbb/Dwww/z4IMPcvz4cV566SUeeuihln0mQghhD3J+TxKqNODfy7qx1KmfJJS6hEK0OYNi4HD+YeIz44nPiOfw+cMoKA3GqVDRz6+faRlxH98+qFW2V6dItE+nTp1i9+7dVFRUEBsbC4CDQ6tXLhIt6HLKQEmteCHaXt1yY7WbG05dusAZ68bTGG2EL7qMQjAYqDqaiuuggdYOSbSAZt/Zb7rpJvLy8njmmWfIzs4mJiaGTZs2mT7FSk9PN80YBAgPD+eHH37gT3/6E/379yc0NJSHH36YJ554ouWehRBC2AN9LeSnGrd9u4ODjZRVCKxX6yRbOhwL0RaKdcUkZCUQnxnPjswdFFQVWBzn4eTBqJBRxIXFMSpkFL4uvm0cqejodDodmzdvJisri4iICKZMmYKXl8xatba2KgMlteKFaFu1+fnUnjsHgLZvX1Rq2/0w0CXCl+JdJwCoSkmRJGE7cVkf/y1evLjR5cXbtm1rsG/EiBHs3r37ci4lhBDtR8FJ0FcbtwNtZKkxgNYLvDtD0RnIOQwGA9jwCxIh7JGiKBwrPGaaLZiUl4RBMVgc26tTL1Ntwf7+/XFQy2wt0fZqampwdHTEyckJNzc3Jk2aJMkhG9JWZaCkVrwQbavqcP2mJf2sGMmlaSN8TNv14xb2TV51CiFEW8mpd/MMsLFOZYH9jEnCmnIoSgOfSGtHJITdK68pZ/e53aamI7kVuRbHuTi4MCJ4BHFhcYwOHU2QmzSAENZjMBhISUkhMTGRCRMmEBQUxNVXX23tsIQFUgZKiHZm60oqN1xoAuKiOg5bV1oxoItzDu0EGg3o9ZIkbEckSSiEEG2lftMSW5pJCBAQBakbjNu5RyRJKMRlUBSF0yWnTUnBxJxEag21Fsd29epqqi04KGAQThpp5iasLyMjg127dlFUVERUVBTe3t7WDklchJSBEqL9qTpz3rSt7exnxUguTe3kgHP37uhSU9GdPImhqgq1VmvtsMQVkiShEEK0lZz6nY2jrBeHJfWTljkp0HuK9WIRwo5U1VaxJ3uPKTGYWZZpcZyzxpkhQUNMicFwD1m2KWzL0aNH2b59O8HBwYwbNw5fX6l/aQ+kDJQQ7YeiKFT+niRUuzjh6Odu5YguTdunD7rUVNDr0aWm4jJggLVDEldIkoRCCNFWcn+fhu/oBt5drBpKA/WXP+fKcgEhLiajNMNUW3BP9h50ep3FcaHuoaak4JCgIbg4uLRxpEJcXE1NDfn5+QQHBxMZGYmTkxORkTKTXAghrKG2uBJ9SSUALp19UalUVo7o0rR9+1L8v/8BUHn4sCQJ2wFJEgohRFuoLofCNON2QG/bawzi2w00TsbGKvVnPAohqNHXkJibaJoteLr4tMVxDmoHYgNjTYnBrp5d7eIFvuh4FEXh+PHj7NmzB4BbbrlFEoRCCGFlVWfyTdvazvYxm1vb98JqJKlL2D5IklAIIdpC7tEL2wE2Vo8QQOMIfr0g5yCcPwG1OnCQboai48opz2FH5g7iM+NJyEqgorbC4rgAlwBTJ+JhwcNwd7L9pUGiY8vJyWHXrl3k5eXRvXt3hg4dikajsXZYQgjR4VWa1SO0kyRh798nPxgMVKUcsXY4ogVIklAIIdpC/SW8gTbW2bhOQJQxSajoIf8YBEVbOyIh2kytoZbkvGTTMuLUwlSL49QqNTH+MabEYM9OPWW2oLAre/fuRVEUpk+fTlCQdNIWQghbUb9piYudJAnVLi44d4tEd/wEuuPHMeh0qJ1looE9kyShEEK0BbOmJTY4kxCMzUsO/r6dkyJJQtHuFVQVsDNzJ/EZ8ezM2klJdYnFcZ2cOzE6dDRxYXGMDBmJl7NXG0cqxOWrra3l4MGDBAYGEhISwvjx43F2dpbkthBC2BBFUahKNyYJNe5aHDq5WTmiJtq6Eq2PAR1AbS269U/i0sUPrl5m7cjEZZIkoRBCtIX6MwltNUkozUsatXLlSr788kuOHj2Ki4sLI0eO5OWXX6ZXr17WDk00g0ExkHI+xVRb8FD+IRQUi2P7+fYzzRbs69cXtcrG6ogK0QSnT59m9+7dlJeXM3z4cEJCQtBqtdYOSwghxB/UZmWhLzM2QtPaSdOSOtoIX4p/PQVA1dkCY5JQ2C1JEgohRFuom0no5g/u/taNpTGB9ZKXuVJTpL5ffvmFBx54gCFDhlBbW8uTTz7JddddR0pKCm5udvJJbwdVrCsmISuB+Mx4dmTuoKCqwOI4D0cPRoaOJC40jlGho/BzkRe4wn6VlZWxbds2srKyiIiIYPLkyXh5yQxYIYSwVZUHD5m27WWpcR1thI9pu242pLBfkiQUQojWVpYHFb93K7PVWYQAnqHg7AW6Yulw/AebNm0ye/zee+8REBBAYmIiY8aMsVJUwhJFUThWeMxUW/C3vN/QK3qLY3t26mnqRDzAfwAOanlZJOybwWBArVbj/Hs9qEmTJhEeHm7lqIQQQlxK1eELSUJthJ0lCcN8QAUo5nUVhX2SV8NCCNHa7KFpCYBKZWxecnY3lGRAZRG4eFs7KptUXFwMgI+PzyVGirZQUVNBwrkE0zLi3Ipci+NcHFwYHjzctIw4yE2aNoj2wWAwkJKSQlJSEjNmzMDd3Z2pU6daOywhhBBNVHmoXpLQzmYSqrWOOAV6UZ1dTFVWEYYaPVKkxX5JklAIIVqbPTQtqRPYx5gkBOOS484jrBuPDTIYDDzyyCOMGjWKfv36NTpOp9Oh0+lMj0tKLDfFEM2nKAppJWmmpOC+nH3UGmotju3i2cWUFIwNjMVJ49TG0QrRujIyMkhISKCwsJCoqCgcHOTlvRBC2BNFUag6ZJxU4ODlgqO3q5Ujaj5thA/V2cWgN6A7V4SLtQMSl01eRQghRGuzh6YlderHl5siSUILHnjgAQ4dOsSOHTsuOm7lypWsWLGijaJq/6pqq9ibvde0jDijLMPiOGeNM0OChhiXEYfGEe4pSy1F+3XgwAH27t1LcHAwN9xwA35+UktTCCHsTU16OobSUsD+ZhHW0Ub4UrLnNGCsSyhJQvslSUIhhGhtppmEKgjobdVQLqn+cuhcqUv4R4sXL+a7775j+/bthIWFXXTssmXLWLJkielxSUmJ1AZrpsyyTNNswT3n9lClr7I4LsQthLiwOMaEjWFI0BBcHOSlqWi/ampqKC0txcfHh8jISLy8vIiMjLR2WEIIIS6T2VJjO6tHWMelXtxV6ZabxAn7IElCIYRoTQYD5B01bnfqAk423gk3IOrCtjQvMVEUhQcffJD//e9/bNu2ja5du17yGGdnZ1PzANE0Nfoa9ufuNyUGTxWfsjjOQeVAbGCsaRlxV6+uqFSqNo5WiLalKArHjx9nz549aLVaZs2ahZeXl3QtFkIIO1eVcuE1t70mCZ3DpcNxeyFJQiGEaE1FaVBTYdy25aYldVw6gUcIlGYZl0krirGhSQf3wAMPsH79er7++ms8PDzIzs4GwMvLCxcXmbV2JXIrck1JwYSsBCpqKyyO83fxNyUFhwcPx93JvY0jFcJ6cnJy2LVrF3l5eXTv3p2hQ4daOyQhhBAtRHfkiGlbG2GfTfE0WkecAjypzi1Bl1mIUlODytHR2mGJyyBJQiGEaE321LSkTmAfY5KwqhhKssAr1NoRWd2bb74JwFVXXWW2/91332XBggVtH5AdqzXUcjD/oCkxeLTgqMVxapWaAf4DjLUFw+Lo1amXzBYUHZLBYGDr1q04OTkxffp0goKkK7cQQrQXiqJQlWJMEmo8tTh62V/TkjraCB+qc0tQag3oTpxAGxV16YOEzbmsJOGaNWt45ZVXyM7OZsCAAbz++uuNfqL53nvvsXDhQrN9zs7OVFVZriskhBDtSv26foF2kiQM6AMnfjJu5x6RJCHGF3Di8hVUFbAzcyfxGfHszNpJSbXlTs+dnDsxKnQUY8LGMDJkJF7OsoxSdEx6vZ7k5GRTzcEpU6bg7u4uiXIhhGhnas+dQ19UBIA23D6XGtfRdvalZF8aYFxCLUlC+9TsJOEnn3zCkiVLWLt2LcOGDWP16tVMmDCB1NRUAgICLB7j6elJamqq6bG8wBFCdBg5dtTZuI5Z85LD0GO89WIRdsmgGDhy/gjbM7ezI2MHB/MPomA50drXt69pGXFf375o1Jo2jlYI23L69Gl2795NeXk5bm5ueHl54eHhYe2whBBCtIKq+kuNw+1zqXGd+knOqsOH4cYbrRiNuFzNThKuWrWKRYsWmWYHrl27lg0bNrBu3TqWLl1q8RiVSiVLI4QQHVPdTEKNM/h0s24sTVU/mSnNS0QTlVSXsCtrF/EZ8ezI3EFBleXOdh6OHowIGcGYsDGMCh2Fn4tfG0cqhG0qLi4mPj6erKwsIiIimDRpEt7e3tYOSwghRCuqOlyvaYm9Jwnr1VOsPHz4IiOFLWtWkrC6uprExESWLVtm2qdWqxk/fjwJCQmNHldWVkbnzp0xGAwMGjSIl156ib59Gy/gr9Pp0Ol0psclJZaXJQkhhE2rqYLzJ43b/j1BYydlYP16gkoDit44k1AICxRF4XjRcVNtwaTcJPSK3uLYHp16GGsLhsYxIGAAjmopZC1EHUVRUKlUqNVqdDodEydOJCIiwtphCSGEaAPtaSahxsUJR38PavJK0R1NRamtReVgJ+9/hEmzfmP5+fno9XoCAwPN9gcGBnL0qOXC47169WLdunX079+f4uJi/v73vzNy5EgOHz5MWFiYxWNWrlzJihUrmhOaEELYnvxjxkQbQIAddDau46gF327G+POOgb7WfhKcolVV1FSw+9xu4jPjic+IJ6cix+I4FwcXhgcPNy0jDnKT1QRC/JHBYCAlJYWjR48yY8YMPDw8uFGWZolmklrxQti3qhTjTEK1hweOfu5WjubKaSN8qMkrRdHp0J08hbZXT2uHJJqp1d/1jRgxghEjRpgejxw5kqioKN566y2ef/55i8csW7aMJUuWmB6XlJQQHh7e2qEKIUTLssemJXUC+hiThHodFJwyzoQUHY6iKJwpOUN8ZjzbM7aTmJNIjaHG4tgunl0YHTqaMWFjiA2MxUnj1MbRCmE/MjMz2bVrF4WFhfTu3RuDwWDtkIQdklrxQti32vPnqc0xfuCqjYpqF/8/ukT4Upp4BjDWJZQkof1pVpLQz88PjUZDTo75zIGcnJwm1xx0dHRk4MCBnDhxotExzs7OODs7Nyc0IYSwPWZNS+xoJiEYm5ekfGXczj0sScIOpKq2in05+0zLiM+WnrU4zkntxJDgIaZlxBGesjxSiKbYvXs3ycnJBAUFccMNN+DnJ3U5xeWRWvFC2LeqlHpLjaOioJEmb/ZEG/GH5iU3zLRiNOJyNCtJ6OTkRGxsLFu2bGHGjBmAcanEli1bWLx4cZPOodfrOXjwIJMnT252sEIIYVfqzyQMiLJeHJfjj81L+soNvj3LLMs0JQX3nNtDld7y0rMQtxDiwuIYEzaGIUFDcHFwaeNIhbBPNTU16HQ63N3diYiIICAggMjISGuHJexYW9WKF0K0HrN6hH37APZfC7x+XcX6z0/Yj2YvN16yZAnz589n8ODBDB06lNWrV1NeXm76BGvevHmEhoaycuVKAJ577jmGDx9O9+7dKSoq4pVXXuHMmTPcddddLftMhBDC1tR1BtZ6gWeIdWNprvpJzVzpcNze1OhrOJB7wFRb8GTxSYvjHFQODAocZJwtGBZHpFdku1gKI0RbURSF48ePs2fPHvz8/Jg4cSIhIXZ2PxA2qa1qxUtDSSFaT9WRep2No6Igw/6ThBo3Zxx93KgpKKfq6FEUgwGVWm3tsEQzNDtJeNNNN5GXl8czzzxDdnY2MTExbNq0yXSDSk9PR13vH0FhYSGLFi0iOzubTp06ERsby65du+jTx87qcwkhRHNUFkJplnE7oC/YW2KlU1dwdIWaCqgqtnY0ogXkVuSyI3MH8RnxJJxLoLym3OI4Pxc/4kKNswWHBw/H3cn+i2gLYQ25ubns3LmTvLw8unXrxrBhw6wdkujgLqdWvDSUFKL11DUtUWm1OHXtChlWDqiFaCN8qSkoR6mooDrtDM6RXa0dkmiGy2pcsnjx4kaXF2/bts3s8auvvsqrr756OZcRQgj7lVtver29NS0BUKvhzs3gHQFaT2tHIy6D3qDnYP5BtmdsZ0fmDo4UWF7yoVap6e/X39SJuLdPb5ktKMQVqq6uZsOGDXh5eTF9+nSpASdaXFvVipeGkkK0gq0r0VdWU3MmHQDnIHdU8a9YOaiW4xzuQ2mS8blVHUmRJKGdafXuxkII0SGZNS2xwyQhQFA/a0cgmqmgqoCdmTuJz4xnV9YuinWWZ4F6O3szOnQ0caFxjAwZibfWu20DFaId0uv1HDp0iKioKJycnJg+fTo+Pj6SdBetoq1qxUtDSSFahy6j0LStjfC5yEj7Y1aXMCUFrylTrBiNaC5JEgohRGswa1pip0lCYfMMioEjBUeMTUcy4jmYfxClkc54fXz7mJYR9/Xti0ataeNohWi/Tp8+ze7duykvL8fb25vOnTvj6+t76QOFuAJSK14I+1V1tsC0XT+p1h7Ufz46aV5idyRJKIQQrSHHjjsbC5tWUl1CQlYC8Rnx7Mjcwfmq8xbHuTu6MzJkJHFhcYwOHY2fi18bRypE+1dYWMjOnTvJysoiIiKCSZMm4e3tbe2wRAchteKFsF9V6Rdev2nD29eHSg5eLmj8/NDn51N1OAVFUWRWvR2RJKEQQrQ0RblQk9AzDFy8rRqOsH/FumI+P/Y58ZnxJOUmoVf0Fsd19+5OXFgcY0LHMCBgAI5qxzaOVIiORafTUVFRwcSJE4mIiLB2OKIDklrxQtinqozfZxKqVTiHeFs1lpamUqnQRkVRHh+PvriY2qwsHENDrR2WaCJJEgohREsryYS6WnD22LRE2By9ouef+//ZYCmxi4MLw4KHERdqbDoS7B5spQiF6BgMBgNHjhzh7NmzTJw4kaCgIGbPni0zJITooF7dfMzi/j9d27ONIxH2xFBdi+6c8b2Cc7A3asf2VwJG26cP5fHxAFQdOSJJQjsiSUIhhGhpOVKPULQsH60P0X7RJOcn09mzszEpGBZHbGAszhopKC9EW8jMzGTXrl0UFhbSu3dvamtrcXBwkAShEEKIZtFlFYHB+MFve2taUkdbr4xBVUoKHuPHWzEa0RySJBRCiJaWW6+zcWBf68Uh2pWlQ5fi6exJZ8/O1g5FiA7nl19+ITU1laCgIG644Qb8/KTGpxBCiMtj1rQkrL0mCS/UZK9KkeYl9kSShEII0dKkaYloBdH+0dYOQYgOpaamBkVRcHJyIiQkhLCwMLp162btsIQQQtg5syRhO51J6Hj8A9Qujhgqa6g68CtsNXZZ5+pl1g1MXJIkCYUQoqXl/p4kVGnAT2rSCCGEPVEUhePHj7Nnzx66du3KqFGj6NGjh7XDEkK0EakzKFqbKUmoAud2OpNQpVKhDfeh4lgOtcWV1JZU4uDpYu2wRBNIklAIIVqSvgbyUo3bfj3BQerFtbSamhqys7OpqKjA398fH5/2+eJKCNH2cnNz2bVrF7m5uURGRjJgwABrhySEsEPNTTRaGi9JyfZJqa1Fl1kIgJO/Jxqto5Ujaj3acF8qjuUAxsSoe19pXmIP1NYOQAgh2pX842CoMW5LZ+MWU1payptvvsnYsWPx9PSkS5cuREVF4e/vT+fOnVm0aBF79+61dphCCDtWWlrK119/jV6vZ9q0aYwfPx53d3drhyWEEKId0Z06hVKjB0Ab3r4/6K7//OovsRa2TWYSCiFES8qVzsYtbdWqVbz44ot069aNadOm8eSTTxISEoKLiwsFBQUcOnSI+Ph4rrvuOoYNG8brr78uSwOFEE2i1+s5duwYvXv3xsPDgylTphAcHCwdi4VoZxqb2dfWbCUOYT1VKRfeK7TXeoR16j8/SRLaD0kSCiFES8qp39m4n/XiaEf27t3L9u3b6dvXcqfooUOHcscdd7B27Vreffdd4uPjJUkohLiktLQ0EhISKC8vx8fHh8DAQEJCQqwdlhDCRkmCT7QE3ZELnX6d2/lMQqdAT1SOGpQaPVXp560djmgiSRIKIURLMksSykzClvDRRx81aZyzszP33ntvK0cjhLB3BQUFJCQkkJmZSXh4OJMmTcLb29vaYQkhhBlpoNI+VR2uN5OwnScJVWo12rBOVJ7Opya/DH1FNRprByUuSZKEQgjRkuqWGzt7gle4dWNph0pLS/Hw8LB2GEIIO5abm0tZWRkTJ04kIiLC2uEIIYToIBSDgaqjRwFw6OSKg7vWyhG1Pm24L5Wn8wGoyijAzcrxiEuTxiVCCNFSqoqh+KxxO6APSE2rFhcXF0d2dra1wxBC2BGDwcDhw4fZtWsXAL169WL27NmSIBRCCNGmatLTMZSVAaCN8LVyNG3DWZqX2B1JEgohREvJqde0RJYat4qBAwcybNgwjv7+KWydpKQkJk+ebKWohBC2KjMzky+++IKdO3dSW1uLoiioVCrUankJLIQQom1VHr5QlqijJAnNmpekS5LQHlzWK6Q1a9bQpUsXtFotw4YNY8+ePU067uOPP0alUjFjxozLuawQQti23Hr1CKWzcat49913WbBgAaNHj2bHjh0cO3aMOXPmEBsbi0YjVU6EEEaKovDTTz+xYcMGnJ2dueGGGxgzZox0LRZCCGE19esRurTzzsZ1nIO9QW289+pkJqFdaHZNwk8++YQlS5awdu1ahg0bxurVq5kwYQKpqakEBAQ0elxaWhqPPfYYcXFxVxSwEELYLLOZhNLZuLWsWLECZ2dnrr32WvR6PePGjSMhIYGhQ4daOzQhhJXV1NSg0WhQq9X4+PjQtWtXunXrZu2whBBCCKo64ExCtaMG5xBvdBmF6LKLMVRWonZxsXZY4iKaPZNw1apVLFq0iIULF9KnTx/Wrl2Lq6sr69ata/QYvV7P3LlzWbFiBZGRkVcUsBBC2Kz6nY0DoqwXRzuWk5PDww8/zAsvvECfPn1wdHRkwYIFkiAUooNTFIVjx47xySefcPj3N2GDBg2SBKEQQgiboCgKVSnGCQUO3q44eHacRJmpi7OioEtNtW4w4pKaNZOwurqaxMREli1bZtqnVqsZP348CQkJjR733HPPERAQwJ133kl8fPzlRytEO6AoCgXl1ZwpqCCvVIeu1oCiKHi6OOLn5kykvxtuztJ43O4oCuQeMW57hoGLt1XDaa+6du1Kr169+Oyzz5gyZQqbNm3ipptuIj09nT//+c/WDk8IYQW5ubns2rWL3NxcIiMj6dq1q7VDEkIIIczUpKdjKC0FzOv0dQTaCF+KE04CUHXkCC4xMdYNSFxUszIR+fn56PV6AgMDzfYHBgY2KCJfZ8eOHbzzzjskJSU1+To6nQ6dTmd6XFJS0pwwhbA5eaU6fjiczc4T+exNKyS/THfR8RE+royI9GV0Dz+u6R0gSUN7UJwBumLjdmBf68bSjq1bt46bb77Z9HjixIls3bqVqVOnkpaWxpo1a6wYnRCireXm5vLVV1/h6+vLtGnTCA4OtnZIQgghRAMdcalxHW39DscpKRcZKWxBq2YeSktLuf3223n77bfx8/Nr8nErV65kxYoVrRiZEK1Pb1DYejSX/ySksfNEPgal6cemF1SQXlDBJ/vO4uqkYWK/IBaM7EL/MO9Wi1dcofpLjaWzcaupnyCsM2jQIHbt2sWkSZOsEJEQoq3p9XrS09Pp2rUrAQEBXHvttXTp0kWakggheHXzMWuHIIRFHbGzcR1taCdQAQpUpRyxdjjiEpqVJPTz80Oj0ZCTk2O2Pycnh6CgoAbjT548SVpaGtOmTTPtMxgMxgs7OJCammqxVsyyZctYsmSJ6XFJSQnh4eHNCVUIq1EUhY2Hsvn7j6mcyitv8H0PZwf6h3vR1c+NYC8XtI7GjqwllTWcK67kWE4ZKedKqK41/r9SUa3ny/2ZfLk/kxGRvjw2oRexnTu16XMSTVC/s7E0LWlR6enpREREXHRMly5d2LVrFwCZmZmEhoa2RWhCiDaWlpbG7t27KSsrY86cOXh6esryYtGhrVmzhldeeYXs7GwGDBjA66+/3qQ6vR9//DG33HIL119/PV999VXrBypaTGOJ0D9d27ONIxHNYd7ZuGMlCdVaR5wCPKnOKUF37BhKTQ0qR0drhyUa0awkoZOTE7GxsWzZsoUZM2YAxqTfli1bWLx4cYPxvXv35uDBg2b7/vKXv1BaWso///nPRhN/zs7OODs7Nyc0IWxC4pkCnvvuCL+dLTLbH+7jwvQBIUzsG0yfEE806ovPdqiq0bM3rYDvD2bzXXIWpVW1ACScOs+Nb+5i+oAQnpjUm1DvjlPw1ubV72wcIDMJW9KQIUOYMWMGd911F0OGDLE4pri4mM8//5x//vOf3H333Tz00ENtHKUQojUVFhaya9cuMjMzCQ8PZ+LEiXh6elo7LCGs6pNPPmHJkiWsXbuWYcOGsXr1aiZMmEBqaioBAQGNHpeWlsZjjz1GXFxcG0YrRMelKIppubFDQAAOXh3vPZw23IfqnBKUmhp0J06gjZImj7aq2cuNlyxZwvz58xk8eDBDhw5l9erVlJeXs3DhQgDmzZtHaGgoK1euRKvV0q+f+Ywab29vgAb7hbBnFdW1vPJDKu/tSkOpt6x4aBcf7r0qkqt6BqC+RGKwPq2jhrge/sT18Gf5tD58uT+Tf20/Sdr5CgC++S2LH1OyeXJyFLcP7yxLrGxB3XJjtSP49bBuLO1MSkoKL730Etdeey1arZbY2FhCQkLQarUUFhaSkpLC4cOHGTRoEH/729+YPHmytUMWQrSw48ePU1ZWxsSJEy85s1iIjmLVqlUsWrTI9D5s7dq1bNiwgXXr1rF06VKLx+j1eubOncuKFSuIj4+nqKioDSMWomMya1rSt2PWLtd29qVkXxoAlYcOSZLQhjU7SXjTTTeRl5fHM888Q3Z2NjExMWzatMnUzCQ9PR21Wt3igQphqw6kF/Lwx0mkF1SY9vUO8uCJib25qpf/FSfwtI4abh0WwZzBYXy0J51Vm49RWFFDVY2BZ74+zOaUHP42qz/BHfATKZtRWw3njxu3/XuBRqbPtyRfX18mTZrE888/z/fff8+OHTs4c+YMlZWV+Pn5MXfuXCZMmCAfPgnRjhgMBo4ePYrBYKBfv34MGjSIwYMHy2tMIX5XXV1NYmIiy5YtM+1Tq9WMHz+ehISERo977rnnCAgI4M477yQ+Pr4tQhWiwzNrWtK3L9DxGrO6dL7Qo6Lq0GGYPduK0YiLuazGJYsXL7a4vBhg27ZtFz32vffeu5xLCmFzFEXhv7vP8Nx3KdTojdMHnR3UPHZdL+4Y3fWSS4qby0Gj5vYRXZgeE8orPxzlv7vTAYg/ns+U13bwxq0DGdmt6Q2CRAvKPwYG45JwWWrcOiZMmMC5c+eYNWsWs2bNsnY4QohWlJWVxa5duygoKDAl/x0cWrXXnhB2Jz8/H71eb5qoUScwMJCjR49aPGbHjh288847JCUlNfk6Op0OnU5nelxS0vGSG0JcKbOmJX37ALutF4yVOIf7XGhe8oeSdMK2yCsuIS5DVY2epV8k81VSlmnfoAhv/j57AJH+7q16bS8XR16YEc11fYJ4/PNkskuqKCiv5vZ39vDU5CgWjpIOj21OOhu3OkVpRntwIYRdqq2t5eeffyYtLY2goCBuuOEG/Pzkwy8hWkJpaSm33347b7/9drP+v1q5ciUrVqxoxchES7HU0ESamdiG+k1LtH37wuGOlyTUaB1xCvSiOruYquPHMeh0qKUPhU2SJKEQzVRUUc2i9/exN63QtO+u0V15YlJvHDVttwxqTE9/Nj0Sx8MfJ/HLsTz0BoXnvkvheG4pz1/fD4c2jKXDk87GQghx2Wpra3FwcMDBwQFnZ2euueYaunfvbu2whLBpfn5+aDQacnJyzPbn5OQQFBTUYPzJkydJS0tj2rRppn0GgwEwztRNTU2lW7duDY5btmwZS5YsMT0uKSlptPmkEKIh5eeXqPptPwAOXi44Hn7HyhFZj0tnX6qzi6GmBl1qKi79+1s7JGGBZBGEaIazBRXc+OYuU4LQ1UnD/80dxF+m9mnTBGEdb1cn1i0Ywv1XXXhR99Ges9z/4X6qavRtHk+HJZ2N28Sbb77Jli1bKCwsvPRgIYTNUxSF48eP8/HHH5OebiyhMXbsWEkQCtEETk5OxMbGsmXLFtM+g8HAli1bGDFiRIPxvXv35uDBgyQlJZm+pk+fztVXX01SUlKjiT9nZ2c8PT3NvoQQTVeTX4ahshoAbYSvlaOxLm3nC8+/8tAhK0YiLkZmEgrRRKfyyrjl7d3klBjrsvi5O/PugiFEh3lZNS6NWsXjE3vTK8iDxz77jRq9wo8pOcx7Zw//XjAYT6000Wh12b/X1dB6g2eIVUNpz9544w1WrFiBSqUiPDycQYMGmX1ZmjkhhLBNubm57Nq1i9zcXCIjI/Hx8bF2SELYnSVLljB//nwGDx7M0KFDWb16NeXl5aZux/PmzSM0NJSVK1ei1WobNPjy9vYGkMZfQrSiqvTzpm1tRMe+15k1LzkoSUJbJUlCIZrgRG4pt7z9K3mlxgRhpL8b/1k4lHAfVytHdsH1MaH4ujlzzwf7KK/WsyetgPnr9vD+HUPxkERh6ynLhbJs43Zwf5B6kK3m8OHD1NbWcuDAAfbv38/+/ft5++23OXv2LCqViqCgIDIzM60dphDiEtLS0vjxxx/x9fVl2rRpBAcHWzskIezSTTfdRF5eHs888wzZ2dnExMSwadMmUzOT9PR06QguhJWZJwk79kxC57BO4OAAtbVUyUxCmyVJQiEu4XhOKbe8vZv8MuM08ahgTz68axg+bk5Wjqyh0T38+PjuEcxb9yuFFTUcSC9iniQKW1d28oXtIKmr0VrqmvGEhIQQEhLClClTTN87f/48iYmJzerWKIRoW3q9ntzcXIKDgwkLC2Ps2LH07NlTGm0JcYUWL17M4sWLLX5v27ZtFz32vffea/mAhBBmKs9IkrCO2skB5x490B05gu7kSQwVFahdbWfSjTCSj5aEuIizBRXc9s6vpgRhv1BPPlpkmwnCOtFhXqxfNJxOrsak4IH0Iha8u5eK6lorR9ZO1S01BkkStqKLdTf29fXluuuu4/HHH2/DiIQQTZWWlsZnn33Gpk2bqK6uxsHBgV69ekmCUAghRLumKApVZwsA0Hi64OgtCTGXfn2NGwYDVUeOWDcYYZEkCYVoRF6pjtvf+dVUgzA61IsP7xyOt6vtJgjrGGc7XkgUJp4pZPH6A9ToDVaOrB06V38mYbT14mjnNm3ahJeXdet/AqxZs4YuXbqg1WoZNmwYe/bssXZIQtiswsJCNmzYwI8//oinpyczZ87Eycn276FCCCFES6jJyMBQYZxs4tLB6xHW0fa9UANVlhzbJkkSCmFBcWUN89btIe18BQDdA9z5zx1D8XK1nyW7fUI8+eDOYXg4G6sK/Hw0l2VfHrzojCxxGepmEmqcwa+ndWNpx6677jqcnZ2tGsMnn3zCkiVLWL58Ofv372fAgAFMmDCB3Nxcq8YlhK3at28fpaWlTJw4kcmTJ5uaJAghhBAdQdXhw6btjr7UuI42+kKSsFKal9gkSRIK8Qe6Wj2L3t/HkXMlAIR6u/DBnUNteolxY/qFevGveYNx0hj/V/88MYO//ZBq5ajakepyOH/CuB3YBzRS5rU9W7VqFYsWLWLhwoX06dOHtWvX4urqyrp166wdmhA2wWAwkJKSwpkzZwCIi4tjzpw5REREWDkyIYQQou1JkrAhbY8eqByNE29kJqFtkiShEPUoisKyLw+y57SxdoSPmxPv3zmUYC8XK0d2+UZ082X1zTGmprtvbjvJB7vPWDeo9iLnMPD7zExZatyuVVdXk5iYyPjx40371Go148ePJyEhweIxOp2OkpISsy8h2qusrCy+/PJLduzYYZpdq9VqpbOqEEKIDsssSdhZkoQAKicnnKOiAKhOS0Mvr49tjkx7EaKe/9t2ki/3ZwKgdVTz7oIhdPN3t3JUV25ydDDPXd+Pp78yflrz7DeHifRzY1R3PytHZueks3GHkZ+fj16vJzAw0Gx/YGAgR48etXjMypUrWbFiRVuEJ4TVVFVVER8fz+nTpwkMDGTmzJn4+/tbOywhhBDAq5uPWdz/p2ulRE5rUxSFysMpAGg8tTjY8aSTlubSry9Vycb3UVUpKbgNH27liER9kiQU4ncbD57jlXpLcVfNiWFAuLf1Amphtw/vTPr5ct6OP43eoHD/h/v56oFRdPVzs3Zo9uucJAlF45YtW8aSJUtMj0tKSggPD7diREK0HIPBgFqtxsnJCZ1OxzXXXEP37t2tHZYQooNoLPklmkaSh62vJjMTQ3ExYFxqrKpb1tXRbV2J1uHCqraqr1+XJKGNkSShEMChzGL+9GmS6fGfJ/RicnSw9QJqJUsnRXEyr5yfj+ZSXFnDne/t5X/3j7Krhiw2pa5pCSoI7GvVUETr8vPzQ6PRkJOTY7Y/JyeHoKAgi8c4OztbvdmKEC1NURROnDjB3r17mTRpEp06dWLq1KnWDksI0Y5JQlDYo6pDF5Yau0g9QjP16zNWnjlvxUiEJVIoRnR4heXV3PvfRKpqDADcMCiU+6/qZuWoWodGreKfN8fQM9C4hPpUfjkPfnwAvUE6HjebvhZyjUsI8O0Gzva/LF00zsnJidjYWLZs2WLaZzAY2LJlCyNGjLBiZEK0ndzcXL7++mu2bt1KQEAAjo7yAZMQQghhiXnTEh8rRmJ7nIO9UDkZ56tVSZLQ5kiSUHRoeoPCw58kkVFYCcCAcG9W3hDdrqeDe2gd+fe8IaZuzduP5fHaluNWjsoOnT8OtVXGbWla0iEsWbKEt99+m//85z8cOXKE++67j/LychYuXGjt0IRodUePHuWrr76itraWqVOnMn78eNzd5cMRIYQQwpLKQwdN29LZ2JxKrUYbbkyc1pwvo7agwMoRifokSSg6tNU/HWP7sTwAfN2cWHvbIJwdNFaOqvVF+Lryxi0DUf+eC33t5+NsTc21blD2JvvCjV/qEXYMN910E3//+9955plniImJISkpiU2bNjVoZiJEe6HX6yn4/YV7eHg4cXFx3HjjjYSEhFg5MiGEEMJ2KXo9Vb8Za5c7eLvi2ElqwP+RS71uz/VnXQrrkySh6LA2p+Tw+s8nAFCr4PVbBxLcgbpOjezux2MTegGgKPDIx0mcLaiwclR25NxvF7YlSdhhLF68mDNnzqDT6fj1118ZNmyYtUMSolWcOXOGzz77jE2bNmEwGHBzcyMqKqpdz7QXQgghWoLuxEkMFcb3VS6R/laOxjZp6ycJDx2yYiTijy4rSbhmzRq6dOmCVqtl2LBh7Nmzp9GxX375JYMHD8bb2xs3NzdiYmL44IMPLjtgIVrCmfPlLPkkyfR46aTejOzmZ72ArOTeMd0YH2WcBVVcWcP9H+6nqkZv5ajsRP2ZhMGSJBRCtA+FhYV8//33/PDDD3h6ejJp0iTUavlMWQjR+l7dfMzilxD2pjIpybTt0rXjvcdsCm3nCz+XyoOSJLQlzX7V98knn7BkyRKWL1/O/v37GTBgABMmTCA31/JSRR8fH5566ikSEhJITk5m4cKFLFy4kB9++OGKgxficuhq9Sxef4BSXS0AU6KDWRQXaeWorEOtVvGPOQPo7OsKwMHMYlZ8m2LlqOyAolxIEroHgnuAdeMRQogWsnXrVkpKSpgwYQKTJ0+mU6dO1g5JCCGEsCvmSUKZSWiJk78HahdjAzSZSWhbmp0kXLVqFYsWLWLhwoX06dOHtWvX4urqyrp16yyOv+qqq5g5cyZRUVF069aNhx9+mP79+7Njx44rDl6Iy/HyxlQOZhYD0NXPjZdn9e/Qy6e8XBxZe1ssWkfjn4OP9qSzIfmclaOycSWZUPl7gV1pWiKEsGMGg4GUlBTy8/MBuPbaa5k9ezadO3e2cmRCCCGEfar87feyRI6O0rSkESq1yvSzqc3NpSZH6uPbimYlCaurq0lMTGT8+PEXTqBWM378eBISEi55vKIobNmyhdTUVMaMGdPoOJ1OR0lJidmXEC3hp5Qc1u08DYCTRs0btw7E3dnBylFZX1SwJ89N72d6vPTLZKlPeDGZ+y9sB8dYLQwhhLgSWVlZfPnll+zYsYOsrCwAPDw80GjafwMvIYQQojXoi4qoPnUKAG1UFGpHuac2xrx5icwmtBXNShLm5+ej1+sbdHIMDAwkOzu70eOKi4txd3fHycmJKVOm8Prrr3Pttdc2On7lypV4eXmZvsLDw5sTphAWnSuu5LHPLzSbeGpKFH1DvKwYkW2ZPTiMaQOMHStLq2p56OMD1OgNVo7KRmUduLAdOsh6cQghxGWoqKhg8+bNfPfddzg6OjJz5kz695faqkIIIcSVqjx4oW65S8wAK0Zi+8zrEh68yEjRltqkErWHhwdJSUns3buXF198kSVLlrBt27ZGxy9btozi4mLT19mzZ9siTNGO1eoNPPxREkUVNQBc1yeQeSNkKVV9KpWKF2f2I9zH2OH5QHoRq6RYtGVZ9WYShgy0XhxCCHEZ1Go1RUVFXHPNNVx//fX4+0u9JCGEEKIlVB5IMm27DJAk4cWYdzg+bMVIRH3NShL6+fmh0WjIyckx25+Tk0NQUFDjF1Gr6d69OzExMTz66KPMmjWLlStXNjre2dkZT09Psy8hrsRrP59gT5qxhlyIl5a/dfA6hI3x1Dry+i2DcFAbfzZrfznJjuP5Vo7KxijKhZmE7kHgGWLdeIQQogmOHz/O559/jk6nQ6vVMnv2bLp3727tsIQQQoh2pX7TEteYGKvFYQ8cfdzQuGsBqExORjHIKjZb0KwkoZOTE7GxsWzZssW0z2AwsGXLFkaMGNHk8xgMBnQ6XXMuLcRl25dWwBs/HwdAo1bx2i0D8XZ1snJUtism3Js/T+gFGPNhf/o0ifwy+f/VpOAUVBkb38gsQiGErcvLy+Prr79m69ateHl5odfrrR2SEKIFrVmzhi5duqDVahk2bBh79uxpdOyXX37J4MGD/7+9O4+Pqr73P/6amex7QkIgIRD2TdkCREALyKZAK1VptK0g7c/bqvizpvdWsS3Uqr9oSyu9yhW1dblWFBdwoYhghLoQQAkRZN8DCQkJIXsyk8yc3x+DE6NAAiQ5mcn7+XicB+ecnJnzniSck/nMdyEqKorQ0FCGDRvGyy+/3IZppb17Yv3+7yzSfIbLRc2OHQDY4mLxS1BjgguxWCwE93J3OXaVlXnGchRzXfSMDenp6cydO5eRI0cyevRolixZQlVVFfPmzQNgzpw5JCYmeloKZmRkMHLkSHr37o3dbmfNmjW8/PLLPP300y37SkTOoaK2jvtez8FluLd/NakvI5NjzA3lBe64phefHTrNx/uLKKqw85s3d/CPuSPV+hI0HqGIeI2cnBy2bt1KTEwMM2fOJEFvVkR8yooVK0hPT2fZsmWkpqayZMkSpk2bxr59++jcufN3jo+JieG3v/0tAwYMICAggNWrVzNv3jw6d+7MtGnT2iy3Ck/iqxyHDuGqrATcrQj13qlpIb07U7njBADV2dkEqpeD6S66SJiWlkZRURELFy6koKCAYcOGsXbtWs9kJrm5uVitDQ0Uq6qquOuuuzhx4gTBwcEMGDCAf/7zn6SlpbXcqxA5jz++t5vjJTUAjOwRzV0TddFpDqvVwl9mD+X6v31McaWDj/aeYvnWXH6SqnEcGxUJ1ZJQRNoZp9NJTU0NYWFhJCQkcPXVVzNgwIBGf5uJiG/461//yh133OFprLFs2TL+9a9/8fzzz/PAAw985/gJEyY02r733nt56aWX+PTTT9u0SCjiq2q+bJgkM1hdjZsluHfDBxo127KJ/tGPTEwjcAlFQoD58+czf/78c37t2xOSPPLIIzzyyCOXchqRy7L2q5O8sc39qURogI0n0oZhs+rTnOaKCw/k8ZuG8POXvgDgkdV7GNOrE73iwkxOZrI8TVoiIu3TsWPHyMrKIigoiFmzZtG5c+dztiYSEe/ncDjYtm0bCxYs8OyzWq1MnjyZrKysJh9vGAYfffQR+/bt4/HHH2/NqCIdRvU3xiPUpCXNE9S9E5aAAAyHg+rt25t+gLQ6fawsPulUeS0LVjZMo77oB4NJigkxMZF3mjQwnh+ndgegps7Jfa9/SZ2zAw8o63LCybOfEEZ2h9BYc/OIiABnzpxhzZo1fPDBB0RERDB+/HizI4lIKysuLsbpdHp6c30tPj6egoKC8z6urKyMsLAwAgICmDFjBk8++SRTpkw57/F2u53y8vJGi4icm2fSEj8/gq64wtQs3sLqbyPoyisBqMvNpb6oyOREoiKh+BzDMPjNWzs4U10HwLTB8cxO6WZyKu/1uxkD6RkbCsCXx0t56qODJicyUfF+qKtyryeqFaGImM/lcvGvf/2L8vJypk2bxvTp04mOjjY7loi0U+Hh4eTk5PD555/z6KOPkp6e/p2eYN+UkZFBZGSkZ0lKSmq7sCJexFlejuPgIQCCBgzAGhRkciLvETKi4X1VdbZaE5rtkrobi7Rn/9x8jI373J9AxIUHknHjEA0aexlCAvx4Im0YNz29CafL4KkNBxnfP44R3Tvgm1CNRygi7YDL5WLfvn0kJycTHBzM9ddfT1RUFDabzexoItJGYmNjsdlsFBYWNtpfWFhIly5dzvs4q9VKn7MTAwwbNow9e/aQkZHxnfEKv7ZgwQLS09M92+Xl5SoUdjDnm2jmvin92jhJ+1bz8m8968GxdbAhw8Q03iV4eMNkkDXZ2URMm2piGlFLQvEph4oqeXTNHs/2n24eQkxogImJfMOwpCjuudb9B6XTZXDfihyq7PUmpzJBo/EINbOxiLS9/Px8Vq5cySeffEJubi4AnTp1UoFQpIMJCAggJSWFzMxMzz6Xy0VmZiZjxoxp9vO4XC7sdvt5vx4YGEhERESjRUS+q+ZIQzfZ4J5xJibxPsHDh3nWq7Ozz3+gtAkVCcVn1Dld3Lcih9o695h5t13Vg4n9NWB7S5k/sQ/DkqIAOHa6mkf+tdvcQGbI/8ZNq6sGIxaRtlNZWcn69etZvXo1fn5+/PCHP6R///5mxxIRE6Wnp/Pcc8/x0ksvsWfPHu68806qqqo8sx3PmTOn0cQmGRkZrF+/nsOHD7Nnzx7+8pe/8PLLL/PTn/7UrJcg4jNqDqtIeKn8oqMJ6N0bgNo9e3DV1JicqGNTd2PxGf+deYAdJ8oA6BUXyoPTB5qcyLf42awsSRvG9P/+hGqHk1e3HufaAfFMGRTf9IN9QV0NnNzhXu/UF4KjTI0jIh2L3W6nqKiIa6+91tNVUEQ6trS0NIqKili4cCEFBQUMGzaMtWvXeiYzyc3NxWptaBNSVVXFXXfdxYkTJwgODmbAgAH885//JC0tzayXIOITDJeLmiPFANjCg/CPDTM5kfcJGTECx6FDUF9PzY6dhKaONjtSh6WWhOITth0rYekG94QaflYLS9KGERygrlctLTk2lN/PHOTZfuCtHRRVnL+Lik/JzwGXezIcuqeaGkVEOoaDBw+yZs0aXC4XnTp14pZbblGBUEQamT9/PseOHcNut7NlyxZSUxv+Rtm4cSMvvviiZ/uRRx7hwIED1NTUUFJSwqZNm1QgFGkBjqNHcdU4AAjuFafx8C9B8Ihvjku4zcQkoiKheL1Kez33rfgSl+HevndSX4Z0izI1ky+7ZVQSkwe6P6E+XeXggbd2YBiGyanawImtDevd9MmWiLSeoqIi3nnnHT766CP8/f2pq3N/QPHNFkEiIiLSPtRsz/GsB/eMNS+IF9MMx+2H/toUr/fwe7vJLakGYET3KO6c0NvkRL7NYrHw2E1XEhvmnhAmc+8pXt163ORUbeD4N4qESWpJKCKtY+vWraxatYq6ujpmzpzJlClTCAwMNDuWiIiInEfNl1961jUe4aXx794dW6y7wFqTk4PhdJqcqONSkVC82rpdBaz4wl2gCg2w8UTaMPxs+rVubbFhgTx+0xDP9sOrd3OkuMrERK3MMOD4Fvd6UCTE9jM3j4j4FKfT6ZldNC4ujquvvpobb7yRhIQEk5OJiIhIU2pyctwrVgvBPTqZmsUrbcjAsvExQrqFAOCqqMC+fEETD5LWomqKeK2iCjsPrNzp2V74/UH06BRqYqKOZdLAeG4d3R2Amjon963Iod7pMjlVKzlzBKrOzljWbRSoy5+ItJBjx47xxhtv8NlnnwHQs2dPBg0apK7FIiIiXsBZWYn9wAEAAhOjsQb6m5zIewX36exZrzl0ysQkHZtmNxavZBgGD7y1g5Iq9wCxUwbF86ORSSan6nh+N2MgWYeKOXq6mpzjpSzdcIh7J/c1O1bLO/55w7q6GotICzhz5gxZWVmcOHGCxMREhg8f3vSDRERE2okn1u8/5/77pnSsHje1O3a4ex0BIepqfFlCejcUCasPnSLaxCwdmT6mFq/06tbjZO51f7oQGxZAxo1XahYpE4QG+vFE2jBsVvf3/r8/OkDO8VJzQ7WGr7saAyRp0hIRuTx2u51Vq1ZRXl7OtGnTmDFjBtHR+lNYRETE21R93tCYILiXioSXIygpBou/DVBLQjOpSChe52hxFQ+v3u3ZfvymIcSGaVB3swzvHs3dE/sA4HQZ3Lcih2pHvcmpWtjXk5ZYrJCYYm4WEfFKhmGwf/9+nE4ngYGBXHfddcyePZsePXqYHU1EREQuUXXWZs96SP8uJibxfhab1TM7dF1JFXUFBSYn6phUJBSvUu90cd/rOdTUuWc7unV0dyYNjDc5ldxzbR+GdosE4EhxFY/+a4/JiVqQvQJO7XKvdx4MgeHm5hERr5Ofn89bb73Fxo0bycvLAyAhIQGbzWZyMhEREblUzspKana6x8gP6BKJf1SIyYm8X3Cvb4xLmJ1tYpKOS0VC8Sr/s/EQ23NLAUjuFMLvZgw0N5AA4G+z8kTaMILPNg9/ZUsuG/b6SBPxvG1gnJ2QRV2NReQiVFRU8OGHH7J69Wr8/PyYNWsW3bt3NzuWiIiItIDqzz8Hp7vxSqhaEbaIkG9MXlKdvd3EJB2XioTiNb48XsrfMt0zR1kt8Ne0YYQGau6d9qJXXBi//UbR9r/e3MHpSruJiVpIrsYjFJFLU1xcTEFBARMnTuSGG26gc+fOTT9IREREvEL15ob3CSEDupqYxHcE94qDs1MNVGdvMzdMB6UioXiFGoeT+17Pwelyzxw1f2IfRnTXIO/tzU9Su3PtAPeb4OJKOwtW7sQ4O9uX1zr2acN696vMyyEiXuHgwYN8+qn7utGzZ09uueUW+vbtq8m1REREfEzV5rPjEVoshPbVEFgtwRYcQGCC+32+fe8+nJVVJifqeC6pSLh06VKSk5MJCgoiNTWVrVu3nvfY5557jmuuuYbo6Giio6OZPHnyBY8XOZeM9/dwuMh9gRjSLZJ7JvU1OZGci8Vi4bGbriQmNACAdbsLeeOLEyanugz1djh+dsayyCSITjY1joi0X8XFxbz77rt89NFH1NTU4Dzb/cjPTy3eRUREfE396dPY9+0DIGjQIGyhmkizpQT3PjtLtMtF7Y4vzQ3TAV10kXDFihWkp6ezaNEisrOzGTp0KNOmTePUqXOPP7Zx40ZuvfVWNmzYQFZWFklJSUydOtUzcLdIUzbuO8X/Zh0DIMjfPfadv02NYNurzuFBZNx4pWf7ofd2kXu62sRElyEvG+pr3OvJV5ubRUTarc8++4yVK1ficDiYOXMmU6ZM0aQkIiIiPqx6S0NX49Ax6m3UkkJ6f2Ncwi++MDFJx3TRlZa//vWv3HHHHcybN49BgwaxbNkyQkJCeP755895/CuvvMJdd93FsGHDGDBgAH//+99xuVxkZmZednjxfWeqHPzmzR2e7d9OH0jvuDATE0lzTBvchR+N7AZA1be6inuVb3Y17jHOvBwi0u64XC5Pa8Hw8HDGjRvHjTfeSEJCgsnJREREpLVVZW32rIdcNcbEJL4n5Btdt6s+22Riko7pooqEDoeDbdu2MXny5IYnsFqZPHkyWVlZzXqO6upq6urqiImJOe8xdrud8vLyRot0PIZhcP9bOzhV4Z78Yny/OH56VQ+TU0lzLfz+YLrHhACw7dgZlv37kMmJLsHRzxrWk1UkFBG33Nxc3njjDbZvd8+6N2TIEAYPHozVqlbuIiIiHUHV1y0J/f0JSRlhbhgf4x8dSmDXKABqdu7EWVpqap6O5qL+mi0uLsbpdBIf33hQzvj4eAoKCpr1HPfffz8JCQmNCo3flpGRQWRkpGdJSkq6mJjiI17Zksu63YUARIf48+ebh2jgdy8SFujHE2lDsZ79kT2xfj87T5SZG+piOOvg+Nmbf0QiRPc0N4+ImK60tJQ1a9awdu1awsLC6N27t9mRREREpI3V5eVRl5sLQMjQoViDg01O5HtCB5/tmeFyUdXMBmnSMtr0I+/HHnuM1157jVWrVhEUFHTe4xYsWEBZWZlnOX78eBumlPZgX0EFD6/e7dn+881D6Rxx/t8ZaZ9SesRw14Q+ANS7DH61Yjs1DqfJqZopfzvUnR1Lscc4UIFapEMrKyvjzTffpLy8nKlTpzJjxgyio6PNjiUiItKuPLF+/3cWX+OZ1RgI0XiErSJ0UMPwLZWffHqBI6WlXVSRMDY2FpvNRmFhYaP9hYWFdOnS5YKPXbx4MY899hjr1q1jyJAhFzw2MDCQiIiIRot0HLV1Tu55NRt7vQuAuWN6MHmQppT3VvdO7suViZEAHCqq4o+rd5mcqJmOftKwrklLRDokwzA4evQoAJGRkUycOJHZs2eTnJxsai4RERExzzfHIwwdo/EIW0NIn3gsZxuWVX36KYbhhePbe6mLKhIGBASQkpLSaNKRrychGXOB/xx/+tOfePjhh1m7di0jR4689LTSITz6rz3sL6wEYECXcBZMH2hyIrkc/jb3jNTB/u6ZPl/depx3v8w3OVUzHNrQsN7zGvNyiIgpTp48ycqVK1m3bh1FRUUA9O7dW7MWi4iIdGCGYVC1xV0ktIaEEHzllSYn8k1Wfxsho0cBUH/qFPb9B0xO1HFcdHfj9PR0nnvuOV566SX27NnDnXfeSVVVFfPmzQNgzpw5LFiwwHP8448/zu9//3uef/55kpOTKSgooKCggMrKypZ7FeIzPthVwMubjwEQ5G/lyVuHE+SvN2Terk/nMP54w2DP9oMrd3K0uMrERE1wVEHu2U8Io5MhppepcUSk7VRWVvLhhx/y3nvvYbPZmDVrFnFxcWbHEhE5p6VLl5KcnExQUBCpqals3br1vMc+99xzXHPNNURHRxMdHc3kyZMveLyIfJfj1QdwFhUDENwrGsuni2FDhsmpfFPY1Q0NNao+VZfjtnLRRcK0tDQWL17MwoULGTZsGDk5Oaxdu9YzmUlubi4nT570HP/000/jcDi4+eab6dq1q2dZvHhxy70K8Qkny2q4/60dnu3fzxxE3/hwExNJS7o5pRs/HJ4IQKW9nnte3Y69vp2OT3hsE7jq3Ou9JpqbRUTa1MGDBykoKGDixInccMMNdO7c2exIIiLntGLFCtLT01m0aBHZ2dkMHTqUadOmcerUqXMev3HjRm699VY2bNhAVlYWSUlJTJ06lby8vDZOLuK9qvY21DpC+194yDW5PKFXNwz5VPnpJxc4UlqSxfCCzt3l5eVERkZSVlam8Ql9VL3TxY//voWtR0oAuG5wF57+6QjNZuxjKu31fP/JTzlythXhz8b1ZOH3B5mc6hzWLoDN/+Ne/9HLMOgH5ubxYrp+N9D3ov06dOgQlZWVDB06FKfTicvlwt/f3+xYItJOtNfrd2pqKqNGjeKpp54C3MNAJSUlcc899/DAAw80+Xin00l0dDRPPfUUc+bMadY5W+J74YsTWciluW9KP7MjXLTjaVOp/NI9sWrPB2cSlBRjciLfZUx4gEOTp1CXl4fF359+WzZjDQkxO5bXau71u01nNxY5n8Xr9nsKhF0jg3jspitVIPRBYYF+PPXj4QTY3Jee5z87wvrdhU08ygRfj0dosULP75mbRURaTXFxMe+++y6ZmZkUF7u7DtlsNhUIRaTdczgcbNu2jcmTJ3v2Wa1WJk+eTFZWVrOeo7q6mrq6OmJiVOQQaQ6jvp7q/QUA2MICCUyMNjmRb7NYLJ7WhEZdHVUaHqFNqEgopvtwdyHL/n0IAD+rhad+PJyokACTU0lrGZwQye9mNkxG859vfEl+aY2Jib6lPB+K9rjXE1MgOMrUOCLS8gzD4OOPP2blypU4HA5mzJjBpEmTzI4lItJsxcXFOJ1Oz5BPX4uPj6egoKBZz3H//feTkJDQqND4bXa7nfLy8kaLSEdVu3s3rhr3kEQh/bpgsapRS6vakEFoVEODkqrXlmj8xzagIqGY6nhJNemv53i2H7h+ACk99Gmmr7vtqh5MG+z+o7aspo67l2e3n/EJvzmrce9rzcshIi3O5XIB7k+mrVYr48aN48YbbyQxMdHkZCIibeuxxx7jtddeY9WqVQQFBZ33uIyMDCIjIz1LUlJSG6YUaV+qNm/xrGs8wrYR2r8LnC3GVu3ONzlNx6AioZjGXu/krleyKa+tB9zjEP786p4mp5K2YLFY+NNNQ0mMCgZge24pj6zeY3Kqsw6sa1hXkVDEZ+Tm5vLGG29w8OBBAK6++moGDx6M1ao/hUTE+8TGxmKz2SgsbDxsS2FhIV26XLh4sXjxYh577DHWrVvHkCFDLnjsggULKCsr8yzHjx+/7Owi3qp6c0NX/tABXU1M0nHYggMI7hUHgONUBY6iCpMT+T79ZSymeXj1bnbmlQHQo1MIf5o9ROMQdiCRIf4s+2kKAX7uy9DLm4/x1rYT5oaqd8DBTPd6cAx0G2VuHmkXjh49ys9//nN69uxJcHAwvXv3ZtGiRTgcDrOjSTOUlpby/vvvs3btWkJDQzX2loj4hICAAFJSUsjMzPTsc7lcZGZmMmbMmPM+7k9/+hMPP/wwa9euZeTIkU2eJzAwkIiIiEaLSEfkqqmhels2AH7RIfjHhZucqOMIG9TQ40OtCVufn9kBpGN6e3se/9ycC0Cgn5X/+ckIIoI0UHxHc2W3SB654Qp+89YOAB5ctZP+XcK5IjHSnEDHPgXH2U+n+k4Fq82cHNKu7N27F5fLxTPPPEOfPn346quvuOOOO6iqqmLx4sVmx5MLKCgoYPXq1YSGhjJ16lSSk5PNjiQi0mLS09OZO3cuI0eOZPTo0SxZsoSqqirmzZsHwJw5c0hMTCQjwz2G1+OPP87ChQtZvnw5ycnJnrELw8LCCAsLM+11iHiDyk8+wbDbAQgblKDGLW0odFACRe9uB6Bydx6aLqZ1qUgobW7niTLuP1sUAvjjDYMZnGBSUUhM96NRSWw/XsqrW3Ox17u485VtvDf/anMmr9m3tmG9/3Vtf35pl6677jquu67h96FXr17s27ePp59+WkXCdsgwDE93u86dOzN27Fj69++Pzaaiv4j4lrS0NIqKili4cCEFBQUMGzaMtWvXeiYzyc3NbTSkwtNPP43D4eDmm29u9DyLFi3iD3/4Q1tGF/E6FevWe9bDh/cwMUnHE5QUgy0sCGdlLdX7CjAcDiwBmui0tahIKG2qqMLOf7z8BfZ69+Dxt4xK4kcjNQByR/eHHwxid34ZX54o43hJDfe+lsPzt4/C1pYzhhkG7H/fvW71h96a6VTOr6ysTN1W26GTJ0+yadMmSkpK+PGPf0xoaCiDBg0yO5aISKuZP38+8+fPP+fXNm7c2Gj76NGjrR9I5CI8sX7/OfffN6VfGye5MJfDQeUG9+SG1uAATVrSxixWC6GDulK+9Qguez3V23MITR1tdiyfpTEJpc046l3c9co2TpbVAjCiexQP3TBYTbWFQD8b//PTFGJC3Z8I/Xt/EX/+YF/bhji1B0rdXeBJHgdBGnNHzu3gwYM8+eST/OIXv7jgcXa7nfLy8kaLtI7Kyko+/PBD3nvvPWw2GzfccAOhoaFmxxIREREfUPXZZ7iqqgAIH9INi596J7S1RuMSfvqpiUl8n4qE0mYeem8Xnx89A0CXiCCW/TSFQF1g5azEqGCevHW4p/Xgsn8f4s22nMhk378a1vtd33bnFdM88MADWCyWCy579+5t9Ji8vDyuu+46Zs+ezR133HHB58/IyCAyMtKzJCWp1XRryc7OpqCggIkTJ3LDDTfQuXNnsyOJiIiIj2jU1XiEuhqbIXRgw2zSlSoStip1N5Y28fLmY7yyxd1KK8DPyjO3pdA5IsjkVNLejOsTy8KZg1j07i4AFqzcQY9OIYxKboNunbveaVjvryJhR/DrX/+a22+//YLH9OrVy7Oen5/PxIkTGTt2LM8++2yTz79gwQLS09M92+Xl5SoUtqBDhw4B0Lt3b1JTUxkzZgz+/poAS0RERFqOUVdHxUcfAWANCSF0YILJiTomv4hggpJiqD1egn3PHupOncJfHwq3ChUJpdVt2HuKRe985dnO+OGVDE2KMi+QtGtzxvTgwKkK/rk5lzqnwS9e3sY7d48jKSak9U5afAAKd7rXE1MgWp8QdgRxcXHExcU169i8vDwmTpxISkoKL7zwQqOB4M8nMDCQwMDAy40p31JcXMymTZsoKChgwIAB9O7dW99nERERaRVVW7biKisDIGziRKz+6glnltDBidQeLwGg4oN1xNz2U5MT+SZ1N5ZW9VVeGXcvz8ZluLd/8b1e3JTSzdxQ0q5ZLBYWfX8w4/p0AqCkysHPX/qcitq61jvprrcb1gf/sPXOI14pLy+PCRMm0L17dxYvXkxRUREFBQUUFBSYHa1Dqa+v5+OPP2blypXY7XZmzJjB9773PbNjiYiIiA+r+OADz3r41KkmJpGIkcme9bLV75kXxMepSCitJr+0hp+/9DnVDicAM67syv3XDTA5lXgDf5uV//lxCr1i3RMP7C+s5Jf/3Ia93tk6J9y1qmF90A2tcw7xWuvXr+fgwYNkZmbSrVs3unbt6lmk9RmG+1Mmm81GRUUF48aN46abbiIxMbGJR4qIiIhcOqO+norMTAAswcGEfe8akxN1bEGJ0QQmRgNQ++UOHMeOmZzIN6lIKK2ioraOn734OYXldsA9k/FffjQUq1UzGUvzRIb48/e5I4kKcY8x9tnB0/znGztwfd0staUU7YNT7jEQ6TYKorq37POL17v99tsxDOOci7Su3Nxc3njjDU6dOoXFYmHGjBkMHjy4Wd29RURERC5H9RfbcJa4u7eGXXMN1uBgkxNJ5OienvWy1atNTOK79Fe2tLjaOif/8b/b2FtQAUD3mBCemzOSII3fIBepV1wY/5g7iiB/96XqvS/zeXTNnpY9yVcrG9bV1VikXSgtLeX9999n7dq1hISEEBAQYHYkERER6WAq1q3zrIdPU1fj9iBiZE+wuBselb+3Wh/atwIVCaVF1TldzF++nazDpwGICvHnhXmj6BSmQeXl0qT0iGbpj0dgO9sK9R+fHuG5jw+3zJO7XPDl8rMbFhg0q2WeV0Qu2dGjR3nzzTcpLS1l6tSpzJw5k6ioKLNjiYiISAdiuFxU/Ms9JJHFz0qYdRtsyDA5lfjHhBIyciQAjqNHqf1ql8mJfM8lFQmXLl1KcnIyQUFBpKamsnXr1vMeu2vXLm666SaSk5OxWCwsWbLkUrNKO+dyGfzmzR18uKcQgJAAGy/cPorecWEmJxNvN2lgPP/vh1d4th9ds4fXPz9++U989BMozXWv974WIjXGmYgZDMPgzJkzAHTt2pVRo0bxox/9iOTkZHODiYiISIdUk5NDfVkNAKGDErAF+ZucSL4W8f2ZnvVyTWDS4i66SLhixQrS09NZtGgR2dnZDB06lGnTpnHq1KlzHl9dXU2vXr147LHH6NKly2UHlvbJMAweem8Xq7bnARBgs/LcnJEM7x5tcjLxFWmjupM+pZ9n+/6VO1i1/cTlPWnOKw3rw39yec8lIpekoKCAVatW8e6771JXV0dgYCBDhw7FZtMQFSIiIh3RE+v3f2dpa41mNR7eo83PL+cXMW0aFn930bZszRoMZytNbtlBXXSR8K9//St33HEH8+bNY9CgQSxbtoyQkBCef/75cx4/atQo/vznP3PLLbcQGKgup77IMAweX7uPl7LcswvZrBae/PFwxvWJNTmZ+Jp7ru3Dz692D1ZrGPDr179k9Y78S3uy2jLY/a57PSgK+s9omZAi0iyVlZVkZmby7rvvYrVauf766/H316f0IiIiYi7DMChft969YbMSfmU3cwNJI7bISELHfw8AZ1ExVZs3m5zIt1xUkdDhcLBt2zYmT57c8ARWK5MnTyYrK6vFw0n7ZxgGGe/vZdm/D3n2/emmIUwbrFaj0vIsFgu/mzGQ265yf5rnMuDe13JY+1XBxT/ZVyuh3t2FgCtng39QCyYVkaZ8/PHHnDx5kgkTJnDDDTfQuXNnsyOJiIiIULtzJ/UnTwIQ2r8LtlA1dmpXNmQQ2bPes1n+XIbGi2xBF1UkLC4uxul0Eh8f32h/fHw8BQWX8Cb9POx2O+Xl5Y0WaX8Mw+CPq3fz7DcmkXh41hXclKJPWqT1WCwWHvrBYG4ZlQSA02Vwz6vZrP3qZPOfxDBg63MN2+pqLNImDh065Pl74ZprriEtLY1+/fphOTtLnYiIiIjZytXVuN0Lu7Ib1rPjRFbk5OJy1DfxCGkuP7MDnEtGRgYPPfSQ2THkAlwugz+8t4v/PdvF2GKB//fDK7l1dHeTk0lHYLVa+H8/vBKH08XK7DzqnAZ3vZLN4zcNYfbIpKaf4OgncOrsTFjdRkHC8NYNLNLBFRcXs2nTJgoKChg6dChdunQhPDzc7FgiIiLiJc43LuF93xizvCW4HA7K3n7HvWG1ED60Ge8tpM1Z/W2ED+9OWdYhXLV1VO48QcQ0s1P5hotqSRgbG4vNZqOwsLDR/sLCwhadlGTBggWUlZV5luPHW2AWU2kx9U4X97+1o1GB8PGbhqhAKG3KarXw55uHctMId8tVlwH/9eYOnv/0SNMP3vJMw3rqL1spoYjY7XY+/vhjVq5cid1uZ/r06aSmppodS0REROScyteswXn6NADhw7vjF64hidqryNG9POtlWw9f4Ei5GBdVJAwICCAlJYXMzEzPPpfLRWZmJmPGjGmxUIGBgURERDRapH2ocTj5j5e38cY296yyVgv8ZfZQftSc1lsiLcxmtfDnm4dw+9hkz74/rt7N3z48gGEY537QmaOw91/u9fCuMOiGVs8p0lFZrVYKCwsZN24cN910E926aTgKERERaZ8Mw+DMy//0bMdMHGhiGmlKSL94/CKDAajclY+ztNTcQD7iomc3Tk9P57nnnuOll15iz5493HnnnVRVVTFv3jwA5syZw4IFCzzHOxwOcnJyyMnJweFwkJeXR05ODgcPHmy5VyFt4kyVgx//fTMf7T0FQIDNypO3juDGEXrTJ+axWi0s+v4g/u+kvp59T3y4n9++/RV1Ttd3H7D5aeBsAXHUz8Gm2VRFWlJubi4rV66kqqoKf39/br75ZgYPHozVetF/coiIiIi0mZrtOdTucg9JFDRoEMG94kxOJBdisVqJGNnTveF0Ub72gws/QJrlosckTEtLo6ioiIULF1JQUMCwYcNYu3atZzKT3NzcRm8E8vPzGT68YbyvxYsXs3jxYsaPH8/GjRsv/xVImzhcVMn/eekLDhdXARAe6Mczc1IY2zvW5GQi7slM0qf0IyLIj0f+tQeA5VtyOV5SzdKfjCDi7KC2VBTAthfd637BkDLPnMAiPqi0tJTNmzeTm5tLQkICTqcTQJOSiIiIiFc488+XPevRc27DYtljYhppjojRPSnJ3A1A2TvvEH1LmsmJvN8lfaw/f/58jh07ht1uZ8uWLY3GF9q4cSMvvviiZzs5ORnDML6zqEDoPT45UMSspZ95CoRx4YGs+MUYFQil3fk/1/RiSdowAmzuS9snB4q5+elNHC+pdh/w2X9Dfa17fdTPIVS/wyItYe/evbz55pucOXOGqVOnMnPmTA0VIiLSBpYuXUpycjJBQUGkpqaydevW8x67a9cubrrpJpKTk7FYLCxZsqTtgoq0c3UFBZR/sA4AW6dOREyfbnIiaY6gpBgCu0YBULN9O9XZ280N5APa5ezG0j4YhsGLm47yyL/24HS5u2f2jw/n73NHkhQTYnI6kXObNTyRhKhgfvHyF5yprmN/YSU/eOpTnp6VxFVfPO8+yC8Ixv5fc4OKeDnDMKiqqiIsLIz4+HhSUlIYMmQINpvN7GgiIh3CihUrSE9PZ9myZaSmprJkyRKmTZvGvn376Ny583eOr66uplevXsyePZv77rvPhMQiLa+lZj0+8+prcLYXRHTaj7AGBFx2Nml9FouFmCmDOPm/mwA4/cwzhDyzzORU3k0DBMk5Vdrrufe1HB56b7enQDh5YDxv3TVWBUJp90b3jGHVXePoFRsKwJnqOva+vgjqa9wHjPwZhMebmFDEuxUUFLBq1SrWrFmDYRhER0czfPhwFQhFRNrQX//6V+644w7mzZvHoEGDWLZsGSEhITz//PPnPH7UqFH8+c9/5pZbbiEwMLCN04q0X64PHqb0ny+6N6wWopKKYEOGqZmk+SJH98Ivxv2+r/Lf/6Z2j7qJXw4VCeU79pws5wdPfsq7X+Z79t01oTfP3pZCWKAan4p3SI4NZdVd45g0oDN9LCf4qW09AHZLEGeG32lyOhHvVFlZSWZmJu+++y4Wi4UJEyZozEERERM4HA62bdvG5MmTPfusViuTJ08mKyvLxGQi3qf8i6M4q+wARIzogX+UGsV4E4vNSqcpgz3bp597zsQ03k9FQvEwDIOXNx9rNP5gWKAf//OTEfzmugFYrXojKN4lMsSf525L4R9dVuFncc90vNQxk2l/388nB4pMTififdasWUN+fj4TJkxg1qxZ5+zOJiIira+4uBin0+mZPPJr8fHxFBQUtNh57HY75eXljRYRX2IYBiUbGlqexVw70MQ0cqmixvbB1qkTAOXvr8V+5IjJibyXioQCQH5pDXOe38rv3/4Ke727mDI4IYLV91zN9Cu7mpxO5NJZD66jxxn3J+on6cSzzhmcqrBz2z+28vDq3dTWOU1OKNK+HTp0yPOmcNKkSaSlpdGvXz+1IBQR6QAyMjKIjIz0LElJSWZHEmlRNdu2YT9xBoCg5FiCe8aZnEguhTXAj5jb57o3DIPTf/+7uYG8mIqEHZxhGLzxxXGmLfmYTw4Ue/bfdlUP3rpzLMlnx3QT8Uq1ZfCvdM9myPRHGdU30bP9j0+PcP3fPmHz4dNmpBNp14qLi3n33XfJzMzkyNlPYzt16kSABvIWETFdbGwsNpuNwsLCRvsLCwvp0qVLi51nwYIFlJWVeZbjx4+32HOLtAcl//uyZz1m4gATk8jlik7MxxrsD0DZqlXUvfVbkxN5Jw0w14EdPFXB797+is2HSzz7ukQE8fjNQxjfT5+giA/44EEoz3Ov9xxP5KhbeGkkvLjpKI+t3Yuj3sWR4ipueXYzt45O4oHrBhIZ4m9uZhGT1dbWsnXrVvbu3Ut0dDTTp0+nW7duZscSEZFvCAgIICUlhczMTGbNmgWAy+UiMzOT+fPnt9h5AgMDNcmJeKVzzXr87RmP6/LyqPjwQwBsEcFEjOjRJtmkddiCA4ieMIDT7+8El8Hp9bvpcpPZqbyPioQdUJW9nqUbDvLcJ4epcxqe/T8cnsgfvj9YRRLxDfs/gO3/dK8HhMMNT4HFgtUCP7u6J9f0jeWBlTvZdszdveDVrcf5YFch903px62jkvCzqaG1dEwOh4Pc3FzGjh3LoEGDsFr1f0FEpD1KT09n7ty5jBw5ktGjR7NkyRKqqqqYN28eAHPmzCExMZGMDPcsrQ6Hg927d3vW8/LyyMnJISwsjD59+pj2OkTMcuqJJeByD7UVfU0/LH42cwPJZYu5diAlmXswHPWUfnaA2NOn8Ts7VqE0j4qEHUi908Vrnx9nyYcHKK60e/Z3jwnhoRsGM7G/BqAXH1FyBFb+R8P2tEchqnujQ/rGh/PGL8bwypZjPPb+XqocTkqqHPz+7a94Oesov5sxiO+pRa10EMePH2fnzp1MnTqViIgIfvzjH6s4KCLSzqWlpVFUVMTChQspKChg2LBhrF271jOZSW5ubqNreX5+PsOHD/dsL168mMWLFzN+/Hg2btzY1vFFTFW1ZSvlq1cDYAsNIHpCf5MTSUvwCwsi+pq+7kJhnZOSl/6Xzun3mR3Lq6hI2AE4XQbvf3WSJ9bv51BRlWe/v83CL8f35u6JfQjy16cm4iMc1bDip1Bb6t4eMBNGzDnnoVarhdvGJDNpYDyPvb+Xd7/MB2B/YSVznt/KNX1juXdSX0Ymx7RReJG2VVZWRlZWFrm5uSQkJGC32/Hz81OBUETES8yfP/+83Yu/XfhLTk7GMIxzHivSkRh1dRQ+8rBnO27WCPzCgkxMJC0pZvJgSjbuA6eLM8uX0+n//BxbRITZsbyGioQ+rM7p4t2cfJZuPMjhbxQHAaZf2YX/mjaAnpqYRHyJsw7e/BkUfuXe7tQXZj0NTczCmhAVzH/fOpy5Y5N5ePVuco6XAvDJgWI+OVDM2N6duHdSX1J7qam6+I6dO3eyZcsWQkNDmTJlCj179jQ7koiIiEir+Xqcwh4fvcPAAwcBKO3elwFj+5oZS1qYf1QIUWN6U/rpAVyVlZx+7jk6//rXZsfyGioS+qCymjre2naC5z87wokzNY2+NrJHNAumDySlR7RJ6URaicsFb98J+993bweEwS2vQFDzPzVK6RHNyjvH8u6X+fx1/X5yS6oB2HToNJsOnWZE9yjmjk3m+iu6EuCnllbifQzDwOFwEBgYSFRUFCkpKQwZMgSbTa3JRURExPcFlpXQ9/1XATAsFnb/6BeMse4wOZW0tE5Tr6A06xA4XZz+x/OET5lC8JAhZsfyCioS+pDd+eW8vPkob2/Pp6bO2ehrqT1jmH9tH67uE4uliVZVIl6n3gHv3A0733Bv2wLh1lch7uLHFrFaLcwansiMIV15e3seT204yLHT7mJhdm4p2bk5PBq+h5+k9uCW0UnER6hrgniHgoICNm3aRFBQENOnTycpKYmkpCSzY4mIiIi0mX7vvIRfrbshzYkxUyjv0RdQkdDXBMSFEzd9CEXv5YDLRf4DC+i58i2sQXrv1hQVCb1cYXkt732Zzzs5+ezMK/vO17/XL475E/swuqfGVBMfVVsGr8+Bwxvd2xYbzH4Ren7vsp7W32Zl9sgkfjg8kXdy8nn248PsK6wA4FSFnSc+3M/fMvczrk8sN45IZNrgLoQE6JIq7U9lZSVbtmzh0KFDxMXFkZKSYnYkERERkTY37rMMwj/fDIAryJ+I4QZX5T4LGlLIJ3WadgUVh+uo3bULx+HDFP3tv4m//zdmx2r39I7WC50sqyFzzyne/+okWYdO4/rW+MNhgX7cOCKR267qQd/4cHNCirSFvGx4cx6cOere9guCm/4BA6a32Cn8bFZuSunGjSMS2Xy4hJc2HWXd7gJcBriMhnELQwK+YtLAeKYMimdC/zgigvxbLIPIpaqvr2flypVYLBYmTJhA37591ZpcREREOhyL00nIh7s827XX9McICTAxkbQ2i81KwmMZHLnxJoy6OkpefJHwyZMI0QfmF6QioRdw1LvYcaKUjw8Uk7mnkF355ec8bki3SE/Lp7BA/WjFh9XVwKdL4JO/gKvOvS84Gm59Dbpf1SqntFgsjOndiTG9O5FXWsOKz4+zavsJjpe4uytUO5y892U+732Zj7/NwlW9OjG+Xxxje8cyoEs4VqsKM9J2Dh8+TFJSEv7+/kyaNIm4uDgCAvSHsIiIiHRM3T9Zg63Y3SuoPj4Sx5Dunq9lHT59zseMUQtDrxd44k3iZl7JqVXZYBjk/+pOev12JtbrFpodrd1SJakdqnbUs/NEGVuPlLD5yGm2HTtDbZ3rnMd2jwlh1rAEbhieSO+4sDZOKtLGXE74aiVseKSh9SBA4ki4+XmI7tEmMRKjgkmf0o/7Jvfli2NnWJmdx5qdJymrcRcs65yGp4UhQHSIP1f1chcYhydF079LuCY+kVZRXFzMpk2bKCgoYMKECfTr14/ExESzY4mIiIiYJvzEYfqu/qdnu2byYNAH+B1GzORBVHx5nJrDRdQVVXDq7e10uc7sVO2XioQmMgyDkioHB09VsudkOTvyyth5ooxDRZXf6UL8TVcmRjJpYGcmD4xncEKEuo6J76sugR2vw+d/h9MHGvZb/WDcvTBhAdjavnuvxWJhVHIMo5Jj+OMNg/n8SAnrdheyfncheaUNM4ufqa7j/a8KeP+rAgAC/KwM7BrBsG6RDE6MpF98OH06h6kFsFyy2tpatm7dyt69e4mKimL69Ol069bN7FgiIiIipgoqKSLl6T/iZ68FwD4kCWdCtMmppC1ZrFa6zhnHkUffw6hzcmbjXsI3byH0qlSzo7VLl/SOdOnSpfz5z3+moKCAoUOH8uSTTzJ69OjzHv/GG2/w+9//nqNHj9K3b18ef/xxpk9vuTHD2jOXy6C40k5eaQ35pbWcOFPN4aIqDhVVcrCoktLquiafIyEyiKt6deKqXp34Xr84ukRqRh7pAMpPwsEP4cAHsP8DcDoafz35Gpi+GDoPMCfft/jbrIztE8vYPrEs+v4g9hdWsulQMVmHTrP58GnKa+s9xzrqXXx5vJQvj5c2eo6ukUH06RxGn85hJEWHkBgdTLfoYLpFhRAR7KcPBOS8SkpKOHz4MGPHjmXQoEFYrWqpKiIiIh3XVbnPYqmtI+zVTdjKKwGo7xpFzbWDm/0c5+qGrC7I3ikwPoLONwyn8M0vADj54IMkv74Cv9hYk5O1PxddJFyxYgXp6eksW7aM1NRUlixZwrRp09i3bx+dO3f+zvGbNm3i1ltvJSMjg5kzZ7J8+XJmzZpFdnY2V1xxRYu8iLbkchlU1zmpstdTXlPH6SoHJVUO97+VDk5X2Tld5eB0pZ2TZbWcLK3F4Tx3V+Fz8bNa6N8lnCsTIxnRPZoxvTvRLTpYxQHxXc46KDsBpcegcBfkb3cvpw+e+/geV8P437hnL26n/y8sFvf/4/5dwpk3ridOl8Hu/HI+P1rCjhOl7DhRxuHiqu887mRZLSfLaj3dlL8pLNCPxKhg4sID6RQWQKfQQGLDA4gNdW9HhwYQEeRHeJA/4UF+BPvbdN3wccePH+fw4cOMHz+ehIQEfvKTn+DvrwlzRERERHC6CHlnG7Zid4HQGRVC1Y0jwd9mcjAxS/TEgVR8eZzqA4XU5edz7Pbb6fHiiyoUfovFMIwLdGz9rtTUVEaNGsVTTz0FgMvlIikpiXvuuYcHHnjgO8enpaVRVVXF6tWrPfuuuuoqhg0bxrJly5p1zvLyciIjIykrKyMiIuJi4gKwcdtX1NbVU1fvwlHvwuF0Ued04XAa1NU7qXO6qKt3YXe6v17ndGGvd1FT56S6to5qh5Nqh5Mqh5NqRz3f/I5ZuPC370Jv0ePCA+nZKYQenYJJjg1jQJdwesWFEeQZq6yJH02TPzqzH2/muS/w9Xb9fTP7Z3aZ2Z31UF/7jcXunmSk3g6OSqgpgZozUH3GvV6WB+V5YDgvfN6QWBh6Cwy/rd20HLxcZTV17DxRxr7CCg6equBAYSX7CysatTi8HDarhfAgP/cS6E9YoB+B/lYC/WwEfePfIH8bgX4N/wb6WfH3s+JvteJns+Bvs9I1MoiRyTGXlONyr9++pKW+F2VlZWRlZZGbm0tCQgJTp07VpCQiIq1I97IGLfG9eGL9/hZOJfIthsG1z9xNwK48AFzB/lT+ZByu6NDLfmq1JPRudSWVHF28lvoz1QAE9OndYQqFzb1+X1RLQofDwbZt21iwYIFnn9VqZfLkyWRlZZ3zMVlZWaSnpzfaN23aNN5+++3znsdut2O32z3b5eXnns23uYa9O40oS+VlPQfgrvgFXv7TeNQBBWcXEWlgC4QuV0Dva6HPFEhMAZtvjdcXGezP1X1jubpvww3JMAyKKu0cLqoi70wNeaU1nDhTffbfmotqmex0GZRW150d0qCmyeMv5NoBnXn+9ksrEkrLys7OJjs7m9DQUKZMmULPnj3NjiQiIiLSrvRZ86qnQGj4Wan64agWKRCCZkL2dv4xYfS4bxrHnt5M/cmTOA4e4tjc2+nxUscoFDbHRb3rLi4uxul0Eh8f32h/fHw8e/fuPedjCgoKznl8QcH5K2MZGRk89NBDFxPtwtTjTqR9CoqE6GSI6uGembhTX0gYBnEDwa/jtYyyWCx0Dg+ic/i5xx01DIMKez3FFe5hDYor7BSfHd7gTJWDCns9FbX1VNTWUelZd2/XOS+95a+fZn9rN4KCgkhJSeHKK6/Ez8+3CuciIiIil8UwSM5cRZ+1K9ybQPX0YTgTNVGJNAiIC6fHnVdxbMk66kuqcBw6xLGbZ9LjV1Pxm/VHs+OZrl2+w1iwYEGj1ofl5eUkJSVd8vOdTphAaV01VqsFqwWsFot7sX69bnWvY2l0jJ/Ngs1iaXpcrybH/bqcx5t57st9fDvO3mTNoz1nb8c/c6s/+AeBXxD4BYJf8Nl/gyAgBIKjITjm7L/R7mOl2SwWCxFB/kQE+dMr7uIe66h3Ya93Ult37n/t39iuc7qodxnuoRicBknRwa3zguSiDRo0yOwIIiIiIu2Of1UFV7zy38Tv3OrZVztxEHX9u7bJ+dXC0LsExIXT41dTGwqFBWUcW7KOHuPuwS/uIt9o+ZiLKhLGxsZis9koLCxstL+wsJAuXbqc8zFdunS5qOMBAgMDCQxsuX69vf/jlRZ7LhERbxTgZyXAz8p5GimKiIiIiHilqCN7GfrCYoLPFHn21Y7pi32khmWR8wuIC6fHfVM59kRDofDwjTfS5Xe/J3zqlA47CaS16UMaBAQEkJKSQmZmpmefy+UiMzOTMWPGnPMxY8aMaXQ8wPr16897vIiIiIiIiIjIBblcJH+4ktFLHvQUCB2h4Xzxy99Te3U/k8OJNwiIdRcK/WLcY1Y6i4rJu/deTtxzD3XfauzWUVx0d+P09HTmzp3LyJEjGT16NEuWLKGqqop58+YBMGfOHBITE8nIyADg3nvvZfz48fzlL39hxowZvPbaa3zxxRc8++yzLftKRERERERERMTnheUdpf+7/0vc7m2efSW9BvHl7b/GHh1Ln9xsE9M1OFc3ZHVBbl8CYsNJ/q/rKVi+mcqdJwCo/DCTw5u30Pk//5OoH83GYr2o9nVe7aKLhGlpaRQVFbFw4UIKCgoYNmwYa9eu9UxOkpubi/Ub38CxY8eyfPlyfve73/Hggw/St29f3n77ba644oqWexUiIiIiIiIi4rsMg+iDu+j14cpGxUGA2tTeWK/uwfCKlVBhUr5m0viF7Y9/VAjd7pxIxbajFLz+Oc6KWlyVlRT84Q+Uvfcesb/4D0LHjcNis5kdtdVZDMO49Ckv20h5eTmRkZGUlZURERFhdhwREWkmXb8b6HshIuKddP1u0BLfiyfW72/hVOLzXC7id2yh54dvEXXsQOMvhQRSPX0o9T29f7IJFQnbB2eVncK3vqAs61Cj/X5duxJ1441E3fhD/BMTTUp36Zp7/e44bSZFRERERER8yNKlS0lOTiYoKIjU1FS2bt16wePfeOMNBgwYQFBQEFdeeSVr1qxpo6QiFyegvJSErRsY8tJfmfi72xn+j8caFQhdEcFUTxpE+R0TfKJACO4WhudapG3ZQgNJmDOO7v93Mv5x4Z799SdPUrx0KQcnTyH3jv+g7J13cJw4gRe0u7soF93dWERERERERMy1YsUK0tPTWbZsGampqSxZsoRp06axb98+Onfu/J3jN23axK233kpGRgYzZ85k+fLlzJo1i+zsbA0FJaay2WsILcwjtPAE4XlHid2bQ0TekXMe64wLp3Z0b+r6dwVbx2jzpHENzRE6MIHei26g8qsTlH56gMpd+WAYYBhUffIJVZ98AoBfXBzBI0YQMmI4wcOHE9CrN7awUJPTXzp1NxYRkVaj63cDfS9ERLxTe71+p6amMmrUKJ566ikAXC4XSUlJ3HPPPTzwwAPfOT4tLY2qqipWr17t2XfVVVcxbNgwli1b1qxzqruxNIthYKmvx89Ri81Ri19NNQGVZQRUlHn+DawsI7i4gNDCEwSXXri1nOFvo75HLPah3d2tBi2WNnohvkNFxctXd6aK0qxDlH12gLqSqgsea4uKwj8xEf9u3fDvloh/1wRskZHYoiLd/0ZEYI2MxBYaCv7+WNrgd7q512+1JBQREREREfEiDoeDbdu2sWDBAs8+q9XK5MmTycrKOudjsrKySE9Pb7Rv2rRpvP32260ZtZG89F8zLL+0zc4nxndXz7YRsny9w2g4wPJ1+6GzraUsAIYLi2Fgcbnc666vFydWZz0WpxNrfb17vb4Om8OOzVGL1eW6rOT18ZHUJ8dS1zMOZ0J0h2k12FrUGvHy+UeHEjd9CLHXXUn1wUKq9xdSc/gUNUeKcdXWNTrWWVqKs7SU2l27mn5iqxVLYCDWwEAsQUFYAwPB3w+Ln797ohQ/m2c9dMxVxN55Zyu9QjevKBJ+3dixvLzc5CQiInIxvr5ue0Gj9Vane5mIiHdqj/ey4uJinE4n8fHxjfbHx8ezd+/ecz6moKDgnMcXFBSc9zx2ux273e7ZLisrAy79XnZy7VrC6uqaPlC8igE4z67XX+RjXUH+uGJCcUaH4YoOwRkdiqtLFEZIQMNBDv3OtIYPd+W3+TlHJ8e0+TlbRWIUgYlRBE7sT6TLhb2gjOojRdhzS6g7XUVdSRX1pdWeovwFOZ1QVweVlU0eGh4RQcAlXn+bey/ziiJhRYV7DvOkpCSTk4iIyKWoqKggMjLS7Bim0r1MRMS7dcR7WUZGBg899NB39uteJiJigoMHYOlTl/UUTd3LvKJImJCQwPHjxwkPD2+TvtoXq7y8nKSkJI4fP96uxilpLuU3l/Kby5vze0N2wzCoqKggISHB7Cim072sdSm/uZTfXN6c3xuyt8d7WWxsLDabjcLCwkb7CwsL6dKlyzkf06VLl4s6HmDBggWNuii7XC5KSkro1KnTJd3LvOHnfTn0+rybXp/38uXXBi3z+pp7L/OKIqHVaqVbt25mx2hSRESEV/9CKr+5lN9c3py/vWfvaK0uzkf3srah/OZSfnN5c/72nr293csCAgJISUkhMzOTWbNmAe4CXmZmJvPnzz/nY8aMGUNmZia/+tWvPPvWr1/PmDFjznuewMBAAgMDG+2Lioq63Pjt/ud9ufT6vJten/fy5dcGl//6mnMv84oioYiIiIiIiDRIT09n7ty5jBw5ktGjR7NkyRKqqqqYN28eAHPmzCExMZGMjAwA7r33XsaPH89f/vIXZsyYwWuvvcYXX3zBs88+a+bLEBGRdkRFQhERERERES+TlpZGUVERCxcupKCggGHDhrF27VrP5CS5ublYrQ0zwo4dO5bly5fzu9/9jgcffJC+ffvy9ttvc8UVV5j1EkREpJ1RkbAFBAYGsmjRou80xfcWym8u5TeXN+f35uzS/nj775Pym0v5zeXN+b05e3swf/7883Yv3rhx43f2zZ49m9mzZ7dyqvPz9Z+3Xp930+vzXr782qBtX5/FaGr+YxEREREREREREfFp1qYPEREREREREREREV+mIqGIiIiIiIiIiEgHpyKhiIiIiIiIiIhIB6ciYSv4wQ9+QPfu3QkKCqJr167cdttt5Ofnmx2rSUePHuXnP/85PXv2JDg4mN69e7No0SIcDofZ0Zrt0UcfZezYsYSEhBAVFWV2nCYtXbqU5ORkgoKCSE1NZevWrWZHaraPP/6Y73//+yQkJGCxWHj77bfNjtRsGRkZjBo1ivDwcDp37sysWbPYt2+f2bGa7emnn2bIkCFEREQQERHBmDFjeP/9982OJT5G9zLz6F7WdnQvM4/uZQLed71rijdfDy/Em6+VTfH2a2lTOtq19rHHHsNisfCrX/3K7Cgt4g9/+AMWi6XRMmDAgFY9p4qErWDixIm8/vrr7Nu3j7feeotDhw5x8803mx2rSXv37sXlcvHMM8+wa9cunnjiCZYtW8aDDz5odrRmczgczJ49mzvvvNPsKE1asWIF6enpLFq0iOzsbIYOHcq0adM4deqU2dGapaqqiqFDh7J06VKzo1y0f//739x9991s3ryZ9evXU1dXx9SpU6mqqjI7WrN069aNxx57jG3btvHFF19w7bXXcsMNN7Br1y6zo4kP0b3MPLqXtR3dy8yje5mAd13vmuLt18ML8eZrZVO8/VralI50rf3888955plnGDJkiNlRWtTgwYM5efKkZ/n0009b94SGtLp33nnHsFgshsPhMDvKRfvTn/5k9OzZ0+wYF+2FF14wIiMjzY5xQaNHjzbuvvtuz7bT6TQSEhKMjIwME1NdGsBYtWqV2TEu2alTpwzA+Pe//212lEsWHR1t/P3vfzc7hvgw3cvanu5lbUv3MvPpXtZxecP1rim+dD28EG+/VjbFF66lTfHFa21FRYXRt29fY/369cb48eONe++91+xILWLRokXG0KFD2/ScaknYykpKSnjllVcYO3Ys/v7+Zse5aGVlZcTExJgdw+c4HA62bdvG5MmTPfusViuTJ08mKyvLxGQdU1lZGYBX/q47nU5ee+01qqqqGDNmjNlxxEfpXibnontZ+6J7mYh5dD30Hd58LW2KL19r7777bmbMmNHo/6CvOHDgAAkJCfTq1Yuf/OQn5Obmtur5VCRsJffffz+hoaF06tSJ3Nxc3nnnHbMjXbSDBw/y5JNP8otf/MLsKD6nuLgYp9NJfHx8o/3x8fEUFBSYlKpjcrlc/OpXv2LcuHFcccUVZsdptp07dxIWFkZgYCC//OUvWbVqFYMGDTI7lvgY3cvkQnQvaz90LxMxl66HvsFbr6VN8fVr7WuvvUZ2djYZGRlmR2lxqampvPjii6xdu5ann36aI0eOcM0111BRUdFq51SRsJkeeOCB7wwY+e1l7969nuP/67/+i+3bt7Nu3TpsNhtz5szBMAyvyA6Ql5fHddddx+zZs7njjjtMyf21S8kv0lx33303X331Fa+99prZUS5K//79ycnJYcuWLdx5553MnTuX3bt3mx1L2jndy8yje5m0Jt3LpD3R9U68lbdeS5viy9fa48ePc++99/LKK68QFBRkdpwWd/311zN79myGDBnCtGnTWLNmDaWlpbz++uutdk6/VntmH/PrX/+a22+//YLH9OrVy7MeGxtLbGws/fr1Y+DAgSQlJbF582ZTmvVebPb8/HwmTpzI2LFjefbZZ1s5XdMuNr83iI2NxWazUVhY2Gh/YWEhXbp0MSlVxzN//nxWr17Nxx9/TLdu3cyOc1ECAgLo06cPACkpKXz++ef87W9/45lnnjE5mbRnupeZR/cyaS26l0l744vXu6boeuj9vPla2hRfvtZu27aNU6dOMWLECM8+p9PJxx9/zFNPPYXdbsdms5mYsGVFRUXRr18/Dh482GrnUJGwmeLi4oiLi7ukx7pcLgDsdntLRmq2i8mel5fHxIkTSUlJ4YUXXsBqNb+x6eV879urgIAAUlJSyMzMZNasWYD79yQzM5P58+ebG64DMAyDe+65h1WrVrFx40Z69uxpdqTL5nK5TLvGiPfQvcw8updJS9O9TNorX7zeNUXXQ+/li9fSpvjStXbSpEns3Lmz0b558+YxYMAA7r//fp8qEAJUVlZy6NAhbrvttlY7h4qELWzLli18/vnnXH311URHR3Po0CF+//vf07t373Y/OGheXh4TJkygR48eLF68mKKiIs/XvOUTsNzcXEpKSsjNzcXpdJKTkwNAnz59CAsLMzfct6SnpzN37lxGjhzJ6NGjWbJkCVVVVcybN8/saM1SWVnZ6BOMI0eOkJOTQ0xMDN27dzcxWdPuvvtuli9fzjvvvEN4eLhnrJjIyEiCg4NNTte0BQsWcP3119O9e3cqKipYvnw5Gzdu5IMPPjA7mvgI3cvMpXtZ29G9zDy6lwl41/WuKd5+PbwQb75WNsXbr6VN8fVrbXh4+HfGj/x6PG1fGFfyP//zP/n+979Pjx49yM/PZ9GiRdhsNm699dbWO2mbzqXcAezYscOYOHGiERMTYwQGBhrJycnGL3/5S+PEiRNmR2vSCy+8YADnXLzF3Llzz5l/w4YNZkc7pyeffNLo3r27ERAQYIwePdrYvHmz2ZGabcOGDef8Xs+dO9fsaE063+/5Cy+8YHa0ZvnZz35m9OjRwwgICDDi4uKMSZMmGevWrTM7lvgQ3cvMpXtZ29G9zDy6l4lheN/1rinefD28EG++VjbF26+lTemI19rx48cb9957r9kxWkRaWprRtWtXIyAgwEhMTDTS0tKMgwcPtuo5LYZh0gjkIiIiIiIiIiIi0i6YP0iPiIiIiIiIiIiImEpFQhERERERERERkQ5ORUIREREREREREZEOTkVCERERERERERGRDk5FQhERERERERERkQ5ORUIREREREREREZEOTkVCERERERERERGRDk5FQhERERERERERkQ5ORUIREREREREREZEOTkVCERERERERERGRDk5FQhERERERERERkQ5ORUIRk7z66qsEBwdz8uRJz7558+YxZMgQysrKTEwmIiLSPLqXiYiIN9N9TKQxi2EYhtkhRDoiwzAYNmwY3/ve93jyySdZtGgRzz//PJs3byYxMdHseCIiIk3SvUxERLyZ7mMijfmZHUCko7JYLDz66KPcfPPNdOnShSeffJJPPvlENyMREfEaupeJiIg3031MpDG1JBQx2YgRI9i1axfr1q1j/PjxZscRERG5aLqXiYiIN9N9TMRNYxKKmGjt2rXs3bsXp9NJfHy82XFEREQumu5lIiLizXQfE2mgloQiJsnOzmbChAk888wzvPjii0RERPDGG2+YHUtERKTZdC8TERFvpvuYSGMak1DEBEePHmXGjBk8+OCD3HrrrfTq1YsxY8aQnZ3NiBEjzI4nIiLSJN3LRETEm+k+JvJdakko0sZKSkoYO3YsEyZMYNmyZZ79M2bMwOl0snbtWhPTiYiINE33MhER8Wa6j4mcm4qEIiIiIiIiIiIiHZwmLhEREREREREREengVCQUERERERERERHp4FQkFBERERERERER6eBUJBQREREREREREengVCQUERERERERERHp4FQkFBERERERERER6eBUJBQREREREREREengVCQUERERERERERHp4FQkFBERERERERER6eBUJBQREREREREREengVCQUERERERERERHp4FQkFBERERERERER6eD+P2wub8jwum6oAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# @title\n", "from scipy.stats import norm\n", "\n", "mu_mean, mu_std = 0.0, 1.0\n", "nu_mean, nu_std = 3.0, 0.5\n", "\n", "# Mapa monótono: T(x) = F_nu^{-1}(F_mu(x))\n", "def T_mon(x):\n", " return norm.ppf(norm.cdf(x, mu_mean, mu_std), nu_mean, nu_std)\n", "\n", "x = np.linspace(-3.5, 3.5, 500)\n", "\n", "fig, axs = plt.subplots(1, 3, figsize=(13, 3.5))\n", "\n", "# Densidades\n", "axs[0].plot(x, norm.pdf(x, mu_mean, mu_std), lw=2, label=r\"$\\mu = N(0,1)$\")\n", "axs[0].plot(x, norm.pdf(x, nu_mean, nu_std), lw=2, label=r\"$\\nu = N(3, 0.5^2)$\")\n", "axs[0].set_title(\"Densidades\")\n", "axs[0].legend(fontsize=8)\n", "axs[0].set_xlabel(\"$x$\")\n", "\n", "# Mapa monótono\n", "axs[1].plot(x, T_mon(x), lw=2, color=\"tab:green\")\n", "axs[1].plot(x, x, \"k--\", alpha=0.4, lw=1)\n", "axs[1].set_title(r\"Mapa monótono $T_{mon}(x)$\")\n", "axs[1].set_xlabel(\"$x$\")\n", "axs[1].set_ylabel(\"$T(x)$\")\n", "\n", "# Verificación: imagen de mu bajo T debe ser nu\n", "samples_mu = np.random.normal(mu_mean, mu_std, 50000)\n", "samples_T = T_mon(samples_mu)\n", "\n", "bins = np.linspace(-1, 5, 60)\n", "axs[2].hist(samples_mu, bins=bins, density=True, alpha=0.5, label=r\"muestras de $\\mu$\")\n", "axs[2].hist(samples_T, bins=bins, density=True, alpha=0.5, label=r\"$T_{mon}(\\mu)$\")\n", "axs[2].plot(bins, norm.pdf(bins, nu_mean, nu_std), lw=2, color=\"tab:red\",\n", " label=r\"densidad de $\\nu$\")\n", "axs[2].set_title(r\"Verificación: $T_{mon\\#}\\mu = \\nu$\")\n", "axs[2].legend(fontsize=7)\n", "axs[2].set_xlabel(\"$x$\")\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_12" }, "source": [ "## 3. Optimalidad del mapa monótono\n", "\n", "El plan comonótono $\\gamma_{\\mathrm{mon}} = (\\mathrm{id}, T_{\\mathrm{mon}})_{\\#} \\mu$ es óptimo para el costo cuadrático, y más en general para cualquier costo de la forma $h(y-x)$ con $h$ convexa; si $h$ es estrictamente convexa es además el **único** plan óptimo (Teorema 8.4.1).\n", "\n", "Para verificarlo numéricamente, discretizamos $\\mu$ y $\\nu$ en medidas empíricas con $n$ puntos, calculamos el plan óptimo mediante `ot.emd`, y comparamos su costo con el del plan inducido por el mapa monótono y con el de planes generados aleatoriamente." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 428 }, "executionInfo": { "elapsed": 648, "status": "ok", "timestamp": 1788527850657, "user": { "displayName": "Julian Fernandez Bonder", "userId": "01548826079249958852" }, "user_tz": 180 }, "id": "cell_13", "outputId": "b64d433b-c1f7-45be-eeff-05ec40b6fd09" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Costo plan monótono: 9.705167\n", "Costo plan óptimo: 9.705167\n", "Costo promedio aleatorio: 10.616252\n", "Costo mínimo aleatorio: 10.461813\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArAAAAFUCAYAAADceQ+/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAASHZJREFUeJzt3XlcVNX/P/DXsA2LgIrKkiigiLKDCIGaG0nuZpkWueeSmJpFZX40l4osKz64oaViKmmamh/XcM1dEFHLDRWRVHABhk2WgfP7w5/zbWS3GcYrr+fjwePjnHvuPe87F/u8PHPmXpkQQoCIiIiISCL0dF0AEREREVFtMMASERERkaQwwBIRERGRpDDAEhEREZGkMMASERERkaQwwBIRERGRpDDAEhEREZGkMMASERERkaQwwBIRERGRpDDAEhE9I1auXIlly5bpugwiomceAywRUR3o2rUrunbtWun2jRs3YsqUKejQoUOd1BMTEwOZTIYbN27UyXhERJrEAEtElbp27RrGjx8PJycnGBsbw8LCAh07dsR///tfPHz4UNflPTeSk5MxYcIE/PLLL/D19dV1OZJw4cIFzJ49mwGcqJ4y0HUBRPRs2rFjBwYPHgy5XI7hw4fD3d0dxcXFOHLkCMLDw/HXX39h+fLlui5TMn7//fdKt509exarVq1Cr1696rAiabtw4QLmzJmDrl27wsHBQdflEFEdY4AlonJSUlIwdOhQtGzZEvv374etra1qW1hYGK5evYodO3bosELtKSsrQ3FxMYyNjTV6XCMjo0q3vf766xodi4joecclBERUztdff428vDysWLFCLbw+1rp1a0yZMkX1WqlUYt68eWjVqhXkcjkcHBzw6aefoqioSG0/BwcH9O3bFwcPHoSfnx9MTEzg4eGBgwcPAgA2b94MDw8PGBsbo3379jhz5oza/iNHjkSDBg1w/fp1hISEwMzMDHZ2dpg7dy6EEGp9FyxYgKCgIFhZWcHExATt27fHpk2byp2LTCbDpEmTsG7dOri5uUEul2P37t21OgYArF27Fv7+/jA1NUWjRo3w0ksvqc26VrQG9u7duxgzZgysra1hbGwMLy8vrF69Wq3PjRs3IJPJsGDBAixfvlz1Hnfo0AHx8fEV1vKkv/76C927d4eJiQmaN2+Ozz//HGVlZRX23bVrFzp37gwzMzOYm5ujT58++Ouvv2o0TnZ2Nt5//304ODhALpejefPmGD58OO7fv1+rcwaA9evXo3379jA3N4eFhQU8PDzw3//+F8Cj9buDBw8GAHTr1g0ymQwymUz1ewQAS5YsUV1POzs7hIWFITs7W22M5ORkvPbaa7CxsYGxsTGaN2+OoUOHQqFQ1Oh8iUh3ZOLJ/+oTUb3XvHlzyOVyXLt2rUb9R44cidWrV+P1119Ht27dcPLkSfz0008YOHAgtmzZourn4OAAY2Nj5OTkYPz48bC0tMSCBQugUCgQHR2NTz/9FBMnTgQAREREoGnTprh8+TL09PRU42zYsAH29vZ48cUXERAQgN27d2P79u2YOXMm5s6dqxrL3t4e/fv3h6urK4qLi7F+/XqcOnUK27dvR58+fVT9ZDIZ2rVrh/v372PSpElo0qQJgoKC4O3tXeNjzJkzB7Nnz0ZQUBBeffVVGBkZ4eTJk7C3t8dXX30FAKrw+jhkPXz4EO3bt8fVq1cxadIkODo6YuPGjTh8+DAiIyNV/0C4ceMGHB0d4ePjg9zcXIwdOxYymQxff/01jI2Ncf36dRgaGlZ6bdLT0+Hp6QmlUokpU6bAzMwMy5cvh4mJCc6dO4eUlBTVR/Br1qzBiBEjEBISgj59+qCgoABLly5FdnY2zpw5U+VH9Xl5eQgMDMTFixcxevRo+Pr64v79+9i2bRuWL18Ob2/vGp9zXFwcevbsiR49emDQoEEAgIsXLyIjIwO//PILrl+/jv/+97+IiorCp59+inbt2gEAXn75ZVhbW2P27NmYM2cOgoODMWDAAFy+fBlLly6Fr68vjh49CkNDQxQXF6Nt27YoKirCxIkTYWNjg1u3bmH79u3YuHEjWrZsWem5EtEzQBAR/YNCoRAAxIABA2rUPykpSQAQ77zzjlr7hx9+KACI/fv3q9patmwpAIhjx46p2vbs2SMACBMTE5GamqpqX7ZsmQAgDhw4oGobMWKEACDee+89VVtZWZno06ePMDIyEvfu3VO1FxQUqNVTXFws3N3dRffu3dXaAQg9PT3x119/lTu3mhwjOTlZ6OnpiVdffVWUlpaq9S8rK1P9uUuXLqJLly6q15GRkQKAWLt2rdrxAwMDRYMGDUROTo4QQoiUlBQBQFhZWYnMzExV399++00AEP/73//K1f1PU6dOFQDEyZMnVW13794VlpaWAoBISUkRQgiRm5srGjZsKMaOHau2f3p6urC0tCzX/qRZs2YJAGLz5s3ltj1+H2p6zlOmTBEWFhZCqVRWOt7GjRvL/X48PjcjIyPRs2dPteuxaNEiAUCsXLlSCCHEmTNnBACxcePGKs+LiJ5NXEJARGpycnIAAObm5jXqv3PnTgDAtGnT1No/+OADACi3VtbV1RWBgYGq1wEBAQCA7t27o0WLFuXar1+/Xm7MSZMmqf78eAlAcXEx9u7dq2o3MTFR/TkrKwsKhQKdO3dGYmJiueN16dIFrq6u5dprcoytW7eirKwMs2bNUs0U/7O2yuzcuRM2NjZ48803VW2GhoaYPHky8vLycOjQIbX+Q4YMQaNGjVSvO3fuDKDi9+fJcV588UX4+/ur2po2bYrQ0FC1fnFxccjOzsabb76J+/fvq3709fUREBCAAwcOVDnOr7/+Ci8vL7z66qvltj1+H2p6zg0bNkR+fj7i4uKqHLMie/fuRXFxMaZOnap2PcaOHQsLCwvV76OlpSUAYM+ePSgoKKj1OESkWwywRKTGwsICAJCbm1uj/qmpqdDT00Pr1q3V2m1sbNCwYUOkpqaqtf8zpAL/FyTs7e0rbM/KylJr19PTg5OTk1pbmzZtAEDtlkrbt2/Hiy++CGNjYzRu3BhNmzbF0qVLK1zf6OjoWOG51eQY165dg56eXoUBuCqpqalwdnYuF3offxxe3fv2OMw++f5UNs6TXFxc1F4nJycDePQPiaZNm6r9/P7777h7926V41y7dg3u7u41qqW6c544cSLatGmDXr16oXnz5hg9erRqXXJ1Hh/jyfMzMjKCk5OTarujoyOmTZuGH3/8EU2aNEFISAgWL17M9a9EEsG7EBCRGgsLC9jZ2eHPP/+s1X5VzTb+k76+fq3axVMs0z98+DD69++Pl156CUuWLIGtrS0MDQ2xatUqxMbGluv/z5nWpz2Gtmny/anI4y91rVmzBjY2NuW2GxjU3f9dNGvWDElJSdizZw927dqFXbt2YdWqVRg+fHiFX/h6Wt9++y1GjhyJ3377Db///jsmT56MiIgInDhxAs2bN9fYOESkeQywRFRO3759sXz5chw/flzt4/6KtGzZEmVlZUhOTlbNpAFARkYGsrOzNf5lmLKyMly/fl016woAV65cAQDVl4x+/fVXGBsbY8+ePZDL5ap+q1atqvE4NT1Gq1atUFZWhgsXLsDb27vGx2/ZsiXOnTuHsrIytRnJS5cuqbZrQsuWLVWzq/90+fJltdetWrUC8Cg8BgcH13qcVq1aVfuPntqcs5GREfr164d+/fqhrKwMEydOxLJlyzBz5ky0bt260n8wPT7G5cuX1Wbqi4uLkZKSUu7cPDw84OHhgf/85z84duwYOnbsiOjoaHz++ee1ewOIqE5xCQERlfPRRx/BzMwM77zzDjIyMsptv3btmuqWRr179wYAREZGqvX57rvvAEDt2/qasmjRItWfhRBYtGgRDA0N0aNHDwCPZitlMhlKS0tV/W7cuIGtW7fWeIyaHmPgwIHQ09PD3Llzy92aqqrZ0d69eyM9PR0bNmxQtSmVSixcuBANGjRAly5dalxrVXr37o0TJ07g1KlTqrZ79+5h3bp1av1CQkJgYWGBL7/8EiUlJeWOc+/evSrHee2113D27Fm1u0489vh9qOk5P3jwQG1/PT09eHp6AoDq1mxmZmYAUO7WWMHBwTAyMkJUVJTa+79ixQooFArV72NOTg6USqXavh4eHtDT0yt3+zcievZwBpaIymnVqhViY2MxZMgQtGvXTu1JXMeOHcPGjRsxcuRIAICXlxdGjBiB5cuXIzs7G126dMGpU6ewevVqDBw4EN26ddNobcbGxti9ezdGjBiBgIAA7Nq1Czt27MCnn36Kpk2bAngUmr/77ju88soreOutt3D37l0sXrwYrVu3xrlz52o0Tk2P0bp1a8yYMQPz5s1D586dMWjQIMjlcsTHx8POzg4REREVHn/cuHFYtmwZRo4cidOnT8PBwQGbNm3C0aNHERkZWeMv0VXno48+wpo1a/DKK6+o3Ubr8WzoYxYWFli6dCmGDRsGX19fDB06FE2bNsXNmzexY8cOdOzYUe0fDk8KDw/Hpk2bMHjwYIwePRrt27dHZmYmtm3bhujoaHh5edX4nN955x1kZmaie/fuaN68OVJTU7Fw4UJ4e3urZvm9vb2hr6+P+fPnQ6FQQC6Xo3v37mjWrBmmT5+OOXPm4JVXXkH//v1x+fJlLFmyBB06dMDbb78NANi/fz8mTZqEwYMHo02bNlAqlVizZg309fXx2muvaeS9JyIt0uUtEIjo2XblyhUxduxY4eDgIIyMjIS5ubno2LGjWLhwoSgsLFT1KykpEXPmzBGOjo7C0NBQ2Nvbi+nTp6v1EeLRbbT69OlTbhwAIiwsTK3t8e2jvvnmG1XbiBEjhJmZmbh27Zro2bOnMDU1FdbW1uKzzz4rdwurFStWCGdnZyGXy0Xbtm3FqlWrxGeffSae/M9eRWPX9hhCCLFy5Urh4+Mj5HK5aNSokejSpYuIi4tTbX/yNlpCCJGRkSFGjRolmjRpIoyMjISHh4dYtWpVte/DP2v/7LPPKqz9n86dOye6dOkijI2NxQsvvCDmzZsnVqxYoXYbrccOHDggQkJChKWlpTA2NhatWrUSI0eOFAkJCdWO8+DBAzFp0iTxwgsvCCMjI9G8eXMxYsQIcf/+/Vqd86ZNm0TPnj1Fs2bNhJGRkWjRooUYP368uHPnjlq/H374QTg5OQl9ff1yt9RatGiRaNu2rTA0NBTW1tbi3XffFVlZWart169fF6NHjxatWrUSxsbGonHjxqJbt25i79691Z4nEekeH2RARJIxcuRIbNq0CXl5ebouhYiIdIhrYImIiIhIUhhgiYiIiEhSah1g//jjD/Tr1w92dnaQyWRq38gtKSnBxx9/DA8PD5iZmcHOzg7Dhw/H7du3NVkzEREREdVjtQ6w+fn58PLywuLFi8ttKygoQGJiImbOnInExERs3rwZly9fRv/+/TVSLBHVbzExMVz/SkRE+Fdf4pLJZNiyZQsGDhxYaZ/4+Hj4+/sjNTW13KMQiYiIiIhqS+trYBUKBWQyGRo2bKjtoYiIiIioHtDqgwwKCwvx8ccf480334SFhUWFfYqKitSeelJWVobMzExYWVnV+NnqRERERCR9Qgjk5ubCzs5O7ZHTT9JagC0pKcEbb7wBIQSWLl1aab+IiAjMmTNHW2UQERERkcSkpaWhefPmlW7XyhrYx+H1+vXr2L9/P6ysrCo9xpMzsAqFAi1atEBaWlqls7aa1uuHIGSZlaFRvh52jT1WJ2MSERERkbqcnBzY29sjOzsblpaWlfbT+Azs4/CanJyMAwcOVBleAUAul0Mul5drt7CwqLMAa2CiD30TGQzK9OpsTCIiIiKqWHXLSGsdYPPy8nD16lXV65SUFCQlJaFx48awtbXF66+/jsTERGzfvh2lpaVIT08HADRu3BhGRka1HY6IiIiISE2tlxAcPHgQ3bp1K9c+YsQIzJ49G46OjhXud+DAAXTt2rXa4+fk5MDS0hIKhaLOZkN3D+qEIsUDyC2t8MrmI3UyJhERERGpq2kOrPUMbNeuXVFV5v0XS2p1ptUDAygzAAOlVm/KQEREREQaoPX7wBIRERERaRIDLBERERFJCj8zB5BgX4yHjWQwaVAMZ10XQ0RERERVYoAFEB2Uj0wzfTTOz8ebui6GiIiIiKrEJQREREREJCkMsEREREQkKVxCQERERJI3Jia+XNuKkR10UAnVBc7AEhEREZGkMMASERERkaQwwBIRERGRpDDAEhEREZGkMMASERERkaQwwAIwKQFMigRMSnRdCRERERFVh7fRArBwcyMoMzJgYN0EmKLraoiIiIioKpyBJSIiIiJJYYAlIiIiIklhgCUiIiIiSeEaWACrO+Qjt1QP5vr5+FzXxRARERFRlRhgARx2KkammR4a5xfruhQiIiIiqgaXEBARERGRpDDAEhEREZGkMMASERERkaQwwBIRERGRpDDAEhEREZGkMMASERERkaQwwBIRERGRpDDAEhEREZGk8EEGANqnGSJXPIS5TK7rUoiIiIioGgywAN491gDKjHwYWDfQdSlEREREVA0uISAiIiIiSWGAJSIiIiJJYYAlIiIiIkmpdYD9448/0K9fP9jZ2UEmk2Hr1q1q24UQmDVrFmxtbWFiYoLg4GAkJydrql6tCO+fjQlh+gjvn63rUoiIiIioGrUOsPn5+fDy8sLixYsr3P71118jKioK0dHROHnyJMzMzBASEoLCwsJ/Xay2ZJkIZFrIkGUidF0KEREREVWj1nch6NWrF3r16lXhNiEEIiMj8Z///AcDBgwAAPz000+wtrbG1q1bMXTo0H9XLRERERHVexpdA5uSkoL09HQEBwer2iwtLREQEIDjx49XuE9RURFycnLUfoiIiIiIKqPRAJueng4AsLa2Vmu3trZWbXtSREQELC0tVT/29vaaLImIiIiInjM6vwvB9OnToVAoVD9paWm6LomIiIiInmEaDbA2NjYAgIyMDLX2jIwM1bYnyeVyWFhYqP0QEREREVVGowHW0dERNjY22Ldvn6otJycHJ0+eRGBgoCaHIiIiIqJ6qtZ3IcjLy8PVq1dVr1NSUpCUlITGjRujRYsWmDp1Kj7//HM4OzvD0dERM2fOhJ2dHQYOHKjJuomIiIionqp1gE1ISEC3bt1Ur6dNmwYAGDFiBGJiYvDRRx8hPz8f48aNQ3Z2Njp16oTdu3fD2NhYc1UTERERUb1V6wDbtWtXCFH5Df9lMhnmzp2LuXPn/qvC6tLweFM8LFDAxLSBrkshIiIiomrUOsA+j166LocyQ8DAWq7rUoiIiIioGjq/jRYRERERUW0wwBIRERGRpHAJAYBbFqUoLgWMLErhrOtiiIiIiKhKDLAAPuuVg0wzAzTOz8EhXRdDRERERFXiEgIiIiIikhQGWCIiIiKSFAZYIiIiIpIUBlgiIiIikhQGWCIiIiKSFAZYIiIiIpIUBlgiIiIikhQGWCIiIiKSFD7IgIiIiJ5LY2LiK2xfMbJDHVdCmsYAC+DrbZYoeXAPhlZNgYm6roaIiIiIqsIAC6DxQz0ocwEDU66oICIiInrWMbERERERkaQwwBIRERGRpHAJAYDfXQpR0EIGU5NCOOu6GCIiIiKqEgMsgF+8HyLTTB+N8x8iTNfFEBEREVGVuISAiIiIiCSFAZaIiIiIJIUBloiIiIgkhQGWiIiIiCSFAZaIiIiIJIUBloiIiIgkhQGWiIiIiCSFAZaIiIiIJIUPMgBgp9CDaUEpGpYwzxMRERE96xhgAczdbQllRgYMrJsA03VdDRERERFVhVOORERERCQpGg+wpaWlmDlzJhwdHWFiYoJWrVph3rx5EEJoeigiIiIiqoc0voRg/vz5WLp0KVavXg03NzckJCRg1KhRsLS0xOTJkzU9HBERERHVMxoPsMeOHcOAAQPQp08fAICDgwN+/vlnnDp1StNDacz3XXKRI9ODhcjFEl0XQ0RE9JwaExNfYfuKkR3quBKSOo0vIQgKCsK+fftw5coVAMDZs2dx5MgR9OrVS9NDacxfNkqcddLDXzZKXZdCRERERNXQ+AzsJ598gpycHLRt2xb6+vooLS3FF198gdDQ0Ar7FxUVoaioSPU6JydH0yURERER0XNE4zOwv/zyC9atW4fY2FgkJiZi9erVWLBgAVavXl1h/4iICFhaWqp+7O3tNV0SERERET1HNB5gw8PD8cknn2Do0KHw8PDAsGHD8P777yMiIqLC/tOnT4dCoVD9pKWlabokIiIiInqOaHwJQUFBAfT01HOxvr4+ysrKKuwvl8shl8s1XQYRERERPac0HmD79euHL774Ai1atICbmxvOnDmD7777DqNHj9b0UERERERUD2k8wC5cuBAzZ87ExIkTcffuXdjZ2WH8+PGYNWuWpociIiIionpI4wHW3NwckZGRiIyM1PShiYiIiIg0/yUuIiIiIiJt0vgMrBS9fFmOPGU+GhiY6LoUIiIiIqoGAyyAIUmmUGbkwsDaVNelEBEREVE1uISAiIiIiCSFAZaIiIiIJIUBloiIiIgkhWtgAbwzJAuZZgZonJ+FQ7ouhoiIiIiqxBlYIiIiIpIUBlgiIiIikhQGWCIiIiKSFAZYIiIiIpIUBlgiIiIikhQGWCIiIiKSFAZYIiIiIpIUBlgiIiIikhQGWCIiIiKSFD6JC8DUQw1QmJMFYwsLYKKuqyEiIiKiqjDAAnBPN4QyQ8DA2lDXpRARERFRNbiEgIiIiIgkhQGWiIiIiCSFSwgA/GlTgkJTGYwtSuCs62KIiIiIqEoMsAAiu+Qh00wfjfPz8KquiyEiIiKiKjHAEhEREQEYExNfYfuKkR3quBKqDtfAEhEREZGkMMASERERkaQwwBIRERGRpDDAEhEREZGkMMASERERkaQwwBIRERGRpDDAEhEREZGkMMASERERkaRoJcDeunULb7/9NqysrGBiYgIPDw8kJCRoYyiN+HFDI/wSocSPGxrpuhQiIiIiqobGn8SVlZWFjh07olu3bti1axeaNm2K5ORkNGrEcEhERERE/57GA+z8+fNhb2+PVatWqdocHR01PQwRERER1VMaX0Kwbds2+Pn5YfDgwWjWrBl8fHzwww8/aHoYIiIiIqqnNB5gr1+/jqVLl8LZ2Rl79uzBu+++i8mTJ2P16tUV9i8qKkJOTo7aT13b4F2A1T30sMG7oM7HJiIiIqLa0fgSgrKyMvj5+eHLL78EAPj4+ODPP/9EdHQ0RowYUa5/REQE5syZo+kyaiXOpQiZZnponF+E/+i0EiIiIiKqjsZnYG1tbeHq6qrW1q5dO9y8ebPC/tOnT4dCoVD9pKWlabokIiIiInqOaHwGtmPHjrh8+bJa25UrV9CyZcsK+8vlcsjlck2XQURERETPKY3PwL7//vs4ceIEvvzyS1y9ehWxsbFYvnw5wsLCND0UEREREdVDGg+wHTp0wJYtW/Dzzz/D3d0d8+bNQ2RkJEJDQzU9FBERERHVQxpfQgAAffv2Rd++fbVxaCIiIiKq57QSYImIiOj5MiYmvlzbipEddFAJkRaWEBARERERaRMDLBERERFJCpcQAHBLN0COrBAWwkjXpRARERFRNRhgAbx/yBzKjAIYWJvruhQiIiIiqgaXEBARERGRpDDAEhEREZGkMMASERERkaRwDSyAWa8okG2oj4YlCvys62KIiIiIqEoMsABuW5Yh00yGgvwyXZdCRERERNXgEgIiIiIikhQGWCIiIiKSFAZYIiIiIpIUBlgiIiIikhQGWCIiIiKSFAZYIiIiIpIUBlgiIiIikhQGWCIiIiKSFD7IAMAbSSYoeJgDUxMzXZdCRERERNVggAXQ87IxlBkKGFgb67oUIiIiIqoGAywRERE9c8bExEvy2FQ3uAaWiIiIiCSFM7AAMk3KUGIOGJqU6boUIiIiIqoGAyyAj/orkGlmgMb5ChzSdTFEREREVCUuISAiIiIiSWGAJSIiIiJJYYAlIiIiIklhgCUiIiIiSWGAJSIiIiJJYYAlIiIiIknhbbSIiIhIp571J2PVpr4VIztosRJ6jDOwRERERCQpWg+wX331FWQyGaZOnartoYiIiIioHtDqEoL4+HgsW7YMnp6e2hzmX5uzywLFWfdh1KgJMFHX1RARERFRVbQ2A5uXl4fQ0FD88MMPaNSokbaG0YgXcvRhf//R/xIRERHRs01rATYsLAx9+vRBcHBwlf2KioqQk5Oj9kNEREREVBmtLCFYv349EhMTER9f/bf2IiIiMGfOHG2UQURERETPIY3PwKalpWHKlClYt24djI2Nq+0/ffp0KBQK1U9aWpqmS6rWH05F2Oclwx9ORXU+NhERERHVjsZnYE+fPo27d+/C19dX1VZaWoo//vgDixYtQlFREfT1/2+tqVwuh1wu13QZtfJThwJkmumjcX4Bxui0EiIiIiKqjsYDbI8ePXD+/Hm1tlGjRqFt27b4+OOP1cIrEREREVFtaTzAmpubw93dXa3NzMwMVlZW5dqJiIhIuip7QhWfRkXaxidxEREREZGkaPVBBo8dPHiwLoYhIiIionqAM7BEREREJCkMsEREREQkKQywRERERCQpDLBEREREJCl18iWuZ12jhzKgVKBRsUzXpRARERFRNRhgAXyzrSGUGRkwsG4CfKDraoiIiIioKlxCQERERESSwhlYIiIi0qjKntBFpCmcgSUiIiIiSeEMLIClQXnIFXowl+XhO10XQ0RERERVYoAFcNq+BJlmemicX6LrUoiIiIioGlxCQERERESSwgBLRERERJLCAEtEREREksIAS0RE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byI8PFx1HGdnZ9X+lpaWkMlksLGxUbUlJydj27ZtOHr0KIKCggAA69atg729PbZu3YrBgwdr43SJiHSKM7BERBoghKi2z8WLF2Fvb68KrwDg6uqKhg0b4uLFiwCAadOm4Z133kFwcDC++uorXLt2rdpjGhgYICAgQNVmZWUFFxcX1TGJiJ43DLBERBrg7OwMmUz2r7+oNXv2bPz111/o06cP9u/fD1dXV2zZskVDVRIRPR8YYImINKBx48YICQnB4sWLkZ+fX257dnY22rVrh7S0NKSlpanaL1y4gOzsbLi6uqra2rRpg/fffx+///47Bg0ahFWrVgEAjIyMUFpaqnbcdu3aQalU4uTJk6q2Bw8e4PLly2rHJCJ6njDAEhFpyOLFi1FaWgp/f3/8+uuvSE5OxsWLFxEVFYXAwEAEBwfDw8MDoaGhSExMxKlTpzB8+HB06dIFfn5+ePjwISZNmoSDBw8iNTUVR48eRXx8PNq1awcAcHBwQF5eHvbt24f79++joKAAzs7OGDBgAMaOHYsjR47g7NmzePvtt/HCCy9gwIABOn5HiIi0gwGWiEhDnJyckJiYiG7duuGDDz6Au7s7Xn75Zezbtw9Lly6FTCbDb7/9hkaNGuGll15CcHAwnJycsGHDBgCAvr4+Hjx4gOHDh6NNmzZ444030KtXL8yZMwcAEBQUhAkTJmDIkCFo2rQpvv76awDAqlWr0L59e/Tt2xeBgYEQQmDnzp0wNDTU2XtBRKRNMlGTbx4QERERET0jOANLRERERJLCAEtEREREksIAS0RERESSwgBLRERERJLCAEtEREREksIAS0RERESSwgBLRERERJLCAEtEREREksIAS0RERESSwgBLRERERJLCAEtEREREksIAS0RERESS8v8AbdDag7/x4OwAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# @title\n", "np.random.seed(42)\n", "n = 200\n", "\n", "# Muestras de mu y nu, ordenadas para construir el mapa monótono discreto\n", "samples_mu = np.sort(np.random.normal(mu_mean, mu_std, n))\n", "samples_nu = np.sort(np.random.normal(nu_mean, nu_std, n))\n", "\n", "a = np.ones(n) / n\n", "b = np.ones(n) / n\n", "\n", "C = (samples_mu[:, None] - samples_nu[None, :]) ** 2\n", "\n", "# Plan óptimo via POT\n", "pi_opt = ot.emd(a, b, C)\n", "cost_opt = np.sum(pi_opt * C)\n", "\n", "# El plan devuelto por POT es exactamente el monótono: con pesos iguales y muestras\n", "# ordenadas, es la matriz identidad / n (soporte sin cruces, Proposición 8.2.3)\n", "print(f\"Distancia entre el plan de POT y el plan monótono: {np.max(np.abs(pi_opt - np.eye(n)/n)):.2e}\")\n", "\n", "# Plan monótono: empareja samples_mu[i] con samples_nu[i] (ambos ordenados)\n", "cost_mon = np.mean((samples_mu - samples_nu) ** 2)\n", "\n", "# Planes aleatorios\n", "n_random = 200\n", "costs_random = []\n", "for _ in range(n_random):\n", " sigma = np.random.permutation(n)\n", " costs_random.append(np.mean((samples_mu - samples_nu[sigma]) ** 2))\n", "\n", "print(f\"Costo plan monótono: {cost_mon:.6f}\")\n", "print(f\"Costo plan óptimo: {cost_opt:.6f}\")\n", "print(f\"Costo promedio aleatorio: {np.mean(costs_random):.6f}\")\n", "print(f\"Costo mínimo aleatorio: {np.min(costs_random):.6f}\")\n", "\n", "fig, ax = plt.subplots(figsize=(7, 3.5))\n", "ax.hist(costs_random, bins=30, density=True, alpha=0.7, label=\"Planes aleatorios\")\n", "ax.axvline(cost_mon, color=\"tab:red\", lw=2, label=f\"Plan monótono: {cost_mon:.4f}\")\n", "ax.axvline(cost_opt, color=\"tab:green\", lw=2, ls=\"--\",\n", " label=f\"Plan óptimo (POT): {cost_opt:.4f}\")\n", "ax.set_xlabel(\"Costo\")\n", "ax.set_title(\"Comparación de costos\")\n", "ax.legend(fontsize=8)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_3b_md" }, "source": [ "## 4. El plan comonótono cuando $\\mu$ tiene átomos\n", "\n", "Cuando $\\mu$ tiene átomos el mapa monótono puede no existir: la masa concentrada en un punto no puede dividirse mediante un mapa. Sin embargo, el **plan comonótono**\n", "\n", "$$\n", "\\gamma_{\\mathrm{mon}} = \\bigl(F_\\mu^{[-1]}, F_\\nu^{[-1]}\\bigr)_\\# \\mathcal{L}^1|_{(0,1)}\n", "$$\n", "\n", "siempre está definido, y sigue siendo óptimo para costos $h(y-x)$ con $h$ convexa.\n", "\n", "Para medidas discretas, $\\gamma_{\\mathrm{mon}}$ se calcula exactamente recorriendo $t\\in(0,1)$ y anotando en qué átomo de $\\mu$ y en qué átomo de $\\nu$ caen las pseudoinversas: es la clásica **regla de la esquina noroeste** (*northwest corner rule*). Su soporte satisface la condición de monotonía de la Proposición 8.2.3,\n", "\n", "$$\n", "(x,y),(x',y')\\in\\operatorname{sop}(\\gamma),\\ x 0:\n", " ax.plot([0, 1], [x[i], y[j]], \"o-\", color=\"tab:blue\", lw=6*G_mon[i, j]+0.5,\n", " ms=6, alpha=0.8)\n", " ax.text(0.5, (x[i]+y[j])/2 + 0.06, f\"{G_mon[i,j]:.2f}\", ha=\"center\", fontsize=9)\n", "ax.set_xticks([0, 1]); ax.set_xticklabels([r\"átomos de $\\mu$\", r\"átomos de $\\nu$\"])\n", "ax.set_yticks([0, 1, 2]); ax.set_title(r\"Soporte de $\\gamma_{mon}$: el átomo de $\\mu$ en 0 se divide\")\n", "plt.tight_layout(); plt.show()\n" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_3c_md" }, "source": [ "## 5. Convexidad estricta y unicidad\n", "\n", "El Teorema 8.4.1 afirma que, si $h$ es **estrictamente** convexa, $\\gamma_{\\mathrm{mon}}$ es el **único** plan óptimo. Si $h$ es sólo convexa (Proposición 8.4.3), $\\gamma_{\\mathrm{mon}}$ sigue siendo óptimo, pero puede haber otros.\n", "\n", "El ejemplo más simple: $\\mu=\\tfrac12\\delta_0+\\tfrac12\\delta_1$, $\\nu=\\tfrac12\\delta_2+\\tfrac12\\delta_3$. Hay exactamente dos planes inducidos por mapas: el monótono ($0\\mapsto2$, $1\\mapsto3$) y el **cruzado** ($0\\mapsto3$, $1\\mapsto2$).\n", "\n", "- Para $h(z)=z^2$ (estrictamente convexa): costo monótono $=4$, cruzado $=5$. El monótono gana.\n", "- Para $h(z)=|z|$ (convexa, no estricta): ambos cuestan $2$. **Todo** plan admisible es óptimo, porque en este ejemplo $|y-x|=y-x$ sobre el soporte y $h$ resulta afín allí.\n", "\n", "El caso $h$ afín es el extremo: $\\int h(y-x)\\,d\\pi=\\alpha\\bigl(\\int y\\,d\\nu-\\int x\\,d\\mu\\bigr)+\\beta$ no depende de $\\pi$.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "cell_3c_code" }, "outputs": [], "source": [ "# @title\n", "x = np.array([0., 1.]); a = np.array([0.5, 0.5])\n", "y = np.array([2., 3.]); b = np.array([0.5, 0.5])\n", "\n", "G_mon = plan_comonotono(x, a, y, b)\n", "G_cruz = np.array([[0., 0.5], [0.5, 0.]]) # 0 -> 3, 1 -> 2\n", "G_mezcla = 0.5*G_mon + 0.5*G_cruz # un plan que no es mapa\n", "\n", "costos = {\n", " \"h(z) = z^2 (estrictamente convexa)\": lambda z: z**2,\n", " \"h(z) = |z| (convexa, no estricta)\": lambda z: np.abs(z),\n", " \"h(z) = 2z+1 (afín)\": lambda z: 2*z + 1,\n", "}\n", "D = x[:, None] - y[None, :] # x_i - y_j (el costo es h(y - x) = h(-D))\n", "print(f\"{'costo':40s} {'monótono':>10s} {'cruzado':>10s} {'mezcla':>10s} único óptimo?\")\n", "for nombre, h in costos.items():\n", " C = h(-D)\n", " c_mon, c_cruz, c_mez = (np.sum(G*C) for G in (G_mon, G_cruz, G_mezcla))\n", " unico = \"sí\" if c_cruz > c_mon + 1e-12 else \"no\"\n", " print(f\"{nombre:40s} {c_mon:10.4f} {c_cruz:10.4f} {c_mez:10.4f} {unico}\")\n" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_14" }, "source": [ "## 6. Fórmula del costo óptimo\n", "\n", "Para el costo $h(y-x) = |y-x|^p$ con $p \\geq 1$, el costo de transporte óptimo satisface\n", "\n", "$$\n", "W_p(\\mu,\\nu)^p = \\int_0^1 \\left|F_\\nu^{[-1]}(t) - F_\\mu^{[-1]}(t)\\right|^p dt.\n", "$$\n", "\n", "Esta fórmula permite calcular $W_p$ directamente a partir de las pseudoinversas, sin necesidad de resolver un problema de optimización.\n", "\n", "Verificamos esta fórmula numéricamente para $\\mu = \\mathcal{N}(0,1)$ y $\\nu = \\mathcal{N}(3, 0.5^2)$, comparando con el valor exacto (conocido en el caso gaussiano) y con el solver de POT." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 21, "status": "ok", "timestamp": 1788527931747, "user": { "displayName": "Julian Fernandez Bonder", "userId": "01548826079249958852" }, "user_tz": 180 }, "id": "cell_15", "outputId": "41bde5ea-79ac-4f86-c31d-7fa0ce3ef132" }, "outputs": [], "source": [ "# @title\n", "# Para gaussianas N(m0,s0^2) y N(m1,s1^2), el costo cuadrático óptimo es:\n", "# W_2^2 = (m1-m0)^2 + (s1-s0)^2\n", "\n", "W2_exact = (nu_mean - mu_mean)**2 + (nu_std - mu_std)**2\n", "\n", "# Fórmula via pseudoinversas (integración numérica)\n", "t_grid = np.linspace(1e-6, 1-1e-6, 10000)\n", "F_mu_inv = norm.ppf(t_grid, mu_mean, mu_std)\n", "F_nu_inv = norm.ppf(t_grid, nu_mean, nu_std)\n", "W2_formula = np.trapezoid((F_nu_inv - F_mu_inv)**2, t_grid)\n", "\n", "# Verificación via LP exacto (ot.emd) sobre medidas empíricas\n", "n_large = 1000\n", "s_mu = np.sort(np.random.normal(mu_mean, mu_std, n_large))\n", "s_nu = np.sort(np.random.normal(nu_mean, nu_std, n_large))\n", "C_large = (s_mu[:, None] - s_nu[None, :])**2\n", "W2_LP = np.sum(ot.emd(np.ones(n_large)/n_large, np.ones(n_large)/n_large, C_large, numItermax=10_000_000) * C_large)\n", "W2_mon = np.mean((s_mu - s_nu)**2) # plan monótono sobre las mismas muestras\n", "\n", "print(f\"W_2^2 exacto (fórmula gaussiana): {W2_exact:.6f}\")\n", "print(f\"W_2^2 via pseudoinversas: {W2_formula:.6f}\")\n", "print(f\"W_2^2 via LP (ot.emd, n={n_large}): {W2_LP:.6f}\")\n", "print(f\"W_2^2 plan monótono, mismas muestras: {W2_mon:.6f} (coincide con el LP)\")\n", "print(\"(la diferencia con el valor exacto es error de Monte Carlo de las muestras)\")\n" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_16" }, "source": [ "### La distancia $W_1$ y el área entre las FDA\n", "\n", "Para $p=1$, la fórmula anterior admite también la representación\n", "\n", "$$\n", "W_1(\\mu,\\nu) = \\int_{\\mathbb{R}} |F_\\mu(x) - F_\\nu(x)|\\, dx,\n", "$$\n", "\n", "que expresa $W_1$ como el **área entre las gráficas** de las dos funciones de distribución.\n", "\n", "Verificamos ambas representaciones numéricamente." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 392 }, "executionInfo": { "elapsed": 825, "status": "ok", "timestamp": 1788527905252, "user": { "displayName": "Julian Fernandez Bonder", "userId": "01548826079249958852" }, "user_tz": 180 }, "id": "cell_17", "outputId": "941658d4-4711-47d5-d137-1a93a80df340" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "W_1 via pseudoinversas: 2.999994\n", "W_1 via área entre FDA: 2.999993\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAFUCAYAAADYjN+CAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXiVJREFUeJzt3Xd4U2X/BvA7SdOkK+nehQ4KlCHIKntZQUQUfw7EwRRkCtYFylIRFF+RV1nqy1AsgjIUZU8V2VRmKVhooYMuCt1t2uT8/ghNGzpoStuTtPfnunI1z3POybmTrm9OnvMciSAIAoiIiIiILIxU7ABERERERDXBQpaIiIiILBILWSIiIiKySCxkiYiIiMgisZAlIiIiIovEQpaIiIiILBILWSIiIiKySCxkiYiIiMgisZAlIiIiIovEQpaIiIiILBILWSIiIiKySCxkiYjqUUxMDObNm4crV66IHYWIyOKxkCVqBBYtWoSWLVtCp9OJlmHlypVo0qQJCgsLRcsgtsLCQjz33HO4evUqmjdvLnacBmvt2rWQSCSIi4sTOwoR1TEWskQiWrNmDSQSCU6cOGHULwgCgoODIZFIEBkZabRMq9XC19cX/fv3r9Y+srKy8Omnn+Ldd9+FVCrer/yoUaOg0Wjw9ddfi5ZBbOHh4XBycsKqVavEjlJvjhw5gnnz5uHOnTtiR6lTJcVzRbcZM2ZUuI5SqYS3tzcGDhyIL7/8EtnZ2VXuY/ny5ZBIJAgNDa2Pp0RkEazEDkDUmKnVagD6YrOsPXv2ICYmpsJl27ZtQ2JiIpYsWVKtfaxevRrFxcUYPnz4gwd+AEqlEiNHjsTixYsxdepUSCQSUfPUt4yMDHh6emLBggWwtrYWO069OXLkCD744AOMGjUKjo6OYsepcx9++CECAgKM+tq0aVPhOkVFRUhOTsahQ4cwffp0LF68GNu2bcNDDz1U4WNHRETA398fJ06cQExMDJo1a1Znz4PIUrCQJRJRZYXsihUr0KpVK0RFRVW4zNvbG0OHDq3WPtasWYMnn3wSSqWyVjI/iOeffx6LFi3CwYMHq31EuaFwdnbG7NmzTd4uNzcXdnZ2dZDI/DSE5zpo0CB06tTJpHVmzpyJAwcO4IknnsCTTz6JS5cuwcbGxmib2NhYHDlyBFu2bMFrr72GiIgIzJ07t06eA5El4dACIhGVFLJlP1KMj4/H77//jvDwcFhZWRkti4mJwb59+zBu3DhYWd3/fWhsbCzOnTuHsLCwcssCAwPx8ssvl+vv168f+vTpU+3n8Omnn0IikeDff/819F24cAESiQSbNm0yWrdjx45wdnbGr7/+et/HTUxMxNixY+Ht7Q2FQoGAgABMnDgRGo3GaL1//vkHgwYNgkqlgr29PR555BEcO3bMaJ158+ZBIpHgypUrePnll6FWq+Hm5obZs2dDEATEx8fjqaeegkqlgqenJz7//PNyeaqzn4pcv34dkyZNQosWLWBjYwMXFxc899xzFY7fLMkZFRWFF198EU5OTujZs6fh9RgzZgw8PDygUCjQunVrrF69+oH2V5Hq7KckZ0xMjOFIq1qtxujRo5GXl2e03ttvvw0ACAgIMHykHhcXV+VzNeX5Vocpr0l2djamT58Of39/KBQKuLu749FHHy03xKe29e/fH7Nnz8b169fxww8/lFseEREBJycnDB48GM8++ywiIiLqNA+RpeARWSIRqVQqAMZHZL/55huoVCq8+OKLePvtt42WrVy5EjKZDOPHj6/W4x85cgQA0KFDB6P+nJwcxMXFYeLEieW2OXfuHF588cVqPwdvb28AQFJSEoKDgwHoP0pt3bo1fv/9dzz77LNG63fo0AF///13lY+ZlJSELl264M6dOxg/fjxatmyJxMREbNq0CXl5eYaP5i9evIhevXpBpVLhnXfegVwux9dff42+ffvijz/+KDeWcNiwYQgJCcEnn3yC7du3Y/78+XB2dsbXX3+N/v3749NPP0VERATeeustdO7cGb17967Rfso6efIk/v77b7zwwgvw9fVFbGwsli9fjr59+yIqKgq2trbltnnuuecQHByMBQsWQBAEpKSkoGvXrpBIJJgyZQrc3Nywc+dOjB07FllZWZg+fbrR/o4cOWLYX1xcHFasWFHl/kqYsh9Af4Q9ICAACxcuRGRkJP73v//B3d0dn376KQDg//7v/3DlyhX8+OOP+OKLL+Dq6goAcHNzq/S51iTH/ZjymkyYMAGbNm3ClClT0KpVK9y6dQuHDx/GpUuXyv0eVSQzMxPp6elGfSXP+35eeeUVvPfee9izZw/GjRtntCwiIgL/93//B2trawwfPhwrVqzAyZMn0blz52o9NlGDJRCRaJKTkwUAwvz58wVBEASNRiN4enoKb775piAIgtCkSRPhk08+EQRBEPLz8wVnZ2fhmWeeqfbjz5o1SwAgZGdnG/UfPXpUACDs3r3bqD8+Pl4AIHzzzTfV3se+ffsEAML69euN+gcPHix079693Prjx48XbGxsqnzMESNGCFKpVDh58mS5ZTqdznB/6NChgrW1tXD16lVDX1JSkuDg4CD07t3b0Dd37lwBgDB+/HhDX3FxseDr6ytIJBLDaywIgnD79m3BxsZGGDlypMn7qUhubm65vsOHDwsAhO+//96ovyTn8OHDjfrHjh0reHl5Cenp6Ub9L7zwgqBWq4W8vDxDX9n7JUq+3/fu717V3U9JzjFjxhit9/TTTwsuLi5GfZ999pkAQIiNja3WczX1+VZkzZo1Rvs05TVRq9XC5MmTq3z8qvZZ0e3edSr6uS67/4cfftio79SpUwIAYe/evYIg6H8HfH19hWnTppmck6ih4dACIhHdO0Z2y5YtSElJMRwpdXBwMCz76aefkJGRgcmTJ1f78W/dugUrKyvY29sb9V+4cAEA0K5dO6P+s2fPAkClJ5tUpOwR2bJu374NhUJRbn0nJyfk5+cbfQRdlk6nwy+//IIhQ4ZUONaw5CQxrVaLPXv2YOjQoQgMDDQs9/LywosvvojDhw+XG1/86quvGu7LZDJ06tQJgiBg7Nixhn5HR0e0aNEC165dq/F+yrr3CGhhYSE6duwIJyenSj+unjBhguG+IAjYvHkzhgwZAkEQkJ6ebrgNHDgQmZmZRo9TdmxlUVERbt26hWbNmsHR0bHKj8dN3c+9OQGgV69euHXrVpWvR1XPtaY57seU18TR0RHHjx8v9/NcXcuWLcPevXuNbqawt7cvN3tBREQEPDw80K9fPwD634Fhw4Zhw4YN0Gq1NcpJ1FCwkCUSkVKphLW1teEf14oVK/DYY48hKCgIgL6QLbssJCTE8M+spK9Dhw6Qy+WYN29etfd7/vx5eHh4wMPDw6j/3LlzkEql5c6yrkpFhWxiYiKOHz9e4Vhb4e7Hx5XNWpCWloasrKz7ZkhLS0NeXh5atGhRbllISAh0Oh3i4+ON+ps0aWLUVqvVUCqV5T76VavVuH37do33U1ZhYSEWLlyIli1bwsbGBkqlEjY2Nrh9+zYyMzMr3KbsWe9paWm4c+cOvvnmG7i5uRndRo8eDQBITU01rJ+fn485c+bAz88PCoUCrq6ucHNzw507dyrdX032A5R/PZ2cnADA8NpVx71n+Nckx/2Y8posWrQIFy5cgJ+fH7p06YJ58+YZ3tRUR5cuXRAWFmZ0M0VOTg4cHBwMba1Wiw0bNqBfv36IjY1FTEwMYmJiEBoaipSUFOzfv9+kxydqaDhGlkhkKpUKWVlZiIqKwh9//IHt27cblpUckT179iyOHTuGL7/80mhbLy8vzJs3D+vXr6/wsV1cXFBcXIzs7Gyjf44XLlwodzQWAM6cOYPAwECTzhxXq9Wws7NDYmKioW/GjBmwsbGpcCzv7du3YWtrW+6s7Pogk8mq1QeUFtwPatq0aVi1ahXeffdd9OzZE2q1GhKJBEOGDKn0AhVlX5uSdV5++WWMHDmywvXLHkGfOnUq1qxZg+nTp6Nbt26G/b3wwgtVXhDD1P0AtfPa3ftzUJMc92PKa/L888+jV69e2Lp1K/bs2YPPPvsMn376KbZs2YJBgwaZtF9TJSQkIDMz02harQMHDuDmzZvYsGEDNmzYUG6biIgIDBgwoE5zEZkzFrJEIlOr1cjKysKKFSsQGBiIxx57zLCspJBdsWIF7Ozsyv1jL5mCa8eOHRU+dsuWLQHoZy8o+8///PnzGDZsmNG6Op0OBw4cMJzgZAovLy/DEdl169bhhx9+wLfffgsvL69y68bGxiIkJKTSx3Jzc4NKpTIMf6hqPVtbW1y+fLncsujoaEilUvj5+Zn4TGp/Pxs3bsSoUaMwf/58Q19+fj4yMjKqvX8HBwdotdpqHd3btGkTRo4caTTzQkFBwX0vSGDqfqrL1PmC6yKHqa+Jl5cXJk2ahEmTJiE1NRUdOnTAxx9/XOeF7Lp16wAAAwcONPRFRETA3d0dy5YtK7f+li1bsHXrVqxcuVKUN4ZE5oBDC4hEplarcfPmTXz//feYOHGi0dW3HBwckJiYiIiICLz00kuGWQ6qq1u3bgCAU6dOGfpSU1ORlpaGmzdvGq375ZdfIj09HW3btjX5OXh7eyMpKQl//fUXXnvtNcyYMcNoPGpZkZGR6N69e6WPJZVKMXToUPz2229GuUuUHO2TyWQYMGAAfv31V6NplFJSUrB+/Xr07NnT5NerIg+6H4lEgqKiIqO+JUuWVPtywTKZDM888ww2b95cYXGflpZWbv17j4h+9dVX9x1Laep+qqvk6H51r+xVFzmq+5potdpyQw3c3d3h7e1d55dWPnDgAD766CMEBATgpZdeAqB/w7NlyxY88cQTePbZZ8vdpkyZguzsbGzbtq1OsxGZMx6RJRKZWq3GwYMHYWNjgzFjxhgtc3BwMFy+dtKkSSY/dmBgINq0aYN9+/YZHvv8+fMA9FcPmzRpElq2bIljx45h9+7dAIDTp0/j+PHjRlNKSSQS9OnTB4cOHapwP97e3jh27BieeOIJvPLKK1i4cGGF650+fRoZGRl46qmnqsy9YMEC7NmzB3369MH48eMREhKCmzdv4ueff8bhw4cNV4iaP38+9u7di549e2LSpEmwsrLC119/jcLCQixatMiUl6pKD7KfwYMH44cffoCjoyNCQkJw5MgRHDx4sNpTMgHAJ598goMHDyI0NBTjxo1Dq1atkJGRgcjISOzbt8/o6O4TTzyBdevWQa1Wo1WrVjh69Cj27dsHFxeXWt1PdXXs2BEA8P777+OFF16AXC7HkCFD6jVHdV+T7Oxs+Pr64tlnn0W7du1gb2+Pffv24eTJkxXOLVxTO3fuRHR0NIqLi5GSkoIDBw5g7969aNq0KbZt22a4eMm2bduQnZ2NJ598ssLH6dq1K9zc3BAREVHuExaixoKFLJHISmYuGD58OJydnY2WlYxr7d69e4VjWqtjzJgxmDNnDvLz82FjY4Pz589DJpNhw4YNeP3117FmzRr06tULf/zxB4YOHYozZ85ALpcbts/JyQGACocJlPD29oZGo8GYMWOwfPnyStf7+eef0aRJk/te1cvHxwfHjx/H7NmzERERgaysLPj4+GDQoEFGswC0bt0af/31F2bOnImFCxdCp9MhNDQUP/zwQ61ej/5B9vPll19CJpMhIiICBQUF6N27N/bv349HH3202vv38PDAiRMn8OGHH2LLli1Yvnw5XFxc0Lp1a8OcrSX++9//Gu2vR48e2Ldvn9HH1bWxn+rq3LkzPvroI6xcuRK7du2CTqdDbGxsveao7mtia2uLSZMmYc+ePdiyZQt0Oh2aNWuG5cuXVzjnck3NmTMHAGBtbQ1nZ2e0bdsWS5YswejRo43GskdERECpVFb6syKVSjF48GBERETg1q1b1XqzQtTQSITaOqOBiEQzYcIEeHp6VjhzQWZmJgIDA7Fo0SKMHTsWr776Kv78809cuXKlWo+9Y8cOPPHEEzh79myNhh2UKCwshL+/P2bMmIFp06bV+HGIiIhKcIwskQUrLi5GQUEBtFqt0f2y1Go13nnnHXz22WfQ6XQ4f/48WrVqVe19HDx4EC+88MIDFbEAsGbNGsjl8nLzhhIREdUUj8gSWbB58+bhgw8+MOpbs2YNRo0aVeH6giBApVJh6tSpWLBgQT0kJCIiqjssZIkakWvXriEoKAjr1q3Dyy+/LHYcIiKiB8JCloiIiIgsEsfIEhEREZFFYiFLRERERBbJIuaR1el0SEpKgoODg8mXOyQiIiIiyyEIArKzs+Ht7W10tcuKWEQhm5SUVCvXTCciIiIiyxAfHw9fX98q17GIQrbkSifx8fG1cu10IiIiIjJPWVlZ8PPzM7rSXWUsopAtGU6gUqlYyBIRERE1AtUZTsqTvYiIiIjIIrGQJSIiIiKLxEKWiIiIiCySRYyRvR+tVouioiKxYxBVi1wuh0wmEzsGERGRxTO5kP3zzz/x2Wef4fTp07h58ya2bt2KoUOHVrnNoUOHEB4ejosXL8LPzw+zZs3CqFGjahjZWE5ODhISEsAr7ZKlkEgk8PX1hb29vdhRiIiILJrJhWxubi7atWuHMWPG4P/+7//uu35sbCwGDx6MCRMmICIiAvv378err74KLy8vDBw4sEahS2i1WiQkJMDW1hZubm68WAKZPUEQkJaWhoSEBAQHB/PILBER0QMwuZAdNGgQBg0aVO31V65ciYCAAHz++ecAgJCQEBw+fBhffPHFAxeyRUVFEAQBbm5usLGxeaDHIqovbm5uiIuLQ1FREQtZIiKiB1DnY2SPHj2KsLAwo76BAwdi+vTptbYPHoklS8KfVyLLJwgCtDoBGq0ORcX6r/r7+q+aYh2KDF8FaLRaFGn122h1AnTCvfcBrSBAd+9yQ1/pcgECBAEQgLtf7zZQ0me8XN8vlN6/e6fs9kLpQ9xd725fyeOXeaz6VG6XggCFLg+22mwodHmQ6wogFzSQ6wohFwog1xXCWlcIK0EDKbSQCndv0JW/j9J2yZOT3N2npPTV0PeXefIly8quY/irLpRf1lDYdRuDVl0fEztGOXVeyCYnJ8PDw8Ooz8PDA1lZWcjPz6/wSGphYSEKCwsN7aysrLqOSUREjUBBkRaZ+UXIyi9CZgW37IJi5GmKkafRIk+jRb5Ga9TW9xUjv0gLXcOpUcyCI7IRKLkJH0k6vCS34CXJgJckA+6S21AjF2pJLhyRAyuJTuyojdKJm70ANMJCtiYWLlyIDz74QOwYRERkAQRBQEauBol38nEzswBp2YVIyy5Eeo7+a1pOabugiEWQ2CTQIVByEw9LY9BOchXNpQkIkiTBVcKDVmS6Oi9kPT09kZKSYtSXkpIClUpV6bjWmTNnIjw83NAuueYuERE1TkVaHa7fysPVtBzEpuci4XYeEm7nI+F2PhJv5yO/SFun+7eWSaGQS6GUy6C0kkJhJYPcSgq5TAIr6d2vMinkUgnkMimsZHe/Su/2yySQSSWQSSSQSiSQSiWQSQCp9G5bAkP/vW1Zyf277ZLRSZK7N0gk+vtlRi1JSvoMHYAExtuWrHf3Ie55DOPHNKxXw9fPJjcebsl/wS3lTzjfioS8yLSiVWvtAJ3CEVqlo/6rQg2dtQMEKxsIVkoIMiV0chsIMiUEKyV0MgUgtYIglQGSkq8yCFIrQCqDICnTlkjvvkD6ZyeUeZ0ML07Jsy97H2UGFUjKvNr3Dh+r5nAycx901tLNV+wIFarzQrZbt27YsWOHUd/evXvRrVu3SrdRKBRQKBR1Ha1eFRUVwcHBATKZzGiM5O7du9GjRw8RkxERmQ+tTkBsei4uJmXi0s1sXE3LwdW0HNy4lYfiB/gs30FpBUdba6iUVrBXlLnd07ZVWMFGri9UlXIZlHfvy6TmXmaYH3nWdThd/QXqq79CeSem6pXt3AG3FoBrc8DJH1B5A2pf/VcHL8hkcsgAyOsjOFkUkwvZnJwcxMSU/kDGxsbizJkzcHZ2RpMmTTBz5kwkJibi+++/BwBMmDABS5cuxTvvvIMxY8bgwIED+Omnn7B9+/baexYW4OLFi9BoNMjKyuL8oURE0A8JiE3Pxenrt3ExKQsXEjMRdTMLeZrqH121lknh5qCAh0oBNwcl3BwUcLaVw9HWGk621nCylUNtI4eVjBeyrBe6Iqhjd8Ll4hrYpZ6ueB1bV8AvFPDtpL95tgVsnOo3JzUYJheyp06dQr9+/QztkiEAI0eOxNq1a3Hz5k3cuHHDsDwgIADbt2/HG2+8gf/+97/w9fXF//73vweeesvSREZGomnTpixiiajRKtLqcDEpC6fiMnAyLgOn4m7jVq7mvttZy6TwcbKBr5MNfB1t4OtkC0+1vmh1tJFzJhAzICnOh0vU93C5uBrWuTfLr+DXFQh+VH/zaAtI+caCaofJhWzfvn2rvIrW2rVrK9zmn3/+MXVXNTLkq8NIyy68/4q1wM1Bgd+m9qzWupGRkWjTpk0dJyIiMi8Jt/Pw55V0/HklDX/HpCO7sLjK9d0dFAhys0eQuz0CXe3g52wLdwcFpCxWzZJEq4HT5Y1w/2cJ5PlpxgvdWgLtXgDaPqcfJkBUB8xy1oIHkZZdiOSsArFjlBMZGYnIyEg4Ojoa+s6ePYumTZuKF4qIqJbpdALOJNzBrgvJ2H8pBVfTcitd104hQ4inCq28VGju6YBAVzs4KDkK0lLY3jwOn8MzocwsO/5VAjR/DOg2CfDvVe0TnYhqqsEVsm4O9XeSWHX3pdVqcfbsWWzevBmDBw+u41RERPVLqxNwKi4DOy8kY9eF5EoPJjgordDezxFtvNVo7a2Cn7Mtj7RaIGnhHXgd/xjOVzYaLwgZAvSbBbi3FCcYNUoNrpCt7kf99Sk6Ohp5eXno0qVLhctDQ0Nx/PhxAMATTzyBtWvXwtXVtT4jEhGZ7FpaDjZHJmBLZCJuZpYvXqUSoIWnCh2aOKJDEycEudnz7H8LZ5tyCn4Hp8I6J7G006cTMGgR4NtRvGDUaDW4QtYclZzo5ebmVm5ZUlKS0Ry5qampLGKJyGzlaYrx65kkbDqdgNPXb5dbbiWVoL2fI3oEuaJLgDNUNhwq0CAIAtzOLoPH6c8hEe7OKqFQAWFzgY6jAalM3HzUaLGQrQeRkZGVHo09e/YsOnToAEB/oQh3d/f6jEZEVC3Xb+Xi+6PX8dOpeGQXGJ+wJZUAHZs6oXewGzr7O8NOwX8tDYmkuAC+f70Nx6u/lnY26QY88z+exEWi41+bevDFF19Uuuzs2bPw8vICAGzduhXt2rWrr1hERFUSBAFHr97CqsOxOHA5FfdOWNPU2RZhIR7o08INTrbW4oSkOiXLT4f/3ldhmxp5t0cC9HkH6P0OIGMJQeLjT6HIzp49C51Oh23btsHe3h5JSUliRyKiRk4QBOy/lIqlB2NwJv6O0TJrmRR9mrthUBtPNHO35xyuDZhVbjICdgyHMvOqvkNupz8K2/JxcYMRlcFCVmTx8fE4fPiw2DGIiKDTCdh5IRlLD8bg0s0so2Wu9goMbuuFAa08OO61EZBnJyBg53Aosq7rOxy8gRc3AF781JDMCwtZERUUFMDamh/HEZG4BEHAX/+m45Od0Yi6p4D1d7HF85380D3IlTMONBJWuTcRuP15WOck6Duc/IER2wAnzntO5oeFrIiUSiUOHDggdgwiasTOJdzBp7ui8XfMLaP+5h72GNbJD539nTl8oBGRFdxBwK5XSotYl2b6IlbtI24wokqwkCUiaoRSswuwcEc0tv6TaNQf5GaHEd388bCfIwvYRkZSnI+me8dAefuKvsPJHxi1HXDwFDUXUVVYyBIRNSLFWh2+O3odS/ZeQXZh6TRaniolXunaFD2DXXm1rcZIEOD3xxuwSzmlb9u5Aa9sZRFLZo+FLBFRI3EyLgOzf7mA6ORsQ5+9wgovdmmCx9p4Qi6TipiOxOR2dhnUsTv0DWsH4OXNgHOguKGIqoGFLBFRA5dbWIxFu6Lx3dHrRv0DWnlgRDd/qDkLQaPmcGM/PE59drclAZ5dxdkJyGKwkCUiasCOxKTj3S3nEJ+Rb+hr5maPCX2C0MLTQcRkZA7k2Tfgd2gaJLh7tYv+7wPNB4obisgELGSJiBqgPE0xFuy4hB+O3TD0WVtJMaJrUzzxkDen0iJAVwy/g9Mg09ydci3kSaDXW+JmIjIRC1kiogYmKikLU3+MxNW0XENfa28VXu8fDG9HGxGTkTlx/+e/sEs9rW84NgWeWgbwRD+yMCxkiYgaCEEQ8N2ROCzYGQ1NsQ4AoLCSYlR3fzze1ouzEZCBbfIJuJ/5St+QyIBnVgFKlbihiGqAhWw9KSoqgoODA2QymdHcjLt370aPHj1ETEZEDcHtXA3e3nQW+y6lGvoC3ezw9oAW8HWyFTEZmRtJcT58/3wTEkH/Zgf9ZgJ+ncUNRVRDLGTrycWLF6HRaJCVlQV7e3ux4xBRA3IxKROvrTuNhNulJ3Q91c4bI7v7c0otKsfj9GIosu7OYOHXFegZLm4gogfAQraeREZGomnTpixiiahWbf0nATO3nEdBkf7omtpGjumPBKOTv7PIycgcKdPPwfXCt/qGzBp4aikglYkbiugBsJCtJ5GRkWjTpo3YMYiogSjS6vDx9ktYeyTO0Nfcwx4zB4XA1V4hXjAyX7oi+P71bumQgj7vAK7B4mYiekANr5D9ug+Qk3r/9WqDvTvw2h/VWjUyMhKRkZFwdHQ09J09exZNmzato3BE1FBl5hdhUsRp/B1zy9A3oJUHJvQJ4lACqpRL1PewuXVR3/BoA/SYLmoeotrQ8ArZnFQgO0nsFEa0Wi3Onj2LzZs3Y/DgwWLHISILFp+Rh9FrTyImNQcAYCWV4LXeQXisjafIycicyfJvwSPyi9KOIV8CMl7RjSxfwytk7d3Nbl/R0dHIy8tDly5dyi2LiorC7NmzsXnzZvzyyy+4fv06pk2bVttJiagBOBN/B69+dxLpORoAgEpphfcHt0IrL06bRFXzOP1Z6YUP2r8M+HYUNxBRLWl4hWw1P+qvTyUnerm5uZVb5uPjg4SEBABAYGAgdu/eXd/xiMgC7LqQjOkb/zGc1OXjaIO5Q1rBS80LHFDVlOkX4Bz9o75h7QA8MkfcQES1qOEVsmYoMjKywqOxAKBWq5GZmQkA+Pnnn9GvX7/6jEZEFmDjyRuYueU8dIK+3cZbhfceD4GDkh8N030IAryOfQAJ7v7w9HkbcPAQNxNRLWIhWw+++OKLKpdLpVJs2bIFsbGx+Oijj+opFRFZgm/+vIoFO6IN7b4t3PB6/2Ce1EXV4pBwEPbJx/UN5yAgdKK4gYhqGQtZM+Dp6YlNmzbhu+++EzsKEZkJQRDw2e7LWH7oqqFvaHtvjOkRYHR1QKJKCTp4nFxU2g6bC1hZi5eHqA6wkDUDBw4cEDsCEZkRnU7A7F8vIOL4DUPfy12b4vmOvixiqdrU136HTUaUvuHVHgh5UtQ8RHWBhSwRkRnR6QS8u/kcfj6tPwlUAuC1PkEY3NZL3GBkWXRF8Dj9n9L2I3MAvgmiBoiFLBGRmdDpBMzYUlrESiXAG2HN0bdFPU4rSA2C05WfoMiK0zf8ewFB/UXNQ1RXWMgSEZkBnU7AzC3n8dOp0iL2nYEt0aOZq8jJyOLoiuB+Zllp+5G5PBpLDRZPeyUiEplOJ+C9reex8VQ8ABax9GAcY36BdY7+DRGahQF+ncUNRFSHWMgSEYlIEPQndm04WVrEvs0ilmpKp4X72TJHY3u9JV4WonpQo0J22bJl8Pf3h1KpRGhoKE6cOFHl+kuWLEGLFi1gY2MDPz8/vPHGGygoKKhRYCKihuSz3ZcNsxNIJcBbA1qgJ4tYqiF13A4oMq/pG017Ak27iRuIqI6ZXMhu3LgR4eHhmDt3LiIjI9GuXTsMHDgQqampFa6/fv16zJgxA3PnzsWlS5ewatUqbNy4Ee+9994DhycismTf/HnVME+sBPoTu3oFl7+UNVG1CALcyo6N7f2meFmI6onJhezixYsxbtw4jB49Gq1atcLKlStha2uL1atXV7j+kSNH0KNHD7z44ovw9/fHgAEDMHz48PsexSUiasg2nrxhdMWuCX2CODsBPRCH+P2l88Z6dwACeclzavhMKmQ1Gg1Onz6NsLCw0geQShEWFoajR49WuE337t1x+vRpQ+F67do17NixA48//nil+yksLERWVpbRjYioodh5/iZmbjlvaL8c2gSPc55YekCu574pbfR+izMVUKNg0vRb6enp0Gq18PDwMOr38PBAdHR0hdu8+OKLSE9PR8+ePSEIAoqLizFhwoQqhxYsXLgQH3zwgSnRLMr27dthZ2eHvn37ih2FiOrZ0au3MG3DGegEffupdt54vpOfuKHI4inTL8A++Zi+4RIMNB8kbiCielLnsxYcOnQICxYswPLlyxEZGYktW7Zg+/bt+OijjyrdZubMmcjMzDTc4uPj6zpmvTl27BgWL16MLl26iB2FiOrZvynZGL/uFDRaHQDgkZbuGNMzgJedpQfmenFVaaPrBEDKSYmocTDpiKyrqytkMhlSUlKM+lNSUuDp6VnhNrNnz8Yrr7yCV199FQDQtm1b5ObmYvz48Xj//fchreCXTaFQQKFQmBLNYnTt2hX79+8XOwYR1bPU7AKMWnMS2QXFAIBOTZ0wtX8wpCxi6QFZ5aVAfXWbvqF0BNoNFzUPUX0y6S2btbU1OnbsaFSI6XQ67N+/H926VTzFR15eXrliVSaTAdDPn9jYjBkzBhKJBJcuXRI7SrX17NkT//3vfw3twsJCeHh44OmnnzZab+DAgfU2G8XUqVPh5+cHlUoFHx8fTJ8+HRqNptL1i4qKMGXKFDg5OcHZ2RlTp05FcXFxtZY/yLZEAJCnKcbYtaeQeCcfABDoZod3BraETMoilh6cS9Q6SHVF+kan0YC1nbiBiOqRyZeoDQ8Px8iRI9GpUyd06dIFS5YsQW5uLkaPHg0AGDFiBHx8fLBw4UIAwJAhQ7B48WI8/PDDCA0NRUxMDGbPno0hQ4YYCtradj4hs04et6y2vmqTt8nOzsZPP/0EZ2dnrFq1Cv/5z38qXE8QBOh0ujp7fUzl6OhodMLdunXroNFojPouXryIP/74A2vXrq2XTJMmTcInn3wCOzs7pKen47nnnsOiRYswa9asCtefP38+Dh8+jKgo/Rm9gwYNwoIFCzBnzpz7Ln+QbYm0OgGv//gPzifq/y652iswZ3Ar2Fibx+83WTZJcQGco3/QN6RWQJfx4gYiqmcmD6IZNmwY/vOf/2DOnDlo3749zpw5g127dhlOALtx4wZu3rxpWH/WrFl48803MWvWLLRq1Qpjx47FwIED8fXXX9fes7AQGzduhJ2dHT799FOsW7cORUVFhmX+/v5YuHAhunbtCltbW0RFRSEnJwdTpkxBkyZN4O7ujhEjRiAzs7RIX7x4MYKDg+Hg4ICgoCAsXbq0TnI7Ojoa9isIAhYvXozw8PByWYYPHw4vr/o58zokJAR2dnaGTFKpFP/++2+l669evRqzZs2Cl5cXvLy88P7772PVqlXVWv4g2xJ9+NtF7Lukn2fb1lqGeUNawcW+YQ6dovrnGLMVVgUZ+kbrpwGVt7iBiOpZjUaDT5kyBdevX0dhYSGOHz+O0NBQw7JDhw4ZHZWzsrLC3LlzERMTg/z8fNy4cQPLli2Do6Pjg2a3OKtWrcJLL72EF154Abm5ufjtt9+Mlq9duxbfffcdcnJy0KJFC4wZMwYZGRk4d+4cYmNjDR9hl2jatCkOHDiArKws/O9//8Pbb7+Nv//+u9L9T5o0CY6OjpXeDh8+XOF2ZY/I7ty5E3K5HM8++6yhLzU1FevXr0d4eLhJr8fVq1fx8ssvIzg4GH369MHSpUtx/fp1REVFYeLEibh8+XKV23/yySewt7eHu7s7zp49i6lTp1a43u3bt5GQkID27dsb+tq3b48bN24gMzOzyuXXr1+v8bZlC31qnCKOX8d3R68DAGRSCd4bFIKmLvzYl2qJIMDl0rrSdteJ4mUhEglPa6wnUVFROHbsGEaOHAl7e3s8/fTT5Y7aTZw4ES1atIBMJkNmZiY2b95sKPrt7Ozw4YcfYuPGjdBqtQCAZ555Bn5+fpBIJOjXrx8GDhyIQ4cOVZph+fLluHPnTqW3nj17Vrhd2SOyn3/+Od566y2oVCpD37Jly9C7d2+0bdsWRUVF6NGjBxwdHbFp06YqX5Mvv/wSPXv2xI8//oixY8di165daNOmDQYPHgxPT08EBgZWuf2MGTOQk5ODqKgoTJgwodITDnNycgzPo+xzAvTDPapaXjK+uybbZmdnV5mfGrbj125h7q8XDe3JfYPQzs9RvEDU4NiknYXNrQv6hncHwKejuIGIRMBCtp6sWrUK7dq1Q7t27QAAI0eOxO7du5GYmGhYp0mTJob7cXFx0Ol0CAgIMBwx7dy5M6RSKZKTkwEAERER6NChA5ydneHo6IgdO3YgPT291rOXFLJnzpzBv//+ixdeeMFQyBYUFGDFihV48039pRCtrKywadMmTJ8+/b6P++GHH0Imk2HdunW4du0apk2bhsTERBw/fhweHh6VXvb4XiEhIWjXrh1GjRpV4XJ7e3sAMDpCWnLfwcGhyuU6na7G2zo4OFQrPzU8CbfzMDEiEsV3J4t9qp03Hm1V8RstopoyjI0FgE5jxAtCJCIWsvWgqKgI69atw5UrV+Dp6QlPT0+89NJL0Gq1RsMwys7u4OfnB6lUiqSkJKOjpgUFBfDx8cGNGzcwcuRILFq0CKmpqbhz5w4ef/zxKmeCmDBhAuzt7Su9/fXXXxVuVzK04PPPP8e0adMgl8thb2+PoqIirFq1Cp6enhgwYAAAQCKRVHuc7DvvvIOsrCw899xzcHd3x8cffwxnZ2e0adMGV69ehaura7UeB9C/xpWNkXVycoKvry/OnDlj6Dtz5gz8/PygVqurXN60adMab6tWm35CIFm+PE0xxn1/Ghm5+lk02vs5YnSPAJFTUUMjLbwDx5IptxRqoM3/iRuISCQmz1pAptu2bRuysrJw5swZo4+gly9fjtWrV1c4ZZWnpyeGDh2KKVOmYNGiRXB1dUVycjKOHj2Kp59+Gjk5ORAEAe7u7pBKpdixYwf27NmD8eMrP2N15cqVWLlypcn5HR0dcfXqVfz7779Yvnw5AH3Bam9vj4ULF2L+/PkmPyYAfPXVV7C2tgagn+Jr0qRJ0Gq1952tIScnBz///DOefvppqNVqXLhwAfPnz8fAgQMr3Wb06NH4+OOP0aNHDwDAggULDHMb32/5g2xLjYsgCHj753O4dFM/ftxLrcS7nGaL6oDTv1sg1RboG+1e4JRb1GjxiGw9WLVqFYYPH46WLVsajsh6enri9ddfR1JSEg4ePFjhdmvXrjUMKVCpVOjVqxdOnz4NAGjVqhXef/999O/fHy4uLti4cSOefPLJOsnv6OiI1NRUjB492ujjcpVKBZ1OhxdffLFGj1tSxJZVnSnHJBIJ1q9fj6CgIDg4OOCpp57C4MGDsWTJEsM6EyZMwIQJEwzt2bNno1u3bggJCUFISAh69Ohh9AaiquUPsi01LksPxGD7ef2sLTZyGWYPbgV7JY8XUC0ThHuGFYwWLwuRyCSCBVyVICsrC2q1GpmZmVCpVIb+goICxMbGIiAgAEql0tBvrvPINibz5s1DmzZt8Oyzz4odxexU9nNLlu3Q5VSMXnsSggBIAMwa3ApdApzFjkUNkO3N4wja/py+0aQ7MGanuIGIallldV9FGuShAhaZ4nr++edx6tQp2Nvb48SJE1i0aJHYkYjqVMLtPEzfeAYlhwVe7tqURSzVGRee5EVk0CALWRLXTz/9JHYEonpTWKzF5IhI3MnTX+Cki78znu3oK3IqaqikhXegitulb9g4A63qZkgZkaXgGFkiogcw//dLOHt3OJOHSoE3wppDKuHJXVQ3HK/+Bqm2UN94aBhgxavEUePGQpaIqIZ++ScR647pr9wll0kwc1AIT+6iOuX0b5lPvNrX7ERbooaEhSwRUQ1cScnGzC3nDe0JfYIQ5GYvYiJq6BS3L8M27ay+4dkW8HpI3EBEZoCFLBGRiXIKizHhh9PIL9JfLvrREA8M4JW7qI45XSlz2e/2L4sXhMiMsJAlIjLRnF8v4FpaLgAg0NUOr/UJFDkRNXi6YjjGbNHfl8qBts+Jm4fITDSIQtYCpsIlMuDPq2XbEpmALZGJAPQXPXj3sZZQWN3/Qh5ED8Ih4RDk+Wn6RovHADsXcQMRmQmLPitBLpdDIpEgLS0Nbm5ukPBMYTJzgiAgLS0NEokEcrlc7Dhkotj0XMz65YKhPalvELwdbURMRI2F05WfSxscVkBkYNGFrEwmg6+vLxISEhAXFyd2HKJqkUgk8PX1rdbleMl8FBZrMfXHSORp9ONiH2npjr4t3EVORY2BrCADDjf26Rt27kCzMHEDEZkRiy5kAcDe3h7BwcEoKioSOwpRtcjlchaxFmjRrsu4kJgFAPBxtMFrvYNETkSNhfrab5Dq7v6PazcMkFn8v26iWtMgfhtkMhkLAyKqMwejU7HqcCwAwEoqwTsDW8DGmn9zqH44xvxS2njoBdFyEJmjBnGyFxFRXUnJKsCbP581tEf3CEAg54uleiLPvgG71NP6hnsrwLONuIGIzAwLWSKiSuh0AsJ/OoOMXA0AoIu/M4Y85CVyKmpMHK9uK220fVa8IERmioUsEVEl1hyJw98xtwAALnbWmPZIMGdHofojCHCM2VrabsNCluheLGSJiCpwJSUbn+6KNrTfCGsOlQ2nTKP6o8yIhvLOv/qGX1fAqam4gYjMEAtZIqJ7aIp1mL7hDDTFOgDAk+280c7PUdxQ1Og4Xi1zNJbDCogqxEKWiOgeX+y7gqib+qm2/JxtMaIbj4RRPRN0UJeMj5XIgNZPi5uHyEyxkCUiKuNkXAZW/nEVgH6qrTcfbc5L0FK9s005CevcJH2j2SOAnau4gYjMFAtZIqK7sguK8MbGMxAEffvF0CYI4lRbJAKjuWPbPidaDiJzx0KWiOiuj36PQsLtfABAiJcK//ewr8iJqDGSaDVQx27XN6xsgBaPixuIyIyxkCUiArD7YjJ+OpUAALCRyxD+aHPIpJxqi+qffeJfsCq8o2+0fBxQ8FMBosqwkCWiRi89pxAzt5w3tMf3CoSnSiliImrMVLE7ShucO5aoSixkiahREwQBs3+5YLh6V9dAZzwS4i5yKmq0dEVQ3dijv29tDwT1FzcPkZljIUtEjdr28zex80IyAMBBaYVJfZvx6l0kGvuko7AqzNQ3ggcAcn4yQFQVFrJE1Gil5xRizq8XDe2JfYLgZGstYiJq7FRxO0sbrZ4ULwiRhWAhS0SN0r1DCroHuaBnM87VSSLSaaGK262/b6UEmj0qbh4iC8BClogapd/PlQ4pUCmtMLFPEIcUkKhsU05BXpCubzQL42wFRNXAQpaIGh39kIILhvaEPkFw5JACEpk6rsxsBSEcVkBUHTUqZJctWwZ/f38olUqEhobixIkTVa5/584dTJ48GV5eXlAoFGjevDl27NhR5TZERHWhZEjB7bwiABxSQGZC0EEVt0t/XyoHmg8UNw+RhbAydYONGzciPDwcK1euRGhoKJYsWYKBAwfi8uXLcHcvP2WNRqPBo48+Cnd3d2zatAk+Pj64fv06HB0dayM/EZFJOKSAzJFN2llY597UNwL7AjaOYsYhshgmF7KLFy/GuHHjMHr0aADAypUrsX37dqxevRozZswot/7q1auRkZGBI0eOQC6XAwD8/f0fLDURUQ2kZXNIAZknddmLIHC2AqJqM2logUajwenTpxEWFlb6AFIpwsLCcPTo0Qq32bZtG7p164bJkyfDw8MDbdq0wYIFC6DVaivdT2FhIbKysoxuREQP4t4hBT2CXNAr2E3kVEQABKF02i2JDGgxWNw8RBbEpEI2PT0dWq0WHh4eRv0eHh5ITk6ucJtr165h06ZN0Gq12LFjB2bPno3PP/8c8+fPr3Q/CxcuhFqtNtz8/PxMiUlEVM728zex62LpkIIJfYJETkSkp8yIgiL7hr7h3wOwcxE3EJEFqfNZC3Q6Hdzd3fHNN9+gY8eOGDZsGN5//32sXLmy0m1mzpyJzMxMwy0+Pr6uYxJRA3Y7V4O5ZS58wCEFZE7UsWUugsDZCohMYtIYWVdXV8hkMqSkpBj1p6SkwNPTs8JtvLy8IJfLIZPJDH0hISFITk6GRqOBtXX5fyYKhQIKhcKUaERElZq//RJu3b3wQbdADikg86IyTLslAUKGiJqFyNKYdETW2toaHTt2xP79+w19Op0O+/fvR7du3SrcpkePHoiJiYFOpzP0XblyBV5eXhUWsUREtemvf9OwOTIBAGBnLcNrvQNFTkRUSnH7XyjvxOgbfqGAQ8UHhYioYiYPLQgPD8e3336L7777DpcuXcLEiRORm5trmMVgxIgRmDlzpmH9iRMnIiMjA9OmTcOVK1ewfft2LFiwAJMnT669Z0FEVIE8TTHe23re0B7dIwAu9vy0h8yH4SQvgLMVENWAydNvDRs2DGlpaZgzZw6Sk5PRvn177Nq1y3AC2I0bNyCVltbHfn5+2L17N9544w089NBD8PHxwbRp0/Duu+/W3rMgIqrA4j1XEJ+RDwBo66PGgFYe99mCqH6pyxayHFZAZDKJIAiC2CHuJysrC2q1GpmZmVCpVGLHISILcDb+Dp5e/jd0AiCXSbB0eAd4O9qIHYvIQJ51HS1/6qVveD8MjD8kah4ic2FK3VfnsxYQEdW3Iq0O724+B93dt+nDuzRhEUtmR11ySVqAsxUQ1RALWSJqcL758xqik7MBAIGudni6vY/IiYjKMxpW0Oop8YIQWTAWskTUoFxNy8F/9/8LAJBKgKn9g2El4586Mi9WuTdhmxqpb7i3Blx4gQ6imuBfdyJqMHQ6ATM3n4emWD/d31PtfdDM3V7kVETlGQ0r4GwFRDXGQpaIGowfT97AibgMAICnSokXuzQRORFRxVS8mhdRrWAhS0QNQnJmAT7ZEW1oT+nXDEq5rIotiMQhy0+HXcoJfcOlGeAeIm4gIgvGQpaILJ4gCJj1ywVkFxYDAMJC3NHOz1HcUESVUF3fDYlw92qXIU8CEom4gYgsGAtZIrJ4Oy8kY9+lFACAo60cY3oEiJyIqHLqWF7Ni6i2sJAlIot2J0+DOb9eNLRf6x0EB6VcxERElZMW3oF90hF9w7EJ4NVe1DxElo6FLBFZtAU7LiE9pxAAEBrgjB5BLiInIqqc6vpeSAT9EBgOKyB6cCxkichi/R2Tjp9OJQAAbK1lmNgnCBIWBmTGjC6CwNkKiB4YC1kiskj5Gi1mbjlvaI/q7g8Xe4WIiYiqJtXkwD7xL33DwQvw7SxuIKIGgIUsEVmkJfuu4EZGHgCgtbcKA1t7ipyIqGoO8Qcg1eqHwaDlE4CU/4KJHhR/i4jI4pxPyMS3f10DAFhJJZjSrxmkHFJAZk4dt6O0wdkKiGoFC1kisihFWh3e3XwOOkHffqFLE/g62Yobiug+JMX5cIg/qG/YOANNuosbiKiBYCFLRBbl27+uIepmFgDA38UWzzzsI3IiovtzSPgD0uJ8faPlYEBmJW4gogaChSwRWYzY9Fws2fcvAEAqAab2D4aVjH/GyPypjC6C8JR4QYgaGP4HICKLoNMJmLH5HDTF+kt7PtnOG809HERORXR/Em0hVDf26RsKNRDQR9xARA0IC1kisggbT8XjeGwGAMDdQYGXQpuKnIioeuyT/oasKFvfaPEYYGUtbiCiBoSFLBGZvZSsAizYccnQntyvGZRymYiJiKrPaFgBL4JAVKtYyBKR2Zv760VkF+gv69m/pTs6NHESORFRNemKobq+R39fbgc0e0TcPEQNDAtZIjJruy7cxK6LyQAAtY0cY3sEiJyIqPrsbh6DVeFtfSP4UUBuI24gogaGhSwRma3M/CLM+fWioT2+VyBUNnIRExGZRh1XdrYCDisgqm0sZInIbH2yMxqp2fpLenZq6oRewa4iJyIygaCDKm6X/r5MAQQPEDcPUQPEQpaIzNKxa7fw44kbAAAbuQwT+wZBwsvQkgWxTTkFeX6avtHsEUDB6eKIahsLWSIyOwVFWszcct7QHtmtKdwdlCImIjKd0bACzlZAVCdYyBKR2fly/7+ITc8FALT0dMCgtl4iJyIykSCUDiuQWunnjyWiWsdClojMSlRSFr7+8xoAwEoqwdT+wZBySAFZGJv0c7DOSdQ3AvoANpwyjqgusJAlIrNRrNVhxpZz0OoEAMDznfzQxNlW5FREplNxtgKiesFClojMxpq/43AuIRMA4Odsi2c7+oqciKgGBAHqkqt5SaRAyyfEzUPUgLGQJSKzcONWHj7fexkAIAHwer9mkMv4J4osjzIjGoqsWH2jaQ/AjtPGEdUV/pcgItEJgoD3tp5HQZEOADD4IS+09FKJnIqoZlRxO0obrZ4SLwhRI8BClohEtzkyEYdj0gEArvYKvNK1qciJiGpOHbv97j0JEDJE1CxEDR0LWSISVVp2IT76PcrQntQ3CLbWViImIqo5xe0rUN6J0TeadAMcPMUNRNTA1aiQXbZsGfz9/aFUKhEaGooTJ05Ua7sNGzZAIpFg6NChNdktETVAc369gMz8IgBA72A3dPZ3FjkRUc2pYzmsgKg+mVzIbty4EeHh4Zg7dy4iIyPRrl07DBw4EKmpqVVuFxcXh7feegu9evWqcVgiali2n7uJnReSAQAqpRXG9w4UORHRg1GVLWQ5rICozplcyC5evBjjxo3D6NGj0apVK6xcuRK2trZYvXp1pdtotVq89NJL+OCDDxAYyH9URATcyinEnF8vGNoT+gRBbSMXMRHRg7HOvAab29H6hm9nQO0jbiCiRsCkQlaj0eD06dMICwsrfQCpFGFhYTh69Gil23344Ydwd3fH2LFja56UiBqUeb9F4VauBgDQLdAFPZtxiiKybBxWQFT/TDqjIj09HVqtFh4eHkb9Hh4eiI6OrnCbw4cPY9WqVThz5ky191NYWIjCwkJDOysry5SYRGTmdl9Mxm9nkwAADgorTOwTBAkvQ0sWzqiQDeHVvIjqQ53OWpCdnY1XXnkF3377LVxdq3+0ZeHChVCr1Yabn59fHaYkovp0J0+DWb+UDikY1zsQTnbWIiYienDyrOuwuXX359r7YcCJU8gR1QeTjsi6urpCJpMhJSXFqD8lJQWenuWnGLl69Sri4uIwZEjpgHedTj/huZWVFS5fvoygoKBy282cORPh4eGGdlZWFotZogbiw9+jkJat/8Sls78T+jZ3EzkR0YNTx+0sbXBYAVG9MamQtba2RseOHbF//37DFFo6nQ779+/HlClTyq3fsmVLnD9/3qhv1qxZyM7Oxn//+99Ki1OFQgGFQmFKNCKyAAeiU7AlMhEAYGctw+S+zTikgBoEDisgEofJs46Hh4dj5MiR6NSpE7p06YIlS5YgNzcXo0ePBgCMGDECPj4+WLhwIZRKJdq0aWO0vaOjIwCU6yeihi2roAjvbSkdUjC2ZwBc7PmGlSyfPDsBtmln9A3PtoBL+U8aiahumFzIDhs2DGlpaZgzZw6Sk5PRvn177Nq1y3AC2I0bNyCV8oJhRGTs498vITmrAADQoYkjwkI87rMFkWVQxe0qbXBYAVG9kgiCIIgd4n6ysrKgVquRmZkJlUoldhwiMtGfV9IwYrX+CoA2chmWvvgw3B2UIqciqh2B256GXeppfWPyScCtubiBiCycKXUfD50SUZ3KzC/CO5vOGdqje/iziKUGQ56dUFrEuoWwiCWqZyxkiahOfbDtomFIQXs/RzzWuvwMJ0SWSh37e2mj7TPiBSFqpFjIElGd2XXhJrb8UzpLwev9gzlLATUojle3lTZa/594QYgaKRayRFQn0rIL8d7W0lkKxvcOhJsDZymghsM685rxRRA4WwFRvWMhS0S1ThAEzNxyHhm5GgBAt0AX9GvhLnIqotrleO230kYbDisgEgMLWSKqdZtOJ2DfJf0VANU2ckzuxwsfUAMjCFBf/bW03fpp8bIQNWIsZImoViXczsOHv0UZ2pP7NYPaRi5iIqLap7h9Gco7MfpGk26A2lfcQESNFAtZIqo1Op2At38+h+zCYgBA/5bu6BboInIqotpndJIXhxUQiYaFLBHVmu+OxuHotVsAAFd7Bcb3ChQ5EVEdEASor90tZCVSXs2LSEQsZImoVkQnZ2HhzmhDe/ojwbBTmHwVbCKzZ5N+DorsG/pGQG/AnicyEomFhSwRPbCCIi2m/XgGmmIdAGDIQ15o5+cobiiiOqLmsAIis8FCloge2Cc7o3E5JRsA4O9ii1HdA0RORFRHdFo4lgwrkMqBlk+Im4eokWMhS0QP5GB0KtYeiQMAWMukeGtAC1hb8U8LNUz2SX9DnqefWg7BjwK2zuIGImrk+N+GiGosLbsQb286a2iP6eGPpi52IiYiqluOMVtKGw8NEy8IEQFgIUtENaTTCXjr57NIz9FfvauzvxMeb+slciqiuiMtyoUqbpe+oVQDzR8TNxARsZAloppZeyQOf1xJAwA42srxev9gXr2LGjRV3C7IivP0jdZPA3KluIGIiIUsEZkuKikLn+wqnWrrjUeaw9HWWsRERHXPeFjBC+IFISIDFrJEZJKcwmJMWR9pmGrrqXbe6NDUSeRURHXLKjcZ9omH9Q3HpkCTruIGIiIALGSJyASCIOC9LedxLT0XABDkZoeR3f3FDUVUDxyv/gIJBH2j3QsAh9EQmQUWskRUbetP3MC2s0kAAFtrGd59rCXkMv4ZoQZOEOD07+bSNmcrIDIb/A9ERNVyMSkTH/wWZWi/3j8YXmobERMR1Q9lRhSUty/rG75dAJcgcQMRkQELWSK6r+yCIkyOKB0X+0RbL/Ro5ipyKqL64XTlp9JGOx6NJTInLGSJqEqCIGDmlvOIu6WfdqiZmz3G9OQlaKlxkBQXlM5WYKUE2jwjbiAiMsJCloiq9MOx6/j93E0AgB3HxVIjo7q+G1aFmfpGq6cAG87QQWRO+N+IiCp1Ki4DH/5eZlzsI8HwVHMSeGo8nC//WNroMEK8IERUIRayRFShlKwCTIyIRJFWP+XQU+280T2I42Kp8bDOioN90hF9wzkQaNpD3EBEVA4LWSIqR1Osw6SISKRlFwIAHvJRY3QPjoulxsXpcpmTvDqM4NyxRGaIhSwRlfPh7xdx+vptAICrvQLvPNYSMin/iVMjoiuG078/6+9LZEC7F8XNQ0QVYiFLREZ+OhmPH47dAADIZRK8N6gl1DZykVMR1S+HhEOQ56XoGy0GAQ4e4gYiogqxkCUig7PxdzDr1wuG9qS+zRDs4SBiIiJxOF/6obTx8CviBSGiKrGQJSIAQNKdfLz6/SnDRQ8Gt/VCWAiPQlHjY50VB4f4g/qG2g8IflTcQERUKRayRITcwmK8+t0pw8ldrb1VGMuLHlAj5XzpB0ign60DncYAUpm4gYioUixkiRo5nU7A9I1nEHUzCwDgqVJi5qAQXvSAGiVJcT6crmzUN2TWnDuWyMzxPxVRI/fp7mjsjdKf1GJnLcOcJ1rx5C5qtByv/lp6Ja82zwB2nDuZyJyxkCVqxH46FY+v/7gGAJBKgHceawk/Z1uRUxGJRBDgEvVdabvzOPGyEFG11KiQXbZsGfz9/aFUKhEaGooTJ05Uuu63336LXr16wcnJCU5OTggLC6tyfSKqH3/HpOP9recN7fG9g9ChCa8jT42Xbepp2Ny6qG94dwB8O4obiIjuy+RCduPGjQgPD8fcuXMRGRmJdu3aYeDAgUhNTa1w/UOHDmH48OE4ePAgjh49Cj8/PwwYMACJiYkPHJ6IauZiUiZeW3facPnZJ9p6YXBbL5FTEYnL5cLq0kYXHo0lsgQSQRAEUzYIDQ1F586dsXTpUgCATqeDn58fpk6dihkzZtx3e61WCycnJyxduhQjRlRvEH1WVhbUajUyMzOhUqlMiUtE94jPyMP/rThimKGgi78z3ns8hFfuokZNnn0DLX7qDYmgA+zcgOkXALlS7FhEjZIpdZ9JR2Q1Gg1Onz6NsLCw0geQShEWFoajR49W6zHy8vJQVFQEZ2dnU3ZNRLUgI1eDEatPGIrYlp4OeHtgCxax1Oi5nv+fvogFgC6vsYglshBWpqycnp4OrVYLDw/jSdI9PDwQHR1drcd499134e3tbVQM36uwsBCFhYWGdlZWlikxiagCeZpijFl7ErHpuQAAH0cbzB7cCko558ikxk1WcAfOJVNuyW2BzmPFDURE1VavsxZ88skn2LBhA7Zu3QqlsvJ3uwsXLoRarTbc/Pz86jElUcNTWKzFpIhInIm/AwBwtrXGh0+2horTbBHB+dI6SIvz9Y2HXwZs+YkhkaUwqZB1dXWFTCZDSkqKUX9KSgo8PT2r3PY///kPPvnkE+zZswcPPfRQlevOnDkTmZmZhlt8fLwpMYmojGKtDq//+A8OXU4DANhayzDvyVZwV/GjUyJJcQFcotbebUiBrpNEzUNEpjGpkLW2tkbHjh2xf/9+Q59Op8P+/fvRrVu3SrdbtGgRPvroI+zatQudOnW6734UCgVUKpXRjYhMp9UJePPns9h9Uf/m09pKitmDWyHA1V7kZETmwTFmM+T5+jd5CHkScOalmYksiUljZAEgPDwcI0eORKdOndClSxcsWbIEubm5GD16NABgxIgR8PHxwcKFCwEAn376KebMmYP169fD398fycnJAAB7e3vY2/OfKVFd0ekEvL/1PH49kwQAsJJK8P7jIWjjoxY5GZF5kGg1cD+zrLSjx+vihSGiGjG5kB02bBjS0tIwZ84cJCcno3379ti1a5fhBLAbN25AKi090LtixQpoNBo8++yzRo8zd+5czJs378HSE1GFBEHAh79HYcNJ/bAcmVSCGYNa8oIHRGU4/rsZ1jkJ+kazMMCHF0AgsjQmzyMrBs4jS1R9Op2AD367iO+OXgegv/TsWwNaoFewm8jJiMyIrggtfuoL65y752CM3Qf4dRY3ExEBMK3uM/mILBGZL51OwPu/nMePJ/T/nCUApvYPZhFLdA+nf7eUFrFB/VnEElkoFrJEDYRWJ+CdTeewOVL/UalUArzePxiPhHjcZ0uiRkZXBLczX5W2+9z/qpREZJ5YyBI1AMVaHcJ/OottZ/UndkklwJuPtkDv5jwSS3Qv58sboMi+oW8E9gWahIqah4hqjoUskYXL12gxZX0k9kenAtCf2PX2gBbo0cxV5GRE5kdalAv3yCWlHf1miZaFiB4cC1kiC3Y7V4Ox351E5I07APRTbM0c1BJdAlzEDUZkplzPf2s8byzHxhJZNBayRBYq8U4+Rq4+gZjUHACAjVyG9weHoJ2vo7jBiMyULD8drue/1jckMuCRueIGIqIHxkKWyAJdTs7GyNUnkJxVAABwspVj3pDWCHTjRUaIKuMRuQSyolx9o+MowLWZqHmI6MGxkCWyMAeiU/D6j2eQU1gMAPBWK/HBU23gqVKKnIzIfClvXYRz9A/6htwO6POuuIGIqFawkCWyEIIg4H9/xWLBzksouYxJM3d7zBvSGmobubjhiMyZoIP3kdmQCDp9u/dbgAOnpSNqCFjIElkATbEO7289j59PJxj6ejRzxfRHgqGUy0RMRmT+HP/dDLuUU/qGSzOg2xRxAxFRrWEhS2TmkjMLMGV9JE5dv23oG97ZDy90aQKpRCJiMiLzJy3MhOeJhaUdgxYBVtbiBSKiWsVClsiM/R2Tjtd//Ae3cjUAAGuZFNPDeMlZouryOj4f8oJ0fSNkCNDsEXEDEVGtYiFLZIZ0OgHLDsZg8b4rhvGwbg4KzHisJZp7OIgbjshC2Cf8AecrG/UNawfgsU/EDUREtY6FLJGZSc0uwNs/n8MfV9IMfR2bOiE8rDlUPKmLqFqkmmz4/PVOaceAjwC1r3iBiKhOsJAlMiN7LiZjxpbzyLg7lEAC4KXQJniukx/HwxKZwOvYR7DOvalvBPTRzxtLRA0OC1kiM5BbWIyPfo/ChpPxhj5HWznCw5rj4SZOIiYjsjzqq9vgfGWDviG3A578CuAbQaIGiYUskciOxKRj5tbzuH4rz9DXNdAZU/oFc35YIhPJs67D5/DM0o5BnwJOTcULRER1ioUskUju5GmwYMcl/HSqdG5YpVyKcb0C8WiIByQ8gkRkEom2EE0OToWsKFvf0fY54OGXxQ1FRHWKhSxRPRMEAdvP38S8bReRnqMx9Id4qTD9kWB4O9qImI7IQgkCvP+eBdu0M/q2UwAweDGHFBA1cCxkierR5eRsfPj7Rfwdc8vQZ2stw6ju/hjY2pMndBHVkMvF1aVTbVkpgefWAkqVqJmIqO6xkCWqB7dzNVi89woijl+HTijt7xrojAm9g+BirxAvHJGFs0/4A17HPyrteGoZ4N1etDxEVH9YyBLVoYIiLb4/GodlB68iM7/I0O+hUmBsz0B0C3QRMR2R5bNJjUSTfa9BIuj0HT3DgbbPihuKiOoNC1miOqAp1mHDyRtYeiAGqdmFhn6lXIrnO/rhqfY+sLaSipiQyPIpMi7Df/dIyIrvzvjR8gmg/2xxQxFRvWIhS1SLCou12BqZiK8OxCDxTr6hXwKgXwt3jOjWlMMIiGqB4vYVBOx8EVaFmfqOgN7AM6sAKd8gEjUmLGSJakFWQRHWH7+B1YdjjY7AAkC3QBe8FNoETV3sREpH1LAo088jYOfLsCq8re/w7gC8sB6QK8UNRkT1joUs0QOIz8jDD8euI+L4DeQUFhst69DECS+HNkGwh4NI6YgaHruko2i699XSuWK9HwZe3gwo+HtG1BixkCUykVYn4GB0Kn44fh1/XEmDUGYWAgmAroEueKaDL1p48h8rUW1yio6Az9+zIRHuvmls0g148SdOs0XUiLGQJaqm2PRc/PJPIn4+FY+kzAKjZVZSCR5p6Y6nH/aFjxMvaEBUmyTFBfA6Ph8ul74v7Wz2KPD8d4A1h+wQNWYsZImqkJZdiN/PJeGXM0k4G3+n3HI3BwUea+2JR0M84GRnXf8BiRo4xe3L8DswFTa3o0s7u00BHv0QkMrEC0ZEZoGFLNE94jPysCcqBfuiUnAiLgPaslcwgH74QMemTni8rRc6NHGCTMqrcRHVNolWA5cL/4NH5BeQau+eQClTAIM/Bzq8Im44IjIbLGSp0dMU63A24Q7+vJKGvVEpiE7OrnC9AFc79G3uht7N3eDKKbSI6oxd0lF4H5kF5Z1/SzvdW+mn1/JoJV4wIjI7LGSp0dHpBETdzMKRq+n4O+YWTsZlIE+jrXBdL7USPZu5ok9zN06fRVTHbNLOwuP0f+CQ8Edpp0QKhE4AHpkDyDn+nIiMsZClBi8jV4Mz8bfxz407+OfGHZyNv4Pse6bKKquFhwNCA5wRGugCPycbSCQcOkBUZwQd7BP+hOvFNXBIOGi8zLsD8MQXgHd7UaIRkfljIUsNhk4n4EZGHqKTsxCdnI3om9m4lJyF67fyqtzOyVaOdr6OaOfriA5NneDMk7aI6pw8Ox6O17bB6crPUGReM16obgL0fRdoN5wndBFRlVjIkkURBAG384oQdysX12/lIjY9D9dv5SIuPRdXUnKQX1TxEIGynG2t0cLTAW191Gjn58ijrkT1QdBBeSsK9ol/Qn19D2xTI8uvo24C9Hgd6DASsOIbSiK6vxoVssuWLcNnn32G5ORktGvXDl999RW6dOlS6fo///wzZs+ejbi4OAQHB+PTTz/F448/XuPQ1DAJgoCsgmKkZRfgZqb+lnz3a0qW/mvC7TxkF1Q+LOBe1lZSBLraoaWnA1p4qtDCwwGu9tYsXInqmFSTDZv0C7BJPwubtLOwv3kMVgW3Kl7ZvxfQdSLQ/DEegSUik5hcyG7cuBHh4eFYuXIlQkNDsWTJEgwcOBCXL1+Gu7t7ufWPHDmC4cOHY+HChXjiiSewfv16DB06FJGRkWjTpk2tPAkyH1qdgJzCYuQWFiOnsBjZBaX3S9p38jTIyNXg9t2v+lsR7uRpUHzPVFfVJQHgoVLC39UW/i52hpunWsnpsYjqgk4Lq4J0WOWlQp6XCuvseFhnXoMi8xoUmbGQ5yRAgip+n91bA22fAdo8Azj511tsImpYJIIgmFQ5hIaGonPnzli6dCkAQKfTwc/PD1OnTsWMGTPKrT9s2DDk5ubi999/N/R17doV7du3x8qVK6u1z6ysLKjVamRmZkKlqvtLEWZmpKEwPw/C3T/CQsnt7ktV8ooJAiARBAgQIAgw/MkW7m5Z+srql6PM9veuY7x+yb6Ee5YLpfsQyjwuSh+3WKeDTqcvKLWCoP9696YTBBTrBOh0Omh1gFanM6yn0+mXaXWAVhBQpNVBU6xDUbEWmmIdCrU6aIp00Gh10BRr9V+LBBRq7y4v1iFfU4zCYl01X+Xq/9iV/DOUSSRwtJXDQ6WEu4MC7g5KuKv0X13tFZDLJFX/46x5BFNXNm19E34FTXt+pmSuo3VNfl9iwmthFs/PDDLAxNdC0EGi00CiLYL07ld9WwOJruhuuxDS4gJINdmQFeVApsm+e1//1So/HVYFtyARqvv7DsDaAQjoDQT1A4L6Ay5BJj1HImo8TKn7TDoiq9FocPr0acycOdPQJ5VKERYWhqNHj1a4zdGjRxEeHm7UN3DgQPzyyy+V7qewsBCFhYWGdlZWlikxH9i/a8ahU/bB+69IxmR3b3WpGEDG3RsRmSeFCnBppp9twLsD4NMBcG0ByHhaBhHVLpP+qqSnp0Or1cLDw8Oo38PDA9HR0RVuk5ycXOH6ycnJle5n4cKF+OCDD0yJVqv4QTQRUSVk1oCtC+DgCdh7Ag4e+q9qH33x6tIMsHMDOA6diOqBWb49njlzptFR3KysLPj5+dXb/os92uMfXRGAskWtxKjCNf4TLalolfJrSMqsW6Z97zYlbUFSfpnRI5TuFgIkkNxdXyJBhfelEn1AKfQLpBIJ7nbp1ylzXyqRQCbVbyOVSiGTSCC925ZJ725b4RM15Z+XCeuaxePW5WObw+Oa8LB8jc3rcU16bIl+RgCZQl+UWlnrv5a9WVkDVkpA4aA/uqpwAJRq/VcrXtWOiMyHSYWsq6srZDIZUlJSjPpTUlLg6elZ4Taenp4mrQ8ACoUCCoV4fyxDX54n2r6JiIiIqHqkpqxsbW2Njh07Yv/+/YY+nU6H/fv3o1u3bhVu061bN6P1AWDv3r2Vrk9EREREVB0mDy0IDw/HyJEj0alTJ3Tp0gVLlixBbm4uRo8eDQAYMWIEfHx8sHDhQgDAtGnT0KdPH3z++ecYPHgwNmzYgFOnTuGbb76p3WdCRERERI2KyYXssGHDkJaWhjlz5iA5ORnt27fHrl27DCd03bhxA1Jp6YHe7t27Y/369Zg1axbee+89BAcH45dffuEcskRERET0QEyeR1YM9T2PLBERERGJw5S6z6QxskRERERE5oKFLBERERFZJBayRERERGSRWMgSERERkUUyyyt73avkfLSsrCyRkxARERFRXSqp96ozH4FFFLLZ2dkAUK+XqSUiIiIi8WRnZ0OtVle5jkVMv6XT6ZCUlAQHBwdITL5ue81kZWXBz88P8fHxnPKrAeD3s2Hh97Nh4fezYeH3s2ER4/spCAKys7Ph7e1tdG2CiljEEVmpVApfX19R9q1SqfiL2IDw+9mw8PvZsPD72bDw+9mw1Pf3835HYkvwZC8iIiIiskgsZImIiIjIIrGQrYRCocDcuXOhUCjEjkK1gN/PhoXfz4aF38+Ghd/PhsXcv58WcbIXEREREdG9eESWiIiIiCwSC1kiIiIiskgsZImIiIjIIrGQNUFhYSHat28PiUSCM2fOiB2HaiAuLg5jx45FQEAAbGxsEBQUhLlz50Kj0Ygdjapp2bJl8Pf3h1KpRGhoKE6cOCF2JKqhhQsXonPnznBwcIC7uzuGDh2Ky5cvix2LasEnn3wCiUSC6dOnix2FHkBiYiJefvlluLi4wMbGBm3btsWpU6fEjmWEhawJ3nnnHXh7e4sdgx5AdHQ0dDodvv76a1y8eBFffPEFVq5ciffee0/saFQNGzduRHh4OObOnYvIyEi0a9cOAwcORGpqqtjRqAb++OMPTJ48GceOHcPevXtRVFSEAQMGIDc3V+xo9ABOnjyJr7/+Gg899JDYUegB3L59Gz169IBcLsfOnTsRFRWFzz//HE5OTmJHM8JZC6pp586dCA8Px+bNm9G6dWv8888/aN++vdixqBZ89tlnWLFiBa5duyZ2FLqP0NBQdO7cGUuXLgWgv3y1n58fpk6dihkzZoicjh5UWloa3N3d8ccff6B3795ix6EayMnJQYcOHbB8+XLMnz8f7du3x5IlS8SORTUwY8YM/P333/jrr7/EjlIlHpGthpSUFIwbNw7r1q2Dra2t2HGolmVmZsLZ2VnsGHQfGo0Gp0+fRlhYmKFPKpUiLCwMR48eFTEZ1ZbMzEwA4O+jBZs8eTIGDx5s9HtKlmnbtm3o1KkTnnvuObi7u+Phhx/Gt99+K3ascljI3ocgCBg1ahQmTJiATp06iR2HallMTAy++uorvPbaa2JHoftIT0+HVquFh4eHUb+HhweSk5NFSkW1RafTYfr06ejRowfatGkjdhyqgQ0bNiAyMhILFy4UOwrVgmvXrmHFihUIDg7G7t27MXHiRLz++uv47rvvxI5mpNEWsjNmzIBEIqnyFh0dja+++grZ2dmYOXOm2JGpCtX9fpaVmJiIxx57DM899xzGjRsnUnIiAvRH8i5cuIANGzaIHYVqID4+HtOmTUNERASUSqXYcagW6HQ6dOjQAQsWLMDDDz+M8ePHY9y4cVi5cqXY0YxYiR1ALG+++SZGjRpV5TqBgYE4cOAAjh49Wu7SbJ06dcJLL71kdu9MGqvqfj9LJCUloV+/fujevTu++eabOk5HtcHV1RUymQwpKSlG/SkpKfD09BQpFdWGKVOm4Pfff8eff/4JX19fseNQDZw+fRqpqano0KGDoU+r1eLPP//E0qVLUVhYCJlMJmJCMpWXlxdatWpl1BcSEoLNmzeLlKhijbaQdXNzg5ub233X+/LLLzF//nxDOykpCQMHDsTGjRsRGhpalxHJBNX9fgL6I7H9+vVDx44dsWbNGkiljfaDCYtibW2Njh07Yv/+/Rg6dCgA/RGD/fv3Y8qUKeKGoxoRBAFTp07F1q1bcejQIQQEBIgdiWrokUcewfnz5436Ro8ejZYtW+Ldd99lEWuBevToUW46vCtXrqBp06YiJapYoy1kq6tJkyZGbXt7ewBAUFAQjxxYoMTERPTt2xdNmzbFf/7zH6SlpRmW8aie+QsPD8fIkSPRqVMndOnSBUuWLEFubi5Gjx4tdjSqgcmTJ2P9+vX49ddf4eDgYBjrrFarYWNjI3I6MoWDg0O5sc12dnZwcXHhmGcL9cYbb6B79+5YsGABnn/+eZw4cQLffPON2X2KyUKWGpW9e/ciJiYGMTEx5d6IcCY68zds2DCkpaVhzpw5SE5ORvv27bFr165yJ4CRZVixYgUAoG/fvkb9a9asue9QISKqW507d8bWrVsxc+ZMfPjhhwgICMCSJUvw0ksviR3NCOeRJSIiIiKLxMGBRERERGSRWMgSERERkUViIUtEREREFomFLBERERFZJBayRERERGSRWMgSERERkUViIUtEREREFomFLBERERFZJBayRERERGSRWMgSERERkUViIUtEREREFomFLBGRmfnxxx9hY2ODmzdvGvpGjx6Nhx56CJmZmSImIyIyLxJBEASxQxARUSlBENC+fXv07t0bX331FebOnYvVq1fj2LFj8PHxETseEZHZsBI7ABERGZNIJPj444/x7LPPwtPTE1999RX++usvFrFERPfgEVkiIjPVoUMHXLx4EXv27EGfPn3EjkNEZHY4RpaIyAzt2rUL0dHR0Gq18PDwEDsOEZFZ4hFZIiIzExkZib59++Lrr7/G2rVroVKp8PPPP4sdi4jI7HCMLBGRGYmLi8PgwYPx3nvvYfjw4QgMDES3bt0QGRmJDh06iB2PiMis8IgsEZGZyMjIQPfu3dG3b1+sXLnS0D948GBotVrs2rVLxHREROaHhSwRERERWSSe7EVEREREFomFLBERERFZJBayRERERGSRWMgSERERkUViIUtEREREFomFLBERERFZJBayRERERGSRWMgSERERkUViIUtEREREFomFLBERERFZJBayRERERGSRWMgSERERkUX6f2lCLa+LYqpiAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# @title\n", "# W1 via pseudoinversas\n", "W1_formula = np.trapezoid(np.abs(F_nu_inv - F_mu_inv), t_grid)\n", "\n", "# W1 via area entre las FDA\n", "x_grid = np.linspace(-4, 6, 10000)\n", "F_mu_x = norm.cdf(x_grid, mu_mean, mu_std)\n", "F_nu_x = norm.cdf(x_grid, nu_mean, nu_std)\n", "W1_area = np.trapezoid(np.abs(F_mu_x - F_nu_x), x_grid)\n", "\n", "print(f\"W_1 via pseudoinversas: {W1_formula:.6f}\")\n", "print(f\"W_1 via área entre FDA: {W1_area:.6f}\")\n", "\n", "fig, ax = plt.subplots(figsize=(7, 3.5))\n", "ax.plot(x_grid, F_mu_x, lw=2, label=r\"$F_\\mu$\")\n", "ax.plot(x_grid, F_nu_x, lw=2, label=r\"$F_\\nu$\")\n", "ax.fill_between(x_grid, F_mu_x, F_nu_x, alpha=0.2,\n", " label=f\"Área = $W_1$ ≈ {W1_area:.4f}\")\n", "ax.set_xlabel(\"$x$\")\n", "ax.set_title(r\"$W_1(\\mu,\\nu)$ como área entre las FDA\")\n", "ax.legend(fontsize=9)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "cell_4b_md" }, "source": [ "### Costos convexos generales y la fórmula del costo óptimo para medidas discretas\n", "\n", "La Proposición 8.4.4 vale para cualquier $h$ convexa, no sólo potencias: el costo óptimo es\n", "$\\int_0^1 h\\bigl(F_\\nu^{[-1]}(t)-F_\\mu^{[-1]}(t)\\bigr)\\,dt$.\n", "Para medidas discretas con pesos desiguales esta integral se calcula **exactamente**: el integrando es constante en cada tramo donde ninguna de las dos pseudoinversas salta, y esos tramos son precisamente las entradas no nulas de $\\gamma_{\\mathrm{mon}}$. Comparamos con el LP (`ot.emd`) para tres costos convexos distintos.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "cell_4b_code" }, "outputs": [], "source": [ "# @title\n", "rng = np.random.default_rng(0)\n", "n, m = 6, 9\n", "x = np.sort(rng.uniform(-2, 2, n)); a = rng.dirichlet(np.ones(n))\n", "y = np.sort(rng.uniform(-1, 4, m)); b = rng.dirichlet(np.ones(m))\n", "\n", "G_mon = plan_comonotono(x, a, y, b)\n", "D = x[:, None] - y[None, :]\n", "\n", "for nombre, h in {\"z^2\": lambda z: z**2, \"|z|^3\": lambda z: np.abs(z)**3,\n", " \"cosh(z)\": np.cosh, \"|z|^{1.5}\": lambda z: np.abs(z)**1.5}.items():\n", " C = h(-D)\n", " costo_formula = np.sum(G_mon * C) # = int_0^1 h(F_nu^{-1} - F_mu^{-1}) dt, exacto\n", " costo_lp = np.sum(ot.emd(a, b, C) * C)\n", " print(f\"h(z) = {nombre:9s} fórmula: {costo_formula:.8f} LP: {costo_lp:.8f} \"\n", " f\"dif: {abs(costo_formula-costo_lp):.1e}\")\n" ] }, { "cell_type": "markdown", "id": "dc5cfb9d", "metadata": {}, "source": [ "## 7. Costos con $\\partial^2c/\\partial x\\partial y>0$: el plan antimonótono\n", "\n", "El Teorema de optimalidad del mapa monótono cubre los costos $h(y-x)$ con $h$ estrictamente convexa y los costos $C^2$ con $\\partial^2c/\\partial x\\partial y<0$. Si la derivada cruzada es **positiva** (por ejemplo $c(x,y)=xy$, o $c(x,y)=-|x-y|^2$, que corresponde a *maximizar* el costo cuadrático), el mismo argumento de monotonía cíclica de dos puntos da la conclusión opuesta: el plan óptimo es el **antimonótono**, que empareja los cuantiles de $\\mu$ con los cuantiles de $\\nu$ en orden inverso, $F_\\mu^{[-1]}(t)\\leftrightarrow F_\\nu^{[-1]}(1-t)$ (Ejercicio 8.4). Lo verificamos con POT." ] }, { "cell_type": "code", "execution_count": null, "id": "a201415c", "metadata": {}, "outputs": [], "source": [ "# @title\n", "import numpy as np, ot, matplotlib.pyplot as plt\n", "rng = np.random.default_rng(3)\n", "n = 200\n", "xs = np.sort(rng.normal(0, 1, n)); ys = np.sort(rng.exponential(1, n))\n", "a = b = np.ones(n)/n\n", "for nombre, C in [(r\"c = |x-y|^2\", (xs[:, None]-ys[None, :])**2), (r\"c = x y\", xs[:, None]*ys[None, :]), (r\"c = -|x-y|^2\", -(xs[:, None]-ys[None, :])**2)]:\n", " pi = ot.emd(a, b, C)\n", " sigma = np.argmax(pi, axis=1) # con masas iguales el plan es una permutación\n", " mon = np.all(sigma == np.arange(n)); anti = np.all(sigma == np.arange(n)[::-1])\n", " print(f\"{nombre:>14}: plan monótono = {mon}, plan antimonótono = {anti}\")" ] }, { "cell_type": "markdown", "id": "88c54277", "metadata": {}, "source": [ "## Ejercicios computacionales\n", "\n", "Los enunciados siguientes figuran también en la sección de ejercicios del Capítulo 8 de las notas.\n", "\n", "1. **Mapas monótonos explícitos.** Calcular numéricamente $T_{\\mathrm{mon}}$ para $\\mu=\\mathcal L^1\\lfloor_{[0,1]}$ y $\\nu$ exponencial, para $\\mu$ uniforme y $\\nu=\\frac13\\delta_0+\\frac23\\delta_1$, y para $\\mu=\\frac12(\\delta_0+\\delta_1)$ y $\\nu$ uniforme, y comparar con las fórmulas del Ejercicio 8.1. En el último caso, verificar que el plan comonótono **no** está inducido por un mapa y describirlo.\n", "\n", "2. **Dominancia estocástica.** Para pares $(\\mu,\\nu)$ de muestras, verificar numéricamente la equivalencia entre $F_\\mu\\ge F_\\nu$ y $T_{\\mathrm{mon}}\\ge\\mathrm{id}$ (Ejercicio 8.3): graficar ambas condiciones para $\\mu=N(0,1)$ y $\\nu=N(m,\\sigma^2)$ con varios $(m,\\sigma)$, y hallar la región del plano $(m,\\sigma)$ donde valen.\n", "\n", "3. **Cotas de Fréchet–Hoeffding.** Para $\\mu$, $\\nu$ discretas con $n$ átomos, calcular la función de distribución conjunta $H(x,y)$ de varios planes (el comonótono, el antimonótono, el producto y planes aleatorios) y verificar las cotas $\\max\\{F_\\mu+F_\\nu-1,0\\}\\le H\\le\\min\\{F_\\mu,F_\\nu\\}$ del Ejercicio 7.2, con igualdad en las cotas para los planes extremos.\n", "\n", "4. **Costos cóncavos.** Con $\\mu=\\frac12(\\delta_0+\\delta_1)$ y $\\nu=\\frac12(\\delta_1+\\delta_2)$, calcular el plan óptimo de $|x-y|^p$ para $p\\in\\{0{,}25,\\,0{,}5,\\,1,\\,2\\}$ y determinar en qué $p$ deja de ser óptimo el plan monótono. Repetir con dos densidades continuas que se superpongan y medir la masa que el plan óptimo deja en la diagonal como función de $p$ (Ejercicio 8.5).\n", "\n", "5. **La fórmula del área y $p>1$.** Verificar numéricamente que $W_1(\\mu,\\nu)=\\int|F_\\mu-F_\\nu|\\,dx$ para muestras de distintas distribuciones, y que en cambio $W_2^2\\ne\\int|F_\\mu-F_\\nu|^2\\,dx$ (Ejercicio 10.5). Explicar la diferencia geométricamente con las figuras de la Sección 6." ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }