{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# **Statistics lecture 2 Hands-on session : solutions notebook**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the companion notebook to lecture 2 in the statistical course series, covering the following topics:\n", "1. Maximum likelihood basics\n", "2. Maximum likelihood for binned data\n", "3. Maximum likelihood in the Gaussian case and chi2\n", "4. Hypothesis testing basics\n", "\n", "First perform the usual imports:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import scipy.stats\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Maximum likelihood basics\n", "\n", "Maximum likelihood is a powerful tool to *estimate* (=compute the value of, in stats parlance) unknown parameters. The principle is as follows: what we know is\n", "* **The PDF** $P(x;\\theta)$, in terms of the observable $x$ (a.k.a. the random variable) and one or more unknown parameters $\\theta$.\n", "* **A dataset**, i.e. a value $x_{\\text{obs}}$ of the observable.\n", "\n", "The natural usage of the PDF is to draw values of $x$, for a given value of $\\theta$. What we need here is the reverse: we already have the observed $x_{\\text{obs}}$, and we'd like to use it to infer the value of $\\theta$.\n", "\n", "Maximum likelihood (ML) is the procedure of doing this by maximizing the PDF as a function of $\\theta$ and with the observable fixed to to $x = x_{\\text{obs}}$. This presentation of the PDF is called the *likelihood*, and it's really still just the PDF:\n", "$$\n", "L(\\theta) = P(x_{\\text{obs}}; \\theta).\n", "$$\n", "The ML estimator for $\\theta$ is then\n", "$$\n", "\\hat{\\theta} = \\text{arg max}_{\\theta} \\, L(\\theta),\n", "$$\n", "the value of $\\theta$ that maximizes $L$.\n", "\n", "We start with a simple example: a counting experiment where we observe $n=5$ with an expected background of $b=3$. The PDF is a Poisson, with a parameter given as $s+b$, and we'd like to estimate $s$.\n", "\n", "The ML procedure is performed as" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hat{s}, ML = (2.0, 0.17546736976785068)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Set the inputs\n", "n_obs = 5\n", "b = 3\n", "\n", "# We're going to scan values of s ranging from 0 to 5, in steps of 0.1\n", "s_values = np.arange(0, 5, 0.1)\n", "\n", "# Compute the corresponding values of the likelihood (=the PDF), and plot the result\n", "l_values = [ scipy.stats.poisson.pmf(n_obs, s+b) for s in s_values ] # compute the likelihood (the Poisson PDF for each s)\n", "plt.plot(s_values, l_values)\n", "plt.xlabel('s')\n", "plt.ylabel('L(s)')\n", "\n", "# Find the maximum likelihood value in the list : merge the 2 lists and find the max based on the second value (L)\n", "from operator import itemgetter\n", "print('hat{s}, ML =', max( [ (s,l) for s,l in zip(s_values, l_values) ], key=itemgetter(1)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the maximum is indeed at $\\hat{s} = 2$, and all of this works as expected, at least in this simple example.\n", "\n", "Note that while the position of the maximum is meaningful, the likelihood value isn't: as we'll see later, likelihoods only need to be defined up to a multiplicative factor since we only use likelihood ratios in measurements, so their absolute value is arbitrary.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Maximum likelihood for binned data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To make things a bit more interesting, we move to the analysis of binned data. We take a model similar to the one used for the $\\chi^2$ exercise in the previous lecture:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define the binning\n", "nbins = 10\n", "x = np.linspace(0.5, nbins - 0.5, nbins)\n", "\n", "# The background follows a linear shape\n", "b_yields = np.array([ (1 - i/2/nbins) for i in range(0, nbins) ])\n", "b_fracs = b_yields/np.sum(b_yields)\n", "\n", "# The signal shape is a peak\n", "s_fracs = np.zeros(nbins)\n", "s_fracs[4:7] = [ 0.1, 0.8, 0.1 ]\n", "\n", "# Define the signal and background\n", "s = 3\n", "b = 50\n", "s_and_b = s*s_fracs + b*b_fracs\n", "b_only = b*b_fracs\n", "\n", "# Now generate some data for the s+b model\n", "np.random.seed(14) # Set the random seed to make sure we generate the same data every time\n", "data = [ np.random.poisson(s*s_frac + b*b_frac) for s_frac, b_frac in zip(s_fracs, b_fracs) ]\n", "\n", "# Make a plot of the result\n", "plt.bar(x, s_and_b, color='orange', yerr=np.sqrt(s_and_b), label='s+b')\n", "plt.bar(x, b_only, color='b', label='b only')\n", "plt.scatter(x, data, zorder=10, color='k', label='data')\n", "plt.xlabel('bin number')\n", "plt.ylabel('Total expected yield')\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot above shows the typical case of a binned analysis: we have 2 *templates*, i.e. reference shapes for signal and background. These are given by bin fractions $f_{S,i}$ and $f_{B,i}$ which are normalized to 1. They are then scaled by the yields $s$ and $b$.\n", "\n", "The ML estimate $\\hat{s}$ corresponds to the \"best fit\" of the templates to the data, so one can more or less read it off the plot: naively, one expects something a bit larger than the $s=3$ value that is shown in the plot, perhaps $\\hat{s} \\approx 5$ or so.\n", "\n", "We now check this by performing the ML estimation. A small change compared to the previous case is that instead of $L(s)$, we'll be using the quantity $\\lambda = -2 \\log L(s)$. The reason is as follows: first, the total PDF for all the bins together is a product of Poisson terms, one for each bin:\n", "$$\n", "L(s) = \\prod_{i=1}^{n_{\\text{bins}}} P(n_i, s f_{s,i} + b f_{b,i})\n", "$$\n", "Technically it's easier to deal with sums than products, and the log does this for us. As we'll see in a moment, this is also useful to deal with Gaussian PDFs, since in this case the log just extracts the squared term in the exponent. This is also the reason for the $-2$ term in the formula.\n", "The only consequence in practical terms is that instead of $L(s)$ we compute $\\lambda(s)$, and that we now want to minimize it instead of maximizing. But the ML estimate $\\hat{s}$ remains the same, since the value of $s$ that maximizes $L(s)$ also minimizes $\\lambda(s)$.\n", "\n", "Let's not compute the ML estimate (best fit) $\\hat{s}$ using $\\lambda(s)$ :" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hat{s}, ML = (5.100000000000007, 38.81476439657058)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define the s scan\n", "s_values = np.arange(-2, 15, 0.1)\n", "\n", "# First define a python function to compute lambda(s) :\n", "def lambda_s(s_val) :\n", " return sum( [ -2*np.log(scipy.stats.poisson.pmf(n, s_val*s_frac + b*b_frac)) for n, s_frac, b_frac in zip(data, s_fracs, b_fracs) ] )\n", "\n", "# Compute the lambda(s) values for the scan points\n", "lambda_values = np.array([ lambda_s(s_value) for s_value in s_values ]) # compute the likelihood (the Poisson PDF for each s)\n", "\n", "# Plot the result\n", "plt.plot(s_values, lambda_values)\n", "plt.xlabel('s')\n", "plt.ylabel('L')\n", "\n", "# Find the maximum likelihood value in the list : merge the 2 lists and find the max based on the L value\n", "from operator import itemgetter\n", "print('hat{s}, ML =', min( [ (s,l) for s,l in zip(s_values, lambda_values) ], key=itemgetter(1)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the result is basically as expected, with a best-fit $\\hat{s} \\approx 5$. Of course this value is a bit imprecise due to the step size of 0.1 in the scan, but we can do better:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "exact hat{s}: 5.063270689498512\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Import the scipy minimization routine\n", "from scipy.optimize import minimize_scalar\n", "\n", "# Compute the value at minimum (.x selects the position of the minimum, .fun would return the function value)\n", "s_hat = minimize_scalar(lambda_s, bounds=(0, 100)).x\n", "print('exact hat{s}:', s_hat)\n", "\n", "# Plot the result\n", "best_fit_s_plus_b = s_hat*s_fracs + b*b_fracs\n", "plt.bar(x, best_fit_s_plus_b, color='orange', yerr=np.sqrt(best_fit_s_plus_b), label='Best-fit s+b')\n", "plt.bar(x, b_only, color='b', label='b only')\n", "plt.scatter(x, data, zorder=10, color='k', label='data')\n", "plt.xlabel('bin number')\n", "plt.ylabel('Total expected frac')\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the best-fit value of $\\hat{s}$ in this case is actually $5.06$ or so. Note than since $L(s)$ was defined only up to a multiplicative factor, $\\lambda(s)$ is defined up to an additive constant, so the value $\\lambda(\\hat{s})$ at the minimum isn't meaningful. On the other hand, the difference between values of $\\lambda(s)$ at different $s$ is meaningful, and will be used later in hypothesis testing." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Maximum-likelihood in the Gaussian case" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We've seen that the Poisson distribution can often be well approximated by a Gaussian (and other distributions as well, though the Central-limit theorem). If we write the expected number of events as\n", "$$\n", "N_i = s f_{s,i} + b f_{b,i}\n", "$$\n", "then the likelihood is\n", "$$\n", "L(s) = \\prod_{i=1}^{n_{\\text{bins}}} P(n_i, N_i) \\approx \\prod_{i=1}^{n_{\\text{bins}}} \\exp\\left(-\\frac{1}{2} \\frac{(n_i - N_i)^2}{\\sigma_i^2} \\right)\n", "$$\n", "\n", "And then the -2 log likelihood is\n", "\n", "$$\n", "\\lambda(s) = -2 \\log L(s) = \\sum_{i=1}^{n_{\\text{bins}}}\\left(\\frac{n_i - N_i}{\\sigma_i}\\right)^2\n", "$$\n", "which is of course very familiar: it's just the usual $\\chi^2$. This is an important motivation for using $\\lambda(s)$ : it can be defined for any likelihood, but in the Gaussian case, it reduces to the $\\chi^2$. (Note that we've dropped the normalization factor of the Gaussian PDF along the way, but again, we're always free to drop constants when computing likelihoods)\n", "\n", "The upshot is that for the Gaussian case, ML is the same as $\\chi^2$ minimization -- this is why we're using \"ML\" and \"best-fit\" interchangeably in this notebook. To illustrate this, we can repeat the example above in the Gaussian case, now estimating $\\hat{s}$ using the $\\chi^2$.\n", "\n", "For the standard $\\chi^2$ (also called the *Pearson* $\\chi^2$), we take $\\sigma_i^2$ as the uncertainty on the prediction. Recall that for a Poisson distribution the variance is the same as the mean, so we have $\\sigma_i^2 = N_i$.\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "exact hat{s}: 5.145208092109918\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define a function to compute the chi2\n", "def chi2_Pearson(s) :\n", " return sum( [ (n - (s*s_frac + b*b_frac))**2/(s*s_frac + b*b_frac) for n, s_frac, b_frac in zip(data, s_fracs, b_fracs) ] )\n", "\n", "\n", "# Conmpute the chi2 values at the scan point and plot the results as before\n", "chi2_values = np.array([ chi2_Pearson(s) for s in s_values ])\n", "plt.plot(s_values, chi2_values, label='chi2')\n", "plt.plot(s_values, lambda_values - 35, label='Poisson') # Shift the Poisson down to match the chi2\n", "plt.xlabel('s')\n", "plt.ylabel('chi2')\n", "plt.legend();\n", "\n", "# Compute the\n", "print('exact hat{s}:', minimize_scalar(chi2_Pearson, (-2, 10)).x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As expected, the (Pearson) $\\chi^2$ is quite close to the Poisson case above (note that the Poisson curve is shifted down by an arbitrary amount, which we're always free to do for a log-likelihood). The difference comes from the fact that the event counts are not quite large enough for the Poisson distributions to be fully Gaussian, and the residual non-Gaussianity leads to a small discrepency between the exact Poisson model and its $\\chi^2$ approximation.\n", "\n", "One can have an even less Gaussian situation by setting $s$ and $b$ to smaller values (say $s=2$ and $b=1$), so that the number of events is not large enough to trigger the Central-limit theorem. In this case one should get an asymmetric shape for the Poisson $\\lambda$ and sizable differences with the $\\chi^2$ approximation. \n", "\n", "**The rest of this section is optional -- feel free to skip if you are short on time (you should be about half way through the session at this point)**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Optional Exercise**\n", "\n", "One can also define the alternate *Neyman* $\\chi^2$, where the uncertainty is taken from the observation rather than the expectation, so $\\sigma_i^2 = n_i$. This has some advantages, but typically agrees less well with the the Poisson limit:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def chi2_Neyman(s) :\n", " return sum( [ (n - (s*s_frac + b*b_frac))**2/n for n, s_frac, b_frac in zip(data, s_fracs, b_fracs) ] )\n", "chi2n_values = np.array([ chi2_Neyman(s) for s in s_values ]) # compute the chi2 for each s\n", "plt.plot(s_values, chi2_values, label='Pearson chi2')\n", "plt.plot(s_values, chi2n_values, label='Neyman chi2')\n", "plt.plot(s_values, lambda_values - 35, label='Poisson lambda')\n", "plt.xlabel('s')\n", "plt.ylabel('chi2')\n", "plt.legend();\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Hypothesis testing basics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So far we've focused on estimating parameters, but to get realistic results (including setting uncertainties on the best-fit values), we need an additional ingredient, *hypothesis testing*. The procedure for this is as follows:\n", "* **Define the hypotheses to test**. We need two of them: a baseline *null* hypothesis, and an *alternate* which is tested against it\n", "* **Define the *test* to perform** -- meaning the observables to use, and procedure to decide which hypothesis to accept.\n", "* **Compute the result of the test for the observed data**, in particular the *p-value* of the test, and decide whether to accept the null or the alternate hypothesis.\n", "\n", "To start with, we consider a simple Poisson counting process\n", "* Define two different signal hypotheses ($n=0$ and $n=5$)\n", "* Define the test in terms of the observed number of events: if it is less than some threshold, accept the null $n=0$, otherwise $n=5$.\n", "* As for any test, there are two ways to go wrong:\n", " * Rejecting the null although it is true (false positive): the fraction of such cases is the *Type-I error rate* or *p-value*.\n", " * Accepting the null although it is false (false negative) : : the fraction of such cases is the *Type-II error rate*, also (1 - Power)\n", "\n", "A more stringent test reduces the Type-I error rate, but at the expense of an increased Type-II rate and vice versa. This is illustrated by the *ROC curve* which shows each error rate as a function of the other. The threshold for the test should be chosen depending on the desired balance between these error rates.\n", "\n", "For the study below, we consider a single-bin counting experiment. In this case the disciminant is just the observed count $n$." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '1 - pvalue')" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5kklEQVR4nO3debxV8/rA8c/TaVKaRTTc0s3VgIaDzC7pFqKU6Edc3CKFzGOGKzLkGprcBkOmpAwHIVG4xopECkk4hApJms/z++PZR6fjdKb22muvtZ/367Vfe5+91977WWefs5+1vsPzFVXFOeec25YKYQfgnHMuvXmicM45VyxPFM4554rlicI551yxPFE455wrVsWwA0imnXbaSZs2bRp2GM45Fxlz585doar1i9smVomiadOmzJkzJ+wwnHMuMkTkq5K28aYn55xzxfJE4ZxzrlieKJxzzhUrVn0UzjmXDBs3biQ3N5d169aFHUrSVK1alUaNGlGpUqUyP9cThXPOFZKbm0uNGjVo2rQpIhJ2ONtNVVm5ciW5ubk0a9aszM/3pifnnCtk3bp11KtXLxZJAkBEqFevXrnPkDxROOdcEeKSJPJtz/5405ML1uTJ8PHHpdu2WjU4+2yoUyfYmJxzZeKJwgXntdfgpJPsdmmOZlRh3jyYNCnQsJyLo1mzZjF8+HCee+45HnjgAebMmcPIkSOT8tre9OSCkZcHl1wCjRrB77/bzyVdbrgBHn8cXnkl7OidcwV4onDBmDwZ5syBoUNhhx1K95zLLoPmzWHgQFi/Ptj4nEtzS5cupWXLlvTr14/WrVvTuXNn1q5dy+GHH/5HqaIVK1aQivp23vTkkm/9erjySthnHzj11NI/r2pVGDECjj4a7rwTrrgiuBidK63Bg61JNJnatoW77ipxs88//5zHHnuMcePG0bt3b6ZOnZrcOErJzyhc8o0aBUuXwu23Q1ZW2Z7btSv06AE33ghffx1IeM5FRbNmzWjbti0AHTp0YOnSpaHEEegZhYh0Ae4GsoDxqnpLocf3BO4H2gNXq+rwxP2NgYlAAyAPGKuqdwcZq0uSn3+25qZ//AOOOqp8r3HXXdCypR3JPflkMqNzruxKceQflCpVqvxxOysri7Vr11KxYkXy8vIAUjZzPLAzChHJAkYBXYFWQB8RaVVos5+A84Hhhe7fBFysqi2BjsDAIp7r0tFNN8Evv8Btt5X/NZo0gSFD4Kmn4IUXkhaac3HQtGlT5s6dC8CUKVNS8p5BNj3tByxW1SWqugGYBBxfcANV/VFVZwMbC92/TFXfT9xeDSwEGgYYq0uGpUutj+H002HvvbfvtS66CPbcE847D2JUb8e57XXJJZcwZswYDjzwQFasWJGS9xRVDeaFRXoBXVT1X4mf+wL7q+qgIra9Hvgtv+mp0GNNgdeBNqr6axGP9wf6AzRp0qTDV1+VuAaHC8opp9hZwGef2bDY7fXKK9CpE1x/PVx33fa/nnOltHDhQlq2bBl2GElX1H6JyFxVzS7ueUGeURQ1w6pMWUlEdgSmAoOLShIAqjpWVbNVNbt+/WJX83NBmjMHHn0ULrwwOUkC4MgjbcLesGHwxRfJeU3nXJkFmShygcYFfm4EfFfaJ4tIJSxJPKKq3qOZzlTh0kthp53g8suT+9p33AGVKsH559v7OOdSLshEMRtoISLNRKQycDKQU5onilWvmgAsVNX/BBijS4bnn4dZs6x5qGbN5L52w4Y2Y3vaNMgp1Z+Pcy7JAksUqroJGAS8hHVGT1bVBSJyjoicAyAiDUQkF7gIuEZEckWkJnAQ0Bc4QkTmJS5HBxWr2w6bNtlZRIsWVtAvCOedB23awAUXWDkQ51xKBTqPQlWnAdMK3XdvgdvfY01Shf2Povs4XLq5/3745BOYOtWaiIJQqRKMHg2HHmrDb2+6KZj3cc4VyWdmu/L77Te49lo46CCbTR2kQw6B006z2d6ffhrseznntuKJwpXfHXfA99/bl3cqFnm57TZbs2LQIO/YdhmpadOmrFixgl9++YXRo0en7H09UbjyyU8QPXvCAQek5j132cXKg8yYAU88kZr3dC4NeaJw0XD99VYldtiw1L7vgAHQrp3N1/jtt9S+t3Mp1L17dzp06EDr1q0ZO3bsVo9dccUVfPHFF7Rt25ZLL7008Fi8zLgru4ULYfx4OPdcG+2USllZcM891mfx2GPQr19q399lnLCqjN93333UrVuXtWvXsu+++9KzZ88/Hrvlllv4+OOPmZfswLbBzyhc2V11FVSvbh3ZYTjoIKsD9dBD4by/cylwzz33sM8++9CxY0e++eYbPv/889Bi8TMKVzY//QTPPmvLnO60UzgxiEDfvnD11VaIMAUrfLnMFUaV8VmzZjFjxgzefvttqlWrxuGHH56ykuJF8TMKVzYvvACbN8MJJ4Qbxymn2PXDD4cbh3MBWLVqFXXq1KFatWosWrSId955Z6vHa9SowerVq1MWjycKVzY5OdCgAWQXW2wyeH/5Cxx2mDU/+VBZFzNdunRh06ZN7L333gwZMoSOHTtu9Xi9evU46KCDaNOmjXdmuzSzfr2dUZx8MlRIg2OMvn3hX/+C2bNhv/3Cjsa5pKlSpQovFLFoV8GlUB999NGUxZMG/+0uMl57DVavhuOOCzsS06sXVK3qndrOBcwThSu9nBybGX3kkWFHYmrVsqQ1aRJs3Fjy9s65cvFE4UpH1RJF586www5hR7PFqafCihXw4othR+JiJqjVP8OyPfvjicKVzocfwjffpE+zU74uXWyYro9+cklUtWpVVq5cGZtkoaqsXLmSqlWrluv53pntSueZZ2z+wjHHhB3J1ipVss71ceNg1SprjnJuOzVq1Ijc3FyWL18edihJU7VqVRqVc5liTxSudHJyrPjfzjuHHcmf9e0LI0fClClw1llhR+NioFKlSjRr1izsMNKGNz25kuXmwvvvw/HHhx1J0fbdF/bYw0c/ORcQTxSuZM8+a9fp1j+RL7+kx2uvwVdfhR2Nc7HjicKVLCfHqsT+7W9hR7Jtp55q1488Em4czsWQJwpXvNWr4dVX7WwiFavYlVfTplZ63Et6OJd0nihc8V56CTZsSN9mp4JOPRUWLYK5c8OOxLlY8VFPrng5OVCvHhx4YNiRlOzEE+G88+ysIuCihZMmweTJpd++c2c455zg4nEuSJ4o3LZt2gTPPw/HHgsVI/CnUqcOdOtmK98NH25zLALw3//al36TJqWbtrFmDTz1FHz5JdxyS3q34DlXlED/+0WkC3A3kAWMV9VbCj2+J3A/0B64WlWHl/a5LgXeessWKopCs1O+vn1h6lR4+WU4+uikv/yYMbYC7DHH2NtUqVLyc/LyYNAguO02+3Xee6+t6OpcVATWRyEiWcAooCvQCugjIq0KbfYTcD4wvBzPdUF75hmoXNnaTaKia1drKgtgTsWoUZYkunUrfZIAq8g+apQtyDd+PPTpYxXbnYuKIDuz9wMWq+oSVd0ATAK2mrGlqj+q6mygcOnPEp/rAqZqieKII6BGjbCjKb3KleGkk+Dpp+HXX5P2siNG2FnB8cfbBPDSJol8IjB0qLWIPfGEnaStWZO08JwLVJCJoiHwTYGfcxP3JfW5ItJfROaIyJw41WUJ3aJF8MUX6Tsbuzh9+8K6dXbYnwR33w3nnw/du1sHduXK5X+tiy+GCRNgxgw46ij4+eekhOhcoIJMFEV12ZV2gHupn6uqY1U1W1Wz69evX+rgXAlycuz62GPDjaM89t/fJggmofnprrtg8GDo0QMef3z7kkS+M8+0hDN3rq3m+v332/+azgUpyESRCzQu8HMj4LsUPNclQ04OdOgA5aw2GSoRm1Mxa5aVRi+nO++ECy+Enj2TlyTy9expA8qWLIGDD7YRUc6lqyATxWyghYg0E5HKwMlATgqe67bXDz/A229Ha7RTYaecYv0s5SzpcccdcNFFttrqY48FM9K2Uyd45RUbCXXwwbBgQfLfw7lkCCxRqOomYBDwErAQmKyqC0TkHBE5B0BEGohILnARcI2I5IpIzW09N6hYXSHPP29fslFOFM2b2yTBcpT0uP12uOQS6N0bHn00sOkYgLWSvf66hXjoofDee8G9l3PlJXFZwQkgOztb58yZE3YY0de9O3zwASxdGu3ZYffeCwMGWGdA+/alesqtt8IVV9haSA89lLp5hkuWWOf2Dz/ACy9Y2SrnUkFE5qpqsaUMvNaT29ratTB9evoXASyN3r2tY6GUy6ROmGBJok+f1CYJgN13h//9D3bbzQZt+dBZl048UbitvfKKJYsoNzvlq1vXplA/+qiVIynGr79akjj0UJg4MZyKJbvuasnqq6/gpptS//7ObYsnCre1Z56xCXaHHRZ2JMlxyinWnvPGG8VudscdsGKFTYgLs6zVIYfA6adbHIsWhReHcwV5onBb5OXZanZduyZ3LGiYunSBqlWtKt82fP+9JYrevW1V1bDddhtUrw4DB/rSGi49eKJwW8yebUffUZyNvS3Vq1utqqef3ua37r//bbWXhg5NbWjbsvPOcPPNtl7UpElhR+OcJwpXUE6OlTXt2jXsSJKre3ebePf++3966LPPYOxY6N/fJnOni/79bUmNiy6CVavCjsZlOk8UbotnnrHe3Dp1wo4kubp1sxKuTz/9p4euucZapoYMSX1YxcnKspLmP/wA114bdjQu03micOaLL2xqcBxGOxW2007WS1yon+K996yS68UXQ4MGIcVWjOxsmwYycqRNa3EuLJ4onHn2Wbvu1i3cOILSo4cl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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABM80lEQVR4nO2dd3xU1fLAv5MCoZfQlGIQ+D2aGHpT4SkCKoqICgiKqCAqKCp2EdSHD8XyRAULUmygggoWFH1PUKQHIr3XoFKlE0g5vz9mlywhJJtkN3fv5nw/n/PZ3Vv2zsnN3jlnZs6MGGOwWCwWi+VcRDgtgMVisVhCG6soLBaLxZItVlFYLBaLJVusorBYLBZLtlhFYbFYLJZsiXJagEBSoUIFExcX57QYFovF4hoSEhL2GWMqZndMWCmKuLg4li5d6rQYFovF4hpEZHtOx1jTk8VisViyxSoKi8VisWRLWJmeLCHG+vXQty/s2OHf8UWKwMMPw6BBIBJc2SwWi99YRWEJDj/8AD166MO/a1f/HvwbN8L998OcOfD++1C2bLCltIQRKSkpJCUlkZyc7LQoIUlMTAzVqlUjOjo61+daRWEJLMbAmDHw0EPQsCHMnAkXXOD/ua+9Bo89Bk2bwmef6avF4gdJSUmUKlWKuLg4xM5Iz8AYw/79+0lKSqJmzZq5Pt/6KCyB49Qp6N8fhgyB666D337zX0mAzjoeegh++QVSUqBNG3jzTVUgFksOJCcnExsba5VEFogIsbGxeZ5tWUVhCQx79sAVV6jJ6OmnYfp0KFkyb9/VujUkJkLHjjB4MNx0Exw6FFBxLeGJVRLnJj9/G6soLPlnxQpo0QKWLoUpU+D55yEin/9a5cvDjBkwejR89RU0aQLLlgVEXIvFkjusorDkjxkz1ESUkqImo549A/fdEREwdGiGKap1axg71pqiLGHDnDlz6NKlCwCTJk1i0KBBDkuUNVZRWPKGMfDCC3D99VC/PixZAs2bB+dabdrA8uXQoQPcd59GU1lTlMVSYFhFYck9J05A797w1FNwyy0wdy6cf35wrxkbC19/DS+9BF98odFQ23PMPGCxFCjbtm2jXr169O/fnwYNGtCxY0dOnDhB+/btT6cX2rdvH27LSWfDYy25IzUVOndWc9ALL8Djjxfc4riICHjkEZ1hXHMNdOumkVXFihXM9S3uYcgQDYgIJPHx8J//5HjYxo0bmTJlCu+99x4333wz06dPD6wcDmBnFJbc8fLLqiQmToQnnnBmBXXbtvDxx/ogGDDA+iwsIUXNmjWJj48HoGnTpmzbts1ReQKBnVFY/GfVKhg+HG68UVNzOMk118Czz8Izz0CzZvDAA87KYwkt/Bj5B4uiRYuefh8ZGcmJEyeIiooiPT0dwJUrx+2MwuIfKSlw++1QpoxGHoVCvPpTT6kz/eGHNe2HxRKixMXFkZCQAMC0adMclib3WEVh8Y8XX4SEBBg3DipmW+Ok4IiIgMmToU4duPlm/5MPWiwFzNChQxk3bhxt2rRh3759TouTa8SEkX23WbNmxhYuCgK//66hr92764K6UGP9el3wV6cO/PqrdW4XUtauXUu9evWcFiOkyepvJCIJxphm2Z1nZxSW7Dl1Sk1O5ctr3qVQ5B//gI8+0hnPwIHWuW2xBJigOrNFpDPwOhAJjDfGjMq0vy4wEWgCPGWMednfcy0FxAsvaHTRV1/pWoZQ5dprYcQIbc2ba02LIHHsGHzwgWYs8Zf69VXfhvKf0GI5F0FTFCISCbwFXAkkAUtEZKYxZo3PYQeA+4Hr83CuJdgsWwYjR0KfPlpTItQZNkxlfvBBaNQILrssoF//1186qRo3Dg4cgMqVwZ/U/unpMGGC5krs3VsXlzduHFDRLJagEkzTUwtgkzFmizHmFDAVOONpY4zZY4xZAqTk9lxLkDl5UofAFStqfQk3EBGhQ/1atTSEd+fOgHztmjVw112aMf2FF6BdO5g3D/78Uy+RU9u1S/Mm9u2rLp4mTeCSS2DqVLXsWSyhTjAVRVXA95ea5NkW0HNFZICILBWRpXv37s2ToJYseP55WLkS3nsPypVzWhr/KVNGzWTJyep8z2PMujHwv//pco0GDeCTT+DOO9Vv/sUXuuYvNxHCF10Eb78NSUnw6qs6O+nVC+LidDnIn3/mSUyLpUAIpqLI6mfkr5fR73ONMe8aY5oZY5pVDJWwTbezZAmMGgX9+umT0m3UrQsffqj9uPfeXDm3U1J00XfTplpeY+lSeO45jbwdO1YDq/JDuXJqGduwAb79VrNCjBgBNWqo4pg/3/riLaFHMBVFElDd53M14I8CONeSH5KT1eR03nk69HUrXbvqqu2JE9Wp4AdffAEXXqgumeRknUxt366ujwoVAiteRARcfTV8950qjUGDYNYsnal06QIuDLW3ZENcXBz79u3j4MGDjB071mlxck0wFcUSoI6I1BSRIkBPYGYBnGvJDyNGqFF+/HgoW9ZpafLH8OH61H3gAfj553MeZgz8619qqapcGb75RrOV3HUXxMQEX8w6dbRUeFKSptL66Sedafz6a/CvbSlY3KooMMYErQFXAxuAzWj4K8BAYKDnfRV09nAYOOh5X/pc5+bUmjZtaiz5YMECYyIijOnf32lJAseBA8YUK6bt2LGzdp84YUzv3saAMX366GenWbbMmNq1jYmMNGbkSGPS0pyWyB2sWbPGaRGMMcZ07drVNGnSxNSvX9+88847xhhjLrjgArN3717To0cPExMTYy6++GIzdOjQApctq78RsNTk8Gy1K7MtyokTGrN54oQ6sUuXdlqiwNGmDSxYoOGyc+ee3rxnj2Yqnz9fZxRPPhkaKawADh/WxLiffqqlwz/8ECpVclqq0MZ31bGDWcY5cOAA5cuX58SJEzRv3py5c+fStGlTli5dytGjR+nSpQurVq0KrHB+YldmW/LH8OEa0vP+++GlJCDjCetNj46allq21GUXn3+u+QVDRUmA3oIpUzRSau5cfUjZvIfuYMyYMVx88cW0atWKnTt3snHjRqdFyjc2zbhFvamvvabxnx06OC1NcBkwgFnFbqDHgDKUKKG6I1gVXPOLCNx9N7RqpTkPr7hC9flTT0FkpNPShTZOZRmfM2cOP/30EwsWLKB48eK0b9/elWnFM2NnFBZ47DH12o4c6bQkQcUAY1LvoUuvktSqBYsXh66S8OXiizVMt1cvVRSdOuk6DEvocejQIcqVK0fx4sVZt24dCxcuPGN/qVKlOHLkiEPS5R2rKAo7c+fqArUnntCQnzAlhSjuZSwPMIZr+ZpfrxtN9eo5nxcqlCqlforx47X6a3w8/Pe/TktlyUznzp1JTU2lUaNGDBs2jFatWp2xPzY2lrZt29KwYUMeeeQRh6TMAzl5u93UbNRTLklLM6ZpU2OqVzfm+HGnpQkaf199i+nAbAPGPMook4YYI2LMpk1Oi5YnVq40pm5d7cKrrzotTegQKlFPoUxeo56sj6Iw8/HHmpr7o4/CtobD9u3Q+ZdRbKYyE+hHPybpDgO0b69LrkPJi+0HDRuqKapvX3joIU1Q+NxzruuGxUVY01Nh5fhxjQdt1kyN32HI3r0aWrr1eGXeYHCGkvCSlOTaWtslSmjo7J13amjv4MGapdZiCQZ2RlFYefVVfVB+8onmkwgzjhzRFBlbtkBqehGKczzrA994A267TRWmy4iMzMjZ+PLLcPCgRv/6k/rcYskNVlEURv76S5P+3XADXHqp09IEnJMndSHdsmX60CySngzZjbY7dtTVd1Hu+zmIwEsvaQHCJ5/UhXqffhq2lkSLQ4TfUNKSM888o4UQXnzRaUkCTloa3HqrRgRFRanSiJAcsg/8/berzW8iGrQ2dqzmqbrqKlUYFkugsIqisLFypa6+vu8+qF3baWkCijFw//260joqKpdFgaZN0/StLuaeezQ+4bff4PLLbQZaS+CwiqKwMXSoFvcZNsxpSQLOc8/pqDoqClJT8/AF3burk9/F9Oqly2JWr9bUVklJTkvkIFWq6HQrUK1KFUe6MWnSJAYFsQa8P1hFUZj4/nuYPVtNT+XLOy1NQBk3TjOk51lJgCZEvPrqQIrlCNdcAz/8oErikksgDFIN5Y3du0P7+1yEVRSFhdRUePhhNTfde6/T0gSUzz9XS1p0dD6UhJe5c3X5s8u57DItwXHsmMYr/P670xIVDrZt20bdunXp27cvjRo14sYbb+S4zyw1PT2duLg4Dh48eHpb7dq12b17N19//TUtW7akcePGdOjQgd1ZKKbbb7+dadOmnf5csmTJ0+9Hjx5N8+bNadSoEcOHDw9ov7JVFCIy2+f9EwG9sqVgef99LUj00ktQpIjT0gSMn36C3r0DpCS8DByoK/VcTtOmWvwoOhratYNMaYcsQWL9+vUMGDCAFStWULp06TMKFUVERNC1a1e+/PJLABYtWkRcXByVK1fmkksuYeHChSxfvpyePXvy0ksv+X3N2bNns3HjRhYvXkxiYiIJCQn88ssvAetTTjMK3yLUNwXsqpaC5fBh9Ulceilcf73T0gSMpUs1DFZEo50CVlolLU3/VmGwgq1uXZg3DypW1Cjg335zWqLwp3r16rRt2xaAPn36MG/evDP29+jRg08//RSAqVOn0qNHDwCSkpLo1KkTF110EaNHj2b16tV+X3P27NnMnj2bxo0b06RJE9atWxfQ9OY5KYrwqWpUmBk1Spcpv/pq2OR52LBBw0C9kU1paQG+wM6d0L9/gL/UGS64QGtZnHeeZp4N4EDTkgWS6Td26NAh4uPjiY+PZ+bMmbRu3ZpNmzaxd+9evvrqK2644QYABg8ezKBBg1i5ciXvvPNOlunJo6KiSPcMYIwxnPL8AIwxPPHEEyQmJpKYmMimTZu48847A9annBTFhSIyU0S+9nl/ugVMCkvw2L5dFUSfPq5cfZwVf/6po+PDh1Xv5SoMNjdMmOD6kFkvVauqsqhRQxXs//7ntEThy44dO1iwYAEAU6ZMoUuXLqcf4Ndddx0iQrdu3XjooYeoV68esbGxgCqUqlWrAjB58uQsvzsuLo6EhAQAZsyYQUpKCgCdOnViwoQJHD16FIBdu3axZ8+egPUpp6WoXX3evxywq1oKDm99zxdecFqSgHDsGHTpArt2aYRT0GvCdOum0S5lygT5QsHnvPPUwX3FFRoZNXMmXHml01IFkcqVAxup5Gca/nr16jF58mTuvvtu6tSpwz333HPWMT169KB58+ZMmjTp9LYRI0Zw0003UbVqVVq1asXWrVvPOq9///507dqVFi1acMUVV1CiRAkAOnbsyNq1a2ndujWgTu6PPvqISoGqn5tTellvQ/0VFf093olm04xnYtEiY8CYJ590WpKAkJpqTNeuml67aFHtmj+tZORx8wF9/D8hc4uPd7rrAWXPHmMaNdK/4axZTksTOEIhzfjWrVtNgwYNnBbjnOQ1zXhOUU8iIsNFZB+wDtggIntF5JnAqClL0EhP18yolSrB4487LU1AePRRmDEjIzVHgZGYqIs0woSKFdX0VL8+dO2qaT8sluzIyUcxBLgEaG6MiTXGlANaAm1F5MFgC2fJB5MmaTzkSy9peTSXM26culqiosBjli1YnnsOli934MLBITZW82E1aqS5IWfMcFqi8CAuLo5Vq1Y5LUbAyUlR3Ab0MsacNpYZY7YAfTz7LKHI339rHey2bTVDnsv5/nuttxDQtRK5xRhNoFSgU5ngUq4c/PgjNGkCN94I06c7LZElVMlJUUQbY85KLWaM2QvYrPehytNPa9mzt95yfa2JlSvh5pu19kLAQ2Bzy8GD6twOI8qW1awuLVpAjx7w2WdOS2QJRXJ6imQXeBisoERLfli2DN5+W3NaXHyx09Lkiz//1Ogc7yA+JNa/zZqlYbNhROnSOmtr00aTCn7yidMSWUKNnBTFxSJyWESOeNph72fgooIQ0JIL0tNVQVSooDZ1F3PsGFx3nSqLiIggrpXICwMG6IK8MKJUKdWBl12m1sr33nNaIksoka2iMMZEGmNKG2NKeVppn8/W9BRqeB3Yo0erTcGleIsPJSSoySnoayVyS1qapmUNiSlO4ChRAr79VldvDxigC/oDlhbFAQo6y/j+/ftPr8CuUqUKVatWPf35VIBHOr7JAdu3b8/SpUsD+v2ZySk8NkZEhojImyIyQERyVStSRDqLyHoR2SQiZ8VoesJvx3j2rxCRJj77tonIShFJFJHg/hXCgTByYD/2GHz5pQNhsLlhxw64+26npQg4xYtrBNQtt2jVvKFD3asPCzrLeGxs7OkV2AMHDuTBBx88/bmIyxNx5mR6mgw0A1YCVwOv+PvFIhIJvAVcBdQHeolI/UyHXQXU8bQBwLhM+/9pjIk3xoRH7olg4uvAdnE+p3fegVdecTAMNjeMHw8ffOC0FAEnOho+/BAGDdKQ5DvucDDazMWcOHGCmjVrnk6zcfjwYeLi4khJSaF9+/YMGTKENm3a0LBhQxYvXgzAsWPHuOOOO2jevDmNGzdmRojELeekKOobY/oYY94BbgQuzcV3twA2GWO2GGNOAVM5MyUIns8feBYILgTKish5ubiGBdSBPW6c6x3YP/wQwLoSBcXtt4dllr2ICBgzBp59FiZP1uJ/J044LZW7KFasGO3bt+fbb78FNFNs9+7diY5Wq/2xY8eYP38+Y8eO5Y477gBg5MiRXH755SxZsoSff/6ZRx55hGPHjjnWBy85KYrTYzpjTG5/ulUBX49fkmebv8cYYLaIJIjIgHNdxGMSWyoiS/fu3ZtLEcMArwO7YkVXO7CXL4ebbgqRMNjcYAx06ACbNzstScAR0WKIb70FX38NnTvDoUNOS+Uu7rrrLiZOnAjAxIkT6dev3+l9vXr1AuCyyy7j8OHDHDx4kNmzZzNq1Cji4+Np3749ycnJ7NixwxHZfcnJ53CxiBz2vBegmOezAMYYUzqbc7Oyf2R2jWV3TFtjzB8iUgn4UUTWGWPOGroZY94F3gVo1qyZi11vecTrwJ482bUO7PXr1YEaUmGwuSElRasEbd2qq9jCjHvv1cq5t90G7dtrKK2f+fEKPW3btmXbtm3MnTuXtLQ0GjZseHpf5nTkIoIxhunTp/OPf/zjjH39+vVj+fLlnH/++Xz33XcFIrsv/kY9eSOdonzeZ6ckQGcH1X0+VwP+8PcYY4z3dQ/wJWrKsvgSBg7sHTs0g+mhQ0FOGR5sDh3SJc6u7UD29Oyps4oNGzTgK4vEppZzcNttt9GrV68zZhPA6eJF8+bNo0yZMpQpU4ZOnTrxxhtveBOxstyTNmbixIkkJiY6oiQguDWzlwB1RKSmiBQBegKZa1jMBG7zRD+1Ag4ZY/4UkRIiUgpAREoAHYHwS6CSX1zuwN6zR5XEX3+p+CEb4eQv27bBP//p7pjSbOjUSfND7d+vY5NQT2kU6FlPXr+vd+/e/P3336dNTV7KlStHmzZtGDhwIO+//z4Aw4YNIyUlhUaNGtGwYUOGDRuWX7EDQ07pZfPT0EipDcBm4CnPtoHAQM97QSOjNqORVc082y8Efve01d5zc2qFKs14QoLm277/fqclyRN//63Zu6OicpcyPC8t32nGc9tuvdXpP29QWbXKmPPPN6ZsWWN++81paTIIhTTjWfH555+bPn36nLGtXbt2ZsmSJQUuS17TjOdqXUQelNB3wHeZtr3t894A92Vx3hbAveE7wcbXgf3ss05Lk2uOH9fiQytWaIST62cSmfnwQ/i//9MZXxjSoIHW3u7YUf34770HvXs7LVVoMnjwYGbNmuWYyShQBFVRWIKEix3Yp05pqOX8+WGqJLwMGwa1a6txPwyJi4N58zRSrU8fWLJEEwJE23wNZ/DGG29kuX3OnDkFK0g+cXdq0cLIgQOudWCnpelD5fvvdUFdmPp9M+jdGxYtclqKoFGpEvz0EwwZAq+/riVW//rLWZlMmPqHAkF+/jZWUbgJY+Cee1zpwDYGBg6Ezz93yarrQJCeDu3awfbtTksSNKKj4bXXNOPs0qUaJbxggTOyxMTEsH//fqssssAYw/79+4mJicnT+db05CZeekkLBrz4oqtWYBujk6Dx41VJuGbVdSA4eRIaN9aIqNI5RZS7l1691HfRrZvqxjFjNBVWQY5lqlWrRlJSEoVy4a0fxMTEUK1atTydaxWFW/jhB83S1qMHPPKI09LkilGj1H5d6JSEl7//1pqjy5eH5YI8L40a6ayid2+d+C5erBPfYsUK5vrR0dHUrFmzYC5WyLCmJzewebMO2S66CN5/31Ump3Hj4MknC7GS8LJ9uzq3wzDVhy/lysE332jqj4kT4dJLw9ryVmiwiiLUOXYso/zml19q0QAXYAw8/7ymf3BVkr9gcuAA1K8Pc+c6LUlQiYjQqO2ZM2HjRvVb/PST01JZ8oNVFKGMMZrjefVq+PRTuPBCpyXyi5MnNanqM88UIse1v6Sk6Ort8eOdliToXHutmqKqVNFV3f/+tx0wuBWrKEIZr/N61CjNdeECDhzQhVgffGDNTVnijcjp31+rAoV5hE6dOrrk58Yb1QTZsqVWLrS4C6soQhVf5/XQoU5L4xebNkGrVrpqt0gRqyTOiVc5vPKKFgYP8ylXyZIwdaqOef74A1q0gAcfhKNHnZbM4i9WUYQimzfril4XOa/nzVMlsW1bIVlMFyi++UbDZ8O80IOIruJeu1bDZl9/Xd01X3/ttGQWf7CKItTwOq9FXOO8/uQTXZV75Ig6MsM2LUewWL1aI6IKQe7usmVh7FiddZYpoxOq7t1h1y6nJbNkh1UUoYTLnNfGaFG93r31fVqaVRJ5Zt8+HWLPn++0JAVC69ZawfeFF+C776BePV1z4arqhoUIqyhCCRc5r0+ehL59YfjwjMgm+yPPJydP6sKDN990YZm/3BMdrW64VavUbDlokKYwW7HCacksmbGKIlTwOq979gx55/X+/RrZ9OGHNrIpoHgrWgweDA0b6pC7EFCrlv77f/QRbNmihQKHDLHmqFDCKopQ4PffM1Zejx8fss5rY2DGDF1AZSObgoQ3ImrtWv1D9+qlZqkwR0RNmOvWqfX1zTehZk246y6tqW5xFqsonMQYrfrSqhXExIS083rTJrjmGrj+evjzTxvZVCCIaFxp9erwn/8UCtte+fLw7ru6onvAAPj4Y/Vf3Hij1rywOINVFE5x5IgWZxgwQO3SiYkh6bw+flxr8DRoAD/+qHblU6es07pA8M4uTp3ShQe1asEvvzgrUwFRs6bOKrZv14V6//2vrr+44gr9PwzzdYohh1UUTrBiBTRrpqPFf/1LK/lUquS0VGdgDHz1lQbi/OtfOpgVCfu1YaGJ17G9Y4fm8O7SRVeuFQIqVdL/v+3bNQPxunXqH2vaVOM+CsEkKySwiqIg8ZqaWrbUGcX//gdPPaWLD0IIr5mpWzc1M8XE6A/SKgmH8Q6jv/1Wa5E+9xycOOGoSAVF6dIa47Fli7rxjh3TpAV162rhpJ07nZYwvAmtJ1Q4k5WpqV07p6U6g3OZmZKTnZbMchZpaRqbHBur3t+FCwuFPaZoUbjzTlizBqZNU5/GQw9BjRrq6nv55UKxbrHAsYqiIAhxU9OxYzB5coaZKT3dmplCHq85KiVFCz+0bg0XXKAr2ApBXGlkpK7oXrQINmzQzLQpKVrT68ILoXlzLQQZ5uU/CgyrKIJJCJua0tLUQdi3L1SurGnB//hDzUypqVZJuAbf+OQ//tD/r2rVdNY6ZUqhME3VqQOPP65ZaTdv1nWrERG6rXZtXZfxwguqUCx5Q8KpEHmzZs3M0qVLnRZDWbNGh+dTpugq648+ColZxOrVulDuo4904BkVpYPT6OjwjWQqGXmCsWkDuJWPnBalYIiIyFi8FxOjizj799cBS2Sk09IVGNu3w/TpaqJasEC3XXCBmqhat9bX+Hg1ZxVmRCTBGNMs22Osoggg27ereemTT9TcFBmppb6eeMLRWcSePaqvPvhAF/uKqDjR0YXD/1DoFIUvvkvnixVTE2i7dvqkbNlSfRyFgJ07NYrv11/VneN1fhcpojOOVq0yWo0aIbvmNShYRVEQ7N0Ln3+uyuG333Rb69Zwyy2aV7ly5YKVB/U5rFgBy5drwrXvv1dTU3R0hu8hjG57jhRqReGLtyat782vUUMVR9u2+n/boEGhmHXs2qX+jYULdbaxdGnGoKlKFdWhDRqo6apWLX0977zwVCBWUQSLw4d1eDJlioYHpaVpbp5bbtFpfs2awZfBw/79qhC8bdkyXdXq9XVGRelzISKi8PodrKI4B1FR+urr54iJ0SF2/foagnvBBRmv558ftkokJUUHVwsXalu0SENxfddpFC+ujvLatc9UILVqqXIpVsw5+fODP4oiKsgCdAZeByKB8caYUZn2i2f/1cBx4HZjzDJ/zg06xsDBg7rIaft2bTt2qEds9mwdfsTFwaOPZuRpCgInTqjpaO9efd2zR0XxKgXf+PGoqDNnDidPZjwD7MIky1lklagrLU2H2AsWnD3tjIzUJ2KtWtouuEDTi5Qvr4UmypXLeC1VylXD7+hoXcTXtCncd59uS0nRn/ymTdo2b9bX9eth1qyzfXolS0LFiuqK9L76vq9YUVupUtpKltSMPW74MwVNUYhIJPAWcCWQBCwRkZnGmDU+h10F1PG0lsA4oKWf5waG9HSOfvAF6dt3ws6dmB07ISkJszMJjh7BoHfRIFA0BlO9Bum9h5DerTvpjZuSboS0NEjfpqP4tDR99b4/eVJ1im87ceLsbceOae43rzL46y99PX48a7G9SqFoUf09nzqV8bu3OZgseeZc086oKJ2W7t6tdptff83efhkRoU/CMmVUkcTG6vtixXTW4m2ZP3u3FSmi1/RtkZFnb/PK5du8TrisPnufyiIZ7Ryfo0WoVR5qtYBOLTjjiZ5uhF1/CJu3RrBlWwS790awZ5+wd5+wZ28ESduFZQn6OSXl3JpAxFCiBJQqaShZAkqVMpQsYShVEkqUMBQtCkWLQNGixvOa9fvSpeGmW2NycaNzRzBnFC2ATcaYLQAiMhXoCvg+7LsCHxi1fy0UkbIich4Q58e5gUGEyv2u4jh+JOM7CWzytPcDLkm2iJz5u/QqhXCNVAokqcb5cGTXk3n2cS4l4f1HTU9XE+3hw2G5bDoCqO5p7bM5zgCHKMMeKrGXiuyjAkcoxRFKcZSSHDGlOHq0JEeO+myjFH9SkqOU5CRFz2ppWTy2q8hf3NS7UtCCZoKpKKoCvv8hSeisIadjqvp5LgAiMgAYAFCjRo3cSynCUw8e51+vR3IiPXgaOTsiInQAVbp0xuw9OtoRUcKSiN37uahEFJS8xGlRCi/G6PQ4OVlHN6dOZWSX9H4Ow2JNApTlEGU5xP+xMSDfmUYEpyhypvKILg5HF+tDJAgEU1FkNd/KPAw51zH+nKsbjXkXeBfUmZ0bAb08+WpFnnw1L2da3MH5wESnhbBYAkIkUMzTCopgKookdGbmpRqQOeXluY4p4se5FovFYikAgmm8XQLUEZGaIlIE6AnMzHTMTOA2UVoBh4wxf/p5rsVisVgKgKDNKIwxqSIyCPgBnS1NMMasFpGBnv1vA9+hobGb0PDYftmdm9M1ExIS9onIdp9NFYBwrCMZrv2C8O2b7Zf7CNe+Ze7XBTmdEFYL7jIjIktzWkjiRsK1XxC+fbP9ch/h2re89MvGDVosFoslW6yisFgsFku2hLuieNdpAYJEuPYLwrdvtl/uI1z7lut+hbWPwmKxWCz5J9xnFBaLxWLJJ1ZRWCwWiyVbwlJRiEhnEVkvIptE5HGn5QkkIrJNRFaKSKKIhEjd19wjIhNEZI+IrPLZVl5EfhSRjZ7Xck7KmFfO0bcRIrLLc98SReRqJ2XMCyJSXUR+FpG1IrJaRB7wbHf1fcumX66+ZyISIyKLReR3T7+e9WzP9f0KOx+FJ0X5BnxSlAO9gpKi3AFEZBvQzBjj6oVAInIZcBTNHtzQs+0l4IAxZpRHwZczxjzmpJx54Rx9GwEcNca87KRs+cGT2fk8Y8wyESkFJADXA7fj4vuWTb9uxsX3zFPvp4Qx5qiIRAPzgAeAG8jl/QrHGcXp9ObGmFOAN0W5JYQwxvwCHMi0uSsw2fN+MvpjdR3n6JvrMcb86S0sZow5AqxFMz27+r5l0y9XY5Sjno/RnmbIw/0KR0VxrtTl4YIBZotIgifFejhR2ZPrC89rJYflCTSDRGSFxzTlKvNMZkQkDmgMLCKM7lumfoHL75mIRIpIIrAH+NEYk6f7FY6Kwu8U5S6lrTGmCVod8D6PmcMS+owDagHxwJ/AK45Kkw9EpCQwHRhijDnstDyBIot+uf6eGWPSjDHxaAbuFiLSMC/fE46Kwp/05q7FGPOH53UP8CVqagsXdnvsxV678R6H5QkYxpjdnh9tOvAeLr1vHlv3dOBjY8wXns2uv29Z9Stc7hmAMeYgMAfoTB7uVzgqirBNUS4iJTzONkSkBNARWJX9Wa5iJtDX874vMMNBWQKK94fpoRsuvG8e5+j7wFpjjG+pL1fft3P1y+33TEQqikhZz/tiQAdgHXm4X2EX9QTgCWP7Dxkpykc6K1FgEJEL0VkEaIr4T9zaNxGZgpYbrgDsBoYDXwGfATWAHcBNxhjXOYXP0bf2qAnDANuAu712YrcgIpcAvwIrAW/d0idRe75r71s2/eqFi++ZiDRCndWR6KTgM2PMcyISSy7vV1gqCovFYrEEjnA0PVksFoslgFhFYbFYLJZssYrCYrFYLNkStJrZTlChQgUTFxfntBgWi8XiGhISEvYZYypmd0xYKYq4uDiWLnVtnjyLxWIpcERke07HWNOTxWKxWLIlrGYUlhDk998hKcm/Y6OjoV07KFo0uDJZLJZcYRWFJTgYAyNHwrBhuTuvSRP47DOoVSs4clksllxjFYUl8Bw/DnfeCVOnQp8+MHgwSFa5GjOxYQMMGqTKYsIE6N49+LJawoaUlBSSkpJITk52WpSQJCYmhmrVqhEdHZ3rc62isASWXbuga1dYtgxGjYJHH/VPSQA0bw5t20KPHnDjjapgRo+2piiLXyQlJVGqVCni4uIQf//nCgnGGPbv309SUhI1a9bM9fnWmW0JHIsX68N+/XqYMQMee8x/JeElLg5+/RUefBDeeEMVx5YtQRHXEl4kJycTGxtrlUQWiAixsbF5nm1ZRWEJDJ98ApddBjExsGABXHtt3r+rSBF49VX48kvYvFlNUV98kfN5lkKPVRLnJj9/G6soLPkjPR2eeAJ694ZWrXRW0TBPtVHO5vrr1YT1f/+n/ooHHoCTJwPz3RaLxW+sorDknSNHoFs39UUMGACzZ0OFCoG9Rs2aMG+eKokxY+DSS2Hr1sBew2JxiDlz5tClSxcAJk2axKBBgxyWKGusorDkja1boU0b+PZb9SW8/baajIJBkSLwn/+o+WnDBmjcWM1SFoulQLBRT5bc8+uvcMMNkJoK338PHToUzHW7dYP4eLj5Zr3+hx9q+K3FkpkhQyAxMbDfGR+vA5Zs2LZtG1dddRWXXHIJ8+fPp2rVqsyYMYOrrrqKl19+mWbNmrFv3z6aNWvGtm3bAitfELEzCkvu2L4drrkGYmNh0aKCUxJevKaodu2gf39Yvrxgr2+x5MDGjRu57777WL16NWXLlmX69OlOi5Rv7IzC4j/G6EI6Y3Qm4VSm3qJFdfV206Y6y1i6NPC+EYu7yWHkH0xq1qxJfHw8AE2bNnXVzOFc2BmFxX/eeQf++194+WXnlISXSpXUZ/HXX7pALzXVWXksFg9FfRaIRkZGkpqaSlRUFOnpWo7bjSvHraKw+MfWrTB0qJqaBgxwWhqleXN1ov/vf/D4405LY7Gck7i4OBISEgCYNm2aw9LkHqsoLDmTng533AEREfD++7lfbR1Mbr9d80O98oou+rNYQpChQ4cybtw42rRpw759+5wWJ9eIMcZpGQJGs2bNjC1cFATefFPzLo0frz6KUCMlBa64Qn0V8+drdIql0LF27Vrq1avntBghTVZ/IxFJMMY0y+68oM4oRKSziKwXkU0icpZtQETqisgCETkpIkNzc66lgNi0SXM2XXWVzipCkeho+PxzKF9endv79xfIZdPT/W9hNB6zFEKCpihEJBJ4C7gKqA/0EpH6mQ47ANwPvJyHcy3BJj0d+vXTB/F774WWySkzlSurc/uPP6Bnz6A5t1NS4KOPNP1UZKT/LS4OXn8dDh0KilgWS1AJ5oyiBbDJGLPFGHMKmAp09T3AGLPHGLMESMntuZYCYMwYXbMwZgxUreq0NDnTogWMGwc//QRPPhnQrz54EF56SZdx3HorrFql+rNoUf9aUpKuAatUCe66C9asCah4FktQCaaiqArs9Pmc5NkW0HNFZICILBWRpXv37s2ToJYs2LBBk/1de60+Gd3CHXfAvfdqHYupU/P9ddu3w0MPQfXqaoHbvVsT5KakaDt50r/miYwkLU3jARo0gJYt4auvbGSvJfQJpqLIyk7hr6XW73ONMe8aY5oZY5pVrFjRb+Es2ZCWptFExYrp2olQNjllxWuvaR2LO+7Qmt15YOlStWDVqqUmoxMndGaQmgr5CYNPS9NXEViyRF0q552nVWNdGAxjKSQEU1EkAdV9PlcD/iiAcy355bXXtKbEm2/qU8xtFCkC06ZBuXL6JD5wwK/T0tPh6681O0jz5uDNvBARoQ/4QGY4NybDwf333/D001CliiqnDRsCdx2LJRAEU1EsAeqISE0RKQL0BGYWwLmW/LB2rT61unWDXr2clibvVKmiT/pdu7Qf3qH8OTh8GLp0geuuUx0ZHa2zh7S04JuGfEX79FMt5/Hhh8G9pqVgiYuLY9++fRw8eJCxY8c6LU6uCZqiMMakAoOAH4C1wGfGmNUiMlBEBgKISBURSQIeAp4WkSQRKX2uc4Mlq8VDaqqanEqWVKew20xOmWnVSmdFs2drxbxz4M2Y/sMPqiC8/oeCxtcsddttajk7frzg5bAED7cqiqAmBTTGfAd8l2nb2z7v/0LNSn6dawkyL7+sFeo+/VTDTcOBu+6CWbN0ltSpEzRqdMbu+fO1kN7Bg6okQqGAXmysrmscOVIT9H7+OdS3weG5wqEs4wBcf/317Ny5k+TkZB544AEG+KS8efzxx9m8eTPx8fFceeWVjB49OrBCBgmbwsOirFoFw4fDTTdpvYdwQUQd8uXKafSWjyb4+GP45z/V7BQRERpKAlTk55/XidC+fdCsGUya5LRUFn+ZMGECCQkJLF26lDFjxrDfZwHoqFGjqFWrFomJia5REmDTjFtAvar9+0OZMvDWW05LE3gqVtT0I9deC8OHk/7CKEaM0IdxdLQ6sUMxRLVDBx0V9+6t6x5//llvT8mSTksW+jiYZZwxY8bwpacC486dO9m4caNzwgQIO6OwqKlp4UJ48UV9qIYjXbpA//4cf/ENenbYy/PPQ1SU+iJCUUl4Oe88+PFHGDFCHdzNm8PKlU5LZTkXc+bM4aeffmLBggX8/vvvNG7c2JVpxTNjFUVhJzlZU3THx0Pfvk5LE1T+fPQ12hedz7SfYykRlRzSCsKXyEi1Cv73v+pLadFCJ0g2f1TocejQIcqVK0fx4sVZt24dCxcuPGN/qVKlOHLkiEPS5R2rKAo7r7+uy49feUUN9WFKYiK0+GcJElMbMp3u/Cd1kNMi5Zp//lP7cemlains0wdc+MwJazp37kxqaiqNGjVi2LBhtGrV6oz9sbGxtG3bloYNG/LII484JGXusT6KwsyePfDCC2q7v/xyp6UJGjNmqJ0/JQUioyNZl1aXJxjFTK7ja65zWrxcUbmyVqH997/hmWd0cd6sWbYSbKhQtGhRZs2addZ233Kon7iwbkr4DiEtOTNiBBw7ptnuwpSJE3XtYEqKmmqSk2E4z5LIxbxHfyqyx2kRc01EBDz1lCrAVavgsst0XaHFEiysoiisrF0L774L99wDdes6LU1Q+OorXUbhdVp7F9GlUIQ+fERZDvIuA/A/BVlo0aWLzi6SkuCSS7R0iMUSDKyiKKw88ojGWQ4f7rQkQeGXXzRvUlSURjVldvyupiFP8gLXM4PbmeSIjIGgXTsNmz1yRJXFihVOS2QJR6yiKIz89BN8+63aL8LQuP3775qzCbKvLvcaDzKHdrzOA1zAtgKTL9A0bQq//qpKsV07zVVlsQQSqygKG2lp8PDDWoFn8GCnpQk4W7ZA586aFhyyXyNhiKAvkwGYTF8iyD5xYChTr57WmKpQQRfq/fij0xJZwgmrKAobkyapfWLUKK3AE0bs3g0dO2rJbBH/UnLs4ALuZwzt+IUHeS34QgaRuDidWdSuDddck5Em3WLJL1ZRFCaOHtXkeK1ba06nMOLQIZ1JbN+e+7xNk+nLl1zPSJ7iItxt5K9SBebO1RXcN98MEyY4LZGDVKmiI4ZAtSpVHOnGpEmTGDTI2XU/VlEUJkaPhr/+0pTbbk8h7kNysmaAXbFCVzHnPrmfMIB3OUhZPuRWiuLulAtly2pCwQ4dNAttNhnWw5vdu0P7+1yEVRSFhaQkVRQ9emidhjAhLQ1uuQXmzFFnbl4zwO6jInfyPhezglE8HlAZnaBECZg5UyeODz8Mw4bZlB8FwbZt26hbty59+/alUaNG3HjjjRz3KSqSnp5OXFwcBw8ePL2tdu3a7N69m6+//pqWLVvSuHFjOnTowO4sFNPtt9/OtGnTTn8u6ZMhcvTo0TRv3pxGjRoxPMDRjNkqChGZ7fP+iYBe2VKwPP20hgCNGuW0JAHDGF0G8uWXmgX21Kn8fd+3dOF17mcIr3MN3wRGSAcpWhSmTNFZxb/+BQ89ZJVFQbB+/XoGDBjAihUrKF269BmFiiIiIujatevp7LKLFi0iLi6OypUrc8kll7Bw4UKWL19Oz549eSkXC2Fnz57Nxo0bWbx4MYmJiSQkJPDLL78ErE85zSh8U4mGl1G7MLFsGXzwATzwgHo8w4RnnoH33stYUBcIHuNFErmYifTjvDAo0x4ZqX+j++/X1Nv332+VRbCpXr06bdu2BaBPnz7MmzfvjP09evTg008/BWDq1Kn06NEDgKSkJDp16sRFF13E6NGjWb3a/6Kes2fPZvbs2TRu3JgmTZqwbt26gKY3z0lR2H8pt2OM2h5iY+HJJ52WJmCMGaOjZO+CukBxkhh6MpXiHOdDbnV1yKwXEVUSDz+slWHvvVcnl5bgIJn8f4cOHSI+Pp74+HhmzpxJ69at2bRpE3v37uWrr77ihhtuAGDw4MEMGjSIlStX8s4772SZnjwqKop0z80zxnDKM402xvDEE0+QmJhIYmIimzZt4s477wxYn3JSFBeKyEwR+drn/ekWMCkswePrr9WA/+yzWpgoDJg2TSdH0dHBqSWxnrrczxiu4H88gnuqkGWHiLqoHn8c3n4b7r7bKotgsWPHDhZ4Vj1OmTKFLl26nH6AX3fddYgI3bp146GHHqJevXrExsYCqlCqVq0KwOTJk7P87ri4OBISEgCYMWMGKZ6pdKdOnZgwYQJHjx4FYNeuXezZE7g8Zjllj+3q8/7lgF3VUjCkpGiqjrp1wadur5tZuFArmhYpkn+fRHZM4A46Mpt/8TRzaM8i3B8AIKLJgqOidDaWkgLvv6/mqbCkcuXARir5WUe+Xr16TJ48mbvvvps6depwzz33nHVMjx49aN68OZN8atyOGDGCm266iapVq9KqVSu2bt161nn9+/ena9eutGjRgiuuuIISJUoA0LFjR9auXUvr1q0BdXJ/9NFHVKpUKQ8dzQJjjF8N9VdU9Pd4J1rTpk2NxYfXXzcGjPn6a6clCQhbthhTqZIxRYoYExWlXQtmK8PfZisXmM3UNKU5GPTredv55wf/b/nss3qt3r2NSUkJ/vUKgjVr1jgtgtm6datp0KCB02Kck6z+RsBSk8OzNaeoJxGR4SKyD1gHbBCRvSLyTGDUlCVo7Nmj3t4OHXSZrss5eFC78fffOjIuiOp0hyjLLXxCDXbwNgMJJ5fdM8/orOLjj3WG5pZqfxZnyMlHMQS4BGhujIk1xpQDWgJtReTBYAtnyQePPQbHj8Mbb7h+cV1KCtx4I6xfn9cFdXlnAW0YzrP0YurpvFDhwlNPaZn0qVM1026gIscKM3FxcaxatcppMQJOToriNqCXMea0scwYswXo49lnCUXmz9ecTg895PpaE8ZolM5//6u2dSfq1I/icX6mPW8yiP9jfcELEEQefVRXbk+frik/gun3sbiXnBRFtDFmX+aNxpi9QHRwRLLki9RUuO8+qFZNF9m5nNGjYfx4VRJOPcTSiaQPH5FMDFPoRREKcEpTADz4oIYbf/WVztwKcsZmcQc5KYrsfpp27BGKvP02JCbqMNFneb8bmTZNLWiBXiuRF/6gKv2YSBOW82/CL0nB4MEwdqxGU3frlpGm3WKBnBXFxSJyWESOeNph72fgooIQ0JIL9uzRWUSHDjo0dDGLFmWEwTqtJLx8w7WMYTAP8RpX8Z3T4gSce+7R6rjff6+ZeA8dcloiS6iQraIwxkQaY0obY0p5WmmfzzmankSks4isF5FNInJWpjVPVNUYz/4VItLEZ982EVkpIokisjRv3StkhIkDe9s2rVBnTOgtCnuUl/idRkzidqrwp9PiBJz+/eGTT9TN1b69uxOmFnSW8f37959egV2lShWqVq16+vOpANtNfZMDtm/fnqVLg/uIzHbBnYjEAAOB2sAKYIIxxq/xnYhEAm8BVwJJwBIRmWmMWeNz2FVAHU9rCYzzvHr5Z1Y+EksWeB3Yjz3magf2oUMZYbAREaEzm/DiTfGRQFM+pjed+IHUMHPX9eypqcq7d9c63LNna0FEt1HQWcZjY2NJTEwEdPFcyZIlGTp0aGCFcIicTE+TgWbASuBq4JVcfHcLYJMxZosx5hQwlTNXeuP5/IFn3cdCoKyInJeLa1ggbBzYKSmaFnvdutwXHypI1lGPgbzN5fzMO9xNOK2v8NK5s5ZW378f2raFMIz4DDonTpygZs2ap9NsHD58mLi4OFJSUmjfvj1DhgyhTZs2NGzYkMWLFwNw7Ngx7rjjDpo3b07jxo2ZMWOGk104TU6Kor4xpo8x5h3gRuDSXHx3VWCnz+ckzzZ/jzHAbBFJEJFz5p8QkQEislRElu7duzcX4oURYeDANgYGDdJazwW9ViIvfMhtPMsz3MFEnuZfTosTFFq31tKqInDppTpptfhPsWLFaN++Pd9++y2gmWK7d+9OdLTOQI8dO8b8+fMZO3Ysd9xxBwAjR47k8ssvZ8mSJfz888888sgjHDt2zLE+eMlJUZxeguOvycmHrIzkmYde2R3T1hjTBDVP3Scil2V1EWPMu8aYZsaYZhUrVszqkPAmTBzYI0aoIzWQKcODzQhGMJnbeJ5nuJUPnBYnKDRoAL/9BhUq6L/YrFlOS+Qu7rrrLiZOnAjAxIkT6dev3+l9vXr1AuCyyy7j8OHDHDx4kNmzZzNq1Cji4+Np3749ycnJ7NixwxHZfckpKeDFInLY816AYp7PAhhjTOlszk0Cqvt8rgZnJfg/5zHGGO/rHhH5EjVlBa4SR7gQBg7s//wHnnsuNMJgc4fQn/eoRhLvcydJVONnLndaqIATFwfz5sFVV2mQwQcfgOcZZ8mBtm3bsm3bNubOnUtaWhoNGzY8vS9zOnIRwRjD9OnT+cc//nHGvn79+rF8+XLOP/98vvuu4CPu/I168kY6Rfm8z05JACwB6ohITREpAvQEMqcmnwnc5ol+agUcMsb8KSIlRKQUgIiUADoC1kqamTBYgT1xoi74cp+SUFIoQnems55/8AU3UB//i824icqV4eef1V/Ru7fWtbD4x2233UavXr3OmE0Ap4sXzZs3jzJlylCmTBk6derEG2+84U3EyvLlywGdjSQmJjqiJCCINbM9pqpBwA/AWuAzY8xqERkoIgM9h30HbAE2Ae8B93q2VwbmicjvwGLgW2PM98GS1ZWEgQP7iy/grruCV1eioDhEWa7mO45TnO+4OizDZkHLmXz/vc4qBg9Wc2EoV8vzMyt40L+vd+/e/P3336dNTV7KlStHmzZtGDhwIO+//z4Aw4YNIyUlhUaNGtGwYUOGDRuWX7EDQ07pZd3UClWa8Tfe0DzRn33mtCR54scfNV14kSLGiBRM+u5gt3iWmSOUMEtpYkpwJKTTjOeHlBRj+vVTWe+7L3TSlIdCmvGs+Pzzz02fPn3O2NauXTuzZMmSApclr2nGc/JRWEKR3btd7cBeuBCuv17fp6WF9qg0NyTSmJv5jJlcx6f0oCszSAvDn1hUlBY8qlBBc3GtWwdTpkBhjCXJicGDBzNr1izHTEYBIydN4qZWaGYUt99uTHS0MWvXOi1JrlmxwpiyZY0pWlS74PQsIBhtAG8bA2YcdxtID7sZhS8TJ+q9rFHDGAcGyGcQqjOKUCIohYssIcivv7rWgb1pE3TsqEFaxrgnDDa3vMvd/JvHGcg7PMpLTosTVG6/XcNnQVdxT5jgqDiYcJmeBoH8/G2sonATf/2lcYlxca5zYO/apZay/fs1ijfc6x48xUim0JMXeZweTHVanKDStCkkJKiiuPNOGDjQmQWTMTEx7N+/3yqLLDDGsH//fmJiYvJ0fvgZUMOVU6c0v8WBA7BggatWYO/bB1deCX/8EdqpOQKJIYLbmURVdjGZvvzB+fxKlmtGw4IKFTQi6umntWre779rmviqmXMxBJFq1aqRlJREoc3QkAMxMTFUq1YtT+daReEWHnxQVz1NmQIXX+y0NH5z+LAu1NqwQZ2ghUFJeDlFUa7nK36jLd/Tmd58zFd0c1qsoBEVBaNGQfPmapJq0gQ+/xwuKyD9GB0dTU03Zi90Adb05AYmTNCqMkOHampPl3DokMbcL1tW+JSEl78pT3vmsIJGTKc7D/IqhGESQV+6d9d6ImXLwuWXw+uvh09kW2HFKopQZ/FirSjToQP8+99OS+M327frKt5ff3VHkr9gsofK/JOf+YIbeJWHeZNBROLiFYZ+UL++/ut26QJDhkCfPhACue0secQqilDmr7/ghhvU0Dt1qg7LXcDixdCypZqboqPDN7opNyRTjJv5jBd5lPsYy0yuoyRHnBYrqJQpo6vvR45Ui2nLlrqGxuI+rKIIVXyd119+CbGxTkvkF9Ona2U0b+GhwjyTyIwhgsd5kQG8Q0dmM49LqEqS02IFlYgIePJJdXQfPAht2mjmGVtm1V1YRRGqeJ3XEya4wnltjK7SvfHGjNXWVklkzXsM4Bq+pSZbWURL4lnutEhBp2NHWLtWc0SNGwf16mlUlPVduAOrKEIRlzmvU1Lg7rvh0UfVOnbqlDU35cRsOtGW30gjkl+5lGv4xmmRgk6pUurYXrRIE+zddJMGO4RAuQVLDlhFEWq4zHntrXH93nvuTRXuFKu4iJYsYh11mUFXBvGG0yIVCM2bw5Il8PLL8L//qeP7tdfs/04oYxVFKOEy5/W2bWpz/u9/3Z8q3Cn+4jzaMZevuZY3uJ/XGEKESXNarKATFQUPPwyrV0O7dpqRpmVLXeFtCT2soggVXOa8XrRIf9gbN9rIpvxynBJ0ZzqvMYQhvM60ve10aXMhIC4OvvkGPvtMV+63aKHuuSPhHRDmOqyiCBVc4rw2Ric77dtrFIuNbAoM6UTyEK/Rl0nUTl0L8fFw6606cAhzRHSMtHat+rpefx1q14YXXtD/MYvzWEXhNCkp8MgjrnBeb96sC6h69YL0dG1WSQSWD+jLpczTp+dHH2kFwzfe0FCyMKdsWf0ZzJ+v6T+eegpq1NAgiT/+cFq6wo1VFE6yY4caaF9+WR3YIeq8Pn4cnnkGGjSA2bMzIpusTyI4HJKyGXGjJ0/C/ffD//2fPkELAa1awaxZsHy5Bkq88grUrAn9++siTkvBYxWFU3zzDTRuDKtWwaef6lAqxJzXxsCMGaognn9eB7UiVkEUKOnp+rp1q+ZEuf56DXooBMTH64ruDRs0ffmHH2oJlptugqVLnZaucGEVRUHjNTVde63Oq5ctg5tvdlqqs9i0Sc1M11+v0/6YGFUQ1mntEN4ZxowZ+n8zcmT4F/XwUKuWjqO2b4fHH9dZbfPmGkH+00920V5BYBVFQeJrarr3Xq0rUbu201KdQWYzU3S0Po+Sk52WzHKatDQt/BAXp9UOC0m2vcqV1cG9cye89JKG1l55pa7DeOYZWLHCKo1gYRVFQfHNNzqX9pqa3npLh+khgtfMVL++mpnS09XMZGcQIYjXHPXXX9Cvn4ZS9+4Nv/ySsS+MKV1aJ+Vbt8L48VClik6wLr4Y/vEPzS21fLlVGoHEKopg42tquuCCkDM1HTqkP7ZLL1Uz059/WjOTa/A+CVNT4ZNPdLZ6/vkwfLg+RcOcmBj1Xfz8s5pH335brXIvvaRRU7Vrw2OPqT/DKo38IeFUX7ZZs2ZmaSh5uXbsgB49NLfyvfdq+EYIzCJSUtSs9MEHMHOmmpWiozP2WZzlfPmTXeb8vJ0cGZkRStu8uaZq7d7dVaVz88vevTo7njZNswakpuoY7cYbNTlhixYaimtRRCTBGNMs22Osoggwxmi+pilTYPJk/dGOH+/4LMIYncx8+KEOPvfu1SCr9HRVEnY9ROiQL0XhJSJCb7oxUKSIpobp0gVat9ZYU5HACBviHDigg6HPP4cff9SBkIhmr23VKqPVr686tjBiFUVBsmaNPoGnTIEtW/TH2aWLVpp30GG9cyd8/LEqiDVr9PkBKp51UIcmAVEUvvjOMkCH023bwiWXqOJo3hyKFw/c9UKUw4d1DLdwYUbbv1/3lSqlMw2v4mjZEipWdFbegsIqimCzfbvms5gyRXPzRETAFVfo0uVu3Qp8fnv4sIqxfHlG80aCREXZkqRuIeCKwpeICP1H8LUxRkToAoX27TXLY4sWOusIsXU9gcYYzTawYEGG4vj99wydWrGijvFq1dJX3/exseEzKXNcUYhIZ+B1IBIYb4wZlWm/ePZfDRwHbjfGLPPn3KwoEEWxe7eWcfvkE/jtN93WqpUqh5tv1hCMAmDPngxlsGyZts2bM/ZHRqpZKSpKfxB2kZx7CKqiyIroaH06+kZMRURApUqqMGrXViN/XFzGa/XqULRowclYQBw/rhlsFy3ShX6bN+uaop07z3SIlymToTRq1dKffaVKqlwqVdIWG+sOXeuoohCRSGADcCWQBCwBehlj1vgcczUwGFUULYHXjTEt/Tk3K/KtKNLTNexnxw6dLWzffvb7w4f12Pr1NSSxZ0+48MK8X9OH1FSdCu/Zc2bbu/fMz9u2qZheoqL0dx4draMcO2twNwWuKDITEXHmCCOrZ4QIVKigYUYVK0K5ctrKlj37vfe1dGkoVkwVjMscAsnJ+rvbtEmbV4Fs3qwBZlkNxESgfPkM5VGxorZSpbSVLJn9a4kS+qcqUiS4sxd/FEUw9V0LYJMxZotHmKlAV8D3Yd8V+MCotlooImVF5Dwgzo9zA0N6OmPqjuXU/iNw8CDGM6oy6J0xMRWhXB1M2fLQoCymbDnSa9UhvWJl0lOE9MkZg7H09LPfnzyp/2S+7cSJM1tyso5kDh06dxhfZKTuS0/X33HRovo+JSXjn7SQLNS1BJv09Oz/mSIjVZEcPAj79uk/pvdJ5u/AMypKn4BFi2okYEyMKpFixdRfUrSoHuPbvNfN3CIizmwi5/7slVMko2X32UOMCHWBut59NYALBK7QP9ffycXYc7Q4e4/q656jxdl7rLjnfTH2JhVnzbri7DtWjCMni5CcmrtHb5HIVIpGpZ3dIvW1ctmTzPg9LlffmRuCqSiqAjt9Piehs4acjqnq57kAiMgAYABAjRo1ci9lRARPbL6L4+nnCFtNBv70NAfxDvKios4cXRQr5pxMlsCTnppG5PEUHX27ibQ0bamp/tk5vccdPx582YJMBBDrafX8PCeVSI5SkqOU5Ailsnw9SklOUlRbmqedLJqxzadF7zgCh8sH7f8mmIoiq8lS5uHGuY7x51zdaMy7wLugpqfcCOhl594Y3npLp5Jw5uDCd4Dhu893kOP1D3oHLb7vo6L0Ye4dNMXEZAyWLJazSBeqJ+2EGh84LYmz+CqdzC2rfd7ptrdl9dk73feGDXub1zeT1WffVzjTj+O739+ZlOe4KKCsp2XNcU/zkwYNoOQN/h+fS4L5uEoCqvt8rgZkzip/rmOK+HFuwChfHoYNC9a3Wyy5IQJo67QQFssZBDOFxxKgjojUFJEiQE9gZqZjZgK3idIKOGSM+dPPcy0Wi8VSAARtRmGMSRWRQcAPaIjrBGPMahEZ6Nn/NvAdGvG0CZ1n9cvu3GDJarFYLJZzE1YL7kRkL7DdZ1MFYJ9D4gSTcO0XhG/fbL/cR7j2LXO/LjDGZLsOPawURWZEZGlO8cFuJFz7BeHbN9sv9xGufctLv2yacYvFYrFki1UUFovFYsmWcFcU7zotQJAI135B+PbN9st9hGvfct2vsPZRWCwWiyX/hPuMwmKxWCz5xCoKi8VisWRLWCoKEeksIutFZJOIPO60PIFERLaJyEoRSRSRECoQnjtEZIKI7BGRVT7byovIjyKy0fNazkkZ88o5+jZCRHZ57luiJ8W+qxCR6iLys4isFZHVIvKAZ7ur71s2/XL1PRORGBFZLCK/e/r1rGd7ru9X2Pko8lrLwi2IyDagmTHG1QuBROQy4CiaZr6hZ9tLwAFjzCiPgi9njHnMSTnzwjn6NgI4aox52UnZ8oOnBMB5xphlIlIKSACuB27Hxfctm37djIvvmacwXAljzFERiQbmAQ8AN5DL+xWOM4rTdTCMMacAby0LSwhhjPkFOJBpc1dgsuf9ZPTH6jrO0TfXY4z501uB0hhzBFiLlgRw9X3Lpl+uxihHPR+jPc2Qh/sVjoriXDUuwgUDzBaRBE8tjnCisicpJJ7XSg7LE2gGicgKj2nKVeaZzIhIHNAYWEQY3bdM/QKX3zMRiRSRRGAP8KMxJk/3KxwVhd+1LFxKW2NME+Aq4D6PmcMS+owDagHxaBmsVxyVJh+ISElgOjDEGHPYaXkCRRb9cv09M8akGWPi0VINLUSkYV6+JxwVhT91MFyLMeYPz+se4EvU1BYu7PbYi7124z0OyxMwjDG7PT/adOA9XHrfPLbu6cDHxpgvPJtdf9+y6le43DMAY8xBYA7QmTzcr3BUFGFby0JESnicbYhICaAjsCr7s1zFTKCv531fYIaDsgQU7w/TQzdceN88ztH3gbXGmFd9drn6vp2rX26/ZyJSUUTKet4XAzoA68jD/Qq7qCcATxjbf8ioZTHSWYkCg4hciM4iQGuJfOLWvonIFKA9mvJ4NzAc+Ar4DC1dvwO4yRjjOqfwOfrWHjVhGGAbcLfXTuwWROQS4FdgJeCtCfokas937X3Lpl+9cPE9E5FGqLM6Ep0UfGaMeU5EYsnl/QpLRWGxWCyWwBGOpieLxWKxBBCrKCwWi8WSLVZRWCwWiyVbrKKwWCwWS7ZYRWGxWCyWbLGKwmLxQUTifLO+hgoiMkdEmjkth6VwYhWFxRJkRCTKaRkslvxgFYWl0CIiD4nIKk8b4rMrSkQme5LBTROR4p7jR4nIGs/2lz3bKorIdBFZ4mltPdtHiMi7IjIb+EBEFolIA59rzxGRpp7V9hM85y4Xka6e/cVEZKrnWp8Cxc7Rh20i8qyILBOtU1I3OH8tS2HGKgpLoUREmgL9gJZAK6C/iDT27P4H8K4xphFwGLhXRMqjaRwaeLb/y3Ps68BrxpjmQHdgvM9lmgJdjTG3oOnub/Zc+zzgfGNMAvAU8D/P+f8ERnvSs9wDHPdca6Tnu87FPk+iyHHA0Dz/USyWc2AVhaWwcgnwpTHmmCdn/xfApZ59O40xv3nef+Q59jCQDIwXkRuA4579HYA3PamcZwKlvfm4gJnGmBOe958BN3ne3wx87nnfEXjcc/4cIAZNrXCZ59oYY1YAK7Lpizc5XwIQ51/3LRb/sbZTS2Elq3T0XjLntTHGmFQRaQFcgSaaHARcjg62WvsoBP1yEYBjPl+wS0T2e/Lv9ADu9pGjuzFmfRbn+5tf56TnNQ37m7YEATujsBRWfgGuF5HiHlNPNzQxHEANEWnted8LmOepVVDGGPMdMARNFgcwG1UaAIiId3tWTAUe9XzPSs+2H4DBngym+Ji/fgF6e7Y1BBrlrZsWS/6xisJSKPGUvpwELEazn443xiz37F4L9BWRFUB51PZfCvjGs20u8KDn2PuBZh6n8xpgYDaXnYbORj7z2fY8WqJyhScs93nP9nFASc/1HvXIabE4gs0ea7FYLJZssTMKi8VisWSLVRQWi8ViyRarKCwWi8WSLVZRWCwWiyVbrKKwWCwWS7ZYRWGxWCyWbLGKwmKxWCzZ8v9s3Az95hMrHwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define the hypotheses\n", "b = 10 # background of 10 events\n", "s_null = 0 # the null hypothesis: no signal, only background\n", "s_alt = 5 # the alternate hypothesis: \n", "\n", "# consider various values of the observed n (our discriminant)\n", "ns = np.arange(1, 30, 1)\n", "\n", "# Compute and plot the PDF values for the different n\n", "# (note that applying scipy.stats.poisson.pmf to a list of values automatically returns the list of PDF values)\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_null + b), color='r', label='null')\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_alt + b), color='b', label='alt')\n", "plt.xlabel('observed n')\n", "plt.ylabel('PDF')\n", "plt.legend();\n", "\n", "# A couple of plots illustrating different test configurations\n", "\n", "# First a loose test with a threshold at n=12 (i.e s=2)\n", "plt.figure()\n", "plt.subplot(211)\n", "threshold1 = 12\n", "lo1 = np.arange( 1, threshold1 + 1, 1)\n", "hi1 = np.arange(threshold1, 30, 1)\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_null + b), color='r', label='null')\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_alt + b), color='b', label='alt')\n", "plt.fill_between(hi1, scipy.stats.poisson.pmf(hi1, s_null + b), color='r', label='p-value')\n", "plt.fill_between(lo1, scipy.stats.poisson.pmf(lo1, s_alt + b), color='b', label='Type-II')\n", "plt.xlabel('observed n')\n", "plt.ylabel('PDF')\n", "plt.legend();\n", "\n", "# Now a more stringent test with a threshold at n=16 (i.e s=6)\n", "plt.subplot(212)\n", "threshold2 = 16\n", "lo2 = np.arange( 1, threshold2 + 1, 1)\n", "hi2 = np.arange(threshold2, 30, 1)\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_null + b), color='r', label='null')\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_alt + b), color='b', label='alt')\n", "plt.fill_between(hi2, scipy.stats.poisson.pmf(hi2, s_null + b), color='r', label='p-value')\n", "plt.fill_between(lo2, scipy.stats.poisson.pmf(lo2, s_alt + b), color='b', label='Type-II')\n", "plt.xlabel('observed n')\n", "plt.ylabel('PDF')\n", "plt.legend();\n", "\n", "# Now draw the ROC curve\n", "thresholds = np.arange(1, 30, 1)\n", "plt.figure()\n", "plt.plot(scipy.stats.poisson.sf(thresholds, s_alt + b), scipy.stats.poisson.cdf(thresholds, s_null + b), color='orange')\n", "plt.xlabel('1 - TypeII = Power')\n", "plt.ylabel('1 - pvalue')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The threshold for discovery in physics is often set at the $5\\sigma$ threshold, which corresponds to a p-value of about $3 \\cdot 10^{-7}$. What threshold would one use to get so small a Type-I error rate ?" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pvalue= 2.866515718791933e-07 threshold= 29.0 power= 0.0004184496683276901\n" ] } ], "source": [ "pfive = scipy.stats.norm.sf(5)\n", "threshold_five = scipy.stats.poisson.isf(pfive, s_null + b)\n", "print('pvalue=', pfive, 'threshold=', threshold_five, 'power=', scipy.stats.poisson.sf(threshold_five, s_alt + b))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So if we observe $n_{\\text{obs}} \\ge 29$, then we can indeed reject the null at with a p-value corresponding to a $5\\sigma$ threshold. This corresponds to testing for discovery: we reject the no-signal hypothesis in favor of an hypothesis with non-zero signal.\n", "\n", "However the power of the test is also very low, which means that even if the $s=5$ signal is there, we are very unlikely to observe an event count of $n_{\\text{obs}} \\ge 29$. he underlying problem that is causing this is the fact that the different between the alternate hypothesis $s=5$ and the null $s=0$ is quite small on the scale of the measurement uncertainties, so the two hypotheses are difficult to separate.\n", "\n", "If the alternate hypothesis was larger, say $20$ signal events, then things would be easier. The threshold for discovery would still be 29 events (this only depends on the null, not the alt), but now the power would be:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.52428301389368\n" ] } ], "source": [ "print(scipy.stats.poisson.sf(29, 20 + b))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "i.e. this means that if $s_{\\text{alt}} = 20$ is indeed true, then we have an approximately 50% chance of obtaining $n \\ge 29$ and therefore of making the discovery." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }