{ "cells": [ { "cell_type": "markdown", "id": "13165aa1-fe26-481f-bb08-3d1fac826041", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": "73ec4c5e-654b-4690-8e78-4741d28639c3", "diskcache": false, "headerColor": "inherit", "id": "b85b379c-83f2-4c6c-996c-ded984bab2c8", "isComponent": false, "name": "", "parents": [] }, "tags": [] }, "source": [ "# Sequential Data Classification\n", "Adapted from : https://github.com/bentrevett/pytorch-sentiment-analysis/blob/master/2_lstm.ipynb\n", "- Link Component Color Annotations\n", " - Yellow : data load / preprocessing\n", " - Violet : model train / predict" ] }, { "cell_type": "markdown", "id": "ace54a3c-e4ad-4b0b-9d9a-697742de73b7", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "b57118ae-bfa2-46fe-8b9d-fee2d726c371", "isComponent": false, "name": "", "parents": [] } }, "source": [ "### Required Python Packages\n", "- `tqdm`\n", "- `torch`\n", "- `torchtext`\n", "- `datasets`\n", "- `matplotlib`\n", "\n", "Run the following cell to install the packages." ] }, { "cell_type": "code", "execution_count": null, "id": "bd51f254-866d-444a-abb9-9de45249c3c0", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "c83a6d5a-1d50-441e-8dbd-e69bb82b6bde", "isComponent": false, "name": "", "parents": [] } }, "outputs": [], "source": [ "#\n", "# Required Packages\n", "# Run this cell to install required packages.\n", "#\n", "%pip install \"datasets>=2.2\" \"matplotlib>=2.0\" \"torch>=1.9\" \"torchtext>=0.12\" \"tqdm>=4.64\" " ] }, { "cell_type": "markdown", "id": "9f57ecf9-db3e-4ec7-8c83-89a07b760fdb", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": "bf338eaf-cf47-4680-bc99-9cf3bd0fa5fd", "diskcache": false, "headerColor": "inherit", "id": "a5334a1c-ddda-4f4b-8f5b-6f40dc035d3d", "isComponent": false, "name": "", "parents": [] } }, "source": [ "### 0. Global Parameters\n", "- global paprameter of link pipeline\n", " - seed : torch seed\n", " - max_length : max sequence length\n", " - test_size : validayion ratio\n", " - min_freq : minimum frequency of token in vocabulary\n", " - embedding_dim : embedding dimension size of embedding layer \n", " - hidden_dim : hidden size of RNN layer\n", " - lr : train learning rate\n", " - batch_size : train batch size\n", " - n_epochs : train epoch" ] }, { "cell_type": "markdown", "id": "f0d86820-9565-4f47-90a0-da2e0b982cc2", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": "a16d8c78-8820-4f89-87c5-dfbdd31e7189", "diskcache": false, "headerColor": "inherit", "id": "f0b3d714-4564-405a-8034-6ce10eda9622", "isComponent": false, "name": "", "parents": [] } }, "source": ["### 1. Load package,data"] }, { "cell_type": "code", "execution_count": null, "id": "b672f09d-fcc2-4331-bb83-3e4483673e87", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#FAFF00", "id": "8d792aa6-cac6-4ba6-a4a4-1a5566cfbb81", "isComponent": true, "name": "Import packages", "parents": [] }, "tags": [] }, "outputs": [], "source": [ "import functools\n", "import sys\n", "\n", "import datasets\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import torch\n", "import torch.nn as nn\n", "import torch.optim as optim\n", "import torchtext\n", "import tqdm\n", "from datasets import Dataset, DatasetDict\n", "\n", "_ = torch.manual_seed(seed)" ] }, { "cell_type": "code", "execution_count": null, "id": "2685f1a6-8e78-4479-aef7-b5bf36b5b2d0", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#FAFF00", "id": "e6449370-f87c-470a-813c-6686f1988e13", "isComponent": true, "name": "Load data", "parents": [ { "id": "8d792aa6-cac6-4ba6-a4a4-1a5566cfbb81", "name": "Import packages" } ] }, "tags": [] }, "outputs": [], "source": [ "train_data, test_data = datasets.load_dataset(\"imdb\", split=[\"train\", \"test\"])" ] }, { "cell_type": "markdown", "id": "b329be11-5e4d-4083-9eaa-3a170aceb753", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "14b952e3-b3ad-429b-be52-9b1954883f27", "isComponent": false, "name": "", "parents": [] }, "tags": [] }, "source": ["### 2. Prepare Data"] }, { "cell_type": "code", "execution_count": null, "id": "6c4e6dfb-f6ae-4341-9e84-8f9885bed7f3", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#FAFF00", "id": "c7543bc0-670a-49bd-a070-25c610f2c36f", "isComponent": true, "name": "Load tokenizer", "parents": [ { "id": "8d792aa6-cac6-4ba6-a4a4-1a5566cfbb81", "name": "Import packages" } ] }, "tags": [] }, "outputs": [], "source": [ "tokenizer = torchtext.data.utils.get_tokenizer(\"basic_english\")" ] }, { "cell_type": "code", "execution_count": null, "id": "d53a51eb-8730-41cd-8e85-d084ffa3f070", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#FAFF00", "id": "3568006d-7cb0-47e4-b56a-59c1d5ed5f9d", "isComponent": true, "name": "Tokenize data", "parents": [ { "id": "e6449370-f87c-470a-813c-6686f1988e13", "name": "Load data" }, { "id": "c7543bc0-670a-49bd-a070-25c610f2c36f", "name": "Load tokenizer" } ] }, "tags": [] }, "outputs": [], "source": [ "def tokenize_data(example, tokenizer, max_length):\n", " tokens = tokenizer(example[\"text\"])[:max_length]\n", " length = len(tokens)\n", " return {\"tokens\": tokens, \"length\": length}\n", "\n", "\n", "train_data = train_data.map(tokenize_data, fn_kwargs={\"tokenizer\": tokenizer, \"max_length\": max_length})\n", "test_data = test_data.map(tokenize_data, fn_kwargs={\"tokenizer\": tokenizer, \"max_length\": max_length})" ] }, { "cell_type": "code", "execution_count": null, "id": "5f520507-a21c-4701-a8ed-47054ed3ad49", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#FAFF00", "id": "2f143cce-7b1e-4d14-b3ad-93ba9afc436b", "isComponent": true, "name": "Sampling and split data", "parents": [ { "id": "3568006d-7cb0-47e4-b56a-59c1d5ed5f9d", "name": "Tokenize data" } ] }, "tags": [] }, "outputs": [], "source": [ "train_data_df = Dataset.to_pandas(train_data).sample(n=3000)\n", "train_data = Dataset.from_pandas(train_data_df)\n", "\n", "test_data_df = Dataset.to_pandas(test_data).sample(n=2000)\n", "test_data = Dataset.from_pandas(test_data_df)\n", "\n", "train_valid_data = train_data.train_test_split(test_size=test_size)\n", "train_data = train_valid_data[\"train\"]\n", "valid_data = train_valid_data[\"test\"]" ] }, { "cell_type": "code", "execution_count": null, "id": "57d7f30e-c940-4c9c-b780-d567331a773a", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#FAFF00", "id": "87489719-b806-424b-90b4-55bbfadd1102", "isComponent": true, "name": "Set vocab", "parents": [ { "id": "2f143cce-7b1e-4d14-b3ad-93ba9afc436b", "name": "Sampling and split data" } ] }, "tags": [] }, "outputs": [], "source": [ "special_tokens = [\"\", \"\"]\n", "\n", "vocab = torchtext.vocab.build_vocab_from_iterator(\n", " train_data[\"tokens\"],\n", " min_freq=min_freq,\n", " specials=special_tokens,\n", ")\n", "\n", "unk_index = vocab[\"\"]\n", "pad_index = vocab[\"\"]\n", "\n", "vocab.set_default_index(unk_index)" ] }, { "cell_type": "code", "execution_count": null, "id": "1694f0f3-b040-49d9-8948-ab400f94aadc", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#FAFF00", "id": "77e482c4-435f-40e3-832f-7b8487dec28e", "isComponent": true, "name": "Preprocessing data", "parents": [ { "id": "87489719-b806-424b-90b4-55bbfadd1102", "name": "Set vocab" } ] }, "tags": [] }, "outputs": [], "source": [ "def numericalize_data(example, vocab):\n", " ids = [vocab[token] for token in example[\"tokens\"]]\n", " return {\"ids\": ids}\n", "\n", "\n", "train_data = train_data.map(numericalize_data, fn_kwargs={\"vocab\": vocab})\n", "valid_data = valid_data.map(numericalize_data, fn_kwargs={\"vocab\": vocab})\n", "test_data = test_data.map(numericalize_data, fn_kwargs={\"vocab\": vocab})\n", "\n", "train_data = train_data.with_format(type=\"torch\", columns=[\"ids\", \"label\", \"length\"])\n", "valid_data = valid_data.with_format(type=\"torch\", columns=[\"ids\", \"label\", \"length\"])\n", "test_data = test_data.with_format(type=\"torch\", columns=[\"ids\", \"label\", \"length\"])" ] }, { "cell_type": "code", "execution_count": null, "id": "3a3881e6-3d16-4995-b977-5e6900454070", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#FAFF00", "id": "24f8e6d3-56bf-4f50-8561-2408cc91ce4d", "isComponent": true, "name": "Set dataloader", "parents": [ { "id": "77e482c4-435f-40e3-832f-7b8487dec28e", "name": "Preprocessing data" } ] }, "tags": [] }, "outputs": [], "source": [ "def collate(batch, pad_index):\n", " batch_ids = [i[\"ids\"] for i in batch]\n", " batch_ids = nn.utils.rnn.pad_sequence(batch_ids, padding_value=pad_index, batch_first=True)\n", " batch_length = [i[\"length\"] for i in batch]\n", " batch_length = torch.stack(batch_length)\n", " batch_label = [i[\"label\"] for i in batch]\n", " batch_label = torch.stack(batch_label)\n", " batch = {\"ids\": batch_ids, \"length\": batch_length, \"label\": batch_label}\n", " return batch\n", "\n", "\n", "collate = functools.partial(collate, pad_index=pad_index)\n", "\n", "train_dataloader = torch.utils.data.DataLoader(train_data, batch_size=batch_size, collate_fn=collate, shuffle=True)\n", "\n", "valid_dataloader = torch.utils.data.DataLoader(valid_data, batch_size=batch_size, collate_fn=collate)\n", "test_dataloader = torch.utils.data.DataLoader(test_data, batch_size=batch_size, collate_fn=collate)" ] }, { "cell_type": "markdown", "id": "279ad833-6a00-442a-b8a8-2b48cdb93cee", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "3c3814f9-c014-4d53-86ce-d73f3a8cff5c", "isComponent": false, "name": "", "parents": [] } }, "source": ["### 3. Modeling"] }, { "cell_type": "code", "execution_count": null, "id": "840f8f40-e433-40c5-af35-67747d50fe0b", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#6C00FF", "id": "c9662ed2-0038-442e-86b9-42a8df99ae79", "isComponent": true, "name": "Define model", "parents": [ { "id": "24f8e6d3-56bf-4f50-8561-2408cc91ce4d", "name": "Set dataloader" } ] }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": ["The model has 1,809,398 trainable parameters\n"] } ], "source": [ "class RNN(nn.Module):\n", " def __init__(self, input_dim, embedding_dim, hidden_dim, output_dim, pad_index):\n", "\n", " super().__init__()\n", "\n", " self.embedding = nn.Embedding(input_dim, embedding_dim)\n", "\n", " self.rnn = nn.RNN(embedding_dim, hidden_dim)\n", "\n", " self.fc = nn.Linear(hidden_dim, output_dim)\n", "\n", " def forward(self, ids, length):\n", "\n", " # text = [sent len, batch size]\n", "\n", " embedded = self.embedding(ids)\n", "\n", " # embedded = [sent len, batch size, emb dim]\n", "\n", " packed_embedded = nn.utils.rnn.pack_padded_sequence(embedded, length, batch_first=True, enforce_sorted=False)\n", "\n", " packed_output, hidden = self.rnn(packed_embedded)\n", "\n", " output, output_length = nn.utils.rnn.pad_packed_sequence(packed_output)\n", "\n", " # output = [sent len, batch size, hid dim]\n", " # hidden = [1, batch size, hid dim]\n", "\n", " # assert torch.equal(output[-1,:,:], hidden.squeeze(0))\n", "\n", " return self.fc(hidden.squeeze(0))\n", "\n", "\n", "vocab_size = len(vocab)\n", "output_dim = 2\n", "\n", "model = RNN(vocab_size, embedding_dim, hidden_dim, output_dim, pad_index)\n", "\n", "\n", "def count_parameters(model):\n", " return sum(p.numel() for p in model.parameters() if p.requires_grad)\n", "\n", "\n", "print(f\"The model has {count_parameters(model):,} trainable parameters\")" ] }, { "cell_type": "code", "execution_count": null, "id": "5cdb0b6c-48f9-4b67-8d9e-90823628614f", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#6C00FF", "id": "d4b1ae9a-a2cb-4ff1-a56b-61070b61e7b5", "isComponent": true, "name": "Initialize weights", "parents": [ { "id": "c9662ed2-0038-442e-86b9-42a8df99ae79", "name": "Define model" } ] }, "tags": [] }, "outputs": [], "source": [ "def initialize_weights(m):\n", " if isinstance(m, nn.Linear):\n", " nn.init.xavier_normal_(m.weight)\n", " nn.init.zeros_(m.bias)\n", " elif isinstance(m, nn.LSTM):\n", " for name, param in m.named_parameters():\n", " if \"bias\" in name:\n", " nn.init.zeros_(param)\n", " elif \"weight\" in name:\n", " nn.init.orthogonal_(param)\n", "\n", "\n", "model.apply(initialize_weights)" ] }, { "cell_type": "code", "execution_count": null, "id": "e95f1ea6-3eef-443a-a606-ed31fd58d92f", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#6C00FF", "id": "7ac2a4c4-5258-40b0-b942-9ed914507e23", "isComponent": true, "name": "Define training functions", "parents": [ { "id": "8d792aa6-cac6-4ba6-a4a4-1a5566cfbb81", "name": "Import packages" } ] }, "tags": [] }, "outputs": [], "source": [ "def train(dataloader, model, criterion, optimizer, device):\n", "\n", " model.train()\n", " epoch_losses = []\n", " epoch_accs = []\n", "\n", " for batch in tqdm.tqdm(dataloader, desc=\"training...\", file=sys.stdout):\n", " ids = batch[\"ids\"].to(device)\n", " length = batch[\"length\"]\n", " label = batch[\"label\"].to(device)\n", " prediction = model(ids, length)\n", " loss = criterion(prediction, label)\n", " accuracy = get_accuracy(prediction, label)\n", " optimizer.zero_grad()\n", " loss.backward()\n", " optimizer.step()\n", " epoch_losses.append(loss.item())\n", " epoch_accs.append(accuracy.item())\n", "\n", " return epoch_losses, epoch_accs\n", "\n", "\n", "def evaluate(dataloader, model, criterion, device):\n", "\n", " model.eval()\n", " epoch_losses = []\n", " epoch_accs = []\n", "\n", " with torch.no_grad():\n", " for batch in tqdm.tqdm(dataloader, desc=\"evaluating...\", file=sys.stdout):\n", " ids = batch[\"ids\"].to(device)\n", " length = batch[\"length\"]\n", " label = batch[\"label\"].to(device)\n", " prediction = model(ids, length)\n", " loss = criterion(prediction, label)\n", " accuracy = get_accuracy(prediction, label)\n", " epoch_losses.append(loss.item())\n", " epoch_accs.append(accuracy.item())\n", "\n", " return epoch_losses, epoch_accs\n", "\n", "\n", "def get_accuracy(prediction, label):\n", " batch_size, _ = prediction.shape\n", " predicted_classes = prediction.argmax(dim=-1)\n", " correct_predictions = predicted_classes.eq(label).sum()\n", " accuracy = correct_predictions / batch_size\n", " return accuracy" ] }, { "cell_type": "code", "execution_count": null, "id": "d888856d-f8d1-4c0f-9817-de4a81f38c48", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#6C00FF", "id": "49b7e440-bc55-4a07-8e56-14ac7a5c3f9a", "isComponent": true, "name": "Train", "parents": [ { "id": "d4b1ae9a-a2cb-4ff1-a56b-61070b61e7b5", "name": "Initialize weights" }, { "id": "7ac2a4c4-5258-40b0-b942-9ed914507e23", "name": "Define training functions" } ] }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "training...: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [01:58<00:00, 23.71s/it]\n", "evaluating...: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:01<00:00, 1.60it/s]\n", "epoch: 1\n", "train_loss: 0.788, train_acc: 0.521\n", "valid_loss: 0.749, valid_acc: 0.545\n", "training...: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [01:55<00:00, 23.05s/it]\n", "evaluating...: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:01<00:00, 1.60it/s]\n", "epoch: 2\n", "train_loss: 0.682, train_acc: 0.592\n", "valid_loss: 0.736, valid_acc: 0.534\n", "training...: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [01:55<00:00, 23.04s/it]\n", "evaluating...: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:01<00:00, 1.59it/s]\n", "epoch: 3\n", "train_loss: 0.641, train_acc: 0.637\n", "valid_loss: 0.708, valid_acc: 0.553\n", "training...: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [01:55<00:00, 23.19s/it]\n", "evaluating...: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:01<00:00, 1.48it/s]\n", "epoch: 4\n", "train_loss: 0.604, train_acc: 0.671\n", "valid_loss: 0.707, valid_acc: 0.586\n", "training...: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [01:55<00:00, 23.16s/it]\n", "evaluating...: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:01<00:00, 1.59it/s]\n", "epoch: 5\n", "train_loss: 0.567, train_acc: 0.706\n", "valid_loss: 0.717, valid_acc: 0.576\n" ] } ], "source": [ "optimizer = optim.Adam(model.parameters(), lr=lr)\n", "criterion = nn.CrossEntropyLoss()\n", "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", "model = model.to(device)\n", "\n", "best_valid_loss = float(\"inf\")\n", "\n", "train_losses = []\n", "train_accs = []\n", "valid_losses = []\n", "valid_accs = []\n", "\n", "for epoch in range(n_epochs):\n", "\n", " train_loss, train_acc = train(train_dataloader, model, criterion, optimizer, device)\n", " valid_loss, valid_acc = evaluate(valid_dataloader, model, criterion, device)\n", "\n", " train_losses.extend(train_loss)\n", " train_accs.extend(train_acc)\n", " valid_losses.extend(valid_loss)\n", " valid_accs.extend(valid_acc)\n", "\n", " epoch_train_loss = np.mean(train_loss)\n", " epoch_train_acc = np.mean(train_acc)\n", " epoch_valid_loss = np.mean(valid_loss)\n", " epoch_valid_acc = np.mean(valid_acc)\n", "\n", " if epoch_valid_loss < best_valid_loss:\n", " best_valid_loss = epoch_valid_loss\n", " torch.save(model.state_dict(), \"rnn.pt\")\n", "\n", " print(f\"epoch: {epoch+1}\")\n", " print(f\"train_loss: {epoch_train_loss:.3f}, train_acc: {epoch_train_acc:.3f}\")\n", " print(f\"valid_loss: {epoch_valid_loss:.3f}, valid_acc: {epoch_valid_acc:.3f}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "5dd7cecb-ed99-46eb-8c08-dcc8a9e92f0e", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "#6C00FF", "id": "6459e1c5-6660-4663-9d00-d39212d4670a", "isComponent": true, "name": "Plot loss and accuracy", "parents": [ { "id": "49b7e440-bc55-4a07-8e56-14ac7a5c3f9a", "name": "Train" } ] }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmkAAAFzCAYAAABl1J6yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABb9UlEQVR4nO3dd1zVZf/H8dfFFgVkOHEAThRx4d5l5khtZ3vv8q77bt3teWf7btjObI+7YVqWWbkzFfdWFBScIIIiIuv6/XHIH5mDcQ7nAO/n4+FD+J7v9/p+4Ii+vb7XMNZaRERERMSzeLm7ABERERH5O4U0EREREQ+kkCYiIiLigRTSRERERDyQQpqIiIiIB1JIExEREfFAPu4uwFkiIiJsVFSUu8sQEREROaWlS5dmWGsbnOycGhPSoqKiSExMdHcZIiIiIqdkjNl2qnP0uFNERETEAymkiYiIiHgghTQRERERD1RjxqSJiIiIcxUUFJCWlkZeXp67S6m2AgICaNasGb6+vuW+ViFNREREjistLY2goCCioqIwxri7nGrHWsu+fftIS0sjOjq63NfrcaeIiIgcV15eHuHh4QpoFWSMITw8vMI9kQppIiIickIKaJVTme+fQpqIiIh4pKysLF5//fUKXTty5EiysrLKfP6jjz7K888/X6F7uYpCmoiIiHikk4W0wsLCk147ffp06tev74Kqqo5CmoiIiHik++67jy1bttClSxfuvvtuZs+ezYABAxgzZgwdOnQA4Oyzz6Z79+507NiRt99+++i1UVFRZGRkkJKSQmxsLNdffz0dO3Zk2LBhHD58+KT3XbFiBb179yY+Pp5zzjmH/fv3A/DKK6/QoUMH4uPjGTduHABz5syhS5cudOnSha5du3Lw4EGnff2a3SkiIiKn9Ni0tazbecCpbXZoGswjozue8PUJEyawZs0aVqxYAcDs2bNZtmwZa9asOTpbctKkSYSFhXH48GF69OjBeeedR3h4+F/a2bx5M5999hnvvPMOF154IV9//TWXXXbZCe97xRVX8OqrrzJo0CAefvhhHnvsMf773/8yYcIEkpOT8ff3P/oo9fnnn2fixIn069ePnJwcAgICKvdNKUU9aW6250Ae+3KOuLsMERGRaqFnz55/Wc7ilVdeoXPnzvTu3ZvU1FQ2b978t2uio6Pp0qULAN27dyclJeWE7WdnZ5OVlcWgQYMAuPLKK5k7dy4A8fHxXHrppXz88cf4+Dj6ufr168c///lPXnnlFbKyso4edwb1pLlRfmEx577+O20a1WPy1T3dXY6IiMgJnazHqyrVrVv36MezZ8/ml19+YeHChQQGBjJ48ODjLnfh7+9/9GNvb+9TPu48kR9++IG5c+cybdo0nnrqKVavXs19993HqFGjmD59Ov369WPGjBm0b9++Qu0fSz1pbvTNsjR2ZB1mcXImBUXF7i5HRETEowQFBZ10jFd2djahoaEEBgayYcMG/vjjj0rfMyQkhNDQUObNmwfARx99xKBBgyguLiY1NZUhQ4bwzDPPkJ2dTU5ODlu2bKFTp07ce++99OjRgw0bNlS6hj+pJ81NCouKeX32Fvx9vMjNL2LtzgN0aV7f3WWJiIh4jPDwcPr160dcXBwjRoxg1KhRf3l9+PDhvPnmm8TGxtKuXTt69+7tlPt+8MEH3HTTTeTm5hITE8P7779PUVERl112GdnZ2VhrGT9+PPXr1+ehhx5i1qxZeHl50bFjR0aMGOGUGgCMtdZpjblTQkKCTUxMdHcZZfbt8jTu/GIlT5wdx0NT1vDAyFiuHxjj7rJERESOWr9+PbGxse4uo9o73vfRGLPUWptwsuv0uNMNiostr/2WRLtGQVzaswVR4YEsTsl0d1kiIiLiQRTS3OCntbvZkn6I205rjZeXoUdUGEtSMikurhm9miIiIlJ5CmlVzFrLq78lERNRl5GdmgDQMzqMrNwCktJz3FydiIiIeAqFtCr26/q9rN91gFuGtMbby7Hpas/oMAAWJeuRp4iIiDgopFUhay2vzkqiWWgdxnZpevR4i7BAGgX7s0QhTUREREoopFWh+UkZrEzN4ubBrfD1/v9vvTGOcWmLkzOpKbNtRUREpHJcGtKMMcONMRuNMUnGmPuO83oLY8wsY8xyY8wqY8zIkuNRxpjDxpgVJb/edGWdVeXV35JoHBzA+d2b/e21ntFh7D6QR9r+iq2CLCIiIlCvXj0Adu7cyfnnn3/ccwYPHszxlu060XF3cdlitsYYb2AicAaQBiwxxky11q4rddqDwJfW2jeMMR2A6UBUyWtbrLVdXFVfVVu0dR+LkzN5ZHQH/H28//b6n+PSFidn0jwssKrLExERqVGaNm3KV1995e4yKsWVPWk9gSRr7VZrbT7wOTD2mHMsEFzycQiw04X1uNVrs5KIqOfHuB4tjvt624ZBhNTxZbHGpYmIiABw3333MXHixKOfP/roozz//PPk5ORw+umn061bNzp16sR33333t2tTUlKIi4sD4PDhw4wbN47Y2FjOOeecMu3d+dlnn9GpUyfi4uK49957ASgqKuKqq64iLi6OTp068dJLLwGOTd47dOhAfHw848aNc8aXDrh2W6hIILXU52lAr2POeRT42RhzO1AXGFrqtWhjzHLgAPCgtXbesTcwxtwA3ADQosXxw48nWJGaxbzNGdw3oj11/P7eiwaUrJcWyhItaisiIp7ox/tg92rnttm4E4yYcMKXL7roIu644w5uvfVWAL788ktmzJhBQEAA3377LcHBwWRkZNC7d2/GjBmDMea47bzxxhsEBgayfv16Vq1aRbdu3U5a1s6dO7n33ntZunQpoaGhDBs2jClTptC8eXN27NjBmjVrAMjKygJgwoQJJCcn4+/vf/SYM7h74sDFwGRrbTNgJPCRMcYL2AW0sNZ2Bf4JfGqMCT72Ymvt29baBGttQoMGDaq08PJ47bckQur4clnvlic9r0dUGFszDrH3YF4VVSYiIuK5unbtyt69e9m5cycrV64kNDSU5s2bY63l/vvvJz4+nqFDh7Jjxw727Nlzwnbmzp3LZZddBkB8fDzx8fEnve+SJUsYPHgwDRo0wMfHh0svvZS5c+cSExPD1q1buf322/npp58IDg4+2uall17Kxx9/jI+P8/q/XNmTtgNoXurzZiXHSrsWGA5grV1ojAkAIqy1e4EjJceXGmO2AG0BzxnNV0brdh7gl/V7uHNoW+r5n/zb/ee4tMSU/UcXuhUREfEIJ+nxcqULLriAr776it27d3PRRRcB8Mknn5Cens7SpUvx9fUlKiqKvDzXd3CEhoaycuVKZsyYwZtvvsmXX37JpEmT+OGHH5g7dy7Tpk3jqaeeYvXq1U4Ja67sSVsCtDHGRBtj/IBxwNRjztkOnA5gjIkFAoB0Y0yDkokHGGNigDbAVhfW6jITZyVRz9+Hq/pGnfLcuMgQ6vh6a1yaiIhIiYsuuojPP/+cr776igsuuACA7OxsGjZsiK+vL7NmzWLbtm0nbWPgwIF8+umnAKxZs4ZVq1ad9PyePXsyZ84cMjIyKCoq4rPPPmPQoEFkZGRQXFzMeeedx5NPPsmyZcsoLi4mNTWVIUOG8Mwzz5CdnU1OjnN2EHJZT5q1ttAYcxswA/AGJllr1xpjHgcSrbVTgX8B7xhj7sQxieAqa601xgwEHjfGFADFwE3W2mqXXJL2HmT6ml3cMrgVIYG+pzzf19uLri3qK6SJiIiU6NixIwcPHiQyMpImTRxPmS699FJGjx5Np06dSEhIoH379idt4+abb+bqq68mNjaW2NhYunfvftLzmzRpwoQJExgyZAjWWkaNGsXYsWNZuXIlV199NcXFxQA8/fTTFBUVcdlll5GdnY21lvHjx1O/fn2nfO2mpiyempCQYD1pbROAf36xgh/X7Gb+vUMIr+dfpmv++8smXv51MysfGUZwwKmDnYiIiKusX7+e2NhYd5dR7R3v+2iMWWqtTTjZde6eOFBjbdt3iO9W7uTSXi3KHNAAekaFYS0sTdnvwupERETE0ymkucibc7bg7WW4fmBMua7r2iIUHy/DYi3FISIiUqsppLnAzqzDfLU0jYsSmtMoOKBc19bx86ZTsxCNSxMREanlFNJc4O25W7EWbhxUvl60P/WMCmNVWhZ5BUVOrkxERKR8asrYdXepzPdPIc3J9h7M47PF2zmvWzOahVZsD86e0WEUFFlWpGY5tzgREZFyCAgIYN++fQpqFWStZd++fQQElO+p2p9cuZhtrfTuvGQKioq5eXCrCreR0DIMYxybrfeOCXdidSIiImXXrFkz0tLSSE9Pd3cp1VZAQADNmjWr0LUKaU6UeSifj//YxpjOTYmKqFvhdkICfWnXKEj7eIqIiFv5+voSHR3t7jJqLT3udKL3FySTm1/ErUNaV7qtntFhLN22n8KiYidUJiIiItWNQpqTZB8uYPKCFEbENaZNo6BKt9czOozc/CLW7jzghOpERESkulFIc5KPFqZw8EihU3rRwDHDE9BSHCIiIrWUQpoTHDpSyHvzkzm9fUPiIkOc0mbD4ABahgdqUVsREZFaSiHNCT5dtJ39uQXceppzetH+1DMqjMSUTIqLNfVZRESktlFIq6S8giLemruV/q0j6NYi1Klt94gOY39uAUnpOU5tV0RERDyfQlolfbEklYycI9zm5F40gF7RGpcmIiJSWymkVUJ+YTFvztlCj6jQo4HKmVqEBdIwyF8hTUREpBZSSKuEb5alsSs7j9tOa4MxxuntG2PoER3G4uRMbckhIiJSyyikVVBhUTGvz95C52YhDGwT4bL79IoOY/eBPNL2H3bZPURERMTzKKRV0LRVO9memeuyXrQ/9dB6aSIiIrWSQloFFBdbXvstifaNgzi9fUOX3qtdoyCCA3y0j6eIiEgto5BWAT+t3c2W9EPcdlprvLxc14sG4OVl6BEVpp40ERGRWkYhrZystbz6WxIxDeoyIq5JldyzZ3QYWzMOkX7wSJXcT0RERNxPIa2cfl2/l/W7DnDr4NZ4u7gX7U89Spb30CNPERGR2kMhrRystbw6K4nmYXUY26Vpld03rmkIAb5eeuQpIiJSiyiklcP8pAxWpmZxy+DW+HhX3bfOz8eLbi1C1ZMmIiJSiyiklcOrvyXRJCSAc7tFVvm9e0SFsW7XAQ7kFVT5vUVERKTqKaSV0aEjhfh5e3HjwBj8fbyr/P69osOwFpZu21/l9xYREZGq5+PuAqqLuv4+fHxdL7dtz9S1RSg+XobFyZkMaefatdlERETE/dSTVk6u3F3gZOr4eRMXGcISTR4QERGpFRTSqpFe0WGsTMsir6DI3aWIiIiIiymkVSM9osIoKLKsSM1ydykiIiLiYgpp1UiPqDCMQY88RUREagGFtGokJNCXdo2CWKz10kRERGo8hbRqpkdUGEu37aewqNjdpYiIiIgLKaRVMz2jw8jNL2LtzgPuLkVERERcSCGtmumpzdZFRERqBYW0aqZRcAAtwwNZpMkDIiIiNZpCWjXUIyqMxJRMiovds/uBiIiIuJ5CWjXUMzqM/bkFbEnPcXcpIiIi4iIuDWnGmOHGmI3GmCRjzH3Heb2FMWaWMWa5MWaVMWZkqdf+XXLdRmPMma6ss7rpGeUYl6ZHniIiIjWXy0KaMcYbmAiMADoAFxtjOhxz2oPAl9barsA44PWSazuUfN4RGA68XtKeAC3DA2kQ5K/JAyIiIjWYK3vSegJJ1tqt1tp84HNg7DHnWCC45OMQYGfJx2OBz621R6y1yUBSSXuCY5P3ntFhLE7OxFqNSxMREamJXBnSIoHUUp+nlRwr7VHgMmNMGjAduL0c12KMucEYk2iMSUxPT3dW3dVCz6gwdmXnkbb/sLtLERERERdw98SBi4HJ1tpmwEjgI2NMmWuy1r5trU2w1iY0aNDAZUV6oj/XS1uscWkiIiI1kitD2g6geanPm5UcK+1a4EsAa+1CIACIKOO1tVq7RkEEB/hoXJqIiEgN5cqQtgRoY4yJNsb44ZgIMPWYc7YDpwMYY2JxhLT0kvPGGWP8jTHRQBtgsQtrrXa8vAwJUWHabF1ERKSGcllIs9YWArcBM4D1OGZxrjXGPG6MGVNy2r+A640xK4HPgKusw1ocPWzrgJ+AW621Ra6qtbrqGR3G1vRDpB884u5SRERExMl8XNm4tXY6jgkBpY89XOrjdUC/E1z7FPCUK+ur7nqUrJeWmJLJiE5N3FyNiIiIOJO7Jw5IJXSKDCHA10uL2oqIiNRACmnVmJ+PF12bh2rygIiISA2kkFbN9YwOY/2uAxzIK3B3KSIiIuJECmnVXM/oMIotLN22392liIiIiBMppFVzXVvUx8fLsETj0kRERGoUhbRqLtDPh7jIEO08ICIiUsMopNUAPaPDWJWWTV6BlpITERGpKRTSaoCeUWHkFxWzIjXL3aWIiIiIkyik1QAJUaEAGpcmIiJSgyik1QD1A/1o1yhI+3iKiIjUIAppNUTP6DCWbdtPYVGxu0sRERERJ1BIqyF6RIdxKL+IdbsOuLsUERERcQKFtBqiZ8lm61qKQ0REpGZQSKshGocE0CIsUCFNRESkhlBIq0F6RIWxJCWT4mLr7lJERESkkhTSapBe0WHszy1gS3qOu0sRERGRSlJIc7f0TZC13SlN9YguGZempThERESqPYU0dyo8ApNHwXtnQl52pZuLCg+kQZC/xqWJiIjUAApp7rT2Wzi0Fw7uhJmPVLo5Yww9o8JYnJyJtRqXJiIiUp0ppLmLtfDHGxDRDvrcBkvfh+R5lW62Z3QYu7LzSNt/2AlFioiIiLsopLlL6mLYtQJ63QhDHoCwGJh6O+TnVqrZHiXrpS3RuDQREZFqTSHNXRa9Cf4h0Hkc+AXCmFdhfzLMeqpSzbZrHERQgI/GpYmIiFRzCmnukL0D1n0H3S4Hv7qOY1H9IeEa+ON1SEuscNPeXo5xab9t2MuhI4VOKlhERESqmkKaOyS+B1joecNfjw99DIKawne3OmZ+VtDNg1ux9+ARXvl1c+XqFBEREbdRSKtqBYch8X1oNxJCW/71tYBgOOslSN8A816o8C0SosK4MKEZ781PZuPug5UsWERERNxBIa2qrfkaDmc6JgwcT9thEH+RI6TtXlPh29w3IpZ6AT48NGWNluMQERGphhTSqpK1jgkDDTtA1IATnzd8AtQJdTz2LKrYuLKwun7cO7w9i1My+WbZjgoWLCIiIu6ikFaVtv0Ou1dDr5vAmBOfFxgGI59zLNGx8LUK3+6ihOZ0bVGf/0xfT3ZuQYXbERERkaqnkFaVFr3p6CHrdMGpz+1wNrQ/C2Y/DRlJFbqdl5fhybPj2J+bz3M/b6hQGyIiIuIeCmlVJSsVNnwP3a50rIt2KsbAqBfAx9+xyG1xcYVu27FpCFf2jeKTRdtZmZpVoTZERESk6imkVZUl7wIGelxX9muCGsOZ/4Htv5cs21Ex/zyjLQ3q+fPglDUUFWsSgYiISHWgkFYV8nNh6WSIPQvqNy/ftV0uhZgh8MujkLW9QrcPCvDlwbM6sHpHNp8s2lahNkRERKRqKaRVhdVfQl6WY8JAeRkDo192zAz9/k7H7xUwOr4J/VqH89yMjew9mFehNkRERKTqKKS5mrWw6C1o3Ala9KlYG6EtYegjkPQLrPy8Qk0YY3hibBxHCop5erpnTCJYuGUft3yyVKFRRETkOBTSXC15Luxdd+plN06lx/XQvDf8dB8c3FOhJmIa1OPGQTF8u3wHC7fsq3gtTrAqLYvrPljC9NW7uWrSEg7kaYkQERGR0hTSXG3RWxAYDnHnV64dLy8Y+5pjW6npd1W4mVuHtKZ5WB0e+m4N+YUVmzFaWckZh7j6/SWE1vXj+Qs6s3nvQa7/IJG8giK31CMiIuKJFNJcaX8KbJwO3a8G34DKtxfRBgbfC+unwrrvKtREgK83j47uSNLeHN6bn1z5mspp74E8Ln9vERb48JqenN+9Gc9f0JnFKZnc/tlyCovcExxFREQ8jUKaKy1+B4wX9LjWeW32HQ+N4+GHuyA3s0JNnB7biGEdGvHKr5tJ25/rvNpOIftwAVdMWkzmoXwmX92DmAb1ABjbJZJHR3dk5ro93P/tau01KiIigotDmjFmuDFmozEmyRhz33Fef8kYs6Lk1yZjTFap14pKvTbVlXW6xJEcWPYRdBgLwU2d1663L4yd6NikfcYDFW7mkTEdAXhs2jpnVXZSeQVFXP9hIlvSc3jr8u7EN6v/l9ev7BvF+NPb8GViGs/8tLFKahIREfFkLgtpxhhvYCIwAugAXGyM6VD6HGvtndbaLtbaLsCrwDelXj7852vW2jGuqtNlVn0OR7Kh983Ob7tJPPS7A1Z+Cpt/qVATkfXr8I+hbZi5bg+/rKvYRISyKiq2jP9sOUtSMnnhwi4MaNPguOfdObQNl/ZqwZtztvDO3K0urUlERMTTubInrSeQZK3daq3NBz4Hxp7k/IuBz1xYT9X5c9mNpl2hWQ/X3GPg3RDRFr6/A44crFAT1/SLpk3Dejw6bS2H810zaN9ay4NTVvPzuj08clYHxnQ+ca+iMYbHx8YxKr4JT01fz9dL01xSk4iISHXgypAWCaSW+jyt5NjfGGNaAtHAb6UOBxhjEo0xfxhjzj7BdTeUnJOYnp7upLKdYOssyNhU+WU3TsY3wPHYMzsNfnmsQk34+XjxxNlxpO0/zMRZFdvE/VRenLmJzxanctuQ1lzVL/qU53t7GV68sDP9W0dwz9erXN7LJyIi4qk8ZeLAOOAra23p7pyW1toE4BLgv8aYVsdeZK1921qbYK1NaNDg+I/Q3OKPN6FuA+h4jmvv07ynIwgueQe2/V6hJnrHhHNu10jemruFLek5Ti1v8oJkXv0tiXE9mvOvYW3LfJ2/jzdvXt6duKbB3PrpMpakVGyChIiISHXmypC2Ayi9UWWzkmPHM45jHnVaa3eU/L4VmA10dX6JLrBvC2yeAQnXgI+/6+932oNQvwV8d5tjDbUK+PfIWAJ8vXn4uzVOm1k5beVOHvt+HcM6NOLJs+Mw5exRrOfvw6SrehAZWodrJi9h/a4DTqlLRESkunBlSFsCtDHGRBtj/HAEsb/N0jTGtAdCgYWljoUaY/xLPo4A+gFVMw2xsha/A16+jpBWFfzrwehXIHMLzH66Qk00CPLnnjPbsSBpH1NX7qx0SfM3Z/DPL1fQo2UYr1zcFR/viv0xC6/nz0fX9qKunw9XTFpMambVLRciIiLibi4LadbaQuA2YAawHvjSWrvWGPO4Mab0bM1xwOf2r104sUCiMWYlMAuYYK31/JB25CAs/9jxmDOocdXdt9UQ6Ho5/P4q7FhWoSYu6dWS+GYhPPnD+kpt0bQqLYsbP0qkVYN6vHNlAgG+3hVuCxyzUD+6ticFRcVc9t4i0g8eqVR7IiIi1YWpKQuHJiQk2MTERPcWsegt+PEeuO43aNa9au99OAsm9nJsQXXDbPDxK3cTq9KyGDtxAVf2ieLRknXUyiM54xDnv/E7dfy8+frmvjQKdsIuCyWWbd/Ppe8sIjqiLp/f2JvgAF+ntS0iIlLVjDFLS8ben5CnTByo/oqLHSEtMqHqAxpAnfpw1ouwdy0s+G+FmohvVp/LerXkw4UprNmRXa5r9xyz3ZMzAxpAtxahvHFZNzbt0T6fIiJSOyikOcuWXx3jwlyxeG1ZtR8FHc+FOc/C3vUVauKuYe0Iq+vHg1PWUFxctl7W7MMFXHmc7Z6cbXC7hrxwYWcWJWcyXvt8iohIDaeQ5iyL3oR6jSHWzZsjjHwO/IPgkwthyXuQX77B9iGBvtw/MpYVqVl8kZh6yvNPtd2Tszn2+ezAz+v28MC3zpuNKiIi4mkU0pwhfRMk/eLYSL0CY8Gcqm4EXPQxBIbBD/+Elzo4Frs9UPZZm+d0jaRXdBgTftzAvpwTD9QvLCou03ZPznZVv2jGn9aaLxJTeXaG9vkUEZGaSSHNGRa/Dd5+0P0qd1fiENXPMXng6h+hZT+Y/xL8txN8fT3sXH7Ky40xPHl2HIeOFPLMTxuOe45ju6c1ZdruyRXuPKMtl/ZqwRuzt/DuPO3zKSIiNY9CWmXlZcOKTyHufKjX0N3V/D9joGVfGPcJjF8OPa6HjdPh7cEwaQSsnwbFJx5836ZRENcNiOHLxDQSj7Pi/4szN/H5krJv9+Rsf+7zObJTY578Qft8iohIzaOQVlnLP4GCQ9DrBndXcmJh0TBiAvxzHQx7yrHf5xeXwavd4I83TrhB+/jTW9M0JIAHvl1DQalB+hXd7snZvL0ML13UhX6tw7nn61X8ul77fIqISM2hkFYZxUWw+C1o3huaVoNdqwJCoO9tjp61Cz6Aeo3gp/vgxQ4w4wHYv+0vpwf6+fDImI5s3HOQD35PASq/3ZOz+ft489blCXRsGswtn2ifTxERqTkU0ipj88+wPwV63ejuSsrH2wc6ng3X/uxYeLfNGY4etVe6wJdXwPZFUDJrcliHRpzWviEvzdzE/xJTnbLdk7PV8/fh/ZJ9Pq+dvIQNu7XPp4iIVH/acaAyPhwLGZvhHyvBu5qvgJ+d5pgAsXSyY5xdZHfofQt0GMv2rALOeGkORwqLad84iC9u7ENIHc/7etP253L+Gwsptpbvx/enYZBzF9QVERFxFu044Ep7N8DW2Y5lN6p7QAMIaQZnPA53roORz8Ph/fD1tfByZ1qsf5vHhkUS3yyED67p6ZEBDaBZaCCTr+lBRs4R3puX7O5yREREKkUhraIWvQne/tDtKndX4lz+9aDn9XDbUrj4cwiLgV8eYdy84UxtN5NGQf7urvCk2jcOZlR8Uz5ZtJ3swxXfKF5ERMTdFNIq4vB+WPk5xF8AdcPdXY1reHlBuxFw1fdw4zxoN9yxJ2gF9wWtSjcOjCHnSCGfLNp26pPl1LLTIFM9kyIiVU0hrSKWfQSFh6HXTe6upGo0iYfz3oOO58Cvj8PWOe6u6KTiIkMY0CaCSfNTtBF7ZR3KgA/Phk8vPOm6eiIi4nwKaeVVXASL34GW/aFxJ3dXU3WMgTGvQngb+OoayN7h7opO6uZBrcjIOcI3yzy7To+WdwA+PheyU2H0y+Dl7e6KRERqFYW08to4HbK3V79lN5zBP8ixL2hhHvzvSijMd3dFJ9SnVTidIkN4Z95WioprxgzmKlVwGD67GPashQs/dOxeISIiVUohrbwWvQUhzaHdSHdX4h4N2sLYiZC2BGbc7+5qTsgYw02DWpGccYif1+52dznVS1EB/O9q2LYAznkL2p7p7opERGolhbTy2L0GUuY5Zj96+7i7GvfpeDb0uQ2WvAOrvnR3NSc0PK4xUeGBvDlnCzVlPUCXKy6G726FTT/CqOeh0/nurkhEpNZSSCuPxW+BTx3oerm7K3G/oY9Ci74wdbzjkZgH8vYyXD8whpVp2Szcus/d5Xg+ax3bhK36Ak57CHpc5+6KRERqNYW0sso/BGu+gc4XQWCYu6txP29fuOB9CAh2bNael+3uio7rvG7NiKjnz5tztrq7FM83e4LjPyJ9boMB/3J3NSIitZ5CWln51YVbFsLAu91diecIagwXTHZszD7llqP7fXqSAF9vru4XxdxN6azd6ZlB0iP88QbMmQBdL4NhTzpm84qIiFsppJVH/RaO7ZPk/7XsC8OegA3fe+xCt5f1akldP2/enqvetONa8anjMWfsaDjrZQU0EREPoZAmldf7Fo9e6DYk0JdLerXg+1W7SM3MdXc5nmX99/DdbRAz2LFgcW2eECMi4mEU0qTyji5029pjF7q9tn8MXgbenafetKO2zoGvroamXeGiT8DHs/dlFRGpbRTSxDk8fKHbxiEBnN0lki8SU9mXc8Td5bjfjqXw+SWOYH3p/8C/nrsrEhGRYyikifM0aAdjX3MsdPvzA+6u5m9uHBRDXkExHyys5Ruv790AH58PgeFw2TearSwi4qEU0sS5Op4DvW+FxW9X/UK31sKar+GzS2Dd1L/NNm3dMIgzOjTiw4Up5OYXVm1tnmL/NvjoHMcSKldMgeAm7q5IREROQCFNnO+Mx6BFH5j2D9izrmruuXs1TB7lGBOXPAe+vBw+OR/2bfnLaTcNakVWbgGfL06tmrqOx1rY9DNMGu7YfmnrHMdK/66Wsxc+OhsKDsHl30JYjOvvKSIiFaaQJs7n7etYP80/yPUL3eZmwvf/hLcGwt71cNZLcM9WOPNp2L4IXu8Ds/7j2DAc6N4ylB5Robw3P5mCoioIRsfas9bRk/XpBXBgJ2z5DT4cA691h/n/hZx019z3cBZ8dC4c3A2XfgWNOrrmPiIi4jRlCmnGmH8YY4KNw3vGmGXGmGGuLk6qsaML3aa4ZqHbokJY/A680hWWToYe18P4ZZBwjWOWYp9b4LYljrW/5jwDr/d29F7h6E3bkXWY71ftdG5NJ3Nwj2MLrTf7w87lMPwZuC0R/rURzn0HgprAL4/Ai7Hw5ZWwdbbzetfyc+HTiyB9A4z7BJr3dE67IiLiUqYsG08bY1ZaazsbY84EbgQeAj6y1nZzdYFllZCQYBMTE91dhhxr4USYcT8MfQz63+GcNpPnwY/3wt61ED3QEXgadTjx+VvnwPS7IGMTtD+L4mH/YfgHKXgZw4//GIBx5eKtBYcd34P5Lzlmvva8EQbedfzB+ukbYdmHsOITOLwfQqOh+5XQ5VKo17Bi9y/Md8zi3PIrnP8+dDy7Ul+OiIg4hzFmqbU24aTnlDGkrbLWxhtjXgZmW2u/NcYst9Z2dVaxlaWQ5qGsdazFte47uHwKxAyqeFtZ2+Hnh2DdFAhpAWc+CbFjyrZCfmE+/DER5jwL1rKm9Y2cs6Ibb1/VhyHtKxiATqa42DGJ4ZdH4UAatD8Lzngcwlud+tqCPFg/zdFDuG0+ePlA+1HQ/SqIHgxeZRylUFwEX18Ha79xrGPX7YoKfzkiIuJczgxp7wORQDTQGfDGEda6O6NQZ1BI82BHDsI7pznGj904F0Iiy3d9wWFY8LKjNwoD/e+EfuPBt075a8lKdWyBtOF7tplIPgi9jYfH31L+dk5m+x+O3sMdS6FxPJz5H4geULG20jfBsg8cWzcdzoTQKOhW0rsW1OjE11kL398JS9+HM55wfL9ERMRjODOkeQFdgK3W2ixjTBjQzFq7yimVOoFCmodL3+gIag1j4arp4ON36musdfTA/fwQZG93LO9xxhNQv3nl69k8kwPf3Enw4VQyo88i7JznILhp5drMTHb0nK2b4hhjdvrDED+u7D1fJ1N45P9711LmOXrX2o109K7FDPn7PX55DOa/CP3/CUMfqfz9RUTEqZwZ0voBK6y1h4wxlwHdgJettR6zKqhCWjWw9lv431XQ8wYY+dzJz92z1jHuLGUeNOwII56peG/UCRw6lMMHz93J9eZbfH39YfC/odeNjtmp5ZGXDXOfh0VvOsJTv39A39vBr65T6z0qIwmWTXb0ruXug/otHY8yu17mmLCx4GWY+bBjEsWoF7VhuoiIB3LqmDQcjznjgcnAu8CF1tpKDDByLoW0auKn+x1jw859B+Iv/PvruZkw+2lY8p5jCY/THoTuV7ts4+8Xft7I1FkLmN52GnW3/eYIhKOeh5Z9T31xUaEjLM36j6PuLpc46q1sj1xZFR6BDd87eteS54LxdtSdMg/iznN8j728q6YWEREpF2eGtGXW2m7GmIeBHdba9/485qxiK0shrZooKoAPRsOulXDdr/8/K7O4yBE2fnsS8rIcvUBDHnD5lkUZOUfoN+E3zu7clGfiSsarZadC50scA/3rNfj7RdZC0i8w4wHI2AhRA2DYk9C0i0trPal9WxzfvxWfQrMecOGHZXukLCIibuHMkDYH+Am4BhgA7AVWWms7neK64cDLOCYavGutnXDM6y8BQ0o+DQQaWmvrl7x2JfBgyWtPWms/ONm9FNKqkYO7HYvP+tWDG2aVPNq8x7FrQMt+jkebjU/6R8upHpqyhi+WpDLv3iE0CihyPLr8/VXwC4TTHnIExj97pPashZ8fdCxCG9YKhj3hGBvmKY8U//x59pR6RETkuJwZ0hoDlwBLrLXzjDEtgMHW2g9Pco03sAk4A0gDlgAXW2uPu0+QMeZ2oKu19pqSiQmJQAJggaVAd2vt/hPdTyGtmtn2O0w+C4IjHZMCgps5Ak/Hc6o8YGzfl8vg52dx/YAY/j0y1nEwfZNjbbXkOdCkC5z+kGPg/rIPwT8YBt8HCdeqt0pERCqkLCGtTNPOrLW7gU+AEGPMWUDeyQJaiZ5AkrV2q7U2H/gcGHuS8y8GPiv5+ExgprU2sySYzQSGl6VWqSZa9oXhT0NuBgy8B25bDHHnuqUHqEV4IKPim/LJou1kHy5wHGzQFq74Ds6fBDl74OPzYPnH0OsmGL8cet+sgCYiIi5VptHYxpgLgeeA2YABXjXG3G2t/eokl0UCpXexTgN6naD9ljjWYPvtJNeWc3Et8Xi9bnRs5+SMJSoq6caBMUxbuZNPF23n5sElC84a4xiA32YYrJ3i2DQ+orVb6xQRkdqjrFPmHgB6WGv3AhhjGgC/ACcLaeUxDvjKWltUnouMMTcANwC0aNHCSaVIlfKAgAYQFxnCgDYRTFqQzNX9ogjwLTUr0j8Iul3uvuJERKRWKuu/kF5/BrQS+8pw7Q6g9KqjzUqOHc84/v9RZ5mvtda+ba1NsNYmNGhwnFl4IuVw06BWpB88wrfLT/THVEREpOqUNaT9ZIyZYYy5yhhzFfADMP0U1ywB2hhjoo0xfjiC2NRjTzLGtAdCgYWlDs8AhhljQo0xocCwkmMiLtO3VTidIkN4e+5WiopPPaFGRETElco6ceBu4G0ci9nGA29ba+89xTWFwG04wtV64Etr7VpjzOPGmDGlTh0HfG5LTTO11mYCT+AIekuAx0uOibiMMYabBrUiOeMQP6/d7e5yRESklivTEhzVgZbgEGcoKrac/sJsQur4MuXWfhitNyYiIi5Q6SU4jDEHjTEHjvProDHmgHPLFXE/by/D9QNjWJmWzcKt+9xdjoiI1GInDWnW2iBrbfBxfgVZa4OrqkiRqnRet2ZE1PPnrTlb3V2KiIjUYp6x/oGIBwnw9ebqflHM2ZTOup3qMBYREfdQSBM5jst6taSunzdvzd3i7lJERKSWUkgTOY6QQF8u6dWC71ftIjUz193liIhILaSQJnIC1/aPwcvAu/M0Nk1ERKqeQprICTQOCeDsLpF8kZjKvpwj7i6nTH5dv4eVqVnuLkNERJxAIU3kJG4cFENeQTEfLtzm7lJOaePug9zw0VIuf28Rafv1iFZEpLpTSBM5idYNgzijQyM+WJhCbn6hu8s5IWstD323hnr+PhRbuOPzFRQWFbu7LBERqQSFNJFTuGlQK7JyC3hnbrK7Szmhb5fvYHFyJveNaM9T58SRuG0/L/+62d1liYhIJSikiZxC95ahjO7clImzkti856C7y/mb7MMF/Gf6ejo3r89FCc0Z2yWSC7o347VZSfyelOHu8kREpIIU0kTK4JHRHajr7829X6+iqNiz9rt9aeYm9h3K58mxcXh5OfYafWxsR6Ij6nLHFyuqzaQHERH5K4U0kTKIqOfPI6M7smx7Fh8uTHF3OUet2ZHNhwtTuKxXSzo1Czl6PNDPh9cu7kbW4QL+9b+VFHtYsBQRkVNTSBMpo7FdmjKkXQOe/WmjRyxwW1zsmCwQGujHXcPa/e31Dk2DeXBULLM3pjNpgeeOpxMRkeNTSBMpI2MMT53TCS8D93+7Gmvd2zv1v6WpLN+exb9HxhIS6Hvccy7v3ZJhHRrxzE8bWJWWVbUFiohIpSikiZRD0/p1uG9kLPM2Z/DV0jS31ZGVm8+EHzfQIyqU87pFnvA8YwzPnh9Pg3r+3P7Zcg7mFVRhlSIiUhkKaSLldGnPFvSMCuOJ79ex92CeW2p4dsZGDuQV8vjYOIwxJz23fqAfL1/cldTMXB6cssbtPYAiIlI2Cmki5eTlZZhwXifyCot55Lu1VX7/lalZfLZ4O1f2iSK2SXCZrukRFcYdQ9vy3Yqdbu0BFBGRslNIE6mAmAb1uGNoG35cs5sfV++qsvsWFVsenLKGBvX8ufOMNuW69tYhrekdE8bD361lS3qOiyoUERFnUUgTqaDrB8TQsWkwD323luzcqhnr9eni7azekc0Do2IJCjj+ZIET8fYyvDyuK3X8vLnt0+XkFRS5qEoREXEGhTSRCvL19uKZ8+LZn5vPkz+sc/n99uUc4bmfNtAnJpwxnZtWqI1GwQE8f0E863cdYMKPG5xcoYiIOJNCmkglxEWGcOPAGP63NI15m9Ndeq8JP24gN7+Ix8d2POVkgZM5rX0jru0fzeTfU/h57W4nVihltXTbfgqLit1dhoh4OIU0kUoaf3obYiLq8u9vVnPoSKFL7pGYksn/lqZx7YBo2jQKqnR79wxvR1xkMHd/tYqdWYedUKGU1dJtmZz3xu+8OHOTu0sREQ+nkCZSSQG+3jxzfjxp+w/z/M8bnd5+YVExD05ZQ5OQAMafVr7JAifi7+PNqxd3o7ComDs+X6FenSr03YqdALw9dysbdh9wczUi4skU0kScoEdUGFf0acnk31NYum2/U9v+cOE2Nuw+yMNndaCuv4/T2o2OqMuT58SxOCWTV35Lclq7cmKFRcVMX72LAW0iCK7jy7+/Wa19VUXkhBTSRJzknuHtaRIcwL1fr+JIoXNmTu49kMdLMzcxsG0Dhsc1dkqbpZ3TtRnndWvGa79tZuGWfU5vX/5q4dZ9ZOTkc2mvljw4Kpbl27P4ZNE2d5clIh5KIU3ESer5+/DUuZ1I2pvDRCf1TP1n+nqOFBbz2JjKTRY4mcfHdiQqvC53fLGczEP5LrmHOExdsZMgfx8Gt2vAOV0j6dc6nGd/2sjubPfsXCEink0hTcSJhrRryLldI3l99hbW76rceKOFW/YxZcVObhwUQ3REXSdV+Hd1/X149ZKu7D9UwN3/W6lto1zkSGERP63dzbCOjQnw9cYYw1NndyK/qJhHp1b9zhUi4vkU0kSc7KGzOhBSx5d7v15V4QH5BUXFPPzdGpqF1uGWwa2dXOHfdWwawv0j2/Prhr28vyDF5ferjeZsTOdgXiGjOzc5eiwqoi7jT2/DT2t3azkUEfkbhTQRJwut68djYzuyKi27woHn/QXJbN6bw6OjO1LHz9u5BZ7AlX2jGBrbiKd/XM+aHdlVcs/aZNqqXYTV9aNf64i/HL9hYAztGgXxyNS15LhoCRcRqZ4U0kRcYFSnJpzRoREvzNxISsahcl27K/sw//1lM0NjGzK0QyMXVfh3xhieOz+e8Lr+3P7ZcgUGJ8rNL+SXdXsYEdcYX++//rXr6+3F0+d1YveBPJ6f4fwlXESk+lJIE3EBYwxPnh2Hr7cX932zqlzjvJ78fj1FxZZHRnd0YYXHF1rXj5fHdWHbvkM8PGVNld+/pvpl/V4OFxQx+gTbeXVrEcplvVrywcIUVqRmVW1xIuKxFNJEXKRRcAAPjIzlj62ZfL4ktUzXzN2Uzg+rd3HrkNY0Dwt0cYXH1ysmnPGnt+Gb5Tv4emmaW2qoaaat3EmjYH96RoWd8Jy7h7ejYZA///5mNQVaXFhEUEgTcamLejSnT0w4//lh/SmXWThSWMQjU9cSFR7IDQNjqqjC47v9tDb0ig7joe/WsDU9x621VHfZhwuYszGds+Kb4uV14mVUggN8eWxMR9bvOsCk+clVWKGIeCqFNBEXMsYw4bxOFBQX8+CU1Sd97PnuvGSSMw7x2Ng4AnyrZrLAiXh7Gf47rgt+Pl7c/tlypy3OWxvNWLub/KJixpzgUWdpZ3ZszNDYRrz0yyZSM3OroDoR8WQKaSIu1jK8LncNa8cv6/fy/apdxz0nNTOXV3/bzIi4xgxq26CKKzy+JiF1eP78zqzdeYBrJyfy7rytLEjKYF/OEXeXVq1MW7mTFmGBxDcLOeW5xhgeH9sRb2N4YMoarVknUss5byNAETmhq/tFM23VLh6dupZ+rSMIq+v3l9cf/34dBsNDZ3VwU4XHN7RDI+4+sx0f/J7C/KSMo8cbBvnTvkkwsY2DiG0STPsmQbRqUO9vMxdru4ycI/y+ZR83DYop844RTevX4a4z2/HYtHVMXbmTsV0iXVyliHgqhTSRKuDtZXj2vHjOenUeT3y/jpcu6nL0td827GHmuj3cO7w9TevXcV+RJ3DrkNbcOqQ1+3KOsGH3QdbvOsD6XY7f39+yj/ySQe6+3obWDYOIbRJEbGNHcIttEkxEPX83fwXu8+PqXRQVW8Z0Ll/QuqJPFFOW7+DxaesY1LYB9QP9Tn2RiNQ4Lg1pxpjhwMuAN/CutXbCcc65EHgUsMBKa+0lJceLgNUlp2231o5xZa0irtaucRC3DG7Ny79uZkznpgxp35C8AsdkgdYN63Ft/2h3l3hS4fX86dfa/y+LsRYUFZOccegvwW1BUgbfLNtx9JyIev6O4NYkmNgmQbRvHEyrBvXw86n5vW5TV+6kbaN6tGscVK7rvL0MT58bz+jX5vP09A08c368iyoUEU/mspBmjPEGJgJnAGnAEmPMVGvtulLntAH+DfSz1u43xjQs1cRha20XV9Un4g63DGnFj2t28cC3q5lx50DenZdMauZhPr2+V7UMLb7eXrRtFETbRkGM7fL/xzMP5bNh1wHWl/S8bdh9gMm/p5Bf+P+9bu0aB9GvVQR9W0fQMyqsynZWqCo7sw6zJGU/dw1rW6HrOzQN5rr+0bw1dyvndIukd0y4kysUEU/nyp60nkCStXYrgDHmc2AssK7UOdcDE621+wGstXtdWI+I2/n7ePPMefGc+8bv/OvLlczelM6Yzk3p2yri1BdXI2F1/ejb2hHA/lT4Z69bSXBbtm0/kxYk89bcrfh5e9G1RX36t46gX5sI4iND8Knm49t+KJkkclb8qWd1nsg/hrZh+ppd3P/tan78xwD8fWpWkBWRk3NlSIsESq/gmQb0OuactgDGmAU4Hok+aq39qeS1AGNMIlAITLDWTnFhrSJVpmuLUK7pF81785Op5+/DA6Ni3V1SlfDx9qJNoyDaNAo6uhxFbn4hS1L283tSBvOTMnjxl028MHMTQf4+9IoJp1/rcPq3jqB1w3plHnjvKaau3El8sxCiIupWuI1APx+ePLsTV05azOuztnDnGRXrlROR6sndEwd8gDbAYKAZMNcY08lamwW0tNbuMMbEAL8ZY1Zba7eUvtgYcwNwA0CLFi2qtHCRyvjXsLZs2nOQs7tE0ig4wN3luE2gnw+D2jY4uuxI5qF8Fm7Zx/ykDH7fksEv6/cAjtmk/VpHlPwKp0mI502wKC054xCrd2TzoBMC+KC2DRjbpSmvz05idOcmtG5YvvFtIlJ9uTKk7QCal/q8Wcmx0tKARdbaAiDZGLMJR2hbYq3dAWCt3WqMmQ10Bf4S0qy1bwNvAyQkJGhBIak2Av18+OjaYzuWJayuH6PimzAqvgngWD/u9y0ZzE/ax9xN6Xy73PFXSEyDuvRr5QhtfWLCCQn0dWfZfzNt5U6M4ejXUVkPndWB2RvTuf+bNXx+Q++T7lwgIjWHK0PaEqCNMSYaRzgbB1xyzDlTgIuB940xETgef241xoQCudbaIyXH+wHPurBWEfFAzcMCuSisBRf1aEFxsWXjnoMsSMpgQVIGXy9L46M/tuFloFNkCH1bRzC8Y2M6N6/v1pqttUxduZMeUWFO6/GLqOfP/SPbc+/Xq/kiMZWLe+rJgUht4LKQZq0tNMbcBszAMd5skrV2rTHmcSDRWju15LVhxph1QBFwt7V2nzGmL/CWMaYYx64IE0rPChWR2sfLy5Qs4xHMdQNiyC8sZmVaFvM3Ox6NvjN3K2/O2cK02/oTF3nq1f1dZcPugyTtzeGJs+Oc2u6FCc35ZtkOnp6+ntNjG9IwqPY+JhepLUxN2XYkISHBJiYmursMEXGTzEP5DH1xDu0aBfHp9b3cNtHg2Z828NbcrSy+/3TCnbyQ75b0HEb8dx5nxjXm1Yu7OrVtEalaxpil1tqEk51Tvee4i4iUCKvrxx1D27Bw6z5mbXTPaj7WWqat2km/1hFOD2gArRrU49YhrZm2cqfbvkYRqToKaSJSY1zcswUxEXX5z/QNFJZsV1WVVqRmkZp5mNFOmjBwPDcNjqFVg7o8+O0acvMLXXYfEXE/hTQRqTF8vb24d0R7kvbm8EVi6qkvcLJpK3fh5+3FmXGNXXYPfx9vnj43nh1Zh3lp5iaX3UdE3E8hTURqlGEdGtEzKoyXZm4m50jV9TQVFVu+X7WTwe0aEBzg2iVBekaHcXHP5kxakMKaHdkuvZeIuI9CmojUKMYY7h8VS0bOEd6es+XUFzjJ4uRM9h48wujOFd8GqjzuGx5LaKAf//5mNUXFNWMCmIj8lUKaiNQ4XZrXZ3Tnprw9byu7s/Oq5J7TVu0k0M+b02MbVsn9QgJ9eXh0B1bvyGby7ylVck8RqVoKaSJSI91zZjuKi+GFnze6/F4FRcX8uHoXQ2MbEehXdbvtjY5vwuB2DXjh543syDpcZfcVkaqhkCYiNVLzsECu6hfFV8vSWLfzgEvvNT8pg/25BVX2qPNPxhieGBuHtfDwlDXUlHUvRcRBIU1EaqxbB7cmpI4vT/+43qX3mbZiJ8EBPgxsG+HS+xxP87BA/nlGW37dsJcf1+yu8vuLiOsopIlIjRUS6Mvtp7Vh3uYM5mxKd8k98gqK+HndHobHNcbfx9sl9ziVq/tFEdskmCe+X8ehKpzRKiKupZAmIjXa5b1b0jI8kP/8sN4lsyBnbdhLzpFCxnSOdHrbZeXj7cUTYzuyKzuP12Ylua0OEXEuhTQRqdH8fLy4d3h7Nu45yFdLnb/A7bRVO4mo50fvmDCnt10eCVFhnNstknfnbWVLeo5baxER51BIE5Eab0RcY7q1qM8LP29y6lZKOUcK+XX9XkZ2aoKPt/v/Ov33iFgCfLx5dOpaTSIQqQHc/7eKiIiLGWN4YFQsew8e4Z25yU5rd+a63RwpLGZMFc/qPJEGQf7ceUZb5m3OYMZaTSIQqe4U0kSkVujeMoyRnRrz1twt7D3gnAVup63cRdOQALq1CHVKe85wRZ+WtG8cxBPfr+dwfpG7yxGRSlBIE5Fa454z21NQVMxLv1R+Y/L9h/KZuymd0Z2b4uVlnFCdc/h4e/HYmI7syDrMRE0iEKnWFNJEpNaIiqjL5b2j+GJJKpv2HKxUWz+t3U1hsa3yBWzLoldMOGd3acrbc7eSnHHI3eWISAUppIlIrXL7aa2p5+/D09Mrt8DttJU7iY6oS8emwU6qzLnuHxmLn48Xj03TJAKR6kohTURqldC6ftx2WmtmbUxn/uaMCrWx90AeC7fuY3TnphjjOY86S2sYHMAdQ9swe2M6M9ftcXc5IlIBCmkiUutc0SeKZqF1eGp6xRa4/WH1LqyFMZ2buKA657mybxRtG9Xj8e/XkVegSQQi1Y1CmojUOgG+3twzvD3rdx3g2+U7yn391JU7iW0STOuGQS6oznl8vb14bEwcafsP8/rsLe4up9b7ftVOrvsgkazcfHeXItWEQpqI1Eqj45vQuXl9Xvh5Y7mWqkjNzGX59ixGe3gv2p/6tApndOemvDlnC9v2aRKBOxzOL+K+r1dx26fL+WX9Hj5ZtN3dJUk1oZAmIrWSMYYHRsayKzuPSQvKvsDt96t2ATA63vNmdZ7IAyNj8fUyPD5tnbtLqXU27D7A6Nfm80ViKrcMbkX/1hFM/j2FI4V6/CynppAmIrVWz+gwhnVoxOuzkkg/eKRM10xduZOuLerTPCzQxdU5T+OQAMaf3oZfN+zl1/WaRFAVrLV89Mc2xr62gOzDBXx0TS/uGd6eGwbGkH7wCNNW7nJ3iVINKKSJSK1234j2HCks5uVfT73AbdLeg6zfdaBa9aL96ep+0bRqUJfHpmkSgatl5xZw88fLeGjKGnrHhPPjPwbQv00EAAPaRNCuURDvztuqpVHklBTSRKRWi2lQj0t7teCzxakk7c056blTV+7CGDgrvnqMRyvNz8eLx8fGsT0zl7fmbHV3OTVWYkomI1+Zxy/r93D/yPa8f1UPIur5H33dGMO1A6LZsPsgC5L2ubFSqQ4U0kSk1ht/ehsCfb2Z8OOGE55jreX7lTvpHR1Ow+CAKqzOefq1jmBUpya8PjuJ1Mxcd5dToxQVWybOSuKit//A28vw1c19uWFgq+NuGTa2S1Mi6vnz7nyFZTk5hTQRqfXC6/lz85BW/LJ+Dwu3HL93Y+3OA2zNOOSR20CVxwOjYvEyhse/1yQCZ9lzII/L31vEczM2MrJTE34Y358uzeuf8Hx/H2+u7NOS2RvT2VzJ7cmkZlNIExEBrukXTdOQAP4zfT3Fx1ngdtrKnfh4GUbENXZDdc7TtH4dbj+9NTPX7WHWxr3uLqfam7VxLyNensfy7Vk8e148r4zrQlCA7ymvu7R3S/x9vHhvftlnFkvto5AmIoJjgdu7h7dj9Y5spq7c+ZfXiost36/axYA2EYTW9XNThc5zXf8YYiLq8tjUtVoKooLyC4t58vt1XP3+EhoG+TPt9n5c2KN5mbcJC6vrx3ndm/HN8h1k5JRtZrHUPgppIiIlxnaOJC4ymOdmbPzLDMhl2/ezI+twtX/U+Sc/Hy8eHdORlH25vDO3+o+L+nZ5Grd/tpyP/thG0t4cl8+aTMk4xPlv/s6785O5ok9Lptzar0K7T1zbP5r8wmI+WrjNBVVKTeDj7gJERDyFl5fh/hGxXPLuIib/nsJNg1oBjked/j5enNGhkZsrdJ6BbRswvGNjXpuVxNldI2kWWn3WfStt4ZZ93PW/Vfh5ezGtpAe0YZA/fVqF0ycmnL6tImgeVqfMPVyn8t2KHTzw7Rq8vQxvXtad4ZV4/N2qQT1Ob9+Qj//Yxs2DWxHg6+2UGqXmUEgTESmlb+sITm/fkIm/JXFhQnOCA3z4YfUuTmvfsExjjaqTh0Z3YPYLe3ny+/W8eXl3d5dTbqmZudzyyVKiI+ry7S19yTyUz+9b9rFwyz4WJO3juxWO0BZZv87R0NanVThN69cp971y8wt55Lu1/G9pGgktQ3n54q5EVqCdY107IJpL3lnEt8t3cHHPFpVuT2oWhTQRkWP8e2R7zvzvPF75dTNDYxuRkZPPmBryqLO0yPp1uG1Ia57/eRNzN6UzsG0Dd5dUZrn5hVz/YSJFxZZ3rkggKMCXoABfWobX5eKeLbDWsiU9h4Vb9vH7ln38un4PXy1NAyAqPNAR2lpF0DsmjIZBJ19SZe3ObG7/bDnJGYcYf1prxp/eBh9v54wW6hMTTsemwbw3P5mLEpofd8kOqb0U0kREjtG6YRDjejTn4z+2sWnPQer6eTOkfUN3l+US1w+M4aulaTw6dS0/3jEAfx/Pf+RmreWu/61k056DvH91T6Ij6v7tHGMMrRsG0bphEJf3iaK42LJh90EWbnX0tH2/ahefLU4FoHXDevQt6WnrHRN+dHKItZYPF27jqenrCQ305ZPretG3VYRTvxZjDNcNiObOL1YyZ3M6Q9rVzD9nUjGmpmxLkZCQYBMTE91dhojUEOkHjzD4uVkcyi/inK6RvHRRF3eX5DKzNu7l6veXcM/wdtwyuLW7yzmlV3/dzAszN/HAyFiuHxhToTaKii1rd2Yf7WlbkpJJbr5jskhsk2D6xISzPTOXX9bvYUi7Bjx/QWfCS+0c4Ez5hcUMfHYWrRrW5ZPrervkHuJ5jDFLrbUJJztHPWkiIsfRIMifmwa14oWZm2rko87ShrRryBkdGvHqr0mc3SWyQmO2qsrPa3fzwsxNnNM1kusGRFe4HW8vQ3yz+sQ3q8+Ng1pRUFTMqrQsFm7Zx8Kt+/hk0TaKreXBUbFc2z/aaRMPjsfPx4sr+0bxzE8bWLfzAB2aBrvsXlK9qCdNROQECoqKWZCUwaC2DVz6j7QnSM3MZeiLcxga24iJl3ZzdznHtWnPQc6ZuIDWDevxxY19XDobMq+giCOFxYTUqZrJItm5BfSZ8Csj4prwwoWdq+Se4l5l6Ulz6TppxpjhxpiNxpgkY8x9JzjnQmPMOmPMWmPMp6WOX2mM2Vzy60pX1ikicjy+3l4Mbtewxgc0gOZhgdw6pDU/rN7F/M0Z7i7nb7Jy87n+w0QC/X146/IEly9XEeDrXWUBDSAk0JcLE5ozdeUO9hzIq7L7imdzWUgzxngDE4ERQAfgYmNMh2POaQP8G+hnre0I3FFyPAx4BOgF9AQeMcaEuqpWERGBGwbG0DI8kEemriG/sNjd5RxVWFTM7Z8tZ1dWHm9e1p3GIdVzg/tTubpfFIXFlg8Xpri7FPEQruxJ6wkkWWu3Wmvzgc+Bsceccz0w0Vq7H8Ba++dGcmcCM621mSWvzQSGu7BWEZFaL8DXm0dGd2BL+iHeX+A5e0pO+HED8zZn8OTZcXRvWXP/v94yvC7DOjTi4z+2k5tf6O5yxAO4MqRFAqmlPk8rOVZaW6CtMWaBMeYPY8zwclyLMeYGY0yiMSYxPT3diaWLiNROp7VvxNDYhrz862Z2Z7v/sdvXS9N4d34yV/WN4sIezd1djstdPyCG7MMFfF2yppvUbu7eu9MHaAMMBi4G3jHG1C/rxdbat621CdbahAYNqs8ijCIinuzhszpSWGx5avp6t9axIjWLf3+7mr6twnlgVKxba6kq3VuG0rl5fd6bn0xxcc2Y2CcV58qQtgMo/d+eZiXHSksDplprC6y1ycAmHKGtLNeKiIgLtAgP5OZBrZi2ciezNu499QUusOdAHjd8mEijYH8mXtINXyet8O/pjDFcPyCalH2ONdqkdnPln/olQBtjTLQxxg8YB0w95pwpOHrRMMZE4Hj8uRWYAQwzxoSWTBgYVnJMRESqwM2DWxETUZdrJi/hoSlryM4tqLJ75xUUceNHS8k5Usg7VyQc3QGgthjesTGR9evw7nzPGRco7uGykGatLQRuwxGu1gNfWmvXGmMeN8aMKTltBrDPGLMOmAXcba3dZ63NBJ7AEfSWAI+XHBMRkSoQ4OvNt7f248o+UXyyaBtDXpjNl0tSXf4IzlrLg1PWsCI1ixcu6Ez7xrVvYVcfby+u7hfF4uRMVqVlubsccSMtZisiIie1bucBHv5uDYnb9tO1RX2eGBtHXGSIS+71/oJkHpu2jvGnt+GfZ7R1yT2qg4N5BfR5+jdOa9+QVy7u6u5yxAXcvpitiIhUfx2aBvO/m/rwwgWdSc3MZcxr83n4O+c/Al2QlMGTP6xnWIdG3HF6G6e2Xd0EBfgyrkdzfli9i51Zh91djriJQpqIiJySMYbzujfj138N5oo+UXz8xzZOe2E2XyY65xHotn2HuOWTZbRqUJcXL+qCl1fN3+XhVK7qFwXA5N9T3FqHuI9CmoiIlFlIHV8eHdORabf3JyqiLvd8tYrz3/ydNTuyK9xmzpFCrv/QMVzlnSsSqOfv46xyq7VmoYGMiGvMZ4u2k3NEi9tWlZWpWaxOq/ifZ2dSSBMRkXLr2DSE/93Yh+cv6My2fRV/BFpcbPnXlytI2pvDxEu60TK8rosqrp6uGxDDwSOFfLkk9dQnS6VZa3nouzXc/MlSijxgnTqFNBERqRAvL8P53Zvx212Dubx3y6OPQP9XjkegL/+6mRlr9/DAqA70bxPh4oqrny7N69MjKpRJC5IpLPKc/VRrqhlr97AqLZt/nN4Gbw945K6QJiIilRJSx5fHxsYdfQR6dxkfgf60Zhcv/7qZ87o145qS8Vfyd9f2jyFt/2F+XqfFbV2pqNjy4syNxDSoyzld/7YTpVsopImIiFP8+Qj0ufPjjz4CfeS7NWQf/vsj0A27D/DPL1fSpXl9njonDmPc32vhqc7o0IiW4YG8M2+ru0up0aau3MGmPTn864x2+HjIDheeUYWIiNQIXl6GCxKa89u/HI9AP/pjG6c9/9dHoPsP5XP9h4nU8/fhrcu7E+Dr7eaqPZu3l+GaftEs357F0m373V1OjVRQVMxLMzfToUkwI+Iau7ucoxTSRETE6UICHY9Ap97Wn5bhgdz91SoueGshq9KyuPXTZezJPsJbl3enUXCAu0utFs7v3ozgAB/em6/eNFf4MjGV7Zm53H1mO49a/kUhTUREXCYuMoSvburLc+fHk5JxiDGvLeD3Lfv4z7md6Noi1N3lVRt1/X24pFdLflqzm9TMXHeXU6PkFRTx6q9JdG8ZyuB2Ddxdzl8opImIiEuVfgR6/YBo7hvRnvO7N3N3WdXOVX2j8DKGSQu08bozffzHNnYfyOPuM9t53NhIhTQREakSIYG+PDCqAzcNauXuUqqlxiEBjO7clC+XpB53MoaUX86RQl6fvYUBbSLoHRPu7nL+RiFNRESkmri2fzSH8ov4fPF2d5dSI0yan0zmoXzuGtbO3aUcl0KaiIhINREXGUKfmHAm/55CgRa3rZSs3HzembuVYR0a0bl5fXeXc1wKaSIiItXIdQOi2ZWdx/TVu9xdSrX25pyt5OQX8i8P7UUDhTQREZFqZUi7hsQ0qMs787Zirfv3l6yO9h7MY/LvyYzt3JR2jYPcXc4JKaSJiIhUI15ehmv7R7NmxwEWJ2e6u5xqaeJvSRQWWe4Y2tbdpZyUQpqIiEg1c27XZoQG+vLOPC3HUV5p+3P5dPF2LkhoTlREXXeXc1IKaSIiItVMHT9vLu/dkl837GFreo67y6lWXv5lM8YYxp/e2t2lnJJCmoiISDV0WZ+W+Hp5aXHbctiSnsPXy9K4vHdLmoTUcXc5p6SQJiIiUg01DArg7K5N+WppGikZh9xdTrXw4sxN1PH15pbB1WNBZYU0ERGRauqGgTEYDGe8NIeHv1vD3oN57i7JY63dmc0Pq3ZxTf9owuv5u7ucMlFIExERqaZaNwxi1l2DOb97cz5ZtJ1Bz87m2Z82eNy2UVvSc/jP9PXM3ZTuthpe+HkTIXV8uW5AjNtqKC9TU9ZYSUhIsImJie4uQ0RExC2SMw7x4sxNTFu5k+AAH24a3Iqr+0ZTx8/bLfVYa1mQtI/35m9l1kZHOPP1Nky8pBvDOjau0lqWbsvkvDcWcs/wdtwy2DMmDBhjllprE056jkKaiIhIzbF2ZzbPz9jIrI3pNAjyZ/xprbmoRwv8fKrm4VleQRFTlu9g0oJkNu3JIaKeH5f1bsnYLpHc+cUK1uzI5rVLujE8rmqCmrWWi9/5g6S9h5h7z2AC/Xyq5L6nopAmIiJSSy1JyeS5nzayOCWTFmGB3HlGG8Z0jsTby7jkfnsP5PHRH9v4ZNF2Mg/lE9skmGv7RzO6cxP8fRy9eQfzCrhy0mJWpWXzysVdGdmpiUtqKW3+5gwue28Rj47uwFX9ol1+v7JSSBMREanFrLXM3pTOcz9tZN2uA7RrFMRdZ7ZjaGxDjHFOWFuzI5tJ85OZtmonhcWW09s34tr+0fSOCTvuPXKOFHLVpMUsT83ivxd1YXTnpk6p43istZw9cQEZOfn8dtego2HRE5QlpHlGn5+IiIg4nTGGIe0aMqhNA35YvYsXZ27i+g8T6daiPnef2Z4+rcIr1G5RsWXmuj1MWpDM4uRM6vp5c2mvllzVN+qUq/jX8/dh8jU9ueb9Jfzj8+UUW8vYLpEVquNUZq7bw8q0bJ49L96jAlpZqSdNRESkligoKuarpWm8/Mtmdh/IY0CbCO45sz2dmoWU6fqDeQV8mZjG5N+TSc08TGT9OlzdL4oLEpoTUse3XLXk5hdyzeQlLE7O5IULO3NO12YV+ZJOqKjYMvLleRQUFfPznQPx8fasBS3UkyYiIiJH+Xp7cXHPFpzTNZKPFm7j9dlJjH5tPiM7NeafZ7SjdcN6x71u+75cJv+ewpeJqeQcKaRHVCj3j4jljA6NKhx+Av18eP+qnlz7wRL++eVKiorh/O7OC2rfr9rJxj0HefXirh4X0MpKPWkiIiK11MG8At6Zl8x787ZyuKCI87s34x9D2xJZvw7WWhYnZzJpQTIz1+3ByxjOim/CNf2jiW9W32k1HM4v4voPE1mwJYNnzo3nwh7NK91mQVExQ1+cQ6CfDz/c3h8vF02WqAz1pImIiMgJBQX48s8z2nJln5ZMnLWFj//YxpTlOzmveySrd2SzZscB6gf6cvPgVlzRJ4pGwQFOr6GOnzfvXpnA9R8mcs/Xqyi2lnE9W1Sqza+WprFtXy7vXZngkQGtrNSTJiIiIgDsyDrMK79s5n9LU4lpUI9r+kVzTtfIKlkQN6+giJs+Xsrsjek8dU4cl/ZqWeF2hjw/m8YhAXxzc1+nzWJ1NvWkiYiISJlF1q/DM+fH88iYDtTx9a7SgBPg681bl3fn5o+X8cC3aygqtlzRJ6rc7XyyaDu7svN44cLOHhvQyqp6jqQTERERlwn083FLwPH38eaNy7oxNLYRD3+3lskLkst1/aEjhbw+K4l+rcPp2yrCRVVWHYU0ERER8Rj+Pt68fmk3zuzYiEenreO9+WUPau8vSGbfoXzuGtbOhRVWHYU0ERER8Sh+Pl68dkk3RsQ15onv1/HO3K2nvCY7t4C35m5laGwjurYIrYIqXU8hTURERDyOr7cXr1zclVHxTXhq+nremL3lpOe/NXcLOUcK+dewtlVUoeu5NKQZY4YbYzYaY5KMMfcd5/WrjDHpxpgVJb+uK/VaUanjU11Zp4iIiHgeX28vXr6oC2M6N+WZnzYwcVbScc/bezCP9xekMDq+KbFNgqu4Stdx2exOY4w3MBE4A0gDlhhjplpr1x1z6hfW2tuO08Rha20XV9UnIiIins/H24sXL+yMl4HnZmykqNgy/vQ2fznn9VlbyC8q5s4zak4vGrh2CY6eQJK1diuAMeZzYCxwbEgTEREROSEfby9euLALXl6GF2duoqjYcsfQNhhj2JF1mE8XbeeC7s2IPsXm7tWNKx93RgKppT5PKzl2rPOMMauMMV8ZY0rvBRFgjEk0xvxhjDn7eDcwxtxQck5ienq68yoXERERj+LtZXju/M6c370ZL/+6mRdnbsJayyu/bAb4W+9aTeDuxWynAZ9Za48YY24EPgBOK3mtpbV2hzEmBvjNGLPaWvuXUYPW2reBt8Gx40BVFi4iIiJVy9vL8Ox58fh4GV79LYk9B/L4etkOrujTkqb167i7PKdzZUjbAZTuGWtWcuwoa+2+Up++Czxb6rUdJb9vNcbMBroCJ5/aISIiIjWal5fhP+d0wsvL8Omi7QT6eXPL4NbuLsslXBnSlgBtjDHROMLZOOCS0icYY5pYa3eVfDoGWF9yPBTILelhiwD6USrAiYiISO3l5WV4cmwckfXr0LR+AA2C/N1dkku4LKRZawuNMbcBMwBvYJK1dq0x5nEg0Vo7FRhvjBkDFAKZwFUll8cCbxljinGMm5twnFmhIiIiUkt5eRluHVIze9D+ZKytGUO5EhISbGJiorvLEBERETklY8xSa23Cyc7RjgMiIiIiHkghTURERMQDKaSJiIiIeCCFNBEREREPpJAmIiIi4oEU0kREREQ8kEKaiIiIiAdSSBMRERHxQAppIiIiIh5IIU1ERETEAymkiYiIiHgghTQRERERD1RjNlg3xqQD26rgVhFARhXcRypO71H1oPepetD7VD3offJ8x75HLa21DU52QY0JaVXFGJN4ql3rxb30HlUPep+qB71P1YPeJ89XkfdIjztFREREPJBCmoiIiIgHUkgrv7fdXYCckt6j6kHvU/Wg96l60Pvk+cr9HmlMmoiIiIgHUk+aiIiIiAdSSCsjY8xwY8xGY0ySMeY+d9cjx2eMSTHGrDbGrDDGJLq7HnEwxkwyxuw1xqwpdSzMGDPTGLO55PdQd9YoJ3yfHjXG7Cj5mVphjBnpzhprO2NMc2PMLGPMOmPMWmPMP0qO6+fJg5zkfSrXz5Med5aBMcYb2AScAaQBS4CLrbXr3FqY/I0xJgVIsNZqvSAPYowZCOQAH1pr40qOPQtkWmsnlPzHJ9Rae68766ztTvA+PQrkWGufd2dt4mCMaQI0sdYuM8YEAUuBs4Gr0M+TxzjJ+3Qh5fh5Uk9a2fQEkqy1W621+cDnwFg31yRSbVhr5wKZxxweC3xQ8vEHOP4CEzc6wfskHsRau8tau6zk44PAeiAS/Tx5lJO8T+WikFY2kUBqqc/TqMA3W6qEBX42xiw1xtzg7mLkpBpZa3eVfLwbaOTOYuSkbjPGrCp5HKrHaB7CGBMFdAUWoZ8nj3XM+wTl+HlSSJOapr+1thswAri15PGNeDjrGHehsRee6Q2gFdAF2AW84NZqBABjTD3ga+AOa+2B0q/p58lzHOd9KtfPk0Ja2ewAmpf6vFnJMfEw1todJb/vBb7F8ahaPNOeknEbf47f2OvmeuQ4rLV7rLVF1tpi4B30M+V2xhhfHP/wf2Kt/abksH6ePMzx3qfy/jwppJXNEqCNMSbaGOMHjAOmurkmOYYxpm7JAE2MMXWBYcCak18lbjQVuLLk4yuB79xYi5zAn//wlzgH/Uy5lTHGAO8B6621L5Z6ST9PHuRE71N5f540u7OMSqbJ/hfwBiZZa59yb0VyLGNMDI7eMwAf4FO9T57BGPMZMBiIAPYAjwBTgC+BFsA24EJrrQatu9EJ3qfBOB7NWCAFuLHU2CepYsaY/sA8YDVQXHL4fhzjnfTz5CFO8j5dTDl+nhTSRERERDyQHneKiIiIeCCFNBEREREPpJAmIiIi4oEU0kREREQ8kEKaiIiIiAdSSBMROYYxJsUYE3GKc+6vqnpEpHZSSBMRqRiFNBFxKYU0EalxjDFRxpg1pT6/yxjzqDFmtjHmZWPMCmPMGmNMz5LXw40xPxtj1hpj3gVMqWunGGOWlrx2Q8mxCUCdknY+KTl2mTFmccmxt4wx3iW/Jpfca7Ux5s6q/U6ISHWmkCYitU2gtbYLcAswqeTYI8B8a21HHLtWtCh1/jXW2u5AAjDeGBNurb0POGyt7WKtvdQYEwtcBPQrabsIuBTHyuKR1to4a20n4H3Xf3kiUlP4uLsAEZEq9hmAtXauMSbYGFMfGAicW3L8B2PM/lLnjzfGnFPycXOgDbDvmDZPB7oDSxxb9lEHxwbX04AYY8yrwA/Azy75ikSkRlJIE5GaqJC/PikIKPXxsXvhnXBvPGPMYGAo0Mdam2uMmX1MW0dPBT6w1v77OG10Bs4EbgIuBK45dfkiInrcKSI10x6gYclYM3/grFKvXQRHN0DOttZmA3OBS0qOjwBCS84NAfaXBLT2QO9S7RQYY3xLPv4VON8Y07CkjTBjTMuSGaJe1tqvgQeBbq74YkWkZlJPmojUONbaAmPM48BiYAewodTLecaY5YAv/9+r9RjwmTFmLfA7sL3k+E/ATcaY9cBG4I9S7bwNrDLGLCsZl/Yg8LMxxgsoAG4FDgPvlxwD+FtPm4jIiRhrT9jTLyJSo5Q8rrzLWpvo7lpERE5FjztFREREPJB60kREREQ8kHrSRERERDyQQpqIiIiIB1JIExEREfFACmkiIiIiHkghTURERMQDKaSJiIiIeKD/AyIR0exSH9qXAAAAAElFTkSuQmCC\n", "text/plain": ["
"] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmkAAAFzCAYAAABl1J6yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABmx0lEQVR4nO3deXhU5fn/8feTnZAQCElYQiCQhB3CDsoOorjhVnet2lZbW7Wtv9rSVq219Vtrbb+t1tqqX7Va674A7gsgoIIssoQ1ARIggWxk35N5fn9MggFZkjAzZ5J8Xtc1F8mZM+fcYRJy8yz3bay1iIiIiIh/CXA6ABERERH5JiVpIiIiIn5ISZqIiIiIH1KSJiIiIuKHlKSJiIiI+CElaSIiIiJ+KMjpADwlJibGJiYmOh2GiIiIyCmtX7++wFobe7JzOkySlpiYyLp165wOQ0REROSUjDFZpzpH050iIiIifkhJmoiIiIgfUpImIiIi4oc6zJq046mrq+PAgQNUV1c7HYq0QFhYGP369SM4ONjpUERERBzXoZO0AwcOEBkZSWJiIsYYp8ORk7DWUlhYyIEDBxg4cKDT4YiIiDiuQ093VldX07NnTyVo7YAxhp49e2rUU0REpFGHTtIAJWjtiN4rERGRr3X4JM1JxcXF/OMf/2jTa8877zyKi4s9G5CIiIi0G0rSvOhkSVp9ff1JX/vuu+/SvXt3L0R1eqy1uFwup8MQERHp8JSkedHChQvZvXs3Y8aM4a677mL58uVMnz6dBQsWMHz4cAAuvvhixo8fz4gRI3jiiSeOvDYxMZGCggIyMzMZNmwYN998MyNGjODss8+mqqrqG/dasmQJkydPZuzYsZx11lnk5uYCUF5ezk033cSoUaMYPXo0r7/+OgDvv/8+48aNIzU1lblz5wJw33338fDDDx+55siRI8nMzCQzM5MhQ4bw7W9/m5EjR7J//35uvfVWJkyYwIgRI/jNb35z5DVr167lzDPPJDU1lUmTJlFWVsaMGTPYuHHjkXOmTZvGpk2bPPcXLSIi0gF16N2dzf12yVa25ZR69JrD+3bjNxeOOOHzDz74IGlpaUcSlOXLl7NhwwbS0tKO7GB8+umniY6OpqqqiokTJ3LZZZfRs2fPo66Tnp7Oiy++yJNPPskVV1zB66+/znXXXXfUOdOmTWP16tUYY3jqqad46KGH+POf/8zvfvc7oqKi2LJlCwBFRUXk5+dz8803s2LFCgYOHMjhw4dP+bWmp6fz73//mylTpgDwwAMPEB0dTUNDA3PnzmXz5s0MHTqUK6+8kpdffpmJEydSWlpKly5d+O53v8uzzz7LX//6V3bt2kV1dTWpqakt/nsWERHpjDpNkuYvJk2adFSJiUceeYQ333wTgP3795Oenv6NJG3gwIGMGTMGgPHjx5OZmfmN6x44cIArr7ySgwcPUltbe+QeH3/8MS+99NKR83r06MGSJUuYMWPGkXOio6NPGfeAAQOOJGgAr7zyCk888QT19fUcPHiQbdu2YYyhT58+TJw4EYBu3boBcPnll/O73/2OP/3pTzz99NPceOONp7yfiIjIqRwsqSI4MICYiFCnQ/GKTpOknWzEy5e6du165OPly5fz8ccf88UXXxAeHs6sWbOOW4IiNPTrb77AwMDjTnfefvvt3HnnnSxYsIDly5dz3333tTq2oKCgo9abNY+ledx79+7l4YcfZu3atfTo0YMbb7zxpKUzwsPDmTdvHosWLeKVV15h/fr1rY5NRESkOWst1z61Biy8c8d0uoQEOh2Sx2lNmhdFRkZSVlZ2wudLSkro0aMH4eHh7Nixg9WrV7f5XiUlJcTHxwPw73//+8jxefPm8dhjjx35vKioiClTprBixQr27t0LcGS6MzExkQ0bNgCwYcOGI88fq7S0lK5duxIVFUVubi7vvfceAEOGDOHgwYOsXbsWgLKysiMbJL73ve9xxx13MHHiRHr06NHmr1NERAQgLbuUPfkV7Cmo4KEPdjgdjlcoSfOinj17MnXqVEaOHMldd931jefnz59PfX09w4YNY+HChUdNJ7bWfffdx+WXX8748eOJiYk5cvzuu++mqKiIkSNHkpqayrJly4iNjeWJJ57g0ksvJTU1lSuvvBKAyy67jMOHDzNixAj+/ve/M3jw4OPeKzU1lbFjxzJ06FCuueYapk6dCkBISAgvv/wyt99+O6mpqcybN+/ICNv48ePp1q0bN910U5u/RhERkSZvb84hKMBw6dh4nvksk893FzgdkscZa63TMXjEhAkT7Lp16446tn37doYNG+ZQRNJcTk4Os2bNYseOHQQEnPj/BnrPRETkVKy1TPvjMob0juSxa8Zx3iMrqa138f5PphMZ1j76Pxtj1ltrJ5zsHI2kidc9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\n", "text/plain": ["
"] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": ["Text(17.200000000000003, 0.5, 'accuracy')"] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fig = plt.figure(figsize=(10, 6))\n", "ax = fig.add_subplot(1, 1, 1)\n", "ax.plot(train_losses, label=\"train loss\")\n", "ax.plot(valid_losses, label=\"valid loss\")\n", "plt.legend()\n", "ax.set_xlabel(\"updates\")\n", "ax.set_ylabel(\"loss\")\n", "\n", "fig = plt.figure(figsize=(10, 6))\n", "ax = fig.add_subplot(1, 1, 1)\n", "ax.plot(train_accs, label=\"train accuracy\")\n", "ax.plot(valid_accs, label=\"valid accuracy\")\n", "plt.legend()\n", "ax.set_xlabel(\"updates\")\n", "ax.set_ylabel(\"accuracy\");" ] }, { "cell_type": "code", "execution_count": null, "id": "7d0e4458-64ea-47c4-b082-2f0fe5ce8d19", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "51f1e556-f037-46b1-a60b-477bd3188e2b", "isComponent": true, "name": "Test model", "parents": [ { "id": "49b7e440-bc55-4a07-8e56-14ac7a5c3f9a", "name": "Train" } ] }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "evaluating...: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:03<00:00, 1.17it/s]\n", "test_loss: 0.748, test_acc: 0.532\n" ] } ], "source": [ "# model.load_state_dict(torch.load('rnn.pt'))\n", "\n", "test_loss, test_acc = evaluate(test_dataloader, model, criterion, device)\n", "\n", "epoch_test_loss = np.mean(test_loss)\n", "epoch_test_acc = np.mean(test_acc)\n", "\n", "print(f\"test_loss: {epoch_test_loss:.3f}, test_acc: {epoch_test_acc:.3f}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "57f8be70-5aaa-46a0-979b-e25ad9a985c7", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "8e5a5c08-e0f6-4581-874f-6c60fa12cc8a", "isComponent": true, "name": "Define predict sentiment func", "parents": [ { "id": "8d792aa6-cac6-4ba6-a4a4-1a5566cfbb81", "name": "Import packages" } ] }, "tags": [] }, "outputs": [], "source": [ "def predict_sentiment(text, model, tokenizer, vocab, device):\n", " tokens = tokenizer(text)\n", " ids = [vocab[t] for t in tokens]\n", " length = torch.LongTensor([len(ids)])\n", " tensor = torch.LongTensor(ids).unsqueeze(dim=0).to(device)\n", " prediction = model(tensor, length).squeeze(dim=0)\n", " probability = torch.softmax(prediction, dim=-1)\n", " predicted_class = prediction.argmax(dim=-1).item()\n", " predicted_probability = probability[predicted_class].item()\n", " return predicted_class, predicted_probability" ] }, { "cell_type": "code", "execution_count": null, "id": "5daf5a5c-8efb-4c61-a676-1e40c3017542", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "30454386-fc46-4851-813b-110a3a23a334", "isComponent": true, "name": "Test example1", "parents": [ { "id": "8e5a5c08-e0f6-4581-874f-6c60fa12cc8a", "name": "Define predict sentiment func" }, { "id": "51f1e556-f037-46b1-a60b-477bd3188e2b", "name": "Test model" } ] }, "tags": [] }, "outputs": [ { "data": { "text/plain": ["(0, 0.523607611656189)"] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text = \"This film is terrible!\"\n", "\n", "predict_sentiment(text, model, tokenizer, vocab, device)" ] }, { "cell_type": "code", "execution_count": null, "id": "e4eeded2-c2c3-42d9-8b3a-50fd2458b64d", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "a3978ff9-806c-4387-9552-3d9e572ea1c6", "isComponent": true, "name": "Test example2", "parents": [ { "id": "8e5a5c08-e0f6-4581-874f-6c60fa12cc8a", "name": "Define predict sentiment func" }, { "id": "51f1e556-f037-46b1-a60b-477bd3188e2b", "name": "Test model" } ] }, "tags": [] }, "outputs": [ { "data": { "text/plain": ["(1, 0.7643947005271912)"] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text = \"This film is great!\"\n", "\n", "predict_sentiment(text, model, tokenizer, vocab, device)" ] }, { "cell_type": "code", "execution_count": null, "id": "fbe9b425-7cae-45f3-80ca-0fa31da24c98", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "be312074-9a73-42cc-a24d-b5f533a0dc8a", "isComponent": true, "name": "Test example3", "parents": [ { "id": "51f1e556-f037-46b1-a60b-477bd3188e2b", "name": "Test model" }, { "id": "8e5a5c08-e0f6-4581-874f-6c60fa12cc8a", "name": "Define predict sentiment func" } ] }, "tags": [] }, "outputs": [ { "data": { "text/plain": ["(1, 0.8956218957901001)"] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text = \"This film is not terrible, it's great!\"\n", "\n", "predict_sentiment(text, model, tokenizer, vocab, device)" ] }, { "cell_type": "code", "execution_count": null, "id": "2fb6b36b-723b-49d2-bd91-c3b69daf8a98", "metadata": { "canvas": { "comments": [], "componentType": "CodeCell", "copiedOriginId": null, "diskcache": false, "headerColor": "inherit", "id": "631f2528-8252-4339-9224-35ae145047d4", "isComponent": true, "name": "Test example4", "parents": [ { "id": "51f1e556-f037-46b1-a60b-477bd3188e2b", "name": "Test model" }, { "id": "8e5a5c08-e0f6-4581-874f-6c60fa12cc8a", "name": "Define predict sentiment func" } ] }, "tags": [] }, "outputs": [ { "data": { "text/plain": ["(1, 0.6588938236236572)"] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text = \"This film is not great, it's terrible!\"\n", "\n", "predict_sentiment(text, model, tokenizer, vocab, device)" ] } ], "metadata": { "canvas": { "colorPalette": [ "inherit", "inherit", "inherit", "inherit", "inherit", "inherit", "inherit", "inherit", "inherit", "inherit" ], "parameters": [ { "name": "seed", "type": "int", "value": "0" }, { "name": "max_length", "type": "int", "value": "256" }, { "name": "test_size", "type": "float", "value": "0.25" }, { "name": "min_freq", "type": "int", "value": "5" }, { "name": "embedding_dim", "type": "int", "value": "300" }, { "name": "hidden_dim", "type": "int", "value": "256" }, { "name": "lr", "type": "float", "value": "5e-4" }, { "name": "batch_size", "type": "int", "value": "512" }, { "name": "n_epochs", "type": "int", "value": "5" } ], "version": "1.0" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.10" } }, "nbformat": 4, "nbformat_minor": 5 }