Commit 7b8696ea authored by lucas_miranda's avatar lucas_miranda
Browse files

added inplace alignment on deepof.data.coordinates.get_coords() on data.py

parent ff1ec1ed
Pipeline #83460 passed with stage
in 17 minutes and 36 seconds
......@@ -12,6 +12,7 @@ from itertools import combinations
from tensorflow.keras import backend as K
from tensorflow.keras.constraints import Constraint
from tensorflow.keras.layers import Layer
import matplotlib.pyplot as plt
import tensorflow as tf
import tensorflow_probability as tfp
......@@ -20,6 +21,52 @@ tfpl = tfp.layers
# Helper functions
class exponential_learning_rate(tf.keras.callbacks.Callback):
"""Simple class that allows to grow learning rate exponentially during training"""
def __init__(self, factor):
super().__init__()
self.factor = factor
self.rates = []
self.losses = []
# noinspection PyMethodOverriding
def on_batch_end(self, batch, logs):
"""This callback acts after processing each batch"""
self.rates.append(K.get_value(self.model.optimizer.lr))
self.losses.append(logs["loss"])
K.set_value(self.model.optimizer.lr, self.model.optimizer.lr * self.factor)
def find_learning_rate(
model, X, y, epochs=1, batch_size=32, min_rate=10 ** -5, max_rate=10
):
"""Trains the provided model for an epoch with an exponentially increasing learning rate"""
init_weights = model.get_weights()
iterations = len(X) // batch_size * epochs
factor = K.exp(K.log(max_rate / min_rate) / iterations)
init_lr = K.get_value(model.optimizer.lr)
K.set_value(model.optimizer.lr, min_rate)
exp_lr = exponential_learning_rate(factor)
model.fit(X, y, epochs=epochs, batch_size=batch_size, callbacks=[exp_lr])
K.set_value(model.optimizer.lr, init_lr)
model.set_weights(init_weights)
return exp_lr.rates, exp_lr.losses
def plot_lr_vs_loss(rates, losses): # pragma: no cover
"""Plots learing rate versus the loss function of the model"""
plt.plot(rates, losses)
plt.gca().set_xscale("log")
plt.hlines(min(losses), min(rates), max(rates))
plt.axis([min(rates), max(rates), min(losses), (losses[0] + min(losses)) / 2])
plt.xlabel("Learning rate")
plt.ylabel("Loss")
@tf.function
def far_away_uniform_initialiser(
shape: tuple, minval: int = 0, maxval: int = 15, iters: int = 100000
......
......@@ -227,6 +227,8 @@ class SEQ_2_SEQ_AE:
metrics=["mae"],
)
model.build(input_shape)
return encoder, decoder, model
......@@ -652,6 +654,8 @@ class SEQ_2_SEQ_GMVAE:
loss_weights=([1, self.predictor] if self.predictor > 0 else [1]),
)
gmvaep.build(input_shape)
return (
encoder,
generator,
......
%% Cell type:code id: tags:
``` python
import os
os.chdir(os.path.dirname("../"))
```
%% Cell type:code id: tags:
``` python
import deepof.data
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
import tqdm.notebook as tqdm
from ipywidgets import interact
```
%% Cell type:code id: tags:
``` python
%%time
deepof_main = deepof.data.project(path=os.path.join("..","..","Desktop","deepof-data"), #Path where to find the required files
smooth_alpha=0.99, #Alpha value for exponentially weighted smoothing
arena_dims=[380])
```
%%%% Output: stream
CPU times: user 14.8 s, sys: 2.65 s, total: 17.4 s
Wall time: 4.04 s
CPU times: user 16 s, sys: 2.93 s, total: 18.9 s
Wall time: 4.92 s
%% Cell type:markdown id: tags:
# Run project
%% Cell type:code id: tags:
``` python
%%time
deepof_main = deepof_main.run(verbose=True)
print(deepof_main)
```
%%%% Output: stream
Loading trajectories...
Smoothing trajectories...
Computing distances...
Computing angles...
Done!
deepof analysis of 109 videos
CPU times: user 25.8 s, sys: 2.06 s, total: 27.8 s
Wall time: 28.4 s
CPU times: user 33.6 s, sys: 2.48 s, total: 36.1 s
Wall time: 46.6 s
%% Cell type:markdown id: tags:
# Check tagging quality
%% Cell type:code id: tags:
``` python
all_quality = pd.concat([tab for tab in deepof_main.get_quality().values()]).droplevel("scorer", axis=1)
```
%% Cell type:code id: tags:
``` python
all_quality.boxplot(rot=45)
plt.ylim(0.99985, 1.00001)
plt.show()
```
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:code id: tags:
``` python
@interact(quality_top=(0., 1., 0.01))
def low_quality_tags(quality_top):
pd.DataFrame(pd.melt(all_quality).groupby("bodyparts").value.apply(
lambda y: sum(y<quality_top) / len(y) * 100)
).sort_values(by="value", ascending=False).plot.bar(rot=45)
plt.xlabel("body part")
plt.ylabel("Tags with quality under {} (%)".format(quality_top))
plt.tight_layout()
plt.legend([])
plt.show()
```
%%%% Output: display_data
%% Cell type:markdown id: tags:
# Generate coords
%% Cell type:code id: tags:
``` python
%%time
deepof_coords = deepof_main.get_coords(center="Center", polar=False, speed=0, align="Spine_1")
```
%%%% Output: stream
CPU times: user 36.7 s, sys: 187 ms, total: 36.8 s
Wall time: 36.8 s
CPU times: user 2.92 s, sys: 250 ms, total: 3.17 s
Wall time: 3.19 s
%% Cell type:markdown id: tags:
# Visualization playground
# Visualization
%% Cell type:code id: tags:
``` python
heat = deepof_coords.plot_heatmaps(['Left_ear'], i=0, dpi=100)
heat = deepof_coords.plot_heatmaps(['Nose'], i=0, dpi=40)
```
%%%% Output: display_data
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAroAAAH1CAYAAAAZG109AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAta0lEQVR4nO3dfZTVdZ3A8c8AAcNDAkl5bK1UHgzSwsqBpPVhId3cMeVBcxGZTh7TwbA2ybLaVo2wkw+thSX5MKty1NX0bHOkZDu57a4JoiaZZ0cGM9HcNGJFgeEp7v7hMssM83Dv3Dv3d+c7r9c5c4rf/d17P93u0bdfv/P7VeVyuVwAAEBiBmQ9AAAA9AahCwBAkoQuAABJEroAACRJ6AIAkCShCwBAkoQuAABJEroAACRJ6AIkwL1/AA4kdAHKZP78+TF//vyiX+ef/umfYvr06XHMMcfEjTfeGE888UR85jOfKcGEAGkZlPUAAORv69atcfXVV8cJJ5wQn/70p+Mv/uIv4h//8R9jw4YNWY8GUHGELkAfsmXLlti7d2/MnDkzPvzhD2c9DkBFs3UBoII8/vjjce6558b73//+OO644+Kyyy6LzZs3R0TE/fffHyeffHJERFx++eUxceLE+NKXvhQPPPBA/P73v4+JEyfG/fffX9D7/exnP4tZs2bF0UcfHccff3x84xvfiO3btx9wzt/+7d/GlClT4n3ve1+ceuqpceedd7Y+vmbNmpg4cWLcfffdcdJJJ8VHPvKR+M///M8iPwmA4gldgAqxdu3aqKuri6FDh8Z3vvOduPzyy+Oxxx6L8847L3bs2BEnnnhifO9734uIiIsuuijuueeeqK+vjxNOOCHGjh0b99xzT5x44ol5v19jY2MsXLgwjjjiiFi2bFlcfPHF8eMf/zjq6+tbf7nt3/7t32LhwoUxefLkuPHGG+O73/1uvPOd74yrrroqnnzyyTavd/3118dll10Wl112WXzgAx8o1ccC0GO2LgBUiGuvvTYOP/zwuOmmm2LgwIEREfH+978/TjvttPjRj34U8+bNi/e+970REfGud72rNSbHjBkTgwcPLiguc7lcXHPNNfHRj340rrnmmtbj73nPe6Kuri5+8YtfxIknnhgbNmyIM844I77yla+0njNlypSoqamJtWvXxrHHHtt6/JOf/GSceuqpRXwCAKUldAEqQEtLS6xbty4+/elPRy6Xiz179kRExGGHHRZHHnlkPPLIIzFv3rySvd9vf/vb+MMf/hCf+cxnWt8rIuLDH/5wjBgxIh555JE48cQT4/zzz4+IiO3bt8fGjRvj+eefj6effjoiInbv3t3mNSdOnFiy+QBKQegCVIDXX3899u7dGz/84Q/jhz/84QGPDxkypKTv99prr0VExBVXXBFXXHHFAY+/+uqrERGxefPm+PrXvx4/+9nPoqqqKt797nfHBz/4wYg48Nq9b3vb20o6I0CxhC5ABRg+fHhUVVVFXV1dnHbaaQc8Xl1dXdL3e+tb3xoREV/84hfjuOOOO+Dxgw46KCIiLr300njuuefitttui2OPPTYGDx4cLS0tce+995Z0HoDeIHQBKsCIESNi0qRJ8dvf/jaOPvro1uM7duyISy65JP7yL/8yxo0b1+FzBwwo/PeKjzjiiHjb294WL730Unz6059uPf7HP/4xFi9eHJ/85CfjXe96VzzxxBNx9tlnx9SpU1vP+fd///eIiNi7d2/B7wtQTkIXoIz+8Ic/RENDwwHHx40bF3/3d38XF1xwQXzhC1+I008/Pf785z/HrbfeGuvWrYuLLrqo09d861vfGps2bYpf/OIX8d73vjfe/va3dzvHwIED4/Of/3z8/d//fQwcODBOOumkeP311+PGG2+MV155JSZPnhwREcccc0w0NjbG5MmT45BDDolf/epXcdNNN0VVVVW0tLT0+HMAKAehC1BGGzdujKVLlx5w/Mwzz4yrr746brnllvje974XixYtire85S0xefLkuO2227q8osKsWbPiF7/4RSxcuDAWLVoUF1xwQV6zzJ07N4YPHx4333xz3HPPPTFs2LA49thj45prronDDjssIiKuvvrquOqqq+Kqq66KiDevynDFFVfEj3/843j88ccL/wAAyqgq1/63CQAAIAFWdAESsnfv3rz2zg4cODCqqqrKMBFAdoQuQEKWLVvWeve0rtx+++1RU1NThokAsmPrAkBCXnnlldZr4Hbl8MMPjxEjRpRhIoDsCF0AAJJU+MUXAQCgDxC6AAAkSegCAJAkV11op6qqMesRAADoQi5Xm9d5VnQBAEiS0AUAIElCFwCAJAldAACSJHQBAEiS0AUAIElCFwCAJAldAACSJHQBAEiS0AUAIElCFwCAJAldAACSJHQBAEiS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cq90FhO7DaUagu70iasu5HK5+M53vhMPP/xw3HnnnXH77bdHdXV1m3OGDh0a27dvz2hCACBz+V65oeH//rOum9fr6IoMxWxdaOj2DEqs4kN369at8eUvfzmeeeaZuPPOO2PixIlRXV0db7zxRpvzduzYEcOHD89oSgCgYhQSvHXdvFYW18jtjP25BavYrQsRERs3bozZs2fH1q1b47777ouJEydGRMSECROiubm5zbkbNmyI8ePHZzEmAFCJ8gnDhl58/4Zefn26VbGhu2XLlliwYEEce+yxccstt8SYMWNaH5s5c2Zs2rQpGhoaYvfu3bF69epobGyM2bNnZzgxAFBxsord3nhNClaxlxe77bbb4uqrr47q6uqoqqpq89ivfvWrePrpp2PJkiWxfv36GDNmTNTX18esWbOKfl+XFwOABOV7GbK6It+nocjnd8a2hTbyvbxYxYZuVoQuACSqt66521DgHIUQuB0Suj0kdAEgcT0J3oZemKMrArdLQreHhC4A9BOFBm+5iNxu5Ru6FX95MQCAXrF/UFZC9ArckhO6AACljl7RWhGELgDA/vK94URHz6GiCF0AgI6I1z6vYm8YAQAAxRC6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgBA1kpx22EOIHQBALLmLmy9QugCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJL6ROhu3rw5Zs6cGWvWrGk9tm7dupg7d25MmTIlTj755Lj33nsznBAAgEpT8aH7xBNPxNlnnx0bN25sPbZly5a44IIL4owzzoi1a9fGkiVLYunSpfHrX/86w0kBAKgkFR26DzzwQFx66aXx+c9/vs3xVatWxahRo2LevHkxaNCgmDZtWtTW1saKFSsymhQAgEpT0aE7ffr0+Nd//df4+Mc/3uZ4c3NzTJgw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HH/88TFs2LCYP39+zJo1K+vRAACoEFW5XC6X9RCVpKqqMesRAADoQi5Xm9d5fXLrAgAAdEfoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQJKELAECShC4AAEkSugAAJEnoAgCQpIoN3ZdeeikuvvjimDp1atTU1ER9fX28+OKLrY8///zzsWDBgpgyZUpMnz49fvCDH2Q4LQAAlaZiQ3fhwoVx0EEHxc9//vP4+c9/HqNGjYr6+vqIiNi9e3dceOGFcfTRR8eaNWti+fLlsWLFivjJT36S8dQAAFSKigzdLVu2xMEHHxyXXHJJDBs2LIYPHx7nnXderF+/PrZs2RJr166NV199NRYtWhSDBw+OSZMmxfz582PFihVZjw4AQIUYlNUb79ixI1555ZUOHxs7dmzccsstbY499NBD8c53vjMOOuigaG5ujsMPPzwGDx7c+vi4ceNi+fLlvTozAAB9R2ahu27dujjvvPM6fGzZsmUxY8aM1j/fddddceutt8b3v//9iIjYtm1bVFdXt3lOdXV1bN++vfcGBgCgT8ksdGtqauLZZ5/t8pxdu3bF0qVLY+XKlXHTTTfF1KlTIyJi2LBh0dLS0ubclpaWGD58eK/NCwBA35JZ6HZn8+bNcdFFF8WuXbvivvvui8MOO6z1sfHjx8fvfve72LNnTwwa9Ob/hA0bNsT48eOzGhcAgApTkb+Mtnv37jj//PNjxIgRcdddd7WJ3Ig3V4NHjx4d1157bezcuTOamprijjvuiDlz5mQ0MQAAlaYiV3QffvjheOaZZ2LIkCExbdq0No89+OCDceihh8att94aV155ZRx//PExbNiwmD9/fsyaNSujiQEAqDRVuVwul/UQlaSqqjHrEQAA6EIuV5vXeRW5dQEAAIoldAEASJLQBQAgSUIXAIAkCV0AAJIkdAEASJLQBQAgSUIXAIAkCV0AAJIkdAEASJLQBQAgSUIXAIAkCV0AAJIkdAEASFJVLpfLZT0EAACUmhVdAACSJHQBAEiS0AUAIElCFwCAJAldAACSJHQBAEiS0AUAIElCFwCAJAldAACSJHQBAEiS0AUAIElCFwCAJAldAACSJHQBAEiS0E3QSy+9FBdffHFMnTo1ampqor6+Pl588cXWx5cvXx6TJ0+OKVOmtP5cf/31GU5cHt19Ls8//3wsWLAgpkyZEtOnT48f/OAHGU5bfi0tLXH22WfH/fff3+Z4f/2+7NPZ59Lfvy/7rFu3Lo466qg234958+ZlPVYm/vSnP0V9fX186EMfipqamliyZEns2bMn67Eyt3Llypg0aVKb78jixYuzHiszmzdvjpkzZ8aaNWtaj61bty7mzp0bU6ZMiZNPPjnuvffeDCfMRkefy9e//vV43/ve1+a7c8899xT2wjmSc/rpp+cuv/zy3LZt23Jbt27NffnLX879zd/8Tevjn/3sZ3Pf/e53M5wwG119Lrt27cp97GMfy33729/O7dy5M/fMM8/kpk+fnlu5cmXGU5fH+vXrc2eeeWZuwoQJuR/96EdtHuuv35dcrvPPpb9/X/Z3xx135M4999ysx6gI5557bu4LX/hCbvv27bmNGzfmTjvttNwPf/jDrMfK3NVXX5370pe+lPUYFeHxxx/PzZgxIzdhwoTc6tWrc7lcLvfaa6/ljjvuuNydd96Z2717d+6Xv/xlbsqUKbl169ZlPG35dPS55HK53Jlnnpm7//77i3ptK7qJ2bJlSxx88MFxySWXxLBhw2L48OFx3nnnxfr162PLli0REfH000/H+973vownLa/uPpe1a9fGq6++GosWLYrBgwfHpEmTYv78+bFixYqsR+91jz76aCxYsCDOPPPMOPTQQw94vD9+XyK6/lz68/elvf76/WjvhRdeiMceeywWL14c1dXVcdhhh0V9fX2//E605zvypgceeCAuvfTS+PznP9/m+KpVq2LUqFExb968GDRoUEybNi1qa2v7zXens89l165dsX79+qK/O4OKejaZ2LFjR7zyyisdPjZ27Ni45ZZb2hx76KGH4p3vfGccdNBB8ac//Slefvnl+Od//uf46le/GoMHD45TTz01LrnkkhgyZEg5xu81xXwuzc3Ncfjhh8fgwYNbHx83blwsX768V2cuh+4+l6OOOioefvjhGDJkSNx2221tHu/P35euPpeUvy/tdfc5Pf3003HwwQfHxz72sdi6dWscd9xx8aUvfSkOOeSQMk+arebm5hg1alS84x3vaD125JFHxssvvxyvv/56vPWtb81wuuzs3bs3nnnmmaiuro6bb745/vznP8cJJ5wQl156aRx00EFZj1dW06dPj9ra2hg0aFCbqGtubo4JEya0OXfcuHFx3333lXvETHT2uTQ1NcWePXvihhtuiCeeeCJGjhwZs2fPjvPPPz8GDMh/nVbo9kHr1q2L8847r8PHli1bFjNmzGj981133RW33nprfP/734+IiD/+8Y/xoQ99KGbNmhXf+c534sUXX4zPfe5z0dLSEl//+tfLMn9vKeZz2bZtW1RXV7d5TnV1dWzfvr33Bi6TQj6X9nxfOpby96W9rj6nG264Id7+9rfHRz7ykTjnnHNi9+7dcdVVV8UFF1wQDzzwQAwcOLDM02ans+9ERMT27dv7behu3rw5Jk2aFKecckrccMMN8T//8z9x2WWXxeLFi5P8B8OujB07tsPjHX13hg4dmuRfTzrS2efyxhtvxHHHHRfz58+P6667Lv7rv/4rFi5cGAMGDIjzzz8/79cXun1QTU1NPPvss12es2vXrli6dGmsXLkybrrpppg6dWpERBx11FFt/nXIkUceGfX19fEP//APfT5civlchg0bFi0tLW3ObWlpieHDh/favOWSz+fSmf7+felMyt+X9rr7nE455ZQ2f/7a174W06ZNi+eee+6AVaqUdfadiIgkvxf5Ovjgg9v8NaS6ujoWL14cZ511VmzdujVGjBiR4XSVobq6Ot544402x3bs2NGvvzcREccff3wcf/zxrX8+5phjYsGCBbFy5cqCQtce3QRt3rw55s+fH0899VTcd999rTEXEfHYY4/FTTfd1Ob8Xbt2xdChQ8s9Ztl19bmMHz8+fve737X5DekNGzbE+PHjsxi1YvTn70tXfF/e9N///d+xdOnS2LZtW+uxXbt2RUT0u+/I+PHj47XXXotNmza1HnvuuefikEMOiZEjR2Y4WbaamprimmuuiVwu13ps165dMWDAgDZbf/qzCRMmRHNzc5tj/fGvJ+397Gc/i7vvvrvNsZ78/UfoJmb37t1x/vnnx4gRI+Kuu+6Kww47rM3j1dXV8d3vfjcaGxtj79690dzcHDfeeGOcffbZGU1cHt19LjU1NTF69Oi49tprY+fOndHU1BR33HFHzJkzJ6OJK0N//b50x/flTaNHj44HH3wwrr/++ti5c2ds3rw5rrjiipg2bVq8613vynq8snrPe94TH/zgB+Ob3/xmbN26NV588cW48cYb+913or1Ro0bFihUr4uabb449e/bEyy+/HN/+9rfjzDPPFLr/Z+bMmbFp06ZoaGiI3bt3x+rVq6OxsTFmz56d9WiZyuVysXTp0nj00Ucjl8vFr371q7j99tsL/vtPVW7/f8yiz1u1alV89rOfjSFDhhywP+7BBx+MQw89NFatWhXLli2LjRs3xsiRI+Oss86K+vr6gjZ39zX5fC4vvPBCXHnllbFu3boYNmxYnHvuuXHBBRdkNHE2Tj755Lj44otj1qxZrcf64/elvY4+F9+XNzU1NcW3vvWt+M1vfhMRESeeeGJ85StfiVGjRmU7WAY2bdoUV155ZaxZsyYGDBgQZ5xxRlx66aX9aq9yRx577LG47rrrYv369TFkyJA47bTTYvHixX3+F1qLMXHixLj99tujpqYmIt68MsWSJUti/fr1MWbMmKivr2/z15v+ov3ncvfdd8dtt90Wr7zyShx88MHxqU99quDrdAtdAACS1H+WZAAA6FeELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCAJAkoQsAQJKELgAASRK6AAAkSegCJOahhx6KiRMnxkMPPdR6bPHixXHSSSfFli1bMpwMoLyELkBiTjnllPjEJz4RV111VWzZsiUefPDBePDBB+Pb3/52HHTQQVmPB1A2VblcLpf1EACU1tatW+P000+PSZMmxZo1a2LBggVx8cUXZz0WQFkJXYBEPfroo1FXVxeTJ0+Oe++9NwYOHJj1SABlZesCQKKeeeaZGDRoUDz//PPx+9//PutxAMrOii5Agp599tmYM2dOfO1rX4vGxsbYvXt3rFixwqou0K8IXYDE7Nq1K+bMmRNjx46NW265JV544YU4/fTT48ILL4yLLroo6/EAysbWBYDEXH/99fHSSy/FVVddFRER7373u2PRokWxbNmy+M1vfpPxdADlY0UXAIAkWdEFACBJQhcAgCQJXQAAkiR0AQBIktAFACBJQhcAgCQJXQAAkiR0AQBIktAFACBJQhcAgCQJXQAAkvS/ODW+BABlA4oAAAAASUVORK5CYII=)
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
%% Cell type:code id: tags:
# Dimensionality reduction playground
``` python
deepof_coords = deepof_main.get_coords(center="Center", polar=False, speed=0, align="Spine_1", align_inplace=True)
```
%% Cell type:code id: tags:
``` python
pca = deepof_coords.pca(2, 1000)
plt.scatter(pca[0][:,0],pca[0][:,1])
plt.show()
tuple(deepof_coords["Test 10_s2"]["Nose"].loc[0,:])
```
%%%% Output: display_data
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAegAAAFMCAYAAAAA3S/0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAB7wUlEQVR4nO2deXyU5bn3fzPPrEkmm5IVAqKSkChVREBWqWCEFosKVmnTgrWLp61HaautG3JQaz0W26rH857aI75Y27qVylsshkVBNhVFMSGxFUkgu1knyWRmMvO8fwzP8MzkuZ9t1kyu7+fTT2UmM3M/233d97X8LgPP8zwIgiAIgkgqjIkeAEEQBEEQIyEDTRAEQRBJCBlogiAIgkhCyEATBEEQRBJCBpogCIIgkhAy0ARBEASRhJCBJgiCIIgkhAw0QRAEQSQhZKAJgiAIIgkhA00QBEEQSQgZaIIgCIJIQshAEwRBEEQSQgaaIAiCIJIQMtAEQRAEkYSQgSYIgiCIJIQMNDGmcXl8aOgcgMvjS/RQCIIgQjAlegAEkQiGfX48vP04qmvb0NzjQlG2HUvK83HvsqkwcbRuJQgi8Rh4nucTPQiCiDcbttXguf0nR7y+du4krF9eEf8BEQRBhEFbBWLM4fL4UF3bJvledW0bubsJgkgKyEATY4525xCae1yS77X0uNDuHIrziAiCIEZCBpoYc+Q5bCjKtku+V5htR57DFucREQRBjIQMNDHmsFs4LCnPl3xvSXk+7BYuziMiCIIYCWVxE2OSe5dNBRCIObf0uFAoyuImCIJIBiiLmxjTuDw+tDuHkOew0c6ZIIikggw0QRAEQSQhFIMmCIIgiCSEDDRBEARBJCFkoAmCIAgiCSEDTRAEQRBJCBlogiAIgkhCyEATBEEQRBJCBpogCIIgkhAy0ARBEASRhJCBJgiCIIgkhAw0QRAEQSQhZKAJgiAIIgkhA00QBEEQSQgZaIIgCIJIQshAEwRBEEQSYlL6A6/Xi3vuuQdNTU3weDy47bbbcMEFF+DnP/85DAYDLrzwQqxfvx5GoxEvvfQS/vznP8NkMuG2227DokWL4nEMBEEQBJFyKBro119/HdnZ2fjP//xPdHd347rrrkNZWRnuuOMOzJo1Cw888AB27dqFSy65BFu2bMGrr74Kt9uN1atXY+7cubBYLPE4DoIgCIJIKRQN9DXXXIPKysrgvzmOQ01NDWbOnAkAWLBgAfbv3w+j0YhLL70UFosFFosFJSUlqKurw7Rp02I3eoIgCIJIURRj0Onp6cjIyEB/fz9uv/123HHHHeB5HgaDIfi+0+lEf38/HA5HyOf6+/tjN3KCIAiCSGFUJYm1tLTgW9/6Fr72ta9h+fLlMBrPfmxgYACZmZnIyMjAwMBAyOtig00QBEEQhHoUDfQXX3yBW265BT/72c+wcuVKAEB5eTkOHz4MANi7dy9mzJiBadOm4ciRI3C73XA6nfjss88wZcqU2I6eIAiCIFIUA8/zvNwfPPTQQ3jjjTcwefLk4Gv33nsvHnroIXi9XkyePBkPPfQQOI7DSy+9hL/85S/geR7f//73Q2LXBEEQBEGoR9FAEwRBEAQRf0iohCAIgiCSEDLQBEEQBJGEkIEmCIIgiCSEDDRBEARBJCFkoAmCIJIcl8eHhs4BuDy+RA+FiCOKUp8EQRBEYhj2+fHw9uOorm1Dc48LRdl2LCnPx73LpsLE0f4q1aEyK4IgiCRlw7YaPLf/5IjX186dhPXLK+I/ICKu0BKMIAgiCXF5fKiubZN8r7q2jdzdYwAy0ARBEElIu3MIzT0uyfdaelxodw7FeUREvCEDTRAEkYTkOWwoyrZLvleYbUeewxbnERHxhgw0QRBEEmK3cFhSni/53pLyfNgtXJxHRMQbyuImCIJIUu5dNhVAIObc0uNCoSiLm0h9KIubIAgiyXF5fGh3DiHPYaOd8xiCDDRBEARBJCEUgyYIgiCIJIQMNEEQBEEkIWSgCYIgCCIJIQNNEARBEEkIGWiCIAiCSELIQBMEQRBEEkIGmiAIgiCSEDLQBEHoxuXxoaFzgDorEUQMIKlPgiA0M+zz4+Htx1Fd24bmHheKRBKUJo7W/QQRDUhJjCAIzWzYVoPn9p8c8frauZOwfnlF/AdEECkILXUJgtCEy+NDdW2b5HvVtW3k7iaIKEEGmiAITbQ7h9Dc45J8r6XHhXbnUJxHRBCpCRlogiA0keewoSjbLvleYbYdeQ5bnEdEEKkJGWiCIDRht3BYUp4v+d6S8nxqh0gQUYKyuAmC0My9y6YCCMScW3pcKBRlcRMEER0oi5sgCN24PD60O4eQ57DRzpkgogwZaIIgCEITtDCLD+TiJgiCIFRBAjXxhXbQBEEQhCpIoCa+0JKHIAiCUIQEauIPGWiCIAhCERKoiT9koAmCIAhFSKAm/qg20B999BGqqqoAADU1NZg/fz6qqqpQVVWF7du3AwBeeuklXH/99bjxxhuxZ8+e2IyYIAiCiDskUBN/VGVx//73v8frr78Ouz2weqqtrcXatWtxyy23BP+mo6MDW7Zswauvvgq3243Vq1dj7ty5sFgssRk5QRAEEVdIoCa+qDLQJSUlePLJJ3HXXXcBAD755BN8/vnn2LVrFyZOnIh77rkHH3/8MS699FJYLBZYLBaUlJSgrq4O06ZNi+kBEES8oNpPYqxj4oxYv7wCd1WW0bMQB1QZ6MrKSpw+fTr472nTpmHVqlW46KKL8Mwzz+Dpp59GWVkZHA5H8G/S09PR398f/RETRJyh2k+CCMVu4TDxnPREDyPl0TW7LFmyBBdddFHwv2tra5GRkYGBgYHg3wwMDIQYbCJ5cHl8aOgcoLIIlTy8/Tie238Sp7td8PPA6W4Xntt/Eg9vP57ooREEkcLoMtDf+c538PHHHwMADh48iIqKCkybNg1HjhyB2+2G0+nEZ599hilTpkR1sERkDPv82LCtBkueeBuLHn8LS554Gxu21WDY50/00JIWqv0kiPhAG4eR6JL6fPDBB7Fx40aYzWace+652LhxIzIyMlBVVYXVq1eD53nceeedsFqt0R4vEQHCTlBA2AkCIBUgBmpqP8nVRxD6oRASG5L6TCHkkphcHh+WPPE2TnePNDbjc+yovnMhJXtIQOeNIGILyYeyGdvLkxRBjeuaVID0QbWfBBE7KIQkD3WzSgHUuK4FFSCpnSCpAMlDtZ8EERsohCQPGehRjtIK9K7KMtgtXHAnKOVKop2gPFT7SRCxgTYO8pCLe5SjxXV977KpWDt3Esbn2MEZAjHUtXMn0U5QJULtJxlngogOFEKSh5LERjl6kphIEYsgiGRBnMUdHkKiLG4y0KMeyoIkCGK0QxuHkZCBTgFoBUoQBJF6kIFOIWgFShBEMkBzUXQgA02MamgiSDx0DQgBUgWLLmSgiVEJTQSJh64BEQ7lw0QXeoqIUQl1mEo8dA0IMaQKFn3IQI8RUqlTDE0EiYeuQfKSqGed5ISjDymJpTip6IYkecDEM5quwViJkSf6WSdVsOhDBjrFScUWkzQRJJ7RcA0SbbDiTaKfdZITjj6pd5cSQeTckC+/fwpOlzfOI4oOJA+on2i5P0fDNRhLMfJkCTmQnHB0oR10CiPnhux3+/Dgthr8+sZL4juoKEEdprQRi91kMl8DtU1kUgW1IYdYu/upsUx0IQOdwuQ5bCjMsqGpRzo54+CJTrg8vlH5ANFEoI1YuD+T+RqMphh5NFAKOeSmWbBhW03c3P1CYxkiMsjFncLYLRyumHwO8/223qFRn1lJHaaUibX7MxmvgWCwpEiWGHk0UQo5bNr56Zhx96cSZKBTnPXLK5BhlZ44U3GiCieVysv0MhbLX0ZDjDzasOK/6xZPSYr4NKEdcnGnOA67GatmTBhzmZVjLYNXjtGQcR0LkjlGHgtYIYeGzoEx5e5PJchAjwHG2kQFJL7kJJkYq+UvyRwjjyXh8d+xukBLBUiLewwxVgQbXB4fljzxtuSEND7Hjuo7F6b08UtBLUnHNqSRPTohA02kHA2dA1j0+FvwS9zZnAHY/dMrdbn0UmGBkwrHQGgnFgs0updiDxloIuWI9g6a4tlEqhANo0rPQ/ygs0mkHNHO4B1LilREahONkjh6HuIHGWgiJYmW5GCySCgSRDJAz0N8oSxuIiWJVgbvaFOkinZckOKMhJjR9jyMdshAEylNpJKDo6VERW9ckGWAUyXOSAuM6DJanodYEe/7iQw0QcgwWmqItdZ9Kxng0V5HnioLjGRjtDwP0SZR9xPdqQShQLK30NMTF5RL9EmFOCMlMsWOZH8eYkGi7ifaQROEAsmuSKU1LqhkgG+6vGRUxxnHWqvJeJPsz0O0SeT9RDtoglBJMnZtArR3blIy6AA/qjtBjcXmIIkgWZ+HaJPI+4kMNEGMcrTWfSsZ9JLc9FHdCWqstZocCySyK10i7ydycRNECqClIYqZMyDTJv3oCwZ4NDdYGauJTKlIMiT7JfJ+IqlPgkgh1JSBsBonlBc68PqP5oVMfKO1TGnY58dDf6/FK0dOo98d2HVlWDnccNl43P+VcsrkHiUkS5OPRDWboR00g9E6MRFjG6W6b7mEl76hYXh9PEyi2z3SOvJEYeKMMBgMQeMMAP1uH54/0ACjwTAqSsXGOsmU7JeoxDjVpv+jjz5CVVUVAKChoQE333wzVq9ejfXr18Pv9wMAXnrpJVx//fW48cYbsWfPntiMOMYM+/zYsK0GS554G4sefwtLnngbG7bVYNjnT/TQCCJixkoCVSqUio11kvFejXdinCoD/fvf/x733Xcf3G43AOCXv/wl7rjjDrz44ovgeR67du1CR0cHtmzZgj//+c/4wx/+gE2bNsHj8cR08LGA6ieJVGasJFAl4+ROaGOs3KtyqDLQJSUlePLJJ4P/rqmpwcyZMwEACxYswIEDB/Dxxx/j0ksvhcVigcPhQElJCerq6mIz6hhBq+74ksjMzLGKXMb3oHsYBqRGSgpN7qOfaHelG42oMtCVlZUwmc6Gq3meh8FgAACkp6fD6XSiv78fDocj+Dfp6eno7++P8nBjC6264wOFERLLvcumIjfNPOL1rkEvrn/mQAJGFH1ock8NxqJqmRhdSWJG41m7PjAwgMzMTGRkZGBgYCDkdbHBHg2MdSH4eDHadZ5HO32uYfQOeSXfq29zoqvfg9wMS5xHFX3iUSpGyaSxZayploWjy0CXl5fj8OHDmDVrFvbu3YvZs2dj2rRp+M1vfgO32w2Px4PPPvsMU6ZMifZ4YwrVT0aO0oSVTJmZY5W61j6wnBU+f+D9ORecG99BxYBYTu7JUJ87lhit1QSRostA33333bj//vuxadMmTJ48GZWVleA4DlVVVVi9ejV4nsedd94Jq9Ua7fHGnNEs0CBHrFf6aics6iebeMoKMsEZIWmkOWPg/VQiFpM7eYGIeEBCJQxSxXUVr5U+S1CgavZE3Dr/vOB5dHl8WPLE25JhhPE5dlTfuXBUn+/RwrLf7kVti3PE6+WFDmz/9wUJGNHoYSzfw6kyL44WSKiEQaq4VLSu9PU8gHJu6xffbcALhxpQnHN2YUBhhMQhXN8/3joL33j2MOrbnPD5Azvn0nwHXrttTqKHmPSMNi9QNIwqufQTAxnoFEZLvNfp8mLDthocPNGJlt4hTQ+g3IQluFHFC4NUDSMkM6wJdvPamfhXez/KCjJTIjEsHiQimVSPkY2mUSWXfmIgA53CqFnpF2fb8fD243j5/VMhsohaHkC5CSscYWEwljMzEwFNsNEjnsmkkRjZaF1zSuxMHOSbSGHUiDUID7HYOItRI9AiV3MajriefKz0k000ySrAM5qFauJVn6tX2VDvNZe6JnIL/eZuFxq7BiTfIyKHdtApjNJKHwDzIRZQG1MLd1vDIJ0lTPXk8SfZYqapEM+MR31uJDtXrddc7prIecj8AG7Z/B6urihI2PVL5cQ1MtAJIl43lVy8t6nHxXyIBdQa1PAJ69l9J7DlUOOIv6NEsPiTbAI8qeRuj2UyaSQLK63XXOmasBb6ANDUM5SQ65cKCz0lyEDHmXjfVHIrfTWxY60GVZiw1i+vgIkzUiJYEpBMAjwUz1RPJAsrLddczTURntsdNa1o7pGWPI739UulhR4LMtBxJlE3ldRKX+4hzrByWDVjgm6DOtYl+pKNZMmcTzZ3ezIT6cJK7TVXe03WL6/ATZeXYOlv9kJKiC6e12+sLPTIQMeRZLypwh/i/Cwbrph8Dh5cXgGHfWRDBa2kSj35aCdZFkxadoWpHFtUSyQLK7XXXMs1KclNQ1FO4sMlY2WhRwY6jiTjTZUsEzcRHxK9YFKzKxwLsUW1ROP5VLrmWnbqyRIuSba8ilhBBjqOJPNNleiJm3ZLYwelXeFYiC1qJdbPp5adevjfjnNYsaS8IK7hkmRZKMQa0uKOMyzN6rVzJ43JyYd2S2MXqUXZWNa5FkjkYlXtbws93atr29DW5w6R8o3XcyueO8IXFakyd5CBjjNj4aZiIfXw04KFENPQOYBFj78Fv8SsxBmA3T+9MiVii1KMpsVqMj23rIVeKnjkyMUdZ8ZizJc18axbPCXpkuaIxJLMYaBoIGc44unaj8SAJVuyq9j9P5oWOWogA50ghJtKkNYbzYZa6WFnTTx9Lq/mpLlUWRkT0qRqbFHJcMTL6EXDgCVjsqtAquUvkIFOEJE+KGJDBSAhRiv8GArPlGitF5VoyU08B090ojDLhiYJ4YOCrNDdUqqtjMciahdXyVKzHU2UDEe8jJ5eAya+dsnq5Ui2nX00IAOdIPQ+KOGGKu3MDTfg9sU9USP8GJp6hvDKB034R01rUOREbuJp6x3CdZcW45UPmka81+vy4LEddcFjSbWV8VhC6+Iq1cJAagxHPIyeHgPGunZXTc3D8wcaRnxPIr0cybyz1wttPRJAJN2Fwrvb9Lt96Hf7wEN9pxs141PqMiR3DP1uX3AcSh211i+vwNq5k5Bh5ZjfkazdmAh16O3IlCrdztQYDrmOcNEyemrGEQ7r2hmAuHTz0oKa7n2jDTLQCUDPgwLIG0Uxeo2WUDqx5Im3sejxt7DkibexYVsNhiXaUskdg3gcAGQnHofdjLsqy5DJUC2rrm1DY9eArvNFJBaXx4f6Vid21LRKvp+Mi6tYtMBUaziUWlhGOjaH1Yw8h1VxHAJy883O4+24q7IM1XcuxO6fXonqOxcG9fcTRTwWOfGGXNwxQi7eptedpcYoAvrdOVrcyHkOGzN+LNDcHRiHUkyx3TmE1l7p72nudmHI60/KmBchTYhbtNslqdsMJIfbUXhOc9Ms2LTz05jkOKhNfGO59sU1x3rGJr4erX1uyb+RMmBqXcbi65foJM5Uy18gAx1l1MTb9Gaqquk+BegzWlriU8M+Px7bUYdel1f2Ow1G4Nl9n2P98nLZmKJSv9l/++MRZDF22KN1ZZzKhC/0WCRycSWVy9HvPrszjXaOw73LpoLnebxy5HTwdzKsHPw8j2GfP8TQhquGRZp/IXc9xuewDZiWjUSyJHGmWv4CubijjNp4m5I7Swq7hcOi0nGKY9BjtLS43YVjFE9oUvj8wJZDDcFjZ8UU5VxTQCD5rLbFifJCR1LFvIiRqA3DAIldXEnlckgRLTe8iTPCYDCE/E6/24fnDzTIxuIjzb+Q+3xBphWv/3Ae0zWtxWWsN88gVqRK/gLtoKOIll2o1pWesELdXdcBAOCMAQOYbgk8+INuH4pkVsNKqF0ta5mABdSUOKjpN9s3NIzXfzgPTrd31K+MUxWlMIwRiOg+jQZa7uFoueH1lgBFmpks9/kOpxtOtxe5GRbm59W4jFOxvClZIAMdRfQ8TGpF8MPdVELe1vXTJ+CeM+VMkRgtObd7ps0EM2cAoD4OLkbNRCIsWJT6zTrd3lFXKjGWkFvoFWfb8b9rZqAkN7E7Gy33cLTc8HK/2dztQmPXAEoLMke8F2n5VaSfV7ORSMXypmSBXNxRJFZp/nIr1D317QAQFXfOvcumorzQMeL12hZn0FUld4ysUJOWYxf6zUb6PURikHOLXl2Rj9KCzITvpuTu4XBYbnitGdVyv+kHcMvm9yQrJiLNTI5WZrOcyzgVy5uSBTLQUSRWaf56y7K04vXx6BsalnxPiHfJHWNp/kjjDmifCEZbqUQsSnNGM3ryK+KJ3D2WYeVkx6ylFFHtbwKBPAtWzDbS8xnr62G3cLhqap7ke1dNzUvKZ3a0QC7uKBOLNP94SeupdVWxjvHuylL8akd9xMc+WkolkiVzNdkYDZm0rHvstoXn41/t/SgryJSMzUaSUa0mz0IqZhvp+YzH9TBofJ1QR8q2m0x0PV60fz8e7d209uJlHWO0jj3R11CJZGq5R+hDSx10tHpV17c6mXkW0WqpGc9nh3p4x46U20Eny65GbfKXWsJX/AVZdlwxORe3LTw/at2wtNZns44xWscu9T3JYrQpczU1EO6x8MWW1M44WslQQp5FLDxiiZj/KEksdqScgU7VpgqCm2rd4il4cFsNDnzWiVc+aMJfjzbB5weKs224uqIg4gcxWd3L0Zx4omHkG7sG0MQQjKFJaXShdrEVrVBTLFtqJmL+kzsvBVl2DHl9wfwVQhspZaDHwq5m085P8aqo+5OQmyIkmQDq28ZJnQthIfDjRRfio9M9yE03Y0p+Zty8D6zxRWPiiYaRF77jzZpWsGJD+Vk2ylwdRajdAUbTsMZiIZyo+U/uvPS6PFj6232Un6GTlDLQye5q0bNzC+/7rCSwoLVtXPgDM+zz46G/146QJLzhsvG4/yvlMXu45Mbn9fHM437jWAt+vOhCWbEFgQ3barHl0NkWeXqMvBoZyz6XN6RVZqqTLGEHvWjZGUfLsMYicSuR81/4ebGfkU4V5pBU8WTGm5Qy0MnaSFzPzk3qM7POy1UUWGCJHqjdgT68/Tg2h/V5FSQJjQZDzB4uufGtmTOJedytfW4s+91eLL24kHk+hdKYF99tlPwOtbsLtQpUQqtMILUno2TJ99CLeGGhdmccbcMazVyVRM5/4vPS2DWItZvflZRPTRVPZrxI/qdIA8laQ6tHp1bqM69+0IQ0hWOQEj1Qq+fr8viYrQGBQHlILGp95ca3o6YVDqtZVliitc8tez4f3n4cWw41glWqqraWXKuKWjK2U4wmyaa/rBapWmae5/HtORNV1wono9ZzMsx/dgsHm9nI7E5H7WG1kVIGGkg+kQQ9Yvd69K7FhIseqBU6aXcOoVWmfWRrz1DUHy6Xx4cPG7uZCVfNPUN4ZHstFjOEEMRInU8151Lt7kKLAhWQ2pNRpE0cEonUwmLzGQ+RUn/jWInSRPK94s8mw/xHymLRI6Vc3EDyiSToiQvJfWbQ7cPK6cU49HkXTne7YDQAfka2kuBOUuv6ynPYUJjN7vFckM1OftIahwx3jxqNYO5wX/mgCd+eMxFr507CG8damD1tpc6nml2v2t2FXDKMFKk8GWm5r5MlRu3y+NDYNcD0Eomfl/DxxsqdH8n3yn020fPf7PNy8Up304jXk1UNMFmJyECvWLECDkdA3nH8+PH4wQ9+gJ///OcwGAy48MILsX79ehiNidmkR7sOWS964kJyn8nLtOKeZeWwWzi0O4fQM+DFdf+1n9lcQpgo1cTY7BYOV1cUMA1QZUWB7uSzcEYkWynI5ew63o7XfzgPKy4pxve2vI82CSMtdT6VeminW6R78rKQShLKtJlQ2+Ic8bepPBnlOWwozJJezAnXId4xatZCQDyOpm4X81Zr6XHhvq3HcPjzrhHjVcrhCE/mVGscI6lOUPpsvOe/8POcYQ0cu8vjS5pyzdGGbgPtdgcmyC1btgRf+8EPfoA77rgDs2bNwgMPPIBdu3ZhyZIlkY9yFKOnNEPuM619blz79DvBmz3PYVMleqA2+5TVWP6Gy8ZLPlx6Jhg9LvzT3S4s+91etDvdzDg8S0xFbtc74NGWACfloTFzhuDElEy147Fi2OfHYzvq0OvySr6/qDSgv6xG/CNa45FbCKjJvAcC94q4hFEY77DPjz31HZKfqa5tC77f3OMK3psDbh+Kc9gLksBuflBxN88y8JGWVMXCqxF+noX544bpxXhoxcUpu1iNJboNdF1dHVwuF2655RYMDw9j3bp1qKmpwcyZMwEACxYswP79+8e8gQb0lWaIPxNufMMnOjULALWufxNnxIPXXoS7r5mKxq5BADyzPWAsetzKIbi2xQsHNatz4fU3a9rQxPhdrdml4R6aZAqrxBqWwTMg4AjZXdcGbOWDvcvDEc41oH6nqWU84ufjrsqyiPI5gMB4253SYZXT3S5sOXS2OkCcuSy1IAkkqNWiurYVbX1u2d28XFmU3pKqWHk15OaCw5936f7eRJIMoRndBtpms+E73/kOVq1ahZMnT+K73/0ueJ6HwRCQR09PT4fTOdLtNxbRExcXC4Ys+91eybjry++fwrrFUzQtANS6/u0WDqUF0t2pBPROEnJu5wwrJ1meIUWm3YxXb5uLktw02fN5ttf0BFzzm32Sk2I06kSTJawSS+QmYuG8NvUMhRitcJq7Xbh/6zEcknAl61GFk1sk3nT5BNnFoNEAFGXbMfu83JDds5j2PjfyMq2SzyAnkzshHsddlWUwcwZc+9Q7kuGQcJTyF/SWVMVKaSyWNdjxNpTJVD6o20Cfd955mDhxIgwGA8477zxkZ2ejpqYm+P7AwAAyM0c2IB/L6JnAnW4vc/Xe7/bhwW01+PWNlyRkB6d3kpBzO6+8bDwMBkNwsTHOIT0xAkBb7xBsZqPqYy3JTUdxjDSQRwPRmOi0eD9YCYxpVg6vSLiSAe1GQskwAAbmPVqUbcNza2aiJDcNAIKJlyP+LseORaV5ISI3AkrGWRhHu3MIz+47oco4A8r5C3pCZ7FUGotFDXaiDGUyyUXrPspXXnkFjz76KACgra0N/f39mDt3Lg4fPgwA2Lt3L2bMmBGdUY5hhGQcFgdPdAZLMyKpzdRT5hFJ3WV4OUhBphVVsyfivq+UY/3yimC5y/bbF2B8jnTJhljnN9bj1YvceWW9F+1SHr09jKXQUmrGqi5goac8S6mkpyQ3jdmreEl5PkoLHLBbOMV7Y/3y8hHlS1WzJ6I4W9nw5GfZ4LCaFV3tBgDF2erLorSWVMWyr3wsni0hhyGedfbJVj6oewe9cuVK/OIXv8DNN98Mg8GARx55BDk5Obj//vuxadMmTJ48GZWVldEc65jEbuFwxeRzQnYcYtp6hyJyH0W6StXiXg/fwd27bCqGfX5U17ahrc+NPfXtMHEG3Ltsaoi3gbVT6Bn0YOlv9qFQQ6OQeDUDkTuvACTfE/fTjuaOIRo7AjWqW0qMzwmo4f31Q+l7WY8rVM1OUm2vYrl7gxWmMm0zKJ6LKyafA6fbK1l5ICB4G3gEKgoaOgdQlK0udKPWcxZrpTGlZ0utB0eI00eq/KeHZJOLTtl+0KmE0+XFFY/ukozNRtpvVU1PYzUPltzfsIyVn+fx/IGRbsPwfsriz4t1fsNZM2ciHrz2IlXHHeue1XLnFYDke+WFDkkXaCT9pSPt1St17RZPzQOPQOmb3PUQU5BpxfbbFwQMapR7B4ffH2LD4PXxmn9Py70hlpGVckhkWDkc/PlVMHFGLN70FlNjQIrxMlngeolXX3nx+dO6CWCNUSBaPbNZY0+m3tYpJ1SSijjsZqyaMSHq7emU3DnrFk9RbGIvIBdfZ+3ghDpJqd8Wr5DFO4XPO/qx/Kl3JD/3ypHTuPuaqYrno6vfg7rWPpQVZOqenPU295CTUq1vk45PRrJjiHRHIHXtNh9owNq5k1B950K0O4eQm2bBpp2fyorIdDjdcLq9yM2wRL3VotxOsqlnQPPxa8kVEX77vZPdqGsdef1WzZgAh90MAMiymzUZ6PBs9GgsKOPhQQo/f1o8ONFU/tNDLFuB6oEM9CghFg9WY9cgmmV6Gj+4rUayLhTQ5hplPXCsXZec4di0sx4+hs+n3x2oLWVlnw95hnH9MwdQ3+aEzx/IwC3Nd+C12+YE62XVrvJ1N/eQmaCVtML17BgicWuqSSoSxqRUcaCnJl8rUoY1Hg0kHt5+XNI4lxc6Qty7va5hXd//8vunsKOmFa29QxGHPeKttKg2MU1YGA95fVFT/tNLvMJgaiADHSHxKgGI5oPldHnx4LYa7P/sC0kFMiCQgHXwRKfke+E7OrlzoKfmOXziFPdgVt6BsCM21z9zIMSF7PMDtS1OXP/MAcyafI6kwe1zeUeILChNOj9edCG7gX22DeB5NPeONGKsrOfCbDscVjMaOgc0X/dIdgRad9+B3XGBZLaznpr8aBDrHZHcvdDYNQiXxweH3Yh25xBaerXX/gOISdvGeJUEKt1Dzb2DeOFQY3BhXJhlQxojZMIZgdUzS2JuKJNJLpoMtE4SVQIQyYMljPnl908pxgyvmJyL1xSSeYqz7YrnQE/Nc/jEqVYJKs1iREmu9LkJuLWlXch1rU50Dki7Zl/9oAmHTnSGJKHJTTrN3S7UtfZhUek4yVrgyooCHD7RKWmgs+1mdA2OVOfKtJlw7dPv6L7P9O4ItOw+hXtrd13AWAn1weI4ajjie1ntQlfq75Q+G8sdkdy9IC6DVJKc1Uo82jZGY/Mhd9x2C4fn3jmJFw6ffU7kFuCrZ07ExhXqckyiQTLoGpCB1kky1cqpRY2hK8624+qKfKxbPIVZFypMzmrOgZaaZ6mJU4ss6LVfKmZOJHWtfcyyHz8PtPV5mN8rdAcTjktu0jEYgW/+4TAKs+woL3Sg1+VFa+9Q8NhuW3g+th9rkfwdm4XDNy8uwNajzcGFi8mIkF2/nvtM745Ay+4z/F4Q3PWLSsfJjlPtQlcpWU3us7HcEclpkgNnyyDlzmV5oQN9Q8OajHcsM4qjufmQO+5+tw+vfXha8nMZVg6ZdjPaRM9OqkrnykEGWgexLPiPBUpdfASMAP53zQyUFgQEZuQmZwCyiVDic6BUviI3cWpxkX93wXkhxyz+zmhMZGJFqEyb9KMjGKamHheaeoCq2RNx6/zzgolU1z71DrPcprlnCC6vP8SrMMyIQei5z/ScBzW7T7nnYU99R9BASaF2octKVhOjtHiJxY5ISxmk3Ln0+nh8/kU//mfvCbx3shutvS4UZNnR6/JIeplimSgV7c3HusVTmF67QY/0De7y+PDqbXNhMxtTXjpXjpQ30LGIESdbrRwLtV18BIpy7CEuYrkJpanHxXbz9gzh/q3H8OgN02DijIo7GNbE6fL4MOT1oyDLhmaF2PP4HDuKstKYq/9vzi5ROHplhGu7+cBJ1YpQe+rbcc+yqXhsR50qN/32j6UnetZYYt3SUc3uU+/zoGahC0C2qYTcZ8PzBvSeH6XPrl9egX/UtCoaUrF8r1BFkJthCTYfEe7ZcRkWLP9SETZ+7SJs2vlpXDOKY7H56Br0YFCjwIcgMjNWDbNAyhroWMaIo5UZqnfSUPs5tbFbgUybKeT7hN3tTZdPAGAIeWCUYmqvfNAEh90csuJWu4MJv3as7lVihAmL1UFp2MejKMsqGftVi5CspaX5QkuPC41dg6o/ozbRVxjLZx1ObN7fgD318m7eSJG7dnkOG3MRJfc8KMXyg3rd3S5mMqMU4kVBrPotiz+rtgxSrR5Am9ODrUeb8WmbE6/dNgdA/DKKY7H50BN/T+VWrVpIWQMdyxhxpJmheicNLZ/T09Kx1+UNuiOVfkvuHAjoXXGz2tYJ3auE7xt0+1AkSkLq6vfgDUZ8968fnsaKS4rwwuFTmsYiZkl5Ppxur6as9MJsOwBeV/cuOTKsJsmSpmjd5+GLQLley4/tqEMfo/XkrPNyR3wfEDAEDquZGb8N1+vWglgCNtxzIXV+WMemZQ6R8jYtKs3DN2eXBO9ZrXoAtS1OPLz9ODauuDhuGcWxKEtTM1cIFGRasfTiwjEZb5YiJQ10PGLEkWSG6l08aPmcnvKm1jPxsjyHDfdtPaZYA33vsqnoc3mZXYD0rLjlrl2W3YJXb5sRdMOH92OWE8rod/sw4PUFBDbOXLP8LBvSzBz+1TEw4u+FxJ3wa9vnGsY4h1VWtlHMkvJ8lOSmR5zBK26tOegeZmakC+i9z8MXZoVZNmTZzeh1DaOlN7BQW1Sah5tnTgBnNOKFQycls9VNRsBm5vDXD5uC7ul+ty9ojAbcPqRbOQx5pV2fkcgb9gy6sfS3+1CQZWMuHN441oLbFp6PZ97+TLPYzBvHWvDjRRciN8Ny9nhFoYDmnkFsPnASe+rb8cfDDWfO2TjsOt4u+X1yFRXVtW24Z1l5VOPnch44u4XDVVPzJBX+rpqap3veFObFHTWtzHCVoDYnPq9jnZQ00PGIEevNDNW7eND6ObmVMKvetiDLhmf3fY6dx1vRwnAFi3/LxBnx0IqLcehEp+QuSM+KW+7atfYGuhMJ5zvPYTvTJehzydrbcA6f6MKudVdi3eIp2LCtBgdPdOLEFwNBoxG+I/f6+BGLAEE3XIrsNBNsJg4dTveIRDi9+tUAsOKSInx3wXkwGTls3n8Cf3pPOvNVjN77PHwR2NQzFHJtA/2PG4Lnm6VzPew/a3jEBoj13+EMqGw5KvnZM4lHcnkLrX1uXPn4npAkJdViM31uLPvd3uBOT+y9sls4vHC4MWTREt4zWgvtfe6o5bSI9QRaeoaYGvZqtcu1IJ4v7996TNI7svTiQjLOYaSkgY6HepCA1pWt3sWD1s/JuZXKCqQ1nzNtJkVDJ/yWYBzzHIGHPFqJLEp1k2s3v4uWniGki3ZiRpWhViGjdvOBkyEThGAoVk4vxkaRKImJQ/CcKukDA0DP4DCAYeQ7rFhUOi5k4pPyuGRYOdS19st+Z4aVw7snu/D6R80oyLKhZ5BdDibGbuGQm6ZtstMTFhnNQv6sDGIlsRkgYKSlvFd6zqFcD/SCbBuGvH7ZTHi1PPT32pDMd6F8kOf5oIa9y+PDTsZOf+fxdtx9TWTjsFs4PHrDNDjs5qRQ6kp24tt9Ok4IxkmKRCcfKLXHYy0e9HyO1Y7utdvmSLTOK0Fjl7ILVthli1sX+nkea+ZMVN32Tg65a9fv9qG5Zwg8zqor8VDXkxdQTvI69HmXZKtHrZNum9ONLYcaQ9riCTuI1384D1u+Mwuv/3Ae/t+P5wevAwvhmP18YEfIMipSn9u089OQY1BqYaknLJKKtPS40NHvxuwz8XM5wlsQ6jmHKy8bj/JCaXnaPpcXS3+7V1eLUPE1d3l8eOWItOfllSOng8cQy5aUAsKzILSUrb5zIdYvr4ipwNNoJSV30EBy6amK0ZtgpudzXh+PNXMm4ceLLoTT7Q1xw4e75xu7BlS54bLs5pBd9uluF54Pa54QbUF/uXpQLSgleZ3udmHZ7/ai3ekOiUfKaZbLIQ4HyCXd3VVZhlPdA7j9T0fxz/aATrjREPgfqw5a7e9raXgSbbWraGFAZDv1DCuHdKtJdd6A2FOTYeXg53nmwijce6X1HK64pAj3faUcQMBLU13bhvY+N9LO7Kr1SHxK3WszJuYwnx+xhr2SB0urV0aOZFDqSnZSvt1kvLSytSDXHk9NFveOmla09gyhINuGSokYkp4s8fpWJyp/s5f523kOCyorCrC7rgNNEgYuFq3YxAL6S3+7j6kExiLdEkhCUtt+UIryQgd6XF7FOmwpjAD2/CzQFk+pzZ8aF7pWOANw3aXFkvG+qtkl2Lji4hGv6x2H8YwVLcqxI9NmUl0nrkRehgVP3TwdNz17SPP1F1g7d5JsIw812M1GuLwjjbTUfa/lHO64Y35QGAg4Kyq0dvN7kvecmudMzzUUj0Pu89FsS0kok7I7aIFkXKVFKj1oCPv/cNRme4sXLyW5abKxsKvK8rFm7iT88bD0Lrv5TL0vq5OUHoRr5/L4dO3sMu0mXHNRAR5cXhFs+Wfi2AppUkRiaNKsHPIcNlXNNbTGLdMsRkV3d36WDQcYDU9efLcRgAHrl5eHLNoE78WbNW2SCzEWN11egu8vnDwioU7oFw2czdwGAgl5aVYOPM8Hk7qkqLyoAPnZNtXGmZV9b+KMWHpxoeR1FzLk5Tw1nFH6aZPyXok9QHI13BlWboR2vN3CwWbm0NorvSBUEn6RUwxkeSLCxyGn/JWMSompTMob6GRG6+JBKsNWqqZTKdtbPIGKd9jXX1qM/8twc//pvVMwcUamofTzwNrN70ru6CNFSx2lmJZeN179oAmZZwRThAXJusVTMOzz48V3G1XHryNBLq53utuFmpYezXHLQY8faWYjSs5Jw+lul+RkesXkc/BXRsMTnx/YcqgBJs4QsmgTFo83XT4B1/xmn6JrWZj03/60HVazMXjtxQtQh9WMjn43AH5EiRwA3PvXj/Hah80jvntqoQPrl1fA6+NRnC1dLy3euYdn3zusZjjdXnh9PEwcO+y1bvEUdA16gp4aKQbdPqy4pBCHTnShvc8d8nvhhJRc9Q7i3174APVtI5MBb7hsvKSh05rkqlYxkPV6+DjklL+SSSlxLEAGepSgtsxKTZLH5gMnJXfY354zEVWzJ+KPhxskdyx76tuZXZqAQBJTrBqGhO9K7BYOgx6fqthkdW0bhn1+7KnvCC5IZp2XCz5C42wEYJPZyQYSvAZRlJ0m6wHY/nGrLg/BoNePutZ+fHPWBLi8fhw80RnSXGDd4ik4zGh4IvBmjfSOqCQ3HcU50mMqzrbj0pIs/L+PW4PnX1gsittzmjkDNh84KRlqEU/wj638ErLSLHizpg0tvS6Mc1hxdXlBcHdv4sCsFPj6jAlY/qWioGxmAD/zd1meK4fdLOupSbNyeO9kN9qdbuRlWrGoNE9xIWq3cHjhUKOkcS4vdOD+M7FnAbFHS0u+iVrFwPE5Z+qx69pHhMjExLMKJt4kY8hTDjLQowS1ZVZKD5dcFvOOT1rxf6pm4AVGqdXpbheqZk+EiTPKukBj4QaTCgs8sr1WVWJbeB3q6W4XTnc3ybr01bCkIh+/vG4alj+1j9nNaPOBk9i44mIsKs1jlrDt+9cXsgsfJXYeb8f22xcACHTtmnhOOob9flX11009LvzitY/x46suQFHWWSlXOa/Fl8vGYU99h+T3vfpBE975ZweuriiA0WgIEbxgqXg1dg3gpstLJJMZBcSu95ZeFwoybchOM2PvP7/AX94/FWKElUI8cp6rWefl4nT3SK+DOGGrtc8t6X0IR25R3Tc0HNzZszp1fXvOROw63i6b5KqlwmBJeT7uqizDN2dPguDNkHpGY91DWy3RNKaJag8cKWSgRwlqV7VKD5dcFnNrnxvf/b/vIV3GcG051ICNKy6WdYHG0g0mTK7DPj84o0GVkRV6E4cTaX7ksaZe2C0cvlyWzzS+QjenNXMnMv+mpceFNXMmwcQZUV3bpnkn3drnxhWP7gRnAAa9fPB4i7PtWFKeh2/MmoA/v3eK6c7ferQZW482j+jd7PP5YTIaMCxyp0wtyDjjZWEvJtqcHmw51AgTY97b8UkL1i2egser6/HqkdMhUq4rLxsfzGqWggcPng/I0jb3hgqoCJrre+ql63hZC8fwyVssXJOfZUWH0xNyDpS+T0DtoprVqUtNZYRSWZfRABRl23HllHPR4/Lgqk1vobV3aIRqWvhv6KmCERZb4br9WtFrTOUM+mhsDwyQgU4K1KwUtaxqldrayfWvbXfKC2EIBkfOBRqPhiEPbz8+ot0gC5ZhUltTzEIQPlEyvu3OIRRlpWG8zPkqyk6TkIrsQEuPCzYzhwGFbkDu4bMGRNzyUpjoV89kj1FAPGkBkMxHON7ajy2HGmXvIQFWiVhzrxsbttWMyC7vd/uw+UADDIaRO9PwCZZ1PqprW5nlVKyFI0v7feX0Ygz7eWw9OjI+Lvd9AmoW1WpCV3ILXbnfKMq24dlvXY4/vduIv354OmQhK1zrwyc60Tc0LGkI5RJZxc+tmTNg499rmYstrTtUrcZUyaCPtvbAYshAJxCtK8V1i6egz+UdEWsMX9WyHi6hsUEvQ59YDeJJKRENQwB5t154o/dFpXnYXdfGkCK1wefnVdfHjvy8HblpFjy2o565SxcmYrULLLuFw/l5DmxccXFwEhxwD2PZ797RNUYgMAm9cft8uDzDqhpQ7KhphZxzYVddG7Mftlr2fSrtIgdGxsW1uHE7nG7YGXkBUgtHue8+eKILPplEBbuFk12IqrnmDZ0DEckSy/1GZUUBXj5ySnZhJq5SkDKE4eEAqedWqqxObrElRqopi1ZjqmTQR0t7YCnIQCcQtStFqQYG111ajPWi8iEpwh8ure0npRBPcrFoGDLs47FxxUUhfxv+EMs9cFKN3k3bDMwJbNjHq9LxlmJJeT427fxU9vNi46v1fAnXz+nyRhQvb+lxoWvQg40rLsaBE52KNd0tKt73ZVp1jUWgrZ/tqWnpDZ00tahz2S3s8yS1cJSdvHtdsuVdPr+yB0bpmkcjIUsuO33p76Sz0uUQ9+IO70D27L4TI/I55GAlITL7ts8q0WRM1Rj00Zz0RgY6QWhZKUqVV0n1W9b7e1KwDEKmzQQzF6gJZe3UXR4fmnoGgmUuUu4x1lhefLcBAB88LqmHeN3iKbIPXHj8S2mSPNLQpane2QDgm7NLZCdAzgisnlkSYnzF50scqxM8Bix3/2M76iNKZivIOruLr2RkQ4ccnyHQiYpVajPOYUGHU39fbSUKMm0hk6YWdS7Wzj/DymHd4ikjXpedvLPsGPb50MYI+7i8vOLuS8lVrCV0xbo/WL8htzuXQ9yLu6nbhXQrBx6BmLxBY8eM8MWWAHuB7tdkTNXujpMh6U0PZKAThNobK1rxE60awSsvG493Px9puIQeteKFgThxa8O2mmCG99lkpdCuOXJjCdTnNgaNFsvDoOWBU5okX//RvBCZxaIcO2wmo2QbSiBQT+ry+NDeL3NOeeDW+ZNHuOuFMEN4xq7X58eu4+1o63Oj+Eyy1t2VpXh4+/EzoiL6sZuNwUWVGiESPw+mcQYCnoc99R0xkwSdc/45qo1YOKzYtMvjQ9egZ4THSe67r67Ix5BnmNk9jDMCDivbgxX+OyxDrrSAVBsOCv+NPIcNaTIeBRbhvbjFn9eaV1mYpS2ssKe+g1nxIPVsq90dJ6v0sxJkoBOE2hsrWvETud/LsHLIslvQ2qvOPaY2FnQ2WSm0PlrNjujNmjbwjCpnIaYq/LfaB441SZo4IzauuBj3LCsPGvBhnx9XPLqLObm98kET7BaTZtcZK2NXjDiBJxqSmf/qGBixqBLObZrZAJdX+kybjIDZCLiGA//OsHK44bLxuP8r5TBx0uGSNIsRbq8fhdl2zJiUg60SAiRypFs4Sa/Qvcumws/zIYlIUijlAkjtQuUm74bOAaaB9vkBp9sbcYtEr4/HTZdPwIpLimEzcyM8QHoykAMZ1YMRVypEytUVGsMKPS6smTsRJs6g6tlW64GIVL0xUZCBThBqb6xoxU/kfm/VjAma3GPN3S40dg2gtCAzOOHJ1VcLvFnTGjTsSjuilh62RKIQU72rsgw3XT4Baso6xBMzAKa78awB57BqxgTZMcoJt0i5J+VkGKWob4uOnjVwdlH12I66kGMa9LIn8GF/wFtgADDOYcWc88/BT5eUwsQZcXdlKQ6f6ER9W6C5B2cESvMd+ON3ZqHPPayYPMcKodx4+QTJvAoTZ4TRYFDcDbIy9q+amjfCc6EmY7koOw3F2Xam/rze+KXLExCx+d/9n+NvR5uZ2c9aPWghu20ZmVEpOCPw1WmF2PZRi+bjmVqQgVMiRTvhOKSMqtKcVpSVpsmYatkdJ6P0sxxkoBOImhsrmqIBcr9n4owj3GNMWU8Aa597D9lpZvS6vGjpHUKew6rYiKCpZyi447932VQM+3i8+G6D5KQqN7EILS/31LePiE13DXpCHminy4sHt9Xg4IlOtPYOIU2kC12cI585fu+yqehzefEqI/M5vH5Zzj25o6ZVc8ONaMqQtpzRSteq+S2Mod3pxtajzdh5vA2rZkwAz/Mhu3ufPxD++N2efwWbf8glz91w2XgYDep2SYD6HIribBu+XJaPPfWhAh/eYR+eP3wq+HdqMpaF166uiF78UmxApZ6t8OxnrR60DdtqdSc9ggf+7coLcaShR1X4wgCEPENeH6+qDlpLRYMaYzpad8dqSPluVqMBpVpgvd2v9P6eQLQ7LHFG4L17loS4BO/fekyzglZZQQbqWkfKJ2ZYA4lNRdl2XDU1DwYEet0q7brkOvS4PD4s3vSWZJnW+Bw7Xv/hPDjdXmZC3PrXPwlR09ICq7kBZwwk63UPDqv+rvE5dvzh2zN0dQWTgrUDFs7JtU+/IznJC8lzQv9ftfdiQ+cAFj3+luLYhWspfK+wk2ctBNV0h4rm86f2mSrOtmPnuoUAwOy+Jh67kP8Rib688H3hXhYp0i0cXvu3uboFSeTOqZRwyliFdtBRRK/ohtJKMdorRLUrU2E3o2f3J4VUzO6uyjL89cMmTYks3YPSddzi3rlajKJcsp2ZMyDLbpY00Jk2E659+h0097iQ57BiyRn9aAGXx4dXj0jHL9WQlWZCj4QRPn9cOj5tk05gY7GoNA8luelR6/fMul4tPS7UtfapSp7T8rzkOWwozJJ2NQNAQZYVSy8qDN6zwj2utJNnle6IxxWt509LJYU4+1nNbvPh7cd1S8WGf5/Y08a6V1bOGB9R5zqpc8pq4pPscpyxhAx0FIiXzmu84ydnOxuVYOlv9mqKZ0khjtmd7fXsl80YDqcg04r2KJf4yCXbPbz9uGSiVm6aOeR1QZ/5SEMXXv/RPJg4Iz5tc0ZUHmUzcaiaXRRUFCvIssFhM+NTHbHp1bMmaMqG1kthth1lBZmyMcbcNEswa17t82K3cMiym9DUI/27Ttcw/GHOQDUGUZzHofQcR/r8aamkEGc/K4XCXB4f3qzRFroQE/BqTAx+n9h4nuoawO1//hCftvXDzwekQ8sKHPjFNWW6f0+M+JyGexdGixxnLCEDHQVGq86rWkpy01DEkKnUwpLyfJg5Q8jknJdphc2s3NtYYOGUcdj/WWdUS3xYyXZyE3zvkPQuvrbFiQdf/wQcZ8RL70W2o+lwunHr/MnB7PL/fusz/Om9U8oflODOv3yEf9yx4EzsP/JWmywX95LyfORmWGR3fZt2fqorK1lOAW/A48PzBxpgFClXqTGIi6fmMfUGov0ca6nnvroiH0DAtZ/nsMnu4NudQ5p6d4ezembJCHEgIGA8//TeqZBwkp8P3OO/2lEf1bltNMtxxpKx6TeIIko3lkvD7jBZEXZeesmwclg7d1JIp6HT3QGVptZetyZNbK/fH9FYpGAl+yjVa7N47cMmPH+gAS6ZDGk1eg/CwsHMGfDsvs/x0hF548zJfOk/253o6vfAxBlxz7JyLJ9WpGIEbG64bDzWzp2E8Tl2cIaAd0S4xi6PD9+cXYKq2RNHvH/7ogvw8vvSxyH3vLQ7h9DSqxxm2VHTGvwOwSDKIVwhuef4jWMt6JJRPmPh8vjQ0DkQHI+a5yjDyuFbs0vg53kseeJtLHr8LSx54m1s2FYDM2fAxHNGdqByWM2BvtgaKcq2KeZfxGtuU0qGa+waDDmXYwXaQUfIaNZ51YKUmy3TZkKvy4vW3iHZhg6ZdjPuqiyD18drziIO5/CJbvzj30NroOXkHaUwGQG/HyjKkc8cDsQ9pZtCGA1gJiypWXCoydMSFg5KcVSBL5fnobpGupOTzw/UNPdgd30Hqmvb0NQd6Nrk53nNTUNMxsAC495lU4O7OofVjO7BQBMMcd/tRaXjsGbOJBRlB5KJfvLSUdn4tfh5EceC1e4+W0WVAmpc+q8eOY2fLilF16BHtsvbst/txZLy/JBjYSHnKpd6jhaV5uGmmeNhMgZqoMOTtOR28sM+Px7ZXqs58W/l9GJsPNO3m0U85za562u3cFi7+d0RXbjGQlyaDHSEjGadVym0ygmqaeggdH0CoOhyLMi04tIJWXiDYWhaewM10OKx5KZZsGnnpyGT3sIp52Lrh82SiwaLyYhXfjAX550r3Q8XgGJjkSn50pnk0UIwnk6XV9WiJt3CYe0VE7Grtl1ysuaMwPZjLSGiG3rj48N+BEuB1i2egid3/RMHT3SOWMgIfbiFe6er34N9/2Q3yRAkSVkGbvHUPMUOZgXZNjis5qBr+N5lU+F0eZlNQvrdPjy4rQYPrbhYdgEQyDFoxJZDjSFtOaWMhJyr/K7KMqyZMwm3zpuMhs4BlBVkBpMmBXERVq38G8dacOu8yRj2+4PP38Pbjys2QEm3cMhOCxUiUmPg4jm3yS2mxL24Uy18qASVWUUBVumEnPso2Yg00c3l8SmWgwDskhEBzgC8/qO5+Pr/HGKW8bDKYsSLi3bnkGxZzgXj0vGPOxYwj411TTOsAQGTuytLcf0zByQTyExGdqtFraycXozXPmxSvUNi/XZZgQP97uGoxu4zrBx4ni2vKZBuMeK6S8dj5/E22Vr5ldOL8fiNlzDP/bfnTITRYMDL759iLi7KCx0j2ieuWzwFV//mbbT0Sv92QZYVz6+dhRcONWiqIZZ6vuWegwwrh0ybCc297hE9u3kAu463K4qLCKV3hVlWLJ6aj911HYrxZ84AbP/3+bCZOc0Z6HrmNr3VLOGlVwVZdvS6PJrngWiOKdFE1UD7/X48+OCDqK+vh8ViwUMPPYSJEydG6+uTlmjXKScC1oOoxhWm9B3ih1mpDlR48B7ZflxyslS76HF5fLhq01uy5WFVs0uwccXFIz7X2DWItZvflfxsUbYNu9ZdGaw9/eqT+yLaSRdkWtHe54aBobhVnG0HD15zmZswkRsNwORz07Hp61/CiqcPRKUGOhZkWDkc/PlVMHFGxYXesM+P9ds+wZs1bSHKVRNy7DgucS3Wzp0ku4sGAsk4hdlns+TVnCcpI6G2XjueaDVmYlhzm5QoUKQtZMOV/oa8PmbdPmcAdv/0SkUXe7wqbGJFVF3cO3fuhMfjwV/+8hccPXoUjz76KJ555plo/kRSMtqVbOSSQV75oAkHTnSiUtTsgoUaZTThv1m7IEGScXddYDzCTqMgM1BnLP4uqVWx+LUrJp/DVAETxnnPsnLYLRycLi82nFEca+kZYu5iBHf9xHPS4fXxzJ1cusWIIa8fPpmJWhD1qGvtwzf/cFjyb1p7XVhxabHscUiR5zDjgjwHPuvox4kvBnDbCx/ALpMnkGhWzQhIfKrtj7zpxkuDiymAx7gMG659WjrEUl3bhtdum4N/1LQyr5cfOOOiV78QEsYjeGy0xMrjid6OTcKzdFdl2Yhw0tLf7Rth8PRkwcsZUK+Pj9jFPtorbKJqoI8cOYL58wMJPJdccgk++eSTaH590jPadF4FlMpRmsOaXbAwccYz+tglAHiU5IbGeMUP/LrFU84YxK6Q2BjP85INN1r73NhT3w4TZ8DdlaX41Y76kIdaUA7befys/OeVU86F3WyEyyttbtv73GjuHcQLhxpl3aZi1DYyGVCReJVpMyHTbkJZQSZTKrUw244Hl1cg024OJnep2Zy1Ob1oc3YF/y2V6JYMFGRasfTiswIjWuKedgsXFMtQMuwurw8rLxuvGMPWNHaG5OxVU/N0q8dFk6LswCJVqs2mHHJGU66P+5566bwRuTIpJQMaicxxKpRuRdVA9/f3IyMjI/hvjuMwPDwMk4ly0SIh1vETtat+uZta7qEGpPs6P3rDtBBZPyAQo2bB6vIkpRx2utuFFw6fQk6amWmgi3Ls2LxfW9xxUem4qO2WalucuPapd9A3NMyMzS4qzQv2/b6rsgyftjlx3X/tT6gLNc1ihGfYH3GcvSDTiu23LwhRltOrPe+wmmUXOXkOm6qFjRay7OaQe0e4P9fMmYi1cycFPUn5WTb0ubwRidZoxW42gOeBv37YhMOfd2ly6+ozwq1oY9zDrIxvNQY0kjaRqVBhE1XLmZGRgYGBsxKEfr+fjHMExFOhTI3ClJLiFmslDLD7Oq9fXhH8PrUN5rV0eephyIICwLzzc5kTjhghPpllN2N3XQf+eLgxarslVjtJwbW/63grXJ5hrF9eAYfdjOw0c8LjmwZEJwlu6cWFkq0atUzKggZ1dS07AU2oPd51XPlaS5GXYUZ2mhV9Q150ON1nSqPGYXeddEb6zuPtqL5zYUjIS42+dTRxeXm4ztSNa3HryhtNthHucLqRnym/QApHrQHVGz5MhQqbqEbJp0+fjr179wIAjh49iilTtLlWiFDCRT2EB+3h7cej/lv3LpuKtXMnoVhG2EGP4taOmlZm2Ui42IEaYQlAW5cnOVvWPsCufRUozrbjjTvm48tl+ahtcaKpJ/RaGADcML1Y/YBUIhxjc68br3zQhCse3YUN22qQm2ZBcXZ0JxatIhdq3PcmmZlFLGoi+dkzOR3Vdy7E7p9eieo7Fwaba4gZ9vlx7VPvYMuhRknDIP4dLTKbYowGYM4F4zDo9aGtz41xDmuwtrulV964CCEvQd868HwFrp1wKONz7FgzZyK+PmO85rFpRUpcJFxMRe48CUZYCmERJQXL8yH3vEuFM6REWuSQE4bRG5ePN1Hd3i5ZsgT79+/HTTfdBJ7n8cgjj0Tz68cU8Y6fiBPd7tt6TDIpSeqmdnl8+LCxmy3yIBP7DN+R2y0crpwyDi8clpfIlBMJ0cKe4x3gjPLfdXVFPkpy05k77Z3H2/H6D+fhkEQdcDTpd/uCu6CrKwokd2MrLinEeye7NY8jmjvyfIcF6VYTTnYOSr5fkGnF6z+ch9wMC1weH5p6Bpi7IqWcjg3bapkeCPHvAPK7Kbn7Kc3CYevR5uC/hXpoALK7M3EttlTDjfDuZw2dA/jL++zGKpk2E/qGRjZOyWY0VJFC/LyxvHPrFk+RPS65/ud3V5biSEP3iB7hd1eWSo4nmq10WUTiIk8GomqgjUYj/uM//iOaXzlmSVT8xG7h8PCKi3C8pU/2QRM/4E3dLhiNkNyuFmTbAB5olpBpFFbJQvP6zQdO4q8fKnd/mpLvQF2r9oYR4fBgu2qFeud7l01FU4+LeS2au11wur1MoykQrdro6to2vHF7qJJaoUwSTyxg6XCnWYxwun1oc7JlMTucbnQPuvHknn9GFLoJLGClPTNAIAFQ3DlNzhh8Y1YJXB6fouCHmD31HVhUmieZvyB0OWvqdiE/04ol5flBD4B40SF27+c5bCjOllatK8yywgCDpIHucwVeE0IiRdnseLd4V8oKSTldXuZxia8R696T6hEup9sdawM62itsKECcpCQyfvKrHfWKD1r4A85yO1dWFODwiU5JA+2wmfDYjjrZtnbhmIwG/OnWWXho+3HNpUdqSbMYsfsnVyIvM3COZZPBDMCv36xHhtXENFxAwDgLIhpiqVTWDpBFS89IJTXxpHPvsqkjkuiiBWcEbrp8Aj5o7MFxie9XIxlamG3H5gMnQ3Zhekpf2p1Dsl3N8jKtIc/IsM8PnudDrlGGlcMNl43H/V8JtAjNsJlC+oenWYyysqRr5gY0HqprW4Ox6fBrKuy4jzR04/UfzWP2OrZbOOYib8755+KvH0rf68LOX3j+rirLg4kzyu5KlcoqC7OsI+5VsXFmKQrq8fjFy4CO1gobMtBJSjzcP1K4PD7ZmPFdlWXB/5aCO7OTFgsaXPPbvZJ/29g5IDnRy8HzPPrcw3hoxcUxcyu7vX64vGcnZruFY8pM+nng9Y9aVH1vY9cgdv/kSri8vmATjAdf/wR/PHxKfYaxAXh23wmsX14hOel4fbzkTisarJ45ESbOIHnN1HoIZkzMwa467eU44Shl0F8l6lIFBBaU4dev3+2D388Hd+0GgyHEIMstOAqybNi8/yT21Hegtc+NczMsuOK8HBw40S3597UtTnz1yX3od/uYXgPWbnLd4ik4/HmXqkXsnvoOvHH7fAz7/KiubUN7n3uE5rxSPL6l142WXjeqZpfg1vmTJY1m+L0XqcdvtBrQWEMGOomJd/xk2OfHfVuPMVWrhAdtyOtDE2Oy4P3AC7fOwqUlOcHYGqsLkZpko3DyM20YOmM8ldzKepHyUEQjTNvv9uFX/6jDr2+8JPia2cRp+m6fHyH61uEoTb4Tcuw4pbEsTHD3r1s8BUt/t0/yb9QYZ7vZiL8dbWYeb6Br0YAqSUqlygODqF+Y3O7uxXcbARiwbsmFzC5bUrg8vhAvwBf9Hrz8QbPMJxCiOCflNZDbTart493c7cKGbTU49HkX2p1u5GVasag0L2QhoLY8cE99R1DIR4lUyJhORpJf62wMozabNVps/HutrNtYEGa4ZfN7zEm2KMceNM5A4MFNi+Juv7l3CJW/2YfFm96Gn+exZk6gpaERgaYALExGYOlFBap+I9xD4fL4dJfohLP9WAva+4aC3yvXCEMuE5rV7k8pE37hlHGoml2CgkwrjAgYXxZ2sxGLpozD/71lJn686EIca+plLszU4PL6ZRcjNrMRt2x+L6TF4rBMyv66xVOY4//Te424f+sxDPv8im1DtxxqwKr/PqipTrlHpje1FqSuo1TG8r3LpqK80KH4fWlWDq980HS2nWufG1sONYRUfqhtHyssyNWQChnTyQjtoEcB8XD/uDw+vHpEPkErXJhBing9jE09AXGSqtklqL5zIe7fekw2ycdm5pBpkx9XUbYtKGkqprFrICLDJMbl9WPOo7vwjdkT8a3ZE2W/V25XynIb2i0cM9MWAN76tAPVdy7EPcvKA6VAZg6/+kcd/vFJywiPhsvrx55PO7Dn07P1vkYDIKXeLxd/V8uAx48Bj/ra3a5BDwYZ0qViT8NdlWWKO8YTXwww35MiWpnvahM++1zD6BrQ3pNaIDx8INzjb9a0MZttaN35jvaM6WSEDDQBIGCE5CbYr04rwIeNvcz3WcYt0IpS38RtNwcC2i4vezZ88d1G+PzAwROdst/V7/bh9Y/YLsgVlxThl9dPC1lcCPrc+z/rjKoK1bAfeP5AA/x+ninuoITc5LlmziSmgT7d7UJzzyAmnpOOzQdOBjOp1cIyTCsuKcYHjWdLbAwAzEZARxQjBLm4tOCdkbtvhc8ruYgTJf6iZASFaok3jrUo3idpFiMGVfba1ltWKcdoz5hORshAE2eQV6u4YfoEbD8mnTxmNADPrZkZ1EUWk+ewoThHevcyPidQV7mnvgMtPS7Ywpo5sCQ6xfj8QhxRGTlD/+OrLgjpynPPa8ew9WgTPHLdLiJkV107FpXm4U/vqY99CoglR8MnwaLsNIxnnHMA+N3ufyLTZtEkcarEkYaukE5SPJSNs5p69khLCoXP37tsKoZ9/uCCTi0mowHDEoPkDJBthBKO0F0sHCUjqKVszuXxIy/TKqn2xVoI2C0cfnXDtKDWezR2vpTwFT3IQBMAgJLcNKabMsPK4Uvjs5luwqJsO0py0yS/Vykbff3yCjhdXtz3t2PYpjIbOtpwRiDHHlBI6nd5cNnDu+BWyHoqyLQgw2oOKEz1DqEw244MK4eufg/a+9W5Ilt7hrB23iTsqGlFl4wkaThT8jJGSI6Kk4ACbm7pWlYA+NvRFs3qYUroabmpZtcqp1536MQXim514fMmznimtahB08Lkm7NLYDAYQozXrPNymWVPLHiMLLNTMoJKOQpSv9HPyOBniQwJi7xE73xHa7/mWEMGmgAQmNRZ3X5WXjYeuRkW3WVfSrGpTTs/xd+OJsY4A4FduCBqMf8/9ygaZwCYPfkc/Oam6cGJ5dl9J5huZRYF2TZsOdgoaZytJqPkOKwmIz5tl88GBoA1cyfKGqJou3Rj5WcIv7eGfX489PfakHplNZ8/20mtFCburMHlIX0ujAbgG7Mm4r6vlAfj2OKmLmrLnsT0uLz4fz+aj47+IQAGlOSmySZ86pEnFTxQGVYOgx4fCrPsuLoidCEgp/Ef753vaO/XHGvIQBNB7vtKOQwGA96saUNLr2vEwx1uaMc5RvZolkIuNqVml5Bh5eCwmdDSqz1Wq4bxOYFdVlO3C90qZRPfPdkNl8cHuyVQErSnXrpxghxXleVhVx2jntwg7RZlLR7CY7VFWfJubhYsV2w0UeMeHh9Wu6t1IZRmMeKG6eNxd2VpsJmG2AC8cft8HGvqxepnpftw+3ng1vnnwevjg3KkYuOltuxJTEvPEB7ZXotDn3dJ9j4OfzYi6ZY26PGB5wFe4momU4/kZBpLMkIGmggiZUiBQMa0MHEIsbzq2ja0iXo0r1s8BV2DHlkXVXhsStDxVsqQFmpwN2yrwfZPWpmZu3oRdlnvfiKfaCamtWcIHzZ249KSHM1Z3gYAN80cjwH3MLPmfFBF/F2MlK65HiPyjVkl6Hd7se2jFk0xVrVMyLHhVDe7dCfNYsQ1FQXYcO1FcNjNId2q1O4mOSMw5PFjT30HjjR0j2hNKpyTHy+6MCiRGY7RAPyft09g7z87RmhVdw16gj2WxV6hRaV52HW8Fc2MhaTdYgypNBC3T+0bGh5htO0WDgsuHKc6x0KM4BUI7+WuRfEr1m7nVOjXHGvIQKcokTxcdguH4my7pOuJ53lJmcaX3z+FQY9PlYsq3K1lZEySnDGgXiXo/EqVUaVbQhPLwsnPtOALpweF2XZcNTUPBgQaXEi52meed47qc2QwAt949jDSrQGhES22zGgAPMM8XvtQXthCC+GxWkHa0m42yibbGc/s1IVzcXdlKa5/5oAu45xmNiIn3YrWXhcKsmxw2EzoGfSirc8Nu8UIg8GAJhnjDATUu177sBlZaRasX16hS1tcuJfkdp7VtW246fIJzIQxPx+afMi6z9+4fX7IwtTEGZjjdTGy5lgLiPXLK7D0ogJdBjocweCpUfxiPfvRdjunQr/mWEMGOsWIJKYjNurh/WuFiYMlDCHEA9W4qEZMugxjsHpmCTauuEh2pZ1pNyM/04oTX0h3T1oytQDfXRAqV3j3NdKLl9x0C7JsJvSqkMoUJnY9tb8FWXbFsjCthMdqpaQtpfj6jPH4wZUXBM/F/Vs/0a3jXZRtx7Yfz0dz7yA272/Anvr2oHFWo9Mtprq2DT9edCHerFGfJKWF090u+Hw8irPtknXArJ210n1+d2UpDp3oRF2Lc8RtrWXNIxjUiqIs5li0IBg8NYpf0XY7szYLpD6mDEXhUww9PaQFN+KSJ97GosffwuJNbzFlD9UapB01rZJKV3LGljMGbkihj68wGciutHuHmMYZALYebVL0IgjHf9Wmt1QZ50ixmY1M17YaLhiXjuJsOziDdG9lp8uLl95T3nWVFzpwz7Ly4L+VOkQpIXgyXjjUiC2HGnC6O5CEpdU4AwGDUtfaxxTRiAZ/eq8RV1dIq1+pNYhviu5zl8eH+7Z+guMSxlkr4p7S50VhFykYPCXFL4Cts89Sr2MRPq+Eq8OR+pgytINOIfTGdMJXzNFoQNHcM4Q7/3IU/7lyGhx2c/B12cxUPlTHWyCSZJl+tw+NXYMoLXBIehcWleahb8gT1yzyzzq0qVaJsZsMONExgPysQBvD//jaRcGuWwIPbquR1Tk/N8OCq8ry4PX5cc1v96KldwhFZ8qH2nWIpgi09A7hF699hMOfSzeM0EJhth0Tz0mPyu6RhdBYAgiNJc87/xz87aNmVXX4TT1DaO4dxAuHGrGjpjWihZeYwmw7nt13AnvqO9DU7YLpzHngcTYsIRWGYIV8xAZPrimHXE6IVrezmp04qY/JY+B5KeE+YjTS0DmARY+/JVk2whmA3T+9csTD5fL4sOSJt3UZPzWI+yqbOKPs7xVn27Fz3ULJRcSGbTW6G2PsuGM+SgsyI/qOZEXq/C56fA9TdcpoAG64tBhv1LQya94jleyMBlWzJ2LpRQXMLGsAyE03o2tAvya2+JkI7UnepPoccEbg6zNKdMeJc9PMkmV25YUOyVDDNRX5eOS6aXhyzz8l7+Xrphchw2IKiv8EktfGYc2cSSjKThuhMd/uHEJumgWbdn4aXLgaDNKLovE5dlTfKf18hiP3nEt9D9VBS0Mu7hRCrlECK6ajp9ZSC/1uX4iLXc6t1evy4LEddZINEtYtnoKV04tRnG3XJLKRYeVQkpuOrn4P3jiWuFrrWCGc3w3bagEAzb2DspKQfh54+QO2ARryJtY4c0agrCADu+va8I1nDzOvdbrFiKUXFSp+182XT0CxwjMhGIc/vBPoU61lgeLzA7sZpXJqsJmNKCtwQEgPCRy/Az2D0mI3nzT3BaspqmZPDGl6kmHl8LcPm7GnvgOLSvPwxh3zsag0D3vqO7Dkib2SLuaJ56Rj085PQ8JiLI+FFrezmgQwMVINQghycacUenpIy7mPM6wcMu1mtPUOYZxDn2a0gNjFLrivXn7/VMhkKBgb4KwLTFxm09bnRmG2Ddd+qRD7/9WJDhWKXddPL8ZjO+pUaRlLke+w4ot+N8DYVYSTbuGw4tIi/O1oc1x3oi++2wCAh1dBZEVJXnPYD0w+Nx0nOwcSok/t84eqkrH8ewMeP8ycAReMS8e/GCEDvx/4wZXnw2bhJJ+JxVPz8NiOOrxZ06o7rFOQaUW7U/9z0dzrDinLChw/O0mvpccVdKmLk/DE99rpbhe2HGrAeyc7FVtcujw+vMno/248UxQf3k9aDZQAFh1oB51i3LtsKtbOnYTxOewkIjFyO9pVMyZg17orsfunV2L77QswPofdxlAJ8apZUGbKFMWmxbxZE0hGGfb5ce1T72DLoUa09rnBIxDb3nq0BedkWGR/ryDLirVzJ8FgCJS96DHOGVYOb/z7Auz+6ZVYOX28qs8MeHz43oLzcfDnV2Hl9GLZdo7RROje9MoH8h3J1BjdAc9wwppHaKG6th39HnZSX9oZERnWM+H1+fHc/pMR5VwsKc+Xbe+pBKuwgvV6YbYdm/c3BHe8ckl4LPlVcbJXu3OIefz+MzkhetrcUgJYdKAddIqhpqNMeLxHLlHDxBmDcWs9whcC4avmducQWnulJ4amHhfu23oMNjPHLPlxDg2jrMDB3G0smZof6GL0xNu6xgsEdm9P7vlnQOnJry5TiTMCDqsZDrsZj994Cda7vHhwWw0OnuhEW+8QCrLs6Bn0yNZuR4LcBpozAPmZVqaQhkBbnxt5GWa090en57Gaphh6aOl1yX6voKIV/kzkplnw2I56/FljkxKTEcjPtKO1N/wZ0V6rLcDyyrBeDzSXiaw3uTjZy2E1MxPxAu72TN3GlBLAIocMdIoi1VFGrkZayagP+/zw87zuJCJhNd3QGZBNVMrMfvWDJqRZ2Cv2lp4h/P72GVj13wcljd2e+g58c/ZARPH1AU/A5T7s43HoRJeqz4h1vQHAYTfj1zdeIltjHi/sFg5XTc1XJZWZYYuegZYzopFIixZm2THs86HNKR3qGPL6gxn8wNlnYsO2Gl2dvIb9wO+/dRnSraaQZ0TKECmpigGBTlnjHFa0SCxUhU5vu+ra0dozhIIz7Vy/OasEfzwcmXCJeLHsdHtlFwnie1kr1H4ycsjFPYZQqpGWS9R4ePtxPH+gQZVxTrMYUZhlC7oT18yZCD/Ph9RDPrajDoun5sl+j1z9bF6mFZzRCBcjqam5x4Uhjz8i96NAdW0rWlS6QYuzbcHJz+XxoaFzIKjZPfGcdJg5Q3ChI4fNZDzTDzt6DLp9WDNnUtDdK8fQsB/pMgskOQoyrcFrXzW7hJmkZTREpvv95bI8XF1RwHzfzwNrnjsckhiltUNUOH9699SIZ0QwRNV3LsTun16JN26fDxNnQJ9CTf2wn8flk3Ik37tqah5MnDHYBFb4f7lEULWIXcx5Dhvz+gga9ZFCCWD6IQM9RlCqkZYTINA6qX398hLs/kkgdl1950IYDAY8f6BhxMKAB7ByerHWQwEQmGRKctOYk5WfB2578QgybZE7iVr73DhX5S7i6ooCmDkDU6BB7UJnaNjPrMPNTjPBZtLeLzIv04qi7LSgMfmv1dOZf9vaO4RFZfILKCnG59ix/fYFwWu/ccXFTDEQuZ21XKa+8N7O463o9wwj286+xi297pBFaKRVC3vq2+Hy+EIWXwLhWdGqPE0GSMbHDUAwPu5HoN76uf0nsWnnp8zYboaVgxHyce2q2RNDXMx2C8e8PhQrTjzk4h4jRKJ7qzSpFWRa0eF0S8au5Yz7ruPteP2H83DgRKekwAPLnV5e6AgmrcjFxZt7htDcMxTswxtJrXfngLQbNcMaaGUoPnaWQMOwj484fggAPRIdt9ItHIa8PlkNbWHCHfIM44ZnDuC4jKSnnwe2H9OuKraodBycbm9w59XQOYB1i6fg8IlOTRKi549Lwz/bpRXiBMPe0uvGXz9Qp2e+o6YVd1WWqRK9yXdYmG7zljP5EYclOlIJdehaFrNHTvZg57qFIxrUsHInqmvbJMVVxI08nt33uaQLX5DODYdixckLGegxQiRlD3KfHZ9jx+s/nBeclMNX3M09g8zJUJBzvKosX3JCWXnZeBgMZ3v3Cu0t1y8vD2aUCpPImzVtTFnIvqFh/OV7V+BEhxPbj7Vg3786g9+nNrs7fLcntEMM7+Il76loRVsEpWpyZNhMsolnF4xLD5bWXKdgnAW0JHblZZiRm2HD7roO/PFwI9LO3AcDbh+Ksm3odWmLZ5/uio4il0BzzxDu33oMj94wjbmoWz2zBN9fOBkOqxnXPv2O5H1rt3B4VaIjFQDcVVmmqjubmNbes4tjYYHc0MnOnWjudqG518WM7dotHIzG0MVthjXQ6/2+r5RLfifFipMXMtBjBD010mo/m5thYSaSbD4w8jNBDIGOUEXZNpQVZKBn0Iv2PndI3aVQksWaOITJ5abLJ+Ca3+yTjGme7nbhhmf2o93pDsp7rpk7ETaTCTc8s19XCdai0nFBg6dWyrTD6UZ+ZmT15Cw6+twwGdlZ3JdMyEZD1wBsJhPqdDbDkKO93xuSVCb2fGgtY5LbwUbCKx80wWE3K1YtANorFl5+/xTerGlFS+8QszubFFKLY7kFsR/ALZvfw9UVgT7s4V4vIYQipt/tg8FgUCyTkkosJRILSX2OIcRZ3KyJKZqf1SMjWpA5cpcs/j650jEtvxWp27so24Zd664EgJAxKUkcLiodpyqLWitpKjtG5aZb0MVw1ycLKy4pwtaj0WvFKUYsMyl3Pw15hnH9MwdQ3+aEzx+I3553DlsURS/ipjBi1MjShn9Wq7wmkfyQgR6DRKJ7q2Qkxe/JaYMrIZ581LbQjKfWthHAddOLcfBM/DzPYUFlRYFsD+Oq2SVYM2cSnt13An/9sBlDCqpfWpDbPY8WDAC+ObsEd1WW4YpHd8VEiY2lSR8O616KllZ50ZmyKdYCVxDpkYvbhxtdPVr8RHJDLu4xSCSuLC311esWT9HdhUosDaq2P2246zJSeVI5bGZDSCyy3enBlkONeL+hG3+9bQ6GfX5U17ah/Yw8aZbdjOraNmw51BhR7a8UantYJzvfmFWCjSsuBhDIP1DTz1oramQmIy3FUsJoAJ5bMzNYny2F18crxu3DkztJXjP1oDIrImJY9dVyJSFKCJOP3GT5xrEWdIn0uMPrUSOVJ5XDw0iXPt7ixIr/OoA99R1od7qRl2lFhtWE2hZncLEQLeOcZjHi5svHI806OtfZ52ZYYDQEupitnTsJD157drF131fKsWbORKRHWSp1UWmeotdILo/A5fHhhunFwbKogiwrs16dFTUqyrajJDdNcQxKsftwo0vymqnH6HyyiaRBqb5aqiQk02ZSLLkRJh+5ybK1z42lv9uLZRcXhrgKxbv8SORJWUzMtaOhi+0VEMuPtva5o7qLNyJwbq6YnIv1yyvQNejBX96X199ORpSy/02cEQaDAQMRuJPFeQaCnOXuujaYthlkcyeUdqIPrbg42MTl4IlOZr16ab50y8hFpXmKISY5CU7x94R/nkqmUgsy0EREKNVXdw16RpRwmDlD0CXOcn8LK36lutW2Preku1tAasLKsJpkOwYpIWecowFLu7o4247/XTMDJblnVZlMnBEFmTY0M3TN9ZBtN6HHFbnLvGp2CVweH14RhQIEMm0mZNpNzOz/SNzM4vhuQNazMWjoBMEPQPp+AdRVPGzYVid5XMDZEry7K0vxqx31Ixanu+va8MfDDcxcCkBeglNAarFBJVOpBbm4iSBS6khKqO1BLZb7E7uid/1kAapmT2R237JbOCwqVVa0YqmhSckwTsnPUH18WnpPRwtWUt3VFfkoFTUvGPb58diOuhG9dcWEP+AZVg43zZDvzDXkjcw4C9dw/fIKPHrDNJQXjoy11rY48fD248x7LhLFr8tKcgINTnw89tR3SP6NknqeXFc4ucVDQaYVr/9wHtYvr4DNYgq59xaVjkNtizOgDiYhtStGToJTQFhsSH2e5DVTA9pBE6qzpKWItL76/HEObFxxETM73OXx4eqKPMXmBi09LnzY2I1LS3IkS2jEjRJe/6hF/oSc4dwMS0iMO16kW4y4fvoE7Klvl3VTsrLFxYRvwvrdPtitJkwtyMBxRjvCSPLNHl85DV+ZVhS8hi6Pj6lJLa4dFicWdg164LCadScYbvu4Bec6rFgzZ5Ju9Ty5nWhTD1tIpMPpHtFgQvAEyS0WhIRI8WeurlAXnpH6PJEakIEmVGdJs9Ab9wo3ouLJMnzRoBSPOyt6YkeW3YRelzdk4hd2VFrcpksvKsCe+g7VRkJtLbISBoMB9yybinuWTZUtadPrAn75/VPY85OF+PZz7+F4izNqSWucEfhyWeiiTG4n3O/2BUuWhHvu5fdPYdDjQ9EZd7BeqmvbcNvC85FmkS6LUpvVLFW1oCdbWo/Urvi5au52jVhsKX2eGP2QgR7jKCV5qVmZa417qdmxj9gdKliRszFGF5p6zr4uXmzI7ajEFGbZMPf8c3BXZRlMnFFxF5PvsOB/qi7HhNw0LH9qn2L27bgMKy6ZkIXq49K63INu3wj5RyB0QdPuHNIkKSmm3+3Do/+ox/Z/X4CPTvVgxdP7o2KkS/MdI2LKarSvw8cGIPj3QqKX1rK5lh4XfvWPOmbNciRZzVq8RsI1k/MIsIy6+Llq7BrALZvfk7y3qIQqddFloHmex4IFCzBp0iQAwCWXXIKf/OQnOHr0KB5++GFwHId58+bhRz/6UTTHSsSASJpohKO2vlppxy63aBASqIQdNSuhKpzq2jb8eNGFKMyyKRpQn9+PVz5owlufduCqsnFYM2cidh5vZxqZZdOK8KWSbACBblZKBv2LfjdqW/qYohd5mVY4rObg5J6bZsGmnZ8GFzSFWTZcPikH4zIsaNfpgt/3zw509XtwboYV52RY8EUErnzOGDDOr902Z8R7csZMDX1Dw8FsbzmN7HAKsuw4eKJT8r0MK4d1i6eEvKZVvEfJayS1CGV5BNSEgkoLMpn3FpVQpS66DHRjYyMqKirw3//93yGvr1+/Hk8++SQmTJiA733ve6ipqUFFhbKLlEgc8RY3UKpr/vGiC+F0e5mLBgOAF2+dhbKCTNS19uEbzx5W9bvN3S48sr1WVdOG9jM60F/0e/CX95uQm2bGrp8sRNeAB5sPnMSe+g6mK//eZVMx7OPxx8MNzIUDD3l96tY+Nxb8524AgWYT6WGGvKlnCE1HW8BFkMDW7vRg5iPVEamPLbuoAAunjMOkc9MxbXw2bAwjsW7xFLz8/ildClzN3S6c6hoMLoDUGvsrJufitQ+ls6xdHl8gzm03686/CPcaOaxmON1eeH08TJz0IhQI9QhoLYGiEqqxhy4DXVNTg7a2NlRVVcFms+EXv/gF8vLy4PF4UFJSAgCYN28eDh48SAY6yYkkyUsPSnXNy363F0vKC5g73cJsezAR7NKSHBTnqHOfGo1glsUo0TXoxc2/P4x/3LEAG1dcLJvQ1u4cwj3LpuK9k52oYyRhiWGpiomNGcuwybWWVAPLONvNRmZtr4DJCLxV347tnwRaUoo7JoUbtq5BDwY1VAaI8QO47pn9KCsI7NCFBVB1bSs6nG4UZAVU2sKN3u1fvgD/qGmVPHf5WTYMef1weXx4bEddRPkXZs6AzQdOhhj4RaV52F0nvQgVewS0lkBRCdXYQ9FAv/zyy3j++edDXnvggQfwve99D0uXLsX777+Pn/3sZ3j66aeRkXG2fCU9PR2nTp2K/oiJqBPPlblSTLK1z40thxqQm2aWfF+8aNDiPo1Up/rTNie6+j3IzbAoJrQVZtnQM6iuvWKshPCnFmTA6fbpyoJWszEf9gPD/rMntd/tw+YDDegfGsbGFReHGA6tcehw/HygLOu6Zw5g9uRzsKe+HW19gc5gXy7Lw/rlFfD6+BCjtWFbDXNh0+fyYulv96Iwi90GU03+hcvjw/1bj4Us/E53u2QrDlp6XHC6vREldFHXqbGDooFetWoVVq1aFfKay+UCxwVu3BkzZqCtrQ3p6ekYGDjb6WVgYACZmZlRHi4RC+K5MldrVLskDFx5oWPEoiF8cZGfZUN731DUG0f4eaCutQ9zLjh3xHuCGIaA1vaKscDp9uHFW2eh8jdvw+XVtgwYVLF7Zp3fVz5owoETnaisKAjplR0NRbe6FmdIH+vAYq4xeP9OPCcdLo8P9a1O7KhpZX6PYLjlrpNc/oWwINtR04pmxnewqg4ooYvQgi4X91NPPYXs7Gx897vfRV1dHYqKiuBwOGA2m9HY2IgJEybgnXfeoSSxUUa8VuaCUX3jWIsmGcy+oeFgjE8gfHEx5PVh6W/36RqXXBMLzgiUFYQuOANyj7V48d3ot4+MlOZuV0AIRKNxVoPS4qf5jICGuGTqqql5WDNnIl441KB78cQ6kuraNqxbPOVsIp1MSZJa5AypmvpzVkkgJXQRWtDVbrK3txc/+9nPMDg4CI7j8MADD+D888/H0aNH8cgjj8Dn82HevHm48847YzFmIkXo6vdg2e/2qjbSalrmOV3eiFoVsrLCywsd2P7vC0Jeu3/rJ4oCKuFkWDkMun0wKNV1S2AyGjCssnenAYA9SnXZ0aJqdgl2Hm9DS+/I6208szrKz7KhtXdIk+ufMwDXXVqsO8dAClafZrV9x4Xe31IJhUriPwQhQP2giYSipYezmqbzct+n1sBZTUZ4ff5gOZdQQmSzBBxOQqOEF99tVG1kOSOwemag13HXoAf/5+0TsjvvdEugWcSg24eiM9rOty+6AP/x91q8WdOGgTNJV1qMdrTQ2xO5INOKdqeb2a94y3dm4dKSHNzwzH7FZipiirIDO12Wu1mJDCuHTLsZbb1DioZUbY9zwcBH0nudIEiohEgoUglqrG5XSu5BuRKuNIsRQyp3k8N+P6rvXIi2viGUFWSOEN94ePvxkJizKnjg1vmT4bCbYeKMWHpRAdNAGw3Aa/82DyW5aSMm9+w0S9A4B8Ya//X1hNw0nOoa1Gyk2/sC7TelPCbi7Pxnvz0Dcx7do/p7r5h8Dv7KKKkS4IzAhXkZkpn1q2ZMUJ1/oZTwVpxtx9UV+SFa8pTQReiFDDSRUKQS1MTdrrRklcuVcA15/EzjEI7PD7T1DUkmhOmV2CzIsqN/yIv7tx7DnvoONHWz5UuFfsHhk3sk8p5ypFu4EKPPwmgApuRnhCRqaaEoJ1CCJBUWEC++Tn4xKPs952ZY0D3gCd4X6xZPweHPu2Tdzj4/8LubLsWf3jsleV+ZOKMqQyqX5HjD9GI8FJbBThCRQAaaSArCjZGerHK53Y2ccQhHKiFMQG+XpV6XB195cn/Ia1oTifT8tth9a2foUhtUCp7wPGTLx9ItRgx5/czfOWsMDbKLr7KCTObihTMCf/vhPAz7/SH3hZos8S2HGrFxxUURVyvIlSVSfJmIJmSgiaRFq3tQSXQl3DgYDNIZyVKa0gJyiwDOCNx8eQk4zoBdxwOdqARjJecO5owAeGCcw4ol5QVMT0Gew6ZKqlSM4L5t7h3Ec++cxNajTcGxZFgD5+tvR5tVfVd+phXtMh6IDKsZr/3bTBRl2fHYjjpU17ahvc8djKELBkxOgQsAcjMsKM13SIY5SvMdyE23jGixKZyzl95rxAAjlLGnvh1d/R5dIiFiSDCEiBeUJEakFGLRENbuRkjcybSZ8I1nD6O+zQmfXzohTApWIlrV7BJsXHFx8DcauwaxdvO7qpKXzs2woLPfg+Kc0LaL4ZP/st/ulTRcOWkmeH180PimW4yorCjAhmsvgsNuZo559cwS7K5rU+X6r5pdgupa9t8aAfy/2+fjf/b+Cwc/60S704P8zMCiY/3yUIUxJYnNIc8wrnvmAOpE3bZMRuCCcelwun0jOpUJ313b1ItlT77DPAYhUU1LS1WCSBRkoImUREv2bFe/B3WtfZIJYVKoWQQA6jN+pciwcsEaYuG7XR4fs4SsONuGhVPysPN4G9qd7mC5WHG2DV8uy8Puug40SbjH5dp4Col1hdl2XDE5F+uXV+CxHfXMMEG6xQj3sF/SKxFetsRaMIj/Tm2Gv/gzXf0eXP5IterselY5FUEkA2SgCUInSosAtTWzalg7dxL6XF68GsVaXxbjc87qWT/09+M4eKITrWd2rFdNzcO7n3dpThQTl8jJ1b8LfwdA9bkTf3dD5wAW/udbusZFEMkGxaAJQidKMXIlWdMClVnlAPBmTRt8PHtbqNR2U26nHD6m1384D3YLh/u2HgtZEJzuduH5Aw349pyJmDExJxhjLsy2o2fQzYz9AgFls+beQbxwqFFWQU6Q2ASgOiFOLMuZ57ChOFt9nF5rS1WCiCdkoAkihkhl/C4qzcOauRORY7eq7m/c0uuCnK9LyY2u1uXb3ufGI9trcfBEJ9PI7Trejuo7F+KeZeVBedVrfiMvr5qXacXm/Q2KWfRiiU21DTbys2zBz9gtnKqe3FK/RxDJBhlogoghShm/aptIFGbZwYNnJpwp1TIHYtH52FMfyC6HQdpop1k5RclM8a5TaFBRmG2TTYa7csq52FPfLvu9QGiJmfrez+eEnNNoit8QRCIhA00QcYDlDr932VQcPtGpKG15dUU+hn1+poKZUi3z1RUFIdKTz+47oV0N7Qzhu067hUOlwq7V7edlXdYFmVYsvbgwpMRM+O83a9okE9yAQDLdg2FJXtEUvyGIREJJYgSRQJQSycTSkQ2dA7hq017JvzMCuH56MQ6dUdQSYs7F2TZcXVEwIsNcKhN91nm5+OuHTap1psUM+/xY/3oN/nhY2ugXZdtggHSLx4JMK7bfvoCZQe/y+EbEw+XGIgdpYxOjCdpBE4RGojnJy6mDGQH875oZKD2jalaUnYbxOWylNKEGWywAwhqj1C4TgKxkZlG2DZUV0kIqJs6I7y2YjBcPN0p2omrrHcLyLxWhSUIUZenFhbLlbXYLh1/dMA2ZdnPEO2DSxiZGE2SgCUIlSuIaelCSJy3JPWtMlJTSBEMsGCA1Nd3hBov1/SunF2Ojgs50nsOGYsYCwm7h8O7nnQDOZpSPz1FvZEm9ixiLkIQOQajk4e3H8dz+kzjd7YKfD5QdPbf/JB7eflz3dwpGVwqpBKZ7l03F2rmTMD7HDs4QMHJr506KWiyV9f2P3jBN0SDKHUu/24fmM32gheS0RaXjsH55habFjbCgIONMjAUoBk0QKpCLFUcqdqFWmSx8POE7yWi63vV+V/ixjMu0os/lxaBEjTSJhBCEPGSgCUIFcrKdnAHY/dMrI45tRsMoRsv1HilOlxcbttVg37++QBtDlCRa540gUhWKQROECuRixdESu9CbwCS43gUE1zsAZoZzrLOZN+38VLGemkRCCEIeikEThAq0xorjhcvjQ3Vtm+R71bVtcIWJlwz7/NiwrQZLnngbix5/C0ueeBsbttVgWK3UWIRjEkMiIQQhD+2gCUIlUgpVesUuorWDlSvTktKZ1rPbjuaYAGlRkmSEaqaJREMGmiBUEo1Sn2jHi7W43pV223dVlskej1qDJTcmJVGSZCAZY/rE2IQMNEFoJBKxi2jvYNXWRgPad9sCWg2W3JiUREmSgXh4GQhCDbQcJIg4oTVerBa1tdHCzlYKuYQtPfXfsa7XjhWxukYEoQfaQRNEnNC7g1VCretdy25bQK9bfLQqf8XqGhGEHmgHTRBxQu8OVi1qVLa07mzVGKxIx5RMxPoaEYQWaAdNEHFCzw422mjd2caj/juZSIZrRBACZKAJIo5Es1QrEtQmuo1Fg5Us14ggSOqTIBLAaKqx1aMVngqMpmtEpCZkoAmCUAUZLIKIL2SgCYIgCCIJSV3/FEEQBEGMYshAEwRBEEQSQgaaIAiCIJIQMtAEQRAEkYSQgSYIgiCIJIQMNEEQBEEkIWSgCYIgCCIJIQNNEARBEEkIGWiCIAiCSELIQBMEQRBEEkIGmiAIgiCSEDLQBEEQBJGEkIEmCIIgiCSEDDRBEARBJCFkoAmCIAgiCSEDTRAEQRBJCBlogiAIgkhCyEATBEEQRBJCBpogCIIgkhAy0Georq7GT37yk+C/33zzTSxevBhVVVWoqqrCu+++CwB46qmnsHLlStx00034+OOPEzXcqBJ+7EePHsWqVatw00034amnngq+norHzvM85s+fH7zOv/71rwGwz0Eq4ff78cADD+DrX/86qqqq0NDQkOghxZwVK1YEr/UvfvELNDQ04Oabb8bq1auxfv16+P3+RA8xqnz00UeoqqoCAOaxvvTSS7j++utx4403Ys+ePYkcbtQQH3dNTU3IM759+3YAo+S4eYLfuHEjX1lZyd9xxx3B1zZt2sT/4x//CPm7Tz75hK+qquL9fj/f1NTEX3/99fEeatSROvZrr72Wb2ho4P1+P3/rrbfyn3zySUoeO8/z/MmTJ/nvf//7I16XOgepxo4dO/i7776b53me//DDD/kf/OAHCR5RbBkaGuK/9rWvhbz2/e9/nz906BDP8zx///3382+++WYCRhYb/ud//of/6le/yq9atYrneeljbW9v57/61a/ybreb7+vrC/73aCb8uF966SX+D3/4Q8jfjJbjph00gOnTp+PBBx8Mea2mpgavvvoqVq9ejUcffRTDw8M4cuQI5s2bB4PBgKKiIvh8PnR1dSVm0FEi/Nj7+/vh8XhQUlICg8GAefPm4eDBgyl57EDgOre1taGqqgrf/e53ceLECeY5SDWOHDmC+fPnAwAuueQSfPLJJwkeUWypq6uDy+XCLbfcgm9961s4evQoampqMHPmTADAggULcODAgQSPMnqUlJTgySefDP5b6lg//vhjXHrppbBYLHA4HCgpKUFdXV2ihhwVwo/7k08+wVtvvYVvfOMbuOeee9Df3z9qjtuU6AHEk5dffhnPP/98yGuPPPIIli1bhsOHD4e8PnfuXCxevBjjx4/H+vXr8ec//xn9/f3Izs4O/k16ejqcTidyc3PjMfyIUHvs/f39yMjICP47PT0dp06dgtVqHbXHLiB1Dh544AF873vfw9KlS/H+++/jZz/7GZ5++mnJc5BqhF9rjuMwPDwMkyk1pwWbzYbvfOc7WLVqFU6ePInvfve74HkeBoMBwNl7OlWorKzE6dOng/+WOtb+/n44HI7g36Snp6O/vz/uY40m4cc9bdo0rFq1ChdddBGeeeYZPP300ygrKxsVx52aTyKDVatWYdWqVar+9oYbbkBmZiYA4KqrrsKOHTtQVlaGgYGB4N8MDAyEXORkRu2xZ2RkjDjGzMxMmM3mUXvsAlLnwOVygeM4AMCMGTPQ1taG9PR0yXOQaoRfa7/fn7LGGQDOO+88TJw4EQaDAeeddx6ys7NRU1MTfD9Vr7OA0XjWYSocq9TzPtqeayWWLFkSvK5LlizBxo0bMWPGjFFx3OTiloDneVx77bVobW0FABw8eBAVFRWYPn063nnnHfj9fjQ3N8Pv94+qHaQaMjIyYDab0djYCJ7n8c4772DGjBkpe+xPPfVUcFddV1eHoqIiOBwOyXOQakyfPh179+4FEEiKmzJlSoJHFFteeeUVPProowCAtrY29Pf3Y+7cuUEP0t69e1PyOguUl5ePONZp06bhyJEjcLvdcDqd+Oyzz1LuPvjOd74TTGoV5vLRctypu1yOAIPBgIceegg/+tGPYLPZcP755+PGG2+E2WzGjBkz8PWvfz2YAZuKbNiwAT/96U/h8/kwb948fOlLXwKAlDz2733ve/jZz36Gt99+GxzH4Ze//CUA9jlIJZYsWYL9+/fjpptuAs/zeOSRRxI9pJiycuVK/OIXv8DNN98Mg8GARx55BDk5Obj//vuxadMmTJ48GZWVlYkeZsy4++67Rxwrx3GoqqrC6tWrwfM87rzzTlit1kQPNao8+OCD2LhxI8xmM84991xs3LgRGRkZo+K4DTzP84keBEEQBEEQoZCLmyAIgiCSEDLQBEEQBJGEkIEmCIIgiCSEDDRBEARBJCFkoAmCIAgiCSEDTRAEQRBJCBlogiAIgkhC/j/HOpTiJvhsywAAAABJRU5ErkJggg==)
%%%% Output: execute_result
%% Cell type:markdown id: tags:
# Preprocessing playground
(-2.735058755246037, 45.89004523470992)
%% Cell type:code id: tags:
``` python
mtest = merge_tables(
DLC_social_1_coords.get_coords(center="B_Center", polar=False, length='00:10:00', align='B_Nose')
#DLC_social_1_coords.get_distances(speed=0, length='00:10:00'),
#DLC_social_1_coords.get_angles(degrees=True, speed=0, length='00:10:00'),
)
```
# Draft: function to produce a video with the animal in motion using cv2
import cv2
%% Cell type:code id: tags:
w=400
h=400
factor=2.5
``` python
mtest2 = merge_tables(
DLC_social_2_coords.get_coords(center="B_Center", polar=False, length='00:10:00', align='B_Nose'),
#DLC_social_2_coords.get_distances(speed=0, length='00:10:00'),
#DLC_social_2_coords.get_angles(degrees=True, speed=0, length='00:10:00'),
)
```
# Instantiate video
writer = cv2.VideoWriter()
writer.open("test_video.avi", cv2.VideoWriter_fourcc(*"MJPG"),
24, (int(w*factor), int(h*factor)), True)
%% Cell type:code id: tags:
for frame in tqdm.tqdm(range(100)):
``` python
%%time
pttest = mtest.preprocess(window_size=13, window_step=10, filter=None, sigma=55,
shift=0, scale='standard', align='center', shuffle=True, test_videos=0)
print(pttest.shape)
#print(pttrain.shape)
image=np.zeros((h,w,3),np.uint8) + 30
for bpart in deepof_coords["Test 10_s2"].columns.levels[0]:
try:
pos = ( (- int(deepof_coords["Test 10_s2"][bpart].loc[frame, "x"]) + w//2),
(- int(deepof_coords["Test 10_s2"][bpart].loc[frame, "y"]) + h//2))
cv2.circle(image, pos, 2, (0,0,255), -1)
except KeyError:
continue
# draw skeleton
def draw_line(start, end):
for bpart in end:
cv2.line(image, tuple(- deepof_coords["Test 10_s2"][start].loc[frame,:].astype(int) + w//2),
tuple(- deepof_coords["Test 10_s2"][bpart].loc[frame,:].astype(int) + h//2), (0,0,255), 1)
draw_line("Nose", ["Left_ear", "Right_ear"])
draw_line("Spine_1", ["Left_ear", "Right_ear", "Left_fhip", "Right_fhip"])
draw_line("Spine_2", ["Spine_1", "Tail_base", "Left_bhip", "Right_bhip"])
draw_line("Tail_1", ["Tail_base", "Tail_2"])
draw_line("Tail_tip", ["Tail_2"])
image = cv2.resize(image, (0,0), fx = factor, fy = factor)
writer.write(image)
writer.release()
cv2.destroyAllWindows()
```
%%%% Output: display_data
%%%% Output: stream
%% Cell type:markdown id: tags:
# Preprocessing
%% Cell type:code id: tags:
``` python
%%time
pttest2 = mtest2.preprocess(window_size=13, window_step=1, filter=None, sigma=55,
shift=0, scale="standard", align='all', shuffle=False)
pttest2.shape
deepof_train, deepof_test = deepof_coords.preprocess(window_size=13, window_step=10, conv_filter=None, sigma=55,
shift=0, scale='standard', align='all', shuffle=True, test_videos=20)
print("Train dataset shape: ", deepof_train.shape)
print("Test dataset shape: ", deepof_test.shape)
```
%%%% Output: stream
Train dataset shape: (133517, 13, 26)
Test dataset shape: (30003, 13, 26)
CPU times: user 35.9 s, sys: 1.05 s, total: 36.9 s
Wall time: 37.3 s
%% Cell type:code id: tags:
``` python
n = 100
plt.scatter(pttest[:n,10,0], pttest[:n,10,1], label='Nose')
plt.scatter(pttest[:n,10,2], pttest[:n,10,3], label='Right ear')
plt.scatter(pttest[:n,10,4], pttest[:n,10,5], label='Right hips')
plt.scatter(pttest[:n,10,6], pttest[:n,10,7], label='Left ear')
plt.scatter(pttest[:n,10,8], pttest[:n,10,9], label='Left hips')
plt.scatter(pttest[:n,10,10], pttest[:n,10,11], label='Tail base')
plt.scatter(deepof_train[:n,10,0], deepof_train[:n,10,1], label='Nose')
plt.scatter(deepof_train[:n,10,2], deepof_train[:n,10,3], label='Right ear')
plt.scatter(deepof_train[:n,10,4], deepof_train[:n,10,5], label='Right hips')
plt.scatter(deepof_train[:n,10,6], deepof_train[:n,10,7], label='Left ear')
plt.scatter(deepof_train[:n,10,8], deepof_train[:n,10,9], label='Left hips')
plt.scatter(deepof_train[:n,10,10], deepof_train[:n,10,11], label='Tail base')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
```
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
# Trained models playground
# Build models and get learning rate (1-cycle policy)
%% Cell type:markdown id: tags:
### Seq 2 seq Variational Auto Encoder
%% Cell type:code id: tags:
``` python
from datetime import datetime
import tensorflow.keras as k
import tensorflow as tf
```
%% Cell type:code id: tags:
``` python
NAME = 'Baseline_AE_512_wu10_slide10_gauss_fullval'
log_dir = os.path.abspath(
"logs/fit/{}_{}".format(NAME, datetime.now().strftime("%Y%m%d-%H%M%S"))
)
tensorboard_callback = k.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
```
%% Cell type:code id: tags:
``` python
from source.models import SEQ_2_SEQ_AE, SEQ_2_SEQ_GMVAE
from deepof.models import SEQ_2_SEQ_AE, SEQ_2_SEQ_GMVAE
```
%% Cell type:code id: tags:
``` python
encoder, decoder, ae = SEQ_2_SEQ_AE(pttest.shape).build()
ae.build(pttest.shape)
encoder, decoder, ae = SEQ_2_SEQ_AE().build(deepof_train.shape)
```
%% Cell type:code id: tags:
``` python
ae.summary()
```
%%%% Output: stream
Model: "SEQ_2_SEQ_AE"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
SEQ_2_SEQ_Encoder (Sequentia (None, 16) 1787600
_________________________________________________________________
SEQ_2_SEQ_Decoder (Sequentia multiple 2685354
=================================================================
Total params: 4,430,762
Trainable params: 4,426,410
Non-trainable params: 4,352
_________________________________________________________________
%% Cell type:code id: tags:
``` python
%%time
tf.keras.backend.clear_session()
encoder, generator, grouper, gmvaep, kl_warmup_callback, mmd_warmup_callback = SEQ_2_SEQ_GMVAE(pttest.shape,
loss='ELBO',
encoder, generator, grouper, gmvaep, kl_warmup_callback, mmd_warmup_callback = SEQ_2_SEQ_GMVAE(loss='ELBO',
number_of_components=30,
kl_warmup_epochs=10,
mmd_warmup_epochs=10,
encoding=16,
predictor=False).build()
# gmvaep.build(pttest.shape)
```
%% Cell type:code id: tags:
``` python
import tensorflow as tf
from tensorflow import keras as keras
K = tf.keras.backend
class ExponentialLearningRate(tf.keras.callbacks.Callback):
def __init__(self, factor):
self.factor = factor
self.rates = []
self.losses = []
def on_batch_end(self, batch, logs):
self.rates.append(K.get_value(self.model.optimizer.lr))
self.losses.append(logs["loss"])
K.set_value(self.model.optimizer.lr, self.model.optimizer.lr * self.factor)
def find_learning_rate(model, X, y, epochs=1, batch_size=32, min_rate=10**-5, max_rate=10):
init_weights = model.get_weights()
iterations = len(X) // batch_size * epochs
factor = np.exp(np.log(max_rate / min_rate) / iterations)
init_lr = K.get_value(model.optimizer.lr)
K.set_value(model.optimizer.lr, min_rate)
exp_lr = ExponentialLearningRate(factor)
history = model.fit(X, y, epochs=epochs, batch_size=batch_size,
callbacks=[exp_lr])
K.set_value(model.optimizer.lr, init_lr)
model.set_weights(init_weights)
return exp_lr.rates, exp_lr.losses
def plot_lr_vs_loss(rates, losses):
plt.plot(rates, losses)
plt.gca().set_xscale('log')
plt.hlines(min(losses), min(rates), max(rates))
plt.axis([min(rates), max(rates), min(losses), (losses[0] + min(losses)) / 2])
plt.xlabel("Learning rate")
plt.ylabel("Loss")
predictor=False).build(deepof_train.shape)
```
%% Cell type:code id: tags:
%%%% Output: stream
``` python
class OneCycleScheduler(tf.keras.callbacks.Callback):
def __init__(self, iterations, max_rate, start_rate=None,
last_iterations=None, last_rate=None):
self.iterations = iterations
self.max_rate = max_rate
self.start_rate = start_rate or max_rate / 10
self.last_iterations = last_iterations or iterations // 10 + 1
self.half_iteration = (iterations - self.last_iterations) // 2
self.last_rate = last_rate or self.start_rate / 1000
self.iteration = 0
def _interpolate(self, iter1, iter2, rate1, rate2):
return ((rate2 - rate1) * (self.iteration - iter1)
/ (iter2 - iter1) + rate1)
def on_batch_begin(self, batch, logs):
if self.iteration < self.half_iteration:
rate = self._interpolate(0, self.half_iteration, self.start_rate, self.max_rate)
elif self.iteration < 2 * self.half_iteration:
rate = self._interpolate(self.half_iteration, 2 * self.half_iteration,
self.max_rate, self.start_rate)
else:
rate = self._interpolate(