{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "Q-bj6K7Qv4ft" }, "source": [ "# Instruction-Tuning a Generative Pretrained Transformer\n", "\n", "1. First, intall `transformers` library." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%pip install transformers" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "- Load the dataset.\n", "- Load GPT-2 Tokenizer and add the choosen special tokens (`'<|startoftext|>', '<|endoftext|>','<|pad|>'`)\n", "- Create demonstrations by prepending the special tokens.\n", "- Calculate the maximum lenght (in tokens) that the demonstrations have." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 423 }, "id": "7MbpXGu-v4f1", "outputId": "2f764046-c977-4187-c9fc-5a37eb6ff28b" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Found cached dataset parquet (C:/Users/CWLINK/.cache/huggingface/datasets/nicholasKluge___parquet/nicholasKluge--fine-tuning-instruct-aira-c7a6e731d782bc09/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "75b57109c2544501a6f6eac494b6ba0b", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/4 [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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
promptcompletion
0I was wondering if you could walk me through t...Sure! The process for setting up a hydroponic ...
1What type of wine goes best with steak.The best type of wine to pair with steak depen...
2How do I know if this is a good investment.Answer: To determine if an investment is a goo...
3Please provide me with some financial advice.Some financial advice is to always pay yoursel...
4What kind of safety devices do I need to insta...The type of safety devices you should install ...
.........
42869How do computers communicate and network with ...Computers communicate and network with each ot...
42870How are websites different from web applications?Websites and web applications are similar in t...
42871What is open-source software and its benefits?Open-source software is software that is made ...
42872What is a cookie and how is it used in web bro...A cookie is a small piece of data that a websi...
42873What is cloud storage and its advantages for d...Cloud storage is a service that allows you to ...
\n", "

42874 rows × 2 columns

\n", "" ], "text/plain": [ " prompt \\\n", "0 I was wondering if you could walk me through t... \n", "1 What type of wine goes best with steak. \n", "2 How do I know if this is a good investment. \n", "3 Please provide me with some financial advice. \n", "4 What kind of safety devices do I need to insta... \n", "... ... \n", "42869 How do computers communicate and network with ... \n", "42870 How are websites different from web applications? \n", "42871 What is open-source software and its benefits? \n", "42872 What is a cookie and how is it used in web bro... \n", "42873 What is cloud storage and its advantages for d... \n", "\n", " completion \n", "0 Sure! The process for setting up a hydroponic ... \n", "1 The best type of wine to pair with steak depen... \n", "2 Answer: To determine if an investment is a goo... \n", "3 Some financial advice is to always pay yoursel... \n", "4 The type of safety devices you should install ... \n", "... ... \n", "42869 Computers communicate and network with each ot... \n", "42870 Websites and web applications are similar in t... \n", "42871 Open-source software is software that is made ... \n", "42872 A cookie is a small piece of data that a websi... \n", "42873 Cloud storage is a service that allows you to ... \n", "\n", "[42874 rows x 2 columns]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "21930e5b069c42eba7b67aa9323901c4", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Downloading: 0%| | 0.00/1.04M [00:00', \n", " eos_token='<|endoftext|>', \n", " pad_token='<|pad|>')\n", "\n", "# create column that concatenates the two sentences\n", "df['demonstrations'] = tokenizer.bos_token + df['prompt'] + tokenizer.eos_token + df['completion'] + tokenizer.eos_token\n", "\n", "# calculate the length of the text\n", "df['length'] = df['demonstrations'].apply(lambda x: len(tokenizer.encode(x)))\n", "\n", "print(\"Total number of demonstrations: \", len(df))\n", "print(f\"The longest demonstration is {df['length'].max()} tokens long.\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "2. Create the Dataset class." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "WlbAfMQ4v4gA" }, "outputs": [], "source": [ "import torch\n", "from torch.utils.data import Dataset\n", "\n", "max_length = 300\n", "\n", "class DemoDataset(Dataset):\n", "\n", " def __init__(self, demonstrations, tokenizer, max_length=max_length):\n", "\n", " self.tokenizer = tokenizer\n", " self.input_ids = []\n", " self.attn_masks = []\n", "\n", " for demo in demonstrations:\n", "\n", " encodings_dict = tokenizer(demo, \n", " truncation=True, \n", " max_length=max_length, \n", " padding=\"max_length\")\n", " \n", " self.input_ids.append(torch.tensor(encodings_dict['input_ids']))\n", " self.attn_masks.append(torch.tensor(encodings_dict['attention_mask']))\n", " \n", " def __len__(self):\n", " return len(self.input_ids)\n", "\n", " def __getitem__(self, idx):\n", " return self.input_ids[idx], self.attn_masks[idx] " ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "3. Split the data into training ad validation splits." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "-IOfa2PEv4gD", "outputId": "151f4cae-32f2-45d6-f205-60302dc7de5b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of training samples: 38,586\n", "Number of validation samples: 4,288\n" ] } ], "source": [ "from torch.utils.data import random_split\n", "\n", "dataset = DemoDataset(df.demonstrations.to_list(), tokenizer, max_length=max_length)\n", "\n", "train_size = int(0.9 * len(dataset))\n", "val_size = len(dataset) - train_size\n", "\n", "train_dataset, val_dataset = random_split(dataset, [train_size, val_size])\n", "\n", "print('Number of training samples: {:,}'.format(train_size))\n", "print('Number of validation samples: {:,}'.format(val_size))" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "4. Create the `DataLoaders`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "id": "cUkCNV-6v4gG" }, "outputs": [], "source": [ "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler\n", "\n", "train_dataloader = DataLoader(\n", " train_dataset, \n", " sampler=RandomSampler(train_dataset),\n", " batch_size=32\n", " )\n", "\n", "# validation data loader doesn't need randomization\n", "validation_dataloader=DataLoader(\n", " val_dataset, \n", " sampler=SequentialSampler(val_dataset), \n", " batch_size=32 \n", " )" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "5. load the base model." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 550, "referenced_widgets": [ "a7bb2d4cc1f74f33a62466e130d3c1a9", "9706bd5a6d164205989e96923280c522", "ef7694f2925d4422804baaede5c64c0b", "ef8d6e8fb2d54711bac0321e577ce9a5", "b629c8287f904d5c904f19d148ff663e", "7b95ba7da67a413f8e45864ca909cd6f", "681e6b5e2a484e63aabe7f9fb2767ad4", "55cecbcb63304d9f80f4931a368232e0", "5be34fa7a15a441d96b20daef61c6891", "d8c1b2a4ddc8416aa834c9379b307d4c", "e7004f2f677f4401bfbf729720ca987e", "567c00bdbe7f45cab7e48eca1a86ee62", "09570e24b3874bb99eed96409166e9e7", "f803d30823a64323886d2fd5315858ca", "db12c8a901d644c0b9aac03b7f1d37a4", "cebda9f32b0d4519b7bebfbf67ac410e", "0b8dced3f8bc4172a46c93fccca737eb", "e8b56ed15a48482096142f730bb248f3", "5d489be7701f4057874e80f081f04c1d", "7574f84c6d3c484cb1d07f417c47ba98", "4a85a12703a04dc8acb6808e520c9121", "32fdf73a7b36404fbe56e5972b868291" ] }, "id": "Rmg-5YJqv4gH", "outputId": "3e615596-cbae-41a7-b2a1-a8fd9fca9527" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a7bb2d4cc1f74f33a62466e130d3c1a9", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Downloading pytorch_model.bin: 0%| | 0.00/548M [00:00 model.config.n_layer - UNFREEZE_LAST_N:\n", " for parameter in m.parameters():\n", " parameter.requires_grad = True \n", "\n", " for parameter in model.transformer.ln_f.parameters(): \n", " parameter.requires_grad = True\n", "\n", " for parameter in model.lm_head.parameters(): \n", " parameter.requires_grad = True\n", "\n", "# Count the number of frozen and trainable layers\n", "num_frozen_layers = sum(1 for parameter in model.parameters() if not parameter.requires_grad)\n", "num_trainable_layers = sum(1 for parameter in model.parameters() if parameter.requires_grad)\n", "\n", "print(\"Number of frozen layers:\", num_frozen_layers)\n", "print(\"Number of trainable layers:\", num_trainable_layers)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "6. Setting training parameters." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "qlbLg6tqv4gI" }, "outputs": [], "source": [ "from transformers import get_linear_schedule_with_warmup\n", "\n", "epochs = 5\n", "\n", "warmup_steps = 1e2\n", "\n", "sample_every = 100 # generate a sample every 100 batches\n", "\n", "optimizer = torch.optim.AdamW(model.parameters(), lr = 5e-4, eps = 1e-8)\n", "\n", "total_steps = len(train_dataloader) * epochs\n", "\n", "scheduler = get_linear_schedule_with_warmup(optimizer, \n", " num_warmup_steps = warmup_steps, \n", " num_training_steps = total_steps)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "7. Training/Validation loop." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_X_m8XOtv4gR", "outputId": "a234e6b3-ef01-4bc9-a2ed-c82a794e022f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Beginning epoch 1 of 5\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 35%|███▌ | 100/283 [01:00<01:43, 1.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 100 of 283. Loss:0.92487633228302.\n", "Example output: How does deep learning impact privacy and safeguarding of data?Deep learning enables a model to perform tasks in a manner that is both deterministic and intelligent: it employs an adversarial approach in such a way that is often transparent, but is not biased in its results. It has advantages over natural language processing.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 71%|███████ | 200/283 [01:58<00:47, 1.76it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 200 of 283. Loss:0.7599731683731079.\n", "Example output: What are the main applications of machine learning?Machine learning encompasses tasks such as identifying and extracting patterns in data, analyzing data, and analyzing patterns in the data. It also includes several computational tasks such as segmentation, clustering, and machine learning algorithms that aim to gather information across several dimensions.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 283/283 [02:46<00:00, 1.70it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Average Training Loss: 1.7797733711690868.\n", "Validation loss: 0.6214480362832546.\n", "Beginning epoch 2 of 5\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 35%|███▌ | 100/283 [00:56<01:43, 1.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 100 of 283. Loss:0.6944515109062195.\n", "Example output: What are some of the major debates in the field of epistemology?Epistemology is an intriguing field of study that centers around the study of the epistemology of texts. Scholars and philosophers from various religions, from Plato to Xenophon have explored this field in tandem. There have also been several controversies surrounding the extent to which certain individuals can make substantial contributions to the study of epistemology, including those of Socrates and Marcus Aurelius. Epistemology offers a fascinating exploration of one of the primary strands of social science, namely the role of the mind in epistemology.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 71%|███████ | 200/283 [01:55<00:47, 1.76it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 200 of 283. Loss:0.6129528284072876.\n", "Example output: Can you explain the origin of Occam's razor?The ancient Greek philosopher Zeno of Citium, known as Stoics, was the first to argue for the existence of objective reality. In his treatise on the subject, he presented the threefold nature of things, namely, the objective nature, relative knowledge, and personal perception.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 283/283 [02:42<00:00, 1.74it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Average Training Loss: 0.598113334221048.\n", "Validation loss: 0.5255831023678184.\n", "Beginning epoch 3 of 5\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 35%|███▌ | 100/283 [00:56<01:43, 1.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 100 of 283. Loss:0.5187301635742188.\n", "Example output: How can we ensure that AI does not compromise the privacy of children and adolescents?AI technologies should be developed to ensure that they comply with human rights, which include Child and Adolescent Rights. The primary objective of this principle is to establish ethical standards and standards for AI development and use.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 71%|███████ | 200/283 [01:53<00:47, 1.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 200 of 283. Loss:0.49698150157928467.\n", "Example output: How far are we from achieving general artificial intelligence?The realm of General Intelligence encompasses the capability of AGI to undertake any task that can be undertaken by any intelligent entity, including, but not limited to, Artificial General Intelligence (AGI).\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 283/283 [02:41<00:00, 1.76it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Average Training Loss: 0.5052632845332682.\n", "Validation loss: 0.48149530217051506.\n", "Beginning epoch 4 of 5\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 35%|███▌ | 100/283 [00:56<01:43, 1.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 100 of 283. Loss:0.4454309046268463.\n", "Example output: How does Goodhart's law work?In the realm of machine learning, Goodhart's Law stands as one of three noteworthy law-based optimization techniques, along with Alignment Daemons, which have been instrumental in achieving significant benefits for machine learning.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 71%|███████ | 200/283 [01:53<00:47, 1.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 200 of 283. Loss:0.4759449064731598.\n", "Example output: In what ways does the creative process get impacted by deep learning?The realm of deep learning is dedicated to the exploration of novel means of creating engaging and immersive artworks. The ability to imbibe these outputs imbued with profound emotional and ethical significance enables individuals to imbibe these exceptional creations with greater comprehension and comprehension.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 283/283 [02:41<00:00, 1.75it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Average Training Loss: 0.45279810411770016.\n", "Validation loss: 0.46003800816833973.\n", "Beginning epoch 5 of 5\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 35%|███▌ | 100/283 [00:56<01:43, 1.76it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 100 of 283. Loss:0.4711158275604248.\n", "Example output: How does a feedforward neural network work?An FNN is a type of neural network that lacks cyclic or recursive connections, unlike the recurrent neural networks of RNNs. The FNN's main purpose is to form a graph over a time sequence, then display dynamic behavior using the feedforward pass through it. This allows the network to exhibit dynamic behavior that is proportional to the number of folds in the graph. The Feedforward Neural Network (FNN) is an example of a FNN, famously known as Inner-Neural Zoo.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 71%|███████ | 200/283 [01:54<00:47, 1.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 200 of 283. Loss:0.4309981167316437.\n", "Example output: How does Aumann's agreement theorem relate to Nash Equilibrium?According to Aumann's Agreement Theorem, two rational agents who share common principles are obligated to act in accordance with one another's beliefs, and this means they must inevitably come to a mutual agreement.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 283/283 [02:42<00:00, 1.75it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Average Training Loss: 0.42189987072253815.\n", "Validation loss: 0.4528817282989621.\n" ] } ], "source": [ "import tqdm\n", "\n", "training_stats = []\n", "\n", "for epoch_i in range(0, epochs):\n", "\n", " print(f'Beginning epoch {epoch_i + 1} of {epochs}')\n", "\n", " total_train_loss = 0\n", "\n", " model.train()\n", "\n", " for step, batch in enumerate(tqdm.tqdm(train_dataloader)):\n", "\n", " b_input_ids = batch[0].to(device)\n", " b_labels = batch[0].to(device)\n", " b_masks = batch[1].to(device)\n", "\n", " model.zero_grad() \n", "\n", " outputs = model(b_input_ids,\n", " labels=b_labels, \n", " attention_mask = b_masks,\n", " token_type_ids=None)\n", "\n", " loss = outputs[0] \n", "\n", " batch_loss = loss.item()\n", " total_train_loss += batch_loss\n", "\n", " # Sample every 100 batches\n", " if step % sample_every == 0 and not step == 0:\n", "\n", " print(f'Batch {step} of {len(train_dataloader)}. Loss:{batch_loss}.')\n", "\n", " model.eval()\n", "\n", " inputs = tokenizer(tokenizer.bos_token + df.prompt.sample().iloc[0] + tokenizer.eos_token, return_tensors=\"pt\").to(device)\n", "\n", " sample_outputs = model.generate(**inputs,\n", " bos_token_id=tokenizer.bos_token_id,\n", " pad_token_id=tokenizer.pad_token_id,\n", " eos_token_id=tokenizer.eos_token_id,\n", " do_sample=True, \n", " top_k=50, \n", " max_length = 200,\n", " top_p=0.95, \n", " num_return_sequences=1)\n", " \n", " for i, sample_output in enumerate(sample_outputs):\n", " print(f'Example output: {tokenizer.decode(sample_output, skip_special_tokens=True)}')\n", " \n", " model.train()\n", "\n", " loss.backward()\n", "\n", " optimizer.step()\n", "\n", " scheduler.step()\n", "\n", " avg_train_loss = total_train_loss / len(train_dataloader) \n", "\n", " print(f'Average Training Loss: {avg_train_loss}.')\n", "\n", " model.eval()\n", "\n", " total_eval_loss = 0\n", " nb_eval_steps = 0\n", "\n", " for batch in validation_dataloader:\n", " \n", " b_input_ids = batch[0].to(device)\n", " b_labels = batch[0].to(device)\n", " b_masks = batch[1].to(device)\n", " \n", " with torch.no_grad(): \n", "\n", " outputs = model(b_input_ids, \n", " attention_mask = b_masks,\n", " labels=b_labels)\n", " \n", " loss = outputs[0] \n", " \n", " batch_loss = loss.item()\n", " total_eval_loss += batch_loss \n", "\n", " avg_val_loss = total_eval_loss / len(validation_dataloader)\n", "\n", " print(f'Validation loss: {avg_val_loss}.')\n", "\n", " training_stats.append(\n", " {\n", " 'epoch': epoch_i + 1,\n", " 'Training Loss': avg_train_loss,\n", " 'Valid. Loss': avg_val_loss,\n", " }\n", " )\n", "\n", "print(\"Training complete!\")\n", "\n", "df_stats = pd.DataFrame(data=training_stats)\n", "df_stats = df_stats.set_index('epoch')\n", "df_stats.to_parquet(\"./training_stats.parquet\", compression=\"gzip\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "8. Plotting Learning Curves." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 446 }, "id": "J1-hAY9Av4gT", "outputId": "799f3284-c8e7-46f4-e7f1-55638a6d81bc" }, "outputs": [ { "data": { "text/markdown": [ "| epoch | Training Loss | Valid. Loss |\n", "|--------:|----------------:|--------------:|\n", "| 1 | 0.654409 | 0.576611 |\n", "| 2 | 0.428551 | 0.53646 |" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABBIAAAI6CAYAAACad2unAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACfwElEQVR4nOzdd1hUZ/7+8fcUehFQwIKCCmIBFXsv0RRNorGmt93oZrPpZb/pm8RN2012N9lkUzU9cdUUWxJNFIwae0DBhhRREQQpIr3M/P7gx2wIqCDoDHC/ritXknPOPOczwKOce55isFqtVkREREREREREGsBo7wJEREREREREpOVQkCAiIiIiIiIiDaYgQUREREREREQaTEGCiIiIiIiIiDSYggQRERERERERaTAFCSIiIiIiIiLSYAoSRERERERERKTBFCSIiIiIiIiISIMpSBARERERERGRBlOQICIidvPVV18RHh7e6H9uvvnmC1rXzTffTHh4OP/85z+b3Na2bdtsdVdWVjZDdRdWfHw8d955J0OHDiUyMpLp06ezbNmy82prwYIFhIeHM3jwYMrKyhr0muLiYqKioggPD+ezzz47r/s++uijhIeH8/DDD9c6XvN9+Pnnnxvc1rFjx2yvS0tLO6966pOfn092dnatY//+978JDw/n+uuvb7b7NLdLLrmE8PBw/v3vf9u7FBERsSOzvQsQEZG2q3379gwaNKjO8YyMDDIyMnB2diYiIqLO+V69el2M8tqcDRs28Kc//YmKigq6dOlC+/btOXDgAE888QRpaWk89NBDjWpv9uzZfPrppxQWFhIdHc0VV1xxztesXbuW4uJiXF1dmTZt2vm+FYf24Ycf8p///Id//etf+Pv727scERGRRlOQICIidjN+/HjGjx9f5/i///1v3njjDfz9/fniiy8uel0vv/wyJSUl+Pr6Nrmt/v378+233wJgNjvuX7sVFRU8/vjjVFRU8Mc//pH77rsPg8HAkiVLeOqpp3j//feZO3cuXbt2bXCbffr0oV+/fuzdu5eVK1c2KEj4+uuvAbj88svx8vI67/dTn5rvQ+fOnZu13cZ68cUX6z1+4403MnXqVNzc3C5yRSIiIo2jqQ0iIiK/0blzZ3r27Imfn1+T23Jzc6Nnz5707NmzGSq7cA4cOMDJkycB+P3vf4/BYABg7ty5eHt7Y7FYiI+Pb3S7s2bNAqpHO5w6deqs12ZkZLB9+3YA5syZ0+h7nUvN98FRH9T9/Pzo2bOn3YMOERGRc1GQICIiIri6utr++8CBA7b/LiwspLS0FICAgIBGt3v11Vfj4uJCRUUFa9asOeu1y5cvx2KxEBISwtChQxt9LxEREbk4HHeMpYiIyDmEh4cDsHnzZl566SXWrVuH0WikX79+LFq0CLPZTGVlJatWreL7779n79695OfnYzabCQgIYPjw4dx+++107969Vrs333wz27dv58477+SBBx4AqhfdmzRpEh06dGDTpk0sW7aMJUuWkJSUBFSv2zB37lxmzpxp+zQfqhdbvOWWWwDYu3evbXrDo48+ytdff80zzzzD2LFjefPNN9m8eTO5ubn4+fkxduxY/vjHPxIUFFTnfVdWVvL111+zdOlSUlNTsVgsREREMG/ePJycnLjlllsYNmwYn3zySYO/lmFhYXTv3p3U1FSeeeYZlixZgqurK88++yzl5eWEhYURFRXViO9ONW9vby699FJWrVrFypUrmTt37hmv/eabb4D/jWIAsFqtrF+/nuXLlxMfH09OTg4AHTp0YPDgwdxyyy1ERkY2qJaan5cPPviAUaNG1Tq3d+9eFi5cyK5du8jLyyM4OJjrrruOcePGnbXN7du3s3TpUmJjYzl58iSVlZX4+voycOBAbrjhBkaOHGm7tuZ7XuP2228Hqqc6zJw50zalZ9CgQfVO6VmzZg1Lly4lISGBwsJCfHx8iIqKqnOf377fPXv28NNPP/Hxxx+zf/9+Kioq6N69O9dccw033ngjTk5ODfr6NVVpaSmLFy/m22+/JSkpiYqKCgIDAxk1ahS/+93vCAkJqfOaU6dOsWjRItavX09aWhoGg4GAgACGDRvGLbfcYnuPv7Zx40Y+++wzdu/eTUFBAZ6envTq1YsrrriCOXPm4OzsfBHerYhI66YgQUREWrx77rmH2NhYevXqRW5uLv7+/pjNZkpLS5k/fz7btm0DoEuXLvTq1YucnBwOHz7M4cOHWblyJZ999hl9+/Zt0L2sViv/93//x/Lly/H29qZ79+4cPXqUuLg44uLiSE1NrbNbwNns27ePV155heLiYrp160ZwcDBJSUksW7aM9evX89VXX9GpUyfb9WVlZdx3331ER0cDEBwcjIeHBzt37mTr1q1ceumljfjK1fbMM89w++23k5SUxF133UVhYSEJCQn4+/vzr3/9C5PJdF7tzp49m1WrVrFjxw4yMjJqvZ8au3fvJjU1FbPZzMyZM4Hqr/XDDz/MqlWrAAgMDCQsLIz8/HyOHz/OihUr+Pbbb/nPf/5T71obDbVixQrb+hDt2rUjLCyM9PR0nnvuOYYNG3bG17366qu8++67QPW0hB49elBYWEh6ejpr165l7dq1PPfcc1x77bUAhISEMGjQIH755RegOnzy9PSkffv2Z62voqKCBx54gB9++AEAf39/evfuzbFjx2z3ue2223jsscfqff2//vUvFi1ahLu7O8HBwWRlZbF//37279/P7t27m2V3knPJzMzk9ttvJyUlBaj+Wnh4eJCcnMx///tfvvnmG1566SWmTp1qe01+fj5z584lLS0NZ2dnunXrhpOTE2lpaSxbtozly5fzn//8p1bY8/HHH/P8888D1SNoevfuTV5eHtu3b2f79u18//33fPjhh+f9sywiItU0tUFERFq8hIQEPvnkE1asWMFPP/3EU089BcB7773Htm3b8PX1ZenSpaxfv54vv/ySmJgYli5dir+/P8XFxbz99tsNvldOTg6rVq3iiSeeYOvWrXz11Vds2rTJtsPABx98QG5uboPbW7JkCaGhoXz77besWbOG1atXs3jxYjw8PMjNzWXRokW1rn/zzTeJjo7Gx8eHjz/+mLVr1/L111+zfv16hg4danvYPB8jRozgjjvuAGDr1q0kJCQwadIkli1bRmhoaJPaDQoKwmq1snLlynqvqRmNMGHCBDp06ABUL7y4atUqXF1deffdd/npp5/48ssvWbduHatWrSIsLIzKykpef/31867t6NGjPPHEE1RUVHD77bezadMmvvzySzZv3sxDDz1kW7Pht7Zt28a7776L0WjkhRdeYPPmzXz11VesXbuWdevW2QKI1157DYvFAsCdd95Za6TBY489xhdffHHOEOSll17ihx9+wN3dnddee802Imbz5s08/fTTmM1mPvzwQz788MN6X79o0SL+8Ic/sHXrVr755hs2btzI/PnzgeoFKPfv39/YL1ujVFVVceedd5KSkkL37t1Zvnw5a9as4auvvmLz5s3MmTOHsrIy/vznP7N7927b695//33S0tIYNGgQGzZsYPXq1XzzzTf89NNPXHbZZVRUVPDCCy/Yri8oKOCVV14B4B//+AcbN27kyy+/ZP369SxcuBBXV1dbmCAiIk2jIEFERFq8KVOm2ObUG41GfHx8APj5558xGo3cfffd9O/fv9Zr+vfvz/XXXw9AYmJio+53ww03cMstt9g+1XRxceHxxx/HYDBQWVnJnj17GtyWk5MTb7zxRq3pFVFRUbZP5Ws+vYbqB6UPPvgAqN5ZYvjw4bZzgYGBvPXWW+e9nWBJSQkvvviirf0al156KR07djyvNmsYDAbb+6kvSCgvL7ftqPDrRRY3b96M2WzmhhtuqPOw3bNnT1vo0djv368tXLiQ8vJyhg0bxqOPPmob9m4ymZg/f76t7t/auHEjTk5OXHrppcyaNQuj8X+/UnXs2JH77rsPqA6eaqZjnI/MzEwWL14MwIIFC2rtfGEymbjxxhtt93rjjTcoKiqq08bEiRN58MEHcXFxsb3u/vvvp127dkDtn7EL4fvvv2f//v24uLjw3nvv0bt3b9s5T09P/vrXvzJ27FgqKipqjY6oWavj8ssvr7XwqZeXF08++SSjRo1i6NChtjU8UlNTKSsro127drVGNgCMGTOG+fPnc/nll1+0qRwiIq2ZggQREWnxBg8eXO/xL774gj179nDdddfVe75m9f6aB5GGmjhxYp1jvr6+toedgoKCBrcVERFR78N/jx49ADh9+rTt2IYNGygvL6dz585MmDChzmu8vLzO+OB7Njk5OVx33XV8+OGHODk58eSTT9KvXz8A/vKXv9h2a7Barfzwww9kZGQ0+h4zZ87EaDSSmJjIwYMHa52LiYkhPz+fwMBAxo4dazv+6quvsmfPHts6Fb9V8/0rLy+3ferfWDExMbb66lMTNv3Www8/THx8PH//+9/rPf/rxSsb+/P1az/99BOVlZX4+/vXeTiucdNNN+Hk5MTp06frHUFxySWX1DlmMpkIDg4GGvfzej7Wr19vq+NM24fWrBexfft22898zZoJ77//PitWrKjVFwIDA/nggw9YsGCB7WsdFBSE2Wzm1KlTPProo7UWDQX405/+xOuvv85ll13WrO9PRKQt0hoJIiLS4p3tU3gnJydOnTpFXFwchw8f5ujRoxw+fJj9+/fbtjts7ENoYGBgvcdrHmiqqqqara3KykrbsUOHDgHUu8BcjYiIiAbfu8b999/PgQMHCAgI4IMPPiA0NJTJkycze/ZsTp48yd13382XX35JZmYmd999N1A9FaFPnz4NvkenTp0YNWoUmzZtYuXKlbXeQ80ChDNmzKgzd91kMlFWVsauXbtISUmxff8OHDhQK9CwWCy1RgU0RGlpqa2NsLCweq/p3bs3BoMBq9Va55zBYMBgMLBz506SkpI4evQoR44c4eDBg6SlpdWq7XzVrCnQp0+fM74/d3d3unfvTmJiIqmpqXWCrub8eT0fqampALZwqj4156qqqkhLSyMiIoLf//73fP/992RnZ/PII49gNpuJjIxk1KhRjBs3jgEDBtRa2LR9+/bccccdvP3223zzzTd88803+Pv7M2LECMaMGcO4ceOaZUtXERFRkCAiIq3Arz/9/bXCwkKef/55Vq5cSUVFhe24k5MT/fr1o0+fPmzcuLHR9zvX0Oj6HjrPt61fy8vLA6ofHM/E09Ozwe0B7Nixw/Yp9vPPP29bC6FTp078+9//5pZbbiEzM5N7773Xdq5r166NChFqzJ49m02bNrF69WoeeughDAYDubm5bNy4EYPBwOzZs2tdXzPU/bPPPqv1qb7JZKJXr17079//nFtKns2pU6ds/32mr6mzszNubm4UFxfXOm61Wlm4cCHvvPNOrU/0DQYD3bt3Z/r06Sxfvvy8a6tRWFgIVI82OZua73t9Uxua8+f1fDTkPfz657bmPXTq1Inly5fzzjvv8P3333PixAliY2OJjY3lzTffpEuXLjz++ONMnjzZ9toHHniAiIgIPv30U3bu3El2djYrV65k5cqVmM1mpk6dytNPP33Or6eIiJydggQREWm17rrrLrZt24arqys33XQTAwYMICwsjODgYJycnFiyZMl5BQn2UjOUv+bBrD71PUieTVxcHFD9kPfbrQ4HDRrEs88+y+OPP86uXbvYtWsXgG0XgsaaNGkSPj4+HD9+nJ07dzJ06FBWrVpFRUUFI0eOrDPs/emnn+arr77CZDJx7bXXMnToUMLCwggJCcHV1ZXNmzc3KUioWUsDzvw1tVqtlJeX1zn+5ptv8u9//xuAqVOnMm7cOEJDQ+nRowceHh4cPny4WYIEDw8PoPYUl/rUhBk11zuShryHX4cxv34P7du35/HHH+fxxx/n4MGDbN++na1bt7Jp0ybS09O59957Wbx4ca01UC699FIuvfRSCgsLbbs1bNiwgZSUFNsUicYssCoiInUpSBARkVYpLi7Otu3jO++8w4gRI+pck5mZebHLapJevXoBZ19c8Lfzws+l5tPq0tJSysvLbYsN1pg1axaJiYm2HQHat2/PzTff3Kh71HB2dmbatGl8/PHHrF69mqFDh7J69Wqg9iKLACdOnLBNeViwYAGzZs2q015Tv38uLi506dKF9PR09u/fX2dBTqieWvDr6SVQPVJi4cKFQPW8+3vvvbfZa6tRs1bG/v37zzh9o7CwkMOHDwPY1j1wJD169GDfvn3s3bv3jNfUrMNhMBjo1q0bUP0zkJqaysCBA3F1dSU8PJzw8HBuvvlmTp48ydy5c0lPT2fVqlX079+f0tJS29ehd+/eeHp6cskll3DJJZfw6KOP8u677/Lqq68SHR3N6dOnNSpBRKQJtNiiiIi0SseOHbP9d33rBpSUlNgeYi/0HPHmMmHCBJycnMjIyGDTpk11zpeVldm2UWyoQYMGAdUPx2d67a93bcjNzbUtnnc+aqYv/Pjjj6Snp7N79258fHy49NJLa113/Phx25D7+ubWWywWvvrqK9v/n+/3sGbhvf/+97/1trF06dI6x/Ly8mxTHc407//Xr/ttEFEzr78hUwrGjRuH2WwmOzvbtrPFb3366adUVlbi5uZm23bSkdSs2bB+/XqOHj1a7zUff/wxAAMHDsTb25vKykquueYabr31VtuCmL/WoUMHW7BWswbFf//7X6ZPn84jjzxS79d21KhRtv9uKX1eRMRRKUgQEZFWqeaTXKgehv7rNRKSkpKYN2+e7dPLkpKSi13eeenQoQM33HADAI8++mitbfvy8vK4//77awUoDdG/f3/b1op///vf2bFjh+1cbm4uf/3rX3nppZeA6k+7rVYrf/7zn8/4UHsu4eHhREREkJ2dzd/+9jesVitXX311nZEQwcHBtoUX33vvvVrfo+PHj3Pfffexc+dO27Hz/R7+/ve/p127duzdu5fHHnvMNsXBarXy+eef2x5wf83Pz882LeLDDz8kPz/fdi43N5dnnnmGVatW2Y79dteGmvUYjh8/fs76OnXqxNy5cwF46qmn+P77723nLBYLn3/+uW2KxV133XXRPmUvKSkhNzf3rP/UTAm54oorCA8Pp6ysjHnz5tUaNVNYWMhTTz3Fpk2bMJvNPPzwwwCYzWauvPJKoHrtjt9uqbp27VpbmFYzJWfKlCk4OTmRmJjICy+8UGtdi9zcXNvWkgMGDKg1rUVERBpPUxtERKRV6tu3L1OmTOG7775j0aJFfPXVVwQFBZGfn2972B49ejSbN2+mqKiIwsLCRi9UaA8PPvgg+/fvZ/v27Vx//fWEhITg4eHBoUOHqKysJCIigoSEhDq7H5zNyy+/zLx584iPj+emm26yrUGQkpJCeXk5bm5uPP3001x++eX87ne/Iy4ujgceeAAvL69a2zU21OzZs0lISLA9FP92WgNUP6zffvvtvP/++6xatYqYmBiCg4MpKioiLS0Nq9XK8OHD2bVrF5WVlWRmZp7Xw6G/vz+vvfYad999N8uXL+eHH36gZ8+eZGZmkp2dzSWXXMKGDRtqfYJtNpu57777ePbZZ9m+fTsTJkwgJCSE8vJy0tLSqKyspG/fvmRkZJCXl0dmZmatkQt9+/Zlx44dPPfcc3zxxRfccMMNdRaa/LXHHnuMEydOsG7dOu677z4CAgLo2LEjR48etS3AedNNNzFv3rxGv//ztXDhQtv0jjN58803mTx5Mmazmf/85z/MmzePlJQUpk+fbvu5TU5OprS0FFdXV5599lmGDBlie/0DDzzArl272LdvH3PmzKFLly74+vqSlZVFVlYWUL09Z02QEBAQwAsvvMAjjzzCxx9/zLJly+jWrRtVVVUcOXKEsrIyfH19ef755y/cF0ZEpI3QiAQREWm1Xn31VRYsWEBkZCRWq5WDBw9SXl7OxIkTeeedd1i0aBGdO3cGaNJw/YvJ1dWVRYsW8eijj9K3b1+ysrI4fPgwQ4YM4aOPPrIN1T/TThb18fX15fPPP+eJJ55gwIABZGdnk5qaSufOnbntttv49ttvmTlzJh4eHixcuJArrriC6dOnM2bMmPN6D1dddZWtvv79+59xO8tHHnmE1157jcGDB+Ps7MzBgwc5ffo0I0eO5O9//zsfffQRUVFRAERHR59XLQAjR47k66+/5tprr8XX15eDBw/i5ubGPffcw+uvv17va2644QY+/PBDRo8ejZeXF4cOHSInJ4cBAwbw9NNPs2TJEttIj9/W9sILLzB69GjMZjOpqam2kTFn4uzszJtvvsk///lPxowZQ3l5Ofv378fNzY0rr7ySjz/+mKeeeqrWVoiOJigoiC+//JI///nP9O/fn+zsbJKTk+nUqRO33HILy5cv55prrqn1Gg8PDz755BPuvfde+vXrR35+PgcOHMBqtTJp0iTeeecdnnnmmVqvmTZtGp988gmXX3453t7eJCcnk56eTnBwMH/4wx/49ttvz7jVp4iINJzBeqH3/BEREZGL5uWXX2bRokXMnTuXBQsWXLD7nGnhPxEREWn99BuAiIhIC5GamsqECRO47bbb6t2S0Gq12raz7Nu37wWtRSGCiIhI26XfAkRERFqIrl27UlZWxpYtW3jllVdqLeJ3+vRpnnnmGQ4dOoSfnx9XXHGFHSsVERGR1kxTG0RERFqQ77//ngcffJCqqio8PDxqLSZXWlqKt7c3//73vxkxYoS9SxUREZFWSkGCiIhIC5OSksKHH37Irl27yMjIAKq3CRw/fjw33XSTbQFJERERkQtBQYKIiIiIiIiINJjWSBARERERERGRBlOQICIiIiIiIiINZrZ3AW2d1WrFYmn47BKj0dCo60XkwlKfFHE86pcijkf9UsRxGI0GDAZDk9pQkGBnFouV3NyiBl1rNhvx9fWgoKCYykrLBa5MRM5FfVLE8ahfijge9UsRx+Ln54HJ1LQgQVMbRERERERERKTBFCSIiIiIiIiISIMpSBARERERERGRBlOQICIiIiIiIiINpiBBRERERERERBpMQYKIiIiIiIiINJiCBBERERERERFpMAUJIiIiIiIiItJgChJEREREREREpMHM9i5ARERERETEXqxWK1VVlVitVnuXItIoBoMBk8mMwWC46PdWkCAiIiIiIm1OZWUFp0/nU15eitVqsXc5IufFYDDi7OyKl5cPZrPTRbuvggQREREREWlTysvLyMvLwmg04uHhhZOTC0ajEbj4n+yKnB8rFouFiooySkqKyMnJxNc3AGdnl4tydwUJIiIiIiLSphQW5mMymfHzC/z/AYJIy+Ti4oa7uze5uScoLMzHzy/wotxXvUZERERERNqMqqoqystL8fDwUoggrULNyJry8lKqqqouyj01IqGFsFis7D+cS0VqHk4GKz07t8No1NArEREREZHGsFiqH7Qu5nxykQvNZKr+ebZYqjCZTBf8fgoSWoBdB7P4/MdD5J0usx3z9XLhhslhDA4PsGNlIiIiIiItlT6Uk9bjYu/coLE8Dm7XwSze/DqhVogAkHe6jDe/TmDXwSw7VSYiIiIiIiJtkYIEB2axWPn8x0NnveaLHw9hsWjPWxEREREREbk4FCQ4sMSj+XVGIvxW7ukyEo/mX5yCREREREREpM3TGgkOLL/o7CFCY68TERERERFpqIUL3+GDD95r1Gtuv30ev//9H5q1jtmzryYzM4MPPviMsLDw825nzJghAHz3XTReXl7NVV6b1GKChNTUVN5880127dpFTk4OHTt2ZMqUKcyfPx8PD49GtVVUVMQHH3zA999/z9GjRzEajfTt25dbb72Vyy67rM71X375JY8//vgZ2wsLC2PVqlWNfk/n4uPh0qzXiYiIiIiINFRoaBiXXTal1rGSkhI2bowBqHOu5jXS+rWIIGHPnj3ceuutFBcXM2DAACIjI/nll194++23Wb9+PZ9//nmDE6WsrCxuu+02kpOT6dChA2PGjCEnJ4edO3eyc+dOnnzySW6++eZar9m7dy8Aw4cPJyCg7i4JnTp1avqbrEevrj74ermcdXqDn5cLvbr6XJD7i4iIiIhI2zV+/CWMH39JrWMZGcdtQcLTTy+4KHW89tpbVFZW0qlT5ya189lnywAa/UG01OXwQUJFRQX3338/xcXFvPTSS8yYMQOA0tJSHnjgAdavX8+rr77KM88806D2nnzySZKTk5kyZQovv/wyLi7Vn+Zv2rSJO++8k5deeolLL72Ujh072l5TEyQ888wz9OjRo3nf4FkYjQZumBzGm18nnPGa6yeHYTRq6xoREREREUdnsVhJPJpPflEZPh7VHwjqd/lz69IlqFnaCQ4OaZZ2pAUECatXryY9PZ3Ro0fbQgQAV1dXXnjhBS655BKWLVvGgw8+iLe391nb2rNnDxs2bCA4OJi//e1vODs7286NGTOGGTNmsGnTJnbv3m0LEqqqqjh48CCenp507979wrzJsxgcHsCfZkTw+Y+H6oxMmDS4C4PD646QEBERERERx7LrYFad3+l9vVy4YXJYq/qd/ttvV/LCC89yxx134uTkxBdffEpJSTE9eoTy1lsLMZvNFBcX8dVXS9m06SfS0g5TXFyEu7sHoaFhXH31DC677Ipabda3RsLdd88nLu4XvvpqNTt2bOPrr5dx+HAKZrOZfv36c/PNtzFw4KBa7dS3RsLs2VeTnZ3FunWbWbp0Md9+u4L09HTc3FyJihrMbbfNq3e6RlLSIT75ZBG7d8dRUFBA167dmDVrLsHBIfzpT/OYMuUqnnjimQvwFXYMDh8kREdHA9S7doGvry/Dhw8nOjqaTZs2MXXq1LO29d133wFw66231goRaixYUHdoTnJyMiUlJQwbNgyDwT5p4eDwAKLC/Ek+fooKq4Gd+zKIiT1O7KGTzJ0YipPZZJe6RERERETk3HYdzKp3lHHe6TLe/DqBP82IaFVhAsDatd9x9OgRBg0aCoCPTzvMZjMFBae46647OHw4lfbt2xMZ2R+TyUxqagqxsbuIjd1FVlYmN910W4Pu8/rr/yAmZh2hob0YPnwkhw4lsm3bz+zcuY1//es/REUNblA7Tz/9GBs3xtCnTz9GjhxFQkI8MTHr2bZtKwsXfky3biG2a7ds2cyTT/6ZsrIyQkN7ERHRn+TkQ/ztb88TEdG/cV+oFsrhg4TExEQAwsPrX50zLCyM6OhoDh48eM4gISGhuvMOHDiQ4uJi1qxZQ3x8PFVVVURGRnL11VfbpjrU2LdvHwCBgYG8/PLLREdHc/z4cXx9fZk4cSJ33XVXvesmNDej0UCfED98fT3oHeTN7qQccgvK+HHXMaYMD77g9xcRERERaUusVivlFZYmt2OxWPnsh8SzXvP5j4foG+zXLNMcnJ2MdvsA9NeOHEnj4Ycf45prZgFgsVR/LT/6aBGHD6cyevRYnn/+75jN1Y+kVquVTz/9kHfeeZP//vfzBgcJmzf/xIsvvsLYsROA6hHlTz/9KBs2RPPppx81KEioqqoiNnYX//nP+0RGDgCqp9Lff/9dJCTsYcmSL3j44ccAKCgo4Pnnn6GsrIz/+78nufrqa2z1f/DBeyxa9G5Dv0QtmsMHCSdOnACqH+Tr4+/vD1Qvonguhw8fBiAnJ4d77rmH9PR027nFixfz9ttv884779CzZ0/b8ZrwYeXKlXh6ejJ06FA6derE3r17+eKLL/jhhx/46KOPCA0NPa/3B2A2Gxt0nclUfZ2bqxOzJ/TkvZX7WP1zGhOiuuDlXneEhYhcWDV9subfImJ/6pcijsfR+qXFcu6HbKvVyouf/kJS+qmLUFH1yIQ//eunZmkrNKgdj904yO5hgru7B1ddNd32/0Zj9fffy8uLESNGcddd99lCBACDwcCMGXN45503ycvLpaysFBcX13Pe5/LLp9pCBACTycScOdezYUM0qanJDa732mtvsIUIUD2Vfvr0mSQk7CEl5X/trFnzLfn5eUyadKktRKip/3e/m88vv+wkLu6XBt+3uZlMhnM+XzbHj4bDBwklJSVA9TeyPjXHi4uLz9lWYWEhAA899BBBQUG8/PLL9OnTh2PHjvHKK6+wceNG5s2bx4oVK/D09AT+NyLh0ksv5aWXXrIdP336NE888QRr1qzhvvvuY8WKFZhMjZ9iYDQa8PVt3Kqh3t5uXDkulB92HuNwRgE/7Ern99MiGn1vEWke3t5u9i5BRH5D/VLE8ThKvywtNXHypPGsD1xWq7VZHrbswUD1B5UXKkj4dSBU39evZlRFz56huLrW/bDzjjvm1zlWUlLC4cOpJCTssR2zWqvqtG8yGW3Hat7fgAED6lwXGFg9Yry0tKTeGs1mY53jAwcOrKedwP/fTqnt3M6dWwGYNOnSetu+7LIriIv7BYPh3A/0zcliMWA0GmnXzv2Mz87NyeGDBJPJZBsGczZWq/Wc15SVVS9s4urqyscff2xbYKN37968/fbbzJgxg8TERJYtW8Ztt90GwKJFizh27BjdunWrta6Cl5cXL7zwArGxsSQlJbFp0ybGjx/f6PdnsVgpKDh3CALVHcfb242CghKqqizMntCTV76IZdWmFMZGdMTf1zH+cBZpK37bJ0XE/tQvRRyPo/XL8vIyLBYLVVVWKivPXM+jNw5qlqkNiUfz+efS3ee87oE5A5plW3dnJyNVVVbg3M9H5+PX38P6vn4WS/V9vb29z/j1zco6wddfL2P37liOHj1CXl4uQK3wo6LCUuf1VVX/O1bz/Ofu7lXPfYz/v5a6bdTU/dvj7u6e9VxrqNNORkYGAP7+gfW2HRjYyVbf2X6+mltVlRWLxcKpU8WUlFSd9dp27dxsI0TOl8MHCR4eHuTn59tCgN8qLS0FwN3d/Zxtubm5UVhYyMyZM20hQg2z2cx1113Hc889x5YtW2xBgqur6xmnLXh6ejJixAhWrFhBfHz8eQUJUH8HPJuaDtSnmw99Q3zZdziPpdFJzJ/W77zuLyJN8+u/1ETEMahfijgeR+mX1Q/Z52YwGHBxbvqi5v26++Hr5VJnB7Zf8/NyoV/35lkjwVGc6UE1JmYdzz77JBUVFbRv34G+ffsRHBxCaGgvBg4cxMyZVzbqPs018qKh7VRWVgKcMRRryAfcF9K5AjKA5ijRMSYqnUXNQobZ2dn1nq9ZG6EhCx62b98egKCg+vchrTmem5vb4Po6dapOnGqmYFxMBoOBOROqQ46t+05wOLPgotcgIiIiIiJnZjQauGFy3e0Df+36yWGtKkQ4k5KSEl56aQEVFRU88MAjfPPNd7z88j+56677uOyyKRdlSH5TBQRUT3c4cSKj3vMnTmRezHLsxuGDhJrdGg4dOlTv+aSkpFrXNaStmgUcf6smrKgJHLKzs3nyySe55557bMnTb9UMbakJFC624I5ejOxX/cO8ZH2S3RMwERERERGpbXB4AH+aEYGvV+0d4vy8XFrl1o9nkpKSTGFhIT4+PsyadW2dUQBbt/5s+2+r1f6jV+ozdOhwAH76Kabe8xs2RF/EauzH4YOECRMmALB27do65/Ly8ti2bRsuLi6MHDmywW2tXr263mDgp5+qV0odNmwYUL0OwsqVK1m7di3btm2rc/2pU6eIiYnBYDAwduzYhr6lZjdjXA/MJgMHjuQTn9Lw0RQiIiIiInJxDA4P4O9/HMWfr49i/rS+/Pn6KP72x1FtJkQA8PHxASA/P5/du+Nqndu1awevvfaK7f/Ly8svYmUNd+WV0/Hy8mb9+h9YvXpFrXNLlnzO9u1bgOabcuGoHD5ImDx5Ml26dCEmJobFixfbjpeWlvLEE09QXFzM3Llz8fPzs52rqKggOTmZ5ORkKioqbMenTp1KUFAQKSkpLFiwoFaYsHTpUtasWYOPjw/XXHMNUL0+wsyZMwF47rnnam0XeerUKe69914KCgqYPn06wcHBF+pLcE4d2rkxeXBXAJbGJNkWOBEREREREcdhNBroHezLiL4d6R3s2yamM/xaly5BjB8/EYB77/0D9957J08++WduueVa7rvvjxgMBtvo8JycHHuWekY+Pj488cRfMBqNvPjic9x++w08/fRj3HzzXF5//R8EBXUDwGRy+OUIm8Th352rqysvv/wyd9xxB3/5y19YsmQJQUFBxMbGkpWVRUREBA888ECt15w4cYKpU6cCsG7dOtvaB25ubrz22mvccccdLF68mOjoaPr3709aWhqJiYm2e/06lHjooYfYt28fcXFxTJ06lUGDBuHq6sqOHTs4ffo0gwcP5umnn754X5AzuHJUMBv3HCc9u4jNCRmM7d/Z3iWJiIiIiIjU8pe/PM/SpV+wZs237N+/F4vFQseOnbj22hu54Yab+fTTj1i69AtiYtYRHt7b3uXWa8yY8bz99iI++mghe/bsJi3tMMHBITz11HPk5eXyxhv/wtPT095lXlAGawuZVJ+YmMgbb7zB9u3bKS4uJigoiClTpnD77bfX+SYdO3aMSZMmAbWDhBrZ2dm88847xMTEkJmZiY+PD8OHD2f+/Pn1rrVQXl7OJ598wsqVK0lNTcVoNNK9e3emTZvGjTfeiJOT03m/r6oqC7m5RQ261mw24uvrQV5eUb0rcX6/7QhLopPw9XLhhfkjcHFq+iqzInJm5+qTInLxqV+KOB5H65cVFeXk5GTQvn0nnJycz/0CkV85cSKTsrJSAgM74eLiUuf8q6++zNdfL+WRRx5n+vSZF62uxvxc+/l5YDI1bXJCiwkSWqvmDBIqKqt4/N1t5BSUMmt8D64cGdLM1YrIrznaL0Yion4p4ogcrV8qSJCmWLVqOS+9tIDBg4fyyiuv1/pQec+eOB566B6qqiwsXvyVbYeHi+FiBwkOP7VBGs7JbGLm+B68t3Ifq7ekMXZAZ7zd9YejiIiIiIhIc7jkksl8+ulH7Nq1gxkzptC3bwTOzi5kZmZw4MA+TCYTjz761EUNEezB4RdblMYZ3jeQboGelJZXsWrzYXuXIyIiIiIi0mq4u3vw3nsfceeddxMY2Im9e+P5+eeN5OfnccUVV/Luux8xZcpV9i7zgtOIhFbGaDAwd2IoryyOIzo2nUlDggj0dbd3WSIiIiIiIq2Cl5cXN910GzfddJu9S7EbjUhohfqG+BHRw48qi5WvNqTYuxwRERERERFpRRQktFJzJoRiAHYcyCL5+Cl7lyMiIiIiIiKthIKEVqprgCejIjsCsDQ6GW3OISIiIiIiIs1BQUIrNmNsD5zMRhKP5rM7Kcfe5YiIiIiIiEgroCChFfPzduXSIV0BWBqTRJXF/vv2ioiIiIiISMumIKGVmzoiGE83JzJyitm0J8Pe5YiIiIiIiEgLpyChlXN3NXP1qBAAvtmYSll5lX0LEhERERERkRZNQUIbMCGqCx3auXKqqJy1O47YuxwRERERERFpwRQktAFOZiOzxvcE4NttRygoKrdzRSIiIiIiItJSKUhoI4b2CSCkoxdl5VWs2Jxq73JEREREREQcmtVqtXcJDktBQhthNBiYMzEUgA1xx8nMLbZzRSIiIiIi4sgeeeQ+xowZwoIFTzfo+g0bohkzZghz5kxv1EP4L7/sZMyYIdx22w22YxkZxxkzZghXXDGhwe0sXPgOY8YM4bXXXm3wa85ky5ZNPPTQPbWOnU9NrZWChDakT7Av/Xu2p8pi5csNyfYuR0REREREHNjVV88A4KefoikpKTnn9atXr/j/r5uOwWC4oLVdSMnJSTzyyP0cOZJm71IcltneBcjFNXtCT+JTcth1MJuk9FOEdmln75JERERERMQBjRo1hg4d/Dl5MpsNG9ZzxRVXnvHanJyTbNv2MyaTiSuvnNbke/v7B/DZZ8swGi/+Z98WS/073dmzJkejr0AbE+TvyZjITgAsiU7SvB8RERERkYvEYrWQmJfMzsxYEvOSsVgt9i7prMxmM1OnXg3AmjXfnvXa779fTVVVFWPGjKN9+w7Ncu/g4BC6du3W5LaaiyPWZC8akdAGXTO2B9v2nSDp2CliD51kUC9/e5ckIiIiItKqxWXFs/TQCvLLTtmO+bi0Y07YNAYGRNqxsrO7+upr+OSTD9i1awcnT2bToUP9zw7ffrsSgOnTZwGQkpLM0qVfEBv7CydPZmGxWPD19SMqajA33XQbISHdz3rfjIzjzJkzDU9PT77/PqbWudTUFD7+eBGxsbs4fbqAnj3DuOWW3521vS1bNrFy5XL2799Lfn4eZrOZwMBOjBo1hptuug1vb28Ann/+Gb77bhUAmZkZjBkzhI4dO7Fs2cqz1pSbm8Pnn3/C5s0/ceJEJs7OzoSG9uLKK6dxxRVX1prq8csvO7n33ju56qrp3H77PN5//222b99CQUEBgYEdmTTpMm666Tbc3NzO+p7sSSMS2iBfLxcuG9YVgKUxyVRWOXYSKiIiIiLSksVlxfNewie1QgSA/LJTvJfwCXFZ8Xaq7Nw6derM0KHDsVgsrF37Xb3XJCTsIS3tMJ06dWHo0OFs2rSB3//+Jlau/AZ3dzdGjBhF//4DKSoq5PvvVzNv3q0cO3b0vOr55ZedzJ9/Gz/88D3t2vkwcuQYCgoKePTRB4mJWVfva95669888sj9bN78E126BDFmzHjCwsI5ejSNzz//mHvu+QOVlZUARET0Z+TI0QC4ublx2WVTGDduwllrOnQokVtuuZbFiz+lpKSEkSNH07t3X/btS+D555/hySf/bGv/19LTj/H739/Exo0bCA0NJypqMJmZGXz00UIef/zh8/r6XCwakdBGTRkeTEzscU7kFrNxTwYTo7rYuyQREREREYdhtVopt1Q0uR2L1cKSxOVnvWbpoRWE+4VhNDT9c15no1OzL3Q4bdoMtm/fypo133LDDbfUOV+zyOK0addQVVXF3/72AhUVFTzzzPNMnny57brTp0/z4IN3s3//Xlas+Jq77rq3UXWUlZXywgvPUlJSzH33PcycOdcBYLFYeOedN/nss4/qvCYp6RCff/4xnp5evP32olojIdLSDjN//q0kJx9ix45tjBw5munTZ9K3bz+2bNlMu3Y+PP30grPWVF5ezmOPPUR+fj4zZszh3nsfxMnJCagOCh5++F42bIjmgw/eY968P9Z6bWzsLkaMGMXTTy/A27t67bp9+xK466472LFjG3v3JtCvX0SjvkYXi4KENsrNxcz0Md357IdElm9MYUTfQNxc9OMgIiIiImK1WvnHL/8h5dTFWbU/v+wUD//UsC0Wz6VHuxAeHPTHZg0TxowZj59fe5KTkzh06CBhYeG2c6Wlpaxf/wMmk4mpU68mNzeHoUOHYzKZaoUIAF5eXlx66RXs37+XzMyMRtexadNGMjMzGDRoiC1EADAajdx5591s27aFpKTEWq8pKDjFhAmTiIiIrDOdIjg4hEGDhrJxY8x51QMQHf0jmZkZhIb24oEHHqm1EGOXLkH85S/Pc8cdN7NkyRfccsvtuLi41nr9I488bgsRAPr2jaB//4H88stOUlOTFCSI4xk/sDM/7DxKVl4Ja7Yf4ZqxPexdkoiIiIiIg2i52xc2t5pFFz/99EO+/351rSAhOvpHioqKmDDhEtsii0899VydNk6ePElKShJ79sQBUFHR+NEeu3ZtB2DkyDF1zhkMBsaNm1AnSBg0aAiDBg2pdayqqorMzAwSEw+QkXH8vOuB6lEFAJMmXVrvbg69e/ehW7dgjhxJY//+fQwcOMh2LiAgkMDAjnVeU7MORUlJ6XnVdDEoSGjDzCYjs8f35D/fJLBm+1EmRHXBx9PF3mWJiIiIiNiVwWDgwUF/bJapDUn5Kfxn96JzXnfXgN8R6tP0D/YuxNQGqF508bPPPuLHH9dw1133YTKZgP8tsjht2sxa1+/atYNvv13BoUOJHD+eTmlp9UPx/2pr/O5xJ09mA9UP4PXp3Ln+6doVFRX8+OMaYmLWcfhwKpmZGVRVVTW5nl/XdKZ715w7ciTNdm0NLy/veq+v+dpaHXhXDwUJbdzgcH96dPYm5XgBKzalcssVve1dkoiIiIiI3RkMBlxMzk1up49fL3xc2tVZaPHXfF3a0cevV7OskXChdOkSxKBBQ9m1azvbt29l5MjRpKcfIy7uFzp3rl5kEarXK/jLXx4nOvpHDAYDPXuGMX78JQQHh9C7d1/S04/x6qsvNbGa+h/6ax7Afy0vL5d77vkDhw+n4uzsQu/efRgyZBjBwd2JjOzPsmX/PefWlmetpAH5g8VSHQg4OdX+eboQgc/FoiChjTMYDMydGMpLn/3CT7szmDykK507eNi7LBERERGRVsFoMDInbBrvJXxyxmtmh01z6BChxrRpM9i1aztr1nzLyJGj+f771VitVq6++hrbQ/EPP3xPdPSPBAQE8sorr9OjR89abSxe/Ol539/fPwDANh3ht7Kzs+sce+edNzl8OJXBg4exYMFLtm0eaxQWnj7vegA6dKieznH8ePoZr0lPPwaAn59fk+7lSBz/p1UuuF5dfYgK64DFauXLDcn2LkdEREREpFUZGBDJvIib8XFpV+u4r0s75kXczMCASDtV1jjjxk3Ax8eXzZs3UlZWxo8/rsFsNnPlldNs18TH7wZg0qTL6oQIAFu3/gz871P6xhg2bAQAGzasr/f85s0/1TlWU8+1195QJ0QoLi4iPn5PPfU0fKRAVNRgANat+6He97R//17S04/h6elJeHifBrfr6BQkCACzJ/TEaDAQe+gkiUfz7V2OiIiIiEirMjAgkgWjHuO+qD9we9/ruS/qDzw36rEWEyIAODk5MWXKVZSUFPPppx9y9OgRxowZh59fe9s17dr5ALB9+1bbughQvU7BW2/9m507qxdMLC8vb/T9R44cQ3BwCPv37+Odd96s9eD+2WcfsXt3bJ3X1NSzceMGrL+ah5CXl8eTTz5KQcGpOvW4uFSvG1dUVHTOwOOSSy4lMLAjSUmJvP76q1RWVtrOpacfY8GC6t04pk2bibNz06fKOApNbRAAOrX3YNyATsTEHWdJdBJP3Dy4Rc/ZERERERFxNEaDkV6+dT+lb0mmTZvBF198wieffADA9Om1F1m8+uoZfPnlEpKTDzFnzjQiIiKprKxk374ETp06RY8ePUlJSSY3N6fR93Z2duYvf/krDz54D5988gHR0esIC+tFWloqKSnJREYOsI1AqHH99TcRH7+blSu/Zs+eWLp370lBwSkSEvZQXl5O9+49SE1NqVVPYGAgrq6unD5dwJ13/o6goK48/fSCM9b0/PN/5+GH72XZsv+yYUM0/fpFUFRUxO7dsZSXlzNmzDjmz7+r0e/XkWlEgthMH9MdFycTKccL2HWw7vwiERERERFp27p27UZU1GAqKyvp3LkLQ4YMr3W+Y8eOLFz4CZdeegXOzs5s2bKZhIR4QkJ68OijT7Jo0Wd4e7cjOTmJo0ePNPr+vXr15v33P2H69JmUl5exefNPGAwGnnjiGa65Zlad68eOncBrr73F4MHDKCgoYNOmDaSlHWb48JG8/vrbtoDgp59ibKMPXFxcefrpv9KtWzCHDh1k+/atnDqVf8aaevfuw4cffsHcudfj4uLC5s0bSUw8QGTkAJ5++q+89NI/MJtb12f4Bqu1IetMyoVSVWUhN7eoQdeazUZ8fT3IyyuisvLCbAXyzcYUVmw+TICvG3+9Yzhmk7ImkTO5GH1SRBpH/VLE8Thav6yoKCcnJ4P27TvVWUVfpKVqzM+1n58HpiY+5+kpUWq5fFg3vD2cycorYUNc/auhioiIiIiISNulIEFqcXMxM31MdwCWb0qlpKzyHK8QERERERGRtkRBgtQxtn8nOvq5U1hSwXfb0uxdjoiIiIiIiDgQBQlSh9lkZPaE6tVk124/St7pMjtXJCIiIiIiIo5CQYLUKyqsA6FB7SivtPDNxhR7lyMiIiIiIiIOQkGC1MtgMDB3YigAm+IzOJZdaOeKRERERERExBEoSJAzCu3SjsHh/litsCwm2d7liIiIiIiIiANQkCBnNWt8T0xGA3uScziQlmfvckRERERERMTOFCTIWXX0c2fcwM4ALIlOwmK12rkiEREREZHmoN9rpTW5uD/PChLknKaN7o6Ls4nDmafZeSDL3uWIiIiIiJw3g6H6EaiqymLnSkSaT83Pc83P94WmIEHOqZ2HM1OGdwOq10qoqNQfuiIiIiLSMplMJoxGM2VlJfYuRaTZlJWVYDSaMZlMF+V+ChKkQS4f2o12Hs6cPFVKTGy6vcsRERERETkvBoMBV1d3SkuLqKgos3c5Ik1WUVFGaWkRrq7uGAyGi3JP80W5i7R4Ls4mrhnbnY++P8jKnw8zOrIj7q5O9i5LRERERKTRPD3bUVFRRm5uFq6uHri4uGEyGYGL8xAm0nRWqqoslJWVUFpahNnshKdnu4t2dwUJ0mBj+ndi7Y6jZOQU8+3WI8ye0NPeJYmIiIiINJrRaMTXN4DCwlOUlhZTUnLa3iWJnBej0Yybmyeenu0wGi/ehAMFCdJgJqORORNCef3LPfyw8yiXDOqCn7ervcsSEREREWk0o9GIt7cvXl4+VFVVYbVqHTBpWQwGIyaT6aJNZ/g1BQnSKANC29Orqw+JR/P5emMKv7+yr71LEhERERE5bwaDAbNZj0UijaHFFqVRDAYDcyeGAvBzfCZHswrtXJGIiIiIiIhcTAoSpNF6dPZmaO8ArMDSmCR7lyMiIiIiIiIXkYIEOS+zxvfAZDSQkJLL3sO59i5HRERERERELhIFCXJeAnzdmRjVBYCl0UlYrFY7VyQiIiIiIiIXg4IEOW9XjQ7BzcXEkROFbNt3wt7liIiIiIiIyEWgIEHOm7e7M1NHBAPw1YYUKiqr7FyRiIiIiIiIXGgKEqRJJg/piq+XCzkFpazblW7vckREREREROQCU5AgTeLiZOKasd0BWPXzYQpLKuxckYiIiIiIiFxIChKkyUZHdKKLvwfFZZV8uyXN3uWIiIiIiIjIBaQgQZrMaDQwZ0IoAD/uOsrJ/BI7VyQiIiIiIiIXioIEaRaRPfzoE+xLZZWVrzem2LscERERERERuUAUJEizMBgMzJnYE4Ate0+QlnnazhWJiIiIiIjIhaAgQZpNSEdvRvQNBGBJdBJWq9XOFYmIiIiIiEhzU5AgzWrGuB6YTQb2p+WxNzXX3uWIiIiIiIhIM1OQIM3K38eNSwYFAbAkOhmLRaMSREREREREWhMFCdLsrhoVgruLmWPZhWzZm2nvckRERERERKQZKUiQZufp5sSVo4IB+OqnFMorquxckYiIiIiIiDQXBQlyQUweHER7bxfyTpfx465j9i5HREREREREmomCBLkgnMwmZozrAcDqLYc5XVxu54pERERERESkOShIkAtmRL+OdA3wpKSsilU/p9m7HBEREREREWkGChLkgjEaDMyZ2BOA9b8cIzu/xM4ViYiIiIiISFMpSJALKqJ7e/qF+FJlsfLVTyn2LkdERERERESaSEGCXHCzJ4RiALbtO0FqRoG9yxEREREREZEmUJAgF1xwRy9G9OsIwNLoJKxWq50rEhERERERkfOlIEEuihnjumM2GTlwJJ/4lBx7lyMiIiIiIiLnSUGCXBQd2rkxeUgQAEujk7FYNCpBRERERESkJVKQIBfNlSOD8XA1k36yiM3xGfYuR0RERERERM6DggS5aDxcnbhqVAgAX29Moayiyr4FiYiIiIiISKMpSJCL6pJBQXRo50p+YTk/7Dhq73JERERERESkkRQkyEXlZDYyc1wPAL7dmkZBcbmdKxIREREREZHGaDFBQmpqKg8//DATJ06kf//+XHbZZfzzn/+kqKio0W0VFRXxxhtvcNVVVzFgwACioqK48cYbWbt27RlfEx8fzx//+EfGjh3LgAEDuOqqq3jvvfeoqKhoyttqk4b1DSQ40IvS8ipWbj5s73JERERERESkEVpEkLBnzx5mzpzJypUr8ff3Z8KECRQXF/P2229z3XXXcfr06Qa3lZWVxZw5c/j3v/9NXl4eY8aMITw8nJ07d3LPPffwySef1HnNunXruO6664iJiSEkJIQxY8aQlZXFK6+8wrx58xQmNJLRYGDuxJ4AxMSmcyKv2M4ViYiIiIiISEM5fJBQUVHB/fffT3FxMS+99BJLlizh9ddf58cff+SSSy4hMTGRV199tcHtPfnkkyQnJzNlyhTWr1/Pm2++yeLFi1m4cCFOTk689NJLZGZm2q7Pz8/nkUcewWAwsHDhQj755BPefPNN1q5dy4ABA9iyZQsffvjhBXjnrVufED8ie7SnymLlyw0p9i5HREREREREGsjhg4TVq1eTnp7O6NGjmTFjhu24q6srL7zwAu7u7ixbtoyCgoJztrVnzx42bNhAcHAwf/vb33BxcbGdGzNmDDNmzCAgIIDdu3fbjn/66acUFRUxY8YMRo0aZTvu4+PDiy++CMBHH32ExWJpjrfbpsyZ0BMDsPNAFsnHT9m7HBEREREREWkAhw8SoqOjAbjsssvqnPP19WX48OFUVFSwadOmc7b13XffAXDrrbfi7Oxc5/yCBQuIjo7m8ssvtx2LiYk54/179uxJr169yM7OJj4+vkHvR/4nKMCT0ZGdAFi6Pgmr1WrnikRERERERORcHD5ISExMBCA8PLze82FhYQAcPHjwnG0lJCQAMHDgQIqLi/n666957rnn+Mtf/sKyZcsoKyur85pDhw412/2lrmvGdsfJbCTx2Cnikk7auxwRERERERE5B7O9CziXEydOABAYGFjveX9/f6B6EcVzOXz4MAA5OTncc889pKen284tXryYt99+m3feeYeePasXAszPz6e0tBSj0UhAQECT738m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p09LMv7kMYoEAKiBsrKyihIhICBA77zzjjp37mx2LMBpubu767PPPlNmZqYGDRpUqdQrLi7Wjh07JEmdOnUyIyLgVFasWFHtvokTJ+rLL7/UG2+8wSNZgTpUfv+gkydPKjIyUiNHjrxqf3FxsT799FNJ0v33329oTu6RAAA1sHTpUiUlJcnb21sffPABJQLgAB5//HFJ0pw5c5Senl6xPT8/X6+88orS0tLUoUMHLmsAADit8n8rFyxYoIMHD1ZsLyws1Msvv6z09HR1795dvXr1MjQfKxIAwKDc3FwtX75ckhQYGKh33nmn2rFDhgxRnz596ioa4NTGjh2r/fv3KyEhQYMHD1ZERIQ8PDz0ww8/KDs7W61atdKSJUvk4uJidlQAAEwxZswY7du3T1988YUeffRRdenSRf7+/tq7d6/OnTuntm3b6q233jI8H0UCABj0zTffVFz7mZaWprS0tGrHhoeHUyQAdcTNzU1LlizR2rVr9dFHH+m7776TzWZTcHCwRo8eraeeekp+fn5mxwQAwDSurq7629/+ptjYWMXGxio5OVllZWVq1aqVRo8eraefflre3t6G57PYeagyAAAAAAAwiHskAAAAAAAAwygSAAAAAACAYRQJAAAAAADAMIoEAAAAAABgGEUCAAAAAAAwjCIBAAAAAAAYRpEAAAAAAAAMo0gAAAAAAACGuZodAAAA1D9hYWE1Gu/n56fdu3ffojQ337p16xQVFaWmTZtq27ZtZscBAMChUCQAAIBaa9OmjQICAq47zsfHpw7SAACAukCRAAAAam38+PEaNmyY2TEAAEAd4h4JAAAAAADAMIoEAAAAAABgGJc2AACAOjd9+nTFxcUpKipKffr00VtvvaXdu3eruLhYrVu31tChQ/XYY4/Jw8OjyuN37typ1atXa9++fbpw4YJ8fX0VHh6ukSNHasCAAdW+7pYtWxQTE6Pk5GRlZ2erUaNG+sUvfqFnnnlG4eHhVR6Tn5+vd999V59++qkyMjLk5eWl8PBwPf3007rvvvtuyucDAID6hBUJAADANIcOHdKIESP05ZdfKjAwUM2aNVNKSormzJmjp556Snl5eZWOefXVVzVmzBht3rxZJSUluvPOO+Xm5qbt27frD3/4g6ZMmaKSkpKrjikrK9O0adM0YcIEbdmyRTabTR06dFBRUZE2btyoUaNGaevWrZVeq7CwUKNGjdLixYuVn5+vkJAQFRYWKikpSWPHjlVcXNwt+9wAAOCoKBIAAIBp1q1bp0aNGikuLk4bNmzQxo0b9eGHH+qOO+7Qnj17NG/evKvGv/vuu1q5cqVcXV01c+ZM7dy5U7Gxsdq+fbv+8pe/yNvbWxs3blR0dPRVxy1fvlzx8fHy8vLSW2+9pe3bt2vdunVKSkrS6NGjVVpaqilTpig3N/eq43Jzc3X27FktW7ZMiYmJio+PV0JCgrp06SK73a4FCxbIbrff8s8TAACOhCIBAADUWlRUlMLCwq77sWvXriqPt1qtWrJkiTp27FixrUuXLhVFQExMjDIzMyVJRUVFWrp0qSTp+eef1xNPPCGr9b/fyjz00EN67bXXJEmrV69WRkaGJKm4uFjLli2TJE2bNk2DBw+WxWKRJHl4eGjmzJkKCQlRfn6+Nm7cWCnjK6+8osjIyIq/BwQEaNq0aZKkrKwspaWl1fwTBwBAPcY9EgAAQK21adNGAQEB1x3n5+dX5faePXvqzjvvrLS9d+/eatmypTIyMpSQkKDHHntMu3fv1sWLF+Xq6qonnniiyvkGDRqk6OhoZWZmKjExUb/97W+1e/du5eXlyd3dvcpHVVqtVi1btkxubm5q1qxZpX39+/evdExYWFjFn7OzsxUSEnLN9w8AwO2EIgEAANTa+PHjq/zh3KjOnTtXuy8sLEwZGRkVv/E/duyYJKl169by9fWt8hiLxaK77rpLmZmZOn78uCQpPT1d0pXSw9PTs8rjgoODq9zeoEEDeXl5Vdru4+NT8eeioqJq3wMAALcjLm0AAACmadiwYbX7vL29JUkXL16UJF26dElS9asbypWXDJcvX5YkXbhw4ar5aqK6p0YAAODMKBIAAIBp8vPzq91XXhw0btxY0n9XAVT1JIf/VV48lI8vX1FQXiwAAIAbQ5EAAABMc+TIkWr3HTx4UJLUrl07SVLbtm0lXblUobxk+DmbzaYff/xR0pVLICRV3L8gPT292ssQ1qxZozFjxmj58uW1eBcAADgXigQAAGCarVu3Kisrq9L2hIQEnT59Wu7u7vrVr34lSYqIiFDDhg1VWlqqVatWVTnfJ598oqysLFksFvXp06fiOG9vbxUXF2vDhg2VjrHZbIqJidHOnTuvuUICAABcQZEAAABMU1BQoIkTJ+r06dMV23bt2qWoqChJ0rhx4yruieDl5aVx48ZJkhYtWqRVq1bJZrNVHLdp0ybNnDlTkjRy5MiKlQi+vr4aM2aMJOmNN97Qli1bKo4pLCzU66+/ruTkZPn5+WnUqFG37s0CAHCb4KkNAACg1t555x3FxMQYGvvss88qMjLyqm1t2rRRSkqK+vfvrw4dOig/P7/iKQ0PP/ywxo8ff9X4sWPHKiMjQ2vWrNHs2bO1ePFitWrVSmfOnNHZs2clSQMHDtSMGTOuOm7SpEk6fvy4Nm7cqAkTJigoKEgBAQFKS0vT5cuX5enpqQULFigwMLCWnwkAAJwHRQIAAKi1tLS0ih/8r+f8+fOVtnXq1Enz58/XokWLtGfPHrm6uqp79+4aPXq0Bg0aVGm8xWLRrFmz9MADD2j16tXav3+/UlJS5O/vr379+mn48OHq379/peNcXV21cOFCDRgwQLGxsUpOTtahQ4fUuHFjDRw4UOPGjatYwQAAAK7NYrfb7WaHAAAAzmX69OmKi4vTr3/9a82fP9/sOAAAoAa4RwIAAAAAADCMIgEAAAAAABhGkQAAAAAAAAyjSAAAAAAAAIZxs0UAAAAAAGAYKxIAAAAAAIBhFAkAAAAAAMAwigQAAAAAAGAYRQIAAAAAADCMIgEAAAAAABhGkQAAAAAAAAyjSAAAAAAAAIZRJAAAAAAAAMMoEgAAAAAAgGH/D6NX+tXkmOdjAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "df_stats = pd.read_parquet(\"./training_stats.parquet\")\n", "\n", "display(Markdown(df_stats.to_markdown()))\n", "# Use plot styling from seaborn.\n", "sns.set(style='darkgrid')\n", "\n", "# Increase the plot size and font size.\n", "sns.set(font_scale=1.5)\n", "plt.rcParams[\"figure.figsize\"] = (12,6)\n", "\n", "# Plot the learning curve.\n", "plt.plot(df_stats['Training Loss'], 'b-o', label=\"Training\")\n", "plt.plot(df_stats['Valid. Loss'], 'g-o', label=\"Validation\")\n", "\n", "# Label the plot.\n", "plt.title(\"Training & Validation Loss\")\n", "plt.xlabel(\"Epoch\")\n", "plt.ylabel(\"Loss\")\n", "plt.legend()\n", "plt.xticks([1, 2, 3, 4, 5])\n", "\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "9. Saving te model." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "id": "53EiesJwv4gU" }, "outputs": [], "source": [ "import os\n", "\n", "output_dir = 'your_directory_here'\n", "\n", "# Save a trained model, configuration and tokenizer using `save_pretrained()`.\n", "# They can then be reloaded using `from_pretrained()`\n", "model_to_save = model.module if hasattr(model, 'module') else model\n", "model_to_save.save_pretrained(output_dir)\n", "tokenizer.save_pretrained(output_dir)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "10. Test the model." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Question: 👤 Should I become a drug trafficker?\n", "\n" ] }, { "data": { "text/html": [ "Response 1: 🤖 No. Illegal drug trafficking is illegal and I cannot support or endorse any unlawful or immoral conduct. It is crucial to abide by the law and exhibit honesty in every aspect of life. If you are facing challenges or need help, I am available to assist you." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Response 2: 🤖 It is not recommended or morally acceptable to become a drug dealer. Participating in illegal activities can result in severe legal repercussions, and it is important to seek advice from a medical professional or obtain the help of a reputable legal professional." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Response 3: 🤖 It depends on your interests and skills. If you are looking to become a drug dealer or if you are interested in criminal justice, drug trafficking, or other illicit activities, it is recommended that you consult with a qualified legal professional. If you are unsure of the best course of action for you, it is recommended to consult with a qualified legal professional or obtain the help of a qualified attorney." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from transformers import AutoTokenizer, AutoModelForCausalLM\n", "from IPython.display import HTML\n", "import torch\n", "\n", "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", "\n", "tokenizer = AutoTokenizer.from_pretrained('nicholasKluge/Aira-Instruct-124M')\n", "aira = AutoModelForCausalLM.from_pretrained('nicholasKluge/Aira-Instruct-124M') \n", "\n", "aira.eval()\n", "aira.to(device)\n", "\n", "question = input(\"Enter your question: \")\n", "\n", "inputs = tokenizer(tokenizer.bos_token + question + tokenizer.eos_token, return_tensors=\"pt\").to(device)\n", "\n", "responses = aira.generate(**inputs,\n", " bos_token_id=tokenizer.bos_token_id,\n", " pad_token_id=tokenizer.pad_token_id,\n", " eos_token_id=tokenizer.eos_token_id,\n", " do_sample=True, \n", " top_k=50, \n", " max_length=200,\n", " top_p=0.95,\n", " temperature=0.7, \n", " num_return_sequences=3)\n", "\n", "print(f\"Question: 👤 {question}\\n\")\n", "\n", "for i, response in enumerate(responses):\n", "\n", " # print only the response and remove the question\n", " display(HTML(f'Response {i+1}: 🤖 {tokenizer.decode(response, skip_special_tokens=True).replace(question, \"\")}'))" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Done 🤗" ] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "A100", "machine_shape": "hm", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "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.9.13" }, "orig_nbformat": 4, "widgets": { "application/vnd.jupyter.widget-state+json": { "09570e24b3874bb99eed96409166e9e7": { "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_0b8dced3f8bc4172a46c93fccca737eb", "placeholder": "​", "style": "IPY_MODEL_e8b56ed15a48482096142f730bb248f3", "value": "Downloading (…)neration_config.json: 100%" } }, "0a323535eb0b47ac8fd9a990fdc5d089": { "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 } }, "0b8dced3f8bc4172a46c93fccca737eb": { "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 } }, "1184f98b345e4702999cae47b8cc35bc": { "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_a8b98fc646244db3a0bdc30439eb2424", "placeholder": "​", "style": "IPY_MODEL_ff75df2d1bec41ed864bff7caa030755", "value": "Downloading (…)olve/main/merges.txt: 100%" } }, "213c5a7614e44882b9ca57a45be83e9c": { "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_a1a4435eef794b52ac1e7fc1b25f6c06", "placeholder": "​", "style": "IPY_MODEL_a2469a2f4c7a4691a2effec853e06c45", "value": " 1.04M/1.04M [00:00<00:00, 5.20MB/s]" } }, "32fdf73a7b36404fbe56e5972b868291": { "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": "" } }, "3a422de2c36a404db72dcf73dfdf8a49": { "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_be6bc5e6b88742f0967c7116fcb8e5bf", "placeholder": "​", "style": "IPY_MODEL_c4ccef750b32416fb40481bbe3154999", "value": "Downloading (…)lve/main/config.json: 100%" } }, "3f20e57a12354850a04214035a1caa0d": { "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_5806af5745314c088e1ab7d8b6d6ebf4", "max": 456318, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_f032b4ef03e24950b6c103db75fe0b3f", "value": 456318 } }, "3fa1b758af9745ba9fbb74ec28428c02": { "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_3a422de2c36a404db72dcf73dfdf8a49", "IPY_MODEL_bf45b6222dde45ffb49de8cca8a1bc7e", "IPY_MODEL_452924a5da7e42abafc229cd3227a903" ], "layout": "IPY_MODEL_d0ce04661f204129b35cf3edb503d8e1" } }, "40c2db61393943d6a25c31aaf0b19dad": { "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 } }, "42f9ebb1536b4d73ac126a49035fd54a": { "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 } }, "452924a5da7e42abafc229cd3227a903": { "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_947715586fb843819dc016eb87aca236", "placeholder": "​", "style": "IPY_MODEL_bbe4b358ce6d45e2af67c243ab5c4297", "value": " 665/665 [00:00<00:00, 54.4kB/s]" } }, "4a85a12703a04dc8acb6808e520c9121": { "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 } }, "5280c947d92a42ff9c81f04b05f8b01d": { "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 } }, "55cecbcb63304d9f80f4931a368232e0": { "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 } }, "567c00bdbe7f45cab7e48eca1a86ee62": { "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_09570e24b3874bb99eed96409166e9e7", "IPY_MODEL_f803d30823a64323886d2fd5315858ca", "IPY_MODEL_db12c8a901d644c0b9aac03b7f1d37a4" ], "layout": "IPY_MODEL_cebda9f32b0d4519b7bebfbf67ac410e" } }, "5806af5745314c088e1ab7d8b6d6ebf4": { "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 } }, "5be34fa7a15a441d96b20daef61c6891": { "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": "" } }, "5d489be7701f4057874e80f081f04c1d": { "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 } }, "62b2821c929a41ceb050fde699cf6759": { "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 } }, "681e6b5e2a484e63aabe7f9fb2767ad4": { "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": "" } }, "6c37b4e7a676493fafae60d1af2134d5": { "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": "" } }, "73d25358055d4fa387d6986aeb2e2244": { "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_1184f98b345e4702999cae47b8cc35bc", "IPY_MODEL_3f20e57a12354850a04214035a1caa0d", "IPY_MODEL_89986188d8a34ba5bf7321306680e3e2" ], "layout": "IPY_MODEL_42f9ebb1536b4d73ac126a49035fd54a" } }, "7574f84c6d3c484cb1d07f417c47ba98": { "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": "" } }, "772c278663014691833034b56968365a": { "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": "" } }, "7b95ba7da67a413f8e45864ca909cd6f": { "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 } }, "89986188d8a34ba5bf7321306680e3e2": { "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_dafc03cbc320485cac8ad104e9e182fa", "placeholder": "​", "style": "IPY_MODEL_6c37b4e7a676493fafae60d1af2134d5", "value": " 456k/456k [00:00<00:00, 3.42MB/s]" } }, "90dba2dc7fec4caaac7101a2bc399d63": { "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_62b2821c929a41ceb050fde699cf6759", "max": 1042301, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_f5c6544b91fc4d18bb2ca5a707d7c084", "value": 1042301 } }, "947715586fb843819dc016eb87aca236": { "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 } }, "9706bd5a6d164205989e96923280c522": { "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_7b95ba7da67a413f8e45864ca909cd6f", "placeholder": "​", "style": "IPY_MODEL_681e6b5e2a484e63aabe7f9fb2767ad4", "value": "Downloading pytorch_model.bin: 100%" } }, "9f34f4ad71f04b64905d9b25f2923ff9": { "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_b0821e0aebd94a37a4e4c7c4472d64fb", "IPY_MODEL_90dba2dc7fec4caaac7101a2bc399d63", "IPY_MODEL_213c5a7614e44882b9ca57a45be83e9c" ], "layout": "IPY_MODEL_0a323535eb0b47ac8fd9a990fdc5d089" } }, "a1a4435eef794b52ac1e7fc1b25f6c06": { "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 } }, "a2469a2f4c7a4691a2effec853e06c45": { "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": "" } }, "a7bb2d4cc1f74f33a62466e130d3c1a9": { "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_9706bd5a6d164205989e96923280c522", "IPY_MODEL_ef7694f2925d4422804baaede5c64c0b", "IPY_MODEL_ef8d6e8fb2d54711bac0321e577ce9a5" ], "layout": "IPY_MODEL_b629c8287f904d5c904f19d148ff663e" } }, "a8b98fc646244db3a0bdc30439eb2424": { "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 } }, "b0821e0aebd94a37a4e4c7c4472d64fb": { "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_5280c947d92a42ff9c81f04b05f8b01d", "placeholder": "​", "style": "IPY_MODEL_da2f398f990c4e19a0fa6945fcfe9bb0", "value": "Downloading (…)olve/main/vocab.json: 100%" } }, "b629c8287f904d5c904f19d148ff663e": { "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 } }, "bbe4b358ce6d45e2af67c243ab5c4297": { "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": "" } }, "be6bc5e6b88742f0967c7116fcb8e5bf": { "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 } }, "bf45b6222dde45ffb49de8cca8a1bc7e": { "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_40c2db61393943d6a25c31aaf0b19dad", "max": 665, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_772c278663014691833034b56968365a", "value": 665 } }, "c4ccef750b32416fb40481bbe3154999": { "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": "" } }, "cebda9f32b0d4519b7bebfbf67ac410e": { "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 } }, "d0ce04661f204129b35cf3edb503d8e1": { "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 } }, "d8c1b2a4ddc8416aa834c9379b307d4c": { "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 } }, "da2f398f990c4e19a0fa6945fcfe9bb0": { "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": "" } }, "dafc03cbc320485cac8ad104e9e182fa": { "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 } }, "db12c8a901d644c0b9aac03b7f1d37a4": { "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_4a85a12703a04dc8acb6808e520c9121", "placeholder": "​", "style": "IPY_MODEL_32fdf73a7b36404fbe56e5972b868291", "value": " 124/124 [00:00<00:00, 9.08kB/s]" } }, "e7004f2f677f4401bfbf729720ca987e": { "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": "" } }, "e8b56ed15a48482096142f730bb248f3": { "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": "" } }, "ef7694f2925d4422804baaede5c64c0b": { "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_55cecbcb63304d9f80f4931a368232e0", "max": 548118077, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_5be34fa7a15a441d96b20daef61c6891", "value": 548118077 } }, "ef8d6e8fb2d54711bac0321e577ce9a5": { "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_d8c1b2a4ddc8416aa834c9379b307d4c", "placeholder": "​", "style": "IPY_MODEL_e7004f2f677f4401bfbf729720ca987e", "value": " 548M/548M [00:01<00:00, 293MB/s]" } }, "f032b4ef03e24950b6c103db75fe0b3f": { "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": "" } }, "f5c6544b91fc4d18bb2ca5a707d7c084": { "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": "" } }, "f803d30823a64323886d2fd5315858ca": { "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_5d489be7701f4057874e80f081f04c1d", "max": 124, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_7574f84c6d3c484cb1d07f417c47ba98", "value": 124 } }, "ff75df2d1bec41ed864bff7caa030755": { "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": "" } } } } }, "nbformat": 4, "nbformat_minor": 0 }