{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# News Text Analytics: From Dataset Patterns to Responsible Decisions\n",
    "**Gareth Grant | Portfolio and learning notebook**\n",
    "\n",
    "A step-by-step investigation of 44,898 supplied news records. We compare simple classifiers, investigate shortcut learning, and explore topics. Each code cell has one learning objective and a space for comments.\n",
    "\n",
    "**Question:** How well can article language distinguish the labels in these two files, and what limits its usefulness outside this dataset?\n",
    "\n",
    "The labels are inherited from `Fake.csv` (0) and `True.csv` (1). They are not independently verified in this project. A model score is not a probability that a claim is true.\n",
    "\n",
    "**Route:** setup \u2192 quality audit \u2192 development/test split \u2192 exploration \u2192 baseline \u2192 model comparison \u2192 independent test \u2192 explanations \u2192 topics \u2192 practical applications.\n",
    "\n",
    "**Run:** Python 3.11+ with pandas, numpy, scipy, scikit-learn, matplotlib and IPython. Put both CSV files beside this notebook (or in `data/`), change `DATA_DIR` below, then run cells in order. No NLTK downloads, Colab uploads, or installation commands are needed. The published outputs were executed on the supplied files; rerunning replaces them. Full training may take several minutes.\n",
    "\n",
    "**Publication:** Do not redistribute article text without checking rights and dataset terms. The HTML companion suppresses raw article excerpts. Keep full datasets outside your public website repository."
   ],
   "id": "cell-000"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. Import tools\n",
    "\n",
    "Each tool has a clear purpose: tables, numeric arrays, reproducible models, metrics and charts.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-001"
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pathlib import Path\n",
    "import re, json, platform, hashlib\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import sklearn\n",
    "from IPython.display import display, Markdown\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.naive_bayes import MultinomialNB\n",
    "from sklearn.dummy import DummyClassifier\n",
    "from sklearn.decomposition import LatentDirichletAllocation\n",
    "from sklearn.metrics import accuracy_score, balanced_accuracy_score, f1_score, precision_score, recall_score, roc_auc_score, classification_report, ConfusionMatrixDisplay, RocCurveDisplay, brier_score_loss\n",
    "from sklearn.calibration import CalibrationDisplay"
   ],
   "id": "cell-002"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. Configure paths and reproducibility\n",
    "\n",
    "This is the only path you should normally need to edit. The random seed makes splits repeatable.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-003"
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "DATA_DIR = Path('.')  # Change to Path('data') if needed.\n",
    "SEED = 42\n",
    "LABELS = {0: 'Fake-file label', 1: 'True-file label'}\n",
    "plt.rcParams.update({'figure.figsize': (8, 4), 'axes.spines.top': False, 'axes.spines.right': False})"
   ],
   "id": "cell-004"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. Record the environment\n",
    "\n",
    "Versions matter when reproducing numeric results.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-005"
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>version</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>Python</th>\n      <td>3.12.14</td>\n    </tr>\n    <tr>\n      <th>pandas</th>\n      <td>2.2.3</td>\n    </tr>\n    <tr>\n      <th>numpy</th>\n      <td>2.3.5</td>\n    </tr>\n    <tr>\n      <th>scikit-learn</th>\n      <td>1.8.0</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "              version\nPython        3.12.14\npandas          2.2.3\nnumpy           2.3.5\nscikit-learn    1.8.0"
     },
     "metadata": {}
    }
   ],
   "source": [
    "display(pd.Series({'Python': platform.python_version(), 'pandas': pd.__version__, 'numpy': np.__version__, 'scikit-learn': sklearn.__version__}, name='version').to_frame())"
   ],
   "id": "cell-006"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. Load the fake-labelled file\n",
    "\n",
    "Read one file at a time so failures are easy to locate.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-007"
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Fake rows: 23481\n"
    }
   ],
   "source": [
    "fake = pd.read_csv(DATA_DIR / 'Fake.csv')\n",
    "print('Fake rows:', len(fake))"
   ],
   "id": "cell-008"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5. Load the true-labelled file\n",
    "\n",
    "The labels describe the source files, not the outcome of our own fact-check.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-009"
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "True rows: 21417\n"
    }
   ],
   "source": [
    "true = pd.read_csv(DATA_DIR / 'True.csv')\n",
    "print('True rows:', len(true))"
   ],
   "id": "cell-010"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6. Validate the schema\n",
    "\n",
    "Fail early if a required column is missing.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-011"
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Required columns found in both files.\n"
    }
   ],
   "source": [
    "required = {'title', 'text', 'subject', 'date'}\n",
    "assert required <= set(fake.columns) and required <= set(true.columns)\n",
    "print('Required columns found in both files.')"
   ],
   "id": "cell-012"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 7. Attach labels and combine\n",
    "\n",
    "Use a new table rather than modifying the imported originals.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-013"
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Raw shape: (44898, 5)\n"
    }
   ],
   "source": [
    "raw = pd.concat([fake.assign(label=0), true.assign(label=1)], ignore_index=True)\n",
    "print('Raw shape:', raw.shape)"
   ],
   "id": "cell-014"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 8. Check missing values\n",
    "\n",
    "Missing values and blank strings are different problems.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-015"
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>missing</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>title</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>text</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>subject</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>date</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>label</th>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "         missing\ntitle          0\ntext           0\nsubject        0\ndate           0\nlabel          0"
     },
     "metadata": {}
    }
   ],
   "source": [
    "display(raw.isna().sum().rename('missing').to_frame())"
   ],
   "id": "cell-016"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 9. Build a conservative article key\n",
    "\n",
    "Lowercase and whitespace normalization identify exact content copies with superficial formatting differences. This is not semantic deduplication.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-017"
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Empty combined articles: 0\n"
    }
   ],
   "source": [
    "data = raw.copy()\n",
    "data['article'] = data['title'].fillna('') + ' ' + data['text'].fillna('')\n",
    "data['key'] = data['article'].str.lower().str.replace(r'\\s+', ' ', regex=True).str.strip()\n",
    "print('Empty combined articles:', data['key'].eq('').sum())"
   ],
   "id": "cell-018"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 10. Audit contradictory labels\n",
    "\n",
    "Identical text with both labels cannot provide a consistent training target.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-019"
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Conflicting exact article keys: 0\n"
    }
   ],
   "source": [
    "conflict_keys = data.groupby('key')['label'].nunique()\n",
    "conflict_keys = conflict_keys[conflict_keys > 1].index\n",
    "print('Conflicting exact article keys:', len(conflict_keys))"
   ],
   "id": "cell-020"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 11. Remove contradictions, blank bodies and exact copies\n",
    "\n",
    "A nonempty headline can hide an empty body. We require a body for the article model.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-021"
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Rows after content cleaning: 38653\n"
    }
   ],
   "source": [
    "data = data[~data['key'].isin(conflict_keys) & data['text'].fillna('').str.strip().ne('')].copy()\n",
    "data = data.drop_duplicates('key')\n",
    "print('Rows after content cleaning:', len(data))"
   ],
   "id": "cell-022"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 12. Prevent repeated titles or bodies crossing splits\n",
    "\n",
    "Keep one record per normalized nonempty title and per normalized body. This conservative choice may remove legitimate updates; document the loss. Near-duplicate stories can still remain.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-023"
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Final rows: 38262 | Total removed: 6636\n"
    }
   ],
   "source": [
    "data['title_key'] = data['title'].fillna('').str.lower().str.replace(r'\\s+', ' ', regex=True).str.strip()\n",
    "data['body_key'] = data['text'].fillna('').str.lower().str.replace(r'\\s+', ' ', regex=True).str.strip()\n",
    "data = data[data['title_key'].ne('')].drop_duplicates('title_key').drop_duplicates('body_key').reset_index(drop=True)\n",
    "print('Final rows:', len(data), '| Total removed:', len(raw) - len(data))"
   ],
   "id": "cell-024"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 13. Inspect metadata shortcuts\n",
    "\n",
    "Subject is excluded from predictors. Its class separation reveals a collection shortcut in the original design.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-025"
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th>label</th>\n      <th>Fake-file label</th>\n      <th>True-file label</th>\n    </tr>\n    <tr>\n      <th>subject</th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>Government News</th>\n      <td>514</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>News</th>\n      <td>9049</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>US_News</th>\n      <td>783</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>left-news</th>\n      <td>681</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>politics</th>\n      <td>6417</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>politicsNews</th>\n      <td>0</td>\n      <td>11145</td>\n    </tr>\n    <tr>\n      <th>worldnews</th>\n      <td>0</td>\n      <td>9673</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "label            Fake-file label  True-file label\nsubject                                          \nGovernment News              514                0\nNews                        9049                0\nUS_News                      783                0\nleft-news                    681                0\npolitics                    6417                0\npoliticsNews                   0            11145\nworldnews                      0             9673"
     },
     "metadata": {}
    }
   ],
   "source": [
    "display(pd.crosstab(data['subject'], data['label']).rename(columns=LABELS))"
   ],
   "id": "cell-026"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Interpretation:** The subject categories do not overlap between the files. Including them can reveal the label directly. Excluding this column is necessary, but other source/style cues can remain inside the article body. Deduplication reduces repeated-document contamination; it cannot establish publisher independence."
   ],
   "id": "cell-027"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 14. Make the independent test split\n",
    "\n",
    "Reserve 20% before exploring language or fitting any vocabulary. Stratification keeps label proportions similar.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-028"
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "development, test = train_test_split(data, test_size=0.20, stratify=data['label'], random_state=SEED)"
   ],
   "id": "cell-029"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 15. Make the validation split\n",
    "\n",
    "A further 20% of development data becomes validation: approximately 64/16/20 overall.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-030"
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "train, valid = train_test_split(development, test_size=0.20, stratify=development['label'], random_state=SEED)"
   ],
   "id": "cell-031"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 16. Verify split isolation\n",
    "\n",
    "These assertions check exact normalized content, title and body isolation.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-032"
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>train</th>\n      <th>validation</th>\n      <th>test</th>\n    </tr>\n    <tr>\n      <th>label</th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>True-file label</th>\n      <td>13323</td>\n      <td>3331</td>\n      <td>4164</td>\n    </tr>\n    <tr>\n      <th>Fake-file label</th>\n      <td>11164</td>\n      <td>2791</td>\n      <td>3489</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "                 train  validation  test\nlabel                                   \nTrue-file label  13323        3331  4164\nFake-file label  11164        2791  3489"
     },
     "metadata": {}
    }
   ],
   "source": [
    "for column in ['key', 'title_key', 'body_key']:\n",
    "    assert set(train[column]).isdisjoint(valid[column])\n",
    "    assert set(development[column]).isdisjoint(test[column])\n",
    "display(pd.DataFrame({'train': train['label'].value_counts(), 'validation': valid['label'].value_counts(), 'test': test['label'].value_counts()}).rename(index=LABELS))"
   ],
   "id": "cell-033"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 17. Plot training label balance\n",
    "\n",
    "Use counts with explicit labels. The original pie chart risked mismatching value-count order and labels.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-034"
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABFEAAAIfCAYAAAC4m0OBAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAViAAAFYgBxNdAoAAAW1xJREFUeJzt3XlUVfX+//HXEUSJyVJQFAUHxLEccgoDccCx0syxTCpNK/WaZmlfCYevXu1i5tV7G+SWlpU4ZZohmIEDYQ6opVcNxYlEywEQTFE4vz/6cb4eAd3gERSfj7VcKz6f9977vfdd6x55+dmfYzKbzWYBAAAAAADgpsqVdgMAAAAAAAD3AkIUAAAAAAAAAwhRAAAAAAAADCBEAQAAAAAAMIAQBQAAAAAAwABCFAAAAAAAAAMIUQAAAAAAAAwgRAEAAAAAADCAEAUAAAAAAMAAQhQAAAAAAAADCFEAAAAAAAAMIEQBAAAAAAAwgBAFAAAAAADAAEIUAABw1+vQoYNMJpMWLVpks3PGxcXJZDLJx8fHZue8k0JCQmQymTRlyhSbndPHx0cmk0lxcXE2O+etTJkyRSaTSSEhISV2TQAAbIUQBQAAWDGZTMX6Y8uAAwAA4G5kX9oNAACAu4u/v3+B4/Hx8ZIkX19feXh45JuvWrXqHeupVq1a8vPzk5ubm83O+cADD8jPz081atSw2TkBAEDZRogCAACsbN26tcBxk8kkSXr77bdL/FWMzz77zObnbN26tQ4ePGjz8wIAgLKL13kAAAAAAAAMIEQBAAC37foNSg8dOqShQ4fKy8tL5cuXt1q1smXLFk2YMEGtW7eWp6enHBwcVLVqVfXs2VNr164t9PyFbSx74+awa9asUYcOHVSpUiU5OTmpTZs2Wrp0aYHnvNnGstdf7/z58xo7dqx8fHxUoUIF1ahRQ8OHD9fp06cL7ff06dMaOXKkvLy8VLFiRfn4+Gjs2LG6cOHCHdlYtbjP9Xr79u1T//79Va1aNVWsWFENGjTQ9OnTdfny5UKPycnJ0aeffqpOnTqpSpUqcnBwUI0aNfTss89q7969Rb6P06dPa9y4cWrUqJEeeOABVaxYUTVq1NBjjz2myZMn68yZM0U+JwAAtkSIAgAAbCYhIUEtWrRQZGSkPDw81KBBA5Ur939/3ejTp4/Cw8N15MgRVa5cWU2bNpXZbNZ3332nJ598UpMmTSr2tadNm6annnpKBw8eVL169eTg4KDt27dr0KBBWrBgQbHOmZKSombNmulf//qXXF1d5ePjo9OnTysiIkL+/v7KyMjId8zhw4fVsmVLffTRRzp9+rT8/Pzk4uKi+fPnq3Xr1kpLSyv2PRbmdp/rTz/9pDZt2mjNmjWqUaOGatasqUOHDumdd95Rx44dlZWVle+YCxcuKCgoSC+++KJ++OEHVahQQU2aNNHFixf15ZdfqlWrVoUGWAVJSUlRixYtNHfuXCUlJcnb21sPP/ywypUrp+3bt2vGjBn65ZdfivxsAACwJUIUAABgM6Ghoerdu7dOnz6txMRE/fLLL/rXv/5lmZ81a5aOHDmic+fOad++fdq1a5d+//13bdiwQR4eHpo1a5a2bdtW5OueOnVKs2bN0hdffKHTp09r586d+uOPP/Tqq69KkiZNmqSLFy8W+bzTpk1Tw4YNdeLECf388886dOiQdu7cqapVqyo5OVlz5syxqjebzXr22Wd16tQpNWvWTElJSdq7d69++eUXHTx4UOXLl9e///3vIvdxK7f7XENDQxUUFKRTp05p165dSkpK0pYtW1SlShUlJCTozTffzHfMs88+qy1btqh9+/b65Zdf9NtvvykxMVFpaWmaO3eucnJy9MILL+jXX381dA/h4eFKTU1Vp06ddOrUKR04cEDbt2/XyZMndf78eX366afy8vIq9jMCAMAWCFEAAIDN+Pn5afHixapUqZJlzNHR0fLfw4YNU506dfId17lzZ82YMUOStHjx4iJf9+rVq3r77bc1ePBgy5i9vb3mzJkjd3d3ZWZmKjY2tsjndXNzU2RkpDw9PS1jzZs3t4QKN74qExcXp+3bt6t8+fJauXKlateubZnz9fXVihUrlJOTU+Q+buV2n6uLi4uWLl2qhx56yDLWvn17zZs3T5K0cOFCq1dpvv/+e0VFRalWrVpau3atmjRpYpkrV66cxo4dq9dee02XL1/W+++/b+ge8jb5HT16tNzd3a3mXF1dFRISogYNGhg6FwAAdwrfzgMAAGxm6NChsre/+V8v/vvf/2r58uX6+eefdf78eV29elWSlJ6eLknavXt3sa6dt+rkehUrVlTz5s0VExOjw4cPF/mcgwcPtgqE8rRr106S8p1z/fr1kqSOHTsWGGo0atRI/v7+2rJlS5F7uZXb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"
     },
     "metadata": {}
    }
   ],
   "source": [
    "train['label'].map(LABELS).value_counts().plot.bar(color=['#16324F', '#FF2400'])\n",
    "plt.ylabel('Articles'); plt.title('Training labels'); plt.xticks(rotation=0); plt.tight_layout(); plt.show()"
   ],
   "id": "cell-035"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 18. Summarise training article length\n",
    "\n",
    "Explore training only. Differences in length can be a shortcut rather than evidence of truth.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-036"
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>count</th>\n      <th>mean</th>\n      <th>std</th>\n      <th>min</th>\n      <th>25%</th>\n      <th>50%</th>\n      <th>75%</th>\n      <th>max</th>\n    </tr>\n    <tr>\n      <th>label</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>Fake-file label</th>\n      <td>11164.0</td>\n      <td>438.3</td>\n      <td>356.4</td>\n      <td>2.0</td>\n      <td>291.0</td>\n      <td>390.0</td>\n      <td>519.0</td>\n      <td>8148.0</td>\n    </tr>\n    <tr>\n      <th>True-file label</th>\n      <td>13323.0</td>\n      <td>393.0</td>\n      <td>271.7</td>\n      <td>33.0</td>\n      <td>160.0</td>\n      <td>370.0</td>\n      <td>527.0</td>\n      <td>5181.0</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "                   count   mean    std   min    25%    50%    75%     max\nlabel                                                                    \nFake-file label  11164.0  438.3  356.4   2.0  291.0  390.0  519.0  8148.0\nTrue-file label  13323.0  393.0  271.7  33.0  160.0  370.0  527.0  5181.0"
     },
     "metadata": {}
    }
   ],
   "source": [
    "word_counts = train['article'].str.split().str.len()\n",
    "display(word_counts.groupby(train['label'].map(LABELS)).describe().round(1))"
   ],
   "id": "cell-037"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 19. Measure a source marker\n",
    "\n",
    "This measures the observed Reuters marker in your supplied training data, without assuming it proves reliability.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-038"
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Contains Reuters (%)</th>\n    </tr>\n    <tr>\n      <th>label</th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>Fake-file label</th>\n      <td>1.19</td>\n    </tr>\n    <tr>\n      <th>True-file label</th>\n      <td>99.85</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "                 Contains Reuters (%)\nlabel                                \nFake-file label                  1.19\nTrue-file label                 99.85"
     },
     "metadata": {}
    }
   ],
   "source": [
    "marker = train['article'].str.contains(r'\\breuters\\b', case=False, regex=True)\n",
    "display(marker.groupby(train['label'].map(LABELS)).mean().mul(100).rename('Contains Reuters (%)').round(2).to_frame())"
   ],
   "id": "cell-039"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 20. Define transparent text cleaning\n",
    "\n",
    "Remove the obvious Reuters token and URLs, but retain negation, numbers and word order. More aggressive cleaning is not automatically better.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-040"
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "def clean_article(value):\n",
    "    value = re.sub(r'https?://\\S+|www\\.\\S+', ' ', str(value))\n",
    "    value = re.sub(r'\\breuters\\b', ' ', value, flags=re.I)\n",
    "    return re.sub(r'\\s+', ' ', value).strip().lower()"
   ],
   "id": "cell-041"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 21. Apply fixed cleaning\n",
    "\n",
    "This function learns no dataset statistics. TF-IDF will still be fitted only on training data.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-042"
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_text = train['article'].map(clean_article)\n",
    "valid_text = valid['article'].map(clean_article)"
   ],
   "id": "cell-043"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 22. Fit a majority baseline\n",
    "\n",
    "A baseline establishes the value added by language modelling. No oversampling is justified by the modest imbalance alone.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-044"
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Validation baseline accuracy: 0.5441\n"
    }
   ],
   "source": [
    "baseline = DummyClassifier(strategy='most_frequent')\n",
    "baseline.fit(np.zeros((len(train), 1)), train['label'])\n",
    "baseline_pred = baseline.predict(np.zeros((len(valid), 1)))\n",
    "print('Validation baseline accuracy:', round(accuracy_score(valid['label'], baseline_pred), 4))"
   ],
   "id": "cell-045"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 23. Define the TF-IDF representation\n",
    "\n",
    "TF-IDF weights terms using training frequencies. Bigrams capture short phrases; limits keep memory manageable.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-046"
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def vectorizer():\n",
    "    return TfidfVectorizer(ngram_range=(1, 2), min_df=3, max_df=0.95, max_features=30000, sublinear_tf=True)"
   ],
   "id": "cell-047"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 24. Build logistic regression\n",
    "\n",
    "The pipeline prevents the validation/test vocabulary from informing training. C=1 is fixed in advance.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-048"
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "logistic = Pipeline([('tfidf', vectorizer()), ('classifier', LogisticRegression(C=1.0, max_iter=1000, solver='liblinear', random_state=SEED))])"
   ],
   "id": "cell-049"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 25. Train logistic regression\n",
    "\n",
    "Fit the vectorizer and classifier together using training articles only.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-050"
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Logistic regression fitted.\n"
    }
   ],
   "source": [
    "logistic.fit(train_text, train['label'])\n",
    "print('Logistic regression fitted.')"
   ],
   "id": "cell-051"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 26. Build and train Naive Bayes\n",
    "\n",
    "This is a fast, meaningful text-classification comparator using the same representation.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-052"
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Naive Bayes fitted.\n"
    }
   ],
   "source": [
    "naive_bayes = Pipeline([('tfidf', vectorizer()), ('classifier', MultinomialNB(alpha=1.0))])\n",
    "naive_bayes.fit(train_text, train['label'])\n",
    "print('Naive Bayes fitted.')"
   ],
   "id": "cell-053"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 27. Define evaluation metrics\n",
    "\n",
    "Macro-F1 gives equal weight to both labels. Fake-label recall uses positive label 0 explicitly.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-054"
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "def metrics(y, pred):\n",
    "    return {'accuracy': accuracy_score(y, pred), 'balanced_accuracy': balanced_accuracy_score(y, pred), 'macro_f1': f1_score(y, pred, average='macro'), 'fake_precision': precision_score(y, pred, pos_label=0, zero_division=0), 'fake_recall': recall_score(y, pred, pos_label=0, zero_division=0)}"
   ],
   "id": "cell-055"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 28. Compare validation results\n",
    "\n",
    "Choose the best model on validation macro-F1, not on the independent test.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-056"
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>accuracy</th>\n      <th>balanced_accuracy</th>\n      <th>macro_f1</th>\n      <th>fake_precision</th>\n      <th>fake_recall</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>Logistic regression</th>\n      <td>0.9868</td>\n      <td>0.9862</td>\n      <td>0.9867</td>\n      <td>0.9909</td>\n      <td>0.9799</td>\n    </tr>\n    <tr>\n      <th>Naive Bayes</th>\n      <td>0.9572</td>\n      <td>0.9566</td>\n      <td>0.9568</td>\n      <td>0.9557</td>\n      <td>0.9502</td>\n    </tr>\n    <tr>\n      <th>Majority baseline</th>\n      <td>0.5441</td>\n      <td>0.5000</td>\n      <td>0.3524</td>\n      <td>0.0000</td>\n      <td>0.0000</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "                     accuracy  balanced_accuracy  ...  fake_precision  fake_recall\nLogistic regression    0.9868             0.9862  ...          0.9909       0.9799\nNaive Bayes            0.9572             0.9566  ...          0.9557       0.9502\nMajority baseline      0.5441             0.5000  ...          0.0000       0.0000\n\n[3 rows x 5 columns]"
     },
     "metadata": {}
    }
   ],
   "source": [
    "models = {'Logistic regression': logistic, 'Naive Bayes': naive_bayes}\n",
    "validation_results = pd.DataFrame({name: metrics(valid['label'], model.predict(valid_text)) for name, model in models.items()}).T\n",
    "validation_results.loc['Majority baseline'] = metrics(valid['label'], baseline_pred)\n",
    "display(validation_results.round(4))"
   ],
   "id": "cell-057"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 29. Select the model\n",
    "\n",
    "Only trained text models are eligible; the baseline remains a reference.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-058"
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Selected on validation: Logistic regression\n"
    }
   ],
   "source": [
    "best_name = validation_results.loc[list(models), 'macro_f1'].idxmax()\n",
    "print('Selected on validation:', best_name)"
   ],
   "id": "cell-059"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 30. Refit on all development articles\n",
    "\n",
    "Reuse the fixed specification. The independent test remains unseen by every fitted component.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-060"
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Final model fitted on 30609 development articles.\n"
    }
   ],
   "source": [
    "from sklearn.base import clone\n",
    "final_model = clone(models[best_name])\n",
    "final_model.fit(development['article'].map(clean_article), development['label'])\n",
    "print('Final model fitted on', len(development), 'development articles.')"
   ],
   "id": "cell-061"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 31. Evaluate the independent test\n",
    "\n",
    "This is the primary performance estimate for this dataset and split.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-062"
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "                 precision    recall  f1-score   support\n\nFake-file label     0.9942    0.9762    0.9851      3489\nTrue-file label     0.9804    0.9952    0.9877      4164\n\n       accuracy                         0.9865      7653\n      macro avg     0.9873    0.9857    0.9864      7653\n   weighted avg     0.9867    0.9865    0.9865      7653\n\n"
    },
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>test</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>accuracy</th>\n      <td>0.9865</td>\n    </tr>\n    <tr>\n      <th>balanced_accuracy</th>\n      <td>0.9857</td>\n    </tr>\n    <tr>\n      <th>macro_f1</th>\n      <td>0.9864</td>\n    </tr>\n    <tr>\n      <th>fake_precision</th>\n      <td>0.9942</td>\n    </tr>\n    <tr>\n      <th>fake_recall</th>\n      <td>0.9762</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "                     test\naccuracy           0.9865\nbalanced_accuracy  0.9857\nmacro_f1           0.9864\nfake_precision     0.9942\nfake_recall        0.9762"
     },
     "metadata": {}
    }
   ],
   "source": [
    "test_text = test['article'].map(clean_article)\n",
    "test_pred = final_model.predict(test_text)\n",
    "test_prob = final_model.predict_proba(test_text)[:, list(final_model.classes_).index(1)]\n",
    "test_metrics = metrics(test['label'], test_pred)\n",
    "display(pd.Series(test_metrics).round(4).to_frame('test'))\n",
    "print(classification_report(test['label'], test_pred, target_names=[LABELS[0], LABELS[1]], digits=4))"
   ],
   "id": "cell-063"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 32. Visualise classification errors\n",
    "\n",
    "Rows are true labels; columns are model predictions. A true-file article flagged fake is a reputationally costly error.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-064"
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAv8AAAIfCAYAAADnv7OgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAViAAAFYgBxNdAoAAAkp1JREFUeJzs3Xl8TFf/B/DPzR7ZZSEaEkuESuxBhCwiolRRGuURUmtpqFJVbTRBqbWolKq0ltIKpVTR2JIgYmt4SGxR+15p9pD1/v7wzPyMmUgyuZkJ83k/r3k9de655557s33nO997riCKoggiIiIiInrl6Wl7AkREREREpBkM/omIiIiIdASDfyIiIiIiHcHgn4iIiIhIRzD4JyIiIiLSEQz+iYiIiIh0BIN/IiIiIiIdweCfiIiIiEhHMPgnIiIiItIRDP6JiIiIiHQEg38iIiIiIh3B4J+IiIiISEcw+CciIiIi0hEM/olqMBcXFwiCgPj4eG1PpcYKDQ2FIAiIjIzU9lToFbBr1y74+vrC0tISgiBo7efPz88PgiBg7dq1Gj82KeLXgl41DP6JKkD2y58BJpUnMjISkZGRyMzMVGv/+Ph4REZGYvv27ZLOS11r165FZGQkzpw5o+2pVLuDBw+iT58+OHToEGrXro3OnTvD29sbVlZW2p4aVZIufd8SVZaBtidARPQqmTlzJoCnn0hYW1tXev/4+HjMnDkTw4cPR79+/aSdnBrWrl2LhIQEuLi4oHXr1tqeTrVasWIFRFHE+PHj8e2332p1Lg0aNICbmxvfeKhJyu9bfi3oVcPgn4iICMD58+cBAL1799byTID169drewr0P/xa0KuGZT9EREQAHj9+DACoVauWlmdCRFR9GPwTVcH169flNwUCwJEjR9C7d2/Y2trC1NQULVu2RFRUFERRLHOM+Ph49OjRA9bW1rCwsICnpyd+/PHHCh3/ypUrGD9+PJo2bYpatWrJ91+6dCkKCgrKne/OnTvh5+cHGxsbmJubo1OnTti4ceMLj5mZmYlZs2ahXbt2sLKygomJCdzc3PDxxx/j4cOHKvd59sblmzdvYuTIkXjttddgbGwMFxcXTJkyBdnZ2WUe89q1axg2bBjq1q0LExMTNG3aFOHh4fJgrSbMNzIyUn5dAaBhw4bya13R+0UEQZCXDa1bt05h/2fHlrl37x4++eQTuLu7w9zcHGZmZmjZsiVmzpyJnJwclce4f/8+Jk+ejNdffx21atWCiYkJXnvtNXTu3Bnh4eF48OABgKffl4IgICEhAQDw3nvvKczFz8+v3PN5VmZmJr788kt07NgRNjY2MDExQcOGDdG3b98yM6vHjh3DoEGD5Nfezs4OQUFB2Lp1q8r+6v48yr7e169fBwD4+/srnefzY6si+x4IDQ1V2nblyhWMGTMGTZo0gYmJCWrVqoUGDRrA398fc+bMQV5enkL/8m4yvXDhAkaMGAEXFxcYGxvDxsYGvr6+iI6ORklJicp9ZPO/fv06zp07h0GDBqFOnTowNjaGm5sbZs2ahcLCwjLPryzPzvXevXsYM2YMnJycYGpqimbNmmHx4sXya15YWIj58+ejRYsWqFWrFurUqYPRo0cjPT1d5dinT5/GF198AW9vbzg5OcHIyAi2trbo1q0b1q9fr/S1rMz37bOLBWRlZWHatGlwc3ODqakpXFxcVJ6fTE5ODpo0aQJBEPDhhx+qnPuPP/4IQRBgaWmJv//+u9LXlajaiERULl9fXxGAGBERodB+7do1EYAIQFyzZo2op6cn1q5dW2zfvr1ob28v3zZlyhSV465evVoUBEEEIFpZWYnt27cXHR0dRQDipEmTRGdnZxGAGBcXp7Tvhg0bRGNjYxGAaGpqKrq7u4uNGjUS9fT0RACil5eXmJ2dXeZ8v/nmGxGAfL516tSRb5swYYLK+Z45c0Z87bXXRACigYGB2LhxY9Hd3V00MjISAYiOjo7iuXPnlPaTnceyZctEa2tr0djYWGzbtq3o4uIiP/9OnTqJRUVFSvv+9ddfopWVlQhANDQ0FNu0aSM2bdpUBCB27NhRHDx4sMqvjabn+8MPP4je3t7ya9i+fXvR29tb/vrhhx9UXtNneXt7i/Xr1xcBiA4ODgr7e3t7K/Tdv3+//LoYGRmJbm5uopubm6ivry8CEN3c3MQ7d+4o7HPr1i3595eBgYHYrFkz0dPTU3RycpLvt2/fPlEURTE5OVn09vYWLS0tRQCiq6urwlzCwsLKPR+ZU6dOyY8LQGzSpInYvn170cHBQd72vK+//lp+rW1sbMT27duL9erVk/cfNmyYWFJSorCPuj+PAwcOFL29veU/T+7u7krn+ezYZYmIiBABiMOHD1doT05OFi0sLEQAoomJifj666+L7dq1E+vWrSv/eU1LS1PYR/Y7Z82aNUrHiYmJkX8Pm5mZie3atRMbNmwon19gYKCYn5+vtJ9s+6pVq0QTExPR3NxcbNeuncJ1HTBgQJnnVxbZXCMjI8W6devKf16cnJwUfqc8efJE9PHxEQVBEJs3by42a9ZMfv6tW7cWCwoKlMZu166d/Pdjs2bNlL4PBg8erHStK/p9O3z4cBGAGBYWJjZp0kQ+r7Zt24rNmzcv92tx8uRJ0dDQUAQg/v777wrbLly4INaqVUsEIG7cuLHS15SoOjH4J6qAigT/xsbG4pIlS8Ti4mL59rlz54oAREEQxCtXrijse/78efkf8IkTJ4pPnjwRRVEUS0tLxVWrVon6+vqigYGByuD/yJEjooGBgWhkZCQuXbpU4Y/mpUuXRE9PTxGAOGLEiDLna2hoKM6YMUMewJaWloorV66U/zHevHmzwr7p6enyP+ajR48WHz58KN+WmZkpDhs2TB50Ph/Ey4JpQ0NDMSQkRMzMzJRv279/v/yP5I8//qiw35MnT8QmTZqIAERfX1/x3r178m1Hjx4V7e3t5X98n//aaGO+ovj/Ada1a9eUtlVEWQHks9LS0uTB5Oeffy7m5OTIt929e1d84403RABit27dFPb78MMPRQBiQECAwvUQRVHMysoS16xZI164cEGh/UVBaEXcv39f/sbSz89PvHz5ssL269evizNmzFBoO3jwoDzw/+KLL8TCwkL5to0bN8p/bhYuXKiwX1V+HkVRfOGb7aoE/3379hUBiEOHDhWzsrIUtj18+FCMiooSHzx4oNBe1nW/cOGCaGJiIgIQR40aJebm5sq37du3T/6G8IMPPlCa37M/+5988on4+PFj+baNGzfKr/nBgwfLPEdVZHM1NDQU+/XrJ6anp8u3/fDDDyIAUU9PT+zfv7/o5uYmnj9/Xr795MmT8jmvXr1aaeyNGzeqfIN+4sQJ0dXVVQQg/vLLL2XO6UXft7LgX19fX2zVqpXC9+azb55eNNaiRYtEAKKtra1469YtURRF8fHjx2LLli1FAGJoaGiZxyfSFgb/RBVQkeB/5MiRKvf18PCQZ5GfNWLECBGA2KZNG5X7jR49Wj7288GILMP89ddfq9z35s2bopmZmaivr6+Q/X12voGBgS88roeHh0L7559/LgIQ+/btq3K/4uJisU2bNiIAMSYmRmGbLKhq1qyZQiAnM2HCBBGA2L9/f4X29evXy7Ol9+/fV9pv48aN8vN5/mujjfmKomaC///85z/yN42qZGdnyz/xOH78uLw9KChIBCBu3769wvOpavA/efJk+ZssVdloVbp16yYCEHv16qVye3h4uAhAtLOzk79pFsWq/TyKYvUF/25ubiIA8cyZM2Xu+7yyrrvs94a7u7tYWlqqtF90dLQ8EL97967CNtn8AwICVB6zT58+IgDxo48+qvA8n51rnTp1FN6IysiSEYIgKHw/ynz88cciALFfv36VOu6+fftEAGLPnj3LnFNFgn8jI6MX/ry+aKzS0lL5m20fHx+xuLhYHD9+vAhAbNq0qcKbM6KagjX/RBL54IMPVLZ7eXkBeFrz+6zdu3cDACZMmKByv0mTJqlsv3PnDhITE2FgYIBRo0ap7FO/fn14enqipKREXvta0fFl7efOncOtW7fk7TExMQCA999/X+V++vr66Nu3LwDgwIEDKvuMGTMGhoaGSu3lXaPg4GDUqVNHab9Bgwahbt26Ko+ljflqQlFREX777TcAwLhx41T2sbCwQGBgIADFc3N2dgYA/Prrr2rVdqtDVp8/efJkmJqalts/Ly9P/j07efJklX0++ugj6Ovr49GjRzh+/LjKPpX9eaxOsuu+adMmlJaWVmks2c/EpEmTVN5/MGzYMDg4OKCoqAj79u1TOUZ1XZvBgwfD3Nxcqb1du3YAgFatWqFDhw5K29u3b//C4964cQPz58/HoEGDEBAQgC5duqBLly6YPn06gKf3BVRFQECAQo1/ZQiCgHXr1sHR0RGHDh1Cnz59sGLFChgbGyMmJgZmZmZVmhtRdeBSn0QSadq0qcp2WdD67A2YWVlZuH//PgCgRYsWKvdzc3ODgYEBiouLFdr/+9//AngavL7xxhtlzufy5csAoBDAP8vd3b3c4164cAH169dHXl6e/A/zjBkz8OWXX6rcV3azaFnHrMw1AoCLFy8CKPsa6evro1mzZvJrKaOt+WpCWloa8vPzAaDMN3/A04AJUDy3Dz/8EOvXr8eGDRuwZ88e9OjRA507d0aXLl3QqlWrF97Mqo6cnBz5PDp37lyhfa5cuSK/YbWs79HatWvjtddew82bN3Hx4kX4+Pgo9alJX7upU6di//79mDdvHtavX4+goCB4eXmha9euaNasWYXHefb3RlnXxtDQEM2aNcPDhw/lPz/Pq65r06RJE5XtDg4OFdqem5urtO2bb77B1KlTX/hmtaybhSuqrN8vFWVvb48NGzYgMDAQe/bsAQAsWLDglX8uBr28GPwTSaSsDI+e3tMP2MRnVqV49o+rqow28DSwtbW1lQeoMhkZGQCAgoICJCYmljsvWaD4vIocVzbPZ59We+rUKbWPWZlrBPz/dSprrmVt09Z8NUH29QdQ6a//66+/jmPHjmHmzJn4888/8csvv+CXX34B8DQ7PX36dIwdO1ayuT67IlJFH3gm+5rr6enJg0JVHB0dcfPmzTID1Zr0tevevTsOHjyIOXPmID4+HmvWrMGaNWsAPP2azJo1CwMGDCh3nGfPtaxPvICn1+b5/s+qrmtT1riyN5XlbX/+uElJSfKVdD744AMMHz4crq6usLCwgL6+Pq5evYrGjRsrJUikmndltGnTBnZ2dnj48CFq1aqFoUOHVnlMourC4J9ICywsLOT//eDBA3lZwLNKSkpUZrRkH6s3aNBAnlVVx4MHD9CgQYMXHlc2z2c/yr969SoaNmyo9nErQ3b8598APUvVNm3NVxNk5yYIAoqKiqCvr1+p/Vu1aoVt27ahsLAQp06dwpEjR/D7778jMTER77//PkpLS8ssJ6osS0tL+X9nZmbCycmp3H1kX/PS0lI8fPiwzDd+9+7dU+hf3Z79VEQURZWfkjy/XOezfH194evri/z8fBw7dgxHjhzB1q1bcfbsWQwcOBC7d+9+4Sd5gOK53r9/X+XvDUDz16a6rFu3DgAwcOBAREVFKW2vasZfSiNHjsTDhw+hp6eH/Px8jB49uswlaYm0jTX/RFpgZWUlz9zJnir6vEuXLqnMaHl4eAAAbt++jX///VftOaSmppZ73ObNm8vnW79+fQDA2bNn1T5mZclKIsq6RiUlJbh06ZJSu7bmK4XySm+aNm0KY2NjiKKIlJQUtY9jZGSEzp0745NPPsGRI0fw8ccfAwBWrFhRqfm8iIWFhbyW+ujRoxXap0mTJjAweJqXKuv8MjIycOfOHQD//z1a3Z7NDpf1ZlRWavcitWrVQrdu3fDFF1/gzJkzGDhwIADl667Ks783yro2xcXF8nIfTV2b6nLt2jUAUFnWBTx9DkRZpC5he5EVK1bgt99+g7W1NeLi4mBtbY1t27bhu+++09gciCqDwT+RlsiyfMuXL1e5fdmyZSrbGzVqhHbt2qG0tBSLFy9W+/hljS9r9/DwkAfQwNObbgHg66+/LvMhQlKTXaOYmBiVD+TavHmzPMv5PG3MF/j/p8OWVUpU1f1NTU3x5ptvAgAWLlyo1jFU8fb2BgB5UF3R+ZRHFtwuWbIET548Kbe/mZkZfH19ATz92qmydOlSlJSUwM7OTuUNpNXBzs4ONjY2AJ6Wozzv6tWriI2NrdSYgiCUed3L0rt3bwBPr4Gq8pyffvoJDx8+hKGhofym75eV7HtP1c/4kydPyvzd+ey+6n7fVtS5c+cwZcoUAMDq1avh4+OD1atXA3h6w3pV3qATVRcG/0RaMmXKFBgaGiI5ORmTJ0+W39AmiiJ++OEH/PDDD/IM6PMWL14MAwMDfPXVVwgPD1eocQee/mHcs2ePPPBS5eDBg5g1a5Y8yy+KIlavXo0ffvgBAPD5558r9J82bRrq1auHQ4cOYcCAAbh69arCdlEUcfLkSUyaNAknT56s1LUoS3BwMBo1aoQnT57g3XffVXgDcOzYMUyaNEnlajzami/w/zc17t+/v0r7Hz9+XOUNkAAwZ84cWFhYYOPGjRgzZozSDc/FxcVISEjAiBEjFILKMWPG4KefflL6frl//z6WLFkCAPD09FQ5n7i4OLVWqpk6dSrq1KmDixcvonfv3koruty4cQMREREKbZ9//jkEQcDu3bsRGRmJoqIi+baYmBjMnz8fAPDpp5/C2Ni40nNSV58+feTzkz0NGAD+/vtvDBo0qMzr884772Dbtm1Kgejff/+N77//HoDydS/Lxx9/DBMTE6SkpGDs2LEKpUYHDx6UB6Jjx4594X0BLwPZm8AVK1Yo/Iw+fPgQAwcOLPNGfaDq37cVkZ+fj0GDBuHJkycYM2aM/PftwIEDMXr0aDx+/BjvvvtuhZ5ETqRRWllglOglU5F1/svyonXbv/vuO/mDdaytrUVPT0/50yvLe8JvTEyMaGZmJgJPn9baokULsVOnTqKbm5v8wVfPz6usJ/x6enqKdevWlW8bP368ynM5e/aswpNEGzVqJHbs2FH08PCQz0XVfF90HqIoinFxcSIA0dnZWWnbiRMn5E/rNDIyEtu2bStfN728J/xqY76yh/7gf88J8PHxEX19fSu8Tn5ubq78oVjW1tZix44dRV9fX9HX11dpDnZ2dvIHKLm5uYmdOnUSW7RoIX9SLZ573kCrVq3k6603btxY7Nixo9isWTP5w+QcHBwUHsAkiqJ4/Phx+YPfXnvtNdHb21v09fUVP/zwwwqdjyg+fZDTs99frq6uSk+Vft7ixYsVnvDr6ekpf3YBADEkJOSFT/gty4t+Hsv7ul+7dk20tbWVr6Pv7u4uvv7666IgCGLr1q3lzzR4fmzZQ6wMDAxENzc3sWPHjqKrq6v8/FxdXZWeY1HRJ/yam5uL7du3Fxs1aqTwDI8XPeG3rDXt16xZIwJQ+l4rT3lr6pf37Iqyfp5yc3PF5s2by79nmzZtKrZp00Y0NDQUjY2N5c80UPX1rsj3rWydf1W/OypyfqNGjRIBiK+//rrS9c7Ly5PPfezYsS8cn0jTmPkn0qKxY8di//796N69O0pKSnD+/HnUq1cP0dHR8kxsWYKDg3Hx4kV88sknaNGiBW7evImTJ0/i0aNH8PT0RERExAvXv54wYQJ27NgBDw8PXL58GdnZ2ejQoQPWr1+Pb7/9VuU+Hh4eOHfuHJYsWQIfHx9kZmbi1KlTuH79Oho3bowPPvgA+/btQ5cuXap0XZ7l6emJ06dP4z//+Q+srKyQmpqKkpISfPbZZ4iLi4ORkVGZ+2pjvh999BEWLVqEVq1a4ebNmzh06BASEhIUMsUvYmZmhgMHDmDAgAEwMTHBX3/9hYSEBKXnNfj5+eHixYuYNWsWPD09cf/+fZw8eRJ37tyBu7s7pk6disTERIWbQpcuXYopU6bA09MT+fn5SE5Oxq1bt/D666/j008/RUpKilKdeIcOHbB9+3b4+fkhLy8PSUlJSEhIwJkzZyp8Tdq3b4/U1FRERESgTZs2uHfvHlJSUlCrVi3069cPGzZsUNpn8uTJOHr0KN555x2YmJjgzJkzePz4MQIDA7FlyxasX79evjqNpri4uCApKQnvvvsurKyscPnyZRQWFmL69OlITEws8wbb9evX44MPPoCHhwcyMjLw119/4cGDB2jfvj3mzJmDv/7664UrWj0vODgYp0+fRmhoKGrXro2zZ88iPT0dXbt2xerVq7Fnz54KPVOhpjMzM8Phw4cxbtw4ODo64tq1a7h37x769++PEydOICAgoMx9pfi+fZHNmzcjOjoaJiYm2LRpk9L1rlWrFjZt2gQTExOsWrUK27Ztk+S4RFIQRFELa9URkVZcv35dvvINf/SJiIh0DzP/REREREQ6gsE/EREREZGOYPBPRERERKQjGPwTEREREekI3vBLRERERKQjmPknIiIiItIRDP6JiIiIiHQEg38iIiIiIh3B4J+IiIiISEcYaHsCRJo0evRoAMDq1au1PBMiIiLdMXr0aKSkpEg+rru7O/+mVxKDf9IpKSkpOHnlEbYV/qLtqRC9Mm6uflfbUyB65ZgZCdqegqRSUlJw7MQpCCa2ko0pPkmXbCxdwuCfiIiIiKqdYGIL46YDJRuv4PKvko2lSxj8ExEREZEGCIAg5e2mr9anI5rCG36JiIiIiHQEM/9EREREVP0EAIKE2Xom/tXC4J+IiIiINEPSsh9SB78CREREREQ6gpl/IiIiItIAQdqyH9b9qIWZfyIiIiIiHcHgn4iIiIg0Q9CT7lVN5s+fD0EQIAgCjh07prQ9OzsbkydPhrOzM4yNjeHi4oKpU6ciNzdX5XilpaVYvnw5PDw8YGpqCnt7ewwePBhXr14tcw6xsbHw9fWFhYUFLC0t4e/vjwMHDkhyfgz+iYiIiEgzBEG6VzVISUlBREQEzMzMVG7Py8uDr68vlixZgmbNmuGjjz6Cm5sbFi1ahG7duuHJkydK+4wdOxYTJ06EKIqYOHEievbsiW3btsHT0xNpaWlK/Tds2ICePXviwoULCA0NxfDhw5GamorAwED8+mvVH2zG4J+IiIiIdF5RURGGDx+O1q1bo3///ir7LFiwAGfOnMG0adMQGxuLefPmITY2FtOmTcPJkyexZMkShf5xcXGIjo6Gj48PkpOTMX/+fPz000/Yvn07/v33X4SFhSn0z8jIwIQJE2BnZ4fk5GQsX74cy5cvR3JyMmxtbTFu3Djk5ORU6TwZ/BMRERFR9RMEact+JM7+z5kzB6mpqfjxxx+hr6+vtF0URURHR8Pc3BwzZsxQ2DZjxgyYm5sjOjpaoX316tUAgNmzZ8PIyEje/sYbb8DPzw979+7FzZs35e1btmxBZmYmJkyYACcnJ3m7k5MTwsLC8OjRI/z2229VOk8G/0RERESk05KTkzFnzhxERETg9ddfV9knLS0Nd+/ehbe3t1JZkJmZGby9vXH16lXcunVL3h4fHy/f9rygoCAAQEJCgkJ/AOjRo0eF+quDS30SERERkWZInK1PSUmBl5eXym1JSUkVGqOgoADDhg1D69at8cknn5TZT1af7+rqqnK7q6srYmNjkZaWhvr16yMvLw/37t2Du7u7yk8SZOM8W/f/omOo6q8OBv9EREREpBk18Am/X3zxBdLS0vDXX3+pDNJlsrKyAABWVlYqt1taWir0q2z/8vZR1V8dDP6JiIiI6KXk7u5e4Qy/KklJSVi0aBEiIyPh7u4u4cxqrpr39ouIiIiIXkESLvMpCKjqE36Li4sxfPhwtGzZEp9++mm5/WXZ+LIy79nZ2Qr9Ktu/vH1U9VcHM/9EREREpHNyc3Pl9fPPrsTzLNn9BL/99pv8RuCyau6fr9c3MzODo6Mjrl27hpKSEqWSIlX1/a6urjh16hTS0tJga2tbbn91MPgnIiIiouonQNqa/yreO2xsbIyRI0eq3Hbo0CGkpaXhrbfegr29PVxcXODq6op69eohMTEReXl5Civ+5OXlITExEQ0bNkT9+vXl7b6+vti0aRMSExPh4+OjcIzY2FgAUGj39fXFL7/8gr1796JTp04q+/v6+lbpvFn2Q0RERESaUYOe8Gtqaoro6GiVr86dOwMApk+fjujoaLRu3RqCIGDUqFHIzc3F7NmzFcaaPXs2cnNzMXr0aIX2MWPGAHj6HIDCwkJ5+549exAfH48ePXrA2dlZ3h4cHAwrKyssX74ct2/flrffvn0bUVFRsLOzK/MBZBXFzD8RERERUQV88skn2LFjB+bPn4/Tp0+jbdu2SE5Oxt69e+Hp6YlJkyYp9Pf398eoUaMQHR2Ntm3bonfv3rh37x5iYmJQu3ZtLF++XKG/jY0NoqKiEBISgrZt22LQoEEAgJiYGKSnpyMmJgYWFhZVOgdm/omIiIhIAyR+wm9V637UYGZmhoSEBEyaNAkXLlzA4sWLcfHiRUyZMgUHDhyAqamp0j6rVq3CsmXLAADLli3D7t270b9/f5w4cQJNmzZV6j906FDs2bMHzZo1w5o1a7B27Vq8/vrr2Lt3L955550qn4MgiqJY5VGIXhJeXl44eeURrHrN0vZUiF4ZN1e/q+0pEL1yzIw0H9hWJy8vLxxPvQ3j1qpr7NVRcOYHdGzhVKWlPnURy36IiIiISDNq4EO+dA2DfyIiIiKqfgIAPQk/0Xi1PhzRGL79IiIiIiLSEcz8ExEREZEGCBKX/TD1rw5m/omIiIiIdAQz/0RERESkGRI8nIuqhsE/EREREWkGV/vROn4FiIiIiIh0BDP/RERERFT9BEHash+WEKmFmX8iIiIiIh3BzD8RERERaQZr/rWOwT8RERERaQZLdbSOb7+IiIiIiHQEM/9EREREpAF8wm9NwMw/EREREZGOYOafiIiIiDSDNf9ax+CfiIiIiKqfAGnLfvg+Qi0s+yEiIiIi0hHM/BMRERGRBkj8hF+m/tXCzD8RERERkY5g5p+IiIiININP+NU6Bv9EREREpAFc578m4NsvIiIiIiIdwcw/EREREVU/AdLe8MvEv1qY+SciIiIi0hHM/BMRERGRZvCGX61j8E9EREREmiHpOv+kDr79IiIiIiLSEcz8ExEREZEGcKnPmoCZfyIiIiIiHcHMPxERERFpBmv+tY7BPxERERFVPwEQuM6/1rHsh4iIiIhIRzDzT0RERETVToAgaeZfYOpfLcz8ExERERHpCGb+iYiIiEgzmKzXOgb/RERERKQRkt7wS2ph2Q8RERER6ZwnT55g8uTJ8PHxQb169WBiYoK6devC29sba9asQVFRkUL/yMhICIJQ5uv69esqjxMbGwtfX19YWFjA0tIS/v7+OHDgQJnzunz5MoKDg2FnZwdTU1O0atUKK1euhCiKkpw3M/9EREREVP1q2FKfubm5WLlyJTp06IDevXvD3t4eGRkZ2LNnD0aMGIFNmzZhz5490NNTzJUPHz4cLi4uSuNZW1srtW3YsAEhISGwt7dHaGgoACAmJgaBgYHYvHkzBg4cqND//Pnz6Ny5Mx4/fozg4GDUq1cPu3btwvjx43H+/HksX768aicNBv9EREREpINq166NrKwsGBkZKbQXFxcjMDAQe/fuxZ49e9C7d2+F7aGhofDz8yt3/IyMDEyYMAF2dnZITk6Gk5MTAGDatGlo06YNxo0bh6CgIFhYWMj3GTduHLKysrB792688cYbAIDZs2eje/fuiIqKwpAhQ+Dl5VWl82bZDxERERFpxIvKZir7qio9PT2lwB8ADAwM0L9/fwDAlStX1B5/y5YtyMzMxIQJE+SBPwA4OTkhLCwMjx49wm+//SZvv3z5Mg4dOgR/f3954A8ARkZGmD17NgBg9erVas9HhsE/EREREVU7AdIG/9V163BpaSn+/PNPAIC7u7vS9kOHDmH+/PlYuHAhtm/fjtzcXJXjxMfHAwB69OihtC0oKAgAkJCQUKH+Xbp0gZmZmUJ/dbHsh4iIiIheSikpKWWWwSQlJVVojMLCQsydOxeiKCI9PR0HDhzAxYsX8d577yEgIECpf0REhMK/ra2tsWzZMgwbNkyhPS0tDQDg6uqqNIasTdanvP76+vpo2LAhzp8/j+LiYhgYqB/CM/gnIiIiIs2ogSt9FhYWYubMmfJ/C4KAjz/+GF999ZVCv1atWuHHH3+En58fHB0dcf/+ffzxxx/44osvEBoaCmtra7z11lvy/llZWQAAKysrpWNaWloq9Cmvv2yf0tJS5OTkwMbGRs2zZfBPRERERC8pd3f3Cmf4y2Jubg5RFFFaWoq7d+9i586d+Oyzz5CUlITdu3fLA3XZfQAyLi4uCAsLQ/PmzREYGIjw8HCF4L+mYs0/EREREWmAhPX+ggCpP0bQ09ODk5MTxo0bh++//x6JiYmYM2dOufsFBASgcePGOHfuHLKzs+Xtsgz+s9l9GVm/Z7P8L+ov20cQBIXVgdTB4J+IiIiIqp8g8Wo/1VhCJLvpVnYTbnns7OwAAPn5+fI2VXX9Mqrq+1/Uv6SkBNeuXUPDhg2rVO8PMPgnIiIiIlJw9+5dAIChoWG5ffPy8pCamgozMzP5mwAA8PX1BQDs3btXaZ/Y2FiFPuX1P3LkCPLy8hT6q4vBPxERERFpRE1a5//8+fMKmXqZ/Px8TJ48GQDQq1cvAEBOTg4uX76s1Pfx48cYPXo0cnJyEBwcrJCVDw4OhpWVFZYvX47bt2/L22/fvo2oqCjY2dkp3Efg5uYGHx8fxMXFYc+ePfL2wsJCzJgxAwAwatSoKp41b/glIiIiIh20efNmfP311+jSpQtcXFxgaWmJO3fuYM+ePUhPT0fXrl3x0UcfAQDS09PRrFkzeHp6onnz5qhbty4ePHiA/fv34/bt2/Dw8MDChQsVxrexsUFUVBRCQkLQtm1bDBo0CAAQExOD9PR0xMTEKNXvr1ixAt7e3ujXrx8GDRoER0dH7Nq1C6mpqQgLC0Pnzp2rfN4M/omIiIhII6TI2EvlzTffxN27d3H06FEkJSUhNzcXVlZWaNmyJd59912MGDFCnsmvXbs2xo8fjxMnTmD37t3IyMiAqakpmjdvjokTJyIsLAympqZKxxg6dCjs7Owwd+5crFmzBoIgoF27dggPD0f37t2V+rdo0QLHjx9HeHg4du3ahby8PDRt2hTffvstxo0bJ8l5M/gnIiIiIs2oObE/2rdvj/bt21eor6WlJaKiotQ6Ts+ePdGzZ88K93dzc8OWLVvUOlZFsOafiIiIiEhHMPNPRERERNVOqht1nx2PKo+ZfyIiIiIiHcHMPxERERFpBLP12sfgn4iIiIg0gsG/9rHsh4iIiIhIRzDzT0RERESawcS/1jHzT0RERESkI5j5JyIiIiKNYM2/9jH4JyIiIqJqJwjSBv98H6Eelv0QEREREekIZv6JiIiISAOkfcIv7x5WDzP/REREREQ6gpl/IiIiItII3vCrfQz+iYiIiEgzGPtrHct+iIiIiIh0BDP/RERERFT9JF7qk58iqIeZfyIiIiIiHcHMPxERERFpBG/41T4G/0RERERU7QSJ1/kXWPejFpb9EBERERHpCGb+iYiIiEgzmKzXOmb+iYiIiIh0BDP/RKQ2YwM9fDqgFVq61IaLgzmszYyRnV+IGw9z8fPhv7Ht2HUUl4hl7t/Azgz7Z74BMxND/BSfhk9/OqWyX/+OzhjZ3Q1ur1mhsLgUp678g4XbzyHlZkaZY/ds44Th/q7wcLaBqbEBHmY+RvLVdMzZcgZ3M/KrfO5ENYUoitgV/1+s3nwIaTceICf3MerVsYF3W1dMHNYdLq/Zyftu+fMkdh48g/NX7uKfjBxAFOFUtzb8OjZD2H8C4Ohgrb0TIZ3AG361T+cz/y4uLnBxcdH4cYuKihAZGQlXV1cYGxtDEARs374d169fhyAICA0NVegfGhoKQRBw/fr1apmPFNehuudY1rUh7allYoAQvyYQReDA2btYvfci/ky+jbo2plgyohPWTfRFWb/nBQFYMrJTuceY2Pt1RI3pDDtLY/wUfwV/nLqJjk0dsOOzQLRvYqdyn/khnvghrCvq25lhx4kbiN53CSfS/kH7JnZ4zbZWVU6ZqMb54pvfEPrpD7hy8wF6+bbEqGBfONezxU87jsJv6Hxc+PuuvO9v+5Jx+fp9tHN3wfB+3hjW3xsOtpb4PiYBXYbMxcWr97R4JvTK+986/1K9WEKknpcm83/9+nU0bNjwhX0yMjJgbW2tmQlV0eLFizFz5kz4+PggODgYhoaGaNasmbanRVQpmXmFaB62FUUlpQrt+noCNk3xh5+7I7p51MOBs3eV9h0T2AztGtnhyy1nMHNwW5XjN3Qwx+S3PPD3/Wz0/nIvch4XAQDWx6Xh9897YOHwDuj2xW6Iz3y4MLJ7Uwz1a4K1By9jxs/JKBUVP3nQ1+NfC3p1PEjPxqpN8ajvWBsJGz6FpbmpfNvKXw5ixtLfsPLnOHwz4z8AgB/njoCJsaHSOBt+T8KkOT9jwerd+PGrkRqbPxFp3ksT/Ms0btwYQ4cOVbnNxMREw7NR3x9//AFzc3Ps27cPRkZG8vaioiJcuHABVlZWWpwdUcWIIpQCfwAoKRWxJ/k2OjerAxcHc6XtjetaYGp/D0TtPo/UW2WX7gzq0giGBnr45o9UeeAPAKm3MrHj+A0M6tIIHVztcfzyPwAAE0N9fPSWO64/zMEXvygH/rK5Eb0qbt1NR2mpiA4tGykE/gDQw9sdM5b+hkeZufI2VYE/APTt1hqT5vyMa7cfVet8iVj2o30vXfDfpEkTREZGansaVXb37l3Y2toqBP4A+AkAvRIEAfBzdwQAXLqTpbBNTxCwdGQnXHuQi2V/pJZZugMAXm4OAICE1PtK2+JT72FQl0bwauogD/59WtSFjZkxNh+5Bn09AT1av4ZGdSyQnV+Ewxfu4/rDXKVxiF5mjRo4wMjQACfOXkVO7mNYPPMGYG9iCgDAp33TcsfZm5gKAGjWyLF6JkpENcYrV/P/119/ISwsDO7u7rCysoKpqSk8PDwwb948FBUVlT/A/3z99dfQ09NDQEAAcnJy5O07duxAQEAAbGxsYGJiAnd3dyxatAglJSUVGjcyMhKCIODatWu4ceOGvG5NVm+vTl37oUOH0KdPH9jZ2cHY2Biurq4IDw9Hfn7Vbmq8e/cuIiIi0KlTJzg4OMDY2BguLi4YP348Hj58WOZ+paWlWLBgAVxdXWFiYoKGDRti1qxZZV7/6po/aY6hvh4mv+WOKX3d8eWQdoib1QsBLeth05GrOHLhgULfCb1fh0eD2pi85pjKTw2e1bCOBXKfFOGf7CdK2649yJH3kWnpXBvA0+z+/plvIPqDrvhsYGvMG+aJQ3N6Y0Zw6yqeKVHNUtvKDDM+6IPb9zPQadCX+Hh+DGZG7UDwhyswK+p3jBjQFaPe8VHab/v+ZMxfvRuRy7fj3Y9WYvzMn+Bczxafju2lhbMgXSFA2pp/foagnpcu81+e1atXY+fOnfDx8UGvXr2Qn5+P+Ph4TJ8+HSdPnsTWrVtfuL8oipg2bRoWLlyId955Bxs2bJBn56dPn4558+bhtddew9tvvw0rKyscPnwYU6dOxfHjx7Fly5Zy5+fn5wcAWLp0KQBg0qRJAKD2vQorV67EBx98AGtra/Tp0wcODg44deoU5syZg7i4OMTFxSl9ulBRhw4dwuLFixEQEICOHTvC0NAQp0+fxsqVKxEbG4vk5GSV5UmTJk1CYmIigoODYW5ujp07dyIiIgJnz57Fr7/+qrH5k+YYGuhhSl8P+b9LS0Ws/PMCvtr6X4V+rztZY1KfFvgu9gLO3Si73EfGwtQQ6dkFKrfl/q8MyML0/8sY7CyNAQBjerjh3I0M9Jodi7R72XBvYIMFwzzxflBz3HiYi/XxVyp9jkQ11bjB3eBob41Jc37B2m1H5O2dWjXCgKD2MDDQV9pnx/7T2Bl3Rv7v1s0bYPWXoXCuV/YncUSSYMSudS9d8H/lyhWVZT89e/ZEp06d8Nlnn+Hbb7+Fvv7//7ITRRGjRo3Cjz/+iMTERHh7e6scu7i4GCNHjsT69evxwQcf4JtvvoGe3tMPR/bt24d58+YhKCgIW7duhZmZmXzs8ePH47vvvsPWrVsxYMCAF87fz88Pfn5+WLt2LQBUqYTp/PnzmDhxIlq2bIkDBw7A1tZWvm3evHmYPn06li9fjilTpqg1frdu3XD//n2YmyvWbK9fvx7Dhw9HVFQUPv/8c6X9jh07hv/+979wcnICAMyZMweBgYHYunWrwjWqzvl7eXmpbE9JSQFM6lZ6PHqx/IJivDbyFwgCUNfaFIGtXsO0t1uhXWM7hCyNR+6TYhjq62HpyE64/jAXX/+eUi3zkNWSFhWXYuS3h/Eg8zEA4ETaPxj7XSL2RfbEmB7NGPzTK2Vh9B58vSYWn47phXd6esLSohZSLt9G+NJt6DtuGdbMG4U3fDwU9lkz7+lNvVk5+Th76TbmfvcHAoYvxNr5I+HT3k0bp0FEGvLSlf38/fffmDlzptLr2LFjAIAGDRooBP7A04Dggw8+AADs379f5bj5+fno27cv1q9fj5kzZyIqKkoe+ANAVFQUAOD777+XB/6ysefNmwdBEPDLL79Ieq7lWbVqFYqLi7F8+XKFwBkAPvnkE9jb21dpTg4ODkqBPwCEhITA0tKyzGv54YcfygN/ADAyMsKcOXMAQP6mRxPzJ80TReBexmOsj7+CaetPoIOrPSa+2QIAENb7dTRzssLkH4+jsPjF5T4yOY+LYFFL9Q2K5v/L+D97I7Dsv/9741954C9z6U4Wbv6Th4Z1LGBpqnpMopdNwomLmL96N0a+44MPh/dAvTo2MK9ljE6tG2Pj4rEwNNDHF8t+K3N/K4ta6Nq+KTYvHQcTY0N8ELkBRcUVK2MlqjQpS34EAWWuJU0v9NJl/oOCgvDnn3+Wub2wsBBRUVHYtGkTLl68iNzcXIjPrPhx967ykoOPHz9GQEAATpw4ge+++w5jx45V6nPs2DGYmZnhxx9/VHlcU1NTXLx4EQCQmZkpL+t5ltQ3Ksve8MTGxuLAgQNK2w0NDeVzUte2bduwatUqJCcnIyMjQ+HeBlXXEgC6du2q1Obl5QUDAwOcPn1aI/NPSkpS2e7l5YWTV7iahSbIbtKV3bTr3sAG+np6+CO8h8r+IX6uCPFzxZ+nb2Nk1GEAT+v62zexh72liVLdv6zWX1b7DwB/388GAGTnF6o8Rtb/2k2M9JH9uOL3ABHVVPuTzgMAurRzVdpWx9YSTVzq4Nyl28jNL4B5LeMyx7EwN0V7dxfsTjiLa7f+QdOG/ISU6FX10gX/5Rk4cCB27tyJpk2bYtCgQXBwcIChoSEyMzOxbNkyFBQo1w/n5OTg9OnTsLW1hb+/v8px//33XxQXF2PmzJllHjsvLw/A0+BfVT+pg/9///0XAORZdaktXrwYH3/8Mezt7dGjRw84OTnB1PTpShJLly5VeS0BoE6dOkpt+vr6sLW1RVbW/6/8Ut3zJ+2qY/30e0X2hN9Dqffxb47y90wdaxMEtHwNaXezcPLKI4Wn9iZd+gftm9jDt0Vd/Jp0XWE/vxZPVyVJuvz/N58fvfj0v10dle9FMdAX4OJggbwnRUhXMQ+il1FR0dOETHqG6pWs0jNyoacnwNCg/A/67z96+vtZ1T0CRFLhUp/a90oF/ydPnsTOnTsRFBSEXbt2KZT/HDt2DMuWLVO5n4ODA1atWoV+/frBz88PcXFxcHNTrHm0tLSEIAh49Kj8rLGLi4vCpw3VxdLSEgCQnZ0NCwuLcnpXTnFxMWbPng1HR0ecOXMGDg4O8m2iKGLBggVl7vvgwQOl61dSUoL09HSFNwbVOX/SDFdHS9xKz8OTQsUyARMjfUQMagMAOPi/B3yti0tTOYaXmwMCWr6GY5cf4tOfTils25x4Fe8HNcPEN1sg9swdeVlPi/rW6NvRGZfvZuFE2j/y/jf+yUV8yj34uTticNdG+OXwVfm2sDdeh7WZEbYmXeNa//TK6NCyEaK3HMLKX+LQp1trhbX+12w7grsPM9GxZSMYGxkiJ+8J7j/KgquzcoJm4+9JSE69gUb17dGovr0mT4F0DGN/7Xulgv+///4bANC7d2+luv/Dhw+/cN+goCD8/vvv6Nu3L/z9/ZXeAHTs2BF79uxBWloaXF2VP17Vho4dOyI5ORnHjh1DYGCgpGM/evQIWVlZCAgIUAj8AeDUqVN4/PhxGXs+vdY+PopLyyUlJaG4uBht2rTRyPxJM/p4NsCYHs1wIu0f3E7PQ87jIjjamMLfvR5qWxjj2OWHWL3vktrjX32Qg69/P4dpb7fCvsie2P3XbZiZGKBvB2cAwNR1J/D8++zPNpzCjumBWBTaET3bOOHK/aer/XRpXhe3HuVi9uYzVThjopqlb0AbrNl2BEmnr6DjwNkI8nGHlXktnL10C4dPXYapsSFmT+oPAMjIykPnQXPQunl9uDrXgaO9NTJz8nH6/E2cvXQLFmYm+DYiRMtnRETV7aW74fdFnJ2fBgRHjhxRaE9NTcVXX31V7v6BgYHYuXMnMjMz4efnp1BvPnHiRADAiBEjkJ6errTv/fv3ceHChapMv9LGjx8PAwMDTJgwATdv3lTanpmZqVBjXxkODg4wNTVFcnKywnr7GRkZmDBhwgv3XbZsGW7fvi3/d2FhoXxVoGefX1Cd8yfN2P/fu9hx4gZes62Fvh2cMbZHM/i718OF25n4ZN0JBC88iCdFVbt58Jtd5xH2/VGk5xRgmF8T9PFsgBNpD9F37j6cUnH/xo1/ctFrdixijlyFh3NtjAhoioYOFlhz4DJ6f7lX5TMDiF5W+vp6+PWb8Zgxvg/qOlhhW+xfWLUpDlduPMQ7PT1xYN0naNvCBQBga2OOKSOCYGJshPgTl7Di54P49c+TKCwqxvuD/ZH4y2fw9Gio3ROiV56kN/xW0ZMnTzB58mT4+PigXr16MDExQd26deHt7Y01a9aofD5RdnY2Jk+eDGdnZ/nzj6ZOnYrcXNWld6WlpVi+fDk8PDxgamoKe3t7DB48GFevXlXZH3h6L6Svry8sLCxgaWkJf39/lfdGquuVyvx36NABHTp0wObNm3Hv3j106tQJN2/exO+//47evXsrrTGvSkBAAP744w/06dMH/v7+OHjwIJo3b46ePXtixowZmD17Npo0aYKePXvC2dkZ6enpuHLlCg4fPowvv/wSzZs318CZPuXu7o4VK1Zg3LhxcHNzQ69evdC4cWPk5OTg6tWrSEhIQGhoKL777rtKj62np4fx48dj8eLFaNWqFfr06YPs7Gzs2bMHzs7OqFevXpn7durUCa1atcKgQYNgZmaGnTt34tKlS3j77bcVlkKtzvmTZpy98S/Orv+3SmMkXXqI10a+eFWn347fwG/Hb1R4zLsZ+Zi85niV5kX0sjA2MsSHw3vgw+Gqb6aXMTM1xqdjemtoVkQ1X25uLlauXIkOHTqgd+/esLe3R0ZGBvbs2YMRI0Zg06ZN2LNnj3z1x7y8PPj6+uLMmTPo0aMHBg8ejNOnT2PRokVISEjAoUOHYGJionCMsWPHIjo6Gi1atMDEiRNx9+5dbN68GXv37sWxY8eUqkk2bNiAkJAQ2NvbyxOmMTExCAwMxObNmzFw4MAqn/crFfzr6+vjjz/+wKeffoo///wTJ0+ehKurKxYtWoQ33nijQsE/8HR9+127duHNN9+UvwF4/fXXMWvWLPj4+OCbb77BgQMHkJmZCVtbWzRs2BCRkZH4z3/+U81nqGz06NFo3bo1vv76axw6dAg7d+6ElZUVGjRogI8++gjDhw9Xe+yvvvoKtWvXxtq1a7FixQrUqVMHgwcPRmRkJNzd3cvcb+nSpdiyZQuio6Nx8+ZNODo6IjIyEtOnT9fo/ImIiKjmePqEX2nHq4ratWsjKytL6WGixcXFCAwMxN69e7Fnzx707v30TfOCBQtw5swZTJs2DfPmzZP3//TTTzF//nwsWbJEIdaJi4tDdHQ0fHx8sG/fPvlxhgwZgl69eiEsLAyxsbHy/rLqCjs7OyQnJ8uXTZ82bRratGmDcePGISgoqMr3SQqiJu5MJaohZEt9WvWape2pEL0ybq5+V9tTIHrlmBm9WnfGenl54czNTDQYulSyMW9umITWDazLXN67Kr755ht8+OGHWLp0KT788EOIoggnJydkZ2fj/v37Cs98ysvLQ926deHg4CC//xR4GuT/8ssvSEhIULoX0t/fH/Hx8bhx4wYaNGgA4OmzpMaOHYuZM2fiiy++UOg/c+ZMREZGYt26dRg2bFiVzu2VqvknIiIiIqqK0tJS+TOlZJUOaWlpuHv3Lry9vRUCfwAwMzODt7c3rl69ilu3bsnb4+Pj5dueFxQUBABISEhQ6A8APXool/Cp6q+uV6rsh4iIiIhqrpq41GdhYSHmzp0LURSRnp6OAwcO4OLFi3jvvfcQEBAA4GnwD6DMFR9dXV0RGxuLtLQ01K9fH3l5ebh37x7c3d2VVqB8dhzZuOUdQ1V/dTH4JyIiIqKXUkpKCry8vFRuq2g5UGFhocLDWQVBwMcff6ywUqTsIaVWVsoPkQT+/9lFsn6V7V/ePqr6q4tlP0RERERU7QQI0NOT7iVU+Zbfp8zNzSGKIkpKSnDr1i18++23iI6Ohp+fH7KzsyU5Rk3CzD8RERERVT9B4rIf4WlNvlQ3/Orp6cHJyQnjxo2DnZ0dgoODMWfOHMyfP1+ejS8r8y57kyDrV9n+z+9ja2tbbn91MfNPRERERPQM2U23sptwy6u5f75e38zMDI6Ojrh27RpKSpQfdqmqvv9FxyjvnoPKYPBPRERERBpRk57w+yJ3794FABgaGgJ4GnTXq1cPiYmJyMvLU+ibl5eHxMRENGzYEPXr15e3+/r6yrc9T7a+/7NLgPr6+gIA9u7dW2Z/WZ+qYPBPRERERDrn/PnzyM/PV2rPz8/H5MmTAQC9evUC8PRNy6hRo5Cbm4vZs2cr9J89ezZyc3MxevRohfYxY8YAAGbMmIHCwkJ5+549exAfH48ePXrA2dlZ3h4cHAwrKyssX74ct2/flrffvn0bUVFRsLOzQ//+/at41qz5JyIiIiINqUlLfW7evBlff/01unTpAhcXF1haWuLOnTvYs2cP0tPT0bVrV3z00Ufy/p988gl27NiB+fPn4/Tp02jbti2Sk5Oxd+9eeHp6YtKkSQrj+/v7Y9SoUYiOjkbbtm3Ru3dv3Lt3DzExMahduzaWL1+u0N/GxgZRUVEICQlB27ZtMWjQIABATEwM0tPTERMTU+Wn+wIM/omIiIhIQ6q7XKcy3nzzTdy9exdHjx5FUlIScnNzYWVlhZYtW+Ldd9/FiBEjYGDw/6GymZkZEhISEBkZia1btyIuLg6Ojo6YMmUKIiIiYGpqqnSMVatWwcPDA99//z2WLVsGc3Nz9O/fH3PmzEHjxo2V+g8dOhR2dnaYO3cu1qxZA0EQ0K5dO4SHh6N79+6SnLcgiqIoyUhELwEvLy+cvPIIVr1maXsqRK+Mm6vf1fYUiF45ZkY1J0iWgpeXF/57KwtNRnwj2ZhXfpyIVvWtJFvtR1cw809ERERE1U6AtJn/V+vtkebwhl8iIiIiIh3BzD8RERERVb9qeMgXVR6DfyIiIiLSiJp0w6+uYtkPEREREZGOYOafiIiIiDSCiX/tY+afiIiIiEhHMPNPRERERNVOgCDxUp/8GEEdDP6JiIiIqPpxtZ8agWU/REREREQ6gpl/IiIiItIILvWpfcz8ExERERHpCGb+iYiIiEgjmPjXPgb/RERERKQRLPvRPpb9EBERERHpCGb+iYiIiKjaCZC27IefIaiHmX8iIiIiIh3BzD8RERERVT9B4pp/pv7VwuCfiIiIiDSC9/tqH8t+iIiIiIh0BDP/RERERKQBgsRLffJjBHUw809EREREpCOY+SciIiKiaselPmsGBv9EREREVP242k+NwLIfIiIiIiIdwcw/EREREWmEtDf8kjqY+SciIiIi0hHM/BMRERGRRjDxr30M/omIiIhII1j2o30s+yEiIiIi0hHM/BMRERFRteM6/zUDM/9ERERERDqCmX8iIiIiqn58yFeNwOCfiIiIiDSC9/tqH8t+iIiIiIh0BDP/RERERFTtBAjQkzD1L7DuRy3M/BMRERER6QgG/0RERESkEYIg3auq7ty5g6VLl6JHjx5o0KABjIyMULduXQwYMADHjx9X6h8ZGQlBEMp8Xb9+XeVxYmNj4evrCwsLC1haWsLf3x8HDhwoc16XL19GcHAw7OzsYGpqilatWmHlypUQRbHqJw2W/RARERGRJtSw1X6WL1+O+fPno3HjxujRowfs7e2RlpaG7du3Y/v27fj5558xaNAgpf2GDx8OFxcXpXZra2ultg0bNiAkJAT29vYIDQ0FAMTExCAwMBCbN2/GwIEDFfqfP38enTt3xuPHjxEcHIx69eph165dGD9+PM6fP4/ly5dX7aTB4J+IiIiIdFCHDh0QHx8PX19fhfbDhw8jICAA48aNQ79+/WBsbKywPTQ0FH5+fuWOn5GRgQkTJsDOzg7JyclwcnICAEybNg1t2rTBuHHjEBQUBAsLC/k+48aNQ1ZWFnbv3o033ngDADB79mx0794dUVFRGDJkCLy8vKp03iz7ISIiIiKN0BOke1XV22+/rRT4A0DXrl3h7++PjIwMnDt3Tu3xt2zZgszMTEyYMEEe+AOAk5MTwsLC8OjRI/z222/y9suXL+PQoUPw9/eXB/4AYGRkhNmzZwMAVq9erfZ8ZNTK/N+8eVPtAzZo0EDtfYmIiIiIqpuhoSEAwMBAOVQ+dOgQjh8/Dj09Pbi6uqJ79+4wNzdX6hcfHw8A6NGjh9K2oKAgREZGIiEhAcOGDSu3f5cuXWBmZoaEhAR1T0lOreDfxcVFrZotQRBQXFysziGJiIiI6CUmQNqafwFASkpKmWUwSUlJao178+ZN7N+/H46OjvDw8FDaHhERofBva2trLFu2TB7Ey6SlpQEAXF1dlcaQtcn6lNdfX18fDRs2xPnz51FcXKzyTUlFqbXnsGHDpL1hg4iIiIheeTU9fCwqKkJISAgKCgowf/586Ovry7e1atUKP/74I/z8/ODo6Ij79+/jjz/+wBdffIHQ0FBYW1vjrbfekvfPysoCAFhZWSkdx9LSUqFPef1l+5SWliInJwc2NjZqn6Nawf/atWvVPiARERERkRTc3d3VzvA/r7S0FKGhoTh06BBGjx6NkJAQhe39+/dX+LeLiwvCwsLQvHlzBAYGIjw8XCH4r6l4wy8RERERaYQg4f+kVFpaihEjRuDnn3/G0KFD8d1331V434CAADRu3Bjnzp1Ddna2vF2WwX82uy8j6/dslv9F/WX7CIKgsDqQOiQN/gsLC7F79258/fXX8ruSAeDJkyd4+PAhSktLpTwcEREREVGVlJaW4r333sO6deswePBgrF27Fnp6lQuR7ezsAAD5+fnyNlV1/TKq6vtf1L+kpATXrl1Dw4YNq1TvD0gY/P/+++9o0KAB+vTpg48//hiRkZHybWfPnoWjoyM2bdok1eGIiIiI6CUiQNqlPqXI/csC//Xr12PQoEH46aefFOr8KyIvLw+pqakwMzOTvwkAIF9GdO/evUr7xMbGKvQpr/+RI0eQl5encmnSypIk+E9MTMTAgQNhbGyMZcuWYciQIQrbO3TogCZNmmDr1q1SHI6IiIiIXjaCAEHCV1XvHpaV+qxfvx7vvPMONmzYUGbgn5OTg8uXLyu1P378GKNHj0ZOTg6Cg4MVsvLBwcGwsrLC8uXLcfv2bXn77du3ERUVBTs7O4X7CNzc3ODj44O4uDjs2bNH3l5YWIgZM2YAAEaNGlWlcwYkesLv7NmzYW1tjb/++gt2dnZIT09X6tO+fXscP35cisMREREREVXJrFmzsG7dOpibm6Np06b48ssvlfr069cPrVu3Rnp6Opo1awZPT080b94cdevWxYMHD7B//37cvn0bHh4eWLhwocK+NjY2iIqKQkhICNq2bYtBgwYBAGJiYpCeno6YmBil+v0VK1bA29sb/fr1w6BBg+Do6Ihdu3YhNTUVYWFh6Ny5c5XPW5Lg//jx4xg4cKDCRx3Pq1+/Pnbs2CHF4YiIiIjoJVSTlvq8fv06ACA3Nxdz5sxR2cfFxQWtW7dG7dq1MX78eJw4cQK7d+9GRkYGTE1N0bx5c0ycOBFhYWEwNTVV2n/o0KGws7PD3LlzsWbNGgiCgHbt2iE8PBzdu3dX6t+iRQscP34c4eHh2LVrF/Ly8tC0aVN8++23GDdunCTnLUnwX1BQIF+vtCyZmZmVvnmCiIiIiKg6rF27tsLL11taWiIqKkqt4/Ts2RM9e/ascH83Nzds2bJFrWNVhCTBf6NGjXDy5MkX9klKSkKzZs2kOBwRERERvYT0alLqX0dJkoofMGAAEhMTsWbNGpXbFy1ahJSUFHmtExERERHpFgFPy34ke2n7hF5SkmT+p06diq1bt2LUqFH4+eefUVBQAAD45JNPkJSUhKNHj6J169YICwuT4nBERERERKQGSYJ/c3NzHD58GGFhYdi8eTNKSkoAPM34C4KA4OBgrFixAsbGxlIcjoiIiIheNgKeLtEp4XhUeZIE/8DT5Yw2btyIb775BidPnsS///4LS0tLeHp6ok6dOlIdhoiIiIiI1CRZ8C9ja2tbqTuaiYiIiEg38H5f7ZM8+D99+jROnz6NrKwsWFlZoU2bNmjTpo3UhyEiIiKil4gAaVf74fsI9UgW/J88eRKjR4/GuXPnAACiKMrrujw8PBAdHY327dtLdTgiIiIiIqokSYL/5ORk+Pv7Iz8/HwEBAejatSvq1KmDBw8e4NChQzh48CD8/f1x+PBhtG7dWopDEhEREdFLhtl67ZMk+J8+fTqKiooQGxuLwMBApe2xsbHo06cPPv30U/z5559SHJKIiIiIiCpJkod8HT16FO+8847KwB8AgoKCMHDgQBw9elSKwxERERHRS0gQBMlepB5JMv8GBgZwdnZ+YZ+GDRtCX19fisMRERER0UtIjzG71kmS+e/cuTOOHz/+wj7Hjh1Dly5dpDgcERERERGpQZLgf+HChfjrr78QHh6O/Px8hW35+fn47LPPcPr0aSxYsECKwxERERHRS0bKkh+W/qhPrbKfESNGKLW1bNkSX331FVauXIk2bdrIV/s5ffo0MjMz0bVrVyxatAg//PBDlSdNRERERESVp1bwv3bt2jK3ZWRk4ODBg0rthw4dwuHDhxn8ExEREekoJuu1T63g/9q1a1LPg4iIiIhecSzV0T61gv/yVvYhIiIiIqKaR5KlPomIiIiIXkSAtEt98jME9Uga/D958gQnT57E3bt3UVBQoLLPsGHDpDwkERERERFVkGTB/7fffosZM2YgKytL5XZRFCEIAoN/IiIiIl0kSFzzz9S/WiRZ53/btm2YMGEC6tevj0WLFkEURfTt2xdz585Fz549IYoiBgwYgB9//FGKwxERERHRS0iQ8EXqkST4X7p0KRwcHJCUlISPPvoIANC6dWtMmzYNu3btwoYNG7B9+3beKExEREREpEWSBP9nz57FW2+9hVq1asnbSkpK5P89ZMgQdOvWDbNmzZLicERERET0EtITBMlepB5Jgv+ioiLY29vL/21qaorMzEyFPq1atUJycrIUhyMiIiIiIjVIcsNvvXr1cO/ePfm/nZ2dcfr0aYU+N27cgIEBVxYlIiIi0kUCpH3CL3P/6pEk8+/p6amQ1e/ZsycSExPx1VdfITU1FatWrcK2bdvg6ekpxeGIiIiI6KUjQBCkezH8V48kwf8777yDgoICXL9+HQAwffp0ODk5ITw8HC1btsS4ceNgbm6OBQsWSHE4IiIiIiJSgyR1OP3790f//v3l/7a3t8eZM2cQHR2Nq1evwtnZGSEhIXjttdekOBwRERERvYR4n672VVsRvo2NDaZOnVpdwxMRERERUSXxDlwiIiIiqnaCAEmX6OSnCOpRK/hfv3692gccNmyY2vsSERER0cuLAbv2qRX8h4aG/u8u64oTRRGCIDD4JyIiIiLSErWC/zVr1kg9DyIiIiJ6xVU2eUzSUyv4Hz58uNTzINKYdo3tkPDDYG1Pg+iVYeMZpu0pEL1yHp+O0vYU6BXFG36JiIiISCMkecAUVQmDfyIiIiKqdgKkLfthAZF6+AaMiIiIiHTOnTt3sHTpUvTo0QMNGjSAkZER6tatiwEDBuD48eMq98nOzsbkyZPh7OwMY2NjuLi4YOrUqcjNzVXZv7S0FMuXL4eHhwdMTU1hb2+PwYMH4+rVq2XOKzY2Fr6+vrCwsIClpSX8/f1x4MABSc4ZYPBPRERERJogAHoSvqqa+l++fDk++ugjXL16FT169MCUKVPQpUsX7NixA507d0ZMTIxC/7y8PPj6+mLJkiVo1qwZPvroI7i5uWHRokXo1q0bnjx5onSMsWPHYuLEiRBFERMnTkTPnj2xbds2eHp6Ii0tTan/hg0b0LNnT1y4cAGhoaEYPnw4UlNTERgYiF9//bVqJ/w/LPshIiIiIp3ToUMHxMfHw9fXV6H98OHDCAgIwLhx49CvXz8YGxsDABYsWIAzZ85g2rRpmDdvnrz/p59+ivnz52PJkiWYPn26vD0uLg7R0dHw8fHBvn37YGRkBAAYMmQIevXqhbCwMMTGxsr7Z2RkYMKECbCzs0NycjKcnJwAANOmTUObNm0wbtw4BAUFwcLCokrnzcw/EREREVU7AdJm/qta8//2228rBf4A0LVrV/j7+yMjIwPnzp0D8PR5VdHR0TA3N8eMGTMU+s+YMQPm5uaIjo5WaF+9ejUAYPbs2fLAHwDeeOMN+Pn5Ye/evbh586a8fcuWLcjMzMSECRPkgT8AODk5ISwsDI8ePcJvv/1WxbNm8E9EREREGiIIgmSv6mRoaAgAMDB4WiSTlpaGu3fvwtvbG2ZmZgp9zczM4O3tjatXr+LWrVvy9vj4ePm25wUFBQEAEhISFPoDQI8ePSrUX12Slv0UFhZi//79uHjxIvLy8uTvjJ48eYLs7GzY2dlBT4/vN4iIiIio6lJSUuDl5aVyW1JSklpj3rx5E/v374ejoyM8PDwAQF6f7+rqqnIfV1dXxMbGIi0tDfXr10deXh7u3bsHd3d36Ovrq+z/7LjlHUNVf3VJFon//vvvaNCgAfr06YOPP/4YkZGR8m1nz56Fo6MjNm3aJNXhiIiIiOglI+kNv9WgqKgIISEhKCgowPz58+WBe1ZWFgDAyspK5X6WlpYK/Srbv7x9VPVXlySZ/8TERAwcOBCOjo5YtmwZjh07hl9++UW+vUOHDmjSpAm2bt2KIUOGSHFIIiIiItJx7u7uamf4n1daWorQ0FAcOnQIo0ePRkhIiCTj1jSSBP+zZ8+GtbU1/vrrL9jZ2SE9PV2pT/v27ctcM5WIiIiIXn3VXKqvttLSUowYMQI///wzhg4diu+++05huywbX1bmPTs7W6FfZfs/v4+trW25/dUlSdnP8ePH0bdvX9jZ2ZXZp379+rh//74UhyMiIiKil4wgCNCT8CXVTb+lpaV47733sG7dOgwePBhr165Vuke1vJr75+v1zczM4OjoiGvXrqGkpKTc/uUdo7x7DipDkuC/oKBAXotUlszMTN7sS0REREQ1hizwX79+PQYNGoSffvqpzBt069Wrh8TEROTl5Slsy8vLQ2JiIho2bIj69evL2319feXbnidb39/Hx0ehPwDs3bu3zP6qliatLEmi8UaNGuHkyZMv7JOUlIRmzZpJcTgiIiIiegnpSfiqKlmpz/r16/HOO+9gw4YNKgN/4OmnFqNGjUJubi5mz56tsG327NnIzc3F6NGjFdrHjBkD4OlzAAoLC+Xte/bsQXx8PHr06AFnZ2d5e3BwMKysrLB8+XLcvn1b3n779m1ERUXBzs4O/fv3r/J5S1LzP2DAAHz55ZdYs2YN3nvvPaXtixYtQkpKChYsWCDF4YiIiIiIqmTWrFlYt24dzM3N0bRpU3z55ZdKffr164fWrVsDAD755BPs2LED8+fPx+nTp9G2bVskJydj79698PT0xKRJkxT29ff3x6hRoxAdHY22bduid+/euHfvHmJiYlC7dm0sX75cob+NjQ2ioqIQEhKCtm3bYtCgQQCAmJgYpKenIyYmpspP9wUkCv6nTp2KrVu3YtSoUfj5559RUFAA4OlFSkpKwtGjR9G6dWuEhYVJcTgiIiIieskIkPaG36oOdf36dQBAbm4u5syZo7KPi4uLPPg3MzNDQkICIiMjsXXrVsTFxcHR0RFTpkxBREQETE1NlfZftWoVPDw88P3332PZsmUwNzdH//79MWfOHDRu3Fip/9ChQ2FnZ4e5c+dizZo1EAQB7dq1Q3h4OLp3717FM35KEEVRlGKgjIwMhIWFYfPmzQo3NgiCgODgYKxYsQI2NjZSHIpIbV5eXigVgYQj0iwLRkSAjScTO0RSe3w6SttTkJSXlxduZT7Be0s2Szbmmo+CUd/aRLKlPnWFZE/4tbGxwcaNG/HNN9/g5MmT+Pfff2FpaQlPT0/UqVNHqsMQEREREZGaJAv+ZWxtbdGzZ0+phyUiIiKil1xNXedfl3DtTSIiIiIiHSFJ5r9bt24V6icIAg4cOCDFIYmIiIjoJSIIgJ6UN/zyUwS1SBL8x8fHv3C7IAgQRVGyJ7ERERER0ctHj7Gg1klS9lNaWqrylZmZiYMHD6Jjx44YOHCgwgMOiIiIiIhIs6q15t/S0hJ+fn6IjY3FiRMnylxDlYiIiIhefYIg3YvUo5Ebfi0sLPDGG29gzZo1mjgcERERERGpIPlSn2XR09PDvXv3NHU4IiIiIqpBBEh8w690Q+kUjQT/V69exZYtW+Di4qKJwxERERFRDSQwZNc6SYL/ESNGqGwvLi7GnTt3cOTIERQVFWHWrFlSHI6IiIiIiNQgSfC/du3aF253c3PDlClTMGrUKCkOR0REREQvISnLfkg9kgT/165dU9mup6cHa2trWFhYSHEYIiIiIiKqAkmCf0EQYGRkhLp160oxHBERERG9YviE35pBkqU+GzZsiM8++0yKoYiIiIjolSRAEKR7cb0f9UgS/NvY2MDW1laKoYiIiIiIqJpIUvbTtWtXHD9+XIqhiIiIiOgVxHX+awZJMv9fffUVzp49i1mzZqG4uFiKIYmIiIjoFSMI0r1IPZJk/hcsWAAPDw/MnDkTq1atQqtWrVCnTp3/1WP9P0EQ8MMPP0hxSCIiIiIiqiS1g399fX1ERkZixowZCuv837t3D/fu3VO5D4N/IiIiIh0lAHpSpuyZ/VeL2sG/KIoQRRFA2ev8ExERERFRzSFJ2Y+zs7MUwxARERHRK4o3/NYMkgT/RERERETl4Y262lel1X6ev6GXiIiIiIhqrioF/5GRkdDX16/wy8CAHzQQERER6So9CJK9SD1VisYtLS1hbW0t0VSIiIiIiKg6VSn4/+ijj/DFF19INRciIiIiekUJkLbmn7l/9bAOh4iIiIg0QsrVfkg9Var5JyIiIiKilwcz/0RERERU/fiE3xqBmX8iIiIiIh2hdua/tLRUynkQERER0SuMN/zWDCz7ISIiIiKNkLTsh9TCsh8iIiIiIh3BzD8RERERaQQT/9rHzD8RERERkY5g8E9ERERE1U7A08BTqpcUHyJs2LABY8eORfv27WFsbAxBELB27VqVfSMjIyEIQpmv69evq9wvNjYWvr6+sLCwgKWlJfz9/XHgwIEy53T58mUEBwfDzs4OpqamaNWqFVauXAlRFCU4Y5b9EBEREZEm/C9IlnK8qgoPD8eNGzdgZ2cHR0dH3Lhxo9x9hg8fDhcXF6V2a2trpbYNGzYgJCQE9vb2CA0NBQDExMQgMDAQmzdvxsCBAxX6nz9/Hp07d8bjx48RHByMevXqYdeuXRg/fjzOnz+P5cuXq3OaChj8ExEREZFOio6OhqurK5ydnTFv3jxMnz693H1CQ0Ph5+dXbr+MjAxMmDABdnZ2SE5OhpOTEwBg2rRpaNOmDcaNG4egoCBYWFjI9xk3bhyysrKwe/duvPHGGwCA2bNno3v37oiKisKQIUPg5eWl3sn+D8t+iIiIiEgjBAlfUujevTucnZ0lGk3Rli1bkJmZiQkTJsgDfwBwcnJCWFgYHj16hN9++03efvnyZRw6dAj+/v7ywB8AjIyMMHv2bADA6tWrqzwvBv9ERERERBV06NAhzJ8/HwsXLsT27duRm5ursl98fDwAoEePHkrbgoKCAAAJCQkV6t+lSxeYmZkp9FcXy36IiIiIqNoJkPYhX9paNTQiIkLh39bW1li2bBmGDRum0J6WlgYAcHV1VRpD1ibrU15/fX19NGzYEOfPn0dxcTEMDNQP4Rn8ExEREZFGSB2wp6SklFkDn5SUJOmxWrVqhR9//BF+fn5wdHTE/fv38ccff+CLL75AaGgorK2t8dZbb8n7Z2VlAQCsrKyUxrK0tFToU15/2T6lpaXIycmBjY2N2ufB4J+IiIiIqBz9+/dX+LeLiwvCwsLQvHlzBAYGIjw8XCH4r6kY/BMRERGRRkj9hF93d3fJM/yVFRAQgMaNG+PcuXPIzs6WZ/VlGfysrCzY2toq7JOdna3Q5/n+qmRnZ0MQBIXVgdTBG36JiIiIiKrAzs4OAJCfny9vU1XXL6Oqvv9F/UtKSnDt2jU0bNiwSvX+AIN/IiIiItKQFz0ht7KvmiIvLw+pqakwMzOTvwkAAF9fXwDA3r17lfaJjY1V6FNe/yNHjiAvL0+hv7oY/BMRERFRtRPwNPCU6qXJ8D8nJweXL19Wan/8+DFGjx6NnJwcBAcHK2Tlg4ODYWVlheXLl+P27dvy9tu3byMqKgp2dnYK9xG4ubnBx8cHcXFx2LNnj7y9sLAQM2bMAACMGjWqyufCmn8iIiIi0knR0dE4cuQIAODcuXPyNtma+126dMGoUaOQnp6OZs2awdPTE82bN0fdunXx4MED7N+/H7dv34aHhwcWLlyoMLaNjQ2ioqIQEhKCtm3bYtCgQQCAmJgYpKenIyYmRql+f8WKFfD29ka/fv0waNAgODo6YteuXUhNTUVYWBg6d+5c5XNm8E9EREREGlGTynWAp+U069atU2hLTExEYmKi/N+jRo1C7dq1MX78eJw4cQK7d+9GRkYGTE1N0bx5c0ycOBFhYWEwNTVVGn/o0KGws7PD3LlzsWbNGgiCgHbt2iE8PBzdu3dX6t+iRQscP34c4eHh2LVrF/Ly8tC0aVN8++23GDdunCTnLIiiKEoyEtFLwMvLC6UikHBEuysDEL1KbDzDtD0FolfO49NR2p6CpLy8vJCeV4gv1++UbMzwYX1ga2ak9dV+XjbM/BMRERGRRtSsvL9uYvBPRERERNVP6lV6algJ0cuCq/0QEREREekIZv6JiIiIqNrJlvqUcjyqPGb+iYiIiIh0BDP/RERERKQRNW2pT13E4J+IiIiINIKhv/ax7IeIiIiISEcw809ERERE1U6AtKtz8lME9TDzT0RERESkI5j5JyIiIiKN0GO+XusY/BMRERGRRnCxH+1j2Q8RERERkY5g5p+IiIiINEJg2Y/WMfNPRERERKQjmPknIiIiomonCBIv9ckPEdTC4J+IiIiINIKr/Wgfy36IiIiIiHQEM/9EREREpBEs1dE+Zv6JiIiIiHQEM/9EREREVO0ESHzDr3RD6RQG/0RERESkAYLE6/wz/FcHy36IiIiIiHQEM/9EREREpBF6TNZrHTP/REREREQ6gpl/IiIiItIIaWv+SR0M/omIiIio2nG1n5qBZT9ERERERDqCmX8iIiIi0giW/WgfM/9ERERERDqCmX8i0pi7DzOxY/9p7DuaisvXH+BhejZsLGuhY6tGmDgsEO3dXZT2yc59jPmrd+P3g2fwMD0Hdews0TegDaaN7gXzWsaaPwkiLfhwWHdETugHAAh8bxFOpVyXb3Nv+hr6d2+LVs0aoFUzJ9jZWODIX2no8/6yCo+/eek4BHq3wJOCIjh2+ajc/v0D2+LHuSMAACM/W4Nt+/6q1PmQjhIkXuqTHyKohZl/LUlLS0P//v3h6OgIPT09WFtbAwAiIyMhCALi4+MV+guCAD8/v2qZS3x8PARBQGRkZJXGqc45AmVfG3p5fB+TgM+WbMX1O4/QrVMzfPCfbujUujF2HzqHoJGLsW2vYgCR97gAb45dhhU/x6GpSx2MG+wPV2cHRG04gL7jvsGTgiItnQmR5jRv7IhPx/RGbn6Byu29fVth8ntB6NKuCR6m51R6/GH9OqNbp+Z4/KSwQv0dbC2w8JPgMudDVBYBsmf8SvU/UsdLlfkXKnmLuCiK1TSTqikpKUG/fv1w5coVhISEwMnJCSYmJtqeFlG1a9fCGX989yG827kqtB89fQX9xi/HlPkx6O3XEsZGhgCAb9bvx7nLt/HhsEBETugr7x+5fAeWrd+HFT8fxOT3gjR6DkSaZKCvhxURITh3+Tau3voHg3p1UOqz40Ay9hw6i/NX7qK2tRku/flVhcev71gbsz/sjxU/H0TfgDZwsLUsd5+lnw1Bbt4T/PzHcUwYGlCp8yEi7Xupgv+IiAiltqVLlyIrK0vltprq2rVrOH/+PEaPHo3vv/9eYVtYWBjeffddNGjQQEuzI6o+fbq1VtneuU0TdG3vioPHLuL8lbto87ozRFHETzuOwryWMaaO6qnQf+qonvjh10P4aUcSg396pU0Z0RPNGjnCL2Q+Jg7rrrLPxav31R4/asZ/8CA9G3NX7ULfgDbl9h/8Zke84eOBvuO/gVfrJmofl3SXlEt9knpequBfVVnK2rVrkZWVVeWSFU26e/cuAKBevXpK2+zs7GBnZ6fpKRFpnYGB/tP/13/6/3/ffIh7/2QhoFNzmJkq1vabmRqjY8tGOHDsAm7fz4BTXRuNz5eourV0c8KUEUH4atUuXLqmfoBfljGDfOHd1hW9xyytUAnda3Ws8dXkAVi77QgOnbzM4J/oJfVK1vxfv34dgiAgNDQUFy5cQP/+/WFrawtBEHD9+nWF7aqUVbuek5ODiIgItGjRAqamprC2tkZQUBCOHDlS4bm5uLjA19cXADBz5kwIgqBQb1/ZuvbCwkJ8/fXXaNu2LczMzGBhYYGuXbvi999/r/CcyhIXF4cRI0bAzc0N5ubmMDc3R/v27ZU+rXje7du3MXjwYNjZ2aFWrVrw9vbG/v37NT5/enncuv8vEk5cQl07S7ze5Omb4r9v/QMAaNTAXuU+svartx5qZpJEGmRkaIDvZg7Ducu3sWz9PsnHb1TfHl988BZWxcTj+NmrFdrnm/D/ICfvCWYs+03y+ZDuECR8kXpeqsx/ZV25cgWdOnWCh4cHQkNDkZ6eDiMjIxQWVuympmf9+++/8PHxQWpqKry9vfH+++8jOzsbO3bsgL+/P7Zs2YJ+/fqVO86kSZNw5swZrFu3Dr6+vvI3GercKFtQUICePXsiPj4erVu3xsiRI1FUVIRdu3ahb9++WL58OcLCwio9rsz8+fPl17B///7IzMzEn3/+ibFjx+LSpUtYvHix0j4ZGRnw9vaGvb09Ro0ahX/++QcxMTHo2bMnfv31V4VrVN3zp5dDUXEJ3v9iPQoKixExoR/09Z/mJLJzHwMALM1NVe5nYWbyv35PNDNRIg36bGxvNKpvD/9hC1BaKu39a4IgYGVkCB48ysaXK3ZWaJ8RA7qgW6fmGDDhW97oS1UgQE/Suh++BVDHKx38JyYm4osvvsDMmTMV2q9fv17psSZMmIDU1FSsXr0ao0aNkrd/9dVXaN++PcaMGYOePXuWe+PupEmTEB8fj3Xr1sHPz69K5UqzZs1CfHw8ZsyYIf8UAXj6CUW3bt0wZcoUvP322yrLiypi5cqVaNiwoUJbcXExevXqhWXLluHDDz9Uujfh7NmzGDJkCDZs2CCfz4cffghPT0+MGTMGQUFBMDU1rfb5e3l5qWxPSUnB6y3cKz0eVY/S0lKMj/wJR09fwfB+nfGuipsZiXSNp0dDhA0NwLzVu3Hh73uSjz8xJADt3V3QZ9w3eFyBch/n12wxc2J//LTjKA4euyD5fIi0acOGDTh8+DD++usvnDt3DoWFhVizZk2Z1SHZ2dmIjIzE1q1bcf/+fTg6OuKdd95BREQEzM3NlfqXlpbi22+/xffff48rV67A3Nwc3bt3x5w5c9CoUSOVx4iNjcXcuXORnJwMQRDQrl07hIeHIyBAmhvsX8myH5m6devi888/r/I4jx49QkxMDLp166YQ+AOAg4MDpk6din/++afM0pbqUFpaipUrV6Jx48YKgTMAWFhY4IsvvkBhYSG2bdum9jGeD/wBwMDAAO+//z5KSkoQFxentF1fXx9z585VmE/Lli0REhKCf/75B7t379bY/KlmKy0tRdisjfg19hSC3/DE19PfVdguy/jLPgF4Xk7ek//140pZ9OrQ/9/qPqlX7mDp2r2Sj9+4gQM+HdMbP/x6GEeTr1Ron+Xh/0FWTj7Cl/D3MVWNlCU/UpX+hIeH4/vvv8eNGzfg6Oj4wr55eXnw9fXFkiVL0KxZM3z00Udwc3PDokWL0K1bNzx5ovxJ9NixYzFx4kSIooiJEyeiZ8+e2LZtGzw9PZGWlqbUf8OGDejZsycuXLiA0NBQDB8+HKmpqQgMDMSvv/4qwRm/4pn/Vq1awcjIqMrjnDx5EiUlJSgoKFCZqZd98S5evIg333wT8fHxSjX7rVu3rlBZUEVdunQJGRkZqFevntInGwDwzz//yOekrpycHCxatAjbt2/H33//jby8PIXtshuXn9WgQQM4OzsrtXft2hU//PADTp8+jQEDBlT7/JOSklS2e3l5QeJP0EkNpaWl+GDWBmzadQIDgtphRUQI9PQUcxGN6/+vpv/mPyrHkLU3qu9QvZMl0iAzU2M0cX76Pf3PsW9U9tm35mMAwH8+/h67E85Wany3hnVhYmyI0cG+GB3sq7JPxskoAICz/1Rk5z5GSzcnWFnUwo34RSr7/zD3Pfww9z1M//pXfPdLfKXmQ6Rt0dHRcHV1hbOzM+bNm4fp06eX2XfBggU4c+YMpk2bhnnz5snbP/30U8yfPx9LlixR2D8uLg7R0dHw8fHBvn375DHpkCFD0KtXL4SFhSE2NlbePyMjAxMmTICdnR2Sk5Ph5OQEAJg2bRratGmDcePGISgoCBYWFlU651c6+K9Tp44k4/z7778AnpYRJSYmltlPFhzHx8crBbTDhw+XNPiXzSk1NRWpqanlzqmyCgsL4efnh+TkZLRp0wYhISGwtbWFgYEBrl+/jnXr1qGgQLnus6xrLmvPysrSyPyp5no28O8f2BarZg6X1/k/q3EDBzjaW+H42avIe1ygsOJP3uMCHD97Fc71bLnSD71SCouKsX77UZXbOrdpgibODtidcBaPMnJx8156pce/eS+9zPH7B7aFqbEhfv7juHwuALBp1wmYmign0lo1q49Wzerj0MlLuH4nvVpKlOgVVMPK9Lt3V72E7vNEUUR0dDTMzc0xY8YMhW0zZszAt99+i+joaIXgf/Xq1QCA2bNnKySj33jjDfj5+WHv3r24efOmvIR6y5YtyMzMxMyZM+WBPwA4OTkhLCwMkZGR+O233zBs2DC1zxd4xYP/sh4KJsswFhcXK22TBafPsrR8+tCTKVOmYNEi1ZmPZ0VGRlb70qOyOQ0YMECyj4GetWPHDiQnJ2PkyJGIjo5W2LZp0yasW7dO5X4PHjx4YbuVlRWA6p8/1UyyUp9Nu06gX/c2+H6W6sAfePrzG9K3MxZE78HC6D8VHvK1MPpP5OYX4KPQHpqaOpFGPCkowodzfla57duIoWji7IAla/fiVMp1tcZPuXynzPH9OrjB0NZSafuni1X/jp42uhdaNauPdb8dxbZ9f6nsQ/S8l/W5vGlpabh79y6CgoJgZmamsM3MzAze3t6IjY3FrVu3UL9+fQBPk8Gybc8LCgpCfHw8EhISEBISIu8PAD16KP9tCwoKQmRkJBISEhj8q8Pa2hoAcOfOHaVtp0+fVmrz9PSEIAhllpJoQ/PmzWFpaYlTp06hqKgIhoaGko7/999/AwD69u2rtO3w4cNl7nfz5k3cuHFDqfRHtk+bNk8fIlPd86eaaUH0Hvyy6zjMaxmjcQMHLPrxT6U+vX1bwcPtacZj4rDu2J1wFsvW78O5y7fQ0q0+zl66hYPHLqLt684YN9hf06dAVOO4OtfBpNBAAICJ8dPfpa4udfBtxFB5nw9mbtDK3IiqW0pKSpmLfEgZt8lKvF1dXVVud3V1RWxsLNLS0lC/fn3k5eXh3r17cHd3h/7/nl/zfP9nxy3vGKr6q+uVvuG3LJaWlnBzc8ORI0dw5cr/3/CUk5Ojstarbt26CA4OxtGjR7Fw4UKIonLR+PHjx5Gfn1+t836WgYEBxo0bhxs3buDjjz9GUZHyig0pKSl4+FC9NdBlwfvzzzBISEiQf4ylSklJCT777DOFa3T27Fn89NNPsLe3R69evTQyf6qZbt59Wu6Vm1+AxT/GYv7qPUqvc5dvy/ubmRrjj+8nYdxgf1y69gDfbjyIy9cfIOw/3bB9xQSVpQhEusbB1hJD3uyEIW92wtuB7QAAdZ5pG/JmJy3PkOh/hKdP+JXqpckPEWSVIbIKhufJKhpk/Srbv7x9VPVXl05m/oGnJTxjxoyBl5cX3nnnHZSWlmLPnj3w9PRU2X/FihW4dOkSPvnkE/z000/w8vKCtbU1bt26hVOnTiEtLQ337t1DrVq1NHYOM2fORHJyMr755hvs2rULPj4+cHBwwJ07d3Du3Dn897//RVJSEhwcKn9DZJ8+feDi4oIFCxYgJSUF7u7uuHTpEv744w/079+/zFKdli1b4siRI/D09ET37t3l6/wXFxfj+++/ly/zWd3zp5ppRWQIVkSGVGofK3NTzJ08AHMnD6imWRG9HD6YuUFlBj8xOQ02nlV/JkqrvhGV6j9/9W7MX727ysclqgp3d/caVZnxMtDZ4H/06NEoKirC0qVLER0dDUdHR4SGhiI8PFzlCkG1a9fG0aNHERUVhZiYGGzcuBGlpaWoW7cuWrVqhRkzZsDOzk6j52BsbIw9e/bghx9+wPr167F161YUFBSgTp06eP311/H+++/Dw8NDrbHNzc1x8OBBTJ06FYcOHUJ8fDxatGiBjRs3ok6dOmUG/zY2Nti1axc+/vhjrF69Gvn5+WjTpg1mzpyJwMBAjc2fiIiIap6Xs+L//7PxZWXes7OzFfpVtv/z+9ja2pbbX10vffCv6oFdLi4uKktznjd+/HiMHz9eqb2sfU1NTTF16lRMnTq10vN8lp+fX5nHKOtm4bL66+vrY8yYMRgzZozk82nYsGGZQb6q/s+2bdq0qULHrsz8NXEjNREREVWjlzT6L6/m/vl6fTMzMzg6OuLatWsoKSlRqvtXVd/v6uoqryZ5Pvgv756DytDJmn8iIiIioopydXVFvXr1kJiYqLQMeV5eHhITE9GwYUP5Sj8A4OvrK9/2PNn6/j4+Pgr9AWDvXuUH/Mn6y/pUBYN/IiIiIqp2T+/RlfJ/Gpy7IGDUqFHIzc3F7NmzFbbNnj0bubm5GD16tEK7rKphxowZKCwslLfv2bMH8fHx6NGjh8LqiMHBwbCyssLy5ctx+/b/L35x+/ZtREVFwc7ODv3796/yubz0ZT9EREREROqIjo6Wr2x47tw5eZtszf0uXbpg1KhRAIBPPvkEO3bswPz583H69Gm0bdsWycnJ2Lt3Lzw9PTFp0iSFsf39/TFq1ChER0ejbdu26N27N+7du4eYmBjUrl0by5cvV+hvY2ODqKgohISEoG3bthg0aBAAICYmBunp6YiJiany030BBv9EREREpCFlPH9Va44cOaL04NLExESFUh1Z8G9mZoaEhARERkZi69atiIuLg6OjI6ZMmYKIiAiFFQ1lVq1aBQ8PD3z//fdYtmwZzM3N0b9/f8yZMweNGzdW6j906FDY2dlh7ty5WLNmDQRBQLt27RAeHl7hpxGXRxArcmcs0SvCy8sLpSKQcITLghFJRYplJolI0ePTUdqegqS8vLyQV1CCtdv2SzZm6NvdYWasz6U+K4k1/0REREREOoJlP0RERESkGTWs7EcXMfNPRERERKQjmPknIiIiIo3Q7AKdpAqDfyIiIiLSiJq22o8uYtkPEREREZGOYOafiIiIiKqdAGnv9+WHCOph5p+IiIiISEcw809ERERE1Y+p/xqBwT8RERERaQRX+9E+lv0QEREREekIZv6JiIiISCO41Kf2MfNPRERERKQjmPknIiIiIo1g4l/7GPwTERERkWYw+tc6lv0QEREREekIZv6JiIiIqNoJ//uflONR5THzT0RERESkI5j5JyIiIiKN4FKf2sfgn4iIiIg0grG/9rHsh4iIiIhIRzDzT0RERETVT4C0qX9+jKAWZv6JiIiIiHQEM/9EREREpBFcnlP7GPwTERERkUZwtR/tY9kPEREREZGOYOafiIiIiKod7/etGZj5JyIiIiLSEcz8ExEREZFmMF2vdQz+iYiIiEgjuNqP9rHsh4iIiIhIRzDzT0REREQawaU+tY+ZfyIiIiIiHcHMPxERERFpBBP/2sfgn4iIiIg0g9G/1rHsh4iIiIhIRzDzT0RERETV7ukTfqVL/fNDBPUw809EREREOsnFxQWCIKh8+fn5KfUvKCjArFmz4OrqChMTE9SrVw9jxozBw4cPyzzGxo0b0aFDB5iZmcHGxgZvvvkmkpOTq/GsXoyZfyIiIiKqfoLES31KNJaVlRUmTZqk1O7i4qLw79LSUvTt2xexsbHo1KkTBgwYgLS0NERHR+PAgQM4duwY7O3tFfaZM2cOwsPD4ezsjPfffx85OTnYtGkTOnfujAMHDsDb21uak6gEBv9EREREpBE1sVTH2toakZGR5fZbt24dYmNjMXjwYGzcuBHC/97JfPfddxg3bhzCw8OxatUqef+0tDRERkaiadOmOHHiBKysrAAA48ePR6dOnTB69GikpKRAT0+zhTgs+yEiIiIiKsfq1asBAF999ZU88AeAsWPHolGjRti4cSMeP34sb1+zZg2Ki4vx+eefywN/AGjdujUGDx6MCxcu4MiRI5o7gf9h8E9EREREmiFI+JJIQUEB1q5di7lz5yIqKgrHjx9X6vPkyRMcP34cbm5ucHZ2VjwlQUBgYCDy8vJw6tQpeXt8fDwAoEePHkrjBQUFAQASEhKkO5EKYtkPEREREb2UUlJS4OXlpXJbUlJShca4f/8+3nvvPYU2T09P/PLLL2jcuDEA4O+//0ZpaSlcXV1VjiFrT0tLQ9euXeX/bW5ujrp1676wv6Yx809EREREGiBI+j8p0v/vvfceDhw4gAcPHiAvLw+nT59GSEgITp48iYCAAOTk5AAAsrKyAEChfOdZlpaWCv1k/12Z/prCzD8RERERaYSkq/0AcHd3r3CGX5WIiAiFf7du3Rrr168HAPz0009YvXo1Jk+eXKU51jTM/BMRERERPWPs2LEAgMTERAD/n/EvK1OfnZ2t0E/235XprykM/omIiIio2kl5r6/E9/wqsbOzAwDk5eUBABo1agQ9Pb0ya/Rl7c/eE+Dq6orc3Fzcv3+/Qv01hcE/EREREdEzZCv+yB70ZWpqig4dOuDSpUu4ceOGQl9RFLFv3z6YmZmhffv28nZfX18AwN69e5XGj42NVeijSQz+iYiIiEgjBEG6V1VdvHgR+fn5KtunTZsGABgyZIi8fcyYMQCA6dOnQxRFefuqVatw9epV/Oc//4Gpqam8/b333oOBgQHmzJmjUP5z5swZ/PLLL2jevDm6dOlS9ROpJN7wS0REREQaUnOe8btp0yZ8/fXX8PHxgbOzM8zMzHD58mXs3r0bRUVFmD59Onx8fOT9hw8fjpiYGPzyyy+4du0afH19ceXKFWzbtg0NGzbEl19+qTB+06ZNERkZifDwcLRq1QoDBgxATk4ONm3aBODpQ8M0/XRfgME/EREREekgf39/XLhwAadPn8bhw4eRn58POzs79OrVC+PHj1d6OJeenh527NiBefPm4aeffsKSJUtQu3ZtjBw5El9++SXs7e2VjvH555/DxcUFS5cuxcqVK2FkZISuXbti9uzZaNu2raZOVYEgPvu5BdErzsvLC6UikHBE/WXBiEiRjWeYtqdA9Mp5fDpK21OQlJeXFwpLRPy+95BkY77VwwdG+kKVlvrURaz5JyIiIiLSESz7ISIiIiKNqDkV/7qLwT8RERERVTsB0j7hl28k1MOyHyIiIiIiHcHMPxERERFphMB8vdYx809EREREpCOY+SciIiIizWDiX+sY/BMRERGRRjD21z6W/RARERER6Qhm/omIiIhII6Rc6pPUw8w/EREREZGOYOafiIiIiDSCS31qH4N/IiIiItIMxv5ax7IfIiIiIiIdwcw/EREREVU7AdIm/vkhgnqY+SciIiIi0hHM/BMRERFR9RMkXuqTqX+1MPgnIiIiIo3gaj/ax7IfIiIiIiIdwcw/EREREWkEn/Crfcz8ExERERHpCAb/REREREQ6gmU/RERERFTtBEhb9sMKIvUw809EREREpCOY+SciIiIiDRAkXuqTuX91MPNPRERERKQjmPknIiIiIo3gUp/ax+CfiIiIiDSCsb/2seyHiIiIiEhHMPNPRERERNVPgLSpf36MoBZm/omIiIiIdAQz/0RERESkEdIu9UnqYPBPRERERNWOT/itGVj2Q0RERESkI5j5JyIiIiKNYLZe+5j5JyIiIiLSEcz8ExEREZFmMPWvdQz+iYiIiEgjuNqP9rHsh4iIiIhIRzDzT0REREQaIeVSn6QeBv+kU65evYq8/Hz4dvHS9lSIXhkFl69pewpErxQ9E1ttT6FapKack/Tvb2rKOXh4eEg2nq5g8E86xcbGBgCgx8xDjZaSkgIAcHd31/JMqCI6tmyo7SlQOfgz9XJ5Fb9O1XFOHh4er+S1qm6CKIqitidBRPQsL6+nmaGkpCQtz4To1cCfKSKS4Q2/REREREQ6gsE/EREREZGOYPBPRERERKQjGPwTEREREekIBv9ERERERDqCq/0QEREREekIZv6JiIiIiHQEg38iIiIiIh3B4J+IiIiISEcw+CciIiIi0hEM/omIiIiIdASDfyId4eLiAhcXF40ft6ioCJGRkXB1dYWxsTEEQcD27dtx/fp1CIKA0NBQhf6hoaEQBAHXr1+vlvlIcR2qe45lXRuitLQ09O/fH46OjtDT04O1tTUAIDIyEoIgID4+XqG/IAjw8/OrlrnEx8dDEARERkZWaZzqnCNQ9rUh0lUG2p4AESm6fv06GjZs+MI+GRkZ8j/6Nd3ixYsxc+ZM+Pj4IDg4GIaGhmjWrJm2p0U6RBCESvWvqStgl5SUoF+/frhy5QpCQkLg5OQEExMTbU+LiF4yDP6JaqjGjRtj6NChKre9TH/w//jjD5ibm2Pfvn0wMjKStxcVFeHChQuwsrLS4uxIF0RERCi1LV26FFlZWSq31VTXrl3D+fPnMXr0aHz//fcK28LCwvDuu++iQYMGWpodEb0sGPwT1VBNmjSp8sfpNcHdu3dha2urEPgD4CcApDGqfo7Wrl2LrKysl+pn7O7duwCAevXqKW2zs7ODnZ2dpqdERC8h1vwTvaT++usvhIWFwd3dHVZWVjA1NYWHhwfmzZuHoqKiCo/z9ddfQ09PDwEBAcjJyZG379ixAwEBAbCxsYGJiQnc3d2xaNEilJSUVGhcWZ3ttWvXcOPGDQiCAEEQ5PX26tS1Hzp0CH369IGdnR2MjY3h6uqK8PBw5OfnV3gMVe7evYuIiAh06tQJDg4OMDY2houLC8aPH4+HDx+WuV9paSkWLFgAV1dXmJiYoGHDhpg1a1aZ17+65k/SePZ78sKFC+jfvz9sbW3l93eU9z1bVu16Tk4OIiIi0KJFC5iamsLa2hpBQUE4cuRIhefm4uICX19fAMDMmTPlP0+yNy+VrWsvLCzE119/jbZt28LMzAwWFhbo2rUrfv/99wrPqSxxcXEYMWIE3NzcYG5uDnNzc7Rv317p04rn3b59G4MHD4adnR1q1aoFb29v7N+/X+PzJ3rVMfNP9JJavXo1du7cCR8fH/Tq1Qv5+fmIj4/H9OnTcfLkSWzduvWF+4uiiGnTpmHhwoV45513sGHDBnl2fvr06Zg3bx5ee+01vP3227CyssLhw4cxdepUHD9+HFu2bCl3frIgaOnSpQCASZMmAYDa9yqsXLkSH3zwAaytrdGnTx84ODjg1KlTmDNnDuLi4hAXF6f06UJFHTp0CIsXL0ZAQAA6duwIQ0NDnD59GitXrkRsbCySk5NVlidNmjQJiYmJCA4Ohrm5OXbu3ImIiAicPXsWv/76q8bmT9K6cuUKOnXqBA8PD4SGhiI9PR1GRkYoLCys9Fj//vsvfHx8kJqaCm9vb7z//vvIzs7Gjh074O/vjy1btqBfv37ljjNp0iScOXMG69atg6+vr/znS50bZQsKCtCzZ0/Ex8ejdevWGDlyJIqKirBr1y707dsXy5cvR1hYWKXHlZk/f778Gvbv3x+ZmZn4888/MXbsWFy6dAmLFy9W2icjIwPe3t6wt7fHqFGj8M8//yAmJgY9e/bEr7/+qnCNqnv+RK88kYhqlGvXrokAxMaNG4sRERFKr6SkJFEURfHGjRticXGxwr6lpaXiiBEjRADikSNHFLY5OzuLzs7OoiiKYlFRkThs2DARgPjBBx+IJSUl8n579+4VAYhBQUFibm6uwtjvv/++CED89ddfK3w+zx5X1XkOHz5coX348OEiAPHatWvyttTUVNHAwEBs1aqV+OjRI4X+X331lQhAXLRokdrzefDggZiTk6PUd926dSIA8csvv1Q5R3t7e/HWrVvy9oKCAtHHx0fpGlV2/mVdG5KOs7Oz+PyfQNl1ByB+8cUXSvuU93UBIPr6+iq0DRkyRAQgrl69WqH9wYMHYv369UV7e3vx8ePHFZpzXFycCECMiIhQ2hYRESECEOPi4sqd02effSYCEGfMmCGWlpbK27Ozs8X27duLRkZG4p07d9Sez9WrV5X6FhUViYGBgaK+vr5448YNpTkCEIcMGaIwn//+97+ikZGRaG9vL+bn56s9/7KuDZGuYvBPVMM8G4Coei1ZsuSF+//1118iADEyMlKhXRb05uXlib169RIBiDNnzlTa/6233hIBKP2BFkVRzMzMFAVBEAcMGFDh85Ei+J84caIIQDx06JDSOCUlJaK9vb3Yrl27Ks1HldLSUtHS0lL08/NTOcfn3xSIoigePnxYBCC++eabas+fwX/1e1HwX7duXbGgoEBpn8oG///884+or68vduvWTWX/b775RgQg7ty5s0JzliL4LykpEW1sbMTGjRsrBM4yv//+uwhAXL58eZXmo8rWrVtFAOLatWuV5qivry9ev35daZ+RI0cqvJlWZ/4M/okUseyHqIYKCgrCn3/+Web2wsJCREVFYdOmTbh48SJyc3MVliiU3Rz4rMePHyMgIAAnTpzAd999h7Fjxyr1OXbsGMzMzPDjjz+qPK6pqSkuXrwIAMjMzJSX9TxL6psojx07BgCIjY3FgQMHlLYbGhrK56Subdu2YdWqVUhOTkZGRobCvQ2qriUAdO3aVanNy8sLBgYGOH36tEbnT9Jp1aqVJCVYJ0+eRElJCQoKClT+TKSlpQEALl68iDfffBPx8fFKNfutW7euUFlQRV26dAkZGRmoV68eZs6cqbT9n3/+kc9JXTk5OVi0aBG2b9+Ov//+G3l5eQrbVf08NWjQAM7OzkrtXbt2xQ8//IDTp09jwIABGpk/0auOwT/RS2rgwIHYuXMnmjZtikGDBsHBwQGGhobIzMzEsmXLUFBQoLRPTk4OTp8+DVtbW/j7+6sc999//0VxcbHKP6wysj/mmZmZKvtJHfz/+++/AIA5c+ZIOq7M4sWL8fHHH8Pe3h49evSAk5MTTE1NATy9Z0HVtQSAOnXqKLXp6+vD1tYWWVlZ8rbqnj9JS9XXVR2yr3tiYiISExPL7Cf7eYqPj1f6eRo+fLikwb9sTqmpqUhNTS13TpVVWFgIPz8/JCcno02bNggJCYGtrS0MDAxw/fp1rFu3TuXPU1nXXNYu+3mq7vkT6QIG/0QvoZMnT2Lnzp0ICgrCrl27oK+vL9927NgxLFu2TOV+Dg4OWLVqFfr16wc/Pz/ExcXBzc1NoY+lpSUEQcCjR4/KnYeLi4tGHohkaWkJAMjOzoaFhYWkYxcXF2P27NlwdHTEmTNn4ODgIN8miiIWLFhQ5r4PHjxQun4lJSVIT09XCGaqc/4kvbIeCqan93SBvOLiYqVtz77Zk5F93adMmYJFixaVe9zIyMhqX3pUNqcBAwYo3ZQuhR07diA5ORkjR45EdHS0wrZNmzZh3bp1Kvd78ODBC9tlN9xX9/yJdAGX+iR6Cf39998AgN69eysE/gBw+PDhF+4bFBSE33//HZmZmfD398elS5cUtnfs2BHp6enykoSaoGPHjgD+v3xGSo8ePUJWVha8vLwUAn8AOHXqFB4/flzmvqqudVJSEoqLi9GmTRt5W3XOnzRHtlLVnTt3lLY9W+Yl4+npCUEQkJSUVN1Tq7DmzZvD0tISp06dqtSSwBUl+93Ut29fpW0v+t108+ZN3Lhxo8x9ZD9P1T1/Il3A4J/oJSSrjX1+nfDU1FR89dVX5e4fGBiInTt3IjMzE35+fgr1sRMnTgQAjBgxAunp6Ur73r9/HxcuXKjK9Ctt/PjxMDAwwIQJE3Dz5k2l7ZmZmSqDr4pwcHCAqakpkpOTFdbbz8jIwIQJE16477Jly3D79m35vwsLC/H5558DgMJa8NU5f9IcS0tLuLm54ciRI7hy5Yq8PScnB9OnT1fqX7duXQQHB+Po0aNYuHChyk/Jjh8/rtHnPBgYGGDcuHG4ceMGPv74Y5UBdEpKygufb/EiZf1uSkhIwOrVq8vcr6SkBJ999pnCNTp79ix++ukn2Nvbo1evXhqZP5EuYNkP0UuoQ4cO6NChAzZv3ox79+6hU6dOuHnzJn7//Xf07t27Qh+HBwQE4I8//kCfPn3g7++PgwcPonnz5ujZsydmzJiB2bNno0mTJujZsyecnZ2Rnp6OK1eu4PDhw/jyyy/RvHlzDZzpU+7u7lixYgXGjRsHNzc39OrVC40bN0ZOTg6uXr2KhIQEhIaG4rvvvqv02Hp6ehg/fjwWL16MVq1aoU+fPsjOzsaePXvg7Oys8mmqMp06dUKrVq0waNAgmJmZYefOnbh06RLefvttDBgwQCPzJ82aMmUKxowZAy8vL7zzzjsoLS3Fnj174OnpqbL/ihUrcOnSJXzyySf46aef4OXlBWtra9y6dQunTp1CWloa7t27h1q1amnsHGbOnInk5GR888032LVrF3x8fODg4IA7d+7g3Llz+O9//4ukpCSlT8Iqok+fPnBxccGCBQuQkpICd3d3XLp0CX/88Qf69+9f5u+mli1b4siRI/D09ET37t3l6/wXFxfj+++/l9+DU93zJ9IJWl1riIiUyJYTDAoKemG/hw8fiiNGjBDr1asnmpiYiB4eHuK3334rXr16VeVyhGUtcRkXFyeamZmJderUEVNTU+Xt+/btE/v06SPa29uLhoaGYt26dUUvLy9x9uzZ4s2bNyt8PlIs9Slz4sQJ8d133xXr1asnGhoainZ2dmLbtm3FTz/9VPy/9u42pqmzjQP4vwItiBQCFKZk5bUzJqBTYJMwXjRuMqMBwgedWQcqc3POYCIuxjEEE2QSRqJmMt3mJotRE+Z0onNGAogZzhkMDuMwvAosbqgoKpFSuJ4Ppn1WW7CKU56n/1/ih973dc59nVOC1znnPjeXL19+4nwMBoMUFBSITqcTlUolWq1W1q1bJ3fu3LEZb8qxpaVFPv30UwkLCxOlUimBgYGSl5dnc5nIx8mfS33++0Zb6vNR5/3zzz8XnU4nLi4uotVqJTc3VwwGg8019UVE+vv7paioSCIjI8Xd3V3c3NwkODhYUlJSpKysTAYHB+3K+Wmt8y8iYjQaZdeuXRIbGytqtdr8c5+UlCSlpaUWf+PjcfNpbW2VtLQ00Wg0MnHiRImOjpYDBw6MGG/KsbOzUxYvXize3t7i6uoqMTExcvLkSZtjP07+XOqTyJJC5Bm8rUdERERERM8d5/wTERERETkIFv9ERERERA6CxT8RERERkYNg8U9ERERE5CBY/BMREREROQgW/0REREREDoLFPxERERGRg2DxT0RERETkIFj8ExERERE5CBb/REREREQOgsU/EREREZGDYPFPRPQ/qr29HQqFAhkZGRbtiYmJUCgUzyepxxQUFISgoCC7Yqurq6FQKJCXlzemMRUKBRITE8e0j9Hk5eVBoVCgurr6XxuDiOhJsfgnInoEU5H9z39KpRIvvvgili5diosXLz7vFJ+qjIwMKBQKtLe3P+9UiIjoKXN+3gkQEf2vCA0Nxdtvvw0AuHv3Ls6ePYv9+/fj0KFDqKysRGxs7HPO8IGysjL09/c/7zSIiGgcYvFPRGSnsLAwqyknOTk5KCgowMcffzxupnlotdrnnQIREY1TnPZDRDQGa9asAQD89ttv5jbTnPLu7m688847eOGFFzBhwgSLi4PTp09j0aJF8PX1hUqlgk6nQ05Ojs079kNDQ9i6dSvCwsLg6uqKsLAwFBYWYnh42GZOo835P3LkCN544w34+PjA1dUVQUFB0Ov1aGxsBPBgDv7evXsBAMHBweZpTg/PkW9ra0NmZia0Wi1UKhUmT56MjIwMdHR0jDhudHQ03Nzc4O/vj3fffRe9vb22T+pjqqqqwvLlyzF16lRMmjQJkyZNQlRUFHbv3j3qdl1dXXjrrbfg6+uLiRMnIjY2FqdOnbIZazAYUFJSglmzZsHd3R0eHh6Ii4vDjz/++FSOgYjoWeGdfyKip+DhYvvGjRuIiYmBt7c3lixZgvv370OtVgMASktLsXr1anh5eWHRokXw8/PD+fPnUVBQgKqqKlRVVUGpVJr3tXLlSuzZswfBwcFYvXo17t+/j5KSEvzyyy+PleO6detQUlICb29vpKSkwM/PD52dnTh16hQiIyMRHh6OtWvX4ttvv0VDQwOysrLg5eUFABYv5f7666+YP38+7t27h4ULF0Kn06G9vR379u3DTz/9hLq6OoSEhJjjy8rKkJ6eDrVaDb1eDy8vL1RUVGDevHkwGAwWx/oktm7diubmZsyePRupqam4desWTpw4gffeew9NTU347LPPrLbp7e1FbGwsNBoNMjMz0dPTg4MHDyIpKQnl5eVISUkxxw4MDCApKQnV1dV4+eWXsWLFCgwODuLYsWNITk7Gjh078OGHH47pGIiInhkhIqJRtbW1CQCZP3++VV9ubq4AkDlz5pjbAAgAWbZsmRiNRov4S5cuibOzs8yYMUOuX79u0VdYWCgApLi42NxWVVUlAGTGjBly9+5dc3tXV5f4+voKAElPT7fYT0JCgjz86/3o0aMCQCIiIqzGHRwclGvXrpk/p6enCwBpa2uzOl6DwSBBQUHi4eEh9fX1Fn21tbXi5OQkCxcuNLfdvn1b1Gq1uLu7S1NTk8V+4uPjBYAEBgZajWOL6Vxs2rTJor21tdUqdnBwUF5//XVxcnKSjo4Oiz7T97N06VIZHh42tzc0NIhSqRSNRiP9/f3m9o0bNwoA+eSTTyzi+/r6JCoqSpRKpXR3d5vbN23aJACkqqrKruMiInqWOO2HiMhOzc3NyMvLQ15eHtavX4/4+Hhs3rwZrq6uKCgosIhVKpUoKiqCk5OTRfuuXbtgNBqxY8cO+Pj4WPR99NFH0Gg02L9/v7mtrKwMAJCbmwt3d3dze0BAALKysuzOfefOnQCAbdu2WY3r7OwMf39/u/ZTUVGB9vZ2rF+/HjNnzrToe+2115CcnIzjx4+jr68PAHD48GH09fVh+fLleOmll8yxLi4uVufsSQUHB1u1OTs74/3338fQ0BCqqqqs+p2cnLBlyxaLJzbTp0+HXq9HT08Pjh8/DgAYHh5GaWkpQkNDkZ+fbxHv4eGB3NxcGAwGHDp06KkcCxHRv43TfoiI7NTS0oL8/HwAD4pXf39/LF26FBs2bEBERIRFbHBwMHx9fa32cfbsWQDAzz//jMrKSqt+FxcX/PHHH+bPDQ0NAIC4uDirWFttIzl37hxUKhUSEhLs3sYWU/5NTU0219u/du0ahoeHceXKFURFRY2af0xMDJydx/7f0J07d1BcXIzDhw+jpaUF9+7ds+j/888/rbbRarUIDAy0ao+Li8PXX3+NCxcuIC0tDU1NTejt7cWUKVPM3/0/9fT0AIDFd0ZENJ6x+CcistP8+fNx4sQJu2JHupN+8+ZNALD7rvft27cxYcIEmxcS9t6tN+0nICAAEyaM7YGvKf99+/aNGmcqwG/fvg0A8PPzs4pxcnKyegrxuAwGAxITE1FfX4+ZM2dCr9fDx8cHzs7OaG9vx969ezEwMGC13UjnztRuytt0vJcuXcKlS5dGzOPhCw4iovGKxT8R0b9gpNV2TC/99vX1wcPD45H78fT0xPDwMK5fvw6NRmPR99dff9mdj5eXl/mu/FguAEz5Hz16FAsXLnxkvKenJwDg77//tuobGhrCjRs3EBAQ8MT5HDlyBPX19VixYgW++uori74DBw6YVy562EjnztRuytt0vGlpaSgvL3/iPImIxgvO+ScieoZeffVVAP+dPvMoM2bMAADU1tZa9dlqG8krr7yCgYEB1NTUPDLW9J7C0NCQVZ8p/7q6OrvGHS3/uro6GI1Gu/YzkpaWFgBAcnKyVd9o5+fq1as2lyU1bWN6n2HatGlQq9U4f/48BgcHx5QrEdF4wOKfiOgZ+uCDD+Ds7Iw1a9bg6tWrVv23bt3ChQsXzJ/1ej0AYPPmzRZTS7q7u7Ft2za7x129ejUAICsryzyVxcRoNFrcCff29gYAdHZ2Wu0nOTkZWq0WJSUlOH36tFX/4OAgzpw5YxGvVquxZ88eXLlyxSIuJyfH7vxHYpq3/88xAaCmpgZffvnliNsNDQ1h48aNEBFz28WLF/Hdd99Bo9FgwYIFAB68OLxq1Sp0dHQgOzvb5gVAY2OjzScbRETjEaf9EBE9Q+Hh4di5cydWrVqFqVOnYsGCBQgNDcWdO3fQ2tqKmpoaZGRk4IsvvgAAzJkzB8uWLcM333yDiIgIpKamYmBgAAcPHsTs2bNRUVFh17gLFixAdnY2iouLodPpkJqaCj8/P3R3d6OyshLZ2dlYu3YtAGDu3LkoLi7GypUrkZaWBnd3dwQGBkKv10OlUqG8vBxvvvkmEhISMHfuXEREREChUKCjowO1tbXw8fExvwDr6emJ7du3IyMjA9HR0ViyZAk8PT1RUVEBNzc3TJ48eUznc9GiRQgKCkJRUREaGxsRHh6OpqYmVFRUIDU1dcSpOtOnT8eZM2cQHR2NefPmmdf5NxqN2L17N9zc3Myx+fn5qK+vx/bt23Hs2DHEx8ebz93vv/+OhoYG1NXV2XyvgYho3Hnea40SEY13o63zbwsASUhIGDXm3LlzsmTJEpkyZYq4uLiIr6+vzJo1SzZs2CCXL1+2iDUajVJYWCghISGiVColJCREtmzZIs3NzXav82/y/fffy5w5c8TT01NUKpUEBQWJXq+XxsZGi7iioiLR6XTi4uJi83i6urokKytLdDqdqFQqUavVMm3aNMnMzJTKykqrcX/44QeJjIwUlUolfn5+kpmZKTdv3pTAwMCnss5/WlqaaDQamThxokRHR8uBAwdGjDcdT2dnpyxevFi8vb3F1dVVYmJi5OTJkzbHNhqNsmvXLomNjRW1Wi0qlUq0Wq0kJSVJaWmpxd9g4Dr/RDSeKUT+8cyTiIiIiIj+b3HOPxERERGRg2DxT0RERETkIFj8ExERERE5CBb/REREREQOgsU/EREREZGDYPFPREREROQgWPwTERERETkIFv9ERERERA6CxT8RERERkYNg8U9ERERE5CBY/BMREREROQgW/0REREREDoLFPxERERGRg2DxT0RERETkIFj8ExERERE5CBb/REREREQOgsU/EREREZGD+A80VY3JICQwowAAAABJRU5ErkJggg=="
     },
     "metadata": {}
    }
   ],
   "source": [
    "ConfusionMatrixDisplay.from_predictions(test['label'], test_pred, display_labels=[LABELS[0], LABELS[1]], cmap='Blues')\n",
    "plt.title('Independent test confusion matrix'); plt.tight_layout(); plt.show()"
   ],
   "id": "cell-065"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 33. Assess probability ranking\n",
    "\n",
    "ROC-AUC measures ranking across thresholds, not factual verification or probability calibration.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-066"
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Test ROC-AUC: 0.999\n"
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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"
     },
     "metadata": {}
    }
   ],
   "source": [
    "print('Test ROC-AUC:', round(roc_auc_score(test['label'], test_prob), 4))\n",
    "RocCurveDisplay.from_predictions(test['label'], test_prob)\n",
    "plt.title('Ranking the True-file label'); plt.tight_layout(); plt.show()"
   ],
   "id": "cell-067"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 34. Inspect probability calibration\n",
    "\n",
    "Compare predicted True-file label scores with observed label frequency. Scores need external calibration before operational decisions.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-068"
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Brier score (lower is better): 0.0155\n"
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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ugSeZ+dh8/n7CDsejTuJGSr1bWvZIriVG1pUtS7WrnNERERE9G7RyNeVs2bNQmRkJPr27YvZs2ejSpUqirr79+/jyy+/xLp16zB79myVb02JiEhVVFQUli1bhm+//RYGBv9tm+vj44PGjRvD3d0do0aNgp6enhajLD8SUjKx8mQM/jx9F8nPcpTqDPV08L/3KmOwlyuq2phoKUIiIiIiKg80MhKldu3aMDY2xtmzZwts4+HhgfT0dFy7du11u3urcSQKEb2ur776Cj/++COEEFi+fDkCAwOV6nNycpg8KabL91OwLCIKO/55gFy58v/u7M0MENjSFf2bVYGFEUfzEBEREVHRNDISJSYmBp9//nmhbdq1a4f58+drojsiogqtTp06yM9v//LLLxg0aJDS1BImUAqXJxc4cO0hlh2LxumYpyr1DSubY4i3GzrXd4CejlQLERIRERFReaWRJIqRkRESExMLbZOYmAgjIyNNdEdEVCFcv34dGzduxKRJk5SSJH379sWkSZPQtm1bfPLJJ1ybo5jSs3Kx8ew9hB2Pwd2nz5TqpBLAv649gr3d8J6LJR9TIiIiIioVjSRRPD09sW7dOnz22WeoW7euSv3Vq1exfv16la2QiYjeVYMGDcKqVasAAK1atYKvr6+izsDAAHfu3OGCscV0P+kZVpyIwbrT95CWlatUZyLTRV+PKghq6YoqVkzkExEREdHr0UgSZcKECdi3bx88PDwQHBwMHx8f2NnZ4eHDhzh8+DDCwsKQk5ODb775RhPdERGVe9WqVVP8e+HChUpJFABMoBTDudgkhEZEY/eVB3hluRNUsTJEUEs39GlaGaYGnP5ERERERJqhkYVlAWDjxo0YNmwYUlNTlYZJCyFgbm6OJUuW4H//+58munqrcWFZInrZhQsXcPToUXz66adK5QkJCahduzb69u2LUaNGoV69elqKsHzJzZNj95UELIuIxsV7ySr1Hq6WCPZ2Q/s69tCRcsoOEREREWmWxpIoAJCWloZt27bhwoULSE1NhZmZGRo3boyAgACYmppqqpu3GpMoRAS8SCB36NABBw4cgEQiwa1bt5RGnwBAZmam0vbFVLCU5zlYd/ouVpyIQXxKplKdrlSCLg0cEOzthgaVLbQTIBERERG9EzQynSefqakpPvzwQ3z44YeaPC0RUbkjkUhQpUoVAC8SKr//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fxx5eXnC399fABCenp7iq6++Er169RISiUS4ubmJR48evcErInrhde/tJ0+eCEtLSwFAdOzYUUyZMkXl56effnqzF0UkNPO6rQ6TKKRtmrq3v/jiCwFAVKlSRYwcOVIMGzZM2NraCgBixowZb+hqiP6jiXt7165dQldXVwAQbdu2FePGjRPBwcHCxsZGABC9evV6g1dEJMSSJUtEYGCgCAwMFE2aNBEAhJeXl6Ls5YTflClTBAAxZcoUlfMMHTpUkfz+8ssvxcCBA4W+vr6wsrIq90lvJlEqsFOnTomOHTsKMzMzYWhoKJo1aybWrVun0q6wNyyZmZkiJCREVKtWTejr6wt7e3sxdOhQkZCQ8AaugEi917m38z9QFvbj4uLy5i6G6CWaeN1+FZMo9DbQ1L0dFhYmmjZtKoyMjISxsbHw9vYWW7ZsKePoiQqmiXv79OnTonfv3sLBwUHo6uoKExMT4eHhIX755ReRm5v7Bq6C6D/592pBP4GBgYq2hSVR8vLyxIIFC0TdunWFTCYT1tbWom/fvuL27dtv7mLKiEQIITQ8Q4iIiIiIiIiIqMLhwrJERERERERERMXAJAoRERERERERUTEwiUJEREREREREVAxMohARERERERERFQOTKERERERERERExcAkChERERERERFRMTCJQkRERERERERUDEyiEBEREREREREVA5MoRERERERERETFwCQKEREREREREVExMIlCRERERERERFQMTKIQERFpiKurK1xdXZXKQkJCIJFIcPjwYa3EVBJBQUGQSCSIiYnRdijFIpFI4OvrW2bn9/X1hUQiKXb7w4cPQyKRICQkpMjzFNT2TYqPj4exsTFmzJihtRgKou5vqSglfb7eFuU17tf19OlTmJub48svv9R2KEREJcIkChFRORcTEwOJRAKJRAJ7e3vk5uaqbXft2jVFu5J+OCHtWb58OSQSCZYvX67tUOgNKE3yoLQmTpwIIyMjjBkzRiWG/NcKiUQCHR0dVKpUCR06dMC2bdveSGzqlKeE5Lvo2bNnmDt3LgYMGIBatWpBKpUWmpS1srLCmDFj8PPPPyM2NvbNBktE9Bp0tR0AERFphq6uLh4+fIhdu3bh/fffV6lftmwZpFLmzt+0UaNGoV+/fnB2dtZ2KFTGmjVrhmvXrqFSpUoabVsWbt26hZUrV2LixIkwMTFR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"
     },
     "metadata": {}
    }
   ],
   "source": [
    "print('Brier score (lower is better):', round(brier_score_loss(test['label'], test_prob), 4))\n",
    "CalibrationDisplay.from_predictions(test['label'], test_prob, n_bins=10, strategy='quantile')\n",
    "plt.title('Test calibration by label'); plt.tight_layout(); plt.show()"
   ],
   "id": "cell-069"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 35. Estimate conditional uncertainty\n",
    "\n",
    "Bootstrap test predictions, not the training pipeline. This interval omits retraining, source shift and correlated-story uncertainty.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-070"
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Conditional 95% bootstrap interval for macro-F1: [0.9835 0.989 ]\n"
    }
   ],
   "source": [
    "rng = np.random.default_rng(SEED)\n",
    "y_array = test['label'].to_numpy()\n",
    "bootstrap_f1 = []\n",
    "for _ in range(300):\n",
    "    indices = rng.integers(0, len(test), len(test))\n",
    "    bootstrap_f1.append(f1_score(y_array[indices], test_pred[indices], average='macro'))\n",
    "print('Conditional 95% bootstrap interval for macro-F1:', np.quantile(bootstrap_f1, [0.025, 0.975]).round(4))"
   ],
   "id": "cell-071"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 36. Train a headline-only stress test\n",
    "\n",
    "Headlines reduce body dateline cues. This additional specification is diagnostic and does not replace the selected model.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-072"
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>accuracy</th>\n      <th>balanced_accuracy</th>\n      <th>macro_f1</th>\n      <th>fake_precision</th>\n      <th>fake_recall</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>Article model</th>\n      <td>0.9865</td>\n      <td>0.9857</td>\n      <td>0.9864</td>\n      <td>0.9942</td>\n      <td>0.9762</td>\n    </tr>\n    <tr>\n      <th>Headline diagnostic</th>\n      <td>0.9479</td>\n      <td>0.9460</td>\n      <td>0.9473</td>\n      <td>0.9593</td>\n      <td>0.9249</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "                     accuracy  balanced_accuracy  ...  fake_precision  fake_recall\nArticle model          0.9865             0.9857  ...          0.9942       0.9762\nHeadline diagnostic    0.9479             0.9460  ...          0.9593       0.9249\n\n[2 rows x 5 columns]"
     },
     "metadata": {}
    }
   ],
   "source": [
    "headline_model = clone(logistic)\n",
    "headline_model.fit(development['title'].map(clean_article), development['label'])\n",
    "headline_pred = headline_model.predict(test['title'].map(clean_article))\n",
    "display(pd.DataFrame({'Article model': test_metrics, 'Headline diagnostic': metrics(test['label'], headline_pred)}).T.round(4))"
   ],
   "id": "cell-073"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Interpretation:** Compare the headline result with the article model. A performance drop indicates that body content helps, but does not identify whether that help comes from facts, topics, formatting or publisher style. Removing one source token does not remove every source cue. The test is a random within-dataset holdout; it is not an unseen-publisher or future-period evaluation. Do not keep revising the model against these test results."
   ],
   "id": "cell-074"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 37. Count errors without republishing articles\n",
    "\n",
    "Error summaries are useful on a website and avoid printing article bodies.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-075"
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th></th>\n      <th>errors</th>\n    </tr>\n    <tr>\n      <th>label</th>\n      <th>predicted</th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <th>1</th>\n      <td>83</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <th>0</th>\n      <td>20</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "                 errors\nlabel predicted        \n0     1              83\n1     0              20"
     },
     "metadata": {}
    }
   ],
   "source": [
    "errors = test.assign(predicted=test_pred, true_label_score=test_prob)\n",
    "errors = errors[errors['label'] != errors['predicted']]\n",
    "display(errors.groupby(['label', 'predicted']).size().rename('errors').to_frame())"
   ],
   "id": "cell-076"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 38. Explain logistic regression word associations\n",
    "\n",
    "Coefficients describe associations after other features are considered. They do not establish causation or deception.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-077"
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>term</th>\n      <th>coefficient</th>\n      <th>direction</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>video</td>\n      <td>-8.775696</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>via</td>\n      <td>-8.457162</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>read more</td>\n      <td>-5.067111</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>image</td>\n      <td>-4.725431</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>just</td>\n      <td>-4.713479</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>this</td>\n      <td>-4.575586</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>read</td>\n      <td>-4.466633</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>featured image</td>\n      <td>-4.434204</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>featured</td>\n      <td>-4.385447</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>you</td>\n      <td>-4.018811</td>\n      <td>Fake-file association</td>\n    </tr>\n    <tr>\n      <th>10</th>\n      <td>said</td>\n      <td>9.719024</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>11</th>\n      <td>said on</td>\n      <td>6.921651</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>12</th>\n      <td>washington</td>\n      <td>5.520089</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>13</th>\n      <td>on wednesday</td>\n      <td>4.538372</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>14</th>\n      <td>on tuesday</td>\n      <td>4.400306</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>15</th>\n      <td>on</td>\n      <td>4.267287</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>16</th>\n      <td>on thursday</td>\n      <td>4.223689</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>17</th>\n      <td>president donald</td>\n      <td>4.153672</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>18</th>\n      <td>said in</td>\n      <td>4.150258</td>\n      <td>True-file association</td>\n    </tr>\n    <tr>\n      <th>19</th>\n      <td>on monday</td>\n      <td>3.874062</td>\n      <td>True-file association</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "                term  coefficient              direction\n0              video    -8.775696  Fake-file association\n1                via    -8.457162  Fake-file association\n2          read more    -5.067111  Fake-file association\n3              image    -4.725431  Fake-file association\n4               just    -4.713479  Fake-file association\n5               this    -4.575586  Fake-file association\n6               read    -4.466633  Fake-file association\n7     featured image    -4.434204  Fake-file association\n8           featured    -4.385447  Fake-file association\n9                you    -4.018811  Fake-file association\n10              said     9.719024  True-file association\n11           said on     6.921651  True-file association\n12        washington     5.520089  True-file association\n13      on wednesday     4.538372  True-file association\n14        on tuesday     4.400306  True-file association\n15                on     4.267287  True-file association\n16       on thursday     4.223689  True-file association\n17  president donald     4.153672  True-file association\n18           said in     4.150258  True-file association\n19         on monday     3.874062  True-file association"
     },
     "metadata": {}
    }
   ],
   "source": [
    "terms = logistic.named_steps['tfidf'].get_feature_names_out()\n",
    "weights = logistic.named_steps['classifier'].coef_[0]\n",
    "term_table = pd.DataFrame({'term': terms, 'coefficient': weights})\n",
    "display(pd.concat([term_table.nsmallest(10, 'coefficient').assign(direction='Fake-file association'), term_table.nlargest(10, 'coefficient').assign(direction='True-file association')], ignore_index=True))"
   ],
   "id": "cell-078"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Explore topics separately\n",
    "The original notebook learned LDA topics before its train/test split and then used those features for classification. Here LDA is a separate exploratory analysis trained only on a reproducible sample of training articles. Topic quality is not classifier accuracy. Sentiment and word clouds were removed from the core workflow: sentiment of stemmed text is difficult to interpret, and word clouds do not demonstrate predictive value."
   ],
   "id": "cell-079"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 39. Select a reproducible topic sample\n",
    "\n",
    "A 3,000-article sample keeps this learning exercise practical. It is not a comprehensive map of all news.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-080"
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "topic_sample = train.sample(n=min(3000, len(train)), random_state=SEED)['article'].map(clean_article)"
   ],
   "id": "cell-081"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 40. Create word counts for LDA\n",
    "\n",
    "LDA uses counts. The English stop-word choice is specific to this exploratory topic task.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-082"
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Topic count matrix: (3000, 5000)\n"
    }
   ],
   "source": [
    "topic_vectorizer = CountVectorizer(stop_words='english', min_df=5, max_df=0.8, max_features=5000)\n",
    "topic_counts = topic_vectorizer.fit_transform(topic_sample)\n",
    "print('Topic count matrix:', topic_counts.shape)"
   ],
   "id": "cell-083"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 41. Fit a small topic model\n",
    "\n",
    "Six topics and five passes are declared choices, not a claim of an optimal number of topics.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-084"
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Topic model fitted.\n"
    }
   ],
   "source": [
    "topic_model = LatentDirichletAllocation(n_components=6, max_iter=5, learning_method='online', random_state=SEED, n_jobs=1)\n",
    "topic_model.fit(topic_counts)\n",
    "print('Topic model fitted.')"
   ],
   "id": "cell-085"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 42. Inspect topic words\n",
    "\n",
    "Use these words to suggest topic names, then verify by reading documents locally. A topic is not a true/fake label.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-086"
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>topic</th>\n      <th>top_words</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>police, said, people, city, black, media, gun,...</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>trump, president, clinton, said, donald, campa...</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>3</td>\n      <td>said, trump, north, united, china, russia, kor...</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>said, government, minister, party, state, pres...</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>said, house, state, tax, trump, senate, presid...</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>6</td>\n      <td>people, just, trump, video, twitter, like, new...</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "   topic                                          top_words\n0      1  police, said, people, city, black, media, gun,...\n1      2  trump, president, clinton, said, donald, campa...\n2      3  said, trump, north, united, china, russia, kor...\n3      4  said, government, minister, party, state, pres...\n4      5  said, house, state, tax, trump, senate, presid...\n5      6  people, just, trump, video, twitter, like, new..."
     },
     "metadata": {}
    }
   ],
   "source": [
    "topic_terms = topic_vectorizer.get_feature_names_out()\n",
    "topic_rows = [{'topic': i + 1, 'top_words': ', '.join(topic_terms[component.argsort()[-10:][::-1]])} for i, component in enumerate(topic_model.components_)]\n",
    "display(pd.DataFrame(topic_rows))"
   ],
   "id": "cell-087"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 43. Plot average topic weights\n",
    "\n",
    "These are average mixture weights within the sampled training corpus, not counts of unique stories.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-088"
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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jEGDBuXanhszIcqYMWMMSUa5cuWyhQdZfvjhB/v1bty4MVtb1vdNmTJlcgRdhmEYs2bNsr+fjh49muu5/wwCHn74YUOSERERkSPAKohrQ5TcwpwdO3bY2xs0aJCj5tWrV42KFSsakoxFixZla7ve67t69WqjRIkShs1mM5YtW2bs37/fvrLo008/zfUcR4Uoef2sS0tLs/f58ssvcx1/48aNhs1mM/z9/Y0rV67kOU8AQP7YEwUAUOT169dPrq75P3Bu586dGj16tLp06aKoqCi1atVKrVq10nvvvSdJ2rJlS4FqZ+2NcC0PDw81btxYkrR///4bHrN3797y9/fPcTw8PDzXMZcuXSpJatu2rapXr57jvDvvvDPPR0hfT1BQkCRp+fLlOnHihOnzMjIytHjxYj3zzDO6//771aZNG/trvm/fPkn5v+ZPPPFEjmNNmzbNt71s2bKqVq2apLxf9woVKqhHjx45jnt7e+vf//63JOm7777L58r+n7lz50qSevXqlevXS5K6dOkiyfqn2mTNceDAgbk+brhdu3b292Be1/P444/L29s7x/EePXqoQoUKSktL07Jly647l8uXL9trDB8+XC4u1v7vZW5f6zvvvFOenp6S/r6Of9Z0c3NTo0aNJN3492CrVq0UGxsrwzDUp08fde/eXefOnVP37t3t7xFnyetn3fr165WcnKwKFSrooYceyvXcpk2bKigoSGfOnNGmTZtu9VQBoNjiEccAgCKvXr16+ba/8sorGj9+vAzDyLPPyZMnb7huQECAypQpk2tbYGCgJOncuXM3PG6tWrVuaMysDVFDQ0PzHLNx48ZavXr1Dc+lc+fOql27tnbs2KGqVasqKipKrVu31t13363w8HCVLFkyxzlHjhzR/ffff91gKq/XPCAgQH5+fjmOly9f3v7vGjVq5Hpu+fLltXv3bp0/fz7X9rp166pEiRK5tmW9j3bt2pXvvLNkbRr75Zdf5vmI7qwNWg8ePGhqTLOyvub169fPs0+DBg20ZcuWPB/nm9e5JUqUUJ06dXT06FFTr8W+fft05coVSdLdd9993f43Kq+vdbly5fTnn3/m+16QlOd7IT/Dhw/XihUrlJCQoGPHjik4OFiffPLJDY9jtbx+1mW9Fy9duqRWrVrleX7W99zBgwftoSwA4MYQogAAijwvL6882+bMmaNx48bJxcVFI0eO1MMPP6xq1arJy8tLLi4uWrFihdq1a6e0tDRL62b9ZTy/4OZGx83rL/xZvyT6+PjkOWZubUePHlXXrl1z7Z8VCnh6emr16tUaM2aM5syZo6VLl9pXvvj6+mrAgAEaM2ZMttUQ/fv315YtW1S9enW9+eabuvvuuxUYGGgPXPr27avPP/88z9c8r+vPelKLmT55ve5ZQVR+bWaDr9OnT0v6O0TIWl2Tl0uXLpka06ysOVaoUCHPPhUrVszW95+sei3Onj0r6e/wJbeVLTfrel/rgr4X8uPi4qJ27dopISFB0t+rc3IL9hwtr2vNei+mpqZq7dq11x3n4sWLls4LAG4nhCgAgGIt6/HEL7zwgmJjY3O0F2QFSmGT9Ytrfr/w5tZ2+fJlU79wlStXTu+//77+7//+Tzt37tTatWsVHx+vr7/+WhMnTtTBgwftt7YcPXpU8fHxkv5+9HNufzl35mt+7Nix67blF0ZdK+t1/+yzz9S/f/+bn9wN8PHx0ZkzZ/J95PWRI0fsfXNj1Wvh6+sr6e9buM6fP39LghRH27Bhg0aPHm0PYt59911169Yt2y1lN+p6oc6FCxcKPHbWa96mTRutWrWqwOMAAK6PPVEAAMXagQMHJP39y0VufvnlF0dO55aoXbu2pP+3pD83W7duzXEsODhYxt+bzOf4yI3NZlO9evX0xBNPaOHChVq0aJEkad68efZgJOv1LlOmTK4BSnp6ujZu3Hgjl2ep3bt3KyMjI9e2HTt2SPr7lh8zGjRoIEn67bffrJnc/+/aFTd5qVOnjiRp+/btefb5/fffJeV9PVnX+08ZGRn224XMvBa1atWSh4eHJOnnn3++bv/C7ty5c+rVq5fS0tI0ZMgQPffcc0pLS1PPnj3zvDXIzNcsaxVJXuHV3r17CzznrPfijh07lJmZWeBxAADXR4gCACjWsm4zyfqr/LVOnDhhX6lSlN17772S/t68NCkpKUf77t2789yz42Zcu1nt4cOHJf2/1/vs2bO53jIwY8YMHT9+3PK5mHXkyBHNnz8/x/Hz589r6tSpkqT777/f1Fjdu3eX9Pc15beq40ZlvYb53XKRNcfJkyfn2i8hIcG+J03Hjh1zHWPKlCm5rn6YN2+ejhw5Ijc3N0VHR193viVLllSnTp0kSW+//XaBbp8pTJ588kklJiaqSZMmevvttzVu3Dg1adJE+/fv16BBg3I9x8zXrGbNmpKkdevW5WhLT0/Xp59+WuA5t2rVSpUqVdLJkyft72MAwK1BiAIAKNYiIiIkSWPHjs32l94DBw6oU6dOxWJvgMjISDVv3lxpaWnq0qWLkpOT7W379+9X165d89xM9XreffddjR8/PtuY0t+/LGbdHuXn52f/BbFevXoKCAhQenq6nn76afvGqpK0YMECPfPMM/ZVC87g5uam5557LtsvsqdPn9YjjzyiU6dOqUKFCnrsscdMjdWpUye1b99ep06dUlRUVK5B1R9//KHx48drypQppucYEhIim82mEydO5LnK5cknn1S5cuV04sQJ9ezZM9stUlu3brXfXtSpU6c8b0E5d+6cevfubd9PQ/p7JcmQIUMk/f3Um/z2XLlW1r44CQkJ6tWrV47QcufOnRo3bpypsZxp+vTpmj17try9vTVnzhy5u7vL3d1dX3zxhby9vTVz5kx9/vnnOc7L2tw2v6cwPfDAA5KkqVOn2vdakf4OHAcMGFCgJ3llcXd31zvvvCNJeuaZZzRp0qQc+/CcP39eCxcudPoThgCgqCNEAQAUay+99JIqVKig5ORk1atXT/Xq1VPDhg1Vo0YN7d27VxMmTHD2FG+azWbTzJkzVbFiRW3evFkhISEKDQ1Vw4YNVbt2bV2+fNn+F/QbDVP+/PNPvfzyywoODlalSpXUrFkzNWrUSOXLl9d7770nV1dXTZ482f64WVdXV/svy9OmTVOFChV01113qUqVKurWrZtat26d52a2jtC1a1eFhITo7rvvVq1atXTXXXepUqVK+vrrr1WqVCl98cUXeT6uODdz587VPffco127dql169YKDAxUWFiYmjZtqvLlyyskJEQvv/yyDh06ZHrMMmXK2FeaNGvWTE2aNFFkZKQiIyPtt2UFBARo/vz58vX11TfffKPKlSuradOmqlu3rho3bqzk5GSFhobqs88+y7PO66+/rh9++EGVKlXSXXfdpVq1aqlly5Y6fvy4mjdvrvHjx5uec926dbVw4UL5+Pho7ty5qlKliurVq6emTZsqICBA9erV00cffWR6PGfYu3evnn76aUnSBx98YA8Gpb9vWXr//fcl/f1Y838GHn379pX0d+gYEhKiNm3aKDIyUm+//ba9T58+fdS8eXNduHBB7dq1U/Xq1dW0aVMFBgZq0aJF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AEWJJSFKmzZttHjx4jxv19m5c6eWLl2qe+6556bqJCQkqGXLllqzZo26d++uJ598UkePHlWPHj00ceJEU2OsXr1ao0eP1vfff68yZcrIxeX6L8HMmTN17733ateuXYqJiVG/fv20Y8cORUdHa8GCBTd1TQAAAAAAoGiwJEQZMWKEMjIy1LJlS82aNUspKSmSpF27dmnq1Klq27atSpYsqRdffLHANdLT0zVgwAC5uLjop59+0ieffKKJEydq27ZtqlWrloYPH67k5OTrjtOmTRutW7dO586d0++//y43N7d8+58+fVrPPPOMAgICtHnzZr3//vt6//33tXnzZpUtW1aDBg3SuXPnCnxdAAAAAACgaLAkRGnQoIHmzp2rM2fOqG/fvvrwww9lGIbq16+vAQMG6NKlS5o3b55q1qxZ4BorVqxQYmKievfurdDQUPtxPz8/DR8+XFevXlVcXNx1x6levbpatGghT09PU3Xnz5+vM2fO6JlnnlGVKlXsx6tUqaKnn35aKSkp+uqrr274egAAAAAAQNHiatVADzzwgA4cOKC4uDitX79ep06dkq+vr5o3b67+/fsrICDgpsZfuXKlJKl9+/Y52jp06CBJWrVq1U3VKEjd2NhYrVq1Sn379rW8NgAAAAAAKDwsC1EkqUyZMnr++eetHNJu3759kpTrapYKFSrI29vb3sdRdbOO3Yq6AAAAAACgcLE0RLmVUlNTJf19+05ufH197X0cVdfX1zdbn+sJDw/P9fj27dtVv379As4QAAAAAAA4giUhyowZM67bx8XFRb6+vqpdu7Zq165tRVkAAAAAAACHsSREiYmJkc1mM92/Tp06ev/999W2bVvT52StBMlr1cfZs2dVunRp0+MVpG7ZsmVz1Ly2z/WsW7cu1+N5rVABAAAAAACFhyVP55k2bZo6deokwzAUHR2t2NhYffTRR4qNjVV0dLQMw9C//vUvvfPOO+rVq5f27t2rjh07asOGDaZr5Lf/yNGjR3X+/PmbevpPQermt18KAAAAAAAoXiwJUfz8/LRs2TL9+OOPWrp0qV577TU98cQTeu2117R06VKtWLFCy5YtU40aNTRz5kz98MMPSk9P19tvv226RkREhCRp2bJlOdri4+Oz9bGSs+oCAAAAAIDCxZIQZezYserevbuioqJybY+MjFS3bt30xhtvSPo7dLj3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ooSEhOiLL77Q/fffr0qVKun555/Xpk2brBgaAAAAAACgULAkRPntt9+0detWPf/88ypRooTee+89hYWF6c4779Rbb72lP//804oyAAAAAAAATmPZ03kaNmyoCRMm6NChQ4qPj9cjjzyiQ4cOacSIEapevboiIyM1depUq8oBAAAAAAA4lGUhShabzabo6GjNmDFDx44d08yZMxUdHa21a9dq4MCBVpcDAAAAAABwCEsfcfxP6enpunLliq5cucKGswAAAAAAoEizPETJyMjQ999/r5kzZ+rbb7/V5cuX5eLiovbt26tPnz5WlwMAAAAAAHAIy0KUX375RTNnztS8efN08uRJGYah0NBQ9enTR71791ZgYKBVpQAAAAAAABzOkhClZs2a+uOPP2QYhipXrqwXX3xRffr0Ub169awYHgAAAAAAwOksCVGOHj2qvn37qk+fPoqKipLNZsu135UrV1SyZEkrSgIAAAAAADiUJSHK8ePH5enpmWf75s2bNXXqVM2ZM0cnT560oiQAAAAAAIBDWRKi5BagnDlzRjNnztTUqVP122+/yTCMfIMWAAAAAACAwszyp/P88MMPmjp1qhYvXqwrV67IMAyFh4erf//+6tGjh9XlAAAAAAAAHMKSEOXgwYOaNm2apk2bpj///NO+wezhw4cVExOjzz77zIoyAAAAAAAATlPgECUtLU2LFi3S1KlT9eOPPyojI0NeXl565JFH1LdvX7Vt21aurq5ydbV8sQsAAAAAAIDDFTjhqFSpkk6dOiWbzaaoqCj17dtXDz/8sLy8vKycHwAAAAAAQKFQ4BDl5MmTcnFx0fPPP6+XXnpJ5cqVs3JeAAAAAAAAhYpLQU+MiYmRp6en3n33XVWpUkUPPPCA5s+fr6tXr1o5PwAAAAAAgEKhwCHKZ599piNHjmjy5Mlq0qSJvv32W/Xs2VOBgYEaOHCg1qxZY+U8AQAAAAAAnKrAIYokeXt769///rfWrVunHTt2aMiQIXJ3d9enn36qiIgI2Ww27dmzR8nJyVbNFwAAAAAAwCluKkS5Vt26dTVx4kQdPnxY8+bNU/v27WWz2bR69WqFhISoXbt2+vzzz60qBwAAAAAA4FCWhShZXF1d1bVrVy1ZskRJSUkaPXq0goKClJCQoJiYGKvLAQAAAAAAOITlIcq1qlSpotdee02JiYlavny5evbs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eL/BkXi/wZF4v8FReK/BkXi/3R6KzJ4o+e0/cvToUZ0/fz7PvU6yVK9eXS4uLnnuYZLbvis1a9bU+fPndfToUVP9AQAAAABA8VRkQpSIiAhJ0rJly3K0xcfHZ+uTF09PT4WFhWnPnj1KTk7O1mYYhpYvXy4vLy/dddddltYFAAAAAABFX5EJUdq1a6fq1atr9uzZ2rp1q/14amqqxo4dK3d3d/Xt29d+/MiRI9q9e3eOW3GeeOIJSdKwYcNkGIb9+OTJk/XHH3/okUcekaenp/14//795erqqjfffDPbWFu3btUXX3yhunXrqlWrVlZfLgAAAAAAKGSKzJ4orq6umjJlijp06KA2bdqoZ8+e8vHx0cKFC5WcnKwJEyYoODjY3n/YsGGKi4vTtGnTFBMTYz/er18/zZ07V1988YUOHDigiIgI7d+/X19++aWqVaumN954I1vdWrVqKTY2Vq+++qoaNWqkLl266Ny5c5ozZ44k6dNPP5WLS5HJogAAAAAAQAEVqd/+o6KitGbNGrVs2VJz587VRx99pMDAQM2ZM0dDhw41NYaLi4sWL16s2NhYnThxQv/973+1du1aPf7441q3bp3KlSuX45wRI0Zo5syZKleunD766CPNmzdPrVu31s8//6yWLVtafZkAAAAAAKAQshnX3tMCAAAAAACAXBWplSgAAAAAAADOQogCAAAAAABgAiEKAAAAAACACYQoAAAAAAAAJhCiAAAAAAAAmECIAgAAAAAAYAIhCnAdM2fO1MCBA3XXXXepZMmSstlsmj59urOnhWLo8OHDmjRpktq3b6877rhD7u7uqlChgrp06aL169c7e3ooZi5fvqwXXnhBbdq0UaVKleTh4aEKFSqoZcuWmjZtmtLS0pw9RRRz48aNk81mk81m0y+//OLs6aCYCQ4Otr+//vkRGRnp7OmhGPrqq68UHR2tsmXLysPDQ9WqVVOvXr108OBBZ08NFnN19gSAwu7VV19VcnKyAgICVLFiRSUnJzt7Siim3n//fY0bN04hISFq3769ypUrp3379mnRokVatGiRZs+erR49ejh7migmzp8/r48++khhYWG6//77Va5cOZ0+fVpLlizRY489pjlz5mjJkiVyceHvLbDe9u3bNWrUKHl5eenChQvOng6KKT8/Pw0ZMiTH8eDgYIfPBcWXYRh68skn9cknnygk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"
     },
     "metadata": {}
    }
   ],
   "source": [
    "topic_weights = topic_model.transform(topic_counts).mean(axis=0)\n",
    "plt.bar(np.arange(1, 7), topic_weights, color='#16324F')\n",
    "plt.xlabel('Topic'); plt.ylabel('Average mixture weight'); plt.title('Training-sample topic mixture'); plt.tight_layout(); plt.show()"
   ],
   "id": "cell-089"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 44. Generate an evidence-based portfolio conclusion\n",
    "\n",
    "This cell updates the wording when results change. Avoid copying an old percentage into a new run.\n",
    "\n",
    "**Your comment:** Add your observation or question here."
   ],
   "id": "cell-090"
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/markdown": "**Measured result:** The selected Logistic regression achieved test accuracy **98.65%** and macro-F1 **0.9864** on **7,653** held-out articles after conservative deduplication. These results demonstrate recognition of labels in this dataset; they do not validate automatic fact-checking in new domains.",
      "text/plain": "**Measured result:** The selected Logistic regression achieved test accuracy **98.65%** and macro-F1 **0.9864** on **7,653** held-out articles after conservative deduplication. These results demonstrate recognition of labels in this dataset; they do not validate automatic fact-checking in new domains."
     },
     "metadata": {}
    }
   ],
   "source": [
    "display(Markdown(f'**Measured result:** The selected {best_name} achieved test accuracy **{test_metrics[\"accuracy\"]:.2%}** and macro-F1 **{test_metrics[\"macro_f1\"]:.4f}** on **{len(test):,}** held-out articles after conservative deduplication. These results demonstrate recognition of labels in this dataset; they do not validate automatic fact-checking in new domains.'))"
   ],
   "id": "cell-091"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## What this shows a recruiter or client\n",
    "This project demonstrates data-quality checks, reproducible splits, leakage prevention, sparse text features, baseline comparison, validation-based selection, uncertainty estimation, error analysis, explainability, topic discovery and responsible interpretation. Its strongest contribution is an auditable workflow rather than an inflated accuracy claim.\n",
    "\n",
    "## Business applications \u2014 proposals, not measured deployments\n",
    "| Decision | How this workflow could help | Data needed | Success measure |\n",
    "|---|---|---|---|\n",
    "| Brand and reputation monitoring | Rank incoming coverage for analyst review and group emerging themes | Current coverage, analyst annotations, sources and dates | Precision in the top review queue; analyst time per reviewed item |\n",
    "| Competitive intelligence | Group product, competitor and customer themes | Licensed industry articles and sector taxonomy | Topic usefulness judged by analysts; missed important stories |\n",
    "| Compliance and audit | Log ingestion, model version, score, review outcome and evidence | Authorised records plus verified review decisions | Traceability completeness and review error rates |\n",
    "\n",
    "A sensible pilot compares analysts with and without the tool on the same incoming stream. Estimate benefit as verified time saved \u00d7 loaded hourly cost, minus running/review costs and false-alert handling. This notebook has not measured return on investment. Scores should prioritise review; factual decisions require evidence.\n",
    "\n",
    "## Astronomy \u2014 a transfer of method\n",
    "I interpret \u201castrominor\u201d as astronomy/astronomers. This news dataset contains no validated astronomy task, so the trained news classifier cannot be presented as an astronomy model.\n",
    "\n",
    "A useful astronomy project would apply topic modelling to paper abstracts, tag papers by research area, or route observatory incident reports to specialists. NASA has documented LDA/NLP analysis of astrophysics research trends, and ADS supports astronomy literature discovery (sources below). Those examples motivate the transfer; they do not validate this notebook on astronomy data.\n",
    "\n",
    "Build a new domain corpus with permissions, expert topic labels and paper dates. Hold out later papers and related paper families. Compare retrieval recall@k or expert-agreed tagging macro-F1 against a simple keyword baseline. Preserve negation, units and object identifiers. Literature topic trends can inform research planning; they cannot confirm astronomical discoveries.\n",
    "\n",
    "## Government \u2014 human-reviewed information triage\n",
    "Possible pilots include grouping public consultation responses, routing service complaints, or prioritising potentially misleading public-health claims for qualified review. Each needs local, current, multilingual data and a task-specific label definition. This historical English news corpus provides no evidence of performance in South African public services.\n",
    "\n",
    "Measure correct routing, urgent-case recall, reviewer workload and error rates by language and source. Keep evidence links, review logs, access controls, a correction route and retention rules. Do not use this model alone for censorship, penalties, eligibility or allegations about individuals. Its confidence is about dataset labels, not legal or factual truth.\n",
    "\n",
    "## Limitations and next experiments\n",
    "1. Source and topic confounding remain even after removing subject and the Reuters token. Obtain publisher identifiers and use source-held-out evaluation.\n",
    "2. Related stories may remain despite exact normalized deduplication. Cluster near-duplicates and keep each cluster in one split.\n",
    "3. The date field is retained for future work, but inconsistent formats need auditing before a chronological split. Test on later independently labelled articles.\n",
    "4. Labels were inherited; independently fact-check a stratified sample with multiple reviewers and report agreement.\n",
    "5. Probabilities and uncertainty are conditional on this corpus. Evaluate calibration and threshold trade-offs on new development data before any operational pilot.\n",
    "6. Topic number was fixed for readability. Assess topic stability across seeds and expert usefulness on training/development data.\n",
    "7. The original SMOTE and TF-IDF objects were unused; the active classifier used topic distributions. The rebuilt notebook states exactly which models are actually trained.\n",
    "\n",
    "## Sources and further reading\n",
    "- [Supplied dataset\u2019s stated Kaggle source](https://www.kaggle.com/datasets/clmentbisaillon/fake-and-real-news-dataset): confirm licensing and provenance before publication.\n",
    "- [scikit-learn: common pitfalls and leakage](https://scikit-learn.org/stable/common_pitfalls.html): why preprocessing belongs inside a training pipeline.\n",
    "- [NASA: Transforming Science Prioritization Processes Using Artificial Intelligence](https://ntrs.nasa.gov/citations/20210019097): an example of LDA/NLP applied to astrophysics research trends.\n",
    "- [SAO/NASA ADS](https://adswww.harvard.edu/): astronomy literature discovery.\n",
    "\n",
    "**Publication wording:** \u201cI built a reproducible news-text classification and topic-exploration workflow, compared interpretable models against a baseline, and audited leakage and source shortcuts. The project includes held-out evaluation and practical proposals for analyst-assisted decision support.\u201d"
   ],
   "id": "cell-092"
  },
  {
   "cell_type": "markdown",
   "id": "original-review",
   "metadata": {},
   "source": [
    "## Additional corrections to the original interpretation\n\n",
    "The original text describes TF-IDF cross-validation, but the active pipeline used LDA topic distributions. It also reports SMOTE improvements even though the displayed code only instantiated SMOTE and never applied it. Word embeddings are claimed in the conclusion but are not implemented. Those claims are removed here.\n\n",
    "The original confusion-matrix narrative says 9,980 examples, but its listed counts sum to 8,937 (4,189 + 3,987 + 458 + 303). Counts and interpretation must come from the same execution. This rebuilt notebook renders the actual matrix and derives the headline result from the current metrics.\n\n",
    "ROC-AUC of 0.97 does not mean 97% of positive cases were identified. It measures how well scores rank a randomly selected positive-labelled example above a negative-labelled example. Recall at a specified threshold measures the fraction identified.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}