{ "cells": [ { "cell_type": "markdown", "source": [ "Construction of Book Recommendation & Summarization Models" ], "metadata": { "id": "afG-Yx5h5wkQ" } }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "94T-SQ04_sEd", "outputId": "9e730576-6d39-4299-a625-f67eb8767195" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Requirement already satisfied: torch in /usr/local/lib/python3.10/dist-packages (2.0.1+cu118)\n", "Requirement already satisfied: torchvision in /usr/local/lib/python3.10/dist-packages (0.15.2+cu118)\n", "Requirement already satisfied: torchaudio in /usr/local/lib/python3.10/dist-packages (2.0.2+cu118)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch) (3.12.2)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch) (4.6.3)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch) (1.11.1)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch) (3.1)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch) (3.1.2)\n", "Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch) (2.0.0)\n", "Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch) (3.25.2)\n", "Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch) (16.0.6)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from torchvision) (1.22.4)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from torchvision) (2.27.1)\n", "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.10/dist-packages (from torchvision) (8.4.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch) (2.1.3)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision) (2023.5.7)\n", "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision) (2.0.12)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision) (3.4)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch) (1.3.0)\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting transformers\n", " Downloading transformers-4.30.2-py3-none-any.whl (7.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.2/7.2 MB\u001b[0m \u001b[31m61.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.12.2)\n", "Collecting huggingface-hub<1.0,>=0.14.1 (from transformers)\n", " Downloading huggingface_hub-0.15.1-py3-none-any.whl (236 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m236.8/236.8 kB\u001b[0m \u001b[31m25.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.22.4)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (23.1)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2022.10.31)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.27.1)\n", "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers)\n", " Downloading tokenizers-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.8/7.8 MB\u001b[0m \u001b[31m103.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting safetensors>=0.3.1 (from transformers)\n", " Downloading safetensors-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m53.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.65.0)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (2023.6.0)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (4.6.3)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2023.5.7)\n", "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.12)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.4)\n", "Installing collected packages: tokenizers, safetensors, huggingface-hub, transformers\n", "Successfully installed huggingface-hub-0.15.1 safetensors-0.3.1 tokenizers-0.13.3 transformers-4.30.2\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting sentencepiece\n", " Downloading sentencepiece-0.1.99-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m30.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: sentencepiece\n", "Successfully installed sentencepiece-0.1.99\n" ] } ], "source": [ "!pip install torch torchvision torchaudio\n", "!pip install transformers\n", "!pip install sentencepiece" ] }, { "cell_type": "markdown", "metadata": { "id": "zpdm2QEJBFVQ" }, "source": [ "[link text](https:// [link text](https://))# Import and Load Summarizer Model" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "KuEjcoqGAiHo" }, "outputs": [], "source": [ "from transformers import PegasusForConditionalGeneration, PegasusTokenizer\n", "import sentencepiece\n", "import string" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 113, "referenced_widgets": [ "85517733bd164377a1d57cf3e999116b", "2f695d376d164c339d3890c74a34adca", "1582978bd2374a76ad526f98c347624e", "d3bb290f04d04506ab43d04926cafc43", "b92a401606fa495aa33847e52e741a32", "f3743f2cafe34f26acfcd30a5f2c47b7", "a8b7d9a1b3074b218837136d663a0b70", "3dd3fdeca5c74ed28189ea29e4362ecb", "8bd265b9d9754c788d43987bc985d21a", "1f03e836074342a2adf8d71cdc214519", "0d032f574df44a22adc8d2b7d1644c03", "e6fd0eebf9c84215800dbd0769d37450", "a2da2c8b4cfd42b0ae912f177614ca32", "0815a89e82c14d1d903b27a2cc5b7b5b", "6fabf34282ce4396b4819572585062b8", "3ca00e8e3e75457da422b53920b68845", "621c21424c2d4330933529ec33766426", "4740aa4a51d140648f26fa50964fd6df", "3027622c410c40f4ad210db64c1d1a94", "af1fe7205aee465eb81b9dbc7e43de6c", "26f51acc3c084b7cb20ebbc040572106", "0cf3f86b50f04a66b6d3d1843bb5fa6e", "a498df77cf774d3987cb9c20cc111d73", "bfd71dc7d5874b5daed93770b3cc1718", "4501782092c345ccb216c15f4af600b1", "ed9bd254bc304befb0e1417a5a61c28c", "c191b186e60f4584b95be2e2999f6c70", "6dc1c0344fbc4bff8219d491adf49283", "6717557159144db4b1870e140566fc90", "7a35744c35214b7c909398a81daba65f", "c51729f423cf4d03b99f9cda87a5f9c8", "98eb17cdb931483f952ea5a059a0a8dc", "9f6e697230094e84bcce6980e4df64d8" ] }, "id": "qYkCJ1vKBNRz", "outputId": "c78d1dcf-c898-44ac-9c67-4ec05726dc54" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "85517733bd164377a1d57cf3e999116b", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Downloading spiece.model: 0%| | 0.00/1.91M [00:00Bret Easton Ellis\\'s first novel is hard to write, a story about Los Angles private school kids who go to party, do drugs and have sex. Ellis has published only one other novel in the last 13 years, The Shards. Ellis\\' new novel is a time machine. It stars Ellis himself, surrounded by a group of rich, attractive friends who are shadowed by the Trawlers serial killer nicknamed Trawler, who Ellis calls the \"Trawler.\" The narrator holds nothing back in this 600-page novel. Ellis holds everything back through these chapters: baroque violence. startling erosis. relentless cataloguing of moods-specific song, movie titles. Ellis gothic predilections aren\\'t for everyone, but the evocations of a certain vacant privilege -- a buried longing overlaid by studied dissociation --is masterful. The narrator describes Ellis as \"hypnotic, prodigious, and unsettling\" and his first novel in 13 years. The novel stars none but Ellis himself. He is surrounded by friends and surrounded by rich, beautiful people who are themselves shadowsed by a Trawtler, a serial killer. The author holds no back in these 600 pages. Ellis is a master of the gothic. His gothic preferences are not for everybody, but he holds nothing out through these pages. His eroticist predilections are relentless. He catalogs mood-specific songs and movie titles, his gothic preferences not for everyone. His evocations are masterful. the kind of vacant privilege overlaid with studied disassociation. is masterful.'" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tokenizer.decode(summary[0])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "iEURoCisVMZU" }, "outputs": [], "source": [ "#aggregating into a summarize function\n", "\n", "def summarize(des):\n", " text = des\n", " tokens = tokenizer(text, truncation=True, padding=\"longest\", return_tensors=\"pt\")\n", " summary = model.generate(**tokens, max_new_tokens = 100)\n", " output = tokenizer.decode(summary[0], skip_special_tokens=True)\n", " #ensure summary doesn't end on unfinished sentence\n", " last_punc_index = max(output.rfind(p) for p in string.punctuation)\n", " output = output[:last_punc_index + 1]\n", " return output" ] }, { "cell_type": "markdown", "metadata": { "id": "kaqZosvPKyvi" }, "source": [ "# Getting book descriptions from Goodreads" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Fh8CkAypE3p-" }, "outputs": [], "source": [ "import requests\n", "\n", "def search_book_description(title):\n", " # Google Books API endpoint for book search\n", " url = \"https://www.googleapis.com/books/v1/volumes\"\n", "\n", " # Parameters for the book search\n", " params = {\n", " \"q\": title,\n", " \"maxResults\": 1\n", " }\n", "\n", " # Send GET request to Google Books API\n", " response = requests.get(url, params=params)\n", "\n", " # Check if the request was successful\n", " if response.status_code == 200:\n", " # Parse the JSON response to extract the book description\n", " data = response.json()\n", "\n", " if \"items\" in data and len(data[\"items\"]) > 0:\n", " book_description = data[\"items\"][0][\"volumeInfo\"].get(\"description\", \"No description available.\")\n", " return book_description\n", " else:\n", " print(\"No book found with the given title.\")\n", " return None\n", " else:\n", " # If the request failed, print the error message\n", " print(\"Error:\", response.status_code, response.text)\n", " return None\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Z8ciHf8_VwWl", "outputId": "0060fb34-7f24-4118-aa40-31dbe2fd33f2" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\"Nineteen Eighty-Four: A Novel\", often published as \"1984\", is a dystopian social science fiction novel by English novelist George Orwell. It was published on 8 June 1949 by Secker & Warburg as Orwell's ninth and final book completed in his lifetime. Thematically, \"Nineteen Eighty-Four\" centres on the consequences of totalitarianism, mass surveillance, and repressive regimentation of persons and behaviours within society. Orwell, himself a democratic socialist, modelled the authoritarian government in the novel after Stalinist Russia. More broadly, the novel examines the role of truth and facts within politics and the ways in which they are manipulated. The story takes place in an imagined future, the year 1984, when much of the world has fallen victim to perpetual war, omnipresent government surveillance, historical negationism, and propaganda. Great Britain, known as Airstrip One, has become a province of a totalitarian superstate named Oceania that is ruled by the Party who employ the Thought Police to persecute individuality and independent thinking. Big Brother, the leader of the Party, enjoys an intense cult of personality despite the fact that he may not even exist. The protagonist, Winston Smith, is a diligent and skillful rank-and-file worker and Outer Party member who secretly hates the Party and dreams of rebellion. He enters into a forbidden relationship with a colleague, Julia, and starts to remember what life was like before the Party came to power.\n" ] } ], "source": [ "# Usage example\n", "book_title = \"1984\"\n", "description = search_book_description(book_title)\n", "if description:\n", " print(description)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 89 }, "id": "OEk9k_pALqmX", "outputId": "ba11227c-af74-4ad3-d937-81720f9c497d" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'Nineteen Eighty-Four is a dystopian novel by George Orwell, published in June 1949 as \"1984\". The novel takes place in the year 1984, in a fictional future in Great Britain, ruled by a Party that employs the Thought Police. The protagonist is named Smith and he is a diligent, skillful rank- and file worker who secretly hates and dreams of rebelling against the Party. He secretly hates the Outer Party member and fantasizes about rebellion.'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summarize(description)" ] }, { "cell_type": "markdown", "metadata": { "id": "45G_hhDwdGFD" }, "source": [ "# Book Recommendation Model" ] }, { "cell_type": "markdown", "metadata": { "id": "aHh1to0-hPkg" }, "source": [ "**Download and load data**" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "2FX8gKo7VmPT", "outputId": "fc8c6401-d49c-46a5-8c3d-464b94bc5cf3" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Requirement already satisfied: kaggle in /usr/local/lib/python3.10/dist-packages (1.5.13)\n", "Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.10/dist-packages (from kaggle) (1.16.0)\n", "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from kaggle) (2023.5.7)\n", "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from kaggle) (2.8.2)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from kaggle) (2.27.1)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from kaggle) (4.65.0)\n", "Requirement already satisfied: python-slugify in /usr/local/lib/python3.10/dist-packages (from kaggle) (8.0.1)\n", "Requirement already satisfied: urllib3 in /usr/local/lib/python3.10/dist-packages (from kaggle) (1.26.16)\n", "Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.10/dist-packages (from python-slugify->kaggle) (1.3)\n", "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->kaggle) (2.0.12)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->kaggle) (3.4)\n" ] } ], "source": [ "!pip install kaggle" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "QxqBIDtWdZjd", "outputId": "ef53d0e1-af56-41bf-de5e-2a5746dc8689" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n", "mv: cannot stat '/kaggle.json': No such file or directory\n" ] } ], "source": [ "from google.colab import drive\n", "drive.mount('/content/drive')\n", "\n", "# Move the uploaded file to Google Drive\n", "!mv \"/kaggle.json\" \"/content/drive/My Drive\"\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "0lj3_YSFeWR4" }, "outputs": [], "source": [ "import os\n", "os.environ[\"KAGGLE_CONFIG_DIR\"] = \"/content/drive/My Drive\"\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7MAXpsDlfD0K", "outputId": "ee073f2a-2136-464f-d308-f66d3d9ac20f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading bookcrossing-dataset.zip to /content\n", " 85% 65.0M/76.1M [00:01<00:00, 43.2MB/s]\n", "100% 76.1M/76.1M [00:01<00:00, 46.2MB/s]\n" ] } ], "source": [ "#downloading dataset\n", "!kaggle datasets download -d ruchi798/bookcrossing-dataset" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "RMlBdlI8fj5v" }, "outputs": [], "source": [ "#unzip dataset\n", "import zipfile\n", "\n", "# Specify the path to the downloaded zip file\n", "zip_file_path = \"/content/bookcrossing-dataset.zip\"\n", "\n", "# Extract the contents of the zip file\n", "with zipfile.ZipFile(zip_file_path, \"r\") as zip_ref:\n", " zip_ref.extractall(\"/content\")\n" ] }, { "cell_type": "markdown", "metadata": { "id": "3psRbfH_iHT9" }, "source": [ "**Load & Process data**" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "SY86_H4jgS2Q" }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import torch\n", "from torch import nn\n", "from fastai.collab import *" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "qKqTsS_nhoI3", "outputId": "12f662b5-485c-439c-cedf-b23373e1d3bd" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":1: FutureWarning: The error_bad_lines argument has been deprecated and will be removed in a future version. Use on_bad_lines in the future.\n", "\n", "\n", " books = pd.read_csv('/content/Book reviews/Book reviews/BX_Books.csv',sep=\";\",error_bad_lines=False, encoding='latin-1')\n", ":2: FutureWarning: The error_bad_lines argument has been deprecated and will be removed in a future version. Use on_bad_lines in the future.\n", "\n", "\n", " ratings = pd.read_csv('/content/Book reviews/Book reviews/BX-Book-Ratings.csv', sep=';', error_bad_lines=False, encoding='latin-1')\n", ":3: FutureWarning: The error_bad_lines argument has been deprecated and will be removed in a future version. Use on_bad_lines in the future.\n", "\n", "\n", " users = pd.read_csv('/content/Book reviews/Book reviews/BX-Users.csv', sep=';', error_bad_lines=False, encoding='latin-1')\n" ] } ], "source": [ "books = pd.read_csv('/content/Book reviews/Book reviews/BX_Books.csv',sep=\";\",error_bad_lines=False, encoding='latin-1')\n", "ratings = pd.read_csv('/content/Book reviews/Book reviews/BX-Book-Ratings.csv', sep=';', error_bad_lines=False, encoding='latin-1')\n", "users = pd.read_csv('/content/Book reviews/Book reviews/BX-Users.csv', sep=';', error_bad_lines=False, encoding='latin-1')" ] }, { "cell_type": "markdown", "metadata": { "id": "eHh1GD78iBdj" }, "source": [ "Construct the dataframe fitting with fastai's CollabDataLoaders, with the 1st column for the user, 2nd column for the item (books), and 3rd column for rating. The 4th column is added as names for the books." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "id": "OuN-xLaYht-E", "outputId": "e36e1e0e-dfd2-4130-cf03-3ec7dae69098" }, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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", "
userisbnratingtitle
0276725034545104X0Flesh Tones: A Novel
12313034545104X5Flesh Tones: A Novel
26543034545104X0Flesh Tones: A Novel
38680034545104X5Flesh Tones: A Novel
410314034545104X9Flesh Tones: A Novel
...............
103117027668805171455530Mostly Harmless
103117127668815756607927Gray Matter
103117227669005909073010Triplet Trouble and the Class Trip (Triplet Trouble)
103117327670406797527140A Desert of Pure Feeling (Vintage Contemporaries)
103117427670408069176955Perplexing Lateral Thinking Puzzles: Scholastic Edition
\n", "

1031175 rows × 4 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " user isbn rating \\\n", "0 276725 034545104X 0 \n", "1 2313 034545104X 5 \n", "2 6543 034545104X 0 \n", "3 8680 034545104X 5 \n", "4 10314 034545104X 9 \n", "... ... ... ... \n", "1031170 276688 0517145553 0 \n", "1031171 276688 1575660792 7 \n", "1031172 276690 0590907301 0 \n", "1031173 276704 0679752714 0 \n", "1031174 276704 0806917695 5 \n", "\n", " title \n", "0 Flesh Tones: A Novel \n", "1 Flesh Tones: A Novel \n", "2 Flesh Tones: A Novel \n", "3 Flesh Tones: A Novel \n", "4 Flesh Tones: A Novel \n", "... ... \n", "1031170 Mostly Harmless \n", "1031171 Gray Matter \n", "1031172 Triplet Trouble and the Class Trip (Triplet Trouble) \n", "1031173 A Desert of Pure Feeling (Vintage Contemporaries) \n", "1031174 Perplexing Lateral Thinking Puzzles: Scholastic Edition \n", "\n", "[1031175 rows x 4 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = ratings.copy()\n", "df = df.merge(books, on='ISBN').iloc[:,:4]\n", "df = df.rename(columns={\"User-ID\":\"user\", \"ISBN\":\"isbn\", \"Book-Rating\": \"rating\", \"Book-Title\":\"title\" })\n", "df" ] }, { "cell_type": "markdown", "metadata": { "id": "SGa-HPK8jUAT" }, "source": [ "**Data Cleaning**" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "M1wEsBV_jVSR", "outputId": "b2281ce9-5453-4616-9184-9b5a6ef1806c" }, "outputs": [ { "data": { "text/plain": [ "user 0\n", "isbn 0\n", "rating 0\n", "title 0\n", "dtype: int64" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#check for null values\n", "df.isna().sum()" ] }, { "cell_type": "markdown", "metadata": { "id": "9zqKwHkbiOrU" }, "source": [ "***Create Dataloaders & Learner***" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "tMPb1HMaiEEX" }, "outputs": [], "source": [ "dls = CollabDataLoaders.from_df(df, item_name=\"title\", bs=64)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 363 }, "id": "9N0IWxz9iTW7", "outputId": "73df7aa3-8146-4b9f-a7f9-784ccfc70482" }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
usertitlerating
0129358The Wedding0
151992The Honey Thief7
2138649She Loves Me Not10
367785Sense and Sensibility (Wordsworth Classics)8
440553The Best American Short Stories 20010
5254201Amazing Real-Life Coincidences7
676352Shell Game (Kathleen Mallory Novels (Paperback))0
769971Firefly1
8203240Number the Stars (Yearling Newbery)0
9120908Firestarter0
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dls.show_batch()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "pin1FDVRiagk" }, "outputs": [], "source": [ "learn = collab_learner(dls, use_nn=True, layers=[20,10], y_range=(0,10.5))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 472 }, "id": "jshX8dJHjFol", "outputId": "44957185-b94a-4310-b4e9-a066d8221291" }, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "SuggestedLRs(valley=0.005248074419796467)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAG1CAYAAAAMU3WaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcsUlEQVR4nO3dZ3iUZf728e9Meg9JCElIo/feQRAUaYoUFQsW7O4GFfm7j7LuumtZWVdd3aK46gqioqwFQVSUDoKIdEIJLUCAJJSUSSF15nkRMhgJEpKZ3DPJ+TmOOXRm7rnndwGS06uabDabDRERERE3ZTa6ABEREZG6UJgRERERt6YwIyIiIm5NYUZERETcmsKMiIiIuDWFGREREXFrCjMiIiLi1hRmRERExK15Gl2As1mtVk6cOEFQUBAmk8nockRERKQGbDYbeXl5xMTEYDb/et9Lgw8zJ06cIC4uzugyREREpBbS0tKIjY391WsafJgJCgoCKn4xgoODDa5GREREasJisRAXF2f/Of5rGnyYqRxaCg4OVpgRERFxMzWZIqIJwCIiIuLWFGZERETErTX4YSYREZHasFqtlJSUGF1Gg+Xl5YWHh4dD7qUwIyIi8gslJSWkpqZitVqNLqVBCw0NJSoqqs5bpyjMiIiI/IzNZiM9PR0PDw/i4uIuuceJXD6bzUZhYSEnT54EIDo6uk73U5gRERH5mbKyMgoLC4mJicHf39/ochosPz8/AE6ePElkZGSdhpwUN0VERH6mvLwcAG9vb4Mrafgqw2JpaWmd7qMwIyIiUg0dgeN8jvo1VpgRERERt6YwIyIiIm5NYUZERMQZrOWQuhZ2flrxT2u50RVdUmJiIq+99pr9uclk4osvvjCsnprSaiYRERFH270IljwBlhPnXwuOgVEvQsfrjaurgVLPTC0t3HacO/77I7PXpRpdioiIuJLdi+B/d1YNMgCW9IrXdy8ypq4GTGGmljJyi1i7/zRbj+YYXYqIiLgKa3lFjwy2at4899qSJ50y5PTWW28RExNzwa7F48aN45577uHgwYOMGzeOZs2aERgYSJ8+fVi2bNllfUdaWhqTJk0iNDSUsLAwxo0bx+HDhwFYs2YNXl5eZGRkVPnMtGnTGDx4cJ3adikKM7WUEB4AwJGsQoMrERERl3Fk/YU9MlXYwHK84joHu+mmmzhz5gwrV660v5aVlcWSJUuYPHky+fn5jBkzhuXLl7N161ZGjRrF2LFjOXr0aI3uX1paysiRIwkKCmLt2rWsW7eOwMBARo0aRUlJCUOGDKFly5a8//77VT7z4Ycfcs899zi8vT+nMFNLCeEVG/0cOVNgcCUiIuIy8jMde91laNKkCaNHj2bevHn21z799FMiIiIYNmwY3bp148EHH6Rz5860adOG5557jlatWrFoUc2GvebPn4/VauWdd96hS5cudOjQgdmzZ3P06FFWrVoFwL333svs2bPtn/nyyy8pKipi0qRJDm3rLynM1FJ8WEWYySksJbewbjsXiohIAxHYzLHXXabJkyfz2WefUVxcDMCHH37ILbfcgtlsJj8/n8cff5wOHToQGhpKYGAge/bsqXHPzPbt2zlw4ABBQUEEBgYSGBhIWFgYRUVFHDx4EIApU6Zw4MABNmzYAMCcOXOYNGkSAQEBTmlvJa1mqqUAH0+aBvlwKq+YI1kFdPUPNbokERExWsLAilVLlnSqnzdjqng/YaBTvn7s2LHYbDa++uor+vTpw9q1a3n11VcBePzxx1m6dCkvv/wyrVu3xs/PjxtvvJGSkpIa3Ts/P59evXrx4YcfXvBe06ZNAYiMjGTs2LHMnj2bFi1a8M0339h7bZxJYaYOEsL8K8LMmUK6xoYaXY6IiBjN7FGx/Pp/dwImqgaac1v3j/prxXVO4Ovry8SJE/nwww85cOAA7dq1o2fPngCsW7eOKVOmMGHCBKAinFRO3q2Jnj17Mn/+fCIjIwkODr7odffddx+33norsbGxtGrVikGDBtWpTTWhYaY6sE8C1rwZl7XuwGk+23zM6DJEpDHpeD1MmgvB0VVfD46peN3J+8xMnjyZr776infffZfJkyfbX2/Tpg2ff/4527ZtY/v27dx2220XrHy61H0jIiIYN24ca9euJTU1lVWrVvHII49w7Nj5v2dHjhxJcHAwzz//PHfffbdD23Yx6pmpg/OTgLWiyRUVlpRx33ubOFtaTmJEAL0Smhhdkog0Fh2vh/bXVqxays+smCOTMNBpPTI/d9VVVxEWFkZKSgq33Xab/fW///3v3HPPPQwcOJCIiAieeOIJLBZLje/r7+/PmjVreOKJJ5g4cSJ5eXk0b96cq6++ukpPjdlsZsqUKbzwwgvceeedDm3bxSjM1IHCjGtbsfckZ0sr9nJYsPWYwoyI1C+zB7Rw7v4q1X6t2cyJExcuD09MTGTFihVVXktKSqry/JfDTjZb1Xk/UVFRvPfee5es4fjx44wZM4bo6OhLXusIGmaqg/N7zWiYyRV9s/P8xk2Ld6RTUlbz7lQREbl8ubm5fP/998ybN4+HH3643r5XYaYOEs/1zGRaijlb4voHiDUmZ0vKWbH3JAC+XmZyCktZlXLS4KpERBq2cePGMWLECB566CGuueaaevtehZk6CPX3Jti3YqTuqHYCdpjsghLyiuq2d8+qlIohprgwP27vlwDAF9uOO6I8ERG5iFWrVlFYWGhfDl5fFGbqKDFCK5ocKSO3iCtfWsm4f6+juKz2vV1f7UwHYEznaCb0bA7Asj0nyT2rDQ5FRBoahZk6qtwJWJOAHePttYewFJVx6HQBX2ytXU9KUen5IaYxXaLpGB1M22aBlJRZ+eZcyBERuZRfTn4Vx3PUr7HCTB0lahKww2QVlDDvx/Pbar+5+hDl1sv/g74q5RSFJeU0D/Wja2wIJpOJCT1iAfi8lgFJRBoPD4+K5dM13RlXaq+wsKIjwMvLq0730dLsOorX8myHmbP+MGdLy2kfFUSGpYjU0wV8k5zOdV1jLus+X1cOMXWJwmSq2HFzXPcY/vbtXjamZnEsu5DYJv4Or19EGgZPT0/8/f05deoUXl5emM36/35Hs9lsFBYWcvLkSUJDQ+0BsrYUZuooQcNMDpFfXMacdakAPHJ1G/Zl5vHasv28vvIg13aJtoeSSykqLWf5norTaEd3Ob+/QUyoH/1bhPPDoTMs3HaCpGGtHd8IEWkQTCYT0dHRpKamcuTIEaPLadBCQ0OJioqq830UZuqocgLw8ZyzlJZb8fJQgq+NeT8ewVJURsuIAEZ2imJgq3DeWnOIPekWVqWcYlj7yBrdZ82+UxSUlBMT4kuPuNAq703o0ZwfDp3h8y3H+O3QVjUOSCLS+Hh7e9OmTRsNNTmRl5dXnXtkKinM1FFkkA++XmaKSq0czz5rDzdSc0Wl5by9tqJX5qGhrfAwmwj192Zyv3jeXpvKG6sO1DjMVA4xjep8YW/OqC5R/HFhMgdPFZB83EKX2BDHNkREGhSz2Yyvr6/RZUgNqBuhjkwmEwlhFQHmsJZn2y3dnUnv55exsAZ7u3y25Rin8oqJDvFlfPfm9tfvG9wSbw8zPx3OZmNq1iXvU1xWzrI9FauYru16YbdlsK8Xwzs2A+DfK/fz/g+H+feK/Ty/eDczPt/JpsOX/g4REXE9CjMOUDkJWBvnVcgpLGHG5zs4nV/MHxYkk5FbdNFry8qtvLn6IAAPDGmJt+f5P5LNgn25sXfFKqTXVx645Peu3Xea/OIyooJ96RFX/TlME3tUhKVvd2Xyx4W7ePm7fbzzfSofbTzKA+9vJqtAXcoiIu5GYcYBKo81OHxaYQbgxSV7OZ1fEQryisv406Lki1771c500rLOEhbgzS194i94/6EhrTCbYPW+UyQfz73ofbYczebl71IAGNU5CrO5+vkwV7Ztyi194ujfMoyRnZpxc+84HhjSklZNA8gqKOHZL3ddTlNFRMQFaM6MA8Sf22vmqPaa4afDWXy0MQ2A58Z14pkvd/PtrkyWJKczqnPV01NPWop45bt9ANwzKBE/7wsngsWH+zO2WwwLt51gyuyfGNc9huu7xdj3jzl0Kp+Xvk3hm+SKQyX9vT2Y3O/CUFTJ08PMX2/oesHr13aJZsIb6/hi2wmu7x7DVe2b1frXQERE6pfCjAPYe2Ya+fLskjIrv/98JwC39InjjgGJZFiKeH3lQZ5euIsBrSII8avYGOlEzllue3sDR7MKiQ7x5Y4BiRe972PD2/LjoSwyLEX89/tU/vt9Konh/nRuHsKS5AzKrDbMJrixVyyPXdOW6BC/y669W1wo9w1uyVtrDvHUgmS+eyyMIN+6beIkIiL1Q8NMDlA5AfhoViHWWuxY21C8vfYQ+0/mEx7gzZOj2wPw8FVtaBkRwMm8Yl5csheAtKxCJv3nBw6fKSS2iR/zHxhgDznVSYwIYM3/G8Y7d/ZmbLcY/Lw8OHymkMU70imz2riqfSTfPDqEv93YrVZBptJjw9uSEO5Pem4Rf/1mb63vIyIi9Us9Mw4QE+qLp9lESZmVDEsRMaG1/4Hq6mw2G++tP0x2YSmD20TQPS4UTw8zR84U8M/l+wH4w3UdCPX3BsDXy4MXJnbhlrc2MO/Ho3SPDeXVZftIzy0iMdyfeff3r9Gvl7enmeEdmzG8YzMKistYtieTHcdyubpDJANbRTikbX7eHsyc2IXb3v6RD388ythuMfRvGe6Qe4uIiPOYbA38JC2LxUJISAi5ubkEBwc77XuGvrSSw2cK+ej+/gxo1XB/AC7bncl9czfZnwf5eDKwdTgZlmK2p+UwqHU4H9zb74I9XmZ8vsM+lwagdWQg8+7rR2Sw6+3hMOPznXy08SiJ4f4smTYEXy/HbOokIiI1dzk/vzXM5CAJlQdONuC9ZsrKrfahog7RwYT6e5FXXMa3uzLZnpaDt6eZ58d3qXZn3SdHd6BpkA8A7aOC+PiB/i4ZZABmjGlPs2AfDp8p5M53N3Isu3HPhRIRcXUaZnKQhMoDJxvwXjOfbznO/pP5hPp78fED/Qn08WTn8VzW7jvFpiPZXN8thhYX2QE5xM+Luff05btdmdw1MME+DOWKgn29+Puk7jwwdxMbU7MY/dpanh3fifHdm+sIBBERF6Qw4yANvWfmbEk5f19asYx66rDW9gm73eNC6f6LM5AupkN0MB2inTfU50iDWkfw9aODeWz+NrYczeGx+dtZvuckfxnfhRB/rXISEXElGmZykIZ+evbs9alkWIpoHurH7f0TjC6nXiSEB/C/Bwcw/Zq2eJhNLN6Rzqh/rCGtAfe+iYi4I4UZB7EPM50pxB3nVG8+ks0DczfR/4XlfLDhSJUl5tkFJcxaVXHkwP+NaNuoJsR6eph55Oo2fPabgSSeW7b99MJkt/w9FhFpqBRmHCQuzB+TCfKLy9zmfB+r1cbyPZnc9OZ6bpi1nu92Z5JhKeIPXyRz+39/tPdAvL7yAHlFZXSIDq5yEGRj0j0ulHfu6oOXh4mVKafsB1r+Ulm5lX8u38+sVQc5k19cz1WKiDROmjPjIL5eHkQF+5KeW8SRrELCA32MLumiMnKLWLzjBP/blMa+zHwAvDxMTOwRS0KEP/9cvp/1B88w8rU1/HZoK+b+cASAJ0e3v+iZR41B68hA7r2iJW+uPsgzX+5icJuIC3qpXvh6L++uSwXg1WX7uL5bDFMGJtK5eYgRJYuINAoKMw5UuXvskTMF9Iyv/tRmo2QVlPBNcjqLtp1g4+EsKkdJgnw8ua1/PPcMakGzc0ulR3eO5v99up2fDmfz8rmzkwa2CmdIG8dsTufOHr6qNQu3HedY9lneWHWQ6de0tb/38caj9iDTPiqIvRl5fLr5GJ9uPkafxCY8OboDvRJc68+FiEhDoGEmB4prUjFvJi3rrMGVVHXwVD6D/rqCpxYk82NqRZDpk9iE58Z1Yt2Mq5gxuoM9yAC0iAhg/gMDePq6jvh6mfHyMDFjdActSwYCfDz5w7UdAXhz9UH76rUNh87why8qTgeffk1bvnl0MJ//diDXd4vB02zip8PZ3Pb2BlbszTSsdhGRhko9Mw4Uey7MHM92rTCzfE8mZ0vLaR7qx10DE7iua8wljxAwm03cc0ULrusWTX5RGS2bBtZTta5vTJcormgdwfcHTvPMl7v589hO/OaDzZRZbVzXNZqHr2qNyWSiZ3wTesY34alrO/D7z3eyfO9JHpi7mVcmdWNcI517JCLiDOqZcaDmTSoCwvEc1wozmw5nA3DXwAQeGNLqss6OigzyVZD5BZPJxJ+v74SXh4kVe09yw5vryS4spWtsCC/d2O2CHqxmwb68eUcvxnePocxqY9r8bXyw4cglv6fcamNlykkWbT9BXlGps5ojIuL2DA0zM2fOpE+fPgQFBREZGcn48eNJSUmp9lqbzcbo0aMxmUx88cUX9VtoDTUPdb0wY7PZ2HSkIsz0SggzuJqGo3IyMMCpvGIig3x4647e+HlXv2zdy8PM3yd1547+Cdhs8Icvknl95YFql3jnni3lnbWHGPrySu6e/ROPfLSV3s8vY+q8LazYm0lpudWpbRMRcTeGDjOtXr2apKQk+vTpQ1lZGb///e8ZMWIEu3fvJiCg6rb4r732msvP2Yj9Wc+M1WpziZU/h04XkFVQgo+nmc7N3WP3XXfx8FWt+XpnOqfyinnrzt5Ehfz6WVNms4lnx3Ui2M+T11ce5KVvU/j3igMkRgTQMiKAFhEB5J4t5bMtxygsKQcg1N+LMH9vDp0uYPGOdBbvSCcswJt2zYIot9mw2WyUW22YTCYGt4lgysBElz4qQkTEGQwNM0uWLKnyfM6cOURGRrJ582aGDBlif33btm288sorbNq0iejo6Pous8aiQnwxm6CkzMrp/GKXOEhx87khpm6xofh4Np7N7upDgI8nix+5gpIyKxE1XIpvMpn43cj2NPH35qVvUzhbWs6edAt70i1VrmvbLJC7B7VgfPfm+HqZST5u4fOtx/hy+wlO55fww6EzF9x785Fs3lmbyh0DErj3ihY1rklExN251ATg3NxcAMLCzg+HFBYWctttt/H6668TFRV1yXsUFxdTXHx+szKLxfIrVzuWl4eZZuf2mjmWc9YlwsxPh7MA6J2oJcHOEOxbu3Oa7hvckrsGJnIs+yypp/M5dKqAQ6cLKC61MrFncwa2Cq/SE9klNoQusSE8NaYDG1OzOFNQgtlkwsNcEZByCkuYve4wezPymLXqILPXpXJb3wQeurLlRf8c2mw2vj9wmqyCEoa0aUqTAPXoiIh7cpkwY7VamTZtGoMGDaJz58721x977DEGDhzIuHHjanSfmTNn8swzzzirzEuKbeJHem4Rx7PPusReM5XzZfokar6Mq/HyMNPi3PDSVe1r9hlPDzMDW1e/389NveJYvvck/1qxnx3Hcnl3XSrzNh5hysAWPHRlyyrDT+sPnOZv36awLS0HAA+zif4twxjVKYoRnaKqLNUXEXF1LhNmkpKSSE5O5vvvv7e/tmjRIlasWMHWrVtrfJ8ZM2Ywffp0+3OLxUJcXJxDa/01zUP9+Ilsl5gEfDq/mNTTFfuguEKwEucym01c07EZwztEsmb/aV5bto+tR3N4c/VBPtxwhAeGtKRPizD+tWI/6w5UDFP5eXkQH+ZPSmYe6w6cYd2BM/xx4S5GdYpi5sQu6q0REbfgEmFm6tSpLF68mDVr1hAbG2t/fcWKFRw8eJDQ0NAq199www0MHjyYVatWXXAvHx8ffHyMmytgX57tAnvNVC7JbtcsiBD/2g2HiPsxmUxc2bYpQ9pEsHzPSV7+LoW9GXm8snSf/RovDxOT+yXw22GtiAzy5ciZAr7dlcGS5Ay2HM1hya4Mth/L4d+39dAqOBFxeYaGGZvNxsMPP8yCBQtYtWoVLVq0qPL+k08+yX333VfltS5duvDqq68yduzY+iy1xpqHVmycdyy70OBKYJPmyzRqJpOJ4R2bcVX7SL7ccYJXl+7jaFYhN/SM5dHhbeybPAIkhAfwwJBWPDCkFbtO5DJ13lZSTxcw6T8beHxEOx4c0tIlVueJiFTH0DCTlJTEvHnzWLhwIUFBQWRkZAAQEhKCn58fUVFR1U76jY+PvyD4uApX2jivcr6MwkzjZjabGNe9Odd1jSG/qOySvXSdYkL48uEreGrBThZuO8GLS/byY+oZXp3UXcNOIuKSDN00b9asWeTm5jJ06FCio6Ptj/nz5xtZVp3E/myYqboN0erL2ZJyko9XrA7rrWECoWKSb02HGwN9PHnt5u78dWIXfDzNrEo5xf/7bIeTKxQRqR3Dh5nq4zP1qXIX4IKScnLPlhq2gdm2tBzKrDaign3tAUvkcphMJm7pG0+H6GDGvb6OpbszST1dQIuIgEt/WESkHulsJgfz9fIgIrAiwBwzcBLw5iMV82V6JTZx+Z2TxbV1iwtlWLumALy3/rCxxYiIVENhxgkqe2eMDDM/nVvJ1CdB82Wk7u4eVDFH7dPNx3TopYi4HIUZJzB6EnC51cYW++RfzZeRuhvcJoLWkYHkF5fx6eZjRpcjIlKFwowT2E/PrqZnptxq4773fuLhj7Y6bf7Pvsw88orLCPD2oH1UkFO+QxoXk8nEXQMTgYqhJqvVteeuiUjjojDjBJX7dxzPuXCvmd0nLCzbc5Ivt59gT3qeU76/cn+ZnglN8PTQb7E4xg09mxPs68nhM4WsTDlpdDkiInb6SecE9p6ZaoaZKifmAizbk+mU76+cL9NL82XEgfy9PbmlbzwAczQRWERciMKME1TOmaluAvCWozn2f1+62zlhZrMOlxQnuaN/AmYTrN1/mv2ZzulZFBG5XAozTlAZZnIKSykoLqvyXmXQANh5PJf0XMdOEk4+nsvxnLN4mE10jwt16L1F4sL8uaZjMwBmq3dGRFyEwowTBPt6EeRbsR/hz4eaMnKLOJ5zFrMJOkQHA7DMwb0zr688AMB1XaMJ8HGJc0SlgZkysGKZ9udbjpFbqGXaImI8/bRzktgm/uxJt3A8+yxtm1WsKNpytKJXpkN0MNd1jWFPuoWle05yx4DECz5/Or+YN1cdpLjMiofZhJeHCQ+zmVB/L+4akIift8cFn9mfmceSXRXnWyUNa+28xkmj1r9lGO2jgtibkcd/16Uy/Zq2RpckIo2cwoyTNA/1Y0+6hWM/65mpHGLqGd+Eazo248Ule/nh4GnyikoJ8q16Zs6zX+5m0fYT1d77yJlCZk7scsHrb6w6iM0GIzs1swcoEUczmUw8fFUbkuZt4c3VB5nQo7mOOBARQ2mYyUl+fuBkpcqemV4JTWgdGUjLiABKy22s3neqymf3Zlj4ckdFkHlwSEuShrXiwStbckf/BAA+2niUFXurDk8dOVNgDz9Th7VxTqNEzhnTJYrBbSIoKbPyhy92uvyZaSLSsCnMOMn5Iw0q9popKj1/inXlkunKiZS/XNX0ynf7sNng2i7RzBjTgd+NbM+M0R14bnxn7r2iYr7C//t0J1kFJfbPvLn6IOVWG1e2bUqX2BDnNk4aPZPJxPPjO+PjaWbdgTMX7UUUEakPCjNO8ssjDZKP51JabqNpkI+916YyzKzce5LScitQcdr10t2ZmE3wWDVzEX43sh2tIwM5nV9s/z/i9Nyz9i3mH75Kc2WkfiSEB9j/vD23eLcmA4uIYRRmnOSXRxqcny8Taj/Fukd8E8IDvLEUlfFTasVmei9/mwLAxJ6xtI4MvOC+vl4evDqpO55mE1/vzGDR9hO8teYQpeU2+rUI01lMUq/uH9KSVk0DOJ1fwovf7jW6HBFppBRmnKSy9+VkXjHFZeX2MPPzXXk9zCauah8JwHe7M/nh4Bm+P3AaLw8Tj1598XkvXWJDeOTc+3/8IpmPNh4FYKp6ZaSe+Xh68JcJFZPR5/14tMo+SiIi9UVhxknCArzx9ar45T2RU2Tf+feXRwz8fN7My99V9Mrc0ieeuDD/X73/b4e2oltcKJaiMopKrXSLC+WK1hEOboXIpfVvGc6NvWIBeGrBTvuQqYhIfVGYcRKTyWQfavrh4BlO5xfj7WGmU0zVybmD2zTF18vM8ZyzbD6SjY+nuUY9LJ4eZv4+qRs+nhW/hVOHtbYPX4nUt9+P6UCovxd7M/Ls87dEROqLwowTNT93evai7ccB6Nw8GF+vqpvd+Xl7cEXrpvbnUwYm0izYt0b3b9U0kA/u68fLN3VjeIdIB1UtcvnCArx5+KqKoc9/rzhASZl6Z0Sk/ijMOFFlz8yP5yb39oyv/hTrEeeGmgJ9PHnoylaX9R19EsO4sVesemXEcJP7xdM0yIfjOWf5bIt6Z0Sk/ijMOFHlJODK/cR+OV+m0rgeMUwZmMirN3enSYB3fZUn4lC+Xh785lwYV++MiNQnhRknqgwzlXpeJMz4eHrw5+s72ScDi7ir2/rFE3mud0ZzZ0SkvijMOFHlMBNUBJuazoURcVe+Xh78ZmhF78zrK6vvnSkoLqNMK55EGoScwhJO5xcb/t+0wowTNf9Zz8zF5suINDS39q2+d6bcauPN1Qfp8dxSrv/3uirHcYiIe3pz9SF6P7+MF742dtNMhRknigzyxdNcMTH3YvNlRBqa6npnDpzM54ZZ6/nrN3spKbOyO93C7e/8SE5hzQPNmfxidp3IdVbZIlILlf8Nh/p7GVqHwowTeZhNdGoegqfZxKDW4UaXI1Jvft4789sPNzPmn2vZlpZDkK8nM0a3JyLQh93pFu58dyOWol8/0+lMfjEvfL2HQS+u4Np/fk/SvC2czi+up5aIyK/JOXcmWxODw4ynod/eCPzn9l6czi+mdWSQ0aWI1BtfLw9+O7QVf/5yN8v2nARgaLumzJzYhegQP4a1j+SWtzaw41guU97dyNx7+xHoU/Wvo6yCEt5ac4i5PxymsKTc/vpXO9L54eAZ/nx9J8Z2jbZvS1BabuXHQ1ms3neScitEh/jSLMSXqGBfYkJ9aR7qpy0MRBws294zY+xKXIUZJ4sK8SUqRBN/pfG5pW888zYeJT23iD9e25Gbep/fD6ltsyDev7cvt739I1uO5nDPnJ+4o38CR7MKOXKmgCNnCtl5PNceYrrGhjBteBuaBvryu0+3szcjj0c+2sqibSe4rms0K/aeZGXKSfKKyi5az0NXtuLJ0e3rpe0ijUVlz4zRw0wmm61yF5SGyWKxEBISQm5uLsHBwUaXI9KoFJWW42k24elR/Yj2jmM5TH77R/KKqw8hnZsHM+3qtlzdIdIehErKrLy5+iD/WrGf0vKqf32FB3hzdYdImvh7k2EpIj23iIzcIo5mFeLlYWLF/w295LlnIlJz/V5YRqalmMUPX0Hn5iGX/sBluJyf3+qZERGn+eXxHb/UNTaUOff05Q9fJOPv7UFCuD8JYQEkhPvTsmkAXZqHXDA05O1p5pGr2zCyUxTPf7Wbk5ZihrZryjUdm9Ejvgke5guHkia/s4F1B87wj+X7efmmbg5to0hjZbPZyFbPTP1Qz4yIbEvLYfzr6zCb4NtpQ2jTTHPYROqqsKSMjk9/C0DyMyMvmPdWV5fz81urmUSkweseF8qIjs2w2uDvS/cZXY5Ig1A5X8bLw0SA96/3wjqbwoyINAr/N6IdJhN8k5zBjmM5Rpcj4vZ+vpLJ6JWCCjMi0ii0iwpiQvfmALz0bYrB1Yi4P/tKJj9j58uAwoyINCLThrfF02xi7f7T/HDwjNHliLi18xvmGbvHDCjMiEgjEh/uz6194wF46du9/Hz9g81mo4GvhxBxqGwXOcoAtDRbRBqZh69qzSeb09hyNIdWv/8aG1CZYbw9zDRv4kdcmD9x5/7Zumkg3eNDiQj0MbRuEVfjKucygcKMiDQykcG+/HZoa/6+dB/WX3TElJRbST1dQOrpggs+Fx/mT4/4UHrGN2F4x2Y0D/Wrp4pFXJMrDTMpzIhIo/PI1W24rV885VYbJhOYTSZMQGFJOWnZhRzLOktadiFHzhSyJ93C/pP5HM0q5GhWIQu3neAvX+/hnkEtSBrWiiBf4/+vVMQI5zfMU5gRETFEdcNG4VBx3EGrqq/nni1lx7Ecth7NYc2+U2w6ks2bqw/y6eY0pl/Tjpv7xFW787BIQ+ZKw0yaACwicgkhfl4MbtOUR65uwycPDeCdO3vTMiKA0/kl/H7BTq7951q2peUYXaZIvaqcANxEYUZExL2YTCaGd2zGt48N4U9jOxLi58XejDxu/s8PfLUj3ejyROpNzlnXGWZSmBERqQUvDzN3D2rB6t8N5er2kRSXWUmat4VZqw5qibc0CjkucsgkKMyIiNRJqL83b93ZmykDEwF4ccleZny+k9Jyq7GFiTiR1Wqzz5lxhdVMCjMiInXkYTbx5+s78eexHTGb4OOf0rh79k/2v+xFGpq84jL71gYhOs5ARKThmDKoBW/f2Rt/bw++P3CaUa+tZf2B00aXJeJwlUHdz8sDXy9jT8wGhRkREYe6ukMzPn1oIC0jAsiwFHHbOz/ywtd7KC4rN7o0EYfJtm+YZ3yvDCjMiIg4XMeYYBY/cgW39as4B+qtNYeY8Pp69mfmGVyZiGOc32PG+PkyoDAjIuIU/t6evDChC2/d0YuwAG92p1sY9Y+13Pb2Bub+cJhMS5HRJYrUmv0ogwDX6JnRDsAiIk40olMU3eNCefLznazYe5L1B8+w/uAZ/rRoFz3jm3Br33hu6Nkck0k7CIv7sJ+Y7ecaPTMKMyIiThYZ7Mu7U/pw9EwhS3al801yBluP5rD5SDabj2Sz+4SFP1zbAXN1RyJYy+HIesjPhMBmkDAQzMZPuJTGzZX2mAGDh5lmzpxJnz59CAoKIjIykvHjx5OSklLlmgcffJBWrVrh5+dH06ZNGTduHHv37jWoYhGR2osP9+eBIa1Y8NtBbJhxNY9c3QaAd9elMm3+NkrKfrE3ze5F8FpneO86+Ozein++1rnidREDudIeM2BwmFm9ejVJSUls2LCBpUuXUlpayogRIygoKLBf06tXL2bPns2ePXv49ttvsdlsjBgxgvJyrQwQEfcVFeLL9Gva8trN3fE0m1i0/QT3zPmJ/OKyigt2L4L/3QmWE1U/aEmveF2BRgyU7WI9MyabC+27ferUKSIjI1m9ejVDhgyp9podO3bQrVs3Dhw4QKtWraq95ucsFgshISHk5uYSHBzs6JJFROpszb5TPPTBZgpLyuncPJi/XN+RTp8MwiM/nepn0pggOAam7dSQkxjiznc3smbfKV6+qRs39op1yndczs9vl1rNlJubC0BYWFi17xcUFDB79mxatGhBXFxctdcUFxdjsViqPEREXNmQtk356P7+hAV4k3zcwsz/vIvnRYMMgA0sxyvm0ogYIMeFTswGFwozVquVadOmMWjQIDp37lzlvTfeeIPAwEACAwP55ptvWLp0Kd7e1Y/TzZw5k5CQEPvjYqFHRMSVdIsL5bPfDKRfizBa+eXX7EP5mc4tSuQi7KuZFGaqSkpKIjk5mY8//viC9yZPnszWrVtZvXo1bdu2ZdKkSRQVVb9Hw4wZM8jNzbU/0tLSnF26iIhDtIgIYP6DA/jL7cNrdL0tMNLJFYlU7/xqJteYAOwSS7OnTp3K4sWLWbNmDbGxF469VfaytGnThv79+9OkSRMWLFjArbfeesG1Pj4++Pj41EfZIiLOkTCwYk6MJR24cFqj1QYZhLPsRHPubFH/5UnjVlZuJa+oYqK6VjMBNpuNqVOnsmDBAlasWEGLFpf+r9Jms2Gz2SguLq6HCkVEDGD2gFEvnntSdeaMDRMmEzxTegevLj9I7tnS+q9PGrWcn/2ZC/Z1iT4RY8NMUlISH3zwAfPmzSMoKIiMjAwyMjI4e/YsAIcOHWLmzJls3ryZo0ePsn79em666Sb8/PwYM2aMkaWLiDhXx+th0lwIjq7ysik4BuuNczkYcRXZhaXMWnXQoAKlsaocYgr29cTTwzVmqxgaqWbNmgXA0KFDq7w+e/ZspkyZgq+vL2vXruW1114jOzubZs2aMWTIENavX09kpMaKRaSB63g9tL/2gh2APcwePGnO5L65m3h3XSp3DEigeaif0dVKI2FfyRTgGkNMYHCYudQWNzExMXz99df1VI2IiAsye0CLwRe8fHWHSPq1COPH1Cz+/t0+XpnUzYDipDGyb5jn5xormcCFVjOJiEjNmUwmfj+mAwCfbz3G7hPaU0vqR459Wbbr9MwozIiIuKlucaGM7RaDzQYzv9ljdDnSSFTOmXGVDfNAYUZExK39bkQ7vDxMrN1/mjX7ThldjjQC2eqZERERR4oP9+fOAYkAvPD1HsqtLnPcnjRQlUuzXWX3X1CYERFxe1OHtSbI15O9GXl8skm7notznT+XST0zIiLiIE0CvJk2vC0ALy7Za/9hI+IM2QXqmRERESe4c0ACbZsFkl1Yyt+X7jO6HGnAzg8zqWdGREQcyMvDzJ+v7wTABxuOsOtErsEVSUN1fphJPTMiIuJgA1tFcF3XaKw2+NPCXZfcmFSkNuyrmfzUMyMiIk7w1LUd8PPyYNORbL7YdtzocqSBKSotp6jUCkBogHpmRETECaJD/Jh6VWsAXvh6L3lFOlVbHKdywzwPs4kgH9c4MRsUZkREGpz7BrcgMdyfU3nF/HP5fqPLkQbk/BCTFyaTyeBqzlOYERFpYHw8PfjTucnA7647zLoDpw2uSBqK87v/us4QEyjMiIg0SMPaRXJjr1jKrTaS5m0hLavQ6JKkAci1n8vkOpN/QWFGRKTBen58Z7rFhpBTWMr9czdRWFJmdEni5rILXW+PGVCYERFpsHy9PHjzjl5EBPqwNyOP332yQ8u1pU40zCQiIvUuOsSPN2/viZeHia92pjNr9UGjSxI3lnu2cphJYUZEROpR78Qw++7AL32bwoq9mQZXJO4qu6CyZ0bDTCIiUs8m90vgtn7x2Gzw0AdbWJKcbnRJ4obOz5lRz4yIiBjgz2M7cU3HZpSUWfnth1v4YMMRo0sSN5N7tvJcJvXMiIiIAbw9zcya3JNb+8ZhtcEfvkjmtWX7NClYakw9MyIiYjhPDzMvTOjCI+eOPHht2X6e+iKZcqsCjVxajgseMgkKMyIijY7JZGL6iHY8N64TJhPM+/EoD8zdRH6x9qGRi7PZbPazmZq40CGToDAjItJo3TEgkddv64m3p5nle09ywxvrtVOwXFR+cRll53rwNGdGRERcxpgu0cx/oD9Ng3xIycxj/Ovr+OlwltFliQuq7JXx8TTj6+VhcDVVKcyIiDRyPeKbsGjqIDrFBHOmoITb3t7AJ5vSjC5LXEyOi57LBAozIiJCxU7Bnzw0gNGdoygtt/G7T3ewaPsJo8sSF+KqRxmAwoyIiJzj7+3J67f1ZMrARAD+8tVuCjQpWM7JOeuay7JBYUZERH7GbDbx5Oj2xIX5kWkpZtYqneUkFXJddFk2KMyIiMgv+Hp58NSYjgC8tfYQR89ohZOcP2QyxE89MyIi4gZGdmrGoNbhlJRZeeHrPUaXIy7AHmY0zCQiIu7AZDLx9HWd8DCbWLIrg/UHThtdkhhMPTMiIuJ22kUFcXu/eACe+XI3ZeVWgysSI1WGmWCFGRERcSePXdOWUH8vUjLzmLfxqNHliIHsYcbX0+BKLqQwIyIiFxXq783/XdMWgFe+22c/aFAan9yzFcv0NcwkIiJu59a+8bSPCiL3bCn/WnHA6HLEIBbNmREREXfl6WHm92M6ADD3h8McOVNgcEViBE0AFhERtzakbVOGtG1KabmNv32bYnQ5Us/Kyq3kF2uYSURE3NyM0e0xmeCrHelsPpJtdDlSjyxF54+10GomERFxWx2ig7mpVywAL3y9B5vNZnBFUl8qh5gCvD3w8nC96OB6FYmIiMuafk07/Lw82Hwkm293ZRhdjtQTV54vAwozIiJyGaJCfLl/cAsA/vrNXkrKtJFeY+DKG+aBwoyIiFymB65sRUSgD4fPFPLhj0eMLkfqgXpmRESkQQn08WT6uY30Xlu2n0xLkcEVibMpzIiISIMzqXcsnZsHk3u2lOn/24bVqsnADZkrb5gHCjMiIlILnh5m/nFLD/y8PFh34AzvfH/I6JLEiRpkz0xaWhrHjh2zP9+4cSPTpk3jrbfeclhhIiLi2lo1DeTpsR0BeOnbFJKP5xpckThLg+yZue2221i5ciUAGRkZXHPNNWzcuJGnnnqKZ5991qEFioiI67qlTxwjOzWjtNzGIx9tpbCk7NIfErdj75nxb0BhJjk5mb59+wLwv//9j86dO7N+/Xo+/PBD5syZ48j6RETEhZlMJv46sStRwb4cOl3Ac4t3G12SOEGDHGYqLS3Fx8cHgGXLlnH99dcD0L59e9LT0x1XnYiIuLwmAd78/eZumEzw0cY0liTr50BD0yD3menUqRNvvvkma9euZenSpYwaNQqAEydOEB4eXuP7zJw5kz59+hAUFERkZCTjx48nJeX8AWZZWVk8/PDDtGvXDj8/P+Lj43nkkUfIzdW4rIiIKxnYKoIHh7QC4LnFeygr12Z6DUmD7Jl58cUX+c9//sPQoUO59dZb6datGwCLFi2yDz/VxOrVq0lKSmLDhg0sXbqU0tJSRowYQUFBxfHyJ06c4MSJE7z88sskJyczZ84clixZwr333lubskVExImmDW9DWIA3x3POsmzPSaPLEQdy9TBjstXypLDy8nIsFgtNmjSxv3b48GH8/f2JjIysVTGnTp0iMjKS1atXM2TIkGqv+eSTT7j99tspKCjA09Pzkve0WCyEhISQm5tLcHBwreoSEZGaeenbvby+8iADWobz0QP9jS5HHKDcaqPV778GYNMfhhMR6FMv33s5P79r1TNz9uxZiouL7UHmyJEjvPbaa6SkpNQ6yAD24aOwsLBfvSY4OPiiQaa4uBiLxVLlISIi9eP2/gl4mE38cOgMezP0929DkFdUav93V+2ZqVWYGTduHHPnzgUgJyeHfv368corrzB+/HhmzZpVq0KsVivTpk1j0KBBdO7cudprTp8+zXPPPccDDzxw0fvMnDmTkJAQ+yMuLq5W9YiIyOWLDvFjVKcoAN5bf9jYYsQhKoeY/L098PJwzb12a1XVli1bGDx4MACffvopzZo148iRI8ydO5d//vOftSokKSmJ5ORkPv7442rft1gsXHvttXTs2JE///nPF73PjBkzyM3NtT/S0tJqVY+IiNTOXQMTAViw9Tg5hSXGFiN1Zl/J5OuavTJQyzBTWFhIUFAQAN999x0TJ07EbDbTv39/jhy5/BNUp06dyuLFi1m5ciWxsbEXvJ+Xl8eoUaMICgpiwYIFeHld/BfUx8eH4ODgKg8REak/fRKb0DE6mKJSK/N/0v9QujtXn/wLtQwzrVu35osvviAtLY1vv/2WESNGAHDy5MnLCg82m42pU6eyYMECVqxYQYsWLS64xmKxMGLECLy9vVm0aBG+vr61KVlEROqJyWRiyqBEAOb+cIRyHULp1hpsmHn66ad5/PHHSUxMpG/fvgwYMACo6KXp0aNHje+TlJTEBx98wLx58wgKCiIjI4OMjAzOnj0LnA8yBQUF/Pe//8VisdivKS8vr03pIiJSD67vFkMTf69zy7QzjS5H6sDVN8wDuPTa5mrceOONXHHFFaSnp9v3mAG4+uqrmTBhQo3vUzlZeOjQoVVenz17NlOmTGHLli38+OOPQEVv0M+lpqaSmJhYm/JFRMTJfL08uLVvPG+sOsicdYcZeW5SsLgfd+iZqVWYAYiKiiIqKsp+enZsbOxlbZgHFcNMv2bo0KGXvEZERFzT7f0T+M+aQ/Zl2u2jNIfRHblDmKnVMJPVauXZZ58lJCSEhIQEEhISCA0N5bnnnsNq1RbWIiICMaF+jOzUDIC31hwyuBqpLUtDDTNPPfUU//73v/nrX//K1q1b2bp1Ky+88AL/+te/+OMf/+joGkVExE1Vnte0YOtxUjLyDK5GauN8z0ytB3OcrlZh5r333uOdd97hN7/5DV27dqVr16789re/5e2332bOnDkOLlFERNxVt7hQRneOwmaDl79LufQHxOXYw4x/A+uZycrKon379he83r59e7KysupclIiINBz/N6IdZhMs3Z3J5iPZRpcjl6nBzpnp1q0b//73vy94/d///jddu3atc1EiItJwtI4M5KZeFUfLvLhkrxZ2uBl3CDO1GgD729/+xrXXXsuyZcvse8z88MMPpKWl8fXXXzu0QBERcX+PDm/Dgm3H2Ziaxap9pxjWrvaHEkv9yi10/TBTq56ZK6+8kn379jFhwgRycnLIyclh4sSJ7Nq1i/fff9/RNYqIiJuLCfXjrgEJAPxtSQpW7QrsFqxWG3nFZYBrb5pnsjmwv2/79u307NnTpXbntVgshISEkJubq3OaREQMlF1QwpC/rSSvuIx/3NKdcd2bG12SXEJuYSndnv0OgJTnR+Hj6VFv3305P79d8yxvERFpcJoEePPAkJYAvPLdPkrKtC+Zq6ucL+PrZa7XIHO5FGZERKTe3HNFCyICfTiaVcjrKw8YXY5cgjtM/gWFGRERqUcBPp48dW3F1h7/XLGflXtPGlyR/Bp3CTOXtZpp4sSJv/p+Tk5OXWoREZFGYEKPWDYdzubDH4/y6Mdb+fLhK0gIDzC6LKlGgwwzISEhl3z/zjvvrFNBIiLS8D09tiO7TljYlpbDQx9s4fPfDMTP23XnZDRWDTLMzJ4921l1iIhII+Lj6cGs23sy9l/fsyfdwlMLdvLKpG6YTCajS5OfqQwzrrwsGzRnRkREDBId4se/bu2Jh9nE51uP8/6GI0aXJL/gLj0zCjMiImKYAa3CeXJUxYTgZ7/czZEzBQZXJD9nKVKYERERuaT7BrdgUOtwyqw25v141Ohy5GfUMyMiIlIDJpOJKQNbAPDJ5mMUl7nOLvKNnaVyzoyvwoyIiMivGtauKdEhvmQVlLAkOcPocuQc9cyIiIjUkKeHmZv7xAHwoYaaXIY9zPgrzIiIiFzSLX3i8TCb2Jiaxf7MPKPLEdQzIyIiclmiQny5un0kAPM2qnfGaFarzT5nRmFGRESkhib3TwDgs83HOFuiicBGyi8pw2qr+HeFGRERkRoa3DqCuDA/LEVlLN5xwuhyGrXcwopeGW9PM75ern3UhMKMiIi4DLPZxK194wFNBDaau8yXAYUZERFxMTf1isPLw8S2tBx2ncg1upxGy13my4DCjIiIuJimQT6M6BQFoB2BDaSeGRERkTqY3K9iqOmLrccpKC4zuJrGSWFGRESkDga0DKdlRAAFJeUs2q6JwEZQmBEREakDk8nELX0rdgT+SHvOGEJhRkREpI5u6BmLt4eZHcdyST6uicD1rTLMBCvMiIiI1E54oA8jO1dMBFbvTP1Tz4yIiIgD3HpuqGnhthOaCFzPFGZEREQcYEDLcBLD/ckv1o7A9U37zIiIiDiAyXR+R+B5G9MMrqZxUc+MiIiIg9zQKxYvDxPbtSNwvVKYERERcZCIwPM7An+s3pl6YbPZsBRVzFFSmBEREXGAyX3P7whcWKKJwM6WX1xGudUGKMyIiIg4RP9zE4HzistYvD3d6HIavMohJm8PM75erh8VXL9CERFp9MxmE7fYJwJrzxlns5yt6P0K9vPEZDIZXM2lKcyIiIhbuPHcROBtaTnsSbcYXU6DlldU0TMT5Ov6Q0ygMCMiIm4iItCHazo2A+Bj9c44Vd65yb9Bvp4GV1IzCjMiIuI2Kvec+Xzrcc6WlBtcTcOVV1zZM6MwIyIi4lCDWkUQF+ZHXlEZX+/URGBnsffM+GiYSURExKHMZhO39KnondHhk86jYSYREREnuqlXLB5mE5uOZLMvM8/ochokiyYAi4iIOE9ksC9Xt48EtCOws1T2zAT7qWdGRETEKW7tVzHU9NmWYxSVaiKwo50fZlLPjIiIiFMMadOU5qF+5J4tZUlyhtHlNDiWs1rNJCIi4lQeZhOTescBmgjsDJWb5gUrzIiIiDjPpD6xmE3wY2oWB0/lG11Og6Jhpsswc+ZM+vTpQ1BQEJGRkYwfP56UlJQq17z11lsMHTqU4OBgTCYTOTk5xhQrIiIuJTrEj2HtKiYCv7M21eBqGhYtzb4Mq1evJikpiQ0bNrB06VJKS0sZMWIEBQUF9msKCwsZNWoUv//97w2sVEREXNH9Q1oC8PFPR9mWlmNsMQ2Iu53NZGjkWrJkSZXnc+bMITIyks2bNzNkyBAApk2bBsCqVavquToREXF1/VuGM6FHcxZsPc5TC3ayMGkQnh6aQVEX5VYbBeeOilDPTC3k5uYCEBYWVut7FBcXY7FYqjxERKTh+v2YDgT7erLrhIX3Nxwxuhy3l39uiAkUZi6b1Wpl2rRpDBo0iM6dO9f6PjNnziQkJMT+iIuLc2CVIiLiapoG+fDE6PYAvPLdPjJyiwyuyL1V7v7r7WnGx9PD4GpqxmXCTFJSEsnJyXz88cd1us+MGTPIzc21P9LStDukiEhDd2ufeHrEh5JfXMZzi3cbXY5bs+/+6ya9MuAiYWbq1KksXryYlStXEhsbW6d7+fj4EBwcXOUhIiINm9ls4i/ju+BhNvHVznRWpZw0uiS3dX6PGfeY/AsGhxmbzcbUqVNZsGABK1asoEWLFkaWIyIibqxjTDB3D0wE4OmFu3TMQS2527JsMDjMJCUl8cEHHzBv3jyCgoLIyMggIyODs2fP2q/JyMhg27ZtHDhwAICdO3eybds2srKyjCpbRERc1LRr2hId4svRrEI+3XzM6HLckrudmA0Gh5lZs2aRm5vL0KFDiY6Otj/mz59vv+bNN9+kR48e3H///QAMGTKEHj16sGjRIqPKFhERFxXo48mUc70z3ySnG1uMm1LPzGWy2WzVPqZMmWK/5s9//vMlrxEREak0qnMUABsOZZFdUGJwNe7n/IZ5CjMiIiKGSAgPoEN0MOVWG0v3ZBpdjttxt3OZQGFGREQaoNHnemeWJGcYXIn7sWiYSURExHiVYeb7/aftwyZSM+52LhMozIiISAPUplkQrZoGUFJuZcVe7TlzOTQBWERExEWM7hwNwDc7NdR0Oc5vmqcwIyIiYqjKVU2r9p2ksKTsEldLJU0AFhERcRGdYoKJC/OjqNTK6pRTRpfjNjTMJCIi4iJMJtP5oSataqoxnc0kIiLiQiqHmlbsPUlxmc5qupSycisFJRW/TuqZERERcQHdY0OJCvYlv7iM7/efNrocl5dffH5ukebMiIiIuACz2WTvndFQ06VVzpfx8TTj7ek+EcF9KhUREamFyjCzdHcmpeVWg6txbe54YjYozIiISAPXJzGMiEBvcs+WslxnNf2qyp4Zd9pjBhRmRESkgfMwm7i5TxwAs9cdNrYYF+eOy7JBYUZERBqBO/on4mk28WNqFrtO5Bpdjstyx3OZQGFGREQagagQX0Z3qdhzZo56Zy5KPTMiIiIubMrARAAWbj/BmfxiY4txUed7ZhRmREREXE7P+FC6xYZQUmblo41HjS7HJbnjuUygMCMiIo2EyWTi7kEtAHh/wxEt066Gxb6aSWFGRETEJY3pEk3TIB8yLcXaRK8aGmYSERFxcd6eZm7vlwDA7HWpBlfjeiyaACwiIuL6busXj7eHma1Hc9iWlmN0OS5FS7NFRETcQNMgH8Z2iwHgle9S2JaWQ5nmzwDuuwOwe1UrIiLiAHcPSuSzLcdYu/80a/efJsDbg54JTejXIowbesUSHeJndImGUM+MiIiIm+jcPIT/3NGL4R2aEeLnRUFJOWv3n+bl7/bx8LytRpdnGHfdNM+9qhUREXGQkZ2iGNkpCqvVRkpmHhsOneHZxbvZdCSbtKxC4sL8jS6xXpWVWyksKQfcL8yoZ0ZERBo1s9lEh+hg7h7Ugn4twgD4eme6wVXVv/ziMvu/a5hJRETETV3XtWJi8FeNMMxUDjH5eJrx9nSveOBe1YqIiDjRqM5RmE2w41guR88UGl1OvbK46eRfUJgRERGxiwj0YWCrCAAW7zxhcDX1y12XZYPCjIiISBXXdo0G4KsdjWuoyb6SyU89MyIiIm5tVKcoPMwmdp2wkHq6wOhy6k3lHjPqmREREXFzTQK8GdS6Yqjpqx2NZ6jJctY9D5kEhRkREZELXHduqGlxIxpqsg8z+WiYSURExO2N7BiFl4eJvRl5HDiZZ3Q59SKv2D13/wWFGRERkQuE+HsxuE1ToPH0zrjruUygMCMiIlKta7s0rlVNFjc9lwkUZkRERKp1TadmeHuY2X8yn5SMhj/U5K6HTILCjIiISLWCfb0Y0rZiqOnVpfsoK7caXJFzaZhJRESkAbpvcAs8zSaW7MrgkY+3UtqAA412ABYREWmA+rcM583be+HtYebrnRn89sMtFJeVG12WU6hnRkREpIEa3rEZb93ZC29PM0t3Z/LQ+5spKm14gcbeM+OnnhkREZEGZ2i7SN69qw++XmZWppxiyuyNzPvxKMv3ZJJ8PJdTecVYrTajy6y1snIrhSUVAc0de2bcL36JiIgY4Io2Ecy5uy/3zPmJDYey2HAoq8r7sU38+HLqFTQJ8Daowtqr7JUBrWYSERFp0Pq3DOeThwZwe/94hneIpHPzYJoG+WAywbHss8xel2p0ibVSGWZ8vcx4ebhfNHC/+CUiImKgTjEhPD++S5XXvtmZzm8+3MLs9Ye5b0hLgt1sqMbixpN/QT0zIiIidTayUxStIwPJKyrj/R+OGF3OZXPnDfNAYUZERKTOzGYTvx3aCoD/fp9KYUnZJT7hWtx5WTYozIiIiDjE9d1iiAvzI6ughI82phldzmVx5w3zQGFGRETEITw9zPzmytYAvLXmoFttrne+Z0Zh5rLNnDmTPn36EBQURGRkJOPHjyclJaXKNUVFRSQlJREeHk5gYCA33HADmZmZBlUsIiJycTf0ak5UsC+ZlmI+23zc6HJqzD5nxkfDTJdt9erVJCUlsWHDBpYuXUppaSkjRoygoKDAfs1jjz3Gl19+ySeffMLq1as5ceIEEydONLBqERGR6vl4evDAkJYAzFp9wG0Op8wrdu8JwIZWvWTJkirP58yZQ2RkJJs3b2bIkCHk5uby3//+l3nz5nHVVVcBMHv2bDp06MCGDRvo37+/EWWLiIhc1K1943l95QHSss6yaPsJJvaMNbqkS6ocZgr2U89MneXm5gIQFhYGwObNmyktLWX48OH2a9q3b098fDw//PBDtfcoLi7GYrFUeYiIiNQXP28P7rmiBQCzVh3EZnP9Yw4sWprtGFarlWnTpjFo0CA6d+4MQEZGBt7e3oSGhla5tlmzZmRkZFR7n5kzZxISEmJ/xMXFObt0ERGRKu4YkICPp5n9J/PZne76/1NtOaul2Q6RlJREcnIyH3/8cZ3uM2PGDHJzc+2PtDT3Wh4nIiLuL9jXi2HtIgH4eme6wdVcmjbNc4CpU6eyePFiVq5cSWzs+bHFqKgoSkpKyMnJqXJ9ZmYmUVFR1d7Lx8eH4ODgKg8REZH6NqZrNABf78xw+aEmLc2uA5vNxtSpU1mwYAErVqygRYsWVd7v1asXXl5eLF++3P5aSkoKR48eZcCAAfVdroiISI1d3T4SH08zqacLXH6o6fymee45zGRoBEtKSmLevHksXLiQoKAg+zyYkJAQ/Pz8CAkJ4d5772X69OmEhYURHBzMww8/zIABA7SSSUREXFqAjyfD2kWyZFcGX+9Mp1NMiNElXaCkzMrzX+3mZF4xJhM0DfIxuqRaMbRnZtasWeTm5jJ06FCio6Ptj/nz59uvefXVV7nuuuu44YYbGDJkCFFRUXz++ecGVi0iIlIzrjzUlJ57lpvf+oG55w7GfHxEO5oF+xpcVe2YbK72q+tgFouFkJAQcnNzNX9GRETqVUFxGT2fW0pxmZWvHxlMxxjX+Dm0/uBpHp63lTMFJQT7evLqzd25ukMzo8uq4nJ+frvEBGAREZGGKMDHk6HtmgLw1c4TBldT4ZNNadz+zo+cKSihQ3Qwix8e7HJB5nIpzIiIiDjRmC6uM9SUW1jKs4t3Y7XBxJ7N+fw3A4kP9ze0JkdQmBEREXGiqzs0w/vcqqY96XmG1vLf7w+RV1RG+6ggXr6xG37eHobW4ygKMyIiIk4U6OPJsHNDTUZuoJdTWMK76w4DMG14G8xmk2G1OJrCjIiIiJNVDjV9tTPdsKGmt9ceIr+4jI7RwYzoWP3Gs+5KYUZERMTJjB5qyiooYfa5XpnHrmnboHplQGFGRETE6QJ9PBna1rhVTf9Zc5DCknK6NA9heIfIev9+Z1OYERERqQfXdYsBYO76IxzLLqy37z2dX8zc9RUb4z12TRtMpobVKwMKMyIiIvViTOcoeiU0Ia+4jOn/2065tX7mzvxn9UHOlpbTLS7UfpJ3Q6MwIyIiUg88Pcz8fVI3Arw92JiaxTtrDzn9O09aiuzHFTw2vGH2yoDCjIiISL1JCA/g6bEdAXj5uxR2n3DuadofbUyjuMxKz/hQrjw3Z6chUpgRERGpR5N6x3FNx2aUltt4bP42ikrLnfZdu9NzARjbLabB9sqAwoyIiEi9MplMzJzYhYhAb1Iy83j52xSnfdfBUwUAtI4MdNp3uAKFGRERkXoWEejDizd0BeCd71P54eAZh39HabmVw6crwkyrpgozIiIi4mBXd2jGrX3jAHjh6z0O3xn4aFYhZVYb/t4eRAX7OvTerkZhRkRExCCPj2iHv7cHO4/nsmzPSYfe++DJfABaNg1ocDv+/pLCjIiIiEHCA32YMjARgL8v3YfVgXvPVM6XaehDTKAwIyIiYqj7B7ck0MeTPekWvt2V4bD7HjxV0TOjMCMiIiJO1STAm3sGJQLw6jLH9c5UhpmGvpIJFGZEREQMd+/glgT5erIvM5+vdqbX+X42m80+Z0Y9MyIiIuJ0IX5e3D+4JQCvLdtX53ObTueXYCkqw2yChHB/R5To0hRmREREXMDdgxIJ8fPi4KkCvtx+ok73OnCuVyYuzB9fLw9HlOfSFGZERERcQJCvFw8Mqeid+cfy/ZSVW2t9r8Y0+RcUZkRERFzGXQMTCQvwJvV0Af9ccaDW9zkfZgIcVZpLU5gRERFxEYE+nvx+TAcA/rl8Pwu2HqvVfRrTHjOgMCMiIuJSbuwVy4NXVgw3PfHpTjamZl32PewrmRrBsmxQmBEREXE5T4xsz+jOUZSUW3ng/U2knjswsibOlpRzPOcsoJ4ZERERMYjZbOLvk7rTLS6UnMJS7pnzE9kFJTX67KHTFb0yYQHehAV4O7NMl6EwIyIi4oL8vD14+85eNA/1I/V0AQ9+sJmSskuvcDo/X6ZxTP4FhRkRERGXFRnky7tT+hDk48nG1Cz++EUyNtuvb6h3oBHt/FtJYUZERMSFtYsK4p+39cBsgvmb0nh33eFfvb6x7TEDCjMiIiIub1i7SPuS7b98tZtVKScveu35lUwaZhIREREXcu8VLbi5dxxWGzw8bysHTuZdcE251WZf+aSeGREREXEpJpOJ58Z3pm9iGHnFZdz73qYLVjidyDlLcZkVbw8zsU0a/gGTlRRmRERE3IS3p5lZt/ekeagfR84UkjRvS5UznA6cmy/TIiIAD7PJqDLrncKMiIiIGwkP9OG/U3rj7+3B+oNn+PvSffb3GuN8GVCYERERcTvto4J58YauALyx6iBLd2cC5/eYad2I5suAwoyIiIhbGtsthikDEwGY/r9tHD1T2OjOZKqkMCMiIuKmfj+mAz3jQ8krKuOhDzaz/9wKp8a0kgkUZkRERNyWt6eZ1yf3JCzAm93pFrILS4GKCcCNicKMiIiIG4sO8eNft1bsEAwQE+JLgI+nsUXVM4UZERERNzeodQTTr2kLQPf4UGOLMUDjim4iIiINVNKw1vRJDKNtsyCjS6l3CjMiIiINgMlkol/LcKPLMISGmURERMStKcyIiIiIW1OYEREREbemMCMiIiJuTWFGRERE3JrCjIiIiLg1hRkRERFxa4aGmTVr1jB27FhiYmIwmUx88cUXVd7PzMxkypQpxMTE4O/vz6hRo9i/f78xxYqIiIhLMjTMFBQU0K1bN15//fUL3rPZbIwfP55Dhw6xcOFCtm7dSkJCAsOHD6egoMCAakVERMQVGboD8OjRoxk9enS17+3fv58NGzaQnJxMp06dAJg1axZRUVF89NFH3HffffVZqoiIiLgol50zU1xcDICvr6/9NbPZjI+PD99///2vfs5isVR5iIiISMPlsmGmffv2xMfHM2PGDLKzsykpKeHFF1/k2LFjpKenX/RzM2fOJCQkxP6Ii4urx6pFRESkvrlsmPHy8uLzzz9n3759hIWF4e/vz8qVKxk9ejRm88XLnjFjBrm5ufZHWlpaPVYtIiIi9c2lT83u1asX27ZtIzc3l5KSEpo2bUq/fv3o3bv3RT/j4+ODj4+P/bnNZgPQcJOIiIgbqfy5Xflz/Ne4dJipFBISAlRMCt60aRPPPfdcjT+bl5cHoOEmERERN5SXl2fPARdjaJjJz8/nwIED9uepqals27aNsLAw4uPj+eSTT2jatCnx8fHs3LmTRx99lPHjxzNixIgaf0dMTAxpaWkEBQVhMpnsr/fp04effvqpVs8r/91isRAXF0daWhrBwcG1+jW42PfV9rrq3q/Ja2pv1fYuX77cYW2tSTtqep3a63rtrWlba3JtY2rvxd5Te2v29/HP32uo7bXZbOTl5RETE3PJWgwNM5s2bWLYsGH259OnTwfgrrvuYs6cOaSnpzN9+nQyMzOJjo7mzjvv5I9//ONlfYfZbCY2NvaC1z08PKr8pl/O81++FxwcXOc/QL+8Z22vq+79mrym9lbfXke0tSbtqOl1aq/rtbemba3JtY2pvRd7T+29vL+PG3p7L9UjU8nQMDN06NBfHQt75JFHeOSRR5zy3UlJSbV+/sv3nFFPba+r7v2avKb2qr2O1Jjaezn3U3sv/Z7ae3nta+jtrSmTrSYza6RaFouFkJAQcnNzHfJ/s66uMbW3MbUV1N6GTu1t2Bpbe6vjskuz3YGPjw9/+tOfqqyeasgaU3sbU1tB7W3o1N6GrbG1tzrqmRERERG3pp4ZERERcWsKMyIiIuLWFGZERETErSnMiIiIiFtTmBERERG3pjBTD1JSUujevbv94efnxxdffGF0WU6VmprKsGHD6NixI126dKGgoMDokpwqMTGRrl270r179yq7WjdkhYWFJCQk8PjjjxtdilPl5OTQu3dvunfvTufOnXn77beNLsmp0tLSGDp0KB07dqRr16588sknRpfkdBMmTKBJkybceOONRpfiFIsXL6Zdu3a0adOGd955x+hynEJLs+tZfn4+iYmJHDlyhICAAKPLcZorr7yS559/nsGDB5OVlUVwcDCenm5xrmmtJCYmkpycTGBgoNGl1JunnnqKAwcOEBcXx8svv2x0OU5TXl5OcXEx/v7+FBQU0LlzZzZt2kR4eLjRpTlFeno6mZmZdO/enYyMDHr16sW+ffsa9N9Xq1atIi8vj/fee49PP/3U6HIcqqysjI4dO7Jy5UpCQkLo1asX69evb3B/ftUzU88WLVrE1Vdf3aD/Yti1axdeXl4MHjwYgLCwsAYdZBqj/fv3s3fvXkaPHm10KU7n4eGBv78/AMXFxdhstl89hsXdRUdH0717dwCioqKIiIggKyvL2KKcbOjQoQQFBRldhlNs3LiRTp060bx5cwIDAxk9ejTfffed0WU5nMIMsGbNGsaOHUtMTAwmk6naIaDXX3+dxMREfH196devHxs3bqzVd/3vf//j5ptvrmPFdePs9u7fv5/AwEDGjh1Lz549eeGFFxxY/eWrj99fk8nElVdeSZ8+ffjwww8dVHnt1Ed7H3/8cWbOnOmgiuumPtqbk5NDt27diI2N5Xe/+x0REREOqv7y1effV5s3b6a8vJy4uLg6Vl179dleV1TX9p84cYLmzZvbnzdv3pzjx4/XR+n1SmEGKCgooFu3brz++uvVvj9//nymT5/On/70J7Zs2UK3bt0YOXIkJ0+etF9TOZ7+y8eJEyfs11gsFtavX8+YMWOc3qZf4+z2lpWVsXbtWt544w1++OEHli5dytKlS+ureReoj9/f77//ns2bN7No0SJeeOEFduzYUS9tq46z27tw4ULatm1L27Zt66tJv6o+fn9DQ0PZvn07qampzJs3j8zMzHppW3Xq6++rrKws7rzzTt566y2nt+nX1Fd7XZUj2t8o2KQKwLZgwYIqr/Xt29eWlJRkf15eXm6LiYmxzZw587LuPXfuXNvkyZMdUabDOKO969evt40YMcL+/G9/+5vtb3/7m0PqrStn/v5Wevzxx22zZ8+uQ5WO44z2Pvnkk7bY2FhbQkKCLTw83BYcHGx75plnHFl2rdXH7+9vfvMb2yeffFKXMh3GWe0tKiqyDR482DZ37lxHleoQzvz9Xblype2GG25wRJlOU5v2r1u3zjZ+/Hj7+48++qjtww8/rJd665N6Zi6hpKSEzZs3M3z4cPtrZrOZ4cOH88MPP1zWvVxhiOlSHNHePn36cPLkSbKzs7FaraxZs4YOHTo4q+Q6cUR7CwoKyMvLAyomeK9YsYJOnTo5pd66ckR7Z86cSVpaGocPH+bll1/m/vvv5+mnn3ZWyXXiiPZmZmbaf39zc3NZs2YN7dq1c0q9deWI9tpsNqZMmcJVV13FHXfc4axSHcKRfz+7o5q0v2/fviQnJ3P8+HHy8/P55ptvGDlypFElO41mZV7C6dOnKS8vp1mzZlVeb9asGXv37q3xfXJzc9m4cSOfffaZo0t0KEe019PTkxdeeIEhQ4Zgs9kYMWIE1113nTPKrTNHtDczM5MJEyYAFStf7r//fvr06ePwWh3BUX+e3YUj2nvkyBEeeOAB+8Tfhx9+mC5dujij3DpzRHvXrVvH/Pnz6dq1q31+xvvvv++SbXbUn+fhw4ezfft2CgoKiI2N5ZNPPmHAgAGOLtfhatJ+T09PXnnlFYYNG4bVauX//b//1+BWMoHCTL0JCQkxdJy9vo0ePbpRrHQBaNmyJdu3bze6DENMmTLF6BKcrm/fvmzbts3oMurNFVdcgdVqNbqMerVs2TKjS3Cq66+/nuuvv97oMpxKw0yXEBERgYeHxwVBJDMzk6ioKIOqch61t4La2zCovRXU3oapsbf/5xRmLsHb25tevXqxfPly+2tWq5Xly5e7RTfk5VJ71d6GRO1Vexuyxt7+n9MwExWTNg8cOGB/npqayrZt2wgLCyM+Pp7p06dz11130bt3b/r27ctrr71GQUEBd999t4FV157aq/aqvWqvu2hs7f2lxt7+GjN2MZVrWLlypQ244HHXXXfZr/nXv/5li4+Pt3l7e9v69u1r27Bhg3EF15Haq/aqvWqvu2hs7f2lxt7+mtLZTCIiIuLWNGdGRERE3JrCjIiIiLg1hRkRERFxawozIiIi4tYUZkRERMStKcyIiIiIW1OYEREREbemMCMiIiJuTWFGRFxaYmIir732mtFliIgLU5gREaZMmcL48eONLqNaP/30Ew888IDTvycxMRGTyYTJZMLf358uXbrwzjvvXPZ9TCYTX3zxheMLFJGLUpgREUOUlpbW6LqmTZvi7+/v5GoqPPvss6Snp5OcnMztt9/O/fffzzfffFMv3y0itacwIyKXlJyczOjRowkMDKRZs2bccccdnD592v7+kiVLuOKKKwgNDSU8PJzrrruOgwcP2t8/fPgwJpOJ+fPnc+WVV+Lr68uHH35o7xF6+eWXiY6OJjw8nKSkpCpB55fDTCaTiXfeeYcJEybg7+9PmzZtWLRoUZV6Fy1aRJs2bfD19WXYsGG89957mEwmcnJyfrWdQUFBREVF0bJlS5544gnCwsJYunSp/f2ffvqJa665hoiICEJCQrjyyivZsmVLlVoBJkyYgMlksj8HWLhwIT179sTX15eWLVvyzDPPUFZWVpNffhG5BIUZEflVOTk5XHXVVfTo0YNNmzaxZMkSMjMzmTRpkv2agoICpk+fzqZNm1i+fDlms5kJEyZgtVqr3OvJJ5/k0UcfZc+ePYwcORKAlStXcvDgQVauXMl7773HnDlzmDNnzq/W9MwzzzBp0iR27NjBmDFjmDx5MllZWQCkpqZy4403Mn78eLZv386DDz7IU089dVlttlqtfPbZZ2RnZ+Pt7W1/PS8vj7vuuovvv/+eDRs20KZNG8aMGUNeXh5QEXYAZs+eTXp6uv352rVrufPOO3n00UfZvXs3//nPf5gzZw5/+ctfLqsuEbkIo4/tFhHj3XXXXbZx48ZV+95zzz1nGzFiRJXX0tLSbIAtJSWl2s+cOnXKBth27txps9lsttTUVBtge+211y743oSEBFtZWZn9tZtuusl28803258nJCTYXn31VftzwPaHP/zB/jw/P98G2L755hubzWazPfHEE7bOnTtX+Z6nnnrKBtiys7Or/wU49z3e3t62gIAAm6enpw2whYWF2fbv33/Rz5SXl9uCgoJsX375ZZX6FixYUOW6q6++2vbCCy9Uee3999+3RUdHX/TeIlJz6pkRkV+1fft2Vq5cSWBgoP3Rvn17APtQ0v79+7n11ltp2bIlwcHB9uGVo0ePVrlX7969L7h/p06d8PDwsD+Pjo7m5MmTv1pT165d7f8eEBBAcHCw/TMpKSn06dOnyvV9+/atUVt/97vfsW3bNlasWEG/fv149dVXad26tf39zMxM7r//ftq0aUNISAjBwcHk5+df0M5f2r59O88++2yVX8P777+f9PR0CgsLa1SbiFycp9EFiIhry8/PZ+zYsbz44osXvBcdHQ3A2LFjSUhI4O233yYmJgar1Urnzp0pKSmpcn1AQMAF9/Dy8qry3GQyXTA85YjP1ERERAStW7emdevWfPLJJ3Tp0oXevXvTsWNHAO666y7OnDnDP/7xDxISEvDx8WHAgAEXtPOX8vPzeeaZZ5g4ceIF7/n6+ta5bpHGTmFGRH5Vz549+eyzz0hMTMTT88K/Ms6cOUNKSgpvv/02gwcPBuD777+v7zLt2rVrx9dff13ltcq5K5cjLi6Om2++mRkzZrBw4UIA1q1bxxtvvMGYMWMASEtLqzIRGiqCVnl5eZXXevbsSUpKSpVeHhFxHA0ziQgAubm5bNu2rcojLS2NpKQksrKyuPXWW/npp584ePAg3377LXfffTfl5eU0adKE8PBw3nrrLQ4cOMCKFSuYPn26Ye148MEH2bt3L0888QT79u3jf//7n31Csclkuqx7Pfroo3z55Zds2rQJgDZt2vD++++zZ88efvzxRyZPnoyfn1+VzyQmJrJ8+XIyMjLIzs4G4Omnn2bu3Lk888wz7Nq1iz179vDxxx/zhz/8oe4NFhGFGRGpsGrVKnr06FHl8cwzzxATE8O6desoLy9nxIgRdOnShWnTphEaGorZbMZsNvPxxx+zefNmOnfuzGOPPcZLL71kWDtatGjBp59+yueff07Xrl2ZNWuWfTWTj4/PZd2rY8eOjBgxgqeffhqA//73v2RnZ9OzZ0/uuOMOHnnkESIjI6t85pVXXmHp0qXExcXRo0cPAEaOHMnixYv57rvv6NOnD/379+fVV18lISHBAS0WEZPNZrMZXYSIiDP95S9/4c033yQtLc3oUkTECTRnRkQanDfeeIM+ffoQHh7OunXreOmll5g6darRZYmIkyjMiEiDs3//fp5//nmysrKIj4/n//7v/5gxY4bRZYmIk2iYSURERNyaJgCLiIiIW1OYEREREbemMCMiIiJuTWFGRERE3JrCjIiIiLg1hRkRERFxawozIiIi4tYUZkRERMStKcyIiIiIW/v/1OTiuabzvnUAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#find learning rate\n", "lr = learn.lr_find()\n", "lr" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "background_save": true, "base_uri": "https://localhost:8080/", "height": 95 }, "id": "sRmtWAgVjJaa", "outputId": "e4da1f81-e746-4809-c6a8-cb6b2ca86a64" }, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n", " \n", " 0.00% [0/2 00:00<?]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_losstime

\n", "\n", "

\n", " \n", " 11.73% [1512/12889 1:29:58<11:17:01 12.1695]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#fit the model\n", "learn.fit_one_cycle(2,lr,wd=0.1)" ] }, { "cell_type": "markdown", "metadata": { "id": "REpIYKhuUzPZ" }, "source": [ "Export model and dataloader\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "zCGA4wkBCPNI" }, "outputs": [], "source": [ "import pickle\n", "\n", "# Open a file in write binary mode\n", "with open('dataloader.pkl', 'wb') as f:\n", " # Use pickle.dump() to save the DataLoader object to the file\n", " pickle.dump(dls, f)\n", "\n", "# Close the file\n", "f.close()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VXIOtm1YHACi", "outputId": "210693f7-a77b-42d7-f0b1-d062f79ac632" }, "outputs": [ { "data": { "text/plain": [ "Path('models/myModel.pth')" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "learn.save('myModel', with_opt=False)" ] } ], "metadata": { "accelerator": "GPU", "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "0100d2365d6e4c21989fc0535b33a85d": { "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 } }, "0815a89e82c14d1d903b27a2cc5b7b5b": { "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_3027622c410c40f4ad210db64c1d1a94", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_af1fe7205aee465eb81b9dbc7e43de6c", "value": 1 } }, "0cf3f86b50f04a66b6d3d1843bb5fa6e": { "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": "" } }, "0d032f574df44a22adc8d2b7d1644c03": { "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": "" } }, "1582978bd2374a76ad526f98c347624e": { "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_3dd3fdeca5c74ed28189ea29e4362ecb", "max": 1912529, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_8bd265b9d9754c788d43987bc985d21a", "value": 1912529 } }, "1a17e002e324495c84927259ed67b716": { "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 } }, "1a8fb1e8978f4b3a9cca6204e7c4e6f3": { "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_678f87b1cf9246b885ac7d6992b214e8", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_23c14b43d317437693e83c83f7b4f126", "value": 1 } }, "1f03e836074342a2adf8d71cdc214519": { "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 } }, "1f05e0bb79e442f19a4a1fc30ed6a37f": { "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_1a17e002e324495c84927259ed67b716", "placeholder": "​", "style": "IPY_MODEL_ff6e66e03d3e480ea47d49d526607b43", "value": " 1.61k/? [00:00<00:00, 49.5kB/s]" } }, "23c14b43d317437693e83c83f7b4f126": { "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": "" } }, "26f51acc3c084b7cb20ebbc040572106": { "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 } }, "28890d0c8b6440448fad3fa45f420ef5": { "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": "" } }, "2f695d376d164c339d3890c74a34adca": { "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_f3743f2cafe34f26acfcd30a5f2c47b7", "placeholder": "​", "style": "IPY_MODEL_a8b7d9a1b3074b218837136d663a0b70", "value": "Downloading spiece.model: 100%" } }, "3027622c410c40f4ad210db64c1d1a94": { "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": "20px" } }, "36b7938f0a5b42feada3855b6dc3aa55": { "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_c811733ae20d4a9ab266609afdfda0a9", "placeholder": "​", "style": "IPY_MODEL_28890d0c8b6440448fad3fa45f420ef5", "value": "Downloading model.safetensors: 100%" } }, "3ca00e8e3e75457da422b53920b68845": { "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 } }, "3dd3fdeca5c74ed28189ea29e4362ecb": { "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 } }, "4501782092c345ccb216c15f4af600b1": { "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_7a35744c35214b7c909398a81daba65f", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_c51729f423cf4d03b99f9cda87a5f9c8", "value": 1 } }, "4740aa4a51d140648f26fa50964fd6df": { "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": "" } }, "4df88f19d5ff4bfdb7a7083d4a54b4aa": { "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 } }, "621c21424c2d4330933529ec33766426": { "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 } }, "6717557159144db4b1870e140566fc90": { "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": "" } }, "678f87b1cf9246b885ac7d6992b214e8": { "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": "20px" } }, "6b7935e93d0b453f9f8582579465e78d": { "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_9661b4d8be7f4342b20730a35bf566e4", "max": 2274730122, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_7c798c30beae4f508956f46fc0cabb36", "value": 2274730122 } }, "6dc1c0344fbc4bff8219d491adf49283": { "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 } }, "6fabf34282ce4396b4819572585062b8": { "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_26f51acc3c084b7cb20ebbc040572106", "placeholder": "​", "style": "IPY_MODEL_0cf3f86b50f04a66b6d3d1843bb5fa6e", "value": " 1.77k/? [00:00<00:00, 46.1kB/s]" } }, "792f5a92445c471fac705ea787fa872e": { "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_d1341bd8dbc94b4fa0e096ed6681afe8", "IPY_MODEL_1a8fb1e8978f4b3a9cca6204e7c4e6f3", "IPY_MODEL_1f05e0bb79e442f19a4a1fc30ed6a37f" ], "layout": "IPY_MODEL_bcb00e0f26dc4897bc3e159ff00c00e2" } }, "7a35744c35214b7c909398a81daba65f": { "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": "20px" } }, "7c798c30beae4f508956f46fc0cabb36": { "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": "" } }, "7f17d5f45ee34067bb31d388511e557d": { "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_4df88f19d5ff4bfdb7a7083d4a54b4aa", "placeholder": "​", "style": "IPY_MODEL_f068389bb32140878e93494088e2d4eb", "value": " 2.27G/2.27G [00:28<00:00, 70.1MB/s]" } }, "85517733bd164377a1d57cf3e999116b": { "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_2f695d376d164c339d3890c74a34adca", "IPY_MODEL_1582978bd2374a76ad526f98c347624e", "IPY_MODEL_d3bb290f04d04506ab43d04926cafc43" ], "layout": "IPY_MODEL_b92a401606fa495aa33847e52e741a32" } }, "8bd265b9d9754c788d43987bc985d21a": { "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": "" } }, "9661b4d8be7f4342b20730a35bf566e4": { "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 } }, "98eb17cdb931483f952ea5a059a0a8dc": { "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 } }, "9f6e697230094e84bcce6980e4df64d8": { "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": "" } }, "a2da2c8b4cfd42b0ae912f177614ca32": { "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_621c21424c2d4330933529ec33766426", "placeholder": "​", "style": "IPY_MODEL_4740aa4a51d140648f26fa50964fd6df", "value": "Downloading (…)cial_tokens_map.json: " } }, "a498df77cf774d3987cb9c20cc111d73": { "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_bfd71dc7d5874b5daed93770b3cc1718", "IPY_MODEL_4501782092c345ccb216c15f4af600b1", "IPY_MODEL_ed9bd254bc304befb0e1417a5a61c28c" ], "layout": "IPY_MODEL_c191b186e60f4584b95be2e2999f6c70" } }, "a8b7d9a1b3074b218837136d663a0b70": { "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": "" } }, "af1fe7205aee465eb81b9dbc7e43de6c": { "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": "" } }, "b92a401606fa495aa33847e52e741a32": { "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 } }, "bcb00e0f26dc4897bc3e159ff00c00e2": { "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 } }, "bfd71dc7d5874b5daed93770b3cc1718": { "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_6dc1c0344fbc4bff8219d491adf49283", "placeholder": "​", "style": "IPY_MODEL_6717557159144db4b1870e140566fc90", "value": "Downloading (…)okenizer_config.json: " } }, "c191b186e60f4584b95be2e2999f6c70": { "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 } }, "c51729f423cf4d03b99f9cda87a5f9c8": { "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": "" } }, "c811733ae20d4a9ab266609afdfda0a9": { "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 } }, "d1341bd8dbc94b4fa0e096ed6681afe8": { "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_0100d2365d6e4c21989fc0535b33a85d", "placeholder": "​", "style": "IPY_MODEL_d54b8b7314764b16b82d02ff4dfa16b5", "value": "Downloading (…)lve/main/config.json: " } }, "d3bb290f04d04506ab43d04926cafc43": { "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_1f03e836074342a2adf8d71cdc214519", "placeholder": "​", "style": "IPY_MODEL_0d032f574df44a22adc8d2b7d1644c03", "value": " 1.91M/1.91M [00:00<00:00, 18.7MB/s]" } }, "d54b8b7314764b16b82d02ff4dfa16b5": { "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": "" } }, "d95cc41f88604fc08462ceb0de365a73": { "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_36b7938f0a5b42feada3855b6dc3aa55", "IPY_MODEL_6b7935e93d0b453f9f8582579465e78d", "IPY_MODEL_7f17d5f45ee34067bb31d388511e557d" ], "layout": "IPY_MODEL_f1c95858f41846e2a6c4ae412fba8bc5" } }, "e6fd0eebf9c84215800dbd0769d37450": { "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_a2da2c8b4cfd42b0ae912f177614ca32", "IPY_MODEL_0815a89e82c14d1d903b27a2cc5b7b5b", "IPY_MODEL_6fabf34282ce4396b4819572585062b8" ], "layout": "IPY_MODEL_3ca00e8e3e75457da422b53920b68845" } }, "ed9bd254bc304befb0e1417a5a61c28c": { "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_98eb17cdb931483f952ea5a059a0a8dc", "placeholder": "​", "style": "IPY_MODEL_9f6e697230094e84bcce6980e4df64d8", "value": " 2.04k/? [00:00<00:00, 52.3kB/s]" } }, "f068389bb32140878e93494088e2d4eb": { "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": "" } }, "f1c95858f41846e2a6c4ae412fba8bc5": { "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 } }, "f3743f2cafe34f26acfcd30a5f2c47b7": { "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 } }, "ff6e66e03d3e480ea47d49d526607b43": { "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 }