Created
November 18, 2025 20:49
-
-
Save shawngraham/928a67fe34d26beacc7e57f0741a0ccb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "nbformat": 4, | |
| "nbformat_minor": 0, | |
| "metadata": { | |
| "colab": { | |
| "provenance": [], | |
| "collapsed_sections": [ | |
| "7yIWmxj3rwX8" | |
| ], | |
| "gpuType": "T4", | |
| "authorship_tag": "ABX9TyOkx9ZAU9hKrUzwspC+ipl2", | |
| "include_colab_link": true | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "display_name": "Python 3" | |
| }, | |
| "language_info": { | |
| "name": "python" | |
| }, | |
| "accelerator": "GPU" | |
| }, | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "So, normally you would mark up each inscription with annotations indicating the starting character and ending character position for each piece of data you want - name of the deceased, age at death, whatever. There are platforms that can help you do this, but it can take a long time and you'd have to pay someone for their time.\n", | |
| "\n", | |
| "Here, I'm trying a different approach where I am counting on the highly formulaic nature of Roman epigraphy. I have generated a few hundred 'inscriptions' and then directed an LLM to do the annotation work. Then I use that data to create an entity extraction model with spaCy. Once such a model is created, it's very deterministic, unlike an LLM which might get creative on us. It's also rather small and can be run on a variety of regular computers or in Colab.\n", | |
| "\n", | |
| "(On the other hand, the same regularity that permits me to create synthethic data with a commercial llm could probably just jump from reading the inscription to creating the structured data we're after.)\n", | |
| "\n", | |
| "Originally I built this with the spacy english language model, but obviously that's not great. So trying with Patrick Burns' [LatinCy](https://diyclassics.github.io/latincy-book/) model" | |
| ], | |
| "metadata": { | |
| "id": "6VdOS9H5mgch" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "id": "qqyyEFg1hl5P" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "!mkdir assets # To store your raw data files (jsonl, csv)\n", | |
| "!mkdir configs # To store configuration files\n", | |
| "!mkdir scripts # To store helper scripts (like data conversion)\n", | |
| "!mkdir training # To store the output of the training process\n", | |
| "!mkdir corpus # To store the processed .spacy files" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "!ls" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "V0eqKNQyitWN", | |
| "outputId": "aabd38d7-468e-4b14-94ce-fde04ab56887" | |
| }, | |
| "execution_count": 2, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "assets\tconfigs corpus sample_data scripts training\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "#!pip install -U spacy #already in colab\n", | |
| "#!python -m spacy download en_core_web_lg\n", | |
| "#!pip install \"la-core-web-sm @ https://huggingface.co/latincy/la_core_web_sm/resolve/main/la_core_web_sm-any-py3-none-any.whl\"\n", | |
| "!pip install \"la-core-web-lg @ https://huggingface.co/latincy/la_core_web_lg/resolve/main/la_core_web_lg-any-py3-none-any.whl\"\n", | |
| "#\n", | |
| "# this is what we're going to retrain." | |
| ], | |
| "metadata": { | |
| "collapsed": true, | |
| "id": "mL16o-mOiFbS" | |
| }, | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "!pip install spacy-transformers" | |
| ], | |
| "metadata": { | |
| "id": "EC-TWE4ozu20" | |
| }, | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# then you have to run this. It will say things have crashed. Ignore and continue.\n", | |
| "import os\n", | |
| "os.kill(os.getpid(), 9)" | |
| ], | |
| "metadata": { | |
| "id": "RHpzFqpNCvrm" | |
| }, | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# start with some synthethic training annotations\n", | |
| "\n", | |
| "!wget https://gist.githubusercontent.com/shawngraham/f44663efc80916a75c736a38f024b371/raw/9b1d724d19b30ded168268af0fd959dccaae521e/synthetic-training.jsonl -O assets/synthethic-training.jsonl\n", | |
| "\n", | |
| "## and some synthetic testing data\n", | |
| "#!wget https://gist.githubusercontent.com/shawngraham/3633224a209ab01f650f9dee9183888d/raw/9cc9dfeb566dc8465d744e6745af98af363a227c/testing-epigraphs-synthetic.csv -O assets/test-fake-epigraphs.csv" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "LB__UbKm-CQ3", | |
| "outputId": "767be4ac-03dc-45d4-e354-f3c975db36f1" | |
| }, | |
| "execution_count": 79, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "--2025-11-18 19:53:57-- https://gist.githubusercontent.com/shawngraham/f44663efc80916a75c736a38f024b371/raw/9b1d724d19b30ded168268af0fd959dccaae521e/synthetic-training.jsonl\n", | |
| "Resolving gist.githubusercontent.com (gist.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...\n", | |
| "Connecting to gist.githubusercontent.com (gist.githubusercontent.com)|185.199.108.133|:443... connected.\n", | |
| "HTTP request sent, awaiting response... 200 OK\n", | |
| "Length: 161705 (158K) [text/plain]\n", | |
| "Saving to: ‘assets/synthethic-training.jsonl’\n", | |
| "\n", | |
| "assets/synthethic-t 100%[===================>] 157.92K --.-KB/s in 0.02s \n", | |
| "\n", | |
| "2025-11-18 19:53:58 (10.2 MB/s) - ‘assets/synthethic-training.jsonl’ saved [161705/161705]\n", | |
| "\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## prepare data" | |
| ], | |
| "metadata": { | |
| "id": "45Wkx0lkciHi" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# # scripts/convert_csv_to_jsonl.py\n", | |
| "# # only if your original data is in csv format\n", | |
| "\n", | |
| "# import pandas as pd\n", | |
| "# import json\n", | |
| "# import ast # Abstract Syntax Tree module to safely evaluate string-formatted lists\n", | |
| "\n", | |
| "# def convert_csv_to_jsonl(input_path, output_path):\n", | |
| "# \"\"\"\n", | |
| "# Converts a CSV with epigraphic annotations to a JSONL file\n", | |
| "# compatible with the spaCy training pipeline.\n", | |
| "# \"\"\"\n", | |
| "# try:\n", | |
| "# df = pd.read_csv(input_path)\n", | |
| "# except FileNotFoundError:\n", | |
| "# print(f\"Error: The file at {input_path} was not found.\")\n", | |
| "# return\n", | |
| "\n", | |
| "# with open(output_path, 'w') as f:\n", | |
| "# for index, row in df.iterrows():\n", | |
| "# # Safely evaluate the string representation of the list\n", | |
| "# try:\n", | |
| "# # ast.literal_eval is safer than eval() for this purpose\n", | |
| "# annotation_list = ast.literal_eval(row['annotations'])\n", | |
| "# except (ValueError, SyntaxError):\n", | |
| "# print(f\"Warning: Could not parse annotations for row {index + 1}. Skipping.\")\n", | |
| "# continue\n", | |
| "\n", | |
| "# # Create the final JSON structure for each line\n", | |
| "# json_record = {\n", | |
| "# \"id\": row['id'],\n", | |
| "# \"text\": row['text'],\n", | |
| "# \"transcription\": row['transcription'],\n", | |
| "# # The final JSONL needs the annotations nested inside a dictionary\n", | |
| "# \"annotations\": {\"annotations\": annotation_list}\n", | |
| "# }\n", | |
| "\n", | |
| "# # Write the JSON object as a string on a new line\n", | |
| "# f.write(json.dumps(json_record) + '\\n')\n", | |
| "\n", | |
| "# print(f\" Successfully converted {input_path} to {output_path}\")\n", | |
| "\n", | |
| "# # --- Main execution ---\n", | |
| "# if __name__ == '__main__':\n", | |
| "# # Define the input CSV and output JSONL file paths\n", | |
| "# csv_file = 'assets/training-annotations-synthetic.csv'\n", | |
| "# jsonl_file = 'assets/train.jsonl'\n", | |
| "\n", | |
| "# # Run the conversion\n", | |
| "# convert_csv_to_jsonl(csv_file, jsonl_file)" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "d0eF77b4ij-N", | |
| "outputId": "7e14a78a-6c7b-44ac-f74f-5cee0acb9503" | |
| }, | |
| "execution_count": 80, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| " Successfully converted assets/training-annotations-synthetic.csv to assets/train.jsonl\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# scripts/partition_data.py (Separates clean data from data that needs fixing)\n", | |
| "\n", | |
| "import spacy\n", | |
| "import json\n", | |
| "from spacy.tokens import Doc\n", | |
| "\n", | |
| "def get_annotation_spans(record):\n", | |
| " \"\"\"Safely navigates the nested dictionary to find the list of annotations.\"\"\"\n", | |
| " try: return record['annotations']['annotations']['annotations']\n", | |
| " except (KeyError, TypeError):\n", | |
| " try: return record['annotations']['annotations']\n", | |
| " except (KeyError, TypeError): return []\n", | |
| "\n", | |
| "def partition_data(input_path, clean_output_path, needs_fixing_output_path):\n", | |
| " \"\"\"\n", | |
| " Reads a JSONL file and splits it into two files: one with clean, alignable\n", | |
| " records, and one with records that contain at least one unalignable annotation.\n", | |
| " \"\"\"\n", | |
| " #nlp = spacy.blank(\"en\")\n", | |
| " nlp = spacy.load('la_core_web_lg')\n", | |
| " clean_records = []\n", | |
| " fix_records = []\n", | |
| "\n", | |
| " print(f\"--- Starting data partitioning for '{input_path}' ---\")\n", | |
| "\n", | |
| " with open(input_path, 'r', encoding='utf-8') as f:\n", | |
| " for line in f:\n", | |
| " try: record = json.loads(line)\n", | |
| " except json.JSONDecodeError: continue\n", | |
| "\n", | |
| " text = record.get('transcription', '')\n", | |
| " if not text:\n", | |
| " fix_records.append(record) # A record with no text needs fixing\n", | |
| " continue\n", | |
| "\n", | |
| " annotations = get_annotation_spans(record)\n", | |
| "\n", | |
| " # A record with no annotations is considered clean\n", | |
| " if not isinstance(annotations, list) or not annotations:\n", | |
| " clean_records.append(record)\n", | |
| " continue\n", | |
| "\n", | |
| " doc = nlp.make_doc(text)\n", | |
| " is_record_clean = True # Assume the record is clean until proven otherwise\n", | |
| "\n", | |
| " for entity in annotations:\n", | |
| " if not isinstance(entity, list) or len(entity) != 3:\n", | |
| " is_record_clean = False\n", | |
| " break # Malformed entity taints the whole record\n", | |
| "\n", | |
| " start, end, label = entity\n", | |
| "\n", | |
| " # Try all alignment strategies\n", | |
| " span = doc.char_span(start, end, label=label, alignment_mode=\"expand\")\n", | |
| " if span is None: span = doc.char_span(start + 1, end + 1, label=label, alignment_mode=\"expand\")\n", | |
| " if span is None: span = doc.char_span(start - 1, end - 1, label=label, alignment_mode=\"expand\")\n", | |
| "\n", | |
| " # If an entity STILL fails alignment, the whole record is tainted\n", | |
| " if span is None:\n", | |
| " is_record_clean = False\n", | |
| " break # No need to check other entities in this record\n", | |
| "\n", | |
| " # After checking all entities, sort the record into the correct list\n", | |
| " if is_record_clean:\n", | |
| " clean_records.append(record)\n", | |
| " else:\n", | |
| " fix_records.append(record)\n", | |
| "\n", | |
| " # Write the clean records file\n", | |
| " with open(clean_output_path, 'w', encoding='utf-8') as f:\n", | |
| " for record in clean_records:\n", | |
| " f.write(json.dumps(record) + '\\n')\n", | |
| "\n", | |
| " # Write the records that need fixing\n", | |
| " with open(needs_fixing_output_path, 'w', encoding='utf-8') as f:\n", | |
| " for record in fix_records:\n", | |
| " f.write(json.dumps(record) + '\\n')\n", | |
| "\n", | |
| " print(\"\\nPartitioning complete.\")\n", | |
| " print(f\" - Total Records Processed: {len(clean_records) + len(fix_records)}\")\n", | |
| " print(f\" - Clean Records: {len(clean_records)}\")\n", | |
| " print(f\" - Records Needing Fixes: {len(fix_records)}\")\n", | |
| " print(f\"Clean data saved to '{clean_output_path}'\")\n", | |
| " print(f\"Data to be fixed saved to '{needs_fixing_output_path}'\")\n", | |
| "\n", | |
| "\n", | |
| "# --- Run the Partitioning Script ---\n", | |
| "#INPUT_FILE = \"assets/train.jsonl\"\n", | |
| "INPUT_FILE = \"assets/synthethic-training.jsonl\"\n", | |
| "CLEAN_OUTPUT_FILE = \"assets/train_clean.jsonl\"\n", | |
| "FIX_OUTPUT_FILE = \"assets/train_needs_fixing.jsonl\"\n", | |
| "\n", | |
| "partition_data(INPUT_FILE, CLEAN_OUTPUT_FILE, FIX_OUTPUT_FILE)" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "D5gry-5uzGm4", | |
| "outputId": "8278a795-f68f-4afa-884b-f62ea2725f7d" | |
| }, | |
| "execution_count": 81, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "--- Starting data partitioning for 'assets/synthethic-training.jsonl' ---\n", | |
| "\n", | |
| "Partitioning complete.\n", | |
| " - Total Records Processed: 463\n", | |
| " - Clean Records: 463\n", | |
| " - Records Needing Fixes: 0\n", | |
| "Clean data saved to 'assets/train_clean.jsonl'\n", | |
| "Data to be fixed saved to 'assets/train_needs_fixing.jsonl'\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# scripts/split_data.py (Splits a JSONL file into train and dev sets)\n", | |
| "\n", | |
| "import json\n", | |
| "from sklearn.model_selection import train_test_split\n", | |
| "\n", | |
| "def split_data(input_path, train_output_path, dev_output_path, dev_size=0.2):\n", | |
| " \"\"\"\n", | |
| " Reads a JSONL file and splits its records into training and development sets.\n", | |
| " \"\"\"\n", | |
| " print(f\"--- Splitting data from '{input_path}' ---\")\n", | |
| "\n", | |
| " # Read all lines from the source file\n", | |
| " with open(input_path, 'r', encoding='utf-8') as f:\n", | |
| " lines = f.readlines()\n", | |
| "\n", | |
| " if len(lines) < 2:\n", | |
| " print(\"Warning: Not enough data to split. Need at least 2 records.\")\n", | |
| " return\n", | |
| "\n", | |
| " # Use train_test_split to randomly shuffle and split the lines\n", | |
| " train_lines, dev_lines = train_test_split(lines, test_size=dev_size, random_state=42)\n", | |
| "\n", | |
| " # Write the training set\n", | |
| " with open(train_output_path, 'w', encoding='utf-8') as f:\n", | |
| " for line in train_lines:\n", | |
| " f.write(line)\n", | |
| "\n", | |
| " # Write the development set\n", | |
| " with open(dev_output_path, 'w', encoding='utf-8') as f:\n", | |
| " for line in dev_lines:\n", | |
| " f.write(line)\n", | |
| "\n", | |
| " print(\"\\n✅ Data splitting complete.\")\n", | |
| " print(f\" - Total Records: {len(lines)}\")\n", | |
| " print(f\" - Training Records: {len(train_lines)} -> {train_output_path}\")\n", | |
| " print(f\" - Development Records: {len(dev_lines)} -> {dev_output_path}\")\n", | |
| "\n", | |
| "# --- Run the Splitting Script ---\n", | |
| "INPUT_FILE = \"assets/train_clean.jsonl\"\n", | |
| "TRAIN_SPLIT_FILE = \"assets/train_split.jsonl\"\n", | |
| "DEV_SPLIT_FILE = \"assets/dev_split.jsonl\"\n", | |
| "\n", | |
| "split_data(INPUT_FILE, TRAIN_SPLIT_FILE, DEV_SPLIT_FILE)" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "eWfzDyqVD6-T", | |
| "outputId": "4220793c-df17-4bda-8b8d-bf3085878c58" | |
| }, | |
| "execution_count": 82, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "--- Splitting data from 'assets/train_clean.jsonl' ---\n", | |
| "\n", | |
| "✅ Data splitting complete.\n", | |
| " - Total Records: 463\n", | |
| " - Training Records: 370 -> assets/train_split.jsonl\n", | |
| " - Development Records: 93 -> assets/dev_split.jsonl\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# # scripts/align_annotations.py\n", | |
| "\n", | |
| "\n", | |
| "import spacy\n", | |
| "import json\n", | |
| "from spacy.tokens import Doc\n", | |
| "\n", | |
| "def get_annotation_spans(record):\n", | |
| " \"\"\"\n", | |
| " Retrieves annotations whether they are a flat list (your current data)\n", | |
| " or nested in a dictionary (LabelStudio style).\n", | |
| " \"\"\"\n", | |
| " raw = record.get('annotations', [])\n", | |
| "\n", | |
| " # Case 1: It is already a list (Your current format)\n", | |
| " if isinstance(raw, list):\n", | |
| " return raw\n", | |
| "\n", | |
| " # Case 2: It is a dictionary (Nested format)\n", | |
| " if isinstance(raw, dict):\n", | |
| " try:\n", | |
| " return raw.get('annotations', [])\n", | |
| " except (AttributeError, TypeError):\n", | |
| " pass\n", | |
| "\n", | |
| " return []\n", | |
| "\n", | |
| "def align_annotations(input_path, output_path):\n", | |
| " # Load the model for tokenization reference\n", | |
| " nlp = spacy.load('la_core_web_lg')\n", | |
| " corrected_records = []\n", | |
| "\n", | |
| " # Stats tracking\n", | |
| " stats = {\n", | |
| " \"total_records\": 0,\n", | |
| " \"malformed_ents\": 0,\n", | |
| " \"unaligned_ents\": 0,\n", | |
| " \"auto_fixed_ents\": 0,\n", | |
| " \"perfect_ents\": 0\n", | |
| " }\n", | |
| "\n", | |
| " with open(input_path, 'r', encoding='utf-8') as f:\n", | |
| " for i, line in enumerate(f):\n", | |
| " try:\n", | |
| " record = json.loads(line)\n", | |
| " stats[\"total_records\"] += 1\n", | |
| " except json.JSONDecodeError:\n", | |
| " continue\n", | |
| "\n", | |
| " # Ensure we are targeting the field that matches the character offsets\n", | |
| " # Based on your example: 0-11 \"DIS MANIBUS\" matches 'transcription', not 'text'\n", | |
| " text = record.get('transcription', '')\n", | |
| " if not text:\n", | |
| " continue\n", | |
| "\n", | |
| " annotations = get_annotation_spans(record)\n", | |
| "\n", | |
| " doc = nlp.make_doc(text)\n", | |
| " corrected_ents = []\n", | |
| "\n", | |
| " for entity in annotations:\n", | |
| " # Safety check\n", | |
| " if not isinstance(entity, list) or len(entity) != 3:\n", | |
| " stats[\"malformed_ents\"] += 1\n", | |
| " continue\n", | |
| "\n", | |
| " start, end, label = entity\n", | |
| "\n", | |
| " span = None\n", | |
| "\n", | |
| " # Attempt A: Original indices\n", | |
| " span = doc.char_span(start, end, label=label, alignment_mode=\"expand\")\n", | |
| " if span is not None:\n", | |
| " stats[\"perfect_ents\"] += 1\n", | |
| "\n", | |
| " # Attempt B: +1 shift\n", | |
| " if span is None:\n", | |
| " span = doc.char_span(start + 1, end + 1, label=label, alignment_mode=\"expand\")\n", | |
| " if span is not None:\n", | |
| " stats[\"auto_fixed_ents\"] += 1\n", | |
| "\n", | |
| " # Attempt C: -1 shift\n", | |
| " if span is None:\n", | |
| " span = doc.char_span(start - 1, end - 1, label=label, alignment_mode=\"expand\")\n", | |
| " if span is not None:\n", | |
| " stats[\"auto_fixed_ents\"] += 1\n", | |
| "\n", | |
| " # Final Decision\n", | |
| " if span is not None:\n", | |
| " corrected_ents.append([span.start_char, span.end_char, label])\n", | |
| " else:\n", | |
| " # Optional: Print failures to debug specific lines\n", | |
| " # print(f\"Could not align: '{text[start:end]}' ({label}) in text\")\n", | |
| " stats[\"unaligned_ents\"] += 1\n", | |
| "\n", | |
| " # --- UPDATE RECORD ---\n", | |
| " # We save it back as a flat list to keep it simple and matching input format\n", | |
| " record['annotations'] = corrected_ents\n", | |
| " corrected_records.append(record)\n", | |
| "\n", | |
| " # Write output\n", | |
| " with open(output_path, 'w', encoding='utf-8') as f:\n", | |
| " for record in corrected_records:\n", | |
| " f.write(json.dumps(record) + '\\n')\n", | |
| "\n", | |
| " print(f\"\\n✅ Alignment complete for {input_path}.\")\n", | |
| " print(f\" - Processed Records: {stats['total_records']}\")\n", | |
| " print(f\" - Perfect Annotations: {stats['perfect_ents']}\")\n", | |
| " print(f\" - Fixed Offsets: {stats['auto_fixed_ents']}\")\n", | |
| " print(f\" - Malformed/Skipped: {stats['malformed_ents']}\")\n", | |
| " print(f\" - Unalignable (Dropped): {stats['unaligned_ents']}\")\n", | |
| "\n", | |
| "# Run it\n", | |
| "align_annotations('assets/train_split.jsonl', 'assets/train_aligned.jsonl')\n", | |
| "align_annotations('assets/dev_split.jsonl', 'assets/dev_aligned.jsonl')" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "n_OXbwRFkF7F", | |
| "outputId": "96bb5814-68ec-4fb5-f3e3-495302d617a7" | |
| }, | |
| "execution_count": 83, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "✅ Alignment complete for assets/train_split.jsonl.\n", | |
| " - Processed Records: 370\n", | |
| " - Perfect Annotations: 2730\n", | |
| " - Fixed Offsets: 0\n", | |
| " - Malformed/Skipped: 0\n", | |
| " - Unalignable (Dropped): 0\n", | |
| "\n", | |
| "✅ Alignment complete for assets/dev_split.jsonl.\n", | |
| " - Processed Records: 93\n", | |
| " - Perfect Annotations: 671\n", | |
| " - Fixed Offsets: 0\n", | |
| " - Malformed/Skipped: 0\n", | |
| " - Unalignable (Dropped): 0\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# # scripts/prepare_data.py\n", | |
| "\n", | |
| "\n", | |
| "import spacy\n", | |
| "import json\n", | |
| "from spacy.tokens import DocBin\n", | |
| "from spacy.util import filter_spans\n", | |
| "\n", | |
| "def get_annotation_spans(record):\n", | |
| " raw = record.get('annotations')\n", | |
| " if isinstance(raw, list): return raw\n", | |
| " try: return raw['annotations']\n", | |
| " except (KeyError, TypeError): return []\n", | |
| "\n", | |
| "def create_spacy_file(input_path, output_path):\n", | |
| " nlp = spacy.load('la_core_web_lg')\n", | |
| " db = DocBin()\n", | |
| "\n", | |
| " stats = {\n", | |
| " \"docs\": 0,\n", | |
| " \"total_ents\": 0,\n", | |
| " \"dropped_ents\": 0\n", | |
| " }\n", | |
| "\n", | |
| " print(f\"--- Processing '{input_path}' ---\")\n", | |
| "\n", | |
| " with open(input_path, 'r', encoding='utf-8') as f:\n", | |
| " for line in f:\n", | |
| " try:\n", | |
| " record = json.loads(line)\n", | |
| " except json.JSONDecodeError:\n", | |
| " continue\n", | |
| "\n", | |
| " text = record.get('transcription')\n", | |
| " if not text:\n", | |
| " continue\n", | |
| "\n", | |
| " doc = nlp.make_doc(text)\n", | |
| " ents = []\n", | |
| " annotations = get_annotation_spans(record)\n", | |
| "\n", | |
| " if isinstance(annotations, list):\n", | |
| " for entity in annotations:\n", | |
| " if len(entity) != 3: continue\n", | |
| " start, end, label = entity\n", | |
| "\n", | |
| " span = doc.char_span(start, end, label=label, alignment_mode=\"expand\")\n", | |
| "\n", | |
| " if span is not None:\n", | |
| " ents.append(span)\n", | |
| " else:\n", | |
| " stats[\"dropped_ents\"] += 1\n", | |
| " # Optional: print what was dropped to debug\n", | |
| " print(f\"Dropping invalid span: [{start}:{end}] in '{text[:20]}...'\")\n", | |
| "\n", | |
| " # Remove duplicates/overlaps\n", | |
| " original_count = len(ents)\n", | |
| " filtered_ents = filter_spans(ents)\n", | |
| "\n", | |
| " if len(filtered_ents) < original_count:\n", | |
| " stats[\"dropped_ents\"] += (original_count - len(filtered_ents))\n", | |
| "\n", | |
| " doc.ents = filtered_ents\n", | |
| " stats[\"total_ents\"] += len(filtered_ents)\n", | |
| " stats[\"docs\"] += 1\n", | |
| " db.add(doc)\n", | |
| "\n", | |
| " db.to_disk(output_path)\n", | |
| "\n", | |
| " print(f\"✅ Saved {output_path}\")\n", | |
| " print(f\" - Documents: {stats['docs']}\")\n", | |
| " print(f\" - Total Entities: {stats['total_ents']} (Avg: {stats['total_ents']/stats['docs']:.1f} per doc)\")\n", | |
| " print(f\" - Dropped/Failed: {stats['dropped_ents']}\")\n", | |
| "\n", | |
| "# --- Execute ---\n", | |
| "create_spacy_file('assets/train_aligned.jsonl', './corpus/train.spacy')\n", | |
| "create_spacy_file('assets/dev_aligned.jsonl', './corpus/dev.spacy')" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "hfhsbQTwhqxE", | |
| "outputId": "5613d010-13fc-4d94-d12d-09e49fe46c52" | |
| }, | |
| "execution_count": 84, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "--- Processing 'assets/train_aligned.jsonl' ---\n", | |
| "✅ Saved ./corpus/train.spacy\n", | |
| " - Documents: 370\n", | |
| " - Total Entities: 1802 (Avg: 4.9 per doc)\n", | |
| " - Dropped/Failed: 928\n", | |
| "--- Processing 'assets/dev_aligned.jsonl' ---\n", | |
| "✅ Saved ./corpus/dev.spacy\n", | |
| " - Documents: 93\n", | |
| " - Total Entities: 426 (Avg: 4.6 per doc)\n", | |
| " - Dropped/Failed: 245\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## Train the Model" | |
| ], | |
| "metadata": { | |
| "id": "D69ZbsLOceOD" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "import spacy\n", | |
| "from pathlib import Path\n", | |
| "\n", | |
| "# --- 1. Generate the base config ---\n", | |
| "!python -m spacy init config configs/config.cfg --lang la --pipeline tok2vec,ner --optimize accuracy --force\n", | |
| "\n", | |
| "print(\"✅ Base 'config.cfg' generated.\")\n", | |
| "\n", | |
| "# --- 2. Load and Modify ---\n", | |
| "config_path = Path(\"configs/config.cfg\")\n", | |
| "config = spacy.util.load_config(config_path)\n", | |
| "\n", | |
| "# Define the model we are using\n", | |
| "LATIN_MODEL = \"la_core_web_lg\"\n", | |
| "\n", | |
| "# --- Part A: Initialize Vectors (CRITICAL FOR LG MODELS) ---\n", | |
| "# This loads the 300-dim vectors into the vocab so the tok2vec layer can find them.\n", | |
| "config[\"initialize\"][\"vectors\"] = LATIN_MODEL\n", | |
| "\n", | |
| "# --- Part B: Source the tok2vec component ---\n", | |
| "config[\"components\"][\"tok2vec\"] = {\n", | |
| " \"source\": LATIN_MODEL,\n", | |
| " \"component\": \"tok2vec\"\n", | |
| "}\n", | |
| "\n", | |
| "# --- Part C: Connect NER to the vectors ---\n", | |
| "# ERROR CORRECTION: The tok2vec OUTPUT width is 96, even if the input vectors are 300.\n", | |
| "config[\"components\"][\"ner\"][\"model\"][\"tok2vec\"] = {\n", | |
| " \"@architectures\": \"spacy.Tok2VecListener.v1\",\n", | |
| " \"width\": 96, # <--- Reverted to 96. This matches the output of la_core_web_lg.\n", | |
| " \"upstream\": \"tok2vec\"\n", | |
| "}\n", | |
| "\n", | |
| "config[\"nlp\"][\"batch_size\"] = 200\n", | |
| "\n", | |
| "# --- Part D: Paths and Freezing ---\n", | |
| "config[\"paths\"][\"train\"] = \"./corpus/train.spacy\"\n", | |
| "config[\"paths\"][\"dev\"] = \"./corpus/dev.spacy\"\n", | |
| "\n", | |
| "# Freeze tok2vec so we don't ruin the pretrained Latin intelligence\n", | |
| "#config[\"training\"][\"frozen_components\"] = [\"tok2vec\"]\n", | |
| "# or unfreeze it, see what happens\n", | |
| "config[\"training\"][\"frozen_components\"] = []\n", | |
| "config[\"training\"][\"max_epochs\"]= 100\n", | |
| "# Mark it as annotating so it actually runs\n", | |
| "config[\"training\"][\"annotating_components\"] = [\"tok2vec\"]\n", | |
| "\n", | |
| "# --- 3. Save ---\n", | |
| "config.to_disk(config_path)\n", | |
| "\n", | |
| "print(f\"✅ Config updated for {LATIN_MODEL}. Listener width set to 96 (correct output dim).\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "AzoGViEoiBaZ", | |
| "outputId": "f59453c5-b27c-4800-bd95-fa446837bd67" | |
| }, | |
| "execution_count": 95, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\u001b[38;5;4mℹ Generated config template specific for your use case\u001b[0m\n", | |
| "- Language: la\n", | |
| "- Pipeline: ner\n", | |
| "- Optimize for: accuracy\n", | |
| "- Hardware: CPU\n", | |
| "- Transformer: None\n", | |
| "\u001b[38;5;2m✔ Auto-filled config with all values\u001b[0m\n", | |
| "\u001b[38;5;2m✔ Saved config\u001b[0m\n", | |
| "configs/config.cfg\n", | |
| "You can now add your data and train your pipeline:\n", | |
| "python -m spacy train config.cfg --paths.train ./train.spacy --paths.dev ./dev.spacy\n", | |
| "✅ Base 'config.cfg' generated.\n", | |
| "✅ Config updated for la_core_web_lg. Listener width set to 96 (correct output dim).\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# Start the training process!\n", | |
| "!python -m spacy train configs/config.cfg --output ./training/ --gpu-id 0" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "S4TD1wEdjMny", | |
| "outputId": "be070055-b60e-4665-fa95-158c0af971da" | |
| }, | |
| "execution_count": 96, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\u001b[38;5;4mℹ Saving to output directory: training\u001b[0m\n", | |
| "\u001b[38;5;4mℹ Using GPU: 0\u001b[0m\n", | |
| "\u001b[1m\n", | |
| "=========================== Initializing pipeline ===========================\u001b[0m\n", | |
| "\u001b[38;5;2m✔ Initialized pipeline\u001b[0m\n", | |
| "\u001b[1m\n", | |
| "============================= Training pipeline =============================\u001b[0m\n", | |
| "\u001b[38;5;4mℹ Pipeline: ['tok2vec', 'ner']\u001b[0m\n", | |
| "\u001b[38;5;4mℹ Set annotations on update for: ['tok2vec']\u001b[0m\n", | |
| "\u001b[38;5;4mℹ Initial learn rate: 0.001\u001b[0m\n", | |
| "E # LOSS TOK2VEC LOSS NER ENTS_F ENTS_P ENTS_R SCORE \n", | |
| "--- ------ ------------ -------- ------ ------ ------ ------\n", | |
| " 0 0 0.00 76.23 19.74 25.27 16.20 0.20\n", | |
| " 5 200 161.75 5016.42 86.74 88.32 85.21 0.87\n", | |
| " 12 400 154.83 2110.54 89.13 89.76 88.50 0.89\n", | |
| " 20 600 201.80 1797.31 88.60 87.79 89.44 0.89\n", | |
| " 30 800 110.59 1658.81 89.20 88.28 90.14 0.89\n", | |
| " 43 1000 118.37 1814.81 88.79 88.37 89.20 0.89\n", | |
| " 58 1200 119.99 2013.56 89.02 88.60 89.44 0.89\n", | |
| " 77 1400 144.55 2340.61 89.46 89.25 89.67 0.89\n", | |
| " 99 1600 155.80 2655.94 88.04 87.13 88.97 0.88\n", | |
| "\u001b[38;5;2m✔ Saved pipeline to output directory\u001b[0m\n", | |
| "training/model-last\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## Interpreting those numbers:\n", | |
| "+ (Epoch): An epoch is one complete pass through your entire training dataset. The training process shows you the state of the model after E epochs have been completed.\n", | |
| "\n", | |
| "+ (Step): This is the number of batches or steps the model has processed so far.\n", | |
| "\n", | |
| "+ LOSS TOK2VEC (Loss for Token-to-Vector): This component is responsible for learning meaningful numerical representations of your words. Like any \"loss\" value, you want to see it decrease over time. Its fluctuation is normal as it and the NER component influence each other.\n", | |
| "\n", | |
| "+ LOSS NER (Loss for Named Entity Recognition): This is the most important loss metric for the project. It measures how \"wrong\" the model's entity predictions are. A lower number is better. If NER loss dropped from a massive 3064 to just 66.73, that would be a clear indication of successful learning.\n", | |
| "\n", | |
| "+ ENTS_P (Entities Precision): Of all the entities the model predicted, this is the percentage that were actually correct. A score of 100.00 means the model made no false positive predictions.\n", | |
| "\n", | |
| "+ ENTS_R (Entities Recall): Of all the actual entities in the data, this is the percentage that the model successfully found. A score of 100.00 means the model made no false negative predictions (it didn't miss anything).\n", | |
| "\n", | |
| "+ ENTS_F (Entities F-score): This is the harmonic mean of Precision and Recall, and it's generally considered the single most important metric for evaluating a model's performance. It gives you a balanced measure of its accuracy.\n", | |
| "\n", | |
| "+ SCORE: This is the final score spaCy uses to evaluate the pipeline. For an NER project, this is the ENTS_F score. The training process will save the model from the epoch with the highest score as model-best.\n", | |
| "\n", | |
| "+ Perfect Scores and Overfitting: If the model achieved a perfect F-score of 100.00 on the training data then it has essentially memorized your training set. In many machine learning scenarios, this would be a major red flag for a problem called overfitting. Overfitting is when a model learns its training data so perfectly that it fails to generalize to new, unseen data. In the case of Roman funerary inscriptions, these are highly formulaic. The patterns for names, military units, and ages are quite regular. With a dataset of 197 records, a modern model should be able to memorize these patterns." | |
| ], | |
| "metadata": { | |
| "id": "NQz6yNhjoH2v" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# testing for overfitting\n", | |
| "import spacy\n", | |
| "from spacy.scorer import Scorer\n", | |
| "from spacy.training import Example\n", | |
| "from spacy.tokens import DocBin\n", | |
| "\n", | |
| "def evaluate_detailed(model_path, dev_data_path):\n", | |
| " # Load the best model\n", | |
| " nlp = spacy.load(model_path)\n", | |
| "\n", | |
| " # Load the Dev data\n", | |
| " db = DocBin().from_disk(dev_data_path)\n", | |
| " docs = list(db.get_docs(nlp.vocab))\n", | |
| "\n", | |
| " examples = []\n", | |
| " for doc in docs:\n", | |
| " # Create an Example object (predicted vs reference)\n", | |
| " pred_doc = nlp(doc.text)\n", | |
| " examples.append(Example(pred_doc, doc))\n", | |
| "\n", | |
| " # Calculate scores\n", | |
| " scorer = Scorer()\n", | |
| " scores = scorer.score(examples)\n", | |
| "\n", | |
| " # Print Global Score\n", | |
| " print(f\"--- Global Results ---\")\n", | |
| " print(f\"Precision: {scores['ents_p']:.2f}\")\n", | |
| " print(f\"Recall: {scores['ents_r']:.2f}\")\n", | |
| " print(f\"F-Score: {scores['ents_f']:.2f}\")\n", | |
| "\n", | |
| " # Print Per-Label Score\n", | |
| " print(f\"\\n--- Per-Label Breakdown ---\")\n", | |
| " print(f\"{'LABEL':<30} {'PREC':<10} {'REC':<10} {'F-SCORE':<10}\")\n", | |
| " print(\"-\" * 60)\n", | |
| "\n", | |
| " for label, metrics in scores['ents_per_type'].items():\n", | |
| " print(f\"{label:<30} {metrics['p']:.2f} {metrics['r']:.2f} {metrics['f']:.2f}\")\n", | |
| "\n", | |
| "# Run evaluation\n", | |
| "evaluate_detailed(\"training/model-best\", \"corpus/dev.spacy\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "2Ai3y7pTb_IU", | |
| "outputId": "aa0625e5-c9ae-4179-b976-0a340344062c" | |
| }, | |
| "execution_count": 97, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "--- Global Results ---\n", | |
| "Precision: 0.89\n", | |
| "Recall: 0.90\n", | |
| "F-Score: 0.89\n", | |
| "\n", | |
| "--- Per-Label Breakdown ---\n", | |
| "LABEL PREC REC F-SCORE \n", | |
| "------------------------------------------------------------\n", | |
| "DEDICATION_TO_THE_GODS 0.97 0.97 0.97\n", | |
| "NOMEN 0.99 0.99 0.99\n", | |
| "COGNOMEN 0.90 0.89 0.90\n", | |
| "AGE_PREFIX 0.98 1.00 0.99\n", | |
| "DEDICATOR_NAME 1.00 1.00 1.00\n", | |
| "BENE_MERENTI 0.35 0.39 0.37\n", | |
| "FUNERARY_FORMULA 1.00 1.00 1.00\n", | |
| "RELATIONSHIP 0.14 0.33 0.20\n", | |
| "MILITARY_UNIT 0.59 0.54 0.57\n", | |
| "TRIBE 1.00 1.00 1.00\n", | |
| "OCCUPATION 1.00 0.50 0.67\n", | |
| "VERB 0.25 0.25 0.25\n", | |
| "AGE_DAYS 0.00 0.00 0.00\n", | |
| "AGE_YEARS 0.00 0.00 0.00\n", | |
| "FILIATION 0.67 0.67 0.67\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "import spacy\n", | |
| "from spacy.scorer import Scorer\n", | |
| "from spacy.training import Example\n", | |
| "from spacy.tokens import DocBin\n", | |
| "\n", | |
| "def evaluate_final(model_path, dev_data_path):\n", | |
| " print(f\"--- Evaluating {model_path} ---\")\n", | |
| " nlp = spacy.load(model_path)\n", | |
| " db = DocBin().from_disk(dev_data_path)\n", | |
| " docs = list(db.get_docs(nlp.vocab))\n", | |
| "\n", | |
| " examples = []\n", | |
| " for doc in docs:\n", | |
| " examples.append(Example(nlp(doc.text), doc))\n", | |
| "\n", | |
| " scores = Scorer().score(examples)\n", | |
| "\n", | |
| " print(f\"{'LABEL':<30} {'PREC':<8} {'REC':<8} {'F1':<8}\")\n", | |
| " print(\"-\" * 60)\n", | |
| " for label, metrics in scores['ents_per_type'].items():\n", | |
| " print(f\"{label:<30} {metrics['p']:.2f} {metrics['r']:.2f} {metrics['f']:.2f}\")\n", | |
| "\n", | |
| "evaluate_final(\"training/model-best\", \"corpus/dev.spacy\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "_IyZVwTtnD74", | |
| "outputId": "c3c79fae-561e-4b8a-f8be-ea82db3e4a7b" | |
| }, | |
| "execution_count": 103, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "--- Evaluating training/model-best ---\n", | |
| "LABEL PREC REC F1 \n", | |
| "------------------------------------------------------------\n", | |
| "DEDICATION_TO_THE_GODS 0.97 0.97 0.97\n", | |
| "NOMEN 0.99 0.99 0.99\n", | |
| "COGNOMEN 0.90 0.89 0.90\n", | |
| "AGE_PREFIX 0.98 1.00 0.99\n", | |
| "DEDICATOR_NAME 1.00 1.00 1.00\n", | |
| "BENE_MERENTI 0.35 0.39 0.37\n", | |
| "FUNERARY_FORMULA 1.00 1.00 1.00\n", | |
| "RELATIONSHIP 0.14 0.33 0.20\n", | |
| "MILITARY_UNIT 0.59 0.54 0.57\n", | |
| "TRIBE 1.00 1.00 1.00\n", | |
| "OCCUPATION 1.00 0.50 0.67\n", | |
| "VERB 0.25 0.25 0.25\n", | |
| "AGE_DAYS 0.00 0.00 0.00\n", | |
| "AGE_YEARS 0.00 0.00 0.00\n", | |
| "FILIATION 0.67 0.67 0.67\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "import spacy\n", | |
| "import pandas as pd\n", | |
| "import re\n", | |
| "\n", | |
| "# 1. Load Model\n", | |
| "print(\"⏳ Loading Model...\")\n", | |
| "nlp = spacy.load(\"training/model-best\")\n", | |
| "\n", | |
| "# 2. Stricter Regex (The \"Calculator\")\n", | |
| "# Only match specific keywords like ANNIS/MENS.\n", | |
| "# We removed single letters (A, M, D) unless they are followed immediately by a dot to avoid matching names like \"Marcus\".\n", | |
| "REGEX_YEARS = re.compile(r'\\b(VIXIT|VIX|ANNIS|ANN|AN|A\\.)\\s*([IVXLCDM]+)\\b', re.IGNORECASE)\n", | |
| "REGEX_MONTHS = re.compile(r'\\b(MENSIBUS|MENS|MEN|M\\.)\\s*([IVXLCDM]+)\\b', re.IGNORECASE)\n", | |
| "REGEX_DAYS = re.compile(r'\\b(DIEBUS|DIE|D\\.)\\s*([IVXLCDM]+)\\b', re.IGNORECASE)\n", | |
| "\n", | |
| "# 3. Clean & Normalize Text\n", | |
| "def normalize_text(text):\n", | |
| " if pd.isna(text) or text == \"\": return \"\"\n", | |
| " text = str(text)\n", | |
| "\n", | |
| " # Standardize Leiden Brackets\n", | |
| " text = re.sub(r\"\\[\\s*-+\\??\\s*\\]\", \"\", text) # Remove [---]\n", | |
| " text = re.sub(r\"-+\\]\", \"\", text)\n", | |
| " text = re.sub(r\"\\[-+\", \"\", text)\n", | |
| " text = text.replace(\"/\", \" \").replace(\"(\", \"\").replace(\")\", \"\")\n", | |
| " text = text.replace(\"[\", \"\").replace(\"]\", \"\").replace(\"?\", \"\")\n", | |
| " text = re.sub(r\"\\s+\", \" \", text).strip()\n", | |
| "\n", | |
| " # CRITICAL FIX: Latin Inscriptions are traditionally processed in UPPERCASE\n", | |
| " # This matches how the vectors were likely trained.\n", | |
| " return text.upper()\n", | |
| "\n", | |
| "def extract_data(text):\n", | |
| " data = {}\n", | |
| " doc = nlp(text)\n", | |
| "\n", | |
| " # --- A. Neural Network Extraction ---\n", | |
| " ents_by_label = {}\n", | |
| "\n", | |
| " for ent in doc.ents:\n", | |
| " # Skip specific labels we handle with Regex\n", | |
| " if ent.label_ in [\"AGE_YEARS\", \"AGE_MONTHS\", \"AGE_DAYS\", \"AGE_PREFIX\"]:\n", | |
| " continue\n", | |
| "\n", | |
| " # Organize by label\n", | |
| " if ent.label_ not in ents_by_label:\n", | |
| " ents_by_label[ent.label_] = []\n", | |
| " ents_by_label[ent.label_].append(ent.text)\n", | |
| "\n", | |
| " for label, values in ents_by_label.items():\n", | |
| " data[label] = \"; \".join(values)\n", | |
| "\n", | |
| " # --- B. Regex Extraction ---\n", | |
| " # Years\n", | |
| " match_yr = REGEX_YEARS.search(text)\n", | |
| " if match_yr:\n", | |
| " data[\"AGE_YEARS\"] = match_yr.group(2)\n", | |
| "\n", | |
| " # Months\n", | |
| " match_mo = REGEX_MONTHS.search(text)\n", | |
| " if match_mo:\n", | |
| " data[\"AGE_MONTHS\"] = match_mo.group(2)\n", | |
| "\n", | |
| " # Days\n", | |
| " match_da = REGEX_DAYS.search(text)\n", | |
| " if match_da:\n", | |
| " data[\"AGE_DAYS\"] = match_da.group(2)\n", | |
| "\n", | |
| " return data\n", | |
| "\n", | |
| "# --- Execution ---\n", | |
| "input_csv = \"assets/inscriptions.csv\"\n", | |
| "output_csv = \"assets/final_database_fixed.csv\"\n", | |
| "\n", | |
| "df = pd.read_csv(input_csv)\n", | |
| "results = []\n", | |
| "\n", | |
| "print(f\"🚀 Processing {len(df)} records...\")\n", | |
| "\n", | |
| "for index, row in df.iterrows():\n", | |
| " # Prefer diplomatic text if available, otherwise transcription\n", | |
| " raw = row.get('text', '')\n", | |
| " if not raw or pd.isna(raw):\n", | |
| " raw = row.get('transcription', '')\n", | |
| "\n", | |
| " clean_text = normalize_text(raw)\n", | |
| "\n", | |
| " if len(clean_text) < 3: continue\n", | |
| "\n", | |
| " info = extract_data(clean_text)\n", | |
| " info['id'] = row.get('id')\n", | |
| " info['clean_text'] = clean_text # Inspect this to ensure it is UPPERCASE\n", | |
| " results.append(info)\n", | |
| "\n", | |
| "# --- Save ---\n", | |
| "results_df = pd.DataFrame(results)\n", | |
| "\n", | |
| "# Column Ordering Logic\n", | |
| "desired_order = [\n", | |
| " 'id', 'clean_text',\n", | |
| " 'DEDICATION_TO_THE_GODS',\n", | |
| " 'NOMEN', 'COGNOMEN', 'PRAENOMEN', 'DECEASED_NAME',\n", | |
| " 'AGE_YEARS', 'AGE_MONTHS', 'AGE_DAYS',\n", | |
| " 'DEDICATOR_NAME', 'RELATIONSHIP',\n", | |
| " 'MILITARY_UNIT', 'OCCUPATION', 'TRIBE'\n", | |
| "]\n", | |
| "\n", | |
| "# Find which columns actually exist in the results\n", | |
| "existing_cols = results_df.columns.tolist()\n", | |
| "final_cols = [c for c in desired_order if c in existing_cols] + [c for c in existing_cols if c not in desired_order]\n", | |
| "\n", | |
| "results_df = results_df[final_cols]\n", | |
| "results_df.to_csv(output_csv, index=False)\n", | |
| "\n", | |
| "print(\"✅ Done. Check 'clean_text' column - it should be ALL CAPS.\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "TP1SEgmfcKJr", | |
| "outputId": "f1f8c67d-1023-4939-b9a0-ef71dddbb0a5" | |
| }, | |
| "execution_count": 118, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "⏳ Loading Model...\n", | |
| "🚀 Processing 500 records...\n", | |
| "✅ Done. Check 'clean_text' column - it should be ALL CAPS.\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## let's get latinepi tools and download some real data" | |
| ], | |
| "metadata": { | |
| "id": "7yIWmxj3rwX8" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "!git clone https://github.com/shawngraham/latinepi.git\n", | |
| "%cd latinepi\n", | |
| "\n", | |
| "# Install the package (includes pandas and requests dependencies)\n", | |
| "!pip install -e .\n", | |
| "%cd .." | |
| ], | |
| "metadata": { | |
| "id": "PWBJD1ZcrzHM" | |
| }, | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# Search for 1st century AD inscriptions\n", | |
| "print(\"🔍 Searching for 1st century AD inscriptions...\\n\")\n", | |
| "\n", | |
| "!latinepi \\\n", | |
| " --search-edh \\\n", | |
| " --search-year-from 1 \\\n", | |
| " --search-year-to 100 \\\n", | |
| " --search-limit 500 \\\n", | |
| " --download-dir edh_downloads/first_century/\n", | |
| "\n", | |
| "# Check results\n", | |
| "century_files = list(Path('edh_downloads/first_century').glob('*.json'))\n", | |
| "print(f\"\\n✅ Downloaded {len(century_files)} inscriptions from 1st century AD\")\n" | |
| ], | |
| "metadata": { | |
| "id": "ddH0y2lor8yC" | |
| }, | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "import json\n", | |
| "import csv\n", | |
| "from pathlib import Path\n", | |
| "\n", | |
| "def ingest_inscriptions_to_csv(input_dir, output_file):\n", | |
| " \"\"\"\n", | |
| " Reads all JSON files from a directory and exports specific fields to a CSV.\n", | |
| "\n", | |
| " Args:\n", | |
| " input_dir (str): Path to the folder containing JSON files.\n", | |
| " output_file (str): Path where the CSV should be saved.\n", | |
| " \"\"\"\n", | |
| " source_path = Path(input_dir)\n", | |
| " output_path = Path(output_file)\n", | |
| "\n", | |
| " # List to hold extracted data\n", | |
| " extracted_data = []\n", | |
| "\n", | |
| " # Get all .json files in the directory\n", | |
| " json_files = list(source_path.glob(\"*.json\"))\n", | |
| "\n", | |
| " if not json_files:\n", | |
| " print(f\"⚠️ No JSON files found in directory: {input_dir}\")\n", | |
| " return\n", | |
| "\n", | |
| " print(f\"Processing {len(json_files)} files from {input_dir}...\")\n", | |
| "\n", | |
| " for file_path in json_files:\n", | |
| " try:\n", | |
| " with open(file_path, \"r\", encoding=\"utf-8\") as f:\n", | |
| " data = json.load(f)\n", | |
| "\n", | |
| " # Extract the required fields.\n", | |
| " # .get() returns an empty string if the field is missing.\n", | |
| " row = {\n", | |
| " \"id\": data.get(\"id\", \"\"),\n", | |
| " \"text\": data.get(\"diplomatic_text\", \"\"), # Mapping diplomatic_text -> text\n", | |
| " \"transcription\": data.get(\"transcription\", \"\")\n", | |
| " }\n", | |
| "\n", | |
| " extracted_data.append(row)\n", | |
| "\n", | |
| " except json.JSONDecodeError:\n", | |
| " print(f\"❌ Error decoding JSON: {file_path.name}\")\n", | |
| " except Exception as e:\n", | |
| " print(f\"❌ Error processing {file_path.name}: {e}\")\n", | |
| "\n", | |
| " # Write to CSV\n", | |
| " try:\n", | |
| " with open(output_path, \"w\", newline=\"\", encoding=\"utf-8\") as csvfile:\n", | |
| " fieldnames = [\"id\", \"text\", \"transcription\"]\n", | |
| " writer = csv.DictWriter(csvfile, fieldnames=fieldnames)\n", | |
| "\n", | |
| " writer.writeheader()\n", | |
| " writer.writerows(extracted_data)\n", | |
| "\n", | |
| " print(f\"✅ Successfully saved {len(extracted_data)} records to '{output_file}'\")\n", | |
| "\n", | |
| " except Exception as e:\n", | |
| " print(f\"❌ Error writing CSV file: {e}\")\n", | |
| "\n", | |
| "# --- Execution ---\n", | |
| "# Adjust the path below if your folder name is slightly different\n", | |
| "input_folder = \"edh_downloads/first_century\"\n", | |
| "output_csv = \"assets/inscriptions.csv\"\n", | |
| "\n", | |
| "# Ensure the output directory exists\n", | |
| "Path(\"corpus\").mkdir(exist_ok=True)\n", | |
| "\n", | |
| "ingest_inscriptions_to_csv(input_folder, output_csv)" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "S_Pumy2cQfjU", | |
| "outputId": "7a9a0b6d-346f-4413-e4c1-a06a53e5b406" | |
| }, | |
| "execution_count": 18, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Processing 500 files from edh_downloads/first_century...\n", | |
| "✅ Successfully saved 500 records to 'assets/inscriptions.csv'\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "import spacy\n", | |
| "import pandas as pd\n", | |
| "import re\n", | |
| "\n", | |
| "# --- 1. The Cleaning Function ---\n", | |
| "def clean_leiden_text(text):\n", | |
| " \"\"\"\n", | |
| " Converts Epigraphic Transcription (Leiden) to Natural Latin.\n", | |
| " Example: \"D(is) M(anibus) / [---]us\" -> \"Dis Manibus us\"\n", | |
| " \"\"\"\n", | |
| " if pd.isna(text) or text == \"\":\n", | |
| " return \"\"\n", | |
| "\n", | |
| " # Convert to string just in case\n", | |
| " text = str(text)\n", | |
| "\n", | |
| " # 1. Remove \"Lost text\" markers like [---], [---?], or ------\n", | |
| " # Matches brackets containing hyphens, with optional spaces or question marks\n", | |
| " text = re.sub(r\"\\[\\s*-+\\??\\s*\\]\", \"\", text)\n", | |
| " # Matches loose hyphens at start/end of lines (e.g. ------])\n", | |
| " text = re.sub(r\"-+\\]\", \"\", text)\n", | |
| " text = re.sub(r\"\\[-+\", \"\", text)\n", | |
| "\n", | |
| " # 2. Replace line breaks \"/\" with space\n", | |
| " text = text.replace(\"/\", \" \")\n", | |
| "\n", | |
| " # 3. Remove parentheses () to keep the expansion\n", | |
| " # \"D(is)\" -> \"Dis\"\n", | |
| " text = text.replace(\"(\", \"\").replace(\")\", \"\")\n", | |
| "\n", | |
| " # 4. Remove brackets [] to keep the restoration\n", | |
| " # \"Cl]audi[us\" -> \"Claudius\"\n", | |
| " text = text.replace(\"[\", \"\").replace(\"]\", \"\")\n", | |
| "\n", | |
| " # 5. Remove question marks inside words (uncertain readings)\n", | |
| " # \"dom[um?]\" -> \"domum\"\n", | |
| " text = text.replace(\"?\", \"\")\n", | |
| "\n", | |
| " # 6. Collapse multiple spaces into one\n", | |
| " text = re.sub(r\"\\s+\", \" \", text).strip()\n", | |
| "\n", | |
| " #text = text.upper()\n", | |
| "\n", | |
| " return text\n", | |
| "\n", | |
| "# --- 2. Load Data and Model ---\n", | |
| "print(\"⏳ Loading data and model...\")\n", | |
| "\n", | |
| "# Load the CSV generated in the previous step\n", | |
| "df = pd.read_csv(\"assets/inscriptions.csv\")\n", | |
| "\n", | |
| "# --- 3. Process the Inscriptions ---\n", | |
| "print(\"🧹 Cleaning text and extracting entities...\")\n", | |
| "\n", | |
| "results = []\n", | |
| "\n", | |
| "for index, row in df.iterrows():\n", | |
| " raw_text = row['transcription']\n", | |
| "\n", | |
| " # Apply cleaning\n", | |
| " clean_text = clean_leiden_text(raw_text)\n", | |
| "\n", | |
| " # Skip if text is empty after cleaning\n", | |
| " if not clean_text or len(clean_text) < 2:\n", | |
| " continue\n", | |
| "\n", | |
| " # Store result\n", | |
| " results.append({\n", | |
| " \"id\": row['id'],\n", | |
| " \"clean_text\": clean_text,\n", | |
| " \"raw_transcription\": raw_text\n", | |
| " })\n", | |
| "\n", | |
| "# --- 4. Save Results ---\n", | |
| "output_df = pd.DataFrame(results)\n", | |
| "output_filename = \"assets/cleaned_inscriptions.csv\"\n", | |
| "output_df.to_csv(output_filename, index=False)\n", | |
| "\n", | |
| "print(f\"✅ Done! Processed {len(results)} inscriptions.\")\n", | |
| "print(f\"📂 Results saved to: {output_filename}\")\n", | |
| "\n" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "pN79MrDWTXNv", | |
| "outputId": "6a46726c-7375-4537-9d7a-232fa323fba6" | |
| }, | |
| "execution_count": 66, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "⏳ Loading data and model...\n", | |
| "🧹 Cleaning text and extracting entities...\n", | |
| "✅ Done! Processed 500 inscriptions.\n", | |
| "📂 Results saved to: assets/cleaned_inscriptions.csv\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## Test the model or use it on new data" | |
| ], | |
| "metadata": { | |
| "id": "tzZ96_jJ3E3g" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# another bit of code to load the model in and clean things up.\n", | |
| "import spacy\n", | |
| "import pandas as pd\n", | |
| "import json\n", | |
| "from collections import defaultdict\n", | |
| "\n", | |
| "# --- 1. Load your custom-trained model ---\n", | |
| "print(\"Loading model from 'training/model-best'...\")\n", | |
| "nlp_ner = spacy.load(\"training/model-best\")\n", | |
| "\n", | |
| "\n", | |
| "# --- 2. Define input and output paths ---\n", | |
| "#input_csv_path = \"assets/test-fake-epigraphs.csv\"\n", | |
| "input_csv_path = \"assets/cleaned_inscriptions.csv\"\n", | |
| "output_csv_path = \"assets/results_wide.csv\" # New filename for the wide format\n", | |
| "\n", | |
| "try:\n", | |
| " df_new = pd.read_csv(input_csv_path)\n", | |
| "except FileNotFoundError:\n", | |
| " print(f\"Error: Input file not found at {input_csv_path}\")\n", | |
| " df_new = pd.DataFrame() # Create an empty DataFrame to prevent a crash\n", | |
| "\n", | |
| "# --- 3. Process data and collect results for a wide format ---\n", | |
| "print(f\"\\n--- Applying model to data from '{input_csv_path}' ---\")\n", | |
| "\n", | |
| "# This list will hold a dictionary for each row in our final CSV\n", | |
| "processed_rows = []\n", | |
| "\n", | |
| "for index, row in df_new.iterrows():\n", | |
| "\n", | |
| " # We use 'clean_text' because that is what we want to feed the model.\n", | |
| " if 'clean_text' not in row or not isinstance(row['clean_text'], str):\n", | |
| " print(f\"Skipping row {index} due to missing 'clean_text'.\")\n", | |
| " continue\n", | |
| "\n", | |
| " text = row['clean_text'] #\n", | |
| " doc = nlp_ner(text)\n", | |
| "\n", | |
| " # Start building the dictionary for our output row\n", | |
| " # It includes the original data from the input file\n", | |
| " output_row = {\n", | |
| " \"id\": row.get('id', index),\n", | |
| " \"text\": row.get('text', ''),\n", | |
| " \"transcription\": text\n", | |
| " }\n", | |
| "\n", | |
| " # Use a defaultdict to easily collect multiple entities of the same type\n", | |
| " entities_by_label = defaultdict(list)\n", | |
| " if doc.ents:\n", | |
| " print(f\"✅ Found entities in: '{text[:70]}...'\")\n", | |
| " for ent in doc.ents:\n", | |
| " entities_by_label[ent.label_].append(ent.text)\n", | |
| " else:\n", | |
| " print(f\"ℹ️ No entities found in: '{text[:70]}...'\")\n", | |
| "\n", | |
| " # Now, pivot the collected entities into the output_row dictionary.\n", | |
| " # If multiple entities of the same type were found (e.g., two names),\n", | |
| " # they will be joined together with a semicolon.\n", | |
| " for label, texts in entities_by_label.items():\n", | |
| " output_row[label] = \"; \".join(texts)\n", | |
| "\n", | |
| " # Add the completed row dictionary to our list\n", | |
| " processed_rows.append(output_row)\n", | |
| "\n", | |
| "\n", | |
| "# --- 4. Write the collected data to a wide format CSV file ---\n", | |
| "if processed_rows:\n", | |
| " try:\n", | |
| " # Convert the list of dictionaries directly into a pandas DataFrame\n", | |
| " # Pandas will automatically create columns for all unique entity labels found\n", | |
| " results_df = pd.DataFrame(processed_rows)\n", | |
| "\n", | |
| " # Reorder columns to have the source data first, for clarity\n", | |
| " # Get all unique entity labels found during processing\n", | |
| " entity_columns = sorted([col for col in results_df.columns if col not in ['id', 'text', 'transcription']])\n", | |
| " column_order = ['id', 'text', 'transcription'] + entity_columns\n", | |
| "\n", | |
| " # Ensure all columns exist before trying to reorder\n", | |
| " results_df = results_df.reindex(columns=column_order)\n", | |
| "\n", | |
| " # Save the DataFrame to a CSV file\n", | |
| " results_df.to_csv(output_csv_path, index=False)\n", | |
| " print(f\"\\n✅ Successfully saved wide-format results to {output_csv_path}\")\n", | |
| " except Exception as e:\n", | |
| " print(f\"Error saving CSV file: {e}\")\n", | |
| "else:\n", | |
| " print(\"ℹ️ No data was processed, so no CSV file was created.\")" | |
| ], | |
| "metadata": { | |
| "id": "Ba5s3RRWjrA9" | |
| }, | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "results_df" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 1000 | |
| }, | |
| "id": "CTiapyuG8EVr", | |
| "outputId": "01d1faf3-92ec-4274-fd4f-82bce4379509" | |
| }, | |
| "execution_count": 121, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": [ | |
| " id clean_text \\\n", | |
| "0 HD000010 D M L ASINI POLI SECVNDVS ET ORPHAEVS LIB P B M \n", | |
| "1 HD000476 T AV S T L CRY ENES \n", | |
| "2 HD000251 M PILI PRIMIG GRANIANI \n", | |
| "3 HD000324 AVDI ITAE N AM CAELO OVANS DOM IVST VERV M C \n", | |
| "4 HD000280 Ε ΗΘΙΚ A POSTYM A F SENECA V AN IV \n", | |
| ".. ... ... \n", | |
| "494 HD000232 D M S P VELLEIVS DONATVS ET SIBI POMPEIAE AM P... \n", | |
| "495 HD000132 D M L VOCONIO VERO MIL COH VI PR | CASSI MIL A... \n", | |
| "496 HD000252 D M S L IVN O NESIPH ORVS AN LX P I S \n", | |
| "497 HD000119 K D L PETRE IVS VIC TOR ALI ARIVS D K M V S L M \n", | |
| "498 HD000300 RIAE CARISS ET RESCENTIS EORVM ALEMERA TERNOR \n", | |
| "\n", | |
| " DEDICATION_TO_THE_GODS NOMEN COGNOMEN PRAENOMEN AGE_YEARS AGE_MONTHS \\\n", | |
| "0 NaN NaN NaN NaN NaN NaN \n", | |
| "1 NaN NaN NaN NaN NaN NaN \n", | |
| "2 NaN NaN NaN NaN NaN NaN \n", | |
| "3 NaN NaN NaN NaN NaN NaN \n", | |
| "4 NaN NaN NaN NaN IV NaN \n", | |
| ".. ... ... ... ... ... ... \n", | |
| "494 NaN NaN NaN NaN NaN NaN \n", | |
| "495 NaN NaN NaN NaN X NaN \n", | |
| "496 NaN NaN NaN NaN LX NaN \n", | |
| "497 NaN NaN NaN NaN NaN NaN \n", | |
| "498 NaN NaN NaN NaN NaN NaN \n", | |
| "\n", | |
| " AGE_DAYS DEDICATOR_NAME MILITARY_UNIT OCCUPATION TRIBE VERB \\\n", | |
| "0 NaN NaN SECVNDVS ET NaN NaN NaN \n", | |
| "1 NaN NaN NaN NaN NaN NaN \n", | |
| "2 NaN NaN NaN NaN NaN NaN \n", | |
| "3 NaN NaN NaN NaN NaN NaN \n", | |
| "4 NaN NaN NaN NaN NaN NaN \n", | |
| ".. ... ... ... ... ... ... \n", | |
| "494 NaN NaN NaN NaN NaN NaN \n", | |
| "495 NaN NaN NaN NaN NaN NaN \n", | |
| "496 NaN NaN NaN NaN NaN NaN \n", | |
| "497 NaN TOR ALI ARIVS D NaN NaN NaN NaN \n", | |
| "498 NaN NaN NaN NaN NaN NaN \n", | |
| "\n", | |
| " BENE_MERENTI FILIATION FUNERARY_FORMULA \n", | |
| "0 NaN NaN NaN \n", | |
| "1 NaN NaN NaN \n", | |
| "2 NaN NaN NaN \n", | |
| "3 NaN NaN NaN \n", | |
| "4 NaN NaN NaN \n", | |
| ".. ... ... ... \n", | |
| "494 NaN NaN NaN \n", | |
| "495 NaN NaN NaN \n", | |
| "496 NaN O NaN \n", | |
| "497 NaN NaN NaN \n", | |
| "498 NaN NaN NaN \n", | |
| "\n", | |
| "[499 rows x 17 columns]" | |
| ], | |
| "text/html": [ | |
| "\n", | |
| " <div id=\"df-22b8f64d-1edb-4aa4-895d-01eaea477fd2\" class=\"colab-df-container\">\n", | |
| " <div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>id</th>\n", | |
| " <th>clean_text</th>\n", | |
| " <th>DEDICATION_TO_THE_GODS</th>\n", | |
| " <th>NOMEN</th>\n", | |
| " <th>COGNOMEN</th>\n", | |
| " <th>PRAENOMEN</th>\n", | |
| " <th>AGE_YEARS</th>\n", | |
| " <th>AGE_MONTHS</th>\n", | |
| " <th>AGE_DAYS</th>\n", | |
| " <th>DEDICATOR_NAME</th>\n", | |
| " <th>MILITARY_UNIT</th>\n", | |
| " <th>OCCUPATION</th>\n", | |
| " <th>TRIBE</th>\n", | |
| " <th>VERB</th>\n", | |
| " <th>BENE_MERENTI</th>\n", | |
| " <th>FILIATION</th>\n", | |
| " <th>FUNERARY_FORMULA</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>HD000010</td>\n", | |
| " <td>D M L ASINI POLI SECVNDVS ET ORPHAEVS LIB P B M</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>SECVNDVS ET</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>HD000476</td>\n", | |
| " <td>T AV S T L CRY ENES</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>HD000251</td>\n", | |
| " <td>M PILI PRIMIG GRANIANI</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>HD000324</td>\n", | |
| " <td>AVDI ITAE N AM CAELO OVANS DOM IVST VERV M C</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>HD000280</td>\n", | |
| " <td>Ε ΗΘΙΚ A POSTYM A F SENECA V AN IV</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>IV</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>...</th>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>494</th>\n", | |
| " <td>HD000232</td>\n", | |
| " <td>D M S P VELLEIVS DONATVS ET SIBI POMPEIAE AM P...</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>495</th>\n", | |
| " <td>HD000132</td>\n", | |
| " <td>D M L VOCONIO VERO MIL COH VI PR | CASSI MIL A...</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>X</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>496</th>\n", | |
| " <td>HD000252</td>\n", | |
| " <td>D M S L IVN O NESIPH ORVS AN LX P I S</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>LX</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>O</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>497</th>\n", | |
| " <td>HD000119</td>\n", | |
| " <td>K D L PETRE IVS VIC TOR ALI ARIVS D K M V S L M</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>TOR ALI ARIVS D</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>498</th>\n", | |
| " <td>HD000300</td>\n", | |
| " <td>RIAE CARISS ET RESCENTIS EORVM ALEMERA TERNOR</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>499 rows × 17 columns</p>\n", | |
| "</div>\n", | |
| " <div class=\"colab-df-buttons\">\n", | |
| "\n", | |
| " <div class=\"colab-df-container\">\n", | |
| " <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-22b8f64d-1edb-4aa4-895d-01eaea477fd2')\"\n", | |
| " title=\"Convert this dataframe to an interactive table.\"\n", | |
| " style=\"display:none;\">\n", | |
| "\n", | |
| " <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
| " <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
| " </svg>\n", | |
| " </button>\n", | |
| "\n", | |
| " <style>\n", | |
| " .colab-df-container {\n", | |
| " display:flex;\n", | |
| " gap: 12px;\n", | |
| " }\n", | |
| "\n", | |
| " .colab-df-convert {\n", | |
| " background-color: #E8F0FE;\n", | |
| " border: none;\n", | |
| " border-radius: 50%;\n", | |
| " cursor: pointer;\n", | |
| " display: none;\n", | |
| " fill: #1967D2;\n", | |
| " height: 32px;\n", | |
| " padding: 0 0 0 0;\n", | |
| " width: 32px;\n", | |
| " }\n", | |
| "\n", | |
| " .colab-df-convert:hover {\n", | |
| " background-color: #E2EBFA;\n", | |
| " box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
| " fill: #174EA6;\n", | |
| " }\n", | |
| "\n", | |
| " .colab-df-buttons div {\n", | |
| " margin-bottom: 4px;\n", | |
| " }\n", | |
| "\n", | |
| " [theme=dark] .colab-df-convert {\n", | |
| " background-color: #3B4455;\n", | |
| " fill: #D2E3FC;\n", | |
| " }\n", | |
| "\n", | |
| " [theme=dark] .colab-df-convert:hover {\n", | |
| " background-color: #434B5C;\n", | |
| " box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
| " filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
| " fill: #FFFFFF;\n", | |
| " }\n", | |
| " </style>\n", | |
| "\n", | |
| " <script>\n", | |
| " const buttonEl =\n", | |
| " document.querySelector('#df-22b8f64d-1edb-4aa4-895d-01eaea477fd2 button.colab-df-convert');\n", | |
| " buttonEl.style.display =\n", | |
| " google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
| "\n", | |
| " async function convertToInteractive(key) {\n", | |
| " const element = document.querySelector('#df-22b8f64d-1edb-4aa4-895d-01eaea477fd2');\n", | |
| " const dataTable =\n", | |
| " await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
| " [key], {});\n", | |
| " if (!dataTable) return;\n", | |
| "\n", | |
| " const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
| " '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
| " + ' to learn more about interactive tables.';\n", | |
| " element.innerHTML = '';\n", | |
| " dataTable['output_type'] = 'display_data';\n", | |
| " await google.colab.output.renderOutput(dataTable, element);\n", | |
| " const docLink = document.createElement('div');\n", | |
| " docLink.innerHTML = docLinkHtml;\n", | |
| " element.appendChild(docLink);\n", | |
| " }\n", | |
| " </script>\n", | |
| " </div>\n", | |
| "\n", | |
| "\n", | |
| " <div id=\"df-5d26b5b9-5070-4c10-a973-453fbcee62b5\">\n", | |
| " <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-5d26b5b9-5070-4c10-a973-453fbcee62b5')\"\n", | |
| " title=\"Suggest charts\"\n", | |
| " style=\"display:none;\">\n", | |
| "\n", | |
| "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
| " width=\"24px\">\n", | |
| " <g>\n", | |
| " <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n", | |
| " </g>\n", | |
| "</svg>\n", | |
| " </button>\n", | |
| "\n", | |
| "<style>\n", | |
| " .colab-df-quickchart {\n", | |
| " --bg-color: #E8F0FE;\n", | |
| " --fill-color: #1967D2;\n", | |
| " --hover-bg-color: #E2EBFA;\n", | |
| " --hover-fill-color: #174EA6;\n", | |
| " --disabled-fill-color: #AAA;\n", | |
| " --disabled-bg-color: #DDD;\n", | |
| " }\n", | |
| "\n", | |
| " [theme=dark] .colab-df-quickchart {\n", | |
| " --bg-color: #3B4455;\n", | |
| " --fill-color: #D2E3FC;\n", | |
| " --hover-bg-color: #434B5C;\n", | |
| " --hover-fill-color: #FFFFFF;\n", | |
| " --disabled-bg-color: #3B4455;\n", | |
| " --disabled-fill-color: #666;\n", | |
| " }\n", | |
| "\n", | |
| " .colab-df-quickchart {\n", | |
| " background-color: var(--bg-color);\n", | |
| " border: none;\n", | |
| " border-radius: 50%;\n", | |
| " cursor: pointer;\n", | |
| " display: none;\n", | |
| " fill: var(--fill-color);\n", | |
| " height: 32px;\n", | |
| " padding: 0;\n", | |
| " width: 32px;\n", | |
| " }\n", | |
| "\n", | |
| " .colab-df-quickchart:hover {\n", | |
| " background-color: var(--hover-bg-color);\n", | |
| " box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
| " fill: var(--button-hover-fill-color);\n", | |
| " }\n", | |
| "\n", | |
| " .colab-df-quickchart-complete:disabled,\n", | |
| " .colab-df-quickchart-complete:disabled:hover {\n", | |
| " background-color: var(--disabled-bg-color);\n", | |
| " fill: var(--disabled-fill-color);\n", | |
| " box-shadow: none;\n", | |
| " }\n", | |
| "\n", | |
| " .colab-df-spinner {\n", | |
| " border: 2px solid var(--fill-color);\n", | |
| " border-color: transparent;\n", | |
| " border-bottom-color: var(--fill-color);\n", | |
| " animation:\n", | |
| " spin 1s steps(1) infinite;\n", | |
| " }\n", | |
| "\n", | |
| " @keyframes spin {\n", | |
| " 0% {\n", | |
| " border-color: transparent;\n", | |
| " border-bottom-color: var(--fill-color);\n", | |
| " border-left-color: var(--fill-color);\n", | |
| " }\n", | |
| " 20% {\n", | |
| " border-color: transparent;\n", | |
| " border-left-color: var(--fill-color);\n", | |
| " border-top-color: var(--fill-color);\n", | |
| " }\n", | |
| " 30% {\n", | |
| " border-color: transparent;\n", | |
| " border-left-color: var(--fill-color);\n", | |
| " border-top-color: var(--fill-color);\n", | |
| " border-right-color: var(--fill-color);\n", | |
| " }\n", | |
| " 40% {\n", | |
| " border-color: transparent;\n", | |
| " border-right-color: var(--fill-color);\n", | |
| " border-top-color: var(--fill-color);\n", | |
| " }\n", | |
| " 60% {\n", | |
| " border-color: transparent;\n", | |
| " border-right-color: var(--fill-color);\n", | |
| " }\n", | |
| " 80% {\n", | |
| " border-color: transparent;\n", | |
| " border-right-color: var(--fill-color);\n", | |
| " border-bottom-color: var(--fill-color);\n", | |
| " }\n", | |
| " 90% {\n", | |
| " border-color: transparent;\n", | |
| " border-bottom-color: var(--fill-color);\n", | |
| " }\n", | |
| " }\n", | |
| "</style>\n", | |
| "\n", | |
| " <script>\n", | |
| " async function quickchart(key) {\n", | |
| " const quickchartButtonEl =\n", | |
| " document.querySelector('#' + key + ' button');\n", | |
| " quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n", | |
| " quickchartButtonEl.classList.add('colab-df-spinner');\n", | |
| " try {\n", | |
| " const charts = await google.colab.kernel.invokeFunction(\n", | |
| " 'suggestCharts', [key], {});\n", | |
| " } catch (error) {\n", | |
| " console.error('Error during call to suggestCharts:', error);\n", | |
| " }\n", | |
| " quickchartButtonEl.classList.remove('colab-df-spinner');\n", | |
| " quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n", | |
| " }\n", | |
| " (() => {\n", | |
| " let quickchartButtonEl =\n", | |
| " document.querySelector('#df-5d26b5b9-5070-4c10-a973-453fbcee62b5 button');\n", | |
| " quickchartButtonEl.style.display =\n", | |
| " google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
| " })();\n", | |
| " </script>\n", | |
| " </div>\n", | |
| "\n", | |
| " <div id=\"id_fa9581a4-c2c5-469d-8464-c36306ed0024\">\n", | |
| " <style>\n", | |
| " .colab-df-generate {\n", | |
| " background-color: #E8F0FE;\n", | |
| " border: none;\n", | |
| " border-radius: 50%;\n", | |
| " cursor: pointer;\n", | |
| " display: none;\n", | |
| " fill: #1967D2;\n", | |
| " height: 32px;\n", | |
| " padding: 0 0 0 0;\n", | |
| " width: 32px;\n", | |
| " }\n", | |
| "\n", | |
| " .colab-df-generate:hover {\n", | |
| " background-color: #E2EBFA;\n", | |
| " box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
| " fill: #174EA6;\n", | |
| " }\n", | |
| "\n", | |
| " [theme=dark] .colab-df-generate {\n", | |
| " background-color: #3B4455;\n", | |
| " fill: #D2E3FC;\n", | |
| " }\n", | |
| "\n", | |
| " [theme=dark] .colab-df-generate:hover {\n", | |
| " background-color: #434B5C;\n", | |
| " box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
| " filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
| " fill: #FFFFFF;\n", | |
| " }\n", | |
| " </style>\n", | |
| " <button class=\"colab-df-generate\" onclick=\"generateWithVariable('results_df')\"\n", | |
| " title=\"Generate code using this dataframe.\"\n", | |
| " style=\"display:none;\">\n", | |
| "\n", | |
| " <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
| " width=\"24px\">\n", | |
| " <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n", | |
| " </svg>\n", | |
| " </button>\n", | |
| " <script>\n", | |
| " (() => {\n", | |
| " const buttonEl =\n", | |
| " document.querySelector('#id_fa9581a4-c2c5-469d-8464-c36306ed0024 button.colab-df-generate');\n", | |
| " buttonEl.style.display =\n", | |
| " google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
| "\n", | |
| " buttonEl.onclick = () => {\n", | |
| " google.colab.notebook.generateWithVariable('results_df');\n", | |
| " }\n", | |
| " })();\n", | |
| " </script>\n", | |
| " </div>\n", | |
| "\n", | |
| " </div>\n", | |
| " </div>\n" | |
| ], | |
| "application/vnd.google.colaboratory.intrinsic+json": { | |
| "type": "dataframe", | |
| "variable_name": "results_df", | |
| "summary": "{\n \"name\": \"results_df\",\n \"rows\": 499,\n \"fields\": [\n {\n \"column\": \"id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 499,\n \"samples\": [\n \"HD000090\",\n \"HD000069\",\n \"HD000182\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"clean_text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 499,\n \"samples\": [\n \"MINERVAE DE SVLI DONAVI FVREM QVI CARACALLAM MEAM INVO LAVIT SI SERVVS SI LIBER SI BA RO SI MVLIER HOC DONVM NON REDEMAT NESSI SANGVNE SVO\",\n \"LVCR S CATVRON S F LARI B EIRADI GO EX VOT POS AR SAC\",\n \"D M L LVCILI MAR TIALIS VIX AN XXII D XXI CA QVINTA MATER MISER RIMA FECIT\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"DEDICATION_TO_THE_GODS\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 11,\n \"samples\": [\n \"DIS DONVM\",\n \"O\",\n \"DIS\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"NOMEN\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 16,\n \"samples\": [\n \"SAPEONI CERA\",\n \"ETATE LVNA\",\n \"ZOSIMI\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"COGNOMEN\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 35,\n \"samples\": [\n \"APOLLINI AVG\",\n \"QVE EIVS\",\n \"SEVERA\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"PRAENOMEN\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"SEX\",\n \"DEAE\",\n \"OMINO\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"AGE_YEARS\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 47,\n \"samples\": [\n \"XXXX\",\n \"LXV\",\n \"LV\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"AGE_MONTHS\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"V\",\n \"III\",\n \"VII\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"AGE_DAYS\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"IIII\",\n \"VIIII\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"DEDICATOR_NAME\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 30,\n \"samples\": [\n \"RT BVNO F\",\n \"COPON LIBERTIS RISQVE\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"MILITARY_UNIT\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 56,\n \"samples\": [\n \"SECVNDVS ET\",\n \"COPORICI MATERNI\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"OCCUPATION\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"MINDI\",\n \"SACTA SERIE\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"TRIBE\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 12,\n \"samples\": [\n \"MER VRI\",\n \"O PROCONS\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"VERB\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 34,\n \"samples\": [\n \"PONPONIO; PONPO\",\n \"CN\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"BENE_MERENTI\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 17,\n \"samples\": [\n \"MERCES\",\n \"PROBA\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"FILIATION\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"AT\",\n \"O\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"FUNERARY_FORMULA\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 8,\n \"samples\": [\n \"LXVI HIC\",\n \"LXX HIC\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" | |
| } | |
| }, | |
| "metadata": {}, | |
| "execution_count": 121 | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "import pandas as pd\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "import seaborn as sns\n", | |
| "import spacy\n", | |
| "from spacy import displacy\n", | |
| "import re\n", | |
| "from collections import Counter\n", | |
| "import io\n", | |
| "\n", | |
| "# --- Helper function to convert Roman numerals AND Latin words to integers ---\n", | |
| "def convert_latin_age_to_int(age_str: str) -> int:\n", | |
| " \"\"\"\n", | |
| " Converts an age from a Latin inscription (Roman numeral or word) to an integer.\n", | |
| " Handles errors gracefully by returning 0 for invalid inputs.\n", | |
| " \"\"\"\n", | |
| " if not isinstance(age_str, str):\n", | |
| " return 0\n", | |
| "\n", | |
| " # Standardize the input string and handle common endings\n", | |
| " processed_age_str = age_str.strip().upper().rstrip('.;,')\n", | |
| "\n", | |
| " # 1. Check for Latin number words first\n", | |
| " LATIN_WORDS_TO_INT = {\n", | |
| " 'UNUM': 1, 'DUO': 2, 'DUOBUS': 2, 'TRES': 3, 'TRIBUS': 3, 'QUATTUOR': 4,\n", | |
| " 'QUINQUE': 5, 'SEX': 6, 'SEPTEM': 7, 'OCTO': 8, 'NOVEM': 9, 'DECEM': 10,\n", | |
| " 'UNDECIM': 11, 'DUODECIM': 12, 'TREDECIM': 13, 'QUATTUORDECIM': 14,\n", | |
| " 'QUINDECIM': 15, 'SEDECIM': 16, 'SEPTENDECIM': 17, 'DUODEVIGINTI': 18,\n", | |
| " 'UNDEVIGINTI': 19, 'VIGINTI': 20, 'TRIGINTA': 30, 'QUADRAGINTA': 40,\n", | |
| " 'QUINQUAGINTA': 50, 'SEXAGINTA': 60, 'SEPTUAGINTA': 70, 'OCTOGINTA': 80,\n", | |
| " 'NONAGINTA': 90, 'CENTUM': 100\n", | |
| " }\n", | |
| "\n", | |
| " if processed_age_str in LATIN_WORDS_TO_INT:\n", | |
| " return LATIN_WORDS_TO_INT[processed_age_str]\n", | |
| "\n", | |
| " # 2. If it's not a word, try parsing as a Roman numeral\n", | |
| " roman_map = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}\n", | |
| " val = 0\n", | |
| " try:\n", | |
| " for i in range(len(processed_age_str)):\n", | |
| " if i > 0 and roman_map[processed_age_str[i]] > roman_map[processed_age_str[i-1]]:\n", | |
| " val += roman_map[processed_age_str[i]] - 2 * roman_map[processed_age_str[i-1]]\n", | |
| " else:\n", | |
| " val += roman_map[processed_age_str[i]]\n", | |
| " return val\n", | |
| " except KeyError:\n", | |
| " return 0\n", | |
| "\n", | |
| "def visualize_ner_results(\n", | |
| " results_df: pd.DataFrame,\n", | |
| " num_examples_to_render: int = 5,\n", | |
| " top_n_occupations: int = 10\n", | |
| "):\n", | |
| " \"\"\"\n", | |
| " Reads a wide-format DataFrame of NER results and generates visualizations.\n", | |
| " This version correctly handles ages as Latin words and semicolon-separated values.\n", | |
| " \"\"\"\n", | |
| " if not isinstance(results_df, pd.DataFrame):\n", | |
| " print(\"❌ Error: Input must be a pandas DataFrame.\")\n", | |
| " return\n", | |
| "\n", | |
| " # --- 1. Visualization: Entity Type Frequency ---\n", | |
| " print(\"--- Visualization 1: Entity Type Frequency ---\")\n", | |
| " entity_columns = [col for col in results_df.columns if col not in ['id', 'text', 'transcription', 'clean_text']]\n", | |
| " entity_counts = results_df[entity_columns].count().sort_values(ascending=False)\n", | |
| "\n", | |
| " plt.style.use('seaborn-v0_8-whitegrid')\n", | |
| " plt.figure(figsize=(12, 8))\n", | |
| " sns.barplot(x=entity_counts.index, y=entity_counts.values, palette=\"viridis\")\n", | |
| " plt.title('Frequency of Each Entity Type', fontsize=16, weight='bold')\n", | |
| " plt.ylabel('Total Count', fontsize=12)\n", | |
| " plt.xlabel('Entity Type', fontsize=12)\n", | |
| " plt.xticks(rotation=45, ha='right')\n", | |
| " plt.tight_layout()\n", | |
| " plt.show()\n", | |
| " print(\"\\n\")\n", | |
| "\n", | |
| " # --- 2. Visualization: Top N Nomen ---\n", | |
| " print(f\"--- Visualization 2: Top {top_n_occupations} Most Common Nomen ---\")\n", | |
| " if 'NOMEN' in results_df.columns and not results_df['NOMEN'].isnull().all():\n", | |
| " # Explode the semicolon-separated strings into separate rows\n", | |
| " occupations = results_df['NOMEN'].dropna().str.split(';').explode().str.strip()\n", | |
| " top_occupations = occupations.value_counts().nlargest(top_n_occupations)\n", | |
| "\n", | |
| " plt.figure(figsize=(10, 8))\n", | |
| " sns.barplot(x=top_occupations.values, y=top_occupations.index, orient='h', palette='magma')\n", | |
| " plt.title(f'Top {top_n_occupations} NOMEN', fontsize=16, weight='bold')\n", | |
| " plt.xlabel('Count', fontsize=12)\n", | |
| " plt.ylabel('NOMEN', fontsize=12)\n", | |
| " plt.tight_layout()\n", | |
| " plt.show()\n", | |
| " else:\n", | |
| " print(\"⚠️ 'NOMEN' column not found or is empty. Skipping this visualization.\")\n", | |
| " print(\"\\n\")\n", | |
| "\n", | |
| " # --- 3. Visualization: Age Distribution (with updated conversion) ---\n", | |
| " print(\"--- Visualization 3: Age Distribution of the Deceased ---\")\n", | |
| " if 'AGE_YEARS' in results_df.columns and not results_df['AGE_YEARS'].isnull().all():\n", | |
| " # Explode semicolon-separated values, then apply the conversion function\n", | |
| " ages_str = results_df['AGE_YEARS'].dropna().str.split(';').explode().str.strip()\n", | |
| " ages_int = ages_str.apply(convert_latin_age_to_int)\n", | |
| " valid_ages = ages_int[(ages_int > 0) & (ages_int <= 120)]\n", | |
| "\n", | |
| " if not valid_ages.empty:\n", | |
| " plt.figure(figsize=(12, 7))\n", | |
| " sns.histplot(valid_ages, bins=30, kde=True, color='teal')\n", | |
| " plt.title('Distribution of Deceased Ages (in Years)', fontsize=16, weight='bold')\n", | |
| " plt.xlabel('Age (Years)', fontsize=12)\n", | |
| " plt.ylabel('Number of Inscriptions', fontsize=12)\n", | |
| " plt.tight_layout()\n", | |
| " plt.show()\n", | |
| " else:\n", | |
| " print(\"⚠️ No valid ages could be converted from the 'AGE_YEARS' column.\")\n", | |
| " else:\n", | |
| " print(\"⚠️ 'AGE_YEARS' column not found. Skipping age distribution plot.\")\n", | |
| " print(\"\\n\")\n", | |
| "\n", | |
| " # --- 4. Visualization: Top N Tribe ---\n", | |
| " print(f\"--- Visualization 2: Top {top_n_occupations} Most Common Tribe ---\")\n", | |
| " if 'TRIBE' in results_df.columns and not results_df['TRIBE'].isnull().all():\n", | |
| " # Explode the semicolon-separated strings into separate rows\n", | |
| " occupations = results_df['TRIBE'].dropna().str.split(';').explode().str.strip()\n", | |
| " top_occupations = occupations.value_counts().nlargest(top_n_occupations)\n", | |
| "\n", | |
| " plt.figure(figsize=(10, 8))\n", | |
| " sns.barplot(x=top_occupations.values, y=top_occupations.index, orient='h', palette='magma')\n", | |
| " plt.title(f'Top {top_n_occupations} TRIBE', fontsize=16, weight='bold')\n", | |
| " plt.xlabel('Count', fontsize=12)\n", | |
| " plt.ylabel('TRIBE', fontsize=12)\n", | |
| " plt.tight_layout()\n", | |
| " plt.show()\n", | |
| " else:\n", | |
| " print(\"⚠️ 'TRIBE' column not found or is empty. Skipping this visualization.\")\n", | |
| " print(\"\\n\")\n", | |
| "\n", | |
| " # --- 5. Visualization: Top N Military Unit ---\n", | |
| " print(f\"--- Visualization 2: Top {top_n_occupations} Most Common Military Unit ---\")\n", | |
| " if 'TRIBE' in results_df.columns and not results_df['MILITARY_UNIT'].isnull().all():\n", | |
| " # Explode the semicolon-separated strings into separate rows\n", | |
| " occupations = results_df['MILITARY_UNIT'].dropna().str.split(';').explode().str.strip()\n", | |
| " top_occupations = occupations.value_counts().nlargest(top_n_occupations)\n", | |
| "\n", | |
| " plt.figure(figsize=(10, 8))\n", | |
| " sns.barplot(x=top_occupations.values, y=top_occupations.index, orient='h', palette='magma')\n", | |
| " plt.title(f'Top {top_n_occupations} MILITARY_UNIT', fontsize=16, weight='bold')\n", | |
| " plt.xlabel('Count', fontsize=12)\n", | |
| " plt.ylabel('MILITARY_UNIT', fontsize=12)\n", | |
| " plt.tight_layout()\n", | |
| " plt.show()\n", | |
| " else:\n", | |
| " print(\"⚠️ 'MILITARY_UNIT' column not found or is empty. Skipping this visualization.\")\n", | |
| " print(\"\\n\")\n", | |
| "\n", | |
| "visualize_ner_results(results_df)" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 1000 | |
| }, | |
| "id": "lTAMNIZQ7PsP", | |
| "outputId": "a91683fe-5533-49cc-d533-2f872f9bbe63" | |
| }, | |
| "execution_count": 130, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "--- Visualization 1: Entity Type Frequency ---\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stderr", | |
| "text": [ | |
| "/tmp/ipython-input-2836028133.py:69: FutureWarning: \n", | |
| "\n", | |
| "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.\n", | |
| "\n", | |
| " sns.barplot(x=entity_counts.index, y=entity_counts.values, palette=\"viridis\")\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 1200x800 with 1 Axes>" | |
| ], | |
| "image/png": "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2RQdHa3333/fKYgYOXKkFUiVKVNG3333ndasWSM/Pz8tWrQoWWueNGmSdbNavHhxLVy4UKtXr1aTJk0kSVu3btV33313x8du3LhR58+fl7+/v1auXKlXXnnFWndrC4zRo0dboVDp0qW1cOFCrVmzRg0bNpQk/fPPP/rwww8lJXQFy507t6SEG+0jR444vW7iUKpx48b3fY/vv/++9dre3t6aOXOmNmzYoDFjxih9+vSSElqhOPZtp06dFBAQoNKlS1vPMWXKFAUEBDz0QN33Mnr0aOtz0LFjR23cuFFfffWVFXCuXbvWKVgICAiwAqn06dNr/Pjx+vHHHzV27FilTp1a8fHxGj16tM6ePXvba0VERGjatGmaMGGCfv75Z/Xs2dPpeQ8cOPDI3uetZsyYIW9vb61evVrz58/Xc889Jylh9kNHcFO/fn0FBAQ4hUaLFy9WQECA6tevf9fnXrJkiT744APr99dee00BAQFasmSJsmTJYg0yb4y5rWtg4s9ZgwYNlDp16od/s/9fs2bNrJ83bdrk1LopJiZGv/32m6SEIMpxjCS2fv16ZciQQf7+/lq1apVat25trZs/f77TMfMwxzgAAI8CoRQAAI+Ao0tegQIF9MILL0iSFi5caAUN9erV05tvvqn8+fOrbt266tu3r6SE4OrHH3+UlNDN7+jRo5ISbkgnT56ssmXL6oUXXtDw4cNVqFChZKs3MjJS33//vfX7+PHjVbp0ab344osaM2aMFQDMnz//jo8PCwvTp59+qgoVKsjb21tjx45V2rRpJUnXr1/XP//8Y72/tWvXSpJSpUqlzz77TKVLl9YLL7ygjz/+WE8++aTSp0+vvXv36sKFC0qVKpV8fX2t10kcFkRERFgtszJnzqyaNWve8z0eOHBAW7dulZQQ3Hz77beqUqWKChQoID8/P6fAwtHt0NHtLnEIkSVLFuXKlUuZMmW65+sl9vHHH1vdre70X+KugKGhoXr22WdVu3Zt1alTR3379lW+fPlUvXp11a1b19pu79691s+zZ8+2fu7evbsaN26s/Pnzq1mzZmrdurXSp08vLy8va98nduPGDXXv3l2vv/668ubNq759+6pkyZLW+luDwPtJ3K30Tv/VqlXrro/18vLS1KlT9eKLL6pcuXJO/yaOY+GJJ55Qrly5nFoLObrEPfHEE3d97uzZszv9mzme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p6cyZcp0W6iycOFCjRw5UuPGjdPrr7/uogofL8YYffzxxwoLC9PYsWOt5WFhYQoJCdHmzZtVvHhx5cuXTzly5HBhpa73zz//6MqVK8qbN6+yZ8/utG7Tpk0aM2aMWrRooTZt2qT44CUpoqOj1blzZ7344ov68MMPndbFxcUpJCREOXPmdFF1jw7NVpIgLi7OGhvJ4fDhw9q4caMWLVqk4OBgeXt7q2vXrnrttddcWKnrhYWFqXbt2mrSpIkGDx6sdu3a6Z133tGnn36qkiVLuvUNSmLnzp3TCy+8oB07dqhdu3bKlCmTpk6dqh07duibb75RZGSkTp48qYkTJ+r5559XrVq1XF2yy0RHR2vs2LH67bfflD9/ft28eVPPP/+8ChcurCJFiqh27dp67733lD17drVq1Uo//PCDChQo4NY3MGFhYWrWrNltgdS6dev03nvvadasWS6s7vETFhamRo0aqWrVqipUqJAkadiwYRo9erTWrVsnSQRTkk6fPq2AgAAVKlRIhQoVUpYsWSRJTz31lD788EONGTNG8+fPlzFGpUuXdvsWU9evX1dISIh69uxpLTty5Ig2btyohQsXKiwsTC+++KI6deqkevXqubBS1zLGqFGjRlqyZIk2b96s6tWra+rUqfL397cCKccXN1LCRBd8CSh5eXkpe/bsunr1qvLly6exY8dq48aNKlOmjDp06GAFUu56DMbHx+u3337T9u3bFRsbq8jISAUEBMjHx0eZM2dWkyZNVL16dcXGxmrt2rXy8vJS3bp13bLF1NWrV9WgQQMZY/TMM8+obt26ypEjh2rUqGFdW2XPnl19+vSRl5eX6tev7+qSXc7Dw0PXr19XwYIFrWV//fWXVq5cqXXr1lnd2tu2batu3bopbdq0LqzWda5du6Y2bdrowoULeuqpp1S1alVlzJhRtWvXVsGCBVWrVi3lypVLffv2Vdq0adW0aVPr2sJdnT17VqlTp1afPn2sZadOndKePXvk7++viIgI1a5dW71791b69OldWGnyIpS6j/j4eAUHB+vs2bM6duyYnnnmGQUGBmrKlCl6+umn1bx5czVu3Fhjx47VDz/8oHr16rnlH3+HXbt2qWnTpnr//fclSf7+/mrTpo369+9PMJWIj4+Phg4dqokTJ6p79+4qW7asli1bpu+//976A1e4cGGtWLFCFy5ccHG1rhMWFqaMGTOqT58+io6OVsWKFZU7d27lyJFDy5cv165du/TFF18oS5Ysql27ttKnT6+GDRtq3bp1ypcvn6vLd5lvv/1Wp0+f1sSJE61la9eu1eDBgzV16lSVL19ecXFxSpUqldsfjxEREWrRooVeeuklK8Bz3AATTP2fqKgojRgxQtu3b1e6dOlUuXJlaxbM4sWLy8fHRxMnTtR7772n1atXy8PDw+rK567i4uIUERGhX375RdmyZdPu3bs1ffp05ciRQ82bN1fZsmW1atUqbdiwQS+//LLbfkOcLVs29evXT6lSpVLPnj1Vt25d7dq1SwsXLrwtkJo5c6Z27typzz//3K27qzm+dHn77bc1e/Zs1apVSzVq1NCiRYv0yy+/aOHChWrdurVeeukleXt7u7pcl0iVKpVeeeUVeXh46Ndff1XFihU1aNAg7d27VytXrtQ333yjQ4cOqXbt2tqxY4f27NkjY4zeeOMNt/pCy9HqtXLlygoJCVH27NkVFxcnf39/rVixwjrP165dW506ddKHH34oT09Pvfrqqy6u3LUiIiJ0+fJlhYaG6tlnn9U///yjr7/+WiVKlFDXrl3VsWNHffPNN5ozZ46aNm2qPHnyuLpkl0iVKpV8fX21f/9+pUmTRuXKldPy5cu1f/9+nTp1SqVKldIrr7yiOnXqaO7cuYqKilK7du2UIUMGV5fuMhcuXNDevXt18+ZNSdKWLVs0ffp0RUdH67nnnlOJEiU0adIkZcuWTd26dXNxtcmH7ntJNHXqVH3xxRfKli2bgoOD1bVrV9WpU8dqBrx582Z99NFHWrRokbJly+biau0XERGhX3/91enbk5s3b1oXjW3bttXFixc1ceJElSpVyi1vVK5cuaJ//vlHN27cUPny5ZUmTRrt3btXkydP1s6dO7VkyRIVL15c4eHh1sm4T58+qlatmpo3b+7i6u134MABDRo0SF988YXy5cunHTt2aNq0aSpTpow6depkfZOya9cua0bM8+fPa9++fVq3bp2ee+45F78D+yXurtG7d2/t3r1b33zzjU6fPq3Bgwfrf//7n6pXr664uDgZY+Tl5aVDhw4pJCREL7/8sourt19YWJj8/Px08uRJDR8+XM2aNbNufh3jHsTFxVld+Ro0aKBmzZqlqG+mksIRDv/2229avXq1zp8/rwEDBiggIEAnT57U77//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d5spwROLiooyTZo0MVWqVDHDhw83X331lTl27JjVFSE+Pt588sknplu3bmbjxo23BVPu0j374sWLpmTJkmbgwIHWssWLF5uWLVuaYsWKWU3Lb9686RQOly5d2vz1118uqdlVHF3zrl27Zg3IffnyZdO7d+/bginH52n8+PFOEw+4k/j4ePP333+bBg0amMaNG1tdWw4fPmxGjRplGjVqZH744QdjTMIEIKVLlzYHDx50YcWPh9mzZ5t27dqZoUOHWt2qEgdT0dHR1vkpICDAFCtWzNqPxqTsc1ZUVJRp2rSp6d69u/Xl1O7du02zZs3M6NGjrWurxGbOnGm6dOliHbPuZMaMGcbb29vUqlXLCoFDQ0PNm2++aZo2bWoOHDhgfZFsTMK5vWzZsm53bjcmYdKKOnXq3Dbr+tatW02RIkVMt27dnJYn/hIr8Rc77uDMmTOme/fuVvfr69evm86dO5uhQ4da11ixsbFO3dlHjhxpTTCQks9RdxIWFmZmzJhxWwOEWyeI2bJli+nevbvp2bOn9cW8u/AwJqWNknV/4eHhWrZsmUqXLm0Nnulo4itJo0eP1vz58+Xv76/y5ctb6xJv404cXVqCg4M1Z84crV69WhMmTFBoaKj++usv/fzzz0qVKpUyZ86sZ555RoGBgTLG6M0331TTpk2tJobm/zfhTIkOHz6sNm3aqHfv3urYsaO1PDAwUEWKFFF0dLQCAgI0efJk5cmTR1988YU8PDysfeuOHKeeGTNmaO/evSpevLh2796td999V6VKldKZM2fk5+cnHx8fTZs2TQsXLtSkSZM0d+5ctx30NvHn5bffftOWLVt0/fp11apVS0FBQZo/f76KFStmbde7d2/lyZPHqUm+O7l06ZJGjBihAwcO6MUXX1SePHkUEBCgdOnSqVSpUipSpIhq166tsWPHKkOGDKpbt66qV69udYd0F4cPH7YGLff19dXHH38sSVqxYoWWLFmi5557Tu3bt9cLL7wgSfL399dnn32muXPnqlixYq4s3VZhYWH65JNPdPXqVR09elSZMmVS27Zt5efnp5CQEA0fPlyhoaFq1qyZGjZsKE9PT23dulUDBgzQlClTVKFCBVe/BVsEBwfr6tWriomJUeHCheXp6anjx4+rb9++8vLy0uLFi5U6dWodOXJE33//vdVldMeOHZozZ47bnt8l5+uk77//XitXrlSBAgXUrVs3Pfvss9q+fbt69uyp1157TWPHjtW2bdvUo0cPjR071hpUOaVeZ0kJ3f3Tp0+vEydOaNCgQSpevLh69Oih5557TjNnztSPP/6ovHnzasiQIcqcObNiY2P1/fffa8qUKZo/f74KFy7s6rdgu5CQEI0aNUrh4eE6duyYBg8erFdeeUWhoaF666235OHhobfffltVqlTRggULNGHCBLe8znIMe/D8889r8uTJkqSYmBh5enoqVapUCggIUNeuXdWmTRu9/fbbypYtmyS55XV8XFycwsPDVa1aNZUuXVojR47Us88+q++++05Lly5VuXLl1L59e+XJk8d6zPz58/Xll19q/vz5evbZZ11YvWu8++67Wrt2rXLmzKmmTZuqWLFievXVV631ia/TAwIC9NVXX+mJJ57QhAkTlCVLFleVbSu3C6WMMRoyZIiWLVumBg0aKCgoSIMGDdKTTz5p9UeXpP79+2vLli365JNPVL16dbebfckhKipKH330kcqXL69GjRopODhYn332mf78809NmzZNefPm1fXr1xUfH6+VK1fqxo0bWr16ta5cuaIpU6bopZdecvVbeOT+/vtvtWjRQoMHD1aLFi2s5ZMnT9ayZcu0bt06ZcyYUTExMQoICNCUKVOULl06zZ8/34VVu57j4vncuXNq3769fH19FRsbq3379ql///4qWbKkzpw5o1atWlkz6cycOdPtLpQk54uexDcdAQEB2rBhg2JiYjR48GBFRETor7/+0uzZs7Vv3z69+uqr+vzzz1P8jcqtwsPDtX79ejVr1kwHDx7U2rVrdfToUX388cfy8vLS4cOHtXnzZu3bt0+pU6fWmTNndPHiRb344ov69ttvnf4WuItly5YpICBAW7ZsUaVKlTR16lRJ0pIlS7Ry5Urlzp1bY8aM0Zo1azRmzBi3u2kJCwuTr6+vypUrp3r16iksLEyHDh3SnDlz5Ofnp/79+ysmJkbDhw/XtWvX1L17dxlj1Lt3b40ePVoNGzZ09VuwxeHDhzVgwABlzJhRf/31l1q0aKE33nhDhQoV0tGjR9W/f395enpawdTRo0c1e/Zsbd++XdOnT1fRokVd/RZcyiT0YLC+AF20aJFWrVql/Pnzq3v37nr22We1Y8cO9erVSy+++KKOHDmiUaNGucVMqocOHVLXrl01btw4ValSRfv27dPAgQNVsmRJ9e3bV88884x++OEHLV68WMeOHVPOnDn19NNPKygoSOPHj3fbz1Z0dLTGjRunqKgolSlTRlOnTtUHH3ygOnXqKDQ0VD169FCmTJmUO3durVmzxu3O7VLC+b1Jkya6cOGCChcurC+++MKaJTTxMbl582a99dZb6tChg7p3724FU+7k8OHDWrx4sYYNG6bg4GD5+voqX758mjhxop566il9/fXX2rhxoyIjI9W2bVuFhobq+vXrWrx4sdtew0sJY7T9/vvvyp8/v44fP661a9eqQoUKqlmzpho1anTbl6GbN29W9uzZVaJECRdV7AI2t8x6LCxYsMCULl3abNu2zbz77rvm9ddfNx06dDAbNmywxmUxxphBgwYZb29vs3HjRhdW61pBQUHGz8/PdOrUyfz444/GmIRmv0OGDDH169e3+qIndu3aNWs8iJTePPP8+fPmrbfeMq+99prT8qlTp5rKlStb47A4uizcvHnT/PTTT8bPz8+txqtxCAsLc2o+72j6vGzZMjNp0iSzb98+M3LkSNO+fXurb/6pU6dMw4YN3bZLR3h4uHnjjTfM+++/b86ePXvbjEEBAQFm0KBB5v3337eaUYeHh5vFixeb/fv3u6Bi17px44apVq2amTRpkrVs//79ZujQoaZTp07m77//Nsb8X9e8U6dOmW3btpnPPvvMBAQEuKRmV4mLi7PO0du3bzcfffSROXr0qHn11VdN9+7dre2WLFliOnXqZF599VVTqlQpt/tcRUVFmZYtW95xhsGffvrJlC9f3nzyySfGmISukL179zb16tUzhQsXNqtWrTLGpPy/hcYkdGEvU6aMmTVrlgkJCTGbNm0ydevWdRp37OjRo6Zhw4ZOXfmOHTt2x3Hf3EV4eLj56aefnJYl7ta/aNEi06ZNG/PRRx9Z11bbtm0zL730klmzZo0xJmXOxJSYY3iEr7/+2hjzf/tn7969pk6dOqZfv35WV//4+Hizdu1as3TpUvP777+73WcrcZcyx346f/68qVevnlm9erX59ttvTc2aNa3PXEhIiGncuLEpVaqUW47VeePGDVOxYkUzatQoY4wxLVu2NPXr13cany1xF7TNmzcbb29vM3r06HvOiJkSBQYGmmLFipnZs2dby4KCgkzVqlXNG2+8YXXb+/33382YMWNMo0aNTKtWrczo0aOt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\n" | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "\n", | |
| "--- Visualization 2: Top 10 Most Common Nomen ---\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stderr", | |
| "text": [ | |
| "/tmp/ipython-input-2836028133.py:86: FutureWarning: \n", | |
| "\n", | |
| "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `y` variable to `hue` and set `legend=False` for the same effect.\n", | |
| "\n", | |
| " sns.barplot(x=top_occupations.values, y=top_occupations.index, orient='h', palette='magma')\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 1000x800 with 1 Axes>" | |
| ], | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAMWCAYAAADs4eXxAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZ31JREFUeJzt3XmYV2XdP/D3MGwiiAtGagouMaIgoJK7JoiArAqUS5qalrmVuWEapuKa+VS4pJnlUqnIJiCoRI8rkmIoluWuYIq4KyDLML8//DEP44AMymFYXq/r+l7XzH3uc5/Pmfv6wrznPud8SyoqKioCAAAArHR1arsAAAAAWFsJ3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUJC6tV0AAKyLjjzyyPz9739foX0uvfTSHHLIIQVVtOKefvrpDBo0KM8++2yS5OCDD85ll1221L6ffPJJ/vCHP2TcuHF59dVXU1JSkm233TaHHHJIDjvssNSps/x1gMmTJ+eoo46q/L5jx4657bbbltq3rKwsSbLFFltk4sSJ1bbPnz8/Y8eOzcSJE/PMM8/k3XffTZJsvPHGadOmTTp37pwePXqkXr161fbt1KlTXn/99crvjznmmAwcOHCpdRx66KH5xz/+Ufn9kj+j4cOH55xzzlneaVfq3Llzrr322iTJkCFDcvXVV1duO+mkk3LqqadW22fJn9nnzQ8AxRG6AYAV8tFHH+Wqq67K7bffnkWLFi23/4IFC3LsscdmypQpVdqfeeaZPPPMM/nHP/6RK6+8coXrePzxxzN+/Ph069ZthfabNm1afvzjH2fGjBnVtv33v//Nf//739x333255ppr8pvf/CatW7f+3PHuu+++pYbuWbNm5amnnlqh2r6o3//+9xkwYEA222yzVXI8AGpO6AaAWjBkyJAsWLCgStsxxxyT559/Pkny05/+NAcddFCV7U2aNFll9S3Le++9l169emXWrFkpKSlJq1at8txzz33uPrfccktl4O7evXt+9KMfZfbs2TnnnHPy3HPPZfTo0enWrVsOOOCAFa7niiuuyP77758GDRrUqP+///3vHHnkkZk7d26SZJdddskxxxyTsrKyVFRU5F//+lduvPHGPPPMM3nttddyxBFH5M4778x2221Xbay6detm4cKFef311zNt2rS0bdu2yvYJEyZk0aJFlf0+z9e//vX84Q9/+Nw+n3eOn3zySa644or8z//8z+eOAcCq555uAKgFG264YTbddNMqr9LS0srtTZo0qba9YcOGST4Njuecc046deqUtm3bZuedd06vXr1y1VVXVV4mvaR99903ZWVlKSsry7vvvpt77rkn3/72t9OhQ4fsuuuuOeGEE/Liiy/WqO7Zs2dn1qxZadu2be68884cc8wxy93nzjvvTJLUq1cvF154Ybbeeuu0adMmZ5xxRmWfO+64o0bHX2yDDTZIkrz++uu56aabarRPRUVFzjrrrMrAfdBBB+W2225Lly5dstVWW6VFixbp3r17br/99uy9996V53vWWWctdbzmzZtXrizfe++91bbff//9SVItjC9NaWlptfn+7GvxOX/W4vZ77rknTzzxxHKPBcCqJXQDwBrkz3/+cw4++OAMHz48r7/+eubPn5/Zs2fnueeey/XXX5+ePXvmX//6V5V96tb9vwvbbr755px22mmZOnVq5syZk48++ih/+9vfcuihh+bVV19d7vEbNmyYwYMHZ+jQodlpp52W23/mzJl55ZVXkiStWrWqEhx33nnnyq+feOKJGl2qvtgBBxyQTTfdNElyww03ZObMmcvd59FHH81//vOfJEmjRo3y85//fKn3kterVy8XX3xx5R9B/vnPf2by5MlLHXPfffdN8ukl5kv68MMPK+/Z33PPPWt4Vl/MoYcempKSkiTJJZdcskI/RwCKJ3QDwBriySefzEUXXZRFixaltLQ0p5xySsaMGZM77rgj++23X5LknXfeySmnnJL58+cvdYzf//73+clPfpJx48blt7/9bWVw/fDDD/PLX/5yuTU0a9YsAwYMqAx5y/PSSy9Vft28efMq25o0aZJGjRolSebMmVPl4WQ1cfrpp1fuW5PaH3nkkcqv99lnnzRt2nSZfb/61a9m1113rfz+4YcfXmq/xaH71Vdfzb///e/K9okTJ2bBggUpKSnJPvvss9zavoxtttkmBx98cJJP/0AwfPjwQo8HwIoRugFgDXHDDTdUrmIed9xxOfnkk/P1r3897du3zzXXXJOvfe1rSZIZM2ZUW3ldrHv37vnBD36QbbbZJvvvv38uvfTSym1/+9vf8sknn6zUmj/44IPKr9dff/1q2xs3blz59Ycf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Gq2W/wCti8zJ6sV8rF7Mx+rFfKxezMfqxXysXtaU+Vje7bduzgUAAICCCN0AAABQEKEbAAAACiJ0AwAAQEE8SI0VcmDnw/PiC6/WdhkAAMA6YNz9f6jtEr40K90AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6P6Mo446Kuedd95St40aNSo777xz5syZk48++ijt2rVLz549q/UbPnx49tprr2UeY+DAgWndunXatm1b7XX++edXjlFWVlZl2y677JLDDjsskyZNqhxr8uTJKSsry7x58zJy5Mjssssu+eSTT6odc+7cudlll10ycuTIJMmLL76YU089NXvvvXfatGmTPffcM4MGDcqHH364Ij8uAAAAPofQ/Rn9+/fPuHHjlhpcR44cmR49eqRRo0a5++67s/POO2fWrFl56qmnVvg43bp1y7Rp06q9Lrjggso+zZo1q7Lt4YcfTqdOnXLCCSfktddeqzZm165dU1JSkvvuu6/atvvvvz8lJSXp1q1bZs+ene9+97vZYostMnr06EybNi1/+ctf8sILL+S0005b4XMBAABg6YTuz+jatWvq1KlTLbi+8cYbeeyxxzJgwIAkybBhw3LQQQelS5cuGTZs2Cqpbb311svxxx+fr3zlK3nooYeWur1Hjx4ZMWJEtW0jRoxIz54907Bhwzz//POZNWtWjjvuuGy00UYpKSlJixYtcvnll+fb3/52KioqVsXpAAAArPWE7s9o0KBBevXqVS24jho1Ktttt1122mmnPPvss3n++efTrVu39O7dO2PHjs3cuXNXWY0LFy5c5rb+/fvnscceyxtvvFHZ9uabb+axxx5L//79kyRf+9rXUq9evVx99dX54IMPKvttueWWOfDAA1NSUlJc8QAAAOsQoXspBgwYUC24jhgxojK0Dh06NPvvv3+aNGmSjh07pmnTprn33ntX6Bjjx49f6j3d//znP5e5z8cff5xrrrkm77//fg444ICl9mnbtm1atWpVee928ukfDMrKytKmTZskn162fvnll2fcuHHZc889079///ziF7/I008/vULnAAAAwOcTupeidevWad26dWVw/cc//pH//ve/6d27d+bNm5fRo0enT58+SZKSkpL06tUrd9111wodY1n3dO+4446Vfd5+++1qD1J77LHH8sc//jHNmzdf5tgDBgyoErqX/IPBYj169MiDDz6YG264IXvttVcmT56cAQMGZNCgQSt0HgAAACxb3douYHXVv3//3HzzzfnhD3+YESNG5IADDshGG22UUaNG5cMPP8zpp59eeRl2eXl55s+fn9deey1bbbXVSquhWbNmeeSRR5IkFRUVOeyww7LVVlulXbt2n7tfr169csUVV2TKlCkpLS2t/IPBZ9WvXz977bVX9tprr5x22mm5++67c+aZZ+aoo47Kdtttt9LOAwAAYF1lpXsZevXqlTfffDNPPvlk7r333soHqN11113p169fRo0alZEjR2bkyJEZPXp0WrduXegD1UpKSnLhhRdm1KhRVT4ybGmaNm2aLl26ZMyYMRkzZkwOPPDAbLDBBpXbJ0yYkD/+8Y/V9ttnn32SJHPmzFmptQMAAKyrhO5laNKkSbp27ZpLL70066+/fvbYY4+8+uqrefzxx3PEEUekRYsWVV79+/fPiBEjUl5eXlhNrVq1yjHHHJNBgwYt98Ft/fv3z/33358JEyZUu7S8UaNGufLKK3PrrbdWPkht5syZueKKK7LFFltk++23L+wcAAAA1iVC9+cYMGBAnn766fTr1y8lJSUZNmxYysrKqtx3vVjPnj3z/vvv5+GHH05S/X7stm3b5vjjj6/sv6wHqXXp0uVzazrppJOyaNGi/PrXv/7cfrvvvnvWW2+91KtXL7vttluVbXvuuWeuueaaTJgwIV27dk2bNm3Sr1+/LFy4MLfddlvq169f0x8RAAAAn6OkwocyUwNz5szJs88+m5N/+PO8+MKrtV0OAACwDhh3/x/Svn37lJaW1nYp1SzOSK1bt06jRo2W2c9KNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoSN3aLoA1y31//XOaNGlS22Ws88rLyzN16tS0b98+paWltV0OMSerG/OxejEfqxfzsXoxH6sX87F6WTwfazor3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABalb2wWwZjm6x/mZ/tKs2i4DgDXMdaN+XNslAECtsNINAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhO7V1JFHHplf/OIXOeCAA3Ldddcttc+1116bLl26pKKiIkceeWSuvPLKZY7XqVOn/OUvf6nWftVVV6WsrCzjxo1babUDAADwKaF7NVZSUpJ+/fpl5MiRS90+atSo9OvXLyUlJV9o/PLy8owYMSI9evTIsGHDvkSlAAAALI3QvZo75JBDMn369EyZMqVK+5QpUzJ9+vQcfPDBX3jsBx54IKWlpTnjjDMyadKkvPnmm1+2XAAAAJYgdK/mmjdvnn322ScjRoyo0j5y5Mjsu+++ad68+Rcee+jQoenZs2c233zz7Lzzzhk+fPiXLRcAAIAlCN1rgAEDBmTcuHH55JNPkiTz5s3LuHHj0r9//y885qxZs/Lggw+mT58+SZK+fftm+PDhqaioWCk1AwAAIHSvEb75zW+mYcOGue+++5Ik999/fxo2bJhvfvObX3jMESNGpFWrVvn617+eJOnatWtmzZqVyZMnr4ySAQAAiNC9Rqhbt2769u1beYn5iBEj0rdv39StW/cLjzls2LA899xz6dChQzp06JB99tkn8+fP90A1AACAleiLpzZWqf79+6dHjx75z3/+k8ceeyw/+9nPvvBYf//73zNjxozccccdadKkSWX7lClTcsEFF2TQoEFV2gEAAPhirHSvIbbeeut06NAh5513Xjp06JCWLVt+4bGGDh2affbZJ23atEmLFi0qX717906TJk0yZsyYlVc4AADAOkzoXoMMGDAgTz/99DIfoHbTTTelbdu2VV6fDdAfffRR7rvvvqWOUbdu3fTp08cl5gAAACuJy8tXU7feemu1tr59+6Zv37417r+kiRMnVn791FNPLbPfmWeeWbMCAQAAWC4r3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIHVruwDWLH8ce0GaNGlS22Ws88rLyzN16tS0b98+paWltV0OMSerG/Oxelk8HwCwLrLSDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQkLq1XQBrlp8e/KvMfPm92i6DSn+q7QKoxpysXszH6uLsO4+o7RIAoFZY6QYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6/7+XXnopp59+evbcc8+0a9cunTp1yuDBg/P+++9X9nnmmWdy8sknZ/fdd0+7du1ywAEH5IorrsiHH35Y2WfGjBkpKytLmzZt0rZt27Rt2zbt27dPjx498uc//7lavxNPPLFaLUOGDMnAgQOXOd6Sr5kzZyZJOnXqlL/85S/LPL+ysrI8+OCD1dpPP/30lJWV5emnn17hnxkAAACfT+hO8uyzz6Z///756le/mrvvvjtPPvlkrrnmmvznP//JYYcdlk8++SSPPPJIvvOd72SnnXbK+PHjM3Xq1Fx//fV54YUXcthhh+Xjjz+uMuaoUaMybdq0TJs2LU888UTOPvvs/OIXv8iYMWOq9HvyySfz0EMPLbfGJcdb8tW8efMvfN4ffPBBJkyYkO7du2fYsGFfeBwAAACWTuhOcuGFF2bvvffOmWeemWbNmqW0tDStW7fOddddl/bt2+ett97K+eefnyOOOCLf//73s+GGG6akpCTbbrttrr766sydOzfXX3/9MsevW7du9t133xx00EG5//77q2w77bTTMnjw4MyfP7/o06zm7rvvzg477JAjjzwyY8eOzSeffLLKawAAAFibrfOh+5133smTTz6Z73znO9W2NW7cOJdeemk++OCDTJ8+PUcddVS1PvXr18+hhx6ae++9d7nHWrBgQbW2AQMGpHHjxvnDH/7wxU7gS7jrrrvSu3fv7LzzzmnatGmNzgEAAICaW+dD9/Tp05MkW2+99ef2WW+99ZZ5Kfc222yTGTNmpKKiYqnb58+fn4kTJ2b8+PHp1atXlW116tTJoEGDcv311+fNN99cZg19+vSpdj/3ySefvLzTW6Zp06blxRdfTPfu3VNSUpI+ffq4xBwAAGAlq1vbBdS2kpKSJMmiRYs+t195eXkqKioq+y9pae19+vSpbFu4cGG23HLLXHTRRTnggAOq7d+uXbt069Ytl156aX79618v9fijRo3KtttuW6NzqomhQ4fmm9/8ZjbccMPKeq+99tpMnz49W2655Uo7DgAAwLpsnV/p3mqrrZIkzz///DL7bL311pk/f37lqvhnvfzyy2nZsmWV4L3kg8+OP/741KtXL927d1/mMc4444w8+uijmTRp0hc8k5qbO3duxo4dm//93/9Nhw4d0qFDh/Tt2zcVFRVWuwEAAFaidT50b7TRRvnGN76x1Huq586dm0MOOSRz5sxJy5Ytc8stt1Trs3Dhwtx5552fG6hPPPHEzJs3L7/97W+X2WfjjTfOqaeemsGDB2fhwoVf7GRqaPz48albt25Gjx6dkSNHVr5+/OMfZ+TIkctd9QcAAKBm1vnQnSTnnntupk6dmp/85Cd58803s2jRojz77LM57rjj0rBhw+y00075+c9/njvvvDNXXnll3n333VRUVOTFF1/MMccckyZNmuR73/veMsdv2LBhzj///Nxwww157rnnltnv8MMPT2lpaeGrzUOHDk2vXr2y9dZbp0WLFpWvww47LO+8804efvjhQo8PAACwrhC6k2y//fa58847s2jRohx88MHp0KFDfvzjH2f33XfPTTfdlHr16mWPPfbIn/70p7zwwgvp3r172rVrlxNOOCHt27fPrbfemvXWW+9zj7HPPvukS5cuOffcc1NeXr7UPqWlpRk0aFBmzZpVbdvSHqTWtm3bDB8+vLLP4MGD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KIjQDQAAAAURugEAAKAgdWu7ANYsp952cpo0aVLbZazzysvLM3Xq1LRv3z6lpaW1XQ75vzkBAIAlWekGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAAChI3dougDXLsBOuy5zX36/tMvj/JmdYbZfAEnb7Zb/aLgEAgNWMlW4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidK9inTp1yo477pi2bdumbdu22X///TNw4MC88MIL1fo+88wzOfnkk7P77runXbt2OeCAA3LFFVfkww8//NxjvPjiizn11FOz9957p02bNtlzzz0zaNCgpe53xx13pKysLDfeeONKO0cAAAA+JXTXgvPOOy/Tpk3Lk08+mRtvvDEbbbRR+vXrl0mTJlX2eeSRR/Kd73wnO+20U8aPH5+pU6fm+uuvzwsvvJDDDjssH3/88VLHnj17dr773e9miy22yOjRozNt2rT85S9/yQsvvJDTTjutWv+hQ4emR48eGT58eGHnCwAAsK4SumtRvXr1su222+bss8/OkUcemfPOOy/l5eVZtGhRzj///BxxxBH5/ve/nw033DAlJSXZdtttc/XVV2fu3Lm5/vrrlzrm888/n1mzZuW4447LRhttlJKSkrRo0SKXX355vv3tb6eioqKy73/+8588//zzOffcc/Pmm2/mH//4x6o6dQAAgHWC0L2aOProozNjxoz885//zD//+c9Mnz49Rx11VLV+9evXz6GHHpp77713qeN87WtfS7169XL11Vfngw8+qGzfcsstc+CBB6akpKSybejQoenUqVM22WSTdO3aNXfdddfKPzEAAIB1mNC9mmjWrFk22GCDzJgxI9OnT896662X5s2bL7XvNttskxkzZlRZtV5ynMsvvzzjxo3Lnnvumf79++cXv/hFnn766Sr95s+fn9GjR6dPnz5Jkj59+mTcuHGZM2fOyj85AACAdZTQvRpZuHBh6tT5dErKy8uXGqqTpKKiosqK9Wf16NEjDz74YG644YbstddemTx5cgYMGJBBgwZV9rn//vtTp06d7L333kmS3XbbLRtssEHGjRu3Es8IAABg3SZ0ryZeffXVzJkzJ9tss0223nrrzJ8/P9OnT19q35dffjktW7b83OBdv3797LXXXjnttNNy11135Re/+EXuuOOOyqekDx06NB988EE6duyYDh06ZOedd85bb72VYcOGFXJ+AAAA66K6tV0AnxoyZEhatWqVVq1apaKiIi1btswtt9yS8847r0q/hQsX5s4770zfvn2XOs6ECRMyY8aMHH300VXa99lnnyTJnDlzMn369Dz22GP57W9/m6233rqyz+uvv55jjjkmL7/8cpV2AAAAvhihu5bNnDkzN910U/7617/m5ptvTpKUlJTk5z//eX7wgx+kYcOGOfbYY7PRRhvlpZdeys9//vM0adIk3/ve95Y6XqNGjXLllVemtLQ0vXv3TtOmTTNz5sz86le/yhZbbJHtt98+1157bVq1apVvfvObVfZt0aJF2rRpk2HDhuWMM84o+tQBAADWei4vrwWDBw9O27Zt06ZNm/Tu3TszZ87M0KFDs9NOO1X22WOPPfKnP/0pL7zwQrp375527drlhBNOSPv27XPrrbdmvfXWW+rYe+65Z6655ppMmDAhXbt2TZs2bdKvX78sXLgwt912W+rWrZsRI0bkkEMOWer+/fr1y8iRI1NeXl7IuQMAAKxLrHSvYhMnTqxx37Zt2+a3v/3tCh9jv/32y3777bfM7Q888MAytx1++OE5/PDDV/iYAAAAVGelGwAAAApS45Xuq6++eoUGPvnkk1e4GAAAAFib1Dh0Dx8+vEb9Zs2alYULFwrdAAAArPNqHLqXdy/ym2++mcsuuyzjx4/PAQcc8KULAwAAgDXdl36Q2oIFC/L73/8+119/fbbYYovcdNNN2XPPPVdGbQAAALBG+1Khe+LEibnsssvy3nvv5Uc/+lGOPPLIlJaWrqzaAAAAYI32hUL3K6+8kosvvjgPP/xwDjnkkJx++unZeOONV3ZtAAAAsEZbodA9Z86cXH311bnlllvSpk2b3HnnnWnbtm1RtQEAAMAarcahe+TIkfnlL3+ZJBk8eHD69u1bVE0AAACwVqhx6B44cGDq1q2bTp06ZfLkyZk8efLn9r/00ku/dHEAAACwJqtx6O7YsWOS5L333st7771XWEEAAACwtqhx6L711luLrAMAAADWOnVW9oAVFRX573//u7KHBQAAgDVOjUP3oYcemg8//LBK28MPP5x58+ZVaXvnnXfSuXPnlVMdAAAArMFqHLqnTp2aBQsWVGk79dRT89Zbb1XrW1FR8eUrAwAAgDXcl7q8fFnhuqSk5MsMCwAAAGuFlX5PNwAAAPApoRsAAAAKInQDAABAQVYodLtXGwAAAGqu7op0HjRoUBo0aFD5/YIFC3LxxRdn/fXXr2z77EeIAQAAwLqqxqF78803z7/+9a8qbV/5ylfy3HPPVeu72WabffnKWC31++0P06RJk9ouY51XXl6eqVOnpn379iktLa3tcsj/zQkAACypxqF74sSJRdYBAAAAax0PUgMAAICC1Hile+TIkSs0cN++fVewFAAAAFi71Dh0Dxw4sPLp5RUVFZ/bt6SkROgGAABgnVfj0F1WVpbXXnstu+22Wzp16pSuXbumadOmRdYGAAAAa7Qa39M9atSo/OUvf0nLli3z61//OnvvvXdOPPHEjBs3LvPnzy+yRgAAAFgjrdCD1LbffvsMHDgwDz74YH7zm9+kbt26Oeuss7LHHntk4MCBeeSRR5Z76TkAAACsK2p8efmSSktLs//++2f//ffP+++/n7Fjx2bMmDE5/vjjs/HGG6dHjx4555xzVnatAAAAsEb50h8ZtuGGG2aPPfbIXnvtlZYtW+btt9/OhAkTVkZtAAAAsEb7QivdSTJ79uzcc889GTZsWJ566qk0adIkBx54YC644IJ07NhxZdYIAAAAa6QVDt2TJ0/O8OHDc99992XBggXZd9998z//8z/p1KlT6tevX0SNAAAAsEaqcei++uqrM3LkyPz3v/9Nhw4dctZZZ6V79+7ZcMMNCywPAAAA1lwrFLobNWqUfffdNxtttFGefvrpPP3008vsf+mll66UAgEAAGBNVePQvfg+7dmzZ2f27NmFFQQAAABrixqH7ltvvbXIOlhDTD7zmix88/3aLoP/7/4Mre0SWMKmPxtQ2yUAALCa+dIfGQYAAAAs3Qo/vfzf//53br755kyePDkzZ85MSUlJNt988+y999458sgjs/XWWxdRJwAAAKxxVih033777Rk8eHAaN26cvfbaK1tssUUqKioyffr0jB07NsOGDcvFF1+cnj17FlUvAAAArDFqHLqffvrpXHjhhTnuuONy8sknV/tM7vnz5+eaa67JwIED06pVq7Rq1WqlFwsAAABrkhrf0/2HP/whvXr1yk9+8pNqgTtJ6tevn9NOOy09e/bM7373u5VaJAAAAKyJahy6n3jiiXzrW99abr8BAwbk73//+5cqCgAAANYGNQ7d7733XrbYYovl9tt8883z7rvvfqmiAAAAYG1Q49DduHHjvPfee8vt9+6776Zx48ZfqigAAABYG9Q4dLdp0yb333//cvvdc889adOmzZcqCgAAANYGNQ7d3/rWt3LTTTflgQceWGafsWPH5pZbbsmhhx66UooDAACANVmNPzLswAMPzEMPPZQTTjgh++67b/bdd99svvnmKS8vz4wZMzJhwoRMmTIlAwYMSOfOnYusGQAAANYINQ7dSXLRRRdlp512yu9///tcdNFFVbZ9/etfz2WXXZY+ffqs1AIBAABgTbVCoTv59CPBBgwYkJkzZ2bmzJlJki222CKbbLLJSi8OAAAA1mQ1Dt3nnHNOjQctKSnJJZdc8oUKAgAAgLVFjUP3jBkzatRv6tSpWbhwodANAADAOq/GofvWW2/93O3Tpk3L4MGDU1FRkaOOOupLFwYAAABruhW+p/uz3nvvvVx11VUZNmxY9thjj4waNSrbbrvtyqgNAAAA1mhfOHQvWrQof/rTnzJkyJBssMEG+c1vfpMDDjhgZdYGAAAAa7QvFLonT56cwYMHZ8aMGTn++ONz3HHHpX79+iu7NgAAAFijrVDofuONN3LppZfmvvvuS/fu3fO73/0uX/3qV4uqDQAAANZoNQ7d11xzTW688ca0aNEit912W3bdddci6wIAAIA1Xo1D95AhQ1K3bt00btw4v/nNb5bb/5ZbbvlShQEAAMCarsahu2/fvikpKVnpBSxYsCDXXXddxo4dm5kzZ6akpCRt2rTJj370o2qr6R999FH23nvvbLnllhkzZkyVbcOHD88555xT5d7yTTfdNF27ds0pp5ySRo0aZcaMGencuXPq1au31HOZMGFCmjdvniR55pln8tvf/jZPPPFE5s6dm0033TQHHnhgTjjhhGywwQZJUjle586dc+2111YZa8iQIXn99ddz2WWXJUnKysryu9/9Lvvuu+9Sfw6LFi3Kn//859x111159dVXU69evZSVleXoo49O586dl3mOi2211VYZO3bsUs+xtLQ0W2yxRY444ogcfvjh1fa96qqrcv311+dXv/pVunfvvtT6AAAAWHE1Dt2Lw+PKdtlll2XKlCn5zW9+k+222y5z587NrbfemmOPPTZjx47NlltuWdn37rvvzs4775x//etfeeqpp9KuXbsqYzVr1iyPPPJIkqSioiIvvvhiTjvttMyePTsXXnhhZb/lfazZI488kpNOOiknnnhiBg8enKZNm+all17K5ZdfnsMOOyx33HFHGjduXNn/ySefzEMPPZR99tnnC/8cBg4cmKlTp+aCCy7IN77xjcyZMyejR4/Oj3/84/z85z9Pv379qp3j51nyHBcuXJhHH300P/rRj7LBBhukZ8+elf3Ky8szYsSI9OjRI8OGDRO6AQAAVqI6tV3AI488kh49eqSsrCylpaVp3LhxfvjDH2bw4MHVVnSHDRuWgw46KF26dMmwYcM+d9ySkpJst912Of7443P//ffXuJ5Fixbl/PPPzxFHHJHvf//72XDDDVNSUpJtt902V199debOnZvrr7++yj6nnXZaBg8enPnz59f8xJfw6KOP5u67786QIUOyxx57pLS0NE2aNMnhhx+eQYMGZc6cOV9o3MXq1q2bfffdNwcddFC1n8UDDzyQ0tLSnHHGGZk0aVLefPPNL3UsAAAA/k+th+6tt946I0aMyLPPPlulvXfv3pWXeifJs88+m+effz7dunVL7969M3bs2MydO3e54y9atCilpaU1ruef//xnpk+fnqOOOqratvr16+fQQw/NvffeW6V9wIABady4cf7whz/U+DhLuu+++9KxY8eUlZVV2zZgwIAceeSRX2jcz1qwYEG1tqFDh6Znz57ZfPPNs/POO2f48OEr5VgAAACsBqH7Zz/7WTbYYIP07ds3nTp1yplnnpkxY8ZUWzUeOnRo9t9//zRp0iQdO3ZM06ZNq4XfJVVUVOSFF17I73//+2qXTPfp0ydt27at8jr55JOTJNOnT896661XJfAvaZtttsmMGTNSUVFR2VanTp0MGjQo119//RdaKZ4+fXq23nrrGvV9++23q9Xetm3b/PGPf1zmPvPnz8/EiRMzfvz49OrVq7J91qxZefDBB9OnT58kn963P3z48CrnBgAAwBe3Qp/TXYTNN988t99+e1544YU8+uijefzxx3Peeefl17/+dW677bY0b9488+bNy+jRoyvvKy8pKUmvXr1y1113pW/fvpVjLQ6ki2222Wbp3r17TjzxxCrHXN493eXl5amoqFjqw9aW1d6uXbt069Ytl156aX7961+v0M+gpKQkixYtqlHfmt7T3adPn8o6Fy5cmC233DIXXXRRDjjggMo+I0aMSKtWrfL1r389SdK1a9dceOGFmTx5cnbfffcVOgcAAACqq/XQvdh2222X7bbbLkcddVRmzZqVAQMG5Oabb85ZZ52V8ePH58MPP8zpp59eGSTLy8szf/78vPbaa9lqq62S1DyQfp6tt9468+fPz/Tp0yvHXdLLL7+cli1bLjV4n3HGGenatWsmTZq0Qsds2bJlnnnmmS9c89Is+YeFq666Kn/961+rrfgPGzYsM2bMSIcOHSrb5s+fn2HDhgndAAAAK0GtXl7+5ptv5uc//3k+/vjjKu2bbrpptt9++8p7tu+6667069cvo0aNysiRIzNy5MiMHj06rVu3Xu4D1VbU9ttvn5YtWy71c8YXLlyYO++8c5lP+N54441z6qmnZvDgwVm4cGGNj3nggQfmH//4R5588slq2+64446ccsopNT+BpTjxxBMzb968/Pa3v61s+/vf/54ZM2bkjjvuqPyZjhw5MhdffHHuu+++fPTRR1/qmAAAANRy6N54443z6KOP5swzz8xLL72URYsWZe7cuRkzZkwmTZqUTp065dVXX83jjz+eI444Ii1atKjy6t+/f0aMGJHy8vKVVlNJSUl+/vOf584778yVV16Zd999t/Ljx4455pg0adIk3/ve95a5/+GHH57S0tIV+mPAN77xjRxyyCH54Q9/mPvuuy8LFizIRx99lNtuuy2XXXZZlUvov4iGDRvm/PPPzw033JDnnnsuyaf3yO+zzz5p06ZNlZ9p796906RJk2qfgw4AAMCKq9XQXb9+/dx6663ZZJNN8r3vfS8dOnTInnvumT//+c/55S9/mX322SfDhg1LWVlZdtxxx2r79+zZM++//34efvjhFTru0h6k1rZt28ond++xxx7505/+lBdeeCHdu3dPu3btcsIJJ6R9+/a59dZbs9566y1z7NLS0gwaNCizZs1aoZouvvjinHjiiRkyZEh23XXXdOnSJQ888EB+//vfp3PnzpX9lvUgtbZt22b69OnLHH+fffZJly5dcu655+ajjz7Kfffdl/79+1frV7du3fTp02elX0EAAACwLiqp8KhqamDOnDl59tln897v7s/CN9+v7XJgtbTpzwakffv2K/QxhRSjvLw8U6dONR+rCfOxejEfqxfzsXoxH6uX1X0+Fmek1q1bp1GjRsvsV+sfGQYAAABrK6EbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCB1a7sA1iy7/eKkNGnSpLbLWOeVl5dn6tSpad++fUpLS2u7HPJ/cwIAAEuy0g0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUJC6tV0Aa5bXLvtV6rzzXm2XQZJGSZ7Ln2q7DJZ0/BG1XQEAAKsZK90AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRkrQ3dnTp1yo477pi2bdtWe40ZMybXXntt5fdt2rRJWVlZlT4jR46sHOuqq65KWVlZxo0bV9l27LHHVvbdYYcdsv3221fZ//XXX8/w4cOrjbv41aNHj6XWPXny5JSVlWXevHlV2keOHJlddtkln3zySbV95s6dm1122SUjR46s3P/iiy+u1m/gwIEZMmRItfbTTz89ZWVlefrpp2v64wUAAKAG6tZ2AUU677zzcthhhy1z+4knnpjk06B71FFH5YknnkiDBg2q9CkvL8+IESPSo0ePDBs2LN27d0+S3HTTTZV9hgwZkoceeih33nlntWM0a9YsjzzyyJc+l65du2bw4MG577770rt37yrb7r///pSUlKRbt2556qmnsv766+euu+7KgAED0qpVq88d94MPPsiECRPSvXv3DBs2LDvttNOXrhUAAIBPrbUr3SvLAw88kNLS0pxxxhmZNGlS3nzzzVqpY7311kuPHj0yYsSIattGjBiRnj17pmHDhkmSDTfcMEceeWQuuuii5Y579913Z4cddsiRRx6ZsWPHLnUlHQAAgC9G6F6OoUOHpmfPntl8882z8847Z/jw4bVWS//+/fPYY4/ljTfeqGx7880389hjj6V///5V+p5wwgmZPn16xowZ87lj3nXXXendu3d23nnnNG3aNPfee28htQMAAKyL1urQPXjw4Gr3Uu+222413n/WrFl58MEH06dPnyRJ3759M3z48FRUVNR4jLfffnup93T/8Y9/XNHTSdu2bdOqVasq95uPGjUqZWVladOmTZW+jRo1ytlnn50rrrgis2fPXup406ZNy4svvpju3bunpKQkffr0ybBhw1a4LgAAAJZurQ7d5513XqZNm1blNXny5BrvP2LEiLRq1Spf//rXk3x6X/WsWbNWaIxmzZpVq2HatGk5+uijV/R0kiQDBgyoErpHjBhRbZV7se7du2ebbbbJNddcs9TtQ4cOzTe/+c1suOGGSZI+ffrk73//e6ZPn/6FagMAAKCqtfpBal/WsGHDMmPGjHTo0KGybf78+Rk2bFh23333WqmpV69eueKKKzJlypSUlpbmv//9b7UHqy3pvPPOS//+/dOvX78q7XPnzs3YsWMzb968KudXUVGRYcOG5cc//nFRpwAAALDOELqX4e9//3tmzJiRO+64I02aNKlsnzJlSi644IIMGjSoSvuq0rRp03Tp0iVjxoxJaWlpDjzwwGywwQbL7L/ddtvl0EMPzcUXX5yvfOUrle3jx49P3bp1c9ddd6VOnf+74OGee+7JHXfckVNPPbVKOwAAACtOqlqGoUOHZp999kmbNm3SokWLylfv3r3TpEmT5T6grEj9+/fP/fffnwkTJizz0vIlnXzyyXnuuefy8MMPV7YNHTo0vXr1ytZbb13l/A477LC88847VfoCAADwxazVoXtpD1Jr27ZtzjnnnM/d76OPPsp999231EBbt27dFXrg2LIepNa2bdvPvXd61113rdK3R48eldt23333rLfeeqlXr16NHgzXuHHjnHnmmZk1a1aS5KWXXsqUKVOqXXKefPpxY507d/ZANQAAgJWgpGJFHsXNOmvOnDl59tln03D4Panzznu1XQ6sluYcf0Tat2+f0tLS2i5lnVdeXp6pU6eaj9WE+Vi9mI/Vi/lYvZiP1cvqPh+LM1Lr1q3TqFGjZfZbq1e6AQAAoDYJ3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFqVvbBbBm2Wrgj9OkSZPaLmOdV15enqlTp6Z9+/YpLS2t7XLI/80JAAAsyUo3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBB6tZ2AaxZ3r3tV/n4o/dquwySbJ7krb/+qbbLYEmdj6jtCgAAWM1Y6QYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCB1a7sAVsyCBQty3XXXZezYsZk5c2ZKSkrSpk2b/OhHP8pjjz2W0aNH595776223xtvvJFOnTrllltuyfTp03POOeekfv36SZK6detmq622ylFHHZV+/fqt6lMCAABYa1npXsNcdtllmThxYn7zm99kypQpeeihh7Lnnnvm2GOPze67757XXnstU6ZMqbbfyJEjs9VWW6Vjx45JkmbNmmXatGmZNm1aHn/88Zxwwgk599xz8/TTT6/qUwIAAFhrCd1rmEceeSQ9evRIWVlZSktL07hx4/zwhz/M4MGDs+WWW2avvfbKiBEjqu03cuTI9O/ff6lj1q1bN927d8+GG26YV155peAzAAAAWHcI3WuYrbfeOiNGjMizzz5bpb13795p3rx5+vfvn3HjxuWTTz6p3Pbkk09mxowZOfjgg5c65ieffJKhQ4emTp062XPPPQutHwAAYF0idK9hfvazn2WDDTZI375906lTp5x55pkZM2ZM5s+fnyTp3Llz6tevn/vuu69yn5EjR+ab3/xmmjVrVtn29ttvp23btmnbtm06dOiQSy65JGeccUaVPgAAAHw5QvcaZvPNN8/tt9+esWPH5uijj84nn3yS8847Lz169MjMmTNTr1699O3bt/IS83nz5uWee+6pdmn5kvd0T5s2Lbfeemt+97vf5frrr6+N0wIAAFgrCd1rqO222y5HHXVUhgwZkvvvvz8LFizIzTffnCTp379/HnvssbzxxhuZMGFCGjVqlH333XeZY9WtWzdt2rTJ97///coxAAAA+PKE7jXIm2++mZ///Of5+OOPq7Rvuumm2X777TN37twkybbbbpt27dpl7NixGT16dA4++OCUlpbW6BhL3gsOAADAlyN0r0E23njjPProoznzzDPz0ksvZdGiRZk7d27GjBmTSZMmpVOnTpV9+/fvn7vvvjuTJk1a5lPLl/TSSy/lpptuSu/evYs8BQAAgHVK3dougJqrX79+br311gwZMiTf+9738u6776ZOnTpp3bp1fvnLX2afffap7HvQQQflkksuSfv27bPllltWG2vxg9SSpKSkJM2aNUvPnj1z8sknr7LzAQAAWNsJ3WuY5s2bZ/Dgwcvt16hRozz55JNL3XbIIYfkkEMOWdmlAQAA8BkuLwcAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoSN3aLoA1y8bf+XGaNGlS22Ws88rLyzN16tS0b98+paWltV0O+XRO/jt1am2XAQDAasZKNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQerWdgGsWT5+4I9ZMP/D2i6DJFsn+eDV8bVdBktq0a22KwAAYDVjpRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QVr27ZttVfr1q1z1FFHJUnmz5+f66+/Pj179kz79u2z66675uijj87DDz9cbaxRo0alf//+2XXXXdO2bdv06tUrQ4cOrdw+efLklJWVZd68eUmSIUOGpKysLMOGDas21rvvvpsdd9wxRx55ZGVbp06d8pe//GVl/wgAAADWWXVru4C13bRp06p8P3369PTt2zfHHHNMysvL84Mf/CAffvhhBg8enJ122imffPJJxo8fn1NPPTXnnHNOBgwYkCQZP358LrzwwvzqV7/KbrvtlpKSkjz44IM544wzst5666Vnz55LPf4mm2yS0aNHp1+/flXax40blw022KCYkwYAACCJ0L1KLVy4MGeccUZ69eqV/fffP8OHD8/UqVMzYcKEbLLJJkmSRo0a5ZBDDsmCBQtyySWXpEuXLtlwww3z6KOPZuedd84+++xTOV7nzp0zZMiQNGvWbJnH7NixYx566KHMnDkzzZs3r2wfM2ZM9ttvv7z++uvFnTAAAMA6zuXlq9A111yTDz/8MAMHDkyS3HvvvenRo0dl4F7S4pXpBx98MEmyzTbb5IknnsiECROyaNGiyn577713tt9++2Uec7311ss+++yTsWPHVra9/vrrmT59enbZZZeVcl4AAAAsndC9ikyZMiU33XRTrrzyyjRs2DBJ8tprr6VFixZL7V+3bt1stdVWee2115Ikhx9+eLp165ZTTjkle+yxR0444YTccssteeedd5Z77N69e2f06NGV348dOzbdu3dPaWnpSjgzAAAAlkXoXgU+/vjjnHnmmTnppJOy4447VtlWXl6+zP0qKipSUlKSJKlfv34uvfTSPPjggznnnHOyySab5Prrr88BBxyQRx999HOPv+++++aNN97Iiy++mOTTS8t79er1Jc8KAACA5RG6V4Hzzz8/W2yxRY477rgq7VtvvXVlEP6sBQsWZMaMGdlmm22qtG+66abp27dvLr744vzv//5vOnbsmKuuuupzj1+vXr306NEjd999d1544YXMmzcvO+2005c7KQAAAJZL6C7Y3XffnQcffDBXXHFF6tSp+uPu1q1b7r333sycObPafqNGjUqdOnWyzz77pKKiIr/85S/z9NNPV+lTr1697L777pk7d+5y6+jTp0/uvffe3HPPPVa5AQAAVhGhu0AzZszIhRdemAsuuCCbbbZZte09e/ZMx44dc9RRR+WJJ55IeXl55syZk9tvvz0XX3xxzj///DRu3DglJSV56623ctZZZ+WJJ57I/Pnzs3DhwvzjH//In//853Tu3Hm5tSxe2R45cqTQDQAAsIr4yLACjRw5Mh999FHOPvvsnH322dW2jx8/Ptddd11uvPHGDBo0KK+//nrq1auXnXbaKdddd1123333yr4XXXRRrr/++gwaNChvvPFGysvLs9VWW+XQQw/NMcccU6N6+vTpk4kTJy7z4W0AAACsXCUVFRUVtV0Eq785c+bk2WefzeZvPJoG8z+s7XJgtfRyi25p3769TwZYDZSXl2fq1KnmYzVhPlYv5mP1Yj5WL+Zj9bK6z8fijNS6des0atRomf1cXg4AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAAClK3tgtgzdJ4v6PTpEmT2i5jnVdeXp6pU6emffv2KS0tre1yyKdzkqlTa7sMAABWM1a6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKUre2C2DNMvel8ako+aS2yyDJ1+sls//5r9ougyp2qO0CAABYzVjpBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIKtl6O7UqVN23HHHtG3bNjvttFP22muvnH766Zk5c2aS5Oqrr07Xrl2Xuu8bb7yR1q1b5/HHH8/w4cOz1157fe6xPvzww1x++eXp3Llzdtppp+y999750Y9+lOeee65a348++ijt2rVLz549q22bPHlyysrKMm/evKUeZ+DAgTnttNOWd+p5+OGHU1ZWlgsuuKCy7dprr03btm3Ttm3btGnTJmVlZZXft23bNiNHjsyMGTNSVlaWNm3aVLa3b98+PXr0yJ///Odqx7nnnnty+OGHZ+edd06HDh1y8MEH509/+lMWLVq03BoBAAComdUydCfJeeedl2nTpuXpp5/O8OHD8/bbb2fQoEFJkn79+uW1117LlClTqu03cuTIbLXVVunYseNyj/Hxxx/nsMMOy/PPP58bbrghTz31VIYOHZqNN9443/72t/Of//ynSv+77747O++8c2bNmpWnnnpq5ZzoZwwdOjQ9evTI2LFjKwP8iSeemGnTpmXatGn5/e9/nyR54oknKtv69u1buf+oUaMq25944omcffbZ+cUvfpExY8ZU9rn66qtz0UUX5aijjsqkSZPy+OOP56yzzsott9ySgQMHFnJeAAAA66LVNnQvqXnz5jnwwAPz8ssvJ0k222yz7LXXXhkxYkS1viNHjkz//v1rNO7vfve7fPzxx7n22muz7bbbpqSkJJtttlnOP//8HHbYYXn77ber9B82bFgOOuigdOnSJcOGDfvyJ/YZ7733XiZOnJhTTz01G220Ue6///4vNV7dunWz77775qCDDqoc67XXXss111yTyy67LN26dUuDBg1St27d7LHHHrn22mszevToPPTQQyvjdAAAANZ5q33orqioyPTp0zNq1Kgql3X3798/48aNyyeffFLZ9uSTT2bGjBk5+OCDazT2/fffnwEDBqR+/frVtp111llVLk1/9tln8/zzz6dbt27p3bt3xo4dm7lz536JM6tu1KhRad26dVq2bJlevXrlrrvuWinjLliwoPLr+++/P1tuuWX222+/av223Xbb7LXXXrn33ntXynEBAADWdatt6B48eHDlvckHHHBAGjVqlCOOOKJye+fOnVO/fv3cd999lW0jR47MN7/5zTRr1qxGx5g+fXq23nrrGvUdOnRo9t9//zRp0iQdO3ZM06ZNV3o4veuuu9KnT58kSZ8+fTJ58uTMmDHjC483f/78TJw4MePHj0+vXr2SfLrS3aJFi2Xus/XWW+e11177wscEAADg/6y2oXvxPd3PPPNMHn/88XTs2DF9+/bNe++9lySpV69e+vbtW3mJ+bx583LPPffU+NLyJCkpKUl5efly+82bNy+jR4+uDMQlJSUrdSU6SaZOnZpXXnkl3bt3T5JsueWWad++fYYPH75C4/Tp06fyjxXt2rXLZZddlosuuigHHHBAZZ/PO+eKioqUlJR8sZMAAACgirq1XUBNbLDBBjnppJMybNiwjBs3LocffniSTy8x79mzZ9544408+eSTadSoUfbdd98aj9uiRYu88MILy+03fvz4fPjhhzn99NMrA2l5eXnmz5+f1157LVtttdUXO7ElDB06NAsXLkznzp0r2xYsWJCZM2fm5JNPTp06Nfv7yKhRo7LtttsmSa666qr89a9/rQzyyacr2Q8++OAyw/XLL7+cbbbZ5kueDQAAAMlqvNK9LEt+JNe2226bdu3aZezYsRk9enQOPvjglJaW1nisrl275s4778zHH39cbduZZ56ZP/7xj0k+vey7X79+GTVqVEaOHJmRI0dm9OjRad269Up5oNrs2bNzzz335IILLqgcf+TIkbnrrrvy1ltvZdKkSV9o3BNPPDHz5s3Lb3/728q2Ll26ZObMmZkwYUK1/q+88komTZqUgw466AufCwAAAP9njQjd8+bNyx/+8Ie89957VVaCk09Xu+++++5MmjRphS4tT5Jjjz02zZo1y3e+853885//TEVFRd58880MGjQokyZNSufOnfPqq6/m8ccfzxFHHJEWLVpUefXv3z8jRoyo0SXqn+eee+5JgwYNcvDBB1cZf/vtt0+nTp2+8GXsDRs2zPnnn58bbrih8nPHt9hii5xyyik5++yzM2LEiHzyySdZuHBhHn300RxzzDEZMGBAjT5uDQAAgOVbbS8vHzx4cC655JIkSYMGDbLDDjvkxhtvrHYp90EHHZRLLrkk7du3z5ZbblltnLfffjtt27at0rb77rvnd7/7XRo1apQ///nPueaaa3LKKafk7bffzkYbbZS99torQ4cOzWabbZarrroqZWVl2XHHHauN3bNnz1x++eV5+OGH07Bhw+We0/jx46utMJ9yyimZOHFievXqtdSnqPfr1y8nn3xy3n///Wy44YbLPcZn7bPPPunSpUvOPffc3H777SktLc0Pf/jDbLXVVrn11ltz4YUXJvn0svMTTjgh3/rWt1b4GAAAACxdSUVFRUVtF8Hqb86cOXn22WezZd2X0rDkk+XvAOug5xfskPbt26/QbS4Uo7y8PFOnTjUfqwnzsXoxH6sX87F6MR+rl9V9PhZnpNatW6dRo0bL7LdGXF4OAAAAayKhGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgdWu7ANYs623TLU2aNKntMtZ55eXlmTp1atq3b5/S0tLaLod8OieZOrW2ywAAYDVjpRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgnl5OjSxatChJ8sknn3ha9mqgvLw8STJnzhzzsZowJ6sX87F6MR+rF/OxejEfqxfzsXpZ3edj7ty5Sf4vKy1LSUVFRcWqKIg12zvvvJNXXnmltssAAABYrbRs2TKbbLLJMrcL3dTIwoUL88EHH6RBgwapU8ddCQAAwLpt0aJFmTdvXpo2bZq6dZd9EbnQDQAAAAWxZAkAAAAFEboBAACgIEI3lV5//fV8//vfz2677Zb9998/v/jFL5b5JL5bbrklXbt2zc4775zDDjsszzzzzCqudu1X0/kYMmRIWrdunbZt21Z5vf3227VQ9drtoYceyp577pnTTjvtc/stWrQo//M//5POnTunY8eO+d73vpfp06evoirXHTWdj4EDB2aHHXao8v7YddddV1GV647XX389J510UnbbbbfsueeeGThwYD788MOl9r3nnnvSq1evdOjQIYccckgefvjhVVzt2q+m8zF8+PBsv/321f4Pefrpp2uh6rXXv//973z3u9/NLrvskj333DM//vGPM2vWrKX29TtW8Wo6H37HWvUuueSSlJWVLXP7mvr+ELqpdMopp6R58+aZMGFC/vCHP2TChAm5+eabq/WbOHFihgwZkiuuuCKPPvpo9t9//5xwwgmZM2dOLVS99qrpfCRJnz59Mm3atCqvZs2areKK126/+93vMnjw4LRo0WK5ff/0pz9l9OjRueGGG/K3v/0tLVu2zEknnRSP0Fh5VmQ+kuSHP/xhlffHE088UXCF654TTjghG2ywQSZOnJjhw4fn+eefz+WXX16t37PPPpuzzz47Z5xxRh577LEcffTROfnkk/Pmm2/WQtVrr5rOR5J07Nix2v8hO+200yqueO01f/78HHvssfnGN76RSZMmZcyYMXnnnXfy85//vFpfv2MVb0XmI/E71qr07LPPZtSoUcvcvia/P4RukiTTpk3Lv//975xxxhlp0qRJWrZsmaOPPjp33HFHtb533HFHDjnkkLRr1y4NGzbMcccdlyT529/+tqrLXmutyHywajRo0CB33XVXjULeHXfckaOPPjrbbrttGjdunNNOOy0vvvhinnrqqVVQ6bphReaD4n344Ydp06ZNTj/99Ky//vr56le/moMPPnipf9wYOnRo9ttvv+y3335p0KBBevfunVatWuXuu++uhcrXTisyHxRv7ty5Oe200/KDH/wg9evXz8Ybb5wuXbrk+eefr9bX71jFW5H5YNVZtGhRzj///Bx99NHL7LMmvz+EbpIk//znP7PFFlukadOmlW077rhjXn755Xz88cfV+u6www6V39epUyetW7fOtGnTVlm9a7sVmY8k+c9//pNDDz00O++8c3r06OFSzQIcddRRadKkyXL7ffLJJ3nhhReqvEcaN26cFi1aeI+sRDWdj8Uee+yx9O3bNx06dEj//v3XmMvR1hQbbLBBLr300iqrP2+88Ua+8pWvVOv72f9DkmSHHXbw/liJVmQ+Fm875phj0rFjx3Tu3PlzV5pYcU2bNs2AAQMqP07opZdeyogRI9K9e/dqff2OVbwVmY/E71iryu23354GDRqkV69ey+yzJr8/hG6SJO+//3422GCDKm2LA997771Xre+SYXBx38/244tbkfn46le/mi233DKXX355HnnkkQwYMCAnnHBCXnrppVVWL//ngw8+SEVFhffIamTLLbdMixYtcv311+ehhx7KrrvummOPPdZ8FGjatGm57bbb8sMf/rDaNv+HrHqfNx8bb7xxWrZsmTPPPDOPPPJIfvKTn+SnP/1pJk2aVAuVrt1ef/31tGnTJgcddFDatm2bU089tVof749Vpybz4XesVePtt9/OkCFDcv75539uvzX5/SF0U2lF7jd1b2rxavozHjBgQH7zm9+kRYsWWW+99XL00UendevWLtWsZd4jq4+TTjopl1xySZo3b57GjRvnzDPPTP369TNhwoTaLm2tNGXKlHzve9/L6aefnj333HOpfbw/Vp3lzcc3v/nN3Hjjjdlhhx1Sv3799OjRI126dMnw4cNrodq12xZbbJFp06Zl/PjxeeWVV3LWWWcttZ/3x6pRk/nwO9aqcemll+aQQw7Jdtttt9y+a+r7Q+gmyad/6X7//fertL3//vspKSnJxhtvXKV9o402Wmrfz/bji1uR+ViaLbbYIm+99VZB1fF5Ntxww9SpU2ep87fJJpvUTlFUUVpams0228x7pAATJ07M97///fz0pz/NUUcdtdQ+/g9ZdWoyH0vj/5DilJSUpGXLljnttNMyZsyYvPvuu1W2e3+sWsubj6Xx/li5Jk2alH/84x856aSTltt3TX5/CN0kSdq0aZM33nijyj8206ZNy3bbbZf111+/Wt9//vOfld+Xl5fnX//6V9q1a7fK6l3brch8XHvttdUuA3zxxRez5ZZbrpJaqapBgwb5+te/XuU98uGHH+a1117zNOBaUFFRkUsvvTT//ve/K9vmz5+f1157zXtkJXvyySdz9tln59e//nX69u27zH5t2rSpdk/9tGnT/B+yktV0Pv7yl7/knnvuqdLm/5CVa9KkSenatWuVj/2sU+fTX8Hr1atXpa/fsYq3IvPhd6zi3X333XnnnXey//77Z7fddsshhxySJNltt90yduzYKn3X5PeH0E2SVH6G7S9/+ct8/PHHefHFF/OHP/whhx12WJKkW7dulU89PeywwzJy5MhMnTo1c+fOzXXXXZf69evnm9/8Zi2ewdplRebj/fffzwUXXJCXXnop8+bNy0033ZTXXnstBx98cG2ewjpl5syZ6datW+VncR922GG55ZZb8uKLL+bjjz/OlVdeWfk5nxRvyfkoKSnJjBkzcsEFF2TmzJmZPXt2rrzyytSrVy8HHHBAbZe61li4cGHOO++8nHHGGdl7772rbf/ud79bGey+9a1v5dFHH83//u//Zt68ebnrrrvyyiuvpHfv3qu67LXWiszH/Pnzc9FFF2XatGlZsGBBxowZkwcffDCHHnroqi57rdWmTZt8/PHH+cUvfpG5c+fm3XffzZAhQ7LrrrumSZMmfsdaxVZkPvyOVbyBAwfm3nvvzahRozJq1KjccMMNSZJRo0alU6dOa837o25tF8Dq4ze/+U1+9rOfZa+99krjxo1z6KGH5vDDD0+SvPzyy5WfgbfvvvvmJz/5SX784x/nnXfeSdu2bXPDDTekYcOGtVn+Wqem83H66acnSY4++ui8//772W677fLHP/4xX/3qV2ut9rXR4sC8cOHCJKm8H3jxL6ovv/xy5s+fnyQ59NBDM2vWrBx55JGZPXt2dtttt1x99dW1U/haakXm4+KLL87ll1+eQw45JB9//HF22mmn3HzzzWnUqFHtFL8Wmjp1al588cUMHjw4gwcPrrJt/PjxmT59ej744IMkSatWrXLllVfm0ksvzeuvv57tttsu119/fTbddNPaKH2ttCLzcdRRR2X27Nn50Y9+lFmzZuVrX/tarrnmmrRp06Y2Sl8rNWnSJDfddFMGDx6c3XffPY0aNcruu++eiy++OInfsVa1FZkPv2MVr2nTplUejrb4//XFP+O15f1RUrGm3o0OAAAAqzmXlwMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAAClK3tgsAANYNDz/8cG677bY89dRT+eijj9KsWbO0a9cuRx55ZHbdddfaLg8ACmGlGwAo3K9+9at8//vfz5Zbbpnrr78+48ePz8UXX5w5c+bkyCOPzB133FErdf3mN7/JwIEDa+XYAKwbrHQDAIV64IEHct1112XQoEE54ogjKtu/9rWvZc8998yPfvSjXHnllenWrVuaNm26Smv7xz/+kebNm6/SYwKwbrHSDQAU6qabbkrLli1z+OGHV9tWUlKSCy+8MH/961/TtGnTVFRU5MYbb0zXrl3Tpk2bfOMb38gpp5ySV199tXKfIUOGpKysLPPmzasyVllZWa688sokyeTJk1NWVpbJkyfn9NNPz6677prddtstZ599dubMmZMk6dSpUx599NGMGDGisi8ArGxCNwBQmIULF+bJJ5/Mfvvtl5KSkqX22XDDDbPBBhsk+fRy71/96lc5/PDDM2bMmFx77bV59dVX893vfjezZ89e4eNfdtll2WOPPTJixIicfvrpGTlyZG677bYkyV133ZWNN9443bt3z8MPP5wOHTp88RMFgGUQugGAwrz33nuZP39+tthii+X2nT9/fm6++eb0798/3/3ud9OyZcvsuuuuueSSS/LGG29kwoQJK3z83XffPf3798+WW26Zb33rW/na176Wp59+Okmy8cYbp06dOmnYsGE23XTT1K9ff4XHB4DlEboBgMIsXt2uqKhYbt+XXnops2fPrvYk8x122CENGjTIv/71rxU+frt27ap8v/HGG+eDDz5Y4XEA4IsSugGAwmy00UZZb731qtyTvSwff/xxkqRJkyZV2uvUqZNGjRp9ocvLGzVqVOX7ZV3iDgBFEboBgMKUlpamY8eOmThxYhYuXLjUPh988EHuvPPOyvu6P/rooyrbFy1alNmzZ1eG8aWtnn+RQA4Aq4LQDQAU6thjj82bb76Za6+9ttq2ioqKXHjhhbn00kvTpEmTNGnSJI8//niVPs8880zmz5+ftm3bJvm/lfB33323ss9TTz31heuryaXvAPBF+ZxuAKBQe+yxR0455ZQMGTIkr7/+er797W+nefPmmTFjRm688cZMnjw5V111VTbbbLMcc8wxue6669KqVavsu+++mTFjRi666KJss802OeCAA5IkO+20U5Lkt7/9bY477ri8/vrrGTJkSBo3brzCtW2wwQb517/+lWeffTabbrppmjVrtlLPHQCsdAMAhTv55JPzxz/+MR988EFOPPHEdOvWLT/96U/TrFmzDB8+vDJQn3jiifnxj3+cm2++Od26dctpp52WHXfcMTfffHPl08U7dOiQ0047LX/729/Ss2fP/OpXv8q5556bhg0brnBdP/jBD/Lmm2/msMMOq7bCDgArQ0mFa6oAAACgEFa6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFCQ/wdcQNBGc8g6PwAAAABJRU5ErkJggg==\n" | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "\n", | |
| "--- Visualization 3: Age Distribution of the Deceased ---\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 1200x700 with 1 Axes>" | |
| ], | |
| "image/png": "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B2vIkCG64447tG/fvmbtv2/fvpo8ebKk2uO9/lxt+fn5tl5ckvTss8/K3d3d9ntbHrt//PGH7THecccdOnDggK699loNHDhQc+fOtW23b98+Pf744zrnnHMUHx+vwYMH64ILLtCMGTOUlpbW4D79/f01fvx4SVJ5ebm++eabZj1HAADnYfgeAMAhLrvsMq1YsUJLly6V1WrVBx98oFmzZh31NoWFhbriiit04MCBBstTU1OVmpqqn376SS+88EKDEKe5vvvuO73//vt2367utq+++mqDZUuWLNHGjRv11VdftVmvh2PZtGmT7rjjDluvjDopKSlKSUnRt99+q2nTpunSSy9t9PYHDhzQv//9b+Xk5NiWbdu2TVOmTNEHH3ygU0455Zg15Obm6pZbbtHOnTsbLM/Oztby5cu1fPlyXXHFFZo2bZr9D9BORqNRzzzzjNasWaOsrCxlZ2dr8eLFtmCgrKxMN910U4NwU5ISExM1Y8YM/fbbb3rrrbdsvUyk2jl6nn76aVksFtuygoICrVq1SqtWrdKdd96pe+65x7Zu7969uv766xsMKa2srNSff/6pP//8U/fee6+mTJliW5eTk6Mrr7zyiJ5ySUlJmjdvnpYvX65FixbJz89PUm3IcMMNNxzxGNLT05Wenq7ly5frgQce0O23397imvLy8nTllVcqNTXVtmzXrl168sknddlllzX9AhzD119/Lak2UBw1apQyMzO1fv16FRUVadmyZbZwob665ycjI6NBLU888YRSUlIavC71/fnnn/rnP/+psrIy27KCggKtXr1aa9eu1fTp03XJJZfY1i1btkxTp06V2Wy2LauurlZxcbESExO1ePFivf/+++rSpctRH2NaWpp27dolqXZ42bBhw475vBzu559/1rPPPtsgJF2xYoUSEhK0ePFiBQcHH/M+7r77bv34449KT0/Xzz//rHXr1um0007TK6+8YguLLrvssgZtvK2P3fpKSkp03333afv27bb9SNKWLVt0ww03NJgXrqqqSvv27dO+ffv0zTffaN68eQ16V44bN06LFi2SJK1cudIW6AMAXBM9pQAADlM/PGrOXCqfffaZLZC6/vrr9cMPP2jlypV6++23FRoaqpqaGj3zzDMqKSnR+PHjtXbtWkVERNhu/8UXX2jt2rWNfrldsGCBrrzySn3//fd2/zd97ty5evzxx/XTTz/pP//5j21y3ezsbL311lt23dfh1q5d22DOrZtvvllr16495oTnRUVFuvvuu22B1AUXXKDPPvtM3333nW699VZJtb2FnnzyyUZ7TEnS22+/rT59+mjx4sX6+OOP1aNHD0m1c87873//a1b9jzzyiC2Q6tOnj959910tWbJE06ZNs80X9sUXX+izzz5r8PjqzyE0Z84crV27Vv/3f//XrH0ejYeHhy644ALb7/WPu9mzZ9vCnLi4OH366adavHixLZxYs2aNPvnkE9v2u3fv1r///W9ZLBaZTCY98cQTWrJkiebMmWM7Bv773/9qw4YNkiSr1ar777/f9qX+kksu0ffff69PP/1U/fv3lyT95z//aRDgvfnmm7Yv9SNGjNDixYv11Vdf2XrSJCUlNahp2bJltscwfvx4ffPNN1q5cqU+/PBD2+v3yiuvKDk5ucU1vf7667ZAKjIyUu+//75+++03zZw5U99//70dr8b/t3fvXm3ZskVSbY9GT09PjRs3zjaEry6wOtxrr71mC6RCQkI0Z84c/fTTT3r88cf17rvvNnqb8vJy3X///bZA6tZbb9VPP/2k9957T127dpXFYtEzzzyjrKws221mzZols9ksHx8fvf7661q+fLmWLFmiO++8U1Lt63B4MN2Y+mHhoEGDjrl9Y2bMmKHJkyfr559/1uzZs23tKCcnx9YL9Fh8fHz0xBNP2H5/4YUXlJCQoC+++EKSFBQUpIceesi23hHHbn1bt261zXn1yy+/6IorrpBU+15QXl4ug8Gg559/XsuWLdOyZcv05JNPymg0Kjc394iAe8CAAbbrW7ZsaTKoBAC4BnpKAQAcpv5/swsKClRaWnrUOaTq/8f9/PPPV69evSTVTkj+yiuvKDU1VeHh4TKZTPLy8pKXl1eDCco7derUZK+lbt266d///neLHsfEiRNtE3H36NFDJSUltgBlyZIlevLJJ1t0v1LtHDP1J3v38fFpVs+rhQsX2s5uOHjw4AZfmB966CFlZWXp22+/VXV1tT766KNGH7ubm5tef/112/4ff/xx3XbbbZLUZJBV37Zt27RmzRpb3R988IGtF0f37t0lyfbFeN68ebryyivl6+srX1/fBkOGAgMDW7W3Wf3jri5cKS8vbzD87KWXXrIdX9OmTdPvv/+ujIwMffzxx7ahT/Pnz1d1dbWk2uFmdT0wunfvrtTUVNswqG+++UZDhw7V77//bjvjWpcuXTRt2jTb45w5c6bGjx8vq9Wqjz/+2PbF2mw2a+zYsZKkf/7znzrppJMkSTfeeKMee+wxSdLGjRttddcfMnrmmWfaHmuXLl00a9Ys7dy5U+Hh4bbQzN6aLBZLg+CpbticVNsO9u7d26Igtn7oVDfnXGhoqE499VStW7dOa9euVXZ2doPjwGKx6IcffrD9/vDDD+u8886TVNsO9+3bp08//fSIfX3//fe2tjFw4EBb+NKjRw899dRTuu2221ReXq5FixbZev7UPa9hYWE655xzZDAYJEn33HOPIiIiFBAQoJiYmGM+zrqeP1LDsMQegwYN0iOPPCJJiomJ0c6dO/XOO+9Ial67rHPOOeforLPO0ooVK5SYmKhbbrnFFtg89NBDDebRc8SxW19lZaWefPJJnXnmmQ2W170O3t7emjBhgjw9PSVJ1113nQIDA2U0Ghv8I0KSgoOD1a1bNx04cEDFxcXav3+/rW0DAFwPoRQAwGEOP7NeSUnJUUOpnj172q7/61//0oQJEzRs2DANGTJEp5566nHVcqw5o47m3HPPbfD7GWecYbuenZ2tvLw8h0+U/uuvv9qu131Rr+/cc8/Vt99+K0m2+asON2bMmAavUd1cW5Ia9CJpSv0z6A0fPvyIYUXnnHOOLZRKSkpSZmamwsPDj3m/x6v+Y6qbUyohIcE2RCg4OLjBl1Z3d3fFxcUpIyNDSUlJSktLU2RkZIPnbfTo0Q32cdNNN+mmm25qsKyux5RUG0jUD9569eqlgIAAFRUVad26dbblzzzzTKOPof4wsfrzYtVvI08//bTWr1+vU089VYMHD1b//v1tvVpaWlNqamqD4aAjR45scH9nnXWW3aGUxWKxHYuBgYEN2s+FF16odevWyWw267vvvmvQa/DgwYMqLi62/X54Gx43blyjoVT9xzx06NAG6+r30Fu3bp0tlOrZs6d27dqlpKQkXX755Ro3bpxtzrHD54U6mvpD3+pPcG6P+j39JPvbZX1PPvmkfv/9d5WXl9uG7Q0bNsw291odRxy79RmNRp111llHLO/Zs6eSkpJUVlamiy++WOPHj9eQIUM0aNAgTZgwocnH2blzZ1sv29zcXEIpAHBhhFIAAIc5/ExIQUFBR93+mmuu0fLly/XHH3+ooKBA8+fP1/z58yXVfjGaNGmSrr76atvZluzR0i+IkhQVFdXg98N79eTn5zs8lKo/4W9j89zU702Qnp7e6H0cfru63jWSmpz0u776cw41VkNwcLC8vLxUUVEhqXbCakeEUvWPu7rHVH/erPz8/CMmmq5v3759ioyMbDCPUWho6DH3W9c7R6rtQdfUPlJTU1VZWSlPT0+VlpZq3rx5+uWXX5Senn7E/GCHO+ecczRhwgR99913Ki8v1xdffGEbkhUVFaVLLrlE119/vS0gtLem+s+Tj4/PEfMBtaQdrVu3zvZcRkZGauHChbZ19SfD/uqrrxqEUvUnF/f29lZAQECD+21qfqf6j3nevHmaN29eo9vVnzj8+eef1w033KDS0lJt377d1uPJw8NDI0aM0I033tggTGtKY8eevSIjIxv8Xv9xN6dd1hcVFaU777zTNp+fyWTSM888Y+sJVscRx259QUFB8vDwOGL5448/rm3btikrK0v79+/XG2+8Iam2V+fgwYN1zTXXNDo8u/5zxBn4AMC1EUoBABym/lCWqKgo21CMpnh4eOi9997TkiVLtHjxYm3YsMH2RWfv3r2aMWOGVqxYof/973/HvK/DtSTIakpz5iyxWq1HLKvrqdPaGttXfUZj41NK1p/Qu61rkHTEF+G2sm3bNtv1+j2LmqsuKKn/OrfmPDVWq1VFRUUKDAzUDTfcoISEhGbf1mAw2M62+O233+qPP/6wBQqpqal64403tHTpUs2fP79ZE2IfXlP917Fu6GJ9LXkevvrqK9v1nTt3NtnDJjExUTt27NDJJ59sq6lOY2FMc465o6kfiMXHx+vnn3/WggULtHr1am3fvl01NTWqqqrS6tWrtXr1aj399NO65pprjnqf9SdWP7ynaHPVH5LcGur3tPLx8bENs2uJ4zl262vq/bhr16768ccf9cUXX2j58uXasmWLKisrVVNTo/Xr12v9+vXasWOHHnzwwQa3q98Dt/5rAABwPYRSAACHqTsjknTk8KemmEwmjR8/3jaHyf79+/Xrr7/q3XffVXp6uv78808tXbr0qEM5WltGRoZtEmnpyCE0ISEhttrrHH469JKSkga9UI5XZGSkrafH4adJl47di6k11O9B1lgNeXl5tl5S0pE9QNpCaWmplixZYvu97rir37stKirKNvF6Y+p6XYSFhdnmOTv8Na+oqLA9xx4eHuratWuDfVx00UV69NFHm9xHSEiIlixZYvtS7+npqWeeeUannHKKvLy8tH79et13331N3n7MmDEaM2aMpNq52H7//Xe999572rNnj3bv3q3PPvtMd9xxh9011f9CX11dfcTQ1PpzWjVHSUmJli1b1uztv/rqK1soVT9Ua6yWpnoA1n/Mt912m20+uMMdHpKGhITorrvu0l133aWKigpt3bpVS5Ys0aeffqqamhrNnDlTkyZNarSHT536QdSJFI448tg9Fj8/P9vw2Orqau3YsUPLly/XBx98oPLycv3vf//Tdddd16A3aP1hgi0NAwEAjsHZ9wAADvH555/b5j1yc3NrMCynMRaLRevWrdMnn3xiC7MMBoN69uyp66+/vsGZpJr6MtpWPZF+/vnnBr/XTe4t1QYcdcMS6w9tWrduXYNeJU2dhepw9UOco6k/lOinn346Yn39Zc0ZdtQSp59+uu36n3/+2WC4lST9+OOPtut9+vRp1hC441F3VrW63nXdu3e3zbfVv39/W++6rKwsWSwWde7c2fZTVlamiooKeXp62kKHYcOG2e57xYoVDfa1aNEiW3j64osvSmo4f9GuXbsUGhraYB+5ubmqrq6Wr6+vjEajbQ4cqXZy68suu8wWbtU/y5nZbLZd37Bhg7744gu9//77tmXR0dGaNGmSXn75ZduyupDQ3pqio6MbDNlbvnx5g8dd/zVtjh9//FHl5eWSaidm37Vr1xE/9UOrxYsX23pode3atUHAcPhrUD98rG/IkCG264mJiQ0eb2BgoHJzc2WxWGyPMycnRz///LPmzp1re969vLx06qmn6sknn7SFf2VlZUeEzYerP4zsWNu6Ekccu8dSVFSkFStWaN68efr9998l1c73NnDgQN133322M/RZrdYGQ2vrblvn8GGeAADXQk8pAECrqqqqsg0fslgsOnjwoL766qsGvaQeeuihY565ymg06rnnntPevXvl7u6uqqoqnXHGGfL09FRmZqYWLFhg27b+8JOAgABbj5X58+dr8uTJ8vb2btXeQZ9//rl69+6t008/Xdu2bdPMmTNt6y666CLb9fj4eNv1vXv3aurUqbrwwgu1a9cu/e9//1NYWFijExXX/xL1888/64ILLpCHh4diY2ObrGnSpEl69913lZOTo4SEBD300EO6+eabZTAYtHDhQlso5ePj02RPkeMVFxenkSNHau3atSovL9ett96qRx99VJ07d9Zvv/2ml156ybZt3YTSraW0tNR23FVVVWnXrl1677339Oeff0qq7b0xY8YM2xBFHx8fXXbZZVqwYIGqq6s1depUPfDAA4qKitL69ev11FNPqbKyUpGRkfrpp5/k6emp66+/Xt9++60sFou+++47xcbG6pxzztHu3bttZ96TpKuvvlqSNGLECJ100knavXu3du/erf/7v//TddddJx8fHy1cuNB2BrXzzz9f//nPf2w97CTp77//1l9//aXg4GAtW7ZMH330kfz9/VVcXKw9e/YoMTFRUVFReuutt7R69WpJtQHmeeedJ19fX+Xn5+u9996z3V/dsWNvTSaTSeeff75t3qeZM2cqICBAJ510klauXKkvv/zSrtep/ln3Dp/Au07Xrl01YMAAbd26VXl5eVq9erXGjh0rNzc3nX/++bZ9vvTSS/Lz81OfPn20atWqJmsZP368Zs+erby8PK1atUqzZs3SxIkTZTAY9O6779pud8stt+jhhx9Wamqq7rrrLkm1odj//d//qVu3bjKbzdq2bZttEvCQkJBjzh1X/zW1d1JyZ3LEsXssZWVluvvuu1VdXa3IyEg9/fTTio2NlcFg0N69e20Bqbu7u+3snnXqz4lVvzYAgOshlAIAtKo1a9YccYauOu7u7nrkkUd0/fXXN+u+pk2bpttvv13FxcVNzjszduzYBqcRHzp0qO0/8wsWLNCCBQt011136e6777brcRzN5MmT9eyzzx6xvHv37rr11lttv/fp08d2CnapNmCq62V1++23a/PmzY1+Ua3fs+PAgQO6/PLLFRUVdUQvlfoCAgL02muvacqUKSosLNS3335rO8NZHW9vb82ePVtdu3a17wHb4cUXX9Qtt9yiXbt2afv27Y2+1nfeeWeTgURLvfbaaw2Cofo6d+6s2bNna9CgQQ2WP/jgg9q6dau2b9+uzZs3H1Grj4+PZsyYYetRFRcXp0ceeUQvvviiLBaLZs6c2SCQlGpf17rjv26+pxtvvFH5+flatGhRg3BWqj1m6nr9nX/++Xr99deVkZGhwsJCXXvttbbtnn76af3+++9asmSJCgsLNWHCBE2fPl2PPfaYEhMTlZGRoVdeeUWvvPLKEY9/wIABtl4l9tYkSVOnTtXKlSuVk5OjgoKCBm1pypQpevPNNxt93g938OBBW6Dj4eGhc845p8ltx48fr61bt0qqDbLGjh0rSbr77ru1YsUK5efnq6CgQFOnTrXd5qabbmoQxNXx9fXVrFmzdOedd6q8vFxz587V3LlzG2wzaNAgWxA1cOBA3XLLLXr33Xe1a9cuTZ48+Yj7dHNz0xNPPHHM+Z7i4uJs1+sez4nAEcfusYKpiIgIPfroo5o2bZrS0tL0z3/+s9HtHnjggQYnzSgoKFBycrIkyd/fv0XzyAEAHIdQCgDQpvz9/RUTE6MzzjhD1157bYN5P45lyJAhWrhwoT766COtWbNGOTk5Ki8vV0BAgPr166eJEyfq4osvbjAXzNSpU5WXl6e1a9eqqqpKERERx3068MMnVZ46dap69eqlDz74QPv375e/v7/OPvts3X///UcMFXn55Zc1e/ZsLV26VIWFheratauuueYaXXfddbrjjjsa3V98fLyeeuopvfvuu8rKylJgYOARp7JvzNChQ7V48WK99957WrVqla3HWEREhM444wzdfPPNio6ObuGz0DydO3fWF198oQULFuinn37Snj17VFFRoU6dOmnIkCG67rrrGgyDawsmk0mBgYGKjY3V2WefrSuuuKLReWX8/Pz0ySef6MMPP9RPP/2k/fv3q7q6WuHh4TrjjDN02223HRHg3XjjjYqLi9P777+vTZs2qaCgQH5+fho0aJCuu+46jRo1qsH2ffv21TfffKO5c+dqzZo1Sk9Pl9FoVLdu3TRu3DjdeOONtkmZ/f399d5772n27NnatGmTysrKFBsbq9tvv11jx47V8OHDdfDgQSUmJiosLEyRkZHq2bOnvvjiC82fP18rVqxQVlaWSkpK5Ofnp969e+v888/XVVdd1WDeI3tqkqTw8HB9+umnmjFjhn7//XfV1NSoZ8+emjx5ssaPH6+33367WROef/3117bJyEePHn3Emfzqu+CCCzRjxgxZrVatWLFCBQUFCgoKUmRkpK2W9evXy2w222oZOnRoo6GUVDu09Msvv9Q777yj33//XdnZ2XJ3d1fv3r110UUX6eqrr27wHD388MMaNGiQvvzyS+3YsUMFBQWyWq2KiIjQsGHDNHnyZPXr1++Yj7l+ELply5Zjbu9K2vrYbY7rrrtOvXr10meffaYtW7YoLy9PZrNZoaGhGjRokK6++moNHz68wW22bNliO84GDhzo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2hFCKQAAoFAfH909fLjuHj5cWzMz9cHmzfooIUFZpaW24X2DIiJ0Vf/++kf//uoRHOzskgEAAHCCI5QCAAANDAgP16xx4/TiOedoyd69en/zZn27a5c2Z2Roc0aGHv3lF50aFaV/nHyy/tG/v7oGBjq7ZAAAAJyACKUAAECj3E0mXRQbq4tiY5VbVqZFO3fqs+3btTIpSX+mpurP1FQ9+PPPOi06Wlf2768r+vdXpL+/s8sGAADACYJQCgAAHFOIj49uHzpUtw8dqsySEltAtebAAa1LSdG6lBTdt2SJRsbE6Mr+/XVx376KDghwdtkAAABwYYRSAADALuF+frrzlFN05ymnKLWoSAt37NBn27drXUqK1iQna01ysu768UcNjojQhNhYTejTR0O6dJHRYHB26QAAAHAhhFIAAKDFogICdM+IEbpnxAglFxbqi+3btXDnTv2RkqJNGRnalJGhf69erS5+frooNlYTYmM1tmdP+bi7O7t0AAAAOBmhFAAAaBUxgYF64PTT9cDppyurtFTfJybqu8RELd27V+klJXpn40a9s3GjvN3cNLZnT02IjdUFvXszUToAAEAHRSgFAABaXZivr24aPFg3DR6sipoarUxK0ne7dum7xEQdLCrS4sRELU5MlCSd1KmTxvbooXN69tRZPXqok7e3k6sHAACAIxBKAQCANuXl5qbze/fW+b176/Xx47U1M1PfHQql1qelaXdennbn5emtDRtkkDS4SxeN7dFDY3v00MiYGPl6eDj7IQAAAKANEEoBAACHMRgMGhgRoYEREXpi9GgVVFRoVVKSftm/X7/s368d2dnamJ6ujenpmvnbb3I3GnVa1646q3t3nRYdreHR0Qry8nL2wwAAAEArIJQCAABOE+TlpYv79tXFfftKktKLi7X8UED1y/79Si4s1OoDB7T6wAFJkkFSv86ddVp0dO1P167qGxrKmf0AAABOQIRSAADAZXTx99e1Awbo2gEDZLVatTc/X7/s26c1yclal5Kiffn52pGdrR3Z2Xp30yZJUqCnp4YfCqlGREdrcESEwv38nPxIAAAAcCyEUgAAwCUZDAb17tRJvTt10j+HDZMkZZaU6PeUFP2ekqJ1KSlan5amwspKLd27V0v37rXdNtzXVwPCwzUwPFwDIyI0IDxcfUND5WEyOevhAAAA4DCEUgAA4IQR7ufX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1tamxsbGDtMxnYpTh1Lx8fEqKipSRUWFLYRKT09XTEyMfHx8OmxrNBrPmL4BAAAAAADAPo6fcul0nLpLUb9+/TRgwAA99dRTslgsys7O1qpVqzRjxgxHlwYAAAAAAIBfwannlJKk4uJiLVmyRDt37pSvr69uvPFG3XPPPTIYTjfdMQAAAAAAAJydU/eUkqSwsDC9/PLLSktL01dffaX58+efd4FUQUGBZs+erREjRmjcuHH6xz/+4fArDADOqqCgQPPmzdOIESM0evRoLVq0SNXV1ZKkzMxMzZw5U0OGDNHll1+ulStXOrhawDktW7ZMcXFxtuc7duzQ9OnTlZiYqMmTJ+u9995zYHWAc1qxYoUuueQSDR48WLNmzVJ+fr4k2g9wJvv379ctt9yioUOH6uKLL9bChQtVUVEhibYDnGjbtm0aPXq07r///pPWffjhh5oyZYoSEhI0bdo0ffnll7Z1bW1teuaZZ3TZZZdp2LBhuv3225WXl2fP0s8ppw+lLgTz589X165dlZycrFWrVik5OVmvv/66o8sCnNJdd90lPz8/bdmyRevXr9f333+vJ554Qg0NDZozZ45Gjhypbdu26ZlnntGLL76ozZs3O7pkwKlkZmZq48aNtuelpaWaO3eubrzxRu3YsUMPPfSQlixZovT0dAdWCTiXf//733rvvff0xhtv6Msvv1RMTIxee+012g9wBi0tLZo9e7YGDx6s7du36/3331dFRYX++te/0naAE7z88st69NFH1bNnz5PWZWZm6oEHHtDChQv19ddfa9asWbrnnntUXFws6ejPqE2bNumll17S1q1bFRUVpXnz5snJB739ZIRS51h6eroOHDighQsXymQyKSoqSrNmzdI777zj6NIAp1NdXa34+HgtWLBAPj4+CgsL07XXXquUlBR99tlnam5u1t133y1vb2/1799f119/PW0JOE5bW5uWLl2qWbNm2ZZt2rRJUVFRmj59ujw8PDR69GiNHz9eSUlJjisUcDIrV67U/fffr4suuki+vr5avHixFi9eTPsBzqCsrExlZWWaOnWq3N3dFRgYqAkTJigzM5O2A5zAw8NDa9euPWUolZSUpDFjxmjMmDHy8PDQ1VdfrdjYWFvvwnfeeUezZs1SdHS0fH19df/99ys7O1tpaWn2PoxzglDqHNu3b58iIyM7XAaxf//+ysnJ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\n" | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "\n", | |
| "--- Visualization 2: Top 10 Most Common Tribe ---\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stderr", | |
| "text": [ | |
| "/tmp/ipython-input-2836028133.py:126: FutureWarning: \n", | |
| "\n", | |
| "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `y` variable to `hue` and set `legend=False` for the same effect.\n", | |
| "\n", | |
| " sns.barplot(x=top_occupations.values, y=top_occupations.index, orient='h', palette='magma')\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 1000x800 with 1 Axes>" | |
| ], | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAMWCAYAAADs4eXxAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZOdJREFUeJzt/XmYnuP9P/4/J3siib3hTUioJLYs9n2JkAQRIkFqKZqiSm3166IVa1KqtZP4qqK0lQghQaJBvVHU0qlYShOpTBSlBJHEJDP374++zceYCRNyZSbp43EcOY65z/O8zut1zXncbs+5lrusVCqVAgAAACxzzRq7AAAAAFhZCd0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFCQFo1dAAD8NznyyCPz5z//eam2GT16dIYMGVJQRUvvueeey9lnn52XXnopSXLQQQflZz/7Wb1jFy5cmF//+te577778tprr6WsrCwbb7xxhgwZkuHDh6dZs8//+/+VV16Zq666aqnq+6SeH/7wh7nzzjuXOK5Vq1ZZc80107NnzwwZMiR77LHHEve911575ZprrkmS3HHHHfnRj360xHnbtGmTr33ta+nZs2eGDRuWHXbYoVb/k08+maOOOqrBx9OjR4/cddddDR4PQNMidAMADfLhhx/ml7/8ZX7/+9+nurr6C8cvWrQoxx57bJ555pla7c8//3yef/75/OUvf8kll1xSVLlfqLKyMm+88UbeeOONTJ06NUOGDMno0aO/8rwLFy7M7NmzM3v27EyePDmnnHJKTjzxxGVQMQArIqEbAJajK6+8MosWLarVdswxx+Tvf/97kuTHP/5x9t1331r9HTp0WG71Lcl7772XQYMG5e23305ZWVm6deuWV1555XO3ufnmm2sC98CBA3PKKafko48+yo9+9KO88sormTRpUgYMGJB+/fotcY5jjz02hx12WK22K664IuPGjauZ96yzzqrV36ZNmzrzHHLIIfne975X87pUKuWdd97JPffck+uvvz7Jf85g77777hkwYMDnHtenbbLJJvn1r39d87q6ujpvvfVWfvWrX2XKlClJ/rPmQ4YMyTrrrFNn+/bt29eMW5IWLfzvGsCKzH/FAWA5Wm211eq0NW/evObnDh06ZO21165327/97W+56aab8uSTT+btt99Oy5Yts95662XPPffM0UcfnTXWWKPW+N122y1vvfVWkuTxxx/PE088kZtuuimvvPJKmjdvnm222SZnnnlmNt544y+s+6OPPsrbb7+dLbfcMmeffXZmzJjxuZdYJ6kJxi1btsx5552Xjh07Jkm+//3v57jjjkuS3HbbbZ8buldZZZWsssoqtdo+HarbtGmzxN/XZ7f57Livfe1r2WyzzfLPf/4z9957b5LkD3/4w1KF7ubNm9eZt1OnTrnkkkvy0EMP5eOPP051dXX+/ve/1xu6y8rKGlQ/ACsuD1IDgBXAb3/72xx00EG544478vrrr6eysjIfffRRXnnllYwdOzb7779/XnzxxVrbfPoM6U033ZTTTjst5eXlmT9/fj788MM89NBDOeyww/Laa6994f7btGmTCy64IOPHj0/Pnj2/cPxbb72Vf/zjH0mSbt261QTuJNlqq61qfn766acbdKl6kbp161bz89y5c5fJnM2bN6/1x5Svfe1ry2ReAFY8QjcANHHPPvtszj///FRXV6d58+Y5+eSTM3ny5Nx2223ZfffdkyT//ve/c/LJJ6eysrLeOX71q1/l9NNPz3333ZcxY8bUnF394IMP8otf/OILa1hrrbUybNiwlJWVNajmV199tebnTp061err0KFD2rVrlySZP39+Xn/99QbNWZS//vWvNT937tz5K81VXV2dN954IxdccEHmz5+fJNl+++3TvXv3rzQvACsul5cDQBN33XXX1ZwNHjFiRE466aSavquvvjoDBgzInDlzMmfOnNx///3Zf//968wxcODAHH/88UmSjTbaKKNHj86IESOSJA899FAWLlxY773QX9b7779f8/NnLw9P/nMv8yeh9IMPPlhm+12ShQsX5u23367V9s477+Suu+7KQw89lOQ/l8EfffTRSzXv3/72tyUG6tVXXz2DBg3KqaeeusTtP/zwwy8M5A888EDWX3/9paoLgKZD6AaAJqyqqipPPPFEzet99tmnVn/Lli2z55575je/+U2S/3wdVX2h+7P3Ke+4445p2bJlFi1alMrKysyYMSNbbLHFMqt74cKFNT9/+jLrT3z60vcFCxYss/0uybhx42ruMa9Pu3btcvHFF6dLly7LbJ8ffvhhnnvuufzxj3/Mfvvtt8zmBWDFInQDQBP23nvv1Qql//M//1NnzKcv337jjTfqnWe99dar9bpFixZZffXV869//SvJfy5PX5batm1b83NVVVWd/sWLF9c7tjHsvvvuueiii7L66qsv9baffXp58p8z988991wuvfTSlJeXp7y8PG+88UbNlQWf1pCnl3/2AXkArFiEbgBYgZRKpc/tb9as/se11Hcv9qfnaui92g316ae0f/TRR3X6582bV+/Yohx11FG1vlrsnnvuyemnn54keeaZZ5Z4L/wXqe/p5WuvvXY23njjdOnSpebrzq666qocffTRdb7+y9PLAVZ+HqQGAE3Y6quvXvPQsST1PnTsn//8Z83P6667br3zvPnmm7VeV1ZW5r333qt5vdZaa33VUmvZZJNNan7+5GvLPjF37tya+7k7dOhQ79n7ou23337ZbrvtkvznDwAXXHDBMt9Hjx49an5esGBBoz8wDoDGIXQDQBPWvHnzbL/99jWv77vvvlr9lZWVNQ8CS5Jddtml3nmmTZtW6/UTTzxRc4l3mzZtGvRd3UtjjTXWqAmdr7zySq2Hpf35z3+u+XnnnXde5mfZG+rss8+uOfN8//3354EHHlim8z///PO1Xnfo0GGZzg/AisHl5QDQxH3729/Oww8/nOrq6tx0001ZffXV069fv7z33nu5/PLLa+7j7t69e/r27VvvHBMmTMjmm2+evn375rXXXqt1ZnefffZJ69atP7eGuXPn5rnnnqt5/corr9T8/NZbb+V///d/a15vt912adOmTY444oj85Cc/yaJFizJy5Miccsop+eCDD/LLX/6yZuyRRx65dL+MZWiTTTbJEUcckRtvvDFJcv7552eHHXao92nrS1JVVVXnqegLFizICy+8kEsuuaSmbYcddqj33uxSqVRn+/qsuuqqadWqVYPrAqDpELoBoInbeuutc9ZZZ+XCCy9MVVVVfvGLX9T5bu3OnTvnyiuvrPdJ4Uly0EEHZeTIkRk5cmSt9rXXXrvm3ubP8/LLL+fb3/52vX1/+tOf8qc//anm9SdfcXXwwQdn2rRp+eMf/5h777039957b63tRowYkW222eYL912kk08+Offcc0/efvvtvPHGG7n00kvzk5/8pMHb//3vf1/i1QWf6Ny58xIvX583b94Xbp8kN998c60rHgBYcbi8HABWAEcccUQmTJiQwYMHZ911103Lli2zyiqrZIsttshpp52WiRMnZsMNN1zi9scee2xGjx6dTTfdNK1bt87qq6+e/fffP7fddtsS7wP/qpo1a5Yrr7wyZ555Zrp165bWrVunXbt26dOnTy6++OKceeaZhex3abRv375WHbfeemutM/pfRsuWLbPeeutlu+22yw9+8IPcdddd6dy581ctFYAVVFnpix6DCgCskPr27Vvz8K577713md+3DQB8MWe6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEA9SAwAAgII40w0AAAAFadHYBVCcxYsX5/3330/r1q3TrJm/rwAAACwr1dXV+fjjj7PqqqumRYslR2uheyX2/vvv5x//+EdjlwEAALDS6tKlS9Zcc80l9gvdK7HWrVsnSTbYYIOsssoqjVwNn6iqqsorr7ySbt26pXnz5o1dDp9ibZom69J0WZumybo0Tdal6bI2TdOKsC4LFizIP/7xj5rctSRC90rsk0vK27Rpk3bt2jVyNXyiqqoqSdKuXbsm+x+Q/1bWpmmyLk2XtWmarEvTZF2aLmvTNK1I6/JFt/K60RcAAAAKInQDAABAQYRuAAAAKIjQDQAAAAXxILX/Avvs9Y3MnPFaY5cBAADQYPf94deNXcIy4Uw3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFadHYBfw3ev755zNmzJg8/fTTWbBgQdZee+3ss88+OeGEE9KxY8fP3Xby5Mm55ZZb8vLLL6dZs2bp2rVrhg8fnoMPPng5VQ8AAEBDOdO9nD322GM54ogj0rNnz0yZMiXl5eUZO3ZsZsyYkeHDh2fevHlL3Payyy7LqFGjMmLEiDz55JN55JFHcuyxx2b06NG54oorluNRAAAA0BBC93JUXV2dkSNH5vDDD89xxx2X1VZbLWVlZdl4441z1VVXZcGCBRk7dmy9286aNStjxozJqFGj0q9fv7Rq1Srt2rXLvvvum4svvjilUmk5Hw0AAABfROhejl544YVUVFTkqKOOqtPXqlWrHHbYYZk6dWq9206bNi3rrbde9thjjzp9ffv2zSmnnLKsywUAAOArErqXo4qKirRt2zadOnWqt3+jjTbKnDlz6j1rXVFRkS5duhRcIQAAAMuS0L2cVVVVLfFS8FKplLKysnr7ysrKUl1dXWRpAAAALGNC93LUtWvXVFZWpqKiot7+WbNmpUuXLvUG7y5dumTmzJnu3QYAAFiBCN3LUY8ePdKlS5fcfPPNdfoWL16ccePGZeDAgfVu269fv7zzzjuZPHlynb5HH300hxxySBYvXrzMawYAAODLE7qXo7KyspxzzjkZN25cLrnkkrz77rsplUqZOXNmjjnmmHTo0CHf+ta36t22c+fOOfHEE/PTn/4048ePz8KFC7NgwYJMnjw5p512WgYPHpwWLXztOgAAQFMipS1nO+64Y2699dZcffXVGThwYBYsWJBOnTplwIABOf7449O2bdslbnvSSSelc+fOueWWWzJq1Ki0bNky3bp1y89//vN6n2oOAABA4xK6G8GWW26ZMWPGfKltBw8enMGDBy/jigAAACiCy8sBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEFaNHYBFO/+B36bDh06NHYZ/J+qqqqUl5end+/ead68eWOXw6dYm6bJujRd1qZpsi5Nk3VpuqxN0/TJuqwMnOkGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAAChIi8YugOIdvd/IVLz6dmOXAQAA0GDX3nVqY5ewTDjTDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQVo0dgHLyvPPP58xY8bk6aefzoIFC7L22mtnn332yQknnJCOHTsucbuZM2fm8ssvz7PPPpu5c+emY8eO6devX77//e/X2e62227L2WefnTPPPDMjRoyo1XfkkUemV69e+f73v1/TViqVsvfee+fggw/Od77znTr7vuaaa3LnnXdm++23z1133ZUkqa6uzuLFi9OqVauacTfccEOqq6tz1FFH1Wr/RIsWLfKXv/ylYb8oAAAAlpuV4kz3Y489liOOOCI9e/bMlClTUl5enrFjx2bGjBkZPnx45s2bV+92H330Ub75zW9mvfXWy6RJkzJ9+vT87ne/y4wZM3LaaafVGT9+/Pjst99+ueOOOxpUV1lZWQ4++OBMnDix3v677rorBx98cC644IJMnz4906dPz/nnn5+11lqr5vX06dOz7bbb1mzz9NNP1+qbPn26wA0AANBErfChu7q6OiNHjszhhx+e4447LquttlrKysqy8cYb56qrrsqCBQsyduzYerf9+9//nrfffjsjRozI6quvnrKysmy44Ya56KKLcuihh6ZUKtWMffnll/P3v/89Z511Vt58880GB90hQ4akoqIizzzzTK32Z555JhUVFTnooIO+/MEDAADQpK3wofuFF15IRUVFjjrqqDp9rVq1ymGHHZapU6fWu+3666+fli1b5qqrrsr7779f0965c+fss88+KSsrq2kbP358+vbtmzXXXDP9+/fP7bff3qD6OnXqlF133TV33nlnrfaJEydmt912S6dOnRo0DwAAACueFT50V1RUpG3btksMrxtttFHmzJlT66z1J9Zaa61cdNFFue+++7LTTjtl6NCh+fnPf57nnnuu1rjKyspMmjQpgwcPTpIMHjw49913X+bPn9+gGocNG5b77rsvCxcuTJJ8/PHHue+++zJ06NClOdQkyTbbbJMtt9yy1r9Ro0Yt9TwAAAAUb6V4kFpVVVVKpVKtM9OfWFL7J/bbb7/svffeeeqpp/LnP/85jz32WK6//voceuihOe+885Ikf/jDH9KsWbPssssuSZLtt98+HTt2zH333ZeDDz74C+vbY4890qZNm9x///054IAD8oc//CFt2rTJHnvssdTH+vTTT6d169ZLvR0AAADL3wp/prtr166prKxMRUVFvf2zZs1Kly5dPjd4t2rVKjvvvHNOO+203H777fn5z3+e2267LTNmzEjyn0vL33///Wy77bbp06dPttpqq/zrX//KhAkTGlRjixYt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DQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQkBaNXQDFu+KIq/Le7LmNXQaf8buMa+wSWAJr0zRZl6Zp+PWHNHYJANCkOdMNAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBVojQfeSRR+aSSy6p037bbbele/fuuf766+vd7sYbb8ygQYPSp0+f9OrVK0OHDs20adOWuJ8f/vCHOe200+q0z5w5M927d8+cOXNqxm266abZcsst6/wbOXJkkuSOO+5I9+7da/VtvfXWGT58eB5//PFa81dXV+eWW27JgQcemD59+mS77bbLkUcemQceeCBJ8tRTT2XTTTfNG2+8UW/d++yzT6666qolHhcAAACNo0VjF/BVjB8/Pvvtt1/uuOOOjBgxolbfDTfckJtvvjmXXXZZNt9881RXV2fSpEk59dRTc9NNN2Xrrbf+SvseMGBALr300s8ds9Zaa+Wxxx6reb1gwYLccsstOeGEEzJp0qRssMEGSf4T4svLy3Puuedmu+22y/z582tqPeecc3LwwQdngw02yMSJE/Od73yn1j6eeeaZVFRUZOjQoV/peAAAAFj2Vogz3fV5+eWX8/e//z1nnXVW3nzzzfzlL3+p1f/YY49ljz32SO/evdOyZcu0bt06Q4cOzaWXXpq11lqrUWpu27Ztvv3tb+drX/taHnnkkSTJn/70p9x999258sors+OOO6Z58+bp0KFDvvGNb+Tss8/O/PnzkyQHH3xwJk6cWGfOO++8M7vsskvWWWed5XkoAAAANMAKG7rHjx+fvn37Zs0110z//v1z++231+rv2rVrpk2blj//+c+12vfee+9suOGGy7PUOhYvXlzz8/33359tt9023bt3rzNu2LBhOfLII5MkBx10UObMmZNnnnmmpn/hwoW57777nOUGAABoolbIy8srKyszadKkXHTRRUmSwYMH58QTT8xZZ52Vdu3aJUlOPvnkzJkzJ0ceeWTWXnvtbLXVVtl1110zcODAtG/ffolzT5kypc5936VSqUHjkuT3v/99Nt9883rnnjdvXm666abMnTs3/fr1S5JUVFSka9euX3jMa6+9dnbffffceeedNZfGT5s2La1atUrfvn2/cHsAAACWvxXyTPcf/vCHNGvWLLvsskuSZPvtt0/Hjh1z33331YxZddVVM2bMmEybNi0nn3xyWrVqlYsvvjh77713/va3vy1x7gEDBmT69Om1/t11110NGjd9+vRagfudd96p8yC1J554IjfeeGM6deqUJCkrK0t1dXWDjnvYsGG57777snDhwiT/ubT8wAMPTMuWLRu0PQAAAMvXChm6x48fn/fffz/bbrtt+vTpk6222ir/+te/MmHChDpjO3funEMPPTSXXHJJHnrooay77rq59tprl0uda621Vk0Yf+6559KnT59ssMEG6dWrV82YLl26ZMaMGQ2ab7fddku7du1y//3356233srjjz/u0nIAAIAmbIUL3RUVFXniiSdyzTXXZOLEiTX/rr/++jzzzDOZNWtW5s2blwsuuCAVFRW1tm3fvn369OmTBQsWLPe6y8rKct555+Wuu+6q9ZVh++yzT/7yl7/k2WefrbPNbbfdlpNPPrnmdfPmzTNkyJBMnjw59957b3r16pWNN954udQPAADA0lvhQveECRPSrVu37LHHHtlwww1r/u20007ZYostMmHChLRv3z5/+9vfcuaZZ+all17K4sWLU1lZmUceeSSTJ0/OXnvt1Si1d+vWLcccc0zOPvvsmuC/3XbbZciQIfnOd76T+++/P4sWLcqHH36YW265JT/72c9y4IEH1prj4IMPzuOPP5677rrLWW4AAIAmboUK3dXV1bnzzjszZMiQevs/+VqtqqqqjBkzJr169cr3vve9bLPNNtluu+1y6aWX5vvf/34OPfTQr1zLlClTat2v/cm/vffe+3O3++53v5vq6upcfvnlNW0XXnhhTjzxxFx55ZXZZpttsvfee+fhhx/Or371qzp/INhggw3Sp0+fzJ49OwMHDvzKxwEAAEBxykr1PZqblcL8+fPz0ksvZcp59+e92XMbuxwAVkLDrz8kvXv3TvPmzRu7FP5PVVVVysvLrUsTY12aLmvTNK0I6/JJ3tp0001rvkWrPivUmW4AAABYkQjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAVp0dgFULzv3XJSOnTo0Nhl8H+qqqpSXl6e3r17p3nz5o1dDp9ibZom69J0fbI2AMCSOdMNAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFCQFo1dAMWbcMK1mf/63MYug894MhMauwSWwNo0Tdaladr+Fwc3dgkA0KQ50w0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGE7ibm1VdfzRlnnJGddtopvXr1St++fXPBBRdk7ty5SZK+ffvmd7/7XeMWCQAAQIMI3U3ISy+9lKFDh2adddbJ3XffnWeffTZXX311Xn755QwfPjwLFy5s7BIBAABYCkJ3E3Leeedll112yZlnnpm11lorzZs3z6abbpprr702vXv3zr/+9a/GLhEAAICl0KKxC+A//v3vf+fZZ5/Nb37zmzp97du3z+jRoxuhKgAAAL4KZ7qbiIqKiiRJ165dG7kSAAAAlhWhu4koKytLklRXVzdyJQAAACwrQncTscEGGyRJ/v73vzdyJQAAACwrQncTsfrqq2e77bbLr3/96zp9CxYsyJAhQ/LMM880QmUAAAB8WUJ3E3LWWWelvLw8p59+et58881UV1fnpZdeyogRI9KmTZv07NmzsUsEAABgKQjdTUiPHj0ybty4VFdX56CDDkqfPn1y6qmnZocddsgNN9yQli1bJkkuuOCCbLnllrX+Pfvss41cPQAAAJ/lK8OamI033jiXXXbZEvsffPDB5VcMAAAAX4kz3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgyzR0L1q0KE899dSynBIAAABWWA0K3bvsskvee++9Wm3jx4/PvHnzarW9//77Oeqoo5ZddQAAALACa1Dofuedd1JdXV2rbfTo0XWCeJKUSqVlUxkAAACs4L705eVLCtdlZWVfuhgAAABYmXiQGgAAABRE6AYAAICCCN0AAABQkAaHbvdqAwAAwNJp0dCB3/72t9OyZcua1x9//HFOOeWUtGrVqqZt0aJFy7Y6AAAAWIE1KHRvu+22ddq23nrrOm0tW7bMNtts89WrAgAAgJVAg0L3b37zm6LrAAAAgJWOB6kBAABAQRocuj/++OM8/fTTmTFjRk3bX//61xx66KHp06dP+vfvn6lTpxZSJAAAAKyIGhS6Z8+enb333jtHHnlkBg0alOOOOy5vv/12jj/++LRo0SLDhg3L+uuvn9NOOy2PPPJI0TUDAADACqFB93SPGTMmbdu2zS9+8YskydixY/P9738/u+66a37+85/XjPvZz36WG264Ibvuumsx1QIAAMAKpEGh+/HHH8+5556b3XbbLUmyySabZNCgQbn55ptrjRsyZEiOPvroZV4kX83BY76TDh06NHYZ/J+qqqqUl5end+/ead68eWOXw6dYm6bJujRdn6wNALBkDbq8/J133skmm2xS83qTTTZJixYt0qlTp1rj1lhjjbz33nvLtkIAAABYQTUodC9atCitWrWq1dayZcs0a+bh5wAAALAkDU7NZWVlRdYBAAAAK50G3dOdJGeffXZat25d83rRokW58MILs8oqq9S0ffzxx8u2OgAAAFiBNSh0/8///E9efPHFWm1f+9rX8sorr9QZu+666y6bygAAAGAF16DQ/eCDDxZdBwAAAKx0PAkNAAAACtKgM92zZs1aqkm7du36pYoBAACAlUmDQvfAgQOX6unlL7300pcuCAAAAFYWDQrdo0ePLroOAAAAWOk0KHQfdNBBRdcBAAAAK51l/iC1d955Z1lPCQAAACukBofuBx98MEcccUT22muvHHnkkZk2bVqdMePHj89+++23TAsEAACAFVWDQvdDDz2U7373u3n33Xez5ZZbZu7cuTn55JNz9913J0lmz56db37zm/npT3+aXr16FVowAAAArCgadE/3r371qwwaNCgXXXRRzVPMf/nLX+baa6/NW2+9lauuuiqrr756rrji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InQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgLRq7AIo3+2eXpdm/32vsMviUdkleya2NXQb1sDZNk3Vpwr59eGNXAABNmjPdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROj+kvr27ZvevXvno48+qtN34403pnv37rnjjjvq3faOO+7IzjvvnCS56qqr0r9//3rHvfHGG9l0003z1FNPJUnKy8szYsSI7LDDDtliiy2y++675+KLL05lZeUyOioAAACWJaH7K2jXrl2mTZtWp33SpElZY401GjTHwQcfnNmzZ+eZZ56p0zdx4sRssMEG2XbbbTNnzpwcc8wx2WWXXTJt2rQ899xzGTt2bB566KFccMEFX/lYAAAAWPaE7q9g9913z913312r7bXXXst7772Xr3/96w2aY911183OO++cO++8s07fxIkTM3To0CTJX//615RKpRx99NFp3759mjVrlh49euTSSy/NPvvs89UPBgAAgGVO6P4K+vbtm2eeeSbvvPNOTdukSZOWeLn4kgwdOjT33XdfFi5cWNP27LPPZs6cOTnooIOSJF27ds2CBQty7bXXZv78+TXjevTokV122eUrHgkAAABFELq/go4dO2aXXXbJvffeW9N2zz335IADDliqefbaa6+0atUq999/f03bxIkTs8cee2SttdZKkmy22Wb50Y9+lOuuuy477LBDDj/88Fx55ZWZMWPGsjkYAAAAljmh+ys68MADay4xf/HFF9OsWbNsuummSzVHy5Ytc+CBB9ZcYv7xxx/n3nvvrbm0/BNHH310HnvssVx66aXZcsstM2XKlOy///4ZO3bssjkYAAAAlimh+yvabbfdUlFRkX/84x+ZNGlSBg0a9KXmGTp0aJ544om88cYbmTZtWtq1a5fddtutzrh27dplr732yg9/+MPcc889OeWUU3L55Zdn3rx5X/VQAAAAWMaE7q+oVatWGThwYKZOnZqpU6dm//33/1LzbLzxxunVq1fuueeeTJo0KQcddFCaN29e03/77bdn4sSJdbbbddddU1VV5WvDAAAAmiChexk48MADc9ttt6VTp05Zf/31v/Q8Q4cOzd13353HH3+8zqXlSXLuuedm0qRJ+eijj1IqlfLaa6/liiuuSJ8+fRr8FWUAAAAsPy0au4CVQe/evdOyZcsvfWn5J/bdd9+MGjUqvXv3TufOnWv1DR06NC1btswtt9yS888/PwsWLMiaa66ZPffcMxdddNFX2i8AAADFELq/pAcffLDW66lTp9Z6/Zvf/GaJ2w4ZMiRDhgyp096uXbs8++yzS9xu8ODBGTx48FJWCgAAQGNxeTkAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKEiLxi6A4m3ww1PToUOHxi6D/1NVVZXy8vL07t07zZs3b+xy+BRr0zRZl6brk7UBAJbMmW4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIK0aOwCKN67t1yWeR++19hl8Cn/k+RfD9za2GVQD2vTNFmXJmyvwxu7AgBo0pzpBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIC0au4CGev755zNmzJg8/fTTWbBgQdZee+3ss88+OeGEE9KxY8fP3Xby5Mm55ZZb8vLLL6dZs2bp2rVrhg8fnoMPPrjO2DPOOCOTJ0/O+PHj07Nnz1p93bt3T8uWLVNWVlZnu5tuuilbbbVVkuTGG2/MhAkTMmfOnFRXV2eTTTbJCSeckH79+tXaprq6OnvuuWcWLlyYRx55JK1atarpe/LJJ3PUUUfVamvRokW6du2ab3/72xk4cGCSZM6cOdlrr71y7733ZuONN/6C3yIAAADL0woRuh977LF897vfzYknnpgLLrggq666al599dVcdNFFGT58eG677ba0b9++3m0vu+yyjBs3Luedd1522223LF68OH/84x9z9tln5/XXX8/3vve9mrHvv/9+pk2bloEDB2bChAl1QneSXHPNNdltt92WWOsNN9yQm2++OZdddlk233zzVFdXZ9KkSTn11FNz0003Zeutt64Z+8gjj6Rt27ZZffXVM23atOy777515nv66afTunXrJEllZWXuu+++fP/738/Xvva1WnMBAADQ9DT5y8urq6szcuTIHH744TnuuOOy2mqrpaysLBtvvHGuuuqqLFiwIGPHjq1321mzZmXMmDEZNWpU+vXrl1atWqVdu3bZd999c/HFF6dUKtUaf/fdd2ezzTbLkUcemXvuuScLFy5c6nofe+yx7LHHHundu3datmyZ1q1bZ+jQobn00kuz1lpr1Rp7++23p3///unfv38mTJjwhXO3atUqgwcPzrbbbpsHHnhgqWsDAABg+WryofuFF15IRUVFjjrqqDp9rVq1ymGHHZapU6fWu+20adOy3nrrZY899qjT17dv35xyyim12m6//fYccMAB2WqrrbLqqqsucd7P07Vr10ybNi1//vOfa7Xvvffe2XDDDWte//vf/85DDz2UAw44IIMGDcrjjz+ef/7znw3ax6JFi5a6LgAAAJa/Jn95eUVFRdq2bZtOnTrV27/RRhtlzpw5KZVKde61rqioSJcuXRq0n+nTp2fmzJkZOHBgysrKMnjw4EyYMCGDBw+uNe7EE0+ss59NNtkkd9xxR5Lk5JNPzpw5c3LkkUdm7bXXzlZbbZVdd901AwcOrHUJ/MSJE9O9e/ea+7C32mqr3HHHHTnppJOWWOOCBQtyzz33pLy8PD/60Y8adFwAAAA0niYfupOkqqqq3lCdZIntSVJWVpbq6uoG7WP8+PHZY489stpqqyVJBg8enGuuuSYVFRXp3Llzzbgvuqd71VVXzZgxY1JRUZE//elPeeqpp3LxxRfnl7/8ZX7961+nR48eSf5zVn348OE12w0ePDjXXnttvvvd79Y6nm222abm50WLFqVHjx659tprs8UWWzTouAAAAGg8TT50d+3aNZWVlamoqMgGG2xQp3/WrFnp0qVLvcG7S5cueeihhz43mCf/7wzyxx9/nD59+tS0l0qlTJgwIaeeeupS1925c+cceuihOfTQQzNv3rwcddRRufbaa3P55Zfn6aefzquvvppf/OIXufTSS5P85971hQsX5oknnsiOO+5YM8+nH6R2xhln5N133/3c0A8AAEDT0eTv6e7Ro0e6dOmSm2++uU7f4sWLM27cuJqvz/qsfv365Z133snkyZPr9D366KM55JBDsnjx4kyZMiUtWrTIpEmTMnHixJp/p556aiZOnNjgs+Xz5s3LBRdckIqKilrt7du3T58+fbJgwYIkyYQJE7LLLrvk7rvvrtnX3XffnT333DO33377Euf/0Y9+lOeff75BD10DAACg8TX50F1WVpZzzjkn48aNyyWXXJJ33303pVIpM2fOzDHHHJMOHTrkW9/6Vr3bdu7cOSeeeGJ++tOfZvz48Vm4cGEWLFiQyZMn57TTTsvgwYPTokWLjB8/PoMGDUrXrl2z4YYb1vwbPnx4/v3vf+fRRx9tUK3t27fP3/72t5x55pl56aWXsnjx4lRWVuaRRx7J5MmTs9dee2XevHmZMmVKDj300Fr72nDDDXPYYYflD3/4Qz744IN6519rrbVyxhln5KKLLsrbb7/9pX+nAAAALB9N/vLyJNlxxx1z66235uqrr87AgQOzYMGCdOrUKQMGDMjxxx+ftm3bLnHbk046KZ07d84tt9ySUaNGpWXLlunWrVt+/vOfZ4899sirr76aZ555Jj/96U/rbLvaaqtlr732yoQJE2ou6a7vQWpJcvzxx+ekk07KmDFjcuWVV+Z73/teTTDeaKON8v3vfz/Dhg3LbbfdltatW2fPPfesM8euu+6aVVddNZMmTcrXv/71eo/n0EMPzcSJE3PeeeflyiuvbNDvDwAAgMZRVvrsl1Wz0pg/f35eeumlrPXne9Pqw/cauxwAVkL/3Ovw9O7dO82bN2/sUvg/VVVVKS8vty5NjHVpuqxN07QirMsneWvTTTdNu3btljiuyV9eDgAAACsqoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFadHYBVC8NY44NR06dGjsMvg/VVVVKS8vT+/evdO8efPGLodPsTZNk3VpuqqqqvLP8vLGLgMAmjRnugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACtKisQugePMevjGLKj9o7DL4lK5J3n9tSmOXQT2sTdNkXZqwDQc0dgUA0KQ50w0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEFW+ND9/PPP56STTsoOO+yQXr16pV+/frn44ovzwQcffOG2kydPzmGHHZY+ffpk6623ztChQzNhwoRaY0qlUn73u99lyJAh6dOnT7baaqscdthhueeee2qNu/LKK9O9e/dMmzatzn769u2bJ598sub1ww8/nCOOOCLbbbddtthii+y999657rrrUiqVkiRz5sxJ9+7dM3PmzJptKisrM3bs2Oy///7p3bt3ttlmmxx99NF59NFHl+r3BQAAwPKzQofuxx57LEcccUR69uyZKVOmpLy8PGPHjs2MGTMyfPjwzJs3b4nbXnbZZRk1alRGjBiRJ598Mo888kiOPfbYjB49OldccUXNuB//+Me54YYbcsYZZ+Spp57KE088kREjRmTUqFG57LLLas25+uqrZ/To0fn444+XuN/y8vKcfPLJOfTQQ/Pwww/nr3/9a0aPHp2bbrop1113Xb3bVFVV5fjjj8/999+fCy64IM8++2z+93//NwcccEC+973vZfz48Uv3iwMAAGC5aNHYBXxZ1dXVGTlyZA4//PAcd9xxNe0bb7xxrrrqqgwYMCBjx47NGWecUWfbWbNmZcyYMRkzZkz22GOPJEmrVq2y7777pk2bNpk+fXqS5Mknn8zEiRNz1113pVu3bjXb9+vXL23atMmIESMyaNCgbLzxxkmS3XffPa+99lquu+66nHzyyfXW/ec//znrr79+Bg0aVNO2zTbb5IorrkhZWVm929x1110pLy/PtGnTsuaaayZJ2rVrlyFDhmTRokUZNWpU9t5776y22moN/wUCAABQuBX2TPcLL7yQioqKHHXUUXX6WrVqlcMOOyxTp06td9tp06ZlvfXWqwncn9a3b9+ccsopSZKpU6dmhx12qBW4P7HLLruka9euuf/++2vaysrKcvbZZ+eGG25IRUVFvfvu2rVrZs2alfHjx6eysrKmfeutt85WW21V7zZTp07NfvvtVxO4P+3ggw9Okvzv//5vvdsCAADQeFbY0F1RUZG2bdumU6dO9fZvtNFGmTNnTs190p/dtkuXLl+4j9mzZ2fDDTdcYn/Xrl0ze/bsWm2bbbZZDjzwwIwaNarebfr165djjz025557brbffvscc8wxue666/L6669/qTpatGiRDTbYoE4dAAAANL4VNnQn/7nXub5QnfznAWhLuly7rKws1dXVDd7HkixpH6eeemr+8pe/5OGHH65332eeeWYee+yxXHjhhenSpUt+//vfZ5999snEiROXaR0AAAA0rhU2dHft2jWVlZVLvIx71qxZ6dKlS71htEuXLpk5c+YSA/un9/HpJ4jXt4+NNtqoTvuqq66a008/PRdeeGGtS8g/O2bffffNyJEj88ADD2TIkCG56KKLlrqORYsWZc6cOfXWAQAAQONaYUN3jx490qVLl9x88811+hYvXpxx48Zl4MCB9W7br1+/vPPOO5k8eXKdvkcffTSHHHJIFi9enAEDBuSZZ57JCy+8UGfc448/ntmzZ6d///717mPo0KHp0KFDfvWrX9Vqv/766/PHP/6xVltZWVl22WWXLFy4sN4/BAwYMCBTp07NW2+9VafvrrvuSrNmzbLrrrvWWwcAAACNZ4UN3WVlZTnnnHMybty4XHLJJXn33XdTKpUyc+bMHHPMMenQoUO+9a1v1btt586dc+KJJ+anP/1pxo8fn4ULF2bBggWZPHlyTjvttAwePDgtWrTI1ltvnWHDhuW4447Lgw8+mEWLFqWysjJTpkzJKaecklNPPTWdO3eudx/NmjXLyJEjc91119X6zvD58+fnrLPOysMPP5yFCxemuro6L7/8cq677rr07du33jPz+++/f7bddtscddRRefrpp1NVVZX58+fn97//fS688MKMHDky7du3Xza/WAAAAJaZFfYrw5Jkxx13zK233pqrr746AwcOzIIFC9KpU6cMGDAgxx9/fNq2bbvEbU866aR07tw5t9xyS0aNGpWWLVumW7du+fnPf17rqebnn39+fvvb3+aKK67I6aefnrKysvTo0SPnn3/+Es9yf6Jnz57Zd999c/vtt9e0nXzyyVl11VVz6aWXpqKiIpWVlVlnnXUycODAnHjiifXO06xZs1x77bW5/vrrc/bZZ+f1119Py5Yt07Nnz1x77bXZYYcdlu4XBwAAwHJRVvqiG5tZYc2fPz8vvfRS/ueNP6V15QdfvAEALKVZGw5I796907x588Yuhf9TVVWV8vJy69LEWJemy9o0TSvCunyStzbddNO0a9duieNW2MvLAQAAoKkTugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAK0qKxC6B47Xc/Oh06dGjsMvg/VVVVKS8vT+/evdO8efPGLodPsTZNk3VpuqqqqpLy8sYuAwCaNGe6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAK0qKxC6B4C16dklLZwsYug0/ZpGXy0QsvNnYZ1MPaNE3WpSnbrLELAIAmzZluAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAK0qKxC0iS559/PmPGjMnTTz+dBQsWZO21184+++yTE044IR07dqx3myeffDJHHXVUWrVqlSQplUpZc801s8suu+SMM87IGmuskSTp3r17WrZsmbKysiRJWVlZ1llnnQwePDjHH398WrT4f7+Cxx9/PNdff32ee+65VFZWZr311sugQYPyrW99q2Y/n5g8eXJuueWWvPzyy2nWrFm6du2a4cOH5+CDD64ZUyqV8vvf/z7jx4/PrFmzUlZWlm7duuXII4/MfvvtVzPuyiuvzFVXXZWrr746/fr1q7Wfvn37ZvTo0dl+++2TJA8//HD+v//v/8srr7yS+fPnZ911182wYcPy7W9/u+YYAQAAaBoa/Uz3Y489liOOOCI9e/bMlClTUl5enrFjx2bGjBkZPnx45s2b97nbP/3005k+fXqef/75/Pa3v01FRUXOPPPMWmOuueaaTJ8+PdOnT095eXkuvvji/O53v8uvfvWrmjF33HFHTjzxxAwYMCAPPfRQ/vKXv+Siiy7KQw89lBEjRmTx4sU1Yy+77LKMGjUqI0aMyJNPPplHHnkkxx57bEaPHp0rrriiZtyPf/zj3HDDDTnjjDPy1FNP5YknnsiIESMyatSoXHbZZbVqXH311TN69Oh8/PHHSzzW8vLynHzyyTn00EPz8MMP569//WtGjx6dm266Kdddd11Dft0AAAAsR40auqurqzNy5MgcfvjhOe6447LaaqulrKwsG2+8ca666qosWLAgY8eObfB86623Xk455ZQ89thj+eijj+od06xZs/Tu3Tvf+MY38oc//CFJMm/evFxwwQU588wzM2zYsLRv3z7NmjXLlltumTFjxuT555/P7bffniSZNWtWxowZk1GjRqVfv35p1apV2rVrl3333TcXX3xxSqVSkv+ciZ84cWKuvvrq7LzzzmnRokVatWqVfv365aKLLsqYMWMyc+bMmrp23333rL322p8bnv/85z9n/fXXz6BBg9K2bds0b94822yzTa644opsu+22Df49AQAAsHw0auh+4YUXUlFRkaOOOqpOX6tWrXLYYYdl6tSpSzVndXV1ysrK0rx5888dt2jRopqfH3300VRXV2fYsGF1xq2xxhoZNGhQTR3Tpk3Leuutlz322KPO2L59++aUU05JkkydOjU77LBDunXrVmfcLrvskq5du+b++++vaSsrK8vZZ5+dG264IRUVFfXW3LVr18yaNSvjx49PZWVlTfvWW2+drbba6nOPFwAAgOWvUUN3RUVF2rZtm06dOtXbv9FGG2XOnDk1Z4+/yJw5c3LFFVdkzz33TJs2beods3jx4jz99NO57bbbMmjQoCTJ7Nmz8z//8z9p2bJlvdt07do1s2fPrqm5S5cuX1jL7Nmzs+GGGy6x/9NzfmKzzTbLgQcemFGjRtW7Tb9+/XLsscfm3HPPzfbbb59jjjkm1113XV5//fUvrAcAAIDlr9EfpFZVVZVSqVTvQ8CW1P5p22yzTc3Pa621VnbbbbecccYZtcaceOKJNfNUVVVljTXWyHHHHZdvfvObter4PJ9+EFt1dfXnH1QD5lzSsZ166qnp379/Hn744ey+++51ajjzzDNz3HHH5bHHHstTTz2V3//+97n88stz4YUX5sADD2xQXQAAACwfjRq6u3btmsrKylRUVGSDDTao0z9r1qx06dLlc4P3008/ndatW3/ufq655prstttuSZLbbrstl19+ea2AutFGG+X111/PwoUL6z1D/uqrr2ajjTZKknTp0iUPPfTQF/5BoGvXrnnhhReW2D9r1qxsvfXWddpXXXXVnH766bnwwguz44471rvtqquumn333Tf77rtvSqVSzj777Fx00UVCNwAAQBPTqJeX9+jRI126dMnNN99cp2/x4sUZN25cBg4cuEz3ecghh2SDDTbI6NGja9p22mmntG3bNr///e/rjP/ggw9yzz33ZN99903yn0u833nnnUyePLnO2EcffTSHHHJIFi9enAEDBuSZZ56pN3g//vjjmT17dvr3719vjUOHDk2HDh1qPV09Sa6//vr88Y9/rNVWVlaWXXbZJQsXLmzwZfgAAAAsH40ausvKynLOOedk3LhxueSSS/Luu++mVCpl5syZOeaYY9KhQ4d861vfWub7PO+883LPPffkkUceSZK0a9cuZ511Vn7xi1/khhtuyLx581JdXZ3nnnsuhx9+eLbeeusccMABSZLOnTvnxBNPzE9/+tOMHz8+CxcuzIIFCzJ58uScdtppGTx4cFq0aJGtt946w4YNy3HHHZcHH3wwixYtSmVlZaZMmZJTTjklp556ajp37lxvjc2aNcvIkSNz3XXX5YMPPqhpnz9/fs4666w8/PDDWbhwYaqrq/Pyyy/nuuuuS9++fX1PNwAAQBPT6Pd077jjjrn11ltz9dVXZ+DAgVmwYEE6deqUAQMG5Pjjj0/btm2X+T67deuWo48+OiNHjsykSZOyyiqr5MADD6z5yq5rrrkmixYtyvrrr5/BgwfnmGOOSbNm/+/vEyeddFI6d+6cW265JaNGjUrLli3TrVu3/PznP6/1VPPzzz8/v/3tb3PFFVfk9NNPT1lZWXr06JHzzz9/iWe5P9GzZ8/su+++NV9VliQnn3xyVl111Vx66aWpqKhIZWVl1llnnQwcODAnnnjiMv89AQAA8NWUlVyTvNKaP39+XnrppXRu8WralC1s7HIAWAn9fdFm6d279xd+VSfLT1VVVcrLy61LE2Ndmi5r0zStCOvySd7adNNN065duyWOa9TLywEAAGBlJnQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFKRFYxdA8dpuNCAdOnRo7DL4P1VVVSkvL0/v3r3TvHnzxi6HT7E2TZN1abqqqqqS8vLGLgMAmjRnugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAri6eUrserq6iTJwoULPfG3CamqqkqSzJ8/37o0MdamabIuTZe1aZqsS9NkXZoua9M0rQjrsmDBgiT/L3ctSVmpVCotj4JY/v7973/nH//4R2OXAQAAsNLq0qVL1lxzzSX2C90rscWLF+f9999P69at06yZOwkAAACWlerq6nz88cdZddVV06LFki8iF7oBAACgIE5/AgAAQEGEbgAAACiI0L2Cef3113Pcccdl++23z5577pmf//znS3xa3s0335z+/ftnq622yvDhw/P888/X9H388cc5++yzs9tuu2X77bfP9773vbz33nvL6zBWOkuzLr/73e/Sv3//9OnTJ4MHD860adNq+n74wx9ms802y5Zbblnzb5tttlleh7FSaujaXHnlldl0001r/e633HLLvPPOO0m8Z5a1hq7LscceW2dNNt1001x11VVJkiOPPDKbb755rf4DDjhgeR/OSuWRRx7JTjvtlNNOO+1zx1VXV+fSSy/NXnvtlW233Tbf+ta3UlFRUdM/d+7cnHrqqdlpp52yyy675KyzzsrChQuLLn+ltTTrctVVV6Vv377p06dPDj300Dz99NM1/d4zy15D1+aLPuO9Z5athq5L//7963zO9OjRI3feeWeSpG/fvtliiy1q9Z9wwgnL4xBWSq+//nq++93vZvvtt89OO+2UH/7wh/nggw/qHXvvvfdm0KBB6dOnT4YMGZJHH320pu+LPoOanBIrlIMOOqj0k5/8pPTBBx+UZs2aVdpnn31KN9xwQ51xDzzwQGmbbbYplZeXlxYsWFAaO3Zsaeeddy599NFHpVKpVBo9enRpyJAhpX/+85+l9957r3TSSSeVjj/++OV9OCuNhq7LlClTSltvvXXp6aefLlVWVpbGjRtX2nzzzUuzZ88ulUql0g9+8IPSFVdcsbzLX6k1dG2uuOKK0g9+8IMlzuM9s2w1dF0+6/333y/tvPPOpb/97W+lUqlUOuKII0oTJkwoutz/Gtddd11pn332KR122GGlU0899XPH3nzzzaU999yzNGPGjNKHH35YOu+880qDBg0qVVdXl0qlUumkk04qHXfccaV///vfpTfffLN06KGHls4///zlcRgrnaVZl1/96lelPfbYo/TKK6+UPv7449IVV1xR2m677UoffvhhqVTynlnWlmZtvugz3ntm2Vmadfms2bNnl3bcccfS22+/XSqVSqU999yz9MQTTxRR5n+l/fffv/TDH/6wNG/evNIbb7xRGjJkSOnHP/5xnXEvvvhiaYsttij98Y9/LC1cuLB01113lXr16lV64403SqXSF38GNTXOdK9Apk+fnr/97W/5/ve/nw4dOqRLly45+uijc9ttt9UZe9ttt2XIkCHp1atX2rRpkxEjRiRJHnrooSxevDi33357TjzxxKy77rpZbbXVcuqpp+aPf/xj3nrrreV9WCu8pVmXhQsX5vTTT8/WW2+dli1bZtiwYVlllVVSXl6+/Av/L7A0a/N5vGeWra+yLpdddln23nvvdO/efTlU+t+ndevWuf3227Phhht+4djbbrstRx99dDbeeOO0b98+p512WmbOnJm//vWveeeddzJt2rScdtppWWONNdKpU6eceOKJmTBhQhYtWrQcjmTlsjTr0qxZs/z//n//v2yyySZp1apVjj322MydOzevvPLKcqj0v8/SrM3n8Z5Ztr7Kulx44YU59thjs9ZaaxVQ2X+3Dz74IFtssUXOOOOMrLLKKllnnXVy0EEH1boa5xPjx4/P7rvvnt133z2tW7fOAQcckG7duuXuu+9O8vmfQU2R0L0CeeGFF7Leeutl1VVXrWnbfPPNM2vWrMybN6/O2M0226zmdbNmzbLppptm+vTpmT17dj788MNsvvnmNf0bb7xx2rRpkxdeeKH4A1nJLM26DB48ON/4xjdqXn/wwQf56KOP0qlTp5q2J554IgceeGD69OmToUOH1rotgKWzNGuTJC+//HIOO+ywbLXVVtlvv/1qLmPynlm2lnZdPvHaa69l4sSJOfnkk2u133vvvdl3333Tp0+fHH300Zk9e3Zhta/sjjrqqHTo0OELxy1cuDAzZsyo9TnTvn37bLjhhpk+fXpeeumlNG/evNYfRzbffPPMnz8/r776aiG1r8waui5JcvTRR2fgwIE1r998880kyde+9rWaNu+ZZWdp1iZZ8me898yytbTr8oknnngiL730Uo466qha7TfffHP69euXPn365Hvf+17+/e9/L6tS/6t07Ngxo0ePrvUHjTfeeKPWf58+8dkskySbbbZZpk+f/oWfQU2R0L0CmTt3bjp27Fir7ZP/af3svaVz586t9T+0n4x97733Mnfu3CSpM1fHjh3do/olLM26fFqpVMpPfvKT9OrVK9ttt12SpHPnztlwww0zduzYPPLII9lmm21y7LHHWpcvaWnWZp111knnzp1z0UUX5bHHHsuwYcNywgkn5NVXX/WeWca+7Hvmuuuuy8EHH5w11lijpm3jjTfOJptskt/+9rd54IEHssYaa2TEiBGprKwspniSJO+//35KpdLnfs60b98+ZWVltfqSz19jlq3KysqcddZZOeCAA7L++usn8Z5pTJ/3Ge890zSMGTMmxxxzTFq1alXTtummm6Znz5656667cu+992bu3Lk55ZRTGrHKlcf06dNzyy235Dvf+U6dvs/LMl/0GdQULfkbvGmSSkvxtepfNHZp5uLzLe3vctGiRfnhD3+YGTNm5Oabb65p/+53v1tr3JlnnpnJkydn2rRpGTZs2DKp9b9NQ9dm2LBhtX7HRx99dO65557cfffd2W233ZZqLr7Y0v4u586dm7vuuiv33XdfrfZzzjmn1uvzzjsv22+/fZ555pnsuOOOX7VMvsDnraP3S+OaN29evvvd76Z58+Y599xza9q9ZxrP533Gt2nTxnumkb3yyispLy/PNddcU6v96quvrvl5lVVWyciRI7Pvvvtm9uzZ2WCDDZZ3mSuNZ555Jt/5zndyxhlnZKeddqp3zMqUZZzpXoGsscYaNWfcPjF37tyUlZXVOvOTJKuvvnq9Y9dYY42asZ/tf//997Pmmmsu67JXekuzLsl/Lss8/vjj889//jO33nrr594z1Lx586y77rr517/+tazL/q+wtGvzWeutt17+9a9/ec8sY19mXR544IF07do1nTt3/ty527dvn1VXXdW99gVbbbXV0qxZs3rXcc0118waa6yRefPmpaqqqlZfEu+Z5eDdd9/NEUcckQ4dOuRXv/pV2rVrt8Sx3jON59Of8d4zjW/KlCnZYYcdPvf9kvzn/w2S+H+zr+DBBx/Mcccdlx//+Md1LuX/xOdlmS/6DGqKhO4VyBZbbJE33ngj7777bk3b9OnT8/Wvfz2rrLJKnbGfvte0qqoqL774Ynr16pXOnTtn1VVXrdX/yiuvpLKyMltssUXxB7KSWZp1KZVKOe2009KiRYvceOONWX311Wv1jR49On/7299q2iorKzN79uwvDBrUb2nW5pprrsnjjz9eq23mzJnp3Lmz98wytjTr8okHHnggO++8c622efPm5ZxzzqkVFt599928++673jMFa926dTbZZJNa74kPPvggs2fPTs+ePbPpppumVCrV+u/Z9OnT07Fjx3Tt2rUxSv6v8fHHH+f444/P5ptvniuuuCJt2rSp6fOeaTxf9BnvPdP46vucef311zNy5Mhat1/MnDkzSbxnvqRnn302P/jBD3L55ZfnwAMPXOK4LbbYos5zjaZPn55evXp94WdQUyR0r0A++W7HX/ziF5k3b15mzpyZX//61xk+fHiSZMCAATVP/xs+fHgmTpyY8vLyLFiwINdee21atWqVPfbYI82bN88hhxySMWPG5I033sh7772XX/7yl9l77709qfFLWJp1mTRpUmbMmJHLL788rVu3rjVPWVlZ5syZk3PPPTdvvfVWPvroo1xyySVp2bJl+vXrt9yPa2WwNGszd+7cnHvuuXn11Vfz8ccf54Ybbsjs2bNz0EEHec8sY0uzLp946aWXau5J/UT79u3z17/+NRdccEHmzp2b999/P+eee266d++ePn36LLfj+W/x1ltvZcCAATXfgzp8+PDcfPPNmTlzZubNm5dLLrmk5rvu11hjjfTv3z+XXXZZ3n333bz55pu5+uqrM3To0LRo4c62Zemz63LDDTekZcuWOf/889OsWe3/zfOeWb4+vTZf9BnvPbP8fPY9k/znDyAzZsyo8zmz5ppr5sEHH8zPfvazzJ8/P2+99VZGjx6dPffcs9ZDcGmYxYsX5yc/+Um+//3vZ5dddqnT/81vfjP33ntvkuSQQw7Jn/70p/zxj3/Mxx9/nNtvvz3/+Mc/csABByT5/M+gpsi7eAVzxRVX5Kc//Wl23nnntG/fPocddljN07BnzZqV+fPnJ0l22223nH766Tn11FPz73//O1tuuWWuu+66mr94f+9738tHH32UwYMHZ/Hixdlzzz3r3OdFwzV0XSZMmJDXX3+95sFpnxg8eHAuuOCCXHjhhbnooosyZMiQzJs3Lz179sxNN930hZc6sWQNXZszzjgjyX/u5Z47d26+/vWv58Ybb8w666yTxHtmWWvounzi7bffrvcPHFdffXVGjRqV/v37p7KyMjvuuGOuu+66OmGDhvnkf1YWL16cJJk2bVqS/5xdWLRoUWbNmlVzxuewww7L22+/nSOPPDIfffRRtt9++1x11VU1c5133nkZOXJk9tprr7Rs2TL7779/TjvttOV8RCuHpVmXCRMm5I033kivXr1qzfGd73wnJ554ovfMMrY0a/NFn/HeM8vO0qxL8p8/vC9evLjO50ybNm1y/fXX52c/+1nN81323nvv/OhHP1oeh7HSKS8vz8yZM3PBBRfkggsuqNU3ZcqUVFRU5P3330+SdOvWLZdccklGjx6d119/PV//+tczduzYrL322km++DOoqSkrrUh3oAMAAMAKxJ81AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFadHYBQAAK75HH300t9xyS/7617/mww8/zFprrZVevXrlyCOPzDbbbNPY5QFAo3GmGwD4Si677LIcd9xx6dy5c8aOHZspU6bkwgsvzPz583PkkUfmtttua5S6rrjiivzwhz9slH0DwCec6QYAvrSHH3441157bc4+++wcfvjhNe3rr79+dtppp5xyyim55JJLMmDAgKy66qrLtba//OUv6dSp03LdJwB8ljPdAMCXdsMNN6RLly75xje+UaevrKws5513Xh544IGsuuqqKZVKuf7669O/f/9sscUW2W677XLyySfntddeq9nmyiuvTPfu3fPxxx/Xmqt79+655JJLkiRPPvlkunfvnieffDJnnHFGttlmm2y//fb5wQ9+kPnz5ydJ+vbtmz/96U+58847a8YCQGMQugGAL2Xx4sV59tlns/vuu6esrKzeMauttlo6duyY5D+Xe1922WX5xje+kcmTJ+eaa67Ja6+9lm9+85v56KOPlnr/P/vZz7LjjjvmzjvvzBlnnJGJEyfmlltuSZLcfvvtWWONNTJw4MA8+uij6dOnz5c/UAD4CoRuAOBLee+991JZWZn11lvvC8dWVlbmpptuytChQ/PNb34zXbp0yTbbbJNRo0bljTfeyLRp05Z6/zvssEOGDh2azp0755BDDsn666+f5557LkmyxhprpFmzZmnTpk3WXnvttGrVaqnnB4BlQegGAL6UT85ul0qlLxz76quv5qOPPqrzJPPNNtssrVu3zosvvrjU++/Vq1et12ussUbef//9pZ4HAIokdAMAX8rqq6+etm3b1rone0nmzZuXJOnQoUOt9mbNmqVdu3Zf6vLydu3a1Xq9pEvcAaAxCd0AwJfSvHnzbLvttnnwwQezePHiese8//77GTduXM193R9++GGt/urq6nz00Uc1Yby+s+dfJpADQFMhdAMAX9qxxx6bN998M9dcc02dvlKplPPOOy+jR49Ohw4d0qFDhzz11FO1xjz//POprKzMlltumeT/nQl/9913a8b89a9//dL1NeTSdwAoku/pBgC+tB133DEnn3xyrrzyyrz++us59NBD06lTp8yZMyfXX399nnzyyfzyl7/Muuuum2OOOSbXXnttunXrlt122y1z5szJ+eefn4022ij9+vVLkvTs2TNJMmbMmIwYMSKvv/56rrzyyrRv336pa+vYsWNefPHFvPTSS1l77bWz1lprLdNjB4CGcKYbAPhKTjrppNx44415//33c+KJJ2bAgAH58Y9/nLXWWit33HFHTaA+8cQTc+qpp+amm27KgAEDctppp2XzzTfPTTfdVPN08T59+uS0007LQw89lP333z+XXXZZzjrrrLRp02ap6zr++OPz5ptvZvjw4XXOsAPA8lJWct0VAAAAFMKZbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAU5P8PkJ0svqDcCGEAAAAASUVORK5CYII=\n" | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "\n", | |
| "--- Visualization 2: Top 10 Most Common Military Unit ---\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stderr", | |
| "text": [ | |
| "/tmp/ipython-input-2836028133.py:144: FutureWarning: \n", | |
| "\n", | |
| "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `y` variable to `hue` and set `legend=False` for the same effect.\n", | |
| "\n", | |
| " sns.barplot(x=top_occupations.values, y=top_occupations.index, orient='h', palette='magma')\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 1000x800 with 1 Axes>" | |
| ], | |
| "image/png": "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S0vTtGnT7CHtoYceykHVrnPkyBHt3r07W21TUlLsl4pnx5NPPqmqVatKujp+pk2bdjMl5oprx9nJkyezDN6HDx+2/5yd8eHp6Wl/7FlCQoLefffdTNcSAIDCitANAMBNslqtatKkif39vxeKSk5OdrjHt0WLFpn2k36vcLpt27bZL/EuXry4qlevnlslS7p633CtWrUkSQcOHHBYLO3HH3+0/9y8efObmmUvX768/dFl6YuP1alTJ8Nl9AXFtbPcffr00f79+zO85s+fb29z7YJrN+Lu7q4xY8bY38+fP99lj9cKCAiw304QHx+vJUuWZGiTnJzs8FmvXbPgerp3767atWtLklasWJHps+sBoLDi8nIAAHJgwIAB2rBhg9LS0jRv3jyVLl1abdu21blz5/TBBx/Y7+P29fXNcuXupUuXqnbt2goMDNSRI0cUFhZm39euXbsb3rN7/vx5h2dEHzhwwP5zXFycfvjhB/v79Ed2Pf744xo9erSuXLmicePG6YUXXtDFixf13nvv2duGhoY692Vco3379vrf//5nX9k9ty4t37t3r2bMmJHlfm9v7wwrf+eEzWazP5tbcnxE2LUaNWokb29vnT59WrGxsfr111/tf9i4kRYtWuihhx7S+vXrlZqaqtGjR2vJkiWZLnJnUvHixfXUU0/Zv99JkybpzJkzevDBB+Xp6anffvtNH374of2PAqVLl1b//v2z1bfFYtFrr72mPn36yGaz6cyZM8Y+BwDkN4RuAABy4L777tOoUaM0ceJEpaamasqUKRmerV2pUiWFh4dnGaK6deumcePGady4cQ7bvb299dJLL92whv3792vAgAGZ7tuyZYu2bNlif//NN9/orrvuUo8ePRQdHa3vv/9eq1at0qpVqxyO69+/vxo2bHjDc2elXbt2evvtt+3vcyt079mzR3v27Mlyf61atXI1dG/fvt1+24CPj0+Wi5y5ubmpQ4cOWrBggaSrs90jRozI9nlGjhypjRs3KikpST///LMWLFjgcO93Xhk8eLBOnDihyMhI/fPPPwoPD1d4eHiGdhUrVtT06dNVpkyZbPfdsGFDderUKcNYA4DCjsvLAQDIoccff1xLly5V165dVaFCBRUtWlS33Xab6tSpo6FDhyoyMtL+LOfM9OvXT5MnT5afn5+KFSum0qVL6+GHH9aiRYuyvA88p9zc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unXVrl07ffjhh0pJSXFo1717d6WlpTnUt2zZMoe6AwMD9eWXX2b6HQAAAABAQeXy0B0bG6uePXuqfPny+vrrr7V79259+OGH2r9/v3r16qWkpCRJ0ubNm/X444+rbt26WrNmjWJiYjRr1iwdPHhQvXr1Unx8vEO/y5cv1969e7V37159/fXXKlKkiJ577jmlpqbmuL+dO3fq1Vdf1TvvvKOoqKgsP9v777+vSZMmqX///tq+fbs2btyofv36afLkyZo2bVq2v6OyZctqxYoVGbavXr1aJUuWzPSYJUuWqHPnzlq2bJl9W1hYmP0zvPHGGypXrpz9/d69e9WoUSN72507dzrs27t3r/bs2eNwjhkzZtj3xcTE6O2339aXX36p//73vw7tTpw4oUWLFmX78wIAAABAYeHy0P3666+rRYsWGj58uMqVKyer1So/Pz/NnDlTAQEB+uuvv5SWlqZx48apT58+euaZZ3T77bfLYrGoevXqmj59uhITEzVr1qwsz1G2bFm9+uqr+u2333T48OEc91ekSBG1atVKnTp10vr16zNtc/jwYX300UeaNGmS2rZtK3d3d3l4eKhTp056++23ZbPZsv0dNWrUSD/99JPi4uIctkdFRal169YZ2u/fv1+//fabRo0apVOnTmUIyya4ubkpICBAvXv3zvCdDB06VO+//77OnTtnvA4AAAAAyE9cGrr//vtv7d69W48//niGfZ6enpo8ebIqV66sn3/+WUePHlXfvn0ztHN3d9djjz2mtWvXXvdc6TPcbm5uudKfJF25ciXLfdHR0apYsaIeeOCBDPsCAwP1wgsv3LD/dCVKlFDLli21cuVK+7bjx4/r6NGjuu+++zK0X7JkiQIDA1W2bFm1b99eX331VbbPlVOZfSfNmzdXo0aNNHXq1DyrAwAAAADyA5eG7qNHj0qSqlWrdsN2JUqUkI+PT6b77777bh07dizL2eMzZ87onXfeUe3atVW1atUc95ecnKxvv/1Wa9asUZcuXbKsuWrVqtf9XM4ICgpyuMR85cqV6tixo6xWa4baVqxYoa5du0qSunbtqtWrVyshIcGp8zVs2DDDPd2TJk3Ksn1KSop27typRYsWZfqdjBw5UitWrNC+ffucqgMAAAAACrIirjy5xWKRpAyLbGUmNTVVNpvNfsy1MtvetWtX+7ZSpUqpSZMmmjlzptzc3HLcX0pKiipVqqQ33nhDbdu2zfKzZedzZVerVq00atQoHTp0SNWrV1dUVJTCwsJ08OBBh3br16+Xm5ubWrRoIUlq0qSJSpYsqdWrV6tHjx7ZPt/OnTtVrFix67YZNGiQ/TtJTU1VmTJl9Mwzz+iJJ57I0LZixYrq37+/Xn/9de7vBgAAAHDLcOlMd+XKlSVJv/3223XbVatWTcnJyfaZ8X87fPiwqlat6hCUr134bNOmTZoyZYp9Zjun/Q0YMEBFixZVx44ds6y5atWqOnTokFP3bl9P0aJF1blzZ3399dc6ePCg/vnnH9WtWzdDuyVLlujChQtq1KiR6tevrwYNGuivv/7KdPXznLp2IbVx48YpLS1NwcHBWbYfMGCAzp49a6QWAAAAAMiPXBq6S5curcaNG+uTTz7JsC8xMVHdu3fXrl27VKtWLVWtWlXz58/P0C4lJUWLFy++bgD+t5z2N2jQIP3zzz/66KOPsmzTtm1bnTlzJtPVzTdt2qRHHnnE4dFa2dG1a1etXbtWq1atyvQS7qNHj2rbtm2aMWOGIiMj7a+5c+dq165dOnz4sFPnc8YjjzyiypUra/LkyVm2cXd312uvvaYpU6Y4PJYNAAAAAAorl69ePmrUKMXExOill17SqVOnlJaWptjYWPXv31/FixdX3bp1ZbFYNH78eC1evFjvvvuuzp49K5vNpkOHDumpp56Sl5eXnn766WyfM6f9FS9eXOPGjdPs2bN14MCBTNtUqlRJgwYN0pgxY7RkyRIlJSUpMTFRUVFRGjp0qLp27aoiRZy7uj99ZjsyMjLT0L106VLVrFlTDzzwgKpUqWJ/NWvWTHXq1DE6w2yxWPT6669r5cqV2rhxY5btAgMD5e/v7/D8cAAAAAAorFweumvVqqXFixcrLS1N3bp1U/369fXiiy/q/vvv18cff6yiRYtKkpo2barPP/9cBw8eVMeOHVWvXj0999xzCggI0IIFC1SiRAmnzpvT/lq2bKmHHnpIo0aNsq+M/m+DBw/WhAkTtHjxYjVt2lStW7fWwoUL9c4776hPnz5O1Zuua9euKlu2rKpUqeKwPS0tTREREerevXumx/Xo0UORkZFZ1vpvmS2k5u/vr23btmV5TM2aNfXkk09q3Lhxunz5cpbtRo0apQsXLmSrDgAAAAAoyCy23LrpGDAgISFBsbGxKr5sldz+5jnfAAAAwK0mYUAfBQQEZHhyk6ulZxU/Pz95eHhk2c7lM90AAAAAABRWhG4AAAAAAAwhdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGAIoRsAAAAAAEMI3QAAAAAAGELoBgAAAADAEEI3AAAAAACGELoBAAAAADCE0A0AAAAAgCGEbgAAAAAADCF0AwAAAABgCKEbAAAAAABDCN0AAAAAABhC6AYAAAAAwJAiri4AyI7KI16Ul5eXq8tAIZaamqqYmBgFBATIarW6uhwUUowz5BXGGvIC4wx5IX2cFWTMdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGAIoRsAAAAAAEMI3QAAAAAAGELoBgAAAADAEEI3AAAAAACGWGw2m83VRQBZSUhIUGxsrMr9uErul865uhwAAAAAeexEmz4KCAiQ1Wp1dSkO0rOKn5+fPDw8smzHTDcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGAIoRsAAAAAAEMI3QAAAAAAGELoBgAAAADAEEI3AAAAAACGELoBAAAAADCE0A0AAAAAgCGEbgAAAAAADCF0AwAAAABgCKEbAAAAAABDCN0AAAAAABhC6AYAAAAAwBBCNwAAAAAAhhC6AQAAAAAwhNANAAAAAIAhhG4AAAAAAAwhdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQujORYGBgapdu7b8/f0dXg899JAkadmyZWrevPl1+/jrr780YcIEPfjgg6pbt66aNWuml19+WYcPH77huQIDAzV58mRdvnxZCQkJatCggb7++utMzzNq1Cj17dtXknTlyhVNmzZN7du3V0BAgOrXr6/Q0FDt3LkzyzpDQ0Pl6+uro0ePZti3fv16+fr6Kjw8XJJ07Ngx+fr66tChQ9n+HgAAAACgMCB057LRo0dr7969Dq/169dn69i4uDj17NlT8fHxmj9/vn766SctX75cFSpUUM+ePfXLL79kea6ffvpJs2bN0ubNm/XWW2/Jw8NDnTp1UkRERIbzJCUlac2aNQoJCZEkvfnmm/r22281bdo07dq1Sxs3blSzZs3Ur1+/TEN1urJly2rFihUZtq9YsUJlypTJ1mcGAAAAgMKM0J2PTJ06VT4+PnrnnXdUqVIlSZK3t7eGDRumBx54QBMmTMjyWIvFonvuuUcDBgywh/yQkBBt27ZNJ0+edGi7bt06Wa1WtWvXTpK0efNmde7cWb6+vrJarfL09NTAgQMVFhYmd3f3LM/ZunXrDKE7Pj5e27dvV+PGjW/qOwAAAACAwoTQnU+kpaVp/fr1Cg0NzXR/3759FRMTo7i4uOv2c+XKFfvP9erVU40aNRQZGenQJjIyUl26dFGxYsUkSdWqVVNERIRiY2Md2gUFBcnHxyfLczVo0ECXLl3Svn377Nuio6PVpEkTlShR4rp1AgAAAMCtgNCdT5w9e1bx8fGqWrVqpvurVasmSfrzzz8z3Z+WlqbY2FjNmTNHXbp0sW/v0aOHQ+iOi4vT1q1b7ZeWS9KYMWNUsmRJBQcHKzAwUMOHD1dUVJSSk5OvW7PValXnzp0dZrtXrFihoKCgG31cAAAAALglELpzWVhYWIaF1AYMGJDt41NSUjLdbrPZJF29jDyrc4WGhqpTp0565ZVX7G26du2q48ePa9euXZKuznL7+fmpVq1a9jZ33nmnFi5cqJUrV+rJJ59UUlKSRo8erc6dO99wZj04OFgrV65Uamqqzp49q19++UWtWrXK9ucFAAAAgMKM0J3LMltIbc6cOTc8rmzZsipVqpR9he9/S1+9PH3G+9/nmjVrlq5cuaKuXbuqSJEi9jalS5dW27Zt7QuqRUREOMxyX6tGjRrq27evwsPDtX79el25ckXz5s27bt1+fn4qXbq0tm3bptWrV6tt27bXvQ8cAAAAAG4lhO58wmKxqF27dvr888/ts9rX+uKLL9SkSROVLVs20+NbtGihNm3aaMyYMRmODwkJ0dq1axUTE6NTp045XH5+6tQpjR8/XvHx8Q7HeHt7q1atWkpMTLxh7UFBQVq7dq1Wr17t0DcAAAAA3OoI3fnICy+8oHPnzumZZ57RkSNHJElnzpxRWFiYvv/+e40bN+66x7/22mv69ddftWjRIoftTZs2lZeXlyZOnKj27dvL09PTvq9MmTLasmWLhg8frt9//11paWlKTExUVFSUtm7dqsDAwBvWHRQUpE2bNunkyZNq1KjRTXxyAAAAACicity4CXLTmTNn5O/v77Dt/vvv15w5c+Tt7a0lS5Zo+vTp6tu3r86dOycvLy81b95cX331lSpXrnzdvsuVK6eXXnpJ77zzjh588EH7yuNubm7q3r27wsPD9eqrrzoc4+7urgULFig8PFxPP/20zp49Kzc3N/n5+WnKlClq2bLlDT+Tj4+PqlSponvvvdfhnvOb/R4AAAAAoLCw2DK7lhnIJxISEhQbG6tyP66S+6Vzri4HAAAAQB470aaPAgICZLVaXV2Kg/Ss4ufnJw8PjyzbcXk5AAAAAACGELoBAAAAADCE0A0AAAAAgCGEbgAAAAAADCF0AwAAAABgCKEbAAAAAABDCN0AAAAAABhC6AYAAAAAwBBCNwAAAAAAhhC6AQAAAAAwhNANAAAAAIAhhG4AAAAAAAwhdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGBIEVcXAGRHmcdflJeXl6vLQCGWmpqqmJgYBQQEyGq1urocFFKMM+QVxhryAuMMeSE1NVUnYmJcXUaOMNMNAAAAAIAhhG4AAAAAAAwhdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGAIoRsAAAAAAEMI3QAAAAAAGGKx2Ww2VxcBZCUhIUGxsbG68+QWFUu+6OpyAAAAAOSxw1U6KCAgQFar1dWlOEjPKn5+fvLw8MiyHTPdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGAIoRsAAAAAAEMI3QAAAAAAGELoBgAAAADAEEI3AAAAAACGELoBAAAAADCE0A0AAAAAgCGEbgAAAAAADCF0AwAAAABgCKEbAAAAAABDCN0AAAAAABhC6AYAAAAAwBBCNwAAAAAAhhC6AQAAAAAwhNANAAAAAIAhhG4AAAAAAAwhdAMAAAAAYEgRVxeAvHXlyhXNnDlTK1euVFxcnCwWi+rUqaMXXnhBDRs21IgRI7R8+XIVKZJxaHTv3l0TJkzQsmXLNHLkSLm7u0uSihYtqnvuuUdBQUF67LHHZLVaJUnbt29X37599dNPP6lYsWKSpA0bNmjOnDk6cOCAEhISVKFCBYWEhGjAgAGyWCx590UAAAAAQB4gdN9i3nzzTe3atUvTpk1TjRo1lJiYqAULFqhfv35auXKlJKlDhw6aOnXqdfspV66cNm/eLEk6e/as/ve//+mtt97S999/r48++sgevK8VExOjIUOGaOLEiWrbtq3c3d21Z88evfDCC7LZbHr22Wdz/wMDAAAAgAsRum8xmzdvVo8ePeTr6ytJ8vT01MCBA1WxYkX7zLWzypQpowcffFB16tRRp06dFBkZqR49emRo9+OPP+quu+5Sly5d7NsaNmyoadOmMcsNAAAAoFDinu5bTLVq1RQREaHY2FiH7UFBQfLx8clR397e3urcubPWrFmT5bkPHz6sJUuWKDk52b79vvvuU4MGDXJ0bgAAAADIjwjdt5gxY8aoZMmSCg4OVmBgoIYPH66oqCiHELxmzRr5+/tneP3888837L9atWo6duxYpvvatm2rfv36acKECWrSpImeeuopzZ49W8ePH8+1zwcAAAAA+Qmh+xZz5513auHChVq5cqWefPJJJSUlafTo0ercubPi4uIkXb2ne+/evRletWvXvmH/qampmd7PLUkWi0XDhw/X5s2bNXHiRFWtWlULFy5Uu3btFBkZmZsfEwAAAADyBe7pvkXVqFFDNWrUUN++fXX69GmFhIRo3rx5Oe73l19+0d13333dNqVKlVKnTp3UqVMn2Ww2jR07Vm+99ZaCg4NzfH4AAAAAyE+Y6b6FnDp1SuPHj1d8fLzDdm9vb9WqVUuJiYk56v/QoUNavXq1Hn744Uz3z507V99//73DNovFohYtWigpKUk2my1H5wcAAACA/IbQfQspU6aMtmzZouHDh+v3339XWlqaEhMTFRUVpa1btyowMPCm+r1y5Yo2btyo5557Tm3btlW7du0ybZeQkKBRo0Zpw4YNSkpKUlpamvbv36/Zs2crMDCQFcwBAAAAFDpcXn4LcXd314IFCxQeHq6nn35aZ8+elZubm/z8/DRlyhS1bNlSK1eu1Jo1axQdHZ3h+PLly2v9+vWSpDNnzsjf31/S1dnqKlWqqE+fPgoNDc3y/EOGDFGpUqU0depUHT16VMnJySpfvrw6duyoQYMGmfnQAAAAAOBCFhvX9CIfS0hIUGxsrO48uUXFki+6uhwAAAAAeexwlQ4KCAjIcsFmV0nPKn5+fvLw8MiyHZeXAwAAAABgCKEbAAAAAABDCN0AAAAAABhC6AYAAAAAwBBCNwAAAAAAhhC6AQAAAAAwhNANAAAAAIAhhG4AAAAAAAwhdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGAIoRsAAAAAAEMI3QAAAAAAGELoBgAAAADAEEI3AAAAAACGELoBAAAAADCkiKsLALLDs/WT8vLycnUZKMRSU1MVExOjgIAAWa1WV5eDQopxhrzCWENeYJwhL6SmpkoxMa4uI0eY6QYAAAAAwBBCNwAAAAAAhhC6AQAAAAAwhNANAAAAAIAhhG4AAAAAAAwhdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMKeLqAoDsSPx9jWyWJFeXgULunqLS5Z9/cXUZKOQYZ8grjDXkBcYZ8sa9ri4gR5jpBgAAAADAEEI3AAAAAACGELoBAAAAADCE0A0AAAAAgCGEbgAAAAAADCF0AwAAAABgCKEbAAAAAABDCN0AAAAAABhC6AYAAAAAwBBCNwAAAAAAhhC6AQAAAAAwhNANAAAAAIAhhG4AAAAAAAwhdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGAIoRsAAAAAAEOKuLqAwu7KlSuaOXOmVq5cqbi4OFksFtWpU0cvvPCCGjZsKEkaMWKEli9friJFMv46unfvrgkTJmjZsmUaOXKk3N3d7fu8vb3Vvn17DRkyRB4eHvL393c4r5ubm6xWqyTpzjvv1Nq1axUeHq6NGzdq8eLFkqTQ0FD9+OOPio6OVqVKlRzOvX79eg0ePFiDBw/WkCFDdOzYMbVp00arVq1S9erVM/28GzZs0Jw5c3TgwAElJCSoQoUKCgkJ0YABA2SxWLR9+3b17dvX4XOkK1KkiPbs2ePkNwwAAAAA+Reh27A333xTu3bt0rRp01SjRg0lJiZqwYIF6tevn1auXGkPuh06dNDUqVOv21e5cuW0efNmSZLNZtOhQ4c0dOhQXb58Wa+//rr27t1rbxsaGqp69epp2LBhN6yxbNmyWrFihQYNGuSwfcWKFSpTpky2P2tMTIyGDBmiiRMnqm3btnJ3d9eePXv0wgsvyGaz6dlnn7W33blzp4oVK5btvgEAAACgIOLycsM2b96szp07y9fXV1arVZ6enho4cKDCwsIyne3NLovFoho1amjAgAFav359jmps3bq1VqxY4bAtPj5e27dvV+PGjbPdz48//qi77rpLXbp0UYkSJWS1WtWwYUNNmzZNjRo1ylGNAAAAAFAQEboNq1atmiIiIhQbG+uwPSgoSD4+PjnuPy0tzX4J+c1q0KCBLl26pH379tm3RUdHq0mTJipRokS2+6lWrZoOHz6sJUuWKDk52b79vvvuU4MGDXJUIwAAAAAURIRuw8aMGaOSJUsqODhYgYGBGj58uKKiohxCqSStWbNG/v7+GV4///xzpv3abDYdPHhQ//3vf9WxY8cc1Wi1WtW5c2eH2e4VK1YoKCjIqX7atm2rfv36acKECWrSpImeeuopzZ49W8ePH8/QtmHDhhk+66RJk3L0OQAAAAAgv+GebsPuvPNOLVy4UAcPHtSWLVu0Y8cOjR49Wh988IE+++wz+2x3du7pPnPmjMNiaRUqVFDHjh0z3It9M4KDgzVgwAC98sorunDhgn755Re1atVK0dHR2e7DYrFo+PDheuaZZ7R582bt2LFDCxcu1AcffKCJEycqODjY3pZ7ugEAAADcCgjdeaRGjRqqUaOG+vbtq9OnTyskJETz5s3TK6+8ku0+rl1ILbf5+fmpdOnS2rZtm/744w/7Qmg3o1SpUurUqZM6deokm82msWPH6q233nII3QAAAABwK+DycoNOnTql8ePHKz4+3mG7t7e3atWqpcTERBdVlrmgoCCtXbtWq1evVpcuXZw+fu7cufr+++8dtlksFrVo0UJJSUmy2Wy5VCkAAAAAFAyEboPKlCmjLVu2aPjw4fr999+VlpamxMRERUVFaevWrQoMDHR1iQ6CgoK0adMmnTx58qZWG09ISNCoUaO0YcMGJSUlKS0tTfv379fs2bMVGBgoi8VioGoAAAAAyL+4vNwgd3d3LViwQOHh4Xr66ad19uxZubm5yc/PT1OmTFHLli3tbdesWZPp/dPly5fP8SPBssvHx0dVqlTRvffee1MBeciQISpVqpSmTp2qo0ePKjk5WeXLl8/0vvOGDRtm2secOXN0//3331T9AAAAAJDfWGxc84t8LCEhQbGxsapU5HcVtyS5uhwAAAAAeey3K/cqICAgx49Kzm3pWcXPz08eHh5ZtuPycgAAAAAADCF0AwAAAABgCKEbAAAAAABDCN0AAAAAABhC6AYAAAAAwBBCNwAAAAAAhhC6AQAAAAAwhNANAAAAAIAhhG4AAAAAAAwhdAMAAAAAYAihGwAAAAAAQwjdAAAAAAAYQugGAAAAAMAQQjcAAAAAAIYQugEAAAAAMITQDQAAAACAIYRuAAAAAAAMIXQDAAAAAGAIoRsAAAAAAEMI3QAAAAAAGELoBgAAAADAEEI3AAAAAACGFHF1AUB2lLi7g7y8vFxdBgqx1NRUxcTEKCAgQFar1dXloJBinCGvMNaQFxhnyAupqalSTIyry8gRZroBAAAAADCE0A0AAAAAgCGEbgAAAAAADCF0AwAAAABgCKEbAAAAAABDWL0c+VpaWpokKSkpiVUxYVRqaqokKSEhgbEGYxhnyCuMNeQFxhnyQn4eZ4mJiZL+f2bJisVms9nyoiDgZvz999/6448/XF0GAAAAAGSqatWqKlu2bJb7Cd3I11JSUnThwgUVK1ZMbm7cDQEAAAAgf0hLS9M///yjUqVKqUiRrC8iJ3QDAAAAAGAIU4cAAAAAABhC6AYAAAAAwBBCN1zu+PHjeuaZZ9SkSRM9+OCDeuedd7JcAXD+/Plq3769GjRooF69emnfvn15XC0KMmfG2pdffqn27durfv366tq1q6Kjo/O4WhRUzoyzdHFxcapfv77Cw8PzqEoUdM6Ms0OHDik0NFT16tVT69at9emnn+ZtsSjQsjvW0tLSNG3aNAUGBqp+/frq0qWLVq1a5YKKUVBt3LhRzZo109ChQ6/bLi0tTVOnTlWbNm3UqFEjPf300zp69GgeVXlzCN1wuSFDhsjHx0fR0dH65JNPFB0drXnz5mVo9+233yo8PFxvv/22tmzZogcffFDPPfecEhISXFA1CqLsjrW1a9dqypQpmjRpkn788Uc9/vjjevHFF/P9P+jIH7I7zq4VFhaW7x6Dgvwtu+MsKSlJ/fv3V+vWrbVt2zaFh4frq6++0qFDh1xQNQqi7I61L7/8UkuWLNHcuXO1c+dOvfTSSxo+fLh+/fVXF1SNgmbOnDkKCwtTlSpVbtj2888/14oVKzR79mx99913qlq1qv7zn/8oPy9VRuiGS+3du1e//vqrhg0bJi8vL1WtWlVPPvmkFi1alKHtokWL1L17d9WrV0/FixdX//79JUnfffddXpeNAsiZsZaUlKSXXnpJ9913n4oWLaqQkBDddtttiomJyfvCUaA4M87SbdiwQQcPHtQDDzyQd4WiQHNmnK1evVqenp7q37+/SpQoobp16yoqKkrVq1d3QeUoaJwZaz///LPuu+8+3X333bJarXrwwQd1++23a//+/S6oHAVNsWLF9NVXX2UrdC9atEhPPvmkqlevLk9PTw0dOlSHDh3S//73vzyo9OYQuuFSP//8sypWrKhSpUrZt9WuXVuHDx9WfHx8hrb33nuv/b2bm5v8/Py0d+/ePKsXBZczY61r167q3bu3/f3Fixd1+fJl+fj45Fm9KJicGWfS1T/wvP766xo3btx1HzUCXMuZcbZr1y7VrFlTI0eOVMOGDdWhQwd9/fXXeV0yCihnxtoDDzygH3/8UbGxsUpOTtY333yjxMRENW7cOK/LRgHUt29feXl53bBdUlKSDh486JAJPD09VaVKlXydCQjdcKnz58+rZMmSDtvS/2E/d+5chrbX/qOf3vbf7YDMODPWrmWz2TR69GjVq1eP/zjghpwdZx9++KECAgJ0//3350l9KBycGWenTp3SN998o2bNmmnjxo169tln9eqrr+qXX37Js3pRcDkz1tq1a6dHH31UwcHB8vf318svv6zJkyerQoUKeVYvCr8LFy7IZrMVuEzAn9Xhcs7cf5Gf79VA/ufs+Lly5YpGjBihgwcPav78+YaqQmGT3XF28OBBLVmyRCtWrDBcEQqj7I4zm82m2rVrq0uXLpKkbt26aeHChVqzZo3DTBGQleyOtcjISEVGRmrJkiXy9fXV1q1b9fLLL6tChQqqW7eu4SpxqylomYCZbrhUmTJldP78eYdt58+fl8ViUZkyZRy2ly5dOtO2/24HZMaZsSZdvXzp2Wef1YkTJ/T555+rXLlyeVQpCrLsjjObzabx48dryJAh8vb2zuMqUdA58++Zt7d3hks2K1asqNOnT5suE4WAM2Pts88+06OPPqq6deuqWLFieuCBB3T//fdzOwNy1e233y43N7dMx2XZsmVdU1Q2ELrhUnXq1NHJkyd19uxZ+7a9e/eqRo0auu222zK0/fnnn+3vU1NT9csvv6hevXp5Vi8K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\n" | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "...alright. SIGH. There are problems. But it's amazing how far you can get with synthetic data." | |
| ], | |
| "metadata": { | |
| "id": "9JgQYp4ksd0J" | |
| } | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment