diff --git a/RecipeAnalysis/Recipe Analysis.ipynb b/RecipeAnalysis/Recipe Analysis.ipynb new file mode 100644 index 0000000..706cf36 --- /dev/null +++ b/RecipeAnalysis/Recipe Analysis.ipynb @@ -0,0 +1,223 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Recipe Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append(\"../\")\n", + "from Recipe import Recipe" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import settings\n", + "import db.db_settings as db_settings\n", + "from db.database_connection import DatabaseConnection" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import random" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "DatabaseConnection(db_settings.db_host,\n", + " db_settings.db_port,\n", + " db_settings.db_user,\n", + " db_settings.db_pw,\n", + " db_settings.db_db,\n", + " db_settings.db_charset)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* get all recipe id's" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "ids = DatabaseConnection.global_single_query(\"select id from recipes\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* analyse a random recipe" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "test_rec = Recipe(random.choice(ids)['id'])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "## Pat LaFriedas Filet Mignon Steak Sandwich\n", + "(eaed08c862)" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + "### Ingredients" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + " * '4 tablespoons canola or other neutral-flavored oil , plus more as needed'\n", + " * '2 large sweet yellow onions or Spanish onions , thinly sliced \\( about 3 cups \\)'\n", + " * '6 ounces thinly sliced Monterey Jack cheese'\n", + " * '1 cup beef stock'\n", + " * '1 1/2 teaspoons balsamic glaze'\n", + " * '12 \\( 1 1/2-inch thick \\) filet medallions \\( about 1 1/2 pounds \\)'\n", + " * '1 tablespoon kosher salt'\n", + " * '1/2 teaspoon turbinado sugar or light brown sugar'\n", + " * '4 demi-baguettes \\( or 6-inch \\) segments of a long baguette'" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + "### Instructions" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + " * In a large skillet , heat 2 tablespoons of the oil over medium heat until it slides easily in the pan , 2 to 3 minutes .\n", + " * Add the onions and cook , stirring occasionally so they do n't stick to the pan , until they are soft and caramelized , about 20 minutes .\n", + " * Spread the onions out over the surface of the pan .\n", + " * Remove from the heat and lay the cheese on top of the onions , letting it melt .\n", + " * To make a jus , in a small saucepan , bring the stock to a simmer over medium heat .\n", + " * Remove from the heat and stir in the balsamic glaze .\n", + " * Cover the pan to keep the jus warm .\n", + " * Season the meat on both sides with the salt and sugar .\n", + " * In another large skillet , heat the remaining 2 tablespoons oil over high heat .\n", + " * Add half the medallions , or as many as will fit in a single layer , and sear them until they are caramelized , 1 to 1 1/2 minutes per side .\n", + " * Cook the remaining medallions in the same way , adding more oil and letting it get hot before adding the meat to the pan .\n", + " * Meanwhile , without opening them , toast the baguettes so that the outsides , top and bottom , are hot and crispy .\n", + " * Halve the baguettes horizontally , leaving them hinged on one side .\n", + " * To assemble the sandwiches , lay 3 medallions on the bottom of each baguette .\n", + " * Top with the onions and cheese , dividing them equally among the sandwiches .\n", + " * Drizzle 1/4 cup of the jus on the inside top half of each baguette .\n", + " * Close up the sandwiches and you 're good to go ." + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 1.31 ms, sys: 7.65 ms, total: 8.96 ms\n", + "Wall time: 7.88 ms\n" + ] + } + ], + "source": [ + "%time test_rec.display_recipe()" + ] + } + ], + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/RecipeAnalysis/Recipe.ipynb b/RecipeAnalysis/Recipe.ipynb new file mode 100644 index 0000000..9126728 --- /dev/null +++ b/RecipeAnalysis/Recipe.ipynb @@ -0,0 +1,298 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Recipe class" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append(\"../\")\n", + "\n", + "import settings\n", + "\n", + "import pycrfsuite\n", + "\n", + "import json\n", + "\n", + "import db.db_settings as db_settings\n", + "from db.database_connection import DatabaseConnection\n", + "\n", + "from Tagging.conllu_generator import ConlluGenerator\n", + "from Tagging.crf_data_generator import *\n", + "\n", + "from IPython.display import Markdown, HTML, display" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* get vocabulary" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import importlib.util\n", + "# loading ingredients:\n", + "spec = importlib.util.spec_from_file_location(\n", + " \"ingredients\", \"../\" + settings.ingredients_file)\n", + "ingredients = importlib.util.module_from_spec(spec)\n", + "spec.loader.exec_module(ingredients)\n", + "\n", + "# loading actions:\n", + "spec = importlib.util.spec_from_file_location(\n", + " \"actions\", \"../\" + settings.actions_file)\n", + "actions = importlib.util.module_from_spec(spec)\n", + "spec.loader.exec_module(actions)\n", + "\n", + "# loading containers\n", + "spec = importlib.util.spec_from_file_location(\n", + " \"containers\", \"../\" + settings.container_file)\n", + "containers = importlib.util.module_from_spec(spec)\n", + "spec.loader.exec_module(containers)\n", + "\n", + "# loading placeholders\n", + "spec = importlib.util.spec_from_file_location(\n", + " \"placeholders\", \"../\" + settings.placeholder_file)\n", + "placeholders = importlib.util.module_from_spec(spec)\n", + "spec.loader.exec_module(placeholders)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tagger = pycrfsuite.Tagger()\n", + "tagger.open('../Tagging/test.crfsuite')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "id_query = \"select * from recipes where id like %s\"" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def escape_md_chars(s):\n", + " s = s.replace(\"*\", \"\\*\")\n", + " s = s.replace(\"(\", \"\\(\")\n", + " s = s.replace(\")\", \"\\)\")\n", + " s = s.replace(\"[\", \"\\[\")\n", + " s = s.replace(\"]\", \"\\]\")\n", + " s = s.replace(\"_\", \"\\_\")\n", + " \n", + " return s" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "class Recipe(object):\n", + " def __init__(self, recipe_db_id = None):\n", + " \n", + " self._sentences = None\n", + " self._title = None\n", + " self._part = None\n", + " self._ingredients = None\n", + " self._recipe_id = recipe_db_id\n", + " self._get_from_db()\n", + " \n", + " self._extracted_ingredients = None # TODO\n", + " \n", + " self.annotate_ingredients()\n", + " self.annotate_sentences()\n", + " \n", + " def _get_from_db(self):\n", + " result = DatabaseConnection.global_single_query(id_query, (self._recipe_id))\n", + " assert len(result) > 0\n", + " result = result[0]\n", + " self._title = result['title']\n", + " self._part = result['part']\n", + " \n", + " raw_sentences = json.loads(result['instructions'])\n", + " raw_ingredients = json.loads(result['ingredients'])\n", + " \n", + " # throwing the raw data through our connlu generator to annotate them right\n", + " cg_sents = ConlluGenerator([\"\\n\".join(raw_sentences)])\n", + " cg_ings = ConlluGenerator([\"\\n\".join(raw_ingredients)])\n", + " \n", + " cg_sents.tokenize()\n", + " cg_sents.pos_tagging_and_lemmatization()\n", + " \n", + " cg_ings.tokenize()\n", + " cg_ings.pos_tagging_and_lemmatization()\n", + " \n", + " # TODO\n", + " self._sentences = cg_sents.get_conllu_elements()[0]\n", + " self._ingredients = cg_ings.get_conllu_elements()[0]\n", + " #self._sentences = json.loads(result['instructions'])\n", + " #self._ingredients = json.loads(result['ingredients'])\n", + " \n", + " def avg_sentence_length(self):\n", + " return sum([len(s) for s in self._sentences])/len(self._sentences)\n", + " \n", + " def n_instructions(self):\n", + " return len(self._sentences)\n", + " \n", + " def max_sentence_length(self):\n", + " return max([len(s) for s in self._sentences])\n", + " \n", + " def keyword_ratio(self):\n", + " sentence_ratios = []\n", + " for sent in self._sentences:\n", + " # FIXME: only works if there are no other misc annotations!\n", + " sentence_ratios.append(sum([token['misc'] is not None for token in sent]))\n", + " return sum(sentence_ratios) / len(sentence_ratios)\n", + " \n", + " def predict_labels(self):\n", + " features = [sent2features(sent) for sent in self._sentences]\n", + " labels = [tagger.tag(feat) for feat in features]\n", + " return labels\n", + " \n", + " def predict_ingredient_labels(self):\n", + " features = [sent2features(sent) for sent in self._ingredients]\n", + " labels = [tagger.tag(feat) for feat in features]\n", + " return labels\n", + " \n", + " def _annotate_sentences(self, sent_token_list, predictions):\n", + " # test whether we predicted an label or found it in our label list\n", + " for i, ing in enumerate(sent_token_list):\n", + " for j, token in enumerate(ing):\n", + " lemma = token['lemma']\n", + " \n", + " # check for ingredient\n", + " if lemma in ingredients.ingredients_stemmed:\n", + " token.add_misc(\"food_type\", \"ingredient\")\n", + " elif predictions[i][j] == 'ingredient':\n", + " token.add_misc(\"food_type\", \"ingredient\")\n", + " \n", + " # check for action\n", + " if lemma in actions.stemmed_cooking_verbs:\n", + " token.add_misc(\"food_type\", \"action\")\n", + " elif predictions[i][j] == 'action':\n", + " token.add_misc(\"food_type\", \"action\")\n", + " \n", + " # check for container\n", + " if lemma in containers.stemmed_containers:\n", + " token.add_misc(\"food_type\", \"container\")\n", + " elif predictions[i][j] == 'container':\n", + " token.add_misc(\"food_type\", \"container\")\n", + " \n", + " # check for placeholder\n", + " if lemma in placeholders.stemmed_placeholders:\n", + " token.add_misc(\"food_type\", \"placeholder\")\n", + " elif predictions[i][j] == 'placeholder':\n", + " token.add_misc(\"food_type\", \"placeholder\")\n", + " \n", + " def annotate_ingredients(self):\n", + " self._annotate_sentences(self._ingredients, self.predict_ingredient_labels())\n", + " \n", + " def annotate_sentences(self):\n", + " self._annotate_sentences(self._sentences, self.predict_labels())\n", + " \n", + " def recipe_id(self):\n", + " return self._recipe_id\n", + " \n", + " def serialize(self):\n", + " result = \"# newdoc\\n\"\n", + " if self._recipe_id is not None:\n", + " result += f\"# id: {self._recipe_id}\\n\"\n", + " \n", + " for sent in self._sentences:\n", + " result += f\"{sent.serialize()}\"\n", + " return result + \"\\n\"\n", + " \n", + " def display_recipe(self):\n", + " display(Markdown(f\"## {self._title}\\n({self._recipe_id})\"))\n", + " display(Markdown(f\"### Ingredients\"))\n", + " display(Markdown(\"\\n\".join([f\" * '{escape_md_chars(self.tokenlist2str(ing))}'\" for ing in self._ingredients])))\n", + " display(Markdown(f\"### Instructions\"))\n", + " display(Markdown(\"\\n\".join([f\" * {escape_md_chars(self.tokenlist2str(ins))}\" for ins in self._sentences])))\n", + " \n", + " def tokenlist2str(self, tokenlist):\n", + " return \" \".join([token['form'] for token in tokenlist])\n", + " \n", + " def tokenarray2str(self, tokenarray):\n", + " return \"\\n\".join([self.tokenlist2str(tokenlist) for tokenlist in tokenarray])\n", + " \n", + " \n", + " def __repr__(self):\n", + " s = \"recipe: \" + (self._recipe_id if self._recipe_id else \"\") + \"\\n\"\n", + " s += \"instructions: \\n\"\n", + " for sent in self._sentences:\n", + " s += \" \".join([token['form'] for token in sent]) + \"\\n\"\n", + " \n", + " s += \"\\nscores:\\n\"\n", + " s += f\"avg_sent_length: {self.avg_sentence_length()}\\n\"\n", + " s += f\"n_instructions: {self.n_instructions()}\\n\"\n", + " s += f\"keyword_ratio: {self.keyword_ratio()}\\n\\n\\n\"\n", + " \n", + " return s" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/RecipeAnalysis/Recipe.py b/RecipeAnalysis/Recipe.py new file mode 100644 index 0000000..43383f7 --- /dev/null +++ b/RecipeAnalysis/Recipe.py @@ -0,0 +1,211 @@ +#!/usr/bin/env python3 +# coding: utf-8 + +# # Recipe class + +import sys +sys.path.append("../") + +import settings + +import pycrfsuite + +import json + +import db.db_settings as db_settings +from db.database_connection import DatabaseConnection + +from Tagging.conllu_generator import ConlluGenerator +from Tagging.crf_data_generator import * + +from IPython.display import Markdown, HTML, display + + +# * get vocabulary + +import importlib.util +# loading ingredients: +spec = importlib.util.spec_from_file_location( + "ingredients", "../" + settings.ingredients_file) +ingredients = importlib.util.module_from_spec(spec) +spec.loader.exec_module(ingredients) + +# loading actions: +spec = importlib.util.spec_from_file_location( + "actions", "../" + settings.actions_file) +actions = importlib.util.module_from_spec(spec) +spec.loader.exec_module(actions) + +# loading containers +spec = importlib.util.spec_from_file_location( + "containers", "../" + settings.container_file) +containers = importlib.util.module_from_spec(spec) +spec.loader.exec_module(containers) + +# loading placeholders +spec = importlib.util.spec_from_file_location( + "placeholders", "../" + settings.placeholder_file) +placeholders = importlib.util.module_from_spec(spec) +spec.loader.exec_module(placeholders) + + +tagger = pycrfsuite.Tagger() +tagger.open('../Tagging/test.crfsuite') + + +id_query = "select * from recipes where id like %s" + + +def escape_md_chars(s): + s = s.replace("*", "\*") + s = s.replace("(", "\(") + s = s.replace(")", "\)") + s = s.replace("[", "\[") + s = s.replace("]", "\]") + s = s.replace("_", "\_") + + return s + + +class Recipe(object): + def __init__(self, recipe_db_id = None): + + self._sentences = None + self._title = None + self._part = None + self._ingredients = None + self._recipe_id = recipe_db_id + self._get_from_db() + self.annotate_ingredients() + self.annotate_sentences() + + def _get_from_db(self): + result = DatabaseConnection.global_single_query(id_query, (self._recipe_id)) + assert len(result) > 0 + result = result[0] + self._title = result['title'] + self._part = result['part'] + + raw_sentences = json.loads(result['instructions']) + raw_ingredients = json.loads(result['ingredients']) + + # throwing the raw data through our connlu generator to annotate them right + cg_sents = ConlluGenerator(["\n".join(raw_sentences)]) + cg_ings = ConlluGenerator(["\n".join(raw_ingredients)]) + + cg_sents.tokenize() + cg_sents.pos_tagging_and_lemmatization() + + cg_ings.tokenize() + cg_ings.pos_tagging_and_lemmatization() + + # TODO + self._sentences = cg_sents.get_conllu_elements()[0] + self._ingredients = cg_ings.get_conllu_elements()[0] + #self._sentences = json.loads(result['instructions']) + #self._ingredients = json.loads(result['ingredients']) + + def avg_sentence_length(self): + return sum([len(s) for s in self._sentences])/len(self._sentences) + + def n_instructions(self): + return len(self._sentences) + + def max_sentence_length(self): + return max([len(s) for s in self._sentences]) + + def keyword_ratio(self): + sentence_ratios = [] + for sent in self._sentences: + # FIXME: only works if there are no other misc annotations! + sentence_ratios.append(sum([token['misc'] is not None for token in sent])) + return sum(sentence_ratios) / len(sentence_ratios) + + def predict_labels(self): + features = [sent2features(sent) for sent in self._sentences] + labels = [tagger.tag(feat) for feat in features] + return labels + + def predict_ingredient_labels(self): + features = [sent2features(sent) for sent in self._ingredients] + labels = [tagger.tag(feat) for feat in features] + return labels + + def _annotate_sentences(self, sent_token_list, predictions): + # test whether we predicted an label or found it in our label list + for i, ing in enumerate(sent_token_list): + for j, token in enumerate(ing): + lemma = token['lemma'] + + # check for ingredient + if lemma in ingredients.ingredients_stemmed: + token.add_misc("food_type", "ingredient") + elif predictions[i][j] == 'ingredient': + token.add_misc("food_type", "ingredient") + + # check for action + if lemma in actions.stemmed_cooking_verbs: + token.add_misc("food_type", "action") + elif predictions[i][j] == 'action': + token.add_misc("food_type", "action") + + # check for container + if lemma in containers.stemmed_containers: + token.add_misc("food_type", "container") + elif predictions[i][j] == 'container': + token.add_misc("food_type", "container") + + # check for placeholder + if lemma in placeholders.stemmed_placeholders: + token.add_misc("food_type", "placeholder") + elif predictions[i][j] == 'placeholder': + token.add_misc("food_type", "placeholder") + + def annotate_ingredients(self): + self._annotate_sentences(self._ingredients, self.predict_ingredient_labels()) + + def annotate_sentences(self): + self._annotate_sentences(self._sentences, self.predict_labels()) + + def recipe_id(self): + return self._recipe_id + + def serialize(self): + result = "# newdoc\n" + if self._recipe_id is not None: + result += f"# id: {self._recipe_id}\n" + + for sent in self._sentences: + result += f"{sent.serialize()}" + return result + "\n" + + def display_recipe(self): + display(Markdown(f"## {self._title}\n({self._recipe_id})")) + display(Markdown(f"### Ingredients")) + display(Markdown("\n".join([f" * '{escape_md_chars(self.tokenlist2str(ing))}'" for ing in self._ingredients]))) + display(Markdown(f"### Instructions")) + display(Markdown("\n".join([f" * {escape_md_chars(self.tokenlist2str(ins))}" for ins in self._sentences]))) + + def tokenlist2str(self, tokenlist): + return " ".join([token['form'] for token in tokenlist]) + + def tokenarray2str(self, tokenarray): + return "\n".join([self.tokenlist2str(tokenlist) for tokenlist in tokenarray]) + + + def __repr__(self): + s = "recipe: " + (self._recipe_id if self._recipe_id else "") + "\n" + s += "instructions: \n" + for sent in self._sentences: + s += " ".join([token['form'] for token in sent]) + "\n" + + s += "\nscores:\n" + s += f"avg_sent_length: {self.avg_sentence_length()}\n" + s += f"n_instructions: {self.n_instructions()}\n" + s += f"keyword_ratio: {self.keyword_ratio()}\n\n\n" + + return s + + + + diff --git a/Tagging/CRF_evaluation.ipynb b/Tagging/CRF_evaluation.ipynb index dc97892..f830bf6 100644 --- a/Tagging/CRF_evaluation.ipynb +++ b/Tagging/CRF_evaluation.ipynb @@ -32,7 +32,7 @@ "outputs": [], "source": [ "#data = cdg.ConlluCRFReader(\"../\" + settings.gzipped_conllu_data_root + \"recipes2.conllu.gz\")\n", - "data = cdg.ConlluCRFReader(\"recipes2.conllu\")\n", + "data = cdg.ConlluCRFReader(\"filtered_recipes.conllu\")\n", "\n", "data_iterator = iter(data)" ] @@ -58,7 +58,7 @@ " if predictions is not None:\n", " s+= \"Predicitions:\" + \"\".join([f\"{p}\" for p in predictions])\n", " \n", - " display(HTML(s + \"\\n\\n\"))\n", + " display(HTML(s + \"\\n\\n\\n\"))\n", "\n", " \n", " " @@ -72,7 +72,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -96,7 +96,20 @@ "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mpred_ingredients\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mfeatures\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabels\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtokens\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0mpred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtagger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtag\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtokens\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Dokumente/gitRepos/master_thesis/Tagging/crf_data_generator.py\u001b[0m in \u001b[0;36m__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 107\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 108\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_iter_documents\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 109\u001b[0;31m \u001b[0mnext_sent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_iter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__next__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 110\u001b[0m \u001b[0mfeatures\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msent2features\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnext_sent\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0mlabels\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msent2labels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnext_sent\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + } + ], "source": [ "label_actions = []\n", "label_ingredients = []\n", @@ -115,20 +128,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "652706" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "label_actions = np.array(label_actions, dtype=np.bool)\n", "label_ingredients = np.array(label_ingredients, dtype=np.bool)\n", @@ -140,45 +142,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "* **\\# all tokens**: 652706\n", - "\n", - "\n", - "* **\\# real actions**: 80604\n", - "* **\\# predicted actions**: 81590\n", - "\n", - "\n", - "* **\\# real ingredients**: 69379\n", - "* **\\# predicted ingredients**: 69002 \n", - "\n", - "\n", - "* **action error**: 0.024752338725245404\n", - "* **ingredient error**: 0.02536670415163944\n", - "\n", - "* **action true positives**: 73019 of 80604 (0.9058979703240534)\n", - "* **ingredient true positives**: 60912 of 69379 (0.877960189682757)\n", - "\n", - "* **action false positives**: 8571 of 80604 (0.10633467321721006)\n", - "* **ingredient false positives**: 8090 of 69379 (0.11660588939016128)\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "a_tp = np.sum(label_actions & pred_actions)\n", "i_tp = np.sum(label_ingredients & pred_ingredients)\n", @@ -221,1828 +187,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Preheatovento350degreesFandlightlyspraya9x13bakingdishwithbakingspray(IusemyMisto).
labels:0containers000000000action00action00000000
Predicitions:0containers000000000action00000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Inalargebag(Iuseaproducebag),crushthecrackersintosmallpiecesandseasonwiththekosher_salt.
labels:00000000000000ingredient0000action00ingredient0
Predicitions:00000000ingredient000action0ingredient0000action00action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Inashallowdish,whisktogethertheeggsandblack_pepper.
labels:00000action00ingredient0ingredient0
Predicitions:00000action00ingredient0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Dipthechicken_breasthalvesinoneatatimecoatingbothsidesanddripanyexcesseggbackintothedish.
labels:00ingredient00000000000ingredient0ingredient00000
Predicitions:00ingredient00000000000ingredient0ingredient000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Addthecoatedchickenintothebagwiththecrushedcrackersandshaketocoat,pressingthecrackersintothechickenandthenplaceonalargeplate.
labels:action00ingredient000000ingredient0000000ingredient00ingredient00action00000
Predicitions:action00ingredient000000ingredient0000000ingredient00ingredient00action00000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Repeatwiththeremainingchickenuntilallofthechicken_breasthalvesarecoated.
labels:0000ingredient0000ingredient0000
Predicitions:action000ingredient0000ingredientingredient0action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Inalarge10-inchnonstickskillet,heattheoliveoilovermedium-highheat.
labels:0000000action0ingredientingredient00action0
Predicitions:0000000action0ingredientingredient00action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Oncehot,workinbatches,adding2ofthechicken_breasthalvesatatime,andcookfor3-4minutesperside.
labels:0000000action000ingredient000000action000000
Predicitions:000ingredient0000000ingredient000000action000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Flipwhenyounoticetheedgesofthechickenareadeepgoldenandcookforanother3-4minutes.
labels:00000000ingredient00000action00000
Predicitions:000action0000ingredient00000action00000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Aftereachbatch,removetoapapertowel-linedplatetoabsorbanyexcessoilandthenarrangeintheprepared9x13bakingdish.
labels:0000action0000000ingredient0ingredient00action0000action00
Predicitions:0000action0000000ingredient0ingredient00action0000action00
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Repeatwiththeremainingchicken.
labels:0000ingredient0
Predicitions:action000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Onceallofthechickenhasbeencooked,reducetheheattomediumandwipethepanoutwithpapertowelsoonlyatraceofoilisleftinthepan.
labels:0000ingredient00action0action0action000action0containers000000000ingredient0000containers0
Predicitions:0000ingredient00action0ingredient0action000action0containers0000000action0ingredient0000containers0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Squeezeingarlicthroughagarlicpressandcookforaminuteortwo.
labels:action0ingredient00ingredient00action000000
Predicitions:action0ingredient00000action000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Slowlyaddinthetomatosauceanddriedbasil.
labels:0action00ingredientingredient00ingredient0
Predicitions:0action00ingredientingredient00ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Simmerfor8minutesanddropinthebutterandstir.
labels:action0000000ingredient0action0
Predicitions:action0000000ingredient0action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Pour1/3ofthesauceovertopofthechicken,leavingpiecesexposed.
labels:action000ingredient0000ingredient00000
Predicitions:action000ingredient0000ingredient00000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:EvenlysprinklewiththeParmesanandcoverwithfoil.
labels:0action0000action000
Predicitions:0action0000action0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Bakefor30minutes.
labels:action0000
Predicitions:action0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Inthemeantime,bringapotofwatertoboil.
labels:000000containers0ingredient0action0
Predicitions:000000containers0ingredient0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Seasonwithagenerouspinchofkosher_saltandaddinthespaghettinoodlesandcookasdirectedonthepackage.
labels:action00000ingredient0action00ingredientingredient0action000000
Predicitions:action00000action0action00ingredientingredient0action0000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Drainandaddtotheremainingmarinara,tossandheatonlowtokeepwarm.
labels:action0action0000000action0000action0
Predicitions:action0action0000000action0000action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Afterthe30minutes,removetopwithmozzarellaslicesandpopthepanbackintotheovenfor10-15moreminutesmoreuntilthecheeseismeltedandbubbly.
labels:00000action000action000containers000containers0000000ingredient0action000
Predicitions:00000action00ingredientaction000containers000containers0000000ingredient0action000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:DishoutspaghettiintobowlsandtopwiththeParmesanchicken.
labels:00ingredient0000000ingredient0
Predicitions:action0ingredient0000000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:
labels:
Predicitions:
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Heattheovento425degreesF.
labels:action0containers00000
Predicitions:action0containers00000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Inamediumfryingpan,heattheoilovermoderateheat.
labels:000actioncontainers0action0ingredient00action0
Predicitions:000actioncontainers0action0ingredient00action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Addthebell_pepperandcook,stirringoccasionally,untilstartingtosoften,about3minutes.
labels:action0ingredient0action0action00000000000
Predicitions:action0ingredient0action0action00000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Addtheonions,carrotandzucchini,cook2minuteslonger,drain.
labels:action0ingredient0ingredient0ingredient0action0000action0
Predicitions:action0ingredient0ingredient0ingredient0action0000action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Mixthevegetableswiththecreamcheese,3/4teaspoonofthesalt,1/4teaspoonoftheblack_pepperanddill.
labels:action0ingredient00ingredientingredient00000action00000ingredient0ingredient0
Predicitions:action0ingredient00ingredientingredient00000action00000ingredient0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Sprinklethechicken_breastswiththeremainingsaltandpepper.
labels:action0ingredient000action0ingredient0
Predicitions:action0ingredient000action0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Putthebreastsinaroastingpanandspreadthemwiththevegetablecreamcheese.
labels:action0ingredient000containers0action000ingredientingredientingredient0
Predicitions:action0ingredient000containers0action0000ingredientingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Bakethechickenuntiljustdone,20to25minutes.
labels:action0ingredient000000000
Predicitions:action0ingredient000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:
labels:
Predicitions:
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Preparecake_mixaccordingtodirections,letcoolcompletely.
labels:actioningredient00000action00
Predicitions:actionaction00000action00
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Inaheavysaucepan,combinechips,1/4cmilkandthewhippingcream.
labels:00000actioningredient000ingredient000ingredient0
Predicitions:00000ingredientingredient000ingredient000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Cookandstiroverlowheatuntilchipsaremelted.
labels:action0action00action0ingredient0action0
Predicitions:action0action00action0ingredient000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Removefromheat;stirinvanillaandcooltoroomtemp.
labels:action0action0action0ingredient0action0000
Predicitions:action0action0action0ingredient0action0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:(Ifyoudon'tmeltthechipsonhighheat,itwillonlytakea1/2hourtocool)Placetheremainingmilkinamixingbowl;beatinthepuddingmixesonlowspeedfor2minutes.
labels:00000action0ingredient00action000000000action0action00ingredient00000action00ingredientaction0000000
Predicitions:00000action0ingredient00action000000000action0action00ingredient00000action00ingredientaction0000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Toassemble,crumblehalfthecakeintoa4qttriflebowlorlargebowl.
labels:000000ingredient0000000000
Predicitions:000000ingredient0000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Layerwith1/2thepeanut_buttersauce,pudding,whippedtoppingandthenrepeatlayers.
labels:0000ingredientingredient0ingredient0action000000
Predicitions:0000ingredientingredient0ingredient0action000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Attheend,addthecrumbledpeanut_buttercups.
labels:0000action00ingredient00
Predicitions:0000action00ingredient00
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Coolfor3hours.
labels:action0000
Predicitions:action0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:
labels:
Predicitions:
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Heattheovento400.
labels:action0containers000
Predicitions:action0containers000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Washthebeets,andwhiletheyarestillwet,wrapthemindividuallyinfoil.
labels:action0ingredient00000000000000
Predicitions:00ingredient000000000000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Putthemonarimmedbakingsheetandcook,undisturbed,untilyoucanpiercethemeasilywithathin-bladedknife,60to90minutes.
labels:action0000000action0000000000000000000
Predicitions:action0000000action0000000000000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Oncethebeetshavecooled,peelthem(Iliketorubtheskinoffunderrunningwater),andcutthemintochunks.
labels:00ingredient0action0action00000action00000ingredient000action0000
Predicitions:00ingredient0action0action00000action0000actioningredient000action0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Putthewalnutsinadryskilletovermediumheatandcook,shakingthepanfrequently,untilfragrantandbeginningtodarken,3to5minutes.
labels:action0ingredient000000action0action000containers00000000000000
Predicitions:action0ingredient000000action0action000containers0000000ingredient000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Rinseanddrythegreensandputtheminalargebowl;addthewalnuts.
labels:action000ingredient0action000000action0ingredient0
Predicitions:action000ingredient0action000000action0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Combinetheoil,vinegar,shallotandDijoninajarwithasprinkleofsaltandpepper.
labels:action0ingredient0ingredient0ingredient0ingredient00000action0action0ingredient0
Predicitions:action0ingredient0action0ingredient0ingredient00000action0action0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Screwthelidontightlyandshakevigorouslyuntilthedressingbecomesthickandcreamy.
labels:0000000000action00000
Predicitions:0000000000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Tasteandadjusttheseasoning.
labels:action0action0ingredient0
Predicitions:action0action0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Poursomeofthedressingontothegreensandtosstocoat;pilethegreenson4plates.
labels:action000action00ingredient0000000ingredient0000
Predicitions:action000000ingredient0000000ingredient0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Putthebeetsinthebowl,tosswithsomeofthedressingandarrangethemontopoforaroundthegreens.
labels:action0ingredient000000000ingredient0action0000000ingredient0
Predicitions:action0ingredient000000000ingredient0action0000000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Crumblethegoatcheeseontop,andserve.
labels:00ingredientingredient0000action0
Predicitions:000ingredient0000action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:
labels:
Predicitions:
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Turntheheattomedium-highunderacasseroleordeepskilletatleast12inchesacross;aminutelater,addthegoosepieces,skinsidedown.
labels:00action0000containers0000000000000action0ingredient000000
Predicitions:00action0000containers0000000000000action00000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Cook,rearrangingthepiecesnowandthensothattheybrownevenly,untilnicelybrownedandrenderedoffat,10to15minutes.
labels:action0000000000action0000action000ingredient000000
Predicitions:action0000000000action0000action000ingredient000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Sprinklewithsaltandpepperandturn;brownfor2or3minutesonthemeatside.
labels:action0action0ingredient000action0000000ingredient00
Predicitions:action0action0ingredient000action0000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Removethegooseandpouroffallbutatablespoonofthefat.
labels:action0ingredient0action0000000ingredient0
Predicitions:action0action0action0000action00ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Ifyoureusingit,cookthebaconinthesameskilletovermedium-highheatuntilbrownandcrispallover,about10minutes.
labels:00000action0ingredient000000action0action0ingredient0000000
Predicitions:00000action0ingredient000000action0action0ingredient0000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Addtheonions,bayleaves,andthymeandcook,stirringoccasionallyandseasoningwithsaltandpepper,untiltheonionsaresoftened,about10minutes.
labels:action0ingredient00ingredient00ingredient0action0action00action0action0ingredient000ingredient0000000
Predicitions:action0ingredient00ingredient00ingredient0action0action00action0action0ingredient000ingredient0action00000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Addthedriedfruitandcookforanotherminuteortwo,stirringoccasionally.
labels:action00ingredient0action000000action00
Predicitions:action00ingredient0action000000action00
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Addthewineandraisetheheattohigh;cookuntilthewineisreducedbyabouthalf,5minutesorso.
labels:action0ingredient000action000action00ingredient0action000000000
Predicitions:action0ingredient000action000action00ingredient0action000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Returnthegoosepiecestotheskilletandturntheheattoverylow.
labels:00ingredient0000000action0000
Predicitions:00action0000000action0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Coverandcook(themixtureshouldbebubbling,butbarely)foratleast2hours,turningonlyonceortwice,untilthegooseisverytender.
labels:action0action000000000000000000000000ingredient0000
Predicitions:action0action0000000000000000action000000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Addthevinegar,slicedfruit,andagoodgrindingofblack_pepperandcook,stirringoccasionally,untilthefruitistender,10to15minutes.
labels:action0ingredient0actioningredient000000ingredient0action0action0000ingredient00000000
Predicitions:action0ingredient0actioningredient000000ingredient0action0action0000ingredient00000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Tasteandadjusttheseasoning.
labels:action0action0ingredient0
Predicitions:action0action0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:
labels:
Predicitions:
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Ovenat350degrees.
labels:containers0000
Predicitions:containers0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Sliceapplesintomediumsaucepan.
labels:actioningredient0000
Predicitions:actioningredient0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Mixcornstarchandapplejuice.
labels:action00ingredientingredient0
Predicitions:action00ingredientingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Pourmixoverapples.
labels:actionaction0ingredient0
Predicitions:actionaction0ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Mixshouldbeataslightlylowerlevelthanapples(about1/4).
labels:action00000000ingredient00000
Predicitions:action00000000ingredient00000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Cookapplesandjuicemixovermediumhighheattillliquidisthick.
labels:actioningredient0ingredientaction000action0ingredient000
Predicitions:actioningredient0ingredientaction000actioncontainersingredient000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Removefromheat.
labels:action0action0
Predicitions:action0action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Preparetoppingbycombiningdryingredientsfirst(exceptfornutmegandcinnamon)thenmixingwithbuttertilltoppingresemblescoarsecrumbs.
labels:action00action000000ingredient0ingredient00action0ingredient0000ingredient0
Predicitions:action000000000ingredient0ingredient0000ingredient0000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Placecookedapplesinashallowcasseroledishorpossiblyasquare8x8x2orpossibly9x9x2inchbakingpan.
labels:actionactioningredient000containers000000000000000000actioncontainers0
Predicitions:actionactioningredient000containers0000000000000000000containers0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Sprinkledesiredamountofcinnamononmix(Iuseaheavycoating).
labels:action000ingredient0action00000000
Predicitions:action000ingredient0action00000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Coverwithtoppingandsprinklenutmegindesiredamountovertopping.
labels:action000actioningredient0000ingredient0
Predicitions:action000actioningredient0000ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Sprinklenutsovertoppingifyoulike.
labels:actioningredient000000
Predicitions:actioningredient000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Bakefor45min.
labels:action00ingredient0
Predicitions:action00ingredient0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Servewarmwithfrznvanilla_yogurt.
labels:actionaction00ingredient0
Predicitions:actionaction0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:
labels:
Predicitions:
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Placebutter,11/2cupsoftheconfectioner'ssugar,orange-flowerwater,andegg_yolkinablenderandblendfor1minute.
labels:actioningredient00000000action00ingredient00ingredient0000action0000
Predicitions:actioningredient00000000action00ingredient00ingredient0000action0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Transfertoamixingbowl;thengraduallyaddflourwhilemixingwithfingers,untilasmoothdoughisformed.
labels:00000000actionaction0action000000ingredient000
Predicitions:00000000actionaction0action0ingredient0000ingredient000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Formdoughinto40balls,alittlesmallerthanwalnuts;thenplaceonaungreasedcookiesheetandflattenslightlytoabout1/2-inchthickness.
labels:0ingredient00000000ingredient00action0000000000000
Predicitions:0ingredient00000000ingredient00action0000000000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Pressanalmondoneachpiece.
labels:00ingredient0000
Predicitions:0000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Bakeinanovenpreheatedto300degreesF.for20minutesoruntilbottomsturnlightbrown.
labels:action00containers0000000000000action0
Predicitions:action00containers0000000000000action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Removefromovenandallowtocool.
labels:action0containers000action0
Predicitions:action0containers000action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Sprinklewiththeremainingconfectioner'ssugar;thenserveorstore.
labels:action00000action00action000
Predicitions:action00000action00action000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Theghuraybamayfeelsoftattheendofbakingtime,buttheywillhardenastheycool.
labels:000000000000000000action0
Predicitions:000000000000000000action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Makes40pieces.
labels:0000
Predicitions:0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:
labels:
Predicitions:
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Combineallingredientsin3-quartsaucepan.
labels:action000000
Predicitions:action000000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Bringtoboil.
labels:00action0
Predicitions:00action0
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Reduceheattolow.
labels:actionaction000
Predicitions:actionaction000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Coverandsimmerfor50minutes.
labels:action0action0000
Predicitions:action0action0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Removefromheatandletstand,coveredfor10minutes.
labels:action0action0000action0000
Predicitions:action0action0000action0000
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:Stirandserveimmediately.
labels:action0action00
Predicitions:action0action00
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Sentence:ENJOY!
labels:00
Predicitions:00
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "for i, (features, labels, tokens) in enumerate(data):\n", " if i > 100:\n", diff --git a/Tagging/CRF_training.ipynb b/Tagging/CRF_training.ipynb index 61f477e..fcf33e2 100644 --- a/Tagging/CRF_training.ipynb +++ b/Tagging/CRF_training.ipynb @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -29,7 +29,7 @@ "TokenList" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -109,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -125,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -135,7 +135,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -145,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -155,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -172,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -181,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -218,16 +218,16 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "45442" + "47538" ] }, - "execution_count": 15, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -245,7 +245,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -254,7 +254,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -266,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -282,7 +282,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -302,7 +302,7 @@ " 'max_linesearch']" ] }, - "execution_count": 19, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -313,7 +313,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -322,24 +322,24 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'num': 455,\n", + "{'num': 830,\n", " 'scores': {},\n", - " 'loss': 110.581675,\n", - " 'feature_norm': 8.594619,\n", - " 'error_norm': 0.214403,\n", - " 'active_features': 87,\n", + " 'loss': 41171.669638,\n", + " 'feature_norm': 126.341894,\n", + " 'error_norm': 85.690855,\n", + " 'active_features': 6055,\n", " 'linesearch_trials': 2,\n", " 'linesearch_step': 0.5,\n", - " 'time': 0.001}" + " 'time': 0.724}" ] }, - "execution_count": 20, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -357,16 +357,16 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 21, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -378,7 +378,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -388,7 +388,7 @@ "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m130\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m' '\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;31m#print(' '.join(feature2tokens(X_test[i])), end='\\n\\n')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Predicted:\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m' '\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtagger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtag\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Correct: \"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m' '\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mY_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m130\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m' '\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;31m#print(' '.join(feature2tokens(X_test[i])), end='\\n\\n')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Predicted:\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m' '\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtagger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtag\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Correct: \"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m' '\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mY_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mIndexError\u001b[0m: list index out of range" ] } diff --git a/Tagging/ConlluDataFiltering.ipynb b/Tagging/ConlluDataFiltering.ipynb index 770ea5b..d498c42 100644 --- a/Tagging/ConlluDataFiltering.ipynb +++ b/Tagging/ConlluDataFiltering.ipynb @@ -6058,25 +6058,25 @@ } } }, - "image/png": "iVBORw0KGgoAAAANSUhEUgAABTIAAAHCCAYAAADcjTZeAAAgAElEQVR4Xu3debxcdX3w8W8WQiAxCSEqLdadVitUpKVqWMwDFTVAeNgKVEAJWqPcyKIYCRDhShIgGANCSkCpryBCEZQKCoqKLW3VPkpbREFaU3dlM2yGJSH3ec0ErqBZDvOd5Zw57/tX65zfWd7fX9Pk48ydEUNDQ0PhhwABAgQIECBAgAABAgQIECBAgAABAiUWGCFklng6bo0AAQIECBAgQIAAAQIECBAgQIAAgaaAkGkjECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBAgAABAqUXEDJLPyI3SIAAAQIECBAgQIAAAQIECBAgQICAkGkPECBAgAABAgQIECBAgAABAgQIECBQegEhs/QjcoMECBAgQIAAAQIECBAgQIAAAQIECAiZ9gABAgQIECBAgAABAgQIECBA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jDlHx5//2R9X7Cndbp0FGpFnj4OOb+7xV273olj1yKPxjvctar4L+fV/8arm7zzeequJzf+98a3lAyef2/yd3+O2HFtnNs9eIYH1hcyN/fltz1douG51WGB9IdO/R22QVgWEzFblrCNQYYEf/fRXsfcRH2x+HPHpP8e98+DmR7Ea34I7d+HF8cu77ouXvugP48yT/zZe8AfPrfATu3UCz/xoecPji1/9Vnzkwn+IRx57LHZ77Z/Fh0+cGWPGbIaKQOUEGl/ic+b5l8VvVj0ar/qTF0fjyyAaH61t/Hzkwivjmhtubr4z+e2HvNkXoFRuum64IfDNW74fH132mfjNI49G4x08B+69+/BefvDhVTF3wcVxy213xoTx4+LU449sfgu0HwJVEVhfyNzYn9/2fFUm6z6fLvC7IdO/R+2PjICQmdGzlgABAgQIECBAgAABAgQIECBAgACBrggImV1hdhECBAgQIECAAAECBAgQIECAAAECBDICQmZGz1oCBAgQIECAAAECBAgQIECAAAECBLoiIGR2hdlFCBAgQIAAAQIECBAgQIAAAQIECBDICAiZGT1rCRAgQIAAAQIECBAgQIAAAQIECBDoioCQ2RVmFyFAgAABAgQIECBAgAABAgQIECBAICMgZGb0rCVAgAABAgQIECBAgAABAgQIECBAoCsCQmZXmF2EAAECBAgQIECAAAECBAgQIECAAIGMgJCZ0bOWAAECBAgQIECAAAECBAgQIECAAIGuCAiZXWF2EQIECBAgQIAAAQIECBAgQIAAAQIEMgJCZkbPWgIECBAgQIAAAQIECBAgQIAAAQIEuiIgZHaF2UUIECBAgAABAgQIECBAgAABAgQIEMgICJkZPWsJECBAgAABAgQIECBAgAABAgQIEOiKgJDZFWYXIUCAAAECBAgQIECAAAECBAgQIEAgIyBkZvSsJUCAAAECBAgQIECAAAECBAgQIECgKwJCZleYXYQAAQIECBAgQIAAAQIECBAgQIAAgYyAkJnRs5YAAQIECBAgQIAAAQIECBAgQIAAga4ICJldYXYRAgQIECBAgAABAgQIECBAgAABAgQyAkJmRs9aAgQIECBAgAABAgQIECBAgAABAgS6IiBkdoXZRQgQIECAAAECBAgQIECAAAECBAgQyAgImRk9awkQIECAAAECBAgQIECAAAECBAgQ6IqAkNkVZhchQIAAAQIECBAgQIAAAQIECBAgQCAjIGRm9KwlQIAAAQIECBAgQIAAAQIECBAgQKArAkJmV5hdhAABAgQIECBAgAABAgQIECBAgACBjICQmdGzlgABAgQIECBAgAABAgQIECBAgACBrggImV1hdhECBAgQIECAAAECBAgQIECAAAECBDICQmZGz1oCBAgQIECAAAECBAgQIECAAAECBLoiIGR2hdlFCBAgQIAAAQIECBAgQIAAAQIECBDICAiZGT1rCRAgQIAAAQIECBAgQIAAAQIECBDoioCQ2RVmFyFAgAABAgQIECBAgAABAgQIECBAICMgZGb0rCVAgAABAgQIECBAgAABAgQIECBAoCsCQmZXmF2EAAECBAgQIECAAAECBAgQIECAAIGMgJCZ0bOWAAECBAgQIECAAAECBAgQIECAAIGuCAiZXWF2EQIECBAgQIAAAQIECBAgQIAAAQIEMgJCZkbPWgIECBAgQIAAAQIECBAgQIAAAQIEuiIgZHaF2UUIECBAgAABAgQIECBAgAABAgQIEMgICJkZPWsJECBAgAABAgQIECBAgAABAgQIEOiKgJDZFWYXIUCAAAECBAgQIECAAAECBAgQIEAgIyBkZvSsJUCAAAECBAgQIECAAAECBAgQIECgKwJCZleYXYQAAQIECBAgQIAAAQIECBAgQIAAgYyAkJnRs5YAAQIECBAgQIAAAQIECBAgQIAAga4ICJldYXYRAgQIECBAgAABAgQIECBAgAABAgQyAkJmRs9aAgQIECBAgAABAgQIECBAgAABAgS6IiBkdoXZRQgQIECAAAECBAgQIECAAAECBAgQyAgImRk9awkQIECAAAECBAgQIECAAAECBAgQ6IqAkNkVZhchQIAAAQIECBAgQIAAAQIECBAgQCAjIGRm9KwlQIAAAQIECBAgQIAAAQIECBAgQKArAkJmV5hdhAABAgQIECBAgAABAgQIECBAgACBjICQmdGzlgABAgQIECBAgAABAgQIECBAgACBrggImV1hdhECBAgQIECAAAECBAgQIECAAAECBDICQmZGz1oCBAgQIECAAAECBAgQIECAAAECBLoiIGR2hdlFCBAgQIAAAQIECBAgQIAAAQIECBDICAiZGT1rCRAgQIAAAQIECBAgQIAAAQIECBDoioCQ2RVmFyFAgAABAgQIECBAgAABAgQIECBAICMgZGb0rCVAgAABAgQIECBAgAABAgQIECBAoCsCQmZXmF2EAAECBAgQIECAAAECBAgQIECAAIGMgJCZ0bOWAAECBAgQIECAAAECBAgQIECAAIGuCAiZXWF2EQIECBAgQIAAAQIECBAgQIAAAQIEMgJCZkbPWgIECBAgQIAAAQIECBAgQIAAAQIEuiIgZHaF2UUIECBAgAABAgQIECBAgAABAgQIEMgICJkZPWsJECBAgAABAgQIECBAgAABAgQIEOiKgJDZFWYXIUCAAAECBAgQIECAAAECBAgQIEAgIyBkZvSsJUCAAAECBAgQIECAAAECBAgQIECgKwJCZleYXYQAAQIECBAgQIAAAQIECBAgQIAAgYyAkJnRs5YAAQIECBAgQIAAAQIECBAgQIAAga4ICJldYXYRAgQIECBAgAABAgQIECBAgAABAgQyAkJmRs9aAgQIECBAgAABAgQIECBAgAABAgS6IvD/Afc07+cd+OVWAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABikAAAHCCAYAAACaISpAAAAgAElEQVR4Xu3de5xdZXno8SckhAAxCSFtqdRWrbS1hQppqZoAUjheiBA+gBRQRAlWUpnIxWIkwAgjSYAgDQiRiFJOEEGEgoKCjVVbTqu2wjkHgyDnY+qt2AAx3EyAXOZ8ZiekQjPJ3jyzZu937W/+7N7vXu/6Pu9QzI+1Z0R/f39/+EOAAAECBAgQIECAAAECBAgQIECAAAECBAgQGGaBESLFMIu7HAECBAgQIECAAAECBAgQIECAAAECBAgQINAQECkcBAIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApnAECBAgQIECAAAECBAgQIECAAAECBAgQIECgLQIiRVvYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQKZwBAgQIECBAgAABAgQIECBAgAABAgQIECBAoC0CIkVb2F2UAAECBAgQIECAAAECBAgQIECAAAECBAgQECmcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAtAiJFW9hdlAABAgQIECBAgAABAgQIECBAgAABAgQIEBApkmfg4ZVrkp9gOQECBAgQIECAAAECBAgQIECAAAECBAiUKvDyXXcsdesdsW+RIjkGkSIJaDkBAgQIECBAgAABAgQIECBAgAABAgQKFhApcsMTKXJ+IVIkAS0nQIAAAQIECBAgQIAAAQIECBAgQIBAwQIiRW54IkXOT6RI+llOgAABAgQIECBAgAABAgQIECBAgACBkgVEitz0RIqcn0iR9LOcAAECBAgQIECAAAECBAgQIECAAAECJQuIFLnpiRQ5P5Ei6Wc5AQIECBAgQIAAAQIECBAgQIAAAQIEShYQKXLTEylyfiJF0s9yAgQIECBAgAABAgQIECBAgAABAgQIlCwgUuSmJ1Lk/ESKpJ/lBAgQIECAAAECBAgQIECAAAECBAgQKFlApMhNT6TI+YkUST/LCRAgQIAAAQIECBAgQIAAAQIECBAgULKASJGbnkiR8xMpkn6WEyBAgAABAgQIECBAgAABAgQIECBAoGQBkSI3PZEi5ydSJP0sJ0CA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EyBAgAABAgQIECBAgAABAgQIpAREihRfiBQ5P5Ei6Wc5geEUaCVoeJJiOCfjWgQIECBAgAABAgQIECBAgACBcgVEitzsRIqcn0iR9LOcQF0EWgkgdbln90GAAAECBAgQIECAAAECBAgQIBAhUuROgUiR8xMpkn6WE6iLgEhRl0m6DwIECBAgQIAAAQIECBAgQIBAawIiRWteL363SJHzEymSfpYTqIuASFGXSboPAgQIECBAgAABAgQIECBAgEBrAiJFa14iRc7rv632i7OHGNTHEShUQKQodHC2TYAAAQIECBAgQIAAAQIECBBICogUOUBPUuT8PEmR9LOcQF0ERIq6TNJ9ECBAgAABAgQIECBAgAABAgRaExApWvN68btFipyfSJH0s5xAXQREirpM0n0QIECAAAECBAgQIECAAAECBFoTECla8xIpcl7/bbWvexpiUB9HoFABkaLQwdk2AQIECBAgQIAAAQIECBAgQCApIFLkAD1JkfPzJEXSz3ICdREQKeoySfdBgAABAgQIECBAgAABAgQIEGhNQKRozevF7xYpcn4iRdLPcgLdKCBodOPU3TMBAgQIECBAgAABAgQIECBQVwGRIjdZkSLnJ1Ik/SwnQGDoBMSPobP0SQQIECBAgAABAgQIECBAgACBZgVEimaltvw+kSLnJ1Ik/SwnQGDoBESKobP0SQQIECBAgAABAgQIECBAgACBZgVEimalRIqc1CCr/eLsSlh9KAECwyAgagwDsksQIECAAAECBAgQIECAAAECtRcQKXIj9iRFzs+TFEk/ywkQaJ9AK5Git29U0xtt5XOb/lBvJECAAAECBAgQIECAAAECBAh0qIBIkRuMSJHzEymSfpYTIFA/AZGifjN1RwQIECBAgAABAgQIECBAgMDgAiJF7nSIFDk/kSLpZzkBAvUTECnqN1N3RIAAAQIECBAgQIAAAQIECIgUVZ0BkSIp63dSJAEtJ0CgdgIiRe1G6oYIECBAgAABAgQIECBAgACBrQh4kiJ3PESKnJ8nKZJ+lhMgUD8BkaJ+M3VHBAgQIECAAAECBAgQIECAwOACIkXudIgUOT+RIulnOQEC3S0gaHT3/N09AQIECBAgQIAAAQIECBCog4BIkZuiSJHzEymSfpYTINDdAiJFd8/f3RMgQIAAAQIECBAgQIAAgToIiBS5KYoUOT+RIuln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7rhy/mmxes2z8a5TLmj8/8c/+ePfa/yemMFeq4uJ+yAwnAJbihT+fmY4J+BaIoUzQIBARwm86chTY+WqJ2PEiP/a1tR992pEiyefXh1z5l0d9y57KMaN3TnOPf2EmLrvnh21f5shUCeBF0cKP4N1mq576VSBZ559Ls77+LUx8D8UdxyzQ5z87sPiiEP2b2zXz2CnTs2+6iTw7Xu/H3+z+AvxyzXPNJ7kPertB8SMYzd+tegPfvjTmDP/6vj5ipXx6t95eVx49vvjt37z1+p0++6FQNsEthQpBjbz8atuitvuujtGjBgR7z3mbZt/Hrf1WttuxIUJFCqwpUjh72cKHWah2xYpCh2cbRMgQIAAAQIECBAgQIAAAQIECBAgQIAAgdIFRIrSJ2j/BAgQIECAAAECBAgQIECAAAECBAgQIECgUAGRotDB2TYBAgQIECBAgAABAgQIECBAgAABAgQIEChdQKQofYL2T4AAAQIECBAgQIAAAQIECBAgQIAAAQIEChUQKQodnG0TIECAAAECBAgQIECAAAECBAgQIECAAIHSBUSK0ido/wQIECBAgAABAgQIECBAgAABAgQIECBAoFABkaLQwdk2AQIECBAgQIAAAQIECBAgQIAAAQIECBAoXUCkKH2C9k+AAAECBAgQIECAAAECBAgQIECAAAECBAoVECkKHZxtEyBAgAABAgQIECBAgAABAgQIECBAgACB0gVEitInaP8ECBAgQIAAAQIECBAgQIAAAQIECBAgQKBQAZGi0MHZNgECBAgQIECAAAECBAgQIECAAAECBAgQKF1ApCh9gvZPgAABAgQIECBAgAABAgQIECBAgAABAgQKFRApCh2cbRMgQIAAAQIECBAgQIAAAQIECBAgQIAAgdIFRIrSJ2j/BAgQIECAAAECBAgQIECAAAECBAgQIECgUAGRotDB2TYBAgQIECBAgAABAgQIECBAgAABAgQIEChdQKQofYL2T4AAAQIECBAgQIAAAQIECBAgQIAAAQIEChUQKQodnG0TIECAAAECBAgQIECAAAECBAgQIECAAIHSBUSK0ido/wQIECBAgAABAgQIECBAgAABAgQIECBAoFABkaLQwdk2AQIECBAgQIAAAQIECBAgQIAAAQIECBAoXUCkKH2C9k+AAAECBAgQIECAAAECBAgQIECAAAECBAoVECkKHZxtEyBAgAABAgQIECBAgAABAgQIECBAgACB0gVEitInaP8ECBAgQIAAAQIECBAgQIAAAQIECBAgQKBQAZGi0MHZNgECBAgQIECAAAECBAgQIECAAAECBAgQKF1ApCh9gvZPgAABAgQIECBAgAABAgQIECBAgAABAgQKFRApCh2cbRMgQIAAAQIECBAgQIAAAQIECBAgQIAAgdIFRIrSJ2j/BAgQIECAAAECBAgQIECAAAECBAgQIECgUAGRotDB2TYBAgQIECBAgAABAgQIECBAgAABAgQIEChdQKQofYL2T4AAAQIECBAgQIAAAQIECBAgQIAAAQIEChUQKQodnG0TIECAAAECBAgQIECAAAECBAgQIECAAIHSBUSK0ido/wQIECBAgAABAgQIECBAgAABAgQIECBAoFABkaLQwdk2AQIECBAgQIAAAQIECBAgQIAAAQIECBAoXUCkKH2C9k+AAAECBAgQIECAAAECBAgQIECAAAECBAoVECkKHZxtEyBAgAABAgQIECBAgAABAgQIECBAgACB0gVEitInaP8ECBAgQIAAAQIECBAgQIAAAQIECBAgQKBQAZGi0MHZNgECBAgQIECAAAECBAgQIECAAAECBAgQKF1ApCh9gvZPgAABAgQIECBAgAABAgQIECBAgAABAgQKFRApCh2cbRMgQIAAAQIECBAgQIAAAQIECBAgQIAAgdIFRIrSJ2j/BAgQIECAAAECBAgQIECAAAECBAgQIECgUAGRotDB2TYBAgQIECBAgAABAgQIECBAgAABAgQIEChdQKQofYL2T4AAAQIECBAgQIAAAQIECBAgQIAAAQIEChUQKQodnG0TIECAAAECBAgQIECAAAECBAgQIECAAIHSBUSK0ido/wQIECBAgAABAgQIECBAgAABAgQIECBAoFABkaLQwdk2AQIECBAgQIAAAQIECBAgQIAAAQIECBAoXUCkKH2C9k+AAAECBAgQIECAAAECBAgQIECAAAECBAoVECkKHZxtEyBAgAABAgQIECBAgAABAgQIECBAgACB0gVEitInaP8ECBAgQIAAAQIECBAgQIAAAQIECBAgQKBQAZGi0MHZNgECBAgQIECAAAECBAgQIECAAAECBAgQKF1ApCh9gvZPgAABAgQIECBAgAABAgQIECBAgAABAgQKFRApCh2cbRMgQIAAAQIECBAgQIAAAQIECBAgQIAAgdIFRIrSJ2j/BAgQIECAAAECBAgQIECAAAECBAgQIECgUAGRotDB2TYBAgQIECBAgAABAgQIECBAgAABAgQIEChdQKQofYL2T4AAAQIECBAgQIAAAQIECBAgQIAAAQIEChUQKQodnG0TIECAAAECBAgQIECAAAECBAgQIECAAIHSBUSK0ido/wQIECBAgAABAgQIECBAgAABAgQIECBAoFABkaLQwdk2AQIECBAgQIAAAQIECBAgQIAAAQIECBAoXUCkKH2C9k+AAAECBAgQIECAAAECBAgQIECAAAECBAoVECkKHZxtEyBAgAABAgQIECBAgAABAgQIECBAgACB0gVEitInaP8ECBAgQIAAAQIECBAgQIAAAQIECBAgQKBQAZGi0MHZNgECBAgQIECAAAECBAgQIECAAAECBAgQKF1ApCh9gvZPgAABAgQIECBAgAABAgQIECBAgAABAgQKFRApCh2cbRMgQIAAAQIECBAgQIAAAQIECBAgQIAAgdIFRIrSJ2j/BAgQIECAAAECBAgQIECAAAECBAgQIECgUAGRotDB2TYBAgQIECBAgAABAgQIECBAgAABAgQIEChdQKQofYL2T4AAAQIECBAgQIAAAQIECBAgQIAAAQIEChUQKQodnG0TIECAAAECBAgQIECAAAECBAgQIECAAIHSBUSK0ido/wQIECBAgAABAgQIECBAgAABAgQIECBAoFABkaLQwdk2AQIECBAgQIAAAQIECBAgQIAAAQIECBAoXeD/A9GAH/YsNh2WAAAAAElFTkSuQmCC", "text/html": [ "
\n", " \n", " \n", - "
\n", + "
\n", " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import plotly.graph_objs as go\n", + "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", + "init_notebook_mode(connected=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "ingredients = [\n", + " \"noodles\",\n", + " \"boiled noodles\",\n", + " \"cheese powder\",\n", + " \"butter\",\n", + " \"milk\",\n", + " \"soup\",\n", + " \"drained boiled noodles\",\n", + " \"tuna\",\n", + " \"corn\",\n", + " \"drained tuna\",\n", + " \"drained corn\"\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "actions = [\n", + " \"boil\",\n", + " \"drain\"\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "ii = {}\n", + "ai = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "i = 0\n", + "for ing in ingredients:\n", + " ii[ing] = i\n", + " i += 1\n", + "i = 0\n", + "for act in actions:\n", + " ai[act] = i\n", + " i += 1" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "ing_act = np.zeros((len(actions), len(ingredients)))\n", + "ing_ing = np.zeros((len(ingredients), len(ingredients)))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "ing_act[ai[\"boil\"], ii[\"noodles\"]] = 1\n", + "ing_act[ai[\"drain\"], ii[\"boiled noodles\"]] = 1\n", + "ing_act[ai[\"drain\"], ii[\"tuna\"]] = 1\n", + "ing_act[ai[\"drain\"], ii[\"corn\"]] = 1\n", + "\n", + "ing_ing[ii[\"cheese powder\"], ii[\"butter\"]] = 1\n", + "ing_ing[ii[\"cheese powder\"], ii[\"milk\"]] = 1\n", + "ing_ing[ii[\"cheese powder\"], ii[\"soup\"]] = 1\n", + "ing_ing[ii[\"cheese powder\"], ii[\"drained boiled noodles\"]] = 1\n", + "ing_ing[ii[\"cheese powder\"], ii[\"drained tuna\"]] = 1\n", + "ing_ing[ii[\"cheese powder\"], ii[\"drained corn\"]] = 1\n", + "\n", + "\n", + "ing_ing[ii[\"butter\"], ii[\"milk\"]] = 1\n", + "ing_ing[ii[\"butter\"], ii[\"soup\"]] = 1\n", + "ing_ing[ii[\"butter\"], ii[\"drained boiled noodles\"]] = 1\n", + "ing_ing[ii[\"butter\"], ii[\"drained tuna\"]] = 1\n", + "ing_ing[ii[\"butter\"], ii[\"drained corn\"]] = 1\n", + "\n", + "ing_ing[ii[\"milk\"], ii[\"soup\"]] = 1\n", + "ing_ing[ii[\"milk\"], ii[\"drained boiled noodles\"]] = 1\n", + "ing_ing[ii[\"milk\"], ii[\"drained tuna\"]] = 1\n", + "ing_ing[ii[\"milk\"], ii[\"drained corn\"]] = 1\n", + "\n", + "ing_ing[ii[\"soup\"], ii[\"drained boiled noodles\"]] = 1\n", + "ing_ing[ii[\"soup\"], ii[\"drained tuna\"]] = 1\n", + "ing_ing[ii[\"soup\"], ii[\"drained corn\"]] = 1\n", + "\n", + "ing_ing[ii[\"drained boiled noodles\"], ii[\"drained tuna\"]] = 1\n", + "ing_ing[ii[\"drained boiled noodles\"], ii[\"drained corn\"]] = 1\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "ing_ing += np.transpose(ing_ing)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 1., 1., 1., 1., 0., 0., 1., 1.],\n", + " [0., 0., 1., 0., 1., 1., 1., 0., 0., 1., 1.],\n", + " [0., 0., 1., 1., 0., 1., 1., 0., 0., 1., 1.],\n", + " [0., 0., 1., 1., 1., 0., 1., 0., 0., 1., 1.],\n", + " [0., 0., 1., 1., 1., 1., 0., 0., 0., 1., 1.],\n", + " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", + " [0., 0., 1., 1., 1., 1., 1., 0., 0., 0., 0.],\n", + " [0., 0., 1., 1., 1., 1., 1., 0., 0., 0., 0.]])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ing_ing" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "type": "heatmap", + "x": [ + "noodles", + "boiled noodles", + "cheese powder", + "butter", + "milk", + "soup", + "drained boiled noodles", + "tuna", + "corn", + "drained tuna", + "drained corn" + ], + "xgap": 2, + "y": [ + "boil", + "drain" + ], + "ygap": 2, + "z": [ + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0 + ] + ] + } + ], + "layout": { + "autosize": true, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "autorange": true, + "domain": [ + 0, + 1 + ], + "range": [ + -0.5, + 10.5 + ], + "type": "category" + }, + "yaxis": { + "autorange": true, + "domain": [ + 0, + 1 + ], + "range": [ + -1.8248355263157894, + 2.8248355263157894 + ], + "scaleanchor": "x", + "scaleratio": 1, + "type": "category" + } + } + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAw0AAAHCCAYAAACtwCWoAAAgAElEQVR4Xuydd5gUxdaHz0ZyBhVEvMYLKioGMOA1J0RQERWRnERylozknEEJIhkUEQNiABUj6mdGRUVREUVEspI28D2nZMYFF7dn6nRVT/Vv/vFxqTqn6q3q6X67qnuSDh06dIjwAQEQAAEQAAEQAAEQAAEQAIFjEEiCNGBugAAIgAAIgAAIgAAIgAAI/BsBSAPmBwiAAAiAAAiAAAiAAAiAwL8SgDRggoAACIAACIAACIAACIAACEAaMAdAAARAAARAAARAAARAAATiJ4CVhvjZoSYIgAAIgAAIgAAIgAAIhIIApCEUw4xOggAIgAAIgAAIgAAIgED8BCAN8bNDTRAAARAAARAAARAAARAIBQFIQyiGGZ0EARAAARAAARAAARAAgfgJQBriZ4eaIAACIAACIAACIAACIBAKApCGUAwzOgkCIAACIAACIAACIAAC8ROANMTPDjVBAARAAARAAARAAARAIBQEIA2hGGZ0EgRAAARAAARAAARAAATiJwBpiJ8daoIACIAACIAACIAACIBAKAhAGkIxzOgkCIAACIAACIAACIAACMRPANIQPzvUBAEQAAEQAAEQAAEQAIFQEIA0hGKY0UkQAAEQAAEQAAEQAAEQiJ8ApCF+dqgJAiAAAiAAAiAAAiAAAqEgAGkIxTCjkyAAAiAAAiAAAiAAAiAQPwFIQ/zsUBMEQAAEQAAEQAAEQAAEQkEA0hCKYUYnQQAEQAAEQAAEQAAEQCB+ApCG+NmhJgiAAAiAAAiAAAiAAAiEggCkIRTDjE6CAAiAAAiAAAiAAAiAQPwEIA3xs0NNEAABEAABEAABEAABEAgFAUhDKIYZnQQBEAABEAABEAABEACB+AlAGuJnh5ogAAIgAAIgAAIgAAIgEAoCkIZQDDM6CQIgAAIgAAIgAAIgAALxE4A0xM8ONUEABEAABEAABEAABEAgFAQgDaEYZnQSBEAABEAABEAABEAABOInAGmInx1qggAIgAAIgAAIgAAIgEAoCEAaQjHM6CQIgAAIgAAIgAAIgAAIxE8A0hA/O9QEARAAARAAARAAARAAgVAQgDSEYpjRSRAAARAAARAAARAAARCInwCkIX52qAkCIAACIAACIAACIAACoSAAaQjFMKOTIAACIAACIAACIAACIBA/AUhD/OxQEwRAAARAAARAAARAAARCQQDSEIphRidBAARAAARAAARAAARAIH4CkIb42aEmCIAACIAACIAACIAACISCAKQhFMOMToIACIAACIAACIAACIBA/AQgDfGzQ00QAAEQAAEQAAEQAAEQCAUBSEMohhmdBAEQAAEQAAEQAAEQAIH4CUAa4meHmiAAAiAAAiAAAiAAAiAQCgKQhlAMMzoJAiAAAiAAAiAAAiAAAvETgDTEzw41QQAEQAAEQAAEQAAEQCAUBCANoRhmdBIEQAAEQAAEQAAEQAAE4icAaYifHWqCAAiAAAiAAAiAAAiAQCgIQBpCMczoJAiAAAiAAAiAAAiAAAjETwDSED871AQBEAABEAABEAABEACBUBCANIRimNFJEAABEAABEAABEAABEIifAKQhfnaoCQIgAAIgAAIgAAIgAAKhIABpCMUwo5MgAAIgAAIgAAIgAAIgED8BSEP87FATBEAABEAABEAABEAABEJBANIQimFGJ0EABEAABEAABEAABEAgfgKQhvjZoSYIgAAIgAAIgAAIgAAIhIIApCEUw4xOggAIgAAIgAAIgAAIgED8BCAN8bNDTRAAARAAARAAARAAARAIBQFIQyiGGZ0EARAAARAAARAAARAAgfgJQBriZ4eaIAACIAACIAACIAACIBAKApCGUAwzOgkCIAACIAACIAACIAAC8ROANMTPDjVBAARAAARAAARAAARAIBQEIA2hGGZ0EgRAAARAAARAAARAAATiJwBpiJ8daoIACIAACIAACIAACIBAKAhAGkIxzOgkCIAACIAACIAACIAACMRPANIQPzvUBAEQAAEQAAEQAAEQAIFQEIA0hGKY0UkQAAEQAAEQAAEQAAEQiJ8ApCF+dqgJAiAAAiAAAiAAAiAAAqEgAGkIxTCjkyAAAiAAAiAAAiAAAiAQPwFIQ/zsUBMEQAAEQAAEQAAEQAAEQkEA0hCKYUYnQQAEQAAEQAAEQAAEQCB+ApCG+NmhJgiAAAiAAAiAAAiAAAiEggCkIRTDjE6CAAiAAAiAAAiAAAiAQPwEIA3xs0NNEAABEAABEAABEAABEAgFAUhDKIYZnQQBEAABEAABEAABEACB+AlAGuJnh5ogAAIgAAIgAAIgAAIgEAoCkIZQDDM6CQIgAAIgAAIgAAIgAALxE4A0xM8ONUEABEAABEAABEAABEAgFAQgDaEYZnQSBEAABEAABEAABEAABOInAGmInx1qggAIgAAIgAAIgAAIgEAoCEAaQjHM6CQIgAAIgAAIgAAIgAAIxE8A0hA/O9QEARAAARAAARAAARAAgVAQgDSEYpjRSRAAARAAARAAARAAARCInwCkIX52qAkCIAACIAACIAACIAACoSAAaQjFMKOTIAACIAACIAACIAACIBA/AUhD/OxQEwRAAARAAARAAARAAARCQQDSEIphRidBAARAAARAAARAAARAIH4CkIb42aEmCIAACIAACIAACIAACISCAKQhFMOMToIACIAACIAACIAACIBA/AQgDfGzQ00QAAEQAAEQAAEQAAEQCAUBSEMohhmdBAEQAAEQAAEQAAEQAIH4CUAa4meHmiAAAiAAAiAAAiAAAiAQCgKQhlAMMzoJAiAAAiAAAiAAAiAAAvETgDTEzw41QQAEQAAEQAAEQAAEQCAUBCANoRhmdBIEQAAEQAAEQAAEQAAE4icAaYifHWqCAAiAAAiAAAiAAAiAQCgIQBpCMczoJAiAAAiAAAiAAAiAAAjETwDSED871AQBEAABEAABEAABEACBUBCANIRimNFJEAABEAABEAABEAABEIifAKQhfnaoCQIgAAIgAAIgAAIgAAKhIABpCMUwo5MgAAIgAAIgAAIgAAIgED8BSEP87FATBEAABEAABEAABEAABEJBANKgOcy/bNunGcF79eNL5Kffdx2grOxD3islSMlihdIoI+sQ7d2fmSAt9t7M/OkpVDBfCm3fc9B7pQQpmZREdEKJArR5u7njwCSa0sXy0a4/MygjM9tkWiO5ihRIJUpKoj17M4zkM5kkPTWZihZKU9+XLn7KlixAv27fR+6dCYhKFkmnvQeyaP/BLOeGrlD+VEpNSVLfKa59UpKTiL8vt+zYb6xr5UoVMJYLif4iAGnQnAmQBk2Ah6tDGmQ4mo4CaTBNXC4fpEGOpelIkAbTxGXyQRpkOEaiQBpkeXqJBmnwQulfykAaNAFCGmQAWooCabAEXiAtpEEAoqUQkAZL4DXTQho0AR5VHdIgy9NLNEiDF0qQBk1KeVfHSkPejIJYAtIQxFHx1iZIgzdOQSwFaQjiqOTdJkhD3oxiKQFpiIWWTFlIgyZHrDRoAsRKgwxAS1EgDZbAC6SFNAhAtBQC0mAJvGZaSIMmQKw0yAKMIxqkIQ5oOatAGjQBQhpkAFqKAmmwBF4gLaRBAKKlEJAGS+A100IaNAGGUBpeX/MpdRv0MM2d2Isqnl5BFmAc0SANcUCDNGhCy6U6tifJMzUREdJggrI/OSAN/nA1ERXSYIKyfA5IgyxT17cnzX78RXrtnY9p3/4DNLBbU0iD7PSxEw0rDTLcIQ0yHE1HgTSYJi6XD9Igx9J0JEiDaeIy+SANMhwjUVyXhvc+XkdVzj6dmnUZRb073AdpkJ0+dqJBGmS4QxpkOJqOAmkwTVwuH6RBjqXpSJAG08Rl8kEaZDiGRRoi/byv7RDq07EBpEF2+tiJBmmQ4Q5pkOFoOgqkwTRxuXyQBjmWpiNBGkwTl8kHaZDhCGmQ5RhLNDzTEAutXMpCGjQBHq4OaZDhaDoKpME0cbl8kAY5lqYjQRpME5fJB2mQ4ei3NOw6cKpsQz1GK5ZvQ64lsdLgEWAiFIM0yIwSpEGGo+kokAbTxOXyQRrkWJqOBGkwTVwmH6RBhqPv0rDPkjQUgDTIzpAARoM0yAwKpEGGo+kokAbTxOXyQRrkWJqOBGkwTVwmH6RBhqPf0rD7TzvSULQQpEF2hgQwGqRBZlAgDTIcTUeBNJgmLpcP0iDH0nQkSINp4jL5IA0yHH2Xhj2WpKEIpEF2hgQwGqRBZlAgDTIcTUeBNJgmLpcP0iDH0nQkSINp4jL5IA0yHP2Whj277EhDkWK5S4MsNb1oeBBajx9BGjQBHq4OaZDhaDoKpME0cbl8kAY5lqYjQRpME5fJB2mQ4ei7NOw8TbahHqMVKf6dx5L2ikEaNNlDGjQBQhpkAFqKAmmwBF4gLaRBAKKlEJAGS+A100IaNAEeVd2vH3f7Y7sdaShcEtIgO0MCGA3SIDMoWGmQ4Wg6CqTBNHG5fJAGOZamI0EaTBOXyQdpkOHo90rDH79bkobSkAbZGRLAaJAGmUGBNMhwNB0F0mCauFw+SIMcS9ORIA2micvkgzTIcPRbGv78zY40FDoO0iA7QwIYDdIgMyiQBhmOpqNAGkwTl8sHaZBjaToSpME0cZl8kAYZjr5LwxZL0nA8pEF2hgQwGqRBZlAgDTIcTUeBNJgmLpcP0iDH0nQkSINp4jL5IA0yHP2Whr2b7UhDwbKQBtkZEsBokAaZQYE0yHA0HQXSYJq4XD5IgxxL05EgDaaJy+SDNMhw9F0afj5dtqEeoxU88VuPJe0Vw9uTNNlDGjQBHq4OaZDhaDoKpME0cbl8kAY5lqYjQRpME5fJB2mQ4ei3NOz7yY40FDgJ0iA7QwIYDdIgMyiQBhmOpqNAGkwTl8sHaZBjaToSpME0cZl8kAYZjr5Lw4+WpOFkSIPsDAlgNEiDzKBAGmQ4mo4CaTBNXC4fpEGOpelIkAbTxGXyQRpkOPotDft/sCMN+f8DaZCdIQGMBmmQGRRIgwxH01EgDaaJy+WDNMixNB0J0mCauEw+SIMMR9+lYYMlaTgV0iA7QwIYDdIgMyiQBhmOpqNAGkwTl8sHaZBjaToSpME0cZl8kAYZjn5Lw4Fvz5BtqMdo+U5f77GkvWJ4EFqTPaRBE+Dh6pAGGY6mo0AaTBOXywdpkGNpOhKkwTRxmXyQBhmOvkvDN5ak4UxIg+wMCWA0SIPMoEAaZDiajgJpME1cLh+kQY6l6UiQBtPEZfJBGmQ4+i0NB7+yIw3pFSENsjMkgNEgDTKDAmmQ4Wg6CqTBNHG5fJAGOZamI0EaTBOXyQdpkOHouzSssyQNlSANsjMkgNEgDTKDAmmQ4Wg6CqTBNHG5fJAGOZamI0EaTBOXyQdpkOHotzRkfGFHGtLOhjTIzpAARoM0yAwKpEGGo+kokAbTxOXyQRrkWJqOBGkwTVwmH6RBhqPv0rD2TNmGeoyWVvkbjyXtFcOD0JrsIQ2aAA9XhzTIcDQdBdJgmrhcPkiDHEvTkSANponL5IM0yHD0WxoyP7UjDannQRpkZ0gAo0EaZAYF0iDD0XQUSINp4nL5IA1yLE1HgjSYJi6TD9Igw9F3afjEkjScD2mQnSEBjAZpkBkUSIMMR9NRIA2micvlgzTIsTQdCdJgmrhMPkiDDEe/pSHrIzvSkHIBpEF2hgQwGqRBZlAgDTIcTUeBNJgmLpcP0iDH0nQkSINp4jL5IA0yHH2Xhg8sScNFkAbZGRLAaJAGmUGBNMhwNB0F0mCauFw+SIMcS9ORIA2micvkgzTIcPRdGt7/r2xDPUZLqfq1x5L2iuFBaE32kAZNgIerQxpkOJqOAmkwTVwuH6RBjqXpSJAG08Rl8kEaZDj6Lg3vWZKGapAG2RkSwGiQBplBgTTIcDQdBdJgmrhcPkiDHEvTkSANponL5IM0yHD0XRrWVJRtqMdoKZd+5bGkvWJYadBkD2nQBIiVBhmAlqJAGiyBF0gLaRCAaCkEpMESeM20kAZNgEdVL1eqgGzAw9Gy3q7kS9y8gqZcvi6vItb/HdKgOQSQBk2AkAYZgJaiQBosgRdIC2kQgGgpBKTBEnjNtJAGTYCmpOGts2Qb6jFaSvUvPZa0VwzSoMke0qAJENIgA9BSFEiDJfACaSENAhAthYA0WAKvmRbSoAnQlDS8YUka/gdpkJ0hAYwGaZAZFDzTIMPRdBRIg2nicvkgDXIsTUeCNJgmLpMP0iDDMRLFt+1Jq8+WbajHaClXfeGxpL1iWGnQZA9p0ASIlQYZgJaiQBosgRdIC2kQgGgpBKTBEnjNtJAGTYCmVhpeO0e2oR6jpVz9uceS9opBGjTZQxo0AUIaZABaigJpsAReIC2kQQCipRCQBkvgNdNCGjQBmpKGVyrLNtRjtJRr13osaa8YpEGTPaRBEyCkQQagpSiQBkvgBdJCGgQgWgoBabAEXjMtpEEToClpWGVJGq6DNMjOkABGgzTIDAqeaZDhaDoKpME0cbl8kAY5lqYjQRpME5fJB2mQ4RiJ4tszDS+fK9tQj9FSbvjMY0l7xbDSoMke0qAJECsNMgAtRYE0WAIvkBbSIADRUghIgyXwmmkhDZoATa00vHiebEM9Rku56VOPJe0VgzRosoc0aAKENMgAtBQF0mAJvEBaSIMAREshIA2WwGumhTRoAjQlDS+cL9tQj9FSbv7EY0l7xSANmuwhDZoAIQ0yAC1FgTRYAi+QFtIgANFSCEiDJfCaaSENmgBNScPzVWQb6jFayi0feyxprxikQZM9pEETIKRBBqClKJAGS+AF0kIaBCBaCgFpsAReMy2kQROgIWnIfM6ONKTeCmmQnSEBjAZpkBkUPAgtw9F0FEiDaeJy+SANcixNR4I0mCYukw/SIMMxEsWvB6Ezn71AtqEeo6XW+shjSXvFsNKgyR7SoAkQKw0yAC1FgTRYAi+QFtIgANFSCEiDJfCaaSENmgBNrTQ8faFsQz1GS73tQ48l7RWDNGiyhzRoAoQ0yAC0FAXSYAm8QFpIgwBESyEgDZbAa6aFNGgCNCUNT10k21CP0VLv+OCIkmu/+p76jJhJW7ftpIqnVaARfVpRmVLF/xHt9TWf0rjpS+jAwYNUpHBB6tOhAZ171mkes8ZWDNIQG69/lIY0aAKENMgAtBQF0mAJvEBaSIMAREshIA2WwGumhTRoAjQlDUstSUOdv6UhKyubatzXg/p0bEhXVKtM85eupDUffkFThnY8gkJGZhZdXacjLZzahyqceDy9+9GXNHTCfHp2zlBZ2IejQRo0sUIaNAFCGmQAWooCabAEXiAtpEEAoqUQkAZL4DXTQho0AZqShiUXyzbUY7TUuv8XLbl23QYaNmkBLZzaV/0tO/sQXXlHe1oxf4RaTYh8/ty7X8nFq0vGUUpKMm3fuYfubNFP/b8fH0iDJlVIgyZASIMMQEtRIA2WwAukhTQIQLQUAtJgCbxmWkiDJkBT0vBEVdmGeoyWetf70ZLLV65RKwtDHmwe/ds9rQdS7w4NqHLFU46IOHLKIvplyza69/braMaC5XT7zVdQjWurecwaWzFIQ2y8/lEa0qAJENIgA9BSFEiDJfACaSENAhAthYA0WAKvmRbSoAnQlDQs9ueCO6/ep97zXrTIkuWrad36jdSvU8Po3xp3HE6tG9WmalUqHRHq+42bqVX3MWqloexxpWh0/weoZPEieaWL698hDXFh+7sSpEETIKRBBqClKJAGS+AF0kIaBCBaCgFpsAReMy2kQROgKWlYaEka7v1bGpavWkNvvvuZevg58qnTvB8N6NKYKlc6Nfq3bTt2031tB9PEwe3pjFPK09MvvkWzFr9AS2c8RGlpqbLAiQjSoIkU0qAJENIgA9BSFEiDJfACaSENAhAthYA0WAKvmRbSoAnQlDQsuES2oR6jpdZ/N1ryy29+oP6jZ9OS6QPU3zKzsqh67Xb00sJRVKxooWi55195l95+fy0N7dki+rd7HxhE/To3ooqnV/CY2XsxSIN3VrmWhDRoAoQ0yAC0FAXSYAm8QFpIgwBESyEgDZbAa6aFNGgCNCUN8y6VbajHaKkN1kRL8oPPtzbqST3b1afqVf96e9Krb31Es8b1oE2bt9KCp1ZRjzb16Iuvf6Dugx+hhVP6KpnY+PNv1KjDUHp29tAjHpj22IQ8i0Ea8kT07wUgDZoAIQ0yAC1FgTRYAi+QFtIgANFSCEiDJfCaaSENmgBNScOcy2Qb6jFaaqN3jij59Xc/Ua9hM2jzlm106snlaHjvllS+bBn6+PP16u/8JqWkpCQlEIuffoUOEVG+9DTq2OJOuqLauR6zxlYM0hAbr3+UhjRoAoQ0yAC0FAXSYAm8QFpIgwBESyEgDZbAa6aFNGgCNCUNsy1JQ+MjpUGWlkw0SIMmR0iDJkBIgwxAS1EgDZbAC6SFNAhAtBQC0mAJvGZaSIMmQEPSkDHrctmGeoyW1vRtjyXtFYM0aLKHNGgChDTIALQUBdJgCbxAWkiDAERLISANlsBrpoU0aAI0JQ2PVpdtqMdoac3e8ljSXjFIgyZ7SIMmQEiDDEBLUSANlsALpIU0CEC0FALSYAm8ZlpIgyZAQ9JwcMYVsg31GC29xZseS9orBmnQZA9p0AQIaZABaCkKpMESeIG0kAYBiJZCQBosgddMC2nQBGhIGg5M/59sQz1Gy9fyDY8l7RWDNGiyhzRoAoQ0yAC0FAXSYAm8QFpIgwBESyEgDZbAa6aFNGgCNCUN066UbajHaPlave6xpL1ikAZN9pAGTYCQBhmAlqJAGiyBF0gLaRCAaCkEpMESeM20kAZNgIakYf/DV8k21GO0/K1XeyxprxikQZM9pEETIKRBBqClKJAGS+AF0kIaBCBaCgFpsAReMy2kQROgKWmYerVsQz1Gy//Aax5L2isGadBkD2nQBAhpkAFoKQqkwRJ4gbSQBgGIlkJAGiyB10wLadAEaEga9k2+RrahHqMVaPuqx5L2ikEaNNlDGjQBQhpkAFqKAmmwBF4gLaRBAKKlEJAGS+A100IaNAGakoZJ18o21GO0Au1e8VjSXjFIgyZ7SIMmQEiDDEBLUSANlsALpIU0CEC0FALSYAm8ZlpIgyZAQ9Kwd8J1sg31GK1gh1UeS9orBmnQZA9p0AQIaZABaCkKpMESeIG0kAYBiJZCQBosgddMC2nQBGhKGsZfL9tQj9EKdlzpsaS9YpAGTfYsDQ3rLtWM4q16WloyZWRmEx3yVl6n1NwldVT1AgUa64TxXDclJYkOHSLKzjbQOSLat2+2apuJsUtOTqLkZKLMTDN9i4ydib5RElF6ajIdzMj2PNY6BY32jYjSUpMpMytbzU2/P6b7xsccf7KyDHSOiEz2j2U2NeXw96XfA5ejb6a+L9PTzB1zke9KU31LTU2i7Gwz5wKT5wGehnwu4Lnp4jHH5wL+vswweC4oV6qAL0f3n2Nv8CVuXkELdX45ryLW/x3SoDkELA0Vy0/QjBK86l9t6qAaVajI2cFrnECL/tzzhYri8tihbwITxWCIyDHn4rgxRpf75/L3ZeS70sVzgcvngTAcc75Jw5gbDX7z/52qUJeXrOSNJSmkIRZauZSFNGgCtFTd5ZNFGC7OXLywdnncwnAB4+pNFkiDpZOUQFqXv1O4b35Jwx+jbxKgH3uIwl1fjL2S4RqQBk3gkAZNgJaqQxosgddM6/pJ0NXVL0iD5sS3WB3SYBG+ZmrXvy99k4aRN2uSj6964e4vxFfRYC1IgyZsSIMmQEvVIQ2WwGumdf0kCGnQnCCWqmN7kiXwmmldPg+EQdT9koY9I2pozqz4qhfpsSK+igZrQRo0YUMaNAFaqu7yyQIX1pYmlWZal8ctDBcw3EeX9/273DcXtzuG4ZjzTRqGWZKGnpAGzdNo8KtDGoI/Rrm1ENKQmOPm8oW1y30LwwUMpCHxvlNcPg+E4ZjzSxp2D73FymQu2ut5K3ljSYqVhlho5VIW0qAJ0FJ1l08WLl98om+WDhiBtGEYO5fvxrvcN6w0CBzghkP4+SD0rsE1Dffmr3TF+iy3kjeWpJCGWGhBGjRpBac6pCE4YxFLS8Jw4YkLmFhmRDDK4pmGYIxDrK1w+TyAlYZYZ8Pf5XcNujX+yho1i/V9TqO2maqQBk3OWGnQBGipussnC1xYW5pUmmldHrcwXMBwH12+G+9y3yDqml9eFqr7udKw86FaFnpEVLz/s1byxpIU0hALLaw0aNIKTnVIQ3DGIpaWuHxh7XLfIA2xzPJglcUrV4M1HrG0xuXvFF+lYUDtWDCLlS0+4BmxWH4FgjRoksVKgyZAS9UhDZbAa6Z1/STIeHDXU3OSWKiO7UkWoAukdPk8EAZR9+tB6B39bxOYXbGHKPHQ07FXMlwD0qAJHNKgCdBSdZdPFriwtjSpNNO6PG5huIDhPrq8hcflvkHUNb+8LFT3c6VhR9/bLfSIqMSgZVbyxpIU0hALrVzKQho0AVqqDmmwBF4zrcsX1i73DdKgOfEtVsf2JIvwNVO7/J3ipzRs73OHJvn4qpcc/FR8FQ3WgjRowoY0aAK0VB3SYAm8ZlrXT4KMB3c9NSeJherYnmQBukBKl88DYRB1v7Ynbe9VR2B2xR6i5NClsVcyXAPSoAkc0qAJ0FJ1l08WuLC2NKk007o8bmG4gOE+uryFx+W+QdQ1v7wsVPdzpWFbzzst9Iio1LAnreSNJSmkIRZauZSFNGgCtFQd0mAJvGZaly+sXe4bpEFz4lusju1JFuFrpnb5O8VPafj9wbqa5OOrXnr4kvgqGqwFadCEDWnQBGipOqTBEnjNtK6fBBkP7npqThIL1bE9yQJ0gZQunwfCIOp+bU/6vftdArMr9hClRz4ReyXDNSANmsAhDZoALVV3+WSBC2tLk0ozrcvjFoYLGO6jy1t4XO4bRF3zy8tCdT9XGrZ2u9tCj4jKjHrcSt5YkkIaYqGVS/tAdhcAACAASURBVFlIgyZAS9UhDZbAa6Z1+cLa5b5BGjQnvsXq2J5kEb5mape/U/yUht+63qNJPr7qx41eHF9Fg7UgDZqwIQ2aAC1VhzRYAq+Z1vWTIOPBXU/NSWKhOrYnWYAukNLl80AYRN2v7UlbOtcTmF2xhzh+7KLYKxmu4bQ0/O/29vTM7CFUolgR37BCGnxD62tgl08WuLD2der4FtzlcQvDBQz30eUtPC73DaLu29eab4H9XGn4tZMdaThhHKTBtwnjJXC80rDgqZW0d98BalG/Zp5pIA15IgpkAUhDIIclz0a5fGHtct8gDXlO7cAWwPakwA5Nng1z+TvFV2noeG+ebP0ocML4hX6EFY2JlYZccP7y6++UmZVNFU48Lk/YkIY8EQWyAKQhkMOSZ6NcPwkyANz1zHMaBK4AticFbkg8Ncjl80AYRN2v7UmbO9T3NH+kC5WdsEA6pHg8p6ThqRVv0IwFyyktLY1uvPIiWvbiW7Rk+gC1Palmw57UqUVdGjJxHlWtUomG92pJy154k2YtWkH7D2ZQqRJFaXS/1lS+bBkV4+DBDGrT5Hb69MvvaPr85+iEMiXpx5+30Lbtu6jRXTfRbTdVV4MBaRCfk0YCunyywIW1kSkknsTlcQvDBQz30eUtPC73DaIu/nXme0A/Vxp+aXef7+3PLUG5SfOt5I0lqTPSsGHjZmrScTg9Pq2/usCfs+QlGjllEb31zCQlDVVr3E9XVDuXHurahAoXKqAYff3dT3TCcSWpWJFCNOaRJ2jf/gPUp2ODf0jDvQ8MokVT+9K5Z51G23bsplsb9qTVS8dTenoapCGW2RagspCGAA1GDE1x+cLa5b5BGmKY5AEriu1JARuQGJrj8neKn9Lwc9sGMVCWK3ri5HlywXyK5Iw0zFq8grZs3UE92/21rJSRkUkX3NiC3lg2UUnD+dc3p2ceG0Inlz8+V5TvfPA5LXhqFU0Z2vEf0tB3xKP07Jyh0Xq8ajF1WCe1fWnvgUw6ofhon4bHXthfd3b9i2PSmfYa4WPmtEPfqOgujx365uME8iH0lsPH3PEOfp8wLpf7F+nbQQe/LyPflS6eC1w+D/AxFzmPu3ouKJgv1YdvYqJNbRr6EjevoOWnzD2iyNqvvqc+I2bS1m07qeJpFWhEn1ZUplTxXMPMX7qSFj39Ch04mEE3XV2Vut7vz29NOCMNo6YuppIlilKzejWiQC+r1Yaenzc8Kg0fvzyDkpKSov++ZPlqWvXGh3To0CHatftPVf/h4Z3+IQ1jHnmc5k7sFa1Xq3FvGj+wLZ1aoSzt2HOQTj5ubF5zIeH+/cffOqs2J+ermHBt99Lg7ANfqWIujx365mUmBKfMD4ePuf84+H3ClF3uX6RvKQ5+X0a+K108F7h8HuBjLnIed/VcUKJIui9f4JtaN/Ilbl5Byz88J1okKyubatzXg/p0bEhXVKtMLAVrPvxC3dg++jP7iRfp/Y/X0ZAHm/v6tlDO64w08ErDtu27qdsDf/0oBwO/4IYWtPqp8VFp+GTlzCjr19d8SpMfW0azxnanIoUL0up3PqHHn30tV2kYO+0JmjOhZ67SgGca8joMgvnv2J4UzHHJq1WuL7dz/7G/Oq9ZELx/x4PQwRsTLy1y+TzA/Xf9+9KvB6F/ur+xl+kjXuakR2ZHY65dt4GGTVpAC6f2VX/Lzj5EV97RnlbMH6GuWSMfvta98d5u9OT0h6h4scLibTo6oDPS8O33P1Or7mNo0cP96LjSxWnhsldoyIR50WcaeHtSTmngh6BfWv1/ShJ4OafH4Gl0MCMT0nB4hrh8EuQuunyycP1E4eqFtcvjFoYLGO6jyw8Lu9w3iLrv15riCfx8pmFjqybi7fUSsMK0x6LFlq9co1YWePUg8rmn9UDq3aEBVa54SvRv32zYRL2Hz6RqF1SiN9/7jIoUKkidW9WlCyr7s7XcGWlggk8uf11tLUpJSaarL6tC7328jmaM7prrSsPeffupQ9/J9MOmX6l0yWLUoM4N9NzKdyANkAYvx3agy7h88Ym+BXrq/WvjwjB2Ll9Yu9w3SEPifa/4KQ0/tmhqBcjJM2ZF8/L2+XXrN1K/Tn8/X9G443Bq3ag2VatSKVruzffWUoe+E2lYrxZ0/f8upnXrf6S2vcfT8/NGUMEC+cT74ZQ0iNPxEBDbkzxACmARrDQEcFA8NCkMF564gPEwEQJWxOWVWbw9KWCTLYbmuP596df2pB+aN4uBslzR/8x89O+VhlVr6M13P1MPP0c+dZr3owFdGlPlSqdG/7bmgy9o6pxnaN6kv5+7bdppBHVocSedd9Zpco07HAnSoIkU0qAJ0FJ1SIMl8JppXT8JMh5Ig+YksVAd0mABukBKl88DjMf170vfpKGZJWl49G9p+PKbH6j/6Nnqt8b4k5mVRdVrt6OXFo6iYkULRWf/xp9/o/t7jFHPOkQ+97UdQr073EeVzjhZ4Cg5MgSkQRMppEEToKXqLp8sXD9RuHph7fK4heEChvvo8hYel/sGUbd0ItZI6+f2pO+b/v0cgUYTY656yqy/X9bDDz7f2qin+hmB6lX/envSq299RLPG9aBNm7eqnwjo0aaeytGg3RCqdePlVLfmVfTx5+up++Bp9PzcYeq3xKQ/kAZNopAGTYCWqkMaLIHXTOvyhbXLfYM0aE58i9WxPckifM3ULn+n+CkNGxq30CQfX/VTZ884oiL/AHGvYTNo85ZtdOrJ5Wh475ZUvmwZJQb8d15d4J8R4NWG3sNnqP8eV7qEeg4i5xam+FqTey1IgyZNSIMmQEvVIQ2WwGumdf0k6OoqCqRBc+JbrA5psAhfM7Xr35d+bU/6rlFLTfLxVT9tzvT4KhqsBWnQhA1p0ARoqTqkwRJ4zbSunwQhDZoTxFJ1PNNgCbxmWpfPA2EQdb+k4duGfz98rDnFYqp++txpMZW3URjSoEkd0qAJ0FJ1l08WuLC2NKk007o8bmG4gOE+urzv3+W+4ZkGzS8vC9X93J707X33W+gR0enzH7GSN5akkIZYaOVSFtKgCdBSdUiDJfCaaV2+sHa5b5AGzYlvsTq2J1mEr5na5e8UP6Vhff3WmuTjq37Ggofjq2iwFqRBEzakQROgpeqQBkvgNdO6fhJkPLjrqTlJLFTH9iQL0AVSunweCIOo+7U96Zt7HxCYXbGHOHPh1NgrGa4BadAEDmnQBGipussnC1xYW5pUmmldHrcwXMBwH13ewuNy3yDqml9eFqr7udLwdb02FnpE9N9FU6zkjSUppCEWWrmUhTRoArRUHdJgCbxmWpcvrF3uG6RBc+JbrI7tSRbha6Z2+TvFT2n46u62muTjq17x8cnxVTRYC9KgCRvSoAnQUnVIgyXwmmldPwkyHtz11JwkFqpje5IF6AIpXT4PhEHU/dqetO6udgKzK/YQlZ6YFHslwzUgDZrAIQ2aAC1Vd/lkgQtrS5NKM63L4xaGCxjuo8tbeFzuG0Rd88vLQnU/Vxq+rNveQo+Izloy0UreWJJCGmKhlUtZSIMmQEvVIQ2WwGumdfnC2uW+QRo0J77F6tieZBG+ZmqXv1P8lIYv7uygST6+6mc/OSG+igZrQRo0YUMaNAFaqg5psAReM63rJ0HGg7uempPEQnVsT7IAXSCly+eBMIi6X9uTPr+jo8Dsij3EOU+Nj72S4RqQBk3gkAZNgJaqu3yywIW1pUmlmdblcQvDBQz30eUtPC73DaKu+eVlobqfKw1rb+9koUdElZeNs5I3lqSQhlho5VIW0qAJ0FJ1SIMl8JppXb6wdrlvkAbNiW+xOrYnWYSvmdrl7xQ/peGz2zprko+v+rlPj42vosFakAZN2JAGTYCWqkMaLIHXTOv6SZDx4K6n5iSxUB3bkyxAF0jp8nkgDKLu1/akT2t3EZhdsYc475kxsVcyXAPSoAkc0qAJ0FJ1l08WuLC2NKk007o8bmG4gOE+uryFx+W+QdQ1v7wsVPdzpeGTWl0t9Ijo/GdHW8kbS1JIQyy0cikLadAEaKk6pMESeM20Ll9Yu9w3SIPmxLdYHduTLMLXTO3yd4qf0vBxzW6a5OOrXmX5qPgqGqwFadCEDWnQBGipOqTBEnjNtK6fBBkP7npqThIL1bE9yQJ0gZQunwfCIOp+bU/66JbuArMr9hAXPD8y9kqGa0AaNIFDGjQBWqru8skCF9aWJpVmWpfHLQwXMNxHl7fwuNw3iLrml5eF6n6uNHxYo4eFHhFduGKElbyxJIU0xEIrl7IsDe+v2aQZxVv1EkXSadefGZSdfchbBY1SVS8tr2qnpPyfRhTvVQsVSKWsrEO0/2CW90oaJbOyLla1TYxdeloy5U9Lpt17MzVa7L1qZOxM9C0piahkkXy0bfcB7w3UKGmyb9zMYoXT6M99mZSZZe6YMzFu3LeC+VKIkpJo73735mVaShIVLJBKu/7I0Jht3qua/r4sVTQfbd99gPyflUSR70pT54KiBVNpf0Y2HczI9j4AcZY0eR7gJuZPT6GUlCT1nWLiY/L7Mjk5iYoVSqMdew6a6Bpx3/xaafjg5geN9OHoJBe9MNxK3liSQhpioXUMadAM4bn68SXy0++7DlCWAWnw3Cihgvxlk5F1yNgFjFCzPYXhEwVfoG039GXqqVFChVgaTihRgDZv3ycUMVhhShfLp0Q9I9P/CxjTPS9SIFVJw569Zi6sTfYvPTWZihZKU9+XLn7KlixAv27fZ0QaTPMrWSSd9h7IMnYDyWT/CuVPpdSUJPWd4tonJTmJ+Ptyy479xrrmlzT83409jfUhZ6KLXxpmJW8sSSENsdA6hjQUKNBYM4q36mlpyX9dvBi4vbRv32zVqIZ1l3prnGYpvvty6BAZWUXhps5dUsdY//gOTHIyUWamgYEz3DdKIuILNBN3BU2PG+dLS02mzKxsNTf9/pick9wXPub4wyt8Jj4m+8cym5py+PvSQOdM9o27w6uXrh5zqalJlJ1t5lxgetz4XMBz08Vjjs8F/H2ZYWCFKHIu8Esa3r+hl4FvjX+mqPryUCt5Y0kKaYiF1jGkAXs9NSFaqO7y/nH0zcKEEkjp8rgxHpf7h74JHAAWQrg8bmE45vyShveu721hNhJVWznESt5YkkIaYqEFadCkFZzqLp8s0LfgzLNYWuLyuIXhAob76OIDtS7PS5f7FoZjzi9pePe6PrF8dYuVvWTVYLFYfgWCNGiS5QehsdKgCdFCdZdPFuibhQklkNLlcQvDBQykQeAgMBwCx5xh4ILp/Hx70ppr+wq21HuoS18Z5L2wpZKQBk3wkAZNgJaqu3yyQN8sTSrNtC6PG6RBc3JYrO7yvHS5b2E45vxaaXjn6n5WjrjLXhtoJW8sSSENsdDKpSykQROgpeounyzQN0uTSjOty+MWhgsYrDRoHgAWquOYswBdKKWfKw1vX9VfqJWxhbl89UOxVbBQGtKgCR3SoAnQUnWXTxbom6VJpZnW5XGDNGhODovVXZ6XLvctDMecXysNb105wMoRV/11O3lj6SykIRZaWGnQpBWc6i6fLNC34MyzWFri8riF4QIGKw2xzPZglMUxF4xxiKcVfq40vPk/O3f8r3jDzgpHLPwhDbHQgjRo0gpOdZdPFuhbcOZZLC1xedwgDbHMhGCVdXleuty3MBxzfq00vHGFnWcL/vemnWcpYvnGgTTEQgvSoEkrONVdPlmgb8GZZ7G0xOVxC8MFDFYaYpntwSiLYy4Y4xBPK/xcaXj9cjtvMbrybTtvbYqFP6QhFlqQBk1awanu8skCfQvOPIulJS6PG6QhlpkQrLIuz0uX+xaGY86vlYbVl9n5vYSr3rHz+xCxfONAGmKhBWnQpBWc6i6fLNC34MyzWFri8riF4QIGKw2xzPZglMUxF4xxiKcVfq40vHapnV9mvnqNnV+ijoU/pCEWWpAGTVrBqe7yyQJ9C848i6UlLo8bpCGWmRCssi7PS5f7FoZjzq+VhlcvGWrlILzm3V5W8saSFNIQCy1Igyat4FR3+WSBvgVnnsXSEpfHLQwXMFhpiGW2B6MsjrlgjEM8rfBzpWFV1WHxNEm7znXv99SO4XcASIMmYfxOgyZAS9VdPlmgb5YmlWZal8cN0qA5OSxWd3leuty3MBxzfq00rLx4uJUj7vr/e9BK3liSQhpioYWVBk1awanu8skCfQvOPIulJS6PWxguYLDSEMtsD0ZZHHPBGId4WuHnSsPLF42Ip0nadW74oId2DL8DQBo0CWOlQROgpeounyzQN0uTSjOty+MGadCcHBaruzwvXe5bGI45v1YaXrpwpJUj7sYPu1vJG0tSSEMstLDSoEkrONVdPlmgb8GZZ7G0xOVxC8MFDFYaYpntwSiLYy4Y4xBPK/xcaXjhglHxNEm7zs0fddOO4XcASIMmYaw0aAK0VN3lkwX6ZmlSaaZ1edwgDZqTw2J1l+ely30LwzHn10rDivNHWznianzS9Yi8a7/6nvqMmElbt+2kiqdVoBF9WlGZUsWP2bbft++iWo16UZ+ODanGtdV86QOkQRMrpEEToKXqLp8s0DdLk0ozrcvjFoYLGKw0aB4AFqrjmLMAXSilnysNz583RqiVsYW55dMu0QpZWdlU474eSgCuqFaZ5i9dSWs+/IKmDO14zKDtek+gP/fupztrXgVpiA29udKQBnOsJTO5fLJA3yRnirlYLo8bpMHcPJLO5PK8dLlvYTjm/FppWH7uWOnDyFO8mp91jpZbu24DDZu0gBZO7av+lp19iK68oz2tmD+CihQu+I94z778Nn302XrKly+NzjvrdEiDJ+J5FGrZbTQ1v7cmVa1SUSvc+dc3p09WzlQxIA1aKK1Vdvlkgb5Zm1ZaiV0etzBcwHAfK5afoDUHgljZ5Xnpct/CcMz5JQ3PVh5n5VCstbZTNO/ylWvUysKQB5tH/3ZP64HUu0MDqlzxlCPax9uX7u8xluZO7EXjpi+hCyqfCWmQGMF4peHQoUN0073dafncYZSWlkqQBonRsBvD5ZMF+mZ3bsWb3eVxC8MFDKQh3plvrx6OOXvsdTP7uT3pmXPsSEPtz/+WhiXLV9O69RupX6eGUVSNOw6n1o1qU7UqlY7A16bXeGpY90b198Hj50EadCdXpD5LQ4v6Neni82NfaXj3wy/pkgvPUqEgDVIjYi+OyycL9M3evNLJ7PK4QRp0Zobdui7PS5f7FoZjzq+VhqfPGm/loLvty7+fV1i+ag29+e5n6uHnyKdO8340oEtjqlzp1Ojflr3wJn35zQ9qBYI/kAbBoWNpOP+cM+jFV99TD4tUrVKJ+nVuRAXyp6ssr6/5VC3t/LF3H5184vHUv0tjqnDicf8QBUiD4KBYCuXyyQJ9szSpNNO6PG5huIDhPmJ7kuZBYLg6jjnDwAXT+bnSsKySnW2Gt6/rECXEItB/9GxaMn2A+ltmVhZVr92OXlo4iooVLRQt16LraPr0y28pKSlJ/e3AgYOUkpJCtW+qfsQqhRT6UL09iaWBn0ifMqwjpaelUb9Rs+j4MiWoXdM7aNPmrdSw/VCaPb6nEoWXX/+Aps5+mp56dBAlJycdsboAaZCafvbiuHyyQN/szSudzC6PG6RBZ2bYrevyvHS5b2E45vxaaVhacaKVg67OV+2jefnB51sb9aSe7epT9ap/vT3p1bc+olnjeqjr1QVPraIeber9o51YaRAcOpYGtq9brr1ERf3q243Uc+h0WjZrMM1+4kXavGWbGqDI57YmfWh475ZU8fQKx5SGnX9kUFL6fwVbGYxQhw5+rRpSoYydV4/5TWHj1r9ebeZi/9A3v2ePP/FdHjcm5nL/0Dd/jgm/o7o8bmE45ooXTvNlijz530m+xM0r6J1ftzuiyNff/US9hs1Q16annlxOXY+WL1uGPv58vfo7v0kpssIQqQhpyItyDP/O0tD47pvosovOUbV++30n3dmiH72xbCKNnLKISpUsRs3q1YhGbNV9DN17+3V05aXnHVMa9h7IpIykM2NoRWIUTTv0jWroCcXt/MiJ35R+3fnXj6i42D/0ze/Z4098l8eNibncP/TNn2PC76guj1sYjrmC+VJ9mSJLzpjsS9y8gtZd3zavItb/PXTbk2rdcDnVvP5SBV49PDJ8plppmLV4BW3ZuiPmlQa8ctX6HI6rAS4vS6NvcU0J65VcHjeG63L/0Dfrh09cDXB53MJwzPm1PemJ06fENZ90K931bRvdEL7XD5007D9wkB4Z0YXy50unXsNn0IknlFbPNGz8+Tdq3HEYPTbuQTq5/PG08o0PaNKsZfT0rMF4psH3aWg+gcsnC/TN/HySyOjyuIXhAob7iAehJY4EczFwzJljLZ3JzwehF582Vbq5nuLd890DnsrZLBQqaeDtRjWvu5TmLHmJduzcQxdXqUj9OzeOvj3p1bc/prHTnqD9+w/QSSceRwO6NFECwZ+cDz/jQWibU1Ymt8snC/RNZo6YjuLyuEEaTM8muXwuz0uX+xaGY86vlYZFpz4sdwDFEKnehtYxlLZTNFTS4AdibE/yg6r/MV0+WaBv/s8fPzK4PG5huIDBSoMfR4W/MXHM+cvXz+h+rjQsPOURP5t+zNj3fn+/lbyxJIU0xEIrl7KQBk2Alqq7fLJA3yxNKs20Lo8bpEFzclis7vK8dLlvYTjm/FppWHDyNCtHXP0f//4hNysN8JAU0uAB0r8VgTRoArRU3eWTBfpmaVJppnV53MJwAYOVBs0DwEJ1HHMWoAul9HOlYV4FO9LQYCOkQWh6BDcMpCG4Y/NvLXP5ZIG+YU4GkQDmZRBHJe82YdzyZhTUEq6PnV8rDXNPmm5lSBv+1NJK3liSYqUhFlq5lIU0aAK0VN31L1Pc9bQ0sTTSujwnsdKgMTEsV3V5XrrctzAcc35Jw5zyM6wcdY02tbCSN5akkIZYaEEaNGkFp7rLJwv0LTjzLJaWuDxuYbiAgajHMtuDURbHXDDGIZ5W+Lk9afaJM+Npknadxj83147hdwBIgyZhrDRoArRU3eWTBfpmaVJppnV53CANmpPDYnWX56XLfQvDMefXSsOsso9aOeKabm5mJW8sSSENsdDCSoMmreBUd/lkgb4FZ57F0hKXxy0MFzBYaYhltgejLI65YIxDPK3wc6Xh0RNmxdMk7TrNfm2qHcPvAJAGTcJYadAEaKm6yycL9M3SpNJM6/K4QRo0J4fF6i7PS5f7FoZjzq+VhpnHP2bliGu+pYmVvLEkhTTEQgsrDZq0glPd5ZMF+haceRZLS1wetzBcwGClIZbZHoyyOOaCMQ7xtMLPlYbpx9mRhpa/QRrimQsJVQcrDQk1XNHGunyyQN8wJ4NIAPMyiKOSd5swbnkzCmoJ18fOr5WGaWXsSEOrrZCGoB5LYu2CNIihNBrI9S9T3PU0Op1Ekrk8J7HSIDJFrARxeV663LcwHHN+ScPDZWZbOdZab21sJW8sSbE9KRZauZSFNGgCtFTd5ZMF+mZpUmmmdXncwnABA1HXPAAsVMcxZwG6UEo/tydNKW1HGtr8DmkQmh7BDQNpCO7Y/FvLXD5ZoG+Yk0EkgHkZxFHJu00Yt7wZBbWE62Pn10rD5FJzrAxp222NrOSNJSlWGmKhhZUGTVrBqe76lynuegZnrnltictzEisNXmdB8Mq5PC9d7lsYjjm/pGFiSTvS0H47pCF434DCLcJKgzBQQ+FcPlmgb4YmkXAal8ctDBcwEHXhA8JAOBxzBiD7lMLP7UkTStiRhg47IA0+TZfghIU0BGcsYmmJyycL9C2WmRCcsi6PG6QhOPMs1pa4PC9d7lsYjjm/VhrGFZ8b62EiUr7TzoYicfwMgu1JmnQhDZoALVV3+WSBvlmaVJppXR63MFzAYKVB8wCwUB3HnAXoQin9XGkYY0kaukAahGZHgMNAGgI8OP/SNJdPFugb5mQQCWBeBnFU8m4Txi1vRkEt4frY+bXSMLqYnZWGrruw0hDUY0msXZAGMZRGA7n+ZYq7nkank0gyl+ckVhpEpoiVIC7PS5f7FoZjzi9pGFl0npVjrfvuBlbyxpIU25NioZVLWUiDJkBL1V0+WaBvliaVZlqXxy0MFzAQdc0DwEJ1HHMWoAul9HN70ogidqShxx5Ig9D0CG4YSENwx+bfWubyyQJ9w5wMIgHMyyCOSt5twrjlzSioJVwfO79WGoYVnm9lSHv+cZ+VvLEkxUpDLLSw0qBJKzjVXf8yxV3P4Mw1ry1xeU5ipcHrLAheOZfnpct9C8Mx55c0DClkRxp6/wlpCN43oHCLeKUhJeX/hKPmHq5EkXTa9WcGZWcf8j1fVtbFKsf7azb5nosTFCqQSllZh2j/wSwj+apeWt5Y/9LTkil/WjLt3pvpXN+SkohKFslH23YfcK5v3KFihdPoz32ZlJnl/zFnck5y3wrmSyFKSqK9+92bl2kpSVSwQCrt+iPDyXlZqmg+2r77APk/K4lMz8uiBVNpf0Y2HczI9n3sTPctf3oKpaQkqe8UEx+T/UtOTqJihdJox56DJrqm5qVf0jDYkjT0gTQYmTtWk7A0mPocXyI//b7rAGUZkAZTfYrk4S+bjKxDxi5gTPaPTxR8gbbd0Jepyb6xNJxQogBt3m7uODDZv9LF8ilRz8j0/wLGZL84V5ECqUoa9uw1c2Ftsn/pqclUtFCa+r508VO2ZAH6dfs+I9Jgml/JIum090CWsRtIJvtXKH8qpaYkqe8U1z4pyUnE35dbduw31jW/pGFgwQXG+pAzUb+99a3kjSUptifFQiuXspAGTYCHq0MaZDiajgJpME1cLh+kQY6l6UiQBtPEZfJBGmQ4RqL4JQ0PFbAjDf33QRpkZ0gAo0EaZAYF0iDD0XQUSINp4nL5IA1yLE1HgjSYJi6TD9Igw9Fvaeiff6FsQz1Ge2j/vR5L2iuGlQZN9pAGTYBYaZABaCkKpMESeIG0kAYBiJZCem9EDwAAIABJREFUQBosgddMC2nQBHhUdb9WGvrmsyMNgw5AGmRnSACjQRpkBgUrDTIcTUeBNJgmLpcP0iDH0nQkSINp4jL5IA0yHP1eaeiTbkcaBh+ENMjOkABGgzTIDAqkQYaj6SiQBtPE5fJBGuRYmo4EaTBNXCYfpEGGo9/S0Ct9kWxDPUYberCex5L2imF7kiZ7SIMmwMPVIQ0yHE1HgTSYJi6XD9Igx9J0JEiDaeIy+SANMhz9loaeaXakYVgGpEF2hgQwGqRBZlAgDTIcTUeBNJgmLpcP0iDH0nQkSINp4jL5IA0yHP2Whh6pdqRhRCakQXaGBDAapEFmUCANMhxNR4E0mCYulw/SIMfSdCRIg2niMvkgDTIc/ZaGbimLZRvqMdqorHs8lrRXDNuTNNlDGjQBHq4OaZDhaDoKpME0cbl8kAY5lqYjQRpME5fJB2mQ4ei3NHRNtiMNo7MhDbIzJIDRIA0ygwJpkOFoOgqkwTRxuXyQBjmWpiNBGkwTl8kHaZDh6Lc0dLYkDWMhDbITJIjRIA0yowJpkOFoOgqkwTRxuXyQBjmWpiNBGkwTl8kHaZDh6Lc0dLIkDeOOkoa1X31PfUbMpK3bdlLF0yrQiD6tqEyp4kdAzMjMounznqVlL7xJmVnZdMYp5Wlg96ZU9riSsrAPR8P2JE2skAZNgIerQxpkOJqOAmkwTVwuH6RBjqXpSJAG08Rl8kEaZDj6LQ0dLEnDhBzSkJWVTTXu60F9OjakK6pVpvlLV9KaD7+gKUM7HgFx1+4/afEzr1L9O66jwoUK0NQ5z9C332+isQPayMKGNMjwhDTIcIQ0yHA0HQXSYJq4XD5IgxxL05EgDaaJy+SDNMhw9Fsa2iXbeXvSpOy/3560dt0GGjZpAS2c2ld1Nzv7EF15R3taMX8EFSlc8Jggv/p2I/UcOp2WzRosCxvSIMMT0iDDEdIgw9F0FEiDaeJy+SANcixNR4I0mCYukw/SIMPRb2loa0kaJueQhuUr16iVhSEPNo9Cu6f1QOrdoQFVrnjKMUHyqsOX3/xAA7s1lYUNaZDhCWmQ4QhpkOFoOgqkwTRxuXyQBjmWpiNBGkwTl8kHaZDh6Lc0PGBJGqbmkIYly1fTuvUbqV+nhlFojTsOp9aNalO1KpVyBbll6w5q0mk4zRzdjcqdUFoWNqRBhiekQYYjpEGGo+kokAbTxOXyQRrkWJqOBGkwTVwmH6RBhqPf0nB/8kLZhnqM9kj2vdGSy1etoTff/Uw9/Bz51GnejwZ0aUyVK536j4g7d/1BzbqMpM6t7qLLLz7HY8bYi+FB6NiZHVED0qAJ8HB1SIMMR9NRIA2micvlgzTIsTQdCdJgmrhMPkiDDEe/paGVJWmYlkMaeItR/9Gzacn0Aaq7mVlZVL12O3pp4SgqVrTQESD3/LGXWnQbTU3uvoluvKqqLOSjokEaNPFCGjQBQhpkAFqKAmmwBF4gLaRBAKKlEJAGS+A100IaNAEeVb1cqQKyAQ9Ha2FJGmbkkAZ+8PnWRj2pZ7v6VL3qX29PevWtj2jWuB60afNWWvDUKurRph7t3befWnUfq96edNPV/goD44E0aE45SIMmQEiDDEBLUSANlsALpIU0CEC0FALSYAm8ZlpIgyZAQ9LQLHmBbEM9Rns0u/4RJb/+7ifqNWwGbd6yjU49uRwN792SypctQx9/vl79nd+ktGT56/TQmNmUnJx0RN0Fk/vQuWed5jGz92KQBu+sci0JadAECGmQAWgpCqTBEniBtJAGAYiWQkAaLIHXTAtp0ARoSBqaWpKGWUdJgywtmWiQBk2OkAZNgJAGGYCWokAaLIEXSAtpEIBoKQSkwRJ4zbSQBk2AhqShsSVpmA1pkJ0gQYwGaZAZFTwILcPRdBRIg2nicvkgDXIsTUeCNJgmLpMP0iDDMRLFr2caGibPl22ox2hzs+/zWNJeMaw0aLKHNGgCxEqDDEBLUSANlsALpIU0CEC0FALSYAm8ZlpIgyZAQysN96XYkYb5WZAG2RkSwGiQBplBwUqDDEfTUSANponL5YM0yLE0HQnSYJq4TD5IgwxHv1ca6luShgWQBtkJEsRokAaZUYE0yHA0HQXSYJq4XD5IgxxL05EgDaaJy+SDNMhw9Fsa6qXMk22ox2iLshp4LGmvGLYnabKHNGgCPFwd0iDD0XQUSINp4nL5IA1yLE1HgjSYJi6TD9Igw9FvabjbkjQ8DmmQnSBBjAZpkBkVSIMMR9NRIA2micvlgzTIsTQdCdJgmrhMPkiDDEe/peEuS9LwBKRBdoIEMRqkQWZUIA0yHE1HgTSYJi6XD9Igx9J0JEiDaeIy+SANMhz9loY7U+bKNtRjtCezGnosaa8Ytidpsoc0aAI8XB3SIMPRdBRIg2nicvkgDXIsTUeCNJgmLpMP0iDD0W9puMOSNDwFaZCdIEGMBmmQGRVIgwxH01EgDaaJy+WDNMixNB0J0mCauEw+SIMMR7+l4XZL0rAM0iA7QYIYDdIgMyqQBhmOpqNAGkwTl8sHaZBjaToSpME0cZl8kAYZjn5LQ+2UObIN9RjtmaxGHkvaK4btSZrsIQ2aAA9XhzTIcDQdBdJgmrhcPkiDHEvTkSANponL5IM0yHD0WxputSQNz0EaZCdIEKNBGmRGBdIgw9F0FEiDaeJy+SANcixNR4I0mCYukw/SIMPRb2moaUkalkMaZCdIEKNBGmRGBdIgw9F0FEiDaeJy+SANcixNR4I0mCYukw/SIMPRb2mokTJbtqEeo63IauyxpL1i2J6kyR7SoAnwcHVIgwxH01EgDaaJy+WDNMixNB0J0mCauEw+SIMMR7+l4SZL0vAipEF2ggQxGqRBZlQgDTIcTUeBNJgmLpcP0iDH0nQkSINp4jL5IA0yHP2WhhstScNLkAbZCRLEaJAGmVGBNMhwNB0F0mCauFw+SIMcS9ORIA2micvkgzTIcPRbGq5PfUy2oR6jrcxs4rGkvWLYnqTJHtKgCfBwdUiDDEfTUSANponL5YM0yLE0HQnSYJq4TD5IgwxHv6Xh2tRZsg31GO2VzKYeS9orBmnQZA9p0AQIaZABaCkKpMESeIG0kAYBiJZCQBosgddMC2nQBHhU9XKlCsgGPBztqtRHfYmbV9DVmc3yKmL93yENmkMAadAECGmQAWgpCqTBEniBtJAGAYiWQkAaLIHXTAtp0ARoSBr+lzpTtqEeo72R2dxjSXvFIA2a7CENmgAhDTIALUWBNFgCL5AW0iAA0VIISIMl8JppIQ2aAA1JQ/XUGbIN9RjtrcwWHkvaKwZp0GQPadAECGmQAWgpCqTBEniBtJAGAYiWQkAaLIHXTAtp0ARoSBouS5su21CP0d7JaOmxpL1ikAZN9pAGTYCQBhmAlqJAGiyBF0gLaRCAaCkEpMESeM20kAZNgIak4ZK0abIN9Rjt3YxWHkvaKwZp0GQPadAECGmQAWgpCqTBEniBtJAGAYiWQkAaLIHXTAtp0ARoSBqqpj0i21CP0d7PuN9jSXvFIA2a7CENmgAhDTIALUWBNFgCL5AW0iAA0VIISIMl8JppIQ2aAA1Jw4VpD8s21GO0DzNaeyxprxikQZM9pEETIKRBBqClKJAGS+AF0kIaBCBaCgFpsAReMy2kQROgIWmoYkkaPoY0yE6QIEaDNMiMCn7cTYaj6SiQBtPE5fJBGuRYmo4EaTBNXCYfpEGGYySKX7/TcF76VNmGeoz26cEHPJa0VwwrDZrsIQ2aALHSIAPQUhRIgyXwAmkhDQIQLYWANFgCr5kW0qAJ0NBKQ+X0KbIN9Rht7cE2HkvaKwZp0GQPadAECGmQAWgpCqTBEniBtJAGAYiWQkAaLIHXTAtp0ARoSBrOTp8s21CP0b442NZjSXvFIA2a7CENmgAhDTIALUWBNFgCL5AW0iAA0VIISIMl8JppIQ2aAA1JQ6X0SbIN9Rht3cF2HkvaKwZp0GQPadAECGmQAWgpCqTBEniBtJAGAYiWQkAaLIHXTAtp0ARoSBrOTJ8o21CP0b452N5jSXvFIA2a7CENmgAhDTIALUWBNFgCL5AW0iAA0VIISIMl8JppIQ2aAA1Jw+n5Jsg21GO0bw908FjSXjFIgyZ7SIMmQEiDDEBLUSANlsALpIU0CEC0FALSYAm8ZlpIgyZAQ9Jwar7xsg31GG3DgY4eS9orBmnQZA9p0AQIaZABaCkKpMESeIG0kAYBiJZCQBosgddMC2nQBGhIGv6Tb5xsQz1G++FAJ48l7RWDNGiyhzRoAoQ0yAC0FAXSYAm8QFpIgwBESyEgDZbAa6aFNGgCNCQNFfKNlW2ox2gbD3T2WNJeMUiDJntIgyZASIMMQEtRIA2WwAukhTQIQLQUAtJgCbxmWkiDJkBD0lA+3xjZhnqMtulAF48l7RWDNGiyhzRoAoQ0yAC0FAXSYAm8QFpIgwBESyEgDZbAa6aFNGgCNCQNZS1Jw2ZIg+wECWI0SIPMqBQrlEYZWYdo7/5MmYABipI/PYUK5kuh7XsOBqhVMk2BNMhwtBEF0mCDukxOSIMMR9NRIA2yxMuVKiAb8HC04/OP9iVuXkG37O96RJG1X31PfUbMpK3bdlLF0yrQiD6tqEyp4nmF8fXfsdKgiRfSoAnwcHVIgwxH01EgDaaJy+WDNMixNB0J0mCauEw+SIMMx0gUv6ShTP5Rsg31GG3r/m7RkllZ2VTjvh7Up2NDuqJaZZq/dCWt+fALmjLU7huWIA0eB/NYxSANmgAhDTIALUWBNFgCL5AW0iAA0VIISIMl8JppIQ2aAI+q7pc0lMo/UrahHqNt2989WnLtug00bNICWji1r/pbdvYhuvKO9rRi/ggqUrigx4jyxSANmkwhDZoAIQ0yAC1FgTRYAi+QFtIgANFSCEiDJfCaaSENmgANSUOJ/CNkG+ox2o79PaIll69co1YWhjzYPPq3e1oPpN4dGlDliqd4jChfDNKgyRTSoAkQ0iAD0FIUSIMl8AJpIQ0CEC2FgDRYAq+ZFtKgCdCQNBTLP1y2oR6j7dr/YLTkkuWrad36jdSvU8Po3xp3HE6tG9WmalUqeYwoXwzSoMkU0qAJENIgA9BSFEiDJfACaSENAhAthYA0WAKvmRbSoAnQkDTItjK+aMtXraE33/1MPfwc+dRp3o8GdGlMlSudGl9QgVqQBk2IkAZNgJAGGYCWokAaLIEXSAtpEIBoKQSkwRJ4zbSQBk2AIZKGL7/5gfqPnk1Lpg9Qvc7MyqLqtdvRSwtHUbGihWRBxhAN0hADrNyKQho0AUIaZABaigJpsAReIC2kQQCipRCQBkvgNdNCGjQBhkga+MHnWxv1pJ7t6lP1qn+9PenVtz6iWeP+fu5Blqa3aJAGb5yOWQrSoAkQ0iAD0FIUSIMl8AJpIQ0CEC2FgDRYAq+ZFtKgCTBE0sBd/fq7n6jXsBm0ecs2OvXkcjS8d0sqX7aMLMQYo0EaYgR2dHFIgyZASIMMQEtRIA2WwAukhTQIQLQUAtJgCbxmWkiDJsCQSYMsLZlokAZNjpAGTYCQBhmAlqJAGiyBF0gLaRCAaCkEpMESeM20kAZNgJAGWYBxRIM0xAEtZxVIgyZASIMMQEtRIA2WwAukhTQIQLQUAtJgCbxmWkiDJkBIgyzAOKJBGuKABmnQhJZL9WKF0igj6xDt3Z8pH9xyxPzpKVQwXwpt33PQckvk00Ma5JmaighpMEVaPg+kQZ6piYiQBlnKfv0itGwr3YoGadAcT6w0aALESoMMQEtRIA2WwAukhTQIQLQUAtJgCbxmWkiDJkCsNMgCjCMapCEOaFhp0ISGlQZ5gJYiQhosgRdIC2kQgGgpBKTBEnjNtJAGTYCQBlmAcUSDNMQBDVVAAARAAARAAARAAARAIEwEIA1hGm30FQRAAARAAARAAARAAATiIABpiAMaqoAACIAACIAACIAACIBAmAhAGsI02ugrCIAACIAACIAACIAACMRBANIQBzRU8ZdARmYWpaWm+JsE0cUJZGVlU1JSEiUnJ4nHRkAQAAEQAAEQAAG7BCANdvkj+1EE9h84SHWa96PZ4x+kMqWKg08CEVi47BX64adfqVf7+gnUajQVBEAABEAABEDACwFIgxdKKGOMwNTZT9NPv2ylYb1aGMuJRPoEdu35k2o16kVzJvSk/5x0gn5ARAABEPhXAtnZh2jMI49Ty/tupWJFC4EWCIAACPhOANLgO2LZBK+98zHlT0+nSy86WzZwAKL9unU73d3qIXpyxkNOrjLw9p3s7GxKS0s9gvZPv/xGpUsWpwL50wMwCvE1YejE+ZQvPZ263H9XfAECXMvlY+7HTVto7VcbqOr5lei40u6t7O3dt58OHsyk4sUKqxnGx2CrHmNoWM8WCf0d89Hab6j74Gl02snlaNrILgE+euJvGq8658+XuN+J/9bzHbv2qO/LggXyqWK//Po7PTR2jhNj6eoxF/9MdqsmpCGBxvPAwQyq2bAnnVCmJBUtUpBuuPJiqn3j5QnUg39vardBD9PnX31PJ5U7js4/+3Rq2eBWSk1x49mGOUteomnznqWU5GS66Lz/Uu8ODah0yWLEdwvvajWA2ja5na667PyEHMvvfviZbm/Wly676BzKl55GzevXpMoVT0nIvhzd6MgxV75sadW3m66uRrfdVN2JvvGFC0v6nTWvpJdW/x/VvO5SanLPzU70jTsxd8lL9PCcZ6hokUJUpfIZNLBrE3ry+Tdo9Tsf0/RRXRO6n3yDpW6L/nTVZVVo954/aeyANpSSkpzQfYo0ni+gWYg2bPyFihQqqL4bb73hMif6dvBgBg0YM5tWr/mEChUsQPfVuZ4a1b2ROvWfTGed+R9qUb9mQvfT5WMuoQdGsPGQBkGYfoeaNu85en3NJzR5aEeVauDYOXT2fxP/i4b78vHn66lt7wn06JjudEqFsjRj/nL6ZcvvNLRn4m9Tevblt2nKY0/To2O704knlKanX3yL3nzvM3Wif3L56/TCa++pfifqp0XX0VS+XBnq3eE++n7jZuo68GHVN74LmugfPuZ4rKYO70SHDh2idr0n0F23Xk01r7800btGG3/eQh36TqKnHh1EGRmZ9ODQ6fRAo9vo9FNOTPi+vfja+zR+xpP02LgeVPb4UrRk+Wra8tsO9d9Z43ok/NzsPugROuPU8uoikwWiZLEiNGTifOrTsWFCv0SCL6r5mbYa111C9zeoRVu37aIuD01Vz0lVOuPkhJ+XA8fNpd+27qDR/VtTWmoq9R4xU91gmffkSnp29hBKT09L2D66fswl7MAINxzSIAzUr3C//b6T6jTvS48/0p/KnVBapfn0y+9o5JRFtGBKH7/SGonLF2N33/8QNax7o7rbyR++A39Jzdb0/opHjLTBryTcj+vu7kzDe7WiqlUqRtPw33kZt3bj3mpJOlEv1F59+2MaP30JLX10UPRiZfr851Q/ea/1th27qVDB/Am5zSByzD0xbYC68OQPP3Oz6s0PqWSJolT+hDLUtuntasUo8vlz735KTU1RqxKJ8GFRYLnLeYeT5yZvf8mfP53O+W/irRhx+2vc14MGdW9KF5//1zHHf7vghuZ0d+1rqGe7+rT7j72UnpaakPPyky++pQeHTD/iInPGguX09Xc/0eh+rRNh2h2zjU88t5qeX7VGPRsV+fDY8RvZ/vhzH3227jsqX/Y4qnDicQnXz02bt9JdLQfQi4tGUdHCBVX7/++Tr6hJpxE0YWA7uvaKC2jrtp0JuW3O9WMu4Sabjw2GNPgIVzI0n9wrnHg8PdCodjTs8MkLqUD+fNSheR11UkzUE/2yF96kiY8upVeeGBd9XSfvtW7Yfii9/tQE2rf/IC19/nXatfsPuvaKC6ni6RUk0foaa8PGzdSy22ha9fiYf+QZ9fBievalt9UdtO0791DnVnXVFp9E+fDd6VqNe1GTe2rQXbdeFW023wXlLVh31bqa2vedqPp0T+1rEqVb0XYefcxFtiq1uPcWurPmVfTS6vdp8mPL6JnZQ6Lb6B4aM5vOO/t0tYUpqK8O5u8KvoDhC6+9+w7Q3a0G0Mi+96t5+Pv2XdSq+xgqWbwo5c+XRixB4x5qm1AP2vJq1wM9x9MLC0ZEx/KjteupXZ8J9MKCkeqCrc+IR+nCc8+kcyqeolY2E2kbZJNOw6nebdfRDVdepPrHY3ZHs770OMvtcSXV31iKXnnzQ7r95isS6rjjVYXqVSv/o90ffPo19Rg8TY0Zz91zKp5KD7a9N6Fe7/zEs6/RF9/8QA91bRIdE17JfO+jL9XqF39f8CrLyD6tlMwm0gslXD/mEuog8rmxkAafAUuE59dYtug2mp6bMzR6Z4z/xhfVz80ZRhmZmQl7oucHE+s9MFDtXeXtO5EPP99Q7vjS1LReDarXeiBdcuHZdNYZJ9OTz79O9W+/7og9rl99u1HdzeZnIYL22bX7T7q9WR91sZLz7jNvDbmn9UCaN6m3utPLJ/772g6hmWO6UfmyZYLWjVzbw1urFj39CjWrdwvVuLaaKrP++03UoN1QemnhKPrqu41qC93Tjw2JrkIE9UL66A7mdszxCf7bHzbRqL5/3c3li+/La7WhFxeOUhfVfJewRPEi6gI0yK8O3rxlG7V+cByN6d+aTvvPiTRz4fPqLm7HFncSX5BefF5FeqDxbaqPS59/Q93dzXmhE/TJuWXrDvXduGL+CLXPn8epccdhVOPaS5S8fvnND3RXq4fUM2F8B5v30PNqLf/GSCJ8Lqn5gOpbyeJFVHNZgFgW2jS5Pdr8oRMXqL73aFMvEboUbePoRx6n0iWKUeO7b4r+jZ+9ua1JHxrRpxVdcsFZ6u89hkyjK6qdG12ZToROPv/Ku2qr4/BeLVVzI7LH570zTilP/NwbP4Nz3RUXqjnJN8e6J8j4uX7MJcL8MtVGSIMp0pp5+OIz52v17u8xVn1p1r/juoQ/0WdmZdHjz7xK69ZvpDq3/I9efv0Devv9tbT4kf7Ed255K0jk5MdbevgEsnzusOj+T16a54fILr/4HArim4hmP/EirXz9A7q/YW2qVqWiavcDPcfR5RdXVuMX+fDFdvtmd0S3VGhOGd+r88XY/gMHqGnnkdTk7psof758NGTCPGrdqDbVuuFyurNFP+rUsi7975LzcvRxCHVrfQ+de9Zp6hmBZ156O7APFuc85iJblZbMeEi9iIA/vId34bJVNHdiL3WX8LYmvdVbebhvOV8dzCsyS5a/Tvfefq3vY+I1wbr1P9Lg8fOoSOEC9O0Pv6jtEdmHDlGXAVOU4EYequX98o07DKcXF45UofliJrI90msuG+Umz1qmVl5vu7k6rX7nU9rw4y+0dOZA1a8G7YbQTVdXpfp3XK+axsJUuFAB4m0/Z556UvSNNjba7SUnP5ex5LnVNGFQe7XFiufdy4vHRN++9t2Pv1DTTiPoubnD1KoKP4fTo+29CXEzgi+kW3QdpV44cMt1l6g2z1q8gtZv+PmI13A/9/I79P4nX6ktaPw9wtsgc24T9MLRdBl+XqNNrwnquTZeMeHzAr/wo2+nhsRixFtV+dmpyJZAnpf84RtMFU8/OfCrKi4fc6bnSpDzQRqCPDrHaNub760l3try1KMD1YV2Xif6ROkinwj4bgxvm+C7Zvyg2JV3dKBXloyN7gHlvlxTtxMtmtqPji9Tgt796Ev672knUYliRaJvImrT5Da6+rIqgeo2X8A8v+pddRHNz6KMmLJIjV9kW8QXX/9AHfpOVPtd+Q1LzIEv7PhVmFde+vdFd6A6dbgxfEHNF8nqlbm1r1bs+eHv5SvXHPGWGv7/xc+8SvMn9yZeqn9u5Rp18uQ73EH/8OsQ+ZWkrRv+tT2Qtyrd2rCn2tbDJ36+S/jhZ1/TxEHtFQd+sw0/YMw/UMgXPfxWMH44PGifn3/9XR1bRQoXVGP28effUv/OjaLN5GPymZffppmjuxGv6LXtNZ5eWDgqIR625RWFDT9upkfmPasuzKpVqUQrXnmP5i99OdeVBZYofiHD9f+7iFo1uDW68sCroXv+2Bt9bWsQxpCFlt+g9/1Pv1KbnuNpxfzhqr0s8k07j6Cbr66qnt9Y/c4n1KbXeLVfftMvW9UD/E3uvjnQqyp8scxSVKpkUXXzgVdS+IbQzdf8tZrJn74jZ9FJ5cqo56b4xsPHa9dTg7o30PGlSygBDOqHx+edDz5XqwyjH35c3fzi1wHzzTF+yxefH3J+eCsWv0Tjmw0/qXPiNZf/fV4L4vNTLh9zQZ1TptsFaTBNXCAf71fd+vsOtbXAy4l+6pyniU8yfHet3m3BuduZFwre7sEPifEXa+TDe5O7DpxKrzwxVvWJ99TPn9xHiYZ6E9Gr7x2xzSmvHDb+nS9Orqle5YjnF3hrEm+d4LtrnQdMoazsbKp53WX0wqvv0qknl6N2Te+w0dS4c/JbeW657tLovmveO1+rUU91d5Tf+MWSxHvnTzrxOGrdsJZajeALM35+JYi/F8A/Xsf7jCNbzB6Z+6x6UxRvmYjcJeQtLrxFjrfW8R1rfrg4sgVh0cP91B3GIH++/f5n6jV8Bi2Y3Ef9lsjOXX/QnS3704AujdU+80YdhqmVQL6Qi3wSYbsZyzc/r8FbxviV1fyMxrFeCcyCwM/h3Hx1tegbslg03v6/tTTkweaBHD6+AcEXlfwSidfXfEo/bvqVnpwxUK0c1W7ci+5vWEuNGY9V+z4T1XkgkV7VzVsgeaWIX1PNHxY77seyWYOpYIH86qF3/v7nZ/742Qd+iJpvKAX5w/OMV4TOPLW8eoC99YNj1VZj3mab24ePRX5ZCD/7EPkeyfn8VND66voxFzTeJtsDaTBJ24dc/3aiP650CWrWeYT6sj3rzJPpscdfVBc+ibTPlff98wUz32niCzC+cOG7vXzHjF9fV6hAfvWDYnx3ii8IZozuqvaHJtJn+apIm1EIAAAgAElEQVQ1tPCpVeruJ99hGzR+rrpA4RM935m6oV5XWjFveEK9jo+3jPGd6cE9mlNaWgr1HjZTXYgO7tFMDQ2P4x01/qd+m+Lt9z+nnbv/oKdffJMGdW+mVo6C/GFJ4F+/5gszvjjJeZeQL2j4zTb8/BFvQ+M7omVKFaP2zeoEuUvRtvGWCV5duPDc/6rfM6h761VKfvh3HB5bvIJYfiJ7/9/+v89p3pMv0yMjOidE33gFaMUr71LTe2pE2/vhZ9+oLXV8sXblpefT3bWupjGPPEEVz6igJJ5v0PCKJ28DCvLvIPBF2nc//EJ8g6h/l8ZqVWX24y+qC+wJg9pF+ztp1lNqJTPyzEoiDBxvX+WXK/B3PF8wv/bOJzS0Z3N104Vfq8vPH417qI2al1yGRWL0w4sT5nkAfoMSf//xClfks3DZK7T46Vfo+DIlleDddE1VtX1p4uD26hm4nM9PBXkMXT7mgszdz7ZBGvykayj2sU709dsMpto3VY++2Yb3fl5/dxf1YGqQl3BzYuMvHb7g3Lp9l3p7UrN6NdSrWfmBW34r0fK5w9UJn7drHTiQQX06/nU3KpE+/IzGoB7N1N3Pui0HqD7yFiZe6uXnAzr1m6zeIsUXoXyHfteeP9RFXZBf68lzbcFTq9Q2K77g+vKbH9XbbHjfsboAffwFWjS1rzrRc1l+282nX35LfTs2PGIbQlDHcePPv6m7m5G7hLwaxm8y47uBfJHNFwA8fu16T1R7y/nXvnmLEl948vM3Qf7wcwufrdug5I3fLMTjw3dzh/duReeddZpqOl/I3d6kD/VsX19dvPEWLF4ZC+Iq0b+x5mOPnyO6+vIq9Nb7a9U2s/UbNtGzc4ZSsSKF1NYYfotN83tvCfKQRdsWucPLb2PjZx0WTu0bfZaBnwdTN1ZGdVWr1Pzh1b7zzzmd7q51TfTB6qB2lL/7Nm3+japWqaS2o/LWOn5JBq84lCpRNNps3vo44dGlatvgcaWKU6uGtaLPIQW1bznbxWPHxxv3q0SxwuoNe/xMFJ/nZo9/8B/PTyVCn3K20bVjLtH467YX0qBLMCD1jz7R893QWxo8SG8smxjdN89Lolfc1k5dxPCXLJ/4t+/Yc8SJnpe6+SLgimqVA9Kzv5rBd/z4Ijlyodys80i1lYfvVvODYvwQ8bOzh1LBgvnVHVF+l/5/yp+g9ssH/cFN3rpTsEA+1c+b7u0e/RE4voPG48H/NrLP/dRz6HT6Zcs2Ou0/5dQFKL+TnS/qgv7hLQO86sC/fspzkOclv1aQHxjmDz+8ztuz+AKHH4jnMU2U1w3mvEvIrw7m7YKPjXtQ9YsfuP3vaRXU282YAV+EX3P5BeotPvzWnkT5fLNhk9py9cxjQ6JN5hWG9z5aR5OHdiBe7byjeV/1LEt2drb6RfCIXAS9jyzpXVvfre7M86pei26jVD94rrL08TaY5+YOV987iXT3mrdU8ZYe/h2RyIfvym/fuZsGdmsa/RtfoL7x7qc0a/ELNHVYx4R4WDrSeP4V5XMrnXbEr5jzFke+4O72wD106/WXqe1a/Gryx6f1VxKYCB8+d9/etC8tmzVIyRE/5M0vlXh4eGf1RqWcz09t/m07vfTa+0e8bSroffR6zPGNFr4Zccu1lwZ+u1nQmUu2D9IgSTNAsXgPNv+QzEuLRkVbxQ+MLXhqJfGPVb374ZfUe/hMdfea38o0fmBb9YwA371/ft5wtRLBF0H8uwiRH6IJSvdeefMjenjuM6offPH115uIzlFvQ+FX8dEhUhcCvBoxfNJC9RamyEV5UPpwrHbwGyi27dyt7rhHLiz5odtHFz6vXn/59GOD1UOr7328To0lP3ibSB++E9pz6AzVj8inXZ+JVPX8itTgzhvUn/jOdiI9CM5tZhnii5VJQzqofcp80TZp1lIldXyHcGjPlgnx8HBuc4kvxG5v1pdG9G6lHlz//OvvqXmXUfTEtP5qH3nzrqOUoPOPpm3Y+Iv6lWneEpMI2wT5d1T6jZylvu/4wdKdu/bQsscGqxstLH38MDE/K5Dod6/5gVq+K8+rzPzA7etrPlGrXpdeeLbasspCwfM054/8Bfl7hY+3CTOfVFtXedtj5MM3WfhtZTlXnPmcxq9wTaTfwHn1rY+It5KdUqEcrVv/g1pd4dceH/38VNeBDxNLfbnjS6mVah6/oP+qtNdjLnIzgrew8vHIOwx49QgfuwQgDXb5+5qdL6DLHldKHWyff7VBLbXz3Qq+6OTfRhjT/wH13mu+Czx9/nL648+96t3ld9a8ktau20CdBkxRDyHzSSVIH767wm3lixLeVz1i8kJ6atYgWvPBl9R90MNq+wffaeK7Mr2GzVDbXfj1tLl9+DV4h4gCs9WHV3/4rRosdfzAIp8EsrKyqPpt7dQDjfwGJn5NKz/YOWD0bHUHjT/8vEexooUDf2HKAnTvA4PUhViju25Sd+AHjZsTvVBjYUjUB8Ejr2iNPnA7oA3t3X+A5i9dSZMGJ5bcHX2s8GreqKmLVX/4ZM7PFPGrc9Uvgs94kpY9Oii653/CzKXqO4PfQJQoH56XfJHG34f80HfOtyzxPvlEv3vNL1/g15fyxTO/CWzjpi106UVnq18k5u1Jq974kHq1v09JYaJ++MUEjTsOj24t437w3v/bmvahFxeMVOe9RPrwdyELUOue49RKM+8OyPn8VOQHCx8d013dnJi75CV6/+Ov1HN9ifD5t2OOt63yzQi+KcE3I3786VdiQWIZ5B8OxcceAUiDPfa+Z+a3ZcxcuFz9RkDxooWpQ4s71bYBXmHgB8pyPgzH7/XmLUB8955/4+jeNoOp4Z03BH5/ec43EfEX6snlT6DLq55DI6cspvJlS6tXsrIcsUjwhTX/P8tG5GFbfgsO/z1oz0LwdjO+I8MXMHyXkMfn5cWjifcls+Dxm6L4IVX+NXCWQd7KxBc39etcR3Vr/v3rzL5PsjgS8BuS3v3oC7UNhE8ELHSRt7nwHd1EfxA858N/vPWqY7/J6jcCXPnwfONf4+UtO7n9IjiPKa8c8S+CJ9KHtyfx6t7Rb1ly4e41X3zyF3taagpdVaejeulC5C08/B3KUjh9VGJcbB5rTvEvRrMA5XxDIK9q8nkg5w/fJdKc5LZG5uXRz0/xDxTyszY3XnWx6hJLxoU3tqT3nn/4iNWXIPf3WMcc34yY8tgydVMs8lpyfrkGrwYmwiu6g8xct22QBl2CCViff/tgyfSHos8y8IXotXU70+ShHdWdJn57yhPPraZ5k3olVO947yq/8jLyg2m8jWnFq+8qaeA797wvu3rVc9UJkn91k/eW12nej/gHu/gXVYP64aV4vjibOKhd9AFGFonCBQuod3zzcyr8Clpepeg26BF1Mc6rRYnw4TfV7P7jT3U3ie9O/9uD4KmpqTRm2uPqDneifFjcr6rTgd5+ZnKiNNlzO3m/8eKnX6WOLepGfxGct0rwrzHzL4Ln/DFKz0EDUDCn9Hm5e813fF9560P1HM5tN1YP/AXbxEeXqjct8bMnfHOi/+jHlETwW3kS+cM3TfhlBJG3XEVWy/lVprw/PtE/OZ+femrFG/Tcyneiz09x33hLEz+bwr+Dk2hbPHMecyy4tRr3Vj/cF1lV4P7wuaFLq7vUClmiHXOJPvdyth/S4NJoeuwLL7VPG9lFXWDzh08iP/y0hcYOeID4oVz+0Sp+wJG3wPCHpYJfYxf0D8tA6wfHqdd2XlD5jGhzI/tA+Ye4ePsBfwF16j9F3VU8/T8nJsTrB/ltSrzVil/Dyr/xkHO/+Mgpi9SFCv8wEC/58ofvAvPWq+SU5OidmiCOHwsR/6ryf04qqx6+P9aD4Cx+vArB72zneZkvX7r6Yacgy16E9/T5z6mtWEF+21Wsc4MfzuS388ye0FOtXDa+6ya1QskrfPzw7e03XxFryECWz+vuNT9XxKt+fAHOb1367MvvaOaY7oF/0J0ffuatgSx5vAWkV/v6geSv06h6DwyiBnVuiAqtTqwg1eXvzJvrd1c3+fj5Kf5ELrT5uYeLz/9vwm7x5L7w8cQ/gJfzxzD5+cqnX3xL/QZHoh5zQZpDOm2BNOjQS9C6fMIYO20J1bvtGvpt2061F5LfPFT2+FLE+5G37dil3rDBv2LM++aTkpOUNAzv1ZJOLn98oHvNDz/zcjvfdeKHu1mMeFmTt+/k/HEmFqVnXnybnp8/PHDPbBwLMD/czl+cvMLAP7LFghCRg/vaDaEOze9UD4TzCWTk1EX02tsfU1paGt12U/WE2V9+rAfBWYBYdvnim/fT85t7TjnphOgbmAI9KR1sXL9Rs6hk8aJqq0BuvwjuSpf/7e41v/7zzub91cPSnVvVVd8j/DwOb4+5+PyKCYHgzffW0rlnnZowbxaKBSr/RkWVc/6+eRRL3aCXjTw/FWknr/p99uUGdc5L9C2eLEV8ozLyDApvSarZ8EH1PCavIiX6MRf0uZVX+yANeRFy9N/5YeIPPvmKXn37Izrt5BPV3cGc773mg/buVg/RlGEd1Rcvv/WG7yjy3uzIjzsFGQ1fYEdescd7ymvdeDldc3kV1WReabi1US96oNFtCX0Xil8zO7x3S7U3md+mNG3us+oXQ/nHqjZv2U7jB7WlJEpSW5ZuuPIi9WB10D+5PQjOJwreV56ZmRn9Vdig98P19vHDz7zSkyhvJZMaj5x3r/nB8OTkZDqxbGn1o4zN6t1Ci55eRW2b3qFe4ZpIr7SW4oM45glEVv34LYF8Lsjrt3743H7wYKba2sofvkhv1WMMDevZgsqUKm6+A3lkHDvtCeI3uPGPFuKYsz88kAb7Y2C1BXwHnn91kvd85nzvNS/Lb/l9B+3bd4DaNbtDPZDLzz08N3doQmxVygmVVxX4gavIA1S8srLyjQ9o3qT/b++842u+vz9+dNhbVe0921pVVLXUiFHE3iKSWDEjy4osI5HYIyJBJWJvQQeaUqG+NlWlVbRqVdFqlbb6e7yO772/fI0iueTzuff1/kfL/Xw+5zzf934+n/N+n/M6o+5j/2nyAcmcMaPmTRp9YCUtZPJC7WR77sJlyZUju8qWQlqxXOmiUq5UURnQq7Vs3bFPc5ihKGWWkbIQ/EF55Wbxg3baF4GUq9fo9o00SKRiQUQChZso4EQTw70Hv36kpLV9kaE36UUAL/1ffv2dddf131I88eyLWrhOZXervV5WQnx6ycqN27X7u1EL4XH/R4CDnhX8zaXXt+z/r8ugIf3nwBAW3Kt73bizj8RG+mph2ZS5K/SlFGkIeCAiv3789EX6bz07NJEGdasbwoeHGYE6DdQD3Pj9pnbYREfipVFj7uvMi3QfdEx9JX9eyZkjq8rPWlR9jOog0naSdh3SBmKwd+OWXZL8n6OC+o3N276QeUs2ya1bt6V39xZaD2HG8aC8cjP6QZvtiwB296ZEL5e5kb7WXja4h1y8fPWRktb2RYLeGInAw1I8ka6KHcIFU/w1FXlFYpJcvHRV/8QOtRkK4fmbS/9vGoOG9J8DQ1rg7j1R0w+wzY5x5Ph3cvmnqxogIN0HOfXodhswcZ5UebWMePZ0NqQfKY3CNi4UKNDbAcoM947o+A3a9AgFZhhYxX+1fAnTNDyCzVCVmBqzQuKm31W+gnwkFG66tGl4XyEudlWyZMoktd+oZOi5uzev3NDG0jiHIoCGmXPi1kn9OtWkZ8cmuuDwKEnre7uBo+gTvXLcOjd3KHZ09ukQeFCKJ1KKUROG556l3ga779WdPLQmB+p1Zhm2+M2ZxVcj2smgwYizYgCb0PV1+Li5MsC1tcqTpuy6iTb2p8+e1xxDFN1i58FMDVewOn9v10zsorTzCJBlcwKl0Csv6QzALygTQY7QTGP4+LlatzHAtY0UK3xXIeveYdlVQSdRFFO/3+gtw++qmGkOaKvjEEC+NVZA69WuovfJR0lapySDF7y2bgEyfFBXU3UsdpzZNa+n96Z4eo6YqpkClmFpDrc5YaJ1pyylt5Asr1G1vCGL5NPymzPvjBrDcgYNxpgHQ1qBXgCQi0SDqthIP6v+NVKZ3IaFS6dWDUxdSJwSOl60IT2YcscEfR+QgoUGaigch+xblkwZpaVTHXkpby5DzpnFKNi6auN23WF4v2Ht+2zFrgpUtGZP8JI7/9wRv9BobRJklv4OhoZP4xyawL9JWt8LBt3Cv9h/TGaMG+LQzOj80yWAlDn0T9m0KFyf49hlcB06QXsVdXZu8D8Xh2rigmUfyrXrvz6w7u/pWpq6sz/Jby51V+BRFgIMGvhdeGwCyJVEWhLyIc9fvCJdB4TKlmWTrcHEY5/IYB9EMXhv30jZsHC8VX4Vf4ebLBoDnfnhggwcNU2LjLEqv3rTDgkf3dfaVdpg7jzSnMtXromz6yhVwsJcYuza+6XELtko8yb5PfJ4foAESODhBP5N0jrlUZDNhN4+lN2KFMyvixEWxTfyJQFbE8DzGwFB62Z1JSn5kJw686M+AyzN8CzXu/nHbWna1Vd74DRtUEtc2jcxRd+Rh8nIp+SILIOouPWya9+XUrJoQenTvYWULFbQ1qjt+nwMGux6em3r3L7DJyR48kLp3fV9yf9SbkGB6tYVkw3dPOxxCdyre93Pf7K8U6uydGz1nuaCIufTItkKDrGLN0pUmNfjnt5QnxsxPkb++vsviQjob7UL2t57Dh6XyDH9dRUKD5fMmTPKa+VLGsp2GkMCZiDwIEnre+0OnRInx06eEZ9+nbSmAV1+YyJ9JW/uHGZwkTaakMCxE6fl1JnzMid+vQR4uVhrFlO6AhUwfH+DfFzl46S92vtn35ET1uefUd1+nN/c4IDp8ueff6uSIlSZIPKCXT5Lkzyj+mYkuxg0GGk2TGDLTz9fl2XrtsnZHy9pE6Oqr5YxgdVPZiIaHkVELZXV80Jk195jErVwrSyeHWA9ydlzl6SvX6QgF9Rs48hXp8Q7eLa8XfN1CRzWU82Hbndb9zEyemgPqVCmmPT1m6SNuzJnelHQWGdK8EDJlTOb2VylvSSQ7gRSSlqnNAZNKD28I2T1vFDJlyen/hOkoXPnzC4uHZqku900wL4JoO9SxbLF73MSL96d+gbp99KSgou+PxlffNE0kt0P+819tuuQhM1MkDXzx1ozCi5c/lny582tuy0PqnW0729B6rxj0JA6bjzKjglAcx1KUaVLFJaNW3fL3kNfW1+w4TbqAbC1ixQlrBDOXrhWsFOB5mkIpIw6UBzddcBYlcndsmOfVCpXXCqVLSGzPlir6RETRvaWXl5h8maVCuLp2lrdQF3E4a++lWCfXkZ1i3aRgOkIuA+bqEWm/V3+X3VuwowEVV/q1bmZ+oMi6ecyPGf41BDTwafBDyUAafIyJQtblby+PX1O3L0jNHXX0qEZ6a0vvPC89k0w0xgdPk93FO4NyrGrjgwKSLMjgB/r564MOB5MgEEDvxkk8C8EsLPiOjRMoid6a7fNg19+IwNHTpP4GSPlz7/+Fvdh4dqlGC/gKB7LnCmj+A/oYkimiZ/skqXrtsmimaNU9SomIVEOHP1Gt59Rr4FUCe+gWbqDYslzxUqM65Aw+XDxRG1eVbNaRatknyGdpFEkYHACUKWB8AIWHSwpj1rf0N1Plsweo+ptEbOXaJ8VCDGgvwqaNEI20zIgH23ZoTC4uzTPRARqNu8nnyydZN1Z7u0TKU71a0iHFvWtXkByHY3hsPhkpoGg4Y3K5bQZo2VA5KWrZ6hEjOkvtatXkhOnftAmt8ujgyRb1sxmcu+Z2cqg4Zmh5oXMSgA7DSFT4uT55zLoakSQt6t2jO42YKw4N60rHVvevaFiJb9xJ29Zu2CcZM+W5YHuYgv0H5H7eiY8CzZQVCpfuuh9Te0s117/8U4NIixpS/j7DR8ny7qPd2qjvzZuoyVslHkLwJ8FY16DBB5FACkgSAkcOzVO64ogrjAsaLYWZI4c3E2QDnL+4s8SGdhfXnzhBW2kWSB/Hu2bYxmteo7UfjKQVMbixYsvPP+oy/LfSeCRBNBxGc8x1Nmc/uGCjIlYIGvnj7XudqHPUWDkAlm3YJzKC89fukneb/iWfj+NPpCS5Rc6R4J93bSTOwZ2VgoVeEkGurWxmo8+K6hnROYAx/0EGDTwW0ECj0kAq3vYkkVzpqvXf5X3ewyX7WumWwvBIUX7TutBsiFugq4CYpdi9/5jUrZkEavS0py49fr3qB8w2vjmu3MyMixGEmaO1gfCtes3pH2fQA2SKpUroUHDZ6unqdnwAzfhaaGDjOYG7SEBUxDYve+YBgQXf7oq7Zq/K159O8qFS1ekY58g+XBJhFVJCXr7qDPCfQUDPWXy5smh9x2sjOLFZ2VMsCl8ppHGJoCAYccXh6VGlQqyMjFJzl34ydr4DbvTHfsGyRCP9lK/TlXB86KtR4D+N76LSPsxeo0j0omnxa6S1yuU1BTcZt38JSbSR9NzLaP7wHGqqvRu7SqaWbBxyy7NJuC4S4BBA78JJJAKAtd//U0f7h8tibAejU6VCas/0a1NvBD4hkZJ3ZqV5ey5i9ogD5rY7TzGyIqYYJWzw8p/w3feeGBjnVSYZJNDPlj+oe4uvFG5vCQlH5AOLetrR2ykSuBhMtbfQ190UNOBdIl5kynRahPwPAkJiEjill2yc89RrS+yDMghT41ZKcuiA/Ve0mPQePlwcYRkyZxRa5CQvpQy5YIgScAWBBAw9PGN1Jfraq+WkWnzVsnPV3/Vl2wMD58I7W0EZcEz318Qn5AoXQwzU6PXnkMmqP0QAMH4fM8RCZg4T39fGV98QTr3C5EMz2XQZx3+f1Kgp+F7NNli7v/tHAwanjZhnt9uCfiPi5aCL+fTFZajx08JciajwoZJoVfyaR+EiQH9NE8SqzdegbN0h6JMicJ6E4aKkVfQLEmMm2BVcjAKKKxsHv7qlO6OWDSssSWNfNCk5IOSLWsWXanBCukgt7a664I811A/94d2oDaKb7SDBIxMYM+B4xK/8iNrszfsXqIJV9P3akm3to20nqr2G5Wke7vG8sn2vVqXhC72KesdjOwfbTMXARQ9J6zeIlgk04ahMcEqELJt5wGtcUMgi10GDHwXobYHOVOzDHTFDpr0gfTq1FRTj6Pj16taIJ518BeLaEjNzZ8vt+46lClRRA5+eVLq1nzdLC7a3E4GDTZHyhM6CgHkEscuTpRPPturUolDereXKpVK680Tsm/jhntYUUBOcd2HO2XjojDNYYaKkUt7J2nWoJYpcGEbF3mr2H7GQwG9Hpo3rCWvVyil3cFR24HCOCi+YDXq5ZdyW/0Kn7VE6tR4Td6p5bg3WlNMMo1MdwJYYBgyZoamQSKvGi8u6Jsya/xQ7RyNXb41C8bKnb/vSMueIyVsVB+p9trd/GwOEnhaBBAMIEht3bSuimi0ch0loX5u1l0FfG879AkS774dtd4PdTsfJe2R9+pUk+JFCjwts2xyXhRDQyUQ9YadnBuovag5auEyQmZP8LLuQuBieI6jTxOChiqVykjNahVsYoOZTsKgwUyzRVtNQQCr7ujyalFGwQ0VD3jPnq31RRvpP8s3JKkCkxkGHhIuQyZIi0Zv6WonhuWGCqUJPEigvoSULBSRZcz4oqpvTA0ZqFK02OLeGB/20OJwMzCgjSTwrAggSNi0dbfsP3pSKpUtbk09auMeIH6enfWFZe6iDZpTjt1M3F8gDY0ao5pVK0q9t6o8K1N5HQcksDLxM0nee1QmBw2weo/gdu2Hn8vCaSP073Df37Zzv0Bc49XyJbWw2kwD6YDXf7khgd6uVrPPX7yiwdIgtzZapxi/6mMpX7qYDPFoZybX0mwrg4Y0I+QJSOB/CWA1Ag9+yzZt3IqPdJUmfsYo3QJt6TJCZo4fYm2ug79DfrJZUgywVd25X7Dqdjs3eVu6tW0saHjXxTNEcz6RkoWCs7mLEuXGb7+LU703pX2LevyakAAJpJLA4jVb5fM9h3XlEykjbd0DtDaqwEt5ZFjQLPn7zh1p0aiObN62W0oVL6Rpgxwk8DQIIGUOK/GWvg3YhWjhMlxTc1EbgEL93Dmz6eIRAto2bgG6I2apG3gaNtnynPAPtUJTQwb9T3d2KJyVLVXY2lsFi2lvtfSUXYlRDqVexqDBlt82nosEtMPyLVU0ufH7TcmTK7t8lPQfWRo1RhWIoNxw5ep1CfF1E/RAQB0EVjAQMGA1BkoURh8ICLp4huqqp6WZHXYY0MfC0hQOPrh5hQsa5aEwHPUcHCRAAqkjgKChTo1XpUTRVzQ1sGjhl8Wzp7MsX/+phE6N01RIFERjscKpi49sig/TlzYOEnjaBCZHL5dfb/yuq/LewbPlu7PnJW+enFLklfzSo4OToJEhngEpU1aftk22Pj9SkvCMW//BOOvvCs9BZBVsTgg3zYKfLbgwaLAFRZ6DBB5AABKt0LXe+Z+jmv8JNYou/UO0jX3O7Fm1rgFa0O5dmut2bo/B4yUmwscUmtcIBuCDZdRrO0RWzA22PhiwEtWwwzDVkkdRGT5/4MhJzRfFiw8HCZDAkxNArVRv30jt0ItGksgjx/3j0LFv5diJ09K/p7N4jZmp0sgIGvA7vH37L8mdK7teDKuoff0nyYQRvbW4k4ME0koAQQK+Xzdv3tLFpC3LJqlk97dnftTvYpVXy+jzz6wDgTikZhGkN6hb3eqGu/dEfX6nbHxnVh+fxG4GDU9Ci58lgVQQQIEVHuDI/69csbT06txMkBe6aNUn2nm5bfN3pbNzAxkVHitN69fU3QYEEbjxZs2SKRVXfPaHNO/ur12zixZ6WS+OFK3T31+UyUGeguZ42FFB2hIeJGis49Wnw7M3klckATsggHsDaoYwmnb1U9lj7PIhoIDoAO4ZSBNEWmTUwnWSM0c27eAb4tNLVm7crlLKcyPuymZykICtCNz847a07jVKQvzcpFa1irpgBtXAtQvGmqovdVgAAAuSSURBVFqmFClWkGKFMIFloKv77IVrdaHM0XbRGTTY6hfD85DAvxDACt+02JWaa4xgAFudVV8roykFC5ZulqRdB1WDfeXcYNlz8LjMX7pZ8yTfrFpBX7ChuGTksX33IZkcvUK6tG4gl65c0xeW9R+Ml0yZMgq61/bu3kLVlXAD7uUVrtrYkHTlIAESSD2BmfPXyJVrv0jAUBfry8ut23/KpzsPaG+HBVP8pWCBfLIiMUkuXrqqf86f4i+lixdK/UV5JAk8hMAP5y/L9NhVmqKLwvxu7RqJW+fmdsULi4AoiB7r726qnhS2mgQGDbYiyfOQwBMQiI7foNJ1lvb1Fy9fVbUJ1AgMCZihOw/QY58Tv15On70g4aP7PsHZ0+ejkNnbe/C4+lG6eGH1DSovh4+d+m9R3B3x6d9ZwmYulg4t6mnHzflLN0nLxnWYKpE+U8armpwAJI4jo5apchlSJdCIEfVR2PlDSggWHTCQYlHdyUMlJRGwc5DA0yaAXa9hfTroIpk9jWvXb6gqFPozOeJg0OCIs06f050AcvxRKOxUr4Y+yHPluJtugPFp8gHdfcCKIBrn3Fs/kO7GP8IApEkUyJ9XFaFQtIngBypL+4+ckElzlss3p8/J1uWT5cKln6XbwLHi3KSuXL3+i3Rp3UhTlzhIgASejAAaMp46e17lWJFj7jliqhZoWgaaWA0aPU02J0w0VAf6J/OSnyYBEkhvAgwa0nsGeH2HJYAiRQQH6K6JLpRonmZJQxo3LV6yZ8tqeg1o6HdjFdSyU4IVz+PfnFElKQ+fCG2KN9i9rVy+cl3QZAc9HzhIgARSTwC7li6Dx8umReFaM4XfHLpKN29YW3cw7x2Qg278bo3UX5BHkgAJOAwBBg0OM9V01OgExkTMl8bvvqmdk1FU1rCDl6qgmHl7F+kTQZEfCF5kurRpqAVy2bJm1kBp1oI1siw6UHdTOEiABGxHALUO2Nlr3ayuJCUfklNnfpRVsSEaRKQcu/cfE/+x0ZpqUfDlfOJUvwZ/j7abBp6JBOyOAIMGu5tSOmRWAmiK4xsaJcUKF1Dp0m2f75fV80LtQgN6z4HjsmXHPunn0kpyZMuihWTIua5RpbxZp4t2k4ChCUCC9dSZ81oXFeDlogF7ygFxhnYeY6RypVKaIoj7zbGTpyUm0peBg6FnlsaRQPoRYNCQfux5ZRJ4IAG8YCNVp0HdapInVw67owS52eS9R2Vy0AC7840OkYDRCEDFpmLZ4veZtXTdNvnks70SO8nXujCBOqs+PVqqPDIHCZAACdxLgEEDvxMkQALPlABWOFHPkSNFc7hnagAvRgIOTgDiCi1dRsiCqcOlVLGCSgNSrU26+ErCrNHa9+HGbzfl8FffSpGCL0uxwnf7r3CQAAk4NgEGDY49//SeBEiABEjAwQhMmJGguwvDB3a1ej4nbr3WPkwM6KcNGVHrgG7u0N5/rUIp/ayjNbJysK8F3SWBRxJg0PBIRPwACZAACZAACdgPgYNffiOliheyyq9CqKB97zGyIiZYFdxa9xqtimeWNCX/cdHaEbdFo7fsBwI9IQESeGICDBqeGBkPIAESIAESIAH7IYBdhRLFXpH+Ls7acPHkqXMyYWRvq4MbPk7WTvUQL+AgARJwXAIMGhx37uk5CZAACZAACUhMQqLKrmKXYXT4PHn7zdekWYNaVjIBE+dL0UL5pU/3loLO7+i/kiVTRmnpVEdeypuLBEmABByEAIMGB5loukkCJEACJEACjyKwZO1WrW0YNaSHfvTA0ZMyePR0WTN/rKDz9MBR06RHeycNMFZv2qFpTOVLF33UafnvJEACdkCAQYMdTCJdIAESIAESIAFbEEBDRr/QOaqeBBWlT5MPyvgRHvJm1YrSvLu/jBjUTRq8XU0vte/wCYldvFGiwrxscWmegwRIwOAEGDQYfIJoHgmQAAmQAAk8awJffn1afjh/SWpWq6j9YnZ8cUSiFq6VxbMDrKacPXdJ+vpFyuaEifp3kFK+ffsvyZ0ru/4/5JX7+k+SCSN6S/58uZ+1C7weCZCAjQkwaLAxUJ6OBEiABEiABOyNwMatu1WKNXBYT6tr0fEbNJUJKUpxKz6SqIXrJGeObFLt9bIS4tNLVm7cLknJB2RuhI8ec+LUD1KuVBF7Q0N/SMBhCDBocJippqMkQAIkQAIkkDoCP/18XVyHhkn0RG9NW4Js68CR0yR+xkj5+tvvZWrMSlkwxV8KFsgnKxKT5OKlq/rn/Cn+Urp4Idm6Y7/MiV8vK+YGpc4AHkUCJJDuBBg0pPsU0AASIAESIAESMD4B7DSETImT55/LIL/fvCVB3q5Sq3olrXWAHOubVSuoE3fu/CPVnTykk3MDrYG4fftPce41SsYN95Dqr5czvqO0kARI4IEEGDTwi0ECJEACJEACJPDYBK5c/UXrHNAh+ruz58VzxFTZnBBuPX7/kZMyaPQ0rXXImT2rFkt/dfKMTAr0fOxr8IMkQALGI8CgwXhzQotIgARIgARIwBQE0E3aZfB42bQoXJ5//jndZXAdOkGaN6wtnZ0bCNKa2roHyLI5gZq6xEECJGBeAgwazDt3tJwESIAESIAE0p3AzPlrZP+RE9K6WV1JSj6kxdGrYkM0iBgVFiuFCuSTAb3ayPFvzsr0eavk+i+/iXOTt6Vjq/fS3XYaQAIk8PgEGDQ8Pit+kgRIgARIgARI4AEEjp04LafOnNdi5wAvF6lVraIc/fo7GRowQzbEhcn3P16SPr6RWtdQtmQRmTJ3hZQvU1RcOzYlTxIgAZMQYNBgkomimSRAAiRAAiRgdAKoXahYtria2W3AWOnatpG8j1Sl/iFy7foN6dCyvri0d5JLV66Jd9AsWTon0Ogu0T4SIIH/EmDQwK8CCZAACZAACZCATQmc+eGihM1crN2iUdfQ0mWEbFs5VZat2ybo+VClUmk5f+mKzBo/VI58dUpWb9oupUsUlrbN35WsWTLZ1BaejARIwDYEGDTYhiPPQgIkQAIkQAIk8AAC2GFo7TZati6frHUOP1/7VabHrpKG71SXd2pVlsadfSTYx1VrHjZ8nCwzxw/VXhAcJEACxiLAoMFY80FrSIAESIAESMDuCARPXijPZcgg3v063beT0L53oPZ5QFrT7n3H5I9bt6V+nap2x4AOkYDZCTBoMPsM0n4SIAESIAESMDgBSLHGJCTKqo2fSSunt2WgWxurxeguHRA+T+sbsmXNbHBPaB4JOC4BBg2OO/f0nARIgARIgASeKYG//74jN/+4JdmzZZHELbukRaO39Ppz4tbL1eu/agdpDhIgAWMSYNBgzHmhVSRAAiRAAiRg1wSGBc2W/PlyyWD3dloMPXvhWombPtKufaZzJGBmAgwazDx7tJ0ESIAESIAETErgn3/+kWXrP1XlpFu3/5QxXj3ljcrlTOoNzSYB+yfAoMH+55gekgAJkAAJkAAJkAAJkECaCDBoSBM+HkwCJEACJEACJEACJEAC9k+AQYP9zzE9JAESIAESIAESIAESIIE0EWDQkCZ8PJgESIAESIAESIAESIAE7J8Agwb7n2N6SAIkQAIkQAIkQAIkQAJpIsCgIU34eDAJkAAJkAAJkAAJkAAJ2D8BBg32P8f0kARIgARIgARIgARIgATSRIBBQ5rw8WASIAESIAESIAESIAESsH8CDBrsf47pIQmQAAmQAAmQAAmQAAmkiQCDhjTh48EkQAIkQAIkQAIkQAIkYP8EGDTY/xzTQxIgARIgARIgARIgARJIEwEGDWnCx4NJgARIgARIgARIgARIwP4JMGiw/zmmhyRAAiRAAiRAAiRAAiSQJgIMGtKEjweTAAmQAAmQAAmQAAmQgP0TYNBg/3NMD0mABEiABEiABEiABEggTQQYNKQJHw8mARIgARIgARIgARIgAfsnwKDB/ueYHpIACZAACZAACZAACZBAmgj8H9/Akqf8Yp6yAAAAAElFTkSuQmCC", + "text/html": [ + "
\n", + " \n", + " \n", + "
\n", + " \n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = go.Figure(data=go.Heatmap(\n", + " z=ing_act,\n", + " x=ingredients,\n", + " y=actions,\n", + " xgap = 2,\n", + " ygap = 2,))\n", + "\n", + "fig.update_layout(\n", + " yaxis = dict(\n", + " scaleanchor = \"x\",\n", + " scaleratio = 1,\n", + " )\n", + ")\n", + "fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "type": "heatmap", + "x": [ + "noodles", + "boiled noodles", + "cheese powder", + "butter", + "milk", + "soup", + "drained boiled noodles", + "tuna", + "corn", + "drained tuna", + "drained corn" + ], + "xgap": 2, + "y": [ + "noodles", + "boiled noodles", + "cheese powder", + "butter", + "milk", + "soup", + "drained boiled noodles", + "tuna", + "corn", + "drained tuna", + "drained corn" + ], + "ygap": 2, + "z": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1 + ], + [ + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1 + ], + [ + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1 + ], + [ + 0, + 0, + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1 + ], + [ + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ] + ] + } + ], + "layout": { + "autosize": true, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "autorange": true, + "domain": [ + 0, + 1 + ], + "range": [ + -9.940298507462686, + 19.940298507462686 + ], + "type": "category" + }, + "yaxis": { + "autorange": true, + "domain": [ + 0, + 1 + ], + "range": [ + -0.5, + 10.5 + ], + "scaleanchor": "x", + "scaleratio": 1, + "type": "category" + } + } + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAw0AAAHCCAYAAACtwCWoAAAgAElEQVR4XuydB3hUxfrG32TTC4FIFUUFC/IXr3AREEERpagoIiq9Kb1DqCEUaQkQQu+9NwFBBBFBEBWwoahYEBEUAYFAKOmb/J8ZbpZECLun5Zzdfc/z8FyzO/OV3ze7d96dmXN8srOzs8GLBEiABEiABEiABEiABEiABPIh4EPRwLFBAiRAAiRAAiRAAiRAAiRwOwIUDRwfJEACJEACJEACJEACJEACtyVA0cABQgIkQAIkQAIkQAIkQAIkQNHAMUACJEACJEACJEACJEACJKCeAFca1LNjTxIgARIgARIgARIgARLwCgIUDV5RZiZJAiRAAiRAAiRAAiRAAuoJUDSoZ8eeJEACJEACJEACJEACJOAVBCgavKLMTJIESIAESIAESIAESIAE1BOgaFDPjj1JgARIgARIgARIgARIwCsIUDR4RZmZJAmQAAmQAAmQAAmQAAmoJ0DRoJ4de5IACZAACZAACZAACZCAVxCgaPCKMjNJEiABEiABEiABEiABElBPgKJBPTv2JAESIAESIAESIAESIAGvIEDR4BVlZpIkQAIkQAIkQAIkQAIkoJ4ARYN6duxJAiRAAiRAAiRAAiRAAl5BgKLBK8rMJEmABEiABEiABEiABEhAPQGKBvXs2JMESIAESIAESIAESIAEvIIARYNXlJlJkgAJkAAJkAAJkAAJkIB6AhQN6tmxJwmQAAmQAAmQAAmQAAl4BQGKBq8oM5MkARIgARIgARIgARIgAfUEKBrUs2NPEiABEiABEiABEiABEvAKAhQNXlFmJkkCJEACJEACJEACJEAC6glQNKhnx54kQAIkQAIkQAIkQAIk4BUEKBq8osxMkgRIgARIgARIgARIgATUE6BoUM+OPUmABEiABEiABEiABEjAKwhQNHhFmZkkCZAACZAACZAACZAACagnQNGgnh17kgAJkAAJkAAJkAAJkIBXEKBo8IoyM0kSIAESIAESIAESIAESUE+AokE9O/YkARIgARIgARIgARIgAa8gQNHgFWVmkiRAAiRAAiRAAiRAAiSgngBFg3p27EkCJEACJEACJEACJEACXkGAosEryswkSYAESIAESIAESIAESEA9AYoG9ezYkwRIgARIgARIgARIgAS8ggBFg1eUmUmSAAmQAAmQAAmQAAmQgHoCFA3q2bEnCZAACZAACZAACZAACXgFAYoGrygzkyQBEiABEiABEiABEiAB9QQoGtSzY08SIAESIAESIAESIAES8AoCFA1eUWYmSQIkQAIkQAIkQAIkQALqCVA0qGfHniRAAiRAAiRAAiRAAiTgFQQoGryizEySBEiABEiABEiABEiABNQToGhQz449SYAESIAESIAESIAESMArCFA0eEWZmSQJkAAJkAAJkAAJkAAJqCdA0aCeHXuSAAmQAAmQAAmQAAmQgFcQoGjwijIzSRIgARIgARIgARIgARJQT4CiQT079iQBEiABEiABEiABEiABryBA0eAVZWaSJEACJEACJEACJEACJKCeAEWDenbsSQIkQAIkQAIkQAIkQAJeQYCiwSvKzCRJgARIgARIgARIgARIQD0Bigb17NiTBEiABEiABEiABEiABLyCAEWDV5SZSZIACZAACZAACZAACZCAegIUDerZsScJkAAJkAAJkAAJkAAJeAUBigavKDOTJAESIAESIAESIAESIAH1BCga1LNjTxIgARIgARIgARIgARLwCgIUDV5RZiZJAiRAAiRAAiRAAiRAAuoJUDSoZ8eeJEACJEACJEACJEACJOAVBCgavKLMTJIESIAESIAESIAESIAE1BOgaFDPjj1JgARIgARIgARIgARIwCsIUDR4RZmZJAmQAAmQAAmQAAmQAAmoJ0DRoJ4de5IACZAACZAACZAACZCAVxCgaPCKMjNJEiABEiABEiABEiABElBPgKJBPTv2JAESIAESIAESIAESIAGvIEDR4BVlZpIkQAIkQAIkQAIkQAIkoJ4ARYN6duxJAiRAAiRAAiRAAiRAAl5BgKLBK8rMJEmABEiABEiABEiABEhAPQGKBvXs2JMESIAESIAESIAESIAEvIIARYNXlJlJkgAJkAAJkAAJkAAJkIB6AhQN6tmxJwmQAAmQAAmQAAmQAAl4BQGKBq8oM5MkARIgARIgARIgARIgAfUEKBrUs2NPEiABEiABEiABEiABEvAKAhQNXlFmJkkCJEACJEACJEACJEAC6glQNKhnx54kQAIkQAIkQAIkQAIk4BUEKBq8osxMkgRIgARIgARIgARIgATUE6BoUM+OPUmABEiABEiABEiABEjAKwhQNHhFmZkkCZAACZAACZAACZAACagnQNGgnh17kgAJkAAJkAAJkAAJkIBXEKBo8IoyM0kSIAESIAESIAESIAESUE+AokE9O/YkARIgARIgARIgARIgAa8gQNHgFWVmkiRAAiRAAiRAAiRAAiSgngBFg3p27EkCJEACJEACJEACJEACXkGAosEryswkSYAESIAESIAESIAESEA9AYoG9ezYkwRIgARIgARIgARIgAS8ggBFg1eUmUmSAAmQAAmQAAmQAAmQgHoCFA3q2bEnCZAACZAACZAACZAACXgFAYoGrygzkyQBEiABEiABEiABEiAB9QQoGtSzY08SIAESIAESIAESIAES8AoCFA1eUWYmSQIkQAIkQAIkQAIkQALqCVA0qGfHniRAAiRAAiRAAiRAAiTgFQQoGryizEySBEiABEiABEiABEiABNQToGhQz449SYAESIAESIAESIAESMArCFA0eEWZmSQJkAAJkAAJkAAJkAAJqCdA0aCeHXuSAAmQAAmQAAmQAAmQgFcQoGjwijIzSRIgARIgARIgARIgARJQT4CiQT079iQBEiABEiABEiABEiABryBA0eAVZWaSJEACJEACJEACJEACJKCeAEWDenbsSQIkQAIkQAIkQAIkQAJeQYCiwSvKzCRJgARIgARIgARIgARIQD0Bigb17NiTBEiABEiABEiABEiABLyCAEWDV5SZSZIACZAACZAACZAACZCAegIUDerZsScJkAAJkAAJkAAJkAAJeAUBigavKLMxSf59IcUYw7RKAiYRKFEkCOeT0mDPytYUQUSoPzLs2UhOzdRkJyjAhpBAGxKvpGuy4+MDlCwSjNOJ2j+zRSMCkXQtAxmZWZpiCg/2A3x8cCU5Q5OdAD9fFAr1l3XTepWKDMaZxBRoqz4QGR6A5DQ7UtPtmkIKDfKDn81H8tZy2Xx9IOp29mKqFjPsSwKWI3DnHcGWi8mTA6Jo8OTqGpwbRYPBgGledwIzEg5gRsJB1XZ79KuGHv2qQ6sdEUCOrYCAmfAPnKU6poy0bkhP7w5PsyOA6J2b1rrpVX+97OQeR3rlpnogsiMJmECAoqFgoVM0FCxvj/JG0eBR5fSKZPSaWGm1Q9Hg2nCjaHDOSS8BkmPHuUe2IAHrEKBoKNhaUDQo4L12824cPX4KMX1aK+hlXFOz46FoMK62tGwMAa2Tfb0maBQNrtWXosE5J73GJEWDc9ZsYT0CFA0FWxOKBgW8tUzS+46Ygdav1Uflig8o8Hj7plri0SMIigY9KNJGQRKgaMiftt4TdK3bpUSkesdklfrrNdHPLT71yq0gP4/0RQJaCVA0aCWorD9FgwJeWibp3//0O8recydCQ4IUeKRo0A0WDZEAoPksghGTPa2Ta70n1laJh6LBtY+sXmOSKw2u8WYraxHwdNGwd/93GDB6NpZNi0b5+8uYDp+i4TYluHDxMobGLcDvJ/5GyeKRqFzxQVy9liK3J81fuRVhocH4/MsfcPDQT1g7ZwSKRIRj8Lh5OH7yNDIz7Wj2Sh10bNlQeug0IB4dWjRE1Url5X/XrlEJe/d/i+SUVAQHBWLisK6IKBQq2wrbm3d8Brs9Cy1ffQ6tmtSVr98unn+nIQZawrx1SLx4GaVLFsXq2cNlkwWr3sfGbfuQabejWqWHEd2rJUKCg/DdkWNYt+VjmeeqjR8hqktTPFD2Lsxb8R5KFovEiVNncSExCW3faIBXGtSUtrjSYPrnlwEoJKDXr7Fa7YiweRDaefH0FkRa66b3BF1rPLnHkVZbFA3OxyNbWI+AJ4uGJWs/wMefH0JKahpGDXiTosF6wy9vRP1HzcbddxZH7w5NkHjpClp0G42aVSs6RMOKDTsxZlAH1KpWUXbMysrGtz8eleLifGISGrYZgm0rxiOycPhNosHf3w/TRveCzeaLCTNXIywsBN3aNsIHH3+BNZt3Y+6EKCk8mncbjdED38R/KpTD7eLJHfmpM+fRsvsYLJw0AOXuLS1jFzFs3bkf67fuwey4fggOCkDs9FWw2+0Y1reNFA1dByegVZN66NSqIfxsNvmayHn1rGF4tEI5KVpeajMEezZMQUCAP0WD1Qcw47uJgF4TK612KBpcG5wUDc456S1knHtkCxKwDgFPFg3iB+lK/3c/3oqaiKG9W1E0WGfY3TqSKg06Yfc7U1AoLEQ2mLZwAy5fSXaIhqO//4UJw7rkm4aYuItCV3jw3ptEQ5MXn0L92lVl3+27D2LP/m8xfmhn9Bw6FY2fr4U6NSvL92Yu3oSs7Gz0fPNV3C6e3EEsXb8Dp06fl6sIua/u0VPw6vNP4dla120nXb6Ges374+D7s6VAEOcudq1LgI+4qTsgXxs2fiG2LB3nMCOE0KzYvihTujguXdV273Cr15/xeR6ByRM/x+QJ+1Un1nfgE+g7oAa02hEB5NjysU0HbDNUxwR7D2Tbe8Lj7AgiOuemtW561V8vO7nHkV65qR+I7EkCBU+gcJh/wTstYI+teoyV805uTypg8ErciW1DNRv1xDcfznd0W7nxI7n1KGd7UlpaBnq82djx/p9//4O5y9/D2XMXxTOLIM4xzJ80AI88dN9NouGtFi/K7UHi2rHnS3y490tMGtENb3QeKVcGAgOufxDS0jNQ96kq6Plm49vGkzu3ibPXILJwIbzV/IU8Kb/WcQRG9GuLig+XdbxeqV5HfLZ5Bo4e/wuT5qyV++ZyLiEa/v3ay+2GYsqoHihbphSS07Q9uEpJPdiWBPQgEB/3OcQ/tVf/wTUg/mm1I/zn2MrCdNh9pqsNCbbsnvBFT3iaHQFE79y01k2v+utlJ/c40is31QORHUnABAIhgX4meC1YlxQNBctbtbf/1u+ETzZNcxxenrV0szwjkCMa0tMz0L39DdEgJvxtXquPhnWfkD5f7zQSI6La3lI05Jxv+Ldo6BE9FU0bPYNa1R69Ke7bxZO78eI123HmXCKG9My70tBlUAJeb1g7z0pD3WZR+GLbHLmqkDB3HZZOHZJHNPz7tdyigWcaVA8tdjSJgNZtRXptBRHp80yD80HA7UnOGek1JnmmwTlrtrAeASO2JyWl3vhhtSAzjgj6/ZbuKBoKsgoafPUbOQsPlC2Nrm0a4VLSVbTqORbVK1fIVzQ890Y/TH67h/wl/+vDv+KtqAlYMWOoItEgzjSsfneXPO8gDkYLv2J7kjiTcLt4cqd54q+zaNs7FkumDMa9d5eUKx8lihXBex9+jnXv7cHcCeJMQyDiZqxCekamXH2gaNAwUNjVbQhQNORfKr0n6FrvwiQi1Tsmq9Rfr4l+bvGpV25u82FmoCQAwBDRkGySaAihaHDrQS0OM4u7Jx374xSK3lEYz9SohHMXLuUrGt7fdQCT562XKxOV/u8BpGdkoMWrzykSDQKYOJOwetMueWelwoXCMC66o7Rxu3j+DVpsebp+BuOavHvSmjkjZBOxfUrcJcnX5ouqj5VHdK9WMl6KBrceqgzeRQJ6Tay02uFKg2sFo2hwzkkvAcKVBues2cJ6BIwQDZevmiMaCoVRNFhvhDEi3Qhwe5JuKGmogAhonezrNUGjaHCt4BQNzjnpNSYpGpyzZgvrETBCNFxJMkc0hEdQNFhvhDEi3QhQNOiGkoYKiABFQ/6g9Z6gc3tS/qz1mujnFp96je0C+ijSDQnoQsAQ0XCxnC6xKTUSXuSY0i4F3p4Pdytw5J7jkKLBc2rpLZnoNbHSaocrDa6NOL2FjNa66TXZ18sORYNr44itPJeAEaLh6gVzREPYHRQNnjtSmRkf7sYx4HYErDJppGhwbehQNDjnpJcA4fYk56zZwnoEjBAN1/4xRzSEFqdosN4IY0S6EeBKg24oacgiBEoUCcL5pDTYs7I1RRQR6o8MezaSU7U9yyQowIaQQBsSr6Rrikc8N6ZkkWCcTkzRZEd0LhoRiKRrGcjIzNJkKzzYD+KBNleStT0kMsDPF4VC/WXdtF6lIoNxJjEF2qoPRIYHIDnNjtR0u6aQQoP84Gfzkby1XDZfH1m3sxdTtZhhXxKwHAFDRMMZk0RDSYoGyw0wBqQfAYoG/VjSkjUIUDQ4rwNFg3NGFA3OGbEFCehBwAjRkPz3/XqEpthGyJ2/Ke5T0B14pqGgiXuQP4oGDyqml6TC7Un5F1rvrUA8CJ0/a722FAkPetni9iQv+RL0sDSNEA0pf5ojGoLvpmjwsOHJdHIToGjgeHA3AhQNFA0zEg6qHrZ6T9C1jkeKBtWlZEcPIWCIaDhhkmi4h6LBQ4Yl07gVAYoGjgt3I6B1kqbXpDH3ZE/rL/JWWyHQKx7BSC9bOXasUn8jxpFeubnbZ5rxejcBI0RD6nFzREPQfRQNHjWan2rcC5uXjEWRiHBL5BX19izUe/px1K/9uCnxUDSYgp1ONRDQa2Kl1Q5Fg2tFpGhwzkkvAcLtSc5Zs4X1CBghGtJ+e8CURAPvP2qKXyVOeaZBAS21ouHIr39g+qJNmB3XV4E3503zEw3HT55GVlYWyt1b2rkRDS0oGjTAY1dTCGid7Os1QaNocK38FA3OOek1JikanLNmC+sRMEQ0/GqSaHiQosF6I0xDRGpFQ0pqOn79/U/8p4K+t/HKTzTEz1mLiuXLGr4CQdGgYTCxqykEKBryx673BF3rtisRqd4xWaX+ek30c4tPvXIz5YNJpySgkoARoiH9Z3NEQ0B5igaVw8Aa3TZu+wTzV26Fv78/6j9dBZs++BTr542U25M6DYhHu6YNED97La4lp2LH6onYtH0fFq3ehtT0DNxRpBDih3fFXaWK4bsjx5Awdx2WTh0i/3veivdQslgkTpw6iwuJSWj7RgO80qCmTDo5JRWjJi/Ddz/+hqDAAET3aoXHHysv3/v+5+MYGb8YKalpqPDgvcjMtOP5OtXyiIP3dx3A2KnLER4agkLhoZg4rAtEHiLm9s2el3ZOnjqLHkOnYcuSsfLv597oh9av18f+r37A+cTLqPTI/Rjau7V87/CRYxg3bQUuJl2Fr6+vjKdWtYryPYoGa4xTRuE6Ab0mVlrt5J7saZ1c6z2xtko8FA2ujWu9BAhXGlzjzVbWImCEaMj40RzR4P9/FA3WGl0Kovn95Gm07xOHtXNHyAn+0vU7MGHmany6ebpDNFy6fFUKgzKlS0jLvxz7EyWLRyIiPBST5qyTk/uYPq1vEg0tuo3G6lnD8GiFcrhw8TJeajMEezZMQUCAvxQMYSFB6Nf5DRw78Tc6RE3A+8vjpHB5vuVAjBrQHjWqPIIffjmO5l1HIX54t5tWFAaNmYs6NSs7XheC5Xai4bG6HdDzzVfxVvMXYLdnQcQ3oFszVPnPQ/jn/CWkpqXJHPcdPIyJs9c6xMYZPihIwYhiUysQmD7pAMQ/tVfPqOoQ/7TaEf5zbPn7z4RfwEy1ISEzvTsyMrrD0+wIIHrnprVuetVfLzu5x5FeuakeiOxIAiYQKFkkSHevGd8/qLtNVwz6V/zVlWamtuGZhnzwL1qzDWfPXcSQni1li4yMTFSu3xGfbJrmEA11n66C1xvWvqWFz7/6ASs3foSZ4/rcJBqGjV+ILUvHOfo1bDMEs2L7okzp4qjesJtctRDCQ1xte8eia9tGCA0JxoiJi7Bx4WhHv9Y9x6JVk3q6iIbd6ycjsvD1A95vJyzFIw/dhyYvPpUnt4xMO2q81B1fbp8jX8/S+NRcU0c+nXslgbhxnyJu7Geqcx889EkMjq4JrXZEADm20rOmIi1rmuqYAn17IcC3NzzNjgCid25a66ZX/fWyk3sc6ZWb6oHIjiRgAgFfXx/dvWZ+Z45o8PsPRYPuxSwogxNnrUFkkULy1/ecq8bL3eWv/jnbk95q8SKqVXrY8f76rXvw0SdfIzs7G0mXr8n+4vDzv7cnTZqzFsumRTv6vdxuKKaM6iFXNB5/vjPuvbuk4z2x9UlsCQrw98OazbswZ3yU470+w2fctD1JvOlspeHEX2fRM+bG9iSx0nDow/nw8bn+4RszZTkeuK80mjaqg4OHfsLKjTuRmpou3/vm+1/x1Qfz5H9ze1JBjUb60YuA1m1Fem0FEfnk2LLKdiCrbXMSjPSOySr1N2Ic6ZWbXp812iGBgiBgxPakzG9MEg2VKRoKYswY4kOsNFxIvCy36YhLbNupXK8j9myc4hANHVo0RNVK188b7N3/HWYs3oRFCQMRHhaCPZ9/i7VbPr6laMg535ATeI5oKFumlFxpEL/6hwQH5slLnGcYlbBUnqnIudr3jUOzRs/evNIwdi7qPHlje9LUBRsQFhrsEECHfjiKEfFLHNuMhGj4ducCh90c0dDgmWpyS9TKmTG4r0wped5CHAanaDBkyNFoARDQa2Kl1Q5Fg2vFpmhwzkkvAcIzDc5Zs4X1CBghGuxfmSMabFUoGqw3wlyM6Lfjp9B54CSsnj0cxYsWxqpNu+QB49xnGnKLBnEIeseeL6VISEvPkL/2p2dkKhYN4kxDYIC/PNPg72fDyVP/oFTxSBm1mMDHRneSB6N/OnpCnmkYH9PlJtEQO32lFDZd2rws+4nYxHmEhJHd5d9i+9HXh391KhqerFoRzbqMwodr4qWIWbh6G+Ys24wvt8+VdrjS4OJgYjPLENA62ddrgkbR4NqQoGhwzkmvMUnR4Jw1W1iPgCGi4YuHTEnUVvUXU/wqccozDbeh9c7WvfLuSTabL56pUUlu1Zkf3/+WKw3iV/jew2bgj7/OoGhkBFo3qYf3dn6uWDQIO2Jr1CcHDiM9I0NuVZo7ob+ctIttTm9PWiLv1vRg2bsQUSgMtao9epNoEM9p6BUzDfasLCkUxArGoLFzcfrsBYSHheLZWpWx+t1d2Lz4+t2T8ltpENuTRCzbdh9AZOFCeP2l2li35WPHuQqKBiUfNba1AgGKhvyroPcEXeu2KxGp3jFZpf56TfRzi0+9crPC55QxkICrBAwRDQeu7yAp6MtW/eeCdqnYH0WDYmTskEOAooFjwd0I6DWx0mon92RP6+Ra74m1VeKhaHDt06WXAOFKg2u82cpaBAwRDZ/dOKtakNnanvypIN2p8kXRoAobOwkCFA0cB+5GQOtkX68JGkWDayNHb0FklfobMY70ys21yrAVCViDgCGiYV8FU5Kz1Tpiil8lTikalNBi2zwEKBo4INyNgF4TK612KBpcGzkUDc456SVAuNLgnDVbWI+AIaJh7/+Zkqjt6R9N8avEKUWDElpsS9HAMeDWBLRO9vWaoFE0uDaMKBqcc9JrTFI0OGfNFtYjYIho+PgRUxK1PfODKX6VOKVoUEKLbSkaOAY8mkCJIkE4n5QGu8YHF0aE+iPDno3k1ExNvIICbAgJtCHxyvXnpKi9xCNYShYJxunEFLUmHP2KRgQi6VoGMjKzNNkKD/YDfHxwJTlDk50AP18UCvWXddN6lYoMxpnEFGRrNBQZHoDkNDtS0+2aLIUG+cHP5iN5a7lsvj4QdTt7MVWLGfYlAcsRMEQ07KpoSp62Z783xa8SpxQNSmixLUUDx4BHE6BocF5eigbnjCganDNiCxLQg4AhomHno3qEptiGre5hxX0KugNFQ0ET9yB/PNPgQcX0klSsuD3JKjHpvc1Fa15iSFotJqvFYwQjL/kqYJoeQsAQ0bDjP6bQsdX/zhS/SpxSNCihxbZcaeAYcGsCWieyek0ajZjsWSU3MnL+EbEyI+fRswUJWIeAIaJh22OmJGh74VtT/CpxStGghBbbUjRwDLg1AatMrCkaXBtGek2uPdWOEePItcqwFQlYg4ARoiFzayVTkvNreMgUv0qcUjQoocW2FA0cA25NgKIh//JZbWJtxITYKvXXi7URjNz6A87gvY6AIaJhS2VTOPq9/E0ev9//fBwx4xfg3IVLKF+uDMbHdEaxOwrfFNve/d9h8rz1SEtPR3hYCGJ6t8ajFcoZkgNFgyFYvcMozzR4R509KUurTBqNmOxZJTcrT4jJyLlo9KTPO3PxfAKGiIZ3/2sKOL9Xvnb4tduz8EKrQYjp0wa1qlXEig07sf/rHzFzXJ88sWVk2vFMkz5YNSsGZUqXwIFvjmDc1BXYsnScITlQNBiC1XyjQnkmzFuHxIuXUbpkUayePVwGtWDV+9i4bR8y7XZUq/Qwonu1REhwEL47cgzrtnyMksUjsWrjR4jq0hQPlL0L81a8h5LFInHi1FlcSExC2zca4JUGNaUtigbz68wIlBGwyqSRosG1uuklQDzVjhHjyLXKsBUJWIOAIaJhYxVTkvN79SuH3+9/+h2x01di1axh8rWsrGw8/WovbFsxXq4m5FzXklOluNi9fjJsNl8kXrqC1zoOl38bcVE0GEHVZJunzpxHy+5jsHDSAJS7t7QcRJGFw7F1536s37oHs+P6ITgoALHTV8Fut2NY3zZSNHQdnIBWTeqhU6uG8LPZ5Gstuo3G6lnD5FLXhYuX8VKbIdizYQoCAvwpGkyuM90rJ0DRkD8zq02sjZgQW6X+erE2gpHyTxV7kIB5BAwRDe88bkpCfq996fAr5mtiZWHs4A6O15p1HYWhvVujYvn78sQ3YeZq/H32Alo0fg7zV25F4+dr4YVnqxmSA0WDIVjNNbp0/Q6cOn1eriLkvrpHT8Grzz+FZ2td36+XdA6dT+UAACAASURBVPka6jXvj4Pvz5YCoe+IGdi1LgE+4klQgHxt2PiFeZa5GrYZglmxfVGmdHHND3cylxK9eyOB8bGfYcK4z1SnPjD6SQwa8iS02hEB6GXLknain8T4cdpYOxjpYEsy8kA7ujMa8qTqzwY7koAZBPz9fHV3m7muqu42XTHo98YXjmbiB96fjp7E8L5tHK+16xOHrm0byV0iua/jJ0+j88BJcqWhVPE7ED+im/yh2IiLosEIqibbnDh7DSILF8JbzV/IE8lrHUdgRL+2qPhwWcfrlep1xGebZ+Do8b8wac5aLJsW7XhPiIZ/v/Zyu6GYMqoHypYphX8u8emiJpea7hUSmDbpAKbFH1DY60bzXv2ro1dUdWi1IyzqZctydqJyMZqknrVkpJMtT7WjK6P/jW3VHw52JAETCBQvHKS718zVxvxK7yxQv+YHHU22frQf+w4cloefc64mHYZjZFS7PHM4sQOkVY8xmDamFx647y68+8GnWLRmOzbMfxv+/n7OXCp+n6JBMTLrd1i8ZjvOnEvEkJ55Vxq6DErA6w1r51lpqNssCl9smyNXFRLmrsPSqUPyiIZ/v5ZbNPBMg/XHAiPMS8Aq21NEVHptUfFUO2Tk2qdX7/q75pWtSMAaBAzZnrSyuinJ+bW88SPLkV//wIj4JVg/b6SMRZxDrdmoJ3asmoiIQqGO+N7fdQCfffE9xg3p6HhNbCsf3q8tyt9fRvc8KBp0R2q+wRN/nUXb3rFYMmUw7r27JM6eu4gSxYrgvQ8/x7r39mDuBHGmIRBxM1YhPSNTrj5QNJhfN0ZgPAGKhvwZ6z351MqaosG1z4PedXPNK1uRgDUIGCIalj9hSnJ+rfc7/IqDzy+1HSJ//K1Z9frdk3Z/+g0WTR6Ev06fw8qNH2FQ9+b48Zc/MHDMHKyaOUyKiZOn/kHb3uOwZcm4PAem9UqIokEvkhazs2PPl5i2cAMuX7km7560Zs4IGeHc5e/JuyT52nxR9bHyiO7VCqEh1++exJUGixWR4ehOQOtEVq8JGifErpVWL96easeIceRaZdiKBKxBwBDRsLSGKcn5tf08j99fjv2J6Nj5OH32AsrecyfihnbCXaWK4dAPR+Xr4k5K4gyqEBBr3t2FbACBAf7o0/E11Kr2qCE5UDQYgtU7jHJ7knfU2ZOypGjgSsOMhBv7hpWObauJD4oGpRVke08jYIRoyFhszg0B/Nurv0lHQdWVoqGgSHugH4oGDyyqh6dE0UDRQNFw6zGQI4g8/CuA6XkYAUNEw8Lrz6Iq6Mv/rU8L2qVifxQNipGxQw4BigaOBXcjQNFA0UDRQNHgbt9bjDd/AkaIhvT5tUxBHtBxnyl+lTilaFBCi23zEKBo4IBwNwIUDRQNFA0UDe72vcV4C1Y0pM192hTkgZ33muJXiVOKBiW02JaigWPAowmUKBKE80lpsGeJI2Xqr4hQf2TYs5GcmqneCICgABtCAm1IvJKuyY54XmPJIsE4nZiiyY7oXDQiEEnXMjQ/3DE82A/w8cGV5AxNMQX4+aJQqL+sm9arVGQwziSmyAOFWq7I8AAkp9mRmm7XYgahQX7ws/lI3loum6+PrNvZi3y2jhaO7Gs9AkasNKTNrm1KooFd95jiV4lTigYltNiWooFjwKMJUDQ4Ly9Fg3NGFA3OGbEFCehBwAjRkDrrGT1CU2wjqNvHivsUdAeKhoIm7kH+uD3Jg4rpJalwe1L+hfaGOwNZpf56sRbV1MsWD0J7yZegh6VphGhImVHHFErBPXab4leJU4oGJbTYlisNHANuTcAqk0YjJntWyU2vSSwZufZR04s3RYNrvNnKWgSMEA3J054zJcmQXh+Z4leJU4oGJbTYlqKBY8CtCVhlYs0JsWvDSO8JsVXqr1deRowj1yrDViRgDQKGiIYpdU1JLqTPTlP8KnFK0aCElpu0PX7yNLKyslDu3tKGRsztSYbipXEDCFhl0mjEZM8quVl5QkxG+X+ouNJgwBcOTRpOwAjRcC2hnuFx38pBaL8PTfGrxClFgxJabtI2fs5aVCxfFvVrP25oxBQNhuKlcQMIWGXSSNHgWnH1EiCeaseIceRaZdiKBKxBwAjRcDW+vinJhfXfYYpfJU4pGpTQcoO27+86gLFTlyM8NASFwkMxcVgXbNz2CYpEhKN9s+dlBidPnUWPodOwZclY+fdzb/RD69frY/9XP+B84mVUeuR+DO3dWr53+MgxjJu2AheTrsLX1xfRvVqhVrWK8j2KBjcYEAwxDwGKhvwHhNUm1kZMiK1Sf71YG8GIXxkk4E4EDBENE67PlQr6Chu4vaBdKvZH0aAYmfU7DBozF3VqVnasNCTMXXdb0fBY3Q7o+eareKv5C7Dbs9Ci22gM6NYMVf7zEP45fwmpaWkoU7oE9h08jImz1zrEBkWD9ccCI8xLwCqTRiMme1bJzcoTYjJyLhr5nUEC7kTACNFwJe4FUxCED95mil8lTikalNByk7ZqRMPu9ZMRWThcZvh2wlI88tB9aPLiU3kyzsi0o8ZL3fHl9jny9asp2h5c5SY4GaYHEZg0/nOIf2qvqEE1IP5ptSP862XLU+2QkWujVO/6u+aVrUjAGgTCxEMidb4uj3tRZ4uumSsU/b5rDU1sRdFgInyjXDsTDSf+OoueMTe2J4mVhkMfzoePeGwsgDFTluOB+0qjaaM6OHjoJ6zcuBOpqdefSPvN97/iqw/myf++rPFJrkblT7skkB+BhAmfI2H8ftWA+g16Av0G1oBWOyIAvWx5qh0ycm2Y6l1/17yyFQlYg0ChEH/dA7k8tqHuNl0xWGjoVleamdqGosFU/MY4HzR2Luo8eWN70tQFGxAWGiy3H4nr0A9HMSJ+iWObkRAN3+5c4AgmRzQ0eKYanm85ECtnxuC+MqWQnJKKpxr3cogGbk8ypn60ahwBq2xPERnqtY3HU+2QkWufA73r75pXtiIBaxAwYntS0uiXTEkuYth7pvhV4pSiQQktN2kbO32lPMPQpc3LMuJN2/fJ8wgJI7vLv8X2o68P/+pUNDxZtSKadRmFD9fEIyQ4EAtXb8OcZZvx5fa50g5Fg5sMCIbpIEDRkP9g0HvyqZU1RYNrH1y96+aaV7YiAWsQMEI0XHq7kSnJFR6x2RS/SpxSNCih5SZtxXMaesVMgz0rSwqFsmVKQaw+nD57AeFhoXi2VmWsfncXNi++fvek/FYaxPakibPWYNvuA4gsXAivv1Qb67Z8jI0LR1M0uMlYYJh5CWidyOo1QeOE2LWRqRdvT7VjxDhyrTJsRQLWIGCEaLg44hVTkivy9rum+FXilKJBCS22zUOAKw0cEO5GgKIh/4pZbWJtxITYKvXXi7URjNztM814vZuAIaJhWGNToBYZvckUv0qcUjQoocW2FA0cA25NwCqTRiMme1bJzcoTYjJyLhrd+gPO4L2OgBGiIXHoq6ZwjBy70RS/SpxSNCihxbYUDRwDbk3AKpNGigbXhpFeAsRT7RgxjlyrDFuRgDUIGCEaLgx5zZTk7oh9xxS/SpxSNCihxbYUDRwDbk2AosH5L81k5N2M3PoDzuC9joARouH84NdN4Vg0br0pfpU4pWhQQottKRo4BjyaQIkiQTiflAZ7VramPCNC/ZFhz0ZyqrYHIAYF2BASaEPilevPSVF7iUewlCwSjNOJKWpNOPoVjQhE0rUMZGRmabIVLh7K5OODKxqf9xLg54tCof6yblqvUpHBOJOYAm3VByLDA5CcZkdqul1TSKFBfvCz+UjeWi6brw9E3c5eTNVihn1JwHIEjBAN5wa+YUqexSasM8WvEqcUDUposS1FA8eARxOgaHBeXooG54woGpwzYgsS0IOAEaLhn/5N9QhNsY3i8WsV9ynoDhQNBU3cg/zx7kkeVEwvScWKW28CAmbCP3CW6gpkpHVDenp3eJodASQnN6vUTe+zEVprlpuRVls5rFUPRHYkARMIGCEazvZrZkImQImENab4VeKUokEJLbblSgPHgFsTsMrkU0DMmYDqNdnzNDsUDa591PQWja55ZSsSsAYBI0TDmb4tTEmu5ORVpvhV4lQ30RD19izUe/px1K/9uBL/hrXNL575K7ciPT0D3dtruw/vvx+I5moiTzXuhc1LxsonNptxrd28G0ePn0JMn9bQyoIrDWZUkD61EKBoyJ+e3pNPrSKGosG1ka533VzzylYkYA0CRoiG071bmpJcqakrTfGrxKnpouHIr39g+qJNmB3XV0ncTtvqLRqys7PRoMVAbF0WC39/v5ueouw0oP81oGhwlRTbkYD+BCgaKBpmJBxUPbC4PUk1OnYkAUMIGCEa/u7ZypBYnRm9c/oKZ01Mf9900ZCSmo5ff/8T/6lQTlcYtxMNGRmZ6NZO+WPCD3x9BNX/W0HGyZUGgCsNug5ZGisAAhQNFA0UDbceAzzTUABfQHShOwEjRMOpHq11j9MVg6VnLM/T7PufjyNm/AKcu3AJ5cuVwfiYzih2R+FbmlqxYSdWv7sLaekZaPBMVfTvYsxhbtWiQSQzMn4xUlLTUOHBe5GZacfzdarJ7UmdBsSjXdMGiJ+9FteSU7Fj9UQcPnIM46atwMWkq/D19UV0r1aoVa0ivjtyDAlz12Hp1CHyv+eteA8li0XixKmzuJCYhLZvNMArDWpKSMkpqRg1eRm++/E3BAUGSBuPP1Zevne7eHITFlty/j5zHr/9cQqnzpzHXaWKYezgDrj7zuKy2d7932HyvPW4mpyCe0qXwIiodihT+vp7uYVC7v8+8ddZDJuwEP+cv4TSJYtizOAOKFU8UvbZuO0TuQ3I398f9Z+ugk0ffIr180betD1JMKtdoxL27v9W5hkcFIiJw7oiolCo07iOnzyNUZOX4s+/zyEsJBj9uzZFzaoVZb8LFy9jaNwC/H7ib5QsHonKFR/E1Wspt9yeJOLcvOMz2O1ZaPnqc2jVpK60sWrTLqza9JHc1hUeFoKZsX1kjSgaXPkaYBsrEaBooGigaKBosNJ3EmPRRsAI0fBXtzbaglLZ+65Zyxw9xTzshVaDENOnjZwrC1Gw/+sfMXNcn5usL1n3Ab449JOcyxq99V2VaMgQAqHlQIwa0B41qjyCH345juZdRyF+eDeHaLh0+Srih3dFmdIlZIJiQp2alib/3nfwMCbOXostS8beJBpadBuN1bOG4dEK5eSE96U2Q7BnwxQEBPhLwRAWEoR+nd/AsRN/o0PUBLy/PE5OyG8Xz79Fg4C/ZvZwlCpxBzZt34eN2/Zh+fRo/HX6HNr0GoclU4ZIofDh3q8wa8m72LhwNHx9fW4pGrKystH4rRip6mpVe1SKhB17vsTcCVH4/eRptO8Th7VzR8hJ9tL1OzBh5mp8unn6LUWD2PY0bXQv2Gy+sl1YWAi6tW1027jEtqlG7YdK/7VrPIY//jyD9n3jsGrWcClc+o+aLQVR7w5NkHjpCgRfISj+fabhg4+/wJrNu2XcQgA27zYaowe+ibJlSuGV9jHYtnI8AgP8pdASwkhcFA0qvxnYzTQCFA0UDRQNFA2mfQHRse4EjBANf3Zpp3ucrhi8e84SR7Pvf/odsdNXYtWsYfI1Mdd8+tVe2LZivPzxNucS4qJ+iwF4Z97bKBwR5oobTW1UiQbxq/6IiYvkZDrnat1zLFo1qecQDXWfroLXG9a+ZXBCdNR4qTu+3D7nJtEwbPxCbFk6ztGvYZshmBXbV07iqzfsJlctIsKv//retncsurZthNCQ4NvG82/RcOr0eYzsf31QiEm3iOWD1ROlgDh99gKG9LxxCEZMmOOGdkL5+8vcUjT8/NtJ+Uv+hgWjpL1Mux1V6nfClx/Mw/J3duDsuYsOe2JbVOX6HfHJpmm3FA1NXnwK9WtXlXa27z6IPfu/xfihnSFUZH5xZWVlIWb8wjy1ECs6YgWlzev1UaVBJ+x+ZwoK/W+QTVu4AZevJN8kGnoOnYrGz9dCnZqVpf+ZizchKzsb3dq+ItXuWy1eROMGNeV5jpzrgsYHTmkauexMAioITJm4H1Mn7lfR83qX3gOeQJ8BT0Crndy2fG0z4Os3Q3VMWZk9kGXvAU+zI/+P8n+5aeWtV930tqO1ZrkZabWVw1r1QGRHEjCBwB3hAbp7Pdm5ve42XTFYZu5iR7OtO/fLlQWxepBzNes6CkN7t0bF8vc5Xvv197/kHLRa5YflD/LhoSHo1/l1uavEiEuVaNjz+bdYs3kX5oyPcsTUZ/iMPNuTxCSzWqWHHe8fPPQTVm7cidTU6082/eb7X/HVB/NuEg2T5qzFsmnRjn4vtxuKKaN6yF/qH3++M+69u6TjPbH1SWxRCvD3u208ucGJLTiiX5+Orzlefr7lILnl5p339uCOyAi81fwFx3udB05Ci8bP4ekn/nNL0SC2M0W9PRMlil3fjiSupMvX8O7iMVi8ZjsiixTKY6/Gy93l6si/l5DE9qTczMRqxYd7v8SkEd3kqkN+cWVlZ0HcESl3LRaseh8Xk66ge7tXULNRT3zz4XxHbCs3fgSxnenfKw1vdB4pVyLEaoK4xL64uk9VwaDuzeV2rtnLtmD/Vz9IISL+XW+j7WmnRgxo2iSB2xGYEPcZJsZ+rhrSgCE1MHDwk9BqRwSQYysT05CJ6apj8kNP+KEXPM2OAJKTm1beetVNbztaa5abkVZbOaxVD0R2JAETCAQG2HT3eqLjm7rbdMXgPfMXOZqt37oHPx09ieF9b2yVatcnTv5Qnntuve/g9+g9bBpiozui7lOP46ejJ9Bj6BS8v3w8QoIDXXGrqI0q0SBWGkYlLJV783MusSWmWaNnHSsNHVo0RNVK188biEm02D60cmYM7itTSu7ZF3cRupVoyDnfkGM3RzSIbTJipWH3+sk3gXAWT24iQjT8+fc/GDXg+qAQSz5PvNQNH66Jx4b39+ZZGRDvO1tpEAV6e9ISrJkz4ibwi9Zsw4XEyxjQ7fqDQsQyUuV6HbFn45RbiobczHKLBmEn94pF7rjEqs2/V31yrzT8t34nubIRGhIkY5i1dDMSL16+STT0iJ6Kpo2ekVus8rvOJyah6+DJ6NG+sRRR3J6k6LPGxhYgwO1J+RdB71t38par+bPW6xkdwoPedbPAx5QhkIDLBIzYnvTHW2+57F/PhvcuXOgwt/Wj/dh34LA8/JxzNekwHCOj2qHiw2Udr+3/6kc5rxNb7HOuN/uOR++Or+l+gyFhX5VoENtshAiIje4kDyKLibM40zA+psstRYM4K9Csyyg5MRfKZ+HqbZizbDO+3D73ppWG24kGcaZB/BIuzjT4+9lw8tQ/jgPHt4vn36Jh6bodWDNnuNzC887WvfLwrwAu7LXrE4vFkwfjnrtKYOcnX8nbwb67aEy+ZxqEEHit43B0adNI5i62O4lzBUIc/Xb8FMRKxerZw1G8aGF5oHjs1OX5nmnITzTcLi6RW8M2gxHVuSmerVX5xpmGmcPkmY1+I2fhgbKl0bVNI1xKuopWPceieuUKtzzTIE7eizMV4vC1aCu2J4kD2WfPJcoVHiGw+o2ciRefqy5XISga9Py6oK2CIEDRQNHAMw23HgO8e1JBfAPRh94EjBANx9+8sSVI73hvZ+++RQscb4vHEYyIX+L4cV5sfRc7R3asmui4QY5oLOaHXQZNkmcdcq5WPcZiaO9WePiBe3QPX5VoEFGIOx2JX9jFVp8Hy96FiEJh8lfqnLsn5Z4Ai/YTZ63Btt0HEFm4EF5/qTbWbflY7sP/992TbicaxAqFsPPJgcNIz8iQE9m5E/pLIXK7eP4tGnx8fPD5lz/g5N9CdNyBcUNu3D1p92eH5N2cUlPTcHfp4hgZ1V4KCHHld/ckUbQxU5bhl2N/StHw3FNVHEtKQpSI1Q1xuPmZGpUgtmnNj++vaKVB+L5dXGK70fCJi+SB6YjwMER1ecOxYiBWB8R+t2N/nELROwrLGMTtu271cDdxUHv1pl1yJahwoTCMi+4oD6536j8R5y9elkJNHHwXW8JEPhQNun8eadBgAhQNFA0UDRQNBn/N0HwBEjBCNPzerlMBZnDDVdkl8xx/iB9pX2o7RJ6JFTevETfw2f3pN1g0eZCc64mt5mL7uLjEmeKX6z8pzxEf+uEoBo6Zi/eXxcobCOl9qRYNegdCe+5HgKLB/Wrm7RFTNFA0UDRQNHj796An5W+EaDjW5saWoIJkVW7Z3DzuxA/R0bHz5Y1wyt5zp7wpj9ghI4SBeF2sLogfwcUP10Pj5sv/LV60iPzROvcWJj1zoGjQk6aX2aJo8LKCe0C6FA0UDRQNFA0e8FXGFP5HwAjR8FurLqbwvX/FHFP8KnFK0aCEFtvmIUDRwAHhbgQoGigaKBooGtzte4vx5k/ACNFwtGVXU5A/sHK2KX6VOKVoUEKLbSkaOAbcmgBFA0UDRQNFg1t/iTH4PASMEA2/NO9mCuWHVs8yxa8SpxQNSmixLUUDx4BHEyhRJAjnk9Jgz8rWlGdEqD8y7NlITs3UZCcowIaQQBsSNT5I0ccHKFkkGKcTUzTFIzoXjQhE0rUMZGRmabIVHuwH+PjgSnKGJjsBfr4oFOov66b1KhUZjDOJKdBWfSAyPADJaXakanyWTWiQH/xsPpK3lsvm6yPrdvZiqhYz7EsCliNghGj4uWkPU/Isv1b9Qz4LKmCKhoIi7YF+uD3JA4vq5SlRNDgfABQNzhlRNDhnxBYkoAcBI0TDT2/01CM0xTYeXqf+IZ+KnansQNGgEhy7gbdc5SBwOwLcnpR/yfR+SJhW1iJSvR6ClpOb1phy4tHLjp4PwNNqi89pcLuvMwYMwAjRcOS1XqawrfDONFP8KnFK0aCEFtvmIcCVBg4IdyOg12RPqx0jJsR6TRr1smNFRlpjomhwt0884/V0AkaIhh+a9DEF2yMbppjiV4lTigYltNiWooFjwK0JWGXSSNHg2jDiSoNzTnqvEDn3yBYkYB0CRoiG7xv3NSXBipsmm+JXiVOKBiW02JaigWPArQlQNORfPr0nn1pZGyGstMbElQa3/vgzeA8kYIRoONyonymkHt2cYIpfJU4pGpTQYluKBo4BtyZglUmjERNivbYV6WVHK2sjGGmNiaLBrT/+DN4DCRghGr59ub8ppB7bEm+KXyVOKRqU0GJbigaOAbcmYJVJoxETYr0m+3rZ0craCEZaY6JocOuPP4P3QAJGiIZDDQeYQqrS1omm+FXilKJBCS2Lt121aRdWbfoI6ekZCA8LwczYPihZLBLHT57GqMlL8eff5xAWEoz+XZuiZtWKMptmXUchpk9rPPLQffLvd7buxc+/nZSvfXfkGOav2IqwsGD8c+4irianoNdbTRx9eRDa4gOC4d1EwCqTRiMmxHpN9vWyo5W1EYy0xkTRwC8VErAWASNEwzcvDjQlycrvTzDFrxKnFA1KaFm47ZWryXilfQy2rRyPwAB/nDpzHqVLFoXdnoVG7Yeif5emqF3jMfzx5xm07xuHVbOGo1TxSKeioWX3MVg/byQefuAe/HX6HMTf7y2LRaGwEN5y1cLjgaHdmoBVJo1GTIj1muzrZUcrayMYaY2JooHfLCRgLQJGiIavnh9sSpJVtseZ4leJU4oGJbQs3FaIgxdaDcJbLV5E4wY14e/vJ6M98usfiBm/EBsXjnZEP27aCtxVqhjavF7fqWgYPnERNi8e6+jbM2YaGtV/Es/V+q+FaTA0Erg1gdixnyJ2zKeq8QyJqYkhQ2tCqx0RQI6tNPtUpNqnqo4pyNYbgbbesJodKzLSGpNe9der9mLQ6F1/1QORHUnAQwh82WCIKZk8/kGsKX6VOKVoUELL4m3/PnMes5dtwf6vfpCCQPz7+PNDWLt5N+aMj3JEv2DV+7iYdAUDuja7STSs37oHv/z2p2N70sRZa7BixlBH3xHxi1HhgXvQtFEdrjRYfDwwvJsJWOWXZhGZ3rcT1WuFQC87WlkbwUhrTFxp4LcKCViLgBErDV/UizYlyaofjjPFrxKnFA1KaLlJ2/OJSeg6eDJ6tG+MyCKFMGLionxXGlr1GItB3Zuj4sNlZXbzVryHf85fcoiGgaPnYMfqG4dzOvaPR9NGz8iVBp5pcJMBwTAdBKwyaTRiQqzXZF8vO1pZG8FIa0wUDfwyIQFrETBCNBx4LsaUJKt/NMYUv0qcUjQooWXhtimp6Th7LhH33l0SWVnZ6DdyJl58rjqerflfNGwzGFGdm+LZWpVvnGmYOQylStyB6Nj5UjA0f+VZpKalyzMLlR55wCEaWnQbjeljeqFOzco4fOQYugxKwAerJ/JMg4XHAkPLn4BVJo1GTIj1muzrZUcrayMYaY2JooHfLiRgLQJGiIb9zw4zJckndt3YRm5KAC44pWhwAZI7NLl8NRmd+k/E+YuX4e9nQ40qjyC6VyvYbL7y7knibII4yBwRHoaoLm+gVrVHZVonT53FkHHzZbuQ4ED85//ux4XEyw7RMHneepQqfge+/fEobDYbBvdowbsnucOAYIy3JGCVSaMRE2K9Jvt62dHK2ghGWmOiaOAXCwlYi4ARouHzZ4abkmSNj0eZ4leJU4oGJbS8rK245aoQDUum3PpOAtye5GUDwgPStcqk0YgJsV6Tfb3saGVtBCOtMVE0eMCXAFPwKAJGiIZPa480hVHNPeb4VZIsRYMSWl7WVoiGhLnrsHTqre8kQNHgZQPCA9K1yqTRiAmxXpN9vexoZW0EI60xUTR4wJcAU/AoAkaIhn1PvW0Ko1qfjDDFrxKnFA1KaHlZW4oGLyu4F6RrlUmjERNivSb7etnRytoIRlpjomjwgi8JpuhWBIwQDZ/UNGeb0FOfmrMtSknBKRqU0GLbPAS40sAB4W4ErDJpNGJCrNdkXy87WlkbwUhrTBQN7vaJZ7yeTsAI0bDnSXPuYlT7M3Pu2qRkjFA0KKHFthQNHAMeTaBEkSCcT0qDztroGgAAIABJREFUPStbU54Rof7IsGcjOTVTk52gABtCAm1IvJKuyY6PD1CySDBOJ6ZosiM6F40IRNK1DGRkZmmyFR7sB/j44EpyhiY7AX6+KBTqL+um9SoVGYwziSnQVn0gMjwAyWl2pKbbNYUUGuQHP5uP5K3lsvn6yLqdvZiqxQz7koDlCBghGj5+4sYDbQsy4Wf233gmVkH6VeKLokEJLbalaOAY8GgCFA3Oy0vR4JwRRYNzRmxBAnoQMEI07K5uzkPW6hww56FySupA0aCEFttSNHAMuDUBq2xPERCt+kRovRhp3eYkGGWkdUN6endotZVjR6/c9LKjNS8jGLn1B5zBex0BI0TDR1XjTOH43Be3vlOlKcHk45SiwUrVcLNYeKbBzQrGcKHXZE+rHYoG1wYjRYNzTnozcu6RLUjAOgSMEA0fVhlvSoL1vhpkil8lTikalNDykra575p0uzsoUTR4yYDwoDS1Tvb1OghL0eDaoNJ7QmyV+uu1ysSVBtfGEVt5LgEjRMOO/04wBVj9rwea4leJU4oGJbQ8uO2RX//A9EWbMDuuLygaPLjQXp6aVSaNFA2uDUSKBuec9Gbk3CNbkIB1CBghGrZXmmhKgs8fGpDH7/c/H0fM+AU4d+ESypcrg/ExnVHsjsL5xnY+MQkvt41GTJ82eOHZaobkQNFgCFb3M5qSmo5ff/8T/6lQjqLB/crHiF0kQNGQPyi99/1bcb++VerPlQYXP7BsRgJOCBghGt5/LN4U7i9+29/h127PwgutBkkBUKtaRazYsBP7v/4RM8f1yTe2nkOn4lpyKl5rWJuiwZQKurnT+Su3IunKNZw8dRYXEi8jOzsbA7o1w9zlW+TAElf88G4oUaxIvkIh96pDckoa2vWJRZfWL6NOzcrg9iQ3HyBeGL5VJo1caXBt8On9K7pV6k/R4Fr92YoEnBEwQjRsfTTBmVtD3m94uJ/D7vc//Y7Y6SuxatYw+VpWVjaefrUXtq0Yj/CwkJv8b/nwM3xz+CgCA/3xnwr3UzQYUiEPNypEwztb92LjwtEIDQnCmCnL8cHHX+C9ZeNQJCIcc5ZdFw9RXd5wKhoWTx6MnjFT8cR//w+tmtSV5CgaPHwAeWB6Vpk0UjS4NrgoGpxz0puRc49sQQLWIWCEaNjyyGRTEnz5h74Ov1t37pcrC2MHd3C81qzrKAzt3RoVy9+XJz6xfanLoAQsmxaNyfPWo3LFBykaTKmgmzsVouGf8xflIBPXxm2f4POvfkT88K7y708OfIeN2/ZhyqgetxUNU+avx8P334Os7GwM7tHCQSUtQ9uDi9wcL8N3QwITYj/DxNjPVUc+YEgNDBzyJLTaEQHk2MrMnoZMTFcdkx96ws+nF/SyozU3vfISQKyamyczUj0Q2ZEETCAQ6G/T3eu7/zdFd5uuGHzlxxtbj9Zv3YOfjp7E8L5tHF3b9YlD17aNUK3Sw3nMdY+egjav15evix+HKRpcoc02NxEQoiEtLQM93mws39u0fR8OHzmGEVHt5N/7Dn6PdVt2Y/rY3rcVDV0HJ8Dm64vmrzyLbu1ecfjR4wmsLBsJFCSBqfH7MTX+gGqXvftXR+/+T0CrHRFAji2b3wz4+s9UHVNWRnfYM3tALztac9MrLwHEqrl5MiPVA5EdScAEAuJhk3pfmx6eqrdJl+w1/qm3o93Wj/Zj34HD8vBzztWkw3CMjGqHig+Xdbwm5nXiRjY5Pw5TNLiEmo1uRUCIhvT0DHRvr000vD1pCRZMGog3Oo3AlNE98chD15fGuD2J487dCHB7Uv4V40Fo56NZr1vu8kyDc9ZsQQKuEDBie9KG8tNcca17myY/93LYFEJgRPwSrJ83Ur6WabejZqOe2LFqIiIKhTradewfj++O/AYfHx/5WlpaOmw2Gxo1qJlnlUKvYHn3JL1IWtCOXqIhYe46LJ06BPsOHsb4mavxzvy3ERQYQNFgwZozpNsToGigaJiRcFD1x4SiQTU6diQBQwgYIRreeXCGIbE6M/rarz0cTcTB55faDsGQni1Rs+r1uyft/vQbLJo8CH+dPoeVGz/CoO7NbzLJlQZnlPl+vgT0Fg3CkVh18POzyaUwrjRw8LkbAYoGigaKhluPgZyVJnf7TDNe7yZghGhYd7/67aJaqvHGb93zdP/l2J+Ijp2P02cvoOw9dyJuaCfcVaoYDv1wVL4u7qSUs8KQ05GiQUsF2NdQAhQNhuKlcQMIUDRQNFA0UDQY8NVCkyYRMEI0rCk3y5Rsmh3rZopfJU65PUkJLbbNQ4CigQPC3QhQNFA0UDRQNLjb9xbjzZ+AEaJh9X2zTUHe/Pj1O1ta+aJosHJ1LB4bRYPFC8TwbiJA0UDRQNFA0cCvRs8hYIRoWHnvHFMAtfyjiyl+lTilaFBCi2250sAx4NYEKBooGigaKBrc+kuMwechYIRoWF5mnimUW5/sZIpfJU4pGpTQYluKBo4BjyZQokgQxPNH7FnZmvKMCPVHhj0byamZmuwEBdgQEmhD4pV0TXbE3fhKFgnG6cQUTXZEZ3Ff9KRrGcjIzNJkKzzYD/DxwZXkDE12Avx8USjUX9ZN61UqMhhnElOgrfpAZHgAktPsSE3X9gDM0CA/+Nl8JG8tl83XR9bt7MVULWbYlwQsR8AI0bDs7vmm5Nnmz46m+FXilKJBCS22pWjgGPBoAhQNzstL0eCcEUWDc0ZsQQJ6EDBCNCwpvUCP0BTbaHeqg+I+Bd2BoqGgiXuQP55p8KBiekkqnrw9Sa/cAgJmwj9Q/d1Dcm7dqdWOGJJ62dL7wXVWYW0EIy/5KmCaHkLACNGwqNRCU+i8efotU/wqcUrRoIQW23KlgWPArQnoNdnTakdA1OupwHpPiLVO9vWa6BsxIdZaNz7cza0//gzeAwkYIRoWllxkCqm3zrxpil8lTikalNCyQNtOA+LRoUVDVK1U3vRouNJgegkYgEICVpk0UjS4Vji9BIjewkqvcaRVoBkhrFyrDFuRgDUIGCEa5pdYbEpyHc+2N8WvEqcUDUpoWaCtFtHw6Rff47+PPoTgoACZyfGTp5GVlYVy95ZWlRlFgyps7GQiAb0me1rtUDS4NggoGpxz0puRc49sQQLWIWCEaJhbzBzR0PkcRYN1RpaHRCJEQ8eWDfH4Y8pWGrKzs9G822jMjuuLIhHhkkb8nLWoWL4s6td+XBUdigZV2NjJRAJaJ/t6bU+haHBtEOg9IbZK/fXamiYo6s3ItcqwFQlYg4ARomF20SWmJNf1fDtT/CpxypUGJbQs0FaIhsceeQAf7D6Ia8mpqFrpYQzv11auHiTMXScFQftmz8tIT546ix5Dp2HLkrGYOGsNVmzYiXL33olC4aF4/aXaGDt1OcJDQ+TfE4d1QfGihTFq8jJ89+NvCAoMQHSvVg5x0rDNEPTt+DrGTlsufcZFdwJFgwUGBENQRMAqk0aKBtfKpveE2Cr1p2hwrf5sRQLOCBghGmbcYY5o6HGBosFZvfm+QgJCNNjtWZgZ2wcB/v4YPnERShQrgp5vvnpb0SDcPPNaH2xcONqx0jBozFzUqVnZsdIgBENYSBD6dX4Dx078jQ5RE/D+8jiEBAeh6gtdUKvao3i7f3uEhQbLqCkaFBaPzU0nYJVJI0WDa0OBosE5J70ZOffIFiRgHQJGiIZpkUtNSbBXYltT/CpxypUGJbQs0FaIhkYNauLFZ6vLaH7+7SSGjJuHTYvGaBYN1Rt2w47VExERHiptt+0di65tG6F65Qp4rG4HbF48FvfcVcJBQesDhyyAkyF4GYGECZ9j8oT9qrPuO/AJ9BtYA1rtiABybMF3OmCboTom2HsAWT01x6RXPD7/i0fkla0lLwB62cqxI+qWoKH+/XLVXw87VmKUM47UD0T2JIGCJyAepKn3NaWIOaKhz0WKBr1r6fX2hGho17QBalR5RLL45/wlvNZxOD7ZNO0m0XDir7PoGXN9e5K4brfSkJyShsef74x77y7pYCy2P4ktSvWeriJFw6EP58NHPFr2f9fVFG1PKfX6YhJAgROYNP5zTBqvXjREDXoCUYNqQKsdkXiOrWyf6cjyVS8afLN6wCe7p+aY9IrH53/xiLyyNeQlGOllK8eOqFuChvr3y1V/PexYiVHOOCrwDyUdkoAGAmHB+ouGhMLLNESkvmu/S23Udy6gnlxpKCDQerkRouHlek+iYd0npMkjv/6BoXEL5ErD1AUb5Naht5q/IN879MNRjIhf4hANdV7viw0LRt3YnjR2Luo8eWN7klhp2L1+MkKCA28KV4iGb3fmfUoityfpVVXaKSgC3J6UP2m99tnrtV1GRKqXLd5y1fknLIeR85ZsQQLWIWDE9qT4CHNEQ/8kigbrjCwPiUSIhtS0dMwZH3X9sHLcfJQuWVSeadi0fR/2HTyMhJHdZbZvJyzF14d/dYiGV98ahpg+rVG54oPy/djpK6WA6NLmZfm3ONMQGOAvzzT4+9lw8tQ/KFU8Ev7+fnKlgaLBQwaRF6dB0UDRMCPhoOpPgF53z9JLoBkhrFTDYUcSMIGAEaJhQqHlJmQCDLzc2hS/SpxypUEJLQu07TxwEho+9wSWrt+Bi5eu4PFK5TGiXzt596T09AwMGjsXp89eQHhYKJ6tVRmr390lzyKI68O9XyFuxkp5ZkGsTIjnNPSKmQZ7VpYUGmVKF5d3WfrkwGGkZ2TIrUpzJ/SXKw8UDRYoPkPQTICigaKBouHWY4ArDZq/XmjABAJGiIa4cHNEw+ArFA0mDCG6LCgC3J5UUKTpRy8CFA0UDRQNFA16fZ/QjvkEjBAN48JWmJJY9NVWpvhV4pQrDUposW0eAhQNHBDuRoCigaKBooGiwd2+txhv/gSMEA1jQs0RDTHXKBo41j2YAEWDBxfXQ1OjaKBooGigaPDQrzevTMsI0TAqeKUpLIentDTFrxKnXGlQQottudLAMeDWBCgaKBooGiga3PpLjMHnIWCEaBgZZI5oGJlK0cDh7cEEuNLgwcX10tRKFAnC+aQ02LOyNREQDxzKsGcjOTVTk52gABtCAm1IvJKuyY54vErJIsE4nZiiyY7oXDQiEOLBjhmZWZpshQf7AT4+uJKs7XkvAX6+KBTqL+um9SoVGYwziSnQVn0gMjwAyWl2pKbbNYUUGuQHP5uP5K3lsvn6yLqdvZiqxQz7koDlCBghGoYHrjIlz1FpLUzxq8QpVxqU0GJbrjRwDHg0AYoG5+WlaHDOiKLBOSO2IAE9CBghGoYGmCMaxqZTNOgxJmjDogS40mDRwjCsfAlYcXuSXjEFBMyEf+As1dXX+0FqWuMRiegdk16s9bJjRUaqBxA7koAJBIwQDUP8V5uQCRCb0dwUv0qccqVBCS225UoDx4BbE9BrsqfVjoBotQeF6T1Bt+KEWGvdrFYzI4SVW3/AGbzXETBCNAzyM0c0jM+kaPC6AexNCXOlwZuq7Rm5WmXSSNHg2njSW8hYpf58IrRr9WcrEnBGwAjRMMC2xplbQ96faG9miF09jXr1SsN3R44hYe46LJ06RE+mbmUr6u1ZqPf046hf+3HFcVM0KEbGDiYTsMqkkaLBtYFA0eCck96MnHtkCxKwDgEjREOUrzmiYVJWXtHw/c/HETN+Ac5duITy5cpgfExnFLujcB74GZl2zFu+BZu270OmPQsP3HcXRg18E6WKRxpSJIoGigaKBkM+WjRqRQIUDflXRe/JJ7cn5c+aKw1W/HZgTO5IwAjR0Nck0TA5l2iw27PwQqtBiOnTBrWqVcSKDTux/+sfMXNcnzxlSrp8DWs270bLV59DWGgwZi3djN+O/4WEkd0NKSdFA0UDRYMhHy0atSIBigaKBj6n4dZjIEc0WvFzy5hIID8CRoiG3iaJhqm5RMP3P/2O2OkrsWrWMJl6VlY2nn61F7atGI/wsJB8B8TPv53EkHHzsGnRGEMGjdeIhuMnT2PU5KX4/cRpBAT4Y0H8AFy6fBVT5q9HuXtKY8/nh+Dr64ueb76Kl+rVkLBP/HUWwyYsxD/nL6F0yaIYM7iDY8nnkwPfIWHueqSmpaNqpfKI6d1a2v3y258xfuZqXEsW90P3QXSvlqhV7VEkp6Ri1ORl+O7H3xAUGIDoXq3w+GPlbypq/eYD8FLdGjj80zEkXroitw11bNlQtsvOzsaCVe9j4zaxDGVHtUoPS/v+fn54slEP7N04DcFBAfjqu1/Qtncs9myYIpeyfjt+ClGjZmHz4rEQy10j4xcjJTUNFR68F5mZdjxfp5r0c7sYG7YZgr4dX8fYactRtdLDiIvuBG5PMuQzSaMGEqBooGigaKBoMPArhqYLmIARoqGnrzkHoadn3TgIvXXnfrmyMHZwBwfRZl1HYWjv1qhY/r58KYtVhyO//oFRA940pBJeIRrEMs8r7Yeix5uNUb92VVxKuopC4aH4/uff0aLbaEwf2xt1nqyEP/48A1GUTzZOhZ+fHxq/FYP+XZrKSf/GbZ9gx54vMXdCFE7/k4hW3cdgxYyhKFk8EtGxC1Du3jvRocWLeK3jCMRGd5T7ypKuXIOPjw8KhYVIwRAWEoR+nd/AsRN/o0PUBLy/PA4hwUF5CvtY3Q7SZ6smdaUgadVjLPp3bYrqlStADKL1W/dgdlw/KQ5ip6+C3W7HsL5t8Gbf8ejU+iXZTpzT+OzLH+Ry1asvPIW1m3dLnwO6NcfzLQdi1ID2qFHlEfzwy3E07zoK8cO7SdFwuxirvtBFcni7f3u5BCauczo8TMmQUU2jJJAPganx+zEt/oBqPr36V0fv/k9Aqx0RgF62cuzY/GbA5j9TdW72jO6wZ/aAVeyIRPSOSWvdrFYzIxipHkDsSAImECgWEai7124miYZZuUSDmOv9dPQkhvdt48ivXZ84dG3bSP5gfKvr7LmLaN83Tv4ofmfJorpzEQa9QjT8dPQEomPn37RcIw5Ci2UcsdyTc73YerCclItf3YfGLcCGBaPkW+KX/Sr1O+HLD+Zh9aaP8PfZCxjc4/qDOL449DOmL9qI5dOjMWD0bBQuFIZu7V5BkYhwh93qDbthx+qJiAgPla+JlQBRfDHJz30J0bDnnSkoHBEmX17+zof48+9zckWhe/QUvPr8U3i2VmX5ntjLVq95fxx8fzZmL9uM7GygW9tGaPxmDDq1ekmKnCmjesiYxGHnksXvwIiJi7Bx4WiHy9Y9x6JVk3pSNNwuRhGXWKm4564Sjr5anwhryIimURK4DYHxsZ9hwrjPVDMaGP0kBg15ElrtiAD0spVjJyN7GsQ/tZe/Ty+If1axI/LQOyatdbNazYxgpHb8sB8JmEHA389Xd7ddfM15uNucrBsPd9v60X7sO3BYHn7OuZp0GI6RUe1Q8eGyN+Usfgx/K2qC/GH6yccf0Z1JjkGvEA1793+H1e9+hDnjo/KAFKJh0py1WDYt2vH6y+2Gyon2n6f+QdTbM1Gi2I0T6GKS/u7iMVi8djs2f/AZIgpdFwBZWVlSDKyZMwLJKWlYsna7XJl4+onHENXlDblN6fHnO+Peu0s6/FxLTpVblOo9XSVPTGJy/tUHc+Fns8nXxcD5+LNDmDSim1zFGNGvbZ4BU6leR3y2eQaEMJqzbIs8Nd9n2HS5ClK3WX98tG4SGjQfgHfmj8K3P/6GNZt35eHQZ/gMuT1JrCLcLkYR16EP58uVk5yL25MM+1zSsEEEuD0pf7A8CO180PE5Dc4ZsQUJFCQBI7YndTJJNMzLJRrEFqMR8Uuwft5IiVP8cF2zUU/sWDXRMffM4XzlajI6DohH+6YN5G4aIy+vEA1iG87wCXl/YRdQb3XL1RzRkJaWjrcnLZFC4N/X0vU7cP5C0v8Ewa3Lk56egdFTlqNQeAgGdG0mf8XfvX4yQoJvv5QmJufbV05wnJ2Yv3Irzl1IkisNXQYl4PWGtfOsNNRtFoUvts1BRkYmnmsaJVcvEi9elisdPaKnou7TVaSIEYdixHmGUQlLHYNQRC6Wspo1etax0pBfjCKub3cuyJMsRYORH03aNoIARQNFA8803HoM8CC0Ed84tGk0ASNEQwfflUaHfUv7C7JaOl4XB59fajsEQ3q2RM2q1++etPvTb7Bo8iD8dfocVm78CIO6N5e7YjoPTJDb0Rs8Y6xgEMF5hWgQCq1h6yFy8i629ly9lgJfXx8cPX7qpuc05IiGe0qXwGsdh6NLm0ZyQi0OIYszD/eVKYXTZy+gda9xmBPXD/ffVxpp6RnyPrp3lSoGcXK9/P1lZOFFkU+eOitXFMR5gcAAf7l05O9nw8lT/0hh4O/vl2fwiJWDZo3qYGC3ZvIgtDhz8faA9nIb03sffo517+3B3AniTEMg4masQnpGplx9EJc41yDOUYj2jzx0H9Zt+RirNu1CtcoPy4EnhIU40xAb3UkewharE+JMw/iYLo4zDfnFSNFgyncInepMgKKBooGigaJB568VmjORgBGi4U2TRMOiXKJBIP3l2J9ya72Yc5a9507EDe0k55mHfjgqXxdb69dv3St/4BZz2tzXyhkxeLRCOd0r4xWiIQf+6MnL5CReTLjFgWYxwf73w91yREPZMqXkxH7MlGWycEI0PPdUFcehlP1f/Yj4OWulWAjw95O/7ItDx6KQB745gsCAANx9ZzGMG9IRRSMjpBqcOGsNPjlwGOkZGXKr0twJ/W9aeRArEuJuSe9u3yfvcNS0UR3H3ZNEHnOXvyfFgK/NF1UfKy8FSWjI9cPUYnvSqk0fYe/GqXIbkTiw/dwb/TBtdC/H6oRYXREDTGyPerDsXYgoFCa3JuXcPSm/GCkadP/s0aAJBCgaKBooGigaTPjqoUuDCBghGtqaJBqW/ks0GIRMk1mvEQ2aKBVgZ7HSIM4OuMPF7UnuUCXGmJsARQNFA0UDRQO/FT2HgBGiobXvClMALc9qZYpfJU4pGpTQKoC2t/pFvwDcqnJB0aAKGzuZSICigaKBooGiwcSvILrWmYARoqGlzRzRsNJO0aDz8PB8cxQNnl9jZmgeAYoGigaKBooG876B6FlvAkaIhua25XqH6ZK91fbWLrUzsxFXGsyk7+a+udLg5gVk+DcRKFEkCOeT0mDPytZEJyLUHxn2bCSnZmqyExRgQ0igDYlX0jXZEXdKLlkkGKcTxZPqtV1FIwKRdC0DWp/TEh7sB/j44EpyhqaAAvx8USjUX9ZN61UqMhhnElOgrfpAZHgAktPsSE23awopNMgPfjYfyVvLZfP1gajb2YupWsywLwlYjoARoqGpSaJhLUWD5cYXA9KRAEWDjjBpyhIEKBqcl4GiwTkjigbnjNiCBPQgYIRoeM22TI/QFNt4x37j6c+KOxdQB640FBBoT3RD0eCJVfXsnDx5e5JVctPrAWhiJOply1PtGMHIs78BmJ2nETBCNLxqkmjYSNHgacOT+eQmQNHA8eBuBKwysTZismeV3PSaoJORa58uvXjn2HHNK1uRgDUIGCEaXrEtNSW5d+3Xn7ll5YsrDVaujsVjo2iweIEY3k0ErDKx5oTYtcGp94TYKvXXKy8jxpFrlWErErAGASNEw8smiYYtFA3WGFS5o5i/civS0zPQvX1jTcGpvcvRU417YfOSsSgSEa7Jv9rOazfvlk/CjunTGlpZUDSorQL7mUXAKpNGIyZ7VsnNyhNiMsr/k8eVBrO+lehXCwEjRENDk0TDVooGLUPBmL5qJ8riidANWgzE1mWx8Pf3A0UDQNFgzBilVeMIWGXSSNHgWo31EiCeaseIceRaZdiKBKxBwAjR8IJtiSnJbbO3M8WvEqdetz1JiIaMjEx0a/eKEk6y7YGvj6D6fyvI/6ZooGhQPIDYwXQCFA3Of2kmI+9mZPqHlAGQgAICRoiG+iaJhh0UDQoqX0BNhWj4+8x5/PbHKZw6cx53lSqGsYM74O47i8sI9u7/DpPnrcfV5BTcU7oERkS1Q5nS19/LLRRy//eJv85i2ISF+Of8JZQuWRRjBndAqeKRss/GbZ/IbUD+/v6o/3QVbPrgU6yfN/Km7UmdBsSjdo1K2Lv/WySnpCI4KBATh3VFRKFQp3EdP3kaoyYvxZ9/n0NYSDD6d22KmlUryn4XLl7G0LgF+P3E3yhZPBKVKz6Iq9dSbrk9ScS5ecdnsNuz0PLV59CqSV1pY9WmXVi16SO5rSs8LAQzY/ugZLFIrjQU0JilG/0IcELs3RNiq9Rfr5UPUU29bHF7kn7fM7RUcASMEA11/RYXXAK5PO3MbG+KXyVOvXKlYcWGnVgzezhKlbgDm7bvw8Zt+7B8ejT+On0ObXqNw5IpQ6RQ+HDvV5i15F1sXDgavr4+txQNWVnZaPxWDP6/vfuAquJa9wD+R4odBBTsJubGa7xXjRpr7L1GicEeFHsviBULWMFeHsZeY9egxi7WJPZEc69JjImxxY4goojS3to7FwJKmeHM4cw55z9r3bXei3u+vfdvj675zuzi278j6lSvIJOEQycuYNmskfjj9n14Dw/E1mWT5Uv2uu2HMCt4M77dvTjNpEFMe1o0dShsbXPIcvny5cHA7m0zbJeYNtXW20/WX7/Wh7h55wG8RwRi05JJMnHxnfKFTIiG9W6P8KdR6DJwqkwo3lzTcPD4eWzZfUy2Oy4uHp0HTsXU0T1RumQRtPOegP0bg5DTwV4mWiIxEhenJ6n5q8ayehDQy0ujMV729NI3rV5iaaTsb4xW3kwalHmzlL4EjJE0NLRbbZJOHovraZJ61VRqlUnD3fth8Pf9a+6YeOmu1WYQDm6eLROI+w+fYNyQrsmG4oU50K8vyv6jZJpJw9Xfb8tf8neunCLviYuPx0fN+uLCweXYsOMQHj6OSI4npkVVbtYHp0IWpZk0tG9VF83qV5NxDhw7hxNnLiPIrx/WbjuYbrsSEhIwIWiVTGySrhmLvpRfULw8m+Gj5n1xbMcCOObLI/940aqdeBYV/VbSMMRvITxw6AQpAAAgAElEQVRa1EHD2pVlueA1IUhITMTA7u3QstsY9OrSCh7Na8v1HEmXSJh4UcCcBAJnfIvA6d9luclj/T7G2PG1YWgc0QCtYllqHBope0y1Hn9ltbIUBfQhIH7Q1fqqZ7dS65CK4p2M662onCkLWWXS8CI6BsP7fJbs3qLrGDnlZsfXJ+Dq4oRenVsm/1m/0XPRxaMx6tWsmGbSIKYzjQwIhnuhv6YjiSvy2QvsWjMNa7YcgIuzY6p4tT4ZhH0bAtNMGsSLefVKH8gY4mvF4ZMXMHfyQPnVIb12JSQmQOyItDRoZHL9KzftQ0RkFAb1aIfabYfgh8Mrkv9s41ehENOZ3vzS0KGfv/wSIb4miOvV61g0qfsRxgzqLKdzfbF+D85cvCITEfE/cd0Pf2nKZ5d1U0C1wOJ5Z/F/c8+pvi/phsEjq2OITw0YGkfE0yqWpcahkbLHVOvxV1YrS1FAHwJFXHJr3pDadn+/M2kePIOA38b1yc7qslSXVSYNd+49wpRRf30GEr+W12wzEIe3zMHOfSdTfRkQf57Zl4ZffruFgLlrsWXp5LcGYPWW/XgS/gyjBnaSfybWClRu2gcnvlqQZtLQu0trVKtU9q2kQcRJ+cUiZbti4+IxefbqdL80VGnWV37ZyJsnl4y7ZN1uhEc8eytpGDx+ITq2bSCnWKV3hYVHYsDY+Rjs7SGTKE5PytLfOd5kQgG9TOGRL8Q+1THYpwb00ia9tYdGyv6iaD1uymplKQroQ8AY05Nq2i83SefOxPY1Sb1qKrXKpGHdtkPYsnSSnMKzY+9JufhXrGm4ffcRegyfiTXzx6JUcXccOXURi1eHYNfqaemuaRCJwGd9JqG/V1s0q19VTncS6wreLVkEv9+4C/GlYvMXk+BWsIBcUDx94YZ01zSklzRk1C4x2K29xmJkv45oVKfy32sagifKNRs+/kvwfuliGODVFk8jn6PbkOmoUblcmmsaNu86KtdUiMXXoqyYniQWZD98HI53ShSWCZaPfzBaNa4hv0IwaVDzV41l9SCglxd0vhArexq0fiHWy/hr1S9jPEfKRoalKKAPAWMkDdXtl5mkc+di+5mkXjWVWmXSYGNjg9MXruD2vUco4uaKGeP+3j3p2HeXMG/ZNsTEvEKJYm7wH+ktEwhxpbd7knipn7ZgPX69fkcmDY3rfoRJI7zkPSIpEbsSicXNDWpVwrlLv2DFHF9VXxpEnIzaJaYbTZq9Wi6YdsqfDyP7d0j+YiC+Dog1F9dv3kVB1wKyDY+fPE1z9ySxUHtzyFG5e1MBx3yYMb4PShZzR1/f2QiLeAZ7O1vU+ujfGD+0m+wPkwY1f9VYVg8CenlpNMbLnl76pucXYhql/7eQC6H18C8U26BWwBhJw0f2S9U2Q5PyF2P7axLHmEGsLmkwJqa1xWbSYG0jbv791ctLI5MGZc+SVgmIpcYxxnOkbGRYigL6EDBG0lDJfolJOncpdqBJ6lVTKZMGNVosm0qASQMfCHMTYNKQ+S/NNLJuI3P7O832WreAMZKGCg7BJkH9z+tBJqlXTaVMGtRosSyTBj4DZi3AF2LrfiHWy/hr9eWDXxrM+p8jNl4DAWMkDf9y+D8NWqY+xE+vB6u/KZvvYNKQzeCWVB2/NFjSaFpHX/Ty0miMlz299E3PL8Q0yjxptI5/CdhLSxEwRtJQ1mGxSXiuvh5iknrVVMqkQY0Wy/JLA58BixZwd86FsMhXiDfw4EKnvPaIjU9EdEycQV65HGyRJ6ctwqNeGxTHxgYo7Jxbk7NVCjrlROSLWMTGJRjUpvy57QAbG0RFxxoUx8EuBxzz2stxM/QSe74/CH8JQ4+tdMnvgOhX8Yh5HW9Qk/LmsoOdrY30NuSyzWEDMW4PI2IMCcN7KaA7AWMkDWUcFpmkn9deDzVJvWoqZdKgRotlmTTwGbBoASYNmQ8vk4bMjZg0ZG7EEhTQQsAYScN7ORdo0TTVMa6/Gq76nuy+gUlDdotbUH2cnmRBg2klXdHL9BTBrdU0HkuNQyNlfym1Hn9ltbIUBfQhYIyk4Z2c803SuZuvRpikXjWVMmlQo8Wy/NLAZ8CsBZg0pD98Wr98GmrNpEHZXzWtx01ZrSxFAX0IGCNpKJFznkk6d+eVj0nqVVMpkwY1WhZQduvuY/jtxt00D3dT2z1+aVArxvKmFjD0RVarFzS+ECt7ErTyttQ4xniOlI0MS1FAHwLGSBqK5pxrks7dezUyVb3/vXoDE4JWygN5y75XEkET+qGQawGTtC2pUiYNJuXP/sqZNGS/OWvUjwCTBn5p+L9557L8QOot+WDSkOWh5I0WImCMpME91xyT6DyM8U2uNz4+AS27jcGE4V6oU708vtx5BGe+/wnBM0y77oFJg0keDdNVyqTBdPas2fQCTBqYNDBpSPsZSEqITP+3lC2ggHIBYyQNhXLNUt4ADUs+jhmdHO2/v/yBmYs3YtOSifK/JSQkot6nQ7H/yyDkz5dHw1rVhWLSoM7LaKX7jpqD+rUq4eSZy4h+GYPcuXJi9sQBcHLMK+s8eeZHzF++Hc+jX6JUMXdMHtkDJYu5yT+7cfs+psxfhzv3HiNfntzwHdARtauVl3/2JOIZ/AJX4o9b91DYzQWVy5fB8xcv05yetGLjXuw+9B1Ehtv108bo1r6JjLEp5Cg2hYTi9etY+bAGzxyOwoVcwOlJRnscGNhIAkwamDQwaWDSYKR/XhjWBALGSBpccgWZoCdAeMyY5Hr3HjkjvyxMH9s7+b91GjAFfsM+R/my75qkfaJSJg0mo09dsUga7O3tsGjqUNja5sCs4M3Ily8PBnZviz/vP4bX0BlYu2CcTBQOn7yIJWt34atVU5GYmIi23n7w7d8R9Wt9iJt3HsB7RCA2LZmEIm4u8J3yBUoUdcOw3u0R/jQKXQZOlQnFhOGfQyQJIhEY5O2Bg8fPY8vuY1g2ayTi4uLReeBUTB3dE6VLFkE77wnYvzEIOR3scfdBGIoVLigbz6RBJw8Pm6FYgEkDkwYmDUwaFP+DwYK6FzBG0uCUK9Ak/Y6MGZtc7/a9J/DLb7cxaYRX8n/rMTwQA7q3RfVKH5ikfUwaTMb+dsUiaWjfqi6a1a8m//DAsXM4ceYygvz6Ye22g7j/8AnGDemafKN4kQ/064uEhARMCFolE4ika8aiL1G8SCF4eTbDR8374tiOBXD83+esRat24llU9FtJwxC/hfBoUQcNa1eWYYLXhCAhMREDu7eT8+p6dWkFj+a1ZWKTdEW/MuzgKh3xsylWIjAn8DTE/7J6+Y6tBfE/Q+OI+rWKpcc4o8bWwmwDrZOMtIgljCwxjtZGwokXBcxJIE/Ov99JzKndmbV1b+gZfHP2P3Lxc9LVvvck+I/sgfIflM7sdqP9Ob80GI1WXWCRNIgX86QM8tCJCzh88gLmTh4ovzq4ujihV+eWyUH7jZ6LLh6NkZCYALFOYWnQ36vuV27ah4jIKAzq0Q612w7BD4dXJN+38atQOZ3pzS8NHfr5yy8R4muCuF69jkWTuh9hzKDOuPcgDF+s34MzF6/IRET8T1wRBp5Sq06IpSlguMD82WewYPaZLAcaPqomRoyqCUPjiAZoFUuPcUSbhLMh1klGWsQSMSwxjtZG4tnmRQFzEnDO72BOzVXc1p+v3cTkOWuxfbm/vCcuPl6+zx3aNDt52rriYBoWZNKgIaYhoUTS0LtLa1SrVFaGSZk0rN6yHw8fR6T5pSE2Lh6TZ69O90tDlWZ9cSpkEfLmySXjLlm3G+ERz95KGgaPX4iObRugTvUK6XYjLDwSA8bOx2BvD9SrWZHTkwwZcN5rEgFOT0qf3Rp2BtLL+GtlLUZTq1hcCG2Sf5JYqYECxpieZGCTNLldLHxu032cfO8TU8rF7knHvv0Bq+f/ve5Bk4pUBmHSoBLMWMUzShpu332EHsNnYs38sShV3B1HTl3E4tUh2LV6mmxOa6+xGNmvIxrVqfz3mobgiSji7gof/yV4v3QxDPBqi6eRz9FtyHTUqFwuzTUNm3cdlWsqxOJrUVZMTxILsh8+Dsc7JQrL1fs+/sFo1biG/ArBNQ3GehoY11gCenlpNMbLnl76ptVLLI2U/S3QyptJgzJvltKXgKUmDUL51+t3MH7mCjk9vXSponJKuph6bsqLSYMp9VPUnVHSIIod++4S5i3bhpiYVyhRzA3+I71lAiEuMd1o0uzVcsG0U/58GNm/Q/IXA/F1QOyedP3mXRR0LYAGtSrJg0LenJ4k4qzbfgibQ47K3ZsKOObDjPF9ULKYO/r6zkZYxDPY29mi1kf/xvih3eRibSYNOnl42AzFAnp5seYLsbIh0/qFWC/jr1W/jPEcKRsZlqKAPgQsOWnQh3DqVjBp0OOomEmbmDSYyUCxmckCenlpNMbLnl76pucXYhql/48BvzTwH0pzFGDSkL2jxqQhe70tqjYmDRY1nFbRGb28NDJpUPa4aZWAWGocYzxHykaGpSigDwEmDdk7Dkwastfbompj0mBRw2kVnWHSkPkvzTSybiOr+IeAnbQYASYN2TuUTBqy19uiamPSYFHDaRWd4Quxdb8Q62X8tfrywS8NVvHPFjuZgQCThux9PJg0ZK+3RdXGpMGihpOdAeDunAthka8Qn5BokIdTXnvExiciOsawAxBzOdgiT05bhBt4JoqNDVDYOTfuh780qF/i5oJOORH5IhaxcQkGxcqf2w6wsUFUdKxBcRzscsAxr70cN0OvIi658SD8JQwbfcAlvwOiX8Uj5nW8QU3Km8sOdrY20tuQyzaHjRy3hxExhoThvRTQnQCThuwdEiYN2evN2ihAAQpQgAIUoAAFKGB2AkwazG7I2GAKUIACFKAABShAAQpkrwCThuz1Zm0UoAAFKEABClCAAhQwOwEmDWY3ZGwwBShAAQpQgAIUoAAFsleASUP2erM2ClCAAhSgAAUoQAEKmJ0AkwazGzI2mAIUoAAFKEABClCAAtkrwKQhe71ZGwUoQAEKUIACFKAABcxOgEmD2Q0ZG0wBCliqQFx8PH79/Q7CwiPhVrAAypQuAVvbHGbf3UtXfkNhN1cUcXORfbl+6x5u332IOtUrwM7WVlX/YuPicfX323gSHglXFyeU/UdJ2Nupi5FRhbOXbIHvgI6wEYdbKLy0Gjet+qZVHIXdZzEKUMBKBJg0WMlAs5sUoEBqgQ+b9E6TpKCzI0K3zVPM1b73JPxx+z4SE/8+Eky8cIoXWfHylvTfLx9ZmWHMX6/fwbCJi5ErpwPcCznj4eMIxMfHY9G0oXi3ZJFsb4+oUCujlt3GYGPwBDg75YdIIMZMW4ZyZd6Bk2NeBPh6K+7bjz9fx0j/YDg55kMhVyc8CnuKZ8+jMT9gMMqXfVdxHFHw8MmLWLZhDyIio1KNXXhEFD4oUwqDvT1Qu1r5TGNqNW5a9U2rOJl2nAUoQAGrE2DSYHVDzg5TgAJvCogX+/CnUdh18Fv5su/l2Uwx0uot+/Ek4hk+/6wpXAs4IiLyOb7ceRgFnPKhZ6eWiuN0Gzxd1tu03kfJ9xw8fh5b9xzDmvljFcfRqj1pGT199hz7j57F69dx8O7UQnGbmnbyxeEtc2T5vqPmwLtjC9SoUg4tu43FgY1BiuN82msiRg/qjBqVyyXfc/riFcxdug07V05RHEcUbOg5ArMm9Md77xRNdV8vn1lYNW80cuXMidy5HDKNqdW4adU3reJk2nEWoAAFrE6ASYPVDTk7TAEKZCTQf8w8LA3yUYz0Sffx2L12+lvTWZp1HoVDm2crjlPXYyhOhSx6q3y9T4fh5FcLFcfRqj0ZVdhv9FwsmzVScZtae43DtmWTcfPOA4yfuRK71kyT9zby9MHR7cq/6qRnKr5k7P9SefIh6vboOQEhq/9qR8qrx/BArF2gPEnTaty06ptWcRQPLgtSgAJWI8CkwWqGmh2lAAUyE0hISESHfv7YsSIgs6LJf96440h8tWoqHPPlSf5vUc+j4dFrIkK3zlUcR7zsiV/L8+XNnXxP5LMXaN9nkqo4WrUnvYY/fvIU4sV634ZAxX3buvsYVmzah1evXmPGuL6oU708/rz/GDMXb0TwjOGK4wzxW4hB3h5yHUPSdeXXG1i79SDmTBqgOI6WBbUaN636plUcLY0YiwIUsAwBJg2WMY7sBQUooFJg2oINqe5ISEzEz9du4l9l3sHEEV6Ko63YuBd7Q8/Ao0UdFHItgPCIZwg58A1aNqqB3l1aKY4jfoUXi5/z5M6VfE98fALu3HuEd0oUVhxHq/aICkUCkvJKTEiUi7TFQmExHUvNJdYO2MBGTtvK6jUhaJW0rlK+DBzz50FY+DNc/uk3NKpdJdWC8bmTB2ZahViIvWzD13JBtlh7kvLa8sWkTO9PKqDVuGnVN63iKAZgQQpQwGoEmDRYzVCzoxSgQEoB8et3ysvW1hYli7mjWqWyqqHOfv8zjn13CU8iIuHq7ISGH1eSc/bVXGIBq5KrYrn3Mi2mRXtEJSJBSHmJRccHj51D7lw5Va1pEDHuPgjDkZMXIb5UuBVyRpM6VVC0cMFM+5KywKETFxSVb1a/aqblug6ahpaNqqN82dLI8cYOVf/+p7pF1Xrqm5ZGmSKyAAUoYFUCTBqsarjZWQpQ4E0BsQj6ZcyrVL/wZ0XJ0Djdh81MrlZMkxIv7OJXcJHEiP8/6Vq3cFxWmqfpPaKtatpx4vRlBMxbiyZ1P4JbQWeZOISe+h7+vj3ktqumuLyGzsD6ReMNrlqPfTO4UwxAAQpQIA0BJg18LChAAasUiH4ZA7En/97QsxD77Itdk1o1qgHfAZ2QN8/fU4Qyw9EqTlr1iK8Xpy9cwYThn2fWjOQ/12raTXoVvoiOgfiVPmkxs5KGtfEah8XTh6WaZnX77iMMm7gozcXI6cUUOy+ldy2f7aukKcll+o+Zi4VThyKng72q+94srLe+aWlkEAxvpgAFLE6ASYPFDSk7RAEKKBEYO2M5nPLnxcDu7eR5AWLqjdi3/2nkc0wfm/YZDmnF1SpOem1u3MFH1bkRWk676TQg9TamYk2DmIrTu2sr9OjQXAmzLJNeH8SaCTWLxc9fuppcZyIScevPh9i25zhG9PXEx1X/rbg9ouAX63fj+HeX5NcPsc5CrLdIuj5rXU9xLL31TUsjxQgsSAEKWIUAkwarGGZ2kgIUeFOgfvvhOL5jfqqtUsUUI7EbTtKZAkrUtIqTVl3ipbiP72xV7dFq2o1ojzh5OeUlTqcuXMgF+VPsFKXEyHtEILp92hSN6lROLn70mx+wKSRUnolgyCWMfPyDVZ/T8OZC+JRtUPNlR499e9Mzq0aGjAvvpQAFLE+ASYPljSl7RAEKKBBo0XUMdq4MSLWWQUy9+azPJBzYOEtBhL+KaBXnkx5+qeoUp0GLQ+P8hnZDm6a1FLdHq2k3iitUUPDG7fsYOmER7O3t5A5R4iRnsU5DnHZdspibgggZF0l5eJzBwVQGMJe+mdJIJSmLU4ACOhVg0qDTgWGzKEAB4wqIrUlPnf2PnGaT9CK7dtsBNPi4kqqTnLWK88ft+6k6bGebA+6FXFTPuddq2o1oTEbz44f0ao81Ww5gnn/m25uKWGL72Gt/3JEJg/D+53slkSPH31OClI62ON9BfOkQU8sMucS4pXf16dpaVWi99U0rI1UILEwBCli8AJMGix9idpACFEhLQExF2nf0LA4eO49HTyLg5uqM1k1qonmDaqrAtIqT9GL9240/8SgsQu4yVKZ0CdUv1lpNuxHtSTk//k2UcmVKySSgcvkyir3EgnPxgp3yUrMQWSxc333oOyQkJGDBlCFyZymRhDx8HI7yH5RW3A5RMHhNSHL5xEQgPDIKJ05fQuvGNeHTr4OqWFoU1qpvWsXRok+MQQEKWJYAkwbLGk/2hgIUMFOBpN2EHOztcf3WXZQo6gZx4NyiqUNRqri7wb169TpW9VcLgyv9X4CTZ37EtIUb5MF3Nm98XLh4cLniahp8Nhz7NgThweNwLFixXdqI3aJGT12KLUsnK46TXkGxCF5sDTs/YLDiWB82eXvRvIO9nTzoT82p2Vr1Tas4igFYkAIUsBoBJg1WM9TsKAUo8KbA/qPnsDf0NB4/iYR7QWd5inOLhtVSLY7OTC2jaS7iV2uxbWrXTxtnFkZOBRKnSrdoWB2tPh8rXzjFy/aqzftUnycQ9TwaEZHPAfx9vsPkOWvkFqOOKhYxZzQ9KWWHMtvu9NNeExHo1w9lShfP1CGjAu17T0pe8CzallSvWLx+aPNsg2In3SwWNq+ZPzZLscRXJ7HoeNGqnWjdpJY85E/ppVXftIqjtN0sRwEKWI8AkwbrGWv2lAIUSCEgXvbFwVw9OjaXCYNIHNZtP4i6NSqid5dWiq1STnN58yaxgPng8fPo261NpvHqfToMJ79aKMslJQ3i/27eZTQOblK+MHvesm3Y/vUJFCronKrOO/ce4b1SRdHf6xM0rlMl0/aIAhlNT0oZILNTtHv5zDJ4lyRR36aQo3j9OhYdPmmA4ZMWI3jmCJy/9AumLVivavG6iBURGZXKQCzMvnL1Bpas3YWtywz7avH8xUu07eGHo9vnKXLWsm9aGiluPAtSgAJWIcCkwSqGmZ2kAAXeFGjk6YM962akOsgt+uUriF9qD2wMynawuh5DZdJgY2Mjk4bda6djz6HvsC/0rKoXbjE95et1M5Evb+5UffDs64/ty/2zvV+iwlFTv8CIPp4oWrigQfWLLxYi+RG/6IvLxiYHiri5wHdAR5nsqbmEd8pLbCdbspg7fPt3VL0+Iq16xfkdgeP7Km6SVn3TKo7ihrMgBShgNQJMGqxmqNlRClAgpUCTTr44vHn2W+c0NO08Cke2pH/y8JuKP/58XRFsxXLvZVhuyvz1+Lx9E7xbsghqtx2C5y+iUa3SBwgY1VO+GCu9xDSkAF/vt4qLBbKjBnZSGkaW02p6kl/gSvnFpUqFMijgmC+VedCEfqrapLfCGY1/ZmOut76wPRSgAAUyEmDSwOeDAhSwSoHxM1fIF9h+Xp/I7Tsjo15g6fo9EOsBpo3ppdik+7CZisquWzhOUTlRKCw8UrZJnGug1SWSBvGLvPiSofRKmp4UGfUcc5duk1Obirq//bUgs+lJh05cSLfKZvWrKm1OpuXEFwil/Yt+GQPRLldnR9VfKVI2JOX4i/ojnkZBbJ9bv9aHCJ4xPNM2Ky2gpm8ZxdQqjtJ2sxwFKGA5AkwaLGcs2RMKUECFgJh3PvuLLThw7Bzi4uLlC3qrxjXh279DqgPfVIQ0uOj9h09w5NRFPHryFG6uBdC0flV5ArOa6/DJi1i2YY+cs580jUfcHx4RhQ/KlMJgbw/UrlZecUixRerqLfuxeddR6TJlVE9ULv++4vu1LJjWTkVJ8ZcG+kB8ZVG6ILqP7xyIKUkiQevYtgE8W9fHtT/+xE+/3pAL0g25/vPzdew5fBpqTpbWqm9axTGk/7yXAhSwTAEmDZY5ruwVBSigQkCsZciTO6eKO1IX1eJl/8zFnzBx1io0b1gduw58K3dyOnLqgpxqpGa+fkPPEZg1oT/ee6doqkYmLUbOlTMncudyUNRXsQ3suBnL4VIgP/x9vfEi+iWGTFgEcfiZ2Bkqo0urqU2KGvq/QmKRtIODvaJbkqanieTRd8oXWDZrpPza1G3QNHy9XtnXo4wq6u07GyvnjFLUFiWF1PQto3haxVHSZpahAAUsS4BJg2WNJ3tDAQqoELh+8y5Onv0RT8KfwdXFEfVrVULpkkVURAC0etkXC7AD/fri/XeLJ++edO9BGAaOW4Bda6YpbpNHzwkIWf12+R7DA7F2gbqtRMWOTsN6t8enLesm1y/OMhjstxBf/p9fhm1KmtokZkNd+PFXnLl4BZ5t6qOQSwE8ex6N/UfPygXHanaqUoygoGCnAVMgpoyJw+VSbt8qkgk1a1rSqkp85RFJ2lerpipoCYtQgAIUMA8BJg3mMU5sJQUooLHAjr0nEbw2BM0bVEdBFyd5CrNYrPvmS3Jm1Wr1si928zkVskhWl7Tlqphe1KLrGFVbrqZs78uY14q/KqTVz7sPwlAsjR2P1B4U91mfyfKsiZRfc8QWp/1Gz8WKOb6ZESf/eXpTbwo6OyJ0m/LtTUVAcUaH+JLTrnkduc3qsD7t5RazZ7//SdVBcZ/0SJ08JSYk4EnEM7noXM00J636plUcxYPCghSggNUIMGmwmqFmRylAgZQCTTv5YsNiP7gX+vs8A3HSsPfwQFV7/mv1si+2gN2/MUj+8t2i62gE+PZEyIFvYG9vK9cRKL3EAl+xaHnf0bNyUXf+fHnQqlENjDThWg0xZerwljmws7VN1Y3OA6di85KJSruWqpxIqMKfRmHXwW9hb2cLL89mquIMGDs/VfkcOWzk+pHuHZqjZDE3xbHEoueUl51tDrgXcjHo9G1D+5bUHq3iKMZgQQpQwKIFmDRY9PCycxSgQHoCKQ9QS1lG/HK8Z+10xXBavex/tf+U3GK1eJFC6NQ/QC7MFmsZuns2UzxPXzQ6YO5a2NvbY3ifz+DZdzI2LZmI5V9+LX/9VnNugGIABQXFmQUimenVuRWKuLnKRdrb9hzH8+iXCPIzfMvV/mPmYWmQj4KWmF8RrfqmVRzzE2SLKUABrQSYNGglyTgUoIBZCYgtSMUvyp5tGkD8yhwbG4dNu47i+fNoDPL2UNwXrV72FVeYSUHxq/6hzXPkr+8pEyPx9eLARuUnS2vVHhFHTJNasfFrHP/ukkxeXAqI9SMfypOyDVmALmKLaU4d+vljx4oALZusi1ha9U2rOLpAYSMoQAGTCTBpMBk9K6YABUwpIObZ//LbLflynTdvbjyLeiFfQMWpxa9evU5uWtI6A2O3VZwbIabYlP1HSfmSHTBvLX6/cRdjBnVG1Q/LKq6+Trsh+GbXYlk+KWm4fusefAOWpPaKsnwAABy+SURBVLlAWnFgHRSctmBDqlYkJCbi52s38a8y72DiCC8dtDDrTdCqb1rFyXpPeCcFKGCpAkwaLHVk2S8KUCBDATFFRsnl7JQ/w2KxcfH4at9JHD99Wf6KLg4La1i7Mj5tWeetOfwZBRJfCI5t/2ue/ZJ1u+X5AZ3aNoRIJtT8it5t8HTMGNdHfkWp3344ShV3x+27D+U2rGqSDyU22V1m6+5jqaq0tbVFyWLuyOxwuexuZ1bq06pvWsXJSh94DwUoYNkCTBose3zZOwpQwMgC0xduwI07D9DFozEKyV2YnuLLrw7j/XdLYPzQroprF7skHdgYBLGPfstuY7B9RQBEwqJ2WpE4c0J8PRFrIsRBb4758qBCudImO7BOMYDKgobuDKWyumwtrlXftIqTrZ1nZRSggG4FmDTodmjYMApQwJgCWh0+JhZCH9w0S76kJ13yxf/zsQjdOldxF8QJxfVqVsRvN/6E+AV90ggvedhYp/5TZDLBC3Ixtd52htJqXLTqm1ZxtOoX41CAApYjwKTBcsaSPaEABVQIJB0+ltktmU19aevth69WToWtbY7kUHHx8ejYLwA7V07JLHzynz9+8hQrNu6FvZ0dBvZoh7x5cslD0H786XfUqV5BcZy09ul3sLdDIdcC2LchUHEcPRbU485QWjlp1Tet4mjVL8ahAAUsR4BJg+WMJXtCAQpkUcCQaRxi69Dv/3sNHT9pAMd8eREWEYktu47ho4r/RK2q/05ukZqTpg1pT0oCsU//rT8fYtGqnWjdpBYaflwpi0L6uE2PO0NpJaNV37SKo1W/GIcCFLAcASYNljOW7AkFKKBCQKtpHOJLQ2Ji5hVndvaDVu1JqyXPX7xE2x5+OLpd3anJmfcqe0tY8s5QWvVNqzjZO7KsjQIUMAcBJg3mMEpsIwUooLmA3qZxGLs94oA1Ux3uptXgWfLOUFr1Tas4Wo0Z41CAApYjwKTBcsaSPaEABVQI6G0ah97ao4Iy24pa8s5QWvVNqzjZNqisiAIUMBsBJg1mM1RsKAUooKWA3qZx6K09WlprGUuci3H199t4Eh4JVxcneRie2GLWEi6t+qZVHEswZR8oQAHtBJg0aGfJSBSggBkJ6G0ah97ao8eh/PHn6xjpHwwnx3wo5PrXmRhih6n5AYNRvuy7emyy4jZp1Tet4ihuOAtSgAJWI8CkwWqGmh2lAAVSCuhtGofe2qPHp+XTXhMxelBn1KhcLrl5py9ekWc3qNne1pL7ZslGehw3tokC1iTApMGaRpt9pQAFkgUuXfkNhd1cUcTNRf6367fu4fbdh/JMBDtb5dNd0joXQcQr6OyI0G3mvVuR3h6XZp1H4dDm2W81S5ygvf9L8z4AT6u+aRVHb2PP9lCAAqYXYNJg+jFgCyhAARMIiBfNjcET4OyUHyKBGDNtGcqVeQdOjnkR4OudpRaJcxHCn0Zh18Fv5Tx7L89mWYrDm9IWGOK3EIO8PeQ6hqTryq83sHbrQcyZNMCs2bTqm1ZxzBqTjacABYwiwKTBKKwMSgEK6F2gaSdfHN4yRzaz76g58O7YAjWqlEPLbmNxYKPhv1r3HzMPS4N89M5gVu2bELQKe0PPoEr5MnDMnwdh4c9w+aff0Kh2lVQncs+dPNCs+iUaq1XftIpjdoBsMAUoYHQBJg1GJ2YFFKCAHgVae43DtmWTcfPOA4yfuRK71kyTzWzk6WPwIWgJCYno0M8fO1YE6LHrZtumQycuKGp7s/pVFZXTUyGt+qZVHD3ZsC0UoIA+BJg06GMc2AoKUCCbBbbuPoYVm/bh1avXmDGuL+pUL48/7z/GzMUbETxjuOLWTFuwIVXZhMRE/HztJv5V5h1MHOGVYZyk9RA2NjZwsLfD69g4iClOKS831wLJX0QUN4oFKUABClCAAhoLMGnQGJThKEAB8xGIiIyCDWxQwClflhstko+Ul62tLUoWc0e1SmVVxVy9ZT8eP4mU6yDEdqJRz6Ox98gZRD57gcE9PVTFYmEKUIACFKCA1gJMGrQWZTwKUMAqBcQXgpcxr5And64s9b+N1zjsWTcD4qtDykust1g+2zdLMXkTBShAAQpQQCsBJg1aSTIOBShglQLRL2Mwe8kW7A09i7j4eLlrUqtGNeA7oBPy5lGeQDTu4INtywPgUiB/smPMq9cQh75xbYRVPlqy09f++BNlShe3XgD2nAIU0I0AkwbdDAUbQgEKmKPA2BnL4ZQ/LwZ2bye3axUnFC/bsAdPI59j+tjeiru0YuNe7Nx3Cu1b1UURd1d5/+5D36FJ3Sro262N4jiWXFAYKbn6dG2tpJiuyrx+HYtvL1xBxNOoVOta1mw9gLGDu6B6pQ/g4GCfaZvFIvzdh77FkVMXERYeCTdXZ7RoVB0tG1Z/6ytWpsFYgAIUoEAKASYNfBwoQAEKGCBQv/1wHN8xP9ULmZiqJA7ZStrSVWn4s9//jGPfXcKTiEi4OjuiXs0P8XHVfyu93eLLrdy0D+IluuHHlaWPWJNy7Nsf5JarbgULJL9si7MczO3qNXIWEhMSUbpU0VRNP3j8PJo3qIZ6NSvKgwczuxat2onzl66ie4dmcC/ojIdhEfIci/q1PoQ5JlOZ9Zd/TgEKZJ8Ak4bss2ZNFKCABQq06DoGO1cGpFrL8CI6Bp/1mYQDG2dZYI9N16WeI4IwZXRPFC9SKLkR9x6EYcz0Zdiw2M90DdOg5sYdR+LIljlvfQ3w7OuP7cv9Fdcg4uxaPQ358uZOvicy6gU69PVP8zRtxYFZkAIUsHoBJg1W/wgQgAIUMERATJk5dfY/6NGhufy1+1HYU6zddgANPq6Enp1aqgq9/+g57A09LXdREr8St2xUAy0aVuO0kv8pihfi0K1z3zJt6DkCx7bPV2Wtt8I79p7EZ63rvdWsfUfPyjUySq867Ybgm12LUxUXX77qegx9678rjclyFKAABYQAkwY+BxSgAAUMEBAvZOLF7uCx83j0JELOIW/dpKacUqLmEsnHidOX0aNjc5kwiMRh3faDqFujInp3aaUmlMWW/XzIDLRt9jE+bVkXOXLYyOlIYt3HV/tPYf2i8Wbf77sPwnDn7iPExsWn6os4Q0TpFRS8WSaw7oWck28R07i+WLcH44d2VRqG5ShAAQq8JcCkgQ8FBShAAR0IiJOoxZarKXdcin75Cu17i2lOQTpooembcOfeI4yfuQK/3bgrd5kSi4b/8W4xzBjXByWKupm+gQa0YNmGr7Ftz3HZnxw5cqSK9EXgCNWRDd0CWHWFvIECFLB4ASYNFj/E7CAFKGBsAS2mFTXp5IvDm2e/taC6aedRcq47r78FxBz9JxHP5GJosXOVJVwePSdg8xeTkCung0Hd0WoLYIMawZspQAGLFGDSYJHDyk5RgALZJaDVtCLxC3oBx3zo5/WJfBEWL8ZL1++RJ0NPG9Mru7qj+3rEL+g/X7uFx0+eyik4ZUqXgK1t6l/mdd+JNBrYx3cOVswx/BA/rbYANkdDtpkCFDCuAJMG4/oyOgUoYOECWk0rev7iJWZ/sQUHjp1DXFw87O3t0KpxTfj275DlU6Ytjf7mnQcY4rcQtra2MmEQiUNcfAIWTxuKUsXdzbq7c5duw7/Lvoum9T4yaOG7llsAmzUoG08BCmguwKRBc1IGpAAFrEnAGNOKxFqGPLlzSkaxKFacMs0LEAuhvTybokndj5I5xOLx9dsPYfX8MWZNJNauXP39tjzATXxpsrH5uzvHdyxQ3DduAayYigUpQAGVAkwaVIKxOAUoQIGUAlpPKxJJwn9/+QMXLl/F+cu/yP/7/P6lRAfQ4DNxkN7bL9DpbcVqTmhih6P0Lmen/Iq7ouUWwIorZUEKUMAqBJg0WMUws5MUoICxBLSaViR2zxFJwrXrd/D+u8VRpUIZVKnwT1Qo917yVwdj9cFc4rbznoCFU4ekmop068+HGDZxMXatmWYu3TBqO7XaAtiojWRwClDALAWYNJjlsLHRFKCAHgVSTitS2z5x+JZbQWd0aFMfdWpURBE3F7UhLL78yTM/wn/uGjStV1VaPQqLQOip7xEwyhu1qyk/y0CPUH1Hpb9D1vLZhi+Q1mOf2SYKUMC8BJg0mNd4sbUUoIAOBa7fvIuTZ3/Ek/BncHVxRP1alVC6ZBFVLRW/EF/59SZOnbksY4nF0HWqV0C9mhVRuXwZVbEsubA4AC30m+9lwiASB5FAWEKCdf7S1eRhS0SiPIPi6yOn8XHV8uji0UjxkIrpSeldfbq2VhyHBSlAAQq8KcCkgc8EBShAAQMEduw9ieC1IWjeoDoKujjJl9mDx89jWO/28uTirFyxsXE4+u0PEC+AYnHsTyfWZiUM7zFzgfj4BAwaPx9Lg0Yq7knwmpC/k49E4NbdBzj3wy/o79VWVfKhuEIWpAAFrEaASYPVDDU7SgEKGEOgaSdfbFjsJ7cATboePA6H9/BAHNg4S3GV9x+F45tz/8E3Z3/Ef6/eQMVy76FujYqoW6MCCrkWUBzHkgtmNIVnSK/2WLPlAOb5D7Qogs+HTJfPlyGXeK627z2BRVOHGhKG91KAAlYuwKTByh8Adp8CFDBMoNXnY7FvQ+BbQT7p4Yc9a6crDv6v+j3wz/dKoGenlmjesBrsbLnN6pt4KafwvPln5cqUwrU/7pjtVK5DJy6k6pKYrvbfq3/g2vU/NTn0rVrL/tyFS/HfRhakAAXSEmDSwOeCAhSggAECs5dsQclibvBs0wA5cthATC3atOsonj+PxiBvD8WRj37zA85d+gUXLv+CqBcvUaW82D2pDKpU/CfeK1VUcRwWNE+BkQFLUjVcJI3iueryaWOo2XI1vd7/cfu+6nU25inJVlOAAsYSYNJgLFnGpQAFrELgsz6T8ctvt+QBbHnz5sazqBdISEhE0cIF8erV62SDUyGLFHs8jXyO85evygTi3KWrqr5YKK7EDAtmND0pZXesebchLoQ2wwebTaaAmQgwaTCTgWIzKUABfQpkdChXyhYr+bVYHOwmFj4/CY+Eq4sTyv6jJE+DToGY0fSklNbVKpXV58OSQav2Hz2Hecu2wtXZCXMmD0CJom4y+RRJaAGnfIr78+ZC6PDIKJw4fQmtG9eET78OiuOwIAUoQIE3BZg08JmgAAUooAOBH3++jpH+wXByzIdCrmIXpqd49jwa8wMGo3zZd3XQQn014WXMa+TO5aCvRhnQGnGq9Xz/Qbhx5z5EcjRtTC/88N9rWP7lXiwN8jEgMiC+XAXMWyufJV4UoAAFsirApCGrcryPAhSgAIAPm/RW5HD5yMoMy33aayJGD+qMGpXLJZc7ffEK5i7dhp0rpyiqw9ILRb+MkR77jp5F1PNo5M+XB60a1cDI/h2QJ3cus+5+W28/7F7z18L5Pr5zkhc/N+s8Coc2zza4b94jArFm/liD4zAABShgvQJMGqx37NlzClBARwLpvRy27DYG+78M0lFLTdeUgLlrYW9vj+F9PoNn38nYtGQiln/5NZ5EPEPg+L6ma5gGNU+eswZtm9VG5fLvQ6zdEOsywp9GwbPPZBzdPk9xDW9OlxNTnK5cvYEla3dh67LJiuOwIAUoQIE3BZg08JmgAAUooJGAIVNmhvgtlLstiXUMSdeVX29g7daDmDNpgEYtNO8wDT1H4NDmOXKdR8qtblt0Ha3qTAw9KoyfuQL7j51DmdLFcefuI5QuVRTXb92Dd8cW6Pd5G8VNruuR+iwGW9scKFnMHb79O6L8B6UVx2FBClCAAkwa+AxQgAIU0FBAqykzE4JWYW/oGbnVqmP+PAgLf4bLP/2GRrWrQLz4JV1zJ1vW4WVqhqJOuyH4ZtdieUtS0iBerH0DliBk9TQ1oXRXViSIKa8cNjZwK+gsTxnnRQEKUEAPAvzSoIdRYBsoQAGzFdBqysybh3ulB9KsflWztTK04d0GT8eMcX3k+QX12w9HqeLuuH33IWZN6I+qH5rfjkmGevB+ClCAAtkpwKQhO7VZFwUoYHECljxlRm+DFf3ylZyaZG9vh8MnL8IxXx5UKFfa7BdB682Z7aEABSiQlgCTBj4XFKAABQwQ0HLKzKET57H3yBm53apbwQJo3aQmmtWvZkDrLO9WnmVheWPKHlGAAuYhwKTBPMaJraQABXQqoNWUmXXbDyH01EX06doaU+avx9jBXbBu2yHUrVFB/jdeAM+y4FNAAQpQwHQCTBpMZ8+aKUABCxDQaspM8y6jseWLSfL036RFvjGvXqN970nYtyHQAqQM7wLPsjDckBEoQAEKZFWASUNW5XgfBShAAQCbdx1FtQ/L4r13ikmPr/afwu837qJ7h+ZwL+Ss2EhslXkqZJEsn5Q0vIiOkecR8JyGvxh5loXix4kFKUABCmguwKRBc1IGpAAFrEmgcQcf+VLv4GCPPYe/w/avT6J5g6o49u0lrJo3WjFFG69x2LDYT35paNxxJDya18ahkxfRoU19dGvfRHEcSy7IsywseXTZNwpQQO8CTBr0PkJsHwUooGuBlAeLtfOegHkBg1C6ZBGoPclZ7NNf1L0gXArkR1DwZuTO5YB6NT9ExXLv6br/2dk4nmWRndqsiwIUoEBqASYNfCIoQAEKGCDg2dcf08b0ws/XbuLg8fNYNmskYmPjIJKJ0G3zDIjMW98U4FkWfCYoQAEKmE6ASYPp7FkzBShgAQLf/+caps5fL88OmDNpgDxw7OHjCOw6+C36fd5GcQ/7jpqTbtnls30Vx2FBClCAAhSggDEEmDQYQ5UxKUABCqgUOH/pavIdiUjErT8fYtue4xjR1xMfV/23ymgsTgEKUIACFNBWgEmDtp6MRgEKUEAzAZE4+PgHY+fKKZrFZCAKUIACFKBAVgSYNGRFjfdQgAIUyCaBpp18cXhL+lOXsqkZrIYCFKAABaxcgEmDlT8A7D4FKEABcxFYsXFvuk3lqdnmMopsJwUoYK4CTBrMdeTYbgpQgAJWJhC8JiS5x4mJQHhkFE6cvoTWjWvCp18HK9NgdylAAQpkrwCThuz1Zm0UoAAFKKChwNPI5wiYtxbzAwZrGJWhKEABClDgTQEmDXwmKEABClDArAW8RwRizfyxZt0HNp4CFKCA3gWYNOh9hNg+ClCAAhSQAhGRUakkEhISceXqDSxZuwtbl02mEgUoQAEKGFGASYMRcRmaAhSgAAW0E6jrMTRVMFvbHChZzB2+/Tui/AeltauIkShAAQpQ4C0BJg18KChAAQpQgAIUoAAFKECBDAWYNPABoQAFKEABsxG4+yAMR05exOMnT+FWyBlN6lRB0cIFzab9bCgFKEABcxVg0mCuI8d2U4ACFLAygROnL8udkprU/QhuBZ1l4hB66nv4+/ZAneoVrEyD3aUABSiQvQJMGrLXm7VRgAIUoEAWBdp4jcPi6cPwTonCyRFu332EYRMXIWT1tCxG5W0UoAAFKKBEgEmDEiWWoQAFKEABkws07uCD0G3z3mpH444jEbp1rsnbxwZQgAIUsGQBJg2WPLrsGwUoQAELEhDnMXT7tCka1amc3Kuj3/yATSGhWDVvtAX1lF2hAAUooD8BJg36GxO2iAIUoAAF0hC4cfs+hk5YBHt7O7gVLIBHYU8hzmpYNG0oShZzoxkFKEABChhRgEmDEXEZmgIUoAAFtBWIj0/AtT/uyIRBJA7/fK8kcuSw0bYSRqMABShAgbcEmDTwoaAABShAAbMRSExMxM/Xbsmdk9wLOaNM6RIQh7zxogAFKEAB4wowaTCuL6NTgAIUoIBGAjfvPMAQv4WwtbWVCYNIHOLiE7B42lCUKu6uUS0MQwEKUIACaQkwaeBzQQEKUIACZiHw+ZAZ8PJsKs9pSLrE2Q3rtx/C6vljzKIPbCQFKEABcxVg0mCuI8d2U4ACFLAygQafDcfxHQve6jW3XLWyB4HdpQAFTCLApMEk7KyUAhSgAAXUCrTznoCFU4ekmop068+HGDZxMXat4eFuaj1ZngIUoIAaASYNarRYlgIUoAAFTCZw8syP8J+7Bk3rVYVbQWc8CotA6KnvETDKG7WrlTdZu1gxBShAAWsQYNJgDaPMPlKAAhSwEIG7D8IQ+s33MmEQiYNIIIq4uVhI79gNClCAAvoVYNKg37FhyyhAAQpQIB2B6JcxyJM7F30oQAEKUCCbBJg0ZBM0q6EABShAAcMEwsIjMXPxRogdk8R5DeJQtwYfV8LYwV3h6uxoWHDeTQEKUIACGQowaeADQgEKUIACZiHQb/RcVPigNLp3aI58eXPj2fNorN68H1d/v42lQT5m0Qc2kgIUoIC5CjBpMNeRY7spQAEKWJlA4w4+CN02761eN+3ki8Nb5liZBrtLAQpQIHsFmDRkrzdrowAFKECBLAp0GjAFSwN9UMApX3KE8KdRGD5pMdYvGp/FqLyNAhSgAAWUCDBpUKLEMhSgAAUoYHKBZRu+xr6jZ9GyYXU45s+LJxGR2H/0LJrVr5ZqB6WObRuavK1sAAUoQAFLE2DSYGkjyv5QgAIUsFCBaQs2KOrZhOGfKyrHQhSgAAUooFyASYNyK5akAAUoQAEKUIACFKCAVQowabDKYWenKUABCpifwIqNexU1uk/X1orKsRAFKEABCigXYNKg3IolKUABClDAhALBa0IU1T7I20NRORaiAAUoQAHlAkwalFuxJAUoQAEKUIACFKAABaxSgEmDVQ47O00BClDAPAXuP3yCI6cu4tGTp3BzLYCm9auicCEX8+wMW00BClDAjASYNJjRYLGpFKAABaxZ4MzFnzBx1io0b1gduw58i5aNauDIqQsI8PVG3RoVrZmGfacABShgdAEmDUYnZgUUoAAFKKCFQPvekxDo1xfvv1scrT4fi30bAnHvQRgGjluAXWumaVEFY1CAAhSgQDoCTBr4aFCAAhSggFkI1PUYilMhi2Rbk5KGxMREtOg6Bgc3zTKLPrCRFKAABcxVgEmDuY4c200BClDAygQaefpg/8Yg5HSwR4uuoxHg2xMhB76Bvb0tpozqaWUa7C4FKECB7BVg0pC93qyNAhSgAAWyKPDV/lOoVukDFC9SCJ36B8De3k6uZeju2QwODvZZjMrbKEABClBAiQCTBiVKLEMBClCAAhSgAAUoQAErFmDSYMWDz65TgAIUMCeB8TNXwMuzGcr+oyRexrxGwLy1+P3GXYwZ1BlVPyxrTl1hWylAAQqYnQCTBrMbMjaYAhSggHUKNPQcgWPb58vOL1m3G2HhkejUtiFEMrFjRYB1orDXFKAABbJJgElDNkGzGgpQgAIUMExA7JJ0YGMQXr+ORctuY7B9RQCcnfLLRdEHNnL3JMN0eTcFKECBjAWYNPAJoQAFKEABsxDo4zsH9WpWxG83/oStrS0mjfBCZNQLdOo/RSYTvChAAQpQwHgCTBqMZ8vIFKAABSigocDjJ0+xYuNe2NvZYWCPdsibJxeePY/Gjz/9jjrVK2hYE0NRgAIUoMCbAkwa+ExQgAIUoAAFKEABClCAAhkKMGngA0IBClCAAhSgAAUoQAEKMGngM0ABClCAAhSgAAUoQAEKZF2AXxqybsc7KUABClCAAhSgAAUoYBUCTBqsYpjZSQpQgAIUoAAFKEABCmRdgElD1u14JwUoQAEKUIACFKAABaxCgEmDVQwzO0kBClCAAhSgAAUoQIGsCzBpyLod76QABShAAQpQgAIUoIBVCDBpsIphZicpQAEKUIACFKAABSiQdQEmDVm3450UoAAFKEABClCAAhSwCgEmDVYxzOwkBShAAQpQgAIUoAAFsi7ApCHrdryTAhSgAAUoQAEKUIACViHApMEqhpmdpAAFKEABClCAAhSgQNYF/h/W08HiU+Zv/wAAAABJRU5ErkJggg==", + "text/html": [ + "
\n", + " \n", + " \n", + "
\n", + " \n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = go.Figure(data=go.Heatmap(\n", + " z=ing_ing,\n", + " x=ingredients,\n", + " y=ingredients,\n", + " xgap = 2,\n", + " ygap = 2,))\n", + "\n", + "fig.update_layout(\n", + " yaxis = dict(\n", + " scaleanchor = \"x\",\n", + " scaleratio = 1,\n", + " )\n", + ")\n", + "fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/settings.py b/settings.py index f090105..88a5242 100644 --- a/settings.py +++ b/settings.py @@ -9,5 +9,6 @@ fooddb_folder = data_root + "foodb_2017_06_29_csv/" ingredients_file = data_root + "ingredients.py" actions_file = data_root + "actions.py" container_file = data_root + "containers.py" +placeholder_file = data_root + "placeholders.py" gzipped_conllu_data_root = data_root + "1M_recipes_conllu/"