diff --git "a/Notebooks/EfficientNet_ConvNext_Fusion.ipynb" "b/Notebooks/EfficientNet_ConvNext_Fusion.ipynb" new file mode 100644--- /dev/null +++ "b/Notebooks/EfficientNet_ConvNext_Fusion.ipynb" @@ -0,0 +1,5180 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "CFkmw1GyQaDr" + }, + "source": [ + "## EfficientNet-V2-S + ConvNeXt Fusion (Multimodal Ensemble)\n", + "\n", + "This notebook implements a **feature-level fusion** of two pretrained backbones:\n", + "- **EfficientNet-V2-S** (torchvision) — compound-scaled CNN with depthwise convolutions\n", + "- **ConvNeXt-Small** (HuggingFace) — transformer-inspired CNN with large kernels + LayerNorm\n", + "\n", + "Both backbones process the **same image** independently. Their feature vectors are **concatenated** and passed through a shared fusion head for classification.\n", + "\n", + "```\n", + "Image ──► EfficientNet-V2-S (frozen except last 3 blocks) ──► feature_eff (1280-d)\n", + " │\n", + " ── concat ──► Fusion Head ──► num_classes\n", + " │\n", + "Image ──► ConvNeXt-Small (frozen except stages 2 & 3) ──► feature_cnx (768-d)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hIG2Yl9kQaDs", + "outputId": "dd6e36c8-0953-4871-ce90-e1948cb63b4b" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.12/dist-packages (3.10.0)\n", + "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.12/dist-packages (1.6.1)\n", + "Requirement already satisfied: transformers in /usr/local/lib/python3.12/dist-packages (5.0.0)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (1.3.3)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (4.62.1)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (1.5.0)\n", + "Requirement already satisfied: numpy>=1.23 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (2.0.2)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (26.1)\n", + "Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (11.3.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (3.3.2)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (2.9.0.post0)\n", + "Requirement already satisfied: scipy>=1.6.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (1.16.3)\n", + "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (1.5.3)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn) (3.6.0)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from transformers) (3.29.0)\n", + "Requirement already satisfied: huggingface-hub<2.0,>=1.3.0 in /usr/local/lib/python3.12/dist-packages (from transformers) (1.11.0)\n", + "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.12/dist-packages (from transformers) (6.0.3)\n", + "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.12/dist-packages (from transformers) (2025.11.3)\n", + "Requirement already satisfied: tokenizers<=0.23.0,>=0.22.0 in /usr/local/lib/python3.12/dist-packages (from transformers) (0.22.2)\n", + "Requirement already satisfied: typer-slim in /usr/local/lib/python3.12/dist-packages (from transformers) (0.24.0)\n", + "Requirement already satisfied: safetensors>=0.4.3 in /usr/local/lib/python3.12/dist-packages (from transformers) (0.7.0)\n", + "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.12/dist-packages (from transformers) (4.67.3)\n", + "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub<2.0,>=1.3.0->transformers) (2025.3.0)\n", + "Requirement already satisfied: hf-xet<2.0.0,>=1.4.3 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub<2.0,>=1.3.0->transformers) (1.4.3)\n", + "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub<2.0,>=1.3.0->transformers) (0.28.1)\n", + "Requirement already satisfied: typer in /usr/local/lib/python3.12/dist-packages (from huggingface-hub<2.0,>=1.3.0->transformers) (0.24.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub<2.0,>=1.3.0->transformers) (4.15.0)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.7->matplotlib) (1.17.0)\n", + "Requirement already satisfied: anyio in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (4.13.0)\n", + "Requirement already satisfied: certifi in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (2026.4.22)\n", + "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (1.0.9)\n", + "Requirement already satisfied: idna in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (3.13)\n", + "Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.12/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (0.16.0)\n", + "Requirement already satisfied: click>=8.2.1 in /usr/local/lib/python3.12/dist-packages (from typer->huggingface-hub<2.0,>=1.3.0->transformers) (8.3.3)\n", + "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.12/dist-packages (from typer->huggingface-hub<2.0,>=1.3.0->transformers) (1.5.4)\n", + "Requirement already satisfied: rich>=12.3.0 in /usr/local/lib/python3.12/dist-packages (from typer->huggingface-hub<2.0,>=1.3.0->transformers) (13.9.4)\n", + "Requirement already satisfied: annotated-doc>=0.0.2 in /usr/local/lib/python3.12/dist-packages (from typer->huggingface-hub<2.0,>=1.3.0->transformers) (0.0.4)\n", + "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.12/dist-packages (from rich>=12.3.0->typer->huggingface-hub<2.0,>=1.3.0->transformers) (4.0.0)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.12/dist-packages (from rich>=12.3.0->typer->huggingface-hub<2.0,>=1.3.0->transformers) (2.20.0)\n", + "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.12/dist-packages (from markdown-it-py>=2.2.0->rich>=12.3.0->typer->huggingface-hub<2.0,>=1.3.0->transformers) (0.1.2)\n" + ] + } + ], + "source": [ + "!pip install matplotlib scikit-learn transformers" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XvT9wBUXQaDt" + }, + "source": [ + "# Connecting to Google Drive" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "abIc7LfHQaDt", + "outputId": "a828ae92-c9d9-4407-94b9-8502fa565daf" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Mounted at /content/drive\n" + ] + } + ], + "source": [ + "from google.colab import drive\n", + "drive.mount('/content/drive')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YXWunW1vQaDu" + }, + "source": [ + "# Importing necessary libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "UEdoGDNUQaDu" + }, + "outputs": [], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "from torch.utils.data import Dataset, DataLoader\n", + "from torchvision.datasets import ImageFolder\n", + "from torchvision import transforms, models\n", + "from tqdm import tqdm\n", + "import matplotlib.pyplot as plt\n", + "import random\n", + "import os\n", + "import seaborn as sns\n", + "from sklearn.metrics import confusion_matrix, classification_report\n", + "from transformers import get_cosine_schedule_with_warmup\n", + "from transformers import ConvNextModel, ConvNextImageProcessor" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jiSes_YDQaDv" + }, + "source": [ + "# Loading the ConvNeXt processor" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 49, + "referenced_widgets": [ + "5c691139bd9245fe906087329e6c0fc7", + "ed1af0868ee840b6a80bb80b95cf4b6c", + "03a78557863a49168345f16034157bf7", + "a8e0af84aac743cfa71fc7c9030c4af5", + "0e406f1eaffc42e492923aa2b0db398c", + "927fe3b4a5be477dab0ea2c232f22a17", + "583fd4b2336e4769940fa3b7c8981769", + "c6c6a30a3d4f452f87f3bbf74b8c96c9", + "6e5128983bcb4fe088cee8640e9c33c6", + "32070e80f4e0416686e021d94fa29438", + "3dae7845e47745b0b454c25f135127b8" + ] + }, + "id": "5TwotVj2QaDw", + "outputId": "3c14db30-81ac-4544-eb07-52322e654c9e" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "preprocessor_config.json: 0%| | 0.00/266 [00:00" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAH4CAYAAACbup4ZAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAiL1JREFUeJzt3Xd8lFXa8PHfPTPpvZGEAKF3kF5EioqCIAIi2AUVLGsX99m+6rPdLe8W1911dx/dVXdBFLtIEyzY6CWFBEhIT0iftKnn/WPCQCCZSUKSKbm+H/OR3HPmzjWTzFxzzn2dczSllEIIIYQQHqXzdABCCCGEkIQshBBCeAVJyEIIIYQXkIQshBBCeAFJyEIIIYQXkIQshBBCeAFJyEIIIYQXkIQshBBCeAFJyEIIIYQXkITsp9asWcPAgQM7dd9nnnkGTdO6NiDhNHDgQNasWePpMPzW7t270TSN3bt3d/vPau21omkaDz/8cLf/bICXX34ZTdPIzc3tkZ8nupck5B6maVq7vnrizaQ3OfvG5e6rsx9iLvTFF1/wzDPPUF1d3SXn6yrnP1aDwUBsbCyTJ0/mscceIz09vdPnbWho4Jlnnunyv9vc3NwWMQcEBBAfH8/ll1/O97//ffLy8rrsZ/385z/n7bff7rLzdSVvjk10HU3Wsu5Zr776aovv//3vf7N9+3ZeeeWVFsevueYaEhMTO/1zLBYLdrudoKCgDt/XarVitVoJDg7u9M/3NqdOneKLL75ocWzt2rVMmzaN++67z3ksPDycZcuWXfLP+81vfsO3v/1tcnJyLkryJpMJnU5HQEDAJf+cjtI0jWuuuYa77roLpRQ1NTUcPnyYTZs2UV9fz69+9SuefPLJDp+3vLychIQEnn76aZ555pkuizc3N5dBgwZx6623smjRIux2O1VVVezdu5fNmzejaRr//Oc/ueWWW5z3sdvtmM1mAgMD0ena3+cIDw/npptu4uWXX273fVp7rWiaxkMPPcTzzz/f7vN0NjabzYbFYiEoKEhGtfyAwdMB9DZ33HFHi++/+uortm/fftHxCzU0NBAaGtrun3Mpb/YGgwGDwb/+NAYPHszgwYNbHHvggQcYPHiw2+e+q3XmQ1JXGj58+EWP+Ze//CVLlixh/fr1jBw5kkWLFnkoutZNmjTpophPnz7Ntddey+rVqxk1ahSXXXYZADqdrts/TNbX1xMWFubx14per0ev13vs54uuJUPWXmjevHmMHTuW/fv3M2fOHEJDQ/n+978PwDvvvMPixYvp27cvQUFBDBkyhJ/85CfYbLYW57jwGvLZob/f/OY3vPjiiwwZMoSgoCCmTp3K3r17W9zX1XWxt99+m7FjxxIUFMSYMWP46KOPLop/9+7dTJkyheDgYIYMGcLf/va3dl2XfvjhhwkPD6ehoeGi22699VaSkpKcj3Pfvn0sWLCA+Ph4QkJCGDRoEPfcc4/L87dHYWEh99xzD4mJic7H+H//938XtfvTn/7EmDFjCA0NJSYmhilTpvCf//wHcDx/3/72twEYNGiQc7j17HW+C68hnx1O37NnD08++SQJCQmEhYWxfPlyzpw50+Ln2u12nnnmGfr27UtoaChXXnkl6enpl3xdOi4ujg0bNmAwGPjZz37mPG42m/nxj3/M5MmTiYqKIiwsjNmzZ7Nr1y5nm9zcXBISEgB49tlnnY/3bE/5yJEjrFmzhsGDBxMcHExSUhL33HMPFRUVnY4XIDU1lZdffhmz2cxzzz3nPN7aNeTs7GxWrFhBUlISwcHB9OvXj1tuuYWamhrA8fddX1/Pv/71L2f8Z5/Ps3+76enp3HbbbcTExHDFFVe0uK01r732GiNGjCA4OJjJkyfz6aeftri9rTqPC8/pKra2riG/8MILjBkzhqCgIPr27ctDDz100eWTs+8z6enpXHnllYSGhpKSktLiuRQ9y7+6QX6koqKC6667jltuuYU77rjDOXz98ssvEx4ezpNPPkl4eDgff/wxP/7xj6mtreXXv/612/P+5z//wWg0cv/996NpGs899xw33ngjp06dctur/vzzz9m8eTPf+ta3iIiI4I9//CMrVqwgLy+PuLg4AA4ePMjChQtJTk7m2WefxWaz8b//+7/ON2xXbr75Zv785z/zwQcfsHLlSufxhoYG3nvvPdasWYNer6esrIxrr72WhIQEvvvd7xIdHU1ubi6bN292+zNcKS0tZcaMGc4PHwkJCWzZsoV7772X2tpaHn/8cQD+/ve/8+ijj3LTTTfx2GOP0dTUxJEjR/j666+57bbbuPHGG8nKyuK///0v/+///T/i4+MB3D4HjzzyCDExMTz99NPk5uby+9//nocffpiNGzc623zve9/jueeeY8mSJSxYsIDDhw+zYMECmpqaLumxAwwYMIC5c+eya9cuamtriYyMpLa2ln/84x/ceuutrFu3DqPRyD//+U8WLFjAN998w4QJE0hISOAvf/kLDz74IMuXL+fGG28EYPz48QBs376dU6dOcffdd5OUlERaWhovvvgiaWlpfPXVV5c01Dpz5kyGDBnC9u3b22xjNptZsGABJpOJRx55hKSkJAoLC3n//feprq4mKiqKV1555aJLGEOGDGlxnpUrVzJs2DB+/vOf4+5K3yeffMLGjRt59NFHCQoK4oUXXmDhwoV88803jB07tkOPsT2xne+ZZ57h2WefZf78+Tz44IMcP36cv/zlL+zdu5c9e/a0eJ1XVVWxcOFCbrzxRlatWsUbb7zBd77zHcaNG8d1113XoThFF1DCox566CF14a9h7ty5ClB//etfL2rf0NBw0bH7779fhYaGqqamJuex1atXq9TUVOf3OTk5ClBxcXGqsrLSefydd95RgHrvvfecx55++umLYgJUYGCgOnHihPPY4cOHFaD+9Kc/OY8tWbJEhYaGqsLCQuex7OxsZTAYLjrnhex2u0pJSVErVqxocfz1119XgPr000+VUkq99dZbClB79+51eT53wsLC1OrVq53f33vvvSo5OVmVl5e3aHfLLbeoqKgo53O/dOlSNWbMGJfn/vWvf60AlZOTc9FtqampLX7uSy+9pAA1f/58ZbfbncefeOIJpdfrVXV1tVJKqZKSEmUwGNSyZctanO+ZZ55RQItztgVQDz30UJu3P/bYYwpQhw8fVkopZbValclkatGmqqpKJSYmqnvuucd57MyZMwpQTz/99EXnbO1v9r///W+L32lbzv7d/vrXv26zzdKlSxWgampqlFJK7dq1SwFq165dSimlDh48qAC1adMmlz/rwr+Hs86+Hm699dY2bzsfoAC1b98+57HTp0+r4OBgtXz5cuexC1+jrs7ZVmxn/3bO/p2VlZWpwMBAde211yqbzeZs9/zzzytA/d///Z/z2Nn3mX//+9/OYyaTSSUlJV30GhQ9Q4asvVRQUBB33333RcdDQkKc/zYajZSXlzN79mwaGhrIzMx0e96bb76ZmJgY5/ezZ88GHEVP7syfP7/FJ/Px48cTGRnpvK/NZmPHjh0sW7aMvn37OtsNHTq0XZ+2NU1j5cqVfPjhh9TV1TmPb9y4kZSUFOcwYXR0NADvv/8+FovF7XnbQynFm2++yZIlS1BKUV5e7vxasGABNTU1HDhwwPnzCwoKLhrqv1T33Xdfi97i7NmzsdlsnD59GoCdO3ditVr51re+1eJ+jzzySJfFEB4eDjj+tsBxjTIwMBBwDJdXVlZitVqZMmWK8/lw5/y/2aamJsrLy5kxYwZAu8/RkZgvFBUVBcDWrVtbvRzSXg888EC7286cOZPJkyc7vx8wYABLly5l69atF11e6ko7duzAbDbz+OOPtyhoW7duHZGRkXzwwQct2oeHh7e4Nh8YGMi0adPa9X4gup4kZC+VkpLifCM8X1paGsuXLycqKorIyEgSEhKcL6iz18NcGTBgQIvvzybnqqqqDt/37P3P3resrIzGxkaGDh16UbvWjrXm5ptvprGxkXfffReAuro6PvzwQ1auXOlMVnPnzmXFihU8++yzxMfHs3TpUl566SVMJlO7fkZrzpw5Q3V1NS+++CIJCQktvs5+MCorKwPgO9/5DuHh4UybNo1hw4bx0EMPsWfPnk7/7LPc/W7OJuYLn8vY2NgWH7IuxdkPQhEREc5j//rXvxg/fjzBwcHExcWRkJDABx980K6/N4DKykoee+wxEhMTCQkJISEhgUGDBgHt+5vtTMznGzRoEE8++ST/+Mc/iI+PZ8GCBfz5z3/u8M8+G3N7DBs27KJjw4cPp6Gh4aK6gK509m9kxIgRLY4HBgYyePBg5+1n9evX76JLBue/pkXPkoTspc7vVZxVXV3N3LlzOXz4MP/7v//Le++9x/bt2/nVr34FOHow7rRVkanaMfvtUu7bXjNmzGDgwIG8/vrrALz33ns0NjZy8803O9tomsYbb7zBl19+ycMPP+wsxJo8eXKLnnVHnH3u7rjjDrZv397q16xZswAYNWoUx48fZ8OGDVxxxRW8+eabXHHFFTz99NOX9Nh74vl159ixY+j1emfyefXVV1mzZg1Dhgzhn//8Jx999BHbt2/nqquuatffG8CqVav4+9//zgMPPMDmzZvZtm2bsxiwvedwF3OfPn2IjIxss81vf/tbjhw5wve//30aGxt59NFHGTNmDAUFBe3+Oa29Ji9FW9fOu7MHfSFv+JsT50hRlw/ZvXs3FRUVbN68mTlz5jiP5+TkeDCqc/r06UNwcDAnTpy46LbWjrVl1apV/OEPf6C2tpaNGzcycOBA5xDn+WbMmMGMGTP42c9+xn/+8x9uv/12NmzYwNq1azsce0JCAhEREdhsNubPn++2fVhYGDfffDM333wzZrOZG2+8kZ/97Gd873vfIzg4uFvmhKampgKO5/L83lpFRUWX9Gjy8vL45JNPmDlzprO3+cYbbzB48GDnnN+zLvzw0dbjraqqYufOnTz77LP8+Mc/dh7Pzs6+5HgBvvzyS06ePNmuqWvjxo1j3Lhx/PCHP+SLL75g1qxZ/PWvf+WnP/2py8fQGa09vqysLEJDQ53FfTExMa0uHHNhL7YjsZ39Gzl+/HiLaX5ms5mcnJx2/W0Lz5Eesg85+2n2/E+vZrOZF154wVMhtaDX65k/fz5vv/02RUVFzuMnTpxgy5Yt7T7PzTffjMlk4l//+hcfffQRq1atanF7VVXVRZ/gJ0yYANDpYWu9Xs+KFSt48803OXbs2EW3nz/MeOF0ncDAQEaPHo1SynlNOywsDKBLV+q6+uqrMRgM/OUvf2lxvCsWoKisrOTWW2/FZrPxgx/8wHm8tb+5r7/+mi+//LLF/c/Okb/w8bZ2f4Df//73lxzz6dOnWbNmDYGBgc5pZq2pra3FarW2ODZu3Dh0Ol2Lv5ewsLAu+319+eWXLa6P5+fn884773Dttdc6n5MhQ4ZQU1PDkSNHnO2Ki4t56623Ljpfe2ObP38+gYGB/PGPf2zxnP/zn/+kpqaGxYsXX8KjEt1Nesg+5PLLLycmJobVq1fz6KOPomkar7zyilcNLz3zzDNs27aNWbNm8eCDD2Kz2Xj++ecZO3Yshw4datc5Jk2axNChQ/nBD36AyWRqMVwNjmuaL7zwAsuXL2fIkCEYjUb+/ve/ExkZeUkLWvzyl79k165dTJ8+nXXr1jF69GgqKys5cOAAO3bsoLKyEoBrr72WpKQkZs2aRWJiIhkZGTz//PMsXrzY2bM8W9Dzgx/8gFtuuYWAgACWLFniTNSdkZiYyGOPPcZvf/tbbrjhBhYuXMjhw4fZsmUL8fHx7e5FZWVl8eqrr6KUora21rlSV11dHb/73e9YuHChs+3111/P5s2bWb58OYsXLyYnJ4e//vWvjB49usXlgZCQEEaPHs3GjRsZPnw4sbGxjB07lrFjxzJnzhyee+45LBYLKSkpbNu2rcOjOgcOHODVV1/FbrdTXV3N3r17efPNN52vgbNTrFrz8ccf8/DDD7Ny5UqGDx+O1WrllVdecX4IO2vy5Mns2LGD3/3ud/Tt25dBgwYxffr0DsV51tixY1mwYEGLaU/gmKd91i233MJ3vvMdli9fzqOPPkpDQwN/+ctfGD58+EXFbu2NLSEhge9973s8++yzLFy4kBtuuIHjx4/zwgsvMHXq1B5fBEd0kCdKu8U5bU17amtazZ49e9SMGTNUSEiI6tu3r/qf//kftXXr1hbTPJRqe9pTa9NHuGC6SltTOVqbLnPhFB6llNq5c6eaOHGiCgwMVEOGDFH/+Mc/1Pr161VwcHAbz8LFfvCDHyhADR069KLbDhw4oG699VY1YMAAFRQUpPr06aOuv/76FtNM2qO1qSSlpaXqoYceUv3791cBAQEqKSlJXX311erFF190tvnb3/6m5syZo+Li4lRQUJAaMmSI+va3v+2cdnPWT37yE5WSkqJ0Ol2LqSltTXu6cBrXhdN3lHJMQ/rRj36kkpKSVEhIiLrqqqtURkaGiouLUw888IDbx0zzlBxA6XQ6FR0drSZOnKgee+wxlZaWdlF7u92ufv7zn6vU1FQVFBSkJk6cqN5///1Wp+x88cUXavLkySowMLDF31RBQYFavny5io6OVlFRUWrlypWqqKiozWlS5zv7d3v2y2AwqNjYWDV9+nT1ve99T50+ffqi+1z4vJ06dUrdc889asiQISo4OFjFxsaqK6+8Uu3YsaPF/TIzM9WcOXNUSEhIi2lkZ18PZ86cuehnuXqtvPrqq2rYsGHO5+383+NZ27ZtU2PHjlWBgYFqxIgR6tVXX231nG3FduG0p7Oef/55NXLkSBUQEKASExPVgw8+qKqqqlq0aet9pq3pWKL7yVrWokcsW7aMtLS0Lrt2KM6prq4mJiaGn/70py2Gm4UQvkWuIYsu19jY2OL77OxsPvzwQ+bNm+eZgPzIhc8tnLseK8+vEL5NesiiyyUnJzvXLj59+jR/+ctfMJlMHDx4sNX5maL9Xn75ZV5++WUWLVpEeHg4n3/+Of/973+59tpr2bp1q6fDE0JcAinqEl1u4cKF/Pe//6WkpISgoCBmzpzJz3/+c0nGXWD8+PEYDAaee+45amtrnYVeZ6fuCCF8l/SQhRBCCC8g15CFEEIILyAJWQghhPACkpCFEEIILyAJWQghhPACkpB7qWeeeca5/rMQQgjPk4TsJTRNc/n1zDPPXNK533777RbHnnrqKXbu3HlpQbfDM88843wMBoOB+Ph45syZw+9///sObwSxe/duNE3r0g0bhBDCW8g8ZC9RXFzs/PfGjRv58Y9/zPHjx53HwsPDu/TnhYeHd/k52zJmzBh27NiB3W6noqKC3bt389Of/pRXXnmF3bt3t7mxvBBC9CbSQ/YSSUlJzq+oqCg0TWtxbMOGDYwaNYrg4GBGjhzZYstFs9nMww8/THJyMsHBwaSmpvKLX/wCgIEDBwKwfPlyNE1zfn/hkPWaNWtYtmwZv/nNb0hOTiYuLo6HHnrIuZ0gOD40LF68mJCQEAYNGsR//vMfBg4c6HYrPYPBQFJSEn379mXcuHE88sgjfPLJJxw7doxf/epXznavvPIKU6ZMISIigqSkJG677TbKysoAyM3N5corrwQc+8hqmsaaNWsA+Oijj7jiiiuIjo4mLi6O66+/npMnT3bm1yCEEB4jCdkHvPbaa/z4xz/mZz/7GRkZGfz85z/nRz/6Ef/6178A+OMf/8i7777L66+/zvHjx3nttdeciXfv3r0AvPTSSxQXFzu/b82uXbs4efIku3bt4l//+pdzmcaz7rrrLoqKiti9ezdvvvkmL774ojNhdtTIkSO57rrr2Lx5s/OYxWLhJz/5CYcPH+btt98mNzfXmXT79+/Pm2++CTg2Xy8uLuYPf/gDAPX19Tz55JPs27ePnTt3otPpWL58OXa7vVOxCSGEJ8iQtQ94+umn+e1vf8uNN94IwKBBg0hPT+dvf/sbq1evJi8vj2HDhnHFFVegaRqpqanO+yYkJAAQHR1NUlKSy58TExPD888/j16vZ+TIkSxevJidO3eybt06MjMz2bFjB3v37mXKlCkA/OMf/7ik5TBHjhzJtm3bnN/fc889zn8PHjyYP/7xj0ydOpW6ujrCw8OJjY0FoE+fPkRHRzvbnr+nLcD//d//kZCQQHp6OmPHju10fEII0ZOkh+zl6uvrOXnyJPfee6/zum94eDg//elPncOya9as4dChQ4wYMYJHH320RZLriDFjxqDX653fJycnO3vAx48fx2AwMGnSJOftQ4cOJSYmptOPTSmFpmnO7/fv38+SJUsYMGAAERERzJ07F4C8vDyX58nOzubWW29l8ODBREZGOkcH3N1PCCG8ifSQvVxdXR0Af//735k+fXqL284mz0mTJpGTk8OWLVvYsWMHq1atYv78+bzxxhsd+lkBAQEtvtc0rVuHfTMyMhg0aBDg+OCxYMECFixYwGuvvUZCQgJ5eXksWLAAs9ns8jxLliwhNTWVv//97/Tt2xe73c7YsWPd3k8IIbyJJGQvl5iYSN++fTl16hS33357m+0iIyO5+eabufnmm7nppptYuHAhlZWVxMbGEhAQgM1mu6Q4RowYgdVq5eDBg0yePBmAEydOUFVV1anzZWZm8tFHH/G9733P+X1FRQW//OUv6d+/PwD79u1rcZ/AwECAFo+loqKC48eP8/e//53Zs2cD8Pnnn3cqJiGE8CRJyD7g2Wef5dFHHyUqKoqFCxdiMpnYt28fVVVVPPnkk/zud78jOTmZiRMnotPp2LRpE0lJSc7rrAMHDmTnzp3MmjWLoKCgTg0zjxw5kvnz53Pffffxl7/8hYCAANavX09ISEiLYefWWK1WSkpKLpr2NGHCBL797W8DMGDAAAIDA/nTn/7EAw88wLFjx/jJT37S4jypqalomsb777/PokWLCAkJISYmhri4OF588UWSk5PJy8vju9/9bocfnxBCeJpcQ/YBa9eu5R//+AcvvfQS48aNY+7cubz88svO4d6IiAiee+45pkyZwtSpU8nNzeXDDz9Ep3P8en/729+yfft2+vfvz8SJEzsdx7///W8SExOZM2cOy5cvZ926dURERBAcHOzyfmlpaSQnJzNgwADmzZvH66+/zve+9z0+++wz51zohIQEXn75ZTZt2sTo0aP55S9/yW9+85sW50lJSeHZZ5/lu9/9LomJiTz88MPodDo2bNjA/v37GTt2LE888QS//vWvO/0YhRDCU2Q/ZNFpBQUF9O/fnx07dnD11Vd7OhwhhPBpkpBFu3388cfU1dUxbtw4iouL+Z//+R8KCwvJysq6qCBMCCFEx8g1ZNFuFouF73//+5w6dYqIiAguv/xyXnvtNUnGQgjRBaSHLIQQQngBKeoSQgghvIAkZCGEEMILSEIWQgghvIAkZCGEEMILSEIWQgghvIBMexKiJygFFRVQVnbuq7T04u+NRrDZHF92+8Vfro4rBWFhEBvb+ldMTOvHo6NBJ5/NhfA0mfYkxKWy2yEnB9LS4PhxKC6+ONmWl4PV6ulIW6fTQVQU9OkDQ4bA8OEwYoTj/8OHQ0oKuFmvXAhx6SQhC9FeZxNveroj+Z79ysyExkZPR9d9wsJg6NCWSfps0m7ewEQIcekkIQtxIaXO9XjT0s4l4MxMaGjwdHTeJT7ekZhHjICJE2HWLBg/Hpr36hZCtJ8kZCEqK2HPHvj8c8fXoUOSeC9FRARMn+5IzrNmwYwZjmNCCJckIYve5/Rp+Oyzcwk4Pd3RKxbdQ6+HcePOJehZs2DAAE9HJYTXkYQs/N+ZM/Dxx7BjB+zc6RiOFp7Vr1/LBH3ZZTLMLXo9ScjC/9TXwyefOJLvjh1w9Kj0gL1dbCwsXgzLl8OCBRAa6umIhOhxkpCFf6irg3ffhddfh61boanJ0xGJzgoJgWuvhWXLYMkSiIvzdERC9AhJyMJ31dXBe+85kvBHH0kS9kd6PcyZ40jOy5bJtWfh1yQhC99SX+9Iwps2wZYt/j3/V1xs0iTHsPayZTB2rKejEaJLSUIW3q+hAd5/39ET/vBDScLCYehQR2JetQqmTvV0NEJcMknIwjs1NMAHH5xLwjIvWLgybhzcey/ccYdccxY+SxKy8C7Z2fDnP8PLL0NNjaejEb4mKMjRa167Fq6+WtbgFj5FErLwPKUc14Off95RnCV/kqIrDBoEv/gF3HyzpyMRol1k+0XhOTU18NJLjh7xiROejkb4m5wcCA72dBRCtJv0kEXPS0939IZfecUxdUmI7pCS4lgmVVYAEz5CesiiZ9jtjoU7nn/esYKWEN1t7VpJxsKnSA9ZdK/KSvjHP+CFFxy9FSF6gl4PubmONbOF8BHSQxbdo7zcUVDzl7/IvGHR8xYtkmQsfI4kZNG1amrgN7+B3/9erg8Lz3ngAU9HIESHyZC16BoNDfDHP8Kvf+0YphbCU1JT4dQp0Ok8HYkQHSI9ZHFpzGb429/g5z+HkhJPRyMErFsnyVj4JOkhi86x2eBf/4L//V8p1hLew2CA/HxISvJ0JEJ0mPSQRccoBRs3wtNPQ1aWp6MRoqWlSyUZC58lCVm033vvwY9+BIcPezoSIVp3//2ejkCITpMha+He/v3wyCPw5ZeejkSItg0Z4ticRDaUED5KKh9E2+rq4PHHYfp0ScbC+913nyRj4dOkhyxa9847jl5xfr6nIxHCvcBAKCiAhARPRyJEp8k1ZNFSQQE8/LAjIQvhK268UZKx8HkyZC0cbDb4/e9Ro0ZJMha+R4q5hB+QIWsBBw44rr/t3+/pSITouJEjISPD01EIccmkh9yb1dXBE0+gpk2TZCx81333eToCIbqE9JB7q3ffdVwrlqIt4cuCg6GwEGJjPR2JEJdMirp6m5ISePBBePttT0cixKVbubLDyXh7/XYMmoHLgi4jVi+JXHgPSci9ybZtqDvvRCsr83QkQnSNDhZz1dvryTRnYsfOEdMR+hn6cVnQZQwOGIxOkyt4wrNkyLo3sFrhhz9EPfccmvy6hb8YOxaOHu3QXb5p/IYvmy5e5CZcC2dc0DjGBo0lVBfaVREK0SHSQ/Z3p09jv+UWdF99haxhJPxKB3vHSinSzGmt3lan6viy6Uu+afqG0UGjmRo8lQhdRFdEKUS7SQ/Zn731Fva770ZXU+PpSIToWqGhUFQEUVEum9ntdnTNeyPnWnJ5p659c+z16BkdOJqpIZKYRc+RHrI/MpmwPvYYhr/9Tea1Cf90yy1uk/GHuz7kxOkTTB0/lTHDx3CU9g9v27Bx1HyUdHO6JGbRY6SH7G+ys7EsX05AWutDc0L4ha+/hmnT2ry5srqSP7z8B6prqwFI6JtAxI0RdPa6jR49owJHMTVkKpG6yM6dRAg3pIfsR+yvvIK6/34CGhs9HYoQ3WfiRJfJGCD9RDrVxmqGpg5FKUVDakOnkzE4eszHzMfIMGdIYhbdRhKyP2howHrffRhee83TkQjR/dwUc1msFvYe2UtoUCg6nQ6FImRESJf8aEnMojtJQvZ1x45hWbaMgJMnPR2JEN0vIgJuv91lk5OnT1JYUkhyn2QAVKKCrsnHTmcTs/Mac/BUIvWSmMWlkYTsw2xvvw233EKAyeTpUIToGbfdBuHhLpscyjiEzW4jOCgYAJXafWUyduzOxDwxaCLTQqYRqAV2288T/k2KcH1U0y9/ie7GG9FLMha9yQMPuLy5vKqc9Ox04qLjAFAhCpXQ/XWrduzsN+3nlZpXyDJndfvPE/5JErKvsdupvesugr/3PVl1S/Qu06bBhAkum6RlpVFjrCEqwjElyj7AfknFXB1Vp+rYUr+FzcbNVNoqe+4HC78gCdmHWGtrqZw1i8hXXvF0KEL0PDe9Y4vFwr6j+wgNaS7m0hSqv2c+tOZb83mt9jU+b/gci7J4JAbheyQh+4jajAxqx48n9quvPB2KED0vKgpuvtllk+zcbIrKikiITQCai7mCeyK41p0dxv53zb/JNmd7LhDhMyQh+4DSrVth5kxiT5/2dChCeMaddzqWy3ThYPpBlF0RFBgEdG8xV0fUqTo+rP+Qt4xvUWWr8nQ4wotJQvZy+X//O1FLlxIp61GL3szNcHVZRRmZJzOJjXHsb6xCFSreOxLyWXnWPBnGFi5JQvZSSilyv/99kh94gGCppBa92axZMGaMyyZpWWnU1tUSHRENgD21Z4u52suGTYaxRZtkHrIXslmt5N9xB6kbN3rje4oQPctN79hsNrP/2H7CQ8PRNM1RzNXPu3rHFzo7jD3IPIj5ofNlD2YBSA/Z65hqaymaN4+BkoyFgLg4uOkml02O5xynuKyY+Nh4AFSygqCeCO7S5VhyeK32NXItuZ4ORXgBSchexFhcTOX06fTfs8fToQjhHVavhuC2S6WVUo5iLqUIDHCskGVPtfdUdF2iQTXwTt077G7YjVVZPR2O8CBJyF7izMmT1MydS3JmpqdDEcJ73Hefy5tLy0vJOpV1rnccpiCuJwLreodNh9lQu4FyW7mnQxEeIgnZC+QdPkz9ggX0y5YiDyGc5s2DESNcNjmWdYza+loiwx0bO/ha7/hCFfYKNtRu4FDTIU+HIjxAErIHKaXI+PRTzMuXM1B2axKiJTfFXE2mJvYf209EWISjmEvn/cVc7WHDxieNn/C28W3q7fWeDkf0IEnIHmK329n37rvo7rqLoTk5ng5HCO/Spw8sX+6yyfFTxyktLyUhpnllrmQFfrTR0mnraV6rfY0ci7w/9BaSkD3AZrXy6auvEvboo4yQ1beEuNjdd0Ng29n1bDGXpmkEBAQAvj9c3ZpG1ci7de+yq2GXFHz1ApKQe5jNZuOzDRuI/9GPGJ2X5+lwhPA+mua2mKu4rJjsnGziY5qLuSIUxPZEcJ5xxHSEDbUbOGM94+lQRDeShNyDbDYbn2/cSOyPfsRYScZCtO6aa2DwYJdNjh4/Sl1DHRFhEYB/9o4vVGGvYKNxI0dNRz0diugmkpB7iN1u54tNm4j64Q8Zn5vr6XCE8F733+/y5samRg6kHSAyPPJcMVeK7xdztYcNGx83fMyuhl3Ylf9/COltJCH3ALvdzhdvvkn4D37ABCngEqJtyclwww0um2SeyqSsooy4GMeEY5WiIKAngvMeR0xHeKvuLRrtjZ4ORXQhScjdzG6389VbbxHy/e8z8dQpT4cjhHe7914wtL3EvlKKg2kH0el0BBj8t5irPQqsBWwwykIi/kQScjdSSvH1O+9g+MEPmHzihKfDEcK76XSwbp3LJgUlBZw4feLcVKdIBdE9EJuXqrXX8nrt65wwy/uLP5CE3E2UUnz97rvU/+QnTDt+3NPhCOH9rrsOBgxw2SQtK436hnrCw8KB3ts7Pp8FCx/Uf8A3jd94OhRxiSQhdwOlFHvff5+i3/6Wqw4d8nQ4QvgGN8VcDY0N7E/bT1RElKOYS997irna48umL9lWvw2bsnk6FNFJkpC7mFKKfR9+SMbzz7Pkyy/RKXnDEMKt/v1h0SKXTTJOZnCm4gxx0ecVc8mO7i1kmDN4u+5tTHaTp0MRnSAJuQsppTiwdSsHXnyRmz7/nACrrKwjRLusXQt6fZs3K6XYf2w/BoMBQ3PRlwxXt67AWsDrxteptdV6OhTRQZKQu9ChHTv44v/+jxWffUZYQ4OnwxHCNxgMjoTsQn5xPjl5OSTENhdzRSuI6ongfFOlvZINxg2UWEs8HYroAEnIXeT411+z+9VXmZGVRXxVlafDEcJ3XH899O3rssmRzCM0NDUQFhIGgH2A9I7daVSNvGl8k1NmmW7pKyQhd4HCrCx2vvwydpuNE0uWcGLiRE+HJITvcFPMVVdfx+GMw0RHRjuKuQwK1VdqM9rDipUP6j/gpFm2d/UFkpAvUWVxMR+9+CLGigqShgxB6fV8c8MNHLjmGuya5unwhPBugwbBggUum2SczKC8qvxcMVc/KebqCDt2Pqz/kGxztqdDEW5IQr4E9TU1bPv73yk9dYqUESPQzkvAmZdfzmc334zFxRZyQvR669Y5dndqg91udxRz6Q3om4u+ZLi64+zY+aj+I7LMWZ4ORbggCbmTLCYTO196iVMHD5IyciS6VipEC0eMYPs991AfJdUnQlwkIADuucdlk9OFp8nNzz1XzBWjILIngvM/Z5NypinT06GINkhC7qQ9b7xB2mefkTR0KAEuesHViYlsXbuWM/369WB0QviAZcsgMdFlk6NZR2kyNxEW2lzMJVOdLolCsa1hG+mmdE+HIlohCbmTzI2NKBw9ZXeawsPZuXo1OePGdX9gQvgKN8VctXW1HE53FHMBqACFSpZirkulUOxo2MEx0zFPhyIuIAm5k668805mLltGTVkZFYWFbtvbDQa+vPFGDl95JfKW4jm/AKYCEUAfYBlw4UrjTcBDQBwQDqwASt2cVwE/BpKBEGA+cH4JjQm4E8do63BgxwX3/zXwSIceiY8bNgyuusplk4wTGVRUVxAbFQs0F3O1vXaI6ACFYmfDTo6ajno6FHEeScidFBAUxNzbb2f+3Xdjs1opys5GtWOZzLQ5c/h85UqsAb1sA1cv8QmOZPsVsB2wANcC9ee1eQJ4D9jU3L4IuNHNeZ8D/gj8FfgaCAMW4EjuAC8C+4EvgfuA28D5wSwH+Dvws84/LN9z330ui7lsNhv7ju4jMCDwXDGXDFd3uY8bPuZw02FPhyGaaao9WUS4dGL/fna+9BJVJSWkjByJ3sV+rmfFFBUxd8MGQo3GHohQtOUMjp7yJ8AcoAZIAP4D3NTcJhMYhSOZzmjlHAroC6wHnmo+VgMkAi8DtwDfwtE7/iXQCIQCZc0/ayFwP7C8Kx+YNwsKgsJCiItrs8nJvJO8+N8XiY+JJzQkFHucHftMScjdZU7IHCYGy/oJniY95C4wdPJklq5fT98RI8hLS8PU2Oj2PlV9+7J17Voqk5N7IELRlprm/8c2/38/jl7z/PPajAQG4EjIrckBSi64TxQw/bz7XAZ8jiMZb8UxtB0PvAYE04uSMcCKFS6TMThW5jKZTYSGhAKgUqXf0J0+bfyUA00HPB1GrycJuYskDRrEsiefZNTll1OcnU1ddbXb+zRGRrL97rvJGzWq+wMUF7EDjwOzgLHNx0qAQC7e8z6x+bbWlJzXpq373IMjKY/GMTT9OlCF47rzn4AfAkNxDHO7r0jwcQ884PLmGmMNRzKOEBMZA4AKVKgkScjd7bPGzyQpe5gk5C4UGRfH4ocfZur111NVVERlcbHb+9gCAvh85UqOXXFFD0QozvcQcAzY0AM/KwD4M47e9F7gChxD3I8CB4G3gcM4hsQf7YF4PGb0aJg922WT9Ox0KmsqiYluTsj9lbxT9ZDPGj+TxUM8SP7Mu1hQSAhXrV7NVXfdhaWxkeKTJ90Xe2kaR66+mi+WL8fmYgs60XUeBt4HdgHnzxBPAsxA9QXtS5tva03SeW3ae59dQFpzHLuBRTgKwVY1f++37rvP5c02m439R/cTHBSMXqdHoWRlrh62rX4bRdYiT4fRK0lC7gZ6vZ4pixez6KGHCImIID89HVs79kbOHT+enatX0xgW1gNR9k4KRxJ8C/gYGHTB7ZNx9GZ3nnfsOJAHzGzjnINwJN7z71OLo9q6tfucnVb1NxyzeGw4rlvT/H9b+x6K7wkJgdWrXTY5lX+K08Wnz63MFa8cn1REj7Fh472696iyya51PU0ScjfRNI0R06ez7MknSRo8mPz0dMxNTW7vV96/P1vXrqW6T58eiLL3eQh4FUcVdQSOa7wlOIqtwFGMdS/wJI5e7H7gbhyJ9fwK65E4kjqAhuNa9E+Bd4GjwF04Kq+XtRLDT3D0iM/WtM4CNgNHgOebv/dLq1ZBdLTLJkcyjmCxWAgJDgGkmMtTmlQT79S9Q6PdfYGq6Doy7akH1Jw5w7Z//pPsr78mYeBAwtqxtrXBZGLWm2+Ski07tHSltma+vgSsaf53E47ru//FsaDHAuAFWg4/axfcRwFP45hvXI3jGvELOBYBOd8xHBXVhzjX8bPj6LW/BozA8WFhaIcelY/48kuY0drEMYeqmir+8PIf0Gk64mLiUEEK29U26TZ4ULI+mRsjbsSgyfZaPUEScg9pqq9n96uvcnjHDiLi44l2s4YvAEoxcds2Rn31VfcHKER3uuwyOHTIZZM9+/bw+oevMzR1KDqdDvswO/YRcv3Y04YGDGVR2KIWu9mJ7iGfPXtIcFgY19x7L3Nuu41Go5HSnJx2FXsdXLCAr5cswaaTX5XwYW7WrbbarOw9upeQ4BB0Op2jmKu/JGNvcMJygs8bP/d0GL2CvMv3IL3BwIxly7juwQcJDA6mIDMTu819Cc/JSZPYdeedmEJCeiBKIbpYWBjcfrvLJidPn6SwpPBcMVcf5VjOTHiFA6YDssRmD5CE3M0yTZlsqduCVTmqrDVNY/SsWSx94gni+/cnPy2tXTtGlQ0cyNa1a6lxs8KREF7n1lsh0vUmxoczDmO1WQkOCgakmMsbfdL4CafMpzwdhl+ThNyNSqwl7GjYQZYlizeMb1BvP7eFQb+RI7nxqacYPGkShZmZNLZjTeu62Fi2rV1L8eDB3Rm2EF3LzcpcFdUVpGWnndvVKVihEiQhexuF4qP6jyi1utv7THSWJORuUm+v54O6D7A1zyottZWyoXYDZdYyZ5uYpCRuePxxLrvmGs6cPk3NmTNuz2sJDmb37beTNWVKt8UuRJeZPNnx5UJaVhrVtdXOfY/tA+zyzuSlLFh4t+5dau21ng7FL8mffTewKivv171PnaprcbxO1fGG8Q1OmE84j4WEh7Ng3TquWLWK+qoqyk6fdlvspXQ69i1ezL6FC7FL5aPwZm56xxarhf3H9hMaEuoo5tIUaoD0jr1Zg2rgXeO7zstwoutIQu4GHzd8TImt9a0ILFj4oP4D9jbtdR4zBAQwa+VKFtx3H3q9nqLjx7Hb3VeYZk2fzie33YY5KKjLYheiy0RGOq4fu3Ai94SjmCumuZgrUTm2vxJercJewe6G3Z4Ow+9IQu4ix08d53f//B2bT2wmw5zhtv0XjV+wrX4bNuUY0tY0jXHz5nHD448Tk5xMXloaVrPZ7XmKhw5l2733YoyJueTHIESXuuMOR4W1C4cyDmGz2whq/lApvWPfkWZO47j5uKfD8CuSkLtAaXkpb297myJLEXkxee2+X4Y5g811m1ssT5c6dizLn3qKgePGUZCRQVNdnYszONQmJLBt7VrKBgzoVPxCdAs3c4/PVJwh40QGcdGOmQMqRIq5fM3H9R9Tbav2dBh+QxLyJapvqGfzR5spqS6h//X90XQdu6ZbZC1ig3EDFbYK57G4lBSWPvEE4668ktKcHGorKlycwcEUGsrHd93FyQkTOvoQhOh6M2bA+PEum6SdSKPGWHOumCvV3vbapsIrmTGzpX6Lc6RPXBpJyJfAarPy3sfvkXkqk9TrUju9K02tvZbXa18n15LrPBYWFcXCBx5g5ooVGMvLKc/Pd1vsZdfr+XrpUg7Ony/FXsKz3BRzmc1m9h3ZR1hIGJqmOYq5+knv2BeV2cpkJa8uIgm5k5RS7P5qN18f+pp+U/uhDbi0BGjGzLt173Kw6aDzWEBgIHNvvZVr7r0XpRTF2dntKvbKmDWLz1atwhIQcEkxCdEpMTGOnZ1cyMrNovhMMfGx8QCoJCnm8mWHTIc4aT7p6TB8niTkTjqccZgde3YQmxxL4OTALjmnQvFp46fsrN+JXTkSr6ZpTJg/nyWPPkpkfDz56elYLRY3Z4LCkSPZfs891LtZIUmILnfXXY69j9uglOJQxiGUXREU2FzMJStz+bztDdtlfvIlkoTcCUWlRby38z3QIHJepGNH+y50zHyMt+reosl+bv/kwRMmsGz9evqPGkVBejqmhga356lOSmLrunWUp6R0bYBCuOKmmKusoozMk5nExTQXc4UpVJwkZF9nUiY+qvvI2ZkQHScJuYOaTE289/F7VFRX0PeKvhDbPT+nwFrARuNGqmxVzmN9UlNZ9uSTjJ49m5KTJ6mrqnJxhuZ4w8PZsWYNuWPHdk+gQpxvzhwYNcplk2NZx6g11hIV4dgX3D5Airn8RbGtmC+bvvR0GD5LEnIHnL1unJ6dzoCxA1DDu/dTfbW9mo3GjeRb8p3HwmNiWPStbzHthhuoLimhorDQ7XnsBgNfrFjBkblzkX6I6FZuescms4n9x/YTERbhKObSKVR/+av0J/ua9nHactrTYfgkScgdcPzUcT795lPiEuLQT9X3yLNnUibernubo6ajzmOBwcFceeedXH333dgsFopPnHC/tzJwbN489qxYgdVg6M6QRW8VHw8rVrhskpWTRcmZknPFXMkKuqYEQ3iRrfVbW2ymI9pHEnI71Rhr+GDXB5itZqKviO70FKfOsGPn44aP+aThE+f1GZ1Ox+SFC1n88MOERUWRn56Ozep+bdm8sWPZuWYNjeHh3R226G3WrAEXy7gqpTiYdhANjcAARxa2D5Drjf6oUTXyUf1H7eooiHMkIbeDzWZjyydbyCvKo/+U/h6bL3nIdIj36t7DpM7tnzxsyhSWrV9P36FDyU9Lw9zY6OIMDhUpKXy0bh2VSUndGa7oTTQN7rvPZZOSMyVk5WSdK+YKVyDbe/utAmsBh0yHPB2GT5GE3A77ju5j75G99B3UFy7zbCy51lw21W6i1nZuekHS4MEsW7+ekZdfTlF2NvXV1W7P0xgZyfa77yZ/5MhujFb0GlddBcOGuWySlpWGsd5IZLhjKp49VXrH/u7Lxi9bvFcJ1yQhu1FUWsTWz7YSHBhM8MzgLp/i1BkV9go2GDdQZC1yHouMj2fxww8zZfFiKouKqCppfbep89kCA/ls1SrSZs3qznBFb+CmmKvJ1HRxMVeKDGf6OwsWdjbs9HQYPkMSsgsms4n3Pn6PyupKEqcletXwWqNqZLNxMxmmcztLBYWEcPWaNcy74w5MDQ2UnDzp/hqOpnF4/ny+XLoUm17fzVELv5SYCMuWuWySeTKT0vLSc8VcfaWYq7fIs+a1eJ8SbZOE3AalFLu+2uWY4jRwAGqE932at2FjW8M29jTucSZevV7PtCVLWPStbxEcHk5+RgY2m/uF33MmTODju+6iKTS0u8MW/uaee8DFMq3OYi6dRoDB0U6Gq3uXTxs/pcHufjGj3k4SchuO5zRPcYqOw3CZwas/ze9r2scH9R9gUY4lNTVNY+SMGSx94gmSBg1yFHs1Nbk5C5wZMICta9dSnZDQ3SELf6HTuS3mKiotIvt0NvExzb3jCAWyfXev0qSa+KThE0+H4fUkIbeixljDh7s+xGKxEDso1id2oTlpOckm4yaMdqPzWMrw4Sxbv55hU6ZQdPw4DbXuiyvqY2LYdu+9FA0d2p3hCn9x7bUwcKDLJkezjlLfUE9EWAQgvePeKsuSRY4lx9NheDVJyBew2+1s+WQLpwtP0y+5H7ZxNp9Z1u+M7QwbazdSYj1X0BXdpw9LHnuMiQsWUJ6XR3VZmdvzWIOC+OTWW8mcPr07wxX+wE0xV0NTAwfTDhIZHuko5tJLMVdvtrthN1blfr2E3koS8gUOZx5m39F99O3TF90QHUR5OqKOqVf1vGl8kyxzlvNYcFgY165dy+xbbqGxpobSnBy3xV5Kp+PAwoV8s3gxdp38mYhWpKTAkiUum2SezKSsouzccHWK8oqZCsIzau217G3a6+kwvJa8056nrr6Oj7/4GJ2mIywmDPtw3xxas2JlS/0Wvm782nlMbzBw+YoVLHzgAQKCgijMzMTejmKvE1OmsOv22zEFy2a14gL33gsuKvOVUhw4dgC9To+heblWWZlL7G/a32LTHHGOJOTzfL7/c/IK80hJSsE+yu7VhVzt8VXTV2yp2+IcItI0jTGzZ7P0iSeI69eP/PR0LCaTm7NA6eDBbFu7ltrYbtraSvgevR7WrXPZJL84n5N5J89NdYpSEN0DsQmvZsPG7obdng7DK0lCblZQUsCefXuIjYlFH6/3iUKu9siyZPGm8c0WC733HzWK5U89xaAJEyjMzKTRaHRxBgdjXBxb166lZNCg7gxX+IpFi6BfP5dNjmUdo6GxgfBQx7rpUswlzsqz5pFtzvZ0GF5HEjKOtap37NmBsd5IbHQstrG+U8jVHiW2EjYaN3LGesZ5LDY5mRsef5zxV19NWW4uteXlbs9jCQlh1x13kD1pUneGK3zBAw+4vLm+oZ6DaQeJiohyFHMZlGMxECGafdrwKWZl9nQYXkUSMo5CrmPHj5GSmAKD8LlCrvYw2o1sMm7ilPmU81hoRAQL77+fWatWUVdZyZm8vHYVe+1dsoT9CxZg1/zoU4tov9RUWLjQZZOMkxmcqTpzbiOJFAWy66c4T52qkwKvC/T6hHy2kEuv1xMSFYJ9hP8Oq1mw8H79++xv2u88ZggIYPaqVVy7bh2aTkfR8ePY7e6fg+MzZvDprbdidrHdnvBTa9c6FgRpg91uZ/+x/QToAzDom4u5ZLhatOJQ0yHZN/k8vT4hf77vc/KL8+mb2NdRyOXnUzIUis8bP2d7/XZsylFlrWka46+8khsee4yY5GTy09Kwmt0PJRUNG8b2e+6hLjq6m6MWXsNgcFRXu5BfnE9Ofs65Yq5oBZE9EZzwNVas0ks+T69OyPnF+ezZv4fY6Fj0sf5TyNUe6eZ03qp7i0b7uf2TB44bx9Inn2TA2LHkZ2TQVO/+k2tNnz5sXbuWsv79uzNc4S1uuAGSk102OZp5lCZTE2EhYYD0joVrx0zHqLXLFo3QixOyzWZj556dGOuNxEXHOYaqe9kl0UJrIRuNG6m0VTqPJfTvz9InnmDc3LmUnDqFsaLC7XlMYWF8fNdd5Iwf353hCm/gppjLWG/kYPp5xVwBUswlXLNha7FmQm/WaxPy4czDHMtqLuSKAdWnd75p1Nhr2GjcyGnLaeex8OhornvwQWYuW0bNmTOUFxS4LfayGwx8uXw5h666it75TPYCQ4bA/Pkum2ScyKCiuoK46OZirn4KZFdP4UaGOUMWC6GXJmRjvdFZyBUaEop9WO8eUjMrM+/UvcPhpsPOYwFBQcy9/XauuecelM1GcXZ2u4q90mfP5rNVq7C62I5P+Kj77gMXlfV2u539R/cTYAhA37yCl6zMJdpDofiq8StPh+FxvTIh79m3h/wiRyGXilKoROnTKRS7G3ezq2EXduV4E9XpdEy89lquf+QRIuLiKEhPx2qxuD1XwahRbL/7buojpZLHbwQGwt13u2ySW5hLbmEuCXGO7TtVrIKInghO+IMsS1aLtRJ6o16XkAtKCtizfw9xMXEY9AafXa+6uxwxHeGduncw2c8tqTlk0iSWrV9PyogRFKSnY2pwv9F4VXIyW9eupaJv3+4MV/SU5cvBzT7ZRzOPYjKbpJhLdNqXTV96OgSP6lUJWSnFnn17nCtySe+4dXnWPDYaN1Jtq3YeSxw4kGXr1zNy1iyKT5ygrsr99Z6miAh2rFnD6TFjujFa0SPcFHPV1tVyOPMw0ZHRAI5iriR5bYmOybHktNg+trfpVQk5vzifI5lHSIhNQNM06R27UGWvYqNxIwWWAuexiNhYrn/4YaYtWUJVSQmVRUVuz2MLCGDPihUcnTOnO8MV3WnECJg3z2WT9Ox0KqsriY1ybECi+ksxl+icLxq/8HQIHtNrErJSiq8OfEV9Yz1REVHSO26HJtXEW3Vvccx0zHksMDiYq1av5qq77sJiMlF84oTbCmw0jaNXXsmeG2/EapD1E33O/fe7vNlms7Hv2D4CAwLR6/UolAxXi07Lt+aTb8n3dBge0WsSckFJAYczD0vvuIPs2NnZsJNPGz51Jl6dTsfUxYtZ/NBDhEZFkZ+ejs1qdXuu0+PGsXP1ahrDwro7bNFVgoNh9WqXTXILcskrzDtXzBWvQH7F4hL01l5yr0jISim+PPCl9I4vwUHTQd6rf6/F7izDp01j2ZNPkjx0KPnp6ZgbG12cwaGiXz+2rltHVWJid4YrusrKleBmH+zDmYexWCyEBocCoAbIa0tcmhJbSYuNcHqLXpGQL+od9/J5x52VY8nhdePr1NrOLXOXPGQIy558khHTp1OYlUV9TY3b8zRERbH9nnsoGD68O8MVXcHNcHV1bTVHMo8QHRUNgAqUYi7RNb5u6n2rd/l9Qnb2jhuae8eR8oZxKSpsFWwwbqDYWuw8FpWQwPWPPMKURYuoKCigqsR9laQ1MJBPb7mF9Msv785wxaUYOxZmzXLZJC07jeraamKiYoDm3rHfv6uInlBmK2vxPtMb+P1LR64dd71G1cibxjfJNGU6jwWFhjL/nnuYd/vtmOrrKTl1ql3FXoeuuYavbrgBm4vt/ISHuOkdW21W9h/dT1BgEHpdczGXrMwlutBh02H3jfyIX78LKqX46uBX1NXXOXrHEdI77io2bGxt2MoXjV84E69er2f60qVc9+CDBIWGUpCRgc1mc3uuUxMn8vFdd9EUEtLdYYv2Cg2FO+902eRU3inyi/NJiG0u5kpQENoTwYne4oT5RK/aL9mvE3JhaSGHMg7RJ66Po3c8SD69d7W9TXv5sP5DLMqxpKamaYy6/HKWPvEECamp5KelYTGZ3JwFzqSmsnXdOmri47s7ZNEet9wCUVEumxzOOIzFaiEk2PFBSqXKh13RtWzYWky79Hd+m5DPXjt29o4Nsg1cdzlhOcEbxjeos9c5j/UbMYLl69czdPJkCo8fp6HW/X6n9TExbLv3XoqGDOnOcEV7uBmurqyu5FjWMWKjmxcCCVa9dsc00b2Omo5iU+5H2vyB3ybkwtJCDmccdvaOVX8FsiZFtymzlbGxdiNl1jLnsZikJJY89hgTrrmG8rw8asrKXJzBwRIczCe33cbxqVO7M1zhysSJMG2ayybpJ9KpNlYTE9lczNVfirlE96hX9Zy0nPR0GD3Cb19CXx38irqG5t4xCvtAGa7ubnWqjk3GTWSbs53HQsLDWbBuHVfcfDP1NTWU5ea6LfZSOh37Fy1i76JF2KXYq+e56R1brBb2HtlLSFAIOp1OirlEtzvUdMjTIfQIv3y3Kywp5FD6IeJj4x294wRZOainWLHyYf2HfNP4jfOY3mBg1k03sfD++9EHBFB4/Hi79lbOnjqV3bfdhjk4uDtDFucLD4fbbnPZ5OTpkxSWFp4r5kpUIPV4ohsV24pbjL75K79MyAfTD2KsNxIdEQ2AGijXtnral01fsrV+K1blWFJT0zTGzpnD0scfJy4lxVHsZTa7OQuUDBnCtnvvxehmtSjRRW6/HSJcb2J8OOMwNpuN4CDHByVZmUv0hN4wBcrvEnJtXS0H0w4SExnj6B2HSLGJp2SaM9ls3EyD/dz+yQPGjGHZ+vUMuuwyCjMyaKyrc3EGh9r4eLauXUtpamp3hivA7TaL5VXlpGWnERcdByCvL9FjjpuP02h3vzyvL/O7hJyWlUZFdYWz+tM+wA6ah4PqxYptxWwwbqDcVu48Fte3Lzc8/jjjr7qKstxcasvLXZzBwRwSwsd33smJiRO7M9zebdo0mDDBZZO0rDRqjDVERTimRMnrS/QUGzbSzGmeDqNb+VVCttqs7Du6z7FyUPM2cKqffHr3NKPdyKbaTS0Wiw+NjGTB/fdz+YoVGCsqOJOX577YS6/nmxtu4MA112DXJAt0OXfFXBYL+4/tJzQk1FHMpSlHdbUQPeSI6Qh25b8FhH6VkE+cPkFeUR594voAOIbSpNjEK5gx8379+xxoOuA8FhAYyJxbbuHatWvRNI2irKx2FXtlXn45n95yC5bAwO4MuXeJinIsBuJCdm72xcVcUm8nepDRbiTHkuPpMLqNXyXkg2kHsdqsUmzipRSKzxo/Y0f9DudEf03TuOzqq1ny6KNE9elDfloaVovF7bmKhg9n2z33UOdmNSnRTnfe6Vgu04WD6QdRdkVQYBAgK3MJz/Dn4i6/SchlFWWkZ6cTF9NcbBIoxSbeKs2cxtt1b9Nkb3IeG3TZZSxfv54BY8aQn55OU7379WtrEhPZum4dZ/r1685wewc3w9VlFWVknswkNqZ5Za5QhYqX15foeQXWAr9d39pvEnJaVhq1dbXnpjrJykFercBawAbjBqpsVc5jCQMGsPTJJxkzZw6lp05hrKx0ex5TWBg7V68mZ9y47gzXv82a5dhq0YX07PQWry8p5hKeolAtFh/yJ36Rss4Wm4SHhqM1F/vY+/vvhX9/UWOvYaNxI3mWPOex8OhoFn/rW0xfupSasjIqCgvdnsduMPDljTdy+MorkT5bJ7jpHZvNZvYd3ed8fUkxl/C0bIskZK914vQJis8UnxuujlIQ7uGgRLuYlIl36t7hiOmI81hAUBDz7riD+Xffjc1qpSg72/3eykDanDl8vnIl1oCA7gzZv8TGwsqVLpsczzlOcVkx8bGOnbhUsoKgnghOiNYVWYtabGbjL/wiIR/JPILdbncWm9iTpHfsS+zY2dWwi90Nu51TGnQ6HZMWLOD6hx8mIiaG/LQ0bFar23Pljx7N9jVraHCz2pRotno1uFiaVCnFoYxDKKUIDHBUtdtT5fUlPO+E+YSnQ+hyPp+QK6srST+R7lwIBEAlyXCaLzpsOsy7de9iUuf2Tx46eTJL16+n74gR5KWlYWp0v1JPVd++bF27lsrk5O4M1z+4Ga4uLS/l+Mnj53rHYQrieiIwIVzLMmd5OoQu5/MJOeNEBtW11eeKucIUSOfIZ522nub12tepsdU4jyUNGsSyJ59k1OWXU5ydTV11tdvzNEZGsv3uu8kbNaobo/Vx8+bBiBEumxzLOkZtfS2R4ZGA9I6F9yi2FfvdsLVPJ2Sbzcb+Y/sJDgpG17xNn/SOfV+lvZKNxo0UWs4VdEXGxbH44YeZev31VBUVUVlc7PY8toAAPl+5kmNXXNGd4fouN73jJlMT+4/tJyIswlHMpZOV74R38bdqa59OyLmFuRSUFDhXDgK5fuwvGlUjb9W9Rbop3XksKCSEq1av5so778TS2EjxyZPui700jSNXX80Xy5dj0+u7OWofkpAAN97osklWThal5aUkxDSvzJWsQBZHE15EErIXOZV3CrPFTEiwY31MFaQg2rMxia5jw8b2hu183vC5M/Hq9XqmXn89ix56iJDwcPLT09tV7JU7fjw7V6+mMUw2xgbg7rvBxdKjSikOpB1A0zQCmqvWZbhaeJtiWzFGu9HTYXQZn03INpuNY1nHCA0+t9yfSlKyWIEf2m/az/v172NRjiU1NU1jxPTpLHvySZIGDyY/PR1zU5Obs0B5//5sXbuWqj59ujtk76ZpcN99LpsUlxWTnZNNfHRzMVeEAtmSWnghf6q29tmEXFRWRGl5KdFR0c5jKlGub/mrU5ZTvG58vcWn4b7DhrFs/XqGTZtG0fHj1NfUuDiDQ0N0NNvvuYfC4cO7M1zvNn8+DBniskladhp1DXVEhDsqJKV3LLyVPw1b+2xCPpV3isamRmcPWRlkbV1/V24rZ0PtBkqsJc5j0X36sOSRR5i0cCEVBQVUl5a6PY81KIhPbrmFjBkzujNc7/XAAy5vbmxqZN/RfUSGR54r5kqR15bwTv40bO2TCVkpRfqJdIKDgp1LZapEWbu6N2hQDbxhfIPj5uPOY8FhYVxz773MufVWGo1GSnNy2lXsdXDBAr5esgSbrhf94SQnww03uGySeSqTsoqycyvfpSiQxc+EF/OXXrJPvhOVVZRRUFJAdGS085gMV/ceNmx8VP8RXzV+da7Yy2Bg5vLlXPfAAwQGB1OQmYndZnN7rpOTJrHrzjsxhfSSjbPvuQcMhjZvVkpxMO0gep2eAIMUcwnf4C/XkX0yIZ/KO0V9Qz0RYY7rW0onWy32Rl83fc1H9R9hVY4qa03TGH3FFSx94gni+/cnPy0Ni8nk5ixQNnAgW9eupSbOz5eg0uncFnMVlhZy4vQJ4mOai7kiZeaC8H4lthJMdvevdW/nkwk542QGBr3h3HB1vIK2P/QLP5ZlyeIN4xst9kftN3IkNz71FIMmTqQwM5NGo/vrS3WxsWxbu5biwYO7M1zPWrgQBgxw2eTY8WPUN9QTHubYnUV6x8IXKBQF1gJPh3HJfC4hV9VUkVuQ27K6Wlbn6tVKbaVsqN1AmbXMeSwmKYkbHn+cy665hjOnT1Nz5ozb81iCg9l9++1kTZnSneF6jptirobGBvan7ScyormYSy/FXMJ35Fnz3Dfycj6XkE/ln8JYb3SurQugEuRNo7erU3W8YXyjxbWk0IgIFqxbxxWrVlFfVUXZ6dNui72UTse+xYvZt3Ahds2PJrX37w+LFrlsknkyk/LK8nNzj1Nk5En4jnxLvqdDuGQ+l5CzcrLQNA29zrEMogpR0EvqcYRrFix8UP8Be5v2Oo8ZAgKYtXIlC+67D71eT9Hx49jt7odhs6ZP55PbbsMc5Ccb/65dCy6WDlVKsf/YfvR6PYbmoi8Zrha+pMpe5fObTfhUQq6rryMrJ8u5sxOAipHesWjpi8Yv2Fa/DZtyVFlrmsa4efO44fHHiUlOJi8tDavZ7PY8xUOHsu3eezHGxHR3yN1Lr4d773XZJL84n1N5p86tWx2tIKonghOi6/h6L9mnEnJOQQ7VtdVERZ57p1CxkpDFxTLMGWyu20yj/dz+yaljx7Js/XoGjhtHQUYGTXXuP03XJiSwbe1aytwUQ3m166+HlBSXTY5kHqGhqYGwUMda3/YB0jsWvsfXryP7VELOznVM/jboz13Ykh6yaEuRtYgNxg1U2Cqcx+L79WPpE08w7sorKcnJobaiwsUZHEyhoXx8112cnDChG6PtRm6Kueob6jmccZjoyGhHMZdBofrK60r4ngKLb1da+0xCNpvNZJ7MbFnMZVAQ6eJOotertdfyeu3r5FpyncfCoqJY+MADXL5iBcbycsrz890We9n1er5eupSD8+f7VrHXoEFw7bUum6SfSOdM5Rliox27R6h+UswlfFOdqqPWVuvpMDrNZxJySXkJNcYa52Ig0Hydy4feG4VnmDHzbt27HGw66DwWEBjI3FtvZf4996CUojg7u13FXhmzZvHZqlVYAnxkLcl16xwLgrTBbrdz4NgBAgwBzpEnGa4WvqzIWuTpEDrNdxLymRJMZhPBQcHOY3L9WLSXQvFp46fsrN+JXTkSjqZpTLzmGpY8+iiR8fHkp6djtVjcnqtw5Ei233MP9ZFePjwTEOBYKtOFvKI8cgpySIhtLuaKkVEn4dsKrYWeDqHTfCYhF5QUoGmac3UuQPZnFR12zHyMt+vepsl+bv/kwRMmsGz9evqPGkV+ejqmhga356lOSmLrunWUuymW8qhlyyAx0WWTI8eP0GRqOlfMJVOdhI+THnI3s9vtnMo7RVhImPOY0pRjyFqIDsq35rPRuJEqW5XzWJ/UVJY9+SRjZs+m+MQJ6qqqXJzBoSk8nB1r1pA7dmx3htt599/v8ubauloOpx92TiNUAQqVLK8p4dsq7ZUtPnD7Ep9IyBVVFVTVVjnX1wUcw2pSeCI6qdpezUbjxhbzFsNjYlj0rW8xfelSqktKqCh0P/RlNxj4YsUKjsydi1elsmHD4KqrXDbJOJFBRU1Fy2KuttcOEcJn+Gov2ScScvGZYhoaG1r2kGW6k7hEJmXi7bq3OWo66jwWGBzMlXfeydVr1mCzWCjKzna/tzJwbN489qxYgdXF1oY96r77wEU1uM1mY/+x/QQaAtE3r+Alw9XCX0hC7kbFZcUopdCdVy0qBV2iK9ix83HDx3zS8Imz2Eun0zH5uutY/PDDhEdHk5+Whs1qdXuuvLFj2bFmDQ3h4W7bdqugIFizxmWT3MJcTheedhZz2ePs4OGwhegqZbYy9428kE8k5JP5J1tUV4P0kEXXOmQ6xHt172FS5/ZUHTZlCsvWr6fvsGHkp6Vhbmx0cQaHypQUtq5bR2VSUneG69qKFRAf77LJkcwjmMwmQkNCAVAD5PUk/EelrdLTIXSK1ydkY72R0jOlhIee+/guG0qI7pBrzWVT7aYWCwskDR7MsvXrGTFjBkXZ2dRXV7s9T2NkJNvvvpv8kSO7MVoX3BRz1RhrOJJ5hJhIxxrdKlDJFqbCr9Srep8s7PL6hFxcVkxdfV2Lgi6prhbdpcJewQbjhhbXoCLj47n+kUeYvGgRlUVFVJWUuD2PLTCQz1atIm3WrO4M92KjR8OcOS6bpGenU1ldSUx0c0LuL8Vcwv9U2N0vi+ttvD4hl5wpwWa3EWA4b2UkudYlulGjamSzcTMZpgznsaDQUObffTdzb78dU309JSdPui/20jQOz5/Pl0uXYnOx9WGXuu8+lzfbbDb2H91PUGAQep0ehZKVuYRf8sVha69PyKcLT7fYTAJAhUkPWXQvGza2NWxjT+MeZ+LV6/VMv+EGFn3rWwSHh5OfkYHNZnN7rpwJE/j4rrtoCg3t3qBDQmD1apdNTuWfIq84jz5xfQBQ8QrCXN5FCJ90/qYyvsKrE7LZbCavMK/l/GNAhUtCFj1jX9M+Pqj/AItyLKmpaRojZ85k6RNPkDhwoKPYq8n9taozAwawde1aqhMSui/YVasgOtplkyOZRzBbzIQEO4owVKq8loR/kh5yFyspL6G2vrZFQRcgn+hFjzppOckm4ybq7Of2T04ZPpxl69czbMoUio4fp6HW/Q4z9TExbLv3XoqGDu2eQN0Uc1XVVHH0+FFio5oXAglSqERJyMI/SQ+5i7W6oUSgAh/ZaEf4jzO2M2yo3UCJ9VxBV0xiIksee4yJCxZQnpdHdZn7uY/WoCA+ufVWMqdP79oAx4+HmTNdNknPTqeqpoqYqPOKubz6HUCIzmtQDT5Xae3VL8eKKscnnBYbSkhBl/CQelXPm8Y3yTJnOY8Fh4Vx7dq1zL7lFhpraijNyXFb7KV0Og4sXMg3ixdjd7E1Yoe46R1bbVb2HdtHSHAIOp1OirlEr+BrvWSvTsgl5SUEBgS2OCYFXcKTrFjZUr+Frxu/dh7TGwxcvmIFCx94gICgIAozM7G3o9jrxJQp7LrjDkzBwW7buhQWBnfc4bLJydMnKSguOLfNYh8F3VxjJoSn+drUJ69NyEopyirKLl6hSwq6hBf4qukrttRtwaocS2pqmsaY2bO54fHHievXj7y0NCwmk5uzQOmgQWxbu5ba2EvYS/TWW8HN3syHMw5jtVmdrycp5hK9ga8VdnltQjbWG2lobLgoIUtBl/AWWZYs3jS+Sb293nlswOjRLH/qKQZPmEBBZiaNRqPb8xjj4ti6di0lgwZ1LpAHHnB5c0V1BWnZaeeKuYIVKkESsvB/MmTdRaprq2kyNREceEEPWYashRcpsZWw0biRM9YzzmOxycnc8MQTXHb11ZTl5lJbXu72PJaQEHbdcQfZkyZ1LIDJkx1fLqRnp1NdW010ZDSA49qx177yheg60kPuIjXGGkxmE4GB564hK+S6l/A+RruRTcZNnDKfch4LjYhg4f33M2vlSuoqKzmTl9euYq+9S5awf8EC7C62TmzBTTGXxWph39F9hAaHOoq5NCUbSYheo0E10Gh3vymMt/DahFxdW42G1rLCOhRZc1d4JQsW3q9/n/1N+53HDAEBzL75Zq5ZuxZN0yg6fhy73X1l8/EZM/j01lsxBwW5bhgZCbfd5rLJidwTFJYUtizmusQaMiF8SZW9ytMhtJvXJuSK6gq4oJMgBV3CmykUnzd+zvb67diUo8pa0zQuu+oqljz2GNFJSeSnpWE1m92eq2jYMLbfcw91rlbeuv12R4W1C4czDmOz2whqTu5SzCV6m/NrPLyd1ybkkjMlBAVe0EOQgi7hA9LN6bxV91aLobJB48ezbP16BowZQ35GBk317t8kavr0YevatZT17996AzfFXOWV5aSfSCcuOg5wbFsqxVyit2lUMmR9Saw2KxVVFRdPeZKCLuEjCq2FbDRubFFUktC/P0uffJJxc+dScuoUxgr3FaCmsDA+vususkaMaHnDjBmO1blcOJZ9jBpjzblirlT7RaNOQvi7BnuDp0NoN69MyDXGGhqbGi+e8iTXvoQPqbHXsNG4kdOW085j4dHRXPfgg8xctoyaM2coLyhwW+xlNxjYPG4cGddfjzpbU+Gmd2w2m9l/dD9hIWFomuYo5uonH2hF79OgJCFfkuraaprMTRf3kIPkDUX4FrMy807dOxxuOuw8FhAUxNzbb+eae+5B2WwUZ2e7LPYyNzWh6XQYnn4a7c03ISXFsbOTC9mnsykqKyI+Nh4AlSTFXKJ3kh7yJaqprcFqtV60DzKBrbcXwpspFLsbd7OrYRd25Ui8Op2Oiddey/WPPEJEbCwF6elYLZZW719VUkLCgAEMHDcOli+HY8ccex+39fOU4lD6Iex2u7MOQ4q5RG8l15AvUVWto0xdu3AupiRk4cOOmI7wTt07mOznltQcMmkSy556ipQRIyhIT8fU0PLTvFKKxpoaxs2dS8DZaVBu9jwuqygj42QG8THNveMwhYqThCx6J+khX6IzlWfQ61pOOFY62XZR+L48ax4bjRuptlU7jyUOHMiy9esZOWsWxSdOUFd1bt6ksaKC8Lg4hrhZjet8adlp1BpriYqIAppX5pJiLtFLyTXkS3Sm8oxz3qST9I6Fn6iyV7HRuJECS4HzWERsLNc//DDTliyhqriYyqIiAKpLShgycSKxycntOrfJbGLf0X1EhEU4irl0yrHvsRC9lFmZnZvAeDuvS8hKKYx1RgIMF3SHJSELP9Kkmnir7i2OmY45jwUGB3PV6tVcddddWEwmCjIz0RkMjLz88nafNysni5IzJeeKuZKVvHZEr+cr15EN7pv0rCZTExaL5aKErALlU77wL3bs7GzYSZWtiitCrkDTNHQ6HVOvv56oPn3Y+a9/ERoZyYAxY9p1PqUUB9MOoqE59xG3D3C/VKcQ/q7B3kCELsLTYbjldQm5sakRi81y8Spdcv1Y+KkDpgNU2atYGLaQQM2RSIdPm0ZcSgoBwcEEBLavi1tSXkJWThZxMc0rc4UriOu2sIXwGb5yHdnrhqybTE2OKU+GCz4rSEIWfizHksMm4yZq7bXOY3EpKUTGtT+jph1Pw1hvJDI8EmhemUsI4TM7PnldQm5sasRqtV58Ddnr+vJCdK1yWzkbazdSbC3u8H2bTE3sP7a/ZTFXilzmEQKkh9xpDU0NWG1W9PoLpj0Z5M1F+L8G1cCbxjfJNGV26H7HTx2ntKL0XDFXXynmEuIsX5mL7HUJucnUhKZpFy8KIkPWopewYWNrw1a+aPzC7TrX4CjmOnDsAJqmOUeWZLhaiHPMyv2Wp97AKxNyq2TIWvQye5v28mH9h1hU60tqnlVUWkT26exzK3NFKIjpiQiF8A0K3xhh9bqEbLa08UlGErLohU5YTvCG8Q3q7HVttjmadZT6+noiwhzTOqR3LERLkpA7yWwxtz5MJwlZ9FJltjI21m6kzFp20W0NTQ0cTDtIZESko5hLL8VcQlxIEnInNTQ2oNN5XVhCeFSdqmOTcRPZ5uwWxzNPZlJWUXZu7nGKrPkuxIUkIXdSY1PjRRtLCCHAipUP6z/km8ZvgHPFXDqd7lwxl6zMJcRF2lMc6Q28biC4sanxoilPAD7yAUeIbvdl05dU2asYUTuCU3mnSIhNAEBFKYj2bGxCeCNf6SF7Z0KWHrIQLmWaM8m15dKoNdI3tC8gxVxCtMVXErL3DVmbpIcsRHs0hTXR/+b+EOlYOEf1lReJEK3xlYTsdT1kq9WKTmvlc4JvPJ9C9Ch9uB7b5Ta0Ms0LX81CiI7wuh6ypmk+82lGCK8QgEx1EsIFO75xOccrE3Kr5P1GCCFEJ/hKJ88rE3KrJeq+8XwKIYTwMr4y7ckrE3KrfOP5FEIIITrFKxOyrwwvCCGE8H6+klO8LiHrNF3rvWHfeD6FEEJ4GUnInSTrWAshhOhKBs035gR6XfaToi4hhBBdKVAL9HQI7eKVCblVkpCFEEJ0giTkTmqzh+wb87qFEEJ4mUAkIXdKq8tmAph7Ng4hhBD+IUgL8nQI7eJ1CbmtaU+aqY2hbCGEEMIFGbLuJE3TWr9eLD1kIYQQnSA95E7S6XTSQxZCCNFlpIfcSW32kE09HooQQgg/EKwL9nQI7eJ1CTkkKASb3XbxDTJkLYQQohNCtBBPh9AuXpeQIyMisVgtFx3XLJpMfRJCCNFhobpQT4fQLl6XkMNDw9veKkuGrYUQQnSAHr0UdXVWaHBo26t1ybC1EEKIDgjWfOP6MXhhQg4JbnusXyqthRBCdESIzjeuH4MXJ2S7vZULxjJkLYQQogNCNd+4fgxempANBgNWm/XiG2XIWgghRAf4SkEXeGFCDg0JJcAQ0HqltQxZCyGE6IAoXZSnQ2g3r0vIIcEhBBgCsFpb6SHLkLUQQogOiNHHeDqEdvPahNxaD1mGrIUQQnREtC7a0yG0m9clZIPeQEhwCBZLK0PWDTJkLYQQov2kh3yJIsMjWy/qqgdaWVVTCCGEuFCYFuYzG0uAtybktpbPRHMkZSGEEMKNaH20p0PoEO9MyOGR2G2tL1ytGWXYWgghhHsxOt8ZrgYvTcghwSHQRt6VhCyEEKI9fOn6MXhpQg4NdjGR29hzcQghhPBdvlRhDV6akKMjo9FpulYLu7Q66SELIYRwT3rIXSA2OpaQ4BAamxovvlEqrYUQQrihQ0ekLtLTYXSIVybk6MhoQoNDaWpquug2DQ3qPBCUEEIInxGpi0Sv6T0dRod4ZUI26A30SehDQ1NDq7fLsLUQQghXfG3KE3hpQgZI6ZOC2dr6WplSaS2EEMIVX5vyBF6ckGOjY9FUG4lXKq2FEEK44GsFXeDlCVmn07W665MMWQshhHAlXh/v6RA6zGsTckxUjKPS2iSV1kIIIdpPj54++j6eDqPDvDYhR0dGExoS2urUJ6m0FkII0ZZEQ6LPVViDFydkg95AYnxi63ORkcIuIYQQretr6OvpEDrFaxMyQN8+fduutK6UhCyEEOJikpC7QVxMHKjWb9OqJCELIYS4WLI+2dMhdIpXJ+SYqBj0en2rldYYgdY7z0IIIXqpWF0swbpgT4fRKV6dkGOjYwkJan1Naw1NeslCCCFa8NXhavDyhBwdEU1YaFjrU5+Q68hCCCFaSjb45nA1eHlC1uv19EvqR31jfau3S0IWQghxPukhd6PUlNTWryEDVCMLhAghhAAgRAvxyU0lzvL6hJzcJxm9Xo/FarnoNk3JdWQhhBAOvtw7Bl9IyAnJRIRFUFff+tJcWrkkZCGEEJKQu114WDhJCUkY61vf4kkSshBCCJCE3COGDBiCyWxq/cZq4OLRbCGEEL2IAQMJ+gRPh3FJfCIhJ/dJRtM0bLaLK7g0NLQK6SULIURvlmRI8skNJc7nMwk5PDSc+oY2pj9JQhZCiF5tcMBgT4dwyXwiIcdGxZIQl0BtfW2rt2tnJCELIURvNiRgiKdDuGQ+kZA1TWPEoBFtb8VYp0FTDwclhBDCK/TR9yFSH+npMC6ZTyRkgP7J/dHpdFhtrS8SopVIL1kIIXojfxiuBh9KyClJKUSERWCsa2P6U7EkZCGE6I2GBPr+cDX4UEKOiogiJSmF2ro2riNXyLC1EEL0NlG6KOL18Z4Oo0v4TEIGGD5wOGZz65sga2gybC2EEL2MPxRzneVTCTklKQVDgAGzpY2kLMPWQgjRq/jLcDX4YEKOjoimxljT6u0ybC2EEL1HqBZKst539z++kE8l5NDgUEYNHdV2QpZhayGE6DUGBwxG0/znPd+nEjLA8EHD0TSt1e0YAXRFPveQhBBCdII/DVeDDybkIQOGEBsVS3VNdesNKpFhayGE8HOBBNLf0N/TYXQpn0vIoSHNw9Z1MmwthBC91cCAgT6/mcSFfC4hA4wYPEKGrYUQohfzt+Fq8NGEPHjAYBm2FkKIXsqAgYEBAz0dRpfzyYQcGhzK6GGjqa6rbvV2DU3mJAshhJ8aFjiMQC3Q02F0OZ9MyOAYttZpuraHrYt99qEJIYRwYUzQGE+H0C18NmsN6j+IuOg4qmqqWm9QCbS+W6MQQggfFaOLIcWQ4ukwuoXPJmTnIiEuqq11eT778IQQQrTCX3vH4MMJGdwPW2t5Gth7OCghhBDdQoeOkYEjPR1Gt/HphDy4/2CXw9aaSYq7hBDCXwwKGESYLszTYXQbn07IIcEhjB42us09kgF0OT79EIUQQjTz5+Fq8PGEDDBiUPMiIZY2hq2rNaju2ZiEEEJ0rUhdJAMNAz0dRrfy+YQ8qP8gEmITqKiuaLONLtfnH6YQQvRq44PG+9XOTq3x+UwVEhzC1HFTqamrQSnVahutSANTDwcmhBCiS+jRMzpwtKfD6HY+n5ABxo0cR1R4FNXG6lZv1+waWr5/f7ISQgh/NTxwOCG6EE+H0e38IiEnxicyethoKqrcDFvLFCghhPA5lwVd5ukQeoRfJGSAiWMmYtAbaGxqfXkurUlDK5VeshBC+JIkfRKJhkRPh9Ej/CYhD00dSmpKKmUVZW220XIlIQshhC8ZHzTe0yH0GL9JyAa9ganjp2K2mLHZbK220VXooO0py0IIIbxIhC6C4YHDPR1Gj/GbhAwwZtgYEmITKK8qb7ONTIESQgjfMCV4CnpN7+kweoxfZafwsHAmj51MTa2LKVCFGph7ODAhhBAdEq6FMybQv1fmupBfJWSA8SPHEx4e3uZymppNQzst15KFEMKbTQ2Z2qt6x+CHCTm5TzIjBo9wPQXqlA5aX2lTCCGEh/XG3jH4YULWNI0pY6egaRomU+vLc2kWDd1Jv3voQgjhF3pj7xj8MCEDDBs0jH7J/SirdDEFKkeW0xRCCG/TW3vH4KcJOcAQwNTxU2lsasRmb30KlGbT0J3wy4cvhBA+q7dVVp/PbzPS2OFjiY+Jd3ktWTutQesLewkhhOhh4Vq43+957IrfJuSoiCimXTaN6tpq7PbWF7HW7Bq6bL99CoQQwqdMCZ6CQTN4OgyP8etsNH3CdBLiElwvp5mvQX0PBiWEEOIivb13DH6ekKMjo7l80uXU1te2uZympjR0WX79NAghhNfr7b1j8POEDDB1/FSS4pMoLS9ts41WqMka10II4SHSO3bw+4QcERbBFVOuoK6hDqvV2mobDeklCyGEp0wOntzre8fQCxIywOSxk+mX1I+S8pI22+hKdFDdczEJIYSAaF00Y4PGejoMr9ArEnJoSCizp86msakRi6XtNTN1x3vF0yGEEF5jXug86R036zUZaMLoCaSmpFJUVtRmG90ZHbQ9bVkIIUQXGhIwhNSAVE+H4TV6TUIODgpm9tTZWK1WTOa218zUZ+ih9Z0bhRBCdBEDBuaEzPF0GF6l1yRkgPEjxjO4/2CKy4rbbKNVa2h5sj2jEEJ0p6nBU4nUR3o6DK/SqxJyYGAgV0y9Aruy02RqarOdLlMnG08IIUQ3idZFMzl4sqfD8Dq9KiEDjB0xlmEDh7nuJVs0R1IWQgjR5eaFzuu1G0i40uuyjkFvYPbU2WiaRkNjQ5vttHwNKnswMCGE6AWkkKttvS4hA4wcPJKRQ0ZSXFaMUq1XcGlo6I/qofV9KYQQQnSQAQNzQqWQqy29MiHr9XrmzZhHcHAw1bXVbbbTjBparhR4CSFEV5gaPJVInRRytaVXJmSAwf0HM33CdMoqy9rceAKaFwuRPZOFEOKSSCGXe702IWuaxrzp80jpk0LxGRcFXjYN3dFe+zQJIUSXkEIu93p1pomKiOLKmVdiMptobGq7G6wr0zl2hBJCCNFhQwOGSiFXO/TqhAwwaewkxgwbQ0FpQZsFXgC6NB2YezAwIYTwA4EESiFXO/X6hGzQG5g/az7hIeFU1rQ9z0kza46kLIQQot3mhc4jQhfh6TB8gmyxAaSmpDJz0ky2fbqNqPAoDIbWnxZdoQ6VolB9ZLFr4XvsNjsf/fIj9m3ah7HMSGRSJNNunca1T12LpjkuySil2PKLLXz1ylc01jQyaPogVv5mJQlDElye+7N/fMbHf/oYY5mRvmP6suJXK0idfG6I8q0fvMXe/+4lMDSQ65++nikrpzhvO/T2IfZu3Mu6/67rngcuPGZ4wHBGBY3ydBg+Q7p8zeZOm0tqv1QKSgpcttMd1UHbOzgK4bV2/mEne17aw4rnVvDdr77LkqeX8PGfPubTFz891+aPO/n0xU9Z+duVPLH9CQJDA/nrTX/F0tT2H/2BzQd4+4dvs/B/FvLUrqdIGZvCX2/6K8YzRgCOfXSMA28e4IE3H2DJs0vY+NhG6irqAGisbeSDn33ATb++qXsfvOhxEVoEV4Vd5ekwfIok5GbhYeFcO9vRU6itq22zndaooTsiT5vwPTnf5DD2urGMuXYMcQPimLB0AiPmjSDvQB7g6B1/+tdPuXb9tYxbNI6+Y/py+19up6akhqMfHG3zvLtf2M3Mu2Yy/fbpJI1MYuXvVhIYGsjXr30NQGlWKUNnDWXAxAFMXjGZoIggKk87Lg+9+/S7zLp7FjH9Yrr/CRA9RlMaC8IXEKQFeToUnyKZ5Txjho1h2mXTKDlTgs3uYm5ysQ7ttFRdC98yaNogsj7NouxEGQCFxwo59fUpRs13DClWnK6gtrSW4fOGO+8TEhlC6uRUcvfmtnpOq9lKweEChs89dx+dTsfwucOd9+k7pi/5h/JpqG4g/1A+lkYL8YPjOfXVKQqOFDDnfin48TdTQ6aSYkjxdBg+R64hn0fTNObPms/J0ycpKi2if3L/Ntvq0nTYYmwgi84IH3H141fTZGziF9N/gabXUDbFoh8ucl7PNZY6hpgjEloW4EQkRFBb1vqoUX1FPXabvdX7lGaVAjDq6lFMXjmZ3139OwKCA7j9hdsJDA1k0/pN3Pbn29jzf3v49O+fEh4bzqr/t4rkUcld/dBFD0rQEpgePN3TYfgkScgXiI6M5porruG1d1+jvrGesJCwVttpdg39fj222TZ5FoVPOPTWIfZv2s+dL95J0qgkCo8W8tb33yIqKYppt07r1p993Xev47rvXuf8/qNffcTwucPRB+jZ9tttfOfz75C2NY3XvvUaT+16qltjEd3HoAwsjlyMTpPB186QZ60Vl426jImjJ1JYUojd3vbuElq9hu6YPIXCN7z79Ltc/fjVTFoxib6j+zL15qnMe3AeO36/A4CIREcv92wx1lnGM0Yi+7Q+FBQWF4ZOr2v9Pomt36c0q5R9m/ax6PuLyP48myEzhxAeH86EZRMoOFxAk7HtvcqFd7sy7Eqi9FGeDsNnSTZphV6vZ8HsBSQmJLqvui7QoRXI9WTh/cyNZjRdy79VTa+h7I5pfHGpcUQmRpL9Sbbz9qbaJk7vP83AqQNbPach0EC/y/qR/em5+9jtdrI+yWr1PkopXn/ydZb9dBlB4UEom8JmddRrnP2/qw/BwnsN1Q9ldNBoT4fh0yQhtyEhLoHF8xYDuNwRCpqnQtX1QFBCXIIxC8ew/bfbSduWRkVeBUfeP8LuF3YzbvE4wFFDMeeBOWz77TaObTlGUXoRr37rVaKSopxtAP687M989vfPnN/P+9Y8vvz3l3zz328oOV7CpvWbMDeYmX7bxdcRv/r3V4THhTN24VgABk0fRPan2eTuzeWTFz4haUQSoVGh3fxMiK4WqkKZHz7f02H4PLn66cL4kePJK8pjx54dhIaEEhgQ2Go7zdZ8PfkKG8ja6cJLrfjlCj78+Ye88dQb1JXXEZkUyeVrLmfBtxc421z96NWY681sfGIjjTWNDJ4xmPs33U9AcICzTXlOuXMeMcCkGydRX1HPll9sobaslpSxKdy/6X4i+rQs9DKWGdn2u208/tHjzmOpk1OZ99A8XrzlRcLjw7n9hdu77wkQ3UPBoohFBOlkitOl0pSrBZwFjU2N/Hvzv8k4mcHQ1KHOFY1aY0+1Yx8nw21CiN5jStAUZoXO8nQYfkGGrN0ICQ7hhvk3EB8TT2Fpocu2utM6tCK5niyE6B36aH2YGTLT02H4DUnI7ZDcJ5nr5l2H1Wql1tj2Kl6AYxWv+h4KTAghPCTYHszSyKUyxakLyTPZTpPGTGLmpJmUnCnBYml7XV/NqqE/qAcZuRZC+CnNrrE8ajmhOinA60qSkNtJ0zQWzlnIsMHDOF102uXeyVq1zE8WQviv+SHz6WPo4+kw/I5kjQ4IDQll6fylREdEU3ym2GVbXZ4O7YRcTxZC+JdR9lGMDpX5xt1BEnIH9U/uz4I5CzCZTBjrjS7b6jJ1aIWSlIUQ/iGmIYZrYq/xdBh+SxJyJ0y7bBrTLptGUWkRVqu1zXYaGrrDOqjoweCEEKIbGBoMrEpa5XLqp7g0kpA7QafTcd286xiaOpTThW6uJ9s19Pv0spKXEMJ3mWBVzCqC9cGejsSvSULupIiwCJZcvYSI8Ai315M1i4b+Gz2Yeig4IYToIsqqWBi0kITQBE+H4vckIV+CQf0HsfjKxVgsFiqqXY9Law0a+r16sPVQcEIIcYmUXTHVMpURMSM8HUqvIAn5Ek0dP5X5s+ZTVVPltshLq9bQHdSBLFYqhPABA2sGMquvLIvZUyQhXyJN07j68qu5YvIVFJcV09jU6LK9rkSHLkOediGEd4s6E8XSQUs9HUavIpmhC+j1ehZftZiJYyaSV5SHxdr2Sl4AulM6tFypVBRCeKeA8gBuHXirVFT3MEnIXSQ4KJgbF9zIiMEjyC3IxWZ3fbFYd0yHViJ/7EII76KVatyefDtBgbKdYk+ThNyFIsMjWbloJSmJKZwucDMdiubrydU9F58QQrhiL7GzKmEVUeFRng6lV5KE3MX6xPXhputuIioiivzifJdtNZuG/ms91PRQcEII0QZLkYUbIm4gKS7J06H0WpKQu8Gg/oNYvmA5er2e0vJSl201i4b+K730lIUQHmMqMjHfMJ8h/YZ4OpReTRJyNxk3YhyL5y2mobGBqtoql20lKQshPKWpsIkZTTOYMGKCp0Pp9SQhd6PLJ1/OlTOvpLyynPqGepdtNWtzUnadu4UQoss0FTUxpnIMV0y8wtOhCCQhdytN07h29rXMmDiDwtJCTGbXa2c6k3JlDwUohOi1mkqaGHVmFNfNug6dTlKBN5DfQjcLMARww/wbGDdiHKcLT7tPymcLvWSHKCFENzGVmhhRMoLFsxej1+s9HY5oJgm5B4QGh7Jy0UrGDB/ToaSslcs8ZSFE1zKVmRhaPJTr51wvydjLSELuIVERUdxy/S2MHTGW3MJcTCY3SdmuoftGh3ZGkrIQomuYzpgYUjCEG+bcgEFv8HQ44gKSkHtQZHgkt1x/C5eNvIzcwlyaTE0u22t2Dd1eHVqZJGUhxKUxnTExMH8gN8yVZOytNOVqOSnRLerq63j9w9c5nHGYAX0HEBzketNvpVPYJ9tRifKrEkJ0XMPpBoaUDmH5VcsJCAjwdDiiDZKQPaS+oZ5NWzZxMO0g/ZP7ExIc4rK90pqTcpL8uoQQ7Vd7rJbhtcO58dobJRl7OUnIHtTQ2MAbW95g/7H97U/K4+yoAfIrE0K4ppSi6ssqRqvRLL92OYGBgZ4OSbgh15A9KDQklJsW3cTkcZPJL86nobHBZXtNaeiP6B37KUtOFkK0QdkUZVvLGGkfybJrl0ky9hGSkD0sNDiUldetZOr4qRSUFLhNygC6kzp0B3TgeodHIUQvpEyK4reLGRs2lhsX3CjbKPoQGbL2Ek2mJjZv3czXh74mJSmFsJAwt/dRMQrbFBvI600IAdiNdgrfLmRi6kRWLFzhtmBUeBdJyF7EZDaxeetmvjr4FX0T+xIeGu72PipUYZtmA/dNhRB+zHrGSsl7JVwx/gqum3udDFP7IEnIXsZkNvHOtnf44uAX9InrQ1SE+43CVYDCPsmOSpBfpRC9UVNuE1UfV7Hg8gXMnT5X1qb2UZKQvZDFYmHLp1v45OtPiAiNICEuwe19FAr7aDtqsPw6hehNjEeMWA5aWDp/KRPHTETTZCEhXyUJ2UvZ7XY+2/sZH336EUop+iX1a9cLzd7Pjn2cHWSJWiH8m4KKzyoIKQrhputuYtjAYZ6OSFwiScheTCnFkcwjvLP9HWqMNaT2S0Wvc59pVXRzsZfUcwjhl1SjonhLMSn6FFYuWklyn2RPhyS6gCRkH3Aq/xRvbHmDotIiBvYbSIDB/Wo7Krg5KUd3f3xCiJ5jL7aT934eY1LHsGLhCmKiYjwdkugikpB9RFlFGZs+3MTxU8fpn9yf0JBQt/dRuubrygPlVyyEz7OD6bCJoi+KmDFhBjfMv4HQYPfvA8J3SEL2IbV1tby74132Hd1HfEx8uz8Z2/vYsV9ml/nKQviqBqjZVUNtfi1XzriSa2df266RMuFbJCH7GIvFwo49O/j4q48JNASS3Ce5XcVeKkhhv8yO6iO/biF8SjEUby1GZ9OxeN5iZk6aKdOa/JQkZB+klGL/sf28t/M96urrSE1JRa9vR7EXCjVIYR8pVdhCeD0bqGOK05+fJjYqlmXXLmPciHGejkp0I0nIPuxU/ine2voWeUV5pKaktnvNWhWhsE20QWQ3ByiE6Jw6aPy8keLsYoYPGs4N82+gf3J/T0clupkkZB9XUV3B5q2bOXb8GAmxCe2+rqx0CvsoO2qQ/PqF8CZagUbJzhIsjRZmTprJwjkL21XEKXyfJGQ/0NjUyM4vdvL5vs+x2+30S+7XrvnKIAVfQngNK9iP2Dn9xWniY+K5bt51TBozSVbe6kUkIfsJpRRp2Wl8uOtDCkoL6JfUr107RgGowOaCr0T5UxDCI6qgfk89pTmljB46mhvm3yCLffRCkpD9TGV1JR/u/pADaQcICwkjMT6x3Z+w7QPt2EdJwZcQPcYKWoZG4ZeFAMyeMpurZ11NSHCIhwMTniAJ2Q9ZbVa+PvQ12z/fTrWxmtS+qQQGtG8rNhWusI2zQVw3BylEL6eVaVj2W8g7kUdiQiKL5y1m/MjxMkTdi0lC9mP5xfm8v/N9Mk9ldqjgC8Ce0txblvWwhehaZtCl6ahOq6a8qpxxI8Zxw/wb6BPXx9ORCQ+ThOznLir4SurXrjnLAMqgsA9vXnpT1iEQ4pJpBRrqmKLwdCF6nZ65M+Zy5Ywr2z1lUfg3Sci9gFKK9BPpjoKvkgJSklLaXfAFzfOWx8owthCdZgTdMR2N+Y3O1+D1V13P6KGjZYhaOElC7kWqaqr4cPeH7D+2n9DgUJISkjr0ZiDD2EJ0kBV02Trs2XaKS4uxWq1MHDORBXMWEB8T7+nohJeRhNzL2Gw2vj78Nds/205VbRUpSSkd2jFGGRT2EXZUqgxjC+GKVqyhS9NhPGOkpLyEvol9ueaKa5gwaoKsRS1aJQm5lyooKWDbZ9tIy0ojICCAvn36tvvaMsgwthBtqnMUbdmL7eSX5KPX6Zk2fhpXz7qa6MhoT0cnvJgk5F7MarNyOOMwO7/YSWFJIXExccRGxbZ7GFuhUClKhrGFAGgAXZYO8h2XhyoqKxjYfyALZi9g1NBRcq1YuCUJWWCsN/LpN5/y5cEvqW+oJyUxpUMLEyiDwj60uRrb0I2BCuGNmhzXibU8jabGJgpKCwgPCWfmpJnMmz6PsND2F1CK3k0SsnDKK8pjx54dnR/GDlDYh0hiFr2EGXQndGi5GnarneKyYkxmE6OGjuLaK64lNSXV0xEKHyMJWbRwqcPYIIlZ+DkLaDkaulM6NKtGVW0VZRVlpPRJ4cqZVzJxzEQCDAGejlL4IEnIolW1dbV8tvczvjzwJfWNHR/GBknMws/YQMvVHL1ii0ZjUyNFpUUEBwcz/bLpzJsxj6iIKE9HKXyYJGTh0unC045h7Ow0AgMCOzyMDc2JeXBzYpaOg/A1dtDyNMd1YpOGyWyiuKwYu7IzfNBw5s+az+D+g6VoS1wyScjCLavNyqH0Q3z8xccUlhYSExlDXExch+dSSmIWPsUOWqGGLkuH1qhhsVgoKivCarMyuP9g5kybw+hhozHoZfhHdA1JyKLdautq+eLAF3xz6BvKq8qJiYohPiZeErPwLybQ8jV0uTq0Jg2L1ULJmRJMZhOpfVOZPW0240eMJyBA/nhF15KELDqssrqSb4580yWJWQ1U2FNlHrPwAtU4knCRhmbXsNlslJaXUtdQR//k/syeOpsJoyfIRhCi20hCFp3WZYlZU6gkhX2gXVb+Ej3L3rzEZY4OrdpxDdhmt3Gm4gy1dbX07dOXK6ZcwcSxEzu0xKwQnSEJWVyyyupK9h7Zy9eHv6aiqoLoyOhOJWZwLMlpT7Wj+klltuhGTaA77VjMQzM5ErHdbqe8qpzq2mr6xPXh8kmXM3X8VMLDwj0crOgtJCGLLtOlidmgUP0U9gF2iOyGYEXvVNk8LF2soalzibiyupKK6griY+KZMXEG0ydMlylMosdJQhZdrisTM4CKUtj721EpUgQmOsEGWlHzsHTtualJFquFMxVnqGuoIzoymmmXTWPGxBnERct1E+EZkpBFt6mqqXIk5kNfU15VTkRYBPGx8Z1exUjpFCq5udcs75nCFTto5ZqjJ1yioVnOJeK6hjrOVJzBZreRnJDMlPFTGD9iPPGxsj+x8CxJyKLbVdVUsf/YfvYf3U9JeQl6vZ4+sX0uadF9FdacnJPsEN11sQof5iIJ2+12qmqqqKypJDgomMEDBjNl3BRGDx1NcJCU+AvvIAlZ9JjGpkYyTmSw79g+TuWdosnURExUDLFRsZe0YbsKdlRpqySFilUge7/3Hi6SMIDZYuZMxRnqG+uJiYrhslGXMWHUBFJTUi/pb06I7iAJWfQ4u93O6cLTHMo4xOGMw1TVVBESHEJ8THyH18u+kApQqMTm5JygoGOrfApfYAetQnPMF24lCSulHMPSlWdQStG3T1+mXTaNcSPGERMV46GghXBPErLwqOraao5lHWPf0X0UlhRisVqIiYwhJiqmw2tmX0jpHUlZJSlUHwWBXRS06Hlnk3Bx85fl4nWjbXYbldWVVNVUERoSyrCBw5gybgojB48kMFB++cL7SUIWXsFqs5KTn8PR40c5evwoVTVVBBgCSIhNIDQk9JIX7leaQsWdG9qWlcF8QF3zcHS55kjGrSRhu91OjbGGqtoqbHYbsVGxTBg9gQmjJtA/ub9s+CB8iiRk4XVqjDUcP3Wc/cf2c7rwNI1NjYSFhBETFUNIcMilJ2cUhIGKVaiY5uvOsvaD5zWdl4DLNbSm1n/PdrudmroaqmocSTgyLJIhA4Ywethohg8aLvOHhc+ShCy8lt1uJ784n6ycLI5lHaO0vJTGpkaCg4KJiYwhPCy8y3pAKvBcclYxCqKQ68/drR60Su3cV33bv8uzSbi6phqrzUpk+LkkPGTAEGKjY3swcCG6hyRk4RNsNhuFpYXk5OeQlp1GYUkhdQ11BBgCiImKITI8skurZpXOkZRb9KLlMmTn2QAjaFXnJWCT6w9Tdrud2rpaqmqqnEl48IDBjB46mqGpQyUJC78jCVn4HKUUpeWl5OTnkH4indOFp6mtq0Wn0xEdEU1UZFSX71HbYpg7yjHErcKar0XLZcpzbDh6vkYNzag5rgMbNcexdjxRrSbh/oMdPeHUIbKKlvBrkpCFT1NKUVVTRU5BDpknMzmRe4IaYw1KKSIjIomOjCYwoPu6tkrfnKjDmv8frpz/9use9fmJt05z9H47kHjPUkrR2NRIbV0tdQ11KKWICItgcP/BjBk+RpKw6FUkIQu/Yqw3kpOfQ3ZuNpknM6mqrcJqtaLX6QkPCyc8LJyQoEsvDGsPFXhxknb2qgPw3p61HbAAJhzDyubz/t2chGnAuTlDRyilMJlNGOuM1NbXYrfbCQkKISY6huGDhjOg7wAG9B1AXHScVEiLXkcSsvBbjU2NFJYUUnymmLyiPOfQdpOpCQ2N0JBQwsPCCQsNQ6/r2QoupTVvlBHUnLgDz/u3AcdtBseXClDOf2MAzr5i1QX/Pv9YW21sFyRZswamC/5t7lgv1+XjbO4BG+uN1DfUY7PbCAwIJCoyiiH9hzCo/yD6JfUjMSGxyy8zCOFrJCGLXsNisVBaUUpxWTFFpUWczDtJZXUl9Y31KKUICgwiPCyciNAIAgJkW6nOsFgtNDY1UldfR0NTA0opQoJCiIqMYlC/QfTv25/khGT6JvYlKDDI0+EK4VUkIYtey263U1lTSXFZMcVlxeTk51B8ppi6hjrnMHdIcAjBQcEEBQURHBgs6x83O5t4m0xNNDY1YraYATAYDI4h6KgYhgwYQr/kfiQnJJMQl9DpXb6E6C0kIQtxnrr6OkrOlFB8ppj84nxKzpQ4h7lNZpNz+DcgIIDgoGDnV2BAoF9e82wt8Wqahl6nJzg4mLCQMJISkkjuk0xsVCxx0XHERMUQHRktH16E6CBJyEK4cPYaaHVttePLWE1VTRWl5aWUVZTR0NhAk6nJmag0TSMo0NGbDgoMwmAwOL70Bq9K2Ha7HavNitVqxWK1OP9/9t9WmxUAvd4xShAWEkZSfBLJiY7EGxsVS2x0LFERUZe85rgQwkESshCdZLfbMdYbzyXr2moqqisoLS+loqoCk9nkSHDNie9sQlZKodN06PV6x5dO3+q/zxZWKaUc86ABVPOc6LP/P+/Y2Zfy2dsvTLJ2ZW8RQ4AhgABDAAaDgQBDAKEhoUSERRAZHkl0VLQz8cZExxAdES2JV4huJglZiG5gsVqoq6+jydREQ1NDi2HfxqZG6hrqqG+od3xvchw72zO12WzY7DbH8Hhzp1pDw/Hfef8HZ4Jt7f8BhgDCQ8OJjIgkMjySiLAIQoJDCAkOITQ41Pnvs19yjVcIz5KELISXsNqsmC1mLBYLJrMJpZRjGBwNTaed+7d27gtw/lun6RzHmhN2UGCQXMcVwodIQhZC9DoDBw7k8ccf5/HHH29X+927d3PllVdSVVVFdHR0t8Ymei/5+CyE8Frnjwa09vXMM8906rx79+7lvvvua3f7yy+/nOLiYqKiundrx927d58b8dDpiIqKYuLEifzP//wPxcXFHT6fpmm8/fbbXR+o6BayNI4Qwmudn4Q2btzIj3/8Y44fP+48Fh5+biNrpRQ2mw2Dwf3bWkJCQofiCAwMJCkpqUP3uRTHjx8nMjKS2tpaDhw4wHPPPcc///lPdu/ezbhx43osDtGzpIcshPBaSUlJzq+oqCg0TXN+n5mZSUREBFu2bGHy5MkEBQXx+eefc/LkSZYuXUpiYiLh4eFMnTqVHTt2tDjvwIED+f3vf+/8XtM0/vGPf7B8+XJCQ0MZNmwY7777rvP2sz3X6upqAF5++WWio6PZunUro0aNIjw8nIULF7b4AGG1Wnn00UeJjo4mLi6O73znO6xevZply5a5fdx9+vQhKSmJ4cOHc8stt7Bnzx4SEhJ48MEHnW327t3LNddcQ3x8PFFRUcydO5cDBw60eIwAy5cvR9M05/fteX6EZ0hCFkL4tO9+97v88pe/JCMjg/Hjx1NXV8eiRYvYuXMnBw8eZOHChSxZsoS8vDyX53n22WdZtWoVR44cYdGiRdx+++1UVla22b6hoYHf/OY3vPLKK3z66afk5eXx1FNPOW//1a9+xWuvvcZLL73Enj17qK2t7fTwcUhICA888AB79uyhrKwMAKPRyOrVq/n888/56quvGDZsGIsWLcJoNAKOhA3w0ksvUVxc7Py+s8+P6AFKCCF8wEsvvaSioqKc3+/atUsB6u2333Z73zFjxqg//elPzu9TU1PV//t//8/5PaB++MMfOr+vq6tTgNqyZUuLn1VVVeWMBVAnTpxw3ufPf/6zSkxMdH6fmJiofv3rXzu/t1qtasCAAWrp0qVtxnnhzznfli1bFKC+/vrrVu9rs9lURESEeu+991o8rrfeeqvNn3fWhc+P8AzpIQshfNqUKVNafF9XV8dTTz3FqFGjiI6OJjw8nIyMDLc9wPHjxzv/HRYWRmRkpLM32prQ0FCGDBni/D45OdnZvqamhtLSUqZNm+a8Xa/XM3ny5A49tvOp5gkxZ6e7lZaWsm7dOoYNG0ZUVBSRkZHU1dW5fZydfX5E95OiLiGETwsLC2vx/VNPPcX27dv5zW9+w9ChQwkJCeGmm27CbDa7PM+FO3xpmobdbu9Qe9WNs0gzMjKAc9eGV69eTUVFBX/4wx9ITU0lKCiImTNnun2cnX1+RPeThCyE8Ct79uxhzZo1LF++HHD0CHNzc3s0hqioKBITE9m7dy9z5swBwGazceDAASZMmNDh8zU2NvLiiy8yZ84cZ4X4nj17eOGFF1i0aBEA+fn5lJeXt7hfQEAANputxTFveH5E6yQhCyH8yrBhw9i8eTNLlixB0zR+9KMfuezpdpdHHnmEX/ziFwwdOpSRI0fypz/9iaqqqnZtMlJWVkZTUxNGo5H9+/fz3HPPUV5ezubNm51thg0bxiuvvMKUKVOora3l29/+NiEhIS3OM3DgQHbu3MmsWbMICgoiJibGa54fcTG5hiyE8Cu/+93viImJ4fLLL2fJkiUsWLCASZMm9Xgc3/nOd7j11lu56667mDlzJuHh4SxYsIDg4GC39x0xYgR9+/Zl8uTJ/PKXv2T+/PkcO3aM0aNHO9v885//pKqqikmTJnHnnXfy6KOP0qdPnxbn+e1vf8v27dvp378/EydOBLzn+REXk6UzhRCiB9jtdkaNGsWqVav4yU9+4ulwhBeSIWshhOgGp0+fZtu2bcydOxeTycTzzz9PTk4Ot912m6dDE15KhqyFEKIb6HQ6Xn75ZaZOncqsWbM4evQoO3bsYNSoUZ4OTXgpGbIWQgghvID0kIUQQggvIAlZCCGE8AKSkIUQQggvIAlZCCGE8AKSkIUQQggvIAlZCCGE8AKSkIUQQggvIAlZCCGE8AKSkIUQQggv8P8BT7j6OnOO6v8AAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ], + "source": [ + "labels = ['Training Data', 'Testing Data']\n", + "sizes = [len(train_dataset), len(test_dataset)]\n", + "colors = ['lightgreen', 'red']\n", + "explode = (0.1, 0)\n", + "plt.figure(figsize=(6, 6))\n", + "plt.pie(sizes, explode=explode, labels=labels, colors=colors,\n", + " autopct='%1.1f%%', shadow=True, startangle=140)\n", + "plt.title('Training vs Testing Data Distribution')\n", + "plt.axis('equal')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qBrUGzexQaDy" + }, + "source": [ + "# Class distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 536 + }, + "id": "BtgvcIqWQaDy", + "outputId": "73261c62-67b3-4b57-f235-5a7e0b87f93d" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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lZ6enuH54+PjlZCQIH9//yw/FgDg34GiDQBwOLf2GP5zD+H169f17bffPvDnfvfdd1W0aFH16tVLR48ezbD93LlzGjp06B3vn1n2bdu2KSYmxm7chQsX7JadnJxss2LfOjz79jEFCxZUuXLlsnX49u327t2r999/X15eXgoPD7/juL///jvDHtpbM6bfev5bs4hnVnxz4scff9Sff/5pW96+fbu2bdumpk2b2taVLVtWv/76q86fP29bt3fvXm3evNnusbKTrVmzZpKkUaNG2a0fMWKEJCk0NDRbrwMA8Ojj8l4AAIfz9NNPy8vLS2FhYXrvvfdksVg0Y8aMh3JorpeXlxYuXKhmzZqpevXqatu2rYKCgiRJu3fv1uzZsxUcHHzH+7/44otasGCBXn75ZYWGhurkyZMaN26cAgIC7A65fuutt3Tx4kU1aNBAxYsX1++//66vv/5a1atXV+XKlSXdnHSrfv36CgoKkre3t3bu3Kn58+erW7duWXotP//8s5KTk5WWlqYLFy5o8+bN+umnn+Th4aGFCxfKz8/vjvedNm2avv32W7388ssqW7asLl26pO+++07u7u62Yurq6qqAgAD98MMPqlChgry9vVWlShVVqVIlS/luV65cOdWtW1ddu3ZVSkqKRo0apcKFC6tv3762MZ06ddKIESMUEhKizp0769y5cxo3bpyeeOIJJSUl2cZlJ1u1atUUFhamCRMm2E5b2L59u6ZNm6aWLVvq+eefz9HrAQA8uijaAACHU7hwYS1ZskS9evXSgAED5OXlpbZt26phw4ZZOtz5ftWuXVsHDhzQ559/rqVLl2rGjBlycnJS5cqV1b9//7sW3Q4dOiguLk7jx4/XihUrFBAQoO+//17z5s3T+vXrbePatm2rCRMm6Ntvv1VCQoL8/Pz02muvadCgQbbzmt977z399NNPWrlypVJSUuTv76+hQ4eqT58+WXodo0ePliTly5dPnp6eqly5sgYPHqwuXbqoSJEid73vrbI5Z84cxcfHy8PDQ7Vq1dLMmTNVunRp27iJEyeqe/fu6tmzp65fv66BAwfmuGi3b99eTk5OGjVqlM6dO6datWrpm2++UdGiRW1jKleurOnTpysqKkoREREKCAjQjBkzNGvWLLt/3+xmmzhxosqUKaOpU6favoSIjIzUwIEDc/RaAACPNouVmTkAAAAAADAM52gDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGcsjraKenp+vMmTMqVKiQLBaL2XEAAAAAAI84q9WqS5cuqVixYnJyuvs+a4cs2mfOnFGJEiXMjgEAAAAA+Jc5ffq0ihcvftcxDlm0CxUqJOnmC3R3dzc5DQAAAADgUZeUlKQSJUrY+ujdOGTRvnW4uLu7O0UbAAAAAPDQZOX0ZSZDAwAAAADAQBRtAAAAAAAMRNEGAAAAAMBAFG0AAAAAAAxE0QYAAAAAwEAUbQAAAAAADETRBgAAAADAQBRtAAAAAAAMRNEGAAAAAMBAFG0AAAAAAAxE0QYAAAAAwED3VbSHDRsmi8Wi999/37YuOTlZ4eHhKly4sAoWLKjWrVsrPj7e7n6xsbEKDQ2Vm5ubfHx81KdPH6Wmpt5PFAAAAAAAcoUcF+0dO3Zo/PjxCgwMtFvfs2dPLV68WPPmzdOGDRt05swZtWrVyrY9LS1NoaGhun79urZs2aJp06Zp6tSpioqKyvmrAAAAAAAgl8hR0b58+bLatGmj7777Tl5eXrb1iYmJmjRpkkaMGKEGDRooKChIU6ZM0ZYtW7R161ZJ0sqVK3Xo0CF9//33ql69upo2baqPP/5YY8aM0fXr1415VQAAAAAAmCRHRTs8PFyhoaFq1KiR3fpdu3bpxo0bdusrVaqkkiVLKiYmRpIUExOjqlWrytfX1zYmJCRESUlJOnjwYKbPl5KSoqSkJLsbAAAAAAC5Ud7s3mHOnDnavXu3duzYkWFbXFycnJ2d5enpabfe19dXcXFxtjH/LNm3tt/alpno6GgNHjw4u1FzhVL9l5odAQY7NSzU7AhAjvD76NHD7yMAAHKnbO3RPn36tHr06KGZM2cqf/78DypTBpGRkUpMTLTdTp8+/dCeGwAAAACA7MhW0d61a5fOnTunJ598Unnz5lXevHm1YcMGjR49Wnnz5pWvr6+uX7+uhIQEu/vFx8fLz89PkuTn55dhFvJby7fG3M7FxUXu7u52NwAAAAAAcqNsFe2GDRtq//792rNnj+1Ws2ZNtWnTxvZzvnz5tGbNGtt9jhw5otjYWAUHB0uSgoODtX//fp07d842ZtWqVXJ3d1dAQIBBLwsAAAAAAHNk6xztQoUKqUqVKnbrChQooMKFC9vWd+7cWREREfL29pa7u7u6d++u4OBg1alTR5LUuHFjBQQEqF27dho+fLji4uI0YMAAhYeHy8XFxaCXBQAAAACAObI9Gdq9jBw5Uk5OTmrdurVSUlIUEhKib7/91rY9T548WrJkibp27arg4GAVKFBAYWFhGjJkiNFRAAAAAAB46O67aK9fv95uOX/+/BozZozGjBlzx/v4+/tr2bJl9/vUAAAAAADkOjm6jjYAAAAAAMgcRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwULaK9tixYxUYGCh3d3e5u7srODhY//vf/2zb69evL4vFYnd799137R4jNjZWoaGhcnNzk4+Pj/r06aPU1FRjXg0AAAAAACbLm53BxYsX17Bhw1S+fHlZrVZNmzZNL730kn755Rc98cQTkqQuXbpoyJAhtvu4ubnZfk5LS1NoaKj8/Py0ZcsWnT17Vu3bt1e+fPn06aefGvSSAAAAAAAwT7aKdvPmze2WP/nkE40dO1Zbt261FW03Nzf5+fllev+VK1fq0KFDWr16tXx9fVW9enV9/PHH6tevnwYNGiRnZ+ccvgwAAAAAAHKHHJ+jnZaWpjlz5ujKlSsKDg62rZ85c6Yee+wxValSRZGRkbp69aptW0xMjKpWrSpfX1/bupCQECUlJengwYN3fK6UlBQlJSXZ3QAAAAAAyI2ytUdbkvbv36/g4GAlJyerYMGCWrhwoQICAiRJb775pvz9/VWsWDHt27dP/fr105EjR7RgwQJJUlxcnF3JlmRbjouLu+NzRkdHa/DgwdmNCgAAAADAQ5ftol2xYkXt2bNHiYmJmj9/vsLCwrRhwwYFBATo7bffto2rWrWqihYtqoYNG+r48eMqW7ZsjkNGRkYqIiLCtpyUlKQSJUrk+PEAAAAAAHhQsn3ouLOzs8qVK6egoCBFR0erWrVq+uqrrzIdW7t2bUnSb7/9Jkny8/NTfHy83Zhby3c6r1uSXFxcbDOd37oBAAAAAJAb3fd1tNPT05WSkpLptj179kiSihYtKkkKDg7W/v37de7cOduYVatWyd3d3Xb4OQAAAAAAjixbh45HRkaqadOmKlmypC5duqRZs2Zp/fr1WrFihY4fP65Zs2apWbNmKly4sPbt26eePXvq2WefVWBgoCSpcePGCggIULt27TR8+HDFxcVpwIABCg8Pl4uLywN5gQAAAAAAPEzZKtrnzp1T+/btdfbsWXl4eCgwMFArVqzQCy+8oNOnT2v16tUaNWqUrly5ohIlSqh169YaMGCA7f558uTRkiVL1LVrVwUHB6tAgQIKCwuzu+42AAAAAACOLFtFe9KkSXfcVqJECW3YsOGej+Hv769ly5Zl52kBAAAAAHAY932ONgAAAAAA+P8o2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGCiv2QEA3Fup/kvNjgCDnRoWanYEAAAAPCDs0QYAAAAAwEAUbQAAAAAADETRBgAAAADAQBRtAAAAAAAMRNEGAAAAAMBAFG0AAAAAAAxE0QYAAAAAwEAUbQAAAAAADETRBgAAAADAQBRtAAAAAAAMRNEGAAAAAMBAFG0AAAAAAAxE0QYAAAAAwEAUbQAAAAAADJStoj127FgFBgbK3d1d7u7uCg4O1v/+9z/b9uTkZIWHh6tw4cIqWLCgWrdurfj4eLvHiI2NVWhoqNzc3OTj46M+ffooNTXVmFcDAAAAAIDJslW0ixcvrmHDhmnXrl3auXOnGjRooJdeekkHDx6UJPXs2VOLFy/WvHnztGHDBp05c0atWrWy3T8tLU2hoaG6fv26tmzZomnTpmnq1KmKiooy9lUBAAAAAGCSvNkZ3Lx5c7vlTz75RGPHjtXWrVtVvHhxTZo0SbNmzVKDBg0kSVOmTFHlypW1detW1alTRytXrtShQ4e0evVq+fr6qnr16vr444/Vr18/DRo0SM7Ozsa9MgAAAAAATJDjc7TT0tI0Z84cXblyRcHBwdq1a5du3LihRo0a2cZUqlRJJUuWVExMjCQpJiZGVatWla+vr21MSEiIkpKSbHvFM5OSkqKkpCS7GwAAAAAAuVG2i/b+/ftVsGBBubi46N1339XChQsVEBCguLg4OTs7y9PT0268r6+v4uLiJElxcXF2JfvW9lvb7iQ6OloeHh62W4kSJbIbGwAAAACAhyLbRbtixYras2ePtm3bpq5duyosLEyHDh16ENlsIiMjlZiYaLudPn36gT4fAAAAAAA5la1ztCXJ2dlZ5cqVkyQFBQVpx44d+uqrr/Taa6/p+vXrSkhIsNurHR8fLz8/P0mSn5+ftm/fbvd4t2YlvzUmMy4uLnJxccluVAAAAAAAHrr7vo52enq6UlJSFBQUpHz58mnNmjW2bUeOHFFsbKyCg4MlScHBwdq/f7/OnTtnG7Nq1Sq5u7srICDgfqMAAAAAAGC6bO3RjoyMVNOmTVWyZEldunRJs2bN0vr167VixQp5eHioc+fOioiIkLe3t9zd3dW9e3cFBwerTp06kqTGjRsrICBA7dq10/DhwxUXF6cBAwYoPDycPdYAAAAAgEdCtor2uXPn1L59e509e1YeHh4KDAzUihUr9MILL0iSRo4cKScnJ7Vu3VopKSkKCQnRt99+a7t/njx5tGTJEnXt2lXBwcEqUKCAwsLCNGTIEGNfFQAAAAAAJslW0Z40adJdt+fPn19jxozRmDFj7jjG399fy5Yty87TAgAAAADgMO77HG0AAAAAAPD/UbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA2WraEdHR+upp55SoUKF5OPjo5YtW+rIkSN2Y+rXry+LxWJ3e/fdd+3GxMbGKjQ0VG5ubvLx8VGfPn2Umpp6/68GAAAAAACT5c3O4A0bNig8PFxPPfWUUlNT9cEHH6hx48Y6dOiQChQoYBvXpUsXDRkyxLbs5uZm+zktLU2hoaHy8/PTli1bdPbsWbVv31758uXTp59+asBLAgAAAADAPNkq2suXL7dbnjp1qnx8fLRr1y49++yztvVubm7y8/PL9DFWrlypQ4cOafXq1fL19VX16tX18ccfq1+/fho0aJCcnZ0z3CclJUUpKSm25aSkpOzEBgAAAADgobmvc7QTExMlSd7e3nbrZ86cqccee0xVqlRRZGSkrl69atsWExOjqlWrytfX17YuJCRESUlJOnjwYKbPEx0dLQ8PD9utRIkS9xMbAAAAAIAHJlt7tP8pPT1d77//vp555hlVqVLFtv7NN9+Uv7+/ihUrpn379qlfv346cuSIFixYIEmKi4uzK9mSbMtxcXGZPldkZKQiIiJsy0lJSZRtAAAAAECulOOiHR4ergMHDmjTpk12699++23bz1WrVlXRokXVsGFDHT9+XGXLls3Rc7m4uMjFxSWnUQEAAAAAeGhydOh4t27dtGTJEq1bt07Fixe/69jatWtLkn777TdJkp+fn+Lj4+3G3Fq+03ndAAAAAAA4imwVbavVqm7dumnhwoVau3atSpcufc/77NmzR5JUtGhRSVJwcLD279+vc+fO2casWrVK7u7uCggIyE4cAAAAAABynWwdOh4eHq5Zs2Zp0aJFKlSokO2cag8PD7m6uur48eOaNWuWmjVrpsKFC2vfvn3q2bOnnn32WQUGBkqSGjdurICAALVr107Dhw9XXFycBgwYoPDwcA4PBwAAAAA4vGzt0R47dqwSExNVv359FS1a1Hb74YcfJEnOzs5avXq1GjdurEqVKqlXr15q3bq1Fi9ebHuMPHnyaMmSJcqTJ4+Cg4PVtm1btW/f3u662wAAAAAAOKps7dG2Wq133V6iRAlt2LDhno/j7++vZcuWZeepAQAAAABwCPd1HW0AAAAAAGCPog0AAAAAgIFyfB1tAADw71Oq/1KzI8BAp4aFPvTn5D306OF9BCOY8T56kNijDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYKFtFOzo6Wk899ZQKFSokHx8ftWzZUkeOHLEbk5ycrPDwcBUuXFgFCxZU69atFR8fbzcmNjZWoaGhcnNzk4+Pj/r06aPU1NT7fzUAAAAAAJgsW0V7w4YNCg8P19atW7Vq1SrduHFDjRs31pUrV2xjevbsqcWLF2vevHnasGGDzpw5o1atWtm2p6WlKTQ0VNevX9eWLVs0bdo0TZ06VVFRUca9KgAAAAAATJI3O4OXL19utzx16lT5+Pho165devbZZ5WYmKhJkyZp1qxZatCggSRpypQpqly5srZu3ao6depo5cqVOnTokFavXi1fX19Vr15dH3/8sfr166dBgwbJ2dk5w/OmpKQoJSXFtpyUlJST1woAAAAAwAN3X+doJyYmSpK8vb0lSbt27dKNGzfUqFEj25hKlSqpZMmSiomJkSTFxMSoatWq8vX1tY0JCQlRUlKSDh48mOnzREdHy8PDw3YrUaLE/cQGAAAAAOCByXHRTk9P1/vvv69nnnlGVapUkSTFxcXJ2dlZnp6edmN9fX0VFxdnG/PPkn1r+61tmYmMjFRiYqLtdvr06ZzGBgAAAADggcrWoeP/FB4ergMHDmjTpk1G5smUi4uLXFxcHvjzAAAAAABwv3K0R7tbt25asmSJ1q1bp+LFi9vW+/n56fr160pISLAbHx8fLz8/P9uY22chv7V8awwAAAAAAI4qW0XbarWqW7duWrhwodauXavSpUvbbQ8KClK+fPm0Zs0a27ojR44oNjZWwcHBkqTg4GDt379f586ds41ZtWqV3N3dFRAQcD+vBQAAAAAA02Xr0PHw8HDNmjVLixYtUqFChWznVHt4eMjV1VUeHh7q3LmzIiIi5O3tLXd3d3Xv3l3BwcGqU6eOJKlx48YKCAhQu3btNHz4cMXFxWnAgAEKDw/n8HAAAAAAgMPLVtEeO3asJKl+/fp266dMmaIOHTpIkkaOHCknJye1bt1aKSkpCgkJ0bfffmsbmydPHi1ZskRdu3ZVcHCwChQooLCwMA0ZMuT+XgkAAAAAALlAtoq21Wq955j8+fNrzJgxGjNmzB3H+Pv7a9myZdl5agAAAAAAHMJ9XUcbAAAAAADYo2gDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYKBsF+2NGzeqefPmKlasmCwWi3788Ue77R06dJDFYrG7NWnSxG7MxYsX1aZNG7m7u8vT01OdO3fW5cuX7+uFAAAAAACQG2S7aF+5ckXVqlXTmDFj7jimSZMmOnv2rO02e/Zsu+1t2rTRwYMHtWrVKi1ZskQbN27U22+/nf30AAAAAADkMnmze4emTZuqadOmdx3j4uIiPz+/TLcdPnxYy5cv144dO1SzZk1J0tdff61mzZrpiy++ULFixbIbCQAAAACAXOOBnKO9fv16+fj4qGLFiuratasuXLhg2xYTEyNPT09byZakRo0aycnJSdu2bcv08VJSUpSUlGR3AwAAAAAgNzK8aDdp0kTTp0/XmjVr9Nlnn2nDhg1q2rSp0tLSJElxcXHy8fGxu0/evHnl7e2tuLi4TB8zOjpaHh4etluJEiWMjg0AAAAAgCGyfej4vbz++uu2n6tWrarAwECVLVtW69evV8OGDXP0mJGRkYqIiLAtJyUlUbYBAAAAALnSA7+8V5kyZfTYY4/pt99+kyT5+fnp3LlzdmNSU1N18eLFO57X7eLiInd3d7sbAAAAAAC50QMv2n/88YcuXLigokWLSpKCg4OVkJCgXbt22casXbtW6enpql279oOOAwAAAADAA5XtQ8cvX75s2zstSSdPntSePXvk7e0tb29vDR48WK1bt5afn5+OHz+uvn37qly5cgoJCZEkVa5cWU2aNFGXLl00btw43bhxQ926ddPrr7/OjOMAAAAAAIeX7T3aO3fuVI0aNVSjRg1JUkREhGrUqKGoqCjlyZNH+/btU4sWLVShQgV17txZQUFB+vnnn+Xi4mJ7jJkzZ6pSpUpq2LChmjVrprp162rChAnGvSoAAAAAAEyS7T3a9evXl9VqveP2FStW3PMxvL29NWvWrOw+NQAAAAAAud4DP0cbAAAAAIB/E4o2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYCCKNgAAAAAABqJoAwAAAABgIIo2AAAAAAAGomgDAAAAAGAgijYAAAAAAAaiaAMAAAAAYKBsF+2NGzeqefPmKlasmCwWi3788Ue77VarVVFRUSpatKhcXV3VqFEjHTt2zG7MxYsX1aZNG7m7u8vT01OdO3fW5cuX7+uFAAAAAACQG2S7aF+5ckXVqlXTmDFjMt0+fPhwjR49WuPGjdO2bdtUoEABhYSEKDk52TamTZs2OnjwoFatWqUlS5Zo48aNevvtt3P+KgAAAAAAyCXyZvcOTZs2VdOmTTPdZrVaNWrUKA0YMEAvvfSSJGn69Ony9fXVjz/+qNdff12HDx/W8uXLtWPHDtWsWVOS9PXXX6tZs2b64osvVKxYsft4OQAAAAAAmMvQc7RPnjypuLg4NWrUyLbOw8NDtWvXVkxMjCQpJiZGnp6etpItSY0aNZKTk5O2bduW6eOmpKQoKSnJ7gYAAAAAQG5kaNGOi4uTJPn6+tqt9/X1tW2Li4uTj4+P3fa8efPK29vbNuZ20dHR8vDwsN1KlChhZGwAAAAAAAzjELOOR0ZGKjEx0XY7ffq02ZEAAAAAAMiUoUXbz89PkhQfH2+3Pj4+3rbNz89P586ds9uempqqixcv2sbczsXFRe7u7nY3AAAAAAByI0OLdunSpeXn56c1a9bY1iUlJWnbtm0KDg6WJAUHByshIUG7du2yjVm7dq3S09NVu3ZtI+MAAAAAAPDQZXvW8cuXL+u3336zLZ88eVJ79uyRt7e3SpYsqffff19Dhw5V+fLlVbp0aX300UcqVqyYWrZsKUmqXLmymjRpoi5dumjcuHG6ceOGunXrptdff50ZxwEAAAAADi/bRXvnzp16/vnnbcsRERGSpLCwME2dOlV9+/bVlStX9PbbbyshIUF169bV8uXLlT9/ftt9Zs6cqW7duqlhw4ZycnJS69atNXr0aANeDgAAAAAA5sp20a5fv76sVusdt1ssFg0ZMkRDhgy54xhvb2/NmjUru08NAAAAAECu5xCzjgMAAAAA4Cgo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBKNoAAAAAABiIog0AAAAAgIEo2gAAAAAAGIiiDQAAAACAgSjaAAAAAAAYiKINAAAAAICBDC/agwYNksVisbtVqlTJtj05OVnh4eEqXLiwChYsqNatWys+Pt7oGAAAAAAAmOKB7NF+4okndPbsWdtt06ZNtm09e/bU4sWLNW/ePG3YsEFnzpxRq1atHkQMAAAAAAAeurwP5EHz5pWfn1+G9YmJiZo0aZJmzZqlBg0aSJKmTJmiypUra+vWrapTp86DiAMAAAAAwEPzQPZoHzt2TMWKFVOZMmXUpk0bxcbGSpJ27dqlGzduqFGjRraxlSpVUsmSJRUTE3PHx0tJSVFSUpLdDQAAAACA3Mjwol27dm1NnTpVy5cv19ixY3Xy5EnVq1dPly5dUlxcnJydneXp6Wl3H19fX8XFxd3xMaOjo+Xh4WG7lShRwujYAAAAAAAYwvBDx5s2bWr7OTAwULVr15a/v7/mzp0rV1fXHD1mZGSkIiIibMtJSUmUbQAAAABArvTAL+/l6empChUq6LfffpOfn5+uX7+uhIQEuzHx8fGZntN9i4uLi9zd3e1uAAAAAADkRg+8aF++fFnHjx9X0aJFFRQUpHz58mnNmjW27UeOHFFsbKyCg4MfdBQAAAAAAB44ww8d7927t5o3by5/f3+dOXNGAwcOVJ48efTGG2/Iw8NDnTt3VkREhLy9veXu7q7u3bsrODiYGccBAAAAAI8Ew4v2H3/8oTfeeEMXLlxQkSJFVLduXW3dulVFihSRJI0cOVJOTk5q3bq1UlJSFBISom+//dboGAAAAAAAmMLwoj1nzpy7bs+fP7/GjBmjMWPGGP3UAAAAAACY7oGfow0AAAAAwL8JRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwkKlFe8yYMSpVqpTy58+v2rVra/v27WbGAQAAAADgvplWtH/44QdFRERo4MCB2r17t6pVq6aQkBCdO3fOrEgAAAAAANw304r2iBEj1KVLF3Xs2FEBAQEaN26c3NzcNHnyZLMiAQAAAABw3/Ka8aTXr1/Xrl27FBkZaVvn5OSkRo0aKSYmJsP4lJQUpaSk2JYTExMlSUlJSQ8+7H1KT7lqdgQYzIz3He+jRw/vIxiB9xHuF+8hGIH3EYzgCN3uVkar1XrPsaYU7b/++ktpaWny9fW1W+/r66tff/01w/jo6GgNHjw4w/oSJUo8sIzAnXiMMjsBHgW8j2AE3ke4X7yHYATeRzCCI72PLl26JA8Pj7uOMaVoZ1dkZKQiIiJsy+np6bp48aIKFy4si8ViYjLckpSUpBIlSuj06dNyd3c3Ow4cEO8hGIH3EYzA+whG4H0EI/A+yl2sVqsuXbqkYsWK3XOsKUX7scceU548eRQfH2+3Pj4+Xn5+fhnGu7i4yMXFxW6dp6fng4yIHHJ3d+eXAO4L7yEYgfcRjMD7CEbgfQQj8D7KPe61J/sWUyZDc3Z2VlBQkNasWWNbl56erjVr1ig4ONiMSAAAAAAAGMK0Q8cjIiIUFhammjVrqlatWho1apSuXLmijh07mhUJAAAAAID7ZlrRfu2113T+/HlFRUUpLi5O1atX1/LlyzNMkAbH4OLiooEDB2Y4xB/IKt5DMALvIxiB9xGMwPsIRuB95Lgs1qzMTQ4AAAAAALLElHO0AQAAAAB4VFG0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAANRtAEAAAAAMJBp19GGY0pKSsryWHd39weYBADspaamav369Tp+/LjefPNNFSpUSGfOnJG7u7sKFixodjwA/zLJycnKnz+/2TEAmITraCNbnJycZLFY7jrGarXKYrEoLS3tIaWCo9m3b1+WxwYGBj7AJHhU/P7772rSpIliY2OVkpKio0ePqkyZMurRo4dSUlI0btw4syMiF6pRo8Y9/6bdsnv37gecBo+C9PR0ffLJJxo3bpzi4+Ntv4s++ugjlSpVSp07dzY7InKpVq1aZXnsggULHmASGIU92siWdevWmR0Bj4Dq1avLYrHYvpS5G76wQVb06NFDNWvW1N69e1W4cGHb+pdfflldunQxMRlys5YtW9p+Tk5O1rfffquAgAAFBwdLkrZu3aqDBw/qP//5j0kJ4WiGDh2qadOmafjw4Xa/e6pUqaJRo0ZRtHFHHh4eZkeAwdijDeCh+/33320///LLL+rdu7f69Olj+3AbExOjL7/8UsOHD7f7IAzcSeHChbVlyxZVrFhRhQoV0t69e1WmTBmdOnVKAQEBunr1qtkRkcu99dZbKlq0qD7++GO79QMHDtTp06c1efJkk5LBkZQrV07jx49Xw4YN7X4X/frrrwoODtbff/9tdkQADwl7tHHfrl69qtjYWF2/ft1uPYf84k78/f1tP7/66qsaPXq0mjVrZlsXGBioEiVK6KOPPqJoI0vS09MzPfrhjz/+UKFChUxIBEczb9487dy5M8P6tm3bqmbNmhRtZMmff/6pcuXKZVifnp6uGzdumJAIgFko2six8+fPq2PHjvrf//6X6XYO+UVW7N+/X6VLl86wvnTp0jp06JAJieCIGjdurFGjRmnChAmSJIvFosuXL2vgwIF2X+IAd+Lq6qrNmzerfPnydus3b97MhFbIsoCAAP388892XyhL0vz581WjRg2TUsERzZ8/X3Pnzs10ZxZzRjgGijZy7P3331dCQoK2bdum+vXra+HChYqPj9fQoUP15Zdfmh0PDqJy5cqKjo7WxIkT5ezsLEm6fv26oqOjVblyZZPTwVF8+eWXCgkJUUBAgJKTk/Xmm2/q2LFjeuyxxzR79myz48EBvP/+++ratat2796tWrVqSZK2bdumyZMn66OPPjI5HRxFVFSUwsLC9Oeffyo9PV0LFizQkSNHNH36dC1ZssTseHAQo0eP1ocffqgOHTpo0aJF6tixo44fP64dO3YoPDzc7HjIIs7RRo4VLVpUixYtUq1ateTu7q6dO3eqQoUK+umnnzR8+HBt2rTJ7IhwANu3b1fz5s1ltVptpxvs27dPFotFixcvtn3gBe4lNTVVc+bM0b59+3T58mU9+eSTatOmjVxdXc2OBgcxd+5cffXVVzp8+LCkm18E9ujRQ//3f/9ncjI4kp9//llDhgzR3r17bb+LoqKi1LhxY7OjwUFUqlRJAwcO1BtvvGF3rn9UVJQuXryob775xuyIyAKKNnLM3d1d+/btU6lSpeTv769Zs2bpmWee0cmTJ/XEE08w+RCy7MqVK5o5c6Z+/fVXSTc/3L755psqUKCAyckAAAAeLjc3Nx0+fFj+/v7y8fHRqlWrVK1aNR07dkx16tTRhQsXzI6ILODQceRYxYoVdeTIEZUqVUrVqlXT+PHjVapUKY0bN05FixY1Ox4cSIECBfT222+bHQMO7Keffsp0vcViUf78+VWuXLlM5wIA/ikhIUHz58/XiRMn1Lt3b3l7e2v37t3y9fXV448/bnY8AP8Sfn5+unjxovz9/VWyZElt3bpV1apV08mTJ8U+UsdB0UaO9ejRQ2fPnpV08/InTZo00cyZM+Xs7KypU6eaGw4OZcaMGRo/frxOnDihmJgY+fv7a+TIkSpTpoxeeukls+PBAbRs2dJ2bfZ/+uf12uvWrasff/xRXl5eJqVEbrZv3z41atRIHh4eOnXqlN566y15e3trwYIFio2N1fTp082OCAfg5eUli8WSYf0/v/Tr0KGDOnbsaEI6OIoGDRrop59+Uo0aNdSxY0f17NlT8+fP186dO9WqVSuz4yGLnMwOAMfVtm1bdejQQZIUFBSk33//XTt27NDp06f12muvmRsODmPs2LGKiIhQ06ZN9ffff9tmq/fy8tKoUaPMDQeHsWrVKj311FNatWqVEhMTlZiYqFWrVql27dpasmSJNm7cqAsXLqh3795mR0UuFRERoQ4dOujYsWN2s4w3a9ZMGzduNDEZHElUVJScnJwUGhqqwYMHa/DgwQoNDZWTk5PCw8NVoUIFde3aVd99953ZUZGLTZgwQR9++KEkKTw8XJMnT1blypU1ZMgQjR071uR0yCrO0QZgqoCAAH366adq2bKl3YQfBw4cUP369fXXX3+ZHREOoEqVKpowYYKefvppu/WbN2/W22+/rYMHD2r16tXq1KmTYmNjTUqJ3MzDw0O7d+9W2bJl7X4X/f7776pYsaKSk5PNjggH0Lp1a73wwgt699137daPHz9eK1eu1H//+199/fXXmjBhgvbv329SSgAPA4eOI8esVqvmz5+vdevW6dy5c0pPT7fbvmDBApOSwZGcPHky02uLuri46MqVKyYkgiM6fvy43N3dM6x3d3fXiRMnJEnly5fnixvckYuLi5KSkjKsP3r0qIoUKWJCIjiiFStW6LPPPsuwvmHDhurVq5ekm0dJ9O/f/2FHg4NJTk7Wvn37Mv2M3aJFC5NSITso2six999/X+PHj9fzzz8vX1/fTM9JAu6ldOnS2rNnj/z9/e3WL1++nOtoI8uCgoLUp08fTZ8+3VaKzp8/r759++qpp56SJB07dkwlSpQwMyZysRYtWmjIkCGaO3eupJvn1MbGxqpfv35q3bq1yengKLy9vbV48WL17NnTbv3ixYvl7e0t6eaVNgoVKmRGPDiI5cuXq3379pl+OWyxWGyn2SF3o2gjx2bMmKEFCxaoWbNmZkeBA4uIiFB4eLiSk5NltVq1fft2zZ49W9HR0Zo4caLZ8eAgJk2apJdeeknFixe3lenTp0+rTJkyWrRokSTp8uXLGjBggJkxkYt9+eWXeuWVV+Tj46Nr167pueeeU1xcnIKDg/XJJ5+YHQ8O4qOPPlLXrl21bt061apVS5K0Y8cOLVu2TOPGjZN0c06J5557zsyYyOW6d++uV199VVFRUfL19TU7DnKIc7SRY6VLl9b//vc/VapUyewocHAzZ87UoEGDdPz4cUlSsWLFNHjwYHXu3NnkZHAk6enpWrlypY4ePSrp5iUIX3jhBTk5Me8nsm7Tpk3at2+fLl++rCeffFKNGjUyOxIczObNm/XNN9/oyJEjkm7+LurevXuGOSSAO3F3d9cvv/yismXLmh0F94GijRybNm2ali9frsmTJ8vV1dXsOHgEXL16VZcvX5aPj4/ZUQAAAEzRqVMnPfPMM+xwcHAUbeTYtWvX9PLLL2vz5s0qVaqU8uXLZ7d99+7dJiUD8G905coVbdiwQbGxsbp+/brdtvfee8+kVHAka9as0Zo1azKdfGjy5MkmpYKjSk5OzvC7KLNJG4HbXb16Va+++qqKFCmiqlWrZviMzd80x8A52sixsLAw7dq1S23btmUyNORYfHy8evfubftwe/t3f0z4gaz45Zdf1KxZM129elVXrlyRt7e3/vrrL7m5ucnHx4cPJbinwYMHa8iQIapZs6aKFi3K3zTkyNWrV9W3b1/NnTtXFy5cyLCdv2nIitmzZ2vlypXKnz+/1q9fb/f7yGKx8DfNQbBHGzlWoEABrVixQnXr1jU7ChxY06ZNFRsbq27dumX64fall14yKRkcSf369VWhQgWNGzdOHh4e2rt3r/Lly6e2bduqR48eatWqldkRkcsVLVpUw4cPV7t27cyOAgcWHh6udevW6eOPP1a7du00ZswY/fnnnxo/fryGDRumNm3amB0RDsDPz0/vvfee+vfvzzwjDoyijRyrVKmS5s6dq8DAQLOjwIEVKlRIP//8s6pXr252FDgwT09Pbdu2TRUrVpSnp6diYmJUuXJlbdu2TWFhYfr111/NjohcrnDhwtq+fTuTD+G+lCxZUtOnT1f9+vXl7u6u3bt3q1y5cpoxY4Zmz56tZcuWmR0RDsDb21s7duzg95GD4ysS5NiXX36pvn376tSpU2ZHgQMrUaJEhsPFgezKly+f7Vt/Hx8fxcbGSpI8PDx0+vRpM6PBQbz11luaNWuW2THg4C5evKgyZcpIunk+9sWLFyVJdevW1caNG82MBgcSFhamH374wewYuE+co40ca9u2ra5evaqyZcvKzc0tw0QNt/64AHczatQo9e/fX+PHj1epUqXMjgMHVaNGDe3YsUPly5fXc889p6ioKP3111+aMWOGqlSpYnY85FIRERG2n9PT0zVhwgStXr1agYGBGf6mjRgx4mHHgwMqU6aMTp48qZIlS9qO/KtVq5YWL14sT09Ps+PBQaSlpWn48OFasWIFv48cGIeOI8emTZt21+1hYWEPKQkcjZeXl9252FeuXFFqaipf2CDHdu7cqUuXLun555/XuXPn1L59e23ZskXly5fXpEmTODUBmXr++eezNM5isWjt2rUPOA0eBSNHjlSePHn03nvvafXq1WrevLmsVqtu3LihESNGqEePHmZHhAO42+8mfh85Doo2cuTGjRt655139NFHH6l06dJmx4GDudeXNP/EFza4X9euXZOrq6vZMQD8C/3+++/atWuXypUrx5w2yJK0tDRt3rxZVatWlZeXl9lxcB8o2sgxDw8P7dmzh6INwHTvvfeeRo8enWH9lStX9OKLL2rdunUmpIIjS0pK0tq1a1WpUiVVqlTJ7DhwEOvWrbvj3sgxY8YoPDz8ISeCI8qfP78OHz7MZ2wHx2RoyLGWLVvqxx9/NDsGHNzu3bu1f/9+2/KiRYvUsmVLffDBB7p+/bqJyeBIli5dqoEDB9qtu3z5spo0aaLU1FSTUsGR/N///Z+++eYbSTePgqhZs6b+7//+T1WrVtV///tfk9PBUbRq1Uq7du3KsP6rr75SZGSkCYngiKpUqaITJ06YHQP3iaKNHCtfvryGDBmiV155RdHR0Ro9erTdDciKd955R0ePHpUknThxQq+99prc3Nw0b9489e3b1+R0cBQrV67Ud999p1GjRkmSLl26pMaNG8tisWj58uXmhoND2Lhxo+rVqydJWrhwoaxWqxISEjR69GgNHTrU5HRwFJ9//rmaNm1qd0nBL7/8UlFRUVq6dKmJyeBIhg4dqt69e2vJkiU6e/askpKS7G5wDBw6jhy72+EsFouFb+KQJR4eHtq9e7fKli2rzz77TGvXrtWKFSu0efNmvf7661yaCVm2b98+Pf/88xo4cKBmz54tFxcXLV26VAUKFDA7GhyAq6urjh49qhIlSqh9+/YqVqyYhg0bptjYWAUEBOjy5ctmR4SDGD58uEaPHq1Nmzbphx9+0Keffqply5bpmWeeMTsaHMSty1VKsps81mq1ymKxKC0tzYxYyCYu74UcO3nypNkR8AiwWq1KT0+XJK1evVovvviipJvX1/7rr7/MjAYHExgYqCVLluiFF15Q7dq1tWTJEiZBQ5aVKFFCMTEx8vb21vLlyzVnzhxJ0t9//638+fObnA6OpG/fvrpw4YJq1qyptLQ0rVixQnXq1DE7FhwI84o8GijaMMStAyP++a0bkBU1a9bU0KFD1ahRI23YsEFjx46VdPOLHF9fX5PTITerUaNGpr9zXFxcdObMGbu9R7t3736Y0eCA3n//fbVp00YFCxaUv7+/6tevL+nmIeVVq1Y1NxxytcxOl3v88cfl5uamZ599Vtu3b9f27dsl3Zy4EbiX5557zuwIMACHjuO+TJ8+XZ9//rmOHTsmSapQoYL69Omjdu3amZwMjmLfvn1q06aNYmNjFRERYZvQqnv37rpw4YJmzZplckLkVoMHD87y2NsnSgMys3PnTp0+fVovvPCCChYsKOnmRHuenp4c9os7yurM0JxWh+xISEjQpEmTdPjwYUnSE088oU6dOsnDw8PkZMgqijZybMSIEfroo4/UrVs32weQTZs2acyYMRo6dKh69uxpckI4suTkZOXJk0f58uUzOwoAAMBDs3PnToWEhMjV1VW1atWSJO3YsUPXrl3TypUr9eSTT5qcEFlB0UaOlS5dWoMHD1b79u3t1k+bNk2DBg3iHG4AgMPo1KnTXbdPnjz5ISUB8G9Xr149lStXTt99953y5r15pm9qaqreeustnThxQhs3bjQ5IbKCc7SRY2fPntXTTz+dYf3TTz+ts2fPmpAIjsjJyemu5/YzsyayIi0tTSNHjtTcuXMVGxub4RrsFy9eNCkZHMXff/9tt3zjxg0dOHBACQkJatCggUmp4Ij++OMP/fTTT5n+LhoxYoRJqeBIdu7caVeyJSlv3rzq27evatasaWIyZAdFGzlWrlw5zZ07Vx988IHd+h9++EHly5c3KRUczcKFC+2Wb9y4oV9++UXTpk3L1jm4+HcbPHiwJk6cqF69emnAgAH68MMPderUKf3444+KiooyOx4cwO2/iyQpPT1dXbt2VdmyZU1IBEe0Zs0atWjRQmXKlNGvv/6qKlWq6NSpU7JarRzuiyxzd3dXbGysKlWqZLf+9OnTKlSokEmpkF0cOo4c++9//6vXXntNjRo1sp2jvXnzZq1Zs0Zz587Vyy+/bHJCOLJZs2bphx9+0KJFi8yOAgdQtmxZjR49WqGhoSpUqJD27NljW7d161Ym1UOOHTlyRPXr1+dILWRJrVq11LRpUw0ePFiFChXS3r175ePjozZt2qhJkybq2rWr2RHhAN577z0tXLhQX3zxhe3o0c2bN6tPnz5q3bq1Ro0aZW5AZAlFG/dl165dGjlypG1GxMqVK6tXr16qUaOGycng6E6cOKHAwEBdvnzZ7ChwAAUKFNDhw4dVsmRJFS1aVEuXLtWTTz6pEydOqEaNGkpMTDQ7IhzUsmXLFBYWpvPnz5sdBQ7gn1/0eXl5adOmTXriiSe0d+9evfTSSzp16pTZEeEArl+/rj59+mjcuHFKTU2VJOXLl09du3bVsGHD5OLiYnJCZAWHjuO+BAUF6fvvvzc7Bh4x165d0+jRo/X444+bHQUOonjx4jp79qxKliypsmXL2mZl3bFjBx9IkCURERF2y1arVWfPntXSpUsVFhZmUio4mgIFCtjOyy5atKiOHz+uJ554QpL0119/mRkNDsTZ2VlfffWVoqOjdfz4cUk3j9xyc3MzORmyg6INwFReXl52k6FZrVZdunRJbm5ufImDLHv55Ze1Zs0a1a5dW927d1fbtm01adIkxcbGcqlBZMkvv/xit+zk5KQiRYroyy+/vOeM5MAtderU0aZNm1S5cmU1a9ZMvXr10v79+7VgwQLVqVPH7HhwMG5ubqpatarZMZBDHDqObLvXLNGSZLFYbIe6AHczbdo0u+VbH25r164tLy8vk1LB0cXExCgmJkbly5dX8+bNzY6DXM5qter06dMqUqSIXF1dzY4DB3bixAldvnxZgYGBunLlinr16qUtW7aofPnyGjFihPz9/c2OiFwsK1/qWSwWTZo06SGkwf2iaCPb7jY5VUxMjEaPHq309HQlJyc/xFRwRKmpqfr000/VqVMnFS9e3Ow4AP6l0tPTlT9/fh08eJCrZgAwzd0mEk5LS9Pq1auVkpLCpU8dBEUbhjhy5Ij69++vxYsXq02bNhoyZAjf2iJLChUqpP3796tUqVJmR4GDmzFjhsaNG6eTJ08qJiZG/v7+GjVqlEqXLq2XXnrJ7HjI5Z544glNmjSJw3tx3xISEjR//nwdP35cffr0kbe3t3bv3i1fX1/mHkGOLFq0SB988IHOnDmjfv36qX///mZHQhY4mR0Aju3MmTPq0qWLqlatqtTUVO3Zs0fTpk2jZCPLGjRooA0bNpgdAw5u7NixioiIULNmzZSQkGD7tt/T05PLoCBLhg0bpj59+ujAgQNmR4ED27dvnypUqKDPPvtMX3zxhRISEiRJCxYsUGRkpLnh4HA2b96sevXq6c0339SLL76oEydOULIdCHu0kSOJiYn69NNP9fXXX6t69er67LPPVK9ePbNjwQGNGzdOgwcPVps2bRQUFKQCBQrYbW/RooVJyeBIAgIC9Omnn6ply5a2a9eWKVNGBw4cUP369ZntF/fk5eWlq1evKjU1Vc7OzhnO1b548aJJyeBIGjVqpCeffFLDhw+3+120ZcsWvfnmm1zeC1ly6NAh9evXT8uXL1f79u01ePBgTrFzQMw6jmwbPny4PvvsM/n5+Wn27Nkckon78p///EeSNGLEiAzbLBYL5yEhS06ePKkaNWpkWO/i4qIrV66YkAiOhiMfYIQdO3Zo/PjxGdY//vjjiouLMyERHMnp06cVFRWl77//Xi+++KL27dunypUrmx0LOUTRRrb1799frq6uKleunKZNm5Zh1uhbFixY8JCTwRGlp6ebHQGPgNKlS2vPnj0ZTltZvnw5H1KQJVwrG0ZwcXFRUlJShvVHjx5VkSJFTEgER1KxYkVZLBZFRETomWee0bFjx3Ts2LEM4zjazzFQtJFt7du3v+flvQDgYYqIiFB4eLiSk5NltVq1fft2zZ49W9HR0Zo4caLZ8ZCLnTlzRiNGjFBUVJTc3d3ttiUmJmro0KHq3bu3fH19TUoIR9KiRQsNGTJEc+fOlXTzyKzY2Fj169dPrVu3NjkdcrtbV+z5/PPP9fnnn2c6hqP9HAfnaOOB++OPP1SsWDE5OTH3Hv6/tWvXqlu3btq6dWumH26ffvppjR07Vs8++6xJCeFoZs6cqUGDBun48eOSpGLFimnw4MHq3LmzycmQm/Xu3VtJSUmaMGFCptvfffddeXh46LPPPnvIyeCIEhMT9corr2jnzp26dOmSihUrpri4OAUHB2vZsmUZ5iEB8OiiaOOBc3d31549e1SmTBmzoyAXadGihZ5//nn17Nkz0+2jR4/WunXrtHDhwoecDI4mNTVVs2bNUkhIiHx9fXX16lVdvnxZPj4+ZkeDA6hSpYrGjRununXrZrp9y5Yt6tKliw4ePPiQk8GRbd68WXv37tXly5f15JNPqlGjRmZHwiMoNDRUEydOVNGiRc2OgkxQtPHA/XPWTeAWf3//u54/++uvv6px48aKjY19yMngiNzc3HT48GEuLYhsK1CggA4fPqySJUtmuj02NlaVK1dmUj3c040bN+Tq6qo9e/aoSpUqZsfBvwCfsXM3juUFYIr4+Hjly5fvjtvz5s2r8+fPP8REcGS1atXSL7/8YnYMOCBXV9e7XnLp1KlTGS71BWQmX758KlmyJOfPApDEZGgATPL444/rwIEDKleuXKbb9+3bx6FQyLL//Oc/6tWrl/74449Mr8ceGBhoUjLkdrVr19aMGTPuOB/E9OnTVatWrYecCo7qww8/1AcffKAZM2bI29vb7DgATETRBmCKZs2a6aOPPlKTJk2UP39+u23Xrl3TwIED9eKLL5qUDo7m9ddflyS99957tnUWi0VWq5UZWnFXvXv31gsvvCAPDw/16dPHNrt4fHy8hg8frqlTp2rlypUmp4Sj+Oabb/Tbb7+pWLFi8vf3z/Cl3+7du01KBuBho2jjgeNSYMjMgAEDtGDBAlWoUEHdunVTxYoVJd08N3vMmDFKS0vThx9+aHJKOIqTJ0+aHQEO6vnnn9eYMWPUo0cPjRw5Uu7u7rJYLEpMTFS+fPn09ddfq0GDBmbHhINo2bKl2REA5BJMhoZsO3HihEqXLp3lAs1EDbiT33//XV27dtWKFSt061eRxWJRSEiIxowZo9KlS5ucEMC/xZ9//qm5c+fqt99+k9VqVYUKFfTKK6+oePHiZkcDAJtr167Z5o3gM3buRtFGtuXJk0dnz561XTrntdde0+jRo22H293u9OnTKlasmPLkyfMwY8KB/P3337YPt+XLl5eXl1eGMVyPHXdz4cIFFS5cWNLN3znfffedrl27phYtWqhevXomp8OjhMvpIDtOnDiha9euqXLlyvz9wn1JSUnRN998o88//1xxcXGSpOjoaHXt2lWenp7mhkOm+D8e2Xb7dzPLli2762VPSpQoQcnGXXl5eempp55SrVq1Mi3ZkhQQEHDXmYHx77R//36VKlVKPj4+qlSpkvbs2aOnnnpKI0eO1IQJE/T888/rxx9/NDsmHiEbN27UtWvXzI6BXObGjRsaOHCgmjdvrk8++URpaWl64403VL58eQUGBqpKlSr8DcM9paSkKDIyUjVr1tTTTz9t+/s1ZcoUlS5dWqNGjVLPnj1t4yMjIynZuRhFG4BD4OAbZKZv376qWrWqNm7cqPr16+vFF19UaGioEhMT9ffff+udd97RsGHDzI4J4BHXv39/jR07Vn5+fpo8ebJatWqlX375RbNmzdKcOXOUN29e5h3BPUVFRWns2LEqVaqUTp06pVdffVVvv/22Ro4cqREjRujUqVPq16+f2TGRRUyGhmyzWCwZzs9mwjMAZtixY4fWrl2rwMBAVatWTRMmTNB//vMf2yGa3bt3V506dUxOCeBRN3/+fE2dOlXNmjXT0aNHValSJS1dulRNmzaVJPn4+KhNmzYmp0RuN2/ePE2fPl0tWrTQgQMHFBgYqNTUVO3du5fP2g6Ioo1ss1qt6tChg1xcXCRJycnJevfddzNcwmLBggVmxAPwL3Lx4kX5+flJkgoWLKgCBQrYnX7g5eWlS5cumRUPwL/EmTNnVK1aNUlShQoV5OLionLlytm2V6hQwXZeLXAnf/zxh4KCgiRJVapUkYuLi3r27EnJdlAUbWRbWFiY3XLbtm1NSgIAGY+o4QMJgIctLS1N+fLlsy3nzZvXbn4aJycnToHCPaWlpcnZ2dm2nDdvXhUsWNDERLgfFG1k25QpU8yOgH8hyhPu5G5H2KSkpJgZDY+If15OB7iTFStWyMPDQ5KUnp6uNWvW6MCBA5KkhIQEE5PBUXDU6KOFy3sBMAXXY4cROnbsmKVxfEGInOByOsiqrFy6y2KxKC0t7SGkgaPib9qjhaINwBRcjx1m4HrsuF1KSooGDRqkVatWydnZWX379lXLli01ZcoUffjhh8qTJ4+6devGTL8AgGzhkwYAU3A9dpiB67HjdlxOB2YIDQ3V2bNnzY4B4AHiHG0AwL8GB3HhdlxOB2bYuHGjrl27ZnYMAA8Qe7QBmILrsQPIDbicDgDgQWCPNgBTMLMmgNyAy+kAAB4EijYAU3A9dgC5AV/6AQAeBIo2AFNwaQqYgcOBcTu+9AMAPAgUbQCAw8ru9diZDA2340s/PCzXrl2Tq6ur2TEAPCRMhgYAcFjly5fX+fPnbcuvvfaa4uPj7zj+0KFD8vf3fxjRAEDSzWu1f/nllypdurRt3QcffCBvb28TUwF40CjaAACHxfXYAeQGKSkpioyMVM2aNfX000/rxx9/lHTziInSpUtr1KhR6tmzp218ZGSkPD09zQkL4KHg0HEAAADgPkRFRWn8+PFq1KiRtmzZoldffVUdO3bU1q1bNWLECL366qt8yQf8y1C0AQAOi+uxA8gN5s2bp+nTp6tFixY6cOCAAgMDlZqaqr179/I7CfiXsliZGQYA4KCcnJzUtGlT26WZFi9erAYNGnBpJgAPlbOzs06ePKnHH39ckuTq6qrt27eratWqJicDYBb2aAMAHBaXZgKQG6SlpcnZ2dm2nDdvXhUsWNDERADMxh5tAAAA4D5wdA2A27FHGwAAALgPHF0D4Hbs0QYAAAAAwEBcRxsAAAAAAANRtAEAAAAAMBBFGwAAAAAAA1G0AQAAAAAwEEUbAAAAAAADUbQBAAAAADAQRRsAAAAAAAP9P9NXlrutUw5eAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ], + "source": [ + "def plot_class_distribution(data_path):\n", + " classes = os.listdir(data_path)\n", + " counts = []\n", + " for cls in classes:\n", + " cls_path = os.path.join(data_path, cls)\n", + " if os.path.isdir(cls_path):\n", + " counts.append(len(os.listdir(cls_path)))\n", + " plt.figure(figsize=(12, 5))\n", + " plt.bar(classes, counts)\n", + " plt.xticks(rotation=90)\n", + " plt.title(\"Train Class Distribution\")\n", + " plt.show()\n", + "\n", + "plot_class_distribution(\"/content/drive/MyDrive/dataset/train\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "id": "CNhT3zd_QaDy" + }, + "outputs": [], + "source": [ + "train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True,\n", + " num_workers=2, pin_memory=True, persistent_workers=True)\n", + "eval_loader = DataLoader(test_dataset, batch_size=32,\n", + " num_workers=2, pin_memory=True, persistent_workers=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "VBsi11SlQaDy", + "outputId": "14f5a193-86e7-4e67-8ebc-c819625ea8c7" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Using device: cuda\n" + ] + } + ], + "source": [ + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "print(f\"Using device: {device}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "98-UOkhyQaDy" + }, + "source": [ + "# Model — EfficientNet-V2-S + ConvNeXt-Small Fusion\n", + "\n", + "## Architecture\n", + "```\n", + "Image ──► EfficientNet-V2-S backbone ──► avgpool ──► (1280,)\n", + " ↓\n", + " concat → (2048,)\n", + " ↓\n", + " Fusion Head\n", + " ↓\n", + " num_classes logits\n", + " ↑\n", + "Image ──► ConvNeXt-Small backbone ──► avgpool ──► (768,)\n", + "```\n", + "\n", + "## Freezing strategy\n", + "- **EfficientNet**: freeze all → unfreeze features[5], [6], [7]\n", + "- **ConvNeXt**: freeze all → unfreeze stages[2], stages[3], layernorm" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "hGGqeFxGQaDy" + }, + "outputs": [], + "source": [ + "class FusionClassifier(nn.Module):\n", + " def __init__(self, num_classes, convnext_model_name=\"facebook/convnext-small-224\"):\n", + " super().__init__()\n", + "\n", + " # EfficientNet-V2-S backbone\n", + " eff = models.efficientnet_v2_s(weights=models.EfficientNet_V2_S_Weights.IMAGENET1K_V1)\n", + "\n", + " for param in eff.parameters():\n", + " param.requires_grad = False\n", + "\n", + " for param in eff.features[5].parameters():\n", + " param.requires_grad = True\n", + " for param in eff.features[6].parameters():\n", + " param.requires_grad = True\n", + " for param in eff.features[7].parameters():\n", + " param.requires_grad = True\n", + "\n", + " self.eff_features = eff.features\n", + " self.eff_avgpool = eff.avgpool\n", + " self.eff_out_dim = eff.classifier[1].in_features\n", + "\n", + " # ConvNeXt-Small backbone\n", + " cnx = ConvNextModel.from_pretrained(convnext_model_name)\n", + "\n", + " for param in cnx.parameters():\n", + " param.requires_grad = False\n", + "\n", + " for param in cnx.encoder.stages[2].parameters():\n", + " param.requires_grad = True\n", + " for param in cnx.encoder.stages[3].parameters():\n", + " param.requires_grad = True\n", + " for param in cnx.layernorm.parameters():\n", + " param.requires_grad = True\n", + "\n", + " self.cnx_backbone = cnx\n", + " self.cnx_out_dim = 768\n", + "\n", + " # Fusion head\n", + " fused_dim = self.eff_out_dim + self.cnx_out_dim\n", + " self.fusion_head = nn.Sequential(\n", + " nn.Dropout(p=0.4),\n", + " nn.Linear(fused_dim, 512),\n", + " nn.LayerNorm(512),\n", + " nn.GELU(),\n", + " nn.Dropout(p=0.3),\n", + " nn.Linear(512, 256),\n", + " nn.LayerNorm(256),\n", + " nn.GELU(),\n", + " nn.Dropout(p=0.2),\n", + " nn.Linear(256, num_classes)\n", + " )\n", + "\n", + " def forward(self, pixel_values_eff, pixel_values_cnx):\n", + " x_eff = self.eff_features(pixel_values_eff)\n", + " x_eff = self.eff_avgpool(x_eff)\n", + " x_eff = torch.flatten(x_eff, 1)\n", + "\n", + " cnx_out = self.cnx_backbone(\n", + " pixel_values=pixel_values_cnx,\n", + " return_dict=True\n", + " )\n", + " x_cnx = cnx_out.pooler_output\n", + "\n", + " fused = torch.cat([x_eff, x_cnx], dim=1)\n", + " logits = self.fusion_head(fused)\n", + "\n", + " return logits" + ] + }, + { + "cell_type": "code", + "source": [ + "model = FusionClassifier(\n", + " num_classes=len(class_to_idx),\n", + " convnext_model_name=convnext_model_name\n", + ").to(device)\n", + "\n", + "print(f\"EfficientNet output dim : {model.eff_out_dim}\")\n", + "print(f\"ConvNeXt output dim : {model.cnx_out_dim}\")\n", + "print(f\"Fused dim : {model.eff_out_dim + model.cnx_out_dim}\")\n", + "print(f\"Num classes : {len(class_to_idx)}\")\n", + "\n", + "total_params = sum(p.numel() for p in model.parameters() if p.requires_grad)\n", + "print(f\"Total trainable parameters: {total_params:,}\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 373, + "referenced_widgets": [ + "bad8c4aca37b403bb988372c60f02502", + "ffb0280b9d5747a688010f1eec14ca27", + "5a299c1da888402e9ffdf7478f0b4a75", + "24c68e7153604b5db023f9eea661731e", + "e26ac4e59f5042788937e6bfe303bc34", + "68bb59ad9a904c228c8df6bab8af420e", + "d4108cd015c146978d176f08ba18ff70", + "694d6c93344a4b489cbf98b5c1f4832a", + "3faa4fc9b50745afbc041f62c305df27", + "409b41c63b3140318653707ace1d0d8b", + "02cad2ccf82b49349fefef8b4274a49b", + "3ad062c0c7d9458e956d63374a47f031", + "771c1f7894fb4509b8e98c3421b541cf", + "26ac528296a84a1f973aedabff4bae31", + "db696fb6e4c342bd9a504963330df6bc", + "cf0abc6268d5414387f4e649f2f5c3ee", + "00828ca88d764bc690f805a963af4dcf", + "fc9275ca865d4f748a6967974e24763b", + "5de633a362b04175997125c63bdee136", + "1ffe0b2dc0eb42a184997e45133d4197", + "6c2f4342b75c416a8f5a463e5d130cdc", + "44147c1ea7ad49538771288c50354cac", + "25483f64586a4ea7a337c7313e653793", + "443966a2ddf34ddbb8e6b03d36e57cde", + "54669dcfe6d442ebaa2233a997a1c693", + "7458d1568e804a7ebf3370266ff23f85", + "5ad25c423bd842629f52a341e741d25e", + "39d3046f480c48048e235e923e81f9ff", + "2244506e635d49a0910bd43fb3a9e541", + "43d55061ebde4167a3dadde2243e8448", + "1d21334d85a7499698b319d32eca01f6", + "3e65a07a2dce4e9b99306c8a21a0d171", + "3d7c31cf369c4e9cb245bf17183e84f3" + ] + }, + "id": "WV0IvUvRiIqx", + "outputId": "9fe0285d-6258-430c-8e93-157f6bdc653c" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Downloading: \"https://download.pytorch.org/models/efficientnet_v2_s-dd5fe13b.pth\" to /root/.cache/torch/hub/checkpoints/efficientnet_v2_s-dd5fe13b.pth\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "100%|██████████| 82.7M/82.7M [00:00<00:00, 130MB/s]\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "config.json: 0.00B [00:00, ?B/s]" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "bad8c4aca37b403bb988372c60f02502" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "model.safetensors: 0%| | 0.00/201M [00:00= self.patience:\n", + " self.early_stop = True\n", + " else:\n", + " self.best_score = val_acc\n", + " self.counter = 0" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EO_BG4lTQaDz" + }, + "source": [ + "# Training Function" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "id": "atUfmDu7QaDz" + }, + "outputs": [], + "source": [ + "def train_model(\n", + " model,\n", + " epochs,\n", + " train_loader,\n", + " eval_loader,\n", + " optimizer,\n", + " criterion,\n", + " device,\n", + " patience=7,\n", + " checkpoint_model_name=\"model\"\n", + "):\n", + "\n", + " print(\"Starting training...\")\n", + " print(f\"Epochs: {epochs} | Device: {device}\")\n", + " print(\"-\" * 60)\n", + "\n", + " # ------------------------- SCHEDULER -------------------------\n", + " num_training_steps = epochs * len(train_loader)\n", + " num_warmup_steps = int(0.1 * num_training_steps)\n", + "\n", + " scheduler = get_cosine_schedule_with_warmup(\n", + " optimizer,\n", + " num_warmup_steps=num_warmup_steps,\n", + " num_training_steps=num_training_steps\n", + " )\n", + "\n", + " early_stopping = EarlyStopping(patience=patience)\n", + "\n", + " train_losses, train_accs = [], []\n", + " val_losses, val_accs = [], []\n", + "\n", + " best_acc = 0.0\n", + "\n", + " # ------------------------- TRAIN LOOP -------------------------\n", + " for epoch in range(epochs):\n", + "\n", + " # --------------------- TRAIN ---------------------\n", + " model.train()\n", + " running_loss, correct, total = 0, 0, 0\n", + "\n", + " for batch in tqdm(train_loader, desc=f\"Epoch {epoch+1} Training\"):\n", + "\n", + " images_eff = batch['pixel_values_eff'].to(device)\n", + " images_cnx = batch['pixel_values_cnx'].to(device)\n", + " labels = batch['labels'].to(device)\n", + "\n", + " optimizer.zero_grad(set_to_none=True)\n", + "\n", + " logits = model(images_eff, images_cnx)\n", + "\n", + " loss = criterion(logits, labels)\n", + " loss.backward()\n", + "\n", + " optimizer.step()\n", + " scheduler.step()\n", + "\n", + " running_loss += loss.item()\n", + " preds = torch.argmax(logits, dim=1)\n", + " correct += (preds == labels).sum().item()\n", + " total += labels.size(0)\n", + "\n", + " train_loss = running_loss / len(train_loader)\n", + " train_acc = 100 * correct / total\n", + "\n", + " train_losses.append(train_loss)\n", + " train_accs.append(train_acc)\n", + "\n", + " # --------------------- VALIDATION ---------------------\n", + " model.eval()\n", + " val_running_loss, val_correct, val_total = 0, 0, 0\n", + "\n", + " all_preds, all_labels = [], []\n", + "\n", + " with torch.no_grad():\n", + " for batch in tqdm(eval_loader, desc=f\"Epoch {epoch+1} Validation\"):\n", + "\n", + " images_eff = batch['pixel_values_eff'].to(device)\n", + " images_cnx = batch['pixel_values_cnx'].to(device)\n", + " labels = batch['labels'].to(device)\n", + "\n", + " logits = model(images_eff, images_cnx)\n", + "\n", + " loss = criterion(logits, labels)\n", + " val_running_loss += loss.item()\n", + "\n", + " preds = torch.argmax(logits, dim=1)\n", + " val_correct += (preds == labels).sum().item()\n", + " val_total += labels.size(0)\n", + "\n", + " all_preds.extend(preds.cpu().numpy())\n", + " all_labels.extend(labels.cpu().numpy())\n", + "\n", + " val_loss = val_running_loss / len(eval_loader)\n", + " val_acc = 100 * val_correct / val_total\n", + "\n", + " val_losses.append(val_loss)\n", + " val_accs.append(val_acc)\n", + "\n", + " print(\n", + " f\"Results \"\n", + " f\"Train Loss: {train_loss:.4f} | Train Acc: {train_acc:.2f}% || \"\n", + " f\"Val Loss: {val_loss:.4f} | Val Acc: {val_acc:.2f}%\"\n", + " )\n", + " print(\"-\" * 60)\n", + "\n", + " # --------------------- SAVE BEST MODEL (BY ACCURACY) ---------------------\n", + " if val_acc > best_acc:\n", + " best_acc = val_acc\n", + "\n", + " os.makedirs(\"checkpoints\", exist_ok=True)\n", + "\n", + " torch.save({\n", + " \"model_state_dict\": model.state_dict(),\n", + " \"optimizer_state_dict\": optimizer.state_dict(),\n", + " \"epoch\": epoch,\n", + " \"val_acc\": val_acc\n", + " }, f\"checkpoints/{checkpoint_model_name}.pt\")\n", + "\n", + " print(f\"Best model saved (Acc: {val_acc:.2f}%)\")\n", + "\n", + " # --------------------- EARLY STOPPING ---------------------\n", + " early_stopping(val_acc)\n", + "\n", + " if early_stopping.early_stop:\n", + " print(f\"Early stopping at epoch {epoch+1}\")\n", + " break\n", + "\n", + " return (\n", + " train_losses,\n", + " train_accs,\n", + " val_losses,\n", + " val_accs,\n", + " all_preds,\n", + " all_labels\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nXdEtymaQaDz" + }, + "source": [ + "# Train Model" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "z-cjjLNNQaDz", + "outputId": "e9790338-4928-46bc-803b-1248d05901dd" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Starting training...\n", + "Epochs: 100 | Device: cuda\n", + "------------------------------------------------------------\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 1 Training: 100%|██████████| 58/58 [05:55<00:00, 6.13s/it]\n", + "Epoch 1 Validation: 100%|██████████| 15/15 [01:22<00:00, 5.49s/it]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 1.8266 | Train Acc: 20.49% || Val Loss: 1.7414 | Val Acc: 27.17%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 27.17%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 2 Training: 100%|██████████| 58/58 [01:07<00:00, 1.17s/it]\n", + "Epoch 2 Validation: 100%|██████████| 15/15 [00:12<00:00, 1.23it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 1.7159 | Train Acc: 29.29% || Val Loss: 1.5648 | Val Acc: 38.04%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 38.04%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 3 Training: 100%|██████████| 58/58 [01:04<00:00, 1.11s/it]\n", + "Epoch 3 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.65it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 1.5212 | Train Acc: 44.40% || Val Loss: 1.3006 | Val Acc: 53.70%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 53.70%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 4 Training: 100%|██████████| 58/58 [01:05<00:00, 1.14s/it]\n", + "Epoch 4 Validation: 100%|██████████| 15/15 [00:08<00:00, 1.74it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 1.2802 | Train Acc: 56.74% || Val Loss: 1.1045 | Val Acc: 62.17%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 62.17%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 5 Training: 100%|██████████| 58/58 [01:04<00:00, 1.11s/it]\n", + "Epoch 5 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.49it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 1.1012 | Train Acc: 61.74% || Val Loss: 1.0115 | Val Acc: 65.87%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 65.87%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 6 Training: 100%|██████████| 58/58 [01:04<00:00, 1.12s/it]\n", + "Epoch 6 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.55it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.9882 | Train Acc: 69.24% || Val Loss: 0.9889 | Val Acc: 69.78%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 69.78%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 7 Training: 100%|██████████| 58/58 [01:04<00:00, 1.11s/it]\n", + "Epoch 7 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.44it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.9120 | Train Acc: 72.99% || Val Loss: 0.9412 | Val Acc: 73.04%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 73.04%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 8 Training: 100%|██████████| 58/58 [01:05<00:00, 1.13s/it]\n", + "Epoch 8 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.57it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.8408 | Train Acc: 78.53% || Val Loss: 0.8980 | Val Acc: 75.22%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 75.22%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 9 Training: 100%|██████████| 58/58 [01:07<00:00, 1.17s/it]\n", + "Epoch 9 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.43it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.7709 | Train Acc: 82.45% || Val Loss: 0.9166 | Val Acc: 77.39%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 77.39%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 10 Training: 100%|██████████| 58/58 [01:07<00:00, 1.16s/it]\n", + "Epoch 10 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.58it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.7091 | Train Acc: 86.90% || Val Loss: 0.9115 | Val Acc: 76.09%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 1/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 11 Training: 100%|██████████| 58/58 [01:07<00:00, 1.16s/it]\n", + "Epoch 11 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.48it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.6805 | Train Acc: 87.72% || Val Loss: 0.8795 | Val Acc: 78.91%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 78.91%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 12 Training: 100%|██████████| 58/58 [01:06<00:00, 1.14s/it]\n", + "Epoch 12 Validation: 100%|██████████| 15/15 [00:08<00:00, 1.78it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.6311 | Train Acc: 89.51% || Val Loss: 0.8731 | Val Acc: 82.17%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 82.17%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 13 Training: 100%|██████████| 58/58 [01:07<00:00, 1.17s/it]\n", + "Epoch 13 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.65it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.5839 | Train Acc: 92.83% || Val Loss: 0.8750 | Val Acc: 81.30%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 1/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 14 Training: 100%|██████████| 58/58 [01:05<00:00, 1.13s/it]\n", + "Epoch 14 Validation: 100%|██████████| 15/15 [00:08<00:00, 1.70it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.5566 | Train Acc: 94.24% || Val Loss: 0.9084 | Val Acc: 81.30%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 2/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 15 Training: 100%|██████████| 58/58 [01:05<00:00, 1.13s/it]\n", + "Epoch 15 Validation: 100%|██████████| 15/15 [00:08<00:00, 1.73it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.5226 | Train Acc: 96.36% || Val Loss: 0.8861 | Val Acc: 83.04%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 83.04%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 16 Training: 100%|██████████| 58/58 [01:04<00:00, 1.12s/it]\n", + "Epoch 16 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.53it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.5072 | Train Acc: 96.96% || Val Loss: 0.8662 | Val Acc: 83.70%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 83.70%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 17 Training: 100%|██████████| 58/58 [01:05<00:00, 1.12s/it]\n", + "Epoch 17 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.48it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4971 | Train Acc: 97.12% || Val Loss: 0.9172 | Val Acc: 82.39%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 1/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 18 Training: 100%|██████████| 58/58 [01:04<00:00, 1.12s/it]\n", + "Epoch 18 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.48it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4768 | Train Acc: 97.93% || Val Loss: 0.9112 | Val Acc: 83.04%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 2/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 19 Training: 100%|██████████| 58/58 [01:04<00:00, 1.12s/it]\n", + "Epoch 19 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.50it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4706 | Train Acc: 98.48% || Val Loss: 0.9126 | Val Acc: 82.83%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 3/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 20 Training: 100%|██████████| 58/58 [01:04<00:00, 1.12s/it]\n", + "Epoch 20 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.48it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4645 | Train Acc: 98.91% || Val Loss: 0.9163 | Val Acc: 82.17%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 4/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 21 Training: 100%|██████████| 58/58 [01:03<00:00, 1.10s/it]\n", + "Epoch 21 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.49it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4660 | Train Acc: 98.59% || Val Loss: 0.9666 | Val Acc: 82.83%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 5/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 22 Training: 100%|██████████| 58/58 [01:04<00:00, 1.11s/it]\n", + "Epoch 22 Validation: 100%|██████████| 15/15 [00:10<00:00, 1.48it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4599 | Train Acc: 98.97% || Val Loss: 0.9049 | Val Acc: 84.13%\n", + "------------------------------------------------------------\n", + "Best model saved (Acc: 84.13%)\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 23 Training: 100%|██████████| 58/58 [01:05<00:00, 1.14s/it]\n", + "Epoch 23 Validation: 100%|██████████| 15/15 [00:08<00:00, 1.75it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4450 | Train Acc: 99.78% || Val Loss: 0.9278 | Val Acc: 82.39%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 1/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 24 Training: 100%|██████████| 58/58 [01:07<00:00, 1.16s/it]\n", + "Epoch 24 Validation: 100%|██████████| 15/15 [00:08<00:00, 1.69it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4492 | Train Acc: 99.29% || Val Loss: 0.9470 | Val Acc: 83.91%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 2/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 25 Training: 100%|██████████| 58/58 [01:05<00:00, 1.13s/it]\n", + "Epoch 25 Validation: 100%|██████████| 15/15 [00:08<00:00, 1.70it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4513 | Train Acc: 99.29% || Val Loss: 0.9075 | Val Acc: 83.26%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 3/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 26 Training: 100%|██████████| 58/58 [01:05<00:00, 1.13s/it]\n", + "Epoch 26 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.62it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4457 | Train Acc: 99.62% || Val Loss: 0.9327 | Val Acc: 83.48%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 4/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 27 Training: 100%|██████████| 58/58 [01:04<00:00, 1.12s/it]\n", + "Epoch 27 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.57it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4457 | Train Acc: 99.57% || Val Loss: 0.9102 | Val Acc: 83.91%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 5/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 28 Training: 100%|██████████| 58/58 [01:05<00:00, 1.13s/it]\n", + "Epoch 28 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.62it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4431 | Train Acc: 99.51% || Val Loss: 0.9279 | Val Acc: 83.48%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 6/7\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Epoch 29 Training: 100%|██████████| 58/58 [01:04<00:00, 1.12s/it]\n", + "Epoch 29 Validation: 100%|██████████| 15/15 [00:09<00:00, 1.56it/s]" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Results Train Loss: 0.4438 | Train Acc: 99.57% || Val Loss: 0.9231 | Val Acc: 82.39%\n", + "------------------------------------------------------------\n", + " EarlyStopping: 7/7\n", + "Early stopping at epoch 29\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\n" + ] + } + ], + "source": [ + "train_losses, train_accuracy, eval_losses, eval_accuracies, all_preds, all_labels = train_model(\n", + " model = model,\n", + " train_loader = train_loader,\n", + " eval_loader = eval_loader,\n", + " optimizer = optimizer,\n", + " criterion = criterion,\n", + " device = device,\n", + " epochs = 100,\n", + " patience = 7,\n", + " checkpoint_model_name = 'best_fusion_model'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Vx89B4AqQaDz" + }, + "source": [ + "# Plotting the loss and accuracy" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 507 + }, + "id": "J9UFxWV0QaDz", + "outputId": "a1824097-d55e-4b69-a606-88bd1c1dd826" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKQAAAHqCAYAAAA6SZZrAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA3u9JREFUeJzs3Xd4FNXbxvHvpvcGpEEIofdepAoCQkSkSlFEbNgVsWJBrCiWny+K2ABBQUEExEITQRCQ3nsPkEZLJ3Xn/WNgIdISSLJJuD/XNdfuzpwz++yGJZNnn3OOxTAMAxERERERERERkSLiYO8ARERERERERETkxqKElIiIiIiIiIiIFCklpEREREREREREpEgpISUiIiIiIiIiIkVKCSkRERERERERESlSSkiJiIiIiIiIiEiRUkJKRERERERERESKlBJSIiIiIiIiIiJSpJSQEhERERERERGRIqWElIiIiIiIiIiIFCklpESkQH377bdYLBbWrVtn71DyZNOmTQwaNIiwsDBcXV0JCAigU6dOTJo0iZycHHuHJyIiIiXI559/jsVioUWLFvYOpUSKi4vjueeeo2bNmnh4eODp6UmTJk14++23SUhIsHd4IlLAnOwdgIiIvXzzzTc88sgjBAUFcc8991CtWjWSk5NZvHgxDzzwADExMbz88sv2DlNERERKiKlTp1KpUiXWrFnDvn37qFq1qr1DKjHWrl3LbbfdRkpKCoMGDaJJkyYArFu3jvfee49ly5axcOFCO0cpIgVJCSkRuSH9+++/PPLII7Rs2ZI//vgDb29v27Fhw4axbt06tm3bViDPlZqaiqenZ4GcS0RERIqngwcPsnLlSmbNmsXDDz/M1KlTef311+0d1iUVt2uThIQEevXqhaOjIxs3bqRmzZq5jr/zzjt8/fXXBfJcxe21i9zINGRPROxi48aNREZG4uPjg5eXFx07duTff//N1SYrK4s33niDatWq4ebmRpkyZWjTpg2LFi2ytYmNjeW+++6jQoUKuLq6EhISQo8ePTh06NAVn/+NN97AYrEwderUXMmoc5o2bcqQIUMAWLp0KRaLhaVLl+Zqc+jQISwWC99++61t35AhQ/Dy8mL//v3cdttteHt7c/fdd/PEE0/g5eVFWlraRc81cOBAgoODcw0RnDdvHm3btsXT0xNvb2+6devG9u3br/iaRERExH6mTp2Kv78/3bp1o2/fvkydOvWS7RISEnjmmWeoVKkSrq6uVKhQgcGDB3PixAlbm/T0dEaNGkX16tVxc3MjJCSE3r17s3//fqBgrk0Ali9fzp133knFihVxdXUlLCyMZ555hjNnzlwU965du+jXrx/lypXD3d2dGjVq8MorrwCwZMkSLBYLs2fPvqjftGnTsFgsrFq16rLv3ZdffsmxY8f4+OOPL0pGAQQFBfHqq6/aHlssFkaNGnVRu0qVKtmu3+D8VBJ///03jz32GIGBgVSoUIGZM2fa9l8qFovFkuuLyV27dtG3b18CAgJwc3OjadOmzJ0797KvR0TyRhVSIlLktm/fTtu2bfHx8eGFF17A2dmZL7/8kvbt2/P333/b5l0YNWoUo0eP5sEHH6R58+YkJSWxbt06NmzYQOfOnQHo06cP27dv58knn6RSpUrEx8ezaNEioqKiqFSp0iWfPy0tjcWLF9OuXTsqVqxY4K8vOzubLl260KZNGz788EM8PDyoVKkS48aN4/fff+fOO+/MFcuvv/7KkCFDcHR0BOC7777j3nvvpUuXLrz//vukpaUxfvx42rRpw8aNGy/7ukRERMR+pk6dSu/evXFxcWHgwIGMHz+etWvX0qxZM1ublJQU2rZty86dO7n//vtp3LgxJ06cYO7cuRw9epSyZcuSk5PD7bffzuLFixkwYABPP/00ycnJLFq0iG3btlGlSpV8x3apaxOAn376ibS0NB599FHKlCnDmjVr+PTTTzl69Cg//fSTrf+WLVto27Ytzs7ODB06lEqVKrF//35+/fVX3nnnHdq3b09YWBhTp06lV69eF70vVapUoWXLlpeNb+7cubi7u9O3b998v7a8eOyxxyhXrhwjR44kNTWVbt264eXlxYwZM7j55ptztZ0+fTp16tShbt26gHnd2rp1a8qXL89LL72Ep6cnM2bMoGfPnvz8888XvV4RyQdDRKQATZo0yQCMtWvXXrZNz549DRcXF2P//v22fdHR0Ya3t7fRrl07274GDRoY3bp1u+x5Tp8+bQDGBx98kK8YN2/ebADG008/naf2S5YsMQBjyZIlufYfPHjQAIxJkybZ9t17770GYLz00ku52lqtVqN8+fJGnz59cu2fMWOGARjLli0zDMMwkpOTDT8/P+Ohhx7K1S42Ntbw9fW9aL+IiIjY37p16wzAWLRokWEY5u/9ChUqXHStMXLkSAMwZs2addE5rFarYRiGMXHiRAMwPv7448u2KYhrE8MwjLS0tIv2jR492rBYLMbhw4dt+9q1a2d4e3vn2ndhPIZhGCNGjDBcXV2NhIQE2774+HjDycnJeP311y96ngv5+/sbDRo0uGKbCwGXPGd4eLhx77332h6fuy5t06aNkZ2dnavtwIEDjcDAwFz7Y2JiDAcHB+PNN9+07evYsaNRr149Iz093bbParUarVq1MqpVq5bnmEXkYhqyJyJFKicnh4ULF9KzZ08qV65s2x8SEsJdd93FP//8Q1JSEgB+fn5s376dvXv3XvJc7u7uuLi4sHTpUk6fPp3nGM6d/1JD9QrKo48+muuxxWLhzjvv5I8//iAlJcW2f/r06ZQvX542bdoAsGjRIhISEhg4cCAnTpywbY6OjrRo0YIlS5YUWswiIiJybaZOnUpQUBAdOnQAzN/7/fv358cff8w1JP/nn3+mQYMGl6yqsVgstjZly5blySefvGyba/HfaxMwr6XOSU1N5cSJE7Rq1QrDMNi4cSMAx48fZ9myZdx///0XVZZfGM/gwYPJyMhg5syZtn3Tp08nOzubQYMGXTG2pKSkQr0ue+ihh2yV6Of079+f+Pj4XMMeZ86cidVqpX///gCcOnWKv/76i379+pGcnGy7Ljt58iRdunRh7969HDt2rNDiFintlJASkSJ1/Phx0tLSqFGjxkXHatWqhdVq5ciRIwC8+eabJCQkUL16derVq8fzzz/Pli1bbO1dXV15//33mTdvHkFBQbRr144xY8YQGxt7xRh8fHwASE5OLsBXdp6TkxMVKlS4aH///v05c+aMbc6BlJQU/vjjD+68807bBd255Nstt9xCuXLlcm0LFy4kPj6+UGIWERGRa5OTk8OPP/5Ihw4dOHjwIPv27WPfvn20aNGCuLg4Fi9ebGu7f/9+21Cwy9m/fz81atTAyangZle53LVJVFQUQ4YMISAgAC8vL8qVK2cbwpaYmAjAgQMHAK4ad82aNWnWrFmuubOmTp3KTTfddNXVBn18fArtugwgIiLion1du3bF19eX6dOn2/ZNnz6dhg0bUr16dQD27duHYRi89tprF12XnZuwXtdmItdOc0iJSLHVrl079u/fzy+//MLChQv55ptv+N///scXX3zBgw8+CJgr4nXv3p05c+awYMECXnvtNUaPHs1ff/1Fo0aNLnneqlWr4uTkxNatW/MUx+W+jbzwG88Lubq64uBwcb7/pptuolKlSsyYMYO77rqLX3/9lTNnzti+hQOwWq2AOY9UcHDwRecoyItTERERuX5//fUXMTEx/Pjjj/z4448XHZ86dSq33nprgT5nQVyb5OTk0LlzZ06dOsWLL75IzZo18fT05NixYwwZMsR2TZIfgwcP5umnn+bo0aNkZGTw77//8tlnn121X82aNdm0aROZmZm4uLjk+3nPudzrv7AS7BxXV1d69uzJ7Nmz+fzzz4mLi2PFihW8++67tjbn3oPnnnuOLl26XPLcV0u2icjl6S8bESlS5cqVw8PDg927d190bNeuXTg4OBAWFmbbFxAQwH333cd9991HSkoK7dq1Y9SoUbaEFECVKlV49tlnefbZZ9m7dy8NGzbko48+4vvvv79kDB4eHtxyyy389ddfHDlyJNfzXYq/vz9gropzocOHD+f1Zdv069eP//u//yMpKYnp06dTqVIlbrrpplyvBSAwMJBOnTrl+/wiIiJStKZOnUpgYCDjxo276NisWbOYPXs2X3zxBe7u7lSpUiXX6m2XUqVKFVavXk1WVhbOzs6XbFMQ1yZbt25lz549TJ48mcGDB9v2X7iaMWCbYuFqcQMMGDCA4cOH88MPP3DmzBmcnZ1zffF2Od27d2fVqlX8/PPPDBw48Krt/f39L3rtmZmZxMTEXLXvhfr378/kyZNZvHgxO3fuxDCMXPGee+3Ozs66LhMpBBqyJyJFytHRkVtvvZVffvmFQ4cO2fbHxcUxbdo02rRpYxtSd/LkyVx9vby8qFq1KhkZGYC5Ql16enquNlWqVMHb29vW5nJef/11DMPgnnvuyTWn0znr169n8uTJAISHh+Po6MiyZctytfn888/z9qIv0L9/fzIyMpg8eTLz58+nX79+uY536dIFHx8f3n33XbKysi7qf/z48Xw/p4iIiBSOM2fOMGvWLG6//Xb69u170fbEE0+QnJxsG67fp08fNm/ezOzZsy86l2EYtjYnTpy4ZGXRuTYFcW1ybk6lc+c8d////u//crUrV64c7dq1Y+LEiURFRV0ynnPKli1LZGQk33//PVOnTqVr166ULVv2qrE88sgjhISE8Oyzz7Jnz56LjsfHx/P222/bHlepUuWi1/7VV19dtkLqcjp16kRAQADTp09n+vTpNG/ePNfwvsDAQNq3b8+XX355yWSXrstEro8qpESkUEycOJH58+dftP/pp5/m7bffZtGiRbRp04bHHnsMJycnvvzySzIyMhgzZoytbe3atWnfvj1NmjQhICCAdevWMXPmTJ544gkA9uzZQ8eOHenXrx+1a9fGycmJ2bNnExcXx4ABA64YX6tWrRg3bhyPPfYYNWvW5J577qFatWokJyezdOlS5s6da7vw8fX15c477+TTTz/FYrFQpUoVfvvtt2uaM6Bx48ZUrVqVV155hYyMjIu+NfTx8WH8+PHcc889NG7cmAEDBlCuXDmioqL4/fffad26dZ5K30VERKTwzZ07l+TkZO64445LHr/pppsoV64cU6dOpX///jz//PPMnDmTO++8k/vvv58mTZpw6tQp5s6dyxdffEGDBg0YPHgwU6ZMYfjw4axZs4a2bduSmprKn3/+yWOPPUaPHj0K5NqkZs2aVKlSheeee45jx47h4+PDzz//fMmFYsaOHUubNm1o3LgxQ4cOJSIigkOHDvH777+zadOmXG0HDx5M3759AXjrrbfyFIu/vz+zZ8/mtttuo2HDhgwaNIgmTZoAsGHDBn744Qdatmxpa//ggw/yyCOP0KdPHzp37szmzZtZsGBBnpJfF3J2dqZ37978+OOPpKam8uGHH17UZty4cbRp04Z69erx0EMPUblyZeLi4li1ahVHjx5l8+bN+XpOEbmA3db3E5FS6dzyupfbjhw5YhiGYWzYsMHo0qWL4eXlZXh4eBgdOnQwVq5cmetcb7/9ttG8eXPDz8/PcHd3N2rWrGm88847RmZmpmEYhnHixAnj8ccfN2rWrGl4enoavr6+RosWLYwZM2bkOd7169cbd911lxEaGmo4Ozsb/v7+RseOHY3JkycbOTk5tnbHjx83+vTpY3h4eBj+/v7Gww8/bGzbtu2SSyt7enpe8TlfeeUVAzCqVq162TZLliwxunTpYvj6+hpubm5GlSpVjCFDhhjr1q3L82sTERGRwtW9e3fDzc3NSE1NvWybIUOGGM7OzsaJEycMwzCMkydPGk888YRRvnx5w8XFxahQoYJx77332o4bhmGkpaUZr7zyihEREWE4OzsbwcHBRt++fY39+/fb2hTEtcmOHTuMTp06GV5eXkbZsmWNhx56yNi8efNF5zAM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hfH73//eSE9Ptzbwauz+++83GjdubLi7uxshISFG3759jf/973/Fz+v76XzqRzmP+lJXTn0p51I/yrnUj3I+9aWcq6r6UTbDMIxLS2GJiIiIiIiIiIhcPtWQEhERERERERGRKqWElIiIiIiIiIiIVCklpEREREREREREpEopISUiIiIiIiIiIlVKCSkREREREREREalSSkiJiIiIiIiIiEiVUkJKRERERERERESqlBJSIiIiIiIiIiJSpZSQEhGpAJvNxty5c60OQ0RERKRGUl9KRH5LCSkRqfbuu+8+bDbbBduAAQOsDk1ERESk2lNfSkSqI1erAxARqYgBAwbw0UcflTjn4eFhUTQiIiIiNYv6UiJS3WiElIjUCB4eHoSHh5fYAgMDAXMI+LvvvsvAgQPx8vKiWbNmfPXVVyWu37x5M3369MHLy4v69evz0EMPkZWVVaLNtGnTaNeuHR4eHkRERPDYY4+VeP748eMMHToUb29vWrZsyTfffFP83KlTpxgxYgQhISF4eXnRsmXLCzp9IiIiIlZRX0pEqhslpESkVnjxxRcZNmwYGzduZMSIEdxxxx1s374dgOzsbPr3709gYCBr165l1qxZ/PTTTyU6Se+++y5jxozhoYceYvPmzXzzzTe0aNGixHu8+uqr3H777WzatIkbb7yRESNGcPLkyeL337ZtG99//z3bt2/n3XffJTg4uOpugIiIiMgVUF9KRKqcISJSzY0cOdJwcXExfHx8Smx//etfDcMwDMB4+OGHS1wTFxdnPPLII4ZhGMb7779vBAYGGllZWcXPf/vtt4bdbjeSk5MNwzCMBg0aGH/84x9LjQEwXnjhheLHWVlZBmB8//33hmEYxuDBg41Ro0Y55wOLiIiIOJH6UiJSHamGlIjUCNdddx3vvvtuiXNBQUHFx/Hx8SWei4+PZ8OGDQBs376dTp064ePjU/x8jx49cDgc7Ny5E5vNxpEjR+jbt2+ZMXTs2LH42MfHB39/f1JTUwF45JFHGDZsGOvXr+eGG25gyJAhdO/e/bI+q4iIiIizqS8lItWNElIiUiP4+PhcMOzbWby8vCrUzs3NrcRjm82Gw+EAYODAgRw4cIDvvvuOH3/8kb59+zJmzBj+/ve/Oz1eERERkUulvpSIVDeqISUitcLq1asveNymTRsA2rRpw8aNG8nOzi5+fsWKFdjtdqKjo/Hz86NJkyYsXLjwimIICQlh5MiRfPrpp0yaNIn333//il5PREREpKqoLyUiVU0jpESkRsjLyyM5ObnEOVdX1+Jil7NmzaJLly5cc801fPbZZ6xZs4apU6cCMGLECF5++WVGjhzJK6+8wrFjx3j88ce55557CAsLA+CVV17h4YcfJjQ0lIEDB5KZmcmKFSt4/PHHKxTfSy+9RExMDO3atSMvL4/58+cXd+JERERErKa+lIhUN0pIiUiNsGDBAiIiIkqci46OZseOHYC5asuMGTN49NFHiYiI4IsvvqBt27YAeHt788MPP/Dkk0/StWtXvL29GTZsGBMnTix+rZEjR5Kbm8tbb73FM888Q3BwMLfeemuF43N3d2f8+PEkJibi5eVFz549mTFjhhM+uYiIiMiVU19KRKobm2EYhtVBiIhcCZvNxpw5cxgyZIjVoYiIiIjUOOpLiYgVVENKRERERERERESqlBJSIiIiIiIiIiJSpTRlT0REREREREREqpRGSImIiIiIiIiISJVSQkpERERERERERKqUElIiIiIiIiIiIlKllJASEREREREREZEqpYSUiIiIiIiIiIhUKSWkRERERERERESkSikhJSIiIiIiIiIiVUoJKRERERERERERqVJKSImIiIiIiIiISJX6f5kpDElNxb4rAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ], + "source": [ + "def plot_training_curves(train_losses, eval_losses, train_acc, eval_acc):\n", + " epochs = range(1, len(train_losses) + 1)\n", + "\n", + " plt.figure(figsize=(12, 5))\n", + "\n", + " # Loss\n", + " plt.subplot(1, 2, 1)\n", + " plt.plot(epochs, train_losses, label=\"Train Loss\")\n", + " plt.plot(epochs, eval_losses, label=\"Val Loss\")\n", + " plt.xlabel(\"Epochs\")\n", + " plt.ylabel(\"Loss\")\n", + " plt.title(\"Loss Curve\")\n", + " plt.legend()\n", + "\n", + " # Accuracy\n", + " plt.subplot(1, 2, 2)\n", + " plt.plot(epochs, train_acc, label=\"Train Acc\")\n", + " plt.plot(epochs, eval_acc, label=\"Val Acc\")\n", + " plt.xlabel(\"Epochs\")\n", + " plt.ylabel(\"Accuracy (%)\")\n", + " plt.title(\"Accuracy Curve\")\n", + " plt.legend()\n", + "\n", + " plt.tight_layout()\n", + " plt.show()\n", + "\n", + "plot_training_curves(\n", + " train_losses,\n", + " eval_losses,\n", + " train_accuracy,\n", + " eval_accuracies\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bPbPHC5eQaDz" + }, + "source": [ + "# Confusion Matrix & Classification Report" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "id": "_qXAbeBMQaDz" + }, + "outputs": [], + "source": [ + "def print_classification_report(all_labels, all_preds):\n", + " class_names = train_dataset.dataset.classes\n", + " report = classification_report(\n", + " all_labels,\n", + " all_preds,\n", + " target_names=class_names\n", + " )\n", + " print(report)\n", + "\n", + "def plot_confusion_matrix_normalized(all_labels, all_preds):\n", + " class_names = train_dataset.dataset.classes\n", + " cm = confusion_matrix(all_labels, all_preds)\n", + " plt.figure(figsize=(6, 5))\n", + " sns.heatmap(cm, annot=True, fmt=\"d\", cmap=\"Blues\",\n", + " xticklabels=class_names, yticklabels=class_names)\n", + " plt.xlabel(\"Predicted\")\n", + " plt.ylabel(\"True\")\n", + " plt.title(\"Confusion Matrix\")\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "54842f402ef04495a73c74198d49138e", + "41d3d84e46c24ecdaae8b8f7570487aa", + "4022e7251f4240d1911b533695ac99b1", + "c4375196eb684a7a8c375d776e903bf7", + "3c15ce2309bd40afad8c28f68dababf3", + "7235af4ac8b14c45b092921f55cb5b4f", + "dcdd5c90594845b885062f074c814717", + "cf3113746a704d15a9cabdd594d61568", + "633cada8fc3c4c3a861d0ab8b96cc064", + "1dbf44bad25e40c28c2b5015dfabfada", + "181c4022a8134b398494afc38fdefd60" + ] + }, + "id": "UowDvFrke6yQ", + "outputId": "5aa4e2dc-625a-4806-8efb-0644cb82be72" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Loading weights: 0%| | 0/342 [00:00" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "loaded_model = FusionClassifier(\n", + " num_classes=len(class_to_idx),\n", + " convnext_model_name=convnext_model_name\n", + ").to(device)\n", + "\n", + "checkpoint_path = \"checkpoints/best_fusion_model.pt\"\n", + "checkpoint = torch.load(checkpoint_path)\n", + "loaded_model.load_state_dict(checkpoint['model_state_dict'])\n", + "\n", + "print(f\"Best model loaded from {checkpoint_path} (Validation Accuracy: {checkpoint['val_acc']:.2f}%) at epoch {checkpoint['epoch']+1}\")\n", + "\n", + "loaded_model.eval()\n", + "\n", + "all_labels_loaded_model = []\n", + "all_preds_loaded_model = []\n", + "\n", + "with torch.no_grad():\n", + " for batch in tqdm(eval_loader, desc=\"Making predictions on eval_loader\"):\n", + " images_eff = batch['pixel_values_eff'].to(device)\n", + " images_cnx = batch['pixel_values_cnx'].to(device)\n", + " labels = batch['labels'].to(device)\n", + "\n", + " logits = loaded_model(images_eff, images_cnx)\n", + " preds = torch.argmax(logits, dim=1)\n", + "\n", + " all_labels_loaded_model.extend(labels.cpu().numpy())\n", + " all_preds_loaded_model.extend(preds.cpu().numpy())\n", + "\n", + "print(\"\\n--- Classification Report (from loaded model) ---\")\n", + "print_classification_report(all_labels_loaded_model, all_preds_loaded_model)\n", + "\n", + "print(\"\\n--- Confusion Matrix (from loaded model) ---\")\n", + "plot_confusion_matrix_normalized(all_labels_loaded_model, all_preds_loaded_model)" + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Checking the model size" + ], + "metadata": { + "id": "6akKQvOJjqaQ" + } + }, + { + "cell_type": "code", + "source": [ + "import os\n", + "\n", + "BEST_MODEL_PATH = \"checkpoints/best_fusion_model.pt\"\n", + "\n", + "if os.path.exists(BEST_MODEL_PATH):\n", + " size_mb = os.path.getsize(BEST_MODEL_PATH) / (1024 * 1024)\n", + " print(f\"Size of best_fusion_model.pt : {size_mb:.2f} MB\")\n", + "else:\n", + " print(f\"Model not found at {BEST_MODEL_PATH}. Please ensure the training has completed successfully.\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "DpodyaUriwNE", + "outputId": "c6f5db4c-f33b-4f2d-d2ec-689ca9a8688a" + }, + "execution_count": 23, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Size of best_fusion_model.pt : 788.62 MB\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Model converssion\n", + "\n", + "***The model is too large because of fusion architecture, so i am gonna convert the model to fp16 and then upload it to the huggingface hub***" + ], + "metadata": { + "id": "tGJGluFsjuXk" + } + }, + { + "cell_type": "code", + "source": [ + "NUM_CLASSES = len(class_to_idx)\n", + "CONVNEXT_MODEL_NAME = convnext_model_name # Defined in a previous cell\n", + "CHECKPOINT_PATH = \"checkpoints/best_fusion_model.pt\"\n", + "SAVE_FP16_PATH = \"checkpoints/best_fusion_modelfp16.pt\"\n", + "\n", + "model = FusionClassifier(\n", + " num_classes=NUM_CLASSES,\n", + " convnext_model_name=CONVNEXT_MODEL_NAME\n", + ").to(device) # Ensure model is on the correct device\n", + "\n", + "print(\"=\" * 60)\n", + "print(\"Initializing model...\")\n", + "print(\"=\" * 60)\n", + "\n", + "\n", + "# =========================================================\n", + "# LOAD TRAINED WEIGHTS\n", + "# =========================================================\n", + "\n", + "checkpoint = torch.load(\n", + " CHECKPOINT_PATH,\n", + " map_location=device\n", + ")\n", + "\n", + "# If checkpoint contains state_dict\n", + "if \"model_state_dict\" in checkpoint:\n", + " model.load_state_dict(checkpoint[\"model_state_dict\"])\n", + "\n", + "# If checkpoint is directly state_dict\n", + "else:\n", + " model.load_state_dict(checkpoint)\n", + "\n", + "print(\"Model weights loaded successfully.\")\n", + "\n", + "\n", + "# =========================================================\n", + "# CONVERT TO FP16\n", + "# =========================================================\n", + "\n", + "model = model.half()\n", + "\n", + "print(\"Model converted to FP16.\")\n", + "\n", + "\n", + "# =========================================================\n", + "# CREATE CHECKPOINT DIRECTORY\n", + "# =========================================================\n", + "\n", + "os.makedirs(\"checkpoints\", exist_ok=True)\n", + "\n", + "\n", + "# =========================================================\n", + "# SAVE FP16 MODEL\n", + "# =========================================================\n", + "\n", + "torch.save(\n", + " model.state_dict(),\n", + " SAVE_FP16_PATH\n", + ")\n", + "\n", + "print(\"=\" * 60)\n", + "print(\"FP16 model saved successfully.\")\n", + "print(f\"Saved Path : {SAVE_FP16_PATH}\")\n", + "\n", + "size_mb = os.path.getsize(SAVE_FP16_PATH) / (1024 * 1024)\n", + "\n", + "print(f\"FP16 Model Size : {size_mb:.2f} MB\")\n", + "print(\"=\" * 60)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 361, + "referenced_widgets": [ + "9898377433d84a38a701961c284a5b16", + "a9d3eb6c7b674a4eabd5987fd87c1293", + "8de7818836024a4db36f4faf1ef94196", + "ca5435984bd04e06941f767358ab14d1", + "6c964a0f1a2a4cc7aa6d2f90572c3bf2", + "bf8dab9049b34b4cb1bff49d7f5db7d2", + "1729444da4294841b86d5d22fad06432", + "803f6aaa74374e66b6ce226c23ac82de", + "3c9297c070c54151a9c58ccea500d80b", + "dc742fe8ea374b91836c846fd8d44855", + "d266d54dc16442e2a76e602a49ca6ece" + ] + }, + "id": "j9BrXJKJgZvt", + "outputId": "f44d5a50-4cae-43fb-d33b-289656f82b76" + }, + "execution_count": 24, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Loading weights: 0%| | 0/342 [00:00