{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "1b5b7e0e", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:27:07.130546Z", "iopub.status.busy": "2024-10-19T03:27:07.130175Z", "iopub.status.idle": "2024-10-19T03:27:23.548705Z", "shell.execute_reply": "2024-10-19T03:27:23.547706Z" }, "id": "B9q9ZSp5lo7X", "outputId": "890cd4d8-5f85-4756-a09b-1dfe940ee81a", "papermill": { "duration": 16.444707, "end_time": "2024-10-19T03:27:23.551114", "exception": false, "start_time": "2024-10-19T03:27:07.106407", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting seqeval\r\n", " Downloading seqeval-1.2.2.tar.gz (43 kB)\r\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m43.6/43.6 kB\u001b[0m \u001b[31m1.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l-\b \b\\\b \b|\b \bdone\r\n", "\u001b[?25hRequirement already satisfied: numpy>=1.14.0 in /opt/conda/lib/python3.10/site-packages (from seqeval) (1.26.4)\r\n", "Requirement already satisfied: scikit-learn>=0.21.3 in /opt/conda/lib/python3.10/site-packages (from seqeval) (1.2.2)\r\n", "Requirement already satisfied: scipy>=1.3.2 in /opt/conda/lib/python3.10/site-packages (from scikit-learn>=0.21.3->seqeval) (1.14.1)\r\n", "Requirement already satisfied: joblib>=1.1.1 in /opt/conda/lib/python3.10/site-packages (from scikit-learn>=0.21.3->seqeval) (1.4.2)\r\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.10/site-packages (from scikit-learn>=0.21.3->seqeval) (3.5.0)\r\n", "Building wheels for collected packages: seqeval\r\n", " Building wheel for seqeval (setup.py) ... \u001b[?25l-\b \b\\\b \b|\b \bdone\r\n", "\u001b[?25h Created wheel for seqeval: filename=seqeval-1.2.2-py3-none-any.whl size=16161 sha256=69bd75e0f0986914506845525271beaecf662a42481bb6c537436e831a99a0c6\r\n", " Stored in directory: /root/.cache/pip/wheels/1a/67/4a/ad4082dd7dfc30f2abfe4d80a2ed5926a506eb8a972b4767fa\r\n", "Successfully built seqeval\r\n", "Installing collected packages: seqeval\r\n", "Successfully installed seqeval-1.2.2\r\n" ] } ], "source": [ "!pip install seqeval" ] }, { "cell_type": "code", "execution_count": 2, "id": "0e6809c5", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:27:23.595729Z", "iopub.status.busy": "2024-10-19T03:27:23.595398Z", "iopub.status.idle": "2024-10-19T03:27:32.907685Z", "shell.execute_reply": "2024-10-19T03:27:32.906858Z" }, "id": "JqGBmHCdlo7Y", "papermill": { "duration": 9.337092, "end_time": "2024-10-19T03:27:32.910127", "exception": false, "start_time": "2024-10-19T03:27:23.573035", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import pandas as pd\n", "import re\n", "from transformers import BertTokenizer, BertForTokenClassification, AdamW, BertTokenizerFast\n", "from nltk.tokenize import sent_tokenize, word_tokenize\n", "import torch.nn as nn\n", "import torch\n", "import tqdm" ] }, { "cell_type": "code", "execution_count": 3, "id": "e54c2694", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:27:32.955778Z", "iopub.status.busy": "2024-10-19T03:27:32.954920Z", "iopub.status.idle": "2024-10-19T03:27:33.127858Z", "shell.execute_reply": "2024-10-19T03:27:33.126903Z" }, "id": "YMZ4Ox4jlo7Z", "outputId": "e93176cb-247d-430a-e0bd-5022444f9b87", "papermill": { "duration": 0.197735, "end_time": "2024-10-19T03:27:33.130177", "exception": false, "start_time": "2024-10-19T03:27:32.932442", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[nltk_data] Downloading package punkt to /usr/share/nltk_data...\n", "[nltk_data] Package punkt is already up-to-date!\n", "[nltk_data] Downloading package stopwords to /usr/share/nltk_data...\n", "[nltk_data] Package stopwords is already up-to-date!\n" ] } ], "source": [ "import re\n", "import nltk\n", "from nltk.corpus import stopwords\n", "from nltk.tokenize import word_tokenize\n", "\n", "# Download stopwords if not already downloaded\n", "nltk.download('punkt')\n", "nltk.download('stopwords')\n", "\n", "# Set of stop words (you can add more if needed)\n", "stop_words = set(stopwords.words('english'))" ] }, { "cell_type": "code", "execution_count": 4, "id": "f7f68ef5", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:27:33.174865Z", "iopub.status.busy": "2024-10-19T03:27:33.174544Z", "iopub.status.idle": "2024-10-19T03:27:37.069450Z", "shell.execute_reply": "2024-10-19T03:27:37.068367Z" }, "id": "tWH6Vp5Flo7a", "papermill": { "duration": 3.919845, "end_time": "2024-10-19T03:27:37.071804", "exception": false, "start_time": "2024-10-19T03:27:33.151959", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "df = pd.read_excel(\"/kaggle/input/miimansa/G1.xlsx\")\n", "df2 = pd.read_excel(\"/kaggle/input/miimansa/G2.xlsx\")\n", "df3 = pd.read_excel(\"/kaggle/input/miimansa/G3.xlsx\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "ea5a10eb", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:27:37.116964Z", "iopub.status.busy": "2024-10-19T03:27:37.116457Z", "iopub.status.idle": "2024-10-19T03:27:37.135451Z", "shell.execute_reply": "2024-10-19T03:27:37.134392Z" }, "id": "-v1hN8xwdA_O", "papermill": { "duration": 0.04403, "end_time": "2024-10-19T03:27:37.137759", "exception": false, "start_time": "2024-10-19T03:27:37.093729", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "df.dropna(inplace=True)\n", "df2.dropna(inplace=True)\n", "df3.dropna(inplace=True)" ] }, { "cell_type": "code", "execution_count": 6, "id": "fbe36515", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:27:37.184837Z", "iopub.status.busy": "2024-10-19T03:27:37.184522Z", "iopub.status.idle": "2024-10-19T03:27:37.202782Z", "shell.execute_reply": "2024-10-19T03:27:37.201870Z" }, "id": "gLVf86bYlo7a", "outputId": "0b2c5507-2b12-4daa-aaf7-07f383d7a95a", "papermill": { "duration": 0.043363, "end_time": "2024-10-19T03:27:37.204761", "exception": false, "start_time": "2024-10-19T03:27:37.161398", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0IDtagstext
00NCT0236194416:20:treatment,25:44:treatmentCurrent use of hemo- or peritoneal dialysis
11NCT0259352624:43:treatment,Intention to change to peritoneal dialysis, or...
22NCT0270327227:52:treatment,58:66:treatmentParticipants with ongoing anticoagulation trea...
33NCT030063028:16:treatmentUse of warfarin
44NCT029311101:9:treatmentwarfarin
\n", "
" ], "text/plain": [ " Unnamed: 0 ID tags \\\n", "0 0 NCT02361944 16:20:treatment,25:44:treatment \n", "1 1 NCT02593526 24:43:treatment, \n", "2 2 NCT02703272 27:52:treatment,58:66:treatment \n", "3 3 NCT03006302 8:16:treatment \n", "4 4 NCT02931110 1:9:treatment \n", "\n", " text \n", "0 Current use of hemo- or peritoneal dialysis \n", "1 Intention to change to peritoneal dialysis, or... \n", "2 Participants with ongoing anticoagulation trea... \n", "3 Use of warfarin \n", "4 warfarin " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df3.head()" ] }, { "cell_type": "code", "execution_count": 7, "id": "92afd862", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:27:37.249796Z", "iopub.status.busy": "2024-10-19T03:27:37.249475Z", "iopub.status.idle": "2024-10-19T03:27:40.749461Z", "shell.execute_reply": "2024-10-19T03:27:40.748585Z" }, "id": "wajmmeHTlo7d", "outputId": "d6d32f14-ca2e-4f95-c456-fd03ac06289b", "papermill": { "duration": 3.525134, "end_time": "2024-10-19T03:27:40.751577", "exception": false, "start_time": "2024-10-19T03:27:37.226443", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e9fbb901478541afaa5e4331803f95a5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "tokenizer_config.json: 0%| | 0.00/49.0 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# Plotting the training loss\n", "plt.plot(range(1, num_epochs + 1), loss_values, marker='o', label=\"Training Loss\")\n", "plt.title(\"Training Loss over Epochs\")\n", "plt.xlabel(\"Epochs\")\n", "plt.ylabel(\"Loss\")\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "id": "d3d010fe", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:48:40.469949Z", "iopub.status.busy": "2024-10-19T03:48:40.469176Z", "iopub.status.idle": "2024-10-19T03:48:40.475905Z", "shell.execute_reply": "2024-10-19T03:48:40.475030Z" }, "id": "Eloe2CR8lo7j", "papermill": { "duration": 0.198187, "end_time": "2024-10-19T03:48:40.477782", "exception": false, "start_time": "2024-10-19T03:48:40.279595", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "['O',\n", " 'B-treatment',\n", " 'I-treatment',\n", " 'B-chronic_disease',\n", " 'I-chronic_disease',\n", " 'B-cancer',\n", " 'I-cancer',\n", " 'B-allergy_name',\n", " 'I-allergy_name']" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(label_map.keys())" ] }, { "cell_type": "code", "execution_count": 22, "id": "4368e762", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:48:40.815381Z", "iopub.status.busy": "2024-10-19T03:48:40.814692Z", "iopub.status.idle": "2024-10-19T03:48:40.832244Z", "shell.execute_reply": "2024-10-19T03:48:40.831329Z" }, "id": "gwsrnHeklo7j", "papermill": { "duration": 0.186816, "end_time": "2024-10-19T03:48:40.834142", "exception": false, "start_time": "2024-10-19T03:48:40.647326", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "from sklearn.metrics import f1_score\n", "import numpy as np\n", "from seqeval.metrics import classification_report\n", "\n", "def evaluation(test_dataloaders, model):\n", "\n", " # Evaluation on test dataset\n", " model.eval()\n", "\n", " correct_predictions = 0\n", " total = 0\n", "\n", " y_true = []\n", " y_pred = []\n", "\n", " with torch.no_grad():\n", " for batch in tqdm.tqdm(test_dataloaders):\n", " input_ids = batch['input_ids'].to(device)\n", " labels = batch['labels'].to(device)\n", "\n", " outputs = model(input_ids)\n", " # Get predictions by taking the argmax of the logits\n", " predictions = torch.argmax(outputs.logits, dim=-1)\n", "\n", " # Convert to numpy arrays\n", " labels = labels.cpu().numpy()\n", " predictions = predictions.cpu().numpy()\n", "\n", "# print(\"labels: \", labels.shape)\n", "# print(\"predictions: \", predictions.shape)\n", "\n", "# print(\"labels: \", labels)\n", "# print(\"predictions: \", predictions)\n", "# return\n", "\n", " for label, pred in zip(labels, predictions):\n", " # Filter out -100 labels\n", " y_true.append([id2label[l] for l in label if l != -100])\n", " y_pred.append([id2label[p] for p, l in zip(pred, label) if l != -100])\n", "\n", " print(classification_report(y_true, y_pred))\n", " print(\"*\"*40)\n", "\n", "# print(y_true)\n", "# print(y_pred)\n", "\n", " report = classification_report(y_true, y_pred, output_dict=True)\n", "\n", " # Extracting F1 scores for each entity type\n", " entity_f1_scores = {}\n", " for label in ['treatment', 'chronic_disease', 'cancer', 'allergy_name']:\n", " entity_f1_scores[label] = report[label]['f1-score']\n", "\n", " weighted_avg_f1 = report['weighted avg']['f1-score']\n", "\n", " print(\"Entity-wise F1 scores:\")\n", " for entity, score in entity_f1_scores.items():\n", " print(f\"{entity}: {score:.4f}\")\n", " print(f\"Weighted Average F1 score: {weighted_avg_f1:.4f}\")\n", "\n", " return (entity_f1_scores, weighted_avg_f1)" ] }, { "cell_type": "markdown", "id": "07db5b76", "metadata": { "id": "IGfSMxuPlo7k", "papermill": { "duration": 0.163507, "end_time": "2024-10-19T03:48:41.163645", "exception": false, "start_time": "2024-10-19T03:48:41.000138", "status": "completed" }, "tags": [] }, "source": [ "### Task 2" ] }, { "cell_type": "code", "execution_count": 23, "id": "e2e40190", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:48:41.497244Z", "iopub.status.busy": "2024-10-19T03:48:41.496062Z", "iopub.status.idle": "2024-10-19T03:48:41.507922Z", "shell.execute_reply": "2024-10-19T03:48:41.506948Z" }, "id": "CI9uE4_flo7m", "papermill": { "duration": 0.181607, "end_time": "2024-10-19T03:48:41.509989", "exception": false, "start_time": "2024-10-19T03:48:41.328382", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "class EWC:\n", " def __init__(self, model, dataloader, importance=1000):\n", " self.model = model\n", " self.importance = importance\n", " self.params = {n: p for n, p in self.model.named_parameters() if p.requires_grad}\n", " self._means = {}\n", " self._fishers = {}\n", " self.dataloader = dataloader\n", " self.compute_fisher_information()\n", "\n", " def compute_fisher_information(self):\n", " self.model.eval()\n", " fisher_diagonals = {n: torch.zeros_like(p) for n, p in self.params.items()}\n", "\n", " for batch in self.dataloader:\n", " outputs = self.model(input_ids=batch['input_ids'].to(device),\n", " attention_mask=batch['attention_mask'].to(device),\n", " labels=batch['labels'].to(device))\n", " loss = outputs.loss\n", " loss.backward()\n", "\n", " for n, p in self.params.items():\n", " fisher_diagonals[n] += (p.grad ** 2) / len(self.dataloader)\n", "\n", " for n, p in fisher_diagonals.items():\n", " self._fishers[n] = fisher_diagonals[n]\n", " self._means[n] = self.params[n].detach().clone()\n", "\n", " def penalty(self):\n", " loss = 0\n", " for n, p in self.params.items():\n", " fisher = self._fishers[n]\n", " mean = self._means[n]\n", " loss += (fisher * (p - mean) ** 2).sum()\n", " return loss * self.importance\n" ] }, { "cell_type": "code", "execution_count": 24, "id": "e1159fec", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T03:48:41.852631Z", "iopub.status.busy": "2024-10-19T03:48:41.851811Z", "iopub.status.idle": "2024-10-19T04:08:04.342631Z", "shell.execute_reply": "2024-10-19T04:08:04.341791Z" }, "id": "_Y6MYJzqlo7m", "papermill": { "duration": 1162.666952, "end_time": "2024-10-19T04:08:04.345282", "exception": false, "start_time": "2024-10-19T03:48:41.678330", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training on Task T2\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 323/323 [03:50<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1 - Loss: 0.029211484109146677\n", "New minimum loss: 0.0292, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 323/323 [03:50<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2 - Loss: 0.018161326241693906\n", "New minimum loss: 0.0182, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 323/323 [03:50<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 3 - Loss: 0.012592665302918953\n", "New minimum loss: 0.0126, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 323/323 [03:50<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 4 - Loss: 0.008822424781664446\n", "New minimum loss: 0.0088, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 323/323 [03:51<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 5 - Loss: 0.006582645188127544\n", "New minimum loss: 0.0066, saving model...\n" ] } ], "source": [ "import random\n", "from torch.utils.data import Subset, ConcatDataset\n", "\n", "# Keep 100 examples from T1\n", "replay_buffer_T1 = random.sample(range(len(train_dataloaders[\"T1\"].dataset)), 100)\n", "sampled_dataset = Subset(train_dataloaders[\"T1\"].dataset, replay_buffer_T1)\n", "replay_dataloader_T1 = DataLoader(sampled_dataset, batch_size=batch_size, shuffle=True)\n", "\n", "# Combine the two datasets\n", "combined_dataset = ConcatDataset([train_dataloaders[\"T2\"].dataset, replay_dataloader_T1.dataset])\n", "# Create a new DataLoader from the combined dataset\n", "combined_loader = DataLoader(combined_dataset, batch_size=batch_size, shuffle=True)\n", "\n", "# Task 2 training with EWC\n", "print(\"Training on Task T2\")\n", "\n", "# model = BertForTokenClassification.from_pretrained(\"bert-base-cased\", num_labels=len(label_map))\n", "# model.load_state_dict(torch.load('model_weights1.pth', weights_only=True))\n", "# model.to(device)\n", "\n", "# Elastic Weight Consolidation for Task 2\n", "ewc_T2 = EWC(model, replay_dataloader_T1)\n", "\n", "loss_values, model = train_model(model, train_dataloaders[\"T2\"], optimizer, 'model_weights2.pth', ewc=ewc_T2, epochs=num_epochs)\n", "# Assuming `model` is your trained model\n", "# torch.save(multi_label_model.state_dict(), 'model_weights2.pth')" ] }, { "cell_type": "code", "execution_count": 25, "id": "9756bb52", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T04:08:04.976483Z", "iopub.status.busy": "2024-10-19T04:08:04.976123Z", "iopub.status.idle": "2024-10-19T04:08:05.265154Z", "shell.execute_reply": "2024-10-19T04:08:05.264237Z" }, "id": "vphcmWcBlo7n", "papermill": { "duration": 0.619363, "end_time": "2024-10-19T04:08:05.267369", "exception": false, "start_time": "2024-10-19T04:08:04.648006", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABqIklEQVR4nO3deVwU9f8H8NfsAssNch8eKKCACCgq4pEXCmom3polmj8rU1PpUCuvrMxS09Q0K7XLr9fXSE1NPPDEE/EEvEXlEpFDkEN2fn8Q+41TRGB2l9fz8djHw539zOz7zWzxYmZ2PoIoiiKIiIiISEUmdQFERERE6oYBiYiIiKgUBiQiIiKiUhiQiIiIiEphQCIiIiIqhQGJiIiIqBQGJCIiIqJSGJCIiIiISmFAIiIiIiqFAYlIC40ZMwZOTk7VWnfu3LkQBKFmCyIqx/r16yEIAs6cOSN1KURlMCAR1SFBEKr0iIiIkLpUSYwZMwbGxsZSl6E1igNIRY8TJ05IXSKR2tKRugCi+uTXX38t8fyXX35BeHh4meXu7u4v9D4//PADlEpltdb95JNPMGPGjBd6f1Ivn376KZo2bVpmuYuLiwTVEGkGBiSiOvTaa6+VeH7ixAmEh4eXWV5aTk4ODA0Nq/w+urq61aoPAHR0dKCjw/81aIrs7GwYGRlVOqZPnz5o27ZtHVVEpB14io1IzXTr1g2enp44e/YsXnrpJRgaGuKjjz4CAPz555/o168fHBwcoFAo4OzsjPnz56OwsLDENkpfg3T79m0IgoBFixZhzZo1cHZ2hkKhQLt27XD69OkS65Z3DZIgCJg0aRLCwsLg6ekJhUKBli1bYs+ePWXqj4iIQNu2baGvrw9nZ2d8//33NX5d05YtW+Dr6wsDAwNYWVnhtddew/3790uMSUpKwtixY9GwYUMoFArY29tjwIABuH37tmrMmTNnEBgYCCsrKxgYGKBp06Z44403qlTDd999h5YtW0KhUMDBwQETJ05Eenq66vVJkybB2NgYOTk5ZdYdOXIk7OzsSuy33bt3o0uXLjAyMoKJiQn69euHy5cvl1iv+BTkjRs30LdvX5iYmGDUqFFVqrcy//58fPPNN2jSpAkMDAzQtWtXXLp0qcz4AwcOqGo1NzfHgAEDEBMTU2bc/fv3MW7cONXntWnTppgwYQLy8/NLjMvLy0NoaCisra1hZGSEgQMH4sGDByXGvMi+IqoO/plIpIYePnyIPn36YMSIEXjttddga2sLoOiaEmNjY4SGhsLY2BgHDhzA7NmzkZmZia+//vqZ292wYQOysrLw1ltvQRAEfPXVVxg0aBBu3rz5zKNOR48exbZt2/DOO+/AxMQE3377LQYPHoz4+HhYWloCAM6dO4egoCDY29tj3rx5KCwsxKeffgpra+sX/6H8Y/369Rg7dizatWuHBQsWIDk5GcuWLcOxY8dw7tw5mJubAwAGDx6My5cvY/LkyXByckJKSgrCw8MRHx+vet67d29YW1tjxowZMDc3x+3bt7Ft27Zn1jB37lzMmzcPAQEBmDBhAuLi4rBq1SqcPn0ax44dg66uLoYPH46VK1fir7/+wtChQ1Xr5uTkYMeOHRgzZgzkcjmAolOvISEhCAwMxMKFC5GTk4NVq1ahc+fOOHfuXImw+/TpUwQGBqJz585YtGhRlY4sZmRkIDU1tcQyQRBU+63YL7/8gqysLEycOBG5ublYtmwZevTogYsXL6o+g/v27UOfPn3QrFkzzJ07F0+ePMHy5cvRqVMnREVFqWpNSEhA+/btkZ6ejjfffBNubm64f/8+tm7dipycHOjp6aned/LkyWjQoAHmzJmD27dvY+nSpZg0aRI2bdoEAC+0r4iqTSQiyUycOFEs/Z9h165dRQDi6tWry4zPyckps+ytt94SDQ0NxdzcXNWykJAQsUmTJqrnt27dEgGIlpaWYlpammr5n3/+KQIQd+zYoVo2Z86cMjUBEPX09MTr16+rlp0/f14EIC5fvly1rH///qKhoaF4//591bJr166JOjo6ZbZZnpCQENHIyKjC1/Pz80UbGxvR09NTfPLkiWr5zp07RQDi7NmzRVEUxUePHokAxK+//rrCbf3xxx8iAPH06dPPrOvfUlJSRD09PbF3795iYWGhavmKFStEAOLatWtFURRFpVIpOjo6ioMHDy6x/ubNm0UA4uHDh0VRFMWsrCzR3NxcHD9+fIlxSUlJopmZWYnlISEhIgBxxowZVap13bp1IoByHwqFQjWu+PNhYGAg3rt3T7X85MmTIgBx2rRpqmU+Pj6ijY2N+PDhQ9Wy8+fPizKZTBw9erRq2ejRo0WZTFbuz1epVJaoLyAgQLVMFEVx2rRpolwuF9PT00VRrP6+InoRPMVGpIYUCgXGjh1bZrmBgYHq31lZWUhNTUWXLl2Qk5OD2NjYZ253+PDhaNCggep5ly5dAAA3b9585roBAQFwdnZWPffy8oKpqalq3cLCQuzbtw/BwcFwcHBQjXNxcUGfPn2euf2qOHPmDFJSUvDOO+9AX19ftbxfv35wc3PDX3/9BaDo56Snp4eIiAg8evSo3G0VH2nauXMnCgoKqlzDvn37kJ+fj6lTp0Im+9//QsePHw9TU1NVDYIgYOjQodi1axceP36sGrdp0yY4Ojqic+fOAIDw8HCkp6dj5MiRSE1NVT3kcjn8/Pxw8ODBMjVMmDChyvUCwMqVKxEeHl7isXv37jLjgoOD4ejoqHrevn17+Pn5YdeuXQCAxMREREdHY8yYMbCwsFCN8/LyQq9evVTjlEolwsLC0L9//3KvfSp9uvXNN98ssaxLly4oLCzEnTt3AFR/XxG9CAYkIjXk6OhY4hREscuXL2PgwIEwMzODqakprK2tVRd4Z2RkPHO7jRs3LvG8OCxVFCIqW7d4/eJ1U1JS8OTJk3K/GVVT35Yq/oXZokWLMq+5ubmpXlcoFFi4cCF2794NW1tbvPTSS/jqq6+QlJSkGt+1a1cMHjwY8+bNg5WVFQYMGIB169YhLy+vWjXo6emhWbNmqteBokD65MkTbN++HQDw+PFj7Nq1C0OHDlUFgmvXrgEAevToAWtr6xKPvXv3IiUlpcT76OjooGHDhs/+Yf1L+/btERAQUOLRvXv3MuNcXV3LLGvevLnquq3Kfv7u7u5ITU1FdnY2Hjx4gMzMTHh6elapvmd9Lqu7r4heBAMSkRr695GiYunp6ejatSvOnz+PTz/9FDt27EB4eDgWLlwIAFX6Wn/xNS+liaJYq+tKYerUqbh69SoWLFgAfX19zJo1C+7u7jh37hyAoqMYW7duRWRkJCZNmoT79+/jjTfegK+vb4kjPi+iQ4cOcHJywubNmwEAO3bswJMnTzB8+HDVmOL99uuvv5Y5yhMeHo4///yzxDYVCkWJI1fa4FmfrbrYV0Sladd/ZURaLCIiAg8fPsT69esxZcoUvPzyywgICChxykxKNjY20NfXx/Xr18u8Vt6y6mjSpAkAIC4ursxrcXFxqteLOTs747333sPevXtx6dIl5OfnY/HixSXGdOjQAZ9//jnOnDmD33//HZcvX8bGjRufu4b8/HzcunWrTA3Dhg3Dnj17kJmZiU2bNsHJyQkdOnQoUSNQ9PMrfZQnICAA3bp1e8ZPpeYUH836t6tXr6ouvK7s5x8bGwsrKysYGRnB2toapqam5X4D7kU8774iehEMSEQaoviv7H8fscnPz8d3330nVUklyOVyBAQEICwsDAkJCarl169fL/d6l+po27YtbGxssHr16hKnV3bv3o2YmBj069cPQNE3xXJzc0us6+zsDBMTE9V6jx49KnP0y8fHBwAqPXUTEBAAPT09fPvttyXW/+mnn5CRkaGqodjw4cORl5eHn3/+GXv27MGwYcNKvB4YGAhTU1N88cUX5V5fU/rr7rUpLCysxO0STp06hZMnT6quIbO3t4ePjw9+/vnnErc0uHTpEvbu3Yu+ffsCAGQyGYKDg7Fjx45ypxF53qOO1d1XRC+CX/Mn0hAdO3ZEgwYNEBISgnfffReCIODXX39Vq1Ncc+fOxd69e9GpUydMmDABhYWFWLFiBTw9PREdHV2lbRQUFOCzzz4rs9zCwgLvvPMOFi5ciLFjx6Jr164YOXKk6mv+Tk5OmDZtGoCiox49e/bEsGHD4OHhAR0dHfzxxx9ITk7GiBEjAAA///wzvvvuOwwcOBDOzs7IysrCDz/8AFNTU9Uv+vJYW1tj5syZmDdvHoKCgvDKK68gLi4O3333Hdq1a1fmpp9t2rSBi4sLPv74Y+Tl5ZU4vQYApqamWLVqFV5//XW0adMGI0aMgLW1NeLj4/HXX3+hU6dOWLFiRZV+dhXZvXt3uRfxd+zYEc2aNVM9d3FxQefOnTFhwgTk5eVh6dKlsLS0xIcffqga8/XXX6NPnz7w9/fHuHHjVF/zNzMzw9y5c1XjvvjiC+zduxddu3bFm2++CXd3dyQmJmLLli04evSo6sLrqqjuviJ6IZJ9f46IKvyaf8uWLcsdf+zYMbFDhw6igYGB6ODgIH744Yfi33//LQIQDx48qBpX0df8y/vaOwBxzpw5qucVfc1/4sSJZdZt0qSJGBISUmLZ/v37xdatW4t6enqis7Oz+OOPP4rvvfeeqK+vX8FP4X+Kv8Ze3sPZ2Vk1btOmTWLr1q1FhUIhWlhYiKNGjSrx9fTU1FRx4sSJopubm2hkZCSamZmJfn5+4ubNm1VjoqKixJEjR4qNGzcWFQqFaGNjI7788svimTNnnlmnKBZ9rd/NzU3U1dUVbW1txQkTJoiPHj0qd+zHH38sAhBdXFwq3N7BgwfFwMBA0czMTNTX1xednZ3FMWPGlKjnWbdBKK2yr/kDENetWyeKYsnPx+LFi8VGjRqJCoVC7NKli3j+/Pky2923b5/YqVMn0cDAQDQ1NRX79+8vXrlypcy4O3fuiKNHjxatra1FhUIhNmvWTJw4caKYl5dXor7SX98/ePBgic/0i+4rouoQRFGN/vwkIq0UHByMy5cvl3uNC0nv9u3baNq0Kb7++mu8//77UpdDpBZ4DRIR1agnT56UeH7t2jXs2rWrTi82JiJ6UbwGiYhqVLNmzTBmzBjVPYFWrVoFPT29EtexEBGpOwYkIqpRQUFB+M9//oOkpCQoFAr4+/vjiy++KPcmhERE6orXIBERERGVwmuQiIiIiEphQCIiIiIqhdcgVZNSqURCQgJMTEzKzExNRERE6kkURWRlZcHBwaHSeQ0ZkKopISEBjRo1kroMIiIiqoa7d++iYcOGFb6uFgFp5cqV+Prrr5GUlARvb28sX74c7du3r3D8li1bMGvWLNy+fRuurq5YuHBhidvNz507Fxs3bsTdu3ehp6cHX19ffP755/Dz81ONSUtLw+TJk7Fjxw7IZDIMHjwYy5Ytg7GxcZVqNjExAVD0AzY1Na1m52UVFBRg79696N27N3R1dWtsu+pE23tkf5pP23vU9v4A7e+R/VVfZmYmGjVqpPo9XhHJA9KmTZsQGhqK1atXw8/PD0uXLkVgYCDi4uJgY2NTZvzx48cxcuRILFiwAC+//DI2bNiA4OBgREVFwdPTEwDQvHlzrFixAs2aNcOTJ0/wzTffoHfv3rh+/Tqsra0BAKNGjUJiYiLCw8NRUFCAsWPH4s0338SGDRuqVHfxaTVTU9MaD0iGhoYwNTXVyg89oP09sj/Np+09ant/gPb3yP5e3LMuj5H8Iu0lS5Zg/PjxGDt2LDw8PLB69WoYGhpi7dq15Y5ftmwZgoKC8MEHH8Dd3R3z589HmzZtSkzm+OqrryIgIADNmjVDy5YtsWTJEmRmZuLChQsAgJiYGOzZswc//vgj/Pz80LlzZyxfvhwbN24sMQs5ERER1U+SHkHKz8/H2bNnMXPmTNUymUyGgIAAREZGlrtOZGQkQkNDSywLDAxEWFhYhe+xZs0amJmZwdvbW7UNc3NztG3bVjUuICAAMpkMJ0+exMCBA8tsJy8vD3l5earnmZmZAIpSbkFBQdUaroLibdXkNtWNtvfI/jSftveo7f0B2t8j+3vxbT+LpAEpNTUVhYWFsLW1LbHc1tYWsbGx5a6TlJRU7vikpKQSy3bu3IkRI0YgJycH9vb2CA8Ph5WVlWobpU/f6ejowMLCosx2ii1YsADz5s0rs3zv3r0wNDSsvNFqCA8Pr/Ftqhtt75H9aT5t71Hb+wO0v0f29/xycnKqNE7ya5BqS/fu3REdHY3U1FT88MMPGDZsGE6ePFnudU1VMXPmzBJHroov8urdu3eNX4MUHh6OXr16aeV5ZUD7e2R/mk/be9T0/goLC/H06VNUNhHE06dPcfz4cXTs2BE6Otr3q479lU8QBOjo6EAul1c4pvgM0LNI+lO1srKCXC5HcnJyieXJycmws7Mrdx07O7sqjTcyMoKLiwtcXFzQoUMHuLq64qeffsLMmTNhZ2eHlJSUEuOfPn2KtLS0Ct9XoVBAoVCUWa6rq1sr/4Opre2qE23vkf1pPm3vUdP6E0URSUlJSE9Pr9JYOzs7JCYmauW96thf5czNzWFnZ1fuulX9zEsakIq/gr9//34EBwcDKLoB4/79+zFp0qRy1/H398f+/fsxdepU1bLw8HD4+/tX+l5KpVJ1DZG/vz/S09Nx9uxZ+Pr6AgAOHDgApVJZ4lYARESkPorDkY2NDQwNDSv9xalUKvH48WMYGxtXejNATcX+yieKInJyclQHQezt7atdg+TH5UJDQxESEoK2bduiffv2WLp0KbKzszF27FgAwOjRo+Ho6IgFCxYAAKZMmYKuXbti8eLF6NevHzZu3IgzZ85gzZo1AIDs7Gx8/vnneOWVV2Bvb4/U1FSsXLkS9+/fx9ChQwEA7u7uCAoKwvjx47F69WoUFBRg0qRJGDFiBBwcHKT5QRARUYUKCwtV4cjS0vKZ45VKJfLz86Gvr6+1AYL9lc/AwAAAkJKSAhsbm0pPt1VG8oA0fPhwPHjwALNnz0ZSUhJ8fHywZ88e1YXY8fHxJX44HTt2xIYNG/DJJ5/go48+gqurK8LCwlT3QJLL5YiNjcXPP/+M1NRUWFpaol27djhy5Ahatmyp2s7vv/+OSZMmoWfPnqobRX777bd12zwREVVJ8TePauNLMaR9ij8nBQUFmhuQAGDSpEkVnlKLiIgos2zo0KGqo0Gl6evrY9u2bc98TwsLiyrfFJKIiNSDNl5vQzWvJj4n2ndcToMVKkWcvJWGs6kCTt5KQ6Gy4m9oEBERUe1hQFITey4lovPCA3ht7Rn8ck2O19aeQeeFB7DnUqLUpRERkZpp1qwZVq1aVeXxEREREAShSt8ApCIMSGpgz6VETPgtCokZuSWWJ2XkYsJvUQxJREQ1qFApIvLGQ/wZfR+RNx7W6tF6QRAqfcydO7da2z158iRCQkKqPL5jx45ITEyEmZlZtd6vqrQpiKnFNUj1WaFSxLwdV1Def54iAAHAvB1X0MvDDnIZz70TEb2IPZcSMW/HlRJ/kNqb6WNOfw8EeVb/K+EVSUz83x+4mzZtwuzZsxEXF6daZmxsrPq3KIooLCys0o0Rra2tq3zDQ6DotjoV3eePyscjSBI7dSutzJGjfxMBJGbk4tSttLoriohIC0lxtN7Ozk71MDMzgyAIquexsbEwMTHB7t274evrC4VCgaNHj+LGjRsYMGAAbG1tYWxsjHbt2mHfvn0ltlv6FJsgCPjxxx8xcOBAGBoawtXVFdu3b1e9XvrIzvr162Fubo6///4b7u7uMDY2RlBQUIlA9/TpU7z77rswNzeHpaUlpk+fjpCQENV9C6vj0aNHGD16NBo0aABDQ0P06dMH165dU71+584d9O/fH5aWlnB0dESrVq2wa9cu1bqjRo2CtbU1DAwM4OrqinXr1lW7lmdhQJJYSlbF4ag644iI6gtRFJGT/7TCx5P8QtW/s3ILMGf75QqP1gPA3O1XkJVbUOk2ix+VTXPyvGbMmIEvv/wSMTEx8PLywuPHj9G3b1/s378f586dQ1BQEPr374/4+PhKtzNv3jwMGzYMFy5cQN++fTFq1CikpVX8x3VOTg4WLVqEX3/9FYcPH0Z8fDzef/991esLFy7E77//jnXr1uHYsWPIzMyscGL4qhozZgzOnDmD7du3IzIyEqIoom/fvqrbOEycOBF5eXmIiIjAsWPHsGDBAtVRtlmzZuHKlSvYvXs3YmJisGrVKtUcq7WBp9gkZmOiX6PjiIjqiycFhfCY/XeNbEsEkJSZi1Zz91Zp/JVPA2GoVzO/Qj/99FP06tVL9dzCwgLe3t6q5/Pnz8cff/yB7du3V3hLHKAofIwcORIA8MUXX+Dbb7/FqVOnEBQUVO74goICrF69Gs7OzgCKbrnz6aefql5fvnw5Zs6ciYEDBwIAVqxYoTqaUx3Xrl3D9u3bcezYMXTs2BFA0T0JGzVqhLCwMAwdOhTx8fEYPHgwWrVqhczMTHh5eanuhRgfH4/WrVujbdu2AAAnJ6dq11IVPIIksfZNLWBvpo/Kri6yN9NH+6YWdVYTERHVneJf+MUeP36M999/H+7u7jA3N4exsTFiYmKeeQTJy8tL9W8jIyOYmpqWmXf03wwNDVXhCCialqN4fEZGBpKTk9G+fXvV63K5XDU9V3XExMRAR0enxJRelpaWaNGiBWJiYgAA7777Lj777DN06dIFCxYswIULF1RjJ0yYgI0bN8LHxwcffvghjh8/Xu1aqoJHkCQmlwmY098DE36LggCUe/h3cg8XXqBNRFSKga4cVz4NLPc1pVKJrMwsmJiaQCaT4dStNIxZd/qZ21w/tl2V/iA10K3e3ZnLY2RkVOL5+++/j/DwcCxatAguLi4wMDDAkCFDkJ+fX+l2Sk/CKggClErlc42vyVOH1fF///d/CAwMxI4dO7B79260b98eixcvxuTJk9GnTx/cuXMHu3btQnh4OHr27ImJEydi0aJFtVILjyCpgSBPe6x6rQ3szEqeRtOVF4Wivy4mQsmbRhIRlSAIAgz1dCp8GOjJVf/u4mpd6dF6AUVH67u4Wle6zeJHbd7R+9ixYxgzZgwGDhyIVq1awc7ODrdv36619yuPmZkZbG1tcfr0/0JlYWEhoqKiqr1Nd3d3PH36FCdPnlQte/jwIeLi4uDh4aFa1qhRI7z99tv49ddfERoaih9++EH1mrW1NUJCQvDbb79h6dKlqnlYawOPIKmJIE979PKwQ+T1FOw9chK9u/jBxswQr6w4imPXH+LXE3cQ0tFJ6jKJiDRSZUfri6POnP4eanG03tXVFdu2bUP//v0hCAJmzZpV6ZGg2jJ58mQsWLAALi4ucHNzw/Lly/Ho0aMqhcOLFy/CxMRE9VwQBHh7e2PAgAEYP348vv/+e5iYmGDGjBlwdHTEgAEDAABTp05Fnz594OLignv37iEiIgLu7u4AgNmzZ8PX1xctW7ZEXl4edu7cqXqtNvAIkhqRywT4NbWAr5UIv6YWaG5rgpl9inb+gt0xuPngscQVEhFproqO1tuZ6WPVa21q5T5I1bFkyRI0aNAAHTt2RP/+/REYGIg2bdrUeR3Tp0/HyJEjMXr0aPj7+8PY2BiBgYHQ13/2l4ZeeukltG7dWvUovnZp3bp18PX1xcsvvwx/f3+Ioohdu3apTvcVFhZi4sSJaNmyJYYMGQJXV1d89913AIru5TRz5kx4eXnhpZdeglwux8aNG2utf0GU+oSjhsrMzISZmRkyMjJgampaY9stKCjArl270LdvX+jq6kKpFDF67SkcvZ4Kn0bm2Pq2P3Tkmp1rS/eobdif5tP2HjWxv9zcXNy6dQtNmzat0i9opVKJzMxMmJqaqr4FVaxQKeLUrTSkZOXCxqToSzDqcOToeVTWX22+p7u7O4YNG4b58+fX+nu9SH+VfV6q+vtbs3/T1gMymYCvhnjBRF8H0XfTsfrQDalLIiLSaHKZAH9nSwzwcYS/s6XGhaO6cufOHfzwww+4evUqLl68iAkTJuDWrVt49dVXpS6tTjAgaQAHcwPMe6UlAGDpvmu4dD9D4oqIiEjbyWQyrF+/Hu3atUOnTp1w8eJF7Nu3r1av+1EnvEhbQwxs7Yi9l5Ox53ISQjdHY/ukztCvwa+ZEhER/VujRo1w7NgxqcuQDI8gaQhBEPD5QE9YGevhavJjLAm/KnVJREREWosBSYNYGiuwYFDRnVJ/OHITJ28+lLgiIqK6xe8VUVXUxOeEAUnD9PKwxbC2DSGKwHtbzuNx3lOpSyIiqnXF37bLycmRuBLSBMWfkxf5liavQdJAs172wLHrD3Hv0RN8/tcV1VElIiJtJZfLYW5urporzNDQsNIbFiqVSuTn5yM3N7fOvgZfl9hf+URRRE5ODlJSUmBubg65vPrX6jIgaSATfV0sHuaNkT+cwH9O3UUvD1v0cLOVuiwiolplZ2cHAJVOwFpMFEU8efIEBgYGtTotiFTYX+XMzc1Vn5fqYkDSUB2aWWJcp6b48egtfLj1IvZOawALIz2pyyIiqjWCIMDe3h42NjYoKCiodGxBQQEOHz6Ml156SWNuhvk82F/FdHV1X+jIUTEGJA32fmALRFx9gOspj/FJ2EWsfLWNVv4lQUT0b3K5/Jm/AOVyOZ4+fQp9fX2tDBDsr/Zp34nLekRfV45vhvlARyZg18UkbD+fIHVJREREWoEBScO1amiGyT1cAQCzwi4hMeOJxBURERFpPgYkLfBOd2d4NzRDZu5TfLj1Au8TQkRE9IIYkLSArlyGxcN8oNCR4ci1VPx24o7UJREREWk0BiQt4WJjjBl93AAAX+yKxa3UbIkrIiIi0lwMSFokxN8JHZ0t8aSgEO9tjsbTQqXUJREREWkkBiQtIpMJ+HqoN0wUOoiKT8f3h29KXRIREZFGYkDSMo7mBpjzSksAwNJ9V3E5IUPiioiIiDQPA5IWGtzGEb09bFFQKCJ003nkPS2UuiQiIiKNwoCkhQRBwBeDWsHSSA9xyVlYEn5V6pKIiIg0CgOSlrIyVmDBoFYAgDWHb+L07TSJKyIiItIcDEharHdLOwzxbQhRBEI3R+Nx3lOpSyIiItIIDEhabnZ/DziaG+Bu2hN8/leM1OUQERFpBAYkLWeqr4uvh3oBAP5zKh4H41IkroiIiEj9MSDVAx2drfBGp6YAgOlbL+BRdr7EFREREak3BqR64sOgFnC2NkJKVh5m/XlJ6nKIiIjUGgNSPaGvK8c3w30glwnYeSER288nSF0SERGR2mJAqke8GppjUncXAMCssEtIysiVuCIiIiL1xIBUz0zq4YJWjmbIeFKAD/97AaIoSl0SERGR2mFAqmd05TJ8M9wbejoyHL76AL+fjJe6JCIiIrXDgFQPudiYYHqQGwDg879icDs1W+KKiIiI1AsDUj01tqMTOjSzwJOCQry35TwKlTzVRkREVIwBqZ6SyQQsGuoNY4UOzt55hDWHb0pdEhERkdpgQKrHGjYwxJz+HgCAJeFxiEnMlLgiIiIi9cCAVM8N8W2IAHdbFBSKmLYpGnlPC6UuiYiISHIMSPWcIAhYMKgVLIz0EJuUhaX7rkldEhERkeQYkAjWJgp8MbAVAOD7Qzdw5naaxBURERFJiwGJAABBnnYY1MYRShF4b8t5ZOc9lbokIiIiyTAgkcqc/i3hYKaPOw9z8MWuGKnLISIikgwDEqmYGeji66HeAIDfT8bj0NUHEldEREQkDQYkKqGTixXGdHQCAHy49TzSc/KlLYiIiEgCDEhUxvQgNzSzNkJyZh5m/3lZ6nKIiIjqHAMSlWGgJ8eSYT6QywRsP5+AHecTpC6JiIioTjEgUbl8GpljYjdnAMCsPy8hOTNX4oqIiIjqDgMSVWhSD1d4OpoiPacA0/97AaLICW2JiKh+YECiCunpyLBkmA/0dGSIiHuA/5y6K3VJREREdYIBiSrV3NYEHwa2AAB89tcV3HmYLXFFREREtY8BiZ7pjU5N4dfUAjn5hXh/y3kUKnmqjYiItBsDEj2TTCZg0VBvGOnJcfr2I/x45KbUJREREdUqBiSqkkYWhpjTvyUAYPHeq4hNypS4IiIiotqjFgFp5cqVcHJygr6+Pvz8/HDq1KlKx2/ZsgVubm7Q19dHq1atsGvXLtVrBQUFmD59Olq1agUjIyM4ODhg9OjRSEgoeS8fJycnCIJQ4vHll1/WSn/aYmjbhujpZoP8QiWmbTqP/KdKqUsiIiKqFZIHpE2bNiE0NBRz5sxBVFQUvL29ERgYiJSUlHLHHz9+HCNHjsS4ceNw7tw5BAcHIzg4GJcuXQIA5OTkICoqCrNmzUJUVBS2bduGuLg4vPLKK2W29emnnyIxMVH1mDx5cq32qukEQcCCwa3QwFAXMYmZWLb/qtQlERER1QrJA9KSJUswfvx4jB07Fh4eHli9ejUMDQ2xdu3acscvW7YMQUFB+OCDD+Du7o758+ejTZs2WLFiBQDAzMwM4eHhGDZsGFq0aIEOHTpgxYoVOHv2LOLj40tsy8TEBHZ2dqqHkZFRrfer6WxM9PHFwFYAgFURN3D2ziOJKyIiIqp5OlK+eX5+Ps6ePYuZM2eqlslkMgQEBCAyMrLcdSIjIxEaGlpiWWBgIMLCwip8n4yMDAiCAHNz8xLLv/zyS8yfPx+NGzfGq6++imnTpkFHp/wfSV5eHvLy8lTPMzOLrsEpKChAQUFBZW0+l+Jt1eQ2a1qAmxUGeNvjz/OJCN0Uje0TO8BQr+ofJU3o8UWwP82n7T1qe3+A9vfI/l58288iaUBKTU1FYWEhbG1tSyy3tbVFbGxsueskJSWVOz4pKanc8bm5uZg+fTpGjhwJU1NT1fJ3330Xbdq0gYWFBY4fP46ZM2ciMTERS5YsKXc7CxYswLx588os37t3LwwNDSvtszrCw8NrfJs1qYMeEKEnx520HExcsw9Dmz3/9Ujq3uOLYn+aT9t71Pb+AO3vkf09v5ycnCqNkzQg1baCggIMGzYMoihi1apVJV7791EoLy8v6Onp4a233sKCBQugUCjKbGvmzJkl1snMzESjRo3Qu3fvEsGrJmoODw9Hr169oKurW2PbrQ12Hg8x9uezOJoswxtBbdHFxapK62lSj9XB/jSftveo7f0B2t8j+6u+4jNAzyJpQLKysoJcLkdycnKJ5cnJybCzsyt3HTs7uyqNLw5Hd+7cwYEDB54ZYvz8/PD06VPcvn0bLVq0KPO6QqEoNzjp6urWyoeztrZbk7q72yHEvwl+jryDj/64gr+nvgQzw6rXrAk9vgj2p/m0vUdt7w/Q/h7ZX/W2WRWSXqStp6cHX19f7N+/X7VMqVRi//798Pf3L3cdf3//EuOBokNw/x5fHI6uXbuGffv2wdLS8pm1REdHQyaTwcbGpprd1E8z+rijmZURkjJzMWf7JanLISIiqhGSn2ILDQ1FSEgI2rZti/bt22Pp0qXIzs7G2LFjAQCjR4+Go6MjFixYAACYMmUKunbtisWLF6Nfv37YuHEjzpw5gzVr1gAoCkdDhgxBVFQUdu7cicLCQtX1SRYWFtDT00NkZCROnjyJ7t27w8TEBJGRkZg2bRpee+01NGjQQJofhIYy0JNj8TBvDF51HGHRCejlYYd+XvZSl0VERPRCJA9Iw4cPx4MHDzB79mwkJSXBx8cHe/bsUV2IHR8fD5nsfwe6OnbsiA0bNuCTTz7BRx99BFdXV4SFhcHT0xMAcP/+fWzfvh0A4OPjU+K9Dh48iG7dukGhUGDjxo2YO3cu8vLy0LRpU0ybNq3Mt+Ooalo3boB3urlgxcHr+CTsIto5NYCNqb7UZREREVWb5AEJACZNmoRJkyaV+1pERESZZUOHDsXQoUPLHe/k5ARRrHwy1TZt2uDEiRPPXSdV7N2erjgQm4IriZmYse0ifgppC0EQpC6LiIioWiS/USRpBz0dGb4Z7gM9uQwHYlOw6fRdqUsiIiKqNgYkqjEt7EzwfmBzAMD8nVcQ/7Bq95ogIiJSNwxIVKPGdW6G9k4WyM4vxPtbzqNQWfnpTiIiInXEgEQ1Si4TsGioN4z05Dh1Ow1rj96SuiQiIqLnxoBENa6xpSFmvewBAPj67zjEJWVJXBEREdHzYUCiWjG8XSP0cLNBfqESoZujkf/0+edqIyIikgoDEtUKQRDw5aBWMDfUxeWETCw/cE3qkoiIiKqMAYlqjY2pPj4PbgUAWHnwOqLiH0lcERERUdUwIFGt6udljwE+DlCKwHubz+NJfqHUJRERET0TAxLVuk9f8YStqQK3UrPx5e4YqcshIiJ6JgYkqnVmhrr4eog3AODnyDs4duOhxBURERFVjgGJ6sRLza3xeocmAIAZ2y4h56nEBREREVWCAYnqzMy+bnCyNERSZh623eJHj4iI1Bd/S1GdMdTTweJhPpAJwOlUGfZcTpa6JCIionIxIFGd8m3SAG92aQoAmL39ClKyciWuiIiIqCwGJKpzk7s7w9FQxKOcAny07SJEkRPaEhGRemFAojqnpyPDKJdC6MoF7ItJwZYz96QuiYiIqAQGJJKEoxEwtacLAGDejsu4m5YjcUVERET/w4BEkhnXyQltmzRAdn4h3ttyHkolT7UREZF6YEAiychlAhYP84ahnhynbqVh7bFbUpdEREQEgAGJJNbE0gif9PMAAHz1dxyuJWdJXBEREREDEqmBke0boVsLa+Q/VWLa5mgUFCqlLomIiOo5BiSSnCAIWDjYC2YGurh0PxPLD1yXuiQiIqrnGJBILdia6uOzYE8AwMqD1xF9N13agoiIqF5jQCK10d/bAf29HVCoFBG6ORpP8gulLomIiOopBiRSK/MHtISNiQI3H2Rj4Z5YqcshIqJ6igGJ1Iq5oR6+GuIFAFh//DaOXU+VuCIiIqqPGJBI7XRrYYNRfo0BAB9sOY/M3AKJKyIiovqGAYnU0kd93dHE0hAJGbmYt/2K1OUQEVE9w4BEaslIoYPFQ70hE4D/Rt3DnktJUpdERET1CAMSqa22ThZ4q6szAODjPy4i9XGexBUREVF9wYBEam1qgCvc7EzwMDsfM7ddhChyQlsiIqp9DEik1hQ6ciwZ5gNduYDwK8nYevae1CUREVE9wIBEas/DwRTTejUHAMzbcQX3HuVIXBEREWk7BiTSCG+95AzfJg3wOO8p3t9yHkolT7UREVHtYUAijSCXCVg81BsGunKcuJmGdcdvS10SERFpMQYk0hhOVkb4uJ87AOCrPbG4npIlcUVERKStGJBIo4zya4yXmlsj76kSoZvPo6BQKXVJRESkhRiQSKMIgoCvBnvBzEAXF+5lYOXB61KXREREWogBiTSOnZk+Ph3QEgCw/MB1XLiXLm1BRESkdRiQSCO94u2Afl72KFSKmLYpGrkFhVKXREREWoQBiTSSIAj4bIAnrE0UuPEgG1/tiZO6JCIi0iIMSKSxGhjp4avBXgCAtcdu4fiNVIkrIiIibcGARBqtu5sNRrZvDAD4YMsFZOYWSFwRERFpAwYk0nif9HNHYwtD3E9/gvk7rkhdDhERaQEGJNJ4RgodLB7mDUEAtpy9h72Xk6QuiYiINBwDEmmFdk4WePOlZgCAmdsuIvVxnsQVERGRJmNAIq0R2qs5Wtia4GF2Pj7+4yJEkRPaEhFR9TAgkdZQ6MixZLg3dOUC/r6cjG1R96UuiYiINBQDEmmVlg5mmBrQHAAwd/tl3E9/InFFRESkiRiQSOu89VIztG5sjqy8p/hgy3kolTzVRkREz4cBibSOjlyGJcN8YKArx/EbD/Fz5G2pSyIiIg3DgERaqamVET7q6wYA+HJ3LK6nPJa4IiIi0iQMSKS1XuvQBF1crZD3VIn3NkfjaaFS6pKIiEhDMCCR1hIEAV8N8YKpvg7O38vAdxE3pC6JiIg0BAMSaTV7MwN8OsATAPDt/mu4eC9D4oqIiEgTMCCR1hvg44C+rezwVCli2uZo5BYUSl0SERGpOQYk0nqCIOCz4FawMlbgespjLPo7TuqSiIhIzTEgUb1gYaSHhYNbAQB+OnYLkTceSlwRERGpMwYkqjd6uttiRLtGEEXg/S3nkZVbIHVJRESkphiQqF755GUPNGxggPvpTzB/5xWpyyEiIjXFgET1irFCB4uHekMQgM1n7mHflWSpSyIiIjXEgET1jl8zS4zv0gwAMGPbBTx8nCdxRUREpG7UIiCtXLkSTk5O0NfXh5+fH06dOlXp+C1btsDNzQ36+vpo1aoVdu3apXqtoKAA06dPR6tWrWBkZAQHBweMHj0aCQkJJbaRlpaGUaNGwdTUFObm5hg3bhweP+Z0FPVFaK/maG5rjNTH+fj4j0sQRU5oS0RE/yN5QNq0aRNCQ0MxZ84cREVFwdvbG4GBgUhJSSl3/PHjxzFy5EiMGzcO586dQ3BwMIKDg3Hp0iUAQE5ODqKiojBr1ixERUVh27ZtiIuLwyuvvFJiO6NGjcLly5cRHh6OnTt34vDhw3jzzTdrvV9SD/q6ciwZ5gMdmYA9l5MQFn1f6pKIiEiNSB6QlixZgvHjx2Ps2LHw8PDA6tWrYWhoiLVr15Y7ftmyZQgKCsIHH3wAd3d3zJ8/H23atMGKFSsAAGZmZggPD8ewYcPQokULdOjQAStWrMDZs2cRHx8PAIiJicGePXvw448/ws/PD507d8by5cuxcePGMkeaSHt5OpphSk9XAMDsPy8jIf2JxBUREZG6kDQg5efn4+zZswgICFAtk8lkCAgIQGRkZLnrREZGlhgPAIGBgRWOB4CMjAwIggBzc3PVNszNzdG2bVvVmICAAMhkMpw8efIFOiJNM6GbM7wbmSMr9yk+2HoeSiVPtREREaAj5ZunpqaisLAQtra2JZbb2toiNja23HWSkpLKHZ+UlFTu+NzcXEyfPh0jR46Eqampahs2NjYlxuno6MDCwqLC7eTl5SEv738X82ZmZgIouuapoKDm7qdTvK2a3Ka6UbcevxrYEgNWReLY9YdYf+wmXu/Q+IW2p2791TRt7w/Q/h61vT9A+3tkfy++7WeRNCDVtoKCAgwbNgyiKGLVqlUvtK0FCxZg3rx5ZZbv3bsXhoaGL7Tt8oSHh9f4NtWNOvXYz1HAf2/LsWB3DArvX4KNwYtvU536qw3a3h+g/T1qe3+A9vfI/p5fTk5OlcZJGpCsrKwgl8uRnFzyXjTJycmws7Mrdx07O7sqjS8OR3fu3MGBAwdUR4+Kt1H6IvCnT58iLS2twvedOXMmQkNDVc8zMzPRqFEj9O7du8S2X1RBQQHCw8PRq1cv6Orq1th21Yk69hikFJH4y1kcv5GGnamW2Ph/7aAjr94ZaHXsryZpe3+A9veo7f0B2t8j+6u+4jNAzyJpQNLT04Ovry/279+P4OBgAIBSqcT+/fsxadKkctfx9/fH/v37MXXqVNWy8PBw+Pv7q54Xh6Nr167h4MGDsLS0LLON9PR0nD17Fr6+vgCAAwcOQKlUws/Pr9z3VSgUUCgUZZbr6urWyoeztrarTtStx0VDfRC49DDO38vAT8fjMamH6wttT936q2na3h+g/T1qe3+A9vfI/qq3zaqQ/FtsoaGh+OGHH/Dzzz8jJiYGEyZMQHZ2NsaOHQsAGD16NGbOnKkaP2XKFOzZsweLFy9GbGws5s6dizNnzqgCVUFBAYYMGYIzZ87g999/R2FhIZKSkpCUlIT8/HwAgLu7O4KCgjB+/HicOnUKx44dw6RJkzBixAg4ODjU/Q+B1IKDuQE+HdASALB03zVcup8hcUVERCQVyQPS8OHDsWjRIsyePRs+Pj6Ijo7Gnj17VBdix8fHIzExUTW+Y8eO2LBhA9asWQNvb29s3boVYWFh8PT0BADcv38f27dvx7179+Dj4wN7e3vV4/jx46rt/P7773Bzc0PPnj3Rt29fdO7cGWvWrKnb5kntBPs4IqilHZ4qRYRujkZuQaHUJRERkQTU4iLtSZMmVXhKLSIiosyyoUOHYujQoeWOd3JyqtJdkS0sLLBhw4bnqpO0nyAI+HygJ87cScPV5MdYEn4VH/V1l7osIiKqY5IfQSJSN5bGCiwY5AUA+OHITZy8+VDiioiIqK4xIBGVo5eHLYa1bQhRBN7bch6P855KXRIREdUhBiSiCsx62QOO5ga49+gJPtt5RepyiIioDjEgEVXARF8Xi4d5QxCAjafv4kBs8rNXIiIircCARFSJDs0sMa5TUwDAh1svIi07X+KKiIioLjAgET3D+4Et4GpjjNTHefgk7GKVviVJRESajQGJ6Bn0deVYMswHOjIBuy4mYfv5BKlLIiKiWsaARFQFrRqaYfI/U4/MCruExIwnEldERES1iQGJqIre6e4M74ZmyMx9ig+3XuCpNiIiLcaARFRFunIZFg/zgUJHhiPXUvHbiTtSl0RERLWEAYnoObjYGGNGHzcAwOe7YnArNVviioiIqDYwIBE9pxB/J3R0tkRugRKhm6PxtFApdUlERFTDGJCInpNMJuDrod4wUejgXHw6vj98U+qSiIiohlUrIN29exf37t1TPT916hSmTp2KNWvW1FhhROrM0dwAc19pCQBYuu8qLidkSFwRERHVpGoFpFdffRUHDx4EACQlJaFXr144deoUPv74Y3z66ac1WiCRuhrUxhG9PWxRUCgidNN55D0tlLokIiKqIdUKSJcuXUL79u0BAJs3b4anpyeOHz+O33//HevXr6/J+ojUliAI+GJQK1ga6SEuOQtLwq9KXRIREdWQagWkgoICKBQKAMC+ffvwyiuvAADc3NyQmJhYc9URqTkrYwUWDGoFAFhz+CZO3HyIk7fScDZVwMlbaShU8l5JRESaSKc6K7Vs2RKrV69Gv379EB4ejvnz5wMAEhISYGlpWaMFEqm73i3tMMS3IbaevYdRP5xAoQgAcvxy7QzszfQxp78HgjztpS6TiIieQ7WOIC1cuBDff/89unXrhpEjR8Lb2xsAsH37dtWpN6L6pKNz0R8GhaUOGCVl5GLCb1HYc4lHVomINEm1jiB169YNqampyMzMRIMGDVTL33zzTRgaGtZYcUSaoFAp4uu/48p9TQQgAJi34wp6edhBLhPqtDYiIqqeah1BevLkCfLy8lTh6M6dO1i6dCni4uJgY2NTowUSqbtTt9KQmJFb4esigMSMXJy6lVZ3RRER0QupVkAaMGAAfvnlFwBAeno6/Pz8sHjxYgQHB2PVqlU1WiCRukvJqjgcVWccERFJr1oBKSoqCl26dAEAbN26Fba2trhz5w5++eUXfPvttzVaIJG6szHRr9FxREQkvWoFpJycHJiYmAAA9u7di0GDBkEmk6FDhw64c4cznFP90r6pBezN9FHZ1UWCAGQ9KaizmoiI6MVUKyC5uLggLCwMd+/exd9//43evXsDAFJSUmBqalqjBRKpO7lMwJz+HgBQYUgSReDN385i3o7LvOM2EZEGqFZAmj17Nt5//304OTmhffv28Pf3B1B0NKl169Y1WiCRJgjytMeq19rAzqzkaTR7M30sH+mDNzo1BQCsO3Ybg747jpsPHktRJhERVVG1vuY/ZMgQdO7cGYmJiap7IAFAz549MXDgwBorjkiTBHnao5eHHSKvp2DvkZPo3cUP/i42kMsE9Pd2RCcXS7y/5TwuJ2Ti5eVH8VmwJwa1aSh12UREVI5qHUECADs7O7Ru3RoJCQm4d+8eAKB9+/Zwc3OrseKINI1cJsCvqQV8rUT4NbUocd+jnu622D3lJfg1tUBOfiFCN59H6OZoZOc9lbBiIiIqT7UCklKpxKeffgozMzM0adIETZo0gbm5OebPnw+lUlnTNRJpDTszfWwY3wGhvZpDJgDbou7j5eVHcel+htSlERHRv1QrIH388cdYsWIFvvzyS5w7dw7nzp3DF198geXLl2PWrFk1XSORVpHLBLzb0xUb3/SHvZk+bqVmY9B3x7Hu2C2IIie3JSJSB9W6Bunnn3/Gjz/+iFdeeUW1zMvLC46OjnjnnXfw+eef11iBRNqqfVML7Hq3Cz787wWEX0nGvB1XcOx6Kr4e4o0GRnpSl0dEVK9V6whSWlpaudcaubm5IS2N0ykQVVUDIz2sed0X815pCT25DPtiUtBn2RGcvPlQ6tKIiOq1agUkb29vrFixoszyFStWwMvL64WLIqpPBEFASEcn/DGxI5pZGSEpMxcjfziBpfuuolDJU25ERFKo1im2r776Cv369cO+fftU90CKjIzE3bt3sWvXrhotkKi+aOlghh2TO2P2n5fx36h7WLrvGiJvPMTSET6wNzOQujwionqlWkeQunbtiqtXr2LgwIFIT09Heno6Bg0ahMuXL+PXX3+t6RqJ6g0jhQ4WD/PGN8O9YaQnx8lbaei77Aj2xyRLXRoRUb1SrSNIAODg4FDmYuzz58/jp59+wpo1a164MKL6bGDrhvBp1ACT/xOFS/czMe7nMxjbyQkz+rhBoSOXujwiIq1X7RtFElHtamplhP9O6FhmmpJbqdkSV0ZEpP0YkIjUmEJHjtn9PfBTSFs0MNQtmqbk2yP449w9qUsjItJqDEhEGuDf05Rk5xdi2iZOU0JEVJue6xqkQYMGVfp6enr6i9RCRJUonqZkxYHrWLb/KrZF3Ud0fDq+Hdkano5mUpdHRKRVnisgmZlV/j9hMzMzjB49+oUKIqKKyWUCpgS4okMzC0zdFI2b/0xT8lFfN4R0dIIgCM/eCBERPdNzBaR169bVVh1E9Bz8mlli17td8MHWC9gXk4y5O67g6PWH+HqIF6cpISKqAbwGiUhDNTDSww+jfTG3v8c/05Qko++3nKaEiKgmMCARaTBBEDCmU1Nse6dompLEjKJpSpbtu8ZpSoiIXgADEpEW8HQsmqZkcJuGUIrAN/uu4tUfTiApI1fq0oiINBIDEpGWKJ6mZMkwbxj+M01Jn2WHOU0JEVE1MCARaZlBbRpi5+TOaOlgikc5BRj38xl8uuMK8p4WSl0aEZHGYEAi0kLNrI2x7Z3/TVOy9tgtDF7FaUqIiKqKAYlISxVPU/Lj6KJpSi7d5zQlRERVxYBEpOUCPGyxa0oXtP/XNCXvbT7PaUqIiCrBgERUD9ibGeA/4ztgaoArZALw36h76L/8KC7dz5C6NCIitcSARFRPyGUCpgY0x3/Gd4Cdqb5qmpL1x25BFHnPJCKif2NAIqpn/JpZYveULghwt0F+oRJzd1zB+F/O4lF2vtSlERGpDQYkonqoaJqStpjDaUqIiMrFgERUTwmCgLH/TFPSlNOUEBGVwIBEVM8VT1MyqI0jpykhIvoHAxIRwVihgyXDfLB4KKcpISICGJCI6F8G+3KaEiIigAGJiEopnqZkbCcnAJymhIjqJwYkIipDoSPHnP4t8cPotjDnNCVEVA8xIBFRhXp52GJ3qWlKPtx2CXk840ZEWo4BiYgqVXqakj/OJWDRBTmuJGZKXRoRUa1hQCKiZyqepmTD+A6wNVUgJVfAkO9P4ufjtzlNCRFpJQYkIqqyDs0ssf0df7RsoERBoYg52y/jzV85TQkRaR/JA9LKlSvh5OQEfX19+Pn54dSpU5WO37JlC9zc3KCvr49WrVph165dJV7ftm0bevfuDUtLSwiCgOjo6DLb6NatGwRBKPF4++23a7ItIq1lYaSH8S2U+KRvC+jJZQi/UjRNyalbaVKXRkRUYyQNSJs2bUJoaCjmzJmDqKgoeHt7IzAwECkpKeWOP378OEaOHIlx48bh3LlzCA4ORnBwMC5duqQak52djc6dO2PhwoWVvvf48eORmJioenz11Vc12huRNhMEIMS/SYlpSkasicS3+zlNCRFpB0kD0pIlSzB+/HiMHTsWHh4eWL16NQwNDbF27dpyxy9btgxBQUH44IMP4O7ujvnz56NNmzZYsWKFaszrr7+O2bNnIyAgoNL3NjQ0hJ2dnephampao70R1QeqaUpaF01TsiT8Kkb9yGlKiEjz6Uj1xvn5+Th79ixmzpypWiaTyRAQEIDIyMhy14mMjERoaGiJZYGBgQgLC3vu9//999/x22+/wc7ODv3798esWbNgaGhY4fi8vDzk5eWpnmdmFn2Dp6CgAAUFBc/9/hUp3lZNblPdaHuP9a0/hQxYOKglOjRtgLk7Y3DiZtE0JQsHeaJ7C2spS622+rYPtZG298j+XnzbzyJZQEpNTUVhYSFsbW1LLLe1tUVsbGy56yQlJZU7Pikp6bne+9VXX0WTJk3g4OCACxcuYPr06YiLi8O2bdsqXGfBggWYN29emeV79+6tNFhVV3h4eI1vU91oe4/1rT8FgGkewPqrctzPKcCbv51DN3sl+jdWQkfyqx2rp77tQ22k7T2yv+eXk5NTpXGSBSQpvfnmm6p/t2rVCvb29ujZsydu3LgBZ2fncteZOXNmiaNXmZmZaNSoEXr37l2jp+cKCgoQHh6OXr16QVdXt8a2q060vcf63t/Ip0p89fdV/HIiHhGJMqQK5lg6zAtNLGv+D4naUt/3oTbQ9h7ZX/UVnwF6FskCkpWVFeRyOZKTS84WnpycDDs7u3LXsbOze67xVeXn5wcAuH79eoUBSaFQQKFQlFmuq6tbKx/O2tquOtH2Hutrf7q6wKfBrdCluQ0+2HoelxIyMeC7SHw+sBWCWztKUGn11dd9qE20vUf2V71tVoVkB7719PTg6+uL/fv3q5YplUrs378f/v7+5a7j7+9fYjxQdPitovFVVXwrAHt7+xfaDhH9j2qaEqeiaUqmborG+1vOIzvvqdSlERE9k6Sn2EJDQxESEoK2bduiffv2WLp0KbKzszF27FgAwOjRo+Ho6IgFCxYAAKZMmYKuXbti8eLF6NevHzZu3IgzZ85gzZo1qm2mpaUhPj4eCQkJAIC4uDgAUH1b7caNG9iwYQP69u0LS0tLXLhwAdOmTcNLL70ELy+vOv4JEGk3ezMDbBjvh+UHrmP5gWvYevYeouIfYfnI1mjpYCZ1eUREFZL00snhw4dj0aJFmD17Nnx8fBAdHY09e/aoLsSOj49HYmKianzHjh2xYcMGrFmzBt7e3ti6dSvCwsLg6empGrN9+3a0bt0a/fr1AwCMGDECrVu3xurVqwEUHbnat28fevfuDTc3N7z33nsYPHgwduzYUYedE9UfOnIZpvVqjt//r2iakpsPsjHwu+OcpoSI1JrkF2lPmjQJkyZNKve1iIiIMsuGDh2KoUOHVri9MWPGYMyYMRW+3qhRIxw6dOh5yySiF+TvbIndU17CB1vOY39sCuZsv4yj11Px9RAvmBvqSV0eEVEJGvrlWyLSRBZGevgxpC1mv+wBXblQNE3JsiM4fZvTlBCRemFAIqI6JQgC3ujcFNsmdIKTpSESMnIx/HtOU0JE6oUBiYgk0aqhGXa+2wUDS01TkpzJaUqISHoMSEQkGWOFDr4Z7oPFQ71hqCf/Z5qSIzgQm/zslYmIahEDEhFJbrBvQ+yY3Bke9qZIy87HG+vP4LOdV5D/VCl1aURUTzEgEZFacLY2xrZ3OmJMRycAwI9Hb2HwquO4nZotbWFEVC8xIBGR2tDXlWPuKy2x5nVfmBvq4uL9DPT79gj+jL4vdWlEVM8wIBGR2und0g673v3fNCVTNkbjgy3nkZPPaUqIqG4wIBGRWnIwL5qm5N2erhAEYMvZe3h5+VFcSajaTNxERC+CAYmI1JaOXIbQXs2x4V/TlAR/dwy/RHKaEiKqXQxIRKT2iqcp6elmg/ynSsz+8zLe+vUs0nPypS6NiLQUAxIRaYTS05Ts5TQlRFSLGJCISGNUNE3Jck5TQkQ1jAGJiDRO6WlKFodfxWs/nuQ0JURUYxiQiEgjlZ6mJPLmQ/RZdgQHY1OkLo2ItAADEhFptNLTlIxdf5rTlBDRC2NAIiKNV940JUNWc5oSIqo+BiQi0gqlpym5cC8DLy8/ymlKiKhaGJCISKv8e5qSx3lPOU0JEVULAxIRaZ3ypinpz2lKiOg5MCARkVYqPU3JjX+mKfmV05QQURUwIBGRViuepqTHP9OUzPrzMt7+jdOUEFHlGJCISOtZGOnhp5C2mPXPNCV/Xy6apuQMpykhogowIBFRvSAIAsaVnqZkzQmsOMBpSoioLAYkIqpXiqcpCfZxQKFSxKK9V/H6T/+bpqRQKeLkrTScTRVw8lYawxNRPaUjdQFERHWteJqSzq7WmBV2CcdvFE1TMrJ9I2yLuo/EjFwAcvxy7QzszfQxp78HgjztpS6biOoQjyARUb0kCAKG+DbEznc7w/2faUpWHrzxTzj6n6SMXEz4LQp7LiVKVCkRSYEBiYjqNWdrY2x92x+GevJyXy8+wTZvxxWebiOqRxiQiKjeu3AvAzn5hRW+LgJIzMjFqVv81htRfcGARET1XkpW7rMHPcc4ItJ8DEhEVO/ZmOhXadzm03dxPeVxLVdDROqAAYmI6r32TS1gb6YP4Rnjjt14iF7fHMK7/zmH6ylZdVIbEUmDAYmI6j25TMCc/h4AUCYkCf88Purjhl4ethBFYPv5BPT65jAmbYjC1WQGJSJtxIBERAQgyNMeq15rAzuzkqfb7Mz0seq1NnizqzN+GN0WOyd3Ru9/gtLOC4kIXHoYEzdEIS6JQYlIm/BGkURE/wjytEcvDztEXk/B3iMn0buLH/xdbCCX/e+4kqejGdaMbosrCZn4dv817LmchL8uJOKvC4no28oO7/Z0hZudqYRdEFFN4BEkIqJ/kcsE+DW1gK+VCL+mFiXC0b95OJhi9eu+2D2lC/q2sgMA7LqYhKClR/D2r2dxJSGzLssmohrGgERE9ALc7U3x3Shf/D31JfTzsocgAHsuJ6Hvt0fw5i9ncOl+htQlElE1MCAREdWAFnYmWPlqG/w99SW8/E9Q2nslGS8vP4rxDEpEGocBiYioBjW3NcGKV9tg79SX8Iq3AwQBCP8nKP3fz6dx8R6DEpEmYEAiIqoFrrYm+HZka4RP64pgHwfIBGBfTAr6rziKN9afxvm76VKXSESVYEAiIqpFLjbGWDqiNcJDu2JQa0fIBOBAbAoGrDyGMetO4Vz8I6lLJKJyMCAREdUBZ2tjLBnug32hXTGojSPkMgERcQ8w8LvjCFl7ClEMSkRqhQGJiKgONbM2xpJhPtgf2hVDfBtCLhNw6OoDDPruOF7/6STO3kmTukQiAgMSEZEknKyMsGioNw681xXD2hYFpSPXUjF4VSRe+/EkTt9mUCKSEgMSEZGEmlga4ash3oh4vxtGtGsEHZmAo9dTMXR1JF794QRO3nwodYlE9RIDEhGRGmhkYYgvB3vh4PvdMLJ9UVA6fuMhhq85gZFrTuAEgxJRnWJAIiJSI40sDLFgkBciPuiGV/0aQ1cuIPLmQ4xYcwLDv4/E8RupEEVR6jKJtB4DEhGRGmrYwBBfDGyFiA+647UOjaEnl+HkrTS8+sNJDP/+BI5fZ1Aiqk0MSEREaszR3ACfBbdCxAfd8HqHJtCTy3Dqdhpe/fEkhn0fiaPXGJSIagMDEhGRBnAwN8D8YE8c+rAbQvybQE9HhtO3H+G1n05iyOpIHL76gEGJqAYxIBERaRB7MwPMG+CJIx92x5iOTtDTkeHsnUcYvfYUBq06jkMMSkQ1ggGJiEgD2ZrqY+4rLXH0w+54o1NTKHRkOBefjpC1pzDwu+M4GJfCoET0AhiQiIg0mI2pPmb398CR6d0xrnNT6OvKEH03HWPXnUbwymM4EJvMoERUDQxIRERawMZEH7Ne9sCRD3tgfJeioHT+XgbeWH8GA1Yew74rDEpEz4MBiYhIi1ibKPBxPw8cnd4Db73UDAa6cly4l4H/++UM+q84inAGJaIqYUAiItJCVsYKzOzrjqPTu+Ptrs4w1JPj0v1MjP/lDIJXncCFNIFBiagSDEhERFrM0liBGX3ccHR6D0zo5gwjPTmuJGbhpzg5XvnuBPZcSoRSyaBEVBoDEhFRPWBhpIfpQf8EpZeaQiEXEZuUhbd/i0Lfb49g10UGJaJ/05G6ACIiqjsNjPQQ2ssVjXKu4Z5Rc/xyIh6xSVl45/cotLA1wbs9XdHH0w4ymSB1qUSS4hEkIqJ6yEgXmBbggmPTe+Ddnq4wUeggLjkLEzdEIWjZYew4n4BCHlGieowBiYioHjMz1EVor+Y4Or0HpvR0hYm+Dq4mP8bk/5xD4NLD+DP6PoMS1UsMSEREBDNDXUz7JyhNC2gOU30dXE95jCkbo9H7m0MIO8egRPULAxIREamYGehiSoArjs7ogfd6NYeZgS5uPMjG1E3R6LXkEP44dw9PC5VSl0lU6yQPSCtXroSTkxP09fXh5+eHU6dOVTp+y5YtcHNzg76+Plq1aoVdu3aVeH3btm3o3bs3LC0tIQgCoqOjy2wjNzcXEydOhKWlJYyNjTF48GAkJyfXZFtERBrNVF8Xk3u64uj07ni/d3OYG+riZmo2pm06j17fHMZ/zzIokXaTNCBt2rQJoaGhmDNnDqKiouDt7Y3AwECkpKSUO/748eMYOXIkxo0bh3PnziE4OBjBwcG4dOmSakx2djY6d+6MhQsXVvi+06ZNw44dO7BlyxYcOnQICQkJGDRoUI33R0Sk6Uz0dTGphyuOTu+BDwJboIGhLm6lZuO9LecRsOQQtpy5y6BEWknSgLRkyRKMHz8eY8eOhYeHB1avXg1DQ0OsXbu23PHLli1DUFAQPvjgA7i7u2P+/Plo06YNVqxYoRrz+uuvY/bs2QgICCh3GxkZGfjpp5+wZMkS9OjRA76+vli3bh2OHz+OEydO1EqfRESazlihg4ndXXBkeg9MD3KDhZEebj/MwQdbL6DH4kPYfPouChiUSItIdh+k/Px8nD17FjNnzlQtk8lkCAgIQGRkZLnrREZGIjQ0tMSywMBAhIWFVfl9z549i4KCghIBys3NDY0bN0ZkZCQ6dOhQ7np5eXnIy8tTPc/MzAQAFBQUoKCgoMrv/yzF26rJbaobbe+R/Wk+be/xRfpTyID/69QYI9s6YMPpu/jx6G3Ep+Xgw/9ewLcHruGdrk0R7OMAXbm0V3BwH2q22uyvqtuULCClpqaisLAQtra2JZbb2toiNja23HWSkpLKHZ+UlFTl901KSoKenh7Mzc2fazsLFizAvHnzyizfu3cvDA0Nq/z+VRUeHl7j21Q32t4j+9N82t7ji/bnCGBGS+BYsoD9CTLce/QEH4VdwaLdl9HLUYn21iJ0JL7SlftQs9VGfzk5OVUaxztpV9HMmTNLHL3KzMxEo0aN0Lt3b5iamtbY+xQUFCA8PBy9evWCrq5ujW1XnWh7j+xP82l7jzXd30AAT/IL8Z/Td/HD0dtIfZyPTTflOPJQH293bYrBrR2hV8dJiftQs9Vmf8VngJ5FsoBkZWUFuVxe5ttjycnJsLOzK3cdOzu75xpf0Tby8/ORnp5e4ijSs7ajUCigUCjKLNfV1a2VD2dtbVedaHuP7E/zaXuPNdmfrq4u3urmitEdm2HDqXisPnQDCRm5mL09BqsP3cKE7i4Y1rYhFDryGnm/56mL+1Bz1UZ/Vd2eZAc/9fT04Ovri/3796uWKZVK7N+/H/7+/uWu4+/vX2I8UHT4raLx5fH19YWurm6J7cTFxSE+Pv65tkNERGUZ6MkxrnNTHPmwO+b094CNiQIJGbmYFXYJ3b6OwK+Rt5H3tFDqMomeSdJTbKGhoQgJCUHbtm3Rvn17LF26FNnZ2Rg7diwAYPTo0XB0dMSCBQsAAFOmTEHXrl2xePFi9OvXDxs3bsSZM2ewZs0a1TbT0tIQHx+PhIQEAEXhByg6cmRnZwczMzOMGzcOoaGhsLCwgKmpKSZPngx/f/8KL9AmIqLno68rx9hOTTGyfWNsPBWPVYduIDEjF7P+vIyVB29gQjdnDG/XCPq6dXtEiaiqJA1Iw4cPx4MHDzB79mwkJSXBx8cHe/bsUV2IHR8fD5nsfwe5OnbsiA0bNuCTTz7BRx99BFdXV4SFhcHT01M1Zvv27aqABQAjRowAAMyZMwdz584FAHzzzTeQyWQYPHgw8vLyEBgYiO+++64OOiYiql/0deUY06kpRrRvjM1n7uK7gzeQlJmLOdsv47uI63i7qzNGtm/MoERqR/KLtCdNmoRJkyaV+1pERESZZUOHDsXQoUMr3N6YMWMwZsyYSt9TX18fK1euxMqVK5+nVCIiqiZ9XTlG+ztheLtG2HzmHlYdvI6EjFzM23EFqyJu4K2uzhjlx6BE6kPyqUaIiKj+UOjI8XqHJjj4QTd8PtATjuYGSMnKw/ydV9Dlq4P48chNPMnnNUokPQYkIiKqcwodOUb5NcHB97vhi4Gt4GhugAdZefjsrxh0+eogfjh8Ezn5T6Uuk+oxBiQiIpKMno4Mr/o1xsH3u+HLQa3QsIEBUh/n4fNdMeiy8CC+P3SDQYkkwYBERESS09ORYUT7oqD01WAvNLYwxMPsfCzYHYvOCw9iVcQNZOcxKFHdYUAiIiK1oSuXYVi7Rtj/Xld8PcQLTSwNkZadj4V7YtF54QF8F3EdjxmUqA4wIBERkdrRlcswtG0j7A/tikVDveFkaYhHOQX4ak8cOi88gJUHryMrVzsnaiX1wIBERERqS0cuwxDfhtgX2hVLhnmjmZUR0nMK8PXfcei88CCW779WJigVKkWcvJWGs6kCTt5KQ6FSlKh60mSS3weJiIjoWXTkMgxq0xADfByx43wCvj1wDTcfZGNx+FX8cOQmxnVuhrGdnXD8eirm7biCxIxcAHL8cu0M7M30Mae/B4I87aVugzQIAxIREWkMuUxAcGtH9Pd2wM4LCfh2/zXceJCNb/ZdxepD1/GkQFlmnaSMXEz4LQqrXmvDkERVxlNsRESkceQyAQN8HLF3Wld8O7I1XKyNyg1HAFB8gm3ejis83UZVxoBEREQaSy4T8Iq3Az4d4FnpOBFAYkYuTt1Kq5vCSOMxIBERkcZ78DivSuO+2hOLP87dQ1p2fi1XRJqO1yAREZHGszHRr9K4c3fTcW5TOmQC0LpxA/Rws0EPNxu42ZlAEIRarpI0CQMSERFpvPZNLWBvpo+kjFyUd5WRAMDCWA/D2jZERFwqYhIzcfbOI5y98whf/x0HBzN9dHezQU93G/g3s4KBnryuWyA1w4BEREQaTy4TMKe/Byb8FgUBKBGSio8LfR7siSBPe0wPAhLSn+BgXAoOxKTg2I1UJGTk4veT8fj9ZDwUOjJ0crFC93+OLjmaG0jQEUmNAYmIiLRCkKc9Vr3W5l/3QSpiV859kBzMDTDKrwlG+TVBbkEhIm88xP7YZByMfYD76U9wIDYFB2JTMAuAm52J6lRc68YNIJfxVFx9wIBERERaI8jTHr087BB5PQV7j5xE7y5+8HexqTTU6OvK0d3NBt3dbCCKIuKSs4oCUkwKouIfITYpC7FJWfgu4gYaGOqia3Nr9HC3RVdXa5gZ6tZhd1SXGJCIiEiryGUC/Jpa4GGMCL+mFs91xEcQBLjZmcLNzhTvdHPBo+x8HLr6AAdiUxARl4JHOQUIi05AWHQC5DIBvk2KLvTu6WYDFxtjXuitRRiQiIiIKtDASA/BrR0R3NoRTwuViIpP/+dUXAquJj/GqVtpOHUrDV/ujkXDBgbo+c+RqA7NLKGvywu9NRkDEhERURXoyGVo39QC7ZtaYGYfd9xNy8HBuBTsj0lB5M2HuPfoCX6OvIOfI+/AQFeOzq5WqmuXbE2rdhsCUh8MSERERNXQyMIQo/2dMNrfCTn5T3Hs+sN/Lu5ORnJmHsKvJCP8SjIAoKWDqerokndDc8h4obfaY0AiIiJ6QYZ6OujlYYteHrYQRU9cSczEgZgUHIhLQfTddFxOyMTlhEx8e+A6rIz10LV50T2XurhawUSfF3qrIwYkIiKiGiQIAlo6mKGlgxkm93RF6uM8HIorutD78NUHSH2cj/9G3cN/o+5BRyagfVML1am4ZtbGUpdP/2BAIiIiqkVWxgoM9m2Iwb4NUVCoxOnbaaqjSzcfZOP4jYc4fuMhPvsrBk2tjNC9RdHRpXZOFtDT4ZSpUmFAIiIiqiO6chk6Oluho7MVPnnZA7dTs1U3pTx56yFupWbjVuotrD12C8YKHXRxLbqjd/cWNrA2UUhdfr3CgERERCQRJysjvNG5Kd7o3BSP857i6LUH/wSmB0h9nIfdl5Kw+1ISAMC7oRl6uNmih5sNmltz+pPaxoBERESkBowVOgjytEeQpz2UShGXEjKwPyYFB+NScOFeBs7/8/hm31XYmCjQzEAG3Ssp6OpmCyMFf53XNP5EiYiI1IxMJsCroTm8GppjWq/mSMnMLZpcNzYFR66lIiUrDylZMpz4TzT05DL4NbP4547etmhsaSh1+VqBAYmIiEjN2ZjqY3i7xhjerjHynhbi+LUHWPf3adzKM8LdR09w5FoqjlxLxbwdV+BsbYSe7rbo3sIGbZ0aQFfOC72rgwGJiIhIgyh05OjsYonMq0r06dMZ8en5OBibgv2xyThz+xFuPMjGjQc3sebwTZjo6xRNrutmg24tbGBhpCd1+RqDAYmIiEhDCYIAFxtjuNgYY/xLzZDxpABHrhVPrvsAadn52HkhETsvJEIQgNaNzFVHl9ztTTi5biUYkIiIiLSEmYEuXvZywMteDihUijh/L73onkuxKbiSmImo+HRExafj67/jYG+mj+5uNujpZoOOzlYw0OPkuv/GgERERKSF5DIBbRo3QJvGDfB+YAskZjzBwdgHOBCbjKPXU5GYkYsNJ+Ox4WQ8FDoydHS2RI9/5otr2IAXejMgERER1QP2ZgZ41a8xXvVrjNyCQkTefFh07VJMCu6nP8HBuAc4GPcA+PMyWtiaoId70dGl1o0bQF4PJ9dlQCIiIqpn9HXl6N6i6A7d814RcS3lMfbHpOBAbDLO3nmEuOQsxCVnYVXEDZgb6qJbc2t0d7NB1+bWMDesHxd6MyARERHVY4IgoLmtCZrbmmBCN2ek5+Tj0NX/XeidnlOAsOgEhEUnQC4T4Nu4AXq4F02u62pjrLUXejMgERERkYq5oR4G+DhigI8jnhYqce5uetEdvWNTEJechVO303Dqdhq+3B2Lhg0M0MOtKCx1aGYJfV3tudCbAYmIiIjKpSOXoZ2TBdo5WWBGHzfce5Tzzz2XUnD8xkPce/QEv0TewS+Rd2CgK0cnFytVYLIz05e6/BfCgERERERV0rCBIV73d8Lr/k7IyX+K49cf4kBcCg7EpCApMxf7YpKxLyYZAOBhb4qe7kXfivNuaK5xF3ozIBEREdFzM9TTQYCHLQI8bCEGi4hJzMKB2GQciE3BubvpuJKYiSuJmVh+4DosjfTQtYU1errZoktzK5jq61a43UKliJO30nA2VYDlrTT4u9hIEq4YkIiIiOiFCIIADwdTeDiYYlIPVzx8nIeIuAc4EJeCw3EP8DA7H9ui7mNb1H3oyAS0c7JQHV1qZmWkutB7z6VEzNtxBYkZuQDk+OXaGdib6WNOfw8EedrXaU8MSERERFSjLI0VGOzbEIN9G6KgUIkztx+pji7deJCNyJsPEXnzIT77KwZOlobo7mYDU31dfLv/GsRS20rKyMWE36Kw6rU2dRqSGJCIiIio1ujKZfB3toS/syU+7ueBOw+zcSC2aPqTkzfTcPthDtYdu13h+iIAAcC8HVfQy8Ouzk63MSARERFRnWliaYSxnZpibKemeJz3FEevpWLTqXgcvPqgwnVEAIkZuTh1Kw3+zpZ1UicDEhEREUnCWKGDIE875D0trDQgFUvJyq2DqorI6uydiIiIiMphY1K1eyZVdVxNYEAiIiIiSbVvagF7M31UdHWRAMDeTB/tm1rUWU0MSERERCQpuUzAnP4eAFAmJBU/n9Pfo07vh8SARERERJIL8rTHqtfalJmixM5Mv86/4g/wIm0iIiJSE0Ge9ujlYYfI6ynYe+Qkenfx4520iYiIiOQyAX5NLfAwRoRfUwvJ5nDjKTYiIiKiUhiQiIiIiEphQCIiIiIqhQGJiIiIqBQGJCIiIqJSGJCIiIiISmFAIiIiIiqFAYmIiIioFAYkIiIiolJ4J+1qEkURAJCZmVmj2y0oKEBOTg4yMzOhq6tbo9tWF9reI/vTfNreo7b3B2h/j+yv+op/bxf/Hq8IA1I1ZWVlAQAaNWokcSVERET0vLKysmBmZlbh64L4rAhF5VIqlUhISICJiQkEoebmicnMzESjRo1w9+5dmJqa1th21Ym298j+NJ+296jt/QHa3yP7qz5RFJGVlQUHBwfIZBVfacQjSNUkk8nQsGHDWtu+qampVn7o/03be2R/mk/be9T2/gDt75H9VU9lR46K8SJtIiIiolIYkIiIiIhKYUBSMwqFAnPmzIFCoZC6lFqj7T2yP82n7T1qe3+A9vfI/mofL9ImIiIiKoVHkIiIiIhKYUAiIiIiKoUBiYiIiKgUBiQiIiKiUhiQ6tjhw4fRv39/ODg4QBAEhIWFPXOdiIgItGnTBgqFAi4uLli/fn2t11ldz9tfREQEBEEo80hKSqqbgp/TggUL0K5dO5iYmMDGxgbBwcGIi4t75npbtmyBm5sb9PX10apVK+zatasOqn1+1elv/fr1Zfafvr5+HVX8/FatWgUvLy/VDej8/f2xe/fuStfRlP0HPH9/mrb/Svvyyy8hCAKmTp1a6ThN2oelVaVHTdqPc+fOLVOrm5tbpetIsf8YkOpYdnY2vL29sXLlyiqNv3XrFvr164fu3bsjOjoaU6dOxf/93//h77//ruVKq+d5+ysWFxeHxMRE1cPGxqaWKnwxhw4dwsSJE3HixAmEh4ejoKAAvXv3RnZ2doXrHD9+HCNHjsS4ceNw7tw5BAcHIzg4GJcuXarDyqumOv0BRXe7/ff+u3PnTh1V/PwaNmyIL7/8EmfPnsWZM2fQo0cPDBgwAJcvXy53vCbtP+D5+wM0a//92+nTp/H999/Dy8ur0nGatg//rao9Apq1H1u2bFmi1qNHj1Y4VrL9J5JkAIh//PFHpWM+/PBDsWXLliWWDR8+XAwMDKzFympGVfo7ePCgCEB89OhRndRU01JSUkQA4qFDhyocM2zYMLFfv34llvn5+YlvvfVWbZf3wqrS37p160QzM7O6K6oWNGjQQPzxxx/LfU2T91+xyvrT1P2XlZUlurq6iuHh4WLXrl3FKVOmVDhWU/fh8/SoSftxzpw5ore3d5XHS7X/eARJzUVGRiIgIKDEssDAQERGRkpUUe3w8fGBvb09evXqhWPHjkldTpVlZGQAACwsLCoco8n7sCr9AcDjx4/RpEkTNGrU6JlHK9RJYWEhNm7ciOzsbPj7+5c7RpP3X1X6AzRz/02cOBH9+vUrs2/Ko6n78Hl6BDRrP167dg0ODg5o1qwZRo0ahfj4+ArHSrX/OFmtmktKSoKtrW2JZba2tsjMzMSTJ09gYGAgUWU1w97eHqtXr0bbtm2Rl5eHH3/8Ed26dcPJkyfRpk0bqcurlFKpxNSpU9GpUyd4enpWOK6ifaiu11kVq2p/LVq0wNq1a+Hl5YWMjAwsWrQIHTt2xOXLl2t1QucXcfHiRfj7+yM3NxfGxsb4448/4OHhUe5YTdx/z9OfJu6/jRs3IioqCqdPn67SeE3ch8/boybtRz8/P6xfvx4tWrRAYmIi5s2bhy5duuDSpUswMTEpM16q/ceARJJq0aIFWrRooXresWNH3LhxA9988w1+/fVXCSt7tokTJ+LSpUuVnjvXZFXtz9/fv8TRiY4dO8Ld3R3ff/895s+fX9tlVkuLFi0QHR2NjIwMbN26FSEhITh06FCFIULTPE9/mrb/7t69iylTpiA8PFxtL0J+UdXpUZP2Y58+fVT/9vLygp+fH5o0aYLNmzdj3LhxElZWEgOSmrOzs0NycnKJZcnJyTA1NdX4o0cVad++vdqHjkmTJmHnzp04fPjwM/86q2gf2tnZ1WaJL+R5+itNV1cXrVu3xvXr12upuhenp6cHFxcXAICvry9Onz6NZcuW4fvvvy8zVhP33/P0V5q677+zZ88iJSWlxBHmwsJCHD58GCtWrEBeXh7kcnmJdTRtH1anx9LUfT/+m7m5OZo3b15hrVLtP16DpOb8/f2xf//+EsvCw8MrvZ5A00VHR8Pe3l7qMsoliiImTZqEP/74AwcOHEDTpk2fuY4m7cPq9FdaYWEhLl68qLb7sDxKpRJ5eXnlvqZJ+68ilfVXmrrvv549e+LixYuIjo5WPdq2bYtRo0YhOjq63OCgafuwOj2Wpu778d8eP36MGzduVFirZPuvVi8BpzKysrLEc+fOiefOnRMBiEuWLBHPnTsn3rlzRxRFUZwxY4b4+uuvq8bfvHlTNDQ0FD/44AMxJiZGXLlypSiXy8U9e/ZI1UKlnre/b775RgwLCxOvXbsmXrx4UZwyZYook8nEffv2SdVCpSZMmCCamZmJERERYmJiouqRk5OjGvP666+LM2bMUD0/duyYqKOjIy5atEiMiYkR58yZI+rq6ooXL16UooVKVae/efPmiX///bd448YN8ezZs+KIESNEfX198fLly1K08EwzZswQDx06JN66dUu8cOGCOGPGDFEQBHHv3r2iKGr2/hPF5+9P0/ZfeUp/w0vT92F5ntWjJu3H9957T4yIiBBv3bolHjt2TAwICBCtrKzElJQUURTVZ/8xINWx4q+1l36EhISIoiiKISEhYteuXcus4+PjI+rp6YnNmjUT161bV+d1V9Xz9rdw4ULR2dlZ1NfXFy0sLMRu3bqJBw4ckKb4KiivNwAl9knXrl1V/RbbvHmz2Lx5c1FPT09s2bKl+Ndff9Vt4VVUnf6mTp0qNm7cWNTT0xNtbW3Fvn37ilFRUXVffBW98cYbYpMmTUQ9PT3R2tpa7Nmzpyo8iKJm7z9RfP7+NG3/lad0eND0fVieZ/WoSftx+PDhor29vainpyc6OjqKw4cPF69fv656XV32nyCKoli7x6iIiIiINAuvQSIiIiIqhQGJiIiIqBQGJCIiIqJSGJCIiIiISmFAIiIiIiqFAYmIiIioFAYkIiIiolIYkIiIqkkQBISFhUldBhHVAgYkItJIY8aMgSAIZR5BQUFSl0ZEWkBH6gKIiKorKCgI69atK7FMoVBIVA0RaRMeQSIijaVQKGBnZ1fi0aBBAwBFp79WrVqFPn36wMDAAM2aNcPWrVtLrH/x4kX06NEDBgYGsLS0xJtvvonHjx+XGLN27Vq0bNkSCoUC9vb2mDRpUonXU1NTMXDgQBgaGsLV1RXbt29Xvfbo0SOMGjUK1tbWMDAwgKura5lAR0TqiQGJiLTWrFmzMHjwYJw/fx6jRo3CiBEjEBMTAwDIzs5GYGAgGjRogNOnT2PLli3Yt29fiQC0atUqTJw4EW+++SYuXryI7du3w8XFpcR7zJs3D8OGDcOFCxfQt29fjBo1Cmlpaar3v3LlCnbv3o2YmBisWrUKVlZWdfcDIKLqq/XpcImIakFISIgol8tFIyOjEo/PP/9cFEVRBCC+/fbbJdbx8/MTJ0yYIIqiKK5Zs0Zs0KCB+PjxY9Xrf/31lyiTycSkpCRRFEXRwcFB/PjjjyusAYD4ySefqJ4/fvxYBCDu3r1bFEVR7N+/vzh27NiaaZiI6hSvQSIijdW9e3esWrWqxDILCwvVv/39/Uu85u/vj+joaABATEwMvL29YWRkpHq9U6dOUCqViIuLgyAISEhIQM+ePSutwcvLS/VvIyMjmJqaIiUlBQAwYcIEDB48GFFRUejduzeCg4PRsWPHavVKRHWLAYmINJaRkVGZU141xcDAoErjdHV1SzwXBAFKpRIA0KdPH9y5cwe7du1CeHg4evbsiYkTJ2LRokU1Xi8R1Sxeg0REWuvEiRNlnru7uwMA3N3dcf78eWRnZ6teP3bsGGQyGVq0aAETExM4OTlh//79L1SDtbU1QkJC8Ntvv2Hp0qVYs2bNC22PiOoGjyARkcbKy8tDUlJSiWU6OjqqC6G3bNmCtm3bonPnzvj9999x6tQp/PTTTwCAUaNGYc6cOQgJCcHcuXPx4MEDTJ48Ga+//jpsbW0BAHPnzsXbb78NGxsb9OnTB1lZWTh27BgmT55cpfpmz54NX19ftGzZEnl5edi5c6cqoBGRemNAIiKNtWfPHtjb25dY1qJFC8TGxgIo+obZxo0b8c4778De3h7/+c9/4OHhAQAwNDTE33//jSlTpqBdu3YwNDTE4MGDsWTJEtW2QkJCkJubi2+++Qbvv/8+rKysMGTIkCrXp6enh5kzZ+L27dswMDBAly5dsHHjxhronIhqmyCKoih1EURENU0QBPzxxx8IDg6WuhQi0kC8BomIiIioFAYkIiIiolJ4DRIRaSVePUBEL4JHkIiIiIhKYUAiIiIiKoUBiYiIiKgUBiQiIiKiUhiQiIiIiEphQCIiIiIqhQGJiIiIqBQGJCIiIqJSGJCIiIiISvl/d39fMu96G4MAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# Plotting the training loss\n", "plt.plot(range(1, num_epochs + 1), loss_values, marker='o', label=\"Training Loss\")\n", "plt.title(\"Training Loss over Epochs\")\n", "plt.xlabel(\"Epochs\")\n", "plt.ylabel(\"Loss\")\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 26, "id": "0ce612a1", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T04:08:05.848193Z", "iopub.status.busy": "2024-10-19T04:08:05.847798Z", "iopub.status.idle": "2024-10-19T04:27:01.520968Z", "shell.execute_reply": "2024-10-19T04:27:01.520130Z" }, "id": "mMJ9RdNFlo7n", "papermill": { "duration": 1135.965761, "end_time": "2024-10-19T04:27:01.523469", "exception": false, "start_time": "2024-10-19T04:08:05.557708", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training on Task T3\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 314/314 [03:44<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1 - Loss: 0.028447151246367937\n", "New minimum loss: 0.0284, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 314/314 [03:44<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2 - Loss: 0.017575527700020153\n", "New minimum loss: 0.0176, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 314/314 [03:44<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 3 - Loss: 0.012083320739785814\n", "New minimum loss: 0.0121, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 314/314 [03:44<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 4 - Loss: 0.008300796071079317\n", "New minimum loss: 0.0083, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 314/314 [03:44<00:00, 1.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 5 - Loss: 0.00641057728663692\n", "New minimum loss: 0.0064, saving model...\n" ] } ], "source": [ "from torch.utils.data import ConcatDataset\n", "\n", "# Keep 100 examples from T1 and T2\n", "replay_buffer_T1 = random.sample(range(len(train_dataloaders[\"T1\"].dataset)), 100)\n", "sampled_dataset1 = Subset(train_dataloaders[\"T1\"].dataset, replay_buffer_T1)\n", "replay_buffer_T2 = random.sample(range(len(train_dataloaders[\"T2\"].dataset)), 100)\n", "sampled_dataset2 = Subset(train_dataloaders[\"T2\"].dataset, replay_buffer_T2)\n", "combined_dataset = ConcatDataset([sampled_dataset1, sampled_dataset2])\n", "replay_dataloader_T1_T2 = DataLoader(combined_dataset, batch_size=batch_size, shuffle=True)\n", "\n", "# Combine the two datasets\n", "combined_dataset = ConcatDataset([train_dataloaders[\"T3\"].dataset, replay_dataloader_T1_T2.dataset])\n", "# Create a new DataLoader from the combined dataset\n", "combined_loader = DataLoader(combined_dataset, batch_size=batch_size, shuffle=True)\n", "\n", "# Task 2 training with EWC\n", "print(\"Training on Task T3\")\n", "\n", "# model = BertForTokenClassification.from_pretrained(\"bert-base-cased\", num_labels=len(label_map))\n", "# model.load_state_dict(torch.load('model_weights2.pth', weights_only=True))\n", "# model.to(device)\n", "\n", "# Elastic Weight Consolidation for Task 1 and Task 2\n", "ewc_T1_T2 = EWC(model, replay_dataloader_T1_T2)\n", "\n", "loss_values, model = train_model(model, train_dataloaders[\"T3\"], optimizer, 'model_weights3.pth', ewc=ewc_T1_T2, epochs=num_epochs)\n", "# Assuming `model` is your trained model\n", "# torch.save(multi_label_model.state_dict(), 'model_weights3.pth')" ] }, { "cell_type": "code", "execution_count": 27, "id": "faf9a6ac", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T04:27:02.356894Z", "iopub.status.busy": "2024-10-19T04:27:02.356252Z", "iopub.status.idle": "2024-10-19T04:27:02.642888Z", "shell.execute_reply": "2024-10-19T04:27:02.641948Z" }, "id": "0YsWI0wClo7o", "papermill": { "duration": 0.703735, "end_time": "2024-10-19T04:27:02.644889", "exception": false, "start_time": "2024-10-19T04:27:01.941154", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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bbV/DgwMLPVZYGAg4uLiAAAXL16Ev78/zM3NtZ8/99xz0Gg0SEhIgCAISE5ORq9evSqtwc/PT/tnc3NzWFlZIT09HQAwZcoUDBkyBDExMejbty9CQkLQpUuXavVKRHWLAYmI9Ja5uXm5Ka+aYmpqWqVxxsbGpd4LggCNRgMA6N+/PxITExEeHo6IiAj06tULU6dOxdKlS2u8XiKqWTwHiYgM1vHjx8u9b9myJQCgZcuWOHPmDPLz87WfR0ZGQiaToUWLFrC0tIS7uzv279//TDU4ODhg3Lhx+OWXX/DFF19g7dq1z7Q9IqobPIJERHqrqKgIqamppZYZGRlpT4TevHkzOnTogK5du+LXX3/FyZMn8f333wMARo8ejblz52LcuHGYN28e7t69i7fffhuvvvoqnJycAADz5s3Dm2++CUdHR/Tv3x+5ubmIjIzE22+/XaX65syZg/bt26NVq1YoKirCzp07tQGNiHQbAxIR6a3du3fDxcWl1LIWLVrg0qVLAB5dYbZhwwa89dZbcHFxwX//+1/4+PgAAMzMzLBnzx5MmzYNHTt2hJmZGYYMGYLly5drtzVu3DgUFhbi888/x/vvvw97e3sMHTq0yvWZmJhg1qxZuHnzJkxNTREUFIQNGzbUQOdEVNsEURRFqYsgIqppgiDg999/R0hIiNSlEJEe4jlIRERERGUwIBERERGVwXOQiMgg8ewBInoWPIJEREREVAYDEhEREVEZDEhEREREZTAgEREREZXBgERERERUBgMSERERURkMSERERERlMCARERERlcGARERERFTG/wO5GUzqiWKqBAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# Plotting the training loss\n", "plt.plot(range(1, num_epochs + 1), loss_values, marker='o', label=\"Training Loss\")\n", "plt.title(\"Training Loss over Epochs\")\n", "plt.xlabel(\"Epochs\")\n", "plt.ylabel(\"Loss\")\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 28, "id": "4011f2b4", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T04:27:03.519958Z", "iopub.status.busy": "2024-10-19T04:27:03.519556Z", "iopub.status.idle": "2024-10-19T05:24:17.930675Z", "shell.execute_reply": "2024-10-19T05:24:17.929777Z" }, "id": "CPeGbtV4lo7o", "papermill": { "duration": 3434.867153, "end_time": "2024-10-19T05:24:17.933208", "exception": false, "start_time": "2024-10-19T04:27:03.066055", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training on G1+G2+G3 \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Some weights of BertForTokenClassification were not initialized from the model checkpoint at bert-base-cased and are newly initialized: ['classifier.bias', 'classifier.weight']\n", "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n", "100%|██████████| 1004/1004 [11:25<00:00, 1.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1 - Loss: 0.049782790117470395\n", "New minimum loss: 0.0498, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 1004/1004 [11:25<00:00, 1.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2 - Loss: 0.021665205914653332\n", "New minimum loss: 0.0217, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 1004/1004 [11:25<00:00, 1.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 3 - Loss: 0.016814892424921693\n", "New minimum loss: 0.0168, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 1004/1004 [11:26<00:00, 1.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 4 - Loss: 0.012903303460684601\n", "New minimum loss: 0.0129, saving model...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 1004/1004 [11:27<00:00, 1.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 5 - Loss: 0.010335032426728032\n", "New minimum loss: 0.0103, saving model...\n" ] } ], "source": [ "#Training on complete G1+G2+G3\n", "# Combine the datasets\n", "combined_train_dataset = ConcatDataset([train_dataloaders[\"T1\"].dataset, train_dataloaders[\"T2\"].dataset, train_dataloaders[\"T3\"].dataset])\n", "combined_test_dataset = ConcatDataset([test_dataloaders[\"T1\"].dataset, test_dataloaders[\"T2\"].dataset, test_dataloaders[\"T3\"].dataset])\n", "\n", "# Create a new DataLoader from the combined dataset\n", "combined_train_loader_123 = DataLoader(combined_train_dataset, batch_size=batch_size, shuffle=True)\n", "combined_test_loader_123 = DataLoader(combined_test_dataset, batch_size=batch_size, shuffle=True)\n", "\n", "print(\"Training on G1+G2+G3 \")\n", "model = BertForTokenClassification.from_pretrained(\"bert-base-cased\", num_labels=len(label_map))# Optimizer\n", "optimizer = AdamW(model.parameters(), lr=learning_rate)\n", "loss_values, _ = train_model(model, combined_train_loader_123, optimizer, 'model_weights4.pth', epochs=num_epochs)" ] }, { "cell_type": "markdown", "id": "2642e21c", "metadata": { "id": "HIKlgZ-llo7p", "papermill": { "duration": 0.845308, "end_time": "2024-10-19T05:24:19.581088", "exception": false, "start_time": "2024-10-19T05:24:18.735780", "status": "completed" }, "tags": [] }, "source": [ "## Evaluation" ] }, { "cell_type": "code", "execution_count": 29, "id": "e0f13d48", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T05:24:21.255939Z", "iopub.status.busy": "2024-10-19T05:24:21.255015Z", "iopub.status.idle": "2024-10-19T05:24:57.894478Z", "shell.execute_reply": "2024-10-19T05:24:57.893525Z" }, "id": "PM9Iwib6lo7p", "papermill": { "duration": 38.318841, "end_time": "2024-10-19T05:24:58.721275", "exception": false, "start_time": "2024-10-19T05:24:20.402434", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Task 1\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Some weights of BertForTokenClassification were not initialized from the model checkpoint at bert-base-cased and are newly initialized: ['classifier.bias', 'classifier.weight']\n", "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n", " 0%| | 0/92 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Performance on the test set of T1Performance on the test set of T1 and T2.Performance on the test set of T1, T2 and T3.Performance on combined G1+G2+G3
Weighted Average0.5067890.6141780.6169180.559810
treatment0.5415010.6139970.6263490.532574
chronic_disease0.4656720.6312100.6110090.576314
cancer0.5764850.5851700.6100750.627876
allergy_name0.0298510.4700000.5802820.386076
\n", "" ], "text/plain": [ " Performance on the test set of T1 \\\n", "Weighted Average 0.506789 \n", "treatment 0.541501 \n", "chronic_disease 0.465672 \n", "cancer 0.576485 \n", "allergy_name 0.029851 \n", "\n", " Performance on the test set of T1 and T2. \\\n", "Weighted Average 0.614178 \n", "treatment 0.613997 \n", "chronic_disease 0.631210 \n", "cancer 0.585170 \n", "allergy_name 0.470000 \n", "\n", " Performance on the test set of T1, T2 and T3. \\\n", "Weighted Average 0.616918 \n", "treatment 0.626349 \n", "chronic_disease 0.611009 \n", "cancer 0.610075 \n", "allergy_name 0.580282 \n", "\n", " Performance on combined G1+G2+G3 \n", "Weighted Average 0.559810 \n", "treatment 0.532574 \n", "chronic_disease 0.576314 \n", "cancer 0.627876 \n", "allergy_name 0.386076 " ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_scores_df = get_all_scores([T1_results, T2_results, T3_results, T4_results]).T\n", "all_scores_df.columns = [\"Performance on the test set of T1\",\"Performance on the test set of T1 and T2.\",\"Performance on the test set of T1, T2 and T3.\",\"Performance on combined G1+G2+G3\"]\n", "all_scores_df" ] }, { "cell_type": "code", "execution_count": 35, "id": "73b43a29", "metadata": { "execution": { "iopub.execute_input": "2024-10-19T05:29:29.496012Z", "iopub.status.busy": "2024-10-19T05:29:29.495622Z", "iopub.status.idle": "2024-10-19T05:29:29.504783Z", "shell.execute_reply": "2024-10-19T05:29:29.503948Z" }, "id": "enLklxLYYJ3f", "papermill": { "duration": 0.876876, "end_time": "2024-10-19T05:29:29.506741", "exception": false, "start_time": "2024-10-19T05:29:28.629865", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "all_scores_df.to_csv('all_scores_df.csv')" ] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "T4", "provenance": [] }, "kaggle": { "accelerator": "nvidiaTeslaT4", "dataSources": [ { "datasetId": 5886347, "sourceId": 9639798, "sourceType": "datasetVersion" }, { "datasetId": 5902909, "sourceId": 9661596, "sourceType": "datasetVersion" } ], "dockerImageVersionId": 30787, "isGpuEnabled": true, "isInternetEnabled": true, "language": "python", "sourceType": "notebook" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.14" }, "papermill": { "default_parameters": {}, "duration": 7349.251517, "end_time": "2024-10-19T05:29:33.328399", "environment_variables": {}, "exception": null, "input_path": "__notebook__.ipynb", "output_path": "__notebook__.ipynb", "parameters": {}, "start_time": "2024-10-19T03:27:04.076882", "version": "2.6.0" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "06302581b083456b9c3c8c963644a989": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "06b337d1462e48cc95af610666b09666": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_3017f343371943908ea25ee280c2e9bd", "IPY_MODEL_62d2ee84b5744a04a3b748dfe732eded", "IPY_MODEL_54ec13be30554926b7976e543d094425" ], "layout": "IPY_MODEL_4f1072a412db40419f85a09ae42f2bb9" } }, "09f90ce81bd64eccb1a1518a1faff7e9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1493273896304bfd9899e71216b42ab7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "18cf30eccdc84df3b4781cf1fbbb78a3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_8153dad620e640b0a9b5604febd27d64", "max": 435755784.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_e4f6862c274747b39bf143bcf9fe97b0", "value": 435755784.0 } }, "1ac46f0a3b5f40beb8aeffc492755fdf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_3fa198b1bbd74d3ca808db47c6bcfb91", "placeholder": "​", "style": "IPY_MODEL_d495045efcf744dca3d51dec98f0734e", "value": " 436M/436M [00:02<00:00, 262MB/s]" } }, "231a5bb115b342c48e4c4fd2eeb44857": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "2b8d2f901ab243318b5cfbeff8f25eee": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2b94730544a24657b6119ca3cd72860a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_c6b9c36b4d134c6f87726559c57d3ae1", "placeholder": "​", "style": "IPY_MODEL_f52def1ec17b412cb60d44beef8080ee", "value": "vocab.txt: 100%" } }, "2dc678e82fa64c48a790e3d819348391": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "2e626c68a5ab4b91ac0c52cc2b81508e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "3017f343371943908ea25ee280c2e9bd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f1f1e7a622044ef68a1ce1a241e002ac", "placeholder": "​", "style": "IPY_MODEL_2e626c68a5ab4b91ac0c52cc2b81508e", "value": "config.json: 100%" } }, "3696fef0fada456b8cb387f1653215be": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "3fa198b1bbd74d3ca808db47c6bcfb91": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "4293c9517ab64783bb8dc7683e103b98": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "4b8b04381c264cd19a7217e3e5f2c6fb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_85a6f29eed654e609c714e833d490760", "placeholder": "​", "style": "IPY_MODEL_9318bbe7299a4facb4089b2b3f03f7e4", "value": "model.safetensors: 100%" } }, "4df732b79c4d44f6ab297c7ebe4b8f7b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_ccc45da15caf4419851727e39bb5a547", "IPY_MODEL_f9110544b8c4435bb3ee6320eb0c11ea", "IPY_MODEL_caf8825fcd1f416e927d41b783f20e7d" ], "layout": "IPY_MODEL_1493273896304bfd9899e71216b42ab7" } }, "4f1072a412db40419f85a09ae42f2bb9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "54ec13be30554926b7976e543d094425": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_2b8d2f901ab243318b5cfbeff8f25eee", "placeholder": "​", "style": "IPY_MODEL_f3186d2a3d9f4c22be1d0f110c50efd0", "value": " 570/570 [00:00<00:00, 49.8kB/s]" } }, "62d2ee84b5744a04a3b748dfe732eded": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_fd467c9c41be4d29995c699b75b81cd5", "max": 570.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_658373fa07ac408a89ed555b0a840a14", "value": 570.0 } }, "658373fa07ac408a89ed555b0a840a14": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "74b541919b784641a8526b4ca1d0a404": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "7945c90c7d474b51abd266091f901952": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "81527808acc0472cbdd51e7c6420ce8a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8153dad620e640b0a9b5604febd27d64": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "85a6f29eed654e609c714e833d490760": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "87a61e94a64a4c488860663c7a17d964": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9318bbe7299a4facb4089b2b3f03f7e4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "a66f9039603d4070893769f603c55b88": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "a89ad9a1b1164c17912bbfd6a1c671bf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ad070181b22f49c5a6c3ae0caa55d3b8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_81527808acc0472cbdd51e7c6420ce8a", "max": 213450.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_2dc678e82fa64c48a790e3d819348391", "value": 213450.0 } }, "aeb890f8c9b6434ba3feda619ccd3b07": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a89ad9a1b1164c17912bbfd6a1c671bf", "placeholder": "​", "style": "IPY_MODEL_7945c90c7d474b51abd266091f901952", "value": "tokenizer_config.json: 100%" } }, "af620a1558ad48f0bf24a24e7b0d7e3c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b1a021dcde9240dcb0c2be5725a96c59": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b659c0a2dd244c6d9313eeba2ec38298": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c625e09aef47433894e0d121efcaa2e6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c6b9c36b4d134c6f87726559c57d3ae1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "caf8825fcd1f416e927d41b783f20e7d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_09f90ce81bd64eccb1a1518a1faff7e9", "placeholder": "​", "style": "IPY_MODEL_4293c9517ab64783bb8dc7683e103b98", "value": " 436k/436k [00:00<00:00, 5.96MB/s]" } }, "cbe1d6d4f28b4db8b41c24c8d6ea7179": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ccc45da15caf4419851727e39bb5a547": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_c625e09aef47433894e0d121efcaa2e6", "placeholder": "​", "style": "IPY_MODEL_231a5bb115b342c48e4c4fd2eeb44857", "value": "tokenizer.json: 100%" } }, "ccf8ab04c1bf49c08a02749a5bf94090": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "d3e6ad5135884663b0d44b60f4981af4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_cbe1d6d4f28b4db8b41c24c8d6ea7179", "max": 49.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_eb488c1b67674794a5b860fe2cc56dae", "value": 49.0 } }, "d495045efcf744dca3d51dec98f0734e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "db6042c77cbd4db0bca2331c558256d8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_2b94730544a24657b6119ca3cd72860a", "IPY_MODEL_ad070181b22f49c5a6c3ae0caa55d3b8", "IPY_MODEL_dd2b300b9e5a4a5e8d7d781fc66e1436" ], "layout": "IPY_MODEL_af620a1558ad48f0bf24a24e7b0d7e3c" } }, "dc8efdeeb86448f1ab80d1d7ca7af5ca": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_4b8b04381c264cd19a7217e3e5f2c6fb", "IPY_MODEL_18cf30eccdc84df3b4781cf1fbbb78a3", "IPY_MODEL_1ac46f0a3b5f40beb8aeffc492755fdf" ], "layout": "IPY_MODEL_b1a021dcde9240dcb0c2be5725a96c59" } }, "dd2b300b9e5a4a5e8d7d781fc66e1436": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_06302581b083456b9c3c8c963644a989", "placeholder": "​", "style": "IPY_MODEL_ccf8ab04c1bf49c08a02749a5bf94090", "value": " 213k/213k [00:00<00:00, 4.07MB/s]" } }, "e4f6862c274747b39bf143bcf9fe97b0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "e6853cc7a3cb439ba6fb13a4e1d68825": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b659c0a2dd244c6d9313eeba2ec38298", "placeholder": "​", "style": "IPY_MODEL_74b541919b784641a8526b4ca1d0a404", "value": " 49.0/49.0 [00:00<00:00, 3.94kB/s]" } }, "e9fbb901478541afaa5e4331803f95a5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_aeb890f8c9b6434ba3feda619ccd3b07", "IPY_MODEL_d3e6ad5135884663b0d44b60f4981af4", "IPY_MODEL_e6853cc7a3cb439ba6fb13a4e1d68825" ], "layout": "IPY_MODEL_87a61e94a64a4c488860663c7a17d964" } }, "eb488c1b67674794a5b860fe2cc56dae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "f1f1e7a622044ef68a1ce1a241e002ac": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f3186d2a3d9f4c22be1d0f110c50efd0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f52def1ec17b412cb60d44beef8080ee": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f9110544b8c4435bb3ee6320eb0c11ea": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_3696fef0fada456b8cb387f1653215be", "max": 435797.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_a66f9039603d4070893769f603c55b88", "value": 435797.0 } }, "fd467c9c41be4d29995c699b75b81cd5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }