Last active
April 25, 2022 14:53
-
-
Save audhiaprilliant/12aeb9a9e5726d95ee73217163fa22fb to your computer and use it in GitHub Desktop.
How to Automatically Build Stopwords
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "id": "cosmetic-statistics", | |
| "metadata": {}, | |
| "source": [ | |
| "# Zipf's Law" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "spanish-adoption", | |
| "metadata": {}, | |
| "source": [ | |
| "---" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "domestic-holocaust", | |
| "metadata": {}, | |
| "source": [ | |
| "## Import packages" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "id": "prescription-smile", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# HTTP library for Python\n", | |
| "import requests\n", | |
| "\n", | |
| "# Regular expression\n", | |
| "import re\n", | |
| "\n", | |
| "# Array manipulation\n", | |
| "import collections\n", | |
| "\n", | |
| "# Data manipulation\n", | |
| "import pandas as pd\n", | |
| "\n", | |
| "# Matrix operation\n", | |
| "import numpy as np\n", | |
| "\n", | |
| "# Linear regression\n", | |
| "from sklearn.linear_model import LinearRegression\n", | |
| "\n", | |
| "# Data viz\n", | |
| "import plotnine\n", | |
| "from plotnine import *" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "regulation-angel", | |
| "metadata": {}, | |
| "source": [ | |
| "## Load data set" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "indoor-picture", | |
| "metadata": {}, | |
| "source": [ | |
| "### Single document" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "simplified-creature", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# URL for Sherlock Holmes story\n", | |
| "url = 'https://www.gutenberg.org/files/1661/1661-0.txt'\n", | |
| "# Make a GET request for the story\n", | |
| "f = requests.get(url)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "equivalent-creativity", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Character set encoding: UTF-8\n", | |
| "text = f.content.decode(\n", | |
| " encoding = 'utf-8',\n", | |
| " errors = 'replace'\n", | |
| ")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "disabled-florida", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Show the data\n", | |
| "print(text)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "second-blogger", | |
| "metadata": {}, | |
| "source": [ | |
| "### Multiple document" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "id": "intended-neutral", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Access and preprocess >>> https://www.gutenberg.org/files/1661/1661-0.txt\n", | |
| "Access and preprocess >>> https://www.gutenberg.org/files/2701/2701-0.txt\n", | |
| "Access and preprocess >>> https://www.gutenberg.org/files/11/11-0.txt\n", | |
| "Access and preprocess >>> https://www.gutenberg.org/files/98/98-0.txt\n", | |
| "Access and preprocess >>> https://www.gutenberg.org/files/74/74-0.txt\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# List of URL\n", | |
| "urls = [\n", | |
| " 'https://www.gutenberg.org/files/1661/1661-0.txt',\n", | |
| " 'https://www.gutenberg.org/files/2701/2701-0.txt',\n", | |
| " 'https://www.gutenberg.org/files/11/11-0.txt',\n", | |
| " 'https://www.gutenberg.org/files/98/98-0.txt',\n", | |
| " 'https://www.gutenberg.org/files/74/74-0.txt'\n", | |
| "]\n", | |
| "\n", | |
| "# Text\n", | |
| "text = ''\n", | |
| "\n", | |
| "# Loop URLs\n", | |
| "for url in urls:\n", | |
| " # Make a GET request for the story\n", | |
| " f = requests.get(url)\n", | |
| "\n", | |
| " # Character set encoding: UTF-8\n", | |
| " text_partial = f.content.decode(\n", | |
| " encoding = 'utf-8',\n", | |
| " errors = 'replace'\n", | |
| " )\n", | |
| " \n", | |
| " # Text preprocessing\n", | |
| " # Texts for the start and end of main content\n", | |
| " START = 'START OF THE PROJECT GUTENBERG EBOOK'\n", | |
| " END = 'END OF THE PROJECT GUTENBERG EBOOK'\n", | |
| " \n", | |
| " # Remove the start mark\n", | |
| " text_partial = re.findall(\n", | |
| " pattern = START + '.+\\n([\\s\\S]+|[\\d\\D]+|[\\w\\W]+)',\n", | |
| " string = text_partial)[0]\n", | |
| " # Remove the end mark\n", | |
| " text_partial = re.findall(\n", | |
| " pattern = '([\\s\\S]+|[\\d\\D]+|[\\w\\W]+)' + END,\n", | |
| " string = text_partial)[0]\n", | |
| " \n", | |
| " # Append text\n", | |
| " text += text_partial\n", | |
| " \n", | |
| " # Status\n", | |
| " print('Access and preprocess >>> {url}'.format(\n", | |
| " url = url\n", | |
| " )\n", | |
| " )" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "id": "appointed-captain", | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "\r\n", | |
| "cover\r\n", | |
| "\r\n", | |
| "\r\n", | |
| "\r\n", | |
| "\r\n", | |
| "The Adventures of Sherlock Holmes\r\n", | |
| "\r\n", | |
| "by Arthur Conan Doyle\r\n", | |
| "\r\n", | |
| "\r\n", | |
| "Contents\r\n", | |
| "\r\n", | |
| " I. A Scandal in Bohemia\r\n", | |
| " II. The Red-Headed League\r\n", | |
| " III. A Case of Identity\r\n", | |
| " IV. The Boscombe Valley Mystery\r\n", | |
| " V. The Five Orange Pips\r\n", | |
| " VI. The Man with the Twisted Lip\r\n", | |
| " VII. The Adventure of the Blue Carbuncle\r\n", | |
| " VIII. The Adventure of the Speckled Band\r\n", | |
| " IX. The Adventure of the Engineer’s Thumb\r\n", | |
| " X. The Adventure of the Noble Bachelor\r\n", | |
| " XI. The Adventure of the Beryl Coronet\r\n", | |
| " XII. The Adventure of the Copper Beeches\r\n", | |
| "\r\n", | |
| "\r\n", | |
| "\r\n", | |
| "\r\n", | |
| "I. A SCANDAL IN BOHEMIA\r\n", | |
| "\r\n", | |
| "\r\n", | |
| "I.\r\n", | |
| "\r\n", | |
| "To Sherlock Holmes she is always _the_ woman. I have seldom heard him\r\n", | |
| "mention her under any other name. In his eyes she eclipses and\r\n", | |
| "predominates the whole of her sex. It was not that he felt any emotion\r\n", | |
| "akin to love for Irene Adler. All emotions, and that one particularly,\r\n", | |
| "were abhorrent to his cold, precise but admirably balanced mind. He\r\n", | |
| "was, I take it, the most perfect reasoning and observing machine that\r\n", | |
| "the world has seen, but as a lover he would have placed himself in a\r\n", | |
| "false position. He never spoke of the softer passions, save with a gibe\r\n", | |
| "and a sneer. They were admirable things for the observer—excellent for\r\n", | |
| "drawing the veil from men’s motives and actions. But for the trained\r\n", | |
| "reasoner to admit such intrusions into his own delicate and finely\r\n", | |
| "adjusted temperament was to introduce a distracting factor which might\r\n", | |
| "throw a doubt upon all his mental results. Grit in a sensitive\r\n", | |
| "instrument, or a crack in one of his own high-power lenses, would not\r\n", | |
| "be more disturbing than a strong emotion in a nature such as his. And\r\n", | |
| "yet there was but one woman to him, and that woman was the late Irene\r\n", | |
| "Adler, of dubious and questionable memory.\r\n", | |
| "\r\n", | |
| "I had seen little of Holmes lately. My marriage had drifted us away\r\n", | |
| "from each other. My own complete happiness, and the home-centred\r\n", | |
| "interests which rise up around the man who first finds himself master\r\n", | |
| "of his own establishment, were sufficient to absorb all my attention,\r\n", | |
| "while Holmes, who loathed every form of society with his whole Bohemian\r\n", | |
| "soul, remained in our lodgings in Baker Street, buried among his old\r\n", | |
| "books, and alternating from week to week between cocaine and ambition,\r\n", | |
| "the drowsiness of the drug, and the fierce energy of his own keen\r\n", | |
| "nature. He was still, as ever, deeply attracted by the study of crime,\r\n", | |
| "and occupied his immense faculties and extraordinary powers of\r\n", | |
| "observation in following out those clues, and clearing up those\r\n", | |
| "mysteries which had been abandoned as hopeless by the official police.\r\n", | |
| "From time to time I heard some vague account of his doings: of his\r\n", | |
| "summons to Odessa in the case of the Trepoff murder, of his clearing up\r\n", | |
| "of the singular tragedy of the Atkinson brothers at Trincomalee, and\r\n", | |
| "finally of the mission which he had accomplished so delicately and\r\n", | |
| "successfully for the reigning family of Holland. Beyond these signs of\r\n", | |
| "his activity, however, which I merely shared with all the readers of\r\n", | |
| "the daily press, I knew little of my former friend and companion.\r\n", | |
| "\r\n", | |
| "One night—it was on the twentieth of March, 1888—I was returning from a\r\n", | |
| "journey to a patient (for I had now returned to civil practice), when\r\n", | |
| "my way led me through Baker Street. As I passed the well-remembered\r\n", | |
| "door, which must always be associated in my mind with my wooing, and\r\n", | |
| "with the dark incidents of the Study in Scarlet, I was seized with a\r\n", | |
| "keen desire to see Holmes again, and to know how he was employing his\r\n", | |
| "extraordinary powers. His rooms were brilliantly lit, and, even as I\r\n", | |
| "looked up, I saw his tall, spare figure pass twice in a dark silhouette\r\n", | |
| "against the blind. He was pacing the room swiftly, eagerly, with his\r\n", | |
| "head sunk upon his chest and his hands clasped behind him. To me, who\r\n", | |
| "knew his every mood and habit, his attitude and manner told their own\r\n", | |
| "story. He was at work again. He had risen out of his drug-created\r\n", | |
| "dreams and was hot upon the scent of some new problem. I rang the bell\r\n", | |
| "and was shown up to the chamber which had formerly been in part my own.\r\n", | |
| "\r\n", | |
| "His manner was not effusive. It seldom was; but he was glad, I think,\r\n", | |
| "to see me. With hardly a word spoken, but with a kindly eye, he waved\r\n", | |
| "me to an armchair, threw across his case of cigars, and indicated a\r\n", | |
| "spirit case and a gasogene in the corner. Then he stood before the fire\r\n", | |
| "and looked me over in his singular introspective fashion.\r\n", | |
| "\r\n", | |
| "“Wedlock suits you,” he remarked. “I think, Watson, that you have put\r\n", | |
| "on seven and a half pounds since I saw you.”\r\n", | |
| "\r\n", | |
| "“Seven!” I answered.\r\n", | |
| "\r\n", | |
| "“Indeed, I should have thought a little more. Just a trifle more, I\r\n", | |
| "fancy, Watson. And in practice again, I observe. You did not tell me\r\n", | |
| "that you intended to go into harness.”\r\n", | |
| "\r\n", | |
| "“Then, how do you know?”\r\n", | |
| "\r\n", | |
| "“I see it, I deduce it. How do I know that you have been getting\r\n", | |
| "yourself very wet lately, and that you have a most clumsy and careless\r\n", | |
| "servant girl?”\r\n", | |
| "\r\n", | |
| "“My dear Holmes,” said I, “this is too much. You would certainly have\r\n", | |
| "been burned, had you lived a few centuries ago. It is true that I had a\r\n", | |
| "country walk on Thursday and came home in a dreadful mess, but as I\r\n", | |
| "have changed my clothes I can’t imagine how you deduce it. As to Mary\r\n", | |
| "Jane, she is incorrigible, and my wife has given her notice, but there,\r\n", | |
| "again, I fail to see how you work it out.”\r\n", | |
| "\r\n", | |
| "He chuckled to himself and rubbed his long, nervous hands together.\r\n", | |
| "\r\n", | |
| "“It is simplicity itself,” said he; “my eyes tell me that on the inside\r\n", | |
| "of your left shoe, just where the firelight strikes it, the leather is\r\n", | |
| "scored by six almost parallel cuts. Obviously they have been caused by\r\n", | |
| "someone who has very carelessly scraped round the edges of the sole in\r\n", | |
| "order to remove crusted mud from it. Hence, you see, my double\r\n", | |
| "deduction that you had been out in vile weather, and that you had a\r\n", | |
| "particularly malignant boot-slitting specimen of the London slavey. As\r\n", | |
| "to your practice, if a gentleman walks into my rooms smelling of\r\n", | |
| "iodoform, with a black mark of nitrate of silver upon his right\r\n", | |
| "forefinger, and a bulge on the right side of his top-hat to show where\r\n", | |
| "he has secreted his stethoscope, I must be dull, indeed, if I do not\r\n", | |
| "pronounce him to be an active member of the medical profession.”\r\n", | |
| "\r\n", | |
| "I could not help laughing at the ease with which he explained his\r\n", | |
| "process of deduction. “When I hear you give your reasons,” I remarked,\r\n", | |
| "“the thing always appears to me to be so ridiculously simple that I\r\n", | |
| "could easily do it myself, though at each successive instance of your\r\n", | |
| "reasoning I am baffled until you explain your process. And yet I\r\n", | |
| "believe that my eyes are as good as yours.”\r\n", | |
| "\r\n", | |
| "“Quite so,” he answered, lighting a cigarette, and throwing himself\r\n", | |
| "down into an armchair. “You see, but you do not observe. The\r\n", | |
| "distinction is clear. For example, you have frequently seen the steps\r\n", | |
| "which lead up from the hall to this room.”\r\n", | |
| "\r\n", | |
| "“Frequently.”\r\n", | |
| "\r\n", | |
| "“How often?”\r\n", | |
| "\r\n", | |
| "“Well, some hundreds of times.”\r\n", | |
| "\r\n", | |
| "“Then how many are there?”\r\n", | |
| "\r\n", | |
| "“How many? I don’t know.”\r\n", | |
| "\r\n", | |
| "“Quite so! You have not observed. And yet you have seen. That is just\r\n", | |
| "my point. Now, I know that there are seventeen steps, because I have\r\n", | |
| "both seen and observed. By the way, since you are interested in these\r\n", | |
| "little problems, and since you are good enough to chronicle one or two\r\n", | |
| "of my trifling experiences, you may be interested in this.” He threw\r\n", | |
| "over a sheet of thick, pink-tinted notepaper which had been lying open\r\n", | |
| "upon the table. “It came by the last post,” said he. “Read it aloud.”\r\n", | |
| "\r\n", | |
| "The note was undated, and without either signature or address.\r\n", | |
| "\r\n", | |
| "“There will call upon you to-night, at a quarter to eight o’clock,” it\r\n", | |
| "said, “a gentleman who desires to consult you upon a matter of the very\r\n", | |
| "deepest moment. Your recent services to one of the royal houses of\r\n", | |
| "Europe have shown that you are one who may safely be trusted with\r\n", | |
| "matters which are of an importance which can hardly be exaggerated.\r\n", | |
| "This account of you we have from all quarters received. Be in your\r\n", | |
| "chamber then at that hour, and do not take it amiss if your visitor\r\n", | |
| "wear a mask.”\r\n", | |
| "\r\n", | |
| "“This is indeed a mystery,” I remarked. “What do you imagine that it\r\n", | |
| "means?”\r\n", | |
| "\r\n", | |
| "“I have no data yet. It is a capital mistake to theorise before one has\r\n", | |
| "data. Insensibly one begins to twist facts to suit theories, instead of\r\n", | |
| "theories to suit facts. But the note itself. What do you deduce from\r\n", | |
| "it?”\r\n", | |
| "\r\n", | |
| "I carefully examined the writing, and the paper upon which it was\r\n", | |
| "written.\r\n", | |
| "\r\n", | |
| "“The man who wrote it was presumably well to do,” I remarked,\r\n", | |
| "endeavouring to imitate my companion’s processes. “Such paper could not\r\n", | |
| "be bought under half a crown a packet. It is peculiarly strong and\r\n", | |
| "stiff.”\r\n", | |
| "\r\n", | |
| "“Peculiar—that is the very word,” said Holmes. “It is not an English\r\n", | |
| "paper at all. Hold it up to the light.”\r\n", | |
| "\r\n", | |
| "I did so, and saw a large “E” with a small “g,” a “P,” and a large “G”\r\n", | |
| "with a small “t” woven into the texture of the paper.\r\n", | |
| "\r\n", | |
| "“What do you make of that?” asked Holmes.\r\n", | |
| "\r\n", | |
| "“The name of the maker, no doubt; or his monogram, rather.”\r\n", | |
| "\r\n", | |
| "“Not at all. The ‘G’ with the small ‘t’ stands for ‘Gesellschaft,’\r\n", | |
| "which is the German for ‘Company.’ It is a customary contraction like\r\n", | |
| "our ‘Co.’ ‘P,’ of course, stands for ‘Papier.’ Now for the ‘Eg.’ Let us\r\n", | |
| "glance at our Continental Gazetteer.” He took down a heavy brown volume\r\n", | |
| "from his shelves. “Eglow, Eglonitz—here we are, Egria. It is in a\r\n", | |
| "German-speaking country—in Bohemia, not far from Carlsbad. ‘Remarkable\r\n", | |
| "as being the scene of the death of Wallenstein, and for its numerous\r\n", | |
| "glass-factories and paper-mills.’ Ha, ha, my boy, what do you make of\r\n", | |
| "that?” His eyes sparkled, and he sent up a great blue triumphant cloud\r\n", | |
| "from his cigarette.\r\n", | |
| "\r\n", | |
| "“The paper was made in Bohemia,” I said.\r\n", | |
| "\r\n", | |
| "“Precisely. And the man who wrote the note is a German. Do you note the\r\n", | |
| "peculiar construction of the sentence—‘This account of you we have from\r\n", | |
| "all quarters received.’ A Frenchman or Russian could not have written\r\n", | |
| "that. It is the German who \n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# Show the data\n", | |
| "print(text[:10000])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "spanish-split", | |
| "metadata": {}, | |
| "source": [ | |
| "## Text pre-processing" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "lonely-browse", | |
| "metadata": {}, | |
| "source": [ | |
| "### Get the main content of document" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "original-contemporary", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Texts for the start and end of main content\n", | |
| "START = 'START OF THE PROJECT GUTENBERG EBOOK'\n", | |
| "END = 'END OF THE PROJECT GUTENBERG EBOOK'" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "elegant-conversation", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Remove the start mark\n", | |
| "text = re.findall(\n", | |
| " pattern = START + '.+\\n([\\s\\S]+|[\\d\\D]+|[\\w\\W]+)',\n", | |
| " string = text)[0]\n", | |
| "# Remove the end mark\n", | |
| "text = re.findall(\n", | |
| " pattern = '([\\s\\S]+|[\\d\\D]+|[\\w\\W]+)' + END,\n", | |
| " string = text)[0]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "shared-jaguar", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Show the data\n", | |
| "print(text)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "unusual-membrane", | |
| "metadata": {}, | |
| "source": [ | |
| "### Clean the document from noises" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "id": "constant-asbestos", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Lower text\n", | |
| "def lowerCase(text):\n", | |
| " return text.lower()\n", | |
| "\n", | |
| "# Numbers removal\n", | |
| "def numberRemoval(text):\n", | |
| " return re.sub(\n", | |
| " pattern = '\\d',\n", | |
| " repl = ' ',\n", | |
| " string = text\n", | |
| " )\n", | |
| "\n", | |
| "# Non-alphanumeric removal\n", | |
| "def nonAlphanumericRemoval(text):\n", | |
| " return re.sub(\n", | |
| " pattern = '[^a-zA-Z\\d]',\n", | |
| " repl = ' ',\n", | |
| " string = text\n", | |
| " )\n", | |
| "\n", | |
| "# Whitespaces removal\n", | |
| "def whitespacesRemoval(text):\n", | |
| " # Returns string with leading whitespaces removed\n", | |
| " x = str(text).lstrip()\n", | |
| " # Returns string with trailing whitespaces removed\n", | |
| " x = str(x).rstrip()\n", | |
| " # Substitute multiple whitespaces with single whitespace\n", | |
| " x = re.sub(\n", | |
| " pattern = ' +',\n", | |
| " repl = ' ',\n", | |
| " string = str(x)\n", | |
| " )\n", | |
| " return x\n", | |
| "\n", | |
| "# Compile text preprocessing into one function\n", | |
| "def textPreprocessing(text):\n", | |
| " # Lower text\n", | |
| " x = lowerCase(text)\n", | |
| " # Numbers removal\n", | |
| " x = numberRemoval(x)\n", | |
| " # Non-alphanumeric removal\n", | |
| " x = nonAlphanumericRemoval(x)\n", | |
| " # Whitespaces removal\n", | |
| " x = whitespacesRemoval(x)\n", | |
| " return x" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "id": "unsigned-borough", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Perform simple text preprocessing\n", | |
| "text_clean = textPreprocessing(\n", | |
| " text = text\n", | |
| ")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "id": "known-camping", | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "cover the adventures of sherlock holmes by arthur conan doyle contents i a scandal in bohemia ii the red headed league iii a case of identity iv the boscombe valley mystery v the five orange pips vi the man with the twisted lip vii the adventure of the blue carbuncle viii the adventure of the speckled band ix the adventure of the engineer s thumb x the adventure of the noble bachelor xi the adventure of the beryl coronet xii the adventure of the copper beeches i a scandal in bohemia i to sherlock holmes she is always the woman i have seldom heard him mention her under any other name in his eyes she eclipses and predominates the whole of her sex it was not that he felt any emotion akin to love for irene adler all emotions and that one particularly were abhorrent to his cold precise but admirably balanced mind he was i take it the most perfect reasoning and observing machine that the world has seen but as a lover he would have placed himself in a false position he never spoke of the softer passions save with a gibe and a sneer they were admirable things for the observer excellent for drawing the veil from men s motives and actions but for the trained reasoner to admit such intrusions into his own delicate and finely adjusted temperament was to introduce a distracting factor which might throw a doubt upon all his mental results grit in a sensitive instrument or a crack in one of his own high power lenses would not be more disturbing than a strong emotion in a nature such as his and yet there was but one woman to him and that woman was the late irene adler of dubious and questionable memory i had seen little of holmes lately my marriage had drifted us away from each other my own complete happiness and the home centred interests which rise up around the man who first finds himself master of his own establishment were sufficient to absorb all my attention while holmes who loathed every form of society with his whole bohemian soul remained in our lodgings in baker street buried among his old books and alternating from week to week between cocaine and ambition the drowsiness of the drug and the fierce energy of his own keen nature he was still as ever deeply attracted by the study of crime and occupied his immense faculties and extraordinary powers of observation in following out those clues and clearing up those mysteries which had been abandoned as hopeless by the official police from time to time i heard some vague account of his doings of his summons to odessa in the case of the trepoff murder of his clearing up of the singular tragedy of the atkinson brothers at trincomalee and finally of the mission which he had accomplished so delicately and successfully for the reigning family of holland beyond these signs of his activity however which i merely shared with all the readers of the daily press i knew little of my former friend and companion one night it was on the twentieth of march i was returning from a journey to a patient for i had now returned to civil practice when my way led me through baker street as i passed the well remembered door which must always be associated in my mind with my wooing and with the dark incidents of the study in scarlet i was seized with a keen desire to see holmes again and to know how he was employing his extraordinary powers his rooms were brilliantly lit and even as i looked up i saw his tall spare figure pass twice in a dark silhouette against the blind he was pacing the room swiftly eagerly with his head sunk upon his chest and his hands clasped behind him to me who knew his every mood and habit his attitude and manner told their own story he was at work again he had risen out of his drug created dreams and was hot upon the scent of some new problem i rang the bell and was shown up to the chamber which had formerly been in part my own his manner was not effusive it seldom was but he was glad i think to see me with hardly a word spoken but with a kindly eye he waved me to an armchair threw across his case of cigars and indicated a spirit case and a gasogene in the corner then he stood before the fire and looked me over in his singular introspective fashion wedlock suits you he remarked i think watson that you have put on seven and a half pounds since i saw you seven i answered indeed i should have thought a little more just a trifle more i fancy watson and in practice again i observe you did not tell me that you intended to go into harness then how do you know i see it i deduce it how do i know that you have been getting yourself very wet lately and that you have a most clumsy and careless servant girl my dear holmes said i this is too much you would certainly have been burned had you lived a few centuries ago it is true that i had a country walk on thursday and came home in a dreadful mess but as i have changed my clothes i can t imagine how you deduce it as to mary jane she is incorrigible and my wife has given her notice but there again i fail to see how you work it out he chuckled to himself and rubbed his long nervous hands together it is simplicity itself said he my eyes tell me that on the inside of your left shoe just where the firelight strikes it the leather is scored by six almost parallel cuts obviously they have been caused by someone who has very carelessly scraped round the edges of the sole in order to remove crusted mud from it hence you see my double deduction that you had been out in vile weather and that you had a particularly malignant boot slitting specimen of the london slavey as to your practice if a gentleman walks into my rooms smelling of iodoform with a black mark of nitrate of silver upon his right forefinger and a bulge on the right side of his top hat to show where he has secreted his stethoscope i must be dull indeed if i do not pronounce him to be an active member of the medical profession i could not help laughing at the ease with which he explained his process of deduction when i hear you give your reasons i remarked the thing always appears to me to be so ridiculously simple that i could easily do it myself though at each successive instance of your reasoning i am baffled until you explain your process and yet i believe that my eyes are as good as yours quite so he answered lighting a cigarette and throwing himself down into an armchair you see but you do not observe the distinction is clear for example you have frequently seen the steps which lead up from the hall to this room frequently how often well some hundreds of times then how many are there how many i don t know quite so you have not observed and yet you have seen that is just my point now i know that there are seventeen steps because i have both seen and observed by the way since you are interested in these little problems and since you are good enough to chronicle one or two of my trifling experiences you may be interested in this he threw over a sheet of thick pink tinted notepaper which had been lying open upon the table it came by the last post said he read it aloud the note was undated and without either signature or address there will call upon you to night at a quarter to eight o clock it said a gentleman who desires to consult you upon a matter of the very deepest moment your recent services to one of the royal houses of europe have shown that you are one who may safely be trusted with matters which are of an importance which can hardly be exaggerated this account of you we have from all quarters received be in your chamber then at that hour and do not take it amiss if your visitor wear a mask this is indeed a mystery i remarked what do you imagine that it means i have no data yet it is a capital mistake to theorise before one has data insensibly one begins to twist facts to suit theories instead of theories to suit facts but the note itself what do you deduce from it i carefully examined the writing and the paper upon which it was written the man who wrote it was presumably well to do i remarked endeavouring to imitate my companion s processes such paper could not be bought under half a crown a packet it is peculiarly strong and stiff peculiar that is the very word said holmes it is not an english paper at all hold it up to the light i did so and saw a large e with a small g a p and a large g with a small t woven into the texture of the paper what do you make of that asked holmes the name of the maker no doubt or his monogram rather not at all the g with the small t stands for gesellschaft which is the german for company it is a customary contraction like our co p of course stands for papier now for the eg let us glance at our continental gazetteer he took down a heavy brown volume from his shelves eglow eglonitz here we are egria it is in a german speaking country in bohemia not far from carlsbad remarkable as being the scene of the death of wallenstein and for its numerous glass factories and paper mills ha ha my boy what do you make of that his eyes sparkled and he sent up a great blue triumphant cloud from his cigarette the paper was made in bohemia i said precisely and the man who wrote the note is a german do you note the peculiar construction of the sentence this account of you we have from all quarters received a frenchman or russian could not have written that it is the german who is so uncourteous to his verbs it only remains therefore to discover what is wanted by this german who writes upon bohemian paper and prefers wearing a mask to showing his face and here he comes if i am not mistaken to resolve all our doubts as he spoke there was the sharp sound of horses hoofs and grating wheels against the curb followed by a sharp pull at the bell holmes whistled a pair by the sound said he yes he continued glancing out of the window a nice little brougham and a pair of beauties a hundred and fifty guineas apiece there s money in this case watson if there is nothing else i think that i had better go holmes not a bit doctor stay where you are i am lost without my boswell\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# Show the data\n", | |
| "print(text_clean[:10000])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "dirty-simpson", | |
| "metadata": {}, | |
| "source": [ | |
| "## Analysis" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "crude-alaska", | |
| "metadata": {}, | |
| "source": [ | |
| "### Get a list of top words (having a highest frequencies)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "id": "fitting-spank", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# How to get a list of top words\n", | |
| "def getTopWords(\n", | |
| " text: str\n", | |
| " ):\n", | |
| " # Split text by its whitespace\n", | |
| " list_words = text.split()\n", | |
| " # Count the word frequencies\n", | |
| " word_freq = collections.Counter(list_words)\n", | |
| " # Get top n words that have highest frequencies\n", | |
| " top_words = word_freq.most_common()\n", | |
| " \n", | |
| " return top_words" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "id": "nervous-address", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Get a list top words\n", | |
| "top_words = getTopWords(\n", | |
| " text = text_clean\n", | |
| ")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "id": "usual-ready", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "[('the', 33663),\n", | |
| " ('and', 18463),\n", | |
| " ('of', 15271),\n", | |
| " ('to', 13398),\n", | |
| " ('a', 12877),\n", | |
| " ('in', 9878),\n", | |
| " ('i', 8719),\n", | |
| " ('it', 8235),\n", | |
| " ('that', 8122),\n", | |
| " ('his', 6618),\n", | |
| " ('he', 6615),\n", | |
| " ('was', 6353),\n", | |
| " ('you', 5127),\n", | |
| " ('with', 4693),\n", | |
| " ('as', 4417),\n", | |
| " ('for', 3991),\n", | |
| " ('is', 3965),\n", | |
| " ('s', 3932),\n", | |
| " ('but', 3881),\n", | |
| " ('at', 3709),\n", | |
| " ('had', 3606),\n", | |
| " ('not', 3077),\n", | |
| " ('all', 2985),\n", | |
| " ('him', 2956),\n", | |
| " ('on', 2940),\n", | |
| " ('be', 2882),\n", | |
| " ('this', 2865),\n", | |
| " ('have', 2680),\n", | |
| " ('so', 2620),\n", | |
| " ('by', 2464),\n", | |
| " ('my', 2416),\n", | |
| " ('there', 2406),\n", | |
| " ('her', 2340),\n", | |
| " ('from', 2318),\n", | |
| " ('said', 2270),\n", | |
| " ('they', 2205),\n", | |
| " ('me', 2077),\n", | |
| " ('were', 2055),\n", | |
| " ('one', 2034),\n", | |
| " ('she', 1964),\n", | |
| " ('which', 1958),\n", | |
| " ('no', 1879),\n", | |
| " ('what', 1784),\n", | |
| " ('out', 1703),\n", | |
| " ('when', 1658),\n", | |
| " ('then', 1656),\n", | |
| " ('now', 1629),\n", | |
| " ('up', 1543),\n", | |
| " ('if', 1535),\n", | |
| " ('an', 1518),\n", | |
| " ('t', 1513),\n", | |
| " ('or', 1501),\n", | |
| " ('upon', 1494),\n", | |
| " ('been', 1436),\n", | |
| " ('would', 1426),\n", | |
| " ('we', 1380),\n", | |
| " ('are', 1353),\n", | |
| " ('into', 1324),\n", | |
| " ('their', 1281),\n", | |
| " ('them', 1279),\n", | |
| " ('some', 1259),\n", | |
| " ('whale', 1240),\n", | |
| " ('man', 1201),\n", | |
| " ('like', 1170),\n", | |
| " ('who', 1161),\n", | |
| " ('very', 1161),\n", | |
| " ('do', 1160),\n", | |
| " ('more', 1138),\n", | |
| " ('your', 1130),\n", | |
| " ('down', 1120),\n", | |
| " ('little', 1057),\n", | |
| " ('will', 1051),\n", | |
| " ('could', 1042),\n", | |
| " ('time', 1014),\n", | |
| " ('mr', 986),\n", | |
| " ('over', 949),\n", | |
| " ('see', 904),\n", | |
| " ('about', 900),\n", | |
| " ('other', 897),\n", | |
| " ('well', 848),\n", | |
| " ('any', 838),\n", | |
| " ('before', 833),\n", | |
| " ('two', 831),\n", | |
| " ('old', 828),\n", | |
| " ('tom', 826),\n", | |
| " ('its', 817),\n", | |
| " ('here', 815),\n", | |
| " ('only', 813),\n", | |
| " ('did', 786),\n", | |
| " ('than', 773),\n", | |
| " ('again', 773),\n", | |
| " ('know', 771),\n", | |
| " ('such', 769),\n", | |
| " ('long', 754),\n", | |
| " ('has', 753),\n", | |
| " ('can', 742),\n", | |
| " ('way', 733),\n", | |
| " ('these', 731),\n", | |
| " ('how', 715),\n", | |
| " ('head', 714),\n", | |
| " ('good', 705),\n", | |
| " ('never', 687),\n", | |
| " ('come', 673),\n", | |
| " ('hand', 670),\n", | |
| " ('say', 665),\n", | |
| " ('after', 646),\n", | |
| " ('much', 644),\n", | |
| " ('great', 635),\n", | |
| " ('must', 631),\n", | |
| " ('last', 621),\n", | |
| " ('go', 620),\n", | |
| " ('himself', 612),\n", | |
| " ('yet', 598),\n", | |
| " ('back', 598),\n", | |
| " ('day', 597),\n", | |
| " ('through', 592),\n", | |
| " ('us', 590),\n", | |
| " ('don', 590),\n", | |
| " ('made', 590),\n", | |
| " ('night', 588),\n", | |
| " ('where', 588),\n", | |
| " ('may', 587),\n", | |
| " ('should', 581),\n", | |
| " ('away', 579),\n", | |
| " ('though', 577),\n", | |
| " ('came', 575),\n", | |
| " ('off', 575),\n", | |
| " ('still', 573),\n", | |
| " ('might', 546),\n", | |
| " ('our', 544),\n", | |
| " ('ship', 539),\n", | |
| " ('first', 532),\n", | |
| " ('three', 531),\n", | |
| " ('every', 526),\n", | |
| " ('am', 526),\n", | |
| " ('think', 519),\n", | |
| " ('too', 518),\n", | |
| " ('ever', 517),\n", | |
| " ('ahab', 517),\n", | |
| " ('own', 513),\n", | |
| " ('those', 513),\n", | |
| " ('sea', 513),\n", | |
| " ('look', 508),\n", | |
| " ('seemed', 503),\n", | |
| " ('chapter', 495),\n", | |
| " ('most', 494),\n", | |
| " ('while', 494),\n", | |
| " ('face', 491),\n", | |
| " ('eyes', 487),\n", | |
| " ('ye', 486),\n", | |
| " ('ll', 484),\n", | |
| " ('just', 483),\n", | |
| " ('went', 472),\n", | |
| " ('holmes', 462),\n", | |
| " ('nothing', 462),\n", | |
| " ('being', 461),\n", | |
| " ('tell', 459),\n", | |
| " ('even', 457),\n", | |
| " ('let', 453),\n", | |
| " ('round', 452),\n", | |
| " ('thought', 447),\n", | |
| " ('oh', 439),\n", | |
| " ('life', 428),\n", | |
| " ('right', 427),\n", | |
| " ('men', 420),\n", | |
| " ('side', 416),\n", | |
| " ('once', 415),\n", | |
| " ('yes', 412),\n", | |
| " ('under', 411),\n", | |
| " ('alice', 411),\n", | |
| " ('same', 410),\n", | |
| " ('shall', 409),\n", | |
| " ('white', 407),\n", | |
| " ('without', 406),\n", | |
| " ('thing', 405),\n", | |
| " ('why', 405),\n", | |
| " ('door', 403),\n", | |
| " ('got', 403),\n", | |
| " ('take', 402),\n", | |
| " ('many', 401),\n", | |
| " ('found', 401),\n", | |
| " ('looked', 400),\n", | |
| " ('seen', 393),\n", | |
| " ('sir', 381),\n", | |
| " ('get', 377),\n", | |
| " ('another', 375),\n", | |
| " ('lorry', 369),\n", | |
| " ('hands', 365),\n", | |
| " ('far', 363),\n", | |
| " ('house', 359),\n", | |
| " ('room', 358),\n", | |
| " ('place', 357),\n", | |
| " ('boat', 354),\n", | |
| " ('took', 351),\n", | |
| " ('make', 349),\n", | |
| " ('heard', 345),\n", | |
| " ('saw', 345),\n", | |
| " ('half', 345),\n", | |
| " ('put', 341),\n", | |
| " ('among', 339),\n", | |
| " ('captain', 335),\n", | |
| " ('miss', 333),\n", | |
| " ('something', 330),\n", | |
| " ('always', 327),\n", | |
| " ('young', 325),\n", | |
| " ('mind', 323),\n", | |
| " ('moment', 319),\n", | |
| " ('father', 318),\n", | |
| " ('looking', 313),\n", | |
| " ('going', 312),\n", | |
| " ('done', 311),\n", | |
| " ('poor', 307),\n", | |
| " ('left', 306),\n", | |
| " ('business', 305),\n", | |
| " ('water', 304),\n", | |
| " ('turned', 303),\n", | |
| " ('defarge', 302),\n", | |
| " ('almost', 301),\n", | |
| " ('things', 299),\n", | |
| " ('both', 299),\n", | |
| " ('cried', 299),\n", | |
| " ('against', 296),\n", | |
| " ('small', 295),\n", | |
| " ('soon', 294),\n", | |
| " ('began', 294),\n", | |
| " ('few', 293),\n", | |
| " ('matter', 288),\n", | |
| " ('enough', 285),\n", | |
| " ('air', 283),\n", | |
| " ('thou', 282),\n", | |
| " ('world', 278),\n", | |
| " ('stood', 278),\n", | |
| " ('doctor', 278),\n", | |
| " ('d', 277),\n", | |
| " ('light', 276),\n", | |
| " ('quite', 273),\n", | |
| " ('morning', 272),\n", | |
| " ('whales', 272),\n", | |
| " ('whole', 269),\n", | |
| " ('boy', 269),\n", | |
| " ('however', 268),\n", | |
| " ('name', 267),\n", | |
| " ('between', 264),\n", | |
| " ('better', 262),\n", | |
| " ('years', 262),\n", | |
| " ('heart', 262),\n", | |
| " ('stubb', 261),\n", | |
| " ('people', 258),\n", | |
| " ('huck', 258),\n", | |
| " ('sat', 256),\n", | |
| " ('work', 255),\n", | |
| " ('find', 253),\n", | |
| " ('queequeg', 253),\n", | |
| " ('dead', 252),\n", | |
| " ('give', 250),\n", | |
| " ('knew', 248),\n", | |
| " ('case', 245),\n", | |
| " ('feet', 245),\n", | |
| " ('sperm', 245),\n", | |
| " ('new', 244),\n", | |
| " ('part', 244),\n", | |
| " ('each', 241),\n", | |
| " ('end', 241),\n", | |
| " ('lay', 238),\n", | |
| " ('along', 238),\n", | |
| " ('voice', 231),\n", | |
| " ('gone', 230),\n", | |
| " ('sort', 227),\n", | |
| " ('having', 227),\n", | |
| " ('called', 226),\n", | |
| " ('nor', 226),\n", | |
| " ('because', 225),\n", | |
| " ('anything', 225),\n", | |
| " ('indeed', 224),\n", | |
| " ('perhaps', 224),\n", | |
| " ('home', 222),\n", | |
| " ('god', 222),\n", | |
| " ('word', 221),\n", | |
| " ('high', 220),\n", | |
| " ('dear', 220),\n", | |
| " ('myself', 220),\n", | |
| " ('within', 220),\n", | |
| " ('dark', 219),\n", | |
| " ('open', 217),\n", | |
| " ('line', 217),\n", | |
| " ('till', 217),\n", | |
| " ('asked', 216),\n", | |
| " ('rather', 215),\n", | |
| " ('fire', 214),\n", | |
| " ('until', 212),\n", | |
| " ('times', 212),\n", | |
| " ('does', 210),\n", | |
| " ('days', 209),\n", | |
| " ('keep', 207),\n", | |
| " ('death', 205),\n", | |
| " ('set', 205),\n", | |
| " ('deck', 204),\n", | |
| " ('together', 203),\n", | |
| " ('brought', 203),\n", | |
| " ('black', 200),\n", | |
| " ('large', 200),\n", | |
| " ('next', 199),\n", | |
| " ('starbuck', 199),\n", | |
| " ('behind', 198),\n", | |
| " ('towards', 198),\n", | |
| " ('words', 198),\n", | |
| " ('boys', 198),\n", | |
| " ('hear', 197),\n", | |
| " ('full', 197),\n", | |
| " ('friend', 196),\n", | |
| " ('told', 196),\n", | |
| " ('madame', 195),\n", | |
| " ('fish', 195),\n", | |
| " ('hard', 194),\n", | |
| " ('bed', 193),\n", | |
| " ('whether', 192),\n", | |
| " ('arm', 192),\n", | |
| " ('body', 191),\n", | |
| " ('wife', 190),\n", | |
| " ('itself', 190),\n", | |
| " ('hold', 189),\n", | |
| " ('sight', 189),\n", | |
| " ('course', 188),\n", | |
| " ('also', 187),\n", | |
| " ('king', 186),\n", | |
| " ('hope', 184),\n", | |
| " ('eye', 182),\n", | |
| " ('four', 182),\n", | |
| " ('near', 182),\n", | |
| " ('ve', 182),\n", | |
| " ('strange', 181),\n", | |
| " ('whose', 179),\n", | |
| " ('street', 178),\n", | |
| " ('window', 178),\n", | |
| " ('sure', 178),\n", | |
| " ('pequod', 178),\n", | |
| " ('joe', 178),\n", | |
| " ('passed', 175),\n", | |
| " ('known', 175),\n", | |
| " ('thus', 174),\n", | |
| " ('true', 170),\n", | |
| " ('turn', 170),\n", | |
| " ('lady', 170),\n", | |
| " ('red', 168),\n", | |
| " ('since', 168),\n", | |
| " ('best', 168),\n", | |
| " ('hour', 167),\n", | |
| " ('want', 167),\n", | |
| " ('manner', 166),\n", | |
| " ('taken', 166),\n", | |
| " ('close', 165),\n", | |
| " ('gave', 164),\n", | |
| " ('cannot', 164),\n", | |
| " ('manette', 163),\n", | |
| " ('five', 162),\n", | |
| " ('herself', 162),\n", | |
| " ('stand', 162),\n", | |
| " ('pross', 162),\n", | |
| " ('st', 161),\n", | |
| " ('child', 161),\n", | |
| " ('prisoner', 161),\n", | |
| " ('m', 161),\n", | |
| " ('sun', 161),\n", | |
| " ('aye', 161),\n", | |
| " ('woman', 160),\n", | |
| " ('speak', 160),\n", | |
| " ('coming', 160),\n", | |
| " ('present', 159),\n", | |
| " ('felt', 158),\n", | |
| " ('less', 158),\n", | |
| " ('o', 157),\n", | |
| " ('least', 157),\n", | |
| " ('carton', 157),\n", | |
| " ('point', 156),\n", | |
| " ('call', 156),\n", | |
| " ('lost', 156),\n", | |
| " ('whom', 156),\n", | |
| " ('sometimes', 156),\n", | |
| " ('heads', 155),\n", | |
| " ('rest', 155),\n", | |
| " ('hair', 155),\n", | |
| " ('ain', 154),\n", | |
| " ('table', 153),\n", | |
| " ('certain', 152),\n", | |
| " ('re', 152),\n", | |
| " ('strong', 151),\n", | |
| " ('around', 151),\n", | |
| " ('won', 151),\n", | |
| " ('fellow', 151),\n", | |
| " ('doubt', 150),\n", | |
| " ('ground', 150),\n", | |
| " ('deep', 149),\n", | |
| " ('lord', 149),\n", | |
| " ('standing', 148),\n", | |
| " ('boats', 148),\n", | |
| " ('darnay', 148),\n", | |
| " ('help', 147),\n", | |
| " ('general', 147),\n", | |
| " ('sound', 146),\n", | |
| " ('suddenly', 146),\n", | |
| " ('answered', 144),\n", | |
| " ('gentleman', 144),\n", | |
| " ('thee', 144),\n", | |
| " ('fell', 143),\n", | |
| " ('struck', 142),\n", | |
| " ('low', 142),\n", | |
| " ('crew', 142),\n", | |
| " ('alone', 141),\n", | |
| " ('instant', 141),\n", | |
| " ('often', 139),\n", | |
| " ('question', 139),\n", | |
| " ('mean', 138),\n", | |
| " ('held', 138),\n", | |
| " ('kept', 138),\n", | |
| " ('believe', 137),\n", | |
| " ('really', 137),\n", | |
| " ('seem', 137),\n", | |
| " ('wine', 137),\n", | |
| " ('returned', 136),\n", | |
| " ('else', 136),\n", | |
| " ('reason', 136),\n", | |
| " ('live', 136),\n", | |
| " ('short', 136),\n", | |
| " ('seems', 135),\n", | |
| " ('book', 134),\n", | |
| " ('leave', 134),\n", | |
| " ('wild', 133),\n", | |
| " ('whaling', 133),\n", | |
| " ('yourself', 132),\n", | |
| " ('wish', 132),\n", | |
| " ('second', 131),\n", | |
| " ('hundred', 130),\n", | |
| " ('used', 130),\n", | |
| " ('ask', 130),\n", | |
| " ('mast', 130),\n", | |
| " ('hardly', 129),\n", | |
| " ('husband', 129),\n", | |
| " ('lucie', 129),\n", | |
| " ('ten', 128),\n", | |
| " ('iron', 128),\n", | |
| " ('feel', 128),\n", | |
| " ('soul', 127),\n", | |
| " ('story', 127),\n", | |
| " ('blood', 127),\n", | |
| " ('ready', 127),\n", | |
| " ('taking', 126),\n", | |
| " ('corner', 125),\n", | |
| " ('either', 125),\n", | |
| " ('followed', 125),\n", | |
| " ('already', 125),\n", | |
| " ('presently', 125),\n", | |
| " ('above', 125),\n", | |
| " ('monsieur', 125),\n", | |
| " ('slowly', 124),\n", | |
| " ('use', 124),\n", | |
| " ('silence', 124),\n", | |
| " ('order', 123),\n", | |
| " ('try', 123),\n", | |
| " ('themselves', 122),\n", | |
| " ('cruncher', 122),\n", | |
| " ('top', 121),\n", | |
| " ('rose', 121),\n", | |
| " ('arms', 121),\n", | |
| " ('mouth', 121),\n", | |
| " ('mine', 121),\n", | |
| " ('didn', 121),\n", | |
| " ('talk', 121),\n", | |
| " ('forward', 120),\n", | |
| " ('minutes', 119),\n", | |
| " ('hours', 119),\n", | |
| " ('making', 119),\n", | |
| " ('read', 118),\n", | |
| " ('laid', 118),\n", | |
| " ('kind', 118),\n", | |
| " ('sleep', 118),\n", | |
| " ('chair', 117),\n", | |
| " ('fine', 117),\n", | |
| " ('thy', 117),\n", | |
| " ('across', 116),\n", | |
| " ('hat', 116),\n", | |
| " ('none', 116),\n", | |
| " ('town', 116),\n", | |
| " ('heavy', 115),\n", | |
| " ('village', 115),\n", | |
| " ('becky', 115),\n", | |
| " ('ran', 114),\n", | |
| " ('everything', 114),\n", | |
| " ('blue', 113),\n", | |
| " ('therefore', 113),\n", | |
| " ('dropped', 113),\n", | |
| " ('turning', 113),\n", | |
| " ('answer', 113),\n", | |
| " ('love', 112),\n", | |
| " ('ago', 112),\n", | |
| " ('english', 112),\n", | |
| " ('money', 112),\n", | |
| " ('run', 112),\n", | |
| " ('fast', 112),\n", | |
| " ('cry', 112),\n", | |
| " ('possible', 112)]" | |
| ] | |
| }, | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Show the top words\n", | |
| "top_words[:500]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "departmental-speaking", | |
| "metadata": {}, | |
| "source": [ | |
| "### Calculate Zipf’s Law" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "id": "likely-music", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# List of data\n", | |
| "l_data = []\n", | |
| "\n", | |
| "# Highest frequency\n", | |
| "max_freq = top_words[0][1]\n", | |
| "\n", | |
| "# Constant\n", | |
| "C = 1\n", | |
| "# Alpha\n", | |
| "alpha = 1\n", | |
| "\n", | |
| "# Total number of words in a corpus\n", | |
| "total_words = sum(dict(top_words).values())\n", | |
| "\n", | |
| "# Loop\n", | |
| "for index, item in enumerate(iterable = top_words, start = 1):\n", | |
| " # New data\n", | |
| " j_data = {\n", | |
| " 'rank': index,\n", | |
| " 'word': item[0],\n", | |
| " 'actual_freq': item[1],\n", | |
| " 'actual_prob': (\n", | |
| " item[1] / total_words\n", | |
| " ),\n", | |
| " 'relative_freq': '1/{}'.format(index),\n", | |
| " 'zipf_freq': round(\n", | |
| " number = max_freq * (C / (index ** alpha)),\n", | |
| " ndigits = 2\n", | |
| " )\n", | |
| " }\n", | |
| " \n", | |
| " # Append new data\n", | |
| " l_data.append(j_data)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "id": "international-peeing", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Convert list of dictionary into data frame\n", | |
| "df = pd.DataFrame(\n", | |
| " data = l_data\n", | |
| ")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "id": "effective-canal", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>rank</th>\n", | |
| " <th>word</th>\n", | |
| " <th>actual_freq</th>\n", | |
| " <th>actual_prob</th>\n", | |
| " <th>relative_freq</th>\n", | |
| " <th>zipf_freq</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>1</td>\n", | |
| " <td>the</td>\n", | |
| " <td>33663</td>\n", | |
| " <td>0.059558</td>\n", | |
| " <td>1/1</td>\n", | |
| " <td>33663.00</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>2</td>\n", | |
| " <td>and</td>\n", | |
| " <td>18463</td>\n", | |
| " <td>0.032665</td>\n", | |
| " <td>1/2</td>\n", | |
| " <td>16831.50</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>3</td>\n", | |
| " <td>of</td>\n", | |
| " <td>15271</td>\n", | |
| " <td>0.027018</td>\n", | |
| " <td>1/3</td>\n", | |
| " <td>11221.00</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>4</td>\n", | |
| " <td>to</td>\n", | |
| " <td>13398</td>\n", | |
| " <td>0.023704</td>\n", | |
| " <td>1/4</td>\n", | |
| " <td>8415.75</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>5</td>\n", | |
| " <td>a</td>\n", | |
| " <td>12877</td>\n", | |
| " <td>0.022782</td>\n", | |
| " <td>1/5</td>\n", | |
| " <td>6732.60</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " rank word actual_freq actual_prob relative_freq zipf_freq\n", | |
| "0 1 the 33663 0.059558 1/1 33663.00\n", | |
| "1 2 and 18463 0.032665 1/2 16831.50\n", | |
| "2 3 of 15271 0.027018 1/3 11221.00\n", | |
| "3 4 to 13398 0.023704 1/4 8415.75\n", | |
| "4 5 a 12877 0.022782 1/5 6732.60" | |
| ] | |
| }, | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Show the data\n", | |
| "df.head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "recent-angle", | |
| "metadata": {}, | |
| "source": [ | |
| "### Data visualization" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "id": "finished-value", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 1000x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<ggplot: (133983778380)>" | |
| ] | |
| }, | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Data viz\n", | |
| "plotnine.options.figure_size = (10, 4.8)\n", | |
| "(\n", | |
| " ggplot(\n", | |
| " data = df[:20]\n", | |
| " )+\n", | |
| " geom_bar(\n", | |
| " aes(\n", | |
| " x = 'word',\n", | |
| " y = 'actual_freq'\n", | |
| " ),\n", | |
| " stat = 'identity',\n", | |
| " width = 0.5,\n", | |
| " fill = '#981220'\n", | |
| " )+\n", | |
| " geom_line(\n", | |
| " aes(\n", | |
| " x = 'word',\n", | |
| " y = 'zipf_freq',\n", | |
| " group = 1\n", | |
| " ),\n", | |
| " size = 1\n", | |
| " )+\n", | |
| " scale_x_discrete(\n", | |
| " limits = df[:20]['word'].tolist()\n", | |
| " )+\n", | |
| " labs(\n", | |
| " title = 'Most Common Words in English Literature'\n", | |
| " )+\n", | |
| " xlab(\n", | |
| " xlab = 'Word'\n", | |
| " )+\n", | |
| " ylab(\n", | |
| " ylab = 'Frequency'\n", | |
| " )+\n", | |
| " theme_minimal()+\n", | |
| " theme(\n", | |
| " axis_text_x = element_text(\n", | |
| " rotation = 90,\n", | |
| " hjust = 0.25\n", | |
| " )\n", | |
| " )\n", | |
| ")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "id": "demographic-yesterday", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 1000x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<ggplot: (133986085825)>" | |
| ] | |
| }, | |
| "execution_count": 14, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Data viz\n", | |
| "plotnine.options.figure_size = (10, 4.8)\n", | |
| "(\n", | |
| " ggplot(\n", | |
| " data = df\n", | |
| " )+\n", | |
| " geom_line(\n", | |
| " aes(\n", | |
| " x = 'rank',\n", | |
| " y = 'zipf_freq',\n", | |
| " group = 1\n", | |
| " ),\n", | |
| " size = 1,\n", | |
| " color = '#981220'\n", | |
| " )+\n", | |
| " geom_point(\n", | |
| " aes(\n", | |
| " x = 'rank',\n", | |
| " y = 'zipf_freq',\n", | |
| " group = 1\n", | |
| " ),\n", | |
| " size = 1.5\n", | |
| " )+\n", | |
| " labs(\n", | |
| " title = 'Zipf Distribution in English Literature'\n", | |
| " )+\n", | |
| " xlab(\n", | |
| " xlab = 'Rank'\n", | |
| " )+\n", | |
| " ylab(\n", | |
| " ylab = 'Frequency of words'\n", | |
| " )+\n", | |
| " theme_minimal()\n", | |
| ")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "id": "incomplete-stereo", | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Intercept: 10.424148017823438\n", | |
| "Slope: -0.9999989105821943\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# Linear regression for ideal Zipf's line\n", | |
| "linear = LinearRegression()\n", | |
| "linear.fit(\n", | |
| " X = np.log(np.array(df['rank'])).reshape(-1, 1),\n", | |
| " y = np.log(df['zipf_freq'])\n", | |
| ")\n", | |
| "# Print slope and intercept\n", | |
| "print('Intercept: {intercept}\\nSlope: {slope}'.format(\n", | |
| " intercept = linear.intercept_,\n", | |
| " slope = linear.coef_[0]\n", | |
| " )\n", | |
| ")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "id": "advanced-island", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAHVCAYAAAAdJQEKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAACI2ElEQVR4nOzdd3gc1dXH8e+xLRdcYYCAaR56770TQgKBKPTe21DeUBIglBAIvQcIbeg1ISEQEKEGCL333gcwmDrGxt2yfN4/7jgIIcnSalcryb/P8+wja+7szJF8Je3Ze++55u6IiIiIiIhIx/SqdgAiIiIiIiI9gZIrERERERGRMlByJSIiIiIiUgZKrkRERERERMpAyZWIiIiIiEgZKLkSEREREREpAyVXIiIiIiIiZaDkSkREREREpAyUXImIiIiIiJSBkisRqTozu9bMvAzXSczsbTObYmZuZiPKEF7Te5xYqWvP5L5uZtfO7FgnxVKV70EzcTxsZh9VM4ZKa+5noyPf/87sM2a2Z3G/DTvjfiIiXYGSKxEpKzP7qHhBNbPHtWW+74bAZcDbwAHAbsDXrZx/bZN4ppjZ12b2jJldYGarlDO+4p6Hmdme5b5uJRQvjA+rdhzVYGYbtqH/jqh2nNXSKLlbt4Tnjiiev2IFQitZd/rZFJGurU+1AxCRHucwYFALbb2Bs4C5gUcbHd+PkBB1xM+Lj3u5+7fteN4hwLdFbLMDKwC7A4eY2ZXAge4+rdH5pwBnAFNKiPEw4CPg2hKeOwBoKOF5pdoTGAGc30xbR74H5fRzwCp4/X8Cd7TQ1mLi3gm6yvd/Zm4AbgamNjo2AjiB8HPwcqdH1LLDKP1nU0Tkf5RciUhZufvtLbWZ2Z8JiVXq7lc3ek49UN/BW89TXKs9iRXAv9z90yZxHgpcB+wLjAcOn9FWJFrT6ARm1h+Y5u7T3H1yZ9yzLTrzezCTOKbO/KwOecXdb6zwPdqtq3z/Z8bdG+jcNwQws0HuPr4z79kWXTUuESk/TQsUkU5RTLk5DHgc+E2TtubWlcyYtjdn8e+vzWySmT1pZhs1Om/D4rl7FZ/PmLb1cKmxuvt3wE7Ax8D/mdkCje73o/UuZja7mZ1tZu8VMY41szfN7LyifUQR40LABs1NL5uxfsjMFjKzm83sG2ASMH+jr+va5uI1s42L78sEM/vGzK42s7manNPiOp2ma5eKWDcAFmoS64atXcvM5jOzK83sMzObamafmtnlZjZvk/NmTLvbs3i8ZmaTi+edama9W/zPaSXuJt/H4Wb2VzMbXfyfPFKJqZ7FPT8q7rukmf27+P8fb2Z3mdkizZw/r5ndYGZ58X/2hJlt1NzPQQv3a3cfbOYaaxUxTzCzMWb2t6Z9pqOsyZorMzsR+G/RfE1LP6tmtk3x//Vd8bW8ZGb7NnP9Gd/35Yvv9bfAuKKtl5kdW7R/XvTHz8zsOjNbsNE12vKz+VHTGBs/t/i6Zhxr3LcTM3vVzCYDFzU6ZyMzu8fMvrUwHfktM/t9W/u9iHRtGrkSkYozszUJ66FGAtsUI1VtdR8wFjgZmIMwffB+M9vM3R8A3iKsr9ofWK/4N8CXHYnZ3Seb2fXA8cCmwBWtnP4PYMPinJeAfsCiwE+L9q+LuP4MfAOc2ui5jaeXDQIeA54nTJ0aTBg5a83KwHbA1YRpWGsQEs01zGw1d584k+c3ZzfgOGBOGo3aEb7XzTKz+YDnCCOTVwCvEqZY7gdsWsTS9P/kAGA4cCXh+7A1cCzhBfIZJcQ9w0DCtNPngT8APym+jnvNbGF3H9fG68xmZnM2c3yau49pcmw+4BHCNMLfA4sR3kSoM7Pl3H06gJkNJfwfL0z4P3sBWAq4E3i/zV/hj82sDza2InAXYXT2b8AqhFHa2Ql9vVJuA2oI/8eXE74P0OhntUhUTiAkYX8ivMHwC+AKM1vU3Y9ucs0FCN/324FjKEawgb7AUYSpnXcS+tTywN7Axma2vLuPpu0/m+11aBHL5cCnfJ/07U3o7y8R+vgYYB3gdGAlYMcO3FNEugJ310MPPfSo2IPwonMUMBFYuYVzrg2/jn58DKgDejU6vhAwAXgXsNauMZO4Zlx//lbO2bo455xGx04sjo0oPh8KTAcuacM9PwIebqHt4eK6Z7TQ7sC1zRxzYNsmx48sjv+hpbibufdHMzvW2rWA64tj2zc5d/fi+JWNjm1YHPscmL3R8V7Am8CoNv4fthS3A8c0Ob5jcXz/Nlx3RnwtPd5u5v/VgZ2aHD+6OP7zRsdOLY4d1EJfa/bnoLXvfzv7oBfnrtPk+GVF2+JtuMaM+687k/P2LM7bsJnv7Z7NnL9SEdsFzbT9hTDFcOFmvu8HNHO+AQOaOf6z4jlHNvN/2NLPZrNthPVjDpzYzNf3LTBPk/PnISSL/6LR766i7XfF8zZoS9/XQw89uu5D0wJFpGIsrBn6FzAvsI+7v1jCZU734l1/AHf/GLiJMDKwfFkCbdl3xcehrZwzkVBYYE0zW7gM9zyznee/6+7/bHLsQsI75duUIZ6ZMrNewJaEpOMfTZpvAD4AtjazpsUnrvZGa+SK/+cHgXnNrKWiKG0xnTAS0dh/io+Lt+M61wKbNPPYq5lzR7n739pwz60IL7wvb3yiu98GvNOO2Bprbx98yt2faEOsnW0XQlJ0lYXpwP97ULzJQkiOGhtNM6PKHkyC/00RHFZc52XCSPgaFfw6AK5z9y+aHNsW6E8YuYqafH3/Ls75RYXjEpEK07RAEamkK4DVgDObeeHZVm+2cmxR4JUSr9sWQ4qPY1s6wd3rzez/CGsqPjCzdwnTne4G7vCwqL+tvvb2F+T40ffH3aeY2YeE709nmIswhfGNZmJxM3sDqCVMOxvdqPnDZq6VFx8jZj4lsiWjvEkBEHfPi9wuasd1PvAw9bQtZva1zLAw8Jr/sALlDG8DS7QjPqCkPtjWWDvbUsXH1n6mf9Lk8w9a+hkzs60Io7irEKYJNjZHSRG23bvNHJvx9f27mbYZmn59ItLNKLkSkYowsyOBXYF7CGssKmGmi/87aKXi49utBuF+lZndCfwSWJ8wurEP8KyZbdD0hX4rSlkf1WpoLfy7qY7+LZgxItXe/4/WEs+OlFiv1HXLdc+y99t29sFqfH/aYsZsmi1oucx808Sw2Z8ZM9uSsMbreeC3wCeEKXkQysO3Z+ZOS/9frf3cNBfXjHvuSyiW05xRbQ1KRLomJVciUnZmtilhsfa7hHUo02fylNYsDTzVzDEI080qopjSuDuh5PV9Mzvf3b8iTCO7tpj+dhZwBKHYxA0zTqtAqEs3PWBm/QgjJI2/PzNGjOYgrCFpbGF+uBcRtC/WrwjTEJdtJhYDliFMhWvvqFxP9CGwqJnV+I8LuyzZkQu3sQ9WW2v96l1CQY3PS5xC3NjuwGTCGqb/JTpmNpAwgtqeuEbT/EhXe6cBzxjN+rYdI6Ii0s1ozZWIlJWZLUF4Z3g88Gt3b3FKXRsdU6zpmXH9hQhrM94nVKQrOzMbTKiitiBwkbuPbOXc2cxstsbH3N2BGS8OG78oG0/5pyMtbmbbNjl2CGGa3m2Njs1Yz/ODNStmtithTVxT44HZm1kn9SNF8nw7sGQzsewCLALcVnxfZnW3E17c79f4oJltTQlTAovntqcPVtuMqZ7NxXR98fF0M6tp2mhmQ4s3DtqigZAwNX2dc3wzx2bE1dL36R1C356vUSy9CEUo2uMfhITvxObWFJrZgOJ3j4h0Yxq5EpGyMbMBhFLUQwnvlK9qZqu2cPqX7v6fFtoamw94wMz+RXjxcyBh/cT/lenF+lbF/ji9gWGE8uFbFf++irBmozWLA4+a2e3A64RyzosQyoyPJRT0mOFpYF8zO5lQ1nw6cKe7T+hA/K8B15nZ+sU1Vwf2IExlbLzH0QOE9Vknm9ncwHvAqoS1UO8TSmQ39jRhetZFZvYk4cXqQ8XoSHOOJSRuf7OwD9lrfF+KfSShtHt3s0KRfDbnQXf/vIRrnkWoXPgXM1uJUIp9aUKRjFcI37P2ak8fLKfdrdjDqonM3W9q4TlvEkY5DzKziYRS5F+5+0Pu/oKZ/QE4BXjdzP5GKGM+N6F4TS3he/VRG2K7hVBA4hEL+8MZYVRsKcL3p6nWfjYvJOx795CZXVZca7s2xPAD7v6ZmSWEEvzvmNl1hJHMOYq4tiIUhnm4vdcWka5DyZWIlNNP+P7d9934fs+p5jzC9xXKWrMpcDZh75tBhP1hdnH3BzsQZ2MXFh/rCdUBPyQkhte7+/NteP5IQvWvDQnJyGyEEuN3EMqqf9Lo3OMIL6QOJiRvBsSE0vKlepGwh9PJhLUckwgjAEc1TtrcfbqZ1RK+3gMI7+o/Stgs+DJCWenGzidMe9q2OL8XsBFhCuCPuPunZrY6oUz3VoR9x74ivJA8wX+8x1V3sG3xaM5mhP/ndnH3MWa2HqEq5LbAzoT/w18SNtkupVpfe/pgOe3XwvEHCRU9f8TdJ5nZjoQE6nzCflyPAA8V7aea2fOE0df/IxSV+ZowevQHoGkFvma5+z+K0aHDCQntOMLvm/UIG5k31eLPprs/bWa7FPc/k9CvryfsE9bqesxm4rrezN4hTNfcu7jnaMLvnXOo0Gi8iHQe0ywNEemKineb93D3ai6wF+k0ZvY60Nvdl5rpySIi0iVpzZWIiEgnaro+qji2FaHwx0yLp4iISNelaYEiIiKd604zG0VYb1VP2Idpd+BL2r+JtIiIdCFKrkRERDrXnYRkagvCOsKvCOv8TiixSIaIiHQRWnMlIiIiIiJSBlpzJSIiIiIiUgZKrkRERERERMpAyZWIiIiIiEgZKLkSEREREREpAyVXIiIiIiIiZaDkSkREREREpAyUXImIiIiIiJSBNhFuQRrF3wBR8eldwJnA40mederGYKNGjeoHHAOcPnz48Cmdee9ZQX19/bxAAqQ1NTXavLOM1HcrS323ctR3K0t9t3LUdytLfbdyelLf1chVy+4CphX/3hx4FHgyjeKt0yju3Ylx9ANOKD5K+c1L+P7OW+1AeiD13cpS360c9d3KUt+tHPXdylLfrZwe03eVXLUgybM9gIWBc4HxxeE1gVuBt9Io3j+N4v7Vik9ERERERLoWJVetSPJsZJJnRwALEIYqvyyaFgNS4KM0io9No3j2asUoIiIiIiJdg5KrNkjybEySZ2cAI4D9gHeLpp8ApwIj0yg+L43iBasUooiIiIiIVJmSq3ZI8mxykmdXAksBWwFPF00DgcOBD9Iovj6N4uWqFaOIiIiIiFSHkqsSJHk2Pcmz24G1gfWAO4umPsBuwKtpFN+dRvFGaRRblcIUEREREZFOpOSqA5I88yTPHk/yrBZYBrgGqC+aNwMeAp5Jo3jbTq4wKCIiIiIinUzJVZkkefZmkmd7AzFwNjCuaFoNuAV4J43iA9MoHlCtGEVEREREpHKUXJVZkmefJXl2FKHC4FHAjE3mFgEuAT5Oo/j4NIqjlq4hIiIiIiLdj5KrCknybGySZ2cTRrL2Bt4umuYCTgI+SaP4gjSKR1QpRBERERERKSMlVxWW5NmUJM+uIazJqgUeL5pmAw4B3k+j+KY0ilesUogiIiIiIlIGfaodwKwiybPphKqCd6ZRvDZwJPBroDewM7BzGsX3A2cBDyV55lULVkRERERE2k0jV1WQ5NmTSZ5tBSwNXAlMLZp+DjwAPJ9G8Y5pFCv5FRERERHpJpRcVVGSZ28nebYfMAI4AxhbNK0M/A147951Nt1/2sRJbLbZZktXKUwREREREWkDJVddQJJnnyd5dgywIHAE8FnRNKL+u3Fn37fxr1nwvU+eGtqrz8tmtr+ZDa5etCIiIiIi0hwlV11IkmffJXl2LrAwsAfwBsD08RPYYsAwThk23wo7zjZHOlevPl+Y2eVmtmpVAxYRERERkf9RctUFJXk2Ncmz64HlJswxdI/3G8KSrL7Wiw37D+FPQ+ebbZ+Bc+23YO++z5nZC2aWmNmQ6kYtIiIiIjJrU3LVhSV55tP22/ne4SccwQXjv3rrxakTmO5OLzNW6zeQY4cO59DBP1l5qT79LwNGmdkVZraamVm1YxcRERERmdWoGl0Xt+uuu04G2GGHHdacb7754oX79Dti7b6Dtl+j36C+NWYsVTOApWoGMHLa1IH3Tx677wtTJ+w7HV42sxT4q7t/V+UvQURERERklqCRq27E3V/5oH7ybjdOzOc457vPD/3v5O8+mzC9AYAF+vRln0FzcfLQ+flpv8Er9sMuBT43syvNbHWNZomIiIiIVJaSq27I3Sd8NG3KhTdPyOe/ePxXa/138nePfTt9mgNEvfuw/cCI04bNz68GDJttsPXaB3gGeMnMDjKzodWNXkRERESkZ1Jy1c19UD/56Zsn5Ov/c+LoYY9NHpd+1VA/EWBgr95sPmAYpw6bn51mm4O5evVZAbiYsDbrKjNbQ6NZIiIiIiLlo+Sqh3h+yoTvbpzwzQFz964Z9PLUCQeMmjb1UwgVBjcIFQbZb9BcLNS772zA3sDThLVZB5vZsGrGLiIiIiLSEyi56mGSPPNLx32V/mnsZwt83VC/7ucNU5+ZUWFwlb4DOWbocA4f/BOWqRkAsDxwEWE062ozW1OjWSIiIiIipely1QJra2v/D9gTWA74V11d3Y6N2pYFriQkBR8CB9bV1T1WjTi7gz+M+fQJYM00ihf5dvq0UwZb7+36mPVeomYAS9QM4NNpU/nP5LE8N3XCgOmwF+HxmpldDtzo7mOq+gWIiIiIiHQjXXHkahRwCnBF44O1tbU1QB3wL2B24Azgjtra2tk7PcJuJsmzD47+duROfczmnerTT6t3Hw8wf5++7DVoLk4ZOj8b9xtCPwxCUvsXwmjWtWa2lkazRERERERmrsslV3V1dbfV1dXdDnzTpGlDYDbg7Lq6uil1dXU3AhmwdedG2H0lefb1b0Z/fFyN2TzAIdPcRwHM0bsP2w2cg9OGzc+vBwxjiPUGGADsATwJvGpmvzEzJbIiIiIiIi3ocslVK5YFXqurq5ve6NjLxXFphyTPJiR59pc+ZgsBO093fwVChcHNigqDu8wWMXev/80aXRa4kO9Hs9bWaJaIiIiIyA91uTVXrRgEjG1ybAxQkX2bRo0a1Q/oV4lrt9PgGR9HjRpV1gv/6rUnAO6aOva7ux7dYe+NJn/51aE+rWGjGjPW6z+YdfoN4pX6idw/6TuyhikA/QmjWXv06tXrrWHDhl2z7bbb/v2kk04aU9bAOtGwYcMG9u7dm4aGhoFff/31kGrH08NUrO+K+m6Fqe9WkPpuRanvVpD6bkV1+b47fPjw79pyXndKrsYDTTvyUGBche53DHBCha5dik8rdeG+Q4fws3v/CcDYt97lg2v+ymf3PUiv6dNZqe9AVuo7kPfqJ3P/5LG8Xj8JB6ZPn77U2LFjz7rpppvOGjNmDLvtthurrroq3W1Aa8yYMTP++WgVw+jpKtZ3Z2Xqu51CfbcC1Hc7hfpuBajvdoqu3Hfb9CK3OyVXrwNH1dbW9mo0NXBF4NIK3e904LwKXbs9BhM62vxULpH8n6FLLc7KZ53IlG/HLPTty68e3DB5yu7AgMVq+rNYTX9GTZvKfyZ/x7NTx9MATJ48mVtvvZVbb72VXr16vT148OBrttpqq7+feuqp31Y61nIYNmzYCr179360oaFh/TFjxrxS7Xh6mE7tu7Ma9d2KUt+tIPXdilLfrSD13YrqMX3X3L3aMfxAbW1tH0LS9wdgcWB3oKFofhe4hLD+ZxvCHk2L1tXVja5CqJ1i1KhRQwjTIYe2dTiynNIonhM4CPgNMOeM42OmT+PByd/x2ORxTOZHfWgKcAtwOfC4d7VO1kh9ff3KwAvAKjU1NS9WO56epNp9t6dT360c9d3KUt+tHPXdylLfrZye1He7YkGLPwCTgOOA7Yp/X1FXV1cP1ALbEtZaHQds2ZMTq64gybNvkjw7CVgIOJiwvxjDevVhm9nm4PTZF/AtB8zO0FBhcIZ+wK6EYfM3zOwwM4s6O3YRERERkc7U5aYF1tXVnQic2ELba8AanRiOFJI8mwhckkbx5YTy90cBqwywXrbpgKFs0n+IPz11vP1n0nd8Mb2+8VOXAv4MnGdmbwLPNHq84e7TOvcrERERERGpjC6XXEnXluTZNOAfaRTfAmxESLJ+0dvM1uk3mHX6Dea1qROn3jt5bN8Ppk1p/FQDlikeexfHJpjZ83yfbD3txd5bIiIiIiLdjZIrKUmSZw48BDyURvEKwBHATkDv5frO1ne5vrPx6bSpY++c9O3QV4sKg80YCGxQPAAws09plGwBL7j7xIp+MSIiIiIiZaDkSjosybNXgN3SKP4DcBiwHzBw/j59hx44+Cd8N70hf2Dy2K8emvzd/NO+38egJfMXj22KzxvM7DV+mHC94+7TW3i+iIiIiEhVKLmSskny7GPg8DSKTwYOBA4F5hrSq3e09WxzRFsNmP2LL6bXX3npuK8++Gr6tBUI6+eWpfXCKr0JJfdXBJLi2Fgze47vk61n3P3rinxRIiIiIiJtpORKyi7Js9HAqWkUn0copX8EsKiZzTNv776HnzRs/nFACmx+wOiPxgCrAGsSkq01gOEzucVQ4GfFAwAzy/jh6NbL7j65rF+YiIiIiEgrlFxJxSR5NglI0yi+EtgS+D2wGmFq4BHAoZfNMeIm4Jwkz86c8Twzm5+QZM1IuFYFBszkdnHx2LH4vN7MXgGeBZ4rPr7j7g0tPF9EREREpEOUXEnFJXnWANyaRvFtwPqECoO/BGqAPYE90yi+CzgLeMzdPyXs0n0rgJn1IUwfbJxwLTWT29YQkrJVGx0bX1Qn/F/CNWHCBGpqasrxZYqIiIjILE7JlXSaosLgI8AjaRQvRxi92pnQDzcvHs+kUXwWcEeRlFHshfVy8UgBzGwoYRSs8XTCuWYSwiBgw+IBwNChQ/Of//znfPTRR/u++eabdcBz7p6X4csVERERkVmMkiupiiTPXgP2KCoMHkooVjGIkCTdCryXRvE5wPVJnv1o7ZS7jwUeKB6YmQEj+H50a3VgJaB/a3FMmzYtuvvuuyEU4DiwuNYHfD+V8DngRZWDFxEREZGZUXIlVZXk2UjgiDSKTwEOIJRy/wmwGGGU6qQ0ii8ELk3y7NuWruPuDmTF42YAM6shTCdcnTDKtTphE+PWqhMCLFI8ZqzfajCzN4GRwNczeYwvYhERERGRWYySK+kSkjwbA5yRRvH5wK7AkcDihETrVODYNIovB85P8uyTtlzT3euBl4rHjOmEgwgjWqsDq/fr12+dKVOmzDeTS/UGliseMzPFzL7hx0nX68Df3H1CW2IXERERke5nZu/gi3SqJM8mJ3l2JaFgxVaEsuoAA4HDgQ/SKL6+WLPVbu4+3t0fc/dz3X2HcePG1X722WdsvfXWvwFOBO4GvunAl9APmI+wL9cmhDVlhwJXAK+Z2QYduLaIiIiIdGFKrqRLSvJsepJntwNrA+sBdxZNfYDdgFfTKL47jeKN0ii2jtxrrrnm4uabb37S3f/k7psDcxPKuu8AnAM8Ski4OjrdLwYeNrMLzGxgB68lIiIiIl2MpgVKl1ZUGHwceDyN4qUJFQZ3JZRa36x4PF9UGLxtRoXBjijWTH1UPP4x47iZ9QbmIFQlbMtjTpr/GTsE2NzM9nL3xzoar4iIiIh0DUqupNtI8uxNYO80io8nTLU7gLAh8aqEJOiDNIrPBa4tNjAuq2ID4hlrqGaqqGA4DFgeuJQf7s21CPCImV0AHKdqhCIiIiLdn6YFSreT5NlnSZ4dBSxA2JD486JpEeAS4OM0io9PoziqVowQRsDc/Vt3fwRYmbBJ8vRGpxihOuLLZrZ2FUIUERERkTJSciXdVpJnY5M8O5uwlmlv4K2iaS7gJOCTNIovSKN4RJVC/B93n+zuvwfWAd5p0rwY8LiZnWtmAzo/OhEREREpByVX0u0leTYlybNrCHta1RLWaAHMRljf9H4axTelUbxilUL8H3d/mlAK/lx+WCDDgN8SRrHWqkZsIiIiItIxSq6kxygqDN6Z5Nl6hBGi2wkJTG9CSfSX0ii+P43ijTtaYbAj3H2Sux9BqIL4XpPmxQmjWGeZWf/Oj05ERERESqXkSnqkJM+eTPJsK2Bp4EpgatG0CfAAocLgjpNHf9u7WjG6+xOE/bD+zA9HsXoRNlF+zcyOMLN5qhCeiIiIiLSTkivp0ZI8ezvJs/2AEcAZwNiiaWXgbzevuN7tb151A/nrb1VllMjdJ7r7b4ENgA+aNC8KnA18amZ3mdl2Gs0SERER6bqUXMksIcmzz5M8OwZYkLBX1mcA06dOHf70cSdT94ut70qj+MQ0iuesRnzFflcrABc209wb+CWh3PznZnaJma1RlHoXERERkS5CyZXMUpI8+y7Js3OBhYE9eg/o/wGANzQMA04gVBi8KI3ihTs7Nnef4O6HEkax/tvCacOAA4GngTfN7Ggzm6+TQhQRERGRVii5kllSkmdTkzy7frd3X9h+kxsvp2bI4BeKpgHAwcB7aRTfnEbxKp0dm7s/6u4/JZSY/yPwYQunLgmcDnxiZs+bWWpm+5vZqpo+KCIiItL5lFzJLK1XTQ0L/GxDdnv3hf2BNYFbCcUlegE7EApfPJBG8S86u8Kgu3/k7icT1l6tD1wFjGvm1F7AKsD+QAo8B4wzs5fM7CozO9jM1jSzyMxqOit+ERERkVmNkiuRQpJnzyR5ti2wBCFJmVI0bQzcSyjlvnMaxZ2aoHjwmLvvC8wD7Ar8hx9WGGyqD6ES4d7ARcBTwDfAVDObaGZfmNl7ZvaCmf3XzO4ws7PNLK7sVyMiIiLScym5EmkiybP3kjw7AFgIOBUYUzStANxEmDJ4aBrFgzo7tqK64E3u/vMivuMIidOkdlxmAPATwojYysCGhM2XjwBeNLN1yxq0iIiIyCxCyZVIC5I8+zLJsz8ACwCHAyOLpoWA8wnFL05Oo3juasTn7iPd/TR3XxsYAiwL7A5cADwGjC/hssOAB8xs67IFKiIiIjKL6FPtAES6uiTPxgPnp1F8MWEd1lHAcsDswB+AI9IovhY4N8mz96sRo7tPA94oHjcAmFkvYDHC6NRKhNGqIcDg4mPjx8BGl+sH/NPMDnb3SzvraxARERHp7pRcibRRkmf1wI1pFN8E/JyQZP0U6A8cACRpFN8KnJXk2XPVizRw9+nAO8Xjb62da2ZLENaVjZhxCLikKPN+vLu3tr5LRERERNC0QJF2S/LMkzy7L8mzjYHVCJv7TickJNsCz6ZR/N80ijfr7AqDpXL3d4C1gVeaNB0HXKkqgyIiIiIzp+RKpAOSPHs+ybMdgMWBS4DJRdOGwN3Aq2kU755Gcd8qhdhm7v45oeT7g02a9gZuN7M5zWxQ8RhYPGYzM42Ai4iIiKDkSqQskjz7IMmzg4EFgZOA0UXTssB1wAdpFP82jeLB1YqxLdz9O+CX/Hga4S+Brwn7bI0jFMsYD0wAJpnZi2Z2qZntaWZLF+u9RERERGYpegEkUkZJnn2d5NkJhCTrEODjoml+4FxChcHT0iiep1oxzoy7TyXspXVuG5/Sh1Aw4wDgGkJRjW8XWmihf7788ssViVFERESkKzKtU29efX39vMC81Y5j2rRpA8eNG/fo4MGD1+/Tp8+EasfTAy1J2LtqF+Dtcl988uhvez98wOE/++r5l/aYNnHSEv9rMKsfOO9P7lxy951uXOGwAz9u5RJVtfrqq+/y8ssv/7bU5/fr14+DDz44OeOMM54vZ1wCVLjvzsr0e7fi1HcrRH234tR3K6Q79N2ampoX23KekqsW1NfXnwicUO04pGdwd0Y9+iSvXXwFox598vsGMxba7Gcsd/B+zL3KilWLrzX3338/t9xyC1OmTGHG74vGvzdGjRrFCy+8wKRJze9jPHz4cJ566inmnbfq71WIiIiIlKSmpqZNRcqUXLVAI1ezjE5/F+rZE89Y4oPb6naf9NU3P6fR1NyawYNemnfdNa/b8JJzH+8zYEC3+sHM87z32WefvciTTz657MiRI5f98ssv1582bdrsM9oHDx782gsvvLDfiBEj6qsZZw+jd1ArRL93K059t0LUdytOfbdCukPf1chVDzFq1KghwFhg6PDhw7+rdjw9TX19/crAC8Aqbf2hKZc0imPgcGBfYECjpjeBs4G/Jnk2tTNjKhczWwF4Epit0eFrgH20Z1Z5VLPv9nT6vVtZ6ruVo75bWeq7ldOT+q4KWohUSZJnWZJnhxCKX5wAfFM0LU1IRLI0io9Mo3hotWIslbu/Mvfccx/U5PBewP9VIx4RERGRzqDkSqTKkjz7Jsmzk4CFgIOBD4um4cBZhAqDZ6ZRPLxaMZbipZde+tdvfvObpof/bGYbVSMeERERkUpTciXSRSR5NjHJs0uAJYAdCFMPAIYARwEfpVF8VRrFS1UrxvY66qijqKmpua/Rod7ALWa2RrViEhEREakUJVciXUySZ9OSPPsHsBqwMTAjOakB9gbeTKP4jjSK16lWjG3Vq1cv9t9//32BdxodjoCnzexmM1u4SqGJiIiIlJ2SK5EuKskzT/LsoSTPNgVWBG4EGormWuDxNIqfSKP412kUd9mf5WOPPfY74NdA0wWqOwBvm9l5ZhZ1fmQiIiIi5dVlX5CJyPeSPHslybPdgEWA84EZZUrXBm4njGbtk0Zxv+pE2Dp3fwfYHBjZpKmGUDHxAzM7x8wW7/TgRERERMpEyZVIN5Lk2cdJnh1OqDD4B+CromkJ4ErCuqzfp1E8rEohtsjdHwcWB35PKLfa2FDgd8A7ZvagmW1nZn07O0YRERGRjlByJdINJXk2OsmzU4ERwAHA+0XTPMAZhAqD56RRPH+VQmyWu09297P4fgSuuU2Ffwr8A8jM7NedGJ6IiIhIhyi5EunGkjyblORZStg1flvguaJpMGEkKEuj+No0ipepVozNcffc3Q8HlgKuBSY3c9pw4HYzu9jMBjTTLiIiItKlKLkS6QGSPGtI8uxWYA1gQ+DuoqkPsAfwehrF/06jeP00iq1KYf6Iu3/g7nsB8xHWXr3TzGkHAc+a2bKdGpyIiIhIO/WpdgAiUj5JnjnwCPBIGsXLAkcCOxN+1jcvHs+kUXwWcEeSZw0tXqwTufto4HwzuwBYHzibUIp+hmWB58zsP4T1Wi09viAUzcjd3TvvKxARERFRciXSYyV59jqwRxrFfwAOBRJgEGF061bgvTSKzwGuT/KsuWl5na5IiB4xs3WBkwibJ88YaesP/KqNl5psZp8Q9ghL3f2NsgcrIiIi0oSmBYr0cEmejUzy7AhgAeAY4MuiaTEgBT5Oo/jYNIpnr1aMTbn7VHc/Gvg5YTSqvfoTKhP+BnjdzB41s121n5aIiIhUkpIrkVlEkmdjkjw7g1BhcD/g3aJpbuBUYGQaxeelUbxglUL8EXd/AFgeuI4fl29vj/WAG4Cvzex5MztDe2qJiIhIuWlaoMgsppgCeGUaxVcDtYR9p9YEBhKKSvwmjeKbgbOTPHu1epEG7v41sCeAmfUhVEIc2sxjdkKFwfkJo3SrAbM1uZwBqxSPA81sZXf/oPJfhYiIiMwKlFyJzKKSPJsO3J5G8R3AOoT1Tb8i/F7YFdg1jeJ7gbOAh4tiGVXl7tOAb4tHq8xsKLALcCChIEZTQ4DUzDZR8QsREREpB00LFJnFJXnmSZ49nuRZLbAMcDXfb+67KfAQ8GwaxdulUdy7WnG2l7uPdfdLCNMK1wBOAB4DpjU6bWNg9yqEJyIiIj1QScmVBUub2U/NbHMzW9PM5ih3cCLSuZI8ezPJs32AmDBi9V3RtCrwD+CdNIoPTKO422zq68Gz7n6Su69PWG/W2HlmNlc1YhMREZGepc3JlZn1NrNfm9lthCk5rwEPAHcCTxIWir9uZieY2UKVCVdEOkOSZ58lefZ7YEHCdMHPi6ZFgEsIFQaPT6O4O1bfuw54sNHncxD22NJIvoiIiHRIm15MmNlOwDvATUADcCJhOs3yhHLHawA7AfcA2wHvmdkVZja8AjGLSCdJ8mxskmdnE0ay9gbeKprmIuxD9UkaxRekUTyiSiG2W7G+6gCg8d5eOwOfmNlFZradma1lZgua2QAzs+avJCIiIvJDbX2n9gTgNGBud9/O3c9394fd/XV3f9/dn3P3f7j7ke6+LGEKUW+0lkGkR0jybEqSZ9cQCkPUAo8XTbMBhwDvp1F8UxrFK1YpxHZx9/cJbxI1Nh9wMGH645PAx8BEYIqZfWVmD5vZKcVU6BXMbH4zq+nUwEVERKRLa2u1wKXaU03L3V8F9tY7viI9S1Fh8E7gzjSK1waOBH5NeDNlZ2DnNIr/A5z1i8fvebbv0CHVC3bmzgM2An4xk/NqCCN1GxSPxr4ys+Pd/fIKxCciIiLdTJtGrkotU6zyxiI9V5JnTyZ5thWwNHAlMLVo2gT4z/3rb/7oZ/c8wOiXX+uSFQbdvR7YnDCl+RZgfAmXmZtQzv18M+uSX6eIiIh0nnbvc2Vm67fSPB0YC7zr7lNKjkpEuo0kz94G9kuj+I/Ab4CDgKE+ffoKLx51Api99IT7OcA1SZ5NqGqwTbh7A3AzcLOZ9QfWJqwvm58wTXB2YBgwD6FMfUuj8YcCa5jZX4E6d/+4wqGLiIhIF1TKJsIPA41HpKzJ5wCTzCwFjnT36SXGJiLdSJJnnwPHplF8OrAfZr/DfTjuCwF/AU5Mo/gi4OIkz76uarDNcPfJhD29mlVsSrwmYd1ZBKxP2Hx5hjWLx/lmdgZwvH7/iYiIzFpKKT28OfApcD2wDbBu8fHG4vguwPmEheEnlCVKEek2kjwbl+TZeatdcPryK576B+jVa0aFwYjwO+HjNIovSqN44SqG2W7FpsT3ufu57n4sYb3WZc2c2gs4FrjNzAZ3apAiIiJSVaWMXO0D/NXdj2ly/HYzOx3Y3t23LopZ7IYSLJFZ0jwbrVcP8JMN1lnzvnU3W5ewX9YGwADCmy8HplF8C3B2kmcvVC/S0rh7vZkdBDxDKOyxdJNTfg18bmb/BV4nTJl+B7hb06ZFRER6plJGrn7BDzfgbOwhwmJ2gP8S1iyIyCys79AhJHl2d5JnGxKmzd1KmErcC9gBeD6N4gfSKP5FGsXdqsKoB9e6+zKEDZavbXLKQGAL4GjgdOA2YKSZnWNmu5jZStq8WEREpOco5Y/6eMJ0mOZsxPcVt/oC35USlIj0TEmePZPk2bbAEkAKzBjB2Ri4F3gpjeJd0ijudvtHufuHhI2Wj+DH61Abmwv4HWEq9YuEzYvPN7MlKx+liIiIVFIpydWlwNFmdrmZ/crM1iw+Xgn8HrikOG9t4JVyBSoiPUeSZ+8leXYAsBBwKjCmaFqBkHS8n0bxoWkUD6pSiCUpRrLOBVYn/C78oA1Pm49QbfBNM7vFzEZUMEQRERGpoHYnV+5+EnA4obDFHcATxcdfAoe5+8nFqTcS3sUVEWlWkmdfJnn2B2AB4DDgk6JpQUJhnE/SKD45jeK5qxNhadz9eXc/2N0XBeYFlgc2Bf4G1LfwNAO2BZ7WKJaIiEj3VNJcf3e/kPBiaARhhGoEML+7/6XROW+7+yfNXkBEpJEkz8YneXYBsCiwK/Bq0TQ78AdChcFL0yhetFoxlsrdv3D314pKgzsTpgWuC+xL2Lx4UpOn/AT4r5kdY2a/NLP5igJBIiIi0sWVvJC62L9lJPAmMFL7uYhIRyV5Vp/k2U3AioSRnhn7TvUHDgDeTaP4ljSKV69SiB1WlHR/wt2vcvftCSNbx/L9elUImxafBtxF2OLiNTP7WedHKyIiIu1RSil2zGwDQon1tYEaoN7MngBOdPfH2nOt2tra8U0O9Qfurqurq23hfAcm8v2C8cfq6uo2a889RaRrS/LMgfuA+9IoXpVQ6nxbwhtC2wLbplH8CHAmcG9xfrfk7mOB083sEcLX3Nw6s2WA/5jZZ4Q3tP4yderUzzoxTBEREWmDdidXZrYJcDfwLqG08BeEd163BR40s1+6+wNtvV5dXd3/XkjU1tb2Jqy5+MdMnrZKXV3d2+2NXUS6nyTPngd2SKN4EeC3hLWc/Ql7Zm0AvJ5G8dnAzUmeTa1epB3j7k8Wo1NXAMu1cNp8xWOTJZdc8obXX3+dPn1Keo9MREREKqCUaYGnEJKrZd39T+6euvuJhBcD9xTtpdqU8K7trR24hoj0QEmefZDk2cGEYhcnAaOLpmWB64AP0ij+bRrFg6sVY0e5+zOEionzEYoEHU3YgPhHPvzww9123HFHPv30U2VXIiIiXUQpydVywKXu/oNpOMXnlxKqYpVqL+Dmurq6pgu8m3qotrb2y9ra2rtqa2uX6cD9RKSbSfLs6yTPTiAkWYcAHxdN8wPnAiPTKD4tjeJ5qhVjRxTl3Ee5+z3ufiawMmFfrKdpsn9WXV0dq6222jlm1r8asYqIiMgPWZMcaeZPMPsKOMbdr2qmbV/gNHdvd9nk2traOYHPgPXr6uqeaeW8DYCngH6EfbX2Apaqq6sr64bFo0aN6lfco9oGExa0zw+Mq3IsPc6wYcNW6N2796MNDQ3rjxkzRvuylVen9N3RL7/W+/nDjt1y6rdjDvXp01do1DS1V7++fx269BJ/Wff6y96v1P070/33319z4IEHnjF58uR9Gx/v06fPgyeccMIue++998zemJK20e/dCtLv3YpS360g9d2K6vJ9d/jw4W3KNUpJrq4Efg3s6u73NTr+c+AGoM7d92vXRYHa2tpDgf3r6uraNRJVW1v7MZDU1dXd2957tmbUqFEnEop2iEg34O588/TzvH/NTXzz1HPfN5gxz0/XY9G9dmH2FZatXoBl4u6cc845nH/++T84vsgii7D11lsz//zzs8466zDvvPNWJ0AREZEeaPjw4W3aFqWU5Gp24F5gNeA74EvCviyDgeeATd19TLsuCtTW1r4M3FhXV3dOO5+XAQfV1dXd0957tkYjV7MGvQtVUVXru49su8fy47OPD5k+tX4bGk1/tt69n+w3Z3TBOtddct9s883bbSsMAmyxxRbnvvTSS/u20Ow1NTX3bLHFFodcdNFFX3dqYD2Dfu9WkH7vVpT6bgWp71ZUl++7FRu5AjCzXsAWhI0wZycsLH8cuKuU/a5qa2tXBp4B5q+rq/uylfOWISQ8rwJ9gaMIe98sWVdXN6a99+0ORo0aNQQYCwxt63+qtF19ff3KwAvAKjU1NS9WO56epCv03TSKY+Bwwoa9Axo1vQmcDfy1u1YYrK+vX/ncc8994ZhjjmnttDeAtdy9S/6h6qq6Qt/tyfR7t3LUdytLfbdyelLfLWkTYXef7u517n6Uu+/n7r939zs7sJHwXsBdzSVWtbW142tra9crPp0b+Cvhm/8JsCbwi56aWIlIxyR5liV5dgih+MUJwDdF09LANUCWRvGRaRQPrVaMHfG73/2OnXba6QDg5RZOWQb4zsxeMbPLzOyPZrabma1uZkM6L1IREZFZQ5tGrsxsjvZc1N1Hz/wsaYuelMl3RXoXqnK6Yt9No3g2YE9C9b2FGzV9B1wGXJDk2agqhNZujftu3759XyZUch0O/AI4tA2XmAycA5zQgTfGeqSu2Hd7Ev3erRz13cpS362cntR32zpy9Q3wdTseIiJdTpJnE5M8uwRYAtiB8EcSYAhhmvFHaRRflUbxUtWKsRTFbIJXivLthxH2x5qZ/sAfgJfNbG8z035ZIiIiHdTWP6Z702R/FRGR7irJs2nAP9IovgXYkJBYbQrUEH7f7Z1GcR1wVpJnT1Qt0NKdBXxIGMVaDFiDlgv0LAdcBexoZju7+zctnCciIiIz0abkyt2vrXAcIiKdLskzB/4L/DeN4hWAI4CdgN5ALVCbRvGThGTlziTPusX0uWJT91uKB2bWj1CBaR5CsnUgsHqTp20CvG9mpwMXurv2zBIREWmnkgpaiIj0NEmevZLk2W7AIsD5wISiaW3gduDNNIr3TaO4K2zR0C7uPsXdP3D3J4o3y9YiTAn8tsmpQ4EzgNfNbD0z693JoYqIiHRrbUquzOyfZrZSWy9qZgPM7FAza2kPFhGRLinJs4+TPDucUGHwD8BXRdMSwBWEdVlHp1E8rEohdlixRutUd58D+A3QtBz9wsCjwNdmdq6ZxZ0epIiISDfU1pGrj4AnzOxFMzvWzDZoXEHQzPqa2RJmtrOZ3QB8AewKvFT+kEVEKi/Js9FJnp0KjCDsp/d+0TQPcDowMo3ic9Ionr9KIZaFu19EKE1/czPNswO/JUwXPK3Y41BERERa0KY/lO5+BGGe/r+B/QhrFL42s3ozmwRMImzKeS2h6tYu7r6au7/QwiVFRLqFJM8mJXmWAksC2wLPFU2DCCXdszSKr02jeNlqxdhRxZTBnYCNgDHNnNILOAa4wcyGdWJoIiIi3UqbS++6+2fAH4E/mtmiwKrAvIRyvqOBd4Bn3X1iJQIVEammJM8agFvTKL4NWJ9QYfCXhN+jewB7pFF8F6H4xWNFsYxuxd0fNrPlCBu7r0T4+hqvMdsZ2NnMviPsk/UwYY3Wy96WTRNFRER6uJL2NXH39/l+ioyIyCyjSJoeAR4pRquOAHYh/D7dvHg8k0bxWcAdRVLWbbj7p8DJAGY2F3AhsGOT04YUj+2Lxxdm9jfg9+5e34nhioiIdCmaPy8iUqIkz15P8mxPQgGIc4HxRdMawK3AW2kU759Gcf8qhdgh7v41IXE8kdb3OpwHOJwwdVBERGSWpeRKRKSDkjwbmeTZEcAChATjy6JpMSAFPk6j+Lg0iudo6RpdVVFZ8E+EfbHOBx4EnuLHFQYB/mRmV5rZip0XoYiISNeh5EpEpEySPBuT5NkZhAqD+wHvFk1zA6cAn6RR/Oc0ihesUoglc/fn3f1wd/+Zu69NGK1KgGeanLoP8KKZHdDpQYqIiFSZkisRkTJL8mxykmdXAksBWxFGegAGAocBH6ZRfEMaxctXKcQOc/dv3f1yYAdCcYvGDLjUzI7q/MhERESqR8mViEiFJHk2Pcmz25M8WxtYD7izaOpN2AvwlTSK70mjeKM0iq1qgXaAu38MbAk8ATQtZnGmmTUthiEiItJjtTu5MrPBZjZnk2O7mNkpZrZR+UITEek5kjx7PMmzWmAZ4Gq+T0Q2BR4Cnk2jeLs0intXK8ZSuft97r4uYfrjY02arzCzBaoQloiISKcrZeTqRooyvQBm9kfgBuAA4AEz275MsYmI9DhJnr2Z5Nk+QEzYE+u7omlV4B/Au2kUH5hG8YBqxVgqdx9DSBafbHR4EPCJmZ1vZt1urZmIiEh7lJJcrQbcD2BmBhwMnObucwIXAEeWLzwRkZ4pybPPkjz7PbAgYUPiUUXTwsAlhAqDx6dRHFUrxlIUG8nvAIxr0nQocI+ZlbS/ooiISHdQSnI1B/BN8e9VgDkJU1wA6oAlyhCXiMgsIcmzsUmenU1IqvYG3iqa5gJOIlQYvDCN4hFVCrHdio2IT2qmaWngOjNbw8zmKt6gExER6TFKSa6+IPyBBNgc+MjdPyw+HwhMK0dgIiKzkiTPpiR5dg2wLFALPF40zQb8Bng/jeK/plG8UrVibKc/A6c2c3xn4GngK2Csmf3dzP5oZut0anQiIiIVUEpydQtwlpndQpjKcl2jtpWA98oRmIjIrKioMHhnkmfrAesAtwNOqDC4E/BiGsX3P3zgb1d39ypG2jp3b3D3PxD+zjzVwmmDge2BPwGPm9lOnRWfiIhIJZSSXB0DnAv0B84BTm/UtgphQbaIiHRQkmdPJnm2FWG/rCuBqUXTJh/+69+X1v18K+7dYa+fp1HcZdcxecgAt+bHmw03569m9ryZ3W5mO2vaoIiIdDft/oPs7tNofi497r5VhyMSEZEfSPLsHWC/NIr/SJgieBAwNH/tTQhvcCVpFJ8LXJPk2YTqRdo8d//CzNYClgdWIKzNXQT4OTB7k9NXKR6/BlIzOxG4zN273NclIiLSlDYRFhHpJpI8+zzJs2OBBaLllj5v4PB5ZjSNAP5CqDB4YhrFc1UrxpZ48Iq7X+/ux7n7joR9sdYGJrbwtEGEGRJfmdk1ZjZHZ8UrIiJSijYlV2Y23cwa2vqodNAiIrOyJM/G/fo/t9+07dMPMM/aq/8ReKNoioATCEnWRWkUL1y9KGfO3ae5+1PAosBVwIctnDobsCfwpZn9ppPCExERabe2jlwd1ehxLGE/lpHARcDxwMXAp8XxY8ofpoiINNW7b19+eduNdwHLEaq3PlI0DSDsQfheGsV/T6N4lWrF2Bbu/rm77+vuixAKd+xOqCjYVB/gQjM7wcx6d2qQIiIibdCmNVfufs6Mf5vZmcDLwJbu3tDo+OHAHYS9WUREpJMkeebA3cDdaRSvQdjMfWvCG2jbA9unUfwQcBZwf3F+l+Tu04EbgBvMbH0gBZZsctqJwP5mtpu7P9TJIYqIiLSolDVXewIXN06sIJTdJYxg7VGGuEREpARJnj2T5Nm2hKIRKTClaPopcC/wchrFu6RRXFOtGNvK3R8l7Ku4GfBsk+bhwINmlprZfJ0enIiISDNKSa4GEBZPN2cEoUS7iIhUUZJn7yV5dgCwEHAK8G3RtDxwI2FT4kPTKB5UrRjboiiEcS/wM+CJZk7ZH/jUzG4ws7hzoxMREfmhUpKr24EzzWwPMxsKYGZDzWxPQkng28sWnYiIdEiSZ18meXY8sCBwGPBJ0bQgcD7wSRrFJ6dRPHd1Imwbdx8HbADsR9hUualdgQ+LqoI/M7OFir9NqoorIiKdppQ/OgcD/wGuBkab2WRgNKHS04PA/5UvPBERKYckz8YneXYBoTLfrsCrRdPswB8ISdalaRQvWq0YZ8bdG9z9SkIBj1uB5qrT7kn4G/URMAaYZGb3mNlvzWwzM4s6KVwREZkFtTu5cvdx7r4tsAywF6Hs717Asu6+jbt/V+YYRUSkTJI8q0/y7CZgRWBTYEZBiH7AAcC7aRTfkkbx6lUKcabc/Y3i79CShCmOrelL+DrPJRT9GGlmm1c4RBERmUW1qVrgDGbWn7Co+Eh3vw94uyJRiYhIRRUVA+8D7kujeFVChcFtCW+6bQtsm0bxI4QKg/d0xQqD7v4+sJuZXQj8m7Ap8cwMAP5tZsPcfWxFAxQRkVlOu0au3H0yoUKTNgoWEekhkjx7PsmzHYDFgUuAyUXTBsBdwKtpFO+eRnHfasXYGnd/DpgfWArYBfgTcClwC/B1C0/7yszONrMuvdGyiIh0L6WsubqN8K6miIj0IEmefZDk2cGEYhd/IqynBVgWuA74II3i36ZRPLhaMbbE3evd/W13/6u7n+juB7n79sC8wGKEv12N9QWOAD4ws9zMHjSz081sic6OXUREeg5zb99MDzPbAzgNeAG4B/iKJpWb3L3pH7Fup76+fl7CH+WqmjZt2sBx48Y9Onjw4PX79Okzodrx9EBLAjcR3u3WNNcyUt+tuIr33fz1t/o/ccTxtaPffHu36VOnDp9x3Hr1Gj84XvAfKx9xyM0Lb7VFXol7l9sXX3zRZ+WVVz7rm2++2aC188ysfpFFFqm76aabtlluueXUdytDv3crRL93K059t0K6Q9+tqal5sS3nlZJcTZ/JKe7uvdt10S6ovr7+REKxDhGRWdr0adP46N/38trFV5K/9ub/jvfqW8Oi22/FcgfszdBFu8fsujfeeIPTTjuNW265ZabnLrPMMvzsZz/juOOOY9iwYZUPTkREuqyamhpry3mlJFcLzewcd/+4XRftgjRyNcvQu1AVor5bcZ3ed6fX1/PoIb9f/dOHHt1j6tjv1mzU5P2jOR5eaPOfX7fOWSe91hmxdNQZZ5yx0LXXXrv16NGjFx8/fvxi06ZNm72lc/v16/fZfffdt9Paa6+tflwe+r1bIfq9W3HquxXSHfpuxUaupHONGjVqCDAWGDp8+HCVuS+z+vr6lQlTXFdp6w+NtI36bmVVu++mUbwSocLg9kDj2QqPEyoM3pXk2cxmOnQJZmbAwoRiHj9v5dR/A6e4+zOdElgPVe2+25Pp925lqe9WTk/quyXtXG9mfc1sdzO7wsxuLT7uZmZdspKUiIiUV5JnLyV5tjOhWMRfgElF07pAHfB6GsV7pVHcr1oxtpUHHxD2w1p98ODBJ7QwDXAL4Gkz27sz4xMRke6j3cmVmc1NyNqvBX5GKM3+M0IlqeeLdhERmQUkeZYleXYIocLgCcA3RdNSwNXAh2kUH5lG8dBqxdhWRZL13Ntvv33+66+/Tp8+ff7TwqlXmdn2nRqciIh0C6WMXJ0DRMDa7h67+1ruHgNrAXMAZ5czQBER6fqSPPsmybOTgIWAg4APi6bhhGmCn6RRfGYaxcNbukZXYmaceuqpuwK7AecCTdcA/N3Mzjezrc1sCTPr0/lRiohIV1NKcvVL4Pfu/nTjg8Uc9GOBzcsRmIiIdD9Jnk1M8uxSwobE2xNmOgAMAY4CPkqj+Ko0ipeqVoxtteuuu0529xvd/QjC9MfxTU45FLiVsLB9vJm9ZGY3mNmmnR2riIh0DaUkV7MBLe1rkhftIiIyC0vyrCHJs1uA1YCfAvcWTTXA3sCbaRTfkUbxOtWKsT3c/XNgx1ZO6QesCOwK3K0ES0Rk1lRKcvUCcKiZ/WAvq+LzQ/n+XUoREZnFJXnmSZ79N8mzzQjJx41AQ9FcCzyeRvGTaRRvmUZxSUWWOou73wUsCtzO919Dcwy4zMz0ZqOIyCymlD9kxwIbAB+a2QVmdoyZnQ98AKwHHFPG+EREpIdI8uyVJM92AxYBzuf7dUxrAf8ijGbt25UrDLr7B+6+FTA3sDFwCHA58GSTUxcCHjGzOTs5RBERqaJ2J1fu/hiwDmGEaifgpOLjC8A67v54WSMUEZEeJcmzj5M8O5xQYfAPwFdF0xLAFYR1WUenUTysSiHOlLuPdveH3P0v7p64+zqEKYGNrQp8VbwJ2buZy4iISA9T0hQMd3/B3bd297ndvcbdf+Lu27i7NlQTEZE2SfJsdJJnpwIjgAOA94umeYDTgZFpFJ+TRvH8VQqxvf7KjyvmGnAaMNbMjjSzLj31UUREOqaUfa52NrPu8odORES6uCTPJiV5lgJLAtsAzxZNg4DfAVkaxdemUbxstWJsi2KfrKOA3zTTPJBQkv5mMxvUuZGJiEhnKeUdtKuBj83sQzO71sz2MrNFyh2YiIjMWooKg7cBaxLW9t5VNPUB9gBeS6P432kUr59GsVUrzplx94uAlfi+QmJj2wEvmtl6nRuViIh0hlKSq2HAJsB1wALARcC7ZvaZmf3NzA4oY3wiIjKLKSoMPprk2RbAcoS/N9OK5s2BR4Cn0ijeJo3iLrmWyd1fJuwLuSvfxz7DYsCjZna8mXXZJFFERNqvlIIWk4tFvH9y942BocCmwLvADsDFZY5RRERmUUmevZ7k2Z7AwsC5fL+R7xrAP4G30yhO0igeUKUQW1RME7wJ6AucCExvcspJhDcnf29mK3R2fCIiUn4lLaw1syFm9kszOxN4DPg3sDxwJ3BkGeMTEREhybORSZ4dQZgxcQzwRdG0KHAZocLgcWkUz1GtGFtSJFl/AjYEvmvSvChwBvCymT2rzYdFRLq3UgpaPA/kwFWECk83Aau5e+Tuv3b388obooiISJDk2Zgkz84AYmA/wqwJCPtOnQJ8kkbxn9MoXrBaMbak2MpkVb6PuanVgHvM7LBOC0pERMqqlJGrlYF64GHgv8BD7v5qOYMSERFpTZJnk5M8uxJYCtgKeKpoGggcBnyYRvENaRQvX6UQm+Xu7xGqIh4EtLR9yZ+LUaxtOi8yEREph1KSqzkIa6s+BfYiTGX4ysxuNbNDzWylskYoIiLSgiTPpid5dnuSZ2sD6wJ1RVNvQjGJV9IovieN4o26SoXBYprgpe6+CiE5/Fczp60G/NPMvjGzdTs3QhERKVUpBS3GuPud7n6ku68BzE5IsuYAzgOeK3OMIiIiM5Xk2RNJnv0aWJqwbUh90bQp8BDwbBrF23WlCoPu/ra7bw3MBbzUzCkR8JiZfaokS0Sk6yu1oEVfM1vfzI4Hbgf+TtiT5GvgtvKFJyIi0j5Jnr2V5Nk+hHVZZ/F9EYlVgX8A76ZRfFAaxbNVK8am3P0bwv5eRwHfNnPKfIQk61ozm71TgxMRkTYrpaDFI8AYwpqrfQkVmw4HlnL3edx9+3IGKCIiUookzz5L8uz3wIKEpGVU0bQwYduQj9Mo/mMaxVG1YmzM3ae6+9nATwjxTWjmtD2A0WZ2hZn169QARURkpkoZuXoPOABY2N0Xcvfd3P0Kd3+nzLGJiIh0WJJnY5M8O5uQVO0NvFU0zQn8iVBh8MI0ikdUKcQfcPd6d/8/QkXev7Vw2r7AZDPrEomhiIgEpay52tfdr3f3jyoQj4iISEUkeTYlybNrgGWBWuDxomk24DfA+2kU//WRbffoEhUG3f0bd9+ZkBRe1cJpH5hZSVP8RUSk/PQLWUREZilFhcE7kzxbD1iHsHbYCRUGd/runfcfe2r/w3hw02037AoVBt09c/d9gfWAqU2ahwINZvaEmW1iZjWdH6GIiMyg5EpERGZZSZ49meTZVoSS6FdQJC/fPPUcEz/7/A7ghTSKd0yjuE814wRw98eB/i00rw3cD0w1s6PMrOpJoYjIrEjJlYiIzPKSPHsnybP9gRG9Zxtwbp/Bg2Y0rURY9/ReGsX/l0bxwKoFSdgjC5gX+LCV084EXjezlhIxERGpkDYlV2Y2RO+CiYhIT5fk2ee/fOaBkzb5z230GTzoWODTomkE8BdChcE/pVE8V7VidPcvgBWA/YCPWzhtaWCSmW3ZWXGJiEjbR66+JewWj5k9ZGZLVi4kERGR6uozcCCbPXnfxcAihPLnbxRNEfBHQoXBi9MoXqQa8bn7eHe/0t1HAAsRqh5+2syp/zKzb8zsSjNbuFODFBGZBbU1uZrM9/O8NwSGVCQaERGRLiTJs6lJnl0PLAdsDjxSNPUHDiJsSPz3NIpXqVaM7v6Ju59ISLL+3cwpEbAPobLgX81soc6MT0RkVtLWBbqvAmeb2T3F5/ua2aYtnOvufnLHQxMREekakjxz4G7g7jSK1wCOBLYmvEm5PbB9GsUPAWcB9xfndyp3n25mtcCxwCktnLYTsJOZHejul3VedCIis4a2JlcHEXaLP5RQrnYXYHoL5zqg5EpERHqkJM+eAbZNo3gx4HfAnkA/4KfF49U0is8C/pHkWX1nxlYUvDjVzG4i/M3eDFiimVMvNbNzgF+4+xOdGaOISE/WpmmB7v6Su6/t7rMDBmzk7oNbeGjKoIiI9HhJnr2X5NkBhOl4pxDWJwMsD9xI2JT4sDSKB7V0jUpx94/c/XB3XxKIgb83c9pA4HEzO6lzoxMR6blKKcW+EfBmuQMRERHpjpI8+zLJs+OBBYHDgE+KpgWBPxOKX5ySRvHc1YivSLR2BFYGxjdzyvFm9rSZVX0vLxGR7q7dyZW7P+Lu481sfTM7zszOLT6uX4kARUREuoMkz8YneXYBsCiwK2G9MsDswHGEJOuyYjphp3P3lwijas1NA1wDqDezC81s1c6NTESk52j3u1RmNhD4F7Ax0ADkhEpEvc3sAWArd59Y1igbqa2tvRbYGZja6PDSdXV1nzT/DBERkc5TrLO6KY3ivwI/B44irMXqByTA/mkU3wacleTZs50Zm7tnwLpmtg9wZTOn/Ab4TbG15SXAn9z9q04MUUSkWytlCsCZhHe4dgFucfcGM+sNbAukwBnAIeULsVnn1dXVHV3he4iIiJSsqBh4H3BfGsWrEioMbkuYNbINsE0axY8QKgze05kVBt39KjObHTi7ldMOAg4ysxeB9d19QudEJyLSfZWy5mob4Gh3v9ndGwDcvcHd/04o/7pdOQMUERHp7pI8ez7Jsx2AxQgjQpOLpg2AuwgVBndPo7hvZ8Xk7ucQ3mS9ZSanrgyMLzYjVtEqEZFWWKja2o4nmE0CtnT3+5pp+wVwu7sPKFN8P1JMC6wtPh0JXFBXV3d1ue8zatSofoQpHNU2GPgUmB8YV+VYepxhw4at0Lt370cbGhrWHzNmzCvVjqeHUd+tIPXdiqp43335+FOjUfc/vH/DxIkJYU1WYPZZn0EDL154tx2uW+LAvZsrPlERp5122pCbbrpp+3Hjxu3c0NDQ6obI880337bPPvvsf0q9l/puRen3bgWp71ZUl++7w4cP/64t55WSXL0IvO3uOzfT9ldgCXev2E71tbW1KxMqMX0LrAf8E0jq6upuLed9Ro0adSJwQjmvKSIi0ti0iZMYeftdfHD9zUz67PP/He8zeBAjtt+SeJft6D/XnJ0a09ixY7nooou45JJLWjwnjmMee+wxirVZIiI93vDhw9v0C6+U5GpL4FbgGcJUgi+AnxB2qF8d2Mbd72jXRTugtrb2T8ASdXV1O5bzuhq5mjXoXaiKUt+tIPXdiur0vjv65dd6P3/YsVtO/XbMoT59+gqNmqb26tf3b0OXXuLCda+/7P3OiGWGkSNH2kYbbXTGpEmTDmjpnD59+jx67733/nqppZaa3tbrqu9WlH7vVpD6bkV1+b5bsZErADOrJYzqrEjYVNiBl4ET3f3Odl+wA2pra08gVAvcoTPv21lGjRo1BBgLDG3rf6q0XX19/crAC8AqNTU1L1Y7np5Efbey1Hcrp5p9N41iI1TjPQrYpFGTA3cQKgw+1ZkxWRieegVYrpXTlnP319tyPfXdytHv3cpS362cntR3S9ow0N3rgLqiLPswYExnVRGqra3dHrgHmACsDfwfoXSsiIhIt1ZUDHwAeCCN4pUIFQa3B3oDWwJbplH8OKHC4F1JnrV5xKhUHt6FXd7MNgHub+G014opgku6+zuVjklEpKsqpVrg/7j7BHf/rJPLs/4foZDFWELp9+Pr6upu7sT7i4iIVFySZy8lebYzocLgX4AZe0iuC9QBr6dRvFcaxZ0yhd3d/wMMBVp7x/5tM3MzW7czYhIR6WpKGrmqprq6uvWrHYOIiEhnSfIsAw5Jo/hPhL2nDgHmBJYCrgZOSaP4fODyJM/GVjIWd/8OWMXMegENrZz6WDGStZC7f1LJmEREupIOjVyJiIhI50jyLE/y7GRgIUKS9WHRNJwwTfCTNIrPTKN4eKVjcffp7m7AnjM59eNiJKt/pWMSEekKlFyJiIh0I0meTUzy7FJgccJ6rBeKpiGEQhgfpVF8dRrFS1c6Fne/rkiytpjJqZPM7GUz23PixImq3y4iPZaSKxERkW4oybOGJM9uAVYDfgrcWzTVAHsBb6RRXJdGccXXP7n7XUWStUcrp60AXDNs2LDn11tvPfbaa69VKx2XiEhna3dyZWbnmNmSlQhGRERE2ifJM0/y7L9Jnm1G2CLlRr5fD/Ur4LE0ip9Mo3jLNIor+qaqu19fJFmntnbeM888w0033ZQWUwYXqWRMIiKdqZRfstsDb5jZk2a2d1GOXURERKosybNXkjzbDVgEOJ+wbQnAWsC/gDfTKN43jeKKroFy9z8QXmO0ZePj94ska7FKxiQi0hlKSa4WAjYn7KJ8MfC5mV1pZmuXNTIREREpSZJnHyd5djiwIPAH4KuiaQngCiBLo/joNIqHVSoGDxYjvNZYnbCFSmveNbM3KhWPiEhnaHdyVfyyvNfdtwfmA44HViGUXX3TzH5nZnOXO1ARERFpnyTPRid5dirhjdGE70eS5gFOB0amUXxOGsXzVyqG4nXDc+4+zN3tgAMOaG1d1tLFKNZVlYpHRKSSOrqJ8Gh3v4BQivUxYEngbGCkmV1nZnN1PEQRERHpiCTPJid5djnh7/Q2wLNF0yDgd4SRrGvTKF620rFceOGFr0+dOpWVVlrp3FZO27tIsipe8VBEpJxKTq7MbKiZHWhmzxN2ax8CHEzYb+NAYD3g5rJEKSIiIh1WVBi8DVgT2AC4q2jqQ6j091oaxXelUbxBGsUVLZn+zDPP/JXwOuSkVk57w8yurmQcIiLlVEq1wJ+a2U3AKOAM4HlgdXdf2d0vdfcv3P1qwvSDdcobroiIiHRUUWHw0STPtgCWA64DphXNvwQeBp5Oo3ibNIp7VyqOYsrgCcAIvi++0dRexSjW5mamPbJEpEsrZeTqAWBh4DfAvO5+gLu/0Mx57wJ/60hwIiIiUllJnr2e5NmehL/t5wLji6bVgX8Cb6dRnKRRPKBSMbj7x+4+iLAWrCX/Bqab2ftmtnilYhER6YhSkqsV3H0td7/a3Se2dFLxi3KvDsQmIiIinSTJs5FJnh0BLAAcA3xRNC0KXAZ8lEbxcWkUz1GpGNz9y2KfrCNaOW0R4J1iNGuNSsUiIlKKUpKrj8xs3uYazGxeMxvUwZhERESkSpI8G5Pk2RmEqXr7Au8UTXMDpwCfpFH85zSKF6xUDO5+LqHC4cw8XSRZK1UqFhGR9igluboSOLmFtj8Bl5cejoiIiHQFSZ5NSfLsKmBpYEvgqaJpIHAY8GEaxTekUbx8Je7v7p8Uo1grAy/N5PQXiyTrV5WIRUSkrUpJrtbn++pCTd1NqD4kIiIiPUCSZ9OTPLsjybO1gXWBuqKpN7Ar8EoaxfekUbxRJSoMuvtLRdEsA7afyel1RZJ1rplVrBCHiEhLSkmuZgfGtdA2AYhKD0dERES6qiTPnkjy7NeE0ayrgfqiaVPgIeC5NIq3T6O4TyXu7+63FEnWz2dy6m+BaWb2ppmtoiqDItJZSkmuPgR+1kLbxsBHJUcjIiIiXV6SZ28lebYPYV3WWcB3RdMqwN+Bd9IoPiiN4tkqcX93/0+RZG08k1OXImwZM93MlqpELCIijZW65uq3ZnaUmc0JYGZzmtmRwOHAFeUMUERERLqmJM9GJXn2e2BB4CjCHpgQyrpfDHycRvEf0yiuyKwWd3+oSLJWbMPpb5rZZDNrrdy7iEiHlJJc/ZmQQJ0OfGlmU4AvCRsKX1lU+BEREZFZRJJnY5M8O5uQVO0NvFU0zUkodvVJGsUXplE8ohL3d/dXiiRrCGF6Ykv6AZ+b2dVmVsprIBGRVrX7F0uxm/rBwJLAwYRfmgcBSxbHRUREZBZUVBi8BlgW+BXwWNE0G/Ab4P2/Lb/2qflrb1bk/u4+zt03BvoAm7Ry6l5Ag5ltocIXIlJOJS84dff3gPfKGIuIiIj0AEmeTQf+Dfw7jeK1gCMJ5dx7T/rqm03v2GRL+g4dcvHUsd8dDzyY5JmX8/7u3gA8AJiZ7Q5c18KpdxJOeh5Yz90nlzMOEZn1lDQkbma9zWxtM9vezHZv+ih3kCIiItI9JXn2VJJnWxOKS1yBWT3A1LHfrQn8B3ghjeKdKlhh8HrC652rWzltVWCSmSWaLigiHdHuX2RmtjJwG7AA0FxpUweu72BcIiIi0oMkefYOsP/bN9/6z2/fee++1y66YrxPnz4IWAn4K3BaGsXnAVcneTahnPd2dwf2MbPfAd+2cuplwGVmtngxQ0dEpF1KeXfmUsI+Vz8H5gPmavKYu2zRiYiISI+yyDa136x67O/Y/N9/3wz4HfBp0TQCuJBQ/OJPaRTPVe57u/uYovDFasC/Wjn13WIz4hfNbB+NZolIW5Xyy2IZ4Pfu/qC7f+7uedNHuYMUERGRnmXulVeYmOTZecAiwB7AG0XTHMAfCUnWxWkUL1Lue7v78+6+NdAX+KqVU1cibEHTYGbnm5neQBaRVpWSXL0LDC53ICIiIjLrSfJsapJn1wPLAZsDjxRN/QnViN9No/jvaRSvWu57u3u9u/+EsB5sZg4lbEFzpZlVZN8uEen+SkmuDgeOMbMlyx2MiIiIzJqSPPMkz+5O8mxDYA3gn4R13L2A7YHn0ih+MI3iX6RR3Nya75K5+9uEPbAOBsbM5PR9gG/M7BFtSCwiTZWSXF1EWGv1upl9YmavNnm8UuYYRUREZBaS5NmzSZ5tByxBKDIxpWj6KXAv8HIaxbukUVxTrnu6+1R3v8TdZy/WZS0PjG/lKesTNiR+xcwGlCsOEeneSkmuXiDsXXED8GDxeePHi2WLTkRERGZZSZ69l+TZgcBCwCl8X+lveeBG4P00ig9Lo3hQue/t7q+5+2DC9MTbWzl1eWCimW1f7hhEpPtpdyl2d9+zAnGIiIiINCvJsy+B49MoPpMwLe+3wILF48/AH9MovgT4S3Fu2bj7FGArMxsKXAVs08KpfzezC4HN3f2FcsYgIt1Hh0qLWjDczCqy8Z+IiIjIDEmejU/y7AJgUWBX4NWiaXbgOODjNIovS6N4sXLf293Huvu2wFDg2BZO+wnwvJlNN7NjVcJdZNZT0g+9mf3CzJ4GJgMjCUPimNnlZrZLGeMTERER+YEkz+qTPLsJWBHYFHioaOoHJMA7aRT/M43i1ct9b3f/zt1PByLCa6DmGHAqoYT7GuWOQUS6rnYnV2a2E3A38DFwCOEXyAwfAHuVJzQRERGRlhUVBu9L8mxjwsbA/wCmE16bbAM8k0bxw2kU/7ICFQZHu/uChEqGrXm6KN8+pJz3F5Guydy9fU8wexO4x91/Z2a9gXpgVXd/0cy2AK50925fmrS+vn5eYN5qxzFt2rSB48aNe3Tw4MHr9+nTZ0K14+mBlgRuAnYB3q5yLD2K+m7Fqe9WiPpuxVW0775++bXzvXn5dbuO/2xULe79ZxzvPaD/+3OttPz1G1x0zn0Dh88zrZz3nDhxom2yySbbvfjiiwc2NDS0mEQtscQSV7z44ouX1dSUrcjhD6jvVpx+71ZId+i7NTU1bSraV0pyNZmwWPPBZpKrjYC73b3blyStr68/ETih2nGIiIhI+036ZjRvXXMjb119I1O+HfO/4wOHz8My++/JErtuT82gshcZ5NVXX2XVVVvf7/i8885jxRVXZO2116ZXLy3LEukOampq2jT6XUpy9RFwtrtf3ExydShwoLt3+w2GNXI1y9C7UBWivltx6rsVor5bcZ3ad/PX3+r/xBHH145+8+3dpk+dOnzGcevVa/zgEQvestLv/u/mRbap/abc911uueUOfOedd/ad2XnbbLPN//3tb397qhz3VN+tOP3erZDu0HcrOXJ1GrAfsCPwMCG5WqX4eB9wqbuf0q6LSotGjRo1BBgLDB0+fPh31Y6np6mvr1+ZsD/bKm39oZG2Ud+tLPXdylHfraxq9d00ivsA2wJHASs1apoKXA+ck+TZO+W8p5nNBVwJ1Lbh9D8R3rwu+YWl+m5l6fdu5fSkvlvKWPSJwJPAf4AvimP3AK8AzwNnlCUyERERkTJJ8mxakmc3E94Q3oTwOgagL7Av8FYaxf9Ko3itct3T3b92918TqhrOzAnAeDP7i5lVZlGWiFRcKZsITwV+Xayv2gSYExgNPODuD5Q5PhEREZGySfLMgQeAB9IoXgk4klDxrzewJbBlGsWPA2cBdyV5Nr2j93T3V4o9r1YtHpe0cvr/Af9nZnu4+/UdvbeIdK6SV1G6+3/d/Vh339/dj1ZiJSIiIt1JkmcvJXm2M7AY8BdgYtG0LlAHvJ5G8V5pFPfr6L08eM7dLyW8/toH+LKVp1xnZhPMbKmO3ltEOk8p+1wtOLNHJQIVERERqYQkz7Ikzw4BFgT+CMwocLEUcDXwYRrFR6VRPLQc9ysSrauLrWtGADe2cOpswJtmdquZraC9skS6vlJGrj4Cspk8RERERLqVJM/yJM9OBhYCDgI+LJqGA2cCI9MoPiuN4uEtXaO93P1jd98NWBR4v4XTtgZeBsaa2dFmNqxc9xeR8ioludqOMDe58eMA4DZgJLB72aITERER6WRJnk1M8uxSYHHC65wXiqbBhDVaH6VRfHUaxUuX657u/oG7L0ZIpFpzOvCtmR2hJEuk62l3cuXutzbzuMLdtwP+BaxT/jBFREREOleSZw1Jnt0CrAb8FLi3aKoB9gLeSKO4Lo3iddMobtMGozPj7v8ChgDnzOTUswlJ1jFmNls57i0iHVfubcHvIux/JSIiItIjJHnmSZ79N8mzzYAVCGukphXNvwIeA55Io3jLNIo7/NrK3ce5+5HA8sDxMzn9NGCcmR3c0fuKSMeVO7laG5hc5muKiIiIdAlJnr2a5NluwCLA+cCMTX/XIszgeSuN4n3TKO7f0Xu5+2vufgph65zdWjm1F3DRAgss8Pw775R1H2QRaad273NlZhc2c7gvoaLOusx8GFtERESkW0vy7BPg8DSKTwYOBA4B5ias07oCODmN4guAy5I8G9ORe7l7A3Cjmd1MWNt+OWFfrh+YPn36Yj/96U/p3bv3Qw0NDb9x96c6cl8Rab9SRq5+1cxjA2AqobLOsWWLTkRERKQLS/JsdJJnpxIqDCbAe0XTPITiEyPTKD43jeIFOnovd5/m7lcT3tTeH/DmzmtoaFgFeNLMbjezHTp6XxFpu1IKWsTNPJZy903cPS3eXRERERGZZSR5NjnJs8sJM3m2AZ4tmgYBvyXslXVdGsXLdvRe7j7d3a8gFNb4XSun/hq42cz+bmYbdfS+IjJz5V5zJSIiIjLLKioM3gasSZjZc1fR1Icwpe+1NIrvSqN4g45WGHT3Bnc/D4gJW+K0ZHvgITP7g5n168g9RaR1pay5+mM7Tnd3P7m99xARERHpzpI8c+BR4NFitOoIYBfCa69fFo9n0yg+C7g9ybOSZ/64+0fANpttttkSeZ6//dxzz7V06snALma2hrt/V+r9RKRl7U6uCJvn9QFmvPMxrdF1pvB9aVIIc4GVXImIiMgsK8mz14E90yj+A3AYYb3UYGB14J/A+2kUnwNcn+TZpFLvc9VVV30OMGbMmKHLLLPMX4HNmzltSWCsmX0EXOzuKkQmUkalTAvcCPicsGgzcve+QAQcUBz/qbsPLh5DyheqiIiISPeV5NmnSZ4dASwIHA18UTQtClwGfJRG8XFpFM/RkfsMGzYMQsGxxYFPWjhtBHC2md1qZkea2bCO3FNEglKSq4uAc9z9Cnf/FsDdv3X3y4FzgYvLGaCIiIhIT5Lk2Zgkz84kJDj7AjM2p5obOAX4JI3iP6dRvGCp9/DgPcJI1W9bOXVr4CzgKTNbwMw6vD+XyKyslORqBeDDFto+ADpcBUdERESkp0vybEqSZ1cBSwNbAjP2pRpImD74YRrFN6ZRvEKp93D3Se7+Z8JI1v2tnLokYZTrWzPbvtT7iczqSkmuPgIOMLMfVLgpPj8I+LgMcYmIiIjMEpI8m57k2R1Jnq0NrAvUFU29CUUwXk6j+N40in9aaoVBd/+3u/8C6E8otNGS/sDfzewqM/ujmQ0u5X4is6pSClocTVh8+Z6Z3Ql8RRjG/hVhA71tyxeeiIiIyKwjybMngF+nUbwUocLgboT9rH5RPF4oKgzeluTZtJav1Dx3n2JmGwILAHsAJ7Vw6t7Fx1XMbCegwd2ntPd+IrOaUjYRvgNYDXiesDndH4uPzwOrFe0iIiIiUqIkz95K8mwfwrqss4AZpdNXAf4OvJNG8UFpFM/W3msX67E+KbbL2QH4Syun1wITgElmdpeZtft+IrOSkjYRdveX3X1Hd1/Y3QcUH3d095fLHJ+IiIjILCvJs1FJnv2eUGHwKGBU0bQwoYjYx2kU/zGN4qiU67v7P9z9EGA5YGQrpxphb646M9vHzNYp5X4iPV1JydUMRVWZtc1sYLkCEhEREZEfSvJsbJJnZwMxsBfwVtE0J/An4JO7V/vpWRM/+7yk67v764TlHXMRKkO3ZGPgSuBxMzuopJuJ9GAlJVdmtr+ZfUYoXvEYsERx/F9mdmgZ4xMRERGRQpJnU5M8u5ZQnflXhNdhALM1TJ6SPLT5Dty1yoZXplG8UnuvXUwX/IZQuv1o4GbCso+WXGxmN5rZb8ysQ2/Yi/QU7f5BMLPDCHNzbwQ2IwwTz/AwoPKdIiIiIhVUVBj8d5Jn6wNrA/8C3BsamD61fjvgxTSK/5NG8SbtrTDo7vXufqa77wSsDvy3ldN3AS4kVIwWmeWV8i7Db4CT3f33wANN2t6hGMUSERERkcpL8uypJM+2nn2l5VZdcJtagKlF088Ie1u9mEbxTmkUt7tKtLs74c30DQkFzFryFzN7wcyeN7NLVPhCZlWllGKfD3iyhbZ6wsZ3IiIiItKJ1r3+svcB6seNX/bz+x/aizCaNBRYEfgrcFoaxecBVyd5NqGt1y1KsD8CYGZrE7bkGd7MqSsXH1cBPgdOLu0rEem+Shm5+pgwRNycNYB3Sw9HRERERDpi1XNP/jLJs2MJe1n9Dvi0aBpBmML3SRrFf0qjeK72XtvdnwLmBwYDWSunnmRm75jZY2a2QXvvI9JdlZJcXQH8wcz2AYYUx2rMbHPgSCAtV3AiIiIiUpokz8YleXYesAiwO/B60TQHYZ/ST9IovjiN4kXac92i8MV4YGfgWeAzvi8R39jiwLrATWbWrnVfIt1VKZsInwNcDVwOfF0cfgK4A7jB3S8pX3giIiIi0hFFhcEbgOUJe1U9XDT1J0wdfDeN4r+nUbxqe67r7k+7+xruPr+7zwe80sKp8wGvmNkTZnabmS1f2lci0vWVsuYKdz/EzM4nLJScExgNPOju75UxNhEREREpkyTPHLgHuCeN4tUJM462IbzZvj2wfRrFDwFnAfcX57fH3sA5hPVYTQucLdfo38s00y7SI7QruTKz/sBXwK7uXkcYvRIRERGRbiTJs2eB7dIoXoywr9VeQD/gp8Xj1TSKzwb+nuRZfVuu6e4vFs/FzH5HSLSas7iZ/QWYDEwD/uPuD3Xk6xHpKto1LdDdJwMT+L7Ep4iIiIh0U0mevZfk2YHAQsApwLdF0/LADcAHaRQflkbxoHZe+gpCVcFvCDOcmvo/4AjCZsUPmNl6pcQv0tWUMi3wOmAf4N5yBFBbW9sPuBjYmDDF8BPgtLq6uptaON+BicCMoerH6urqNitHLCIiIiKzoiTPvgSOT6P4TMLrvN8CCxIqDv4Z+GMaxZcAfynObZW7fwdsN+NzMzsJOL6F0w042My+BqYAHxX7a4l0O6UkV98Ca5vZK4QE6yu+T3QgFJH5cztjGEVIrj4i7DJ+V21t7Yd1dXVPtfCcVerq6t5ud+QiIiIi0qIkz8YDFxSJ1PbAUYRRrNmB44Aj0ii+Fjg3ybP2rLW/BtiTkKw1Z4fiAfCMmW3s7m3ei0ukqygluTq9+DgvP1ycOIMT3uFok7q6ugmEcqAzPF5bW/sEIclqKbkSERERkQop1lndlEbxX4FNCEnWxoR1WQmwfxrFtwFnJ3n2zMyu5+6ZmcVATFiWMjfwWAunr0EomnZHh78QkU7W7uTK3UvZG6vNamtrBwKrAhe0ctpDtbW1vYHngaPq6ureqGRMIiIiIrOiomLg/cD9aRSvQqgwuB0hQdoG2CaN4kcIFQbvaa3CoLs3AO8DmNl7hNLtK7Rw+iFm9rPi318DV7j752X4kkQqytoypdXM3gR2cPfXGh3bGbjb3ceUK5ja2loD/g7MBvyqrq7uR8HV1tZuQBjR6gf8nlDdZqm6urrvyhUHwKhRo/oV96i2wYSd1ecHxlU5lh5n2LBhK/Tu3fvRhoaG9ceMGdPS/hxSGvXdClLfrSj13QpS362oTum7T+17yIjRr7x+8PTJU3YDBvyvoVevN/sOG3LBCicefes8G6030wqDBx100NwPPfTQTg0NDdG0adPmmzp16rYtndurV69XRo4cuX55voLSqO9WVJf/vTt8+PA25RptTa6mA2u6+7PF570JFQNXK8pudliRWF0GLAv8vJgu2JbnfQwkdXV1ZSmwMcOoUaNOBE4o5zVFREREeoopo7/lo5tvI/vbrdSPGfu/4/3nnouFd9+BBbeppWbQwDZd6/3332eDDTZo9Zw333yToUOHdihmkVINHz7c2nJeSZsIF9p0g7YoEquLgZWAn7U1sSpML2csjZwOnFeB67ZXl8/kuzO9C1VR6rsVpL5bUeq7FaS+W1Gd2nf7zTE7Sxy0D31mm2229664btf6ceP/D/eFJn/1NW+ecxFvnnPR2N4DBlw193prXbbquSe3WmFwzjnnpG/fvpdPnTp1h5bOWW655V4E6oGGAQMGPPjAAw+cu8ACC3RaVUH13YrqMb93OzJyVQ+sWo6Rq9ra2ouBtYCN6+rqvm3lvGUIU/VeBfoSFlceACxZV1c3pqNxdEWjRo0aAowFhrZ1OFLarr6+fmXgBWCVmpqasozCSqC+W1nqu5WjvltZ6ruVU+2+m0ZxH2BbwuuzlRo1TQWuB85J8uyd1q5hZnMAM/bUOpZQPKMlO7r730uPuH3Udyun2n23nNpTnKK5LKzD7xbU1tYuBBwELA2MrK2tHV88ji3ax9fW1s7YWG5u4K+Eb/4nwJrAL3pqYiUiIiLSXSR5Ni3Js5uBVQgVBv9TNPUF9gXeSqP4X2kUr9XSNdx9tLt/4u6fAC/P5JbNVa0Wqar2TAv8bzGC1dhjzRxzd2/zhNi6urqPaWVaX11d3aBG//4vsGRbry0iIiIinauoGPgA8EAaxSsBRxD2sOoNbAlsmUbx44QKg3cledb0teQM1wPrEhK13sVjWKP2ncyscbXBccCl7t5SiXeRimtrcvWnikYhIiIiIj1OkmcvAbukUXwccDhhBGs2QtK0LmE062zgr0meTWn8XHefCOw643Mzm4+wLmeGhYtHY1ua2U/cvVuv25Huq03JlbsruRIRERGRkiR59hFwaBrFJxGWgxwCzAksBVwNnJJG8QVAmuTZ2BYu8w0wicbl339sAGGpyUw3NhaphIpuCCwiIiIiMkOSZ3mSZycDM9bcf1g0DQfOBEamUXxWGsXzNX2uu08BDiNsKuyNHk1tbGa/avTY2MzaVhNepIOUXImIiIhIp0rybGKSZ5cCiwPbE6rwQSjJfSSQpVF8dRrFSzd+nrtf7u5zu3uvGQ9CktbYqUBdo8cDwLNm1tqIl0hZKLkSERERkapI8qwhybNbgNWAnwL3Fk01wF7AG2kU16VRvG4axS0VQGtpGmFjSxOqTItUlJIrEREREamqJM88ybP/Jnm2GbACcCMwrWj+FfAY8EQaxVumUdz09etDhPVYM9PmatYipWpPKXYRERERkYpK8uxVYLeiwuBhwP7AQGAt4F/Au0WFwRuTPJvs7l8UJdk3Bvo1utTqwH6NPt/NzFZucrtRwI3uPr4yX43MapRciYiIiEiXk+TZJ8Bv0yg+GTgQOBSYm7BO6wrg5KLC4GXuPgq4ofHzzWw0P0yuti4eTf28heMi7aZpgSIiIiLSZSV59m2SZ6cRKgwmwHtF0zzA6YQKg+emUbxAk6e2ZaogwKbliVREyZWIiIiIdANJnk1O8uxywt5Y2wDPFk2DgN8CH6ZRfF0axcsWx58GHm/DpQeYWUvFMkTaRcmViIiIiHQbRYXB2wjV/zYA7iqa+gC7A6+lUXzXZXOMWGuLAcPWB5YAVmryeLDJZdcws1WbPBZX0iXtpTVXIiIiItLtJHnmwKPAo8Vo1RHALoTXt78EfrnFgGHPbjFg2FnA7UmeNcx4rpl92eRyT7Vwm7vM7Ffu3txmxSI/opErEREREenWkjx7PcmzPYEYOBcYVzStDvwTeDuN4iSN4hkbCU9s46U3BxYrZ6zSsym5EhEREZEeIcmzT5M8OwJYEDga+KJoWhS4DPgojeLjFujd97F2XHaOMocpPZimBYqIiIhIj5Lk2RjgzDSKzwd2BY4krL2aGzjluKHDJ4yaNvW26yd8k33UMPW7Jk9fG/hFo8/7IdJGGrkSERERkR4pybMpSZ5dBSwNbMn3a6sGDu/Td+ujhw4/7LI5Rix+2Rwj7nD3k9z9JL4vkDHDyma2bpIkKz7xxBMkSbKima1bPEZ03lcj3YFGrkRERESkR0vybDpwB3BHGsXrAEcBtUBvQhGMXdIovg84y2Bqk+oV5wFcc801XHPNNQBXNW40s6Pc/exKfw3SPWjkSkRERERmGUmePZHk2a8Jo1lXA/VF0y+AB88ctsDRq/SdrT0vkn9T9iCl21JyJSIiIiKznCTP3krybB9gBHAW8B3AkF69R+w3aG7+NHQ+Nug3mBpmutXV0MpGKt2JkisRERERmWUleTYqybPfEyoMHgWMApirdw07DYw4Z/YFJiSD5rp/naWXTU877TSWX375C4D3G12ipgphSxel5EpEREREZnlJno1N8uxswl5ZewFvAvSzXgNX6jvw57t9NWGPdUZP5LrkkAdQciUtUEELEREREZFCkmdTgWvTKL4e+CVhNGs9pnv/t66+EeCOQwb/5PN/TfyWkQ1TAfqY2a6At3DJ6cCz7v5BJ4QvVabkSkRERESkiaLC4L+Bf6dRvFb/aI5TJ4/+diPcey1dM2C+pYcO4K36Sdw/aSxvTZt8w0wuN9XMNnD3pzshdKkiTQsUEREREWlFkmdP7fzG00ds89g9DBw+z20N7tMBlqoZwKFD5uHYIfOyat+Brb2w7gts3UnhShUpuRIRERERaYOhiy7MDi8+eupF477c+d5JY3zi9OkALNinH/sOmouThs7Hhv0G07f5CoMDOzVYqQpNCxQRERERaYc36yf93cxeeGLK+LW2n22Ony1e03/zftYrmrN3DTsOjNh2tjnGv1M/6eFrJnyzxfgwyAV63T1L0MiViIiIiEg7ufv7XzXU33DRuC/36Ge9hgO7A68D9DEbtEzf2bY4bdj87DjbHMzZqw+oquAsQcmViIiIiEgHJHk2NcmzG4DlCRUGHwboa73YsP8QTho6H78bPM9P0yhetZpxSuVpeFJEREREpAySPHPgHuCek4bNv8GnDVMfXqlmNnqZsVhN/4WA586fY6Fn3q+ffPVl4796vKH5y+Tu/mUnhi1lpORKRERERKTMThj72TMAc/fqw8b9h7B2v8HUmDHAeq2xXN/Z1jhmyHDunzyW56dOYHqT55rZee7+uyqELR2kaYEiIiIiIuVXD/hX06fxt4mjOXbMSO6aNIYJ08N41fx9+rL3oLk4Zej8/LTfEPr9sMLgoWam6oLdkJIrEREREZEyc/cG4KEZn4/z6dw5aQzHjvmUf0zIyRumATBH7z5sP3AOThs2P7UDhjHYegH0BgZXJXDpEE0LFBERERGpjO2APYCfzDgwBeehKeN4bMr4XpsOGLrU2v0GrTF7rz5zD+zVm18OGMYm/Yfy1JTx9DYWBb6oWuRSEiVXIiIiIiIV4O7fAue3dk4axQZs8tm0qVfN16fv/DVmrN9/MO7+aBrFtwFnJ3n2TGfEKx2n5KoF9fX18wLzVjuO2WeffeC4ceMYPHjwCvX19ROqHU8PtOSMj/X19VUNpKdR36049d0KUd+tOPXdClHfrbiK9N29v3gX4JvFF1/8sekjR+20Sf+hrNJ3NnqZGbANsM3VI5Z/cfh6a163wcXnPNFnwAAv2827iO7Qd2tqal5sy3nm3uP+f8qivr7+ROCEaschIiIiIj3fUUcdxfnnnw/AnL36cPXeB/DlPQ/QMGny/84ZtsRiLHfQPiy81Rb07tu3SpHOmmpqamzmZym5alFXGbmaNm3awHHjxj06ePDg9fv06dMlM/lubkngJmAX4O0qx9KjqO9WnPpuhajvVpz6boWo71ZcRfvuUkstdegHH3yw+4zPTzzxxG12WWm1MS+cdt4OYz/8aHtvaBg2o61XTc1Xw5ZY7Ka1Tvvjv36y+srd/v+6O/RdjVz1EKNGjRoCjAWGDh8+/Ltqx9PT1NfXrwy8AKzS1h8aaRv13cpS360c9d3KUt+tHPXdyqp03zWz04GjGx1a1t3fAEijeCCwF/A7YESjc8YClwIXJnn2eblj6iw9qe9qzZWIiIiISPU1NPn8ITP7weKuXsDqfQeO/ln/oYPn79O3BhgKHD3N/ei9Bs014YHJY9//tKH+AHd/urOClh9SciUiIiIiUn3Tmnw+d9MTpgNPT53A01MnsGSf/vx8wFCWrhlAHzPW7Ddo4Op9B67w9rTJ96VRvGmSZ091TtjSmJIrEREREZHqa9c6rrenTebtcZNZoHdfNuk/hFX6DqS3GUvXDBgCPJlG8ePAWcBdSZ5Nr0jE8iNKrkREREREqu8WYGngF7TjNfrIhqlcPeGbxe+YNGbQxv2HsE6/QfSzXgDrFo+30yg+G7gpybMplQhcvqfkSkRERESkyty9Afhj8WgXM3sgnz5t439MHM1dk8ZMPHf2Bc8ADgHmJFQ5vAo4JY3i84E0ybOxZQxdGulV7QBERERERKRD/jftb4JP753k2cnAQsBBwIdF07zAmcDINIrPSqN4vs4Ps+dTciUiIiIi0r01XlPVCyDJs4lJnl0KLA5sDzxftA8GjgSyNIqvTqN46U6NtIdTciUiIiIi0r01LuP+g9f3SZ41JHl2C7A6sBFwT9FUQ9g76400iuvSKF43jWLrlGh7MCVXIiIiIiLd249GrppK8syTPHs4ybNfAisAN/B9+fdfAY8BT6RRvGUaxcoRSqRvnIiIiIhI99Y4uTIza3UEKsmzV5M82x1YBPgzMKFoWgv4F/BWGsX7plHcvyLR9mBKrkREREREurem+1i16TV+kmefJHn2W2AB4Djgq6JpceAK4KM0io9Jo3j2skXawym5EhERERHp3hqafN6u1/hJnn2b5NlphAqDCfBe0fQT4DTgkzSKz02jeIEOR9rDKbkSEREREeneShq5airJs8lJnl0OLAVsAzxbNA0Cfgt8mEbxdWkUL1typD2cNhEWEREREenemiZXL5hZ02Pt9Z3BuZfOMeIL4Chgc0LusDuwexrFdwNnAY8meeYdvFePoeRKRERERKR7a5pILVOOizqsdcDoj+Z29y3SKF4GOALYhVDG/ZfF49k0is8Cbk/yrOn0xFmOpgWKiIiIiHRvH1bour2AhQGSPHsjybO9is/PAcYV56wO/BN4O43iA9IoHlChWLoFjVyJiIiIiHRv5wCLEhKdjm4EPKx4zPCD6yV59ilwZBrFpxKKXxwGzFPc/1LgpDSKLwQuSfJsdAdj6XaUXImIiIiIdGPuPgbYsRzXMrPjgFMaH2ruvCTPxgBnplF8PrArcCSwBDAXcDJwdBrFVwJ/TvLs43LE1h1oWqCIiIiIiMzQtDjFzDYknpLk2VXA0sCWwFNF00DgUOCDNIpvTKN4hXIH2hVp5EpERERERGYodUPi6cAdwB1pFK9DqDBYC/QmFMHYJY3i+wgVBv/bUysMauRKRERERERmaNfIVXOSPHsiybNf/397dx4mV1XnYfw9JCFgIokpNqMihZhxQQVxG2dwWBwUHzg6YnABHMLMpAYSEcWHBxcYEBeGRQYGogWIOCyiD6IccBRUQBZHQTZBkACWg06DxoohNAaznfnjVkvZ9kZyq6q7eT/P00+67z19zy9wUt3fe849RTGbdT6wpnXqLcD3gVvrleoB9Up10k30GK4kSZIkDdjocDWg1mzcV2s2/gnYHvh3YGXr1K7AV4H765Xq4Y1LLps0OwwariRJkiQN2KBlgSOpNRt9tWbjGOAFFBtf9LVO7QCcfc9Jp//s/s+fz13/dtKcje2r1wxXkiRJkgaUNnM1WK3ZWFlrNk4FqsAC4N5Wj5WlS77Iw5dfeW+9Uv3PeqVaLavPbjNcSZIkSRrQsXA1oNZsrK41GxcArwD2C1Om/LB1anNgMfBgvVL9Sr1SfXXZfXfapHuITJIkSdIGK31Z4HBaOwxe1dfXd8PyO+957IeHLroyr1m7b6vP9wDvqVeq36PYYfB7E2GHQWeuJEmSJA3o+MzVUObsvBP73v6Dg4CXAucCq1un3gxcA9xer1TfO953GDRcSZIkSRrQk3A1oNZs3F9rNhYCLwQ+C6xondoZuAR4oF6pfqBeqc7oZl1jZbiSJEmSNGBwuOpJXqg1G4/Wmo2PAdsBHwZ+3Tq1PXAm8HC9Uj2hXqlu1Yv6hmO4kiRJkjRg8DNXXZ25GqzWbDxeazZOp9i2/f3APa1Tc4DjKELWknql+qJe1djOcCVJkiRpQE+XBQ6n1mysqTUbFwKvBN4GXN86tRlwGLC0Xql+rV6pvqZHJQLuFihJkiTpKeNiWeBwWjsGfhv4dr1SfR3FmxLvT1HnfGB+vVK9jmKHwau7vcPguPqPJUmSJKmnxtWywJHUmo1bas3GfGAe8AXgj61Te1AEsLvqlepB9Up1WrdqmnAzVzHG2cA5wD7ASuDTKaUlPS1KkiRJmhzG5bLAkdSajQeBw+qV6vEUb0K8CHgOxZsUXwh8pl6pfg44r9Zs9Heylok4c3UWRSicC+wLnBhj3KO3JUmSJEmTwoQLVwNqzcZvas3GsRQ7DB4JPNw69QLgdIrNLz5Vr1S36VQNE2rmKsY4g2It5S4ppceBO2KMFwCHAtf1sjZJkiRpEhi8LPDdIYRXdrLDmTNnTj/88MNZsmTJR/r7+weW9q3POX92Q67Xmp06o16pLqHIDkcDr6KYzfo48JF6pfpl4LRas7G0hL/Cn0yocEWxnjKklO5tO3Ynxd73perr65sOTC/7uhvg2QN/9vX19bSQyWj27NkzpkyZwrp162YsW7Zsi17XM8k4djvIsdtRjt0Ocux2lGO3g54pY3fOnDnTly9f3n7owE732d/fz8knnwxwbNvhtX19fWdvzHX3u/tmgKtWP7byqhsOWLDnk79d9sG8dt3uFL/jLwT+5Zxt5105Y7vn/cce37z4tpGuNXfu3JVj6XOihauZFM9ZtVvBUy8mZfoo8G8duO6G+vXoTfR0rVixYuDTG3pYxmTn2O0Ax25XOHY7wLHbFY7dDnimjN2TTjqJhQsX9roMpk6dOhV4rIxrbTprC9589dcBWPGzn/PQBZfQd811sH59yGvWxP6HfhlvPmQROx56IFv/7RsImwz55NSYlkdOtHDVDwy+UzALeLwDfX0W+FwHrvt0PZviRfL5dObv+Yw2e/bsV02ZMuWGdevWvWnFihV39bqeScax20GO3Y5y7HaQY7ejHLsd9EwZu3fdddcWm2yyyXfXr1//kl7WsXbt2rVApezrzn75S9j1lE+y+vdHbL/8rnsWrX/yjwcDmy+/7U5uue1O2GST+zadtcUZrzrhmMu23WO3NU/3+iHnrm79vlFaz1wtB3ZOKd3XOnYqsE1K6eCeFtchfX19W1Ck9lljnY7U2K1Zs+bVwG3ArtOmTbu91/VMJo7dznLsdo5jt7Mcu53j2O2sZ9LYDSFMBXaiS4/IzJs371mnnXbatUcdddSeS5cu/UPrcM4539LpvuuV6lYUuwsu5s/D3P9RbIJxbq3ZGPO/pwk1c5VSeiLGeBnFDoELgB2AQ4ADelqYJEmSNEnknNdS7GvQFa0bA1x33XW3dfvGQK3ZWAYcX69UTwEWAEcB2wPPA04Fjq1Xqp+vNRsfHcv1JuJW7Isotoh8hOLNwY5LKV3b25IkSZIkTVS1ZuOJWrNxFvBi4L3AHa1Ts4BjxnqdCTVzBZBSWkGxpaIkSZIklabWbKwFLq1Xql8F9qTYxv1NY/3+CReuJEmSJKmTas1GBr4PfL9eqc4d6/dNxGWBkiRJktQVtWZjzG8cZ7iSJEmSpBIYriRJkiSpBIYrSZIkSSqB4UqSJEmSSmC4kiRJkqQSGK4kSZIkqQSGK0mSJEkqgeFKkiRJkkpguJIkSZKkEoScc69rkCRJkqQJz5krSZIkSSqB4UqSJEmSSmC4kiRJkqQSGK4kSZIkqQSGK0mSJEkqgeFKkiRJkkpguJIkSZKkEhiuJEmSJKkEhitJkiRJKoHhSpIkSZJKYLiSJEmSpBIYriRJkiSpBIYrSZIkSSqB4UqSJEmSSmC4kiRJkqQSGK4kSZIkqQSGK0mSJEkqgeFKkiRJkkpguJIkSZKkEhiuJEmSJKkEhitJkiRJKsHUXheg4cUYZwPnAPsAK4FPp5SW9LQoqU2McTpwNrAXsCXwMPCZlNLFw7TPwB+A3Dp0Y0ppn27UKo0mxngB8D5gddvhl6WUHu5NRdJfijH2Dzq0GfDfKaU4THtfdzWuxBgXA4cArwC+kVJ6T9u5nYDzgFcCvwAOSynd2Is6N5Thanw7i+L/0VxgR+B7Mcb7UkrX9bYs6U+mAn0U4eqXwBuBb8UYf5FS+p9hvmfXlNLPu1Sf9HR9LqV0TK+LkIaTUpo58HmMcQrFTa2vjfJtvu5qPOkDPgW8meLGLAAxxmlAAurA3wHzgStijC9KKf2+F4VuCMPVOBVjnEExqHZJKT0O3NG6q3ooYLjSuJBSegI4ru3QTTHGmylC1nDhSpJUjrcCM4Gv97oQaaxSSpcDxBh3pi1cAbsDzwJOSSmtBy6KMX4IeCfwxS6XucEMV+PXPCCklO5tO3Yn8OHelCONrnVT4DXAGSM0u7Z1t/UnwNEppZ91pThpbBbGGBcCvwLOSCmd3+uCpBEsAC5NKa0apZ2vu5oIdgLubgWrAXe2jk8Ybmgxfs2keM6q3Qrg2d0vRRpdjDEAXwJuAa4ZptnuwPYUy1zvAK6JMW7RjfqkMTiT4sbWVsAHgZNjjPv3tiRpaDHGLYH9gNFuAOyOr7uaGGYCjw06toIJ9ruvM1fjVz8w+MVvFvB4D2qRRtQKVl8AngfsnVLKQ7VLKf2g9elq4BMxxoMplhB+pyuFSiNIKd3e9uX1McazKZZnu+RK49GBwIMppR+P1MjXXU0gk+J3X2euxq+lQI4xvrTt2M7APb0pRxpaK1idDewC7NN6Dmus1gOhI4VJG8/xqfFsAcVqgafLca3x6h7gFTHG9nyyMxPsd19nrsaplNITMcbLgBNjjAuAHSi2rTygp4VJf+ks4A3AXimlwUtZ/yTG+HJgOvBTYFPgaGBz3PhC40SM8QDg28ATFHf2FwMf6GlR0hBijK8GXg5cOEo7X3c17sQYp1JkkKnAJjHGzYB1wPXAk8BRMcYzgf0pfv/9Ro9K3SDOXI1viyjel+IRih/4x6WUru1tSdJTYowvBA4HXgb8KsbY3/r4WOt8f4xxt1bzrYFLKNZTP0wRyN6SUlrR/cqlIS2m2MjiMYqtgI9NKV3a25KkIS0AvpVS+s3gE77uagL4BLAK+DjF0utVwLkppTVABN5F8azVx4F3pJSW96jODRJyHvLRCEmSJEnS0+DMlSRJkiSVwHAlSZIkSSUwXEmSJElSCQxXkiRJklQCw5UkSZIklcBwJUmSJEklMFxJkiRJUgkMV5IkSZJUAsOVJKl0IYTjQwi57eN3IYSbQghv62Cfh7T62nIDv//WEMIRbV9fEEK4p7wK/6yv7UMIT4QQqp24viSpNwxXkqROWQX8detjIbApcGUI4Y09rWoIIYR3Ai8Ezu1GfznnXwKXAyd0oz9JUncYriRJnbI+5/yj1sflwNuBAPxjj+saypHAJTnnVV3s83zgvSGErbvYpySpgwxXkqSuyDk/AiwDths4FkJ4bgjh/BDCL0IIq0IID4QQPhNCmN7+va3lfkeHEE4IIfymtczwSyGEGSP1GUJ4fwhhdQhh4QhtdgB2Ay4b7e8QQtgphPCdEEJ/CGFlCOGKEMKOg9rMCiFcFEJ4PISwLIRwcgjhmBBCHnS5HwDLgfeN1q8kaWIwXEmSuiKEMBOYAzzUdnhLioDxYeCtwMkUM1ufH+ISi4EdW+dPpAglx47Q3yLgPGBBzvmcEUrbC1gD3DpK/S8AbgS2adXwz8A84MYQwlZtTb8E7Asc3Wr3V8CiwdfLOa8HfgT8/Uj9SpImjqm9LkCSNHmFEAZ+zjwXOAlYCZwxcD7nfDfwkbb2NwNPAF8OISzOOf+h7XKP5pwPbH3+nRDCa4F3AccM0e8xwPHA/JzzFaOU+Rpgac75j6O0+xDFc2N755yXtfr5MfAARXg6PoTwMuAfgPfnnC9stbkaWDrMNe9kiOAlSZqYnLmSJHXKDIoZoTXAw8C7gYNzzg8MNAiFI0MI94YQVrXaXkxx82+HQde7ZtDX9wLPH6LfTwGfAPYdQ7CCIvgtG0O73YBrB4IVQM75f4Efts4BvLb1Z2prsw64aphr/g6ohBCmjaF/SdI4Z7iSJHXKKoqw8XrgIOAR4MIQwnPb2hwJnAZcQbHhxet4aiZns0HXWzHo69XAdP7SfOBu4KYx1rkZMNqsFcBzgEeHOP4oxXJHKILampzzY4Pa/HaYaz7ZVoMkaYIzXEmSOmV9zvknOedbcs4XA+8AZgPHtbWZD6Sc80dzztfknG+lWBa4MSJQBb4eQth0DO2Xt+oaS7tthji+bescFAFyWghh1qA2w+0I+Bxgdc758TH0L0ka5wxXkqSuyDnfBnwFWBBC2LZ1eHOKGah2B7Jx7qfYJOL1wKVtz32N1H4sb+Z7E7BXCKEycKC1ycUbKTa6gKc2xXh7W5spwH7DXLPK8M9jSZImGMOVJKmbTgSmUSwHBPgu8I4QwuIQwt4hhC9T7Ai4UVobZewN7An8VwhhpJ93NwNbhxCGen6r3ekUQfCaEMI7QwjzgaspZq3ObvV7L/AN4MwQwr+GEPaheLPgacDgrdihWDZ54xDHJUkTkOFKktQ1Oef7KWavDmstnfskcEnrz0spnn06oqS+bqfY3n0/4LwQQhim6fUUG0vsM8r1fgW8qdX2Qoo3AX4Q2K19kwvgUIoNLE5ttXsQuAj4s+ewWrN3uzCG99eSJE0MIeehbqRJkvTMEUI4Ddgl57xnh65/E8VGF3u0HTuCIki+OPvDWJImBd/nSpIkOAV4KISwS875jo25UAhhf2A74KcU29G/D/gbive/GmgzhSJYfdJgJUmTh+FKkvSMl3N+NIRwCLBVCZfrBw4GXkzxpsM/Bw7KOX+zrc1cimWFF5XQnyRpnHBZoCRJkiSVwA0tJEmSJKkEhitJkiRJKoHhSpIkSZJKYLiSJEmSpBIYriRJkiSpBIYrSZIkSSqB4UqSJEmSSmC4kiRJkqQS/D+rjzRyKirKVgAAAABJRU5ErkJggg==\n", | |
| "text/plain": [ | |
| "<Figure size 1000x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<ggplot: (133987948243)>" | |
| ] | |
| }, | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Data viz\n", | |
| "plotnine.options.figure_size = (10, 4.8)\n", | |
| "(\n", | |
| " ggplot(\n", | |
| " data = df\n", | |
| " )+\n", | |
| " geom_line(\n", | |
| " aes(\n", | |
| " x = np.log(df['rank']),\n", | |
| " y = np.log(df['actual_freq']),\n", | |
| " group = 1\n", | |
| " ),\n", | |
| " size = 1.5\n", | |
| " )+\n", | |
| " geom_abline(\n", | |
| " intercept = linear.intercept_,\n", | |
| " slope = linear.coef_[0],\n", | |
| " size = 1,\n", | |
| " color = '#981220'\n", | |
| " )+\n", | |
| " labs(\n", | |
| " title = 'Zipf Distribution in English Literature'\n", | |
| " )+\n", | |
| " xlab(\n", | |
| " xlab = 'Rank (log)'\n", | |
| " )+\n", | |
| " ylab(\n", | |
| " ylab = 'Frequency of words (log)'\n", | |
| " )+\n", | |
| " theme_minimal()\n", | |
| ")" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "language": "python", | |
| "name": "python3" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 3 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython3", | |
| "version": "3.8.3" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 5 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment