{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Principle of Maximum Likelihood\n", "\n", "\n", "## Description:\n", "\n", "Python script for illustrating the principle of maximum likelihood and a likelihood fit.\n", "\n", "__This is both an exercise, but also an attempt to illustrate four things:__\n", " 1. How to make a (binned and unbinned) Likelihood function/fit.\n", " 2. The difference and a comparison between a Chi-square and a (binned) Likelihood.\n", " 3. The difference and a comparison between a binned and unbinned Likelihood.\n", " 4. What goes on behind the scenes in Minuit, when it is asked to fit something.\n", "\n", "In this respect, the exercise is more of an illustration rather than something to be used directly, which is why it is followed later by another exercise, where you can test if you have understood the differences, and how and when to apply which fit method.\n", "\n", "The example uses 50 exponentially distributed random times, with the goal of finding the best estimate of the lifetime (data is generated with lifetime, tau = 1). Three estimates are considered:\n", " 1. Chi-square fit (chi2)\n", " 2. Binned Likelihood fit (bllh)\n", " 3. Unbinned Likelihood fit (ullh)\n", "\n", "While the mean can be simply calculated, the three other methods are based on a scan of values for tau in the range [0.5, 2.0]. For each value of tau, the chi2, bllh, and llh are calculated. In the two likelihood cases, it is actually -2*log(likelihood) which is calculated, which you should (by now) understand why.\n", " \n", "Note that the unbinned likelihood is in principle the \"optimal\" fit, but also the most difficult for several reasons (convergence, numerical problems, implementation, speed, etc.). However, all three methods/constructions essentially yield the same results, when there is enough statistics (i.e. errors are Gaussian), though the $\\chi^2$ also gives a fit quality.\n", " \n", "The problem is explicitly chosen to have only one fit parameter, such that simple 1D graphs can show what goes on. In this case, the analytical solution is actually prefered (see Barlow). Real world problems will almost surely be more complex. Also, it is meant more for illustration, as in reality, one tends to simply do the minimization using an algorithm (Minuit) to do the hard work.\n", "\n", "### Authors: \n", "- Troels C. Petersen (Niels Bohr Institute, petersen@nbi.dk)\n", "- Étienne Bourbeau (etienne.bourbeau@icecube.wisc.edu)\n", "\n", "### Date: \n", "- 23-11-2018 (latest update)\n", "\n", "### Reference:\n", "- Barlow, chapter 5 (5.1-5.7)\n", "- Cowan, chapter 6\n", "\n", "***\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np # Matlab like syntax for linear algebra and functions\n", "import matplotlib.pyplot as plt # Plots and figures like you know them from Matlab\n", "import seaborn as sns # Make the plots nicer to look at\n", "from iminuit import Minuit # The actual fitting tool, better than scipy's\n", "from probfit import BinnedLH, Chi2Regression, Extended # Helper tool for fitting\n", "import sys # Module to see files and folders in directories\n", "from scipy import stats" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "sys.path.append('../../External_Functions')\n", "from ExternalFunctions import nice_string_output, add_text_to_ax # useful functions to print fit results on figure\n", "\n", "plt.rcParams['font.size'] = 18 # set some basic plotting parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Program settings:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "save_plots = False # Determining if plots are saved or not\n", "verbose = True # Should the program print or not?\n", "veryverbose = True # Should the program print a lot or not?\n", "\n", "ScanChi2 = True # In addition to fit for minimum, do a scan...\n", "\n", "# Parameters of the problem:\n", "Ntimes = 100 # Number of time measurements.\n", "tau_truth = 1.0; # We choose (like Gods!) the lifetime.\n", "\n", "# Binning:\n", "Nbins = 50 # Number of bins in histogram\n", "tmax = 10.0 # Maximum time in histogram\n", "binwidth = tmax / Nbins # Size of bins (s)\n", "\n", "# General settings:\n", "r = np.random # Random numbers\n", "r.seed(42) # We set the numbers to be random, but the same for each run" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Generate data:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Produce (list of) exponentially distributed times and put them in a histogram:\n", "t = r.exponential(tau_truth, Ntimes) # Exponential with lifetime tau.\n", "yExp, xExp_edges = np.histogram(t, bins=Nbins, range=(0, tmax))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Is the data plotted like we wouls like to? Let's check..." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "lines_to_next_cell": 2 }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0: t = 0.469\n", " 1: t = 3.010\n", " 2: t = 1.317\n", " 3: t = 0.913\n", " 4: t = 0.170\n", " 5: t = 0.170\n", " 6: t = 0.060\n", " 7: t = 2.011\n", " 8: t = 0.919\n", " 9: t = 1.231\n", " 10: t = 0.021\n", " 11: t = 3.504\n" ] } ], "source": [ "# In case you want to check that the numbers really come out as you want to (very healthy to do at first):\n", "if (veryverbose) :\n", " for index, time in enumerate(t) :\n", " print(f\" {index:2d}: t = {time:5.3f}\")\n", " if index > 10: \n", " break # let's restrain ourselves" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks like values are coming int, but are they actually giving an exponential? Remember the importance of __plotting your data before hand__!" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEECAYAAAAvY19bAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAFh5JREFUeJzt3X2UJXV95/H315GHxolODL3RGTLMRsKQBxIJzQKaRDFsZo9mIwczOSErJwbN5AGIujmz60QkDRjHk1nFDbqbHfJkUHOAdZjoSXSAVVyOQLAHMGPWjBgCmB4hw+oIQg+M4zd/VF3s6dzuvvd23Vt9b71f5/Sp6V9V3d+3+uEzt39Vv6rITCRJzfGcuguQJA2WwS9JDWPwS1LDGPyS1DAGvyQ1jMEvSQ1j8EtSwxj8ktQwBr8kNcxz6y6gneOPPz7XrVtXdxmSNFR27979WGaOL7bdsgz+devWMTU1VXcZkjRUIuKhTrZzqEeSGsbgl6SGMfglqWEMfklqGINfkhpmWV7V04ud906zbdde9h2YYfWqMTZvWM95p62puyxJWnZGIvh33jvNlh17mDl0GIDpAzNs2bEHwPCXpDlGYqhn2669z4Z+y8yhw2zbtbemiiRp+RqJ4N93YKardklqspEI/tWrxrpql6QmG4ng37xhPWNHrTiibeyoFWzesL6miiRp+RqJk7utE7he1SNJixuJ4Ici/A16SVrcSAz1SJI6Z/BLUsMY/JLUMAa/JDWMwS9JDWPwS1LDGPyS1DAGvyQ1TEfBHxEnR8SVEXFXROyPiCci4r6IeHtEPK/N9usjYmdEfD0inoyI2yPiVdWXL0nqVqfv+C8C3gr8A3AlsBnYC7wTuCMinr0bWkS8BLgDOBv4/XLblcCuiDi3utIlSb3o9JYN/xvYmpnfmNX2hxFxP/B24I3A+8v2rcAq4PTMvA8gIv4c+DvgAxFxSmZmJdVLkrrW0Tv+zJyaE/ot15fLHwEoh31+DritFfrl/t8E/gg4GThjSRVLkpZkqSd3TyiXj5bLHwWOAe5ss+1d5dLgl6Qa9Rz8EbECeAfwLeAjZfPqcjndZpdWW9tbaEbEpoiYioip/fv391qWJGkRS3nH/z6KE7iXZ2br4bbHlcun22x/cM42R8jM7Zk5kZkT4+PjSyhLkrSQnoI/Iq4CLgG2Z+bWWaueKpfHtNnt2DnbSJJq0HXwR8QkcBnwp8Cvz1m9r1y2G85ptbUbBpIkDUhXwV+G/u8CHwTe1OayzD0Uwzxnt9n9rHI51WWNkqQKdRz8EXE5RehfB1yUmd+eu0152ebHgVdGxI/N2ncl8CbgfuDupRYtSepdRxO4IuJi4ArgYeBW4JciYvYmj2bmLeW/twA/DdwcEVcDjwO/SjHU8xonb0lSvTqdudu69n4txTDPXJ8BbgHIzC9HxMuBdwNvA44G7gH+Q2beurRyJUlL1VHwZ+YbgDd0+qKZ+UXgtb2VJEnqJ2/LLEkNY/BLUsMY/JLUMAa/JDWMwS9JDWPwS1LDdHod/1Dbee8023btZd+BGVavGmPzhvWcd1rbu0NL0sgb+eDfee80W3bsYebQYQCmD8ywZcceAMNfUiON/FDPtl17nw39lplDh9m2a+88e0jSaBv54N93YKardkkadSMf/KtXjXXVLkmjbuSDf/OG9YwdteKItrGjVrB5w/qaKpKkeo38yd3WCVyv6pGkwsgHPxThb9BLUmHkh3okSUcy+CWpYQx+SWoYg1+SGsbgl6SGMfglqWEMfklqGINfkhrG4JekhjH4JalhDH5JahiDX5IaxuCXpIYx+CWpYQx+SWoYg1+SGqaj4I+ILRFxY0Q8EBEZEQ8usO2fldu0+/j5yiqXJPWk0ydwvQv4GnAPsKrDfS5s03Z3h/tKkvqk0+B/SWY+ABARXwBWLrZDZn5oKYVJkvqjo6GeVuh3IwrPjwjPI0jSMtLPUP5G+TETEbdExJl97EuS1KFOh3q68QhwNbAbeBL4MeAtwO0R8erMvLUPfUqSOlR58Gfm2+Y07YyIjwD3Af8T+IF2+0XEJmATwNq1a6suS5JUGsj4e2beD9wAnBQRJ8+zzfbMnMjMifHx8UGUJUmNNMgTrw+Wy+MH2KckaY5BBn9riOfRAfYpSZqj0uCPiOdFxLFt2k8DNgJfzMx/qLJPSVJ3Ojq5GxEXAieWn44DR0fEZeXnD2XmdeW/fwD4RETsBO7nO1f1XAQcpjx5K0mqT6dX9bwReMWctqvK5WeAVvA/AtwKnAP8J2AM+CpwPbA1M/9+SdVKkpaso+DPzFd2uN0jtL9HjyRpmfB2CpLUMAa/JDWMwS9JDWPwS1LDGPyS1DAGvyQ1jMEvSQ1j8EtSwxj8ktQwBr8kNYzBL0kNY/BLUsMY/JLUMAa/JDWMwS9JDWPwS1LDGPyS1DAGvyQ1jMEvSQ1j8EtSwxj8ktQwBr8kNYzBL0kNY/BLUsMY/JLUMAa/JDWMwS9JDWPwS1LDGPyS1DAGvyQ1jMEvSQ3TUfBHxJaIuDEiHoiIjIgHF9n+zIi4NSKeiIjHI+KTEfHSSiqWJC3Jczvc7l3A14B7gFULbRgRZwG3AdPA5WXzJcDtEfGyzNzTW6mSpCp0GvwvycwHACLiC8DKBbb9A+AZ4Kcyc7rc5wbgi8B7gJ/pvVxJ0lJ1FPyt0F9MRJwEnAH8SSv0y/2nI+JG4Fci4kWZ+UhP1Q7Iznun2bZrL/sOzLB61RibN6znvNPW1F2WJFWi6pO7Z5TLO9usuwsI4PSK+6zUznun2bJjD9MHZkhg+sAMW3bsYee904vuK0nDoOrgX10u26Vkq21Zv3XetmsvM4cOH9E2c+gw23btrakiSapW1cF/XLl8us26g3O2OUJEbIqIqYiY2r9/f8VldW7fgZmu2iVp2FQd/E+Vy2ParDt2zjZHyMztmTmRmRPj4+MVl9W51avGumqXpGFTdfDvK5fthnNabct6sHzzhvWMHbXiiLaxo1awecP6miqSpGpVHfyfK5dnt1l3FpDA7or7rNR5p61h6/mnsmbVGAGsWTXG1vNP9aoeSSOj0+v4O5KZX46IKWBjRLwjM/cBRMRqYCPwqeV+KScU4W/QSxpVHQV/RFwInFh+Og4cHRGXlZ8/lJnXzdr8zcCnKWbqXlO2XUrx18VvL71kSdJSdPqO/43AK+a0XVUuPwM8G/yZeUdEvBJ4Z/mRwB3Axsz8/JKqrZgTtSQ1Uaczd1/ZzYtm5p3AT/dS0KC0Jmq1rtlvTdQCDH9JI62xt2V2opakpmps8DtRS1JTNTb4naglqakaG/xO1JLUVJVexz9MWidwvapHUtM0NvjBiVqSmqmxQz2S1FSNfsffLSd8SRoFBn+HnPAlaVQ41NMhJ3xJGhUGf4ec8CVpVBj8HXLCl6RRYfB3yAlfkkaFJ3c75IQvSaPC4O+CE74kjQKHeiSpYQx+SWoYg1+SGsbgl6SGMfglqWEMfklqGINfkhrG4JekhjH4JalhDH5Jahhv2dBn8z21y6d5SaqLwd9H8z21a+qhr/HR3dM+zUtSLRzq6aP5ntr1F3/zFZ/mJak2Bn8fzfd0rsOZXW0vSVUy+PtovqdzrYjoantJqpLB30fzPbXrgjO/z6d5SapNX07uRkT7sQx4MjNX9qPP5Wihp3ZNnPhCr+qRVIvIecabl/SiRfDfDmyfs+pQZl6/2P4TExM5NTVVeV2SNMoiYndmTiy2XT8v53wgMz/Ux9eXJPWgr9fxR8TRwNGZ+c1+9jNKnNglqd/6eXL354GngCci4p8j4pqIeEEf+xt6rQlf0wdmSL4zsWvnvdN1lyZphPQr+O8GJinC/5eBTwGXALdHRGNO7nZrvglfTuySVKW+DPVk5plzmv48Iv4W+D3gzeXyCBGxCdgEsHbt2n6UtezNN4HLiV2SqjTI6/i3Ac8Ar2m3MjO3Z+ZEZk6Mj48PsKzlY74JXE7sklSlgQV/Zh4C9gHHD6rPYTPfhC8ndkmq0sDuzhkRxwInAHcNqs9hs9CEL0mqSuXBHxHfk5n/v82qq8r+Pl51n6PkvNPWGPSS+qof7/gvi4izgE8DDwMrgVcD5wB/A1zThz4lSR3qR/DfBvwQxWWc3wMcBu4H3g68NzMP9qFPSVKHKg/+zPxL4C+rfl1JUjW8LbMkNYzBL0kNY/BLUsMY/JLUMAa/JDWMwS9JDWPwS1LDDOxePaPMp2ZJGiYG/xK1nprVeoBK66lZgOEvaVlyqGeJfGqWpGFj8C+RT82SNGwM/iXyqVmSho3Bv0Q+NUvSsPHk7hL51CxJw8bgr4BPzZI0TBzqkaSG8R3/kOtl8li3+1Q5Qc3JblL9DP4h1svksW73qXKCmpPdpOXBoZ4h1svksW73qXKCmpPdpOXB4B9ivUwe63afKieoOdlNWh4M/iHWy+SxbvepcoKak92k5cHgH2K9TB7rdp8qJ6g52U1aHjy5O8R6mTzW7T5VTlBzspu0PERm1l3DvzIxMZFTU1N1lyFJQyUidmfmxGLbOdQjSQ3jUM+QGMRErSprqnOilpPEpIUZ/ENgEBO1qqwJqG2ilpPEpMU51DMEBjFRq8qa6pyo5SQxaXG+4x8Cg5ioVWdNVXKSmLQ43/EPgUFM1KqypjonajlJTFqcwT8EBjFRq8qa6pyo5SQxaXF9GeqJiOcAbwZ+DVgH7AduAC7PzCf70ecoG8RErX7UVMeVNU4SkxbXlwlcEfHfgd8CbgI+AfwgcClwO3BuZn57of2dwCVJ3et0Alfl7/gj4ocpQn5HZr5uVvs/An8A/CLwkar7lSR1ph9DPRcAAbxvTvu1wLuB12PwL0vLcdJVlZPEuu2jl7773T7qfY/68S2XSY+VD/VExC7gXOC4zHx6zrrPAidn5vhCr+FQz+DNnfgExUnRreefOvBJV62+X3f6Gj66e7ptTUBX9XbbRy99d/ta9t2s46vy53k+nQ719CP49wD/JjO/t826G4CNwDGZ+cx8r2HwD97L3/0ppttc675m1Riffduraul7RQSH2/x8rikvzeym3m776KXvbl/Lvgffx7D13e3vX21j/MBxwNPzrDs4a5sjgj8iNgGbANauXduHsrSQOic+zddHu1+ShbZfaF23ffTSd7evZd+D72PY+u7X718/ruN/CjhmnnXHztrmCJm5PTMnMnNifHzBkSD1wXKcdLUiYt7tq3pi2Hx99NJ3t69l34PvY9j67tfvXz+Cfx9wfES0C/81wGMLDfOoHstx0tUFZ35fZZPEuu2jl767fS37btbxVfnzvFQrJicnK33BK6644hTgFcDNk5OTD7faI+JY4GrgzsnJyQ8v9Brbt2+f3LRpU6V1aWGnvPj5nPDdY+yZ/gbfPPgt1qwa4/L/+EMDuapnvr5/85yT5q2p23q77aOXvrt9Lftu1vFV+fM8nyuuuOKrk5OT2xfbrh8nd08FPg/cNOc6/kspruO/MDM/tNBreHJXkrpX28ndzNwTER8ALomIHcBfU8zc/S3gM3gNvyTVql+3ZX4L8CDFVTqvAR4DrqG4V8+Ct2uQJPVXX4I/Mw8D7yk/JEnLiLdllqSGMfglqWH6clvmpYqI/cBDXexyPMV5hKbxuJunqcfucXfmxMXuhQbLNPi7FRFTnVzCNGo87uZp6rF73NVyqEeSGsbgl6SGGZXgX3SK8ojyuJunqcfucVdoJMb4JUmdG5V3/JKkDhn8ktQwQxv8EfGciHhrRPx9RByMiK9ExHsi4nl119YvEXFyRFwZEXdFxP6IeCIi7ouIt4/ycbcTEcdFxAMRkRHx/rrr6aeIeGFE/LeI+HL5s74/Ij4dET9Zd239EhErI+J3ImJP+XP+WETcERFviJjniSZDJCK2RMSNs36GH1xk+zMj4tbya/F4RHwyIl7aa//9uknbIFxNccfPmyjuCdS6A+hpEXHuiN4M7iLgYuBjwIeBQ8A5wDuBX4iIszKz/89KXB6uBEb+UW0RcSJwG7AS+GPgS8ALgB+leLDRyImI5wCfAF4GfJDiBo/HARcAf0rxu/5fayuwGu8CvgbcA6xaaMOIOIviZ2AauLxsvgS4PSJelpl7uu49M4fuA/hh4NvAR+e0Xwok8Et119in454AXtCm/Z3lcV9Sd40D+jr8OPAt4D+Xx/3+umvq47HeDnwFeHHdtQzwmM8uv69Xz2k/GngAOFB3jRUc4/fP+vcXgAcX2PZu4HFgzay2NWXbzb30P6xDPRcAAbxvTvu1FM/zff3AKxqAzJzKzG+0WXV9ufyRQdZTh4hYQfF9/iSwo+Zy+ioifgr4CeD3M/OrEXFURBxXd10D8PxyuW92YxaPbH0MeHLgFVUsMx/oZLuIOAk4A7gxM6dn7T8N3AicGxEv6rb/YQ3+Myje8d89uzEzDwL3leub5IRy+WitVQzGW4FTKP7UHXWvLpcPR8THgRngyYj4UkSM5Jub0t3AAeC/RMTGiFgbEadExFbgdGCy1uoGq5Vld7ZZdxfFG+DTu33RYQ3+1RQPbX+6zbppioe9Hz3gmmpRvgN+B8XQx0g/3Swi/i1wBXBlZj5YczmD0HrS9rXAC4FfpjjP8wxwXUT8Sl2F9VNmfh34OYox8Bsobtj4RYrzW6/LzGtrLG/QVpfL6TbrWm1dn+sZ1pO7xwHtQh/g4KxtnhlMObV6H8WY6O9k5t66i+mzP6QY431v3YUMyHeVyyeAc8qhDiJiJ8XX4V0R8cEczQsZvkkx9v0x4A6K//guBj4SEa/NzFvqLG6AWkN77fLu4JxtOjas7/ifAo6ZZ92xs7YZaRFxFcWQx/bM3Fp3Pf1UDm38e+A3MvNQ3fUMSOsKrb9ohT48+474Y8CL+M5fBSMjIk6lCPtbMnNzZt6UmX9Mcb7jEeDa8i/dJmjlWLu86znrhjX491EM57T7YqyhGAYa6Xf7ETEJXEZxeduv11tNf5Xf5/cCfw08EhEnlSe9Tiw3eUHZtuBlcUPon8rlI23WfbVcfveAahmkt1KE2o2zGzPzKeCvKL7v6wZfVi1aJ7jbDee02toNAy1oWIP/cxS1/7vZjRFxLPBSYKqOogalDP3fpbjG+U1ZXt81wsYortl/DXD/rI/byvWvLz9/Ux3F9VHr4oUT2qxrtf3zgGoZpFagtXtX/9w5y1H3uXJ5dpt1Z1Fc9rq72xcd1uC/nuKA3zKn/Vcpxrs+PPCKBiQiLqcI/euAi0Z0fHeuJ4GNbT5+s1z/yfLzj9VSXf/spBjff31ErGw1RsSLgfOAL2Xml+sqro/+X7l8w+zG8i+61wJfB0bxuP+V8vs7BWyMiNaJXsp/bwQ+lZnt/iJc0NDenTMirqEY376JYgigNXP3s8CrRjEQI+Ji4P3AwxRX8sw9xkcbdNKLiFgH/CPwgcwcycs7I2IT8L+AvwP+hGIS028ALwZ+NjNvrrG8vihnK99DMYz1YYrf6RdSvLFbB1ycmf+jtgIrEBEX8p2hykspvq/vKT9/KDOvm7Xty4BPUwz9XTNrn+8FXp6Zn++6gLpnsC1h5tsK4LeBvRRnvKcpxoFX1l1bH4/5zyj+0pnv47a6axzw12MdIz5ztzzO8ymu2X6S4i+Am8tf+Npr6+Mxv4RiKPOfKG5N8jjwf4Hz666touO7rZvfY4qhnv9DcbXTE8Au4Md77X9o3/FLknozrGP8kqQeGfyS1DAGvyQ1jMEvSQ1j8EtSwxj8ktQwBr8kNYzBL0kNY/BLUsMY/JLUMP8CF7toikrBQE4AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X_center = xExp_edges[:-1] + (xExp_edges[1]-xExp_edges[0])/2. # get the value of the histogram bin centers\n", "plt.plot(X_center,yExp,'o')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check that it looks like you are producing the data that you want. If this is the case, move on (and possibly comment out the plot!)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyse data:\n", "The following is \"a manual fit\", i.e. scanning over possible values of the fitting parameter(s) - here luckely only one, tau - and seeing what value of chi2, bllh, and llh it yields. When plotting these, one should find a parabola, the minimum value of which is the optimal fitting parameter of tau." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "lines_to_next_cell": 2 }, "outputs": [], "source": [ "# Define the number of tau values and their range to test in Chi2 and LLH:\n", "# (As we know the \"truth\", namely tau = 1, the range [0.5, 1.5] seems fitting\n", "# for the mean. The number of bins can be increased at will...)\n", "Ntau_steps = 50\n", "min_tau = 0.5\n", "max_tau = 1.5\n", "delta_tau = (max_tau-min_tau) / Ntau_steps" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Loop over hypothesis for the value of tau and calculate Chi2 and (B)LLH:\n", "chi2_minval = 999999.9 # Minimal Chi2 value found\n", "chi2_minpos = 0.0 # Position (i.e. time) of minimal Chi2 value\n", "bllh_minval = 999999.9\n", "bllh_minpos = 0.0\n", "ullh_minval = 999999.9\n", "ullh_minpos = 0.0" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "tau = np.zeros(Ntau_steps+1)\n", "chi2 = np.zeros(Ntau_steps+1)\n", "bllh = np.zeros(Ntau_steps+1)\n", "ullh = np.zeros(Ntau_steps+1)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Nexp: 32.9679954 Nobs: 22 Chi2: 5.5 BLLH: 9.1\n", " Nexp: 22.0991082 Nobs: 18 Chi2: 6.4 BLLH: 14.6\n", " Nexp: 14.8134752 Nobs: 9 Chi2: 10.2 BLLH: 21.3\n", " Nexp: 9.9297694 Nobs: 10 Chi2: 10.2 BLLH: 25.5\n", " Nexp: 6.6561235 Nobs: 8 Chi2: 10.4 BLLH: 29.7\n", " Nexp: 4.4617330 Nobs: 3 Chi2: 11.1 BLLH: 33.2\n", " Nexp: 2.9907891 Nobs: 6 Chi2: 12.6 BLLH: 39.2\n", " Nexp: 2.0047859 Nobs: 6 Chi2: 15.3 BLLH: 48.0\n", " Nexp: 1.3438482 Nobs: 5 Chi2: 17.9 BLLH: 57.3\n", " Nexp: 0.9008084 Nobs: 1 Chi2: 17.9 BLLH: 59.4\n", " Nexp: 0.6038299 Nobs: 2 Chi2: 18.9 BLLH: 64.0\n", " Nexp: 0.4047593 Nobs: 1 Chi2: 19.3 BLLH: 66.6\n", " Nexp: 0.2713183 Nobs: 2 Chi2: 20.8 BLLH: 73.7\n", " Nexp: 0.1818701 Nobs: 0 Chi2: 20.8 BLLH: 74.1\n", " Nexp: 0.1219112 Nobs: 2 Chi2: 22.5 BLLH: 84.1\n", " Nexp: 0.0817195 Nobs: 1 Chi2: 23.4 BLLH: 89.3\n", " Nexp: 0.0547782 Nobs: 1 Chi2: 24.3 BLLH: 95.2\n", " Nexp: 0.0367189 Nobs: 2 Chi2: 26.2 BLLH: 109.9\n", " Nexp: 0.0246134 Nobs: 0 Chi2: 26.2 BLLH: 110.0\n", " Nexp: 0.0164989 Nobs: 0 Chi2: 26.2 BLLH: 110.0\n", " Nexp: 0.0110595 Nobs: 0 Chi2: 26.2 BLLH: 110.0\n", " Nexp: 0.0074134 Nobs: 1 Chi2: 27.2 BLLH: 119.8\n", " Nexp: 0.0049694 Nobs: 0 Chi2: 27.2 BLLH: 119.8\n", " Nexp: 0.0033311 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0022329 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0014967 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0010033 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0006725 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0004508 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0003022 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0002026 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0001358 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000910 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000610 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000409 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000274 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000184 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000123 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000083 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000055 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000037 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000025 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000017 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000011 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000007 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000005 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000003 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000002 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000002 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " Nexp: 0.0000001 Nobs: 0 Chi2: 27.2 BLLH: 119.9\n", " 0: tau = 0.50 chi2 = 27.18 log(bllh) = 119.87 log(ullh) = 227.27\n", " 1: tau = 0.52 chi2 = 25.21 log(bllh) = 113.69 log(ullh) = 221.04\n", " 2: tau = 0.54 chi2 = 23.46 log(bllh) = 108.25 log(ullh) = 215.56\n", " 3: tau = 0.56 chi2 = 21.90 log(bllh) = 103.46 log(ullh) = 210.73\n", " 4: tau = 0.58 chi2 = 20.53 log(bllh) = 99.25 log(ullh) = 206.48\n", " 5: tau = 0.60 chi2 = 19.32 log(bllh) = 95.54 log(ullh) = 202.75\n", " 6: tau = 0.62 chi2 = 18.27 log(bllh) = 92.28 log(ullh) = 199.47\n", " 7: tau = 0.64 chi2 = 17.35 log(bllh) = 89.43 log(ullh) = 196.60\n", " 8: tau = 0.66 chi2 = 16.56 log(bllh) = 86.94 log(ullh) = 194.09\n", " 9: tau = 0.68 chi2 = 15.88 log(bllh) = 84.78 log(ullh) = 191.91\n", " 10: tau = 0.70 chi2 = 15.30 log(bllh) = 82.90 log(ullh) = 190.02\n", " 11: tau = 0.72 chi2 = 14.83 log(bllh) = 81.29 log(ullh) = 188.40\n", " 12: tau = 0.74 chi2 = 14.44 log(bllh) = 79.91 log(ullh) = 187.01\n", " 13: tau = 0.76 chi2 = 14.14 log(bllh) = 78.74 log(ullh) = 185.84\n", " 14: tau = 0.78 chi2 = 13.90 log(bllh) = 77.77 log(ullh) = 184.86\n", " 15: tau = 0.80 chi2 = 13.74 log(bllh) = 76.98 log(ullh) = 184.06\n", " 16: tau = 0.82 chi2 = 13.64 log(bllh) = 76.34 log(ullh) = 183.42\n", " 17: tau = 0.84 chi2 = 13.60 log(bllh) = 75.86 log(ullh) = 182.93\n", " 18: tau = 0.86 chi2 = 13.61 log(bllh) = 75.50 log(ullh) = 182.57\n", " 19: tau = 0.88 chi2 = 13.66 log(bllh) = 75.27 log(ullh) = 182.33\n", " 20: tau = 0.90 chi2 = 13.76 log(bllh) = 75.14 log(ullh) = 182.21\n", " 21: tau = 0.92 chi2 = 13.90 log(bllh) = 75.12 log(ullh) = 182.18\n", " 22: tau = 0.94 chi2 = 14.07 log(bllh) = 75.19 log(ullh) = 182.25\n", " 23: tau = 0.96 chi2 = 14.28 log(bllh) = 75.35 log(ullh) = 182.41\n", " 24: tau = 0.98 chi2 = 14.52 log(bllh) = 75.58 log(ullh) = 182.64\n", " 25: tau = 1.00 chi2 = 14.78 log(bllh) = 75.89 log(ullh) = 182.95\n", " 26: tau = 1.02 chi2 = 15.06 log(bllh) = 76.26 log(ullh) = 183.32\n", " 27: tau = 1.04 chi2 = 15.37 log(bllh) = 76.69 log(ullh) = 183.76\n", " 28: tau = 1.06 chi2 = 15.70 log(bllh) = 77.18 log(ullh) = 184.25\n", " 29: tau = 1.08 chi2 = 16.04 log(bllh) = 77.72 log(ullh) = 184.79\n", " 30: tau = 1.10 chi2 = 16.39 log(bllh) = 78.30 log(ullh) = 185.38\n", " 31: tau = 1.12 chi2 = 16.76 log(bllh) = 78.93 log(ullh) = 186.01\n", " 32: tau = 1.14 chi2 = 17.14 log(bllh) = 79.60 log(ullh) = 186.69\n", " 33: tau = 1.16 chi2 = 17.53 log(bllh) = 80.31 log(ullh) = 187.40\n", " 34: tau = 1.18 chi2 = 17.93 log(bllh) = 81.04 log(ullh) = 188.14\n", " 35: tau = 1.20 chi2 = 18.34 log(bllh) = 81.81 log(ullh) = 188.92\n", " 36: tau = 1.22 chi2 = 18.75 log(bllh) = 82.61 log(ullh) = 189.73\n", " 37: tau = 1.24 chi2 = 19.16 log(bllh) = 83.44 log(ullh) = 190.56\n", " 38: tau = 1.26 chi2 = 19.58 log(bllh) = 84.28 log(ullh) = 191.42\n", " 39: tau = 1.28 chi2 = 20.00 log(bllh) = 85.15 log(ullh) = 192.30\n", " 40: tau = 1.30 chi2 = 20.42 log(bllh) = 86.04 log(ullh) = 193.20\n", " 41: tau = 1.32 chi2 = 20.85 log(bllh) = 86.95 log(ullh) = 194.12\n", " 42: tau = 1.34 chi2 = 21.27 log(bllh) = 87.88 log(ullh) = 195.06\n", " 43: tau = 1.36 chi2 = 21.69 log(bllh) = 88.82 log(ullh) = 196.02\n", " 44: tau = 1.38 chi2 = 22.11 log(bllh) = 89.77 log(ullh) = 196.99\n", " 45: tau = 1.40 chi2 = 22.53 log(bllh) = 90.74 log(ullh) = 197.97\n", " 46: tau = 1.42 chi2 = 22.95 log(bllh) = 91.72 log(ullh) = 198.97\n", " 47: tau = 1.44 chi2 = 23.36 log(bllh) = 92.70 log(ullh) = 199.98\n", " 48: tau = 1.46 chi2 = 23.77 log(bllh) = 93.70 log(ullh) = 201.00\n", " 49: tau = 1.48 chi2 = 24.18 log(bllh) = 94.71 log(ullh) = 202.02\n", " 50: tau = 1.50 chi2 = 24.58 log(bllh) = 95.72 log(ullh) = 203.06\n" ] } ], "source": [ "# Now loop of POSSIBLE tau estimates:\n", "for itau in range(Ntau_steps+1):\n", " tau_hypo = min_tau + itau*delta_tau # Scan in values of tau\n", " tau[itau] = tau_hypo\n", "\n", " # Calculate Chi2 and binned likelihood (from loop over bins in histogram):\n", " chi2[itau] = 0.0\n", " bllh[itau] = 0.0\n", " for ibin in range (Nbins) :\n", " # Note: The number of EXPECTED events is the intergral over the bin!\n", " xlow_bin = xExp_edges[ibin]\n", " xhigh_bin = xExp_edges[ibin+1]\n", " # Given the start and end of the bin, we calculate the INTEGRAL over the bin,\n", " # to get the expected number of events in that bin:\n", " nexp = Ntimes * (np.exp(-xlow_bin/tau_hypo) - np.exp(-xhigh_bin/tau_hypo))\n", " # The observed number of events... that is just the data!\n", " nobs = yExp[ibin]\n", "\n", " if (nobs > 0): # For ChiSquare but not LLH, we need to require Nobs > 0, as we divide by this:\n", " chi2[itau] += (nobs-nexp)**2 / nobs # Chi2 summation/function\n", " bllh[itau] += -2.0*np.log(stats.poisson.pmf(int(nobs), nexp)) # Binned LLH function\n", "\n", " if (veryverbose and itau == 0) :\n", " print(f\" Nexp: {nexp:10.7f} Nobs: {nobs:3.0f} Chi2: {chi2[itau]:5.1f} BLLH: {bllh[itau]:5.1f}\")\n", "\n", " # Calculate Unbinned likelihood (from loop over events):\n", " ullh[itau] = 0.0\n", " for time in t : # ie for every data point generated...\n", " ullh[itau] += -2.0*np.log(1.0/tau_hypo*np.exp(-time/tau_hypo)) # Unbinned LLH function\n", " \n", " if (verbose) :\n", " print(f\" {itau:3d}: tau = {tau_hypo:4.2f} chi2 = {chi2[itau]:6.2f} log(bllh) = {bllh[itau]:6.2f} log(ullh) = {ullh[itau]:6.2f}\")\n", "\n", " # Search for minimum values of chi2, bllh, and ullh:\n", " if (chi2[itau] < chi2_minval) :\n", " chi2_minval = chi2[itau]\n", " chi2_minpos = tau_hypo\n", " if (bllh[itau] < bllh_minval) :\n", " bllh_minval = bllh[itau]\n", " bllh_minpos = tau_hypo\n", " if (ullh[itau] < ullh_minval) :\n", " ullh_minval = ullh[itau]\n", " ullh_minpos = tau_hypo" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Decay time of minimum found: chi2: 0.8400s bllh: 0.9200s ullh: 0.9200s\n" ] } ], "source": [ "print(f\" Decay time of minimum found: chi2: {chi2_minpos:7.4f}s bllh: {bllh_minpos:7.4f}s ullh: {ullh_minpos:7.4f}s\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Chi2 value at minimum: chi2 = 13.6\n" ] } ], "source": [ "print(f\" Chi2 value at minimum: chi2 = {chi2_minval:.1f}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot and fit results:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "lines_to_next_cell": 2 }, "outputs": [], "source": [ "# Define range around minimum to be fitted:\n", "min_fit = 0.15\n", "max_fit = 0.20" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvkAAALfCAYAAAD7Sd1TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XmYHFW5x/Hvj8iwb0JAthDkCqiIAgEcFBkIqIAisriwxoAgBhVxF2QLGtGrorJoUBAi2wVxwSvrwESUQQj7RWUPhCAhEMIWwpDkvX+catJ0ume6J13dPT2/z/P0U3TVqVOnM0z1O6fOeY8iAjMzMzMzax/LNLsBZmZmZmZWXw7yzczMzMzajIN8MzMzM7M24yDfzMzMzKzNOMg3MzMzM2szDvLNzMzMzNqMg3wbMpTsJ+lSSdMlzctej2T79pU0oqj8dEkhaXQN1xidnTO9wvHdJf1e0kxJfZLmSnpQ0p8lfaOWa5nZ8FR0n+k3h7Wkrv7uR4O47klZfSfVeF5Pdl5XPdrRSqr5OVQ6p5r7faXvlIG+a+ql1us3ql15GszPtF29qdkNMKuGpA2AK4BtgQDuAaYBi4C3AvsDn8j2bZtTG34OHJ29/T/gH0AfsDGwG7An8DJwRh7XNzMzM6uWg3xreZLWAv4OjAJuAI6KiAdKyqwHfBv49FJebibwduC1kvo/RgrwXwA+GhF/LTm+KrAv8NRSXt/MrNUcAqwIPN7shgxBZb9TWkCrtsvqyEG+DQVnkwL8vwIfjoglbkoR8SRwtKRLl+ZCWd3/LnNo/2x7RmmAn533AnDe0lzbzKwVRYSD+0Hq5zulqVq1XVZfHpNvLU3S20g95AATygX4xSLipgr17CHpJkkvSnpB0tWSti5TrtJ4xLWz7dM1foTCXIKjJN0j6RVJsyRdLOmtlcbISvpNtn9chTrLjpGV9E5JEyX1SvpPNm/gqWwewfsq1PV6GyRtIum32bkLJR1TUvZ9ki6T9GRR3f8j6T21/ruY2eAUjdXvkbScpJMlPSTpVUlPSDpd0koD1PHW7D70tKT5ku6W9DlJKlO20v3m9f2SOrP76lyluVJ/kzS2wrVfHzMt6WBJ07Jz5ki6XNIm/bR7I0lnZp93fna9GyXt0885m2Sf9ZnsOndLOqq/f596GcwYd0lrZ/8mkX3WZUqOL/V9uJp2SVpG0jGS7sv+rWdJOlfS2v2c8zFJ12Y/y1clPSrpF5I26uecLSVdqMVz3Wb1952VndO0n+lQ4iDfWt1HAAF3R8T/DbKOI4Ers/++ihSofwj4q6RNq6yj0JM1TmloTi0mA2cBm5OeRvQAO5LmD7y1xroG8mXgOGAV4A7gj8AsYG9gqqRP9XPuplmbPpC18ypgXuGgpG8ANwH7ADOAPwBPkJ5y/EPSR+v8Wcysfx3ANcAXSfOErgdWBb5EmsNUyVtJv+vvJw2BnEoaunE28MtBtGNP0j1jLeBq4GHgfcDVkj5Q6SRJ3wN+DcwF/kK63+wL3CRpzTLldwXuBT4PLAD+F7gLeC/wu6y+0nPeBdwGfAp4nnRPnAOcIen0QXzWXCl1bPUC2wDHR8SEiFhUdLyR9+EpwHeB6aSf6zLAZ4BuScuVafsPs/bsQvq5XEEaDnQkcJek7cucsw/p53MAMBu4HHiE9J3113KB+1D7mTZVRPjlV8u+SDeZAH41iHOnZ+e+AuxUtH9Z4PfZsXNLzhmd7Z9esn970pdKAM8B55NuXNsCy/bThr2zc54FtizavzzpZhbZ66SS836T7R9Xod6e7HhXyf6dgI3KlN+DNEl4DrBiybGTitpxTrnPQ/oSD+AxYOuSYx8l3cjnAm9u9v8zfvnV6q+i+0wMUK6rwv2oq+h39mZgjaJjm2S/iwF8oOS84t/1S4Dlio5tmd2nAtir5LxK95vC/kXAp4r2C/h5duyGMp+r0IangS2K9q8M3JIdO6HknPWye29f8bWyY5uz+H6/S0k77sz2nw2MKDq2IylRwoA/h37aP7qGn3Xpz3CJ/cB22b/Ja8ChZeqq+T5cy/VL/98EHgA2LDq2NikAD+CQkvM+ku2fC2xXtH8Z4AdF7S7+f25d0jy3AI4sqe/jpO/c13jjd2cuP9N2fbkn31rdWtl29lLU8dOImFp4E2nIz3eztztXU0FE/IOUvecpYHXSRLRfALcCz0m6SNI7ypz6xWx7WkTcU1TffFJv1Cs1fpaB2jk1Ih4rs/8vwGXAGlT+zM8CX47yQ6JOzLbjIuKOkrqvJN1sVwMOGmzbzaxmi4DDI+K5wo6IeBj4bfa20u/6PODoiHi16Lx7SMEYpCcBtfifiLikqK4ATs7evk/SshXOOyGKntBGxEvAf1do+zGke++k4mtl5/0bODZ7e3TRoR2B9wDPAF+JiIVF59xEuoe3BEl7AjeSJjh/NCLOL1Os0ffhL0bEjKJrPE16Kg1L/nwK//4/jIhbi85ZREqK8TBpbt3+Red8lvTU+fqIeMMTpIj4Pen/4zex+HsUhtDPtBU4yLfh4Koy++7PtutVW0lEXEFKl7kf6WZ6O6mXYSVSVp87ih+VSnoTsEP29sIy9T0NXFvt9aslaTVJB0r6gaRzlMb3/wbYIitSaYjS9dmXbGl9a5GeWDxD6rkrpzAZ+b2Db7mZ1ejxiPhnmf0D3d+ujYhnyuwv/HGwQ3b/qtYS99is/jmkIUVrLXFGhfOo3Pbds+1lFeoqdw/aKdv+ISLmsaQpFepqKEmHkYa5vER6WnJ1mTKNvg+/Rhr+VWqJn0/Jd90Sf5xExALgguztTkWHCkO5yv1BA3BumXOGxM+0VTi7jrW6whfRyKWoY0bpjoh4MZtf1lFLRVkP/O+yF5JWIQ3J+T7ppneepFHZzWctYDnS4+UnK1Q5vZbrD0TSx0k3xtX7KVZpTsESTwAyG2fbtYBFZeblFVuan5PZcFHtQj2FX7ZK5Ze4t2VezLZLjJvOTK+w/0nS/Wp5YE3SfJ5q9NeON/fTjnLnVWp7Yf7SvTXcg9bPttMrlK20v5E2AH4FLATGRuW5Z42+Dz+VBeelyv181mTxd93MCvU9km3XL9pX+O9HB3HO9ArnVNo/LDnIt1Z3B+nR45ilqGPRwEUGJyJeBKZIupc0TnBN0oSz6/K6ZmaJp3CSNgQuIn1Bfxe4mHTDmxcRkU1K+xaLA4dSlYYOFVYRnsPiCcyVOCWb2cCKJ7SvFBEvVyhXyJCzxBO2TG73thoNqh1RNKG0CoX70EW0V273p0mTiT8I/FTSRyv0UDf6Ptwq/2/ZUnCQb63uf4EfAe+W9M6IuK/ZDSonIu6SNIfUa1XoRXkGeJXUw7Eu5XvzR1eosi/brlzh+IZl9u1JCvB/FxHHlzn+XxXqGkiht21eRIwbZB1mttgcUqC/Immi7D0VyhV+Z5+o8/UrpTNcj/R081XSHJ1WMoP073FCNu+gGoVe5Uqfd/TSNqoO+oC9SE+H9yRlJNqjzNDJVr4PP8vi77oNKP+EpvAkprinfyZp0vRbSQteVnsOtPbPtGV4TL61tEgr2/4+e3tmPxO4AJD0/jzaoQGejWbp3tbI3j4Br49D7M32HVDmnJHAbhWqLPxBsFmZ8zYnTWAq9eZsu8QNNhvPWela/YqImaT0fBuUS4FmZrXJJgsW1vTYu5+iH8+2PXVuwgfLpahk8X3q5gpDNZqpME59vxrOKYxR31vSCmWOH7h0TaqPbAL0PqTvuh2Ba0tTNbfyfTj7f+Xm7O0hpccljQAOzt5OLTpU+PkscU7mM/2c09I/01bhIN+GgqNIgfNOwFVZHuE3kLROlh/3jzm14ddKi0Ut0XuQBeu/JQ2DmcHiwB5SGjmAb0jaouic5YAzSD155dyYbQ9W0cIwktYh5ZUu97tbeES7b1aucM5KpDGf/Y3TH8gJ2fZiSTuVHpTUIemj2R8gZjawH2fbr6lk0ahsEaJvkiYmziX9ztfTSsDPJL0+Jym7P30je/vzsmc113+TxoOfJOmwLHB8nZJtJRV3ZvyV9JRkJPDD4nOyhZZaZvGkiOgjZXD7H6ATuF7SGiXFWvk+/JNs+zVJrw+vVVrI61TSU5jHeePE6XNIQ9F2lfTZ4sok7UUaqrsA+FnRoSHzM20FHq5jLS8ins5+ea8AxgL3S7obeIg0bnBj0sIhywD/yKkZbyb1Kpwg6QHgX8B80uPt7UjDZJ4HDihOQRkRV0g6Lzv3dkk3kr6030f6op3C4h6OYn8ljevfDbhT0l9J+f23B+4m9ZrsUHLOldmxdwMPSOoh3SA/QPp3KrSjZhHx+2wRlklAj6R/knIozydNhNqKNLRodzwu32xAEXGtpBOAU0gB3Z2kzCXLkuYgbUQKgD5VIRPO0phCymv+kKSbSR0AO5OG6pybpS9sKRHxWLZw0mWkTouTJN1HGiqyJimt4jrAaWRzorK5SAeTeoInAB+WdBsp3/tOwJm8MT1jrX4v6dUKxx6IiEo91GVFxAJJB5CG8BxEWnRqt4h4NjvesvfhiLhS0o+ArwC3SJpKmri9DSmj21zgkyVpW/8j6VDS/LHJ2cJX/yINudmBNOF8Qkn66bx/pm3FPfk2JETE46Rg+pOksYtrkr6k9iJlG7iM9Gi7NPCtlwnAYaQFZPpIj1T3Jy0gcw9pouvmEfG3MuceTsrd/ABpEZuxpN7+7VicPeANsjzTHwdOJy0WshvpRnkmabXeJSaeZX9cfIDUo1JY1Xd74E/A1ixetXdQIuIHpBRu55OeQOxOWmRrbVIqvINYPATBzAYQERNJv7OXku5j+5B+r14h9aZvGRHX5HDpR0j3n1tI96Mu0h8YR5Nyl7ekiLgeeCcpn/9zpBV7P066N95DyqX/s5Jz7iF91v8hDancm3TPOiZ7LY33kO6x5V5bDqbCbCjXoaQsaVsBN0pau+h4y96HI+KrpJ/HjaTvnP1IHWCTga0i4pYy51xB+vlcTJq7tj/p5/lH0mJuZ5c5J8+faVtRiiXMrBkknURa4OTkiDipua0xMzOzduGefDMzMzOzNuMg38zMzMyszTjINzMzMzNrMx6Tb2ZmZmbWZpxCs4K11lorRo8e3exmmJkNyu233/5MRIwcuGT78H3bzIaqPO7ZDvIrGD16NNOmTWt2M8zMBkXSY81uQ6P5vm1mQ1Ue92yPyTczMzMzazMO8s3MzMzM2oyDfDMzMzOzNuMg38zMzMyszTjINzMzMzNrMw7yzczMzMzajIN8MzMzM7M24yDfzMzMzKzNOMg3MzMzM2szDvLNzMzMzNqMg3wzMzMzszbjIN/MzMzMrM04yDczMzMzazMO8s3MzMzM2oyDfDMzMzOzNuMg38zMzMyszTjINzMzMzNrMw7yzczMzMzajIN8MzMzM7M24yDfzMzMzKzNOMg3MzMzM2szDvLNzMzMzNqMg3wzMzMzszbjIN/MzMzMrM04yDczMzMzazMO8s3MzMzM2oyDfDMzMzOzNuMg38zMzMyszTjINzMzMzNrMw7yzczMzMzazJAJ8iVtKukUSbdImi3pRUl3STpO0koVztlT0vWSnpM0T9IDks5odNvNzMzMzBrpTc1uQA3GAxOAPwEXAq8BOwOnAp+Q9N6IeKVQWNKJwEnANcCJwDxgFLBlY5ttZmZmZtZYQynIvxyYFBHPF+37haQHgeOAw4AzACTtSgrwT4iIiY1uqJmZmZlZMw2Z4ToRMa0kwC+4NNtuUbTv28DTwCQASStLGjKf1czMzMxsabRD4LtBtp0FkI3P/wDwD+AwSTOBF4GXJF0iaZ3mNNPMzMzMrDGG0nCdJUgaAXwHWABclO3+L2AE8F7gg8D3gbuBHYEvAVtKGhMR88rUdwRwBMCoUaNyb7+ZmZmZWR6Gek/+6UAnaez9/dm+VbLtSODoiDgpIn4fEccCE4G3A4eWqywiJkfEmIgYM3LkyLzbbmZmZmaWiyEb5EuaCBwNTI6ISUWHChl2FgFTSk47P9t25ds6MzMzM7PmGZJBvqSTgOOB84DPlRx+Its+FxGvlhz7T7ZdI7/WmZmZmZk115AL8rMA/0RSr/zhERHFxyNiFvA48GZJK5acXpik+3Te7TQzMzMza5YhFeRLOoEU4E8BxkfEogpFpwACjizZf1S2/Us+LTQzMzMza74hk11H0gTgZFIv/fXAAZKKi8yKiOuy//4BsC/w35I2JWXXeT9wIHADi3Prm5mZmZm1nSET5APbZttRLJ5AW2wqcB1ARLwgaUdSNp2PkVbDfQL4HjAxIhbm31wzMzMzs+YYMkF+RIwDxtVQ/hnS8JyjBiprZmZmZtZOhtSYfDMzMzMzG5iDfDMzMzOzNuMg38zMzMyszTjINzMzMzNrMw7yzczMzMzajIN8MzMzM7M24yDfzMyqImlTSadIukXSbEkvSrpL0nGSVioqJ0kHSbpE0kOS5kl6XNKfJG1foe5lJH1Z0r8lzZc0Q9KPius1M7PqOcg3M7NqjQe+DDwMnAJ8DbgfOBW4WdIKWbnlgCnAZsAlwBeAycDWQK+kg8rU/RPgx8A/s/KXAV8ErpTk7yozsxoNmcWwzMys6S4HJkXE80X7fiHpQeA40uriZwALgK6ImFp8sqRzgPuAH0m6KCIWZfvfSQrsr4iIfYvKPwr8DPgUcFF+H8vMrP24d8TMzKoSEdNKAvyCS7PtFlm5BaUBfrZ/FjAVWDt7FXwaEHB6ySnnAPOAcj3/ZmbWDwf5Zma2tDbItrOqLNsHzC3aty2wCLi1uGBEzAfuyo6bmVkNHOSbmdmgSRoBfIc0RKffITWS9gC2Ay7NAviC9YBnIuLVMqfNBNaS1FGhziMkTZM0bfbs2YP6DGZm7chBvpmZLY3TgU7ghIi4v1IhSW8jTcadCXyl5PCKQLkAH2B+UZklRMTkiBgTEWNGjhxZU8PNzNqZg3wzMxsUSROBo4HJETGpn3IbA91AALtHRGmX+zxSRp5yli8qY2ZmVXKQb2ZmNZN0EnA8cB7wuX7KjQZuBFYGdouIe8sUe5I0JKdcoL8+aShP31I22cxsWHGQb2ZmNckC/BOB84HDIyIqlBsN9ACrkQL8OytUeRvp+2i7kvOXB94DTKtDs83MhhUH+WZmVjVJJ5AC/CnA+EKu+zLlNiL14K8OfDAibu+n2ktJQ3mOKdn/WdJY/AuXtt1mZsONF8MyM7OqSJoAnAw8DlwPHCCpuMisiLhO0iqkAH808HNgM0mblVR3XZY3n4i4V9KZwNGSrgD+ArydtOLtVLwQlplZzRzkm5lZtQr56keRhuqUmgpcB6wJbJzt+0KFunbmjXn1jwGmA0cAewLPkP5AOKHS0wIzM6sstyBf0jKkpcg/CKwDfDMi7pa0OrAH0BMRT+Z1fTMzq6+IGAeMq6LcdNIKtrXUvRD4UfYyM7OllMuYfEkrkB7V/hb4BCnQXzM7/BLwY/rJxmBmZmZmZoOX18Tbk4D3AvuTxmS+3qMTEQuAK4AP53RtMzMzM7NhLa8gf3/S4ii/AxaWOf4gKfg3MzMzM7M6yyvIXx+4u5/jLwOr5nRtMzMzM7NhLa8gfw6wbj/H3wH8J6drm5mZmZkNa3kF+TcAn8km4L5BtkDKeOCanK5tZmZmZjas5RXkn0zKpnMrKedxALtJmgjcAbwGfK+WCiVtKukUSbdImi3pRUl3STpO0koDnHuUpMheaw3uI5mZmZmZDQ25BPkR8QCwGymrznez7TeA44CngN0i4vEaqx0PfBl4GDgF+BpwP3AqcHO5pwYAktYDvk9K3WlmZmZm1vZyWwwrIm4FtpD0HtLy5CJl1ZkWETGIKi8HJkXE80X7fiHpQdIfD4cBZ5Q570zSHwb3AQcN4rpmZmZmZkNK3XvyJa0k6duSdgOIiLsi4uKIuCgibhtkgE9ETCsJ8AsuzbZblGnLx4G9SAtvlUvlaWZmZmbWduoe5EfEy8CJwEb1rruCDbLtrOKdklYl9ez/MnuqYGZmZmY2LOQ18fZh4C051f06SSOA7wALgItKDp9G+nzfqqG+IyRNkzRt9uzZ9WuomZmZmVkD5RXknw0cJmmNnOovOB3oBE6IiPsLOyW9DzgSOLbCEJ+yImJyRIyJiDEjR46sf2vNzMzMzBogr4m3c4C5wP2SziNNuJ1XWigiSnvfq5al4zwamBwRk4r2dwCTgesj4uLB1m9mZmZmNlTlFeRPKfrvr1UoEyw5xKYqkk4CjgfOI02qLTYB2Bz4iqT/Ktq/SrbdWNKqEfHIYK5tZmZmZtbq8gryd8up3kKAfyJwPnB4mWw9G5GGIV1VoYpbgZeBlfNqo5mZmZlZM+US5EdEdx71SjqBFOBPAcZHxKIyxc4D/lZm/wSgi7So1nN5tM/MzMzMrBXkthhWvUmaAJwMPA5cDxwgqbjIrIi4LiLuBu4uc/5Hsv+8MiKeybu9ZmZmZmbNkmuQn612uz2wBktm8oniCbNV2DbbjiIN1Sk1Fbiu5kaamZmZmbWZXIJ8ScsDlwF7ACJNsi10u0fRvqqD/IgYB4wbbJuW9nwzMzMzs6Eirzz53yEF+KcBu5KC+vHAXkAvcBvwrpyuXRdPPfUUvb29zW6GmVnV1lhjDcaOHctXv/pVgDdL2rzZbTIzs+bQkslp6lCp9ABwV0R8QtKawGxg14i4QdKywDTgzxFxXN0vXieSYoUVVqC7u5vOzs5mN8fMbECbb745Dz74IBFBdm9fRFqj5C7gjqLXfRUSFwxpY8aMiWnTpjW7GWZmNZN0e0SMqWedefXkjwJuzP57YbbtAIiI10j58T+d07Xrpq+vj56enmY3w8ysKv/+97+ZM2cO11xzDcCTQDewEvA+4AvAuaSA/yVJ/5B0VtMaa2Zmucpr4u2LRXW/ROpNWrfo+FzgLTldu246Ojro6upqdjPMzKq22mqrsdtuuwH8B/g88ABwFPAo8G5gy2y7FTAmK2NmZm0mryD/EeBtABGxQNI/gX1JOewB9gZm5nTtulh//fW57LLLPFTHzIaywnjM2RFxLXBt4YCkDuAdTWmVmZnlLq/hOtcD+0oq1D8Z2EPSA5LuBz7I4oC/Jb3lLW9xgG9mbSsi+iLirma3w8zM8pFXT/5ppHH3ywCLIuIMSSsCB5HG6J9ADekzzczMzMyserkE+RHxAnBfyb4fAD/I43pmZmZmZrZYrivemplZ4+yxxx50dnay3XbbAYxodnvMzKx58lrx9oBqykXERXlc38xsOLr66qu5+uqrkQTwHlIq4wA+LGkucE9EPNPMNpqZWWPk1ZP/W9IXi0r2l6685SDfzKxOnn/+ee644w7uuOMOjj322DmkFMYBHA4cBiDpKeDuwisiLmlag83MLDd5rXg7tszuNwGbkPI1vwicGBHX1f3ideKVE81sKCusnihpJVKv/jbA1tl2c9JwnoiIthnW4/u2mQ1Veax4m9fE2+5KxySdC9wGbAG0bJBvZtYOIuJl4O/ZCwBJK5AC/62a1S4zM8tXXnnyK4qI+cAUYEKjr21mZhARr0REb0Sc1ey2mJlZPhoe5GfmAxs06dpmZsOepAmSbmh2O8zMLB8ND/IlrQMcCUxv9LXNzOx1KwM7NbsRZmaWj7xSaF5b4dCbgXcAywPj87i2mZmZmdlwl1cKzXewZLrMAOYAfwbOiIi/5nRtMzMzM7NhLa/sOh5vb2bWYHvuuSfbbLMNW221FUBHs9tjZmbNk1dPvpmZNdhVV13FVVddVVjx9l2SngHuBO4ovCLiwWa20czMGsNBvplZm3j22WdfX/H261//+hzgWWAXYCzZEEpJLwF3keZGmZlZm8prxdvXWHJM/kAiIpare2MGySsnmtlQVrTi7cqkRa8KK95uDWyGV7w1M2sZQ2bFW+BSYEvSqrYPA//K9r8d2AS4F7gnp2ubmVkmIl4CbspegFe8NTMbDvIK8s8D/gDsFxFXFB+QtF92/MsR4YVYzMwaLCJeAXqzl5mZtaG8FsM6FZhcGuADRMTlwK+A7+Z0bTMzG4BXvDUza295BfnvBh7q5/gDpOE8ZmbWHF7x1sysjeUV5M8Fdu3n+AeB52upUNKmkk6RdIuk2ZJelHSXpOMkrVRUTpIOknSJpIckzZP0uKQ/Sdp+kJ/HzGzYq/Y+nJXdTtLPJP1d0kuSQtK4fupeLqv7UUmvSnpY0vGSls39g5mZtaG8gvyLgb0l/VLS27TY2yRNBvbKytRiPPBl0kTeU4CvAfeThgbdnE0kA1gOmELKHnEJ8AVgMimjRK+kg5bys5mZDVfV3ocB9gAmAKsDd1dR96XAd4AbsvN6gInAOXVqu5nZsJLXxNvjgE2BzwKHAwuKrifgqqxMLS4HJkVE8ROAX0h6MKvrMOCM7FpdETG1+GRJ5wD3AT+SdFFELKrx+mZmLa0BK95Wex8GOBv4YUS8nCVc2KFSpZL2AD4G/DgivpLt/pWkucCxkiZHxM31/jBmZu0slyA/IuYDHy26cb81O/QI8MeI+Msg6qyU/PhS0pfLFlm5BcDU0kIRMUvSVGAfYG3gqVrbYGbWyvJe8bba+3BWdlYNVR+QbU8v2X86cCxwEOAg38ysBrmueJsF8zUH9DXaINtW84WyAdBHmjNgZtZWmrjibS334XK2BWZGxIzinRExQ9KT2XEzM6tBXmPylyBpbUlbSVqljnWOII3hXABcNEDZPYDtgEuzJw3lyhwhaZqkabNnz+732r29vUyaNIneXqeZNrPWsMYaazB27Fi+9rWvATwaEZsBq5Gy6HwFuBCYQRo6U5fAuZb7cD/WA2ZWODYTWL+f61d93zYzG07q1pMv6V3AzsCFEfFs0f43A+eTJmEBvCbplIj4Xh0uezrQCXw7Iu7vp21vI03GnUn6oisrIiaTJukyZsyYqFSut7eXsWPH0tfXR0dHB93d3XR2dg72M5iZ5aafFW/fTUpIsLSqug8PYEXg1QrH5mfHy6r2vm1mNtzUsyf/86RMC3NK9v8K2BN4DLgSeAGYKOmjS3MxSROBo0mLbk3qp9zGQDfpUfXuEbHUXT09PT309fWxcOFC+vr66OnpWdoqzcwaJiJeiYhbIuKspamn2vtwFeaRMqOVs3x23MzMalDPIL8TuCoiXu9JkTSKNPH2XuAdEbE38C7gP8CRg72QpJOA44EAYR/ZAAAgAElEQVTzgM/1U240cCNp0ZfdIuLewV6zWFdXFx0dHYwYMYKOjg66urrqUa2Z2ZBR7X24Sk9SeUjO+lQeymNmZhXUc+Lt+qR8ycXGklJmnlkYB59luZkCHDqYi2RfLCeShgAdXvxHRUm50aQ8y6sBu0bEnYO5XjmdnZ10d3fT09NDV1eXh+qYWUuS1EnqaX8bsCbpflwsImKTQdR7ElXch2twG3CgpA2LJ99K2pA0Xv9PS1m/mdmwU88gf2WWzFqzLWmYzI0l+x8ifeHURNIJpC+WKcD4SrnuJW2UXXN1Ug/+7bVeayCdnZ0O7s2sla0J/A14DXgAeLwelVZ7H67RxcCBwDG8cd7UMdn2wjpcw8xsWKlnkD8TKO0R2gGYWyYv85uAl2upXNIE4GTSF9X1wAFZLuiCWRFxXZa950ZgNPBzYDNJm5VUd12NOZzNzIaadUlPV3eNiCfrUWG19+Gs7EbAwdn+d2bbj0oqpNucEhGPAUTE/0r6M2nhq9WAXtIQ0MOA30bE3+rRfjOz4aSeQf404BBJP82G5GwPbAn8rkzZt5PGYNaikO5tFOkRcampwHWk3quNs31fqFDXzgw+n7OZ2VDQAZxdrwA/U+19GNJ9eGLJ8X2yF6SnDI8VHdufNMb/INIfBzOBE4DvL3WrzcyGoXoG+acB+wH/lvQvUoC/CPhpmbIfocyqtP2JiHHAuCrKTWfJcadmZsNNH5Uz1gxKtffhrGwPNdyLs3lbx2cvMzNbSnXLrpNNbN0PeAoYAzwBHFj6mFXSh0mTdK+u17XNzGwJs0mTWUc0uyFmZtZ49ezJJyL+APxhgDJXAyvU87pmZraEeaSFpG6VdCbwKLCwtFBE/LXRDTMzs/zVNcg3M7OWsSkpuxmkRQlL01wq2+eefjOzNlSXIF/SegCFCV6F9wOp84QwMzNbbDpwUpPbYGZmTVKvnvwngEWSVoyIvux9NYujuAfJzCwfz0ZEuQw4ZmY2DNQryP8eKahfUPLezMzMzMwarC5BfkQc3997MzPL1wUXXFC6a01Jhwx0XkQscaKZmQ19nnhrZtYGxo0bhyQiXn+IOhr4zQCnBeAg38ysDeUa5EtaDtiItArtEouiRMTNeV7fzGy4uPHGG9/wvqur637gyOa0xszMmi2XIF/SCsAPgcNIS6svUQSnbjMzq5uddtqpdNdLEVHTyuJmZtY+8urJPx34LHAtcAPwbE7XMTMzMzOzEnkF+fsAl0bEp3Oq38zMzMzMKlgmp3pXJPXgm5mZmZlZg+UV5N8ObJJT3WZmZmZm1o+8gvxvAYdJ2iqn+s3MzMzMrIK6jMmXNLnM7hnArZJuAh4FFpYcj4hwejczszoYP348Rx55JNtvv31h18qSRkbE7Ga2y8zMmqNeE28P7+dYV/YqFTiHs5lZXfzmN79h1113LQ7yNwN2Ay5qXqvMzKxZ6hXkL1uneszMbBDWWmstZs2a1exmmJlZi6hLkB8RpUNxDOjt7aWnp4euri46Ozub3Rwza2M77LADp556Ko8//jhrrLFGYfc+kv6rn9MiIiY2oHlmZtZgdc2TL+lw4LmI+F0/ZfYDVo2Ic+t57VbT29vL2LFj6evro6Ojg+7ubgf6Zpab008/nUMPPZSf/exnRERh9z7Zq5IAHOSbmbWhumXXkfQx4JfAywMUfQk4R9Ie9bp2K+rp6aGvr4+FCxfS19dHT09Ps5tkZm1s9OjRTJ06lVdeeYXp06cXdh8DbNzP661NaKqZmTVAPXvyDwJujYir+ysUEVdL6gUOBf5Sx+u3lK6uLjo6Ol7vye/q6mp2k8xsGOjo6GDUqFEAzwL/iIjHmtwkMzNrgnoG+e8l9eRX4yraPLNOZ2cn3d3dHpNvZs0yPSL+0exGmJlZc9QzyF8beKLKsjOBdep47ZbU2dnp4N7MmkbSSsDXgY+zeGjOI8AVwA8jYqDhlWZmNkTVM8h/BVi1yrKrZuXNzCwfI4BbgbcDs4E7s/2bAicA+0vaMSLmNKl9ZmaWo7pNvAUeBHassuyOWfmqSdpU0imSbpE0W9KLku6SdFzWW1VafjNJf5D0nKSXJd0kaZdarmlmNoStD2wOHA2sFxE7RsSOwHrABNJiWSc1r3lmZpanegb5fwb2lrRdf4UkbQvsDVxZY/3jgS8DDwOnAF8D7gdOBW6WtELRNTYBbgY6gR9kZVcGrpG0a43XNTMbilYDfhURZxWvZRIRCyPibOBc0r3YzMzaUD2D/J8Bc4CrJX1G0htWwZW0rKRxpEm3zwA/r7H+y4ENIuLAiPh5RPwiIj4JfBfYEjisqOwkYHXgQxExKSLOIj09eBI4U5IG8fnMzIaSZVk8RKecOxgGc6PMzIarugX5EfEc8DFgIfArYK6kaZJukHQb8Bzwa2ARsHdWvpb6p0XE82UOXZptt4DXJ5rtBfRExF1F57+UtWtTYNuaPpyZ2dDzGrBVP8e3AmY1qC1mZtZg9ezJJyJuIfWqn0Hq1d8a6AK2IQX5ZwDvrnNatw2ybeHLaktgOaC3TNlbsq2DfDNrd88Dh0k6UtLr93pJy0g6gjQE8k9Na52ZmeWqntl1AIiI/wBfAr4kaXVSJp0XImJuva8laQTwHWABcFG2e71sO7PMKYV961eo7wjgCKCwmIyZ2VA1E5gLnAWcLOn+bP9mwEjgIeDEJrXNzMxyVtee/FIRMTciHs8jwM+cTppce0JEFL7AVsy2r5YpP7+kzBtExOSIGBMRY0aOHFnflpqZNdZCYAzwfdLqt9tmr2dI85a2jYhnm9c8MzPLU9178htF0kRSarjJETGp6NC8bLtcmdOWLyljZta2IuIF4LjsZWZmw0iuPfl5kXQScDxwHvC5ksNPZttyQ3IK+8oN5TEzMzMzawtDLsjPAvwTgfOBwyMiSorcSxqq01nm9Pdm22m5NdDMzMzMrMmGVJAv6QRSgD8FGB8Ri0rLZKkyrwS6JL276NyVgcNJK+3e2pgWm5mZmZk1Xl3G5Ev6NvCHiPhn9n49YE5EzO//zJquMQE4GXgcuB44oGRNq1kRcV32398CxgLXSvoJ8ALwWdJwnT3L9P6bmZmZmbWNek28PRWYDvwzez8DOJjFaS3roZDbfhRpqE6pqcB1ABHxkKT3kbJKfBPoIK3u+OGIuL6ObTIzMzMzazn1CvKfB1Yreq9KBQcrIsYB42oo/y/SCrxmZmZmZsNKvYL8u4CvZasqPpft26FkOM0SIqKePf1mZlaGpOWAtYDZEdHX7PaYmVn+6hXkHwtcAfw8ex/A57NXJUF9h/OYmVkRSVsD/w28HxgB7AbcIGlt4GJgkocwmpm1p7oE+RFxp6S3AW8D1iVNjJ0E3FCP+s3MrGYrADeRVri9APhM4UBEPC1pBeBQ0v3azMzaTN1WvI2IBcC/gH9J+jtwY0R016v+dtTb20tPTw9dXV10dpZL629mNmjrkxYH3Iq02vf4kuPdwCca3SgzM2uMugX5xSJixzzqbSe9vb2MHTuWvr4+Ojo66O7udqBvZvW0MvC9iHgpG5Nf6nFgvQa3yczMGiS3xbCUHCzpCkl3Za8rJB2kgWbkDgM9PT309fWxcOFC+vr66OnpaXaTzKy9LEPKfFbJqo1qiJmZNV4uPfmSlgf+DOxMSqc5Kzv0LlJay0MlfSQiXs3j+kNBV1cXHR0dr/fkd3V1NbtJZtYment7ARYC2/RTbBcWr21iZmZtJq+e/ONIXyA/BUZGxLoRsS4wEjidtBrtcTlde0jo7Oyku7ubiRMneqiOmdVNYSggqRPnYEm7Fh0OAElfAT4MTKmlbkmbSjpF0i2SZkt6MXtKe5yklcqU30zSHyQ9J+llSTdJ2qVC3atJ+rmkmZLmS7pP0lF+8mtmNji59OQDnwIuj4hji3dGxBzgK5I2BD4NnJDT9YeEzs5OB/dmVleFoYCZW4BrgH+TAvyfSBoJvIW0QvhZNVY/HpgA/Am4EHiN9MT2VOATkt4bEa8ASNoEuBlYAPyANHTos8A1knYvTt0pqSNrz1akVMz/AnbP2rcOcFKN7TQzG/by6snfkP7TZ96YlTEzszoqDAUkBfW7AV8FXgHmA5uSUmp+HfhIRCyqsfrLgQ0i4sCI+HlE/CIiPgl8F9gSOKyo7CRgdeBDETEpIs4CdiRl/DmzpIf+cGBb4NiIODYizomIfUjrr3xb0kY1ttPMbNjLK8ifC2zSz/G3ZmXMzKyOCkMBgScjYkFE/CQixkTEShGxYkS8OyJ+lKU9rklETIuIcpN5L822WwBkQ3f2Anoi4q6i818CfkX6Y2PbovMPAOYB55TUezqwLPDJWttqZjbc5RXkXw9MKBkLCkA2HvPzpEezZmZWZ9kwwKcaeMkNsm0hycKWwHJAb5myt2TbbQEkLQNsDdwZEfNLyt5KeiKxLWZmVpO8xuR/hzSp6xpJtwH3ZfvfSbpZz8nKmJlZPjaVNNCq4xERY5fmIpJGkO7nC4CLst2F/Pszy5xS2Ld+tl2DtDrvEmUj4lVJzxSVLXf9I4AjAEaNGlVr883M2lZei2E9KmkMcBqwJ7BddmgecBnwzYiYnse1zcwMSD3pG5fsexOwLukp7jPAy3W4zulAJ/DtiLg/27diti2XJnl+SZn+yhbKr1jhGBExGZgMsMHmG0TvjF46N3RCAzOz3BbDiojp2YSs1UiPcjcAVouITznANzMbnN7eXiZNmlTIhd+feyNi45LXhsBKpBTGc4EdlqYtkiYCRwOTI2JS0aF52bbcSrvLl5Tpr2yh/LwKx95g5oszGXvBWHpnDPhvY2bW9vIarvO6iFhIyqZgZmZLoZADv7CI3mDW2MgWIZwk6R3Aj0npjGsm6STgeOA84HMlhwv3/HLDbAr7CsNzniNl/1mirKTlgLWAqVU1KqBvYR8903vcm29mw15uPflmZlZfhRz4CxcupK+vj56enqWp7m/AhwZzYhbgnwicDxweEVFS5F7S8JtykfZ7s+00gCyN5x3AVllQX2w70qrp06prGHSM6KBrdFdVxc3M2pmDfDOzIaKQA3/EiBF0dHTQ1dW1NNVtDHTUepKkE0gB/hRgfLlc+1mqzCuBLknvLjp3ZVJO/AdJmXMKLiaNuz+ipKpjSBN6L6UK66+yPt2HdLsX38yMBgzXMTOz+ijkwO/p6aGrq2ugoTodksqlm3kzsCvwRaCnlutLmgCcDDxOSpV8wBvXtGJWRBTSI38LGAtcK+knwAukFW/XB/Ys6f0/B/gM8GNJo0kr3u4BfBw4tdp5XG9Z+S0O8M3MMg7yzcyGkM7OzmrH4b8LeLTCMQH3kwL9WhTy1Y8iDdUpNZVsDZSIeEjS+4DvA98kPTW4A/hwRFxffFJE9GXrqpxKmiOwJvAw8AXgzBrbaGZmOMg3M2tX/wF+WbIvSOuUPABcX26oTX8iYhwwroby/wI+VmXZuaRMPUfX0iYzMysv9yBf0rKkx8NzIuK1vK9nZmYAPBkRJze7EWZm1hy5TbyV9G5J1wIvkdKp7ZjtX1vSNZJ2yevaZmZDUQ058M3MzPqVS0++pC2Bv5PyH18MHFw4FhFPS1oVOBQYaMl1M7NhYWlz4F9wwQWlu9aUdMhA50XEEieamdnQl9dwnYnAU8DWpMlWpV803cD+OV27rfT29labScPMhrByOfBr+Z0fN24ckihKWjMa+M0ApwXgIN/MrA3lFeTvCJwWES9IWrPM8ceB9XK6dtuox+qWZjY0FHLgF37fa82Bf+ONN5bWdz9wZP1aaGZmQ0leQf4KpKE6lawymEolfYv0dGAb0kIuj0XE6H7K7w58FXhnds0nSAu0/DAiZg2mDY20tD17ZjZ01JgDfwk77bRT6a6XImJq3RpoZmZDSl5B/iOkQLySLtJiJ7X6Hin92x3A6v0VlPRZYDJwO3Aa8DIpx/MxwD6S3hURLw+iDQ2ztD17Zja01JAD38zMrF95BfkXA8dJugS4J9sXAJK+RFrJ8MuDqHeTiHgkq+f/gJX7KftVUp7o90fE/GzfZEmzgOOA3YA/DKINDbO0PXtmZpLGANsDa7BkRrWIiImNb5WZmeUtryD/h8AHSSsf3kcK8P9b0kjSkuY3MIhVDAsBfpVWJeXmn1+y/8ls29K9+AXu2TOzQZKkq0j3YpHuw8qORdE+B/lmZm0olzz5EfEqMBb4FulL5DXSEusvAt8G9oiIhXlcu8g1wDsk/UjS2yVtKGkf4DukpdedvtPM2tl6pAD/u8DOpKD+UGB34CbgNuAdTWtdg/XO6GXSTZPoneE1CMxseMhtxdtsddsfZq9m+BKwYrY9tmj/ecCR5f7IkHQEcATAqFGjGtFGMxtGGpwSdw3gsog4oSjL2cyIuEFSNynIH0fqjGlrvTN6GXvBWPoW9tExooPuQ7rp3NBPSM2sveUW5LeA10ipOn9PyqgzD/gQMB5YCHy29ISImEyarMuYMWOi9LiZ2WA1ISVuB+mpJaR7XmEfEbFA0sXAUQyDIL9neg99C/tYGAvpW9hHz/QeB/lm1vbyWvH2gGrKRcRFOV1/GeBq0ud7XyxeHeZySc8C35B0aURcn8f1zcxKNSEl7kIW3+NfBBbxxvVJngfekmcDWkXX6C46RnS83pPfNbqr2U0yM8tdXj35v+WNk7wKSnvHcwnygfeTFuT6alGAX3AZ8A1gJ8BBvpk1RBNS4r4KbAoQEQsl3QfsB5wrScA+wIy8G9EKOjfspPuQbnqm99A1usu9+GY2LOQV5O9W4VqbkB4PvwicmNO1IWXwARhRoR3FWzOz3DUhJe4LwL6SjsnmIP0SOEPSw6QOl41JiRCGhc4NOx3cm9mwkkugGxHdlY5JOpc04WsLUorNPPwz2x4o6SfZJOCCcdn2tpyubWZWVoNT4j4FfJrsiWpEnCVpeeAg0lCec4AfNKoxZmbWWA3vzY6I+ZKmABOAn9RyrqSDgY2ytyOBDknHZ+8fi4gp2TXulvQ7YF9gmqTfsnji7UeBW4A/LvWHMTNrIa+++irLLbdc4e2iiLi/+HhE/Bj4ccMbZmZmDdesISvzgQ0Gcd5hpLH0xQoLuUwFphTtPwA4BjgQOIW0JsBjwCTguw3I029mw0iD02OWte666/LpT3+a8ePHN+X6ZmbWOrTkvNScLyitQ1qIakREbN7Qi9dgzJgxMW3atGY3w8yGgCakxyxr44035rHHHkMSixYteoWUZODCiJjT8MY0ge/bZjZUSbo9IsbUs85cVryVdG2F1zTgUeDtwPfzuLaZWaOVS4/ZDI8++ijXX389BxxwAMBywE+BmZIukfTBpjTKzMyaIpcgn7RU+ttLXpuThgf9GeiKiN/kdG0zs4YqpMccMWJEo9JjVrTLLrswZcoUgLuBzwF3AZ8ArpL0mKSTJY1uWgPNzKwh8squM5jx9jZIrTAW2Gw4a0J6zGosKqziLWkz0pymg4DvAMdJmgr8Oq9FCc3MrLmcK36Ia5WxwGbDXYPTY9Yky7LzdUnfBHYnZTf7MCmRgYN8M7M2lNdwHWuQVhkLbGZDwnbAXsAO2fu+JrbFzMxyVJeefEkPDOK0iIjN6nH94awwFrjQk9/MscBm1nqyjGaHAJ8BNiMtjnUX8GvgwiY2reX0zuilZ3oPXaO7vDqumTVM74xeWIW31Lveeg3XeZq0TLo1WIuOBTZrK0Nt3suCBQsAVpd0JWkRwDcBc4GzSePw72xi81pS74xexl4wlr6FfXSM6KD7kG4H+maWu8K9h5VZv9511yXIj4j316MeG5xWHgtsNtQNpXkv99xzD+eddx4XXnghwCbAxsCNpF77KyLi1Wa2r5X1TO+hb2EfC2MhfQv76Jne4yDfzHJXuPfkwRNvzcz6UW7eS6sG+e95z3sA2HDDDQH+A+wQEdOb2KQho2t0Fx0jOl7vye8a3dXsJpnZMFC497zCK3UfEeOJt2Zm/WilHPgD2W+//bjqqquYPn06wJMO8KvXuWEn3Yd0M3HniR6qY2YNU7j38BJP1rtuReQzlF7SxsCXgO2BNVjyD4qWnnjr5dHNrGCojcmHfJZIb3W+b5vZUJXHPTuX4TqS3gn8HVgBeAjYFPg3sFb2ehTq/xeLmVkePO/FzMwGo5lZu/Iak38KsADYipR552ng6Ii4QdJRwMnAZ3O6tpmZmZlZUzU7a1deY/J3BCZHxD9ZnFpTABFxNnAtcFpO1zYzMzMza6pyWbsaKa8gf1XSMB1YvKLiSkXH/wY47aaZtYTe3l4mTZpEb29vs5tiZmZtopA5Z4RGNCVrV17DdWYB6wBExIuSXgbeVnR8tRyvbWZWtaGUB9/MzIaOQuacdhuTfzdQPEP4JuCLknpJTw8mAPfkdG0zs6oNpTz4ZmbWWgaaWNu5YWfTUvLmFeRfAkyQtEJEvAJ8B5hKCvYB5gMH5XRtM7OqFfLgF3ryWzkPvpmZtY5mT6wdSC5BfkRcBFxU9P72LK3mvsBC4H8j4qFK51v9DcU832aN0NnZSXd3t38/rCrNTIdnZq2l3MTaVrov1C3Il7RcRLxa6XhEPAb8uF7Xs+p5zLFZ/5wH36rR6r12ZtZYhYm1hXtCoyfWDqSe2XX+I+lMSdvUsU6rg3Jjjs3MrDbNTodnZq2lMLF24s4TW/KP/noO13keOAr4nKR7gV8DF0bEnDpewwbBY45tOPNQNauXVu+1M7P6qmZ4XjMn1g6kbkF+RGwsaRfgM8A+wE+BH0j6I3BuRFxbr2tZbTzm2IYrD1Wzemp2Ojwza5x2GJ5X14m3EXEDcIOkzwOfJgX8nwD2l/QE8BvgvIiYXs/r2sA85tiGI6fHtHpr5V47M6ufVp9UW41cVryNiBcjYnJEdAJvB34ELEtKpfmQpG5JB+RxbTOzgsJQtREjRniompmZVa3Zq9XWgyKiMReSlgF2Jy2E9WFgUUS07Kq3Y8aMiWnTpjW7GWa2lIbrmHxJt0fEmIFLtg/ft82snhqZMjePe3Yjg+ztgL2AHbL3fbVWIOlbwNbANsDGwGMRMXqAcw4GPge8i/TkYjpwaURMrPX6Zjb0eKha/dRyD5Yk4MjstTnwKnALcFJE3FKm/HLAccDBwHrAE8B5wGkR8VrdP4yZDWtDfVJtNXIN8iWtAxxCGpu/GSDgLrLMO4Oo8nvAHOAOYPUqrn8ucCjwO+C3wCLSF9NGg7i2mdlwV8s9+CxSB0sP8HVgReAIYKqkD0VET0n5S4GPAecCvUAnMBH4L2BcXVpvZkZ7TKqtRt2DfElvIvXYfwb4UHaNucDZwK8j4s6lqH6TiHgku87/ASv3047DsjYcEhFTluKaZtaihutQnCaq6h4s6T2kAP9qYI/IxoVK+iXwb2CypM0jYlG2fw9SgP/jiPhKVs2vJM0FjpU0OSJuzvODmdnw0Q6TaqtRzxVvtyQF1QcCa2a7byT12l/R32q41Sp8uVTRFgHfAu4oBPiSVgFeikZNQjCzXDk9ZuNVew8Gds625xffcyNibpZW+QjgfcBN2aFCIobTS+o5HTgWOAhwkG9mdTFc1ryoZ3adu4AvAa8Ap5J6fHaNiIvrEeDXaDNgE+BmSd+R9CzwAjBX0i8kVXwCYGZDg1dybmnLZdt5ZY4V9r23aN+2wMyImFFcMHv/ZHZ8SOid0cukmybRO6O32U0xswpafaXaeqnncJ3LSb3217ZAb/lm2faTQAfpj45HgY+QJoFtJmmX0nZKOoLUw8SoUaMa19oW4GEPNtR4JeeWdl+23QX4U2Fn9pR1p+zthkXl1wP+WaGumcAG9W5gHobLOF+zVjccJtVWo54r3n6iXnXVwSrZdiSwW0Rcn73/XfYlcygpjedVxSdFxGRgMqRUbA1qa9N52IMNRV7JuaVdRQraPy/pSeAK0sTbY4EtsjIrFpVfkZR9p5z5JWXfoJU6Z4bLOF+zVuY/thfLZTGsFvBKtp1ZFOAXnJ9tuxrXnNbmYQ82VHV2dvL/7N15mFxVmfjx78sSMOCGxAU0BHEUl1GBgIqioDhuPzfQGWVRRMyIggPiMLKoKKKobMqgYxBF2UQcUBlXkMUFFALiAgICJsEASgQUCAGB9/fHuUUqlaruqu6qrqW/n+ep53ade+6tU7eT02+deu85BxxwgAH+gMnM+ynrovwc+BTwB+DXwGbAB6tqf687ZBkrUnwarU3ztJ/aa83PzLmZOXfWrFmTbfqkjMLiOdKwa/Zhe7oa2MWoJulP1faWJvturraPnqK2DDzTHiR1W2YuBraLiNnAHOCvmXllRLynqnJ1XfWbgA1bnGpDSsrOwKvl+U7V4jmSVjVdbqptx6gG+b+lfMXb7I9GLbfzL1PXnMFm2oMGkfeJjIYq2F9cV/RqypolP6wruxTYOSKeVH/zbUQ8iZKv/x2GxHTI85UGmR+2VxjJID8zl0XE/1L+aLwxM8+q271ntf1eH5o2sFwVVIPE+0RGU0S8DngNZWrNRXW7TqNMv7wPsF9d+T7VdiKLJ0oaUePdWOuH7WKogvyI2JUVq9XOAmZExMHV80UNi14dCGwPnBoRxwILKSNIrwG+5sIq0uBqdp+IQX7/ddIHR8QJrFjl/B7gRZRA/lLKdMsPyczvRsT/URa+eiQrVrx9J3ByZv6sd+9K0jDxxtr2DVWQT+nwX9JQdmi1vRB46A9MZi6OiOcDh1EW6XokcD3wAeDo3jdV0kR5n8jAarsPBi6hzHqzI2Uq4+uADwNHZ+Y9rOrNwMGUha92peThfxg4vFuNlzT8nMWqfUMV5Gfmth3WX0gZOZI0RLxPZDB10gdn5heBL3ZQfzklyD94vLrDrp05vCU154217RuqIF/S9OF9IhpFphpIk+ONte0zyJfUF86eo+nIVANpbK5W2z0G+ZKmnLPnaLoy1UBqzW+6umtUV7xVD1x88cV88pOf5OKLL+53UzTkXGVZ01Ut1eDQ7Q41gJEauFptdzmSr7Y48qpucvYcTWemGkjN+U1Xdxnkqy3OW7u6J00AACAASURBVK5ucvYcSZp+2lnEyptqu8cgX21x5FXd5uw5kjR9tJtv7zdd3WOQr7Y48qpOOHOOJKmeM0tNPYN8tc2RV7XD+zekyXPBLI0a8+2nnkG+pK7y/g1pcpxGUKPIfPupZ5Avqau8f0OaHNMaNKzaubHWf8tTxyBfUld5/4Y0OaY1aBj5DdTgMchXV3nDpcD7N6TJMK1Bw8hvoAaPQb66xhsupwc/yEm9Z1qDho3fQA0eg3x1jTdcjj4/yEnS9ORCVsPHIF9d4w2Xo88PctJgcIpNTSUXshpOBvnqGm+4HH1+kJP6zxscNdXMtx9OBvnqKm+4HG1+kJP6z4BL3TbeN0Pm2w8ng3xJKxnvxlo/yEn9ZcClbmrnmyHz7YeTQb6kh3hjrTT4DLjUTe1+M2S+/fAxyNeUcvrFweaNtdJwMOBSt/jN0OgyyNeUcZR48HljrTQ6nIFHNWP9W/CbodFlkK8p4yjx4PPGWmk0OAOPatrNufffx+gxyNeUcZS4/9pJl/LGWmn4OQOPavy3MH0Z5GvKOErcX6ZLSdOHedbTh9NfqpWhCfIj4gBgc2ALYGNgUWbOafPYTwH7A3dn5ro9a6TG5Shx/5guJU0f7eZZm7c/3Jz+UmMZmiAf+ARwG3A58Kh2D4qI5wLvB+4CojdNUzc5A09vmC4lTS/j5Vmbtz/8nP5SYxmmIH+TzLwBICJ+B4w7Ih8RqwPHA98HHgHM7WkLNWmmlExcO4tYmS4lqcZc7cFnKo4mY2iC/FqA36H3Ac8A3gR8tbstUi+YUjIx7X44Ml1KUo0B4mAzFUeTNTRBfqciYiPgUOCjmbkowkydYWBKycT44UhSp8zbH2ym4miyRjbIB74A3AAc1e+GqH3tppSYt78yPxxJmgjz9vvHVBz12kgG+RHxVuCVwIsy8/4OjpsHzAOYPXt2j1qn8YyXUjJd8/bH+mBjvr2kXjBvvzdMxdFUGLkgPyLWA44BTsjMizo5NjPnA/MB5s6dmz1onrpgOqamtPPBxnx7Sd3Wzmiy6TzNjXVdTMXRVBi5IB/4CLAOcHxEPKWu/GFAVGX3ZuaNfWmdJm0UU1PGSz+ajh9sJPXfeKPJpvM0N951MRVHU2EUg/yNKEH+L1vs/wNwJfCsKWuRuqqd1JRhytlvZ5R+FD/YSBoOY40mtzsiPWqj/eO9n/Gui6k4mgqjGOR/Cji5SflHgScDuwJ/m9IWqevGSk0ZtJz9bozSm3MvaRC1m84zTKP94wXw7byfdq6LqTjqtaEJ8iNiV8ooPcAsYEZEHFw9X5SZJwFk5sUtjt8L2Cgzv9nzxqqv2k1t6cZo/3jn6OYovTn3kgZNOyPS3Rrt79a3AWOdp50Avp3340i9BsHQBPnAO4GXNJQdWm0vBE6a2uZoULUTNLc72j9WEN/OORyllzTqxhuR7sZof7vfBkx2FL6dAL7dfHpH6tVvQxPkZ+a2/Txew6OdoLmd4Hu8IL6dczhKL2m668ZofzvBdzdG4dtNs3GUXsNgaIJ8qRPjBc3tBN/jBfHtnMNRekma/Gh/O8F3N0bh2w3gHaXXMIhMp4NvZu7cublgwYJ+N0M91I18+mGaxUfTS0Rclplz+92OqWS/Pdwmm5PfrZQeqR960Wcb5LfgHwuBQbyGl0G+piMDeA2rXvTZputIYzBXXpKGh2k00gqr9bsBkiRJkrrLIF+SJEkaMQb5kiRJ0ogxyJcktS0iDoiIMyLihojIiFg4Tv1XRcSPI+KWiLg7Iq6JiCMi4nFN6j4yIo6NiCURsTwiroyIPSMievaGJGlEeeOtJKkTnwBuAy4HHjVWxYh4FzAfuAz4FHA3sCWwD7BDRPxzZt5d1Z0BnANsBhwL/B54FfB54HHAIT14L5I0sgzyJUmd2CQzbwCIiN8B645R9wPAzcCLMnN5VTY/Iv4MHAS8HPhWVb4H5QPA+zLz2Krs+Ij4X+DAiPhKZi7q8nuRpJFluo4kqW21AL9NjwBurwvwa26qtnfXle0ELAOOb6h7DLAm8G+dtFOSpjuDfElSr/wQeEZEHBkRT4+IJ0XEDsCHgAuB8wAiYjVgc+BXTT4QXAIkZZRfktQm03UkSb3yH8DMavv+uvKvAP+emQ9Uzx8NPAxY0niCzLw3IpYCG/a4rZI0UgzyW7jsssuWRsRU5H+uDyydgteZjry2veO17Z1uXduNunCOyfoHsBg4Czibko7zCmB34AHgXVW9mdX23hbnWV5XZyURMQ+YVz29KyKumXyzpx3/P/eO17Z3Ru3adr3PNshvITNnTcXrRMSCzJw7Fa813Xhte8dr2zujcm2rFJwfUP7OvDAzs9r1zYj4K/BfEXF6Zp5LCf4B1mpxurXr6qwkM+dTZvDRBI3Kv7lB5LXtHa/t+MzJlyT1wouAbYD/rQvwa86oti+ptrcD99AkJSci1qKM2K2SyiNJas0gX5LUC7WAffUm+9ao32bmg5R59zergvp6WwEBLOhFIyVpVBnk959fM/eO17Z3vLa9MyrX9qpqu3NErNmwb7dqe2ld2WmUvPt5DXX3Ae4HTu92A/WQUfk3N4i8tr3jtR1HrPotqiRJzUXErqy4QWxvYAZwZPV8UWaeVFf3m8COwG+Ak1lx4+1rgV9QFsl6oKo7A7gIeA7wOcqKt68G3gh8PDM/1Nt3JkmjxSBfktS2iLiAFbn0jS7MzG3r6s6gjMTvDDyV8u3xIuCbwGGZWb8YFhHxKODjwA7AY4Drgc8DxzXJ65ckjcEgX5IkSRox5uRLkiRJI8Ygv8siYrWI2Dciro6I5RFxY7Wk+zodnGO9iDgiIq6rznFrRJwfEdv0su2DbrLXNiLWjYgDI+K3EXFnRCyNiIsiYreIiF63f5BFxAERcUZE3BARGRELJ3iet0XEryLinoj4c0R8KSKmZM2JQTXZaxsRG1bnuDAibo6IuyPiyoj4TEQ8pkfN1hCzr+wd+8resJ/sDdN1uiwiPgu8j7LC4/eBp1NuTvspsH01VdxYx28EXACsC5wAXAs8Eng28MPM/HrPGj/gJnNtq4V5LgS2Br5KuelvJvBWyhR9n87M/+rpGxhgEZHAbZRpDLcA/p6Zczo8x77AUZTrfCrwROD9lBzsrRrzr6eLyV7biHg38Fngu8DPgDsp/2Z3A24BtszMW7rbag0z+8resa/sDfvJHslMH116AM8EHqQs/lJfvjeQwE5tnOOnwI3AE/r9fgbpMdlrC7ygqnd0Q/kM4Abgjn6/xz5f3yfX/fw7YGGHx68P3A1cAqxeV/7a6rof2O/3OMTX9pnA45uU71Fd2yP6/R59DM7DvrLn19e+cjCvq/1kk4fpOt31VsqiLcc0lB9PmTpul7EOjogXU1aJ/HRm3hwRa0bEzJ60dPhM6toCj6i2N9UXZuZ9wFJKpzttZeYNkzzFGyijfcdmNSVidd6zKYHBeL+fkTXZa5uZV2bzEajavPHPmsz5NXLsK3vIvrI37Cd7wyC/u7akjKBcUl+YmcuBK6r9Y3l1tV0cEWdTlnm/OyKujYhp+R+/zmSv7SXAHcD+EfHmiJgdEZtGxCcpXw0e0v0mTyu1639xk32/ADaNiHWnsD3TwROr7Z/72goNGvvKwWZfObWmdT9pkN9dGwBLM/PeJvuWAOtX80a38rRqezywHvB2YHfgPuCkiHhHNxs7ZCZ1bTPzduB1lJy/b1ByH38PvBfYMTOP736Tp5UNqu2SJvuWUEYWN2iyTxP30Wr71b62QoPGvnKw2VdOrWndT67R7waMmJlAs44VYHldnfta1Hl4tb0T2K76epSI+Bbla7xPRMRXc5ybd0fUZK8twF2UXL/vUFbWXI/yh+vUiHh9Zp7TpbZOR7W0sma/o+UNdTRJEbEf8GZgfmae1+/2aKDYVw42+8opYj/pSH63LQPWarFv7bo6rdxTbU+rBfjw0MjKd4DHs2K0f7qZ1LWNiH+m/LE6JzP/MzPPyswTKPdA3AIcHxGrd7PB00zt2jf7HbXzb19tiog9gM9QZpHYq8/N0eCxrxxs9pVTwH6yMMjvrpsoX4U2+8+7IeUr1LFGT/5UbZvdPHJztX30JNo3zCZ7bfeldKBn1Bdm5jJKJ7ARMKc7TZ2Wajfpbdhk34aU2Q1uarJPHYiI3YH5wI8oqRP/6HOTNHjsKwebfWWP2U+uYJDfXZdSrulW9YURsTbwXGDBOMfXbpR6YpN9tbK/TKaBQ2yy17bWoTYbgVqjYavOXVptX9Bk3/OBazLzrilsz8ip/nB9CTgXeEOLnGvJvnKw2Vf2kP3kygzyu+t0yqfwfRrK30XJsTulVhARm0TEpg31vkXJx9+l/u76iHgCZdqtazPzul40fAhM9tpeVW13qy+MiEcBrwduB6brte1I3Wwba9YVf5uSbrZX/Vf5EfFa4MnU/X7UWotrS0TsRrkh/zzg9dVMKVIz9pUDwr6yN+wn2+eKt10WEcdS8r/OAr5HWWnwfcDPgZfWbpqtlmzeKDOj4fh5wBeBK4EvUxYg2RN4AvD/MvNHU/NOBs9krm21kvDllHSnU6pj1qP84ZsDvDczPz9V72XQRMSulK/hoSyaMwM4snq+KDNPqqt7AfASYOPMXFhXvh9wBGXF5tMoI4L7URZ323K6jk5N9tpGxOso/+b/DuzPint3au7KzG/1qv0aPvaVvWNf2Rv2kz3S79W4Ru1B+YpzP+Aayt3zSyjLV6/bUG9hufxNz7EDZb7cuykj+z8CXtjv99bvx2SvLbAJZRqtPwH/oHQGPwF26Pd76/eD8scmWzwuaFF3TpPz7Ab8mjJLxF8oH1Qf2+/3N8zXljIveavjkw5XhvQx+g/7yp5eW/vKAbyu9pPNH47kS5IkSSPGnHxJkiRpxBjkS5IkSSPGIF+SJEkaMQb5kiRJ0ogxyJckSZJGjEG+JEmSNGIM8iVJkqQRY5AvjSMito2IrJbMHgoRsXFEfCsibq3afmK/2yRJU8E+WyoM8jX0IuKMqlN87hh1IiL+GBF3RMTDprJ9fXIiZdnvTwG7Al/sa2skqWKf3dSJ2GerywzyNQpOqLbvGKPOdsAc4OuZeU/PW9RHEbEWsA1wUmYekZknZ+bF/W6XJFXss+vYZ6tXDPI1Cn4E3AjsHBEzWtSp/TE5ocX+UfI4IIDb+t0QSWrCPntl9tnqCYN8Db3MfJDyVedjgNc17o+IRwA7Ar/LzEursodHxMcj4pcRsTQi7o2I6yLi8IiYOd5rRsQh1dfNc5rsWxgRFzSUrRURB0bElRGxvPoK+uyI2Kzd9xkR60fEcRFxY0TcV22Pi4jH1NU5EVhUPf1I1caMiG3HOO8r6uq1elzWbjslaSz22fbZmhpr9LsBUpd8BTiYMvrzzYZ9bwEexsojQhsCewD/C5wK3E/Jh9wf2Ax4RbcaFhFrAj8AtgZOAv4beCTwLuDnEfHizFwwzjkeCVwEPAX4MnB51c49gZdGxFaZeSclj/MK4GjgLODM6hS/H+P0iyg5oDWfBv4BHFRXdsP471SS2mafbZ+tXstMHz5G4gH8mNLxP6Gh/GLgXmD9urIZwJpNznEokMBWdWXbVmW71ZUdUpXNaXKOhcAFdc/3req+oqHeI4DF9XXHeG+HVed4T0P5e6vyQ+vK5lRlh0zgGq5ZXavT+/379OHDx2g/7LMfKrPP9tGTh+k6GiUnAKsDb6sVRMSmwPOB72Tm0lp5Zt6Xmf+o6qwREY+OiPWBc6sqz+tiu3YBrgYuq76+Xb96rRnAOcCL2pg94o3ArcD8hvIvVuVv7FJbN63a9esunU+SWrHPnjz7bLVkkD/NVbmIjbl8D0bE7RHx04iYFxGr/DuJFfMQX9CHZrdyJnAHK8/YsHu1/XJj5Yh4T0T8hjIKchul472g2v25iDik3Reuy/c8scnup1M64lubPHan/JFbvzrPidF8fueNgWsy8/76wur5tcCT223rOK9zXLVdv836Q6Hu93NIv9si6SHd7LMf3cV2td1nj6GrffYYatOQXtGl82mEmJOvmh8Ct1Q/r0n5+vCFwIuA10TEGzIz+9S2tmTm8og4FXhPRGwN/JKSt/gnyvt7SES8HziSMsvD54CbgPsoeZ8ntvNyY+xr/H8VwG+B99eV/SfwL8Bnqjbc2sZrToX1qu3ivrZC0sjrcp893qDlZPvsRoPSZz+n2jqSr1UY5Kvm8My8oL4gIp5HGSV5HfB64Ft1uy+hjHYsm6L2tesE4D2UkaH1gMcDh2WZzaHerpQ8zFfV74uIV7b5OrWpztarzlOzOvAE4Lq6sj8As4Dzaq8VEVdSbuS6OTP/1sbr3QA8LSLWqB8Ziog1gKfSvZus/gI8iXJTnCT1Wl/77IhYmzb67AmYqj77mcAdmbmkS+fTCDFdRy1l5i9ZMevBtg37lmXm1Zk5UCO+mXk55WvLf2PFDU6rfO0LPFDti1pB1fl+sM2Xurbabt9Q/gxW/X/1NcofrodGhTLz5ur6/S0iHtfG632L8kdnj4byd1XlZ7XZ7vGsB9zS5gcPSZqUAeiz96WNPrvegPXZT6AMzkirMMjXeGopPCt969MqJ7++vJpn+KPVXMb3RsSfIuKYiFin8UXqc6YjYoOI+EpE3FLNT3xVROzVqoERsVpE7BIR50XEbcCzgIcDrwQuysxmIybfpORM3lHNX3wn5evX9ZrUbeZc4BrgYxHxKWBuVf5PwNKGup+lfMX8mYj4XkR8ICIuqt7vdcDX23i9T1M68i9ExLKIOCwi5lOmdrsGOC7KnM6XA7+rjnl39VqtFptpZn3gqRHxvxHx2mYVImLTav/S6vdzeUT8W6sTRsRjI+LIiLg2Vsw3/ZOIeFtERItjZkTEPhGxICLurN7zbyLiQxGxbotjIiL2rOrdExF/jojTIqJbua+SeuMEVvTZF47TZ38/It4dEfsDC4BV/p60sFKfXZ3jZOCdtNdnz4syT//FtN9n/4HSN8+v+qb6PvvTbbZ7PDcDG0fEwa36bE1fBvkaz1bVdqw5e5uZQcmpfB8l6DyXMv3Yf7BiHuBmZgOXUb45uAD4BfA04NiIOLCxcpT5jM+kzGW8JSUv8fusyL98Rosg7ynVdl3KB5jVqu3sdt5cZj5ASWO6ANibFaNDPwDubqj7D+A1lPc+C/ho1VYoHyw+2cZL7gc8lnKT2t8oc0O/Gvgf4F+rdhxGGdW5pDrmEZSc/x92EOhfXm3fALy7yf7NKX9Yn075nf6aMvfz1yNip8bKEfFU4FeUEbGHAd+mTI+3FfBV4OTGQD/KrBXnUuaNfipwHvA9YAPgY8BFUWa6aDQf+DzlhrmfUK7JNlV7DfSlwXUKsLz6udkoPpS+7EDK/+XPUkb9f0TdzDxjadJnH075O/US2uuzj6Z823ADbfTZ1behL6TMpvNqyn0EtT77RVnmyO+Gg4CrKFOENuuzNZ31ew5PH/19UHITE9i2rmxNShD82WrfYuARDcdtW+27oEV5UhYCeXTdvk0oQWoCL2447pC6444FVq/b96aq/E5gnYbjPl3tOwd4fF35aqyYp/gnDce8oSr/K/DsuvK1KaNFtXYc0sF1rLX/xDbrn0jDPM7NyikfPL5UlV0MPKahflA+CCVwBLBW3b5HUT50JPCxibx+k/IE9m/Y94Gq/IYm7/PS2nUBZtSVPw1YUu3bs+GYI6ryK4DH1pU/ghLwJw1zQvfid+rDhw8fPnwM88ORfNWcX6WPJGXGgj9QRuFPAZ6fmX/v8HwPAntk5u21gsy8Hji5erpdi+MWAR/IMupSO+6bwJWUUfdaWgxRlgbfG7gdeEtm3lJ3zIPAhygjzdtExLPrXuN91fZTmfmbumOWU24Au6ezt9obVVrTtylfJ58NvCwz/9pQ7VWU+aEvBP4zM++t7cjM2tR091Fmr2iaGtOhX2Rm49fMn6X8DjaOiI3q2v9iyu/rNmDvzLyvrm3XsGJ1xv3qjnkYK0aj3puZf6k75u/APEpu7psiov5bl6H4nUqSNFUM8lXzQ0r6xFcpNx2dQxl1fwslh3GtDs+3ODOvalJ+TbXdoMVx59cHquMcty1lpPa8JsFvLdD/WfX0+fDQjVpbV2WnNDnmL5SvgPttFnA+5evd44E3ZmazmYxeVW2/mZmrTBGXmTdTPrA9hnK/wGT9oMlr/AP4Y/W0/vfz4mp7Vjb/avpkylLsm0TEhlXZFpQc2+sz8+dNXus6SirOapRUnGH6nUqSNGWcQlM1zabQfATwDcpI8oOUUdR23diivBbstfrQ0MlxtTzrHatvIMYyq9quX53jPso8y80sHOdcU+ETlP+fp2fmWNe9dg2OjYhjxznnLFbMMDFRnfx+aoH7H2kiM++PiMWUNK4NKek7Yx5TuYHyTVCt7rD8TiVJmjIG+WopM/8eER8AXgHsHhH7Vykg7Zjo3MKdHLd6tb2Kkvs9lisn1py++SZl2fM3RsTrM/PbLerVrsF5tA7Aa1b5tmMCJvp7lSRJU8ggX+OpTWW2OuVm3AV9bEujWlB7eWbu1uYxSylLoq9FmYmm2cjvnEm3bPJ+SJll4tvAGRGxU3VvQqPaNTg1M0+Ysta1p7Y4S9OZbao0m9kNdcc8pmFfre6w/E4lSZoy5uRrPJvU/Xx3y1r98WNKTvcrW82d3ijLyoMXV0+bTfk4C3h511o4CZl5DiUn/z7gtIh4a5NqtRz5N01Zw9r3k2r7hoh4eJP9O1Nmcro+V6zWeBnl39mTI+KFjQdExCaUXPwHgZ/CcP1OJUmaKgb5aqnKyf9M9fQ64Oo+NmcV1Ww6X6DkZJ/VbD78iHhURPx7NWpcU8td/6+IeFZd3bUoC5XM7GGzO1LdJ/EKyuwwJ0dE45zQZ1HmoX9lRBxd/c5WEhFzImKXnje2QWb+hBK0rwd8rlrToNamf6JMcQpwZN0x91DmlQb47ypArx3z8GrfGpQbjetXWx6a36kkSVPBdB3VfDAidqt+DsqS3lsCj6bcVPn2ZrO3DID/BJ4I7ABcHRG/otxkuRolrePZlH/nXwXuB8jMMyPiK5TpJS+LiPMpMwm9kDKzy0nArhNsz2si4hdj7N+/Cn7blpk/j4iXU0btvxIRa9ZSczLzwYh4A2UBsH2Ad0TEr4E/UaYcfTplVp1fsmL60qm0E2WWoN2Al0XERZT57l9KSa85jbI4TL2DKf/2tgGuq34//6DMprQ+ZXG199Yf0OPfqSRJQ8cgXzWvaHi+jBIsfw04MjPHu6mzL6q513eMiDcCu1OCw80oq8LeRFlI6lvVfOn19qCMMr+bEjzeSQlGDwQmM+q9fvVoZb2JnDQzfxkRL6NMbXp8RMzIzC9U+xZHxFzK7EdvpnyweQFlNd3FwOnAGRN53cnKzGsjYjPgg8BrKTcT30u5UfpLwNcaPzxm5j0RsT0lkN+Fsprw6sD1lBH7ozLzriYv16vfqSRJQycGc3BWkjQsIuIAYHPKOgcbA4syc84EzvM2YF9gU+DvlEXgDsjMW7vXWkmaHgzyJUmTUq1TcRtwOSXQ/3unQX5E7AscRVm9+VRKGt77Katgb5WZg3bjvyQNNIN8SdKkRMSTM/OG6uffAet2EuRHxPqUYP5K4AWZ+UBV/lrgO8BBmfmJrjdckkaYs+tIkialFuBPwhsoMyAdWwvwq/OeTVmrw3sqJKlDBvmSpH7bstpe3GTfL4BN210LQ5JUOLtOC+uvv37OmTOn382QpAm57LLLlmbmrPFrDoQNqu2SJvuWUKb13QC4tnFnRMyjzCzFOuuss8Wmm27aqzZKUs/0os82yG9hzpw5LFiwoN/NkKQJiYhF/W5DB2qLld3bZN/yhjorycz5wHyAuXPnpv22pGHUiz7bdB1JUr8tq7ZrNdm3dkMdSVIbDPIlSf12U7XdsMm+DYGsqyNJaoNBviSp3y6tti9osu/5wDUtVjmWJLVgkC9JmjIRMTsiNo2INeuKvw3cA+wVEavX1X0t8GTglClupiQNPW+8lSRNSkTsCmxUPZ0FzIiIg6vnizLzpLrqXwNeAmwMLATIzFsj4kPAEcC5EXEaJU1nP+Bq4JievwlJGjEG+ZKkyXonJXCvd2i1vRA4iXFk5pER8VdgX+BzwN+BbwAfNFVHkjrX13SdiDggIs6IiBsiIiNiYYt6a0fEuyLi2xGxMCLuqY45LSKe3uKYtSLiYxHxx4i4NyKuj4iDG74iliRNUmZum5nR4rFti7oLm5znxMx8TmaunZmPzczdM/MvU/U+JGmU9Hsk/xPAbcDlwKPGqDeHMg/yz4ATKLMsPBnYE9ghIl6Zmec3HHM68Hrgy5RVFF9AGVl6CrBb196BJEmSNGD6HeRvkpk3AETE74BWy5bfCmyWmVfUF0bEKcCvgM8Ac+vKX00J8I/KzP2q4i9FxB3A+yNifmZe1N23IkmSJA2Gvqbr1AL8Nur9tTHAr8qvAn4HPKth107VtvFmrdrzXTpppyRJkjRMhnoKzYhYDXgC8OeGXVsCSzLzxvrC6vlN1X5JkiRpJA11kA+8mxLkf7WhfANgSYtjltB8VUUiYl5ELIiIBbfeemv3WilJkiRNoaEN8iNia+Ao4NeUG3jrzQTubXHo8mr/KjJzfmbOzcy5s2bN6lpbJUmSpKk0lEF+RGwBfJeSevOazFzeUGUZsFaLw9eu9kuSJEkjaeiC/IjYHDgH+BuwXWY2S8u5iRYpOVV5q1QeSZIkaegNVZBfBfjnAndSAvxFLapeCmwYEU9qOP5JlHz9BT1tqCRJktRHQxPkR8RmlBH8uygB/h/HqH5atd2nobz2/JQuN0+SJEkaGH1dDCsidgU2qp7OAmZExMHV80WZeVJVbyNKgP9o4HPA1tWNt/XOysy7ATLzuxHxf5SFrx7JihVv3wmcnJk/6+X7kiRJkvqp3yvevhN4SUPZodX2QuCk6ueNgcdUPx/S4lwbA3fXPX8zcDBl4atdKXn4HwYOn1SLJUmSpAHX1yA/M7dtMsGBZwAAIABJREFUs94FQHR47uWUIP/g8epKkiRJo2RocvIlSZIktccgX5IkSRoxBvmSJEnSiDHIlyRJkkaMQb4kSZI0YgzyJUmSpBFjkC9JkiSNGIN8SZIkacQY5EuSJEkjxiBfkiRJGjEG+ZIkSdKIMciXJEmSRoxBviRJkjRiDPIlSZKkEWOQL0mSJI0Yg3xJkiRpxBjkS5IkSSPGIF+SJEkaMQb5kiRJ0ogxyJckSZJGjEG+JEmSNGIM8iVJkqQRY5AvSZIkjRiDfEmSJGnEGORLkiRJI8YgX5IkSRoxBvmSJEnSiDHIlyRJkkaMQb4kSZI0YgzyJUmSpBFjkC9JkiSNGIN8SZIkacQY5EuSJiUiVouIfSPi6ohYHhE3RsSREbFOm8evGxEHRsRvI+LOiFgaERdFxG4REb1uvySNIoN8SdJkHQ0cBVwF7A2cAbwPODsixvw7U+3/PnAocCmwH/BxYHXgK8DhvWu2JI2uNfrdAEnS8IqIZ1IC+zMzc8e68j8CnwPeApw6ximeB7wIOCYz9607/vPA1cC/A//Vg6ZL0khzJF+SNBlvBQI4pqH8eGAZsMs4xz+i2t5UX5iZ9wFLgbu70EZJmnYcyZckTcaWwIPAJfWFmbk8Iq6o9o/lEuAOYP+IWAj8EpgJvB3YAnh3txssSdOBQb4kaTI2AJZm5r1N9i0Bto6IGdXI/Coy8/aIeB3wJeAbdbvuBHbMzG91vcWSNA2YriNJmoyZQLMAH2B5XZ2x3AX8DjgC2AHYA7gOODUiXj7WgRExLyIWRMSCW2+9tf1WS9KIM8iXJE3GMmCtFvvWrqvTVET8M3ARcE5m/mdmnpWZJ1Buxr0FOD4iVm91fGbOz8y5mTl31qxZE3sHkjSCDPIlSZNxE7B+RDQL9DekpPI0TdWp7Ev5MHBGfWFmLgO+C2wEzOlOUyVp+jDIlyRNxqWUvyVb1RdGxNrAc4EF4xy/YbVtNlq/RsNWktQmg3xJ0mScDiSwT0P5uyi5+KfUCiJik4jYtKHeVdV2t/rCiHgU8Hrgdkp+viSpA46OSJImLDN/GxHHAXtFxJnA94CnU1a8vZCVF8L6MSX9JurKjgHeBhxe5ef/HFiP8iHhCcB7M/OBnr8RSRoxBvmSpMnaB1gIzANeQ1nE6ljgw5n54FgHZuaiiNgK+DDwMsoKufcAVwD7ZeaZPWy3JI0sg3xJ0qRUI+1HVo+x6s1pUX49ZfErSVKX9DUnPyIOiIgzIuKGiMhqtcNWdV8eEf8TEZdGxPKq/rZj1H9kRBwbEUuq+ldGxJ4REa2OkSRJkkZBv2+8/QTwUuB6ys1VY9kZ2J0yA8Pvx6oYETOAcyjLoZ8O7A1cA3we+MjkmixJkiQNtn4H+Ztk5mMy8+WUuZbHchDw8MzcnLrZGlrYA9gSeH9mvj8zj8/MHYAzgQMjYqNJt1ySJEkaUH0N8jPzhg7qLsnMVkunN9qJssLi8Q3lxwBrAv/W7utKkiRJw6bfI/ldFxGrAZsDv8rM5Q27L6HM57zllDdMkiRJmiIjF+QDjwYeBixp3FF9E7CUFSssriQi5kXEgohYcOutt/a2lZIkSVKPjGKQP7PatkrtWV5XZyWZOT8z52bm3FmzZvWkcZIkSVKvjWKQv6zartVi/9p1dSRJkqSRM4pB/u2U1RJXScmJiLWA9WmSyiNJkiSNipEL8qsl1C8HNquC+npbAQEsmPKGSZIkSVNk5IL8ymmUvPt5DeX7APdTFsiSJEmSRtIa/XzxiNgVqC1MNQuYEREHV88XZeZJdXWfDbyuevrCartrRLyo+vnYzPxb9fPxwDuAoyJiDmWF3FcDbwQ+npkLu/9uJEmSpMHQ1yAfeCfwkoayQ6vthcBJdeWb1+2r2b3u55OBvwFk5n0RsT3wceCtwGOA64G9geO60nJJkiRpQPU1yM/MbTuoeyJwYgf17wD2qh6SJEnStDGqOfmSJEnStGWQL0mSJI0Yg3xJkiRpxBjkS5IkSSNmzBtvI+J2ysJSv6q2l2fm1VPRMEmSJEkTM97sOn8GtgW2AxIgIpYBV1AF/dXjymqlWUmSJEl9NmaQn5mbRsQjga2A5wEvBranLEb1QqrAH7g3In4LXJaZ7+lheyVJkiSNY9x58qtVZM8BzomIpwDXAnsCfwSeAzy72m4GzAUM8iVJkqQ+6nQxrNrI/a2Z+SPgR7UdETEDeEa3GiZJkiRpYrq24m1m3kfJ1ZckSZLUR06hKUmSJI0Yg3xJkiRpxIw3T/73gIuBS6qHJEmSpAE3Xk7+K6tH7YbbJdXPr4yIO4DfZObSHrZPkiRJUofGC/IfCWxePbaotgnsAbwTICJuAX5de2Tm13vWWkmSJEnjGm8xrDuBC6sHABGxDvBcVgT9WwAvZ8WIv0G+JEmS1EcdT6GZmXcDP68eAETEwyiB/2bda5okSZKkiejKPPmZeQ/lBt2Lu3E+SZIkSRPXtSk0I+K9EXFet84nSZIkaWK6OU/+usBLung+SZIkSRPgYliSJEnSiDHIlyRJkkbMeCvefhe4DPgVcHlmLpqSVkmSJEmasPFm13lV9UiAiLidKuCvPTLzDz1toSRJkqSOjBfkP4YVK97WHi8FXsaKwP8u4Apg7d41U5IkSVK7xlvx9nbgx9UDgIhYl7LoVW3F282BrYHVqQJ/SZIkSf0zkRVv7wJ+Wj0AV7yVJEmSBokr3kqSJEkjxhVvJUmSpBHjireSJEnSiHExLEmSJGnEGORLkiRJI2bMID8ivhsRH4uIN0bERlPVKEnS8IiI1SJi34i4OiKWR8SNEXFkRKzTwTnWi4gjIuK66hy3RsT5EbFNL9suSaPKFW8lSZN1NPA+4CzgSODp1fPNImL7zHxwrIOrQaQLKPd2nQBcCzwSeDawYe+aLUmjyxVvJUkTFhHPBPYGzszMHevK/wh8DngLcOo4pzmZ8vfo2Zl5c6/aKknTiSveSpIm461AAMc0lB8PHA7swhhBfkS8GHgR8L7MvDki1gTWzMxlPWqvJE0L3Vzx9jmUgF+SNH1sCTwIXFJfmJnLI+KKav9YXl1tF0fE2ZQU0dUj4g/AxzLz5G43WJKmg67MrpOZ92TmLzLz8904nyRpaGwALM3Me5vsWwKsHxEzxjj+adX2eGA94O3A7sB9wEkR8Y6xXjwi5kXEgohYcOutt3beekkaUU6hKUmajJlAswAfYHldnVYeXm3vBLbLzFMy8yvANsAdwCciouXfqsycn5lzM3PurFmzOmy6JI2ujtJ1IuIFwF7AP1Fuyo2GKpmZm3SpbZKkwbcMeGyLfWvX1Wnlnmp7WmbeVyvMzNsj4jvA2yij/b+fbEMlaTppO8iPiLcBXwH+QZnebHGvGiVJGho3Ac+IiLWapOxsSEnlua/JcTV/qra3NNlXm2nn0ZNsoyRNO52M5B8EXANsn5k39ag9kqThcinwL8BWrDwhw9rAc4GfjHP8JcC7gSc22Vcr+8vkmylJ00snOfkbAV8wwJck1TmdMn3yPg3l76Lk4p9SK4iITSJi04Z636Lk4+9STdFcq/sE4A3AtZl5XS8aLkmjrJOR/D8Ba/WqIZKk4ZOZv42I44C9IuJM4HusWPH2QlaeI//HlAGjqDv+9oj4APBF4BcR8WVgBrBntd17St6IJI2YToL8/wF2joijM/OBXjVIkjR09gEWAvOA1wBLgWOBD2fmg+MdnJnzI2IpsD9wKGXe/YuBnTLz571qtCSNsk6C/MuAHYFLqlGbPwKrBPuZOV7+pSRphFQDP0dWj7HqzRlj35nAmd1tmSRNX50E+T+u+/lLlBzMelGVrd7uCSPiAMoquVsAGwOLxvojEBHPAw4Dnle91kXABzPziiZ1N6Asqf4qYF3gSuBTmXlGu+2TJEmShlEnQf6Yqw5O0CeA24DLgUeNVTEing9cQFlB8cNV8V7ATyNi68z8bV3d9YCfUeZuPopyP8FOwDciYvdqoRVJkiRpJLUd5GfmV3vw+ptk5g0AEfE7yoh7K5+jLHP+4sxcUh3zDcoCKUdSpnCr+SDlm4HXZebZVd0TKDmeR0TEGZl5V7ffjCRJkjQIOplCs+tqAf54IuIpwJbAGbUAvzp+CXAGsH1EPL7ukJ2A62sBflX3AcqNYOsBr+5C8yVJkqSB1HIkv1rhtmOZ+bWJN6elLavtxU32/QLYnZLX/91qbuUNqZubuaFu7Xzf6HYjJUmSpEEwVrrOiZSbW2OMOo0S6EWQv0G1XdJkX61swwnUXUlEzKNMAcfs2bM7b6UkSZI0AMYK8rebslaMb2a1vbfJvuUNdTqpu5LMnA/MB5g7d27j7EGSJEnSUGgZ5GfmhVPZkHEsq7bNVtxdu6FOJ3UlSZKkkdPXG287cFO1bZZmUytbMoG6kiRJ0sgZliD/0mr7gib7nk+5F+AygMy8mRLEP79FXYAF3W6gJEmSNCiGIsjPzOsogfmbq5VsgYdWtX0zcF5m3lJ3yGnAJhHx2rq6qwN7A3cA35uShkuSJEl90MmKt10XEbsCG1VPZwEzIuLg6vmizDyprvp/AOdTVrg9tirbm/JBZb+GUx9OCf5PjYijKCP7b6VMnblHZt7Z9TcjSZIkDYi+BvnAO4GXNJQdWm0vBB4K8jPzoojYFvh49UjgIuDNmfnr+hNk5l8j4oWUYP+9lJV0rwLekpmn9+B9SJIkSQNjrMWwvgx8MTN/WT1/MfD7zLy1Wy+emdt2WP9i4GVt1l0C7DqBZkmSJElDbayc/N2ATeqenw+8vKetkSRJkjRpYwX5S4HH1T3vZOVbSZIkSX0yVk7+RcDBETEbuL0q2yEinjLGMZmZh46xX5IkSVKPjRXk7wN8FXgfZRQ/gR2qRyvJihtnJUmSJPVByyA/MxcCL4mIGcDjgYWUwP/bU9IySZIkSRMy7hSamXkfsDgivgr8MjMX9b5ZkiRJkiaq7XnyM/MdvWyIJEmSpO4Ya3adVUTEOhHx0Yj4TUTcVT1+ExGHRMQ6vWqkJEmSpPa1PZIfEesBPwWeDtwK/Kra9VTgw8CbI2KbzLyt662UJEmS1LZORvI/BmwK7AVskJnbZOY2wAbAe4GnAYd0vYWSJEmSOtJJkP864EuZ+fnMfKBWmJkPZOYXgC8Db+h2AyVJkiR1ppMg/3GsSNFp5nJWXiFXkiRJUh90EuT/GdhsjP2bVXUkSZIk9VEnQf7ZwDsj4t8j4qHjImK1iJgH7A58p9sNlCRJktSZtmfXocyg83Lg88BHI+KaqvxpwCzgOuAj3W2eJEmSpE61PZKfmX8F5gKHA38FtqweS4FPAltWdSRJkiT1UScj+WTm34GDqockSZKkAdTRireSJEmSBp9BviRJkjRiDPIlSZKkEWOQL0mSJI0Yg3xJkiRpxBjkS5IkSSNmQkF+RKwVERtGxIxuN0iSJEnS5HQU5EfE5hFxHnAnsBh4UVX+2Ij4cURs34M2SpIkSepA20F+RDwX+CmwCfC1+n2Z+RfgYcDbu9o6SZIkSR3rZCT/Y8BNwDOBDwLRsP/HwFZdapckSZKkCeokyN8GOD4z7wKyyf7FwAZdaZUkSZKkCeskyF8b+NsY+x8xybZIkiRJ6oJOgvzrgS3G2P9S4KrJNUeSJEnSZHUS5J8K7Nowg04CRMR+wCuBk7rYNkmSJEkT0EmQfwTwC+CHwE8oAf7REbEE+DRwDvD5rrdQkjTQImK1iNg3Iq6OiOURcWNEHBkR60zgXDMj4oaIyIj47160V5Kmg7aD/My8D3g58AHgHmA58FRgKbA/8P8y88FeNFKSNNCOBo6ipGzuDZwBvA84OyI6XXTxY8Cs7jZPkqafNTqpnJn3Uzrzo3vTHEnSMImIZ1IC+zMzc8e68j8CnwPeQkn3bOdcmwP7UAaOjux+ayVp+uh0hEWSpHpvpaybckxD+fHAMmCXdk4SEatXx/wAOLObDZSk6ajtkfyIOK+NapmZL5tEewbGZZfBnDlw2GGw8879bo0kDawtgQeBS+oLM3N5RFxR7W/HvsCmwI7jVZQkja+TdJ0ns+oiWGsAT6B8I7AUuLtL7RoIixbBvHnlZwN9SWpqA2BpZt7bZN8SYOuImFHd19VURGwMfBT4WGYujIg57b54RMwD5gHMnj27k3ZL0kjr5MbbOZm5ccPjScA6wEHAHcDWvWpovyxbBgcd1O9WSNLAmgk0C/ChTNBQqzOW/wFuoNy825HMnJ+ZczNz7qxZ3q8rSTWTzsnPzHsz85PAL5lABz0MFi/udwskaWAtA9ZqsW/tujpNRcQulJnb9szMf3S5bZI0bXXzxtufAa/o4vkGht8AS1JLNwHrR0SzQH9DSipP01Sd6pijgO8Bt0TEUyLiKcBGVZVHVmWP6kXDJWmUdTPI3xiY0cXzDYSZM8vNt5Kkpi6l/C3Zqr4wItYGngssGOPYh1HmxH8N8Ie6xwXV/l2q53t0tcWSNA10MrtOq/Hs9YDtKQufXNCFNg2MjTZydh1JGsfpwIGU+e1/Wlf+Lkou/im1gojYBFgzM6+uiu4G3tzknLMoK6j/ADgB+E33my1Jo62T2XUWsursOjUBXEMJ9EfCFlvAgrHGnyRJZOZvI+I4YK+IOJOSevN0yt+DC1l5IawfU1Jxojr2H8A3G89ZN7vO9Zm5yn5J0vg6CfI/xqpBfgK3AdcC52bmg91qmCRpaOxDGQiaR0m9WQocC3zYvwuS1B9tB/mZeUgP2yFJGlKZ+QBwZPUYq96cNs+3kGq0X5I0Md288VaSJEnSAGg5kh8Rb5vICTPzaxNvztgi4nGUVRFfAzwOuAU4C/hIZt7RUPdpwKeAl1Bm/bm8qnder9onSZIkDYKx0nVOpOTcd/KVaQI9CfIj4rGUBbc2AL4I/A54FrAn8OKIeGFmLqvqbgJcBNwPfBr4G2Wmhx9GxKsy89xetFGSJEkaBGMF+dtNWSvacyBlVoadMvO0WmFEXESZveH9wMer4k8CjwK2yMwrqnpfA64EjouITTOz1UxBkiRJ0lBrGeRn5oVT2ZA2bAfcA3y9ofx04MvAO4CPR8Q6wOuAC2oBPkBm3hURX6LMErQlcMmUtFqSJEmaYsN04+1awPLGEfhqerZ7gCdHxPrAs6u6Fzc5xy+q7Za9bKgkSZLUT53Mkw9ARMwFngc8mlU/JGRmHtqNhjVxJfC0iHhu/Qh9RDy3agvAbErOPsCSJueolW3YozZKkiRJfdd2kB8RDwPOBP6FcjNu/U25WVfWqyD/GOANwDciYh/KjbfPrMr/AaxJWUJ9ZlX/3ibnWF5tZzbZR0TMoyzmwuzZs1s25JRT4KCDYPFimD0bDjsMdt658zckSZIk9UIn6TofpgT4h1Hy4wN4O/Aq4KfApcAzut3Amsz8KfAW4OHAd4FFwNnA+cD/VdX+Diyrfl6ryWnWrrbLmuwjM+dn5tzMnDtr1qym7TjlFJg3DxYtgsyynTevlEuSJEmDoJMg/03AGZn5YcooOsCSzPwhsD1lLvrdutu8lWXmGcATgc2AFwMbZOa7q7L7geuAm6rqzVJyamXNUnnactBBsKzhI8KyZaVckiRJGgSdBPlPAmoz7jxQbWcAZOb9wGmUkfaeyswHMvOKzPxpZv4lIh5PCfovrObJ/y0lVecFTQ5/frVdMNHXX7y4s3JJkiRpqnUS5N/Jihz+O4EHWXGTK5QFpx7fpXa1JSJWAz4HrE5JIyIz76Kk8WwbEc+pq7susAfwByYxfWarVP0xUvglSZKkKdVJkH898FQoo+mU2W7eBBARAewA3NjtBtZExLoRcVVEHBYRe0TEfpRg/c3AwZl5fl31AygfOn4UER+MiPdQ7hvYENh7MgthHXYYzGy4bXfmzFIuSZIkDYJOptA8F9g9IvapgvwvAv8dEddTZtXZmLIqba/cB/wa2Al4AuXm2UuBV1b3BTwkM6+LiBcChwMfpKQVXV7VPXcyjajNouPsOpIkSRpUnQT5hwMnUU2bmZmfj4i1gV0oOfrHA5/uegsrmXkf8NYO6v8eeH0v2rLzzgb1kiRJGlxjBvkRsVZm3gsP5bpfU78/M48Cjupd8yRJkiR1aryc/Jsj4riI2GJKWiNJkiRp0sYL8v8G7AlcEhFXRMTeEbHeFLRLkiRJ0gSNGeRn5saUha5OBf4J+CywJCK+HhH/MgXtkyRJktShcafQzMzzMnNXyhz47wauAP4V+H5ELIqIj0bEnJ62UpIkSVLb2p4nPzPvzMz5mfkC4OnAkcCawIeA6yLixxGxU4/aKUmSJKlNnSyG9ZDMvCYz9weeCLwW+BGwHfC1LrZNkiRJ0gRMKMivsxXwOmDr6vl9kzzfyDjlFJgzB1ZbrWxPOaXfLZI0HdT6HtjCWdEkaRrrZDEsACLiccDbgHcAT6MsjnUFcAJgKEv5IztvHixbVp4vWlSeg4toSeqdxr5HkjR9tTWSHxFrRMQOEXE2cCPwKcqNuF8AtsjMzTPzuMy8o4dtHRoHHbTqH9lly0q5JPVKs75HkjQ9jbfi7bMpI/Y7A4+pis+njNqfWVsNVytbvLizcknqBvsYSVLNeOk6V1TbG4GPA1/JzIU9bdEImD27pOg0K5ekXmnV90iSpp/x0nW+CbwKmJOZHzHAb89hh8HMmSuXzZxZyiWpV5r1PZKk6Wm8FW//NTN/mJk5VQ0aBTvvDPPnw0YbQUTZzp/vTbeSJme8Wbvq+x5J0vQWxu/NzZ07NxcsWNDvZkgS0HzmnJkzWw8gRMRlmTl36lrYf/bbkoZVL/rsyc6TL0maAs7aJUnqhEG+JA0BZ+2SJHXCIF+ShkCr2bmctUuS1IxBviQNgPFuqnXWLklSJwzyJanPajfVLloEmWU7b97Kgb6zdkmSOmGQ3yfjjdpJmj7aval2551h4UJ48MGyNcCXJLUy3oq36oHGqfBqo3bgH21pOvKmWklStzmS3wdOhSepnjfVSpK6zSC/Dxy1k6afsVL0vKlWktRtBvl94KidNL2Md2OtN9VKkrrNIL8PHLWTppd2UvS8qVaS1E0G+X3gqJ00vZiiJ0maas6u0yc772xQL00Xs2eXFJ1m5ZIk9YIj+f+/vTsPuqMq8zj+/YUlYVEEyQiJkwRBiYXWoAYEBEQcSkdHVChKlKABA4OEOARKygFEBBwQEkC20kQWh8VBNDBSKgqDcSwW4QXDsAiIEAxhMRlBlhDC8swfp69cLvd9u/N23/33qbrV0H2633P63tx+7umnzzEzK8mz1ZqZWbdxkG9mVoJnqzUzs27kIN/MrATPVguSxkiaI+leSaskLZU0T9IGBfZ9h6QTJN0sabmkZyQtlnRMkf3NzKw5B/ldLC8FwMw6zw/VAnAGcDpwDzAbuAL4MnC1pLzrzIHAHOCPwAnAV4D7gJOAGyWt16pKm5n1Mz9426VqKQC1HsJaCgD0Vw+gWa8b9IdqJW1DCuwXRsTedesfAs4C9gUuG+EQPwJOjoi/1q37jqQ/AMcAXwTOqbziZmZ9zj35XapoCoCZtZYfqs31WUDAmQ3rFwArgekj7RwRQw0Bfs3l2fJdpWtoZjaAHOR3KacAmHWeH6otZDvgFeCW+pURsQpYnG0fjbdmyydGXzUzs8HlIL9LDXerf1BSAMy6gR+qLWQCsCIiXmiybRmwqaR11+SAktYCvga8xMipPkg6WNKQpKHly5evyZ8xM+trDvK7lFMAzDrPd9QKWR9oFuADrKorsybOBHYEjouI+0YqGBHzI2JaREwbP378Gv4ZM7P+5SC/SzkFwKzzfEetkJXA2GG2jasrU4ikE4HDgPkRcXLJupmZDSwH+V1swFMAzNpipAdrfUetkEdJKTnNAv2JpFSe1UUOJOl44FjgQuCQympoZjaAHOSb2cDKe7DWd9QKuZV0Ldm+fqWkccC2wFCRg2QB/teB7wMzIyKqraaZ2WBxkG9mA6vIg7W+o5brciCAwxvWH0TKxf/bvRFJW0qa2ngASceRAvyLgQMj4pXWVdfMbDA4yO9xnhXXbPT8YG15EXEncC6wl6SFkmZKmkeaAffXvHZ0nP8Gfl+/v6RZwDeAPwHXAZ+TNL3utUdbGmJm1mc8420P86y4ZuUM+my1FTocWAIcDHwcWAGcTRodJ69XvjaO/iRSqk6jXwPXVlNNM7PB4Z78HuZZcc1G5tlq2yMiXo6IeRGxdUSMjYiJEXFERDzbUG5KRKhh3YyI0Aiv3draGDOzPuEgv4c51cBseJ6t1szMBpmD/B7mMbzNhufZas3MbJA5yO9hTjUwG57vdJmZ2SDrqSBf0oaSjpZ0p6RnJK2QdKOkGZLUUPb9kq7Lyj0t6RpJ23aq7q3gVAMbZHn59r7TZWZmg6xngnxJY4CfAyeSJl85EjgJWIs0O+IpdWV3II3IsAVQG3/57cBvJL27vTVvLaca2CAqkm/vO11mZjbIeibIB94P7AycFREHRsT8iDgT2AV4CPiXurJnAauBXSPijIg4A9iVNGHLvDbXu+M8lr71m6KTWPlOl5mZDapeGif/jdny0fqVEbFa0gpgLICkrUjjLl8QEcvqyi2TdAVwgKTNIuLxNtW7ozyWvvWjovn2++3nz7mZmQ2mXurJvwV4CjhK0j6SJkmaKulk4H3A8Vm52sQqNzU5xs2AsvIDwWPpWy9yvr2ZmVk5PRPkR8STwJ7AX4AfAg+TpkefBewdEQuyohOy5bLXHeTVdROb/Q1JB0sakjS0fPnyyureSR5hxHqN8+3NzMzK65kgP/MscBcwF9gLmAk8AFwmaY+sTO3S/0KT/Vc1lHmNLM9/WkRMGz9+fHW17iD3eFqvcb69mZlZeT0T5Gej4twIXBsRX4mIKyPifNLDuI8DCyStBdTCg7FNDjMuW65ssq0vucfTes2a5Nt7ZCkzM7PmeibIB+aQgvQr6ldGxErgp8BkYAqvPpjbLCWntq5ZKk9fco+ndaORcu5998nMzKy8XgryawH6Wk22rV23vDX77x0F4SivAAASU0lEQVSblNuBNIzmbdVWrbvl9Xh6iE1rp7yce999MjMzK6+Xgvx7suWM+pWS3gR8EngSeCAiHgCGgH0kTagrNwHYB7h+UIbPLKLIQ45mVcrLuffdJzMzs/IUEZ2uQyGSJgO3AxsDlwI3AJsAB5HSdGZFxHlZ2Z2AXwGPAGdnh5gNvAX4QETckff3pk2bFkNDQxW3ovtMmZIC+0aTJ6def7OqjRmTflA2ktLdJquGpNsiYlqn69FOg/K9bWb9pxXf2T3Tkx8RDwPbAxcDHyIF718FlpKG0DyvruyNwG7AEuAk4ETSKDy7FgnwB4mH2LSqeYx7MzOzzuulGW+JiD8CXyhY9ibgw62tUe+bNKl5T74DLhuNIjMsf/Obry0Dzrk3MzOrWs/05Ftr+CFHq5LHuDczM+sODvIHXNGAyyPwWBEe497MzKw7OMi3QkNsegQeA+fbm5mZ9QoH+ZarSAqG9b8iP/ac/mVmZtYdHORbLo/AY+B8ezMzs17iIN9yOQVjcIyUjuN8ezMzs97hIN9yFU3B8MO5vS0vHcc/9szMzHqHg3zLVSQFww/n9r68dBzn25uZmfUOB/lWSF4Khh/O7X55d1ry0nGcb29mZtY7emrGW+tefji3uxWZibbI7Mf77eeg3szMrBe4J98qUSRf2zn7rZN3bovcaXE6jpmZWf9wkG+VyAsQnbPfOkXObZE7LU7HMTMz6x8O8q0SeQGic/Zbp8i5LToyjoe/NDMz6w8O8q0yIwWIRXP2ndLTXNnx652KY2ZmNlgc5FtbFM3Zd0rP61Uxfr1TcczMzAaLg3xriyI9yUVTevqtt7/sQ7NFe+mdimNmZjY4HORbWxTpSS6SdlKkt7+bfgTk1aWKh2bdS29mZmaNHORb2+T1JBdJO8nr1S6a8lPkh0CRAL1sAF/VQ7PupTczM7N6DvKtaxRJO8nr1S4SNBe9GzBSmaoCeD80a2ZmZq3gIN+6RpG0k7xe7SJBc5HgO69MVQG8H5o1MzOzVnCQb10lL+0kr1e7SNBcJPjOK1NVAO+HZs3MzKwVHORbT8nr1S4SNBcJvvPKVBXAu5fezMzMWsFBvvWckXq1iwTNRYLvvDJVBvDupTczM7Oqrd3pCphVbb/9Rg6Ua9uOOSal10yalILzxh8LI5UpcowidTEzMzNrBUVEp+vQlaZNmxZDQ0OdroaZ2ahIui0ipnW6Hu3k720z61Wt+M52uo6ZmZmZWZ9xkG9mZmZm1mcc5JuZmZmZ9RkH+WZmZmZmfcZBvpmZlSJpjKQ5ku6VtErSUknzJG3Qjv3NzOz1HOSbmVlZZwCnA/cAs4ErgC8DV0sqcp0pu7+ZmTXwOPlmZjZqkrYhBeYLI2LvuvUPAWcB+wKXtWp/MzNrzj0kZmZWxmcBAWc2rF8ArASmt3h/MzNrwkG+mZmVsR3wCnBL/cqIWAUszra3cn8zM2vC6TrDuO2221ZIerjT9ehRmwIrOl2JPuVz2zr9dm4nt+nvTABWRMQLTbYtA3aStG5ErG7F/pIOBg7O/vcFSXetYf17Wb99ZotwmwfDILZ566oP6CB/GBExvtN16FWShqqemtkSn9vW8bkdtfWBZgE6wKq6MsMF+aX2j4j5wHwYvPdw0NoLbvOgGNQ2V31Mp+uYmVkZK4Gxw2wbV1emVfubmVkTDvLNzKyMR4FNJTUL1CeSUnGG68WvYn8zM2vCQb61wvxOV6CP+dy2js/t6NxKupZsX79S0jhgWyDvFnTZ/esN2ns4aO0Ft3lQuM0VUERUfUwzMxsQkt4N3AFc2TDO/WzSOPf7R8Ql2botgXUi4t7R7G9mZsU5yDczs1IknQ0cBlwJ/Ax4J2nG2huA3SPilazcEmByRGg0+5uZWXEO8s3MrBRJawGHk4aynEIa+u5y4LiIeLau3BKaB/mF9jczs+Ic5JuZmZmZ9Rk/eGu5JI2RNEfSvZJWSVoqaZ6kDQruv6GkoyXdKekZSSsk3ShphiTlH6E/Sfo3SVdIelBSZL2coznO5yX9TtLzkp6Q9D1JAz3PQ9lzK2lidoxfS3pM0nOS7pZ0mqQ3t6ja1qCC755S+7dbmfpKeoekEyTdLGl59l27WNIx3dpeqPY9krR+3b/5c1pR3ypU0WZJm0iaK+mB7BjLJf1K0i6trPtoDWIc0RXX+Ijwy68RX8C3gQAWAgcBpwMvAtcDY3L2HQP8BngZuIB0O/5w4LfZMb/V6fZ18LwG8H/AtcBfgCWjOMac7DiLsnN7AvAscDewQafb2KvnFjiENEHTQuCI7HO/IPvcLwU263QbB+FV5runiv17qb3AKcAzwKXA7OwzfHl2vDuA9Trdvla/R8Dc7BwEcE6n29aqNpNms34IWJ697wdm14ILgX073b6q29yrcUQ3XOM7fhL86u4XsA3wCvDjhvWzsw/e53L23zErd0bD+nWBB4GnOt3GDp7bt9X9911r+gVAmvb7OeAWYK269Z/IzvnRnW5jD5/bbWgSyAMzs3M7t9Nt7PdXBd89pfbvwfZOAzZqsv6kbP/DOt3GVr5HwHuBl0g/yrs2yK+izVnAuxTYvNPtaUebezWO6IZrvNN1LM9nAQFnNqxfQJqFcnrO/m/Mlo/Wr4w0uc0K0gd4IEXEgyUP8SlgfeDsiHi57rhXk7748t6bvlX23EbE3RHxeJNNl2fLd5U5vhVS9run7P7tVqq+ETEUEX9tsqmbP7OVvEfZg9sLgGtIPcXdrFSbJe0K7AycGhGPSVpH0votqWl1BjKO6IZrvIN8y7Md6Rf4LfUrI2IVsDjbPpJbgKeAoyTtI2mSpKmSTgbeBxxffZUHRu3c39Rk283AVEkbtrE+g+Ct2fKJjtZiMJT97im7f7u1qr7d/Jmtqs1zgKmkYVi7Xdk2fyxb/knS1cDzwHOS7pfUbT9caxxHjE7pa7yDfMszgTSt/AtNti0jTUe/7nA7R8STwJ6kfLQfAg8DvwdmAXtHxILqqzwwJmTLZU22LSP1nExoss1G7xvZ8vsdrcVgKPXdU8H+7VZ5fbMe7q+R0lguK1/FypVus6QtSP8uT4iIJdVXsXJl27x1tlwAbAJ8gZSTvxq4WNIBVVa2Io4jRqf0Nd5BvuVZn/QAYjOr6sqM5FlSPtpcYC9SXvMDwGWS9qiikgOqdt6bvT9F3xsrSNKRwD7A/Ii4vtP1GQBlv3uq+O5qp1bU90xSPvNxEXHfaCvWQlW0+Tuk1IXTq6pUi5Vt8xuy5TPAhyLi0oi4ENiF1Nv975K6LbZzHDE6pa/x3fZBsO6zEhg7zLZxdWWaUpqy/kbg2oj4SkRcGRHnk3IKHwcWZL1NtuZq573Z+5P73lhxkmYCpwE/pTdSAvpBqe+eCvZvt0rrK+lE0md1fkScXLJurVL2+jId2AP4UkS8WHHdWqXs+/x8tvxBlpMO/K23+yfAZrza298tHEeMTulrvIN8y/Mo6VZasw/ZRNItuNVNttXMIX0Yr6hfGRErSQHTZNIMl7bmag8hTWyybSLp6ftHm2yzNSDpQGA+8EvSreFeCSZ6XdnvnrL7t1tl9ZV0PHAsaUjFQyqrYfVG3eZsn9OBnwGPS9pK0lakawrARtm6N7Wi4iWUfZ8fyZbNBgZ4LFtuXKJ+reA4YnRKX+Md5FueW0mfk+3rV0oaB2wLDOXsX/twNvuVvXbD0tbMrdlyxybbdgDui4hn21ifvpMF+N8DrgM+NUxOqbVG2e+esvu3WyX1zQL8r5OeG5kZ2Zh7XapMm9cDxgMfB/5Q91qUbZ+e/f/MSmtcXtn3ufbw6lubbKut+3OZCraA44jRKX2Nd5BveWqTqRzesP4gUi7YpbUVkraUNLWh3D3Zckb9yqx35ZPAk6S8OhtB3WgC69St/i/SrdvD6m9VSvoE8Dbq3hsb3jDnFkkzSA+3XQ98MhsJwtqn7HdP4f27RNn2Iuk4UoB/MXBgRLzSuupWokybnyM9I9P4OjTbfk32/z9pSc1Hr+z7fBUpH396/cgqkjYnDbl4f0R02zXVcUSOVl3j1d0/8q0bSDqblNt5JenW6DuBLwM3ALvXLiTZlM2TI0J1+04GbifdPrw022cT0j/uKcCsiDivXW3pJpL259Vby7NJE3vMy/7/4Yi4uK7sIuCDwBb1I0hkD4POJfVe/YDU43EkaaKU7Qa1J7/suZW0J+nz/jRwFK/mwdY8GxFXtar+lpT57lmT/btFye/aWcA5wJ9II+o0tu2JiLi21W1YU2Xf4ybHm0KaDfbciOjK52cq+FwfDHyXNOvpBaTvty8BmwP/HBG/bE9LihvEOKIrrvFrMvuWX4P5It0iOxK4j/SU9zJSLuSGDeWWpI/U6/bfknTr+BHSNNZPA/8D7NXptnX4vC4i9W40ey0apuyUJseZQZq2fhXpNu0FwN91un29fG5J4y4Pt38wiunJ/RrV+1j2u6fQ/t3yKtNe4KKcz+yiTrevFe9xk+NNoYtnvK2qzaQRZm4m3dF4hvTM0Ac63bZWtZkejCPKXofqts1glNd49+SbmZmZmfUZ5+SbmZmZmfUZB/lmZmZmZn3GQb6ZmZmZWZ9xkG9mZmZm1mcc5JuZmZmZ9RkH+WZmZmZmfcZBvpmZmZlZn3GQb5ZD0m6SQtKMTtelKElbSLpK0vKs7hd1uk5mZmbWPg7yredJuiILZLcdoYwkPSTpKUnrtbN+HXIRaYrsbwH7k6ZANzMzswHhIN/6wfnZ8oARynyINN35f0bE8y2vUQdJGgvsAlwcEXMj4pKIuKnT9TIzM7P2cZBv/eCXwFJgP0nrDlOm9gPg/GG295O3AAL+0umKmJmZWWc4yLeeFxGvkNJT3gzs2bhd0huBvYG7IuLWbN0bJJ0k6beSVkh6QdIDkk6RtH7e35R0fJYiNKXJtiWSFjWsGyvpaEl3S1qVpQ1dLek9RdspaVNJ50paKml1tjxX0pvrylwEPJz979ezOoak3UY47kfqyg33uq1oPc3MzKzz1u50BcwqciFwLKnH/kcN2/YF1uO1vfgTgZnAj4HLgJdIOexHAe8BPlJVxSStA1wD7ARcDJwDbAQcBNwgadeIGMo5xkbAjcBWwAXA7Vk9vwTsLmn7iHiGlHu/GDgDuBJYmB3i9yMc/mFS3n7NqcCLwDF16x7Mb6mZmZl1Cwf51hci4iFJvwI+ImnziHisbvMBwGrgkrp1DwJ/HxEv1q07V9KJwLFZ0HxLRdU7DNgN+GhE/KK2UtJ5wF3A3Gz7SI4C3g7Miojz6o6xmPSj4SjgaxFxk6THSEH+/0bEJU2PVici7gXuzY63DunH0FVF9jUzM7Pu5HQd6yfnA2sBn6+tkDQV2AH4SUSsqK2PiNW1AF/S2pI2lrQpcF1W5P0V1ms6KYi+LUu52TT7W+sC1wI7Fxjx59PAcmB+w/rvZus/XVFdp2b1uqOi45mZmVkHuCff+slC4ClSz/23snUHZssLGgtLOhQ4BNiG1//g3bjCer2TlC60fIQym5IeHh7OFsBQRLxUvzIiXpJ0P/De0rVMasOQLq7oeGZmZtYBDvKtb0TEKkmXAYdK2gn4LSnX/BHgF/VlJR0BzCONzHMW8CgppWci6SHevLtcMcK2xn9XAu4Ejhhhn5F+ALTTP2RL9+SbmZn1MAf51m/OBw4l9eZvAmwGfDMbgafe/sAS4J/qt0n6aMG/UxuecpPsOLX9xwGbAw/Ulf0DMB64vkk9inoQ2FrS2vW9+ZLWBt5BdQ/GbgM8FRHLKjqemZmZdYBz8q2vRMTtpFSTzwCzSD3ur0vVAV7Otqm2IguYv1rwT92fLf+xYf0cXv/v6j9IPzaa9uRLekuBv3cV6YfCzIb1B2XrryxwjCI2B/5c0bHMzMysQ9yTb/3ofOBs4KPAooho1sv9I+Bk4OeSFgJvBD5HGjqyiOuA+4ATsnHqHwJ2Jj3ku6Kh7LeBPYDTJO0OXA88DUwCPgysIs3IO5JTgX1IIwC9F/gdaQjNL2b1OLVgvfM8BnxY0rHAHRFxdUXHNTMzszZyT771o0tJgTM078UHOA04GngbKQifRcrP//ww5V8jIl4mTby1CJgNnEIaleaDwHMNZV8EPg78K6nX/RukIS4/Q0qzObnA3/sr8AHSaDofIz1H8DHgO8DO2Rj5VTgGuAc4nvRQspmZmfUgRYz0/KCZmZmZmfUa9+SbmZmZmfUZB/lmZmZmZn3GQb6ZmZmZWZ9xkG9mZmZm1mcc5JuZmZmZ9RkH+WZmZmZmfcZBvpmZmZlZn3GQb2ZmZmbWZxzkm5mZmZn1mf8HGjpX1qCTApAAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, axes = plt.subplots(2,2,figsize=(12, 12))\n", "\n", "ax_chi2 = axes[0,0]\n", "ax_bllh = axes[1,0]\n", "ax_ullh = axes[0,1]\n", "# A fourth plot is available for plotting whatever you want :)\n", "\n", "# ChiSquare:\n", "# ----------\n", "ax_chi2.plot(tau, chi2, 'k.', label='chi2')\n", "ax_chi2.set_xlim(chi2_minpos-2*min_fit, chi2_minpos+2*max_fit)\n", "ax_chi2.set_title(\"ChiSquare\")\n", "ax_chi2.set_xlabel(r\"Value of $\\tau$\")\n", "ax_chi2.set_ylabel(\"Value of ChiSquare\")\n", "\n", "# Binned Likelihood:\n", "# ----------\n", "ax_bllh.plot(tau, bllh,'bo')\n", "ax_bllh.set_xlim(bllh_minpos-2*min_fit, bllh_minpos+2*max_fit)\n", "ax_bllh.set_title(\"Binned Likelihood\")\n", "ax_bllh.set_xlabel(r\"Value of $\\tau$\")\n", "ax_bllh.set_ylabel(r\"Value of $\\ln{LLH}$\")\n", "\n", "\n", "# Unbinned Likelihood:\n", "# ----------\n", "ax_ullh.plot(tau, ullh, 'g.')\n", "ax_ullh.set_xlim(ullh_minpos-2*min_fit, ullh_minpos+2*max_fit)\n", "ax_ullh.set_title(\"Unbinned Likelihood\")\n", "ax_ullh.set_xlabel(r\"Value of $\\tau$\")\n", "ax_ullh.set_ylabel(r\"Value of $\\ln{LLH}$\")\n", "\n", "fig;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "## Parabola function\n", "Note that the parabola is defined differently than normally. The parameters are:\n", " * `minval`: Minimum value (i.e. constant)\n", " * `minpos`: Minimum position (i.e. x of minimum)\n", " * `quadratic`: Quadratic term." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def func_para(x, minval, minpos, quadratic) :\n", " return minval + quadratic*(x-minpos)**2\n", "func_para_vec = np.vectorize(func_para) # Note: This line makes it possible to send vectors through the function! " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "## Double parabola with different slopes on each side of the minimum:\n", "In case the uncertainties are asymmetric, the parabola will also be so, and hence needs to be fitted with two separate parabolas meeting at the top point. Parameters are now as follows:\n", " * `minval`: Minimum value (i.e. constant)\n", " * `minpos`: Minimum position (i.e. x of minimum)\n", " * `quadlow`: Quadratic term on lower side\n", " * `quadhigh`: Quadratic term on higher side" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def func_asympara(x, minval, minpos, quadlow, quadhigh) :\n", " if (x < minpos) :\n", " return minval + quadlow*(x-minpos)**2\n", " else :\n", " return minval + quadhigh*(x-minpos)**2\n", "func_asympara_vec = np.vectorize(func_asympara) # Note: This line makes it possible to send vectors through the function! " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Perform both fits:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# Fit chi2 values with our parabola:\n", "indexes = (tau>chi2_minpos-min_fit) & (tau" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Plot fit\n", "minval, minpos, quadratic = minuit_chi2.args\n", "print(minval)\n", "minval_2p, minpos_2p, quadlow_2p, quadhigh_2p = minuit_chi2_doublep.args\n", "print(minval_2p)\n", "x_fit = np.linspace(chi2_minpos-min_fit, chi2_minpos+max_fit, 1000)\n", "\n", "y_fit_simple = func_para_vec(x_fit, minval, minpos, quadratic)\n", "\n", "ax_chi2.plot(x_fit, y_fit_simple, 'b-')\n", "\n", "d = {'Chi2 value': minval,\n", " 'Fitted tau (s)': minpos,\n", " 'quadratic': quadratic}\n", "\n", "text = nice_string_output(d, extra_spacing=3, decimals=3)\n", "add_text_to_ax(0.02, 0.95, text, ax_chi2, fontsize=14)\n", "fig.tight_layout()\n", "fig" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Chi2 fit gives: tau = 0.860 +- 0.127\n" ] } ], "source": [ "# Given the parabolic fit, we can now extract the uncertainty on tau (think about why the below formula works!):\n", "err = 1.0 / np.sqrt(quadratic)\n", "# For comparison, I give one extra decimal, than I would normally do:\n", "print(f\" Chi2 fit gives: tau = {minpos:.3f} +- {err:.3f}\")\n", "\n", "# For the asymmetric case, there are naturally two errors to calculate.\n", "#err_lower = 1.0 / np.sqrt(quadlow)\n", "#err_upper = 1.0 / np.sqrt(quadhigh)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "lines_to_next_cell": 2 }, "outputs": [], "source": [ "if save_plots: \n", " fig.savefig(\"FitMinimum.pdf\", dpi=600)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Chi2 scan gives: tau = 0.8400 + 0.1000 - 0.1600\n" ] } ], "source": [ "# Go through tau values to find minimum and +-1 sigma:\n", "# This assumes knowing the minimum value, and Chi2s above Chi2_min+1\n", "if (ScanChi2) :\n", " if (((chi2[0] - chi2_minval) > 1.0) and ((chi2[Ntau_steps] - chi2_minval) > 1.0)) :\n", " found_lower = False\n", " found_upper = False\n", " for itau in range (Ntau_steps+1) :\n", " if ((not found_lower) and ((chi2[itau] - chi2_minval) < 1.0)) :\n", " tau_lower = tau[itau]\n", " found_lower = True\n", " \n", " if ((found_lower) and (not found_upper) and ((chi2[itau] - chi2_minval) > 1.0)) :\n", " tau_upper = tau[itau]\n", " found_upper = True\n", " \n", " \n", " print(f\" Chi2 scan gives: tau = {chi2_minpos:6.4f} + {chi2_minpos-tau_lower:6.4f} - {tau_upper-chi2_minpos:6.4f}\")\n", " else :\n", " print(f\"Error: Chi2 values do not fulfill requirements for finding minimum and errors!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Discussion:\n", "One could here of course have chosen a finer binning, but that is still not very satisfactory, and in any case very slow. That is why we of course want to use e.g. iMinuit to perform the fit, and extract all the relevant fitting parameters in a nice, fast, numerically stable, etc. way." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Fit the data using iminuit (both chi2 and binned likelihood fits)\n", "\n", "Now we want to see, what a \"real\" fit gives, in order to compare our result with the one provided by Minuit." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "# Define the function to fit with:\n", "def func_exp(x, N0, tau) :\n", " return N0 * binwidth/tau * np.exp(-x/tau)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### $\\chi^2$ fit:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FCN = 13.542165102767706TOTAL NCALL = 22NCALLS = 22
EDM = 2.480211693202822e-12GOAL EDM = 1e-05\n", " UP = 1.0
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ValidValid ParamAccurate CovarPosDefMade PosDef
TrueTrueTrueTrueFalse
Hesse FailHasCovAbove EDMReach calllim
FalseTrueFalseFalse
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
+NameValueHesse ErrorMinos Error-Minos Error+Limit-Limit+Fixed?
0N01001Yes
1tau0.8452340.1245020.51.5No
\n", "
\n",
       "\n",
       "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Prepare figure\n", "fig_fit, ax_fit = plt.subplots(figsize=(8, 6))\n", "ax_fit.set_title(\"tau values directly fitted with iminuit\")\n", "ax_fit.set_xlabel(\"Lifetimes [s]\")\n", "ax_fit.set_ylabel(\"Frequency [ev/0.1s]\")\n", "\n", "# Plot our tau values\n", "indexes = yExp>0 # only bins with values!\n", "xExp = (xExp_edges[1:] + xExp_edges[:-1])/2 # move from bins edges to bin centers\n", "syExp = np.sqrt(yExp) # uncertainties\n", "ax_fit.errorbar(xExp[indexes], yExp[indexes], syExp[indexes], fmt='k_', ecolor='k', elinewidth=1, capsize=2, capthick=1)\n", "\n", "# Chisquare-fit tau values with our function:\n", "chi2_object_fit = Chi2Regression(func_exp, xExp[indexes], yExp[indexes], syExp[indexes])\n", "# NOTE: The constant for normalization is NOT left free in order to have only ONE parameter!\n", "minuit_fit_chi2 = Minuit(chi2_object_fit, pedantic=False, limit_tau=(min_tau,max_tau), tau=tau_truth, fix_N0=True, N0=Ntimes)\n", "minuit_fit_chi2.migrad()\n", "\n", "# Plot fit\n", "N0, tau_fit_chi2 = minuit_fit_chi2.args\n", "x_fit = np.linspace(0, 10, 1000)\n", "y_fit_simple = func_exp(x_fit, N0, tau_fit_chi2)\n", "ax_fit.plot(x_fit, y_fit_simple, 'b-', label=\"ChiSquare fit\")" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Decay time of minimum found: chi2: 0.845 +- 0.125s\n", " Chi2 value at minimum: chi2 = 13.5\n" ] } ], "source": [ "# Print the obtained fit results:\n", "# print(minuit_fit_chi2.values[\"tau\"], minuit_fit_chi2.errors[\"tau\"])\n", "tau_fit = minuit_fit_chi2.values[\"tau\"]\n", "etau_fit = minuit_fit_chi2.errors[\"tau\"]\n", "\n", "print(f\" Decay time of minimum found: chi2: {tau_fit:.3f} +- {etau_fit:.3f}s\")\n", "print(f\" Chi2 value at minimum: chi2 = {minuit_fit_chi2.fval:.1f}\")" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([0.59622929, 0.61340203, 0.63057476, 0.64774749, 0.66492022,\n", " 0.68209296, 0.69926569, 0.71643842, 0.73361115, 0.75078389,\n", " 0.76795662, 0.78512935, 0.80230208, 0.81947482, 0.83664755,\n", " 0.85382028, 0.87099301, 0.88816575, 0.90533848, 0.92251121,\n", " 0.93968394, 0.95685667, 0.97402941, 0.99120214, 1.00837487,\n", " 1.0255476 , 1.04272034, 1.05989307, 1.0770658 , 1.09423853]),\n", " array([19.36459499, 18.44380261, 17.62484726, 16.90037319, 16.26361842,\n", " 15.70834592, 15.22878574, 14.81958617, 14.47577221, 14.19271018,\n", " 13.96607719, 13.79183488, 13.66620638, 13.5856562 , 13.5468724 ,\n", " 13.54675075, 13.5823805 , 13.65103159, 13.75014295, 13.87731191,\n", " 14.03028443, 14.20694612, 14.40531386, 14.62352811, 14.85984568,\n", " 15.11263295, 15.38035958, 15.66159256, 15.95499064, 16.25929904]),\n", " array([ True, True, True, True, True, True, True, True, True,\n", " True, True, True, True, True, True, True, True, True,\n", " True, True, True, True, True, True, True, True, True,\n", " True, True, True]))" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Alternatively to the above, one can in iMinuit actually ask for the Chi2 curve to be plotted by one command:\n", "minuit_fit_chi2.draw_mnprofile('tau')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "### Binned likelihood fit:\n", "Try to implement this fit yourself - some parts of the code are already in place:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/envs/python3/lib/python3.6/site-packages/ipykernel_launcher.py:5: LogWarning: x is really small return 0\n", " \"\"\"\n" ] }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FCN = 90.47125904971176TOTAL NCALL = 20NCALLS = 20
EDM = 6.666016656034979e-10GOAL EDM = 5e-06\n", " UP = 0.5
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ValidValid ParamAccurate CovarPosDefMade PosDef
TrueTrueTrueTrueFalse
Hesse FailHasCovAbove EDMReach calllim
FalseTrueFalseFalse
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
+NameValueHesse ErrorMinos Error-Minos Error+Limit-Limit+Fixed?
0N01001Yes
1tau0.9143890.09111310.51.5No
\n", "
\n",
       "\n",
       "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAGXCAYAAABocvA1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd4VNXWwOHfooRQAtIEUSCAFAFFKVKuIiAo0qSJqHS5XLCXq1yxxYJdQT9ERRAQLCBVxQIqiA0pigURUAhYUJogSKSu7499ZpwkkzLJTGaSrPd55plkn33OWTOZsrLbEVXFGGOMMSZWFIl2AMYYY4wxgSw5McYYY0xMseTEGGOMMTHFkhNjjDHGxBRLTowxxhgTUyw5McYYY0xMseTExDwRmSYiKiJDoh1LpIlIkvdYk7JTnp/k5d9RRC4RkZUi8pd3TvXKh3i/T4t0DOEgIolevMlROHeO/l6RiDkvX/+x8hoRkWQvjsRoxhEtlpzEoMAPU2Pyg2h+iQaJpTnwCnAm8CEw3btltk+WX0iF/cvCpzD9sxCLCsvrsFi0AzDGZMsE4FVgV7QDyQd6AEWBB1T1rjTb5gMrgH15HlX+cxvwELA92oGQt6//WHmNnA8UB36JchxRYcmJMfmAqu7CEpPsOsW735x2g6ruI/pfOvmCqm4nNhKTPH39x8prRFV/jHYM0WTdOjHE17Qc8LsG3gLKTxSRG0RksdfE97eI/CEiy0VkUGbHzqjZOtQ+XRFZ49U/P5M6b3t1+geUtRSRx739d4jIIRH5SURmikjj7Jw74FjLvOO3y2B7hs2fIhInIteIyKcistd7DteLyH0ikhCkflERGSQiH4vIdi/u30TkcxEZKyLxIcQtIjJKRL4WkRQR+V1EXhGR2pnsk+VYFBGp4z2P20XkmIjckKbuv0TkNRH5VUQOe/HPFpEzMznviSLygBfrARHZLyLfi8izvr+XF9MWb5eaaV63yVk8F4u9en0zqbPAq3NFFsdK8t4nQ72iqQFxJHl10r0PRGQZMNX7dXCa+KeJSDvvuDW9OlvS1ElME0djb79t3utkt4gsyuh16u3TVETe9F6LB0RkhYhcktnjzeA4Lb2Y3g+yba63Ld2Xnog87G37T0BZuu4b73kY7P06Nc3zMIQ0RKSIuM+qdd577HcReUFETgzxcWXn9V/Te/3/Lm6s0QoRuSCgbg/v/funuM/LV0WkWpBzBf2sDCwXkXIi8qS4z65DIvKjiNwtIun+4Zccfk6lLQ/1dZjfWctJbPkB1zfue/Nn1E9+ATAO2AZsAj4DTgbaAOeKSEtVvTrCsU4HmgKDgGAfhFWBTrj/QBYEbBoLnAes8+I+BjQCrgB6i0hnVV0eycBF5ATgLaA1sAdYCRwEWgB3AL1EpK2q7gnYbSow0Kv3MbAbOBGoB4wB/g/4LZshTAKGA0eApcBe4FxgNfBmDh9WPW///cByoLQXKwAiMhp4EFCv3sdAbeAS4GIR6auqbwQeUESa4Z6nE4EdwHtezLWBf+Me77fAWmAu0Af4C5gTcJis/tt9Gvc6GZlmP18MpwDdvOOk257GWtzr8hygDvAJ7j3l25aRd3Cfhf8CfsQ9Nz4f4x7ndKAv7nmdCxwIqOP/WUQGAC/gmuO/Aj4HqgEXAheJyFWq+myax3g+sAgogXs+vwUSgdnAk1k85rRWA38CbUSkhKoe8s5RBGjn1aktIjVVdWvAfr5/Mj7I4vgZPb+k+dlnBtATWIb7rPoXLnlsISLNffGFQSLuse/FvadqAy2BRSLSEWgCPAF8BCzGfVZeCpwhImeFGMcJuM+uCt7xTsC9f5Nwn8Mjcv9wgsr267BAUFW7xdgN9wWimWw/DWgRpLwOsNXbv1WabUO88mkZHDPJ256UzRgrAYdxX4alg2y/2Tve82nKOwMnBqk/3Ku/HpA026Z524akKV/mlbfLIMZkb3timvLZXvlLQNmA8viAc70YUF7TK9sKVA5ynjZAqWw+bz29Y+0Gzkhz7jm+v33av0NGf5+AcgWeB4oHOWfXgPibptnWHZdw7AUqBJQn4Pq6FXgciEuzX3WgWcDviV7d5Ewee7q/I25sSDJwHKgbZJ97vX0eDuH9E/T1ktn7IKPy7LyeArafiXtP7AXOT7OtFfCHt71+QHkp4FfvuGPS7HMJLnnP9HkNEscb3j7tA8qaemVfe/fDArad4J1nWzbfdxk+v2leCwpsBKoHbDsR192mwKAQHlN2Xv+PAUUCto31yjd4z33rNI95vbd9cIivEQXmAfEB21oCR73XcdrPm2Xk7HMqpPKCdrNunXxIVder6qog5T8C93u/9olwDLuAt4EyQO8gVQZ696laf1T1HVXdEeR4k4FPgQZAw/BG+w8RaYT70N+E+4D+MyCGv4GrgN+By0SkgrfJ1wT9paruDBL7p6p6MG15Bq7z7h9W1a+DnDsllMcTYDdwo6oeCbLtbu9+iKp+EbhBXWvJM0A5YEDApuG4//g/UNWbVfVwmv1+UtU1OYw18DjHgGcBAf4TuM1rIr8S90H8XG7PlQfG4FpMblTVVK2JqroCuM/bHvg4+wIn4VoSH0yzz2ukbnXMLl/rR4eAMt/PSbgv0MDu2Ha4Lv6lOThXVq5T1Z98v3jv/Yner+3DeJ4tuOTueEDZo959PeBpVf0sII69uNcd/NOilF37gf9471nf8T7HtcAJrmXY5JIlJ/mUiBQXkYtE5B5x/f9TvT5SX999vTwIw5d4pBrnIiKn45pRf1TVj9PuJG4cw5Xixp5M9vpwpwFVvSqRjL2zd/+6BmnK9ZKM1bhm/uZe8fe4JtOuIjJaRKrn5MTel20b79eXgpx7B67JOSfeU9V0zboiUgnXXbUL9x9cML5utFYBZb7n6YUcxhOKycAhYIiIlAgovxiXIC1W1XSDW2OJ121yIa4FYl4G1YI9z74vslfU+7c4jRk5CCej5CQF1234FakTgw5p9guXI7iuwLQ2ePfpxnvkwrIgCfReXNIOwd9XvrE3ocaxJtg/KUTmcRVaNuYkHxKRBsBCMv8SL5sHobyJG7PRQUROVlXflDffmJl0H6wichWumyCzAaSRjN036PRmEbk5i7qVAVR1vzfYbzJuauVDIvITbjzCQmCuqh7Nxrkr4cYVHMY15QeTnI3jBLM1g/JaAec+LiKZHaNywM81vPsNwSqGk6ruEpFZuCT3EmCmt2mUd/9MpGMIg4r887rdG8LzfLJ3n5xB3YzKM/M1Lhk9W0TK4BK/c4FPVPWwiHyAe/03VNXvyP54k1D9lsH7Yr93XyLItpz6OYPyA7i/TbDtvmQ+1Dh+yqA8Eo+r0LLkJH+ag0tMFgAP475A/lTVY97o9HdxzYuhCLkVzfugexXXHTEAeFhEigKX443bCKwvIi1w6xUcBW7CJTc/q2qKt/1l4LIcxJ6RYI+pqHe/EtfnnBn/F76qzvVmQHTFDeA8FxfrZcA3InKuuimI0ZJRd5Dv8e7BjUXIzPcBPwf7Lz6SnsYlJyOBmSJSF/cf/c/kfJBwXvI9z4dxC8BlJqJTYlVVxc1A6gu0xQ1KL8M/A9ffx40JO19EduO6UX8I7H4Jk+NZV8mzc4UzlnA/LuvBCMKSk3zGazVphBsX0dfrsw90aga7+po8y2SwPUddFbiunatwY0weBjri+tCXq+qWNHX74BKPp1R1XJBjZRR7RjJ8TF4XyklB9vF9AC9W1TtDOZnXTPySd0NEGuIef3Pgf7hFqzKzC/dfbAkvtmCtJ4mhxJQNvsd7UFWHhLDfNtzAa98soIhS1ZUisgr4l9ctOAT3WpkU5DUei3YBf+ONKQnWZZgBX2tjzQy2J+Ywng9wyUkH/lmzw9cy8hGuy6UD/yRK4W41Mf/IyedUoWcZW2w6Av4Xblq+QZrbM/jQ7h+kDP75IqyfdoOIxBH6oDDAfang/uNu5E099Y0/eTFIdV/s6f5D85Kus0I8fYaPCdenHuz5e8e77+WNE8gxr0ncl2SdkY36R3FTEMG1LqUiIpVxrTJh43W1fQucIiItQ9jV10c/LJv1fR/AufmH52nv/gZccnIU15WWF7ITf4Z1vL/te7gWlJ4hnNc3DqW/BO8LynRtl0wEjjvxJShrALyxSatw7/lOaepnRzj+1oVJTj6nMlMonn9LTmKT77+p04Js24RrVmwsIuf6CsUZg+tuCGYVbg2KxiLSJ2C/OGA8ufuP3ZeIXIX7YE4BXgtSz9dtMMjrC/fFUAm3jkiobzbf7IKrJGBRJxE5FbfuSDreDJPXca1PL4lIlbR1RKSKiPw74PezRKSfpFlozfsy6eL9ui2bMfviGi0Bi855A0En4KaWhptvCfdXRCTdTAJxC9J19xJEn8m41UHPF7dAV1yafap7yajPTtyHZhURKZ/DOH3Lkw/DJbIL1a1Smhcye89lt869uIRqooikS1DELeTXXkQCB8TOwa1fcTpwa5r6vQk+Ey5LqrrBi/dM3CDsD9P8M/M+bjrtZbguvFBm6mTnuTL/CPlzKguF4vm35CQ2zffu3xe3iuFkEZkM4I0Sfxb3Rb5URN4TkVdw407uxc31T0dV/+KfqYqzxa1aOB83Yr03/6yQmRMzcAnTMNyX6/zAKboBpuLGEDQFfhS3YuXruHUPyhP6tMlXca0CtYF14lYSXYobEPgFGQ8SHYwbzNof2Cwin4jIyyIyT0S+xX0p3xdQvyYwC9glIh/66nrHvwLXxfZIdgJW1Xm456ESsEZE3vHG7fyA+y82J7MzsjrnfGC09ziWiVutc764VWmX42Y0vE5Agur9/XrikoVbgW3e8/OaiKzBDdTsHlD/CG4hsWLAlyLykve6fSiEOA8BUwKK8nIg7ApcktBURFaLyHQv/qEBdXzvy5dEZI7vfSkiFQG86f1DcAtkzReRH8St+vqyN15pJ66Fwr8ir/e+HITr7ntI3Eq8L4vIp7hFtibk4jEtxXWNxZG+ZcT3ezywLtj0/kwsxL3fbxCRd0Vkivc8tMlqx0Iqp59TGcn0dVhQWHISm27HrWZ4AJc4XOndfK4FrsatjdAa96W2Eddqsiijg6rqWOAaXCLTGrda4zLcmIns/ucf7Lg/k/rDL1iXDqr6B25a6wu41pWuuP8Yp+CmV4Y0oNT7Mjsf92V/HLgI1397F6nX7Ei7315cc+pQXDdLfdwskTa4cQPjSP0f6wrcGhYf477ge+GaxPfgkpgzgoyvycxw3N9ho3ec8704zibI9WDCQVUfwT3303EJ5EW4Vp8TcevVDMCNRQjcZyWuu+px3MJiF+Gmy5bCJciz05zm37i/ZVGgH+41m1E3Y0aWePcbycNxEN5rqTPu/VML93xcSeo1KyYAd+L+c+3GP+/LhIDjvIR7TU/ETSvugLsQYQ3c62cEaZ43VV2CW3X1Ldzrqwcuybucf7oNc+KDDH4G93pLyWBbplR1LW511VW498ww3POQF8sX5Ds5/ZzKRJavw4JAgk+tN8aYvCciz+OSt5syGDRtjCkELDkxxsQEb/rwN7gujhpRnpptjImiAj3a1xgT+7xxKdVxXUYlgLssMTGmcLOWE2NMVIlIMm5Mxs+4MSv3pblGijGmkLHkxBhjjDExxWbrGGOMMSamFKoxJ5UqVdLExMRoh2GMMcYUKmvWrNmlqpWzrukUquQkMTGR1asjfpkQY4wxxgQQkZAWm7NuHWOMMcbEFEtOjDHGGBNTLDkxxhhjTEyx5MQYY4wxMcWSE2OMMcbEFEtOjDHGGBNTLDkxxhhjTEyx5MQYY4wxMcWSE2OMMcbEFEtOjDHGGBNTLDkxxhhjTEwpVNfWMaYwOnToEHv27GH//v0cO3Ys2uEYY8IgLi6OSpUqUa5cuWiHEhGWnBhTgB06dIht27ZRvnx5EhMTKV68OCIS7bCMMbmgqqSkpPDzzz9TokQJ4uPjox1S2Fm3ToCkpCRExH9LSkqKdkjG5MqePXsoX748lSpVIi4uzhITYwoAEaFUqVJUqlSJnTt3RjuciBBVjXYMeaZ58+a6evXqLOuJCIXpeTEF18aNG0lMTCQuLi7aoRhjwuzIkSMkJydTt27daIeSJRFZo6rNs1vfWk6MKcCOHTtG8eLFox2GMSYCihUrxtGjR6MdRkRYcmJMAWddOcYUTAX5vW3JiTHGGGNiiiUnxhhjjIkplpwYYwqtxMRE2rVrl62606ZNQ0RYtmxZRGMqKObMmUOTJk0oWbKk/3mz59BklyUnxpgC5eDBg4wfP55zzz2XChUqULx4capUqUKXLl2YNm1a2AcQbt68mREjRtCgQQNKlSpF+fLlOe200xg8eDBLly4N67nyi40bN3LZZZdRrlw5JkyYwIwZMzjttNOC1l27di1JSUkkJyfnbZAmptkibMaYAuOHH36ga9eubNy4kY4dO3LbbbdRqVIlduzYwXvvvcfQoUP57rvveOSRR0I+9sCBA+nfv3+qadmrV6/mvPPOo3jx4gwaNIhGjRqRkpLCpk2bWLx4MQkJCbRv3z6cDzFfWLZsGUePHmX8+PE0bdrUXx7sOVy7di333HMP7dq1IzExMQrRmlhkyYkxpkBISUmhW7dubN68mblz59K7d+9U20ePHs2qVatYtWpVjo5ftGhRihYtmqrsnnvu4eDBg6xdu5YmTZqk2+e3337L0bmiYf/+/SQkJITlWL7HXaFChVTlwZ5DY4Kxbh1jTIEwefJkNmzYwM0335wuMfFp0aIFV111Vbry77//nq5du5KQkEC5cuXo27dvusQi2HiJTZs2UbFixaCJCUDVqlVT/X78+HEefPBBatWqRXx8PI0bN+all17yr04d2LWRUUtCcnJyuhWsjx8/ztixY2nbti1Vq1YlLi6OGjVqMGrUKHbv3p3h/rNmzaJZs2aULFmSa6+91l9n+/btjBo1iho1ahAXF0e1atUYMWIEO3bsCPo4A4kId999NwC1atVCRPyPI+1zmJSUxNChQwFo3769f3XuIUOGZHkeU7BZy4kxpkCYM2cOACNGjAhpv19++YV27drRq1cvHn30Ub766iuee+45/vzzTxYvXpzpvnXq1GHDhg3Mmzcvw4Qo0E033cSTTz5J27ZtufHGG9mxYwdXX301tWvXDinmtA4fPsyjjz5Knz59uPjiiyldujSrVq1iypQpfPzxx6xZsybdKsELFizgqaeeYtSoUYwcOZKyZcsCsG3bNlq3bs3hw4e58sorqVOnDj/88APPPPMMS5cuZfXq1ZlebG7GjBnMmzeP+fPnM27cOCpVqkSZMmWC1u3duzfbt29n0qRJjBkzxj8upU6dOrl6Pkz+Z8mJMYXQDTfA2rXRjiK1M8+E8eNzvv+3335L2bJlQ/6i/+GHH5g1axb9+vXzlxUpUoSJEyeyYcMG6tevn+G+d9xxB0uWLKFPnz7UrVuXc845hxYtWtCuXbt0A0A3bNjAU089RYcOHVi8eLG/e6N37940b57tVb2DKlGiBNu3b6dkyZL+spEjR9KmTRuGDx/OggULUj0+gHXr1vH111+ni/Paa6/lyJEjfPnll5xyyin+8ksuuYRWrVoxbty4TK87NmDAAH744Qfmz59Pz549Mx1HcsYZZ9C6dWsmTZpEp06dsj1zyhR81q1jjCkQ/vzzzxyNmahWrVq6L+4OHToArtsmM61bt2bNmjUMHjyYffv2MXXqVK666ioaNmxI27Zt2bx5s7/uwoULUVVuuummVOMumjZtSqdOnUKOO5CI+BOTY8eOsXfvXnbt2uV/HJ9//nm6fbp27ZouMdm3bx9vvvkmPXr0ID4+nl27dvlviYmJnHrqqVm2JhkTDlFtORGResAA4AKgDhAP/Ai8BoxX1b8C6iYBd2dwqFtU9bHIRmtMwZGbFopYVbZsWfbv3x/yfsFaWipWrAiQbrxGMKeffjrTpk0DYOvWrXz44YdMnjyZjz76iIsvvtjfpeJLVBo0aJDuGA0bNsz1l/7s2bN5/PHH+fLLLzly5EiqbX/88Ue6+vXq1UtXtmHDBo4fP86UKVOYMmVK0PPktgvKmOyIdrfOMOBq4HXgJeAI0B64H+gnIq1UNSXNPjcCu9KUrYl0oMaY2Na4cWOWL1/O5s2bQ/oCzWz2SKhXJ69ZsyaDBg1i4MCBnHvuuXzyySesXLmSc845J6TjQMbXTQm2Tsu8efO49NJLOfvss3nyySepXr068fHxHDt2jM6dO3P8+PF0+5QqVSpdme/xDhgwgMGDBwc9f2DXkTGREu3kZA7woKruCyh7VkQ2AbcDVwIT0uyzQFWT8yg+Y0w+0adPH5YvX87kyZN54IEHohqLiNCyZUs++eQTfvnlF+CfFofvv/8+3YDP7777Lt0xKlSowJo16f/vCuwq8pkxYwbx8fEsXbo0VdLx/fffhxT3qaeeiohw+PBhOnbsGNK+OVWQL15nci6qY05UdXWaxMRnlnffONh+IlJWRKKdWBljYsjw4cOpX78+jz32GAsXLgxaZ82aNUycODFs51yyZEnQloyUlBR/N03Dhg0B6NGjByLCE088wbFjx/x1v/jiC9577710x6hXrx779+9n5cqV/rLjx48zbty4dHWLFi2KiKRqIVFV7r///pAeT8WKFenSpQvz5s1jxYoV6barKjt37gzpmFnxzeTZs2dPWI9r8rdY/YL3DRH/Pci2r4EE4JiIrATuU9W38ywyY0xMKlWqFG+++SZdu3alZ8+eXHDBBXTq1ImKFSuyc+dOli5dyrvvvsutt94atnPeeOON7N69mx49enD66adTqlQpfvrpJ15++WU2btzIoEGDOP300wE31uTqq69mwoQJdOjQgT59+rBjxw4mTJhAkyZN+PLLL1Mde8SIETz++OP06tWL66+/nri4OObMmRM0Gerbty9z586lQ4cODBo0iCNHjrBgwQIOHjwY8mN65plnOOecc2jbti2DBg3irLPO4vjx42zevJmFCxcyaNCgTGfrhKpFixYUKVKEsWPH8scff1C6dGlq1apFy5Ytw3YOk//EXHIiIkWBO4GjwMsBm/YCk4BPgT+A+sANwCIRGaaq0/I4VGNMjDn11FP58ssvee6555g7dy5jx47lwIEDVKhQgebNmzN9+nQuv/zysJ3viSeeYOHChXz88cfMnTuXvXv3Uq5cOc444wxGjx6dbjGxJ598kqpVqzJp0iRuueUW6taty9NPP82mTZvSJSe1atViwYIFjBkzhjvvvJOKFSsycOBAhg0blm5Qbf/+/dm/fz/jxo3jv//9L+XLl6d79+489NBD/sG92VW9enXWrFnDww8/zMKFC5k5cybx8fFUr16d7t27p5vZlFs1atTghRde4OGHH2bUqFEcOXKEwYMHW3JSyEmoA74iTUT+D7gGGKOqD2ZRtyLwLW6WT3VVPRCkzghgBECNGjWabd26NTsxhDwQzphYtH79+gwvuGZiR1JSEvfccw9btmyx68uYkOSX97iIrFHVbC/oE1PrnIjIfbjEZFJWiQmAqu4GngVOANpkUGeSqjZX1eaVK1cOa7zGGGOMCb+YSU68dUzuAKYCI0PYNdm7rxTmkIwxxhgTBTGRnAQssDYdGK6h9anU9e6DDZ41xhhjTD4T9eRERO7CJSYzgGGqmm61IBEpJiLprjQlItWBUcBu3EBZY4zJd5KSklBVG29ijCfay9dfDdwDbAPeAy5PsyDP76q6BCgDbBGRBcB6/pmtM9zbdlmQlWSNMcYYkw9FeypxC+++Bq5LJ60PgSVACjAXaAn0xCUku3AJzSOqujLIvsYYY4zJh6KanKjqEGBINuodwrWSGGOMMaaAi/qYE2OMMcaYQJacGGOMMSamWHJijDHGmJhiyYkxxhhjYoolJ8YYY4yJKZacGGMKLRFJd+XgWDdkyBDSrAeVa4mJibRr1y7LstxatmwZIsK0adP8ZcnJyYgISUlJmZbFkmCPIzNLly6lVatWJCQk+PcL9RiFTaFKTrZti3YExphI8X3YB97i4+OpXbs2Q4cOZf369dEOMc8lJibSuHHjaIdRqP3xxx/07t2bv/76i8cff5wZM2bQtm3boHWTk5NJSkpi7dq1eRxl7In2Imx5audO+PVXqFYt2pEYYyLlsssuo0uXLgCkpKTw9ddfM3nyZObOncs333xDzZo1/XVTUlIoWrRotEKNGRs2bAh7a0x21axZk5SUFIoVK5hfR6tWrWLv3r1MmTKF3r17+8sTExNJSUmhePHi/rLk5GTuueceEhMTOfPMM6MRbswomK+GTLz5JowYEe0ojDGR0rRpUwYMGJCqrG7dulx//fXMmzePG2+80V8eHx+f1+HFpBIlSkTt3L4WroLqt99+A6BChQqpyosUKVKgH3duFapunbg4eP31aEdhjMlr1bzm0ri4uFTlwcac+Mo+++wzzjvvPEqXLk3FihUZPnw4Bw4cSFXXN/5j3759jBo1ihNPPJH4+Hj+9a9/8fnnn6eLQ1V55plnaNasGaVKlaJMmTK0b9+epUuXpqv7999/c8stt1CtWjVKlizJ2WefzeLFi3P5TASX3fElW7ZsoX79+lSrVo2vvvrKX75v3z5Gjx7NqaeeSokSJahcuTKXXXYZmzdvzvKYWY0vefPNN2nRogXx8fGcdNJJ3HLLLRw9ejRdveXLl9OpUyfKlStHyZIladq0KVOmTAl6zFDqLly4kLPOOov4+HiqV6/OnXfeyZEjR7J8XOCe18GDBwPQvn17f3cjpB+3Mm3aNNq3bw/A0KFD/XXDPe4nvyhULScnnADvvQd//QWlS0c7GmNMJBw8eJBdu3YBrtvm22+/5fbbb6dSpUr06dMnW8dYu3Yt3bp1Y+jQoVx++eUsW7aMKVOmUKRIESZNmpSu/oUXXkjlypW566672L17N0888QRdu3Zly5YtJCQk+OsNHDiQV155hb59+zJ06FAOHTrESy+9RKdOnZg3bx49evTw173ssstYsGAB3bt358ILL+THH3+kd+/e1KpVK5fPUM588cUXdOnShfLly/PZZ5/5u8f27dtHmzZt2LZtG8OGDaNRo0Zs376diRMn0rJlS1avXp2qKy0Ub731FhMnTmTkyJEMGzaMhQsX8thjj1G+fHnGjBnjr/fGG2/Qq1eJVNZOAAAgAElEQVQvqlatys0330xCQgKvvvoqw4cPZ/PmzYwdOzZHdefPn0+fPn1ITEzkrrvuolixYkydOpVFixZlK/7x48fz9ttvM2nSJMaMGcNpp52WYd22bdsyZswYHnjgAUaMGMG5554LQJUqVUJ92goGVS00t3r1mimozp+vmXJPizH533fffRd8w/XXq553Xmzdrr8+V4916dKlCgS9NWzYUNevX59uH0AHDx6crkxEdMWKFanKu3TposWKFdP9+/f7ywYPHqyAjho1KlXd2bNnK6DPPvusv2zevHkK6HPPPZeq7pEjR7RZs2aamJiox48fV1XVd999N2hs8+fP9z+m7KhZs6Y2atQoW/XOO++8DMsWL16sZcqU0datW+uuXbtS1bvuuus0Pj5e165dm6o8OTlZExISUj0G399o6tSp/rItW7YooHfffXe6slKlSumWLVv85cePH9dGjRpp1apV/WVHjx7VGjVqaLly5fSXX37xlx86dEjbtGmjRYoU0Y0bN+aobvXq1bVixYq6c+dOf929e/dqjRo10j2OjEydOlUBXbp0aaryYM9FsLKsZPgejzHAag3h+7pQdeuUKQPlylnXjjEF2YgRI1iyZAlLlizhjTfe4OGHH2bXrl106dKFrVu3ZusYrVu3pmXLlqnKOnTowNGjR0lOTk5XP3Aci68uwKZNm/xlM2fOJCEhgZ49e7Jr1y7/be/evXTv3p3k5GR//QULFgBwyy23pDpuz549qV+/frYeQ7jMnDmTrl270qFDB95//30qVqzo36aqvPTSS7Rt25aTTz451eMqXbo0rVq1ylVXVM+ePUlMTPT/LiK0b9+e3377zd/FtmbNGn+rTbWA2Q5xcXHceuutHD9+nIULF+ao7k8//cTQoUOpVKmSv265cuUYOXJkjh+TyZ5C1a0jAl26uEGxx46BDdI3hdb48dGOIGLq1q1Lx44d/b9369aN8847j1atWjF69GheffXVLI9Ru3btdGW+L+Xdu3dnWT9Y3fXr17N///5Mm+l///136tWrx+bNmylSpAj16tVLV+e0005jw4YNWT6GcFizZg3Lly/nwgsvZN68eelmNu3cuZPdu3ezePFiKleuHPQYRYrk/H/grP4OZcqUYcuWLQA0atQoXV1fmW/sSyh1ffcNGjRIV7dhw4ahPRATskKVnAD06AGvvAKffw5t2kQ7GmNMXmjZsiXlypXjgw8+yFb9zKYXuxbq7NUPrKuqVK5cmZdffjnDY8famiR169alePHiLF26lHfeeYeuXbum2u57fB07dmT06NFhP3+ofwdTcBS65OSii6BYMde1Y8mJMYXH0aNHOXToUNTOX7duXTZu3EirVq0oU6ZMpnVr167N8ePH2bhxY7r/8vNyMbmyZcvy+uuv07lzZ3r37s3s2bO5+OKL/dsrV67MCSecwJ9//pmqtSov+VpX1q1bl27bd999l6pOTup+//33GdYNt2itNROLCtWYE3BjTtq1s3EnxhQmS5Ys4a+//qJZs2ZRi2HQoEEcP36c2267Lej233//3f+zLwF49NFHU9VZsGBBnnXp+JQtW5bFixfTsmVLLrnkEubOnevfVqRIEa644gpWrlzJnDlzgu6/Y8eOiMbXtGlTatSowdSpU/1rigAcOXKERx99FBHxP5+h1G3WrBmnnHIKU6dO9c/+Avjzzz959tlnI/JYfEnrnj17InL8/KTQtZyA69q57jrYtAnq1o12NMaYcPriiy+YOXMmAIcOHWLdunVMmjSJ4sWLc//990ctLt/04QkTJvDFF1/QrVs3KlWqxM8//8xnn33GDz/84B/ncOGFF9K9e3emT5/Onj176Ny5Mz/++CPPPfccjRs35ttvv832eXfu3Jnh4x46dCgnn3xylscoU6YMb7/9Nt27d6d///7MnDmTSy+9FICxY8fyySef0K9fP/r160erVq2Ii4tj69atvPXWWzRr1iyi148pWrQoEyZMoFevXrRo0YIRI0aQkJDArFmzWLFiBWPGjKGu90Efat1x48bRr18/zj77bP79739TrFgxXnjhBSpWrMi2CFwPpWHD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\n", "text/plain": [ "
" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Binned likelihood-fit tau values with our function\n", "# extended=True because we have our own normalization in our fit function\n", "bllh_object_fit = BinnedLH(func_exp, t, bins=Nbins, bound=(0, tmax), extended=True)\n", "minuit_fit_bllh = Minuit(bllh_object_fit, pedantic=False, limit_tau=(min_tau,max_tau), tau=tau_truth, fix_N0=True, N0=Ntimes)\n", "minuit_fit_bllh.migrad()\n", "\n", "# Plot fit\n", "N0, tau_fit_bllh = minuit_fit_bllh.args\n", "x_fit = np.linspace(0, 10, 1000)\n", "y_fit_simple = func_exp(x_fit, N0, tau_fit_bllh)\n", "ax_fit.plot(x_fit, y_fit_simple, 'r-', label=\"Binned Likelihood fit\")\n", "\n", "# Define the ranges:\n", "ax_fit.set_xlim(0, 5)\n", "ax_fit.set_ylim(bottom=0) # We don't want to see values below this!\n", "fig_fit.legend(loc=[0.45, 0.75])\n", "fig_fit.tight_layout()\n", "fig_fit" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "if (save_plots) :\n", " fig_fit.savefig(\"ExponentialDist_Fitted.pdf\", dpi=600)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "Make sure that you understand how the likelihood is different from the ChiSquare,\n", "and how the binned likelihood is different from the unbinned. If you don't do it,\n", "this exercise, and much of the course and statistics in general will be a bit lost\n", "on you! :-)\n", "\n", "The binned likelihood resembels the ChiSquare a bit, only the evaluation in each bin\n", "is different, especially if the number of events in the bin is low, as the PDF\n", "considered (Poisson for the LLH, Gaussian for the ChiSquare) is then different.\n", "\n", "The unbinned likelihood uses each single event, and is thus different at its core.\n", "This can make a difference, if there are only few events and/or if each event has\n", "several attributes, which can't be summarized in a simple histogram with bins.\n", "\n", "\n", "# Questions:\n", "\n", "1) Consider the four plots (bottom right one empty) showing chi2, bllh, and ullh as a function of lifetime, tau. Do the four curves resemble each other in shape? Are they identical in shape? Do the three methods give similar results, or are they different? Do you see the relation between the curves and the fit result? This question requires that you also fit a parabola to the other two cases. Remember to consider both central value and uncertainty of tau.\n", "\n", "2) Now consider the two (chi2 and bllh) fits by iMinuit. How alike results do they obtain? Again, consider both the central values and the uncertainty.\n", "\n", "3) Try to decrease the number of exponential numbers you consider to say 10, and see how things change. Does the difference between Chi2, bllh, and ullh get bigger or not?\n", "\n", "4) Try to increase the number of exponential numbers you consider to say 10000, and see what happens to the difference between Chi2 and BLLH? Also, does the errors become more symetric? Perhaps you will need to consider a shorter range of the fit around the mimimal value, and have to also increase the number of points you calculate the chi2/bllh/ullh (or decrease the range you search!), and possibly change the ranges of your plotting.\n", "\n", "(Hopefully you also got this) Conclusion: Fitting \"manually\" is damn hard, cumbersome, and not a thing that one wants to do. Always let a program (iMinuit) do it, and instead take the inspired position of checking that the fitting program actually is doing what it is supposed to do, and that everything comes out reasonable.\n", "\n", "### Advanced Questions:\n", "\n", "5) Make (perhaps in a new program) a loop over the production of random data,\n", " and try to see, if you can print (or plot) the Chi2 and BLLH results for each\n", " turn. Can you spot any general trends? I.e. is the Chi2 uncertainty always\n", " lower or higher than the (B/U)LLH? And are any of the estimators biased?\n", "\n", "6) Make a copy of the program and put in a different PDF (i.e. not the exponential).\n", " Run it, and see if the errors are still asymetric. For the function, try either\n", " e.g. a Uniform or a Gaussian." ] } ], "metadata": { "executable": "/usr/bin/env python", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" }, "main_language": "python" }, "nbformat": 4, "nbformat_minor": 2 }