{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Single Point Energy using `pyxtp`\n", "\n", "## What this tutorial is about \n", "\n", "In this tutrial we will learn how to setup a simple single point calculation using the pyton interface to `XTP`, i.e. `pyxtp` and the Atomistic Simulation Environment (ASE). Let's first import the relevant modules:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2024-05-10T05:41:41.931871Z", "iopub.status.busy": "2024-05-10T05:41:41.931347Z", "iopub.status.idle": "2024-05-10T05:41:42.379380Z", "shell.execute_reply": "2024-05-10T05:41:42.378876Z" } }, "outputs": [], "source": [ "from pyxtp import xtp, Visualization\n", "from ase import Atoms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the molecular structure \n", "\n", "The python interface is built to leverage the ASE molecular structure classes `Atoms` and `Molecule`. Therefore we cam simply define the atomistic structure we want to use via the ASE native functionalities. Let's for example define a `CO` molecule using the `Atoms` ASE class " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-05-10T05:41:42.382466Z", "iopub.status.busy": "2024-05-10T05:41:42.382089Z", "iopub.status.idle": "2024-05-10T05:41:42.385790Z", "shell.execute_reply": "2024-05-10T05:41:42.385194Z" } }, "outputs": [], "source": [ "atoms = Atoms('CO', positions=([0,0,0],[1.4,0,0]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Instantiate the `xtp` calculator\n", "\n", "ASE works with so-called calculators that handle the ab-initio calculation. Many quantum chemistry packages have their own dedicated calculators (see the exhaustive list here: https://wiki.fysik.dtu.dk/ase/ase/calculators/calculators.html). 'pyxtp' is nothing more than a dedicated ASE calculator for XTP. It can therefore be used as any other calculator. \n", "\n", "We first need to instantiate the calcultor. Here we use `nthreads=2` to indicate to the calculator to use two threads to perform the calculation. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-05-10T05:41:42.388371Z", "iopub.status.busy": "2024-05-10T05:41:42.387917Z", "iopub.status.idle": "2024-05-10T05:41:42.394042Z", "shell.execute_reply": "2024-05-10T05:41:42.393614Z" } }, "outputs": [], "source": [ "calc = xtp(nthreads=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Configure the `xtp` calculator\n", "\n", "The `xtp` calculator comes with many options. Those options are precisely those that can be accessed through the different XML files that are used to configure the `dftgwbse` tools of `XTP`. A summary of those options can be found here: https://www.votca.org/xtp/dftgwbse.html. These options can be easily navigated through the `calc.options` and using the autocomplete (tab) functionality. Let's for example change the basis set and auxilliary basis set of the calculations." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2024-05-10T05:41:42.396697Z", "iopub.status.busy": "2024-05-10T05:41:42.396274Z", "iopub.status.idle": "2024-05-10T05:41:42.399343Z", "shell.execute_reply": "2024-05-10T05:41:42.398516Z" } }, "outputs": [], "source": [ "calc.options.dftpackage.basisset = 'def2-svp'\n", "calc.options.dftpackage.auxbasisset = 'aux-def2-svp'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also give redirect all the logging output to a dedicated file" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2024-05-10T05:41:42.401883Z", "iopub.status.busy": "2024-05-10T05:41:42.401546Z", "iopub.status.idle": "2024-05-10T05:41:42.404331Z", "shell.execute_reply": "2024-05-10T05:41:42.403704Z" } }, "outputs": [], "source": [ "calc.options.logging_file = 'CO_energy.log'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run the calcuation\n", "\n", "As for any ASE calculator, the `xtp` calculator must be attached to the molecular structure. To do that we simply need to assign our `xtp` calculator to the `calc` attribute of or molecular structure" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2024-05-10T05:41:42.406654Z", "iopub.status.busy": "2024-05-10T05:41:42.406461Z", "iopub.status.idle": "2024-05-10T05:41:42.409356Z", "shell.execute_reply": "2024-05-10T05:41:42.408632Z" } }, "outputs": [], "source": [ "atoms.calc = calc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To run the calculation we can simply call the `.get_potential_energy()` of the molecular structure, and all the rest will be done automatically" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2024-05-10T05:41:42.411761Z", "iopub.status.busy": "2024-05-10T05:41:42.411408Z", "iopub.status.idle": "2024-05-10T05:41:46.502618Z", "shell.execute_reply": "2024-05-10T05:41:46.502015Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Using 2 threads\n", "... ... Reading structure from CO.xyz\n", "... ... Saving data to CO.orb\n", "... ... Writing output to CO_summary.xml" ] }, { "data": { "text/plain": [ "-113.00304600751406" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "atoms.get_potential_energy()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualize the results\n", "\n", "Several visualisations are directly provided by `pyxtp`. It is for example possible to directly plot the absorption spectrum of the molecular structure assuming a Gaussian broadening of the peaks" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2024-05-10T05:41:46.535789Z", "iopub.status.busy": "2024-05-10T05:41:46.535171Z", "iopub.status.idle": "2024-05-10T05:41:46.757493Z", "shell.execute_reply": "2024-05-10T05:41:46.756793Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABqI0lEQVR4nO3deVhUZf8/8PcwMIBsiiiCAeKSqLhCGSqSGyammZmm5ZJYKZYC9aSo5fI8SpYZlluaS/XNpTSXDA3MJUtMRcg1LUVAAxFREFEGmPP7g9+cGGfAGZyZMzLv13XN5cyZe875zLC9ve/73EcmCIIAIiIiIitiI3UBRERERObGAERERERWhwGIiIiIrA4DEBEREVkdBiAiIiKyOgxAREREZHUYgIiIiMjqMAARERGR1WEAIiIiIqvDAERmdfLkSURGRqJFixZwdHSEo6MjWrVqhTfeeAPHjx+Xujy9HDhwADKZDAcOHDD7sefMmQOZTKax7emnn8bTTz9t9lruN27cODg7O0tdhlnJZDLMmTNHfHz27FnMmTMHly9f1mr79NNPIzAw0GS1XL58GTKZDOvXrzfZMR4lmzZtQqdOneDg4ABvb29ER0ejuLj4ga+7cOEC3nnnHQQFBaF+/fpwd3dH9+7dsWXLllrVERMTA5lMhj///LPaNjNnzoRMJsOJEydqdQyqHQYgMpvPP/8cQUFB+P333zF16lTs2rULP/74I6Kjo3HmzBk88cQTuHjxotRlPlCXLl2QkpKCLl26SF0KAGD58uVYvny51GVYpZSUFEyYMEF8fPbsWcydO1dnADI1Ly8vpKSkYODAgWY/tqX55ptvMHLkSDzxxBPYvXs3Zs+ejfXr12Po0KEPfG1SUhJ+/PFHvPDCC/juu+/wzTffoFWrVnjxxRcxb948g2uJjIwEAKxdu1bn8yqVCl999RU6depkMb9TrIZAZAa//vqrYGNjIwwaNEgoLS3V2ebbb78Vrl69aubKHi2zZ88WLPXHduzYsYKTk5PUZUjqu+++EwAI+/fv13ouLCxMaNeunfmLsjLl5eWCl5eXEB4errH9m2++EQAIiYmJNb7++vXrgkql0to+cOBAoV69esK9e/cMrunJJ58UmjRpIpSVlWk9t3v3bgGA8Nlnnxm8X3o47AEis1iwYAHkcjk+//xzKBQKnW1efPFFeHt7i4+PHz+Ol156Cc2aNYOjoyOaNWuGkSNHIjMzU+N1uoaFAGD9+vWQyWQa/xvft28fnn76aTRs2BCOjo7w9fXFCy+8gJKSErHNihUr0LFjRzg7O8PFxQUBAQGYMWOG+LyuITB9a1XXtH//fkyaNAkeHh5o2LAhhg4din/++Uevz/J+9w+BqYdCFi1ahMWLF8Pf3x/Ozs4ICQnBkSNHtF5//PhxDB48GO7u7nBwcEDnzp3x7bffarQpKSnBO++8A39/fzg4OMDd3R3BwcHYuHGj1v7+/vtvREREwNnZGT4+Pnj77bdRWlqq0Wbu3Lno2rUr3N3d4erqii5dumDNmjUQ7rs2c7NmzfDss89i27Zt6NChAxwcHNC8eXN8+umnWsctKioSa1QoFGjatCmio6Nx586dGj+/ZcuWwcbGBnl5eeK2jz/+GDKZDJMnTxa3qVQqNGjQAG+//ba4reoQ2Pr16/Hiiy8CAHr16gWZTKZzSOrYsWMIDQ1FvXr10Lx5c3zwwQdQqVQ11ggA3333Hbp27Qo3NzfxtePHjxefr24IbMeOHejQoQPs7e3RvHlzLFmyROfPjEwmw5tvvol169ahdevWcHR0RHBwMI4cOQJBEPDRRx+J30u9e/fG33//rfH65ORkPPfcc3jsscfg4OCAli1b4o033kB+fv4D35sxHTlyBDk5OXj11Vc1tr/44otwdnbGtm3bany9h4eHzt8nTz75JEpKSlBQUKCxXZ+fn8jISOTm5mL37t1a+123bh3s7e3x8ssv6/sWyUhspS6A6r6Kigrs378fwcHB8PLy0vt1ly9fRuvWrfHSSy/B3d0dOTk5WLFiBZ544gmcPXsWHh4eBtVx+fJlDBw4EKGhoVi7di3q16+Pq1evYs+ePVAqlahXrx42bdqEqKgovPXWW1i0aBFsbGzw999/4+zZs0atdcKECRg4cCA2bNiA7Oxs/Oc//8Err7yCffv2GfSearJs2TIEBAQgISEBAPDee+8hIiICGRkZcHNzAwDs378fzzzzDLp27YqVK1fCzc0NmzZtwogRI1BSUoJx48YBAGJjY/H111/jf//7Hzp37ow7d+7g9OnTuHHjhsYxy8rKMHjwYERGRuLtt9/GL7/8gv/+979wc3PD+++/r/F5vfHGG/D19QVQ+UfrrbfewtWrVzXaAUB6ejqio6MxZ84cNGnSBN988w2mTp0KpVKJd955B0BlQAsLC8OVK1cwY8YMdOjQAWfOnMH777+PU6dOYe/evTr/qAFA3759IQgCfv75Z4wcORIAsHfvXjg6OiI5OVlsd/z4cdy6dQt9+/bVuZ+BAwdiwYIFmDFjBpYtWyYOZ7Ro0UJsk5ubi5dffhlvv/02Zs+ejW3btiEuLg7e3t4YM2ZMtV/LlJQUjBgxAiNGjMCcOXPg4OCAzMzMB36/7NmzB0OHDkXPnj2xefNmlJeXY9GiRbh27ZrO9rt27UJaWho++OADyGQyTJs2DQMHDsTYsWNx6dIlLF26FIWFhYiNjcULL7yA9PR08XO9ePEiQkJCMGHCBLi5ueHy5ctYvHgxevTogVOnTsHOzq7GWsvLy2t8Xk0ul1f7tQSA06dPAwA6dOigsd3Ozg4BAQHi84bav38/GjVqhMaNG2ts0+fnZ+TIkYiJicHatWsxaNAg8fU3b97Ejh078Pzzz6NBgwa1qosegsQ9UGQFcnNzBQDCSy+9pPVceXm5UFZWJt50dT1XbVtcXCw4OTkJS5YsEbdXNyy0bt06AYCQkZEhCIIgbNmyRQAgpKenV3uMN998U6hfv36N72f//v3VDnM8qFZ1TVFRURrtP/zwQwGAkJOTU+Oxdb3XsLAwISwsTHyckZEhABDat28vlJeXi9uPHj0qABA2btwobgsICBA6d+6s1TX/7LPPCl5eXkJFRYUgCIIQGBgoDBkypMbaxo4dKwAQvv32W43tERERQuvWrat9XUVFhVBWVibMmzdPaNiwocb3gJ+fnyCTybS+Zv369RNcXV2FO3fuCIIgCPHx8YKNjY1w7NgxjXbqr/mDhj0ee+wxYfz48YIgCEJpaang5OQkTJs2TQAgZGZmCoIgCPPnzxfs7OyE4uJi8XUAhNmzZ4uPHzQEBkD4/fffNba3bdtW6N+/f431LVq0SAAg3Lp1q9o26q/7unXrxG1PPPGE4OPjozHsfPv2baFhw4Za30cAhCZNmmi8v+3btwsAhE6dOml8XRISEgQAwsmTJ3XWolKphLKyMiEzM1MAIOzYsaPG96c+vj63qu9Pl/nz51f7sxQeHi48/vjjD6zlfqtXrxYAaPwsC4L+Pz+CUPnzYWdnJ1y7dk3c9tlnnwkAhOTkZINroofHITCSVFBQEOzs7MTbxx9/LD5XXFyMadOmoWXLlrC1tYWtrS2cnZ1x584dnDt3zuBjderUCQqFAq+//jq+/PJLXLp0SavNk08+iVu3bmHkyJHYsWOH3t33htY6ePBgjcfq/63eP2T2MAYOHAi5XF7tMf7++2/8+eefYtd7eXm5eIuIiEBOTg7Onz8PoPJz2b17N6ZPn44DBw7g7t27Oo8pk8k0/oerPu7972vfvn3o27cv3NzcIJfLYWdnh/fffx83btzQGIoCgHbt2qFjx44a20aNGoWioiLxrJldu3YhMDAQnTp10ngf/fv31+uMvT59+mDv3r0AgMOHD6OkpASxsbHw8PAQe4H27t2LkJAQODk51bivmjRp0gRPPvmkxjZdn8/9nnjiCQDA8OHD8e233+Lq1asPPNadO3dw/PhxDBkyRGPY2dnZWetrpNarVy+N99emTRsAwIABAzR6XdTbq9adl5eHiRMnwsfHB7a2trCzs4Ofnx8A6PXzeuzYMb1u1dV+v+p6iWrqPdJl9+7dmDx5MoYNG4a33npL3G7Izw9QOQxWVlaGr7/+Wty2bt06+Pn5oU+fPgbVRMbBAEQm5+HhAUdHR52/5Dds2IBjx45h586dWs+NGjUKS5cuxYQJE/DTTz/h6NGjOHbsGBo1alTtH+CatGjRAnv37kXjxo0xefJktGjRAi1atMCSJUvENqNHj8batWuRmZmJF154AY0bN0bXrl01hkJ0MbTWhg0bajy2t7cHgFq9r+o86BjqYZB33nlHI4Ta2dkhKioKAMQA+Omnn2LatGnYvn07evXqBXd3dwwZMgR//fWXxjHq1asHBwcHrePeu3dPfHz06FGEh4cDAFavXo3ffvsNx44dw8yZMzXqU2vSpInWe1NvUw/BXbt2DSdPntR6Hy4uLhAE4YFBtm/fvsjKysJff/2FvXv3onPnzmjcuDF69+6NvXv34u7duzh8+HC1w1/6uv9rAlR+Pg/6uvfs2RPbt29HeXk5xowZg8ceewyBgYE652Cp3bx5E4IgwNPTU+s5XdsAwN3dXeOxOjhVt139dVWpVAgPD8f333+Pd999Fz///DOOHj0qzjnT5/u6U6dOet3ur+V+6s/4/uFZACgoKHjg66v66aefMHToUPTr1w/ffPONRngy5OcHAEJDQ/H4449j3bp1ACqXBDlx4gReffVVg0MZGQfnAJHJyeVy9O7dG0lJScjJydGYB9S2bVsA0DptuLCwELt27cLs2bMxffp0cXtpaanWJET1H9zS0lLxjzwAnX/0QkNDERoaioqKChw/fhyfffYZoqOj4enpiZdeegkA8Oqrr+LVV1/FnTt38Msvv2D27Nl49tlnceHCBfF/tLWt1ZKo5yXFxcVVe3pw69atAQBOTk6YO3cu5s6di2vXrom9QYMGDapxfRNdNm3aBDs7O+zatUsjLG3fvl1n+9zc3Gq3qf/YqUN2dacaP2i+mPp/4Hv37kVycjL69esnbp81axZ++eUXlJaWPnQAehjPPfccnnvuOZSWluLIkSOIj4/HqFGj0KxZM4SEhGi1b9CgAWQymc75Pro+04dx+vRp/PHHH1i/fj3Gjh0rbr9/onRNHjRHSG3dunXi3Bpd2rdvDwA4deqU+PsFqOyh+fPPP8V5Xg/y008/YciQIQgLC8PWrVu1Tt4w5OdHbfz48Zg+fTqOHj2KDRs2wMbGpsb3QqbFAERmERcXh927d2PixInYsmXLA3/ZyWQyCIKgEWgA4IsvvkBFRYXGtmbNmgGo/B+VeqgAAH744Ydq9y+Xy9G1a1cEBATgm2++wYkTJ8QApObk5IQBAwZAqVRiyJAhOHPmjM4AZEitlqR169Zo1aoV/vjjDyxYsEDv13l6emLcuHH4448/kJCQgJKSEtSrV0/v18tkMtja2moMz929e1djaKCqM2fO4I8//tAYBtuwYQNcXFzEicbPPvssFixYgIYNG8Lf31/vWtS8vLzQtm1bbN26FampqeLn0a9fP7zxxhtYvHgxXF1dNb6/dDFFT56uY4SFhaF+/fr46aefkJaWpjMAOTk5ITg4GNu3b8eiRYvEP+DFxcXYtWuXUWtS92Dc/zPw+eef672PY8eO6dXuQV/frl27wsvLC+vXr8eIESPE7Vu2bEFxcbHeawENGTIEPXr0wPbt27XeF1C7n5+xY8di1qxZ+Pzzz7Fz50706dNH5+8UMg8GIDKL7t27Y9myZXjrrbfQpUsXvP7662jXrh1sbGyQk5ODrVu3AgBcXV3Ff3v27ImPPvoIHh4eaNasGQ4ePIg1a9agfv36GvuOiIiAu7s7IiMjMW/ePNja2mL9+vXIzs7WaLdy5Urs27cPAwcOhK+vL+7duyf2GKj/Z//aa6/B0dER3bt3h5eXF3JzcxEfHw83N7dq//gZUqul+fzzzzFgwAD0798f48aNQ9OmTVFQUIBz587hxIkT+O677wBU/lF59tln0aFDBzRo0ADnzp3D119/jZCQEIPCD1A5N2nx4sUYNWoUXn/9ddy4cQOLFi3S+UcGALy9vTF48GDMmTMHXl5e+L//+z8kJydj4cKF4rGjo6OxdetW9OzZEzExMejQoQNUKhWysrKQlJSEt99+G127dq2xrj59+uCzzz4Tv/5A5R9bf39/JCUlYfDgwbC1rflXpnql51WrVsHFxQUODg7w9/fXOfRliPfffx9XrlxBnz598Nhjj+HWrVtYsmQJ7OzsEBYWVu3r5s2bh4EDB6J///6YOnUqKioq8NFHH8HZ2dmovZMBAQFo0aIFpk+fDkEQ4O7ujh9++OGBQ8dVBQcHG6UWuVyODz/8EKNHj8Ybb7yBkSNH4q+//sK7776Lfv364ZlnnhHbHjx4EH369MH7778vnn3466+/YsiQIWjSpAlmzJiB9PR0jf23bdtW/D2l78+PWpMmTRAREYF169ZBEARxkUSSiJQzsMn6pKenC6+++qrg7+8v2NvbCw4ODkLLli2FMWPGCD///LNG2ytXrggvvPCC0KBBA8HFxUV45plnhNOnTwt+fn7C2LFjNdoePXpU6Natm+Dk5CQ0bdpUmD17tvDFF19onAWWkpIiPP/884Kfn59gb28vNGzYUAgLCxN27twp7ufLL78UevXqJXh6egoKhULw9vYWhg8frnG2i66zwPStVX0W2P1nK+lzZpkgGHYW2EcffaT1etx31pIgCMIff/whDB8+XGjcuLFgZ2cnNGnSROjdu7ewcuVKsc306dOF4OBgoUGDBoK9vb3QvHlzISYmRsjPzxfbVLcQoq6a165dK7Ru3VrcV3x8vLBmzRqNr5cgVJ4FNnDgQGHLli1Cu3btBIVCITRr1kxYvHix1nGKi4uFWbNmCa1btxYUCoXg5uYmtG/fXoiJiRFyc3N1fp5V7dixQwAg9OvXT2P7a6+9JgAQPv30U63X6Po8ExISBH9/f0Eul2uctVTdQohjx44V/Pz8aqxt165dwoABA4SmTZsKCoVCaNy4sRARESEcOnRIbKPrLDBBEIRt27YJ7du3FxQKheDr6yt88MEHwpQpU4QGDRpovZfJkydrbKvue0n9/frdd9+J286ePSv069dPcHFxERo0aCC8+OKLQlZWls7PyBw2bNggdOjQQVAoFEKTJk2EKVOmCLdv39Zoo34fVetTf79Wd7v/Z1Sfn5+q1N9n7u7utVpUkYxHJgj3rTxGRGQhmjVrhsDAQKMP2VizsrIydOrUCU2bNkVSUpLU5RBJhkNgRER1WGRkJPr16ycO6a5cuRLnzp3TOPuRyBoxABER1WG3b9/GO++8g+vXr8POzg5dunRBYmKipGe0EVkCDoERERGR1eFCiERERGR1GICIiIjI6jAAERERkdXhJGgdVCoV/vnnH7i4uPAaLURERI8IQRBw+/ZteHt7w8am5j4eBiAd/vnnH/j4+EhdBhEREdVCdnY2HnvssRrbMADp4OLiAqDyA1QveU5ERESWraioCD4+PuLf8ZowAOmgHvZydXVlACIiInrE6DN9hZOgiYiIyOowABEREZHVYQAiIiIiq8MARERERFaHAYiIiIisDgMQERERWR0GICIiIrI6DEBERERkdRiAiIiIyOowABEREZHV4aUwiIiI6ihluQpfp1xGZkEJ/NzrYXRIMyhs2fcBMAARERHVSfGJZ7H6UAZUwr/b5ieew2uh/oiLaCtdYRaCAYiIiKiOiU88i89/ydDarhIgbrf2EMR+MCIiojpEWa7C6kPa4aeq1YcyoCxXmakiy8QAREREVId8nXJZY9hLF5VQ2c6aMQARERHVIZkFJUZtV1cxABEREdUhfu71jNqurmIAIiIiqkNGhzSDjazmNjayynbWjAGIiIioDlHY2uC1UP8a27wW6m/16wHxNHgiIqI6Rn2K+/3rANnIwHWA/j+ZIAgPmCtufYqKiuDm5obCwkK4urpKXQ4REVGt/HOrBN0+2A8AiOnbCpOeblmne34M+ftddz8FIiIiK1c17Lz8lG+dDj+G4idBREREVocBiIiIiKwOAxARERFZHQYgIiIisjoMQERERGR1GICIiIjI6jAAERERkdVhACIiIiKrwwBEREREVkfyALR8+XL4+/vDwcEBQUFBOHToULVtc3JyMGrUKLRu3Ro2NjaIjo7W2e7WrVuYPHkyvLy84ODggDZt2iAxMdFE74CIiIgeNZIGoM2bNyM6OhozZ85EWloaQkNDMWDAAGRlZelsX1paikaNGmHmzJno2LGjzjZKpRL9+vXD5cuXsWXLFpw/fx6rV69G06ZNTflWiIiI6BEi6dXgFy9ejMjISEyYMAEAkJCQgJ9++gkrVqxAfHy8VvtmzZphyZIlAIC1a9fq3OfatWtRUFCAw4cPw87ODgDg5+dnondAREREjyLJeoCUSiVSU1MRHh6usT08PByHDx+u9X537tyJkJAQTJ48GZ6enggMDMSCBQtQUVFR7WtKS0tRVFSkcSMiIqK6S7IAlJ+fj4qKCnh6emps9/T0RG5ubq33e+nSJWzZsgUVFRVITEzErFmz8PHHH2P+/PnVviY+Ph5ubm7izcfHp9bHJyIiIssn+SRomUym8VgQBK1thlCpVGjcuDFWrVqFoKAgvPTSS5g5cyZWrFhR7Wvi4uJQWFgo3rKzs2t9fCIiIrJ8ks0B8vDwgFwu1+rtycvL0+oVMoSXlxfs7Owgl8vFbW3atEFubi6USiUUCoXWa+zt7WFvb1/rYxIREdGjRbIeIIVCgaCgICQnJ2tsT05ORrdu3Wq93+7du+Pvv/+GSqUSt124cAFeXl46ww8RERFZH0mHwGJjY/HFF19g7dq1OHfuHGJiYpCVlYWJEycCqByaGjNmjMZr0tPTkZ6ejuLiYly/fh3p6ek4e/as+PykSZNw48YNTJ06FRcuXMCPP/6IBQsWYPLkyWZ9b0RERGS5JD0NfsSIEbhx4wbmzZuHnJwcBAYGIjExUTxtPScnR2tNoM6dO4v3U1NTsWHDBvj5+eHy5csAAB8fHyQlJSEmJgYdOnRA06ZNMXXqVEybNs1s74uIiIgsm0wQBEHqIixNUVER3NzcUFhYCFdXV6nLISIiqpX84nsI/t/PAIDjs/rAw9lB4opMy5C/35KfBUZERERkbgxAREREZHUYgIiIiMjqMAARERGR1WEAIiIiIqvDAERERERWhwGIiIiIrA4DEBEREVkdBiAiIiKyOgxAREREZHUYgIiIiMjqMAARERGR1WEAIiIiIqvDAERERERWhwGIiIiIrA4DEBEREVkdBiAiIiKyOgxAREREZHUYgIiIiMjqMAARERGR1WEAIiIiIqvDAERERERWhwGIiIiIrA4DEBEREVkdBiAiIiKyOgxAREREZHUYgIiIiMjqMAARERGR1WEAIiIiIqvDAERERERWR/IAtHz5cvj7+8PBwQFBQUE4dOhQtW1zcnIwatQotG7dGjY2NoiOjq5x35s2bYJMJsOQIUOMWzQREaFCJSDl4g3sSL+KlIs3UKESpC6JSG+2Uh588+bNiI6OxvLly9G9e3d8/vnnGDBgAM6ePQtfX1+t9qWlpWjUqBFmzpyJTz75pMZ9Z2Zm4p133kFoaKipyicislp7Tudg7g9nkVN4T9zm5eaA2YPa4plALwkrI9KPpD1AixcvRmRkJCZMmIA2bdogISEBPj4+WLFihc72zZo1w5IlSzBmzBi4ublVu9+Kigq8/PLLmDt3Lpo3b26q8omIrNKe0zmY9H8nNMIPAOQW3sOk/zuBPadzJKqMSH+SBSClUonU1FSEh4drbA8PD8fhw4cfat/z5s1Do0aNEBkZqVf70tJSFBUVadyIiEhbhUrA3B/OQgCgKi1Bwd7PcWP3p6i4exvqAbC5P5zlcBhZPMkCUH5+PioqKuDp6amx3dPTE7m5ubXe72+//YY1a9Zg9erVer8mPj4ebm5u4s3Hx6fWxyciqsuOZhSIPT83D6zD7dQfUHwyCTd/XgUAEADkFN7D0YwCCaskejDJJ0HLZDKNx4IgaG3T1+3bt/HKK69g9erV8PDw0Pt1cXFxKCwsFG/Z2dm1Oj4RUV2Xd7sy/AiqCtw5e1DcXnLhMITyMq12RJZKsknQHh4ekMvlWr09eXl5Wr1C+rp48SIuX76MQYMGidtUKhUAwNbWFufPn0eLFi20Xmdvbw97e/taHZOIyJo0dnEAAJQVXIWgLBG3C2WlUF6/DHuvVhrtiCyVZD1ACoUCQUFBSE5O1tienJyMbt261WqfAQEBOHXqFNLT08Xb4MGD0atXL6Snp3Noi4joIT3p7w4vNweU5WVoPVd2/TJkqDwb7El/d/MXR2QASU+Dj42NxejRoxEcHIyQkBCsWrUKWVlZmDhxIoDKoamrV6/iq6++El+Tnp4OACguLsb169eRnp4OhUKBtm3bwsHBAYGBgRrHqF+/PgBobSciIsPJbWSYPagtRv70tdZzZQVXAQCzB7WF3KZ2UxmIzEXSADRixAjcuHED8+bNQ05ODgIDA5GYmAg/Pz8AlQsfZmVlabymc+fO4v3U1FRs2LABfn5+uHz5sjlLJyKyWs8EeqFbYxUS79tud68AK17pwnWA6JEgaQACgKioKERFRel8bv369VrbBMGwUyt17YOIiB5ORVGe1rY2rmUMP/TIkPwsMCIievSoe91ldg6wcXAGAFzhGbT0CJG8B4iIiB4tgiAgMzMTAGDr2hiQy6G6V4yrV69CpVLBxob/tybLx+9SIiIySGFhIe7dq1znR+7SELYuleuulZWV4dq1a1KWRqQ3BiAiIjJIXt6/83/k9dwgd/l34dmrV69KURKRwTgERkREBqkagGzqucFG4Sg+vnHjhhQlERmMAYiIiAxy/fp18b68nhtkdg46nyOyZAxARERkEM0eoPqwsVOIj/Pz86UoichgDEBERGSQ++cAyWwZgOjRwwBEREQG0RoCs7XT+RyRJWMAIiIig9w/CVom/zcAsQeIHhUMQEREZJCCggLxvo2jCwMQPZK4DhARERmksLAQACCTyWBjXw82dvZwcnICwCEwenQwABERkUFu3boFAHB1dYVMVvlnpIG7u8ZzRJaOAYiIiAyiDjlu9euL21xdXQH82ztEZOkYgIiIyCBVe4DU3NzcAAAlJSUoKyuToiwigzAAERGR3u7duwelUgkAqK/RA+Qm3mcvED0KGICIiEhvVef4uLnVF++7ujEA0aOFAYiIiPSmEYDq/xt63KoMhzEA0aOAAYiIiPRWXQ9Q1QnRDED0KGAAIiIivVUNN25Vhr2qDoHxVHh6FDAAERGR3jR7gDgERo8uBiAiItKb5hyg+uJ9ToKmR02trgWWnZ2Ny5cvo6SkBI0aNUK7du1gb29v7NqIiMjCVA1AVU+Dd+Np8PSI0TsAZWZmYuXKldi4cSOys7MhCIL4nEKhQGhoKF5//XW88MILsLFhxxIRUV2kOQeoPoDKNYGqnhHGAESPAr2SytSpU9G+fXv89ddfmDdvHs6cOYPCwkIolUrk5uYiMTERPXr0wHvvvYcOHTrg2LFjpq6biIgkoDkH6N95P5wETY8avXqAFAoFLl68iEaNGmk917hxY/Tu3Ru9e/fG7NmzkZiYiMzMTDzxxBNGL5aIiKSlfRp8fuV9DoHRI0avAPTRRx/pvcOIiIhaF0NERJatarhxreY0eAYgehQYPFnn7t27KCkpER9nZmYiISEBP/30k1ELIyIiy3P79m3xvouLi3jf2dkZMpkMAAMQPRoMDkDPPfccvvrqKwCVXaFdu3bFxx9/jCFDhmDFihVGL5CIiCxHcXExAMDOzk7j7F8bGxvx6vCcA0SPAoMD0IkTJxAaGgoA2LJlCzw9PZGZmYmvvvoKn376qdELJCIiy6HuAXJ2dtZ6Tr0wYtVeIiJLZXAAKikpEbs9k5KSMHToUNjY2OCpp55CZmam0QskIiLLoe4Bqjr8paYOReo2RJbM4ADUsmVLbN++HdnZ2fjpp58QHh4OAMjLyxO7Pw2xfPly+Pv7w8HBAUFBQTh06FC1bXNycjBq1Ci0bt0aNjY2iI6O1mqzevVqhIaGokGDBmjQoAH69u2Lo0ePGlwXERFpq6kHSL3tzp07UKlUZq2LyFAGB6D3338f77zzDpo1a4auXbsiJCQEQGVvUOfOnQ3a1+bNmxEdHY2ZM2ciLS0NoaGhGDBgALKysnS2Ly0tRaNGjTBz5kx07NhRZ5sDBw5g5MiR2L9/P1JSUuDr64vw8HBcvXrVsDdKREQaVCoV7ty5A6DmHiBBEHD37l2z1kZkKIMD0LBhw5CVlYXjx49jz5494vY+ffogISHBoH0tXrwYkZGRmDBhAtq0aYOEhAT4+PhUO5m6WbNmWLJkCcaMGaNxEb6qvvnmG0RFRaFTp04ICAjA6tWroVKp8PPPPxtUGxERaVKHH0B3D1DVUMRhMLJ0Bgeg8ePHw8nJCZ07d9a45EW7du2wcOFCvfejVCqRmpoqDqGphYeH4/Dhw4aWVa2SkhKUlZXB3d292jalpaUoKirSuBERkaaqoaamHiCAE6HJ8hkcgL788kudXZt3794VT4/XR35+PioqKuDp6amx3dPTE7m5uYaWVa3p06ejadOm6Nu3b7Vt4uPj4ebmJt58fHyMdnwiorqiaqipaQ4QwB4gsnx6B6CioiIUFhZCEATcvn1bo7fk5s2bSExMROPGjQ0uQL1wlpogCFrbauvDDz/Exo0b8f3338PBwaHadnFxcSgsLBRv2dnZRjk+EVFdYkgPEAMQWTq9rwZfv359yGQyyGQyPP7441rPy2QyzJ07V+8De3h4QC6Xa/X25OXlafUK1caiRYuwYMEC7N27Fx06dKixrb29vcaCXkREpI09QFSX6B2A9u/fD0EQ0Lt3b2zdulVjTo1CoYCfnx+8vb31PrBCoUBQUBCSk5Px/PPPi9uTk5Px3HPP6b0fXT766CP873//w08//YTg4OCH2hcREVViDxDVJXoHoLCwMABARkYGfH19jTJMFRsbi9GjRyM4OBghISFYtWoVsrKyMHHiRACVQ1NXr17VmFuUnp4OoPKH6/r160hPT4dCoUDbtm0BVA57vffee9iwYQOaNWsm9jA5Ozvr/B8LERHp50E9QDwLjB4legWgkydPIjAwEDY2NigsLMSpU6eqbfug4aaqRowYgRs3bmDevHnIyclBYGAgEhMT4efnB6By4cP71wSqutZQamoqNmzYAD8/P1y+fBlA5cKKSqUSw4YN03jd7NmzMWfOHL1rIyIiTTwLjOoSvQJQp06dkJubi8aNG6NTp06QyWQQBEGrnUwmQ0VFhUEFREVFISoqSudz69ev19qm67hVqYMQEREZF+cAUV2iVwDKyMhAo0aNxPtERGR9qoYaBiB61OkVgNRDUvffJyIi61G1B4iToOlRp/ck6KouXLiAAwcOIC8vT+uCd++//75RCiMiIsvyoB4gToKmR4nBAWj16tWYNGkSPDw80KRJE42zwWQyGQMQEVEdxR4gqksMDkD/+9//MH/+fEybNs0U9RARkYUyZA4QzwIjS2fwtcBu3ryJF1980RS1EBGRBeMkaKpLDA5AL774IpKSkkxRCxERWbA7d+6I9+vVq6f1vEKhgJ2dHQAGILJ8Bg+BtWzZEu+99x6OHDmC9u3bi9/salOmTDFacUREZDlKSkoAVAYdW1tbKJXlWm2cnZ1x8+ZNBiCyeAYHoFWrVsHZ2RkHDx7EwYMHNZ6TyWQMQEREdZQ6ADk5OVXbRh2AOAeILJ3BAYgLIRIRWSd1ANI1/KWmDkfqtkSWyuA5QEREZJ3Uc4BqCkDq5xiAyNIZ3AM0fvz4Gp9fu3ZtrYshIiLLZUgPUHl5OZRKJRQKhVlqIzKUwQHo5s2bGo/Lyspw+vRp3Lp1C7179zZaYUREZDnUgQaoeQ5Q1XBUUlLCAEQWy+AAtG3bNq1tKpUKUVFRaN68uVGKIiIiy3L37l3xvj49QEDlkFn9+vVNWRZRrRllDpCNjQ1iYmLwySefGGN3RERkYR60BpCu5zgPiCyZ0SZBX7x4EeXl2mtCEBHRo69qmDGkB4jIUhk8BBYbG6vxWBAE5OTk4Mcff8TYsWONVhgREVmOqgHIkDlARPdTlqvwdcplZBaUwM+9HkaHNIPC1vwnpRscgNLS0jQe29jYoFGjRvj4448feIYYERE9mtgDRMYQn3gWqw9lQCX8u21+4jm8FuqPuIi2Zq3F4AC0f/9+U9RBREQWjHOA6GHFJ57F579oL6asEiBuN2cI4kKIRET0QOwBooehLFdh9aGarySx+lAGlOUqM1XEAERERHrgHCB6GF+nXNYY9tJFJVS2MxcGICIieiB9e4AYgEiXzAL9vhf0bWcMDEBERPRA+s4B4hAY6eLnXv33TG3aGQMDEBERPRB7gOhhjA5pBhtZzW1sZJXtzMVoAej48eP45ZdfjLU7IiKyIPrOAWIPEOmisLXBa6H+NbZ5LdTfrOsBGXwafHVGjx6NCxcuoKKiwli7JCIiC8EeIHpY6lPc718HyEaGR2MdoOr8/PPPKCsrM9buiIjIgnAOEBlDXERbjO3WDN0+qFxTMKZvK0x6uuWjsRJ0dby9vY21KyIisjDsASJjqRp2Xn7KV5LwA9QyAFVUVGDbtm04d+4cZDIZAgICMGTIENjaGi1PERGRBeEcIKprDE4sp0+fxnPPPYfc3Fy0bt0aAHDhwgU0atQIO3fuRPv27Y1eJBERSYs9QFTXGNzvNGHCBLRr1w5XrlzBiRMncOLECWRnZ6NDhw54/fXXDS5g+fLl8Pf3h4ODA4KCgnDo0KFq2+bk5GDUqFFo3bo1bGxsEB0drbPd1q1b0bZtW9jb26Nt27bYtm2bwXUREdG/9J0DZGdnB7lcrvUaIktjcAD6448/EB8fjwYNGojbGjRogPnz5yM9Pd2gfW3evBnR0dGYOXMm0tLSEBoaigEDBiArK0tn+9LSUjRq1AgzZ85Ex44ddbZJSUnBiBEjMHr0aPzxxx8YPXo0hg8fjt9//92g2oiI6F/69gDJZDJxGIw9QGTJDA5ArVu3xrVr17S25+XloWXLlgbta/HixYiMjMSECRPQpk0bJCQkwMfHBytWrNDZvlmzZliyZAnGjBkDNzc3nW0SEhLQr18/xMXFISAgAHFxcejTpw8SEhIMqo2IiP6lDjP29vZiD0911AGJPUBkyfQKQEVFReJtwYIFmDJlCrZs2YIrV67gypUr2LJlC6Kjo7Fw4UK9D6xUKpGamorw8HCN7eHh4Th8+LBh76KKlJQUrX3279+/xn2WlpZqvMeioqJaH5+IqC5SB6Caen/U2ANEjwK9JkHXr18fMtm/a1gLgoDhw4eL2wShckWjQYMG6b0QYn5+PioqKuDp6amx3dPTE7m5uXrtQ5fc3FyD9xkfH4+5c+fW+phERHWdujdHnwDEHiB6FOgVgPbv32+yAqoGK6AyTN2/zdT7jIuLQ2xsrPi4qKgIPj4+D1UDEVFdUpseoHv37kGlUsHGhpedJMujVwAKCwsDAJSXl2P+/PkYP378QwcEDw8PyOVyrZ6ZvLw8rR4cQzRp0sTgfdrb28Pe3r7WxyQiquvUAaimNYDUqoaku3fv6vUaInMzKJbb2tpi0aJFRrnel0KhQFBQEJKTkzW2Jycno1u3brXeb0hIiNY+k5KSHmqfRETWrLy8HEqlEoBhPUAAh8HIchm8EGKfPn1w4MABjBs37qEPHhsbi9GjRyM4OBghISFYtWoVsrKyMHHiRACVQ1NXr17FV199Jb5Gfap9cXExrl+/jvT0dCgUCrRtW3kRtalTp6Jnz55YuHAhnnvuOezYsQN79+7Fr7/++tD1EhFZo7t374r3DZkDBHAiNFkugwPQgAEDEBcXh9OnTyMoKEira3Pw4MF672vEiBG4ceMG5s2bh5ycHAQGBiIxMRF+fn4AKhc+vH9NoM6dO4v3U1NTsWHDBvj5+eHy5csAgG7dumHTpk2YNWsW3nvvPbRo0QKbN29G165dDX2rREQE/RdB1NWGPUBkqQwOQJMmTQJQuYbP/WQymcHDY1FRUYiKitL53Pr167W2qc84q8mwYcMwbNgwg+ogIiLd9L0OmK427AEiS2VwAFKpVKaog4iILJS+q0DrasMeILJUPDeRiIhqZGgAYg8QPQoM7gECKhP9wYMHkZWVJZ4ZoDZlyhSjFEZERJaBc4CoLjI4AKWlpSEiIgIlJSW4c+cO3N3dkZ+fj3r16qFx48YMQEREdQx7gKguMngILCYmBoMGDUJBQQEcHR1x5MgRZGZmIigoCIsWLTJFjUREJCFDJ0GzB4geBQYHoPT0dLz99tuQy+WQy+UoLS2Fj48PPvzwQ8yYMcMUNRIRkYTYA0R1kcEByM7OTryulqenp7hOj5ubm9aaPURE9OjjHCCqiwyeA9S5c2ccP34cjz/+OHr16oX3338f+fn5+Prrr9G+fXtT1EhERBJ6mNPg2QNElsrgHqAFCxbAy8sLAPDf//4XDRs2xKRJk5CXl4dVq1YZvUAiIpLWwyyEyB4gslQG9wAFBweL9xs1aoTExESjFkRERJaFCyFSXcSFEImIqEaGzgGq2gNU9UKqRJZErwD0zDPP4PDhww9sd/v2bSxcuBDLli176MKIiMgycA4Q1UV6DYG9+OKLGD58OFxcXDB48GAEBwfD29sbDg4OuHnzJs6ePYtff/0ViYmJePbZZ/HRRx+Zum4iIjKTh1kHiAGILJVeASgyMhKjR4/Gli1bsHnzZqxevRq3bt0CUHkF+LZt26J///5ITU1F69atTVkvERGZmaE9QI6OjuJ9zgEiS6X3JGiFQoFRo0Zh1KhRAIDCwkLcvXsXDRs2hJ2dnckKJCIiaRk6B0gul8PBwQH37t1jDxBZrFpdDBWoXPjQzc3NmLUQEZEFMrQHSN2OAYgsGc8CIyKiGqlDjL29PeRyuV6vUQclBiCyVAxARERUI3WI0bf3p2pbzgEiS8UARERENVKHmNoEIPYAkaViACIiohrVpgdIfbp8WVkZysrKTFIX0cOo9SRopVKJvLw8qFQqje2+vr4PXRQREVkOdQDSZw0gtaph6e7duzxbmCyOwQHor7/+wvjx47VWhhYEATKZDBUVFUYrjoiIpFVeXg6lUgmgdkNgQGWAcnV1NXptRA/D4AA0btw42NraYteuXfDy8oJMJjNFXUREZAFqcwr8/W05EZoskcEBKD09HampqQgICDBFPUREZEGMEYA4EZoskcGToNu2bYv8/HxT1EJERBbG0OuA6WrLAESWyOAAtHDhQrz77rs4cOAAbty4gaKiIo0bERHVHewBorrK4CGwvn37AgD69OmjsZ2ToImI6h5DrwOmqy0DEFkigwPQ/v37TVEHERFZIE6CprrK4AAUFhZmijqIiMgCcQ4Q1VW1Wgjx1q1bWLNmDc6dOweZTIa2bdti/PjxvDo8EVEdwzlAVFcZPAn6+PHjaNGiBT755BMUFBQgPz8fixcvRosWLXDixAlT1EhERBLhHCCqqwwOQDExMRg8eDAuX76M77//Htu2bUNGRgaeffZZREdHG1zA8uXL4e/vDwcHBwQFBeHQoUM1tj948CCCgoLg4OCA5s2bY+XKlVptEhIS0Lp1azg6OsLHxwcxMTG4d++ewbUREVk7zgGiuqpWPUDTpk2Dre2/o2e2trZ49913cfz4cYP2tXnzZkRHR2PmzJlIS0tDaGgoBgwYgKysLJ3tMzIyEBERgdDQUKSlpWHGjBmYMmUKtm7dKrb55ptvMH36dMyePRvnzp3DmjVrsHnzZsTFxRn6VomIrF5t5wCxB4gsncEByNXVVWdAyc7OhouLi0H7Wrx4MSIjIzFhwgS0adMGCQkJ8PHxwYoVK3S2X7lyJXx9fZGQkIA2bdpgwoQJGD9+PBYtWiS2SUlJQffu3TFq1Cg0a9YM4eHhGDlypMHhjIiIat8DxEnQZOkMDkAjRoxAZGQkNm/ejOzsbFy5cgWbNm3ChAkTMHLkSL33o1QqkZqaivDwcI3t4eHhWhdaVUtJSdFq379/fxw/fhxlZWUAgB49eiA1NRVHjx4FAFy6dAmJiYkYOHBgtbWUlpZyQUciIh04B4jqKoPPAlu0aBFkMhnGjBmD8vJyAICdnR0mTZqEDz74QO/95Ofno6KiAp6enhrbPT09kZubq/M1ubm5OtuXl5cjPz8fXl5eeOmll3D9+nX06NEDgiCgvLwckyZNwvTp06utJT4+HnPnztW7diIia8GzwKiuMrgHSKFQYMmSJbh58ybS09ORlpaGgoICfPLJJ7C3tze4gPuvJq9eUdqQ9lW3HzhwAPPnz8fy5ctx4sQJfP/999i1axf++9//VrvPuLg4FBYWirfs7GyD3wcRUV1kjDlAnARNlqhW6wABld/c7du3r/WBPTw8IJfLtXp78vLytHp51Jo0aaKzva2tLRo2bAgAeO+99zB69GhMmDABANC+fXvcuXMHr7/+OmbOnAkbG+3MZ29vX6vwRkRU17EHiOoqvQLQ0KFDsX79eri6umLo0KE1tv3+++/1OrBCoUBQUBCSk5Px/PPPi9uTk5Px3HPP6XxNSEgIfvjhB41tSUlJCA4Ohp2dHYDKH7T7Q45cLocgCGJvERER6YdzgKiu0isAubm5iUNMrq6uNQ5RGSI2NhajR49GcHAwQkJCsGrVKmRlZWHixIkAKoemrl69iq+++goAMHHiRCxduhSxsbF47bXXkJKSgjVr1mDjxo3iPgcNGoTFixejc+fO6Nq1K/7++2+89957GDx4MORyuVHqJiKyFrXtAZLL5bC3t0dpaSkDEFkkvQLQunXrxPvr16832sFHjBiBGzduYN68ecjJyUFgYCASExPh5+cHAMjJydE45d7f3x+JiYmIiYnBsmXL4O3tjU8//RQvvPCC2GbWrFmQyWSYNWsWrl69ikaNGmHQoEGYP3++0eomIrIWtQ1A6vYMQGSpDJ4D1Lt3b3z//feoX7++xvaioiIMGTIE+/btM2h/UVFRiIqK0vmcrrAVFhZW4yU3bG1tMXv2bMyePdugOoiISJs6vNjb2xvci16vXj3cvHmTk6DJIhl8FtiBAwegVCq1tt+7d++Bl7EgIqJHizq8GNr7A/x71hh7gMgS6d0DdPLkSfH+2bNnNc7GqqiowJ49e9C0aVPjVkdERJJSh5faBCD1axiAyBLpHYA6deoEmUwGmUyG3r17az3v6OiIzz77zKjFERGRtNThxZA1gNTUAUipVKK8vFzjGpJEUtP7uzEjIwOCIKB58+Y4evQoGjVqJD6nUCjQuHFjnmVFRFTHGKMHSL0fV1dXo9VF9LD0DkDqM7NUKpXJiiEiIstRXl4uzvlkAKK6plb9kefPn8dnn32Gc+fOQSaTISAgAG+++SYCAgKMXR8REUnkYU6BB3hFeLJsBp8FtmXLFgQGBiI1NRUdO3ZEhw4dcOLECbRv3x7fffedKWokIiIJ1PY6YGpcDZosmcE9QO+++y7i4uIwb948je2zZ8/GtGnT8OKLLxqtOCIikk7V0OLo6Gjw6xmAyJIZ3AOUm5uLMWPGaG1/5ZVXtC5USkREj66qCxg+bA8QF0MkS2NwAHr66ad1Lnj466+/IjQ01ChFERGR9IwZgNgDRJbG4CGwwYMHY9q0aUhNTcVTTz0FADhy5Ai+++47zJ07Fzt37tRoS0REj6aHnQPESdBkyQwOQOrrdi1fvhzLly/X+RwAyGQyVFRUPGR5REQklao9QMY4DZ7IkhgcgLgOEBGRdeBZYFSXGTQHqKysDL169cKFCxdMVQ8REVkIY/YAcRI0WRqDApCdnR1Onz4NmUxmqnqIiMhCPOwkaM4BIktm8FlgY8aMwZo1a0xRCxERWRAOgVFdZvAcIKVSiS+++ALJyckIDg7W+qFYvHix0YojIiLpcBI01WUGB6DTp0+jS5cuAKA1F4hDY0REdYcxe4A4B4gsjcEBaP/+/aaog4iILAx7gKguM3gOUFVXrlzB1atXjVULERFZEE6CprrM4ACkUqkwb948uLm5wc/PD76+vqhfvz7++9//co0gIqI6hJOgqS4zeAhs5syZWLNmDT744AN0794dgiDgt99+w5w5c3Dv3j3Mnz/fFHUSEZGZPewQWNUryDMAkaUxOAB9+eWX+OKLLzSu89WxY0c0bdoUUVFRDEBERHXEw/YA2draQqFQQKlUchI0WRyDh8AKCgoQEBCgtT0gIAAFBQVGKYqIiKSnDi02NjZQKBS12oe654g9QGRpDA5AHTt2xNKlS7W2L126FB07djRKUUREJD11aHFycqr1MifqniMGILI0Bg+Bffjhhxg4cCD27t2LkJAQyGQyHD58GNnZ2UhMTDRFjUREJAF1D1Bthr/U2ANElsrgHqCwsDBcuHABzz//PG7duoWCggIMHToU58+fR2hoqClqJCIiCagDUG0mQKupX8s5QGRpDO4BAgBvb29OdiYiquOqDoHVljoAKZVKlJeXw9a2Vn92iIzO4B6gPXv24NdffxUfL1u2DJ06dcKoUaNw8+ZNoxZHRETSUKlUuHv3LoCH6wGqGp7U+yOyBAYHoP/85z8oKioCAJw6dQqxsbGIiIjApUuXEBsba/QCiYjI/KqGFWP0AAGcB0SWxeAAlJGRgbZt2wIAtm7dikGDBmHBggVYvnw5du/ebXABy5cvh7+/PxwcHBAUFIRDhw7V2P7gwYMICgqCg4MDmjdvjpUrV2q1uXXrFiZPngwvLy84ODigTZs2nKBNRGSAh70MhhoDEFkqgwOQQqEQv4n37t2L8PBwAIC7u7vYM6SvzZs3Izo6GjNnzkRaWhpCQ0MxYMAAZGVl6WyfkZGBiIgIhIaGIi0tDTNmzMCUKVOwdetWsY1SqUS/fv1w+fJlbNmyBefPn8fq1avRtGlTQ98qEZHVethVoHW9lhOhyZIYPButR48eiI2NRffu3XH06FFs3rwZAHDhwgU89thjBu1r8eLFiIyMxIQJEwAACQkJ+Omnn7BixQrEx8drtV+5ciV8fX2RkJAAAGjTpg2OHz+ORYsW4YUXXgAArF27FgUFBTh8+DDs7OwAAH5+foa+TSIiq/awq0CrsQeILJXBPUBLly6Fra0ttmzZghUrVog9K7t378Yzzzyj936USiVSU1PFHiS18PBwHD58WOdrUlJStNr3798fx48fR1lZGQBg586dCAkJweTJk+Hp6YnAwEAsWLAAFRUV1dZSWlqKoqIijRsRkTUz1hAYrwhPlsrgHiBfX1/s2rVLa/snn3xi0H7y8/NRUVEBT09Pje2enp7Izc3V+Zrc3Fyd7cvLy5Gfnw8vLy9cunQJ+/btw8svv4zExET89ddfmDx5MsrLy/H+++/r3G98fDzmzp1rUP1ERHVZ1bBirCEwBiCyJLVakKGiogLbtm3DuXPnIJPJEBAQgCFDhtRqfYf7l1cXBKHGJdd1ta+6XaVSoXHjxli1ahXkcjmCgoLwzz//4KOPPqo2AMXFxWmcwVZUVAQfHx+D3wsRUV3BSdBU1xmcWE6fPo3Bgwfj2rVraN26NYDK+T+NGjXCzp070b59e7324+HhAblcrtXbk5eXp9XLo9akSROd7W1tbdGwYUMAgJeXF+zs7CCXy8U2bdq0QW5uLpRKpc4L+tnb28Pe3l6vuomIrAEnQVNdZ/AcoAkTJiAwMBBXrlzBiRMncOLECWRnZ6NDhw54/fXX9d6PQqFAUFAQkpOTNbYnJyejW7duOl8TEhKi1T4pKQnBwcHihOfu3bvj77//hkqlEttcuHABXl5etb6aMRGRteEkaKrrDA5Af/zxB+Lj49GgQQNxW4MGDTB//nykp6cbtK/Y2Fh88cUXWLt2Lc6dO4eYmBhkZWVh4sSJACqHpsaMGSO2nzhxIjIzMxEbG4tz585h7dq1WLNmDd555x2xzaRJk3Djxg1MnToVFy5cwI8//ogFCxZg8uTJhr5VIiKrxUnQVNcZPATWunVrXLt2De3atdPYnpeXh5YtWxq0rxEjRuDGjRuYN28ecnJyEBgYiMTERPG09ZycHI01gfz9/ZGYmIiYmBgsW7YM3t7e+PTTT8VT4AHAx8cHSUlJiImJQYcOHdC0aVNMnToV06ZNM/StEhFZLU6CprpOrwBU9bTwBQsWYMqUKZgzZw6eeuopAMCRI0cwb948LFy40OACoqKiEBUVpfO59evXa20LCwvDiRMnatxnSEgIjhw5YnAtRERUyRSToDkHiCyJXgGofv36GmdfCYKA4cOHi9vUZ2INGjSoxvV2iIjo0cAeIKrr9ApA+/fvN3UdRERkQTgHiOo6vQJQWFiYXjszdBI0ERFZJg6BUV1n8Flg9yssLMTy5cvRpUsXBAUFGaMmIiKSmLGGwNgDRJaq1gFo3759eOWVV+Dl5YXPPvsMEREROH78uDFrIyIiiRirB8jZ2Vm8X1xc/FA1ERmTQafBX7lyBevXr8fatWtx584dDB8+HGVlZdi6dSvatm1rqhqJiMjMjNUD5OjoCJlMBkEQGIDIoujdAxQREYG2bdvi7Nmz+Oyzz/DPP//gs88+M2VtREQkEXUPkEwmg4ODQ633Y2NjI/YgMQCRJdG7BygpKQlTpkzBpEmT0KpVK1PWREREElMHoHr16tV4gWp9ODs7o7i4mAGILIrePUCHDh3C7du3ERwcjK5du2Lp0qW4fv26KWsjIiKJqMOKi4vLQ+9LPQ+IAYgsid4BKCQkBKtXr0ZOTg7eeOMNbNq0CU2bNoVKpUJycjJu375tyjqJiMiM1GGl6iTm2mIAIktk8Flg9erVw/jx4/Hrr7/i1KlTePvtt/HBBx+gcePGGDx4sClqJCIiMzNFAFIqlVAqlQ+9PyJjeKh1gFq3bo0PP/wQV65cwcaNG41VExERSahqUDHmEBjAxRDJcjz0QogAIJfLMWTIEOzcudMYuyMiIglVHaoyZg/Q/fsmkpJRAhAREdUdDEBkDRiAiIhIAwMQWQMGICIi0lA1pBh7DhADEFkKBiAiItJQdVkT9gBRXcUAREREGjgERtaAAYiIiDQwAJE1YAAiIiINDEBkDRiAiIhIQ9U5QJwETXUVAxAREWlgDxBZAwYgIiLSwABE1oABiIiINJgyAPFaYGQpGICIiEgD5wCRNWAAIiIiDcbuAXJyctK5byIpMQAREZEGBiCyBgxARESkQR1SZDIZ6tWr99D7s7Ozg729vca+iaTGAERERBrUIcXZ2Rkymcwo+1T3JDEAkaVgACIiIg3qSdDGGP5SYwAiS8MAREREGqr2ABkLAxBZGskD0PLly+Hv7w8HBwcEBQXh0KFDNbY/ePAggoKC4ODggObNm2PlypXVtt20aRNkMhmGDBli5KqJiOouUwagO3fuQKVSGW2/RLUlaQDavHkzoqOjMXPmTKSlpSE0NBQDBgxAVlaWzvYZGRmIiIhAaGgo0tLSMGPGDEyZMgVbt27VapuZmYl33nkHoaGhpn4bRER1hlKpRFlZGQDjBqCq6wmxF4gsgaQBaPHixYiMjMSECRPQpk0bJCQkwMfHBytWrNDZfuXKlfD19UVCQgLatGmDCRMmYPz48Vi0aJFGu4qKCrz88suYO3cumjdvbo63QkRUJxh7EUQ1V1dX8X5RUZHR9ktUW5IFIKVSidTUVISHh2tsDw8Px+HDh3W+JiUlRat9//79cfz4cfF/LAAwb948NGrUCJGRkXrVUlpaiqKiIo0bEZE1MvYaQGpubm7iff6OJUsgWQDKz89HRUUFPD09NbZ7enoiNzdX52tyc3N1ti8vL0d+fj4A4LfffsOaNWuwevVqvWuJj4+Hm5ubePPx8THw3RAR1Q2mCkBVe4AKCwuNtl+i2pJ8EvT9a0wIglDjuhO62qu33759G6+88gpWr14NDw8PvWuIi4tDYWGheMvOzjbgHRAR1R1Ve2c4BEZ1ma1UB/bw8IBcLtfq7cnLy9Pq5VFr0qSJzva2trZo2LAhzpw5g8uXL2PQoEHi8+qzDWxtbXH+/Hm0aNFCa7/29vbiKqVERNasajipOmz1sDgERpZGsh4ghUKBoKAgJCcna2xPTk5Gt27ddL4mJCREq31SUhKCg4NhZ2eHgIAAnDp1Cunp6eJt8ODB6NWrF9LT0zm0RUT0AFWHp6r22jwsDoGRpZGsBwgAYmNjMXr0aAQHByMkJASrVq1CVlYWJk6cCKByaOrq1av46quvAAATJ07E0qVLERsbi9deew0pKSlYs2YNNm7cCABwcHBAYGCgxjHq168PAFrbiYhIm6l6gDgERpZG0gA0YsQI3LhxA/PmzUNOTg4CAwORmJgIPz8/AEBOTo7GmkD+/v5ITExETEwMli1bBm9vb3z66ad44YUXpHoLRER1iql6gDgERpZG0gAEAFFRUYiKitL53Pr167W2hYWF4cSJE3rvX9c+iIhIN3P0AHEIjCyB5GeBERGR5TDHHCD2AJElYAAiIiIRzwIja8EAREREIp4FRtaCAYiIiERVe2eMGYCqLqrIHiCyBAxAREQkUvfOyGQyo14Kw8bGRgxB7AEiS8AAREREInXvjIuLC2xsjPsnQt2jxB4gsgQMQEREJFL3zhhzArSaep8MQGQJGICIiEikDifGnP+jpt5ncXExKioqjL5/IkMwABEREQCgrKwMJSUlAEzTA1Q1VN2+fdvo+ycyBAMQEREB0AwlpugB4lpAZEkYgIiICIDm2Vmm7gHimWAkNQYgIiICYLo1gHTtkz1AJDUGICIiAgDcunVLvG/Ks8AABiCSHgMQEREBAG7evCned3d3N/r+OQRGloQBiIgktX37dkRFRWHdunVQqVRSl2PVCgoKxPsNGjQw+v6r9gBV7W0ikoKt1AUQkfVasmQJoqOjAQArVqzAyZMn8cknn0hblBWr2gNkigBUdZ9Vj0UkBfYAEZEkLl68iP/85z8a2xISEnDo0CGJKiJTB6Cqw2oMQCQ1BiAiksTixYtRVlYGQHNo5H//+59UJVk9cwagqsNtRFJgACIis7t37x6++uorAICTkxP++usv+Pv7AwCSkpKQnZ0tZXlWy5xDYAxAJDUGICIyu71796K4uBgAMGzYMDRq1Aivvvqq+PymTZukKs2qcQiMrAkDEBGZ3bZt28T7Q4cOBQCMHDlS3Pbjjz+avSbS7JWpX7++0ffv6OgIe3t7rWMRSYEBiIjMShAE/PDDDwAqh7/69esHAGjZsiVatmwJADh8+DAvlikBda+Mm5sb5HK50fcvk8nEniUGIJIaAxARmdWff/6J69evAwB69eoFR0dH8Tl1GCorK8PBgwclqc+aqQOQKYa/1NTDYBwCI6kxABGRWVU9zT00NFTjufDwcPH+3r17zVYTVfbMmTMA3blzB6WlpSY7DtGDMAARkVnVFICefvpp8f7hw4fNVRIBKC4uRkVFBQDTBiAuhkiWggGIiMxKHYAcHR0RFBSk8Vz9+vXRpk0bAEBaWhru3r1r9vqslakvg6HGM8HIUjAAEZHZZGdnIzMzEwDQtWtXKBQKrTZPPfUUAKC8vBxpaWlmrc+amfoUeDUuhkiWggGIiMwmJSVFvN+jRw+dbdQBCAB+//13k9dElaqGEVNcCV6NQ2BkKRiAiMhsTpw4Id7v2rWrzjZVA9CRI0dMXhNVUp+ZBwCNGjUy2XGqhqsbN26Y7DhED8IARERmUzUAde7cWWebdu3awcnJCYBmjxGZlrkCUMOGDcX7DEAkJckD0PLly+Hv7w8HBwcEBQU98ErQBw8eRFBQEBwcHNC8eXOsXLlS4/nVq1cjNDQUDRo0QIMGDdC3b18cPXrUlG+BiPQgCIIYgBo3bgxvb2+d7eRyOYKDgwFUzhmq+oeZTCcvL0+8b8oA1LhxY53HJDI3SQPQ5s2bER0djZkzZyItLQ2hoaEYMGAAsrKydLbPyMhAREQEQkNDkZaWhhkzZmDKlCnYunWr2ObAgQMYOXIk9u/fj5SUFPj6+iI8PBxXr14119siIh2uXLki/o+/S5cukMlk1bat2jvEidDmUTVoVg0pxlY1XDHckpQkDUCLFy9GZGQkJkyYgDZt2iAhIQE+Pj5YsWKFzvYrV66Er68vEhIS0KZNG0yYMAHjx4/HokWLxDbffPMNoqKi0KlTJwQEBGD16tVQqVT4+eefzfW2iEiHqsNfXbp0qbFt1QCUnp5uqpKoCnMNgbEHiCyFZAFIqVQiNTVVY+VXoHIl2OoWQEtJSdFq379/fxw/fhxlZWU6X1NSUoKysrIaz2ooLS1FUVGRxo2IjKu2AYg9QOZhzjlA6t4/BiCSkmQBKD8/HxUVFfD09NTY7unpidzcXJ2vyc3N1dm+vLwc+fn5Ol8zffp0NG3aFH379q22lvj4eLi5uYk3Hx8fA98NET2IPhOg1QICAsSrhjMAmYc6ANWrVw/16tUz2XFsbW3FidAMQCQlySdB3z8PQBCEGucG6GqvazsAfPjhh9i4cSO+//57ODg4VLvPuLg4FBYWirfs7GxD3gIR6UEdgNzc3ODv719jWzs7OwQGBgIALly4gOLiYpPXZ+3UAciUvT9q6mNwDhBJSbIA5OHhAblcrtXbk5eXp9XLo9akSROd7av+j0Jt0aJFWLBgAZKSktChQ4caa7G3t4erq6vGjYiM59q1a/jnn38APHgCtJq6l0gQBJw6dcqk9Vm7iooKcYK6OQKQeh7QnTt3cOfOHZMfj0gXyQKQQqFAUFAQkpOTNbYnJyejW7duOl8TEhKi1T4pKQnBwcGws7MTt3300Uf473//iz179oin0xKRdKoOYz1o/o8a5wGZT0FBgdibbs4ABLAXiKQj6RBYbGwsvvjiC6xduxbnzp1DTEwMsrKyMHHiRACVQ1NjxowR20+cOBGZmZmIjY3FuXPnsHbtWqxZswbvvPOO2ObDDz/ErFmzsHbtWjRr1gy5ubnIzc1lFzqRhAyZAK3GAGQ+5poArcYzwcgS2Ep58BEjRuDGjRuYN28ecnJyEBgYiMTERPj5+QEAcnJyNNYE8vf3R2JiImJiYrBs2TJ4e3vj008/xQsvvCC2Wb58OZRKJYYNG6ZxrNmzZ2POnDlmeV9EpMmQCdBq7du3h0wmgyAIDEAmZu4AxLWAyBJIGoAAICoqClFRUTqfW79+vda2sLAwjV+m97t8+bKRKiMiY1H/zNarVw+PP/64Xq9xdnbG448/jvPnz+PUqVMoKyvTGOom41HPzwJQ7QrdxlS1B+jatWsmPx6RLpKfBUZEddutW7eQkZEBAOjYsSPkcrnG88pyFdYcuoT3d5zGmkOXoCxXic+pe4uUSiX+/PNP8xVtZaqulG+OAFT1RJfqlj0hMjXJe4CIqG6rupLz/fN/4hPPYvWhDKiEf7fNTzyH10L9ERfRFp07d8amTZsAVPYitW/f3hwlW52qPUBNmzY1+fGqHoOXKSKpsAeIiEyquvk/8Yln8fkvmuEHAFQC8PkvGYhPPKvRvqahb3o45u4Beuyxx8T7V65cMfnxiHRhACIik9J1CryyXIXVhzJqfN3qQxkI7NBJfJyammqS+kiaITAbGxutYxOZEwMQEZmUOgDZ2dmhXbt2AICvUy5r9fzcTyUAiRduo1mzZuJ+KioqTFmq1VIPgTVo0ACOjo4mP56trS28vLwAsAeIpMMAREQmU1JSgnPnzgEA2rVrB4VCAQDILCjR6/WZBSUICgoS93XhwgXTFGrFBEEQA5A55v+oqY+Vl5cHpVJptuMSqTEAEZHJnDp1CipV5VldVSdA+7nrd7FNP/d6YgACOAxmCjdu3EBpaSkA8wYg9TwgQRCQk5NjtuMSqTEAEZHJVDcBenRIM9g84HJgNrLKdlWDEwOQ8Zl7DSA1nglGUmMAIiKTqe4aYApbG7wWWvMV4V8L9YfC1oY9QCaWnZ0t3peiBwjgPCCSBgMQEZnM8ePHAQAymQwdOnTQeC4uoi3e6Omv1RNkIwPe6Fm5DhAAeHh4wNfXF0BloFIPqZFxXLp0Sbzv719zKDWmqgGoaggjMhcGICIyiZKSEpw8eRIAEBgYCGdnZ602cRFt8eu0XuLjmL6t8Od/B4jhR03dC1RcXIy//vrLhFVbn6oBqEWLFmY7btWwVbUGInNhACIik0hNTRVPW3/qqaeqbaew/ffX0MtP+Wo8Vqs6DKbuVSLjuHjxoni/efPmZjtuy5Ytxft///232Y5LpMYAREQmceTIEfF+165dH2pfTzzxhHg/JSXlofZFmtS9L/b29madA+Th4QEXFxcADEAkDQYgIjKJqgGoph4gfTz11FPiysG//fbbQ+2L/iUIghiA/P39xc/YHGQymdgLlJmZibKyMrMdmwhgACIiExAEQeypcXV1RZs2bR5qf66uruKFUE+ePImioqKHrpEqr8R+9+5dAOYd/lJTB6CKigpkZmaa/fhk3RiAiMjoMjMzxcXtnnjiCaP0LHTv3h0AoFKpNHqXqPaqzv8x5wRoNc4DIikxABGR0e3fv1+837NnT6PsUx2AAA6DGYv6MiUA0KpVK7Mfv2ro4tl9ZG4MQERkdPv27RPv9+7d2yj7rBqADh06ZJR9Wrs//vhDvH//Ok3mUHVo9PTp02Y/Plk3BiAiMipBEMQA5OTkhCeffNIo+/X19RWvDP/bb7+huLjYKPu1Zup1mgCIc6zMqX379pDJKlfCTE9PN/vxyboxABGRUV24cEG8vlRoaKh4BfiHJZPJ8MwzzwAAlEolDhw4YJT9WitBEMQA9Nhjj8Hd3d3sNbi4uIjDYCdPnkR5ebnZayDrxQBEREa1d+9e8b6xhr/U1AEIAPbs2WPUfVub7OxsFBYWApBm+EutU6dOAIB79+5xHhCZFQMQERnVjh07xPv9+vUz6r579+4NW1tbAAxAD6vqkJMlBCCAw2BkXgxARGQ0t27dEs8Aa9asGTp27GjU/bu4uKBHjx4AKk/hrnoWExnm8OHD4v3g4GDJ6ujcubN4n8sbkDkxABGR0fz444/iPI4hQ4aIE1yNafDgweL9zZs3G33/1uLXX38V76tDpRS6desmrhNVdfkEIlNjACIio/n666/F+88//7xJjjFixAgxWG3cuBGCIJjkOHXZnTt3cOzYMQCVa/F4enpKVkv9+vXFi92eOnUKeXl5ktVC1oUBiIiMIjs7G0lJSQAqrytlql4Fb29vhIWFAag844wXRzXcvn37oFQqAQB9+vSRuBrNyfI8u4/MhQGIiIxi1apVYm/MuHHjTHphzVdffVW8/9lnn5nsOHXVrl27xPsDBw6UsJJKVQPQ9u3bpSuErAoDEBE9tKKiIixduhQAYGtrqxFQTGHEiBFo1KgRAGDLli3IyMgw6fHqktLSUnz33XcAgHr16llED9DTTz+Nhg0bAqgMQLdv35a4IrIGDEBE9NA+/vhj3Lp1CwAwevRo+Pj4mPR49vb2mDRpEgCgvLwcs2bNMunx6pLt27fj5s2bACrnaTk5OUlcEaBQKPDSSy8BAO7evYtvv/1W4orIGjAAEdFDOX/+PD744AMAlb0/06dPN8txY2NjxV6DDRs2aCzASLqpVCrxawUA48ePl7AaTaNHjxbvx8fHo6ysTMJqyBpIHoCWL18Of39/ODg4ICgo6IEXOTx48CCCgoLg4OCA5s2bY+XKlVpttm7dirZt28Le3h5t27bFtm3bTFU+UZ1WoRKQcvEGdqRfRcrFG6hQaZ5xVVRUhKFDh4oTamNjY/H4448/cL/KchXWHLqE93ecxjdHsmpVm5ubG+bOnSs+HjNmDDIzM2u1L2uxevVqcbHBoKAg9OrVS9qCqujatas4HHfx4kUsWbJE4oqorpM0AG3evBnR0dGYOXMm0tLSEBoaigEDBiArS/cvxIyMDERERCA0NBRpaWmYMWMGpkyZgq1bt4ptUlJSMGLECIwePRp//PEHRo8ejeHDh+P3338319siqhP2nM5Bj4X7MHL1EUzdlI6Rq4+gx8J92HM6BwCQlZWFXr164ezZswAqr+z9/vvvP3C/8YlnEfDebvz3x3P4KiUTn+yt/eUPJk2aJK42nZOTg969e2tc4JP+tW/fPkRHR4uPP/zwQ5Os0/Qw5s+fL96Pi4vD7t27JayG6jpJA9DixYsRGRmJCRMmoE2bNkhISICPjw9WrFihs/3KlSvh6+uLhIQEtGnTBhMmTMD48eOxaNEisU1CQgL69euHuLg4BAQEIC4uDn369EFCQoKZ3hXRo2/P6RxM+r8TyCm8p7E958ZtvPrB/2HI6NfQtm1bnDhxAgDg7u6OHTt2PHA+SXziWXz+SwZU1Szds+Rnw8KQjY0N/u///k/sdbp06RK6dOmCV199FT///LPVXzFepVLhzJkziI2NxTPPPIN79yq/nm+88YbRr9NmDF27dsW7774LoHJu16BBg/DWW28hLS0NKpVK4uqorrGV6sBKpRKpqala8wXCw8M1lmivKiUlBeHh4Rrb+vfvjzVr1qCsrAx2dnZISUlBTEyMVhtLCEDr1q1DYmKi1vaaFnKr7jm+RvrXSH18U71GAHDqSiHKKv79gyNUlKGiuAAVd24Bggo7qrzO19cXiYmJaNWqVbXHBCqHvVYfqvlsrW+OZOG9ge2gsNX//2aNGzfGzz//jMGDByMtLQ0VFRVYv3491q9fD6By3aCGDRuifv36qFevHuRyOWxsbMSbXC7X2N/9n0/VxzU9Z8zXPuxxbt++jfz8fOTm5mqFwEGDBln08NL8+fNx6dIlbNmyBRUVFVi6dCmWLl0KBwcH+Pv7w83NDc7OznB0dIRcLodcLsfnn38uzgcj0pdkASg/Px8VFRVaK5B6enoiNzdX52tyc3N1ti8vL0d+fj68vLyqbVPdPoHK00JLS0vFx+orJBcVFRn0nh7k999/x5YtW4y6TyKp2Cns8eq4sZg1axbc3Nwe+PPy1eEMlN8rqbGNCsCqvacwppu/QbW4urpiz549SEhIwLJlyzRq+eeff/DPP/8YtL+6SKFQICYmBu+++67W77zaKlGWQ1Va+TUtKipCucI4f1JWr16NgIAAfPzxx7h79y6AyqvFV3ftt/nz58POzs4ox65rbhffE79Gt4uKoFApJa7ItDWpf/b1WSFesgCkdv8YtCAINY5L62p//3ZD9xkfH68xmVLN1KfyEj3KypSlWLVqFVatWmXU/b6VALxl1D0SUNnrvnDhQixcuNAk+/dKMMlu9RIQECDdwR8hzROkrkCbqWq6ffs23NzcamwjWQDy8PCAXC7X6pnJy8ur9ro0TZo00dne1tZW7P6srk1N17qJi4tDbGys+FilUqGgoAANGzY0+iTBoqIi+Pj4IDs7G66urkbd96OIn4cmfh6a+Hlo4uehiZ+HJn4e/w4Be3t7P7CtZAFIoVAgKCgIycnJGhdNTE5OxnPPPafzNSEhIfjhhx80tiUlJSE4OFjs/gwJCUFycrLGPKCkpCR069at2lrs7e1hb2+vsa1+/fqGviWDuLq6Wu03qC78PDTx89DEz0MTPw9N/Dw0Wfvn8aCeHzVJh8BiY2MxevRoBAcHIyQkBKtWrUJWVhYmTpwIoLJn5urVq/jqq68AABMnTsTSpUsRGxuL1157DSkpKVizZg02btwo7nPq1Kno2bMnFi5ciOeeew47duzA3r178euvv0ryHomIiMjySBqARowYgRs3bmDevHnIyclBYGAgEhMT4efnB6ByXY+qawL5+/sjMTERMTExWLZsGby9vfHpp5/ihRdeENt069YNmzZtwqxZs/Dee++hRYsW2Lx5M7p27Wr290dERESWSfJJ0FFRUYiKitL5nPo01qrCwsLEtUeqM2zYMAwbNswY5Rmdvb09Zs+erTXkZq34eWji56GJn4cmfh6a+Hlo4udhGJmgz7liRERERHWI5NcCIyIiIjI3BiAiIiKyOgxAREREZHUYgIiIiMjqMACZ0fLly+Hv7w8HBwcEBQXh0KFDUpckifj4eDzxxBNwcXFB48aNMWTIEJw/f17qsixGfHw8ZDIZoqOjpS5FMlevXsUrr7yChg0bol69eujUqRNSU1OlLksS5eXlmDVrFvz9/eHo6IjmzZtj3rx5VnN19F9++QWDBg2Ct7c3ZDIZtm/frvG8IAiYM2cOvL294ejoiKeffhpnzpyRplgzqOnzKCsrw7Rp09C+fXs4OTnB29sbY8aM4bXwqsEAZCabN29GdHQ0Zs6cibS0NISGhmLAgAEa6xxZi4MHD2Ly5Mk4cuQIkpOTUV5ejvDwcNy5c0fq0iR37NgxrFq1Ch06dJC6FMncvHkT3bt3h52dHXbv3o2zZ8/i448/Nvnq7JZq4cKFWLlyJZYuXYpz587hww8/xEcffYTPPvtM6tLM4s6dO+jYsSOWLl2q8/kPP/wQixcvxtKlS3Hs2DE0adIE/fr1w+3bt81cqXnU9HmUlJTgxIkTeO+993DixAl8//33uHDhAgYPHixBpY8AgcziySefFCZOnKixLSAgQJg+fbpEFVmOvLw8AYBw8OBBqUuR1O3bt4VWrVoJycnJQlhYmDB16lSpS5LEtGnThB49ekhdhsUYOHCgMH78eI1tQ4cOFV555RWJKpIOAGHbtm3iY5VKJTRp0kT44IMPxG337t0T3NzchJUrV0pQoXnd/3nocvToUQGAkJmZaZ6iHiHsATIDpVKJ1NRUhIeHa2wPDw/H4cOHJarKchQWFgIA3N3dJa5EWpMnT8bAgQPRt29fqUuR1M6dOxEcHIwXX3wRjRs3RufOnbF69Wqpy5JMjx498PPPP+PChQsAgD/++AO//vorIiIiJK5MehkZGcjNzdX43Wpvb4+wsDD+bv3/CgsLIZPJrLYHtSaSrwRtDfLz81FRUaF1RXpPT0+tK9dbG0EQEBsbix49eiAwMFDqciSzadMmnDhxAseOHZO6FMldunQJK1asQGxsLGbMmIGjR49iypQpsLe3x5gxY6Quz+ymTZuGwsJCBAQEQC6Xo6KiAvPnz8fIkSOlLk1y6t+fun63ZmZmSlGSRbl37x6mT5+OUaNGWfXFUavDAGRGMplM47EgCFrbrM2bb76JkydPWvXFarOzszF16lQkJSXBwcFB6nIkp1KpEBwcjAULFgAAOnfujDNnzmDFihVWGYA2b96M//u//8OGDRvQrl07pKenIzo6Gt7e3hg7dqzU5VkE/m7VVlZWhpdeegkqlQrLly+XuhyLxABkBh4eHpDL5Vq9PXl5eVr/c7Emb731Fnbu3IlffvkFjz32mNTlSCY1NRV5eXkICgoSt1VUVOCXX37B0qVLUVpaCrlcLmGF5uXl5YW2bdtqbGvTpg22bt0qUUXS+s9//oPp06fjpZdeAgC0b98emZmZiI+Pt/oA1KRJEwCVPUFeXl7idmv/3VpWVobhw4cjIyMD+/btY+9PNTgHyAwUCgWCgoKQnJyssT05ORndunWTqCrpCIKAN998E99//z327dsHf39/qUuSVJ8+fXDq1Cmkp6eLt+DgYLz88stIT0+3qvADAN27d9daFuHChQvw8/OTqCJplZSUwMZG81e1XC63mtPga+Lv748mTZpo/G5VKpU4ePCgVf5uBf4NP3/99Rf27t2Lhg0bSl2SxWIPkJnExsZi9OjRCA4ORkhICFatWoWsrCxMnDhR6tLMbvLkydiwYQN27NgBFxcXsWfMzc0Njo6OEldnfi4uLlrzn5ycnNCwYUOrnBcVExODbt26YcGCBRg+fDiOHj2KVatWYdWqVVKXJolBgwZh/vz58PX1Rbt27ZCWlobFixdj/PjxUpdmFsXFxfj777/FxxkZGUhPT4e7uzt8fX0RHR2NBQsWoFWrVmjVqhUWLFiAevXqYdSoURJWbTo1fR7e3t4YNmwYTpw4gV27dqGiokL8/eru7g6FQiFV2ZZJ2pPQrMuyZcsEPz8/QaFQCF26dLHa074B6LytW7dO6tIshjWfBi8IgvDDDz8IgYGBgr29vRAQECCsWrVK6pIkU1RUJEydOlXw9fUVHBwchObNmwszZ84USktLpS7NLPbv36/z98XYsWMFQag8FX727NlCkyZNBHt7e6Fnz57CqVOnpC3ahGr6PDIyMqr9/bp//36pS7c4MkEQBHMGLiIiIiKpcQ4QERERWR0GICIiIrI6DEBERERkdRiAiIiIyOowABEREZHVYQAiIiIiq8MARERERFaHAYiISE83btxA48aNcfnyZaPu99SpU3jsscdw584do+6XiKrHAERERjdu3DjIZDKt2zPPPCN1aQ8lPj4egwYNQrNmzfRqP2jQIPTt21fncykpKZDJZDhx4gTat2+PJ598Ep988okRqyWimnAlaCIyunHjxuHatWtYt26dxnZ7e3s0aNDAZMdVKpUmu97R3bt34e3tjcTERISEhOj1mu3bt2Po0KHIyMjQupjra6+9huPHjyMtLQ0A8MMPP2DixInIysqyugvgEkmBPUBEZBL29vZo0qSJxq1q+JHJZPjiiy/w/PPPo169emjVqhV27typsY+zZ88iIiICzs7O8PT0xOjRo5Gfny8+//TTT+PNN99EbGwsPDw80K9fPwDAzp070apVKzg6OqJXr1748ssvIZPJcOvWLdy5cweurq7YsmWLxrF++OEHODk54fbt2zrfz+7du2Fra6sVfmqq8dlnn0Xjxo2xfv16jdeUlJRg8+bNiIyMFLf1798fN27cwMGDB/X8hInoYTAAEZFk5s6di+HDh+PkyZOIiIjAyy+/jIKCAgBATk4OwsLC0KlTJxw/fhx79uzBtWvXMHz4cI19fPnll7C1tcVvv/2Gzz//HJcvX8awYcMwZMgQpKen44033sDMmTPF9k5OTnjppZe0eqfWrVuHYcOGwcXFRWetv/zyC4KDgzW2PahGW1tbjBkzBuvXr0fVzvbvvvsOSqUSL7/8srhNoVCgY8eOOHToUC0+SSIymKSXYiWiOmns2LGCXC4XnJycNG7z5s0T2wAQZs2aJT4uLi4WZDKZsHv3bkEQBOG9994TwsPDNfabnZ0tABDOnz8vCIIghIWFCZ06ddJoM23aNCEwMFBj28yZMwUAws2bNwVBEITff/9dkMvlwtWrVwVBEITr168LdnZ2woEDB6p9T88995wwfvx4jW361Hju3DkBgLBv3z6xTc+ePYWRI0dqHeP5558Xxo0bV20NRGQ8tpKmLyKqs3r16oUVK1ZobHN3d9d43KFDB/G+k5MTXFxckJeXBwBITU3F/v374ezsrLXvixcv4vHHHwcArV6Z8+fP44knntDY9uSTT2o9bteuHb766itMnz4dX3/9NXx9fdGzZ89q38/du3fh4OCgsU2fGgMCAtCtWzesXbsWvXr1wsWLF3Ho0CEkJSVpvcbR0RElJSXV1kBExsMAREQm4eTkhJYtW9bYxs7OTuOxTCaDSqUCAKhUKgwaNAgLFy7Uep2Xl5fGcaoSBAEymUxr2/0mTJiApUuXYvr06Vi3bh1effVVrddV5eHhgZs3b2ps07fGyMhIvPnmm1i2bBnWrVsHPz8/9OnTR+s1BQUFaNGiRbU1EJHxcA4QEVmkLl264MyZM2jWrBlatmypcbs/9FQVEBCAY8eOaWw7fvy4VrtXXnkFWVlZ+PTTT3HmzBmMHTu2xno6d+6Ms2fP1qrG4cOHQy6XY8OGDfjyyy+rDVunT59G586da6yDiIyDAYiITKK0tBS5ubkat6pncD3I5MmTUVBQgJEjR+Lo0aO4dOkSkpKSMH78eFRUVFT7ujfeeAN//vknpk2bhgsXLuDbb78Vz8KqGjoaNGiAoUOH4j//+Q/Cw8Px2GOP1VhP//79cebMGY1eIH1rdHZ2xogRIzBjxgz8888/GDdunNb+L1++jKtXr1a7bhARGRcDEBGZxJ49e+Dl5aVx69Gjh96v9/b2xm+//YaKigr0798fgYGBmDp1Ktzc3GBjU/2vLn9/f2zZsgXff/89OnTogBUrVohngdnb22u0jYyMhFKpxPjx4x9YT/v27REcHIxvv/22VjVGRkbi5s2b6Nu3L3x9fbX2v3HjRoSHh2utF0REpsGFEImozps/fz5WrlyJ7Oxsje3ffPMNpk6din/++UevBRQTExPxzjvv4PTp0zWGMEOVlpaiVatW2LhxI7p37260/RJR9TgJmojqnOXLl+OJJ55Aw4YN8dtvv+Gjjz7Cm2++KT5fUlKCjIwMxMfH44033tB79eiIiAj89ddfuHr1Knx8fIxWb2ZmJmbOnMnwQ2RG7AEiojonJiYGmzdvRkFBAXx9fTF69GjExcXB1rby/3xz5szB/Pnz0bNnT+zYsUPnaexEVLcxABEREZHV4SRoIiIisjoMQERERGR1GICIiIjI6jAAERERkdVhACIiIiKrwwBEREREVocBiIiIiKwOAxARERFZHQYgIiIisjr/DxVbRfpRwih8AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "viz = Visualization(atoms, save_figure=True)\n", "viz.plot_absorption_gaussian()" ] } ], "metadata": { "kernelspec": { "display_name": "votca_test", "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.2" } }, "nbformat": 4, "nbformat_minor": 2 }