{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Estimating participants' disease stages\n", "\n", ">Next, I'd get it working with less and less information assumed to be known. You could either start inferring the participant's stage of disease or the order for biomarkers next. I'd probably do the participant's state of disease.\n", "\n", ">For the stage of disease for a participant, I'd do probably derive a gibbs sampling step by calculating each stage's relative likelihood based on the probabilities of the biomarker values ASSUMING they are at that stage. Then you normalize and sample from that discrete distribution. \n", "\n", "## Known $\\theta$ and $\\phi$\n", "\n", "First, let us assume that we know $\\theta$ and $\\phi$. We also know at which disease stage a biomarker is affected (i.e., $S_n$). Basically, in the `data` below, we do not have these two columns: `k_j` and `affected_or_not`. \n", "\n", "For each participant, I will iterate through all possible stages. For each stage, I will calculate the likelihood of seeing the observed sequence of biomarker values using the following formula:\n", "\n", "$$p(X_{j} | S , z_j = 1, k_j) = \\prod_{i=1}^{k_j}{p(X_{S(i)j} \\mid \\theta_n )} \\prod_{i=k_j+1}^N{p(X_{S(i)j} \\mid \\phi_n)}$$\n" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "import pandas as pd \n", "import numpy as np \n", "import re \n", "import altair as alt \n", "import matplotlib.pyplot as plt \n", "from scipy.stats import mode\n", "\n", "num_iterations = 30" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementk_jS_naffected_or_notDiseased
00MMSE27.186643105affectedTrue
11MMSE25.06517945not_affectedTrue
22MMSE28.00511495affectedTrue
33MMSE28.87843655affectedTrue
44MMSE23.09508625not_affectedTrue
\n", "
" ], "text/plain": [ " participant biomarker measurement k_j S_n affected_or_not Diseased\n", "0 0 MMSE 27.186643 10 5 affected True\n", "1 1 MMSE 25.065179 4 5 not_affected True\n", "2 2 MMSE 28.005114 9 5 affected True\n", "3 3 MMSE 28.878436 5 5 affected True\n", "4 4 MMSE 23.095086 2 5 not_affected True" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = pd.read_csv('data/participant_data.csv')\n", "# data.Biomarker = [re.sub(\"Biomarker \", \"\", text) for text in data.Biomarker.tolist()]\n", "data['Diseased'] = data.apply(lambda row: row.k_j > 0, axis = 1)\n", "data.head()\n", "# but remember that we do not know k_j which is what we are trying to estimate. " ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "# participant id: stage\n", "actual_participant_stage_dic = dict(zip(data.participant, data.k_j))\n", "\n", "participants = data.participant.unique()\n", "\n", "# 11 stages in total, [0, 10].\n", "num_stages = len(data.k_j.unique())\n", "\n", "# biomarkers\n", "biomarkers = np.array(data.biomarker.unique())\n", "\n", "## These are the healthy participants (Participant ID)\n", "non_diseased_participants = list(set(data.loc[data.Diseased == False].participant))" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[68, 6, 39, 10, 11, 13, 78, 48, 82, 85, 23]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "non_diseased_participants" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that in `participant_data.csv`, $S_n \\geq 1$ because $S_n$ means the disease stage associated with a specific biomarker. $k_j \\geq 0$, indicating that participants may not be in any of the 10 disease stages (i.e., when $k_j = 0$). " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 5, 6, 3, 4, 1, 7, 8, 2, 9, 10])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.S_n.unique()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10, 4, 9, 5, 2, 0, 1, 8, 7, 3, 6])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.k_j.unique()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
biomarkertheta_meantheta_stdphi_meanphi_std
0MMSE28.00.66666722.02.666667
1ADAS-6.01.333333-20.04.000000
2AB250.050.000000150.016.666667
3P-Tau-25.016.666667-50.033.333333
4HIP-FCI5.01.666667-5.06.666667
5HIP-GMI0.40.2333330.30.333333
6AVLT-Sum40.015.00000020.06.666667
7PCC-FCI12.04.0000005.03.333333
8FUS-GMI0.60.0666670.50.066667
9FUS-FCI-10.03.333333-20.06.000000
\n", "
" ], "text/plain": [ " biomarker theta_mean theta_std phi_mean phi_std\n", "0 MMSE 28.0 0.666667 22.0 2.666667\n", "1 ADAS -6.0 1.333333 -20.0 4.000000\n", "2 AB 250.0 50.000000 150.0 16.666667\n", "3 P-Tau -25.0 16.666667 -50.0 33.333333\n", "4 HIP-FCI 5.0 1.666667 -5.0 6.666667\n", "5 HIP-GMI 0.4 0.233333 0.3 0.333333\n", "6 AVLT-Sum 40.0 15.000000 20.0 6.666667\n", "7 PCC-FCI 12.0 4.000000 5.0 3.333333\n", "8 FUS-GMI 0.6 0.066667 0.5 0.066667\n", "9 FUS-FCI -10.0 3.333333 -20.0 6.000000" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "theta_phi = pd.read_csv('data/means_stds.csv')\n", "theta_phi" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
biomarkertheta_meantheta_stdphi_meanphi_std
0MMSE27.5272641.09571821.1716712.164059
1ADAS-6.4015521.823123-20.1659053.290392
2AB272.12932137.557221166.58796726.071097
3P-Tau-21.46345313.376673-69.56540321.663291
4HIP-FCI4.8637821.738809-4.9575203.289401
5HIP-GMI0.4744280.1760130.0173950.149670
6AVLT-Sum48.77394710.15480520.1786895.985663
7PCC-FCI12.2991842.6865963.8190882.542993
8FUS-GMI0.4558130.0466200.5687450.051573
9FUS-FCI-25.9139564.748164-15.5512283.810430
\n", "
" ], "text/plain": [ " biomarker theta_mean theta_std phi_mean phi_std\n", "0 MMSE 27.527264 1.095718 21.171671 2.164059\n", "1 ADAS -6.401552 1.823123 -20.165905 3.290392\n", "2 AB 272.129321 37.557221 166.587967 26.071097\n", "3 P-Tau -21.463453 13.376673 -69.565403 21.663291\n", "4 HIP-FCI 4.863782 1.738809 -4.957520 3.289401\n", "5 HIP-GMI 0.474428 0.176013 0.017395 0.149670\n", "6 AVLT-Sum 48.773947 10.154805 20.178689 5.985663\n", "7 PCC-FCI 12.299184 2.686596 3.819088 2.542993\n", "8 FUS-GMI 0.455813 0.046620 0.568745 0.051573\n", "9 FUS-FCI -25.913956 4.748164 -15.551228 3.810430" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "theta_phi_kmeans = pd.read_csv(\"data/estimate_means_stds_kmeans.csv\")\n", "theta_phi_kmeans" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def compute_single_measurement_likelihood(theta_phi, biomarker, affected, measurement):\n", " '''Computes the likelihood of the measurement value of a single biomarker\n", " We know the normal distribution defined by either theta or phi\n", " and we know the measurement. This will give us the probability\n", " of this given measurement value. \n", "\n", " input:\n", " - theta_phi: the dataframe containing theta and phi values for each biomarker\n", " - biomarker: a string of biomarker name\n", " - affected: a boolean \n", " - measurement: the observed value for a biomarker in a specific participant\n", "\n", " output: a scalar\n", " '''\n", " biomarker_params = theta_phi[theta_phi.biomarker == biomarker].reset_index()\n", " mu = biomarker_params['theta_mean'][0] if affected else biomarker_params['phi_mean'][0]\n", " std = biomarker_params['theta_std'][0] if affected else biomarker_params['phi_std'][0]\n", " likelihood = np.exp(-(measurement - mu)**2/(2*std**2))/np.sqrt(2*np.pi*std**2)\n", " return likelihood" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def compute_likelihood(pdata, k_j, theta_phi):\n", " '''This implementes the formula of https://ebm-book2.vercel.app/distributions.html#known-k-j\n", " Inputs:\n", " - pdata: data that belongs to a specific participant\n", " - k_j: the disease stage the participant is at \n", " - theta_phi: a dataframe containing theta and phi means & vars for all biomarkers\n", " Outputs:\n", " - the likelihood of seeing this sequence of measurements if the participant is at this k_j\n", " '''\n", " likelihood = 1\n", " for i, row in pdata.iterrows():\n", " biomarker = row['biomarker']\n", " measurement = row['measurement']\n", " affected = k_j >= row['S_n']\n", " likelihood *= compute_single_measurement_likelihood(\n", " theta_phi, biomarker, affected, measurement)\n", " return likelihood" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## For all participants" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def update_estimated_participant_stage_dic(num_stages, p, p_data, theta_phi, estimated_participant_stage_dic):\n", " # initiaze stage_likelihood\n", " stage_likelihood = np.zeros(num_stages)\n", " for k in range(num_stages):\n", " # assume participant is in this stage; compute the likelihood of seeing \n", " # this sequence of observed biomarker measurement\n", " # [0, 10] Note that k CAN be 0\n", " likelihood = compute_likelihood(p_data, k, theta_phi=theta_phi)\n", " stage_likelihood[k] = likelihood\n", " # estimated_participant_stage_dic[p] = np.argmax(stage_likelihood)\n", " likelihood_sum = np.sum(stage_likelihood)\n", " normalized_stage_likelihood = [l/likelihood_sum for l in stage_likelihood]\n", " sampled_stage = np.random.choice(np.arange(num_stages), p = normalized_stage_likelihood)\n", " estimated_participant_stage_dic[p] = sampled_stage " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we run the calculation for only once:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10, 4, 8, 5, 4, 8, 0, 3, 5, 0, 0, 0, 8, 0, 7, 1, 4,\n", " 6, 1, 9, 10, 1, 10, 0, 9, 6, 1, 2, 6, 6, 5, 1, 4, 8,\n", " 1, 2, 5, 1, 2, 0, 8, 10, 6, 2, 4, 7, 5, 2, 0, 5, 9,\n", " 1, 6, 5, 4, 8, 9, 7, 3, 8, 5, 3, 10, 4, 6, 1, 3, 7,\n", " 0, 3, 8, 4, 2, 3, 1, 3, 3, 1, 0, 0, 8, 2, 0, 10, 1,\n", " 0, 8, 6, 10, 4, 10, 7, 4, 4, 7, 3, 1, 8, 4, 3])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "estimated_participant_stage_dic = {}\n", "for p in participants:\n", " p_data = data[data.participant == p].reset_index(drop=True)\n", " update_estimated_participant_stage_dic(\n", " num_stages, p, p_data, theta_phi, estimated_participant_stage_dic)\n", "estimated_stages_run_once = np.array(list(estimated_participant_stage_dic.values()))\n", "estimated_stages_run_once" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that if I run the algorithm once, the `sampled_stage` might not be the one with highest probability. So I did with multiple iterations. I obtained multiple `estimated_participant_stage_dic`. Then I used the mode for each participant. However, still, the results are not optimal. I do not understand why. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "num_iterations = 5\n", "estimated_participant_stage_dic_list = []\n", "\n", "for _ in range(num_iterations):\n", " estimated_participant_stage_dic = {}\n", " for p in participants:\n", " p_data = data[data.participant == p].reset_index(drop=True)\n", " update_estimated_participant_stage_dic(\n", " num_stages, p, p_data, theta_phi, estimated_participant_stage_dic)\n", " estimated_participant_stage_dic_list.append(estimated_participant_stage_dic)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(estimated_participant_stage_dic_list)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "lists_of_values_array = []\n", "for dic in estimated_participant_stage_dic_list:\n", " values_array = np.array(list(dic.values()))\n", " lists_of_values_array.append(values_array)\n", "# np.array(lists_of_values_array)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10, 4, 8, 5, 2, 10, 0, 1, 5, 1, 0, 0, 10, 0, 6, 1, 3,\n", " 6, 1, 10, 10, 1, 10, 0, 8, 7, 1, 1, 6, 8, 4, 1, 4, 8,\n", " 2, 2, 5, 2, 2, 0, 9, 9, 6, 2, 3, 7, 5, 1, 0, 5, 9,\n", " 1, 7, 5, 3, 8, 8, 6, 4, 6, 5, 3, 10, 3, 6, 2, 3, 7,\n", " 0, 4, 8, 4, 1, 4, 1, 4, 3, 1, 0, 1, 8, 2, 0, 10, 2,\n", " 0, 8, 6, 10, 1, 9, 6, 4, 4, 6, 3, 1, 8, 4, 4])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# mode in each column, axis = 0\n", "estimated_stages_run_multiple_times = mode(np.array(lists_of_values_array), axis=0, keepdims=False).mode\n", "estimated_stages_run_multiple_times" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "actual_stages = np.array(list(actual_participant_stage_dic.values()))\n", "differences_run_once = estimated_stages_run_once - actual_stages\n", "differences_run_multiple_times = estimated_stages_run_multiple_times - actual_stages" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# differences" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def scatter_plot_of_stage_differences(stage_differences):\n", " '''Scatter Plot of the Difference at each index\n", " Input:\n", " - stage_differences: estimated_stages - actual stages. Result should be a 1-dim np array\n", " '''\n", " plt.figure(figsize=(10, 6))\n", " plt.scatter(range(100), stage_differences, alpha=0.6)\n", " plt.axhline(y=0, color='red', linestyle='--')\n", " plt.title(\"Scatter Plot of Stage Difference for Each Participant\")\n", " plt.xlabel(\"Participant\")\n", " plt.ylabel(\"Difference (Estimated Stage - True Stage)\")\n", " plt.grid(True)\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's compare whether running multiple times is worth it:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0wAAAIhCAYAAAB9gDqHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB9z0lEQVR4nO3dd3gU1f7H8c9udrPpSwmhBQkQpIMgFlAp0rEhWBC8FMWr/iyIvdIsINj1WlG42ECv6FWUJmBFBGlK0SslYOihJCSkbLLz+yNkZUkm7IZsdhPer+fxkZ05c+Y7c86c3W9m9qzFMAxDAAAAAIBirMEOAAAAAABCFQkTAAAAAJggYQIAAAAAEyRMAAAAAGCChAkAAAAATJAwAQAAAIAJEiYAAAAAMEHCBAAAAAAmSJgAAAAAwAQJExDifv75Z1155ZU644wz5HA4VLt2bXXq1En33HNPwPa5bNkyjR8/XocPHy627tVXX9WMGTMCtu+SdOvWTRaLxfNfZGSk2rVrpxdeeEFut9tTbsSIEUpKSirTPgJ1XHl5ebrllltUt25dhYWF6ayzzjItaxiGZs2apYsuukgJCQmKiIhQYmKi+vTpo2nTpnnKHT16VOPHj9c333xT7vGWt5SUFK+2s9vtqlmzps455xyNGTNGGzZsKLbNN998I4vFUuz4Xn75ZSUnJys8PFwWi8XTPx999FGdccYZstlsqlatWuAPKsRV5PkYP368V/ue+F9KSkpA9tutWze1bt26zNsnJSV5xRkTE6PzzjtPM2fOLMcoSx9Lu3Xrpm7duvldZ1JSkkaMGHHKsZWXYLwnABXNFuwAAJj78ssvdfnll6tbt26aMmWK6tatq927d+uXX37RrFmz9OyzzwZkv8uWLdOECRM0YsSIYh+4Xn31VcXHx1f4G3bjxo31/vvvS5L27dun119/XWPGjNHu3bv19NNPn3L9gTqu1157TW+88YZefvllnX322YqJiTEt+9BDD+npp5/WTTfdpPvuu0+xsbHavn27lixZov/+978aNWqUpMKEacKECZJUpg9cwXDHHXdoyJAhcrvdOnz4sNasWaN33nlHL7/8siZNmqT77rvPU7ZDhw766aef1LJlS8+ytWvX6s4779SoUaM0fPhw2Ww2xcbG6r///a+efPJJPfLII+rXr58cDkcwDi9kBOt8zJ8/X06ns9jyunXrVsj+y+KCCy7QM888I0lKTU3VM888o+HDhysrK0u33npruezjZGNpWXz66aeKi4srh+jKR7DeE4CKRMIEhLApU6aoUaNGWrBggWy2vy/XwYMHa8qUKUGMrHwZhqGcnBxFRkaalomMjNT555/ved2vXz81b95cr7zyip544gnZ7faKCNVv69evV2RkpG6//fZSy2VnZ+uFF17QsGHD9Oabb3qtGzFihNedtMrojDPO8Gq//v376+6779bAgQN1//33q3Xr1urXr58kKS4uzqusJM+dqJtuuknnnnuuZ/n69eslSXfeeacSEhLKJdajR48qKiqqXOqqaME6H2effbbi4+PLZX8VpVq1al79rGfPnmrYsKGee+65U06YsrOzFRERUWqZ4/8g4I/27duXaTsAZccjeUAIO3DggOLj472SpSJWa/HL94MPPlCnTp0UExOjmJgYnXXWWXr77bc96xctWqQrrrhCiYmJioiIUHJysm6++WalpaV5yowfP97z1/5GjRp5Hln55ptvlJSUpA0bNujbb7/1LD/+EbiMjAzde++9atSokcLDw1W/fn3dddddysrK8orTYrHo9ttv1+uvv64WLVrI4XDo3//+t1/nxm636+yzz9bRo0e1f/9+03I5OTl66KGHvGK67bbbvB6ROdlxlbVei8WiadOmKTs721Ov2aMrWVlZys3NNf2LfFF7p6SkqFatWpKkCRMmeOot+uvu5s2bNXLkSDVt2lRRUVGqX7++LrvsMv3222/F6tywYYN69+6tqKgo1apVS7fddpu+/PLLEh+H+/rrr9WjRw/FxcUpKipKF1xwgRYvXlzqOTqZyMhIvf3227Lb7Zo6dapn+YmP5HXr1k3XX3+9JOm8887zHG9SUpIeffRRSVLt2rVlsVg0fvx4Tz2zZ89Wp06dFB0drZiYGPXp00dr1qzximHEiBGKiYnRb7/9pt69eys2NlY9evSQVPg45RNPPKHmzZvL4XCoVq1aGjlyZLH+lpSUpEsvvVTz589Xhw4dFBkZqebNm+udd94pdsw7d+7UP//5TzVo0EDh4eGqV6+errrqKu3du9dTxtfr6ESlnQ+3260pU6Z4jiUhIUHDhg1TamqqVx1Fj7p999136ty5s6KionTDDTeUul9fTZgwQeedd55q1KihuLg4dejQQW+//bYMwyhW9mRjWZGVK1fqoosuUlRUlBo3bqzJkyeX+Y8L1apVU7NmzbR9+3ZJ0i+//KLBgwcrKSlJkZGRSkpK0nXXXedZX2TGjBmyWCxauHChbrjhBtWqVUtRUVF66KGHTMdSqeRH8nJzczVx4kS1aNFCERERqlmzprp3765ly5Z5ypz4SF7R9fLee+/p7rvvVp06dRQZGamuXbsW6+/+HtPSpUt16623Kj4+XjVr1tTAgQO1a9cur1j8HTuByog7TEAI69Spk6ZNm6Y777xTQ4cOVYcOHUzvpIwdO1aPP/64Bg4cqHvuuUdOp1Pr16/3eiPcsmWLOnXqpFGjRsnpdColJUXPPfecLrzwQv3222+y2+0aNWqUDh48qJdffllz5szxfIBv2bKlPv30U1111VVyOp2ex0mKHvk5evSounbtqtTUVD388MNq27atNmzYoLFjx+q3337T119/LYvF4onls88+0/fff6+xY8eqTp06Zfpr+JYtW2Sz2VS9evUS1xuGoQEDBmjx4sV66KGHdNFFF+nXX3/VuHHj9NNPP+mnn36Sw+Eo9bhOpd6ffvpJjz/+uJYuXaolS5ZIkpo0aVJinfHx8UpOTtarr76qhIQE9e/fX82aNfM6Z1LhI07z589X3759deONN3oe0ytKonbt2qWaNWtq8uTJqlWrlg4ePKh///vfOu+887RmzRo1a9ZMkrR792517dpV0dHReu2115SQkKAPP/ywxDth7733noYNG6YrrrhC//73v2W32/XGG2+oT58+WrBggSfBKIt69erp7LPP1rJly5Sfn1/iHwdeffVVffjhh3riiSc0ffp0NW/eXLVq1dLo0aP1r3/9S2+//bbnkbDExERJ0lNPPaVHH31UI0eO1KOPPqq8vDxNnTpVF110kVasWOH11/28vDxdfvnluvnmm/Xggw8qPz9fbrdbV1xxhb7//nvdf//96ty5s7Zv365x48apW7du+uWXX7zuiK5bt0733HOPHnzwQdWuXVvTpk3TjTfeqOTkZHXp0kVSYbJ0zjnnyOVyea6RAwcOaMGCBTp06JBq167t93V0vE8//dT0fNx666168803dfvtt+vSSy9VSkqKHnvsMX3zzTdavXq1192h3bt36/rrr9f999+vp556qsQ/zpyooKBA+fn5XsssFovCwsI8r1NSUnTzzTfrjDPOkCQtX75cd9xxh3bu3KmxY8d6yvkylknSnj17NHToUN1zzz0aN26cPv30Uz300EOqV6+ehg0bdtKYT+RyubR9+3bPtZSSkqJmzZpp8ODBqlGjhnbv3q3XXntN55xzjjZu3FjsjtoNN9ygSy65RO+++66ysrLUsWNHHT16tMSxtCT5+fnq16+fvv/+e9111126+OKLlZ+fr+XLl2vHjh3q3LlzqfE//PDD6tChg6ZNm6b09HSNHz9e3bp105o1a9S4ceMyHdOoUaN0ySWX6IMPPtBff/2l++67T9dff71nPPN37AQqLQNAyEpLSzMuvPBCQ5IhybDb7Ubnzp2NSZMmGUeOHPGU27p1qxEWFmYMHTrU57rdbrfhcrmM7du3G5KM//73v551U6dONSQZ27ZtK7Zdq1atjK5duxZbPmnSJMNqtRorV670Wv6f//zHkGR89dVXnmWSDKfTaRw8eNCnWLt27Wq0atXKcLlchsvlMnbt2mU8+OCDhiTj6quv9pQbPny40bBhQ8/r+fPnG5KMKVOmeNU3e/ZsQ5Lx5ptvnvS4SuJPvcOHDzeio6N9qnfFihXGGWec4Wnv2NhY49JLLzVmzpxpuN1uT7n9+/cbkoxx48adtM78/HwjLy/PaNq0qTFmzBjP8vvuu8+wWCzGhg0bvMr36dPHkGQsXbrUMAzDyMrKMmrUqGFcdtllXuUKCgqMdu3aGeeee26p+9+2bZshyZg6dappmWuvvdaQZOzdu9cwDMNYunSpVwyGYRjTp083JBXrX+PGjTMkGfv37/cs27Fjh2Gz2Yw77rjDq+yRI0eMOnXqGNdcc41n2fDhww1JxjvvvONV9sMPPzQkGZ988onX8pUrVxqSjFdffdWzrGHDhkZERISxfft2z7Ls7GyjRo0axs033+xZdsMNNxh2u93YuHGj6bnw5zoqSUnnY9OmTYYk4//+7/+8yv7888+GJOPhhx/2LOvatashyVi8eHGp+zlxfyX916RJE9PtCgoKDJfLZUycONGoWbOmp3/7OpYVxfnzzz97LW/ZsqXRp0+fk8bdsGFDo3///p4xZdu2bZ6+cN9995W4TX5+vpGZmWlER0cbL774omd5Ud8cNmxYsW1KG0u7du3qNebMnDnTkGS89dZbJ419+PDhntdF10uHDh28xomUlBTDbrcbo0aNMq3rZMd0Yp+ZMmWKIcnYvXu3Z5k/YydQWfFIHhDCatasqe+//14rV67U5MmTdcUVV+h///ufHnroIbVp08bzKN2iRYtUUFCg2267rdT69u3bp1tuuUUNGjSQzWaT3W5Xw4YNJUmbNm06pVjnzp2r1q1b66yzzlJ+fr7nvz59+pT4iNfFF19semeoJBs2bJDdbpfdble9evX07LPPaujQoXrrrbdMtyn6K+iJX0a++uqrFR0dXeZHygJV7znnnKPNmzdr/vz5evjhh9WpUyctXrxYw4YN0+WXX17io0snys/P11NPPaWWLVsqPDxcNptN4eHh+vPPP73a+Ntvv1Xr1q2L/bX7uuuu83q9bNkyHTx4UMOHD/dqV7fbrb59+2rlypUnfVTsZHw5Ln8sWLBA+fn5GjZsmFfMERER6tq1a4mzCw4aNMjr9dy5c1WtWjVddtllXnWcddZZqlOnTrE6zjrrLM+dE0mKiIjQmWee6XVXZN68eerevbtatGhhGru/15Evli5dKql4fz333HPVokWLYv21evXquvjii/3ax9dff62VK1d6/ffZZ595lVmyZIl69uwpp9OpsLAw2e12jR07VgcOHNC+ffsk+T6WSVKdOnW8vs8mSW3bti12J8rMV1995RlTGjVqpI8++kh33HGHnnjiCUlSZmamHnjgASUnJ8tms8lmsykmJkZZWVkljpcn9iF/zZs3TxEREWV+BHLIkCFedx8bNmyozp07e9pf8v+YLr/8cq/Xbdu2lSSfzzFQVfBIHlAJdOzYUR07dpRU+NjIAw88oOeff15TpkzRlClTPN+pKHr8piRut1u9e/fWrl279Nhjj6lNmzaKjo6W2+3W+eefr+zs7FOKce/evdq8ebPpI4PHf09K8n/2rCZNmmjWrFmyWCyKiIhQo0aNTvpF9AMHDshms3kesSlisVhUp04dHThwwK8YAl2vVPjdrD59+qhPnz6efV111VWaO3eu5s2bp/79+5e6/d13361//etfeuCBB9S1a1dVr15dVqtVo0aN8mrjAwcOqFGjRsW2r127ttfrou/WXHXVVab7PHjwoKKjo30+xhNt375dDodDNWrUKHMdxyuK+Zxzzilx/YmPmEVFRRWbdWzv3r06fPiwwsPDS6zjxP5cs2bNYmUcDofXOd+/f3+p12jRfv25jnxR1B9Luubq1atX7MNvWWa2a9euXamTPqxYsUK9e/dWt27d9NZbbykxMVHh4eH67LPP9OSTT3rOky9jWRFfznlpLrzwQj3//POyWCyKiopSkyZNvNp7yJAhWrx4sR577DGdc845iouLk8ViUf/+/Uvcx6nOCLh//37Vq1fPp0cgS1KnTp0Sl61bt87z2t9jOvEcFz1ud6rvF0BlQ8IEVDJ2u13jxo3T888/75kRq+iDe2pqqho0aFDiduvXr9e6des0Y8YMDR8+3LN88+bN5RJXfHy8IiMjS/yie9H645l9D8NMRESEJ2n0Vc2aNZWfn6/9+/d7JTeGYWjPnj2mH6iDVa/Zvu666y598803Wr9+/UkTpqLvGz311FNey9PS0rymNa5Zs6bXRANF9uzZ4/W6qN1efvnlYjPXFTkxyfLHzp07tWrVKnXt2rXE7y+VRVHM//nPfzx3UEtTUl8s+pL7/PnzS9wmNjbW77hq1apVbJKFkvbrz3Xki6IPvbt37y6WiOzateuUr01fzJo1S3a7XXPnzvWaPe7Eu1C+jGXlxel0mo4p6enpmjt3rsaNG6cHH3zQszw3N1cHDx4scZtTPW+1atXSDz/8ILfbXaak6cRrt2hZUfuX5ZgAFOKRPCCE7d69u8TlRY9O1KtXT5LUu3dvhYWF6bXXXjOtq+jN/MQv5L7xxhvFypb2V0Szv+Beeuml2rJli2rWrOm5I3b8f8GYOaloMoL33nvPa/knn3yirKwsr8kK/PnLtD/1+srlcpnemTqxvUtrH4vFUqyNv/zyS+3cudNrWdeuXbV+/Xpt3LjRa/msWbO8Xl9wwQWqVq2aNm7cWGK7duzY0fQuzMlkZ2dr1KhRys/P1/3331+mOkrSp08f2Ww2bdmyxTTmk7n00kt14MABFRQUlLh90eQZ/ujXr5+WLl2qP/74o9T9lvd1VPR43Yn9deXKldq0adMpTdrhK4vFIpvN5jUJRHZ2tt59912vcr6MZRXBYrHIMIxi19K0adNUUFDgcz3+3JHp16+fcnJyyvwjsB9++KHX463bt2/XsmXLPDPxldcxncifsROorLjDBISwPn36KDExUZdddpmaN28ut9uttWvX6tlnn1VMTIxGjx4tqXBq14cffliPP/64srOzdd1118npdGrjxo1KS0vThAkT1Lx5czVp0kQPPvigDMNQjRo19MUXX2jRokXF9tumTRtJ0osvvqjhw4fLbrerWbNmio2NVZs2bTRr1izNnj1bjRs3VkREhNq0aaO77rpLn3zyibp06aIxY8aobdu2crvd2rFjhxYuXKh77rlH5513XoWev169eqlPnz564IEHlJGRoQsuuMAzm1379u31j3/8w+uYSzquU63XV+np6UpKStLVV1+tnj17qkGDBsrMzNQ333yjF198US1atNDAgQMlFd7daNiwof773/+qR48eqlGjhuLj4z3TW8+YMUPNmzdX27ZttWrVKk2dOrXYnYW77rpL77zzjvr166eJEyeqdu3a+uCDD/T7779L+vuxtZiYGL388ssaPny4Dh48qKuuukoJCQnav3+/1q1bp/379/v04XbHjh1avny53G630tPTPT9cu337dj377LPq3bu33+fMTFJSkiZOnKhHHnlEW7duVd++fVW9enXt3btXK1asUHR0tOeHf80MHjxY77//vvr376/Ro0fr3HPPld1uV2pqqpYuXaorrrhCV155pV9xTZw4UfPmzVOXLl308MMPq02bNjp8+LDmz5+vu+++W82bNw/IddSsWTP985//1Msvvyyr1ap+/fp5Zslr0KCBxowZ41d9JVm1alWJP1zbsmVLxcXF6ZJLLtFzzz2nIUOG6J///KcOHDigZ555ptiHd1/GsooQFxenLl26aOrUqZ5r69tvv9Xbb79d7AdoS1PaWHqi6667TtOnT9ctt9yiP/74Q927d5fb7dbPP/+sFi1aaPDgwaXua9++fbryyit10003KT09XePGjVNERIQeeuihcj2mko7R17ETqLSCN98EgJOZPXu2MWTIEKNp06ZGTEyMYbfbjTPOOMP4xz/+UeJMWzNnzjTOOeccIyIiwoiJiTHat29vTJ8+3bN+48aNRq9evYzY2FijevXqxtVXX23s2LGjxBnXHnroIaNevXqG1Wr1mrEsJSXF6N27txEbG2tI8pqVLjMz03j00UeNZs2aGeHh4YbT6TTatGljjBkzxtizZ4+nnCTjtttu8/k8FM2SdzInzpJnGIWzlT3wwANGw4YNDbvdbtStW9e49dZbjUOHDnmVK+24SuJrvb7Okpebm2s888wzRr9+/YwzzjjDcDgcRkREhNGiRQvj/vvvNw4cOOBV/uuvvzbat29vOBwOQ5Jn1qxDhw4ZN954o5GQkGBERUUZF154ofH9998Xm5HLMAxj/fr1Rs+ePY2IiAijRo0axo033mj8+9//NiQZ69at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AAAAQGXk9+8w9e3bV1u3blV0dLS6d++ubt26KSYmRlu2bNE555yj3bt3q2fPnvrvf/8biHgBAAAAoML4fYcpLS1N99xzjx577DGv5U888YS2b9+uhQsXaty4cXr88cd1xRVXlFugAAAAAFDR/L7D9NFHH+m6664rtnzw4MH66KOPJEnXXXed/vjjj1OPDgAAAACCyO+EKSIiQsuWLSu2fNmyZYqIiJAkud1uORyOU48OAAAAAILI70fy7rjjDt1yyy1atWqVzjnnHFksFq1YsULTpk3Tww8/LElasGCB2rdvX+7BAgAAAEBF8jthevTRR9WoUSO98sorevfddyVJzZo101tvvaUhQ4ZIkm655Rbdeuut5RspAAAAAFSwMv0O09ChQzV06FDT9ZGRkWUOCAAAAABChd/fYQIAAACA04Xfd5gKCgr0/PPP66OPPtKOHTuUl5fntf7gwYPlFhwAAAAABJPfd5gmTJig5557Ttdcc43S09N19913a+DAgbJarRo/fnwAQgQAAACA4PA7YXr//ff11ltv6d5775XNZtN1112nadOmaezYsVq+fHkgYgQAAACAoPA7YdqzZ4/atGkjSYqJiVF6erok6dJLL9WXX35ZvtEBAAAAQBD5nTAlJiZq9+7dkqTk5GQtXLhQkrRy5Up+rBYAAABAleJ3wnTllVdq8eLFkqTRo0frscceU9OmTTVs2DDdcMMN5R4gAAAAAASL37PkTZ482fPvq666Sg0aNNCPP/6o5ORkXX755eUaHAAAAAAEk98J03fffafOnTvLZivc9LzzztN5552n/Px8fffdd+rSpUu5BwkAAAAAweD3I3ndu3cv8beW0tPT1b1793IJCgAAAABCgd8Jk2EYslgsxZYfOHBA0dHR5RIUAAAAAIQCnx/JGzhwoCTJYrFoxIgRXjPiFRQU6Ndff1Xnzp3LP0IAAAAACBKfEyan0ymp8A5TbGysIiMjPevCw8N1/vnn66abbir/CAEAAAAgSHxOmKZPny5JSkpK0r333svjdwAAAACqPL9nyRs3bpzX62+//VZZWVnq1KmTqlevXm6BAQAAAECw+ZwwTZ06VZmZmZowYYKkwkfz+vXrp4ULF0qSEhIStHjxYrVq1SowkQIAAABABfN5lrwPP/xQLVu29Lz+z3/+o++++07ff/+90tLS1LFjR08yBQAAAABV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5PuYU9Z1lem9KhCxBKreir42TuW9KhB9vKLH/2CMVZVlna/9P1SnFfc5YRo5cqReeuklxcbGnrxwAL366quaMmWKdu/erdatW+v5559Xly6lfZX5b6GQMEmF011u2Vs4EUTLc7v69SvYpdVZWX5ZvKzbncovS4fSL1afyrkp735zqvGEyjkNRqyhtM6X9WZvQqE05gSqH1emazwQ49ipHEdZxpxgXP9VpR8Hot6KbqtTea8KVDwVPR6HUjyhtM4XlT5hqgpCJWGSKr5DoGqg36Cs6DsoC/oNyoJ+g7IK1YTJt286AQAAAMBpiIQJAAAAAEyQMAEAAACAiVNKmD788ENllfaDrQAAAABQiZ1SwnTzzTdr79695RULAAAAAISUU0qYTqMJ9gAAAACchvgOEwAAAACYOKWEad68eapfv355xQIAAAAAIcV2KhtfeOGF5RUHAAAAAIQcHskDAAAAABMkTAAAAABggoQJAAAAAEycUsKUk5NTXnEAAAAAQMjxO2Fyu916/PHHVb9+fcXExGjr1q2SpMcee0xvv/12uQcIAAAAAMHid8L0xBNPaMaMGZoyZYrCw8M9y9u0aaNp06aVa3AAAAAAEEx+J0wzZ87Um2++qaFDhyosLMyzvG3btvr999/LNTgAAAAACCa/E6adO3cqOTm52HK32y2Xy1UuQQEAAABAKPA7YWrVqpW+//77Yss//vhjtW/fvlyCAgAAAIBQYPN3g3Hjxukf//iHdu7cKbfbrTlz5uiPP/7QzJkzNXfu3EDECAAAAABB4fcdpssuu0yzZ8/WV199JYvForFjx2rTpk364osv1KtXr0DECAAAAABB4fcdJknq06eP+vTpU96xAAAAAEBIOaUfrgUAAACAqszvO0zVq1eXxWIpttxisSgiIkLJyckaMWKERo4cWS4BAgAAAECw+J0wjR07Vk8++aT69eunc889V4ZhaOXKlZo/f75uu+02bdu2Tbfeeqvy8/N10003BSJmAAAAAKgQfidMP/zwg5544gndcsstXsvfeOMNLVy4UJ988onatm2rl156iYQJAAAAQKXm93eYFixYoJ49exZb3qNHDy1YsECS1L9/f23duvXUowMAAACAIPI7YapRo4a++OKLYsu/+OIL1ahRQ5KUlZWl2NjYU48OAAAAAILI70fyHnvsMd16661aunSpzj33XFks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L/X3llavXl1uwQEAAABAMPmUMF1xxRVyOByef/MDtQAAAABOBz4lTOPGjfP8e/z48YGKBQAAAABCit/fYWrcuLEOHDhQbPnhw4fVuHHjcgkKAAAAAEKB3wlTSkqKCgoKii3Pzc1VampquQQFAAAAAKHA52nFP//8c8+/FyxYIKfT6XldUFCgxYsXq1GjRuUbHQAAAAAEkc8J04ABAyRJFotFw4cP91pnt9uVlJSkZ599tlyDAwAAAIBg8jlhcrvdkqRGjRpp5cqVio+PD1hQAAAAABAKfE6Yimzbtq3YssOHD6tatWrlEQ8AAAAAhAy/J314+umnNXv2bM/rq6++WjVq1FD9+vW1bt26cg0OAAAAAILJ74TpjTfeUIMGDSRJixYt0tdff6358+erX79+uu+++8o9QAAAAAAIFr8fydu9e7cnYZo7d66uueYa9e7dW0lJSTrvvPPKPUAAAAAACBa/7zBVr15df/31lyRp/vz56tmzpyTJMIwSf58JAAAAACorv+8wDRw4UEOGDFHTpk114MAB9evXT5K0du1aJScnl3uAAAAAABAsfidMzz//vJKSkvTXX39pypQpiomJkVT4qN7//d//lXuAAAAAABAsfidMdrtd9957b7Hld911V3nEAwAAAAAhw+fvMP3f//2fMjMzPa/fffddr9eHDx9W//79yzc6AAAAAAginxOmN954Q0ePHvW8vu2227Rv3z7P69zcXC1YsKB8owMAAACAIPI5YTIMo9TXAAAAAFDV+D2tOAAAAACcLkiYAAAAAMCEX7PkjR07VlFRUZKkvLw8Pfnkk3I6nZLk9f0mAAAAAKgKfE6YunTpoj/++MPzunPnztq6dWuxMgAAAABQVficMH3zzTcBDAMAAAAAQg/fYQIAAAAAEz4lTJMnT1ZWVpZPFf7888/68ssvTykoVCy329DW/Zla99dhbd2fKbebKeOBqsTtNpSSVjiGp6RlcY2jUgql96pQigVA4Pn0SN7GjRvVsGFDXX311br88svVsWNH1apVS5KUn5+vjRs36ocfftB7772n3bt3a+bMmeUaZEpKih5//HEtWbJEe/bsUb169XT99dfrkUceUXh4eLnu63Szfme6Plmdqs37MpXrcsthtyo5IUaDOiSqdX1nsMMDcIqKrvGU/RkaUFN6at4mJdWK4xpHpRJK71WhFAuAiuFT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MzOzXIMDAAAAgGDy+w7T9u3b1bdvX+3YsUO5ubnq1auXYmNjNWXKFOXk5Oj1118PRJwAAAAAUOH8vsM0evRodezYUYcOHVJkZKRn+ZVXXqnFixeXa3AAAAAAEExlmiXvxx9/VHh4uNfyhg0baufOneUWGAAAAAAEm993mNxutwoKCootT01NVWxsbLkEBQAAAAChwO+EqVevXnrhhRc8ry0WizIzMzVu3Dj179+/PGMDAAAAgKDy+5G85557ThdffLFatmypnJwcDRkyRH/++afi4+P14YcfBiJGAAAAAAgKvxOm+vXra+3atZo1a5ZWrVolt9utG2+8UUOHDvWaBAIAAAAAKju/EiaXy6VmzZpp7ty5GjlypEaOHBmouAAAAAAg6Pz6DpPdbldubq4sFkug4gEAAACAkOH3pA933HGHnn76aeXn5wciHgAAAAAIGX5/h+nnn3/W4sWLtXDhQrVp00bR0dFe6+fMmVNuwQEAAABAMPmdMFWrVk2DBg0KRCwAAAAAEFL8TpimT58eiDgAAAAAIOT4/R0mScrPz9fXX3+tN954Q0eOHJEk7dq1S5mZmeUaHAAAAAAEk993mLZv366+fftqx44dys3NVa9evRQbG6spU6YoJydHr7/+eiDiBAAAAIAK5/cdptGjR6tjx446dOiQ1w/VXnnllVq8eHG5BgcAAAAAweT3HaYffvhBP/74o8LDw72WN2zYUDt37iy3wAAAAAAg2Py+w+R2u1VQUFBseWpqqmJjY8slKAAAAAAIBX4nTL169dILL7zgeW2xWJSZmalx48apf//+5RkbAAAAAASV34/kPf/88+revbtatmypnJwcDRkyRH/++afi4+P14YcfBiJGAAAAAAgKvxOmevXqae3atZo1a5ZWrVolt9utG2+8UUOHDvWaBAIAAAAAKjufEqYOHTpo8eLFql69uiZOnKh7771XI0eO1MiRIwMdHwAAAAAEjU/fYdq0aZOysrIkSRMmTOAHagEAAACcFny6w3TWWWdp5MiRuvDCC2UYhp555hnFxMSUWHbs2LHlGiAAAAAABItPCdOMGTM0btw4zZ07VxaLRfPmzZPNVnxTi8VCwgQAAACgyvApYWrWrJlmzZolSbJarVq8eLESEhICGhgAAAAABJtP32Hq0KGDDh06JEkaN26c6eN4AAAAAFCV+D3pw8SJE5n0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ut5inCylqkLcbrd27dql2NhYWSyWoMaSkZGhBg0a6K+//lJcXFxQY0HlQb9BWdF3UBb0G5QF/QZlVdF9xzAMHTlyRPXq1ZPVav5NpdPqDpPValViYmKww/ASFxfHYAK/0W9QVvQdlAX9BmVBv0FZVWTfKe3OUhEmfQAAAAAAEyRMAAAAAGCChClIHA6Hxo0bJ4fDEexQUInQb1BW9B2UBf0GZUG/QVmFat85rSZ9AAAAAAB/cIcJAAAAAEyQMAEAAACACRImAAAAADBBwgQAAAAAJkiYguDVV19Vo0aNFBERobPPPlvff/99sENCCJk0aZLOOeccxcbGKiEhQQMGDNAff/zhVcYwDI0fP1716tVTZGSkunXrpg0bNgQpYoSiSZMmyWKx6K677vIso9/AzM6dO3X99derZs2aioqK0llnnaVVq1Z51tN3cKL8/Hw9+uijatSokSIjI9W4cWNNnDhRbrfbU4Z+A0n67rvvdNlll6levXqyWCz67LPPvNb70k9yc3N1xx13KD4+XtHR0br88suVmppaYcdAwlTBZs+erbvuukuPPPKI1qxZo4suukj9+vXTjh07gh0aQsS3336r2267TcuXL9eiRYuUn5+v3r17Kysry1NmypQpeu655/TKK69o5cqVqlOnjnr16qUjR44EMXKEipUrV+rNN99U27ZtvZbTb1CSQ4cO6YILLpDdbte8efO0ceNGPfvss6pWrZqnDH0HJ3r66af1+uuv65VXXtGmTZs0ZcoUTZ06VS+//LKnDP0GkpSVlaV27drplVdeKXG9L/3krrvu0qeffqpZs2bphx9+UGZmpi699FIVFBRUzEEYqFDnnnuuccstt3gta968ufHggw8GKSKEun379hmSjG+//dYwDMNwu91GnTp1jMmTJ3vK5OTkGE6n03j99deDFSZCxJEjR4ymTZsaixYtMrp27WqMHj3aMAz6Dcw98MADxoUXXmi6nr6DklxyySXGDTfc4LVs4MCBxvXXX28YBv0GJZNkfPrpp57XvvSTw4cPG3a73Zg1a5anzM6dOw2r1WrMnz+/QuLmDlMFysvL06pVq9S7d2+v5b1799ayZcuCFBVCXXp6uiSpRo0akqRt27Zpz549Xv3I4XCoa9eu9CPotttu0yWXXKKePXt6LaffwMznn3+ujh076uqrr1ZCQoLat2+vt956y7OevoOSXHjhhVq8eLH+97//SZLWrVunH374Qf3795dEv4FvfOknq1atksvl8ipTr149tW7dusL6kq1C9gJJUlpamgoKClS7dm2v5bVr19aePXuCFBVCmWEYuvvuu3XhhReqdevWkuTpKyX1o+3bt1d4jAgds2bN0urVq7Vy5cpi6+g3MLN161a99tpruvvuu/Xwww9rxYoVuvPOO+VwODRs2DD6Dkr0wAMPKD09Xc2bN1dYWJgKCgr05JNP6rrrrpPEmAPf+NJP9uzZo/DwcFWvXr1YmYr6/EzCFAQWi8XrtWEYxZYBknT77bfr119/1Q8//FBsHf0Ix/vrr780evRoLVy4UBEREabl6Dc4kdvtVseOHfXUU09Jktq3b68NGzbotdde07Bhwzzl6Ds43uzZs/Xee+/pgw8+UKtWrbR27VrdddddqlevnoYPH+4pR7+BL8rSTyqyL/FIXgWKj49XWFhYsWx43759xTJr4I477tDnn3+upUuXKjEx0bO8Tp06kkQ/gpdVq1Zp3759Ovvss2Wz2WSz2fTtt9/qpZdeks1m8/QN+g1OVLduXbVs2dJrWYsWLTyTETHmoCT33XefHnzwQQ0ePFht2rTRP/7xD40ZM0aTJk2SRL+Bb3zpJ3Xq1FFeXp4OHTpkWibQSJgqUHh4uM4++2wtWrTIa/miRYvUuXPnIEWFUGMYhm6//XbNmTNHS5YsUaNGjbzWN2rUSHXq1PHqR3l5efr222/pR6exHj166LffftPatWs9/3Xs2FFDhw7V2rVr1bhxY/oNSnTBBRcU++mC//3vf2rYsKEkxhyU7OjRo7JavT9GhoWFeaYVp9/AF770k7PPPlt2u92rzO7du7V+/fqK60sVMrUEPGbNmmXY7Xbj7bffNjZu3GjcddddRnR0tJGSkhLs0BAibr31VsPpdBrffPONsXv3bs9/R48e9ZSZPHmy4XQ6jTlz5hi//fabcd111xl169Y1MjIyghg5Qs3xs+QZBv0GJVuxYoVhs9mMJ5980vjzzz+N999/34iKijLee+89Txn6Dk40fPhwo379+sbcuXONbdu2GXPmzDHi4+ON+++/31OGfgPDKJy9dc2aNcaaNWsMScZzzz1nrFmzxti+fbthGL71k1tuucVITEw0vv76a2P16tXGxRdfbLRr187Iz8+vkGMgYQqCf/3rX0bDhg2N8PBwo0OHDp7pogHDKJxys6T/pk+f7injdruNcePGGXXq1DEcDofRpUsX47fffgte0AhJJyZM9BuY+eKLL4zWrVsbDofDaN68ufHmm296rafv4EQZGRnG6NGjjTPOOMOIiIgwGjdubDzyyCNGbm6upwz9BoZhGEuXLi3xc83w4cMNw/Ctn2RnZxu33367UaNGDSMyMtK49NJLjR07dlTYMVgMwzAq5l4WAAAAAFQufIcJAAAAAEyQMAEAAACACRImAAAAADBBwgQAAAAAJkiYAAAAAMAECRMAAAAAmCBhAgAAAAATJEwAAAAAYIKECQBQpVgsFn322Wc+lR0/frzOOuusgMYDAKjcSJgAAAE3YsQIWSwWWSwW2e12NW7cWPfee6+ysrLKXKdZsrN7927169fPpzruvfdeLV68uMwxlNWMGTNUrVq1Ct8vAMB/tmAHAAA4PfTt21fTp0+Xy+XS999/r1GjRikrK0uvvfaaX/UYhqGCggLT9XXq1PG5rpiYGMXExPi1fwDA6YU7TACACuFwOFSnTh01aNBAQ4YM0dChQ/XZZ5/pvffeU8eOHRUbG6s6depoyJAh2rdvn2e7b775RhaLRQsWLFDHjh3lcDj07rvvasKECVq3bp3nztWMGTMkFX8kLzU1VYMHD1aNGjUUHR2tjh076ueff5ZU/C7ViBEjNGDAAE2YMEEJCQmKi4vTzTffrLy8PE+Z+fPn68ILL1S1atVUs2ZNXXrppdqyZYtnfUpKiiwWi+bMmaPu3bsrKipK7dq1008//eQ5npEjRyo9Pd0T+/jx48v/hAMAygUJEwAgKCIjI+VyuZSXl6fHH39c69at02effaZt27ZpxIgRxcrff//9mjRpkjZt2qTevXvrnnvuUatWrbR7927t3r1b1157bbFtMjMz1bVrV+3atUuff/651q1bp/vvv19ut9s0rsWLF2vTpk1aunSpPvzwQ3366aeaMGGCZ31WVpbuvvturVy5UosXL5bVatWVV15ZrM5HHnlE9957r9auXaszzzxT1113nfLz89W5c2e98MILiouL88R+7733lv1EAgACikfyAAAVbsWKFfrggw/Uo0cP3XDDDZ7ljRs31ksvvaRzzz1XmZmZXo/LTZw4Ub169fK8jomJkc1mK/URvA8++ED79+/XypUrVaNGDUlScnJyqbGFh4frnXfeUVRUlFq1aqWJEyfqvvvu0+OPPy6r1apBgwZ5lX/77beVkJCgjRs3qnXr1p7l9957ry655BJJ0oQJE9SqVStt3rxZzZs3l9PplMVi8evxQQBAcHCHCQBQIebOnauYmBhFRESoU6dO6tKli15++WWtWbNGV1xxhRo2bKjY2Fh169ZNkrRjxw6v7Tt27Oj3PteuXav27dt7kiVftGvXTlFRUZ7XnTp1UmZmpv766y9J0pYtWzRkyBA1btxYcXFxatSoUYnxtm3b1vPvunXrSpLXo4YAgMqBO0wAgArRvXt3vfbaa7Lb7apXr57sdruysrLUu3dv9e7dW++9955q1aqlHTt2qE+fPl7fG5Kk6Ohov/cZGRlZXuHLYrFIki677DI1aNBAb731lurVqye3263WrVsXi9dutxfbtrRHAQEAoYmECQBQIaKjo4s9Dvf7778rLS1NkydPVoMGDSRJv/zyi0/1hYeHlzpbnlR4l2fatGk6ePCgz3eZ1q1bp+zsbE+ytXz5csXExCgxMVEHDhzQpk2b9MYbb+iiiy6SJP3www8+1etv7ACA0MAjeQCAoDnjjDMUHh6ul19+WVu3btXnn3+uxx9/3Kdtk5KStG3bNq1du1ZpaWnKzc0tVua6665TnTp1NGDAAP3444/aunWrPvnkE8+MdSXJy8vTjTfeqI0bN2revHkaN26cbr/9dlmtVlWvXl01a9bUm2++qc2bN2vJkiW6++67/T7upKQkZWZmavHixUpLS9PRo0f9rgMAUDFImAAAQVOrVi3NmDFDH3/8sVq2bKnJkyfrmWee8WnbQYMGqW/fvurevbtq1aqlDz/8sFiZ8PBwLVy4UAkJCerfv7/atGmjyZMnKywszLTeHj16qGnTpurSpYuuueYaXXbZZZ5pv61Wq2bNmqVVq1apdevWGjNmjKZOner3cXfu3Fm33HKLrr32WtWqVUtTpkzxuw4AQMWwGIZhBDsIAABCwYgRI3T48GGv33ECAJzeuMMEAAAAACZImAAAAADABI/kAQAAAIAJ7jABAAAAgAkSJgAAAAAwQcIEAAAAACZImAAAAADABAkTAAAAAJggYQIAAAAAEyRMAAAAAGCChAkAAAAATPw/PbJbw5v9PjUAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "scatter_plot_of_stage_differences(differences_run_once)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0wAAAIhCAYAAAB9gDqHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB8P0lEQVR4nO3dd3gU1f7H8c9udrPpoYTQAgQIUqRIsYBKkY4NwYKgFMWr/iyIvVKsCHbvtaIgNtArNpQmYEFEkKYUvSIEpBNKQkLKJju/P0JWluyE3SWb3cD79Tw8ujNnznxn5szZ+WZmzloMwzAEAAAAACjFGuoAAAAAACBckTABAAAAgAkSJgAAAAAwQcIEAAAAACZImAAAAADABAkTAAAAAJggYQIAAAAAEyRMAAAAAGCChAkAAAAATJAwAWHu559/1mWXXab69evL4XCoZs2a6tixo+66666grXPJkiUaN26cDh48WGreK6+8oqlTpwZt3d507dpVFovF/S86Olpt2rTRCy+8IJfL5S43fPhwpaamBrSOYG1XQUGBbrrpJtWuXVsRERE644wzTMsahqHp06fr/PPPV3JysqKiopSSkqLevXtr8uTJ7nKHDx/WuHHj9O2335Z7vOUtPT3d49jZ7XZVr15dZ555pkaPHq1169aVWubbb7+VxWIptX0vv/yy0tLSFBkZKYvF4m6fDz/8sOrXry+bzaYqVaoEf6PCXEXuj3Hjxnkc32P/paenB2W9Xbt2VcuWLQNePjU11SPOuLg4nX322Zo2bVo5Rll2X9q1a1d17drV7zpTU1M1fPjwE46tvITiOwGoaLZQBwDA3FdffaVLLrlEXbt21cSJE1W7dm3t3LlTv/zyi6ZPn65nn302KOtdsmSJxo8fr+HDh5e64HrllVeUlJRU4V/YjRo10vvvvy9J2rNnj1577TWNHj1aO3fu1NNPP33C9Qdru1599VW9/vrrevnll9W+fXvFxcWZln3ggQf09NNP64YbbtA999yj+Ph4bdmyRQsXLtTnn3+ukSNHSipOmMaPHy9JAV1whcJtt92mwYMHy+Vy6eDBg1q1apXefvttvfzyy3rqqad0zz33uMu2a9dOP/30k1q0aOGetnr1at1+++0aOXKkhg0bJpvNpvj4eH3++ed64okn9NBDD6lv375yOByh2LywEar9MWfOHCUmJpaaXrt27QpZfyDOPfdcPfPMM5Kkbdu26ZlnntGwYcOUk5Ojm2++uVzWcby+NBCffvqpEhISyiG68hGq7wSgIpEwAWFs4sSJatiwoebOnSub7Z/TddCgQZo4cWIIIytfhmEoLy9P0dHRpmWio6N1zjnnuD/37dtXzZo107///W89/vjjstvtFRGq39auXavo6GjdeuutZZbLzc3VCy+8oKFDh+qNN97wmDd8+HCPO2mVUf369T2OX79+/XTnnXdqwIABuvfee9WyZUv17dtXkpSQkOBRVpL7TtQNN9ygs846yz197dq1kqTbb79dycnJ5RLr4cOHFRMTUy51VbRQ7Y/27dsrKSmpXNZXUapUqeLRznr06KEGDRroueeeO+GEKTc3V1FRUWWWOfoPAv5o27ZtQMsBCByP5AFhbN++fUpKSvJIlkpYraVP3w8++EAdO3ZUXFyc4uLidMYZZ+itt95yz58/f74uvfRSpaSkKCoqSmlpabrxxhuVkZHhLjNu3Dj3X/sbNmzofmTl22+/VWpqqtatW6fvvvvOPf3oR+CysrJ09913q2HDhoqMjFTdunV1xx13KCcnxyNOi8WiW2+9Va+99pqaN28uh8Ohd955x699Y7fb1b59ex0+fFh79+41LZeXl6cHHnjAI6ZbbrnF4xGZ421XoPVaLBZNnjxZubm57nrNHl3JyclRfn6+6V/kS453enq6atSoIUkaP368u96Sv+5u3LhRI0aMUJMmTRQTE6O6devq4osv1m+//VaqznXr1qlXr16KiYlRjRo1dMstt+irr77y+jjcN998o+7duyshIUExMTE699xztWDBgjL30fFER0frrbfekt1u16RJk9zTj30kr2vXrrrmmmskSWeffbZ7e1NTU/Xwww9LkmrWrCmLxaJx48a565kxY4Y6duyo2NhYxcXFqXfv3lq1apVHDMOHD1dcXJx+++039erVS/Hx8erevbuk4scpH3/8cTVr1kwOh0M1atTQiBEjSrW31NRUXXTRRZozZ47atWun6OhoNWvWTG+//Xapbd6+fbv+9a9/qV69eoqMjFSdOnV0+eWXa/fu3e4yvp5Hxyprf7hcLk2cONG9LcnJyRo6dKi2bdvmUUfJo27ff/+9OnXqpJiYGF133XVlrtdX48eP19lnn61q1aopISFB7dq101tvvSXDMEqVPV5fVmL58uU6//zzFRMTo0aNGmnChAkB/3GhSpUqatq0qbZs2SJJ+uWXXzRo0CClpqYqOjpaqampuvrqq93zS0ydOlUWi0Xz5s3Tddddpxo1aigmJkYPPPCAaV8qeX8kLz8/X48++qiaN2+uqKgoVa9eXd26ddOSJUvcZY59JK/kfHnvvfd05513qlatWoqOjlaXLl1KtXd/t2nRokW6+eablZSUpOrVq2vAgAHasWOHRyz+9p1AZcQdJiCMdezYUZMnT9btt9+uIUOGqF27dqZ3UsaMGaPHHntMAwYM0F133aXExEStXbvW44vwr7/+UseOHTVy5EglJiYqPT1dzz33nM477zz99ttvstvtGjlypPbv36+XX35ZM2fOdF/At2jRQp9++qkuv/xyJSYmuh8nKXnk5/Dhw+rSpYu2bdumBx98UK1bt9a6des0ZswY/fbbb/rmm29ksVjcsXz22Wf64YcfNGbMGNWqVSugv4b/9ddfstlsqlq1qtf5hmGof//+WrBggR544AGdf/75+vXXXzV27Fj99NNP+umnn+RwOMrcrhOp96efftJjjz2mRYsWaeHChZKkxo0be60zKSlJaWlpeuWVV5ScnKx+/fqpadOmHvtMKn7Eac6cOerTp4+uv/5692N6JUnUjh07VL16dU2YMEE1atTQ/v379c477+jss8/WqlWr1LRpU0nSzp071aVLF8XGxurVV19VcnKyPvzwQ693wt577z0NHTpUl156qd555x3Z7Xa9/vrr6t27t+bOnetOMAJRp04dtW/fXkuWLFFhYaHXPw688sor+vDDD/X4449rypQpatasmWrUqKFRo0bpP//5j9566y33I2EpKSmSpCeffFIPP/ywRowYoYcfflgFBQWaNGmSzj//fC1btszjr/sFBQW65JJLdOONN+r+++9XYWGhXC6XLr30Uv3www+699571alTJ23ZskVjx45V165d9csvv3jcEV2zZo3uuusu3X///apZs6YmT56s66+/XmlpaercubOk4mTpzDPPlNPpdJ8j+/bt09y5c3XgwAHVrFnT7/PoaJ9++qnp/rj55pv1xhtv6NZbb9VFF12k9PR0PfLII/r222+1cuVKj7tDO3fu1DXXXKN7771XTz75pNc/zhyrqKhIhYWFHtMsFosiIiLcn9PT03XjjTeqfv36kqSlS5fqtttu0/bt2zVmzBh3OV/6MknatWuXhgwZorvuuktjx47Vp59+qgceeEB16tTR0KFDjxvzsZxOp7Zs2eI+l9LT09W0aVMNGjRI1apV086dO/Xqq6/qzDPP1Pr160vdUbvuuut04YUX6t1331VOTo46dOigw4cPe+1LvSksLFTfvn31ww8/6I477tAFF1ygwsJCLV26VFu3blWnTp3KjP/BBx9Uu3btNHnyZGVmZmrcuHHq2rWrVq1apUaNGgW0TSNHjtSFF16oDz74QH///bfuueceXXPNNe7+zN++E6i0DABhKyMjwzjvvPMMSYYkw263G506dTKeeuop49ChQ+5ymzZtMiIiIowhQ4b4XLfL5TKcTqexZcsWQ5Lx+eefu+dNmjTJkGRs3ry51HKnn3660aVLl1LTn3rqKcNqtRrLly/3mP7f//7XkGR8/fXX7mmSjMTERGP//v0+xdqlSxfj9NNPN5xOp+F0Oo0dO3YY999/vyHJuOKKK9zlhg0bZjRo0MD9ec6cOYYkY+LEiR71zZgxw5BkvPHGG8fdLm/8qXfYsGFGbGysT/UuW7bMqF+/vvt4x8fHGxdddJExbdo0w+Vyucvt3bvXkGSMHTv2uHUWFhYaBQUFRpMmTYzRo0e7p99zzz2GxWIx1q1b51G+d+/ehiRj0aJFhmEYRk5OjlGtWjXj4osv9ihXVFRktGnTxjjrrLPKXP/mzZsNScakSZNMy1x11VWGJGP37t2GYRjGokWLPGIwDMOYMmWKIalU+xo7dqwhydi7d6972tatWw2bzWbcdtttHmUPHTpk1KpVy7jyyivd04YNG2ZIMt5++22Psh9++KEhyfjkk088pi9fvtyQZLzyyivuaQ0aNDCioqKMLVu2uKfl5uYa1apVM2688Ub3tOuuu86w2+3G+vXrTfeFP+eRN972x4YNGwxJxv/93/95lP35558NScaDDz7ontalSxdDkrFgwYIy13Ps+rz9a9y4selyRUVFhtPpNB599FGjevXq7vbta19WEufPP//sMb1FixZG7969jxt3gwYNjH79+rn7lM2bN7vbwj333ON1mcLCQiM7O9uIjY01XnzxRff0krY5dOjQUsuU1Zd26dLFo8+ZNm2aIcl48803jxv7sGHD3J9Lzpd27dp59BPp6emG3W43Ro4caVrX8bbp2DYzceJEQ5Kxc+dO9zR/+k6gsuKRPCCMVa9eXT/88IOWL1+uCRMm6NJLL9X//vc/PfDAA2rVqpX7Ubr58+erqKhIt9xyS5n17dmzRzfddJPq1asnm80mu92uBg0aSJI2bNhwQrHOmjVLLVu21BlnnKHCwkL3v969e3t9xOuCCy4wvTPkzbp162S322W321WnTh09++yzGjJkiN58803TZUr+Cnrsy8hXXHGFYmNjA36kLFj1nnnmmdq4caPmzJmjBx98UB07dtSCBQs0dOhQXXLJJV4fXTpWYWGhnnzySbVo0UKRkZGy2WyKjIzUn3/+6XGMv/vuO7Vs2bLUX7uvvvpqj89LlizR/v37NWzYMI/j6nK51KdPHy1fvvy4j4odjy/b5Y+5c+eqsLBQQ4cO9Yg5KipKXbp08Tq64MCBAz0+z5o1S1WqVNHFF1/sUccZZ5yhWrVqlarjjDPOcN85kaSoqCiddtppHndFZs+erW7duql58+amsft7Hvli0aJFkkq317POOkvNmzcv1V6rVq2qCy64wK91fPPNN1q+fLnHv88++8yjzMKFC9WjRw8lJiYqIiJCdrtdY8aM0b59+7Rnzx5JvvdlklSrVi2P99kkqXXr1qXuRJn5+uuv3X1Kw4YN9dFHH+m2227T448/LknKzs7Wfffdp7S0NNlsNtlsNsXFxSknJ8drf3lsG/LX7NmzFRUVFfAjkIMHD/a4+9igQQN16tTJffwl/7fpkksu8fjcunVrSfJ5HwMnCx7JAyqBDh06qEOHDpKKHxu577779Pzzz2vixImaOHGi+52KksdvvHG5XOrVq5d27NihRx55RK1atVJsbKxcLpfOOecc5ebmnlCMu3fv1saNG00fGTz6PSnJ/9GzGjdurOnTp8tisSgqKkoNGzY87ovo+/btk81mcz9iU8JisahWrVrat2+fXzEEu16p+N2s3r17q3fv3u51XX755Zo1a5Zmz56tfv36lbn8nXfeqf/85z+677771KVLF1WtWlVWq1UjR470OMb79u1Tw4YNSy1fs2ZNj88l79Zcfvnlpuvcv3+/YmNjfd7GY23ZskUOh0PVqlULuI6jlcR85plnep1/7CNmMTExpUYd2717tw4ePKjIyEivdRzbnqtXr16qjMPh8Njne/fuLfMcLVmvP+eRL0rao7dzrk6dOqUufgMZ2a5NmzZlDvqwbNky9erVS127dtWbb76plJQURUZG6rPPPtMTTzzh3k++9GUlfNnnZTnvvPP0/PPPy2KxKCYmRo0bN/Y43oMHD9aCBQv0yCOP6Mwzz1RCQoIsFov69evndR0nOiLg3r17VadOHZ8egfSmVq1aXqetWbPG/dnfbTp2H5c8bnei3xdAZUPCBFQydrtdY8eO1fPPP+8eEavkwn3btm2qV6+e1+XWrl2rNWvWaOrUqRo2bJh7+saNG8slrqSkJEVHR3t90b1k/tHM3sMwExUV5U4afVW9enUVFhZq7969HsmNYRjatWuX6QV1qOo1W9cdd9yhb7/9VmvXrj1uwlTyvtGTTz7pMT0jI8NjWOPq1at7DDRQYteuXR6fS47byy+/XGrkuhLHJln+2L59u1asWKEuXbp4fX8pECUx//e//3XfQS2Lt7ZY8pL7nDlzvC4THx/vd1w1atQoNciCt/X6cx75ouSid+fOnaUSkR07dpzwuemL6dOny263a9asWR6jxx17F8qXvqy8JCYmmvYpmZmZmjVrlsaOHav777/fPT0/P1/79+/3usyJ7rcaNWpo8eLFcrlcASVNx567JdNKjn8g2wSgGI/kAWFs586dXqeXPDpRp04dSVKvXr0UERGhV1991bSuki/zY1/Iff3110uVLeuviGZ/wb3ooov0119/qXr16u47Ykf/C8XISSWDEbz33nse0z/55BPl5OR4DFbgz1+m/anXV06n0/TO1LHHu6zjY7FYSh3jr776Stu3b/eY1qVLF61du1br16/3mD59+nSPz+eee66qVKmi9evXez2uHTp0ML0Lczy5ubkaOXKkCgsLde+99wZUhze9e/eWzWbTX3/9ZRrz8Vx00UXat2+fioqKvC5fMniGP/r27atFixbpjz/+KHO95X0elTxed2x7Xb58uTZs2HBCg3b4ymKxyGazeQwCkZubq3fffdejnC99WUWwWCwyDKPUuTR58mQVFRX5XI8/d2T69u2rvLy8gH8E9sMPP/R4vHXLli1asmSJeyS+8tqmY/nTdwKVFXeYgDDWu3dvpaSk6OKLL1azZs3kcrm0evVqPfvss4qLi9OoUaMkFQ/t+uCDD+qxxx5Tbm6urr76aiUmJmr9+vXKyMjQ+PHj1axZMzVu3Fj333+/DMNQtWrV9OWXX2r+/Pml1tuqVStJ0osvvqhhw4bJbreradOmio+PV6tWrTR9+nTNmDFDjRo1UlRUlFq1aqU77rhDn3zyiTp37qzRo0erdevWcrlc2rp1q+bNm6e77rpLZ599doXuv549e6p379667777lJWVpXPPPdc9ml3btm117bXXemyzt+060Xp9lZmZqdTUVF1xxRXq0aOH6tWrp+zsbH377bd68cUX1bx5cw0YMEBS8d2NBg0a6PPPP1f37t1VrVo1JSUluYe3njp1qpo1a6bWrVtrxYoVmjRpUqk7C3fccYfefvtt9e3bV48++qhq1qypDz74QL///rukfx5bi4uL08svv6xhw4Zp//79uvzyy5WcnKy9e/dqzZo12rt3r08Xt1u3btXSpUvlcrmUmZnp/uHaLVu26Nlnn1WvXr383mdmUlNT9eijj+qhhx7Spk2b1KdPH1WtWlW7d+/WsmXLFBsb6/7hXzODBg3S+++/r379+mnUqFE666yzZLfbtW3bNi1atEiXXnqpLrvsMr/ievTRRzV79mx17txZDz74oFq1aqWDBw9qzpw5uvPOO9WsWbOgnEdNmzbVv/71L7388suyWq3q27eve5S8evXqafTo0X7V582KFSu8/nBtixYtlJCQoAsvvFDPPfecBg8erH/961/at2+fnnnmmVIX7770ZRUhISFBnTt31qRJk9zn1nfffae33nqr1A/QlqWsvvRYV199taZMmaKbbrpJf/zxh7p16yaXy6Wff/5ZzZs316BBg8pc1549e3TZZZfphhtuUGZmpsaOHauoqCg98MAD5bpN3rbR174TqLRCN94EgOOZMWOGMXjwYKNJkyZGXFycYbfbjfr16xvXXnut15G2pk2bZpx55plGVFSUERcXZ7Rt29aYMmWKe/769euNnj17GvHx8UbVqlWNK664wti6davXEdceeOABo06dOobVavUYsSw9Pd3o1auXER8fb0jyGJUuOzvbePjhh42mTZsakZGRRmJiotGqVStj9OjRxq5du9zlJBm33HKLz/uhZJS84zl2lDzDKB6t7L777jMaNGhg2O12o3bt2sbNN99sHDhwwKNcWdvlja/1+jpKXn5+vvHMM88Yffv2NerXr284HA4jKirKaN68uXHvvfca+/bt8yj/zTffGG3btjUcDochyT1q1oEDB4zrr7/eSE5ONmJiYozzzjvP+OGHH0qNyGUYhrF27VqjR48eRlRUlFGtWjXj+uuvN9555x1DkrFmzRqPst99951x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lnuwAAAAAFCR/E6YHn74YTVs2FD//ve/9e6770qSmjZtqjfffFODBw+WJN100026+eabyzdSAAAAAKhgAf0O05AhQzRkyBDT+dHR0QEHBAAAAADhwu93mAAAAADgVOH3HaaioiI9//zz+uijj7R161YVFBR4zN+/f3+5BQcAAAAAoeT3Habx48frueee05VXXqnMzEzdeeedGjBggKxWq8aNGxeEEAEAAAAgNPxOmN5//329+eabuvvuu2Wz2XT11Vdr8uTJGjNmjJYuXRqMGAEAAAAgJPxOmHbt2qVWrVpJkuLi4pSZmSlJuuiii/TVV1+Vb3QAAAAAEEJ+J0wpKSnauXOnJCktLU3z5s2TJC1fvpwfqwUAAABwUvE7Ybrsssu0YMECSdKoUaP0yCOPqEmTJho6dKiuu+66cg8QAAAAAELF71HyJkyY4P7/yy+/XPXq1dOPP/6otLQ0XXLJJeUaHAAAAACEkt8J0/fff69OnTrJZite9Oyzz9bZZ5+twsJCff/99+rcuXO5BwkAAAAAoeD3I3ndunXz+ltLmZmZ6tatW7kEBQAAAADhwO+EyTAMWSyWUtP37dun2NjYcgkKAAAAAMKBz4/kDRgwQJJksVg0fPhwjxHxioqK9Ouvv6pTp07lHyEAAAAAhIjPCVNiYqKk4jtM8fHxio6Ods+LjIzUOeecoxtuuKH8IwQAAACAEPE5YZoyZYokKTU1VXfffTeP3wEAAAA46fk9St7YsWM9Pn/33XfKyclRx44dVbVq1XILDAAAAABCzeeEadKkScrOztb48eMlFT+a17dvX82bN0+SlJycrAULFuj0008PTqQAAAAAUMF8HiXvww8/VIsWLdyf//vf/+r777/XDz/8oIyMDHXo0MGdTAEAAADAycDnhGnz5s1q3bq1+/PXX3+tgQMH6txzz1W1atX08MMP66effgpKkAAAAAAQCj4nTE6n02Mo8Z9++sljGPE6deooIyOjfKMDAAAAgBDyOWFKS0vT999/L0naunWr/ve//6lLly7u+du2bVP16tXLP0IAAAAACBGfB324+eabdeutt+qHH37Q0qVL1bFjR493mhYuXKi2bdsGJUgAAAAACAWfE6Ybb7xRNptNs2bNUufOnUsNL75jxw5dd9115R4gAAAAAISKX7/DdP311+v666/3Ou+VV14pl4AAAAAAIFz4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tISEhBMKCAAAAADChd+DPhw+fFi33nqrkpOTFRcXp6pVq3r8AwAAAICThd8J0z333KOFCxfqlVdekcPh0OTJkzV+/HjVqVNH06ZNC0aMAAAAABASfj+S9+WXX2ratGnq2rWrrrvuOp1//vlKS0tTgwYN9P7772vIkCHBiBMAAAAAKpzfd5j279+vhg0bSip+X2n//v2SpPPOO0/ff/99+UYHAAAAACHkd8LUqFEjpaenS5JatGihjz76SFLxnacqVaqUZ2wAAAAAEFJ+J0wjRozQmjVrJEkPPPCA+12m0aNH65577in3AAEAAAAgVPx+h2n06NHu/+/WrZt+//13/fLLL2rcuLHatGlTrsEBAAAAQCj5fYdp2rRpys/Pd3+uX7++BgwYoObNmzNKHgAAAICTSkCP5GVmZpaafujQIY0YMaJcggIAAACAcOB3wmQYhiwWS6np27ZtU2JiYrkEBQAAAADhwOd3mNq2bSuLxSKLxaLu3bvLZvtn0aKiIm3evFl9+vQJSpAAAAAAEAo+J0z9+/eXJK1evVq9e/dWXFyce15kZKRSU1M1cODAcg8QAAAAAELF54Rp7NixkqTU1FRdddVVioqKClpQAAAAABAO/B5WfNiwYe7/z8vL04wZM5STk6OePXuqSZMm5RocAAAAAISSzwnTPffco4KCAr344ouSpIKCAp1zzjlav369YmJidO+992r+/Pnq2LFj0IIFAAAAgIrk8yh5s2fPVvfu3d2f33//fW3dulV//vmnDhw4oCuuuEKPP/54UIIEAAAAgFDwOWHaunWrWrRo4f48b948XX755WrQoIEsFotGjRqlVatWBSVIAAAAAAgFnxMmq9UqwzDcn5cuXapzzjnH/blKlSo6cOBA+UYHAAAAACHkc8LUrFkzffnll5KkdevWaevWrerWrZt7/pYtW1SzZs3yjxAAAAAAQsSvQR+uvvpqffXVV1q3bp369eunhg0buud//fXXOuuss4ISJAAAAACEgs93mAYOHKivv/5arVu31ujRozVjxgyP+TExMfq///u/cg8QAAAAAELFr99h6tGjh3r06OF1XskP2wIAAADAycLnO0wAAAAAcKohYQIAAAAAEyRMAAAAAGCChAkAAAAATJAwAQAAAIAJn0bJa9u2rSwWi08Vrly58oQCgjmXy1D6vhwdyitUfJRNqdVjZbX6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L7nkknIJDAAAAABCzaeEqX///tq1a5eSk5PVv39/03IWi0VFRUXlFRsAAAAAhJRPCdPRj+HxSB4AAACAU4VPv8MEAAAAAKcivxIml8ult99+WxdddJFatmypVq1a6ZJLLtG0adNkGEawYpRU/G5U/fr1FRUVpdq1a+vaa6/Vjh07grpOAAAAAKc2nxMmwzB0ySWXaOTIkdq+fbtatWql008/XVu2bNHw4cN12WWXBTNOdevWTR999JH++OMPffLJJ/rrr790+eWXB3WdAAAAAE5tPg8rPnXqVH3//fdasGCBunXr5jFv4cKF6t+/v6ZNm6ahQ4eWe5CSNHr0aPf/N2jQQPfff7/69+8vp9Mpu90elHUCAAAAOLX5nDB9+OGHevDBB0slS5J0wQUX6P7779f7778ftITpaPv379f777+vTp06lZks5efnKz8/3/05KytLkuR0OuV0OoMeZ1lK1h/qOFC50G4QKNoOAkG7QSBoNwhURbcdX9djMXx8+ahWrVqaM2eOzjjjDK/zV61apb59+2rXrl0+B+mv++67T//+9791+PBhnXPOOZo1a5aqV69uWn7cuHEaP358qekffPCBYmJighYnAAAAgPB2+PBhDR48WJmZmUpISDAt53PCFBkZqS1btqh27dpe5+/YsUMNGzb0uKNzPGYJzdGWL1+uDh06SJIyMjK0f/9+bdmyRePHj1diYqJmzZoli8XidVlvd5jq1aunjIyMMndKRXA6nZo/f7569uzJI4XwGe0GgaLtIBC0GwSCdoNAVXTbycrKUlJS0nETJp8fySsqKpLNZl48IiJChYWFfgV56623atCgQWWWSU1Ndf9/UlKSkpKSdNppp6l58+aqV6+eli5dqo4dO3pd1uFwyOFwlJput9vD5gQOp1hQedBuECjaDgJBu0EgaDcIVEW1HV/X4XPCZBiGhg8f7jUBkeTXnaUSJQlQIEpujAWyXgAAAADwhc8J07Bhw45bJlgDPixbtkzLli3Teeedp6pVq2rTpk0aM2aMGjdubHp3CQAAAABOlM8J05QpU4IZR5mio6M1c+ZMjR07Vjk5Oapdu7b69Omj6dOnm97xAgAAAIAT5XPCFEqtWrXSwoULQx0GAAAAgFOMNdQBAAAAAEC4ImECAAAAABMkTAAAAABggoQJAAAAAEyQMAEAAACACRImAAAAADBBwgQA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uuSSS7Rt27YK2wYSpgo2Y8YM3XHHHXrooYe0atUqnX/++erbt6+2bt0a6tAQJr777jvdcsstWrp0qebPn6/CwkL16tVLOTk57jITJ07Uc889p3//+99avny5atWqpZ49e+rQoUMhjBzhYvny5XrjjTfUunVrj+m0G3hz4MABnXvuubLb7Zo9e7bWr1+vZ599VlWqVHGXoe3gWE8//bRee+01/fvf/9aGDRs0ceJETZo0SS+//LK7DO0GkpSTk6M2bdro3//+t9f5vrSTO+64Q59++qmmT5+uxYsXKzs7WxdddJGKiooqZiMMVKizzjrLuOmmmzymNWvWzLj//vtDFBHC3Z49ewxJxnfffWcYhmG4XC6jVq1axoQJE9xl8vLyjMTEROO1114LVZgIE4cOHTKaNGlizJ8/3+jSpYsxatQowzBoNzB33333Geedd57pfNoOvLnwwguN6667zmPagAEDjGuuucYwDNoNvJNkfPrpp+7PvrSTgwcPGna73Zg+fbq7zPbt2w2r1WrMmTOnQuLmDlMFKigo0IoVK9SrVy+P6b169dKSJUtCFBXCXWZmpiSpWrVqkqTNmzdr165dHu3I4XCoS5cutCPolltu0YUXXqgePXp4TKfdwMwXX3yhDh066IorrlBycrLatm2rN9980z2ftgNvzjvvPC1YsED/+9//JElr1qzR4sWL1a9fP0m0G/jGl3ayYsUKOZ1OjzJ16tRRy5YtK6wt2SpkLZAkZWRkqKioSDVr1vSYXrNmTe3atStEUSGcGYahO++8U+edd55atmwpSe624q0dbdmypcJjRPiYPn26Vq5cqeXLl5eaR7uBmU2bNunVV1/VnXfeqQcffFDLli3T7bffLofDoaFDh9J24NV9992nzMxMNWvWTBERESoqKtITTzyhq6++WhJ9DnzjSzvZtWuXIiMjVbVq1VJlKur6mYQpBCwWi8dnwzBKTQMk6dZbb9Wvv/6qxYsXl5pHO8LR/v77b40aNUrz5s1TVFSUaTnaDY7lcrnUoUMHPfnkk5Kktm3bat26dXr11Vc1dOhQdznaDo42Y8YMvffee/rggw90+umna/Xq1brjjjtUp04dDRs2zF2OdgNfBNJOKrIt8UheBUpKSlJERESpbHjPnj2lMmvgtttu0xdffKFFixYpJSXFPb1WrVqSRDuChxUrVmjPnj1q3769bDabbDabvvvuO7300kuy2WzutkG7wbFq166tFi1aeExr3ry5ezAi+hx4c8899+j+++/XoEGD1KpVK1177bUaPXq0nnrqKUm0G/jGl3ZSq1YtFRQU6MCBA6Zlgo2EqQJFRkaqffv2mj9/vsf0+fPnq1OnTiGKCuHGMAzdeuutmjlzphYuXKiGDRt6zG/YsKFq1arl0Y4KCgr03Xff0Y5OYd27d9dvv/2m1atXu/916NBBQ4YM0erVq9WoUSPaDbw699xzS/10wf/+9z81aNBAEn0OvDt8+LCsVs/LyIiICPew4rQb+MKXdtK+fXvZ7XaPMjt37tTatWsrri1VyNAScJs+fbpht9uNt956y1i/fr1xxx13GLGxsUZ6enqoQ0OYuPnmm43ExETj22+/NXbu3On+d/jwYXeZCRMmGImJicbMmTON3377zbj66quN2rVrG1lZWSGMHOHm6FHyDIN2A++WLVtm2Gw244knnjD+/PNP4/333zdiYmKM9957z12GtoNjDRs2zKhbt64xa9YsY/PmzcbMmTONpKQk495773WXod3AMIpHb121apWxatUqQ5Lx3HPPGatWrTK2bNliGIZv7eSmm24yUlJSjG+++cZYuXKlccEFFxht2rQxCgsLK2QbSJhC4D//+Y/RoEEDIzIy0mjXrp17uGjAMIqH3PT2b8qUKe4yLpfLGDt2rFGrVi3D4XAYnTt3Nn777bfQBY2wdGzCRLuBmS+//NJo2bKl4XA4jGbNmhlvvPGGx3zaDo6VlZVljBo1yqhfv74RFRVlNGrUyHjooYeM/Px8dxnaDQzDMBYtWuT1umbYsGGGYfjWTnJzc41bb73VqFatmhEdHW1cdNFFxtatWytsGyyGYRgVcy8LAAAAACoX3mECAAAAABMkTAAAAABggoQJAAAAAEyQMAEAAACACRImAAAAADBBwgQAAAAAJkiYAAAAAMAECRMAAAAAmCBhAgCcVCwWiz777DOfyo4bN05nnHFGUOMBAFRuJEwAgKAbPny4LBaLLBaL7Ha7GjVqpLvvvls5OTkB12mW7OzcuVN9+/b1qY67775bCxYsCDiGQE2dOlVVqlSp8PUCAPxnC3UAAIBTQ58+fTRlyhQ5nU798MMPGjlypHJycvTqq6/6VY9hGCoqKjKdX6tWLZ/riouLU1xcnF/rBwCcWrjDBACoEA6HQ7Vq1VK9evU0ePBgDRkyRJ999pnee+89dejQQfHx8apVq5YGDx6sPXv2uJf79ttvZbFYNHfuXHXo0EEOh0Pvvvuuxo8frzVr1rjvXE2dOlVS6Ufytm3bpkGDBqlatWqKjY1Vhw4d9PPPP0sqfZdq+PDh6t+/v8aPH6/k5GQlJCToxhtvVEFBgbvMnDlzdN5556lKlSqqXr26LrroIv3111/u+enp6bJYLJo5c6a6deummJgYtWnTRj/99JN7e0aMGKHMzEx37OPGjSv/HQ4AKBckTACAkIiOjpbT6VRBQYEee+wxrVmzRp999pk2b96s4cOHlyp/77336qmnntKGDRvUq1cv3XXXXTr99NO1c+dO7dy5U1dddVWpZbKzs9WlSxft2LFDX3zxhdasWaN7771XLpfLNK4FCxZow4YNWrRokT788EN9+umnGj9+vHt+Tk6O7rzzTi1fvlwLFiyQ1WrVZZddVqrOhx56SHfffbdWr16t0047TVdffbUKCwvVqVMnvfDCC0pISHDHfvfddwe+IwEAQcUjeQCACrds2TJ98MEH6t69u6677jr39EaNGumll17SWWedpezsbI/H5R599FH17NnT/TkuLk42m63MR/A++OAD7d27V8uXL1e1atUkSWlpaWXGFhkZqbffflsxMTE6/fTT9eijj+qee+7RY489JqvVqoEDB3qUf+utt5ScnKz169erZcuW7ul33323LrzwQknS+PHjdfrpp2vjxo1q1qyZEhMTZbFY/Hp8EAAQGtxhAgBUiFmzZikuLk5RUVHq2LGjOnfurJdfflmrVq3SpZdeqgYNGig+Pl5du3aVJG3dutVj+Q4dOvi9ztWrV6tt27buZMkXbdq0UUxMjPtzx44dlZ2drb///luS9Ndff2nw4MFq1KiREhIS1LBhQ6/xtm7d2v3/tWvXliSPRw0BAJUDd5gAABWiW7duevXVV2W321WnTh3Z7Xbl5OSoV69e6tWrl9577z3VqFFDW7duVe/evT3eG5Kk2NhYv9cZHR1dXuHLYrFIki6++GLVq1dPb775purUqSOXy6WWLVuWitdut5datqxHAQEA4YmECQBQIWJjY0s9Dvf7778rIyNDEyZMUL169SRJv/zyi0/1RUZGljlanlR8l2fy5Mnav3+/z3eZ1qxZo9zcXHeytXTpUsXFxSklJUX79u3Thg0b9Prrr+v888+XJC1evNinev2NHQAQHngkDwAQMvXr11dkZKRefvllbdq0SV988YUee+wxn5ZNTU3V5s2btXr1amVkZCg/P79Umauvvlq1atVS//799eOPP2rTpk365JNP3CPWeVNQUKDrr79e69ev1+zZszV27Fjdeuutslqtqlq1qqpXr6433nhDGzdu1MKFC3XnnXf6vd2pqanKzs7WggULlJGRocOHD/tdBwCgYpAwAQBCpkaNGpo6dao+/vhjtWjRQhMmTNAzzzzj07IDBw5Unz591K1bN9WoUUMffvhhqTKRkZGaN2+ekpOT1a9fP7Vq1UoTJkxQRESEab3du3dXkyZN1LlzZ1155ZW6+OKL3cN+W61WTZ8+XStWrFDLli01evRoTZo0ye/t7tSpk2666SZdddVVqlGjhiZOnOh3HQCAimExDMMIdRAAAISD4cOH6+DBgx6/4wQAOLVxhwkAAAAATJAwAQAAAIAJHskDAAAAABPcYQIAAAAAEyRMAAAAAGCChAkAAAAATJAwAQAAAIAJEiYAAAAAMEHCBAAAAAAmSJgAAAAAwAQJEwAAAACY+H87QOPbDo6TYQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "scatter_plot_of_stage_differences(differences_run_multiple_times)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the above figure, it seems that running multiple times may not increase the accuracy. \n", "\n", "## Cases when our algorithm may not work" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "29" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# These are the participants whose results using our algorithm \n", "# generates different stages than actual stages\n", "non_zero_indices = np.nonzero(differences_run_multiple_times)[0]\n", "p_ids_with_different_results = non_zero_indices\n", "len(p_ids_with_different_results)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementk_jS_naffected_or_notDiseased
070MMSE27.182521105affectedTrue
170ADAS-7.143947106affectedTrue
270AB192.796566103affectedTrue
370P-Tau1.793797104affectedTrue
470HIP-FCI6.073670101affectedTrue
570HIP-GMI0.787546107affectedTrue
670AVLT-Sum51.980328108affectedTrue
770PCC-FCI10.406626102affectedTrue
870FUS-GMI0.532927109affectedTrue
970FUS-FCI-19.8643061010affectedTrue
\n", "
" ], "text/plain": [ " participant biomarker measurement k_j S_n affected_or_not Diseased\n", "0 70 MMSE 27.182521 10 5 affected True\n", "1 70 ADAS -7.143947 10 6 affected True\n", "2 70 AB 192.796566 10 3 affected True\n", "3 70 P-Tau 1.793797 10 4 affected True\n", "4 70 HIP-FCI 6.073670 10 1 affected True\n", "5 70 HIP-GMI 0.787546 10 7 affected True\n", "6 70 AVLT-Sum 51.980328 10 8 affected True\n", "7 70 PCC-FCI 10.406626 10 2 affected True\n", "8 70 FUS-GMI 0.532927 10 9 affected True\n", "9 70 FUS-FCI -19.864306 10 10 affected True" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "participant_index = np.random.choice(p_ids_with_different_results)\n", "p_data = data[data.participant == participant_index].reset_index(drop=True)\n", "p_data" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
likelihood
88.364100e-11
95.696199e-11
101.286239e-12
72.607340e-15
62.487587e-15
56.845312e-18
45.491337e-19
32.989450e-19
26.384992e-20
12.225960e-20
01.723630e-21
\n", "
" ], "text/plain": [ " likelihood\n", "8 8.364100e-11\n", "9 5.696199e-11\n", "10 1.286239e-12\n", "7 2.607340e-15\n", "6 2.487587e-15\n", "5 6.845312e-18\n", "4 5.491337e-19\n", "3 2.989450e-19\n", "2 6.384992e-20\n", "1 2.225960e-20\n", "0 1.723630e-21" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num_stages = len(data.k_j.unique())\n", "stage_likelihood = np.zeros(num_stages)\n", "for k in range(num_stages):\n", " # assume participant is in this stage; compute the likelihood of seeing \n", " # this sequence of observed biomarker measurement\n", " # [0, 10] Note that k CAN be 0\n", " likelihood = compute_likelihood(p_data, k, theta_phi=theta_phi)\n", " stage_likelihood[k] = likelihood\n", "p_stage_likelihood_df = pd.DataFrame(stage_likelihood, columns=['likelihood'])\n", "p_stage_likelihood_df.sort_values(by = \"likelihood\", ascending=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Unknown $\\theta$ and $\\phi$\n", "\n", "Suppose we do not have access to the parameters for biomarker value distributions; i.e., we do not know $\\theta$ and $\\phi$. " ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementS_nDiseased
00MMSE27.1866435True
11MMSE25.0651795True
22MMSE28.0051145True
33MMSE28.8784365True
44MMSE23.0950865True
\n", "
" ], "text/plain": [ " participant biomarker measurement S_n Diseased\n", "0 0 MMSE 27.186643 5 True\n", "1 1 MMSE 25.065179 5 True\n", "2 2 MMSE 28.005114 5 True\n", "3 3 MMSE 28.878436 5 True\n", "4 4 MMSE 23.095086 5 True" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_we_have = data.drop(['k_j', 'affected_or_not'], axis = 1)\n", "data_we_have.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we need to fill up data to have the two columns: `k_j` and `affected`. We didn't do that above because we did not need to estimate `theta` and `phi`. Now, we have to. And to estimate `theta` and `phi`, we need to have the column of `affected`. " ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "def fill_up_data_we_have(data_we_have, participant_stages, participants):\n", " '''This is to fill up data_we_have. \n", " Basically, add two columns: k_j, and affected, based on the initial or updated participant_stages\n", " Essentially, all we do below is to get the most accurate participant_stages\n", "\n", " Note: we do not have the real participant_stages right now. \n", " \n", " Inputs:\n", " - data_we_have\n", " - participant_stages: np array \n", " - participants: 0-99\n", " '''\n", " participant_stage_dic = dict(zip(np.arange(0,len(participants)), participant_stages))\n", " data_we_have['k_j'] = data_we_have.apply(lambda row: participant_stage_dic[row.participant], axis = 1)\n", " data_we_have['affected'] = data_we_have.apply(lambda row: row.k_j >= row.S_n, axis = 1)\n", " return data_we_have " ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "def estimate_params_exact(m0, n0, s0_sq, v0, data):\n", " '''This is to estimate means and vars based on conjugate priors\n", " Inputs:\n", " - data: a vector of measurements \n", " - m0: prior estimate of $\\mu$.\n", " - n0: how strongly is the prior belief in $m_0$ is held.\n", " - s0_sq: prior estimate of $\\sigma^2$.\n", " - v0: prior degress of freedome, influencing the certainty of $s_0^2$.\n", " \n", " Outputs:\n", " - mu estiate, std estimate\n", " '''\n", " # Data summary\n", " sample_mean = np.mean(data)\n", " sample_size = len(data)\n", " sample_var = np.var(data, ddof=1) # ddof=1 for unbiased estimator\n", "\n", " # Update hyperparameters for the Normal-Inverse Gamma posterior\n", " updated_m0 = (n0 * m0 + sample_size * sample_mean) / (n0 + sample_size)\n", " updated_n0 = n0 + sample_size\n", " updated_v0 = v0 + sample_size \n", " updated_s0_sq = (1 / updated_v0) * ((sample_size - 1) * sample_var + v0 * s0_sq + \n", " (n0 * sample_size / updated_n0) * (sample_mean - m0)**2)\n", " updated_alpha = updated_v0/2\n", " updated_beta = updated_v0*updated_s0_sq/2\n", "\n", " # Posterior estimates\n", " mu_posterior_mean = updated_m0\n", " sigma_squared_posterior_mean = updated_beta/updated_alpha\n", "\n", " mu_estimation = mu_posterior_mean\n", " std_estimation = np.sqrt(sigma_squared_posterior_mean)\n", "\n", " return mu_estimation, std_estimation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is one issue we need to fix, i.e., when there is only one observation in `data_full`:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementS_nDiseasedk_jaffected
93333FUS-FCI-22.80203310True10True
\n", "
" ], "text/plain": [ " participant biomarker measurement S_n Diseased k_j affected\n", "933 33 FUS-FCI -22.802033 10 True 10 True" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "participant_stages = np.array([ 6, 5, 3, 4, 8, 8, 6, 0, 9, 4, 7, 8, 8, 2, 2, 4, 8,\n", " 2, 6, 5, 7, 3, 4, 6, 7, 8, 0, 0, 5, 7, 2, 9, 0, 10,\n", " 1, 7, 3, 3, 7, 2, 0, 6, 4, 0, 2, 0, 8, 6, 5, 7, 6,\n", " 9, 8, 3, 7, 9, 6, 9, 8, 9, 9, 1, 0, 5, 2, 7, 5, 7,\n", " 8, 8, 7, 5, 6, 9, 3, 5, 2, 3, 5, 1, 8, 7, 3, 5, 7,\n", " 0, 7, 4, 3, 6, 5, 0, 2, 0, 4, 1, 5, 1, 6, 1])\n", "data_we_have = data.drop(['k_j', 'affected_or_not'], axis = 1)\n", "data_we_have = fill_up_data_we_have(data_we_have, participant_stages, participants)\n", "data_full = data_we_have[(data_we_have.biomarker == \"FUS-FCI\") & (data_we_have.affected == True)]\n", "data_full" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(data_full)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How to fix this issue? We have to rely on `estimated_means_stds_kmeans.csv`. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
biomarkertheta_meantheta_stdphi_meanphi_std
0MMSE27.5272641.09571821.1716712.164059
1ADAS-6.4015521.823123-20.1659053.290392
2AB272.12932137.557221166.58796726.071097
3P-Tau-21.46345313.376673-69.56540321.663291
4HIP-FCI4.8637821.738809-4.9575203.289401
5HIP-GMI0.4744280.1760130.0173950.149670
6AVLT-Sum48.77394710.15480520.1786895.985663
7PCC-FCI12.2991842.6865963.8190882.542993
8FUS-GMI0.4558130.0466200.5687450.051573
9FUS-FCI-25.9139564.748164-15.5512283.810430
\n", "
" ], "text/plain": [ " biomarker theta_mean theta_std phi_mean phi_std\n", "0 MMSE 27.527264 1.095718 21.171671 2.164059\n", "1 ADAS -6.401552 1.823123 -20.165905 3.290392\n", "2 AB 272.129321 37.557221 166.587967 26.071097\n", "3 P-Tau -21.463453 13.376673 -69.565403 21.663291\n", "4 HIP-FCI 4.863782 1.738809 -4.957520 3.289401\n", "5 HIP-GMI 0.474428 0.176013 0.017395 0.149670\n", "6 AVLT-Sum 48.773947 10.154805 20.178689 5.985663\n", "7 PCC-FCI 12.299184 2.686596 3.819088 2.542993\n", "8 FUS-GMI 0.455813 0.046620 0.568745 0.051573\n", "9 FUS-FCI -25.913956 4.748164 -15.551228 3.810430" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "theta_phi_kmeans" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "27.52726389513369" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "theta_phi_kmeans[theta_phi_kmeans.biomarker == 'MMSE']['theta_mean'][0]" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "def get_estimated_means_stds_df(biomarkers, data_we_have, theta_phi_kmeans):\n", " '''To get estimated parameters, returns a Pandas DataFrame\n", " Input:\n", " - biomarkers: biomarkers \n", " - data_we_have: participants data filled with initial or updated participant_stages\n", "\n", " Output: \n", " - estimate_means_std_df, just like means_stds_df, containing the estimated mean and std_dev for \n", " distribution of biomarker values when the biomarker is affected and not affected\n", "\n", " Note that, there is one bug we need to fix: Sometimes, data_full might have only one observation or no ob\n", " '''\n", " # empty list of dictionaries to store the estimates \n", " means_stds_estimate_dict_list = []\n", " \n", " for biomarker in biomarkers: \n", " dic = {'biomarker': biomarker} # Initialize dictionary outside the inner loop\n", " for affected in [True, False]:\n", " data_full = data_we_have[(data_we_have.biomarker == biomarker) & (\n", " data_we_have.affected == affected)]\n", " if len(data_full) > 1:\n", " data = data_full.measurement\n", " mu_estimate, std_estimate = estimate_params_exact(\n", " m0 = 0, n0 = 1, s0_sq = 1, v0 = 1, data=data)\n", " if affected:\n", " dic['theta_mean'] = mu_estimate\n", " dic['theta_std'] = std_estimate\n", " else:\n", " dic['phi_mean'] = mu_estimate\n", " dic['phi_std'] = std_estimate\n", " # If there is only one observation, resort to theta_phi_kmeans\n", " else:\n", " theta_phi_kmeans_biomarker_row = theta_phi_kmeans[theta_phi_kmeans.biomarker == biomarker]\n", " if affected:\n", " dic['theta_mean'] = theta_phi_kmeans_biomarker_row['theta_mean'][0]\n", " dic['theta_std'] = theta_phi_kmeans_biomarker_row['theta_std'][0]\n", " else:\n", " dic['phi_mean'] = theta_phi_kmeans_biomarker_row['phi_mean'][0]\n", " dic['phi_std'] = theta_phi_kmeans_biomarker_row['phi_std'][0]\n", " # print(f\"biomarker {biomarker} done!\")\n", " means_stds_estimate_dict_list.append(dic)\n", " estimate_means_stds_df = pd.DataFrame(means_stds_estimate_dict_list)\n", " return estimate_means_stds_df " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Randomized initilization\n", "\n", "A potential bug occurs here: suppose in one iteration, among `participant_stages`, there is only one participant whose stage is $10$. In this situation, biomarker FUS-FCI which corresponses to stage 10, has only one measurement for `affected==True`, and we cannot obtain the std of FUS-FCI. " ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num_stages" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "# initialize participant_stages \n", "# num_stages = 11 as earlier defined\n", "participant_stages = np.random.randint(low = 0, high = num_stages, size = len(participants))\n", "\n", "# this is what we already know\n", "participant_stages[non_diseased_participants] = 0" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "def count_10s(array):\n", " \"\"\"Count how many 10 are in an array\n", " \"\"\"\n", " return np.count_nonzero(array == 10)\n", "\n", "def df_contains_nan(df):\n", " \"\"\"check whether a dataframe contains nan \n", " \"\"\"\n", " return df.isnull().values.any()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "12" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "count_10s(actual_stages)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iteration 10 done\n", "iteration 20 done\n", "iteration 30 done\n", "iteration 40 done\n", "iteration 50 done\n", "iteration 60 done\n", "iteration 70 done\n", "iteration 80 done\n", "iteration 90 done\n", "iteration 100 done\n" ] } ], "source": [ "for i in range(num_iterations):\n", " # print(f\"Number of participants in stage 10: {count_10s(participant_stages)}\")\n", " # fill up data_we_have with the current participant_stages\n", " data_we_have = fill_up_data_we_have(data_we_have, participant_stages, participants)\n", " estimated_means_stds_df = get_estimated_means_stds_df(biomarkers, data_we_have, theta_phi_kmeans)\n", " # print(f\"There are nan values in estimated_means_stds_df: {df_contains_nan(estimated_means_stds_df)}\")\n", " for p in participants:\n", " # update participant_stages ONLY IF we do NOT know its k_j\n", " if p not in non_diseased_participants:\n", " p_data = data_we_have[data_we_have.participant == p].reset_index(drop=True)\n", " # initiaze stage_likelihood\n", " stage_likelihood = np.zeros(num_stages)\n", " # note that it should be [0, 10]\n", " for k in range(num_stages):\n", " # [0, 10] Note that k CAN be 0\n", " likelihood = compute_likelihood(p_data, k, theta_phi = estimated_means_stds_df)\n", " stage_likelihood[k] = likelihood\n", " likelihood_sum = np.sum(stage_likelihood)\n", " try:\n", " normalized_stage_likelihood = [l/likelihood_sum for l in stage_likelihood]\n", " except:\n", " print(stage_likelihood)\n", " sampled_stage = np.random.choice(np.arange(num_stages), p = normalized_stage_likelihood)\n", " participant_stages[p] = sampled_stage \n", " # print(i) \n", " if (i+1) % 10 == 0:\n", " print(f\"iteration {i + 1} done\")" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "# estimated_means_stds_df = get_estimated_means_stds_df(biomarkers, data_we_have)\n", "# estimated_means_stds_df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Result after gibbs sampling" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0wAAAIhCAYAAAB9gDqHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAACAWElEQVR4nO3dd3gU1f7H8c9sdrPpSwmhBQkQpKMUC6gU6djBCkpRvOpFBeyVYhfs3iuiKF5scP2JXkVpIlZUEAQFLCAETCgBAgkJ6Tu/P0JWQnbDbtjNbpL363l4Hnbm7Mz3zJw5O9/MzBnDNE1TAAAAAIByLMEOAAAAAABCFQkTAAAAAHhAwgQAAAAAHpAwAQAAAIAHJEwAAAAA4AEJEwAAAAB4QMIEAAAAAB6QMAEAAACAByRMAAAAAOABCRMQ4n744QddcsklOumkk2S329WwYUP16NFDt99+e8DWuXLlSk2dOlUHDx4sN++ll17SG2+8EbB1u9OnTx8ZhuH6FxkZqVNOOUXPPfecnE6nq9yYMWOUlJRUqXUEql4FBQW68cYb1bhxY4WFhenUU0/1WNY0Tc2bN0/nnHOOEhISFBERocTERA0aNEizZ892lTt8+LCmTp2qL774wu/x+ltKSkqZfWez2VS/fn2ddtppmjRpkjZu3FjuO1988YUMwyhXvxdffFHJyckKDw+XYRiu9vnAAw/opJNOktVqVZ06dQJfqRBXldtj6tSpZfbvsf9SUlICst4+ffqoY8eOlf5+UlJSmThjYmJ0xhlnaO7cuX6MsuK+tE+fPurTp4/Py0xKStKYMWNOODZ/CcZvAlDVrMEOAIBnn3zyiS688EL16dNH06dPV+PGjbVr1y79+OOPmjdvnp5++umArHflypWaNm2axowZU+6E66WXXlJ8fHyV/2C3bNlSb7/9tiQpPT1dL7/8siZNmqRdu3bpySefPOHlB6peM2fO1KxZs/Tiiy+qW7duiomJ8Vj23nvv1ZNPPqnrr79ed955p2JjY7V9+3Z9/vnn+t///qdx48ZJKkmYpk2bJkmVOuEKhltuuUUjRoyQ0+nUwYMH9dNPP+n111/Xiy++qMcff1x33nmnq2zXrl313XffqX379q5p69at06233qpx48Zp9OjRslqtio2N1f/+9z89+uijuv/++zVkyBDZ7fZgVC9kBGt7LF68WA6Ho9z0xo0bV8n6K+Oss87SU089JUlKTU3VU089pdGjRysnJ0c33XSTX9ZxvL60Mj744APFxcX5ITr/CNZvAlCVSJiAEDZ9+nS1aNFCS5YskdX69+F65ZVXavr06UGMzL9M01ReXp4iIyM9lomMjNSZZ57p+jxkyBC1bdtW//rXv/TII4/IZrNVRag+27BhgyIjI3XzzTdXWC43N1fPPfecRo0apVdeeaXMvDFjxpS5klYdnXTSSWX239ChQ3Xbbbdp2LBhuuuuu9SxY0cNGTJEkhQXF1emrCTXlajrr79ep59+umv6hg0bJEm33nqrEhIS/BLr4cOHFRUV5ZdlVbVgbY9u3bopPj7eL+urKnXq1CnTzvr376/mzZvrmWeeOeGEKTc3VxERERWWOfoPAr7o0qVLpb4HoPK4JQ8IYfv371d8fHyZZKmUxVL+8H3nnXfUo0cPxcTEKCYmRqeeeqpee+011/xly5bpoosuUmJioiIiIpScnKwbbrhB+/btc5WZOnWq66/9LVq0cN2y8sUXXygpKUkbN27Ul19+6Zp+9C1wWVlZuuOOO9SiRQuFh4eradOmmjhxonJycsrEaRiGbr75Zr388stq166d7Ha7/vOf//i0bWw2m7p166bDhw9r7969Hsvl5eXp3nvvLRPT+PHjy9wic7x6VXa5hmFo9uzZys3NdS3X060rOTk5ys/P9/gX+dL9nZKSogYNGkiSpk2b5lpu6V93t2zZorFjx6p169aKiopS06ZNdcEFF+iXX34pt8yNGzdq4MCBioqKUoMGDTR+/Hh98sknbm+H++yzz9SvXz/FxcUpKipKZ511lpYvX17hNjqeyMhIvfbaa7LZbJoxY4Zr+rG35PXp00dXX321JOmMM85w1TcpKUkPPPCAJKlhw4YyDENTp051LWf+/Pnq0aOHoqOjFRMTo0GDBumnn34qE8OYMWMUExOjX375RQMHDlRsbKz69esnqeR2ykceeURt27aV3W5XgwYNNHbs2HLtLSkpSeeff74WL16srl27KjIyUm3bttXrr79ers5paWn6xz/+oWbNmik8PFxNmjTRpZdeqj179rjKeHscHaui7eF0OjV9+nRXXRISEjRq1CilpqaWWUbprW5fffWVevbsqaioKF177bUVrtdb06ZN0xlnnKF69eopLi5OXbt21WuvvSbTNMuVPV5fVmr16tU655xzFBUVpZYtW+qJJ56o9B8X6tSpozZt2mj79u2SpB9//FFXXnmlkpKSFBkZqaSkJF111VWu+aXeeOMNGYahpUuX6tprr1WDBg0UFRWle++912NfKrm/JS8/P18PPfSQ2rVrp4iICNWvX199+/bVypUrXWWOvSWv9Hh56623dNttt6lRo0aKjIxU7969y7V3X+u0YsUK3XTTTYqPj1f9+vU1bNgw7dy5s0wsvvadQHXEFSYghPXo0UOzZ8/WrbfeqpEjR6pr164er6RMnjxZDz/8sIYNG6bbb79dDodDGzZsKPND+Oeff6pHjx4aN26cHA6HUlJS9Mwzz+jss8/WL7/8IpvNpnHjxikjI0MvvviiFixY4DqBb9++vT744ANdeumlcjgcrttJSm/5OXz4sHr37q3U1FTdd9996ty5szZu3KjJkyfrl19+0WeffSbDMFyxfPjhh/r66681efJkNWrUqFJ/Df/zzz9ltVpVt25dt/NN09TFF1+s5cuX695779U555yjn3/+WVOmTNF3332n7777Tna7vcJ6nchyv/vuOz388MNasWKFPv/8c0lSq1at3C4zPj5eycnJeumll5SQkKChQ4eqTZs2ZbaZVHKL0+LFizV48GBdd911rtv0SpOonTt3qn79+nriiSfUoEEDZWRk6D//+Y/OOOMM/fTTT2rTpo0kadeuXerdu7eio6M1c+ZMJSQk6N1333V7Jeytt97SqFGjdNFFF+k///mPbDabZs2apUGDBmnJkiWuBKMymjRpom7dumnlypUqKipy+8eBl156Se+++64eeeQRzZkzR23btlWDBg00YcIE/fvf/9Zrr73muiUsMTFRkvTYY4/pgQce0NixY/XAAw+ooKBAM2bM0DnnnKNVq1aV+et+QUGBLrzwQt1www265557VFRUJKfTqYsuukhff/217rrrLvXs2VPbt2/XlClT1KdPH/34449lroiuX79et99+u+655x41bNhQs2fP1nXXXafk5GT16tVLUkmydNppp6mwsNB1jOzfv19LlizRgQMH1LBhQ5+Po6N98MEHHrfHTTfdpFdeeUU333yzzj//fKWkpOjBBx/UF198obVr15a5OrRr1y5dffXVuuuuu/TYY4+5/ePMsYqLi1VUVFRmmmEYCgsLc31OSUnRDTfcoJNOOkmS9P333+uWW25RWlqaJk+e7CrnTV8mSbt379bIkSN1++23a8qUKfrggw907733qkmTJho1atRxYz5WYWGhtm/f7jqWUlJS1KZNG1155ZWqV6+edu3apZkzZ+q0007Tpk2byl1Ru/baa3XeeefpzTffVE5Ojrp3767Dhw+77UvdKSoq0pAhQ/T1119r4sSJOvfcc1VUVKTvv/9eO3bsUM+ePSuM/7777lPXrl01e/ZsZWZmaurUqerTp49++ukntWzZslJ1GjdunM477zy98847+uuvv3TnnXfq6quvdvVnvvadQLVlAghZ+/btM88++2xTkinJtNlsZs+ePc3HH3/cPHTokKvc1q1bzbCwMHPkyJFeL9vpdJqFhYXm9u3bTUnm//73P9e8GTNmmJLMbdu2lftehw4dzN69e5eb/vjjj5sWi8VcvXp1men/93//Z0oyP/30U9c0SabD4TAzMjK8irV3795mhw4dzMLCQrOwsNDcuXOnec8995iSzMsuu8xVbvTo0Wbz5s1dnxcvXmxKMqdPn15mefPnzzclma+88spx6+WOL8sdPXq0GR0d7dVyV61aZZ500kmu/R0bG2uef/755ty5c02n0+kqt3fvXlOSOWXKlOMus6ioyCwoKDBbt25tTpo0yTX9zjvvNA3DMDdu3Fim/KBBg0xJ5ooVK0zTNM2cnByzXr165gUXXFCmXHFxsXnKKaeYp59+eoXr37ZtmynJnDFjhscyV1xxhSnJ3LNnj2maprlixYoyMZimac6ZM8eUVK59TZkyxZRk7t271zVtx44dptVqNW+55ZYyZQ8dOmQ2atTIvPzyy13TRo8ebUoyX3/99TJl3333XVOS+f7775eZvnr1alOS+dJLL7mmNW/e3IyIiDC3b9/umpabm2vWq1fPvOGGG1zTrr32WtNms5mbNm3yuC18OY7ccbc9fv31V1OS+c9//rNM2R9++MGUZN53332uab179zYlmcuXL69wPceuz92/Vq1aefxecXGxWVhYaD700ENm/fr1Xe3b276sNM4ffvihzPT27dubgwYNOm7czZs3N4cOHerqU7Zt2+ZqC3feeafb7xQVFZnZ2dlmdHS0+fzzz7uml7bNUaNGlftORX1p7969y/Q5c+fONSWZr7766nFjHz16tOtz6fHStWvXMv1ESkqKabPZzHHjxnlc1vHqdGybmT59uinJ3LVrl2uaL30nUF1xSx4QwurXr6+vv/5aq1ev1hNPPKGLLrpIf/zxh+6991516tTJdSvdsmXLVFxcrPHjx1e4vPT0dN14441q1qyZrFarbDabmjdvLkn69ddfTyjWhQsXqmPHjjr11FNVVFTk+jdo0CC3t3ide+65Hq8MubNx40bZbDbZbDY1adJETz/9tEaOHKlXX33V43dK/wp67MPIl112maKjoyt9S1mglnvaaadpy5YtWrx4se677z716NFDy5cv16hRo3ThhRe6vXXpWEVFRXrsscfUvn17hYeHy2q1Kjw8XJs3by6zj7/88kt17Nix3F+7r7rqqjKfV65cqYyMDI0ePbrMfnU6nRo8eLBWr1593FvFjsebevliyZIlKioq0qhRo8rEHBERod69e7sdXXD48OFlPi9cuFB16tTRBRdcUGYZp556qho1alRuGaeeeqrryokkRURE6OSTTy5zVWTRokXq27ev2rVr5zF2X48jb6xYsUJS+fZ6+umnq127duXaa926dXXuuef6tI7PPvtMq1evLvPvww8/LFPm888/V//+/eVwOBQWFiabzabJkydr//79Sk9Pl+R9XyZJjRo1KvM8myR17ty53JUoTz799FNXn9KiRQv997//1S233KJHHnlEkpSdna27775bycnJslqtslqtiomJUU5Ojtv+8tg25KtFixYpIiKi0rdAjhgxoszVx+bNm6tnz56u/S/5XqcLL7ywzOfOnTtLktfbGKgpuCUPqAa6d++u7t27Syq5beTuu+/Ws88+q+nTp2v69OmuZypKb79xx+l0auDAgdq5c6cefPBBderUSdHR0XI6nTrzzDOVm5t7QjHu2bNHW7Zs8XjL4NHPSUm+j57VqlUrzZs3T4ZhKCIiQi1atDjug+j79++X1Wp13WJTyjAMNWrUSPv37/cphkAvVyp5NmvQoEEaNGiQa12XXnqpFi5cqEWLFmno0KEVfv+2227Tv//9b919993q3bu36tatK4vFonHjxpXZx/v371eLFi3Kfb9hw4ZlPpc+W3PppZd6XGdGRoaio6O9ruOxtm/fLrvdrnr16lV6GUcrjfm0005zO//YW8yioqLKjTq2Z88eHTx4UOHh4W6XcWx7rl+/frkydru9zDbfu3dvhcdo6Xp9OY68Udoe3R1zTZo0KXfyW5mR7U455ZQKB31YtWqVBg4cqD59+ujVV19VYmKiwsPD9eGHH+rRRx91bSdv+rJS3mzzipx99tl69tlnZRiGoqKi1KpVqzL7e8SIEVq+fLkefPBBnXbaaYqLi5NhGBo6dKjbdZzoiIB79+5VkyZNvLoF0p1GjRq5nbZ+/XrXZ1/rdOw2Lr3d7kR/L4DqhoQJqGZsNpumTJmiZ5991jUiVumJe2pqqpo1a+b2exs2bND69ev1xhtvaPTo0a7pW7Zs8Utc8fHxioyMdPuge+n8o3l6DsOTiIgIV9Lorfr166uoqEh79+4tk9yYpqndu3d7PKEO1nI9rWvixIn64osvtGHDhuMmTKXPGz322GNlpu/bt6/MsMb169cvM9BAqd27d5f5XLrfXnzxxXIj15U6NsnyRVpamtasWaPevXu7fX6pMkpj/r//+z/XFdSKuGuLpQ+5L1682O13YmNjfY6rQYMG5QZZcLdeX44jb5Se9O7atatcIrJz584TPja9MW/ePNlsNi1cuLDM6HHHXoXypi/zF4fD4bFPyczM1MKFCzVlyhTdc889run5+fnKyMhw+50T3W4NGjTQN998I6fTWamk6dhjt3Ra6f6vTJ0AlOCWPCCE7dq1y+300lsnmjRpIkkaOHCgwsLCNHPmTI/LKv0xP/aB3FmzZpUrW9FfET39Bff888/Xn3/+qfr167uuiB39LxgjJ5UORvDWW2+Vmf7+++8rJyenzGAFvvxl2pflequwsNDjlalj93dF+8cwjHL7+JNPPlFaWlqZab1799aGDRu0adOmMtPnzZtX5vNZZ52lOnXqaNOmTW73a/fu3T1ehTme3NxcjRs3TkVFRbrrrrsqtQx3Bg0aJKvVqj///NNjzMdz/vnna//+/SouLnb7/dLBM3wxZMgQrVixQr///nuF6/X3cVR6e92x7XX16tX69ddfT2jQDm8ZhiGr1VpmEIjc3Fy9+eabZcp505dVBcMwZJpmuWNp9uzZKi4u9no5vlyRGTJkiPLy8ir9Eth33323zO2t27dv18qVK10j8fmrTsfype8EqiuuMAEhbNCgQUpMTNQFF1ygtm3byul0at26dXr66acVExOjCRMmSCoZ2vW+++7Tww8/rNzcXF111VVyOBzatGmT9u3bp2nTpqlt27Zq1aqV7rnnHpmmqXr16unjjz/WsmXLyq23U6dOkqTnn39eo0ePls1mU5s2bRQbG6tOnTpp3rx5mj9/vlq2bKmIiAh16tRJEydO1Pvvv69evXpp0qRJ6ty5s5xOp3bs2KGlS5fq9ttv1xlnnFGl22/AgAEaNGiQ7r77bmVlZemss85yjWbXpUsXXXPNNWXq7K5eJ7pcb2VmZiopKUmXXXaZ+vfvr2bNmik7O1tffPGFnn/+ebVr107Dhg2TVHJ1o3nz5vrf//6nfv36qV69eoqPj3cNb/3GG2+obdu26ty5s9asWaMZM2aUu7IwceJEvf766xoyZIgeeughNWzYUO+8845+++03SX/fthYTE6MXX3xRo0ePVkZGhi699FIlJCRo7969Wr9+vfbu3evVye2OHTv0/fffy+l0KjMz0/Xi2u3bt+vpp5/WwIEDfd5mniQlJemhhx7S/fffr61bt2rw4MGqW7eu9uzZo1WrVik6Otr14l9PrrzySr399tsaOnSoJkyYoNNPP102m02pqalasWKFLrroIl1yySU+xfXQQw9p0aJF6tWrl+677z516tRJBw8e1OLFi3Xbbbepbdu2ATmO2rRpo3/84x968cUXZbFYNGTIENcoec2aNdOkSZN8Wp47a9ascfvi2vbt2ysuLk7nnXeennnmGY0YMUL/+Mc/tH//fj311FPlTt696cuqQlxcnHr16qUZM2a4jq0vv/xSr732WrkX0Fakor70WFdddZXmzJmjG2+8Ub///rv69u0rp9OpH374Qe3atdOVV15Z4brS09N1ySWX6Prrr1dmZqamTJmiiIgI3XvvvX6tk7s6ett3AtVW8MabAHA88+fPN0eMGGG2bt3ajImJMW02m3nSSSeZ11xzjduRtubOnWuedtppZkREhBkTE2N26dLFnDNnjmv+pk2bzAEDBpixsbFm3bp1zcsuu8zcsWOH2xHX7r33XrNJkyamxWIpM2JZSkqKOXDgQDM2NtaUVGZUuuzsbPOBBx4w27RpY4aHh5sOh8Ps1KmTOWnSJHP37t2ucpLM8ePHe70dSkfJO55jR8kzzZLRyu6++26zefPmps1mMxs3bmzedNNN5oEDB8qUq6he7ni7XG9HycvPzzefeuopc8iQIeZJJ51k2u12MyIiwmzXrp151113mfv37y9T/rPPPjO7dOli2u12U5Jr1KwDBw6Y1113nZmQkGBGRUWZZ599tvn111+XG5HLNE1zw4YNZv/+/c2IiAizXr165nXXXWf+5z//MSWZ69evL1P2yy+/NM877zyzXr16ps1mM5s2bWqed9555nvvvVdhvUpHySv9FxYWZtatW9fs1q2bOXHixHKj9JnmiY+SV+rDDz80+/bta8bFxZl2u91s3ry5eemll5qfffaZq0xF+6ewsNB86qmnzFNOOcV1TLVt29a84YYbzM2bN7vKNW/e3DzvvPPKfd/dNv/rr7/Ma6+91mzUqJFps9nMJk2amJdffrlrhEDT9P44csfT9iguLjaffPJJ8+STTzZtNpsZHx9vXn311eZff/1VLmZvjrVj1+fp37Jly1xlX3/9dbNNmzam3W43W7ZsaT7++OPma6+95nYUueP1ZZ7idNcHuONpnx0tNTXVHD58uFm3bl0zNjbWHDx4sLlhw4Zyo9R5apulPPWl7tpHbm6uOXnyZLN169ZmeHi4Wb9+ffPcc881V65cWSZ2d6Pkvfnmm+att95qNmjQwLTb7eY555xj/vjjj36tk7tj09e+E6iODNP08/BEAIBq6x//+Ifeffdd7d+/v9K32gGoOl988YX69u2r9957r8LBWQBUHrfkAUAt9dBDD6lJkyZq2bKlsrOztXDhQs2ePVsPPPAAyRIAAEeQMAFALWWz2TRjxgylpqaqqKhIrVu31jPPPON6Ng4AAEjckgcAAAAAHjCsOAAAAAB4QMIEAAAAAB6QMAEAAACAB7Vq0Aen06mdO3cqNjZWhmEEOxwAAAAAQWKapg4dOqQmTZq4XtjuTq1KmHbu3KlmzZoFOwwAAAAAIeKvv/5SYmKix/m1KmGKjY2VVLJR4uLighpLYWGhli5dqoEDB8pmswU1FlQftBtUFm0HlUG7QWXQblBZVd12srKy1KxZM1eO4EmtSphKb8OLi4sLiYQpKipKcXFxdCbwGu0GlUXbQWXQblAZtBtUVrDazvEe1WHQBwAAAADwgIQJAAAAADwgYQIAAAAAD0iYAAAAAMADEiYAAAAA8ICECQAAAAA8IGECAAAAAA9ImAAAAADAAxImAAAAAPCAhAkAAAAAPCBhAgAAAAAPSJgAAAAAwAMSJgAAAADwwBrsAACgOnI6TaXsz9GhvCLFRliVVD9aFosR7LAAAICfVauEKS0tTXfffbcWLVqk3NxcnXzyyXrttdfUrVu3YIcGoBbZkJap99emakt6tvILnbLbLEpOiNHwronq2NQR7PAAAIAfVZuE6cCBAzrrrLPUt29fLVq0SAkJCfrzzz9Vp06dYIcGoBbZkJapF5ZvVkZOgRo7IhXpCFNuQbF+Sc1U2oFc3dqvNUkTAAA1SLVJmJ588kk1a9ZMc+bMcU1LSkoKXkAAah2n09T7a1OVkVOg5IQYGUbJLXgxEVYl22O0JT1bC9amqX3jOG7PAwCghqg2CdNHH32kQYMG6bLLLtOXX36ppk2b6p///Keuv/56j9/Jz89Xfn6+63NWVpYkqbCwUIWFhQGPuSKl6w92HKheaDfBlbIvRyl7s5TosMtqmJLMv2caUqLDrm17M/XnnkwlxUcHLU53aDuoDNoNKoN2g8qq6rbj7XoM0zTN4xcLvoiICEnSbbfdpssuu0yrVq3SxIkTNWvWLI0aNcrtd6ZOnapp06aVm/7OO+8oKioqoPECAAAACF2HDx/WiBEjlJmZqbi4OI/lqk3CFB4eru7du2vlypWuabfeeqtWr16t7777zu133F1hatasmfbt21fhRqkKhYWFWrZsmQYMGCCbzRbUWFB90G6CK2Vfjh5b9KscEeGKiSh/gT47r0iZeQW6b0i7kLzCRNuBr2g3qAzaDSqrqttOVlaW4uPjj5swVZtb8ho3bqz27duXmdauXTu9//77Hr9jt9tlt9vLTbfZbCFzAIdSLKg+aDfB0aqhQ0kN4vRLaqaS7TbXM0ySZJqmUjPz1Tmxjlo1dITsM0y0HVQG7QaVQbtBZVVV2/F2HdXmxbVnnXWWfv/99zLT/vjjDzVv3jxIEQGobSwWQ8O7JqpedLi2pGcrO69IxU5T2XlF2pKerXrR4RrWtWnIJksAAMB31SZhmjRpkr7//ns99thj2rJli9555x298sorGj9+fLBDA1CLdGzq0K39WqtTokMHcwuUsi9HB3ML1DmxDkOKAwBQA1WbW/JOO+00ffDBB7r33nv10EMPqUWLFnruuec0cuTIYIcGoJbp2NSh9o3jlLI/R4fyihQbYVVS/WiuLAEAUANVm4RJks4//3ydf/75wQ4DAGSxGGrZICbYYQAAgACrNrfkAQAAAEBVI2ECAAAAAA9ImAAAAADAAxImAAAAAPCAhAkAAAAAPCBhAgAAAAAPSJgAAAAAwAMSJgAAAADwgIQJAAAAADwgYQIAAAAAD0iYAAAAAMADEiYAAAAA8ICECQAAAAA8IGECAAAAAA9ImAAAAADAAxImAAAAAPCAhAkAAAAAPCBhAgAAAAAPSJgAAAAAwAMSJgAAAADwgIQJAAAAADwgYQIAAAAAD0iYAAAAAMADEiYAAAAA8ICECQAAAAA8IGECAAAAAA9ImAAAAADAAxImAAAAAPCAhAkAAAAAPCBhAgAAAAAPSJgAAAAAwAMSJgAAAADwgIQJAAAAADwgYQIAAAAAD0iYAAAAAMADEiYAAAAA8ICECQAAAAA8IGECAAAAAA9ImAAAAADAAxImAAAAAPCAhAkAAAAAPCBhAgAAAAAPSJgAAAAAwAMSJgAAAADwgIQJAAAAADwgYQIAAAAAD0iYAAAAAMADEiYAAAAA8ICECQAAAAA8IGECAAAAAA9ImAAAAADAAxImAAAAAPCAhAkAAAAAPCBhAgAAAAAPSJgAAAAAwAMSJgAAAADwgIQJAAAAADwgYQIAAAAAD0iYAAAAAMADEiYAAAAA8MDqS+HMzEx98MEH+vrrr5WSkqLDhw+rQYMG6tKliwYNGqSePXsGKk4AAAAAqHJeXWHatWuXrr/+ejVu3FgPPfSQcnJydOqpp6pfv35KTEzUihUrNGDAALVv317z588PdMwAAAAAUCW8usJ0yimnaNSoUVq1apU6duzotkxubq4+/PBDPfPMM/rrr790xx13+DVQAAAAAKhqXiVMGzduVIMGDSosExkZqauuukpXXXWV9u7d65fgAAAAACCYvLol73jJ0omWBwAAAIBQVKlR8t58802dddZZatKkibZv3y5Jeu655/S///3Pr8EBAAAAQDD5nDDNnDlTt912m4YOHaqDBw+quLhYklSnTh0999xz/o4PAAAAAILG54TpxRdf1Kuvvqr7779fYWFhrundu3fXL7/84tfgAAAAACCYfE6Ytm3bpi5dupSbbrfblZOT45egAAAAACAU+JwwtWjRQuvWrSs3fdGiRWrfvr0/YgIAAACAkODVsOJHu/POOzV+/Hjl5eXJNE2tWrVK7777rh5//HHNnj07EDECAAAAQFD4nDCNHTtWRUVFuuuuu3T48GGNGDFCTZs21fPPP68rr7wyEDECAAAAQFD4nDBJ0vXXX6/rr79e+/btk9PpVEJCgr/jAgAAAICgq9R7mErFx8cHLVl6/PHHZRiGJk6cGJT1AwAAAKj5fL7C1KVLFxmGUW66YRiKiIhQcnKyxowZo759+/olQHdWr16tV155RZ07dw7YOgAAAADA5ytMgwcP1tatWxUdHa2+ffuqT58+iomJ0Z9//qnTTjtNu3btUv/+/fW///0vEPEqOztbI0eO1Kuvvqq6desGZB0AAAAAIFXiCtO+fft0++2368EHHywz/ZFHHtH27du1dOlSTZkyRQ8//LAuuugivwVaavz48TrvvPPUv39/PfLIIxWWzc/PV35+vutzVlaWJKmwsFCFhYV+j80XpesPdhyoXmg3qCzaDiqDdoPKoN2gsqq67Xi7HsM0TdOXBTscDq1Zs0bJycllpm/ZskXdunVTZmamfvvtN5122mk6dOiQL4s+rnnz5unRRx/V6tWrFRERoT59+ujUU0/Vc88957b81KlTNW3atHLT33nnHUVFRfk1NgAAAADVR+mI35mZmYqLi/NYzucrTBEREVq5cmW5hGnlypWKiIiQJDmdTtntdl8XXaG//vpLEyZM0NKlS13rOZ57771Xt912m+tzVlaWmjVrpoEDB1a4UapCYWGhli1bpgEDBshmswU1FlQftBtUFm0HlUG7QWXQblBZVd12Su8+Ox6fE6ZbbrlFN954o9asWaPTTjtNhmFo1apVmj17tu677z5J0pIlS9SlSxdfF12hNWvWKD09Xd26dXNNKy4u1ldffaV//etfys/PV1hYWJnv2O12t4mbzWYLmQM4lGJB9UG7QWXRdlAZtBtUBu0GlVVVbcfbdficMD3wwANq0aKF/vWvf+nNN9+UJLVp00avvvqqRowYIUm68cYbddNNN/m66Ar169dPv/zyS5lpY8eOVdu2bXX33XeXS5YAAAAA4ERV6sW1I0eO1MiRIz3Oj4yMrHRAnsTGxqpjx45lpkVHR6t+/frlpgMAAACAP5zQi2sBAAAAoCbz+QpTcXGxnn32Wf33v//Vjh07VFBQUGZ+RkaG34I7ni+++KLK1gUAAACg9vH5CtO0adP0zDPP6PLLL1dmZqZuu+02DRs2TBaLRVOnTg1AiAAAAAAQHD4nTG+//bZeffVV3XHHHbJarbrqqqs0e/ZsTZ48Wd9//30gYgQAAACAoPA5Ydq9e7c6deokSYqJiVFmZqYk6fzzz9cnn3zi3+gAAAAAIIh8TpgSExO1a9cuSVJycrKWLl0qSVq9erXfX1YLAAAAAMHkc8J0ySWXaPny5ZKkCRMm6MEHH1Tr1q01atQoXXvttX4PEAAAAACCxedR8p544gnX/y+99FI1a9ZM3377rZKTk3XhhRf6NTgAAAAACCafE6avvvpKPXv2lNVa8tUzzjhDZ5xxhoqKivTVV1+pV69efg8SAAAAAILB51vy+vbt6/ZdS5mZmerbt69fggIAAACAUOBzwmSapgzDKDd9//79io6O9ktQAAAAABAKvL4lb9iwYZIkwzA0ZsyYMiPiFRcX6+eff1bPnj39HyEAAAAABInXCZPD4ZBUcoUpNjZWkZGRrnnh4eE688wzdf311/s/QgAAAAAIEq8Tpjlz5kiSkpKSdMcdd3D7HQAAAIAaz+dR8qZMmVLm85dffqmcnBz16NFDdevW9VtgAAAAABBsXidMM2bMUHZ2tqZNmyap5Na8IUOGaOnSpZKkhIQELV++XB06dAhMpAAAAABQxbweJe/dd99V+/btXZ//7//+T1999ZW+/vpr7du3T927d3clUwAAAABQE3idMG3btk2dO3d2ff700081fPhwnXXWWapXr54eeOABfffddwEJEgAAAACCweuEqbCwsMxQ4t99912ZYcSbNGmiffv2+Tc6AAAAAAgirxOm5ORkffXVV5KkHTt26I8//lDv3r1d81NTU1W/fn3/RwgAAAAAQeL1oA833XSTbr75Zn399df6/vvv1aNHjzLPNH3++efq0qVLQIIEAAAAgGDwOmG64YYbZLVatXDhQvXq1avc8OI7d+7Utdde6/cAAQAAACBYfHoP03XXXafrrrvO7byXXnrJLwEBAAAAQKjw+hkmAAAAAKhtSJgAAAAAwAMSJgAAAADwgIQJAAAAADyodMK0ZcsWLVmyRLm5uZIk0zT9FhQAAAAAhAKfE6b9+/erf//+OvnkkzV06FDt2rVLkjRu3Djdfvvtfg8QAAAAAILF54Rp0qRJslqt2rFjh6KiolzTr7jiCi1evNivwQEAAABAMPn0HiZJWrp0qZYsWaLExMQy01u3bq3t27f7LTAAAAAACDafrzDl5OSUubJUat++fbLb7X4JCgAAAABCgc8JU69evTR37lzXZ8Mw5HQ6NWPGDPXt29evwQEAQpPTaWrr3myt/+ugtu7NltPJwD8AgJrJ51vyZsyYoT59+ujHH39UQUGB7rrrLm3cuFEZGRn69ttvAxEjACCEbEjL1PtrU7UlPVv5hU7ZbRYlJ8RoeNdEdWzqCHZ4AAD4lc9XmNq3b6+ff/5Zp59+ugYMGKCcnBwNGzZMP/30k1q1ahWIGAEAIWJDWqZeWL5Zv6Rmqk5kuJLio1UnMly/pJZM35CWGewQAQDwK5+vMElSo0aNNG3aNH/HAgAIYU6nqffXpiojp0DJCTEyDEOSFBNhVbI9RlvSs7VgbZraN46TxWIEOVoAAPzD54Tpq6++qnB+r169Kh0MACB0pezP0Zb0bDV2RLqSpVKGYaixI1Kb0w8pZX+OWjaICVKUAAD4l88JU58+fcpNO/qHs7i4+IQCAgCEpkN5RcovdCrSEeZ2fmR4mPZkOXUor6iKIwMAIHB8fobpwIEDZf6lp6dr8eLFOu2007R06dJAxAgACAGxEVbZbRblFrj/w1huQbHsNotiIyp1tzcAACHJ5181h6P8CEgDBgyQ3W7XpEmTtGbNGr8EBgAILUn1o5WcEKNfUjOVbI8pc3eBaZralZmrzol1lFQ/OohRAgDgXz5fYfKkQYMG+v333/21OABAiLFYDA3vmqh60eHakp6t7LwiFTtNZecVaUt6tupFh2tY16YM+AAAqFF8vsL0888/l/lsmqZ27dqlJ554QqeccorfAgMAhJ6OTR26tV9r13uY9mSVvIepc2IdDevalPcwAQBqHJ8TplNPPVWGYcg0y77V/cwzz9Trr7/ut8AAAKGpY1OH2jeOU8r+HB3KK1JshFVJ9aO5sgQAqJF8Tpi2bdtW5rPFYlGDBg0UERHht6AAAKHNYjEYOhwAUCv49AxTYWGhxowZo/z8fDVv3lzNmzdXs2bNSJYAAAAA1Eg+JUw2m00bNmwo98JCAAAAAKiJfB4lb9SoUXrttdcCEQsAAAAAhBSfn2EqKCjQ7NmztWzZMnXv3l3R0WXft/HMM8/4LTgAAAAACCavE6awsDDt2rVLGzZsUNeuXSVJf/zxR5ky3KoHAAAAoCbxOmEqHUZ8xYoVAQsGAAAAAEKJz88wAQAAAEBt4dMzTEuWLJHDUfFb3C+88MITCggAAAAAQoVPCdPo0aMrnG8YhoqLi08oIAAAAAAIFT7dkrd79245nU6P/0iWAAAAANQkXidMjIAHAAAAoLbxOmEqHSUPAAAAAGoLrxOm0aNHKzIyMpCxAAAAAEBI8XrQhzlz5gQyDgAAAAAIObyHCQAAAAA8IGECAAAAAA9ImAAAAADAgxNKmN59913l5OT4KxYAAAAACCknlDDdcMMN2rNnj79iAQAAAICQckIJE+9mAgAAAFCT8QwTAAAAAHhwQgnTokWL1LRpU3/FAgAAAAAhxesX17pz9tln+ysOAAAAAAg53JIHAAAAAB6QMAEAAACAByRMAAAAAODBCSVMeXl5/ooDAAAAAEKOzwmT0+nUww8/rKZNmyomJkZbt26VJD344IN67bXX/B4gAAAAAASLzwnTI488ojfeeEPTp09XeHi4a3qnTp00e/ZsvwYHAAAAAMHkc8I0d+5cvfLKKxo5cqTCwsJc0zt37qzffvvNr8EBAAAAQDD5/B6mtLQ0JScnl5vudDpVWFjol6DgX06nqZT9OTqUV6TYCKuS6kfLYjGCHRZQZTgGACD46ItRXfmcMHXo0EFff/21mjdvXmb6e++9py5duvgtsGM9/vjjWrBggX777TdFRkaqZ8+eevLJJ9WmTZuArbMm2JCWqffXpmpLerbyC52y2yxKTojR8K6J6tjUEezwgIDjGACA4KMvRnXmc8I0ZcoUXXPNNUpLS5PT6dSCBQv0+++/a+7cuVq4cGEgYpQkffnllxo/frxOO+00FRUV6f7779fAgQO1adMmRUdHB2y91dmGtEy9sHyzMnIK1NgRqUhHmHILivVLaqbSDuTq1n6t6aRQo3EMAEDw0RejuvM5Ybrgggs0f/58PfbYYzIMQ5MnT1bXrl318ccfa8CAAYGIUZK0ePHiMp/nzJmjhIQErVmzRr169QrYeqsrp9PU+2tTlZFToOSEGBlGySXvmAirku0x2pKerQVr09S+cRyXw1EjcQwAQPDRF6Mm8DlhkqRBgwZp0KBB/o7FJ5mZmZKkevXqeSyTn5+v/Px81+esrCxJUmFhYdCftypdf6DiSNmXo5S9WUp02GU1TEnm3zMNKdFh17a9mfpzT6aS4rlCV10Eut3UJBwDZdF2UBm0G1TG0e2Gvhi+qOo+x9v1GKZpmscvFlpM09RFF12kAwcO6Ouvv/ZYburUqZo2bVq56e+8846ioqICGSIAAACAEHb48GGNGDFCmZmZiouL81jO54Spbt26rsupZRZkGIqIiFBycrLGjBmjsWPH+h61l8aPH69PPvlE33zzjRITEz2Wc3eFqVmzZtq3b1+FG6UqFBYWatmyZRowYIBsNpvfl5+yL0ePLfpVjohwxUSUv5CYnVekzLwC3TekHX/RqUYC3W5qEo6Bsmg7qAzaDSrj6HaTlllAXwyvVXWfk5WVpfj4+OMmTD7fkjd58mQ9+uijGjJkiE4//XSZpqnVq1dr8eLFGj9+vLZt26abbrpJRUVFuv7660+oEu7ccsst+uijj/TVV19VmCxJkt1ul91uLzfdZrOFTMcfqFhaNXQoqUGcfknNVLLdVibJNU1TqZn56pxYR60aOrhnuBoKpTYcqjgG3KPtoDJoN6gMm82mVg0j6Yvhs6rqc7xdh88J0zfffKNHHnlEN954Y5nps2bN0tKlS/X++++rc+fOeuGFF/yaMJmmqVtuuUUffPCBvvjiC7Vo0cJvy66JLBZDw7smKu1ArrakZ5eMShNeMirNrsxc1YsO17CuTemcUGNxDABA8NEXoyaw+PqFJUuWqH///uWm9+vXT0uWLJEkDR06VFu3bj3x6I4yfvx4vfXWW3rnnXcUGxur3bt3a/fu3crNzfXremqSjk0durVfa3VKdOhgboFS9uXoYG6BOifWYQhP1AocAwAQfPTFqO58vsJUr149ffzxx5o0aVKZ6R9//LFrxLqcnBzFxsb6J8IjZs6cKUnq06dPmelz5szRmDFj/LqumqRjU4faN47jzdqotTgGACD46ItRnfmcMD344IO66aabtGLFCp1++ukyDEOrVq3Sp59+qpdfflmStGzZMvXu3duvgVbDwfxChsViqGWDmGCHAQQNxwAABB99MaornxOm66+/Xu3bt9e//vUvLViwQKZpqm3btvryyy/Vs2dPSdLtt9/u90ABAAAAoKpV6sW1Z511ls466yx/xwIAAAAAIaVSCVOp3Nzccm/IDfb7jQAAAADAX3weJe/w4cO6+eablZCQoJiYGNWtW7fMPwAAAACoKXxOmO688059/vnneumll2S32zV79mxNmzZNTZo00dy5cwMRIwAAAAAEhc+35H388ceaO3eu+vTpo2uvvVbnnHOOkpOT1bx5c7399tsaOXJkIOIEAAAAgCrn8xWmjIwMtWjRQlLJ80oZGRmSpLPPPltfffWVf6MDAAAAgCDyOWFq2bKlUlJSJEnt27fXf//7X0klV57q1Knjz9gAAAAAIKh8TpjGjh2r9evXS5Luvfde17NMkyZN0p133un3AAEAAAAgWHx+hmnSpEmu//ft21e//fabfvzxR7Vq1UqnnHKKX4MDAAAAgGDy+QrT3LlzlZ+f7/p80kknadiwYWrXrh2j5AEAAACoUSp1S15mZma56YcOHdLYsWP9EhQAAAAAhAKfEybTNGUYRrnpqampcjgcfgkKAAAAAEKB188wdenSRYZhyDAM9evXT1br318tLi7Wtm3bNHjw4IAECQAAAADB4HXCdPHFF0uS1q1bp0GDBikmJsY1Lzw8XElJSRo+fLjfAwQAAACAYPE6YZoyZYokKSkpSVdccYUiIiICFhQAAAAAhAKfhxUfPXq06/95eXmaP3++cnJyNGDAALVu3dqvwQEAAABAMHmdMN15550qKCjQ888/L0kqKCjQmWeeqU2bNikqKkp33XWXli1bph49egQsWAAAAACoSl6Pkrdo0SL169fP9fntt9/Wjh07tHnzZh04cECXXXaZHnnkkYAECQAAAADB4HXCtGPHDrVv3971eenSpbr00kvVvHlzGYahCRMm6KeffgpIkAAAAAAQDF4nTBaLRaZpuj5///33OvPMM12f69SpowMHDvg3OgAAAAAIIq8TprZt2+rjjz+WJG3cuFE7duxQ3759XfO3b9+uhg0b+j9CAAAAAAgSnwZ9uOqqq/TJJ59o48aNGjp0qFq0aOGa/+mnn+r0008PSJAAAAAAEAxeX2EaPny4Pv30U3Xu3FmTJk3S/Pnzy8yPiorSP//5T78HCAAAAADB4tN7mPr376/+/fu7nVf6YlsAAAAAqCm8vsIEAAAAALUNCRMAAAAAeEDCBAAAAAAekDABAAAAgAckTAAAAADggVej5HXp0kWGYXi1wLVr155QQKgZnE5TKftzdCivSLERViXVj5bF4l0bQvXAPva/UNumlY0n1OpRkeoUayDUhvrXhjqGEqfTVMq+HElSyr4ctWroCPj2DsQ+rg3tpjbU0V+8Spguvvhi1//z8vL00ksvqX379urRo4ck6fvvv9fGjRt5DxMkSRvSMvX+2lRtSc9WfqFTdptFyQkxGt41UR2bOoIdHvyAfex/obZNKxtPqNWjItUp1kCoDfWvDXUMJaXbO2Vvli6uLz226FclNYgL6PYOxD6uDe2mNtTRn7xKmI5+x9K4ceN066236uGHHy5X5q+//vJvdKh2NqRl6oXlm5WRU6DGjkhFOsKUW1CsX1IzlXYgV7f2a82BWM2xj/0v1LZpZeMJtXpUpDrFGgi1of61oY6h5OjtneiwS5IcEeEB3d6B2Me1od3Uhjr6m8/PML333nsaNWpUuelXX3213n//fb8EherJ6TT1/tpUZeQUKDkhRjERVoVZDMVEWJWcEKOMnAItWJsmp9MMdqioJPax/4XaNq1sPKFWj4pUp1gDoTbUvzbUMZS4296SArq9A7GPa0O7qQ11DASfE6bIyEh988035aZ/8803ioiI8EtQqJ5S9udoS3q2Gjsiyz3zZhiGGjsitTn9kFL25wQpQpwo9rH/hdo2rWw8oVaPilSnWAOhNtS/NtQxlARjewdinbWh3dSGOgaCV7fkHW3ixIm66aabtGbNGp155pmSSp5hev311zV58mS/B4jq41BekfILnYp0hLmdHxkepj1ZTh3KK6riyOAv7GP/C7VtWtl4Qq0eFalOsQaCb/W3V21wflLb93FVC8b2DsQ6a0O7qQ11DASfE6Z77rlHLVu21PPPP6933nlHktSuXTu98cYbuvzyy/0eIKqP2Air7DaLcguKXZfjj5ZbUCy7zaJYN/NQPbCP/S/Utmll4wm1elSkOsUaCLWh/rWhjqEkGNs7EOusDe2mNtQxECr1HqbLL79c3377rTIyMpSRkaFvv/2WZAlKqh+t5IQY7crMlWmWvffVNE3tysxV64RYJdWPDlKEOFHsY/8LtW1a2XhCrR4VqU6xBkJtqH9tqGMoCcb2DsQ6a0O7qQ11DIRKJUwHDx7U7Nmzdd999ykjI0NSyfuX0tLS/BocqheLxdDwromqFx2uLenZys4rUrHTVHZekbakZ6tedLiGdW3KGP/VGPvY/0Jtm1Y2nlCrR0WqU6yBUBvqXxvqGErcbW9JAd3egdjHtaHd1IY6BoJhHpteHsfPP/+s/v37y+FwKCUlRb///rtatmypBx98UNu3b9fcuXMDFesJy8rKksPhUGZmpuLi4oIaS2FhoT799FMNHTpUNpstqLH4m7ux/VsnxGpY16YMU3mCQqXdsI/9L9Db1Ne2U9l4qlPbqE6xBoI39Q+VPqeyavs+rmpl38OUrg/3J6hFA0dAt3cg9nFtaDehWseq7nO8zQ18vkHxtttu05gxYzR9+nTFxsa6pg8ZMkQjRoyoXLSoUTo2dah94zjeHl2DsY/9L9S2aWXjCbV6VKQ6xRoItaH+taGOoaR0e/+5J1ObVqXrviHt1KqhI6DbOxD7uDa0m9pQR3/yOWFavXq1Zs2aVW5606ZNtXv3br8EherPYjHUskFMsMNAALGP/S/Utmll4wm1elSkOsUaCLWh/rWhjqHEYjGUFB+tTZKS4qvmBDwQ+7g2tJvaUEd/8fkZpoiICGVlZZWb/vvvv6tBgwZ+CQoAAAAAQoHPCdNFF12khx56SIWFhZJKXnK1Y8cO3XPPPRo+fLjfAwQAAACAYPE5YXrqqae0d+9eJSQkKDc3V71791ZycrJiY2P16KOPBiJGAAAAAAgKn59hiouL0zfffKPPP/9ca9euldPpVNeuXdW/f/9AxAcAAAAAQeNzwjR37lxdccUVOvfcc3Xuuee6phcUFGjevHkaNWqUXwMEAAAAgGDx+Za8sWPHKjMzs9z0Q4cOaezYsX4JCgAAAABCgc8Jk2maMozyQ0SmpqbK4agZL/MCAAAAAMmHW/K6dOkiwzBkGIb69esnq/XvrxYXF2vbtm0aPHhwQIIEAAAAgGDwOmG6+OKLJUnr1q3ToEGDFBPz94uuwsPDlZSUxLDiAAAAAGoUrxOmKVOmSJKSkpJ0xRVXKCIiImBBAQAAAEAo8HmUvNGjRwciDgAAAAAIOT4nTMXFxXr22Wf13//+Vzt27FBBQUGZ+RkZGX4LDgAAAACCyedR8qZNm6ZnnnlGl19+uTIzM3Xbbbdp2LBhslgsmjp1agBCBAAAAIDg8Dlhevvtt/Xqq6/qjjvukNVq1VVXXaXZs2dr8uTJ+v777wMRIwAAAAAEhc8J0+7du9WpUydJUkxMjOsltueff74++eQT/0YHAAAAAEHkc8KUmJioXbt2SZKSk5O1dOlSSdLq1atlt9v9Gx0AAAAABJHPCdMll1yi5cuXS5ImTJigBx98UK1bt9aoUaN07bXX+j1AAAAAAAgWn0fJe+KJJ1z/v/TSS5WYmKiVK1cqOTlZF154oV+DAwAAAIBg8jlhOtaZZ56pM8880x+xAAAAAEBIqVTClJaWpm+//Vbp6elyOp1l5t16661+CQwAAAAAgs3nhGnOnDm68cYbFR4ervr168swDNc8wzBImAAAAADUGD4nTJMnT9bkyZN17733ymLxecwIAAAAAKg2fM54Dh8+rCuvvJJkCQAAAECN53PWc9111+m9994LRCwAAAAAEFJ8viXv8ccf1/nnn6/FixerU6dOstlsZeY/88wzfgsOAAAAAILJ54Tpscce05IlS9SmTRtJKjfoAwAAAADUFD4nTM8884xef/11jRkzJgDhAAAAAEDo8PkZJrvdrrPOOisQsQAAAABASPE5YZowYYJefPHFQMQCAAAAACHF51vyVq1apc8//1wLFy5Uhw4dyg36sGDBAr8FBwAAAADB5HPCVKdOHQ0bNiwQsdQaTqeplH05kqSUfTlq1dAhi8X4e97+HB3KK1JshFVJ9aNd8wIaj4d1VnZeVa/veLEEY53+3hcn8r2asI+Dse0CtT8q40T2cXURqGM8GPFU5TIDGmsI/VYdN9YQ2h+VjbOqf6tC6fcvUOsMRj0qG08orS/UfquDzeeEac6cOYGIw2svvfSSZsyYoV27dqlDhw567rnndM455wQ1Jl9sSMvU+2tTlbI3SxfXlx5b9KuSGsRpeNdESdL7a1O1JT1b+YVO2W0WJSfEaHjXRHVs6ghoPO7WWVE8lY01EOs7XizBWKe/90Vlt2mg6l/V+/h42zQQ2y4Q9Q9U2wjEOqvaieyLqt7mx4unKpcZ6FhD5beqIqF0/J9InFX9WxWIeSey/6vTMReIOgZinaF2bFTn3yrDNE0z2EF4a/78+brmmmv00ksv6ayzztKsWbM0e/Zsbdq0SSeddNJxv5+VlSWHw6HMzEzFxcVVQcRlbUjL1AvLNysjp0CJDrv6RqdqRU6iUjPzZbUYkiEVFZtq7IhUZHiYcguKtSszV/Wiw3Vrv9Z+b0xHx3PsOiuKp7KxBmJ9x4vlvM6N9cnPu6p0nZXZVxVtm6OXWVhYqE8//VRDhw6VzWY77vcCUf+q3sfH26bebjt/xVrZZQaqbVS0jytqO6HkRPaFt/Wvqniqsr1VRayh8FtVkVA6/k8kzqr+rQr075+v/U11OuYqKxC/D4FYXzD6qmD+VnmbG3h1halr165avny56tatqy5dulT4vqW1a9f6Hq2XnnnmGV133XUaN26cJOm5557TkiVLNHPmTD3++OPeLygnRwoLKz89LEyKiChbzhOLRYqM9Lqs0x6h99emKiOnQO0cYbKqUGF5eaqrQsXEWvTV5r0yJPU6uYGKIkp2S0yEVe0Upq3pmfp45Wa1H9y27GVLw5Ciov7+nJsrOZ2e44iOdv3XmXNYH638QzkZWWrXIFqGCqQCKUKSI9aipduzZUjq26aBbEWFMgoKXPNcsbZuIEMFKrREKSbCqmR7jLan7Xcbq9Np6qOVfygju0DJDWNlGIbCCgsUoSK3y1SBFGaPVKsG0Vrx+16FFxWob6t65eIs/V7PDomStWS7OcJM1Ymz6M/0g3pjaYaiwsPK1NEaHqGoI8u1FRXq3FZ1PS+3fVPJ9vdyPcUaISmmfqQ278/VgrVpah8fKUtRoed9Ybe74nXmF3jcF3XiLPr9wOGSZTaOk4qKFJaXJ+XkyBlmLfe9YqdNYRE2Jdtj9OfOA3pj6cZy9S+t4/KtB+UMs6pvmwaymKasBbke97Gz+O/lbt3tvj2W7uOszMNKblJXhmHIcDpVVwUet1t4mM21LyxOpwa0iCtX/617j6zv/I6yRB45Pk1TOnzYtc5jt114mFXRCTHakp6tBWtS1T4uzG2sORlZatswTsX2v4+5tk7P+9hRx6bfDha49ocl97DbZbZrEC0ZRSqyWF3Hxl9/7XV/HEvl+5PDhyXTdF+/QkNhEZFKtsdo855DemPZJkXZLG7bzp/7sv5uO5Is+fklfZWnH6Gj+ghf+hPl5UnFxZUqe2wdi+xhkmEoJsKqkw2bvvltt9t9USfOok0H8zTry62KCg9Tm7rhCnN6aDuD28oSHVWynSWpoEAqdH98Op2m3v9xhzJyCpScECNrUZEsFRwbRabdtY9Tdh6o8Ng4eChPyY0cMgxDlqJCRajQ47Fhs4W72vCHq1LUvn+rcu3GtdysXCU3rlOy3OIiRVRwzNmsNtdyP1i9Xe3jWno8Nk5uXEeWI/1frM1Q2wr6v7i6dv1+IL+kvSVEy1KQ77k92GxSeHjpCkvaWiXKHtt2zDCnikuPufBo/ZW6z+P++PCHra59bEiy5Xvex2ZRmMIi7Eq2l2w3j8ex5PY8wlM/ZTcsik4oOY5nfblVdc0Ct331V5v3SoZFPTsmyjjShusanttOhGG4+lVD0sCkGI+/cceec7Qxw/T1H+nu+79jzw0KC1znBscebyouKrtdKugjnE7TdX6UnBBTZrluzzmMyL+PubQMv51zWMMj/j7mftim9gOSPd8qFhnpVX8iSYqIkNOw6P21qcrKzFG7enbPv3MXn+o65lRYWLJsT446jzi27LFtzmmTnJYj/ao1Qtsr6Ks+WLXNtS/CnMUKq6D/O/qcw9O5gWu5P/y9XIvT6TrncNd2jKO35wn0EeVYrSXbTXKdR1R4/n70V70pdNFFF8l+ZAUXXXRRUF5QW1BQoDVr1uiee+4pM33gwIFauXKl2+/k5+crP//vTjsrK6vkP02auC3vHDJExf/7n+uzNSFBxuHD7sv26qXizz77u2xSkox9+9yX7dZNf378mVL2ZinRYddtEy9Q3b27JEnnH1N2V9MW+vcLH7g+33z3CDVM3ep2uWbz5iravNn1Oeycc2RZs8Z92fh4Fe3c6fpcOGCg7vvuW7dl8+0R+nxyyXbILSjU2Kcnqc3ab9yWlaQH3l9X8h9DuvvtR3XqquXlylgk3Sfprte+ltUwJZka9vI0df3iY4/Lfez1z7U7PFZWw6lJi17W8B88l5323P9U2Ky5JGnQO8/rnI/meiz7wrP/py0NmstqOHXtV+/ouqlveSz79ENv6ECHUyVJZ3/ypga/+ZzHsq9Ne1W5yV20bW+m9j39vBLuv8tj2aIPP5Q5dKgkaf/M2bpv0niPZefc+oS+iuqlP/dk6qTlC3X+Nde45t13TNn3x0/TT+deJBnSOX+u0a3P3+5xuXUuGK8FZ16o3IJCdd6yTtdNud5j2cXXTNQ3F4+RDOmMjG26/ebR5cqU7uPFw67XNyPHSzKVkLpFt0661ONyv75wlN67/BZZDacaZe3Ww9cM8lj24OjrFP3qzJIPe/fK1rSpa53HWtvnAi245WElOuxKS9sjS1xHt7FK0oYe/TXvjqdc8x65pofHGH7verZm3v6ctu3N1J97MpWc3NTVRxwby7YO3fTaQ6+VfDCkWZMvVcyhg26X6+zWTcXffef6bG3fXsb27W7rtyexpV58foFkSPUirbp36ji13LvD7XIz4hvr9iff1597MtXUEa6z779ftiuucFv22D4ibPBgWb76yn3ZqCgVHfy7LmHDhsmyaJHbspJUeNQPedjIkbIcNTjQsXWc9vZ3KowoSR4vmDlNj339icflTnpukVYeMtS0qUMX/GeGzlz8X88x/PGHlJRUss5771XYM8+4LWeRVPDQW0ps1VZWw9S5C17Ruf+d5XG5M598S2nJHSVDuuq7Bbro3RfcLvM+Sf+6/2XtbnymJFNnLHtPF8x+wuNy5973gv7o1kuJDrsaffyeLMMe9bjcObc+oT+bDJZkqsMPn+mqpz33PaV9RKLDrpgVS2W55E63y5Skj8fdo9VDLpcktfh1ja6d8g+Py118zUTlDL5a2/ZmKvWzr3TS0H4eyxY/8ICckyeXfNi4UbYuXTyXve02OZ84sp1SUmQ7+WS3sUrS94Mv18LrS6ZEHcrQ25P6u12mRVKfnkO1b/xDshqmbHm5mjLS83Hv6iMMKdFh172Xd/dY1t15hOXwYbf9VGkfUS/Sqp8zDmr+k1cqNvug2+X+2vRkvTz9bcVGlPyxY9KEi13nEcfak9hSjz4xX1aj5A8e/7x7hBqnbXNbdn98Yz076+9j9/oHx+rRbb+6LZsdW0ef3zNfUsm5wQ2P3aQWG92fcxhRUdI776jwyIlvRX2ERVLKayuV6LDLapi64oV71fG7z9yWlY7qIwzptv97Wqd/vdDtMu+TdP/MZTKMGEmmzn9jeoV9xFMzP9HBhKZKdNjV7ZUZsgx/x2PZwp9+kjp0KFnXww8r7JFHPJYtWrlS25LaKWVvlsc+olTq/32shheW/A5aZs5U2IQJnpd71HmEMXeurEcuJkjlj413b5+ujT0HSpI6rFquxzz0ERZJjcfer/39L5HVMHXyum806rFbPcbw8bh79MOQKyVD6rVrk26++UaPyz35svHaf/FYWQ1TTbdt1E13X+257BVXqPBI3U6kjyhX9sYb5XzhyPY/ch7hLa8SpilTprj+P3XqVK8X7k/79u1TcXGxGjZsWGZ6w4YNtXv3brffefzxxzVt2jSv15Genq4fPv3U9fm84mKPGyhj/359e1TZwQUFsnsom5mZqU2rvtTF9Us+21XkoaQUbSnSaWEprs+Rhue/WuQePqxlR8XQKzNTdT2ULSgo0OKjyp6VdVBRHsqGydTdHUoz9DQ5jAqydalMvA2sFZftFZ2m4rCSv77FG9kVlu0S9pcKYhzq10Hq/I3nbSZJPSJ3Kzes5O7SRpasCst2DNup5jFW9esgtfm5gr8KSeoeuVcHj9SvmeVAhWXbWHYrPjpVipZ2/7BFCRWU/fHHH7XnyP+bbf1NjSqK175f9eqna9OqdB38+WedVkHZFpZ9sh6Jt2FsxfEObFyo1h1yJaWpvsX9MVSqmeWAaz/XiUyvsGySLUv5R8rGhu2ssGwjS5b6xaSpXwcpck9ehWUPpO/Ul0facHhmpoZUUDbeyC6JN1oKC6t4uXWNw2XacEUcRq76HtnHm1alq0UFfUSs8sos12Z4vlqTmZmpr446PgccPuzx+Iw0Cv9ebj0pPsLzXdURRpEuPtJ2Nknq5bGkmz5i/37FeyhbXFysT48qe0Z6eoVt+Oiy3XfvVkU/Ud3Ctrv6iMZW93+wKjWwbrr6JDkk5amhcajCsitWrFDukd+P9lu3qnUFZfvVydCh6FRJUhPjYIXLbW/ZpSZhMZKk5PDMCsueGrFX+4/su+aWjArLnmxJl+NIG24Wc5w+zb5f9Y4st4llb4VlXX1EtNQwruJ4m1sy5AzbcSSePRWWbWY54Do2tm3crIpukt+8ebN+P9ImYnfs0LkVlN26das2HSkbuWePBlZQtqFxyHVshIdVXLeT7EeOZfnYR0RXWNSn8whXH1FPOr+eFG7x3Ec0inTq3Og01+eKziMijUJXvyqVnFd4Llv2nCMuzPNvos1wljk3iJXn7VZ85GrSsmXLJB2/j7i4/t+/K3WNio/7o/uIRtaKrw6cHbVTBWElZY7XR3S2pCo3rFCKlpIjK47h66+/1qHt2yVJbTZvVtsKyn777bc6mJ6ui+sfv49I+XWd1lhLtl2LjRvVuYKyZc4j1q9X1wrKJlv2KsrLPqJrTJYaHDk2Gloq/r0v6SNKlls/ouLldozKVsSR5daxuE/2j1badvzZR+zYvl0/e3kecSyfn2Fq2bKlVq9erfr165eZfvDgQXXt2lVbt7q/GnKidu7cqaZNm2rlypXq0ePvvwQ9+uijevPNN/Xbb7+V+467K0zNmjXTvu3b3d+nGMBb8lJynHps0a9yRISrrlEoi+lUl7C/9FNxM2XmFmvtXyUnt12b11OEI9b1VVt+rnJyi5SZX6A7B7ZR8/pH9dYncEve9r/2acaSX+Wwhys6omx3fii3UCv3lHSKpyXVU12LU8aR5R7KLXTF2u2kuoqJsLn+GixJeVk5OpSbVy7W7ftzNGPp74qMi1NMZMlfyMIKC2QpLna7TEkqtEcoK69IP27PkK2oQKcnOlzzjo2lc3IjxUTZjyy3UJbiIqVn5WnDzkx1bBKnhLi/YywKtyszv1g/bs+QtahQZyTGVbDchoqJinAtNyc7122sklRkC9ehQlOZeQW6r3+ykuIquPf2qEvpKbsO6qlPfnG7LyQps9jQgUKn7hvSTk2jLfp80SKde+652plVoBlLfy/zvWKrVU5ryXr3ZmTrtx37ytW/tI4/7Dyk4jCrTkuqpzibRdbCgnL1L62jM8yq4iO3ceUcztfhQ9ke93FMdJQiY0rWZzidshbke9zHzjCrDhRJP27PkOF0qmeT6DLbVJJy8o60/yEd1LxpvZKJRy6ll67z2G3nDAtTsS1c2XlFyszN1/19mruN1WEPV1RUuIrC//5zR96BLI/72LRYdNAZVrKPh7RT0lGb9dhYTMNQkf3v/qTg4CH3x7Hk8ZY8t/UzpEJ7Sdk9mXn6fdtudXKzjyUpO79Y+0xLSdtxhGv5woXq17ev5/vCg3BL3rF1LLRHlPRtkg5n5WhdSsmV+2P3hSSl5kk/78xU56YONYkKk+WYGFxtZ2AbNU+M9+oWmu37c/TYihTFRUUoJsLq6k8k98dGkS1c5pFbvHOzc5Wdc9jjsREVG6PoI/2UpahQYUVFHo+NYlvJcZedV6Ts7MO6p1/Lcu2mdLnRMdGKii5pa5biIoUVFnpe7pE+IjuvSIdyDuvec1t6PDYiYiIka5i6he3Q2oKmysny3P85w6zKLDZKjo2BJyspxs1t76X8dEvesW2n9LiXJJmmCjKz3R5z2/fn6MnPtig6NkYxEVbJNGXLLzn5d7fdTIvF1Udk5xUpNzPT/XEsuT2P8NRPlfYRezLz9HPaQXWPD3fbV6/964CchqFTWjd2XWGy5efq0GH3+1iGtN9p1Y/bS5Lyno2jFGu3llumVP6cIzfzkH468r1j93G5cwOjWMZRp5BHH29N4sK1bOVKDRgwoKS/qaCP2L4/R49+uUOOiHDFRFhlLciv+JzjqD4i99BhZR/O9cs5R1G4XabFcuSYy9E9/Vq538eSz7fkpRzI02OLflU9q6E4Nxl06ba744JTlNTwyPnpCdySd2ybK+1PpJI+Iu9Qrsdj44nlWxUTU/KoRWl/IrnfF0efc3g6N/h7uX8qJiZaMRFWGcXFrnOOo+tf2nY++/JL9S99hinAt+RlZWUpvnlz/zzDdLSUlBTXXw6Olp+fr9TUVF8X57X4+HiFhYWVu5qUnp5e7qpTKbvd7rqV8Gi2OnVk82bQhzp1vA/wOGVbxZhKahCnX1IzFZEQI6thqjgsQvnF0QoLl7J358uQZI2NVfFR7xMuCo/S1oPZ6pzYSC1bNKl46EUfHo5rmdRITRIz9EtqppIdUWVuswwLd6roSDyR4TblWyxl5pXGGhYXp7yj5pmmqZRcuY21ZZxDTRIPlqwvIlyGYajYFiHZKl5mpN1QkWlRcVhEuXlHfy8iwu7absU2u0xruHY7ixVdv572mGGKtZetY6TdcmS59uMsN6LMcsMctgrrn5qZrc6JddQqMd7rYTJbJcarSWJDt/vCNE3tSD+yzIYOFRcXqTgiQrY6ddSyvvXvberme/sK5LH+YeFO5e/Ol2GW7OMii0VFYTav9vFfh4qOv4+jjZL1WSwqirBWvI/DnCoyLTIMi9v1bc080v5PSii7TcPDy67TzTZIzcxX58Q6FcfqiJCho7aNI67ifXzU/vC8zPKxbM23eHccS5LD4dUyM3KLFONhH5umqW2Z2eqc6HC1HafdXtL/edNX+PKw7QmUraiOtphoZdsOe9wXGQcPqX5slA7kOVU/LkqG7Zhtnumh76wg3pZxDjXfdCQeu03FNrtkO/LHmOMcG9tznMc/NiIjSvo/q12FVvtxl1nShuu7bTdllhtVcswVh4WrMCy80sstuz/CZVXJCXFxmO34/V/GkWOjST3fhgl28zvtTdkKjw95PuZaxjmU2OTvfWwYFhVHlJzgebfdvDyOJalOHa+O4/qxUR776uyjfo9dv0f2aIXZKuhXnUf6VZWcV3j6jTv2nMMaG6tsW57bZZY/N/h7Xxx7vBUf+SODzWYr6W+Oc8wlHX3Mhf+dNB73mDts+vWc4+99HO/9Pvai/2vV0O46B0xOiCn/+3Bk25U5dmy2sn8UP14MR5WtqM0VWWzamu++HbeMc6hZ46OOjSP9iVT5cwP3y7W5zjnctR3zSLtx/VZVso84rvBw2Y6qR0W8Tpg++ugj1/+XLFkih+PvUTCKi4u1fPlytWjRwvsgfRQeHq5u3bpp2bJluuSSS1zTly1bposuuihg6/UXi8XQ8K6JSjuQqy3p2Up02KXokr9WpWbmq2V8tGRIW/bmuB09ZFjXpn4dp/7YeI5dZ0XxVCbWQK2vonn1Y+yukYeqap2V2VfH2zZHL/Pov1Uc73uBqn9V7+OKtqkv285fsVZ2mYFoG8fbx57aTig5kX3hS/2rIp6qbG9VFWuwf6sqEkrH/4nEGYzfqkD//vnS31SnY66yAvH7EIj1Bauvqg6/VV7fkmc5koEZhqFjv2Kz2ZSUlKSnn35a559/7DAG/lM6rPjLL7+sHj166JVXXtGrr76qjRs3qnnz5sf9frCHFZeOfbdFuj7cn6AWDRwa1rXkrv5jx6dvnRCrYV2bVuk7AUrXWVE8lY01EOs7XizBWKe/90XpMt0Nt3m879WEfVyZdzsEMtbKLjNQbaOybSeUnMi+qOptfrx4qnKZgY41VH6rKhJKx/+JxFnVv1WBmHci/U11OuYqKxB9VSDWF4y+Kli/Vd7mBj4/w9SiRQutXr1a8fGeHgcOrJdeeknTp0/Xrl271LFjRz377LPq1auiR5n/FgoJk1QyvOKfe0oGgmh/eu+gvz29qt/0HYy3jleXN50fb5meOpJg1L+y9Qi1t4dXdf0r60T2sRT6CZMUuGM8GPFU5TIDGWso/VYdL9ZQ2h+VjbOqf6sC1VdXtr+pTsdcZVX1OkNtu4Xab1XAEiZ3Dh48qDq+PO8TJKGSMEnV4+QFoYd2g8qi7aAyaDeoDNoNKitUEybvnnQ6ypNPPqn58+e7Pl922WWqV6+emjZtqvXr11cuWgAAAAAIQT4nTLNmzVKzZs0klQy48Nlnn2nx4sUaMmSI7rzzzuN8GwAAAACqD5+HFd+1a5crYVq4cKEuv/xyDRw4UElJSTrjjDP8HiAAAAAABIvPV5jq1q2rv/76S5K0ePFi9e/fX1LJOOru3s8EAAAAANWVz1eYhg0bphEjRqh169bav3+/hgwZIklat26dkpOT/R4gAAAAAASLzwnTs88+q6SkJP3111+aPn26YmJiJJXcqvfPf/7T7wECAAAAQLD4nDDZbDbdcccd5aZPnDjRH/EAAAAAQMjw+hmmf/7zn8rOznZ9fvPNN8t8PnjwoIYOHerf6AAAAAAgiLxOmGbNmqXDhw+7Po8fP17p6emuz/n5+VqyZIl/owMAAACAIPI6YTJNs8LPAAAAAFDT+DysOAAAAADUFiRMAAAAAOCBT6PkTZ48WVFRUZKkgoICPfroo3I4HJJU5vkmAAAAAKgJvE6YevXqpd9//931uWfPntq6dWu5MgAAAABQU3idMH3xxRcBDAMAAAAAQg/PMAEAAACAB14lTE888YRycnK8WuAPP/ygTz755ISCAgAAAIBQ4FXCtGnTJjVv3lw33XSTFi1apL1797rmFRUV6eeff9ZLL72knj176sorr1RcXFzAAgYAAACAquLVM0xz587Vzz//rH//+98aOXKkMjMzFRYWJrvd7hodr0uXLvrHP/6h0aNHy263BzRoAAAAAKgKXg/60LlzZ82aNUsvv/yyfv75Z6WkpCg3N1fx8fE69dRTFR8fH8g4AQAAAKDK+fQeJkkyDEOnnHKKTjnllEDEAwAAAAAhg1HyAAAAAMADEiYAAAAA8ICECQAAAAA8IGECAAAAAA8qnTBt2bJFS5YsUW5uriTJNE2/BQUAAAAAocDnhGn//v3q37+/Tj75ZA0dOlS7du2SJI0bN06333673wMEAAAAgGDxOWGaNGmSrFarduzYoaioKNf0K664QosXL/ZrcAAAAAAQTD6/h2np0qVasmSJEhMTy0xv3bq1tm/f7rfAAAAAACDYfL7ClJOTU+bKUql9+/bJbrf7JSgAAAAACAU+X2Hq1auX5s6dq4cffliSZBiGnE6nZsyYob59+/o9QPzN6TSVsj9Hh/KKFBthVVL9aFksRrDDgo/YjwglVd0eg9H+a0oda0LfUVEdjle/6lL/6hInQk9lj49QanOhFIs/+ZwwzZgxQ3369NGPP/6ogoIC3XXXXdq4caMyMjL07bffBiJGSNqQlqn316ZqS3q28gudstssSk6I0fCuierY1BHs8OAl9iNCSVW3x2C0/5pSx5rQd1RUB0kV1q+61L+6xInQU9njo6J5Vd3manL79zlhat++vX7++WfNnDlTYWFhysnJ0bBhwzR+/Hg1btw4EDHWehvSMvXC8s3KyClQY0ekIh1hyi0o1i+pmUo7kKtb+7Wu9g2xNmA/IpRUdXsMRvuvKXWsCX1HRXX4dWeWZEhFxabb+p3XubE++XlXyNe/JuwnBEdlj4/jHTtV2eZqevv3OWGSpEaNGmnatGn+jgVuOJ2m3l+bqoycAiUnxMgwSi5rxkRYlWyP0Zb0bC1Ym6b2jeNqxCXPmor9iFBS1e0xGO2/ptSxJvQdFdWhVXi0Vvy+V4akvm0ayLBYXPOS7THavOeQZn25VVHhYSFd/5qwnxAclT0+jnfsVGWbqw3t3+dBH+bMmaP33nuv3PT33ntP//nPf/wSFP6Wsj9HW9Kz1dgR6WqApQzDUGNHpDanH1LK/pwgRQhvsB8RSqq6PQaj/deUOtaEvqOiOmTnF8tpmio2TWUXFJeZZxiG4iLDtTMzV7ER1pCuf03YTwiOyh4fxzt2qrLN1Yb273PC9MQTTyg+Pr7c9ISEBD322GN+CQp/O5RXpPxCpyLDw9zOjwwPU36hU4fyiqo4MviC/YhQUtXtMRjtv6bUsSb0HRXVobDYWfIfUyoscpabH2Ypud3Iarj/q3So1L8m7CcER2WPj+MdO1XZ5mpD+/c5Ydq+fbtatGhRbnrz5s21Y8cOvwSFv8VGWGW3WZR7zF8PSuUWFMtusyg2olJ3V6KKsB8RSqq6PQaj/deUOtaEvqOiOtjCjpyGGJLNWv6UpNgpWcMMFZmm22WHSv1rwn5CcFT2+DjesVOVba42tH+fE6aEhAT9/PPP5aavX79e9evX90tQ+FtS/WglJ8RoV2auzGN+MEzT1K7MXLVOiFVS/eggRQhvsB8RSqq6PQaj/deUOtaEvqOiOsTYw2QxDIUZhmKO+eu0aZrKyi1QE0ekDuUVhXT9a8J+QnBU9vg43rFTlW2uNrR/nxOmK6+8UrfeeqtWrFih4uJiFRcX6/PPP9eECRN05ZVXBiLGWs1iMTS8a6LqRYdrS3q2svOKVOw0lZ1XpC3p2aoXHa5hXZtW24foagv2I0JJVbfHYLT/mlLHmtB3VFSHP/fmqGV8tFo0iNaWvTnl6lc/xq4bercM+frXhP2E4Kjs8XG8Y6cq21xtaP8+Xxt75JFHtH37dvXr109Wa8nXnU6nRo0axTNMAdKxqUO39mvtGtt+T1bJ2PadE+toWNem1XqYxtqE/YhQUtXtMRjtv6bUsSb0Hcerg6QK69eqQUzI178m7CcEx4kcHxXNq8o2V9Pbv88JU3h4uObPn6+HH35Y69evV2RkpDp16qTmzZsHIj4c0bGpQ+0bx9XItyfXJuxHhJKqbo/BaP81pY41oe84Xh0qmldd6l9d4kToOZHjI1TaXE1u/5V++urkk0/WySef7M9YcBwWi6GWDWKCHQZOEPsRoaSq22Mw2n9NqWNN6DsqqsPx6ldd6l9d4kToqezxEUptLpRi8SefE6bi4mK98cYbWr58udLT0+V0lh3K8PPPP/dbcAAAAAAQTD4nTBMmTNAbb7yh8847Tx07diz3gioAAAAAqCl8TpjmzZun//73vxo6dGgg4gEAAACAkOHzsOLh4eFKTk4ORCwAAAAAEFJ8Tphuv/12Pf/88+VeTAUAAAAANY3Pt+R98803WrFihRYtWqQOHTrIZrOVmb9gwQK/BQcAAAAAweRzwlSnTh1dcsklgYgFAAAAAEKKzwnTnDlzAhEHAAAAAIQcn59hkqSioiJ99tlnmjVrlg4dOiRJ2rlzp7Kzs/0aHAAAAAAEk89XmLZv367Bgwdrx44dys/P14ABAxQbG6vp06crLy9PL7/8ciDiBAAAAIAq5/MVpgkTJqh79+46cOCAIiMjXdMvueQSLV++3K/BAQAAAEAwVWqUvG+//Vbh4eFlpjdv3lxpaWl+CwwAAAAAgs3nK0xOp1PFxcXlpqempio2NtYvQQEAAABAKPA5YRowYICee+4512fDMJSdna0pU6Zo6NCh/owNAAAAAILK51vynnnmGZ177rlq37698vLyNGLECG3evFnx8fF69913AxEjAAAAAASFzwlT06ZNtW7dOs2bN09r1qyR0+nUddddp5EjR5YZBAIAAAAAqjufEqbCwkK1adNGCxcu1NixYzV27NhAxQUAAAAAQefTM0w2m035+fkyDCNQ8QAAAABAyPB50IdbbrlFTz75pIqKigIRDwAAAACEDJ+fYfrhhx+0fPlyLV26VJ06dVJ0dHSZ+QsWLPBbcAAAAAAQTD4nTHXq1NHw4cMDEQsAAAAAhBSfE6Y5c+YEIg4AAAAACDk+P8MkSUVFRfrss880a9YsHTp0SJK0c+dOZWdn+zU4AAAAAAgmn68wbd++XYMHD9aOHTuUn5+vAQMGKDY2VtOnT1deXp5efvnlQMQJAAAAAFXO5ytMEyZMUPfu3XXgwIEyL6q95JJLtHz5cr8GBwAAAADB5PMVpm+++UbffvutwsPDy0xv3ry50tLS/BYYAAAAAASbz1eYnE6niouLy01PTU1VbGysX4ICAAAAgFDgc8I0YMAAPffcc67PhmEoOztbU6ZM0dChQ/0ZGwAAAAAElc+35D377LPq27ev2rdvr7y8PI0YMUKbN29WfHy83n333UDECAAAAABB4XPC1KRJE61bt07z5s3TmjVr5HQ6dd1112nkyJFlBoEAAAAAgOrOq4Spa9euWr58uerWrauHHnpId9xxh8aOHauxY8cGOj4ARzidplL25UiSUvblqFVDhywWI8hRVR2n01TK/hwdyitSbIRVSfWjq2X9g1GP2t52AH+rKf0RKof9X/t4lTD9+uuvysnJUd26dTVt2jTdeOONioqKCnRsLikpKXr44Yf1+eefa/fu3WrSpImuvvpq3X///eVG6wNqog1pmXp/bapS9mbp4vrSY4t+VVKDOA3vmqiOTR3BDi/gSuu/JT1b+YVO2W0WJSfEVLv6B6Metb3tAP5WU/ojVA77v3byKmE69dRTNXbsWJ199tkyTVNPPfWUYmJi3JadPHmyXwOUpN9++01Op1OzZs1ScnKyNmzYoOuvv145OTl66qmn/L4+IJRsSMvUC8s3KyOnQIkOuyTJERGuX1IzlXYgV7f2a12jO+mj69/YEalIR5hyC4qrXf2DUY/a3nYAf6sp/REqh/1fe3mVML3xxhuaMmWKFi5cKMMwtGjRIlmt5b9qGEZAEqbBgwdr8ODBrs8tW7bU77//rpkzZ5IwoUZzOk29vzZVGTkFSk6IkdUwJUkxEVYl223akp6tBWvT1L5xXI28HeDY+htGSR1L6h9TbeofjHrU9rYD+FtN6Y9QOez/2s2rhKlNmzaaN2+eJMlisWj58uVKSEgIaGDHk5mZqXr16lVYJj8/X/n5+a7PWVlZkqTCwkIVFhYGNL7jKV1/sONAaEvZl6OUvVlKdNhlNUxZ5JQkWeSU1bAo0WHXtr2Z+nNPppLio4Mcrf8dW3/J/HumoWpT/2DUo7a3HfgHv1V/qyn9UVWoie2G/V81qrrteLsewzRN83iFjh70Ydq0abrzzjur9BmmY/3555/q2rWrnn76aY0bN85jualTp2ratGnlpr/zzjtBjR8AAABAcB0+fFgjRoxQZmam4uLiPJbzKmGKjIzU5s2blZiYqLCwMO3atcsvV5g8JTRHW716tbp37+76vHPnTvXu3Vu9e/fW7NmzK/yuuytMzZo10759+yrcKFWhsLBQy5Yt04ABA2Sz2YIaC0JXyr4cPbboVzkiwhUTYZVFTnUL26E1xSfJKYuy84qUmVeg+4a0q5F/0Tq2/seqLvUPRj1qe9uBf/Bb9bea0h9VhZrYbtj/VaOq205WVpbi4+OPmzAFddCHm2++WVdeeWWFZZKSklz/37lzp/r27asePXrolVdeOe7y7Xa77HZ7uek2my1kDuBQigWhp1VDh5IaxOmX1Ewl222yGhZJklMWFZmGUjPz1TmxTo0dJvrY+pfeMy5JpmlWm/oHox61ve3Av/itqjn9UVWqSe2G/V+1qqrteLuOoA76EB8fr/j4eK/KpqWlqW/fvurWrZvmzJkji8Xi9XqA6spiMTS8a6LSDuRqS3p2yUhn0SV/yUrNzFe96HAN69q0xnbOx9a/sSNSkeEloxLtysytNvUPRj1qe9sB/K2m9EeoHPZ/7VYtBn3YuXOn+vTpo5NOOklPPfWU9u7d65rXqFGjKosDCIaOTR26tV9r17t0FC1l5hWoc2IdDevatMYPYXp0/bekZ2tPVsl7L6pb/YNRj9redgB/qyn9ESqH/V97eZUwHc3pdAYijgotXbpUW7Zs0ZYtW5SYmFhmnhePYAHVXsemDrVvHKc/92Rq06p03TekXa267F9a/+r+ZvVg1KO2tx3A32pKf4TKYf/XTl4lTB999JGGDBkim82mjz76qMKyF154oV8CO9qYMWM0ZswYvy8XqE4sFkNJ8dHaJCkpvvZ1zhaLoZYN3D87WZ0Eox61ve0A/lZT+iNUDvu/9vEqYbr44ou1e/duJSQk6OKLL/ZYzjAMFRcX+ys2AAAAAAgqrxKmo2/DC8YteQAAAAAQDAw1BwAAAAAe+DTog9Pp1BtvvKEFCxYoJSVFhmGoRYsWuvTSS3XNNdeUGZMeAAAAAKo7r68wmaapCy+8UOPGjVNaWpo6deqkDh06aPv27RozZowuueSSQMYJAAAAAFXO6ytMb7zxhr766istX75cffv2LTPv888/18UXX6y5c+dq1KhRfg8SAAAAAILB6ytM7777ru67775yyZIknXvuubrnnnv09ttv+zU4AAAAAAgmrxOmn3/+WYMHD/Y4f8iQIVq/fr1fggIAAACAUOB1wpSRkaGGDRt6nN+wYUMdOHDAL0EBAAAAQCjwOmEqLi6W1er5kaewsDAVFRX5JSgAAAAACAVeD/pgmqbGjBkju93udn5+fr7fggIAAACAUOB1wjR69OjjlmGEPAAAAAA1idcJ05w5cwIZBwAAAACEHK+fYQIAAACA2oaECQAAAAA8IGECAAAAAA9ImAAAAADAAxImAAAAAPCAhAkAAAAAPCBhAgAAAAAPSJgAAAAAwAMSJgAAAADwgIQJAAAAADwgYQIAAAAAD0iYAAAAAMADEiYAAAAA8ICECQAAAAA8IGECAAAAAA9ImAAAAADAAxImAAAAAPDAGuwA4B9Op6mU/Tk6lFek2AirkupHy2Ixgh0WAABArcH5WM1EwlQDbEjL1PtrU7UlPVv5hU7ZbRYlJ8RoeNdEdWzqCHZ4AAAANR7nYzUXCVM1tyEtUy8s36yMnAI1dkQq0hGm3IJi/ZKaqbQDubq1X2sOUgAAgADifKxm4xmmaszpNPX+2lRl5BQoOSFGMRFWhVkMxURYlZwQo4ycAi1Ymyan0wx2qAAAADUS52M1HwlTNZayP0db0rPV2BEpwyh7f6xhGGrsiNTm9ENK2Z8TpAgBAABqNs7Haj4SpmrsUF6R8gudigwPczs/MjxM+YVOHcorquLIAAAAagfOx2o+EqZqLDbCKrvNotyCYrfzcwuKZbdZFBvBo2oAAACBwPlYzUfCVI0l1Y9WckKMdmXmyjTL3hdrmqZ2ZeaqdUKskupHBylCAACAmo3zsZqPhKkas1gMDe+aqHrR4dqSnq3svCIVO01l5xVpS3q26kWHa1jXpoz/DwAAECCcj9V8JEzVXMemDt3ar7U6JTp0MLdAKftydDC3QJ0T6zCEJQAAQBXgfKxm42bKGqBjU4faN47jzdIAAABBwvlYzUXCVENYLIZaNogJdhgAAAC1FudjNRO35AEAAACAByRMAAAAAOABCRMAAAAAeEDCBAAAAAAekDABAAAAgAckTAAAAADgAQkTAAAAAHhAwgQAAAAAHpAwAQAAAIAHJEwAAAAA4AEJEwAAAAB4QMIEAAAAAB6QMAEAAACAByRMAAAAAOABCRMAAAAAeEDCBAAAAAAekDABAAAAgAckTAAAAADgAQkTAAAAAHhAwgQAAAAAHpAwAQAAAIAHJEwAAAAA4AEJEwAAAAB4QMIEAAAAAB6QMAEAAACAByRMAAAAAOABCRMAAAAAeEDCBAAAAAAekDABAAAAgAckTAAAAADggTXYAQA1kdNpKmV/jg7lFSk2wqqk+tGyWIxghwUAAUf/B6CmqXYJU35+vs444wytX79eP/30k0499dRghwSUsSEtU++vTdWW9GzlFzplt1mUnBCj4V0T1bGpI9jhAUDA0P8BqImq3S15d911l5o0aRLsMAC3NqRl6oXlm/VLaqbqRIYrKT5adSLD9UtqyfQNaZnBDhEAAoL+D0BNVa0SpkWLFmnp0qV66qmngh0KUI7Taer9tanKyClQckKMYiKsCrMYiomwKjkhRhk5BVqwNk1OpxnsUAHAr+j/ANRk1eaWvD179uj666/Xhx9+qKioKK++k5+fr/z8fNfnrKwsSVJhYaEKCwsDEqe3Stcf7DjgPyn7cpSyN0uJDrushinpqBMDQ0p02LVtb6b+3JOppPjoSq2DdoPKou2gMrxtN1XR/6H6oL9BZVV12/F2PYZpmiH/5x7TNDV06FCdddZZeuCBB5SSkqIWLVoc9xmmqVOnatq0aeWmv/POO14nXQAAAABqnsOHD2vEiBHKzMxUXFycx3JBTZg8JTRHW716tVauXKn58+frq6++UlhYmNcJk7srTM2aNdO+ffsq3ChVobCwUMuWLdOAAQNks9mCGgv8I2Vfjh5b9KscEeGKiSh/8TY7r0iZeQW6b0i7E7rCRLtBZdB2UBnetpuq6P9QfdDfoLKquu1kZWUpPj7+uAlTUG/Ju/nmm3XllVdWWCYpKUmPPPKIvv/+e9nt9jLzunfvrpEjR+o///mP2+/a7fZy35Ekm80WMgdwKMWCE9OqoUNJDeL0S2qmku02Gcbfw+iapqnUzHx1TqyjVg0dJzzELu0GlUXbQWUcr91UZf+H6oP+BpVVVW3H23UENWGKj49XfHz8ccu98MILeuSRR1yfd+7cqUGDBmn+/Pk644wzAhki4DWLxdDwrolKO5CrLenZauyIVGR4mHILirUrM1f1osM1rGtTThYA1Dj0fwBqsmox6MNJJ51U5nNMTIwkqVWrVkpMTAxGSIBbHZs6dGu/1q73kOzJKnkPSefEOhrWtSnvIQFQY9H/AaipqkXCBFQnHZs61L5xHG+6B1Dr0P8BqImqZcKUlJSkajC4H2oxi8VQywYxwQ4DAKoc/R+AmqZavbgWAAAAAKoSCRMAAAAAeEDCBAAAAAAekDABAAAAgAckTAAAAADgAQkTAAAAAHhAwgQAAAAAHpAwAQAAAIAHJEwAAAAA4AEJEwAAAAB4QMIEAAAAAB6QMAEAAACAByRMAAAAAOCBNdgBVCXTNCVJWVlZQY5EKiws1OHDh5WVlSWbzRbscFBN0G5QWbQdVAbtBpVBu0FlVXXbKc0JSnMET2pVwnTo0CFJUrNmzYIcCQAAAIBQcOjQITkcDo/zDfN4KVUN4nQ6tXPnTsXGxsowjKDGkpWVpWbNmumvv/5SXFxcUGNB9UG7QWXRdlAZtBtUBu0GlVXVbcc0TR06dEhNmjSRxeL5SaVadYXJYrEoMTEx2GGUERcXR2cCn9FuUFm0HVQG7QaVQbtBZVVl26noylIpBn0AAAAAAA9ImAAAAADAAxKmILHb7ZoyZYrsdnuwQ0E1QrtBZdF2UBm0G1QG7QaVFaptp1YN+gAAAAAAvuAKEwAAAAB4QMIEAAAAAB6QMAEAAACAByRMAAAAAOABCVMQvPTSS2rRooUiIiLUrVs3ff3118EOCSHk8ccf12mnnabY2FglJCTo4osv1u+//16mjGmamjp1qpo0aaLIyEj16dNHGzduDFLECEWPP/64DMPQxIkTXdNoN/AkLS1NV199terXr6+oqCideuqpWrNmjWs+bQfHKioq0gMPPKAWLVooMjJSLVu21EMPPSSn0+kqQ7uBJH311Ve64IIL1KRJExmGoQ8//LDMfG/aSX5+vm655RbFx8crOjpaF154oVJTU6usDiRMVWz+/PmaOHGi7r//fv30008655xzNGTIEO3YsSPYoSFEfPnllxo/fry+//57LVu2TEVFRRo4cKBycnJcZaZPn65nnnlG//rXv7R69Wo1atRIAwYM0KFDh4IYOULF6tWr9corr6hz585lptNu4M6BAwd01llnyWazadGiRdq0aZOefvpp1alTx1WGtoNjPfnkk3r55Zf1r3/9S7/++qumT5+uGTNm6MUXX3SVod1AknJycnTKKafoX//6l9v53rSTiRMn6oMPPtC8efP0zTffKDs7W+eff76Ki4urphImqtTpp59u3njjjWWmtW3b1rznnnuCFBFCXXp6uinJ/PLLL03TNE2n02k2atTIfOKJJ1xl8vLyTIfDYb788svBChMh4tChQ2br1q3NZcuWmb179zYnTJhgmibtBp7dfffd5tlnn+1xPm0H7px33nnmtddeW2basGHDzKuvvto0TdoN3JNkfvDBB67P3rSTgwcPmjabzZw3b56rTFpammmxWMzFixdXSdxcYapCBQUFWrNmjQYOHFhm+sCBA7Vy5cogRYVQl5mZKUmqV6+eJGnbtm3avXt3mXZkt9vVu3dv2hE0fvx4nXfeeerfv3+Z6bQbePLRRx+pe/fuuuyyy5SQkKAuXbro1Vdfdc2n7cCds88+W8uXL9cff/whSVq/fr2++eYbDR06VBLtBt7xpp2sWbNGhYWFZco0adJEHTt2rLK2ZK2StUCStG/fPhUXF6thw4Zlpjds2FC7d+8OUlQIZaZp6rbbbtPZZ5+tjh07SpKrrbhrR9u3b6/yGBE65s2bp7Vr12r16tXl5tFu4MnWrVs1c+ZM3Xbbbbrvvvu0atUq3XrrrbLb7Ro1ahRtB27dfffdyszMVNu2bRUWFqbi4mI9+uijuuqqqyTR58A73rST3bt3Kzw8XHXr1i1XpqrOn0mYgsAwjDKfTdMsNw2QpJtvvlk///yzvvnmm3LzaEc42l9//aUJEyZo6dKlioiI8FiOdoNjOZ1Ode/eXY899pgkqUuXLtq4caNmzpypUaNGucrRdnC0+fPn66233tI777yjDh06aN26dZo4caKaNGmi0aNHu8rRbuCNyrSTqmxL3JJXheLj4xUWFlYuG05PTy+XWQO33HKLPvroI61YsUKJiYmu6Y0aNZIk2hHKWLNmjdLT09WtWzdZrVZZrVZ9+eWXeuGFF2S1Wl1tg3aDYzVu3Fjt27cvM61du3auwYjoc+DOnXfeqXvuuUdXXnmlOnXqpGuuuUaTJk3S448/Lol2A+94004aNWqkgoICHThwwGOZQCNhqkLh4eHq1q2bli1bVmb6smXL1LNnzyBFhVBjmqZuvvlmLViwQJ9//rlatGhRZn6LFi3UqFGjMu2ooKBAX375Je2oFuvXr59++eUXrVu3zvWve/fuGjlypNatW6eWLVvSbuDWWWedVe7VBX/88YeaN28uiT4H7h0+fFgWS9nTyLCwMNew4rQbeMObdtKtWzfZbLYyZXbt2qUNGzZUXVuqkqEl4DJv3jzTZrOZr732mrlp0yZz4sSJZnR0tJmSkhLs0BAibrrpJtPhcJhffPGFuWvXLte/w4cPu8o88cQTpsPhMBcsWGD+8ssv5lVXXWU2btzYzMrKCmLkCDVHj5JnmrQbuLdq1SrTarWajz76qLl582bz7bffNqOiosy33nrLVYa2g2ONHj3abNq0qblw4UJz27Zt5oIFC8z4+HjzrrvucpWh3cA0S0Zv/emnn8yffvrJlGQ+88wz5k8//WRu377dNE3v2smNN95oJiYmmp999pm5du1a89xzzzVPOeUUs6ioqErqQMIUBP/+97/N5s2bm+Hh4WbXrl1dw0UDplky5Ka7f3PmzHGVcTqd5pQpU8xGjRqZdrvd7NWrl/nLL78EL2iEpGMTJtoNPPn444/Njh07mna73Wzbtq35yiuvlJlP28GxsrKyzAkTJpgnnXSSGRERYbZs2dK8//77zfz8fFcZ2g1M0zRXrFjh9rxm9OjRpml6105yc3PNm2++2axXr54ZGRlpnn/++eaOHTuqrA6GaZpm1VzLAgAAAIDqhWeYAAAAAMADEiYAAAAA8ICECQAAAAA8IGECAAAAAA9ImAAAAADAAxImAAAAAPCAhAkAAAAAPCBhAgAAAAAPSJgAADWKYRj68MMPvSo7depUnXrqqQGNBwBQvZEwAQACbsyYMTIMQ4ZhyGazqWXLlrrjjjuUk5NT6WV6SnZ27dqlIUOGeLWMO+64Q8uXL690DJX1xhtvqE6dOlW+XgCA76zBDgAAUDsMHjxYc+bMUWFhob7++muNGzdOOTk5mjlzpk/LMU1TxcXFHuc3atTI62XFxMQoJibGp/UDAGoXrjABAKqE3W5Xo0aN1KxZM40YMUIjR47Uhx9+qLfeekvdu3dXbGysGjVqpBEjRig9Pd31vS+++EKGYWjJkiXq3r277Ha73nzzTU2bNk3r1693Xbl64403JJW/JS81NVVXXnml6tWrp+joaHXv3l0//PCDpPJXqcaMGaOLL75Y06ZNU0JCguLi4nTDDTeooKDAVWbx4sU6++yzVadOHdWvX1/nn3++/vzzT9f8lJQUGYahBQsWqG/fvoqKitIpp5yi7777zlWfsWPHKjMz0xX71KlT/b/BAQB+QcIEAAiKyMhIFRYWqqCgQA8//LDWr1+vDz/8UNu2bdOYMWPKlb/rrrv0+OOP69dff9XAgQN1++23q0OHDtq1a5d27dqlK664otx3srOz1bt3b+3cuVMfffSR1q9fr7vuuktOp9NjXMuXL9evv/6qFStW6N1339UHH3ygadOmuebn5OTotttu0+rVq7V8+XJZLBZdcskl5ZZ5//3364477tC6det08skn66qrrlJRUZF69uyp5557TnFxca7Y77jjjspvSABAQHFLHgCgyq1atUrvvPOO+vXrp2uvvdY1vWXLlnrhhRd0+umnKzs7u8ztcg899JAGDBjg+hwTEyOr1VrhLXjvvPOO9u7dq9WrV6tevXqSpOTk5ApjCw8P1+uvv66oqCh16NBBDz30kO688049/PDDslgsGj58eJnyr732mhISErRp0yZ17NjRNf2OO+7QeeedJ0maNm2aOnTooC1btqht27ZyOBwyDMOn2wcBAMHBFSYAQJVYuHChYmJiFBERoR49eqhXr1568cUX9dNPP+miiy5S8+bNFRsbqz59+kiSduzYUeb73bt393md69atU5cuXVzJkjdOOeUURUVFuT736NFD2dnZ+uuvvyRJf/75p0aMGKGWLVsqLi5OLVq0cBtv586dXf9v3LixJJW51RAAUD1whQkAUCX69u2rmTNnymazqUmTJrLZbMrJydHAgQM1cOBAvfXWW2rQoIF27NihQYMGlXluSJKio6N9XmdkZKS/wpdhGJKkCy64QM2aNdOrr76qJk2ayOl0qmPHjuXitdls5b5b0a2AAIDQRMIEAKgS0dHR5W6H++2337Rv3z498cQTatasmSTpxx9/9Gp54eHhFY6WJ5Vc5Zk9e7YyMjK8vsq0fv165ebmupKt77//XjExMUpMTNT+/fv166+/atasWTrnnHMkSd98841Xy/U1dgBAaOCWPABA0Jx00kkKDw/Xiy++qK1bt+qjjz7Sww8/7NV3k5KStG3bNq1bt0779u1Tfn5+uTJXXXWVGjVqpIsvvljffvuttm7dqvfff981Yp07BQUFuu6667Rp0yYtWrRIU6ZM0c033yyLxaK6deuqfv36euWVV7RlyxZ9/vnnuu2223yud1JSkrKzs7V8+XLt27dPhw8f9nkZAICqQcIEAAiaBg0a6I033tB7772n9u3b64knntBTTz3l1XeHDx+uwYMHq2/fvmrQoIHefffdcmXCw8O1dOlSJSQkaOjQoerUqZOeeOIJhYWFeVxuv3791Lp1a/Xq1UuXX365LrjgAtew3xaLRfPmzdOaNWvUsWNHTZo0STNmzPC53j179tSNN96oK664Qg0aNND06dN9XgYAoGoYpmmawQ4CAIBQMGbMGB08eLDMe5wAALUbV5gAAAAAwAMSJgAAAADwgFvyAAAAAMADrjABAAAAgAckTAAAAADgAQkTAAAAAHhAwgQAAAAAHpAwAQAAAIAHJEwAAAAA4AEJEwAAAAB4QMIEAAAAAB78P8meQ1jloL+XAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "estimated_stages = participant_stages\n", "actual_stages = np.array(list(actual_participant_stage_dic.values()))\n", "differences = estimated_stages - actual_stages\n", "scatter_plot_of_stage_differences(differences)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Trying initializing participant stages as the actual stages\n", "\n", "We can see that if we initlize participant stages as the actual stages, the result is much better. " ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "participant_stages = actual_stages\n", "for i in range(num_iterations):\n", " # fill up data_we_have with current participant_stages\n", " data_we_have = fill_up_data_we_have(data_we_have, participant_stages, participants)\n", " estimated_means_stds_df = get_estimated_means_stds_df(biomarkers, data_we_have, theta_phi_kmeans)\n", " for p in participants:\n", " p_data = data_we_have[data_we_have.participant == p].reset_index(drop=True)\n", " # initiaze stage_likelihood\n", " stage_likelihood = np.zeros(num_stages)\n", " # note that it is [0, 10]\n", " for k in range(num_stages):\n", " likelihood = compute_likelihood(p_data, k, theta_phi = estimated_means_stds_df)\n", " stage_likelihood[k] = likelihood\n", " likelihood_sum = np.sum(stage_likelihood)\n", " normalized_stage_likelihood = [l/likelihood_sum for l in stage_likelihood]\n", " sampled_stage = np.random.choice(np.arange(num_stages), p = normalized_stage_likelihood)\n", " participant_stages[p] = sampled_stage \n", " if (i+1) % 10 == 0:\n", " print(f\"iteration {i + 1} done\")" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0wAAAIhCAYAAAB9gDqHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAACB+klEQVR4nO3dd3xT9f7H8XfSpukOo5RVpECRDTIcoDJkCS7EhagMxateB+IWleEWvI6rPycKoiLqBb1elCXg5CLIkqVXhBZaZhkpLR1pc35/1EZCm5CEpknL6/l48NCcfM/3fM73fM83+fScfI/JMAxDAAAAAIByzKEOAAAAAADCFQkTAAAAAHhAwgQAAAAAHpAwAQAAAIAHJEwAAAAA4AEJEwAAAAB4QMIEAAAAAB6QMAEAAACAByRMAAAAAOABCRMQ5n766SddfvnlOu2002S1WlW/fn11795d9957b9C2uXz5ck2aNEmHDx8u995rr72mGTNmBG3bFendu7dMJpPrX0xMjDp16qSXXnpJTqfTVW7UqFFKTU0NaBvB2q+ioiLdeuutatiwoSIiInTGGWd4LGsYhmbPnq3zzz9fycnJio6OVkpKigYOHKhp06a5yh09elSTJk3SN998U+nxVrb09HS3Y2exWFS3bl2deeaZGjdunDZt2lRunW+++UYmk6nc/r3yyitKS0tTVFSUTCaTq38++uijOu200xQZGalatWoFf6fCXFW2x6RJk9yO7/H/0tPTg7Ld3r17q3379gGvn5qa6hZnfHy8zj77bM2cObMSo/Q+lvbu3Vu9e/f2u87U1FSNGjXqpGOrLKH4TACqWmSoAwDg2ZdffqlLL71UvXv31pQpU9SwYUPt3r1bP//8s2bPnq1//OMfQdnu8uXLNXnyZI0aNarcF67XXntNSUlJVf6B3bx5c3344YeSpH379umNN97QuHHjtHv3bj333HMnXX+w9uv111/Xm2++qVdeeUVdu3ZVfHy8x7IPP/ywnnvuOd188826//77lZCQoIyMDC1dulT//ve/NWbMGEmlCdPkyZMlKaAvXKFw5513avjw4XI6nTp8+LDWrl2rd999V6+88oqeeeYZ3X///a6yXbp00X//+1+1bdvWtWzdunW66667NGbMGI0cOVKRkZFKSEjQv//9bz311FN65JFHNGjQIFmt1lDsXtgIVXssWLBANput3PKGDRtWyfYDce655+r555+XJGVmZur555/XyJEjlZeXp9tuu61StnGisTQQn332mRITEyshusoRqs8EoCqRMAFhbMqUKWrWrJkWLlyoyMi/Ttdhw4ZpypQpIYyschmGoYKCAsXExHgsExMTo3POOcf1etCgQWrdurVeffVVPfnkk7JYLFURqt82btyomJgY3XHHHV7L5efn66WXXtKIESP01ltvub03atQotytp1dFpp53mdvwGDx6se+65R0OHDtUDDzyg9u3ba9CgQZKkxMREt7KSXFeibr75Zp111lmu5Rs3bpQk3XXXXUpOTq6UWI8eParY2NhKqauqhao9unbtqqSkpErZXlWpVauWWz/r16+fmjZtqhdeeOGkE6b8/HxFR0d7LXPsHwT80blz54DWAxA4bskDwtiBAweUlJTkliyVMZvLn76zZs1S9+7dFR8fr/j4eJ1xxhl65513XO8vXrxYl112mVJSUhQdHa20tDTdcsstys7OdpWZNGmS66/9zZo1c92y8s033yg1NVWbNm3St99+61p+7C1wOTk5uu+++9SsWTNFRUWpcePGuvvuu5WXl+cWp8lk0h133KE33nhDbdq0kdVq1XvvvedX21gsFnXt2lVHjx7V/v37PZYrKCjQww8/7BbT7bff7naLzIn2K9B6TSaTpk2bpvz8fFe9nm5dycvLU2Fhoce/yJcd7/T0dNWrV0+SNHnyZFe9ZX/d3bp1q0aPHq2WLVsqNjZWjRs31iWXXKINGzaUq3PTpk0aMGCAYmNjVa9ePd1+++368ssvK7wd7uuvv1bfvn2VmJio2NhYnXvuuVqyZInXNjqRmJgYvfPOO7JYLJo6dapr+fG35PXu3VvXX3+9JOnss8927W9qaqoeffRRSVL9+vVlMpk0adIkVz0ff/yxunfvrri4OMXHx2vgwIFau3atWwyjRo1SfHy8NmzYoAEDBighIUF9+/aVVHo75ZNPPqnWrVvLarWqXr16Gj16dLn+lpqaqosvvlgLFixQly5dFBMTo9atW+vdd98tt89ZWVn629/+piZNmigqKkqNGjXSlVdeqb1797rK+HoeHc9bezidTk2ZMsW1L8nJyRoxYoQyMzPd6ii71e27775Tjx49FBsbqxtvvNHrdn01efJknX322apTp44SExPVpUsXvfPOOzIMo1zZE41lZVatWqXzzz9fsbGxat68uZ599tmA/7hQq1YttWrVShkZGZKkn3/+WcOGDVNqaqpiYmKUmpqqa6+91vV+mRkzZshkMmnRokW68cYbVa9ePcXGxurhhx/2OJZKFd+SV1hYqMcff1xt2rRRdHS06tatqz59+mj58uWuMsffkld2vnzwwQe655571KBBA8XExKhXr17l+ru/+7Rs2TLddtttSkpKUt26dTV06FDt2rXLLRZ/x06gOuIKExDGunfvrmnTpumuu+7Sddddpy5duni8kjJhwgQ98cQTGjp0qO69917ZbDZt3LjR7YPwjz/+UPfu3TVmzBjZbDalp6frhRde0HnnnacNGzbIYrFozJgxOnjwoF555RXNnTvX9QW+bdu2+uyzz3TllVfKZrO5bicpu+Xn6NGj6tWrlzIzMzV+/Hh17NhRmzZt0oQJE7RhwwZ9/fXXMplMrlg+//xzff/995owYYIaNGgQ0F/D//jjD0VGRqp27doVvm8YhoYMGaIlS5bo4Ycf1vnnn69ffvlFEydO1H//+1/997//ldVq9bpfJ1Pvf//7Xz3xxBNatmyZli5dKklq0aJFhXUmJSUpLS1Nr732mpKTkzV48GC1atXKrc2k0lucFixYoAsvvFA33XST6za9siRq165dqlu3rp599lnVq1dPBw8e1Hvvvaezzz5ba9euVatWrSRJu3fvVq9evRQXF6fXX39dycnJ+uijjyq8EvbBBx9oxIgRuuyyy/Tee+/JYrHozTff1MCBA7Vw4UJXghGIRo0aqWvXrlq+fLmKi4sr/OPAa6+9po8++khPPvmkpk+frtatW6tevXoaO3as/u///k/vvPOO65awlJQUSdLTTz+tRx99VKNHj9ajjz6qoqIiTZ06Veeff75Wrlzp9tf9oqIiXXrppbrlllv00EMPqbi4WE6nU5dddpm+//57PfDAA+rRo4cyMjI0ceJE9e7dWz///LPbFdH169fr3nvv1UMPPaT69etr2rRpuummm5SWlqaePXtKKk2WzjzzTDkcDtc5cuDAAS1cuFCHDh1S/fr1/T6PjvXZZ595bI/bbrtNb731lu644w5dfPHFSk9P12OPPaZvvvlGa9ascbs6tHv3bl1//fV64IEH9PTTT1f4x5njlZSUqLi42G2ZyWRSRESE63V6erpuueUWnXbaaZKkFStW6M4771RWVpYmTJjgKufLWCZJe/bs0XXXXad7771XEydO1GeffaaHH35YjRo10ogRI04Y8/EcDocyMjJc51J6erpatWqlYcOGqU6dOtq9e7def/11nXnmmdq8eXO5K2o33nijLrroIr3//vvKy8tTt27ddPTo0QrH0ooUFxdr0KBB+v7773X33XfrggsuUHFxsVasWKEdO3aoR48eXuMfP368unTpomnTpslut2vSpEnq3bu31q5dq+bNmwe0T2PGjNFFF12kWbNmaefOnbr//vt1/fXXu8Yzf8dOoNoyAISt7Oxs47zzzjMkGZIMi8Vi9OjRw3jmmWeMI0eOuMpt27bNiIiIMK677jqf63Y6nYbD4TAyMjIMSca///1v13tTp041JBnbt28vt167du2MXr16lVv+zDPPGGaz2Vi1apXb8n/961+GJOOrr75yLZNk2Gw24+DBgz7F2qtXL6Ndu3aGw+EwHA6HsWvXLuOhhx4yJBlXXXWVq9zIkSONpk2bul4vWLDAkGRMmTLFrb6PP/7YkGS89dZbJ9yvivhT78iRI424uDif6l25cqVx2mmnuY53QkKCcfHFFxszZ840nE6nq9z+/fsNScbEiRNPWGdxcbFRVFRktGzZ0hg3bpxr+f3332+YTCZj06ZNbuUHDhxoSDKWLVtmGIZh5OXlGXXq1DEuueQSt3IlJSVGp06djLPOOsvr9rdv325IMqZOneqxzDXXXGNIMvbu3WsYhmEsW7bMLQbDMIzp06cbksr1r4kTJxqSjP3797uW7dixw4iMjDTuvPNOt7JHjhwxGjRoYFx99dWuZSNHjjQkGe+++65b2Y8++siQZMyZM8dt+apVqwxJxmuvveZa1rRpUyM6OtrIyMhwLcvPzzfq1Klj3HLLLa5lN954o2GxWIzNmzd7bAt/zqOKVNQeW7ZsMSQZf//7393K/vTTT4YkY/z48a5lvXr1MiQZS5Ys8bqd47dX0b8WLVp4XK+kpMRwOBzG448/btStW9fVv30dy8ri/Omnn9yWt23b1hg4cOAJ427atKkxePBg15iyfft2V1+4//77K1ynuLjYyM3NNeLi4oyXX37Ztbysb44YMaLcOt7G0l69ermNOTNnzjQkGW+//fYJYx85cqTrddn50qVLF7dxIj093bBYLMaYMWM81nWifTq+z0yZMsWQZOzevdu1zJ+xE6iuuCUPCGN1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jz9W8+bNFR0drQ4dOujuu+/WnDlz1LNnT40bN04dO3aU0+nUjh07tGjRIt177706++yzq7T9+vfvr4EDB+rBBx9UTk6Ozj33XNdsdp07d9YNN9zgts8V7dfJ1usru92u1NRUXXXVVerXr5+aNGmi3NxcffPNN3r55ZfVpk0bDR06VFLp1Y2mTZvq3//+t/r27as6deooKSnJNb31jBkz1Lp1a3Xs2FGrV6/W1KlTy11ZuPvuu/Xuu+9q0KBBevzxx1W/fn3NmjVLv/76q6S/bluLj4/XK6+8opEjR+rgwYO68sorlZycrP3792v9+vXav3+/T19ud+zYoRUrVsjpdMput7seXJuRkaF//OMfGjBggN9t5klqaqoef/xxPfLII9q2bZsuvPBC1a5dW3v37tXKlSsVFxfnevCvJ8OGDdOHH36owYMHa+zYsTrrrLNksViUmZmpZcuW6bLLLtPll1/uV1yPP/645s+fr549e2r8+PHq0KGDDh8+rAULFuiee+5R69atg3IetWrVSn/729/0yiuvyGw2a9CgQa5Z8po0aaJx48b5VV9FVq9eXeGDa9u2bavExERddNFFeuGFFzR8+HD97W9/04EDB/T888+X+/Luy1hWFRITE9WzZ09NnTrVdW59++23euedd8o9gNYbb2Pp8a699lpNnz5dt956q3777Tf16dNHTqdTP/30k9q0aaNhw4Z53da+fft0+eWX6+abb5bdbtfEiRMVHR2thx9+uFL3qaJ99HXsBKqt0M03AeBEPv74Y2P48OFGy5Ytjfj4eMNisRinnXaaccMNN1Q409bMmTONM88804iOjjbi4+ONzp07G9OnT3e9v3nzZqN///5GQkKCUbt2beOqq64yduzYUeGMaw8//LDRqFEjw2w2u81Ylp6ebgwYMMBISEgwJLnNSpebm2s8+uijRqtWrYyoqCjDZrMZHTp0MMaNG2fs2bPHVU6Scfvtt/vcDmWz5J3I8bPkGUbpbGUPPvig0bRpU8NisRgNGzY0brvtNuPQoUNu5bztV0V8rdfXWfIKCwuN559/3hg0aJBx2mmnGVar1YiOjjbatGljPPDAA8aBAwfcyn/99ddG586dDavVakhyzZp16NAh46abbjKSk5ON2NhY47zzzjO+//77cjNyGYZhbNy40ejXr58RHR1t1KlTx7jpppuM9957z5Bk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TpiGDBkiSTKZTBo5cqTbexaLRampqfrHP/5RqcEBAAAAQCj5nDA5nU5JUrNmzbRq1SolJSUFLShUzOk0lH4gT0cKipUQHanUunEym5mx8GTRrqhK1am/BSPWU2H/g7WP3uoNt1gDEU6xVDenetud6vuP4PM5YSqzffv2cssOHz6sWrVqVUY8Hj311FP68ssvtW7dOkVFRenw4cNB3V642Zhl15w1mdq6L1eFDqesFrPSkuN1RZcUtW9sO3EFqBDtiqpUnfpbMGI9FfY/WPvorV5JYRVrIMIplurmVG+7U33/UTX8Tpiee+45paam6pprrpEkXXXVVZozZ44aNmyor776Sp06dar0ICWpqKhIV111lbp376533nknKNsIVxuz7Prnkt91MK9IDW0xirFFKL+oRBsy7co6lK+7+rZkUAgA7YqqVJ36WzBiPRX2P1j76K3eLbtyJJNUXGKERayBCKdYqptTve1O9f1H1fF7lrw333xTTZo0kSQtXrxYX3/9tRYsWKBBgwbp/vvvr/QAy0yePFnjxo1Thw4dgraNcOR0GpqzJlMH84qUlhyv+OhIRZhNio+OVFpyvA7mFWnumiw5nUaoQ61WaFdUperU34IR66mw/8HaR2/1tqgXp23Zedq+P09p9eJCHmsgwimW6uZUb7tTff9Rtfy+wrR7925XwjRv3jxdffXVGjBggFJTU3X22WdXeoAno7CwUIWFha7XOTk5kiSHwyGHwxGqsFwxHPtfT9Kz85S+P0cpNqsiTYakY058k5Ris2r7frv+2GtXalJcECOuWapru/rabxBewqG/hXLMCYf991WgsQZrH73Vm1foUKSp9PfF+UUOJURbKj3WxrYoScEbc6pT3wg34dx2VfFZFc77j8BV9fccX7djMgzDr9S7UaNG+te//qUePXqoVatWevLJJ3XVVVfpt99+05lnnulKSoJlxowZuvvuu336DdOkSZM0efLkcstnzZql2NjYIEQHAAAAoDo4evSohg8fLrvdrsTERI/l/L7CNHToUA0fPlwtW7bUgQMHNGjQIEnSunXrlJaW5lddnhKaY61atUrdunXzN0xJ0sMPP6x77rnH9TonJ0dNmjTRgAEDvDZKVXA4HFq8eLH69+8vi8XisVx6dp6enr9FtugoxUeXP1y5BcWyFxRp/KA2/AXFD9W1XX3tNwgv4dDfQjnm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p3vuuUerVq3SkiVLZDabdfnll5er85FHHtF9992ndevW6fTTT9e1116r4uJi9ejRQy+99JISExNdsd93332BNyQAIKi4JQ8AUOVWrlypWbNmqW/fvrrxxhtdy5s3b65//vOfOuuss5Sbm+t2u9zjjz+u/v37u17Hx8crMjLS6y14s2bN0v79+7Vq1SrVqVNHkpSWluY1tqioKL377ruKjY1Vu3bt9Pjjj+v+++/XE088IbPZrCuuuMKt/DvvvKPk5GRt3rxZ7du3dy2/7777dNFFF0mSJk+erHbt2mnr1q1q3bq1bDabTCaTX7cPAgBCgytMAIAqMW/ePMXHxys6Olrdu3dXz5499corr2jt2rW67LLL1LRpUyUkJKh3796SpB07drit361bN7+3uW7dOnXu3NmVLPmiU6dOio2Ndb3u3r27cnNztXPnTknSH3/8oeHDh6t58+ZKTExUs2bNKoy3Y8eOrv9v2LChJLndaggAqB64wgQAqBJ9+vTR66+/LovFokaNGslisSgvL08DBgzQgAED9MEHH6hevXrasWOHBg4c6Pa7IUmKi4vze5sxMTGVFb5MJpMk6ZJLLlGTJk309ttvq1GjRnI6nWrfvn25eC0WS7l1vd0KCAAITyRMAIAqERcXV+52uF9//VXZ2dl69tln1aRJE0nSzz//7FN9UVFRXmfLk0qv8kybNk0HDx70+SrT+vXrlZ+f70q2VqxYofj4eKWkpOjAgQPasmWL3nzzTZ1//vmSpB9++MGnev2NHQAQHrglDwAQMqeddpqioqL0yiuvaNu2bfriiy/0xBNP+LRuamqqtm/frnXr1ik7O1uFhYXlylx77bVq0KCBhgwZoh9//FHbtm3TnDlzXDPWVaSoqEg33XSTNm/erPnz52vixIm64447ZDabVbt2bdWtW1dvvfWWtm7dqqVLl+qee+7xe79TU1OVm5urJUuWKDs7W0ePHvW7DgBA1SBhAgCETL169TRjxgx9+umnatu2rZ599lk9//zzPq17xRVX6MILL1SfPn1Ur149ffTRR+XKREVFadGiRUpOTtbgwYPVoUMHPfvss4qIiPBYb9++fdWyZUv17NlTV199tS655BLXtN9ms1mzZ8/W6tWr1b59e40bN05Tp071e7979OihW2+9Vddcc43q1aunKVOm+F0HAKBqmAzDMEIdBAAA4WDUqFE6fPiw23OcAACnNq4wAQAAAIAHJEwAAAAA4AG35AEAAACAB1xhAgAAAAAPSJgAAAAAwAMSJgAAAADwgIQJAAAAADwgYQIAAAAAD0iYAAAAAMADEiYAAAAA8ICECQAAAAA8+H98CrFwscSnmQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "estimated_stages = participant_stages\n", "actual_stages = np.array(list(actual_participant_stage_dic.values()))\n", "differences = estimated_stages - actual_stages\n", "scatter_plot_of_stage_differences(differences)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusions\n", "\n", "It seems that:\n", "1. Having the actual participant stages as the initial stage won't help the final result a lot. \n", "2. Having 100 iterations won't generate a much better result than having 10 iterations. " ] } ], "metadata": { "kernelspec": { "display_name": "bayes", "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.19" } }, "nbformat": 4, "nbformat_minor": 2 }