{ "cells": [ { "cell_type": "markdown", "id": "3737cf93-28b1-43f2-bd09-e08d448d6fc6", "metadata": {}, "source": [ "# Machine Learning Potentials\n", "\n", "Machine Learning Interatomic Potentials (MLIPs) are an increasingly popular method of simulating molecular systems. In both speed and accuracy, they are intermediate between classical force fields on one hand and high level quantum chemistry methods on the other. The [OpenMM-ML](https://github.com/openmm/openmm-ml) package provides a simple, easy to use interface for using them in OpenMM.\n", "\n", "MLIPs cover a large class of models. They begin with some type of machine learning model, typically a neural network, often supplemented with standard physics based interactions. The parameters of the model are trained to reproduce a large library of forces and energies, which are typically generated with a highly accurate quantum chemistry method. The resulting model can approach the accuracy of the original method while being many times faster. Some MLIPs are specific to just one molecule, while others are trained to cover large areas of chemical space and be applicable to arbitrary systems with no further training. The latter are often known as \"foundation models\". OpenMM-ML supports both types of models. This tutorial focuses on foundation models, which are much easier to use and more widely useful. Specialized models usually require you to train your own model for whatever system you want to simulate, a much larger task than just selecting a pre-trained, ready to use model. The tradeoff is that a specialized model for one specific molecule can be much smaller and faster than a general purpose model of similar accuracy.\n", "\n", "While the details vary, a good rule of thumb is that MLIPs are about 1000 times slower than classical force fields, but about 1000 times faster than high level quantum chemistry methods. That might change in the future, but they are unlikely to replace force fields any time soon. They are mostly useful for relatively small systems, or small pieces of larger systems. When used in that way, they enable simulations that would be impossibly slow with conventional quantum mechanical methods.\n", "\n", "## Installing Models\n", "\n", "OpenMM-ML provides a common interface for working with many different models, but it does not provide the models itself. They must be installed separately using whatever method the model developer has chosen. Unfortunately, the ecosystem of MLIPs is still very immature and inconsistent. Some models are installed with `pip`, some with `conda`, and some must be downloaded directly from the developer's website. Some require you to install a Python package, and also to download a file containing model parameters from a different source. The packages implementing MLIPs tend to depend on many other packages, and often they require specific versions of those packages that make them incompatible with each other.\n", "\n", "Perhaps this situation will improve with time. For now, it is best to create a separate Python environment for ML simulations, or possibly multiple environments for different MLIPs you want to use.\n", "\n", "For this tutorial, we will use the [AIMNet2](https://github.com/isayevlab/aimnetcentral) potential. The following commands create an environment that can run simulations with this potential. We also install MDAnalysis, which is not needed to run simulations but is used in this tutorial for analyzing results.\n", "\n", "```\n", "conda create --name aimnet2 python=3.12\n", "conda activate aimnet2\n", "pip install git+https://github.com/isayevlab/aimnetcentral.git\n", "pip install openmmtorch[cuda12] openmmml mdanalysis\n", "```\n", "\n", "## Running ML Simulations\n", "\n", "With that out of the way, let's try simulating something. First we import libraries that will be used during the simulation." ] }, { "cell_type": "code", "execution_count": 1, "id": "b597487c-5623-417b-b843-200a3d8d8651", "metadata": {}, "outputs": [], "source": [ "from openmm import *\n", "from openmm.app import *\n", "from openmm.unit import *\n", "from openmmml import MLPotential\n", "import MDAnalysis as mda\n", "from MDAnalysis.analysis.dihedrals import Ramachandran\n", "import sys\n", "import logging\n", "\n", "logging.basicConfig(level=logging.ERROR)" ] }, { "cell_type": "markdown", "id": "5f4faeb6-1a93-4972-8bc8-5c45ac233938", "metadata": {}, "source": [ "As an example, let's simulate alanine dipeptide in vacuum. We can load the model from a PDB file." ] }, { "cell_type": "code", "execution_count": 2, "id": "b48e3a73-dee9-43f2-a9a1-d2dfff506d17", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "pdb = PDBFile('alanine-dipeptide.pdb')\n", "print(pdb.topology)" ] }, { "cell_type": "markdown", "id": "b9291352-760a-4ce3-afd8-63a3b3d3ddc2", "metadata": {}, "source": [ "Now create a System for it." ] }, { "cell_type": "code", "execution_count": 3, "id": "9cee11fd-4dbb-4460-b7b4-63ce8d750277", "metadata": {}, "outputs": [], "source": [ "potential = MLPotential('aimnet2')\n", "system = potential.createSystem(pdb.topology)" ] }, { "cell_type": "markdown", "id": "37bcdabb-d4f0-49a1-8ffa-a9d23cd790a1", "metadata": {}, "source": [ "That's all there is to it! MLPotential plays the same role in ML simulations that ForceField does in conventional simulations. You create an instance of it, specifying the name of the potential to use, then call `createSystem()` to create a System to simulate.\n", "\n", "To prove we really have a working System, let's run a short simulation." ] }, { "cell_type": "code", "execution_count": 4, "id": "c5814433-e5b6-4956-8951-78288b99caee", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "#\"Step\",\"Potential Energy (kJ/mole)\",\"Temperature (K)\",\"Speed (ns/day)\"\n", "100,-1302747.83036788,55.835824168728706,0\n", "200,-1302746.1318177246,94.37135932017648,11.8\n", "300,-1302732.5579721972,123.49092099269907,11.9\n", "400,-1302726.5844298073,149.443899780796,11.9\n", "500,-1302715.6813423317,158.42731341763903,11.9\n", "600,-1302720.6863631993,163.37858024843084,11.7\n", "700,-1302712.047612447,160.39312972689297,11.7\n", "800,-1302719.6467883936,212.2647280843627,11.8\n", "900,-1302710.7203451698,155.41720407571125,11.8\n", "1000,-1302714.462791466,188.5679366883866,11.8\n" ] } ], "source": [ "integrator = LangevinIntegrator(300*kelvin, 1.0/picosecond, 0.001*picoseconds)\n", "simulation = Simulation(pdb.topology, system, integrator)\n", "simulation.reporters.append(StateDataReporter(sys.stdout, 100, potentialEnergy=True, temperature=True, step=True, speed=True))\n", "simulation.context.setPositions(pdb.positions)\n", "simulation.step(1000)" ] }, { "cell_type": "markdown", "id": "16d467ef-878f-4adb-ab55-ae2a0a15ea3c", "metadata": {}, "source": [ "Only about 11 ns/day for a molecule with 22 atoms. (That simulation was run on an NVIDIA RTX 4080 GPU.) I warned you that MLIPs were slow! On the other hand, we simulated 1000 steps in only a few seconds. Most quantum chemistry methods with similar accuracy would take that long to perform a single energy evaluation.\n", "\n", "Let's try something a bit more interesting: run a longer simulation and compute a Ramachandran plot." ] }, { "cell_type": "code", "execution_count": 5, "id": "10656bb1-8503-4680-a5aa-a7cd1f367104", "metadata": {}, "outputs": [], "source": [ "def simulate(system):\n", " # Prepare a Simulation\n", "\n", " integrator = LangevinIntegrator(300*kelvin, 1.0/picosecond, 0.001*picoseconds)\n", " simulation = Simulation(pdb.topology, system, integrator)\n", " simulation.context.setPositions(pdb.positions)\n", " simulation.context.setVelocitiesToTemperature(300*kelvin)\n", "\n", " # Equilibrate\n", "\n", " simulation.step(1000)\n", "\n", " # Generate data\n", "\n", " simulation.reporters.append(XTCReporter('alanine-dipeptide.xtc', 100))\n", " simulation.step(100000)" ] }, { "cell_type": "markdown", "id": "c911e012-c98e-4ab2-8674-57ac7b82c2a3", "metadata": {}, "source": [ "Let's see how long it takes." ] }, { "cell_type": "code", "execution_count": 6, "id": "cbb8d5c7-734a-4a14-9d36-6ec45b6a1c49", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 12min 35s, sys: 2.39 s, total: 12min 37s\n", "Wall time: 12min 39s\n" ] } ], "source": [ "%%time\n", "simulate(system)" ] }, { "cell_type": "markdown", "id": "22b7ecda-d432-40f6-9040-c89eab62c942", "metadata": {}, "source": [ "We can use [MDAnalysis](https://www.mdanalysis.org/) to do the analysis and generate the plot." ] }, { "cell_type": "code", "execution_count": 7, "id": "e68c3ff4-cf53-41d8-8704-9716e0b674a1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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XHQqCLxuUvAaucfV7x+vq32uPhP5eSidq2sZKN/TDMJk+uyzzwQA7X5yc3PNxzQ0NAhPP/200KdPHyEyMlLo16+f8MILLwjNzc1W51q7dq3Qp08fISIiQhg1apRw5MgRP78bZUm5lvYeByBs2bLF6lwd/Vra89FHHwnp6emCRqMRUlNTrVZHinjdXOM1co+r3z9e1/ZcfSby81A6V9cyUL6nVYJg0x6WiIiIiHyONWFERERECmAQRkRERKQABmFERERECmAQRkRERKQABmFERERECmAQRkRERKQABmFERERECmAQRkRERKQABmFERERECmAQRkTkhsGDB+PNN99UehhEFMQYhBERyXTz5k1UVFQgMzNT6aEQURBjEEZEJFNZWRkEQUB6errSQyGiIMYgjIhIotLSUowbNw533XUXTCYT+vTpg4KCAqWHRURBqpPSAyAiCgbnzp3DT3/6Uzz77LPo3r07TCYTRo4ciYULF+Kee+5BVlaW0kMkoiDDTBgRkQRPPPEEHnroIfzud7/Dd999h+zsbDz33HPo0qUL/vnPfyo9PCIKQgzCiIhc0Ov12L9/P5544gkYjUZ8/fXXyMrKglqtRlhYGCIiIpQeIhEFIQZhREQuHDlyBCaTCVlZWTh9+jRu3ryJrKwsnD9/HnV1dbjzzjuVHiIRBSEGYURELrS0tAAAmpqacOLECfTt2xfx8fHYuHEj0tPTkZGRofAIiSgYsTCfiMiFMWPGoFOnTvj973+PGzduoF+/fli3bh3Wrl2LgwcPKj08IgpSDMKIiFzo3bs3Nm/ejEWLFqGqqgqdOnVCY2MjCgsLMXz4cKWHR0RBSiUIgqD0IIiIgkV8fDy2bt2K+++/X+mhEFGQY00YEZFE33//Perq6tgpn4i8gkEYEZFEX3/9NWJiYpCSkqL0UIgoBHA6koiIiEgBzIQRERERKYBBGBEREZECGIQRERERKYBBGBEREZECGIQRERERKYBBGBEREZECGIQRERERKYBBGBEREZECGIQRERERKYBBGBEREZECGIQRERERKeD/B75/07IaBvZMAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "u = mda.Universe('alanine-dipeptide.pdb', 'alanine-dipeptide.xtc')\n", "ramachandran = Ramachandran(u.select_atoms(\"protein\")).run()\n", "ramachandran.plot()" ] }, { "cell_type": "markdown", "id": "06a02e3b-5b77-45c0-9a5e-d995bc4cc1ce", "metadata": {}, "source": [ "## Simulating Mixed ML/MM Systems\n", "\n", "The behavior of alanine dipeptide (and most other organic molecules) is very different in vacuum from in water. We would prefer to simulate it in a box of water, but that requires many times more atoms. Simulating it entirely with an MLIP would be very, very slow.\n", "\n", "Instead we can use a mixed system. We will use AIMNet2 only to compute the internal energy of the alanine dipeptide molecule. The internal energy of the water, and the interaction energy between the water and solute, will be computed with a classical force field.\n", "\n", "First we load a PDB file with the solvated alanine dipeptide." ] }, { "cell_type": "code", "execution_count": 9, "id": "ebc59f8d-7682-46ce-ae10-b688ae7b21f4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "pdb = PDBFile('alanine-dipeptide-water.pdb')\n", "print(pdb.topology)" ] }, { "cell_type": "markdown", "id": "63572052-45ea-439a-8d3b-26fa7b4b359a", "metadata": {}, "source": [ "To create a mixed system, we first create an ordinary System that models everything with a conventional force field. " ] }, { "cell_type": "code", "execution_count": 10, "id": "79cf8c25-bb88-4e21-8ee5-ea7800d8d189", "metadata": {}, "outputs": [], "source": [ "ff = ForceField('amber19-all.xml', 'amber19/tip3pfb.xml')\n", "mm_system = ff.createSystem(pdb.topology, nonbondedMethod=PME)" ] }, { "cell_type": "markdown", "id": "923beaa5-8eb5-468f-a50f-7595574322e1", "metadata": {}, "source": [ "Now we use our MLPotential to create a new System that replaces a subset of interactions with the MLIP. We simply give it the conventional System, and a list of atom indices to model with ML." ] }, { "cell_type": "code", "execution_count": 11, "id": "2a480315-54e1-4fca-b285-c7afdfa00330", "metadata": {}, "outputs": [], "source": [ "chains = list(pdb.topology.chains())\n", "ml_atoms = [atom.index for atom in chains[0].atoms()]\n", "ml_system = potential.createMixedSystem(pdb.topology, mm_system, ml_atoms)" ] }, { "cell_type": "markdown", "id": "f593612e-8795-47e3-9333-50e53985ddf9", "metadata": {}, "source": [ "Let's simulate the mixed System and see how the speed compares to the other simulation." ] }, { "cell_type": "code", "execution_count": 12, "id": "a00bb031-e1b0-4c3d-b618-342f2db9c613", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 12min 35s, sys: 1.51 s, total: 12min 37s\n", "Wall time: 12min 41s\n" ] } ], "source": [ "%%time\n", "simulate(ml_system)" ] }, { "cell_type": "markdown", "id": "3bd8d962-9f61-4656-9418-2a816ce0a095", "metadata": {}, "source": [ "This simulation includes 100 times more atoms than the previous one, but took no longer to run! The classical force field is so much faster than the MLIP, it adds very little to the total time.\n", "\n", "The Ramachandran plot looks quite different from before, showing the importance of water." ] }, { "cell_type": "code", "execution_count": 13, "id": "e4e7364e-9cab-427b-a32c-9aa3595c96fc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAG6CAYAAABA5JE6AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAfFFJREFUeJzt3Xl4VPXZP/73TPYFEkIgExBI2AoxSABlMWoFg6IURds+QqFF7A+rkqdKrAJaRL9UkS6YfoWCUkG/DwLaR3FDU9kqBYNRQtAYhIAJUMxCFhKYkIXM+f0RzzDbmbPMmTXv13Xl0mTOnC1D5p7P5/7ct0EQBAFERERE5FNGf58AERERUXfEIIyIiIjIDxiEEREREfkBgzAiIiIiP2AQRkREROQHDMKIiIiI/IBBGBEREZEfMAgjIiIi8gMGYURERER+wCCMiIiIyA+CLgjbt28fZsyYgX79+sFgMODdd9+1e7yzsxPLli1Deno6YmJiMGTIEKxYsQKO3ZnWrl2LtLQ0REdHY8KECSgqKrJ73Gw2Y9asWUhNTcXs2bPR0tLi7UsjIiKibiTogjCz2YzRo0dj7dq1Lh9ftWoV1q1bhzVr1uDo0aNYtWoV/vjHP+Kll16ybvPmm28iLy8Py5cvR3FxMUaPHo3bbrsNtbW11m3y8/MRHx+PTz75BDExMcjPz/f2pREREVE3Eu7vE1Dr9ttvx+233y75+GeffYa77roL06dPBwCkpaVh69atdiNdq1evxoIFCzB//nwAwPr167Fjxw5s3LgRS5YsAQA0NjZi+PDhGDVqFEaMGIG6ujovXhURERF1N0EXhMm5/vrr8corr+D48eMYPnw4jhw5gv3792P16tUAgPb2dhw6dAhLly61PsdoNCInJweFhYXWn+Xm5uKWW27BU089haFDh2LXrl2Sx2xra0NbW5v1e4vFgoaGBvTu3RsGg8ELV0lERER6EwQBFy5cQL9+/WA0en+yMOSCsCVLlqC5uRkjRoxAWFgYOjs78dxzz2HOnDkAgLq6OnR2diIlJcXueSkpKfj222+t36elpaG8vBy1tbVISUlxG0ytXLkSzz77rHcuiIiIiHzqzJkzuOqqq7x+nJALwt566y288cYb2LJlC66++mqUlJTg0UcfRb9+/TBv3jxV+zIajTCZTLLbLV26FHl5edbvm5qaMHDgQPR/6DUYo2LdPrdXbDiennE1pmaY0GkR8Mqn32HzwUo0tV5Wda7+tuqnozD9mn5OP++0CLj1xU9R09zm4ln2xDB39b2jMTXDhKLvGnD/61/IPm/jvOswfnCS5OM7vvoei9/+WnY/Iqlr8cTOsmq88PG3iu6DK7b3ZsqIFMX31BW5+0XulZSU4Mc//jE+/fRTZGVl+ft0iLo1pe8xfXtEYukdIzE1Q/o9vdMiYF/pacy88Rr06NFD71N1KeSCsMcffxxLlizBrFmzAACjRo3CqVOnsHLlSsybNw/JyckICwtDTU2N3fNqamoUBVyuREVFISoqyunnxqhY2SCsqRP43bvleKDhMt788j8439IBIBLGqEhN5+Ivaal90LNnT6efF56sx7m2MNn7IDIA+PPeM5g5fhjMuKDoeWZEuDz2lXPrUHx8ABiYkux2f2oVlFbhd++WQ4Dy++CKeG9MvZNU3VNHcveL3IuPj7f+l/eRyLs6LQKKKhpQe6EVfXtEY3x6EsKMV2amlL7H1LV3vdeui++BaZmpTsdYs+cENh2oQMP5JgDwWSpRyAVhLS0tTvO4YWFhsFgsAIDIyEiMGzcOu3fvxsyZMwF05XDt3r0bubm5vj5dAIAA4OV9FX45tqcMAEwJXf8wXKm90KpqfwKAqqZWFFU0oG+PaEXPkduu0dyu6hyg47+9TouAZz8ogyC/qSzx3hR+59kiEaX3lYjInwpKq/DsB2WoarryPpKaEI3lMzKsgZTa95hnPyjD1AyTNZArKK3Ckne+/mEAxPeCrkTFxYsXUVJSgpKSEgBARUUFSkpKcPr0aQDAjBkz8Nxzz2HHjh2orKzE9u3bsXr1atx9993WfeTl5WHDhg14/fXXcfToUTz00EMwm83W1ZJ6SekZpef7ecBaPiPD7pOJLa1v+LUXWjE+PQmpCdGS99CArn+QUgFgp0XAgfI6PLld+VQkANRd1DbN50pRRYPdHxA9CBojOrn7RUQUKApKq/DQ5mKnv5/VTa14aHMxCkqrAKh7j7H9kC8e48HNxX4LwIAgHAn78ssvMXnyZOv3Yi7WvHnz8Nprr+Gll17CsmXL8PDDD6O2thb9+vXDb37zGzz99NPW59x77704d+4cnn76aVRXVyMrKwsFBQVOyfqeWnL7CPzu3XJd9xlIEmMj8MI9o5yGdm2JgVR1U6uq0aC+PaIRZjRg+YwMPLS5GAbA7vliYCYVALr6BKXm2HpR+ylNiS1Fp5EQE46mS8rzBuXuFxFRoHA3gyCg6++ZOKKl5T2m9kKr9Rj+FnQjYTfffDMEQXD6eu211wAAPXr0QH5+Pk6dOoVLly7h5MmT+MMf/oDISPscq9zcXJw6dQptbW34/PPPMWHCBN3PdWqGCevmjkVSXHDldyml5NODGEgp5ThaMy0zFevmjoUpwT4wMiVEY93csS4DQKlPUGqPrQdvTP01tnTIBmCJsRF237u7X0REgURuBsF2REvtewzQ9XfZG7MUWgTdSFgw2fHV90hL7YN9j0/Gtc/tRGuHxd+npLtnPyjDlBEpOHSqUTJxclpmKh7NGY4Xdx2X3Z8A59GaaZmpXasl3SRnijzNwdJ7pKjRrN/UphIGAA/clI4npo3EwZP1P+SPGTBpSG9MHNzbp+dCRKSF0hkEcTvxw/oz75ehuln6ubY5zB9+9b0ep+oxBmFetPjtr7tWSBoAix6Z2QGoqqkVE1fuQoP5yqiYY+IkAKQlK1vJd8uIPi5Ha8KMXYGEHK2fblyds6c6LQJW7Diq2/6UsF3k8f6RKuu9WLP3hFeukYhIb1oWZYkf1tfsKceLu5zTgBxTMgJlgVLQTUcGo1ANwES2ARjgnDgJKP9HdfjMeXR6cMO05GDNuMaE/Yun6B6c+HO4++V9FU7HrnLxeyEiCjRaF2WFGQ14JGc41s8di1SZFBa5Y/gKR8JId46Jk2FGA8anJyEpLhINMuUiGswdKKpoUDTq5YqWTzdfnjqv6VhyvJGU7ykBV34vABRN8RIR+ZIni7IAZSks7o7hSwzCyCvExMmDJ+thNBpQe6EVg5JiZIMwwLPgRctKmaqmVrx2oALJPaJ0DUYCZbjbUVVTK9bsOYFtX5x2W3+HiMhfxDwvx1XuJoV/p5SksEgdw5cMgqC16hBJaW5uRkJCAgY8+pZHFdJDQWJMBM5fUleDZeuCiZpHwoArqyMBbZ9u9ApGOi0Csl/YjWqN7YV8TQw71/5iLHrFRXKETEJxcTHGjRuHQ4cOYezYsf4+HaKQJlcxX+9jxKEDU8eko6mpyScdMTgSRprERIThUken7HZqA7CkuAi7eX5X/wABuFz5J/7D9PTTjZjTtm7uWMWrMl3ZWVaN1svBsyJWDFhztxbb5TFyhIyI/EXpoiy9jtHc3OzVYzliEEaazLt+ELYVnVEdZMm5O6u/Ncj56Kvv8fv3Su0S/xNjI9B+2YKW9isB4Jq9J5wKx07LTIXFgh+er65tkZjTtvSdr/HM+9/YjWQ5BiRSn9LE0bhgHGZ2XBdhG5QyECMi0g+DsBCWGBuBl2aNgdFgwNLtX+F0wyXd9r3+0+9025etnB8Sxld+VOayn6ZUgdjzLR14cHMx1v8QKBSUVmHhFu1BkICuoqiObAMSAC77mi2bPhIrdhwNygDMFVcLLYiIyHMMwkKQ+Bb5wj2jcOPwPui0CKi94Lu8JC15YADQK7ZrKvKjr6o0NzQXi8fq1TTbkRiQLHnnazS1dDgdo7qpFQ9vOeyFI/uXbYVqb08NEBGp4Yu8MW9hEOZFCdHhuOCH4RDH1SNFFQ0+qdafGBOBtXO6Rojm/P1z1c8X0PWP6ffvlWo+h6qmVvxPYaVXV7oIkB6RC5XRLymBWHaDiLovV32CgymPlcVaveiZu672eSG4XrERWDZ9pN2Lz1dvnOcvdcBoMGDi4N6aiuCdb+nA/xRWqs7hcnSqoUXRdokxEfIbkZ1ALbtBRN2PVJ9gVwXDAxWDMC8SG3g7Vu71psaWDjy85TA+sumL5cs3ztoLrXYNVdUGYvvK6zw+h0FJysqCzM9O8/hY3YU3mpsTEWnlrk+w+LNnPyhD+2ULCk/W472Ssyg8We9RRxZv4HSkl9lW7q1ubkXDxTY0mNux9l8nvXrc3K2HsQYG3HFNKsYN6gWDAfBFRTgx4BPLRDy5Xd3qxOLTjR4dPzUhGr+clIa/76+QLNhqAJAUF4mBSbG4PdOEj0urPTpmqNFSoZqIyJfk2sKJeawTV+62ew9yN1XZaRFQ9F2DN05XEkfCfECsQXL3mP749Y2DMdzUw+vHtAjAw1u6hmPX/euE1wMwVyMl0zJT8dTtIxTvIykuAhdaL3t0HstnZCAy3IjlMzIk87MEAPXmdix664jqAEwMQRJjI2T7mq2ZNQbBFLMYDcBLs8fAJNNzjYjI35Sm2TgOAkhNVRaUVuGGVXtw/+tf6HaOSnAkzEdsV2/U+XCl4u/+ccTrkba7kZLC7+oV7+eu0f2x6bNKTecQHxWGP/98tNcDBXHRAwDZvmYJMZFB1bzdIgDJ8VHYv3iK3UqjcYN64dCpRrxXcjboVh4RUWjSmmbjquSOP+s6MgjzAVerN4wG56KY3nCxTb6qvacSYyOw0qZQqqigtAr/W3xW0T7mZ6fhqsQYTcdPiovEwaW3IDK8K9wUcwU8JYYZj+YMR1pyrFMAItfX7L0SZdceSKqbW+2qRxeUVuHHf9obtCuPiCg0aekTLLItuTM+PclrJY2UYBDmZVIRdjCNkMiJDDOgR3SE3UgJAFWB0FWJMaioN6s6rhgkPX93pjUAA+RzBZSSaxRrm+/nqj5NZZ266wkEDRevjNJKvXZZQZ+I/E1cACb2Cdai9kKrbu8XWjEI8yJ3qzdCSc2Fdru6YKkJ0Zh13QBVL+wVO46qPq7UCJwnJTlyJw/BsJQeiqfdpPqadVoEbC06rfk8/KXB3I72yxZ8UdGAJW9/LbnyiBX0icjXHIuyTs0w4dGc4Xhx13FN++vbI9rvtQ8ZhHnRocpGv0bY/lLd1IoXd5V7/Tiu2goBnpXkyB7aR5eK8F2rYX2X+6eXtf86qWjlrtoK+sFc0ZqI/E+qKOvtmSbV+zKga6ZjfHoSiip8uxrSEYMwLzp3sfsFYIDvqsZLjcZoyRWw/UepB39/uvIVJdf50VdVTo3UmVdGREq5S43YeKBS1b4cF5J5klumB5ao8KI+8awu7k22ozG21BaL9UYdrO5SWV7uOld+VIaHtxQ7LROvCqKK1kTkP0qKsqrhWHJHfL9gYn4IGpfWy68RdnfhajRGLBbrOHzdKzbCqfejXAK+Eo7TbVkDEn22AtYflIwcfvTV924bsQtgXhkRuadX4vyvJg3C7ZmpAZcKwSDMi2xXb7iqJxWi788+JzUaI7V6EYCu+UmuchWS4oKrRphaAtyPHCptxK4mr4yIuh+9Ujtuz0yVXESlR0kjrRiEeVHRdw1oQwQezRmOrUWnUd1s/yZd72Gjal/qHReJZ+68GsnxUai90IqkmEg88laJx8225SREh6O59bJk+yFxNEYq8Vtq9aJeb/pSuQpa7kswBebxUeGYMiJF8vGiigY0mF0vnHDUXfLniEg9T1M75EbtWaIihN3/+hcwRnU1kzb1jMKinGFIS45D3x7RqG66hEVvHfHzGbq3bPpIJPeIsquaXnuhFZV1ZqwsOur1AAwAOoUrJRGkKtPvLKt2uWpm+YwMt3W8PD43nUqQGAAkxEYgOjzMLlAPZBfbLmPiyl14/m7nEiGAusAqGOupEZFveJI4ryTf198fAhmE+UhNcxvyd5Vj3dyxmDSkNwpPKm/n4w+pCdG4Lzvd2tLBsWq6pxJjI+zysqRcbLuMRTnDsO2LMy4r0wOQXDXz4OZiJMSEo+nSlX6Upp5ReObOq3VZlafXJygxR+2nY/rg7cPfe7w/X2kwd0gWbVXz6XVr0WnkThkWUHkaRBQY3KX1yFGS7+vvRVQMwnzEscClGN0Hah0x8ZODHj21DABSekbhL/+VhbqLbUiOj0LZ90147qNvFT0/LTnOqZ+hOLR8w6o9blfN2AZgAFDd3IYHNxdjvQ7V3vX+BBVMAZgtd2VClLy+q5vbmBdGRJKkFlq50zsuEp8+Ptmum4orLFHRjdiWVBCj+0D97P9FRQMOlNfhmfc9m24Tr++ZO69G9tBkRIUb8bt/HFEcgAFdn1TE3K67svpj0pDeCDMaPBqJWvLO1+j0MHPe35+gAoGSMiFK+HtKgIgC27TMVOxfPAVbF0xE7uQhstvXm9tx6FSj7HZqSxrpjUGYH4hvOGJ0n5oQeG/mrx6oxJxXP/c4R8m2Jos4qqYmcEp1k1DpyRv3+ZYOHPRwSlj8BBWogbQvHThxDu+VnEXhyXprcDstMxWLcoYpej4DWiKSI34YH5bSQ9H2St8jxPdikx/eizkd6Qe2bzi2ZRQ++aYKmz475ccz08cvJw6EwWDAoKRY/HJSGiLDjZqT2O8cnSqZK+TpG3fhd3XIHpas+fme5CqEmjV7r7Q6io0Iwx2jTHj+nmuQO2UYthadkQzm9e5UQEShT+nffjXvEeJ78d6vTmFqvsYT04AjYT5kQFdiuEUQ7EYNxNYJBd/U+PsUdfE/B0/j/xWewoodR/HjP+1FQWmV5qnD949USU4bej4SJf/MTouAwpP1TqM8In9+ggpULR2d+N/is/jRso/xx4KjeObOrml3x7vtjU4FRBTaOi0CLBYBiTERktsY4H4WRUqY0YDxg337gZAjYT4kAGi9bMGcv39u/ZlYSiEhJjJgk/Q9Uf1De5r7s9M0Pd9dMU9PR6LkEsGlGsY6rraxHc2sbm7Fig+/UVwjK5QJAvDyvgr85ia4TKrVo1MBEXUfrv4mOwq2D3cMwnzMsSyDp0FKoBNXhW4vOat5H+7m9aVWzRgMXUGAlF6xEZg4WDoIc9cw1lVZBtuisDERRjy0uRiAfGAYGW5E+2WLzFbBbcO/K/DtihFerdlGRKFN6Ur9YPtwxyDMz/QIUgKdgK6aUklxkWg0t6sesZKb13fVnqjR3I6HtxRLPmflPaPcttxx1zDWttSIuA/Hiv1rfzEWT777tWwttFAPwICu/pn/U1iJX984mGUoiEg1JTnFiTERWDtnLCYO7h1UH+4YhAUA2yDFm1Xoo8INaLusLX3c1DMKf/rZaPz31sM4f0nbVFvWgATs/fac4qlDNUnbrtoTrTeOxTPvl9klhbuaTnQkl79mW5Zh0pDeLofITT2jIbgbiutmTjW0+PsUiChIKckpPn+pA0aDIagCMIBBWEDJGpCAPd+e032/92en4ZYRKXjsH0c0l5x45s6rcePwPnjhp6Pw4GbpESZ39nx7Dr+5KR3vH6mS/Qelx7y+VANvuf0pXdZce6FVetpS432OCAM6OjU9NaANSor19ykQUZBS8zc52DAICyAlZ5p03V+v2AisvKert1/hyXrNgcGvs9OsI0fTMlNxf3YaNh6oVL0fA7pWO376+GRrH8quqcM2rNhx1CtJ21INvN1Ruqw5OT4Kv/vHEV1LU4RiAGY0AL+clObv0yCiIOWNkhSBgkFYADAA6BUXoXoq0rH/Yq/YcEwa3BuD+/TApCG97ebGPfmEkJNhsvt+aoZJUxAmTuMdOtXoFBjdlpmqe9K2Y56W0n3KtbEQp0khICRXtOptwY3psq1DiIikKP2bHIz1BhmE+ZkYEtyd1R+vKgxsDAAeuCkdT0wbqTjI0PIJQeqF7WnfS1cBoasRK61BFKC8vIQr7kpf2E6T1pnbFJ1LdxYbGYYnpo3092kQURBT+jc52PLBABZr9bmkuEi7700J0Vj7izHolxijeB8CgFf2VWBnWbVTP0Upagubunthe9r3UklAWFBahRtW7cHsDQfxyLYSzN5wEDes2oOC0ipFz3XVHkksL6FkH1JFWG3bMAXj0LdWiTHhiI0MU/28lvZOp76SRERqKfmbHIw4EuYj4qiScz5UO1bsUN4Z3pZjmQR3xMBJaVK9XE6WlvpcSoeM1dbosqWlvIQUucR+uSHyUNLRKaClXVvCWjAmyxJR4NG62CqQMQjzAdtRpchwo3XaraC0Cgu3yBefc8WxTIISUzNMTnlkjhJjI7B29lhMlBlZA6Trcy3c4lyoVOmQsadBlNryEnLcJfZrqdj/s7H9can9MnaUBleLKrPGAAwIzmRZIgpMWhZbBTIGYT7galRJa0NrR2pGGYoqGmSLh55v6YDRqLzWiqt/EOuM2lvUeBpE+Xops9SIoJT/LT4Lf39oi48Kw8U27y/DDOZkWSIiX2AQ5kWrfjoKaal9XA6Xam1o7Sg5Pkrxtr4KUDwZMvb0HJWOutRdaLM2T/eUeL2vHajAih1HZbeX6EfuEwbAp0P3y6aPtPbUbLjYhqS4SJgSYoJ+CoGISA8Mwrxo+jX90LNnT5eP6TUS89hbJXjmzqsVJSX6staK1iFjT89RaZ7Wih1H8ff9Fbr1GAszGpDcQ3lA7AuOU6SpCdGYdd1AvLjruNePnRQXgZ+Pu8qp/pvtuQRTfzciIm/g6kg/0StPpqa5TfGKP7kVkgZ0vTn6c/rI03MU87TEbd1Rs1pSiUDLfbINwJLiIrBs+kikJXu/cn3vuEj8nxmZeGVfheRob5XO956IKBgxCPMTtSUjpIhvtM9+UIZOmXkudwFKoNRa0eMcpZYyO1Jz75TQ63fqDY3mDizcchiVdd7r4Wj44WvFXZl47uOjsvmOAvS790REwYhBmJ+oGbGRY5usLicYaq3ocY7TMlOxf/EULJvuvlComnsnx/Z3qoVB4v/F7w0AfnNTOhJjI5yeGx8VhvnXpyEpzvkx4ErAue2L0zD1jPJKoJgYG4F1c8eiV1yk4nxHve49EVEwYk6YH6ldWSdHaZ6Zv2utKKmEr8c5qsnT0nu15DPvf4PqZvcV9Y0G+yR9U0I0lk3PQHntBWw6UInzlzrsHhNzqJ6YNhIHT9aj8Ls6AAZri6qiigZs+qxS8nhiwLkoZxjyd5W7rDztyZhUY0sHLBZB9b1kHTEi6q4YhPmZY7BRWdeCrUWn7Zpt94wOR3PrZdl9qclJ8letFTXthPQ4R380fhV/p2v2nHCZBC+GkX+dNQa1za041dCCQUmxSOkR7VS4NzEmAvOz05E7Zag1AA0zGpA9LBnZw5Lt9qs0mElLjnMZ/HcFgSOxYsdRzQVoc7cexm+nDFP1nEDLpSMi8pWgC8L27duHP/3pTzh06BCqqqqwfft2zJw50/r4ypUr8c477+Dbb79FTEwMrr/+eqxatQo/+tGP7Pazdu1a/OlPf0J1dTVGjx6Nl156CePHj7c+bjab8etf/xqffvopbr75Zrz66quIjfVOUrNjsJE7ZajdCNC4Qb3w4z/tDfrmpZ5UwtfKX41fw4wGPJIzDD8yxbsMdu4cnYrnP3K9ctBW06UO5O86jh+Z4mXvjZqAc9KQ3pIjjUajQVUBWlsWAcjfXY7E2Ag0tXTIPt/fC0GIiPwp6HLCzGYzRo8ejbVr17p8/NNPP8XChQtx8OBB7Ny5Ex0dHbj11lthNput27z55pvIy8vD8uXLUVxcjNGjR+O2225DbW2tdZv8/HzEx8fjk08+QUxMDPLz8719aVZiUCb2hIwMNwZ8Qr0cuUr4gHeStP29GEHMTdu6YCL+OisLWxdMxLLpI92uHLSl5t6oXVnq+DoT74HShQ3uKAngDAj81y0RkTcFXRB2++234w9/+APuvvtul48XFBTgvvvuw9VXX43Ro0fjtddew+nTp3Ho0CHrNqtXr8aCBQswf/58ZGRkYP369YiNjcXGjRut2zQ2NmL48OEYNWoURowYgfPnz3v70tzyRkJ9p0VA4cl6vFdyFoUn6726Sk1NJXy9+Xsxgm2wMz49CSt2yK8ctKX03ugZcIrB4xv/3wQkxrhO9nensaUDi3KGIVUikEsNoIUgRET+EnTTkWo1NTUBAJKSuj79t7e349ChQ1i6dKl1G6PRiJycHBQWFlp/lpubi1tuuQVPPfUUhg4dil27dkkeo62tDW1tV5Kwm5ub9b4MAPom1KvJzdKDr9sJOdLz3ilZWCDFk04JSu6N1MKAlJ5Riov6isKMBmQPTcYLPx2FhzY79wOVk5Ych/2Lp7BiPhGRhJAOwiwWCx599FFkZ2cjMzMTAFBXV4fOzk6kpKTYbZuSkoJvv/3W+n1aWhrKy8tRW1uLlJQUGAzSbxgrV67Es88+652LcKBHsro/crP8kSDvSK9750nw6kmQqe7eSI2Fqad1FW/fHtEh12yXiEhPQTcdqcbChQtRWlqKbdu2aXq+0WiEyWRyG4ABwNKlS9HU1GT9OnPmjKbj+YK/crOCoVq/HDF4dQxE1FTe1xJkqrk34jnarq4FgJpmzyrU2+a2zb9+ENz9kwiG3yURUSAI2SAsNzcXH374Ifbu3YurrrrK+vPk5GSEhYWhpqbGbvuamhqYTCZNx4qKikLPnj3tvgKVv3KztOYr+TJvzR29gle1VfXV5HJ5O8AWR7WW35mJtbPHeny+RETdXcgFYYIgIDc3F9u3b8eePXuQnp5u93hkZCTGjRuH3bt3W39msViwe/duTJo0yden63P+zM1SmyBfUFqFG1btwewNB/HIthLM3nAQN6za45d+g3oFr2o7JahZPODLAPuOa1Kxfu5Yp8T7QOq8QEQU6IIuJ+zixYs4ceKE9fuKigqUlJQgKSkJAwcOxMKFC7Flyxa899576NGjB6qrqwEACQkJiImJAQDk5eVh3rx5uPbaazF+/Hjk5+fDbDZj/vz5frkmX/J3bpbSBHl/5K25o2fwKpVjlfpDsdRecVGakv59HWD7u/MCEVGwC7og7Msvv8TkyZOt3+fl5QEA5s2bh9deew3r1q0DANx88812z9u0aRPuu+8+AMC9996Lc+fO4emnn0Z1dTWysrJQUFDglKwfivxVvNSWXLK23LSaAV3TalMzTD57w9c7ePVGAOOPAJuJ90RE2gVdEHbzzTdDEKRzWtw9Zis3Nxe5ubl6nVbQEKfDXFVED5R8HjXTat4IAFyVoPBG8Kp3ABMIATYRESkXdEEYeU5qOszkxTphavgzb81dCYpAD16DIcAmIqIrGIR1U4Gcz6N0uqy85gIKT9brdt5K8tACOXgFAj/AJiKiKwyC0vk7Uqy5uRkJCQloamoK6HIVgarTIuCGVXskp9Uc6VHpXzym1DSoOJW3f/EUAAjI4NWWJ1X9yb3i4mKMGzcOhw4dwtixrkt1EFFw8vX7d8iVqKDgp7aMg5piqVLU5KFJNb4OJMFwjkRE3R2DMApIUjXFXNGjEKm/e1sSEVH3w5wwCli2eWsHTtRhzd4Tktt6umJSaR5aZZ1Z9b6JiIhc4UgYBTRxWm1YSryi7bWOVI1PT4Kpp3wgtrXotN9aJxERUWhhEEZBwduFSMOMBsweP1B2u+rmNt37ahIRUffEIIyCglzjawO6Vkl6Uog0LTlW0XbMCyMiIj0wCKOg4G7FpF6FSP3dV5OIiLoXBmEUNKRWTJoSonVp6O2L0TYiIiIRV0dSUPFmpX+2/SEiIl9iEEZBR+/G17bY9oeIiHyFQRiRg0Duq0lERKGDQRiRC94cbSMiIgKYmE9ERETkFwzCiIiIiPyAQRgRERGRHzAIIyIiIvIDBmFEREREfsAgjIiIiMgPGIQRERER+QHrhFFA6bQILJJKRETdAoMwChgFpVVO7YJS2S6IiIhCFKcjKSAUlFbhoc3FdgEYAFQ3teKhzcUoKK3y05kRERF5B4Mw8rtOi4BnPyiD4OIx8WfPflCGTourLYiIiIITgzBSpNMioPBkPd4rOYvCk/W6BkRFFQ1OI2C2BABVTa0oqmjQ7ZhERET+xpwwkuXtXK3aC9IBmJbtiIiIggFHwsgtX+Rq9e0Rret2REREwYBBGEnyVa7W+PQkpCZEQ6oQhQFdI2/j05M8Og4REVEgYRBGknyVqxVmNGD5jAwAcArExO+Xz8hgvTAiIgopDMJIki9ztaZlpmLd3LEwJdhPOZoSorFu7ljWCSMiopDDxHyS5OtcrWmZqZiaYWLFfCIi6hYYhJEkMVeruqnVZV6YAV0jVXrmaoUZDZg0pLdu+yMiIgpUnI4kSczVIiIi8h4GYeQWc7WIiIi8g9ORJEuPXK1Oi+D2+XKPExERhRoGYaSIJ7lachX3vV2Rn4iIKBBxOpK8Sq7i/sqPyrxekZ+IiCgQMQgjr1FScX/Dvyu8XpGfiIgoEDEII69RUnHfXXylV0V+IiKiQMQgjLxGj0r6eu6HiIgokDAII6/Rq5K+XvshIiIKJAzCyGvEivtShSYMANxVoTCga5WknhX5iYiIAgWDsG6o0yKg8GQ93is5i8KT9Wi/bLH7Xq9EeCUV9xfcmA6Dm8dZkZ+IiEIV64R1M65qchkN9gnyetboEivuOx7TZHOMMQN7uX2ciIgoFDEI60bEml2O41yOA19ijS692hLJVdzXoyI/ERFRsGEQ1k24q9nlSEDXdOCzH5ShR1QE6sxtkoGR0nZDchX3PanIT0REFIwYhHUTcjW7HIk1uua8+rn1Z47TlGw3REREpB0T87sJPWpt2bYSkmtHxHZDRERE7oVsEHb27FnMnTsXvXv3RkxMDEaNGoUvv/zS+vjatWuRlpaG6OhoTJgwAUVFRXbPN5vNmDVrFlJTUzF79my0tLT4+hI8ZrsKsu5Cm8f7E6cyn3n/Gzzzvvt2RHLthhxXaLI1ERERdTchOR3Z2NiI7OxsTJ48GR9//DH69OmD8vJy9OrVCwDw5ptvIi8vD+vXr8eECROQn5+P2267DceOHUPfvn0BAPn5+YiPj8cnn3yCF198Efn5+XjyySf9eVmqKFkFqYUAoLrZfUBn227IVZ4XpzGJiIhCdCRs1apVGDBgADZt2oTx48cjPT0dt956K4YMGQIAWL16NRYsWID58+cjIyMD69evR2xsLDZu3GjdR2NjI4YPH45Ro0ZhxIgROH/+vJ+uRj2pqUJfDza5mgLlNCYREVGXkAzC3n//fVx77bX4+c9/jr59+2LMmDHYsGEDAKC9vR2HDh1CTk6OdXuj0YicnBwUFhZaf5abm4uXX34ZERER2LRpEx555BHJ47W1taG5udnuy1+UrIL0VeUHx3ZD7s5N6TQmERFRqAjJIOy7777DunXrMGzYMPzzn//EQw89hN/+9rd4/fXXUVdXh87OTqSkpNg9JyUlBdXV1dbv09LSUF5ejjNnzqCsrAz9+/eXPN7KlSuRkJBg/RowYIDXrk2OklWQcjFOTITRbauhlB6RsoGc0QCMG9RL1bnZTmMSERGFupAMwiwWC8aOHYvnn38eY8aMwQMPPIAFCxZg/fr1qvZjNBphMplgMLiPOJYuXYqmpibr15kzZzw5fY/osQryUofFWivMlvj9LyYMkg3kLAJw6FSj9ftOi4ADJ+oUHV+PayAiIgp0IZmYn5qaioyMDLufjRw5Em+//TaSk5MRFhaGmpoau8drampgMpk0HS8qKgpRUVGaz1dPjlOAWsVHhSM+KswuCV9sJdR22aJoH2Iw5SoR3x3xGpQWgiUiIgpGIRmEZWdn49ixY3Y/O378OAYNGoTIyEiMGzcOu3fvxsyZMwF0jZzt3r0bubm5fjhbfY1PT0JqQjSqm1oVVceXcrHtMl7+5TgYDQanIKjwZL2ifdQ2t2HFB9/g1QOVio/bKzYC49OTuIKSiIhCXkhORy5atAgHDx7E888/jxMnTmDLli145ZVXsHDhQgBAXl4eNmzYgNdffx1Hjx7FQw89BLPZjPnz5/v5zD0XZjRg+YyuUUBPx4zqLrZh0pDeuCurPyYN6W0dhRIDPbn9P/fRUVUBGNCVF/bP0mquoCQiopAXkkHYddddh+3bt2Pr1q3IzMzEihUrkJ+fjzlz5gAA7r33Xvz5z3/G008/jaysLJSUlKCgoMApWT9YTctMxbq5Y5EQG+H0WFxkmOL92E4L2hZWBaBboOfofEsHfv9eqa4rKFkYloiIAlFITkcCwE9+8hP85Cc/kXw8Nzc3JKYf3Tnf0uH0M3N7p6LnJsbITwuumzsWz7xfhupmfRPpG8ztko/JFYJ1xGlNIiIKVCE5EtbdifW4PHHf9YOws8z9tCAA/OXnoz06jlZKVlCyMCwREQUyBmF+4O3pMSW1wuRYLFBUWFXPchIGAElxzlOorsitAmVhWCIiCnQhOx0ZqHwxPaZHYPR/955w+7g4LVh3UXrqUA0xt+wPd2VixY6jkqs7DegqlTE+Pcnt/tQUhlUyrUlERKQ3joT5kK+mx5LjfFezLH/XMVXJ/iLHhH5TQjTWzR2LO67pJ5n0L36/fEaGdaWm1Kii0kCUhWGJiMhfOBLmI3LTYwZ0TY9NzTCpLkjqWNTUIvhuis3crqxwqyNTQjT+/LPRqDO3ORViFVd3Oo4YmhxGDN2NKiotWqtXcVsiIiK1GIT5iLemx1wFIokxyvKq/KmqqRVGowF3ZbnuyTktMxVTM0ySFfPFUUXHcFMcVVz7i7GyRWuNBqDRzUpMIiIib+J0pI94Y3pManrz/CXn0hS+FKtwelLuWsOMBpfFYpUk3a/YUYZl00e63b9FABZu4SpJIiLyDwZhPqLn9FinRcCB8joseftrza2JvNmBsUVhLTKtU4EHT9YrGlXsFReFtb8YA7nZXa6SJCIif+B0pI/I9XRUuupPbTNsKd4OORJjItB0qcOja3WloLQKS97+WtG2V3LkpLfhKkkiIvIXjoT5iLuejq5W/bkiNf3ojmN+mMqcf83mZ6cB0H6trojXr3S6tW+PaK6SJCKigMUgzIfEVX+mBPtpOLE8g7s6Ye7yoNxZ+4ux2LpgIl78r9H45cSBbkeF9JKaEI3cKcM0X6sraq7f8MM5jE9PQmVdi6L9c5UkERH5GqcjfUxu1Z8ULVXwUxOiMXFIb+wsq8Yf/3nM4ylMpcRRLq3X6oqa6xcA3JFpwpo9J5C/67jbbT2ZGiUiIvIEgzA/EFf9qaFluuxSRyf+WHAUr+yr8HoOmGhRznC7US4t1yqyrX9WXnNB0XMM6ArCXj1QqWh7AdqmRomIiDzFICxIaJkuO9/SgZf3VXjhbFxLio1A7pShuuxL6wIEtcHmopxhklOjjkVwtY7iERERucIgLEjIra4MBH+YOUqXIEWqEKs3pCXHSZ6Dt3t8EhFR98bE/CDhbnVlIPjNTem44xrPgxOtCxC0cjXC6Ksen0RE1L0xCAsi4urKlJ6+a9DtyHGgKykuAn/7xRgsvSNDl/1rWYCgtEK/LdsVlLaUVONncVciItIDpyODku/HwsQjrpk9Fr3iIr2WJ6V0AcLCyUMwPKUHkuOi8N/bDiuu0g+4r1XmrR6fREREjjgSFkTEabLqZt8XFhXre91xTSrGpydZC6EWVTToOiqkdAHC1qLTiAo3wmg0oEFlE27xWqZmmFB4sh7vlZxF4cl6dFoEFnclIiKf4UhYkNCSKyWWa4iNDFM1UiTKnTwEw1J62I14ffTV9/j9e6VoMF+pWq9nwrrSBQgN5g48tLkY9/9QmV/OHZkpuC0z1XotO8uqccOqPU6J97OuG6hofyzuSkREnuJIWJDQkiuVENvVskhLAAYA2UP74K6s/pg0pDfCjAas/KgMD285bBeAAV3Tc3olrKtdgLC95Kyi/f5yUrr1WnaWVUsm3ufvOo7E2AjJY0vlkhEREanFICxIKJ3+yp08FH+dlYU3fj0B0eHqE9YB14HGR19Vua05JkC/hHVxAUKvuEi32wnoGhFLiotUHDQpSbwXRxD17HtJRETkiEFYkFA6/ZU9NBl3ZfWH0WjQlDvmKtDotAj4/Xulss8VE9b1MC0zFcumj1S07cysfgBcj5yJLYzE3DUlifeNLR1YlDNMt76XRERErjAnLEjI5Uo59kDUmjhucpHfVVTRoDj5Xc+EdVNCjKLtpmaYMD49yam4qtEAWISuFkavHqhEakI0bs80Kdpn86UO7F88hRXziYjIaxiEBQkxV+qhzcXW6TKRq9ErtYnjt2em4FeT0l0GGmoCKz0T1tUEnmFGg7VZ+Cdl1dh0oBKOM6PVTa3YqLCn5KsHKnFdehJHvYiIyGs4HRlExFwpJdNkYgCj1MelNWi61O5ypEdpYJUUF6Frwrq7JH1XgWeY0YBGcxte/6zS5f7EPC+lg1ksykpERN7EkbAgMy0z1Tri426aTAxgHtxcrHjfz35QhqkZJqd9iQGd3OrMP9yVKTtdp7Ypthh4Ok41upo2LSitwsNbDrs9vgBAUBhXsSgrERF5E4OwIBRmNCgKDKZlpuJvvxiD3K2HnabmXKlqasWLO49h0pBkQADqzG3WQOnO0aluV0dOzeiLO67pZ/czx4Cr0dyGFTuOqm6KrSTwFFc9KvXj4cn49Hid7HYsykpERN7CICzE3XFNP6yBAQ9vUTYitmbvSazZe9LuZ6aeUWi9bHH7vNKzzei0CNbAqKC0ymn0ypWqplY8uLkYv85OQ84PCfauRsbkAk+1ddRuGtZHURDGoqxEROQtzAnrBu64JhWLcoZpfn51cxvOt3S43ca2PIXYXklNUPTqgUrM3nAQN6zao6noq5oRq9SEaPxyUhpSE6JZlJWIiPyGQVg3kTtlGEw9vTuqU3uhVVN7JVtaq++rGbFaPiMDkeFGVUn/REREemMQ1k2EGQ145s4MGKCsHZAWfXtEa2qv5EhL9X1x8YC7azMagL/94soqUjWrTYmIiPTGnLBuRGqloads63V9+NX3uuxT7cpEd3XURGtmj8Ed19gHVkpXmyqldvUnERF1XwzCuhnboOP/FVbi49Jqj/YnhhfLpmegqKIB5TUXPT/JH6hdmSgVZMqtwFS62lSOq8UISlZ/EhFR98QgrBsKMxowPj0Ji94s8XhfpoRo3Dk6FSt26Du6Bmhbmai0nIXeo1XiYgTHEbjqH3LcOL1JRESOGIR1U0UVDZoafNtaNn0kUhOisXDLYc2J+FI8qb7vbmTLG6NV7hYjiFX6pQrhEhFR98XE/G6o0yLgwAn5GllSxPINv5yUhhU7juoegAHKqu8DXddSeLIe75WcReHJerfJ/FKlM6o1rsgUyS1GEGBfwoOIiAjgSFi3o7SIqhTb8g2HTjXqPgUJAL+5Kd2p+r4raka1vDlapTR3jdX3iYjIFkfCuhG1RVQNBiAhxj5Oty3foHdQkRQbgb/9YiyW3pEhu63aUS1vjlYpzV1j9X0iIrLFkbBuQksRVUEAmi9dxqKc4UhLjnVKYtc7qIgMD4NRwccCLaNa3hytajS3y27D6vtEROSII2HdhCdFVLd9cRo/uaYfJg3pbTdVJxZI1Ut1c1cfyb/uKneb26VlVMtbo1WdFgErdsg3Dl82fSST8omIyA6DsG5C69Shu2m6MKMBy6bLTx2q9eKu48h+YbdkoryWUS25ivpae0UqDW57xUWp2i8REYU+BmHdhKdTh1KBT3mtfsVZbVU3t0muWNQyqiVW1Af07RWpJSBUs6KTiIhCF3PCuglxJKi6qVVTSQlXgU+nRcCmAxWKnp87eSiGpcSjvOYi1uw9ofi4trldYpHV6uZWJMVFoMHc4fI5tm2UbElV1De5WVEpV9RVbUDIqvpERCRiENZNKOmt6IpUQAN0TcWdv+Q6EHKUPTQZk4b0RuHJesVBmO1UaNOldkWlNeRGtZT2ilQaLMkFt7b3j1X1iYjIFqcjQ4jcNJc4EmRySKZPjI0AoH6aTulUXGLMler3crlZruwqq1ZcWsO2hIYUsaL+XVn9nRYbAMrKX4j3+sOvvses6wYCcH//ALhd0Sk+zqlJIqLugyNhIULpyI3USNDOsmrF03QipVNx87PTrIGO7YicUttLzkqO3BkAJMVF4vfTR8KUEONxH8hOi4Bn3v/GbfmLpe98jWfe/wbVzW3Wx8RA9nzLlZFB2/tXeLJe8YpOPZqJExFR4GMQFgLUTnO56q2odJrOlpI8s16xEcidMszpWOvmjsUz75e57V8pBlj1bupwCQDqze0wJcR4FLyI+V//r7DSLrhydbzGFucpWDH4WpQzDGnJcU73T+mo4YETdbo2FiciosDFICzI6dmOx13ja6nt3eWZGQCsvGeU29ysNXvK8eKucqfHxWfMGJ2K1z47JXsu1U2XUHiyXlMA42krJ1ubPqvEod9P1ZzAb5sv5ziSqWShABERBQ8GYUFOTeFSqQDLkzd3qRWHSlb8hRkNeCRnOH5k6uFyKvTO0al44/Mzis5jxY6jaLAZMVO64lBqFFGr8y0dWLPnBB7JsR/907I61XYkEwBXVRIRhRgGYUHO03Y8epRM0DKVKff8RnM7Fm5RHhw1OExZKllxqKWVkxKbPqtA7pShdtevZXWqOJK55J2v0dTSwVWVREQhRtXqyE8++QS1tbXeOhefW7t2LdLS0hAdHY0JEyagqKjI+pjZbMasWbOQmpqK2bNno6WlxY9nKs2Tdjxqm2C7I7fiUM3zx6cnYcUOz4IjJSsOPWnl5M75lg6XHQbEUcOEmAjF+xJ+2B9XVRIRhR5VQdjMmTORmpqKfv364Y477sBTTz2Ff/3rX146Ne968803kZeXh+XLl6O4uBijR4/GbbfdZg0y8/PzER8fj08++QQxMTHIz8/37wlLGDeoF+TiHaOhaztbcrlkAoAnt3+N7Yfty134otq7XsGRu5ZLgPZWTkpI7fvw6UbFtdWUkLtGIiIKXKqmIy9cuICjR4/iyJEjOHLkCD7//HP85S9/waRJk/Dhhx8iLi7OW+epu9WrV2PBggWYP38+AGD9+vXYsWMHNm7ciCVLlqCxsRHDhw/HqFGjMGLECNTV1fn5jF07dKoRcnGQRejazjYnTEmg02DuwKI3SwB0TVHeOToV7x+p8npekt7BkWPLIHHas+6C9CpITxWUVjlNy3701fd4eZ+yDgNqeTOgJCIi71AVhNXX1yMzMxOZmZmYM2cOAKC2thb33HMPVqxYgRdeeMErJ6m39vZ2HDp0CEuXLrX+zGg0IicnB4WFhQCA3Nxc3HLLLXjqqacwdOhQ7Nq1S3J/bW1taGu78obe3NwMACgpKUF8fLyXrqJL4bFatFXLV6AvLApDVFNf1c8TVVYD//dYqdPPT1UD9x8rxZN3jMD1Q/so3p+tTouAb842oaGlHYmxEfjunBlt1foFK42nYlBsqcFnJ87hlX0VOHfxyu/KaIBsEOsoOtyI1ssWt9u8W30C7+46gD7xUXjgpnRMGJyMvFcPou3SZS2XIEu8RvK+o0eP2v2XiELHxYve6YcsxSAIguK3IKPRCJPJhNGjR1u/srKyYDabcccddwRNvtj333+P/v3747PPPsOkSZOsP3/iiSfw6aef4vPPPwcAWCwW1NbWIiUlBQaD9JzfM888g2effdbr501ERETe19TUhJ49e3r9OKpGwsrLy3HkyBF89dVXOHLkCN566y1UVlYiMjISHR0dmDt3LiZMmICsrCzceOON3jpnnxGDTjlLly5FXl6e9fvm5mYMGDAAn376qddHwjotAn792heou9gm2bswOT4Kr953nV2yvNzztFh59yhcMyBR8fafnTiH5z/6VvfViSIDgCfvGAGLAKwq+Fb1iJeUPvFRGJnaA/vKlU1RGwDER4XjQpu2UbA5EwZhy+ddtdJsL0H8bYqjkK5G+sSROK2jlOTs6NGjmDt3LjZv3oyRI0f6+3SISEcXL17Ej3/8Y58dT1UQNmTIEAwZMgT33HOP9WfNzc3Yu3cv7r77bgiCgNdffx2LFy8O2NWEAJCcnIywsDDU1NhP39TU1CgKuhxFRUUhKirK6edZWVk+iaT/GN3P2gbI1Zv0H+eOxXUucraknqdVr0E/wtis/gDka4+1X7bg/9uxC5GmoToc2VlibAReuGcUAODBzcWISNHvOBcAfH4BiDIlKn5OOwDnV4gyN07KQs6NE9yWEikorcJfiqsgxA9AlE3cfwHAX4ovY2hGKstY6GzkyJEYO3asv0+DiHQkphP5iqogLCkpCVlZWdapyFGjRiE+Ph4fffQRhgwZgjfeeAMA0NnZ6ZWT1UtkZCTGjRuH3bt3Y+bMmQC6ph53796N3Nxc/56cBlIFU+V6P0o9TyuxDIZc7bGC0io8ub0UDWb9Vgk6Wjt7LCYO6Y0bVu3Rfd++LgbRt0c0Jg3pLVmLTc+uCURE5DuqgrCNGzdaV0a+9957qKysBADExsbirbfesm4XFham60l6Q15eHubNm4drr70W48ePR35+Psxms3W1ZLDRWjDV9nnVTZewYsdRNJrbVQUaBnQFfOPTk2T7WD5wUzpe2Vfh1SlIU0I0Jg7p7bU6YL5kwJXyIlJtpfTomkBERL6nKgibOXOmdeQI6CpZUVVVhf79+wdVeQoAuPfee3Hu3Dk8/fTTqK6uRlZWFgoKCpCSkuLvU9NMbe9HV8+LiQxTVdVdDPGWz8gAALcjMgCw4d/eDcDEcwkzGkKibIMA5/IijjztmkBERP6hqlirox49emD48OFBF4CJcnNzcerUKbS1teHzzz/HhAkT/H1KfidOUZoS7CvspyZE4zc3pSPV4eemhGhr2xwlI0961nZ1HOSzPRdAeTeBQCcXPHnSNcGWLwrxEhHRFewdSU7cTW0+MW2k5JSnr0dafjtlGK5LT0LdxTaX069ammYHIrngSe46baeLpejRQ5SIiNTxaCSMQpdUL0h3PSK9MfKUGBuBxFjXvRbzd5fjd/84gqhwo8t+lWLTbODKVGUwMaArEHIXPAHur9NxitYVPXuIEhGRcgzCSDfj05MkAyaR0eA+IEqKi8T/zB+Pv87KwtYFE3Ho91Nx6PdTsShnmMvt5QIFd9OrUvt01CPafwPG/3XtALy48xj+/M9jOHCiTnKKUOo6HadoHcmtrATYIJyIyFs4HUm62VlWjfMt7stOLLixa3WkY+K/GJg9f3cmbvyRfWHRTouAbV+ccbk/JSUYpKZXAWDbF2dkp/H2PHYzslft9mpJDUfREUYYDQb8dXe59Wdr9p6w1j9zFVRpWSHLlZVERP7DkTDShTii4k6v2Ag8MW2k6hEbNYGCFFfTqEqn8WIiw/D83aNgcLGdt7R2WNDS7lxv73xLBx50M/LnbrrYFa6sJCLyH46EdUNy1ey1ULIysrGlA0UVDapHbLwZKCgtdKt3YVtP6VV8Va+VlUREpB6DsG7GW6vg1AZKamqaeTtQUBoU2m63q6warx6o1HQ8Peg1RajHykoiItKG05HdiDdXwXkzUBIDBakxH6WrCKWoGRkMMxowPj0JH5VWazqWng6cqMP2w2fx6r+/w/bi/2iq7eXpykoiItKOI2HdhLf7CyqpyZUUF4Hq5lYUnqxXNQUqBgquKvl7GihoGRkMlHZIa/aecPpZUlwkZmb1w9QMk+J7rLX3KBERecYgCALXnuusubkZCQkJaGpqQs+ePf19OgCAwpP1mL3hoOx2WxdM1DzFJY60AfItj7RMgeo9lSrV51IMW6QWCrxXchaPbCtRfTxfU3tvvJErGIqKi4sxbtw4HDp0CGPHjvX36RCRjnz9/s2RsG7CF6vg1CSvi1Og7mpYudq/liblrngyMlhZZ1Z9PH+oUnmPtfYeJSIibRiEdRO+WgVnGyhVN13Cih1H0WBud9pO6xSoXoGC1vpYnRYBW4tOe3x8XxEAPLn9a1zqsMDUk6NbRESBhIn53YS3k9ttiYGSKSHGZQAmUlLfy1u0jgwWVTSgurnNG6fkNQ3mDix6swSzNxzEDav2sA0REVGAYBDWTfhjFVwgFwLVOjIY7EVL2Q+SiChwMAjrRrT2F9QqkAuBah0ZDPaipewHSUQUOJgT1s3omdwuJ5ALgWoteyFeUyCUqNCK/SCJiAIDR8K6IbX9BT05TiAXAlUyMthpEVB4sh7vlZxF4cl6ALBeU7AL9qlVIqJgx5Ew8qpALwTqbmTQXV2yNbOy8N/bSmTroQWyYJ9aJSIKdgzCyOt8OQWqhauyF1KFXKubWvHg5mIkxkYEdQCm10pYIiLSjkEY+UQwFQKVK+QKAOdbOhTvzzHnLBAsmz4yYIJgIqLuikEYkQO9e0MK6Ap69hyrxYET9brt1xO94qKs/6+kXRFbGhER6Y9BGJGDnWXVuu/zVEML0nvHBkwQtqusGpOG9FbUj1Pvnp1ERNSFQRiRjU6LgHdLvtd9v/+v8JTu+/TEqwcqER5mwCv7KlzmvYk9JwFI5sap7f1JRET2GIQR2SiqaHDbaimUbPi3cwAGXOnr+cz73wAwaGpyTkRE8lgnjMhGdXP3qZ3lrmC+AKC6uc3t/fBn708iolDAIIzIRsPF4GrOHQhY9JWISBtORxLZSIqLVLRdQnQ4mlovW79PTYjGsukZ6BUXiY9LqwIuB8ybWPSViEgbBmFENkwJMYq2+9uccTAaDZIlG0IlCEuMjUBTS4dknTOjAWg0c/SQiEgLBmFENpQ06E5NiMZENz035RqXBxO5orQWAVi45TDWGQ1cJUlEpBJzwohsiE3Hpdb6GSDfdNy2cXkoiI00Qm7x47MflOFAeZ210Xmnu6x/IiICwCCMyInYdDw1wT7XKTUhWnFdLHEfiTER3jpNn2lpt8iupKxqasWcVz/HI9tKMHvDQdywag8KSqt8do5ERMGI05FELujRdHxaZiriIsPxy41FXjzTwFT1Q6PzX2enISfDxDZHREQuMAjzIfbfCy6eNB3vtAhYs+cENu7/TuezCi6vHqjEqwcq2eaIiMgFBmE+wv573UdBaRWWvPO1bFJ7d8I2R0REzpgT5gMFpVV4aHOx04o78Y2JuTOho6C0Cg9uLmYA5kBMKXv2gzIm7RMR/YBBmJd1WgQ8+0GZZP89gG9MoUL8XZNrbHNERGSPQZiXFVU0uK05xTem0CH3u6YubHNERNSFOWFepvQNh29Mvqf3Qgm1v8OkuEg0mtuDvqCrWnUX2tBpEbgohYi6PQZhXqa0rx777/mWNxZKqPkdir0mF24phgHoVoHYih1H8ff9FVyUQkTdHqcjvUxsYeOuAntqQtcojF46LQIKT9azerkETxdKSN1fud+1SKy6f8c1qVj7izHoFRfcBV2TNJw/F6UQEXEkzOvEFjYPbXYe8RDfrOXa4KjBUhjuyS2UMKBrocTUDJPL34nc/ZX6XYt6xUZg5T2jMC0zFQWlVVix4ygazFdWUsZFhcHc1unpZfrUH+7KxIodR1X1ylRyr4mIlArWOpwMwnxAbGHj+OZt0hAcuXuhiSM8jm+ErNF0hZqFEmKhVvGe7yqrxqsHKp2e43h/Xf2uE2MiMD87DblThiHMaJD8XQVbADb5R31wxzX9YDQa3Aafrri610REagXz4AODMB/Row2Ouxfa1AyTRyM8agTrJw5A/UIJV/fckeP9lftduxuN80RSbASmjEjB/xb/R+c9Szt0qhGdFsEafGopUstFKUSkVbAPPjAI8yFP2uDIvdAezRmueoRH63kE6ycOQN1CCal77orj/XX3u/ZGKYukuAgcXJqDj0urfBqENbdetntNaSlSy0UpRKSFp+klgYCJ+UFAScHXTZ9VKNqXJ6MOUgntYrPmYEiyVrpQYtygXppGq5TcX6W/g9jIMNltDD98PX/3KIQZDai70KZo33pa/+lJHCivwzPvqytU641FKUTUfYRCHU6OhAUBJS80pSMQWkcdlEyhLXnn64D+xAEoXyhx6FSjptEqJfdX6e8gOtyIDb+6FnUX29C3RzQazW1YseOoy7xCALhh1R6/FIv99Pg5fHr8nKrneGNRChF1L6FQh5NBWBBQ+gJKjIlA06UOl4GSAV1v2FpHHZRMoZ1v6cCaPSfwSM4wTcfwFSULJd4rOatqn2ru7/j0JCTFRditinSloaUDRoMBd2X1t/7stsxUp1yznWXViqdNA4WWRSlERLZCoQ4ng7AgoPQFND87Dfm7yr1SCkNpILjpswrkThka8KMbcsnzav7Rqr2/YUYD7s7q73KlpSPH++6Ya+atJH9vuTUjBRPSk/DLSWmIDGc2BBFpJ6aXSJXH8XTwwRf4VzAIKM1jyp0yDOvmjoUpwT6AMCVEe7xCRGlQcr6lI+Dm36WKq4oBzV1Z/a3J9CKlhVcBbfc3J8OkaDu5+x5s/So/KavBih1H8eM/7Q2KHEIiClxiegkAp7/VwZLywJGwIKCm4KsepTBcGZ+ehMSYCJy/JJ97Fkjz71pXc8rdcwHA/dlpmJph0nR/9foE5+17bQDQS8HUqVrBsnyciAKbnnU4/SEkR8LOnj2LuXPnonfv3oiJicGoUaPw5Zdf2m2zdu1apKWlITo6GhMmTEBRUZHd42azGbNmzUJqaipmz56NlpYWX16CE/GFpmSUy90Ij1ZhRgPmZ6cp2jZQ5t89bU/k7p6vnzsWT8+4WtP9Feus3Z5psi6jtqXmE5w377V45D/clal4VFApMfB89oMyttUiIo9My0zF/sVTsHXBRPx1Vha2LpiI/Yun2L0vBmo7v5AbCWtsbER2djYmT56Mjz/+GH369EF5eTl69epl3ebNN99EXl4e1q9fjwkTJiA/Px+33XYbjh07hr59+wIA8vPzER8fj08++QQvvvgi8vPz8eSTT/rrsgDoU/DVE7lThmHTZ5WSKzEDaf5dr/oxet9zVyNzBgMg2Jyomk9wSkbUEmLCcf7SZbf7iYsMQ2S4AY0tV7azPQ8tFfHlsGI+EenFXW3GQK5vGXJB2KpVqzBgwABs2rTJ+rP09HS7bVavXo0FCxZg/vz5AID169djx44d2LhxI5YsWQKgK5gbPnw4Ro0ahREjRqCurs53F+GGJwVftbKtkD//+nTk7zru9EYcaPPvWtoTSdHrnksVfxU/kP06Ow05Kqc3lUxVv/DTa3D4dCNe3ue6lpwBwF/+a7TbYFNqyF+KAUBCbISi0imBNH1NRKEl0Cvqh9x05Pvvv49rr70WP//5z9G3b1+MGTMGGzZssD7e3t6OQ4cOIScnx/ozo9GInJwcFBYWWn+Wm5uLl19+GREREdi0aRMeeeQRn16HP7gari0orcINq/Zg9oaDeGRbCV7cdRwJsRFIjI2we64eyf96CrT6MXKrGA0APiqt1jTKpmSqeukdGfjbL8YgKc7+95Zqs43cNLbtkP+vs9MQF+W6mKz4rPnXp7t83FGgTF8TUWhRUujc3ykRITcS9t1332HdunXIy8vDk08+iS+++AK//e1vERkZiXnz5qGurg6dnZ1ISUmxe15KSgq+/fZb6/dpaWkoLy9HbW0tUlJSYDBIvzG2tbWhre1KpfLm5mb9L8zLXA3XJkqMZDS1dNUiW5QzDGnJcQHZPzLQ6sfoOTLnipJp0zuu6eeyzpia31uY0WCdbs68KhEHys9h59FaNNks2BCnMadmmLDti9NBvXyciIKXt//u6iEogrAlS5Zg1apVbrc5evQoRowYAYvFgmuvvRbPP/88AGDMmDEoLS3F+vXrMW/ePFXHNRqNMJnkSwmsXLkSzz77rKp9BxKp4VqpqSQxp2rbF2ewf/EUTcGXt5uA67H6UM9z9ObInON5/uSafpLn6enUqqtg3dQzCvdnuw7Ila7qJSLSW6DNiLgSFEHYY489hvvuu8/tNoMHDwYApKamIiMjw+6xkSNH4u233wYAJCcnIywsDDU1NXbb1NTUKAq4XFm6dCny8vKs3zc3N2PAgAGa9uVtjm/YWnskevIJwhdJkmrKevjiHL01MufLhFOpYL2muQ35u8qxbu5Yp9dCsC8fJ6LgFWgzIq4ERRDWp08f9OnTR9G22dnZOHbsmN3Pjh8/jkGDBgEAIiMjMW7cOOzevRszZ84EAFgsFuzevRu5ubmazi8qKgpRUVGanusNUiM4rt6wk+Ii0WBu13wstZ8gfJkkqTUA8MY5eqOys9R5ig3VF+UM1617gSerTf29qpeIuqdgqKgfFEGYGosWLcL111+P559/Hv/1X/+FoqIivPLKK3jllVes2+Tl5WHevHm49tprMX78eOTn58NsNltXSwYzqZGRO0en4pV9FU4vRE8CMEDdJwi9ykaooTYA8NY5ejoyp+Y8RS/uOo6tRafwzJ1XexzYeppb4Y9VvUTUven9d9cbQm515HXXXYft27dj69atyMzMxIoVK5Cfn485c+ZYt7n33nvx5z//GU8//TSysrJQUlKCgoICp2T9YOOuOOnLLgIwTxkNQKOKIE7NG7me1BSv9eY5qim4K0dpu6Lq5jZFhWnleJJbEahFEoko9On5d9cbQm4kDAB+8pOf4Cc/+YnbbXJzczVPPwYiJUtx9WYRgIVbirHOqOyFHChJku4S7r19jo4jc8nxUYAA1JnbUHiyXvE0ndrjezrCqDW3IpCLJBJR9xDIKREhGYR1R/5s5Kz0DT4QkiSl8uJmZvXD1AxTV1CkgCfnKI7MFZRW4Xf/OKIpQFFzfD2WYWvJrQj0IolE1H0EakpEyE1Hdld6jB45FvJUQs303LhBvSD3wcNo6NrOG6SmaxvM7dh4oBKzNxzEY2+VIDE2QrJPogFdgZKniZye9rUUgyI1n+M8eY2IuRWAsl6XwVAkkYjI3xiEhQhPRmbEwOLA4luQFBepaR9K3uAPnWqE3HuuRejaTuQqn0hLjpGSRHagK4fq/A/FaD1prK31XJQGKLZBkVKejjCqya3wV/4fEVEw4XRkiJCbLpJiG1iUnDmvebXkJ99U4a6s/m63UZtvJVXFH7AvJKtkCk/NdK3Y9zA6PAzVzfrXttKrirMYFD3zfpndeTrScxm2XG6FmG/3scKFAOwbSUTdGYOwEKFkKe4DN6Xj/SNVkjWz3is5q/n4O76uwbQj32PG6H6S26jJCVNTxV+cwlv7i7HoFRfpUcI90HXvzrd04I1fj4XRaPAokdPVIgA9k//FoGjNnnK8uKvc6XFvLMOWyq1wFTTLYd9IIurOGISFECXFSZ+YNlJyFMPTN8T/3noYEWEGyZEipcnd4wb1wo//tFfxiJ64Xe7WYrvpTtsRMi3XVmdusxvdE6dBlQZlUisDZ12nrJuC0nMOMxrwSM5w/MjUw2+V6aWCZimBUCSRiMjfGISFGLnpIncrRLROadpyt1JSaeG8Q6caNa30dEyhsl2FNzXDpPrakuOurJRUW2rB3crAF3eVIzE2wtoI3ZHWAMVfy7CV5tuJAqVIIhGRvzExPwSpKU7q+DypFXBKySVbK0nu1itPyDbJHYDqa3vsH0dQUFqleiWjkqr7Ir2T/7X+7j2htjxKoBRJJCLyN46EkR2pKU015IIouREbPfOEbJPc1V5bTXNXD8bE2AhVbYyUJN6fb+nAopzh2PbF6aBvbK00aP7VpEG4PTM1YIokEhH5G4MwP3BXsT0Q2AZJB07UYc3eE6qeLwZR7q7T29OijsRAwfbadpVV453D/0Fjy2WXzxGP7WoxgO02jisZd5VVKzqntORY7F88JaBfC0ooDZpvz0wNyGKJRET+wiDMx4KtjcuQvvFIiotAg1k6ELElFjL15Drd5Y5pZRsoiAHgpCG9MWVkCub8/XOP929bVuPVA5WKzylQqziroaWaPhERMSfMpzytku4rBaVVuGHVHszecBCL3ixRHIABXdXud5ZVK7pOd0VXpXLHEmMjrLXCRO4GjuQq3NddbFN8be707RFtzQWTo1fV/UChtpo+ERF14UiYjyhJ1va0ybIe1JYacPThV1XYf6JO9jotFgErdhx1O1ImlTvWaRHwP4WVONXQgkFJsUjpEYX/3lZiPYZISQDgaf6Z7SiP0gR1QeacgpGS8ihERGSPQZiP6FUl3ZvUlhqQoiSH6uEth50eq2rqSoT/2y/G4I5ruoq+Ok7XSU1zyhWilaJkKi3hh3IS4vnbPgZcCaiUJqjfn50WkkGJv0pkEBEFKwZhPqJnlXQ92SbP111o07wiUk8LtxxGvkVwaoPkrvbWK/sq3FbMl6KkdtkL94wCANlRHqWjalMzTIq2C0ahkONGROQrDMJ8RE3LHl/R0mbGFwQAj2wrwYdffY8Nv7oOgLLp3BU7yrB/8RTVIy9Kp9LkRnmYoE5ERGowCPORQHuD9jT3yxd2ltXiuR3f4KnpV+PgyXqvTucqmUqTG+VR2hGA03NERAQwCPMZf75BO9brGjeoly65X67I5VCpPebf/12Ja67qhWXvlira3pPpXMcgq9Mi4EB5HQq/qwPQ9djEwe6r0DNBnYiIlGIQ5kP+eIMuKK3CM++Xobr5yvGS4iLRYG7X/VhKcqiWTc/Aih3Kp0AFdDUGV0qv6dyC0ioseedru0UGa/aeQGJsBF64Z5Tb3xUT1ImISAkGYT7myzfogtIqPLi52OnnWgIwo8G+QXavH1r52AYpSnOojEa4PC9P6VV7S+q+AV3X++DmYqyX6X3IBHUiIpLDIMwPfPEG3WkRsOSdrz3ax1N3jETfnlHWKcxDpxrtAioAmnKopmWmYsGN6djw7wqPzs/RnaNT7Y6vpT1Up0XAM+9/I3usQKjpRkREwY1BWIg6+F2923pdSry6/zs8c+fV1kDKVUAl/kxNwFNQWoW/6xyAAcD7R6rwxLSRCDMaNLdNKqpoQHWzfBV9f9d0IyKi4McgLEQVnqz3eB81zW14aHMx1slMvakJePQqCOuKGBg1XWqXrCfm7no6LQIOnDin+Hi+rulGREShhb0jQ5ayMCcuMsztHgQAT27/Gu2XLS63UdsPU2lrH62qm1vd1hMT0DWVaNunErjSL3PN3pOKj+XLmm5ERBR6GISFqEmDkxVt99tbhspu02DuwMSVu50CKrkCqoBzwOPt0aOGi/JV/6uaWrFmT7n1e6lA0h2pRQBiWYs///Nb/Pmfx3DgRJ1TwEdERARwOjJkTRzSG4mxEW7zwhJjIxSP5jSY2/Hg5mIsyhmGtOQ49O0RDYsgqC6g6q3RIwO6Sm9U1JsVbf/irq4gbGBSLFbsOKp6etRVTTdPyloQEVH3wyAsRIUZDXjhnlFuS0G8cM8oJMREqtqvGLwAQGJMhKLn2I5+jU9PQlJcBBrMni0acCQAqDe3Y/PB04qfY3stSvWKjcBKFwGVHmUtiIioe+F0ZAiblpmK9XPHwtQzyu7npp5R1oBAbKekpdDC+UvKAinb0a8wowF3OzTmVsvgx6oQz810DsDUlLXg1CQREYk4Ehbi5IrD2rZT0ptUP8ycDBNePVCpeb8J0eFYO2ccai+0YcWH3+g+qiZFbBJ+W6YJwJUaaXUX2ljWgoiIVGMQ1g3IFYcV2yk9uf1r3QIad/0w5ZqZyzl/6TK+rGzA+PTePgvAgCs5bv9393G89eV/NK3yZFkLIiIScTqSAHQFYgeX5iApTl2OmBRTQrRkPS5x9A2ApmlQoCufa2dZtQdnqN1fd5/QXGaDZS2IiEjEIIysIsONeP7uTBigPTgCgEU5w7B/8RTJJPROi4CEmEjMz05DfLT2wdj3Sr7X/Fx/SIyJ0KW3JRERhQYGYWRHnJo0JWgbsTEA2PbFGcnHxaKoszccxMYDlbjQelnjmXathkyKi/AoYPSl+dnp7DVJRERWzAkjJ47J/JV1LcjfdRyAfB1+V7XBRGJRVD3XB96d1R8bD1TCoODc/CkxNgK5U+QL4xIRUffBIIxcckzm/5Ep3qk/pDuOCeje6hnZMyYS6+aOdSqSGmheuGcUR8GIiMgOpyNJkWmZqdi/eAqWTR+paHvHBHRv9YzM33UcFgsQHS7dA9OXHOOs1IRoFmklIiKXOBJGioUZDbgvOx1/318hWV5CqjaYN0szLHuvFPXmdq/tXwkx9lozeywSYiNQeLIegIBJg5MxkXXBiIjIBY6EkSruyku4qw2mpTSDksk7sV2R1n2mJkTjNzele7wiVCzJYTQCv/vHEazZewJr9p7EnFc/xw2r9jg1PyciImIQRqpJraBMiI3AoznDMTXDZPfzTouAy50WxEepmzLsFRuB2Eh9pxnF0bvYiDD8bGx/fPr4ZCy9I8P19USHIzrc/T+RxNgIvPHrCdi/eAoA4KHNxU7TrtVNrXhoczEDMSIissPpSNJEXEG5Zk85Nh2oxPlLHTjf0oEXdx3Hti9OY/mMDEzLTEVBaZXmpPnZ4wdi7b9OeuHsgZaOTvxv8Vl8VFqN39w0BLlThrps77SzrNptE/R7r70K2cOS3S48ENA1yvbsB2WYmmFigj4REQFgEEYe2FlWjfxd5U6Bhzjy88BN6Xh5X4Xm/Rt80Km7pb0TL+46jk2fVeCFe5ybc0/LTMVv3FzHy/sqEBsZjmsHJbldeOCudAcREXVPnI4kTeRGfgBgw7+1BWAGdOVq+TJYOd/SgQddTBl2WgS8f8T9NOKLu8qx4H++VHQc9o4kIiIRgzDSRK7khADAoqEomG1y/8TBvZGaEO3TivjPflCGTpsTV1pao6W9U9H+2TuSiIhEDMJIE2+N6Ng2/taj0bda4pShSM/r7B0Xyd6RRERkxZww0kTPEZ1l00ciuUeUNRneNnFdXImpplq/p3aVVVunQvW8zruy+skm5XdaBKfFAUzkJyIKTQzCSJPx6UlITYh2W7TVYJCfkjT1jMJ9Mo2tp2WmYsqIFExcuQsNZu+3Jnr1QCWuS0/C1AwTLBYBsZFhiqcb3XEs3eGooLTKKdhMTYi2rjQlIqLQwulI0kRJ0dYFN6bL7ueZO69WNNJz6FSjTwIwUd5bJch+YQ/mvPq5LgFYqk0XgU6LgMKT9Xiv5CwKT9aj0yJYm5uzxhgRUffBkTDSTGqq0GQzejNmYC+XdcISYyNcloSQ4utVhS3tFrS063fMWdcNAAB89FUVfv9eKRpsqvybekaj9XIna4wREXUzDMJIEalcJbFoq1Qek/j4we/qnfopqgkolOZmzczqh3dLvtdyiV714q5yvLzvO5ejatXN7oM91hgjIgpNDMJIllyuUpjR4DY4CDMaMHFwbxgNBtReaIVRRfAlBn/Vza1IiouQnJIUG4f//NoBARmEAcrLWEhhjTEiotDCIIzcEnOVpKrii+Uk5PahJeHc1fNccawtplcifaDp2yOaqyeJiEJI0CXm79u3DzNmzEC/fv1gMBjw7rvvOm2zcuVKXHfddejRowf69u2LmTNn4tixY07brV27FmlpaYiOjsaECRNQVFRk97jZbMasWbOQmpqK2bNno6WlxVuXFZCUVMV3LG7qSGvCudTzXLGtLfbP0uqQC8DEDgKN5nbcsGoPZm84iEe2lWD2hoO4YdUeJu0TEQWpoAvCzGYzRo8ejbVr10pu8+mnn2LhwoU4ePAgdu7ciY6ODtx6660wm83Wbd58803k5eVh+fLlKC4uxujRo3HbbbehtrbWuk1+fj7i4+PxySefICYmBvn5+d68tICjpCq+Y3FTW1qDOHfPA7qCkt5xkXjxv0Zj64KJ2L94CqZlpqLTIuD375XKXVbQEQCMG9QLC7dw9SQRUSgJuunI22+/HbfffrvbbQoKCuy+f+2119C3b18cOnQIN910EwBg9erVWLBgAebPnw8AWL9+PXbs2IGNGzdiyZIlAIDGxkYMHz4co0aNwogRI1BXV+eFKwpcSnOQpLZTGsQd/K7emi/Wt0c0LBZB9nn15naYEmLsctGKKhrsVh0Gm/iocMRHhaG6uc3psQ+/ch1kKVk9ySlMIqLAFHRBmBZNTU0AgKSkrjpN7e3tOHToEJYuXWrdxmg0IicnB4WFhdaf5ebm4pZbbsFTTz2FoUOHYteuXS7339bWhra2K2+czc3N3rgMn1O6IlFqO6VB3MI3inH+0pWE+8SYCEXPc9y/txPXUxOisWx6Br6tbsb/3XNC9/3/8afX4LZME9bsOYEXdx1X/Dx3qydZAJaIKHAF3XSkWhaLBY8++iiys7ORmZkJAKirq0NnZydSUlLstk1JSUF1dbX1+7S0NJSXl+PMmTMoKytD//79XR5j5cqVSEhIsH4NGDDAexfkQ2JVfKkxEzFXSaofotIgzjYAc/W9FMf9q2kxZADQK1ZZsJc7eYh12vO2TBO+P39J8XGU+s1N6bjjmq6gaNsXpzXtwzEIZQFYIqLAFhBB2JIlS2AwGNx+ffvtt5r2vXDhQpSWlmLbtm2anm80GmEymWAwSE/fLF26FE1NTdavM2fOaDpWoFFSFX/5jAzJqa1GL00NSgV/YtCohADAIsj0VPrhOIum/giThvTGzrJqZL+wB/9bfFbDWQNxkWFIdAj8kuIi8LdfjMHSO7rus9wUrju2QageiyqIiMi7AmI68rHHHsN9993ndpvBgwer3m9ubi4+/PBD7Nu3D1dddZX158nJyQgLC0NNTY3d9jU1NTCZ3Pf3cyUqKgpRUVGqnxcMpmaY8GjOcGw6UGE3QmWSmdLqtAhYsaNM9/NxF/yJQeODm4vd7qNXbAQaWzrQdOmy7PHuHN1VB+2jr6rw8Bb3+5Vjbu/E3352DXrFRUnmZ2mZUhVrpNkGpWoWVbAALBGRfwREENanTx/06dNHt/0JgoD//u//xvbt2/Gvf/0L6en2PQwjIyMxbtw47N69GzNnzgTQNW25e/du5Obm6nYewc5VPlFiTATmZ6chd8owt8ndnozo2EqMiVAV/Ml59Jah2PaF8pHK949UYVS/BPz2zRJNx7NlALBix1HsXzxF8t6pmVIV9wk4B6WeLqogIiLvC4ggTI2LFy/ixIkrSdEVFRUoKSlBUlISBg4cCKBrCnLLli1477330KNHD2ueV0JCAmJiYgAAeXl5mDdvHq699lqMHz8e+fn5MJvN1tWS3Z1UkdamSx3I31WOH5l6uA2E9HpzXztnrN3KSXcr+8QpOHdeL6xEY4v8CJioqqkVudtK1JyyJCWjT+KUanVTq2SJDltSQamniyqIiMj7gi4I+/LLLzF58mTr93l5eQCAefPm4bXXXgMArFu3DgBw88032z1306ZN1mnPe++9F+fOncPTTz+N6upqZGVloaCgwClZvzuSyydS0lDa0zd3cYpt4mD5HpNiCYYDJ+pkR9/UBGDeIhegjhvUS7IkBQAsyhmGtOQ4t0GpXDDnagqTiIh8K+iCsJtvvhmCTEK13OOi3NxcTj+6oEc+0fj0JJh6RrttTi3mZkkdw13Sv0hpa6NAUlnnuvNCQWkVlrzzNc5L3BOgaxXlIznDZY8h5sc9tLkYBsAuEFOyqIKIiLwvIFZHUmDRI59oZ1k1Wi+7bx90bVovVeflSE1ro0Cy7YvTTqsSC0qr8ODmYrcBGNCVo6Z0ReO0zFSsmzsWJocVo7ZtnoiIyH+CbiSMvM/TfCKpfDJHO8tqJR9TUgXeXWujQObYJSA5PgrPvP+N4ueqWdE4LTMVUzNMrJhPRBSAGISRnU6LAIsgOK1KtOUun0iv4EhuylOv1Zf+4tglQA21ix7CjAaWoSAiCkAMwshKSX6VXD6R3sGRVMAR7KUVtAZgAFc0EhGFCgZhBED5FKJcnS69gyOpgKO7BiLu2kQREVFwYRBGiqYQE2MjsHb2WEwc4r5khF7BkVwJBbX1tMQVgo4rBYOJAVzRSEQUSrg6khRNIZ5v6YDRaJANAOSafiuhpISCbV9LJQQAi3KGO60UjI0Mw0/H9kdCdGB/HomLDOOKRiKiEMMgjHRtceOu6bctww9fv7kp3anpttISCmIJhoSYCLfbidKSY7F/8RQsyhmGxB+e09LeibeLz8IQ4KNLr/zqWgZgREQhJrA//pNP6N3iRgyO3CX52+aWPTFtpEclFJRu2rdHNHaWVSN/V7lzO6Yf6nPFRhjR0mFRfGxfSIqLwMTBXN1IRBRqGISRV1rcONanSo6LAgxA3cU2p0BLawkFpYsJgK5Arf5CG577+KhkOyYAAReAAcDdWf2ZB0ZEFIIYhJHHLW7E3o2OI1lKgiup58pRW4/MIgC52w4r3Dqw5GSY/H0KRETkBQzCCID0FKJcSQpXtcVSZZ7jyXPVNOsOdmyyTUQU2hiEkZXaFjdS04HVTa14aHOx2+R6Lc8NxmbdnhIXORSerGfbISKiEMMgjOwozc9yNx0o1uOS6v2o5blq8r9CQWJsBF64ZxQA4IZVezSNNBIRUWBjiQrSRK62mG3vR0+fG8zNurVaO3ssAOChzcVO96qqqRUPbi7Gig++QeHJenRautOdISIKHQzCSBOltcV2lVVrfq64XbA361YrPioc16UnyQaerx6oxOwNB3HDqj0oKK3y2fkREZE+GISRJkprhr16oNIpQFBbl0yPfpTBlEF1se0yHnvrsOLAU8yjYyBGRBRcGISRJmraEz37QZndlNn49CQkxrqvct8rNsK6KlBp0DYzqx9yJw/Bo7cMg6mn/XNSekbJHjOQfPCV8wiiFPHOOt5nIiIKbEzMJ03E2mIPbi6W3VbM71JTkLXt8pWiqUqadRsNwLsl31u/N/WMwqKcYUhLjkPfHtGwCALm/P1zxccPNrZ5dFoK3xIRke9xJIw0m5aZivuz0xRte+DEOesoTVFFA87/0CZISkt7J17aXY7Ck/X48KvvMeu6AdaVk644DgDVNLchf1c5osKNmDSkN2ovtCk6z2Cnx9QtERH5BkfCyCNTM0zYeKBSdrs1e0/i7eKzWD4jw26Uy52/7i6HsLvc+r04nWgbwBkNzgEY4FzqouFi9wjClE7dEhGR/3EkjDyiJjdMTCCvrGtRtG9XTbabWjqwKGc4/jorC8umj3QZgNk+X5yiS4qLVHTMYGVAV/0wVtcnIgoeDMLII2JuGCC/AlGMl7Z9cRoJ0eoHYW2f/5Nr+iG5R5Si59VeaMXphkuqjxdMBLjv70lERIGHQRh5TOw7aUqQnwoTR6emZqRoOpbt6JbSqbfkuChsLTqt6XjBIjE2AlPZ6JuIKKgwCCNdTMtMxf7FU5A7eaii7bOH9UFcZJjm49VeaJWdChWn6GAAqptDO2H9fEuHy+4EREQUuBiEkW7CjAZkD01WtO3pejPM7Z2aj9W3R7TbqVDx++UzMlDXTZLyuTKSiCi4MAgjj3RaBBSerMd7JWdReLIe4wb1UjQ65cn0oG0hV6mpUFNCNNbNHYtpmandZsVgd7lOIqJQwRIVpFlBaRWe/aDMrr2OqWcUrkvr5bLiuxiYzbpuIF7cdVzzcW0XRHZaBCTEROKJ236EBnM7kuKjYOrZtUpQTFIXpy1Dtf+kAV1BJ1dGEhEFFwZhpElBaRUe2lzsVEaiurlNsuWOKSEay2dkeJy7dL6lAwdP1uPLUw3YdKAS5y9dqRuW+sMxwowGdFoEFFU0oPZCq8eBX6DjykgiouDDIIxU67QIePaDMskWQq7ER4Vh2fSRAKCouKucB/7nS5c5ZdVNrXhwczFmXGPCv8vr7QK0xJhwNLVehhBC7RWNBmDN7DGYlpnq71MhIiKVGISRakUVDaqn9i62deLhLYd1a6ItldQvxleuRuOaLl1WFDiGGw24HCSNsC0C0CtOWb00IiIKLEzMJ9U8WYUn1zPSm8RWRomxETD1lE5iD5YATMRVkUREwYlBGKnm7VV4t4zoAwPkK/BrIaArEPzTT68JmVZGXBVJRBScGISRamr6RWrx/904RHEFfq0+r6xHg7ld8/Mdrz01IRqTf6SsRppe2C+SiCi4MSfMR2xX6vXtYV9CIdiIRVIf2lwMA5wbbWtlW2ohzGjA1AwTXjtQgRU7jup0BMejaffILcNwXVoS6sxt6NsjGvUX2rD03a90OjdllPSLDKXXHRFRqGEQ5gOu6mmJpRSCdVWbWCTV8brcMQBIiI1A0w95YYLDYwCwbPpIu6DBG1OGpp5RmDSkN9bsPaF5H/m7y2HqGYVn7rwa/zpWg5f3Veh4hsrERoahR3QEOi2Cy8AqFF93REShxCAIobRgPzA0NzcjISEBTU1N+Oy02WU9LfEtU6zqHsjcjabYPlZZ14JNn1W4TL63vV4ATsFBUlwExgxIxOEz59Fg7rD5eaRH04auLMoZhtwpw3DDqj0hUcDVVWAlVcctmF53gaq4uBjjxo3DoUOHMHbsWH+fDhHpyPb9u2fPnl4/HkfCvMhdPS1xpd6zH5RhaobJ51NESqep5EZTwowGTBrS2/pY7pShWLOn3KmIqskhUJiaYUJRRQN2llXj3ZLv0WBux+5vzzkdv1FhAGYAMHpAIkrOnJfdNi05zjql+uDmYkX7D2TVTa14aHOxNbAK5NcdEZG/BVKaBoMwLzpU2eh2pEUAUNXUiqKKBrtAxtuUTlNJVsV3eNO3FWY04JGc4cidMsztizzMaEDTpXZsOlDpNqdM6TDt2l+MQa+4KMzecFB2W3E14bTMVKyfOxaP/eMIzG3am4n7m2NgJVfHzV+vOyIifwu0NA2ujvSicxeVTXX5ss6TGFg5vkmLgVVBaRUA+VE8oOtNv1OippY4QnZXVn9MGtLb6VOGlqr7cVFhTj9LjI3A+rljccc1/WRXbbpaTTgtMxWHl92K6Ijg/qdgG1gpfT2xvhgRdSdK3/98KbjfeQJcn3hlJRZ8VedJTWClZjRFCy1V98MdArlesRF4fuYo66cXcYoRcF77KH7vajVhZLgRc8YPVHUugUoceVSC9cWIqLvwdGDBWxiEedG4tF6qR2a8SU1g5e3RFC3Pa7p02e778y0dWLjF/tOLuGrTscaYKSHabTJ6ToZJ9floERvpPJqnp8q6Fk0jgkREoUzp+9+hykbfnRSYE+ZV7uppuRuZ8RY1gZW3R1P0GIWRSjKflplqzY1SmngpBi7eXi3ZItHzUi/bvjiN3ClDA+p1R0Tkb0rf/5SmEemFI2FepnVkxhvUBFbeHk3Rq+q+1LSoXE6aI9upzGAm3otAet0REfmb0vc/pWlEeuFImA9oGZnxBjHwqW5qlUyI7x0XiXGDenl9FE9p1f3E2AhFTb/1SDKflpmK+denYdNnlR7vy58OnDiH8elJAfO6IyLyN7n3P7Fjy7i0Xj49L46E+YjakRlPdFoEFJ6sx3slZ1F4st6aaKhktKfe3I6JK3fho6++1zSaInVsV6T23zsuEvdnp2Hrgol46d4xiq45OS5K0XZyruoVo8t+/GnN3pO4YdUeFJRW+fR1R0QUqLQu3PI2joQFCNvicclxUYABqLvYpnr0oqC0Cs+8X4bq5isjQ6ae0Xjmzq4aKNMyU/HATenY8O8KSMVHDeYOPLzlMKYU/wcLbhyCPY/djC2fn8KphhYM6BWLEaYeaGhpR+HJertz01J/RW605sCJOkXXrVc3cU/bJMVFhsHc3qlrT00t3NVyAwKrWCERkS9ItduzLSbe3Nzs03NiEBYAXAUvtpQWkisorXJZAb66uRUPbi7G+h9aBr2yr0JRgLDn23PY8+05GA2QDNjEcwOgurCryLHqvq26i20KzlT5dnJMCcpGwuKjwnGx7cpqzcTYCMy/Ph25U4ZiZ1m1qp6a3uCuMn6gFSskIvKVQEvTYBDmZ1JV6W1JBTKOo2dL3vna7bGWvP0VoiPCVY/QuCubIp5bQmyEV9rk+LrmlZJVkrGRYSheNhWHTjW6/Efs+I+8vOaiR83CRTERRjz446EY1jceK3bIB3muKuNr6YJARBRK3H3w9zXmhPmR0qrxwg9fT20vRftlC4CuN9MbVu3B7A0H8ci2Esx59XPZBPbzly7bTVPqQTw3d8d2XMGoJm/M1zWvlOTNtbR3Ys+3NW5zrRxzsfRwqcOCF3cdh9EI7F88BbdnKqttJi5aCNRihURE3RVHwvxIbdV4MWn+5+OuUjylGEhqL7SqngrzR621qRkmt6sy1YzsdeXofaPbuQHAkne+xpQRKfi8ol7R9uIoIXtKEhEFlqAbCdu3bx9mzJiBfv36wWAw4N1333XaprOzE8uWLUN6ejpiYmIwZMgQrFixAoJgH7asXbsWaWlpiI6OxoQJE1BUVGT3uNlsxqxZs5CamorZs2ejpaVF12vRUlahwdyBl4MwAAO6qrlr6dvl65pXRRUNqkb2pIhTf9XN+uSric63dODJd75Gg1m+dEfvuEjrKCF7ShIRBZagC8LMZjNGjx6NtWvXSm6zatUqrFu3DmvWrMHRo0exatUq/PGPf8RLL71k3ebNN99EXl4eli9fjuLiYowePRq33XYbamtrrdvk5+cjPj4en3zyCWJiYpCfn6/rtfijd5/BD7mHBgCmnlHYWnRa81TYtMxU7F88BVsXTMRfZ2Vh64KJ2L94ilfyl/QIVpRONfeKjUBijPoB6Y8UNpq9K6ufdbSOPSWJiAJL0AVht99+O/7whz/g7rvvltzms88+w1133YXp06cjLS0NP/vZz3DrrbfajXStXr0aCxYswPz585GRkYH169cjNjYWGzdutG7T2NiI4cOHY9SoURgxYgTOnz+v67XoVTVeqfiocAheGEIzoCuYEP/f8TEAmD1+oNt8NCWjS76qeaVHsKJ0qnnN7LE4tOxWLMoZrvj8AOXtj6ba9MRkT0kiosASkjlh119/PV555RUcP34cw4cPx5EjR7B//36sXr0aANDe3o5Dhw5h6dKl1ucYjUbk5OSgsLDQ+rPc3FzccssteOqppzB06FDs2rXL5fHa2trQ1nZlyqmpqQkAFNUb+d3kAch78wgA79eVunPMQGw+eFrXfYp5Wr+fORoA8MLH36LGZvotpWcUltw+Au2XLbC0yU/nVladw9V9InQ9R7VG9A5Hn6hO1Da3SVZW7tszCiN6h0v+jiurzim63tM1dRiVEon541NwVbyAlR99i9oLyqYvE6LD0dx6WfJ1k+LiHKVeb+Lv8XeTh8F88YKi43dXFy9etP7X1zWFiMi7xH/TjulLXiMEMQDC9u3bnX7e2dkpLF68WDAYDEJ4eLhgMBiE559/3vr42bNnBQDCZ599Zve8xx9/XBg/frzTvqqqqgSLxSJ5HsuXLxcXCfKLX/ziF7/4xa8g/zp58qRnAYpCATEStmTJEqxatcrtNkePHsWIESMU7e+tt97CG2+8gS1btuDqq69GSUkJHn30UfTr1w/z5s1TdW5GoxEmk/tSAEuXLkVeXp71+/Pnz2PQoEE4ffo0EhISVB2P7DU3N2PAgAE4c+YMevbs6e/TCVq8j/rhvdQP76U+eB/109TUhIEDByIpyTdpGQERhD322GO477773G4zePBgxft7/PHHsWTJEsyaNQsAMGrUKJw6dQorV67EvHnzkJycjLCwMNTU1Ng9r6amRjbgciUqKgpRUc69CxMSEvgPQic9e/bkvdQB76N+eC/1w3upD95H/RiNvkmZD4ggrE+fPujTp49u+2tpaXG6gWFhYbBYugqdRkZGYty4cdi9ezdmzpwJALBYLNi9ezdyc3N1Ow8iIiIiKQERhKlx8eJFnDhxpQVMRUUFSkpKkJSUhIEDBwIAZsyYgeeeew4DBw7E1VdfjcOHD2P16tW4//77rc/Ly8vDvHnzcO2112L8+PHIz8+H2WzG/PnzfX5NRERE1P0EXRD25ZdfYvLkydbvxVysefPm4bXXXgMAvPTSS1i2bBkefvhh1NbWol+/fvjNb36Dp59+2vq8e++9F+fOncPTTz+N6upqZGVloaCgACkpKR6fY1RUFJYvX+5yipLU4b3UB++jfngv9cN7qQ/eR/34+l4aBMFX6zCJiIiISBR0xVqJiIiIQgGDMCIiIiI/YBBGRERE5AcMwoiIiIj8gEGYSvv27cOMGTPQr18/GAwGvPvuu07bdHZ2YtmyZUhPT0dMTAyGDBmCFStWOPWiWrt2LdLS0hAdHY0JEybYNRgHALPZjFmzZiE1NRWzZ89GS4t8L8JgouRerly5Etdddx169OiBvn37YubMmTh27JjTdt39Xrpy9uxZzJ07F71790ZMTAxGjRqFL7/80m4b3jd57u4R7480udcfX3vO5P4m8u+hcnL3MlDepxmEqWQ2mzF69GisXbtWcptVq1Zh3bp1WLNmDY4ePYpVq1bhj3/8I1566SXrNm+++Sby8vKwfPlyFBcXY/To0bjttttQW1tr3SY/Px/x8fH45JNPEBMTg/z8fG9ems8puZeffvopFi5ciIMHD2Lnzp3o6OjArbfeCrPZbN2G99JZY2MjsrOzERERgY8//hhlZWX4y1/+gl69elm34X2TJ3ePuvv9kSL3+uNrzzW5v4n8e6ic3L0MmPdpn3SoDFGA6wbi06dPF+6//367n91zzz3CnDlzrN+PHz9eWLhwofX7zs5OoV+/fsLKlSutP3vssceEVatWCYIgCKtWrRIef/xxna8gcEjdS0e1tbUCAOHTTz+1/oz30tnixYuFG264we02vG/y5O5Rd78/UuRef3ztyVPyN5F/D5VxdS8D5X2aQZgHpP6RPPfcc8KgQYOEY8eOCYIgCCUlJULfvn2FzZs3C4IgCG1tbUJYWJjTc3/1q18Jd955p/X7iooKYfDgwUJ4eLgwYsQI4T//+Y/XrsXflAZh5eXlAgDh66+/FgSB91LKyJEjhUcffVT42c9+JvTp00fIysoSXnnlFevjvG/ylNyj7nx/3HH3+uNrTxklfxP591AZV/cyUN6ng65ifjBYsmQJmpubMWLECISFhaGzsxPPPfcc5syZAwCoq6tDZ2enU3X+lJQUfPvtt9bv09LSUF5ejtraWqSkpMBgMPj0OgKNxWLBo48+iuzsbGRmZgLgvZTy3XffYd26dcjLy8OTTz6JL774Ar/97W8RGRmJefPm8b4poOQedef7446719/UqVP52tMB/x56JlDep5kThq5fhsFgcPtle9PlvPXWW3jjjTewZcsWFBcX4/XXX8ef//xnvP7666rPzWg0wmQyBc0/Er3vpa2FCxeitLQU27Zt0/T8YLuXjtTcW4vFgrFjx+L555/HmDFj8MADD2DBggVYv3696uMG+33zNt4fZ3q9/nhvpXX3v4eeCpT3aY6EAXjsscdw3333ud1m8ODBivf3+OOPY8mSJZg1axYAYNSoUTh16hRWrlyJefPmITk5GWFhYaipqbF7Xk1NDUwmk+rzDyR630tRbm4uPvzwQ+zbtw9XXXWV9eehfC8dqbm3qampyMjIsHts5MiRePvttwF0r/umFe+Rdu5ef7yvnuPfQ88Fyvs0R8IA9OnTByNGjHD7FRkZqXh/LS0tMBrtb21YWBgsFgsAIDIyEuPGjcPu3butj1ssFuzevRuTJk3S56L8RO97KQgCcnNzsX37duzZswfp6el2j4fyvXSk5t5mZ2c7LV0/fvw4Bg0aBKB73TeteI+0c/f6433Vjn8P9RMw79NqE9y6uwsXLgiHDx8WDh8+LAAQVq9eLRw+fFg4deqUdZt58+YJ/fv3Fz788EOhoqJCeOedd4Tk5GThiSeesG6zbds2ISoqSnjttdeEsrIy4YEHHhASExOF6upqf1yWXyi5lw899JCQkJAg/Otf/xKqqqqsXy0tLdZteC+dFRUVCeHh4cJzzz0nlJeXC2+88YYQGxtrTToVBN43JXiPtJF7/fG+uib3N5F/D5WTu5eB8j7NIEylvXv3CgCcvubNm2fdprm5WXjkkUeEgQMHCtHR0cLgwYOFp556Smhra7Pb10svvSQMHDhQiIyMFMaPHy8cPHjQx1fjX0rupavHAQibNm2y21d3v5eufPDBB0JmZqYQFRUljBgxwm51pIj3TR7vkTZyrz/eV2dyfxP591A5uXsZKO/TBkFwKA9LRERERF7HnDAiIiIiP2AQRkREROQHDMKIiIiI/IBBGBEREZEfMAgjIiIi8gMGYURERER+wCCMiIiIyA8YhBERERH5AYMwIiIiIj9gEEZEpMHIkSPx97//3d+nQURBjEEYEZFKly5dQnl5OUaPHu3vUyGiIMYgjIhIpdLSUgiCgMzMTH+fChEFMQZhREQKlZSUYMqUKbjhhhtgsVgwcOBA5Ofn+/u0iChIhfv7BIiIgsHJkyfx4x//GI8//jh69+4Ni8WC6667DosWLcLNN9+MrKwsf58iEQUZjoQRESnw4IMP4p577sHvf/97nD59GtnZ2XjiiSfQs2dP/Pvf//b36RFREGIQRkQko7q6Gnv27MGDDz6Izs5OfP3118jKyoLRaERYWBgiIyP9fYpEFIQYhBERyTh48CAsFguysrJw7NgxXLp0CVlZWaisrERjYyOuv/56f58iEQUhBmFERDLa29sBAK2trTh8+DAGDRqEpKQkrF+/HpmZmRg1apSfz5CIghET84mIZEyaNAnh4eH4P//n/+DixYsYPHgw1qxZg5deegn79u3z9+kRUZBiEEZEJGPAgAHYuHEjFi9ejKqqKoSHh6OlpQUFBQUYN26cv0+PiIKUQRAEwd8nQUQULJKSkvDaa6/hzjvv9PepEFGQY04YEZFC//nPf9DY2MhK+USkCwZhREQKff3114iLi0N6erq/T4WIQgCnI4mIiIj8gCNhRERERH7AIIyIiIjIDxiEEREREfkBgzAiIiIiP2AQRkREROQHDMKIiIiI/IBBGBEREZEfMAgjIiIi8gMGYURERER+wCCMiIiIyA8YhBERERH5wf8PamzMab9X9RYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "u = mda.Universe('alanine-dipeptide-water.pdb', 'alanine-dipeptide.xtc')\n", "ramachandran = Ramachandran(u.select_atoms(\"protein\")).run()\n", "ramachandran.plot()" ] }, { "cell_type": "markdown", "id": "f7a97bdb-93c1-46e6-9e44-2cbe52809049", "metadata": {}, "source": [ "## Going Further\n", "\n", "OpenMM-ML supports lots of other MLIPs. That includes pretrained foundation models, as well as models you train yourself with popular frameworks such as [MACE](https://github.com/ACEsuit/mace) and [NequIP](https://github.com/mir-group/nequip).\n", "\n", "Particular models may have additional options you can specify to control their behavior. For example, AIMNet2 lets you specify the charge and spin multiplicity of the system to simulate. This allows you to use it for simulating charged molecules:\n", "\n", "```\n", "system = potential.createSystem(pdb.topology, charge=1)\n", "```\n", "\n", "See [the documentation](https://openmm.github.io/openmm-ml/latest/index.html) for details on how to use these features." ] } ], "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.12.12" } }, "nbformat": 4, "nbformat_minor": 5 }