From 3d6838fdd5e3c8b718d003e958638e021de08af2 Mon Sep 17 00:00:00 2001
From: Jeanette Lee <jeanette.lee@stud.hslu.ch>
Date: Sun, 13 Mar 2022 17:02:20 +0000
Subject: [PATCH] MNIST Dataset

---
 ...Introduction to Image Classification.ipynb | 876 ++++++++++++++----
 1 file changed, 681 insertions(+), 195 deletions(-)

diff --git a/notebooks/Block_1/Exercises Block 1 - Introduction to Image Classification.ipynb b/notebooks/Block_1/Exercises Block 1 - Introduction to Image Classification.ipynb
index bd21818..dc55712 100644
--- a/notebooks/Block_1/Exercises Block 1 - Introduction to Image Classification.ipynb	
+++ b/notebooks/Block_1/Exercises Block 1 - Introduction to Image Classification.ipynb	
@@ -34,83 +34,35 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": null,
    "metadata": {
     "colab": {},
     "colab_type": "code",
     "id": "P7mUJVqcINSM"
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Collecting tensorflow_datasets\n",
-      "  Downloading tensorflow_datasets-4.1.0-py3-none-any.whl (3.6 MB)\n",
-      "\u001b[K     |████████████████████████████████| 3.6 MB 7.1 MB/s eta 0:00:01\n",
-      "\u001b[?25hCollecting future\n",
-      "  Downloading future-0.18.2.tar.gz (829 kB)\n",
-      "\u001b[K     |████████████████████████████████| 829 kB 43.0 MB/s eta 0:00:01\n",
-      "\u001b[?25hRequirement already satisfied, skipping upgrade: numpy in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.19.1)\n",
-      "Requirement already satisfied, skipping upgrade: requests>=2.19.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (2.23.0)\n",
-      "Collecting importlib-resources; python_version < \"3.9\"\n",
-      "  Downloading importlib_resources-3.3.0-py2.py3-none-any.whl (26 kB)\n",
-      "Collecting promise\n",
-      "  Downloading promise-2.3.tar.gz (19 kB)\n",
-      "Requirement already satisfied, skipping upgrade: typing-extensions; python_version < \"3.8\" in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (3.7.4.3)\n",
-      "Collecting dill\n",
-      "  Downloading dill-0.3.3-py2.py3-none-any.whl (81 kB)\n",
-      "\u001b[K     |████████████████████████████████| 81 kB 3.2 MB/s  eta 0:00:01\n",
-      "\u001b[?25hCollecting tensorflow-metadata\n",
-      "  Downloading tensorflow_metadata-0.25.0-py3-none-any.whl (44 kB)\n",
-      "\u001b[K     |████████████████████████████████| 44 kB 452 kB/s  eta 0:00:01\n",
-      "\u001b[?25hRequirement already satisfied, skipping upgrade: six in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.14.0)\n",
-      "Requirement already satisfied, skipping upgrade: tqdm in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (4.45.0)\n",
-      "Requirement already satisfied, skipping upgrade: termcolor in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.1.0)\n",
-      "Requirement already satisfied, skipping upgrade: attrs>=18.1.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (19.3.0)\n",
-      "Requirement already satisfied, skipping upgrade: protobuf>=3.6.1 in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (3.13.0)\n",
-      "Requirement already satisfied, skipping upgrade: absl-py in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (0.11.0)\n",
-      "Requirement already satisfied, skipping upgrade: idna<3,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (2.9)\n",
-      "Requirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (3.0.4)\n",
-      "Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (2020.6.20)\n",
-      "Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (1.25.9)\n",
-      "Requirement already satisfied, skipping upgrade: zipp>=0.4; python_version < \"3.8\" in /opt/conda/lib/python3.7/site-packages (from importlib-resources; python_version < \"3.9\"->tensorflow_datasets) (3.1.0)\n",
-      "Collecting googleapis-common-protos<2,>=1.52.0\n",
-      "  Downloading googleapis_common_protos-1.52.0-py2.py3-none-any.whl (100 kB)\n",
-      "\u001b[K     |████████████████████████████████| 100 kB 2.8 MB/s eta 0:00:01\n",
-      "\u001b[?25hRequirement already satisfied, skipping upgrade: setuptools in /opt/conda/lib/python3.7/site-packages (from protobuf>=3.6.1->tensorflow_datasets) (46.1.3.post20200325)\n",
-      "Building wheels for collected packages: future, promise\n",
-      "  Building wheel for future (setup.py) ... \u001b[?25ldone\n",
-      "\u001b[?25h  Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491058 sha256=9a3231d2200886eb11d4d6723c8b24559a8d03b36ed0756946cff540d3e4e86a\n",
-      "  Stored in directory: /home/jovyan/.cache/pip/wheels/56/b0/fe/4410d17b32f1f0c3cf54cdfb2bc04d7b4b8f4ae377e2229ba0\n",
-      "  Building wheel for promise (setup.py) ... \u001b[?25ldone\n",
-      "\u001b[?25h  Created wheel for promise: filename=promise-2.3-py3-none-any.whl size=21495 sha256=837ca263691051097e35d24a408853930691e949f9249c9ae00ecd6a856dcadb\n",
-      "  Stored in directory: /home/jovyan/.cache/pip/wheels/29/93/c6/762e359f8cb6a5b69c72235d798804cae523bbe41c2aa8333d\n",
-      "Successfully built future promise\n",
-      "Installing collected packages: future, importlib-resources, promise, dill, googleapis-common-protos, tensorflow-metadata, tensorflow-datasets\n",
-      "\u001b[31mERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.\n",
-      "\n",
-      "We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.\n",
-      "\n",
-      "tensorflow-metadata 0.25.0 requires absl-py<0.11,>=0.9, but you'll have absl-py 0.11.0 which is incompatible.\u001b[0m\n",
-      "Successfully installed dill-0.3.3 future-0.18.2 googleapis-common-protos-1.52.0 importlib-resources-3.3.0 promise-2.3 tensorflow-datasets-4.1.0 tensorflow-metadata-0.25.0\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
-    "!python3 -m pip install -U tensorflow_datasets"
+    "# !python3 -m pip install -U tensorflow_datasets"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "2022-03-13 16:23:35.199402: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n",
+      "2022-03-13 16:23:35.199498: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n"
+     ]
+    },
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "2.1.0\n"
+      "2.8.0\n"
      ]
     }
    ],
@@ -139,12 +91,12 @@
     "#  import tensorflow as tf\n",
     "#except Exception:\n",
     "#  pass\n",
-    "#print(tf.__version__)\n"
+    "#print(tf.__version__)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 2,
    "metadata": {
     "colab": {},
     "colab_type": "code",
@@ -154,7 +106,6 @@
    "source": [
     "from __future__ import absolute_import, division, print_function, unicode_literals\n",
     "\n",
-    "\n",
     "# Import TensorFlow Datasets\n",
     "import tensorflow as tf\n",
     "import tensorflow_datasets as tfds\n",
@@ -163,12 +114,12 @@
     "# Helper libraries\n",
     "import math\n",
     "import numpy as np\n",
-    "import matplotlib.pyplot as plt\n"
+    "import matplotlib.pyplot as plt"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 3,
    "metadata": {
     "colab": {},
     "colab_type": "code",
@@ -206,36 +157,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 4,
    "metadata": {
     "colab": {},
     "colab_type": "code",
     "id": "8BFIbPwFDDDc"
    },
    "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "\u001b[1mDownloading and preparing dataset mnist/3.0.1 (download: 11.06 MiB, generated: 21.00 MiB, total: 32.06 MiB) to /home/jovyan/tensorflow_datasets/mnist/3.0.1...\u001b[0m\n"
-     ]
-    },
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "WARNING:absl:Dataset mnist is hosted on GCS. It will automatically be downloaded to your\n",
-      "local data directory. If you'd instead prefer to read directly from our public\n",
-      "GCS bucket (recommended if you're running on GCP), you can instead pass\n",
-      "`try_gcs=True` to `tfds.load` or set `data_dir=gs://tfds-data/datasets`.\n",
-      "\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "\u001b[1mDataset mnist downloaded and prepared to /home/jovyan/tensorflow_datasets/mnist/3.0.1. Subsequent calls will reuse this data.\u001b[0m\n"
+      "2022-03-13 16:24:14.007446: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory\n",
+      "2022-03-13 16:24:14.007578: W tensorflow/stream_executor/cuda/cuda_driver.cc:269] failed call to cuInit: UNKNOWN ERROR (303)\n",
+      "2022-03-13 16:24:14.007687: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (jeanette-2-hslu-2ddeep-2dlearning-ab5bb95b-0): /proc/driver/nvidia/version does not exist\n",
+      "2022-03-13 16:24:14.022367: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 AVX512F FMA\n",
+      "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
      ]
     }
    ],
@@ -264,7 +201,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 5,
    "metadata": {
     "colab": {},
     "colab_type": "code",
@@ -273,7 +210,7 @@
    "outputs": [],
    "source": [
     "class_names = ['Zero', 'One', 'Two', 'Three', 'Four', 'Five',\n",
-    "               'Six',  'Seven',   'Eight',  'Nine']\n"
+    "               'Six',  'Seven',   'Eight',  'Nine']"
    ]
   },
   {
@@ -290,7 +227,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "metadata": {
     "colab": {},
     "colab_type": "code",
@@ -323,6 +260,34 @@
     "Let's plot an image to see what it looks like."
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "(28, 28, 1)\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "2022-03-13 16:24:26.137186: W tensorflow/core/kernels/data/cache_dataset_ops.cc:768] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Take a single image\n",
+    "for image, label in test_dataset.take(1):\n",
+    "  break\n",
+    "image = image.numpy()\n",
+    "print(image.shape)"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": 8,
@@ -332,9 +297,16 @@
     "id": "YghUhL-FDDD2"
    },
    "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "2022-03-13 16:24:27.740816: W tensorflow/core/kernels/data/cache_dataset_ops.cc:768] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.\n"
+     ]
+    },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
        "<Figure size 432x288 with 2 Axes>"
       ]
@@ -378,9 +350,16 @@
     "id": "X9_2qg5QDDD9"
    },
    "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "2022-03-13 16:24:32.220086: W tensorflow/core/kernels/data/cache_dataset_ops.cc:768] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.\n"
+     ]
+    },
     {
      "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAI8CAYAAAAazRqkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAABklklEQVR4nO3debzV0/4/8NdbA6UiqitTx6VBUmlAaFI3CVcUihKZ8lU/mcrUZK64IZqUkClDkS7K1OAidWimAZUhDYYUDar1+2Pvlvf6OHv3Oefseb2ej4eH1+d81v7slY+9z+qzJjHGgIiIiCjX7ZPuChARERGlAhs9RERE5AU2eoiIiMgLbPQQERGRF9joISIiIi+w0UNEREReKFmYwpUqVTJ5eXlJqgoVZNWqVdi4caMk+rq8l+mRn5+/0RhTOdHX5f1MPX42c0syPpu8l+kR714WqtGTl5eHefPmJaZWFEqjRo2Scl3ey/QQkdXJuC7vZ+rxs5lbkvHZ5L1Mj3j3kt1bRERE5AU2eoiIiMgLbPQQERGRF9joISIiIi+w0UNEREReYKOHiIiIvMBGDxEREXmBjR4iIiLyAhs9RERE5AU2eoiIiMgLbPQQERGRFwq195Zv1q5d6xz/9NNPNpcqVcrmmjVrpqxO2e6zzz5zjseOHWvzyJEjbW7fvr1Trk2bNqGuX7t2bZubN29ehBoSEVGu4pMeIiIi8gIbPUREROQFNnqIiIjICxzTE7By5UqbW7Zs6Zz74YcfbC5durTN1157rVPuP//5T5Jql53mz59v81lnneWcW7dunc0iYvPrr7/ulAsex1KxYkWb9ZieG2+80Sl3+OGH25yXlxfq2kRElN34pIeIiIi8wEYPEREReSGnurdmzZrlHF9wwQU2666Tyy+/3Ck3c+ZMm5csWWLz5s2bnXL6Gjt27LBZT7UGgAULFtj83nvvhap7LtHdWQBw3nnn2ay7s5Lh559/tvm1114rMAPAcccdZ/PFF19s88033+yU00sT+GTRokU2t2rVyjl39dVX23zPPfekrE7as88+6xy//PLLNj/55JM2H3zwwSmrE4Wnvweef/5551zw+2OPXr16OceNGjVKeL0o9/FJDxEREXmBjR4iIiLyQtZ3b/366682X3bZZc65DRs22Ky7poYMGRLzeocddpjN48aNi1lu4MCBNn/xxRfOuX333Tfm63zQrVs353j16tVpqklsuhvzjjvusDnY/fbwww+nqkoZZfz48TbrzxEAvPHGGzZfccUVzrmjjjoquRWLuu+++5xj/Rns0aOHzbrbi1Jr165dzrH+3tUzXHfv3u2U013Ump49CwDvvPNOcauYdfT/5zfccINz7rvvvrO5cePGzrnevXvbXK9eveRULkvwSQ8RERF5gY0eIiIi8gIbPUREROSFrBzT8+mnn9p855132hx27Ej37t2d43/+85826+nshxxySMxr9OvXL+a5o48+OlQ9KLZatWo5x3pF5v3228/mF154wSk3e/Zsm3/55RebP/roo1DvO2LECOfYGGPzQw895JwrWTIrPz4x6fFxenxAvHJ66YZk++abb2zeunVrzHLvvvtuKqpDBdDLdehxj4C7bIQefzlgwACn3BFHHGFz165dbf7ggw9C1+PHH3+0Od73eLZZv369zdOmTYtZTo9ZBNwlHqpXr25z06ZNQ71vu3btnOMyZcrYPGnSJJs7d+4c6nrBVfCrVasW6nWJwCc9RERE5AU2eoiIiMgLWfl8/s0337Q53qPs0047zWbdDaKnpReVnlapu0AA4KCDDir29bPN1KlTbS7qFPUqVarYrKdFA7G7DPv06RPzWN+j4KPxq666ymbdXbNz506n3PDhw20OThHNtY1KFy5caHO8qd66y6FmzZpJrZP2xBNP2Lxq1aqUvS/F9/HHH9ushwd89dVXTrmxY8cWWG6ffWL/3Xvo0KE2n3nmmc65/Px8mwcNGuScq1u3rs3pWjU8GU4++WSbg11Jwa5+TX+v6WnvweVWYhkzZkyocqNHjw5Vrnz58s6xnmKf7F0M+KSHiIiIvMBGDxEREXmBjR4iIiLyQlaO6dE7ZF944YU216lTxymnp7Mngu6T/u2332zWW1wAwEUXXZTQ980G3377rc36v01h6D7qREz712OrOnTo4JxbsWKFzbfffnuo651zzjnOsR53lAvje/Tu6ZlCT4EeOXJkqNfkwr3IJnpLiWXLltmsl5kAgH//+9+Fvvb+++9v8/fff++c07us33333c65G2+8sdDvlQ30FkdPPvmkc65///42B6ez6zE0EyZMsHnNmjXFrtPatWttDo7P+v333wt8zebNm53jBg0aFLseYfFJDxEREXmBjR4iIiLyQlZ2b11wwQUF5mR7/vnnbdYr0bZu3dopV6NGjZTVKVMk4nHy22+/bfOwYcOKfb149PRz3ZUWr2syuMppp06dbP7kk08SWLv00KvYZort27fbrJcWiOfRRx9NUm0IcFfGBoBXX33V5muuucbmYHdwWLrLpVevXjbrFdYBoEePHjbffPPNzjm9anuuCv4Z9Sr2wRXtteCOBMW1fPlym4NT4M877zyb9dIuwW6w4NCUZOKTHiIiIvICGz1ERETkhazs3kqVOXPmOMdLly4tsJxe3RfIvY0ow9i2bZvNwdlsYelVdvUGeQDQpUuXIl0zFj0LolWrVjafcsopTrl4G5XqP3M2Cm70GJxRsYfekBcArr322qTViTJfsBtUd1s0b97c5uD3gF4VWM/Ee//9951yupv7mGOOsVl3owFu1wmlj97A9NZbb3XOBXcr2OPBBx90jrt165b4isXAJz1ERETkBTZ6iIiIyAts9BAREZEX/Bt8sheLFi2yuV27ds45PWVW9123adMm6fXygZ6eHFx9NZn0ys0VK1ZM2fum2+rVq53j3bt3F1jujz/+cI6/++47mw877LDEV4wyml4lO6hSpUo2jxo1yjn3+OOP27x48WKbg5+5vn372qynrB988MGFrywl3YwZM2yePHlyzHJ6WRO9ZEiq8UkPEREReYGNHiIiIvJCxnZv6cefr732mnNOb/Q4d+7cmNfQ0+X09MkTTzzRKac3rnvhhRds/vnnn51yBx54oM0DBw60uUKFCjHr4IumTZvaPHv27GJfL9ZUx2R77LHHnOOpU6fGLBtrM8xsmdIdXMVWbxCpu3KDU5T1StR6umoybNq0qdCv0VPx9fRnAChdunSx6+S7jRs3xjx39tln2/znn38650444QSbn3rqKZv1/0+Au5wEZSa9+XZwyRZNd10megPwouKTHiIiIvICGz1ERETkhbR2b73yyis2jxgxwjmnR4THW+E37Oq/ulywSyxWF1nw2rqOzZo1C/W+vujcubPNH374YejX6a7GqlWr2nzFFVckpmKF9NVXXznHRfn/K1sEN/nTq0/r1W6XLVvmlNMrZ+ucKT744AOb9aaUAPDkk0+mujo5Yfr06TYPGTIkZjndfai7SwGgbdu2ia8YpYSesQkAjzzySKjXjRkzxuZMmRnLJz1ERETkBTZ6iIiIyAts9BAREZEXUj6mZ9KkSTZ37drV5h07djjlqlSp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fHmbr7zySpurVKnilNt3332LW0VKoy+++MI5bteunc2rVq2K+bpPPvnE5meeecbmnj17Jq5yWUp/Vy1btsw5N3r06GJfX4/JmTVrls3GGKecHgcS5ueAe18pfeKN1Zk5c2bqKpIAfNJDREREXmCjh4iIiLyQ091b+tH4hx9+aHO8x666e0RPXweAESNG2FyxYkWbe/fuXey6+uKee+5xju++++5Qr9P3TF/j9NNPd8q1bt26wNywYcNC1ZNSRy8h0bZtW+fcmjVrbL7mmmts7t+/v1Pu6KOPtll35xCwfv16m48//vg01iScsmXL2tyhQ4c01oTCmDFjRrqrUCh80kNEREReYKOHiIiIvJD13Vtffvmlzeeee65zTj8aj+fggw+2+YknnrC5ffv2Trkff/zR5s6dOxemml574YUXbNYrrALxZ26E8f7778c81jMOTjjhBKdcp06dbG7evLnN9erVK1Z9KJytW7farLuRg5/ZM8880+aHHnrI5v33398pd84559hcp06dhNWTUk93eV9++eVprAntkW0ztOLhkx4iIiLyAhs9RERE5AU2eoiIiMgLWTmmR6/q++ijj9q8YsWKUK+vVq2ac/yf//zH5uA4Hi24kjOFE3ZaeqLpHZ/nzJnjnNPHerXn4FitkSNHJql2fhs/frzNEydOtPmoo45yyr300ks2B8fxaIMHD7b58MMPT0QVc8ZBBx1kc/fu3Z1zYb/TGjRoYHNw1Ww9PissPS09+P1wySWXFPp6lHh6Knq8ael6l/VswCc9RERE5AU2eoiIiMgLWdG9paelA26X1qhRowp9vXgbF1Lx9erVyznW9y+4GnZYJUqUsPnQQw+1WU89B9xVuPVU9B9++MEpp7tUhg0bZnPw/6c33njD5smTJzvn9DT4kiWz4qOUNnPnznWO9TR13f3y8ssvO+XKlSsX6vrBbjH6i15lXn93AkC3bt1CXaN+/fo2B1c3X7lyZbHqwWnpmSnbVloOi096iIiIyAts9BAREZEX2OghIiIiL2TFQIRgn3HYcTxt2rSxuWfPngmtE7k2b95s86xZs5xz8baaqFChgs16fEF+fr5T7owzzrC5X79+ha6fHgcEuGNKqlatavPFF1/slNM7gJ988snOuREjRtisdwCnvxs+fLhzvGPHDptPOeUUm4PjRSixypQp4xyfdtppoV6nx+CE3d6nVKlSzrFe/iHsWCLKfHq7n2zAJz1ERETkBTZ6iIiIyAtZ0b2lV0yO58ADD3SO77//fpuDu2xTYk2aNMnmxYsXh36dXo01ONU9VfS09ylTpjjn9NT2oDfffNNmdm/93aeffmrzc88955yrUaOGzc8//3zK6kTh6S7Jvn372qy7JuMZN26cc9ylS5fEVIxSYtCgQTHPtWjRInUVSTA+6SEiIiIvsNFDREREXsiK7q2vv/46VLlnnnnGOWaXVnLpVY7Dzo4LzqK68sorE1qn4jrkkENCl9UzuyhCd33oGTq7d+92ynXt2tVmveHrtm3bYl5Pz/SjxHvsscec4z59+tgctktLY3dW9gk7E+uDDz5IbkWSiE96iIiIyAts9BAREZEX2OghIiIiL2TsmB493Xz16tWhXtOsWbNQ5YJTqmfPnl1guWnTpjnHr7/+eoHl2rdv7xzrac6lS5cOVads9P7779v8+++/h3qNHr8B/H2F2HTbsmWLcxxvV/imTZsmuzpZRy9d8OWXX8Yst3z5cpv1Duk7d+50yunj/fbbz+bOnTs75fT02uBKwBTb5MmTbX788cedc0UZx6Pdd999znGsldnPO+8857hWrVrFel8qunjT1HMFn/QQERGRF9joISIiIi9kTPdW8LG23tQu3oaVvXv3tnn//fd3zi1YsMBmvSHmhRde6JT78ccfQ9UxVj2C3V562m0ud2999tlnNse7R9rVV1+drOoU2dSpU20eO3ascy7en2ufffh3hqC5c+eGKjdhwgSb9913X5uDSxjo7s+nn37aZt39DQBt27a1OWw3t49WrFjhHHfo0CFp73XHHXc4x7E+S8FyF110kc133XWXzdWrV09g7chX/NYmIiIiL7DRQ0RERF7ImO6t4Oyf0aNHh3rdAQccYLOeTQS4K4Ju2LDB5uCMnFiPXfVjd8Dtgtu1a1eo+pFLb+6ZKfTGoYVxzDHHJLgm2eePP/5wjsP+t8zLy7P53nvvtfniiy+O+Zrzzz/f5lNOOcU5pzd8zc/Pt7ls2bKh6uOrsN3SqXyvl156yeY5c+bYrGeaAcBxxx1nc8mSGfOrLKuEXYF5wIABya1ICvFJDxEREXmBjR4iIiLyAhs9RERE5IWs7whN9AqS5557rs09evRwzulxA3pKva8+//zzUOUaNmxoc9WqVZNVnULRU2HHjRsX6jU1atRwjjNxfFKqvfHGG85xrFWYDz/8cOf4nXfesTns2KhGjRrFPKffV6+qzTE9rn/84x/OsV41efz48c45PV7rt99+s3n79u1OOf3fuHLlyjYHx07qcZWbNm0KVV+9Gn+DBg2cc5988onNjRs3DnU9AmbMmGFz2N+fYcf+ZAM+6SEiIiIvsNFDREREXsj67q2iOPvss53j6667zma9cvN///tfp9wPP/xQ4PWCG+T5Mn1SPyaNNx01EzbmXLRokXM8atQom//880+bg4/k9bIFzz33nHNOL5fgq7Vr14Yqd+aZZzrHnO6fHhUqVHCO+/btW2AG3JXqV61aZfOvv/7qlDvkkENsrl+/fsz3nj9/vs165e5hw4Y55ZYtWxbzGppelVtv8gxw09l49Pd2PLk0TV3jkx4iIiLyAhs9RERE5IWc7ofRm33eeOONNt92221OuenTp9usN7uLp2bNmjYHZ7D4MmNEd2ll4sacuksr2KW5bt06m3Xdg6twP/zwwzYHZ49QeB07diz2NeJtDKxX5y1fvnyx34vcbiudi0p3fel81llnOeVatGhh81dffRXzenqj559//tk5F5ylRn+ZOXNmqHL6PuQSPukhIiIiL7DRQ0RERF5go4eIiIi8kNNjeg488MACf37BBRc4x3pMT1gPPfSQzUcffXShX58L9ArFK1asSGNN/qJXWtbT0vUYnniGDx/uHF955ZWJqViOOvjgg0OVO/3004t0/Z07d9rcrVu3mOUuvfRSm8uUKVOk98pVegXlV1991Tk3evRom4844gjnXO/evW2Otxp2USxcuNDmIUOGOOfijePRdH31+E36Oz1NPeyUdY7pISIiIspibPQQERGRFzKmeyu4Em4irF+/3uYHHngg5nvFmm5dp04d5/jiiy+2uU2bNomoYlZr166dzY888kjK3nfq1Kk233PPPc45vQmqXmk53pT6kSNH2szurMIJ+znQG1YCwEEHHVRgOX3PAGDSpEk2f/DBBzYHNzC9/vrrQ9XDR0OHDrW5MKvs6hXpjzrqKJvr1avnlNPfA5rezBRwP4PfffedzT/99FPoOmnPP/+8zRUrVizSNXwRtkvLB3zSQ0RERF5go4eIiIi8kDHdW+XKlXOOZ82aZXPw0bXuwki0eCstV6tWLWnvm430yrfxuieDXRux/PHHHzYHH3nffffdNo8dOzbU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5JE2Dxo0yCmnp6lnum3btjnH++23X5pqkj6tWrWyOdjPnypbtmxxjmfMmGFzro/p0Std67EURVWUsXN6fEjwWN+be++91ylXtWrVQr8XuX7//XfnuGvXrjbr6ebB+xocu7O3nxfm3KWXXmrzGWec4ZSrXLlyzGuQ64svvrD52muvtXn27NlOuVj3JbhTQZ06dWw+99xzbT711FOdcqeccorNeoxtcEyPVqZMmZjnEoFPeoiIiMgLbPQQERGRFzKme2vdunXOsZ7qtmDBAufcYYcdZrN+/J2IR/KppKf3Bh/Xf/7556muTlp8/fXXNgenRqdD8DHuySefnKaapN7ChQuLfQ3d9VGuXDmb8/LynHKxui937NgR89p6dWzdrQ0AAwcODF9JKlBwKrpekTfWdPOgDh062Ky7PQC3iyxed5mmz+nXAMDVV18d83W+01PAAWD06NE266noQXp3Av07qXbt2k65008/PVQ9Nm3aZHNwtXutdOnSNgc3m040PukhIiIiL7DRQ0RERF5go4eIiIi8kDFjem677TbnWI/jCU4Vnjt3rs26LzBT6Km/wal5ejuMpUuX2qyn4ecyPY4JAP7f//t/NutlChLt+OOPd45jLW0enLb7ySef2HziiScmvmIZ5IQTTrC5U6dONi9evNgpV7LkX18bPXr0cM7985//tLl169ah3ldvP3Leeec556ZPn17ga4JT2/XWND4u91BUehxdcFxhrC0lgvfo1VdfDfVejzzySIHXC4p3jmLTY3X0GJ7gOa1du3bOsd52J+y4nXguvPBCm7/99tuY5fQ4Hj0uLBn4pIeIiIi8wEYPEREReSFjurfOOuss5/itt96yOfh4XU9n79evn80tW7ZMaJ30dDsA+OWXX2x+9tlnbX7ppZeccvpxffAaV155pc1PPvmkzfXq1SteZTOYfrTav39/51xxu7Quvvhi5zjWdMcSJUo4x2eeeabN8R67Pv744zbrrrhcpP8bPf/88yl7X70C64svvuic012KK1eutHnOnDlOuQcffNBmvRs7xaenqQenjutj3aU1YcKEYr9v2Cnw+tz5559f7PfNZXrZl3jT0nW3s16WAPj792RhffDBB87xrFmzCiwXXMKiS5cuxXrfwuCTHiIiIvICGz1ERETkhYzp3gqO2D766KNt1hukAe4jtPz8fJu7devmlOvTp4/Nhx9+uM3BGTp6RtHTTz9tc/AR4apVq2zWK8IGR7kfe+yxNnfv3t05V6lSJfimffv2Nn/55ZfFvt7BBx9ss77HwN9nacXSrFkzm5977rmY5fSK0cHH+npDRkqMAw880Dlu3ry5zbp7K+i///2vzXomaHEf1/sk7IwqvXllkF41OTirS6/CHfa99OxXH787k0F/9yXi86FnfD322GPOuZ07d9pcvXp1m/XwFcCd9ZlsfNJDREREXmCjh4iIiLzARg8RERF5IWPG9ATVr1/f5tmzZzvnHnjgAZufeOIJm4cPH+6U08d6StyUKVOccr/99pvNekyBnl4OuOOOfNp9u7CCU/gTMY6ncePGNusdtYOrdceyevVq5zjWSr9BenXfRKxQSoXTpEkTm8eNGxeznJ7Cvnv3bps5pie8eFPWX3vtNZuD05z1GJxYqzgXdP1YP9fT42vVqrWXWtMeDRo0sDm40vKbb75ps17eoU2bNk65WKvO6yVaAHfcnF6WRY/hCdJjIFM5hieIT3qIiIjIC2z0EBERkRcytntL27Jli3OsNzHTU4rHjx8f8xrBx3OxrnfDDTfYzC6s8PRKugMGDHDO6Q1YwwqutDxy5Eiby5cvX+jr6emyALBhw4ZQr9PdI4cddlih35dSQy+LwC6t8HT3UXBzZK0oG4SGfU3lypWdc2E3MCWX3nw72O2vu7f0cA49VARwl4cZNmyYzf/73/+ccps3by6wDnqpGcBdDiRTdh3gkx4iIiLyAhs9RERE5IWM7d7SszGuv/76mOf22eevdlvFihWdcp06dbJZd2dMmjTJKTdjxgyb9QamFN6aNWtsXrFiRZGuMXbsWJsvuOAC51xRurQ+/PBDm4OrdYd16aWXFul1lBjbt28PVe6QQw6xWX8nUHx6lXHdtQ8AS5cutbl27doxr6HLxfucxZq9dfvtt++1nlQ4wU139abdU6dOtVnPyivoOBbdlaZncgU3Dg12d2UCfjsQERGRF9joISIiIi+w0UNEREReyNgxPTfffLPNegwP4Pbf33rrrTYHx/7EctdddznHeop1q1atbA6u2pspU+5yiV4BW694XJQxPIA7jkePC1q3bl2o11eoUME57t27d5HqQYkxZsyYUOWqVKmS5JrkPr2ib0HHsegxknoqerwp62eccYbNYb+3Kb4dO3bYHBxXWdxV8YPjrvQK+eeee26xrp1qfNJDREREXmCjh4iIiLyQMd1bDz30kHP80Ucf2Rycgqo3GT377LML/V533HGHc/zee+/ZPGvWLJuDqzizeyvx9P3Ly8sL9Rq9eWhwpWU9ZTZsl5amp2IC6d0Yz0fr1693jn/99dcCy/3jH/9wjq+66qpkVYn24r777rM51rT04Dk9VZ6KRk9DB4B77rnH5uCmz7GUKlXKOY61en6LFi2c49atW4e6fibikx4iIiLyAhs9RERE5IWM6d4KrgS5e/dum/XKykDRurS04IaEJUsW/J8h2L3Vp08fm4Ob5FHR6M1k9aNVPRMBcDe869q1q81hNw4NK7iqN6XWM8884xzrrkytUaNGzjE3g00d/fkDwm84es0119hcqVKlxFfMM+PGjXOO43Vp7bvvvjbr32MHHHCAU07Pmtbef/9955jdW0REREQZjo0eIiIi8gIbPUREROSFjBnTE9yNVa+sm65xFsEp6hzHk3h6LNfFF19s86ZNm5xy7777btLqcPnll9t8yy23JO19qGD6Xj/22GMxy+lxCbxPqfXFF1/YHBx/qaei6xz8vuSyAsXXq1cvm0eNGhWznP4uDZYtV66czY888kio93377bedY71MQbbhkx4iIiLyAhs9RERE5IWM6d466aSTnOOnn37a5kRMS9ablganoutVmPUUvjvvvLPY70vhvfrqq0m79lFHHeUc6+4RvdporVq1klYHKpj+rK9ZsyZmuWbNmhWYKfl098bvv//unIs1Zf2SSy5xjsNuYEqxTZw40eZdu3Y55+rXr2/z6NGjnXP7779/sd63bt26xXp9JuGTHiIiIvICGz1ERETkhYzp3tIbRQLAO++8Y/OkSZOcc6effnqBObhZ2osvvmjzypUrbdarPQPu5oX68eFpp50Wqu4EtGrVyubgaqs//fSTzbEehSeD7tIKzj6oXr16yupBf/fZZ5/ZHLYb+ZxzzklWdWgv9IytsJuK3n777cmsEgXo2Y1hu7NWrVoVqlyXLl2KUqWMxCc9RERE5AU2eoiIiMgLbPQQERGRFzJmTE/ZsmWdYz2tPLjz8uDBg23u169fqOvrnYH11D7AXZGXu2wXTcOGDW1ev369c06vsjtgwADn3C+//BLq+iVKlLBZj8kqVaqUU+6yyy6zWe8YfMwxx4R6H0qNadOm2bxly5aY5Q499FCbr7zyyqTW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9zI9RGR1Mq7L+5l6/GzmlmR8Nnkv0yPevWT3FhEREXmBjR4iIiLyAhs9RERE5AU2eoiIiMgLbPQQERGRFwo1eytXTZ8+3ebHHnvM5nfeeccp97///c/mBg0aJL9iVKBVq1bZ3LlzZ+fc7bffbvM555yTqioREVEW4JMeIiIi8gIbPUREROQFL7u33n33Xee4ffv2Nh9zzDE2L1y40ClXvXr1pNaLYtu2bZvNXbt2tfnYY491yp111lkpqxMRUbps3rzZOR46dKjNb7zxhnNu/vz5NlepUsXma665xil36KGH2nzFFVfYXKpUqWLVNZPwSQ8RERF5gY0eIiIi8oI33VvfffedzR07dnTOnX766TaPHz/e5sqVE74vJBXRhAkTbN64caPNb731llNun33Yjk+0lStXOse6q/Hrr792zr3++us2689S0IEHHmhzv379bL7kkkuccvpRPCWe/l688MILnXMff/xxga858cQTneOzzz7bZn3/jjjiCKdcLnWRpMv27dttbtWqlXMu3h5fIn/ti7thwwab77nnnpivuf/++20OzpK98sorbdZDQrIBf0MQERGRF9joISIiIi+w0UNEREReyOkxPfn5+Tb37NnT5mD/5MiRI1NWJwonOI7klltusfm2226zuVy5cimrU67TY2v06uPBsQJbtmyxWY8VAIB9993XZj1GZNq0aU65X3/91eabb77ZZj12CwA+++yzMFWnImrXrp3Ny5cvd87VrFnT5nXr1tk8d+5cp5w+HjBggM3BMSfjxo2z+cgjjyxijf2mP2/B8W7VqlWzuXfv3jGvocf0jB492jmnp8F/++23Ng8ZMsQp99JLL9msP9vZsKwLn/QQERGRF9joISIiIi/kdPfWsGHDbNZT/didlfn69+/vHNeuXdtm3R1CRRfsQnziiSds1o/Ag/Rj9Msvv9w5V7ZsWZv16tgzZswIVaetW7eGKkeJcdddd9kcXOFXd31t2rTJ5uAqvu+9916B1w7+/KSTTrL5hRdesLlFixbhK+y50qVL2zx16tRiXy84ZV1fc/DgwTYHu7j1ps833HCDzZMnT3bKZeIyBXzSQ0RERF5go4eIiIi8kPXdW7/88ovNvXr1cs5NmTLF5kGDBqWsTlQ0H374oc2vvvqqc27p0qU2lyhRImV1ymXBlVTvvvtum3v06GHzQw895JQ755xzbD766KOdc7obpG7dujbH6y5r0qSJzbG6Sig59GbLQWvWrLG5b9++NgfvUYUKFWzW3dA//fSTU07PDjvzzDNtHj58uFNOr/ZLqaVX19Y52AU5a9Ysm998802bly1b5pSrU6dOgmtYfHzSQ0RERF5go4eIiIi8wEYPEREReSErx/Ts2rXL5iuuuMLm4I7bTz31lM0XXXRR0utFxTNixAibg6tmB8eOUOLp6eennnqqzcH/9nrV5SC9NITewTuetm3bhro2Jdeff/7pHA8dOtRmPcbusMMOc8o9/vjjNv/73/+OeX29+q9eVV1PjQaA448/3mY9zZ3S56CDDkp3FRKGT3qIiIjIC2z0EBERkReysnvrqquusvm1116z+YEHHnDKsUsr8+kVPCdOnGgzpy6nXsmSf30d6KnHhaE3QdQrPF933XVOuW3bttmsNzddv359zOtRcgVXqtfdVpqeogy43VHx6JWcv/rqK5sffPBBp5zu7pw/f77NeiVwSq1DDjkk3VVIGD7pISIiIi+w0UNEREReYKOHiIiIvJAVY3q6dOniHD/33HM26+XR+/Tpk7I6UWLosR3HHXeczU2bNk1HdSiBunfvbvOSJUucc8OGDbN5+vTpNp9++ulOuccee8xm7sadeGPGjLF5wIABzjm93ct9991ns/6cFpXe3Tu4XcX48eNt1uN73n33XadccOo8JdbixYttfuWVV2KWO/DAA20uW7ZsMquUEHzSQ0RERF5go4eIiIi8kLHdW3pH3tdff905d8kll9h81113paxOlHh6t94LL7zQZu6knluCO7Ufe+yxNt9yyy02f/HFF065WLtxcyfuxNDdh5s2bXLO6dWQ9T1KhNKlS9s8btw455zu7poyZYrNutsLAO68886E1omAzZs326y7NDdu3BjzNV27drX5n//8Z3IqlkB80kNEREReYKOHiIiIvJCx3Vt61H5wI7zbb7/dZv2YNBF0t5p+tBrUsmVLmxs2bJjQOvjk448/trljx46Ffv2nn37qHOvuzpkzZ9oc7C6bNm2azdzUMPV095T+rOsZX4C7Mrde0Xeffdy/rwVfRwXbsGGDc6y7M4LOP//8ZFenQP369bNZfwcHV4hu166dzQ0aNEh+xTygf7e++OKLMcvpoQh6Jl424JMeIiIi8gIbPUREROQFNnqIiIjICxk7puebb76xOdiX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\n",
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAI8CAYAAAAazRqkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABklklEQVR4nO3debzV0/4/8NdbA6UiqitTx6VBUmlAaFI3CVcUihKZ8lU/mcrUZK64IZqUkClDkS7K1OAidWimAZUhDYYUDar1+2Pvlvf6OHv3Oefseb2ej4eH1+d81v7slY+9z+qzJjHGgIiIiCjX7ZPuChARERGlAhs9RERE5AU2eoiIiMgLbPQQERGRF9joISIiIi+w0UNEREReKFmYwpUqVTJ5eXlJqgoVZNWqVdi4caMk+rq8l+mRn5+/0RhTOdHX5f1MPX42c0syPpu8l+kR714WqtGTl5eHefPmJaZWFEqjRo2Scl3ey/QQkdXJuC7vZ+rxs5lbkvHZ5L1Mj3j3kt1bRERE5AU2eoiIiMgLbPQQERGRF9joISIiIi+w0UNEREReYKOHiIiIvMBGDxEREXmBjR4iIiLyAhs9RERE5AU2eoiIiMgLbPQQERGRFwq195Zv1q5d6xz/9NNPNpcqVcrmmjVrpqxO2e6zzz5zjseOHWvzyJEjbW7fvr1Trk2bNqGuX7t2bZubN29ehBoSEVGu4pMeIiIi8gIbPUREROQFNnqIiIjICxzTE7By5UqbW7Zs6Zz74YcfbC5durTN1157rVPuP//5T5Jql53mz59v81lnneWcW7dunc0iYvPrr7/ulAsex1KxYkWb9ZieG2+80Sl3+OGH25yXlxfq2kRElN34pIeIiIi8wEYPEREReSGnurdmzZrlHF9wwQU2666Tyy+/3Ck3c+ZMm5csWWLz5s2bnXL6Gjt27LBZT7UGgAULFtj83nvvhap7LtHdWQBw3nnn2ay7s5Lh559/tvm1114rMAPAcccdZ/PFF19s88033+yU00sT+GTRokU2t2rVyjl39dVX23zPPfekrE7as88+6xy//PLLNj/55JM2H3zwwSmrE4Wnvweef/5551zw+2OPXr16OceNGjVKeL0o9/FJDxEREXmBjR4iIiLyQtZ3b/366682X3bZZc65DRs22Ky7poYMGRLzeocddpjN48aNi1lu4MCBNn/xxRfOuX333Tfm63zQrVs353j16tVpqklsuhvzjjvusDnY/fbwww+nqkoZZfz48TbrzxEAvPHGGzZfccUVzrmjjjoquRWLuu+++5xj/Rns0aOHzbrbi1Jr165dzrH+3tUzXHfv3u2U013Ump49CwDvvPNOcauYdfT/5zfccINz7rvvvrO5cePGzrnevXvbXK9eveRULkvwSQ8RERF5gY0eIiIi8gIbPUREROSFrBzT8+mnn9p855132hx27Ej37t2d43/+85826+nshxxySMxr9OvXL+a5o48+OlQ9KLZatWo5x3pF5v3228/mF154wSk3e/Zsm3/55RebP/roo1DvO2LECOfYGGPzQw895JwrWTIrPz4x6fFxenxAvHJ66YZk++abb2zeunVrzHLvvvtuKqpDBdDLdehxj4C7bIQefzlgwACn3BFHHGFz165dbf7ggw9C1+PHH3+0Od73eLZZv369zdOmTYtZTo9ZBNwlHqpXr25z06ZNQ71vu3btnOMyZcrYPGnSJJs7d+4c6nrBVfCrVasW6nWJwCc9RERE5AU2eoiIiMgLWfl8/s0337Q53qPs0047zWbdDaKnpReVnlapu0AA4KCDDir29bPN1KlTbS7qFPUqVarYrKdFA7G7DPv06RPzWN+j4KPxq666ymbdXbNz506n3PDhw20OThHNtY1KFy5caHO8qd66y6FmzZpJrZP2xBNP2Lxq1aqUvS/F9/HHH9ushwd89dVXTrmxY8cWWG6ffWL/3Xvo0KE2n3nmmc65/Px8mwcNGuScq1u3rs3pWjU8GU4++WSbg11Jwa5+TX+v6WnvweVWYhkzZkyocqNHjw5Vrnz58s6xnmKf7F0M+KSHiIiIvMBGDxEREXmBjR4iIiLyQlaO6dE7ZF944YU216lTxymnp7Mngu6T/u2332zWW1wAwEUXXZTQ980G3377rc36v01h6D7qREz712OrOnTo4JxbsWKFzbfffnuo651zzjnOsR53lAvje/Tu6ZlCT4EeOXJkqNfkwr3IJnpLiWXLltmsl5kAgH//+9+Fvvb+++9v8/fff++c07us33333c65G2+8sdDvlQ30FkdPPvmkc65///42B6ez6zE0EyZMsHnNmjXFrtPatWttDo7P+v333wt8zebNm53jBg0aFLseYfFJDxEREXmBjR4iIiLyQlZ2b11wwQUF5mR7/vnnbdYr0bZu3dopV6NGjZTVKVMk4nHy22+/bfOwYcOKfb149PRz3ZUWr2syuMppp06dbP7kk08SWLv00KvYZort27fbrJcWiOfRRx9NUm0IcFfGBoBXX33V5muuucbmYHdwWLrLpVevXjbrFdYBoEePHjbffPPNzjm9anuuCv4Z9Sr2wRXtteCOBMW1fPlym4NT4M877zyb9dIuwW6w4NCUZOKTHiIiIvICGz1ERETkhazs3kqVOXPmOMdLly4tsJxe3RfIvY0ow9i2bZvNwdlsYelVdvUGeQDQpUuXIl0zFj0LolWrVjafcsopTrl4G5XqP3M2Cm70GJxRsYfekBcArr322qTViTJfsBtUd1s0b97c5uD3gF4VWM/Ee//9951yupv7mGOOsVl3owFu1wmlj97A9NZbb3XOBXcr2OPBBx90jrt165b4isXAJz1ERETkBTZ6iIiIyAts9BAREZEX/Bt8sheLFi2yuV27ds45PWVW9123adMm6fXygZ6eHFx9NZn0ys0VK1ZM2fum2+rVq53j3bt3F1jujz/+cI6/++47mw877LDEV4wyml4lO6hSpUo2jxo1yjn3+OOP27x48WKbg5+5vn372qynrB988MGFrywl3YwZM2yePHlyzHJ6WRO9ZEiq8UkPEREReYGNHiIiIvJCxnZv6cefr732mnNOb/Q4d+7cmNfQ0+X09MkTTzzRKac3rnvhhRds/vnnn51yBx54oM0DBw60uUKFCjHr4IumTZvaPHv27GJfL9ZUx2R77LHHnOOpU6fGLBtrM8xsmdIdXMVWbxCpu3KDU5T1StR6umoybNq0qdCv0VPx9fRnAChdunSx6+S7jRs3xjx39tln2/znn38650444QSbn3rqKZv1/0+Au5wEZSa9+XZwyRZNd10megPwouKTHiIiIvICGz1ERETkhbR2b73yyis2jxgxwjmnR4THW+E37Oq/ulywSyxWF1nw2rqOzZo1C/W+vujcubPNH374YejX6a7GqlWr2nzFFVckpmKF9NVXXznHRfn/K1sEN/nTq0/r1W6XLVvmlNMrZ+ucKT744AOb9aaUAPDkk0+mujo5Yfr06TYPGTIkZjndfai7SwGgbdu2ia8YpYSesQkAjzzySKjXjRkzxuZMmRnLJz1ERETkBTZ6iIiIyAts9BAREZEXUj6mZ9KkSTZ37drV5h07djjlqlSp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fHmbr7zySpurVKnilNt3332LW0VKoy+++MI5bteunc2rVq2K+bpPPvnE5meeecbmnj17Jq5yWUp/Vy1btsw5N3r06GJfX4/JmTVrls3GGKecHgcS5ueAe18pfeKN1Zk5c2bqKpIAfNJDREREXmCjh4iIiLyQ091b+tH4hx9+aHO8x666e0RPXweAESNG2FyxYkWbe/fuXey6+uKee+5xju++++5Qr9P3TF/j9NNPd8q1bt26wNywYcNC1ZNSRy8h0bZtW+fcmjVrbL7mmmts7t+/v1Pu6KOPtll35xCwfv16m48//vg01iScsmXL2tyhQ4c01oTCmDFjRrqrUCh80kNEREReYKOHiIiIvJD13Vtffvmlzeeee65zTj8aj+fggw+2+YknnrC5ffv2Trkff/zR5s6dOxemml574YUXbNYrrALxZ26E8f7778c81jMOTjjhBKdcp06dbG7evLnN9erVK1Z9KJytW7farLuRg5/ZM8880+aHHnrI5v33398pd84559hcp06dhNWTUk93eV9++eVprAntkW0ztOLhkx4iIiLyAhs9RERE5AU2eoiIiMgLWTmmR6/q++ijj9q8YsWKUK+vVq2ac/yf//zH5uA4Hi24kjOFE3ZaeqLpHZ/nzJnjnNPHerXn4FitkSNHJql2fhs/frzNEydOtPmoo45yyr300ks2B8fxaIMHD7b58MMPT0QVc8ZBBx1kc/fu3Z1zYb/TGjRoYHNw1Ww9PissPS09+P1wySWXFPp6lHh6Knq8ael6l/VswCc9RERE5AU2eoiIiMgLWdG9paelA26X1qhRowp9vXgbF1Lx9erVyznW9y+4GnZYJUqUsPnQQw+1WU89B9xVuPVU9B9++MEpp7tUhg0bZnPw/6c33njD5smTJzvn9DT4kiWz4qOUNnPnznWO9TR13f3y8ssvO+XKlSsX6vrBbjH6i15lXn93AkC3bt1CXaN+/fo2B1c3X7lyZbHqwWnpmSnbVloOi096iIiIyAts9BAREZEX2OghIiIiL2TFQIRgn3HYcTxt2rSxuWfPngmtE7k2b95s86xZs5xz8baaqFChgs16fEF+fr5T7owzzrC5X79+ha6fHgcEuGNKqlatavPFF1/slNM7gJ988snOuREjRtisdwCnvxs+fLhzvGPHDptPOeUUm4PjRSixypQp4xyfdtppoV6nx+CE3d6nVKlSzrFe/iHsWCLKfHq7n2zAJz1ERETkBTZ6iIiIyAtZ0b2lV0yO58ADD3SO77//fpuDu2xTYk2aNMnmxYsXh36dXo01ONU9VfS09ylTpjjn9NT2oDfffNNmdm/93aeffmrzc88955yrUaOGzc8//3zK6kTh6S7Jvn372qy7JuMZN26cc9ylS5fEVIxSYtCgQTHPtWjRInUVSTA+6SEiIiIvsNFDREREXsiK7q2vv/46VLlnnnnGOWaXVnLpVY7Dzo4LzqK68sorE1qn4jrkkENCl9UzuyhCd33oGTq7d+92ynXt2tVmveHrtm3bYl5Pz/SjxHvsscec4z59+tgctktLY3dW9gk7E+uDDz5IbkWSiE96iIiIyAts9BAREZEX2OghIiIiL2TsmB493Xz16tWhXtOsWbNQ5YJTqmfPnl1guWnTpjnHr7/+eoHl2rdv7xzrac6lS5cOVads9P7779v8+++/h3qNHr8B/H2F2HTbsmWLcxxvV/imTZsmuzpZRy9d8OWXX8Yst3z5cpv1Duk7d+50yunj/fbbz+bOnTs75fT02uBKwBTb5MmTbX788cedc0UZx6Pdd999znGsldnPO+8857hWrVrFel8qunjT1HMFn/QQERGRF9joISIiIi9kTPdW8LG23tQu3oaVvXv3tnn//fd3zi1YsMBmvSHmhRde6JT78ccfQ9UxVj2C3V562m0ud2999tlnNse7R9rVV1+drOoU2dSpU20eO3ascy7en2ufffh3hqC5c+eGKjdhwgSb9913X5uDSxjo7s+nn37aZt39DQBt27a1OWw3t49WrFjhHHfo0CFp73XHHXc4x7E+S8FyF110kc133XWXzdWrV09g7chX/NYmIiIiL7DRQ0RERF7ImO6t4Oyf0aNHh3rdAQccYLOeTQS4K4Ju2LDB5uCMnFiPXfVjd8Dtgtu1a1eo+pFLb+6ZKfTGoYVxzDHHJLgm2eePP/5wjsP+t8zLy7P53nvvtfniiy+O+Zrzzz/f5lNOOcU5pzd8zc/Pt7ls2bKh6uOrsN3SqXyvl156yeY5c+bYrGeaAcBxxx1nc8mSGfOrLKuEXYF5wIABya1ICvFJDxEREXmBjR4iIiLyAhs9RERE5IWs7whN9AqS5557rs09evRwzulxA3pKva8+//zzUOUaNmxoc9WqVZNVnULRU2HHjRsX6jU1atRwjjNxfFKqvfHGG85xrFWYDz/8cOf4nXfesTns2KhGjRrFPKffV6+qzTE9rn/84x/OsV41efz48c45PV7rt99+s3n79u1OOf3fuHLlyjYHx07qcZWbNm0KVV+9Gn+DBg2cc5988onNjRs3DnU9AmbMmGFz2N+fYcf+ZAM+6SEiIiIvsNFDREREXsj67q2iOPvss53j6667zma9cvN///tfp9wPP/xQ4PWCG+T5Mn1SPyaNNx01EzbmXLRokXM8atQom//880+bg4/k9bIFzz33nHNOL5fgq7Vr14Yqd+aZZzrHnO6fHhUqVHCO+/btW2AG3JXqV61aZfOvv/7qlDvkkENsrl+/fsz3nj9/vs165e5hw4Y55ZYtWxbzGppelVtv8gxw09l49Pd2PLk0TV3jkx4iIiLyAhs9RERE5IWc7ofRm33eeOONNt92221OuenTp9usN7uLp2bNmjYHZ7D4MmNEd2ll4sacuksr2KW5bt06m3Xdg6twP/zwwzYHZ49QeB07diz2NeJtDKxX5y1fvnyx34vcbiudi0p3fel81llnOeVatGhh81dffRXzenqj559//tk5F5ylRn+ZOXNmqHL6PuQSPukhIiIiL7DRQ0RERF5go4eIiIi8kNNjeg488MACf37BBRc4x3pMT1gPPfSQzUcffXShX58L9ArFK1asSGNN/qJXWtbT0vUYnniGDx/uHF955ZWJqViOOvjgg0OVO/3004t0/Z07d9rcrVu3mOUuvfRSm8uUKVOk98pVegXlV1991Tk3evRom4844gjnXO/evW2Otxp2USxcuNDmIUOGOOfijePRdH31+E36Oz1NPeyUdY7pISIiIspibPQQERGRFzKmeyu4Em4irF+/3uYHHngg5nvFmm5dp04d5/jiiy+2uU2bNomoYlZr166dzY888kjK3nfq1Kk233PPPc45vQmqXmk53pT6kSNH2szurMIJ+znQG1YCwEEHHVRgOX3PAGDSpEk2f/DBBzYHNzC9/vrrQ9XDR0OHDrW5MKvs6hXpjzrqKJvr1avnlNPfA5rezBRwP4PfffedzT/99FPoOmnPP/+8zRUrVizSNXwRtkvLB3zSQ0RERF5go4eIiIi8kDHdW+XKlXOOZ82aZXPw0bXuwki0eCstV6tWLWnvm430yrfxuieDXRux/PHHHzYHH3nffffdNo8dOzbU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5JE2Dxo0yCmnp6lnum3btjnH++23X5pqkj6tWrWyOdjPnypbtmxxjmfMmGFzro/p0Std67EURVWUsXN6fEjwWN+be++91ylXtWrVQr8XuX7//XfnuGvXrjbr6ebB+xocu7O3nxfm3KWXXmrzGWec4ZSrXLlyzGuQ64svvrD52muvtXn27NlOuVj3JbhTQZ06dWw+99xzbT711FOdcqeccorNeoxtcEyPVqZMmZjnEoFPeoiIiMgLbPQQERGRFzKme2vdunXOsZ7qtmDBAufcYYcdZrN+/J2IR/KppKf3Bh/Xf/7556muTlp8/fXXNgenRqdD8DHuySefnKaapN7ChQuLfQ3d9VGuXDmb8/LynHKxui937NgR89p6dWzdrQ0AAwcODF9JKlBwKrpekTfWdPOgDh062Ky7PQC3iyxed5mmz+nXAMDVV18d83W+01PAAWD06NE266noQXp3Av07qXbt2k65008/PVQ9Nm3aZHNwtXutdOnSNgc3m040PukhIiIiL7DRQ0RERF5go4eIiIi8kDFjem677TbnWI/jCU4Vnjt3rs26LzBT6Km/wal5ejuMpUuX2qyn4ecyPY4JAP7f//t/NutlChLt+OOPd45jLW0enLb7ySef2HziiScmvmIZ5IQTTrC5U6dONi9evNgpV7LkX18bPXr0cM7985//tLl169ah3ldvP3Leeec556ZPn17ga4JT2/XWND4u91BUehxdcFxhrC0lgvfo1VdfDfVejzzySIHXC4p3jmLTY3X0GJ7gOa1du3bOsd52J+y4nXguvPBCm7/99tuY5fQ4Hj0uLBn4pIeIiIi8wEYPEREReSFjurfOOuss5/itt96yOfh4XU9n79evn80tW7ZMaJ30dDsA+OWXX2x+9tlnbX7ppZeccvpxffAaV155pc1PPvmkzfXq1SteZTOYfrTav39/51xxu7Quvvhi5zjWdMcSJUo4x2eeeabN8R67Pv744zbrrrhcpP8bPf/88yl7X70C64svvuic012KK1eutHnOnDlOuQcffNBmvRs7xaenqQenjutj3aU1YcKEYr9v2Cnw+tz5559f7PfNZXrZl3jT0nW3s16WAPj792RhffDBB87xrFmzCiwXXMKiS5cuxXrfwuCTHiIiIvICGz1ERETkhYzp3gqO2D766KNt1hukAe4jtPz8fJu7devmlOvTp4/Nhx9+uM3BGTp6RtHTTz9tc/AR4apVq2zWK8IGR7kfe+yxNnfv3t05V6lSJfimffv2Nn/55ZfFvt7BBx9ss77HwN9nacXSrFkzm5977rmY5fSK0cHH+npDRkqMAw880Dlu3ry5zbp7K+i///2vzXomaHEf1/sk7IwqvXllkF41OTirS6/CHfa99OxXH787k0F/9yXi86FnfD322GPOuZ07d9pcvXp1m/XwFcCd9ZlsfNJDREREXmCjh4iIiLzARg8RERF5IWPG9ATVr1/f5tmzZzvnHnjgAZufeOIJm4cPH+6U08d6StyUKVOccr/99pvNekyBnl4OuOOOfNp9u7CCU/gTMY6ncePGNusdtYOrdceyevVq5zjWSr9BenXfRKxQSoXTpEkTm8eNGxeznJ7Cvnv3bps5pie8eFPWX3vtNZuD05z1GJxYqzgXdP1YP9fT42vVqrWXWtMeDRo0sDm40vKbb75ps17eoU2bNk65WKvO6yVaAHfcnF6WRY/hCdJjIFM5hieIT3qIiIjIC2z0EBERkRcytntL27Jli3OsNzHTU4rHjx8f8xrBx3OxrnfDDTfYzC6s8PRKugMGDHDO6Q1YwwqutDxy5Eiby5cvX+jr6emyALBhw4ZQr9PdI4cddlih35dSQy+LwC6t8HT3UXBzZK0oG4SGfU3lypWdc2E3MCWX3nw72O2vu7f0cA49VARwl4cZNmyYzf/73/+ccps3by6wDnqpGcBdDiRTdh3gkx4iIiLyAhs9RERE5IWM7d7SszGuv/76mOf22eevdlvFihWdcp06dbJZd2dMmjTJKTdjxgyb9QamFN6aNWtsXrFiRZGuMXbsWJsvuOAC51xRurQ+/PBDm4OrdYd16aWXFul1lBjbt28PVe6QQw6xWX8nUHx6lXHdtQ8AS5cutbl27doxr6HLxfucxZq9dfvtt++1nlQ4wU139abdU6dOtVnPyivoOBbdlaZncgU3Dg12d2UCfjsQERGRF9joISIiIi+w0UNEREReyNgxPTfffLPNegwP4Pbf33rrrTYHx/7EctdddznHeop1q1atbA6u2pspU+5yiV4BW694XJQxPIA7jkePC1q3bl2o11eoUME57t27d5HqQYkxZsyYUOWqVKmS5JrkPr2ib0HHsegxknoqerwp62eccYbNYb+3Kb4dO3bYHBxXWdxV8YPjrvQK+eeee26xrp1qfNJDREREXmCjh4iIiLyQMd1bDz30kHP80Ucf2Rycgqo3GT377LML/V533HGHc/zee+/ZPGvWLJuDqzizeyvx9P3Ly8sL9Rq9eWhwpWU9ZTZsl5amp2IC6d0Yz0fr1693jn/99dcCy/3jH/9wjq+66qpkVYn24r777rM51rT04Dk9VZ6KRk9DB4B77rnH5uCmz7GUKlXKOY61en6LFi2c49atW4e6fibikx4iIiLyAhs9RERE5IWM6d4KrgS5e/dum/XKykDRurS04IaEJUsW/J8h2L3Vp08fm4Ob5FHR6M1k9aNVPRMBcDe869q1q81hNw4NK7iqN6XWM8884xzrrkytUaNGzjE3g00d/fkDwm84es0119hcqVKlxFfMM+PGjXOO43Vp7bvvvjbr32MHHHCAU07Pmtbef/9955jdW0REREQZjo0eIiIi8gIbPUREROSFjBnTE9yNVa+sm65xFsEp6hzHk3h6LNfFF19s86ZNm5xy7777btLqcPnll9t8yy23JO19qGD6Xj/22GMxy+lxCbxPqfXFF1/YHBx/qaei6xz8vuSyAsXXq1cvm0eNGhWznP4uDZYtV66czY888kio93377bedY71MQbbhkx4iIiLyAhs9RERE5IWM6d466aSTnOOnn37a5kRMS9ablganoutVmPUUvjvvvLPY70vhvfrqq0m79lFHHeUc6+4RvdporVq1klYHKpj+rK9ZsyZmuWbNmhWYKfl098bvv//unIs1Zf2SSy5xjsNuYEqxTZw40eZdu3Y55+rXr2/z6NGjnXP7779/sd63bt26xXp9JuGTHiIiIvICGz1ERETkhYzp3tIbRQLAO++8Y/OkSZOcc6effnqBObhZ2osvvmjzypUrbdarPQPu5oX68eFpp50Wqu4EtGrVyubgaqs//fSTzbEehSeD7tIKzj6oXr16yupBf/fZZ5/ZHLYb+ZxzzklWdWgv9IytsJuK3n777cmsEgXo2Y1hu7NWrVoVqlyXLl2KUqWMxCc9RERE5AU2eoiIiMgLbPQQERGRFzJmTE/ZsmWdYz2tPLjz8uDBg23u169fqOvrnYH11D7AXZGXu2wXTcOGDW1ev369c06vsjtgwADn3C+//BLq+iVKlLBZj8kqVaqUU+6yyy6zWe8YfMwxx4R6H0qNadOm2bxly5aY5Q499FCbr7zyyqTWiVx62rNe1iM4pkeP09Pf1dxJPfF69+5t89133+2cW7Zsmc3BHdfr1Kljs/7sPfroozHfq23btjYHf2dmMz7pISIiIi+w0UNEREReyJjurSDd3dWjRw/nXPCYMlvPnj1tDi4DMHXqVJv1o9bgo3Hdjbl9+3ab9WrKAJCXl1ecqlKSPP/8885x8NF8LLq7ZL/99ktoncgVXPl+7NixNsfaVDSodu3aia8YWfGWAbjrrrts7tSpU5Gur6e9DxkyxOZc6qrkkx4iIiLyAhs9RERE5AU2eoiIiMgLGTumh3JTcOqjPuau9rlF7wL9yiuvOOe2bdtW4GtOPfVU57hly5aJrxgVaPXq1c5xfn6+zfG2j9HLVRx55JGJrxgVKDi+R2+788ADDzjnFi1aVOA1mjZt6hzfcsstNutp7rmET3qIiIjIC2z0EBERkRfYvUVESfHbb7/ZrHfpjic4HTre9GhKrOB0c328dOlSmzt06OCUGzlypM25NLU523Tu3LnATC4+6SEiIiIvsNFDREREXmD3FhElRYUKFWwObgysV2TWM7SeeuqppNeLChbc9Hnx4sVpqglR8vBJDxEREXmBjR4iIiLyAhs9RERE5AWO6SGipChRooTNgwYNcs4Fj4mIUoFPeoiIiMgLbPQQERGRFyTeRnJ/KyyyAcDqvRakRKpmjKmc6IvyXqYN72fu4L3MLQm/n7yXaRPzXhaq0UNERESUrdi9RURERF5go4eIiIi8kLWNHhHZJSLz1T+3Rn8+VkRq7+W1T4lIxwJ+niciFyerzhSbiJwXuJ/zRWS3iJyZ7rpROCJyh4gsEZGF0ft3UrrrRMUnIkZEHlLHN4vIwGjuISKXpq1yFBp/Z0Zk8zo9W40x9YM/NMZcWYxr5gG4GMDzxbgGFYExZjKAyXuOReRqAJcAmLa314qIIDI+bXfyakjxiEgTAGcDaGCM2S4ilQCUTnO1KDG2AzhfRO43xmzUJ4wxo9JUJyo8/s5EFj/piUVEZohIo2i+QkSWi8inIvKEiDymijYTkY9E5GvVgn0AQNNoK/iGlFeeAAAiUgNAfwBdjTG7ReQWEZkbfYIwKFomT0SWicgzABYDOEJEhorIYhFZJCIXpfPP4KGqADYaY7YDgDFmozHmBxFpKCIzRSRfRKaJSFURqSUin+55YfReLormv5WP/nyGiAyOfpaXi0jTtPwp/bQTwBgAf/tOFJGBInJzNBd4j0SkRPSzueczfE1qq0/x+PY7M5sbPWUCj+qcX3IiciiAfgBOBnAqgFqB11cFcBoifzt9IPqzWwHMNsbUN8YMS271qSAiUgqRvzXcZIxZIyJtAFQHcCKA+gAaikizaPHqAEYYY44D0Ch6vh6A1gCG7vmFSSkxHZGG53IRGSEizaP3cjiAjsaYhgCeBHCvMeZLAKVF5Kjoay8CMDFWefUeJY0xJwLoDWBAav5YFPU4gEtE5IC9lCvoHl0BYJMxpjGAxgCuUveeUoe/M5GD3VvKiQBmGmN+BgAReRlADXX+tWh3yFIR+UfyqkmFdDeAJcaYidHjNtF/Po8el0OksbMGwGpjzCfRn58G4AVjzC4A60RkJiJfsFNSVnOPGWO2iEhDAE0BtAQwEcA9AOoAeCfSA4kSANZGX/ISIo2dB6L/vghAzTjlAWBS9N/5iDxWpxQxxvwWfar6/wBsjVO0oHvUBkBd9XTgAEQ+w98koaoUG39nIrsbPcW1XWVJWy3IEpEWADoAaKB/DOB+Y8zoQNk8AL+nqm60d9EG5wwAM6LdVdch0oBtUkDxiQBeFpFJkZeaFSJyfJzywF+f2V3w+7srXR4G8BmA8XHKFHSPBEAvY8xex+dRRsuJ35nZ3L21N3MBNBeRiiJSEpFfpnuzGUD55FaLCiIiFRH5Mr3UGLNZnZoGoLuIlIuWO0xEqhRwidkALoqOH6gMoBmATwsoR0kgIjVFpLr6UX0AXwCoHB3kDBEpJSLHAYAx5itEfjH2Q6QBBADLYpWn9Is+AXgJke6qwpgG4Npo9yVEpIaI7J/o+lGxefE7M5v/tlRGROar47eNMbfuOTDGfC8i9yHyi+9nAF8C2LSXay4EsEtEFgB4Klv6KHNEDwBVAIyMdm3scT8iY3w+jv58C4AuiPzC1CYDaAJgAQADoI8x5sck15n+Ug7AcBE5EJGBrysBXI3IANhHo2NBSiLytGBJ9DUTAQwFcBQAGGN2RLtAYpWn9HsIQM9CvmYsIl1dn0nkQ7wBQPvEVotC4O9M5Pg2FCJSLjrWoCQivxSfjE6NJiIiIsWH35m53L0FAAOjLdvFiAyaey2ttSEiIspcOf87M6ef9BARERHtketPeoiIiIgAsNFDREREnmCjh4iIiLzARg8RERF5oVDr9FSqVMnk5eUlqSpUkFWrVmHjxo0JX/2S9zI98vPzNxpjKif6uryfqcfPZm5JxmeT9zI94t3LQjV68vLyMG/evMTUikJp1KhRUq7Le5keIrI6Gdfl/Uw9fjZzSzI+m7yX6RHvXrJ7i4iIiLzARg8RERF5gY0eIiIi8gIbPUREROQFNnqIiIjIC2z0EBERkRfY6CEiIiIvsNFDREREXmCjh4iIiLzARg8RERF5oVDbUBARhTV9+nSbJ0yY4Jx79tlnba5fv77NRx11lFNu0qRJyakcEXmJT3qIiIjIC2z0EBERkRfY6CEiIiIveDOmZ+DAgTa3aNHCORc8JqLiGzBggM1z5sxxzomIzQsWLLB5xYoVTrlXX33V5g4dOiS6ipRCPXv2tPmSSy6xuUmTJumoDiXBo48+6hx/+eWXNo8aNSrm64wxNq9cudI5d/TRRyeodhF80kNEREReYKOHiIiIvJBT3VszZsxwjgcNGlTgOf1zwH20luw66WPdrcYuNso133zzTaFf8/vvvzvH+pE4u7eSa/Hixc7x4MGDbdb/7du3bx/qeg899JBzPGLECJs/++wzmz/66KPCVJPSYMOGDc7xVVddZfMXX3xhc7B7Wndj6xzPK6+84hz37ds3dD3D4JMeIiIi8gIbPUREROSFnO7eCh6nox4tW7aMWU53syWzi42AzZs3O8e6G6VMmTI2b926NfQ1K1asaPO+++5bjNrlpptuusnmoj6i3rFjh807d+60uWTJnPrqyghLlixxjvWq2a+99prNujsDAA4//PACr/e///3POdbfcZ988onNwe9pdvVnhnHjxtk8ZswY59y8efOS9r4dO3ZM2rUBPukhIiIiT7DRQ0RERF5go4eIiIi8kJUd47oPON5U9Fj0SrGJrkOq6+ELPX32gw8+CPUaPYZg+fLlzrnVq1fbfOihh9r8/fffO+XiTbNs2LChzXPnzg1VJ5/ccMMNNr/11lvOubDj7WbPnm2zXt21Tp06xascFcqWLVtsvv76651zetXssPRnc8iQIc45julJneBU9Hvvvddmvbpy2Onm2YBPeoiIiMgLbPQQERGRF7KieyvsSsvx6K4kvfloURWlDoD76DYR9fDFrbfemrRrB7u0tHhLCaxduzYZ1ckZeoXfpUuXFukajRs3tvmf//xnsetEsemNX+OJ95nYvXu3zdu2bQt1vf322y9UOUqMZ555xuahQ4c658J+Ts8991ybe/fubXOzZs1ivkZPgb/66qtDvU8y8EkPEREReYGNHiIiIvICGz1ERETkhYwd06PHu8ycOdM5l6pxPIkYSxScfhl2urWP9FYR8fqG9fTJmjVrOuf0+IBTTz3V5qOOOsopp3cAD56LpXbt2s7xKaecEup1PtHjeM444wybg1Njw9LjTPr162fz3Xff7ZQrW7Zska5Pf9E7nxfVwoULbQ4uUxBLp06div2+5AqOu7rjjjtsHjZsmM16m5egatWq2fziiy86544//nib43329O9uvYRFULdu3Ww+8sgjY5ZLBD7pISIiIi+w0UNEREReyNjurbCrGsdT3CnhwToUZdd2dmfFt379eptvueUWm+NNnx07dqzNnTt3ds7pHdMp9RYtWmRzUbu0NP34XT+Wz8/Pd8rpXcAPPPDAYr8vxdakSRPn+NNPP7VZd1NQ+owaNco51ivah9W9e3ebTzrppCLVQ39mf//9d5urVKnilOvTp4/NpUqVKtJ7hcUnPUREROQFNnqIiIjIC2nt3irKZqHxFLUrSdejZcuWhX59cIYWNxINT8/CmTBhQqjX/PHHHzYHV31l95YfZs2a5Rxfc801Nk+cODHV1ckJxx13nHM8bdq0AsvprohEKF26dEKvR8CyZcuK9LoLLrjAZj1bMqzgTGv9OdVdWsH/t4499thCv1dR8UkPEREReYGNHiIiIvICGz1ERETkhYwZ01OU6eCAO54mOLYmzPsCRRvHozVv3jxmnYLT5n3fWV2PvQCAMWPGFPoavXr1KjADwL/+9S+b+/fvb/Npp51W6Peh7DFlyhSb58+fb3P9+vVTX5ksdeKJJ6bsvfTK6e3bt0/Z+/pCTxUHgEcffbTActWrV3eOgysvF1bwd7BePf/KK6+0uW7dusV6n+Lgkx4iIiLyAhs9RERE5IW0dm8Fp7eFVZSNRBM9PV4LXk8fBx/36XqE7Y7Ldu+++67Nwe4s/fgzHr2Bnt7s7uuvv475Xt9++63NetVYAChfvnyo96XCadCggc3BR+za+eefb/PGjRttDn4nvPHGGzZ/+OGHNgc3StRLF8yZM8dmdm+Fd8IJJzjHtWrVsvnLL79M6HvVqFEjodcj1z333OMc6+9ZPXU8VrfX3ujVlXv37l3g+wDu77iHH364SO+VaHzSQ0RERF5go4eIiIi8kNbuLT3rqTCzt2J1TwUfjRd1RlgiBVdn9qVLS2vdurXNI0aMcM498cQTNp9zzjk2d+jQIeb1ateubfPs2bOdc61atbJ51apVNgdXbmb3VnLUrFmzwBzPEUccYXOwi0U/Om/Xrp3Nb7/9dszrsUuraIJdTnrVXD07buXKlU45vZL6oYceavPixYtjvtfy5cuLXE8qmO7y/eqrr2KWO/PMM20+44wzivReembsk08+GbPcjTfeaHPZsmWL9F6Jxic9RERE5AU2eoiIiMgLbPQQERGRF7JyyrqW6OnnRRFv3I6PY3jiufbaa+MeF1Z+fn7Mc3q10XLlyhXrfSj9tm7dmu4qeOXII4+0uWfPnjHL6anIOt9www3JqBbFsHr1apv1OKugO+64o9DXXrp0qXM8efLkAssFdydo2rRpod8r2fikh4iIiLzARg8RERF5Ia3dWx988IHNwU0/M3G6ueb7xqEAsGjRIps7d+5ss55aDABDhgxJWh2effZZ51iv3EzJt2nTJudYLw1QuXJlm/fZJ9zfr37++WfnWE9ZnzVrVszXlSpVqsBM5KNEfA8uWLDA5jZt2jjnNmzYYLPu0tK/0zMVn/QQERGRF9joISIiIi+ktXtLCz4W091HiV5pOTijSj+eY7dVeOeee67NevXjhx56KPQ19Iwc/cj0l19+ccq9+uqrNutVnIPdIXrDu9dee83mMmXKhK4ThRecfffiiy/a/MADD9jcp08fp5y+v8uWLbP5vvvuc8pNnTo1VD30Rqc6U2rpVdXjzd7S3aDvvPOOc+5f//pX4ivmAb3JaHDjz27dutmsZ+XFM3r0aJv1psAAcNZZZ9kcHGKQ6fikh4iIiLzARg8RERF5gY0eIiIi8kLGjOkJ0mNrguNsijumhzufJ0ajRo1s1mN6dP8xAFStWtXm4NIEb775ps3xxvToKZi6v7pEiRJOuVNOOcXmihUrxq0/JZde+TW4gqu+v3rH7eBU2+DYhD3q1avnHAfHDFF6bN++vdCvCX7WKZy5c+c6x9OmTYtZ9oADDrBZL+mgd2YH3FWdR40aZXP58uWdcvrzpq+dDfikh4iIiLzARg8RERF5IWO7t3QXVlE3FdXdVrpLi91ZiXHQQQcV+PP169fHPJ4/f75zLlb3RTy62+rJJ590zulp9JReu3btsnnOnDnFvp5+LD906FDnXOvWrYt9fSq+WN8JlHjBaeR6eEBYujsLAGrVqlVgOb2RLJCZG4mGxSc9RERE5AU2eoiIiMgLGdu9FZzlUxR6pWV2aSWeHt1///332xxcRffrr7+2+aOPPnLOhe3euuSSS2zu2LGjzVxpObeVK1fO5gkTJtjM7qzMVKlSJZv19y/w95X199i9e3dS6+SLeJuM6nO33XabzYMHD475mpdeeslm/Z2b7fikh4iIiLzARg8RERF5gY0eIiIi8kLGjOkp7irLwN/H7XDH9NTR08i7du2axppQKp1//vnOsd5lPayjjjrK5lNPPdU5p3fqPuGEEwp9bUqfnTt3hir39NNPO8edOnVKRnVyXrzxkc8884zNW7dutTm40nKzZs1szqVxPBqf9BAREZEX2OghIiIiL2RM91YippQHNxIlouQ6++yznePLLrvM5qeeeirm6zp06GDzkCFDbNZdXZR9dNfJZ599lsaa5L6yZcs6x3p5hy1btjjnNm3aVOA19KbRAPDGG28kqHaZi096iIiIyAts9BAREZEX2OghIiIiL2TMmJ6gDz74wOZ409k5LZ0offbbbz/nWO96rzP5QU+Bbtu2rXNu8uTJqa5OTgtu8zFs2DCbr7rqqpiv69evn82XX3554iuW4fikh4iIiLzARg8RERF5IWO7t/QUdu6QTkSUXSZNmpTuKnile/fuBWZy8UkPEREReYGNHiIiIvICGz1ERETkBTZ6iIiIyAts9BAREZEX2OghIiIiL7DRQ0RERF5go4eIiIi8wEYPEREReUGMMeELi2wAsDp51aECVDPGVE70RXkv04b3M3fwXuaWhN9P3su0iXkvC9XoISIiIspW7N4iIiIiL7DRQ0RERF7I2F3WwxKRXQAWqR+1N8asSlN1qJgKup8AnjfGnJKeGlEYInIwgPeih4cA2AVgA4A8AD8YY2qnqWqUAPyezQ0ich6AAYEf1wVwljHmrTRUKeWyfkyPiGwxxpRL4PVKGmN2Jup6VDiJvp+UeiIyEMAWY8yDIpIHYKoxps5eXsPPXQbj92xuEpGrAVwCoKUxZvdeygoibYa45TJdTnZviUh9EflERBaKyGQRqRj9+QwRaRTNlURkVTRfJiJTROR9/PW3VcoQIrIl+u8XReQs9fOnRKSjiJQQkaEiMjd6z69JX22pACVE5AkRWSIi00WkDGA/jw+LyDwA14tIQxGZKSL5IjJNRKpGyx0tIm9Hfz5bRGql9U9DAPg9m+1EpAaA/gC6GmN2i8gt6jt0ULRMnogsE5FnACwGcET0u3axiCwSkYvS+Wcoilxo9JQRkfnRfyZHf/YMgL7GmLqIPJINPs4rSAMAHY0xzZNVUQqloPu5x0QAFwKAiJQG0ArAfwFcAWCTMaYxgMYArhKRo1JZaYqrOoDHjTHHAfgVQAd1rrQxphGARwEMR+Qz2BDAkwDujZYZA6BX9Oc3AxiRqoqTxe/ZHCIipQA8D+AmY8waEWmDyOf0RAD1ATQUkWbR4tUBjIh+fhtFz9cD0BrA0D1/OckWWT+mB8BWY0z9PQcicgCAA40xM6M/ehrAyyGu844x5uck1I8Kx7mfAW8BeERE9gXQFsAsY8zW6Ae2roh0jJY7AJEP6jdJry2F8Y0xZn405yMyzmePidF/1wRQB8A7kafoKAFgrYiUA3AKgJejPweAfZNcX/o7fs/mlrsBLDHG7Pn8tYn+83n0uBwi36FrAKw2xnwS/flpAF4wxuwCsE5EZiLyF80pKat5MeVCo6cwduKvp1v7Bc79nuK6UCEZY7aJyAwAZwC4CMCL0VOCyJOAaemqG8W1XeVdAMqo4z2fO0HkS7iJfqGIVADwa5yGMGUefs9mMBFpgcjT1gb6xwDuN8aMDpTNQ47ds1zo3nIYYzYB+EVEmkZ/1BXAnr+NrALQMJo7grLRRACXA2gK4O3oz6YBuDb6yBYiUkNE9k9T/aholgGoLCJNgMjjdxE5zhjzG4BvROSC6M9FROqls6LE79lsFR13NR7ApcaYzerUNADdo09WISKHiUiVAi4xG8BF0XGUlQE0A/BpsuudSLn6pKcbgFEiUhbA14j8kgSABwG8FB2x/t90VY6KZTqACQBeN8bsiP5sLCJdJp9FZxhsQGSqO2UJY8yOaPfko9Guk5IAHgawBJHZJSNF5E4ApRB5wrcgXXUli9+z2acHgCqIfJ70z+9HZIzPx9GfbwHQBZEns9pkAE0Q+fwZAH2MMT8muc4JlfVT1omIiIjCyLnuLSIiIqKCsNFDREREXmCjh4iIiLzARg8RERF5gY0eIiIi8gIbPUREROSFQq3TU6lSJZOXl5ekqlBBVq1ahY0bN8reSxYO72V65OfnbzTGVE70dXk/U4+fzdySjM8m72V6xLuXhWr05OXlYd68eYmpFYXSqFGjpFyX9zI9RGR1Mq7L+5l6/GzmlmR8Nnkv0yPevWT3FhEREXmBjR4iIiLyAhs9RERE5AU2eoiIiMgLbPQQERGRFwo1eytXTZ8+3ebHHnvM5nfeeccp97///c/mBg0aJL9iVKBVq1bZ3LlzZ+fc7bffbvM555yTqioREVEW4JMeIiIi8gIbPUREROQFL7u33n33Xee4ffv2Nh9zzDE2L1y40ClXvXr1pNaLYtu2bZvNXbt2tfnYY491yp111lkpqxMRUbps3rzZOR46dKjNb7zxhnNu/vz5NlepUsXma665xil36KGH2nzFFVfYXKpUqWLVNZPwSQ8RERF5gY0eIiIi8oI33VvfffedzR07dnTOnX766TaPHz/e5sqVE74vJBXRhAkTbN64caPNb731llNun33Yjk+0lStXOse6q/Hrr792zr3++us2689S0IEHHmhzv379bL7kkkuccvpRPCWe/l688MILnXMff/xxga858cQTneOzzz7bZn3/jjjiCKdcLnWRpMv27dttbtWqlXMu3h5fIn/ti7thwwab77nnnpivuf/++20OzpK98sorbdZDQrIBf0MQERGRF9joISIiIi+w0UNEREReyOkxPfn5+Tb37NnT5mD/5MiRI1NWJwonOI7klltusfm2226zuVy5cimrU67TY2v06uPBsQJbtmyxWY8VAIB9993XZj1GZNq0aU65X3/91eabb77ZZj12CwA+++yzMFWnImrXrp3Ny5cvd87VrFnT5nXr1tk8d+5cp5w+HjBggM3BMSfjxo2z+cgjjyxijf2mP2/B8W7VqlWzuXfv3jGvocf0jB492jmnp8F/++23Ng8ZMsQp99JLL9msP9vZsKwLn/QQERGRF9joISIiIi/kdPfWsGHDbNZT/didlfn69+/vHNeuXdtm3R1CRRfsQnziiSds1o/Ag/Rj9Msvv9w5V7ZsWZv16tgzZswIVaetW7eGKkeJcdddd9kcXOFXd31t2rTJ5uAqvu+9916B1w7+/KSTTrL5hRdesLlFixbhK+y50qVL2zx16tRiXy84ZV1fc/DgwTYHu7j1ps833HCDzZMnT3bKZeIyBXzSQ0RERF5go4eIiIi8kPXdW7/88ovNvXr1cs5NmTLF5kGDBqWsTlQ0H374oc2vvvqqc27p0qU2lyhRImV1ymXBlVTvvvtum3v06GHzQw895JQ755xzbD766KOdc7obpG7dujbH6y5r0qSJzbG6Sig59GbLQWvWrLG5b9++NgfvUYUKFWzW3dA//fSTU07PDjvzzDNtHj58uFNOr/ZLqaVX19Y52AU5a9Ysm998802bly1b5pSrU6dOgmtYfHzSQ0RERF5go4eIiIi8wEYPEREReSErx/Ts2rXL5iuuuMLm4I7bTz31lM0XXXRR0utFxTNixAibg6tmB8eOUOLp6eennnqqzcH/9nrV5SC9NITewTuetm3bhro2Jdeff/7pHA8dOtRmPcbusMMOc8o9/vjjNv/73/+OeX29+q9eVV1PjQaA448/3mY9zZ3S56CDDkp3FRKGT3qIiIjIC2z0EBERkReysnvrqquusvm1116z+YEHHnDKsUsr8+kVPCdOnGgzpy6nXsmSf30d6KnHhaE3QdQrPF933XVOuW3bttmsNzddv359zOtRcgVXqtfdVpqeogy43VHx6JWcv/rqK5sffPBBp5zu7pw/f77NeiVwSq1DDjkk3VVIGD7pISIiIi+w0UNEREReYKOHiIiIvJAVY3q6dOniHD/33HM26+XR+/Tpk7I6UWLosR3HHXeczU2bNk1HdSiBunfvbvOSJUucc8OGDbN5+vTpNp9++ulOuccee8xm7sadeGPGjLF5wIABzjm93ct9991ns/6cFpXe3Tu4XcX48eNt1uN73n33XadccOo8JdbixYttfuWVV2KWO/DAA20uW7ZsMquUEHzSQ0RERF5go4eIiIi8kLHdW3pH3tdff905d8kll9h81113paxOlHh6t94LL7zQZu6knluCO7Ufe+yxNt9yyy02f/HFF065WLtxcyfuxNDdh5s2bXLO6dWQ9T1KhNKlS9s8btw455zu7poyZYrNutsLAO68886E1omAzZs326y7NDdu3BjzNV27drX5n//8Z3IqlkB80kNEREReYKOHiIiIvJCx3Vt61H5wI7zbb7/dZv2YNBF0t5p+tBrUsmVLmxs2bJjQOvjk448/trljx46Ffv2nn37qHOvuzpkzZ9oc7C6bNm2azdzUMPV095T+rOsZX4C7Mrde0Xeffdy/rwVfRwXbsGGDc6y7M4LOP//8ZFenQP369bNZfwcHV4hu166dzQ0aNEh+xTygf7e++OKLMcvpoQh6Jl424JMeIiIi8gIbPUREROQFNnqIiIjICxk7puebb76xOdiXW9QdoGN5+eWXbb700ktt3r59e8zX1KlTx+Y5c+Y458qUKZPA2uW2ouycPHfuXJsvuOAC59yWLVtsbty4sc167BAAPP300zZzTE96HX744TYHd/DWYwz0tPfgru0iYvPll1+e6CrmjIULFzrHq1evtjm4mm6rVq1SUqeg+vXr29y/f3+bg8uTTJ482WaO6QlPf0fedNNNzrlYKy8ffPDBzvHAgQNtLl++fOIqlwJ80kNEREReYKOHiIiIvJDW7i3dfaRXdQSAgw46yObOnTsn9L2CK3tee+21Bb6mSZMmznGFChVs1lOef/vtN6ccu7fCW79+vc16uYAgff/0xrI1a9Z0yj3//PM2V6pUyWbdTQIAv/76a6HrSslXsqT7lTRkyBCbP/nkE5tnz57tlLviiits3rVrl81cuTk+Y4zN5cqVc86lq8tILy+hlyl46qmnnHIzZsxIUY2y3++//27z1VdfbXO8aem6S0tv8g0AtWrVSmDtUotPeoiIiMgLbPQQERGRF9LavfXLL7/YHBw1fuutt9pcsWLFYr+XnqH1f//3f845PYNId53ox4CAu3qp7n6jomvfvr3NDzzwgM3BVbjnz59fYNYzuQC3S0tr3ry5cxzcxJYy3wsvvGDzEUcc4ZzTs7f0ir7s3opP/3fTOVNUrVrV5uC91LO53nnnHefcv/71r+RWLMP98ccfzrH+bzdx4sSYr4vVpdWmTZsE1i69+KSHiIiIvMBGDxEREXmBjR4iIiLyQsauyHzLLbcU+jXBFZT1VHQ9Zkiv8gkA119/vc16/ND06dOdcnqMz+mnn25zcLVKCu+YY46xWU8jnzp1qlNu69atNp944okFvj4evXor8PdduinzHXbYYaHK6f9XvvrqK+fc0UcfndA65ZKffvrJOX7rrbdsPvPMM1Ndnb8J3rudO3fafP/99zvnfBzTo/+/7969u3PupZdeKvA1wfGyesmPXP1vyG9+IiIi8gIbPUREROSFtHZv6UdrDRs2dM7l5+fb3Lp161DXmzlzpnOsV/A84IADbNarfAbroafRB6eslypVyuZBgwbZHFxFlsI7/vjjbdbLAOiVeIGiTT3esWOHzXqDUQAYOnRooa9H6fX999+HKqfv+4YNG5xzvndvtWjRwjnWmzcvXbrUObd27dpUVCkhgl1zPpo1a5bNsbqzAODAAw+0Obgic652aWl80kNEREReYKOHiIiIvJDWfpl9993X5uAKx0Xp3gp2WRx55JE2f/755zYHR6zrrg99jXXr1jnlJkyYYPNpp50Wqk4UX40aNWzWM0SCG9xt27bN5ipVqoS6tl7BN/iaq666qlD1pPTQXVpt27YN9Zr999/fZt19Q+5mnkD8WYxPPPGEzcHZQOnw448/prsKGUUPxQCACy+8MNTrBg8ebLMP3VlBfNJDREREXmCjh4iIiLzARg8RERF5IWPmWgfHWHTp0sXm4HiMTp062aynWb777rtOuTfffNNmvUO6Xk0ZcHftbtq0qc3BVXyrV68es/5UfD179rQ5uCKzvkd6HMKAAQOccnpV7pEjR9qsd2QG3PFkVDh6KrNeFRf4++7nhaXvM+COU1i5cqXNxpiY19ArrleoUKFY9cl1t912m83dunVzzi1ZssTmSZMm2Xz++ecnv2IFiDcN+4ILLkhhTTLD7t27nWP9Oy6eTz/91Ga9lAsQflxQWMuWLbP5vffes/nhhx92yl188cU2Dxw4MKF1COKTHiIiIvICGz1ERETkhYzp3urYsaNzvGjRIpv1hqCAu1qv3mQtqE+fPjbr6X3B6ea6i+Tss8+2mSstp9bJJ59s83/+8x/n3E033WSz3pg02G2l1alTx+bg/0MUnu5WAoCWLVvaXK1aNeecfoQdrwtRd1XoTUGD91OvriwiMa+nz+nub4qvc+fONi9YsMA5pz+Dl1xyic0333yzU05/ZzZq1Mjm4PT4sPTnW3dVfvbZZ0453TWjvx98EVx6ZdSoUTb36NEj5uvGjRtnc3Cler1JdyL8+eefNm/ZsiVmud9++y2h7xsPn/QQERGRF9joISIiIi9kbP+N3tCzXbt2zjk9K0fTj8kBd3PBs846y+bg7K2DDz64yPWk5AiuANusWTOb9ePZMWPGOOX0ZnozZsxISt18E7wXepXkH374wTmnu4p1l/Lrr7/ulFu/fr3N8bqtYilfvrxzfN5559nMz3PRPPDAA85xvXr1bNaza++9916nnD7WMzCDM3JLly5tc82aNW0OzpLVXZy6yy0400iXK1OmDHwTXE073qbMsbq7grMvg6s85yI+6SEiIiIvsNFDREREXmCjh4iIiLwg8VY2DWrUqJGZN29eEqtDQY0aNcK8efMKP+hh79flvUwDEck3xjTae8nCSeb9DI6Va9Gihc3BMT1h6e+dsGN69NiiW2+91Tmnx++lik+fTV0fvWQIALzyyiuhrqGXMDjllFNsnjt3rlMu1tTml19+2Tnu0KFDqPcNKxmfzXTdy+Dv9XXr1tkca0wsAHz33Xc2jx8/Pma5yy+/3ObDDz88VJ3q169vs17mAHDHJxV1qQMt3r3kkx4iIiLyAhs9RERE5IWMnbJORJkh2HU0bdo0m4Or8+pz8ejVZPv162dzmzZtQtWDG8amll5p+cUXX3TOrV692uavv/7a5uCmwdqUKVNszsvLc861atXK5rZt29qsu1UpvmCX8SGHHGKzXg4mHr00SC7hkx4iIiLyAhs9RERE5AU2eoiIiMgLHNNDRIVSu3Ztm99888001oTSIbj9wVFHHVVg1mNzgoYNG5b4ihGFwCc9RERE5AU2eoiIiMgLbPQQERGRF9joISIiIi+w0UNEREReYKOHiIiIvMBGDxEREXmBjR4iIiLyAhs9RERE5AU2eoiIiMgLbPQQERGRF9joISIiIi+IMSZ8YZENAFYnrzpUgGrGmMqJvijvZdrwfuYO3svckvD7yXuZNjHvZaEaPURERETZit1bRERE5AU2eoiIiMgLOdfoEZE7RGSJiCwUkfkicpKIjBWR2umuGxUO72X2EJGDo/dovoj8KCLfR/OvIrI03fWjohOR89S93fPPbhE5M911o6KJ83mdLyKl012/ZMqpMT0i0gTAfwC0MMZsF5FKAEobY35Ic9WokHgvs5eIDASwxRjzoIjkAZhqjKmzl9eUNMbsTEX9qHhE5GoAlwBoaYzZvZeygsjvmbjlKH305zXddUmFXHvSUxXARmPMdgAwxmw0xvwgIjNEpJGIVBORFSJSSUT2EZHZItImzXWmgvFe5o4SIvJE9KnddBEpAwDRe/mwiMwDcL2INBSRmSKSLyLTRKRqtNzRIvJ29OezRaRWWv80HhORGgD6A+hqjNktIreIyNzo09hB0TJ5IrJMRJ4BsBjAESIyVEQWi8giEbkonX8GKtA+IpIPACJST0SMiBwZPf5KRMpG7+v70Xv93p7z2SbXGj3TEfmALReRESLSXJ80xqwGMBjASAA3AVhqjJmehnrS3vFe5o7qAB43xhwH4FcAHdS50saYRgAeBTAcQEdjTEMATwK4N1pmDIBe0Z/fDGBEqipOfxGRUgCeB3CTMWZN9C8Z1QGcCKA+gIYi0ixavDqAEdF73ih6vh6A1gCG7mnQUsbYDWA/EakAoCmAeQCaikg1AOuNMX8g8vl82hhTF8BziHxms07JdFcgkYwxW0SkISI3rSWAiSJya6DMWBG5AEAPRD6IlIF4L3PKN8aY+dGcDyBPnZsY/XdNAHUAvBPpEUEJAGtFpByAUwC8HP05AOyb5PpSwe4GsMQYs+eetYn+83n0uBwijZ01AFYbYz6J/vw0AC8YY3YBWCciMwE0BjAlZTWnMD4CcCqAZgDuA9AWgACYHT3fBMD50TwBwJBUVzARcqrRAwDRD9YMADNEZBGAbvq8iJQFcHj0sByAzSmtIIXGe5kztqu8C0AZdfx79N+CyC/UJvqF0b95/mqMqZ/UGlJcItICkSd0DfSPAdxvjBkdKJuHv+4rZY9ZiPwlsxqA1wH0BWAA/DedlUq0nOreEpGaIlJd/ag+/r4a5mBEHs31B/BEiqpGhcR76Z1lACpHB7BDREqJyHHGmN8AfBN9ogeJqJfOivpGRCoCGA/gUmOM/ovFNADdo0/jICKHiUiVAi4xG8BFIlJCRCoj8iTh02TXmwptNoAuAFZEB57/DKAdgA+j5z8C0CmaL8FfT4CySk41ehD52/7TIrJURBYCqA1g4J6T0XEhjQEMNsY8B2CHiFyelprS3vBeesQYswNARwCDRWQBgPmIdGsBkS/YK6I/XwLg3LRU0l89AFQBMFLUtHUAFREZ4/Nx9EnsKwDKF/D6yQAWAlgA4H0AfYwxP6ak5hSaMWYVIk/vZkV/9CEiT1l/iR73AnB59Pu4K4DrU17JBMipKetEREREseTakx4iIiKiArHRQ0RERF5go4eIiIi8wEYPEREReYGNHiIiIvICGz1ERETkBTZ6iIiIyAts9BAREZEX/j+yUYCZoz+NUAAAAABJRU5ErkJggg==\n",
       "text/plain": [
        "<Figure size 720x720 with 25 Axes>"
       ]
@@ -398,7 +377,7 @@
     "    plt.xticks([])\n",
     "    plt.yticks([])\n",
     "    plt.grid(False)\n",
-    "    plt.imshow(image, cmap=plt.cm.binary)\n",
+    "    plt.imshow(image, cmap=plt.cm.binary)   # cmap: https://matplotlib.org/stable/tutorials/colors/colormaps.html\n",
     "    plt.xlabel(class_names[label])\n",
     "    i += 1\n",
     "plt.show()"
@@ -440,27 +419,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": null,
    "metadata": {
     "colab": {},
     "colab_type": "code",
     "id": "7MqDQO0KCaWS"
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "\u001b[1mDownloading and preparing dataset fashion_mnist/3.0.1 (download: 29.45 MiB, generated: 36.42 MiB, total: 65.87 MiB) to /home/jovyan/tensorflow_datasets/fashion_mnist/3.0.1...\u001b[0m\n",
-      "Shuffling and writing examples to /home/jovyan/tensorflow_datasets/fashion_mnist/3.0.1.incomplete9MU5LV/fashion_mnist-train.tfrecord\n",
-      "Shuffling and writing examples to /home/jovyan/tensorflow_datasets/fashion_mnist/3.0.1.incomplete9MU5LV/fashion_mnist-test.tfrecord\n",
-      "\u001b[1mDataset fashion_mnist downloaded and prepared to /home/jovyan/tensorflow_datasets/fashion_mnist/3.0.1. Subsequent calls will reuse this data.\u001b[0m\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
-    "dataset, metadata = tfds.load('fashion_mnist', as_supervised=True, with_info=True)\n",
-    "train_dataset, test_dataset = dataset['train'], dataset['test']"
+    "dataset_f, metadata_f = tfds.load('fashion_mnist', as_supervised=True, with_info=True)\n",
+    "train_dataset_f, test_dataset_f = dataset_f['train'], dataset_f['test']"
    ]
   },
   {
@@ -472,8 +440,8 @@
    "source": [
     "Loading the dataset returns metadata as well as a *training dataset* and *test dataset*.\n",
     "\n",
-    "* The model is trained using `train_dataset`.\n",
-    "* The model is tested against `test_dataset`.\n",
+    "* The model is trained using `train_dataset_f`.\n",
+    "* The model is tested against `test_dataset_f`.\n",
     "\n",
     "The images are 28 $\\times$ 28 arrays, with pixel values in the range `[0, 255]`. The *labels* are an array of integers, in the range `[0, 9]`. These correspond to the *class* of clothing the image represents:\n",
     "\n",
@@ -529,7 +497,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": null,
    "metadata": {
     "colab": {},
     "colab_type": "code",
@@ -537,8 +505,8 @@
    },
    "outputs": [],
    "source": [
-    "class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n",
-    "               'Sandal',      'Shirt',   'Sneaker',  'Bag',   'Ankle boot']"
+    "class_names_f = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n",
+    "                 'Sandal',      'Shirt',   'Sneaker',  'Bag',   'Ankle boot']"
    ]
   },
   {
@@ -555,27 +523,18 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": null,
    "metadata": {
     "colab": {},
     "colab_type": "code",
     "id": "MaOTZxFzi48X"
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Number of training examples: 60000\n",
-      "Number of test examples:     10000\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
-    "num_train_examples = metadata.splits['train'].num_examples\n",
-    "num_test_examples = metadata.splits['test'].num_examples\n",
-    "print(\"Number of training examples: {}\".format(num_train_examples))\n",
-    "print(\"Number of test examples:     {}\".format(num_test_examples))"
+    "num_train_examples_f = metadata_f.splits['train'].num_examples\n",
+    "num_test_examples_f = metadata_f.splits['test'].num_examples\n",
+    "print(\"Number of training examples: {}\".format(num_train_examples_f))\n",
+    "print(\"Number of test examples:     {}\".format(num_test_examples_f))"
    ]
   },
   {
@@ -590,29 +549,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": null,
    "metadata": {
     "colab": {},
     "colab_type": "code",
     "id": "oSzE9l7PjHx0"
    },
-   "outputs": [
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 2 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "# Take a single image, and remove the color dimension by reshaping\n",
-    "for image, label in test_dataset.take(1):\n",
+    "for image, label in test_dataset_f.take(1):\n",
     "  break\n",
     "image = image.numpy().reshape((28,28))\n",
     "\n",
@@ -636,34 +582,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": null,
    "metadata": {
     "colab": {},
     "colab_type": "code",
     "id": "oZTImqg_CaW1"
    },
-   "outputs": [
-    {
-     "data": {
-      "image/png": "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5ZJR677k0gdmLTvczz77LNoLFixItuX1kS+58NFHCwvBdu7cudnPtCVjxoyZH0LoUuv9ttXYLDONMjZFddRjbLaXvnzvvfeizffT//73v0k7vmeusMIK0f7444+TdjyfrrbawtqfK63UPtb0LerLJboT9OrVC6NHj67NUS0Br732WvL6yCOPjPaHHy6sNTZ//vykHd8AV1lllWivvPLKSTvutLXXXjvaI0aMQFszaNCguuy3Fn3JDxw8kL7whS+0aH/vvPNOtK+99tpk2xprrBFtfpjxD8STJy+sb3b88cdHu1OnTi06Jp4E/MNcSx7uzKyo2m2LaauxWWba89gUS049xmZ76cuHH3442nPnzo32rFnpT+b7Kf/RP23atKQdz8G77bZbtLfccsulP9gaUNSX7ePP38Xgb4Djx4+P9nrrrRdtfngB0k7jm9fzzz+ftOMOnDJlSrRHjRqVtBs8ePASHHXHgz0xQOp9KXrQ4YfPm2++OdnGffv44wsLevoH0//85z/R5n6YOnVq0u7NN9+M9rnnnhvtQw89NGl3xBEL187cddddc4/dewWZPE+iEELUG69ssPflmWfSQst8X9tpp52i3adPutbvvHnzos3z9hZbpKuEsBPhl7/8ZbRPPvnkpB3PrfwH6vLLL4+2QjO1EEIIIUqBHnqEEEIIUQr00COEEEKIUtAQMT1vvfVW8nqTTTaJNgfT+kj0t99+u1mbY3iAVAvlGCEfQF12OIbHc8stt0T70ksvTbZxnM27776bbONYGK8v5+2D43h8n2+22WbR5n599NFHk3b8eq211oq2j0369re/HW0OoPfHrvietqXaeIGZM2dGuz1k1QjRUooyUm+44Ybk9Q477NDs59Zcc82kXdeuXaPNiRocEwSk2WDHHntstG+99dakHcf0tJcMWs3OQgghhCgFeugRQgghRCloH/6mxeAL1XEq3eqrr577Oa45sOKKKzZrA6l8xjLKhAkTknYHHHBAdQfc4FQr1fTv3z/ab7zxRrQ5nREAVl111WZtD0sU3hXK9ZO4X7mAFpAeO6fY+xR4lrH4emK3LQCceeaZ0b7pppuSbezKlaRVf7hvfbE0LorGtUf23XffpB337/Dhw5Ntw4YNa/Z7i0o1CNEe8fdMnj851GPMmDFJu7wyJL7UyDHHHBPtvn37Rvviiy/OPaaWFq2tNZqp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0Lt372i3Vd95ivpyiR56evXqhdGjR9fmqBw+i8wtDFtXXnhhYTHl8ePHR/u5555L2u2+++7RHjKkmuKXS8+gQfVZP7OefSnyMbO6LIip/mx9OtrYfO+995LXf/jDH6L9s5/9LNorrdSyBbEXLFgQ7d///vfRPu2005J2a6yxRov2v7TUY2zWoi/53tjS++JFF10UbT6ezp07J+34wZQflGbMmJG0YwfAzTff3Oz7bUlRX7abOj1FnekfiI455phor7LKKtFee+21k3b/7//9v2jvvffe0d50002Tdj169Ij2+uuvH+1tt902aTd27MLyL1OnTo32N7/5zdxjF0KIelPtH418gwLSB5unnkprtPJceNZZZ+Xuu2fPntHm+Xjy5Mm5x9utW7don3vuucm2oUMXrkf5178uXMt24403zt1fW/7RXG/yfsvbb7+dvH7ppZdyP8PKxKOPLlxNyasZb731VrT5gahr13Q1isMPPzzaL774YrOfB9J+5v77whe+gLZCMT1CCCGEKAV66BFCCCFEKdBDjxBCCCFKQZvG9FQboPWDH/wgee21zCY4UA4A+vfvH+2tt9462ttvv33SjrMWOCrdfw/H/kyZMiXaHDsEAGeccUazxyeEEPWgaP780Y9+FO0rr7wy2bbaaqtFe7PNNsvdR9++faPN2a7+uzkQ1sfgLL/88tHmuZ+PAUjjJTlY/Pjjj0/anXfewoXGO1IMTxHPPPNMtN99991kGwcRr7jiism2gw8+ONrHHntstF9++eWkHd9DOaDcZ6DxvZGz/DwcDP3qq69Gm++lwKJxtvVEnh4hhBBClAI99AghhBCiFLSblHXPY489Fm0upgQAG220UbS5lg6/DwC//OUvo83pd/Pnz0/asbuWXa0+/W7atGnR5rTKn//850m7YcOGRXunnXaCEEK0FXfffXe0u3RJ67VxcTqWpoBU9ufaPCuvvHLSjj/HMhPLWQDw2WefNdvOS1NrrbVWtHk+vummm5J2LG91ZLiuDqeY+xItnAbO5xpIa9Fxn3NKOZCWKeDihM8//3zSju+Z3M++2CFLZHw9zZw5M2nH15eXvmpRp4iRp0cIIYQQpUAPPUIIIYQoBW0qbxW5qu68885od+/ePdm25pprRptdejvuuGPSjtcB4Shyv3YMryvCn3n//feTdtOnT482S1hHHnlk0m7kyJHRlrwlhGhtOFPmnXfeiTZXTAaAjz/+OHcfLFWwXOLXV+J21VbW5/15KYZlEM5C8stkjBkzJtoDBw7M/d5G44MPPkhe8+9medLLkXwfY4kQSO+TfP+cN29e7ndzv/o+535mGczLW9yOj8FXeOZq0l7eqnVmnjw9QgghhCgFeugRQgghRCnQQ48QQgghSkGrx/TkacOs6QFppUgfq8MpclxdmTVNID8d0+uYvD+uSOkrj7JO/uabb0bba5Djx49vdn/AommGQghRa1577bVoc8kPTg32+BTzvLRyHxPJcyvP6T4Wo9r95cX++PmYy5V0pJgeX2mZ467Y9n3JMag+Ff3111+PNt8X/f1ovfXWa/Y4OnXqlLTjeyjH5/hUdD5e/l7flxwX5OPMVlhhBdQSeXqEEEIIUQr00COEEEKIUtDq8pZPfWvi5ptvTl7zAqFc1RFIZSx26Xl3qnehNeHdZ+xO5f2tuuqqufvjdpyKB6Qp9v/+97+TbQceeGCzxySEELWCwwU4BdyTt9iyx6ci523j/fG8Ciw6T+a143nWb2PGjRsX7aOOOiq3XaPh7098z+SKzL6/1llnnWj7Pmfpkrf5+zFLodxfvlwAp8QXLR7L21gu8xIe37t9mIrkLSGEEEKIFqCHHiGEEEKUgrrLW77aJrvTZs2aFe1XXnklaTdo0KBoe5mK3W7sqvNuMf4ct/Ouv7fffjvaXK3Sf6933TX3eSB19/ICbkJ0NLz8UG311LzFJz15ksvFF1+cvD755JObbefHOu+vpcfeCDzyyCPR5t/lz0fRvMhwdk1LzxPLNnwf8H3M7Xib/17O3upIeCkpT97xFZl5TPkFQrmydVF17bw+KoL35yXMvKreRRKWXwkh777bUuTpEUIIIUQp0EOPEEIIIUqBHnqEEEIIUQrqHtNTlAbJVZerTYkEUi2T9+81zpVXXjnaXKHUr0A7Y8aMZvfh0+oYXrV99dVXT7Z961vfinZHihNoj3BlbCCtUlpUfbbaVN1q4evBX1++0m1Hotrr28fPFMVq5PGVr3wl2r6SLMf4nHjiidH2sQMc2+CPieMZuM+qjW1oT0yZMiXaRXMkV5nv2bNnso37hc+Bn4/5vPFnfDs+3xwv6cfHW2+9FW1eFd7Hi0yfPh0dkXfeeSd5zbEwXEbFx8vmVV0G0lR0pmjscX/5sZJXNduPN74H8zH5tPx111032pyWXw/k6RFCCCFEKdBDjxBCCCFKQd3lrSL3WZHrkt2pRamURdJEtbLFdtttF+0HHngg2t4VzMfEx3v88cdX9T1lhfuvaBHCIq688spoX3311dGeNGlS0m7EiBHR3nnnnXP3l3dteJdx0cKI7IZmmc0vujd48ODc4+hosNub05zzqvF6pk6dmry+6KKLon3QQQdF20vKp5xySrS5GvEf//jHpF1RxXWWvhodlq34GvbSydlnnx3tM888M9nGi1bmpTwDaboxSxMsbQDp9cC2L1ey9957R/vxxx+PtperOTyiI+FLpfBrloH8YtY8P/lrmcdlkbSfd6/18zTfC/l6KLrnsvxWFIqSt5JCrZCnRwghhBClQA89QgghhCgFeugRQgghRClo9VXWGY6D8Ppv0eq6DOt/XmvmlHNeDsKXL999992jvfHGG0d77NixSTsu7X3nnXfmHhMfe0dOWWf9lzVaH7/RkpTw4447Lnn98MMPR5v16o022ihpd8YZZ0R7v/32i/YxxxyTtOvatWuz37sk6clrrLFGs/YHH3xQ9T4akWpjtIrieDgO7rLLLou2j3/60Y9+FG0ecw8++GDSbpdddom2j+NhfBwPc8IJJ0R7n332iTZfR40Cx7twzA3H6QDpePExPZxWzH3u+5XHI/e/j9tgeJz5dn/729+ivf/++0d79OjRSbt6x360FX5MzZs3L9qbb755tP154372Ket8roqWJcmj2vuxP3ZeQoLLevjrkH9LUfmaWiBPjxBCCCFKgR56hBBCCFEK2lTe4vRUXt3c4+URdoVxBUjvWvPVIZvw6a5c2XPLLbeMtnefcpplXspec8fbyBStyMu/s9qU5Pvvvz95fdNNN0X78ssvj3avXr2Sdttvv320uWIru0yBNP313HPPjfZf//rXpB3LWwcccEC0uf+BVLaaNm1asu13v/tdtH/2s59F+6GHHkra7bHHHmgNmlzV9b7+qt0/VwX+xz/+kWzj15yK7qvs/s///E+0X3zxxWh7Keb000+v6pgYn7596623RpuvsUaQt/xc17lz52hzqvDAgQOr3ieniLMMwvMgkMq5fBwtXcWeJUieBx599NGk3XrrrZe7bciQIVV9V3vEryrO8hafXz8f8+tah1X4/XHf8vf665DL0nA4C8t0QFrqoEiCrgUd5+4shBBCCFGAHnqE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\n",
-      "text/plain": [
-       "<Figure size 720x720 with 25 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "plt.figure(figsize=(10,10))\n",
     "i = 0\n",
-    "for (image, label) in test_dataset.take(25):\n",
+    "for (image, label) in test_dataset_f.take(25):\n",
     "    image = image.numpy().reshape((28,28))\n",
     "    plt.subplot(5,5,i+1)\n",
     "    plt.xticks([])\n",
     "    plt.yticks([])\n",
     "    plt.grid(False)\n",
-    "    plt.imshow(image, cmap=plt.cm.binary)\n",
+    "    plt.imshow(image, cmap=plt.cm.binary)   # cmap: https://matplotlib.org/stable/tutorials/colors/colormaps.html\n",
     "    plt.xlabel(class_names[label])\n",
     "    i += 1\n",
     "plt.show()"
@@ -673,21 +608,310 @@
    "cell_type": "markdown",
    "metadata": {
     "colab_type": "text",
-    "id": "KTWFLcVQDDEr"
+    "id": "-KtnHECKZni_"
    },
    "source": [
-    "Decide whether you want to work with the traditional or Fashion MNIST dataset, then extract 5000 training examples and \n",
-    "500 test examples."
+    "# Exercises\n",
+    "\n",
+    "1. Apply Nearest Neighbour with L1 distance to this subset of the dataset and determine the accuracy on the \n",
+    "test dataset and plot the confusion matrix.\n",
+    "\n",
+    "2. Apply K-Nearest Neighbour with $k=5$ and L2 distance to this subset of the dataset and determine the accuracy on the test dataset and plot the confusion matrix.\n",
+    "\n",
+    "3. Determine by means of 5-fold cross-validation the best value of $k$ in the set $\\{1,4,5,10,12,18,20\\}$.\n",
+    "\n",
+    "4. Scale the pixel values to the interval $[0, 1]$ and compute the test accuracy for the best value of k determined in exercise 3.\n",
+    "\n",
+    "5. Implement the cosine distance measure in the k-nearest neighbour classifier. The cosine distance between two vectors $a$ and $b$ can be computed by\n",
+    "\n",
+    "```python\n",
+    "from numpy.linalg import norm\n",
+    "from numpy import dot\n",
+    "\n",
+    "dists[a,b] = 1 - dot(a, b)/(norm(a)*norm(b))\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Create classes and confusion matrix plotting function"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
-   "metadata": {
-    "colab": {},
-    "colab_type": "code",
-    "id": "tZKtLTf_DDEu"
-   },
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "class KNearestNeighbor():\n",
+    "  \"\"\" a kNN classifier with L2 distance \"\"\"\n",
+    "\n",
+    "  def __init__(self):\n",
+    "    pass\n",
+    "\n",
+    "  def train(self, X, y):\n",
+    "    \"\"\"\n",
+    "    Train the classifier. For k-nearest neighbors this is just \n",
+    "    memorizing the training data.\n",
+    "\n",
+    "    Inputs:\n",
+    "    - X: A numpy array of shape (num_train, D) containing the training data\n",
+    "      consisting of num_train samples each of dimension D.\n",
+    "    - y: A numpy array of shape (N,) containing the training labels, where\n",
+    "         y[i] is the label for X[i].\n",
+    "    \"\"\"\n",
+    "    self.X_train = X.astype('float')\n",
+    "    self.y_train = y\n",
+    "    \n",
+    "  def predict(self, X, k=1, num_loops=0):\n",
+    "    \"\"\"\n",
+    "    Predict labels for test data using this classifier.\n",
+    "\n",
+    "    Inputs:\n",
+    "    - X: A numpy array of shape (num_test, D) containing test data consisting\n",
+    "         of num_test samples each of dimension D.\n",
+    "    - k: The number of nearest neighbors that vote for the predicted labels.\n",
+    "    - num_loops: Determines which implementation to use to compute distances\n",
+    "      between training points and testing points.\n",
+    "\n",
+    "    Returns:\n",
+    "    - y: A numpy array of shape (num_test,) containing predicted labels for the\n",
+    "      test data, where y[i] is the predicted label for the test point X[i].  \n",
+    "    \"\"\"\n",
+    "    if num_loops == 0:\n",
+    "      dists = self.compute_distances_no_loops(X)\n",
+    "    elif num_loops == 1:\n",
+    "      dists = self.compute_distances_one_loop(X)\n",
+    "    elif num_loops == 2:\n",
+    "      dists = self.compute_distances_two_loops(X)\n",
+    "    else:\n",
+    "      raise ValueError('Invalid value %d for num_loops' % num_loops)\n",
+    "\n",
+    "    return self.predict_labels(dists, k=k)\n",
+    "\n",
+    "  def compute_distances_two_loops(self, X):\n",
+    "    \"\"\"\n",
+    "    Compute the distance between each test point in X and each \n",
+    "    training point in self.X_train using a nested loop over both \n",
+    "    the training data and the test data.\n",
+    "\n",
+    "    Inputs:\n",
+    "    - X: A numpy array of shape (num_test, D) containing test data.\n",
+    "\n",
+    "    Returns:\n",
+    "    - dists: A numpy array of shape (num_test, num_train) where \n",
+    "      dists[i, j] is the L2 (Euclidean) distance between the ith test \n",
+    "      point and the jth training point.\n",
+    "    \"\"\"\n",
+    "    num_test = X.shape[0]\n",
+    "    num_train = self.X_train.shape[0]\n",
+    "    dists = np.zeros((num_test, num_train))   # return matrix of size num_test x num_train filled with 0s\n",
+    "    X = X.astype('float')\n",
+    "    for i in range(num_test):\n",
+    "      for j in range(num_train):\n",
+    "          dists[i, j] = np.sqrt(np.sum(np.square(self.X_train[j,:] - X[i,:])))   # assign value for cell (i, j) in matrix dists\n",
+    "        \n",
+    "    return dists\n",
+    "\n",
+    "  def compute_distances_one_loop(self, X):\n",
+    "    \"\"\"\n",
+    "    Compute the distance between each test point in X and each training point\n",
+    "    in self.X_train using a single loop over the test data.\n",
+    "\n",
+    "    Input / Output: Same as compute_distances_two_loops\n",
+    "    \"\"\"\n",
+    "    num_test = X.shape[0]\n",
+    "    num_train = self.X_train.shape[0]\n",
+    "    dists = np.zeros((num_test, num_train))\n",
+    "    X = X.astype('float')\n",
+    "    for i in range(num_test):\n",
+    "      dists[i, :] = np.sqrt(np.sum(np.square(self.X_train - X[i,:]), axis = 1))\n",
+    "      \n",
+    "     \n",
+    "    return dists\n",
+    "\n",
+    "  def compute_distances_no_loops(self, X):\n",
+    "    \"\"\"\n",
+    "    Compute the distance between each test point in X and each training point\n",
+    "    in self.X_train using no explicit loops.\n",
+    "\n",
+    "    Input / Output: Same as compute_distances_two_loops\n",
+    "    \"\"\"\n",
+    "    num_test = X.shape[0]\n",
+    "    num_train = self.X_train.shape[0]\n",
+    "    dists = np.zeros((num_test, num_train)) \n",
+    "    X=X.astype('float')\n",
+    "    \n",
+    "    # Most \"elegant\" solution leads however to memory issues\n",
+    "    # dists = np.sqrt(np.square((self.X_train[:, np.newaxis, :] - X)).sum(axis=2)).T\n",
+    "    # split (p-q)^2 to p^2 + q^2 - 2pq\n",
+    "    dists = np.sqrt((X**2).sum(axis=1)[:, np.newaxis] + (self.X_train**2).sum(axis=1) - 2 * X.dot(self.X_train.T))\n",
+    "                     \n",
+    "    \n",
+    "    \n",
+    "    return dists\n",
+    "\n",
+    "  def predict_labels(self, dists, k=1):\n",
+    "    \"\"\"\n",
+    "    Given a matrix of distances between test points and training points,\n",
+    "    predict a label for each test point.\n",
+    "\n",
+    "    Inputs:\n",
+    "    - dists: A numpy array of shape (num_test, num_train) where dists[i, j]\n",
+    "      gives the distance betwen the ith test point and the jth training point.\n",
+    "\n",
+    "    Returns:\n",
+    "    - y: A numpy array of shape (num_test,) containing predicted labels for the\n",
+    "      test data, where y[i] is the predicted label for the test point X[i].  \n",
+    "    \"\"\"\n",
+    "    num_test = dists.shape[0]\n",
+    "    y_pred = np.zeros(num_test, dtype='float64')   # array with num_test elements all = 0\n",
+    "    for i in range(num_test):\n",
+    "        # A list of length k storing the labels of the k nearest neighbors to\n",
+    "        # the ith test point.\n",
+    "        closest_y = []\n",
+    "        # get the k indices with smallest distances\n",
+    "        min_indices = np.argsort(dists[i,:])[:k] \n",
+    "        closest_y = np.bincount(self.y_train[min_indices])\n",
+    "        # predict the label of the nearest example\n",
+    "        y_pred[i] = np.argmax(closest_y)  \n",
+    "\n",
+    "    return y_pred"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "class KNearestNeighbor_L1(KNearestNeighbor):\n",
+    "  \"\"\" a kNN classifier with L1 distance \"\"\"\n",
+    "\n",
+    "  def __init__(self):\n",
+    "    super().__init__()\n",
+    "    \n",
+    "\n",
+    "  def compute_distances_one_loop(self, X):\n",
+    "    \"\"\"\n",
+    "    We overwrite the compute_distance_one_loop method of the parent class \n",
+    "    KNearestNeighbor. \n",
+    "    Compute the distance between each test point in X and each training point\n",
+    "    in self.X_train using one loop and the L1 distance measure.\n",
+    "\n",
+    "    Input / Output: Same as compute_distances_two_loops\n",
+    "    \"\"\"\n",
+    "    num_test = X.shape[0]\n",
+    "    num_train = self.X_train.shape[0]\n",
+    "    dists = np.zeros((num_test, num_train))\n",
+    "    X = X.astype('float')\n",
+    "    for i in range(num_test):\n",
+    "      dists[i, :] = (np.sum(np.abs(self.X_train - X[i,:]), axis = 1))\n",
+    "    return dists \n",
+    "  \n",
+    "  def compute_distances_two_loops(self, X):\n",
+    "    \"\"\"\n",
+    "    Compute the distance between each test point in X and each \n",
+    "    training point in self.X_train using a nested loop over both \n",
+    "    the training data and the test data.\n",
+    "\n",
+    "    Inputs:\n",
+    "    - X: A numpy array of shape (num_test, D) containing test data.\n",
+    "\n",
+    "    Returns:\n",
+    "    - dists: A numpy array of shape (num_test, num_train) where \n",
+    "      dists[i, j] is the L1 distance between the ith test \n",
+    "      point and the jth training point.\n",
+    "    \"\"\"\n",
+    "    num_test = X.shape[0]\n",
+    "    num_train = self.X_train.shape[0]\n",
+    "    dists = np.zeros((num_test, num_train))\n",
+    "    X = X.astype('float')\n",
+    "    for i in range(num_test):\n",
+    "      for j in range(num_train):\n",
+    "          dists[i, j] = np.sum(np.abs(self.X_train[j,:] - X[i,:]))\n",
+    "        \n",
+    "    return dists"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# utility function for plotting confusion matrix\n",
+    "import matplotlib.pyplot as plt\n",
+    "import seaborn as sns\n",
+    "from sklearn.metrics import confusion_matrix\n",
+    "\n",
+    "def plot_confmat(y_true, y_pred):\n",
+    "    \"\"\"\n",
+    "    Plot the confusion matrix and save to user_files dir\n",
+    "    \"\"\"\n",
+    "    conf_matrix = confusion_matrix(y_true, y_pred)\n",
+    "    fig = plt.figure(figsize=(9,9))\n",
+    "    ax = fig.add_subplot(111)\n",
+    "    sns.heatmap(conf_matrix,\n",
+    "                annot=True,\n",
+    "                fmt='.0f')\n",
+    "    plt.title('Confusion matrix')\n",
+    "    ax.set_xticklabels(class_names)\n",
+    "    ax.set_yticklabels(class_names)\n",
+    "    plt.ylabel('True')\n",
+    "    plt.xlabel('Predicted')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# k-fold cross validation\n",
+    "def k_fold_cv(num_folds, k_choices):\n",
+    "    X_train_folds = []\n",
+    "    y_train_folds = []\n",
+    "    \n",
+    "    num_train = X_train.shape[0]\n",
+    "    fold_size = np.ceil(num_train/num_folds).astype('int')\n",
+    "    \n",
+    "    X_train_folds = np.split(X_train, [(i + 1)*fold_size for i in np.arange(num_folds)])\n",
+    "    y_train_folds = np.split(y_train, [(i + 1)*fold_size for i in np.arange(num_folds)])\n",
+    "    \n",
+    "    k_to_accuracies = {}\n",
+    "    \n",
+    "    for k in k_choices:\n",
+    "        k_to_accuracies[k] = []\n",
+    "        classifier = KNearestNeighbor()\n",
+    "        for i in range(num_folds):\n",
+    "            X_cv_training = np.concatenate([x for k, x in enumerate(X_train_folds) if k!=i], axis=0)\n",
+    "            y_cv_training = np.concatenate([x for k, x in enumerate(y_train_folds) if k!=i], axis=0)\n",
+    "            classifier.train(X_cv_training, y_cv_training)\n",
+    "            dists = classifier.compute_distances_no_loops(X_train_folds[i])\n",
+    "            y_test_pred = classifier.predict_labels(dists, k=k)\n",
+    "            k_to_accuracies[k].append(np.mean(y_train_folds[i] == y_test_pred))\n",
+    "    \n",
+    "    k = next(key for key, value in k_to_accuracies.items() if value == sorted( k_to_accuracies.values(), reverse=True)[0])\n",
+    "    \n",
+    "    return k"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Traditional MNIST Dataset\n",
+    "\n",
+    "Extract 5000 training examples and 500 test examples."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -696,9 +920,17 @@
       "Shape of image training data :  (5000, 784)\n",
       "Shape of training data labels :  (5000,)\n"
      ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "2022-03-13 16:25:40.581942: W tensorflow/core/kernels/data/cache_dataset_ops.cc:768] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.\n"
+     ]
     }
    ],
    "source": [
+    "# training sample\n",
     "i=0\n",
     "for (image, label) in train_dataset.take(5000):\n",
     "    if i==0:\n",
@@ -708,18 +940,17 @@
     "        X_train = np.concatenate([X_train, image.numpy().reshape((1,28*28))], axis=0)\n",
     "        y_train = np.concatenate([y_train, np.array([label])], axis=0)\n",
     "    i+=1\n",
+    "\n",
     "print(\"Shape of image training data : \", X_train.shape)\n",
-    "print(\"Shape of training data labels : \", y_train.shape)"
+    "print(\"Shape of training data labels : \", y_train.shape)\n",
+    "\n",
+    "num_train = X_train.shape[0]"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
-   "metadata": {
-    "colab": {},
-    "colab_type": "code",
-    "id": "Rwb7aQgqDDEy"
-   },
+   "execution_count": 14,
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -728,9 +959,17 @@
       "Shape of image test data :  (500, 784)\n",
       "Shape of test data labels :  (500,)\n"
      ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "2022-03-13 16:25:42.569914: W tensorflow/core/kernels/data/cache_dataset_ops.cc:768] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.\n"
+     ]
     }
    ],
    "source": [
+    "# test sample\n",
     "j=0\n",
     "for (image, label) in test_dataset.take(500):\n",
     "    if j==0:\n",
@@ -740,40 +979,287 @@
     "        X_test = np.concatenate([X_test, image.numpy().reshape((1,28*28))], axis=0)\n",
     "        y_test = np.concatenate([y_test, np.array([label])], axis=0)\n",
     "    j+=1\n",
+    "\n",
     "print(\"Shape of image test data : \", X_test.shape)\n",
-    "print(\"Shape of test data labels : \", y_test.shape)"
+    "print(\"Shape of test data labels : \", y_test.shape)\n",
+    "\n",
+    "num_test = X_test.shape[0]"
    ]
   },
   {
    "cell_type": "markdown",
-   "metadata": {
-    "colab_type": "text",
-    "id": "-KtnHECKZni_"
-   },
+   "metadata": {},
    "source": [
-    "# Exercises\n",
-    "\n",
-    "1. Apply Nearest Neighbour with L1 distance to this subset of the dataset and determine the accuracy on the \n",
-    "test dataset and plot the confusion matrix.\n",
-    "\n",
-    "2. Apply K-Nearest Neighbour with $k=5$ and L2 distance to this subset of the dataset and determine the accuracy on the test dataset and plot the confusion matrix.\n",
-    "\n",
-    "3. Determine by means of 5-fold cross-validation the best value of $k$ in the set $\\{1,4,5,10,12,18,20\\}$.\n",
+    "1. Apply Nearest Neighbour with L1 distance to this subset of the dataset and determine the accuracy on the test dataset and plot the confusion matrix."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Got 467 / 500 correct => accuracy: 0.934000\n"
+     ]
+    }
+   ],
+   "source": [
+    "classifier = KNearestNeighbor_L1()   # initiate KNearestNeighbor_L1 instance\n",
+    "classifier.train(X_train, y_train)   # train classifier on sample training set\n",
+    "dists = classifier.compute_distances_one_loop(X_test)   # test implementation\n",
+    "y_test_pred = classifier.predict_labels(dists, k=1)   # create prediction using nearest neighbor (k=1)\n",
     "\n",
-    "4. Scale the pixel values to the interval $[0, 1]$ and compute the test accuracy for the best value of k determined in exercise 3.\n",
+    "# calculate accuracy\n",
+    "num_correct = np.sum(y_test_pred == y_test)\n",
+    "accuracy = float(num_correct) / len(y_test_pred)\n",
+    "print('Got %d / %d correct => accuracy: %f' % (num_correct, num_test, accuracy)) "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 648x648 with 2 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot confusion matrix  \n",
+    "plot_confmat(y_test, y_test_pred)    "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "2. Apply K-Nearest Neighbour with $k=5$ and L2 distance to this subset of the dataset and determine the accuracy on the test dataset and plot the confusion matrix."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Got 474 / 500 correct => accuracy: 0.948000\n"
+     ]
+    }
+   ],
+   "source": [
+    "classifier = KNearestNeighbor()   # initiate KNearestNeighbor instance\n",
+    "classifier.train(X_train, y_train)   # train classifier on sample training set\n",
+    "dists = classifier.compute_distances_one_loop(X_test)   # test implementation\n",
+    "y_test_pred = classifier.predict_labels(dists, k=5)   # create prediction using k=5\n",
     "\n",
-    "5. Implement the cosine distance measure in the k-nearest neighbour classifier. The cosine distance between two vectors $a$ and $b$ can be computed by\n",
+    "# calculate accuracy\n",
+    "num_correct = np.sum(y_test_pred == y_test)\n",
+    "accuracy = float(num_correct) / len(y_test_pred)\n",
+    "print('Got %d / %d correct => accuracy: %f' % (num_correct, num_test, accuracy)) "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 648x648 with 2 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "plot_confmat(y_test, y_test_pred)    "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "3. Determine by means of 5-fold cross-validation the best value of $k$ in the set $\\{1,4,5,10,12,18,20\\}$."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The best value of k in the given set is 4\n"
+     ]
+    }
+   ],
+   "source": [
+    "best_k = k_fold_cv(num_folds = 5, k_choices = [1, 4, 5, 10, 12, 18, 20])\n",
+    "print('The best value of k in the given set is %d' % (best_k))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "4. Scale the pixel values to the interval  [0,1]  and compute the test accuracy for the best value of k determined in exercise 3."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "X_train_scaled = X_train / 255\n",
+    "y_train_scaled = y_train / 255\n",
+    "X_test_scaled = X_test / 255\n",
+    "y_test_scaled = y_test / 255"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The best value of k in the given set is 4\n"
+     ]
+    }
+   ],
+   "source": [
+    "best_k_scaled = k_fold_cv(num_folds = 5, k_choices = [1, 4, 5, 10, 12, 18, 20])\n",
+    "print('The best value of k in the given set is %d' % (best_k_scaled))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "5. Implement the cosine distance measure in the k-nearest neighbour classifier. The cosine distance between two vectors  𝑎  and  𝑏  can be computed by\n",
     "\n",
-    "```python\n",
+    "from numpy.linalg import norm  \n",
+    "from numpy import dot  \n",
+    "  \n",
+    "dists[a,b] = 1 - dot(a, b)/(norm(a)*norm(b))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Got 473 / 500 correct => accuracy: 0.946000\n"
+     ]
+    }
+   ],
+   "source": [
     "from numpy.linalg import norm\n",
     "from numpy import dot\n",
     "\n",
-    "dists[a,b] = 1 - dot(a, b)/(norm(a)*norm(b))\n",
-    "```\n",
+    "classifier = KNearestNeighbor()   # initiate KNearestNeighbor instance\n",
+    "classifier.train(X_train, y_train)   # train classifier on sample training set\n",
+    "\n",
+    "num_test = X_test.shape[0]\n",
+    "num_train = X_train.shape[0]\n",
+    "dists = np.zeros((num_test, num_train))\n",
+    "X_test = X_test.astype('float')\n",
+    "for i in range(num_test):\n",
+    "    for j in range(num_train):\n",
+    "        dists[i, j] = 1 - dot(X_test[i,:], X_train[j,:])/(norm(X_test[i])*norm(X_train[j]))\n",
     "\n",
+    "y_test_pred = classifier.predict_labels(dists, k=1)   # create prediction\n",
+    "\n",
+    "# calculate accuracy\n",
+    "num_correct = np.sum(y_test_pred == y_test)\n",
+    "accuracy = float(num_correct) / len(y_test_pred)\n",
+    "print('Got %d / %d correct => accuracy: %f' % (num_correct, num_test, accuracy)) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Fashion MNIST Dataset\n",
     "\n",
-    "`\n"
+    "Extract 5000 training examples and 500 test examples."
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# training sample\n",
+    "i=0\n",
+    "for (image, label) in train_dataset_f.take(5000):\n",
+    "    if i==0:\n",
+    "        X_train_f = image.numpy().reshape((1,28*28))\n",
+    "        y_train_f = np.array([label])\n",
+    "    else:\n",
+    "        X_train_f = np.concatenate([X_train_f, image.numpy().reshape((1,28*28))], axis=0)\n",
+    "        y_train_f = np.concatenate([y_train_f, np.array([label])], axis=0)\n",
+    "    i+=1\n",
+    "print(\"Shape of image training data : \", X_train_f.shape)\n",
+    "print(\"Shape of training data labels : \", y_train_f.shape)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# test sample\n",
+    "j=0\n",
+    "for (image, label) in test_dataset_f.take(500):\n",
+    "    if j==0:\n",
+    "        X_test_f = image.numpy().reshape((1,28*28))\n",
+    "        y_test_f = np.array([label])\n",
+    "    else:\n",
+    "        X_test_f = np.concatenate([X_test_f, image.numpy().reshape((1,28*28))], axis=0)\n",
+    "        y_test_f = np.concatenate([y_test_f, np.array([label])], axis=0)\n",
+    "    j+=1\n",
+    "print(\"Shape of image test data : \", X_test_f.shape)\n",
+    "print(\"Shape of test data labels : \", y_test_f.shape)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
@@ -785,7 +1271,7 @@
    "provenance": []
   },
   "kernelspec": {
-   "display_name": "Python 3",
+   "display_name": "Python 3 (ipykernel)",
    "language": "python",
    "name": "python3"
   },
@@ -799,7 +1285,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.7.6"
+   "version": "3.9.7"
   }
  },
  "nbformat": 4,
-- 
GitLab