diff --git a/docs/notebooks/BMI_groundwater_coupling.ipynb b/docs/notebooks/BMI_groundwater_coupling.ipynb new file mode 100644 index 00000000..0fbd7967 --- /dev/null +++ b/docs/notebooks/BMI_groundwater_coupling.ipynb @@ -0,0 +1,268 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# STEMMUS_SCOPE BMI groundwater coupling\n", + "We have to choose how we want to run the BMI. We can do this either using a local executable file, or with a Docker container.\n", + "\n", + "How to run the model is define in the configuration file.\n", + "If it has an entry \"ExeFilePath\" it will use the local executable. If this is missing, it wil try to use Docker (if docker-py is available). " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "cfg_file = \"/home/bart/tmp/stemmus_scope/config_docker.txt\"\n", + "#cfg_file = \"/home/bart/tmp/stemmus_scope/config_exe.txt\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we are using the local executable file we first have to add the matlab runtime compiler locations to PATH:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "if \"exe.txt\" in cfg_file:\n", + " from PyStemmusScope.config_io import read_config\n", + " import os\n", + " os.environ['LD_LIBRARY_PATH'] = (\n", + " \"/home/bart/matlab_runtime/R2023a/runtime/glnxa64:\"\n", + " \"/home/bart/matlab_runtime/R2023a/bin/glnxa64:\"\n", + " \"/home/bart/matlab_runtime/R2023a/sys/os/glnxa64:\"\n", + " \"/home/bart/matlab_runtime/R2023a/extern/bin/glnxa64:\"\n", + " \"/home/bart/matlab_runtime/R2023a/sys/opengl/lib/glnxa64\"\n", + " )\n", + " os.environ[\"STEMMUS_SCOPE\"] = read_config(cfg_file)[\"ExeFilePath\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can initialize the model with a prepared configuration file:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from PyStemmusScope.bmi.implementation import StemmusScopeBmi\n", + "from cftime import num2pydate\n", + "from rich import print\n", + "import numpy as np\n", + "import xarray as xr\n", + "\n", + "model = StemmusScopeBmi()\n", + "\n", + "model.initialize(cfg_file)\n", + "\n", + "model.update() # STEMMUS_SCOPE needs to be updated by one timestep before the BMI is accessible" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After initialization we can enable the groundwater coupling. You enable this using the following command:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_value(\"groundwater_coupling_enabled\", np.array([True]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To make use of the groundwater coupling routines, a few variables will need to be set:\n", + "- the elevation (above reference, e.g. Mean Sea Level) of the top of the aquifer (in cm)\n", + "- the groundwater head (above reference) in the lowest STEMMUS_SCOPE soil layer (in cm)\n", + "\n", + "The groundwater height (where the hydrostatic pressure is equal to 0.0, will be at a depth of `groundwater_elevation_top_aquifer` - `groundwater_head_bottom_layer` in the STEMMUS_SCOPE model).\n", + "\n", + "Lastly, a groundwater temperature can be defined. However, this is optional." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_value(\"groundwater_elevation_top_aquifer\", np.array([2000.]))\n", + "model.set_value(\"groundwater_head_bottom_layer\", np.array([2000-250.])) # 250 cm under ground surface\n", + "\n", + "model.set_value(\"groundwater_temperature\", np.array([50.])) # optional. 50 deg C here to get a high contrast" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run the model. We define arrays to store the results that we want to inspect, and then step through all model timesteps:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "n_timesteps = int((model.get_end_time() - model.get_current_time())/model.get_time_step())\n", + "n_soil_layers = model.get_grid_size(model.get_var_grid(\"soil_moisture\"))\n", + "\n", + "soil_moisture = np.zeros((n_timesteps, n_soil_layers))\n", + "soil_temperature = np.zeros((n_timesteps, n_soil_layers))\n", + "time = []\n", + "i=0\n", + "\n", + "while model.get_current_time() < model.get_end_time():\n", + " model.get_value(\"soil_moisture\", soil_moisture[i])\n", + " model.get_value(\"soil_temperature\", soil_temperature[i])\n", + "\n", + " # Store the current time as a datetime\n", + " time.append(num2pydate(model.get_current_time(), model.get_time_units()))\n", + "\n", + " i+=1\n", + " model.update()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For easier anaylsis we can put the data into xarray DataArray objects:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "gs = model.get_grid_size(1)\n", + "depths = np.ones(gs)\n", + "model.get_grid_z(1, depths)\n", + "\n", + "da_sm = xr.DataArray(\n", + " data=soil_moisture,\n", + " dims=(\"time\", \"depth\"),\n", + " coords={\"time\": np.array(time), \"depth\": depths},\n", + ")\n", + "\n", + "da_t = xr.DataArray(\n", + " data=soil_temperature,\n", + " dims=(\"time\", \"depth\"),\n", + " coords={\"time\": np.array(time), \"depth\": depths},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can show the results. Note that up to ~2.5 m depth the soil is completely saturated, and that the temperature here equals the groundwater temperature we defined before." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABHoAAAHjCAYAAABcnnhZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACbZklEQVR4nOzdd3xT9f7H8XdaaAtCGQIto1CWIBtBK4qKghZUhnK96FUZIl69IkpRBGWLgiiIXlHciorgQL0uECvgqqgMwQEKgiDSsoQyW0i+vz/4EY1tc9KctCdJX8/H4zygZ3zPJ2mbfPrJd7iMMUYAAAAAAACIeDFOBwAAAAAAAIDQoNADAAAAAAAQJSj0AAAAAAAARAkKPQAAAAAAAFGCQg8AAAAAAECUoNADAAAAAAAQJSj0AAAAAAAARAkKPQAAAAAAAFGCQg8AAAAAAECUoNADAAAAAAAQJSKu0DNr1iylpqYqISFBaWlp+uqrr5wOCQAAAAAARKEJEybI5XL5bM2bN/ceP3LkiG6++WadfPLJqlSpkvr27aucnBwHI46wQs/8+fOVkZGh8ePHa+XKlWrbtq3S09O1Y8cOp0MDAAAAAABRqGXLltq+fbt3++yzz7zHhg8frnfeeUevvfaali1bpt9//12XX365g9FKLmOMcTSCYkhLS9Ppp5+uRx99VJLk8XiUkpKiW265RaNGjXI4OgAAAAAAEE0mTJigt956S6tXry5wbN++fapZs6bmzp2rf/zjH5KkdevW6dRTT1VWVpbOPPPMUo72uHKO3DUI+fn5WrFihUaPHu3dFxMTo27duikrKyugNjwej37//XdVrlxZLperpEIFAEQoY4z279+vOnXqKCam5Dq9HjlyRPn5+SFpKy4uTgkJCSFpCygM+RMAwJ9IzJ+MMQXe0+Lj4xUfH1/o+T///LPq1KmjhIQEderUSVOmTFH9+vW1YsUKHT16VN26dfOe27x5c9WvX59CTyB27dolt9utpKQkn/1JSUlat25dodfk5eUpLy/P+/W2bdvUokWLEo0TABD5tm7dqnr16pVI20eOHFHDBpWUvcMdkvaSk5O1adMmij0IGfInAEAwIil/qlSpkg4cOOCzb/z48ZowYUKBc9PS0vT888+rWbNm2r59uyZOnKhzzjlH3333nbKzsxUXF6eqVav6XJOUlKTs7OyQxBqMiCn0BGPKlCmaOHFigf0pj4xUTIXCK3Uej0UF0uPnkyx/xyQZt//jLo//W8tYfIpmeb299i3j83et1QlWj80i9oatf/N7/EB+4d/vE3IP+/8D6Wh+rN/j7qP+jxs/P1fmmMXzbvFzI6vjNn+urL7vlt9bi98Lq++tv/vb/p2xurfdga2Wv3Ml2L7Ntu0+dncF/w24LH4uXA0O+j8eG/wL0ik1dxV57OjBfH3U9wVVrlw56Pat5OfnK3uHW7+uSFViZXufeuXu96hBh83Kz8+n0IOQKSp/OrfNcJWLLfh+6sq3SLo9NhIIyfJ9zGU1C4HVcY/N6y3ZuL6c/1TdlLP3GmLi/LfvOub/yXdXKO/3+LFK/o8bP+Efq+A/tzp2kv/H7q9tSXJZ/a1o8X23ep80MRY5iFWK4id+d3n/F7v9p72WYo76P26Vf8XmW+UAVvf3f33MsaKPu9z+r43f6//Bxe7331vElX/M//Gj/o/LbfV6aXE8z+KbE+vn9ybP/2MzR4PvKXPMHNWyA69GXP60detWJSYmevcX1ZunR48e3v+3adNGaWlpatCggV599VVVqFDBViwlJWIKPTVq1FBsbGyB2atzcnKUnJxc6DWjR49WRkaG9+vc3FylpKQopkK8YioWkRAfC77QY6z+cLE87v/Wdv9gtrre8g87G3mKddv2Htu2I7X9Hk+Is3hRTLBIdGL8H48pZ1Xk81PosSoAWhZybBZ67P5cWrD6ubdT6LFO/v0fD/dCkK32Hfy7RJJcFu8uVgm4J84igJjgAzwaf7jIY8eOHQ+8NIanVKrsUqXK9u7jsS61AsVWVP7kqlRJrnIF86eYPIs/fCz+8LIsBJV0ocd2ocj/YX+sYrcs5FgMkTAWr2XGIv+RxffOVd7//V0WbwYmtuj4rIZ/uFxWhR6rQou9Qo4VyxTDRiEoxn8NTDE2i0xWxy0LPVbPrVWhJ9ai0OMnrbd6vXFVivPftst/lSzmiP+/KVxHLQo1FsVTl9XrYTmLv2nK+fnhiLe4Nt+qwlf0D4bLky8diLz8KTEx0afQE6iqVavqlFNO0YYNG3ThhRcqPz9fe/fu9enV469OURoiptATFxenDh06KDMzU3369JF0fMx4Zmamhg4dWug1RY2xM8YlU+Srr9Wrsp/jdv5gtWo7gPZt/9FYkj0ArB6bTfkH/X9i5LEolhT98xDg9XaLcAiOzafd8nciktu3+pWzGZsVq9c7q0KP+7BF8bWcRaLkpxC0+9BJQd83lNzGY/U3VEBtAKFWVP7kToiVq5A/Iqze4v19+i7JskeNZTHEqueF1S+ag4Ueq7atCjXyUyiR5PcPM0kysVaFJIv4rO5vg91eH5bfFrvvkzabt2rf71u8VfHTqreSzcdu+Ttps5BkVQTzlCv6/jEWjXvi/P/Mu49ZVNEsuCyKs5aFIKvXK6vir58ePS6LEQpWPQj9svpbKITCIX86cOCANm7cqGuvvVYdOnRQ+fLllZmZqb59+0qS1q9fry1btqhTp072ArUhYgo9kpSRkaEBAwaoY8eOOuOMMzRz5kwdPHhQgwYNKlY75liMzNHCf0mMRY8ef70rrAs5/g/b7flgpaR7N9i51nbPiP0WXYfzLIZW2egdEAh/31vLx+50Ty4LJT68qSRZ9rsO794S/sKzW2Qq8R5BFgHG7vf/9uQp7/8F1/hJAveYSkW3W4qFHiDSHD0pVqZ8wffTmASrP2ysPt239+m/5Sf4NoduWedPNuIv6cVvLQo9Vn/0WhaaLP7mtPqD3bJXix+WhSCLETRWHzhYHbfN6ufG3xu15WO3KMSU9GOzXegJ/gYei1/YYxY/tNY9jv2fEGNRKHIdterRY/VHk9VIAH/D2vz/vWQ1VNMfj9tegSzc3X777erZs6caNGig33//XePHj1dsbKyuuuoqValSRYMHD1ZGRoaqV6+uxMRE3XLLLerUqZNjEzFLEVbo6devn3bu3Klx48YpOztb7dq108KFCwtM0Gyl3K7yikko/Afdzt919v/gtflHZYkXgkqwbZti8q0q/1afaFncwOYblv+b27g2gOttf19tt1+Cc/Q4OQdOIPcvaSV4/xJ/bFaJikWCHmPRb9346fZtDvu59kjp9ZDxyMhj85to93qgOI5VjJEp5I8cqz8qLef7sCrUlHQhyPKDOpv393e9w53yrHrkWP7BbdVjyOp6P4WeEi9GRDK7owislPDnXJZ/8tj43lsWJy3fN60KQRZFNKu5N616/Fh1VbEcVuev0GNVxQq+6O0+FpoJkgPhRP7022+/6aqrrtLu3btVs2ZNde7cWV9++aVq1qwpSXrooYcUExOjvn37Ki8vT+np6XrsscdsxWhXRBV6JGno0KFFDtUCACBSeOSx/Tee/RYAAAAihxP507x58/weT0hI0KxZszRr1iw7YYVUxBV6QqHcAZdijxZeDrXq2eG3Ah3eozyimtVYZJdFdd2667HF8ZLs8WNXmA/NstUrx+nHZqWke+SXZPslHbtFjx27c/n5Gw5g/NzbdYQXcqAox+JdMnEFf0cs1iuQy/9oAcVYLkpgNQePxf3t9giyObTL/6ICNiZqCYD1ylAWDVgNvbI7RMdvXm1z1aqSfjl3+v42WP5cWDYQqkiKuL+NHj/WcwRajAIob2/eLMvV3iz+1rRcvMdyygY/PXrs9l7026MnuoduRaKyWeg5KMUWkehbFnr8/PJad2+1d9z2G4bTL8oOsvyj0e5zX4KPPZyf10A4OrypjBeCwvbeCsFEkVaX+0lm/M2/ZyyGmISS2xi5bc7PYfd6oDg85Qsv2lgN/7H6fTeWQ6vsrQ5pfb1VIcnuEGQ/f3iV9OqPdl8jrP6oLcH8qCRXrTp+vUUAtnNDe29kYf3hst15AG2OrvL73Ngc8mdVyHFZVnYtrrf4ubWco8fyNcHfwkE2X2v9jUK1WAUvlMifAlMmCz0AADiNOXoAAACKh/wpMGWy0BNzTIopquho9amTvx49lje2aNvpXid2h0o4+emCw72d7Dz3Vtfaflod7roczb1WHJ+M2Y5Ijl2y93Ptb4Lv0ptLEIg4Jrbwns+WQxWs8h+bPYJsD82yeCO27jHk/7i/11vLzgFWr0l2Pt0PASd7m0d0j5xA2MgdI56N3NL2RM82x615LIaqlngPQhtTHtiZTsHteDcz/B2Fnr+xTFb8vehavXBYjRm1W+ixuLykh475PRzuRSS7w0RKsGuy9c1tXu90+whepBdrHOL3dbwUCz0eGbn5RAoRxMQUMcTdqtBRwh9EGduFGptDJewUkqzatprPo4SHbtn9QMPZDwFtDjuzbN/e5SX63ET4dBAleX+7o84s/96zHHZmb2iY5fxK/grLFkOz7LxceErxl538KTAsXAgAAAAAABAlymSPnqMVJU98kBeXZDdKp4duWSnJTwfC+VMRqWQ/uQj3SbKd/tQGjrD7cxOpnwKX5sgtxpgj0hhX4b+bVr1abfc4tj3UwuJyq0/YLXssWazS4/cTdqu2/R+2+gTe7mTPUf0KU5Zzz7LM5uuV3RkLrHsM2QzQ7wuO1bUWx/1dane982IgfwpMmSz02GJjnHWJzjAfQPOWbBaK7Nzf9h+VEfxmW9KJgmXzDicSYT3OPJxjk0o0Pqcfut37B/tzZflHVwixagTw/0r6Dy+rYfmWyzFb3cDGA7BRJJICiN3/YVtzcgTCybnsHM8vIjh3dDwJcFJJvx7ZLbZYHg9+qKid5dVL82eG/CkwDN0CAKCMmTVrllJTU5WQkKC0tDR99dVXAV03b948uVwu9enTx2e/MUbjxo1T7dq1VaFCBXXr1k0///xzCUQOAAAAK/ToKU0l/amI7Y/ALQ6XZO+BMvzJhO3Kf0lzusdR2DZuX0SvVOewkurhWJo9ejyynsM2kDaKa/78+crIyNDs2bOVlpammTNnKj09XevXr1etWrWKvG7z5s26/fbbdc455xQ4Nm3aND3yyCN64YUX1LBhQ40dO1bp6en64YcflJCQEESUCEcuUzI9NOz+Pjve48fG/Y1FdC6L1i1jt5vb2Vylx/EcJoyRAxTNznNT4r3I7Pb4sfmCZe/1xuri4G9uOeQshJzKnyINhZ5oYveFzSrRKskXzpKezyOce+c5+byHgzBPNuwo8eGWjjXu/P1LqvnSXHXLHYJVI4K5fsaMGRoyZIgGDRokSZo9e7bee+89Pfvssxo1alTh93G7dfXVV2vixIn69NNPtXfvXu8xY4xmzpypMWPGqHfv3pKkOXPmKCkpSW+99ZauvPLK4j8whCej8H4/LSklOZeLnWEYAV1vc0Uxq+YjOf+KZk7nABZKsshlmXuFeSHIZvP+27f53ITLr7NT+VOkYegWAAARLjc312fLy8sr9Lz8/HytWLFC3bp18+6LiYlRt27dlJWVVWT7kyZNUq1atTR48OACxzZt2qTs7GyfNqtUqaK0tDS/bQIAAKBk0KMHf3KysOnwCj+Ocjh2x7tVR/L3zkKJD0m0I5xjk4M/l6U6GfPxzW4bkpSSkuKzf/z48ZowYUKB83ft2iW3262kpCSf/UlJSVq3bl2h9/jss8/0zDPPaPXq1YUez87O9rbx9zZPHEOUC/MJe50eGuZ/MuaSvbftoWEl/OSEdf7mcM8PlIxw7/FToovzlGTbpToZc+jyp2hGoQcAAAeEcoz51q1blZiY6N0fHx9vs+Xj9u/fr2uvvVZPPfWUatSoEZI2AQAAgsUcPYGh0IPw4HRVNZw/VYnkuZfKunBeVjbMv+9O9YYqzcmYQykxMdGn0FOUGjVqKDY2Vjk5OT77c3JylJycXOD8jRs3avPmzerZs6d3n8dz/EkqV66c1q9f770uJydHtWvX9mmzXbt2wTwchLNCXjvK+vtISX7CXvJLPdu7gVWPICu25i+yqcQXOSnDHO8tXob5e+5Lct0evufhhzl6AABwgEcuuW1unmKmbXFxcerQoYMyMzP/jMPjUWZmpjp16lTg/ObNm2vt2rVavXq1d+vVq5fOP/98rV69WikpKWrYsKGSk5N92szNzdXy5csLbRMAACBYTuRPkYgePYAU9r0bbInmx4YiRfzbVwn+3Dr5CfJfeczxzW4bxZWRkaEBAwaoY8eOOuOMMzRz5kwdPHjQuwpX//79VbduXU2ZMkUJCQlq1aqVz/VVq1aVJJ/9t912myZPnqymTZt6l1evU6eO+vTpE+xDQxgqqeXVHe+5YdmAxXEb817Ymt8ngAZK/qHbe7dx+VsVrCS7Hyj8eyA42VMu3J8bO8K+B2IJ9si2PT+Rv+tL8WfGqfwp0lDoAYBoFO1vYDYSCn+JTNgngCHQr18/7dy5U+PGjVN2drbatWunhQsXeidT3rJli2Jiitfhd+TIkTp48KBuuOEG7d27V507d9bChQuVkJBQEg8BTgnT5dVL/Pc2nBersD9bs//DNieytmKnUOS3SCSVeKGopEVzscVKWXgvBkoahR4AABxwovuw3TaCMXToUA0dOrTQY0uXLvV77fPPP19gn8vl0qRJkzRp0qSg4gEAAAiEk/lTJKHQAwCIPCX1aV8pfopIooJIU2JDt5wW7kPHopmNobRWE0lb9vixEuE9gpzEz3xkcnzp+QCRPwWGyZgBAAAAAACiBD16AABwgMe45LE5CYPd6wEAACIJ+VNgKPQAAOAAuh4j4oTpZMx2OTocIZonknZYiQ/tslKCqyeVtHAZohOWovi5iZTvO/lTYBi6BQAAAAAAECXo0QMAgAPcipHb5uct7hDFAgAAEAnInwJDoQcAAAeYEIwxN2VgjDkAAMAJ5E+BKZuFHpfsL5kIFEeEjHkFAKAoLs/xDcUUxjlAic/J4eBjL/E5eBx9bM7dOyQiPX4bIv57h4hRNgs9AAA4jMkEAQAAiof8KTAUegAAcIDbxMhtbI4x55NBAABQhpA/BYZVtwAAAAAAAKIEPXqA0hDNvQPLQEUcKAkeueSx+XmLh19AlCajqHzND+s5M8I5NpXCPDj+OPzc8HMTvLB+7kpatD72Unxc5E+BodADAIADGGMOAABQPORPgWHoFgAAAAAAQJSgRw8Ae6K/II6ypBR/nkMzmWD0dz1G+HCZEhpy4fgQnDD+PQrj0KQIH4IT5rHz3Dojop/3kubnuXF5Si8M8qfAUOgBAMABx8eY26ss2b0eAAAgkpA/BYahWwAAAAAAAFGCHj0AADjAoxi5WTUCAAAgYORPgaHQAwCAAxhjjohTxPLqtue4KeEfY8fn3HD6/jY4/tzZEcmxW4jo70sgov3x2RD13/sAkD8FhqFbAAAAAAAAUYIePQAAOMCjGHnoegwAABAw8qfAUOgBAMABbuOS29hb9cHu9QAAAJGE/CkwDN0CAAAAAACIEvToAQDAAe4QrBrhLgNdjwEAAE4gfwpMmSz0eMpJrjL5yAEA/njcpXgvEyOPzVUjPGVg1QiEj3JHjGI9xf+Zi/pVYvg9LBFR/3NTlvG9jToud+l9U8mfAsPQLQAAAAAAgChBvxYAABxA12MAAIDiIX8KDIUeAAAc4JH9VR88oQkFAAAgIpA/BYahWwAAAAAAABamTp0ql8ul2267zbuvS5cucrlcPtuNN97oXJCiRw8AAI7wKEYem5+32L0eAAAgkjiZP3399dd64okn1KZNmwLHhgwZokmTJnm/rlixYtDxhQKFHgAAHOA2MXLbXDXC7vUAAACRxKn86cCBA7r66qv11FNPafLkyQWOV6xYUcnJybbiCqUyWegxscc3AAD+ivcGoGjlDntU7lhZmNkAgbI5TQaAKBFzNPonN7755pt1ySWXqFu3boUWel5++WW99NJLSk5OVs+ePTV27FhHe/WUyUIPAABO88glj+xOJshfWQAAoOwIZf6Um5vrsz8+Pl7x8fEFzp83b55Wrlypr7/+utD2/vWvf6lBgwaqU6eO1qxZozvvvFPr16/XggULbMVpB4UeAAAcwNAtAACA4gll/pSSkuKzf/z48ZowYYLPvq1bt+rWW2/V4sWLlZCQUGh7N9xwg/f/rVu3Vu3atdW1a1dt3LhRjRs3thVrsCj0AAAAAACAMmXr1q1KTEz0fl1Yb54VK1Zox44dOu2007z73G63PvnkEz366KPKy8tTbKzv2P+0tDRJ0oYNGxwr9PBRIAAADnArJiRbMGbNmqXU1FQlJCQoLS1NX331VZHnLliwQB07dlTVqlV10kknqV27dnrxxRd9zhk4cGCBZUW7d+8eVGx5eXlBXQcAAKJfKPOnxMREn62wQk/Xrl21du1arV692rt17NhRV199tVavXl2gyCNJq1evliTVrl27RJ8Lf+jRAwCAAzzGJY/NmUyDuX7+/PnKyMjQ7NmzlZaWppkzZyo9PV3r169XrVq1CpxfvXp13X333WrevLni4uL07rvvatCgQapVq5bS09O953Xv3l3PPfec9+vCkqXCfPDBB5o3b54+/fRTbd26VR6PRyeddJLat2+viy66SIMGDVKdOnWK/TgBAED0Ke38qXLlymrVqpXPvpNOOkknn3yyWrVqpY0bN2ru3Lm6+OKLdfLJJ2vNmjUaPny4zj333EKXYS8t9OgBAKAMmTFjhoYMGaJBgwapRYsWmj17tipWrKhnn3220PO7dOmiyy67TKeeeqoaN26sW2+9VW3atNFnn33mc158fLySk5O9W7Vq1fzG8eabb+qUU07Rddddp3LlyunOO+/UggULtGjRIj399NM677zz9NFHH6lRo0a68cYbtXPnzpA9BwAAAKEQFxenjz76SBdddJGaN2+uESNGqG/fvnrnnXccjYsePQAAOMBjY+jVX9uQAl81Ij8/XytWrNDo0aO9+2JiYtStWzdlZWVZ3s8Yo48//ljr16/X/fff73Ns6dKlqlWrlqpVq6YLLrhAkydP1sknn1xkW9OmTdNDDz2kHj16KCam4PPwz3/+U5K0bds2/fe//9VLL72k4cOHW8YIAACiVyjzp2AtXbrU+/+UlBQtW7bMVnsloUwWekzs8Q0AgL8qzfcGj4mRx+aqEZ5irBohSbt27ZLb7VZSUpLP/qSkJK1bt67I++zbt09169b1Tjj42GOP6cILL/Qe7969uy6//HI1bNhQGzdu1F133aUePXooKyur0LHrkgIqLElS3bp1NXXq1IDORcmKPexR7DGP02EUZK8Hv7NiIjl4azZHV5RtPHdlUqT+zsQcM6V2r1DmT9GsTBZ6AACIJoGsGmFH5cqVtXr1ah04cECZmZnKyMhQo0aN1KVLF0nSlVde6T23devWatOmjRo3bqylS5eqa9euIY0FAAAA/lHoAQDAAW655Lb5ke2J60+sFmGlRo0aio2NVU5Ojs/+nJwcJScnF3ldTEyMmjRpIklq166dfvzxR02ZMsVb6Pm7Ro0aqUaNGtqwYYNloWfx4sX67LPPdN555+mCCy7QJ598oilTpigvL0/XXnutBg0aZPm4AABA2RDK/CmaRX+fJQAAwtCJrsd2t+KIi4tThw4dlJmZ+WccHo8yMzPVqVOnwGP3ePwug/7bb79p9+7dlsuKvvTSS7r44ov17rvvqnfv3nr++efVu3dv1atXTw0bNtSNN96o119/PeC4AABAdHMif4pE9OgBAKAMycjI0IABA9SxY0edccYZmjlzpg4ePOjtOdO/f3/VrVtXU6ZMkSRNmTJFHTt2VOPGjZWXl6f3339fL774oh5//HFJ0oEDBzRx4kT17dtXycnJ2rhxo0aOHKkmTZr4LL9emOnTp2v69OkaNmyYMjMz1bNnT917773eSZdbtGihmTNn6h//+EcJPiMAAADRhUIPAAAOcMt+12F3ENf069dPO3fu1Lhx45Sdna127dpp4cKF3gmat2zZ4rMK1sGDB/Wf//xHv/32mypUqKDmzZvrpZdeUr9+/SRJsbGxWrNmjV544QXt3btXderU0UUXXaR77rnHcq6gn3/+WT179pQkde3aVceOHfMZ6nXJJZd4C04AAABO5U+RhkIPAAAOcHLViKFDh2ro0KGFHvvrkqGSNHnyZE2ePLnItipUqKBFixYFFUf58uWVn5/v/To+Pl6VKlXy+frw4cNBtQ0AAKIPq24FJmIKPffee6/ee+89rV69WnFxcdq7d2/QbZkYllcHABRUBt73w0qTJk20bt06NWvWTJK0bds2Va5c2Xt848aNqlevnlPh4W/KHXGr3LEgPge1+ODVuEp4UswS/r22F7/NJYnDfD7RSF0qWpJU0j+XYSyiv2/hzuK5jdSnPuZo6S2vjsBETKEnPz9fV1xxhTp16qRnnnnG6XAAALDFbWLktllZsnu90+666y5Vq1bN+/XfVw775ptv9M9//rO0wwIAAGGK/CkwEVPomThxoiTp+eefdzYQAABCwMglj83P7kzEfvZ33GWXXeb3+KhRo0opEgAAEAnInwIT1aWsvLw85ebm+mwAACB8TZ061dbwbNhH/gQAQGSL6kLPlClTVKVKFe+WkpLidEgAAEj6s+ux3S3a3HfffdqzZ4/TYZRp5E8AgHBF/hQYRx/hqFGj5HK5/G7r1q0Luv3Ro0dr37593m3r1q0hjB4AgOB5jCskW7QxhgkdnUb+BAAIV+RPgXF0jp4RI0Zo4MCBfs9p1KhR0O3Hx8crPj4+6OsBAADKGvInAAAim6OFnpo1a6pmzZpOhgAAgCPcipHbZsdau9eHox9++EF16tRxOgwAABCGyJ8CEzGrbm3ZskV79uzRli1b5Ha7tXr1aklSkyZNVKlSJWeDAwCgmELRdTgaux5Xq1ZNBw8e9Nn392XX4RBjjm/Fvs7/YVdJ/xh7bF5vEZ/L6gGWIFPiT549ltGF9d9a9r6v4f698cd25JH70B0XqW/rLk/pvQ6SPwUmYgo948aN0wsvvOD9un379pKkJUuWqEuXLg5FBQAA7Nq0aZOGDh2qpUuX6siRI979xhi5XC653W4HowMAAIgsEVPoef755/X88887HQYAACHhUYw8Nj/Otnt9uLjmmmtkjNGzzz6rpKQkuSL4k3AAAFByyJ8CEzGFHgAAoonbuOS22XXY7vXh4ttvv9WKFSvUrFkzp0MBAABhjPwpMNFfygIAAGHt9NNPZwlvAACAEKFHDwAADmAywT89/fTTuvHGG7Vt2za1atVK5cuX9znepk0bhyIDAADhhPwpMBR6AABwgDEx8hh7HWuNzevDxc6dO7Vx40YNGjTIu8/lcjEZMwAA8EH+FBgKPQAAwFHXXXed2rdvr1deeYXJmAEAAGyi0AMAgAPccsktm5MJ2rw+XPz666/63//+pyZNmjgdCpxgjNMR+GcVnoOFSVe4P3dWT00Ud9ZzWfzgGAraRYv+zhZFsvqpCNefG5en9O5F/hQYCj0AADjAY+yPEfeE+d94gbrgggv07bffUugBAAB+kT8FhkIPAABwVM+ePTV8+HCtXbtWrVu3LjAZc69evRyKDAAAIPJQ6AEAwAGeEEwmaPf6cHHjjTdKkiZNmlTgGJMxAwCAE8ifAkOhBwAAB3jkksfmGHG714cLj6cUB/cDAICIRf4UmOgvZQEAAAAAAJQR9OgBAMABbuOS2+ZkgnavBwAAiCTkT4Gh0AMAgAMYYw5EiXBf4rwkWS31XIafGiuukvy5ifS/YUtwWrZwXZ48UC6rXyqH0oIS/Xn+G/KnwET/IwQAAAAAACgj6NEDAIADPHLJY7PrcFmYTBAAAOAE8qfAUOgBAMABJgSrRpgoSVTcbrdiY2O9Xy9fvlx5eXnq1KmTypcv72BkAAAgnJA/BYahWwAAwBHbt29X586dFR8fr/POO09//PGHLr30UnXq1EldunRRq1attH37dqfDBAAAiCgUegAAcIDHuEKyRbI777xTxhi9+eabql27ti699FLl5uZq69at2rx5s2rWrKl7773X6TABAECYIH8KDEO3AABwAKtGSB999JEWLFigM888U2effbZq1KihxYsXq27dupKkSZMmaciQIQ5HCQAAwgX5U2Ci/xECAICw9Mcff3iLOtWrV1fFihXVoEED7/EmTZowdAsAAKCY6NEDAIADQtF1ONK7HteqVUvbt29XSkqKJGno0KGqXr269/gff/yhk046yanwAFgxxukISo4rgl9fnf62hPFT57L4mTXh/n13sJuGv+emNJ838qfA0KMHAAAHeP5/1Qi7WyRr166dsrKyvF9PnTrVp9Dz2WefqU2bNk6EBgAAwhD5U2Do0QMAABzx9ttv+z1++umn67zzziulaAAAAKIDPXoAAHCAk6tGzJo1S6mpqUpISFBaWpq++uqrIs9dsGCBOnbsqKpVq+qkk05Su3bt9OKLL/qcY4zRuHHjVLt2bVWoUEHdunXTzz//HFRsf3XGGWeoVatWttsBAADRgVW3AkOPHgAAHODUGPP58+crIyNDs2fPVlpammbOnKn09HStX79etWrVKnB+9erVdffdd6t58+aKi4vTu+++q0GDBqlWrVpKT0+XJE2bNk2PPPKIXnjhBTVs2FBjx45Venq6fvjhByUkJAQU1++//67PPvtMO3bskMfj8Tk2bNiwYj9OAAAQfZijJzAUegAAKENmzJihIUOGaNCgQZKk2bNn67333tOzzz6rUaNGFTi/S5cuPl/feuuteuGFF/TZZ58pPT1dxhjNnDlTY8aMUe/evSVJc+bMUVJSkt566y1deeWVljE9//zz+ve//624uDidfPLJcv1lUkeXy0WhBwAAoBgYugUAgAOc6Hqcn5+vFStWqFu3bt59MTEx6tatm8+kyEUxxigzM1Pr16/XueeeK0natGmTsrOzfdqsUqWK0tLSAmpTksaOHatx48Zp37592rx5szZt2uTdfvnll2I9RgAAEL0YuhUYevQAAOCAUHY9zs3N9dkfHx+v+Pj4Aufv2rVLbrdbSUlJPvuTkpK0bt26Iu+zb98+1a1bV3l5eYqNjdVjjz2mCy+8UJKUnZ3tbePvbZ44ZuXQoUO68sorFRPD508ASkm4L6NtR5g/NEeXMC/ht5kSf2wl2LydlMSU4ts3Q7cCQ0YFAECES0lJUZUqVbzblClTQtp+5cqVtXr1an399de69957lZGRoaVLl4as/cGDB+u1114LWXsAAABlGT16AABwgJHksfnRnPn/f7du3arExETv/sJ680hSjRo1FBsbq5ycHJ/9OTk5Sk5OLvI+MTExatKkiSSpXbt2+vHHHzVlyhR16dLFe11OTo5q167t02a7du0CehxTpkzRpZdeqoULF6p169YqX768z/EZM2YE1A4AAIhuocyfgjF16lSNHj1at956q2bOnClJOnLkiEaMGKF58+YpLy9P6enpeuyxxwr0di5N9OgBAMABoRxjnpiY6LMVVeiJi4tThw4dlJmZ+WccHo8yMzPVqVOnwGP3eJSXlydJatiwoZKTk33azM3N1fLlywNuc8qUKVq0aJFycnK0du1arVq1yrutXr064LgAAEB0c3KOnq+//lpPPPGE2rRp47N/+PDheuedd/Taa69p2bJl+v3333X55ZeH4uEGjR49AACUIRkZGRowYIA6duyoM844QzNnztTBgwe9q3D1799fdevW9Q7/mjJlijp27KjGjRsrLy9P77//vl588UU9/vjjko6vinXbbbdp8uTJatq0qXd59Tp16qhPnz4BxTR9+nQ9++yzGjhwYEk8ZAAAAFsOHDigq6++Wk899ZQmT57s3b9v3z4988wzmjt3ri644AJJ0nPPPadTTz1VX375pc4880xH4qXQAwCAA5yaTLBfv37auXOnxo0bp+zsbLVr104LFy70di/esmWLz6TIBw8e1H/+8x/99ttvqlChgpo3b66XXnpJ/fr1854zcuRIHTx4UDfccIP27t2rzp07a+HChUpISAgopvj4eJ199tnFfiwAAKBscSp/uvnmm3XJJZeoW7duPoWeFStW6OjRoz6rjzZv3lz169dXVlYWhR4AAMoSJ1eNGDp0qIYOHVrosb9Psjx58mSfhKYwLpdLkyZN0qRJk4KK59Zbb9V///tfPfLII0FdDwAAygYnVi2dN2+eVq5cqa+//rrAsezsbMXFxalq1ao++4uz+mhJoNADAAAc9dVXX+njjz/Wu+++q5YtWxaYjHnBggUORQYAAKJVSkqKz9fjx4/XhAkTfPZt3bpVt956qxYvXhxwT+VwQKEHAAAHONmjJ9xUrVrV8UkLAZQAVwS/RjkcuinJ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euutgJddtzHlEgAACNaJVSPsbtFg9+7d6tq1q0455RRdfPHF2r59uyRp8ODBGjFihMPRAQCAcBGN+dPixYt1+umna/Hixdq3b5/27dunxYsXKy0tTe+++64++eQT7d69W7fffnvAbVLoAQDAASZEWzQYPny4ypcvry1btqhixYre/f369dPChQsdjAwAAISTaMyfbr31Vs2YMUNdu3ZV5cqVVblyZXXt2lUPPPCA7rjjDp199tmaOXOmFi9eHHCbEVHo2bx5swYPHqyGDRuqQoUKaty4scaPH6/8/HynQwMAADZ9+OGHuv/++1WvXj2f/U2bNtWvv/7qUFQAAAAlb+PGjUpMTCywPzExUb/88ouk4znRrl27Am4zIuboWbdunTwej5544gk1adJE3333nYYMGaKDBw/qwQcfdDo8/D9bPeCsrrU4bnVvY1XStLzeou5r0b7f+Kyutbp3Cccui+stn1uL61124nNZtG113DI2v4ct7x9j87Fbxu/33h6Ltv0eVozlYyvZ9q0ee4zFZzH+7u/v3scO5mmr35ZDJxRdh8Ot63GwDh486NOT54Q9e/YoPj7egYhQqixeMEyM1QuK/8NW13tiLdq3OO6Jtbi/n+ut7m0sMnXL661is3jubLdv4/52Y7ebG1rnNyXbvt/jdmO3YD9vtjhuN+/3lz/Zbtve9Va5oe23bTt/E1nEZvk3gZ+2PYfdFheHTjTmTx06dNAdd9yhOXPmqGbNmpKknTt3auTIkTr99NMlST///LNSUlICbjMiCj3du3dX9+7dvV83atRI69ev1+OPP06hBwAQmULRdzjc+h4H6ZxzztGcOXN0zz33SDo++aDH49G0adN0/vnnOxwdAAAIG1GYPz3zzDPq3bu36tWr5y3mbN26VY0aNdLbb78tSTpw4IDGjBkTcJsRUegpzL59+1S9enWnwwAAADZNmzZNXbt21TfffKP8/HyNHDlS33//vfbs2aPPP//c6fAAAABKTLNmzfTDDz/oww8/1E8//eTdd+GFFyom5nhXqz59+hSrzYgs9GzYsEH//e9/LXvz5OXlKS8vz/t1bm5uSYcGAEBgQrHqQ5h1PQ5Wq1at9NNPP+nRRx9V5cqVdeDAAV1++eW6+eabVbt2bafDK3PInwAAYStK86eYmBh1795dXbp0UXx8vFxW8yBYtReiuIIyatQouVwu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oCyItvwpNjZWF110kX788UdVrVpVLVq0CEm7xSr0jB8/XtLxJU/79etHIgYAQLCicNWIYHk8Ht17772aPXu2cnJy9NNPP6lRo0YaO3asUlNTNXjwYKdDDHvkaACAMiEK86dWrVrpl19+UcOGDUPWZlCTMQ8YMEAJCQn65ptv9OKLL+rFF1/UihUrQhYUAAAoOyZPnqznn39e06ZNU1xcnHd/q1at9PTTTzsYWeQhRwMAILJMnjxZt99+u959911t375dubm5PlswgpqMedu2bbryyiv1+eefq2rVqpKkvXv36qyzztK8efNUr169oIIBAABlz5w5c/Tkk0+qa9euuvHGG73727Ztq3Xr1jkYWeQhRwMAILJcfPHFkqRevXr5LKhwYoEFt9td7DaDKvQMHjxYR48e1Y8//qhmzZpJktavX69Bgwbp+uuv18KFC4NpNiyUdwX1lAAAokB5V/HfSIPlUgjGmIckEudt27ZNTZo0KbDf4/Ho6NGjDkQUuaI5RwMAIBrzpyVLloS8zaCqGsuWLdMXX3zhTSAkqVmzZvrvf/+rc845J2TBAQCA6NeiRQt9+umnatCggc/+119/Xe3bt3coqshEjgYAQGQ577zzQt5mUIWelJSUQj9hc7vdqlOnju2gAACIesZ1fLPbRhQYN26cBgwYoG3btsnj8WjBggVav3695syZo3fffdfp8CIKORoAIKpFYf70ySef+D1+7rnnFrvNoAo9DzzwgG655RbNmjVLHTt2lCR98803uvXWW/Xggw8G0yQAAGVLFK4aEazevXvrnXfe0aRJk3TSSSdp3LhxOu200/TOO+/owgsvdDq8iEKOBgCIalGYP3Xp0qXAvr/O1VNqc/QMHDhQhw4dUlpamsqVO97EsWPHVK5cOV133XW67rrrvOfu2bMnmFsAAIAy4NixY7rvvvt03XXXafHixU6HE/HI0QAAiCx//PGHz9dHjx7VqlWrNHbsWN17771BtRlUoWfmzJlB3QwAAPy/KPxEKhjlypXTtGnT1L9/f6dDiQrkaACAqBaF+VOVKlUK7LvwwgsVFxenjIwMrVixothtBlXoGTBgQDCXAQCA/+cyIVg1IswSlWB17dpVy5YtU2pqqtOhRDxyNABANCtL+VNSUpLWr18f1LUxwd5048aNGjNmjK666irt2LFDkvTBBx/o+++/D7ZJAABQ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3W5NmzZNixYtUps2bQrMVThjxoxit0mhBwAAB4RyjHliYmJAExbXqFFDsbGxysnJ8dmfk5MT9Pw6halatapOOeUUbdiwIWRtAgAAROMcPWvXrlX79u0lSd99953Psb9OzFwcFHoAACgj4uLi1KFDB2VmZqpPnz6SJI/Ho8zMTA0dOjRk9zlw4IA2btyoa6+9NmRtAgAARKOSmKswdLP9AACAwJkQbcWUkZGhp556Si+88IJ+/PFH3XTTTTp48KB3Fa7+/fv7TNacn5+v1atXa/Xq1crPz9e2bdu0evVqn946t99+u5YtW6bNmzfriy++0GWXXabY2FhdddVVxQ8QAACgKA7lT6Vhw4YNWrRokQ4fPizp+OqjwaJHDwAADnCq63G/fv20c+dOjRs3TtnZ2WrXrp0WLlzonaB5y5YtPqs+/P77797uxJL04IMP6sEHH9R5552npUuXSpJ+++03XXXVVdq9e7dq1qypzp0768svv1TNmjUDimnTpk06duyYmjZt6rP/559/Vvny5ZWamlr8BwoAAKJONA7d2r17t/75z39qyZIlcrlc+vnnn9WoUSMNHjxY1apV0/Tp04vdJoUeAADKmKFDhxY5VOtE8eaE1NRUy0+U5s2bZyuegQMH6rrrritQ6Fm+fLmefvrpAjEBAABEi+HDh6t8+fLasmWLTj31VO/+fv36KSMjI6hCD0O3AABwQhR3PS6uVatW6eyzzy6w/8wzz9Tq1atLPyAAABCeojB/+vDDD3X//ferXr16PvubNm2qX3/9Nag26dEDAIADorHrcbBcLpf2799fYP++ffvkdrsdiAgAAISjaMyfDh48qIoVKxbYv2fPHsXHxwfVJj16AACAo84991xNmTLFp6jjdrs1ZcoUde7c2cHIAAAAStY555yjOXPmeL92uVzyeDyaNm2azj///KDapEcPAABOCEXX4TD7RCpY999/v84991w1a9ZM55xzjiTp008/VW5urj7++GOHowMAAGEjCvOnadOmqWvXrvrmm2+Un5+vkSNH6vvvv9eePXv0+eefB9UmPXoAAHBCFI4xD1aLFi20Zs0a/fOf/9SOHTu0f/9+9e/fX+vWrVOrVq2cDg8AAISLKMyfWrVqpZ9++kmdO3dW7969dfDgQV1++eVatWqVGjduHFSb9OgBAACOq1Onju677z6nwwAAAChVW7ZsUUpKiu6+++5Cj9WvX7/YbVLoAQDAAdE4mWBxrFmzRq1atVJMTIzWrFnj99w2bdqUUlQAACCcRWP+1LBhQ23fvl21atXy2b979241bNgwqIUpKPQAAOCEKBxjXhzt2rVTdna2atWqpXbt2snlcsmYgg/I5XKx8hYAADguCvMnY4xcLleB/QcOHFBCQkJQbVLoAQAApW7Tpk2qWbOm9/8AAABlSUZGhqTjH2qNHTvWZ4l1t9ut5cuXq127dkG1TaEHAAAHuIyRq5AeLMVtI1I1aNBAknT06FFNnDhRY8eOVcOGDR2OCgAAhLNoyp9WrVol6XiPnrVr1youLs57LC4uTm3bttXtt98eVNsUegAAcEIUdj0ORvny5fXGG29o7NixTocCAADCXRTlT0uWLJEkDRo0SA8//LASExND1jbLqwMAAEf16dNHb731ltNhAAAAlLrnnnsupEUeiR49AAA4IhpXjQhW06ZNNWnSJH3++efq0KGDTjrpJJ/jw4YNcygyAAAQTsifAkOhBwAAJ0RR12O7nnnmGVWtWlUrVqzQihUrfI65XC4KPQAA4Djyp4BQ6AEAAI5i1S0AAIDQYY4eAAAccKLrsd0tGkyaNEmHDh0qsP/w4cOaNGmSAxEBAIBwRP4UGAo9AAA4wYRoiwITJ07UgQMHCuw/dOiQJk6c6EBEAAAgLJE/BYRCDwAAcJQxRi6Xq8D+b7/9VtWrV3cgIgAAgMjFHD0AADiAVSOkatWqyeVyyeVy6ZRTTvEp9rjdbh04cEA33nijgxECAIBwQv4UGAo9AAA4gVUjNHPmTBljdN1112nixImqUqWK91hcXJxSU1PVqVMnByMEAABhhfwpIBR6AACAIwYMGCBJatiwoc4++2yVK0daAgAAYBdz9AAA4BBWjDjuvPPO06+//qoxY8boqquu0o4dOyRJH3zwgb7//nuHowMAAOGE/MkahR4AAJxgTGi2KLBs2TK1bt1ay5cv14IFC7wrcH377bcaP368w9EBAICwQf4UEAo9AADAUaNGjdLkyZO1ePFixcXFefdfcMEF+vLLLx2MDAAAIPIwGB4AAAewasSf1q5dq7lz5xbYX6tWLe3atcuBiAAAQDgifwoMPXoAAHCCCdEWBapWrart27cX2L9q1SrVrVvXgYgAAEBYIn8KCIUeAADgqCuvvFJ33nmnsrOz5XK55PF49Pnnn+v2229X//79nQ4PAAAgolDoAQDAAS5PaLZocN9996l58+ZKSUnRgQMH1KJFC5177rk666yzNGbMGKfDAwAAYYL8KTDM0QMAgBNC0XU4Sroex8XF6amnntLYsWP13Xff6cCBA2rfvr2aNm3qdGgAACCckD8FhEIPAAAIC/Xr11f9+vWdDgMAACCiUegBAMABrBrxJ2OMXn/9dS1ZskQ7duyQx+Pbp3rBggUORQYAAMIJ+VNgKPQAAOAEY45vdtuIArfddpueeOIJnX/++UpKSpLL5XI6JAAAEI7InwJCoQcAADjqxRdf1IIFC3TxxRc7HQoAAICPKVOmaMGCBVq3bp0qVKigs846S/fff7+aNWvmPadLly5atmyZz3X//ve/NXv27NIOVxKrbgEA4IgTXY/tbtGgSpUqatSokdNhAACAMOdE/rRs2TLdfPPN+vLLL7V48WIdPXpUF110kQ4ePOhz3pAhQ7R9+3bvNm3atBA+8uKh0AMAgBNMiLYgzJo1S6mpqUpISFBaWpq++uqrIs/9/vvv1bdvX6WmpsrlcmnmzJm22/y7CRMmaOLEiTp8+HBxHwoAAChLHMifFi5cqIEDB6ply5Zq27atnn/+eW3ZskUrVqzwOa9ixYpKTk72bomJicE/Tpso9AAAUIbMnz9fGRkZGj9+vFauXKm2bdsqPT1dO3bsKPT8Q4cOqVGjRpo6daqSk5ND0ubf/fOf/9Qff/yhWrVqqXXr1jrttNN8NgAAgFDLzc312fLy8gK6bt++fZKk6tWr++x/+eWXVaNGDbVq1UqjR4/WoUOHQh5zoJijBwAABzi1asSMGTM0ZMgQDRo0SJI0e/Zsvffee3r22Wc1atSoAueffvrpOv300yWp0OPBtPl3AwYM0IoVK3TNNdcwGTMAAChSKPOnlJQUn/3jx4/XhAkT/F7r8Xh022236eyzz1arVq28+//1r3+pQYMGqlOnjtasWaM777xT69evd2zlUAo9AAA4wYFVI/Lz87VixQqNHj3auy8mJkbdunVTVlZWUCGEos333ntPixYtUufOnYOKAQAAlBEhzJ+2bt3qM7wqPj7e8tKbb75Z3333nT777DOf/TfccIP3/61bt1bt2rXVtWtXbdy4UY0bN7YXbxAo9AAAEOFyc3N9vo6Pjy80Wdm1a5fcbreSkpJ89iclJWndunVB3TsUbaakpDg6jh0AAJQ9iYmJxco/hg4dqnfffVeffPKJ6tWr5/fctLQ0SdKGDRscKfQwRw8AAA4I5aoRKSkpqlKlinebMmWKsw+umKZPn66RI0dq8+bNTocCAADCmBOrbhljNHToUL355pv6+OOP1bBhQ8trVq9eLUmqXbt2EI/SPnr0AADgBBurZvm0ocC7HteoUUOxsbHKycnx2Z+Tk1PkRMtWQtHmNddco0OHDqlx48aqWLGiypcv73N8z549QcWGEAtFd3kAAOwIYf4UqJtvvllz587V22+/rcqVKys7O1uSVKVKFVWoUEEbN27U3LlzdfHFF+vkk0/WmjVrNHz4cJ177rlq06aNzWCDQ6EHAIAIF2jX47i4OHXo0EGZmZnq06ePpOOTCmZmZmro0KFB3TsUbRa1ZDsAAIDTHn/8cUlSly5dfPY/99xzGjhwoOLi4vTRRx9p5syZOnjwoFJSUtS3b1+NGTPGgWiPo9ADAIADnFp1KyMjQwMGDFDHjh11xhlneJOSEytm9e/fX3Xr1vUO/8rPz9cPP/zg/f+2bdu0evVqVapUSU2aNAmoTSsDBgwo/gMBAABljhP5k7HozZqSkqJly5bZiCj0Iq7Qk5eXp7S0NH377bdatWqV2rVr53RIAAAUn8cc3+y2UUz9+vXTzp07NW7cOGVnZ6tdu3ZauHChdzLlLVu2KCbmzyn8fv/9d7Vv39779YMPPqgHH3xQ5513npYuXRpQm1a2bNni93j9+vWL+SgBAEBUcih/ijQRV+gZOXKk6tSpo2+//dbpUAAAiEhDhw4tcljVieLNCampqZafZFm1aSU1NVUul6vI4263O6h2AQAAyqKIKvR88MEH+vDDD/XGG2/ogw8+cDocAACC58BkguFq1apVPl8fPXpUq1at0owZM3Tvvfc6FBUAAAg75E8BiZhCT05OjoYMGaK33npLFStWdDocAABscSkEY8xDEonz2rZtW2Bfx44dVadOHT3wwAO6/PLLHYgKAACEG/KnwEREoccYo4EDB+rGG29Ux44dtXnz5oCuy8vLU15envfr3NzcEooQAACEWrNmzfT11187HUaZQ/4EAEBki7E+peSMGjVKLpfL77Zu3Tr997//1f79+zV69OhitT9lyhRVqVLFu6WkpJTQIwEAoJiMCc0WBXJzc322ffv2ad26dRozZoyaNm3qdHhlDvkTACBskT8FxNEePSNGjNDAgQP9ntOoUSN9/PHHysrKUnx8vM+xjh076uqrr9YLL7xQ6LWjR49WRkaG9+vc3FySFQBAWHBqefVwVLVq1QKTMRtjlJKSonnz5jkUVdlF/gQACFfkT4FxtNBTs2ZN1axZ0/K8Rx55RJMnT/Z+/fvvvys9PV3z589XWlpakdfFx8cXKA4BAIDwsmTJEp+vY2JiVLNmTTVp0kTlykXEKPOoQv4EAEBki4jsqX79+j5fV6pUSZLUuHFj1atXz4mQAACwh1UjvM477zynQwAAAJGA/CkgEVHoAQAg2riMkcvmGHG71zvpf//7X8Dn9urVqwQjAQAAkaKs50+BishCT2pqqkwZ+OYAABCt+vTpE9B5LpdLbre7ZIMBAACIIhFZ6AEAIOJ5/n+z20aE8ngiOHgAAOCMMp4/BYpCDwAADqDrMQAAQPGQPwUmxukAAAAAli1bpp49e6pJkyZq0qSJevXqpU8//dTpsAAAACIOhR4AAJxgQrRFgZdeekndunVTxYoVNWzYMA0bNkwVKlRQ165dNXfuXKfDAwAA4YL8KSAM3QIAwAnGHN/sthEF7r33Xk2bNk3Dhw/37hs2bJhmzJihe+65R//6178cjA4AAIQN8qeA0KMHAAA46pdfflHPnj0L7O/Vq5c2bdrkQEQAAACRi0IPAAAOcJnQbNEgJSVFmZmZBfZ/9NFHSklJcSAiAAAQjsifAsPQLQAAnEDXY68RI0Zo2LBhWr16tc466yxJ0ueff67nn39eDz/8sMPRAQCAsEH+FBAKPQAAwFE33XSTkpOTNX36dL366quSpFNPPVXz589X7969HY4OAAAgslDoAQDAAS7P8c1uG9Hisssu02WXXeZ0GAAAIIyRPwWGOXoAAHDCia7HdrcocP3112vp0qVOhwEAAMId+VNAKPQAAABH7dy5U927d1dKSoruuOMOrV692umQAAAAIhaFHgAAnGBCtEWBt99+W9u3b9fYsWP19ddfq0OHDmrZsqXuu+8+bd682enwAABAuCB/CgiFHgAAHOAyJiRbtKhWrZpuuOEGLV26VL/++qsGDhyoF198UU2aNHE6NAAAECbInwJDoQcAAISNo0eP6ptvvtHy5cu1efNmJSUlOR0SAABARKHQAwCAE5hM0MeSJUs0ZMgQJSUlaeDAgUpMTNS7776r3377zenQAABAuCB/CgjLqwMA4AQjye7ynlGSp9StW1d79uxR9+7d9eSTT6pnz56Kj493OiwAABBuyJ8CQqEHAAA4asKECbriiitUtWpVp0MBAACIeBR6AABwQCgmA4yWyQSHDBnidAgAACACkD8FhkIPAABOMLI/Rjz68xQAAIA/kT8FhMmYAQAAAAAAogQ9egAAcEIoVn0oA12PAQAAvMifAkKhBwAAJ3gkuULQBgAAQFlB/hQQhm4BAAAAAABECXr0AADgAFaNAAAAKB7yp8BQ6AEAwAmMMQcAACge8qeAMHQLAIAyZtasWUpNTVVCQoLS0tL01Vdf+T3/tddeU/PmzZWQkKDWrVvr/fff9zk+cOBAuVwun6179+4l+RAAAABQBAo9AAA44cQnUna3Ypo/f74yMjI0fvx4rVy5Um3btlV6erp27NhR6PlffPGFrrrqKg0ePFirVq1Snz591KdPH3333Xc+53Xv3l3bt2/3bq+88kpQTwsAAECRHMqfIg2FHgAAnOBQojJjxgwNGTJEgwYNUosWLTR79mxVrFhRzz77bKHnP/zww+revbvuuOMOnXrqqbrnnnt02mmn6dFHH/U5Lz4+XsnJyd6tWrVqQT0tAAAARaLQExAKPQAAlBH5+flasWKFunXr5t0XExOjbt26KSsrq9BrsrKyfM6XpPT09ALnL126VLVq1VKzZs100003affu3aF/AAAAALDEZMwAADjBI8kVgjYk5ebm+uyOj49XfHx8gdN37dolt9utpKQkn/1JSUlat25dobfIzs4u9Pzs7Gzv1927d9fll1+uhg0bauPGjbrrrrvUo0cPZWVlKTY2NphHBgAAUFAI86doRqEHAAAHhHJ50JSUFJ/948eP14QJE2y1XRxXXnml9/+tW7dWmzZt1LhxYy1dulRdu3YttTgAAEB0Y3n1wFDoAQAgwm3dulWJiYnerwvrzSNJNWrUUGxsrHJycnz25+TkKDk5udBrkpOTi3W+JDVq1Eg1atTQhg0bKPQAAACUMuboAQDACSGcTDAxMdFnK6rQExcXpw4dOigzM9O7z+PxKDMzU506dSr0mk6dOvmcL0mLFy8u8nxJ+u2337R7927Vrl27uM8KAABA0ZiMOSD06AEAwAkeI7lsJhqe4l+fkZGhAQMGqGPHjjrjjDM0c+ZMHTx4UIMGDZIk9e/fX3Xr1tWUKVMkSbfeeqvOO+88TZ8+XZdcconmzZunb775Rk8++aQk6cCBA5o4caL69u2r5ORkbdy4USNHjlSTJk2Unp5u7/EBAAD8lUP5U6Sh0AMAQBnSr18/7dy5U+PGjVN2drbatWunhQsXeidc3rJli2Ji/uzwe9ZZZ2nu3LkaM2aM7rrrLjVt2lRvvfWWWrVqJUmKjY3VmjVr9MILL2jv3r2qU6eOLrroIt1zzz1F9iwCAABAyaHQAwCAE0LRdTjI64cOHaqhQ4cWemzp0qUF9l1xxRW64oorCj2/QoUKWrRoUVBxAAAAFIsD+dOUKVO0YMECrVu3ThUqVNBZZ52l+++/X82aNfOec+TIEY0YMULz5s1TXl6e0tPT9dhjjxVYubS0MEcPAACOCMX48ujvegwAAPCn0s+fli1bpptvvllffvmlFi9erKNHj+qiiy7SwYMHvecMHz5c77zzjl577TUtW7ZMv//+uy6//PIQP/bA0aMHAAAAAACgEAsXLvT5+vnnn1etWrW0YsUKnXvuudq3b5+eeeYZzZ07VxdccIEk6bnnntOpp56qL7/8UmeeeWapx0yPHgAAnMCqEQAAAMUTwvwpNzfXZ8vLywsohH379kmSqlevLklasWKFjh49qm7dunnPad68uerXr6+srKwQPwGBodADAIATPCY0GwAAQFkRwvwpJSVFVapU8W4nVhz1e3uPR7fddpvOPvts78IU2dnZiouLU9WqVX3OTUpKUnZ2dsifgkAwdAsAAAAAAJQpW7duVWJiovfrQFYLvfnmm/Xdd9/ps88+K8nQbKPQAwCAE4zn+Ga3DQAAgLIihPlTYmKiT6HHytChQ/Xuu+/qk08+Ub169bz7k5OTlZ+fr7179/r06snJyVFycrK9WIPE0C0AAJzAHD0AAADF40D+ZIzR0KFD9eabb+rjjz9Ww4YNfY536NBB5cuXV2Zmpnff+vXrtWXLFnXq1CkkD7u46NEDAAAAAABQiJtvvllz587V22+/rcqVK3vn3alSpYoqVKigKlWqaPDgwcrIyFD16tWVmJioW265RZ06dXJkxS2JQg8AAM7wGEk2e+QwGTMAAChLHMifHn/8cUlSly5dfPY/99xzGjhwoCTpoYceUkxMjPr27au8vDylp6frsccesxenDRR6AABwQiiGXjF0CwAAlCUO5E8mgPMTEhI0a9YszZo1K9ioQoo5egAAAAAAAKIEPXoAAHCCUQg+kQpJJAAAAJGB/CkgFHoAAHACQ7cAAACKh/wpIAzdAgAAAAAAiBL06AEAwAkejyRPCNoAAAAoI8ifAkKhBwAAJ9D1GAAAoHjInwLC0C0AAAAAAIAoQY8eAACcwCdSAAAAxUP+FBAKPQAAOMFjZHt9T0/0JyoAAABe5E8BYegWAAAAAABAlKBHDwAADjDGI2Psrfpg93oAAIBIQv4UGAo9AAA4wRj7XYfLwBhzAAAAL/KngDB0CwAAAAAAIErQowcAACeYEEwmWAY+kQIAAPAifwoIhR4AAJzg8Ugum2PEy8AYcwAAAC/yp4AwdAsAAAAAACBK0KMHAAAn0PUYAACgeMifAhIxPXpSU1Plcrl8tqlTpzodFgAAQTEeT0g2AACAsoL8KTAR1aNn0qRJGjJkiPfrypUrOxgNAAAAAABAeImoQk/lypWVnJzsdBgAANhH12MAAIDiIX8KSMQM3ZKkqVOn6uSTT1b79u31wAMP6NixY06HBABAcDwmNBsAAEBZQf4UkIjp0TNs2DCddtppql69ur744guNHj1a27dv14wZM4q8Ji8vT3l5ed6vc3NzSyNUAACAiEX+BABAZHO0R8+oUaMKTLD8923dunWSpIyMDHXp0kVt2rTRjTfeqOnTp+u///2vTyLyd1OmTFGVKlW8W0pKSmk9NAAA/DNGMh6bW/R/IoXSR/4EAAhb5E8BcbRHz4gRIzRw4EC/5zRq1KjQ/WlpaTp27Jg2b96sZs2aFXrO6NGjlZGR4f06NzeXZAUAEBaMx8i47CUapgwkKih95E8AgHBF/hQYRws9NWvWVM2aNYO6dvXq1YqJiVGtWrWKPCc+Pl7x8fHBhgcAAFDmkD8BABDZImIy5qysLM2cOVPffvutfvnlF7388ssaPny4rrnmGlWrVs3p8AAAKD7b3Y7/fwvCrFmzlJqaqoSEBKWlpemrr77ye/5rr72m5s2bKyEhQa1bt9b777/v+1CM0bhx41S7dm1VqFBB3bp1088//xxUbAAAAEVyMH+KJBFR6ImPj9e8efN03nnnqWXLlrr33ns1fPhwPfnkk06HBgBAUIzHhGQrrvnz5ysjI0Pjx4/XypUr1bZtW6Wnp2vHjh2Fnv/FF1/oqquu0uDBg7Vq1Sr16dNHffr00Xfffec9Z9q0aXrkkUc0e/ZsLV++XCeddJLS09N15MiRoJ8fAACAv3Mqf4o0EVHoOe200/Tll19q7969Onz4sH744QeNHj2absUAABTTjBkzNGTIEA0aNEgtWrTQ7NmzVbFiRT377LOFnv/www+re/fuuuOOO3Tqqafqnnvu0WmnnaZHH31U0vHePDNnztSYMWPUu3dvtWnTRnPmzNHvv/+ut956qxQfGQAAAKQIWl49FE5MuuTJK/oTxtz97tIKBwAQZnIPHO/KWxqT9B0zeba7Dh/TUUkFl78uao6V/Px8rVixQqNHj/bui4mJUbdu3ZSVlVXoPbKysnwm5pWk9PR0bxFn06ZNys7OVrdu3bzHq1SporS0NGVlZenKK68M6rEhfJz4fTh2rPCVTsmdAKBsi9T8KZqVqULP/v37JUmbpk8q8pxq95VWNACAcLV//35VqVKlRNqOi4tTcnKyPst+3/rkAFSqVKnAikjjx4/XhAkTCpy7a9cuud1uJSUl+exPSkrSunXrCm0/Ozu70POzs7O9x0/sK+ocRLYT+dPnXz9Q6PFqp5RmNACAcBVJ+VNycrLi4uJC0lY4KlOFnjp16mjr1q2qXLmyXC6X0+H4dWIp061btyoxMdHpcIotkuMndudEcvzE7pxQxm+M0f79+1WnTp0QRVdQQkKCNm3apPz8/JC0Z4wp8J7G0GaEEvlT6Yjk2KXIjp/YnRPJ8RP7nyIxf4qLi1NCQkJI2gpHZarQExMTo3r16jkdRrEkJiZG3AvHX0Vy/MTunEiOn9idE6r4S+qTqL9KSEhwJLmoUaOGYmNjlZOT47M/JydHycnJhV6TnJzs9/wT/+bk5Kh27do+57Rr1y6E0cMp5E+lK5JjlyI7fmJ3TiTHT+zHRXP+FIkiYjJmAABgX1xcnDp06KDMzEzvPo/Ho8zMTHXq1KnQazp16uRzviQtXrzYe37Dhg2VnJzsc05ubq6WL19eZJsAAAAoOWWqRw8AAGVdRkaGBgwYoI4dO+qMM87QzJkzdfDgQQ0aNEiS1L9/f9WtW1dTpkyRJN16660677zzNH36dF1yySWaN2+evvnmGz355JOSJJfLpdtuu02TJ09W06ZN1bBhQ40dO1Z16tRRnz59nHqYAAAAZRaFnjAVHx+v8ePHR+w8C5EcP7E7J5LjJ3bnRHr8pa1fv37auXOnxo0bp+zsbLVr104LFy70Tqa8ZcsWxcT82eH3rLPO0ty5czVmzBjdddddatq0qd566y21atXKe87IkSN18OBB3XDDDdq7d686d+6shQsX0r0apS6SXw8iOXYpsuMndudEcvzEjnDmMqWxBhoAAAAAAABKHHP0AAAAAAAARAkKPQAAAAAAAFGCQg8AAAAAAECUoNADAAAAAAAQJSj0OIQ5sAEAAIqH/AkAAGsUehzgdruVl5fndBhBOXLkiJ555hmtWrXK6VCC4vF45Ha7nQ4jKB6PRx6Px+kwgnL48GE988wz2r9/v9OhFNvRo0f1888/6/Dhw5Ii94+MSP3ZidTnG0DokT85I5JzJ4n8ySnkT86J1OcaoUWhp5TNnDlTXbt21T/+8Q898sgj2rFjh9MhBezRRx9VrVq1NH/+fO3cuVP5+flOh1QsDz30kLp166ZrrrlGr776qvbs2SMpMl7AH3nkEfXq1UtXX321Xn31Ve3bt8/pkAL2wAMPqFKlSnr55ZcVExNZLzkzZsxQ8+bNdcUVV6hz58768ssv5XK5IuJnRpLmzJmjRx99VJIi7rmXjr9e9urVS//5z3+0fPnyiHvNARA65E/OiOTcSSJ/cgr5k3PIneBlUCqWL19u2rdvb5o2bWoef/xxM2DAANO+fXvzwAMPOB1aQF555RXTqlUr88orrzgdSrHt3r3b9OrVyzRp0sQ89dRTpn///ubMM880vXv3djo0S2vWrDGdOnUyp5xyinnwwQdN9+7dTevWrc0999zjdGiWli5daho0aGAaNGhg3njjDafDKZYjR46Y6667zjRp0sS8/fbb5s033zSXXHKJadu2rdOhBeTHH380PXr0MC6Xy5x11lnmiy++MMYY4/F4HI4sMAcOHDCXX365SU1NNWPHjjWnn366adq0qRkzZozToQEoZeRPzojk3MkY8ienkD85h9wJfxdZJcoItWfPHs2dO1dnnXWWVq5cqRtvvFHPP/+8YmJidOTIEUnh28XuRFfdBQsWqEePHrryyiu1bds2zZ07V998841ycnIkhfcnO19//bW2bNmijz/+WNdff71eeOEFDR06VP/73//0xBNPOB1ekfbt26dnn31WjRs31hdffKERI0bogw8+0BlnnKEff/zR2xU2XD388MP6/ffftXHjRl1++eXKycnRDz/8oJ07dzodmqUNGzYoKytLTz75pHr16qU+ffro4osvVp06dXT06FFJ4fs7a4zRBx98oLi4OD399NNyu91asGCBjhw5IpfLFbZx/9UPP/ygtWvXasGCBZo0aZK++uorXXXVVXrllVc0b948p8MDUErIn5wTqbmTRP7kJPIn55A74e8o9JSCSpUq6dprr9WoUaNUqVIlSVJ+fr5q1KihU089VQcOHJDL5XI4yoKMMYqNjVV+fr6WL1+uSy+9VC+//LLatGmjxx57TD179lTPnj116NChsOzWeCJ5Wrt2rYwx3udekmrWrClJGjNmjLKzsx2Jrygn3khcLpeqV6+u//znPzr55JO9b5BNmzbVN998owoVKjgZZqH++iZ4zz33KC4uTnPmzNFdd92lM844Q1dffbXat2+vqVOnOhhl4f7+Br5u3TpVqVLF+/X777+vBg0a6PPPP5cxJmx/Z10uly699FLddtttuu6663TRRRfp888/18KFCyUpLOM+4cTv7N69e7V7927v76kkXX/99erSpYvGjh3rVHgAShn5U+mL1NxJIn9yCvmTs8idUJTweneJEm+88YaeeOIJrV27VocOHVJcXJzatGmjevXqSZKefPJJ1alTRz/88INGjBihiy++2DsO1GknYl+zZo3307IjR46odevWevLJJzVv3jw9//zzeu+99/Taa6/p0KFD6t+/v6Tw+FTqr/Gf+MSmXLlyKl++vLKysrznffbZZ/r3v/+txMREPfDAA5Kcj3/58uWS5B3DnJiYqDvvvFOdOnWSdPxxSFJOTo53X7j4a+wntGzZUjfccIMGDx6slStX6pFHHtF///tfXXXVVXrmmWc0ceJEp8L1UVjsNWrU0MUXX6yuXbvqhhtuULVq1bRp0yZt3bpV11xzjXr37q0//vjDqZB9LFq0SO+8845++eUXbzLbuHFjdenSRZJ00003qXz58nr77be9ibnTP+t/9c477+iNN97Qli1bvJ+A79u3T3Xr1tWPP/7oPS8lJUVXX321YmJiNH36dKfCBVCCyJ+cEcm5k0T+5BTyJ+eQOyEgpTlOLNpt3LjRdOzY0dSrV8+0b9/e1KtXzwwYMKDAeRkZGeaxxx4ze/fuNd99950ZP368qVmzpsnOzi79oP9fYbH379/fGGPMsWPHzI033mhq165tzjrrLJOXl+e9LjMz07hcLrNp0yaHIj+usPivueYaY4wxhw8fNunp6d7HlJqaalJSUsznn39uhg8fbjp37mwOHjzoWOxr1qwxZ511lnG5XObVV181xhx/zk/4+7jgHj16mIcffrjQY6XNKvZdu3aZO+64w3z77bfefQcPHjRjx441jRo1Mrt37y71mE8oLPajR496jx88eNAsW7bMdOvWzYwYMcK43W5z9OhR8+uvvxqXy2Xefvttp0I3xhjz1VdfmdatW5smTZqYFi1amCZNmpipU6f6nHPie/HEE0+Y0047zTzxxBNOhFqodevWmXbt2pl69eqZ5s2bmyZNmpi77rrLGGPMoUOHTP369c2oUaN8fjd37dplBg4caC6//HJz6NAhp0IHEGLkT86I5NzJGPInp5A/OYfcCcVBoSeE7r//fnP22Web/fv3m507d5o33njDVKxY0UyYMMHnzf3vby5vv/22qVu3rvnkk09KO2SvomIfO3asMcaYJUuWmBo1apgWLVr4XLd+/XrToEED89ZbbzkRtldR8Z+YgGzz5s3m2WefNf379zczZszwvgCOGDHCXHTRRY7F/fXXX5tzzz3X9OzZ0/Tq1ct06dLF+2ZZWBKyc+dOU6VKFfPZZ5959+Xk5JRavH/lL3a32+09b9++fQWuffzxx02jRo3Mhg0bSi3evwo09g0bNpg6deqYdevWGWP+TGSaNm1qbr/99tIP/P8tXLjQtG7d2owcOdL88ccfZuPGjeauu+4yHTp0MD/++KP3vBM/Q8eOHTO9e/c2vXv3Nt9//70xxpjvvvvOkdhPuPPOO81FF11k9u3bZ3799Vfz4IMPmooVK3qTqQcffNBUqVLFLFu2zOe6jIwM07lzZydCBlBCyJ+cEam5kzHkT+RPwYn0/IncCcVBoSdEjh07Zk477TRz5513+ux/4oknTEJCglmyZEmBa068iMyYMcOceeaZZv/+/aURagH+Yo+Li/O+WNx5553m5JNPNo8++qj3nPfee8+0bdvW0U/TrOL/63N/4jn3eDzmwIED5uKLLzY33nhjaYbr448//jBDhw4133//vXnttddM27Ztzf3332+M8X3DPGHevHmmcePGxpjjFfrrrrvOtGrVymzbtq1U4zam+LEb8+fzP3LkSHP++eebI0eOlFq8fxVo7GvXrjVt2rQx7733nndfVlaWadmypU+yWJqOHTtmnnrqKTN06FCza9cu73P60UcfmcaNG5sffvihwPnGHE9uTj/9dDNs2DBz+eWXm8qVK5vNmzeXevzGHP/UqV69euahhx7y7svLyzNjxowxVapUMb/++qsxxpjWrVubPn36+HyiOWzYMNOzZ0+fTw8BRC7yJ2fyp0jOnYwhfyJ/Kr5Iz5/InVBcFHpC4MQLW/fu3c0VV1zhs88YYzp27Gguu+wyk5+f79136NAhs3fvXnP//feb1NRUM2vWLOPxeEq9K2kgsffs2dMYY8yvv/5qbrnlFuNyucxVV11lbr31VlOrVi0zatQok5+f70g32ECf+79+Irhr1y6za9cuM3nyZNOkSROTlZVVukH/vxPP14lPyP744w9z2223mdatW5stW7YYY3y78RpjzMSJE83gwYPNjBkzTOXKlc2ZZ55pfvrpp9IN3AQX+759+8yuXbvM/fffbxo0aGBeeuml0g36/wUS+4k3wk2bNpkrrrjC1K9f39x7771mzJgxJikpyQwePNgcOHDAkfiNMeb77783f/zxh8++LVu2mKSkJLN+/fpCr9m/f79p1qyZcblcpmvXrt5P2Urbid/Ps846y9x2223GmD+/J/v27TNNmzY1Q4YMMcYYs2zZMtOpUyfTvHlz8/DDD5sJEyaY6tWrm5dfftmR2AGEFvmTM/lTJOdOxpA/kT8FL1LzJ3InBINCT4i43W7z4IMPmrZt25q1a9caY4z3DXLx4sUmJibGW/394osvzN13321atmxpGjdubN5//33H4jYmsNj/Oob8ySefNLfeequ55JJLzDvvvONEyD6K89z/8ccf5rnnnjOpqammYcOGZuHChY7F/VcnXsCXLFlizj77bHPTTTcVOCc/P9+0b9/euFwu06BBA7NgwYLSDrNQgcT+7bffmjFjxpgmTZqExc/8CYHE/sMPP5jrr7/e9OjRw5xzzjnm3XffLe0wi/TXP26effZZ06JFC5Ofn1/gE8GvvvrKxMXFmSZNmpjFixc7EaqPI0eOmP/85z/m4osvNr/88osx5s/vxdNPP20SEhLMnj17jDHHn/+bbrrJ9OjRw7Rv3z4sXnMAhA75kzOiIXcyhvzJKeRPpY/cCcVFoaeYCutSeeKFYsmSJeacc84xw4YN8zm+d+9e06xZM2+X3X379pnHHnvMzJkzp+QD/otQxO4kO/HPmjXLe/4PP/xg5s+fX/IB/0VRXXH/Li8vz9x3332mWbNm3q6tJz4d2b9/vxk0aJB58sknSyzOwoQi9gMHDpgXX3zRvPjiiyUWZ2HsxP7XT5CNKXysfEkLJP4TvwMDBw40//73vws959ixYz5dfUuav7hPxDtv3jxz2mmnmRkzZvgcX7t2rWnevHmBRNypoRkAQoP8yRmRnDsZQ/5E/hScSMyfyJ0QahR6AvDUU0+Z2bNnB3Tu3Xffbdq3b29ef/11774NGzaYWrVqOTLLfCTHbkxkx1+c2I3580V8zZo1pmfPnuayyy4zv/76q7nyyiu9n4IE+sZrVyhj/+v47NIQytg/+OCDkgqzSMHG37FjR+8fP/v37zejRo0yP//8c4nE6M/06dPNlVdeaW6++Wbz5ZdfehO+woYmXHXVVaZbt24+c0GsWLHCnHTSSeaLL74o8joAkaGsvIcTe2iRP5E/BSOS8ydyJ5QECj1+rF692lxwwQXG5XKZ888/36xYscIYU/gvz4k3kJ9++slcd9115uSTTzbvv/+++eWXX8z06dNN69atS3UscCTHHunxFyf2ojzyyCMmISHBlCtXzjRq1KjU4id2Z2I3xl78v/zyi2nYsKH55ZdfzDPPPGOqVq1qWrZsWaqTBWZlZZk2bdqY1q1bm7Fjx5rWrVubtm3bmtdee63AuSd+Z5cvX24uueQS06JFC7NixQqTnZ1tJk+ebM466yzz+++/l1rsAEKrrLyHE7tz8ReFHKT4Ijl2YyI7fyJ3Qkmi0FMEt9tt7rvvPnPFFVeYJ5980pxxxhnm7rvv9rt04wk7d+40/fr1M40aNTKpqammdu3apfqpSCTHbkxkx28ndmOOd9V99913Te3atU1qaiqxByiSYzfGfvyPPPKIKVeunGnQoIGpVq1aqU/UuHXrVnP11VeboUOH+kyyePrpp5u77rrLGFP0Y1i9erXp2rWrSUlJ8f7OhsscBACKr6y+hxO7PZH8Pk7s5E/BIHdCSaPQU4gTv1Tff/+9+fTTT40xxowYMcJ07tzZ2xUxkCpxTk6OWbp0ackFWohIjt2YyI4/FLEfPnzYdP+/9u42psr6DeD4dcuTIBSO0hKH+IRBOJFwtZDK3gCuWZFmM+bswdWWa3OxuebqBRi1Hkzdmq034NqKzZlrqXPMTaitlpo2ITJjYDiDTJxLAgE51/+F4+hJKv+nw/l53ef7eefNOWff446/+7fLm/uUlemrr746vrF/QbubdtXI9FdXV2tKSorW1NSMb+zfOHPmjK5bty54Q8/Rr3199tlntbS0dMznXPueBgcH9eeff2aTAhgX6+dwVdrDYfk8Tjv7p3Cxd8J481RVBdLQ0CAXL16U+++/X+bMmSNJSUkyMjIicXFxIiLS2dkplZWVMn/+fHnjjTckIyNDVFU8zxvz9f7pZ7T7pz+S7YFAQCZMmCDDw8OSkJBAu0/bI90vItLa2iozZsyQtLS0qPfPmjVLkpOTZWBgQJKTk0Met3TpUikuLpaNGzdGpQtA9HEOp911P3uQ2GiPdL9IdPdP7J0QddGcKt2M2traND8/X7Ozs3X+/PmalZWlL774YshjLl++rKqq77//vhYVFWl9fb2L1OtYble13U+7G5bbVf3f/9f/aSosLHRyQ0YA48/yeka7O5b7aXfHcj97J7gS84Oe119/XR9++GEdGBjQnp4e/fTTTzUhIUHfeeed4O93ji4c/f39Wl5eritWrND29nZVvXK5oKqbu5tbbrfeTzvt9I/dP3qzwGPHjuktt9yiHR0dwef39vY66QYQeZbXM9pv7vPIzdpPO5+b8Wpn74TxENODnoGBAb3rrru0trY25Pi7776raWlp+s033wSPjS4eu3bt0kWLFun69ev1kUce0YyMDO3p6Ylqt6rtdlXb/bTTHo5Y6ldV3bRpkxYXF6uqand3t65atUorKir0woULUWsGMD4sr2e02ziP3Gz9tPO5CQd7J7gUs4Oe0cnp4sWL9bnnnlPVq4uDqmpubq5WVlYGHzfq3LlzmpWVpZ7n6dKlS6P69cWjLLer2u6nnfZwxGL/M888o7W1tfrWW29pSkqKlpSU6OnTp6MbDiDiLK9ntNs6j6jeHP2087kJB3snuBazgx7VK18JWF1drYWFhcFL+wYHB1X1yiQ4ISFBf//99+Djm5qa1PM8vfvuu4N3d3fFcruq7X7a3bDcrhpb/d3d3Zqenq6e5+nMmTN1//79zroBRJ7l9Yx2dyz30+6O5X72TnBpguubQbsyPDws8fHxcs8998jEiRPlo48+EhGRxMREEREpKSmRzMxM2bdvX/A5RUVFsm3bNmltbZXFixc76Rax3S5iu592Nyy3i8RO/969e4PPKSgokPr6euno6JDS0lIn3QAiz/J6Rrs7lvtpd8dyP3snOOd60jRe9uzZo6rX33Tr2kvmRm3YsEEXLlwYcofz48eP62233aYHDhz42+eNF8vtqrb7aac9HPSH9o/1WgBssLye0e6f8wh/9zfGcruq7X72TrjZ+W7Qc/DgQZ07d656nqdffPGFqup1v7epqtrQ0KCZmZna1NSkJ0+e1FWrVumdd96pjY2N2tnZqTU1NVpYWKi//PIL7THQTzvt9NvrBxA5ltcD2jmP0G6n3Xq/5XbEFl8Neo4cOaLLli3T559/XlesWKE5OTkhPw8EAtrb26tlZWU6ZcoU3bx5sw4NDanqld+LXLZsmc6ePVuzsrJ0+vTp2tjYSHsM9NNOO/32+gFEjuX1gHbOI7Tbabfeb7kdscdXg57Tp0/re++9pydOnNC2tjadPHmyvv3226p6ddI6MDCgH3zwgXZ3d1/3/MuXL2tPT482NzdHtVvVdruq7X7aaQ8H/W77AUSO5fWAds4j4aCdz004LLcj9pge9Hz99df666+/hhwbnZoGAgHdtGmTpqamam9vr6peufP5PxnrsrvxYrld1XY/7VfRfuPoDxXtfgCRY3k9oP0qziM3jvar+NzcOMvtgMlBz4EDB3TmzJk6Y8YMnT59uq5du1Z/+uknVb3yj270RlZnzpzR3NxcXbNmTfBnrlluV7XdT7sblttV6QfgH5bXA9rdsdxPuzuW+y23A6PMDXq6urr0vvvu09dee03b29t1586dOmvWLK2oqNBTp06paug09ZNPPlHP8/To0aOqemUK29fXR3sYLPfTTns46HfbDyByLK8HtHMeod1Ou6rtfsvtwLXMDXoaGxs1OTlZ29vbg8d27dqlDzzwgL7wwgvBY6MT1T/++EPLy8v1wQcf1OPHj2t5ebl++OGHUf/6QOvtqrb7aac9HPS77QcQOZbXA9o5j9Bup13Vdr/lduBaE8SY8+fPS25uroyMjASPPfroo1JaWipfffWVNDc3i4hIIBAQEZG0tDRZu3atfPnll7JgwQK5dOmSPPnkkxIXF0d7DPXTTjv99voBRI7l9YB2ziO022m33m+5HQjhetL0/2ppadGJEyfq559/HnL82LFjWlpaquvXrw8eGxoa0h07dmhSUpIuWrRIDx8+HO3cEJbbVW330+6G5XZV+gH4h+X1gHZ3LPfT7o7lfsvtwLXMXdGTn58vS5Yskc2bN0tfX1/weEFBgUyZMkU6OjqCE9Y///xTWltbZcuWLXLo0CEpKipylS0itttFbPfT7obldhH6AfiH5fWAdncs99PujuV+y+1ACNeTpnB8//33Gh8fr9u3b9fBwcHg8Y0bN+qcOXMclv07y+2qtvtpd8Nyuyr9APzD8npAuzuW+2l3x3K/5XZgVLzrQVM4FixYIBs2bJCamhpJSEiQp556SgKBgBw5ckQqKytd5/0jy+0itvtpd8Nyuwj9APzD8npAuzuW+2l3x3K/5XZglKeq6joiXC+99JLs3r1bsrKypKenRyZNmiQ7d+6UvLw812n/ynK7iO1+2t2w3C5CPwD/sLwe0O6O5X7a3bHcb7kdMD3ouXTpkvz4449y9OhRSUpKMjVhtdwuYrufdjcst4vQD8A/LK8HtLtjuZ92dyz3W24HTA96AAAAAAAAcJW5b90CAAAAAADA2Bj0AAAAAAAA+ASDHgAAAAAAAJ9g0AMAAAAAAOATDHoAAAAAAAB8gkEPAAAAAACATzDoAQAAAAAA8AkGPQAAAAAAAD7BoAfwqaamJvE8Ty5cuOA6BQAAwAT2TwD8wFNVdR0B4L976KGHpKCgQLZs2SIiIkNDQ3L+/HmZOnWqeJ7nNg4AAOAmxP4JgB/Fuw4AMD4SExPljjvucJ0BAABgBvsnAH7Ar24BPrBmzRppbm6WrVu3iud54nme1NfXh1x6XF9fL+np6bJnzx6ZN2+epKSkyPLly6W/v1927Ngh2dnZMnnyZHn55ZdlZGQk+NqDg4NSVVUlmZmZMmnSJLn33nulqanJzRsFAACIEPZPAPyKK3oAH9i6daucPHlS8vPzpbq6WkREfvjhh+se19/fL9u2bZOGhga5ePGiVFRUyOOPPy7p6emyb98+6ejokCeeeEKKi4tl5cqVIiKybt06aWtrk4aGBpk2bZrs3r1bysrKpKWlRebOnRvV9wkAABAp7J8A+BWDHsAHbr31VklMTJSUlJTg5cYnTpy47nHDw8Oyfft2mT17toiILF++XD7++GP57bffJDU1VfLy8mTJkiVy8OBBWblypXR1dUldXZ10dXXJtGnTRESkqqpK9u/fL3V1dVJbWxu9NwkAABBB7J8A+BWDHiCGpKSkBDcpIiJTp06V7OxsSU1NDTl29uxZERFpaWmRkZERycnJCXmdwcFBycjIiE40AACAQ+yfAFjDoAeIIQkJCSF/9jxvzGOBQEBERPr6+iQuLk6+++47iYuLC3nctZsbAAAAv2L/BMAaBj2ATyQmJobcBDASFi5cKCMjI3L27FkpKSmJ6GsDAAC4xv4JgB/xrVuAT2RnZ8u3334rp06dknPnzgX/V+m/yMnJkaefflpWr14tn332mXR2dsqhQ4fkzTfflL1790agGgAAwB32TwD8iEEP4BNVVVUSFxcneXl5cvvtt0tXV1dEXreurk5Wr14tr7zyisybN08ee+wxOXz4sGRlZUXk9QEAAFxh/wTAjzxVVdcRAAAAAAAA+O+4ogcAAAAAAMAnGPQAAAAAAAD4BIMeAAAAAAAAn2DQAwAAAAAA4BMMegAAAAAAAHyCQQ8AAAAAAIBPMOgBAAAAAADwCQY9AAAAAAAAPsGgBwAAAAAAwCcY9AAAAAAAAPgEgx4AAAAAAACfYNADAAAAAADgE/8DJGqFFP1kZCYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig, (ax1, ax2) = plt.subplots(ncols=2, sharex=True, sharey=True, figsize=(14,5))\n", + "ax1.set_title(\"Soil Moisture\")\n", + "ax2.set_title(\"Soil Temperature\")\n", + "ax1.set_ylabel(\"depth (m)\")\n", + "ax2.set_ylabel(\"depth (m)\")\n", + "da_sm.plot(y=\"depth\", ax=ax1, cbar_kwargs={'label': \"volumetric moisture content (m3 m-3)\"})\n", + "da_t.plot(y=\"depth\", ax=ax2, cbar_kwargs={'label': \"temperature (deg C)\"})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is important to call `finalize()` on the model when you're done, otherwise the model will stay running in the background:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "model.finalize()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}