{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Molecular dynamics simulations of bulk water\n", "\n", "In this example, we show how to perform molecular dynamics of bulk water using the popular interatomic TIP3P potential\n", "([W. L. Jorgensen et. al.](https://doi.org/10.1063/1.445869)) and [LAMMPS](http://lammps.sandia.gov/)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "%matplotlib inline \n", "import matplotlib.pylab as plt\n", "from pyiron import Project\n", "import ase.units as units\n", "import pandas" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "pr = Project(\"tip3p_water\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating the initial structure\n", "\n", "We will setup a cubic simulation box consisting of 27 water molecules density density is 1 g/cm$^3$. The target density is achieved by determining the required size of the simulation cell and repeating it in all three spatial dimensions" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "89aa5565a8384b5693970a7a5664fba9", "version_major": 2, "version_minor": 0 }, "text/plain": [] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "707bbf57e7174bf68263179508d40234", "version_major": 2, "version_minor": 0 }, "text/plain": [ "NGLWidget()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "density = 1.0e-24 # g/A^3\n", "n_mols = 27\n", "mol_mass_water = 18.015 # g/mol\n", "\n", "# Determining the supercell size size\n", "mass = mol_mass_water * n_mols / units.mol # g\n", "vol_h2o = mass / density # in A^3\n", "a = vol_h2o ** (1./3.) # A\n", "\n", "# Constructing the unitcell\n", "n = int(round(n_mols ** (1. / 3.)))\n", "\n", "dx = 0.7\n", "r_O = [0, 0, 0]\n", "r_H1 = [dx, dx, 0]\n", "r_H2 = [-dx, dx, 0]\n", "unit_cell = (a / n) * np.eye(3)\n", "water = pr.create_atoms(elements=['H', 'H', 'O'], \n", " positions=[r_H1, r_H2, r_O], \n", " cell=unit_cell, pbc=True)\n", "water.set_repeat([n, n, n])\n", "water.plot3d()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'H54O27'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "water.get_chemical_formula()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Equilibrate water structure\n", "\n", "The initial water structure is obviously a poor starting point and requires equilibration (Due to the highly artificial structure a MD simulation with a standard time step of 1fs shows poor convergence). Molecular dynamics using a time step that is two orders of magnitude smaller allows us to generate an equilibrated water structure. We use the NVT ensemble for this calculation:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "water_potential = pandas.DataFrame({ \n", " 'Name': ['H2O_tip3p'],\n", " 'Filename': [[]],\n", " 'Model': [\"TIP3P\"],\n", " 'Species': [['H', 'O']],\n", " 'Config': [['# @potential_species H_O ### species in potential\\n', '# W.L. Jorgensen et.al., The Journal of Chemical Physics 79, 926 (1983); https://doi.org/10.1063/1.445869\\n', '#\\n', '\\n', 'units real\\n', 'dimension 3\\n', 'atom_style full\\n', '\\n', '# create groups ###\\n', 'group O type 2\\n', 'group H type 1\\n', '\\n', '## set charges - beside manually ###\\n', 'set group O charge -0.830\\n', 'set group H charge 0.415\\n', '\\n', '### TIP3P Potential Parameters ###\\n', 'pair_style lj/cut/coul/long 10.0\\n', 'pair_coeff * * 0.0 0.0 \\n', 'pair_coeff 2 2 0.102 3.188 \\n', 'bond_style harmonic\\n', 'bond_coeff 1 450 0.9572\\n', 'angle_style harmonic\\n', 'angle_coeff 1 55 104.52\\n', 'kspace_style pppm 1.0e-5\\n', '\\n']]\n", "})" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/srv/conda/envs/notebook/lib/python3.7/site-packages/pyiron/lammps/base.py:170: UserWarning: WARNING: Non-'metal' units are not fully supported. Your calculation should run OK, but results may not be saved in pyiron units.\n", " \"WARNING: Non-'metal' units are not fully supported. Your calculation should run OK, but \"\n" ] } ], "source": [ "job_name = \"water_slow\"\n", "ham = pr.create_job(\"Lammps\", job_name)\n", "ham.structure = water\n", "ham.potential = water_potential" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The job water_slow was saved and received the ID: 1\n" ] } ], "source": [ "ham.calc_md(temperature=300, \n", " n_ionic_steps=1e4, \n", " time_step=0.01)\n", "ham.run()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4eb876d7df744ab4a8e47da346cb02b2", "version_major": 2, "version_minor": 0 }, "text/plain": [ "NGLWidget()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "view = ham.animate_structure()\n", "view" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Full equilibration\n", "\n", "At the end of this simulation, we have obtained a structure that approximately resembles water. Now we increase the time step to get a reasonably equilibrated structure " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The job water_fast was saved and received the ID: 2\n" ] } ], "source": [ "# Get the final structure from the previous simulation\n", "struct = ham.get_structure(iteration_step=-1)\n", "job_name = \"water_fast\"\n", "ham_eq = pr.create_job(\"Lammps\", job_name)\n", "ham_eq.structure = struct\n", "ham_eq.potential = water_potential\n", "ham_eq.calc_md(temperature=300, \n", " n_ionic_steps=1e4,\n", " n_print=10, \n", " time_step=1)\n", "ham_eq.run()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "cd96be9a5a654dfcb69546d8a77d0e0a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "NGLWidget(max_frame=1000)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "view = ham_eq.animate_structure()\n", "view" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now plot the trajectories" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEHCAYAAABSjBpvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5y0lEQVR4nO3dd5xU5fX48c/Zzi69SVk6iAWlbbB3E8CGxoaJGluILdGf0aghidGEfG0xtkTFJLbYuxEwggI2lCK9L70sbSkLC2w9vz/undk7de/WWXbP+/Wa187cuXfmubO7c+7TziOqijHGGONHUqILYIwx5tBhQcMYY4xvFjSMMcb4ZkHDGGOMbxY0jDHG+GZBwxhjjG8piS5AVYnICOAJIBn4p6o+GG//9u3ba8+ePeujaMYY02jMmTNnh6p2CN9+SAUNEUkG/g78ENgIzBKRj1R1SaxjevbsyezZs+uriMYY0yiIyLpo2w+15qlhQK6qrlbVYuANYFSCy2SMMU3GoRY0ugIbPI83uttCiMgYEZktIrO3b99eb4UzxpjG7lALGhJlW0QeFFUdr6o5qprToUNEk5wxxphqOtSCxkagm+dxNrA5QWUxxpgm51ALGrOAfiLSS0TSgNHARwkukzHGNBmH1OgpVS0VkVuB/+EMuf23qi5OcLGMMabJOKSCBoCqTgQmJrocxhjTFB1qzVP15sWv1/DRfOsuMcYYLwsaMbz63XomLcxLdDGMMaZBsaARQ0pyEqXltqqhMcZ4WdCIISVJKLOgYYwxISxoxJCcJFbTMMaYMBY0YnBqGuWJLoYxxjQoFjRiSE4SSsuspmGMMV4WNGJISbY+DWOMCWdBI4bkJBs9ZYwx4SxoxGCjp4wxJpIFjRhs9JQxxkSyoBGDjZ4yxphIFjRisJqGMcZEsqARg/VpGGNMJAsaMSQnJdk8DWOMCWNBIwaraRhjTCQLGjEkJ1ufhjHGhLOgEYONnjLGmEgWNGKw0VPGGBPJgkYM1qdhjDGRLGjEYKOnjDEmkgWNGJIEFAsaxhjjZUEjBhGw1iljjAllQSOGJBFULWoYY4yXBY0YBKtpGGNMuAYXNETkjyKySUTmubdzPM/dKyK5IrJcRIbXcTkArLZhjDEeKYkuQAx/U9VHvRtE5ChgNHA00AWYIiKHq2pZXRTAjRmoVtw3xpimrsHVNOIYBbyhqkWqugbIBYbV1ZslBWoadfUGxhhzCGqoQeNWEVkgIv8WkTbutq7ABs8+G91tdSJQuSi35iljjAlKSNAQkSkisijKbRTwDNAHGATkAX8NHBblpaJ+o4vIGBGZLSKzt2/fXq0yJiUF+jSqdbgxxjRKCenTUNWz/ewnIs8DH7sPNwLdPE9nA5tjvP54YDxATk5Ojb72raZhjDEVGlzzlIh09jy8CFjk3v8IGC0i6SLSC+gHzKyrciRZ77cxxkRoiKOnHhaRQThNT2uBXwCo6mIReQtYApQCt9TVyCmoGDFlNQ1jjKnQ4IKGql4V57lxwLj6KEeSZ8itMcYYR4NrnmooxO13t5qGMcZUsKARQ3ByX2KLYYwxDYoFjRiCaURsxVdjjAmyoBFDsE/D6hrGGBNkQSOGwJBby3RrjDEVLGjEYENujTEmkgWNGCpSoye4IMYY04BY0IghMB/c1tMwxpgKFjRisNToxhgTyYJGDNanYYwxkSxoxGBpRIwxJpIFjRgsjYgxxkSyoBGDWE3DGGMiWNCIwYbcGmNMJAsaMVgaEWOMiWRBI4aK0VOJLYcxxjQkMRdhEpGCSo4VIE9VD6/dIjUMwXka1j5ljDFB8VbuW6Wqg+MdLCJza7k8DY7VNIwxpkK85qmLfRzvZ59DUqCmYXPCjTGmQrygcYeInBTvYFVdXcvlaTCsT8MYYyLFCxorgUdFZK2IPCQig+qpTA1Ckg25NcaYCDGDhqo+oaonAKcBO4EXRGSpiPxBRBpl57dXoHHKZoQbY0yFSofcquo6VX3I7RT/CXARsLTOS5ZgNrnPGGMiVRo0RCRVRM4XkVeBScAKGnEHeIBluTXGmEjx5mn8ELgCOBeYCbwBjFHVwnoqW0JVjJ4yxhgTEK+m8VtgBnCkqp6vqq/WVsAQkUtFZLGIlItITthz94pIrogsF5Hhnu1DRWSh+9yTInX7rZ5kNQ1jjIkQryP8DFV9XlV3isjJInItgIh0EJFeNXzfRcCPgS+8G0XkKGA0cDQwAviHiCS7Tz8DjAH6ubcRNSxDXDbk1hhjIvnp07gPuBu4192UCvynJm+qqktVdXmUp0YBb6hqkaquAXKBYSLSGWipqjPUyevxMnBhTcpQGbE0IsYYE8FPwsKLgAuAQgBV3Qy0qKPydAU2eB5vdLd1de+Hb68zFUNu6/JdjDHm0BIv91RAsaqqiCiAiGT5eWERmQJ0ivLUWFX9MNZhUbZpnO2x3nsMTlMW3bt3r6Sk0VkaEWOMieQnaLwlIs8BrUXk58B1wPOVHaSqZ1ejPBuBbp7H2cBmd3t2lO2x3ns8MB4gJyenWt/61qdhjDGR/EzuexR4B3gX6A/8QVWfqqPyfASMFpF0t7O9HzBTVfOAvSJyvDtq6mogVm2lVlgaEWOMieSnpoGqTgYm19abishFwFNAB2CCiMxT1eGqulhE3gKWAKXALapa5h52E/Ai0AxnkuGk2ipP1DK6P23IrTHGVIg3ue9jVT0v3sF+9olGVd8H3o/x3DhgXJTts4EBVX2v6rI0IsYYEyleTeNkEfkozvMCHFXL5WkwAn0aNuTWGGMqxAsao3wcX1xbBWlogn0aCS6HMcY0JDGDhqpOr8+CNDSWsNAYYyL5mdzXJAVqGnsOlCS4JMYY03BY0IjhqM4tAbj1tbmUlpUnuDTGGNMw+Mk9dZ6INLng0iwtOXh/wsK8BJbEGGMaDj/BYDSwUkQeFpEj67pADdHeg6WJLoIxxjQIfmaEXwkMBlbhrBM+Q0TGiEhdJS1scA6WlFW+kzHGNAG+mp1UtQAnjcgbQGeczLffi8gv67BsCdcmMxWAnYWNdmSxMcZUiZ8+jfNF5H3gc5y1NIap6khgIHBnHZcvoSbfcRpgzVPGGBPgJ/fUpcDfVDVklT1V3S8i19VNsRqG9s3T6dEuk4KDNuzWGGPAR9BQ1avjPPdZ7Ran4WmZkUqBzdUwxhjAR9AQkb1EZtPYA8wGfq2qq+uiYA1Fy2Yp7LagYYwxgL+O8MeAu3CWV83G6cd4HqdT/N91V7SGoUe7LOau383363cluijGGJNwfoLGCFV9TlX3qmqBuyreOar6JtCmjsuXcBcOcpYi/yZ3R4JLYowxiecnaJSLyGUikuTeLvM81+iz+eX0cOLio5+uoMzWfjXGNHF+gsZPgauAbcBW9/6VItIMuLUOy9YgJCVJ8P6aHfsSWBJjjEm8uEFDRJKBm1T1fFVtr6od3Pu5qnpAVb+qp3I2CGc/9kXlOxljTCMWN2i463MPraeyGGOMaeD8TO6b6y77+jZQGNioqu/VWakamEuGZvPOnI2JLoYxxiScnz6NtkA+cCZwvns7ry4L1dCcdniHRBfBGGMaBD8zwq+tj4IYY4xp+PwkLDxcRD4TkUXu42NF5Hd1X7SGw7tOeLkNuzXGNGF+mqeeB+4FSgBUdQHOwkxNhidmUFJuS78aY5ouP0EjU1Vnhm1rUrnCvTWN4lILGsaYpstP0NghIn1wZ3+LyCVAk1o0+0dHdwret6BhjGnK/ASNW4DngCNEZBNwO3BTTd5URC4VkcUiUi4iOZ7tPUXkgIjMc2/Pep4bKiILRSRXRJ4UEYn+6rWveXoKf7noGACKyyxoGGOaLj+jp1YDZ4tIFpCkqntr4X0XAT/GCUbhVqnqoCjbnwHGAN8CE4ERwKRaKIsvaSlOfC0ptY5wY0zT5Wc9jXTgYqAnkBK4wFfVB6r7pqq61H1tX/uLSGegparOcB+/DFxIAoJGcVlZfb2lMcY0OH6apz4ERuF0fhd6bnWll4jMFZHpInKKu60r4J2SvdHdFpWIjBGR2SIye/v27bVSqLRk56Mqsj4NY0wT5ieNSLaqjqjqC4vIFKBTlKfGquqHMQ7LA7qrar6IDAU+EJGjgWhVkpjtRO6aH+MBcnJyaqU9KT1Q07CgYYxpwvwEjW9E5BhVXViVF1bVs6taGFUtAorc+3NEZBVwOE7NItuzazawuaqvXxOpyRY0jDHGT/PUycAcEVkuIgvcEUwL6qIwItLBTceOiPQG+gGrVTUP2Csix7ujpq7GaTarN8GO8DLrCDfGNF1+ahoja/tNReQi4CmgAzBBROap6nDgVOABESkFyoAbVXWne9hNwItAM5wO8HrrBAfrCDfGGPA35HadiJwM9FPVF0SkA9C8Jm+qqu8D70fZ/i7wboxjZgMDavK+NZFmzVPGGOMrYeF9wN04+acAUoH/1GWhGqJATcNGTxljmjI/fRoXARfgDrNV1c1Ai7osVEMUqGlYn4YxpinzEzSKVVWpyD2VVbdFapjSbMitMcb4ChpvichzQGsR+TkwBSddepNSETSsI9wY03RVGjRU9VHgHZwO6v7AH1T1qbouWEMTCBp//O+SBJfEGGMSx8+QW1R1MjC5jsvSoKUm11tSXWOMabD8NE8ZKjrCAUosPboxpomyoOGTNyPv/01clsCSGGNM4ljQqIIBXVsC8P36XQkuiTHGJEbMPg0RWUj0TLICqKoeW2elaqDevelE+v/uE4Z0b5PoohhjTELE6wg/r95KcYhIT0mmU8sMCotKE10UY4xJiJhBQ1XX1WdBDhVZ6cm8OXsD955zBK0z0xJdHGOMqVd+ck8dLyKzRGSfiBSLSJmIFNRH4RqiVdudRQvHvr8owSUxxpj656cj/GngCmAlTlryG3DSmjdpu/YXJ7oIxhhT73yNnlLVXCBZVctU9QXgjLotVsPVLDUZgHK1xIXGmKbHz4zw/SKSBswTkYdx1vFukkkLAZqlJXOgpIxyixnGmCbIT03jKiAZuBUnPXo34OK6LFRDluRO8lOraRhjmiBfK/e5dw8A99dtcRq+wMRwq2kYY5qieJP73lLVy2JN8muKk/vAmdkI1qdhjGma4tU0bnN/2iQ/j0BNw5IWGmOaoph9Gqqa5969WVXXeW/AzfVTvIZH3LrG7v0lCS6JMcbUPz8d4T+Msm1kbRfkUPHMlUMASEmy9TWMMU1PzKAhIje5/Rn9RWSB57YGWFB/RWxYBndvw1XH92D3AatpGGOannh9Gq8Bk4D/A+7xbN+rqjvrtFQNXMcW6ezeX8KB4jKapSUnujjGGFNv4vVp7FHVtap6BbARKMEZRdVcRLrXVwEbou7tMgHYsGt/gktijDH1y0/CwluBrThrhE9wbx/X5E1F5BERWeY2d70vIq09z90rIrkislxEhnu2DxWRhe5zT4p3Kb161qOdMyF+Xb4FDWNM0+KnI/x2oL+qHq2qx7i3ms7RmAwMcF9nBXAvgIgcBYwGjgZGAP8QkUD7zzPAGKCfextRwzJUW4+2Tk1jXX5hoopgjDEJ4SdobAD21OabquqnqhpYyehbINu9Pwp4Q1WLVHUNkAsME5HOQEtVnaFO/o6XgQtrs0xV0TozlRbpKWzcdSBRRTDGmITwk7BwNTBNRCYARYGNqvpYLZXhOuBN935XnCASsNHdVuLeD98elYiMwamV0L177Xe/iAjtmqexs9DSoxtjmhY/QWO9e0tzb76IyBSgU5Snxqrqh+4+Y4FS4NXAYVH21zjbo1LV8cB4gJycnDrJ99EqM83W1DDGNDl+EhbeDyAiWarquxFfVc+O97yI/AwnRclZWpEydiNOFt2AbGCzuz07yvaEaZOZajUNY0yT42f01AkisgRY6j4eKCL/qMmbisgI4G7gAlX1DkH6CBgtIuki0gunw3umm9Jkr7v0rABXAx/WpAw11SYzjfx9FjSMMU2Ln47wx4HhQD6Aqs4HTq3h+z4NtAAmi8g8EXnWfe3FwFvAEuAT4BZVLXOPuQn4J07n+CqciYcJ06dDFpt2H2CX1TaMMU2Inz4NVHVD2LSIslj7+ny9vnGeGweMi7J9NjCgJu9bm07s2x4+XcG732/khlN6J7o4xhhTL/wEjQ0iciKg7rKvv8JtqmrKhnRvY8NujTFNjp/mqRuBW3CGuG4EBtGEU6N72bBbY0xT46em0V9Vf+rdICInAV/XTZEOHW2y0thScDDRxTDGmHrjp6bxlM9tTU63NpnMWruT3TZfwxjTRMRbI/wE4ESgg4jc4XmqJWD5wIGRAzrx0fzNDHpgMqv/cg5JtjCTMaaRi1fTSAOa4wSWFp5bAXBJ3Ret4evmJi4EKDhoizIZYxq/mDUNVZ0OTBeRF1V1nYi0cDbrvvorXsPmDRq79pfQOtN3lhVjjDkk+enTaCEic4FFwGIRmSMiDWa+RCK1apYavG95qIwxTYGfoDEeuENVe6hqD+DX7jYDvDnmeADrDDfGNAl+gkaWqk4NPFDVaUBWnZXoENO1TTMAthUUVbKnMcYc+nytpyEivwdecR9fCaypuyIdWg5rmUGSwObdNjPcGNP4+alpXAd0AN5zb+2Ba+uyUIeS1OQkOrbIYPMem+RnjGn84s3TyMBJIdIXWAj8WlVtXGkUXVpnWE3DGNMkxKtpvATk4ASMkcAj9VKiQ1Dn1s3Is5qGMaYJiNencZSqHgMgIv8CZtZPkQ49XVplMGXJVlSVsBTyxhjTqMSraQSbolS1tB7Kcsjq2CKDotJyCg7ax2SMadzi1TQGikiBe1+AZu5jwZkZ3rLOS3eI6NgyHYDtew+GTPirjsKiUspVaZFRs9cxxpi6ELOmoarJqtrSvbVQ1RTPfQsYHn06NAfglRnrUFUA1ufv52BJ1RY4fGv2Bo6+738c88dPg9u+X7+LwiKrwRhjGgY/Q25NJQZ0bcWwnm15acY6bn1tLgdLyjj1kanc9sbcKr3Ob95ZELz/yaI8bnxlDj/+xzfc8da8Wi6xMcZUj681wk3l2mY5yQonLMwjPdWJxdOWb/d9fFFpaK3kxv98H7y/eHNB+O7GGJMQVtOoJfeec0Tw/qeLtwKQluzv412fv58FG/fEfL4q65DP27CbV2asBWD5lr30vGcCs9fu9H28McbEYzWNWtKjXUU6rn1uH0RKsr/ht6c+MrXSfXbsK6J98/RK97vw784qvFed0JMvVzo1nU8WbSGnZ1tfZTHGmHisplGHUnzUNDbs3B/y+OIh2VH32+tjOO/+4tB9yt1OeZs6YoypLRY06lBZuVa6zykPh9YyLhjUJep+ew5UnsHlixU7gvdLysqD923CoTF14+UZa8n585SQbdv3Nu6M1xY06tCx2a2qtP9Fg7tyQu92XDwkm2evHBrynJ/1Olo2q2ht7Dd2Eg9OWgY4E2sADpaU8fiUFRGd7saY6vnDh4vZsa8o+D81cWEePxg3hVm11I+450AJny3dyoOTlkW0JCRKQoKGiDwiIstEZIGIvC8ird3tPUXkgIjMc2/Peo4ZKiILRSRXRJ6UQ+Dy+cuVO5i3YXfM5wNzOgLuHN6ftJQk/nrZQIb1Cu2D2La3iAPFZcxYlR/z9cJrNoGH5aps3n2Af365msenrOTVb9dX7USMMXEFmo9fn+n8b9W0trFy617y9xXx85dmc/1Ls3l2+ipmr91V43LWhkTVNCYDA1T1WGAFcK/nuVWqOsi93ejZ/gwwBujn3kbUW2l9uvNHh9OhRUVndVm5Bjumo/nblJXB+49eOpCurZsFH2ekVvxqOrfK4O3ZG/jDh4u44vlvmbp8W0TAef6L1dz/3yVR3+f5L9dw4oOf8+inKwA4UMVJh8aYSN7af86fp5C7bR/5+5xtKUk1u6b94d++4IKnv2amp8ayafeBiP/7REhI0FDVTz35rL4Fovf+ukSkM9BSVWeo86m9DFxYt6WsulvP7MdfLjrG9/5Tl20L3g9vyspISQ7ev3BwV2at3cXbczYCcO0Ls/ho/ubg86rKuIlLyd22r7pFN8ZU0UvfrAt5/PGCzSzJc+ZULdi4hwPF1bs4Cxy3KWy5hXvfW8gvXpmDqlJertz34SJyt+2t1nvUREPo07gOmOR53EtE5orIdBE5xd3WFdjo2Wejuy0qERkjIrNFZPb27f4n2NWGaFcC5TE6xL21icMPaxHyXJJ7pdL/sBYc1iJyqO2SvAI27tpPz3smcPZj06tURm95Nu0+wOrtFmyMqarv1oQ2FT/5WUXLwdNTc7nnvQXhh8R1sKSMyUu2snlPaLAYd9GA4P1Pl2zlw3mbWZNfyEsz1nHzq9+Hv0ydq7N5GiIyBegU5amxqvqhu89YoBR41X0uD+iuqvkiMhT4QESOpqIv1ytmPU1VxwPjAXJycuq1PtervTNfo3f7LFbvKASc9s5Wmalc9+IserTL5L7zjwYgIzU55usATPzVKXRt3YwpS7dGPDd5yVaem74agFXbC6tURu8HctKDnwOw9sFzq/QaxjRV36zawber8tlZWEx2m2bk7yvmQEkZbbPS2LGvoskqXv9jNC9+s5YHJy3jtMM7hGz/ybDujH1/UfDxnz5eQn6h8z5FpeXUtzqraajq2ao6IMotEDB+BpwH/NRtckJVi1Q1370/B1gFHI5Ts/A2YWUDm2mA+h3WgtxxI7lwcEVFaKfb9vn5sm288PVaAP4+NZcvVzpDZGONsjqqS0taZaayP0ofxOoqBgqvxyavqPax8Uxbvo3vVlftH8WYQ81Pnv+OJz/PZdmWvbTJTGPCr04GYH9Yc1TzdOea/J05G+l5z4RKO8cDjRTTV1S0jhzVuSUiEpzYe1LfdsGAARVzsepTokZPjQDuBi5Q1f2e7R1EJNm93xunw3u1quYBe0XkeHfU1NXAhwkoui8pyUmkp1R8tDsLQ4fLXvvCTB753/Lg41euPy7u653arz0A/To25/qTe/kqQ9+Ozf0Wt1bsLCzmmhdmcfn4bxk2bgpbC2wlw0PRwZIydhVWPry7qdmxr4jlW/YGsz0E7CwsJjPNCQ77i8s4rGVFU/LqHYU8NnkFd749H4D1O/ezNK8g5vD5rPTIlod2zZ2cdj8/xfm/H3F0aOPN7v2R87cKi0p5ZcZatu2tm//BRKUReRpIBya7I2e/dUdKnQo8ICKlQBlwo6oGhg/cBLwINMPpA5kU/qINyXG92wXv3/ra98GEhgBTwxIZVrYGR492WcHmo7Jy5V9frQl5vk1mKrvcP55fnNabkQM6071tJkP+NDm4zx/PP4o/ekZXXfWv74IjPcBJmJieEr+5LB7vVdS2vUV8OG8TY07tU63X2rBzP9ltmtmkxErMXruTldv2ccWw7gDs2V9CYXEpXTyj8Krq4me+YfHmAmb/7mxfaWtiufudBUxalMeUO06jY8uMar9OTSzNK6B3h6wa/V0H/OhvX7CzsJi0lNDrbBFo5mlm3loQWpvw9nMkJwkjn/iSIzq14JPbT2XF1r3069icAyVlrN5eSFFJZFNTS3ddnTGn9ua8gV3ISEni9x8uDj6/92ApOwuLQ75fHpu8gn99tYavc/N59qqhEa9ZU4kaPdVXVbuFD61V1XdV9WhVHaiqQ1T1v55jZrvNW31U9dZAk1ZDNahba/7x0yEA5O05WGuZapPDhvL1aJdJv44VnejXnNiTQd1a0zYrjdd/fnzF9pNCayhfrtwRHOkBsK2gZuPKw4fxBoLY4s172BPlaiiWeRt2c8rDU3ltps0leWPmeqYsiezPCrjk2Rnc+97C4ONfvTGXEx/8nL0H/X/e4QJ/p+GznKvqzdkbKDhYyrC/fJaQYaLb9h5k5BNf8vsPKvoC8vcVVass479YFWwtKA7rQygpKycjzd/XaKAGt2zLXo6573/86G9f8OasDdz59nzOe+qriA5wINhiISJ0bd2Mds3TQ1oxwJnTAU4aoUWb9vDmrA0A5NbRAJeGMHqq0To1rEMrmsHdW1f79b++50xeveE4endwOt+vGNadzq0qrjJP6NMu1qERAv0r1RU+W1VwmjrOffIrrnnR//Lyy9xANj/OpMi6UlauCR0H/+3qfL5fXzGB6573FnLDy7N9Hx9oC18fls/Mr/Cml7dmb+DbKvRRFZeWc80LMyMmtD7/5epqlacmAsNWv3E7o9flFzL0z1P4t9unWBV/mbgs5nOlZRqSzfrHQ7pyTNfofZRr8yv6Ife6n/WEhXlMXLgFgK+i/A9mpEXWkpY+MILMtGR6d8giNVn4n5tV+9npqznvqa/YV1TKYS3TyaujeR0WNOpQVpRfuNfMsWfxxpjj4+4TT9fWzchukxl83KdDVtT9zjqiIwCXDI09HWbzbv/p18EJCIEOvplrdkasUlhcWs4M9wtn7vrd9LxnAt/kVh6YAq8TPrJs1tqdnPfUl1VeDdGvgyVl9PntRJ78LLdOXt+P0eO/5cf/+KbKx6kqizZVpNav6qidwGu8M3tDyLbfvLOA0eO/9XX8uvxC1uwoZNry7cE2/IDPlm6LcVTdCeReC4wuWrHVuer+2sffYEB5ubJ8S+Q8iFRP9uq7hvdHRPjZCT0AuPG0Pvz3lycHL+S8ok2+9V6srYwyz6q9p9kpIClJmH/fj/jvrSdzbHZrluTtobxcQ5rCzju2C8Vl5cHgVJssaNQhEQn5A/O6YGAXOrbIqHZ7a3abihrFqEHOSK0z3ODgteLPIxl/dQ4Aj1xyLBdGSYiYmixs8XRcl5SV8+z0VXy7Oj/q1Q/AfR8uDn45vD93EweKnX/Ot288AXD+WcObVv4Z1hcTzUH3nzwQNCYsyOPqf8/kzrfns2hTAevyq3cVXZlAh+LL7lokifT3qbnc+pr/8fc3/mcO5z31VfDxnycsrVJ+sZ/9eya97p1IgY9MytF8s2oHpz0yLZhCI/zqtqZdU/n7ivjf4i1MX7Hd95Vz4O+xyL3I2Ffk/H4DI5ri2VVYzJ79Jbzy7TqGP/5FxPNJnhMa7fYn/fbcI3ljzPHB+VYd3blVnVtVvT9n+l2nc9fw/gAM7tEm6j6pyUlkpafQo20m6/P3M/aDimbKji3S+c2I/iz/08hgn0htsvU06tiL1w6jpKyca16YBcARnVrw23OO5Pje/puOws0ce1ZwxAY4zVCx5ll4O+5EhF+c1ocP5oWOVu7bsQXb3I7sqcu2ce2Ls0Kej/baizZXXNm2zkwNNk91aplB51YZFJWWRaRz/3zZNj5ZlMeIAZ1jnlugJhFot70l7Mtz+ONf8NmvTwuuy15TZeXKc1+s4sQ+zgi1+u57Ly0r52BpeciXmXdknR+B5gmvTxZtCV5MVCbQrBU+ys9bxnhp/pe4/SAvfrMWIGIm9Pr8/Xy1cgdtslLp27G5rwulj+Zvpl1WGif1bc9lz80IzkX62+UDuWhwNsf+8X+MHtadu0ccQZJAablSVq5kpCaTt+cA+YXO33PgImRfkVOmrEqCRlFpGYPdASSX53SLuk9SlD+S9JTkkP/pp64YwpSlW7locFeufWFWsNbtR492Wdx8eh/O6N+Ro7q0jLtvt7aZvDd3E6/PdGqJ5x7bmUcuObZWOv9jsaBRx07q63wZPXrpQMpVuSzGH2JVdGxR/dEoR3ZuyczfnsWwv3wW3FZUUsYXK7YzdXlkwIjFmxwxNUmCV6kZqcmkpyTx9pyNtMuKHH3z8ox1lQSNcvdnGQ99Er0tefHmgloLGp8t3crDnyxnQNc8oH7SyN/9zgKy2zTjl2f14653FvD+3E3c8cPDfR8/bfk2xk1YGnef/H3FlJdrMLNALN6O3cCXfrjxX67m5tP7xnyNkrLQq//New5GPL7yX99VvN5VQ/nR0dHm/Vb41etzAeeCxTt5dcueIkrKyik4WMr4L1Yz/ovV/O7cI/lo/mYWbNzD7N+dzQn/9zmd3BFbgZrJQTeQNYszoXb73iJ+MK5iAMDivNDVNH937pFMXJjHmFN7hyzHHE2HFunBUW2PXHosJz9UsQRCTo82zF4XP/mgiFQaMAC6t80MefzE5YN8reNTExY06km8/oT61iKsyhqYuX7tC7EDhqqyv7gseKXmDRpPfp5Ly4wU2mWl0TozlT0HSlB1xraf3r8DowZ14f+96TRlFVQysidQ03j+y9hNWSu3OuPl/TQ1VCYw6iswWTLwFTtt+Tb6dmwe0mdUFeXlylmPTeem0/pw2Q9CLxTedPsOFmzaw2S3CS/ehMvwcx37/qKIvEThHvh4CQ98vKTSmf7hw7ejefiT5Tw+eSWTbj8larCu6nLCr3y7Lm7QCF+YzCs1WdgSFpRe+Hpt8PNYluf0QXibW/fsL6HY7eOIFkOLS8tJS0nijbARe4s2FQSHs/dun8X1J/fihlN6V7lfrX3zdNKSkyguK+fY7Fb846dDQi7awJnE958bjqOwin0Q3duF/n3WdcAA69Nokrw5rz779WlkVtJhf7CkjHETlnLMH//Hlj0HWbl1b0SnXcHBUk49vAOpyUkhM2O7tm7GRYMrAmZpWfw2aT9t8U99nstVnivXqtq8+wC7CotZvHkPt70xD6iYzSviXHFe88IsTn5oqq+FtKJZuGkPa3YU8oePFsXcZ3Kc4bRe731fkXZt7PsLowaMd9y+pPsvOLpK5Yw1AOL6k3ux6P7h9HbT4hSXlXPWX6ezyh3G+fepuYxw2/vnb9wdPO7HQyqaxG46Pfo8nS9X7uCbVbE7pL0Lk01cmBfyXGpyEos3h9YAvJ/HlWF/FyVlysAHPuW/86MnkPhw3iYO/90k1uwopH2UHG8n93NGQA7u3iZYCw0f8lqZjNRkVowbyZIHhvP2jSfQsWUGD19ybMg+ZeVK26w0urWt2kVKD8/+U+44tUrHVpfVNJogbxNMnw7NyUhNjkiB4LXb7RQsV1i6pYBVMbLpdnM75735cDqE/SNWlvbAz7K24IzIWp+/n4y0pCo1163evo8z/xo7wePWgiLe9XxJ/23yCu50OyXj2V9cyubdB+nbsTm52/Yyyk2J3ylsYtvlz83wXdaAiQvzuPqEnqgqr34XOX8lp0cbcnq2ZfH9w8lKT+HxKSuC82QC9hWV8v7cTVx5XHfKypVSt/2/MGyo9GmHd+C2s/sxpLvTARuohQYs3LiHPh2aB/tdFm3aw459xVx/ci8uy+nGnHW7eO/7TQDcdlY/vludz/frd0eU+RevzGHhH4eHbNuxryhi1Fx4Qr77PlpMdSxzR0EVl4XOs3jXLesZj07jqM6RzUGXDM3myM4tQpqVRYR7Rh7BcWFr3lTG2w95WU43jurckq9yd/DgpGX06Rh95GNlAv9fA7u1pq9nvlZdsqBhePm6YSGjb8IdKCkjMy2ZotJy1mwvjGjDDugTJXVJ+KziQED5y8SlHN2lZUhn7Vcrd/DxgtAry3hOfcS5IvWbbPFgSVncgBEQWPEQ4O05Gxjasw3XvjCLb+89i04xRsOc88SXrM3fT+64kQx//Mvg9g27nLHyIsKKrXv5bo3/ppwurTLYW1QabE6MlpwuKy2Z+0c5tYtA06F3v0DTy7gJS3l95no6t8zghW+c2cLRPreycg0GjGhe/W4dt785L/g48HdzXK+29O/UIti0NObU3mSkJsdMqBd+cfDQJ8t4ZtqqYMLPulJUUs7+4lLKypV1+fv5wpPnKTDZ9c4fHR5ce6Zr62YRCQTBGVpbUwO6tmJA11Yc2bklQ2OMkqqMiDD1ztNp3zxyaG5dsaDRRPVolxm8shoQYzLS6f07MG35dg4UlwUDxQMfO2PNM9OSmXTbKdzx1nzmuJ165xwT2cEdXtPYvb+Ef0zLZfwXzoQvb9AIb1rwapaaXOPFo3bsiz3rvVvbZvTt0DwixcvWgqJgX8/c9bsYGeUcAda6Q4E37T4Q0qQVSPvSvW1mlbMRPz56MI9NXh6cUf/OnI0R+3x+5+kcFlab8dYaDxSXkZaSFMx3FD5ZMPwCIHyyab+OzUOaImfFWD3u2GznuLOO7MhDFx/DBQOd3+sTowfx5codvD17Y0gGgnDPTFsFwJod1U/E6UdRaRmnPDQ1JOmfV2qycOuZ/YJBo0vruk+BEi0oVUVdB9pwFjSaqOl3nRH3+SM6teCaE3sybfl2xn6wMGK2cLvmafRol8W7N53InHW76NEuk1S3E+6V64dx1b+cWeCBmsbjlw/i5Rlr+X79bh7+JHJIaWV9B9N/czp5uw8Gm328Hpy0jLuG949IsRIu2pDS7DbNeOfGE+nUKoODJWV8v24XP/ln9OAV3rQRzWmPTIvY9md3pFPXKuaEGtarLa2bpfHJ4i3MWJXP7z4I7R9Z+sAImkXpj3rmp0O4yW3W2V9SSitSmbRoS8R+udv2MW35Nto3T+Oru89k5dZ9HNk5tInj/VtOYtbanXEHSQC0yXJqQyLC5T/oHtzet2ML+nZswa7CYpbkFXDesZ2DtclYQ3mTk4Q2mWlxg3w8bbPSYg4fPlhSHjNgQEVt7Yph3flo3qaQJiXjsI5wAzjDCQMW3T+cD245KTg8ca7bJu1NiuYdBz60R5uQZqhT+nUIVpcDk5wuHNyVCwZGTiwMjBYpOBB7VNXNp/ehY4sMBnZrHfX5Z6evos9vJ1baXxD4srjq+B7Bbbed1S/Y5JSRmhw39Up44CwqLeP5L1YHZx+HuyusL8TbYXvJ0Oy4KWTm3/cjANq3cD7HK54PnZl9RKcWUQMGwMhjOvPE6EFOmQ+WxpwQd/Zj09l7sJQd+4rJSE3mmOxWEV/izdNTOKN/R54YPShuR2taJaN2bj/7cL78zRk8/ZMh/OLU3gCMmxh92HBZuXLl8d0jMrp6vXvTCVG392yXyen9nSv38OSCAAs8nfYB3swNgQufv1w0gEX3D4/Y11jQMK4bTukdvN88PYWM1OSIL6Wzj6yYcZ5cyXyG3u7QzHaettZoi07d+J85/OHDRYx4InLmbbA8Gf6u9irrL8jb7QzD7Na24oo//ErSO0ggvOISyAq8s7CY/3y7jqc/z2XcxKW8PCN02U9w2rzPOzb2fJRzj+nMi9cMC365hwtkPo6Vx6iyxXfaZDqf+3tzNwU7pmti1KCu9O3YglvPiD5fo7L5LUlJEhwZFPgyf+Hrtdz86hzWRmmSOrJzS57+yeDg434dm7Ny3Eh+f95R/O3ygQzt0TZqR3RJmTKgi/OZPXdlZIbX8DkkAHN+/0Peu/lEgGDGBBGxLMsxWN3LxBQ+EerG0/rw1mynXT01Jf4/1HNXDmVJXkHIl/Jp/cNWJDuuO699tz4iWWJ2m2Zs3FVxVV7V+Rjr8gt57/tN3H52v+A//oQFefz2fSfVQjfP3It4w41TkpJCmqTy3eaScROWhoyw+tPHkTmFSsvKY6a893ZAjxrUNTjsN5rBUTqlT+nXnrtHHBHzGKiYVBroK6gt5xzTmaen5nL4Yc2D+Zyq6poTe/LU506Or4kLtzB/w56Iffp0aE5KchJjzzmScROXkt2mGanJSSHrybx03TC+XZ3P4s0FPDttFXuLSikuK+eaE3sysFsrhvaoCCpXDOsWnDUdLiM1mSHd2zDj3jM5rAYTZ5sKq2mYmMIvtHp3aM70u07nhN7tePzyQXGPbeOmgPDyZuDt0yGLkQOiNz+ETz705s95YvSgStd5uO7FWTzx2Ury3KvKgyVl/PL1iqGb3hFQ6amx/wWeuXJIyOOXZqzj+S9WhwQMrxRP1SQrPYXWmWk8+ONjuO/8o+KW12vCr07m4YsrxvD3DZtMd/PpfXjl+uNiDl4IqKx/J6BZajIf3HKS7/IluR9XNaevANCueXrIOQaa7bzzOnq4k9Z+fmpv/nrpQP562aCI18lITeb0/h255Yy+zPrd2QBcOjSbpCQJBoy/XjqQc47pxP/9+FieumJwxGvcdla/4P3OrZpVOoPeWE3DeLx384kh62p08nzJBzpxe7TL4vUaZOYN+Otlg2Imc+zbsTlLPSNtvKODRg3qyn/nb2ZKnMype9z+kUDQW5pXEPIl523yiTZR68JBXfhk8RbOOvIwbjurH094sofGaocHp4a0Nn8/VwzrFvwCDCS0u2hwVwY9MDnqce/edAKTFm7h/IFdOLpLK47uUlG+pCRh2p2nc/qj0wD/81jiSUtO4vYf9iMrLYXLcrrF7BuJpme7LHq3z+K+84/iha/X8vmy6mWwHRalaenSodnMWbeLmWt2BvsWAC72kU0hIzWZZX8aEdG3cvHQ7ODx7aIMS/1/VUjfYhwWNExQ+Pj85ukprH3wXBZu3EPbWhoH3jIjhYKDpTRPT45IHvfNPWeSmZZMcVk5BQdKSE1OYsrSrcGrzoDzB3aJGTQ+XbyFHW7fQ0mpUl6u3PXOAgCuPaknHVtkkJKcxKq/nMOMVflR5yQ8PrriirQqQy77d2rB2vz9HNO1dUT/TevM2J/f0B5tQ5pSwvVol8nRXVqyeHNBpQn3/BjUvXXcXFLxZKQm8/mdpwNO09mA+/5Xrdfp2T4rYhh1z3ZZvHrDcdWehR+tz8wrPE+TqR4LGqZSx2THbwqpirtHHsHY9xfRoXkGzdKSnXHxZ/TjkpzskGVKX7puGPuLS1m+ZW/E8qWjBjkL3YgIZz82nbJy5afHdefV79Yz5pU5wf2Ky8pYkldArjvP4IZTegdrTMlJwsn9QpvPounRLv4Y+LtHHMEPerahV/us4CzpWP2nr95wXLVW1RMRPv7lybw1e0Nw/oMfpx7eIWTyWkBtfXk2T09h/FVDKa3ml/w395zJ6h2FzN+wm/zCIpKShCSESr77qy3wuz++d1sevXQgKUnWOl8d0sBXTa2xnJwcnT3b/+pnpu55s68GZktXV96eA2zfW8QHczfz769Dk+99cMtJvPzNWt6b64weWvanEZVejUYr6/NfrublGeui5nz66u4zgkkNX/tuPb99fyFvjjk+ZI34RNlWcDAkMd7p/Ttw6dBunHFEhyY7/2Db3oM0T09psudfFSIyR1VzwrfbJ2fqnbezsabDGju3akbnVs14f27ksNKnP89lytKKpIBVDRjglPUXp/Xh+N7tuPTZGRSXlZOSJMGra++XzxXDujGsV5t6ywFUmY5hM8VfvHZYgkrScNRkWQHjsPqZaRSizVvYUlBRM7h3ZPwhqpUZ2K01r1zvfOke4Zk17R2yKyINJmAYU1espmEahR8eeRivhWWA9Y7A+UUtJJgb0qMNd/zwcH48pCuFRWV8v35XtWovifCnUVVLmW5MLFbTMI3CGUd05IVrfxCyLZD+5LUbjquV90hNTuJXZ/Uju00m/Tu1CK7Mdii46oSeiS6CaSSspmEajfCJcAEn9q18lFRjlZGaFDI50piasqBhGo1oTUXRJpE1JYHEh8bUloQ0T4nIn0RkgYjME5FPRaSL57l7RSRXRJaLyHDP9qEistB97kmxbGImjHdm84ijO/HslUP5188iRgw2KekpySEZiY2pqUT1aTyiqseq6iDgY+APACJyFDAaOBoYAfxDRAJ/8c8AY4B+7m1EfRfaNGwZnpQgz141lBEDOkXksTLG1ExCgoaqepfwygICMwxHAW+oapGqrgFygWEi0hloqaoz1JmN+DJwYX2W2TR80Rb0McbUroT1aYjIOOBqYA8QWEauK+BdbWaju63EvR++PdZrj8GpldC9+6EzwsXU3H3nH8UPejbtfgxj6lKdXZqJyBQRWRTlNgpAVceqajfgVeDWwGFRXkrjbI9KVcerao6q5nToULP1d82h5dqTelWaNtwYU311VtNQ1bN97voaMAG4D6cG0c3zXDaw2d2eHWW7McaYepSo0VP9PA8vAJa59z8CRotIuoj0wunwnqmqecBeETneHTV1NfBhvRbaGGNMwvo0HhSR/kA5sA64EUBVF4vIW8ASoBS4RVUDCfdvAl4EmgGT3Jsxxph6ZKnRjTHGRIiVGt3GKBpjjPHNgoYxxhjfLGgYY4zxzYKGMcYY3xp9R7iIbMcZoVUd7YEdtVicQ4Gdc9PQ1M65qZ0v1Pyce6hqxOzoRh80akJEZkcbPdCY2Tk3DU3tnJva+ULdnbM1TxljjPHNgoYxxhjfLGjENz7RBUgAO+emoamdc1M7X6ijc7Y+DWOMMb5ZTcMYY4xvFjSMMcb4ZkEjChEZISLLRSRXRO5JdHlqi4h0E5GpIrJURBaLyG3u9rYiMllEVro/23iOudf9HJaLyPDElb5mRCRZROaKyMfu40Z9ziLSWkTeEZFl7u/7hMZ8ziLy/9y/6UUi8rqIZDTG8xWRf4vINhFZ5NlW5fMUkaEistB97kl3yQl/VNVunhuQDKwCegNpwHzgqESXq5bOrTMwxL3fAlgBHAU8DNzjbr8HeMi9f5R7/ulAL/dzSU70eVTz3O/AWfDrY/dxoz5n4CXgBvd+GtC6sZ4zztLPa4Bm7uO3gGsa4/kCpwJDgEWebVU+T2AmcALOqqiTgJF+y2A1jUjDgFxVXa2qxcAbwKgEl6lWqGqeqn7v3t8LLMX5hxuF8yWD+/NC9/4o4A1VLVLVNUAuzudzSBGRbOBc4J+ezY32nEWkJc6Xy78AVLVYVXfTiM8ZZ22gZiKSAmTirOzZ6M5XVb8AdoZtrtJ5ikhnoKWqzlAngrzsOaZSFjQidQU2eB5vdLc1KiLSExgMfAccps7qiLg/O7q7NZbP4nHgNziLfgU05nPuDWwHXnCb5P4pIlk00nNW1U3Ao8B6IA/Yo6qf0kjPN4qqnmdX9374dl8saESK1rbXqMYli0hz4F3gdlUtiLdrlG2H1GchIucB21R1jt9Domw7pM4Z56p7CPCMqg4GCnGaLWI5pM/ZbcMfhdME0wXIEpEr4x0SZdshc75VEOs8a3T+FjQibQS6eR5n41R1GwURScUJGK+q6nvu5q1ulRX35zZ3e2P4LE4CLhCRtThNjWeKyH9o3Oe8Edioqt+5j9/BCSKN9ZzPBtao6nZVLQHeA06k8Z5vuKqe50b3fvh2XyxoRJoF9BORXiKSBowGPkpwmWqFO0LiX8BSVX3M89RHwM/c+z8DPvRsHy0i6SLSC+iH04F2yFDVe1U1W1V74vwuP1fVK2nc57wF2CAi/d1NZwFLaLznvB44XkQy3b/xs3D66xrr+Yar0nm6TVh7ReR49/O62nNM5RI9GqAh3oBzcEYWrQLGJro8tXheJ+NUQxcA89zbOUA74DNgpfuzreeYse7nsJwqjLBoiDfgdCpGTzXqcwYGAbPd3/UHQJvGfM7A/cAyYBHwCs6IoUZ3vsDrOP02JTg1huurc55AjvtZrQKexs0O4udmaUSMMcb4Zs1TxhhjfLOgYYwxxjcLGsYYY3yzoGGMMcY3CxrGGGN8s6BhTC0RkbFuptUFIjJPRI4TkdtFJDPRZTOmttiQW2NqgYicADwGnK6qRSLSHie77DdAjqruSGgBjaklVtMwpnZ0BnaoahGAGyQuwcmFNFVEpgKIyI9EZIaIfC8ib7t5wBCRtSLykIjMdG993e2XumtEzBeRLxJzasZUsJqGMbXA/fL/Cict9xTgTVWd7ua8ylHVHW7t4z2cmbmFInI3kK6qD7j7Pa+q40TkauAyVT1PRBYCI1R1k4i0VifFuTEJYzUNY2qBqu4DhgJjcNKSvyki14TtdjzOwjhfi8g8nDxBPTzPv+75eYJ7/2vgRRH5Oc4CYcYkVEqiC2BMY6GqZcA0YJpbQ/hZ2C4CTFbVK2K9RPh9Vb1RRI7DWURqnogMUtX82i25Mf5ZTcOYWiAi/UWkn2fTIGAdsBdnaV2Ab4GTPP0VmSJyuOeYyz0/Z7j79FHV71T1D8AOQlNdG1PvrKZhTO1oDjwlIq2BUpylNccAVwCTRCRPVc9wm6xeF5F097jf4WRUBkgXke9wLuYCtZFH3GAkOBlM59fHyRgTi3WEG9MAeDvME10WY+Kx5iljjDG+WU3DGGOMb1bTMMYY45sFDWOMMb5Z0DDGGOObBQ1jjDG+WdAwxhjj2/8HPBIlbLBvaBQAAAAASUVORK5CYII=\n", "text/plain": [ "