Files
gobot/board-vision/cnn_model/train.ipynb
2024-09-10 15:04:45 +02:00

479 lines
116 KiB (Stored with Git LFS)
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Using cuda device\n"
]
}
],
"source": [
"import torch\n",
"from torch import nn\n",
"from torch.utils.data import Dataset, DataLoader, random_split\n",
"from IPython.display import display, clear_output\n",
"import os\n",
"\n",
"os.environ[\"CUDA_LAUNCH_BLOCKING\"] = \"1\"\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"from sklearn import svm, model_selection, metrics\n",
"\n",
"device = (\n",
" \"cuda\" if torch.cuda.is_available() else \n",
" \"mps\" if torch.backends.mps.is_available() else \"cpu\"\n",
")\n",
"print(f\"Using {device} device\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" images label\n",
"23290 [[0.40643760463074197, 0.3982520862496269, 0.4... 1\n",
"47604 [[0.12182608906416852, 0.19741380979252504, 0.... 1\n",
"54068 [[0.5783613612865524, 0.4507420836595933, 0.47... 1\n",
"43583 [[0.31308472117490954, 0.30893375779528137, 0.... 1\n",
"56001 [[0.2915222336036848, 0.27913560835588913, 0.2... 1\n",
"(21, 21)\n",
"Image size: 21x21\n"
]
}
],
"source": [
"class MarkerImageDataset(Dataset):\n",
" def __init__(self, f: str) -> None:\n",
" super().__init__()\n",
" self.dataset = pd.read_pickle(f)\n",
"\n",
" self.img = torch.as_tensor(np.stack(self.dataset[\"images\"], axis=0), dtype=torch.float32).to(device)[:, None, :, :]\n",
" self.label = torch.as_tensor(np.vstack(self.dataset[\"label\"]), dtype=torch.float32).to(device)\n",
"\n",
" def __len__(self) -> int:\n",
" return self.dataset.shape[0]\n",
" \n",
" def __getitem__(self, idx: int) -> dict:\n",
" return self.img[idx], self.label[idx]\n",
"\n",
"dataset = MarkerImageDataset(\"data/set4.pkl\")\n",
"print(dataset.dataset.head())\n",
"print(dataset.dataset.iloc[0].images.shape)\n",
"\n",
"IMAGE_WIDTH, IMAGE_HEIGHT = dataset.dataset.iloc[0].images.shape\n",
"print(f\"Image size: {IMAGE_WIDTH}x{IMAGE_HEIGHT}\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train: 103805, Test: 25951, Total: 129756 (Batch: 32)\n",
"torch.Size([129756, 1, 21, 21]) torch.Size([129756, 1])\n",
"Labels: tensor([[1.],\n",
" [1.],\n",
" [1.],\n",
" ...,\n",
" [0.],\n",
" [0.],\n",
" [0.]], device='cuda:0')\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>images</th>\n",
" <th>label</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>23290</th>\n",
" <td>[[0.40643760463074197, 0.3982520862496269, 0.4...</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47604</th>\n",
" <td>[[0.12182608906416852, 0.19741380979252504, 0....</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54068</th>\n",
" <td>[[0.5783613612865524, 0.4507420836595933, 0.47...</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43583</th>\n",
" <td>[[0.31308472117490954, 0.30893375779528137, 0....</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56001</th>\n",
" <td>[[0.2915222336036848, 0.27913560835588913, 0.2...</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" images label\n",
"23290 [[0.40643760463074197, 0.3982520862496269, 0.4... 1\n",
"47604 [[0.12182608906416852, 0.19741380979252504, 0.... 1\n",
"54068 [[0.5783613612865524, 0.4507420836595933, 0.47... 1\n",
"43583 [[0.31308472117490954, 0.30893375779528137, 0.... 1\n",
"56001 [[0.2915222336036848, 0.27913560835588913, 0.2... 1"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"TEST_SIZE = 0.2\n",
"BATCH_SIZE = 32\n",
"\n",
"dataset = MarkerImageDataset(\"data/set4.pkl\")\n",
"test_size = int(len(dataset) * TEST_SIZE)\n",
"train_size = len(dataset) - test_size\n",
"train_dataset, test_dataset = random_split(dataset, [train_size, test_size])\n",
"\n",
"HEAVOSIDE_VALUES = torch.full((BATCH_SIZE,), 0.0).to(device)\n",
"\n",
"train_dataloader = DataLoader(train_dataset, batch_size=BATCH_SIZE, shuffle=True)\n",
"test_dataloader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=True)\n",
"\n",
"print(f\"Train: {train_size}, Test: {test_size}, Total: {len(dataset)} (Batch: {BATCH_SIZE})\")\n",
"print(dataset.img.shape, dataset.label.shape)\n",
"\n",
"print(\"Labels:\", dataset.label)\n",
"dataset.dataset.head()"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"\n",
"\n",
"def train_loop(total_epoch, epoch, dataloader, model, loss_fn, optimizer, last_accuracy, last_loss):\n",
" size = len(dataloader.dataset)\n",
" model.train()\n",
"\n",
" for batch, (X, y) in enumerate(dataloader):\n",
" pred = model(X)\n",
" loss = loss_fn(pred, y)\n",
"\n",
" loss.backward()\n",
" optimizer.step()\n",
" optimizer.zero_grad()\n",
"\n",
" if batch % 100 == 0:\n",
" loss, current = loss.item(), batch * BATCH_SIZE + len(X)\n",
" print_status(total_epoch, epoch, loss, size, current, last_accuracy, last_loss)\n",
"\n",
"def test_loop(total_epoch, epoch, dataloader, model, loss_fn):\n",
" # Set the model to evaluation mode - important for batch normalization and dropout layers\n",
" # Unnecessary in this situation but added for best practices\n",
" model.eval()\n",
" size = len(dataloader.dataset)\n",
" num_batches = len(dataloader)\n",
" test_loss, correct = 0, 0\n",
"\n",
" # Evaluating the model with torch.no_grad() ensures that no gradients are computed during test mode\n",
" # also serves to reduce unnecessary gradient computations and memory usage for tensors with requires_grad=True\n",
" with torch.no_grad():\n",
" for X, y in dataloader:\n",
" pred = model(X)\n",
" test_loss += loss_fn(pred, y).item()\n",
" correct += torch.round(torch.abs(pred - y)).sum().item()\n",
"\n",
" test_loss /= num_batches\n",
" accuracy = (size-correct) / size\n",
" \n",
" print_status(total_epoch, epoch, 0, 1, 1, accuracy, test_loss)\n",
" return (accuracy, test_loss)\n",
"\n",
"\n",
"def print_status(total_epoch, epoch, loss, total_batch, batch, test_accuracy, test_loss):\n",
" N = 30\n",
" progressbar = (\"=\"*round((batch/total_batch)*N) + \">\")[:N].ljust(N)\n",
" s = f\"Epoch {total_epoch:04d}/{epoch:04d} loss: {loss:02.5f} [{progressbar}]\"\n",
"\n",
"\n",
" if test_accuracy is not None:\n",
" s += f\" Test: Accuracy: {100*test_accuracy:>0.3f}%, Test loss: {test_loss:>8f} \"\n",
" \n",
" print(s, end=\"\\r\", flush=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"editable": true,
"scrolled": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"class NeuralNetwork(nn.Module):\n",
" def __init__(self) -> None:\n",
" super().__init__()\n",
"\n",
" self.convStack = nn.Sequential(\n",
" nn.Conv2d(in_channels=1, out_channels=12, kernel_size=5, stride=1, padding=2, padding_mode=\"zeros\"), # 21x21 -> 21x21\n",
" nn.MaxPool2d(kernel_size=2, stride=2), # 21x21 -> 10x10\n",
" nn.Dropout(0.1),\n",
"\n",
" nn.Conv2d(in_channels=12, out_channels=8, kernel_size=3, stride=1, padding=1, padding_mode=\"zeros\"),\n",
" nn.MaxPool2d(kernel_size=2, stride=2), #10x10 -> 5x5\n",
" nn.Dropout(0.1),\n",
" )\n",
"\n",
" self.flattenLayer = nn.Flatten()\n",
"\n",
" self.linearStack = nn.Sequential(\n",
" nn.Linear(5*5 * 8, 6),\n",
" nn.ReLU(),\n",
" nn.Dropout(0.5),\n",
"\n",
" nn.Linear(6, 6),\n",
" nn.ReLU(),\n",
" nn.Dropout(0.5),\n",
"\n",
" nn.Linear(6, 1),\n",
" nn.Sigmoid()\n",
" )\n",
"\n",
" def forward(self, x: torch.Tensor) -> torch.Tensor:\n",
" x_ = self.convStack(x)\n",
" #print(x_.shape)\n",
" x_ = self.flattenLayer(x_)\n",
" return self.linearStack(x_)\n",
"\n",
"if \"model\" in locals():\n",
" del model\n",
"\n",
"model = NeuralNetwork().to(device)\n"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 0300/0300 loss: 0.00000 [==============================] Test: Accuracy: 99.803%, Test loss: 0.016756 \n",
"Done!\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAGwCAYAAACJjDBkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACugUlEQVR4nO29eZgU9bn2f1fv07MvzAzLyIAgi+wgOMREEwlgPBqiASUGhMNRs2A88MYTMQaI/hL0JBpN9MhrIsacVw4EoxyihoigicoIsoyKCiqKrDPD7DM9M73W74/qb21d1V3dXb2Nz+e65lK6q6uqa5a6+3nu7/1wPM/zIAiCIAiCIOLCkukTIAiCIAiCyEVIRBEEQRAEQSQAiSiCIAiCIIgEIBFFEARBEASRACSiCIIgCIIgEoBEFEEQBEEQRAKQiCIIgiAIgkgAW6ZPYCATCoVw9uxZFBYWguO4TJ8OQRAEQRAG4Hke3d3dGDJkCCwW/XoTiagUcvbsWdTU1GT6NAiCIAiCSIBTp05h2LBhus+TiEohhYWFAIRvQlFRUYbPhiAIgiAII3R1daGmpka8j+tBIiqFsBZeUVERiSiCIAiCyDFiWXHIWE4QBEEQBJEAJKIIgiAIgiASgEQUQRAEQRBEApCIIgiCIAiCSAASUQRBEARBEAlAIoogCIIgCCIBSEQRBEEQBEEkAIkogiAIgiCIBCARRRAEQRAEkQAkogiCIAiCIBKARBRBEARBEEQCkIgiCIIgCIJIABJROUhXvx+fNPeg3x/M9KkQBEEQxBcWElE5yNyH/ok5D/0DHzV1Z/pUCIIgCOILC4moHKSyyAkAON/tzfCZEARBEMQXFxJROUhloSCimklEEQRBEETGIBGVgwxiIqqLRBRBEARBZAoSUTnIoEIXAKC5uz/DZ0IQBEEQX1xIROUg1M4jCIIgiMxDIioHIRFFEARBEJmHRFQOUlkktPNaSEQRBEEQRMYgEZWDMGP5+W4veJ7P8NkQBEEQxBcTElE5yKACQUT5giF09PrTfvxVWxtw3X+9iUAwlPZjEwRBEES2QCIqB3HYLCh12wGk3xfF8zz+t+EMDp3swKn2vrQemyAIgiCyCRJROUplhmIO+v0hhMIdxF5fIK3HJgiCIIhsgkRUjsJGv6Q7cLPbK7UP+3w0AJkgCIL44kIiKkcRzeU96RVRHq8knHqzWERtffskfrf740yfBkEQBDGAsWX6BIjEyNToF49XauFlq4gKBEO4Z/sR+IM8rp8+DENK8jJ9SgRBEMQAhCpROUqmPFE9ChGVnZ6oc5398AcF41abx5fhsyEIgiAGKiSicpRMpZbnQiXqVHuv+P+dfemPgCAIgiC+GJCIylEqZYGb6UReicpWY/lpWfQCiSiCIAgiVWSFiHrsscdQW1sLl8uFWbNmYf/+/VG337ZtG8aOHQuXy4WJEyfipZdeEp/z+/34yU9+gokTJyI/Px9DhgzB0qVLcfbsWcU+2tracNNNN6GoqAglJSVYsWIFenp6FNu8++67+PKXvwyXy4Wamhr853/+p3lvOknY6JfmrvS28+TGck+WtvNOt0mVqEyEkRIEQRBfDDIuorZu3YrVq1dj3bp1OHToECZPnox58+ahublZc/u9e/di8eLFWLFiBQ4fPowFCxZgwYIFOHLkCACgt7cXhw4dws9+9jMcOnQIzz33HI4dO4Zrr71WsZ+bbroJ77//Pnbt2oUXXngB//znP3HrrbeKz3d1dWHu3LkYPnw4Dh48iF/96ldYv349nnjiidRdjDhgxnKPL6hosaUaT4KVKJ7nsfeTlrRUzqgSRRAEQaQFPsPMnDmT/+EPfyj+OxgM8kOGDOE3bNiguf2iRYv4q6++WvHYrFmz+Ntuu033GPv37+cB8J9//jnP8zz/wQcf8AD4t99+W9zmb3/7G89xHH/mzBme53n+v/7rv/jS0lLe6/WK2/zkJz/hx4wZY/i9dXZ28gD4zs5Ow6+Jh3E/+xs//Ccv8J+d70nJ/rV46OVj/PCfvMAP/8kL/D3Pv2f4dQdOtPHDf/ICv/yp/Sk8O4FvP/6meI4bXvow5ccjCIIgBhZG798ZrUT5fD4cPHgQc+bMER+zWCyYM2cO6uvrNV9TX1+v2B4A5s2bp7s9AHR2doLjOJSUlIj7KCkpwYwZM8Rt5syZA4vFgn379onbfOUrX4HD4VAc59ixY2hvb9c8jtfrRVdXl+IrlWTCXC6vRMXTzjvR4gEANHamvv1IlSiCIAgiHWRURLW0tCAYDKKqqkrxeFVVFRobGzVf09jYGNf2/f39+MlPfoLFixejqKhI3EdlZaViO5vNhrKyMnE/esdhz2mxYcMGFBcXi181NTWa25lFJmIO5MIpnnZee68QNeBL8dBibyCIRplPrLOPIg4IgiCI1JBxT1Qq8fv9WLRoEXiex+OPP57y461ZswadnZ3i16lTp1J6vEEZGP3Sk2BieWs4r8kXSK2IOtfRD56X/k2VKIIgCCJVZDSxvKKiAlarFU1NTYrHm5qaUF1drfma6upqQ9szAfX5559jz549YhWK7UNtXA8EAmhraxP3o3cc9pwWTqcTTqdT7+2azqCC9LfzevoTm53XHhZR3kBqYxHkGVEAiSiCIAgidWS0EuVwODB9+nTs3r1bfCwUCmH37t2oq6vTfE1dXZ1iewDYtWuXYnsmoD7++GO88sorKC8vj9hHR0cHDh48KD62Z88ehEIhzJo1S9zmn//8J/x+6Sa8a9cujBkzBqWlpYm/aRNhQ4jTmRWVaMRBW5oqUcwPVeK2AyARRRAEQaSOjLfzVq9ejd///vd4+umn8eGHH+L73/8+PB4Pli9fDgBYunQp1qxZI25/xx13YOfOnXjwwQdx9OhRrF+/HgcOHMDKlSsBCALq29/+Ng4cOIBnnnkGwWAQjY2NaGxshM8n3MjHjRuH+fPn45ZbbsH+/fvx5ptvYuXKlbjxxhsxZMgQAMB3vvMdOBwOrFixAu+//z62bt2KRx55BKtXr07zFdInE56oRMM2RU9UikXUqXBG1MVDhMpjJ+VEEQRBECki4wOIb7jhBpw/fx5r165FY2MjpkyZgp07d4om7pMnT8JikbTe7NmzsXnzZtxzzz24++67MXr0aGzfvh0TJkwAAJw5cwY7duwAAEyZMkVxrFdffRVXXHEFAOCZZ57BypUrceWVV8JiseD666/Hb3/7W3Hb4uJivPzyy/jhD3+I6dOno6KiAmvXrlVkSWWaTKSWy6tP8XiixEpUio3lrBI1YUgx3vykFV39AQRDPKwWLqXHJQiCIL54ZFxEAcDKlSvFSpKa1157LeKxhQsXYuHChZrb19bWgpc7i3UoKyvD5s2bo24zadIkvP766zH3lSlYOy8XIg7awxUhf5BHKMTDkiJRwzxR44dIHrjufj9K3A69lxAEQRBEQmS8nUckDmvntXl8KW+TMRJp5wVDvNjOA1JbjWKVqJEVBcizWwGQL4ogCIJIDSSicpiSPDts4YpOS0/qq1GBYAj9fkkABUK8IfHW2edXxA54UyT4+v1BsbVZU5ZH5nKCIAgipZCIymEsFk6coZcOX5RHo/JkpBrF/FCMVFXNWBWqwGlDcZ4dxXmCiKIhxARBEEQqIBGV46Rz9AvzQ9mtHOxWoQJmxBclb+UBqWvnMT/UsNI8cByHojyqRBEEQRCpg0RUjjMojTEHTETlO21wO4Q1CUZW6KW7EjWs1A0AYiWKRBRBEASRCkhE5TiVSYx+Od/txZ8PnDJsEGem8nyHDW6HYNo28tr2dImocEZUTVkeAMEzBpCIIgiCIFJDVkQcEImTzOiXR/d8jKfrP4c/GMJNs4bH3J6JqAKnDf6QIISMtPNaqRJFEARBDEBIROU40uiX+Nt5ZzqE17R0+2JsKcDaeQUumzgDL5FKVKrm5zFPVE2pUIkSRRQZywmCIIgUQCIqx2FZUYmszuvsE8RNn99oO0/YLt9pExPADXmi1MbydFWiKOKAIAiCSCEkonKcZFbnMXHRb1BEiZUopxUscLzXyOo8dSUqBavzPN6AaGAfVqaqRJGIIgiCIFIAiagcR2rneeMep8Lyk4yKKLmxnGGsEqUUMamoRLEqVHGeHUUuu/j/AIkogiAIIjXQ6rwcpyJsLA+oRqsYgYkLo+28xCMOhCqZwyb8uKVCRJ1qkzKiGCSiCIIgiFRCIirHsVstKMsXhuvG09Lr9wfF8StGIw48stV5UsSBkXaeIGKqiwT/VirGvpwWTeVu8TESUQRBEEQqIRE1AEjEFyUXFokYy/PCIkprFIwcbyAotgGriwURlZJKlGgqlypRJW5BXPZ4AwikcOgxQRAE8cWERNQAIJH5efJ5cl6/MYEhN5a77cbaeew4VgsnZlr5UhBxIFaiyqRKVJFL8m519ceumBEEQRBEPJCIGgBUJjD6JZFKFAvWzHfakO801s5jK+ZK3XY4mScqBVWhU22RlSib1YICpyCkOuL0ixEEQRBELEhEDQASGf0iFxXG23mSiGLtvFiVqHZRRDlSaizXqkQB5IsiCIIgUgeJqAEAa5PF085TVKKSMJbHElFs5EtpfupEVGefX2zXDS3JUzxXRCKKIAiCSBEkogYAYiUqwXae0TEsPf1yEcU8UdHbeSx2ocztgMNqCR/PXBHFqlDl+Q7kO5XRZzSEmCAIgkgVJKIGACV5wiq07jjM03JjudFKVI8iJ8pYJYp5osoKHHDaUyOitPxQDGrnEQRBEKmCRNQAwKg/SY7aWM7zfNTteZ4X4wziaecxT5RQiRJeY7axnFWihqn8UAANISYIgiBSB4moAUCePX4R1SETUSEe8AejiyhvIIRgSNgm32k1nFjORr6k0hN1vkfwglWFVynKoSHEBEEQRKogETUAYFUhozPwgEhREWuFHmvlAcLsPKOJ5WIlKt+eMhHVHxZy7JzkUDuPIAiCSBUkogYAUmstELMtx+hU5SbFEmBsZZ7bYYXFwkktxBitwNY0RBwwAZgXRUR1kIgiCIIgTIZE1ACAiYcQb9y0HVGJitGWk5vKAYjtPJ4H+qMknkuVKAec4uo8cxPL2fFZmKccqkQRBEEQqYJE1ACAeaIA4yvt1JWZ/hjCxuOVTOXqY+rFHPA8j7ZemYiypyax3EglqotEFEEQBGEyJKIGADarRcxg6jXgiwqFeFFUsOpNLPHlEStRglCxWji4wqJIz1ze6wuKrbuyfCknynRPVPg9u2yRIqqEjOUEQRBEiiARNUDIE43esUVUtzeA8EI7VBcLK9qMGsvzHVKYZawVeiwjymmzIM9uTZknig1QjlaJIhFFEARBmA2JqAGCOw4RxapQLrtFFBlGjeUFTrmIkgztWrTJ/FAcx4kiyuywTSYAWWVMDnt/8qoYQRAEQZgBiagBQl4MQSOHpZUX59nhsrN4hOgCg1WiClyRIkpPuDE/VKlbSFQX23kme6LEdp49shJV6LKL/0/VKIIgCMJMSEQNEMTATQOeKCYmSvIcovCId3UeAOSF23kendeylXnlBWERxSpRMQRbvPRFEVFWC4eisPAjEUUQBEGYScZF1GOPPYba2lq4XC7MmjUL+/fvj7r9tm3bMHbsWLhcLkycOBEvvfSS4vnnnnsOc+fORXl5OTiOQ0NDQ8Q+jh8/jm9961sYNGgQioqKsGjRIjQ1NSm2qa2tBcdxiq/7778/6febKuJp53X0CeKmOM+OvHALLJYnSrOdZzfWzmOVKKctNWNfWBUtT0NEAZRaThAEQaSGjIqorVu3YvXq1Vi3bh0OHTqEyZMnY968eWhubtbcfu/evVi8eDFWrFiBw4cPY8GCBViwYAGOHDkibuPxeHDZZZfhgQce0NyHx+PB3LlzwXEc9uzZgzfffBM+nw/XXHMNQiHlzf3ee+/FuXPnxK/bb7/dvDdvMqwqZEREMTFR7LaLwiOWJ6onHHEgN5azlXp6x2yXxRsASF1ieZRKFCA3l/s0nycIgiCIRLDF3iR1PPTQQ7jllluwfPlyAMDGjRvx4osvYtOmTbjrrrsitn/kkUcwf/583HnnnQCA++67D7t27cKjjz6KjRs3AgCWLFkCADhx4oTmMd98802cOHEChw8fRlFREQDg6aefRmlpKfbs2YM5c+aI2xYWFqK6utq095tK3HG08+SeKLuVA2DcWM6EEyAJN/3VeeG5eWIlKrUiSrcSRSv0CIIgiBSQsUqUz+fDwYMHFaLFYrFgzpw5qK+v13xNfX29YnsAmDdvnu72Wni9XnAcB6fTKT7mcrlgsVjwxhtvKLa9//77UV5ejqlTp+JXv/oVAoHopm2v14uuri7FV7owOssOkFbnleTZxRZbatp5wmDgsnxBxIiVKBPbef5gCIFwXoPW6jxAJqJ6SUQRBEEQ5pExEdXS0oJgMIiqqirF41VVVWhsbNR8TWNjY1zba3HppZciPz8fP/nJT9Db2wuPx4Mf//jHCAaDOHfunLjdj370I2zZsgWvvvoqbrvtNvzyl7/Ef/zHf0Td94YNG1BcXCx+1dTUGD6vZHGJq/Piq0RJ+VLGVufJjeVuZ/RjtrNKVL5ydV4wxCNgkpCSV9D023nC8Tv7YgtMgiAIgjBKxo3l6WbQoEHYtm0b/vrXv6KgoADFxcXo6OjAtGnTYLFIl2P16tW44oorMGnSJHzve9/Dgw8+iN/97nfwer26+16zZg06OzvFr1OnTqXjLQGQqkLxeKJKZJ6omJUoX7ScqOgRB2pPFGBeNUp+3lqz8wD5EGLyRBEEQRDmkTFPVEVFBaxWa8SquKamJl0fUnV1dVzb6zF37lwcP34cLS0tsNlsKCkpQXV1NUaOHKn7mlmzZiEQCODEiRMYM2aM5jZOp1PRJkwnYjvPiCcqLCaK8uziyjZvzHZe2Fju1Eos167wyIcPA0qR4wuEELZKJQWLS3DZLeA4TnMb8kQRBEEQqSBjlSiHw4Hp06dj9+7d4mOhUAi7d+9GXV2d5mvq6uoU2wPArl27dLePRUVFBUpKSrBnzx40Nzfj2muv1d22oaEBFosFlZWVCR0r1cQyecthba0St0P0ERke+yI3ltv1K1GhEC+tzgurJZvVAktY55hlLo9lKgdoCDFBEASRGjK6Om/16tW4+eabMWPGDMycORMPP/wwPB6PuFpv6dKlGDp0KDZs2AAAuOOOO3D55ZfjwQcfxNVXX40tW7bgwIEDeOKJJ8R9trW14eTJkzh79iwA4NixYwCEKharWD311FMYN24cBg0ahPr6etxxxx1YtWqVWGGqr6/Hvn378NWvfhWFhYWor6/HqlWr8N3vfhelpaVpuz7xEE9OVGevlBPlMtrO0zCWR4s46Or3i/P5SmQlJ4fNgn5/yLTRL9GCNhk0hJggCIJIBRkVUTfccAPOnz+PtWvXorGxEVOmTMHOnTtF8/jJkycVPqXZs2dj8+bNuOeee3D33Xdj9OjR2L59OyZMmCBus2PHDlGEAcCNN94IAFi3bh3Wr18PQBBWa9asQVtbG2pra/HTn/4Uq1atEl/jdDqxZcsWrF+/Hl6vFyNGjMCqVauwevXqVF6OpMiLsVJOTqdsdR4zlkeLOAiFeLHaVKCRWK5ViWoNt/IKnTaFF8phFUSUWZ6oWEGbALXzCIIgiNSQUREFACtXrsTKlSs1n3vttdciHlu4cCEWLlyou79ly5Zh2bJlUY95//33R00fnzZtGt56662o+8g28gyuzvMHQ+KYluI8O1xixIG+qPHIhFm+wYgD5odiK/MYDpsVQMC0dh6rRDkNiKgOijggCIIgTOQLtzpvoOI2UFEClNWYInklKor4Yn4om4VTmMOjRRy0qUzlDPZ6s9p5kidK/0eZKlEEQRBEKiARNUAwWoli1ZhClw1WC2fIE+WRZUTJV8C5o7Tz1CNfGGanlsca+QJIs/O8gVBMkUkQBEEQRiERNUCItlJOjjwjSv66aOKCzc2T+6EAeU5UZDtPPfKFYfb8PCOr8wocNnFVIK3QIwiCIMyCRNQAgVWFYq2yY0N4WYvLSMSB1tw84Zj6wk2qRNkVj0ujX8ypCLGVgdEqURYLhyIxcJNEFEEQBGEOJKIGCNGqQnKklXlChcjI6jytkS/CMYV/ewMhBFmeQZjWHh1judXkSlR4P84oniiAfFEEQRCE+ZCIGiBIYiiEkErQyJHPzQOkNpg/qD/PTisjCpCEGxBZyVIHbTIcJhvLWSUqWjsPEOIcABpCTBAEQZgHiagBglzQ9Af0q0qsEsPM1vI2WL+OsBHbeQ6liHLaLGA+816vsgKmtzrPbBHF3mu0dh4AsZ1HlSiCIAjCLEhEDRBY3hMQ3VyurkTJhZBe2nmPxtw8AOA4ThRW6mO29AiDmlO9Os9rIGwTkA8hJhFFEARBmAOJqAGCxcJJJvEoIqpLllYOCEKICTA9X5TUzosUKlrRCoFgCOc6+wEAw0rdiu0d4WOZFrYpGsvJE0UQBEGkFxJRAwgjK/RYJYaJCkASQnqvY8byAldkwL2Wof1cZz+CIR4OmwWVhU7F9qKx3KyxLwbbeTSEmCAIgjAbElEDCCNZUeqcKABwhVtssSpR6nYeoB24ebKtFwAwrDQPFgun2N7snCgjEQeA9H47woZ3giAIgkgWElEDCCMxB0xEFMkqUS5WidIRX2x2nnp1nvKY0mtPhUVUjaqVB6QgsTxgzBNVVeQCAJwNtxkJgiAIIllIRA0g8mKIIQDo7BMEEcuJAiQBotfO6+7XXp0HSCKqzy8JN1aJuqAsUkRJq/PMCdvsN1iJGlGRDwD4rMVjynEzRSjE489vn8Kn53syfSoEQRBfeEhEDSBitfN4npcSy2XtvFijX6K189hrPV5ZJaq9DwBQU5YXsb35lahwTpQj+o9ybVhEne/2orvfXF/Ua8easWhjfVoE2q4Pm/Aff3kX6//6QcqPRRAEQUSHRNQAwh3DIN7nD8IfFII4S+TtPLsU1KmFR2d2HiAJqz6Ndp5mJcpkY7noibLFyIly2VFRIJjcT7T0mnJsxrYDp7H/RBtefr/R1P1q8danrQCANo835cciCIIgokMiagAhrs7TqUSxjCibhVOEc7pitPN6dGbnAdoRB6dEY3m0dp7Jq/Mc0UUUAIwMV6M+bTG3FcbM+j3e6CN3zODg5+0A9AUvQRAEkT5IRA0gtASNHPnKPI7jIl6XkLHcrjSze7wBtIbTyi8o1xdR5q3OE/YTqxIFpM4Xxa4r846lil5fAO+f7QIQfdYhQRAEkR5IRA0gRIO4zuo8VomSr8wTXheOONAxe0eNOHAqIw5OtQtVqOI8O4pc9ojtzRZRXr+xsE0AGDEoXIk6b66I6upPTyXqnVOd4qBnqkQRBEFkHhJRAwituAE5naq0coboidJ4nTcg+ai0c6KUxzzVJpjKtfxQgOSJMrudl2egnZeqShQL8OxJcSXq0Ml28f/NWt1IEARBJA6JqAFErORxcWVeRCVK/3XyVXf5GkJFnU3F4g20VuYBgNNu3tiXQDAkCjwj7byRMhHF83zSxweEFY9dYfGU6krUgRNt4v97qRJFEASRcUhEDSDcMbxNkidKORQ4mrGctfLy7FbYrJE/LupYBTFoM0YlyozVef0yIWakEnVBuRsWThA753vMWd3m8QXFFlsqRVQoxIumckC4fuy4xMClzxc0TfATBGE+JKIGELFyopgnSl2JihZx0BPFDyV/vE8tojRW5gHm5kTJxSLbbzScNqu4YvAzk3xR8ll8qRRRx8/3oKs/AJtsjI5ZvjIiOznW2I3J976MDX87mulTIQhCBxJRA4g8NsdOt52nLaKYsTxaJapAI95AOGZYuIUTy5mxXNcTZaKI6peZyuWrDaNhti+qSxbcmUpP1IFwFWrqBSXiY7RCb2DzwblO+AIhHJZ54QiCyC5IRA0gpHaezuo8PRHl0DeWd8eoRIkRB16h7cCM5brtPJuJ7TxRRMVu5THMFlGdvempRLFW3qwR5WI1Sm81JTEw8AeENp5ZizAIgjAfElEDiFjG8i5ZTpQcI56oWO28Xl8QLT0+9PmD4DhgaIm2sVxcnWdCFYW1H2MNH5YzksUcmFaJkoSTxxdAKEU+JSaipg8vFb9fZC4f2HjDHzTo+0wQ2QuJqAGEO2lPVLR2nraIypOtzmMr8wYXucSKkxqn3bxKVF8WVKLkniie12+lJkNrj1c832kXlIr+L6pEDWz84QoUxVkQRPZCImoAESt5vFOnEiVFHGgZy4V96bbzZDlRp9ujr8wDzM2JSqad93mrx5TVbZ19ymHGqfBFsSrURVUFKHbbY846JAYG7IMGtfMIInshETWAiBW22dGrkxPlMFKJ0hYqbrsgrgIhHsfDK96iiigzV+fFkVbOGFKcB6fNAn+Qx5n2vqTPQW4sB4Aer19ny8Q5eFJq5QFSNc+MliiRvbBKFK3CJIjshUTUACIvygDiYIgXTeLFecqcKGlcTOTrWLtKa4SLcExJXB1rFOa66a3MA5TG8mTzb5joi8cTZbFwYjXKjEHEXX3KylMq5ucdPMFEVBkAIaoBUOZkEQMPqkQRRPZDImoAwTxRvmAIAZXnqLvfD6ZZIj1R+h6btvAw4bJ8R8RzgCCK7FZhtdixxm4A+mnlAOC0CufI80L1KhmY4Taedh4gtfTMmKGnrkTJE97NwBsI4t0znQCkSpT4/aJK1IBGElH0fSaIbCXjIuqxxx5DbW0tXC4XZs2ahf3790fdftu2bRg7dixcLhcmTpyIl156SfH8c889h7lz56K8vBwcx6GhoSFiH8ePH8e3vvUtDBo0CEVFRVi0aBGampoU27S1teGmm25CUVERSkpKsGLFCvT0JF+5SCXyqpB6pR3z7rgd1gjTtytKJao1LKJKdUQUIFWCPm+LnhEFQHHsZD9hJ9LOA+Izl/uDITR19es+H+GJMrmdd+RMF3yBEMrzHagtF64rG3FDFYqBDYs48Ad5SqcniCwloyJq69atWL16NdatW4dDhw5h8uTJmDdvHpqbmzW337t3LxYvXowVK1bg8OHDWLBgARYsWIAjR46I23g8Hlx22WV44IEHNPfh8Xgwd+5ccByHPXv24M0334TP58M111yDUEi6Kd100014//33sWvXLrzwwgv45z//iVtvvdXcC2AyTpsFLHNSLYjae7WHDwOSCPIGQhFL9FklqjyKiGKmc1bp0ksrB5QiKlmvRyLGciA+EXXXX97DpRt2473TnZrPd6lElNntvIOfC/Pypg0vFQNFnVSJ+kLgC0rfX/JFEUR2klER9dBDD+GWW27B8uXLMX78eGzcuBFutxubNm3S3P6RRx7B/Pnzceedd2LcuHG47777MG3aNDz66KPiNkuWLMHatWsxZ84czX28+eabOHHiBP74xz9i4sSJmDhxIp5++mkcOHAAe/bsAQB8+OGH2LlzJ/7whz9g1qxZuOyyy/C73/0OW7ZswdmzZ82/ECbBcZxuzEFreFZceYEz4nVyEaKubsRq5wHKCpjTZsGgwshjMKwWTgyLTPbGkEjEASBlRcUSUTzPY8/RJvA88P5ZHREVFk2FLkFImh24yVbmzQi38gBZJYpE1ICGVaIAElEEka1kTET5fD4cPHhQIXYsFgvmzJmD+vp6zdfU19dHiKN58+bpbq+F1+sFx3FwOqUbvcvlgsViwRtvvCEep6SkBDNmzBC3mTNnDiwWC/bt2xd1311dXYqvdCOOfokQUeGKUkGkGJKLEHUb0IiIcstEVE2ZO+YIFrNW6CUStgkAIyoKAABnOvqiVnM+b+0VK3isramGVaJYuKjHZBH1zilBvE2TiyixEqV//fr9NLg215FnqZEviiCyk4yJqJaWFgSDQVRVVSker6qqQmNjo+ZrGhsb49pei0svvRT5+fn4yU9+gt7eXng8Hvz4xz9GMBjEuXPnxONUVlYqXmez2VBWVhb1WBs2bEBxcbH4VVNTY/i8zMKtk1reKrblIqtEVgsnChv56/p8QfHf0UWUlCFVU6pvKmdIK/SSuzH0J+iJKnXbRXP9iVb9atThU9LMMiZC1ahFVLeJIqqz14/GsB9rbHWh+LiYWK5zY233+DDrl7tx238fNO1ciPSjFFFUiSKIbCTjxvJ0M2jQIGzbtg1//etfUVBQgOLiYnR0dGDatGmwWJK7HGvWrEFnZ6f4derUKZPO2jh6cQVSO09bDGm9ri2cK+WwWnQTywFlJSqaqZxhVuBmIhEHgND2FH1RUVboHT7ZIf5/q8cb8bw8NmJIWESZGbb5UbOw2nFoSR4KZRETYmK5TiXq+PkedPb58eYnLVSNymHklVqqRBFEdqJ/Z0wxFRUVsFqtEavimpqaUF1drfma6urquLbXY+7cuTh+/DhaWlpgs9lQUlKC6upqjBw5UjyO2tweCATQ1tYW9VhOp1PRJswE8jEsclpjGMRddgs6+5Rm5bYeqZUXrUWnbufFglWizFudF5+IAoCRFfloONURdYbeoZPRK1HdsniDwSUuAOZ6oj5qEkTU6KoCxePRxvQA0nXx+ILo6gug2K2d8UVkN35ZJYrS6QkiO8lYJcrhcGD69OnYvXu3+FgoFMLu3btRV1en+Zq6ujrF9gCwa9cu3e1jUVFRgZKSEuzZswfNzc249tprxeN0dHTg4EGpHbJnzx6EQiHMmjUroWOlC712XksUYzkgVXPkN2ZWfYkWbyC8VtbOMyCinKZ5opIQUTHM5X2+ID481y3+W8sTxYI28+xWlLmFa2SmJ+qjcO7WRVWFised9ugRB3I/3JmO5FPZicwg//0wY9YkQRDmk7FKFACsXr0aN998M2bMmIGZM2fi4YcfhsfjwfLlywEAS5cuxdChQ7FhwwYAwB133IHLL78cDz74IK6++mps2bIFBw4cwBNPPCHus62tDSdPnhRX0R07dgyAUF1iVaSnnnoK48aNw6BBg1BfX4877rgDq1atwpgxYwAA48aNw/z583HLLbdg48aN8Pv9WLlyJW688UYMGTIkbdcnEdw68/PEqAKddp6YFSWvRBmINwCAfNlImGjxBgxHeHVZ8qvzEgvbBCRzuZ6Ieu9MpyKbh7VD5bCgzaI8GwrCq/PMjDj4qEnIJYsQUbboEQfyx8929GH8kCLTzolIH/JKlJcqUQSRlWRURN1www04f/481q5di8bGRkyZMgU7d+4UzeMnT55U+JRmz56NzZs345577sHdd9+N0aNHY/v27ZgwYYK4zY4dO0QRBgA33ngjAGDdunVYv349AEFYrVmzBm1tbaitrcVPf/pTrFq1SnFuzzzzDFauXIkrr7wSFosF119/PX7729+m6lKYRszVeTqCSGt4sZGVefLXAtHTyhnmrc5LzBMFxM6KOhxu5U2uKcE7pzrQ5vGB53lFW5MFbRbn2cWsLDPbeR83s0qUTjtP5/rJv4fnOqkSlauQJ4ogsp+MiigAWLlyJVauXKn53GuvvRbx2MKFC7Fw4ULd/S1btgzLli2Lesz7778f999/f9RtysrKsHnz5qjbZCN59shVdjzPi605vXaeS2Mem1ERxYYQl7rtCgO0Hk6rND8vGbwJrs4DgNoKoWLW5vGho9eHErfyPTJT+ZVjK/HOqQ4EQnyEv0g+V7DQZBHV2uNFS48PHAeMqlSLqOgDiJXtPP20dSK78QWlSiitziOI7OQLtzpvoOMWK1HSzbzbG4A//Ac5ViWqP4FKFGvnGVmZB5hXiepLohLldtgwpFgwgzec6lA8x/O8aCqfNaJMDNJsUa3Qk9p5drGdZ9bqPNbKqyl1KyIkgNgDiPtU7TwiN/HJqk8koggiOyERNcCQVufJDOLhVl6+w6rrH8rT8ES1GhRRw8I+qIuHFhs6R2l1XrI5UcKNxZmAiAKAr48X2sb/s/+k4vFznf1o7vbCauEwcVgxKsLVO/UKPWYsL86zixEQZlWi2Mo8tR8KiD2AmNp5AwO/vBJF6fQEkZWQiBpguLVW2cVYmQdI89jkIqrdoLF87vgq/Pm2Otz9jXGGztGs1XmJDiBmfPfS4QCAVz5sVogN1sobW10It8Mmisg2VSWqU2zn2VDoFNp83kDIlBEdkogqiHgu1gBiZSWK2nm5Cq3OI4jsh0TUAEOzEhVjZR6gHXFgtJ1nsXCYOaIsaiCnHLNyopIxlgPA6KpCzBpRhmCIx//sl4JRmal86gUlACQR2aKuRMnaefIVimbEHHysszIPkCWWx8iJAoDGrn4E6Aack9DqPILIfkhEDTCitfO0Rr6Ir0uinRcvDpOM5cnkRDGW1AnVqC37T4o3rcNhj9S0C4R5deW67TzJWG6zWsSKWLItPZ7ncSxKO88ZRzsvGOLR3B0Zz0BkP8rVeSSiCCIbIRE1wNDKiRLbeVHEkNpY7g+GxHaV6SLKhHZeIBgSPSOJVqIAYO74alQUONHc7cWuD5rgC4Tw3hlh6O9UJqJitPPYHL6CcEvPqIhq6urHydbeiMfPd3vR2eeHhZNCQeWIKyl1qhPqjDDyReUmNICYILIfElEDDJYeLl+dZ6Sdpw7b7OgVBALHIWL5f7JEE1Fvfdqqm90kR74yLZlKlMNmweKZwqDo/67/HB+e64IvEEKJ247acsEwz65bi0fdzhOucVGecM3ZKj6jImrhxnpc9cg/0dSl9C2xKlRtRb7mexMjDnRurOq0eoo5yD14nqcBxASRA5CIGmBIY1+kP7qSiNJv50nz2ITXMT9UqdsBq0V/bl4i6HmiTrX14sYn3sL8h/+Jl947F3Uf8lYWM6onyuKZF8DCAfWftmLbQcEbNbWmRAzWlNp5qogDWTsPkKIejMQc9PuDONnWC48viP9tOKN4Tkwqr4xs5QGyiIMYlSgmtijmIPcIhnjIZ0ebsViBIAjzIRE1wJDaebJKlJF2nqoSJc7NS8HwWqfO2JdT7UJryxsI4QfPHMLjrx0HL7+TyGBCwWmzwJKkyBtSkocrxwlxB8/sE+IOWCsPkLfzlJUocXWe2M4Lj34xUInqkg0vfu6QUkR9HGVlHiCLOAgENa8P+x6ODI+2IRGVe6j9gtTOI4jshETUAINVlDSN5dFW5zmUZuV2j3CTj2ZGTxS9iIPOcAuRGc8f2HkUd/3lPcUqJQa7qchHziTDknDcAdMkbGUeIF23CGN5v44nykAlimVMAcDRxm58eK5L/LdoKq/WqUSFv8c8r8wSYjARdWElE1HUzss1/AHl95VW5xFEdkIiaoChaSz3xF6dJ5mVhdcxE7XZpnJAf3VeR7iy85WLBmH9NeNh4YCtB05h2VP7FR4vAOjzhRTnnSyXjarA8LAHiuOEmXkMdt3aen3iUGJvICi201g7j3mijEQcsCoWY/thoRrF83zUeANA2b7s16hQsO/9hWFTOlWicg9vUPl9JU8UQWQnJKIGGOLYF7/Q6gmFeFEQVUQzljvU7bxwvEGU1ySKnrG8vVc4ZonbjmVfGoE/3DwDbocVb37Sir+oWl79JleiLBYO350lVKNGVxaIwgiQWpo8D3SEz5FVkjhOEk/MExVPO4/NM97ecAbBEI+znf3o8QZgt3KoLY9cmQcIIoq9TivmQKxEDQpXomh1Xs6hrjBSO48gspOMDyAmzIWJimCIhz/Io8cbQLh4glIjnigfq0SFRZTJK/MAfWM5a+eVhNtjXxtbhcUzL8CTb3yG023KKAAmHpI1lctZUjccLR4vrrioUvG4zWpBqduO9l4/Wj0+lBc4RRFU4LSJnqz42nnC66ddUIpPmnvQ1OXFW5+2itW5ERX54nVSw3EcnDYL+v0hzTaPVIkSRFRHrx+9vkDEDD4ie/GrfjfIWE4Q2QlVogYY8sykPl9QNJUX59lht+p/u/VW56Wynaf+dM1iFUpkZvZBhUIr7bwqMJIJBbMqUYBwDdZcNQ51F5ZHPMdW6LWEr6d6ZR4gjzjwIxYsHqGiwIGrJw0GIBjMP2rUD9lUnysQeQ1DIV6sRFUWOVEYNruTLyq3iDSWk4giiGyERNQAw2GzwBaujPT6A4YyooDIsS9tBl+XCCxxW7+dJx2TDf89r4oXYDlRZnmiYlGmWqEnZURJIoqtzvN4Y7de5CLsuqlDAQA7j5zDu6eFoM9YIopV4NQxB/KbbZ7diiEleQDIF5VrqH83SEQRRHZCImoAIh/9Io18MSai+lQiKhPGcnklivm41HPr+lVZSKmmQrVCT0orl1pk+QlEHBTl2TF9eClqyvLg8QXxtyNCPpZevAFDrxIlD9p02a0YUuICQCIq16CIA4LIDUhEDUDkK/RY3lOsqAJXOOKgL2xIb5WFbZqNnrFc8kRJx9Rr55ltLI8Fu36tUdp5rBLV02+gnRc2phe57OA4Dt+aIlSjmH8tZjtPJ3CTrWJ02iywWjipEtVJ7bxcQu2JoogDgshOSEQNQJiBuM8fNJQRBUiVDZ4XWgftKWznGVmdxxgUbue1ebxivAAgS+VOczuvVWznKYM2gfjGvkgZU8JrFoRbeoBwfYbrrMxj6A0hZv9m4pLaebmJuhKV7LBugiBSA4moAYg8cFOsREUZ+QIoDennu70IhAVLKipRTo3VeTzPa7bzyvId4DihQsNEFiBVYFxpqkTpt/OS9ESFXz9yUIGYTTVqUEHMUTtMPKq9Miw/i30/qZ2Xm7CAWfZjQJUogshOSEQNQOSjX4x6ouxWyZB+ul244eY7rEkN99XDYY0c+9LvD4n/lhvLbVaLGLMgb+kx70+6KlHi/DwPa+dJ7ThGQbgS1W2onRfZDvxOeBDyzBFlMV+vV4li7TyxElVMlahchP0uMGFOniiCyE4oOGYA4pYby+Noy+XZrej2BnAmfMNNRdAmIFudJ2tRsCqT3cohX1VdqihwotXjE+MFAHnbKj2fA/TbedKvkOiJ8gbA87w4wFgLrdV9i2bU4MJBBRg3uCjm+egNIWbiUqpESZ6oWOdkFi09Xtz23wdxw4waLLqkJuXHG4j4wmGbhS47uvoDtDqPILIUqkQNQPLk7bweY8ZyQJrJxqoWZSmYmwfIVufJbgwsI6o4zxFxo68oZCv0IkVUuipR6nZeV5R2XohXrpLTQmrnSSKM4zjMqC0TV/lFw6VTiRLzs8Lfy+piFzhOuNatqgHKqeKNj1tw8PN2/L99n6fleAMR9rvBfHYkoggiOyERNQBhlah+f5yVqHBVh4moWC3ARNEylnf0RZrKGcxcLm/nqQ3UqYYJys4+P/zBkGY7zu2wiuNYoqWW8zwvVbJcke/XCFLEgU4lKnxd7FYLKsMrHNPV0mNiVz2wmTAO80QxERUM8QiQuZwgsg4SUQMQdgPt6g+IFR4jgohVL1g7LxWmckAmooIh8LzQtmDnWaohoirEtPBIY7kzBZ4tLUry7KLJt93j02zHcRynaOnp0e8PibPR5K+PB91KlKqdB6R/hR7LGGv1eMXvLxEfak8UQCv0CCIbIRE1AMmzC394z4QN4hZOadbWw6USUamINwCgmAnHKinydp6ainAlpUXDWJ6XJhFlsXBiNaqlx6e5Og+AIRHFqlAWDhH+L6OInih12KbGOBxJRKUnK4r52/r9IfT6yBCdCKwSJW/t0go9gsg+SEQNQFg771S7MLS3LN8Rc8k8IIkoyROVIhElm+HHPl0baudpeaLSlFgOSNW8Vo9X09MEyAM3o4goWbxBokZv9r7VN1YmotxyEVWc3pgDeRuvLU0+rIEG+3CRZ7eKq2bJF0UQ2QeJqAEIq0KwSpRRMZSnGkKcKhHllFWifKpKVIlGe6tCI7W8P82VKECqzJ1u7xNztNSeJjHmwEAlSl3FigcpJ0q7nefSaud1predBygXAxDGYZUoh80iy1Wjqh5BZBskogYgrApxrpMZxI2tslMLkrIUeaI4jotYodcRbgGVagg3rfl5YthmWkWUcB0/a/EAAKwWTlHxAeSBm9EqUZEZU/Ei5USpx77oe6LOpKmdJxdRZC5PDPZ7YbdaRN+fOuGfIIjMQyJqAMJuoGxKilFvk7o1lqqcKCByhZ7kidJo5xVGjn7py2A779Pzgogq1mjHGfFEdeq0AuNBbwAxq9DJxd3QsIg6l652nofaecnCKlFOm0X8wEHtPILIPkhEDUDUy/6NRhUk+rpEkK/QA6A58oVR5pZGv7Cbcr9G2yrVsOvxWUsPAKDIFSmCmIjqjuaJSjLeANAfQKzVzhsc9kQ1d3tT3hLyB0OiSASAFg+18xJBWYmidh5BZCskogYgbAAxI9bcPIZakKTKEwVI5nJmjBbbeRotRPnoF+ax0RILqYZdx5NtgmFfK56gwMAQYq2MqXjRH/sSuTqvLN8h+mqaOlMrauTzDQGgjdp5CcESyxWeKFqdRxBZR8ZF1GOPPYba2lq4XC7MmjUL+/fvj7r9tm3bMHbsWLhcLkycOBEvvfSS4vnnnnsOc+fORXl5OTiOQ0NDQ8Q+GhsbsWTJElRXVyM/Px/Tpk3DX/7yF8U2tbW14DhO8XX//fcn/X7TgdqnY7SdJ/fR2K2cIqPGbKRKlHDTj9bOA6SWHjOXsxtKOo3lTFSyjCetcy00sjpPzJhK/Po6dQYQa7XzOI4TW3pnUtzSa/co5wamKyV9oKGoROl8rwmCyDwZFVFbt27F6tWrsW7dOhw6dAiTJ0/GvHnz0NzcrLn93r17sXjxYqxYsQKHDx/GggULsGDBAhw5ckTcxuPx4LLLLsMDDzyge9ylS5fi2LFj2LFjB9577z1cd911WLRoEQ4fPqzY7t5778W5c+fEr9tvv92cN55i1NUZo8Zy+evK8iPHr5iJtOJICNyM1s4D5IGbgi+KtQHTWYmqUIlRrUoSq0RFN5ab0M4zOPaFwczl51K8Qq9V1b6j1XmJwTxRditHq/MIIovJqIh66KGHcMstt2D58uUYP348Nm7cCLfbjU2bNmlu/8gjj2D+/Pm48847MW7cONx3332YNm0aHn30UXGbJUuWYO3atZgzZ47ucffu3Yvbb78dM2fOxMiRI3HPPfegpKQEBw8eVGxXWFiI6upq8Ss/P9+cN55izKhEpWpuHkNuLO/zB8VP3nop6dIKPa9COKQ34kB5TbQqSSwc0UjEQaJp5YAkHvXaeWpxWakRE5EK1EZyMpYnhsJYbiNjOUFkKxkTUT6fDwcPHlSIHYvFgjlz5qC+vl7zNfX19RHiaN68ebrb6zF79mxs3boVbW1tCIVC2LJlC/r7+3HFFVcotrv//vtRXl6OqVOn4le/+hUCAf0bIwB4vV50dXUpvjJBhIgy6G1yyV6XSlM5oBRRrJVnt0ZGBjDk7Ty5cJBnTqUatUdM0xNlKGzTjHaedsSB1M5ThYAaqJCZARNNrH1IEQeJoWznkYgiiGwldaaXGLS0tCAYDKKqqkrxeFVVFY4ePar5msbGRs3tGxsb4zr2n//8Z9xwww0oLy+HzWaD2+3G888/j1GjRonb/OhHP8K0adNQVlaGvXv3Ys2aNTh37hweeugh3f1u2LABP//5z+M6l1QQscrOqLFcJki08prMRMyJCoYUI1/0Wojy+XnMVO60WWAxkMRuFkUuG+xWTpp7p9GOKzRiLDcjbDPWAGJVJUqKXkhtS4iJplGVBTjT0Yc2jw88z6e0NTwQ8SnCNskTRRDZSsZEVCb52c9+ho6ODrzyyiuoqKjA9u3bsWjRIrz++uuYOHEiAGD16tXi9pMmTYLD4cBtt92GDRs2wOnUFiVr1qxRvK6rqws1NTWpfTMayKsQdiunuRRfi7wMVKK8/pC4Mk/PDwUoPVGZCNoEBIN2eb4TjV1CaKV2JUp4LPWeqPCN1cDqPEC+alBp/DYbVom6qKoA//joPHzBELq9gaTe6xcRzYgDf3Z4ooIh3tAYKYL4IpAxEVVRUQGr1YqmpibF401NTaiurtZ8TXV1dVzba3H8+HE8+uijOHLkCC6++GIAwOTJk/H666/jsccew8aNGzVfN2vWLAQCAZw4cQJjxozR3MbpdOoKrHSSl6BBXP26VOKU5UQxU3lpFBGl1c5Lpx+KUZbvEEWUViUp3ymcUzRPVGdf8p4osZ2nM/YlQkQZCAE1AyaiBhfnId9hhccXRGuPj0RUnGiPfcl8Jer2/zmMgyfa8PLqy1O6epcgcoWMeaIcDgemT5+O3bt3i4+FQiHs3r0bdXV1mq+pq6tTbA8Au3bt0t1ei95eIePHYlG+davVilBI/49UQ0MDLBYLKisrDR8rU1gtnFjpMboyD0i3iJJGWcjbeXooK1HpTytnyE36WhW+wnAlSs8TxfO8FHFgQiXKH+TFFPdgiBcrGHrtvGghoGbAVueVFzjENnIbBW7GjdjOs1oi0v0zyZ4Pm3C2sx+fhVP7CeKLTkY/SqxevRo333wzZsyYgZkzZ+Lhhx+Gx+PB8uXLAQhRBEOHDsWGDRsAAHfccQcuv/xyPPjgg7j66quxZcsWHDhwAE888YS4z7a2Npw8eRJnz54FABw7dgwAxBV2Y8eOxahRo3Dbbbfh17/+NcrLy7F9+3bs2rULL7zwAgDBwL5v3z589atfRWFhIerr67Fq1Sp897vfRWlpaTovUcK4HVb4AiHDK/MAiDO6gNSLKPmNgVVHorbzCoXzafP4xO3T3c4DJDEHRA/b7PMHEQiGYLMqhV6vLyiKnuTGvkj79QaCcDtsYhUKiFxckK5KFMuJKst3oCzfgZNtvYqZh4Qx/AF52GZ2eKL6/UF4wu3ivixpLRJEpsmoiLrhhhtw/vx5rF27Fo2NjZgyZQp27twpmsdPnjypqBjNnj0bmzdvxj333IO7774bo0ePxvbt2zFhwgRxmx07dogiDABuvPFGAMC6deuwfv162O12vPTSS7jrrrtwzTXXoKenB6NGjcLTTz+Nb3zjGwCEttyWLVuwfv16eL1ejBgxAqtWrVL4nbIdt92KDvjj8jalsxIlN5Z3Gmjnlec7YQmPfjkbHqSbCRElvy5alSTWzgMAjy+I4jyliGKmcpuFS6odyW6sgLBCz+2QMqKE55XHTdfqPBauWZbvEGMpaIVe/PiCWqvzMitc5HEVJKIIQiDjTe2VK1di5cqVms+99tprEY8tXLgQCxcu1N3fsmXLsGzZsqjHHD16dERCuZxp06bhrbfeirqPbId5YoyuzJO/BkijsTwgN5brH9Nq4VCW70BLjw+n24WWbKbbeVqeKKfNCofVAl9QqLCpt5HiDSKHF8eD1cKJKwXZzVUetKned6w2oxmEQrw49qU83ym2kqmdFz+sdZdNlSiFiPKRiCIIIAvGvhCpQRJRWVqJkn26bo8x8oXBWmmn2oXU7UwYyytkHrNCnVWP4ko4DcEiDR9O/vOLeghxn8bIF4YRw3uydPX7xVZlab4dZWJAKlWi4sUnTyy3SytZM4lcRKlDXgniiwqJqAGK2y7cpOOpKBXn2ZFnt6I4zx61KmQGck9UZy9r50U/Jluhd6qNVaIy185z2iy6x5f8R5FxAizeIJmMKIZTlVoebSizfDAyz/NJH1sL1sordNrgtFnFnz1KLY8fRWK5rPWdSeTfx16qRBEEgCxo5xGp4ZrJg9HS48WXRlUYfk2ew4qtt10Ku9WS8hwYpzyxvC92ThQgVaJOZ7ASVVkknEO0Sl20lXBmjHxhqJe+9/qE46njDQCpncfzwg0wPwXL09lNlgW1su+Xep4eEZtszIlqJU8UQURAImqAsqSuFkvqauN+3aRhJaafixbySpTxdp40Pw9QriZMFxOGFOPWr4zExKHFuttIJu7IG43oiTIhN0k9hLg/SjvPZReEcTDEw+MNpEREMQM5E5jsv2Qsjx9/FiaWt1M7jyAiSOgv6alTp8BxHIYNGwYA2L9/PzZv3ozx48fj1ltvNfUEiYGJYnUea+fFaD2ydh4jE5Uoi4XD3d8YF3UbI+28ZOINGOohxH0+/SR3juNQ4LShs8+Pbm8AqUg7k0zlwveR+fFaqZ0XF6EQL44WyqbVea1kLCeICBLyRH3nO9/Bq6++CkCYZ/f1r38d+/fvx09/+lPce++9pp4gMTBhN4aOXr/o9SgxaCxnZGJ1nhGitfM6TRj5wlAPIRbbebG8WilaodfmUVaipNV5PoRCqfFhDUT8stDfbEosl6+ypHYeQQgkdBc6cuQIZs6cCUAY5jthwgTs3bsXzzzzDP74xz+aeX7EAIW185rCI1TsVk6zDSVHLaIyUYkyQkGUIcRmeqKkIcSx23lA6gM3xXZegbKdFwzx4vsmYiNPJs+mxHLKiSKISBISUX6/X5wR98orr+Daa68FAIwdOxbnzp0z7+yIAQu7MTR3C59ui/Niz/hTt/MysTrPCIVO/WBLyRNlXjvPq4o40K1EuVI7+oVVKlg7z2GziO+TYg6Mw1p5AGvnZYcnShFxQO08ggCQoIi6+OKLsXHjRrz++uvYtWsX5s+fDwA4e/YsysvLTT1BYmDCbgziiq4YK/MAjXZejMpVpsiPUvFJxeo8NoSYLTvXuy4pr0SJ7Tzp+8TCXlt7aIWeUVjFyWrhYLXIcqIosZwgso6ERNQDDzyA//t//y+uuOIKLF68GJMnTwYgjFxhbT6CiIZDNVMuVrwBILSH5MkLLlvueaKksE0T23nqsM0YlahUjX5hN1l5NhllRcWPXzZ8GJBFWWQwbDMY4tHRJ7VkSUQRhEBCPYUrrrgCLS0t6OrqUgzkvfXWW+F2u007OWLg4lAJoOK82OGewugXpxhxoJWHlA1E9UTJxr4kS0TEARv7oleJcqS2EqXOiQIkX1QLiSjDeANSWjmArGjntff6IM9opdV5BCGQ0Ef5vr4+eL1eUUB9/vnnePjhh3Hs2DFUVqZi8TQx0FCLKCPtPEDKigKksSfZRmGUVXCsElVsQsQBu7lGtPMy4InieV67EkXtvLiRZ0QBymDaTNGuEsGUE0UQAgmJqG9+85v405/+BADo6OjArFmz8OCDD2LBggV4/PHHTT1BYmCiFlFG2nmA0lyercZyPU8Uz/NSTpQZEQeqmWrRZucB0fOrkqXXFxQrJfI0dyZ6qZ1nHN12XiCYspE9sVBnfVE7jyAEEhJRhw4dwpe//GUAwLPPPouqqip8/vnn+NOf/oTf/va3pp4gMTCJ9EQZm9U3SGYuz3NkqSdKp53n8QXB4pJMaeepKlH9MVbnFUYZjJwsTCQ5bRaFiKPU8vgRR76IlSjheoZ4IJChvC32/WUtRpqdRxACCd2Fent7UVhYCAB4+eWXcd1118FiseDSSy/F559/buoJEgMTdVCm0UpUhawS5cz2dp5KRLGgTYcshToZpMRyFrYZ3RMlVcjMvwG2ylp58qiKcpqfFzc+dSVK9ruSKV8UE1GDi/MAUDuPIBgJ/SUfNWoUtm/fjlOnTuHvf/875s6dCwBobm5GUVGRqSdIDEwcVuWNvsSAsRxQeqKy3ljeH1AkdctHvsTKxDKCOsk6Zk5UCtt5LCOqrED5faygSlTcyIcPA8qqbaaGEDMRNbREEFFkLCcIgYRE1Nq1a/HjH/8YtbW1mDlzJurq6gAIVampU6eaeoLEwGQge6IGFTjhslsQCPH4tKVHfNxMPxSgNTsvxuq8KKsGk0UaPqzM8iqj+Xlxw8I22e+IxcIpZk1mAlFElYZFlD9z/iyCyCYSElHf/va3cfLkSRw4cAB///vfxcevvPJK/OY3vzHt5IiBS2TEgdHVeTJPVJaKKJvVgolDiwEAh092iI93hb1IhSb4oYDIiINYlahoqwaTRWtlnvBv4fvV3utDkObnGYJVouQVKEeGs6JaVZWoEJ85QUcQ2UTCxozq6mpMnToVZ8+exenTpwEAM2fOxNixY007OWLgEhFxkG+0nSevRGWnsRwAptSUAAAaTnWIj0mVqOTjDYDI/KBMVqLUw4cZLLqC5wUhRcRGHXEARLZu0027SkQBQL+PRBRBJHQXCoVCuPfee1FcXIzhw4dj+PDhKCkpwX333YdQiH6xiNhErM4zWJ0ZXOyChRMEVLbmRAHA1AuEDDWFiBIzosytRHnV7TydSlR+CsM29USUzWoRhRTFHBjDpwrbBJQxB5mAVaIqi5zieVHMAUEkmFj+05/+FE8++STuv/9+fOlLXwIAvPHGG1i/fj36+/vxi1/8wtSTJAYedisHjhMqFHYrp5ttpKbE7cAjN05Fnt0KiyV5c3aqYJWoo43d6PMFkeewmppWDkSuzhPbeTrXkkUc9PtD8AdDonHZDPREFCCs0Gvv9aOlx4uLqgpNO+ZAxadVibJnNrVcGi7thMtuhT8YIBFFEEhQRD399NP4wx/+gGuvvVZ8bNKkSRg6dCh+8IMfkIgiYsJxglnWGwihxO2Ia7XaNZOHpPDMzGFwsQuVhU40d3tx5GwnLqktM3VuHiDzRAWC8AdDYoaQ2679a80iDgBhfp7RbC4jtEYRUbmSFfXp+R4cPtmB66YNNWX1ZKKoV+cBmU0tl6fRl+bbkWe3ors/QCv0CAIJtvPa2to0vU9jx45FW1tb0idFfDFgn7SNtvJyCY7jJF9U2FwujzgwA9ET5Q8pwg9dOiGkdqtFFF5mj37RM5YDuZNa/pO/vIv/s+0dvHbsfEbPQ8sT5chgO6/HGxBXDJbnO8VKJ1WiCCJBETV58mQ8+uijEY8/+uijmDRpUtInRXwxYJ+ujcYb5BpTLigBIPmiOk2POJAqUWyFnoWL9JvJKXAKxzbbFxWtnSdVorI3cDMU4vHemU4AwDunOzJ6Llqr85wZXJ3Hvrd5divyHFbRc0eBmwSRYDvvP//zP3H11VfjlVdeETOi6uvrcerUKbz00kumniAxcGE3CTPbStmEeoWe2M4zqfImDiD2B8XWitsRPcizwGlFS4/QzjMLbyAoirJyVU6U/LFszoo61d4ress+aurO6Llor87LnCdK3aplXjxq5xFEgpWoyy+/HB999BG+9a1voaOjAx0dHbjuuuvw/vvv47//+7/NPkdigDKQ23kAMGlYCTgOONPRh+bufslYblbEgV1a9s7aebECSFnMQbeJIopVKmwWTrNVydp52eyJ+qhJCkU92phZEeUN6nuiMtHOa1eJKFaJonYeQSRYiQKAIUOGRBjI33nnHTz55JN44oknkj4xYuDDPl0P1HZegdOGiyoLcaypGw0nO0yvRDHBxPNSqzDWUOaCFARuSqZj7QUCZfnZPz9PXn060eJBvz+YsUR8f0CZWA4oBXMsWnu82PdZG74+vsqUFZjqSpToiaJKFEEkHrZJEMkiVqIGaDsPULb0mLHctJwoWU5WRzjIUm9lHiMVnijRD6XzfSzPgdEvx2TVpxAPfNLcE2Xr1OILCuJELoDEsS8GRNQvXvwQP3jmEP52pNGU81EvGqBKFEFIkIgiMoZjgBvLAclcfuhku9hCM8tYzrK2AKC9VxBorhh5W4Wu1FWitEzlQK608wQRxYIkM+mLYpUoZ4KeqCNnBYP86fZeU85H/f11kYgiCBESUUTGGFzsAgCMKM/P8JmkDlaJOvR5B9i81kKTPFEcx4nVKDZSJS/GKJx8p7C9mZUocfhwgbaIYu28zj6/aJrOJvzBEI6fFypPXxk9CICyMpVufEGNxHJVOr0ewRCPE62CeGIt3mSRt2sBqWVM7TyCiNMTdd1110V9vqOjI5lzIb5g3PfNCfjOzAtQd2F5pk8lZVxUVQi3wyoav502i6leG5fdgj5/UGrnOTLXztPKiAKEhQMWTmiTtXt8qCxymXZsMzjR4oE/yCPfYcVXx1Zi99FmHMtgJUpMLNc0lkcXoWfa+8SWX2evuSJK3c6jiAOCiLMSVVxcHPVr+PDhWLp0aVwn8Nhjj6G2thYulwuzZs3C/v37o26/bds2jB07Fi6XCxMnToyIVHjuuecwd+5clJeXg+M4NDQ0ROyjsbERS5YsQXV1NfLz8zFt2jT85S9/UWzT1taGm266CUVFRSgpKcGKFSvQ05M5n8RApDTfgdmjKjKaDp1qrBYOE4cWi/82y1TOYIKMtfP05uYxUtHOi5ZWDgAWCyc+15KFLT0mmC6qLsTYamEsTUYrUSyxPIF23vEW6W+UWZWoCGN5lrfzth04hZ//9X3wrPRLECkkrkrUU089ZerBt27ditWrV2Pjxo2YNWsWHn74YcybNw/Hjh1DZWVlxPZ79+7F4sWLsWHDBvzLv/wLNm/ejAULFuDQoUOYMGECAMDj8eCyyy7DokWLcMstt2ged+nSpejo6MCOHTtQUVGBzZs3Y9GiRThw4ACmTp0KALjppptw7tw57Nq1C36/H8uXL8ett96KzZs3m3oNiIHPlAtKsO8zIcnfrHgDBqtQsEqU3tw8hrg6L8FKVMOpDvzixQ9w8ZBi3DizBmOri2Rz1fQXCJTnO9HS48vKFXofhQXTmKpCXBQWUec6+9HZ5zdtEUA8+DUiDhwGK1GfnveI/29eO0/4nomeqCxfnXffCx+gqz+A78y8AKNpViORYjLqiXrooYdwyy23YPny5Rg/fjw2btwIt9uNTZs2aW7/yCOPYP78+bjzzjsxbtw43HfffZg2bZoiPX3JkiVYu3Yt5syZo3vcvXv34vbbb8fMmTMxcuRI3HPPPSgpKcHBgwcBAB9++CF27tyJP/zhD5g1axYuu+wy/O53v8OWLVtw9uxZ3f16vV50dXUpvghiatgXBWS+EsVEVCI5Ue+e7sCSP+zD2yfa8ce9JzD/4dfxrf96E0fOCD/nZRpBm4yaMjcAiKng2YRYiaoqRJHLjiFhr16mzOWsEqU0lhvLifr0vPmVqHaPsJ9cqER19/vRFa6ymp3KTxBaZExE+Xw+HDx4UCF2LBYL5syZg/r6es3X1NfXR4ijefPm6W6vx+zZs7F161a0tbUhFAphy5Yt6O/vxxVXXCEep6SkBDNmzBBfM2fOHFgsFuzbt093vxs2bFC0N2tqauI6L2JgMqWmVPx/s1bmMZx2lbE8RiUqX8yJiu8Ge+RMJ777h33o9gYwY3gprppQDZuFw+GTHTjT0QdAv50HAF+5qAIAMj6XTgsWtDkmXIVi/81U6KZWJcqoJ8rsSpRWGr3bkb2eqMbOfvH/s1HkEQOPjImolpYWBINBVFVVKR6vqqpCY6N2vkljY2Nc2+vx5z//GX6/H+Xl5XA6nbjtttvw/PPPY9SoUeJx1O1Em82GsrKyqMdas2YNOjs7xa9Tp07FdV7EwKS62IXqsJna7EqU1M6LzxPl8Rq/wRxt7MKSJ/ehqz+A6cNL8cd/nYnHvzsd9WuuxE/mj0VtuRsjKvIxYWiR7j6uuEj4fTr4ebsYOpoN9PuDONEqCI+Lwq0f1tL7KEMiyhce9qswltulYdPR+NRkTxQzlVtlafTZHHFwTiaiMjFnkPjiYa5BI0f42c9+ho6ODrzyyiuoqKjA9u3bsWjRIrz++uuYOHFiwvt1Op1wOvVbGsQXlyk1Jdj5fiOKNcaiJAO7oaXKE/VxUzdu+v0+tPf6MbmmBE8tv0Tcx6BCJ75/xYX4/hUXxtzPBeVujKzIx6ctHrz5cQuumjjY0PFTzSfNPeB5oYrG8qwybS7XNpbHbuf1eANo6pI8Z939AQRDPKyWxBduiPEGbimNPi+LZ+ed6+wT/z8bK2XEwCNjlaiKigpYrVY0NTUpHm9qakJ1dbXma6qrq+PaXovjx4/j0UcfxaZNm3DllVdi8uTJWLduHWbMmIHHHntMPE5zc7PidYFAAG1tbXEdiyAYV08aDLuVwyW1Zabu1xW+uYbCC5FieqLY7DwD1SCe53Hrfx9Eq8eHCUOL8KflM5NqR14xRqhGZVNLjwmli6oKRJHAKlLHmrozssLLrxFxwIzl0RLLPwu38uRm+K4kq1Fa8RXi2JcsrPSc7aB2HpFeMiaiHA4Hpk+fjt27d4uPhUIh7N69G3V1dZqvqaurU2wPALt27dLdXoveXiGIzmJRvnWr1YpQKCQep6OjQzSaA8CePXsQCoUwa9Ysw8ciCMY1k4fg/Z/PxzenDDV1v06VaIpViSqUVaJiCYTzPV581uIBxwF/+tdZKE4yWf6KMUKQ5WsfNWfN8nNmHh8jW8U1qrIAVguHzj6/orKTLphQcthkYZsGIg5YK++iqgLkh38Okm3paaXRZ3NOlNwT1Z+FIo8YeGR0dd7q1avx+9//Hk8//TQ+/PBDfP/734fH48Hy5csBCFEEa9asEbe/4447sHPnTjz44IM4evQo1q9fjwMHDmDlypXiNm1tbWhoaMAHH3wAADh27BgaGhpEL9PYsWMxatQo3Hbbbdi/fz+OHz+OBx98ELt27cKCBQsAAOPGjcP8+fNxyy23YP/+/XjzzTexcuVK3HjjjRgyZEiarg4x0JAPlDULl2qfsSpRzFge4mN/Uj/RInzgGFqSF9U0bpSZI8qQZ7eiqcuLD89lLodJjjwjiuG0WTGiIl/xfDqRKlHS99KIsfx4uBI1sqJArEYlK6K00uhZC7nXl32r385SO49IMxkVUTfccAN+/etfY+3atZgyZQoaGhqwc+dO0Tx+8uRJnDt3Ttx+9uzZ2Lx5M5544glMnjwZzz77LLZv3y5mRAHAjh07MHXqVFx99dUAgBtvvBFTp07Fxo0bAQB2ux0vvfQSBg0ahGuuuQaTJk3Cn/70Jzz99NP4xje+Ie7nmWeewdixY3HllVfiG9/4Bi677DI88cQT6bgsBGEYdfp5LBHldljFeXuxfFEnWoSbcq1JY3lcdquYTv/aR80xtk4P8owoOezfxxrNiSl57NVPsOFvHxraVvJEyStRsT1RbHTNyEH54gKGZEUUW/UpHy6dl8U5UbQ6j0g3GTeWr1y5UlFJkvPaa69FPLZw4UIsXLhQd3/Lli3DsmXLoh5z9OjREQnlasrKyihYk8h6XKpZee4Y7TyO41DgtKG7P4Ce/gAqo2QRslVrtRXupM+TccWYQdhztBmvHTuPH1wxyrT9JkJXvx9nwzdddSjjmOpCvPjeORxrTH5KQb8/iF+/fAw8D/zbZSMxqDD64hPNsS8GVuexeIORg0ysREVt52Vfu0y5Oo9EFJF6aAAxQeQwzCvDcMUQUYDSFxUNUUSZOCA6m6IOPg636gYXuyKSySVzefKVqDaPTxw+zVZRRkOsRMmN5eH/9+kMcA6FeHzWIlWiSsL+tY5kPVHhdl55QaSI8gVDCGTRQOmufr/iZ7o/RqbWF4ls8SAOREhEEUQOo65ExWrnAdIKvVjz8z4Le6KYP8gMLih3Y+SgfARDPN74uMW0/SYCqzJdpDEahMUcfNzUg2AouRsQM2cDxipDzBOlSCwPf5/1qivnuvrR7w/BZuFwQZlbFIVmrc4r1WjnAdklVOStPIA8UYy/vXcOl/xiN976tDXTpzIgIRFFEDmM2hMVq50HSObyaKNfeJ7H52I7zzwRBUjVqNeOZdYXJa7Mq44UUTVlbrjsFngDIfE6JEpLj7TCj4Wi6hEIhsS4ingSy9m4lwvK3bBbLaa189p6IyMO5OIum3xRZzv6FP/OpnPLJK8dO4+WHi/e/CSzH1oGKiSiCCKHcca5Og+QAjc9UURUc7cXvb4gLBxQU2qeJwqQog7+8dH5jLYZpIyoSBFltXDi48nO0IunEuUPStfDoQjblCIOtK7Zp7KVeYCUFdUZQ7TFQow4kLXzOI7LypiDiEpUFlXJMgkz2GfT92ogQSKKIHIYdU6UIU+UK7Yn6rPwyrxhpW7ToxmyJepAKyNKDhNRyc7QYzEBQGwRJQ/TVFSiZG1bLV8Uq0RdOEioGppRiQqGeGl1niriQgrczJ4bM1skYLcKqxpJNAhIIopEZSogEUUQOUy8EQeAVInqjuKJEuMNTG7lAdkRddDS40WrxweOE8I1tTBr/EtrHJUouUBiYgBQVhy1Uss/bWEr84TvlxkRB519ftEQL/dEAdk5+uVcuJ13QZlQOSURJcCuQzYJXi2ipfFnMySiCCKHkd9c7VZOUb3Qo8Ap3GCjVaJOtAqm8tpyc1t5jK+GW3qvHs2MiGL5UMPL3Lop76wS9XFzcjEHrTJPlFER5bBaxDE07N8MLV+UPN4AMKcS1eYRzrvIZYv4uWILGrLpxtzYJVSiRoRbmrkkogLBEJ4/fDrC12UG/TnQztv69klMWPd3vJphn2QikIgiiBxGXolSV6X0KHAK20VbnWd20Kaar40TAnUPfN6ekhtHLN490wkAGFtdpLtNRYGQ52TW6BQj+/KLI1+Uf5o5jhMfU4uoPl8QZ8LXcGS4clgSrhwlc+6tYrxBZK6V2yFUM7NJRLGfI1aNy6X21e6jzVi19R38fy9+YPq+c6Gdt++zNviCIRw80Z7pU4kbElEEkcPIx74YWZkHSBEH0YzlLCPKzHgDOUNL8jBzRBl4HtjecCYlx4jGO6c6AABTLijR3caIAd8IibTz5K08hrhCTyVcmH+tOM8uepfMqURp+6EAWeBmlrTzeJ4XgzaZ8M8mgReL0+2CADzT0R9jy/hh4imbK1GsLezJwlFCsSARRRA5jLz6ZMQPBUjtPL2Ig1CIl6WVp0ZEAcB1U4VhzM8fOpP2VXoNTETVlOhuk+9kM+KCCCWRFdXqiaOdpxG0ydAbQvypLGSTtQCZiOrxBhIOxGTxBmo/FCAtYOjNEhHV1R8Qz4Ul7GezaFDTHhasyeZ6acEESjZfDw8TUUl+YMkEJKIIIoeRr9oy3M6LEbbZ1C0EN1otHIaV5iV/kjp8Y9JgOGwWfNzcg/fPmjOjzghNXf0419kPCwdMHFqsux3L0wKA3iRuQG3xrM4LarfzAKkSpTbgquMNAMHHxOiKEaqqB2uPVRZFtvPysswTdS48eLjUbRdFXza3r9SwVZDJto61yAVjeV+4AuXxZu856kEiiiByGJds7IvRdl6ssS+sPVRTmmfIqJ4oRS47vj5e8Eb95dDplB1HzeGTHQAE47hcKKlx2iywWoTKTqKfkPv9QfFTNhCHJ0qzEqXtifpUNniYYbNaxHZkojdmMdFdY/VituVEsVZedXGe+GEiW87NCCyEVVgRaW5V1qix3MhIolTBxBO18wiCSCuKdp5BEZUfQ0SdCI97SWUrj8Faen9952za5rAZaeUBgpk7P3xNY80Z1EPuhwKE8MtoN8lolSjJWK68GbJ4gwsHKb9fyfqiPm4Oh5FqJLqLOVFZ0s47F/YSDSl2iSsHc0lEMf9ZMMQrRHey8DxvyFi+80gjpty7C5ve+My0Y8dDr1iJIhFFEEQakUccGPdERRdRn6dg8LAeX7loEMrzHWjp8eH1NM3Se8egiAKSN5ezeANW/fMFQ1FvZv5gFE9U+Pvrlb2e5/mIeAMGy4pKpMLQ6wvgZJsgprUS3Zl4z5YWEWvnDS5xib8HgRAvXs9sp703vvmKRvHJxghFE5Xvn+0M/zd9bXU5zM/WQ+08giDSibISpd+aklMYwxPF2nmpWpknx2614JrJQwAAzx1O/Sq9YIjHu6c7AERfmceIVbWLBatE1ZS5xdZgtJukLyDc8aJ5ouTtvPPdXvR4A7BwwHBVpldJEpWoT5p7wPPCzLwKjYiDvKwTUUIlarCsnQfkTjVKIaKSHNUjRy7Yo10L0XweyMz16iVjOUEQmUBZiTL268yqK33+oGYLja3MU9+UU8V104SW3svvN6Kr33xjrZxPmnvg8QXhdlgxulJ73Iscd/ha9Sb4CVnKWnIYaq8ZijiQ3eiOn5fG8zhtykokO14iK76izRUEstETFa5EFbsUvxOpNpefaPHg/3vhAzR1JR5NwPM82mXCycxKlPz70+cP6raSxZZfBtqzPM+LXqhe8kQRBJFOLBZONCEbbefJzdTq1TChEI/Pw2nl6ahEAcIKuVGVBfAGQtj5XmNKj9Vwql08JqsMRYMFkyZqeGWp3+X5xkSUFLYZ+b3UWp33mWrci5xkPFEspf2iKu2ROLE8UemOrJCM5S5wHJc2X9RTb36GP7zxGf5n/8mE99HnDyq+p2aKKPn3J8QrB1yrzwHITCVKGKot/H+iFd9MQiKKIHIcFnNgtJ3nsFnEdlG3V/kH+1xXP7yBEGwWDkNLUhdvIIfjOHwrbDB/7nBqV+k1nBK8H0ZaeQCQ7zCnnVeW7zTkUZLGvmhVoiJzoj4LZ0RpCd5id+IiSqxEaZjKgeieqF///Rgu3bAbjZ3mB0dqwfO8zFiepzi/VIuopi6v4r+J0KZafGBmVpRaFOmJJCa2MrFQQN7C6/eH0rbAxCxIRBFEjsNuGEYrUYBkdFZXoti4lwvK3LClMN5AzYKwiHrr0zacbu9N2XHYyrypBkzlgBnGcqmdZ8Sj5DeQEyVv54mVKC0RlUQl6qMmQUSNidHO69Nol7105Byaurw48Hlb3MdNhM4+vyjmqotdAKToj1S381ggqXw+Yrx0qDxQqapEAfrtukyOhlEHtiaTyZYJSEQRRI7jEitRxn+dxcBNVSWK3ZTTEW8gZ2hJHupGlgMA/nIwNQbzXl8AxxqF1UeTDYooN5szmKAnilUZjLbzoiaW29nYF+lG96m4CCCy7VaUoIjq6veL7bHReiLKoT/2hQlHdYUlVbBzLct3SB8o2PmluD3FksbVURZx7UNVmTRVRKkEiZ5IyqSxXC2ics1cTiKKIHIc1uYx2s4DpApLt2qFXjrjDdQsumQYAGGiezCJMSt6vHe6EyEeqCpyYnCxsVZlvmgsTy7ioLzAacjoLbXzYo99CQRDOMn8a1E8UepKRyw+Dlehqotc4j7U6K3O8wVCogho7UmXiJJM5QxWtUt1e4oJoGQEo/q1Zooor0o06a2mNMtY3uMNYPETb+HpvScMv0btNyQRRRBEWhErUXG08/Syoj5rYaby9KzMk3PVhMEocdtxtrMf//zovOn7NxqyKacgLEwTNZa3yob4xlWJihK2yYTWmY4+BEI8nDYLBhe5IrZPNOJATCrX8UMB+p4ouSCQzwxMJVK8gXQN0uGJCoWkVXUt2drOi6hERfdE9QeSa+e9faIN9Z+24qk3jYd2qoVurmVFkYgiiBynMDxQuNAVfyVKnRWVjsHDerjsVlw/TahGPbMv8dVOerzD8qFqSg2/RsqJSi7ioEIWcdBhxBMVbexL+Eb4qSzPy6Kx0jDRiAPJD6W9Mg/QX50nFxNpa+d1SBlRDDGCIUlREI2ufr9YMe3uD0QkyRuFXSf2/U2pJypWJSpJ0cl+1s53GxeV6spTolXfTEEiiiBynDvmjMbyL9XiK6MHGX6N5ImS/mAFQ7zYHspEOw8AFs+sAQDsOdpk+uquhvDMvMk1+kOH1SRjLO/1BcSbU1m+w9BqOV/AiLFc2Oaz89FDURM1ljMRpeeHAqQ5jepKh1xEpauddzbczqtWVKJSH3GgFomJika2WpP9zpmaE6USdnrtPPmQ4mTiKdjfE48vaPh3Rn1OuRZzQCKKIHKcS0eWY901FxuenQdot/POdvTBFwzBYbVgSJriDdSMqizEzBFlCPHA1rdPmbbf5q5+nO3sB8cBk4aVGH6dZCyP/w87ExEOmzAM2FBOVDjHx4gnKlayPDuexxeMa/xJrJV5gMwTFVGJkrfz0iOimNgeUpLedp7aEJ6oaGQtQRZua2bEQWQlSvvngJm7eV5qFyeC3GNptMWpXiGca0OISUQRxBeQAo3RL6yVV1OWZyiIMlXcNOsCAOYazA+H/VAXVRaKAtIIorE8gT/s8pV5HMcZElFeI6vzwtWFWCspi2SmcKM35tYeryiERkdp58k9UfLKRWuK23l/eP1TPPjyMUWWkHzkCyMdiepq0ZSoL4qJMSaGU5VYrvVvQDmkGAD6fcmIKOncjbb01L9balGV7ZCIIogvIIUalagTaU4q12PexdUoDRvM//FRsyn7jGfosJwCnTwtI7TJTOWAMY9StJwoVp3yqSpRWhlRAGC1cOL3OZoPS85HTYKpvKYsD+4oqz3lVU95+KdcSLT3+kxdZdnnC+IXL32I3+35BP/x7LsIhXjwPI+zHRqr8+ypz4kyrxIlvG64rJ1nVuK7+v1riSh5YjiQXMyBvBLVbFhEUcQBQRA5BquwdIf/YPkCITx7QGifXVipX4FIB3KD+WaZwdzjDeAXL36Amb94Ba8di09csZV5RvOhGMkklrfI4g0ApUdJ7yYp5URpJJbbJU9Uvz+IM2HxEE30xpsVZaSVBwAumciTt4zkQoLnI4VGMrT0eMWb/XOHz+Ce/z2C9l6/KOKqiiI9UakckNzmUV7TRFcjtof3Uxtu5wVCfISwSBQjq/OMms+NIBdRRitRFHFAEETOoV6d9587j+Kd050ozrNjaV1tBs9MYHG4pbfnaDPOdvRh1wdN+PpD/8DvX/8Mzd1evPTeubj2x2bBXTykKK7XJWMsl7fzAKAkbCz3B/VvkqwS5dQ0loc9Uf6Q2HotctnESpcWJXGOfjnWFH3wMMNmtYiVMfmN+ryqpWVmS4/ty2GzgOMEgf3jbe8AEK6xSxbxkY52ntmVqKGlebCF2+hmtfTUIkorYT5ym/SKKIo4IAgi52BxCB5vAK980IQ/vCHkuvzq25PSNjMvGhcOKsCssMF84cZ63PKnAzjb2S9WGD4Nr0wzAs/z6AybdysKnXGdBzOW9/qCCMXZmmpViag8u1WsMOndJKMmlsvGvogr8wYVgOP0/WvxxhywoM0xUTKiGFrVHrWQMHOFHhNRoysL8MB1kwAIIhsABpcoc7JcaWjnsfdWFP5dakngvfb7g6KgLnEbyxKLd//R/g0YTzU3QiKeKNYqL0jCf5hJskJEPfbYY6itrYXL5cKsWbOwf//+qNtv27YNY8eOhcvlwsSJE/HSSy8pnn/uuecwd+5clJeXg+M4NDQ0KJ4/ceIEOI7T/Nq2bZu4ndbzW7ZsMe19E0SmKAhnS51q78X/CX+a/9cvjcDci6szeVoKvhOuRp3p6IPNwuF7l1+I/14xC4CUkWSEPn9QXHFUopPArYfchB7vTC92ky0rEESUEXM5O09tESWtzvs0hh+KEc9Nmed5cfDw6MrYIkorK4q1MPPDz5kZuCkPLl10SQ1+fu3F4nPVRUrhn46IA1ZBYlW7RN4rC9q0WjgUuYyt4IwH9v6Zxy6t7TyDRnsmmgaFP+BQxEGcbN26FatXr8a6detw6NAhTJ48GfPmzUNzs7bnYe/evVi8eDFWrFiBw4cPY8GCBViwYAGOHDkibuPxeHDZZZfhgQce0NxHTU0Nzp07p/j6+c9/joKCAlx11VWKbZ966inFdgsWLDDtvRNEpsgPV1iaurzo7PNj0rBi3HXV2AyflZL5E6rx1TGD8JWLBuGFH12Gu64ai/GDhXZcm8cn5uvEgt2o7FZOzDcyitNmEVcqxtvSYzfVinyp+hXLoxQtJ0pMLA+EYsYbMMSbsoHRL01dXnT1B2C1cBipMUZGjbplFgrxUrUoLCzMbeeFPWbhyt7Ns2tx9zfGwmbhcNmo8qjnlgqk9yp4CBOpujEhVuq2g+O4hOcd6sEEUmm4rWukEpVUO8+byOo84XhMROWaJ8r4Wt8U8dBDD+GWW27B8uXLAQAbN27Eiy++iE2bNuGuu+6K2P6RRx7B/PnzceeddwIA7rvvPuzatQuPPvooNm7cCABYsmQJAKHipIXVakV1tfIT9/PPP49FixahoEBpqi0pKYnYliByHXm6eaHThkcXT9O8cWcSp82Kp5bPVDyW77ShusiFxq5+HD/vwfTh+n4gBhNRxXmOqK0vLTiOQ77Diq7+AHq8AVTF8Vr16jzhHKLfJP1RK1GSsTxuEWXgpsz8ULXlboW/SA/16JfOPj8C4ZbnRVUFaDjVYWo7T6pESaL01q9ciCWX1kZkpDnT6IkaFa7atSYQccD2UeJWruA0rxIl/DyVuh1o6vJqturUlShvmj1R6kqUJ8XzDs0mo381fT4fDh48iDlz5oiPWSwWzJkzB/X19Zqvqa+vV2wPAPPmzdPd3ggHDx5EQ0MDVqxYEfHcD3/4Q1RUVGDmzJnYtGlT1KWnXq8XXV1dii+CyEbYH20AeODbk3BBefpn5SUKq5J8er7H0PYdfexGFV8rj5GouZwJiPICDRGlUxnyRTOWy3KijIqoIp1RMx5vANsOnBLjAQDJDxXLVM5Qt/NY5a3IJQhd+WNmoHU95echR2+2n5m09UgeLQBo8fjijiZgK/PK3MZjMOKBvf/S8P61rodZniie5xW5cy09XkM+QlaJqqRKVPy0tLQgGAyiqkr5+a6qqgpHjx7VfE1jY6Pm9o2NjQmfx5NPPolx48Zh9uzZisfvvfdefO1rX4Pb7cbLL7+MH/zgB+jp6cGPfvQjzf1s2LABP//5zxM+D4JIFxUFTtz7zYvhslvxjYmDM306cTFyUD72Hm817ItigiVePxTDrTOsORatYvtJqpzEGgrsDwg3nWieqPZeaWZbopWo3+z6CH944zM4rBZ8Z9YF+OFXR4l+KMMiSiVUzneH5wQWOsXqWypW50VbjchwiR6g1BjLfYGQGA8yKiyifIEQerwBFLqM/5xJlSi74r9me6JK86O083zmtPP6/SGxEgkIUQ3tvT4x4kMPauflOH19fdi8eTN+9rOfRTwnf2zq1KnweDz41a9+pSui1qxZg9WrV4v/7urqQk1NjfknTRAmkA1RBokwskK4aRmvRIVFVIKVKDG1PI6l172+gHgD16xExWjnRZudxwRUVZFTPDc99G7Kb3zSAkCofP1x7wlsffuUWOkysjIPiBz9wkzlFflO8caZinZeuQERxapTqWrnMT+e1cKhusgFt8OKXl8QbR5fXCKqQ/REKStRHQY8bEZg7784L55KVGLXjK3Ms3DC+2jv9eN8jzemiGKiaVABM5ZTO88wFRUVsFqtaGpqUjze1NSk60Oqrq6Oa/tYPPvss+jt7cXSpUtjbjtr1iycPn0aXq92idrpdKKoqEjxRRCEubB23mcGK1FyT1QiFIRN+PHM9GLiwWmzKMzssUSUN0rYplpYGUmW12oPdfT6RP/T7xZPxeSaEvT5g+J1uijKuBc5LtUQYuYJqih0iELHzPl5orG8wEAlKsWeqDaZIdxi4cRzijfmgAV2luanxhMlDcAW9us14IlKtBLVFW7lFThtqCwU2rlGfFF9qkoURRzEgcPhwPTp07F7927xsVAohN27d6Ourk7zNXV1dYrtAWDXrl2628fiySefxLXXXotBgwbF3LahoQGlpaVwOuPLmiEIwjwuHCTc5E+09hoaK5KsJyqR1PJW1dw8RqzVV0YqUYwRFbHFjtZN+cCJdvC8IEavmTwE238wG39YOgOTa0pQN7Lc0H6ByHYeExDl+U4x1sHUdl5PpLFcD5ctvpwoXyCENc+9ixfePRvXubAKEmvZxmsu75CJMSD+hPlYyI3lgPZIF7M8UawSVeiyi4IolojieV78cCKJqPgz2TJJxtt5q1evxs0334wZM2Zg5syZePjhh+HxeMTVekuXLsXQoUOxYcMGAMAdd9yByy+/HA8++CCuvvpqbNmyBQcOHMATTzwh7rOtrQ0nT57E2bPCL8SxY8cACFUsecXqk08+wT//+c+InCkA+Otf/4qmpiZceumlcLlc2LVrF375y1/ixz/+ccquBUEQsRlSkgeHzQJfIIQz7X0xTfHJeqISMZa3qka+MIp1jN4MZix3RPFEMWJlRMmPJ78pv32iDQAws7YMgLACcc74KswZH8/aQ4gVtn6VsbyiwCmKCjY/L9mB1v3+oLhqy4gnKs8R9kQZnAP32rFm/M/+U6g/3op/mTQk5vZiJSp8LhUFiVXe1PtJVSWKLSRRV520Hkt0dR5bmVfoshkWUd5ACEwvseoVIFR942mLZpKMi6gbbrgB58+fx9q1a9HY2IgpU6Zg586donn85MmTsFikPyizZ8/G5s2bcc899+Duu+/G6NGjsX37dkyYMEHcZseOHaIIA4Abb7wRALBu3TqsX79efHzTpk0YNmwY5s6dG3Fedrsdjz32GFatWgWe5zFq1CgxjoEgiMxhtXCoLXfjo6YeHG/piSmiWJsq0UoUSy2Px6vRqmOCZjczfWO5fiXKbuXAcRDnx8XTzuv1BeELhOCwWbCfiagRZQbeiT56xvLyAodYWWHz8ypi+GJiwSpadisnJoRHgwlOLdGgxXtnOgEAZzv7wfN8zCiMdvb9TbIS1R7+2VR7osxYnRcM8WLumJgTZaASlWg7j1Vq4xFR8vFHpW47rBYOwfDsQBJRcbBy5UqsXLlS87nXXnst4rGFCxdi4cKFuvtbtmwZli1bFvO4v/zlL/HLX/5S87n58+dj/vz5MfdBEET6GVlRgI+aevDpeQ++Oib6tqydV+xOzBMlGcvj90Sp/TuxbpLREss5joPTZhHbLSMMBGLKb0SdfX7kO61477QgGC6pTU5EqWME5JUom9WCErcdHb1+tHmSF1GtsvaZkawvdm7eQMiQKHo3fE18gRA6ev1iZUgPtZcpUU+Uup1nZiXKKxNMUiVKf3ae02YRh1sngqKdF/5+x0otZ9Vdp80Cm9WScCZbJsmudD2CIAgDxJMV1ZFsOy/siYrHWK5O12ZEu0nyPA9/UCgz6QWfsgqL1cKhpjR2thcbJ8KO2XCyA4EQj8HFLgwrTW5GopQTJdyYxdV5Baw6E25xmbBCT4yLMCjG5NlRzKyvB8/zOBKuRAFAY1d/zP2rv7/iasR423ke/XZevJlTauRVOFaF1WrV9anapIl7ouKvRDEBxz6o5Ccx8DtTkIgiCCLnGDmIxRzEXqHHBEtpkpWoRNp5ep4orZskq0IB2pUoQBJXw0rzDCfMF8tiDlgr75LasrjT29WoR6swscSqTmKLy4TAzbY44g0AKScKiN3SO9vZrxA/hkRUr7ISJXqi4mjnBYIhUXio23mBcEsrGeQVJtG/ptXO86l8U0muzit02cTgzOYYIoqJJfazlJ9gJlsmIRFFEETOIVaiWuKoRKUxsVwcPqxTiQqG+IgbBatCAdqJ5fLHjfih1Mfs6vNLpvIk/VCA0hPV6wuIN/2K8A3UzMDNeII2AcBmtcAWNrPHMpe/d7pD8e+mztgiSvREhaMDJE+U8ffKFhdwnPQ9cjus4nkn29JjFSWX3Sp+r/xBHoGgstKkjkFItp1X4DS+Oo/9zLBZnolksmUaElEEQeQcF4aX4Td1eaN+au33B8WbRHHSxvLI4wRDPJY/tR+rtjYoKkvspl+h8kS57BaxgqS+SfoCsStRyYiolh4vDn3eAcAcEeWSjX2R52Llhx8vLzCznRefiALklbLo7Snmh2IYqUSx8xEjDsTVecYrUUyIFefZxdWLHMeZ5otiYijPblXMQuwPaIsoMQYhUWO5Rjuvs8+v8GapYSIqL9wyZz878bTOMw2JKIIgco5it11s7XwWpaXHbkRWC4fCGOneeoifjjX+sJ9o9eDVY+fx/OEz2HlEGj3F2jrqTKNoN0mWEWW1cLqRAMwTZSTegMGOt/d4K/r8QZS47Rg1yFgWVDTklajzPZKpnLUJpcBNE9p5PfG18wDjQ4jZyjzWgmoyIKLaxfZiuHUpy8Uykl0GRK7MY5glopg4ynNYFZXNiHBNn1pEaYvO4+d78KX79+BP9Sc0n2etySKXDcV5djEwNprZnv1OMfFE7TyCIIg0YaSlJ6WV2xP2AEntvMibcYusXfGrl48hEBRWg0UbUaJ3k/RFSStnXBie0zZ9uPFKEjvenqPNAIAZw8tgSTK3CVB6oiQ/lPR+zWznMSFWZiCtnOEKj7GJ5vHheV4UUSwnq6krdkCklO8kXFsWdRDipRV3sWDXRd1mNitws1/mieI4TrwealEpVqLyo1ei9n3ahjMdfXjx3XOaz3d7pdV5HMdJK/SitPRYJcodrkQVUDuPIAgiPbAZesejVKLYDS3RlXlA9MRyuSH50/MebDt4Gh5fUFwRpjWiRC/mIFrQJuPBhZPxxk++ivFDjI+UUt+UZ5nQygOkQMteX1C2Mk+qvJk5Py+euXni+RmoRJ1u70NHrx92K4crLhKmVjTG8ESxzC1AEoo2q0WMKTC6Qo/9bJalqhLlkypRgDz2QbsSVRY+fz3RyTyBeu9PvjoPgCFfFNsnM76z/1IliiAIIsUYiTlg5t1E/VBAdGM5a9sx4fPwKx/hbEcfAKESwj5hy9EbMuuLErTJcNgsGGYg2kBOiWpm4CUmiSh5TpSU0C4dy8z5eW06qx2NnJ/WvDgG80ONrS5CTZlwXWO189i5OG0WUajJz63F4Aq9dnHBQ3xZYkbpk3miAGkUjjorKrISpX29mLDRW4EoiSjh/I2IKLWxPJFFHJmGRBRBEDmJkZiDZEe+AJKxXGumF/N7XDtlCIaW5KGpy4uHXv4IgOSXURPLExWtEpUIxbL3nme34uI4qljRECs9vqB4HeSVKDPn57XprHaMhpF2HmvlTRhajKoiYexIq8cX1Qwtj1uQt4jL4szFalcFbTLMqkR5ZavzAKkipV6tqPZE6Y19YcKmo88fscIPkK/OU1aimrv1RaloLLercqLIWE4QBJFaWCXqsxaPbjChNHw4sYwoQLopAECv6gbDvDpDSvKw6usXAQB2vi8YzLVaeYABT5TB/CejyEXU9OGluiv/4kUM2/RL7Tx5pUg9Py9RvIEgusM38HjaeS4D7bz3znQAACYNK0ap2y5WAZuj+KLU8+4Y8WZFtXu092O6sTx8HZi5XG4s53k+YnWebjsv/DphlE/kuUW28wRRGr0SFTaWqyIOtPyH2QqJKIIgcpILytywWTj0+YO6y9LlxvJEcdos4mo5dZtBbqj+1tShGFNVKD6nd8PXFVFRRr4kg/y9JzvqRQ67OQdCvOgjkhvL1fPzEqXdI62wLIpjnporRsQBz/PiCJyJQ4vBcRyqimKv0GvXiVtgotFo5S1dq/MiKlEykSRPc2cm+UCIF6uicuQ/++oVl75ASNxXUQLtPLc64oDaeQRBEKnFbrXggrCPRa+lxzxRiQZtAkIsQb6O4VWckZfvhNXC4c550iA/dbwBI1YlKpXtvEtGlJq2X3n20Ol2wQcmb+ex+XlAci09dsMudTviWlWonu2n5mRbL7r6A3DYLLgoLH6rwy29aFlRbaqMKIY4P0/1Xn2BEJ47dDri+82EJQu5ZJidE8XamswTJc+Jkqeiy0WhVvVOIaJULUvWygOAAlaJMjA/j1Wi3BRxQBAEkX5imcvN8EQB+obXFo/SUH3luErMGC4IFVbVUKPviRJaXma38yoKhXNzWC2YWmOeiHLaLGCapqmbVaKU79mM+XmtCWREAUCezpJ+BjOVj6suFNt4zBcVbYWeXnq6tBpRKRp+//qnWP3nd3DfCx8oHmciSt1qNiviIMJYzq6HTDixbRwqk7xW9a5HUYlSiygp74lVbY2tzmOVKKWxXGvkjccbwJ8PnBIrgdkCiSiCIHIWZi7XizkwwxMFAG6dT8jqfCSO4/CbG6bgX780AkvqhmvuK1YlymlyJWpwcR7uuXocHlw0WTGYN1k4jhNvvMySpvaBmTE/L96RLwxpdZ62iGKm8onDisXHWCUqajuvV/t8KnQE464PmgAAfz/SqEilb9epaJlWiVJFHGgZy8UYBLs1apYUoBQ2aqGoXpkHSOGl57u9up7FPlU7zx2lnbd530n8x7Pv4rd7PtbcV6ZILMKXIAgiC2DJ3Z+26Iio3uQjDgDtmV6+QEi80clX4tWUubH2mvG6+ypxR1+dZ7clH4Sp5t++PNL0fQLCjZkZji1cpCAwI3BTGuacmIjSa+e9G56ZN2loifhYdTFr50UxlusYwsVKlOy9tnl8eCd8nG5vAHuPt+CKMZUIhXhpMLZOOy/ZiIN+1eo8KeIgUkS5ZVlS/f5Q/O28cNAma+UBUlXSGwih2xvQ9LOxVXhuZ+x23metwu/40XPdWm83Y1AliiCInEWKOdBu53WY1s6LnOnFbqZWCxeXcT2WsdxsT1QqkfuiysK+MDlmzM9rYy3TBCtRWq2pUIjH+2e6ACgrUaydF20IsVgZ0/NEyao0r398HvIizN/DKze7+v1gCxbVOV7FMpGtV8ExgtpY7nJEXg91yy/avEEj7bxCmYjKc1jFUUt6LT0m4vJVieValSj2PflM5wNTpsid31aCIAgVzBN1pqNP89Nzp2gsT66dp5Va3iLOx4vP8CyvNMhzp6SxL7nzZ1nuo1EPWwbMmZ8ntfOMB20CiNqaOtHqQbc3AKfNgtGV0hxBqRIVvyeqInx+3f0BMWfqtWPnAQgRCgDw8vtNCIZ4cR8FTltEuCr7+fAH+agZV7HQC9tUtPPUQsseuQ1DWYmK3c4DZFlROpU9j46xvNcfmcnGfHeNXf1ZtXovd35bCYIgVJTnO1DotIHngdPtvYrn/MGQKHqSrUTla3xCTmQUCSAZh0M8xPwjdr5A9MTybEPusVKbygGT2nksaDPedp5Nv53H/FDjhxTBJhOt8tV5elUgFk2gFlFFeTbYwmK6zeNDKMTjnx8JIuo/5o1FcZ4drR4f3j7RJsUb5Ef+XMrN2cn4oiJW59kjc6LU7TytLClAqNzJM9IiK1Fsbp7SIVRRGH2FXq/KWM7yong+8vsmn2mYTdWo3PltJQiCUMFxHIaFYw5OtfUpnpPfgIqSFlEs4iDSXKslHqLhslvFm5Xc95KqiINU4lKMPdGoRJkwP68tQbEarZ3HVuZNGlqseLwyvKLSFwhFjOUBgGCIF2feqQUQx3GK9uV7ZzrR6vGhwGnDrJFlmDNOGHC880ijtA+NCinHcaaYy/t1WnVeRSVKEPER5nONIcVyTakWxawSVaQSUZVRVujxvCTMmLE8z24VV3x6VB8w5G1SElEEQRAmUVOaB0DI/ZHDboJFLluEVydeJGN5pLlWq40VC62bZE5WouzRK1FmzM9rTXB1HhuQrDXC5Yhs3Iscp80qHqdJY1xJZ5/kZdISQGyBQUuPV2zlfWlUOexWC66aUA1A8EWx96TXZhZ/PjSEnFHEVp1qALGyEqVjPleJqIhoD1VliVV85en+QPSYA28gJCbZM2O5kMnGRr9I59DS41WIuGijntJN7vy2EgRBaHCBWIlSiqhOk+INAKDAETnTS8qIiq8SJZxTpIjKdU+UViXKjPl54nDjeCtRGqvRGOfCJuUR4dWdcqJlRbH3UeSyaX6f5JWo1z5qBgBcMaYSAHDZ6Aq4HVac6+zHP8JtvjKdVaNmZEWJq/Nsxo3lrOWnHtrMRBL7LCL3fQn/Zu08bU+UloiSf1/csp8jJqjkwk39vfisRX/oeLrJnd9WgiAIDWqYiGrXrkQlk1bOkJZey9t5iS29B7QrUb5w2GZOVaJieKKSnZ/nD4bQFW4VxStWo5mko2VPVUcZ/aKXEcVg1+CT8z1oONUBALhizCDxfL46VhBUL4dX6ekJ/BITRFSfKifKFf65UuZEKY3dekOKWUbUoEKnwvfF6NJYnQdETy1nH0gcNovCl6YVc9CkMqZTO48gCMIkaspYO0/piTJjbh4jX+PTseiJinPVmPyc5L6bXKxEuWKszkt2fh4LpLRw8S8O0PNE9fuD4g1aS5hJlajIG79eRhSDVct2NJwFzwNjqgoxuDhPfJ619Fg6vVZLEDAncFPtidJs56lX5+lU7+TtulKNUNFYq/O0KlG9YryBMgBWK+aACVpxQkGUoePpJnd+WwmCIDRg7bzTbb2KP6wdJsUbANqfjluSqERptWsGoicq2fl5rbJU73hiJADt1Wjy87BbuQgjNCATURqVKL2MKAYTZWc6BEHPqlCMK8ZUKr6/6rl5DDMCN9Wr88QMKFlqOvNEsQqUU0d4emQiSsvnprc6TxJRkddSPXyYoeWJYiJq1ogycJwg2lqSWKxgJrnz20oQBKHBsFJBRHV7AwpR0slmk5lSiWIzvSIrUYl4ojTbeeLqPPMTy1MFM28D+tchmfl5iY58AWRjXwLaIqrU7QDHRV5rlhWl1c6LdT5qQX25SkQVOG34yugK8d8xjeUJiiie5zX8TmGBpFGJcqvDNgPalSi3wyaKZXlWlFbYJiCJqFaPD4GgUpj1epWtRIZW1ZcJ2poyN4aFF5JkS0uPRBRBEDmNy24V/1jLV+hJlajkRZTUYhBuLjzPoyXBpfeAlFLdIWtx5XolSu86JDM/L9GVefJzU1dVpDEy2qKvOoqxvD2WiJI9nu+wYsbwsoht5l1cLf6/3n6SFVH+IC+uInSJfid9T5Tom9Kp3omtN6dNM/urh4kop/J3rTzfCQsntHPVlUixEqVa0aeVycbCOqsKXRhRIYSjZou5PHd+WwmCIHS4QCMrylRPlCqxvMcbECtHibTzLqwUvB27jzaLbRdvMHc9UYVOm8IfJUfrptvrC+Dg5+0xfS1StS/xSpQ68yjWar+qKEOI23pjeKJkwuxLoyo0BfHXx1eJkRupElHyiALmc3LaIq+H2hOllSUFyNt5Vtl4m9jtPKuFE5Pmm1W+KDGt3K6uRCk/sADS96K62BVzXma6yZ3fVoIgCB1YVpR8hZ65nihli4G1ptwOa4Snwwhzx1djcLEL57u92H74DADAH8jBSlS4gsGSqbVQz8/7vNWDf/ndG7j+8b34+/tNUfefXDtPuI6BEC9W+Yzsk7XzWj0+3VagridKtk8WbaCmxO3AumvGY9nsWoytLtTcJtmIAyaUrBYO9nB7WNtYHvZERTGfA9KHh3xnZDsvGOJF/5JaRAGywE3VCj2puqUSUY7IOZWsnVdV5BRjKbIlKyp3flsJgiB0YDEH8nZeajxRwkwv1pqKN62c4bBZsOKyEQCAJ/75KYIhXhxAnEuVKNbmHBTlOsjn5x38vB3f+q+94g3wwIm2qPuXRuvEf53llTF59SXWgoBSt10UsuqZb7HaeYMKnXBYLeC4SD+UnKV1tVh/7cWaniwg+UqUfGUeO4YUXyA3lit9SdK8QW1jeb6GsZy18oDI1XmAfH6esrKnayxXLeLo9QVEz1VlkUtcoZctnqj4P0IRBEFkGTUagZup8EQBwnDUZFbmMW6ceQF+u/tjfNriwa4PGsVqiTOHKlFfGT0IV02oxvXThuluwwTHPz9qwZ8PnIYvEEKB04YebwBHG7uj7r8tievstAlihucFUVDoCu/TE72dx3EcqoqcONXWh6aufvFnC4jdznPZrXj0O1MRDPEYWpKnuY0RJBGV2KDdPtXKPEDKifKFk8KtFk431TzSWM7iCCRPFBNRXeFWntNm0ayiDikRLvyZDpWI0jGWqyMOWEaU22FFodMmVqI+b/WI7yOT5M5vK0EQhA414RV6p9sjPVFmiCinzSL+sfZ4A1LQZgIVEkaB04aldbUAgMf/8WlO5kSV5jvw+HenY874Kt1tmE/oZFsvfIEQ5oyrxBNLpwNAbBGVRDuP4zhRkMorUdI+9b931ToxB+0e7eHDcuZeXI2rJg6O+3zlFLuliINE8pBYO05ejZP/P2tTioGcMdp5bFVqvtMqm4coiBtWMdKqQgEQxeSZdmWOm0enEsX+zTxRTWIrzwWO4zCkOA8OmwX+IB8xdDwTZMVv62OPPYba2lq4XC7MmjUL+/fvj7r9tm3bMHbsWLhcLkycOBEvvfSS4vnnnnsOc+fORXl5OTiOQ0NDg+L5EydOgOM4za9t27aJ2508eRJXX3013G43KisrceeddyIQSOyTAUEQqYMFbp5u70UwxCMY4sVPyMV5yXuihJlebAhxQJwdlsjcPDk3z66Fw2bBO6c68P7ZLgC5JaKMUCnzSy2bXYv/u2QGptSUgOOEmWjqOWxyWNs0EREFyFfoGW/nAdqjX7wBKaRTzxNlFqwS5QuGNAcox0Ic+aIjotjz7L/uiEqUfk5UhcrjphdvwBga9iue7VCKKHUrkaH2HzbJ/FAAYLFwGFGePebyjP+2bt26FatXr8a6detw6NAhTJ48GfPmzUNzc7Pm9nv37sXixYuxYsUKHD58GAsWLMCCBQtw5MgRcRuPx4PLLrsMDzzwgOY+ampqcO7cOcXXz3/+cxQUFOCqq64CAASDQVx99dXw+XzYu3cvnn76afzxj3/E2rVrzb8IBEEkxeDiPNgsHPxBHk1d/eju94sDS81YnQcol14ns2pMzqBCJxZOF1phzCOSS8ZyI0wfXop//dII/Orbk7D+2othtXBwO2wYHm6THYtSjUrGEwVop5a3GYimYJUo+Yqyc+F2lNXC6QoGs8h3WMXKZyK+KHVaOSCctyMs0Fkbj1WY8tSr8/zaxnK3LOKgzx8M+5W0V+YxhpYI3+czHTqVKKdOO8+nFlEucRvRF5UF5vKM/7Y+9NBDuOWWW7B8+XKMHz8eGzduhNvtxqZNmzS3f+SRRzB//nzceeedGDduHO677z5MmzYNjz76qLjNkiVLsHbtWsyZM0dzH1arFdXV1Yqv559/HosWLUJBgZBB8fLLL+ODDz7A//t//w9TpkzBVVddhfvuuw+PPfYYfD7t0Div14uuri7FF0EQqcdq4cRPvKfaesVWXr7DapookRteW5K8ucu55csjIbd12HMobNMINqsFa68Zj4UzahSPjwmvTNNr6QWCIfH7mGglSmxPabTzooWkshV68krUb3d/DACYdkFJ3Onp8cJxXFLmcnXQJkMyjgcV24ljX+xKkcVgrbUCpxUFTpv4O9Xa44tZiWKeqHOdfQjJ5if2+SSflRx1ThTzRFXLRBTzRWWDuTyjIsrn8+HgwYMKsWOxWDBnzhzU19drvqa+vj5CHM2bN093eyMcPHgQDQ0NWLFiheI4EydORFWV1OufN28eurq68P7772vuZ8OGDSguLha/ampqNLcjCMJ8mC/qVHufqfEGDHGFnjdoWiUKAGor8nHVBMlDk0vG8mQYU10EADh6TvvDZntYQHGcNIMvXtRZUfK5edGEmXr0y9sn2vDc4TPgOOCeq8cndC7xkoyIYu/XaVf+LMmvRyjEixW6PHU7Ty2imCfKYQPHcaiQmcvFSpRT+3tUXeSCNVwlllf2PKqgT0a+yhPFvgeVGiLq0ywI3Mzob2tLSwuCwaBCqABAVVUVGhsbNV/T2NgY1/ZGePLJJzFu3DjMnj075nHYc1qsWbMGnZ2d4tepU6cSPieCIOJDHnPAksDNauUBwqdwQPjjz/wgiUYcqLnt8pHi/w80T5Qe48KVqGNN2pUoVjEqybPDluA1UVdeYs3NY8hHvwSCIaz9X+GD842X1GByTUlC5xIv0pDq+Mfl6FeiJJEkX4EX4YmKEnEAAGUFLEDVi25v9EqUzWoRq0jyll6vV68SpfREsWiEamrnZSd9fX3YvHmzogqVKE6nE0VFRYovgiDSg2gub+sVP72bsTKPIU8tl0aHmFPpmjSsBEvrhmPG8FKxzTXQYe/zo6ZuBEORK9CSNZUDUlo3ExVM/Jbla8/NY1QVSu28Z/adxIfnulCcZ8ed88YmfC7xwn52E2rnsVV3qiqPfBSOfAUeu06x2nlMRLE2dousnVcQRZSKK/TkIsofI+LAFwDP84qgTcbI8OiXs539ESsJ001GRVRFRQWsViuampSptU1NTaiurtZ8TXV1dVzbx+LZZ59Fb28vli5daug47DmCILILqZ0neaJKU9DO6+oLoL3X3EoUANz7zQl49vuzxfEcA53h5flw2S3o94fweWtkRaHNBN8ZExHecGVFEmbR91kZvmF7AyH8586jAIAfz70oKUEXLyVJtPO84dV1Lpu2J6rPFxSFktNmET1eTGT5AiHRv8TzvNTOC1eJ5Cn0krFc/wML8yvKYw5YJUototgsvRAviDnmiZIby0vzHaLIPKHxs5NOMiqiHA4Hpk+fjt27d4uPhUIh7N69G3V1dZqvqaurU2wPALt27dLdPhZPPvkkrr32WgwapEyXraurw3vvvadYJbhr1y4UFRVh/Pj09MQJgjCOsp0XjjcwsxIVvoGcau8FzzOvTvpuqgMNq4XDRVXhlp6GuTyZjCiG2M4LKNt5sYZGu+xW0Yfl8QUxfnARvjNreMLnkQjMz8d+luNBrxIlD9Ps80WKGEUMQkAyn7OVrqxKJB/9wipR0dqjzFwujzmQDzWWI5+ld7ajT8xPqyxSCt9sGf+S8Xbe6tWr8fvf/x5PP/00PvzwQ3z/+9+Hx+PB8uXLAQBLly7FmjVrxO3vuOMO7Ny5Ew8++CCOHj2K9evX48CBA1i5cqW4TVtbGxoaGvDBBx8AAI4dO4aGhoYIL9Mnn3yCf/7zn/i3f/u3iPOaO3cuxo8fjyVLluCdd97B3//+d9xzzz344Q9/CKfTvE+fBEGYAxtC3NTlRVO30AIwY+QLg/2xZ6noZW5HxtOSc50xVfor9FieU1kSLVOxnedTtvOMtGHllY97v3lx2r/XoieqL3FPlHootNzzpOWb0sqSYkZ8CydtKx8qHWt1HqAdc6BnLLdYpEy2T5oFgVTqtkdUaKUVepk1l2dcRN1www349a9/jbVr12LKlCloaGjAzp07RRP3yZMnce7cOXH72bNnY/PmzXjiiScwefJkPPvss9i+fTsmTJggbrNjxw5MnToVV199NQDgxhtvxNSpU7Fx40bFsTdt2oRhw4Zh7ty5EedltVrxwgsvwGq1oq6uDt/97nexdOlS3Hvvvam4DARBJEmp2y7+8WXBlWZ6ogrCnqjPWwURZZYf6ouMFHMQuULveLNwc2T+pERg40z6xXae8erWsHB7+LppQzGjtizhc0gU9rObSCWqX2Psi/zffX6pEuWSiRh5lhTbh0dmAGc+MlbJa/Ek1s7jeV6qRGkM8GYfWNjqO7mgZYysyI7AzayYnbdy5UpFJUnOa6+9FvHYwoULsXDhQt39LVu2DMuWLYt53F/+8pf45S9/qfv88OHDI9LQCYLITjiOQ02ZG0cbu/FheNl8iQlp5Qz2h519mjYjI+qLzrjBwuIbdTuvxxvA7qOCB/VrYysT3j+rREntvOhz8+Ss+vpojKoswPcvvzDh4ydDUsZyndV58jBNto3ak+S0W+ALSpUqjxi0KW0nb+exRQHRK1GSsZznhWHb7HXqShQQ/l3r9oqtOk0RNUgwl2e6nZcVIoogCMIMmIhiPopUeKLYH3+qRCUPq0R93taLXl9AnJu264NG9PtDGFmRjwlDE1/lLDdSA/J2XmwBfPGQYlw8pDjhYycL+wCQTCVKzxPV5wtGzM2Tb9PdH5BVopTxBoCynWcJV6cKnLE9UT3eALr6A4rQTbWIE44lPPbpeaESVa0hoiRPVA94no+62jKVZLydRxAEYRZshR4jFZ4ohpkr876oVBQ4UVHgBM8DHzVJ3pb/bTgLALhm8pCkbo5MNLCBu/G08zIN+wCQiCdKnJ0XsTpPZizX8U3lqbKimHdJLpLiXZ3ndkjjYs6096HXL4040spFYy0+1qqrKor8XasNz8/r6g+IwayZgEQUQRADBpYVxUhFYjnDSEuIiM1YFroZ9kW19njx+sctAIBrpwxJat9qQWB0dV42UJKXuCdKy+8ExDaWC9soPVE9GqGYrJXtC4bQZWB1HqBs6fV6tTOiGOx3jb33quLISlSew4oh4ce1IjLSBbXzCIIYMLAVegxTjeVqEUWVKFMYU12INz5pwYfnBF/US0caEQzxmDi0GBeGfS+JEtnOY+N6sv97xz4AdPcHEAiG4kptjyWQ5MZytZBRj36R2nnSdnkOK/IdVnGIMBC9EgUIIuq9M504096LQYXC9dcylQvHUj6ut7jgf269FBUFzojt0wlVogiCGDDUqESUmWNf1H/wK8gTZQpSJUoQUTsazgAAvplkFQoAnLL2Vb8/KN70c6GdJ6/ssGqPUfRW5+XJBFKsLCm1sVwtVOTREzYLF3EsNUPClaiznf3o1Yk3YBQ4lY9Xa1SiACGwNZMCCiARRRDEAGJYqdTOc9ktEX6PZMhX/WHPhWpGLjCWDSJu7MLp9l68faIdHAf8y6TkRZRcNLQanJuXLdisFnHFW7zz8/oNzM4zkiUFRI58YchXpxa6bDG9a/KYA2lunvbvp1v1gUUdtJlNkIgiCGLA4HbYRMO3mfEGgJaxPPurGbnA6KoCWDigvdePTW+cAADMGlGmW32IB7kgaDM4Ny+bELOi4ow5MGIa14s4yFN5orSM5YDy5z/a3DwG80Sd7pCM5WqxxJD/rlktXFbHiZCIIghiQMHM5Wb6oQDyRKUKl92K2vBy9f/31ucAgG9OGWrSviVBYHRuXjbBPgh0xmkuF1fnqUSUU3Y9okUcsG0AKbFcLbbkLdFCZ+zfNVYlPmvAWC5v51UWOrN6MgCJKIIgBhQs5sBMPxQgDGplf8ydNotuK4KIH+aL8gVDsFs5XDXBnCHvinZeT+6szGOUJBhz0BcrJypaO8+mFFFM8ET7EBEtaJPBPFHnu71iJIFbx88kr0RVamREZRMkogiCGFCwFXpmV6I4TprpVVHgzJmWUC4wpkoK1Lz8okGmRVMo2nke43PzsoXiBGIOgiFeDJvVSyzv94d0jeV5qlE5PbqeKFklKsbKPEAYy8SO/0l4pI/eBxH5Io7qLPZDASSiCIIYYFw+ZhDyHVZ8efQg0/fNbiS5dCPOBcYOLhT//1qTWnmAckl/LgVtMhIRUSxYFNCanRdpLNca+wLEXp0n/x0wYtTnOE40l3/SLKzE1FudJz+W1siXbCL7lygQBEHEwSW1ZXh3/byU+ChEEZVDN+JcYOLQYlgtHNwOK+aMS3xWnhqXop1nfG5etpDI/Lw+WXZTZGK5AU+Uqp3HjOXqqpHc7G3EWA4I5vJPmnvwsViJ0mvnScciEUUQBJFmUmVElSpR2d1iyDWGlOThv/91Jory7LorthJBGvsSEitRufS9k+bnGfdEsQqS02aBRfV7kGcg4oBVh/pUxvJolSgjnihAijno1WklMuTiikQUQRDEAIGtGqK5eeYze1SF6fuUC4SzHX0Acqydl0DEgd7KPPljfYp2nlIGuGxCtcob3g/LdIqMOJAby435D1nMAUPXE+WUe6KyW0SRJ4ogCMIg7EZCGVG5ARMEgDCzDcixdl4Cnii9oE1AabRn4ijCfO5QtfN0KlGl7gQqUSoRpbc6r0DhicruDyxUiSIIgjDIDZfUoKPXj3kXm7MEn0gtNqsFdisHf5BHd3h0Sk6188JCJR5PVL9OvAGgNJqz2IQ8h7b5vM8fBM/zkidKldjvsFlQ5LKhqz9gvBJVqhJROpUoIQFd+H+t4cPZBIkogiAIg3xtbBW+NrYq06dBxIHLZoU/KM2ey6V2npgTlaAnSo28xacbyGlT+qZCvPC4lgm8osAZFlGJVaKiDSD+6TfGwcJxKDIo0DIFiSiCIAhiwOJyWNEdbknlytw8Bmvndfb5EQrxEUZxLfTynwDAbrXAZuEQYMoIkZ4oeU4Um5vHcdpVo3+9bAT+/n4jZtaWGXo/LH08GD6+nrEcAP7tyyMN7TPTkCeKIAiCGLDIW1i5NDcPAIrCIirEQxSCsejXCdpk6M3TE5+3STEIoh/KoT1g+LuXDsd/r5gV4ZfSw2a1KIziepWoXIJEFEEQBDFgkWcl5dLcPEAQPEzk6M3P43le8e9+n3Z0gXyfctRtP3m2lhRvYN6II7kvym3ifjMFiSiCIAhiwCJvGeXiqspo8/Mee/UTjP3ZTrx3ulN8rC/K6jxAWZnLs1sjs6RkOVHySpRZDJP5ovSM5bkEiSiCIAhiwKKsROWeiIo2+mXXB03wBkL434Yz4mP9OiGaDPnjmiv4bLIYBJ/23LxkGKIQUdTOIwiCIIisxanyROUaJVECN1n21f4TbeJjUhK59u1dXqHSzpIKe6ICaWjnUSWKIAiCILIXuVDIxaR5NvqlUxVz0O8P4ny3MA/wyJlOUfDE1c7TqkSFH+N5oD18THVaeTKwmAOH1QK7NfclSO6/A4IgCILQQd6+yuVKlDpwk42xAYTVewc/bwcgjWvRiw9wxapEydqfLT2CiDKz7XZhZQE4DhhUmHuCVovcb0gSBEEQhA7qiINcQ5yfp/JEnW7vU/x7/2etuPyiQWJOlCFPlMY2disnZjm19giVLjM9UUNL8rDp5ktIRBEEQRBEtuOy5/jqvHA7T+2JYn4oCydUovZ/Jvii+uIwlrs0qlUcx8Fls8DjC6K1h7XzzPUufXVspan7yyTUziMIgiAGLHmKdl7uVT9KdCtRvQCAL42qAAC8c6oT/f5g1AHEwuPSbd8dQ2i1pKASNdAgEUUQBEEMWJy57okSR78ojeVnwu28L42qwKBCJ3zBEBpOdcRcnRcr4kC+TatHOOZASBZPFSSiCIIgiAELExO5NjePEcsTNaw0DzNHCLPr9n/WZqASJWvnxVjBR5Wo2GRcRD322GOora2Fy+XCrFmzsH///qjbb9u2DWPHjoXL5cLEiRPx0ksvKZ5/7rnnMHfuXJSXl4PjODQ0NGjup76+Hl/72teQn5+PoqIifOUrX0Ffn2TUq62tBcdxiq/7778/6fdLEARBpA8mGnJtbh4jlidqWKkbsxQiSlidp+V3ApSVOb2cJiauuvvNz4kaaGRURG3duhWrV6/GunXrcOjQIUyePBnz5s1Dc3Oz5vZ79+7F4sWLsWLFChw+fBgLFizAggULcOTIEXEbj8eDyy67DA888IDucevr6zF//nzMnTsX+/fvx9tvv42VK1fCYlFejnvvvRfnzp0Tv26//XZz3jhBEASRFlyiiMo9PxQgizjo9Ytz8nyBEBq7+gEIq91YJerg5+3o7hfEljyqQI567IsW6sfNzIkaaGT0yjz00EO45ZZbsHz5cgDAxo0b8eKLL2LTpk246667IrZ/5JFHMH/+fNx5550AgPvuuw+7du3Co48+io0bNwIAlixZAgA4ceKE7nFXrVqFH/3oR4pjjBkzJmK7wsJCVFdXJ/z+CIIgiMwyKBywWSNLys4lmIjyBUPo8wfhdtjQ2NkPnheGB1cUOFCe70Bxnh2dfX6caBUM53p+p7w4PFEMaufpk7FKlM/nw8GDBzFnzhzpZCwWzJkzB/X19Zqvqa+vV2wPAPPmzdPdXovm5mbs27cPlZWVmD17NqqqqnD55ZfjjTfeiNj2/vvvR3l5OaZOnYpf/epXCAQCUfft9XrR1dWl+CIIgiAyxxVjBuGhRZOx9prxmT6VhMizW+EIJ3szXxRbmTe0NA8cx8Fi4XBJbVnE67RwxeGJYpCxXJ+MiaiWlhYEg0FUVVUpHq+qqkJjY6PmaxobG+PaXotPP/0UALB+/Xrccsst2LlzJ6ZNm4Yrr7wSH3/8sbjdj370I2zZsgWvvvoqbrvtNvzyl7/Ef/zHf0Td94YNG1BcXCx+1dTUGD4vgiAIwnxsVguumzYMw0rdmT6VhOA4LsJcLpnKpffEfFEM/dV5sogDw5Uo8kTp8YWTl6GQYLq77bbbxDbi1KlTsXv3bmzatAkbNmwAAKxevVp8zaRJk+BwOHDbbbdhw4YNcDq1e+tr1qxRvK6rq4uEFEEQBJEUJXl2nO/2oiMcc3A6bCpnc+gAiL4ohhG/k5FqFUCeqGhk7MpUVFTAarWiqalJ8XhTU5OuD6m6ujqu7bUYPHgwAGD8eGVpd9y4cTh58qTu62bNmoVAIIATJ05o+qcAwOl06gosgiAIgkgEubkckNp5w2Q+r4uHFMHtsKKXjX0xsDpPr52nFlfkidInY+08h8OB6dOnY/fu3eJjoVAIu3fvRl1dneZr6urqFNsDwK5du3S316K2thZDhgzBsWPHFI9/9NFHGD58uO7rGhoaYLFYUFk5cOLqCYIgiOynWBVzcEaWEcWwWS2YPrxU/Lfe6rw8QxEHSmmgV7EiMtzOW716NW6++WbMmDEDM2fOxMMPPwyPxyO22ZYuXYqhQ4eKLbY77rgDl19+OR588EFcffXV2LJlCw4cOIAnnnhC3GdbWxtOnjyJs2fPAoAolqqrq1FdXQ2O43DnnXdi3bp1mDx5MqZMmYKnn34aR48exbPPPgtAMLDv27cPX/3qV1FYWIj6+nqsWrUK3/3ud1FaWgqCIAiCSBfq0S+nNUQUIPiiXv+4BVYLB7tVOxMrnsRyAMh3WGGx5F6+VrrIqIi64YYbcP78eaxduxaNjY2YMmUKdu7cKZrHT548qchumj17NjZv3ox77rkHd999N0aPHo3t27djwoQJ4jY7duwQRRgA3HjjjQCAdevWYf369QCAf//3f0d/fz9WrVqFtrY2TJ48Gbt27cKFF14IQGjLbdmyBevXr4fX68WIESOwatUqhd+JIAiCINIBG/3S0edDICjPiFKa5WeOKAcgzMTTCxY1khOlEFHUyotKxq/OypUrsXLlSs3nXnvttYjHFi5ciIULF+rub9myZVi2bFnM4951112aWVQAMG3aNLz11lsx90EQBEEQqUbuiWrs6kcwxMNu5VBZqPTgTh9eisUzL8DIinzdfRkb+yI9Tqby6NDVIQiCIIgsptgd9kT1+kU/1NCSvIg2m9XCYcN1E6PuyxWnJ8pN8QZRyfjsPIIgCIIg9JG385gfamiCCewuAxEHeQpPFNVaokFXhyAIgiCyGLmxXBw8XJJYeGiB04ahJXkI8TwKXdoSgNp5xqGrQxAEQRBZTEk44qCzz68Y+ZIIVguHnf/+ZQBCLIIWeWQsNwxdHYIgCILIYjQrUUkMVC502aM+75R5omjkS3TIE0UQBEEQWQybndfnD+J4sweAcuSL2bjIE2UYElEEQRAEkcUUOm2whlfisYyoYWWpG6hM7TzjkIgiCIIgiCyG4zgU50ktOKuFQ1Vh6ua0krHcOCSiCIIgCCLLKZGJqMHFLl1TuBlQTpRxSEQRBEEQRJbDfFFAav1QgLKdR5Wo6JCIIgiCIIgsR16JGlaaOj8UQMbyeCARRRAEQRBZTkl49AuQeEaUUZw2ecQBiahokIgiCIIgiCynWFGJSq2I4jhO9EVROy86JKIIgiAIIsspkXmihqXYEwUAQ4rzYOGAquLUrQIcCJDEJAiCIIgsJ52eKADYtOwStPR4UVnoSvmxchkSUQRBEASR5TBPFMcB1cWpFza1FfmorchP+XFyHWrnEQRBEESWwyIOqotccNjo1p0tUCWKIAiCILKcaTWlGF1ZgKsmVGf6VAgZJKIIgiAIIsspdtuxa/XlmT4NQgXVBAmCIAiCIBKARBRBEARBEEQCkIgiCIIgCIJIABJRBEEQBEEQCUAiiiAIgiAIIgFIRBEEQRAEQSQAiSiCIAiCIIgEIBFFEARBEASRACSiCIIgCIIgEoBEFEEQBEEQRAKQiCIIgiAIgkgAElEEQRAEQRAJQCKKIAiCIAgiAUhEEQRBEARBJIAt0ycwkOF5HgDQ1dWV4TMhCIIgCMIo7L7N7uN6kIhKId3d3QCAmpqaDJ8JQRAEQRDx0t3djeLiYt3nOT6WzCISJhQK4ezZsygsLATHcSk9VldXF2pqanDq1CkUFRWl9FhfdOhapw+61umDrnX6oGudPhK91jzPo7u7G0OGDIHFou98okpUCrFYLBg2bFhaj1lUVES/lGmCrnX6oGudPuhapw+61ukjkWsdrQLFIGM5QRAEQRBEApCIIgiCIAiCSAASUQMEp9OJdevWwel0ZvpUBjx0rdMHXev0Qdc6fdC1Th+pvtZkLCcIgiAIgkgAqkQRBEEQBEEkAIkogiAIgiCIBCARRRAEQRAEkQAkogiCIAiCIBKARFQWs2HDBlxyySUoLCxEZWUlFixYgGPHjim26e/vxw9/+EOUl5ejoKAA119/PZqamhTbnDx5EldffTXcbjcqKytx5513IhAIpPOtZD2xrnVbWxtuv/12jBkzBnl5ebjgggvwox/9CJ2dnYr90LWOjZGfawbP87jqqqvAcRy2b9+ueI6udWyMXuv6+np87WtfQ35+PoqKivCVr3wFfX194vNtbW246aabUFRUhJKSEqxYsQI9PT3pfCtZj5Fr3djYiCVLlqC6uhr5+fmYNm0a/vKXvyi2oWsdm8cffxyTJk0SAzTr6urwt7/9TXw+rfdFnsha5s2bxz/11FP8kSNH+IaGBv4b3/gGf8EFF/A9PT3iNt/73vf4mpoafvfu3fyBAwf4Sy+9lJ89e7b4fCAQ4CdMmMDPmTOHP3z4MP/SSy/xFRUV/Jo1azLxlrKWWNf6vffe46+77jp+x44d/CeffMLv3r2bHz16NH/99deL+6BrbQwjP9eMhx56iL/qqqt4APzzzz8vPk7X2hhGrvXevXv5oqIifsOGDfyRI0f4o0eP8lu3buX7+/vFbebPn89PnjyZf+utt/jXX3+dHzVqFL948eJMvKWsxci1/vrXv85fcskl/L59+/jjx4/z9913H2+xWPhDhw6J29C1js2OHTv4F198kf/oo4/4Y8eO8XfffTdvt9v5I0eO8Dyf3vsiiagcorm5mQfA/+Mf/+B5nuc7Ojp4u93Ob9u2Tdzmww8/5AHw9fX1PM/z/EsvvcRbLBa+sbFR3Obxxx/ni4qKeK/Xm943kEOor7UWf/7zn3mHw8H7/X6e5+laJ4retT58+DA/dOhQ/ty5cxEiiq51Ymhd61mzZvH33HOP7ms++OADHgD/9ttvi4/97W9/4zmO48+cOZPS881ltK51fn4+/6c//UmxXVlZGf/73/+e53m61slQWlrK/+EPf0j7fZHaeTkEax2VlZUBAA4ePAi/3485c+aI24wdOxYXXHAB6uvrAQhl+okTJ6KqqkrcZt68eejq6sL777+fxrPPLdTXWm+boqIi2GzCCEq61omhda17e3vxne98B4899hiqq6sjXkPXOjHU17q5uRn79u1DZWUlZs+ejaqqKlx++eV44403xNfU19ejpKQEM2bMEB+bM2cOLBYL9u3bl943kENo/VzPnj0bW7duRVtbG0KhELZs2YL+/n5cccUVAOhaJ0IwGMSWLVvg8XhQV1eX9vsiiagcIRQK4d///d/xpS99CRMmTAAg9NcdDgdKSkoU21ZVVaGxsVHcRv6Dwp5nzxGRaF1rNS0tLbjvvvtw6623io/RtY4fvWu9atUqzJ49G9/85jc1X0fXOn60rvWnn34KAFi/fj1uueUW7Ny5E9OmTcOVV16Jjz/+GIBwPSsrKxX7stlsKCsro2utg97P9Z///Gf4/X6Ul5fD6XTitttuw/PPP49Ro0YBoGsdD++99x4KCgrgdDrxve99D88//zzGjx+f9vuiLfG3QKSTH/7whzhy5IjiEyKRGmJd666uLlx99dUYP3481q9fn96TG2BoXesdO3Zgz549OHz4cAbPbOChda1DoRAA4LbbbsPy5csBAFOnTsXu3buxadMmbNiwISPnmuvo/Q352c9+ho6ODrzyyiuoqKjA9u3bsWjRIrz++uuYOHFihs42NxkzZgwaGhrQ2dmJZ599FjfffDP+8Y9/pP08qBKVA6xcuRIvvPACXn31VQwbNkx8vLq6Gj6fDx0dHYrtm5qaxBZIdXV1xKoE9m+tNskXHb1rzeju7sb8+fNRWFiI559/Hna7XXyOrnV86F3rPXv24Pjx4ygpKYHNZhPbpddff73Y9qBrHR9613rw4MEAgPHjxyu2HzduHE6ePAlAuJ7Nzc2K5wOBANra2uhaa6B3rY8fP45HH30UmzZtwpVXXonJkydj3bp1mDFjBh577DEAdK3jweFwYNSoUZg+fTo2bNiAyZMn45FHHkn7fZFEVBbD8zxWrlyJ559/Hnv27MGIESMUz0+fPh12ux27d+8WHzt27BhOnjyJuro6AEBdXR3ee+89xS/mrl27UFRUFPGH84tMrGsNCBWouXPnwuFwYMeOHXC5XIrn6VobI9a1vuuuu/Duu++ioaFB/AKA3/zmN3jqqacA0LU2SqxrXVtbiyFDhkQsxf/oo48wfPhwAMK17ujowMGDB8Xn9+zZg1AohFmzZqX+TeQIsa51b28vAMBiUd52rVarWBGka504oVAIXq83/ffFpC3xRMr4/ve/zxcXF/OvvfYaf+7cOfGrt7dX3OZ73/sef8EFF/B79uzhDxw4wNfV1fF1dXXi82wp59y5c/mGhgZ+586d/KBBg2gpuIpY17qzs5OfNWsWP3HiRP6TTz5RbBMIBHiep2ttFCM/12qgE3FA1zo6Rq71b37zG76oqIjftm0b//HHH/P33HMP73K5+E8++UTcZv78+fzUqVP5ffv28W+88QY/evRoWnavIta19vl8/KhRo/gvf/nL/L59+/hPPvmE//Wvf81zHMe/+OKL4n7oWsfmrrvu4v/xj3/wn332Gf/uu+/yd911F89xHP/yyy/zPJ/e+yKJqCwGgObXU089JW7T19fH/+AHP+BLS0t5t9vNf+tb3+LPnTun2M+JEyf4q666is/Ly+MrKir4//N//o+4LJ8QiHWtX331Vd1tPvvsM3E/dK1jY+TnWus1chHF83StjWD0Wm/YsIEfNmwY73a7+bq6Ov71119XPN/a2sovXryYLygo4IuKivjly5fz3d3daXwn2Y+Ra/3RRx/x1113HV9ZWcm73W5+0qRJEZEHdK1j86//+q/88OHDeYfDwQ8aNIi/8sorRQHF8+m9L3I8z/Px1a4IgiAIgiAI8kQRBEEQBEEkAIkogiAIgiCIBCARRRAEQRAEkQAkogiCIAiCIBKARBRBEARBEEQCkIgiCIIgCIJIABJRBEEQBEEQCUAiiiAIgiAIIgFIRBEEQaQRjuOwffv2TJ8GQRAmQCKKIIgvDMuWLQPHcRFf8+fPz/SpEQSRg9gyfQIEQRDpZP78+XjqqacUjzmdzgydDUEQuQxVogiC+ELhdDpRXV2t+CotLQUgtNoef/xxXHXVVcjLy8PIkSPx7LPPKl7/3nvv4Wtf+xry8vJQXl6OW2+9FT09PYptNm3ahIsvvhhOpxODBw/GypUrFc+3tLTgW9/6FtxuN0aPHo0dO3ak9k0TBJESSEQRBEHI+NnPfobrr78e77zzDm666SbceOON+PDDDwEAHo8H8+bNQ2lpKd5++21s27YNr7zyikIkPf744/jhD3+IW2+9Fe+99x527NiBUaNGKY7x85//HIsWLcK7776Lb3zjG7jpppvQ1taW1vdJEIQJ8ARBEF8Qbr75Zt5qtfL5+fmKr1/84hc8z/M8AP573/ue4jWzZs3iv//97/M8z/NPPPEEX1payvf09IjPv/jii7zFYuEbGxt5nuf5IUOG8D/96U91zwEAf88994j/7unp4QHwf/vb30x7nwRBpAfyRBEE8YXiq1/9Kh5//HHFY2VlZeL/19XVKZ6rq6tDQ0MDAODDDz/E5MmTkZ+fLz7/pS99CaFQCMeOHQPHcTh79iyuvPLKqOcwadIk8f/z8/NRVFSE5ubmRN8SQRAZgkQUQRBfKPLz8yPaa2aRl5dnaDu73a74N8dxCIVCqTglgiBSCHmiCIIgZLz11lsR/x43bhwAYNy4cXjnnXfg8XjE5998801YLBaMGTMGhYWFqK2txe7du9N6zgRBZAaqRBEE8YXC6/WisbFR8ZjNZkNFRQUAYNu2bZgxYwYuu+wyPPPMM9i/fz+efPJJAMBNN92EdevW4eabb8b69etx/vx53H777ViyZAmqqqoAAOvXr8f3vvc9VFZW4qqrrkJ3dzfefPNN3H777el9owRBpBwSUQRBfKHYuXMnBg8erHhszJgxOHr0KABh5dyWLVvwgx/8AIMHD8b//M//YPz48QAAt9uNv//977jjjjtwySWXwO124/rrr8dDDz0k7uvmm29Gf38/fvOb3+DHP/4xKioq8O1vfzt9b5AgiLTB8TzPZ/okCIIgsgGO4/D8889jwYIFmT4VgiByAPJEEQRBEARBJACJKIIgCIIgiAQgTxRBEEQYcjcQBBEPVIkiCIIgCIJIABJRBEEQBEEQCUAiiiAIgiAIIgFIRBEEQRAEQSQAiSiCIAiCIIgEIBFFEARBEASRACSiCIIgCIIgEoBEFEEQBEEQRAL8/x3LqNmL+/QZAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"loss_fn = nn.BCELoss()\n",
"optimizer = torch.optim.SGD(model.parameters(), lr=1e-3)\n",
"\n",
"epochs = 300\n",
"\n",
"fig, ax = plt.subplots(1,1)\n",
"\n",
"#ax.set_xlim(0, epochs)\n",
"#plt.show()\n",
"\n",
"loss_history = []\n",
"accuracy_history = []\n",
"epoch_history = []\n",
"\n",
"accuracy = None\n",
"loss = None\n",
"\n",
"for t in range(epochs):\n",
" ax.cla()\n",
" ax.set_xlabel(\"Epoch\")\n",
" ax.set_ylabel(\"Loss\")\n",
" ax.plot(epoch_history[-100:], loss_history[-100:])\n",
" #ax.plot(epoch_history, accuracy_history)\n",
" display(fig)\n",
" \n",
" train_loop(epochs, t+1, train_dataloader, model, loss_fn, optimizer, accuracy, loss)\n",
" accuracy, loss = test_loop(epochs, t+1, test_dataloader, model, loss_fn)\n",
"\n",
" loss_history.append(loss)\n",
" accuracy_history.append(accuracy)\n",
" epoch_history.append(t)\n",
"\n",
" clear_output(wait = True)\n",
"\n",
"print_status(epochs, epochs, 0, 1, 1, accuracy, loss)\n",
"print(\"\")\n",
"print(\"Done!\")"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 24 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"\n",
"filter = model.convStack[0].weight.data.clone().to(\"cpu\")\n",
"filter.shape\n",
"\n",
"for i in range(24):\n",
" plt.subplot(3, 8, i+1)\n",
" plt.imshow(filter[i, 0])\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"BASE_DIR = \"model\"\n",
"ID = \"modelv4.1\"\n",
"pytorch_total_params = round(sum(p.numel() for p in model.parameters())/1000)\n",
"\n",
"torch.save(model.state_dict(), os.path.join(BASE_DIR, ID + f\"_{pytorch_total_params}k_.pth\"))\n",
"torch.jit.script(model).save(os.path.join(BASE_DIR, ID + f\"_{pytorch_total_params}k_script.pth\"))"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 0001/0001 loss: 0.00000 [==============================] Test: Accuracy: 99.981%, Test loss: 0.001013 \n",
"Parameters: 5\n"
]
}
],
"source": [
"loss_fn = nn.BCELoss()\n",
"model_under_test = torch.jit.load(\"model/modelv2.2_9k_script.pth\")\n",
"acc, loss = test_loop(1, 1, test_dataloader, model_under_test, loss_fn)\n",
"pytorch_total_params = round(sum(p.numel() for p in model.parameters())/1000)\n",
"print(\"\\nParameters:\", pytorch_total_params)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}