{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Tool for Statistical Testing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Parameters for data import to be set\n",
    "data_folder = \"../results/perf_results_g0\"\n",
    "data_file = \"../results/all_results_g0.csv\"\n",
    "\n",
    "test_pairs = [\n",
    "    [\"0_comp\", \"alpha_beta\"],\n",
    "    [\"alpha_beta\", \"transposition_table\"],\n",
    "    [\"transposition_table\", \"transposition_table_opt_all\"],\n",
    "    [\"transposition_table\", \"transposition_table_opt_1\"],\n",
    "    [\"transposition_table\", \"transposition_table_opt_2\"],\n",
    "    [\"transposition_table\", \"transposition_table_opt_3\"],\n",
    "]\n",
    "\n",
    "test_value = [\"cycles\", \"time\"]\n",
    "\n",
    "# Parameters for the tests to be set\n",
    "alternative = \"greater\"\n",
    "alpha = 0.05"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Importing the Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is assumed that the data are given in **csv-format**.\n",
    "Columns are separeted by a **semicolon** ```;``` and the first row contains the **names of the variables**. Furthermore it is assumed that for decimal numbers the **decimal point** ```.``` is used.\n",
    "\n",
    "The following example is based on ```Daten.csv``` (see TUWEL), where the results of **A** and **B** are given in the same file.\n",
    "It is assumed, that this file lies in the subfolder ```data``` of this notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Importing the data\n",
    "from data_processing import load_all_results\n",
    "import pandas as pd\n",
    "\n",
    "load_all_results(data_folder, data_file)\n",
    "all_data = pd.read_csv(data_file)\n",
    "all_data = all_data[[\"algorithm\", \"branch-misses\",\"branches\",\"cycles\",\"depth\",\"instance\",\"instructions\",\"time\"]]\n",
    "all_data[\"algorithm\"] = all_data[\"algorithm\"].replace({\"comp\": \"0_comp\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>algorithm</th>\n",
       "      <th>branch-misses</th>\n",
       "      <th>branches</th>\n",
       "      <th>cycles</th>\n",
       "      <th>depth</th>\n",
       "      <th>instance</th>\n",
       "      <th>instructions</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>transposition_table_opt_3</td>\n",
       "      <td>1.079039e+08</td>\n",
       "      <td>4.267404e+09</td>\n",
       "      <td>1.312706e+10</td>\n",
       "      <td>3</td>\n",
       "      <td>x5</td>\n",
       "      <td>2.466981e+10</td>\n",
       "      <td>4.095699</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>transposition_table_opt_3</td>\n",
       "      <td>1.272508e+09</td>\n",
       "      <td>5.507174e+10</td>\n",
       "      <td>1.674238e+11</td>\n",
       "      <td>4</td>\n",
       "      <td>x4</td>\n",
       "      <td>3.202681e+11</td>\n",
       "      <td>51.422120</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>transposition_table_opt_1</td>\n",
       "      <td>6.139813e+06</td>\n",
       "      <td>2.306997e+08</td>\n",
       "      <td>6.339644e+08</td>\n",
       "      <td>2</td>\n",
       "      <td>x9</td>\n",
       "      <td>1.252986e+09</td>\n",
       "      <td>0.208725</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>transposition_table</td>\n",
       "      <td>1.010880e+08</td>\n",
       "      <td>4.536912e+09</td>\n",
       "      <td>1.213109e+10</td>\n",
       "      <td>3</td>\n",
       "      <td>x8</td>\n",
       "      <td>2.481745e+10</td>\n",
       "      <td>3.590559</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>alpha_beta</td>\n",
       "      <td>1.236493e+08</td>\n",
       "      <td>5.163768e+09</td>\n",
       "      <td>1.411102e+10</td>\n",
       "      <td>3</td>\n",
       "      <td>x5</td>\n",
       "      <td>2.844768e+10</td>\n",
       "      <td>4.183875</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   algorithm  branch-misses      branches        cycles  \\\n",
       "0  transposition_table_opt_3   1.079039e+08  4.267404e+09  1.312706e+10   \n",
       "1  transposition_table_opt_3   1.272508e+09  5.507174e+10  1.674238e+11   \n",
       "2  transposition_table_opt_1   6.139813e+06  2.306997e+08  6.339644e+08   \n",
       "3        transposition_table   1.010880e+08  4.536912e+09  1.213109e+10   \n",
       "4                 alpha_beta   1.236493e+08  5.163768e+09  1.411102e+10   \n",
       "\n",
       "   depth instance  instructions       time  \n",
       "0      3       x5  2.466981e+10   4.095699  \n",
       "1      4       x4  3.202681e+11  51.422120  \n",
       "2      2       x9  1.252986e+09   0.208725  \n",
       "3      3       x8  2.481745e+10   3.590559  \n",
       "4      3       x5  2.844768e+10   4.183875  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>branch-misses</th>\n",
       "      <th>branches</th>\n",
       "      <th>cycles</th>\n",
       "      <th>depth</th>\n",
       "      <th>instance</th>\n",
       "      <th>instructions</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>algorithm</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>0_comp</th>\n",
       "      <td>18</td>\n",
       "      <td>18</td>\n",
       "      <td>18</td>\n",
       "      <td>18</td>\n",
       "      <td>18</td>\n",
       "      <td>18</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>alpha_beta</th>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>transposition_table</th>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>transposition_table_opt_1</th>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>transposition_table_opt_2</th>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>transposition_table_opt_3</th>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>transposition_table_opt_all</th>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             branch-misses  branches  cycles  depth  instance  \\\n",
       "algorithm                                                                       \n",
       "0_comp                                  18        18      18     18        18   \n",
       "alpha_beta                              36        36      36     36        36   \n",
       "transposition_table                     36        36      36     36        36   \n",
       "transposition_table_opt_1               36        36      36     36        36   \n",
       "transposition_table_opt_2               36        36      36     36        36   \n",
       "transposition_table_opt_3               36        36      36     36        36   \n",
       "transposition_table_opt_all             36        36      36     36        36   \n",
       "\n",
       "                             instructions  time  \n",
       "algorithm                                        \n",
       "0_comp                                 18    18  \n",
       "alpha_beta                             36    36  \n",
       "transposition_table                    36    36  \n",
       "transposition_table_opt_1              36    36  \n",
       "transposition_table_opt_2              36    36  \n",
       "transposition_table_opt_3              36    36  \n",
       "transposition_table_opt_all            36    36  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_data.groupby([\"algorithm\"]).count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Preliminary Code"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following packages need to be imported:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# scipy contains statistical tests and other useful content\n",
    "import scipy.stats\n",
    "from scipy.stats import norm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def print_decision(pvalue, alpha):\n",
    "    print(\"Test Result:\")\n",
    "    print(\"p-value = %.4f\" % (pvalue))\n",
    "    if pvalue < alpha:\n",
    "        print(\"H0 can be rejected on a level of significance of \" + str(alpha) + \".\")\n",
    "    else:\n",
    "        print(\"H0 cannot be rejected on a level of significance of \" + str(alpha) + \".\")\n",
    "        \n",
    "def compute_pvalue(pvalue, diff, alternative):\n",
    "    if alternative == \"greater\":\n",
    "        if diff > 0:\n",
    "            pvalue = pvalue / 2\n",
    "        else:\n",
    "            pvalue = 1 - pvalue / 2\n",
    "    elif alternative == \"less\":\n",
    "        if diff < 0:\n",
    "            pvalue = pvalue / 2\n",
    "        else:\n",
    "            pvalue = 1 - pvalue / 2\n",
    "    return pvalue\n",
    "\n",
    "def plot_hist(data, group):\n",
    "    # Plot a histogram\n",
    "    plt.hist(data, density = True, alpha = 0.5)\n",
    "\n",
    "    # Fit a normal distribution to the data\n",
    "    mu, std = norm.fit(data)\n",
    "\n",
    "    # Plot the probability density function\n",
    "    xmin, xmax = plt.xlim()\n",
    "    x = np.linspace(xmin, xmax, 201)\n",
    "    y = norm.pdf(x, mu, std)\n",
    "    plt.plot(x, y, \"black\")\n",
    "    title = \"Fit results of \" + group + \": mu = %.2f,  std = %.2f\" % (mu, std)\n",
    "    plt.title(title, pad=20)\n",
    "\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Visualization of the Results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAEzCAYAAABANfAdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAf5ElEQVR4nO3de7jddX0n+veHJJBEY0qBemwSCSrlIlEuCcOlajjWErECWjzKIWOQtil4OTxTnR6mto5ax8roaBvBUqYTUhWB4q2gIEdGGYWCZAfCLeFWSEnQZ8RQIxxIIfidP/ZKZicEsklWsn/Jfr2eZz37d/mu7++z95Nvfuu9vr/1W9VaCwAAAN2x20gXAAAAwMYENQAAgI4R1AAAADpGUAMAAOgYQQ0AAKBjBDUAAICO2WJQq6qFVfXTqrrzOfZXVS2oqvur6vaqOrz/ZQIAAIwew5lRW5RkzvPsf3OS/XuP+Un+etvLAgAAGL22GNRaaz9I8ujzNDkpyRfboJuS/EpVvaxfBQIAAIw2/fiM2pQkK4esr+ptAwAAYCuM3ZEHq6r5Gbw8Mi960YuOOPDAA3fk4berOx5eM9Il9N2MKZNHugRGmV1tHBlD7GjGEGwbY4gdbcmSJT9rre2zuX39CGoPJ5k2ZH1qb9uztNYuTHJhksycObMNDAz04fDdMP2cb490CX038Km3jHQJjDK72jgyhtjRjCHYNsYQO1pV/fNz7evHpY9XJHl37+6PRyVZ01r7SR/6BQAAGJW2OKNWVZckmZ1k76paleQ/JhmXJK21C5JcleSEJPcneSLJe7ZXsQAAAKPBFoNaa+3ULexvSd7Xt4oAAABGuR16MxEAAKA7nn766axatSpr164d6VJ2aePHj8/UqVMzbty4YT9HUAMAgFFq1apVmTRpUqZPn56qGulydkmttaxevTqrVq3KfvvtN+zn9eNmIgAAwE5o7dq12WuvvYS07aiqstdee73gWUtBDQAARjEhbfvbmr+xoAYAAOwQ06dPz89+9rO+9HXBBRfki1/8YpJk0aJF+fGPf7xdjjNSfEYNAADYqaxbty5nnnnmhvVFixblkEMOya//+q+PYFX9JagBAAB9d/LJJ2flypVZu3Ztzj777MyfP3+j/X/+53+eL3/5y9lnn30ybdq0HHHEEfnQhz6UpUuX5swzz8wTTzyRV77ylVm4cGH23HPPzJ49O4ceemiuv/76nHrqqXnsscfy4he/ONOnT8/AwEBOO+20TJgwITfeeGOS5POf/3yuvPLKPP3007n88stz4IEH5qMf/WgefPDBPPDAA3nooYfyuc99LjfddFOuvvrqTJkyJVdeeeULujPj9uTSRwAAoO8WLlyYJUuWZGBgIAsWLMjq1as37Fu8eHG+9rWv5bbbbsvVV1+dgYGBDfve/e5359xzz83tt9+eGTNm5GMf+9iGfU899VQGBgbywQ9+cMO2U045JTNnzszFF1+cpUuXZsKECUmSvffeO7fcckvOOuusfOYzn9nQ/p/+6Z/yve99L1dccUXmzp2b4447LnfccUcmTJiQb3/729vzT/KCCGoAAEDfLViwIK997Wtz1FFHZeXKlbnvvvs27Lvhhhty0kknZfz48Zk0aVLe+ta3JknWrFmTn//853nDG96QJJk3b15+8IMfbHjeO9/5zmEf/+1vf3uS5IgjjsiKFSs2bH/zm9+ccePGZcaMGXnmmWcyZ86cJMmMGTM2ajfSXPoIAAD01XXXXZdrr702N954YyZOnJjZs2f35Uu1X/SiFw277R577JEkGTNmTNatW/es7bvttlvGjRu34Y6Mu+2220btRpoZNQAAoK/WrFmTPffcMxMnTszdd9+dm266aaP9xx57bK688sqsXbs2jz/+eL71rW8lSSZPnpw999wzP/zhD5MkX/rSlzbMrj2fSZMm5bHHHuv/LzKCzKgBAAB9NWfOnFxwwQU56KCDcsABB+Soo47aaP+sWbNy4okn5jWveU1e+tKXZsaMGZk8eXKS5O/+7u823EzkFa94RS666KItHu/000/PmWeeudHNRHZ21VobkQPPnDmzDf3Q4M5u+jnd+eBhv6z41FtGugRGmV1tHBlD7GjGEGyb0TiGli9fnoMOOmgHVPNsjz/+eF784hfniSeeyOtf//pceOGFOfzww0eklh1hc3/rqlrSWpu5ufZm1AAAgB1u/vz5WbZsWdauXZt58+bt0iFtawhqAADADveVr3xlpEvoNDcTAQAA6BhBDQAAoGMENQAAgI4R1AAAADpGUAMAAOgYd30EAACS9P+75Ib7fYjf+c53cvbZZ+eZZ57J7//+7+ecc87pax07IzNqAADAiHnmmWfyvve9L1dffXWWLVuWSy65JMuWLRvpskacoAYAAIyYm2++Oa961avyile8Irvvvnve9a535R/+4R8223bx4sU55phj8trXvjZHHnlkHnvssaxduzbvec97MmPGjBx22GH5/ve/nyRZtGhRTj755LzpTW/K9OnTc9555+Wzn/1sDjvssBx11FF59NFHkySzZ8/O2WefnUMPPTSHHHJIbr755h32uz8fQQ0AABgxDz/8cKZNm7ZhferUqXn44Yef1e6pp57KO9/5zvzVX/1Vbrvttlx77bWZMGFCzj///FRV7rjjjlxyySWZN29e1q5dmyS588478/Wvfz2LFy/Ohz/84UycODG33nprjj766Hzxi1/c0PcTTzyRpUuX5gtf+ELOOOOM7f9LD4OgBgAAdN4999yTl73sZZk1a1aS5CUveUnGjh2b66+/PnPnzk2SHHjggdl3331z7733JkmOO+64TJo0Kfvss08mT56ct771rUmSGTNmZMWKFRv6PvXUU5Mkr3/96/OLX/wiP//5z3fcL/YcBDUAAGDETJkyJStXrtywvmrVqkyZMqUvfe+xxx4blnfbbbcN67vttlvWrVu3YV9VbfS8TddHgqAGAACMmFmzZuW+++7Lgw8+mKeeeiqXXnppTjzxxGe1O+CAA/KTn/wkixcvTpI89thjWbduXV73utfl4osvTpLce++9eeihh3LAAQe8oBouu+yyJMn111+fyZMnZ/Lkydv4W207t+cHAACSDP92+v00duzYnHfeeTn++OPzzDPP5IwzzsirX/3qZ7Xbfffdc9lll+UDH/hAnnzyyUyYMCHXXntt3vve9+ass87KjBkzMnbs2CxatGijmbThGD9+fA477LA8/fTTWbhwYb9+tW0iqAEAACPqhBNOyAknnLDFdrNmzcpNN930rO0XXXTRs7adfvrpOf300zesD/1M2qb75s6dm7/8y798ISVvdy59BAAA6BgzagAAQKe87W1vy4MPPrjRtnPPPTfHH39834913XXX9b3PfhDUAACATvnGN74x0iWMOJc+AgAAdIygBgAA0DGCGgAAQMcIagAAAB3jZiIAAMCgj07uc39rtvqp06dPz8DAQPbee+9tarMlixYtysDAQM4777xhP+eTn/xk/uRP/mSrjzkcZtQAAABegE9+8pPb/RiCGgAAMKJOPvnkHHHEEXn1q1+dCy+8cKN9K1asyIEHHpjTTjstBx10UE455ZQ88cQTG/Z/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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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/obMoCZJkiQ1YJMnT2b+/PnkcjkmTJjAmjVrtmp/5ZVXuOiii1i2bBkHHXQQt912W3Vb+/btWbBgAWPHjuWGG24AoHv37jzzzDO8+OKLjB8/vtbLFF944QXuu+8+XnrpJaZPn04ul2PZsmVMmzaNZ599loULF9K0aVOmTp3KtddeS4sWLVi4cCFTp06tU/0Nle9RkyRJkhqwCRMm8MADDwBVs1srVqzYqr1z584MGTIEgFGjRjFhwgQuvvhiAM4880wABgwYwP333w/A2rVrGT16NCtWrCAi2Lhx406Pf9JJJ9GuXbvq/c2ePZsDDjiA+fPnM3DgQADWr1/PF7/4xTrXv2V/DZlBTZIkSWqgZs2axRNPPMGcOXMoLS2lvLycDRs2bNUnIna43qxZMwCaNm3Kpk2bAPjZz37GCSecwAMPPMCqVasoLy/faQ017T+lxOjRo/mnf/qnPa6/ofLSR0mSJKmBWrt2LW3btqW0tJTly5czd+7c7fq88cYbzJkzB4C7776bY489ttZ9duzYEai6q2NtHn/8cT744APWr1/Pgw8+yJAhQzjxxBO59957effddwH44IMP+NOf/gRASUlJ9SxdXepvqJxRkyRJkvaR3b2d/u4aNmwYEydOpEePHhx++OEMHjx4uz6HH344t956K3/zN39Dz549GTt27E73eemllzJ69GiuuuoqTjml9u9n0KBBnHXWWVRWVjJq1CjKysoAuOqqq/j617/O559/TklJCbfeeitf+cpXqKiooE+fPvTv35/JkyfXWn9DFSmlejlwWVlZyuVy9XJsSZIkaV9YtmwZPXr0qO8ydmjVqlWceuqpLF68uL5LafBq+l2IiPkppbKa+nvpoyRJkiRljJc+SpIkSY1Uly5dijKbNnPmTC677LKttnXt2rX6bo3adQY1SZIkSXvkG9/4Bt/4xjfqu4wGxUsfJUmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMNxORJEmS9pUr2hR5f2t32vzRRx9x9913c9FFFxX3uHvB+eefz49+9CN69uzJNddcw09+8pPqtmOOOYbnnnuuaMe66aabqKiooLS0dKf9unTpQi6Xo3379lttv+KKK2jVqhUXX3xx0WraljNqkiRJUgP10Ucfcdttt223fdOmTfVQzc799re/pWfPngBcc801W7UVM6RBVVBbt25dUfdZbAY1SZIkqYEaN24cr776Kv369WPgwIEMHTqU0047rToQnX766QwYMIAjjjiCSZMmVT+vVatW/PSnP6Vv374MHjyYd955B4Dp06fTq1cv+vbty3HHHQfAlClTGD58OOXl5XTr1o0rr7yyej833ngjvXr1olevXtx0000AfPrpp5xyyin07duXXr16MW3aNADKy8vJ5XKMGzeO9evX069fP0aOHFldD0BKiUsuuYRevXrRu3fv6ufOmjWL8vJyzj77bLp3787IkSNJKdX4M5kwYQJvvfUWJ5xwAieccAIAY8eOpaysjCOOOIJf/OIXW/W//vrr6d27N4MGDWLlypXb7e/VV19l2LBhDBgwgKFDh7J8+fJd+BfaMS99lCRJkhqoa6+9lsWLF7Nw4UJmzZrFKaecwuLFi+natSsAkydP5uCDD2b9+vUMHDiQs846i3bt2vHpp58yePBgrr76ai699FJuv/12Lr/8csaPH8/MmTPp2LEjH330UfVxXnjhBRYvXkxpaSkDBw7klFNOISK44447eP7550kpcdRRR3H88cfz2muvceihh/LII48AsHbt2u1qvuWWW1i4cOF238/999/PwoULWbRoEe+//z4DBw6sDowvvvgiS5Ys4dBDD2XIkCE8++yzHHvssdvt4wc/+AE33ngjTz31VPUljVdffTUHH3wwmzdv5sQTT+Sll16iT58+ALRp04aXX36ZO++8k7//+7/n4Ycf3mp/FRUVTJw4kW7duvH8889z0UUX8eSTT+7eP1gBZ9QkSZKkRmLQoEHVIQ2qZpe2zJqtXr2aFStWAHDggQdy6qmnAjBgwABWrVoFwJAhQxgzZgy33347mzdvrt7PSSedRLt27WjRogVnnnkms2fPZvbs2Zxxxhm0bNmSVq1aceaZZ/LMM8/Qu3dvHn/8cS677DKeeeYZ2rSp+/v2Zs+ezYgRI2jatCmHHHIIxx9/PPPmzav+3jp16kSTJk3o169fdc11cc8999C/f3+OPPJIlixZwtKlS6vbRowYUf11zpw5Wz3vk08+4bnnnuOcc86hX79+XHDBBbz99tt1Pu7OOKMmSZIkNRItW7asXp41axZPPPEEc+bMobS0lPLycjZs2ABASUkJEQFA06ZNq9/TNnHiRJ5//nkeeeQRBgwYwPz58wGq+26x7Xqhr33tayxYsIBHH32Uyy+/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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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Ou+88xg0aBCnnXYakyZNqnle27Ztue666ygqKmLo0KG88847AMyYMYPCwkKKioo466yzAJg6dSqjRo2irKyMnj17ctNNN9Vs56677qKwsJDCwkLuvvtuALZs2cLIkSMpKiqisLCQ6dOnA1BWVkZlZSXjx49n27Zt9O/fn7Fjx9bUA5BSYty4cRQWFtK3b9+a586ePZuysjIuvPBCevXqxdixY0kp1fue3HPPPWzYsIFhw4YxbNgwAK644gqKi4s57bTT+NnPflan/R133EHfvn0ZMmQIK1eu3Gt7q1atYsSIEQwaNIjS0lJWrFhxEP9CRx9PfZQkSZIO02233cbSpUupqqpi9uzZjBw5kqVLl9KjRw8AJk+ezIknnsi2bdsYPHgwF1xwAR07dmTLli0MHTqUW265hWuuuYb777+f66+/ngkTJjBr1iy6du3Kpk2bavbzyiuvsHTpUgoKChg8eDAjR44kIpgyZQoLFiwgpcTpp5/O2WefzerVq+nSpQtPP119GujmzZv3qvnee++lqqpqr9fzxz/+kaqqKpYsWcK7777L4MGDawLjq6++yrJly+jSpQslJSW89NJLfPnLX95rG1dddRV33XUXL7zwQs0pjbfccgsnnngiu3btYvjw4bz22mv069cPgPbt2/P666/z4IMP8oMf/ICnnnqqzvYqKiqYOHEiPXv2ZMGCBVx55ZU8//zzh/YPdhRwRE2SJEnKsyFDhtSENKgeXdo9arZu3TreeustAI4//njOOeccAAYNGsTatWsBKCkpoby8nPvvv59du3bVbOcrX/kKHTt2pHXr1px//vnMnTuXuXPnMnr0aNq0aUPbtm05//zzmTNnDn379uXZZ5/lJz/5CXPmzKF9+/YNrn/u3LmMGTOG5s2b07lzZ84++2wWLlxY89q6detGs2bN6N+/f03NDfHoo48ycOBABgwYwLJly1i+fHnNujFjxtT8nDdvXp3nffzxx7z88stcdNFF9O/fn+985zu8/fbbDd7v0cgRNUmSJCnP2rRpUzM9e/ZsnnvuOebNm0dBQQFlZWVs374dgBYtWhARADRv3rzmmraJEyeyYMECnn76aQYNGsSiRYsAatrutud8baeccgqLFy9m5syZXH/99QwfPpwbbrjhsF9by5Yta6Zr13wga9as4c4772ThwoV06NCB8vLymvcB6r6WPV/X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J1/84hf3OzJX2+bNm7nooosoLCzkhz/8IcuWLWvw6z4UjqhJkiRJedamTZua6dmzZ/Pcc88xb948CgoKKCsrY/v27QC0aNGCiACgefPmNde0TZw4kQULFvD0008zaNAgFi1aBFDTdrc952s75ZRTWLx4MTNnzuT6669n+PDh3HDDDYf92lq2bFkzXbvmA1mzZg133nknCxcupEOHDpSXl9e8D1D3tez5uj799FNOOOGEekf/DtbBvIe1/eM//iPDhg3jscceY+3atZSVlR12LfvjiJokSZJ0mNq1a8dHH31U77rNmzfToUMHCgoKWLFiBfPnzz/g9latWsXpp5/OhAkT6NSpE+vWrQPg2Wef5f3332fbtm08/vjjlJSUUFpayuOPP87WrVvZsmULjz32GKWlpWzYsIGCggIuueQSxo0bx+LFi/faT4sWLdixY8dey0tLS5k+fTq7du1i48aNvPjiiwwZMuQg35W678uHH35ImzZtaN++Pe+88w7PPPNMnba7rw2bPn06Z5xxRp11n/vc5+jRowczZswAqq+hW7JkyT73e+aZZ/LII48AMG3aNEpLS2vWzZgxg08//ZRVq1axevVqTj311P3+++22efNmunbtClRfL3ikOaImSZKkY88Bbqefbx07dqSkpITCwkJat25N586da9aNGDGCiRMn0rt3b0499VSGDh16wO2NGzeOt956i5QSw4cPp6ioiKqqKoYMGcIFF1zA+vXrueSSSyguLgaqb5KxO0hddtllDBgwgFmzZjFu3DiaNWtGixYtuO+++/baT0VFBf369WPgwIFMmzatZvno0aOZN28eRUVFRAR33HEHn//85xt8mmDt7Y8YMYIuXbrwwgsvMGDAAHr16sXJJ59MSUlJnbYffPAB/fr1o2XLljz88MN7bWvatGlcccUV3HzzzezYsYOLL76YoqKievf7q1/9im9/+9v8/Oc/p1OnTkyZMqVm3Re+8AWGDBnChx9+yMSJE2nVqhXDhg3jtttuo3///vz0pz/lG9/4xl7bvOaaa7j00ku5+eabGTly5EG9D4ci9nWXliOtuLg4VVZWNsq+JUmSdGx544036N27d2OXcUTl8zu6mqry8nLOOeccLrzwws983/X9jkbEopRScX3tPfVRkiRJkjKmQac+RsQI4JdAc+CBlNJte6z/AvAvwAm5NuNTStn6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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAEzCAYAAABANfAdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAoCElEQVR4nO3dfXjV5Z3n8fcXjEAAEZCxg9iBdlHAQHgIiKZIGKZbWhwRH6Yy2BqvcVJ1W9ttpaXVtcgUL7WutdZWBl2gtqhIW10fcFhdZRVFJGBQQDrytIXiOD6BysMIeO8fOWQTCBDkhPwg79d1nSu/h/vcv+855OacT+7f+Z1IKSFJkiRJyo4WTV2AJEmSJKkug5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGHDSoRcT0iPj3iFi+n/0REXdGxOqIeDUiBua/TEmSJElqPhoyozYTGHWA/V8GeuZuFcDdh1+WJEmSJDVfBw1qKaXngPcO0GQMcF+q9hJwYkT8Zb4KlCRJkqTmJh+fUTsF2FBrfWNumyRJkiTpUzjuSB4sIiqoPj2Stm3bDurVq9eRPLwkSZIkZcaSJUveSSl1qW9fPoLan4FTa613y23bR0ppGjANoKSkJFVWVubh8JIkSZJ09ImI/7u/ffk49fFR4Ou5qz8OBbaklN7MQ7+SJEmS1CwddEYtIh4AyoCTImIj8GOgACClNBWYC3wFWA1sAy5vrGIlSZIkqTk4aFBLKY07yP4E/Je8VSRJkiRJzdwRvZiIJEmSdKTs3LmTjRs3smPHjqYuRc1c69at6datGwUFBQ2+j0FNkiRJx6SNGzfSvn17unfvTkQ0dTlqplJKvPvuu2zcuJEePXo0+H75uJiIJEmSlDk7duygc+fOhjQ1qYigc+fOhzyza1CTJEnSMcuQpiz4NL+HBjVJkiTpGNW9e3feeeedvPQ1depU7rvvPgBmzpzJpk2bGuU4quZn1CRJkiQd0K5du7jyyitr1mfOnElRURFdu3ZtwqqObQY1SZIk6Rhw/vnns2HDBnbs2MG3v/1tKioq6uz/p3/6J37729/SpUsXTj31VAYNGsS1115LVVUVV155Jdu2bePzn/8806dPp2PHjpSVldG/f38WLFjAuHHj+PDDD2nXrh3du3ensrKS8ePH06ZNGxYuXAjAL37xCx577DF27tzJnDlz6NWrF5MmTWLdunWsXbuWP/3pT/zsZz/jpZde4sknn+SUU07hscceO6QrITYnnvooSZIkHQOmT5/OkiVLqKys5M477+Tdd9+t2bd48WJ+//vfs2zZMp588kkqKytr9n3961/nlltu4dVXX6Vv377ceOONNfs+/vhjKisr+d73vlez7aKLLqKkpIRZs2ZRVVVFmzZtADjppJNYunQpV111FbfddltN+zVr1vDMM8/w6KOPcumllzJixAhee+012rRpwxNPPNGYT8lRzaAmSZIkHQPuvPNOiouLGTp0KBs2bOCNN96o2ffCCy8wZswYWrduTfv27fnbv/1bALZs2cLmzZsZPnw4AJdddhnPPfdczf2++tWvNvj4F1xwAQCDBg1i/fr1Ndu//OUvU1BQQN++fdm9ezejRo0CoG/fvnXaqS5PfZQkSZKOcvPnz+fpp59m4cKFFBYWUlZWlpcv+m7btm2D27Zq1QqAli1bsmvXrn22t2jRgoKCgporILZo0aJOO9XljJokSZJ0lNuyZQsdO3aksLCQVatW8dJLL9XZX1paymOPPcaOHTv46KOPePzxxwHo0KEDHTt25PnnnwfgN7/5Tc3s2oG0b9+eDz/8MP8PRDWcUZMkSZKOcqNGjWLq1Kn07t2b008/naFDh9bZP3jwYM477zz69evHySefTN++fenQoQMAv/71r2suJvK5z32OGTNmHPR45eXlXHnllXUuJqL8ipRSkxy4pKQk1f4QoyRJkpRPr7/+Or17927qMjLjo48+ol27dmzbto1zzjmHadOmMXDgwKYuq9mo7/cxIpaklErqa++MmiRJktQMVFRUsHLlSnbs2MFll11mSMs4g5okSZLUDNx///1NXYIOgRcTkSRJkqSMMahJkiRJUsYY1CRJkiQpYwxqkiRJkpQxBjVJkiRJyhiv+ihJkqRmofvEJ/La3/qbRx9w/+bNm7n//vu5+uqr83rcxnDFFVfw3e9+lz59+nDTTTfxox/9qGbf2WefzYsvvpi3Y91xxx1UVFRQWFh4wHbdu3ensrKSk046qc72SZMm0a5dO6699tq81ZRFzqhJkiRJjWDz5s386le/2mf7rl27mqCaA7v33nvp06cPADfddFOdffkMaVAd1LZt25bXPo9FBjVJkiSpEUycOJE1a9bQv39/Bg8ezLBhwzjvvPNqAtH555/PoEGDOOOMM5g2bVrN/dq1a8d1111HcXExQ4cO5a233gJgzpw5FBUVUVxczDnnnAPAzJkzGTNmDGVlZfTs2ZMbb7yxpp/bb7+doqIiioqKuOOOOwDYunUro0ePpri4mKKiImbPng1AWVkZlZWVTJw4ke3bt9O/f3/Gjx9fUw9ASokJEyZQVFRE3759a+47f/58ysrKuOiii+jVqxfjx48npVTvc3LnnXeyadMmRowYwYgRIwC46qqrKCkp4YwzzuDHP/5xnfa33norffv2ZciQIaxevXqf/tasWcOoUaMYNGgQw4YNY9WqVYfwL5RtnvooSZIkNYKbb76Z5cuXU1VVxfz58xk9ejTLly+nR48eAEyfPp1OnTqxfft2Bg8ezIUXXkjnzp3ZunUrQ4cOZcqUKXz/+9/nnnvu4frrr2fy5MnMmzePU045hc2bN9cc5+WXX2b58uUUFhYyePBgRo8eTUQwY8YMFi1aREqJM888k+HDh7N27Vq6du3KE09Unwa6ZcuWfWq+6667qKqq2ufx/OEPf6Cqqoply5bxzjvvMHjw4JrA+Morr7BixQq6du1KaWkpL7zwAl/4whf26eOaa67h9ttv59lnn605pXHKlCl06tSJ3bt3M3LkSF599VX69esHQIcOHXjttde47777+M53vsPjjz9ep7+KigqmTp1Kz549WbRoEVdffTXPPPPMp/sHyxhn1CRJkqQjYMiQITUhDapnl/bMmm3YsIE33ngDgOOPP55zzz0XgEGDBrF+/XoASktLKS8v55577mH37t01/Xzxi1+kc+fOtGnThgsuuIAFCxawYMECxo4dS9u2bWnXrh0XXHABzz//PH379uWpp57iBz/4Ac8//zwdOnRocP0LFixg3LhxtGzZkpNPPpnhw4ezePHimsfWrVs3WrRoQf/+/WtqboiHHnqIgQMHMmDAAFasWMHKlStr9o0bN67m58KFC+vc76OPPuLFF1/k4osvpn///nzjG9/gzTffbPBxs84ZNUmSJOkIaNu2bc3y/Pnzefrpp1m4cCGFhYWUlZWxY8cOAAoKCogIAFq2bFnzmbapU6eyaNEinnjiCQYNGsSSJUsAatrusfd6baeddhpLly5l7ty5XH/99YwcOZIbbrjhsB9bq1atapZr13ww69at47bbbmPx4sV07NiR8vLymucB6j6WvR/XJ598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tm3N8vz583n66adZuHAhhYWFlJWVsWPHDgAKCgqICABatmxZ85m2qVOnsmjRIp544gkGDRrEkiVLAGra7rH3em2nnXYaS5cuZe7cuVx//fWMHDmSG2644bAfW6tWrWqWa9d8MOvWreO2225j8eLFdOzYkfLy8prnAeo+lr0f1yeffMKJJ55Y7+zfoTqU5/BIcUZNkiRJagTt27fnww8/rHffli1b6NixI4WFhaxatYqXXnrpoP2tWbOGM888k8mTJ9OlSxc2bNgAwFNPPcV7773H9u3beeSRRygtLWXYsGE88sgjbNu2ja1bt/Lwww8zbNgwNm3aRGFhIZdeeikTJkxg6dKl+xynoKCAnTt37rN92LBhzJ49m927d/P222/z3HPPMWTIkEN8Vuo+Lx988AFt27alQ4cOvPXWWzz55JN12u75bNjs2bM566yz6uw74YQT6NGjB3PmzAGqP0O3bNmy/R737LPP5sEHHwRg1qxZDBs2rGbfnDlz+OSTT1izZg1r167l9NNPP+C/35HgjJokSZKah4NcTj/fOnfuTGlpKUVFRbRp04aTTz65Zt+oUaOYOnUqvXv35vTTT2fo0KEH7W/ChAm88cYbpJQYOXIkxcXFVFVVMWTIEC688EI2btzIpZdeSklJCVB9kYw9QeqKK65gwIABzJs3jwkTJtCiRQsKCgq4++679zlORUUF/fr1Y+DAgcyaNatm+9ixY1m4cCHFxcVEBLfeeiuf+cxnDvk0wYqKCkaNGkXXrl159tlnGTBgAL169eLUU0+ltLS0Ttv333+ffv360apVKx544IF9+po1axZXXXUVP/nJT9i5cyeXXHIJxcXF9R73F7/4BZdffjk//elP6dKlCzNmzKjZ99nPfpYhQ4bwwQcfMHXqVFq3bs2IESO4+eab6d+/Pz/84Q/56le/uk+f//Zv/0ZJSQkffPABLVq04I477mDlypWccMIJh/Sc1Cf2d0WWxlZSUpIqKyub5NiSJEk69r3++uv07t27qctoVDNnzmzSC14cC8rLyzn33HO56KKLGvU49f0+RsSSlFJJfe099VGSJEmSMqZBpz5GxCjg50BL4N6U0s177f8s8GvgxFybiSmlA387nCRJkqTDUl5eTnl5eVOXUa+xY8eybt26OttuueUWvvSlLzXqcadMmVLzubU9Lr74Yq677rp628+cOfOgfc6YMYOf//zndbaVlpbyy1/+8lPXeTAHPfUxIloC/wp8EdgILAbGpZRW1mozDXglpXR3RPQB5qaUuh+oX099lCRJUmNqDqc+6ujRGKc+DgFWp5TWppQ+Bh4ExuzVJgF7PjHXAdh0SFVLkiRJjaCprscg1fZpfg8bEtROATbUWt+Y21bbJODSiNgIzAW+VV9HEVEREZURUfn2228fcrGSJElSQ7Vu3Zp3333XsKYmlVLi3XffpXXr1od0v3xdnn8cMDOl9N8j4izgNxFRlFL6ZK8ipwHToPrUxzwdW5IkSdpHt27d2LhxI04QqKm1bt2abt26HdJ9GhLU/gycWmu9W25bbf8AjAJIKS2MiNbAScC/H1I1kiRJUp4UFBTQo0ePpi5D+lQacurjYqBnRPSIiOOBS4BH92rzJ2AkQET0BloD/ulCkiRJkj6Fgwa1lNIu4JvAPOB14KGU0oqImBwR5+WafQ/4x4hYBjwAlCdPBpYkSZKkT6VBn1HLfSfa3L223VBreSVQmt/SJEmSJKl5asipj5IkSZKkI8igJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljGhTUImJURPwxIlZHxMT9tPm7iFgZESsi4v78lilJkiRJzcdxB2sQES2BXwJfBDYCiyPi0ZTSylptegI/BEpTSu9HxF80VsGSJEmSdKxryIzaEGB1SmltSulj4EFgzF5t/hH4ZUrpfYCU0r/nt0xJkiRJaj4aEtROATbUWt+Y21bbacBpEfFCRLwUEaPyVaAkSZIkNTcHPfXxEPrpCZQB3YDnIqJvSmlz7UYRUQFUAHz2s5/N06ElSZIk6djSkBm1PwOn1lrvlttW20bg0ZTSzpTSOuBfqQ5udaSUpqWUSlJKJV26dPm0NUuSJEnSMa0hQW0x0DMiekTE8cAlwKN7tXmE6tk0IuIkqk+FXJu/MiVJkiSp+ThoUEsp7QK+CcwDXgceSimtiIjJEXFertk84N2IWAk8C0xIKb3bWEVLkiRJ0rEsUkpNcuCSkpJUWVnZJMeWJEmSpKYWEUtSSiX17WvQF15LkiRJko4cg5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGGNQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGGNQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZcxxTV2AJO3RfeITTV1CXq2/eXRTlyBJOgS+DilLnFGTJEmSpIxxRk2SpGOEswGSdOxwRk2SJEmSMsagJkmSJEkZ46mPeXKsnW4CnnIiSZIkNRVn1CRJkiQpYwxqkiRJkpQxBjVJkiRJyhiDmiRJkiRljEFNkiRJkjLGoCZJkiRJGWNQkyRJkqSMMahJkiRJUsYY1CRJkiQpY45r6gKUYZM6NHUF+TVpS1NXIEmSJDWIM2qSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGVMg4JaRIyKiD9GxOqImHiAdhdGRIqIkvyVKEmSJEnNy0GDWkS0BH4JfBnoA4yLiD71tGsPfBtYlO8iJUmSJKk5Oa4BbYYAq1NKawEi4kFgDLByr3b/BNwCTMhrhZJ0tJrUoakryK9JW5q6AkmSmo2GnPp4CrCh1vrG3LYaETEQODWl9EQea5MkSZKkZumwLyYSES2A24HvNaBtRURURkTl22+/fbiHliRJkqRjUkOC2p+BU2utd8tt26M9UATMj4j1wFDg0fouKJJSmpZSKkkplXTp0uXTVy1JkiRJx7CGBLXFQM+I6BERxwOXAI/u2ZlS2pJSOiml1D2l1B14CTgvpVTZKBVLkiRJ0jHuoBcTSSntiohvAvOAlsD0lNKKiJgMVKaUHj1wD5IkSZKOuGPtolbQrC5s1ZCrPpJSmgvM3WvbDftpW3b4ZUmSJElS83XYFxORJEmSJOWXQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDHHNXUBkiRJ9ZrUoakryL9JW5q6AklHCWfUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZY1CTJEmSpIwxqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGWMQU2SJEmSMsagJkmSJEkZ06CgFhGjIuKPEbE6IibWs/+7EbEyIl6NiP8dEX+V/1IlSZIkqXk4aFCLiJbAL4EvA32AcRHRZ69mrwAlKaV+wO+AW/NdqCRJkiQ1Fw2ZURsCrE4prU0pfQw8CIyp3SCl9GxKaVtu9SWgW37LlCRJkqTmoyFB7RRgQ631jblt+/MPwJP17YiIioiojIjKt99+u+FVSpIkSVIzkteLiUTEpUAJ8NP69qeUpqWUSlJKJV26dMnnoSVJkiTpmHFcA9r8GTi11nq33LY6IuJvgOuA4Sml/8hPeZIkSZLU/DRkRm0x0DMiekTE8cAlwKO1G0TEAOCfgfNSSv+e/zIlSZIkqfk4aFBLKe0CvgnMA14HHkoprYiIyRFxXq7ZT4F2wJyIqIqIR/fTnSRJkiTpIBpy6iMppbnA3L223VBr+W/yXJckSZIkNVt5vZiIJEmSJOnwGdQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGGNQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGGNQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGGNQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGGNQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGGNQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZUyDglpEjIqIP0bE6oiYWM/+VhExO7d/UUR0z3ulkiRJktRMHDSoRURL4JfAl4E+wLiI6LNXs38A3k8p/SfgZ8At+S5UkiRJkpqLhsyoDQFWp5TWppQ+Bh4ExuzVZgzw69zy74CRERH5K1OSJEmSmo+GBLVTgA211jfmttXbJqW0C9gCdM5HgZIkSZLU3Bx3JA8WERVARW71o4j445E8vg5NwEnAO01dR97c6CSvjizHkHR4jrkxBI4jHVGOoaPCX+1vR0OC2p+BU2utd8ttq6/Nxog4DugAvLt3RymlacC0BhxTGRARlSmlkqauQzpaOYakw+MYkg6PY+jo1pBTHxcDPSOiR0QcD1wCPLpXm0eBy3LLFwHPpJRS/sqUJEmSpObjoDNqKaVdEfFNYB7QEpieUloREZOBypTSo8D/AH4TEauB96gOc5IkSZKkT6FBn1FLKc0F5u617YZayzuAi/NbmjLA01Slw+MYkg6PY0g6PI6ho1h4hqIkSZIkZUtDPqMmSZIkSTqCDGoZEhHdI2L5ETze/IjI25WAIuLFfPUlHUlH+9iTjmVHenxKjenTvleKiPMjok8e6yiPiK611u/NZ//KD4PaUSYiWjZ1DfuTUjq7qWuQGkuWx54k6ehwGO+VzgfqDVK5r8Y6VOVATVBLKV2RUlr5qSpTozGoZc9xETErIl6PiN9FRGFErI+IWyJiKXBxRPxjRCyOiGUR8fuIKASIiJkRcWdEvBgRayPioj2dRsQPIuK13H1urnW8iyPi5Yj414gYVl9Bub/+/ywiKnN1DY6IP0TEGxHxk1rtPsr9/MuIeC4iqiJieUQMi4iWufqW5+r4r7m2n4+If4mIJRHxfET0ym2/ONd2WUQ8l/+nWdpHk4+93Dj5ae4Yr0bEN3Lb9xlTR/KJkQ5XRHw99zu9LCIejoh1EVGQ23fCnvWI+E8R8XSu3dKI+Pxe/ThGdFSr9V6pLPf+6ncRsSr3+hO5fTdHxMrc7/htEXE2cB7w09zv+Odz970jIiqBb+dehy7a+zi55TqvQ7l2JcCsXH9totaZHhExLtd+eUTcUrvPiJiS6+eliDg5t933bI0lpeQtIzegO5CA0tz6dOBaYD3w/VrtOtda/gnwrdzyTGAO1QG8D7A6t/3LwItAYW69U+7nfOC/55a/Ajy9n7rmA7fklr8NbAL+EmgFbNxTD/BR7uf3gOtyyy2B9sAg4KlafZ6Y+/m/gZ655TOp/g4+gNeAU2q39eatsW5ZGXtABXB9brkVUAn0qG9MNfVz5s1bQ2/AGcC/Aifl1jsBM4Dzc+sVtcbDImBsbrk1UJgbn8trtXWMeDtqb7XeK5UBW4BuudeOhcAXgM7AH/n/F/w7MfdzJnBRrX7mA7+qtb73/j3HOdDrUMle/ZVQPcv2J6AL1VeHf6bWWE3A3+aWb601Fn3P1kg3Z9SyZ0NK6YXc8m+pHrQAs2u1KcrNPr0GjKf6RXCPR1JKn6Tq6euTc9v+BpiRUtoGkFJ6r1b7P+R+LqH6xXB/9nzJ+WvAipTSmyml/wDWAqfu1XYxcHlETAL6ppQ+zLX7XET8IiJGAR9ERDvgbGBORFQB/0x1AAR4AZgZEf9I9Yuu1NiyMPb+M/D13HhYRPULdk/qH1PS0eKvgTkppXegZhzcC1ye2385MCMi2lP9Zu/hXLsde8ZOLY4RHUteTiltTCl9AlRR/VqwBdgB/I+IuADYewzUNvsA+/Y40OtQfQYD81NKb6eUdgGzgHNy+z4GHs8t137t8j1bIzGoZc/e35ewZ31rrW0zgW+mlPoCN1L9V8c9/qPWcjTgeHva7yb3vXoRMSM3FT63nnaf7HWMT9jr+/hSSs9RPaj/TPXA/XpK6X2gmOq/2FxJ9Yt0C2BzSql/rVvvXB9XAtdTHQKXRETnBjwW6XA0+djL3e9btcZDj5TS/6pvTDWgfymzcn8U6R4RZUDLlFJDLxbiGNGxpPbrxm7guFw4GgL8DjgX+JcD3L/269Mucu/rI6IFcHx+SwVgZ0ppz2tjzWuX79kaj0Etez4bEWfllv8eWFBPm/bAm7nz+8c3oM+nqP5L457P03Q6UOOU0uW5F8CvHELdNSLir4C3Ukr3UB3IBkbESUCLlNLvqR7MA1NKHwDrIuLi3P0iIopzy59PKS1K1V+s/jb7ztpJ+dbkYw+YB1xV67M7p0VE2/rGVAOOLWXFM1R/JrMz1BkH9wH3U30aJLlZsI0RcX6uXas9Y6cWx4iOabmzjTqklOYC/5XqP3IDfEj1a9D+rKf6YyZQ/Xm2gtzy/l6H9tffy8DwiDgpqi+iNQ74Pwep2fdsjcSglj1/BP5LRLwOdATurqfNf6P6lI8XgFUH6zCl9C9Un7pYmTtd5Nq8VVu/MmBZRLwCfBX4OXAKMD93/N8CP8y1HQ/8Q0QsA1YAY3Lbf7rng6xUn1u9rJFrlrIw9u4FVgJLc7/7/0z1XyzL2HdMSUeFlNIKYArwf3L/19+e2zWL6rH2QK3mXwOuiYhXqf6//zN7decY0bGuPfB4bgwsAL6b2/4gMCEiXom9LrKTcw/VAWsZcBa52bYDvA7NBKbuuZjInk5SSm8CE4FnqX7vtSSl9D8PUrPv2RpJ/P8ZTEmSpCMjd+W5MSmlrzV1LZKURZ/mexckSZI+tYj4BdVXo/tUp9hLUnPgjJokSZIkZYyfUZMkSZKkjDGoSZIkSVLGGNQkSZIkKWMMapIkSZKUMQY1SZIkScoYg5okSZIkZcz/A+AAo+/P6ue6AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAEzCAYAAABANfAdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAoNUlEQVR4nO3df3SV1Z3v8fcXRCBAEZFrB7ED7UUBA+FHQDRFwzC9xeKIoE6l2JqucVJ1WttppaXVscpUl1ivtdZWBi1QW1SkrV5/4HD1ClUUkYBBAe3IryspLkdRUPkxAu77Rw65CQQIckIeyPu11ll5fuyzn+85ZHPOJ/s5z4mUEpIkSZKk7GjR1AVIkiRJkuoyqEmSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGIOaJEmSJGXMAYNaREyLiP+MiOX72B8RcUdErIqIlyNiYP7LlCRJkqTmoyEzajOAkfvZfw7QM3crB+469LIkSZIkqfk6YFBLKT0DvLufJqOBe1O1F4DjIuKv8lWgJEmSJDU3+fiM2knA+lrrVbltkiRJkqRP4JjDebCIKKf69EjatWs3qFevXofz8JIkSZKUGUuWLHknpdSlvn35CGp/AU6utd4tt20vKaWpwFSA4uLiVFFRkYfDS5IkSdKRJyL+77725ePUx0eAr+Wu/jgU2JxSejMP/UqSJElSs3TAGbWIuB8oBU6IiCrgx0ArgJTSFGAO8CVgFbAV+HpjFStJkiRJzcEBg1pKadwB9ifgn/JWkSRJkiQ1c4f1YiKSJEnS4bJjxw6qqqrYvn17U5eiZq5NmzZ069aNVq1aNfg+BjVJkiQdlaqqqujQoQPdu3cnIpq6HDVTKSU2btxIVVUVPXr0aPD98nExEUmSJClztm/fTufOnQ1palIRQefOnQ96ZtegJkmSpKOWIU1Z8El+Dw1qkiRJ0lGqe/fuvPPOO3npa8qUKdx7770AzJgxgw0bNjTKcVTNz6hJkiRJ2q+dO3dy+eWX16zPmDGDwsJCunbt2oRVHd0MapIkSdJR4Pzzz2f9+vVs376db3/725SXl9fZ/6//+q/87ne/o0uXLpx88skMGjSIq6++msrKSi6//HK2bt3K5z73OaZNm0anTp0oLS2lf//+LFiwgHHjxvHBBx/Qvn17unfvTkVFBePHj6dt27YsXLgQgF/84hc8+uij7Nixg9mzZ9OrVy+uv/561q5dy5o1a3jjjTf42c9+xgsvvMATTzzBSSedxKOPPnpQV0JsTjz1UZIkSToKTJs2jSVLllBRUcEdd9zBxo0ba/YtXryYP/zhDyxbtownnniCioqKmn1f+9rXmDx5Mi+//DJ9+/blhhtuqNn30UcfUVFRwfe+972abRdeeCHFxcXMnDmTyspK2rZtC8AJJ5zA0qVLueKKK7j11ltr2q9evZqnn36aRx55hEsuuYThw4fzyiuv0LZtWx5//PHGfEqOaAY1SZIk6Shwxx13UFRUxNChQ1m/fj2vv/56zb7nnnuO0aNH06ZNGzp06MDf/d3fAbB582Y2bdrE2WefDcCll17KM888U3O/L3/5yw0+/tixYwEYNGgQ69atq9l+zjnn0KpVK/r27cuuXbsYOXIkAH379q3TTnV56qMkSZJ0hJs/fz5PPfUUCxcupKCggNLS0rx80Xe7du0a3LZ169YAtGzZkp07d+61vUWLFrRq1armCogtWrSo0051OaMmSZIkHeE2b95Mp06dKCgo4LXXXuOFF16os7+kpIRHH32U7du38+GHH/LYY48B0LFjRzp16sSzzz4LwG9/+9ua2bX96dChAx988EH+H4hqOKMmSZIkHeFGjhzJlClT6N27N6eeeipDhw6ts3/w4MGcd9559OvXjxNPPJG+ffvSsWNHAH7zm9/UXEzks5/9LNOnTz/g8crKyrj88svrXExE+RUppSY5cHFxcar9IUZJkiQpn1599VV69+7d1GVkxocffkj79u3ZunUrZ511FlOnTmXgwIFNXVazUd/vY0QsSSkV19feGTVJkiSpGSgvL2flypVs376dSy+91JCWcQY1SZIkqRm47777mroEHQQvJiJJkiRJGWNQkyRJkqSMMahJkiRJUsYY1CRJkiQpYwxqkiRJkpQxXvVRkiRJzUL3iY/ntb91N4/a7/5NmzZx3333ceWVV+b1uI3hsssu47vf/S59+vThpptu4kc/+lHNvjPPPJPnn38+b8e6/fbbKS8vp6CgYL/tunfvTkVFBSeccEKd7ddffz3t27fn6quvzltNWeSMmiRJktQINm3axK9+9au9tu/cubMJqtm/e+65hz59+gBw00031dmXz5AG1UFt69atee3zaGRQkyRJkhrBxIkTWb16Nf3792fw4MEMGzaM8847ryYQnX/++QwaNIjTTjuNqVOn1tyvffv2XHPNNRQVFTF06FDeeustAGbPnk1hYSFFRUWcddZZAMyYMYPRo0dTWlpKz549ueGGG2r6ue222ygsLKSwsJDbb78dgC1btjBq1CiKioooLCxk1qxZAJSWllJRUcHEiRPZtm0b/fv3Z/z48TX1AKSUmDBhAoWFhfTt27fmvvPnz6e0tJQLL7yQXr16MX78eFJK9T4nd9xxBxs2bGD48OEMHz4cgCuuuILi4mJOO+00fvzjH9dpf8stt9C3b1+GDBnCqlWr9upv9erVjBw5kkGDBjFs2DBee+21g/gXyjZPfZQkSZIawc0338zy5cuprKxk/vz5jBo1iuXLl9OjRw8Apk2bxvHHH8+2bdsYPHgwF1xwAZ07d2bLli0MHTqUG2+8ke9///vcfffdXHvttUyaNIm5c+dy0kknsWnTpprjvPjiiyxfvpyCggIGDx7MqFGjiAimT5/OokWLSClx+umnc/bZZ7NmzRq6du3K449Xnwa6efPmvWq+8847qays3Ovx/PGPf6SyspJly5bxzjvvMHjw4JrA+NJLL7FixQq6du1KSUkJzz33HJ///Of36uOqq67itttuY968eTWnNN54440cf/zx7Nq1ixEjRvDyyy/Tr18/ADp27Mgrr7zCvffey3e+8x0ee+yxOv2Vl5czZcoUevbsyaJFi7jyyit5+umnP9k/WMY4oyZJkiQdBkOGDKkJaVA9u7R71mz9+vW8/vrrABx77LGce+65AAwaNIh169YBUFJSQllZGXfffTe7du2q6ecLX/gCnTt3pm3btowdO5YFCxawYMECxowZQ7t27Wjfvj1jx47l2WefpW/fvjz55JP84Ac/4Nlnn6Vjx44Nrn/BggWMGzeOli1bcuKJJ3L22WezePHimsfWrVs3WrRoQf/+/WtqbogHH3yQgQMHMmDAAFasWMHKlStr9o0bN67m58KFC+vc78MPP+T555/noosuon///nzjG9/gzTffbPBxs84ZNUmSJOkwaNeuXc3y/Pnzeeqpp1i4cCEFBQWUlpayfft2AFq1akVEANCyZcuaz7RNmTKFRYsW8fjjjzNo0CCWLFkCUNN2tz3XazvllFNYunQpc+bM4dprr2XEiBFcd911h/zYWrduXbNcu+YDWbt2LbfeeiuLFy+mU6dOlJWV1TwPUPex7Pm4Pv74Y4477rh6Z/+OBs6oSZIkSY2gQ4cOfPDBB/Xu27x5M506daKgoIDXXnuNF1544YD9rV69mtNPP51JkybRpUsX1q9fD8CTTz7Ju+++y7Zt23j44YcpKSlh2LBhPPzww2zdupUtW7bw0EMPMWzYMDZs2EBBQQGXXHIJEyZMYOnSpXsdp1WrVuzYsWOv7cOGDWPWrFns2rWLt99+m2eeeYYhQ4Yc5LNS93l5//33adeuHR07duStt97iiSeeqNN29+fgZs2axRlnnFFn36c+9Sl69OjB7NmzgerP0C1btuyg68kqZ9QkSZLULBzocvr51rlzZ0pKSigsLKRt27aceOKJNftGjhzJlClT6N27N6eeeipDhw49YH8TJkzg9ddfJ6XEiBEjKCoqorKykiFDhnDBBRdQVVXFJZdcQnFxMQBlZWU1Qeqyyy5jwIABzJ07lwkTJtCiRQtatWrFXXfdtddxysvL6devHwMHDmTmzJk128eMGcPChQspKioiIrjlllv49Kc/fdAX8CgvL2fkyJF07dqVefPmMWDAAHr16sXJJ59MSUlJnbbvvfce/fr1o3Xr1tx///179TVz5kyuuOIKfvKTn7Bjxw4uvvhiioqKDqqerIp9XZGlsRUXF6eKioomObYkSZKOfq+++iq9e/du6jIa1YwZM6ioqODOO+9s6lJ0APX9PkbEkpRScX3tPfVRkiRJkjLGUx8lSZKkI1RZWRllZWVNXUa9xowZw9q1a+tsmzx5Ml/84hebqKIji0FNkiRJUt499NBDTV3CEc1THyVJkiQpYwxqkiRJkpQxBjVJkiRJyhiDmiRJkiRljBcTkSRJUvNwfcc897d5v7s3bdrEfffdx5VXXpnf4zaCyy67jO9+97v06dOHm266iR/96Ec1+84880yef/75vB3r9ttvp7y8nIKCgv226969OxUVFZxwwgl1tl9//fW0b9+eq6++Om811aeyspINGzbwpS99aZ9tZs6cyeTJk0kp0aFDB+666668feG2M2qSJElSI9i0aRO/+tWv9tq+c+fOJqhm/+655x769OkDwE033VRnXz5DGlQHta1bt+a1z8ZQWVnJnDlz9tumR48e/OlPf+KVV17hX/7lXygvL8/b8Q1qkiRJUiOYOHEiq1evpn///gwePJhhw4Zx3nnn1QSi888/n0GDBnHaaacxderUmvu1b9+ea665hqKiIoYOHcpbb70FwOzZsyksLKSoqIizzjoLgBkzZjB69GhKS0vp2bMnN9xwQ00/t912G4WFhRQWFnL77bcDsGXLFkaNGkVRURGFhYXMmjULgNLSUioqKpg4cSLbtm2jf//+jB8/vqYegJQSEyZMoLCwkL59+9bcd/78+ZSWlnLhhRfSq1cvxo8fT0qp3ufkjjvuYMOGDQwfPpzhw4cDcMUVV1BcXMxpp53Gj3/84zrtb7nlFvr27cuQIUNYtWrVXv2tXr2akSNHMmjQIIYNG8Zrr722z3+PdevW8Td/8zf069ePESNG8MYbbwDV30V3+eWXU1xczCmnnMJjjz3GRx99xHXXXcesWbPo379/zWPd05lnnkmnTp0AGDp0KFVVVfs8/sHy1EdJkiSpEdx8880sX76cyspK5s+fz6hRo1i+fDk9evQAYNq0aRx//PFs27aNwYMHc8EFF9C5c2e2bNnC0KFDufHGG/n+97/P3XffzbXXXsukSZOYO3cuJ510Eps2bao5zosvvsjy5cspKChg8ODBjBo1iohg+vTpLFq0iJQSp59+OmeffTZr1qyha9euPP744wBs3rx5r5rvvPNOKisr93o8f/zjH6msrGTZsmW88847DB48uCYwvvTSS6xYsYKuXbtSUlLCc889x+c///m9+rjqqqu47bbbmDdvXs0pjTfeeCPHH388u3btYsSIEbz88sv069cPgI4dO/LKK69w77338p3vfIfHHnusTn/l5eVMmTKFnj17smjRIq688kqefvrpev89vvWtb3HppZdy6aWXMm3aNK666ioefvhhoDrEvfjii6xevZrhw4ezatUqJk2aREVFBXfeeecB/qWr/frXv+acc85pUNuGcEZNkiRJOgyGDBlSE9KgenZp96zZ+vXref311wE49thjOffccwEYNGgQ69atA6CkpISysjLuvvtudu3aVdPPF77wBTp37kzbtm0ZO3YsCxYsYMGCBYwZM4Z27drRvn17xo4dy7PPPkvfvn158skn+cEPfsCzzz5Lx44N/9zeggULGDduHC1btuTEE0/k7LPPZvHixTWPrVu3brRo0YL+/fvX1NwQDz74IAMHDmTAgAGsWLGClStX1uwbN25czc+FCxfWud+HH37I888/z0UXXUT//v35xje+wZtvvrnP4yxcuJCvfOUrAHz1q19lwYIF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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAEzCAYAAABANfAdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAoSklEQVR4nO3de5RV5Z3n//cXLIECgoj8TCOmIRkUsKC4FIhW0KLpTEiwRbx0pDGxstquqJOYTCIJicYoHV1qHGOMiTQ6QExQkSTSXrD56SijKCIFFgpIWm4TCC6jRlC5RMBn/qjDmSoooJBT1IZ6v9Y6q/blOXt/z6Ee9vnUs/c+kVJCkiRJkpQdrZq7AEmSJElSfQY1SZIkScoYg5okSZIkZYxBTZIkSZIyxqAmSZIkSRljUJMkSZKkjDlgUIuIqRHx54hYto/1ERF3RsSqiHglIgYVvkxJkiRJajkaM6I2HRi1n/VfAHrlHlXA3YdeliRJkiS1XAcMaimlZ4G/7KfJGOC+VOtF4LiI+JtCFShJkiRJLU0hrlE7CVhfZ35DbpkkSZIk6WM45nDuLCKqqD09kvbt2w/u3bv34dy9JEmSJGXG4sWL304pdW1oXSGC2p+Ak+vMd88t20tKaQowBaCsrCxVV1cXYPeSJEmSdOSJiP+zr3WFOPXxEeArubs/DgM2p5TeKMB2JUmSJKlFOuCIWkQ8AFQAJ0TEBuBHQBFASmkyMAf4IrAK2Ap8tamKlSRJkqSW4IBBLaU07gDrE/DfClaRJEmSJLVwh/VmIpIkSdLhsmPHDjZs2MD27dubuxS1cG3btqV79+4UFRU1+jkGNUmSJB2VNmzYQMeOHenRowcR0dzlqIVKKfHOO++wYcMGevbs2ejnFeJmIpIkSVLmbN++nS5duhjS1Kwigi5duhz0yK5BTZIkSUctQ5qy4OP8HhrUJEmSpKNUjx49ePvttwuyrcmTJ3PfffcBMH36dDZu3Ngk+1Etr1GTJEmStF87d+7k8ssvz89Pnz6dkpISunXr1oxVHd0MapIkSdJR4LzzzmP9+vVs376db37zm1RVVdVb/6//+q/85je/oWvXrpx88skMHjyYq6++mpqaGi6//HK2bt3KZz7zGaZOnUrnzp2pqKhgwIABzJ8/n3HjxvH+++/ToUMHevToQXV1NePHj6ddu3YsWLAAgJ///Oc8+uij7Nixg1mzZtG7d2+uv/561q5dy5o1a/jjH//IT3/6U1588UWeeOIJTjrpJB599NGDuhNiS+Kpj5IkSdJRYOrUqSxevJjq6mruvPNO3nnnnfy6RYsW8bvf/Y6lS5fyxBNPUF1dnV/3la98hVtuuYVXXnmFfv36ccMNN+TXffjhh1RXV/Od73wnv+zCCy+krKyMGTNmUFNTQ7t27QA44YQTWLJkCVdccQW33XZbvv3q1at5+umneeSRR7jkkksYMWIEr776Ku3atePxxx9vyrfkiGZQkyRJko4Cd955J6WlpQwbNoz169fz+uuv59c9//zzjBkzhrZt29KxY0f+4R/+AYDNmzezadMmzj77bAAuvfRSnn322fzzvvSlLzV6/+effz4AgwcPZt26dfnlX/jCFygqKqJfv37s2rWLUaNGAdCvX7967VSfpz5KkiRJR7h58+bx1FNPsWDBAoqLi6moqCjIF323b9++0W3btGkDQOvWrdm5c+dey1u1akVRUVH+DoitWrWq1071OaImSZIkHeE2b95M586dKS4uZuXKlbz44ov11peXl/Poo4+yfft2PvjgAx577DEAOnXqROfOnXnuuecA+PWvf50fXdufjh078v777xf+hSjPETVJkiTpCDdq1CgmT55Mnz59OPXUUxk2bFi99UOGDOHcc8+lf//+nHjiifTr149OnToB8Ktf/Sp/M5FPf/rTTJs27YD7q6ys5PLLL693MxEVVqSUmmXHZWVlqe5FjJIkSVIhvfbaa/Tp06e5y8iMDz74gA4dOrB161bOOusspkyZwqBBg5q7rBajod/HiFicUiprqL0japIkSVILUFVVxYoVK9i+fTuXXnqpIS3jDGqSJElSC3D//fc3dwk6CN5MRJIkSZIyxqAmSZIkSRljUJMkSZKkjDGoSZIkSVLGGNQkSZIkKWO866MkSZJahB4THy/o9tbdPHq/6zdt2sT999/PlVdeWdD9NoXLLruMb3/72/Tt25ebbrqJH/zgB/l1Z555Ji+88ELB9nXHHXdQVVVFcXHxftv16NGD6upqTjjhhHrLr7/+ejp06MDVV19dsJqyyBE1SZIkqQls2rSJX/7yl3st37lzZzNUs3/33nsvffv2BeCmm26qt66QIQ1qg9rWrVsLus2jkUFNkiRJagITJ05k9erVDBgwgCFDhjB8+HDOPffcfCA677zzGDx4MKeddhpTpkzJP69Dhw5cc801lJaWMmzYMN58800AZs2aRUlJCaWlpZx11lkATJ8+nTFjxlBRUUGvXr244YYb8tu5/fbbKSkpoaSkhDvuuAOALVu2MHr0aEpLSykpKWHmzJkAVFRUUF1dzcSJE9m2bRsDBgxg/Pjx+XoAUkpMmDCBkpIS+vXrl3/uvHnzqKio4MILL6R3796MHz+elFKD78mdd97Jxo0bGTFiBCNGjADgiiuuoKysjNNOO40f/ehH9drfeuut9OvXj6FDh7Jq1aq9trd69WpGjRrF4MGDGT58OCtXrjyIf6Fs89RHSZIkqQncfPPNLFu2jJqaGubNm8fo0aNZtmwZPXv2BGDq1Kkcf/zxbNu2jSFDhnDBBRfQpUsXtmzZwrBhw7jxxhv57ne/yz333MO1117LpEmTmDt3LieddBKbNm3K7+ell15i2bJlFBcXM2TIEEaPHk1EMG3aNBYuXEhKidNPP52zzz6bNWvW0K1bNx5/vPY00M2bN+9V81133UVNTc1er+f3v/89NTU1LF26lLfffpshQ4bkA+PLL7/M8uXL6datG+Xl5Tz//PN89rOf3WsbV111FbfffjvPPPNM/pTGG2+8keOPP55du3YxcuRIXnnlFfr37w9Ap06dePXVV7nvvvv41re+xWOPPVZve1VVVUyePJlevXqxcOFCrrzySp5++umP9w+WMY6oSZIkSYfB0KFD8yENakeXdo+arV+/ntdffx2AY489lnPOOQeAwYMHs27dOgDKy8uprKzknnvuYdeuXfntfO5zn6NLly60a9eO888/n/nz5zN//nzGjh1L+/bt6dChA+effz7PPfcc/fr148knn+R73/sezz33HJ06dWp0/fPnz2fcuHG0bt2aE088kbPPPptFixblX1v37t1p1aoVAwYMyNfcGA899BCDBg1i4MCBLF++nBUrVuTXjRs3Lv9zwYIF9Z73wQcf8MILL3DRRRcxYMAAvva1r/HGG280er9Z54iaJEmSdBi0b98+Pz1v3jyeeuopFixYQHFxMRUVFWzfvh2AoqIiIgKA1q1b569pmzx5MgsXLuTxxx9n8ODBLF68GCDfdrc95+s65ZRTWLJkCXPmzOHaa69l5MiRXHfddYf82tq0aZOfrlvzgaxdu5bbbruNRYsW0blzZyorK/PvA9R/LXu+ro8++ojjjjuuwdG/o4EjapIkSVIT6NixI++//36D6zZv3kznzp0pLi5m5cqVvPjiiwfc3urVqzn99NOZNGkSXbt2Zf369QA8+eST/OUvf2Hbtm3Mnj2b8vJyhg8fzuzZs9m6dStbtmzh4YcfZvjw4WzcuJHi4mIuueQSJkyYwJIlS/baT1FRETt27Nhr+fDhw5k5cya7du3irbfe4tlnn2Xo0KEH+a7Uf1/ee+892rdvT6dOnXjzzTd54okn6rXdfR3czJkzOeOMM+qt+8QnPkHPnj2ZNWsWUHsN3dKlSw+6nqxyRE2SJEktwoFup19oXbp0oby8nJKSEtq1a8eJJ56YXzdq1CgmT55Mnz59OPXUUxk2bNgBtzdhwgRef/11UkqMHDmS0tJSampqGDp0KBdccAEbNmzgkksuoaysDIDKysp8kLrssssYOHAgc+fOZcKECbRq1YqioiLuvvvuvfZTVVVF//79GTRoEDNmzMgvHzt2LAsWLKC0tJSI4NZbb+WTn/zkQd/Ao6qqilGjRtGtWzeeeeYZBg4cSO/evTn55JMpLy+v1/bdd9+lf//+tGnThgceeGCvbc2YMYMrrriCH//4x+zYsYOLL76Y0tLSg6onq2Jfd2RpamVlZam6urpZ9i1JkqSj32uvvUafPn2au4wmNX36dKqrq7nrrruauxQdQEO/jxGxOKVU1lB7T32UJEmSpIzx1EdJkiTpCFVZWUllZWVzl9GgsWPHsnbt2nrLbrnlFj7/+c83U0VHFoOaJEmSpIJ7+OGHm7uEI5qnPkqSJElSxhjUJEmSJCljDGqSJEmSlDEGNUmSJEnKGG8mIkmSpJbh+k4F3t7m/a7etGkT999/P1deeWVh99sELrvsMr797W/Tt29fbrrpJn7wgx/k15155pm88MILBdvXHXfcQVVVFcXFxftt16NHD6qrqznhhBPqLb/++uvp0KEDV199dcFqakhNTQ0bN27ki1/84j7b/Pu//zs//OEPadWqFccccwx33HEHn/3sZwuyf0fUJEmSpCawadMmfvnLX+61fOfOnc1Qzf7de++99O3bF4Cbbrqp3rpChjSoDWpbt24t6DabQk1NDXPmzNlvm5EjR7J06VJqamqYOnUql112WcH2b1CTJEmSmsDEiRNZvXo1AwYMYMiQIQwfPpxzzz03H4jOO+88Bg8ezGmnncaUKVPyz+vQoQPXXHMNpaWlDBs2jDfffBOAWbNmUVJSQmlpKWeddRYA06dPZ8yYMVRUVNCrVy9uuOGG/HZuv/12SkpKKCkp4Y477gBgy5YtjB49mtLSUkpKSpg5cyYAFRUVVFdXM3HiRLZt28aAAQMYP358vh6AlBITJkygpKSEfv365Z87b948KioquPDCC+nduzfjx48npdTge3LnnXeyceNGRowYwYgRIwC44oorKCsr47TTTuNHP/pRvfa33nor/fr1Y+jQoaxatWqv7a1evZpRo0YxePBghg8fzsqVK/f577Fu3Tr+7u/+jv79+zNy5Ej++Mc/ArXfRXf55ZdTVlbGKaecwmOPPcaHH37Iddddx8yZMxkwYED+te6pQ4cORET+vd09XQie+ihJkiQ1gZtvvplly5ZRU1PDvHnzGD16NMuWLaNnz54ATJ06leOPP55t27YxZMgQLrjgArp06cKWLVsYNmwYN954I9/97ne55557uPbaa5k0aRJz587lpJNOYtOmTfn9vPTSSyxbtozi4mKGDBnC6NGjiQimTZvGwoULSSlx+umnc/bZZ7NmzRq6devG448/DsDmzZv3qvmuu+6ipqZmr9fz+9//npqaGpYuXcrbb7/NkCFD8oHx5ZdfZvny5XTr1o3y8nKef/75Bk8BvOqqq7j99tt55pln8qc03njjjRx//PHs2rWLkSNH8sorr9C/f38AOnXqxKuvvsp9993Ht771LR577LF626uqqmLy5Mn06tWLhQsXcuWVV/L00083+O/xjW98g0svvZRLL72UqVOnctVVVzF79mygNsS99NJLrF69mhEjRrBq1SomTZpEdXU1d911137/nR9++GG+//3v8+c//zn/vhaCI2qSJEnSYTB06NB8SIPa0aXdo2br16/n9ddfB+DYY4/lnHPOAWDw4MGsW7cOgPLyciorK7nnnnvYtWtXfjuf+9zn6NKlC+3ateP8889n/vz5zJ8/n7Fjx9K+fXs6dOjA+eefz3PPPUe/fv148skn+d73vsdzzz1Hp06Nv25v/vz5jBs3jtatW3PiiSdy9tlns2jRovxr6969O61atWLAgAH5mhvjoYceYtCgQQwcOJDly5ezYsWK/Lpx48blfy5YsKDe8z744ANeeOEFLrroIgYMGMDXvvY13njjjX3uZ8GCBfzTP/0TAF/+8peZP39+ft0/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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "all_values = [\"branch-misses\",\"branches\",\"cycles\",\"instructions\"]\n",
    "\n",
    "grouped = all_data.groupby([\"depth\", \"instance\"]).agg({value: ['min', 'max'] for value in all_values})\n",
    "\n",
    "for pair in test_pairs:\n",
    "    # normalize all results\n",
    "    all_depths = set(all_data[all_data[\"algorithm\"] == pair[0]][\"depth\"]).intersection(all_data[all_data[\"algorithm\"] == pair[1]][\"depth\"])    \n",
    "    normed_data = all_data[all_data[\"algorithm\"].isin(pair) & (all_data[\"depth\"].isin(all_depths))].copy()\n",
    "            \n",
    "    for value in all_values:\n",
    "        normed_data[value] = normed_data.apply(lambda row: (row[value] - grouped.loc[(row[\"depth\"], row[\"instance\"])][value][\"min\"]) / (grouped.loc[(row[\"depth\"], row[\"instance\"])][value][\"max\"] - grouped.loc[(row[\"depth\"], row[\"instance\"])][value][\"min\"]), axis=1)\n",
    "        \n",
    "    \n",
    "    normed_data.groupby(\"algorithm\").mean()[all_values].T.plot.bar(rot=0, figsize=(15,5), ylim=(0,1))\n",
    "    plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tests for paired samples"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualisation of the distribution of the difference"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We check, whether the difference ```data_A - data_B``` is (approximately) normally distributed.\n",
    "This can be done by plotting a **histogram**.\n",
    "Furthermore we plot the **density of an estimated normal distribution**.\n",
    "If the curve approximately follows the histogram, then normal distribution can be assumed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test for 0_comp against alpha_beta using cycles\n"
     ]
    },
    {
     "data": {
      "image/png": "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TVnGJcNEZlYEDAXeTFE8xszeNbNnzGxANcNfa2alZla6efPmYxmqiIg0YhmbDM2sFfAX4CZ335FUPBcodPfBwJ3AE6nG4e6T3X24uw/v1KnTMY1XREQar4xMhmaWS5QI/+juU5LL3X2Hu+8Kn58Gcs2sYwOHKSIiTUTGJUMzM+B3wGJ3v72aOl1DPcxsJNF8bGm4KEVEpCnJxKdJTwWuAuab2bzQ74dAAYC73wd8EbjezCqAPcDl7u5piFVERJqAjEuG7v4aYLXUuQu4q2EiEhGRpi7jLpOKiIg0NCVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJPSVDERGJvYxLhmbW08z+ZmaLzGyhmf1jijpmZneY2XIze8/MhqUjVhERaRpy0h1AChXAze4+18xaA2+b2QvuviihzvlAn9CNAu4Nf0VERI5Yxp0ZuvsGd58bPu8EFgP5SdUmAA97ZDbQ1sy6NXCoIiLSRGRcMkxkZkXAUODNpKJ8YE3C97V8OmFiZteaWamZlW7evPmYxSkiIo1bxiZDM2sF/AW4yd13HM043H2yuw939+GdOnWq3wBFRKTJyMhkaGa5RInwj+4+JUWVdUDPhO89Qj8REZEjlnHJ0MwM+B2w2N1vr6badODq8FTpaGC7u29osCBFRKRJycSnSU8FrgLmm9m80O+HQAGAu98HPA2MB5YDu4GvN3yYIiLSVGRcMnT31wCrpY4DNzRMRCIi0tRl3GVSERGRhqZkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisadkKCIisZdxydDMHjCzTWa2oJrysWa23czmhe4nDR2jiIg0LTnpDiCFB4G7gIdrqDPT3S9smHBERKSpy7gzQ3efAWxNdxwiIhIfGZcM62iMmb1rZs+Y2YDqKpnZtWZWamalmzdvbsj4RESkEWmM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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test for 0_comp against alpha_beta using time\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------------------------------\n",
      "Test for alpha_beta against transposition_table using cycles\n"
     ]
    },
    {
     "data": {
      "image/png": "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iGwVd2fUqFEcdNBBTJ8+nX/84x8899xz7LHHHkmXVqlatN6Hy//8ECcP+G+effZZDjroIF544YWky5JtoOATkXL76quvOPfcc7nooovo1KkT77zzDgMGDCB8m2DNV6t2bY47+5dMnz6dpk2b0qdPHwYNGsTGjRuTLk22goJPRMplxowZdOrUiXHjxnHLLbfwyiuvsNdeeyVdViLy8vKYMWMGgwcP5p577uHwww/ngw8+SLosKScFn4iUyt2588476datG9999x2vv/46v/3tb6lVK92bjx122IFhw4bx3HPP8emnn9K5c2cef/zxpMuSckj3misipVq3bh1nnHEGV199NSeeeCJz586lW7duSZdVrZx44onMmTOHDh06cPbZZzNo0CA2b96cdFlSCgWfiBRr/vz5dO3alQkTJnDnnXcyfvx4mjZtmnRZ1VLr1q15/fXXufLKK7nnnnvo3r07H3/8cdJlSQkUfCLyE8888wxdu3ZlzZo1vPzyy1x55ZWpuYBlW+Xk5HDnnXfyxBNPMH/+fDp27Mjzz5f4i2mSIAWfiHyvsLCQG2+8kdNOO4127doxc+ZMjj766KTLyip9+/Zl9uzZtGnThpNPPplbbrlF//BezSj4RAT44XzeDTfcwAUXXMCUKVNo3bp10mVlpX322Yc333yTc845h+uuu46zzjqLDRs2JF2WRBR8IsKCBQs49NBDee6557jrrrsYNWoUO+ywQ9JlZbUGDRowZswY/vKXvzB+/HgOP/xwPvzww6TLEhR8Iqn37LPP0rVrV1avXs3LL7/MoEGDdD6vgpgZQ4YMYdKkSSxbtowuXbro216qAQWfSEoVFhZy0003ceqpp7LffvvpfF4l6tmzJzNmzKBVq1aceOKJDB06VOf9EqTgE0mhdevW0bdvX66//nqdz6sie++9N9OmTaNfv35cc801nHvuuXz99ddJl5VKCj6RlCk6nzdhwgSdz6tiDRs25JFHHuHWW2/lscceo1u3bixevDjpslJHwSeSIkXn81atWsVLL72k83kJMDOuueYann/+eZYsWUJ+fj4vv/xy0mWlioJPJAXi5/P23XdfZs2axTHHHJN0WanWp08fZsyYwe67706vXr244447dN6viij4RGq4devWceaZZ3L99dfTv39/pk6dqvN51cS+++7LtGnTOP300xkyZAj9+/fnm2++SbqsGk/BJ1KDFZ3Pe/bZZ7nrrrsYPXq0zudVM40bN2bcuHHcfPPNjB07liOPPJIlS5YkXVaNlnXBZ2YPmNkKM3s36VpEqrOnnnqKLl266HxeFjAzrrvuOp599lk++ugj8vPzefXVV5Muq8bKuuADRgF9ki5CpLrasmULv//97znjjDPIzc1l9uzZOp+XJU466SSmT59O8+bN6dmzJ8OGDdN5v0qQdcHn7pOBNUnXIVIdrVmzhpNPPpk//vGPXHLJJUyePJk999wz6bJkK7Rr14633nqLU045hauuuooLL7yQjRs3Jl1WjZJ1wVceZnapmc00s5krV65MuhyRKvH2229/f2n8iBEjuO+++6hfv37SZck22HHHHXniiSe48cYbeeihh+jevTuffPJJ0mXVGHWSLqAyuPtIYCRAfn6++gmkxhszZgy//OUvadq0KZMnT+awww5LuiTufHFh0iVktVq1avGHP/yBvLw8zj//fPLz8xk7diw9evRIurSsVyOP+ETSYvPmzQwePJjzzz+fLl26MGvWrGoRelJxTj311O/P+/Xq1YubbrqJLVu2JF1WVlPwiWSpxYsXc+SRR3L33XczePBgXnrpJVq0aJF0WVIJcnNzmT59Oueffz7XX389J5xwAitWrEi6rKyVdcFnZv8CpgHtzWypmV2SdE0iVe3JJ5+kY8eOLFy4kHHjxjFs2DDq1q2bdFlSiRo2bMjo0aP5xz/+weTJk+nYsSNTpkxJuqyslHXB5+7nuvvu7l7X3Vu5+/1J1yRSVTZt2sQVV1zBmWeeSbt27ZgzZw5nnnlm0mVJFTEzBgwYwFtvvUWDBg049thjGTp0KIWFhUmXllWyLvhE0mrRokUcccQR3HvvvVx11VVMnTqVvfbaK+myJAF5eXnMmjWLvn37cs0119CnTx+WLVuWdFlZQ8EnUs25Ow8++CCdOnVi8eLFPP3009xxxx3k5OQkXZokaMcdd+TRRx/l73//O1OnTuXggw9m/PjxSZeVFRR8ItXYqlWrOOuss7jwwgvJy8tj7ty5nHrqqUmXJdWEmfGrX/2KOXPm0LZtW/r27cuAAQPYsGFD0qVVazXy//hEaoJJkyZx0UUXsXr1am677TaGDBlC7dq1t3l6+r+6mqt9+/a8+eab3HDDDdx666289tprjBkzhkMPPTTp0qolHfGJVDPr1q3j17/+NSeccALNmjVjxowZ/OY3v9mu0JOaLycnh1tuuYXXX3+dgoICunXrxkMPPZR0WdWSgk+kGnn++efp0KEDI0eOZMiQIcycOZNDDjkk6bIki3Tv3p23336biy++mO7duyddTrWkrk6RamDVqlVceeWVjBkzhgMOOIBx48apm0q22U477cTIkSOTLqPa0hGfSIIKCwsZNWoUBxxwAI899hjXX389s2fPVuiJVCId8YkkZM6cOVx++eVMmzaNww47jJEjR3LQQQclXZZIjacjPpEq9uWXX3L55ZeTn5/PokWL+Oc//8kbb7yh0BOpIjriE6kimzZt4q9//St//OMfWbt2LQMHDuTGG2+kSZMmSZcmkio64hOpZIWFhTz00EO0b9+eIUOG0KVLF+bMmcNdd92l0BNJgIJPpJK4O8888wydO3fmggsuoFmzZrz00ktMmjSJgw8+OOnyRFJLwSdSwQoLC3n88cfJy8vjtNNOY926dYwdO5YZM2Zw/PHHJ12eSOop+EQqyObNm3n44Yc58MADOfvss9m0aROjR49mwYIFnHvuudSqpY+bSHWgi1tEttOKFSsYMWIEw4cPZ/ny5Rx44IE88sgj9OvXT18zJlINKfhEtoG7M2PGDIYPH87YsWPZvHkzvXv35v7776d37946uhOpxhR8Ilvhiy++4OGHH+aBBx7g/fffp0GDBgwYMIArrriC3NzcpMsTkXJQ8ImUYd26dUyYMIFHH32U559/noKCAg477DBGjBjBz372M3baaaekSxSRraDgEynG2rVrmTBhAo8//jgvvPACmzZtYo899uCqq67ioosuYv/990+6RBHZRgq+SlDVP/h5Vc92VTavmto2d2fu3LlMnDiRiRMnMm3aNLZs2UKrVq349a9/Tb9+/Tj88MMr9Nydfhg2e9XUz0FaKPgklQoLC3n//feZPHkykydP5rXXXuOLL74AoFOnTlx77bWcfPLJdO3aVReqiNQwCj5JhWXLljFr1qzvb9OmTWP16tUAtGzZkuOOO47evXvTu3dvdtttt4SrFZHKpOCTGmX9+vUsWLCA+fPnM3/+fObOncusWbP4/PPPAahVqxa5ubmceuqpHHXUURx11FHstddemFnClYtIVVHwSVbZsmULy5cvZ8mSJSxZsoRPPvmEJUuWsHDhQubPn8+yZcu+H7d27drk5ubSq1cvOnfuTOfOncnLy6Nhw4YJtkBEkpZ1wWdmfYC7gNrAfe5+a8IlyXbYUvAdG79ez7dfb+Dbr9fzzfqvWL92NRvWrmb9l6t595ECVqxYwYoVK/jiiy/47LPPKCgo+NE0mjVrxr777kvPnj3Jzc0lNzeX9u3bs88++5CTk5NQy0Skusqq4DOz2sBfgZ7AUmCGmT3j7u8nW9m2c/cf/aXoMRmPvx/Oj4a7Oxs3bvzJdMr6W1hYSEFBAQUFBWzZsuUn94t7rqCggIWzl7BlSwGFW7ZQ8N1mCjZv4rvoVrB5E99t+paC7zaH5zZ9S8F3m/huUxi+eeM3bPxmPd9GQbfx6/UUbN5U4rKpVbsOu7XYlV133ZUWLVrQvn17WrVqRZs2bWjTpg2tW7emdevWNGrUaLveAxFJl6wKPqArsMjdPwIws0eA04AKD76hQ4dy0003bXWguDuFTtkBVoGurfApbp9atWpTt1496uTUo27detStV586OTnk1G9Ag8Y70Wy3VtRv0Jj6DRuxQ8PG1C+6NWjEDo13pHGTZjTeeRd2aLQjV/dqn3RzRKSGybbgawl8Gnu8FDg0cyQzuxS4NHq4wcwWVHAduwCrKniaSaiUdhQWbmHTxm/YtPGb7Z7WkLJHqQnvhdpQPVTbNlxd/lErsg1tKmg61U62BV+5uPtIYGRlTd/MZrp7fmVNv6rUhHaoDdWD2lA91IQ2VIVs+8/cz4A9Y49bRc+JiIiUS7YF3wxgPzPby8xygHOAZxKuSUREskhWdXW6e4GZDQReIPw7wwPu/l4CpVRaN2oVqwntUBuqB7WheqgJbah0VhlXGYqIiFRX2dbVKSIisl0UfCIikioKvnIws7PM7D0zKzSzEi8VNrM+ZrbAzBaZWXX7v3LMrKmZvWhmH0R/dy5hvKFRe+eZ2d1Wjb7BeSva0NrM/i9qw/tm1raKSy1RedsQjbujmS01s3urssaylKcNZpZnZtOidekdM/tZErVmKutzamb1zOzRaPi/q9O6U6Qcbbg6Wu/fMbOXzazG/k/etlDwlc+7QF9gckkjxL5O7QTgAOBcMzugasort2uBl919P+BlivnSFzM7AugGHAwcCHQBjq7KIstQZhsiDwJ/dvf9Cd/4s6KK6iuP8rYB4H8pZb1LUHna8A1wgbt3APoAw8ysSdWV+FPl/JxeAnzp7vsCdwK3VW2VpStnG+YA+e5+MDAOGFq1VVZvCr5ycPd57l7Wt798/3Vq7r4ZKPo6terkNGB0dH80cHox4zhQH8gB6gF1gS+qorhyKrMN0Uagjru/CODuG9x9+79GpuKU533AzDoDLYD/q5qytkqZbXD3he7+QXR/GWHno3lVFViC8nxO420bBxxfnXo9KEcb3P3V2Dr/FuF/niWi4Ks4xX2dWsuEailJC3dfHt3/nLBR/RF3nwa8CiyPbi+4+7yqK7FMZbYBaAesNbMnzWyOmf052kuuLspsg5nVAm4H/rsqC9sK5XkfvmdmXQk7Ux9WdmFlKM/n9Ptx3L0A+ApoViXVlc/WbmsuASZWakVZJqv+j68ymdlLQHE/vX2duz9d1fVsq9LaEX/g7m5mP/lfFjPbF9ifH/YQXzSz7u4+pcKLLcH2toGwXncHOgKfAI8CvwDur9hKS1YBbfgv4Hl3X5rUwUYFtKFoOrsDDwEXunthxVYppTGz84F8qtfpisQp+CLu3mM7J1Etvk6ttHaY2Rdmtru7L482RsWd9zoDeMvdN0SvmQgcDlRZ8FVAG5YCc2O/4vEUcBhVGHwV0IbDge5m9l9AIyDHzDa4e5VdNFUBbcDMdgSeI+xAvlVJpW6N8nxOi8ZZamZ1gJ2A1VVTXrmUa1tjZj0IOylHu3vJv/+VQurqrDjZ8HVqzwAXRvcvBIo7kv0EONrM6phZXcKeYnXq6ixPG2YATcys6HzScVTCT1dthzLb4O7nuXtrd29L6O58sCpDrxzKbEP0ORhPqH1cFdZWmvJ8TuNt6we84tXrmz7KbIOZdQRGAKe6e3W6sKt6cHfdyrgRjoKWApsIF3q8ED2/B6E7qmi8E4GFhPMY1yVddzHtaEa4Au8D4CWgafR8PuHX7CF8FdwIQti9D9yRdN1b24bocU/gHeA/wCggJ+nat7YNsfF/AdybdN3bsC6dD3wHzI3d8qpB7T/5nAI3EUICwsVdjwOLgOnA3knXvA1teCnaVhUt92eSrrk63fSVZSIikirq6hQRkVRR8ImISKoo+EREJFUUfCIikioKPhGRLGRmD5jZCjN7txzjHmVms82swMz6ZQybZGZrzWxC5VVbvSj4RESy0yjCl3+XxyeEf4sZW8ywPwP9K6ak7KDgExHJQu4+GVgTf87M9omO4GaZ2RQzy43G/djd3wF+8pVx7v4ysL5Kiq4m9JVlIiI1x0jgMnf/wMwOBf5G+OYiiVHwiYjUAGbWCDgCeDz2xeb1kquo+lLwiYjUDLWAte6el3Qh1Z3O8YmI1ADuvg5YbGZnAVhwSMJlVUv6rk4RkSxkZv8CjgF2IXwh9fXAK8BwYHegLvCIu99kZl0Iv5SxM/At8Lm7d4imMwXIJfz81WrgEnd/oWpbU7UUfCIikirq6hQRkVRR8ImISKoo+EREJFUUfCIikioKPhERSRUFn4iIpIqCT0REUuX/A1U0G2xX25EXAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test for alpha_beta against transposition_table using time\n"
     ]
    },
    {
     "data": {
      "image/png": "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4ze/+Q0vvfQSRx99dKFLsxrkE/TTgZ6SuklqDgwDJldoMxm4IO0+B5gaESGpOD2Zi6TuQE9gfu2Ubmb14f333+eSSy6hX79+vPTSS9x5553Mnj2bc889t1H/M449SY1X3UREmaQrgKeBIuCBiJglaRRQGhGTgf8EHpY0F1hN8mEAcBwwStJWoBy4NCJW18WKmFnt2rBhAz/96U8ZM2YMW7Zs4corr+SGG26gXbt2NU9sDUpeP0uLiCnAlArDbsrp/gj4aiXT/Tfw37tZo5nVo23btvHQQw9xww03sHTpUs4++2xuv/12evToUejSbBf5l7FmtkNlJ1onTZrkkG/kHPRmxptvvslXvvIVBg0axAcffMDEiRN9ojVDHPRme7Dly5fzL//yL/Tr14+//OUvjB07ltmzZ3Peeef5RGuG7Dm3jjOzHT766CPGjRvHrbfeysaNG7nssssYOXJkZm8XvKdz0JvtQcrLy5k4cSLXXXcdCxcu5PTTT2fs2LH07t270KVZHfKhG7M9xF/+8he+8IUvcP7559OuXTumTp3K7373O4f8HsBBb5Zxs2fP5uyzz+aYY45hyZIlPPjgg5SWlnLiiScWujSrJw56s4xatGgRF110EYceeijPPvsso0aN4u233+aCCy6gSRO/9fckPkZvljGrVq3itttu4+677yYiuOqqq7juuuvwDQP3XA56s4xYv34948aN44477mD9+vV885vf5Oabb6ZLly6FLs0KzEFv1sht3LiR++67jzFjxrBs2TLOPPNMRo8eTd++fQtdmjUQDnqzRmrjxo3ce++9jB07lmXLlnHiiSfyxBNP8IUvfKHQpeXlrmffLnQJewwHvVkjs2HDhh0Bv3z5ck466SQee+wxjj220n/gZuagN2ss1qxZw7333su4ceNYvnw5AwcOZOTIkRxzzDGFLs0aOAe9WQO3cOFCxo0bx/jx49mwYQMnn3wyN954I1/84hcLXZo1Eg56swZq5syZ3HHHHUycOBGAYcOG8cMf/pDPfe5zBa7MGhsHvVkDUlZWxuTJk7nnnnuYOnUqrVu35nvf+x5XX301nTt3LnR51kg56M0agGXLlnH//fdz3333sXjxYjp37sytt97KpZdeStu2bQtdnjVyDnqzAikvL+eFF15g/PjxTJo0ia1btzJo0CDuvvtuTj31VIqKiuq1Hl/umF0O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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------------------------------\n",
      "Test for transposition_table against transposition_table_opt_all using cycles\n"
     ]
    },
    {
     "data": {
      "image/png": "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/Yjw7sCn08YqIiLFoUTaujJgq7vPyC5w918S3tjeIWb2daAK+NsORyciIkWnU7utcPftwGtm9gmA+MLa6WmHa2ZXAO8HLvTwsmERESlReo1agpndRXhRdiXhhc9fJ7y8+seEl4JXAHe7e65TurmG9zTh7tyBhBfeXu7uvzGzvcDr7L8R6ZftHaaIiBxalEhFRERS0KldERGRFHSzUVRZWem1tbXFDkNEpKQ8//zzG929qthxFJMSaVRbW8v8+fOLHYaISEkxs9eLHUOx6dSuiIhICkqkIiIiKSiRioiIpKBEKiIikoISqYiISApKpCIiIikokYqIiKSgRCoiIpKCEqmIiEgKerJREd3w6PKCju8LZ9cVdHwiIj2BjkhFRERSKNlEamblZvYXM3swR1kfM7vHzFaY2bNmVluEEEVEpAco2UQKXAMszVN2ObDF3Y8CbgC+XbCoRESkRynJRGpmNcAHgVvyVDkfuD223wecaWZWiNhERKRnKclECnwP+DLQlKe8GlgN4O57gW3AiOxKZjbHzOab2fz6+vouClVERLqzkkukZvYhYIO7P592WO5+s7vPdPeZVVU9+r20IiLSQSWXSIFTgPPMbBVwN3CGmd2RVWctMBbAzHoBQ4BNhQxSRER6hpJLpO7+VXevcfda4ALgcXe/KKvaPODS2D471vEChikiIj1Et3kgg5ldD8x393nArcDPzGwFsJmQcEVERDpdSSdSd38SeDK2X5vo/jbwieJEJSIiPUnJndoVERE5lCiRioiIpKBEKiIikoISqYiISApKpCIiIikokYqIiKSgRCoiIpKCEqmIiEgKSqQiIiIpKJGKiIikoEQqIiKSghKpiIhICkqkIiIiKSiRioiIpKBEKiIikoISqYiISAoll0jNrK+Z/dnMFprZYjP7Ro46l5lZvZktiM0VxYhVRES6v17FDqADGoEz3H2nmVUAvzezh939T1n17nH3q4oQn4iI9CAll0jd3YGd8WtFbLx4EYmISE9Wcqd2Acys3MwWABuAR9392RzVPm5mi8zsPjMbm2c4c8xsvpnNr6+v78qQRUSkmyrJROru+9x9BlADnGBmU7OqPADUuvs04FHg9jzDudndZ7r7zKqqqi6NWUREuqeSTKTN3H0r8ARwblb3Te7eGL/eAhxX4NBERKSHKLlEamZVZjY0tvcDzgZezqozOvH1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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test for transposition_table against transposition_table_opt_all using time\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEWCAYAAABv+EDhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAk6ElEQVR4nO3de3hV1Z3/8feXBIIJJuESBIJcFCQGWlGBoFiVm9Jqf9ipzljbPszUjm0fO+3Yy4zWaWtt7dSZPrWdZ9ppbbUX26m1tjPDdOwoKNARhRAuotw0cpGLyi2EEJDcvr8/9ko8HHM5QEgI6/N6nvOwz9pr773WPueszz577xzM3RERkfj06u4GiIhI91AAiIhESgEgIhIpBYCISKQUACIikVIAiIhEKooAMLNDZnZed7cjnZltNbNZXbCdT5nZm2E/DDyedpnZl8zsJynzPmBm28O6LjazcWa2xsxqzOwzp7IfIu0xs5+Z2Te6ux09yRkVAGHgOhIGp+bHMHfv5+6bQ53T8k1iZveY2S9PwXp7A98Brgn7Yd/xLO/u33T3j6cUfRv4dFjXauDvgEXufra7/0vntVzaY2Z9zOzx8J53M7s6bb6Z2f1mti887jczC/MGmdnSUH7AzJ43s2ntbKvYzP7LzPab2Q4z+2Ta/Cwz+4aZ7QoHAqvNrLCT+9stn1szm2dmK83sYOj7P5lZdiv1xprZW6mf4XDwlDoWHTGzJjMb1Ma2vm5mL5pZg5ndkzbvuNaVqTMqAIL3h8Gp+bHrZFbW2ovdw5wD9AXWddL6RqatK/15xs6AfdvdngU+ArzRyrzbgBuAi4B3A+8HPhHmHQI+BhQB/YH7gf9u5/X4JbCF5L10HfBNM5ueMv9rwOXAZUA+8FHgrRPt1GkmF/hbYBBQBswEvtBKve8DK1ILwsFTy1hEsp8Xu/veNrZVSXJA9T/pM05gXZlx9zPmAWwFZrVS7sAYkg9FPVBH8iH47zbW48DtwCvAllB2PbAGOAA8B7w7pf7fAzuBGmATMDOU/wz4Rkq9q4Ed6e0F5oQ21Yd2vRDm/yWwOax3C/DhNtqbA3wX2BUe3w1lFwC1oT+HgGfaWP6jwDZgH3B36n4E7iEZAHLCOjys81XgGaCR5MN+KGwvh+RbwmvAm8APgbNS+x/21xvAIyQHIXeG9e0DHgMGhPqjwvbmhfXtBe5OaXcW8KWwbA2wEjg3zCsBFgD7w2vy58fxPloMfCO8zoeA/wYGAr8CDpJ80EeltTE7bfmPd+H7fgdwdVrZc8BtKc9vBZa1smwvknBwYHAr8/uFeUUpZQ8Cj4Tp/mEfnd8J/TDgAWB32M8vAhNo43MLXAysCq/9b4BHSfm8naJ9/TnSxg3g5vC+vQf4ZTt92wzMy2AbvwTu6WA/ZbSuDrfVVW/SrnjQQQCE6Z919CYJ9RcAA4CzwhttN8kRQFYYkLaSDHbjgO3AsLDsqOYPQ/q2aCMAwvQxbx4gL3wIxoXnQ4HxbbT3XmAZMJjkqO454Osp7TlmgEpbtjR8qK4M/fkO0NBOu1r2ZXi+mJTBLnyA54d9dzbJ4PmPKf1vIDl6yQn79rOh7cND2Y+AX6e1/ceh7kXAUeDCMP+LJIPEuPChuIhkoM4Lr8lfAdnh9dsLlIblbgHWtvP6LyY5GjsfKADWAy+ThHU28Avgp23t3/R9krbuW0gOItp6jDiB931rAVANlKU8nwTUpNVZSzKoOvDjNtZ9NmnhEF6P1WH6ytDu5lB/Gbj9BD+/15KEeGF4PS8EhrbxWepDctByB9AbuJEkJFr9bANXdLDfr8iwjf8JfCvleX7o83DaD4ArST5n/TLYRkcBkPG6OnqciaeA/jOc1zxgZv95Euv5R3ff7+5HSI5AfuTuy9290d1/TjIQTSU5As4BSs2st7tvdfdXT7oXiSZggpmd5e6vu3tbp1o+DNzr7rvdfQ/JV/KPZriNG4E/uPuf3P0o8OWw3eMWzjHfBtwR9l0N8E2SI6TUPn3V3Y+GfftJkqP6HWH79wA3pp2O+Jq7H3H3F4AXSAZ6gI8D/+DumzzxgifXOK4Htrr7T929wZNrFb8DbgJw939393d30J2fuvur7l4N/BF41d0XunsD8FuSUDluYduF7TxeO5H1tqIfSQg0qwb6NV8HCG15N8kAdgvJ6aTW2lsDLAW+bGZ9zewS4IMkp0YgGfgKSL79jSZ5P91jZrNPoM31JIFTApi7b3D319uoO5Vk4P+uu9e7++OknYJJ68ezHez3Vvufysw+RhKk304p/jrwkLvv6GDxecDj7n6oo+1koNPWdSYGwA0pL+oNJ7Ge7SnTI4HPpwTLAeBckqP+SpJzhPcAu83sUTMbdhLbBcDda4G/IBkgXzez/zGzkjaqDyM5Gmq2LZRlYhgpfQ3bPa4LxSmKSAaGlSn76X9DebM97p56fngk8B8p9TeQhOo5KXVSz3EfJhncIHkNWgvbkUBZ2uv1YWDIcfTlzZTpI60870cXMbMRqRcAM1zsEMng3iwfOOThELKZu7/l7r8G7jSzi2jdh0kG9+3Av5EcoTYPeEfCv/eGkF5LcirmfRm2M7UtzwD/SnI+fbeZPWhm+W1UHwbsTOvPtjbqnjQzuwH4R+C9Hs67m9lEkm+FD3SwbC7JwcfPO6EdnbYuODMDoCOZ/vxpar3twH1pRwy54YPTfFR3BcnA4ySnOCA5V56bsp72BqB3tMvdn3T32SSnfzaSfPVuza6w7WYjQlkmXicZSIGWN1iHt4q2YS/JgDA+ZT8VeHLRqll6P7eTfKhS921fd9+Zwfa2k5ymaa18Sdo6+7n7p06oV+2rDf9m9Dqb2YfT7uZIf4xIX8bdX/NjLwBmYh1vf1MiTLd3sb430Oqt0u6+zd2vd/cidy8juSBaHmavba6WukiGbWxtW//i7peSnJq8gOQ0X2vrfB0oTv1GQ/K+b5WZvaeD/f6edpadQ/LZe7+7v5gy62qSU4CvmdkbJBeHP2hmq9JW8QGSa1GL29rGcejMdUUZAG/Sxhu9HT8GPmlmZeH2ujwzu87MzrbkPvgZZpZDcjH0CG+fQlkDvM/MBpjZEJJvCu21a5SZ9QIws3PMbK6Z5ZGcbjpE26dmfg38g5kVhdvCvkJylJaJx4HrzewKM+tDcj3hhN4X7t5Esq8eMLPBoR/FZnZtO4v9ELjPzEaG+kVmNjfDTf4E+Hq4Bc/M7N2W/J3DH4ALzOyjZtY7PCab2YUn0q/2hFNuO4GPWHI75MdoPZSa6//Kj71LLf2R8SkgM8sxs77haZ9wiqZ5QPwF8Lmw/4cBnyc5j46ZTW1+vc3sLDP7e5JvXMvb2M6F4b3ex8w+AlxDcq2IcLrz/4C7Q3suJDnl94ew7NVmllEghNeozJJbl2tJPk/N7/n0z+3zJNeTPhNe3z8DprS1bnf/vw72+/+10aYZJBf/P+ju5WmzHyR5rSeGxw9J7uBJf7/PA36R/u2rlW31Dq9nLyA7vJ5ZJ7KuTMUYAA+RnK/P+BqBu1cAf03y9bSK5ALhX4bZOcC3SI5+3yC5EHtXmPcIyTnrrcBTJHcqtOW34d994QiiF8kdB7tIEv8qoK0j2G8AFSRHYy+S3BmR0T3TnlxXuB34d5Kjqire/np/Iv6eZP8sM7ODwEKSi7Rt+R7JReOnzKyG5IJwWYbb+g7J3RdPkVwwf4jkjqMakkHqZpL99wZvX3huPgrvrNtiIXlvfJHk1Nl4kovwXWETyQFHMfBkmG7+JvgjkgvwLwIvkQxMPwrzckhOs+wjCa/3Add5uGW6lf1zLcldJ1UkpyTnhOBr9qGw3X1hO19296fDvHPJfH/kkxxAVPH2XWn/HOYd87l19zrgz0g+h/tJTpf+PsPtHI8vk1zjeCLl28IfAdz9sLu/0fwgOUh7K3XfmFkxMIMkkI9hZj80sx+mFP2Y5DX8EMndeEdIuZbX3rpOlHVSkIiIvIMlf0X+W3d/srvbIu+kABARiVSMp4BERAQFgIhItBQAIiKRUgCIiERKASAiEikFgIhIpBQAIiKRUgCIiERKASAiEikFgIhIpBQAIiKRUgCIiERKASAiEikFgIhIpBQAIiKRUgCIiERKASAiEqns7m7A8Rg0aJCPGjWqu5shItJjrFy5cq+7F7U2r0cFwKhRo6ioqOjuZoiI9Bhmtq2teToFJCISKQWAiEikFAAiIpFSAIiIREoBICISKQWAiEikFAAiIpFSAIiIREoBICISqR71l8AiIp3tgQUvd9m27ph9QZdtKxP6BiAiEikFgIhIpBQAIiKRUgCIiERKASAiEikFgIhIpBQAIiKRUgCIiERKASAiEikFgIhIpBQAIiKRUgCIiERKASAiEikFgIhIpBQAIiKRUgCIiERKASAiEikFgIhIpBQAIiKRUgCIiERKASAiEikFgIhIpBQAIiKRUgCIiERKASAiEikFgIhIpDIKADObY2abzKzSzO5sZX6Omf0mzF9uZqNS5t0VyjeZ2bUp5XeY2Toze8nMfm1mfTulRyIikpEOA8DMsoDvA+8FSoEPmVlpWrVbgSp3HwM8ANwfli0FbgbGA3OAH5hZlpkVA58BJrn7BCAr1BMRkS6SyTeAKUClu2929zrgUWBuWp25wM/D9OPATDOzUP6oux919y1AZVgfQDZwlpllA7nArpPrioiIHI9MAqAY2J7yfEcoa7WOuzcA1cDAtpZ1953At4HXgNeBand/qrWNm9ltZlZhZhV79uzJoLkiIpKJbrkIbGb9Sb4djAaGAXlm9pHW6rr7g+4+yd0nFRUVdWUzRUTOaJkEwE7g3JTnw0NZq3XCKZ0CYF87y84Ctrj7HnevB34PXH4iHRARkROTSQCsAMaa2Wgz60NysXZ+Wp35wLwwfSPwjLt7KL853CU0GhgLlJOc+plqZrnhWsFMYMPJd0dERDKV3VEFd28ws08DT5LcrfOwu68zs3uBCnefDzwEPGJmlcB+wh09od5jwHqgAbjd3RuB5Wb2OLAqlK8GHuz87omISFssOVDvGSZNmuQVFRXd3QwROYM8sODlLtvWHbMv6LJtNTOzle4+qbV5+ktgEZFIKQBERCKlABARiZQCQEQkUgoAEZFIKQBERCKlABARiZQCQEQkUgoAEZFIKQBERCKlABARiZQCQEQkUgoAEZFIKQBERCKlABARiZQCQEQkUgoAEZFIKQBERCKlABARiZQCQEQkUgoAEZFIKQBERCKlABARiZQCQEQkUgoAEZFIKQBERCKlABARiZQCQEQkUgoAEZFIKQBERCKlABARiZQCQEQkUgoAEZFIKQBERCKlABARiVRGAWBmc8xsk5lVmtmdrczPMbPfhPnLzWxUyry7QvkmM7s2pbzQzB43s41mtsHMLuuUHomISEY6DAAzywK+D7wXKAU+ZGaladVuBarcfQzwAHB/WLYUuBkYD8wBfhDWB/A94H/dvQS4CNhw8t0REZFMZfINYApQ6e6b3b0OeBSYm1ZnLvDzMP04MNPMLJQ/6u5H3X0LUAlMMbMC4ErgIQB3r3P3AyfdGxERyVgmAVAMbE95viOUtVrH3RuAamBgO8uOBvYAPzWz1Wb2EzPLa23jZnabmVWYWcWePXsyaK6IiGSiuy4CZwOXAP/m7hcDtcA7ri0AuPuD7j7J3ScVFRV1ZRtFRM5omQTATuDclOfDQ1mrdcwsGygA9rWz7A5gh7svD+WPkwSCiIh0kUwCYAUw1sxGm1kfkou689PqzAfmhekbgWfc3UP5zeEuodHAWKDc3d8AtpvZuLDMTGD9SfZFRESOQ3ZHFdy9wcw+DTwJZAEPu/s6M7sXqHD3+SQXcx8xs0pgP0lIEOo9RjK4NwC3u3tjWPXfAL8KobIZ+KtO7puIiLSjwwAAcPcngCfSyr6SMv0WcFMby94H3NdK+Rpg0nG0VUREOpH+ElhEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQilVEAmNkcM9tkZpVmdmcr83PM7Ddh/nIzG5Uy765QvsnMrk1bLsvMVpvZH066JyIiclw6DAAzywK+D7wXKAU+ZGaladVuBarcfQzwAHB/WLYUuBkYD8wBfhDW1+yzwIaT7YSIiBy/TL4BTAEq3X2zu9cBjwJz0+rMBX4eph8HZpqZhfJH3f2ou28BKsP6MLPhwHXAT06+GyIicrwyCYBiYHvK8x2hrNU67t4AVAMDO1j2u8DfAU3tbdzMbjOzCjOr2LNnTwbNFRGRTHTLRWAzux7Y7e4rO6rr7g+6+yR3n1RUVNQFrRMRiUMmAbATODfl+fBQ1modM8sGCoB97Sw7Dfh/ZraV5JTSDDP75Qm0X0RETlAmAbACGGtmo82sD8lF3flpdeYD88L0jcAz7u6h/OZwl9BoYCxQ7u53uftwdx8V1veMu3+kE/ojIiIZyu6ogrs3mNmngSeBLOBhd19nZvcCFe4+H3gIeMTMKoH9JIM6od5jwHqgAbjd3RtPUV9EROQ4dBgAAO7+BPBEWtlXUqbfAm5qY9n7gPvaWfdiYHEm7RARkc6jvwQWEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSCkAREQipQAQEYmUAkBEJFIKABGRSGUUAGY2x8w2mVmlmd3ZyvwcM/tNmL/czEalzLsrlG8ys2tD2blmtsjM1pvZOjP7bKf1SEREMtJhAJhZFvB94L1AKfAhMytNq3YrUOXuY4AHgPvDsqXAzcB4YA7wg7C+BuDz7l4KTAVub2WdIiJyCmXyDWAKUOnum929DngUmJtWZy7w8zD9ODDTzCyUP+ruR919C1AJTHH31919FYC71wAbgOKT746IiGQqkwAoBranPN/BOwfrljru3gBUAwMzWTacLroYWH4c7RYRkZPUrReBzawf8Dvgb939YBt1bjOzCjOr2LNnT9c2UETkDJZJAOwEzk15PjyUtVrHzLKBAmBfe8uaWW+Swf9X7v77tjbu7g+6+yR3n1RUVJRBc0VEJBOZBMAKYKyZjTazPiQXdeen1ZkPzAvTNwLPuLuH8pvDXUKjgbFAebg+8BCwwd2/0xkdERGR45PdUQV3bzCzTwNPAlnAw+6+zszuBSrcfT7JYP6ImVUC+0lCglDvMWA9yZ0/t7t7o5ldAXwUeNHM1oRNfcndn+jk/omISBs6DACAMDA/kVb2lZTpt4Cb2lj2PuC+tLJnATvexoqISOfRXwKLiERKASAiEqmMTgGJiHSHuro6du/ezd69e6murm55HDx4kOrqampqaqirq3vHo76+nl69epGVlUVWVlbLdHZ2Nnl5eeTl5dGvXz/y8vIo33aInL655OYXklfQn375/cnNLyS7d5/u7v4ppwAQkW5RXV3Ntm3b2LZtG1u3bmXbtm3s2LGDN998kzfffJM33niDqqqqdteRnZ1NTk4OOTk59OnTp+WRnZ1NU1MTjY2NNDY2tkzX19dz+PBhamtrSW5UbFvf3H7kFfQnf+BgCgcNoWDQORQWDaWwaAgFg4YwcOhw8vL7k9zU2DMpAETklDly5AivvPIKGzduZNOmTS3/VlZWUl1dfUzdvn37Mnz4cIYMGUJpaSnTp0/nnHPOYciQIQwaNIjCwkIKCgrIz8+noKCAgoICcnJyTqhd7s6RI0eora3le39cy9EjtRyuqaa2uorag1XUVldx6GAVhw7s5+C+3bz28otUL11AQ33dMes5q18+g4pHUjRsJIOKRzFo2AiKikdRNHwUuWcXnPB+6yoKABE5aY2Njbz88susWbOGNWvWsHbtWjZu3Mi2bduOOdIeOXIkJSUlTJ06lVGjRjFy5MiWx+DBg7vsaNrMyM3NJTc3l4FDz+14AZLQqK2u4sDeNziw53X27drOnp1b2btzG1vWr2b14v85pq8Fg85h6OhxDB19AcPCv3V1o+jT5/Q5tWQdfQ06nUyaNMkrKiq6uxkiUTt69Chr1qxh1apVLQP+iy++yJEjRwDo3bs3paWllJaWMm7cOEpKSigpKWHs2LHk5uZ2c+vf6YEFL3fKehrq6tj3RhIKu7dv5o2tr7Br8ybe3P4qjfX1QHLKqqSkhIkTJzJ58mQmT57MxIkTOeusszqlDa0xs5XuPqnVeQoAEWmLu7NlyxaWL1/OsmXLWL58OatXr6auLjkV0r9/fyZOnHjMo6Sk5LQ6yu1IZwVAWxob6tmzYyuvb3mZ4exh7dq1rFq1itdffx1IQmHChAlMmTKlJRTGjx9PdnbnnKBRAIhIRg4fPsyyZct4/vnnWwb95h9hzM3NZfLkyZSVlVFWVsbkyZMZPnx4j74ICqc+AFLdMfuClumdO3eyYsWKYx4HDhwAoF+/fpSVlXH55Zdz+eWXM3XqVAoLC09om+0FgK4BiESspqaGpUuXsmTJEpYsWUJFRQX14XRFSUkJ1113HVOnTqWsrIwJEyZ02lGpQHFxMcXFxdxwww1A8m3r1Vdfpby8nOeee47nnnuO++67j6amJvLz86mqqqJXr8790y29miIRqaqq4tlnn20Z8FetWkVTUxPZ2dlMnjyZz33uc1x11VVMnTqV/v37d3dzo2JmjBkzhjFjxnDLLbcAcOjQIcrLy9m5c2enD/6gABA5ox06dIglS5awcOFCFi1axNq1a3F3cnJyKCsr4+677+bKK6/ksssuIy8vr7ubK2n69evHjBkzTtn6FQAiZ5D6+npWrFjBwoULWbhwIc8//zwNDQ307duXadOm8bWvfY0rr7ySsrIy+vbt293NlW6mABDpwdydjRs3smDBAhYuXMjixYupqanBzLj00kv5whe+wKxZs5g2bZoGfHkHBYBID7Nr1y6efvrplqP8Xbt2AXD++edzyy23MGvWLGbMmMGAAQO6uaVyulMAiJzmampqWs7jL1y4kHXr1gEwcOBAZs2axaxZs5g5cyajR4/u5pZKT6MAEDnNNDQ0sGLFChYsWMCCBQtYtmxZy3n8K6+8knnz5jFr1iwuuuiiU3JniMRDAdCB7vojEYmHu1NZWdky4C9atIjq6mrMjEsuuUTn8eWUUQCIdIN9+/bx9NNPtwz627ZtA5IfS7vpppuYPXs2M2bMYNCgQd3cUjmTKQBEusDRo0dZunRpy4C/atUq3J38/HymT5/OF7/4Ra655hrGjBnT439aQXoOBYDIKdDU1MSLL77I008/zVNPPcWf/vQnjhw5QlZWFlOnTuWrX/0qs2fPZsqUKfp5Bek2eueJdAJ3Z/369SxatIhFixaxZMkS9u3bB8C4ceO49dZbmT17NldffTX5+fnd3FqRhAJA5AS4Oy+//HLLgL948WJ2794NwIgRI7j++uuZPn06M2bM4NxzM/sPR0S6mgJAJAPNv9S4ePHilkG/+ffci4uLueaaa5g+fTrTp09n1KhROo8vPYICQKQVdXV1rF69mqVLl7J06VKeffbZliP8c845p2Wwnz59ui7cSo+lABABDhw4wPPPP98y2JeXl7f8F4fnnXce1157LVdccQXvec97KCkpiWrA78q/hQH9PUxXUgBIdBoaGli/fj3l5eWUl5ezbNkyXnrpJdydrKwsLr74Yj7xiU8wbdo0pk2bxtChQ7u7ySKnhAJAzmjuztatWykvL2fFihWUl5ezcuVKDh8+DEBhYSFTpkzhpptuYtq0aZSVlel38SUaCgA5YzQ2NlJZWcmaNWtYvXo1a9asYeXKlezduxeAnJwcLr74Yj7+8Y8zZcoUpkyZovP3EjUFgPRItbW1vPTSS6xZs6blsXbt2pYj+969ezN+/Hje//73twz2EyZMoE+fPt3ccpHThwJATms1NTVs2LCB9evXs27dOtavX8/69evZunVrS53CwkImTpzIbbfdxsSJE5k4cSIXXnihBnuRDigApNs1Njby2muv8corr1BZWckrr7zCxo0bWbduHdu3b2+pl5OTQ0lJCZdddhm33norEyZM4OKLL2bEiBE6jSNyAhQAEevK2/uOHjnM3LE5bNu2jVdffbVlsK+srGTz5s3U19e31M3NzWXcuHFcddVVlJaWtjxGjx6t382JQFffdhozfZrkpDU1NVFbvZ/9b+7iwO5dVLU8Xqdqd1JWe/AAd6Usk5eXx5gxY3jXu97FBz7wAcaOHcuYMWMYM2YMQ4cO1RG9SBdQAEib6uuOUlO1l4P791Czfy8H9+9Onu/bQ03VHg7uTx41Vftoamw4Ztmc3Dz6Dy6m/+ChjCy5iP6Dh3HLzEsYMWIE559/PkOGDNEgL9LNFAARqK+v5+DBg1RXV1NdXc3+/fvZu3cvS59dz6GDVRw+eIDa6ipqa5J/Dx88QG3NAY4ern3HusyMvIIB5A8o4uwBgxgy6gLyBxSRP3AwAwYPo3DwMAacM4y+eWe/Y4C/RX/hKXJaySgAzGwO8D0gC/iJu38rbX4O8AvgUmAf8BfuvjXMuwu4FWgEPuPuT2ayzhi5O/X19Rw+fLjlUVtbe8zz9LLa2tqWwT11kE993vyTBm3pm9uPvIL+5OYX0q9wIOeMOD+Zzu/P2QOKkgE+DPj9CgeSlaXjBpEzQYefZDPLAr4PzAZ2ACvMbL67r0+pditQ5e5jzOxm4H7gL8ysFLgZGA8MAxaaWfNhYEfr7DQbNmygvr6exsZGGhoajvm3tbLUeSvW7MCbkunUf5saG2lqaqSpsYmG+joaG+ppbKinob6Ohvp6GuvraAjPG+vrW+q0PG84tk79W0f44tEjNDY2Hnf/zj77bAoKCigoKCA/P5+BAwdy3nnnkZ+ff0x56vyBAwfyu3XV5J5dQFZ271Ow10XkdJfJodwUoNLdNwOY2aPAXCB1sJ4L3BOmHwf+1ZLv/3OBR939KLDFzCrD+shgnZ3m0ksv7fAo+GT1ysomu3cfsnr3Jrt3H7Kzk3+zsnu3lGVl9ybnrDyy83uTlVanT9+zuOLCYnJzc8nLyyM3N7flkf48taxv37706tXrhNr81C7dbSESs0wCoBjYnvJ8B1DWVh13bzCzamBgKF+WtmxxmO5onQCY2W3AbeHpITPblEGbu1xTYwN1jQ3w1jtmDQL2ZrKOP/1HZ7fqtNDS/891c0O6Scav/xks9n3Q3Z+BkW3NOO1P5rr7g8CD3d2OE2VmFe4+qbvb0V3U/7j7D9oHp3P/Mzl3sBNI/T/thoeyVuuYWTZQQHIxuK1lM1mniIicQpkEwApgrJmNNrM+JBd156fVmQ/MC9M3As+4u4fym80sx8xGA2OB8gzXKSIip1CHp4DCOf1PA0+S3LL5sLuvM7N7gQp3nw88BDwSLvLuJxnQCfUeI7m42wDc7u6NAK2ts/O7d1rosaevOon6L7Hvg9O2/5YcqIuISGxO7P5BERHp8RQAIiKRUgB0EjObaGbLzGyNmVWY2ZRQbmb2L2ZWaWZrzeySlGXmmdkr4TGv7bX3HGb2N2a20czWmdk/pZTfFfbBJjO7NqV8TiirNLM7u6fVncvMPm9mbmaDwvMo3gNm9s/htV9rZv9hZoUp86J5/Zv1iL65ux6d8ACeAt4bpt8HLE6Z/iNgwFRgeSgfAGwO//YP0/27ux8nuQ+mAwuBnPB8cPi3FHgByAFGA6+SXPzPCtPnAX1CndLu7sdJ7oNzSW5u2AYMiuk9AFwDZIfp+4H7Y3v9U/ZFj+ibvgF0Hgfyw3QBsCtMzwV+4YllQKGZDQWuBRa4+353rwIWAHO6utGd7FPAtzz56Q/cfXcob/lJEHffAjT/JEjLz4y4ex3Q/JMgPdkDwN+RvB+aRfEecPen3L35d8GXkfx9D8T1+jfrEX1TAHSevwX+2cy2A9+Glv//pLWf0ihup7wnuwB4j5ktN7MlZjY5lEexD8xsLrDT3V9ImxVF/9N8jORbD8TZ/x7Rt9P+pyBOJ2a2EBjSyqy7gZnAHe7+OzP7c5K/jZjVle3rCh3sg2yS0xlTgcnAY2Z2Xhc275TroP9fIjkNcsZqr//u/l+hzt0kf/fzq65smxw/BcBxcPc2B3Qz+wXw2fD0t8BPwnR7P4dxdVr54k5q6inTwT74FPB7T06ClptZE8kPYbX30x896idB2uq/mb2L5Pz2C+E/whkOrAo3A5wx74H2Xn8AM/tL4HpgZngfwBn0+h+HnvFzN919EeJMeQAbgKvD9ExgZZi+jmMvAJaH8gHAFpKLf/3D9IDu7sdJ7oNPAveG6QtIvgIbyf8HkXoRcDPJRbLsMD2aty+Uje/ufnTSvtjK2xeBo3gPkFy/WA8UpZXH+Pr3iL7pG0Dn+Wvge+HH8N7i7Z+wfoLkLpBK4DDwVwDuvt/Mvk7yu0iQDJz7u7bJne5h4GEzewmoA+Z58mmI/SdBYnkP/CvJIL8gfAta5u6f9Ah/Esbb+Amdbm7WO+inIEREIqW7gEREIqUAEBGJlAJARCRSCgARkUgpAEREIqUAEBGJlAJARCRS/x94DGGIriZTbAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------------------------------\n",
      "Test for transposition_table against transposition_table_opt_1 using cycles\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test for transposition_table against transposition_table_opt_1 using time\n"
     ]
    },
    {
     "data": {
      "image/png": "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l1zCuHHjaNCgQbrLEjkqmdk8d88vcZyCPlKVQV/VKvODZdeuXYwePZoxY8bw7W9/mwceeIBzzz230uYnIiUrK+h1CwQ5LDVr1uRPf/oTs2bNomHDhpx33nkMHTqULVu2pLs0EQkU9FIhunfvzrx587j55puZMGECHTt25Lnnnkt3WSKCgl4qUE5ODrfddhuzZ8+mcePG9O/fn5/97Gf694UiaaaglwrXrVs3CgoKuOWWW3jqqafo0KED9913H/v37093aSJHJQW9VIrs7GxuvfVWFi1axCmnnMJVV11Fz549mT9/frpLEznqKOilUnXo0IFXX32VCRMmsGbNGvLz8xk+fLhuoyBShRT0UunMjIsvvpjly5dz5ZVXcvfdd9O+fXv+8Y9/6HCOSBVQ0EuVadCgAffccw+zZ88mNzeXSy+9lPz8fN544410lyYSawp6qXLdu3fn7bffZuLEiWzatInevXtzwQUX8MEHuuedSGVQ0EtamBmDBg1i+fLl3HbbbUydOpW8vDxGjBjB5s2b012eSKwo6CWtatWqxc0338yKFSu4+OKLGTduHK1bt2b06NH6r1YiFURBLxmhadOmPPzwwyxatIg+ffowcuRIWrduzdixY/nyyy/TXZ7IEU1BLxmlU6dOPP3008yZM4dTTjmFESNG0KpVK26//XZdkilyiBT0kpG6d+/OtGnTeP311+nSpQs33HADLVu2ZOTIkTqGL3KQFPSS0Xr16sW0adOYPXs2vXr1YvTo0bRs2ZJhw4axYkV8by0tUpEU9HJE6NGjB88++yyLFy/mggsu4IEHHqB9+/acd955TJ8+nUz7vwoimURBL0eUTp068eijj/LRRx8xatQoCgoK6Nu3L9/5zne44447+Oyzz9JdokjGUdDLEem4445j5MiRfPTRRzzyyCM0atSI66+/nubNm3PRRRcxdepU9u3bl+4yRTKCgl6OaDk5OQwZMoS33nqLpUuX8utf/5rXXnuNfv360axZM4YPH86sWbN0aEeOagp6iY28vDzGjh3Lhg0bmDx5MmeccQbjx4+nZ8+etGnThhtvvJF33nlHN1KTo46CXmInJyeHCy64gMmTJ7Nx40YeeeQR2rVrx9ixYzn99NM5/vjjufzyy3nuuecoKipKd7kilc4y7Sttfn6+FxQUVPl875yuS/Xi7osd21g2dyZL35nB+3Nn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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------------------------------\n",
      "Test for transposition_table against transposition_table_opt_2 using cycles\n"
     ]
    },
    {
     "data": {
      "image/png": "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5Ch5iYhI5Ch5iYhI5Ch5iYhI5Ch5iYhI5CQteZlZbTP72MxmmdlMM7u+gH5amdk6M5vmP3clKz4REYmOZD4eahtws3PuazOrAkw1s4nOuVlx/X3mnLswiXGJiEjEJO3Myzm31Dn3tf++AZgNHJ2s6YuISOkRyjUvM6sHNAf+W0BxSzP71szeM7OmhYyjp5nlmFnOihUrSipUERFJQUlPXmaWAbwB3OCcWx9X/DVQ1zl3IvAU8Fai8TjnhjrnspxzWZmZmSUWr4iIpJ6kJi8zSydIXP90zr0ZX+6cW++cy/Xf3wXSzaxGMmMUEZHUl8y7DQ14HpjtnHssQT9H+v4ws9N8fKuSFaOIiERDMu82PBO4HJhhZtN8t35AHQDn3LPAZUBvM9sGbAY6O+dcEmMUEZEISFrycs5NBmwv/fwd+HtyIhIRkajSEzZERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRylLxERCRykpa8zKy2mX1sZrPMbKaZXV9AP2ZmT5rZfDObbmYnJys+ERGJjrJJnNY24Gbn3NdmVgWYamYTnXOzYvppCzT0n9OBZ/xfERGRnZJ25uWcW+qc+9p/3wDMBo6O6609MMoFvgSqmtlRyYpRRESiIZRrXmZWD2gO/Deu6GhgcczvJeyZ4PLH0dPMcswsZ8WKFSUSp4iIpKakJy8zywDeAG5wzq3f3/E454Y657Kcc1mZmZnFF6CIiKS8pCYvM0snSFz/dM69WUAvPwO1Y37X8t1ERER2SubdhgY8D8x2zj2WoLdxwJ/9XYctgHXOuaXJilFERKIhmXcbnglcDswws2m+Wz+gDoBz7lngXaAdMB/YBFyZxPhERCQikpa8nHOTAdtLPw7ok5yIREQkqvSEDRERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxERiRwlLxER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VGG2b9/OmWeeyYIFC5g9e3apeaN0aaDHQ4kcJPr168fixYt5/vnnUzJxpaK0tDSGDx/OunXruOGGG8IOR0qRsmEHIBIFkydPZsiQIVx77bWcccYZRR4umWdCqeqEE07gjjvuYODAgXTr1o22bduGHZKUAmo2FNmLX3/9lZNOOoktW7YwY8YMMjIyijxsaU5eRWk2zLdlyxaaN29Obm4uM2fOpEqVKiUYmRSFmg1FSrmBAwcyZ84chg4duk+JS3YpX748zz//PEuWLOGOO+4IOxwpBZS8RArx9ddfM3jwYK688kpat24ddjiR1rJlS6699lqefvppPv/887DDkYhLavIyswvMbI6ZzTez2wsov8LMVpjZNP+5OpnxicTaunUr2dnZZGZm8uijj4YdTqkwaNAg6tSpw9VXX82vv/4adjgSYUlLXmaWBgwB2gJNgC5m1qSAXsc4507yn+HJik8k3n333ce0adN45plnDvonxheXjIwMnnvuOb7//nsGDRoUdjgSYck88zoNmO+c+8E5txV4BWifxOmLFNmXX37JAw88QPfu3fnjH/8YdjilSps2bbj88st56KGHmD59etjhSEQlM3kdDcQ+5GyJ7xbvUjObbmavm1nCJ56aWU8zyzGznBUrVhR3rHIQ27hxI5dffjm1atXib3/7W9jhlEqPP/441apVIzs7m23btoUdjkRQqt2w8S+gnnOuGTARGJmoR+fcUOdclnMuKzMzM2kBSunXt29fFixYwMiRIzn00EPDDqdUql69Ok899RQ5OTk88cQTYYcjEZTM5PUzEHsmVct328k5t8o5t8X/HA6ckqTYRAB4//33eeaZZ7jxxhtp1apV2OGUah07dqR9+/b079+fb7/9NuxwJGKSmby+AhqaWX0zKwd0BsbF9mBmR8X8vBiYncT45CC3atUqrrrqKpo2baqbCZLAzBg2bBjVq1enU6dObNy4MeyQJEKSlrycc9uAa4APCJLSq865mWY20Mwu9r1dZ2Yzzexb4DrgimTFJwc35xx/+ctfWLlyJf/4xz/07MIkyczM5KWXXmLu3Llcf/31YYcjEZLUZxs6594F3o3rdlfM9zsA/fu9JN0zzzzDG2+8weDBg2nevHnY4RxUzj33XO644w4eeOABWrduTadOncIOSSIg1W7YEEm6adOmceONN9KuXTtuvvnmsMM5KN1zzz20aNGCnj17snDhwrDDkQhQ8pKD2oYNG+jYsSM1atRg5MiRlCmjTSIM6enpO19Y2bVrV/Ly8kKOSFKdtlQ5aDnn6NGjBwsWLGD06NF6UWLI6tWrx7Bhw/jyyy+57bbbwg5HUpySlxy0Hn30UcaMGcOgQYM4++yzww5HCG6fv/baa3n88cd3nomJFETJSw5K//73v7ntttu47LLLdJSfYh599FF++9vfkp2drcdHSUJKXnLQWbRoEZ07d+b444/nhRdewMzCDklipKen8+qrr1KtWjUuueQSVq9eHXZIkoKUvOSgsn79ei6++GK2bdvG2LFj9XLJFHXkkUfyxhtvsGTJEi699FK2bt0adkiSYpS85KCRl5dHhw4dmD17Nq+99hoNGzYMOyQpRIsWLRgxYgSTJk2iR48eOOfCDklSSFL/SVkkLM45/vrXvzJhwgSGDx+utyJHRLdu3fjhhx+46667OPbYYxkwYEDYIUmKUPKSg8KDDz7I8OHD6d+/P9nZ2WGHI/vgzjvvZP78+dx1113Url2bK664IuyQJAUoeUmpN2TIEPr370+3bt247777wg5H9lH+A3yXLl1KdnY2VapU4dJLLw07LAmZrnlJqfbiiy9yzTXX0L59e91ZGGHlypVj7NixtGjRgi5duvD++++HHZKETMlLSq1XX32V7OxsWrduzSuvvEJ6enrYIckBqFy5MuPHj6dp06ZccsklfPzxx2GHJCFS8pJSadSoUXTp0oUzzjiDsWPH6hUnpUTVqlWZMGECDRo0oF27djoDO4gpeUmp8/TTT9O9e3datWrFe++9R+XKlcMOSYpRZmYmkyZN4vjjj+fiiy9m7NixYYckIVDyklLDOceDDz5Inz59uOiiixg/frz+CbmUyszM5KOPPiIrK4sOHTrwwgsvhB2SJJmSl5QKW7du5eqrr6Zfv3506dKFN954Q02FpVx+E+K5557LVVddRf/+/dmxY0fYYUmSKHlJ5K1evZo2bdowYsQIBgwYwEsvvaSbMw4SGRkZjB8/np49e/LAAw/QqVMnNm3aFHZYkgT6Py+JtKlTp9KxY0eWLFnCSy+9RLdu3cIOSZIsPT2dZ599luOOO46+ffsyb948Xn31VY477riwQ5MSpDMviSTnHE899RRnnHEGW7duZdKkSUpcBzEz4+abb+add95h8eLFnHLKKYwZMybssKQEKXlJ5Cxbtow//elPXHfddZx//vlMmzaNli1bhh2WpIB27doxbdo0mjVrRufOnbnqqqtYu3Zt2GFJCVDykshwzjFy5EiaNGnCe++9x6OPPsq4ceOoXr162KFJCqlduzaTJk2iX79+jBo1iqZNm/LOO++EHZYUMyUviYSZM2fSpk0brrjiCpo2bcq3337LTTfdpMc9SYHS09MZNGgQX375JdWrV+eiiy6iQ4cOLFy4MOzQpJgoeUlK++WXX+jduzfNmjVjypQpPPXUU3zyySc0atQo7NAkArKyssjJyWHgwIGMHz+e448/njvuuIP169eHHZocICUvSUnLly/ntttu45hjjmHYsGH06dOH+fPnc80111CmjFZbKbpy5coxYMAA5s6dS8eOHXnooYeoX78+9913n66HRZiVhreTZmVluZycnKRO8/GJc5M2rRtbHzy3/M6ePZshQ4bw/PPPs3XrVjp16sRdd91F48aNww5tvyRzPSntims7yD8T+9e//sUhhxxC79696dWrF/Xq1dutv9K+jZvZVOdcVtInXEx0CCuh27RpE6+88gqtWrWiSZMmDB06lC5duvD999/z8ssvRzZxSWrKyspi3LhxfPPNN5x//vk8/PDDNGjQgAsvvJBx48axdevWsEOUItA/KUsoNm7cyIcffsiYMWN4++232bhxI/Xr1+ehhx7iyiuv5PDDDw87RCnlTjrpJF577TUWL17MsGHDGDp0KOPHj6dq1apceumllD3mDI5pdhply5ULO1QpgJKXJEVeXh7Tpk1j8uTJvP/++3zyySds2bKFww47jG7dutGpUydatWql61mSdLVr12bgwIEMGDCAiRMnMnr0aMaMGUNu7vOUq1CJhs1b0OiUs6jf9GSOqnccZdLSwg5ZUPKSEpCXl8e8efOYNWsWOTk5fPHFF+Tk5LB582YAGjduTJ8+fWjbti3nnHOOnkMoKSE9PZ127drRrl07Nm/ezHWPvcTs/05i1pRPmPmfjwAoX7ESdRufRL2mJ1OzQWOOqt+Q6kfWVkILQVKTl5ldAPwNSAOGO+ceiisvD4wCTgFWAZ2cc4uSGaPs3fbt21mzZg0///wzP/74Iz/99BM//fQTCxcuZNasWcydO5dt27YBwQ6hefPm/OUvf6Fly5a0bNmS2rVrh1wDkcJVrFiRJqedQ5PTzuFPzrFm+c8s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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test for transposition_table against transposition_table_opt_2 using time\n"
     ]
    },
    {
     "data": {
      "image/png": "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5RUuu+wy/va3v7F161YGDBhA8MVdkcRSUEfcrl27uPrqqxk+fDg333wz//jHPxQOSZKamkpmZiYVK1bk7rvvZuvWrTz44INaH5JwCuoI27FjB7169eKll15iwIAB3HvvvQqFJCtTpgzPPvsslSpV4uGHH2br1q08+uijJeYTjkSTgjqisrOz6dmzJ2PGjOGhhx7illtuSXZJEkpJSeGpp56iQoUKDB48mG3btjFkyJAS8yvuEj0K6gjasmUL5513HpMmTeLJJ5/k2muvTXZJkouZ8c9//pNKlSrxwAMPkJ2dzYgRI7SDVxJCr6qI2bhxI127dmXWrFmMGDGC3r17J7skyceeX4upWLEid955J9u2bSMzM1OHTErcKagj5IcffuCss85iwYIFjB49mgsuuCDZJUkM7rjjDipXrsxNN93EH//4R1599VV9CUniSntAImLNmjWceuqpLFq0iDfffFMhXczceOONDBkyhHfeeYdzzjmHLVu2JLskKUEU1BHw7bff0qFDh70/Qtu1a9dklyT74eqrr+a5555j6tSpdO7cmY0bf/fToiL7RUGdZIsXL6Z169asW7eOiRMn0rFjx2SXJAdgz+GUs2fPplOnTvqFc4kLBXUSvf/++7Rr147du3czY8YM2rRpk+ySJA4uvPBCXnvtNT755BPatWvH8uXLk12SFHMK6iR544036NSpE4cccgizZ8+mWbNmyS5J4qhbt25MnjyZtWvX0qZNGz7++ONklyTFmII6CYYMGcL5559P8+bN+eCDD6hfv36yS5IEaNeuHR988AGpqal06NCBSZMmJbskKaYKDGoze9bM1pnZp0VRUEm25zSl/fr1o0uXLkyZMoWDDjoo2WVJAh1zzDHMnj2bhg0b0qVLF0aNGpXskqQYimWL+jngrATXUeL9+uuv9OnTZ+9pSt944w0qVaqU7LKkCNStW5cZM2bQvn17Lr/8ch5++GHcPdllSTFSYFC7+wzgxyKopcTasGEDnTp1YsSIEdx1110MGzZMXzUuZapXr8748ePp2bMnt956K3379uXXX39NdllSTMQtLcysL9AXgl9ylsBnn33GOeecw6pVq8jMzOTiiy9OdkmSJOXLl+fFF1+kcePGDBw4kC+++ILXXnuNtLS0ZJcmERe3nYnuPtTd0909XS+8wIQJE2jdujVbtmxh+vTpCmkhJSWF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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------------------------------\n",
      "Test for transposition_table against transposition_table_opt_3 using cycles\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test for transposition_table against transposition_table_opt_3 using time\n"
     ]
    },
    {
     "data": {
      "image/png": "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7BPIOf0cck7vT3bPkzmiQYNKx1JdlABEpM7at28fL730ElOnTuWVV15hz549tGzZkosuuoghQ4Zw7rnn0r59+xqPq0GDDDp160Wnbr34xrCrcXfyN65lxfx/sGL+PF577s/MffZxmh/dhj79L+SUc7/Fsd2/WuNxlsein+2vH/r27eu5ubm1HYaIVCN3Z8GCBUyePJlnnnmGTz/9lPbt2zNs2DAuueQS+vfvT8OGDatsfaXdAqqMvbt38t7C11nyz5msmD+Pos8/p02HLtw46lquv/56unTpUuXrLI2ZLXL3vimnKQGISF2wY8cOJk+ezGOPPcbKlStp3Lgx3/72t7nuuus477zzaFBNt1KqIwEk2rtrB++8MYu3571M3pK3ABgyZAg/+MEPuPDCC6ttu0qUlQD0PQARqVXLly/nxhtvpGPHjvz4xz+mefPmPP7443z88cdMmTKFgQMHVvtJsjo1aXYUpw++jB/eP4l169Zx5513snjxYi6++GKys7MZN24cW7durZXYlABEpMa5O3PnzuWCCy7gxBNP5IknnuDSSy9lwYIFzJ8/n1GjRtGiRYvaDrPKHXvssdx1112sX7+e559/np49e3LnnXfSuXNnbrzxRj744IMajUcJQERqTFFREc8//zynn346AwYM4N133+Xee+9l48aNTJo0idNOO622Q6wRDRs25JJLLmHWrFksW7aMK664gokTJ9K9e3eGDRvG/PnzayQOJQARqXb79+9n4sSJ5OTkcOmll7Jt2zb++Mc/snbtWsaMGUObNm1qO8Ra06tXLyZOnMj69esZO3Ysr7/+OmeccQYDBw7kn//8Z7WuWwlARKrN559/zoQJE+jWrRujRo2iadOmPPvss6xatYobbriBxo0b13aIdUa7du24++67Wb9+PQ8++CDvvvsu55xzDmeffTazZs2iOh7YUQIQkSpXWFjIpEmT6N69O9///vfp2LEjr7zyCosWLeI73/lOve7UrW7NmjXj1ltvZe3atfzud79jzZo1XHPNNezbt6/K16UEICJVpqioiClTppCTk8P3vvc9WrVqxYwZM/jXv/7FoEGDMLPaDrHeaNKkCT/60Y9YvXo1s2bNokmTJlW+DiUAEak0d2fGjBn06dOHESNG0KRJE1588UUWLlzIkCFDdOKvhMzMTE466aRqWbYSgIhUyqJFixgwYADf/OY32b9/P9OmTWPx4sUMHTpUJ/46TglARA7JunXruOqqq+jbty/Lli3j97//PcuXL+fyyy+vkh9jk+qX1rtkZoPNbJWZ5ZnZ7SmmZ5rZs2H6fDPLTpg2JpSvMrNBCeVPmNlmM1tWJVsiIjVi27Zt3HrrrXTv3p0XXniBsWPHkpeXx+jRo6v0N3qk+pWbAMysAfAoMATIAa4ws5ykaiOB7e5+PPAwcH+YNwcYDvQCBgN/CMsDmBTKRKQe2LdvH7/+9a/5yle+wkMPPcSIESN4//33ueeeezjqqKNqOzw5BOlcAfQD8tx9jbsXAFOBoUl1hgKTw/BzwACLbv4NBaa6+353XwvkheXh7v8EtlXBNohINSouLmbKlCn06NGD2267ja997WssXbqUiRMn0qlT/fnnJ3KwdBJAR2BDwvjGUJayjrsXAp8BrdOct0xmdoOZ5ZpZbn5+fkVmFZFKmjt3LqeddhojRoygVatWzJkzhxkzZvDVr9a937aXiqvzPTXuPsHd+7p736ysrNoORyQWli1bxoUXXsiAAQPYsmULTz/9NLm5uQwYMKD8maXeSCcBbAI6J4x3CmUp65hZBtAC2JrmvCJSR2zatImRI0fSu3dv/v3vf/Pggw+yatUqrrrqKj3ZcxhK519CLgS6mVlXopP3cODKpDrTgWuBfwOXAXPd3c1sOvAXM3sI6AB0AxZUVfAiUjV27NjBAw88wEMPPURRURE//elPueOOO2jdunWNx1Ld/6BFvlRuAnD3QjO7CXgVaAA84e7LzewuINfdpwMTgafMLI+oY3d4mHe5mU0DVgCFwGh3LwIws2eA/kAbM9sI/I+7T6zyLRSRUhUUFDB+/HjuvvtutmzZwvDhw7n33nvp2rVrbYcmNSCtfwrv7jOAGUllv0gY3gdcXsq844BxKcqvqFCkIlJliouLmTZtGmPHjmXNmjWcd955PPDAA5x66qm1HZrUIN3UE4mZuXPn0q9fP6644gqaNWvGzJkzmTNnjk7+MaQEIBIT77zzzhdP9uTn5/Pkk0+yePFiBg8erN/siSklAJHD3OrVq7nmmmvo06cPb7311hdP9lx99dV6sifm0uoDEJH6Z/369dxzzz38+c9/plGjRtx6662MGTOGo48+urZDkzpCCUDkMPPhhx8ybtw4Hn/8ccyM0aNHM2bMGNq1a1fboUkdowQgcpjYvHkz9913H4899hiFhYWMHDmSsWPH0rlz5/JnllhSAhCp5z788EN+85vfMH78ePbt28c111zDf//3f3PcccfVdmhSxykBiNRTq1ev5oEHHmDSpEkUFRVxxRVXcOedd9K9e/faDk3qCSUAkXpm2bJl3HfffTzzzDNkZGRw/fXXc9ttt+kTv1SYEoBIPeDuzJkzh0ceeYQZM2bQtGlTbrnlFm655Rbat29f2+FJPaUEIFKH7d27lylTpvDII4+wfPly2rZty69+9StGjx5dKz/UJocXJQCROmjTpk2MHz+e8ePHs2XLFvr06cOkSZMYPnw4mZmZtR2eHCaUAETqiKKiImbOnMmECRP429/+hrtz8cUXc/PNN3P22Wcf8HMNNfmTyTcPPKHG1iU1SwlApJZt2LCBiRMnMnHiRDZu3Ejbtm35+c9/zqhRo9SxK9VKCUCkFuzcuZMXXniBKVOmMGfOHNydCy64gN/+9rd861vfomHDhrUdosSAEoBIDSkoKODVV19lypQpTJ8+nb1795Kdnc2YMWMYOXKk/gmL1DglAJFqtG/fPubOncuLL77I888/z9atW2ndujXXXXcdV111FV//+tf1U8xSa5QARKrY9u3bmTFjBi+++CIzZ85k9+7dNG/enIsuuogrr7ySQYMG6RaP1AlKACKVVFxczNtvv83s2bOZPXs2r7/+OoWFhbRr144RI0YwbNgwzj33XD2+KXWOEoBIBbk769ev5+9//zuzZ89mzpw5bN26FYDevXvzs5/9jGHDhtGvXz/9wxWp05QAyqHnratOfW3LwsJCli5dyhtvvMGbb77Jm2++yYcffghA+/btueiiixg4cCDnn38+bdu2rbL11hU1+b5JzVICEElQVFTE+++/z9tvv83ixYtZtGgRCxcuZPfu3QAce+yx9O/fnzPPPJNzzjmHnJwcdeJKvaUEILHk7nzyySesXLmSFStWsGLFCpYsWcKSJUvYs2cPAJmZmfTu3Zvrr7+eM888kzPPPJNOnTrVcuQiVUcJQA5b7s7mzZtZu3Yta9euZc2aNaxZs4b33nuPlStXsn379i/qNm/enN69ezNq1ChOOeUUTjnlFHr06KGndeSwpgQg9VJxcTG7P9vGjm357Ni6mc+2bmbntnw+27qZT/M/5k8//YR169Z98Wm+RNu2benevTvf/e536dmzJz179iQnJ4cOHTroVo7ETloJwMwGA78FGgB/cvf7kqZnAk8CpwJbge+6+7owbQwwEigCfuzur6azTDn8uTufF+ynYO8e9u/dzf69u9m3Zxd7dnzKnp2fsTvh796dnyaMb2fn9q0UFxUetMwjm7ekRVZb+n21B4MGDaJr165fvLKzs2natGktbKlI3VRuAjCzBsCjwEBgI7DQzKa7+4qEaiOB7e5+vJkNB+4HvmtmOcBwoBfQAZhjZiWPZ5S3zHrJ3Q/4S8k4SeMl06OJQPSt0VTLqOjfxOHi4mKKioooKiqisLDwi+F0xlOVFRQUsH///gNe+/btO6gsuXz37t3kbcpn/xcn+z0U7N1DcXFRme15RIMMjmzegqZHteTI5i04um0HOh6fw1Gtsjiq9TEc1SqLFuFv81ZZNGwUPWt/uD9RJVIV0rkC6AfkufsaADObCgwFEk/WQ4FfhuHngN9bdD09FJjq7vuBtWaWF5ZHGsusMscccwx79uw5pBNqsXPwSRxSn8gr6b+qbEm1o1GjRmRmZtK4cWMyMzMPeDVr1oxmLVvTun1nGjU+kswjm5LZ+EgymzT9cvjIpmQ2aZpwwm9J5pFNdWtGpJqkkwA6AhsSxjcCp5dWx90LzewzoHUofytp3o5huLxlAmBmNwA3hNFdZrYqjZirSxtgSy2u/1DVSNwFBQUUFBSwc+fOqlhcpWK+pSoiqDjtHzWnPsbMLbUTd5fSJtT5TmB3nwBMqO04AMws19371nYcFVUf41bMNac+xl0fY4a6F3c631PfBHROGO8UylLWMbMMoAVRZ3Bp86azTBERqUbpJICFQDcz62pmjYg6dacn1ZkOXBuGLwPmenRzfDow3Mwyzawr0A1YkOYyRUSkGpV7Cyjc078JeJXokc0n3H25md0F5Lr7dGAi8FTo5N1GdEIn1JtG1LlbCIx29yKAVMus+s2rcnXiVtQhqI9xK+aaUx/jro8xQx2L26ryKRYREak/9Fu1IiIxpQQgIhJTSgAJzOxyM1tuZsVm1jehfKCZLTKzd8Pf8xKmnRrK88zsd+ELcJhZKzObbWYfhL9H12TMYdqYENcqMxuUUD44lOWZ2e0J5V3NbH4ofzZ00Fc7M+tjZm+Z2RIzyzWzfqHcQpvmmdk7ZnZKwjzXhrb9wMyuLX3p1Rr3j8zsvdD+DySUV6jda5qZ/czM3MzahPG63s4PhnZ+x8xeMLOWCdPqdFvX1Xi+4O56hRfQE+gOvAb0TSg/GegQhk8ENiVMWwCcARgwExgSyh8Abg/DtwP313DMOcBSIBPoCqwm6nBvEIaPAxqFOjlhnmnA8DA8HvhhDbX7rIR2uxB4LWF4ZmjbM4D5obwVsCb8PToMH13D+8q5wBwgM4wfc6jtXsNxdyZ6+GI90Kaut3OI4wIgIwzfX3Is1fW2Toi/TsWT+NIVQAJ3X+nuB33T2N0Xu/uHYXQ50CQ82toeOMrd3/LonX4SGBbqDQUmh+HJCeU1EjMJP8Ph7muBkp/h+OKnPdy9AJgKDA1XLucR/ZRHtcacggNHheEWQElbDwWe9MhbQMvQ5oOA2e6+zd23A7OBwTUUa4kfAvd59DMnuPvmhJjTbvcajhngYaJfHUl8+qMutzPuPsvdS3757y2i7w2VxF2X27pEXYvnC0oAFXcp8HY48DsS/YxFicSfumjr7h+F4Y+Bmv5fgal+wqNjGeWtgU8TDrTEbaluPwUeNLMNwK+BMaG8ottQk04AvhFumf3DzE4L5XU2ZjMbSnT1ujRpUp2NOYXria5WoP7EXdfi+UKd/ymIqmZmc4B2KSaNdff/V868vYguQS+oyDrd3c3skJ+3rUzMdUVZ2wAMAG529/8zs+8Qfa/k/JqML5VyYs4gujVyBnAaMM3MjqvB8FIqJ+Y7qOC+W1PS2cfNbCzR94mm1GRsh7PYJQB3P6QTi5l1Al4ArnH31aF4E19ejsKBP2nxiZm1d/ePwuX0Zg7RIcZc1s9tpCrfSnTpnxGuAqr05znK2gYzexL4SRj9K/CnMFzWT4n0Typ/rYpC/UI5Mf8QeD7c+ltgZsVEP/RV0XavUqXFbGZfJbpPvjQ8p9AJeDt0uNdqO0P5+7iZXQdcBAwIbQ613NYVUHd/+qa2OyHq4ouDO1RbEnXcfDtF3eRO4AtD+YMc2An8QA3H3IsDO8jWEHVGZYThrnzZIdUrzPNXDuwEvrGG2nsl0D8MDwAWheFvcmDn5IJQ3gpYS9QxeXQYblXD+8gPgLvC8AlEl/h2KO1eS/v4Or7sBK6z7RziGEz0awJZSeX1pa3rVDwHxFbbAdSlF3AJ0f25/cAnwKuh/E5gN7Ak4VXy1EdfYBlRL//v+fLb1a2BvwMfED0tUi0HTmkxh2ljQ1yrCE/ZhPILgffDtLEJ5ccRJbQ8omSQWUPtfhawKBwY84FTQ7kR/eOg1cC7HJjgrg9x5gHfq4V9pRHwdHjv3wbOO9R2r6V9PTEB1Nl2DjHkESXYkmNvfH1q67oYT8lLPwUhIhJTegpIRCSmlABERGJKCUBEJKaUAEREYkoJQEQkppQARERiSglARCSm/j+0Q1yZdRXc7wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------------------------------\n"
     ]
    }
   ],
   "source": [
    "for test_pair in test_pairs:\n",
    "    data_X = all_data[all_data[\"algorithm\"] == test_pair[0]]\n",
    "    data_Y = all_data[all_data[\"algorithm\"] == test_pair[1]]\n",
    "\n",
    "    matched_df = pd.merge(data_X, data_Y,  how='inner', left_on=['depth','instance'], right_on = ['depth','instance'])\n",
    "    for value in test_value:\n",
    "        print(\"Test for {} against {} using {}\".format(test_pair[0], test_pair[1], value))\n",
    "        values_x = matched_df[value+\"_x\"]\n",
    "        values_y = matched_df[value+\"_y\"]\n",
    "        plot_hist(values_x - values_y, \"difference\")\n",
    "    print(\"---------------------------------\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Wilcoxon Test for two paired samples"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "See https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.wilcoxon.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test for 0_comp against alpha_beta using cycles\n",
      "Test Result:\n",
      "p-value = 0.0000\n",
      "H0 can be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for 0_comp against alpha_beta using time\n",
      "Test Result:\n",
      "p-value = 0.0000\n",
      "H0 can be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for alpha_beta against transposition_table using cycles\n",
      "Test Result:\n",
      "p-value = 0.9861\n",
      "H0 cannot be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for alpha_beta against transposition_table using time\n",
      "Test Result:\n",
      "p-value = 0.9997\n",
      "H0 cannot be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for transposition_table against transposition_table_opt_all using cycles\n",
      "Test Result:\n",
      "p-value = 0.0000\n",
      "H0 can be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for transposition_table against transposition_table_opt_all using time\n",
      "Test Result:\n",
      "p-value = 0.6585\n",
      "H0 cannot be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for transposition_table against transposition_table_opt_1 using cycles\n",
      "Test Result:\n",
      "p-value = 0.0000\n",
      "H0 can be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for transposition_table against transposition_table_opt_1 using time\n",
      "Test Result:\n",
      "p-value = 0.0000\n",
      "H0 can be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for transposition_table against transposition_table_opt_2 using cycles\n",
      "Test Result:\n",
      "p-value = 0.8677\n",
      "H0 cannot be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for transposition_table against transposition_table_opt_2 using time\n",
      "Test Result:\n",
      "p-value = 0.0114\n",
      "H0 can be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for transposition_table against transposition_table_opt_3 using cycles\n",
      "Test Result:\n",
      "p-value = 0.0000\n",
      "H0 can be rejected on a level of significance of 0.05.\n",
      "\n",
      "Test for transposition_table against transposition_table_opt_3 using time\n",
      "Test Result:\n",
      "p-value = 0.6700\n",
      "H0 cannot be rejected on a level of significance of 0.05.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "for test_pair in test_pairs:\n",
    "    data_X = all_data[all_data[\"algorithm\"] == test_pair[0]]\n",
    "    data_Y = all_data[all_data[\"algorithm\"] == test_pair[1]]\n",
    "\n",
    "    matched_df = pd.merge(data_X, data_Y,  how='inner', left_on=['depth','instance'], right_on = ['depth','instance'])\n",
    "    for value in test_value:\n",
    "        print(\"Test for {} against {} using {}\".format(test_pair[0], test_pair[1], value))\n",
    "        values_x = matched_df[value+\"_x\"]\n",
    "        values_y = matched_df[value+\"_y\"]\n",
    "        # Apply the statistical test\n",
    "        res = scipy.stats.wilcoxon(values_x, values_y, alternative = alternative)\n",
    "\n",
    "        # Print results\n",
    "        print_decision(res.pvalue, alpha)\n",
    "        print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
