{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# [Damped Oscillator - CDE](https://github.com/Ziaeemehr/vbi_paper/blob/main/docs/examples/damp_oscillator_cde.ipynb)\n",
"\n",
"- Inference without torch dependency:\n",
" - DMN\n",
" - MAF\n",
"\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# # Install VBI package in Google Colab (lightweight, CPU-only version)\n",
"# print(\"Setting up VBI for Google Colab...\")\n",
"\n",
"# # Skip C++ compilation for faster installation in Colab\n",
"# %env SKIP_CPP=1\n",
"\n",
"# # Install the package\n",
"# !pip install vbi\n",
"\n",
"# print(\"VBI package installed successfully! Ready to proceed.\")"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"import corner\n",
"import numpy as np\n",
"from vbi import BoxUniform\n",
"import autograd.numpy as anp\n",
"import matplotlib.pyplot as plt\n",
"from multiprocessing import Pool\n",
"from vbi.cde import MDNEstimator, MAFEstimator\n",
"from sklearn.preprocessing import StandardScaler\n",
"from vbi.models.numba.damp_oscillator import DO\n",
"from vbi.utils import posterior_shrinkage_numpy, posterior_zscore_numpy\n",
"# switch to C++ implementation\n",
"# from vbi.models.cpp.damp_oscillator import DO"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from vbi import report_cfg\n",
"from vbi import extract_features\n",
"from vbi import get_features_by_domain, get_features_by_given_names"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"seed = 2\n",
"np.random.seed(seed)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"parameters = {\n",
" \"a\": 0.1,\n",
" \"b\": 0.05,\n",
" \"dt\": 0.01,\n",
" \"t_start\": 0,\n",
" \"method\": \"rk4\",\n",
" \"t_end\": 100.0,\n",
" \"t_cut\": 20,\n",
" \"output\": \"output\",\n",
" \"initial_state\": [0.5, 1.0],\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Damped Oscillator Model (Numba)\n",
"-------------------------------\n",
"a = 0.1\n",
"b = 0.05\n",
"dt = 0.01\n",
"t_start = 0.0\n",
"t_end = 100.0\n",
"t_cut = 20.0\n",
"method = rk4\n",
"output = output\n",
"initial_state = [0.5 1. ]\n",
"\n"
]
}
],
"source": [
"ode = DO(parameters)\n",
"print(ode())"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sol = ode.run()\n",
"t = sol[\"t\"]\n",
"x = sol[\"x\"]\n",
"plt.figure(figsize=(4, 3))\n",
"plt.plot(t, x[:, 0], label=\"$\\\\theta$\")\n",
"plt.plot(t, x[:, 1], label=\"$\\omega$\")\n",
"plt.xlabel(\"t\")\n",
"plt.ylabel(\"x\")\n",
"plt.legend()\n",
"plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Selected features:\n",
"------------------\n",
"■ Domain: statistical\n",
" ▢ Function: calc_std\n",
" ▫ description: Computes the standard deviation of the signal.\n",
" ▫ function : vbi.feature_extraction.features.calc_std\n",
" ▫ parameters : {'indices': None, 'verbose': False}\n",
" ▫ tag : all\n",
" ▫ use : yes\n",
" ▢ Function: calc_mean\n",
" ▫ description: Computes the mean of the signal.\n",
" ▫ function : vbi.feature_extraction.features.calc_mean\n",
" ▫ parameters : {'indices': None, 'verbose': False}\n",
" ▫ tag : all\n",
" ▫ use : yes\n"
]
}
],
"source": [
"cfg = get_features_by_domain(domain=\"statistical\")\n",
"cfg = get_features_by_given_names(cfg, names=[\"calc_std\", \"calc_mean\"])\n",
"report_cfg(cfg)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def wrapper(par, control, cfg, verbose=False):\n",
" ode = DO(par)\n",
" sol = ode.run(control)\n",
"\n",
" # extract features\n",
" fs = 1.0 / par[\"dt\"] * 1000 # [Hz]\n",
" stat_vec = extract_features(\n",
" ts=[sol[\"x\"].T], cfg=cfg, fs=fs, n_workers=1, verbose=verbose\n",
" ).values\n",
" return stat_vec[0]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def batch_run(par, control_list, cfg, n_workers=1):\n",
" stat_vec = []\n",
" with Pool(processes=n_workers) as pool:\n",
" stat_vec = pool.starmap(\n",
" wrapper, [(par, control, cfg) for control in control_list]\n",
" )\n",
" return stat_vec"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.02651486 0.02314122 1.0525634 0.88261193]\n"
]
}
],
"source": [
"control = {\"a\": 0.11, \"b\": 0.06}\n",
"x_ = wrapper(parameters, control, cfg)\n",
"print(x_)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"num_sim = 2000\n",
"num_workers = 10\n",
"a_min, a_max = 0.0, 1.0\n",
"b_min, b_max = 0.0, 1.0\n",
"prior_min = [a_min, b_min]\n",
"prior_max = [a_max, b_max]\n",
"prior = BoxUniform(low=prior_min, high=prior_max, seed=seed)\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"theta = prior.sample(num_sim)\n",
"control_list = [{\"a\": theta[i, 0], \"b\": theta[i, 1]} for i in range(num_sim)]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"stat_vec = batch_run(parameters, control_list, cfg, n_workers=4)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"scaler = StandardScaler()\n",
"stat_vec = scaler.fit_transform(np.array(stat_vec))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((2000, 2), (2000, 4))"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# stat_vec = np.array(stat_vec)\n",
"theta.shape, stat_vec.shape"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Inferred dimensions: param_dim=2, feature_dim=4\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9661b2dd3e514f35961d1d8384a1fb53",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Training: 0%| | 0/500 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ziaee/anaconda3/envs/vbi1/lib/python3.10/site-packages/autograd/numpy/numpy_vjps.py:175: RuntimeWarning: overflow encountered in square\n",
" defvjp(anp.tanh, lambda ans, x: lambda g: g / anp.cosh(x) ** 2)\n"
]
}
],
"source": [
"# --- observe data ---\n",
"theta_true = {\"a\": 0.1, \"b\": 0.1}\n",
"theta_true_np = np.array([theta_true[\"a\"], theta_true[\"b\"]])\n",
"xo = wrapper(parameters, theta_true, cfg)\n",
"xo = scaler.transform(xo.reshape(1, -1))\n",
"\n",
"# --- train MDN ---\n",
"mdn_estimator = MDNEstimator(n_components=5, hidden_sizes=(32,32))\n",
"mdn_estimator.train(theta, stat_vec, n_iter=500, learning_rate=5e-4)\n",
"\n",
"# --- sample from posterior ---\n",
"rng = anp.random.RandomState(seed)\n",
"samples = mdn_estimator.sample(xo, n_samples=5000, rng=rng, log_prob_threshold=-5.0)[0]\n",
"\n",
"shrinkage = posterior_shrinkage_numpy(theta, samples)\n",
"zscore = posterior_zscore_numpy(theta_true_np, samples)\n",
"mdn_mean = np.mean(samples, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True parameters: [0.1 0.1]\n",
"MDN mean estimate: [0.09396647 0.1012619 ]\n",
"Posterior shrinkage: [0.99 , 0.995]\n",
"Posterior z-score: [0.211, 0.063]\n"
]
}
],
"source": [
"print(\"True parameters: \", theta_true_np)\n",
"print(\"MDN mean estimate: \", mdn_mean)\n",
"print(\"Posterior shrinkage: \", np.array2string(shrinkage, precision=3, separator=\", \"))\n",
"print(\"Posterior z-score: \", np.array2string(zscore, precision=3, separator=\", \"))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"with open(\"output/posterior.pkl\", \"wb\") as f:\n",
" pickle.dump(mdn_estimator, f)\n",
" \n",
"# with open(\"output/posterior.pkl\", \"rb\") as f:\n",
"# mdn_estimator = pickle.load(f)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plotting posterior marginals for MDN ...\n"
]
},
{
"data": {
"image/png": "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nz8vK1askH79+klubq7d8164cEFGjhwpBoNBpkyZIn/605+UYm87zLxlyxYZPXq0eHh4SFhYmAwaNMju6/deWTvbMdXX18uPf/xj6devnypzf3Ulb319vYwZM0YiIyPFxcVFTp8+bfe8joI1bztaqvf75WXNW4eNUw9UVlYmw4cPl3//+9/Ksrq6OklPT5cRI0bI448/rix/++235fnnn5eNGzdKSUmJGnHvm3fBggXK8srKStmwYYOEh4erslNqamqS119/XebNmydZWVkSExMj4eHh7Yq9ublZeX5RUZEcP35cDh8+/KX3TVEza8cdU2Zmpvj7+8upU6fsmrWreS0Wi1y5ckV69+4tbm5ukp2dbfe8joQ1bxtaqndr87Lm74+NUw9048YNCQgIkF/96lftlpvNZnnnnXdkzJgxyk3EHIE1ebdv364sLy0tlaqqKnvHFJE7RZyZmSnp6ekicucky7bF3tDQICLtd6ZqsTZr2x1pXV2dVFdXqxH3K+X97W9/K2fOnFElryNhzduGlupdhDX/oLBx6oHMZrMsXLhQYmNj7+rKTSaTzJs3T+Lj41VKdzet5e24k7x9+7ZS7H/+85+Vcx/279+vRrx2tJRVxPq8f/nLX1RI57i0VkNayttda0hree1Z82yceqicnBzx9vaWuLi4u4bjN23aJOPHjxeTyaRSurtpLW+r1qI3mUwSExMjEyZMkPT0dFmyZIn4+vpKZWWlygn/R0tZRe6f9153Pe6JtFZDWssr0v1qSGt57VXzbJx6oNYTFk+ePClubm7yxBNPyLFjx5THk5OTZd68ecowqNq0lrej1iOi+vp6mTVrlri4uIibm5tDTvWhpawi2surFq3VkNbytqW1bZJ5u46NUzdmsVjuGuZs3SG1Lj99+rSMHTtWxo8fL2FhYfLtb39b3N3dVTkvpDvl7aj1eUuWLBEPDw+7X/mjpawi2svrKLpTDTlaXq1tk8xrO04i/39veOpW8vLysHHjRly+fBlBQUGYO3cu5syZA+DOPD96vV75Wl5ejszMTBw7dgx+fn6YN2+e3aek6I55O9q2bRtSUlKQmZmJcePGMWs3yesoumMNOUperW2TzGtbbJy6ocLCQjzyyCP41re+hSFDhuDQoUMwGAyIjIzEli1bANy5w66Li4vqcyR197xtXb16FbW1tQgMDGTWbpLXUXTnGlI7r9a2Sea1A7uOb5HNtbS0yE9+8hOJi4tTltXW1sr69etl7Nixkpyc3O75f/3rX+XKlSv2jqno7nn379+v6q0RtJJVRHt5HUV3ryE182ptm2Re+9Ddv7UiLXFyckJlZSUuX76sLOvbty9SUlKQkJCAL774Aj//+c8BAAcPHsSyZcuQlpaGlpYW5rVB3qVLl+KNN95QJa+Wsmoxr6Po7jWkZl6tbZPMax9snLoR+f9PXcePHw+LxYLCwkLlsb59+yIxMRHjxo3DgQMH0NjYiDlz5iAxMRGJiYntJkxkXu3n1VJWLeZ1FFpbb1rKq6WszGtnag11ke2UlJSIl5eXJCYmSl1dnYj8786q5eXl4uTkJAcOHFAzYjvMaztayiqivbyOQmvrTUt5tZRVhHntgY1TN3Xs2DExGo2ydOnSdrNvX7p0ScLCwtrNAeUImNd2tJRVRHt5HYXW1puW8mopqwjz2pqzuuNdZCvTpk3DBx98gAULFuDSpUuIi4vDmDFj8O6776Kqqgp+fn5qR2yHeW1HS1kB7eV1FFpbb1rKq6WsAPPaGm9H0M1lZWVh+fLlKC0thbOzM/R6Pfbt2+ew97phXtvRUlZAe3kdhdbWm5byaikrwLy2wsapB6itrcWNGzdQV1cHHx8feHl5qR3pnpjXdrSUFdBeXkehtfWmpbxaygowry2wcSIiIiKyUs+9jpeIiIioi9g4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMREfVY0dHReOGFF9SOQRrCxomIiIjISmyciIiIiKzExomog7///e+IjIxE//794enpiblz5+LcuXNqxyIiG2lubsayZcvQr18/eHl54eWXX4aIqB2LHBQbJ6IOTCYTli9fjtOnT+Po0aPQ6XSYP38+Wlpa1I5GRDbwzjvvwNnZGRkZGXjjjTewefNm7Nq1S+1Y5KCchG010T1du3YNAwcORE5ODkJCQtSOQ0QPUHR0NKqqqnD27Fk4OTkBAFJTU/G3v/0NeXl5KqcjR8QRJ6IOiouL8eSTT2Lo0KFwd3fHkCFDAADl5eXqBiMim5g0aZLSNAHA5MmTUVxcDIvFomIqclTOagcgcjSPPfYY/P39sXPnTvj6+qKlpQUhISFobGxUOxoREamMjRNRG9evX0dhYSF27tyJqKgoAMBnn32mcioisqVTp061+/7kyZMICgqCXq9XKRE5MjZORG0MGDAAnp6e2LFjB3x8fFBeXo7U1FS1YxGRDZWXl2P58uVYvHgxsrKy8Oabb2LTpk1qxyIHxcaJqA2dTod9+/YhJSUFISEhGDFiBNLS0hAdHa12NCKykaeffhr19fWIiIiAXq/H888/j2effVbtWOSgeFUdERERkZV4VR0RERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRldg4EREREVmJjRMRERGRlf4Pa3u4k6Q9ckAAAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"Plotting posterior marginals for MDN ...\")\n",
"\n",
"param_labels = [\"a\", \"b\"]\n",
"\n",
"fig = corner.corner(\n",
" samples,\n",
" labels=param_labels,\n",
" truths=theta_true_np,\n",
" quantiles=[0.16, 0.5, 0.84],\n",
" show_titles=True,\n",
" title_kwargs={\"fontsize\": 12},\n",
" truth_color=\"red\",\n",
" bins=50, # Increase number of bins for better resolution\n",
" range=[(0.08, 0.12), (0.08, 0.12)], # Adjust ranges\n",
" fig=plt.figure(figsize=(6, 6)),\n",
")\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAHNCAYAAABYXK/dAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAHAhJREFUeJzt3X+s1eWdJ/DP95z7AxFuBVEERWzHxpV1Fw0KQtqMbtiYzdTRZrJruslKzGo3s6nR3j82THYqif7BZs02NpVNrI2hWZPWbLJq/5h10zB/OI22BBx3HN1x1LEgGQGvBYGL5d57ztk/4FzuT+Tewnm+z/m+XgmRe+4FHk7AN5/P9/M8T9FqtVoBAB1WS70AAKpJAAGQhAACIAkBBEASAgiAJAQQAEkIIACSEEAAJNGTegFAxL+s/evUS4Dfyy+a/3POP0YFBEASAgiAJAQQAEkIIACSEEAAJJFsCq7VasXJ0ZMREbGwd2EURZFqKQAkkKwCOjl6MhZtXxSLti8aDyIAqkMLDoAkBBAASQggAJIQQAAkIYAASEIAAZBEKQLo85FG6iUA0GGlCKBdf3co9RIA6LBSBNDxz0dTLwGADitFAJ1qNFMvAYAOK0UAjTZaqZcAQIeVJIBUQABVU44AGhNAAFVTjgBSAQFUTikCaEQAAVSOAAIgiVIEkCk4gOopRQCNCSCAyilFAI2YggOonGQB1GierXo8AwKonmQBNLHqMYYNUD3pAmhC6NiIClA95QigpgACqJpkATQ2IYBGTMEBVE4pngGZggOonlK04MYMIQBUTikqIFNwANWTLIAmho4WHED1qIAASCJdBdScGECm4ACqphQVkKN4AKonXQU0drbqUQEBVE8pxrAbzdakw0kB6H6laMFFGEQAqJpSVEAzfQxAdyvFWXARTsQGqJrSVEAGEQCqJeFJCJMDx2kIANWSLIBOjXkGBFBlCfcBmYIDqLJSHEYaoQUHUDX2AQGQRGmm4DwDAqiWhPuATMEBVFm6KTj7gAAqzTMgAJIwBQdAEqXZB2QIAaBaSjMFpwUHUC1acAAkUZqz4FRAANVSmgrIGDZAtZQmgKZWRAB0N/uAAEiiNBfSuZIboFpKE0D2AQFUixYcAEkkCaBWqzX9OoYxU3AAVZIkgGYaudaCA6iWJAE0U9gYQgColjQV0Axh4xkQQLWUpgLSggOoljQBNEMF5DBSgGopTQWkBQdQLeWpgAQQQKWUJoBG7QMCqJRE+4C04ACqrjQVkOsYAKrFEAIASZSmAhJAANVSmgrIPiCAainREIIpOIAqKU0LbqTRjFZLCAFURWkCKEIVBFAliZ4BzRw0BhEAqqNkFZAAAqiKUgRQUcz8OgDdqxRTcL3108twIClAdZRiH1D/mQAyhABQHaVowfXUixlfB6B7laIC6j0TQIYQAKqjFBVQX49nQABVU64hBC04gMooRQXUOz6EIIAAqqIUAdRuwQkggOooyRBCuwVnDBugKkpRAfXWzoxhq4AAKqMcFVBPPSIiRg0hAFRGKabg+uwDAqiccrTgnAUHUDmlCKDxjahacACVkagFN3narddhpACVkySATjmMFKDyErXgGpM+7ncSAkDllKQFZwoOoGrKsQ/oTAU0tTUHQPfqeAA1mq1oNKdUQM6CA6icjgfQTCHjNGyA6ul4AM3UZutzHxBA5ZSiAjp7HYN9QABV0fEAalc57aonIqKn5igegKpJF0A9Z3/pXhtRASonWQuuHToRbkQFqKJkQwiTAsgUHEDldL4F15jegnMWHED1dL4FN8MQwvh1DKbgACojWQXUU584hKAFB1A1yabg+ie04Pq04AAqJ+EU3MQKqD7pcwB0v2RTcBOfAfX2uI4BoGoSVECnBw16e6Y/A3IdA0B1JHsGNLEFZx8QQPUkCKDT13FPOorHYaQAlZOsBdc/8RnQmcNIZ7qsDoDulHAf0PSz4CK04QCqohxTcBPCyJUMANWQbB/QpGdAtbPftxkVoBpKMQVXqxXjVZAWHEA1pAugnsm/9Ph5cGOGEACqIFkLrn+WABppNDq9JAASSNiCKya9Pn4lgwoIoBI6PwXXmD4FN/Fjz4AAqiHZhXTtE7Db2hWRMWyAaki2EXW2FtyoMWyASijFPqCIiUMIAgigCpINIUx9BjQeQCoggEpIuA9olhacE7EBKiHBM6DTATO1BWcKDqBakt0HNPH8t4gJU3BacACVkGwKbloF1GMIAaBKEuwDOt2C651lCEELDqAaylMBmYIDqJTSjGGfnYITQABVUJoK6OxGVGPYAFXQ0QBqtVrjFVCPjagAldbRAJq4yVQLDqDaOhxAZ8Nl6oV0fa7kBqiUjgbQxPba1DFsFRBAtSSpgOq1Iuq1yWfBtQPplGdAAJXQ0QA6NcsIdsTEjaim4ACqoLMtuFkuo4twIR1A1SRpwfX11Kd9rs+FdACVkmQIoW+GCqh9P5AhBIBqSBNAPdN/2b56fdLXANDdkjwDmimAxu8DUgHBnB29Zih2//u/jKPXDKVeCpy3jgbQ8d+NRcT0PUAREb32AcG8fbT+gzh2zW/jo/UfpF4KnLeOBtD/eH1fRESsXXXZtM/1t8ewx4xhw1yMXHIqDq85EBERh9cciJFLTiVeEZyfjgXQr//h0/jl+0PRWy/iT//wD6Z9vteNqDAvH9+8L1rF6X+4FfVW/PGLr8X/+cc30y4KzkNPJ36RVqsV/+0Xfx8REf/m1lWxaunCGB4ZnvQ1TsOGL/a7xZ/HyKW/m/TagVs/iDgzWNqKiP/+t5/FH664JI5ddWT8a/qGF8SC45d0cKXwxToSQK998Gns/vC30VevxXf+xfUzfk2fK7nhC/3tn/w6jq6eMmjQikkB9A/Hx+K2/3Ug4j8cGP+Sy36zLG79yR0dWiWcn4vegmu1WvH9M9XPv91wbaz40sz/CuvrMQUHX2TlG1+O2mjtdNK0Td9Wd1YrojZai5V//eWLvTSYs3lXQK/+/SfRUyuip16Leq2I3noRvfVa9NaL6Kmdfq0oIt786Gjs3Xck+ntq8R/vmP7sp238MNLRZhwZHon+3lr0nzkxodlqRbPVilYroigiiiiiVkQUxem/ee2/f8W5/iLCFEWGf2BW/s3qGPjHJfE3970WJ5eeOPc/IZsRC3+7OP75Cxtj0dBAx9YI52veAXT/c7vn9PX/7vbVceXAglk/394b9PloI2554hfzXRact9/8lz9KvYR5WTQ0EBt+tDneuXtPHPpnB2b9uuVvr4o1P18X9bGOdNphzub9J3PNioEYazZjrNGK0fZ/G60YbTRjrNGMZivGq5Zrll4Sf3qO6iciYvniBXH7V5bGnt8cibGmUWw4l/poTyzZf0UcuunAzC24VsSSfcuED6U27z+df/HI1y/kOqJWK+Jn394YERFjjWaMNJpxarR5uuVWnG65RZxufbdap58ttVoTXxNaVMuxFUeiaBbRqrfODiKc+W/RLOLYyqMRe9OuEc6llP886qnXoqdei4V9qVcC5fXZNb+NVr0VRaOIolnENXv+IA7c+kG0aq1o1Vvx2TWfpl4inFMpAwg4t0a9EcPLjkdExCVHFo0PGqx848unBxSWnYjhZcejUW9EvTH9+hMoAwEEGWr2NmLR4YFY/PGS+Cd/cfP4s572gMLf/au/juNXHY1mjwCivAQQZKj3d32x4ZnNUcwwgVAf7Yl/+vPbohWtGT8PZdHRw0iBC+eLwkX4UHYCCIAkkrXgFvYujBN/dmL8+wBUS7IAKooiLu27NNUvD0BiWnAAJCGAAEhCAAGQhAACIAkBBEASRcsx0gAkoAICIAkBBEASAgiAJAQQAEkIIACSmNdZcK1WK44fP36h1wIdt3jx4igK1xZACvMKoKGhobjyyisv9Fqg4w4fPhxXXHFF6mVAJc0rgPr6+iIi4qOPPoqBgYELuiAijh07FqtWrfL+XkTt97j9ZxnovHkFULtlMTAw4H+QF5H39+LTfoN0DCEAkIQAAiCJeQVQf39/bNu2Lfr7+y/0egjvbyd4jyE9h5ECkIQWHABJCCAAkhBAACQhgABIQgABkMS8AmjHjh1x3XXXxYIFC2LDhg2xe/fuC72urjeX93Dnzp1RFMWkbwsWLOjgarvHq6++GnfffXesXLkyiqKIl156KfWSoLLmHEAvvPBCDA4OxrZt2+KNN96ItWvXxl133RWHDx++GOvrSvN5DwcGBuLjjz8e/7Zv374Orrh7DA8Px9q1a2PHjh2plwKVN+d9QBs2bIjbbrstnn766YiIaDabsWrVqnj44Ydj69atF2WR3Wau7+HOnTvj0UcfjaNHj3Z4pd2tKIp48cUX49577029FKikOVVAIyMjsXfv3ti8efPZn6BWi82bN8frr79+wRfXjeb7Hp44cSJWr14dq1atinvuuSfefvvtTiwX4KKZUwANDQ1Fo9GI5cuXT3p9+fLlcfDgwQu6sG41n/fwhhtuiOeeey5efvnleP7556PZbMamTZviwIEDnVgywEUxr+sY6KyNGzfGxo0bxz/etGlT3HjjjfHMM8/EE088kXBlAPM3pwpo2bJlUa/X49ChQ5NeP3ToUFx11VUXdGHd6kK8h729vXHLLbfE+++/fzGWCNARcwqgvr6+WLduXezatWv8tWazGbt27Zr0L3RmdyHew0ajEW+99VasWLHiYi0T4KKbcwtucHAwtmzZErfeemusX78+nnrqqRgeHo4HHnjgYqyvK33Re3j//ffH1VdfHdu3b4+IiMcffzxuv/32uP766+Po0aPx5JNPxr59++LBBx9M+dvI0okTJyZVjh9++GG8+eabsXTp0rj22msTrgyqZ84BdN9998Unn3wSjz32WBw8eDBuvvnmeOWVV6Y9VGd2X/Qe7t+/P2q1s8XpkSNH4qGHHoqDBw/GkiVLYt26dfHaa6/FmjVrUv0WsrVnz5648847xz8eHByMiIgtW7bEzp07E60Kqsl9QAAk4Sw4AJIQQAAkIYAASEIAAZCEAAIgCQEEQBICCIAkBBAASQggAJIQQAAkIYBK5pVXXomvfe1rcdlll8Xll18e3/jGN+KDDz5IvSyAC04Alczw8HAMDg7Gnj17YteuXVGr1eKb3/xmNJvN1EsDuKAcRlpyQ0NDccUVV8Rbb70VN910U+rlAFwwKqCSee+99+Jb3/pWfOUrX4mBgYG47rrrIuL0FQ0A3WTO9wFxcd19992xevXqePbZZ2PlypXRbDbjpptuipGRkdRLA7igBFCJfPrpp/Huu+/Gs88+G1//+tcjIuKXv/xl4lUBXBwCqESWLFkSl19+efzoRz+KFStWxP79+2Pr1q2pl0XJtVqtODl6MiIiFvYujKIoEq8Izo9nQCVSq9XiZz/7Wezduzduuumm+O53vxtPPvlk6mVRcidHT8ai7Yti0fZF40EEOVABlczmzZvjnXfemfSaQUWgG6mAAEhCAAGQhAACIAkBBEASAgiAJAQQdJH/+sr/S70EOG8CCLrI/z3wWeolwHkTQNBFRhqu7SAfAgi6yMiYACIfAgi6yJgKiIwIIOgiWnDkRABBFxkdc24g+RBA0EVGVUBkRABBFxltqIDIhwCCLuIZEDkRQNBFtODIiQCCLtJsGcUmHwIIuoznQORCAEGX8RyIXAgg6DKO4yEXAgi6jEEEciGAoMsIIHIhgKDLaMGRCwEEXcYQArkQQNBljGGTCwEEXUYLjlwIIOgyhhDIhQCCLuMZELkQQNBltODIhQCCLqMFRy4EEHQZAUQuBBB0GS04ciGAoMuM2AdEJgQQZK7RnBw4oyogMiGAIHNTW27GsMmFAILMTQ0cFRC5EECQudHmlABSAZEJAQSZm1rxnBJAZEIAQeamVjyjY6bgyIMAgsxNCyAVEJkQQJC5U1On4AwhkAkBBJkbm7LxVAVELgQQZG5q4NgHRC4EEGRu2j4gAUQmBBBkbmoAeQZELgQQZG5sbOozIGPY5EEAQeamVUBacGRCAEHmpg0haMGRCQEEmZt68oEhBHIhgCBzpuDIlQCCzGnBkSsBBJmbfhacKTjyIIAgc25EJVcCCDKnBUeuBBBkbmrLzRACuRBAkLmpFY8AIhcCCDI30xBCs2kQgfITQJC50eb0imem16BsBBBkbqaxa6PY5EAAQeZmmnozCUcOBBBkbuIzoHqtmPYalJUAgsxNbLf11k8HkAqIHAggyNzohLDprZ/+K+00BHIggCBzE8Omr64FRz4EEGRu4sh1uwKaekcQlJEAgsyNzNiCa6RaDpw3AQSZG5vYgus5E0AqIDIggCBzE6fgetotOM+AyIAAgsxNbMH1GcMmIwIIMjcyQwtOBUQOBBBkbtJG1Jp9QORDAEHmJlY77WdAWnDkQABB5kZnbMGZgqP8BBBkrNVqTQqbPlNwZEQAQcamPutxGCk5EUCQsamttt4eQwjkQwBBxkbHZq6AtODIgQCCjE1rwdVMwZEPAQQZmxo0/TaikhEBBBmbGjTj1zEYwyYDAggyNrUF196IekoLjgwIIMjY1IvnnAVHTgQQZGy2fUACiBwIIMjY1CEEJyGQEwEEGZttCMEYNjkQQJCxWQPIFBwZEECQsamVTvsonqknJEAZCSDI2NQhhL66s+DIhwCCjE0/jLT9ugCi/AQQZGxaC84QAhkRQJCxqZVOX00LjnwIIMjYtCk4JyGQEQEEGZt65tv4YaRjxrApPwEEGZvWgnMjKhkRQJCxWa9jMIRABgQQZGz6FNzpw0hVQORAAEHGpu8DOtuCa7U8B6LcBBBkbNpJCGfGsFutiEZTAFFuAggyNttG1AjXclN+AggyNtsUXITTECg/AQQZmxpAPbVi/PsGESg7AQQZm1rlFEXhVlSyIYAgYzNdPDe+GVULjpITQJCxmTactvcCqYAoOwEEGZvpOU+vS+nIhACCjM1U5WjBkQsBBBmbKWTODiHYB0S5CSDI2LlacJ4BUXYCCDKmBUfOBBBkbKaL55yITS4EEGRMC46cCSDI2Ez7gLTgyIUAgozNVAE5iodcCCDI2Ewhc3YjqjFsyk0AQabGGs2Y6c65Xi04MiGAIFOzbTTVgiMXAggyNduYdV/PmcNIVUCUnACCTLVbbEUx+XWHkZILAQSZarfY2oHT1ieAyIQAgky1A6hvSgC1hxBmOiUBykQAQabaLbj20TttZ1twjY6vCeZCAEGmRhozB1C/CohMCCDIVHsMe+ozIFdykwsBBJlqt+DaZ7+1tQPplACi5AQQZGrWKbjxFpwAotwEEGRqZJYAch0DuRBAkKnZWnBnj+IxhEC5CSDI1HgLrjZ5Cs59QORCAEGmZnsG5CgeciGAIFOzT8EZwyYPAggyNTLLPiAtOHIhgCBTo2PnPoxUBUTZCSDIVPsZz2wbUU3BUXYCCDLVroB66jNPwZ3SgqPkBBBkavw6htrMp2FrwVF2AggydWqWFpxnQORCAEGm2tctmIIjVwIIMtWucHpmuY5hrNmKZtMgAuUlgCBTs25EnfDxaFMVRHkJIMjU+BDCLPuAIrThKDcBBJma7Uruic+E7AWizAQQZGpk/CSE+qTX67Ui6jXnwVF+AggyNTpLBRRxtg2nBUeZCSDIVLu9NnUIIeJsKLmSgTITQJCp8Sm4+vS/xu1Q0oKjzAQQZGqkMfNZcBFacORBAEGmxp8BzdSCUwGRAQEEmTpXC278Wu4xY9iUlwCCTJ3diHqOFpwKiBITQJCp9hTc1LPgIia04DwDosR6Ui8AiLjhz/93XLawNy67pC8WL+gZ30xarxXRUyuiXqud/m+9iCIiiqKIoROnImL6adgRZ6uin7z+m/jLdw9HbXqRFLWimPAtopjha+B8/Oc/WjOvHyeAoAROjTXj0LFTcejYqTn9uKKIWHpp37TXL7+0PyIi/uq9oQuyPjgXAQQZ+6v/dGd89vlofPb5aBz/3WiMNVvRmPJtrNmKsUYzWhHROjNb8NXli+LKxQum/Xx//o0b4+ZrL4vRsWY0WxGNVivaBU5RnP7xrVZr/HPNlmEFOq9otfzJg5wNjwzHou2LIiLixJ+diEv7Lk28Ijg/hhAASEIAAZCEAAIgCQEEQBICCIAkBBAASRjDhsy1Wq04OXoyIiIW9i6MwpEGZEIAAZCEFhwASQggAJIQQAAkIYAASEIAAZCEAAIgCQEEQBICCIAkBBAASQggAJIQQAAk0ZN6AVB1rVYrjh8/nnoZ8HtZvHjxnA/CFUCQ2NDQUFx55ZWplwG/l8OHD8cVV1wxpx8jgCCxvr6+iIj46KOPYmBgIPFqus+xY8di1apV3t+LpP3+tv8cz4UAgsTabYuBgQH/g7yIvL8X13zuoTKEAEASAgiAJAQQJNbf3x/btm2L/v7+1EvpSt7fi+v3eX9dyQ1AEiogAJIQQAAkIYAASEIAAZCEAIKEduzYEdddd10sWLAgNmzYELt37069pCzN5X3cuXNnFEUx6duCBQs6uNru8Oqrr8bdd98dK1eujKIo4qWXXprzzyGAIJEXXnghBgcHY9u2bfHGG2/E2rVr46677orDhw+nXlpW5vM+DgwMxMcffzz+bd++fR1ccXcYHh6OtWvXxo4dO+b9cxjDhkQ2bNgQt912Wzz99NMREdFsNmPVqlXx8MMPx9atWxOvLh9zfR937twZjz76aBw9erTDK+1eRVHEiy++GPfee++cfpwKCBIYGRmJvXv3xubNm8dfq9VqsXnz5nj99dcTriwv830fT5w4EatXr45Vq1bFPffcE2+//XYnlssUAggSGBoaikajEcuXL5/0+vLly+PgwYOJVpWf+byPN9xwQzz33HPx8ssvx/PPPx/NZjM2bdoUBw4c6MSSmcBp2EClbNy4MTZu3Dj+8aZNm+LGG2+MZ555Jp544omEK6seFRAksGzZsqjX63Ho0KFJrx86dCiuuuqqRKvKz4V4H3t7e+OWW26J999//2IskXMQQJBAX19frFu3Lnbt2jX+WrPZjF27dk361znndiHex0ajEW+99VasWLHiYi2TWWjBQSKDg4OxZcuWuPXWW2P9+vXx1FNPxfDwcDzwwAOpl5aVL3of77///rj66qtj+/btERHx+OOPx+233x7XX399HD16NJ588snYt29fPPjggyl/G9k5ceLEpKrxww8/jDfffDOWLl0a11577Xn9HAIIErnvvvvik08+icceeywOHjwYN998c7zyyivTHqhzbl/0Pu7fvz9qtbPNniNHjsRDDz0UBw8ejCVLlsS6devitddeizVr1qT6LWRpz549ceedd45/PDg4GBERW7ZsiZ07d57Xz2EfEABJeAYEQBICCIAkBBAASQggAJIQQAAkIYAASEIAAZCEAAIgCQEEdKU77rgjHn300dTL4BwEEABJCCAAkhBAQNcaGxuL73znO/GlL30pli1bFt/73vfC8ZflIYCArvWTn/wkenp6Yvfu3fGDH/wgvv/978ePf/zj1MviDKdhA13pjjvuiMOHD8fbb78dRVFERMTWrVvj5z//ebzzzjuJV0eECgjoYrfffvt4+EREbNy4Md57771oNBoJV0WbAAIgCQEEdK1f//rXkz7+1a9+FV/96lejXq8nWhETCSCga+3fvz8GBwfj3XffjZ/+9Kfxwx/+MB555JHUy+KMntQLALhY7r///vj8889j/fr1Ua/X45FHHolvf/vbqZfFGabgAEhCCw6AJAQQAEkIIACSEEAAJCGAAEhCAAGQhAACIAkBBEASAgiAJAQQAEkIIACS+P9nwQEHcYqaiQAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from vbi.plot import pairplot_numpy\n",
"\n",
"limits = [(0.0, 1.0), (0.0, 1.0)]\n",
"\n",
"fig, ax = pairplot_numpy(\n",
" samples,\n",
" points=theta_true_np.reshape(1, -1),\n",
" figsize=(5, 5),\n",
" limits=limits,\n",
" labels=[\"a\", \"b\"],\n",
" upper=\"kde\",\n",
" diag=\"kde\",\n",
" fig_kwargs=dict(\n",
" points_offdiag=dict(marker=\"*\", markersize=10),\n",
" points_colors=[\"g\"],\n",
" ),\n",
")\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Inferred dimensions: param_dim=2, feature_dim=4\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Training: 88%|████████▊ | 442/500 [01:31<00:11, 4.84it/s, patience=20/20, train=-5.3835, val=-5.7185]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"best epoch: 422 best val: -5.740458732024926\n",
"True parameters: [0.1 0.1]\n",
"MAF mean estimate: [0.1008262 0.10208973]\n",
"Posterior shrinkage: [1., 1.]\n",
"Posterior z-score: [0.132, 0.538]\n"
]
}
],
"source": [
"maf_estimator = MAFEstimator(n_flows=8, hidden_units=128)\n",
"maf_estimator.train(theta, stat_vec, n_iter=500, learning_rate=5e-4)\n",
"print(\"best epoch:\", maf_estimator.best_epoch, \"best val:\", maf_estimator.best_val_loss)\n",
"samples = maf_estimator.sample(xo, n_samples=5000, rng=rng)[0]\n",
"shrinkage = posterior_shrinkage_numpy(theta, samples)\n",
"zscore = posterior_zscore_numpy(theta_true_np, samples)\n",
"print(\"True parameters: \", theta_true_np)\n",
"print(\"MAF mean estimate: \", np.mean(samples, axis=0))\n",
"print(\"Posterior shrinkage: \", np.array2string(shrinkage, precision=3, separator=\", \"))\n",
"print(\"Posterior z-score: \", np.array2string(zscore, precision=3, separator=\", \"))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(5000, 2)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"samples = maf_estimator.sample(xo, n_samples=5000, rng=rng)[0]\n",
"samples.shape"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plotting posterior marginals for MAF ...\n"
]
},
{
"data": {
"image/png": "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WCykpqby3nvvYbfb6dWrF9u2bePrr79Wj1cKQSoCAgKAnJYzCxcuLFINL7vdnqsoa162bt2aZwDVoEEDoqKiXHbKKby9vZkyZQqff/65y+yNssyoBHLJyckuAdTw4cM5cuQIp06dYtGiRdx5550u5+qed5bX68tsNl8zH7B169Zs3bqV2rVrc/bsWV599dViXxZzThw3GAy5Njrkp6Cvb+eekKJ8cV6Kd265JERJKVIQNXLkSL744otc18+ZM4cHH3zwuk+qtOj1es6ePYuPj4/6wde2bVteeuklunbtyty5c1m9erV6vMPhIDk5md27d3sMIktaSe88KmiQdq0PI2UJB3JqDsXExACuTYqNRiOhoaEAaqClNKjNzMzEz8+PhQsX8tBDD2E2m+ndu7ca1Dp75ZVXqF69OufPn+fTTz9l7ty5JCYmUq9ePVauXEm7du3Ytm0bAPXq1SMqKkq9rU6nY9q0adSuXZuEhAQWLVrE4sWL+e677zh8+HCBi2t6e3vTsGFD9fujR496bBickJCg7tS75557eO655xg4cCDPPfcczz//PCNGjFArrdvtdq5evXrNIKRLly5qMVIlF2nx4sXccsstACxdupRmzZqxYsUK7r33Xv73v/+pz0FoaCiffvopkDMD9c0331ClShUOHjzI+PHjCQgIwGAw8OSTT3Lo0KECveYbN27M999/j16v54cffuCbb75Rf6bUg7qePwKMRmOhAidnBX19K+8zUb7ExMS4/GH76KOPYjQa1Znuiio6OpqDBw+q37vndIqSVeA6UePHj1cv22w25s+fT0REhLoMtmvXLmJiYnjooYf4/PPPS+Zsi5HysMeNG0dcXBxffvmlmvAKcPjwYV566SVq1KjB119/jU6n4+DBgwQHB7vk3hRFQetRFCTRuzgVpFCh3W7HZDLlWopzLkCalZWFxWIhMTGRxMREAgMD8ff3d8lHgpylrcTERGw2G1lZWWRmZqp5ZytXruSNN94A4L777uPLL79Uc3LS09NdGtjOnTuXF198EY1Gg5eXF1lZWUydOpUxY8bw22+/8cADD6DRaJgyZQp2u50VK1YwaNAgqlSpQvXq1cnKymLXrl1s3brVpSGyTqejTp06VKtWjQ4dOqi5UpmZmeprwC8+Ht+0NFZ+9x2Lzp4FoANgAby9vLAFB3PZ25vs7Gz1eWvSpImaU5WQkJCrLlVqairbtm3j8uXLRERE0L17dxo3bpzrGKVPnt1uZ9GiRezduxcfHx8+/PBDbrnlFn7++WcWLlyoLof269ePl156iVq1arF+/XpatmxJREQE33//Pe+99x5paWkEBgby2GOP8eKLL6LVanE4HPj4+KjLs85SUlJcrsvIyFBfz5988gkTJkzAYDCwa9cubr31VpfXjfNrIa+elJ5ee84cDkeuwreeEsuV7/NbDnd/r6WkpBAcHCx1osoRpW6SYseOHdSpU8cln/GarrNOVHp6ujqTXNIJ3jExMURGRub6Y9ZgMPDDDz+o77GwsLDCPQeVVFHfowUOorp161awO9Ro1ETgG5Xzf6zLli1j1KhRfPrppzz66KMu/wEvX76c+++/n+PHj9OgQYNiG788/4eq5C05/zXv/qFks9mIj49XgyMlaVxZOnO+L2X2KT09HbvdztmzZ1mxYoU60/nMM8/wwQcfuHxYJicn891337F582ZeeuklbrnlFsaPH8///vc/AG6//XYWLVqEt7c37du35+LFizz22GO0b9+eZ555Rt2RN3HiREaOHOlyTn/99Rdbt27lhx9+4Ny5cy4/u/nmm5kwYQLx8fHUrFkTQ1wcvZ55Bp3Tzj13FmBsp05s+ecfLl68SK1atXj11VfVHZ9Xr151yTM6evQoEydOdOlPp9PpGDt2LB06dFCvO3/+vEs+ns1mY/LkyRw+fBh/f3+++eYbAgMDqVOnDl9//TWfffYZNpuNmjVrsmnTJrXNzAsvvMD8+fMB8Pf3V5+b2rVrs3jxYpo2bQrkBEjuy4xWq9VlZ53FYlEfl91uZ8iQIWzevJmbb76ZXbt2qS10lJIXCk/FWt03KyjHucvrmOvNH5Rim+WPexBVpCCmHAVRkBNImUwmLBaLumlF2fWqMBqNREdHSyB1DUV9jxZ4ztq5SnF5lZaWprbtUHbcDRs2jMOHDzNu3DiMRiNDhw5VZzkaNWpEkyZNZLePGyVhPC4uziXJ111ycjKhoaGEhobmuSyl3Jefnx9paWnUqFGDP/74Q/35li1b+P777xk2bBjx8fHMmjWLr776Si0UuXnzZmbNmsXbb7/N1q1buXz5stqY+MiRI1y8eJGQkBBef/11Fi5cqAYJkJNv5R5E1ahRg3HjxvHMM89w6tQpli9frvboO3bsmNoyBsA7JSXfAArAAPy9fTsXyVnOfPTRR3NVA3d26NAhNYBSWrtkZ2ezb98+lyDKnV6vp0ePHhw+fJj/a++8w5q63jj+zSALkO1mKEXEheKeCA7cVSvWgYtatWqtde9dZ1tbR+uq1m211TpwVOrqsipoVUAEZCp7BjIgyfn9gff+kgAKiCaB83me+yg3N/e8J7nJ/eY978jPz0dkZCTat28PkUiE8ePH46+//sK///6LFy9e4P79+7Czs0NAQACCg4PB5XIxY8YMTJ8+HfPnz8eFCxeQlJSEv//+mxVRFeXevXusCH327BmSk5Ph5ubGVq9PT08vUfm+KjNT9QPQKTWHQYMGwc7OziBLsnw+HxMmTGD//7ZxcnKCk5MTlEolO+7SpUvZUjwREREICAhARkYGFVFviRqz8B8REYHPP/8cEyZMwIgRI2BmZsYuLaxZswYKhQLjx49HbGws/Pz84O7ujqNHj6KwsLCEB6XKKCgADNDf6Y3QEkPmAAqUSpjz+cVzYVCpgIICWJuZFe8XiYqfp/Wlou91kAAQCIUQ29jg0PffY9++fTh+/DiePX6MTz/6COsWL0ZWVhaKXgb8tnJ1RYMGDXDz1i18NnkyvvjiC1z99Vfk5OTAzc0NeXl54MhkkACob2UFcwCe772Hnu3b487du2jm4YFRgweDo+cK58rl4Mhk4ABIiozEldOnIQHA43IREBCAvl27IiwsDDyFArxyxkyJAVhwOOjt44OGNjaAVoC2WWEheFq990YOHIiQW7eQmpYGFBaCD8DZyQmTR4/WOU7/ec+fP8fRPXsgAdC1Sxf0bN8eCoUCD//5BwsXLkTS8+ew5HIxffp0eLdrhxH9+yP0/n3Yi8XYsGEDevXqhSM//ohrFy5AAmDI4MGYMGLE/99XhQLQ/zFRVARoL7HJ5VBqNPjyyy+xfft2aAhBo9q1sWXLFjSwtmbPJcvIgFqtLhZLDg7F1waHU/J60htPVlrbIX2bXl6fZV6b5YU2RDZZVq9ebbA2KEKhkPXs1oRxKTWkd15cXBz69++PmJgYtG/fHnPnzsXgwYNhZmbGeqSA4jiOvXv3IiUlBY6OjkhNTcXFixfZDLCqgnUbAqCOfQrF+MgDYAXQ5TwTokp6yZlQ77zyQPvrlZ+3vpxnqqhUKvz8889o0qQJjh07hoULF2L9+vUAwAopps/a7NmzMXDgQDx//hyFhYVo3rw5GjRoYOAZUCgUCqW8MHGWpcXVvW2YmFEA73R8Q41LqQEiisfjwdfXF87OzmjTpg2CgoIwcOBAVkgNGjQIgpfZUzweD25ubnBzc3s3xr14AZjYr9LytN4ob1CvdpA6U/entIwsDoeDjIwMZGZmQiKRQCQSlegj99VXX+HrrVsBAE9f9pALDw/HoMGDAQASsRg9evTAsGHD0KlTJ/B4PPz0009Yu24dO1aH9u0xf/58zJo1C8kpKRg/bhxGjBiBuLg4NhsvJiYGn7/MVP3IywvbQkNf+5qdmTsXmY6OkMvl8PDwwIcffgiFUondu3YhIiKCLfWgPWft+KeHDx+ymXgMz58/h52dHRYtWoTUtDRY1aqF9evXw8/PD2fOnMH8BQsAADNnzGBjxFatWoVt27eDz+Nh165d6NSpE168eIG+fn4AgDmff4558+aVGkTOxBNqo1KpIBQKMXv2bBx/WbBzQP/+2LFjB9uCoqCgAImJiRAKhbCwsICnpyfyXsZrcAAQAAsXLMDcuXMrHLukf/2UllHKXK/p6ensZ9zBweH1N5m8PKB+/QrZQzEOmABrQ7Q/kclk7zSw3NDjUmqAiOJwOPD09GRdmWZmZjh79izef/99rF+/HhwOB4MHDwafz8e5c+fYatbvBHNz03MX64moApkMKqEQBQAkTA0oc3OYl6fpLiGQmJsXx8Xg5Q1PL0tLZG5eHPcil8NKKEROTg5UhCAzOxsNGzaEnYMDcnJycOriRcgADBw4ELUbNUJWVhaad+iABatW4eDBg4iNjcXpK1dw+soV1KlTB1u3bkXv99/H/adPcfLkSQDApJkzoRaJ4NmlC2JOn8YfoaEYOnYsVEIh1C8FRL333oNaKIRSqUTf998HyiGi1AIBVEIhVBoNfr99G1kvY6J+++sv1K1bF0UCASIiIlCvXj1YW1sXF+/UynrTHl97384ff0RsWhrq1KmD5StXorazM4hEAt/Bg+F29Cj+++8/7PzxR3Tv1w/R0dHY+LL0yJaNG9HR1xcEQF1XV3h164Y///wTv1y+jOnz54Nb2nVJSHFsmxayvDyMmzQJly5dAo/Hw7p16zBy5EjMX7UKMpkM69evh1qthlokgoLLRW0HB3z5/fdYsWIFnj17BgBwdXXFAH9/FAAV/+LXu35YtAUSEyPF4fw/yFwiKRlLpY9WdiSFQqGURbUXUQB0mqmq1WqIxWL8+uuvGDp0KNavXw+VSoVr167h3LlzaN++fYlf/ZSyeRutN7Qzq5hMSSary97eHtnZ2RAKhZDL5RCJRJg5cyYiIyNRv359bN++nW0xIxKJMGXKFHz88ccIDQ3FwYMHERwcjNTUVEyfPh07d+7EvHnzMHz4cBQUFMDDwwOhoaHw9fXF+fPnERYWht9++w0SiQTZ2dmsfe7u7nj48CGuX7+OQeWYz5PISCRmZsLGxgYXLlxg9wcHB8PHxwchISG4du0a+Hw+hg8fjjp16ugUz4uOjkbcyxpUDM+fP8etW7fA5XKxcOFC1K9fH7m5uWxF9h07dmDOnDm4e/cuhg0bxmb8TZ48Gb6+vmx2IwDMnTsXT548QUREBObOnYtly5aVyCySyWQ6n6OsrCyMGTMGISEhEIlE2LVrF5o0aYL3338fjx8/BgBcu3YNK1euRN++fdGwYUOIRCL06dMH3bp1w7Vr1xAVFYWPPvqIzc7U93K+zltU3ubCwP+zQCkUCqUqqREiShsejweVSgWJRIJz585h6NChCAgIgJmZGW7dukUF1GvQv0G9SU80/XMxf2sLMx6Px7aNYTP5XgoqiUSCEydO4KeffgKXy8UPP/zALiPZ2Njo1DDq06cPvL29oVar0bt3b4SEhGDNmjXYv3+/zvKti4sLnJycMHHiROzduxdnzpzB5MmTYW1tzR7Tvn17PHz4ELfCw6ERCMB9RZZeEY8HQb16sLeygkqlQlhYGFsUNDk5GTKZjBVoKpUKL168gK2trU4T5JycHNTXWlpSq9UIDg4GAAQGBrJlGl68eMG69K2srLBjxw5s2LABv/76KwBg7NixmDVrVonlQ4FAgO3bt2PMmDE4fvw4unXrxqZLM/B4PPb1TExMxPvvv48nT57AxsYGBw4cQIMGDeDv74+4uDjY2tqiYcOGePjwIWbPno3Jkyfj22+/ZRtTA8XtaJjrprK5LeWJ+6CxIRQK5W1SqbYvxopGo9EpUsjs04fP50OtVkMkEqFRo0awsLDAv//+S7MXjAT9/oH67TrEYjHs7e3x/PlzzJgxAwCwaNEidO/e/bXnFovFOHbsGOzs7BAZGYlNmzaVehOfPHkybGxsEBsbi4sXL+oc06xZM4hEItxLS8O6ceMQvGkTLi1dyj7eFcDOwEBsGjkSW6dNQ+5LQRQeHg6guEde8+bNAQApKSk6XqGHDx++dg6RkZFIT0+HRCLBokWLyjzOzMwM27dvx/Lly/HZZ5+xy9el0aNHD/a13LBhwyvHX7hwIZ48eYK6deviypUr6Ny5M1auXIm4uDg0aNAAV65cQXBwMGbOnAmguKL8nj17dBpT05gNCoVSHag2Iio8PBzjx4+Hn58fPvnkEwQFBQEobkeiL6yA4l/WO3bswO7duxEcHMze1CjGR2k9A5VKJUaPHo38/Hx069YNCxcuLPW5ycnJOtV7AcDZ2RmHDx8Gl8vFuXPncPr06RLPs7S0ZNvO/PXXX7hy5Qr7mEAgwPjx4wEAK3/4AX0WLsSIL75gH38AwKJHDyTVrs0KKKBYPJmZmSEmJgb3798Hh8OBg4ODTtsX/fYupVG3bl3WQ8f04isLLpeLadOmYcGCBa8t/terVy8Ar/cMMQU4eTwemjdvDgcHB7b9k1KphI2NDQQCAdtGic/no1OnTmwT6jdtcF0aVdU8m0KhUCpCtVjOi4yMRJcuXdC/f3+0b98ely5dwr179xAcHIytW7eCx+OhsLCQ7b3G8OGHH6J///46zWMpFUf/plveXmjlPbdYLGaXkmQyGVJTU7FmzRq28vbWrVtLCCW1Wo2wsDD4+vqiWbNmuHbtGlQqFSuoO3fujMmTJ2PPnj3YvHkznJ2d0aJFC+Tn57Oeoc6dO2PWrFnYtm0bzp49C6B4KU+hUKBt27bo378/QkJCij1kWsUZW74UGXl5eWyrE3NzcwiFQowYMQLHjx8HULzEyOfz0bBhQ3h6esLa2hr16tWDVCpFVFQUe77c3NwSPwS8vLxw9+5dzJ07F5aWlhAKhcjIyNBptpqbm1ui2a5MJishpjIzMwGA7RvYsGHDEuOlpKQgLS0NW7ZsQc+ePVGvXj08f/4cW7ZswbJlyzBjxgwcPXoUkZGRmD9/PoYPH461a9cCKC5+yAivjIwMFBYWlhpHV1qmnTb5+fmsJ0sikej0ztP2VjJZe8xx+v31SqO0a5hCoVBeh8mLKEIIDh06BD8/P/bmtGTJEmzbtg0///wzpkyZgj179rAC6ty5c+jcuTMcHBzYjfJ2eN1NsTzoC6+CggKcOXMGBw8eBFC8VOTi4lKilYpGo8GSJUtQWFiIBw8eYMmSJdiyZYvO+VavXo2UlBScO3cOS5YsQWBgIPr06QNnZ2f2mIULFyIjIwPHjh3D+fPn4ebmhvr160MikWDMmDEYM2YMAOBFVBSwZg0AYP78+VCLRBCJRLh06RKioqLg7e2Nbt26oV+/fkhNTUVWVhb8/f2Rnp6u0wMPAB4/foxGjRqxf8vl8hK9G9977z3ExcUhNTUVixcvhoeHBywtLdG2bVs4OzvD1tYW+fn5JV537abR2tSqVQtpaWkAinsE6j8vNzcXEyZMQFxcHC5fvoxPPvkE27dvx6ZNmzBx4kSIxWJs3boVgwcPxpkzZ3Du3DkAwKRJkzBx4kTIZDI4ODiw3ihtEcW8J69r1aLtyWJq4ejH0THxctrHlYequFYpxkGvXr1gY2OjkwjxruDxeBgxYgT7/+o+LqUaiCgOh4MXL14gJSWF3WdpaYlZs2ZBJBLhxIkT2LhxIxYtWoSgoCDMmDEDEyZMwJo1a8r1C5VSfvRvRFXZC42Bz+dj48aNAIBZs2ahf//+bJ8obX777TfcunWL7T+3a9cuNG7cGNOnT2eP4XA42LlzJ6KjoxEeHo4tW7bgyy+/xKFDh+Dr68seN3nyZCgUCpw+fRpffvkl3NzcMHnyZJ1gb/0GySuXLkVSUhK77+bNm/jzzz+xdu1aTJo06Y1fB4FAgOnTp2P16tUIDw9n462Y1g/btm3Tse91yOVy/PnnnwCgI+AYli1bxmYIqlQqnDp1Cl5eXggNDYWPjw9GjRql0/dPrVajTZs22LJlC9RqNSuKXpXN+bpMT+2EgtKey/RfZJb0KlJ1+G1cq5S3C9N8lyEiIgIAsHnzZoPFt4pEIpw6darGjEsx8ZgoxuXu5eUFtVqNyMhI9jFLS0sEBgaiTZs2OH/+PAoLCzFw4EAEBgYiMDCQCqi3gH4AeGmxTG8Ks3QF/H8ZqjS++eYbAMCnn37KxkstWLAAq1ev1lmqsbS01GlCrJ2FxsDhcLBkyRIsWLAAQqEQUVFRWLJkCX766ScotPrXMaxcuRJJSUmoVasW5s6di5MnT8LBwQFqtRrp6ekljo+Li8PChQuxZs0aXLhw4ZXz0uZVvzgrKgQWLFiABw8eQCQS6QhIBu1sQaA4+3HFihUwMzNDbGwsNmzYgIsXL+ocU6dOHeTl5el4dyQSCRwcHMoUUdoJBaXNyd7e/pVzk8lkEAgEFS5p8DauVcrbIyEhAR4eHmjbti27BQQEsNcIhfKuMGlPFOPKHzBgANasWYPNmzfj22+/hYWFBQghsLGxwfLly+Hs7IzffvsNgwYNwurVqw1sdfVF35NQlbV5tL1cP/74I/z8/HD06FF4enqW8OzcuXMHt2/fhpmZGWbPng0zMzMQQrB582Zs2bIFaWlp+PbbbwEUp+svX74cQHGl4yVLlsDT07PE+BwOBx9++CG6du2KxYsXIzw8HBcuXEBQUBC4XC7EGg3mvTw262Uh0AULFqB3794AwFb71q8EHhsbi6NHj7LeE6Y+VO3atdGmTRsMGzas1NejsLAQO3fuBFC8/NaqVSvY2tqiS5cucHJyAp/PR0pKCgghSEhIgJmZWZmeqcePH+P06dPgcDg4cuRIiaVDAFi3bh1sbW2xd+9etGzZEvv27YODgwP279+Pbdu2wdXVFS1btoSnpyeUSiU++OADXL58GRcvXsSAAQPYiu+lUaDVWPh1IkY7w6+0a+tV3qpXQetImRYZGRmQyWQ4cuQIPDw82P329vZwcnIyoGWUmoZJiygGV1dXnDx5Ev3794dYLMaqVavYXyNmZmZo1apVido4lMpRWsAtE0iuHfD7qucxgki75hNz49MXGSqVCkBxULFKpUJ+fj46duyIFStWYNWqVViwYAErhBhRzQikESNGsLFwc+fORZ06dTB//nwcPHgQzs7OGDFiBDZv3gyVSoUOHTpg9+7dyMrKQl5eHoDiTLPo6Gj88ccfSE5ORnZ2Nvr27YsxY8YgMTERP//8MzIzM6FWq6FdSMPtvfcw6WV6f0JCAoDi4pRA8VJfbGwsgOKM0lOnTkGtVsPd3R1t27bFf//9h4iICKSlpeHKlSt49uwZunbtWiLr7O7du0hLS4ODgwNWrFgBoVCI1NRU1K1bF3K5HGFhYfj999/x+PFjJCYmQiAQYMeOHWzs0+XLl+Hp6QlnZ2eseRnLNWzYMHTo0AFZWVlQq9X4/vvvIZfL8fnnn6OgoACzZ89G7dq10blzZ9jZ2UEqlaJfv37o168fgOJAeub9GzduHA4fPowtW7awWX8MCoUCGzduxOnTp7Fx40Z4eXmBEKIjwJn3XRuNRvPaeCd9MUQIKfV6pPWjqgceHh46S3cFBQXse2uI9icFBQUGab9iqHEp1UREAYCPjw9OnToFf39/JCcnY+TIkWjVqhUOHTqEtLQ0ODo6GtrEakdZPfJed4Nilv2YG6FMJoNUKkVGRgacnZ1LPZdYLIZcLodYLIZGo8G0adOgVquxdu1abN++HRwOB5s3b8azZ8/YZaW+fftCpVKBz+fDwcEBn332GSwsLDB16lTs2LEDHTt2xM8//wwAmD59OgoLCxESEoLHjx/jr7/+wtOnT0tkqV29ehV9+vTBrl27MHfuXHZ5Li02FggIAIDiBAdzc8TFxcHBwUFnibN169awtrbGnTt3cPLkSWg0GvTq1QsKhQLNmzfHt99+i8ePH+PBgwdYunQpoqKiYG5uDn9/f3b5LjExEffu3QNQHP/h7e0NAJBKpQgJCcHMmTN1KqwDxZ6rZcuWYdOmTTh48CAuXboELpeLBQsW4NGjRxCJRNiyZQtbbHbFihVsfJVSqcSSJUsQEBCAW7dugc/n49ixY+y4DNrZcitWrMDly5cRHx+PI0eOYJ1Wj8Lly5fjq6++AlAs3A4dOoSOHTuWWDIEiq8x5n1n6ksx11xpS/L6+8qbZVdW4VcKhUJ5FdUqMGjw4MH4+++/kZmZiYULF2Lw4ME4ffo0goKC0LBhQ0ObV+3Qj4EqL0z8iXacjFKphFAofOW5ZDIZMjMzkZ2dDbVajZkzZ2LXrl0AgO3bt+PBgweQSqXsDZDJDGPKBcjlcgwePBju7u7IysrCxIkTUfiy2viSJUvQtm1bzJ49G/v27UNERATUajVsbGzQuXNnfPDBB6wdoaGhIISAx+Ohbt26qFu3rk4cRmk3ZKbiOVO/7MyZM9BoNPDx8UH37t3x119/YeXKlYiJiYG5uTn8/PzwxcvaUw8ePMC+ffsglUrx4sUL7N+/HxqNBn5+flAoFIiPj2fHun//Piug2rVrh8OHDyM6OhotWrRAWloa1q1bx8YOajQa7N69GwDw2Wef6SyDMOUOgOKAXZVKxQaeq1Qq/Pvvv2W+TwBgbW3NFtvUP/bOnTsAADc3NxQVFSE6OrrMpTy5XA6VSsWWsHhd3BSFQqG8S6qViAKKg8zPnTuHGzdu4MyZM/jrr7/Qpk0bQ5tVLalsMC4TXMwEcEskEjg5OcHS0rLU2kGZmZnIzMxEfn4+8vPzARR7VmQyGcaOHYuRI0eCEILFixejVatWuH79OoYMGQIOh4OrV6+id+/eOH/+PLtsuGPHDri5uSE9PR0ikQh8Ph8vXryARqOBi4sLJk2ahP379+O///5DZGQkDhw4gJiYGADFMRe7du2qkKeCx+Oxwe2nT5/GzZs38fTpUwBAQEAALl++DKBYnDC1lQDAz88P27Ztg0AgQGxsLHbs2IF9+/ZBLpfDxcUFDRo0wCeffIIpU6awz5k1axZbuT0qKgqNGzdG3bp1cfLkSdjb2yMmJgZWVlZo2rQpmjZtiuzsbDRo0ABLlizRsXnHjh3w8PBAo0aNsGnTJgiFQsyZMwdAcXzX3Llz2WNLK2arvZ8pusmwcuVK2NjYICoqCl27dsW4cePKvIZkMhni4uIqXUSTFuGkUChvk2onooDi1GYXFxe0bNmSZmq8RRgxpB+bwsShaG9qtRoajUZnU6vV7ONisRi2trZsTBWzyWQyFBUVASgOyrawsIClpSXEYjHMzMxQUFCAZcuWQSAQ4Pr167h06RLatWuH77//Hv/88w+7VDZ8+HAcOnQIhYWFaNy4Mc6ePQtPT0/IZDJwuVxMnjwZf/75J3755ResWbMGffr0ga2tLRQKBWbOnIkHDx7AxsYGhw8fhp2dHSvo8vPzkZ2drdMw+MKFC5DL5cjMzERSUhKSkpLQrFkztGvXDoQQbNu2DYQQODs7QyqVsp4aLpeLoKAg/PHHH0hPT0d6ejo8PT0xatQo2NnZITc3FzKZDPXr10fr1q2xf/9+AMWB4ffv30d4eDh27NiB7OxsuLi4IDc3F4MHD8bdu3dha2uLH374ATweD/fv34eVlRWePHkCDoeDGTNmQK1WQyqVQiqVQiaToUGDBrh8+TKuXbuG+vXrQy6XY/78+Zg/fz7Onz8PS0tLPH36FGPHjoWTkxM++eQTPHr0CEVFRezGLHUycVj5+fnQaDTw8vLCTz/9hIULF+LkyZOoU6dOifddo9GAEAKFQsEGyesLodKuM+Z5zFZZbymFQqGUC0J55+Tm5hIAJDc319CmvBU0Gg275efnk9TUVCKVSolardbZVCqVzrFqtVrnb41GQ3Jzc8mzZ8/Is2fPSG5uLikqKiLZ2dk6++RyOZkzZw4BQJo3b06kUilJSUkh6enpJDk5mYwePZoAIADIpk2bSGpqKklNTSXPnj0jffv2ZR/r0KEDCQ4OJvn5+ey2evVqAoCYmZmR48ePk5iYGPLgwQNy9epVMm/ePNKpUyciEomIBCDk5SYByKlTp8hff/1FQkJC2O3w4cOkUaNG7HhTp04lixYtIgBI69atycSJEwkA4unpSaKjo0lMTAyJiYkht2/fJg8ePCD+/v7Ez8+PHDp0iJiZmREAxNbWlgAgn376KVm1ahXh8XgEABGLxcTJyYkAILVr1yb//fcfycnJIZs3b2bHB0A+/vhjEh8fT3JyctgtKyuLFBUV6Wy5ubk6r8umTZuIUCjUORcA4uvrS+Li4ohCoSDjx48nAMi8efPI8+fPSWpqarnfd2Zfamoq+eOPP8jDhw9JampqmddZWedirr/8/PwKXcNV/Rmt7p/5d01ISAgBQEJCQnT25+fns9diRd/zlydgP8ekEs9/4/ErSVnjlvU6UUpS2c9otfREUYwH7SDyisAsw8jlcsjlcqjVajYuRqFQlKgFtGjRItja2iIsLAwDBw5kM+z4fD6+/fZb+Pj4AAD27NnDVqkXCoXYv38/Jk2aBD6fjzt37rCFPBmYvnoikQj//fcfli5dir59+6JPnz748ssvcfv2bSgUCljrBUX/8ssvJeYkFAqxevVqCIVCcLlceHt7s5l6RUVF7P8fPXpU4vWytLTExo0b8d133+HChQsoKirCgAED8OWXXwIo7u937do1qNVqcLlcyOVyNG/eHM2bN0daWhrrtRo5ciSmTZsGAHBxccFSrcbJ5eXu3btYuHAhlEolevfujVOnTmHYsGHg8Xi4du0aWzKCKevw008/IT4+vlIlBBwcHNCmTRvUqVOnXOUP4uPjdZb/JBIJjaGiUChvDSqiKG8VJm4KKE73T0hI0BEIZcWsMOIrKysLAoGAXcqSyWQQiUQoLCxEZmYmEhMToVAoYGNjg0OHDsHS0hK3bt3CsGHD2Cr29+/fxx9//AEAmDdvno5dVlZW2LhxI7Zu3QoAbOsTBqYGklQqxcaNG3HixAmkpaVBIpFg4MCB+Prrr/HPP/+wWX4A0KZ1ayxevLjU16Nx48bYtWsXtm7dCicnJ4wcOZIVfzdv3oREIsG6deteedNnguG7devGZuxJJBK2FpNGU1xwoXnz5myj5OjoaPb5q1atwtGjR3Hx4sUKiwtCCBs/NWbMGFy5cgUffPABfvnlFxw7dgxAcdC8TCbD3Llz4erqisTERAwZMgRPnjwBUBwsXlackrZ4Zihr2Vgfpt5Ufn4+Xb6rofB4PAwYMAADBgwwWNsXQ4xv6HnXZKpNiQOKccJ4i9LT09mgcG0PknbMinalcCaV3dbWFkCxR8nMzAxyuRx8Ph8KhQJyuZwVDEqlEt27d0dwcDCGDBnCeqT27t2Ljz/+GCqVCj4+Pvj444/ZGCyBQMA2CGZanTAB7Azu7u44duwYTp8+jeDgYDRt2hSdO3fGwIED2crpeXl5GDpyJCJePmfx4sVIS0tDZmYmXrx4gb179yIvLw8FBQUoKiqCUqlE3bp18fnnn6NJkybYtGkTZs2aBWdnZ2zatAkA2BYrzPm1ewMyMWJKpZIVfRYWFqhduzZ7DIfDYYP1ASAmJga5ubnIzc0Fj8dDjx49ABR79aRSqU5TYv1mzsw+CwsLXLhwAf/88w/EYjGWLVumU4fJ19cXjo6OSExMxK+//ooPP/wQly5dwocffoj79+/D398fly9fhpmZGUQiEVsrjHm+/vVQWqydNhqNRifAXzvD71XiUP882q8ZxbQRiURsBmxNGv914zItcRhoUdKqg4ooSpVT2s1I/wbH1PMpq+4PczwjkjIyMpCRkQF7e3tIpVLk5+ejsLCQFVlqtRoKhQLt27fH1atXMWTIEMTFxcHPzw8AUK9ePWzdulVnDB6PBw6HA3Nzc3aJLycnh12GYnBzc8O6devYWkeFhYXsrz2VSoXx48cjITGRPX7nzp2YuXAhsrOzsXTp0lJFSVJSEubOnYsPP/wQixYtwq1bt9imunFxcWxJBKC4T17dunXZvxn7OBwO682xsbFBnz598N1330Emk7FVzJljExISIBaLwePxdM4NgBU12ujXW2IC+VetWgUAmDp1KurXr4/MzExWFNeqVQsjR47EV199hQMHDsDX15cNUG/ZsiXi4uLw448/YvLkyWxWJ4fDKfG+M9fDq0QNU6NM+3mMN+51Yog2GzY9yuqTR3k1TJukgJc17BgkEgkiIiKokKoCqIiivBPMzc1LbWxbnlYfDNbW1pDJZGwdpPr168PR0REymQwKhYI9T4sWLVghFRERAT6fj1OnTqFRo0ZIT0/XuXky5zt48CD7t1qtLrdL/Pr16wgODob2rfjmrVvo2rcvrly5ArlcDnt7exw+fBjm5uawtbUFn8/HN998g127duGnn36CUqnE+vXryzUeANYrtWbNGlZk2tragsfjwdPTE//88w/at28PtVrNNiVlCpoy3rPK8PvvvyMqKgq2traYNGkSsrOzIRAIdKqHjxs3Dl999RX++OMPuLi4wNHREZ06dUKjRo2QlpaGX3/9FQsXLiwh5BjK236F8Vjl5OTA2tq6Qo2DabNh04Lpk6e//Ev75L0eJycnRERElBCgAQEByMjIoCKqCqAiimISMJXNCwsLUatWLSiVSraVj1gsZpetGCwtLfHDDz/gu+++Q9++fdGxY0e2RUtBQQHMzMxw8+ZNnDp1CpcvX0biS0/SnDlzyi2gkpOTYWtrCzc3Nzx/WdATAOrUrg0PDw8QQnD79m1kZGRgx44d2L9/P1uV+5tvvkGfPn3g7++PX3/9FZ06dcKQIUNeOV5KSgrkcjkmTZqEyMhI3L9/HwBQt25djBs3Dvn5+Zg+fTocHR3Rr18/zJ8/H6GhoQCAwMBAWFpasvFUlUEqlQIo7tVnZ2eHvLw8yGQynRtZ8+bN8eWXX+LgwYMICwtDYmIi+9oCwMcff1yiwXNlPEOMx4oZuyKxXfo9HinGTUX65BUUFLDL2mlpaQZp+2KI8V81rpOTExVLbxEqoigVwlDxJNp99goKCthAY6YtiLm5uc7NWSQSwcrKCitXrmQFlpmZGcLDw7F161bcvHmTzeADir1c3377LXr27In4+Hh8+umnaN26NVasWFFiOa6oqAhcLhfdunVDSkoKjhw5giWffQa8jE9atWoVhEIhGjZsiDVr1mDlypUICgqCv78/zpw5w3qS+vTpg8DAQOzbtw9r1qyBu7s7nJyckJeXpxOjpFQqERMTg/fffx9yuRyXLl3CV199hZycHMhkMjg5OYHL5SIjIwP16tVDx44dMXPmTGRlZUEsFmPjxo0YPnw4lEol8vPzdc4NFIsY7ZgrpVLJ9hxkUKlUbPFMjUaDwsJCiMViqNVqZGZmQigUgsfjQaVSYezYsRg+fDgKCwvx999/Izw8HPfv38fgwYPRu3fvEuOVFRf3qmtKIpFALBZX6roTi8VsGyHGM1nZc1HeHfp98srC0IVVDTW+oeddU6EiimLU6MfmMAU3GRQKBdRqdYmGtJaWlnB2dmY9DkwwemBgIBu0bWdnh759+8LPzw/e3t6wsLBAeno6RowYgaioKNy6dQuJiYn47rvvdOwQCATYunUrnj9/DgCYP38+Th07BvTuDQDYtGkTTpw/D6A4UL1ly5b477//cOvWLUybNg0HDhxghcy6desQERGBv/76C9OnT8f27dvRokULHTFRUFCAqVOnssuYP//8M8aMGQNnZ2ed18bFxQVBQUH44osvoNFo4O7ujqNHj6Jp06bsMaXFPwkEAh1PnkgkKuGN017iZJpNC4VCxMTEQKPRICsrC/Xq1UNBQYFOOYqePXti4MCBAID09HQIhUIUFRXpNJ1mxDATB1XenoyVFT3M8+iyHoVCeVNoiYMKUJYXpqZiDC01tEsoMMHnjPtfv8/aihUrEBcXhwYNGuD69et48OABtm3bhoEDB8LCwgJSqRSjRo1CVFQU6tWrB4FAgDNnzuCDDz5ATk4OO6ZCoWAb6IrFYiQlJbHp/QAQFx8PHx8f3LlzBwsWLEBISAgbA3Tq1Cns3buXPZbH42Hv3r1wc3NDcnIyRowYgVmzZrFtZu7du4dx48bhn3/+Yee5f/9+XLt2Ted1yM7Oxueff461a9dCo9Fg1KhRuHjxoo6AqiwajQaXL1/GN998AwBsJXmgOBZLW5SJxWLw+XyIxWJYWVmxdZpq164NFxcX1KpVS6fpdEJCAgDolDB4V1XGK9u2iEKhUBioiHoNT548waJFiyCTyai7Xw9jaKlhbm7OxsWoVCpkZGSwxT0JIbh58ybboJeJC8jIyMC9e/d07FYoFBg3bhwePnwIBwcH3LhxAz/99BNq1aqFv//+GwMGDEBycjKAYs9NnTp1APy/HABTowkAWrVsiczMTJ16T0wAOJfLhZubm84c6tevj5s3b2LatGngcrm4du0a+vfvjw8++AAffvgh/vvvP0gkEjbjTS6XY/ny5di8eTMKCwvx4MEDjBkzBv/88w9EIhG2b9+OXbt2vVIcMGUSXoVSqcSBAwfg5eWFDz74AHfu3AGfz0fv3r3ZbEg7OzvUrl2bjU+TSCSws7ODRCJBbm5uifeqdu3arPeJaTqtL8Lflbgpb/0pCqU6EhERgdDQUHZjftBQKkgVVk2vdjx8+JDY29uTcePGkYiICHa/RqOp0HkUCgXJzc1lt8TERJNtAVEVLTWq0gaNRkNUKhWRSqVsO5fU1FQSHx9Ppk6dSgAQiURC9uzZQyIjI4mfnx/bHkEikZCJEyeS69evkwEDBhAAxMLCgvz888/seU6fPk3s7e0JAOLo6EguXbpE0tLSyKFDh9jz9OzZk6Q+e8a2i0iJiSEjRoxgH7e0tGRbxxw7dozk5eWx27Nnz8jz58/Z7caNG6RHjx7sc3k8Hvnggw9IWFgYyczMJCkpKeTTTz9lH3dycmJbvTg5OZE///yTJCcnk8ePH5Pg4GBy4cIFcujQIfLFF1+QiRMnks6dO5M6deoQDodDBg0aRJ4/f06SkpJIVlYWu6WmppKcnBzi6empM4dPP/2UhISEkOjoaBIaGkqePHlCYmNjSU5ODlEqlUQqlRK5XE7kcjlJTk4miYmJJDk5uUS7n6KiIqJWq9n3rLSWQGq1+rXve0U/h686j367mJycHNr2xUioSOsS2vbl9ePGx8cTiURSomWTRCIh8fHx78hi46Oyn1EqosogNTWVNG3alMyePZvdp1KpiFwur/C5Vq5cWeKCpV+oled1N1OlUkk++OCDEq/3mDFjyOPHj8mKFSuIq6triceFQiE5ffo0K2wYgfjvv/8SZ2dn9rjBgweTBw8ekEGDBhF3d3fy7NkzUpCWxn75FuXkkMLCQrJ+/XrC5XIJAGJlZUUuXbpEFAqFzpaenq7Tty4nJ4dkZGSQ33//ncyfP5/8999/pKCgoEQvu59++onY2NiwNo0cOZJERESQCRMmsGOWZ+vQoQOJiYnRGT87O5t89dVXBACxsbEhmzdvJhkZGTrCJzY2ljx+/Jg8evSI7YmnVCp1eu2lpKSQnJyc1wqk0t7P0gRSVYmo8lxTVEQZD1REVf248fHxOn09jxw5UuN77FERVcU8evSI9OzZkygUClJUVETGjx9PfH19SePGjcnatWtJeHh4uc9VnTxRxsDrPGFMI18+n0+2b99OZs2axX7BDBkyhOTn55OUlBQSFBREhg4dSrhcLuFyueTAgQMkPDycPHv2jD0v46WIi4sjY8eOZQUKj8cj69atI3K5nGRkZJCf9u9nv3znTJ1KCgsLSUFBAbl48SIZN24cCQkJIXl5eeUWUdrHFBQUEJlMRoYOHUq6d+9OpFIpyc3NZUXTrl27yIsXL3SaG/N4PGJnZ0dcXV2Jl5cXGTZsGFm6dCk5ePAguXPnDrl27RrbvLh58+YkIyODHT8lJYUVaF999RXrPdL29sXGxpLw8HASGxvLepK0RRSzKZVKHfHEnEP7PaMiivIqKiKiZDIZ8fb2Jt7e3kQmk1V8sDcUUW88fiV503Fpo+LKf0Zpdl4ZJCUlISoqCrm5uQgMDERhYSECAgLw8OFDBAUFISIiAhs2bChX/Q2hUPhGRQ4ppaMdk6UdP8Nkzbm7u2P48OGQyWT49ddfkZCQgJSUFDYmx8/PD/369cPz588hl8uhUqlQWFgIQggb48RkijEFMxcvXox58+bh8uXLWLZsGX755ReEhYWBX1iIkS/H37V7N5p36IBRo0bB19cXvr6+APBGNZpWr16NX3/9FQBw7tw5DBo0CI6Ojti5cyeA4towTAPjr776CkOGDAGfz4dMJoNQKISlpSUbO8ZkGi5duhRz587VqeMEFMd5MZmA3bt3Z/sVJiUl4fDhw2jatCl69er1ymKHTOkJkUgES0tLNhtPJpNBIBDovGeVqRNVVgZfVUHTxU0TsViMGzdu1LjxDT3vmgwNLC+DBg0awM7ODtevXwefz8eePXswadIkbN26FTNmzEBoaCiePn1qaDNrNGUFIH///fewsrJCWFgYFi5ciDFjxiAhIQH29vZYu3YtIiIikJ6ezh7foEEDvPfee7C3t4dAINARBvrB882aNcP+/fuxYsUKAMXNjQsLC+GsJ6Y//fTTKrs+fv/9d2zevJn9+8iRIyWOqV27Nrp37w6gWEQyQd329vawtLQsIU7kcjnbdHnu3Lk6taOsra3h6ekJALh79y7y8/Oxb98+dO3aFevXr8f48eMxa9YsncBxpvJ7ZmYmMjMzkZSUhLS0NGRnZ+P+/fsYNGgQjh8/DgAl3rPKJCi87aQGKqIMS0JCAhvwTFu8UIwZKqLKoGXLlqhXrx7Gjh2Lf//9V6e8QUBAAIRCIS5cuGBACw0DedlwltkKCgqQlpZmkAy9srKrXF1d8d1334HD4eDIkSO4e/curKyssHPnTrb3XnR0NKRSKVQqFVQqFaRSKQghqFevHuzs7KDRaKDRaCCRSMDn8yGRSNh9IpEI06ZNw6lTp7Bp0ybcv38fd+7cYcfv0rkzZDIZxo0bh7y8PBQWFrKbWq1mt5SUFAQFBWHlypUYNmwYlixZgvj4eBQVFbHHJyUlYfLkySCEwMfHBwDw22+/ISoqCjk5OTrb+++/D6DYU2Vra8sWtLSzs4NYLAYhBEVFRVCpVFi3bh2SkpLg5OSEgIAAKBQKdpPJZOjVqxcAYNu2bejXrx8++eQTZGVlwcnJCRwOB7/88gvatm2LrVu3QqFQICMjg224rFKpoFQqweVy8ffff8PHxwc3b97E3LlzERkZyYo65vqRyWTIzc1lvUvM6/wqyhLQ+ten9ue2otcWxTAwbV7atm2Ltm3bIiAggLZ4oRgvVbWeaMpERUWRrVu3ktmzZ5OzZ8+SqKgoQggh6enppFevXoTH45Fjx44RhULBPmfo0KHk+++/r9R4phwfoR87kpqaygZhGxNqtZosWbKEACBisZgcPnyYxMbGktTUVPLnn3+SR48ekZSUFDZ2JyUlhSQlJZGUlJQS8Tt5eXk6cT0qlapkdldeHhtL8e+1a8TBwYEAIIGBgUQul7PxT2fOnCEfffQRcXNzKzXQm8fjkcmTJ5OCggIil8tJnz59CADStGlTEhcXRzp16kQAkKVLl5L09HSdLTo6mojFYgKAHDt2jISEhJDU1FSdGLKUlBTy6NEjNmPw4MGDJDc3l+Tn57Nbbm4uuXLlio5dlpaWZOPGjSQnJ4fcunWLtG3bln2sZcuW5LfffiP37t0j9+7dI2FhYSQ2Npb8/PPPRCAQEACkVq1aBABp2LAhSU9PL3H9hIWFsddRWdl55UE/Vq6ycVNV/Rk15c/8u4aJzzly5Agb+FzerLH8/Hxib29P7O3tDRZY/kbjV5I3HZfGRNGYqErz+PFjeHt7o0uXLtBoNDh8+DDatWuHmTNnYtCgQdi+fTsCAwMxa9YsxMXFoXHjxrh//z7+/PNPnSWWmoox9yFbvXo1mjdvDhsbGzg6OgL4f1dzJlYIABurA4Cthi6TyZCQkMDWMZLL5SWa42rH5Wh3g3N0dMS2bdswevRo7N+/H5mZmVCpVLh27VqJFjJNmzZF165d0apVK/z888/4448/sG/fPrRv3x7NmjXD1atXIRQKsWrVKojFYkyaNAm3b9/Ghg0bYG1tjYkTJ7LnsrS0xPDhw3H06FGsWbMGR48e1RmroKAAhYWFmD59OqRSKby8vDBq1CgoFAqd4+RyORtrxeDu7o5mzZqBx+Ohbt266Nq1K0JDQ0EIwaNHj/DkyRP07t2bbQUjk8lw/fp1Ng5szpw5WLVqFZKSkhAdHc3WlWKuH4lEgpycnCrxNtBK5NWD8rZ50Ue72a4hMNT4hp53jeXtaDrTIDs7m3Tr1o0sW7aM3RccHEzMzMxIkyZNyLFjxwghxSnzH330EWnXrh1xc3Mj3bt3J/fv36/0uKb8q7S8mVSGprSMMH2PEpNNlpKSQqKiokhYWBibkp+amkqio6NZrwrzf6lUynqitI/JT01lf8GmPntG8vPzyc6dO9kaTsxWt25dMn78ePL999+Te/fu6Xi+UlNTWe9Z/fr1ybhx4wgA0qdPH/Lvv/+SsLAwkpubSz7++GP2fAsWLCBpaWkkPT2drY/F1LWaOHEi641hPDRMuQ2RSERCQ0PZcgSMFyoxMZF07tyZPb9AINApmfDee+8RPp/P/u3m5kbWr19PHj9+THJycohUKiVhYWHs69K6dWud+Q8YMIDIZLISdb60PZrUE1WzeROvCC1xULlxqSeKeqIqhVKphFQqhbe3NwghUKlU8PX1Rffu3aFWq7F37164urqiQ4cO2LdvHzIzMwEU9x+rVauWga03LchbbFxc2rkJIey5GQ9SWXE2YrEYmZmZEAgEkMvlEIvFEAqFIITA3t4ehBC8ePGC9UoxHiyJRMI23y0oKADji3NwcAAkEgQGBqJBgwbYvXs3WrVqBR8fHzg6OoLD4bBNcJlxmPNNnToVhw8fRmJiIg4fPgwA+PDDD8Hn8yEUCqFQKPDdd9/B0tISX3/9NTZv3ozo6GisWbMGtWrVgrW1Nb7//nv4+/vjxx9/xJAhQzBkyBAAwKNHj/DFF18AADZs2ABXV1fWyyYWi5GcnIzhw4cjPDwcVlZWOHbsGJo1a4bExETs27cPv/zyC6KjowEAnTp1wpQpU9CvXz9wuVx2LmZmZnBycoJMJkOdOnVw+fJljB49GtevX0fDhg3x9ddfQy6XIzU1FUCxZ1AoFLLeQcZzRMqIZ9K+XvLz83X67zHP0/cYUigUytuixgaWE0KQlZWFuLg4KBQKcDgcmJmZISYmBjk5OfD390dMTAyuX7/OPsfOzg52dnY1WkBxOJxSN2ODy+WW2Ph8vs7fAoEAfD4ftWrVgrOzM2rVqgUOh4Ps7GxwOBzY2dmBw+FAqVSyWW7m5ubg8XhsE15HR8cS2W/MayIUCjFkyBAEBQVh+fLlaNOmDeRyOZRKJWQyGRwcHGBpacnaY25uDkdHRyxZsoQ9V7169TBmzBg0adKEHYfL5WLz5s3YuXMnOBwOTp8+ja5du+LcuXPg8Xjo378/Zs2aBQD46KOPkJSUBKlUijFjxkClUmHo0KGYPHkyeDweeDwexGIxXrx4AT8/P4SHh6Nu3bq4ceMG2rVrB4FAAHd3d+zcuRMhISHYuXMnrly5gmPHjsHPzw88Hg+1a9eGpaUlBAIBuFwuLCwsULt2bVhYWMDBwQFBQUHYtWsXzp49CxsbG6hUKuTn57MiiMfj6TyHeT1eh0wmY1v86L/2xnxtUiiU6kONFVEcDgceHh4YNWoURo8ejfXr12P79u1o06YNOnfujBkzZmDy5Mk4deoUWzuIYvxUtiky09cNKO7Bx8QuMfWjAOg0M34dBQUFOnYwPeUcHR11yijI5XKd42QyGVq2bAkPDw8AwJgxY8Dj8djsJG2xNmHCBFy8eBFt2rRBbm4uZs6cib/++gsAsHz5clhZWSE7OxvHjh3Dr7/+itjYWNSvXx87duwoIS6mT5+O+Ph4uLq64ubNm2jVqpVOZqJYLEaTJk0wYsQItGjRAkDJUgVlIRQKMXbsWDRs2JA9l4WFBSwsLN7IY6RtH4VCoRiCGrWcl5SUhLCwMOTl5aFdu3Zo1KgRdu3axTZ3tba2xoIFC7B8+XIAxcURLSwsIBAIDGw5pbyUVYCzvIjFYlZAMcu3rxILrDdEqYRFGXZo3+Tt7e11gqeZ5zPHFRQUwMrKCmvXrsWdO3ewaNGiEuMxS1gymQytWrVCUFAQFi9ejIMHD2LJkiW4fv06tm7ditzcXFhYWGDAgAFsCQaJRAJra2udcz58+BDXr18Hj8fDgQMHYGVlhYyMDJ20cuZHBBMIbmVlBbFYXClPj1gsLleRWu05v83CmhQKhVJZaoyIevToEfr06QMnJyeEhoaidevW6NKlC7Zt24avv/4aixcvhkAggJWVFfuclJQUvPfee1CpVOwSDqVqeFs3Ru1sQW3vYVlVsfXfUyaehsmo4/P5sLOz0ylGqX+8TCaDWGv5iakvVVBQAJFIxHqyVCoVW7uJQSQSQaFQsDFbTO0rJycnDBkyhK0eznhwGNGlnYljb2+P5cuX45dffkFISAjmz5+PvXv3AgA2bdqEevXqoVWrVgCAmJgYpKam6rzm27dvBwAMGjQIjRs3Rk5ODiwsLJCRkQGxWAyRSAShUAiBQMDGcgG6cWfM3/qvN/N6ai+9iUQinddAo9HoiEOmhhSzpFeWMNY+J/VGUYDiZfx27dqx/68p4xt63jWZGvFq5+bmYty4cRg9ejSuXr2K+Ph4DB06FNeuXUP//v0BgI1PAYDY2FjMmzcPp06dwueffw4+n08F1BuiH6dSlRWntc/LLMvp31TLOx6fzwefz4eFhQXMzMxgYWFRQkBpx1UxsTz6QlAikcDGxgYSiYS1jcfjlYjT0r6umDgrJv6Kz+dDoVBArVZDLpeDy+VCJpMhNjYW2dnZEAgErOjg8XgYO3YsAGD37t3QaDT48MMPMWHCBJibm6NRo0aoU6cOCCF49uwZRCIRRCIRcnNz2XYyU6dORW5uLhsrxiRbKBQK9keEXC5HRkYGa09Z8UfM6y2Tydh4L8ajpx+bxsxLO75J/z0tzRuovV/7XJSai1gsxt27d3H37l1W7NeE8Q0975pMjfjGyc3NhVwux8iRI2FlZYUGDRpg9uzZWLlyJWJjYzFyZHHXMy6Xi+TkZBw/fhw3btzA9evX0bx5cwNbXz0p68b4LsYrT9wUI8aqwj6ZTIbMzExkZ2cjIyOD9bowVb6lUikSEhJKtYexmxGFMpkM5ubmUCqVyMnJ0Tn2o48+Ks4MBODm5obdu3eznr7atWujdevWAIBjx46BEAKZTIaZM2eisLAQnTt3Rtu2bWFtbc3GbzEeOO0v5fKKUf33tzyvp/58tM9V2nOr8j2iUCiUylAjRJSlpSWKiorw999/s/ssLCwwZMgQLFmyBJGRkdi9ezcAsK1eLl26hDZt2hjK5GrPu74Bagdmv4u+azKZDC9evEBiYiK7NJiVlcV6WxjPC1BcaoMpn1Ca3XZ2dqyIYvr7WVlZ6cQ22dvbw8nJCVu2bEHPnj2xb9++Eq/tJ598AgA4cOAA1qxZg/fffx9Xr16FWCzGqlWrWOED/D8ejCmKmZWVxQq48ojfslryvAr9WC0KhUIxdmqEiJJIJOjRoweCg4Px6NEjdr9QKMSIESPg4uKi0wHb2dmZ/UVPMSxMvSD97U14G14w/XggZisoKIBCoUBqaiqUSiUKCwvZJTg+nw9ra2s0aNAAFhYWEAqFbN85qVSKtLQ0SKVSFBYWsv3kbG1t0aRJEzRo0ID1UBFCIBaLYWVlhaFDh+LEiRPw9PSEWq3Wec2GDBmCDRs2AAC2bt2Ku3fvwtraGt988w1at27NCh/g/xmKBQUFeP78OfLz81FQUACxWAx7e3uIxWJoNJpKvS+lvZ/6mXZv432nVH9kMhlcXFzg4uJikCbShhrf0POuydSIwHKhUIh58+ahd+/eWLduHdavXw9XV1cAxQLL29sbR48epQGq1YjSYtiYfW8jy0s7Fsfc3Bx4GeDOwHidJBIJ21rGwsKC3c/Yw4ivrKwsqNVqWFhYoEGDBiVifczNzdkYPgYzMzMIBAJ2f2miY8GCBUhPT8fXX3+NevXq4ccff4SbmxvMzc11Xh/mi/j58+fQaDQoLCzUOUabiiYJ6Af5M7FlzOtSlu0UyusghCA+Pp79f00Zv6rGjYiIYP/PeLcpr6ZGiCiNRoMWLVrg7Nmz6NWrFzQaDaZPnw4fHx8AwJMnT9CwYcMyM7AolIogkUgAiQTOzs7gcDg6vwxLExnaVcOZulRyuZwVL7a2tjqCiRFajAjRz4Qr7RhttmzZAn9/fzRp0gQ2NjYAdEUnc56MjAwIhUIolUo4OjqW+QOjomUlaG87CsW4YEIdAgIC2H0SiQQRERFUSL2GaqUamOUFHo+ns4/L5UKtVqNjx464efMmJk+ejHnz5kGtVsPFxQXXr1/HrVu3aD0oI6Ws8gSmgkQigYuLC4DSPWSMcGLikACgYcOGbCsahUIBS0tLnWVCgUCgU1tKP9Vfv/6UNhwOBx07dmSPK8uLxDyvTp06r8z4qWgTamNuWk2h1EScnJwQERHBlk6JiIhAQEAAMjIyqIh6DdVGRIWHh2P9+vVISUmBm5sbBg0ahIEDB7ICisfjQa1Wo23btjh79ixCQkJw7do1ODo6YuPGjWjatKmhp0ApA1P0XLxK+BUUFLCPCYVC1gNVWFgIgUAAHo8HOzs7dj9TV0k7GF0/841ZOmSKZDKeJKVS+Urx+Sovkn5PurLm9rpeddrz1X5OeY43lfebQjF1nJycqGCqBNVCREVGRqJLly7o378/2rdvj0uXLuHevXsIDg7G1q1bwePx2BsUIYS9WIYNG2Zo0ynlwNCeC/0YA/0ik0Cxx5Pxf8pkMhSguEFuZmYmHB0dIRaLWS+ptnDRrvXEiCamKTFT2JJpnMws3dWqVQsikQhcLpc9DiiuyM8U87S1tYVEImHHEYlEbJkFGxsbthJ5aa9taTEVGo0GCoWCFThM02VtkVNWI2h9EfyqIp1A+UVzWcKOergoFMq7wuSz8wghOHToEPz8/HD8+HFs2LABf/zxB4YOHYobN25gypQpAMAu1Z07dw5paWmGNJlSAbQLaDKBzcZW+JSpA8XA3MyVSiUEAgFbD0qhUADQzQ5kinsyjZDr1KkDKysrdl9hYSFb50y7SS9T/FK7eKmZmRmys7Mhk8nYsXJyclj7EhMToVAokJGRwT6PycjTFh6lNW/WFn/A/z1hr2r2y9TC0j4eKFl4Vb9/oPbrU95mwm+7bAWFQqGUhsmLKA6HgxcvXiAlJYXdZ2lpiVmzZiEgIAD379/Hxo0bAQBBQUGYOXMmtm3bxv66p1DelIKCAqjVavZvZhnK0dGRDQjXrsZdkRpKFSluaWFhATs7OwgEAnYsa2trdhlQLBbrND+uKIy4qV27drns1xZdrzpef46lCbvy2ka9UDUbDoeDZs2aoVmzZgb5sWWo8Q0975qMSS/nMcsCXl5eiIqKQmRkJNzd3QEUC6nAwEBERkbi/PnzmDNnDgYOHIjAwEBMmDCBtoeglJvXBbZrxyQB/w/IFovF7BJcZctnlHcpUyKRQCQSseMxy2ZyuZwVTU5OThCLxRW+9rXnX5H6aeW1vSqWa18XZ0WpGUgkEoSFhdW48Q0975qMSSsJRnEPGDAAkZGR2Lx5M/Lz8wEUCywbGxssX74c//zzD3777TcAwOrVq9G4cWOD2UwxPbQ9JYSQEkUmxWIxW9m7NJhq6ZXpaVVRr4x2ZXamMCazlSUy9Ata6s+vLG9YWc9j2uoAgI2NDUQiEVssVKPRlCgCKhKJWCElk8loYU0KhWIymLQnisHV1RUnT55E//792RYWzK9vMzMztGrV6pU3OQrlVWh7SjgcTonGwQDA0fLucDgc4GXD4cpQHnd8acfoj1dZb6t+/JH+/Bn0PXSlNZcWiUSvnY/+c8rrUaLLFhQKxdBUCxEFAD4+Pjh16hT8/f2RnJyMkSNHolWrVjh06BDS0tLg6OhoaBMpJkppS0WmXruqLCoyr7KEj7boksvl7PKi9jHa44jFYoNnYFIMR0JCApuAAOhWza4oMpkM7du3BwDcvXv3nX82DTX+2xpX/72gVcxLUm1EFAAMHjwYf//9N+bMmYOFCxeCz+eDx+MhKCgIDRs2NLR5lGoAc/MvK83f1ClNGJVVS6os4aMtmNLT0yGVStmifaWdk4kdq06vI6V8JCQkwMPDo0S/N2ZZuqIQQhAeHs7+/11jqPGretzSKpgDtIp5aVQrEQUAXl5eOHfuHLKysiCVSlGvXr1KZyNRKPqUluZfXrQzQrWDzbV7xgHlq0tV2j6gcktc2uNpCyNmP7NPIpHozIEJZH8V2u1jtAPe9cehS3M1g9K8TjKZDEeOHIGHhwe7n3o8DIt+BXOAVjEvi2onogCgVq1aqFWrlqHNoFQTSosPsrKy0hVQ5RQB+q1bZDJZCRH1rilLwDD7mcw/uVzOVkQHwPbm067/pI+FhQWcnZ1ZwcTEk+l7nqiIqv68yuvUvXt3emM2MmgF8/JRLUUUhfK2eNOK2PqtW0rz5Bgy3kp/OU+7uTFjO3MTLG/TYVpFnAIUtySiXidKdYOKKArlHaLduqU8xSclEgnkcnmpouptiC39OCf95sb6TY7fVBzRdi01Dw8PD3h5eRnaDAqlSqAiikJ5h5QngFo/XqisLLiqaszMFOVkxrSxsQGXy2Xjn3Jzc9kaV0z9KaC4mKh2WQX9LgDMsuWrBNKrGiBTKBSKsUNFFIXyjihv3SZGaJXWe46JHWJ6CpZWv6mivKq2k0wmg1qtRlZWFhvD9Sqxox0wzyz/6QuksmpQUShvCofDgbOzM/v/mjK+oeddk6EiikIxUhhhw/Sr06cql8BeJ2bEYnG5shG146YYIfWq59BlPEpVIpFIEBcXV+PGN/S8azJURFEoRsq79NJoLzNqL8sx9WIkEkm57NCOm2I22qeSQqk+0AKculARRaEYKcZQgJKxobwF/IzBZgqFUvXQApylQ0UUhUKpFEyzYcZbVp4+eRTK20Qul6NHjx4AgFu3blWq6bcpjv8uxqUFOEuHiigKxch410JEf7yKNE7WzxCkIopiSDQaDe7du8f+v6aM/67GpQU4S0KDFSqAIXoxUSjGjLm5eYXb31AoFEp1gXqiXkNRURHMzMwA0NRRCkUfGgNFoVBqMlREvYLw8HAsX74c+fn54HA4WLZsGVq2bAkrK6sKnUepVEKpVLJ/5+XlVbWpFBNF37v5JhW89WOUSlteK8ubqn1cWcsBVZVlV5oN9AcKhUIxRehyXhlERUWhc+fOqFWrFjp06ABCCPz9/fH1118jPj6+QufasGEDrKys2M3R0fEtWU0xdbRjjAzxfAam0Kd+s1htOBxOia2iY6Snp79yDIppk5CQgNDQUISGhpZIjadQqgPUE1UG+/fvR48ePXDgwAF235o1a3Dy5EkUFBRgzpw5qF+/frnOtXjxYsyZM4f9Oy8vjwopSqm8aW2oij6/LM+XfrPh17VvqQy05Uv1JiEhAR4eHjoiWSKRwN7e3oBWUShVCxVRZVBUVASZTIaioiJwuVzweDysWLECIpEI+/btg5ubG6ZOnQpCyGt/gQuFQgiFwndkOcWUYWKMKru8VdEYpbKEjHbRzLLat7wptOVL9YbxZB45cgQeHh4A3k1hRkOLNEONb+h511SoiCoDBwcHPHnyBFKpFLa2tlAqlRAKhViwYAGSkpKwevVqjBo1qsLxURSKMVGWkNEXY69r31IZaFB6zcDDwwNeXl7vZCxzc3Okp6e/k7GMaXxDz7smQ2OiymDhwoWwtrbGsGHDABR7kxQKBQDgiy++gEqlwpUrVwxpIqUaUFpcUWW9UOU5j/7j5ubmqF27to5A4nK5OpuFhUWJY96EqpovhUKhGBrqiQIQHR2NCxcuID4+Hj4+PmjevDlcXV2xa9cujBkzBr1790ZwcDBEIhGA4iUQe3t72NjYGNhyCoVCMQ4SEhJKVLOmUKo7NV5EPX78GN7e3ujSpQs0Gg0OHz6Mdu3a4fPPP4efnx/27duHadOmoVWrVti8eTMkEgmuXr2KnJwcuLu7G9p8CoVCMTilBZED7z6QXC6Xo3///gCAS5cuGaTtiyHGN/S8XyeYq3OT4hotonJycvDJJ59g+vTpWLt2LQDg999/R//+/fHs2TN88cUX8Pf3x++//47p06dj2rRp4HK5kEgkuHDhQrW9KCjvjvLUbaru0NfA9CktiBx49zdPjUaDmzdvsv9/1xhqfEONW1ZTYn0kEglOnz4NBwcHnedWh3tojRZRSqUSUqkU3t7eIIRApVLB19cX3bt3h0qlwnfffQdXV1d4eXnh8uXLePLkCYRCISwtLWkmBIVCoejxLoPIKYantKbE+qSnp2P48OHo16+fzn6JRIKIiAiTF1I1VkQRQpCVlYW4uDgoFApwOByYmZkhOjoaOTk5CAwMxObNm3H16lX2S6Fp06YGtppSHdGvMl7TeZOq7RQK5d1SnqbE+kIrIiICAQEByMjIoCLKVOFwOPDw8MCoUaMwevRoLF68GJaWlliyZAkmTJiAGTNmICsrC6dOncLnn38OMzMzurxAeSto12qiIooW4aRQqhvlEVqmSo0SUUlJSQgLC0NeXh7atWuHRo0aYdeuXZBIJDhw4ACsra2xYMECLF++HABQWFgICwsLCAQCA1tOqc7U9KKT+jFRNf31MAVoJh6FUkyNEVGPHj1Cnz594OTkhNDQULRu3RpdunTBtm3b8PXXX2Px4sUQCAQ6xTNTUlLw3nvvQaVSgcfjUU8UpcphajXVZMGg/7l606rtlLeLsWTiUSjGQI0QUbm5uRg3bhxGjx6NVatWIT8/HwcOHMCJEyfQv39/XLp0CQ4ODmxWQ2xsLHbu3IlTp07hr7/+Ap9fI14mCsUg0Jgw40fb8xQREWEUmXhlYehryFDjG3reNZUaoQ5yc3Mhl8sxcuRIWFlZwcrKCrNnz4a7uzuWL1+OkSNH4uTJk+ByuUhOTsbx48dx48YNXL9+Hc2bNze0+RRKtYbGhBk3ZTUS7t69u1GIJm2YpeCaNr6h512TqRFtXywtLVFUVIS///6b3WdhYYEhQ4ZgyZIliIyMxO7duwEA9erVw9ixY3Hp0iW0adPGUCZTKDUGc3Nz8Pn8Gr2kacxo14AKCQlBSEhItUhNp1CqghohoiQSCXr06IHg4GA8evSI3S8UCjFixAi4uLjgxo0b7H5nZ2edomAUCuXtIZFI4ODgQL1QRg5TA8rLy4sKKEqVEBERgdDQUISGhiIhIcHQ5lSKGiGihEIh5s2bh/v372PdunWIiYlhH5NIJPD29sbTp09LBEpSKJS3T1U2YabUbBQKBQYOHIiBAweyDeNrwviGnndF0a503rZtW7Rt2xYeHh4mKaRqREyURqNBixYtcPbsWfTq1QsajQbTp0+Hj48PAODJkydo2LAhDSCnUCg1Cv1SBaVhSuUL1Go1Ll68yP6/poxv6HlXFP1K56ZcfLNaqQaNRgNCCHg8ns4+LpcLtVqNjh074ubNm5g8eTLmzZsHtVoNFxcXXL9+Hbdu3aL1oCgUSo2hrFIFpUHLF1CqmupSgLPaiKjw8HCsX78eKSkpcHNzw6BBgzBw4EBWQPF4PKjVarRt2xZnz55FSEgIrl27BkdHR2zcuJG2dKFQKkhpjYPpMpxhKM2jVFrJgfKUKigNYylfQKnelMfraWzXYrUQUZGRkejSpQv69++P9u3b49KlS7h37x6Cg4OxdetW8Hg8FBYWQiAQgBDCKuBhw4YZ2nQKhUJ5I15V/FI7i86UShVQahbaMVKvo6oaF+v/8MjPz6/UeUxeRBFCcOjQIfj5+eH48eMAgCVLlmDbtm34+eefMWXKFOzZs4ddqjt37hw6d+6M2rVrG9JsCoVCKRev8zJplyBgPEqlxZiUdpyx/aqn1Ez0Y6TKgrmu//jjj9d6T19Feno6hg8fXiXJZCYvojgcDl68eIGUlBR2n6WlJWbNmgWRSIQTJ05g48aNWLRoEYKCgjBz5kxMmDABa9asAZdbI5ITKRSKkfDgwQNYWFiwf+uLGH3BVNaXfWm/xpkSBNpoL48w/y/tOArF0JQnRqoiHqvXIZFIcPnyZbacUUhICKZMmVLh85i0iCKEgMPhwMvLC1FRUYiMjIS7uzuAYiEVGBiIyMhInD9/HnPmzMHAgQMRGBiICRMmGFRAMbEkeXl5BrOBUsVoVwvOywNMIEPmTSGEQCaTQSaTVbt+d8xns7S4r8rAnMfb21tnv1gsxpEjR2Bvb4+MjAwEBARALpeXOOaXX35hA7sjIyMxZcoUXLlyBe7u7oiMjARQvBzB2C0UCiEWi0vcbMRiMYRCYbX97tGu2p2Xl1fxTLU3/By/8fiVxFDjvmusra1x584dZGZmvvG57Ozs4OjoyP6dmpoKoBKfeVINiI6OJvb29iQwMJBIpVJCCCEajYYQQkhCQgLhcDjk/PnzhjRRh8TERAKAbnSjm5FviYmJ9DNPN7rVoK2in3mT9kQxuLq64uTJk+jfvz/EYjFWrVrF/mozMzNDq1atYGdnZ2Ar/0/9+vWRmJgIS0vLCv1yz8vLg6OjIxITE1GrVq23aOG7gc7HuKlO86noXAghkEqlqF+/fpWMX9nPfGUw9ffNlO03ZduBmm1/ZT/z1UJEAYCPjw9OnToFf39/JCcnY+TIkWjVqhUOHTqEtLQ0HbedoeFyuWjYsGGln1+rVi2TvMDLgs7HuKlO86nIXKysrKps3Df9zFcGU3/fTNl+U7YdqLn2V+YzX21EFAAMHjwYf//9N+bMmYOFCxeCz+eDx+MhKCjonX+BUSgUCoVCqd5UKxEFAF5eXjh37hyysrIglUpRr149WmmXQqFQKBRKlVPtRBRg+q7IshAKhVi5ciWEQqGhTakS6HyMm+o0n+o0l9dh6nM1ZftN2XaA2l8ZOIRUUQ4vhUKhUCgUSg2CVpukUCgUCoVCqQRURFEoFAqFQqFUAiqiKBQKhUKhUCoBFVEUCoVCoVAolYCKKAqFQqFQKJRKQEUUhUKh1FBMPTnblO03ZdtNnap87amIMnGUSiUKCwuh0WgMbQqFQjEBioqK2P+/7T5+b4MnT55g0aJFkMlkJme/9vc0h8Mxue/tnJwcPH36FMnJyVCpVIY2p0IkJibi1q1bAIpf+6oSUtWy2GZNISIiAl988QWioqLQsWNHBAQEoEOHDoY2q9JER0fjwoULiI+Ph4+PD1q1agUXFxdDm1Upnj59iiNHjiAhIQG+vr5o06YNWrZsaWizKk1GRgbkcrlR9aB8E2JjY3Hx4kU8e/YMffr0ga+vLwQCgaHNeuuEh4dj+fLlyM/PB4fDwbJly9CyZcsq7RP4Nnn06BF8fX3Rv39/JCQkoGnTpgCKPQvGLqiioqKwY8cOpKamwtzcHN9//z0EAgE0Gg24XOP3Zzx+/BgTJ06ETCZDWloa1q9fjylTphjarHKRkpKCNm3aoEWLFliyZAn69u1bZdeL8b9zlFIJCwtD165dIZFI4O3tjRs3buDcuXOGNqvSPH78GB07dsTvv/+Op0+fIjAwEJ988gkuXLhgaNMqTHh4ODp27Ii7d+8iNTUVCxYswOzZs/Hjjz8a2rRKER4eDnd3dyxfvhzPnz83tDlvzKNHj+Dt7Y2ff/4ZN2/exMCBA/HDDz8AgMl5BipCVFQUOnfujFq1aqFDhw4ghMDf3x9ff/014uPjDW3ea0lLS8PIkSMREBCAQ4cOoWnTplCr1VAoFEYvoB4/fowuXbogOzsbZmZmuHPnDrp27QpCiEkIqKdPn8LHxwfe3t44duwYRo0ahWXLlqGgoMDQppWLjIwMAMCLFy+wadMmBAcHQ61WAwD7b6UhFJMjNzeX9OrViyxYsIDdt2nTJjJhwgSSn59PCgsLDWhdxcnOzibdunUjy5YtY/cFBwcTMzMz4u7uTo4cOWJA6ypGYWEhGTduHJk8eTLRaDSEEELu3LlDJk+eTJo1a0a+//57A1tYMZKTk0mnTp1I9+7diVgsJpMmTSLPnz83tFmVJi4ujri6upJFixaxn5OtW7cSe3t7kpycbGDr3i6LFi0igwYN0tm3evVq0rx5czJ37lyjf18fPXpEevbsSRQKBSkqKiLjx48nvr6+pHHjxmTt2rUkPDzc0CaWyvPnz0nr1q3Z72uNRkNCQkJIkyZNyNWrVw1s3etRq9Xkk08+IaNHj2b3ZWVlkQEDBpCwsDDy7NkzkpGRYUALX49CoSAfffQRefDgAenYsSPx9vYmN2/eJIQQEhUV9UbnNn4JTCmVzMxMNGnShP37+fPnCAsLQ+vWrTF27Fjs3bvXgNZVDKVSCalUCm9vbxBCUFRUBF9fX3Tv3h1169bFDz/8gJCQEEObWS74fD7i4uIgFArZX8ft27fHvHnz0LNnT+zbt89kPIaEEDx+/BiOjo44cOAALl26hCNHjmDZsmV48eKFoc2rMGq1GsePH4enpycWLFgAMzMzaDQa9OvXD5aWlibzq7qyFBUVQSaToaioiP31vWLFCowfPx7nzp3D+fPnARhvwHNSUhKioqKQm5uLoUOHIjk5GQEBARgyZAiCgoKwbt06JCQkGNrMEty+fRsSiQSffPIJgOJ4nGbNmkGj0SApKcnA1r0eLpcLqVQKgUAAhUIBAPjmm29w9epVfPDBB/Dx8cHMmTPx9OlTA1taNkKhEPfv30dOTg5OnjyJ/Px8rF+/Hr6+vvD390dhYWGlr3sqokwMQgjy8/NhZmaGe/fuISgoCKtWrcK+ffswadIkzJs3Dw4ODtizZw/+/fdfQ5v7WgghyMrKQlxcHOuWNzMzQ0xMDHJycuDv74+YmBgEBwezxxsrjG2tWrVCeno6srOz2cfc3d0xbdo02NnZ4fTp0zrHGyscDgctW7bErFmz0LhxY3h7e+O3335jhZT20p4pLIPxeDx4eHjAzc0NNjY2AIpvEM7OzlAqlXj+/LlJzKOyODg44MmTJ5BKpeDxeFAqlQCABQsWoF+/fli9ejVyc3ONdmmsQYMGsLOzw/Xr18Hn87Fnzx5MmjQJW7duxYwZMxAaGmqUN/L27dtjwoQJbHxnUVERRCIRHBwc2PfA2HFwcMBvv/2GhQsXYurUqdi4cSOOHDmC69evY+PGjUb9Hc38YGjfvj3+++8/ODk54ebNm7h37x5u376NKVOmQCAQVD7Y/I38WBSD8eOPP5L27duTwYMHk/r165Pjx4+zjz169Ig4ODiQw4cPG9DCijF16lRiYWFBvvjiC7Jt2zZiYWFBZsyYQQghZM2aNaRt27ZEqVSyS2TGhrZdJ0+eJGKxmOzZs6eEvadOnSJ8Pp88e/bsXZtYIUp7nZnlrxs3bhAzMzN2aU+lUpFt27YZ9dKEWq0usY+ZY0FBAXF2diZ//PEH+9jvv/9O4uPj35l974pmzZqRHj16sH/L5XJCCCF5eXnEwcGB/PTTT4YyrVz4+fkRHo9H6tatW+Iz5OnpST777DPDGFZOtK9DX19fsmXLFvbvXbt2GfX3wqeffkoWLlxIevToQZYuXarzWM+ePckHH3xgIMvKxzfffEM+/vhjQgghgYGBpHbt2sTDw4P4+fmRoKCgSp+XZueZAElJSQgLC0NeXh7atm2Lxo0bY8KECejbty8EAgF69uyJOnXqsMc7OzvD1dUVZmZmBrS6bLTn065dOzRq1Ai7du2CRCLBgQMHYG1tjQULFmD58uUAgMLCQlhYWBhl9lR+fj5EIhH4fD6bZePv749Hjx7h008/hUQiwYgRIyAUCgEAbm5ucHd3N7DVZaM9H6KX8cQsf3l7e+Pq1avo06cPOBwOlEolzp49i9DQUANaXjqlvT8MHA4HarUaarUaYrEYlpaWAIBFixZh165dCA8PN5TZb4x+pmvz5s3h6uqKXbt2YcyYMejduzeCg4MhEokAAAUFBbC3t2c9dIZG3/5mzZrhvffew5EjRzBq1CjcuHEDt2/fRv369dnPVqNGjdhsPUOinZnr4+MDLy8vncxc5josKioCj8cDAKxcuRJr1641imtOP7O4RYsW8PLywrZt2wAAAQEBqF27NoD/z6VOnTp47733DJ4l+aos4oYNG+Lq1auYPHkyLl68iDt37kAkEqFLly7YvXs3evbsCYlEUvFBq0bjUd4WDx8+JHXq1CHt27cnPB6PtGvXjvXQEFIctNiiRQty9OhRolAoiFqtJkuXLiVOTk5G+Utafz5t27Yln376Kft4WloaycnJ0XnO5MmTyUcffUSKioqMyhMVHh5O/Pz8yLFjx1gvTVFREfv4/PnzCZfLJWvXriV37twhubm5ZP78+cTNzY2kp6cbyuwyKW0+pb3ezK/p33//nXA4HGJjY0NCQkLeqa3lobzzKSgoIC4uLuTevXtk5cqVxNzcnNy5c+ddm1tlPHr0iNja2pJBgwaRAQMGEDs7O+Ln50cuX75MCCHk8uXLxMXFhbRs2ZJcunSJ3Lx5kyxbtozUq1fPKL4zyrL//PnzhJDi97VTp07E3t6erF+/npw4cYIsXLiQ2Nvbk6dPnxrU9rCwMGJtbU369etH+vXrR+rUqUN8fX3JgQMH2GMUCgUhhJDOnTuTH3/8kXzzzTdELBYbxWeoLPt/+OEH9pgJEyaQ5s2bk/j4eBIREUFWr15N7O3tSUREhAEtL7bd1taWTJgwgSQlJbH7mc/8ixcvSP369YmzszMJDQ1lH3/+/PkbeQCpiDJicnJyiKenJ5k9ezbJyckhSUlJZO3ataRFixZkwIAB7HELFy4kXC6XdO7cmfTq1YvUr19f5yIxFsqaT/PmzUm/fv3Y45ib9LNnz8jcuXOJlZUVefz4saHMLpXY2FjStGlTYmZmRrp06UJ++eUX9kat7bLfunUradasGbG1tSWenp6kbt26RvnevGo+pQkPuVxOPv/8c2JlZWWUWVEVmY9cLietWrUi3bp1IwKBgNy7d88QJlcJr8p0dXNzIydPniSEEBITE0P8/PyIs7MzadSoEWnevLlR3MRfZX+TJk3IsWPHCCGEKJVK8tFHH5F27doRNzc30r17d3L//n0DWV1MRTNzBw0aRKytrYlEIiF37941hMk6vM7+HTt2EEIISUlJIW3atCECgYB4eHgQDw8Pg7/25ckiVigU5NSpU+TJkyfsPpVK9cZjUxFlxMTHx5MmTZqQv//+m90nlUrJyZMnibu7u84a9P79+8lnn31G1q9fT6Kjow1h7mt53Xz8/f3Z/S9evCBffPEFadu2rdGJjqKiIrJlyxYyZMgQEhoaSvr06UPatm2rc6PW/nA+ffqUXL9+nVy5ckXnF5KxUJ756AuPkJAQ4uzsTP79919DmPxKKjIftVpNUlNTiUQiIebm5uThw4eGNP2NSUlJIZ6enuTq1atEo9GQwsJCotFoiK+vL+nRowfp2bOnjliKiIggz549MxrP6Kvs9/b2Jj4+PjrXXEZGBsnIyCC5ubkGtLoYjUZDunfvrrNSQAghT548IdOnTydt27YlZ8+eZfcPHDiQcDgco/mB+Dr7vby8WPtVKhU5ceIEuXnzpsFLY2g0GnL16lXi7+9PoqOjS8Rs6h9b1VARZcRkZWWRRo0akS+//FJnv0KhIAcPHiStWrUiO3fuNJB1Fac889m1axe7Py4ujqSlpb1rM18LU+eF+VVfWFioc6NWKpWEkKr5lfMuKO98tL+ApFIpyc7ONoS5r6Uy89m9ezd58OCBQeytKjQaDQkPDydWVlbs0hchxXVwvLy8yI4dO4iTkxPZuHGjAa0sG1O2X6PREI1GQ2bMmEFGjhxJsrKydB5/+PAh6du3L5kwYQL7vXD//n0SGxtrAGtLUl77x48fb5TfaykpKeSPP/5gP9PXr19nhZT2D9fSEkzeFCqijBiFQkEmTJhA+vXrV+IXckFBARkyZAgZNWqUgayrONVpPvpfJDKZjL1Rnz59mo2N0v7laczU1PmcOXPGANa9XUw909XU7K9oZm5MTMy7NvGVmHJmsTFkEVMRZeQ8evSI1KlTh4wcObLEMt1XX31FvLy8SEFBgYGsqzjVbT6E/P+GXVBQQPr06UPatWtHTp48SaZNm0bq169PXrx4YWALK0ZNm4+hlyPehMTERHL58mVy8uRJnZvb559/Tt577z3Srl07smbNGnb/smXLiLe3twEsLR1Ttl8qlbJiXNvDsXz5ciIUCsmRI0fYIHJCCHnw4AFp3ry50YgQU7Zf2/ZXJb8wQiowMJCMHTuWWFhYVHnyARVRRgxzIdy+fZuYm5uTESNGkGvXrrGPf/zxx2TIkCHs8oSxU93mow3zgZbL5cTPz48IBAJibm5uFMG6lYHOx/gx9UxXU7bf1DNzTdl+Y8sipiLKCFCr1SWWH5gLgNl/79490rp1a+Ll5UU8PT3J+++/T2rVqmWUcRzVaT6vmos+zHHTpk0jtra2RhMwqg2dj3HPp7yYeqarKdtv6pm5pmy/MWYRUxFlYMLCwsjYsWNJr169yLRp08iFCxfYx5gvfebf+Ph4cvr0aTJz5kyyadMmg9flKI3qNJ/yzEWf7du3Ew6HY/Avm9Kg8zHu+VQEU890NVX7TT0z15TtN9YsYiqiDMiTJ0+IlZUVGTVqFFm0aBHx9PQk7dq1I7Nnz2aPKS2TyFipTvOpyFy0SUtLM8oSE3Q+xRjrfCqKqWe6mqr9pp6Za8r2G2sWMRVRBkKj0ZAlS5aQkSNHsvvy8vLIunXrSOvWrdkePwy//vorSU1NfddmlpvqNJ+KzuXs2bNG8QVfFnQ+xj2fymDqma6mbL+pZ7Kasv3GaDsVUQZk4sSJOs1ACSm+GXz55ZekXbt2ZMOGDYQQQi5cuEAaNmxIli5d+lbqXFQV1Wk+1WkuhND5GPt8KoOpZ7qauv2EmH4mqynbbyy2UxFlABh347Zt20jXrl11ytATUuzq/vjjj0mXLl1YF+WKFSuMrr4IQ3WaT3WaCyF0PoQY93wqi6lnupq6/dqYeuanKdtvDLZTEWVAoqOjib29PQkMDCRSqZQQ8v+bREJCAuFwODqVe42d6jSf6jQXQuh8TBVTz3Q1ZftNPfPTlO03JdupiDIw165dI0KhkMyYMUOn/kZycjLx9PTUyV4xBarTfKrTXAih8zE1TD3T1ZTtN/XMT1O239RspyLKCDh37hwRCoVk+PDh5MSJEyQ8PJwsWrSI1KtXjyQmJhravApTneZTneZCCJ2PqWDqma6mbL+pZ36asv2maDsVUUZCSEgI8fb2Js7OzsTV1ZU0adLE4L8I3oTqNJ/qNBdC6HyMHVPPdDVl+00989OU7TdV26mIMiJyc3NJbGwsefjwocFL61cF1Wk+1WkuhND5GDumnn1oyvabsu2EmLb9pmg7FVEUCoViJJh69qEp22/KthNi2vabsu1URFEoFIqRYerZh6ZsvynbTohp22+KtvNBoVAoFKPC1dUVJ0+eRP/+/SEWi7Fq1SrY29sDAMzMzNCqVSvY2dkZ2MqyMWX7Tdl2wLTtN0XbqYiiUCgUI8THxwenTp2Cv78/kpOTMXLkSLRq1QqHDh1CWloaHB0dDW3iKzFl+03ZdsC07Tc12zmEEGJoIygUCoVSOqGhoZgzZw7i4uLA5/PB4/Fw4sQJtGnTxtCmlQtTtt+UbQdM235TsZ2KKAqFQjFy8vLykJWVBalUinr16rFLHKaCKdtvyrYDpm2/KdhORRSFQqFQKBRKJeAa2gAKhUKhUCgUU4SKKAqFQqFQKJRKQEUUhUKhUCgUSiWgIopCoVAoFAqlElARRaFQKBQKhVIJqIiiUCgUCoVCqQRURFEoFAqFQqFUAiqiKBQKhUKhUCoBFVEUCoVCoVAolYCKKAqFQqFQKJRKQEUUhUKhUCgUSiWgIopCoVAoFAqlElARRaFQKBQKhVIJqIiiUCgUCoVCqQRURFEoFAqFQqFUAiqiKBQKhUKhUCoBFVEUCoVCoVAolYCKKAqFQqFQKJRKQEUUhUKhUCjloGfPnpg9e7ahzaAYEVREUSgUCoVCoVQCKqIoFAqFQqFQKgEVURTKG3D58mV069YN1tbWsLOzw6BBgxATE2NosygUyltCpVJh5syZsLKygr29PZYvXw5CiKHNohgIKqIolDegoKAAc+bMwb179/D777+Dy+Vi2LBh0Gg0hjaNQqG8BQ4ePAg+n487d+7g22+/xddff419+/YZ2iyKgeAQKqEplCojIyMDDg4OePToEVq0aGFocygUShXSs2dPpKWlISwsDBwOBwCwaNEinDt3DuHh4Qa2jmIIqCeKQnkDoqKiMHr0aDRu3Bi1atWCi4sLACAhIcGwhlEolLdCp06dWAEFAJ07d0ZUVBTUarUBraIYCr6hDaBQTJnBgwfD2dkZe/fuRf369aHRaNCiRQsUFhYa2jQKhUKhvGWoiKJQKklmZiYiIyOxd+9edO/eHQDw559/GtgqCoXyNvn33391/r59+zbc3NzA4/EMZBHFkFARRaFUEhsbG9jZ2WHPnj2oV68eEhISsGjRIkObRaFQ3iIJCQmYM2cOpk6ditDQUGzfvh1fffWVoc2iGAgqoiiUSsLlcnHixAnMmjULLVq0gLu7O7Zt24aePXsa2jQKhfKWGD9+PORyOTp06AAej4fPPvsMU6ZMMbRZFANBs/MoFAqFQqFQKgHNzqNQKBQKhUKpBFREUSgUCoVCoVQCKqIoFAqFQqFQKgEVURQKhUKhUCiVgIooCoVCoVAolEpARRSFQqFQKBRKJaAiikKhUCgUCqUSUBFFoVAoFAqFUgmoiKJQKBQKhUKpBFREUSgUCoVCoVQCKqIoFAqFQqFQKsH/AMZBvBGWLJaJAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"Plotting posterior marginals for MAF ...\")\n",
"\n",
"param_labels = [\"a\", \"b\"]\n",
"\n",
"fig = corner.corner(\n",
" samples,\n",
" labels=param_labels,\n",
" truths=theta_true_np,\n",
" quantiles=[0.16, 0.5, 0.84],\n",
" show_titles=True,\n",
" title_kwargs={\"fontsize\": 12},\n",
" truth_color=\"red\",\n",
" bins=50, \n",
" fig=plt.figure(figsize=(6, 6)),\n",
")\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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LskCqFKpxOW9l6f65QFITAsOgCQEEABJCCAAkhBAACQhgABIotK42JvlAOASUgEBkIQAAiAJAQRAEgIIgCQEEABJzOksuEajESdPnrzUa4G2W7x4cVQqri2AFOYUQEePHo1rrrnmUq8F2m5wcDCuvvrq1MuAUppTAPX29kZExCeffBL9/f2XdEFEnDhxIlatWuX9nUfN97j5ZxlovzkFULNl0d/f73+Q88j7O/+03yAdQwgAJCGAAEhiTgHU19cX27dvj76+vku9HsL72w7eY0jPYaQAJKEFB0ASAgiAJAQQAEkIIACSEEAAJDGnANq5c2esWbMmFixYEBs3bow9e/Zc6nV1vNm8h7t27YpKpTLp24IFC9q42s7xxhtvxL333hsrV66MSqUSr7zySuolQWnNOoBeeumlGBgYiO3bt8fbb78d69ati3vuuScGBwfnY30daS7vYX9/f3z66adj3w4cONDGFXeOoaGhWLduXezcuTP1UqD0Zr0PaOPGjXHHHXfEs88+GxER9Xo9Vq1aFY8++mhs27ZtXhbZaWb7Hu7atSsef/zxOH78eJtX2tkqlUq8/PLLcf/996deCpTSrCqg4eHh2LdvX2zZsmX8J+jqii1btsRbb711yRfXieb6Hp46dSpWr14dq1ativvuuy/279/fjuUCzJtZBdDRo0ejVqvFsmXLJr2+bNmyOHz48CVdWKeay3t40003xQsvvBCvvvpqvPjii1Gv12Pz5s1x6NChdiwZYF7M6ToG2mvTpk2xadOmsY83b94cN998czz33HPx1FNPJVwZwNzNqgJaunRpdHd3x5EjRya9fuTIkVi+fPklXVinuhTvYU9PT9x2223x4YcfzscSAdpiVgHU29sb69evj927d4+9Vq/XY/fu3ZP+hc7MLsV7WKvV4t13340VK1bM1zIB5t2sW3ADAwOxdevWuP3222PDhg3xzDPPxNDQUDz00EPzsb6OdKH38MEHH4xrr702duzYERERTz75ZNx5551x4403xvHjx+Ppp5+OAwcOxMMPP5zyt5GlU6dOTaocP/7443jnnXfiyiuvjOuvvz7hyqB8Zh1ADzzwQHz22WfxxBNPxOHDh+PWW2+N119/fcpDdWZ2offw4MGD0dU1XpweO3YsHnnkkTh8+HAsWbIk1q9fH2+++WbccsstqX4L2dq7d2/cfffdYx8P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mev7eOrUqVi9enWsWrUq7rvvvti/f387lksLAQQJHD16NGq1WixbtmzS68uWLYvDhw8nWlV+5vI+3nTTTfHCCy/Eq6++Gi+++GLU6/XYvHlzHDp0qB1LZgKnYQOlsmnTpti0adPYx5s3b46bb745nnvuuXjqqacSrqx8VECQwNKlS6O7uzuOHDky6fUjR47E8uXLE60qP5fifezp6YnbbrstPvzww/lYIuchgCCB3t7eWL9+fezevXvstXq9Hrt37570r3PO71K8j7VaLd59991YsWLFfC2TGWjBQSIDAwOxdevWuP3222PDhg3xzDPPxNDQUDz00EOpl5aVC72PDz74YFx77bWxY8eOiIh48skn484774wbb7wxjh8/Hk8//XQcOHAgHn744ZS/jeycOnVqUtX48ccfxzvvvBNXXnllXH/99Rf1cwggSOSBBx6Izz77LJ544ok4fPhw3HrrrfH6669PeaDO+V3ofTx48GB0dY03e44dOxaPPPJIHD58OJYsWRLr16+PN998M2655ZZUv4Us7d27N+6+++6xjwcGBiIiYuvWrbFr166L+jnsAwIgCc+AAEhCAAGQhAACIAkBBEASAgiAJAQQAEkIIACSEEAAJCGAgI501113xeOPP556GZyHAAIgCQEEQBICCOhYo6Oj8d3vfjeuuOKKWLp0afzgBz8Ix18WhwACOtbPfvazqFarsWfPnvjRj34UP/zhD+OnP/1p6mVxjtOwgY501113xeDgYOzfvz8qlUpERGzbti1ee+21eO+99xKvjggVENDB7rzzzrHwiYjYtGlTfPDBB1Gr1RKuiiYBBEASAgjoWL/+9a8nffyrX/0qvvKVr0R3d3eiFTGRAAI61sGDB2NgYCDef//9+PnPfx4//vGP47HHHku9LM6ppl4AwHx58MEH44svvogNGzZEd3d3PPbYY/Gd73wn9bI4xxQcAElowQGQhAACIAkBBEASAgiAJAQQAEkIIACSEEAAJCGAAEhCAAGQhAACIAkBBEAS/x9KjJXh8/RwMAAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from vbi.plot import pairplot_numpy\n",
"\n",
"limits = [(0.0, 1.0), (0.0, 1.0)]\n",
"\n",
"fig, ax = pairplot_numpy(\n",
" samples,\n",
" points=theta_true_np.reshape(1, -1),\n",
" figsize=(5, 5),\n",
" limits=limits,\n",
" labels=[\"a\", \"b\"],\n",
" upper=\"kde\",\n",
" diag=\"kde\",\n",
" fig_kwargs=dict(\n",
" points_offdiag=dict(marker=\"*\", markersize=10),\n",
" points_colors=[\"g\"],\n",
" ),\n",
")\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 2
}