{ "cells": [ { "cell_type": "markdown", "id": "embedded-boundary", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "# FuncADL: Functional Analysis Description Language" ] }, { "cell_type": "markdown", "id": "76678f48", "metadata": {}, "source": [ "## Motivation" ] }, { "cell_type": "markdown", "id": "bdf62bc9", "metadata": {}, "source": [ "### Query languages\n", "\n", "Database management systems help to address, among other issues:\n", "\n", "- data independence\n", " - The concept that the physical schema of data (how the data is actually stored--file format, file location, storage medium) is independent from the logical schema (what is stored--floating point numbers representing the $p_T$ in GeV of each muon in each event). Therefore the way that you specify or *query* data should not be tied to any of the details of physical schema. In other words, the query should look exactly the same whether the data is in a ROOT file on the LHC computing grid or in a Parquet file stored on your local drive. This has certainly not been the case for most HEP software.\n", "- data redundancy\n", " - Storing multiple indpendent copies of the same data. We see this all the time in HEP, mainly due to file formats at different levels of event detail (original AODs vs. DAODs in ATLAS, MiniAODs vs. NanoAODs in CMS, etc.) Storage requirements increase linearly with more copies of data. In addition, the more independent copies that exist of data, the more complicated it becomes to make sure they all match. In a good database system, data may be *physically* backed up with multiple copies, but there is only ever one *logical* version of the data. When you execute a query, you're not making a brand new copy of the data that then has to be maintained; you just get a *view* of the data as stored in the database.\n", " \n", "A key aspect of database management is query languages, such as SQL." ] }, { "cell_type": "markdown", "id": "8444d027", "metadata": {}, "source": [ "### Functional languages\n", "\n", "Functional programming offers several desirable features for physics analyses:\n", " - Declarative: Effectively the code equivalent of \"independence\"--*what* the code does can and should be separated from *how* the system does it. Instead of explicitly telling the computer to loop over each event, to loop over each muon in the event, and then to access the $p_T$ for each muon, you can just *declare* what you actually want: the $p_T$ of all muons. The program executing this query is free to get this information however it chooses. Similar to a compiler, the execution engine can be designed to fully optimize the actual IO and computation necessary to perform the query. In this way, a physicist just running an analysis doesn't need to worry about caching or advanced CPU instructions to benefit from the advantages they can provide.\n", " - Stateless: Pure functional languages have no \"side effects\". Modifying a global variable is an example of a side effect; it changes the global state. If there is no state, the result of a particular function is always exactly the same, regardless of where it is in the code. Thus the operations performed by a function are truly independent from any other function that it doesn't call.\n", " - Lazy: As in lazy execution. A query is itself a well-defined object, simply containing instructions (a *function*) for what to do with data. You can pass around and compose queries before even having access to the data it will run on. A query isn't actually executed until necessary." ] }, { "cell_type": "markdown", "id": "13c0d56c", "metadata": {}, "source": [ "Both of these concepts (query languages and functional languages) lead to more modular code:\n", " - Insulate analysis code from data storage location and file format\n", " - Insulate each section of code from other parts of the code" ] }, { "cell_type": "markdown", "id": "ca665a99", "metadata": {}, "source": [ "FuncADL is a functional data query language using Python as a host language, based on [LINQ](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/), a collection of features built into C#." ] }, { "cell_type": "markdown", "id": "stuck-battle", "metadata": {}, "source": [ "## Module setup" ] }, { "cell_type": "markdown", "id": "b3228acb", "metadata": {}, "source": [ "I'll use standard Matplotlib to make plots:" ] }, { "cell_type": "code", "execution_count": 97, "id": "5b2a2f8e", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "plt.rcParams['figure.dpi'] = 200 # make figures bigger and more readable" ] }, { "cell_type": "markdown", "id": "01041d62", "metadata": {}, "source": [ "The object we need to run FuncADL locally is `UprootDataset`:" ] }, { "cell_type": "code", "execution_count": 98, "id": "practical-designer", "metadata": {}, "outputs": [], "source": [ "from func_adl_uproot import UprootDataset" ] }, { "cell_type": "markdown", "id": "91f8a79e", "metadata": {}, "source": [ "This explicitly tells FuncADL that we want to use the Uproot-based backend." ] }, { "cell_type": "markdown", "id": "received-tourism", "metadata": {}, "source": [ "## Dataset" ] }, { "cell_type": "markdown", "id": "28ee95c0", "metadata": {}, "source": [ "The dataset I use here is CMS open data converted to NanoAOD format, available via xrootd. `UprootDataset` expects a file location and a tree name:" ] }, { "cell_type": "code", "execution_count": 99, "id": "descending-asbestos", "metadata": {}, "outputs": [], "source": [ "ds = UprootDataset('Run2012B_SingleMu_10000.root', 'Events')" ] }, { "cell_type": "markdown", "id": "303fde7a", "metadata": {}, "source": [ "Now we have a dataset ready to run FuncADL queries on." ] }, { "cell_type": "markdown", "id": "2df5c538", "metadata": {}, "source": [ "## Writing queries" ] }, { "cell_type": "markdown", "id": "7c0f411b", "metadata": {}, "source": [ "In the rest of the notebook, I'll be introducing new query operators and then showing how they apply to some [benchmark tasks](https://github.com/iris-hep/adl-benchmarks-index) that have been developed by the HEP Software Foundation and IRIS-HEP to demonstrate the core functionality of different analysis description languages." ] }, { "cell_type": "markdown", "id": "abeca8fe", "metadata": {}, "source": [ "## Some basics" ] }, { "cell_type": "markdown", "id": "02e0d064", "metadata": {}, "source": [ "The most important thing to understand is that nearly everything in FuncADL is simply treated as a sequence of elements. Arrays are sequences of rows. For example, the dataset object is just a sequence of event objects. An event object is a dictionary containing all of the properties of the event, whose values either are primitive types like `int`s or `float`s or are sequences themselves. Thus almost all FuncADL operators expect to act on a sequence." ] }, { "cell_type": "markdown", "id": "8a345bc3", "metadata": {}, "source": [ "## Select\n", "\n", "The most common operator is `Select`. `Select` transforms each element of a sequence according to some predicate function and returns the sequence formed by all the tranformed elements. It's basically a generic `map()`.\n", "\n", "Visually, it does this:\n", "\n", "```\n", "[1, 2, 3].Select(lambda x: x + 1) -> [2, 3, 4]\n", "```\n", "\n", "This operator is all we need for the first benchmark task." ] }, { "cell_type": "markdown", "id": "civil-humanitarian", "metadata": {}, "source": [ "## Task 1: Plot the ETmiss of all events." ] }, { "cell_type": "markdown", "id": "2fe0efb4", "metadata": {}, "source": [ "MET is in the branch `MET_pt`." ] }, { "cell_type": "code", "execution_count": 100, "id": "amateur-ethics", "metadata": {}, "outputs": [], "source": [ "missing_ET_query = ds.Select(lambda event: event.MET_pt)" ] }, { "cell_type": "markdown", "id": "958b9465", "metadata": {}, "source": [ "This didn't actually do anything yet. FuncADL uses delayed execution, so the value won't be calculated until we run `.value()`:" ] }, { "cell_type": "code", "execution_count": 101, "id": "private-mentor", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 131 ms, sys: 0 ns, total: 131 ms\n", "Wall time: 128 ms\n" ] } ], "source": [ "%%time\n", "\n", "missing_ET = missing_ET_query.value()" ] }, { "cell_type": "markdown", "id": "1db43cfa", "metadata": {}, "source": [ "Now we've actually stored the result:" ] }, { "cell_type": "code", "execution_count": 102, "id": "dc966d5f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "missing_ET" ] }, { "cell_type": "markdown", "id": "b0c35415", "metadata": {}, "source": [ "And we can plot it:" ] }, { "cell_type": "code", "execution_count": 103, "id": "previous-compact", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist([missing_ET], bins=100, range=(0, 100))\n", "plt.xlabel(r'$E_\\mathrm{T}^\\mathrm{miss}$ [GeV]')\n", "plt.ylabel('Events')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "6a7528f2", "metadata": {}, "source": [ "## SelectMany" ] }, { "cell_type": "markdown", "id": "e935fd8f", "metadata": {}, "source": [ "`SelectMany` is an operator that starts by doing exactly the same thing as `Select`, but it assumes that each element in the sequence gets mapped to a sequence itself, and after performing the mapping, it concatenates all of these sequences.\n", "\n", "Visually:\n", "\n", "```\n", "[1, 2, 3].SelectMany(lambda x: [x - 1, x + 1]) -> [0, 2, 1, 3, 2, 4]\n", "```\n", "\n", "In the intermiate step, `SelectMany` forms the sequence `[0, 2], [1, 3], [2, 4]` and then concatenates all of these together.\n", "\n", "Often this operator is used when the elements were already sequences, so that we can just flatten an array:\n", "\n", "```\n", "[[1, 2], [3]].SelectMany(lambda s: s) -> [1, 2, 3]\n", "```\n", "\n", "`SelectMany` is the only operator needed for the second task." ] }, { "cell_type": "markdown", "id": "entitled-villa", "metadata": {}, "source": [ "## Task 2: Plot the pT of all jets." ] }, { "cell_type": "code", "execution_count": 104, "id": "fuzzy-eight", "metadata": {}, "outputs": [], "source": [ "jet_pT = ds.SelectMany(lambda event: event.Jet_pt).value()" ] }, { "cell_type": "code", "execution_count": 105, "id": "headed-compound", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "jet_pT" ] }, { "cell_type": "markdown", "id": "f0a5cf0c", "metadata": {}, "source": [ "Note the difference between the above result and the unflattened result we'd get from just `Select`:" ] }, { "cell_type": "code", "execution_count": 106, "id": "2014f8e4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds.Select(lambda event: event.Jet_pt).value()" ] }, { "cell_type": "markdown", "id": "df734aea", "metadata": {}, "source": [ "This is a sequence of sequences--a jagged array. In principle we could have used this for this particular task; we just would have needed to manually call `ak.flatten` on the array afterwards." ] }, { "cell_type": "markdown", "id": "4e0eb6fe", "metadata": {}, "source": [ "Now we can plot the `SelectMany` result:" ] }, { "cell_type": "code", "execution_count": 107, "id": "found-horizon", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist([jet_pT], bins=100, range=(0, 100))\n", "plt.xlabel(r'$p_\\mathrm{T}$ [GeV]')\n", "plt.ylabel('Jets')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "a61095d1", "metadata": {}, "source": [ "## Where" ] }, { "cell_type": "markdown", "id": "b23f81a3", "metadata": {}, "source": [ "With `Select` and `SelectMany`, we can already filter out event properties (branches) that we aren't interested in. But what if we want to filter out certain events or jets? We need to discard elements of a sequence to do this. This is done by the `Where` operator. `Where` applies a boolean-valued function to each element and discards that element if the function returned `False`.\n", "\n", "Visually, we have:\n", "```\n", "[1, -2, 3].Where(lambda x: x > 0) -> [1, 3]\n", "```" ] }, { "cell_type": "markdown", "id": "ffe586d3", "metadata": {}, "source": [ "## Zip" ] }, { "cell_type": "markdown", "id": "180725ac", "metadata": {}, "source": [ "When we start dealing with sequences within events (like jets) in more detail, we'll need to somehow wrap together multiple properties that correspond to the same physical objects. That way when we make a selection cut on jet `pT` for example, we'll be filtering the corresponding `eta`, `phi`, and `mass` values too. To do this, we use the `Zip` operator. `Zip` expects a sequence of sequences, and it will make a new sequence out of all the elements at each particular index of the sequences. In other words, it transposes the matrix formed by the input sequences.\n", "\n", "So this looks like:\n", "```\n", "[[1, 3, 5], [2, 4, 6]].Zip() -> [[1, 2], [3, 4], [5, 6]]\n", "```\n", "\n", "But usually this is actually done with a dictionary, which is just a special type of sequence:\n", "```\n", "{'a': [1, 3, 5], 'b': [2, 4, 6]}.Zip() -> [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}, {'a': 5, 'b': 6}]\n", "```\n", "\n", "In `awkward` language, this turns a record of arrays into an array of records.\n", "\n", "The next task requires looking a jet variable other than the one used for filtering, so we can use `Zip` here." ] }, { "cell_type": "markdown", "id": "isolated-arabic", "metadata": {}, "source": [ "## Task 3: Plot the pT of jets with |η| < 1." ] }, { "cell_type": "code", "execution_count": 108, "id": "polish-bradley", "metadata": {}, "outputs": [], "source": [ "filtered_jet_pT = ds.SelectMany(lambda event: {'pT': event.Jet_pt, 'eta': event.Jet_eta}.Zip()\n", " .Where(lambda jet: abs(jet.eta) < 1)\n", " .Select(lambda jet: jet.pT)).value()" ] }, { "cell_type": "markdown", "id": "b12307ce", "metadata": {}, "source": [ "Note that builtin functions like `abs` are allowed in queries." ] }, { "cell_type": "code", "execution_count": 109, "id": "sunset-miracle", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filtered_jet_pT" ] }, { "cell_type": "code", "execution_count": 110, "id": "enhanced-voluntary", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist([filtered_jet_pT], bins=100, range=(0, 100))\n", "plt.xlabel(r'$p_\\mathrm{T}$ [GeV]')\n", "plt.ylabel('Jets')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "0b34faff", "metadata": {}, "source": [ "## Count" ] }, { "cell_type": "markdown", "id": "5921e57d", "metadata": {}, "source": [ "Next we're going to need to filter based on a discrete number of objects passing some cut. `Count` is an operator that takes a sequence and just returns a scalar--the length of the sequence.\n", "\n", "```\n", "[0, 2, 5].Count() -> 3\n", "```" ] }, { "cell_type": "markdown", "id": "crude-blowing", "metadata": {}, "source": [ "## Task 4: Plot the ETmiss of events that have at least two jets with pT > 40 GeV." ] }, { "cell_type": "code", "execution_count": 111, "id": "nasty-memphis", "metadata": {}, "outputs": [], "source": [ "filtered_missing_ET_4 = ds.Where(lambda event: event.Jet_pt.Where(lambda pT: pT > 40).Count() >= 2)\\\n", " .Select(lambda event: event.MET_pt).value()" ] }, { "cell_type": "code", "execution_count": 112, "id": "polish-raising", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filtered_missing_ET_4" ] }, { "cell_type": "code", "execution_count": 113, "id": "conditional-proceeding", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist([filtered_missing_ET_4], bins=100, range=(0, 100))\n", "plt.xlabel(r'$E_\\mathrm{T}^\\mathrm{miss}$ [GeV]')\n", "plt.ylabel('Events')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "59ca692c", "metadata": {}, "source": [ "## Choose" ] }, { "cell_type": "markdown", "id": "f56c11da", "metadata": {}, "source": [ "Dealing with combinatorics is a common issue in HEP analyses. `Choose` is an operator that takes a sequence and produces all combinations of a given number of elements (think \"n choose k\" like $\\binom{n}{k}$).\n", "\n", "```\n", "[1, 2, 3].Choose(2) -> [[1, 2], [1, 3], [2, 3]]\n", "```" ] }, { "cell_type": "markdown", "id": "c64832c5", "metadata": {}, "source": [ "## ToFourMomenta" ] }, { "cell_type": "markdown", "id": "aafa6a18", "metadata": {}, "source": [ "Dealing with four-vectors is another nearly ubiquitous aspect of HEP analysis, but ntuples usually have the components of vectors in seperate `float` branches, rather than as four-vector objects. To accomodate this in `func_adl_uproot`, I've added a `ToFourMomenta` operator that uses scikit-hep/vector to create the vector objects and perform four-vector operations within FuncADL.\n", "\n", "```\n", "[{'pt': pt1, 'eta': eta1, 'phi': phi1', 'mass': mass1},\n", " {'pt': pt2, 'eta': eta2, 'phi': phi2', 'mass': mass2},\n", " ...].ToFourMomenta() -> [four_vector1, four_vector2, ...]\n", "```" ] }, { "cell_type": "markdown", "id": "ranking-lawyer", "metadata": {}, "source": [ "## Task 5: Plot the ETmiss of events that have an opposite-charge muon pair with an invariant mass between 60 and 120 GeV." ] }, { "cell_type": "code", "execution_count": 114, "id": "7205d6d9", "metadata": {}, "outputs": [], "source": [ "filtered_missing_ET_5 = ds.Where(lambda event: Zip({'p4': Zip({'pt': event.Muon_pt,\n", " 'eta': event.Muon_eta,\n", " 'phi': event.Muon_phi,\n", " 'mass': event.Muon_mass}).ToFourMomenta(),\n", " 'charge': event.Muon_charge})\n", " .Choose(2)\n", " .Where(lambda pair: pair[0].charge * pair[1].charge < 0)\n", " .Select(lambda pair: (pair[0].p4 + pair[1].p4).mass)\n", " .Where(lambda mass: 60 < mass and mass < 120)\n", " .Count() > 0\n", " ).Select(lambda event: event.MET_pt).value()" ] }, { "cell_type": "code", "execution_count": 115, "id": "fce70b57", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filtered_missing_ET_5" ] }, { "cell_type": "code", "execution_count": 116, "id": "c7812a97", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist([filtered_missing_ET_5], bins=100, range=(0, 100))\n", "plt.xlabel(r'$E_\\mathrm{T}^\\mathrm{miss}$ [GeV]')\n", "plt.ylabel('Events')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "a1b312a4", "metadata": {}, "source": [ "## OrderBy" ] }, { "cell_type": "markdown", "id": "af28ad63", "metadata": {}, "source": [ "Sorting can be accomplished with `OrderBy` or `OrderByDescending`. These operators use the provided function to calculate the key to sort elements by.\n", "\n", "```\n", "[3, 1, 2].OrderBy(lambda x: x) -> [1, 2, 3]\n", "[3, 1, 2].OrderBy(lambda x: -x) -> [3, 2, 1]\n", "[3, 1, 2].OrderByDescending(lambda x: x) -> [3, 2, 1]\n", "```" ] }, { "cell_type": "markdown", "id": "9ca7ad03", "metadata": {}, "source": [ "## First" ] }, { "cell_type": "markdown", "id": "3d7c0e68", "metadata": {}, "source": [ "`x.First()` is a synonym for `x[0]`. It just provides a more readable way to get the first element.\n", "\n", "```\n", "[1, 2, 3].First() -> 1\n", "```" ] }, { "cell_type": "markdown", "id": "8d16cfb1", "metadata": {}, "source": [ "## Task 6: For events with at least three jets, plot the $p_T$ of the trijet four-momentum that has the invariant mass closest to 172.5 GeV in each event." ] }, { "cell_type": "code", "execution_count": 117, "id": "f5228404", "metadata": {}, "outputs": [], "source": [ "best_trijet_pt_6 = ds.Where(lambda event: event.nJet >= 3)\\\n", " .Select(lambda event: {'pt': event.Jet_pt,\n", " 'eta': event.Jet_eta,\n", " 'phi': event.Jet_phi,\n", " 'mass': event.Jet_mass}.Zip().ToFourMomenta()\n", " .Choose(3)\n", " .Select(lambda triplet: triplet[0] + triplet[1] + triplet[2])\n", " .OrderBy(lambda trijet: abs(trijet.m - 172.5))\n", " .First()\n", " .Select(lambda best_trijet: best_trijet.pt)).value()" ] }, { "cell_type": "code", "execution_count": 118, "id": "7a99c05f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "best_trijet_pt_6" ] }, { "cell_type": "code", "execution_count": 119, "id": "62e719c4", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABCcAAALmCAYAAABxUf6PAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAB7CAAAewgFu0HU+AABMh0lEQVR4nO3de5hlV1kn/u8LTS6Ei0gIgQSmQ6ImKAqSMEEhARWNNAwX8cIwYARkUCcjeCGt4I+LzEwLOKJBBRQJKBdBA0E6GcERIkaQBFFQEgIhjblwCSKX3AlZvz/OrumdoqpOVVedWtVVn8/z1LPXPnvtdd7q2kn3+dbaa1drLQAAAAC93KZ3AQAAAMDWJpwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK62ZDhRVe+tqrbCr4ctMd4pVXVWVV1RVTcO27Oq6pT1+64AAABg/1Sttd41rLuqem+Sk1dwyi1J7t1au3LeOJXklUmescS5r07yzLYV/6ABAABgGbb1LqCTn0pyyJQ+903yp0P7/84PJgYvzt5g4sNJXpLk0iRHJ3lOkgcMx69O8rxV1gwAAACb0pacObEcVfUbmQQMSfLk1tqfzDt+TJKLMgl4LkxyUmvt+tHx2yc5L8nxSW5Ocmxr7dL1qB0AAAD2J8KJBVTVbZL8a5IjklyT5O6ttevm9fndJD877D64tfaBBcY5Mcn7h91XtNZOm0GtBya537B7dZKvr/V7AAAAwMhtk9xtaH+0tXbjagcUTiygqh6R5F3D7pmttZ+ad7ySXJ5JeHFxa+24Jca6OMm3Jbkik3Ur1vQPvKqOT3LBWo4JAAAAy3RCa+3C1Q6yJZ/WsQxPGbVfv8DxozIJJpLJrRtLmTt+ZJLtqysLAAAANp+tuiDmoqrqDkkeN+z+a5L3LtBtPFPi4ilDjo8fl+SyFdZz5JQut51rfPCDH8w97nGPlQwPAAAAK/KZz3wmD3rQg+Z2r16LMYUT3+hHsvdJHn+8yG0Y9xq1r5gy3uWLnLdcl0/vMnGPe9wjRx45LcsAAACANbMm6x66reMbTbulI0nuOGpfM2W8a0ftO+xTRQAAALCJmTkxMtxC8bBh9wOttUsW6XrQqH3TlGHHq5YevA9lTZttcXgsiAkAAMB+TDhxa/8le2eTvG6JfjeM2gdMGfPAUfv6lRbUWlvytpHJg0MAAABg/+W2jlt78rC9McmfLtHvq6P2tFs1Dhm1p90CAgAAAFuOcGJQVccnue+w+87W2r8v0X08m2HaCpTj2zKWvbglAAAAbBXCib3GC2EudUtHknxs1D52St/x8YtWVBEAAABsAcKJJFV1uyQ/MexeneTcKadcluSqoX3ylL4nDdsrk+zZl/oAAABgMxNOTPxwkrsN7Te21m5eqnNrrSU5e9g9tqpOXKjf8PrczImzh/MAAACAEeHExPiWjtcv85yXJ5kLMc6oqls9JnTYP2PYvXnoDwAAAMyz5cOJqrpLkkcNu//cWvuH5ZzXWrskycuG3eOTnF9VP15Vx1fVjyc5f3g9SV7aWvvEWtYNAAAAm8W23gVsAD+e5MChvdxZE3Oem+SwJE9N8oAkb16gz2uSPG+fqwMAAIBNbsvPnEjy5GH79SRvWMmJrbVbWmtPS7IjkzUorkpy07A9O8kjW2tPb63dsob1AgAAwKay5WdOtNa+dw3GOCfJOWtQDgAAAGw5Zk4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANDVtt4FANDH9p27p/bZs2vHOlQCAMBWZ+YEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoalvvAoD93/adu6f22bNrxzpUAgAA7I/MnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhqW+8CADaS7Tt3T+2zZ9eOdagEAAC2DjMnAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOJKmqQ6vqOVV1flV9tqpurKqrqurvq+qlVfXgZYxxSlWdVVVXDOdfMeyfsh7fAwAAAOyvtvUuoLeq+tEkv5/krvMO3WP4elCSb0ny2EXOrySvTPKMeYeOSPK4JI+rqlcneWZrra1d5QAAALA5bOlwoqqekuS1mcwg+XwmIcXfJvliksOTHJ3k0Um+tsQwL87eYOLDSV6S5NLh3OckecBw/Ookz1vzbwIAAAD2c1s2nKiq45K8OpNg4n1JHt1a+/ICXc+oqgMWGeOYTAKIJLkwyUmtteuH/Quq6h1JzktyfJLTq+q1rbVL1/L7AAAAgP3dVl5z4owkByb5QpLHLxJMJElaazctcujZ2RvwnDYKJubOuy7JacPutiTPWk3BAAAAsBltyXCiqo5N8v3D7itaa1/YhzEqyWOG3Ytbax9YqN/w+seH3ccO5wEAAACDLRlOJPnRUfutc42quktVfUtVzV8ccyFHZbLoZTK5dWMpc8ePTLJ9uUUCAADAVrBV15w4cdh+OclFVfWkTNaO+M65DlV1WZLXJfnN1to1C4xx3Kh98ZT3Gx8/Lsllyy20qo6c0uXw5Y4FAAAAG9FWDSfuO2z3ZLL2xM8t0OeoJC9I8oSq+qHW2lXzjt9r1L5iyvtdvsh5y3H59C4AAACw/9qq4cQ3D9tjk3xXki8l2ZnkrCRfSXK/JC9K8sNJviPJW6vqoa21W0Zj3HHUXmhmxdi1o/Yd9r1sYLW279zduwQAAGCerRpOHDJsD0zy9SQ/PG9Bywur6lFJ3plJQPE9SR6f5M9GfQ4atRd7msecG0ftg1dY67SZFocnuWCFYwIAAMCGsVXDiRuyN6B460JP2mit3VJVv5xJOJEkT8ytw4kbRu0DprzfgaP29Yv2WkBrbclbRjz8AwAAgP3dVn1ax1dH7XMX69Ra+5ckVw67JywxxrRbNQ4ZtafdAgIAAABbylYNJ8aLTC53McvD5r0+Pm/aEzXGt2ZY4BIAAABGtmo48S+j9m2n9J07fvO81z82ah87ZYzx8Yum9AUAAIAtZauGE38zah89pe99hu2V816/LMnc40VPnjLGSaMx9kwrDgAAALaSrRpOvCPJ14b24xfrVFUnJ7nrsPu+8bHWWkty9rB7bFWduMgYJ2bvzImzh/MAAACAwZYMJ1pr/5bkD4fdR1TVT8zvU1V3TPLy0UuvWmCol2fv7R5nVNWtHhM67J8x7N48bzwAAAAgWzScGDw/yb8O7T+uqjOq6uFV9cCqOjXJB5Pcfzj++621C+YP0Fq7JMnLht3jk5xfVT9eVcdX1Y8nOX94PUle2lr7xIy+FwAAANhvbetdQC+ttaur6pRMbvE4Jsl/G77m+6MkP7/EUM/N5EkeT03ygCRvXqDPa5I8b1UFAwAAwCa1lWdOpLV2USazI345yd8n+WKSmzJ5TOifJvm+1trTWmtfW2KMW1prT0uyI5M1KK4axrhq2H9ka+3prbVbZvm9AAAAwP5qy86cmNNauzaTWzNeNq3vlHHOSXLOmhQFAAAAW8iWnjkBAAAA9CecAAAAALoSTgAAAABdCScAAACArrb8gpjA+ti+c/eSx/fs2rFOlQAAABuNmRMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACArrb1LgAgSbbv3D21z55dO9ahEgAAYL2ZOQEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoalvvAoCNb/vO3b1L2FCm/Xns2bVjnSoBAIDNwcwJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACArrb1LgBgrWzfubt3CUmWV8eeXTvWoRIAANg/mDkBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Gpb7wIAlmv7zt29SwAAAGbAzAkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICutvUuAIDZ2L5zd+8SAABgWcycAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHS1rXcBALA/2L5z99Q+e3btWIdKAAA2HzMnAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAutqy4URVtWV+vXcZY51SVWdV1RVVdeOwPauqTlmHbwUAAAD2a9t6F7A/q6pK8sokz5h36Igkj0vyuKp6dZJnttbaetcHbF7bd+7uXQIAAKwZ4UTy+0l+b4nj1y5x7MXZG0x8OMlLklya5Ogkz0nygOH41Umet+pKAQAAYBMSTiSfb63980pPqqpjMgkgkuTCJCe11q4f9i+oqnckOS/J8UlOr6rXttYuXZOKAQAAYBPZsmtOrIFnZ2+4c9oomEiStNauS3LasLstybPWrzQAAADYfwgn9sGw1sRjht2LW2sfWKjf8PrHh93HDucBAAAAI8KJfXNUJoteJpNbN5Yyd/zIJNtnVRAAAADsr6w5kfxoVT0xyb2T3Jzks0n+LsmZrbX3LHLOcaP2xVPGHx8/LsllKymuqo6c0uXwlYwHAAAAG41wIrnvvP1jhq+nVNXbk5zaWvvyvD73GrWvmDL+5Yuct1yXT+8CAAAA+6+tHE5cl+QdSf5vJrMbrklytyQnJ3lmkrsmeWySs6vqEa21r43OveOofc2U9xk/ivQOq6wZAAAANp2tHE4c0Vr70gKvv7uqzkhybpIHZBJW/EyS3xn1OWjUvmnK+9w4ah+8D3VOm21xeJIL9mFcAAAA2BC2bDixSDAxd+xzVfWEJBclOSCTR4KOw4kbRu0DprzVgaP29Yv2WryWJW8b8QAQAAAA9nee1rGI1tqnkrx72D2mqu45OvzVUXvarRqHjNrTbgEBAACALUc4sbSPjdpHjNrj2QzTnqYxvi3D4pYAAAAwj3BiaYvdMzEOLY6dMsb4+EWrKwcAAAA2H+HE0saPGb1q1L5stH/ylDFOGrZXJtmzNmUBAADA5iGcWERV3SfJI4bdT7XWrpw71lprSc4edo+tqhMXGePE7J05cfZwHgAAADCyJcOJqnp0VS36pJKqunuSP0tyu+Gl312g28uT3Dy0z6iqWz0mdNg/Y9i9eegPAAAAzLNVHyV6RpLbVdWfJ3l/JrdbXJ/k0CQPS/LMJHcd+v5tFggnWmuXVNXLkuxMcnyS86vqN5JcmuToJKcnecDQ/aWttU/M6psBAACA/dlWDSeS5J5JThu+FvPnSZ7eWrtxkePPTXJYkqdmEkS8eYE+r0nyvFXUCQAAAJvaVg0nfjKThSwfnOQ+mcyYuFOSazJ53OffJXlda+39Sw3SWrslydOGGRjPSHLCMNYXklyQ5FWttXNn9U0AAADAZrAlw4nW2nlJzlvD8c5Jcs5ajQcAAABbyZZcEBMAAADYOIQTAAAAQFfCCQAAAKAr4QQAAADQ1ZZcEBOgt+07dy95fM+uHetUCQAA9GfmBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKCrbb0LAGZr+87dU/vs2bVjHSphM3J9AQCwFsycAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHS1rXcBALAetu/cveTxPbt2rFMlAADMZ+YEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV9t6FwDAN9q+c3fvEpJsnDoAANjczJwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdLWtdwEAbG3bd+6e2mfPrh3rUAkAAL2YOQEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANDVtt4FALC5bd+5e1O8BwAAs2PmBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+HEPFX1kqpqo6+HLeOcU6rqrKq6oqpuHLZnVdUps68YAAAA9m/CiZGq+q4kz15B/6qqVyU5N8njkhyR5IBh+7gk51bVq6qqZlEvAAAAbAbCiUFV3SbJHyTZluTzyzztxUmeMbQ/nOSJSR40bD88vP6MJL++dpUCAADA5iKc2Ou/JzkhycVJXjOtc1Udk+Q5w+6FSb63tfbm1toFrbU3J3nI8HqSnF5VR8+gZgAAANjvCSeSVNW9snd2w88kuWkZpz07k1kWSXJaa+368cHW2nVJTht2tyV51uorBQAAgM1HODHxe0nukOR1rbX3Tus8rCHxmGH34tbaBxbqN7z+8WH3sdaeAAAAgG+05cOJqvqxJI9K8sUkv7zM047KZNHLJDlvSt+540cm2b7S+gAAAGCz2za9y+ZVVd+U5LeH3dNba1cv89TjRu2Lp/QdHz8uyWXLfI8kSVUdOaXL4SsZDwAAADaaLR1OJHlJJh/u/y7LWARz5F6j9hVT+l6+yHnLdfn0LgAAALD/6hJOVNXtk/+3aORCx09L8mNJDs1kpsHvtdbeucY1PCTJ05PcnOSZrbW2gtPvOGpfM6XvtaP2HVbwHuzntu/cPbXPnl071qESAACAjW3dw4mqenSStyf5alXdq7X21XnH/yjJT87tJvnWJD9UVb/SWnvJGtVwQJJXD+P/Vmvtoysc4qBRe9qTPW4ctQ9e4fsk02dbHJ7kgn0YFwAAADaEHjMnfiiTUODtCwQTD0lyapKW5LoklyQ5NpMP9S+uqt2ttX9Zgxp+NZP1H/41yQv34fwbRu0DpvQ9cNS+ftFei2itLXnbiAeAAAAAsL/r8bSOEzMJH96zwLFnDNurkhzXWntgJuHE5Ulum+S/rvbNq+rYJL8y7J7WWrt2qf6LGIcq027VOGTUnnYLCAAAAGw5PWZOHDZsP7HAsVMyCS7OmJsx0Fq7vKrOyGTxypPX4P2fnclsh08luX1V/cQCfb5j1P6+qpp7IsZfDGHGeDbDtKdpjG/LsLglAAAAzNMjnLjbsL3VLIKqum8mC2C2JO+Yd86Fw3b7Grz/3G0W90nypmX0/7VR+6hMFrj82Oi1Y6ecPz5+0TLeDwAAALaUHrd1fH3YfvO81x86bK9urV0879i/D9uDsjFclsmtJ8n02RwnDdsrk+yZVUEAAACwv+oRTlw5bO8/7/UdmcyaeN8C59x52H5htW/eWju1tVZLfeXWi2Q+fHRszzBGS3L2cPzYqjpxofcaXp+bOXH2Ch9XCgAAAFtCj3DifZk8reO/VdWhSVJVJ2Sy3kSS/OUC5xw3bD87+/KW7eVJbh7aZ1TVrR4TOuyfMezePPQHAAAA5umx5sTvZfK40KOSfKqqLkly36GWLyb50wXO+b5MZlX84/qUOF1r7ZKqelmSnUmOT3J+Vf1GkkuTHJ3k9CQPGLq/tLW20AKgsGrbd+7uXQIAAMCqrHs40Vr7h6r65SQvzeQxnN89HPpakp9urY0f05mqunMmt3wkybvXrdDleW4mTx95aiZBxJsX6POaJM9bz6IAAABgf9Jj5kRaa79VVX+V5AlJDk/ymSRvaq19fIHuD0tywdD+q/WpcHlaa7ckeVpV/XmSZyQ5IZMnjnwhk5pf1Vo7t2OJAAAAsOF1CSeSpLX20SQfXUa/s7N38cl10Vp7QZIXrKD/OUnOmVU9AAAAsJmtezhRVfcemle21r6+ZOe959wmyZFJ0lr711nVBgAAAKy/HjMn9iS5Jcl3JvnYMs85KsknhvO6zfYAAAAA1l6PR4kmk0eJrud5AAAAwAbVK5xYqblQ4pauVQAAAABrbn8JJ+4xbL+6ZC8AAABgv9Nz/YY2rUNV3S7J0UmeO7y00KNGAQAAgP3YzMOJqlroiRyV5J+rVrSEREvyZ2tSFAAAALBhrMfMicUSiJUubvmWJC9fXSkAAADARrMe4cQL5+0/P5NZEK9M8vklzmtJbkjymSR/11q7dDblAQAAAD3NPJxord0qnKiq5w/N322tfWzW7w8AAABsbD0WxPypYXtFh/cGAAAANph1Dydaa69b7/cEAAAANq7b9C4AAAAA2Np63Nbx/1TVXZM8OMl9ktwxyW2nndNae9Gs64L1sn3n7iWP79m1Y50qAdbCtP+ml8N/9wDAVtQlnKiqw5L8VpIn7EMNwgkAAADYRNY9nKiquyT52yRHJ6n1fn8AAABgY+mx5sTOJMdkEky8K8kpSe6W5LattdtM++pQLwAAADBDPW7reEySlmR3a+0/dXh/AAAAYAPpMRPh3sP2dzu8NwAAALDB9Agnrhm2n+vw3gAAAMAG0yOc+Oiw/Q8d3hsAAADYYHqsOfGqJA9P8uQkZ3d4f1gT23fu7l3CmtlM3wvs76b997hn1451qgQAYP2s+8yJ1tpbkrwpyeOqaud6vz8AAACwsaz7zImqOinJH2ZyW8f/qKrHJ3ljkouTXDft/Nba38y2QgAAAGA99bit472ZPEp0zgOHr+Vo6VMzAAAAMCO9PuhXp/cFAAAANpge4cTDO7wnAAAAsEGtezjRWjtvvd8TAAAA2LjW/WkdAAAAAGPCCQAAAKCrrk++qKo7JXlCkgcnOTzJ7ZM8tbX26VGfeyb5piQ3tNY+1aNOAPravnP3pniP9TLte9mza8fM32Ot3gcA2Bq6hRNV9XNJ/keSO869lMmjQg+Z1/XkJG9IckNVHdla++L6VQkAAADMWpfbOqrqBUl+J8mdktyU5ENLdP/TJJ9JcmCSH5l5cQAAAMC6WvdwoqoekOTXht0/SXJ4a+1Bi/Vvrd2S5K2ZzKx4xOwrBAAAANZTj5kTp2USNLy/tfaU1tqXl3HO+4ft/WZXFgAAANBDj3Di5EzWlnjFCs7ZM2yPWPNqAAAAgK56hBP3GLYfX8E5Nw7bA9e4FgAAAKCzHuHETcP2dis4Zy7Q+NLalgIAAAD01iOcuGLYfvsKzvnBYfvJNa4FAAAA6Gxbh/f86yT3TfJTSV47rXNV3SfJ0zJZp+Ldsy0NADa27Tt39y4BAGDN9Zg58YokNyf53qp6wVIdq+r4JO9KcodM1p141cyrAwAAANbVuocTrbVLkvx6Jo8T/bWq+vuqes6oyylVdXpV/d8kf5/kqExmTexsrX1mvesFAAAAZqvHbR1prf16Vd0uya8mOSHJ8ZkEEEny0lHXGl5/UWvtd9a3SgAAAGA99LitI0nSWvv/kpyY5Kwk12cSRIy/vpbk3CQPba29sFedAAAAwGx1mTkxp7V2YZInVNW2TBbJPCzJbZP8W5J/aa1d37M+AAAAYPa6hhNzWms3J/lI7zoAAACA9bfut3VU1V3W+z0BAACAjavHzInPVNW5Sd6Y5B2ttRs71AD7he07d/cuAdiElvP/lj27dqxDJQAAEz0WxDwgyX9K8uYkn6+qP6qqH6iq6lALAAAA0FmPcOKVmSx4WUnumOQnk/xlkiur6jer6oEdagIAAAA6WfdworX2s0nukeRRmdzacV0mQcXhSZ6V5INVdXFVPa+qjl7v+gAAAID11WPmRFprX2+tndNa+y9J7p7kSUnOSfL1TIKKb03ywiSXVNX7q+rnqupuPWoFAAAAZqtLODHWWruutfam1tqjMplR8XNJ/m44XEn+Y5LfyeS2j3M6lQkAAADMSPdwYqy19m+ttd9vrT0kyX2SPDfJv2QSUmxL8kM96wMAAADWXo9HiS5La+3TVXVWktsnOSLJN/WtCAAAAJiFDRdOVNU9kjwxyX9O8oB5h29Y/4oAAACAWdoQ4URV3SnJEzJZGPOkTG43qeHwLUnek+QNSf68S4EAsMVs37m7dwkAwBbSLZyoqgMyeZzok5I8MskBc4eG7YczCSTe1Fr7zPpXCAAAAKyHdQ8nqur7MgkkHp/kTnMvD9s9Sd6Y5E9aaxevd20AAADA+usxc+KvkrTsDST+LclbkryhtfZ3i54FAAAAbEq9buu4Ick7Mrlt4/+01m7uVAcAAADQWY9w4tQkZ7XWrunw3gAAAMAGs+7hRGvt9ev9ngAAAMDGdZtZDl5V/3v4OmyR47etqntX1b2njHOfqvqHqvrQGtV1p6r6iar6zao6r6o+WVVfrqqbqurzVfXeqnpOVd11meOdUlVnVdUVVXXjsD2rqk5Zi3oBAABgM5v1zIlnZbL45R8m+fwCx49N8tEkt0yp5eAk9x/GWgsPSvKmRY7dLcnJw9cvV9V/aa395UIdq6qSvDLJM+YdOiLJ45I8rqpeneSZrbW1qh0AAAA2lV4LYs5X07usucuTvCfJh4b2ZzKZSXJkkidk8qjTQ5O8o6pOaK19ZIExXpy9wcSHk7wkyaVJjk7ynCQPGI5fneR5M/tOAAAAYD+2UcKJ9fae1tpSt5K8paoem+RtSQ5I8vwkPzLuUFXHZBJAJMmFSU5qrV0/7F9QVe9Icl6S45OcXlWvba1duobfAwAAAGwKM11zYqNqrX19GX3enuTiYfekBbo8O3vDndNGwcTc+dclOW3Y3ZbJLS4AAADAPFsynFiBa4ftQeMXh7UmHjPsXtxa+8BCJw+vf3zYfexwHgAAADAinFhEVR2XySKcyd4ZFHOOymTRy2Ry68ZS5o4fmWT7WtQGAAAAm4lwYqSqbl9V31JVv5DJYpm3HQ799ryux43a84OL+cbHj1u0FwAAAGxRW3VBzP+nqk5N8tolurwsyRvmvXavUfuKKW9x+SLnLUtVHTmly+ErHRMAAAA2ki0fTizhH5M8s7X29wscu+Oofc2Uca4dte+wD3VcPr0LAAAA7L/WK5z42ar6/AKvHzbXqKr/b4nzD1vi2Gq9PZNHgSbJwUmOTvJjSR6X5A1V9azW2jvnnTNeIPOmKePfOGofvIo6AYAV2r5z99Q+e3btmPn7rMV7AMBmtl7hxM8scawN2+evRyHf8OatfSnJl0YvXZDkzVX15CSvS3J2VT2ttXbmqM8No/YBU97iwFH7+kV7LW7arSCHZ1IzAAAA7JfWI5zYLx+f2Vr746p6VCazKF5RVWe31v59OPzVUddpt2ocMmpPuwVkoTqWXNPC00kBAADY3806nHj4jMeftbMzCScOSfLDSd44vD4ODKYtWDme+WD9CAAAAJhnpuFEa+28WY6/Dq4etf/DqP2xUfvYKWOMj1+06ooAAABgk7lN7wI2uCNG7fEtGZcluWponzxljJOG7ZVJ9qxNWQAAALB5CCeW9qOj9kfnGq21lsktH0lybFWduNDJw+tzMyfOHs4DAAAARrZkOFFVp1bVQVP6PDvJI4fdPUn+dl6Xlye5eWifUVW3ekzosH/GsHvz0B8AAACYZ70eJbrRvCDJb1bVn2cSOlyayW0bd0xyvyRPSvK9Q9+bkvx0a+3m8QCttUuq6mVJdiY5Psn5VfUbw1hHJzk9yQOG7i9trX1ipt8RAGxB23fu7l0CALAGtmo4kSTfnOSnh6/FXJHkqa21v1rk+HOTHJbkqZkEEW9eoM9rkjxvFXUCAADAprZVw4nvT/IDmTzq9Lgkd09y1yQ3JPlckn9M8s4kb2mtXbfYIK21W5I8bZiB8YwkJyQ5NMkXklyQ5FWttXNn920AAADA/m9LhhOttUszuf3iVWs03jlJzlmLsQAAAGCr2ZILYgIAAAAbh3ACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICutvUuAADYmrbv3L3k8T27dmypOgBgKzNzAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0NW23gUAAJvT9p27u56/v5n2/e7ZtWOdKgGA9WfmBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKCrbb0LgI1o+87dvUsAAADYMsycAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhqy4YTVfXdVfWrVXVuVV1eVTdW1TVVdUlVnVlVD13heKdU1VlVdcUw1hXD/imz+h4AAABgM9jWu4Aequq8JCctcOiAJN8yfP1kVf1xkqe31m5aYqxK8sokz5h36Igkj0vyuKp6dZJnttbaWtQPAAAAm8lWnTlxxLC9KslvJ3lCkgcleXCSX0hy5XD8yUnOnDLWi7M3mPhwkicOYz1x2M9w/NfXoG4AAADYdLbkzIkkFyf51SR/3lr7+rxjHxhmTJyf5FuTPLGqfr+19r75g1TVMUmeM+xemOSk1tr1w/4FVfWOJOclOT7J6VX12tbapTP4fgAAAGC/tSVnTrTWHtVae8sCwcTc8S8k+cXRS09YZKhnZ2/Ac9oomJgb57okpw2725I8a5+LBgAAgE1qS4YTy/TeUfvo+QeHtSYeM+xe3Fr7wEKDDK9/fNh97HAeAAAAMBBOLO6AUfuWBY4flb1rV5w3Zay540cm2b66sgAAAGBzEU4s7uRR++IFjh835XgWOX7cor0AAABgC9qqC2Iuqapuk2Tn6KW3LNDtXqP2FVOGvHyR85ZTy5FTuhy+kvEAAABgoxFOLOzZmTwONEne1lq7cIE+dxy1r5ky3rWj9h1WWMvl07sAAADA/ks4MU9VnZxk17D7+SQ/s0jXg0btm6YMe+OoffA+lgYAdLB95+7eJSRZXh17du1Yh0oAYO0JJ0aq6tuTvC2TP5cbk/xYa+1zi3S/YdQ+YJE+cw4cta9ftNfCpt0GcniSC1Y4JgAAAGwYwolBVR2V5F1J7pLk60me2Fpb6ikcXx21p92qccioPe0WkFtprS25noUnkwIAALC/87SOJFV1zyR/leSeSVqSp7bW3jbltHFoMG3RyvHsB2tIAAAAwMiWDyeq6tAk705yn+Gl01prr1/GqR8btY+d0nd8/KIVlAcAAACb3pYOJ6rqzkn+Msl9h5d2ttZ+d5mnX5bkqqF98pS+Jw3bK5PsWUmNAAAAsNlt2XCiqm6fZHeS7x5e+h+ttd9Y7vmttZbk7GH32Ko6cZH3OTF7Z06cPZwHAAAADLZkOFFVB2TyVI7vHV767dba8/ZhqJcnuXlon1FVt3pM6LB/xrB789AfAAAAGNmqT+t4U5IfHNp/neQ1VfUdS/S/qbV2yfwXW2uXVNXLkuxMcnyS86vqN5JcmuToJKcnecDQ/aWttU+s1TcAAOw/tu/c3bsEANjQtmo48fhR+/uSfGRK/08n2b7IsecmOSzJUzMJIt68QJ/XJNmXmRkAAACw6W3J2zrWUmvtltba05LsyGQNiquS3DRsz07yyNba01trt3QsEwAAADasLTlzorVWMxjznCTnrPW4AAAAsNmZOQEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV1vyaR0AAOzftu/cveTxPbt2rFMlAKwFMycAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC62ta7AFhr0557nnj2OQCb03L+DlyKvx8B6MXMCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBX23oXAD1s37m7dwkAsGVtpr+Hp30ve3btWKdKAPZvZk4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAutrWuwAAADaP7Tt39y5h2abVumfXjnWqBAAzJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALra1rsAAAA2hu07d0/ts2fXjnWoBICtxswJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBX23oXAAAAbHzbd+5e8vieXTvWqRJgMzJzAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoKstG05U1WFV9aiqelFVnVtVX6iqNnyduQ/jnVJVZ1XVFVV147A9q6pOmUH5AAAAsGls611AR59bi0GqqpK8Mskz5h06Isnjkjyuql6d5JmttbYW7wkA0Mv2nbt7l8A8y/mZ7Nm1Y9VjAMzSlp05Mc/lSd61j+e+OHuDiQ8neWKSBw3bDw+vPyPJr6+mQAAAANistvLMiRcluSDJBa21z1XV9iSXrWSAqjomyXOG3QuTnNRau37Yv6Cq3pHkvCTHJzm9ql7bWrt0TaoHAACATWLLzpxorT2/tfbO1tpqbu94dvYGPKeNgom597guyWnD7rYkz1rFewEAAMCmtGXDidUa1pp4zLB7cWvtAwv1G17/+LD72OE8AAAAYCCc2HdHZbLoZTK5dWMpc8ePTLJ9VgUBAADA/kg4se+OG7UvntJ3fPy4RXsBAADAFrSVF8RcrXuN2ldM6Xv5IudNVVVHTuly+ErGAwAAgI1GOLHv7jhqXzOl77Wj9h1W+D6XT+8CAAAA+y/hxL47aNS+aUrfG0ftg2dQCwAA+6HtO3dP7bNn1451qASgL+HEvrth1D5gSt8DR+3rF+21sGm3gRye5IIVjgkAAAAbhnBi33111J52q8Yho/a0W0BupbW25HoWnkwKAADA/s7TOvbdODSYtmjlePaDNSQAAABgRDix7z42ah87pe/4+EUzqAUAAAD2W8KJfXdZkquG9slT+p40bK9MsmdWBQEAAMD+SDixj1prLcnZw+6xVXXiQv2G1+dmTpw9nAcAAAAMhBOr8/IkNw/tM6rqVo8JHfbPGHZvHvoDAAAAI1v2aR1V9ZAkx4xeOnTUPqaqTh33b62dOX+M1tolVfWyJDuTHJ/k/Kr6jSSXJjk6yelJHjB0f2lr7RNr9g0AADBT23fu7l3CpjPtz3TPrh3rMgZry8+EtbBlw4kkT0/yk4sc+97ha+zMRfo+N8lhSZ6aSRDx5gX6vCbJ81ZeIgAAAGx+butYpdbaLa21pyXZkckaFFcluWnYnp3kka21p7fWbulYJgAAAGxYW3bmRGvt1CSnruF45yQ5Z63GAwAAgK3CzAkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAutqyT+tg49q+c3fvEgAA2KSW82/NPbt2rEMl002rdb3qXO2/z/enP3P6MXMCAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgq229CwAAAEiS7Tt39y5hWZZT555dO1Y9xnrYKHVMsxZ/5mxsZk4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAutrWuwAAANistu/c3buEJOtTx0b5XtfCZvpe2Gs5P9c9u3asQyUsxMwJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfbehcAAABrbfvO3b1LWDOb6XtZDxvlz2uj1AH7CzMnAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAutrWuwAAAABWbvvO3VP77Nm1Yx0q2RiW8+exHqbVsZV+Jith5gQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgq229CwAAAGA2tu/c3buEZdlf6lwLy/le9+zasQ6VbCxmTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZxYQ1V176p6WVVdVFXXVtUXq+qDVfVLVXX73vUBAADARrStdwGbRVXtSPKGJHcevXz7JCcMX0+vqke21j7Vo76NYvvO3b1LAAAAWJDPK/2YObEGquq7krwlk2DimiTPTfI9Sb4/yR8M3b4tye6qukOXIgEAAGCDMnNibbw8k1kSNyf5wdba+0fH/rqqPpHkJUmOTfILSV607hUCAADABmXmxCpV1QlJHjbsvmZeMDHnN5NcNLSfVVW3W4/aAAAAYH8gnFi9x47ar12oQ2vtliSvH3bvkr1hBgAAAGx5wonVe+iwvTbJh5bod96o/ZDZlQMAAAD7F2tOrN5xw/aTrbWbl+h38QLnTFVVR07pcsRc4zOf+cxyh+3m5q98oXcJAAAAG9oVV1zRu4Qlzfvsedu1GLNaa2sxzpZUVQcluX7Y3d1ae9SU/tckOSTJB1prD17me/gBAQAAsFGd0Fq7cLWDuK1jde44al+zjP7XDluPEwUAAICB2zpW56BR+6Zl9L9x2B68gve415TjB2TyiNLPJ7k6yddXMPZ6OjzJBUP7hCSf7VgLLMQ1ykbnGmWjc42y0blG2R/sL9fpbZPcbWh/dC0GFE6szg2j9gHL6H/gsL1+yV4jrbXl3Gz0qeWO10tVjXc/u8zvC9aNa5SNzjXKRucaZaNzjbI/2M+u00+v5WBu61idr47ay7lV45Bhu5xbQAAAAGBLEE6sQmvthiRzj59Y8qkaVXWX7A0nLp9lXQAAALA/EU6s3kXD9piqWuo2mWMXOAcAAAC2POHE6v3tsD0kyQOX6HfyqH3+7MoBAACA/YtwYvXePmr/1EIdquo2SZ4y7H4pyXtmWxIAAADsP4QTq9Ra+2CS9w27T6uqBy/Q7ReTHDe0f7u19rV1KQ4AAAD2Ax4lujZ+PpNbNQ5O8q6q+p+ZzI44OMlPJHnG0O+SJL/ZpUIAAADYoKq11ruGTaGqHp3kT5LcaZEulyTZ0Vr75PpVBQAAABufcGINVdV/yGQWxY5MHi16U5JPJnlrkle01q7rWB4AAABsSMIJAAAAoCsLYgIAAABdCScAAACAroQTAAAAQFfCCQAAAKAr4QQAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4wc1V176p6WVVdVFXXVtUXq+qDVfVLVXX73vWxOVXVd1fVr1bVuVV1eVXdWFXXVNUlVXVmVT10heOdUlVnVdUVw1hXDPunzOp7YGuqqpdUVRt9PWwZ57g+mamqOrSqnlNV51fVZ4fr7Kqq+vuqemlVPXgZY7hOmYmqOqCqnlZV/6eqPjP6O//jVfVHVXXiMsdxjbJsVXVYVT2qql40/HvzC6O/u8/ch/FWff1V1e2r6peHz1pfHP47uGj4LHbvlda03qq11rsGNrGq2pHkDUnuvEiXjyd5ZGvtU+tXFZtdVZ2X5KRldP3jJE9vrd20xFiV5JVJnrHEOK9O8szmf6isUlV9V5ILk2wbvfzw1tp7F+nv+mTmqupHk/x+krsu0e3s1tpjFznfdcrMVNW9kuxOcr8pXX8ryS8udI25RtkXVbXUtfC61tqpyxxnTa6/qjo6k/8Wvm2RLl9O8p9ba+csp64ezJxgZoZ/ZL8lk2DimiTPTfI9Sb4/yR8M3b4tye6qukOXItmsjhi2VyX57SRPSPKgJA9O8gtJrhyOPznJmVPGenH2/mXx4SRPHMZ64rCf4fivr0HdbGFVdZtM/t+4Lcnnl3ma65OZqqqnJHlzJsHE55O8MMkjkjwwyY4k/z3Ju5N8bYlhXKfMRFVty62DiY8kOTWTv+9/MMmLklw7HHt2kl9aZCjXKKt1eZJ37eO5q77+hs9S78zeYOIPMvnM9T2ZfAa7JpPPZG+tqu/cxzpnzswJZqaq3pPkYUluTnJSa+39847/cpKXDLvPb629aH0rZLOqqncmeX2SP2+tfX2B44cmOT/Jtw4vndRae98C/Y5JclEmHxYvHPpdPzp++yTnJTk+k+v82NbapWv87bBFVNWzMvnN3sVJ3pbkV4ZDC86ccH0ya1V1XCb/MD4wyfuSPLq19uVF+h6w0Cw01ymzVFU/kuTPht33J3no/L/3q+qBw7HbJfn3JIe11m4eHXeNsk+q6oVJLkhyQWvtc1W1Pcllw+FlzZxYq+uvql6Q5PnD7nNaay+dd/zBSf5meJ/3tNa+b/nf6foxc4KZqKoTMgkmkuQ184OJwW9m8h9jkjyrqm63HrWx+bXWHtVae8tCwcRw/AtJfnH00hMWGerZ2Tu9/rTxXxbDONclOW3Y3ZbkWftcNFvaMC157jciP5Nk0VuNRlyfzNoZmQQTX0jy+MWCiSRZ4vY41ymz9L2j9v9a6O/91tqHMvmNcpLcJcmx87q4RtknrbXnt9be2Vr73CqGWfX1N3yG+vlh96JMPmPNr/X9SV4z7D58CO02HOEEs/LYUfu1C3Vord2SyW+3k8lfFg+bbUlwK+8dtY+ef3C4/+8xw+7FrbUPLDTI8PrHh93HDufBSv1ekjtk8puW907r7Ppk1qrq2EymBCfJK4ZQd6VjuE6ZtQNG7aXWLxv/pvnAuYZrlJ7W8Pp7WJJvGtqvGz5jLeTMUfvxK613PQgnmJW5JyFcm+RDS/Q7b9R+yOzKgW8w/gfNQv8TPyp71644b4HjY3PHj0yyfXVlsdVU1Y8leVSSLyb55WWe5vpk1n501H7rXKOq7lJV31JVSy2OOcd1yqxdMmrfZ4l+c7+EaEk+MXrdNUpPa3X9PXSBfgu5MHvXYNmQn7uEE8zKccP2k+P7+hZw8QLnwHo4edS+eIHjx005nkWOu45Ztqr6pkwWbU2S01trVy/zVNcnszb36MUvJ7moqp5UVf+USYh2SZIvVNWnqur5Syxq7Tpl1t6U5CtD+/Squu38DlX1gEwWb02SN7fWvjI67Bqlp7W6/pY1zvCZbG4W0Ya8hoUTrLmqOijJocPuFUv1ba39e/YmePeaZV0wZ3gqws7RS29ZoNv4elzyOs5kheaFzoNpXpLk8CR/l733gi6H65NZu++w3ZPJ2hN/kmT+Cu9HJXlBkvdX1T0XGMN1ykwNge6pSa7PZP2JC6rqKVV1YlX9QFU9P5PfJB+Q5B8zeWLXmGuUntbq+pvbv7a19qVljnO3qjpwyZ4dCCeYhTuO2tcso/9cOOFxoqyXZ2fyiKYkeVtr7cIF+qzkOr521HYdsyxV9ZAkT89k9e0ln12+ANcns/bNw/bYJD+X5EtJnpnksCQHJTkhyblDn+/I5PF08/9d6Tpl5lprb8vkSQavSXL/JK/L5Okc784kPLsuk1DiIa21z8473TVKT2t1/c2Ns5LPXQuN051wglk4aNRezorzNw7bg2dQC9xKVZ2cZNew+/lMnoywkJVcxzeO2q5jpqqqA5K8Okkl+a3W2kdXOITrk1k7ZNgemOTrSX64tfaq1trVrbUbh1D3UdkbUHxPvnGBNdcpMzc8qeA/J3l0Jv9Pne/uSZ6YhRded43S01pdf3PjrORz10LjdCecYBZuGLUPWLTXXnNTiq5fshesUlV9e5K3ZfIophuT/NgSj39ayXU8nhbnOmY5fjWT+z3/NckL9+F81yezNr7G3rrQKvLDivDjRVyfuMQYrlPWXFUdkuSvkjw3yV0zuVXuuEyupzsn+cEkf5vJTJ+/qKqfnzeEa5Se1ur6mxtnJZ+7FhqnO+EEs/DVUXs504XmfjuznKlIsE+q6qgk78rksbVfT/LE1tpSKxqv5Do+ZNR2HbOk4RGNvzLsntZau3ap/otwfTJr42vs3MU6tdb+JcmVw+4JS4zhOmUWXpjkpKH9tNba6a21i1trN7XWvtJae3eShyd5TyazKv53VY3XTnGN0tNaXX9z46zkc9dC43S3rXcBbD6ttRuq6guZLIp55FJ9q+ou2fsfyeVL9YV9NSzU9ldJ7pnJY8SeOtyjupTxwkRLXse59cJErmOmeXYmv934VJLbV9VPLNDnO0bt76uqw4f2XwxhhuuTWbs8k8Vak+Ut1HZEJutRjLlOmZmqqiQ/Nexe0lp73UL9Wms3V9WvZTKD4jbDOc8eDrtG6Wmtrr8rkvzHJIdU1TdNWRRzbpyrW2s3LtGvC+EEs3JRJs/cPaaqti3xONFj550Da6qqDs1kUay555+f1lp7/TJO/diofeyivb7xuOuYaeamVN4nk8fgTfNro/ZRmSxm5fpk1v4le2dCfMPjGeeZOz7/73rXKbN09+xduPXDU/p+aNQeX2uuUXpaq+vvY0l+ZNTvG27DS5Kq2pbk6EXG2BDc1sGs/O2wPSTJA5fod/Koff7symErqqo7J/nL7H0k3s7W2u8u8/TLklw1tE9eqmP2Tim9MpPH7sGsuT6Ztb8ZtY9etNfEXPh75bzXXafM0jgMm/YL19stcp5rlJ7W6vr721F7qXGOz94Z6xvyc5dwgll5+6j9Uwt1GB459pRh90uZ3A8Ia6Kqbp9kd5LvHl76H62131ju+cNjHc8edo+tqhMXeZ8TszfNPnuFj4NkC2qtndpaq6W+cutFMh8+OrZnGMP1yay9I8nXhvb8p3D8P8MTkO467L5vfMx1yox9MclXhvaDh98KL2b8ge2yuYZrlJ7W8Pp7b5IvD+2fHG55Wsipo/a025u7EE4wE621D2bvP1KeVlUPXqDbL2ayonKS/HZr7WsL9IEVGx7T+LYk3zu89Nutteftw1Avz97fsJxRVbd65NKwf8awe/PQH9bLy+P6ZEZaa/+W5A+H3UcstDZKVd0xt76uXrXAUC+P65QZGJ4Ws3vYvWcmT+z4BsP6ZuNfTrxzXpeXxzVKPy/PKq+/1tpNSX5n2D0uyS/N7zN8FnvasHtea+2C1RY+CyX4Y1aq6gGZTBk6OJPVYP9nJrMjDk7yE0meMXS9JMnxrbWvLjQOrFRV/Xn2/qbvr5M8K5OFMBdzU2vtkkXG+l9Jdg67H87kHziXZjLN+fQkDxiO/a/W2q+urnKYqKoXJHn+sPvw1tp7F+nn+mRmqupuSS5Mcu9M/lH8yiRnZfLb6vtlco3N/Tbv91trP7vIOK5TZmJ4+tGHktx+eOkvkrwukwWHD0pyYib/Brj3cPz/ttZ+YIFxXKOsWFU9JMkxo5cOTfLSoX1+9ga8SZLW2pmLjLPq628Iiy9M8q3DS69O8uZMHhf68EweYX6HYf97Wmv/uIxvcd0JJ5ipqnp0kj9JcqdFulySZEdr7ZPrVxWbXVWt9H9sn26tbV9krNsk+YMkT13i/NckecbwWxxYtRWEE65PZqqqjsvkFo9jluj2R0meudgMSNcps1RVP5DJ4sKHTun610me0Fr79wXGcI2yYlV1ZpKfXG7/4bbNhcZZk+uvqo5Jck6Sb1mky1eSPKm1Nn/20IYhnGDmquo/JPn5JDsyeUzOTUk+meStSV7RWruuY3lsQmsZTozGfGQms31OyOQfQF9IckGSV7XWzt2XOmExyw0nRv1dn8xMVR2S5GeSPCGTf/TeIcnnM/nN4Ktaa8taM8p1yqxU1V0zmbL+w0m+Pck3ZTLb57OZXGNvTPKOaWtFuEZZibUKJ0bjrfr6G/5//XNJfjSTUPmATB49ek4mtzl/ern19iCcAAAAALqyICYAAADQlXACAAAA6Eo4AQAAAHQlnAAAAAC6Ek4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAIAtpKpOrao2fG1f6XGWr6rOHP1ZNn+uSVU9bJE/kxf0rg2AvoQTALDOqmr7Ih/QVvTV+/tgdqrqNlX12Kr6/ar6p6r6XFXdVFVfqapPVdXZVbWzqr51hjW8anS9PXyF537/6NxXzKpGADYP4QQAsK624OyMq5Lcb/R15VKdq+qRSf4lyduSPDPJdyY5LMntktwxyVFJ/lOS/5Xk41X13qr6nhnU/fpR+8krPPe/jNp/PGpfkFv/WQBAkqRa84sXAFhPVXW7JN+2RJe/THLPTD7U/tBinVpr/7zGpa2Lqjo1yWuH3aNaa3v6VTM7VXVmkp9M8unW2vZlnnN6JqFDDS+dn+Qvknw4yb8lOSjJ3ZN8b5Id2Xsd/WVr7ZS1qn1UzyeTHJ3kq0nu3lq7fhnnHJzkc5kEKR9vrR27RN+5f4i+sLX2gtVXDMD+alvvAgBgq2mtfS3JosFCVX1taH5tfw0gWLmqekqSXcPuF5I8qbX2rkW6n1VVv5Tk0ZmEGbPy+iQvzCRoeEySNy/jnMcO/ZNbz5oAgEW5rQMAoLOqOiLJK4fda5OctEQwkSRpE+9I8sAkr5lRaX+cZG52w3Jv7Zjr15L8yZpXBMCmJJwAgP1cVb1gvEhmVd25qn6tqj5cVV8ajp06HFuTp3VU1YOq6g+q6pKquqaqrq2qi6vqd6vqWxY552FDja8dvXzZAot9PmyF3//dR+f+16q6U1U9t6rOr6qrh4Uk/3VYXPLwlYy9jn4hycFD+3mttYuWe2Jr7YbW2lun9duXn1lr7bIkfzvs/mBVHTblPe6e5BHD7nmttU8v9/sAYGtzWwcAbCLDh8x3Jdk+o/G3JfmdJD+zwOFvG75+uqp+rrX2B7OoYQH3H7Vbkk9ksoDk2L0yWVzykVX14NbaVetU21RVVUmeMuxekzWeBbEGP7PXJ3loJv9ufGKS317i7Z6Yvf++fP0S/QDgVsycAIDN5c+SHJHkjEx+g318Jh8YP75G478mez/knpvJUxkelOSEJD+dyVMmbpfk1VX16Hnnzj2p4Xmj134ot356w/2Gfitx/1H7ZZkEE2/NZI2EByb58SQfGY7fO8lvrXD8Wfv2JIcO7fe11r66xuOv5meWJG9JMrcQ5rRbO+aOX5fJtQgAy2LmBABsLt+R5JTW2rtHr31oLQauqh/J3t/w/3Rr7Q/ndbmwqv4kye4k35fkd6rq3NbazUnSWrs2yT9X1fGjcy5Zg6d1fNeofXCSH5t3m8M/VNW5mcyouHuSx1fVN7XWvrTK910r3zlq/8NaDrzan1mStNa+UlVnJ/mJJA+squMWuu2kqu6b5LuH3bfPIGQBYBMzcwIANpcz5wUTa+lXhu3bFviQm2Sy/kGS/zbsbk/ysBnVMnb/Ufs5C62/MHxQfsWwuy3JA9ahruU6dNS+eqmOVfXtVfUdi3wdssApa/UzG9+isdjsifHrbukAYEWEEwCwubxhFoMOT5N44LD7lqX6Dr9V/8Kw++BZ1DOq66Ak3zrsfiyTtRUWM34s66GL9lp/dxy1r5nS95+SfHSRrxPGHdf4Z/auJJ8Z2k8a1skYv1cledKw+5kkfzXl+wCAWxFOAMDm8pHpXfbJ+FaMNy3whI1bfWXvh/9ZPx3jfkluO7Rf2Vr7+hJ9/33Uvi5Jpn0fC3xfszC+/WGh2Q/7as1+ZsOf6xuH3XsnOXlel4dlsuhokrxxys8BAL6BNScAYHP59+ld9smSj5Bcwu3XtIpvNF5v4h1T+o4/dH9u2L5wgX7PT/LlJC/f97JW5N9G7bst1bG1dqt/u1XVCzKpdyFr/TN7XZJfHNpPTvLe0TG3dACwKsIJANhEZvgb69uO2k/K8mdozCosmXP/YfuF1tqnp/Q9cdjemOSiJGmtvWB+p6p6fpIvLXRsRv5p1P7uRXut3Jr+zFprH62qf8okEHpCVf231tr1VXVwkh8Zuv1Ta21Ws3cA2MSEEwDAcox/u99aa/+8aM/1NTdz4nNLdRrWRHjUsPs3w5NDNop/yeTP965JHlpVh6xRfbP4mb0uyf9Ocqck/ynJn2byyNY7DcfNmgBgn1hzAgBYjg+P2j+4yrHWZO2GIXCYewzntNtHHpHkmKH9urV4/7XSWmvZ+6H+jklOXaOh1/JnNueNSeYeM/rkedvxuhQAsCLCCQBgqtbaJzN5GkaS/ERV3XsVw90wah+4inGOyt7f2N+rqu6wUKeqOiDJS4fdjyd50yrec1b+d5Lrh/b/rKpjluq8HGv8M5sb83OZPLkjSX6oqr4je4OPd7XWPrva9wBgaxJOAADL9eJhe1CSs6pq0cUbq+rAqvrZ4VGf831m1D56FfWMF8Pclr2LNd6qjiRnZjLD4utJfqa1dssq3nMmWmtXJPm5YfdOSd5XVQ9bxql3mXJ8rX5mY3MzT7YleXP23ibslg4A9pk1JwCAZWmtvamqfijJTyZ5YJKPVdWrkpyX5OpMHoN5dJKHJnl8km/Owh9YP5zJ7ImDkvx6Vd2cZE+SudDgytba9QucN9/9h+0Xk3wpyQuq6h5J3p7Joo73T3Jakm8f+j2vtfaeZX2zHbTWXltVRyR5USZPFnlPVf1NJk8h+Ugma0hUJk/h+K4kj0vyoNEQ3/BntoY/s7F3ZPLn/U3Z+2f7lSRnr+gbBoAR4QQAsBJPy2TxyV9McmiS5w5fC7k2k9kKt9Ja+2pV/U6S52TydIq/nNfl4bn1YyoXMzdz4iNJ/meSv0jyX4evsZuT/Gpr7aXZ4FprLx6eiPGbSb4lyUnD11LOT3J6a+3vFzm+6p/ZvBpvqKq3Jvnp0ctvXWagBAALclsHALBsrbWvt9ZOT3LfTD5AfziTWQpfT/LVTJ488YZMflN/jyU+sO7M5MPt+zKZ+bAvj0C9/7D9SGvt3Zn89v9tmXwQvzHJZUleleR++0MwMae19hdJjstkJsOrk3w0k1kON2fyZ/zpJOckeUGSb2+tPaS1dv4S463Vz2xs/qKibukAYFVqskA0AEBSVU9N8pph917DWggbTlXdOZNbC5Lkp1trf7iGY7ckn26tbV/lOGdm8oF/1WNtVsOfdZK8sLX2gp61ANCX2zoAgLE7jdpf7lbFdPcftT/aq4hlut3wVIs5H2+tfa1bNR1V1SGZPGUFAG5FOAEAjN1/2H62tfbVnoVMMbfeRMvktoSN7J65dYByVCYLgG5FJyTZsIuSAtCPcAIAtriqOizJfZI8LMkTh5fP7VbQ8tx/2H6qtXZNz0IAgNWz5gQAbHFV9YIkzx+99KUkD2ytfapLQctQVR/K5Ekfb2+tPa53PQDA6nhaBwCQJLdk8pSLNyd58AYPJrYl+fZhd6OvNwEALIOZEwAAAEBXZk4AAAAAXQknAAAAgK6EEwAAAEBXwgkAAACgK+EEAAAA0JVwAgAAAOhKOAEAAAB0JZwAAAAAuhJOAAAAAF0JJwAAAICuhBMAAABAV8IJAAAAoCvhBAAAANCVcAIAAADoSjgBAAAAdCWcAAAAALoSTgAAAABdCScAAACAroQTAAAAQFfCCQAAAKCr/x9aQvF3Zqp5UwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(best_trijet_pt_6, bins=100, range=(0, 100))\n", "plt.xlabel(r'Trijet $p_\\mathrm{T}$ [GeV]')\n", "plt.ylabel('Events')\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.4" } }, "nbformat": 4, "nbformat_minor": 5 }