From 8897560adbbeeee6a738fd60df3a4bbc5774cb71 Mon Sep 17 00:00:00 2001
From: Tiago Freitas Pereira <tiagofrepereira@gmail.com>
Date: Sat, 7 Feb 2015 23:18:56 +0100
Subject: [PATCH] Preparing first commit of bob.learn.em. Still some warnings
 and documentation issues to solve

---
 README.rst                                    |   24 +-
 bob/learn/misc/MAP_gmm_trainer.cpp            |  431 -------
 bob/learn/misc/ML_gmm_trainer.cpp             |  335 -----
 bob/learn/misc/__MAP_gmm_trainer__.py         |   99 --
 bob/learn/misc/__ML_gmm_trainer__.py          |   85 --
 bob/learn/misc/__empca_trainer__.py           |   77 --
 bob/learn/misc/__init__.py                    |   58 -
 bob/learn/misc/__isv_trainer__.py             |   49 -
 bob/learn/misc/__ivector_trainer__.py         |   51 -
 bob/learn/misc/__jfa_trainer__.py             |   71 --
 bob/learn/misc/__kmeans_trainer__.py          |   81 --
 bob/learn/misc/__plda_trainer__.py            |   50 -
 bob/learn/misc/cpp/BICMachine.cpp             |  348 ------
 bob/learn/misc/cpp/BICTrainer.cpp             |   94 --
 bob/learn/misc/cpp/EMPCATrainer.cpp           |  418 -------
 bob/learn/misc/cpp/FABase.cpp                 |  307 -----
 bob/learn/misc/cpp/FABaseTrainer.cpp          |  547 --------
 bob/learn/misc/cpp/GMMBaseTrainer.cpp         |   94 --
 bob/learn/misc/cpp/GMMMachine.cpp             |  436 -------
 bob/learn/misc/cpp/GMMStats.cpp               |  151 ---
 bob/learn/misc/cpp/Gaussian.cpp               |  184 ---
 bob/learn/misc/cpp/ISVBase.cpp                |   76 --
 bob/learn/misc/cpp/ISVMachine.cpp             |  182 ---
 bob/learn/misc/cpp/ISVTrainer.cpp             |  130 --
 bob/learn/misc/cpp/IVectorMachine.cpp         |  249 ----
 bob/learn/misc/cpp/IVectorTrainer.cpp         |  228 ----
 bob/learn/misc/cpp/JFABase.cpp                |   75 --
 bob/learn/misc/cpp/JFAMachine.cpp             |  206 ----
 bob/learn/misc/cpp/JFATrainer.cpp             |  200 ---
 bob/learn/misc/cpp/KMeansMachine.cpp          |  258 ----
 bob/learn/misc/cpp/KMeansTrainer.cpp          |  228 ----
 bob/learn/misc/cpp/LinearScoring.cpp          |  168 ---
 bob/learn/misc/cpp/MAP_GMMTrainer.cpp         |  199 ---
 bob/learn/misc/cpp/ML_GMMTrainer.cpp          |  112 --
 bob/learn/misc/cpp/PLDAMachine.cpp            |  960 ---------------
 bob/learn/misc/cpp/PLDATrainer.cpp            |  800 ------------
 bob/learn/misc/cpp/ZTNorm.cpp                 |  182 ---
 bob/learn/misc/data/data.hdf5                 |  Bin 2544 -> 0 bytes
 bob/learn/misc/data/dataNormalized.hdf5       |  Bin 259592 -> 0 bytes
 bob/learn/misc/data/dataforMAP.hdf5           |  Bin 259592 -> 0 bytes
 bob/learn/misc/data/faithful.torch3.hdf5      |  Bin 21448 -> 0 bytes
 bob/learn/misc/data/faithful.torch3_f64.hdf5  |  Bin 23240 -> 0 bytes
 bob/learn/misc/data/gmm.init_means.hdf5       |  Bin 2176 -> 0 bytes
 bob/learn/misc/data/gmm.init_variances.hdf5   |  Bin 2176 -> 0 bytes
 bob/learn/misc/data/gmm.init_weights.hdf5     |  Bin 2160 -> 0 bytes
 bob/learn/misc/data/gmm_MAP.hdf5              |  Bin 41136 -> 0 bytes
 bob/learn/misc/data/gmm_ML.hdf5               |  Bin 41135 -> 0 bytes
 bob/learn/misc/data/gmm_ML_32bit_debug.hdf5   |  Bin 41135 -> 0 bytes
 bob/learn/misc/data/gmm_ML_32bit_release.hdf5 |  Bin 41135 -> 0 bytes
 bob/learn/misc/data/means.hdf5                |  Bin 2944 -> 0 bytes
 bob/learn/misc/data/meansAfterKMeans.hdf5     |  Bin 3044 -> 0 bytes
 bob/learn/misc/data/meansAfterMAP.hdf5        |  Bin 6336 -> 0 bytes
 bob/learn/misc/data/meansAfterML.hdf5         |  Bin 3944 -> 0 bytes
 bob/learn/misc/data/new_adapted_mean.hdf5     |  Bin 2944 -> 0 bytes
 bob/learn/misc/data/samplesFrom2G_f64.hdf5    |  Bin 18576 -> 0 bytes
 bob/learn/misc/data/stats.hdf5                |  Bin 22635 -> 0 bytes
 bob/learn/misc/data/variances.hdf5            |  Bin 2944 -> 0 bytes
 bob/learn/misc/data/variancesAfterKMeans.hdf5 |  Bin 3044 -> 0 bytes
 bob/learn/misc/data/variancesAfterMAP.hdf5    |  Bin 6336 -> 0 bytes
 bob/learn/misc/data/variancesAfterML.hdf5     |  Bin 3944 -> 0 bytes
 bob/learn/misc/data/weights.hdf5              |  Bin 2160 -> 0 bytes
 bob/learn/misc/data/weightsAfterKMeans.hdf5   |  Bin 2164 -> 0 bytes
 bob/learn/misc/data/weightsAfterMAP.hdf5      |  Bin 4056 -> 0 bytes
 bob/learn/misc/data/weightsAfterML.hdf5       |  Bin 2184 -> 0 bytes
 bob/learn/misc/data/ztnorm_eval_eval.hdf5     |  Bin 569984 -> 0 bytes
 bob/learn/misc/data/ztnorm_eval_tnorm.hdf5    |  Bin 438944 -> 0 bytes
 bob/learn/misc/data/ztnorm_result.hdf5        |  Bin 569984 -> 0 bytes
 bob/learn/misc/data/ztnorm_znorm_eval.hdf5    |  Bin 22944 -> 0 bytes
 bob/learn/misc/data/ztnorm_znorm_tnorm.hdf5   |  Bin 18144 -> 0 bytes
 bob/learn/misc/empca_trainer.cpp              |  378 ------
 bob/learn/misc/gaussian.cpp                   |  571 ---------
 bob/learn/misc/gmm_base_trainer.cpp           |  437 -------
 bob/learn/misc/gmm_machine.cpp                |  834 -------------
 bob/learn/misc/gmm_stats.cpp                  |  623 ----------
 .../include/bob.learn.misc/EMPCATrainer.h     |  200 ---
 .../misc/include/bob.learn.misc/FABase.h      |  293 -----
 .../include/bob.learn.misc/FABaseTrainer.h    |  350 ------
 .../include/bob.learn.misc/GMMBaseTrainer.h   |  161 ---
 .../misc/include/bob.learn.misc/GMMMachine.h  |  371 ------
 .../misc/include/bob.learn.misc/GMMStats.h    |  141 ---
 .../misc/include/bob.learn.misc/Gaussian.h    |  247 ----
 .../misc/include/bob.learn.misc/ISVBase.h     |  228 ----
 .../misc/include/bob.learn.misc/ISVMachine.h  |  230 ----
 .../misc/include/bob.learn.misc/ISVTrainer.h  |  154 ---
 .../include/bob.learn.misc/IVectorMachine.h   |  274 ----
 .../include/bob.learn.misc/IVectorTrainer.h   |  152 ---
 .../misc/include/bob.learn.misc/JFABase.h     |  253 ----
 .../misc/include/bob.learn.misc/JFAMachine.h  |  254 ----
 .../misc/include/bob.learn.misc/JFATrainer.h  |  238 ----
 .../include/bob.learn.misc/KMeansMachine.h    |  244 ----
 .../include/bob.learn.misc/KMeansTrainer.h    |  187 ---
 .../include/bob.learn.misc/LinearScoring.h    |   98 --
 .../include/bob.learn.misc/MAP_GMMTrainer.h   |  170 ---
 .../include/bob.learn.misc/ML_GMMTrainer.h    |  119 --
 .../misc/include/bob.learn.misc/PLDAMachine.h |  702 -----------
 .../misc/include/bob.learn.misc/PLDATrainer.h |  310 -----
 .../misc/include/bob.learn.misc/ZTNorm.h      |   89 --
 bob/learn/misc/include/bob.learn.misc/api.h   |  127 --
 .../misc/include/bob.learn.misc/config.h      |   14 -
 bob/learn/misc/isv_base.cpp                   |  528 --------
 bob/learn/misc/isv_machine.cpp                |  604 ---------
 bob/learn/misc/isv_trainer.cpp                |  566 ---------
 bob/learn/misc/ivector_machine.cpp            |  676 ----------
 bob/learn/misc/ivector_trainer.cpp            |  453 -------
 bob/learn/misc/jfa_base.cpp                   |  578 ---------
 bob/learn/misc/jfa_machine.cpp                |  650 ----------
 bob/learn/misc/jfa_trainer.cpp                | 1013 ---------------
 bob/learn/misc/kmeans_machine.cpp             |  768 ------------
 bob/learn/misc/kmeans_trainer.cpp             |  553 ---------
 bob/learn/misc/linear_scoring.cpp             |  266 ----
 bob/learn/misc/main.cpp                       |  145 ---
 bob/learn/misc/main.h                         |  312 -----
 bob/learn/misc/old/blitz_numpy.cc             |  235 ----
 bob/learn/misc/old/empca_trainer.cc           |   72 --
 bob/learn/misc/old/exception.h                |   91 --
 bob/learn/misc/old/gaussian.cc                |  111 --
 bob/learn/misc/old/gmm.cc                     |  330 -----
 bob/learn/misc/old/gmm_trainer.cc             |   90 --
 bob/learn/misc/old/ivector.cc                 |  136 --
 bob/learn/misc/old/ivector_trainer.cc         |  129 --
 bob/learn/misc/old/jfa.cc                     |  321 -----
 bob/learn/misc/old/jfa_trainer.cc             |  392 ------
 bob/learn/misc/old/kmeans.cc                  |  146 ---
 bob/learn/misc/old/kmeans_trainer.cc          |  143 ---
 bob/learn/misc/old/linearscoring.cc           |  146 ---
 bob/learn/misc/old/machine.cc                 |   35 -
 bob/learn/misc/old/main.cc                    |   93 --
 bob/learn/misc/old/ndarray.cc                 | 1015 ---------------
 bob/learn/misc/old/ndarray.h                  |  640 ----------
 bob/learn/misc/old/ndarray_numpy.cc           |  162 ---
 bob/learn/misc/old/plda.cc                    |  216 ----
 bob/learn/misc/old/plda_trainer.cc            |  171 ---
 bob/learn/misc/old/tinyvector.cc              |  290 -----
 bob/learn/misc/old/ztnorm.cc                  |  152 ---
 bob/learn/misc/plda_base.cpp                  | 1097 -----------------
 bob/learn/misc/plda_machine.cpp               |  801 ------------
 bob/learn/misc/plda_trainer.cpp               |  704 -----------
 bob/learn/misc/test_em.py                     |  252 ----
 bob/learn/misc/test_gaussian.py               |  112 --
 bob/learn/misc/test_gmm.py                    |  240 ----
 bob/learn/misc/test_ivector.py                |  159 ---
 bob/learn/misc/test_ivector_trainer.py        |  363 ------
 bob/learn/misc/test_jfa.py                    |  396 ------
 bob/learn/misc/test_jfa_trainer.py            |  316 -----
 bob/learn/misc/test_kmeans.py                 |   96 --
 bob/learn/misc/test_kmeans_trainer.py         |  181 ---
 bob/learn/misc/test_linearscoring.py          |  128 --
 bob/learn/misc/test_plda.py                   |  565 ---------
 bob/learn/misc/test_plda_trainer.py           |  741 -----------
 bob/learn/misc/test_ztnorm.py                 |  122 --
 bob/learn/misc/version.cpp                    |  224 ----
 bob/learn/misc/ztnorm.cpp                     |  146 ---
 buildout.cfg                                  |    2 +-
 doc/conf.py                                   |   12 +-
 doc/guide.rst                                 |  196 +--
 doc/index.rst                                 |    2 +-
 doc/py_api.rst                                |    4 +-
 setup.py                                      |  132 +-
 158 files changed, 186 insertions(+), 35725 deletions(-)
 delete mode 100644 bob/learn/misc/MAP_gmm_trainer.cpp
 delete mode 100644 bob/learn/misc/ML_gmm_trainer.cpp
 delete mode 100644 bob/learn/misc/__MAP_gmm_trainer__.py
 delete mode 100644 bob/learn/misc/__ML_gmm_trainer__.py
 delete mode 100644 bob/learn/misc/__empca_trainer__.py
 delete mode 100644 bob/learn/misc/__init__.py
 delete mode 100644 bob/learn/misc/__isv_trainer__.py
 delete mode 100644 bob/learn/misc/__ivector_trainer__.py
 delete mode 100644 bob/learn/misc/__jfa_trainer__.py
 delete mode 100644 bob/learn/misc/__kmeans_trainer__.py
 delete mode 100644 bob/learn/misc/__plda_trainer__.py
 delete mode 100644 bob/learn/misc/cpp/BICMachine.cpp
 delete mode 100644 bob/learn/misc/cpp/BICTrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/EMPCATrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/FABase.cpp
 delete mode 100644 bob/learn/misc/cpp/FABaseTrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/GMMBaseTrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/GMMMachine.cpp
 delete mode 100644 bob/learn/misc/cpp/GMMStats.cpp
 delete mode 100644 bob/learn/misc/cpp/Gaussian.cpp
 delete mode 100644 bob/learn/misc/cpp/ISVBase.cpp
 delete mode 100644 bob/learn/misc/cpp/ISVMachine.cpp
 delete mode 100644 bob/learn/misc/cpp/ISVTrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/IVectorMachine.cpp
 delete mode 100644 bob/learn/misc/cpp/IVectorTrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/JFABase.cpp
 delete mode 100644 bob/learn/misc/cpp/JFAMachine.cpp
 delete mode 100644 bob/learn/misc/cpp/JFATrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/KMeansMachine.cpp
 delete mode 100644 bob/learn/misc/cpp/KMeansTrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/LinearScoring.cpp
 delete mode 100644 bob/learn/misc/cpp/MAP_GMMTrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/ML_GMMTrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/PLDAMachine.cpp
 delete mode 100644 bob/learn/misc/cpp/PLDATrainer.cpp
 delete mode 100644 bob/learn/misc/cpp/ZTNorm.cpp
 delete mode 100644 bob/learn/misc/data/data.hdf5
 delete mode 100644 bob/learn/misc/data/dataNormalized.hdf5
 delete mode 100644 bob/learn/misc/data/dataforMAP.hdf5
 delete mode 100644 bob/learn/misc/data/faithful.torch3.hdf5
 delete mode 100644 bob/learn/misc/data/faithful.torch3_f64.hdf5
 delete mode 100644 bob/learn/misc/data/gmm.init_means.hdf5
 delete mode 100644 bob/learn/misc/data/gmm.init_variances.hdf5
 delete mode 100644 bob/learn/misc/data/gmm.init_weights.hdf5
 delete mode 100644 bob/learn/misc/data/gmm_MAP.hdf5
 delete mode 100644 bob/learn/misc/data/gmm_ML.hdf5
 delete mode 100644 bob/learn/misc/data/gmm_ML_32bit_debug.hdf5
 delete mode 100644 bob/learn/misc/data/gmm_ML_32bit_release.hdf5
 delete mode 100644 bob/learn/misc/data/means.hdf5
 delete mode 100644 bob/learn/misc/data/meansAfterKMeans.hdf5
 delete mode 100644 bob/learn/misc/data/meansAfterMAP.hdf5
 delete mode 100644 bob/learn/misc/data/meansAfterML.hdf5
 delete mode 100644 bob/learn/misc/data/new_adapted_mean.hdf5
 delete mode 100644 bob/learn/misc/data/samplesFrom2G_f64.hdf5
 delete mode 100644 bob/learn/misc/data/stats.hdf5
 delete mode 100644 bob/learn/misc/data/variances.hdf5
 delete mode 100644 bob/learn/misc/data/variancesAfterKMeans.hdf5
 delete mode 100644 bob/learn/misc/data/variancesAfterMAP.hdf5
 delete mode 100644 bob/learn/misc/data/variancesAfterML.hdf5
 delete mode 100644 bob/learn/misc/data/weights.hdf5
 delete mode 100644 bob/learn/misc/data/weightsAfterKMeans.hdf5
 delete mode 100644 bob/learn/misc/data/weightsAfterMAP.hdf5
 delete mode 100644 bob/learn/misc/data/weightsAfterML.hdf5
 delete mode 100644 bob/learn/misc/data/ztnorm_eval_eval.hdf5
 delete mode 100644 bob/learn/misc/data/ztnorm_eval_tnorm.hdf5
 delete mode 100644 bob/learn/misc/data/ztnorm_result.hdf5
 delete mode 100644 bob/learn/misc/data/ztnorm_znorm_eval.hdf5
 delete mode 100644 bob/learn/misc/data/ztnorm_znorm_tnorm.hdf5
 delete mode 100644 bob/learn/misc/empca_trainer.cpp
 delete mode 100644 bob/learn/misc/gaussian.cpp
 delete mode 100644 bob/learn/misc/gmm_base_trainer.cpp
 delete mode 100644 bob/learn/misc/gmm_machine.cpp
 delete mode 100644 bob/learn/misc/gmm_stats.cpp
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/EMPCATrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/FABase.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/FABaseTrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/GMMBaseTrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/GMMMachine.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/GMMStats.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/Gaussian.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/ISVBase.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/ISVMachine.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/ISVTrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/IVectorMachine.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/IVectorTrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/JFABase.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/JFAMachine.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/JFATrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/KMeansMachine.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/KMeansTrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/LinearScoring.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/MAP_GMMTrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/ML_GMMTrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/PLDAMachine.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/PLDATrainer.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/ZTNorm.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/api.h
 delete mode 100644 bob/learn/misc/include/bob.learn.misc/config.h
 delete mode 100644 bob/learn/misc/isv_base.cpp
 delete mode 100644 bob/learn/misc/isv_machine.cpp
 delete mode 100644 bob/learn/misc/isv_trainer.cpp
 delete mode 100644 bob/learn/misc/ivector_machine.cpp
 delete mode 100644 bob/learn/misc/ivector_trainer.cpp
 delete mode 100644 bob/learn/misc/jfa_base.cpp
 delete mode 100644 bob/learn/misc/jfa_machine.cpp
 delete mode 100644 bob/learn/misc/jfa_trainer.cpp
 delete mode 100644 bob/learn/misc/kmeans_machine.cpp
 delete mode 100644 bob/learn/misc/kmeans_trainer.cpp
 delete mode 100644 bob/learn/misc/linear_scoring.cpp
 delete mode 100644 bob/learn/misc/main.cpp
 delete mode 100644 bob/learn/misc/main.h
 delete mode 100644 bob/learn/misc/old/blitz_numpy.cc
 delete mode 100644 bob/learn/misc/old/empca_trainer.cc
 delete mode 100644 bob/learn/misc/old/exception.h
 delete mode 100644 bob/learn/misc/old/gaussian.cc
 delete mode 100644 bob/learn/misc/old/gmm.cc
 delete mode 100644 bob/learn/misc/old/gmm_trainer.cc
 delete mode 100644 bob/learn/misc/old/ivector.cc
 delete mode 100644 bob/learn/misc/old/ivector_trainer.cc
 delete mode 100644 bob/learn/misc/old/jfa.cc
 delete mode 100644 bob/learn/misc/old/jfa_trainer.cc
 delete mode 100644 bob/learn/misc/old/kmeans.cc
 delete mode 100644 bob/learn/misc/old/kmeans_trainer.cc
 delete mode 100644 bob/learn/misc/old/linearscoring.cc
 delete mode 100644 bob/learn/misc/old/machine.cc
 delete mode 100644 bob/learn/misc/old/main.cc
 delete mode 100644 bob/learn/misc/old/ndarray.cc
 delete mode 100644 bob/learn/misc/old/ndarray.h
 delete mode 100644 bob/learn/misc/old/ndarray_numpy.cc
 delete mode 100644 bob/learn/misc/old/plda.cc
 delete mode 100644 bob/learn/misc/old/plda_trainer.cc
 delete mode 100644 bob/learn/misc/old/tinyvector.cc
 delete mode 100644 bob/learn/misc/old/ztnorm.cc
 delete mode 100644 bob/learn/misc/plda_base.cpp
 delete mode 100644 bob/learn/misc/plda_machine.cpp
 delete mode 100644 bob/learn/misc/plda_trainer.cpp
 delete mode 100644 bob/learn/misc/test_em.py
 delete mode 100644 bob/learn/misc/test_gaussian.py
 delete mode 100644 bob/learn/misc/test_gmm.py
 delete mode 100644 bob/learn/misc/test_ivector.py
 delete mode 100644 bob/learn/misc/test_ivector_trainer.py
 delete mode 100644 bob/learn/misc/test_jfa.py
 delete mode 100644 bob/learn/misc/test_jfa_trainer.py
 delete mode 100644 bob/learn/misc/test_kmeans.py
 delete mode 100644 bob/learn/misc/test_kmeans_trainer.py
 delete mode 100644 bob/learn/misc/test_linearscoring.py
 delete mode 100644 bob/learn/misc/test_plda.py
 delete mode 100644 bob/learn/misc/test_plda_trainer.py
 delete mode 100644 bob/learn/misc/test_ztnorm.py
 delete mode 100644 bob/learn/misc/version.cpp
 delete mode 100644 bob/learn/misc/ztnorm.cpp

diff --git a/README.rst b/README.rst
index e04faa8..d8da9ec 100644
--- a/README.rst
+++ b/README.rst
@@ -3,19 +3,19 @@
 .. Thu 22 May 2014 15:39:03 CEST
 
 .. image:: http://img.shields.io/badge/docs-stable-yellow.png
-   :target: http://pythonhosted.org/bob.learn.misc/index.html
+   :target: http://pythonhosted.org/bob.learn.em/index.html
 .. image:: http://img.shields.io/badge/docs-latest-orange.png
-   :target: https://www.idiap.ch/software/bob/docs/latest/bioidiap/bob.learn.misc/master/index.html
-.. image:: https://travis-ci.org/bioidiap/bob.learn.misc.svg?branch=master
-   :target: https://travis-ci.org/bioidiap/bob.learn.misc
-.. image:: https://coveralls.io/repos/bioidiap/bob.learn.misc/badge.png
-   :target: https://coveralls.io/r/bioidiap/bob.learn.misc
+   :target: https://www.idiap.ch/software/bob/docs/latest/bioidiap/bob.learn.em/master/index.html
+.. image:: https://travis-ci.org/bioidiap/bob.learn.em.svg?branch=master
+   :target: https://travis-ci.org/bioidiap/bob.learn.em
+.. image:: https://coveralls.io/repos/bioidiap/bob.learn.em/badge.png
+   :target: https://coveralls.io/r/bioidiap/bob.learn.em
 .. image:: https://img.shields.io/badge/github-master-0000c0.png
-   :target: https://github.com/bioidiap/bob.learn.misc/tree/master
-.. image:: http://img.shields.io/pypi/v/bob.learn.misc.png
-   :target: https://pypi.python.org/pypi/bob.learn.misc
-.. image:: http://img.shields.io/pypi/dm/bob.learn.misc.png
-   :target: https://pypi.python.org/pypi/bob.learn.misc
+   :target: https://github.com/bioidiap/bob.learn.em/tree/master
+.. image:: http://img.shields.io/pypi/v/bob.learn.em.png
+   :target: https://pypi.python.org/pypi/bob.learn.em
+.. image:: http://img.shields.io/pypi/dm/bob.learn.em.png
+   :target: https://pypi.python.org/pypi/bob.learn.em
 
 ===========================================
  Miscelaneous Machines and Trainers in Bob
@@ -32,7 +32,7 @@ Please make sure that you have read the `Dependencies <https://github.com/idiap/
 
 Documentation
 -------------
-For further documentation on this package, please read the `Stable Version <http://pythonhosted.org/bob.learn.misc/index.html>`_ or the `Latest Version <https://www.idiap.ch/software/bob/docs/latest/bioidiap/bob.learn.misc/master/index.html>`_ of the documentation.
+For further documentation on this package, please read the `Stable Version <http://pythonhosted.org/bob.learn.em/index.html>`_ or the `Latest Version <https://www.idiap.ch/software/bob/docs/latest/bioidiap/bob.learn.em/master/index.html>`_ of the documentation.
 For a list of tutorials on this or the other packages ob Bob_, or information on submitting issues, asking questions and starting discussions, please visit its website.
 
 .. _bob: https://www.idiap.ch/software/bob
diff --git a/bob/learn/misc/MAP_gmm_trainer.cpp b/bob/learn/misc/MAP_gmm_trainer.cpp
deleted file mode 100644
index f3a3f4c..0000000
--- a/bob/learn/misc/MAP_gmm_trainer.cpp
+++ /dev/null
@@ -1,431 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Web 23 Jan 16:42:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static inline bool f(PyObject* o){return o != 0 && PyObject_IsTrue(o) > 0;}  /* converts PyObject to bool and returns false if object is NULL */
-
-static auto MAP_GMMTrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".MAP_GMMTrainer",
-  "This class implements the maximum a posteriori M-step of the expectation-maximisation algorithm for a GMM Machine. The prior parameters are encoded in the form of a GMM (e.g. a universal background model). The EM algorithm thus performs GMM adaptation."
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Creates a MAP_GMMTrainer",
-    "",
-    true
-  )
-
-  .add_prototype("prior_gmm,relevance_factor, update_means, [update_variances], [update_weights], [mean_var_update_responsibilities_threshold]","")
-  .add_prototype("prior_gmm,alpha, update_means, [update_variances], [update_weights], [mean_var_update_responsibilities_threshold]","")
-  .add_prototype("other","")
-  .add_prototype("","")
-
-  .add_parameter("prior_gmm", ":py:class:`bob.learn.misc.GMMMachine`", "The prior GMM to be adapted (Universal Backgroud Model UBM).")
-  .add_parameter("reynolds_adaptation", "bool", "Will use the Reynolds adaptation procedure? See Eq (14) from [Reynolds2000]_")
-  .add_parameter("relevance_factor", "double", "If set the reynolds_adaptation parameters, will apply the Reynolds Adaptation procedure. See Eq (14) from [Reynolds2000]_")
-  .add_parameter("alpha", "double", "Set directly the alpha parameter (Eq (14) from [Reynolds2000]_), ignoring zeroth order statistics as a weighting factor.")
-
-  .add_parameter("update_means", "bool", "Update means on each iteration")
-  .add_parameter("update_variances", "bool", "Update variances on each iteration")
-  .add_parameter("update_weights", "bool", "Update weights on each iteration")
-  .add_parameter("mean_var_update_responsibilities_threshold", "float", "Threshold over the responsibilities of the Gaussians Equations 9.24, 9.25 of Bishop, `Pattern recognition and machine learning`, 2006 require a division by the responsibilities, which might be equal to zero because of numerical issue. This threshold is used to avoid such divisions.")
-
-  .add_parameter("other", ":py:class:`bob.learn.misc.MAP_GMMTrainer`", "A MAP_GMMTrainer object to be copied.")
-);
-
-
-static int PyBobLearnMiscMAPGMMTrainer_init_copy(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = MAP_GMMTrainer_doc.kwlist(2);
-  PyBobLearnMiscMAPGMMTrainerObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscMAPGMMTrainer_Type, &o)){
-    MAP_GMMTrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::MAP_GMMTrainer(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscMAPGMMTrainer_init_base_trainer(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist1 = MAP_GMMTrainer_doc.kwlist(0);
-  char** kwlist2 = MAP_GMMTrainer_doc.kwlist(1);
-  
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  bool reynolds_adaptation   = false;
-  double alpha = 0.5;
-  double relevance_factor = 4.0;
-  double aux = 0;
-
-  PyObject* update_means     = 0;
-  PyObject* update_variances = 0;
-  PyObject* update_weights   = 0;
-  double mean_var_update_responsibilities_threshold = std::numeric_limits<double>::epsilon();
-
-  PyObject* keyword_relevance_factor = Py_BuildValue("s", kwlist1[1]);
-  PyObject* keyword_alpha            = Py_BuildValue("s", kwlist2[1]);
-
-  //Here we have to select which keyword argument to read  
-  if (kwargs && PyDict_Contains(kwargs, keyword_relevance_factor) && (PyArg_ParseTupleAndKeywords(args, kwargs, "O!dO!|O!O!d", kwlist1, 
-                                                                      &PyBobLearnMiscGMMMachine_Type, &gmm_machine,
-                                                                      &aux,
-                                                                      &PyBool_Type, &update_means, 
-                                                                      &PyBool_Type, &update_variances, 
-                                                                      &PyBool_Type, &update_weights, 
-                                                                      &mean_var_update_responsibilities_threshold)))
-    reynolds_adaptation = true;    
-  else if (kwargs && PyDict_Contains(kwargs, keyword_alpha) && (PyArg_ParseTupleAndKeywords(args, kwargs, "O!dO!|O!O!d", kwlist2, 
-                                                                 &PyBobLearnMiscGMMMachine_Type, &gmm_machine,
-                                                                 &aux,
-                                                                 &PyBool_Type, &update_means, 
-                                                                 &PyBool_Type, &update_variances, 
-                                                                 &PyBool_Type, &update_weights, 
-                                                                 &mean_var_update_responsibilities_threshold)))
-    reynolds_adaptation = false;
-  else{
-    PyErr_Format(PyExc_RuntimeError, "%s. The second argument must be a keyword argument.", Py_TYPE(self)->tp_name);
-    MAP_GMMTrainer_doc.print_usage();
-    return -1;
-  }
-
-  if (reynolds_adaptation)
-    relevance_factor = aux;
-  else
-    alpha = aux;
-  
-  
-  self->cxx.reset(new bob::learn::misc::MAP_GMMTrainer(f(update_means), f(update_variances), f(update_weights), 
-                                                       mean_var_update_responsibilities_threshold, 
-                                                       reynolds_adaptation,relevance_factor, alpha, gmm_machine->cxx));
-  return 0;
-
-}
-
-
-
-static int PyBobLearnMiscMAPGMMTrainer_init(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // If the constructor input is GMMBaseTrainer object
-  if(PyBobLearnMiscMAPGMMTrainer_Check(args))
-    return PyBobLearnMiscMAPGMMTrainer_init_copy(self, args, kwargs);
-  else{
-    return PyBobLearnMiscMAPGMMTrainer_init_base_trainer(self, args, kwargs);
-  }
-
-  BOB_CATCH_MEMBER("cannot create MAP_GMMTrainer", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscMAPGMMTrainer_delete(PyBobLearnMiscMAPGMMTrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscMAPGMMTrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscMAPGMMTrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscMAPGMMTrainer_RichCompare(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscMAPGMMTrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscMAPGMMTrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare MAP_GMMTrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** relevance_factor *****/
-static auto relevance_factor = bob::extension::VariableDoc(
-  "relevance_factor",
-  "double",
-  "If set the reynolds_adaptation parameters, will apply the Reynolds Adaptation Factor. See Eq (14) from [Reynolds2000]_",
-  ""
-);
-PyObject* PyBobLearnMiscMAPGMMTrainer_getRelevanceFactor(PyBobLearnMiscMAPGMMTrainerObject* self, void*){
-  BOB_TRY
-  return Py_BuildValue("d",self->cxx->getRelevanceFactor());
-  BOB_CATCH_MEMBER("relevance_factor could not be read", 0)
-}
-int PyBobLearnMiscMAPGMMTrainer_setRelevanceFactor(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  
-  if(!PyNumber_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a double", Py_TYPE(self)->tp_name, relevance_factor.name());
-    return -1;
-  }
-  
-  self->cxx->setRelevanceFactor(PyFloat_AS_DOUBLE(value));
-  return 0;
-  BOB_CATCH_MEMBER("relevance_factor could not be set", 0)
-}
-
-
-/***** alpha *****/
-static auto alpha = bob::extension::VariableDoc(
-  "alpha",
-  "double",
-  "Set directly the alpha parameter (Eq (14) from [Reynolds2000]_), ignoring zeroth order statistics as a weighting factor.",
-  ""
-);
-PyObject* PyBobLearnMiscMAPGMMTrainer_getAlpha(PyBobLearnMiscMAPGMMTrainerObject* self, void*){
-  BOB_TRY
-  return Py_BuildValue("d",self->cxx->getAlpha());
-  BOB_CATCH_MEMBER("alpha could not be read", 0)
-}
-int PyBobLearnMiscMAPGMMTrainer_setAlpha(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  
-  if(!PyNumber_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a double", Py_TYPE(self)->tp_name, alpha.name());
-    return -1;
-  }
-  
-  self->cxx->setAlpha(PyFloat_AS_DOUBLE(value));
-  return 0;
-  BOB_CATCH_MEMBER("alpha could not be set", 0)
-}
-
-
-
-static PyGetSetDef PyBobLearnMiscMAPGMMTrainer_getseters[] = { 
-  {
-    alpha.name(),
-    (getter)PyBobLearnMiscMAPGMMTrainer_getAlpha,
-    (setter)PyBobLearnMiscMAPGMMTrainer_setAlpha,
-    alpha.doc(),
-    0
-  },
-  {
-    relevance_factor.name(),
-    (getter)PyBobLearnMiscMAPGMMTrainer_getRelevanceFactor,
-    (setter)PyBobLearnMiscMAPGMMTrainer_setRelevanceFactor,
-    relevance_factor.doc(),
-    0
-  },
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "Initialization before the EM steps",
-  "",
-  true
-)
-.add_prototype("gmm_machine")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object");
-static PyObject* PyBobLearnMiscMAPGMMTrainer_initialize(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine)){
-    PyErr_Format(PyExc_RuntimeError, "%s.%s. Was not possible to read :py:class:`bob.learn.misc.GMMMachine`", Py_TYPE(self)->tp_name, initialize.name());
-    Py_RETURN_NONE;
-  }
-  self->cxx->initialize(*gmm_machine->cxx);
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** eStep ***/
-static auto eStep = bob::extension::FunctionDoc(
-  "eStep",
-  "Calculates and saves statistics across the dataset,"
-  "and saves these as m_ss. ",
-
-  "Calculates the average log likelihood of the observations given the GMM,"
-  "and returns this in average_log_likelihood."
-  "The statistics, m_ss, will be used in the mStep() that follows.",
-
-  true
-)
-.add_prototype("gmm_machine,data")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object")
-.add_parameter("data", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscMAPGMMTrainer_eStep(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = eStep.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  PyBlitzArrayObject* data = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-  auto data_ = make_safe(data);
-
-  self->cxx->eStep(*gmm_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-  BOB_CATCH_MEMBER("cannot perform the eStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** mStep ***/
-static auto mStep = bob::extension::FunctionDoc(
-  "mStep",
-
-   "Performs a maximum a posteriori (MAP) update of the GMM:"  
-   "* parameters using the accumulated statistics in :py:class:`bob.learn.misc.GMMBaseTrainer.m_ss` and the" 
-   "* parameters of the prior model",
-  "",
-  true
-)
-.add_prototype("gmm_machine")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object");
-static PyObject* PyBobLearnMiscMAPGMMTrainer_mStep(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = mStep.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE;
-
-  self->cxx->mStep(*gmm_machine->cxx);
-
-  BOB_CATCH_MEMBER("cannot perform the mStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** computeLikelihood ***/
-static auto compute_likelihood = bob::extension::FunctionDoc(
-  "compute_likelihood",
-  "This functions returns the average min (Square Euclidean) distance (average distance to the closest mean)",
-  0,
-  true
-)
-.add_prototype("gmm_machine")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object");
-static PyObject* PyBobLearnMiscMAPGMMTrainer_compute_likelihood(PyBobLearnMiscMAPGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = compute_likelihood.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE;
-
-  double value = self->cxx->computeLikelihood(*gmm_machine->cxx);
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot perform the computeLikelihood method", 0)
-}
-
-
-
-static PyMethodDef PyBobLearnMiscMAPGMMTrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscMAPGMMTrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    eStep.name(),
-    (PyCFunction)PyBobLearnMiscMAPGMMTrainer_eStep,
-    METH_VARARGS|METH_KEYWORDS,
-    eStep.doc()
-  },
-  {
-    mStep.name(),
-    (PyCFunction)PyBobLearnMiscMAPGMMTrainer_mStep,
-    METH_VARARGS|METH_KEYWORDS,
-    mStep.doc()
-  },
-  {
-    compute_likelihood.name(),
-    (PyCFunction)PyBobLearnMiscMAPGMMTrainer_compute_likelihood,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_likelihood.doc()
-  },
-
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscMAPGMMTrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscMAPGMMTrainer(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_name      = MAP_GMMTrainer_doc.name();
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscMAPGMMTrainerObject);
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_flags     = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;//Enable the class inheritance
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_doc       = MAP_GMMTrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_new          = PyType_GenericNew;
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_init         = reinterpret_cast<initproc>(PyBobLearnMiscMAPGMMTrainer_init);
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_dealloc      = reinterpret_cast<destructor>(PyBobLearnMiscMAPGMMTrainer_delete);
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_richcompare  = reinterpret_cast<richcmpfunc>(PyBobLearnMiscMAPGMMTrainer_RichCompare);
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_methods      = PyBobLearnMiscMAPGMMTrainer_methods;
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_getset       = PyBobLearnMiscMAPGMMTrainer_getseters;
-  PyBobLearnMiscMAPGMMTrainer_Type.tp_call         = reinterpret_cast<ternaryfunc>(PyBobLearnMiscMAPGMMTrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscMAPGMMTrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscMAPGMMTrainer_Type);
-  return PyModule_AddObject(module, "_MAP_GMMTrainer", (PyObject*)&PyBobLearnMiscMAPGMMTrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/ML_gmm_trainer.cpp b/bob/learn/misc/ML_gmm_trainer.cpp
deleted file mode 100644
index ff72609..0000000
--- a/bob/learn/misc/ML_gmm_trainer.cpp
+++ /dev/null
@@ -1,335 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Web 22 Jan 16:45:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static inline bool f(PyObject* o){return o != 0 && PyObject_IsTrue(o) > 0;}  /* converts PyObject to bool and returns false if object is NULL */
-
-static auto ML_GMMTrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".ML_GMMTrainer",
-  "This class implements the maximum likelihood M-step of the expectation-maximisation algorithm for a GMM Machine."
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Creates a ML_GMMTrainer",
-    "",
-    true
-  )
-  .add_prototype("update_means, [update_variances], [update_weights], [mean_var_update_responsibilities_threshold]","")
-  .add_prototype("other","")
-  .add_prototype("","")
-
-  .add_parameter("update_means", "bool", "Update means on each iteration")
-  .add_parameter("update_variances", "bool", "Update variances on each iteration")
-  .add_parameter("update_weights", "bool", "Update weights on each iteration")
-  .add_parameter("mean_var_update_responsibilities_threshold", "float", "Threshold over the responsibilities of the Gaussians Equations 9.24, 9.25 of Bishop, `Pattern recognition and machine learning`, 2006 require a division by the responsibilities, which might be equal to zero because of numerical issue. This threshold is used to avoid such divisions.")
-
-
-  .add_parameter("other", ":py:class:`bob.learn.misc.ML_GMMTrainer`", "A ML_GMMTrainer object to be copied.")
-);
-
-
-static int PyBobLearnMiscMLGMMTrainer_init_copy(PyBobLearnMiscMLGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ML_GMMTrainer_doc.kwlist(1);
-  PyBobLearnMiscMLGMMTrainerObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscMLGMMTrainer_Type, &o)){
-    ML_GMMTrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::ML_GMMTrainer(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscMLGMMTrainer_init_base_trainer(PyBobLearnMiscMLGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ML_GMMTrainer_doc.kwlist(0);
-  
-  PyObject* update_means     = 0;
-  PyObject* update_variances = 0;
-  PyObject* update_weights   = 0;
-  double mean_var_update_responsibilities_threshold = std::numeric_limits<double>::epsilon();
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!|O!O!d", kwlist, 
-                                   &PyBool_Type, &update_means, 
-                                   &PyBool_Type, &update_variances, 
-                                   &PyBool_Type, &update_weights, 
-                                   &mean_var_update_responsibilities_threshold)){
-    ML_GMMTrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::ML_GMMTrainer(f(update_means), f(update_variances), f(update_weights), 
-                                                       mean_var_update_responsibilities_threshold));
-  return 0;
-}
-
-
-
-static int PyBobLearnMiscMLGMMTrainer_init(PyBobLearnMiscMLGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  //Reading the input argument
-  PyObject* arg = 0;
-  if (PyTuple_Size(args))
-    arg = PyTuple_GET_ITEM(args, 0);
-  else {
-    PyObject* tmp = PyDict_Values(kwargs);
-    auto tmp_ = make_safe(tmp);
-    arg = PyList_GET_ITEM(tmp, 0);
-  }
-
-  // If the constructor input is GMMBaseTrainer object
-  if (PyBobLearnMiscMLGMMTrainer_Check(arg))
-    return PyBobLearnMiscMLGMMTrainer_init_copy(self, args, kwargs);
-  else
-    return PyBobLearnMiscMLGMMTrainer_init_base_trainer(self, args, kwargs);
-
-
-
-  BOB_CATCH_MEMBER("cannot create GMMBaseTrainer_init_bool", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscMLGMMTrainer_delete(PyBobLearnMiscMLGMMTrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscMLGMMTrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscMLGMMTrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscMLGMMTrainer_RichCompare(PyBobLearnMiscMLGMMTrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscMLGMMTrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscMLGMMTrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare ML_GMMTrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-static PyGetSetDef PyBobLearnMiscMLGMMTrainer_getseters[] = { 
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "Initialization before the EM steps",
-  "",
-  true
-)
-.add_prototype("gmm_machine")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object");
-static PyObject* PyBobLearnMiscMLGMMTrainer_initialize(PyBobLearnMiscMLGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine)){
-    PyErr_Format(PyExc_RuntimeError, "%s.%s. Was not possible to read :py:class:`bob.learn.misc.GMMMachine`", Py_TYPE(self)->tp_name, initialize.name());
-    Py_RETURN_NONE;
-  }
-  self->cxx->initialize(*gmm_machine->cxx);
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** eStep ***/
-static auto eStep = bob::extension::FunctionDoc(
-  "eStep",
-  "Calculates and saves statistics across the dataset,"
-  "and saves these as m_ss. ",
-
-  "Calculates the average log likelihood of the observations given the GMM,"
-  "and returns this in average_log_likelihood."
-  "The statistics, m_ss, will be used in the mStep() that follows.",
-
-  true
-)
-.add_prototype("gmm_machine,data")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object")
-.add_parameter("data", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscMLGMMTrainer_eStep(PyBobLearnMiscMLGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = eStep.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  PyBlitzArrayObject* data = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-  auto data_ = make_safe(data);
-
-  self->cxx->eStep(*gmm_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-  BOB_CATCH_MEMBER("cannot perform the eStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** mStep ***/
-static auto mStep = bob::extension::FunctionDoc(
-  "mStep",
-  "Performs a maximum likelihood (ML) update of the GMM parameters "
-  "using the accumulated statistics in :py:class:`bob.learn.misc.GMMBaseTrainer.m_ss`",
-
-  "See Section 9.2.2 of Bishop, \"Pattern recognition and machine learning\", 2006",
-
-  true
-)
-.add_prototype("gmm_machine")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object");
-static PyObject* PyBobLearnMiscMLGMMTrainer_mStep(PyBobLearnMiscMLGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = mStep.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE;
-
-  self->cxx->mStep(*gmm_machine->cxx);
-
-  BOB_CATCH_MEMBER("cannot perform the mStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** computeLikelihood ***/
-static auto compute_likelihood = bob::extension::FunctionDoc(
-  "compute_likelihood",
-  "This functions returns the average min (Square Euclidean) distance (average distance to the closest mean)",
-  0,
-  true
-)
-.add_prototype("gmm_machine")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object");
-static PyObject* PyBobLearnMiscMLGMMTrainer_compute_likelihood(PyBobLearnMiscMLGMMTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = compute_likelihood.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE;
-
-  double value = self->cxx->computeLikelihood(*gmm_machine->cxx);
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot perform the computeLikelihood method", 0)
-}
-
-
-
-static PyMethodDef PyBobLearnMiscMLGMMTrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscMLGMMTrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    eStep.name(),
-    (PyCFunction)PyBobLearnMiscMLGMMTrainer_eStep,
-    METH_VARARGS|METH_KEYWORDS,
-    eStep.doc()
-  },
-  {
-    mStep.name(),
-    (PyCFunction)PyBobLearnMiscMLGMMTrainer_mStep,
-    METH_VARARGS|METH_KEYWORDS,
-    mStep.doc()
-  },
-  {
-    compute_likelihood.name(),
-    (PyCFunction)PyBobLearnMiscMLGMMTrainer_compute_likelihood,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_likelihood.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscMLGMMTrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscMLGMMTrainer(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscMLGMMTrainer_Type.tp_name      = ML_GMMTrainer_doc.name();
-  PyBobLearnMiscMLGMMTrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscMLGMMTrainerObject);
-  PyBobLearnMiscMLGMMTrainer_Type.tp_flags     = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;//Enable the class inheritance
-  PyBobLearnMiscMLGMMTrainer_Type.tp_doc       = ML_GMMTrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscMLGMMTrainer_Type.tp_new          = PyType_GenericNew;
-  PyBobLearnMiscMLGMMTrainer_Type.tp_init         = reinterpret_cast<initproc>(PyBobLearnMiscMLGMMTrainer_init);
-  PyBobLearnMiscMLGMMTrainer_Type.tp_dealloc      = reinterpret_cast<destructor>(PyBobLearnMiscMLGMMTrainer_delete);
-  PyBobLearnMiscMLGMMTrainer_Type.tp_richcompare  = reinterpret_cast<richcmpfunc>(PyBobLearnMiscMLGMMTrainer_RichCompare);
-  PyBobLearnMiscMLGMMTrainer_Type.tp_methods      = PyBobLearnMiscMLGMMTrainer_methods;
-  PyBobLearnMiscMLGMMTrainer_Type.tp_getset       = PyBobLearnMiscMLGMMTrainer_getseters;
-  PyBobLearnMiscMLGMMTrainer_Type.tp_call         = reinterpret_cast<ternaryfunc>(PyBobLearnMiscMLGMMTrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscMLGMMTrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscMLGMMTrainer_Type);
-  return PyModule_AddObject(module, "_ML_GMMTrainer", (PyObject*)&PyBobLearnMiscMLGMMTrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/__MAP_gmm_trainer__.py b/bob/learn/misc/__MAP_gmm_trainer__.py
deleted file mode 100644
index 4258b08..0000000
--- a/bob/learn/misc/__MAP_gmm_trainer__.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
-# Mon Jan 23 18:31:10 2015
-#
-# Copyright (C) 2011-2015 Idiap Research Institute, Martigny, Switzerland
-
-from ._library import _MAP_GMMTrainer
-import numpy
-
-# define the class
-class MAP_GMMTrainer(_MAP_GMMTrainer):
-
-  def __init__(self, prior_gmm, update_means=True, update_variances=False, update_weights=False, convergence_threshold=0.001, max_iterations=10, converge_by_likelihood=True, **kwargs):
-    """
-    :py:class:`bob.learn.misc.MAP_GMMTrainer` constructor
-
-    Keyword Parameters:
-      update_means
-
-      update_variances
-
-      update_weights
-
-      prior_gmm
-        A :py:class:`bob.learn.misc.GMMMachine` to be adapted
-      convergence_threshold
-        Convergence threshold
-      max_iterations
-        Number of maximum iterations
-      converge_by_likelihood
-        Tells whether we compute log_likelihood as a convergence criteria, or not 
-      alpha
-        Set directly the alpha parameter (Eq (14) from [Reynolds2000]_), ignoring zeroth order statistics as a weighting factor.
-      relevance_factor
-        If set the :py:class:`bob.learn.misc.MAP_GMMTrainer.reynolds_adaptation` parameters, will apply the Reynolds Adaptation procedure. See Eq (14) from [Reynolds2000]_  
-    """
-
-    if kwargs.get('alpha')!=None:
-      alpha = kwargs.get('alpha')
-      _MAP_GMMTrainer.__init__(self, prior_gmm,alpha=alpha, update_means=update_means, update_variances=update_variances,update_weights=update_weights)
-    else:
-      relevance_factor = kwargs.get('relevance_factor')
-      _MAP_GMMTrainer.__init__(self, prior_gmm, relevance_factor=relevance_factor, update_means=update_means, update_variances=update_variances,update_weights=update_weights)
-    
-    self.convergence_threshold  = convergence_threshold
-    self.max_iterations         = max_iterations
-    self.converge_by_likelihood = converge_by_likelihood
-
-
- 
-
-
-  def train(self, gmm_machine, data):
-    """
-    Train the :py:class:bob.learn.misc.GMMMachine using data
-
-    Keyword Parameters:
-      gmm_machine
-        The :py:class:bob.learn.misc.GMMMachine class
-      data
-        The data to be trained
-    """
-
-    #Initialization
-    self.initialize(gmm_machine);
-
-    #Do the Expectation-Maximization algorithm
-    average_output_previous = 0
-    average_output = -numpy.inf;
-
-
-    #eStep
-    self.eStep(gmm_machine, data);
-
-    if(self.converge_by_likelihood):
-      average_output = self.compute_likelihood(gmm_machine);    
-
-    for i in range(self.max_iterations):
-      #saves average output from last iteration
-      average_output_previous = average_output;
-
-      #mStep
-      self.mStep(gmm_machine);
-
-      #eStep
-      self.eStep(gmm_machine, data);
-
-      #Computes log likelihood if required
-      if(self.converge_by_likelihood):
-        average_output = self.compute_likelihood(gmm_machine);
-
-        #Terminates if converged (and likelihood computation is set)
-        if abs((average_output_previous - average_output)/average_output_previous) <= self.convergence_threshold:
-          break
-
-
-# copy the documentation from the base class
-__doc__ = _MAP_GMMTrainer.__doc__
diff --git a/bob/learn/misc/__ML_gmm_trainer__.py b/bob/learn/misc/__ML_gmm_trainer__.py
deleted file mode 100644
index 93a3c6c..0000000
--- a/bob/learn/misc/__ML_gmm_trainer__.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
-# Mon Jan 22 18:29:10 2015
-#
-# Copyright (C) 2011-2015 Idiap Research Institute, Martigny, Switzerland
-
-from ._library import _ML_GMMTrainer
-import numpy
-
-# define the class
-class ML_GMMTrainer(_ML_GMMTrainer):
-
-  def __init__(self, update_means=True, update_variances=False, update_weights=False, convergence_threshold=0.001, max_iterations=10, converge_by_likelihood=True):
-    """
-    :py:class:bob.learn.misc.ML_GMMTrainer constructor
-
-    Keyword Parameters:
-      update_means
-
-      update_variances
-
-      update_weights
- 
-      convergence_threshold
-        Convergence threshold
-      max_iterations
-        Number of maximum iterations
-      converge_by_likelihood
-        Tells whether we compute log_likelihood as a convergence criteria, or not 
-        
-    """
-
-    _ML_GMMTrainer.__init__(self, update_means=update_means, update_variances=update_variances, update_weights=update_weights)
-    self.convergence_threshold  = convergence_threshold
-    self.max_iterations         = max_iterations
-    self.converge_by_likelihood = converge_by_likelihood
-
-
-  def train(self, gmm_machine, data):
-    """
-    Train the :py:class:bob.learn.misc.GMMMachine using data
-
-    Keyword Parameters:
-      gmm_machine
-        The :py:class:bob.learn.misc.GMMMachine class
-      data
-        The data to be trained
-    """
-
-    #Initialization
-    self.initialize(gmm_machine);
-
-    #Do the Expectation-Maximization algorithm
-    average_output_previous = 0
-    average_output = -numpy.inf;
-
-
-    #eStep
-    self.eStep(gmm_machine, data);
-
-    if(self.converge_by_likelihood):
-      average_output = self.compute_likelihood(gmm_machine);    
-
-    for i in range(self.max_iterations):
-      #saves average output from last iteration
-      average_output_previous = average_output;
-
-      #mStep
-      self.mStep(gmm_machine);
-
-      #eStep
-      self.eStep(gmm_machine, data);
-
-      #Computes log likelihood if required
-      if(self.converge_by_likelihood):
-        average_output = self.compute_likelihood(gmm_machine);
-
-        #Terminates if converged (and likelihood computation is set)
-        if abs((average_output_previous - average_output)/average_output_previous) <= self.convergence_threshold:
-          break
-
-
-# copy the documentation from the base class
-__doc__ = _ML_GMMTrainer.__doc__
diff --git a/bob/learn/misc/__empca_trainer__.py b/bob/learn/misc/__empca_trainer__.py
deleted file mode 100644
index 28f4c9d..0000000
--- a/bob/learn/misc/__empca_trainer__.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
-# Wed Fev 04 13:35:10 2015 +0200
-#
-# Copyright (C) 2011-2015 Idiap Research Institute, Martigny, Switzerland
-
-from ._library import _EMPCATrainer
-import numpy
-
-# define the class
-class EMPCATrainer (_EMPCATrainer):
-
-  def __init__(self, convergence_threshold=0.001, max_iterations=10, compute_likelihood=True):
-    """
-    :py:class:`bob.learn.misc.EMPCATrainer` constructor
-
-    Keyword Parameters:
-      convergence_threshold
-        Convergence threshold
-      max_iterations
-        Number of maximum iterations
-      compute_likelihood
-        
-    """
-
-    _EMPCATrainer.__init__(self,convergence_threshold)
-    self._max_iterations        = max_iterations
-    self._compute_likelihood    = compute_likelihood
-
-
-  def train(self, linear_machine, data):
-    """
-    Train the :py:class:bob.learn.misc.LinearMachine using data
-
-    Keyword Parameters:
-      linear_machine
-        The :py:class:bob.learn.misc.LinearMachine class
-      data
-        The data to be trained
-    """
-
-    #Initialization
-    self.initialize(linear_machine, data);
-      
-    #Do the Expectation-Maximization algorithm
-    average_output_previous = 0
-    average_output = -numpy.inf;
-
-    #eStep
-    self.eStep(linear_machine, data);
-
-    if(self._compute_likelihood):
-      average_output = self.compute_likelihood(linear_machine);
-    
-    for i in range(self._max_iterations):
-
-      #saves average output from last iteration
-      average_output_previous = average_output;
-
-      #mStep
-      self.mStep(linear_machine);
-
-      #eStep
-      self.eStep(linear_machine, data);
-
-      #Computes log likelihood if required
-      if(self._compute_likelihood):
-        average_output = self.compute_likelihood(linear_machine);
-
-        #Terminates if converged (and likelihood computation is set)
-        if abs((average_output_previous - average_output)/average_output_previous) <= self._convergence_threshold:
-          break
-
-
-# copy the documentation from the base class
-__doc__ = _EMPCATrainer.__doc__
diff --git a/bob/learn/misc/__init__.py b/bob/learn/misc/__init__.py
deleted file mode 100644
index 4f39609..0000000
--- a/bob/learn/misc/__init__.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# import Libraries of other lib packages
-import bob.io.base
-import bob.math
-import bob.learn.linear
-
-# import our own Library
-import bob.extension
-bob.extension.load_bob_library('bob.learn.misc', __file__)
-
-#from ._old_library import *
-from ._library import *
-from . import version
-from .version import module as __version__
-from .__kmeans_trainer__ import *
-from .__ML_gmm_trainer__ import *
-from .__MAP_gmm_trainer__ import *
-from .__jfa_trainer__ import *
-from .__isv_trainer__ import *
-from .__ivector_trainer__ import *
-from .__plda_trainer__ import *
-
-
-def ztnorm_same_value(vect_a, vect_b):
-  """Computes the matrix of boolean D for the ZT-norm, which indicates where
-     the client ids of the T-Norm models and Z-Norm samples match.
-
-     vect_a An (ordered) list of client_id corresponding to the T-Norm models
-     vect_b An (ordered) list of client_id corresponding to the Z-Norm impostor samples
-  """
-  import numpy
-  sameMatrix = numpy.ndarray((len(vect_a), len(vect_b)), 'bool')
-  for j in range(len(vect_a)):
-    for i in range(len(vect_b)):
-      sameMatrix[j, i] = (vect_a[j] == vect_b[i])
-  return sameMatrix
-
-
-def get_config():
-  """Returns a string containing the configuration information.
-  """
-
-  import pkg_resources
-  from .version import externals
-
-  packages = pkg_resources.require(__name__)
-  this = packages[0]
-  deps = packages[1:]
-
-  retval =  "%s: %s (%s)\n" % (this.key, this.version, this.location)
-  retval += "  - c/c++ dependencies:\n"
-  for k in sorted(externals): retval += "    - %s: %s\n" % (k, externals[k])
-  retval += "  - python dependencies:\n"
-  for d in deps: retval += "    - %s: %s (%s)\n" % (d.key, d.version, d.location)
-
-  return retval.strip()
-
-# gets sphinx autodoc done right - don't remove it
-__all__ = [_ for _ in dir() if not _.startswith('_')]
diff --git a/bob/learn/misc/__isv_trainer__.py b/bob/learn/misc/__isv_trainer__.py
deleted file mode 100644
index 98a5457..0000000
--- a/bob/learn/misc/__isv_trainer__.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
-# Mon Fev 02 21:40:10 2015 +0200
-#
-# Copyright (C) 2011-2015 Idiap Research Institute, Martigny, Switzerland
-
-from ._library import _ISVTrainer
-import numpy
-
-# define the class
-class ISVTrainer (_ISVTrainer):
-
-  def __init__(self, max_iterations=10, relevance_factor=4.):
-    """
-    :py:class:`bob.learn.misc.ISVTrainer` constructor
-
-    Keyword Parameters:
-      max_iterations
-        Number of maximum iterations
-    """
-    _ISVTrainer.__init__(self, relevance_factor)
-    self._max_iterations         = max_iterations
-
-
-  def train(self, isv_base, data):
-    """
-    Train the :py:class:`bob.learn.misc.ISVBase` using data
-
-    Keyword Parameters:
-      jfa_base
-        The `:py:class:bob.learn.misc.ISVBase` class
-      data
-        The data to be trained
-    """
-
-    #Initialization
-    self.initialize(isv_base, data);
-      
-    for i in range(self._max_iterations):
-      #eStep
-      self.eStep(isv_base, data);
-      #mStep
-      self.mStep(isv_base);
-
-
-
-# copy the documentation from the base class
-__doc__ = _ISVTrainer.__doc__
diff --git a/bob/learn/misc/__ivector_trainer__.py b/bob/learn/misc/__ivector_trainer__.py
deleted file mode 100644
index a53a2d4..0000000
--- a/bob/learn/misc/__ivector_trainer__.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
-# Tue Fev 03 13:20:10 2015 +0200
-#
-# Copyright (C) 2011-2015 Idiap Research Institute, Martigny, Switzerland
-
-from ._library import _IVectorTrainer
-import numpy
-
-# define the class
-class IVectorTrainer (_IVectorTrainer):
-
-  def __init__(self, max_iterations=10, update_sigma=False):
-    """
-    :py:class:`bob.learn.misc.IVectorTrainer` constructor
-
-    Keyword Parameters:
-      max_iterations
-        Number of maximum iterations
-      update_sigma
-        
-    """
-    _IVectorTrainer.__init__(self, update_sigma)
-    self._max_iterations         = max_iterations
-
-
-  def train(self, ivector_machine, data):
-    """
-    Train the :py:class:`bob.learn.misc.IVectorMachine` using data
-
-    Keyword Parameters:
-      ivector_machine
-        The `:py:class:bob.learn.misc.IVectorMachine` class
-      data
-        The data to be trained
-    """
-
-    #Initialization
-    self.initialize(ivector_machine, data);
-      
-    for i in range(self._max_iterations):
-      #eStep
-      self.eStep(ivector_machine, data);
-      #mStep
-      self.mStep(ivector_machine);
-
-
-
-# copy the documentation from the base class
-__doc__ = _IVectorTrainer.__doc__
diff --git a/bob/learn/misc/__jfa_trainer__.py b/bob/learn/misc/__jfa_trainer__.py
deleted file mode 100644
index ad803ad..0000000
--- a/bob/learn/misc/__jfa_trainer__.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
-# Sun Fev 01 21:10:10 2015 +0200
-#
-# Copyright (C) 2011-2015 Idiap Research Institute, Martigny, Switzerland
-
-from ._library import _JFATrainer
-import numpy
-
-# define the class
-class JFATrainer (_JFATrainer):
-
-  def __init__(self, max_iterations=10):
-    """
-    :py:class:`bob.learn.misc.JFATrainer` constructor
-
-    Keyword Parameters:
-      max_iterations
-        Number of maximum iterations
-    """
-
-    _JFATrainer.__init__(self)
-    self._max_iterations         = max_iterations
-
-
-  def train_loop(self, jfa_base, data):
-    """
-    Train the :py:class:`bob.learn.misc.JFABase` using data
-
-    Keyword Parameters:
-      jfa_base
-        The `:py:class:bob.learn.misc.JFABase` class
-      data
-        The data to be trained
-    """
-    #V Subspace
-    for i in range(self._max_iterations):
-      self.e_step1(jfa_base, data)
-      self.m_step1(jfa_base, data)
-    self.finalize1(jfa_base, data)
-
-    #U subspace
-    for i in range(self._max_iterations):
-      self.e_step2(jfa_base, data)
-      self.m_step2(jfa_base, data)
-    self.finalize2(jfa_base, data)
-
-    # d subspace
-    for i in range(self._max_iterations):
-      self.e_step3(jfa_base, data)
-      self.m_step3(jfa_base, data)
-    self.finalize3(jfa_base, data)
-
-
-  def train(self, jfa_base, data):
-    """
-    Train the :py:class:`bob.learn.misc.JFABase` using data
-
-    Keyword Parameters:
-      jfa_base
-        The `:py:class:bob.learn.misc.JFABase` class
-      data
-        The data to be trained
-    """
-    self.initialize(jfa_base, data)
-    self.train_loop(jfa_base, data)
-
-
-# copy the documentation from the base class
-__doc__ = _JFATrainer.__doc__
diff --git a/bob/learn/misc/__kmeans_trainer__.py b/bob/learn/misc/__kmeans_trainer__.py
deleted file mode 100644
index afe4949..0000000
--- a/bob/learn/misc/__kmeans_trainer__.py
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
-# Mon Jan 19 11:35:10 2015 +0200
-#
-# Copyright (C) 2011-2015 Idiap Research Institute, Martigny, Switzerland
-
-from ._library import _KMeansTrainer
-import numpy
-
-# define the class
-class KMeansTrainer (_KMeansTrainer):
-
-  def __init__(self, initialization_method="RANDOM", convergence_threshold=0.001, max_iterations=10, converge_by_average_min_distance=True):
-    """
-    :py:class:`bob.learn.misc.KMeansTrainer` constructor
-
-    Keyword Parameters:
-      initialization_method
-        The initialization method to generate the initial means
-      convergence_threshold
-        Convergence threshold
-      max_iterations
-        Number of maximum iterations
-      converge_by_average_min_distance
-        Tells whether we compute the average min (square Euclidean) distance, as a convergence criteria, or not 
-        
-    """
-
-    _KMeansTrainer.__init__(self, initialization_method="RANDOM", )
-    self._convergence_threshold = convergence_threshold
-    self._max_iterations         = max_iterations
-    self._converge_by_average_min_distance = converge_by_average_min_distance
-
-
-  def train(self, kmeans_machine, data):
-    """
-    Train the :py:class:bob.learn.misc.KMeansMachine using data
-
-    Keyword Parameters:
-      kmeans_machine
-        The :py:class:bob.learn.misc.KMeansMachine class
-      data
-        The data to be trained
-    """
-
-    #Initialization
-    self.initialize(kmeans_machine, data);
-      
-    #Do the Expectation-Maximization algorithm
-    average_output_previous = 0
-    average_output = -numpy.inf;
-
-    #eStep
-    self.eStep(kmeans_machine, data);
-
-    if(self._converge_by_average_min_distance):
-      average_output = self.compute_likelihood(kmeans_machine);
-    
-    for i in range(self._max_iterations):
-
-      #saves average output from last iteration
-      average_output_previous = average_output;
-
-      #mStep
-      self.mStep(kmeans_machine);
-
-      #eStep
-      self.eStep(kmeans_machine, data);
-
-      #Computes log likelihood if required
-      if(self._converge_by_average_min_distance):
-        average_output = self.compute_likelihood(kmeans_machine);
-
-        #Terminates if converged (and likelihood computation is set)
-        if abs((average_output_previous - average_output)/average_output_previous) <= self._convergence_threshold:
-          break
-
-
-# copy the documentation from the base class
-__doc__ = _KMeansTrainer.__doc__
diff --git a/bob/learn/misc/__plda_trainer__.py b/bob/learn/misc/__plda_trainer__.py
deleted file mode 100644
index 0fc0ee3..0000000
--- a/bob/learn/misc/__plda_trainer__.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
-# Mon Fev 02 21:40:10 2015 +0200
-#
-# Copyright (C) 2011-2015 Idiap Research Institute, Martigny, Switzerland
-
-from ._library import _PLDATrainer
-import numpy
-
-# define the class
-class PLDATrainer (_PLDATrainer):
-
-  def __init__(self, max_iterations=10, use_sum_second_order=False):
-    """
-    :py:class:`bob.learn.misc.PLDATrainer` constructor
-
-    Keyword Parameters:
-      max_iterations
-        Number of maximum iterations
-    """
-    _PLDATrainer.__init__(self, use_sum_second_order)
-    self._max_iterations         = max_iterations
-
-
-  def train(self, plda_base, data):
-    """
-    Train the :py:class:`bob.learn.misc.PLDABase` using data
-
-    Keyword Parameters:
-      jfa_base
-        The `:py:class:bob.learn.misc.PLDABase` class
-      data
-        The data to be trained
-    """
-
-    #Initialization
-    self.initialize(plda_base, data);
-      
-    for i in range(self._max_iterations):
-      #eStep
-      self.e_step(plda_base, data);
-      #mStep
-      self.m_step(plda_base, data);
-    self.finalize(plda_base, data);
-
-
-
-# copy the documentation from the base class
-__doc__ = _PLDATrainer.__doc__
diff --git a/bob/learn/misc/cpp/BICMachine.cpp b/bob/learn/misc/cpp/BICMachine.cpp
deleted file mode 100644
index 4bf047f..0000000
--- a/bob/learn/misc/cpp/BICMachine.cpp
+++ /dev/null
@@ -1,348 +0,0 @@
-/**
- * @date Tue Jun  5 16:54:27 CEST 2012
- * @author Manuel Guenther <Manuel.Guenther@idiap.ch>
- *
- * A machine that implements the liner projection of input to the output using
- * weights, biases and sums:
- * output = sum(inputs * weights) + bias
- * It is possible to setup the machine to previously normalize the input taking
- * into consideration some input bias and division factor. It is also possible
- * to set it up to have an activation function.
- * A linear classifier. See C. M. Bishop, "Pattern Recognition and Machine
- * Learning", chapter 4
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/BICMachine.h>
-#include <bob.math/linear.h>
-#include <bob.core/assert.h>
-#include <bob.core/check.h>
-
-/**
- * Initializes an empty BIC Machine
- *
- * @param use_DFFS  Add the Distance From Feature Space during score computation?
- */
-bob::learn::misc::BICMachine::BICMachine(bool use_DFFS)
-:
-  m_project_data(use_DFFS),
-  m_use_DFFS(use_DFFS)
-{}
-
-/**
- * Assigns the other BICMachine to this, i.e., makes a deep copy of the given machine.
- *
- * @param  other  The other BICMachine to get a shallow copy of
- * @return a reference to *this
- */
-bob::learn::misc::BICMachine::BICMachine(const BICMachine& other)
-:
-  m_project_data(other.m_project_data),
-  m_use_DFFS(other.m_use_DFFS)
-{
-  if (m_project_data){
-    setBIC(false, other.m_mu_I, other.m_lambda_I, other.m_Phi_I, other.m_rho_I, true);
-    setBIC(true , other.m_mu_E, other.m_lambda_E, other.m_Phi_E, other.m_rho_E, true);
-  } else {
-    setIEC(false, other.m_mu_I, other.m_lambda_I, true);
-    setIEC(true , other.m_mu_E, other.m_lambda_E, true);
-  }
-}
-
-/**
- * Assigns the other BICMachine to this, i.e., makes a deep copy of the given BICMachine
- *
- * @param  other  The other BICMachine to get a deep copy of
- * @return a reference to *this
- */
-bob::learn::misc::BICMachine& bob::learn::misc::BICMachine::operator=(const BICMachine& other)
-{
-  if (this != &other)
-  {
-    if (other.m_project_data){
-      m_use_DFFS = other.m_use_DFFS;
-      setBIC(false, other.m_mu_I, other.m_lambda_I, other.m_Phi_I, other.m_rho_I, true);
-      setBIC(true , other.m_mu_E, other.m_lambda_E, other.m_Phi_E, other.m_rho_E, true);
-    } else {
-      m_use_DFFS = false;
-      setIEC(false, other.m_mu_I, other.m_lambda_I, true);
-      setIEC(true , other.m_mu_E, other.m_lambda_E, true);
-    }
-  }
-  return *this;
-}
-
-/**
- * Compares if this machine and the given one are identical
- *
- * @param  other  The BICMachine to compare with
- * @return true if both machines are identical, i.e., have exactly the same parameters, otherwise false
- */
-bool bob::learn::misc::BICMachine::operator==(const BICMachine& other) const
-{
-  return (m_project_data == other.m_project_data &&
-          (!m_project_data || m_use_DFFS == other.m_use_DFFS) &&
-          bob::core::array::isEqual(m_mu_I, other.m_mu_I) &&
-          bob::core::array::isEqual(m_mu_E, other.m_mu_E) &&
-          bob::core::array::isEqual(m_lambda_I, other.m_lambda_I) &&
-          bob::core::array::isEqual(m_lambda_E, other.m_lambda_E) &&
-          (!m_project_data ||
-              (bob::core::array::isEqual(m_Phi_I, other.m_Phi_I) &&
-               bob::core::array::isEqual(m_Phi_E, other.m_Phi_E) &&
-               (!m_use_DFFS || (m_rho_I == other.m_rho_I && m_rho_E == other.m_rho_E)))));
-}
-
-/**
- * Checks if this machine and the given one are different
- *
- * @param  other  The BICMachine to compare with
- * @return false if both machines are identical, i.e., have exactly the same parameters, otherwise true
- */
-bool bob::learn::misc::BICMachine::operator!=(const BICMachine& other) const
-{
-  return !(this->operator==(other));
-}
-
-/**
- * Compares the given machine with this for similarity
- *
- * @param  other  The BICMachine to compare with
- * @param  r_epsilon  The largest value any parameter might relatively differ between the two machines
- * @param  a_epsilon  The largest value any parameter might absolutely differ between the two machines
-
- * @return true if both machines are approximately equal, otherwise false
- */
-bool bob::learn::misc::BICMachine::is_similar_to(const BICMachine& other,
-  const double r_epsilon, const double a_epsilon) const
-{
-  if (m_project_data){
-    // compare data
-    if (not bob::core::array::hasSameShape(m_Phi_I, other.m_Phi_I)) return false;
-    if (not bob::core::array::hasSameShape(m_Phi_E, other.m_Phi_E)) return false;
-    // check that the projection matrices are close,
-    // but allow that eigen vectors might have opposite directions
-    // (i.e., they are either identical -> difference is 0, or opposite -> sum is zero)
-    for (int i = m_Phi_I.extent(1); i--;){
-      const blitz::Array<double,1>& sub1 = m_Phi_I(blitz::Range::all(), i);
-      const blitz::Array<double,1>& sub2 = other.m_Phi_I(blitz::Range::all(), i);
-      blitz::Array<double,1> sub2_negative(-sub2);
-      if (!bob::core::array::isClose(sub1, sub2, r_epsilon, a_epsilon) && !bob::core::array::isClose(sub1, sub2_negative, r_epsilon, a_epsilon)) return false;
-    }
-    for (int i = m_Phi_E.shape()[1]; i--;){
-      const blitz::Array<double,1>& sub1 = m_Phi_E(blitz::Range::all(), i);
-      const blitz::Array<double,1>& sub2 = other.m_Phi_E(blitz::Range::all(), i);
-      blitz::Array<double,1> sub2_negative(-sub2);
-      if (!bob::core::array::isClose(sub1, sub2, r_epsilon, a_epsilon) && !bob::core::array::isClose(sub1, sub2_negative, r_epsilon, a_epsilon)) return false;
-    }
-  }
-
-  return (m_project_data == other.m_project_data &&
-          (!m_project_data || m_use_DFFS == other.m_use_DFFS) &&
-          bob::core::array::isClose(m_mu_I, other.m_mu_I, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_mu_E, other.m_mu_E, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_lambda_I, other.m_lambda_I, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_lambda_E, other.m_lambda_E, r_epsilon, a_epsilon) &&
-          (!m_project_data ||
-               (!m_use_DFFS || (bob::core::isClose(m_rho_I, other.m_rho_I, r_epsilon, a_epsilon) &&
-                                bob::core::isClose(m_rho_E, other.m_rho_E, r_epsilon, a_epsilon)))));
-}
-
-
-
-void bob::learn::misc::BICMachine::initialize(bool clazz, int input_length, int projected_length){
-  blitz::Array<double,1>& diff = clazz ? m_diff_E : m_diff_I;
-  blitz::Array<double,1>& proj = clazz ? m_proj_E : m_proj_I;
-  diff.resize(input_length);
-  proj.resize(projected_length);
-}
-
-/**
- * Sets the parameters of the given class that are required for computing the IEC scores (Guenther, Wuertz)
- *
- * @param  clazz   false for the intrapersonal class, true for the extrapersonal one.
- * @param  mean    The mean vector of the training data
- * @param  variances  The variances of the training data
- * @param  copy_data  If true, makes a deep copy of the matrices, otherwise it just references it (the default)
- */
-void bob::learn::misc::BICMachine::setIEC(
-    bool clazz,
-    const blitz::Array<double,1>& mean,
-    const blitz::Array<double,1>& variances,
-    bool copy_data
-){
-  m_project_data = false;
-  // select the right matrices to write
-  blitz::Array<double,1>& mu = clazz ? m_mu_E : m_mu_I;
-  blitz::Array<double,1>& lambda = clazz ? m_lambda_E : m_lambda_I;
-
-  // copy mean and variances
-  if (copy_data){
-    mu.resize(mean.shape());
-    mu = mean;
-    lambda.resize(variances.shape());
-    lambda = variances;
-  } else {
-    mu.reference(mean);
-    lambda.reference(variances);
-  }
-}
-
-/**
- * Sets the parameters of the given class that are required for computing the BIC scores (Teixeira)
- *
- * @param  clazz   false for the intrapersonal class, true for the extrapersonal one.
- * @param  mean    The mean vector of the training data
- * @param  variances  The eigenvalues of the training data
- * @param  projection  The PCA projection matrix
- * @param  rho     The residual eigenvalues, used for DFFS calculation
- * @param  copy_data  If true, makes a deep copy of the matrices, otherwise it just references it (the default)
- */
-void bob::learn::misc::BICMachine::setBIC(
-    bool clazz,
-    const blitz::Array<double,1>& mean,
-    const blitz::Array<double,1>& variances,
-    const blitz::Array<double,2>& projection,
-    const double rho,
-    bool copy_data
-){
-  m_project_data = true;
-  // select the right matrices to write
-  blitz::Array<double,1>& mu = clazz ? m_mu_E : m_mu_I;
-  blitz::Array<double,1>& lambda = clazz ? m_lambda_E : m_lambda_I;
-  blitz::Array<double,2>& Phi = clazz ? m_Phi_E : m_Phi_I;
-  double& rho_ = clazz ? m_rho_E : m_rho_I;
-
-  // copy information
-  if (copy_data){
-    mu.resize(mean.shape());
-    mu = mean;
-    lambda.resize(variances.shape());
-    lambda = variances;
-    Phi.resize(projection.shape());
-    Phi = projection;
-  } else {
-    mu.reference(mean);
-    lambda.reference(variances);
-    Phi.reference(projection);
-  }
-  rho_ = rho;
-
-  // check that rho has a reasonable value (if it is used)
-  if (m_use_DFFS && rho_ < 1e-12) throw std::runtime_error("The given average eigenvalue (rho) is too close to zero");
-
-  // initialize temporaries
-  initialize(clazz, Phi.shape()[0], Phi.shape()[1]);
-}
-
-/**
- * Set or unset the usage of the Distance From Feature Space
- *
- * @param use_DFFS The new value of use_DFFS
- */
-void bob::learn::misc::BICMachine::use_DFFS(bool use_DFFS){
-  m_use_DFFS = use_DFFS;
-  if (m_project_data && m_use_DFFS && (m_rho_E < 1e-12 || m_rho_I < 1e-12)) std::runtime_error("The average eigenvalue (rho) is too close to zero, so using DFFS will not work");
-}
-
-/**
- * Loads the BICMachine from the given hdf5 file.
- *
- * @param  config  The hdf5 file containing the required information.
- */
-void bob::learn::misc::BICMachine::load(bob::io::base::HDF5File& config){
-  //reads all data directly into the member variables
-  m_project_data = config.read<bool>("project_data");
-  m_mu_I.reference(config.readArray<double,1>("intra_mean"));
-  m_lambda_I.reference(config.readArray<double,1>("intra_variance"));
-  if (m_project_data){
-    m_use_DFFS = config.read<bool>("use_DFFS");
-    m_Phi_I.reference(config.readArray<double,2>("intra_subspace"));
-    initialize(false, m_Phi_I.shape()[0], m_Phi_I.shape()[1]);
-    m_rho_I = config.read<double>("intra_rho");
-  }
-
-  m_mu_E.reference(config.readArray<double,1>("extra_mean"));
-  m_lambda_E.reference(config.readArray<double,1>("extra_variance"));
-  if (m_project_data){
-    m_Phi_E.reference(config.readArray<double,2>("extra_subspace"));
-    initialize(true, m_Phi_E.shape()[0], m_Phi_E.shape()[1]);
-    m_rho_E = config.read<double>("extra_rho");
-  }
-  // check that rho has reasonable values
-  if (m_project_data && m_use_DFFS && (m_rho_E < 1e-12 || m_rho_I < 1e-12)) throw std::runtime_error("The loaded average eigenvalue (rho) is too close to zero");
-
-}
-
-/**
- * Saves the parameters of the BICMachine to the given hdf5 file.
- *
- * @param  config  The hdf5 file to write the configuration into.
- */
-void bob::learn::misc::BICMachine::save(bob::io::base::HDF5File& config) const{
-  config.set("project_data", m_project_data);
-  config.setArray("intra_mean", m_mu_I);
-  config.setArray("intra_variance", m_lambda_I);
-  if (m_project_data){
-    config.set("use_DFFS", m_use_DFFS);
-    config.setArray("intra_subspace", m_Phi_I);
-    config.set("intra_rho", m_rho_I);
-  }
-
-  config.setArray("extra_mean", m_mu_E);
-  config.setArray("extra_variance", m_lambda_E);
-  if (m_project_data){
-    config.setArray("extra_subspace", m_Phi_E);
-    config.set("extra_rho", m_rho_E);
-  }
-}
-
-/**
- * Computes the BIC or IEC score for the given input vector.
- * The score itself is the log-likelihood score of the given input vector belonging to the intrapersonal class.
- * No sanity checks of input and output are performed.
- *
- * @param  input  A vector (of difference values) to compute the BIC or IEC score for.
- * @param  output The one-element array that will contain the score afterwards.
- */
-void bob::learn::misc::BICMachine::forward_(const blitz::Array<double,1>& input, double& output) const{
-  if (m_project_data){
-    // subtract mean
-    m_diff_I = input - m_mu_I;
-    m_diff_E = input - m_mu_E;
-    // project data to intrapersonal and extrapersonal subspace
-    bob::math::prod(m_diff_I, m_Phi_I, m_proj_I);
-    bob::math::prod(m_diff_E, m_Phi_E, m_proj_E);
-
-    // compute Mahalanobis distance
-    output = blitz::sum(blitz::pow2(m_proj_E) / m_lambda_E) - blitz::sum(blitz::pow2(m_proj_I) / m_lambda_I);
-
-    // add the DFFS?
-    if (m_use_DFFS){
-      output += blitz::sum(blitz::pow2(m_diff_E) - blitz::pow2(m_proj_E)) / m_rho_E;
-      output -= blitz::sum(blitz::pow2(m_diff_I) - blitz::pow2(m_proj_I)) / m_rho_I;
-    }
-    output /= (m_proj_E.extent(0) + m_proj_I.extent(0));
-  } else {
-    // forward without projection
-    output = blitz::mean( blitz::pow2(input - m_mu_E) / m_lambda_E
-                        - blitz::pow2(input - m_mu_I) / m_lambda_I);
-  }
-}
-
-/**
- * Computes the BIC or IEC score for the given input vector.
- * The score itself is the log-likelihood score of the given input vector belonging to the intrapersonal class.
- * Sanity checks of input and output shape are performed.
- *
- * @param  input  A vector (of difference values) to compute the BIC or IEC score for.
- * @param  output The one-element array that will contain the score afterwards.
- */
-void bob::learn::misc::BICMachine::forward(const blitz::Array<double,1>& input, double& output) const{
-  // perform some checks
-  bob::core::array::assertSameShape(input, m_mu_E);
-
-  // call the actual method
-  forward_(input, output);
-}
-
diff --git a/bob/learn/misc/cpp/BICTrainer.cpp b/bob/learn/misc/cpp/BICTrainer.cpp
deleted file mode 100644
index 475fad9..0000000
--- a/bob/learn/misc/cpp/BICTrainer.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * @date Wed Jun  6 10:29:09 CEST 2012
- * @author Manuel Guenther <Manuel.Guenther@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/BICTrainer.h>
-#include <bob.learn.linear/pca.h>
-#include <bob.learn.linear/machine.h>
-
-static double sqr(const double& x){
-  return x*x;
-}
-
-/**
- * This function trains one of the classes of the given machine with the given data.
- * It computes either BIC projection matrices, or IEC mean and variance.
- *
- * @param  clazz    false for the intrapersonal class, true for the extrapersonal one.
- * @param  machine  The machine to be trained.
- * @param  differences  A set of (intra/extra)-personal difference vectors that should be trained.
- */
-void bob::learn::misc::BICTrainer::train_single(bool clazz, bob::learn::misc::BICMachine& machine, const blitz::Array<double,2>& differences) const {
-  int subspace_dim = clazz ? m_M_E : m_M_I;
-  int input_dim = differences.extent(1);
-  int data_count = differences.extent(0);
-  blitz::Range a = blitz::Range::all();
-
-  if (subspace_dim){
-    // train the class using BIC
-
-    // Compute PCA on the given dataset
-    bob::learn::linear::PCATrainer trainer;
-    const int n_eigs = trainer.output_size(differences);
-    bob::learn::linear::Machine pca(input_dim, n_eigs);
-    blitz::Array<double,1> variances(n_eigs);
-    trainer.train(pca, variances, differences);
-
-    // compute rho
-    double rho = 0.;
-    int non_zero_eigenvalues = std::min(input_dim, data_count-1);
-    // assert that the number of kept eigenvalues is not chosen to big
-    if (subspace_dim >= non_zero_eigenvalues)
-      throw std::runtime_error((boost::format("The chosen subspace dimension %d is larger than the theoretical number of nonzero eigenvalues %d")%subspace_dim%non_zero_eigenvalues).str());
-    // compute the average of the reminding eigenvalues
-    for (int i = subspace_dim; i < non_zero_eigenvalues; ++i){
-      rho += variances(i);
-    }
-    rho /= non_zero_eigenvalues - subspace_dim;
-
-    // limit dimensionalities
-    pca.resize(input_dim, subspace_dim);
-    variances.resizeAndPreserve(subspace_dim);
-
-    // check that all variances are meaningful
-    for (int i = 0; i < subspace_dim; ++i){
-      if (variances(i) < 1e-12)
-        throw std::runtime_error((boost::format("The chosen subspace dimension is %d, but the %dth eigenvalue is already to small")%subspace_dim%i).str());
-    }
-
-    // initialize the machine
-    blitz::Array<double, 2> projection = pca.getWeights();
-    blitz::Array<double, 1> mean = pca.getInputSubtraction();
-    machine.setBIC(clazz, mean, variances, projection, rho);
-  } else {
-    // train the class using IEC
-    // => compute mean and variance only
-    blitz::Array<double,1> mean(input_dim), variance(input_dim);
-
-    // compute mean and variance
-    mean = 0.;
-    variance = 0.;
-    for (int n = data_count; n--;){
-      const blitz::Array<double,1>& diff = differences(n,a);
-      assert(diff.shape()[0] == input_dim);
-      for (int i = input_dim; i--;){
-        mean(i) += diff(i);
-        variance(i) += sqr(diff(i));
-      }
-    }
-    // normalize mean and variances
-    for (int i = 0; i < input_dim; ++i){
-      // intrapersonal
-      variance(i) = (variance(i) - sqr(mean(i)) / data_count) / (data_count - 1.);
-      mean(i) /= data_count;
-      if (variance(i) < 1e-12)
-        throw std::runtime_error((boost::format("The variance of the %dth dimension is too small. Check your data!")%i).str());
-    }
-
-    // set the results to the machine
-    machine.setIEC(clazz, mean, variance);
-  }
-}
diff --git a/bob/learn/misc/cpp/EMPCATrainer.cpp b/bob/learn/misc/cpp/EMPCATrainer.cpp
deleted file mode 100644
index 60dffc7..0000000
--- a/bob/learn/misc/cpp/EMPCATrainer.cpp
+++ /dev/null
@@ -1,418 +0,0 @@
-/**
- * @date Tue Oct 11 12:18:23 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <vector>
-#include <algorithm>
-#include <boost/random.hpp>
-#include <cmath>
-
-#include <bob.learn.misc/EMPCATrainer.h>
-#include <bob.core/array_copy.h>
-#include <bob.core/check.h>
-#include <bob.math/linear.h>
-#include <bob.math/det.h>
-#include <bob.math/inv.h>
-#include <bob.math/stats.h>
-
-bob::learn::misc::EMPCATrainer::EMPCATrainer(bool compute_likelihood):
-  m_compute_likelihood(compute_likelihood),
-  m_rng(new boost::mt19937()),
-  m_S(0,0),
-  m_z_first_order(0,0), m_z_second_order(0,0,0),
-  m_inW(0,0), m_invM(0,0), m_sigma2(0), m_f_log2pi(0),
-  m_tmp_dxf(0,0), m_tmp_d(0), m_tmp_f(0),
-  m_tmp_dxd_1(0,0), m_tmp_dxd_2(0,0),
-  m_tmp_fxd_1(0,0), m_tmp_fxd_2(0,0),
-  m_tmp_fxf_1(0,0), m_tmp_fxf_2(0,0)
-{
-}
-
-bob::learn::misc::EMPCATrainer::EMPCATrainer(const bob::learn::misc::EMPCATrainer& other):
-  m_compute_likelihood(other.m_compute_likelihood),
-  m_rng(other.m_rng),
-  m_S(bob::core::array::ccopy(other.m_S)),
-  m_z_first_order(bob::core::array::ccopy(other.m_z_first_order)),
-  m_z_second_order(bob::core::array::ccopy(other.m_z_second_order)),
-  m_inW(bob::core::array::ccopy(other.m_inW)),
-  m_invM(bob::core::array::ccopy(other.m_invM)),
-  m_sigma2(other.m_sigma2), m_f_log2pi(other.m_f_log2pi),
-  m_tmp_dxf(bob::core::array::ccopy(other.m_tmp_dxf)),
-  m_tmp_d(bob::core::array::ccopy(other.m_tmp_d)),
-  m_tmp_f(bob::core::array::ccopy(other.m_tmp_f)),
-  m_tmp_dxd_1(bob::core::array::ccopy(other.m_tmp_dxd_1)),
-  m_tmp_dxd_2(bob::core::array::ccopy(other.m_tmp_dxd_2)),
-  m_tmp_fxd_1(bob::core::array::ccopy(other.m_tmp_fxd_1)),
-  m_tmp_fxd_2(bob::core::array::ccopy(other.m_tmp_fxd_2)),
-  m_tmp_fxf_1(bob::core::array::ccopy(other.m_tmp_fxf_1)),
-  m_tmp_fxf_2(bob::core::array::ccopy(other.m_tmp_fxf_2))
-{
-}
-
-bob::learn::misc::EMPCATrainer::~EMPCATrainer()
-{
-}
-
-bob::learn::misc::EMPCATrainer& bob::learn::misc::EMPCATrainer::operator=
-  (const bob::learn::misc::EMPCATrainer& other)
-{
-  if (this != &other)
-  {
-    m_rng                   = other.m_rng;
-	m_compute_likelihood    = other.m_compute_likelihood;
-    m_S = bob::core::array::ccopy(other.m_S);
-    m_z_first_order = bob::core::array::ccopy(other.m_z_first_order);
-    m_z_second_order = bob::core::array::ccopy(other.m_z_second_order);
-    m_inW = bob::core::array::ccopy(other.m_inW);
-    m_invM = bob::core::array::ccopy(other.m_invM);
-    m_sigma2 = other.m_sigma2;
-    m_f_log2pi = other.m_f_log2pi;
-    m_tmp_dxf = bob::core::array::ccopy(other.m_tmp_dxf);
-    m_tmp_d = bob::core::array::ccopy(other.m_tmp_d);
-    m_tmp_f = bob::core::array::ccopy(other.m_tmp_f);
-    m_tmp_dxd_1 = bob::core::array::ccopy(other.m_tmp_dxd_1);
-    m_tmp_dxd_2 = bob::core::array::ccopy(other.m_tmp_dxd_2);
-    m_tmp_fxd_1 = bob::core::array::ccopy(other.m_tmp_fxd_1);
-    m_tmp_fxd_2 = bob::core::array::ccopy(other.m_tmp_fxd_2);
-    m_tmp_fxf_1 = bob::core::array::ccopy(other.m_tmp_fxf_1);
-    m_tmp_fxf_2 = bob::core::array::ccopy(other.m_tmp_fxf_2);
-  }
-  return *this;
-}
-
-bool bob::learn::misc::EMPCATrainer::operator==
-  (const bob::learn::misc::EMPCATrainer &other) const
-{
-  return m_compute_likelihood == other.m_compute_likelihood &&
-        m_rng                   == other.m_rng &&
-        bob::core::array::isEqual(m_S, other.m_S) &&
-        bob::core::array::isEqual(m_z_first_order, other.m_z_first_order) &&
-        bob::core::array::isEqual(m_z_second_order, other.m_z_second_order) &&
-        bob::core::array::isEqual(m_inW, other.m_inW) &&
-        bob::core::array::isEqual(m_invM, other.m_invM) &&
-        m_sigma2 == other.m_sigma2 &&
-        m_f_log2pi == other.m_f_log2pi;
-}
-
-bool bob::learn::misc::EMPCATrainer::operator!=
-  (const bob::learn::misc::EMPCATrainer &other) const
-{
-  return !(this->operator==(other));
-}
-
-bool bob::learn::misc::EMPCATrainer::is_similar_to
-  (const bob::learn::misc::EMPCATrainer &other, const double r_epsilon,
-   const double a_epsilon) const
-{
-  return m_compute_likelihood == other.m_compute_likelihood &&
-         m_rng                == other.m_rng &&
-         bob::core::array::isClose(m_S, other.m_S, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_z_first_order, other.m_z_first_order, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_z_second_order, other.m_z_second_order, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_inW, other.m_inW, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_invM, other.m_invM, r_epsilon, a_epsilon) &&
-         bob::core::isClose(m_sigma2, other.m_sigma2, r_epsilon, a_epsilon) &&
-         bob::core::isClose(m_f_log2pi, other.m_f_log2pi, r_epsilon, a_epsilon);
-}
-
-void bob::learn::misc::EMPCATrainer::initialize(bob::learn::linear::Machine& machine,
-  const blitz::Array<double,2>& ar)
-{
-  // reinitializes array members and checks dimensionality
-  initMembers(machine, ar);
-
-  // computes the mean and the covariance if required
-  computeMeanVariance(machine, ar);
-
-  // Random initialization of W and sigma2
-  initRandomWSigma2(machine);
-
-  // Computes the product m_inW = W^T.W
-  computeWtW(machine);
-  // Computes inverse(M), where M = Wt * W + sigma2 * Id
-  computeInvM();
-}
-
-
-void bob::learn::misc::EMPCATrainer::initMembers(
-  const bob::learn::linear::Machine& machine,
-  const blitz::Array<double,2>& ar)
-{
-  // Gets dimensions
-  const size_t n_samples = ar.extent(0);
-  const size_t n_features = ar.extent(1);
-
-  // Checks that the dimensions are matching
-  const size_t n_inputs = machine.inputSize();
-  const size_t n_outputs = machine.outputSize();
-
-  // Checks that the dimensions are matching
-  if (n_inputs != n_features) {
-    boost::format m("number of inputs (%u) does not match the number of features (%u)");
-    m % n_inputs % n_features;
-    throw std::runtime_error(m.str());
-  }
-
-  // Covariance matrix S is only required to compute the log likelihood
-  if (m_compute_likelihood)
-    m_S.resize(n_features,n_features);
-  else
-    m_S.resize(0,0);
-  m_z_first_order.resize(n_samples, n_outputs);
-  m_z_second_order.resize(n_samples, n_outputs, n_outputs);
-  m_inW.resize(n_outputs, n_outputs);
-  m_invM.resize(n_outputs, n_outputs);
-  m_sigma2 = 0.;
-  m_f_log2pi = n_features * log(2*M_PI);
-
-  // Cache
-  m_tmp_dxf.resize(n_outputs, n_features);
-  m_tmp_d.resize(n_outputs);
-  m_tmp_f.resize(n_features);
-  m_tmp_dxd_1.resize(n_outputs, n_outputs);
-  m_tmp_dxd_2.resize(n_outputs, n_outputs);
-  m_tmp_fxd_1.resize(n_features, n_outputs);
-  m_tmp_fxd_2.resize(n_features, n_outputs);
-  // The following large cache matrices are only required to compute the
-  // log likelihood.
-  if (m_compute_likelihood)
-  {
-    m_tmp_fxf_1.resize(n_features, n_features);
-    m_tmp_fxf_2.resize(n_features, n_features);
-  }
-  else
-  {
-    m_tmp_fxf_1.resize(0,0);
-    m_tmp_fxf_2.resize(0,0);
-  }
-}
-
-void bob::learn::misc::EMPCATrainer::computeMeanVariance(bob::learn::linear::Machine& machine,
-  const blitz::Array<double,2>& ar)
-{
-  size_t n_samples = ar.extent(0);
-  blitz::Array<double,1> mu = machine.updateInputSubtraction();
-  blitz::Range all = blitz::Range::all();
-  if (m_compute_likelihood)
-  {
-    // Mean and scatter computation
-    bob::math::scatter(ar, m_S, mu);
-    // divides scatter by N-1
-    m_S /= static_cast<double>(n_samples-1);
-  }
-  else
-  {
-    // computes the mean and updates mu
-    mu = 0.;
-    for (size_t i=0; i<n_samples; ++i)
-      mu += ar(i,all);
-    mu /= static_cast<double>(n_samples);
-  }
-}
-
-void bob::learn::misc::EMPCATrainer::initRandomWSigma2(bob::learn::linear::Machine& machine)
-{
-  // Initializes the random number generator
-  boost::uniform_01<> range01;
-  boost::variate_generator<boost::mt19937&, boost::uniform_01<> > die(*m_rng, range01);
-
-  // W initialization (TODO: add method in core)
-  blitz::Array<double,2> W = machine.updateWeights();
-  double ratio = 2.; /// Follows matlab implementation using a ratio of 2
-  for (int i=0; i<W.extent(0); ++i)
-    for (int j=0; j<W.extent(1); ++j)
-      W(i,j) = die() * ratio;
-  // sigma2 initialization
-  m_sigma2 = die() * ratio;
-}
-
-void bob::learn::misc::EMPCATrainer::computeWtW(bob::learn::linear::Machine& machine)
-{
-  const blitz::Array<double,2> W = machine.getWeights();
-  const blitz::Array<double,2> Wt = W.transpose(1,0);
-  bob::math::prod(Wt, W, m_inW);
-}
-
-void bob::learn::misc::EMPCATrainer::computeInvM()
-{
-  // Compute inverse(M), where M = W^T * W + sigma2 * Id
-  bob::math::eye(m_tmp_dxd_1); // m_tmp_dxd_1 = Id
-  m_tmp_dxd_1 *= m_sigma2; // m_tmp_dxd_1 = sigma2 * Id
-  m_tmp_dxd_1 += m_inW; // m_tmp_dxd_1 = M = W^T * W + sigma2 * Id
-  bob::math::inv(m_tmp_dxd_1, m_invM); // m_invM = inv(M)
-}
-
-
-
-void bob::learn::misc::EMPCATrainer::eStep(bob::learn::linear::Machine& machine, const blitz::Array<double,2>& ar)
-{
-  // Gets mu and W from the machine
-  const blitz::Array<double,1>& mu = machine.getInputSubtraction();
-  const blitz::Array<double,2>& W = machine.getWeights();
-  const blitz::Array<double,2> Wt = W.transpose(1,0); // W^T
-
-  // Computes the statistics
-  blitz::Range a = blitz::Range::all();
-  for(int i=0; i<ar.extent(0); ++i)
-  {
-    /// 1/ First order statistics: \f$z_first_order_i = inv(M) W^T (t - \mu)\f$
-    // m_tmp_f = t (sample) - mu (normalized sample)
-    m_tmp_f = ar(i,a) - mu;
-    // m_tmp_dxf = inv(M) * W^T
-    bob::math::prod(m_invM, Wt, m_tmp_dxf);
-    blitz::Array<double,1> z_first_order_i = m_z_first_order(i,blitz::Range::all());
-    // z_first_order_i = inv(M) * W^T * (t - mu)
-    bob::math::prod(m_tmp_dxf, m_tmp_f, z_first_order_i);
-
-    /// 2/ Second order statistics:
-    ///     z_second_order_i = sigma2 * inv(M) + z_first_order_i * z_first_order_i^T
-    blitz::Array<double,2> z_second_order_i = m_z_second_order(i,blitz::Range::all(),blitz::Range::all());
-    // m_tmp_dxd = z_first_order_i * z_first_order_i^T
-    bob::math::prod(z_first_order_i, z_first_order_i, m_tmp_dxd_1); // outer product
-    // z_second_order_i = sigma2 * inv(M)
-    z_second_order_i = m_invM;
-    z_second_order_i *= m_sigma2;
-    // z_second_order_i = sigma2 * inv(M) + z_first_order_i * z_first_order_i^T
-    z_second_order_i += m_tmp_dxd_1;
-  }
-}
-
-void bob::learn::misc::EMPCATrainer::mStep(bob::learn::linear::Machine& machine, const blitz::Array<double,2>& ar)
-{
-  // 1/ New estimate of W
-  updateW(machine, ar);
-
-  // 2/ New estimate of sigma2
-  updateSigma2(machine, ar);
-
-  // Computes the new value of inverse(M), where M = Wt * W + sigma2 * Id
-  computeInvM();
-}
-
-void bob::learn::misc::EMPCATrainer::updateW(bob::learn::linear::Machine& machine, const blitz::Array<double,2>& ar) {
-  // Get the mean mu and the projection matrix W
-  const blitz::Array<double,1>& mu = machine.getInputSubtraction();
-  blitz::Array<double,2>& W = machine.updateWeights();
-  const blitz::Array<double,2> Wt = W.transpose(1,0); // W^T
-
-  // Compute W = sum{ (t_{i} - mu) z_first_order_i^T} * inv( sum{z_second_order_i} )
-  m_tmp_fxd_1 = 0.;
-  m_tmp_dxd_1 = 0.;
-  blitz::Range a = blitz::Range::all();
-  for(int i=0; i<ar.extent(0); ++i)
-  {
-    // m_tmp_f = t (sample) - mu (normalized sample)
-    m_tmp_f = ar(i,a) - mu;
-    // first order statistics of sample i
-    blitz::Array<double,1> z_first_order_i = m_z_first_order(i,blitz::Range::all());
-    // m_tmp_fxd_2 = (t - mu)*z_first_order_i
-    bob::math::prod(m_tmp_f, z_first_order_i, m_tmp_fxd_2);
-    m_tmp_fxd_1 += m_tmp_fxd_2;
-
-    // second order statistics of sample i
-    blitz::Array<double,2> z_second_order_i = m_z_second_order(i,blitz::Range::all(),blitz::Range::all());
-    m_tmp_dxd_1 += z_second_order_i;
-  }
-
-  // m_tmp_dxd_2 = inv( sum(E(x_i.x_i^T)) )
-  bob::math::inv(m_tmp_dxd_1, m_tmp_dxd_2);
-  // New estimates of W
-  bob::math::prod(m_tmp_fxd_1, m_tmp_dxd_2, W);
-  // Updates W'*W as well
-  bob::math::prod(Wt, W, m_inW);
-}
-
-void bob::learn::misc::EMPCATrainer::updateSigma2(bob::learn::linear::Machine& machine, const blitz::Array<double,2>& ar) {
-  // Get the mean mu and the projection matrix W
-  const blitz::Array<double,1>& mu = machine.getInputSubtraction();
-  const blitz::Array<double,2>& W = machine.getWeights();
-  const blitz::Array<double,2> Wt = W.transpose(1,0); // W^T
-
-  m_sigma2 = 0.;
-  blitz::Range a = blitz::Range::all();
-  for(int i=0; i<ar.extent(0); ++i)
-  {
-    // a. sigma2 += || t - mu ||^2
-    // m_tmp_f = t (sample) - mu (normalized sample)
-    m_tmp_f = ar(i,a) - mu;
-    // sigma2 += || t - mu ||^2
-    m_sigma2 += blitz::sum(blitz::pow2(m_tmp_f));
-
-    // b. sigma2 -= 2*E(x_i)^T*W^T*(t - mu)
-    // m_tmp_d = W^T*(t - mu)
-    bob::math::prod(Wt, m_tmp_f, m_tmp_d);
-    // first order of i
-    blitz::Array<double,1> z_first_order_i = m_z_first_order(i,blitz::Range::all());
-    // sigma2 -= 2*E(x_i)^T*W^T*(t - mu)
-    m_sigma2 -= 2*bob::math::dot(z_first_order_i, m_tmp_d);
-
-    // c. sigma2 += trace( E(x_i.x_i^T)*W^T*W )
-    // second order of i
-    blitz::Array<double,2> z_second_order_i = m_z_second_order(i,blitz::Range::all(),blitz::Range::all());
-    // m_tmp_dxd_1 = E(x_i.x_i^T)*W^T*W
-    bob::math::prod(z_second_order_i, m_inW, m_tmp_dxd_1);
-    // sigma2 += trace( E(x_i.x_i^T)*W^T*W )
-    m_sigma2 += bob::math::trace(m_tmp_dxd_1);
-  }
-  // Normalization factor
-  m_sigma2 /= (static_cast<double>(ar.extent(0)) * mu.extent(0));
-}
-
-double bob::learn::misc::EMPCATrainer::computeLikelihood(bob::learn::linear::Machine& machine)
-{
-  // Get W projection matrix
-  const blitz::Array<double,2>& W = machine.getWeights();
-  const blitz::Array<double,2> Wt = W.transpose(1,0); // W^T
-  const size_t n_features = m_S.extent(0);
-
-  // 1/ Compute det(C), where C = sigma2.I + W.W^T
-  //            det(C) = det(sigma2 * C / sigma2) = det(sigma2 * Id) * det(C / sigma2)
-  //    We are using Sylvester's determinant theorem to compute a dxd
-  //    determinant rather than a fxf one: det(I + A.B) = det(I + B.A)
-  //            det(C) = sigma2^n_features * det(I + W.W^T/sigma2)
-  //                   = sigma2^n_features * det(I + W^T.W/sigma2) (cf. Bishop Appendix C)
-  // detC = det( eye(n_features) * sigma2 )
-
-  // detC = sigma2^n_features
-  double detC = pow(m_sigma2, n_features);
-  // m_tmp_dxd_1 = Id
-  bob::math::eye(m_tmp_dxd_1);
-  // m_tmp_dxd_2 = W^T.W
-  bob::math::prod(Wt, W, m_tmp_dxd_2);
-  // m_tmp_dxd_2 = W^T.W / sigma2
-  m_tmp_dxd_2 /= m_sigma2;
-  // m_tmp_dxd_1 = Id + W^T.W / sigma2
-  m_tmp_dxd_1 += m_tmp_dxd_2;
-  // detC = sigma2^n_features * det(I + W^T.W/sigma2)
-  detC *= bob::math::det(m_tmp_dxd_1);
-
-  // 2/ Compute inv(C), where C = sigma2.I + W.W^T
-  //    We are using the following identity (Property C.7 of Bishop's book)
-  //      (A + B.D^-1.C)^-1 = A^-1 - A^-1.B(D+C.A^-1.B)^-1.C.A^-1
-  //    Hence, inv(C) = sigma2^-1 .(I - W.M^-1.W^T)
-
-  // Compute inverse(M), where M = Wt * W + sigma2 * Id
-  computeInvM();
-  // m_tmp_fxf_1 = I = eye(n_features)
-  bob::math::eye(m_tmp_fxf_1);
-  // m_tmp_fxd_1 = W * inv(M)
-  bob::math::prod(W, m_invM, m_tmp_fxd_1);
-  // m_tmp_fxf_2 = (W * inv(M) * Wt)
-  bob::math::prod(m_tmp_fxd_1, Wt, m_tmp_fxf_2);
-  // m_tmp_fxd_1 = inv(C) = (I - W.M^-1.W^T) / sigma2
-  m_tmp_fxf_1 -= m_tmp_fxf_2;
-  m_tmp_fxf_1 /= m_sigma2;
-
-  // 3/ Compute inv(C).S
-  bob::math::prod(m_tmp_fxf_1, m_S, m_tmp_fxf_2);
-
-  // 4/ Use previous values to compute the log likelihood:
-  // Log likelihood =  - N/2*{ d*ln(2*PI) + ln |detC| + tr(C^-1.S) }
-  double llh = - static_cast<double>(m_z_first_order.extent(0)) / 2. *
-    ( m_f_log2pi + log(fabs(detC)) + bob::math::trace(m_tmp_fxf_2) );
-
-  return llh;
-}
diff --git a/bob/learn/misc/cpp/FABase.cpp b/bob/learn/misc/cpp/FABase.cpp
deleted file mode 100644
index dab2aeb..0000000
--- a/bob/learn/misc/cpp/FABase.cpp
+++ /dev/null
@@ -1,307 +0,0 @@
-/**
- * @date Tue Jan 27 15:51:15 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-
-#include <bob.learn.misc/FABase.h>
-#include <bob.core/array_copy.h>
-#include <bob.math/linear.h>
-#include <bob.math/inv.h>
-#include <limits>
-
-
-//////////////////// FABase ////////////////////
-bob::learn::misc::FABase::FABase():
-  m_ubm(boost::shared_ptr<bob::learn::misc::GMMMachine>()), m_ru(1), m_rv(1),
-  m_U(0,1), m_V(0,1), m_d(0)
-{}
-
-bob::learn::misc::FABase::FABase(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm,
-    const size_t ru, const size_t rv):
-  m_ubm(ubm), m_ru(ru), m_rv(rv),
-  m_U(getSupervectorLength(),ru), m_V(getSupervectorLength(),rv), m_d(getSupervectorLength())
-{
-  if (ru < 1) {
-    boost::format m("value for parameter `ru' (%lu) cannot be smaller than 1");
-    m % ru;
-    throw std::runtime_error(m.str());
-  }
-  if (rv < 1) {
-    boost::format m("value for parameter `rv' (%lu) cannot be smaller than 1");
-    m % ru;
-    throw std::runtime_error(m.str());
-  }
-  updateCache();
-}
-
-bob::learn::misc::FABase::FABase(const bob::learn::misc::FABase& other):
-  m_ubm(other.m_ubm), m_ru(other.m_ru), m_rv(other.m_rv),
-  m_U(bob::core::array::ccopy(other.m_U)),
-  m_V(bob::core::array::ccopy(other.m_V)),
-  m_d(bob::core::array::ccopy(other.m_d))
-{
-  updateCache();
-}
-
-bob::learn::misc::FABase::~FABase() {
-}
-
-bob::learn::misc::FABase& bob::learn::misc::FABase::operator=
-(const bob::learn::misc::FABase& other)
-{
-  if (this != &other)
-  {
-    m_ubm = other.m_ubm;
-    m_ru = other.m_ru;
-    m_rv = other.m_rv;
-    m_U.reference(bob::core::array::ccopy(other.m_U));
-    m_V.reference(bob::core::array::ccopy(other.m_V));
-    m_d.reference(bob::core::array::ccopy(other.m_d));
-
-    updateCache();
-  }
-  return *this;
-}
-
-bool bob::learn::misc::FABase::operator==(const bob::learn::misc::FABase& b) const
-{
-  return ( (((m_ubm && b.m_ubm) && *m_ubm == *(b.m_ubm)) || (!m_ubm && !b.m_ubm)) &&
-          m_ru == b.m_ru && m_rv == b.m_rv &&
-          bob::core::array::isEqual(m_U, b.m_U) &&
-          bob::core::array::isEqual(m_V, b.m_V) &&
-          bob::core::array::isEqual(m_d, b.m_d));
-}
-
-bool bob::learn::misc::FABase::operator!=(const bob::learn::misc::FABase& b) const
-{
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::FABase::is_similar_to(const bob::learn::misc::FABase& b,
-    const double r_epsilon, const double a_epsilon) const
-{
-  // TODO: update is_similar_to of the GMMMachine with the 2 epsilon's
-  return (( ((m_ubm && b.m_ubm) && m_ubm->is_similar_to(*(b.m_ubm), a_epsilon)) ||
-            (!m_ubm && !b.m_ubm) ) &&
-          m_ru == b.m_ru && m_rv == b.m_rv &&
-          bob::core::array::isClose(m_U, b.m_U, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_V, b.m_V, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_d, b.m_d, r_epsilon, a_epsilon));
-}
-
-void bob::learn::misc::FABase::resize(const size_t ru, const size_t rv)
-{
-  if (ru < 1) {
-    boost::format m("value for parameter `ru' (%lu) cannot be smaller than 1");
-    m % ru;
-    throw std::runtime_error(m.str());
-  }
-  if (rv < 1) {
-    boost::format m("value for parameter `rv' (%lu) cannot be smaller than 1");
-    m % ru;
-    throw std::runtime_error(m.str());
-  }
-
-  m_ru = ru;
-  m_rv = rv;
-  m_U.resizeAndPreserve(m_U.extent(0), ru);
-  m_V.resizeAndPreserve(m_V.extent(0), rv);
-
-  updateCacheUbmUVD();
-}
-
-void bob::learn::misc::FABase::resize(const size_t ru, const size_t rv, const size_t cd)
-{
-  if (ru < 1) {
-    boost::format m("value for parameter `ru' (%lu) cannot be smaller than 1");
-    m % ru;
-    throw std::runtime_error(m.str());
-  }
-  if (rv < 1) {
-    boost::format m("value for parameter `rv' (%lu) cannot be smaller than 1");
-    m % ru;
-    throw std::runtime_error(m.str());
-  }
-
-  if (!m_ubm || (m_ubm && getSupervectorLength() == cd))
-  {
-    m_ru = ru;
-    m_rv = rv;
-    m_U.resizeAndPreserve(cd, ru);
-    m_V.resizeAndPreserve(cd, rv);
-    m_d.resizeAndPreserve(cd);
-
-    updateCacheUbmUVD();
-  }
-  else {
-    boost::format m("value for parameter `cd' (%lu) is not set to %lu");
-    m % cd % getSupervectorLength();
-    throw std::runtime_error(m.str());
-  }
-}
-
-void bob::learn::misc::FABase::setUbm(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm)
-{
-  m_ubm = ubm;
-  m_U.resizeAndPreserve(getSupervectorLength(), m_ru);
-  m_V.resizeAndPreserve(getSupervectorLength(), m_rv);
-  m_d.resizeAndPreserve(getSupervectorLength());
-
-  updateCache();
-}
-
-void bob::learn::misc::FABase::setU(const blitz::Array<double,2>& U)
-{
-  if(U.extent(0) != m_U.extent(0)) { //checks dimension
-    boost::format m("number of rows in parameter `U' (%d) does not match the expected size (%d)");
-    m % U.extent(0) % m_U.extent(0);
-    throw std::runtime_error(m.str());
-  }
-  if(U.extent(1) != m_U.extent(1)) { //checks dimension
-    boost::format m("number of columns in parameter `U' (%d) does not match the expected size (%d)");
-    m % U.extent(1) % m_U.extent(1);
-    throw std::runtime_error(m.str());
-  }
-  m_U.reference(bob::core::array::ccopy(U));
-
-  // update cache
-  updateCacheUbmUVD();
-}
-
-void bob::learn::misc::FABase::setV(const blitz::Array<double,2>& V)
-{
-  if(V.extent(0) != m_V.extent(0)) { //checks dimension
-    boost::format m("number of rows in parameter `V' (%d) does not match the expected size (%d)");
-    m % V.extent(0) % m_V.extent(0);
-    throw std::runtime_error(m.str());
-  }
-  if(V.extent(1) != m_V.extent(1)) { //checks dimension
-    boost::format m("number of columns in parameter `V' (%d) does not match the expected size (%d)");
-    m % V.extent(1) % m_V.extent(1);
-    throw std::runtime_error(m.str());
-  }
-  m_V.reference(bob::core::array::ccopy(V));
-}
-
-void bob::learn::misc::FABase::setD(const blitz::Array<double,1>& d)
-{
-  if(d.extent(0) != m_d.extent(0)) { //checks dimension
-    boost::format m("size of input vector `d' (%d) does not match the expected size (%d)");
-    m % d.extent(0) % m_d.extent(0);
-    throw std::runtime_error(m.str());
-  }
-  m_d.reference(bob::core::array::ccopy(d));
-}
-
-
-void bob::learn::misc::FABase::updateCache()
-{
-  updateCacheUbm();
-  updateCacheUbmUVD();
-  resizeTmp();
-}
-
-void bob::learn::misc::FABase::resizeTmp()
-{
-  m_tmp_IdPlusUSProdInv.resize(getDimRu(),getDimRu());
-  m_tmp_Fn_x.resize(getSupervectorLength());
-  m_tmp_ru.resize(getDimRu());
-  m_tmp_ruD.resize(getDimRu(), getNInputs());
-  m_tmp_ruru.resize(getDimRu(), getDimRu());
-}
-
-void bob::learn::misc::FABase::updateCacheUbm()
-{
-  // Put supervectors in cache
-  if (m_ubm)
-  {
-    m_cache_mean.resize(getSupervectorLength());
-    m_cache_sigma.resize(getSupervectorLength());
-    m_cache_mean  = m_ubm->getMeanSupervector();
-    m_cache_sigma = m_ubm->getVarianceSupervector();
-  }
-}
-
-void bob::learn::misc::FABase::updateCacheUbmUVD()
-{
-  // Compute and put  U^{T}.diag(sigma)^{-1} in cache
-  if (m_ubm)
-  {
-    blitz::firstIndex i;
-    blitz::secondIndex j;
-    m_cache_UtSigmaInv.resize(getDimRu(), getSupervectorLength());
-    m_cache_UtSigmaInv = m_U(j,i) / m_cache_sigma(j); // Ut * diag(sigma)^-1
-  }
-}
-
-void bob::learn::misc::FABase::computeIdPlusUSProdInv(const bob::learn::misc::GMMStats& gmm_stats,
-  blitz::Array<double,2>& output) const
-{
-  // Computes (Id + U^T.Sigma^-1.U.N_{i,h}.U)^-1 =
-  // (Id + sum_{c=1..C} N_{i,h}.U_{c}^T.Sigma_{c}^-1.U_{c})^-1
-
-  // Blitz compatibility: ugly fix (const_cast, as old blitz version does not
-  // provide a non-const version of transpose())
-  blitz::Array<double,2> Ut = const_cast<blitz::Array<double,2>&>(m_U).transpose(1,0);
-
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  blitz::Range rall = blitz::Range::all();
-
-  bob::math::eye(m_tmp_ruru); // m_tmp_ruru = Id
-  // Loop and add N_{i,h}.U_{c}^T.Sigma_{c}^-1.U_{c} to m_tmp_ruru at each iteration
-  const size_t dim_c = getNGaussians();
-  const size_t dim_d = getNInputs();
-  for(size_t c=0; c<dim_c; ++c) {
-    blitz::Range rc(c*dim_d,(c+1)*dim_d-1);
-    blitz::Array<double,2> Ut_c = Ut(rall,rc);
-    blitz::Array<double,1> sigma_c = m_cache_sigma(rc);
-    m_tmp_ruD = Ut_c(i,j) / sigma_c(j); // U_{c}^T.Sigma_{c}^-1
-    blitz::Array<double,2> U_c = m_U(rc,rall);
-    // Use m_cache_IdPlusUSProdInv as an intermediate array
-    bob::math::prod(m_tmp_ruD, U_c, output); // U_{c}^T.Sigma_{c}^-1.U_{c}
-    // Finally, add N_{i,h}.U_{c}^T.Sigma_{c}^-1.U_{c} to m_tmp_ruru
-    m_tmp_ruru += output * gmm_stats.n(c);
-  }
-  // Computes the inverse
-  bob::math::inv(m_tmp_ruru, output);
-}
-
-
-void bob::learn::misc::FABase::computeFn_x(const bob::learn::misc::GMMStats& gmm_stats,
-  blitz::Array<double,1>& output) const
-{
-  // Compute Fn_x = sum_{sessions h}(N*(o - m) (Normalised first order statistics)
-  blitz::Range rall = blitz::Range::all();
-  const size_t dim_c = getNGaussians();
-  const size_t dim_d = getNInputs();
-  for(size_t c=0; c<dim_c; ++c) {
-    blitz::Range rc(c*dim_d,(c+1)*dim_d-1);
-    blitz::Array<double,1> Fn_x_c = output(rc);
-    blitz::Array<double,1> mean_c = m_cache_mean(rc);
-    Fn_x_c = gmm_stats.sumPx(c,rall) - mean_c*gmm_stats.n(c);
-  }
-}
-
-void bob::learn::misc::FABase::estimateX(const blitz::Array<double,2>& IdPlusUSProdInv,
-  const blitz::Array<double,1>& Fn_x, blitz::Array<double,1>& x) const
-{
-  // m_tmp_ru = UtSigmaInv * Fn_x = Ut*diag(sigma)^-1 * N*(o - m)
-  bob::math::prod(m_cache_UtSigmaInv, Fn_x, m_tmp_ru);
-  // x = IdPlusUSProdInv * m_cache_UtSigmaInv * Fn_x
-  bob::math::prod(IdPlusUSProdInv, m_tmp_ru, x);
-}
-
-
-void bob::learn::misc::FABase::estimateX(const bob::learn::misc::GMMStats& gmm_stats, blitz::Array<double,1>& x) const
-{
-  if (!m_ubm) throw std::runtime_error("No UBM was set in the JFA machine.");
-  computeIdPlusUSProdInv(gmm_stats, m_tmp_IdPlusUSProdInv); // Computes first term
-  computeFn_x(gmm_stats, m_tmp_Fn_x); // Computes last term
-  estimateX(m_tmp_IdPlusUSProdInv, m_tmp_Fn_x, x); // Estimates the value of x
-}
-
diff --git a/bob/learn/misc/cpp/FABaseTrainer.cpp b/bob/learn/misc/cpp/FABaseTrainer.cpp
deleted file mode 100644
index 5827859..0000000
--- a/bob/learn/misc/cpp/FABaseTrainer.cpp
+++ /dev/null
@@ -1,547 +0,0 @@
-/**
- * @date Sat Jan 31 17:16:17 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief FABaseTrainer functions
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/FABaseTrainer.h>
-#include <bob.core/check.h>
-#include <bob.core/array_copy.h>
-#include <bob.core/array_random.h>
-#include <bob.math/inv.h>
-#include <bob.math/linear.h>
-#include <bob.core/check.h>
-#include <bob.core/array_repmat.h>
-#include <algorithm>
-
-
-bob::learn::misc::FABaseTrainer::FABaseTrainer():
-  m_Nid(0), m_dim_C(0), m_dim_D(0), m_dim_ru(0), m_dim_rv(0),
-  m_x(0), m_y(0), m_z(0), m_Nacc(0), m_Facc(0)
-{
-}
-
-bob::learn::misc::FABaseTrainer::FABaseTrainer(const bob::learn::misc::FABaseTrainer& other)
-{
-}
-
-bob::learn::misc::FABaseTrainer::~FABaseTrainer()
-{
-}
-
-void bob::learn::misc::FABaseTrainer::checkStatistics(
-  const bob::learn::misc::FABase& m,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  for (size_t id=0; id<stats.size(); ++id) {
-    for (size_t s=0; s<stats[id].size(); ++s) {
-      if (stats[id][s]->sumPx.extent(0) != (int)m_dim_C) {
-        boost::format m("GMMStats C dimension parameter = %d is different than the expected value of %d");
-        m % stats[id][s]->sumPx.extent(0) % (int)m_dim_C;
-        throw std::runtime_error(m.str());
-      }
-      if (stats[id][s]->sumPx.extent(1) != (int)m_dim_D) {
-        boost::format m("GMMStats D dimension parameter = %d is different than the expected value of %d");
-        m % stats[id][s]->sumPx.extent(1) % (int)m_dim_D;
-        throw std::runtime_error(m.str());
-      }
-    }
-  }
-}
-
-
-void bob::learn::misc::FABaseTrainer::initUbmNidSumStatistics(
-  const bob::learn::misc::FABase& m,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  m_Nid = stats.size();
-  boost::shared_ptr<bob::learn::misc::GMMMachine> ubm = m.getUbm();
-  // Put UBM in cache
-  m_dim_C = ubm->getNGaussians();
-  m_dim_D = ubm->getNInputs();
-  m_dim_ru = m.getDimRu();
-  m_dim_rv = m.getDimRv();
-  // Check statistics dimensionality
-  checkStatistics(m, stats);
-  // Precomputes the sum of the statistics for each client/identity
-  precomputeSumStatisticsN(stats);
-  precomputeSumStatisticsF(stats);
-  // Cache and working arrays
-  initCache();
-}
-
-void bob::learn::misc::FABaseTrainer::precomputeSumStatisticsN(
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  m_Nacc.clear();
-  blitz::Array<double,1> Nsum(m_dim_C);
-  for (size_t id=0; id<stats.size(); ++id) {
-    Nsum = 0.;
-    for (size_t s=0; s<stats[id].size(); ++s) {
-      Nsum += stats[id][s]->n;
-    }
-    m_Nacc.push_back(bob::core::array::ccopy(Nsum));
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::precomputeSumStatisticsF(
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  m_Facc.clear();
-  blitz::Array<double,1> Fsum(m_dim_C*m_dim_D);
-  for (size_t id=0; id<stats.size(); ++id) {
-    Fsum = 0.;
-    for (size_t s=0; s<stats[id].size(); ++s) {
-      for (size_t c=0; c<m_dim_C; ++c) {
-        blitz::Array<double,1> Fsum_c = Fsum(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1));
-        Fsum_c += stats[id][s]->sumPx(c,blitz::Range::all());
-      }
-    }
-    m_Facc.push_back(bob::core::array::ccopy(Fsum));
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::initializeXYZ(const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& vec)
-{
-  m_x.clear();
-  m_y.clear();
-  m_z.clear();
-
-  blitz::Array<double,1> z0(m_dim_C*m_dim_D);
-  z0 = 0;
-  blitz::Array<double,1> y0(m_dim_rv);
-  y0 = 0;
-  blitz::Array<double,2> x0(m_dim_ru,0);
-  x0 = 0;
-  for (size_t i=0; i<vec.size(); ++i)
-  {
-    m_z.push_back(bob::core::array::ccopy(z0));
-    m_y.push_back(bob::core::array::ccopy(y0));
-    x0.resize(m_dim_ru, vec[i].size());
-    x0 = 0;
-    m_x.push_back(bob::core::array::ccopy(x0));
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::resetXYZ()
-{
-  for (size_t i=0; i<m_x.size(); ++i)
-  {
-    m_x[i] = 0.;
-    m_y[i] = 0.;
-    m_z[i] = 0.;
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::initCache()
-{
-  const size_t dim_CD = m_dim_C*m_dim_D;
-  // U
-  m_cache_UtSigmaInv.resize(m_dim_ru, dim_CD);
-  m_cache_UProd.resize(m_dim_C, m_dim_ru, m_dim_ru);
-  m_cache_IdPlusUProd_ih.resize(m_dim_ru, m_dim_ru);
-  m_cache_Fn_x_ih.resize(dim_CD);
-  m_acc_U_A1.resize(m_dim_C, m_dim_ru, m_dim_ru);
-  m_acc_U_A2.resize(dim_CD, m_dim_ru);
-  // V
-  m_cache_VtSigmaInv.resize(m_dim_rv, dim_CD);
-  m_cache_VProd.resize(m_dim_C, m_dim_rv, m_dim_rv);
-  m_cache_IdPlusVProd_i.resize(m_dim_rv, m_dim_rv);
-  m_cache_Fn_y_i.resize(dim_CD);
-  m_acc_V_A1.resize(m_dim_C, m_dim_rv, m_dim_rv);
-  m_acc_V_A2.resize(dim_CD, m_dim_rv);
-  // D
-  m_cache_DtSigmaInv.resize(dim_CD);
-  m_cache_DProd.resize(dim_CD);
-  m_cache_IdPlusDProd_i.resize(dim_CD);
-  m_cache_Fn_z_i.resize(dim_CD);
-  m_acc_D_A1.resize(dim_CD);
-  m_acc_D_A2.resize(dim_CD);
-
-  // tmp
-  m_tmp_CD.resize(dim_CD);
-  m_tmp_CD_b.resize(dim_CD);
-
-  m_tmp_ru.resize(m_dim_ru);
-  m_tmp_ruD.resize(m_dim_ru, m_dim_D);
-  m_tmp_ruru.resize(m_dim_ru, m_dim_ru);
-
-  m_tmp_rv.resize(m_dim_rv);
-  m_tmp_rvD.resize(m_dim_rv, m_dim_D);
-  m_tmp_rvrv.resize(m_dim_rv, m_dim_rv);
-}
-
-
-
-//////////////////////////// V ///////////////////////////
-void bob::learn::misc::FABaseTrainer::computeVtSigmaInv(const bob::learn::misc::FABase& m)
-{
-  const blitz::Array<double,2>& V = m.getV();
-  // Blitz compatibility: ugly fix (const_cast, as old blitz version does not
-  // provide a non-const version of transpose())
-  const blitz::Array<double,2> Vt = const_cast<blitz::Array<double,2>&>(V).transpose(1,0);
-  const blitz::Array<double,1>& sigma = m.getUbmVariance();
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  m_cache_VtSigmaInv = Vt(i,j) / sigma(j); // Vt * diag(sigma)^-1
-}
-
-void bob::learn::misc::FABaseTrainer::computeVProd(const bob::learn::misc::FABase& m)
-{
-  const blitz::Array<double,2>& V = m.getV();
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  const blitz::Array<double,1>& sigma = m.getUbmVariance();
-  blitz::Range rall = blitz::Range::all();
-  for (size_t c=0; c<m_dim_C; ++c)
-  {
-    blitz::Array<double,2> VProd_c = m_cache_VProd(c, rall, rall);
-    blitz::Array<double,2> Vv_c = V(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1), rall);
-    blitz::Array<double,2> Vt_c = Vv_c.transpose(1,0);
-    blitz::Array<double,1> sigma_c = sigma(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1));
-    m_tmp_rvD = Vt_c(i,j) / sigma_c(j); // Vt_c * diag(sigma)^-1
-    bob::math::prod(m_tmp_rvD, Vv_c, VProd_c);
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::computeIdPlusVProd_i(const size_t id)
-{
-  const blitz::Array<double,1>& Ni = m_Nacc[id];
-  bob::math::eye(m_tmp_rvrv); // m_tmp_rvrv = I
-  blitz::Range rall = blitz::Range::all();
-  for (size_t c=0; c<m_dim_C; ++c) {
-    blitz::Array<double,2> VProd_c = m_cache_VProd(c, rall, rall);
-    m_tmp_rvrv += VProd_c * Ni(c);
-  }
-  bob::math::inv(m_tmp_rvrv, m_cache_IdPlusVProd_i); // m_cache_IdPlusVProd_i = ( I+Vt*diag(sigma)^-1*Ni*V)^-1
-}
-
-void bob::learn::misc::FABaseTrainer::computeFn_y_i(const bob::learn::misc::FABase& mb,
-  const std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& stats, const size_t id)
-{
-  const blitz::Array<double,2>& U = mb.getU();
-  const blitz::Array<double,1>& d = mb.getD();
-  // Compute Fn_yi = sum_{sessions h}(N_{i,h}*(o_{i,h} - m - D*z_{i} - U*x_{i,h}) (Normalised first order statistics)
-  const blitz::Array<double,1>& Fi = m_Facc[id];
-  const blitz::Array<double,1>& m = mb.getUbmMean();
-  const blitz::Array<double,1>& z = m_z[id];
-  bob::core::array::repelem(m_Nacc[id], m_tmp_CD);
-  m_cache_Fn_y_i = Fi - m_tmp_CD * (m + d * z); // Fn_yi = sum_{sessions h}(N_{i,h}*(o_{i,h} - m - D*z_{i})
-  const blitz::Array<double,2>& X = m_x[id];
-  blitz::Range rall = blitz::Range::all();
-  for (int h=0; h<X.extent(1); ++h) // Loops over the sessions
-  {
-    blitz::Array<double,1> Xh = X(rall, h); // Xh = x_{i,h} (length: ru)
-    bob::math::prod(U, Xh, m_tmp_CD_b); // m_tmp_CD_b = U*x_{i,h}
-    const blitz::Array<double,1>& Nih = stats[h]->n;
-    bob::core::array::repelem(Nih, m_tmp_CD);
-    m_cache_Fn_y_i -= m_tmp_CD * m_tmp_CD_b; // N_{i,h} * U * x_{i,h}
-  }
-  // Fn_yi = sum_{sessions h}(N_{i,h}*(o_{i,h} - m - D*z_{i} - U*x_{i,h})
-}
-
-void bob::learn::misc::FABaseTrainer::updateY_i(const size_t id)
-{
-  // Computes yi = Ayi * Cvs * Fn_yi
-  blitz::Array<double,1>& y = m_y[id];
-  // m_tmp_rv = m_cache_VtSigmaInv * m_cache_Fn_y_i = Vt*diag(sigma)^-1 * sum_{sessions h}(N_{i,h}*(o_{i,h} - m - D*z_{i} - U*x_{i,h})
-  bob::math::prod(m_cache_VtSigmaInv, m_cache_Fn_y_i, m_tmp_rv);
-  bob::math::prod(m_cache_IdPlusVProd_i, m_tmp_rv, y);
-}
-
-void bob::learn::misc::FABaseTrainer::updateY(const bob::learn::misc::FABase& m,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  // Precomputation
-  computeVtSigmaInv(m);
-  computeVProd(m);
-  // Loops over all people
-  for (size_t id=0; id<stats.size(); ++id) {
-    computeIdPlusVProd_i(id);
-    computeFn_y_i(m, stats[id], id);
-    updateY_i(id);
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::computeAccumulatorsV(
-  const bob::learn::misc::FABase& m,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  // Initializes the cache accumulator
-  m_acc_V_A1 = 0.;
-  m_acc_V_A2 = 0.;
-  // Loops over all people
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  blitz::Range rall = blitz::Range::all();
-  for (size_t id=0; id<stats.size(); ++id) {
-    computeIdPlusVProd_i(id);
-    computeFn_y_i(m, stats[id], id);
-
-    // Needs to return values to be accumulated for estimating V
-    const blitz::Array<double,1>& y = m_y[id];
-    m_tmp_rvrv = m_cache_IdPlusVProd_i;
-    m_tmp_rvrv += y(i) * y(j);
-    for (size_t c=0; c<m_dim_C; ++c)
-    {
-      blitz::Array<double,2> A1_y_c = m_acc_V_A1(c, rall, rall);
-      A1_y_c += m_tmp_rvrv * m_Nacc[id](c);
-    }
-    m_acc_V_A2 += m_cache_Fn_y_i(i) * y(j);
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::updateV(blitz::Array<double,2>& V)
-{
-  blitz::Range rall = blitz::Range::all();
-  for (size_t c=0; c<m_dim_C; ++c)
-  {
-    const blitz::Array<double,2> A1 = m_acc_V_A1(c, rall, rall);
-    bob::math::inv(A1, m_tmp_rvrv);
-    const blitz::Array<double,2> A2 = m_acc_V_A2(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1), rall);
-    blitz::Array<double,2> V_c = V(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1), rall);
-    bob::math::prod(A2, m_tmp_rvrv, V_c);
-  }
-}
-
-
-//////////////////////////// U ///////////////////////////
-void bob::learn::misc::FABaseTrainer::computeUtSigmaInv(const bob::learn::misc::FABase& m)
-{
-  const blitz::Array<double,2>& U = m.getU();
-  // Blitz compatibility: ugly fix (const_cast, as old blitz version does not
-  // provide a non-const version of transpose())
-  const blitz::Array<double,2> Ut = const_cast<blitz::Array<double,2>&>(U).transpose(1,0);
-  const blitz::Array<double,1>& sigma = m.getUbmVariance();
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  m_cache_UtSigmaInv = Ut(i,j) / sigma(j); // Ut * diag(sigma)^-1
-}
-
-void bob::learn::misc::FABaseTrainer::computeUProd(const bob::learn::misc::FABase& m)
-{
-  const blitz::Array<double,2>& U = m.getU();
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  const blitz::Array<double,1>& sigma = m.getUbmVariance();
-  for (size_t c=0; c<m_dim_C; ++c)
-  {
-    blitz::Array<double,2> UProd_c = m_cache_UProd(c, blitz::Range::all(), blitz::Range::all());
-    blitz::Array<double,2> Uu_c = U(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1), blitz::Range::all());
-    blitz::Array<double,2> Ut_c = Uu_c.transpose(1,0);
-    blitz::Array<double,1> sigma_c = sigma(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1));
-    m_tmp_ruD = Ut_c(i,j) / sigma_c(j); // Ut_c * diag(sigma)^-1
-    bob::math::prod(m_tmp_ruD, Uu_c, UProd_c);
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::computeIdPlusUProd_ih(
-  const boost::shared_ptr<bob::learn::misc::GMMStats>& stats)
-{
-  const blitz::Array<double,1>& Nih = stats->n;
-  bob::math::eye(m_tmp_ruru); // m_tmp_ruru = I
-  for (size_t c=0; c<m_dim_C; ++c) {
-    blitz::Array<double,2> UProd_c = m_cache_UProd(c,blitz::Range::all(),blitz::Range::all());
-    m_tmp_ruru += UProd_c * Nih(c);
-  }
-  bob::math::inv(m_tmp_ruru, m_cache_IdPlusUProd_ih); // m_cache_IdPlusUProd_ih = ( I+Ut*diag(sigma)^-1*Ni*U)^-1
-}
-
-void bob::learn::misc::FABaseTrainer::computeFn_x_ih(const bob::learn::misc::FABase& mb,
-  const boost::shared_ptr<bob::learn::misc::GMMStats>& stats, const size_t id)
-{
-  const blitz::Array<double,2>& V = mb.getV();
-  const blitz::Array<double,1>& d =  mb.getD();
-  // Compute Fn_x_ih = sum_{sessions h}(N_{i,h}*(o_{i,h} - m - D*z_{i} - V*y_{i}) (Normalised first order statistics)
-  const blitz::Array<double,2>& Fih = stats->sumPx;
-  const blitz::Array<double,1>& m = mb.getUbmMean();
-  const blitz::Array<double,1>& z = m_z[id];
-  const blitz::Array<double,1>& Nih = stats->n;
-  bob::core::array::repelem(Nih, m_tmp_CD);
-  for (size_t c=0; c<m_dim_C; ++c) {
-    blitz::Array<double,1> Fn_x_ih_c = m_cache_Fn_x_ih(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1));
-    Fn_x_ih_c = Fih(c,blitz::Range::all());
-  }
-  m_cache_Fn_x_ih -= m_tmp_CD * (m + d * z); // Fn_x_ih = N_{i,h}*(o_{i,h} - m - D*z_{i})
-
-  const blitz::Array<double,1>& y = m_y[id];
-  bob::math::prod(V, y, m_tmp_CD_b);
-  m_cache_Fn_x_ih -= m_tmp_CD * m_tmp_CD_b;
-  // Fn_x_ih = N_{i,h}*(o_{i,h} - m - D*z_{i} - V*y_{i})
-}
-
-void bob::learn::misc::FABaseTrainer::updateX_ih(const size_t id, const size_t h)
-{
-  // Computes xih = Axih * Cus * Fn_x_ih
-  blitz::Array<double,1> x = m_x[id](blitz::Range::all(), h);
-  // m_tmp_ru = m_cache_UtSigmaInv * m_cache_Fn_x_ih = Ut*diag(sigma)^-1 * N_{i,h}*(o_{i,h} - m - D*z_{i} - V*y_{i})
-  bob::math::prod(m_cache_UtSigmaInv, m_cache_Fn_x_ih, m_tmp_ru);
-  bob::math::prod(m_cache_IdPlusUProd_ih, m_tmp_ru, x);
-}
-
-void bob::learn::misc::FABaseTrainer::updateX(const bob::learn::misc::FABase& m,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  // Precomputation
-  computeUtSigmaInv(m);
-  computeUProd(m);
-  // Loops over all people
-  for (size_t id=0; id<stats.size(); ++id) {
-    int n_session_i = stats[id].size();
-    for (int s=0; s<n_session_i; ++s) {
-      computeIdPlusUProd_ih(stats[id][s]);
-      computeFn_x_ih(m, stats[id][s], id);
-      updateX_ih(id, s);
-    }
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::computeAccumulatorsU(
-  const bob::learn::misc::FABase& m,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  // Initializes the cache accumulator
-  m_acc_U_A1 = 0.;
-  m_acc_U_A2 = 0.;
-  // Loops over all people
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  blitz::Range rall = blitz::Range::all();
-  for (size_t id=0; id<stats.size(); ++id) {
-    int n_session_i = stats[id].size();
-    for (int h=0; h<n_session_i; ++h) {
-      computeIdPlusUProd_ih(stats[id][h]);
-      computeFn_x_ih(m, stats[id][h], id);
-
-      // Needs to return values to be accumulated for estimating U
-      blitz::Array<double,1> x = m_x[id](rall, h);
-      m_tmp_ruru = m_cache_IdPlusUProd_ih;
-      m_tmp_ruru += x(i) * x(j);
-      for (int c=0; c<(int)m_dim_C; ++c)
-      {
-        blitz::Array<double,2> A1_x_c = m_acc_U_A1(c,rall,rall);
-        A1_x_c += m_tmp_ruru * stats[id][h]->n(c);
-      }
-      m_acc_U_A2 += m_cache_Fn_x_ih(i) * x(j);
-    }
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::updateU(blitz::Array<double,2>& U)
-{
-  for (size_t c=0; c<m_dim_C; ++c)
-  {
-    const blitz::Array<double,2> A1 = m_acc_U_A1(c,blitz::Range::all(),blitz::Range::all());
-    bob::math::inv(A1, m_tmp_ruru);
-    const blitz::Array<double,2> A2 = m_acc_U_A2(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1),blitz::Range::all());
-    blitz::Array<double,2> U_c = U(blitz::Range(c*m_dim_D,(c+1)*m_dim_D-1),blitz::Range::all());
-    bob::math::prod(A2, m_tmp_ruru, U_c);
-  }
-}
-
-
-//////////////////////////// D ///////////////////////////
-void bob::learn::misc::FABaseTrainer::computeDtSigmaInv(const bob::learn::misc::FABase& m)
-{
-  const blitz::Array<double,1>& d = m.getD();
-  const blitz::Array<double,1>& sigma = m.getUbmVariance();
-  m_cache_DtSigmaInv = d / sigma; // Dt * diag(sigma)^-1
-}
-
-void bob::learn::misc::FABaseTrainer::computeDProd(const bob::learn::misc::FABase& m)
-{
-  const blitz::Array<double,1>& d = m.getD();
-  const blitz::Array<double,1>& sigma = m.getUbmVariance();
-  m_cache_DProd = d / sigma * d; // Dt * diag(sigma)^-1 * D
-}
-
-void bob::learn::misc::FABaseTrainer::computeIdPlusDProd_i(const size_t id)
-{
-  const blitz::Array<double,1>& Ni = m_Nacc[id];
-  bob::core::array::repelem(Ni, m_tmp_CD); // m_tmp_CD = Ni 'repmat'
-  m_cache_IdPlusDProd_i = 1.; // m_cache_IdPlusDProd_i = Id
-  m_cache_IdPlusDProd_i += m_cache_DProd * m_tmp_CD; // m_cache_IdPlusDProd_i = I+Dt*diag(sigma)^-1*Ni*D
-  m_cache_IdPlusDProd_i = 1 / m_cache_IdPlusDProd_i; // m_cache_IdPlusVProd_i = (I+Dt*diag(sigma)^-1*Ni*D)^-1
-}
-
-void bob::learn::misc::FABaseTrainer::computeFn_z_i(
-  const bob::learn::misc::FABase& mb,
-  const std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& stats, const size_t id)
-{
-  const blitz::Array<double,2>& U = mb.getU();
-  const blitz::Array<double,2>& V = mb.getV();
-  // Compute Fn_z_i = sum_{sessions h}(N_{i,h}*(o_{i,h} - m - V*y_{i} - U*x_{i,h}) (Normalised first order statistics)
-  const blitz::Array<double,1>& Fi = m_Facc[id];
-  const blitz::Array<double,1>& m = mb.getUbmMean();
-  const blitz::Array<double,1>& y = m_y[id];
-  bob::core::array::repelem(m_Nacc[id], m_tmp_CD);
-  bob::math::prod(V, y, m_tmp_CD_b); // m_tmp_CD_b = V * y
-  m_cache_Fn_z_i = Fi - m_tmp_CD * (m + m_tmp_CD_b); // Fn_yi = sum_{sessions h}(N_{i,h}*(o_{i,h} - m - V*y_{i})
-
-  const blitz::Array<double,2>& X = m_x[id];
-  blitz::Range rall = blitz::Range::all();
-  for (int h=0; h<X.extent(1); ++h) // Loops over the sessions
-  {
-    const blitz::Array<double,1>& Nh = stats[h]->n; // Nh = N_{i,h} (length: C)
-    bob::core::array::repelem(Nh, m_tmp_CD);
-    blitz::Array<double,1> Xh = X(rall, h); // Xh = x_{i,h} (length: ru)
-    bob::math::prod(U, Xh, m_tmp_CD_b);
-    m_cache_Fn_z_i -= m_tmp_CD * m_tmp_CD_b;
-  }
-  // Fn_z_i = sum_{sessions h}(N_{i,h}*(o_{i,h} - m - V*y_{i} - U*x_{i,h})
-}
-
-void bob::learn::misc::FABaseTrainer::updateZ_i(const size_t id)
-{
-  // Computes zi = Azi * D^T.Sigma^-1 * Fn_zi
-  blitz::Array<double,1>& z = m_z[id];
-  // m_tmp_CD = m_cache_DtSigmaInv * m_cache_Fn_z_i = Dt*diag(sigma)^-1 * sum_{sessions h}(N_{i,h}*(o_{i,h} - m - V*y_{i} - U*x_{i,h})
-  z = m_cache_IdPlusDProd_i * m_cache_DtSigmaInv * m_cache_Fn_z_i;
-}
-
-void bob::learn::misc::FABaseTrainer::updateZ(const bob::learn::misc::FABase& m,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  // Precomputation
-  computeDtSigmaInv(m);
-  computeDProd(m);
-  // Loops over all people
-  for (size_t id=0; id<m_Nid; ++id) {
-    computeIdPlusDProd_i(id);
-    computeFn_z_i(m, stats[id], id);
-    updateZ_i(id);
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::computeAccumulatorsD(
-  const bob::learn::misc::FABase& m,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats)
-{
-  // Initializes the cache accumulator
-  m_acc_D_A1 = 0.;
-  m_acc_D_A2 = 0.;
-  // Loops over all people
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  for (size_t id=0; id<stats.size(); ++id) {
-    computeIdPlusDProd_i(id);
-    computeFn_z_i(m, stats[id], id);
-
-    // Needs to return values to be accumulated for estimating D
-    blitz::Array<double,1> z = m_z[id];
-    bob::core::array::repelem(m_Nacc[id], m_tmp_CD);
-    m_acc_D_A1 += (m_cache_IdPlusDProd_i + z * z) * m_tmp_CD;
-    m_acc_D_A2 += m_cache_Fn_z_i * z;
-  }
-}
-
-void bob::learn::misc::FABaseTrainer::updateD(blitz::Array<double,1>& d)
-{
-  d = m_acc_D_A2 / m_acc_D_A1;
-}
-
-
diff --git a/bob/learn/misc/cpp/GMMBaseTrainer.cpp b/bob/learn/misc/cpp/GMMBaseTrainer.cpp
deleted file mode 100644
index 8210f2b..0000000
--- a/bob/learn/misc/cpp/GMMBaseTrainer.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/GMMBaseTrainer.h>
-#include <bob.core/assert.h>
-#include <bob.core/check.h>
-
-bob::learn::misc::GMMBaseTrainer::GMMBaseTrainer(const bool update_means,
-    const bool update_variances, const bool update_weights,
-    const double mean_var_update_responsibilities_threshold):
-  m_update_means(update_means), m_update_variances(update_variances),
-  m_update_weights(update_weights),
-  m_mean_var_update_responsibilities_threshold(mean_var_update_responsibilities_threshold)
-{}
-
-bob::learn::misc::GMMBaseTrainer::GMMBaseTrainer(const bob::learn::misc::GMMBaseTrainer& b):
-  m_update_means(b.m_update_means), m_update_variances(b.m_update_variances),
-  m_mean_var_update_responsibilities_threshold(b.m_mean_var_update_responsibilities_threshold)
-{}
-
-bob::learn::misc::GMMBaseTrainer::~GMMBaseTrainer()
-{}
-
-void bob::learn::misc::GMMBaseTrainer::initialize(bob::learn::misc::GMMMachine& gmm)
-{
-  // Allocate memory for the sufficient statistics and initialise
-  m_ss.resize(gmm.getNGaussians(),gmm.getNInputs());
-}
-
-void bob::learn::misc::GMMBaseTrainer::eStep(bob::learn::misc::GMMMachine& gmm,
-  const blitz::Array<double,2>& data)
-{
-  m_ss.init();
-  // Calculate the sufficient statistics and save in m_ss
-  gmm.accStatistics(data, m_ss);
-}
-
-double bob::learn::misc::GMMBaseTrainer::computeLikelihood(bob::learn::misc::GMMMachine& gmm)
-{
-  return m_ss.log_likelihood / m_ss.T;
-}
-
-
-bob::learn::misc::GMMBaseTrainer& bob::learn::misc::GMMBaseTrainer::operator=
-  (const bob::learn::misc::GMMBaseTrainer &other)
-{
-  if (this != &other)
-  {
-    m_ss = other.m_ss;
-    m_update_means = other.m_update_means;
-    m_update_variances = other.m_update_variances;
-    m_update_weights = other.m_update_weights;
-    m_mean_var_update_responsibilities_threshold = other.m_mean_var_update_responsibilities_threshold;
-  }
-  return *this;
-}
-
-bool bob::learn::misc::GMMBaseTrainer::operator==
-  (const bob::learn::misc::GMMBaseTrainer &other) const
-{
-  return m_ss == other.m_ss &&
-         m_update_means == other.m_update_means &&
-         m_update_variances == other.m_update_variances &&
-         m_update_weights == other.m_update_weights &&
-         m_mean_var_update_responsibilities_threshold == other.m_mean_var_update_responsibilities_threshold;
-}
-
-bool bob::learn::misc::GMMBaseTrainer::operator!=
-  (const bob::learn::misc::GMMBaseTrainer &other) const
-{
-  return !(this->operator==(other));
-}
-
-bool bob::learn::misc::GMMBaseTrainer::is_similar_to
-  (const bob::learn::misc::GMMBaseTrainer &other, const double r_epsilon,
-   const double a_epsilon) const
-{
-  return m_ss == other.m_ss &&
-         m_update_means == other.m_update_means &&
-         m_update_variances == other.m_update_variances &&
-         m_update_weights == other.m_update_weights &&
-         bob::core::isClose(m_mean_var_update_responsibilities_threshold,
-          other.m_mean_var_update_responsibilities_threshold, r_epsilon, a_epsilon);
-}
-
-void bob::learn::misc::GMMBaseTrainer::setGMMStats(const bob::learn::misc::GMMStats& stats)
-{
-  bob::core::array::assertSameShape(m_ss.sumPx, stats.sumPx);
-  m_ss = stats;
-}
diff --git a/bob/learn/misc/cpp/GMMMachine.cpp b/bob/learn/misc/cpp/GMMMachine.cpp
deleted file mode 100644
index 6261d42..0000000
--- a/bob/learn/misc/cpp/GMMMachine.cpp
+++ /dev/null
@@ -1,436 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/GMMMachine.h>
-#include <bob.core/assert.h>
-#include <bob.math/log.h>
-
-bob::learn::misc::GMMMachine::GMMMachine(): m_gaussians(0) {
-  resize(0,0);
-}
-
-bob::learn::misc::GMMMachine::GMMMachine(const size_t n_gaussians, const size_t n_inputs):
-  m_gaussians(0)
-{
-  resize(n_gaussians,n_inputs);
-}
-
-bob::learn::misc::GMMMachine::GMMMachine(bob::io::base::HDF5File& config):
-  m_gaussians(0)
-{
-  load(config);
-}
-
-bob::learn::misc::GMMMachine::GMMMachine(const GMMMachine& other)  
-{
-  copy(other);
-}
-
-bob::learn::misc::GMMMachine& bob::learn::misc::GMMMachine::operator=(const bob::learn::misc::GMMMachine &other) {
-  // protect against invalid self-assignment
-  if (this != &other)
-    copy(other);
-
-  // by convention, always return *this
-  return *this;
-}
-
-bool bob::learn::misc::GMMMachine::operator==(const bob::learn::misc::GMMMachine& b) const
-{
-  if (m_n_gaussians != b.m_n_gaussians || m_n_inputs != b.m_n_inputs ||
-      !bob::core::array::isEqual(m_weights, b.m_weights))
-    return false;
-
-  for(size_t i=0; i<m_n_gaussians; ++i) {
-    if(!(*(m_gaussians[i]) == *(b.m_gaussians[i])))
-      return false;
-  }
-
-  return true;
-}
-
-bool bob::learn::misc::GMMMachine::operator!=(const bob::learn::misc::GMMMachine& b) const {
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::GMMMachine::is_similar_to(const bob::learn::misc::GMMMachine& b,
-  const double r_epsilon, const double a_epsilon) const
-{
-  if (m_n_gaussians != b.m_n_gaussians || m_n_inputs != b.m_n_inputs ||
-      !bob::core::array::isClose(m_weights, b.m_weights, r_epsilon, a_epsilon))
-    return false;
-
-  for (size_t i = 0; i < m_n_gaussians; ++i)
-    if (!m_gaussians[i]->is_similar_to(*b.m_gaussians[i], r_epsilon, a_epsilon))
-      return false;
-
-  return true;
-}
-
-void bob::learn::misc::GMMMachine::copy(const GMMMachine& other) {
-  m_n_gaussians = other.m_n_gaussians;
-  m_n_inputs = other.m_n_inputs;
-
-  // Initialise weights
-  m_weights.resize(m_n_gaussians);
-  m_weights = other.m_weights;
-
-  // Initialise Gaussians
-  m_gaussians.clear();
-  for(size_t i=0; i<m_n_gaussians; ++i) {
-    boost::shared_ptr<bob::learn::misc::Gaussian> g(new bob::learn::misc::Gaussian(*(other.m_gaussians[i])));
-    m_gaussians.push_back(g);
-  }
-
-  // Initialise cache
-  initCache();
-}
-
-bob::learn::misc::GMMMachine::~GMMMachine() { }
-
-
-/////////////////////
-// Setters 
-////////////////////
-
-void bob::learn::misc::GMMMachine::setWeights(const blitz::Array<double,1> &weights) {
-  bob::core::array::assertSameShape(weights, m_weights);
-  m_weights = weights;
-  recomputeLogWeights();
-}
-
-void bob::learn::misc::GMMMachine::recomputeLogWeights() const
-{
-  m_cache_log_weights = blitz::log(m_weights);
-}
-
-void bob::learn::misc::GMMMachine::setMeans(const blitz::Array<double,2> &means) {
-  bob::core::array::assertSameDimensionLength(means.extent(0), m_n_gaussians);
-  bob::core::array::assertSameDimensionLength(means.extent(1), m_n_inputs);
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    m_gaussians[i]->updateMean() = means(i,blitz::Range::all());
-  m_cache_supervector = false;
-}
-
-void bob::learn::misc::GMMMachine::setMeanSupervector(const blitz::Array<double,1> &mean_supervector) {
-  bob::core::array::assertSameDimensionLength(mean_supervector.extent(0), m_n_gaussians*m_n_inputs);
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    m_gaussians[i]->updateMean() = mean_supervector(blitz::Range(i*m_n_inputs, (i+1)*m_n_inputs-1));
-  m_cache_supervector = false;
-}
-
-
-void bob::learn::misc::GMMMachine::setVariances(const blitz::Array<double, 2 >& variances) {
-  bob::core::array::assertSameDimensionLength(variances.extent(0), m_n_gaussians);
-  bob::core::array::assertSameDimensionLength(variances.extent(1), m_n_inputs);
-  for(size_t i=0; i<m_n_gaussians; ++i) {
-    m_gaussians[i]->updateVariance() = variances(i,blitz::Range::all());
-    m_gaussians[i]->applyVarianceThresholds();
-  }
-  m_cache_supervector = false;
-}
-
-void bob::learn::misc::GMMMachine::setVarianceSupervector(const blitz::Array<double,1> &variance_supervector) {
-  bob::core::array::assertSameDimensionLength(variance_supervector.extent(0), m_n_gaussians*m_n_inputs);
-  for(size_t i=0; i<m_n_gaussians; ++i) {
-    m_gaussians[i]->updateVariance() = variance_supervector(blitz::Range(i*m_n_inputs, (i+1)*m_n_inputs-1));
-    m_gaussians[i]->applyVarianceThresholds();
-  }
-  m_cache_supervector = false;
-}
-
-void bob::learn::misc::GMMMachine::setVarianceThresholds(const double value) {
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    m_gaussians[i]->setVarianceThresholds(value);
-  m_cache_supervector = false;
-}
-
-void bob::learn::misc::GMMMachine::setVarianceThresholds(blitz::Array<double, 1> variance_thresholds) {
-  bob::core::array::assertSameDimensionLength(variance_thresholds.extent(0), m_n_inputs);
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    m_gaussians[i]->setVarianceThresholds(variance_thresholds);
-  m_cache_supervector = false;
-}
-
-void bob::learn::misc::GMMMachine::setVarianceThresholds(const blitz::Array<double, 2>& variance_thresholds) {
-  bob::core::array::assertSameDimensionLength(variance_thresholds.extent(0), m_n_gaussians);
-  bob::core::array::assertSameDimensionLength(variance_thresholds.extent(1), m_n_inputs);
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    m_gaussians[i]->setVarianceThresholds(variance_thresholds(i,blitz::Range::all()));
-  m_cache_supervector = false;
-}
-
-/////////////////////
-// Getters 
-////////////////////
-
-const blitz::Array<double,2> bob::learn::misc::GMMMachine::getMeans() const {
-
-  blitz::Array<double,2> means(m_n_gaussians,m_n_inputs);  
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    means(i,blitz::Range::all()) = m_gaussians[i]->getMean();
-    
-  return means;
-}
-
-const blitz::Array<double,2> bob::learn::misc::GMMMachine::getVariances() const{
-  
-  blitz::Array<double,2> variances(m_n_gaussians,m_n_inputs);
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    variances(i,blitz::Range::all()) = m_gaussians[i]->getVariance();
-
-  return variances;
-}
-
-
-const blitz::Array<double,2>  bob::learn::misc::GMMMachine::getVarianceThresholds() const {
-  //bob::core::array::assertSameDimensionLength(variance_thresholds.extent(0), m_n_gaussians);
-  //bob::core::array::assertSameDimensionLength(variance_thresholds.extent(1), m_n_inputs);
-  blitz::Array<double, 2> variance_thresholds(m_n_gaussians, m_n_inputs);
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    variance_thresholds(i,blitz::Range::all()) = m_gaussians[i]->getVarianceThresholds();
-
-  return variance_thresholds;
-}
-
-
-/////////////////////
-// Methods
-////////////////////
-
-
-void bob::learn::misc::GMMMachine::resize(const size_t n_gaussians, const size_t n_inputs) {
-  m_n_gaussians = n_gaussians;
-  m_n_inputs = n_inputs;
-
-  // Initialise weights
-  m_weights.resize(m_n_gaussians);
-  m_weights = 1.0 / m_n_gaussians;
-
-  // Initialise Gaussians
-  m_gaussians.clear();
-  for(size_t i=0; i<m_n_gaussians; ++i)
-    m_gaussians.push_back(boost::shared_ptr<bob::learn::misc::Gaussian>(new bob::learn::misc::Gaussian(n_inputs)));
-
-  // Initialise cache arrays
-  initCache();
-}
-
-double bob::learn::misc::GMMMachine::logLikelihood(const blitz::Array<double, 1> &x,
-  blitz::Array<double,1> &log_weighted_gaussian_likelihoods) const
-{
-  // Check dimension
-  bob::core::array::assertSameDimensionLength(log_weighted_gaussian_likelihoods.extent(0), m_n_gaussians);
-  bob::core::array::assertSameDimensionLength(x.extent(0), m_n_inputs);
-  return logLikelihood_(x,log_weighted_gaussian_likelihoods);
-}
-
-double bob::learn::misc::GMMMachine::logLikelihood_(const blitz::Array<double, 1> &x,
-  blitz::Array<double,1> &log_weighted_gaussian_likelihoods) const
-{
-  // Initialise variables
-  double log_likelihood = bob::math::Log::LogZero;
-
-  // Accumulate the weighted log likelihoods from each Gaussian
-  for(size_t i=0; i<m_n_gaussians; ++i) {
-    double l = m_cache_log_weights(i) + m_gaussians[i]->logLikelihood_(x);
-    log_weighted_gaussian_likelihoods(i) = l;
-    log_likelihood = bob::math::Log::logAdd(log_likelihood, l);
-  }
-
-  // Return log(p(x|GMMMachine))
-  return log_likelihood;
-}
-
-double bob::learn::misc::GMMMachine::logLikelihood(const blitz::Array<double, 1> &x) const {
-  // Check dimension
-  bob::core::array::assertSameDimensionLength(x.extent(0), m_n_inputs);
-  // Call the other logLikelihood_ (overloaded) function
-  // (log_weighted_gaussian_likelihoods will be discarded)
-  return logLikelihood_(x,m_cache_log_weighted_gaussian_likelihoods);
-}
-
-double bob::learn::misc::GMMMachine::logLikelihood_(const blitz::Array<double, 1> &x) const {
-  // Call the other logLikelihood (overloaded) function
-  // (log_weighted_gaussian_likelihoods will be discarded)
-  return logLikelihood_(x,m_cache_log_weighted_gaussian_likelihoods);
-}
-
-void bob::learn::misc::GMMMachine::accStatistics(const blitz::Array<double,2>& input,
-    bob::learn::misc::GMMStats& stats) const {
-  // iterate over data
-  blitz::Range a = blitz::Range::all();
-  for(int i=0; i<input.extent(0); ++i) {
-    // Get example
-    blitz::Array<double,1> x(input(i,a));
-    // Accumulate statistics
-    accStatistics(x,stats);
-  }
-}
-
-void bob::learn::misc::GMMMachine::accStatistics_(const blitz::Array<double,2>& input, bob::learn::misc::GMMStats& stats) const {
-  // iterate over data
-  blitz::Range a = blitz::Range::all();
-  for(int i=0; i<input.extent(0); ++i) {
-    // Get example
-    blitz::Array<double,1> x(input(i, a));
-    // Accumulate statistics
-    accStatistics_(x,stats);
-  }
-}
-
-void bob::learn::misc::GMMMachine::accStatistics(const blitz::Array<double, 1>& x, bob::learn::misc::GMMStats& stats) const {
-  // check GMMStats size
-  bob::core::array::assertSameDimensionLength(stats.sumPx.extent(0), m_n_gaussians);
-  bob::core::array::assertSameDimensionLength(stats.sumPx.extent(1), m_n_inputs);
-
-  // Calculate Gaussian and GMM likelihoods
-  // - m_cache_log_weighted_gaussian_likelihoods(i) = log(weight_i*p(x|gaussian_i))
-  // - log_likelihood = log(sum_i(weight_i*p(x|gaussian_i)))
-  double log_likelihood = logLikelihood(x, m_cache_log_weighted_gaussian_likelihoods);
-
-  accStatisticsInternal(x, stats, log_likelihood);
-}
-
-void bob::learn::misc::GMMMachine::accStatistics_(const blitz::Array<double, 1>& x, bob::learn::misc::GMMStats& stats) const {
-  // Calculate Gaussian and GMM likelihoods
-  // - m_cache_log_weighted_gaussian_likelihoods(i) = log(weight_i*p(x|gaussian_i))
-  // - log_likelihood = log(sum_i(weight_i*p(x|gaussian_i)))
-  double log_likelihood = logLikelihood_(x, m_cache_log_weighted_gaussian_likelihoods);
-
-  accStatisticsInternal(x, stats, log_likelihood);
-}
-
-void bob::learn::misc::GMMMachine::accStatisticsInternal(const blitz::Array<double, 1>& x,
-  bob::learn::misc::GMMStats& stats, const double log_likelihood) const
-{
-  // Calculate responsibilities
-  m_cache_P = blitz::exp(m_cache_log_weighted_gaussian_likelihoods - log_likelihood);
-
-  // Accumulate statistics
-  // - total likelihood
-  stats.log_likelihood += log_likelihood;
-
-  // - number of samples
-  stats.T++;
-
-  // - responsibilities
-  stats.n += m_cache_P;
-
-  // - first order stats
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-
-  m_cache_Px = m_cache_P(i) * x(j);
-
-  stats.sumPx += m_cache_Px;
-
-  // - second order stats
-  stats.sumPxx += (m_cache_Px(i,j) * x(j));
-}
-
-boost::shared_ptr<bob::learn::misc::Gaussian> bob::learn::misc::GMMMachine::getGaussian(const size_t i) {
-  if (i>=m_n_gaussians) {
-    throw std::runtime_error("getGaussian(): index out of bounds");
-  }
-  return m_gaussians[i];
-}
-
-void bob::learn::misc::GMMMachine::save(bob::io::base::HDF5File& config) const {
-  int64_t v = static_cast<int64_t>(m_n_gaussians);
-  config.set("m_n_gaussians", v);
-  v = static_cast<int64_t>(m_n_inputs);
-  config.set("m_n_inputs", v);
-
-  for(size_t i=0; i<m_n_gaussians; ++i) {
-    std::ostringstream oss;
-    oss << "m_gaussians" << i;
-
-    if (!config.hasGroup(oss.str())) config.createGroup(oss.str());
-    config.cd(oss.str());
-    m_gaussians[i]->save(config);
-    config.cd("..");
-  }
-
-  config.setArray("m_weights", m_weights);
-}
-
-void bob::learn::misc::GMMMachine::load(bob::io::base::HDF5File& config) {
-  int64_t v;
-  v = config.read<int64_t>("m_n_gaussians");
-  m_n_gaussians = static_cast<size_t>(v);
-  v = config.read<int64_t>("m_n_inputs");
-  m_n_inputs = static_cast<size_t>(v);
-
-  m_gaussians.clear();
-  for(size_t i=0; i<m_n_gaussians; ++i) {
-    m_gaussians.push_back(boost::shared_ptr<bob::learn::misc::Gaussian>(new bob::learn::misc::Gaussian(m_n_inputs)));
-    std::ostringstream oss;
-    oss << "m_gaussians" << i;
-    config.cd(oss.str());
-    m_gaussians[i]->load(config);
-    config.cd("..");
-  }
-
-  m_weights.resize(m_n_gaussians);
-  config.readArray("m_weights", m_weights);
-
-  // Initialise cache
-  initCache();
-}
-
-void bob::learn::misc::GMMMachine::updateCacheSupervectors() const
-{
-  m_cache_mean_supervector.resize(m_n_gaussians*m_n_inputs);
-  m_cache_variance_supervector.resize(m_n_gaussians*m_n_inputs);
-
-  for(size_t i=0; i<m_n_gaussians; ++i) {
-    blitz::Range range(i*m_n_inputs, (i+1)*m_n_inputs-1);
-    m_cache_mean_supervector(range) = m_gaussians[i]->getMean();
-    m_cache_variance_supervector(range) = m_gaussians[i]->getVariance();
-  }
-  m_cache_supervector = true;
-}
-
-void bob::learn::misc::GMMMachine::initCache() const {
-  // Initialise cache arrays
-  m_cache_log_weights.resize(m_n_gaussians);
-  recomputeLogWeights();
-  m_cache_log_weighted_gaussian_likelihoods.resize(m_n_gaussians);
-  m_cache_P.resize(m_n_gaussians);
-  m_cache_Px.resize(m_n_gaussians,m_n_inputs);
-  m_cache_supervector = false;
-}
-
-void bob::learn::misc::GMMMachine::reloadCacheSupervectors() const {
-  if(!m_cache_supervector)
-    updateCacheSupervectors();
-}
-
-const blitz::Array<double,1>& bob::learn::misc::GMMMachine::getMeanSupervector() const {
-  if(!m_cache_supervector)
-    updateCacheSupervectors();
-  return m_cache_mean_supervector;
-}
-
-const blitz::Array<double,1>& bob::learn::misc::GMMMachine::getVarianceSupervector() const {
-  if(!m_cache_supervector)
-    updateCacheSupervectors();
-  return m_cache_variance_supervector;
-}
-
-namespace bob { namespace learn { namespace misc {
-  std::ostream& operator<<(std::ostream& os, const GMMMachine& machine) {
-    os << "Weights = " << machine.m_weights << std::endl;
-    for(size_t i=0; i < machine.m_n_gaussians; ++i) {
-      os << "Gaussian " << i << ": " << std::endl << *(machine.m_gaussians[i]);
-    }
-
-    return os;
-  }
-} } }
diff --git a/bob/learn/misc/cpp/GMMStats.cpp b/bob/learn/misc/cpp/GMMStats.cpp
deleted file mode 100644
index c0c25df..0000000
--- a/bob/learn/misc/cpp/GMMStats.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/GMMStats.h>
-#include <bob.core/logging.h>
-#include <bob.core/check.h>
-
-bob::learn::misc::GMMStats::GMMStats() {
-  resize(0,0);
-}
-
-bob::learn::misc::GMMStats::GMMStats(const size_t n_gaussians, const size_t n_inputs) {
-  resize(n_gaussians,n_inputs);
-}
-
-bob::learn::misc::GMMStats::GMMStats(bob::io::base::HDF5File& config) {
-  load(config);
-}
-
-bob::learn::misc::GMMStats::GMMStats(const bob::learn::misc::GMMStats& other) {
-  copy(other);
-}
-
-bob::learn::misc::GMMStats::~GMMStats() {
-}
-
-bob::learn::misc::GMMStats&
-bob::learn::misc::GMMStats::operator=(const bob::learn::misc::GMMStats& other) {
-  // protect against invalid self-assignment
-  if (this != &other)
-    copy(other);
-
-  // by convention, always return *this
-  return *this;
-}
-
-bool bob::learn::misc::GMMStats::operator==(const bob::learn::misc::GMMStats& b) const
-{
-  return (T == b.T && log_likelihood == b.log_likelihood &&
-          bob::core::array::isEqual(n, b.n) &&
-          bob::core::array::isEqual(sumPx, b.sumPx) &&
-          bob::core::array::isEqual(sumPxx, b.sumPxx));
-}
-
-bool
-bob::learn::misc::GMMStats::operator!=(const bob::learn::misc::GMMStats& b) const
-{
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::GMMStats::is_similar_to(const bob::learn::misc::GMMStats& b,
-  const double r_epsilon, const double a_epsilon) const
-{
-  return (T == b.T &&
-          bob::core::isClose(log_likelihood, b.log_likelihood, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(n, b.n, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(sumPx, b.sumPx, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(sumPxx, b.sumPxx, r_epsilon, a_epsilon));
-}
-
-
-void bob::learn::misc::GMMStats::operator+=(const bob::learn::misc::GMMStats& b) {
-  // Check dimensions
-  if(n.extent(0) != b.n.extent(0) ||
-      sumPx.extent(0) != b.sumPx.extent(0) || sumPx.extent(1) != b.sumPx.extent(1) ||
-      sumPxx.extent(0) != b.sumPxx.extent(0) || sumPxx.extent(1) != b.sumPxx.extent(1))
-    // TODO: add a specialized exception
-    throw std::runtime_error("if you see this exception, fill a bug report");
-
-  // Update GMMStats object with the content of the other one
-  T += b.T;
-  log_likelihood += b.log_likelihood;
-  n += b.n;
-  sumPx += b.sumPx;
-  sumPxx += b.sumPxx;
-}
-
-void bob::learn::misc::GMMStats::copy(const GMMStats& other) {
-  // Resize arrays
-  resize(other.sumPx.extent(0),other.sumPx.extent(1));
-  // Copy content
-  T = other.T;
-  log_likelihood = other.log_likelihood;
-  n = other.n;
-  sumPx = other.sumPx;
-  sumPxx = other.sumPxx;
-}
-
-void bob::learn::misc::GMMStats::resize(const size_t n_gaussians, const size_t n_inputs) {
-  n.resize(n_gaussians);
-  sumPx.resize(n_gaussians, n_inputs);
-  sumPxx.resize(n_gaussians, n_inputs);
-  init();
-}
-
-void bob::learn::misc::GMMStats::init() {
-  log_likelihood = 0;
-  T = 0;
-  n = 0.0;
-  sumPx = 0.0;
-  sumPxx = 0.0;
-}
-
-void bob::learn::misc::GMMStats::save(bob::io::base::HDF5File& config) const {
-  //please note we fix the output values to be of a precise type so they can be
-  //retrieved at any platform with the exact same precision.
-  // TODO: add versioning, replace int64_t by uint64_t and log_liklihood by log_likelihood
-  int64_t sumpx_shape_0 = sumPx.shape()[0];
-  int64_t sumpx_shape_1 = sumPx.shape()[1];
-  config.set("n_gaussians", sumpx_shape_0);
-  config.set("n_inputs", sumpx_shape_1);
-  config.set("log_liklihood", log_likelihood); //double
-  config.set("T", static_cast<int64_t>(T));
-  config.setArray("n", n); //Array1d
-  config.setArray("sumPx", sumPx); //Array2d
-  config.setArray("sumPxx", sumPxx); //Array2d
-}
-
-void bob::learn::misc::GMMStats::load(bob::io::base::HDF5File& config) {
-  log_likelihood = config.read<double>("log_liklihood");
-  int64_t n_gaussians = config.read<int64_t>("n_gaussians");
-  int64_t n_inputs = config.read<int64_t>("n_inputs");
-  T = static_cast<size_t>(config.read<int64_t>("T"));
-
-  //resize arrays to prepare for HDF5 readout
-  n.resize(n_gaussians);
-  sumPx.resize(n_gaussians, n_inputs);
-  sumPxx.resize(n_gaussians, n_inputs);
-
-  //load data
-  config.readArray("n", n);
-  config.readArray("sumPx", sumPx);
-  config.readArray("sumPxx", sumPxx);
-}
-
-namespace bob { namespace learn { namespace misc {
-  std::ostream& operator<<(std::ostream& os, const GMMStats& g) {
-    os << "log_likelihood = " << g.log_likelihood << std::endl;
-    os << "T = " << g.T << std::endl;
-    os << "n = " << g.n;
-    os << "sumPx = " << g.sumPx;
-    os << "sumPxx = " << g.sumPxx;
-
-    return os;
-  }
-} } }
diff --git a/bob/learn/misc/cpp/Gaussian.cpp b/bob/learn/misc/cpp/Gaussian.cpp
deleted file mode 100644
index 75219d1..0000000
--- a/bob/learn/misc/cpp/Gaussian.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/Gaussian.h>
-
-#include <bob.core/assert.h>
-#include <bob.math/log.h>
-
-bob::learn::misc::Gaussian::Gaussian() {
-  resize(0);
-}
-
-bob::learn::misc::Gaussian::Gaussian(const size_t n_inputs) {
-  resize(n_inputs);
-}
-
-bob::learn::misc::Gaussian::Gaussian(const bob::learn::misc::Gaussian& other) {
-  copy(other);
-}
-
-bob::learn::misc::Gaussian::Gaussian(bob::io::base::HDF5File& config) {
-  load(config);
-}
-
-bob::learn::misc::Gaussian::~Gaussian() {
-}
-
-bob::learn::misc::Gaussian& bob::learn::misc::Gaussian::operator=(const bob::learn::misc::Gaussian &other) {
-  if(this != &other)
-    copy(other);
-
-  return *this;
-}
-
-bool bob::learn::misc::Gaussian::operator==(const bob::learn::misc::Gaussian& b) const
-{
-  return (bob::core::array::isEqual(m_mean, b.m_mean) &&
-          bob::core::array::isEqual(m_variance, b.m_variance) &&
-          bob::core::array::isEqual(m_variance_thresholds, b.m_variance_thresholds));
-}
-
-bool bob::learn::misc::Gaussian::operator!=(const bob::learn::misc::Gaussian& b) const {
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::Gaussian::is_similar_to(const bob::learn::misc::Gaussian& b,
-  const double r_epsilon, const double a_epsilon) const
-{
-  return (bob::core::array::isClose(m_mean, b.m_mean, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_variance, b.m_variance, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_variance_thresholds, b.m_variance_thresholds, r_epsilon, a_epsilon));
-}
-
-void bob::learn::misc::Gaussian::copy(const bob::learn::misc::Gaussian& other) {
-  m_n_inputs = other.m_n_inputs;
-
-  m_mean.resize(m_n_inputs);
-  m_mean = other.m_mean;
-
-  m_variance.resize(m_n_inputs);
-  m_variance = other.m_variance;
-
-  m_variance_thresholds.resize(m_n_inputs);
-  m_variance_thresholds = other.m_variance_thresholds;
-
-  m_n_log2pi = other.m_n_log2pi;
-  m_g_norm = other.m_g_norm;
-}
-
-
-void bob::learn::misc::Gaussian::setNInputs(const size_t n_inputs) {
-  resize(n_inputs);
-}
-
-void bob::learn::misc::Gaussian::resize(const size_t n_inputs) {
-  m_n_inputs = n_inputs;
-  m_mean.resize(m_n_inputs);
-  m_mean = 0;
-  m_variance.resize(m_n_inputs);
-  m_variance = 1;
-  m_variance_thresholds.resize(m_n_inputs);
-  m_variance_thresholds = 0;
-
-  // Re-compute g_norm, because m_n_inputs and m_variance
-  // have changed
-  preComputeNLog2Pi();
-  preComputeConstants();
-}
-
-void bob::learn::misc::Gaussian::setMean(const blitz::Array<double,1> &mean) {
-  // Check and set
-  bob::core::array::assertSameShape(m_mean, mean);
-  m_mean = mean;
-}
-
-void bob::learn::misc::Gaussian::setVariance(const blitz::Array<double,1> &variance) {
-  // Check and set
-  bob::core::array::assertSameShape(m_variance, variance);
-  m_variance = variance;
-
-  // Variance flooring
-  applyVarianceThresholds();
-}
-
-void bob::learn::misc::Gaussian::setVarianceThresholds(const blitz::Array<double,1> &variance_thresholds) {
-  // Check and set
-  bob::core::array::assertSameShape(m_variance_thresholds, variance_thresholds);
-  m_variance_thresholds = variance_thresholds;
-
-  // Variance flooring
-  applyVarianceThresholds();
-}
-
-void bob::learn::misc::Gaussian::setVarianceThresholds(const double value) {
-  blitz::Array<double,1> variance_thresholds(m_n_inputs);
-  variance_thresholds = value;
-  setVarianceThresholds(variance_thresholds);
-}
-
-void bob::learn::misc::Gaussian::applyVarianceThresholds() {
-   // Apply variance flooring threshold
-  m_variance = blitz::where( m_variance < m_variance_thresholds, m_variance_thresholds, m_variance);
-
-  // Re-compute g_norm, because m_variance has changed
-  preComputeConstants();
-}
-
-double bob::learn::misc::Gaussian::logLikelihood(const blitz::Array<double,1> &x) const {
-  // Check
-  bob::core::array::assertSameShape(x, m_mean);
-  return logLikelihood_(x);
-}
-
-double bob::learn::misc::Gaussian::logLikelihood_(const blitz::Array<double,1> &x) const {
-  double z = blitz::sum(blitz::pow2(x - m_mean) / m_variance);
-  // Log Likelihood
-  return (-0.5 * (m_g_norm + z));
-}
-
-void bob::learn::misc::Gaussian::preComputeNLog2Pi() {
-  m_n_log2pi = m_n_inputs * bob::math::Log::Log2Pi;
-}
-
-void bob::learn::misc::Gaussian::preComputeConstants() {
-  m_g_norm = m_n_log2pi + blitz::sum(blitz::log(m_variance));
-}
-
-void bob::learn::misc::Gaussian::save(bob::io::base::HDF5File& config) const {
-  config.setArray("m_mean", m_mean);
-  config.setArray("m_variance", m_variance);
-  config.setArray("m_variance_thresholds", m_variance_thresholds);
-  config.set("g_norm", m_g_norm);
-  int64_t v = static_cast<int64_t>(m_n_inputs);
-  config.set("m_n_inputs", v);
-}
-
-void bob::learn::misc::Gaussian::load(bob::io::base::HDF5File& config) {
-  int64_t v = config.read<int64_t>("m_n_inputs");
-  m_n_inputs = static_cast<size_t>(v);
-
-  m_mean.resize(m_n_inputs);
-  m_variance.resize(m_n_inputs);
-  m_variance_thresholds.resize(m_n_inputs);
-
-  config.readArray("m_mean", m_mean);
-  config.readArray("m_variance", m_variance);
-  config.readArray("m_variance_thresholds", m_variance_thresholds);
-
-  preComputeNLog2Pi();
-  m_g_norm = config.read<double>("g_norm");
-}
-
-namespace bob { namespace learn { namespace misc {
-  std::ostream& operator<<(std::ostream& os, const Gaussian& g) {
-    os << "Mean = " << g.m_mean << std::endl;
-    os << "Variance = " << g.m_variance << std::endl;
-    return os;
-  }
-} } }
diff --git a/bob/learn/misc/cpp/ISVBase.cpp b/bob/learn/misc/cpp/ISVBase.cpp
deleted file mode 100644
index 7884786..0000000
--- a/bob/learn/misc/cpp/ISVBase.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * @date Tue Jan 27 16:02:00 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-
-#include <bob.learn.misc/ISVBase.h>
-#include <bob.core/array_copy.h>
-#include <bob.math/linear.h>
-#include <bob.math/inv.h>
-#include <bob.learn.misc/LinearScoring.h>
-#include <limits>
-
-
-//////////////////// ISVBase ////////////////////
-bob::learn::misc::ISVBase::ISVBase()
-{
-}
-
-bob::learn::misc::ISVBase::ISVBase(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm,
-    const size_t ru):
-  m_base(ubm, ru, 1)
-{
-  blitz::Array<double,2>& V = m_base.updateV();
-  V = 0;
-}
-
-bob::learn::misc::ISVBase::ISVBase(const bob::learn::misc::ISVBase& other):
-  m_base(other.m_base)
-{
-}
-
-
-bob::learn::misc::ISVBase::ISVBase(bob::io::base::HDF5File& config)
-{
-  load(config);
-}
-
-bob::learn::misc::ISVBase::~ISVBase() {
-}
-
-void bob::learn::misc::ISVBase::save(bob::io::base::HDF5File& config) const
-{
-  config.setArray("U", m_base.getU());
-  config.setArray("d", m_base.getD());
-}
-
-void bob::learn::misc::ISVBase::load(bob::io::base::HDF5File& config)
-{
-  //reads all data directly into the member variables
-  blitz::Array<double,2> U = config.readArray<double,2>("U");
-  blitz::Array<double,1> d = config.readArray<double,1>("d");
-  const int ru = U.extent(1);
-  if (!m_base.getUbm())
-    m_base.resize(ru, 1, U.extent(0));
-  else
-    m_base.resize(ru, 1);
-  m_base.setU(U);
-  m_base.setD(d);
-  blitz::Array<double,2>& V = m_base.updateV();
-  V = 0;
-}
-
-bob::learn::misc::ISVBase&
-bob::learn::misc::ISVBase::operator=(const bob::learn::misc::ISVBase& other)
-{
-  if (this != &other)
-  {
-    m_base = other.m_base;
-  }
-  return *this;
-}
-
diff --git a/bob/learn/misc/cpp/ISVMachine.cpp b/bob/learn/misc/cpp/ISVMachine.cpp
deleted file mode 100644
index ea5ad28..0000000
--- a/bob/learn/misc/cpp/ISVMachine.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- * @date Tue Jan 27 16:06:00 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-
-#include <bob.learn.misc/ISVMachine.h>
-#include <bob.core/array_copy.h>
-#include <bob.math/linear.h>
-#include <bob.math/inv.h>
-#include <bob.learn.misc/LinearScoring.h>
-#include <limits>
-
-
-//////////////////// ISVMachine ////////////////////
-bob::learn::misc::ISVMachine::ISVMachine():
-  m_z(1)
-{
-  resizeTmp();
-}
-
-bob::learn::misc::ISVMachine::ISVMachine(const boost::shared_ptr<bob::learn::misc::ISVBase> isv_base):
-  m_isv_base(isv_base),
-  m_z(isv_base->getSupervectorLength())
-{
-  if (!m_isv_base->getUbm())
-    throw std::runtime_error("No UBM was set in the JFA machine.");
-  updateCache();
-  resizeTmp();
-}
-
-
-bob::learn::misc::ISVMachine::ISVMachine(const bob::learn::misc::ISVMachine& other):
-  m_isv_base(other.m_isv_base),
-  m_z(bob::core::array::ccopy(other.m_z))
-{
-  updateCache();
-  resizeTmp();
-}
-
-bob::learn::misc::ISVMachine::ISVMachine(bob::io::base::HDF5File& config)
-{
-  load(config);
-}
-
-bob::learn::misc::ISVMachine::~ISVMachine() {
-}
-
-bob::learn::misc::ISVMachine&
-bob::learn::misc::ISVMachine::operator=(const bob::learn::misc::ISVMachine& other)
-{
-  if (this != &other)
-  {
-    m_isv_base = other.m_isv_base;
-    m_z.reference(bob::core::array::ccopy(other.m_z));
-  }
-  return *this;
-}
-
-bool bob::learn::misc::ISVMachine::operator==(const bob::learn::misc::ISVMachine& other) const
-{
-  return (*m_isv_base == *(other.m_isv_base) &&
-          bob::core::array::isEqual(m_z, other.m_z));
-}
-
-bool bob::learn::misc::ISVMachine::operator!=(const bob::learn::misc::ISVMachine& b) const
-{
-  return !(this->operator==(b));
-}
-
-
-bool bob::learn::misc::ISVMachine::is_similar_to(const bob::learn::misc::ISVMachine& b,
-    const double r_epsilon, const double a_epsilon) const
-{
-  return (m_isv_base->is_similar_to(*(b.m_isv_base), r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_z, b.m_z, r_epsilon, a_epsilon));
-}
-
-void bob::learn::misc::ISVMachine::save(bob::io::base::HDF5File& config) const
-{
-  config.setArray("z", m_z);
-}
-
-void bob::learn::misc::ISVMachine::load(bob::io::base::HDF5File& config)
-{
-  //reads all data directly into the member variables
-  blitz::Array<double,1> z = config.readArray<double,1>("z");
-  if (!m_isv_base)
-    m_z.resize(z.extent(0));
-  setZ(z);
-  // update cache
-  updateCache();
-  resizeTmp();
-}
-
-void bob::learn::misc::ISVMachine::setZ(const blitz::Array<double,1>& z)
-{
-  if(z.extent(0) != m_z.extent(0)) { //checks dimension
-    boost::format m("size of input vector `z' (%d) does not match the expected size (%d)");
-    m % z.extent(0) % m_z.extent(0);
-    throw std::runtime_error(m.str());
-  }
-  m_z.reference(bob::core::array::ccopy(z));
-  // update cache
-  updateCache();
-}
-
-void bob::learn::misc::ISVMachine::setISVBase(const boost::shared_ptr<bob::learn::misc::ISVBase> isv_base)
-{
-  if (!isv_base->getUbm())
-    throw std::runtime_error("No UBM was set in the JFA machine.");
-  m_isv_base = isv_base;
-  // Resize variables
-  resize();
-}
-
-void bob::learn::misc::ISVMachine::resize()
-{
-  m_z.resizeAndPreserve(getSupervectorLength());
-  updateCache();
-  resizeTmp();
-}
-
-void bob::learn::misc::ISVMachine::resizeTmp()
-{
-  if (m_isv_base)
-  {
-    m_tmp_Ux.resize(getSupervectorLength());
-  }
-}
-
-void bob::learn::misc::ISVMachine::updateCache()
-{
-  if (m_isv_base)
-  {
-    // m + Dz
-    m_cache_mDz.resize(getSupervectorLength());
-    m_cache_mDz = m_isv_base->getD()*m_z + m_isv_base->getUbm()->getMeanSupervector();
-    m_cache_x.resize(getDimRu());
-  }
-}
-
-void bob::learn::misc::ISVMachine::estimateUx(const bob::learn::misc::GMMStats& gmm_stats,
-  blitz::Array<double,1>& Ux)
-{
-  estimateX(gmm_stats, m_cache_x);
-  bob::math::prod(m_isv_base->getU(), m_cache_x, Ux);
-}
-
-double bob::learn::misc::ISVMachine::forward(const bob::learn::misc::GMMStats& input)
-{
-  return forward_(input);
-}
-
-double bob::learn::misc::ISVMachine::forward(const bob::learn::misc::GMMStats& gmm_stats,
-  const blitz::Array<double,1>& Ux)
-{
-  // Checks that a Base machine has been set
-  if (!m_isv_base) throw std::runtime_error("No UBM was set in the JFA machine.");
-
-  return bob::learn::misc::linearScoring(m_cache_mDz,
-            m_isv_base->getUbm()->getMeanSupervector(), m_isv_base->getUbm()->getVarianceSupervector(),
-            gmm_stats, Ux, true);
-}
-
-double bob::learn::misc::ISVMachine::forward_(const bob::learn::misc::GMMStats& input)
-{
-  // Checks that a Base machine has been set
-  if(!m_isv_base) throw std::runtime_error("No UBM was set in the JFA machine.");
-
-  // Ux and GMMStats
-  estimateX(input, m_cache_x);
-  bob::math::prod(m_isv_base->getU(), m_cache_x, m_tmp_Ux);
-
-  return bob::learn::misc::linearScoring(m_cache_mDz,
-            m_isv_base->getUbm()->getMeanSupervector(), m_isv_base->getUbm()->getVarianceSupervector(),
-            input, m_tmp_Ux, true);
-}
-
diff --git a/bob/learn/misc/cpp/ISVTrainer.cpp b/bob/learn/misc/cpp/ISVTrainer.cpp
deleted file mode 100644
index 5ccedb0..0000000
--- a/bob/learn/misc/cpp/ISVTrainer.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- * @date Tue Jul 19 12:16:17 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief Joint Factor Analysis Trainer
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/ISVTrainer.h>
-#include <bob.core/check.h>
-#include <bob.core/array_copy.h>
-#include <bob.core/array_random.h>
-#include <bob.math/inv.h>
-#include <bob.math/linear.h>
-#include <bob.core/check.h>
-#include <bob.core/array_repmat.h>
-#include <algorithm>
-
-
-//////////////////////////// ISVTrainer ///////////////////////////
-bob::learn::misc::ISVTrainer::ISVTrainer(const double relevance_factor):
-  m_relevance_factor(relevance_factor),
-  m_rng(new boost::mt19937())
-{}
-
-bob::learn::misc::ISVTrainer::ISVTrainer(const bob::learn::misc::ISVTrainer& other):
-  m_rng(other.m_rng)
-{
-  m_relevance_factor      = other.m_relevance_factor;
-}
-
-bob::learn::misc::ISVTrainer::~ISVTrainer()
-{}
-
-bob::learn::misc::ISVTrainer& bob::learn::misc::ISVTrainer::operator=
-(const bob::learn::misc::ISVTrainer& other)
-{
-  if (this != &other)
-  {
-    m_rng                   = other.m_rng;
-    m_relevance_factor      = other.m_relevance_factor;
-  }
-  return *this;
-}
-
-bool bob::learn::misc::ISVTrainer::operator==(const bob::learn::misc::ISVTrainer& b) const
-{
-  return m_rng == b.m_rng && 
-         m_relevance_factor == b.m_relevance_factor;
-}
-
-bool bob::learn::misc::ISVTrainer::operator!=(const bob::learn::misc::ISVTrainer& b) const
-{
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::ISVTrainer::is_similar_to(const bob::learn::misc::ISVTrainer& b,
-  const double r_epsilon, const double a_epsilon) const
-{
-  return  m_rng == b.m_rng && 
-          m_relevance_factor == b.m_relevance_factor;
-}
-
-void bob::learn::misc::ISVTrainer::initialize(bob::learn::misc::ISVBase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  m_base_trainer.initUbmNidSumStatistics(machine.getBase(), ar);
-  m_base_trainer.initializeXYZ(ar);
-
-  blitz::Array<double,2>& U = machine.updateU();
-  bob::core::array::randn(*m_rng, U);
-  initializeD(machine);
-  machine.precompute();
-}
-
-void bob::learn::misc::ISVTrainer::initializeD(bob::learn::misc::ISVBase& machine) const
-{
-  // D = sqrt(variance(UBM) / relevance_factor)
-  blitz::Array<double,1> d = machine.updateD();
-  d = sqrt(machine.getBase().getUbmVariance() / m_relevance_factor);
-}
-
-void bob::learn::misc::ISVTrainer::eStep(bob::learn::misc::ISVBase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  m_base_trainer.resetXYZ();
-
-  const bob::learn::misc::FABase& base = machine.getBase();
-  m_base_trainer.updateX(base, ar);
-  m_base_trainer.updateZ(base, ar);
-  m_base_trainer.computeAccumulatorsU(base, ar);
-}
-
-void bob::learn::misc::ISVTrainer::mStep(bob::learn::misc::ISVBase& machine)
-{
-  blitz::Array<double,2>& U = machine.updateU();
-  m_base_trainer.updateU(U);
-  machine.precompute();
-}
-
-double bob::learn::misc::ISVTrainer::computeLikelihood(bob::learn::misc::ISVBase& machine)
-{
-  // TODO
-  return 0;
-}
-
-void bob::learn::misc::ISVTrainer::enrol(bob::learn::misc::ISVMachine& machine,
-  const std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& ar,
-  const size_t n_iter)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > vvec;
-  vvec.push_back(ar);
-
-  const bob::learn::misc::FABase& fb = machine.getISVBase()->getBase();
-
-  m_base_trainer.initUbmNidSumStatistics(fb, vvec);
-  m_base_trainer.initializeXYZ(vvec);
-
-  for (size_t i=0; i<n_iter; ++i) {
-    m_base_trainer.updateX(fb, vvec);
-    m_base_trainer.updateZ(fb, vvec);
-  }
-
-  const blitz::Array<double,1> z(m_base_trainer.getZ()[0]);
-  machine.setZ(z);
-}
-
-
-
diff --git a/bob/learn/misc/cpp/IVectorMachine.cpp b/bob/learn/misc/cpp/IVectorMachine.cpp
deleted file mode 100644
index 61f7ee4..0000000
--- a/bob/learn/misc/cpp/IVectorMachine.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
- * @date Sat Mar 30 21:00:00 2013 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/IVectorMachine.h>
-#include <bob.core/array_copy.h>
-#include <bob.core/check.h>
-#include <bob.math/linear.h>
-#include <bob.math/linsolve.h>
-
-bob::learn::misc::IVectorMachine::IVectorMachine()
-{
-}
-
-bob::learn::misc::IVectorMachine::IVectorMachine(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm,
-    const size_t rt, const double variance_threshold):
-  m_ubm(ubm), m_rt(rt),
-  m_T(getSupervectorLength(),rt), m_sigma(getSupervectorLength()),
-  m_variance_threshold(variance_threshold)
-{
-  resizePrecompute();
-}
-
-bob::learn::misc::IVectorMachine::IVectorMachine(const bob::learn::misc::IVectorMachine& other):
-  m_ubm(other.m_ubm), m_rt(other.m_rt),
-  m_T(bob::core::array::ccopy(other.m_T)),
-  m_sigma(bob::core::array::ccopy(other.m_sigma)),
-  m_variance_threshold(other.m_variance_threshold)
-{
-  resizePrecompute();
-}
-
-bob::learn::misc::IVectorMachine::IVectorMachine(bob::io::base::HDF5File& config)
-{
-  load(config);
-}
-
-bob::learn::misc::IVectorMachine::~IVectorMachine() {
-}
-
-void bob::learn::misc::IVectorMachine::save(bob::io::base::HDF5File& config) const
-{
-  config.setArray("m_T", m_T);
-  config.setArray("m_sigma", m_sigma);
-  config.set("m_variance_threshold", m_variance_threshold);
-}
-
-void bob::learn::misc::IVectorMachine::load(bob::io::base::HDF5File& config)
-{
-  //reads all data directly into the member variables
-  m_T.reference(config.readArray<double,2>("m_T"));
-  m_rt = m_T.extent(1);
-  m_sigma.reference(config.readArray<double,1>("m_sigma"));
-  m_variance_threshold = config.read<double>("m_variance_threshold");
-  resizePrecompute();
-}
-
-void bob::learn::misc::IVectorMachine::resize(const size_t rt)
-{
-  m_rt = rt;
-  m_T.resizeAndPreserve(m_T.extent(0), rt);
-  resizePrecompute();
-}
-
-bob::learn::misc::IVectorMachine&
-bob::learn::misc::IVectorMachine::operator=(const bob::learn::misc::IVectorMachine& other)
-{
-  if (this != &other)
-  {
-    m_ubm = other.m_ubm;
-    m_rt = other.m_rt;
-    m_T.reference(bob::core::array::ccopy(other.m_T));
-    m_sigma.reference(bob::core::array::ccopy(other.m_sigma));
-    m_variance_threshold = other.m_variance_threshold;
-    resizePrecompute();
-  }
-  return *this;
-}
-
-bool bob::learn::misc::IVectorMachine::operator==(const IVectorMachine& b) const
-{
-  return (((m_ubm && b.m_ubm) && *m_ubm == *(b.m_ubm)) || (!m_ubm && !b.m_ubm)) &&
-         m_rt == b.m_rt &&
-         bob::core::array::isEqual(m_T, b.m_T) &&
-         bob::core::array::isEqual(m_sigma, b.m_sigma) &&
-         m_variance_threshold == b.m_variance_threshold;
-}
-
-bool bob::learn::misc::IVectorMachine::operator!=(const bob::learn::misc::IVectorMachine& b) const
-{
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::IVectorMachine::is_similar_to(const IVectorMachine& b,
-  const double r_epsilon, const double a_epsilon) const
-{
-  // TODO: update with new is_similar_to method
-  return (((m_ubm && b.m_ubm) && m_ubm->is_similar_to(*(b.m_ubm), r_epsilon)) || (!m_ubm && !b.m_ubm)) &&
-          m_rt == b.m_rt &&
-          bob::core::array::isClose(m_T, b.m_T, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_sigma, b.m_sigma, r_epsilon, a_epsilon) &&
-          bob::core::isClose(m_variance_threshold, b.m_variance_threshold, r_epsilon, a_epsilon);
-}
-
-void bob::learn::misc::IVectorMachine::setUbm(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm)
-{
-  m_ubm = ubm;
-  resizePrecompute();
-}
-
-void bob::learn::misc::IVectorMachine::setT(const blitz::Array<double,2>& T)
-{
-  bob::core::array::assertSameShape(m_T, T);
-  m_T = T;
-  // Update cache
-  precompute();
-}
-
-void bob::learn::misc::IVectorMachine::setSigma(const blitz::Array<double,1>& sigma)
-{
-  bob::core::array::assertSameShape(m_sigma, sigma);
-  m_sigma = sigma;
-  // Update cache
-  precompute();
-}
-
-
-void bob::learn::misc::IVectorMachine::setVarianceThreshold(const double thd)
-{
-  m_variance_threshold = thd;
-  // Update cache
-  precompute();
-}
-
-void bob::learn::misc::IVectorMachine::applyVarianceThreshold()
-{
-  // Apply variance flooring threshold
-  m_sigma = blitz::where(m_sigma < m_variance_threshold, m_variance_threshold, m_sigma);
-}
-
-void bob::learn::misc::IVectorMachine::precompute()
-{
-  if (m_ubm)
-  {
-    // Apply variance threshold
-    applyVarianceThreshold();
-
-    blitz::firstIndex i;
-    blitz::secondIndex j;
-    blitz::Range rall = blitz::Range::all();
-    const int C = (int)m_ubm->getNGaussians();
-    const int D = (int)m_ubm->getNInputs();
-    // T_{c}^{T}.sigma_{c}^{-1}
-    for (int c=0; c<C; ++c)
-    {
-      blitz::Array<double,2> Tct_sigmacInv = m_cache_Tct_sigmacInv(c, rall, rall);
-      blitz::Array<double,2> Tc = m_T(blitz::Range(c*D,(c+1)*D-1), rall);
-      blitz::Array<double,2> Tct = Tc.transpose(1,0);
-      blitz::Array<double,1> sigma_c = m_sigma(blitz::Range(c*D,(c+1)*D-1));
-      Tct_sigmacInv = Tct(i,j) / sigma_c(j);
-    }
-
-    // T_{c}^{T}.sigma_{c}^{-1}.T_{c}
-    for (int c=0; c<C; ++c)
-    {
-      blitz::Array<double,2> Tc = m_T(blitz::Range(c*D,(c+1)*D-1), rall);
-      blitz::Array<double,2> Tct_sigmacInv = m_cache_Tct_sigmacInv(c, rall, rall);
-      blitz::Array<double,2> Tct_sigmacInv_Tc = m_cache_Tct_sigmacInv_Tc(c, rall, rall);
-      bob::math::prod(Tct_sigmacInv, Tc, Tct_sigmacInv_Tc);
-    }
-  }
-}
-
-void bob::learn::misc::IVectorMachine::resizePrecompute()
-{
-  resizeCache();
-  resizeTmp();
-  precompute();
-}
-
-void bob::learn::misc::IVectorMachine::resizeCache()
-{
-  if (m_ubm)
-  {
-    const int C = (int)m_ubm->getNGaussians();
-    const int D = (int)m_ubm->getNInputs();
-    m_cache_Tct_sigmacInv.resize(C, (int)m_rt, D);
-    m_cache_Tct_sigmacInv_Tc.resize(C, (int)m_rt, (int)m_rt);
-  }
-}
-
-void bob::learn::misc::IVectorMachine::resizeTmp()
-{
-  if (m_ubm)
-    m_tmp_d.resize(m_ubm->getNInputs());
-  m_tmp_t1.resize(m_rt);
-  m_tmp_t2.resize(m_rt);
-  m_tmp_tt.resize(m_rt, m_rt);
-}
-
-void bob::learn::misc::IVectorMachine::forward(const bob::learn::misc::GMMStats& gs,
-  blitz::Array<double,1>& ivector) const
-{
-  bob::core::array::assertSameDimensionLength(ivector.extent(0), (int)m_rt);  
-  forward_(gs, ivector);
-}
-
-void bob::learn::misc::IVectorMachine::computeIdTtSigmaInvT(
-  const bob::learn::misc::GMMStats& gs, blitz::Array<double,2>& output) const
-{
-  // Computes \f$(Id + \sum_{c=1}^{C} N_{i,j,c} T^{T} \Sigma_{c}^{-1} T)\f$
-  blitz::Range rall = blitz::Range::all();
-  bob::math::eye(output);
-  for (int c=0; c<(int)getNGaussians(); ++c)
-    output += gs.n(c) * m_cache_Tct_sigmacInv_Tc(c, rall, rall);
-}
-
-void bob::learn::misc::IVectorMachine::computeTtSigmaInvFnorm(
-  const bob::learn::misc::GMMStats& gs, blitz::Array<double,1>& output) const
-{
-  // Computes \f$T^{T} \Sigma^{-1} \sum_{c=1}^{C} (F_c - N_c ubmmean_{c})\f$
-  blitz::Range rall = blitz::Range::all();
-  output = 0;
-  for (int c=0; c<(int)getNGaussians(); ++c)
-  {
-    m_tmp_d = gs.sumPx(c,rall) - gs.n(c) * m_ubm->getGaussian(c)->getMean();
-    blitz::Array<double,2> Tct_sigmacInv = m_cache_Tct_sigmacInv(c, rall, rall);
-    bob::math::prod(Tct_sigmacInv, m_tmp_d, m_tmp_t2);
-
-    output += m_tmp_t2;
-  }
-}
-
-void bob::learn::misc::IVectorMachine::forward_(const bob::learn::misc::GMMStats& gs,
-  blitz::Array<double,1>& ivector) const
-{
-  // Computes \f$(Id + \sum_{c=1}^{C} N_{i,j,c} T^{T} \Sigma_{c}^{-1} T)\f$
-  computeIdTtSigmaInvT(gs, m_tmp_tt);
-
-  // Computes \f$T^{T} \Sigma^{-1} \sum_{c=1}^{C} (F_c - N_c ubmmean_{c})\f$
-  computeTtSigmaInvFnorm(gs, m_tmp_t1);
-
-  // Solves m_tmp_tt.ivector = m_tmp_t1
-  bob::math::linsolve(m_tmp_tt, ivector, m_tmp_t1);
-}
-
diff --git a/bob/learn/misc/cpp/IVectorTrainer.cpp b/bob/learn/misc/cpp/IVectorTrainer.cpp
deleted file mode 100644
index 86adf70..0000000
--- a/bob/learn/misc/cpp/IVectorTrainer.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
- * @date Sun Mar 31 20:15:00 2013 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-
-#include <bob.learn.misc/IVectorTrainer.h>
-#include <bob.core/check.h>
-#include <bob.core/array_copy.h>
-#include <bob.core/array_random.h>
-#include <bob.math/inv.h>
-#include <bob.core/check.h>
-#include <bob.core/array_repmat.h>
-#include <algorithm>
-
-#include <bob.math/linear.h>
-#include <bob.math/linsolve.h>
-
-bob::learn::misc::IVectorTrainer::IVectorTrainer(const bool update_sigma):
-  m_update_sigma(update_sigma),
-  m_rng(new boost::mt19937())
-{}
-
-bob::learn::misc::IVectorTrainer::IVectorTrainer(const bob::learn::misc::IVectorTrainer& other):
-  m_update_sigma(other.m_update_sigma)
-{
-  m_rng                   = other.m_rng;
-  m_acc_Nij_wij2.reference(bob::core::array::ccopy(other.m_acc_Nij_wij2));
-  m_acc_Fnormij_wij.reference(bob::core::array::ccopy(other.m_acc_Fnormij_wij));
-  m_acc_Nij.reference(bob::core::array::ccopy(other.m_acc_Nij));
-  m_acc_Snormij.reference(bob::core::array::ccopy(other.m_acc_Snormij));
-
-  m_tmp_wij.reference(bob::core::array::ccopy(other.m_tmp_wij));
-  m_tmp_wij2.reference(bob::core::array::ccopy(other.m_tmp_wij2));
-  m_tmp_d1.reference(bob::core::array::ccopy(other.m_tmp_d1));
-  m_tmp_t1.reference(bob::core::array::ccopy(other.m_tmp_t1));
-  m_tmp_dd1.reference(bob::core::array::ccopy(other.m_tmp_dd1));
-  m_tmp_dt1.reference(bob::core::array::ccopy(other.m_tmp_dt1));
-  m_tmp_tt1.reference(bob::core::array::ccopy(other.m_tmp_tt1));
-  m_tmp_tt2.reference(bob::core::array::ccopy(other.m_tmp_tt2));
-}
-
-bob::learn::misc::IVectorTrainer::~IVectorTrainer()
-{
-}
-
-void bob::learn::misc::IVectorTrainer::initialize(
-  bob::learn::misc::IVectorMachine& machine)
-{
-
-  const int C = machine.getNGaussians();
-  const int D = machine.getNInputs();
-  const int Rt = machine.getDimRt();
-
-  // Cache
-  m_acc_Nij_wij2.resize(C,Rt,Rt);
-  m_acc_Fnormij_wij.resize(C,D,Rt);
-  if (m_update_sigma)
-  {
-    m_acc_Nij.resize(C);
-    m_acc_Snormij.resize(C,D);
-  }
-
-  // Tmp
-  m_tmp_wij.resize(Rt);
-  m_tmp_wij2.resize(Rt,Rt);
-  m_tmp_d1.resize(D);
-  m_tmp_t1.resize(Rt);
-
-  m_tmp_dt1.resize(D,Rt);
-  m_tmp_tt1.resize(Rt,Rt);
-  m_tmp_tt2.resize(Rt,Rt);
-  if (m_update_sigma)
-    m_tmp_dd1.resize(D,D);
-
-  // Initializes \f$T\f$ and \f$\Sigma\f$ of the machine
-  blitz::Array<double,2>& T = machine.updateT();
-  bob::core::array::randn(*m_rng, T);
-  blitz::Array<double,1>& sigma = machine.updateSigma();
-  sigma = machine.getUbm()->getVarianceSupervector();
-  machine.precompute();
-}
-
-void bob::learn::misc::IVectorTrainer::eStep(
-  bob::learn::misc::IVectorMachine& machine,
-  const std::vector<bob::learn::misc::GMMStats>& data)
-{
-  blitz::Range rall = blitz::Range::all();
-  const int C = machine.getNGaussians();
-
-  // Reinitializes accumulators to 0
-  m_acc_Nij_wij2 = 0.;
-  m_acc_Fnormij_wij = 0.;
-  if (m_update_sigma)
-  {
-    m_acc_Nij = 0.;
-    m_acc_Snormij = 0.;
-  }
-  for (std::vector<bob::learn::misc::GMMStats>::const_iterator it = data.begin();
-       it != data.end(); ++it)
-  {
-    // Computes E{wij} and E{wij.wij^{T}}
-    // a. Computes \f$T^{T} \Sigma^{-1} F_{norm}\f$
-    machine.computeTtSigmaInvFnorm(*it, m_tmp_t1);
-    // b. Computes \f$Id + T^{T} \Sigma^{-1} T\f$
-    machine.computeIdTtSigmaInvT(*it, m_tmp_tt1);
-    // c. Computes \f$(Id + T^{T} \Sigma^{-1} T)^{-1}\f$
-
-    bob::math::inv(m_tmp_tt1, m_tmp_tt2);
-    // d. Computes \f$E{wij} = (Id + T^{T} \Sigma^{-1} T)^{-1} T^{T} \Sigma^{-1} F_{norm}\f$
-    bob::math::prod(m_tmp_tt2, m_tmp_t1, m_tmp_wij); // E{wij}
-    // e.  Computes \f$E{wij}.E{wij^{T}}\f$
-    bob::math::prod(m_tmp_wij, m_tmp_wij, m_tmp_wij2);
-    // f. Computes \f$E{wij.wij^{T}} = (Id + T^{T} \Sigma^{-1} T)^{-1} + E{wij}.E{wij^{T}}\f$
-    m_tmp_wij2 += m_tmp_tt2; // E{wij.wij^{T}}
-
-    if (m_update_sigma)
-      m_acc_Nij += (*it).n;
-
-    for (int c=0; c<C; ++c)
-    {
-      blitz::Array<double,2> acc_Nij_wij2_c = m_acc_Nij_wij2(c,rall,rall);
-      blitz::Array<double,2> acc_Fnormij_wij = m_acc_Fnormij_wij(c,rall,rall);
-      // acc_Nij_wij2_c += Nijc . E{wij.wij^{T}}
-      acc_Nij_wij2_c += (*it).n(c) * m_tmp_wij2;
-      blitz::Array<double,1> mc = machine.getUbm()->getGaussian(c)->getMean();
-      // m_tmp_d1 = Fijc - Nijc * ubmmean_{c}
-      m_tmp_d1 = (*it).sumPx(c,rall) - (*it).n(c)*mc; // Fnorm_c
-      // m_tmp_dt1 = (Fijc - Nijc * ubmmean_{c}).E{wij}^{T}
-      bob::math::prod(m_tmp_d1, m_tmp_wij, m_tmp_dt1);
-      // acc_Fnormij_wij += (Fijc - Nijc * ubmmean_{c}).E{wij}^{T}
-      acc_Fnormij_wij += m_tmp_dt1;
-      if (m_update_sigma)
-      {
-        blitz::Array<double,1> acc_Snormij_c = m_acc_Snormij(c,rall);
-        acc_Snormij_c += (*it).sumPxx(c,rall) - mc*((*it).sumPx(c,rall) + m_tmp_d1);
-      }
-    }
-  }
-}
-
-void bob::learn::misc::IVectorTrainer::mStep(
-  bob::learn::misc::IVectorMachine& machine)
-{
-  blitz::Range rall = blitz::Range::all();
-  blitz::Array<double,2>& T = machine.updateT();
-  blitz::Array<double,1>& sigma = machine.updateSigma();
-  const int C = (int)machine.getNGaussians();
-  const int D = (int)machine.getNInputs();
-  for (int c=0; c<C; ++c)
-  {
-    // Solves linear system A.T = B to update T, based on accumulators of
-    // the eStep()
-    blitz::Array<double,2> acc_Nij_wij2_c = m_acc_Nij_wij2(c,rall,rall);
-    blitz::Array<double,2> tacc_Nij_wij2_c = acc_Nij_wij2_c.transpose(1,0);
-    blitz::Array<double,2> acc_Fnormij_wij_c = m_acc_Fnormij_wij(c,rall,rall);
-    blitz::Array<double,2> tacc_Fnormij_wij_c = acc_Fnormij_wij_c.transpose(1,0);
-    blitz::Array<double,2> T_c = T(blitz::Range(c*D,(c+1)*D-1),rall);
-    blitz::Array<double,2> Tt_c = T_c.transpose(1,0);
-    if (blitz::all(acc_Nij_wij2_c == 0)) // TODO
-      Tt_c = 0;
-    else
-      bob::math::linsolve(tacc_Nij_wij2_c, Tt_c, tacc_Fnormij_wij_c);
-    if (m_update_sigma)
-    {
-      blitz::Array<double,1> sigma_c = sigma(blitz::Range(c*D,(c+1)*D-1));
-      bob::math::prod(acc_Fnormij_wij_c, Tt_c, m_tmp_dd1);
-      bob::math::diag(m_tmp_dd1, m_tmp_d1);
-      sigma_c = (m_acc_Snormij(c,rall) - m_tmp_d1) / m_acc_Nij(c);
-    }
-  }
-  machine.precompute();
-}
-
-
-bob::learn::misc::IVectorTrainer& bob::learn::misc::IVectorTrainer::operator=
-  (const bob::learn::misc::IVectorTrainer &other)
-{
-  if (this != &other)
-  {    
-    m_update_sigma = other.m_update_sigma;
-
-    m_acc_Nij_wij2.reference(bob::core::array::ccopy(other.m_acc_Nij_wij2));
-    m_acc_Fnormij_wij.reference(bob::core::array::ccopy(other.m_acc_Fnormij_wij));
-    m_acc_Nij.reference(bob::core::array::ccopy(other.m_acc_Nij));
-    m_acc_Snormij.reference(bob::core::array::ccopy(other.m_acc_Snormij));
-
-    m_tmp_wij.reference(bob::core::array::ccopy(other.m_tmp_wij));
-    m_tmp_wij2.reference(bob::core::array::ccopy(other.m_tmp_wij2));
-    m_tmp_d1.reference(bob::core::array::ccopy(other.m_tmp_d1));
-    m_tmp_t1.reference(bob::core::array::ccopy(other.m_tmp_t1));
-    m_tmp_dd1.reference(bob::core::array::ccopy(other.m_tmp_dd1));
-    m_tmp_dt1.reference(bob::core::array::ccopy(other.m_tmp_dt1));
-    m_tmp_tt1.reference(bob::core::array::ccopy(other.m_tmp_tt1));
-    m_tmp_tt2.reference(bob::core::array::ccopy(other.m_tmp_tt2));
-  }
-  return *this;
-}
-
-bool bob::learn::misc::IVectorTrainer::operator==
-  (const bob::learn::misc::IVectorTrainer &other) const
-{
-  return m_update_sigma == other.m_update_sigma &&
-         bob::core::array::isEqual(m_acc_Nij_wij2, other.m_acc_Nij_wij2) &&
-         bob::core::array::isEqual(m_acc_Fnormij_wij, other.m_acc_Fnormij_wij) &&
-         bob::core::array::isEqual(m_acc_Nij, other.m_acc_Nij) &&
-         bob::core::array::isEqual(m_acc_Snormij, other.m_acc_Snormij);
-}
-
-bool bob::learn::misc::IVectorTrainer::operator!=
-  (const bob::learn::misc::IVectorTrainer &other) const
-{
-  return !(this->operator==(other));
-}
-
-bool bob::learn::misc::IVectorTrainer::is_similar_to
-  (const bob::learn::misc::IVectorTrainer &other, const double r_epsilon,
-   const double a_epsilon) const
-{
-  return m_update_sigma == other.m_update_sigma &&
-         bob::core::array::isClose(m_acc_Nij_wij2, other.m_acc_Nij_wij2, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_acc_Fnormij_wij, other.m_acc_Fnormij_wij, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_acc_Nij, other.m_acc_Nij, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_acc_Snormij, other.m_acc_Snormij, r_epsilon, a_epsilon);
-}
-
diff --git a/bob/learn/misc/cpp/JFABase.cpp b/bob/learn/misc/cpp/JFABase.cpp
deleted file mode 100644
index a87e57f..0000000
--- a/bob/learn/misc/cpp/JFABase.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * @date Tue Jan 27 15:54:00 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-
-#include <bob.learn.misc/JFABase.h>
-#include <bob.core/array_copy.h>
-#include <bob.math/linear.h>
-#include <bob.math/inv.h>
-#include <bob.learn.misc/LinearScoring.h>
-#include <limits>
-
-
-//////////////////// JFABase ////////////////////
-bob::learn::misc::JFABase::JFABase()
-{
-}
-
-bob::learn::misc::JFABase::JFABase(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm,
-    const size_t ru, const size_t rv):
-  m_base(ubm, ru, rv)
-{
-}
-
-bob::learn::misc::JFABase::JFABase(const bob::learn::misc::JFABase& other):
-  m_base(other.m_base)
-{
-}
-
-
-bob::learn::misc::JFABase::JFABase(bob::io::base::HDF5File& config)
-{
-  load(config);
-}
-
-bob::learn::misc::JFABase::~JFABase() {
-}
-
-void bob::learn::misc::JFABase::save(bob::io::base::HDF5File& config) const
-{
-  config.setArray("U", m_base.getU());
-  config.setArray("V", m_base.getV());
-  config.setArray("d", m_base.getD());
-}
-
-void bob::learn::misc::JFABase::load(bob::io::base::HDF5File& config)
-{
-  //reads all data directly into the member variables
-  blitz::Array<double,2> U = config.readArray<double,2>("U");
-  blitz::Array<double,2> V = config.readArray<double,2>("V");
-  blitz::Array<double,1> d = config.readArray<double,1>("d");
-  const int ru = U.extent(1);
-  const int rv = V.extent(1);
-  if (!m_base.getUbm())
-    m_base.resize(ru, rv, U.extent(0));
-  else
-    m_base.resize(ru, rv);
-  m_base.setU(U);
-  m_base.setV(V);
-  m_base.setD(d);
-}
-
-bob::learn::misc::JFABase&
-bob::learn::misc::JFABase::operator=(const bob::learn::misc::JFABase& other)
-{
-  if (this != &other)
-  {
-    m_base = other.m_base;
-  }
-  return *this;
-}
diff --git a/bob/learn/misc/cpp/JFAMachine.cpp b/bob/learn/misc/cpp/JFAMachine.cpp
deleted file mode 100644
index ae4d1d2..0000000
--- a/bob/learn/misc/cpp/JFAMachine.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- * @date Tue Jan 27 16:47:00 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-
-#include <bob.learn.misc/JFAMachine.h>
-#include <bob.core/array_copy.h>
-#include <bob.math/linear.h>
-#include <bob.math/inv.h>
-#include <bob.learn.misc/LinearScoring.h>
-#include <limits>
-
-
-//////////////////// JFAMachine ////////////////////
-bob::learn::misc::JFAMachine::JFAMachine():
-  m_y(1), m_z(1)
-{
-  resizeTmp();
-}
-
-bob::learn::misc::JFAMachine::JFAMachine(const boost::shared_ptr<bob::learn::misc::JFABase> jfa_base):
-  m_jfa_base(jfa_base),
-  m_y(jfa_base->getDimRv()), m_z(jfa_base->getSupervectorLength())
-{
-  if (!m_jfa_base->getUbm()) throw std::runtime_error("No UBM was set in the JFA machine.");
-  updateCache();
-  resizeTmp();
-}
-
-
-bob::learn::misc::JFAMachine::JFAMachine(const bob::learn::misc::JFAMachine& other):
-  m_jfa_base(other.m_jfa_base),
-  m_y(bob::core::array::ccopy(other.m_y)),
-  m_z(bob::core::array::ccopy(other.m_z))
-{
-  updateCache();
-  resizeTmp();
-}
-
-bob::learn::misc::JFAMachine::JFAMachine(bob::io::base::HDF5File& config)
-{
-  load(config);
-}
-
-bob::learn::misc::JFAMachine::~JFAMachine() {
-}
-
-bob::learn::misc::JFAMachine&
-bob::learn::misc::JFAMachine::operator=(const bob::learn::misc::JFAMachine& other)
-{
-  if (this != &other)
-  {
-    m_jfa_base = other.m_jfa_base;
-    m_y.reference(bob::core::array::ccopy(other.m_y));
-    m_z.reference(bob::core::array::ccopy(other.m_z));
-  }
-  return *this;
-}
-
-bool bob::learn::misc::JFAMachine::operator==(const bob::learn::misc::JFAMachine& other) const
-{
-  return (*m_jfa_base == *(other.m_jfa_base) &&
-          bob::core::array::isEqual(m_y, other.m_y) &&
-          bob::core::array::isEqual(m_z, other.m_z));
-}
-
-bool bob::learn::misc::JFAMachine::operator!=(const bob::learn::misc::JFAMachine& b) const
-{
-  return !(this->operator==(b));
-}
-
-
-bool bob::learn::misc::JFAMachine::is_similar_to(const bob::learn::misc::JFAMachine& b,
-    const double r_epsilon, const double a_epsilon) const
-{
-  return (m_jfa_base->is_similar_to(*(b.m_jfa_base), r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_y, b.m_y, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_z, b.m_z, r_epsilon, a_epsilon));
-}
-
-void bob::learn::misc::JFAMachine::save(bob::io::base::HDF5File& config) const
-{
-  config.setArray("y", m_y);
-  config.setArray("z", m_z);
-}
-
-void bob::learn::misc::JFAMachine::load(bob::io::base::HDF5File& config)
-{
-  //reads all data directly into the member variables
-  blitz::Array<double,1> y = config.readArray<double,1>("y");
-  blitz::Array<double,1> z = config.readArray<double,1>("z");
-  if (!m_jfa_base)
-  {
-    m_y.resize(y.extent(0));
-    m_z.resize(z.extent(0));
-  }
-  setY(y);
-  setZ(z);
-  // update cache
-  updateCache();
-  resizeTmp();
-}
-
-
-void bob::learn::misc::JFAMachine::setY(const blitz::Array<double,1>& y)
-{
-  if(y.extent(0) != m_y.extent(0)) { //checks dimension
-    boost::format m("size of input vector `y' (%d) does not match the expected size (%d)");
-    m % y.extent(0) % m_y.extent(0);
-    throw std::runtime_error(m.str());
-  }
-  m_y.reference(bob::core::array::ccopy(y));
-  // update cache
-  updateCache();
-}
-
-void bob::learn::misc::JFAMachine::setZ(const blitz::Array<double,1>& z)
-{
-  if(z.extent(0) != m_z.extent(0)) { //checks dimension
-    boost::format m("size of input vector `z' (%d) does not match the expected size (%d)");
-    m % z.extent(0) % m_z.extent(0);
-    throw std::runtime_error(m.str());
-  }
-  m_z.reference(bob::core::array::ccopy(z));
-  // update cache
-  updateCache();
-}
-
-void bob::learn::misc::JFAMachine::setJFABase(const boost::shared_ptr<bob::learn::misc::JFABase> jfa_base)
-{
-  if (!jfa_base->getUbm())
-    throw std::runtime_error("No UBM was set in the JFA machine.");
-  m_jfa_base = jfa_base;
-  // Resize variables
-  resize();
-}
-
-void bob::learn::misc::JFAMachine::resize()
-{
-  m_y.resizeAndPreserve(getDimRv());
-  m_z.resizeAndPreserve(getSupervectorLength());
-  updateCache();
-  resizeTmp();
-}
-
-void bob::learn::misc::JFAMachine::resizeTmp()
-{
-  if (m_jfa_base)
-  {
-    m_tmp_Ux.resize(getSupervectorLength());
-  }
-}
-
-void bob::learn::misc::JFAMachine::updateCache()
-{
-  if (m_jfa_base)
-  {
-    // m + Vy + Dz
-    m_cache_mVyDz.resize(getSupervectorLength());
-    bob::math::prod(m_jfa_base->getV(), m_y, m_cache_mVyDz);
-    m_cache_mVyDz += m_jfa_base->getD()*m_z + m_jfa_base->getUbm()->getMeanSupervector();
-    m_cache_x.resize(getDimRu());
-  }
-}
-
-void bob::learn::misc::JFAMachine::estimateUx(const bob::learn::misc::GMMStats& gmm_stats,
-  blitz::Array<double,1>& Ux)
-{
-  estimateX(gmm_stats, m_cache_x);
-  bob::math::prod(m_jfa_base->getU(), m_cache_x, Ux);
-}
-
-double bob::learn::misc::JFAMachine::forward(const bob::learn::misc::GMMStats& input)
-{
-  return forward_(input);
-}
-
-double bob::learn::misc::JFAMachine::forward(const bob::learn::misc::GMMStats& gmm_stats,
-  const blitz::Array<double,1>& Ux)
-{
-  // Checks that a Base machine has been set
-  if (!m_jfa_base) throw std::runtime_error("No UBM was set in the JFA machine.");
-
-  return bob::learn::misc::linearScoring(m_cache_mVyDz,
-            m_jfa_base->getUbm()->getMeanSupervector(), m_jfa_base->getUbm()->getVarianceSupervector(),
-            gmm_stats, Ux, true);
-}
-
-double bob::learn::misc::JFAMachine::forward_(const bob::learn::misc::GMMStats& input)
-{
-  // Checks that a Base machine has been set
-  if (!m_jfa_base) throw std::runtime_error("No UBM was set in the JFA machine.");
-
-  // Ux and GMMStats
-  estimateX(input, m_cache_x);
-  bob::math::prod(m_jfa_base->getU(), m_cache_x, m_tmp_Ux);
-
-  return bob::learn::misc::linearScoring(m_cache_mVyDz,
-            m_jfa_base->getUbm()->getMeanSupervector(), m_jfa_base->getUbm()->getVarianceSupervector(),
-            input, m_tmp_Ux, true);
-}
-
diff --git a/bob/learn/misc/cpp/JFATrainer.cpp b/bob/learn/misc/cpp/JFATrainer.cpp
deleted file mode 100644
index ecb23a2..0000000
--- a/bob/learn/misc/cpp/JFATrainer.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/**
- * @date Tue Jul 19 12:16:17 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief Joint Factor Analysis Trainer
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/JFATrainer.h>
-#include <bob.core/check.h>
-#include <bob.core/array_copy.h>
-#include <bob.core/array_random.h>
-#include <bob.math/inv.h>
-#include <bob.math/linear.h>
-#include <bob.core/check.h>
-#include <bob.core/array_repmat.h>
-#include <algorithm>
-
-
-//////////////////////////// JFATrainer ///////////////////////////
-bob::learn::misc::JFATrainer::JFATrainer():
-  m_rng(new boost::mt19937())
-{}
-
-bob::learn::misc::JFATrainer::JFATrainer(const bob::learn::misc::JFATrainer& other):
- m_rng(other.m_rng)
-{}
-
-bob::learn::misc::JFATrainer::~JFATrainer()
-{}
-
-bob::learn::misc::JFATrainer& bob::learn::misc::JFATrainer::operator=
-(const bob::learn::misc::JFATrainer& other)
-{
-  if (this != &other)
-  {
-    //m_max_iterations = other.m_max_iterations;
-    m_rng = other.m_rng;
-  }
-  return *this;
-}
-
-bool bob::learn::misc::JFATrainer::operator==(const bob::learn::misc::JFATrainer& b) const
-{
-  //return m_max_iterations == b.m_max_iterations && *m_rng == *(b.m_rng);
-  return *m_rng == *(b.m_rng);
-}
-
-bool bob::learn::misc::JFATrainer::operator!=(const bob::learn::misc::JFATrainer& b) const
-{
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::JFATrainer::is_similar_to(const bob::learn::misc::JFATrainer& b,
-  const double r_epsilon, const double a_epsilon) const
-{
-  //return m_max_iterations == b.m_max_iterations && *m_rng == *(b.m_rng);
-  return *m_rng == *(b.m_rng);
-}
-
-void bob::learn::misc::JFATrainer::initialize(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  m_base_trainer.initUbmNidSumStatistics(machine.getBase(), ar);
-  m_base_trainer.initializeXYZ(ar);
-
-  blitz::Array<double,2>& U = machine.updateU();
-  bob::core::array::randn(*m_rng, U);
-  blitz::Array<double,2>& V = machine.updateV();
-  bob::core::array::randn(*m_rng, V);
-  blitz::Array<double,1>& D = machine.updateD();
-  bob::core::array::randn(*m_rng, D);
-  machine.precompute();
-}
-
-void bob::learn::misc::JFATrainer::eStep1(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  const bob::learn::misc::FABase& base = machine.getBase();
-  m_base_trainer.updateY(base, ar);
-  m_base_trainer.computeAccumulatorsV(base, ar);
-}
-
-void bob::learn::misc::JFATrainer::mStep1(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  blitz::Array<double,2>& V = machine.updateV();
-  m_base_trainer.updateV(V);
-}
-
-void bob::learn::misc::JFATrainer::finalize1(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  const bob::learn::misc::FABase& base = machine.getBase();
-  m_base_trainer.updateY(base, ar);
-}
-
-
-void bob::learn::misc::JFATrainer::eStep2(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  const bob::learn::misc::FABase& base = machine.getBase();
-  m_base_trainer.updateX(base, ar);
-  m_base_trainer.computeAccumulatorsU(base, ar);
-}
-
-void bob::learn::misc::JFATrainer::mStep2(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  blitz::Array<double,2>& U = machine.updateU();
-  m_base_trainer.updateU(U);
-  machine.precompute();
-}
-
-void bob::learn::misc::JFATrainer::finalize2(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  const bob::learn::misc::FABase& base = machine.getBase();
-  m_base_trainer.updateX(base, ar);
-}
-
-
-void bob::learn::misc::JFATrainer::eStep3(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  const bob::learn::misc::FABase& base = machine.getBase();
-  m_base_trainer.updateZ(base, ar);
-  m_base_trainer.computeAccumulatorsD(base, ar);
-}
-
-void bob::learn::misc::JFATrainer::mStep3(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  blitz::Array<double,1>& d = machine.updateD();
-  m_base_trainer.updateD(d);
-}
-
-void bob::learn::misc::JFATrainer::finalize3(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-}
-
-/*
-void bob::learn::misc::JFATrainer::train_loop(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  // V subspace
-  for (size_t i=0; i<m_max_iterations; ++i) {
-    eStep1(machine, ar);
-    mStep1(machine, ar);
-  }
-  finalize1(machine, ar);
-  // U subspace
-  for (size_t i=0; i<m_max_iterations; ++i) {
-    eStep2(machine, ar);
-    mStep2(machine, ar);
-  }
-  finalize2(machine, ar);
-  // d subspace
-  for (size_t i=0; i<m_max_iterations; ++i) {
-    eStep3(machine, ar);
-    mStep3(machine, ar);
-  }
-  finalize3(machine, ar);
-}*/
-
-/*
-void bob::learn::misc::JFATrainer::train(bob::learn::misc::JFABase& machine,
-  const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar)
-{
-  initialize(machine, ar);
-  train_loop(machine, ar);
-}
-*/
-
-void bob::learn::misc::JFATrainer::enrol(bob::learn::misc::JFAMachine& machine,
-  const std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& ar,
-  const size_t n_iter)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > vvec;
-  vvec.push_back(ar);
-
-  const bob::learn::misc::FABase& fb = machine.getJFABase()->getBase();
-
-  m_base_trainer.initUbmNidSumStatistics(fb, vvec);
-  m_base_trainer.initializeXYZ(vvec);
-
-  for (size_t i=0; i<n_iter; ++i) {
-    m_base_trainer.updateY(fb, vvec);
-    m_base_trainer.updateX(fb, vvec);
-    m_base_trainer.updateZ(fb, vvec);
-  }
-
-  const blitz::Array<double,1> y(m_base_trainer.getY()[0]);
-  const blitz::Array<double,1> z(m_base_trainer.getZ()[0]);
-  machine.setY(y);
-  machine.setZ(z);
-}
-
diff --git a/bob/learn/misc/cpp/KMeansMachine.cpp b/bob/learn/misc/cpp/KMeansMachine.cpp
deleted file mode 100644
index 7b4a5a2..0000000
--- a/bob/learn/misc/cpp/KMeansMachine.cpp
+++ /dev/null
@@ -1,258 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/KMeansMachine.h>
-
-#include <bob.core/assert.h>
-#include <bob.core/check.h>
-#include <bob.core/array_copy.h>
-#include <limits>
-
-bob::learn::misc::KMeansMachine::KMeansMachine():
-  m_n_means(0), m_n_inputs(0), m_means(0,0),
-  m_cache_means(0,0)
-{
-  m_means = 0;
-}
-
-bob::learn::misc::KMeansMachine::KMeansMachine(const size_t n_means, const size_t n_inputs):
-  m_n_means(n_means), m_n_inputs(n_inputs), m_means(n_means, n_inputs),
-  m_cache_means(n_means, n_inputs)
-{
-  m_means = 0;
-}
-
-bob::learn::misc::KMeansMachine::KMeansMachine(const blitz::Array<double,2>& means):
-  m_n_means(means.extent(0)), m_n_inputs(means.extent(1)),
-  m_means(bob::core::array::ccopy(means)),
-  m_cache_means(means.shape())
-{
-}
-
-bob::learn::misc::KMeansMachine::KMeansMachine(const bob::learn::misc::KMeansMachine& other):
-  m_n_means(other.m_n_means), m_n_inputs(other.m_n_inputs),
-  m_means(bob::core::array::ccopy(other.m_means)),
-  m_cache_means(other.m_cache_means.shape())
-{
-}
-
-bob::learn::misc::KMeansMachine::KMeansMachine(bob::io::base::HDF5File& config)
-{
-  load(config);
-}
-
-bob::learn::misc::KMeansMachine::~KMeansMachine() { }
-
-bob::learn::misc::KMeansMachine& bob::learn::misc::KMeansMachine::operator=
-(const bob::learn::misc::KMeansMachine& other)
-{
-  if(this != &other)
-  {
-    m_n_means = other.m_n_means;
-    m_n_inputs = other.m_n_inputs;
-    m_means.reference(bob::core::array::ccopy(other.m_means));
-    m_cache_means.resize(other.m_means.shape());
-  }
-  return *this;
-}
-
-bool bob::learn::misc::KMeansMachine::operator==(const bob::learn::misc::KMeansMachine& b) const
-{
-  return m_n_inputs == b.m_n_inputs && m_n_means == b.m_n_means &&
-         bob::core::array::isEqual(m_means, b.m_means);
-}
-
-bool bob::learn::misc::KMeansMachine::operator!=(const bob::learn::misc::KMeansMachine& b) const
-{
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::KMeansMachine::is_similar_to(const bob::learn::misc::KMeansMachine& b,
-  const double r_epsilon, const double a_epsilon) const
-{
-  return m_n_inputs == b.m_n_inputs && m_n_means == b.m_n_means &&
-         bob::core::array::isClose(m_means, b.m_means, r_epsilon, a_epsilon);
-}
-
-void bob::learn::misc::KMeansMachine::load(bob::io::base::HDF5File& config)
-{
-  //reads all data directly into the member variables
-  m_means.reference(config.readArray<double,2>("means"));
-  m_n_means = m_means.extent(0);
-  m_n_inputs = m_means.extent(1);
-  m_cache_means.resize(m_n_means, m_n_inputs);
-}
-
-void bob::learn::misc::KMeansMachine::save(bob::io::base::HDF5File& config) const
-{
-  config.setArray("means", m_means);
-}
-
-void bob::learn::misc::KMeansMachine::setMeans(const blitz::Array<double,2> &means)
-{
-  bob::core::array::assertSameShape(means, m_means);
-  m_means = means;
-}
-
-void bob::learn::misc::KMeansMachine::setMean(const size_t i, const blitz::Array<double,1> &mean)
-{
-  if(i>=m_n_means) {
-    boost::format m("cannot set mean with index %lu: out of bounds [0,%lu[");
-    m % i % m_n_means;
-    throw std::runtime_error(m.str());
-  }
-  bob::core::array::assertSameDimensionLength(mean.extent(0), m_means.extent(1));
-  m_means(i,blitz::Range::all()) = mean;
-}
-
-const blitz::Array<double,1> bob::learn::misc::KMeansMachine::getMean(const size_t i) const
-{
-  if(i>=m_n_means) {
-    boost::format m("cannot get mean with index %lu: out of bounds [0,%lu[");
-    m % i % m_n_means;
-    throw std::runtime_error(m.str());
-  }
-
-  return m_means(i,blitz::Range::all());
-
-}
-
-double bob::learn::misc::KMeansMachine::getDistanceFromMean(const blitz::Array<double,1> &x,
-  const size_t i) const
-{
-  return blitz::sum(blitz::pow2(m_means(i,blitz::Range::all()) - x));
-}
-
-void bob::learn::misc::KMeansMachine::getClosestMean(const blitz::Array<double,1> &x,
-  size_t &closest_mean, double &min_distance) const
-{
-  min_distance = std::numeric_limits<double>::max();
-
-  for(size_t i=0; i<m_n_means; ++i) {
-    double this_distance = getDistanceFromMean(x,i);
-    if(this_distance < min_distance) {
-      min_distance = this_distance;
-      closest_mean = i;
-    }
-  }
-}
-
-double bob::learn::misc::KMeansMachine::getMinDistance(const blitz::Array<double,1>& input) const
-{
-  size_t closest_mean = 0;
-  double min_distance = 0;
-  getClosestMean(input,closest_mean,min_distance);
-  return min_distance;
-}
-
-void bob::learn::misc::KMeansMachine::getVariancesAndWeightsForEachClusterInit(blitz::Array<double,2>& variances, blitz::Array<double,1>& weights) const
-{
-  // check arguments
-  bob::core::array::assertSameShape(variances, m_means);
-  bob::core::array::assertSameDimensionLength(weights.extent(0), m_n_means);
-
-  // initialise output arrays
-  bob::core::array::assertSameShape(variances, m_means);
-  bob::core::array::assertSameDimensionLength(weights.extent(0), m_n_means);
-  variances = 0;
-  weights = 0;
-
-  // initialise (temporary) mean array
-  m_cache_means = 0;
-}
-
-void bob::learn::misc::KMeansMachine::getVariancesAndWeightsForEachClusterAcc(const blitz::Array<double,2>& data, blitz::Array<double,2>& variances, blitz::Array<double,1>& weights) const
-{
-  // check arguments
-  bob::core::array::assertSameShape(variances, m_means);
-  bob::core::array::assertSameDimensionLength(weights.extent(0), m_n_means);
-
-  // iterate over data
-  blitz::Range a = blitz::Range::all();
-  for(int i=0; i<data.extent(0); ++i) {
-    // - get example
-    blitz::Array<double,1> x(data(i,a));
-
-    // - find closest mean
-    size_t closest_mean = 0;
-    double min_distance = 0;
-    getClosestMean(x,closest_mean,min_distance);
-
-    // - accumulate stats
-    m_cache_means(closest_mean, blitz::Range::all()) += x;
-    variances(closest_mean, blitz::Range::all()) += blitz::pow2(x);
-    ++weights(closest_mean);
-  }
-}
-
-void bob::learn::misc::KMeansMachine::getVariancesAndWeightsForEachClusterFin(blitz::Array<double,2>& variances, blitz::Array<double,1>& weights) const
-{
-  // check arguments
-  bob::core::array::assertSameShape(variances, m_means);
-  bob::core::array::assertSameDimensionLength(weights.extent(0), m_n_means);
-
-  // calculate final variances and weights
-  blitz::firstIndex idx1;
-  blitz::secondIndex idx2;
-
-  // find means
-  m_cache_means = m_cache_means(idx1,idx2) / weights(idx1);
-
-  // find variances
-  variances = variances(idx1,idx2) / weights(idx1);
-  variances -= blitz::pow2(m_cache_means);
-
-  // find weights
-  weights = weights / blitz::sum(weights);
-}
-
-void bob::learn::misc::KMeansMachine::setCacheMeans(const blitz::Array<double,2> &cache_means)
-{
-  bob::core::array::assertSameShape(cache_means, m_cache_means);
-  m_cache_means = cache_means;
-}
-
-void bob::learn::misc::KMeansMachine::getVariancesAndWeightsForEachCluster(const blitz::Array<double,2>& data, blitz::Array<double,2>& variances, blitz::Array<double,1>& weights) const
-{
-  // initialise
-  getVariancesAndWeightsForEachClusterInit(variances, weights);
-  // accumulate
-  getVariancesAndWeightsForEachClusterAcc(data, variances, weights);
-  // merge/finalize
-  getVariancesAndWeightsForEachClusterFin(variances, weights);
-}
-
-void bob::learn::misc::KMeansMachine::forward(const blitz::Array<double,1>& input, double& output) const
-{
-  if(static_cast<size_t>(input.extent(0)) != m_n_inputs) {
-    boost::format m("machine input size (%u) does not match the size of input array (%d)");
-    m % m_n_inputs % input.extent(0);
-    throw std::runtime_error(m.str());
-  }
-  forward_(input,output);
-}
-
-void bob::learn::misc::KMeansMachine::forward_(const blitz::Array<double,1>& input, double& output) const
-{
-  output = getMinDistance(input);
-}
-
-void bob::learn::misc::KMeansMachine::resize(const size_t n_means, const size_t n_inputs)
-{
-  m_n_means = n_means;
-  m_n_inputs = n_inputs;
-  m_means.resizeAndPreserve(n_means, n_inputs);
-  m_cache_means.resizeAndPreserve(n_means, n_inputs);
-}
-
-namespace bob { namespace learn { namespace misc {
-  std::ostream& operator<<(std::ostream& os, const KMeansMachine& km) {
-    os << "Means = " << km.m_means << std::endl;
-    return os;
-  }
-} } }
diff --git a/bob/learn/misc/cpp/KMeansTrainer.cpp b/bob/learn/misc/cpp/KMeansTrainer.cpp
deleted file mode 100644
index 36c628c..0000000
--- a/bob/learn/misc/cpp/KMeansTrainer.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/KMeansTrainer.h>
-#include <bob.core/array_copy.h>
-
-#include <boost/random.hpp>
-#include <bob.core/random.h>
-
-
-bob::learn::misc::KMeansTrainer::KMeansTrainer(InitializationMethod i_m):
-m_rng(new boost::mt19937()),
-m_average_min_distance(0),
-m_zeroethOrderStats(0),
-m_firstOrderStats(0)
-{
-  m_initialization_method = i_m;
-}
-
-
-bob::learn::misc::KMeansTrainer::KMeansTrainer(const bob::learn::misc::KMeansTrainer& other){
-    
-  m_initialization_method = other.m_initialization_method;  
-  m_rng                   = other.m_rng;
-  m_average_min_distance  = other.m_average_min_distance;
-  m_zeroethOrderStats     = bob::core::array::ccopy(other.m_zeroethOrderStats); 
-  m_firstOrderStats       = bob::core::array::ccopy(other.m_firstOrderStats);
-}
-
-
-bob::learn::misc::KMeansTrainer& bob::learn::misc::KMeansTrainer::operator=
-(const bob::learn::misc::KMeansTrainer& other)
-{
-  if(this != &other)
-  {
-    m_rng                         = other.m_rng;
-    m_initialization_method       = other.m_initialization_method;
-    m_average_min_distance        = other.m_average_min_distance;
-
-    m_zeroethOrderStats = bob::core::array::ccopy(other.m_zeroethOrderStats);
-    m_firstOrderStats   = bob::core::array::ccopy(other.m_firstOrderStats);
-  }
-  return *this;
-}
-
-
-bool bob::learn::misc::KMeansTrainer::operator==(const bob::learn::misc::KMeansTrainer& b) const {
-  return
-         m_initialization_method == b.m_initialization_method &&
-         *m_rng == *(b.m_rng) && m_average_min_distance == b.m_average_min_distance &&
-         bob::core::array::hasSameShape(m_zeroethOrderStats, b.m_zeroethOrderStats) &&
-         bob::core::array::hasSameShape(m_firstOrderStats, b.m_firstOrderStats) &&
-         blitz::all(m_zeroethOrderStats == b.m_zeroethOrderStats) &&
-         blitz::all(m_firstOrderStats == b.m_firstOrderStats);
-}
-
-bool bob::learn::misc::KMeansTrainer::operator!=(const bob::learn::misc::KMeansTrainer& b) const {
-  return !(this->operator==(b));
-}
-
-void bob::learn::misc::KMeansTrainer::initialize(bob::learn::misc::KMeansMachine& kmeans,
-  const blitz::Array<double,2>& ar)
-{
-  // split data into as many chunks as there are means
-  size_t n_data = ar.extent(0);
-
-  // assign the i'th mean to a random example within the i'th chunk
-  blitz::Range a = blitz::Range::all();
-  if(m_initialization_method == RANDOM || m_initialization_method == RANDOM_NO_DUPLICATE) // Random initialization
-  {
-    unsigned int n_chunk = n_data / kmeans.getNMeans();
-    size_t n_max_trials = (size_t)n_chunk * 5;
-    blitz::Array<double,1> cur_mean;
-    if(m_initialization_method == RANDOM_NO_DUPLICATE)
-      cur_mean.resize(kmeans.getNInputs());
-
-    for(size_t i=0; i<kmeans.getNMeans(); ++i)
-    {
-      boost::uniform_int<> die(i*n_chunk, (i+1)*n_chunk-1);
-
-      // get random index within chunk
-      unsigned int index = die(*m_rng);
-
-      // get the example at that index
-      blitz::Array<double, 1> mean = ar(index,a);
-
-      if(m_initialization_method == RANDOM_NO_DUPLICATE)
-      {
-        size_t count = 0;
-        while(count < n_max_trials)
-        {
-          // check that the selected sampled is different than all the previously
-          // selected ones
-          bool valid = true;
-          for(size_t j=0; j<i && valid; ++j)
-          {
-            cur_mean = kmeans.getMean(j);
-            valid = blitz::any(mean != cur_mean);
-          }
-          // if different, stop otherwise, try with another one
-          if(valid)
-            break;
-          else
-          {
-            index = die(*m_rng);
-            mean = ar(index,a);
-            ++count;
-          }
-        }
-        // Initialization fails
-        if(count >= n_max_trials) {
-          boost::format m("initialization failure: surpassed the maximum number of trials (%u)");
-          m % n_max_trials;
-          throw std::runtime_error(m.str());
-        }
-      }
-
-      // set the mean
-      kmeans.setMean(i, mean);
-    }
-  }
-  else // K-Means++
-  {
-    // 1.a. Selects one sample randomly
-    boost::uniform_int<> die(0, n_data-1);
-    //   Gets the example at a random index
-    blitz::Array<double,1> mean = ar(die(*m_rng),a);
-    kmeans.setMean(0, mean);
-
-    // 1.b. Loops, computes probability distribution and select samples accordingly
-    blitz::Array<double,1> weights(n_data);
-    for(size_t m=1; m<kmeans.getNMeans(); ++m)
-    {
-      // For each sample, puts the distance to the closest mean in the weight vector
-      for(size_t s=0; s<n_data; ++s)
-      {
-        blitz::Array<double,1> s_cur = ar(s,a);
-        double& w_cur = weights(s);
-        // Initializes with the distance to first mean
-        w_cur = kmeans.getDistanceFromMean(s_cur, 0);
-        // Loops over the remaining mean and update the mean distance if required
-        for(size_t i=1; i<m; ++i)
-          w_cur = std::min(w_cur, kmeans.getDistanceFromMean(s_cur, i));
-      }
-      // Square and normalize the weights vectors such that
-      // \f$weights[x] = D(x)^{2} \sum_{y} D(y)^{2}\f$
-      weights = blitz::pow2(weights);
-      weights /= blitz::sum(weights);
-
-      // Takes a sample according to the weights distribution
-      // Blitz iterators is fine as the weights array should be C-style contiguous
-      bob::core::array::assertCContiguous(weights);
-      bob::core::random::discrete_distribution<> die2(weights.begin(), weights.end());
-      blitz::Array<double,1> new_mean = ar(die2(*m_rng),a);
-      kmeans.setMean(m, new_mean);
-    }
-  }
-   // Resize the accumulator
-  m_zeroethOrderStats.resize(kmeans.getNMeans());
-  m_firstOrderStats.resize(kmeans.getNMeans(), kmeans.getNInputs());
-}
-
-void bob::learn::misc::KMeansTrainer::eStep(bob::learn::misc::KMeansMachine& kmeans,
-  const blitz::Array<double,2>& ar)
-{
-  // initialise the accumulators
-  resetAccumulators(kmeans);
-
-  // iterate over data samples
-  blitz::Range a = blitz::Range::all();
-  for(int i=0; i<ar.extent(0); ++i) {
-    // get example
-    blitz::Array<double, 1> x(ar(i,a));
-
-    // find closest mean, and distance from that mean
-    size_t closest_mean = 0;
-    double min_distance = 0;
-    kmeans.getClosestMean(x,closest_mean,min_distance);
-
-    // accumulate the stats
-    m_average_min_distance += min_distance;
-    ++m_zeroethOrderStats(closest_mean);
-    m_firstOrderStats(closest_mean,blitz::Range::all()) += x;
-  }
-  m_average_min_distance /= static_cast<double>(ar.extent(0));
-}
-
-void bob::learn::misc::KMeansTrainer::mStep(bob::learn::misc::KMeansMachine& kmeans)
-{
-  blitz::Array<double,2>& means = kmeans.updateMeans();
-  for(size_t i=0; i<kmeans.getNMeans(); ++i)
-  {
-    means(i,blitz::Range::all()) =
-      m_firstOrderStats(i,blitz::Range::all()) / m_zeroethOrderStats(i);
-  }
-}
-
-double bob::learn::misc::KMeansTrainer::computeLikelihood(bob::learn::misc::KMeansMachine& kmeans)
-{
-  return m_average_min_distance;
-}
-
-
-bool bob::learn::misc::KMeansTrainer::resetAccumulators(bob::learn::misc::KMeansMachine& kmeans)
-{
-  m_average_min_distance = 0;
-  m_zeroethOrderStats = 0;
-  m_firstOrderStats = 0;
-  return true;
-}
-
-void bob::learn::misc::KMeansTrainer::setZeroethOrderStats(const blitz::Array<double,1>& zeroethOrderStats)
-{
-  bob::core::array::assertSameShape(m_zeroethOrderStats, zeroethOrderStats);
-  m_zeroethOrderStats = zeroethOrderStats;
-}
-
-void bob::learn::misc::KMeansTrainer::setFirstOrderStats(const blitz::Array<double,2>& firstOrderStats)
-{
-  bob::core::array::assertSameShape(m_firstOrderStats, firstOrderStats);
-  m_firstOrderStats = firstOrderStats;
-}
-
diff --git a/bob/learn/misc/cpp/LinearScoring.cpp b/bob/learn/misc/cpp/LinearScoring.cpp
deleted file mode 100644
index e504f22..0000000
--- a/bob/learn/misc/cpp/LinearScoring.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- * @date Wed Jul 13 16:00:04 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-#include <bob.learn.misc/LinearScoring.h>
-#include <bob.math/linear.h>
-
-
-static void _linearScoring(const std::vector<blitz::Array<double,1> >& models,
-                   const blitz::Array<double,1>& ubm_mean,
-                   const blitz::Array<double,1>& ubm_variance,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const std::vector<blitz::Array<double,1> >* test_channelOffset,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double,2>& scores)
-{
-  int C = test_stats[0]->sumPx.extent(0);
-  int D = test_stats[0]->sumPx.extent(1);
-  int CD = C*D;
-  int Tt = test_stats.size();
-  int Tm = models.size();
-
-  // Check output size
-  bob::core::array::assertSameDimensionLength(scores.extent(0), models.size());
-  bob::core::array::assertSameDimensionLength(scores.extent(1), test_stats.size());
-
-  blitz::Array<double,2> A(Tm, CD);
-  blitz::Array<double,2> B(CD, Tt);
-
-  // 1) Compute A
-  for(int t=0; t<Tm; ++t) {
-    blitz::Array<double, 1> tmp = A(t, blitz::Range::all());
-    tmp = (models[t] - ubm_mean) / ubm_variance;
-  }
-
-  // 2) Compute B
-  if(test_channelOffset == 0) {
-    for(int t=0; t<Tt; ++t)
-      for(int s=0; s<CD; ++s)
-        B(s, t) = test_stats[t]->sumPx(s/D, s%D) - (ubm_mean(s) * test_stats[t]->n(s/D));
-  }
-  else {
-    bob::core::array::assertSameDimensionLength((*test_channelOffset).size(), Tt);
-
-    for(int t=0; t<Tt; ++t) {
-      bob::core::array::assertSameDimensionLength((*test_channelOffset)[t].extent(0), CD);
-      for(int s=0; s<CD; ++s)
-        B(s, t) = test_stats[t]->sumPx(s/D, s%D) - (test_stats[t]->n(s/D) * (ubm_mean(s) + (*test_channelOffset)[t](s)));
-    }
-  }
-
-  // Apply the normalisation if needed
-  if(frame_length_normalisation) {
-    for(int t=0; t<Tt; ++t) {
-      double sum_N = test_stats[t]->T;
-      blitz::Array<double, 1> v_t = B(blitz::Range::all(),t);
-
-      if (sum_N <= std::numeric_limits<double>::epsilon() && sum_N >= -std::numeric_limits<double>::epsilon())
-        v_t = 0;
-      else
-        v_t /= sum_N;
-    }
-  }
-
-  // 3) Compute LLR
-  bob::math::prod(A, B, scores);
-}
-
-
-void bob::learn::misc::linearScoring(const std::vector<blitz::Array<double,1> >& models,
-                   const blitz::Array<double,1>& ubm_mean, const blitz::Array<double,1>& ubm_variance,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const std::vector<blitz::Array<double,1> >& test_channelOffset,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double, 2>& scores)
-{
-  _linearScoring(models, ubm_mean, ubm_variance, test_stats, &test_channelOffset, frame_length_normalisation, scores);
-}
-
-void bob::learn::misc::linearScoring(const std::vector<blitz::Array<double,1> >& models,
-                   const blitz::Array<double,1>& ubm_mean, const blitz::Array<double,1>& ubm_variance,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double, 2>& scores)
-{
-  _linearScoring(models, ubm_mean, ubm_variance, test_stats, 0, frame_length_normalisation, scores);
-}
-
-void bob::learn::misc::linearScoring(const std::vector<boost::shared_ptr<const bob::learn::misc::GMMMachine> >& models,
-                   const bob::learn::misc::GMMMachine& ubm,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double, 2>& scores)
-{
-  int C = test_stats[0]->sumPx.extent(0);
-  int D = test_stats[0]->sumPx.extent(1);
-  int CD = C*D;
-  std::vector<blitz::Array<double,1> > models_b;
-  // Allocate and get the mean supervector
-  for(size_t i=0; i<models.size(); ++i) {
-    blitz::Array<double,1> mod(CD);
-    mod = models[i]->getMeanSupervector();
-    models_b.push_back(mod);
-  }
-  const blitz::Array<double,1>& ubm_mean = ubm.getMeanSupervector();
-  const blitz::Array<double,1>& ubm_variance = ubm.getVarianceSupervector();
-  _linearScoring(models_b, ubm_mean, ubm_variance, test_stats, 0, frame_length_normalisation, scores);
-}
-
-void bob::learn::misc::linearScoring(const std::vector<boost::shared_ptr<const bob::learn::misc::GMMMachine> >& models,
-                   const bob::learn::misc::GMMMachine& ubm,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const std::vector<blitz::Array<double,1> >& test_channelOffset,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double, 2>& scores)
-{
-  int C = test_stats[0]->sumPx.extent(0);
-  int D = test_stats[0]->sumPx.extent(1);
-  int CD = C*D;
-  std::vector<blitz::Array<double,1> > models_b;
-  // Allocate and get the mean supervector
-  for(size_t i=0; i<models.size(); ++i) {
-    blitz::Array<double,1> mod(CD);
-    mod = models[i]->getMeanSupervector();
-    models_b.push_back(mod);
-  }
-  const blitz::Array<double,1>& ubm_mean = ubm.getMeanSupervector();
-  const blitz::Array<double,1>& ubm_variance = ubm.getVarianceSupervector();
-  _linearScoring(models_b, ubm_mean, ubm_variance, test_stats, &test_channelOffset, frame_length_normalisation, scores);
-}
-
-
-
-double bob::learn::misc::linearScoring(const blitz::Array<double,1>& models,
-                     const blitz::Array<double,1>& ubm_mean, const blitz::Array<double,1>& ubm_variance,
-                     const bob::learn::misc::GMMStats& test_stats,
-                     const blitz::Array<double,1>& test_channelOffset,
-                     const bool frame_length_normalisation)
-{
-  int C = test_stats.sumPx.extent(0);
-  int D = test_stats.sumPx.extent(1);
-  int CD = C*D;
-
-
-  blitz::Array<double,1> A(CD);
-  blitz::Array<double,1> B(CD);
-
-  // 1) Compute A
-  A = (models - ubm_mean) / ubm_variance;
-
-  // 2) Compute B
-  for (int s=0; s<CD; ++s)
-    B(s) = test_stats.sumPx(s/D, s%D) - (test_stats.n(s/D) * (ubm_mean(s) + test_channelOffset(s)));
-
-  // Apply the normalisation if needed
-  if (frame_length_normalisation) {
-    double sum_N = test_stats.T;
-    if (sum_N == 0)
-      B = 0;
-    else
-      B /= sum_N;
-  }
-
-  return blitz::sum(A * B);
-}
-
diff --git a/bob/learn/misc/cpp/MAP_GMMTrainer.cpp b/bob/learn/misc/cpp/MAP_GMMTrainer.cpp
deleted file mode 100644
index d20b150..0000000
--- a/bob/learn/misc/cpp/MAP_GMMTrainer.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/MAP_GMMTrainer.h>
-#include <bob.core/check.h>
-
-bob::learn::misc::MAP_GMMTrainer::MAP_GMMTrainer(
-   const bool update_means,
-   const bool update_variances,
-   const bool update_weights,
-   const double mean_var_update_responsibilities_threshold,
-
-   const bool reynolds_adaptation, 
-   const double relevance_factor, 
-   const double alpha,
-   boost::shared_ptr<bob::learn::misc::GMMMachine> prior_gmm):
-
-  m_gmm_base_trainer(update_means, update_variances, update_weights, mean_var_update_responsibilities_threshold),
-  m_prior_gmm(prior_gmm)
-{
-  m_reynolds_adaptation = reynolds_adaptation;
-  m_relevance_factor    = relevance_factor;
-  m_alpha               = alpha;
-}
-
-
-bob::learn::misc::MAP_GMMTrainer::MAP_GMMTrainer(const bob::learn::misc::MAP_GMMTrainer& b):
-  m_gmm_base_trainer(b.m_gmm_base_trainer),
-  m_prior_gmm(b.m_prior_gmm)
-{
-  m_relevance_factor    = b.m_relevance_factor;
-  m_alpha               = b.m_alpha; 
-  m_reynolds_adaptation = b.m_reynolds_adaptation;
-}
-
-bob::learn::misc::MAP_GMMTrainer::~MAP_GMMTrainer()
-{}
-
-void bob::learn::misc::MAP_GMMTrainer::initialize(bob::learn::misc::GMMMachine& gmm)
-{
-  // Check that the prior GMM has been specified
-  if (!m_prior_gmm)
-    throw std::runtime_error("MAP_GMMTrainer: Prior GMM distribution has not been set");
-
-  // Allocate memory for the sufficient statistics and initialise
-  m_gmm_base_trainer.initialize(gmm);
-
-  const size_t n_gaussians = gmm.getNGaussians();
-  // TODO: check size?
-  gmm.setWeights(m_prior_gmm->getWeights());
-  for(size_t i=0; i<n_gaussians; ++i)
-  {
-    gmm.getGaussian(i)->updateMean() = m_prior_gmm->getGaussian(i)->getMean();
-    gmm.getGaussian(i)->updateVariance() = m_prior_gmm->getGaussian(i)->getVariance();
-    gmm.getGaussian(i)->applyVarianceThresholds();
-  }
-  // Initializes cache
-  m_cache_alpha.resize(n_gaussians);
-  m_cache_ml_weights.resize(n_gaussians);
-}
-
-bool bob::learn::misc::MAP_GMMTrainer::setPriorGMM(boost::shared_ptr<bob::learn::misc::GMMMachine> prior_gmm)
-{
-  if (!prior_gmm) return false;
-  m_prior_gmm = prior_gmm;
-  return true;
-}
-
-
-void bob::learn::misc::MAP_GMMTrainer::mStep(bob::learn::misc::GMMMachine& gmm)
-{
-  // Read options and variables
-  double n_gaussians = gmm.getNGaussians();
-
-  // Check that the prior GMM has been specified
-  if (!m_prior_gmm)
-    throw std::runtime_error("MAP_GMMTrainer: Prior GMM distribution has not been set");
-
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-
-  // Calculate the "data-dependent adaptation coefficient", alpha_i
-  // TODO: check if required // m_cache_alpha.resize(n_gaussians);
-  if (!m_reynolds_adaptation)
-    m_cache_alpha = m_alpha;
-  else
-    m_cache_alpha = m_gmm_base_trainer.getGMMStats().n(i) / (m_gmm_base_trainer.getGMMStats().n(i) + m_relevance_factor);
-
-  // - Update weights if requested
-  //   Equation 11 of Reynolds et al., "Speaker Verification Using Adapted Gaussian Mixture Models", Digital Signal Processing, 2000
-  if (m_gmm_base_trainer.getUpdateWeights()) {
-    // Calculate the maximum likelihood weights
-    m_cache_ml_weights = m_gmm_base_trainer.getGMMStats().n / static_cast<double>(m_gmm_base_trainer.getGMMStats().T); //cast req. for linux/32-bits & osx
-
-    // Get the prior weights
-    const blitz::Array<double,1>& prior_weights = m_prior_gmm->getWeights();
-    blitz::Array<double,1>& new_weights = gmm.updateWeights();
-
-    // Calculate the new weights
-    new_weights = m_cache_alpha * m_cache_ml_weights + (1-m_cache_alpha) * prior_weights;
-
-    // Apply the scale factor, gamma, to ensure the new weights sum to unity
-    double gamma = blitz::sum(new_weights);
-    new_weights /= gamma;
-
-    // Recompute the log weights in the cache of the GMMMachine
-    gmm.recomputeLogWeights();
-  }
-
-  // Update GMM parameters
-  // - Update means if requested
-  //   Equation 12 of Reynolds et al., "Speaker Verification Using Adapted Gaussian Mixture Models", Digital Signal Processing, 2000
-  if (m_gmm_base_trainer.getUpdateMeans()) {
-    // Calculate new means
-    for (size_t i=0; i<n_gaussians; ++i) {
-      const blitz::Array<double,1>& prior_means = m_prior_gmm->getGaussian(i)->getMean();
-      blitz::Array<double,1>& means = gmm.getGaussian(i)->updateMean();
-      if (m_gmm_base_trainer.getGMMStats().n(i) < m_gmm_base_trainer.getMeanVarUpdateResponsibilitiesThreshold()) {
-        means = prior_means;
-      }
-      else {
-        // Use the maximum likelihood means
-        means = m_cache_alpha(i) * (m_gmm_base_trainer.getGMMStats().sumPx(i,blitz::Range::all()) / m_gmm_base_trainer.getGMMStats().n(i)) + (1-m_cache_alpha(i)) * prior_means;
-      }
-    }
-  }
-
-  // - Update variance if requested
-  //   Equation 13 of Reynolds et al., "Speaker Verification Using Adapted Gaussian Mixture Models", Digital Signal Processing, 2000
-  if (m_gmm_base_trainer.getUpdateVariances()) {
-    // Calculate new variances (equation 13)
-    for (size_t i=0; i<n_gaussians; ++i) {
-      const blitz::Array<double,1>& prior_means = m_prior_gmm->getGaussian(i)->getMean();
-      blitz::Array<double,1>& means = gmm.getGaussian(i)->updateMean();
-      const blitz::Array<double,1>& prior_variances = m_prior_gmm->getGaussian(i)->getVariance();
-      blitz::Array<double,1>& variances = gmm.getGaussian(i)->updateVariance();
-      if (m_gmm_base_trainer.getGMMStats().n(i) < m_gmm_base_trainer.getMeanVarUpdateResponsibilitiesThreshold()) {
-        variances = (prior_variances + prior_means) - blitz::pow2(means);
-      }
-      else {
-        variances = m_cache_alpha(i) * m_gmm_base_trainer.getGMMStats().sumPxx(i,blitz::Range::all()) / m_gmm_base_trainer.getGMMStats().n(i) + (1-m_cache_alpha(i)) * (prior_variances + prior_means) - blitz::pow2(means);
-      }
-      gmm.getGaussian(i)->applyVarianceThresholds();
-    }
-  }
-}
-
-
-
-bob::learn::misc::MAP_GMMTrainer& bob::learn::misc::MAP_GMMTrainer::operator=
-  (const bob::learn::misc::MAP_GMMTrainer &other)
-{
-  if (this != &other)
-  {
-    m_gmm_base_trainer    = other.m_gmm_base_trainer;
-    m_relevance_factor    = other.m_relevance_factor;
-    m_prior_gmm           = other.m_prior_gmm;
-    m_alpha               = other.m_alpha;
-    m_reynolds_adaptation = other.m_reynolds_adaptation;
-    m_cache_alpha.resize(other.m_cache_alpha.extent(0));
-    m_cache_ml_weights.resize(other.m_cache_ml_weights.extent(0));
-  }
-  return *this;
-}
-
-
-bool bob::learn::misc::MAP_GMMTrainer::operator==
-  (const bob::learn::misc::MAP_GMMTrainer &other) const
-{
-  return m_gmm_base_trainer    == other.m_gmm_base_trainer &&
-         m_relevance_factor    == other.m_relevance_factor &&
-         m_prior_gmm           == other.m_prior_gmm &&
-         m_alpha               == other.m_alpha &&
-         m_reynolds_adaptation == other.m_reynolds_adaptation;
-}
-
-
-bool bob::learn::misc::MAP_GMMTrainer::operator!=
-  (const bob::learn::misc::MAP_GMMTrainer &other) const
-{
-  return !(this->operator==(other));
-}
-
-
-bool bob::learn::misc::MAP_GMMTrainer::is_similar_to
-  (const bob::learn::misc::MAP_GMMTrainer &other, const double r_epsilon,
-   const double a_epsilon) const
-{
-  return //m_gmm_base_trainer.is_similar_to(other.m_gmm_base_trainer, r_epsilon, a_epsilon) &&
-         bob::core::isClose(m_relevance_factor, other.m_relevance_factor, r_epsilon, a_epsilon) &&
-         m_prior_gmm == other.m_prior_gmm &&
-         bob::core::isClose(m_alpha, other.m_alpha, r_epsilon, a_epsilon) &&
-         m_reynolds_adaptation == other.m_reynolds_adaptation;
-}
-
diff --git a/bob/learn/misc/cpp/ML_GMMTrainer.cpp b/bob/learn/misc/cpp/ML_GMMTrainer.cpp
deleted file mode 100644
index f08fb2f..0000000
--- a/bob/learn/misc/cpp/ML_GMMTrainer.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/ML_GMMTrainer.h>
-#include <algorithm>
-
-bob::learn::misc::ML_GMMTrainer::ML_GMMTrainer(
-   const bool update_means,
-   const bool update_variances, 
-   const bool update_weights,
-   const double mean_var_update_responsibilities_threshold
-):
-  m_gmm_base_trainer(update_means, update_variances, update_weights, mean_var_update_responsibilities_threshold)
-{}
-
-
-
-bob::learn::misc::ML_GMMTrainer::ML_GMMTrainer(const bob::learn::misc::ML_GMMTrainer& b):
-  m_gmm_base_trainer(b.m_gmm_base_trainer)
-{}
-
-bob::learn::misc::ML_GMMTrainer::~ML_GMMTrainer()
-{}
-
-void bob::learn::misc::ML_GMMTrainer::initialize(bob::learn::misc::GMMMachine& gmm)
-{
-  m_gmm_base_trainer.initialize(gmm);
-  
-  // Allocate cache
-  size_t n_gaussians = gmm.getNGaussians();
-  m_cache_ss_n_thresholded.resize(n_gaussians);
-}
-
-
-void bob::learn::misc::ML_GMMTrainer::mStep(bob::learn::misc::GMMMachine& gmm)
-{
-  // Read options and variables
-  const size_t n_gaussians = gmm.getNGaussians();
-
-  // - Update weights if requested
-  //   Equation 9.26 of Bishop, "Pattern recognition and machine learning", 2006
-  if (m_gmm_base_trainer.getUpdateWeights()) {
-    blitz::Array<double,1>& weights = gmm.updateWeights();
-    weights = m_gmm_base_trainer.getGMMStats().n / static_cast<double>(m_gmm_base_trainer.getGMMStats().T); //cast req. for linux/32-bits & osx
-    // Recompute the log weights in the cache of the GMMMachine
-    gmm.recomputeLogWeights();
-  }
-
-  // Generate a thresholded version of m_ss.n
-  for(size_t i=0; i<n_gaussians; ++i)
-    m_cache_ss_n_thresholded(i) = std::max(m_gmm_base_trainer.getGMMStats().n(i), m_gmm_base_trainer.getMeanVarUpdateResponsibilitiesThreshold());
-
-  // Update GMM parameters using the sufficient statistics (m_ss)
-  // - Update means if requested
-  //   Equation 9.24 of Bishop, "Pattern recognition and machine learning", 2006
-  if (m_gmm_base_trainer.getUpdateMeans()) {
-    for(size_t i=0; i<n_gaussians; ++i) {
-      blitz::Array<double,1>& means = gmm.getGaussian(i)->updateMean();
-      means = m_gmm_base_trainer.getGMMStats().sumPx(i, blitz::Range::all()) / m_cache_ss_n_thresholded(i);
-    }
-  }
-
-  // - Update variance if requested
-  //   See Equation 9.25 of Bishop, "Pattern recognition and machine learning", 2006
-  //   ...but we use the "computational formula for the variance", i.e.
-  //   var = 1/n * sum (P(x-mean)(x-mean))
-  //       = 1/n * sum (Pxx) - mean^2
-  if (m_gmm_base_trainer.getUpdateVariances()) {
-    for(size_t i=0; i<n_gaussians; ++i) {
-      const blitz::Array<double,1>& means = gmm.getGaussian(i)->getMean();
-      blitz::Array<double,1>& variances = gmm.getGaussian(i)->updateVariance();
-      variances = m_gmm_base_trainer.getGMMStats().sumPxx(i, blitz::Range::all()) / m_cache_ss_n_thresholded(i) - blitz::pow2(means);
-      gmm.getGaussian(i)->applyVarianceThresholds();
-    }
-  }
-}
-
-bob::learn::misc::ML_GMMTrainer& bob::learn::misc::ML_GMMTrainer::operator=
-  (const bob::learn::misc::ML_GMMTrainer &other)
-{
-  if (this != &other)
-  {
-    m_gmm_base_trainer = other.m_gmm_base_trainer;
-    m_cache_ss_n_thresholded.resize(other.m_cache_ss_n_thresholded.extent(0));
-  }
-  return *this;
-}
-
-bool bob::learn::misc::ML_GMMTrainer::operator==
-  (const bob::learn::misc::ML_GMMTrainer &other) const
-{
-  return m_gmm_base_trainer == other.m_gmm_base_trainer;
-}
-
-bool bob::learn::misc::ML_GMMTrainer::operator!=
-  (const bob::learn::misc::ML_GMMTrainer &other) const
-{
-  return !(this->operator==(other));
-}
-
-/*
-bool bob::learn::misc::ML_GMMTrainer::is_similar_to
-  (const bob::learn::misc::ML_GMMTrainer &other, const double r_epsilon,
-   const double a_epsilon) const
-{
-  return m_gmm_base_trainer.is_similar_to(other, r_epsilon, a_epsilon);
-}
-*/
diff --git a/bob/learn/misc/cpp/PLDAMachine.cpp b/bob/learn/misc/cpp/PLDAMachine.cpp
deleted file mode 100644
index 4193c85..0000000
--- a/bob/learn/misc/cpp/PLDAMachine.cpp
+++ /dev/null
@@ -1,960 +0,0 @@
-/**
- * @date Fri Oct 14 18:07:56 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief Machines that implements the PLDA model
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.core/assert.h>
-#include <bob.core/check.h>
-#include <bob.core/array_copy.h>
-#include <bob.learn.misc/PLDAMachine.h>
-#include <bob.math/linear.h>
-#include <bob.math/det.h>
-#include <bob.math/inv.h>
-
-#include <cmath>
-#include <boost/lexical_cast.hpp>
-#include <string>
-
-bob::learn::misc::PLDABase::PLDABase():
-  m_variance_threshold(0.)
-{
-  resizeNoInit(0, 0, 0);
-}
-
-bob::learn::misc::PLDABase::PLDABase(const size_t dim_d, const size_t dim_f,
-    const size_t dim_g, const double variance_threshold):
-  m_variance_threshold(variance_threshold)
-{
-  resize(dim_d, dim_f, dim_g);
-}
-
-
-bob::learn::misc::PLDABase::PLDABase(const bob::learn::misc::PLDABase& other):
-  m_dim_d(other.m_dim_d),
-  m_dim_f(other.m_dim_f),
-  m_dim_g(other.m_dim_g),
-  m_F(bob::core::array::ccopy(other.m_F)),
-  m_G(bob::core::array::ccopy(other.m_G)),
-  m_sigma(bob::core::array::ccopy(other.m_sigma)),
-  m_mu(bob::core::array::ccopy(other.m_mu)),
-  m_variance_threshold(other.m_variance_threshold),
-  m_cache_isigma(bob::core::array::ccopy(other.m_cache_isigma)),
-  m_cache_alpha(bob::core::array::ccopy(other.m_cache_alpha)),
-  m_cache_beta(bob::core::array::ccopy(other.m_cache_beta)),
-  m_cache_gamma(),
-  m_cache_Ft_beta(bob::core::array::ccopy(other.m_cache_Ft_beta)),
-  m_cache_Gt_isigma(bob::core::array::ccopy(other.m_cache_Gt_isigma)),
-  m_cache_logdet_alpha(other.m_cache_logdet_alpha),
-  m_cache_logdet_sigma(other.m_cache_logdet_sigma),
-  m_cache_loglike_constterm(other.m_cache_loglike_constterm)
-{
-  bob::core::array::ccopy(other.m_cache_gamma, m_cache_gamma);
-  resizeTmp();
-}
-
-bob::learn::misc::PLDABase::PLDABase(bob::io::base::HDF5File& config) {
-  load(config);
-}
-
-bob::learn::misc::PLDABase::~PLDABase() {
-}
-
-bob::learn::misc::PLDABase& bob::learn::misc::PLDABase::operator=
-    (const bob::learn::misc::PLDABase& other)
-{
-  if (this != &other)
-  {
-    m_dim_d = other.m_dim_d;
-    m_dim_f = other.m_dim_f;
-    m_dim_g = other.m_dim_g;
-    m_F.reference(bob::core::array::ccopy(other.m_F));
-    m_G.reference(bob::core::array::ccopy(other.m_G));
-    m_sigma.reference(bob::core::array::ccopy(other.m_sigma));
-    m_mu.reference(bob::core::array::ccopy(other.m_mu));
-    m_variance_threshold = other.m_variance_threshold;
-    m_cache_isigma.reference(bob::core::array::ccopy(other.m_cache_isigma));
-    m_cache_alpha.reference(bob::core::array::ccopy(other.m_cache_alpha));
-    m_cache_beta.reference(bob::core::array::ccopy(other.m_cache_beta));
-    bob::core::array::ccopy(other.m_cache_gamma, m_cache_gamma);
-    m_cache_Ft_beta.reference(bob::core::array::ccopy(other.m_cache_Ft_beta));
-    m_cache_Gt_isigma.reference(bob::core::array::ccopy(other.m_cache_Gt_isigma));
-    m_cache_logdet_alpha = other.m_cache_logdet_alpha;
-    m_cache_logdet_sigma = other.m_cache_logdet_sigma;
-    m_cache_loglike_constterm = other.m_cache_loglike_constterm;
-    resizeTmp();
-  }
-  return *this;
-}
-
-bool bob::learn::misc::PLDABase::operator==
-    (const bob::learn::misc::PLDABase& b) const
-{
-  if (!(m_dim_d == b.m_dim_d && m_dim_f == b.m_dim_f &&
-        m_dim_g == b.m_dim_g &&
-        bob::core::array::isEqual(m_F, b.m_F) &&
-        bob::core::array::isEqual(m_G, b.m_G) &&
-        bob::core::array::isEqual(m_sigma, b.m_sigma) &&
-        bob::core::array::isEqual(m_mu, b.m_mu) &&
-        m_variance_threshold == b.m_variance_threshold &&
-        bob::core::array::isEqual(m_cache_isigma, b.m_cache_isigma) &&
-        bob::core::array::isEqual(m_cache_alpha, b.m_cache_alpha) &&
-        bob::core::array::isEqual(m_cache_beta, b.m_cache_beta) &&
-        bob::core::array::isEqual(m_cache_gamma, b.m_cache_gamma) &&
-        bob::core::array::isEqual(m_cache_Ft_beta, b.m_cache_Ft_beta) &&
-        bob::core::array::isEqual(m_cache_Gt_isigma, b.m_cache_Gt_isigma) &&
-        m_cache_logdet_alpha == b.m_cache_logdet_alpha &&
-        m_cache_logdet_sigma == b.m_cache_logdet_sigma))
-    return false;
-
-  // m_cache_loglike_constterm
-  if (this->m_cache_loglike_constterm.size() != b.m_cache_loglike_constterm.size())
-    return false;  // differing sizes, they are not the same
-  std::map<size_t, double>::const_iterator i, j;
-  for (i = this->m_cache_loglike_constterm.begin(), j = b.m_cache_loglike_constterm.begin();
-    i != this->m_cache_loglike_constterm.end(); ++i, ++j)
-  {
-    if (i->first != j->first || i->second != j->second)
-      return false;
-  }
-
-  return true;
-}
-
-bool bob::learn::misc::PLDABase::operator!=
-    (const bob::learn::misc::PLDABase& b) const
-{
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::PLDABase::is_similar_to(const bob::learn::misc::PLDABase& b,
-  const double r_epsilon, const double a_epsilon) const
-{
-  return (m_dim_d == b.m_dim_d && m_dim_f == b.m_dim_f &&
-          m_dim_g == b.m_dim_g &&
-          bob::core::array::isClose(m_F, b.m_F, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_G, b.m_G, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_sigma, b.m_sigma, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_mu, b.m_mu, r_epsilon, a_epsilon) &&
-          bob::core::isClose(m_variance_threshold, b.m_variance_threshold, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_cache_isigma, b.m_cache_isigma, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_cache_alpha, b.m_cache_alpha, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_cache_beta, b.m_cache_beta, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_cache_gamma, b.m_cache_gamma, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_cache_Ft_beta, b.m_cache_Ft_beta, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_cache_Gt_isigma, b.m_cache_Gt_isigma, r_epsilon, a_epsilon) &&
-          bob::core::isClose(m_cache_logdet_alpha, b.m_cache_logdet_alpha, r_epsilon, a_epsilon) &&
-          bob::core::isClose(m_cache_logdet_sigma, b.m_cache_logdet_sigma, r_epsilon, a_epsilon) &&
-          bob::core::isClose(m_cache_loglike_constterm, b.m_cache_loglike_constterm));
-}
-
-void bob::learn::misc::PLDABase::load(bob::io::base::HDF5File& config)
-{
-  if (!config.contains("dim_d"))
-  {
-    // Then the model was saved using bob < 1.2.0
-    //reads all data directly into the member variables
-    m_F.reference(config.readArray<double,2>("F"));
-    m_G.reference(config.readArray<double,2>("G"));
-    m_dim_d = m_F.extent(0);
-    m_dim_f = m_F.extent(1);
-    m_dim_g = m_G.extent(1);
-    m_sigma.reference(config.readArray<double,1>("sigma"));
-    m_mu.reference(config.readArray<double,1>("mu"));
-    m_cache_isigma.resize(m_dim_d);
-    precomputeISigma();
-    m_variance_threshold = 0.;
-    m_cache_alpha.reference(config.readArray<double,2>("alpha"));
-    m_cache_beta.reference(config.readArray<double,2>("beta"));
-    // gamma and log like constant term (a-dependent terms)
-    if (config.contains("a_indices"))
-    {
-      blitz::Array<uint32_t, 1> a_indices;
-      a_indices.reference(config.readArray<uint32_t,1>("a_indices"));
-      for (int i=0; i<a_indices.extent(0); ++i)
-      {
-        std::string str1 = "gamma_" + boost::lexical_cast<std::string>(a_indices(i));
-        m_cache_gamma[a_indices(i)].reference(config.readArray<double,2>(str1));
-        std::string str2 = "loglikeconstterm_" + boost::lexical_cast<std::string>(a_indices(i));
-        m_cache_loglike_constterm[a_indices(i)] = config.read<double>(str2);
-      }
-    }
-    m_cache_Ft_beta.reference(config.readArray<double,2>("Ft_beta"));
-    m_cache_Gt_isigma.reference(config.readArray<double,2>("Gt_isigma"));
-    m_cache_logdet_alpha = config.read<double>("logdet_alpha");
-    m_cache_logdet_sigma = config.read<double>("logdet_sigma");
-  }
-  else
-  {
-    // Then the model was saved using bob >= 1.2.0
-    //reads all data directly into the member variables
-    m_F.reference(config.readArray<double,2>("F"));
-    m_G.reference(config.readArray<double,2>("G"));
-    // Conditional because previous versions had not these variables
-    m_dim_d = config.read<uint64_t>("dim_d");
-    m_dim_f = config.read<uint64_t>("dim_f");
-    m_dim_g = config.read<uint64_t>("dim_g");
-    m_sigma.reference(config.readArray<double,1>("sigma"));
-    m_mu.reference(config.readArray<double,1>("mu"));
-    m_cache_isigma.resize(m_dim_d);
-    precomputeISigma();
-    if (config.contains("variance_threshold"))
-      m_variance_threshold = config.read<double>("variance_threshold");
-    else if (config.contains("variance_thresholds")) // In case 1.2.0 alpha/beta version has been used
-    {
-      blitz::Array<double,1> tmp;
-      tmp.reference(config.readArray<double,1>("variance_thresholds"));
-      m_variance_threshold = tmp(0);
-    }
-    m_cache_alpha.reference(config.readArray<double,2>("alpha"));
-    m_cache_beta.reference(config.readArray<double,2>("beta"));
-    // gamma's (a-dependent terms)
-    if(config.contains("a_indices_gamma"))
-    {
-      blitz::Array<uint32_t, 1> a_indices;
-      a_indices.reference(config.readArray<uint32_t,1>("a_indices_gamma"));
-      for(int i=0; i<a_indices.extent(0); ++i)
-      {
-        std::string str = "gamma_" + boost::lexical_cast<std::string>(a_indices(i));
-        m_cache_gamma[a_indices(i)].reference(config.readArray<double,2>(str));
-      }
-    }
-    // log likelihood constant term's (a-dependent terms)
-    if(config.contains("a_indices_loglikeconstterm"))
-    {
-      blitz::Array<uint32_t, 1> a_indices;
-      a_indices.reference(config.readArray<uint32_t,1>("a_indices_loglikeconstterm"));
-      for(int i=0; i<a_indices.extent(0); ++i)
-      {
-        std::string str = "loglikeconstterm_" + boost::lexical_cast<std::string>(a_indices(i));
-        m_cache_loglike_constterm[a_indices(i)] = config.read<double>(str);
-      }
-    }
-    m_cache_Ft_beta.reference(config.readArray<double,2>("Ft_beta"));
-    m_cache_Gt_isigma.reference(config.readArray<double,2>("Gt_isigma"));
-    m_cache_logdet_alpha = config.read<double>("logdet_alpha");
-    m_cache_logdet_sigma = config.read<double>("logdet_sigma");
-  }
-  resizeTmp();
-}
-
-void bob::learn::misc::PLDABase::save(bob::io::base::HDF5File& config) const
-{
-  config.set("dim_d", (uint64_t)m_dim_d);
-  config.set("dim_f", (uint64_t)m_dim_f);
-  config.set("dim_g", (uint64_t)m_dim_g);
-  config.setArray("F", m_F);
-  config.setArray("G", m_G);
-  config.setArray("sigma", m_sigma);
-  config.setArray("mu", m_mu);
-  config.set("variance_threshold", m_variance_threshold);
-  config.setArray("alpha", m_cache_alpha);
-  config.setArray("beta", m_cache_beta);
-  // gamma's
-  if(m_cache_gamma.size() > 0)
-  {
-    blitz::Array<uint32_t, 1> a_indices(m_cache_gamma.size());
-    int i = 0;
-    for(std::map<size_t,blitz::Array<double,2> >::const_iterator
-        it=m_cache_gamma.begin(); it!=m_cache_gamma.end(); ++it)
-    {
-      a_indices(i) = it->first;
-      std::string str = "gamma_" + boost::lexical_cast<std::string>(it->first);
-      config.setArray(str, it->second);
-      ++i;
-    }
-    config.setArray("a_indices_gamma", a_indices);
-  }
-  // log likelihood constant terms
-  if(m_cache_loglike_constterm.size() > 0)
-  {
-    blitz::Array<uint32_t, 1> a_indices(m_cache_loglike_constterm.size());
-    int i = 0;
-    for(std::map<size_t,double>::const_iterator
-        it=m_cache_loglike_constterm.begin(); it!=m_cache_loglike_constterm.end(); ++it)
-    {
-      a_indices(i) = it->first;
-      std::string str = "loglikeconstterm_" + boost::lexical_cast<std::string>(it->first);
-      config.set(str, it->second);
-      ++i;
-    }
-    config.setArray("a_indices_loglikeconstterm", a_indices);
-  }
-
-  config.setArray("Ft_beta", m_cache_Ft_beta);
-  config.setArray("Gt_isigma", m_cache_Gt_isigma);
-  config.set("logdet_alpha", m_cache_logdet_alpha);
-  config.set("logdet_sigma", m_cache_logdet_sigma);
-}
-
-void bob::learn::misc::PLDABase::resizeNoInit(const size_t dim_d, const size_t dim_f,
-    const size_t dim_g)
-{
-  m_dim_d = dim_d;
-  m_dim_f = dim_f;
-  m_dim_g = dim_g;
-  m_F.resize(dim_d, dim_f);
-  m_G.resize(dim_d, dim_g);
-  m_sigma.resize(dim_d);
-  m_mu.resize(dim_d);
-  m_cache_alpha.resize(dim_g, dim_g);
-  m_cache_beta.resize(dim_d, dim_d);
-  m_cache_Ft_beta.resize(dim_f, dim_d);
-  m_cache_Gt_isigma.resize(dim_g, dim_d);
-  m_cache_gamma.clear();
-  m_cache_isigma.resize(dim_d);
-  m_cache_loglike_constterm.clear();
-  resizeTmp();
-}
-
-void bob::learn::misc::PLDABase::resizeTmp()
-{
-  m_tmp_d_1.resize(m_dim_d);
-  m_tmp_d_2.resize(m_dim_d);
-  m_tmp_d_ng_1.resize(m_dim_d, m_dim_g);
-  m_tmp_nf_nf_1.resize(m_dim_f, m_dim_f);
-  m_tmp_ng_ng_1.resize(m_dim_g, m_dim_g);
-}
-
-void bob::learn::misc::PLDABase::resize(const size_t dim_d, const size_t dim_f,
-    const size_t dim_g)
-{
-  resizeNoInit(dim_d, dim_f, dim_g);
-  initMuFGSigma();
-}
-
-void bob::learn::misc::PLDABase::setF(const blitz::Array<double,2>& F)
-{
-  bob::core::array::assertSameShape(F, m_F);
-  m_F.reference(bob::core::array::ccopy(F));
-  // Precomputes useful matrices
-  precompute();
-}
-
-void bob::learn::misc::PLDABase::setG(const blitz::Array<double,2>& G)
-{
-  bob::core::array::assertSameShape(G, m_G);
-  m_G.reference(bob::core::array::ccopy(G));
-  // Precomputes useful matrices and values
-  precompute();
-  precomputeLogDetAlpha();
-}
-
-void bob::learn::misc::PLDABase::setSigma(const blitz::Array<double,1>& sigma)
-{
-  bob::core::array::assertSameShape(sigma, m_sigma);
-  m_sigma.reference(bob::core::array::ccopy(sigma));
-  // Apply variance flooring threshold: This will also
-  // call the precompute() and precomputeLogLike() methods!
-  applyVarianceThreshold();
-}
-
-void bob::learn::misc::PLDABase::setMu(const blitz::Array<double,1>& mu)
-{
-  bob::core::array::assertSameShape(mu, m_mu);
-  m_mu.reference(bob::core::array::ccopy(mu));
-}
-
-void bob::learn::misc::PLDABase::setVarianceThreshold(const double value)
-{
-  // Variance flooring
-  m_variance_threshold = value;
-  // Apply variance flooring thresholds: This will also
-  // call the precompute() and precomputeLogLike() methods!
-  applyVarianceThreshold();
-}
-
-void bob::learn::misc::PLDABase::applyVarianceThreshold()
-{
-   // Apply variance flooring threshold
-  m_sigma = blitz::where( m_sigma < m_variance_threshold, m_variance_threshold, m_sigma);
-  // Re-compute constants, because m_sigma has changed
-  precompute();
-  precomputeLogLike();
-}
-
-const blitz::Array<double,2>& bob::learn::misc::PLDABase::getGamma(const size_t a) const
-{
-  if(!hasGamma(a))
-    throw std::runtime_error("Gamma for this number of samples is not currently in cache. You could use the getAddGamma() method instead");
-  return (m_cache_gamma.find(a))->second;
-}
-
-const blitz::Array<double,2>& bob::learn::misc::PLDABase::getAddGamma(const size_t a)
-{
-  if(!hasGamma(a)) precomputeGamma(a);
-  return m_cache_gamma[a];
-}
-
-void bob::learn::misc::PLDABase::initMuFGSigma()
-{
-  // To avoid problems related to precomputation
-  m_mu = 0.;
-  bob::math::eye(m_F);
-  bob::math::eye(m_G);
-  m_sigma = 1.;
-  // Precompute variables
-  precompute();
-  precomputeLogLike();
-}
-
-void bob::learn::misc::PLDABase::precompute()
-{
-  precomputeISigma();
-  precomputeGtISigma();
-  precomputeAlpha();
-  precomputeBeta();
-  m_cache_gamma.clear();
-  precomputeFtBeta();
-  m_cache_loglike_constterm.clear();
-}
-
-void bob::learn::misc::PLDABase::precomputeLogLike()
-{
-  precomputeLogDetAlpha();
-  precomputeLogDetSigma();
-}
-
-void bob::learn::misc::PLDABase::precomputeISigma()
-{
-  // Updates inverse of sigma
-  m_cache_isigma = 1. / m_sigma;
-}
-
-void bob::learn::misc::PLDABase::precomputeGtISigma()
-{
-  // m_cache_Gt_isigma = G^T \Sigma^{-1}
-  blitz::firstIndex i;
-  blitz::secondIndex j;
-  blitz::Array<double,2> Gt = m_G.transpose(1,0);
-  m_cache_Gt_isigma = Gt(i,j) * m_cache_isigma(j);
-}
-
-void bob::learn::misc::PLDABase::precomputeAlpha()
-{
-  // alpha = (Id + G^T.sigma^-1.G)^-1
-
-  // m_tmp_ng_ng_1 = G^T.sigma^-1.G
-  bob::math::prod(m_cache_Gt_isigma, m_G, m_tmp_ng_ng_1);
-  // m_tmp_ng_ng_1 = Id + G^T.sigma^-1.G
-  for(int i=0; i<m_tmp_ng_ng_1.extent(0); ++i) m_tmp_ng_ng_1(i,i) += 1;
-  // m_cache_alpha = (Id + G^T.sigma^-1.G)^-1
-  bob::math::inv(m_tmp_ng_ng_1, m_cache_alpha);
-}
-
-void bob::learn::misc::PLDABase::precomputeBeta()
-{
-  // beta = (sigma + G.G^T)^-1
-  // BUT, there is a more efficient computation (Woodbury identity):
-  // beta = sigma^-1 - sigma^-1.G.(Id + G^T.sigma^-1.G)^-1.G^T.sigma^-1
-  // beta =  sigma^-1 - sigma^-1.G.alpha.G^T.sigma^-1
-
-  blitz::Array<double,2> GtISigmaT = m_cache_Gt_isigma.transpose(1,0);
-  // m_tmp_d_ng_1 = sigma^-1.G.alpha
-  bob::math::prod(GtISigmaT, m_cache_alpha, m_tmp_d_ng_1);
-  // m_cache_beta = -sigma^-1.G.alpha.G^T.sigma^-1
-  bob::math::prod(m_tmp_d_ng_1, m_cache_Gt_isigma, m_cache_beta);
-  m_cache_beta = -m_cache_beta;
-  // m_cache_beta = sigma^-1 - sigma^-1.G.alpha.G^T.sigma^-1
-  for(int i=0; i<m_cache_beta.extent(0); ++i) m_cache_beta(i,i) += m_cache_isigma(i);
-}
-
-void bob::learn::misc::PLDABase::precomputeGamma(const size_t a)
-{
-
-  blitz::Array<double,2> gamma_a(getDimF(),getDimF());
-  m_cache_gamma[a].reference(gamma_a);
-  computeGamma(a, gamma_a);
-}
-
-void bob::learn::misc::PLDABase::precomputeFtBeta()
-{
-  // m_cache_Ft_beta = F^T.beta = F^T.(sigma + G.G^T)^-1
-  blitz::Array<double,2> Ft = m_F.transpose(1,0);
-  bob::math::prod(Ft, m_cache_beta, m_cache_Ft_beta);
-}
-
-void bob::learn::misc::PLDABase::computeGamma(const size_t a,
-  blitz::Array<double,2> res) const
-{
-  // gamma = (Id + a.F^T.beta.F)^-1
-
-  // Checks destination size
-  bob::core::array::assertSameShape(res, m_tmp_nf_nf_1);
-  // m_tmp_nf_nf_1 = F^T.beta.F
-  bob::math::prod(m_cache_Ft_beta, m_F, m_tmp_nf_nf_1);
-   // m_tmp_nf_nf_1 = a.F^T.beta.F
-  m_tmp_nf_nf_1 *= static_cast<double>(a);
-  // m_tmp_nf_nf_1 = Id + a.F^T.beta.F
-  for(int i=0; i<m_tmp_nf_nf_1.extent(0); ++i) m_tmp_nf_nf_1(i,i) += 1;
-
-  // res = (Id + a.F^T.beta.F)^-1
-  bob::math::inv(m_tmp_nf_nf_1, res);
-}
-
-void bob::learn::misc::PLDABase::precomputeLogDetAlpha()
-{
-  int sign;
-  m_cache_logdet_alpha = bob::math::slogdet(m_cache_alpha, sign);
-}
-
-void bob::learn::misc::PLDABase::precomputeLogDetSigma()
-{
-  m_cache_logdet_sigma = blitz::sum(blitz::log(m_sigma));
-}
-
-double bob::learn::misc::PLDABase::computeLogLikeConstTerm(const size_t a,
-  const blitz::Array<double,2>& gamma_a) const
-{
-  // loglike_constterm[a] = a/2 *
-  //  ( -D*log(2*pi) -log|sigma| +log|alpha| +log|gamma_a|)
-  int sign;
-  double logdet_gamma_a = bob::math::slogdet(gamma_a, sign);
-  double ah = static_cast<double>(a)/2.;
-  double res = ( -ah*((double)m_dim_d)*log(2*M_PI) -
-      ah*m_cache_logdet_sigma + ah*m_cache_logdet_alpha + logdet_gamma_a/2.);
-  return res;
-}
-
-double bob::learn::misc::PLDABase::computeLogLikeConstTerm(const size_t a)
-{
-  const blitz::Array<double,2>& gamma_a = getAddGamma(a);
-  return computeLogLikeConstTerm(a, gamma_a);
-}
-
-void bob::learn::misc::PLDABase::precomputeLogLikeConstTerm(const size_t a)
-{
-  double val = computeLogLikeConstTerm(a);
-  m_cache_loglike_constterm[a] = val;
-}
-
-double bob::learn::misc::PLDABase::getLogLikeConstTerm(const size_t a) const
-{
-  if(!hasLogLikeConstTerm(a))
-    throw std::runtime_error("The LogLikelihood constant term for this number of samples is not currently in cache. You could use the getAddLogLikeConstTerm() method instead");
-  return (m_cache_loglike_constterm.find(a))->second;
-}
-
-double bob::learn::misc::PLDABase::getAddLogLikeConstTerm(const size_t a)
-{
-  if(!hasLogLikeConstTerm(a)) precomputeLogLikeConstTerm(a);
-  return m_cache_loglike_constterm[a];
-}
-
-void bob::learn::misc::PLDABase::clearMaps()
-{
-  m_cache_gamma.clear();
-  m_cache_loglike_constterm.clear();
-}
-
-double bob::learn::misc::PLDABase::computeLogLikelihoodPointEstimate(
-  const blitz::Array<double,1>& xij, const blitz::Array<double,1>& hi,
-  const blitz::Array<double,1>& wij) const
-{
-  // Check inputs
-  bob::core::array::assertSameDimensionLength(xij.extent(0), getDimD());
-  bob::core::array::assertSameDimensionLength(hi.extent(0), getDimF());
-  bob::core::array::assertSameDimensionLength(wij.extent(0), getDimG());
-  // Computes: -D/2 log(2pi) -1/2 log(det(\Sigma))
-  //   -1/2 {(x_{ij}-(\mu+Fh_{i}+Gw_{ij}))^{T}\Sigma^{-1}(x_{ij}-(\mu+Fh_{i}+Gw_{ij}))}
-  double res = -0.5*((double)m_dim_d)*log(2*M_PI) - 0.5*m_cache_logdet_sigma;
-  // m_tmp_d_1 = (x_{ij} - (\mu+Fh_{i}+Gw_{ij}))
-  m_tmp_d_1 = xij - m_mu;
-  bob::math::prod(m_F, hi, m_tmp_d_2);
-  m_tmp_d_1 -= m_tmp_d_2;
-  bob::math::prod(m_G, wij, m_tmp_d_2);
-  m_tmp_d_1 -= m_tmp_d_2;
-  // add third term to res
-  res += -0.5*blitz::sum(blitz::pow2(m_tmp_d_1) * m_cache_isigma);
-  return res;
-}
-
-namespace bob { namespace learn { namespace misc {
-  /**
-   * @brief Prints a PLDABase in the output stream. This will print
-   * the values of the parameters \f$\mu\f$, \f$F\f$, \f$G\f$ and
-   * \f$\Sigma\f$ of the PLDA model.
-   */
-  std::ostream& operator<<(std::ostream& os, const PLDABase& m) {
-    os << "mu = " << m.m_mu << std::endl;
-    os << "sigma = " << m.m_sigma << std::endl;
-    os << "F = " << m.m_F << std::endl;
-    os << "G = " << m.m_G << std::endl;
-    return os;
-  }
-} } }
-
-
-bob::learn::misc::PLDAMachine::PLDAMachine():
-  m_plda_base(),
-  m_n_samples(0), m_nh_sum_xit_beta_xi(0), m_weighted_sum(0),
-  m_loglikelihood(0), m_cache_gamma(), m_cache_loglike_constterm(),
-  m_tmp_d_1(0), m_tmp_d_2(0), m_tmp_nf_1(0), m_tmp_nf_2(0), m_tmp_nf_nf_1(0,0)
-{
-}
-
-bob::learn::misc::PLDAMachine::PLDAMachine(const boost::shared_ptr<bob::learn::misc::PLDABase> plda_base):
-  m_plda_base(plda_base),
-  m_n_samples(0), m_nh_sum_xit_beta_xi(0), m_weighted_sum(plda_base->getDimF()),
-  m_loglikelihood(0), m_cache_gamma(), m_cache_loglike_constterm()
-{
-  resizeTmp();
-}
-
-
-bob::learn::misc::PLDAMachine::PLDAMachine(const bob::learn::misc::PLDAMachine& other):
-  m_plda_base(other.m_plda_base),
-  m_n_samples(other.m_n_samples),
-  m_nh_sum_xit_beta_xi(other.m_nh_sum_xit_beta_xi),
-  m_weighted_sum(bob::core::array::ccopy(other.m_weighted_sum)),
-  m_loglikelihood(other.m_loglikelihood), m_cache_gamma(),
-  m_cache_loglike_constterm(other.m_cache_loglike_constterm)
-{
-  bob::core::array::ccopy(other.m_cache_gamma, m_cache_gamma);
-  resizeTmp();
-}
-
-bob::learn::misc::PLDAMachine::PLDAMachine(bob::io::base::HDF5File& config,
-    const boost::shared_ptr<bob::learn::misc::PLDABase> plda_base):
-  m_plda_base(plda_base)
-{
-  load(config);
-}
-
-bob::learn::misc::PLDAMachine::~PLDAMachine() {
-}
-
-bob::learn::misc::PLDAMachine& bob::learn::misc::PLDAMachine::operator=
-(const bob::learn::misc::PLDAMachine& other)
-{
-  if(this!=&other)
-  {
-    m_plda_base = other.m_plda_base;
-    m_n_samples = other.m_n_samples;
-    m_nh_sum_xit_beta_xi = other.m_nh_sum_xit_beta_xi;
-    m_weighted_sum.reference(bob::core::array::ccopy(other.m_weighted_sum));
-    m_loglikelihood = other.m_loglikelihood;
-    bob::core::array::ccopy(other.m_cache_gamma, m_cache_gamma);
-    m_cache_loglike_constterm = other.m_cache_loglike_constterm;
-    resizeTmp();
-  }
-  return *this;
-}
-
-bool bob::learn::misc::PLDAMachine::operator==
-    (const bob::learn::misc::PLDAMachine& b) const
-{
-  if (!(( (!m_plda_base && !b.m_plda_base) ||
-          ((m_plda_base && b.m_plda_base) && *(m_plda_base) == *(b.m_plda_base))) &&
-        m_n_samples == b.m_n_samples &&
-        m_nh_sum_xit_beta_xi ==b.m_nh_sum_xit_beta_xi &&
-        bob::core::array::isEqual(m_weighted_sum, b.m_weighted_sum) &&
-        m_loglikelihood == b.m_loglikelihood &&
-        bob::core::array::isEqual(m_cache_gamma, b.m_cache_gamma)))
-    return false;
-
-  // m_cache_loglike_constterm
-  if (this->m_cache_loglike_constterm.size() != b.m_cache_loglike_constterm.size())
-    return false;  // differing sizes, they are not the same
-  std::map<size_t, double>::const_iterator i, j;
-  for (i = this->m_cache_loglike_constterm.begin(), j = b.m_cache_loglike_constterm.begin();
-    i != this->m_cache_loglike_constterm.end(); ++i, ++j)
-  {
-    if (i->first != j->first || i->second != j->second)
-      return false;
-  }
-
-  return true;
-}
-
-bool bob::learn::misc::PLDAMachine::operator!=
-    (const bob::learn::misc::PLDAMachine& b) const
-{
-  return !(this->operator==(b));
-}
-
-bool bob::learn::misc::PLDAMachine::is_similar_to(
-  const bob::learn::misc::PLDAMachine& b, const double r_epsilon,
-  const double a_epsilon) const
-{
-  return (( (!m_plda_base && !b.m_plda_base) ||
-            ((m_plda_base && b.m_plda_base) &&
-             m_plda_base->is_similar_to(*(b.m_plda_base), r_epsilon, a_epsilon))) &&
-          m_n_samples == b.m_n_samples &&
-          bob::core::isClose(m_nh_sum_xit_beta_xi, b.m_nh_sum_xit_beta_xi, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_weighted_sum, b.m_weighted_sum, r_epsilon, a_epsilon) &&
-          bob::core::isClose(m_loglikelihood, b.m_loglikelihood, r_epsilon, a_epsilon) &&
-          bob::core::array::isClose(m_cache_gamma, b.m_cache_gamma, r_epsilon, a_epsilon) &&
-          bob::core::isClose(m_cache_loglike_constterm, b.m_cache_loglike_constterm, r_epsilon, a_epsilon));
-}
-
-void bob::learn::misc::PLDAMachine::load(bob::io::base::HDF5File& config)
-{
-  //reads all data directly into the member variables
-  m_n_samples = config.read<uint64_t>("n_samples");
-  m_nh_sum_xit_beta_xi = config.read<double>("nh_sum_xit_beta_xi");
-  m_weighted_sum.reference(config.readArray<double,1>("weighted_sum"));
-  m_loglikelihood = config.read<double>("loglikelihood");
-  // gamma and log like constant term (a-dependent terms)
-  clearMaps();
-  if(config.contains("a_indices"))
-  {
-    blitz::Array<uint32_t, 1> a_indices;
-    a_indices.reference(config.readArray<uint32_t,1>("a_indices"));
-    for(int i=0; i<a_indices.extent(0); ++i)
-    {
-      std::string str1 = "gamma_" + boost::lexical_cast<std::string>(a_indices(i));
-      m_cache_gamma[a_indices(i)].reference(config.readArray<double,2>(str1));
-      std::string str2 = "loglikeconstterm_" + boost::lexical_cast<std::string>(a_indices(i));
-      m_cache_loglike_constterm[a_indices(i)] = config.read<double>(str2);
-    }
-  }
-  resizeTmp();
-}
-
-void bob::learn::misc::PLDAMachine::save(bob::io::base::HDF5File& config) const
-{
-  config.set("n_samples", m_n_samples);
-  config.set("nh_sum_xit_beta_xi", m_nh_sum_xit_beta_xi);
-  config.setArray("weighted_sum", m_weighted_sum);
-  config.set("loglikelihood", m_loglikelihood);
-  // Gamma
-  if(m_cache_gamma.size() > 0)
-  {
-    blitz::Array<uint32_t, 1> a_indices(m_cache_gamma.size());
-    int i = 0;
-    for(std::map<size_t,blitz::Array<double,2> >::const_iterator
-        it=m_cache_gamma.begin(); it!=m_cache_gamma.end(); ++it)
-    {
-      a_indices(i) = it->first;
-      std::string str1 = "gamma_" + boost::lexical_cast<std::string>(it->first);
-      config.setArray(str1, it->second);
-      std::string str2 = "loglikeconstterm_" + boost::lexical_cast<std::string>(it->first);
-      double v = m_cache_loglike_constterm.find(it->first)->second;
-      config.set(str2, v);
-      ++i;
-    }
-    config.setArray("a_indices", a_indices);
-  }
-}
-
-void bob::learn::misc::PLDAMachine::setPLDABase(const boost::shared_ptr<bob::learn::misc::PLDABase> plda_base)
-{
-  m_plda_base = plda_base;
-  m_weighted_sum.resizeAndPreserve(getDimF());
-  clearMaps();
-  resizeTmp();
-}
-
-
-void bob::learn::misc::PLDAMachine::setWeightedSum(const blitz::Array<double,1>& ws)
-{
-  if(ws.extent(0) != m_weighted_sum.extent(0)) {
-    boost::format m("size of parameter `ws' (%d) does not match the expected size (%d)");
-    m % ws.extent(0) % m_weighted_sum.extent(0);
-    throw std::runtime_error(m.str());
-  }
-  m_weighted_sum.reference(bob::core::array::ccopy(ws));
-}
-
-const blitz::Array<double,2>& bob::learn::misc::PLDAMachine::getGamma(const size_t a) const
-{
-  // Checks in both base machine and this machine
-  if (m_plda_base->hasGamma(a)) return m_plda_base->getGamma(a);
-  else if (!hasGamma(a))
-    throw std::runtime_error("Gamma for this number of samples is not currently in cache. You could use the getAddGamma() method instead");
-  return (m_cache_gamma.find(a))->second;
-}
-
-const blitz::Array<double,2>& bob::learn::misc::PLDAMachine::getAddGamma(const size_t a)
-{
-  if (m_plda_base->hasGamma(a)) return m_plda_base->getGamma(a);
-  else if (hasGamma(a)) return m_cache_gamma[a];
-  // else computes it and adds it to this machine
-  blitz::Array<double,2> gamma_a(getDimF(),getDimF());
-  m_cache_gamma[a].reference(gamma_a);
-  m_plda_base->computeGamma(a, gamma_a);
-  return m_cache_gamma[a];
-}
-
-double bob::learn::misc::PLDAMachine::getLogLikeConstTerm(const size_t a) const
-{
-  // Checks in both base machine and this machine
-  if (!m_plda_base) throw std::runtime_error("No PLDABase set to this machine");
-  if (m_plda_base->hasLogLikeConstTerm(a)) return m_plda_base->getLogLikeConstTerm(a);
-  else if (!hasLogLikeConstTerm(a))
-    throw std::runtime_error("The LogLikelihood constant term for this number of samples is not currently in cache. You could use the getAddLogLikeConstTerm() method instead");
-  return (m_cache_loglike_constterm.find(a))->second;
-}
-
-double bob::learn::misc::PLDAMachine::getAddLogLikeConstTerm(const size_t a)
-{
-  if (!m_plda_base) throw std::runtime_error("No PLDABase set to this machine");
-  if (m_plda_base->hasLogLikeConstTerm(a)) return m_plda_base->getLogLikeConstTerm(a);
-  else if (hasLogLikeConstTerm(a)) return m_cache_loglike_constterm[a];
-  // else computes it and adds it to this machine
-  m_cache_loglike_constterm[a] =
-        m_plda_base->computeLogLikeConstTerm(a, getAddGamma(a));
-  return m_cache_loglike_constterm[a];
-}
-
-void bob::learn::misc::PLDAMachine::clearMaps()
-{
-  m_cache_gamma.clear();
-  m_cache_loglike_constterm.clear();
-}
-
-double bob::learn::misc::PLDAMachine::forward(const blitz::Array<double,1>& sample)
-{
-  return forward_(sample);
-}
-
-double bob::learn::misc::PLDAMachine::forward_(const blitz::Array<double,1>& sample)
-{
-  // Computes the log likelihood ratio
-  return computeLogLikelihood(sample, true) - // match
-          (computeLogLikelihood(sample, false) + m_loglikelihood); // no match
-}
-
-double bob::learn::misc::PLDAMachine::forward(const blitz::Array<double,2>& samples)
-{
-  // Computes the log likelihood ratio
-  return computeLogLikelihood(samples, true) - // match
-          (computeLogLikelihood(samples, false) + m_loglikelihood); // no match
-}
-
-double bob::learn::misc::PLDAMachine::computeLogLikelihood(const blitz::Array<double,1>& sample,
-  bool enrol) const
-{
-  if (!m_plda_base) throw std::runtime_error("No PLDABase set to this machine");
-  // Check dimensionality
-  bob::core::array::assertSameDimensionLength(sample.extent(0), getDimD());
-
-  int n_samples = 1 + (enrol?m_n_samples:0);
-
-  // 3/ Third term of the likelihood: -1/2*X^T*(SIGMA+A.A^T)^-1*X
-  //    Efficient way: -1/2*sum_i(xi^T.sigma^-1.xi - xi^T.sigma^-1*G*(I+G^T.sigma^-1.G)^-1*G^T*sigma^-1.xi
-  //      -1/2*sumWeighted^T*(I+aF^T.(sigma^-1-sigma^-1*G*(I+G^T.sigma^-1.G)^-1*G^T*sigma^-1).F)^-1*sumWeighted
-  //      where sumWeighted = sum_i(F^T*(sigma^-1-sigma^-1*G*(I+G^T.sigma^-1.G)^-1*G^T*sigma^-1)*xi)
-  const blitz::Array<double,2>& beta = getPLDABase()->getBeta();
-  const blitz::Array<double,2>& Ft_beta = getPLDABase()->getFtBeta();
-  const blitz::Array<double,1>& mu = getPLDABase()->getMu();
-  double terma = (enrol?m_nh_sum_xit_beta_xi:0.);
-  // sumWeighted
-  if (enrol && m_n_samples > 0) m_tmp_nf_1 = m_weighted_sum;
-  else m_tmp_nf_1 = 0;
-
-  // terma += -1 / 2. * (xi^t*beta*xi)
-  m_tmp_d_1 = sample - mu;
-  bob::math::prod(beta, m_tmp_d_1, m_tmp_d_2);
-  terma += -1 / 2. * (blitz::sum(m_tmp_d_1*m_tmp_d_2));
-
-  // sumWeighted
-  bob::math::prod(Ft_beta, m_tmp_d_1, m_tmp_nf_2);
-  m_tmp_nf_1 += m_tmp_nf_2;
-  blitz::Array<double,2> gamma_a;
-  if (hasGamma(n_samples) || m_plda_base->hasGamma(n_samples))
-    gamma_a.reference(getGamma(n_samples));
-  else
-  {
-    gamma_a.reference(m_tmp_nf_nf_1);
-    m_plda_base->computeGamma(n_samples, gamma_a);
-  }
-  bob::math::prod(gamma_a, m_tmp_nf_1, m_tmp_nf_2);
-  double termb = 1 / 2. * (blitz::sum(m_tmp_nf_1*m_tmp_nf_2));
-
-  // 1/2/ Constant term of the log likelihood:
-  //      1/ First term of the likelihood: -Nsamples*D/2*log(2*PI)
-  //      2/ Second term of the likelihood: -1/2*log(det(SIGMA+A.A^T))
-  //        Efficient way: -Nsamples/2*log(det(sigma))-Nsamples/2*log(det(I+G^T.sigma^-1.G))
-  //       -1/2*log(det(I+aF^T.(sigma^-1-sigma^-1*G*(I+G^T.sigma^-1.G)*G^T*sigma^-1).F))
-  double log_likelihood; // = getAddLogLikeConstTerm(static_cast<size_t>(n_samples));
-  if (hasLogLikeConstTerm(n_samples) || m_plda_base->hasLogLikeConstTerm(n_samples))
-    log_likelihood = getLogLikeConstTerm(n_samples);
-  else
-    log_likelihood = m_plda_base->computeLogLikeConstTerm(n_samples, gamma_a);
-
-  log_likelihood += terma + termb;
-  return log_likelihood;
-}
-
-double bob::learn::misc::PLDAMachine::computeLogLikelihood(const blitz::Array<double,2>& samples,
-  bool enrol) const
-{
-  if (!m_plda_base) throw std::runtime_error("No PLDABase set to this machine");
-  // Check dimensionality
-  bob::core::array::assertSameDimensionLength(samples.extent(1), getDimD());
-
-  int n_samples = samples.extent(0) + (enrol?m_n_samples:0);
-  // 3/ Third term of the likelihood: -1/2*X^T*(SIGMA+A.A^T)^-1*X
-  //    Efficient way: -1/2*sum_i(xi^T.sigma^-1.xi - xi^T.sigma^-1*G*(I+G^T.sigma^-1.G)^-1*G^T*sigma^-1.xi
-  //      -1/2*sumWeighted^T*(I+aF^T.(sigma^-1-sigma^-1*G*(I+G^T.sigma^-1.G)^-1*G^T*sigma^-1).F)^-1*sumWeighted
-  //      where sumWeighted = sum_i(F^T*(sigma^-1-sigma^-1*G*(I+G^T.sigma^-1.G)^-1*G^T*sigma^-1)*xi)
-  const blitz::Array<double,2>& beta = getPLDABase()->getBeta();
-  const blitz::Array<double,2>& Ft_beta = getPLDABase()->getFtBeta();
-  const blitz::Array<double,1>& mu = getPLDABase()->getMu();
-  double terma = (enrol?m_nh_sum_xit_beta_xi:0.);
-  // sumWeighted
-  if (enrol && m_n_samples > 0) m_tmp_nf_1 = m_weighted_sum;
-  else m_tmp_nf_1 = 0;
-  for (int k=0; k<samples.extent(0); ++k)
-  {
-    blitz::Array<double,1> samp = samples(k,blitz::Range::all());
-    m_tmp_d_1 = samp - mu;
-    // terma += -1 / 2. * (xi^t*beta*xi)
-    bob::math::prod(beta, m_tmp_d_1, m_tmp_d_2);
-    terma += -1 / 2. * (blitz::sum(m_tmp_d_1*m_tmp_d_2));
-
-    // sumWeighted
-    bob::math::prod(Ft_beta, m_tmp_d_1, m_tmp_nf_2);
-    m_tmp_nf_1 += m_tmp_nf_2;
-  }
-
-  blitz::Array<double,2> gamma_a;
-  if (hasGamma(n_samples) || m_plda_base->hasGamma(n_samples))
-    gamma_a.reference(getGamma(n_samples));
-  else
-  {
-    gamma_a.reference(m_tmp_nf_nf_1);
-    m_plda_base->computeGamma(n_samples, gamma_a);
-  }
-  bob::math::prod(gamma_a, m_tmp_nf_1, m_tmp_nf_2);
-  double termb = 1 / 2. * (blitz::sum(m_tmp_nf_1*m_tmp_nf_2));
-
-  // 1/2/ Constant term of the log likelihood:
-  //      1/ First term of the likelihood: -Nsamples*D/2*log(2*PI)
-  //      2/ Second term of the likelihood: -1/2*log(det(SIGMA+A.A^T))
-  //        Efficient way: -Nsamples/2*log(det(sigma))-Nsamples/2*log(det(I+G^T.sigma^-1.G))
-  //       -1/2*log(det(I+aF^T.(sigma^-1-sigma^-1*G*(I+G^T.sigma^-1.G)*G^T*sigma^-1).F))
-  double log_likelihood; // = getAddLogLikeConstTerm(static_cast<size_t>(n_samples));
-  if (hasLogLikeConstTerm(n_samples) || m_plda_base->hasLogLikeConstTerm(n_samples))
-    log_likelihood = getLogLikeConstTerm(n_samples);
-  else
-    log_likelihood = m_plda_base->computeLogLikeConstTerm(n_samples, gamma_a);
-
-  log_likelihood += terma + termb;
-  return log_likelihood;
-}
-
-void bob::learn::misc::PLDAMachine::resize(const size_t dim_d, const size_t dim_f,
-  const size_t dim_g)
-{
-  m_weighted_sum.resizeAndPreserve(dim_f);
-  clearMaps();
-  resizeTmp();
-}
-
-void bob::learn::misc::PLDAMachine::resizeTmp()
-{
-  if (m_plda_base)
-  {
-    m_tmp_d_1.resize(getDimD());
-    m_tmp_d_2.resize(getDimD());
-    m_tmp_nf_1.resize(getDimF());
-    m_tmp_nf_2.resize(getDimF());
-    m_tmp_nf_nf_1.resize(getDimF(), getDimF());
-  }
-}
diff --git a/bob/learn/misc/cpp/PLDATrainer.cpp b/bob/learn/misc/cpp/PLDATrainer.cpp
deleted file mode 100644
index af50140..0000000
--- a/bob/learn/misc/cpp/PLDATrainer.cpp
+++ /dev/null
@@ -1,800 +0,0 @@
-/**
- * @date Fri Oct 14 18:07:56 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief Probabilistic Linear Discriminant Analysis
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-
-#include <bob.learn.misc/PLDATrainer.h>
-#include <bob.core/check.h>
-#include <bob.core/array_copy.h>
-#include <bob.core/array_random.h>
-#include <bob.math/inv.h>
-#include <bob.math/svd.h>
-#include <bob.core/check.h>
-#include <bob.core/array_repmat.h>
-#include <algorithm>
-#include <limits>
-#include <vector>
-
-#include <bob.math/linear.h>
-#include <bob.math/linsolve.h>
-
-
-
-bob::learn::misc::PLDATrainer::PLDATrainer(const bool use_sum_second_order):
-  m_rng(new boost::mt19937()),
-  m_dim_d(0), m_dim_f(0), m_dim_g(0),
-  m_use_sum_second_order(use_sum_second_order),
-  m_initF_method(bob::learn::misc::PLDATrainer::RANDOM_F), m_initF_ratio(1.),
-  m_initG_method(bob::learn::misc::PLDATrainer::RANDOM_G), m_initG_ratio(1.),
-  m_initSigma_method(bob::learn::misc::PLDATrainer::RANDOM_SIGMA),
-  m_initSigma_ratio(1.),
-  m_cache_S(0,0),
-  m_cache_z_first_order(0), m_cache_sum_z_second_order(0,0), m_cache_z_second_order(0),
-  m_cache_n_samples_per_id(0), m_cache_n_samples_in_training(), m_cache_B(0,0),
-  m_cache_Ft_isigma_G(0,0), m_cache_eta(0,0), m_cache_zeta(), m_cache_iota(),
-  m_tmp_nf_1(0), m_tmp_nf_2(0), m_tmp_ng_1(0),
-  m_tmp_D_1(0), m_tmp_D_2(0),
-  m_tmp_nfng_nfng(0,0), m_tmp_D_nfng_1(0,0), m_tmp_D_nfng_2(0,0)
-{
-}
-
-bob::learn::misc::PLDATrainer::PLDATrainer(const bob::learn::misc::PLDATrainer& other):
-  m_rng(other.m_rng),
-  m_dim_d(other.m_dim_d), m_dim_f(other.m_dim_f), m_dim_g(other.m_dim_g),
-  m_use_sum_second_order(other.m_use_sum_second_order),
-  m_initF_method(other.m_initF_method), m_initF_ratio(other.m_initF_ratio),
-  m_initG_method(other.m_initG_method), m_initG_ratio(other.m_initG_ratio),
-  m_initSigma_method(other.m_initSigma_method), m_initSigma_ratio(other.m_initSigma_ratio),
-  m_cache_S(bob::core::array::ccopy(other.m_cache_S)),
-  m_cache_z_first_order(),
-  m_cache_sum_z_second_order(bob::core::array::ccopy(other.m_cache_sum_z_second_order)),
-  m_cache_z_second_order(),
-  m_cache_n_samples_per_id(other.m_cache_n_samples_per_id),
-  m_cache_n_samples_in_training(other.m_cache_n_samples_in_training),
-  m_cache_B(bob::core::array::ccopy(other.m_cache_B)),
-  m_cache_Ft_isigma_G(bob::core::array::ccopy(other.m_cache_Ft_isigma_G)),
-  m_cache_eta(bob::core::array::ccopy(other.m_cache_eta))
-{
-  bob::core::array::ccopy(other.m_cache_z_first_order, m_cache_z_first_order);
-  bob::core::array::ccopy(other.m_cache_z_second_order, m_cache_z_second_order);
-  bob::core::array::ccopy(other.m_cache_zeta, m_cache_zeta);
-  bob::core::array::ccopy(other.m_cache_iota, m_cache_iota);
-  // Resize working arrays
-  resizeTmp();
-}
-
-bob::learn::misc::PLDATrainer::~PLDATrainer() {}
-
-bob::learn::misc::PLDATrainer& bob::learn::misc::PLDATrainer::operator=
-(const bob::learn::misc::PLDATrainer& other)
-{
-  if(this != &other)
-  {
-    m_rng = m_rng,
-    m_dim_d = other.m_dim_d;
-    m_dim_f = other.m_dim_f;
-    m_dim_g = other.m_dim_g;
-    m_use_sum_second_order = other.m_use_sum_second_order;
-    m_initF_method = other.m_initF_method;
-    m_initF_ratio = other.m_initF_ratio;
-    m_initG_method = other.m_initG_method;
-    m_initG_ratio = other.m_initG_ratio;
-    m_initSigma_method = other.m_initSigma_method;
-    m_initSigma_ratio = other.m_initSigma_ratio;
-    m_cache_S = bob::core::array::ccopy(other.m_cache_S);
-    bob::core::array::ccopy(other.m_cache_z_first_order, m_cache_z_first_order);
-    m_cache_sum_z_second_order = bob::core::array::ccopy(other.m_cache_sum_z_second_order);
-    bob::core::array::ccopy(other.m_cache_z_second_order, m_cache_z_second_order);
-    m_cache_n_samples_per_id = other.m_cache_n_samples_per_id;
-    m_cache_n_samples_in_training = other.m_cache_n_samples_in_training;
-    m_cache_B = bob::core::array::ccopy(other.m_cache_B);
-    m_cache_Ft_isigma_G = bob::core::array::ccopy(other.m_cache_Ft_isigma_G);
-    m_cache_eta = bob::core::array::ccopy(other.m_cache_eta);
-    bob::core::array::ccopy(other.m_cache_iota, m_cache_iota);
-    // Resize working arrays
-    resizeTmp();
-  }
-  return *this;
-}
-
-bool bob::learn::misc::PLDATrainer::operator==
-  (const bob::learn::misc::PLDATrainer& other) const
-{
-  return m_rng == m_rng &&
-         m_dim_d == other.m_dim_d &&
-         m_dim_f == other.m_dim_f &&
-         m_dim_g == other.m_dim_g &&
-         m_initF_method == other.m_initF_method &&
-         m_initF_ratio == other.m_initF_ratio &&
-         m_initG_method == other.m_initG_method &&
-         m_initG_ratio == other.m_initG_ratio &&
-         m_initSigma_method == other.m_initSigma_method &&
-         m_initSigma_ratio == other.m_initSigma_ratio &&
-         bob::core::array::isEqual(m_cache_S, m_cache_S) &&
-         bob::core::array::isEqual(m_cache_z_first_order, other.m_cache_z_first_order) &&
-         bob::core::array::isEqual(m_cache_sum_z_second_order, other.m_cache_sum_z_second_order) &&
-         bob::core::array::isEqual(m_cache_z_second_order, other.m_cache_z_second_order) &&
-         m_cache_n_samples_per_id.size() == m_cache_n_samples_per_id.size() &&
-         std::equal(m_cache_n_samples_per_id.begin(), m_cache_n_samples_per_id.end(), other.m_cache_n_samples_per_id.begin()) &&
-         m_cache_n_samples_in_training.size() == m_cache_n_samples_in_training.size() &&
-         std::equal(m_cache_n_samples_in_training.begin(), m_cache_n_samples_in_training.end(), other.m_cache_n_samples_in_training.begin()) &&
-         bob::core::array::isEqual(m_cache_B, other.m_cache_B) &&
-         bob::core::array::isEqual(m_cache_Ft_isigma_G, other.m_cache_Ft_isigma_G) &&
-         bob::core::array::isEqual(m_cache_eta, other.m_cache_eta) &&
-         bob::core::array::isEqual(m_cache_zeta, other.m_cache_zeta) &&
-         bob::core::array::isEqual(m_cache_iota, other.m_cache_iota);
-}
-
-bool bob::learn::misc::PLDATrainer::operator!=
-  (const bob::learn::misc::PLDATrainer &other) const
-{
-  return !(this->operator==(other));
-}
-
-bool bob::learn::misc::PLDATrainer::is_similar_to
-  (const bob::learn::misc::PLDATrainer &other, const double r_epsilon,
-   const double a_epsilon) const
-{
-  return m_rng == m_rng &&
-         m_dim_d == other.m_dim_d &&
-         m_dim_f == other.m_dim_f &&
-         m_dim_g == other.m_dim_g &&
-         m_use_sum_second_order == other.m_use_sum_second_order &&
-         m_initF_method == other.m_initF_method &&
-         bob::core::isClose(m_initF_ratio, other.m_initF_ratio, r_epsilon, a_epsilon) &&
-         m_initG_method == other.m_initG_method &&
-         bob::core::isClose(m_initG_ratio, other.m_initG_ratio, r_epsilon, a_epsilon) &&
-         m_initSigma_method == other.m_initSigma_method &&
-         bob::core::isClose(m_initSigma_ratio, other.m_initSigma_ratio, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_cache_S, m_cache_S, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_cache_z_first_order, other.m_cache_z_first_order, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_cache_sum_z_second_order, other.m_cache_sum_z_second_order, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_cache_z_second_order, other.m_cache_z_second_order, r_epsilon, a_epsilon) &&
-         m_cache_n_samples_per_id.size() == m_cache_n_samples_per_id.size() &&
-         std::equal(m_cache_n_samples_per_id.begin(), m_cache_n_samples_per_id.end(), other.m_cache_n_samples_per_id.begin()) &&
-         m_cache_n_samples_in_training.size() == m_cache_n_samples_in_training.size() &&
-         std::equal(m_cache_n_samples_in_training.begin(), m_cache_n_samples_in_training.end(), other.m_cache_n_samples_in_training.begin()) &&
-         bob::core::array::isClose(m_cache_B, other.m_cache_B, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_cache_Ft_isigma_G, other.m_cache_Ft_isigma_G, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_cache_eta, other.m_cache_eta, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_cache_zeta, other.m_cache_zeta, r_epsilon, a_epsilon) &&
-         bob::core::array::isClose(m_cache_iota, other.m_cache_iota, r_epsilon, a_epsilon);
-}
-
-void bob::learn::misc::PLDATrainer::initialize(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  // Checks training data
-  checkTrainingData(v_ar);
-
-  // Gets dimension (first Arrayset)
-  size_t n_features = v_ar[0].extent(1);
-  m_dim_d = machine.getDimD();
-  // Get dimensionalities from the PLDABase
-  bob::core::array::assertSameDimensionLength(n_features, m_dim_d);
-  m_dim_f = machine.getDimF();
-  m_dim_g = machine.getDimG();
-
-  // Reinitializes array members
-  initMembers(v_ar);
-
-  // Computes the mean and the covariance if required
-  computeMeanVariance(machine, v_ar);
-
-  // Initialization (e.g. using scatter)
-  initFGSigma(machine, v_ar);
-}
-
-void bob::learn::misc::PLDATrainer::finalize(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  // Precomputes constant parts of the log likelihood and (gamma_a)
-  precomputeLogLike(machine, v_ar);
-  // Adds the case 1 sample if not already done (always used for scoring)
-  machine.getAddGamma(1);
-  machine.getAddLogLikeConstTerm(1);
-}
-
-void bob::learn::misc::PLDATrainer::checkTrainingData(const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  // Checks that the vector of Arraysets is not empty
-  if (v_ar.size() == 0) {
-    throw std::runtime_error("input training set is empty");
-  }
-
-  // Gets dimension (first Arrayset)
-  int n_features = v_ar[0].extent(1);
-  // Checks dimension consistency
-  for (size_t i=0; i<v_ar.size(); ++i) {
-    if (v_ar[i].extent(1) != n_features) {
-      boost::format m("number of features (columns) of array for class %u (%d) does not match that of array for class 0 (%d)");
-      m % i % v_ar[0].extent(1) % n_features;
-      throw std::runtime_error(m.str());
-    }
-  }
-}
-
-void bob::learn::misc::PLDATrainer::initMembers(const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  // Gets dimension (first Arrayset)
-  const size_t n_features = v_ar[0].extent(1); // dimensionality of the data
-  const size_t n_identities = v_ar.size();
-
-  m_cache_S.resize(n_features, n_features);
-  m_cache_sum_z_second_order.resize(m_dim_f+m_dim_g, m_dim_f+m_dim_g);
-
-  // Loops over the identities
-  for (size_t i=0; i<n_identities; ++i)
-  {
-    // Number of training samples for this identity
-    const size_t n_i = v_ar[i].extent(0);
-    // m_cache_z_first_order
-    blitz::Array<double,2> z_i(n_i, m_dim_f+m_dim_g);
-    m_cache_z_first_order.push_back(z_i);
-    // m_z_second_order
-    if (!m_use_sum_second_order)
-    {
-      blitz::Array<double,3> z2_i(n_i, m_dim_f+m_dim_g, m_dim_f+m_dim_g);
-      m_cache_z_second_order.push_back(z2_i);
-    }
-
-    // m_cache_n_samples_per_id
-    m_cache_n_samples_per_id.push_back(n_i);
-
-    // Maps dependent on the number of samples per identity
-    std::map<size_t,bool>::iterator it;
-    it = m_cache_n_samples_in_training.find(n_i);
-    if (it == m_cache_n_samples_in_training.end())
-    {
-      // Indicates if there are identities with n_i training samples and if
-      // corresponding matrices are up to date.
-      m_cache_n_samples_in_training[n_i] = false;
-      // Allocates arrays for identities with n_i training samples
-      m_cache_zeta[n_i].reference(blitz::Array<double,2>(m_dim_g, m_dim_g));
-      m_cache_iota[n_i].reference(blitz::Array<double,2>(m_dim_f, m_dim_g));
-    }
-  }
-
-  m_cache_B.resize(n_features, m_dim_f+m_dim_g);
-  m_cache_Ft_isigma_G.resize(m_dim_f, m_dim_g);
-  m_cache_eta.resize(m_dim_f, m_dim_g);
-
-  // Working arrays
-  resizeTmp();
-}
-
-void bob::learn::misc::PLDATrainer::resizeTmp()
-{
-  m_tmp_nf_1.resize(m_dim_f);
-  m_tmp_nf_2.resize(m_dim_f);
-  m_tmp_ng_1.resize(m_dim_g);
-  m_tmp_D_1.resize(m_dim_d);
-  m_tmp_D_2.resize(m_dim_d);
-  m_tmp_nfng_nfng.resize(m_dim_f+m_dim_g, m_dim_f+m_dim_g);
-  m_tmp_D_nfng_1.resize(m_dim_d, m_dim_f+m_dim_g);
-  m_tmp_D_nfng_2.resize(m_dim_d, m_dim_f+m_dim_g);
-}
-
-void bob::learn::misc::PLDATrainer::computeMeanVariance(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  blitz::Array<double,1>& mu = machine.updateMu();
-  blitz::Range all = blitz::Range::all();
-  // TODO: Uncomment variance computation if required
-  /*  if(m_compute_likelihood)
-  {
-    // loads all the data in a single shot - required for scatter
-    blitz::Array<double,2> data(n_features, n_samples);
-    for (size_t i=0; i<n_samples; ++i)
-      data(all,i) = ar(i,all);
-    // Mean and scatter computation
-    bob::math::scatter(data, m_cache_S, mu);
-    // divides scatter by N-1
-    m_cache_S /= static_cast<double>(n_samples-1);
-  }
-  else */
-  {
-    // Computes the mean and updates mu
-    mu = 0.;
-    size_t n_samples = 0;
-    for (size_t j=0; j<v_ar.size(); ++j) {
-      n_samples += v_ar[j].extent(0);
-      for (int i=0; i<v_ar[j].extent(0); ++i)
-        mu += v_ar[j](i,all);
-    }
-    mu /= static_cast<double>(n_samples);
-    m_cache_S = 0.;
-  }
-}
-
-void bob::learn::misc::PLDATrainer::initFGSigma(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  // Initializes F, G and sigma
-  initF(machine, v_ar);
-  initG(machine, v_ar);
-  initSigma(machine, v_ar);
-
-  // Precomputes values using new F, G and sigma
-  machine.precompute();
-}
-
-void bob::learn::misc::PLDATrainer::initF(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  blitz::Array<double,2>& F = machine.updateF();
-  blitz::Range a = blitz::Range::all();
-
-  // 1: between-class scatter
-  if (m_initF_method == bob::learn::misc::PLDATrainer::BETWEEN_SCATTER)
-  {
-    if (machine.getDimF() > v_ar.size()) {
-      boost::format m("The rank of the matrix F ('%ld') can't be larger than the number of classes in the training set ('%ld')");
-      m % machine.getDimF() % v_ar.size();
-      throw std::runtime_error(m.str());
-    }
-
-    // a/ Computes between-class scatter matrix
-    blitz::firstIndex bi;
-    blitz::secondIndex bj;
-    blitz::Array<double,2> S(machine.getDimD(), v_ar.size());
-    S = 0.;
-    m_tmp_D_1 = 0.;
-    for (size_t i=0; i<v_ar.size(); ++i)
-    {
-      blitz::Array<double,1> Si = S(blitz::Range::all(),i);
-      Si = 0.;
-      for (int j=0; j<v_ar[i].extent(0); ++j)
-      {
-        // Si += x_ij
-        Si += v_ar[i](j,a);
-      }
-      // Si = mean of the samples class i
-      Si /= static_cast<double>(v_ar[i].extent(0));
-      m_tmp_D_1 += Si;
-    }
-    m_tmp_D_1 /= static_cast<double>(v_ar.size());
-
-    // b/ Removes the mean
-    S = S(bi,bj) - m_tmp_D_1(bi);
-
-    // c/ SVD of the between-class scatter matrix
-    const size_t n_singular = std::min(machine.getDimD(),v_ar.size());
-    blitz::Array<double,2> U(machine.getDimD(), n_singular);
-    blitz::Array<double,1> sigma(n_singular);
-    bob::math::svd(S, U, sigma);
-
-    // d/ Updates F
-    blitz::Array<double,2> Uslice = U(a, blitz::Range(0,m_dim_f-1));
-    blitz::Array<double,1> sigma_slice = sigma(blitz::Range(0,m_dim_f-1));
-    sigma_slice = blitz::sqrt(sigma_slice);
-    F = Uslice(bi,bj) / sigma_slice(bj);
-  }
-  // otherwise: random initialization
-  else {
-    // F initialization
-    bob::core::array::randn(*m_rng, F);
-    F *= m_initF_ratio;
-  }
-}
-
-void bob::learn::misc::PLDATrainer::initG(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  blitz::Array<double,2>& G = machine.updateG();
-  blitz::Range a = blitz::Range::all();
-
-  // 1: within-class scatter
-  if (m_initG_method == bob::learn::misc::PLDATrainer::WITHIN_SCATTER)
-  {
-    // a/ Computes within-class scatter matrix
-    blitz::firstIndex bi;
-    blitz::secondIndex bj;
-    size_t Nsamples=0;
-    for (size_t i=0; i<v_ar.size(); ++i)
-      Nsamples += v_ar[i].extent(0);
-
-    blitz::Array<double,2> S(machine.getDimD(), Nsamples);
-    S = 0.;
-    m_tmp_D_1 = 0.;
-    int counter = 0;
-    for (size_t i=0; i<v_ar.size(); ++i)
-    {
-      // Computes the mean of the samples class i
-      m_tmp_D_2 = 0.;
-      for (int j=0; j<v_ar[i].extent(0); ++j)
-      {
-        // m_tmp_D_2 += x_ij
-        m_tmp_D_2 += v_ar[i](j,a);
-      }
-      // m_tmp_D_2 = mean of the samples class i
-      m_tmp_D_2 /= static_cast<double>(v_ar[i].extent(0));
-
-      // Generates the scatter
-      for (int j=0; j<v_ar[i].extent(0); ++j)
-      {
-        blitz::Array<double,1> Si = S(a, counter);
-        // Si = x_ij - mean_i
-        Si = v_ar[i](j,a) - m_tmp_D_2;
-        // mean of the within class
-        m_tmp_D_1 += Si;
-        ++counter;
-      }
-    }
-    m_tmp_D_1 /= static_cast<double>(Nsamples);
-
-    // b/ Removes the mean
-    S = S(bi,bj) - m_tmp_D_1(bi);
-
-    // c/ SVD of the between-class scatter matrix
-    blitz::Array<double,2> U(m_dim_d, std::min(m_dim_d, Nsamples));
-    blitz::Array<double,1> sigma(std::min(m_dim_d, Nsamples));
-    bob::math::svd(S, U, sigma);
-
-    // d/ Updates G
-    blitz::Array<double,2> Uslice = U(blitz::Range::all(), blitz::Range(0,m_dim_g-1));
-    blitz::Array<double,1> sigma_slice = sigma(blitz::Range(0,m_dim_g-1));
-    sigma_slice = blitz::sqrt(sigma_slice);
-    G = Uslice(bi,bj) / sigma_slice(bj);
-  }
-  // otherwise: random initialization
-  else {
-    // G initialization
-    bob::core::array::randn(*m_rng, G);
-    G *= m_initG_ratio;
-  }
-}
-
-void bob::learn::misc::PLDATrainer::initSigma(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  blitz::Array<double,1>& sigma = machine.updateSigma();
-  blitz::Range a = blitz::Range::all();
-
-  // 1: percentage of the variance of G
-  if (m_initSigma_method == bob::learn::misc::PLDATrainer::VARIANCE_G) {
-    const blitz::Array<double,2>& G = machine.getG();
-    blitz::secondIndex bj;
-    m_tmp_D_1 = blitz::mean(G, bj);
-    // Updates sigma
-    sigma = blitz::fabs(m_tmp_D_1) * m_initSigma_ratio;
-  }
-  // 2: constant value
-  else if (m_initSigma_method == bob::learn::misc::PLDATrainer::CONSTANT) {
-    sigma = m_initSigma_ratio;
-  }
-  // 3: percentage of the variance of the data
-  else if (m_initSigma_method == bob::learn::misc::PLDATrainer::VARIANCE_DATA) {
-    // a/ Computes the global mean
-    //    m_tmp_D_1 = 1/N sum_i x_i
-    m_tmp_D_1 = 0.;
-    size_t Ns = 0;
-    for (size_t i=0; i<v_ar.size(); ++i)
-    {
-      for (int j=0; j<v_ar[i].extent(0); ++j)
-        m_tmp_D_1 += v_ar[i](j,a);
-      Ns += v_ar[i].extent(0);
-    }
-    m_tmp_D_1 /= static_cast<double>(Ns);
-
-    // b/ Computes the variance:
-    m_tmp_D_2 = 0.;
-    for (size_t i=0; i<v_ar.size(); ++i)
-      for (int j=0; j<v_ar[i].extent(0); ++j)
-        m_tmp_D_2 += blitz::pow2(v_ar[i](j,a) - m_tmp_D_1);
-    sigma = m_initSigma_ratio * m_tmp_D_2 / static_cast<double>(Ns-1);
-  }
-  // otherwise: random initialization
-  else {
-    // sigma initialization
-    bob::core::array::randn(*m_rng, sigma);
-    sigma = blitz::fabs(sigma) * m_initSigma_ratio;
-  }
-  // Apply variance threshold
-  machine.applyVarianceThreshold();
-}
-
-void bob::learn::misc::PLDATrainer::eStep(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  // Precomputes useful variables using current estimates of F,G, and sigma
-  precomputeFromFGSigma(machine);
-  // Gets the mean mu from the machine
-  const blitz::Array<double,1>& mu = machine.getMu();
-  const blitz::Array<double,2>& alpha = machine.getAlpha();
-  const blitz::Array<double,2>& F = machine.getF();
-  const blitz::Array<double,2>& FtBeta = machine.getFtBeta();
-  const blitz::Array<double,2>& GtISigma = machine.getGtISigma();
-  blitz::Range a = blitz::Range::all();
-
-  // blitz indices
-  blitz::firstIndex bi;
-  blitz::secondIndex bj;
-  // Initializes sum of z second order statistics to 0
-  m_cache_sum_z_second_order = 0.;
-  for (size_t i=0; i<v_ar.size(); ++i)
-  {
-    // Computes expectation of z_ij = [h_i w_ij]
-    // 1/a/ Computes expectation of h_i
-    // Loop over the samples
-    m_tmp_nf_1 = 0.;
-    for (int j=0; j<v_ar[i].extent(0); ++j)
-    {
-      // m_tmp_D_1 = x_sj-mu
-      m_tmp_D_1 = v_ar[i](j,a) - mu;
-
-      // m_tmp_nf_2 = F^T.beta.(x_sj-mu)
-      bob::math::prod(FtBeta, m_tmp_D_1, m_tmp_nf_2);
-      // m_tmp_nf_1 = sum_j F^T.beta.(x_sj-mu)
-      m_tmp_nf_1 += m_tmp_nf_2;
-    }
-    const blitz::Array<double,2>& gamma_a = machine.getAddGamma(v_ar[i].extent(0));
-    blitz::Range r_hi(0, m_dim_f-1);
-    // m_tmp_nf_2 = E(h_i) = gamma_A  sum_j F^T.beta.(x_sj-mu)
-    bob::math::prod(gamma_a, m_tmp_nf_1, m_tmp_nf_2);
-
-    // 1/b/ Precomputes: m_tmp_D_2 = F.E{h_i}
-    bob::math::prod(F, m_tmp_nf_2, m_tmp_D_2);
-
-    // 2/ First and second order statistics of z
-    // Precomputed values
-    blitz::Array<double,2>& zeta_a = m_cache_zeta[v_ar[i].extent(0)];
-    blitz::Array<double,2>& iota_a = m_cache_iota[v_ar[i].extent(0)];
-    blitz::Array<double,2> iotat_a = iota_a.transpose(1,0);
-
-    // Extracts statistics of z_ij = [h_i w_ij] from y_i = [h_i w_i1 ... w_iJ]
-    blitz::Range r1(0, m_dim_f-1);
-    blitz::Range r2(m_dim_f, m_dim_f+m_dim_g-1);
-    for (int j=0; j<v_ar[i].extent(0); ++j)
-    {
-      // 1/ First order statistics of z
-      blitz::Array<double,1> z_first_order_ij_1 = m_cache_z_first_order[i](j,r1);
-      z_first_order_ij_1 = m_tmp_nf_2; // E{h_i}
-      // m_tmp_D_1 = x_sj - mu - F.E{h_i}
-      m_tmp_D_1 = v_ar[i](j,a) - mu - m_tmp_D_2;
-      // m_tmp_ng_1 = G^T.sigma^-1.(x_sj-mu-fhi)
-      bob::math::prod(GtISigma, m_tmp_D_1, m_tmp_ng_1);
-      // z_first_order_ij_2 = (Id+G^T.sigma^-1.G)^-1.G^T.sigma^-1.(x_sj-mu) = E{w_ij}
-      blitz::Array<double,1> z_first_order_ij_2 = m_cache_z_first_order[i](j,r2);
-      bob::math::prod(alpha, m_tmp_ng_1, z_first_order_ij_2);
-
-      // 2/ Second order statistics of z
-      blitz::Array<double,2> z_sum_so_11 = m_cache_sum_z_second_order(r1,r1);
-      blitz::Array<double,2> z_sum_so_12 = m_cache_sum_z_second_order(r1,r2);
-      blitz::Array<double,2> z_sum_so_21 = m_cache_sum_z_second_order(r2,r1);
-      blitz::Array<double,2> z_sum_so_22 = m_cache_sum_z_second_order(r2,r2);
-      if (m_use_sum_second_order)
-      {
-        z_sum_so_11 += gamma_a + z_first_order_ij_1(bi) * z_first_order_ij_1(bj);
-        z_sum_so_12 += iota_a + z_first_order_ij_1(bi) * z_first_order_ij_2(bj);
-        z_sum_so_21 += iotat_a + z_first_order_ij_2(bi) * z_first_order_ij_1(bj);
-        z_sum_so_22 += zeta_a + z_first_order_ij_2(bi) * z_first_order_ij_2(bj);
-      }
-      else
-      {
-        blitz::Array<double,2> z_so_11 = m_cache_z_second_order[i](j,r1,r1);
-        z_so_11 = gamma_a + z_first_order_ij_1(bi) * z_first_order_ij_1(bj);
-        z_sum_so_11 += z_so_11;
-        blitz::Array<double,2> z_so_12 = m_cache_z_second_order[i](j,r1,r2);
-        z_so_12 = iota_a + z_first_order_ij_1(bi) * z_first_order_ij_2(bj);
-        z_sum_so_12 += z_so_12;
-        blitz::Array<double,2> z_so_21 = m_cache_z_second_order[i](j,r2,r1);
-        z_so_21 = iotat_a + z_first_order_ij_2(bi) * z_first_order_ij_1(bj);
-        z_sum_so_21 += z_so_21;
-        blitz::Array<double,2> z_so_22 = m_cache_z_second_order[i](j,r2,r2);
-        z_so_22 = zeta_a + z_first_order_ij_2(bi) * z_first_order_ij_2(bj);
-        z_sum_so_22 += z_so_22;
-      }
-    }
-  }
-}
-
-void bob::learn::misc::PLDATrainer::precomputeFromFGSigma(bob::learn::misc::PLDABase& machine)
-{
-  // Blitz compatibility: ugly fix (const_cast, as old blitz version does not
-  // provide a non-const version of transpose())
-  const blitz::Array<double,2>& F = machine.getF();
-  const blitz::Array<double,2> Ft = const_cast<blitz::Array<double,2>&>(F).transpose(1,0);
-  const blitz::Array<double,2>& Gt_isigma = machine.getGtISigma();
-  const blitz::Array<double,2> Gt_isigma_t = const_cast<blitz::Array<double,2>&>(Gt_isigma).transpose(1,0);
-  const blitz::Array<double,2>& alpha = machine.getAlpha();
-
-  // Precomputes F, G and sigma-based expressions
-  bob::math::prod(Ft, Gt_isigma_t, m_cache_Ft_isigma_G);
-  bob::math::prod(m_cache_Ft_isigma_G, alpha, m_cache_eta);
-  blitz::Array<double,2> etat = m_cache_eta.transpose(1,0);
-
-  // Reinitializes all the zeta_a and iota_a
-  std::map<size_t,bool>::iterator it;
-  for (it=m_cache_n_samples_in_training.begin(); it!=m_cache_n_samples_in_training.end();
-      ++it)
-    it->second = false;
-
-  for (it=m_cache_n_samples_in_training.begin(); it!=m_cache_n_samples_in_training.end();
-      ++it)
-  {
-    size_t n_i = it->first;
-    // Precomputes zeta and iota for identities with q_i training samples,
-    // if not already done
-    if (!it->second)
-    {
-      const blitz::Array<double,2>& gamma_a = machine.getAddGamma(n_i);
-      blitz::Array<double,2>& zeta_a = m_cache_zeta[n_i];
-      blitz::Array<double,2>& iota_a = m_cache_iota[n_i];
-      bob::math::prod(gamma_a, m_cache_eta, iota_a);
-      bob::math::prod(etat, iota_a, zeta_a);
-      zeta_a += alpha;
-      iota_a = - iota_a;
-      // Now up to date
-      it->second = true;
-    }
-  }
-}
-
-void bob::learn::misc::PLDATrainer::precomputeLogLike(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  // Precomputes the log determinant of alpha and sigma
-  machine.precomputeLogLike();
-
-  // Precomputes the log likelihood constant term
-  std::map<size_t,bool>::iterator it;
-  for (it=m_cache_n_samples_in_training.begin();
-       it!=m_cache_n_samples_in_training.end(); ++it)
-  {
-    // Precomputes the log likelihood constant term for identities with q_i
-    // training samples, if not already done
-    machine.getAddLogLikeConstTerm(it->first);
-  }
-}
-
-
-void bob::learn::misc::PLDATrainer::mStep(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  // 1/ New estimate of B = {F G}
-  updateFG(machine, v_ar);
-
-  // 2/ New estimate of Sigma
-  updateSigma(machine, v_ar);
-
-  // 3/ Precomputes new values after updating F, G and sigma
-  machine.precompute();
-  // Precomputes useful variables using current estimates of F,G, and sigma
-  precomputeFromFGSigma(machine);
-}
-
-void bob::learn::misc::PLDATrainer::updateFG(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  /// Computes the B matrix (B = [F G])
-  /// B = (sum_ij (x_ij-mu).E{z_i}^T).(sum_ij E{z_i.z_i^T})^-1
-
-  // 1/ Computes the numerator (sum_ij (x_ij-mu).E{z_i}^T)
-  // Gets the mean mu from the machine
-  const blitz::Array<double,1>& mu = machine.getMu();
-  blitz::Range a = blitz::Range::all();
-  m_tmp_D_nfng_2 = 0.;
-  for (size_t i=0; i<v_ar.size(); ++i)
-  {
-    // Loop over the samples
-    for (int j=0; j<v_ar[i].extent(0); ++j)
-    {
-      // m_tmp_D_1 = x_sj-mu
-      m_tmp_D_1 = v_ar[i](j,a) - mu;
-      // z_first_order_ij = E{z_ij}
-      blitz::Array<double,1> z_first_order_ij = m_cache_z_first_order[i](j, a);
-      // m_tmp_D_nfng_1 = (x_sj-mu).E{z_ij}^T
-      bob::math::prod(m_tmp_D_1, z_first_order_ij, m_tmp_D_nfng_1);
-      m_tmp_D_nfng_2 += m_tmp_D_nfng_1;
-    }
-  }
-
-  // 2/ Computes the denominator inv(sum_ij E{z_i.z_i^T})
-  bob::math::inv(m_cache_sum_z_second_order, m_tmp_nfng_nfng);
-
-  // 3/ Computes numerator / denominator
-  bob::math::prod(m_tmp_D_nfng_2, m_tmp_nfng_nfng, m_cache_B);
-
-  // 4/ Updates the machine
-  blitz::Array<double, 2>& F = machine.updateF();
-  blitz::Array<double, 2>& G = machine.updateG();
-  F = m_cache_B(a, blitz::Range(0, m_dim_f-1));
-  G = m_cache_B(a, blitz::Range(m_dim_f, m_dim_f+m_dim_g-1));
-}
-
-void bob::learn::misc::PLDATrainer::updateSigma(bob::learn::misc::PLDABase& machine,
-  const std::vector<blitz::Array<double,2> >& v_ar)
-{
-  /// Computes the Sigma matrix
-  /// Sigma = 1/IJ sum_ij Diag{(x_ij-mu).(x_ij-mu)^T - B.E{z_i}.(x_ij-mu)^T}
-
-  // Gets the mean mu and the matrix sigma from the machine
-  blitz::Array<double,1>& sigma = machine.updateSigma();
-  const blitz::Array<double,1>& mu = machine.getMu();
-  blitz::Range a = blitz::Range::all();
-
-  sigma = 0.;
-  size_t n_IJ=0; /// counts the number of samples
-  for (size_t i=0; i<v_ar.size(); ++i)
-  {
-    // Loop over the samples
-    for (int j=0; j<v_ar[i].extent(0); ++j)
-    {
-      // m_tmp_D_1 = x_ij-mu
-      m_tmp_D_1 = v_ar[i](j,a) - mu;
-      // sigma += Diag{(x_ij-mu).(x_ij-mu)^T}
-      sigma += blitz::pow2(m_tmp_D_1);
-
-      // z_first_order_ij = E{z_ij}
-      blitz::Array<double,1> z_first_order_ij = m_cache_z_first_order[i](j,a);
-      // m_tmp_D_2 = B.E{z_ij}
-      bob::math::prod(m_cache_B, z_first_order_ij, m_tmp_D_2);
-      // sigma -= Diag{B.E{z_ij}.(x_ij-mu)
-      sigma -= (m_tmp_D_1 * m_tmp_D_2);
-      ++n_IJ;
-    }
-  }
-  // Normalizes by the number of samples
-  sigma /= static_cast<double>(n_IJ);
-  // Apply variance threshold
-  machine.applyVarianceThreshold();
-}
-
-
-void bob::learn::misc::PLDATrainer::enrol(bob::learn::misc::PLDAMachine& plda_machine,
-  const blitz::Array<double,2>& ar) const
-{
-  // Gets dimension
-  const size_t dim_d = ar.extent(1);
-  const int n_samples = ar.extent(0);
-  // Compare the dimensionality from the base trainer/machine with the one
-  // of the enrollment samples
-  if (plda_machine.getDimD() != dim_d) {
-    boost::format m("the extent of the D dimension of the input machine (%u) does not match the input sample (%u)");
-    m % plda_machine.getDimD() % dim_d;
-    throw std::runtime_error(m.str());
-  }
-  const size_t dim_f = plda_machine.getDimF();
-
-  // Resize working arrays
-  m_tmp_D_1.resize(dim_d);
-  m_tmp_D_2.resize(dim_d);
-  m_tmp_nf_1.resize(dim_f);
-
-  // Useful values from the base machine
-  blitz::Array<double,1>& weighted_sum = plda_machine.updateWeightedSum();
-  const blitz::Array<double,1>& mu = plda_machine.getPLDABase()->getMu();
-  const blitz::Array<double,2>& beta = plda_machine.getPLDABase()->getBeta();
-  const blitz::Array<double,2>& FtBeta = plda_machine.getPLDABase()->getFtBeta();
-
-  // Updates the PLDA machine
-  plda_machine.setNSamples(n_samples);
-  double terma = 0.;
-  weighted_sum = 0.;
-  blitz::Range a = blitz::Range::all();
-  for (int i=0; i<n_samples; ++i) {
-    m_tmp_D_1 =  ar(i,a) - mu;
-    // a/ weighted sum
-    bob::math::prod(FtBeta, m_tmp_D_1, m_tmp_nf_1);
-    weighted_sum += m_tmp_nf_1;
-    // b/ first xi dependent term of the log likelihood
-    bob::math::prod(beta, m_tmp_D_1, m_tmp_D_2);
-    terma += -1 / 2. * blitz::sum(m_tmp_D_1 * m_tmp_D_2);
-  }
-  plda_machine.setWSumXitBetaXi(terma);
-
-  // Adds the precomputed values for the cases N and N+1 if not already
-  // in the base machine (used by the forward function, 1 already added)
-  plda_machine.getAddGamma(n_samples);
-  plda_machine.getAddLogLikeConstTerm(n_samples);
-  plda_machine.getAddGamma(n_samples+1);
-  plda_machine.getAddLogLikeConstTerm(n_samples+1);
-  plda_machine.setLogLikelihood(plda_machine.computeLogLikelihood(
-                                  blitz::Array<double,2>(0,dim_d),true));
-}
diff --git a/bob/learn/misc/cpp/ZTNorm.cpp b/bob/learn/misc/cpp/ZTNorm.cpp
deleted file mode 100644
index 504f31c..0000000
--- a/bob/learn/misc/cpp/ZTNorm.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- * @date Tue Jul 19 15:33:20 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.learn.misc/ZTNorm.h>
-#include <bob.core/assert.h>
-#include <limits>
-
-
-static void _ztNorm(const blitz::Array<double,2>& rawscores_probes_vs_models,
-            const blitz::Array<double,2>* rawscores_zprobes_vs_models,
-            const blitz::Array<double,2>* rawscores_probes_vs_tmodels,
-            const blitz::Array<double,2>* rawscores_zprobes_vs_tmodels,
-            const blitz::Array<bool,2>* mask_zprobes_vs_tmodels_istruetrial,
-            blitz::Array<double,2>& scores)
-{
-  // Rename variables
-  const blitz::Array<double,2>& A = rawscores_probes_vs_models;
-  const blitz::Array<double,2>* B = rawscores_zprobes_vs_models;
-  const blitz::Array<double,2>* C = rawscores_probes_vs_tmodels;
-  const blitz::Array<double,2>* D = rawscores_zprobes_vs_tmodels;
-
-  // Compute the sizes
-  int size_eval  = A.extent(0);
-  int size_enrol = A.extent(1);
-  int size_tnorm = (C ? C->extent(0) : 0);
-  int size_znorm = (B ? B->extent(1) : 0);
-
-  // Check the inputs
-  bob::core::array::assertSameDimensionLength(A.extent(0), size_eval);
-  bob::core::array::assertSameDimensionLength(A.extent(1), size_enrol);
-
-  if (B) {
-    bob::core::array::assertSameDimensionLength(B->extent(1), size_znorm);
-    if (size_znorm > 0)
-      bob::core::array::assertSameDimensionLength(B->extent(0), size_eval);
-  }
-
-  if (C) {
-    bob::core::array::assertSameDimensionLength(C->extent(0), size_tnorm);
-    if (size_tnorm > 0)
-      bob::core::array::assertSameDimensionLength(C->extent(1), size_enrol);
-  }
-
-  if (D && size_znorm > 0 && size_tnorm > 0) {
-    bob::core::array::assertSameDimensionLength(D->extent(0), size_tnorm);
-    bob::core::array::assertSameDimensionLength(D->extent(1), size_znorm);
-  }
-
-  if (mask_zprobes_vs_tmodels_istruetrial) {
-    bob::core::array::assertSameDimensionLength(mask_zprobes_vs_tmodels_istruetrial->extent(0), size_tnorm);
-    bob::core::array::assertSameDimensionLength(mask_zprobes_vs_tmodels_istruetrial->extent(1), size_znorm);
-  }
-
-  bob::core::array::assertSameDimensionLength(scores.extent(0), size_eval);
-  bob::core::array::assertSameDimensionLength(scores.extent(1), size_enrol);
-
-  // Declare needed IndexPlaceholder
-  blitz::firstIndex ii;
-  blitz::secondIndex jj;
-
-  // Constant to check if the std is close to 0.
-  const double eps = std::numeric_limits<double>::min();
-
-  // zA
-  blitz::Array<double,2> zA(A.shape());
-  if (B && size_znorm > 0) {
-    // Znorm  -->      zA  = (A - mean(B) ) / std(B)    [znorm on oringinal scores]
-    // mean(B)
-    blitz::Array<double,1> mean_B(blitz::mean(*B, jj));
-    // std(B)
-    blitz::Array<double,2> B2n(B->shape());
-    B2n = blitz::pow2((*B)(ii, jj) - mean_B(ii));
-    blitz::Array<double,1> std_B(B->extent(0));
-    if(size_znorm>1)
-      std_B = blitz::sqrt(blitz::sum(B2n, jj) / (size_znorm - 1));
-    else // 1 single value -> std = 0
-      std_B = 0;
-    std_B = blitz::where( std_B <= eps, 1., std_B);
-
-    zA = (A(ii, jj) - mean_B(ii)) / std_B(ii);
-  }
-  else
-    zA = A;
-
-  blitz::Array<double,2> zC(size_tnorm, size_enrol);
-  if (D && size_tnorm > 0 && size_znorm > 0) {
-    blitz::Array<double,1> mean_Dimp(size_tnorm);
-    blitz::Array<double,1> std_Dimp(size_tnorm);
-
-    // Compute mean_Dimp and std_Dimp = D only with impostors
-    for (int i = 0; i < size_tnorm; ++i) {
-      double sum = 0;
-      double sumsq = 0;
-      double count = 0;
-      for (int j = 0; j < size_znorm; ++j) {
-        bool keep;
-        // The second part is never executed if mask_zprobes_vs_tmodels_istruetrial==NULL
-        keep = (mask_zprobes_vs_tmodels_istruetrial == NULL) || !(*mask_zprobes_vs_tmodels_istruetrial)(i, j); //tnorm_models_spk_ids(i) != znorm_tests_spk_ids(j);
-
-        double value = keep * (*D)(i, j);
-        sum += value;
-        sumsq += value*value;
-        count += keep;
-      }
-
-      double mean = sum / count;
-      mean_Dimp(i) = mean;
-      if (count > 1)
-        std_Dimp(i) = sqrt((sumsq - count * mean * mean) / (count -1));
-      else // 1 single value -> std = 0
-        std_Dimp(i) = 0;
-    }
-
-    // zC  = (C - mean(D)) / std(D)     [znorm the tnorm scores]
-    std_Dimp = blitz::where( std_Dimp <= eps, 1., std_Dimp);
-    zC = ((*C)(ii, jj) - mean_Dimp(ii)) / std_Dimp(ii);
-  }
-  else if (C && size_tnorm > 0)
-    zC = *C;
-
-  if (C && size_tnorm > 0)
-  {
-    blitz::Array<double,1> mean_zC(size_enrol);
-    blitz::Array<double,1> std_zC(size_enrol);
-
-    // ztA = (zA - mean(zC)) / std(zC)  [ztnorm on eval scores]
-    mean_zC = blitz::mean(zC(jj, ii), jj);
-    if (size_tnorm > 1)
-      std_zC = sqrt(blitz::sum(pow(zC(jj, ii) - mean_zC(ii), 2) , jj) / (size_tnorm - 1));
-    else // 1 single value -> std = 0
-      std_zC = 0;
-    std_zC = blitz::where( std_zC <= eps, 1., std_zC);
-
-    // Normalised scores
-    scores = (zA(ii, jj) - mean_zC(jj)) /  std_zC(jj);
-  }
-  else
-    scores = zA;
-}
-
-void bob::learn::misc::ztNorm(const blitz::Array<double,2>& rawscores_probes_vs_models,
-            const blitz::Array<double,2>& rawscores_zprobes_vs_models,
-            const blitz::Array<double,2>& rawscores_probes_vs_tmodels,
-            const blitz::Array<double,2>& rawscores_zprobes_vs_tmodels,
-            const blitz::Array<bool,2>& mask_zprobes_vs_tmodels_istruetrial,
-            blitz::Array<double,2>& scores)
-{
-  _ztNorm(rawscores_probes_vs_models, &rawscores_zprobes_vs_models, &rawscores_probes_vs_tmodels,
-                 &rawscores_zprobes_vs_tmodels, &mask_zprobes_vs_tmodels_istruetrial, scores);
-}
-
-void bob::learn::misc::ztNorm(const blitz::Array<double,2>& rawscores_probes_vs_models,
-            const blitz::Array<double,2>& rawscores_zprobes_vs_models,
-            const blitz::Array<double,2>& rawscores_probes_vs_tmodels,
-            const blitz::Array<double,2>& rawscores_zprobes_vs_tmodels,
-            blitz::Array<double,2>& scores)
-{
-  _ztNorm(rawscores_probes_vs_models, &rawscores_zprobes_vs_models, &rawscores_probes_vs_tmodels,
-                 &rawscores_zprobes_vs_tmodels, NULL, scores);
-}
-
-void bob::learn::misc::tNorm(const blitz::Array<double,2>& rawscores_probes_vs_models,
-           const blitz::Array<double,2>& rawscores_probes_vs_tmodels,
-           blitz::Array<double,2>& scores)
-{
-  _ztNorm(rawscores_probes_vs_models, NULL, &rawscores_probes_vs_tmodels,
-                 NULL, NULL, scores);
-}
-
-void bob::learn::misc::zNorm(const blitz::Array<double,2>& rawscores_probes_vs_models,
-           const blitz::Array<double,2>& rawscores_zprobes_vs_models,
-           blitz::Array<double,2>& scores)
-{
-  _ztNorm(rawscores_probes_vs_models, &rawscores_zprobes_vs_models, NULL,
-                 NULL, NULL, scores);
-}
-
diff --git a/bob/learn/misc/data/data.hdf5 b/bob/learn/misc/data/data.hdf5
deleted file mode 100644
index 7c406233e19c49f5ab6e2c26d32257fc4e47e54f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2544
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf)AV!5f~pPp8#brLg@}Dy@CnCU}OM61_lYJ
zxFFPgbaf#?uC5F~l`!*RG*lad0Sko10TURdM^p%SxH<-aJRAY_H7u2$fTlB8U?dh5
zB~}7Cu=MBwlOU63WMG4s1vQWnnvxkAAp%BFb73?yP#z>Bs9?_kNvjSFCfp1r|Cu2Q
zS%IP;c_t<%umK!U^~{V3(4;*9VldQPA*d-J!5#|<e+GsMsLa4n!G8WOpd1a$hYC=C
z4UB6>Z5<7P(GVESA@Jh!H4(mQW(V6uYYu(MU;97g$(=e;@Wy`gtScus+kM#oA;2|>
zVd>TVTz_O2g(`mBZ*;ovMx7s%gPPUy2}LF%4p(x87<-rUIW%l)EA0?Fwg21Cq91Qx
zGCRyse(`ftleB}t&1at19&kFW^VwY-|C+&pA(r#*7uy5--$@i@&+Za&xE?#XXxSnG
zhYQ_p{l5N^4r>m5ca$v?ba1(NNvk1)$sy|#cfke$CWl(do=0{1fA`PO<|%tLLCoRO
ze9y~*Tfgmp|M{*!=Zv5GZ`@ec+C5v;;Xv=~#wigy?L!U}YbeZkuzwA2O;VJ*n8U*p
zCKB@AANE@~y=XkUjol$)GW-2nW+?}Tg=NBlT$k)41lHb5`}E!Z!;J+Ze@ew1D!lvH
zV%vZ3SKoEww~T<0LxR`z&Ireg_LlY=SKn|IaG1w_zT5JTsKb;)XV2&NGdctvZIa=x
zXFTwOH&o?G)d%~=wd<c=@?bsSv2$waCzi|hF(n(_ww(WGA9G7xP5sR;dt+(o69FY3
X_nX~v5R?`By#LA1Utc}bKG*{QB}4O;

diff --git a/bob/learn/misc/data/dataNormalized.hdf5 b/bob/learn/misc/data/dataNormalized.hdf5
deleted file mode 100644
index ac8d0302ebb312d35a8ee43c1c6195b899643733..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 259592
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%0Dv6E|18
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

diff --git a/bob/learn/misc/data/dataforMAP.hdf5 b/bob/learn/misc/data/dataforMAP.hdf5
deleted file mode 100644
index 9cd7bfe8533daab0a21ae20d342281ecf1afa977..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 259592
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
EfBs(Bi2wiq

diff --git a/bob/learn/misc/data/faithful.torch3.hdf5 b/bob/learn/misc/data/faithful.torch3.hdf5
deleted file mode 100644
index a508318e6e8bcc528674ab7f9e3594f73ddb8367..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 21448
zcmeI4dwdkt*~e$j<g%OH>~0bR(RvADF<g`sBm}vbqR_nJWhII$SY3?Z7OVymburWi
z@UqIqpf9+9q(Li<QgN|WqxjMlD+atIK$Wn7tRR>GLM(4Jiq$^PoH=XrY@R>*>7Qit
z`DAzIeCJ%A%bEF{^V@y2^osGB8E0i^__Eow6wPCPRR4akUQK24j5=23e(Qs7y@#y#
z1|dJ_8vbcoo^?LUs-JS#PaHQ+15(wm-mS~D!W8+*rcU&{pH>zq9rtrD4%lanTE$b7
z6=%vAQ)kbfI;V14l{!{&S)xw-hwr+UZpN?thY?y})}RYnv&U*cbwkCiIyNBk5y{Fw
z4{{4%`C4zA*88{SXH84hY-YJIWQ7hWM_$K&_->Z#+U?V(-#N8vnr4@$;jFCJ5JoUn
zp2I7!S+kjJAn=7Jk8Rm`wWgKe;eY)qyXM*}Fr!r-<{STYm8WF|IN#}dYSMhyb@oj*
zO<Ny%PH`iW5%Wx>cUNvU!{ra^%B^EK-<Yo4XAD<c+O@!K#j(l<YZ~tg^&ItBpvM9|
z7U;1+j|F-x&|`rf3$PXl#wJXdQ0e!FKTpvd7l<-EuAbf;^?aJ5Wj-ku1!EgeoOdJ|
zEquqWWo{QMgRv=n`+gRUdZFB&p??&NIS#IBi$){c?3#U&I6oN6nel3c-yfPKwDi~X
zKVp5W4nz4{cFh?O%T#;5L(twRaceNPYS_s?j5ZcLo}+pGF1`)Mh87*a*YC%2`#Iv=
zU~JFuAC`?aE`Kmb%lg*n6O5JZ^&W!yHrqAF5^*oqHxv7R5bBGIS;1JjKj?3c`r$Zz
zv|g8J|9xoxda)3%kHYnyc#38lqpw#yjwk&UJ%;_MTx%F_XI!Yc?-pMNV<W2%FM{@K
za<uGrV>t3{Fg~<b>R0;nSU=h;4((-DiyBqmkL{1F?zd&$ys1lIe20xQU_6J~4@9Fa
zFg|ChxL(;0?Q0((oC*6JhVfh?rhvU?9eWMhUj*%MHGUC{or=7<73zB!?6J$Z1o?q#
z{54`KjBnGvqu{S*@K=8U_FpyZPdkBsB1dx_6x*S`e{5)m<K=MuH^%s2top{B<ItZ2
zDVn=NG+}>cR)PJ|J_m#i{eP?Ff7ep+Mld$BcR7^XD!{)&2YYY)=gHOJzXds3Zi(?A
z_HXWTu%Eb4%f8Qm@mc<Z@n@fJ3^T{u4*tXOt`yLJ%iqwR-7e06{!cp<XpYumd|fTl
zp#F73aJ&ye{|AUo%Dz~hzD(biu-{gwub;?3`<@B*jiA3*qd#Q-TcCc|uf$rkS2@_r
z2Jvb0qW_LoJ&pWdfxk&Sg!TKuzfDjsZqrUA;^7jAhY8|PFt%>)h!3DY3&EeOjlqfW
zCE}Bg|5R1`dKtfGY%r?L_6}P8TPz-j{?B<D{M7>S<g$xbg0adg8)q~}vA@otVoqZG
z;4ha;MDTbA#(xv|_c$J}o4fV%XtWmM&$$otsoWoqLpkI}+NJtNWv@8Ymp)E^CNZ9D
z7|$KzWH2^x^>>@==B<g^HTQgR0ONh_yD+{-z+YnwKjd>LaF5I{Ta%1W%;&;)!Coa|
z9@={=#`9+>TE;#9Ru2Af4ifhz;tAr*b_C0<c%BdSZ#O2W{$jkQ_0u=taRBV!Rw=a9
zwfa(sr>gdsz<%KW+zkedXXCn;o1lLX|E?Jr4>BGLFdoMuZ^aA5n=4zqjPucY%vX%3
zmqbBwejTm4a~70izU>otnECY{)c+{-?>wUv<MS?<kJ>O^Ht3yL-^Wm2U^cY(tiIXw
z2h4|sFy72M5yt!*y$h~~e8_xJd}!Je^B?oI&L{-`w%4J5z~0W@V!oP>&_A|walVq{
z_kllC59lx9^$&wT&_AyASU==H_7CDO`!d4^?aTZFf8~0OMdtXi9LGNv^VQ0~#lVj>
z#wF$hu)k}+Xh#2rA-^$R>?LTQa(@BZ3+$0PNq;m^Kg`d$KBE@<Gkpo<H^fi&y~fQL
zfBhl;aQ@7^K|p*D+`sD!s1N3QcQ1@DnQs+nze0V5@;ByZT9N*`*`Mvu-=)x>onm*Q
zJ?L+4u>tvO-9MmzPM=sDj4h1Jy$$Y9U@yn}0_MY^MRnNT7U=&xf%e_A9FHMCocH7X
zYfssbeNg|(9L;@|h$G(%{E7LUx?K+>#?ueR^Mo-2?a_wu4*6*NPV~b5om>m?hx7Mr
zygym<1=fFqSb*{0AL2g_<Ik9?L;gU2jzRl)KfGG>Q~A{g^2L3>_(aw3gZk}fV|n$B
z&%*rcf&9qq5YQjUZ-^(nKV&WuU~lVw1IMYy_2-iF$7&DkZNEtj!h9Hr^Ec+>crg^`
zlTMgV{7}Dhinuyqf0*ymhUl-E>qgoLO|1jb^_vmQlS4_4EKuu4mol7}a3dMcPq<MG
zS3$VZ3<tMs^QHP{EjK06wS>DYiI6Ai30J~!5yJhP;i7~a%Wy4(yPV<Tgu8;_ItT}w
zB;CKxkf)XX#&=I?9>V>C;qnPbmh}=>6%y`$5+z+flo0O9uEmKXFX1L6O1ggV6Yi?6
z#fhT|!ofm#x33z)UDGY4X|;sAmf`9N=ViDE;jUx2DB&hDTnpjK7%on@>lv<ta5pfV
zmMaTX{7qsw58-ZPxO~E?eIJS!67D7nSjQ!Vo6K-t!cAc~KjCg>xC+AklHqCycMHSS
z67E)pt0$bF;Ua{a%5YJ_-NtY&gezybIN@$*xDLWiV>qpsEKu<`o#8x$yMy8K2^V0v
zLc;xu;YtWMgW<e{o5^r~!rjSm6@>dW!_^S(E{3Zm+}#XUPq+$(ix6%W!$k?l?PoEU
zpZ2HKbEDdyru&1Ofg)~MqVmex&P&3hgj4%{6l@_Jw|yKZ9Jg=SK{#tKoHnZ|S&JG+
zS~6jt@mPT3(itwFaB4rC;)R4$`}dS9A)FNCP)gIhgmWY#<{3ZXoD5e%xJ-ttA)Jfh
zY6)k#CyA~noOPJQMF^LbM933S!eujD3*oHC>m)i(IO{PeiR&Pob-PO9G^^tlu36Jr
z66YbDwT+*|<r7ZnVJKKgxHBnW9hVU9EQa$E?k5cAC*0W#S3$UQ7_NqJ=Q3O^;m%{Y
zdcx&1T!e6a7%ob<^BJy%aD5prPPhvgu7hwtWjM`B2o-<*7|uhu3mGn-a0LukNVxtC
zS3<Y}4Cf`>K!)=Z&XTz#(G`TdD2b3KY6y2R!_^XQFvHaou8`p(g!>u8MF}^A;aUhc
zl;PrpyM*C72se!3G_sCS#Bd(M4QIG~!WA=IA>p|7G3N5q{<L~-RL_f42R56rPz!lp
zuVlD5;i?#}gK+mSoJMqS_cEM^aQ87>KH-84S4g-y3|B(9`x(wlxN3&;6K*cURS@ns
z3|B+A2N<rFa7xcg@p{75P{2C&70D0k{xpx_0)(5-a6!T?V7L(B9%Q&M;T~eR2Eske
zaE*j}gyEV97h<?p!ad4xZG?M_;W`Pokl}2@Wr6bBB8JN&++v0+Alwp$D<<6I3|C6H
zT88rxZYjeB2=@fT1qt^g!-WX<zYG^9+%kr1Al!0>Yb4xL4A(@sFvGPHZUw`&5pE^J
zbrNnB!`ZAGzly)787_}-s~N6<aCHn<Ot{}MTq)t|8O}$zH4GOZ+%pUpB;2zM7b4v6
z87@q?=NPVmaBCT^k#K)txF*6iFkCC)o@cl=!o9$7orGJ*a6PBHw*c;I=fJ*p2=?vM
z@7F;G06K)nK!?x^_U)$|w<mN1pxekTFoL+xj=B{e=ooB!aUXwZQ4#F>mx4|tZH_)S
zp`&;bbP*$sNlGWN0CXl<Zx}l6^B)6Uh!6M8`-|TwT@vcN?78}pgw6wW3YpId&>>Cf
z`!?*`<37IaHhm51B36Jd0(C9!dE!gdA?$#Ce$*wnQ^a1S+wr2#=a48@IwsU1*{>95
zqYhvQ>NrsMGe$Hf`U^Ue>~v!k97|mc=n`^Q7@!lebP1>{xej$XQWt}|i?k#9G#vje
zpi8KLa{F#^73wNXogeBB7K#wIKLvDrh3`T6a@6rj9ZDE=2b=WOsDmim0Xh`a_4F0j
zC3Frj9{Xrhr*~)t>VQDk;QT;<{Vg32>MWkoLFZ)Yl7LUUSO=YxrDJ;v#`6=je^P(u
z+zh&?2(;(gAlj7<<}I*~t4Q38$7|mK`+)tkzA|7umTn9DD<*44!G2P=2D%H^8UZ?;
za_~LqcA!5gJ9Ja$GxrIIA1B1maN`QpVe|$6cu~g}mpVQl>U2O?k@kYV6YTrpH+M<h
ziF>4oqRwUbZfGC+@1AU=DxF0f<E2{s65DSET}>?<JC=&GaJ*)FgP^^UsJoN8$`;hk
zye^g`;uUlow!ew&gug)-1NH%4+7ER`X)e@(l<mz29T@6PY)kZ4u^e?%sGCgvM1N7$
z7shyO6e%ixJs7{kbkMQT{z#n(=1W={>aZ*w2^?o!BS7~k;~V4OHW76^md+6DoB31m
zLc*VzKVPFgrS9m*e3H5vtl#d$c&Xg81#~)Qf7a`VF}_UQ<@umXD>w5+>OLQX@n;(s
zCCb5H?rX*87=NhC^5OW~Q8#$1>iLglzGQ!E+>)Gc(*LNtN$rO^vC2IkL;D!-nFGY{
z(S9DVUkAj8n6K?e`=Krhb#C?o%txtXLY<i{q`!mhn>tmnuRTlTVg8|xtQE%RJV!hN
z{xx-3mxmxf14dZoi&@{#ke50pKlI=6v>2>(Q`jHZ5wQ>3LtQ71&k+{CR`G}N<?bu~
ztm5HE9aYYZ<<NiB&81J#H{tcGP<M;-K`H7QEu9$X#&Syy$agD0K7jU?i8nExJP=Q)
zJIr`MT&(O@_%@Vxh#e~b`#}CV-W7cl{x}!>@s#1f{-ACW=Vvh%?PujD>fSyyiWBW8
zbZV9D$1z?pKTe1T@OsqkdSJZi_volwE8B4b><|5OpDkLk9OD~xzNwq_-<kG;`3&b*
z*Jjj>S@Q|ZhgtivJz2l03*L`9VW}H#f$JTU#ALJo&p`f<g8mOgU8lT$4fs3jFGd0K
zm|xf*+j@PA8Ski*1D#oBF6s&$bKZyf3G>e}TDZ~PN5NmMFdooFLVQUbD_(EENdF4$
zad@%Rf#$q!fKJnK@F?8RaDKI?p>7rIg*w4H=>H2w5&CB^v}fu-`wPf_%buWP%i4zJ
z6DH(9dl9g=tp@KmmhLcdKUy_xC(hT<U*|3{6US%HKLcR?nS%4J^grHjV19-B7oD#x
z9Uqo|kNK7}<1pAi0P&S}R9~y&-<)5*M4hnIDfR)Kp6daeKczh|-<=moogCgDaQ<?B
zB<8C4{c%3C#s|8|tnUpk`2WyNz+?PoUME(nbt9!uQ{M|z&*|Lrlx>83o>1H$yMMgU
z@(A}L!xa#2J;N0f?j?pRC0vBze1zM;Z~?--%y2=%{fXg1g!?nYg$efx!!;1@RfcOM
z+-nTiM7TzVYbD(44A(}uHyEyya2pxUcBw2-@%JXf<q_`x7_NYDn;5Q`aDQRAQo=<U
z&PTYn7%o7#%?uYL+}jKnBHUjYE=;(07_NbETNtj9aPKl)6XBW|u9a|G8Lo|R+Ze8s
zaPKjkZKNzv@%KK%<q_@!hASZ4hYVLtxMqecC0q-``3Se2;R1x)!Eiys?PRzR;r_;O
zVZwdHa1Dg}nBf`;w~OJL2-nJRt%TdnaBYN(F<d9%_As1nlq^v3x0m7a2)B>n3JCWJ
z!xa;5Kf{$0F3xa1!hOnc0m2<%xFF#UGF*sopD|p|>FzBcpBo2hYM)W*)l@uk_6!rd
zAL_n(t$}cd8Lp9VpEFz&;o2Ckm2mA0*G9M_4A)7xqYP&oEen+Wjxk&w;l5zF0>T|<
zxMIScV7OAkbugTda9=W9fN+0jxFF$9GF*so|Ict?!u^Bc8VL6l!!;7_YldqgTqnb|
z67Cy@Ya`sZ4A)7xQw(PtBMVggeaCQlg!?DM6%g)whASrA4-8jIIP(XSx?!6p%9Cmw
z>i3x_+DbU<XQC*kwGqzHlMwSnC*e{U&Q>O`SN%(6xIDt8F<b%R(iyIpa5jc3C7hk%
ze1ywjxB%fC3>PGvli@;y%VfAP;am*YKsfa~NYu-X7N^cDPFN>WtoNShMrEO{@5SUk
z*z?@j)jp@o5w8DwaXlRN3mlVizlpAA%JpvCPZU>b2NUbL_`P12aN+uM-KTQ@z<HT?
z7|YGy$-wVfPZary^<Y>Z&)IF<jq9OpxE>DcrE>p8?(Z$Y{k=0~Iqpy3{)5=28|L~c
z)(`9BY2$If2G(owd&jW9=Gun)2djoX3BUXB7PRLWti$hE$o&^wpN9Pm_@1!*-anSR
SvvL2%`dx^}VEy$AqvT)w#0)q9

diff --git a/bob/learn/misc/data/faithful.torch3_f64.hdf5 b/bob/learn/misc/data/faithful.torch3_f64.hdf5
deleted file mode 100644
index fe7f81b2bce427f6ab367cb6c7a2a6c1524e0528..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 23240
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

diff --git a/bob/learn/misc/data/gmm.init_means.hdf5 b/bob/learn/misc/data/gmm.init_means.hdf5
deleted file mode 100644
index 0b88738f3883e9b20c8eea20e2b278bf364498b4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2176
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf(8zV2#gPtPk=HQp>zk7Ucm%mFfxE31A_!q
zTo7tLy1I}cS62q0N|^aD8mf)KfCa*WIs+y=N{^5b@Njhu0C_b6>R(tYJpoN;uwY0m
zDoU&ba$xDv113Qx&B(w8F$-!SBZCImBt|BP0L*$^G&3;egH#GC*fT)Vt^<P!H-pK4
zW{87WfubOJCMJl198mSlj0w=Bt^iR8C551-fb=w2O87G{WT42?niK5j?*huvP{%PS
zK>a~$dq>S54S~@R7<wTfna1wE-AvHoO1bw!d(IGtHLF%>y{Kn!=&rPOPKxt(006^-
BJyHMw

diff --git a/bob/learn/misc/data/gmm.init_variances.hdf5 b/bob/learn/misc/data/gmm.init_variances.hdf5
deleted file mode 100644
index d0687a2ffc6bab5ea8b111c60cd112730af9b758..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2176
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf(8zV2#gPtPk=HQp>zk7Ucm%mFfxE31A_!q
zTo7tLy1I}cS62q0N|^aD8mf)KfCa*WIs+y=N{^5b@Njhu0C_b6>R(tYJpoN;uwY0m
zDoU&ba$xDv113Qx&B(w8F$-!SBZCImBt|BP0L*$^G&3;egH#GC*fT)Vt^<P!H-pK4
zW{87WfubOJCMJl198mSlj0w=Bt^iR8C551-fb=w2O87G{WT42?niK5j?*huvP{%PS
zK>a~$dq>S54S~@R7<wU~xF>l*F4s}}4c?heELM&V@3%jB)O2i{ec=YRIq{l~4gmL~
BKq~+M

diff --git a/bob/learn/misc/data/gmm.init_weights.hdf5 b/bob/learn/misc/data/gmm.init_weights.hdf5
deleted file mode 100644
index 558faa66b67f5deb0550d2543372667ff45f1e70..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2160
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf&vbR2#gPtPk=HQp>zk7Ucm%mFfxE31A_!q
zTo7tLy1I}cS62q0N|^aD8mf)KfCa*WIs+y=N{^5b@Njhu0C_b6>R(tYJpoN;uwY0m
zDoU&ba$xDv113Qx&B(w8F$-!SBQzy5GC~Ak*28FKpgc%MP{E!7l2#oUOt=|L{xd@y
zzzP%v$uluAfeqk*s%K_QfF^C2&miiBpr(KnH&{yeGcZ&@BnF5K_VafE<!D$wRDk+x
afSfaG?Pv&$hQJ^WfeJ8qV$Tl-*X;p$EH=~t

diff --git a/bob/learn/misc/data/gmm_MAP.hdf5 b/bob/learn/misc/data/gmm_MAP.hdf5
deleted file mode 100644
index 91c5e69141e3042ef5d211fc4098a8d59649d62d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 41136
zcmeI5O>7%Q6vyA%`7jM1DY=*+U@u4&t<)eD)Dk4NQd0RqLn#O>s@68Hi6a`PvJ+yU
z(87Tvm5>mKs5cgIi9`_=T;KwgdMOtK5{JqMR6fLqRH+A0s2ZfOvoo)Bw;HdLbnR^V
zPqaJpX5P-u{yb~FnKv_@OAYP0ZBzdy5`T#Vbx^Mx<<qkItJyMzWzNs4h@rw+6)wbN
z#31oclvL@PRr!9sr}qyJlcUMybEqz(fesl<aRS1dia=_3_dfB!Y4z0H-p;9Z#xTY+
zrOaq<s!|!tl`2l6kjF|#rzVBq%2#s-eDZ@*o-T}y7FpeCk=<_ll_$|cw+J;dVzLHY
z4-UEAvK)8XyNLHDoY%{}(sIw8jwI4!aam9gnXYW83k^5lpu>e1j^ri_bc=hHC?o0W
z#bfbmr%V%9h{G-ZP8qlf`zL6GD5b8vF~L(KPYfB<sVER#?w94NYLj`ll&yPYxKrIW
zt7O(ost<DKb5cRFAu{9Y0!_f*Begp;3M!eOy7&FYdhN;;-*@7hk=qN0JpmOutvIq8
z^W=~@ay~*3009sH0T2KI5CDN_6IjRnkuz%KK$xQ9a81#$`y;Ehqd$Zl9qktZwFdzZ
z009sH0T2Lz6%x?-rTpX9L4K)o_sScaE4)9{HwFRrOV!llxK1i3KCo9N=-Qdz|52^~
za;0+chw_!arGG9O&%Uz#(C6JW^lhS2t>>RV;gpr6_%%_dgVmg0irr)EUtl?|{79S4
z$CSs&q8&Z7V_ErMZh(KP*JK2ao6Cu6`h%9#TH~4hQtWR!A5bj&Nxty)1O3(DV$8?=
zIbK=yeJS;TH{CCpD&d`n{5k7G*7c|F3aH+U?NwlZ6t_3#?bU(=0w4eaAOHd&00JNo
zRRR&{kEFLsxWY6Iy+5*AJ34QBTLA26FAqo{00JNY0w4eaAh6L0M8J-=AC}PDYDWjH
zlStd%mH|83%L5V!fB*=900@8p2y8S0&Dzmy7xMfVmRm4C=8xSHy11n{LY*I@8;|CB
zE4t6$w!JybheOQk@bZBK0w4eaAOHd&00L1buy#8-wEd4RT%BUy(0)#Z@)3+@#tXTU
z*k9_UT-n)cDqoPd`CraV7R!Z7apK5fvGvqwrZiC=zkWX|wxhG5)RIVN_XmxiAG5s`
z;(BrjyWh(P5(t0*2!H?xfB*<Yoq(_#g;~wx;vDjGojD+5CMO`gsR-!SJ#RTFF*s|L
zvzD_#t<(Ff)(30$&wo$N?_KO(T>AaDM<<UGjTnjQHS3wH^#gs=$G`8-bj=KZGi7|X
z_~Y$lebRNjT7Pe@_|;Dz-Ty1mt*2wBqOk5caZn-<U8T_18Ti*dfA?DBX2|`vn%Z|)
zr){Z><eW}JrnCRZ8f~m+s_fZvW4(6e>iWsN->|M;Gd_;oKgPOe9WkVX00@8p2!H?x
zfIzefH0vK@dyxClEVp2u*}kGg+>-u?&W;Y+KPV47I@&J+Y7YV+00JNY0w4eaD<lvB
zJNlIR3Bk77(LwXJ(y*gf*z%wb0w4eaAOHd&00Pk_(5xNJ^AvbIn&lRZM_+hdA{Mt4
zhdU+Z`rnDOq}CeGy76e9x1uZl1C1TcoOm9M?s}wy00@8p2!H?xfB*<Yi@@6L=+M?Z
zpI1}t1MKHiD8M)Tx@Xw^p|l$m3IZSi0w4eaAOHgEl|Zw0KhNLh@pG12Fn(^%OL)Tm
z7q@N8_<7KL?pfdO>hicbbHe!fdVK>>FAx9$5C8!X009tK9Rbh&FZuM#&s?1T>&d0J
zKE3qsm-p>@glNxlV!LPmm%*=JeD~yudHd{}XODe6wA?*Nv@6^7cD25B;m`W3m)}^3
KQ{SbIZT|sn8N8wZ

diff --git a/bob/learn/misc/data/gmm_ML.hdf5 b/bob/learn/misc/data/gmm_ML.hdf5
deleted file mode 100644
index 238cd7e14f5e4ab92e505221f200cdba368cb593..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 41135
zcmeI5Uu+ab9LIlq+tPz-JmkRxgRT!v2$-}QG$1A(rX}|v75_von0h_S(Q87F=B|}f
z{2LQ(eKIi;-Z<h*O)y--i#}jTc;SioU?RErfIzf_8Xna0rzUl0XMV^oncIW1cemx+
zW_RW{^V`|k&(2+bGryU+sbufA2Uo0FLE<kOr8bH=Q9doGzhh;Y!ZPO%s)(V&Nfk~<
zWW*rxPZU?_D^>Ykz1Lsu>myr}%jZyCMm=pZmgEG4_Z5L;-_{-Cfm7<KxxJlM?TlfJ
zrt|6H%tWy`lF1kCL?Msl$0o*w;K(;~dpz<}Qr@2(8P2h~-6A`j_A5`Kg{~87WJF{Q
zxE>sGyJgw5+q;OzqV~tjxiaCL+igjtM@(5zCs~ecs0$4z-=N*uJ$p0bSz7K~CCZ39
zdS=8dwaYYdg*cqzAC`fWFq@}-qNKX=-UP4pzuaq3yP`mJZH+8fRhz6wrJPtR!%gb8
zgGy$-xO$PBc1Z=vhR8D21)6}rM=B3#6jU-lb?ocfdd<oe-*@7hk=qN0ojw&hsyMP5
z^W=~@ay~*3009sH0T2KI5CDO26KLW7$VoMFAWTtlIHqXO{gJ!1qmRIj4)+HEwFdzZ
z009sH0T2LzJ0zg<OL@ny{rpm=ACot>?(qIlUm671FI7>G<2b48c+Ym3plfGd|3|5M
z;YM-b=faIu^H*n$o$qzOb-aUm&qRx*>d@OC+hxVcyd`RPu<G+mv3rdD3oM(;kF?Ty
zL3xZ4w6T*mE-3%YJ@8M(EJk3vx$LN>KbVkOi#)Smiv3MzeTrp2$@iXqptl-ajP;T?
z$1SVAFD2Kz)4h_V625%Ko6{Pyu0PFwH(f11FS~QtAI0sBdAqeBfdB}A00@8p2!H?x
zgq1)D`Xi|g60R^!1MiRM?C8}#FL<czR)8Jt<^c%=KmY_l00ck)1eO|s5ZKY>XC?He
z+R=XNBvNH}%YYs2<^c%=KmY_l00ck)1eO|sdhKYo3weGF%MF+xGqY7f7q=8gpz~vN
z<Iy~CMfd&>m)$wcheOQkaPxr#0w4eaAOHd&00Lnruy{K<u>FtD-JD`y(|%3{@(M=N
zquESe>@W3BreN<iHI$XN`Cm?t=L*?kZr|SBV(Y2lbbeo9^!ELz*p40yq?SZFyWem8
z{Qa`KLR?P{VfVZFKmq{}009sH0T2LzuoDn=qcE#^T%1FGu9I)dn8gVQ?<)ejb<gX*
zkQnT>%7Y1egIc@ySE_EQl+XV?ad7)w$K3oMzdt`dM$~UaOSi0NE>#Z<te-eP-TmpQ
zUr${=@z0+p*3yfQESo7+znaSZ_}e#K7l|G?8aWh(b<fcOi9mFf0$*p~UHAOc2eq3a
z_uDFJ-(8({LS@9KbQ&_9{YQ!6+Ip7Co-EYXYgVqVpX|Ht*~5|h$5{8=tT&1Kf&d7B
z00@8p2!KGa1nTvVu|3HBXqFo=&um9dB4|i|L}y3)u6u?Z9c)8I=^y|CAOHd&00JP;
zVgy29M;}r@A=p$q+Hc-g3U+jhwQN)e1V8`;KmY_l00e?1P_G@$^AvbIn&k$JN1yvp
zA`rI}hchMR_TPz1NUcSlb>q=IZ$(%9VT~QloOm9M?s}wy00@8p2!H?xfB*=Di@@UT
z=)l%JpH)-reeCCCAi$UWx@Xw^fwUVG3IZSi0w4eaAOHfbN}yi5pXYD$_&LiB7(cfT
zN_fKl7q@N7__^PF?n%$@>hicbbHey}t9}AdFAx9$5C8!X009uVI|8o#UxrfezA?N1
zuUF<jJ9g#YA0FTQ9MQIgXt!(sm*dxCGf#ZiH8b|hw?}r(eN-{&={?K3O4SY1m#PP@
NeKKv*sw-_z{s-m$$DIHG

diff --git a/bob/learn/misc/data/gmm_ML_32bit_debug.hdf5 b/bob/learn/misc/data/gmm_ML_32bit_debug.hdf5
deleted file mode 100644
index 275381b7e7573e060009a15220f092cfa323a1eb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 41135
zcmeI5UyKt)9LIm{-f@+aSmeQig6qR21W4{QNDv<^<c{=#{~B#DXRjXRdI?uZdk0li
zASQap6E6_oSmH}bG&JEw9xx=l@MKIhku*La`fx@J4=N&%oI5-719r)D3&*zI<9nCg
zncvKBXJ<b<ZGJPqndwxjf8&DrOXidKi^Zse;!c!LGwSb*B~w`D{2>*IsBlt+m8gtF
zNc<BeRQf_yzE|(99RmYoYjXJ<s>`UaL&j2^fbfYTkQ!LOO+0W~JvFztORAkQjIm51
zGm@Psl}59LlAS2z(ZaroaUnSJ-P}Hp{IZk}<VHvGtZui+E~ov<lW3vKg&IYovIbla
z4!Pa3Y}oBx#N#ph<K<kLbk3c&B+{dXEU24IM~<iqBTjyVcI9^O$&TmfDd#FtM#9lE
zqDHw>rim-W;S~R@44i})td1>2DRt%J3EteYwLe0giUQHiC9+&qZ8D#ia&oB**Q(nN
zDVg;W>P4>IDHS9eBGXV8XafEosXn7oP|5t%@#FRNT9qrl@5DDFw-*k(eJb>o;>c>u
zlSAgn`3OM(1V8`;KmY_l00hEKppE+@7u3jsFh#}Tn4&@VM;_IVJ_S2E+#dwg9t1!D
z1V8`;KmY_Dl7P-H<sHBF^GjV?CU0y$<o%&OHwds_s;VBxaZ=gwzRfa0*Ur5Dk8<tT
zTcyDti?<ft{`Xqsoez88JKIJ5-^EJh+VJ~_?XnVN+!wVwSdICm*geMn1(prvM_OpU
zp*%)OTHQ^nXO#ctG5DwACL^%jTy|8`A52QES)SQ1#r~$tKE<-1<Qq>v&|3{I#@yu1
zam%XjOQ{v^bgyKpgk!IIbJ|1J^{3hIrmN-WmOF?2QQY2`w_6Jm2!H?xfB*=900@9U
zSP6unKayT4;R@3<@cxL-j$Z8Zf`=`)0_<ov4@e*Y0w4eaAOHd&FxLo#z>c=oNa!uK
zqy5%Nq%C*LfF14T0SN>^00ck)1V8`;<{E)U?P#_Od43GbO_(1uy<S2Ww-iU9^J8@5
z(L8TO_x?{>?i}XBA?9_s`9J~z5C8!X009sHfv^*py&WCc{zq5tPO-0RKc@nD1!I}9
zT(%(gm)f5#+Ivk6=j3hf$(iwdF;~j(-Lp$<JvEXk>@AKxxE~eU(L;gMl1OLw`;DJ}
zWVtKE_2dwCznc#v5C8!X009sH0T2i~0bw@^vzo`nIppWM@UD!RoPh9&BA{FMy!@!d
zV6RmkO4=LL+P%MW?e(g4_3w!jn{Pbbb*EHXw$5Ipn~HUvyKg;nxpr`H#l+Q0@23}k
zzWB%afBrnblr}s!Z@OIjVJiRaFJJcjMzmm6v=WAO&#^&?Ky;M?UuWQ5_x%0G^_wC0
z+p22cU7dDPWhAC_8Zw>zN6C@;dZx;rEY{a+Rj#g|?7QyS!;$;PSohqjH;Ma#00@8p
z2!H?xfIzSW8ugE{J;?oNmYXooY+GI;Xi9%XXGi<4dxjkyY(quqAOHd&00JNY0wB<4
z1VUg(f1!Rtu%&ji-@L6f?C3UY*{BW(fB*=900@8p2n0)@Q9GLFDe!nS%S{-MzVeAg
zAZ{rRXG+S0zY~{~TC+Us#-n-Oimv#R8atXf@jM#c^+*Q+5C8!X009sH0T2imf!W*9
zfvtPKtftue*w3jzfY14L&#?OgX*Vbo1V8`;KmY_l00i2VK%;g)&)??pbC#Pher}$S
z@Pz#@ZrhUabHDlAlb+wz<#BW7gz@us{RE(1AOHd&00JNY0wC~c1YG;S45vSM``UrO
zw%`8j%=J6xUVLpG(Z-oruWSF8v;W1XU;4Uddf!i{Pwl*MsA|wFyXW<kYbz_i*ACu1
MQZZ=J^^R5l12=!YeE<Le

diff --git a/bob/learn/misc/data/gmm_ML_32bit_release.hdf5 b/bob/learn/misc/data/gmm_ML_32bit_release.hdf5
deleted file mode 100644
index 438e9932cecf179d1b834e2f5c19d39a7c906cf3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 41135
zcmeI5O>7fK6vxNjgt(-r1`ah;(Cr}-BB}@#R1}cvpal6)C?6F>L8)Vci6aq%>;w!H
z3gSRONc2+FTa0>11&Byo;1EFKk`t;_q#~;az79cvIJAZEA<>zgd6Zo=UPD;h8~%xQ
zXWq=)+1cNYtvB;##z$f;E2mAJJ(Y>SP>9vAuob1#3-xz4FH=aS{7w}KsBl1qLqQn{
zF!9e=M5Rwx<vaDhTi4pkxF(fPp}LGU)yP<k5)i&u1Y)htYs3S$si&s)Hmceg!RU>r
z<K2n=Y_=zn&hkVd_oR39_X)w0U*<MB<b_h+mF($GkveaYbyoY8C(%OZ2{jf7${J8T
zD5Q2vvccQCh=)V`<7HhLwa&F%66rxh7F5qnOAe?D16F>3ZAot3mgq~e53H+184*j*
z2pYLsnI^6fhgJLx8CVI;gEgxei>WK$O|X9Tw=Dryt0*uwK3kTns?E$#q#T_i!zJpr
zok}LXh<cGr+NFYI!<cEP3p4?Jj|_jLQBcYB)Zw3t>s2aOeBX(0Mrtn<*1J^bwBkr=
z#FIkeNcjjs00ck)1V8`;KmY{%O`wYVBbU|4fiOkIVVR;{_eb8=jy?%H+TR}p)E)#t
z00ck)1V8`;-jIOKFXbG+cJoV(&XqSd-|+rWpBx0pFEy+l$8u8fc+)DGplfGN|3|KH
z`)Ri0TIT7@XOHg(Htt#Q{kb~Uay69A6}mPb;AKUa@k*3;uuAhwk$a5%3nUxLk2Kx<
zT6v73Y*9U1^g{Vx-hqEAY!U+Q=HgLJe=sVwCU_>l6#1L3yA(@)lJky!ptBlOjQNc-
z$1bbBFN@8$r#mH6CH%D5nNuCIu0KtFH(f0c=j}P<kD~TQyzN?$KmY_l00ck)1V8`;
z{7S$F{gJjt30Ih=p7%#|cJwTl7u=P%E5MGn^MC{bAOHd&00JNY0+Wq^5A5jtmlAqK
z?P#}k5^Z^V%YYqi=K%=>KmY_l00ck)1ST7SQtfE63u%4~$z_-yGuAAji(87r)A=#F
z@o1X2qI>^?d3z4=p%C*r?0g`B00@8p2!H?xfPmi#Ox%w4Z2zMhFQ?cSwVz|2yn^0%
zZ!(b<`%CRiWcXfFT}gSH|K)gJDwE8nwr|@aww~&ar?+Q%U*C_4?C4HUYRQ<+?spqM
z{~>R$5Y>}H*!^}skU#(gKmY_l00cn5?*xS1D9maa7pIV(>+&WUGbsV#dqqIE?s?u(
ziGi<G?u_ycYI*N3S6Fr_f9s$A6RRG5Sob`eox7AT(v6MRjlQy;Iak=*F~9%T(1Jr(
z{<?B+<lhG)bJ&WHr;Ozae;iL;y!mUx9mb}$1W);4-E*izA`o3A&(|3^*FFEfuXr=0
ze%r9xcUPw!RT+^ZIt`gl{-bDjaXnLI4`hn#RVr84Pj+4R?BGcKW2}3w)SJY8K>!3m
z00ck)1VF%B0;T%L$R4DAG|6R{XSOCK5tOArqO+r2*FD3I_O_v-bPxam5C8!X009uF
zG6FuZqkmC9Ay`p6+HKxe8|>&RYuTs{2!H?xfB*=900?+Xpj11W<|)v4G|6QckG`>A
zA`rI}hczYT_1}q$O05Z=b>q=AZ$(%9pvI0SPBf23cRkWU00ck)1V8`;KmY{%MPTA~
zv}fy{ud6BcF7|WG6X276-81ZdPudL%1pyEM0T2KI5CDN{B~Yr}PxH5F{G8-6jGvn)
zBs^jNi`!OY{M>Cm_kiPfb!pt3IAQ#}T0a4(7YKj=2!H?xfB*=*9Rb_^FY7yYZ@9nf
z@3qg4oqhQH!lz#?<@>)J4=uOt|8nk0c<i$?4P!h0{Ox4>qaTM2_QlpI4Y@+&>AQu!
O;|GTfHuG`K=l=mQ+`uOQ

diff --git a/bob/learn/misc/data/means.hdf5 b/bob/learn/misc/data/means.hdf5
deleted file mode 100644
index 060afde0fb2777065d02c85baf8a34ec1d509fea..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2944
zcmeHGYfM{J96z@$tS?Fn1<GSkA}YQB3G$M04hTz;LJ2R6CKCn<(?}E|vkMIN3MFd_
zRY#VM$rzw)ldO!1&<*dEN34l#Y;={a7+9FX5OAbOTR@Pm_kM66{jkKyxykvze*fP&
z=bzuLlO*kSVf(OweKDDU0r-zxYTG1N4abq8Vyd1`Iv8n{r0t+N91Pe$07PV7K=MD1
z%g#(r23tsqpR!~d2xB-rCY9K>|Emc|k`prQ50;a!rc|mYbw&-NpscJwu@z8ylu(6#
zX))mJ;35ez5d4S<qd5}P@!=%@<1u|p`F5m041q(t2t;r|#3tR*;Ix&s*J(5dA(O<@
zv3yeMViM`VyOAvR9%-~l20)3U@PziPbXk)9k0vh%{&~A6bcyX_wkNPXf&at=l+|jM
ztH}e!)P27C;vRRjdLSOOT@a$08NsuI3LTXG=r0~S0uZ>?{7P|5E0nmURO+(UaFPGp
zv#GJZsC1Aw_<i>dLVIq+6hiwIS5*i6z$*7dKQ-MC@X2yUm;4IlH`<+v4*f~p!HkEH
z&A!>rw}_C|@Rnik)fqUYp8ckHY5*6G)IA+GMk8+23cT1xK5FnRi+3$zAzjR&CF`68
zSN?Kz`1-kJsEzFDZwVU475DB|H*swECx2YbHw8E$dHq^((>oq0A}q)Mw*o7iipjjM
z9kxOu#vh8JJ&<~Vd913Fi*(<<yyltWgR)DfA4oA9WCkjNj>fOUTd&p<NpT#+Piy?R
z@0Ks}PM(=-={DoE`n1mSJP%aSs$43|=Aq?{56V-7929AqPygM^8;KiRqrnb3I-B~M
zM!xQg+OjcvM1%-|eLFKF{mrl;yrr8KK8gFyOBdaSL};|PtITCDKy8Kes-8<0n13Ns
zU<)_H)oD>$`XB>Y2Tsff8z%6uz})Yo<FnA(e8+OH*A*4*53L<K&PAiAuFcFHzKtJj
zpOo&eVG@ffbSLg>9wB+*x&9Cr26Fe59{WPcB34%>_3vvK#1&E1$W)U6HS}Jr`^eiJ
zP2~h7cx@W-lij=fy}$eumdKUdo0>(aRDi)y$qYUknX-Old>U$_I@mi;o1y9{-J8$2
znW3?AK~|CHgtWnIvFeHq&+SsX3nl^4#cS+~o#zo}qqM8%3+}=U!>;OJ!U8>guIGH^
z%Oxg4-%xkTEchs^PWGO04EE-ge;Ql71RD&uU*f*I2*p=3O8E<$P^DisA2#t(d?8B{
zKj)4vD^4UH>TyBlzQ5!li7v$YE?A$7m`Gx4Zt2vF;vMV+Q=nlT_UeUkwx%`6E}FRP
zXLUoo4+n;1D^}dH5p<sMIz~LN&_$imn{n=gibVB+CAdcr?zOKUpkd?j6*(Ov+NG|u
e!f}icR$Af1k`27Z$ocGNjVscnii<l=G11>gW2_$l

diff --git a/bob/learn/misc/data/meansAfterKMeans.hdf5 b/bob/learn/misc/data/meansAfterKMeans.hdf5
deleted file mode 100644
index 9552dd832998ee19062e4c0b28b335691af25269..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3044
zcmeHGYfw{16uu!uL&OoRKm;pM1jT1TTL!}JLK753l&Uxu3ndk2@PSf@4?v)nhk*`0
z>KluwHOM$vM5ut|o-IW|YhkK!I!#ItK|l+l)YnidmLxYn>d*dg#wq8{>~|jDes}lG
z+1z0H!m%P}5o0u=kg;a$Os-{l#o4_v=8Pq_)MGe@$DxYD5-YRAV~iieh`GEyr~f){
z<?^5)W|(Qww;;ETdC%JH2`z~c{9kn-I4CgOc;VIDtu0e}jhiz|GZcx5isa$IGLONQ
z!hb{_Gs>*R3G$d3CMBMgIU(S5=WzIX%pab7Bhy~uI{dbbCSja}j8lfmXBYt^G}W!F
z%z{FW&*#N(qn^d*s3sUc%r}}*v)Wg@jA7zT@tay!EL|oyzG&`njO1UZdsC+v`OioP
zMmq2|bildzCawFk73-`T@rOUR61s0H4p?7>?Hp35h_Ays#VDHIvmaC;ZuF;F0wTy*
zOlST2F_{^e3GJl^*m%?r8ZnRPyK+END<YcH{bWa8G4a%XL4(pqliodrw8UmER2K`W
z$95U3NLAyqv07N<EkMp4^T;E=3Nq=6FD<T|MTPo6+Ng{`u8(W*wZV4iQ0nk8!FtfX
zM3}$Az&`P4gEc4*rqnc3$E8bXrMicPFMC95*uAJP@G?#jK0x^aYSi$ZjIQ?UBJ;B|
zsrZHq3C*4U!)^3Eh$If=>iS5M^x|*-Be!><`$KZ9xzG<`MdJd_N-`;J)x*WS3DS*Q
zY;k$~J*t}QL!Q`e1<|HZlG0j0B=V!Mpo-8FN?Y>i+%YQLu$k;uItT2Pci`lTHrjh-
zI(ZrwMY|6Klk-nbQP&5Ph|F3+z7jLUAex2;29ofSzzz6#%Op6{ScdgCr(^9?d)!jq
z%x3udvPtJ(N#&cbpvb5$HnN}(xvD(DR+Yy3{1FE2KHez7=2q?VI3M=mFN@LItaJ$7
z^E=zP-2-$>*RYirI+1@)30ilW0AIF}y*Aq&Ce%M><5f+_i#2GN8gFnk#NZRjWvqAF
zaZPP`J(>_53br;{Y1e`r^w+zmku3HYniEmyKX2CukQ~^cDZ1~0)IOtWX;&7z^~)Jl
zCOt$Ig<?9GP>Y@1mXkWq$*gnGLRc^~hM=fy7~~@&y^~1tZFZ2pyY;v?p3t53H}Pz(
z3vshn0=#bzmz>7q+QwMYeJ})1yp)GmC#vzFOFl&0@}gR06Kska2L;g$keDzATI&4B
zl<Q8^;Ay}E<va1dPuy{dS0riqC>*`>Z9c1gv6fa}?8NZ76t63-!P_@9LF&mq|LOn%
z?NCpnaobMfPVo>lw|oO3DM!JOLZG|25XY`Mh_YWEhR^VBynJIR9MQXhDn10Z<kjP}
zTs1yB|1h-eKf?B`a)+};bMbT0*KEe2i+HZ;IO{Q0&(0KPf$VSqId#1kS48m0wt3z7
z=(@XX*VQu3M8l`>EczK+B?`g1jvXl6>oS~6cfnz2qEN=e&2YnE5x!H_3<asS;F$Is
JuK)26{s-)Q@elw2

diff --git a/bob/learn/misc/data/meansAfterMAP.hdf5 b/bob/learn/misc/data/meansAfterMAP.hdf5
deleted file mode 100644
index ac4cb9383d10c223b26d16d686910c430cf71197..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6336
zcmeH{eNYu;6vp4ny~s^8!SN$CaFuJL&G=D+jxy?9O^m6DP#MP=L>ERUC9^`wj|N@o
zOB_THLsOAWp{|w!3V1c>zJiKhSb~aH>K2uf&_oblX|~VV-DdQ!rtzQZUS|01^PKaZ
z_uaE+H#K6~^q$=Zc4zq6?aamk=+gXm&-n4jbjQ?YTrw^!2G<*O`RErGhCjxP<t)&s
z|6pG9%<yogWt#O(8s*p+n|@_C4KM#!9f$~@5``O{W8AelrKgNJGn)~Ym>9Q86XrZd
zn1O#t3+txWG74JQc&cQv>V~<GuTg)bL34f|^sU;PfHi@Flj*Z8vQU2(de5pa^wnI%
zeXKrI+Rg;hRv+6+qZWKzVynMihu+2|f=k+hA{nE0Y3kwrW<|a@4R5r$v0$A0;qLO^
zuZHg(`e@FHNxR?QyLWfs{dqJjn)Tqkna}C|Y_IZmz}o?D2fQ8dcEH;KZwI^`@OHr4
zfqz*C)XMoAMD5J{WZI8ToPEoT0noyxgHIDX!b;%FL!$$r#o>ELaOf2S+dN=8Zw7_p
z3jy#Y|KcY>aba`=d}Z8IM1H-DL-V>%o19=+;!#knYNmaqC*JZCHO+))dxGNXBWDp8
zZY=iU(C%e={bl~gY5n!+;~vdtCFcf-h{spBsoooxPQq7*Bz+F8zPykqA87iJ@-2=O
zP^$mRmuuw0#YSk}V@?$)Rt|QPPM_J~)U;ZdO!ukopSl6Q+VqTGzk78Fw46S@5P6ET
ztO}IZ&AS3J<|sm(r#2se<{@>R&{9RJ-j~wlccIx&4Mf%5UW7b#QbZl7^cqr5?Bgm1
zrK?G|JcvJ6bqAW~zxE3>k6%?!@e$27u4#7U<IC`6OWt?z#qlrPrnoIP7gRTe>F2$c
zdkR|aKkm8*c?~TVQKQgj0o9f3V!npY<1^zauW{oskd<z{17EsOPtQ#V-hCcgSocZ;
z;>s5>EufrYuZ1t(Y`Y2atn_c;tFdESpk-$@&4HQ`X%!LASo96z^3r}(pXGFXPda%2
zZRAVIz4iJ@lUt#ckQ};iF;!?po)BnNK~cI!>lCFMCmp^oALR3+^m+0BqtK&imXb*G
zB{>dNBhIFMM$eOH&;5wjo#^@!l#aSCAfI;?6_8)!C?%d*L-QoM&d@qx!cGM~zxsO~
z@sR^dK$h<+^T3a4%mmfoT28FEy_?vPy%iMR49x&}{lXJYjnc$8nlpKJ^4rkj#?gBz
z&oMZU@=m`?`^bF;Z>PAmv<8%}w9|RSga#M+*?kX#Jaekz(a2h6(>mohTPA$v{QHOC
z^U+z<7iFT2=9R5!mJwGYR_J}1KXeu}&-sD+s4U3549ylzpywmZD@cQu!k*s@%4&YO
zN27AGQ~y2$y?zRsO&qGfCu7Q~|MIzVs;3UJ??+sAoxX(iQqSOgTHh312`#5iq4O)l
z66pTbcWxX;oTasuATD&Q=aip0jwm`VQop3tzfvEC&KbqXQ@71?gK~Qi?JM5uTLdj8
z%sqkia`p#AKDtL7w7Ty6OQ2BGRY8opOV39R8Bk66VUMnKYH?{(Ybmtomrz7`{T5SS
zh59mmUREzz4xf)Y8%q=-DPQRJs^ZjqdF-Se<fjBvzonYl^nNN!V`#m6?B_Gc6DIek
z`&aUomqGK^=`@E@$vx_)a;;sTpR`cDU)#68NA>-hT&OR#AE)_d(QEfW^PE;XC#$V5
zfEL$YIfQ)0*R}(ctN~ldcMs2k=93y%LGxLU?}BC{)AjjL(rC`*!kB&VCG{4~rLt=j
zJr5RFu!q(MG;Ae0LiO+SjmCW*Enkdm*7r;9l?5$?<W_>pwjlj{ox_e`ow_DvCwytR
xFYP1N3UppU@lgN7tNk}4E`Jhx5aeBq&LPDmQ9Y?;{4vzwzOhtCY05q5{1fCXo>~9^

diff --git a/bob/learn/misc/data/meansAfterML.hdf5 b/bob/learn/misc/data/meansAfterML.hdf5
deleted file mode 100644
index 857bbe39c29cbb76f18aed3798ce484ed2bcb67d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3944
zcmeH{eNa?Y7{<@Ci*A~sj-RD?6P&ST6sJ~FM%`<Pt(ic{I2ob`$Bf9V9G%2Qy)s!c
z0|HX0C~`v3l~P0mL8ZOmCw^dpsZ5$TDRpycLQp=^Y@heuooW2D8UJWvnc;Vz=Y7w6
z&Ux><o9vh}wO5a)doX;gR%T(n>CyM^q49|i&>f%l#kuidGPus5(@%deG5j$$$ng6Z
z^&icPelt9rc{6?WeKeM_F&6#F>NC3dzv_S^d~y^n{FZTR-;|y-=FHcOxFt*C61~DV
zj}BkpU(&?7>9vf4CN`2Pnf!Fa->5sv;G^2?oqS~Wk?c&LU76W>GTTG5zQEt>BJSs>
z7qlArW)n9?-P+wKP3UV>!5UlGph(8z{~3Pl&od(;r{EiH9F9rGJs$hUT^n?DpsNG_
z#SUmS{D#YWaB20KBX(S%qI?&~=hWweV)mUXP=0;$N%DtmIp>0YJ~9@R)=jShdHBtP
z<f{#*?9lOY4YV@NaR^#@r9G3_d?6jal$uir%F||SCqKwh49%l^(K*EXSN6b{l3Qti
zp1AdUXnyzHUgRkY))M*7yQP#@`E~`xJ$ZScoE^CaR6;yOpjQ1-nafLcQz_;17r%8u
zD=7`NlxJRe2%23Vyq@w>d+Y|~g{MnMN4nGOh!+RYx%l$g)zGpnb_e1-bo4QbZwuWI
z&0ZMbBz^Q%x|bSsse|&Wlii>wTl#?VesdGG^0s2+YZD!pKoRh4C9$7#Kgb)F-EtxR
z+KKznYQaZ;K&$f;8!7%=vqkl4R<ZLUe8rT19lktn#%+pQa&ti~Eo?6+uIAGFR0f9r
z<U*di#Uy(v^;<x7l}j-{!dK^K%tyZBNu~F|%2Myc=jR)5z?TB^YN4eyAGo2#xtJDE
zNwU_%mv7#?396ave}=Ecj%|Tf>}Q)ur$?A&#M9%iKr4#}P<@uu{tM~A-M5j?SN7HG
zFPqc~ErN3B-g2_!L7vpdtbsDWO6!E^rjiaXECAJcQAb@~vYvm@+_0o2r{VM9lCvP2
za;Ow>HEYfeX!%&DK5qw|=gIFZra6-9g3Bm=YSq{9W#=hcCyn1K;HwRP()UJvV$ULI
zR^U90JT=Ob0cwHuDzW-@9<e=ZBPe}pO9$1)cW93Igt+6-%B+>2*}argLv~SK@UVQ!
ztNEPvQTh$brntGR4&;~H=sa?Qo90i>>VE*fn(?y0I@U6a)``284EUn<s}lHXNGA0~
zOt8>=vsKLs;+o?Vy)W~I&xBTUex*K&1sNBiS^Ri<KhoTy6lfkceFLay1(hx@#qo}2
zP#XI2Nsvt#euCm-Dyjd<nM$gsJ!7Tso8qkb0dd|dumJg@DVlx{l;p{Dela3}?ys%A
zc7W=o+$%-C)V@xo{ESed9DITL#aG;+K1v;L>_?uqX>K{Fv<;<w<y-xWq2+`*$FN?>
z+DueKo{WRm*3`ZWN_Cyp#Ha`Kew3iWXDL7IspWQWoTs(Y?~B|$p_uXpyhnYN8V~F9
zvSQIv`0D7>u|z3?@}+Jc3anSgPTWF%QXuu4*Uh5ur&t_A>y@hC>33C{G?4Bu@|PaQ
zI<<8w%^@#+Nc|L7+w}QKvFZKF&i;bxcW-i{K5sip^Ub1HZ>RloTIrmuzOe{eUVXU)
z`NH3_1?1-5Uy@%wG80;z=t+cDXAap0%|@-)=SQT_oGW`{3gL6@7R{yDHk#fCi!0hr
z>wCL55`%5uf!Z}sq037-qFLW>Wk4ph6qI`e6q|<X=j#|zLHVnaw!-Hl{b?V$UZV3#
p!bSa)8wPGbT=^z;AE<URItPziM)i2hxGL09{bQ+)Xv*DZ{~Jnafj|HN

diff --git a/bob/learn/misc/data/new_adapted_mean.hdf5 b/bob/learn/misc/data/new_adapted_mean.hdf5
deleted file mode 100644
index fc4a8ee30af0d8531302133b2bd2595df07139b8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2944
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf(CAg2#gPtPk=HQp>zk7Ucm%mFfxE31A_!q
zTo7tLy1I}cS62q0N|^aD8mf)KfCa+hfC-G!BPs+uTpa^I9*%(e8kR~=K+_p4FcOQ3
z5-WimSbFq;Nsvi1GO$6+f*Q!kpaC|CkqIJT1T`1t40Jv-Fy(_(3M$w$K+>)Qg9$f-
z$$w^uMpmFGNS=uaVju@pJu_nhG^r~<RYKGYK}`Ya$+D90XJE*HNYIH4_VafE<!Gqm
z7*JhDCr6B0Ga3S;AuuFDz}!1z@qs*HhaZQgzR|dHXaBXp#<Fh-JPrnmVf%b;ys$sC
zugIdqPSD}U{F~n&?%;PQIG<*``0T#@Ddqa@N4j|&7EQ0xs|f#Te___1=dYTs?iaXn
zN8542@%?p6@B5TDa2#lGpCkE0`0f68Jq|Z**6<zJs?5%{>yo5{hqmTkJzf?Ejbi7E
z2CIJV7Z&qro!7y6psG+#rc&n7{$JnjpU9rba-iU8cy`WbVTUaewPzp95p)p!<mRP$
zm&akkj@6xolEMxyT>OjsAN}0_AXLRs{QtH6X`dz@-goh{{fy0SdnK2BwO>BTHTmv6
zVTX)}4xWn>-`US&YH;Ct`_sOolHstv$MgL^?uY%1zW&Vqf|=)^<{OXgzleFnx9oeo
ze}nl7F4@_i?N1yldc*roz@bNZSCpF2XM5@VR;!+W><-sz-ujnCvN~{@9MxdF_<a8c
z4K9VAEkE}=L}WgE68_XaY-69W;C+Sz<_kLvY9G9}-^e#@r_~$21N*I1w4P7?v44U2
zhF>caZ`pr;E}0^*?vH)I72A4^1K;h7SOTx47Kl2CNu3K_F3od5`RSv`1(!bC-_Z~6
zTkHRQ|7sI6pDvA0_7^xi{j;uJwpUJ>z9u41)L}<t@g%GCkM@VkW;coiusTe*a#fcn
z?VUX%!+xcxG;s%o-2r(5Z~xm@oYj&I%wTcoIq~Il(`^BVszsl*Lh8TU+a+^Ow0kA&
z;9Xby_?8}r!=}oqPL11mf${xMPxpY7!{?oUBlMhj59kQze@Jloy8n-@eSeq(hl8zQ
znzH^z5eJW-^B1n2cwzq)aY5~W8#x?Sa5>&qyz<AMZ&NnAwhoWOjuRp_Kj-|m-&osl
z@OXuU16RtOO)@`(9OhZv4|}|u$$_un&=LP{KlbbNf9;yISj6G`Kb4g%UW^CkY|l1-
zp)cZ~Rk_Q2?upO)8LkMX#K_;a=XqJ?)K~S<eumk!do1c#_s0nuiD&L*aA-QObEq&%
z)Zys0?r#yyj0cYG>{5L-<G=k<AO062Hy95@CLVX0`|6#&NX-xX4;laV2ktC**d+Sg
ezTq18<m(gp9dzcnT@!L(a@ggqkiKFThXVk8lCf(5

diff --git a/bob/learn/misc/data/samplesFrom2G_f64.hdf5 b/bob/learn/misc/data/samplesFrom2G_f64.hdf5
deleted file mode 100644
index 9ef47fd649fde13d36a15a6ebde122c31047b31b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 18576
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

diff --git a/bob/learn/misc/data/stats.hdf5 b/bob/learn/misc/data/stats.hdf5
deleted file mode 100644
index c4a13700ec20079fdaacbd3841e8289910e9dd82..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 22635
zcmeI4Ur19?9LLYy)mqMMY7ff{)=O#ipk=jQbPKJK%%ptiZO%X0a!q3zgI?;PGJ<?H
zLWFt=La?ZZz#xjCFfa%yh7UyqK9)fwQFhOt-yp}`z4!+<`cCfoopXM_^SgJSon3yv
zbI-gUY&^2DsG^ARm($4#m|Ik-SX8gxQ?iHJq;FRhP01l8?>S^eWBiXXkLoW~{+HUd
zooH%eh9&tYsfMwd0$FRN4#@wCK(HwwKKcpuuGMs8a}Ba1nYt05DzAUs`QSz5a_HLU
zH^r5A_l)j3xNUUq>xJQkqhnw0++_3PB`=ey+n&wyv*VL9pQ6o+&u{IU_RS6zy-y5R
z_t*UX(LTN9N~nan4!L(qzZzRF=C3UH46PCh%^_zz&3lqGZ>g;t^PSh-PUGt(M*2lr
zXta30Lzj+R%q!ZO8mI}q#=5#s$07sWY=aoZeRzbO?$DEkvX778hj3peh3Ke#^e)6$
zP>oz2akAxjBWL1O?tWHe_v=^c5B1sY=>9OVDZ8Cy$e35pZdaw${vFxvd`dl3o86A?
zJ8zF=x3jC|_d9-Pr1?V9W#M2qO?+jiri=Kzc^C1qa04|6fB*=900@8p2!KGI5U`t%
zsPsD>Us79F`9rC<LB)!GR_9`Miz=R8g}mgMTe9S#DL<_UNi*{jzqDFmX%<IQK4Iqm
zfJq!poDfHwkwZTSfB*=900@8p2;?ULyKywFuhRM~wbyW6-&rY<@>B7{Bz_LADtNOv
zy4d0@VUswTI3bR<00=b*fB*=900@8p2;>=o9FC(~(_46QAda@$*WpDRoo6#2mkR<Q
z00JNY0w4eaD<hB@NBe|BO_wXFw4O@)6G+m!G_^^t-98VwPhEEujO>+fnO_<|EkDxB
zy_x$xs-(5e(ri7t+UEFg1VY)H@k?K@O}{V$0T2KI5C8!X009sH0T9SN0-5=g%s=e^
zZdd-!b`AH*kN71vo|^DOq#~Jlld_VwD=y>Vp2%P#5skzX!dF~*Y*R8Gj>h{32c**I
zOAMZCO&T)R*AtFKdt=cveSKZjZzw3QTJrcpd0W0P%l}F(T(&H^5V}5+$oDJ&LJa~S
z00JNY0w4eac}5^J?)Qmzki*YWJ~m6nJVed8=P0l693{`b0k~Wc009sH0T2KI5C8!X
zSU!Pds<Y#gG2FxSf2#K<COiK4_D=-@XP+KEe|1b}zJ+z$lc`@9zt2CM3G|jQw)J)4
RlVqyAy^9(DTWFY-{RJE@c(MQh

diff --git a/bob/learn/misc/data/variances.hdf5 b/bob/learn/misc/data/variances.hdf5
deleted file mode 100644
index c9d6d17bcf73be3bb7800d14604a0201b16f4ada..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2944
zcmeHGYfO_@82&D_)RuA)9Yhx{VxWpTrf4OI@9PA{C=LaLx`hF5ph5xyDoP}FfJO%s
z<W68}Ho}S%H*jIZZ8*_6o2fJ`fUJTmZVL#uR7wZE&{6yK$Nae;Cd)Wqa^BnXKIfb_
z&vzywG@Q>}#w9F^!y)Vl=jX0%Gc!xVvu13ut)9#{Bx6rAR!UhNlCXRP;m+h;82%S=
zaWP?G#5~f*Z?jAr5nyNaIJU%s{a;NWB5d1E%Y((tt8FU1!|2R5jFg<5lw<ROO^*?_
z!oRd6!M1WSgd`z&&O}nygzfnC4F8KUJ+FKV(!~o1t9FqH<Pm{p+S<UH&sypfWhLY=
zc$!RRr0&Hat@y<Zi=`)OvwJi_?6($P(jNPEbg1QzW-dqk^L8)k5(~#HOkiOG|A`3{
ze^v9;*HI4-&Ka9}<s_;(UzZwg(O7rlol1Q^fuG$K`)5{6!CCt>XDZhoUHZN-Y#Y$P
z)Ehezj_lI{-5IQj%Q3=)Ki6wZoCz8er+s`C_UKR?B$OLTEUfxq`iD{qH-5vt_N<de
zx+bY=S-KA5*R+ld3a6pI_Res7G7AHH!Va9h!a`BJA>}oN4pgE#(OLzG0S1WG{X$}K
zL>kvGi@;k{pKL`JfvTfFmwf&)fz{V$rg4tI&{+Pk#)F03m&19@>nObN$(rho{(nK)
zpRA0dO*9UQ3+=T<cDO0er0(rv<Bs>b0_qN%AoHH=_TW+qbGIH(b*f^c%ZAlgxsQwx
zSeKXDnm7&KirnE7Vlz0n7O)ZoGawc_8k^4RVQ$0npXy}>&}H}U{+&Z%vfuVY#~;$T
zvS{;YN0=6NrjDyTZp=a&d;GR?KZUOpxL!IW(!<*Op(R0GG?q*_g?s#Jgo^RUH<DOv
zth=}?SY@1o{=Fwd3KTrNslD={T)@XTsbodSB#C}AI8pOJ1FKz=&GiR)DBJp7N4Ina
zGU&2PE#^tc?}^;QA7bIb&R9=LsUF;#I}Y%E9D`G18E+<d&qC11_pO|7HBjj_b$<zO
z1{&@Blv2eaTs0Z;zVGW=h|#*G@ek8zu5{?^qI8gyB}kY}8HE7lx=bIv3G%O>FCXwz
zf+TzIk)kCd5HsO>S0p2_F>5ZpS7L%*x4>@Ig-Iayh_ee7PB`);YHZA32lpygeH5?e
z;>976;+Wh4-%8*wm-eV(C4J88QTaH;J>2p*K=%aNJo{Z*hIDW>npjLp$6;LP7`?QN
zj}5hSw{m0-D%1k8hubqyjw-!dgug-WDW4d(P7-TBRgATj+M!(7AS_g~ao6^Or_Qt!
zo|GA;<f&%pt9})uDp-iYg2X(53O3bx2M(0~0lVEBzHA>hL3>eT_ae_pSg(6G>GVwv
Uq&w4X*P9*ja-<}6XrBrG2LAP`#Q*>R

diff --git a/bob/learn/misc/data/variancesAfterKMeans.hdf5 b/bob/learn/misc/data/variancesAfterKMeans.hdf5
deleted file mode 100644
index 2aee23c0ef021e383d34ef2ca47175ecf165a6e9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3044
zcmeHGYfzL`82)y-xWg?FVgZ5O<T?cm5ac54c@6>_f?QUJOEW5{8JU3~qK&EC94?X~
ztO{Zvmr2qb6^95UXSt{hra>4H5rray#4I2~xJD8S-~Py-{cxs<_nSG-dwI_Do%7Cn
z@&f%O`Z^XmjLLXCMw2mIbk)l|Ys0!r8Fj3#$FUBF#atF^xl0a*QGE<!#^#M!{TF$W
z8v_EE1*TeGjqEnYRddPXsT0fizv@6>fN!|!!ZGZv)l=HR&Y8Ly@hK_sA1?&zc??t+
z{v~o4?IkT%ki$4GDsi|=2`yIFnZ*}ljfKfqF^z<Rg}0?LA;ae}{KJbr!)P(Q#X6U}
zB*<g=8k{(G)U!2M>LRRM;Hylf`OwQOjA0TM<CnEWgogR6UNn0+M);4@y{uC#|7W=a
z%N_VHbYSbrEI23=@yPxZ(&OL2u}^)Vo!mpp4!WQrzZQ{OeBpHeI)a}Rq0rBOR+LzP
z=b{hSAF3c4DML=(3=y@);;_k0+}6{hlHxBAZfQ=HsT*jdq!ANVC75QKNrBxg@s-BG
zPuhr7uiweYIvz&n?;xm8i+a>&z^p}+%GV3%%n?4F3NobYCK#%4>PCN&DgCmo5?R9p
z{$87)v+{EYIsIbSH&2N>uJ@APb|w(p)AmGmwnpr6^{LpV)RJU39K*zO4jtbirMXQ4
za;~nO47L=IwV^IV*jpifXdx$_H_wyFq9k(Vnv%%sZ$n{UNz-RE5iG9~GdI={`dY8p
zdR|U$glIs{*+H7=XGFl4AZq(G()`>=$AwIiv+V%x@=9pJfo*isSPqvbpOE2K1~BUS
z9y<6Rka0JLZs-~#SAUrx%7f9E_*owTMgfot1u(60hvQaVNPiXJalQn0EwP}+d(lpV
zP<UB{rcOsh2+R@RZio}fe0UG*;X&ow(2UrRyWEcu+iC`7y8~h-EO2i&25BZXFp2a9
zH^UUgUHv3=PcJb&YL2LAYbaAf(Iz)W>6Uj;mf?nr$<B!A_Qs*a)!2SA49{dDeA~{)
zT(cWGjSNv5vI?uK6~w^!87a6&XwFZkQBu={dHZS%_f8@ItR~HMD1)`<Bm&BcAR7Dz
z5>HF|wD>WKoOS8`y*5<weHcx%GN5DModL~khHOs<27AhI3th-eI|mJ!kpB7HgpOR8
zf@RPc(!6bHwf7^uW&A2VF+GnK=LRI)Uqzi0cyxDACw4u^#Ko+yF;K05sQE`k?R%Zd
zuC?O4)hK)iLa5C~9&IZPr?f5<DH>Af+zLbOyKYdpJEC!@AKByOm{sOsP15_2UG{-{
z%x3f*w}rReF32785I>Xw_s(Dpwlt$^=n|B1#t5d`D9<v5&mCJdCR-wUg(*t@O2S-n
z1<uSC!~9S?B-}xKHFpUyM|;q(NQeIVZZcoPg-(4I`l9y1EagKKNj<P)d?(sAc_DH4
UaX1+iV)Gy6xU#kqL82=B4Vfgb#{d8T

diff --git a/bob/learn/misc/data/variancesAfterMAP.hdf5 b/bob/learn/misc/data/variancesAfterMAP.hdf5
deleted file mode 100644
index 47bd4d5f823882eb7de61f3b67946c81acc0e82f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6336
zcmeHHeN0wW7(eg(qFq6pFBX{7yb>03TG*K45;-Q=yId50G+<7Te-KeB#s+>g^R}Ad
z$gOnw5ump<mBgVTN?_T^5EN~h=2t3S1U1t9zzGH}y3g<2+opfD=0DZ@vhlmmbDr~i
zp7VR2b5;bBCx?d)3T5=uG#0}8<J0}u<NV}6<#BCyT{s^e2MZl6^QsRIqd&%+?ac4+
z-yb)9YDx;TBVB$M9Xb{lqP{fO5ybzM0)do?FVlh3om0D0dcc`8SByD%d2<%qhC7b|
zci|tRhxJxm4xxu7fXU-i4mVFPhkulV?)={G_t`gr_W1QAre>M5_%IgV<5L@Z*<M=r
z`n;glm=4?L4O!%Hk)J*()nC^k!uh1dxgA4N8G~H5^<aO~QeR4@8|^06ow^@vmj6B*
zy?3OeJ0~t`5B<Hff9bzB4#Q%*?w>cePxnR#t)K!y1%e6$6$mO2R3NB8P=TNVK?VM8
z3dDC@PqJ&4nH!r4MO)x5up!LD=`4r0bdk-pSx11)V@?tBJ-cqhuKMB+LMwbd<2JH_
zgI+?TE#5~c*5!iFjM#XC;>@&>$YY#cW?^4P<W)kRl>9r^zexg*75yvnn^7W!c+7Dv
zUP68QMP+9v0QD_*kl!5K2p(B{_X_y7t@)Wy6y>!NvY1-r)nh_0z<+5Y>epW%=H>RX
zeC;Xl@uHK+EAzOjf8}8K<&KYGTis6s`7?>wXH6Q=LwtH(NjrGi&=x{oRCA5coNY7_
zvN*m6m{VT~TzC@ovGnlo$+lXL))5-3R#y@7Cn9YnY<u|X?+E3M6E|U>Q~I!`k)fR8
z(mJuu($}CbY{I%95m$e3KOw8{+KK(Md|0>j`U(D7?Z_+h$DBueRmUCpn_?a&UbbTc
z`osIAqaG$Z>#-hFSBv=8q2M#Ca}dYI%ERzSmK`IMt^0mKe9>I=$Cw|h_Giw(9Pxs=
zm^*8rX8`ie%k4`jmw8nkfek-k|J`@G3H2eH(O=dXjk<YaZ#8dWnYJSK`tEL^Rnc&U
zY_aIF($fl8eMoFUJ~k{%<==mL1H~CLc9s%a(Mu(8?C2AOa_gBkLY+6OIbHgqI;U2R
zb8@*HebloCe}aA6Qc4KTI|=33-{jv%Xm}<ZhpoL0J>;aZYA&@L%%e3S3bw3iK;PJf
z%H0&NZ|bTBu3hmNcq+<FLY~?He)im|?eL#}19e!*dl4^}9sP>@Y;@gG#Mjhc0`?t`
zxtCfw=F=>n4cm;GqWa%F3VLz>TFj}aXoVhZ_>CIcucuBy9^<VyH<4`)k4F7`yy(qs
zTf}52U5;z$4@>U3MRCR>tI=1hdOZ59hqdB<8KcJh2A-^)XMq_D)jSnH4*m71X?QR6
zTZv)B&ra=&AT*c90Y%2jeq<Z#%JIJNh3&Zaq97lA(y!MlJv(1LN&GTeM;`skO04r;
z#p=CDDAb6@ydc#4<<3|07?tlQzfAF~ywkV#C!3$mR_{~XW2n!HErouv?gi+<VvjXa
zJ~1f!5Fr~~rTQ>nGx8hlPhuYByK6dVT_0D9_r*Fe6a0FKhI=g{(p28quP;*^uef~?
ze8+OoKbgItfov<i1nXvT2K3`w3vq8`+Y-Ec;@Ujbr|tsWKk-rBx7cTVi2AH@20kPI
z)6?WPuN{JJdT9xCvl31L*_2xF>934{exhu_0g4w%mAeSpiU3ePI&Uxhd6|l*<s9k~
zGoM8sUfEyu=TH`O5l5!sJ<{KARCexF++)%4xvJ~pRJ<o<pCy<t@!sTv#BWV}9`h)>
r3e|k}OT>K>BLb@LTNY!Vi2MNWuXVE;^KOVboKrStK^Mz9aXjfyS2|QV

diff --git a/bob/learn/misc/data/variancesAfterML.hdf5 b/bob/learn/misc/data/variancesAfterML.hdf5
deleted file mode 100644
index 472229290b53eb34728dac334a7addb635d314a0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3944
zcmeHHeN0wW7(efe+7-kE3(Q$w35z)`XiTs~jtTZImWCe<nA77Qgp`P}foU^us~L{m
zN|#!E-PTkRhlVHv%T9(MXv-uO6Y(OTk%ov93|MrZ-?{JB{IktJTD)xh?(_9~p7T7<
zIa@q&^Zk7%`ZD@y8XLjJ;nVwX$oZ{$SZTbn*Djn7mxH+umblf2i_srr6C8bj!+*cu
zl11_H%=Yy1d(jDF;Um<S=2Z;i|EdF?__?prfs>q5d$;tYvuECBtjx+<x!xAM`{?l+
z{w2EDD8=Ovx>y*PTyCWp>F~~Q@P66H-hA>5&|{g}UCtu?Smcn83K(f?$?kS5Le25_
zaS3PDwTB#PK%m1yF_F(tSjgC_f0`fo_u>T$<LE{^#WCGE#{*A1oM5;E!yWifb|A9%
zR;*pPOet<96rG+yV4a_f(}7O!?I)RO%g+E?XEqV?qlfQ8uK4;dLd*X%#%*Ld^=?9=
zGt!4p?8*e68Ccv+erDoy<T08zS%~Wmx=F}m<Nk#GyIAm8A-^NP87xK+k2$N&O{gE}
zP;y!{P~UqG`OQfU;F0-*H^8@l$FGDUFRPu9g;pc49_o7)`fJ6gUw>nYo7-l&>KX9y
zybH)Hv$(2%>m=yq!A~Ju1J45ab1{gs=8YdBK0T|T2fS=@8zIlD>LN5(7%hY>oF4_I
z*Omj<T|j*-$^S=^t@g7ugvPe*6@>h$AiEQ`JazjIgtGhmZOE5Ze^|?OUrv6BeXz5n
z9heK7v+HO0)z+UNWVQW=5Wn09cDrA{K)<{Pd1dy@EAX%Ay$5|u=p)3-4i;fPd~_1(
zVY06l_RyMY__t36pIMm>KNclVLmyPqNGRKn{|5iO)tHa5CQQYrEX5x2oYmMnYl3S$
z@?~U>A(Wfkst!-lPlz9UZ-7vLd=KW!`a)1Qj~S)*%`e67h;2VI0JO^LE|DzWzOMRd
z`Kvj^v>_jxlB)8bxL8Df#?nKDgjUE#35<$3Pbl|Y>Lk>8tJ>3zuc&isl{hDtn=wZ{
zb<*dE+aF&*Xx@u1MSM%ZaYDm2=Nx41UGziFi&A^3rDGqhIl+)+RUPKWu9hDme|>j<
zC2;4KFTqn*ViNKNb>L?&ZaV<|l{Zm`6?Y8&a?{ywNY5f_&ceT{_8M@^Z0x<%O0l12
z=?chZaDtkD>kRaZ2kgY2in4a}gH7$OqIi8l0`eH|ytSKTb7~0c=d;BqZp$JxS@q?d
zhWW6#p*!SfJh~lowJK+0&bnVa?w2uR<{#imJ=6?LUZ?gc|4H;;UzCXVLcbH^NBpem
zcp#y<IUFdGw~i&**j0-6g|F+uy%#yzn3I01TJ^K<^$Wx=Lv-ZPZ)}B~AI?|rO?0kC
zJmyuQ_Ahgd+Q;DR0Mg6&0F`&izHub;<}~#_g+GD%tgu4#Pu9GQez35{2FfQUrkx^W
z5fy3<<M$xH(epI+QNF*Um+bniLcA~5$z|Zz3pCto5tyj*hJAaT{CL^j4)8UmV}3Gi
zZ5_#0QUUB{elq&U_vPZ=$j%LT_e58Qn$tiI?w|Oi=6l2$AEQ32l!4F4{^BC(&8}1E
zn_gIezFE;tK$cJqKK-?6=$|NAdy@P`Z24hAw#5UKk7XQ#J}X7>v|UDBV%ZDG!^_91
z`J75cU&NWkc#rfC8<d=R6Zcs3ex>T_ScLb)9K8YiB|ey6PyE*0m#~krKUeMN*cjY5
kG0mgqzIQ$1M9@cgf34e<*mpzJ;GD7{6@9U+^XFp!2G>bAY5)KL

diff --git a/bob/learn/misc/data/weights.hdf5 b/bob/learn/misc/data/weights.hdf5
deleted file mode 100644
index 41b22801f28b4afc8b3a81daf5e594e85100f29f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2160
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf&vbR2#gPtPk=HQp>zk7Ucm%mFfxE31A_!q
zTo7tLy1I}cS62q0N|^aD8mf)KfCa*WIs+y=N{^5b@Njhu0C_b6>R(tYJpoN;uwY0m
zDoU&ba$xDv113Qx&B(w8F$-!SBQzy5GC~Ak*28FKpgc%MP{E!7l2#oUOt=|L{xd@y
zzzP%v$uluAfeqk*s%K_QfF^C2&miiBpr(KnKQou`XJDv+NDL4e?C0+S%F(cVr~viX
i06AyW+R+dg4S_)%0&>e=c<B9qZ?Eet^ZJpQlsy1qtvL+<

diff --git a/bob/learn/misc/data/weightsAfterKMeans.hdf5 b/bob/learn/misc/data/weightsAfterKMeans.hdf5
deleted file mode 100644
index b241207eac61c8f47dcb0fafed293748108ba6d8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2164
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf)Wmh2#gPtPk=HQp>zk7Ucm%mFfxE31A_!q
zTo7tLy1I}cS62q0N|^aD8mf)KfCa*WIs+y=N{^5b@Njhu0C_b6>R(tYJpoN;uwY0m
zDoU&ba$xDv113Qx&B(w8F$-!SBQzy5GC~Acq2|J9W}rMsMo>W>n3q66fkB*uLA)N!
zW?*1t-~h`rF)@J+;DD-UW=w!4Z4szS2qgqm4+0>?k1Zwq85k<S{DC5Z{rp`(IU1G^
p6_^LgC8PF^hQMeD4E7LcW%M}^G{5+Og6HmiCj>YTOnAt000424I!pin

diff --git a/bob/learn/misc/data/weightsAfterMAP.hdf5 b/bob/learn/misc/data/weightsAfterMAP.hdf5
deleted file mode 100644
index b6e1f0497f91dfc26e137fc021f02431023db1a7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4056
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf*br05f~pPp8#brLg@}Dy@CnCU}OM61_lYJ
zxFFPgbaf#?uC5F~l`!*RG*lad0Sko10TURdM^p%SxH<-aJRAY_H7u2$fTlB8U?dh5
zB~}7Cu=MBwlOU63WMG4s1vQY7K?7_OBNIdbW)CaWd|0}L@tJ`sAEZW5!JYw<b{!Z@
zxEW0TGeb160!2acOw14iIiTv9nV2h}W`LwYOt5w#s3{=9rXR9?3=A1S7X3i5pT7$z
zM??I=z@Py22mM?yJZu7$cc5^Dr56~jLBM+(pye=387Liq04%-1;sqi)N{)uWXb6mk
zz-S1JhQMeDjE2By2n_WQcq@5bEu!wSJ;%*;uP-<@*zaHr3fQ4|#$K|I@%1w4BlfH1
Ly@FmoxNHvq$uwW!

diff --git a/bob/learn/misc/data/weightsAfterML.hdf5 b/bob/learn/misc/data/weightsAfterML.hdf5
deleted file mode 100644
index 0b3fc2551fc9d1eff310c7cd7c0a5e33d926f0e7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2184
zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf({Od2#gPtPk=HQp>zk7Ucm%mFfxE31A_!q
zTo7tLy1I}cS62q0N|^aD8mf)KfCa*WIs+y=N{^5b@Njhu0C_b6>R(tYJpoN;uwY0m
zDoU&ba$xDv113Qx&B(w8F$-!SBQzy5GC~Acq2|J9W}rMsMo__?0g_f77)-bsO#U-N
z6tV(ELGnyYOke{zpz4_!6QD_318O3K5`vlnQfy)+;m^QOfg(?DPOzW93n)iJ9m}8q
z^%uR}F>2pv2#kin;17YflGoKD>Mq-J++6qif@6dI4#uE>9g1h{CHoj(FOxoEzgpfa
J=;edU_5flOL}&m2

diff --git a/bob/learn/misc/data/ztnorm_eval_eval.hdf5 b/bob/learn/misc/data/ztnorm_eval_eval.hdf5
deleted file mode 100644
index bc5771861bd444b1ba3d89c6c949e91e912136cf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 569984
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%0Acj};RV>6?l^#^<s
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%0ANyDqruZPiEsf@#ys*Lp$W?aGjhMc3g$V
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%0D>YeMRx^y*&~^;W
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

diff --git a/bob/learn/misc/data/ztnorm_eval_tnorm.hdf5 b/bob/learn/misc/data/ztnorm_eval_tnorm.hdf5
deleted file mode 100644
index d98b4d656bbe0a8c75a675ccc09834b30bc4bd00..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 438944
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%0A?oM)d
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

diff --git a/bob/learn/misc/data/ztnorm_result.hdf5 b/bob/learn/misc/data/ztnorm_result.hdf5
deleted file mode 100644
index 877c72c77fedb11fe7d39791823f42e58cce1e1c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 569984
zcmeFYX*gBw`#)@+XPa%d&GS4atdB~mP{>dj(rl_kNhPU-Qc<STq(~`gAY-=7ktPy~
z%w)){$ndQ1?|a{G{x6>w|KoU$=eHe)HSD#nz1OwR>$=X*aK_lIS<A~M!Nu^O7Y7Fe
z3xmM_?Ed?2`JdP67aad{>fhsk-{0}i4&y)D=zq2knf|-O$nc*(1_rTz&I|t2{{MO1
z7DsDq2J*^(+y8g_&ut94EdSm6@3;8(?Eh~6|I!0C)>fPU^Q><FJn+9!TKi9&{o4=T
zhYx#)k_Z3Bqs_l>{J-2XGO+!(t$!M1WKjK|mKd4-dqU!$cC-FFf*AhKV`eh)|8u1v
zjbQk1?1I6No566I`M)=^l4t+(J`>Y_8|3)sdS=EQ|Aaa%>z|$fxk2ckR{nF(ORaDx
z28R9rZRr2fe<%A*YyLB$|NTz1f1cz2(#QYr$NX;({BIBZf2apSsfn}U^bJsMOj!6O
zX^U$O#plK+>>$&ZowNF+JyPD-ZL!yO0QK&nUJEWuShl&wnAur?t0`}3SltQ}ySK!>
zF$X@aJ-{aZzzQqVWG>Af1Fk%7<i5oLlmu}`A5gSH*4TW{o71ade(}9%dW$JuZ=Y<9
zi8q1k3k^?(2qQ4KZdAFzV~Ua|Qx{XN>tnp&)8hleMsRIh%}^6+iB6lL<UGR_sP;W#
zwEWBzYR}rYW}h@e)oHI$_hDnOI?oB$^R2*6UQ3<|DPu%3MA4mM^^twNzP{p{E?ksS
z4?3ypp(-im#l~elT<lyj)UYvtOxLBN&RjjzNm-0{oz_Ovvz_MAGJ4RI^i7HrT!AIk
ziMO7F88-M^F%mz`(6#%Og!>Oe2)Kz(h@~3g^*fzvUGLT4zkSD9zY@rh=S>kCS%oWW
z7Ctv>n4&+|bSSZsz=_l!j`bf`BYL^KE$Y5GT*nrNB(7RubAO25_d0U~%KRu1Z!m$v
zQ??iG+UsDe8K<3)ZGlHCZa?7WUj^a__4dIVR>%{%$#UqcDaM}3u``??5b8ChpVMIl
zH8=05GYo)xs<-!gLvzFrm)O0(Wr3&b_j=rtw1Q^jltI!{GsNWFd(LP;K!E4vqed2M
zL<l7(Z9iiPS|Y!MU4j{QXB^%b-U?iP?3x}Ku?nt=r|&wHuY!mVwZLKjM#L=Zg$r3J
z!M>DOz5cN(7BhQ~+l45h;*V5F&Wtj4*R{9pWLLz7*Zg+WJ-T2HvJU6iriV_p<Cl!m
z)G<8qq<Q>=Caz|neYLO(8lHbI7wXf)^NaU{f|9fm@AP)goQpi(eCMy;Ms;xQl!&E8
zt6&9dzUp<l0X)nSf+R=u(OdmXKHSp?537%OG;$f@2LrF4@Ec>KXVer=I~(BYwwo?h
z8w|nubW^CxfFYvK-=-a>>*G2H*Wg)WeRL4<zfb?xLv8kr?tzv1_;S^DVb5uOSk|xJ
ze@#&jNm`BO#0ecZ6lfeh5uuMbAqJ7Z=7zA1aeFJqW{9zKW1VYz^{^pS%==!yF2vXI
zbH?hZA}eREGE|KU1O4EzfH^Vrs0q!MUzEVF&K(WKPerj#-R)@UMQt4Yb-p${UlBt-
z4ZXi7bYZqjl27c28YVCN&eyrAgBrnmN$MKfV0yS@er&5Y_9>dCa;(;ZNBFy<0P_1A
z3%uq(5TS#K;G<`1Xlh_R`NcWkNd?|z&#T8BG;na|sp|@PLa@&|$a`go0<-Hi55uiE
zz%;*3(TGhP5|)X%S}tPn-d`*Kb~6)Ro7R=x-^2u;exIx(R9PGs3h~ZhQ$=obmHOBb
zRd~OO_}Y9_8T(I+%xw6qf#Nqb9ZI?pSfVpHW1c9%YfD0+XsaB2O@91R-X@1yk({<&
zqH>729V#i>zy{yZHaUhcMpW2z`SMTC6RV!pAG4_Dg><XBMU)pOuAe5#9t|xKZBJRQ
ze=Fh!T}RMOWQPC@nJ2zXs0yHO<rquKQ)XO^%K}xG6P;5X%p-|hcr$Eq=f`nDBr>G)
zwd-)<_l0kvXWsIlCRU+gvw{r7CFEYUThZWs>O*wpBVnW_Iv1w?7QoleiM3NJg;8=~
z-EdkB1#^M49}GOa7*5Dpc61N~!y$%x)-gdW`{Z3_vlfPucIH<$D+<nyH{IL*oQkVk
z<>V&$m>|iJ?dGvx23*Qn{oC)0AZ>e;?!i_On2(ze+j$A%y7vwLbRR*yTR51yW|#-@
z@m2a}+eOftkiTijQx!8s;U~3oY53aU)&E&n9(8oK)E7N8JRB3`zsskNwBdIT;{;{k
z{7J(=?Xx8O!hH`C3shXOG~P1qO9fBRUwg+J{BTRzej;67658Xl2Z9V~;1u}Yu6R)z
zesdeg*JewhWru)@>3v~PGLN!^&&%M>;5nP?lfq!=c`4}fNd$XddNNiWkbn;nXmy!a
z0`JGg|M<&`<4L-ik-WYPR-6e7P2;6O%s)9lu1XRi9a>|PzbUBUrR)s(BZYGhnqN2v
zP~Z`5e~tB>IFh*H)w{jK;l<sQ9RG=mjS9`V^rs?VyEm5BH7W)B4%fH5ieh+v_VS_M
zC#a}4Rhg?#6+jIaixJZcL7Xl2@=MedLZ$YN)a@Tw(aQ0OYb;Fw@vX8I8*N3<-}zxl
zqFfkPBnN~{B!r>AKG2k(B8pZ+ou_gmVo;#;tvxazii1kU#c@i4m@*2y{5g~Ye~UVI
z$vjywZE79lAb%$hx{Dp#VNpE$khbgMN>wCH+E)qs$U;;0#b(6>Da4&HXn8gzg@nOE
zoewrNtlFr<=GQ6@XWa`9${UqHQ*ZtfrzM7K9D5jE3(^2%rWUKUV)!X9>904gg-DtG
zHW~HOxYu|zQ&>+G4~7j-&ecexVS1yE+%YXkJxcM4a8QCtjyc!t2@ULj$5W-TOA=mI
zNoIYKk|<5kjmu|H#6ks4-7uFC+a8r&x+5__FptjOSSKcgM-TFoN`xfvP@yvak1aDA
z*ROI39}~qViN1i}5BYGx-RsSz>pzKEt}@44Y`sM7j=3TJ`9*@wX=`j!0w*H4<1_2;
zw-9``b2yvIgz`5bP8qKC#LV%1Jn{X4I8np9eZgJ?>UV#iFv}7|?ux784>EXh<AUbu
z`gCsWQeW@AO@Efi+P#hNtm-2c#5}u>JmG+om_oJX^IwFUQTQ6>kbYwI3%1`*Wm81x
z163Y+XAP0dBm6`px|CSE|ESwXqcI}x*q67%_4)L~&{fd^H-8gJuhfSwnamP>ygJ)E
zHvT3O=KL~5xCaRNZjDrad?mJh(g+~3#t8Y24euy@y!f=j)$B(K8(uV8MKCV&BggK}
zC5t>^s53SWgyxAMz&Y++nkEh1)jY9fy_`6oyizvfJST!)o|Y7K76I?dRcWeZe0^Ov
zxpyH=9*^E1*FSB}3yHw&q5vK8xsNGkxRCQ{8fVp`7*SDtrX=e-G6^C1PpZJq6j8i#
zT_H64mV!Y)*1ZhUR16-pzWI1i82be#H;B~;B7rl$cU=+%lh+foKOGao8GCs#=aT|h
zbM3&k4FwWd*s=QC-D5Ji+3uHn!kHH#J(6<~YNB|jmtcL+Km^q;%9=TGEC?TV)v~=O
zfs;4%?Y#4a5k@Tz_$eifrwnV>Gn^u~q8Y01<OOllqWYqH0TZ6?TR;4o#*U*V9K)q6
z*<ha>^7Xno4_=?L-!i&e7_AZ4OQ@>^;V~7`rLmU*yz5i*Ttj{n8_y-zm1j;6Toxh%
zKNaSQN1xg?1O+${xtLO^PmarW#RH)On^<r#Xwh;Dof}DQ+#+Mg*dg-1_sNbs;!yds
zxk-eKA8t|ly0^hogrxq;vfa-)pcSTCEwGIl>ALr9wLFAy!+%%7=}1xZBs?E{tjr4w
z9Y>qGm0Xy<-8!>nD+hw^DX49o=fUrXDtBt%ejyG{YESC?5`f3XiNv#g--&0Bf3*dK
z@!<jW{?<fgZfrcjdFB1l1)^e_e=0448C#q7evsQaM;L~AKFv*;BLp;FW-YFf!V0!s
zZoC8qn={olg!n`uxTE*`F<BwZQ7k^bAEiNQSCg2rRxcrZ@t|5GovCb`y++(|bb)R$
zecP+LjJvF&NAOCsCMy&b6axOf{zhn(e03f<Gf4N;e{6lRvYlANHQ;RUvXj1ZUAr~+
zr*`7hM)$vIWw}JCX{RqcOAFEEE_!QQ!6bcs_P4m(HjHH&Hr@}rxA)TTW&1kBjQu5^
zZp~UftTaOG&F?adT%4q<^cjhth<{9H$-T^aw`_)RT#CK7Ir|GewYH5iwe2Sn8qenx
zyK9_&N;KA-f9emN!(mm~)wMH(n2t8@g8TrTKK(N-?)(IO;AytH3nho{HX1#-@!LoG
zui6`(!Txy!)gnImVyX<TY%)7rJ}!!kbi0=skOkF^p&{2%1w*QH)f+=(@#jX-3+gc`
zxM`;K8CQ_&jXRU%r5HK9K6;C3Y%L8|dPmbGcS~TqO}BWCi~=MjQwhhT!Z;}D#^B~B
z3HH8@*-}GE_$JoJD)xxs?(S{AD-+0dNb2yeovl=`C#4U#*^47Ar`71MwkS>{8-`xK
zPl1!lFfY5dB>r-(wY^~}jEVyVJgn2g(AqTFSJ5Yk9iDHuT-+s$%c?cjr#|!JF;~F4
zSD%IPdSQpp+8ha7l6@`T-6#gRcgr#^QoQ(eIRDhlM?q|5Rgl{gA%+hI*H4z+6^63Y
zgj3or3HWnqGJd*DK}emxZC;ixVsC%H#!{q#Z-=K2ioY_2%9qP-4Tn@P=9&|@;HreR
zF6+`Yc+GL1`eh(LawR&nl32&=SD@~KctG}TeT;B_3E9SMfbH6e_EBO0`}vps`|g;a
zVW6qoKg|HT`z{?aBlAhutww@+hK48^$gq{0G6UP_62lugV_Z$hEy%SuBlEThhlkIM
zQC5FvL&qf(e7R&MFVeRXKWeV#H{CIY?tOjswjl#VPu{x~$w20**Q(cluhN6#%{Td)
zt>)OhYp>K{-<23W5fQ4B2xMJ(yJ+~q5>20^=>GOAalWfvX(`?eN^x0s<gkaiW19TK
zaWm9t6o#7R8{^@e$9vWVQ!MM4zEn$6M8O*$jkiCP;o?WRYs)2%-a_Y*zje}3(047N
z&5Iy$c^8+ew;a~p@Do(LEsW>umnc2MN_e??S^Flp0xWmWu`VTxAvI&Orxdp$ZbzTa
zxj9G!Wkf77e~%0jy$xFw%N21yU`=Whs~p~D%?D>Q(Xe1I5SsOd3g%1EKf^xAW9b~n
zui^wg82OF!SvGKkVk{i+b50s=VcdJdI)w1t>W8dIsyZwy7EG)6DWH;<o01eHfs5_%
zwh0u4L4oyC>OE;JmF5Y%BnpE$-L8u<LIi@0&eD-(LI^9k6~9SS0qZmGYabG(Vdjse
zvcxkQ`i@jjgrAhghVq%{bLWL2bF*B?DNY%hak77y&(m<!z5Y(jVRa-66y4mqP6@Hn
z4i}4_$V2Vxyo*z|EY|QyCRn|eL(cBCr>E;_h$^MVn@33^@$*!QO*{opX#NKi!ep`E
zWajW89SXL44LUXVNr3D7F1EZcWd2k7WTMYO2!jn%)koT;k?mO#?yx|^^VkIYpcCRS
zg_dVj6$NLi7R#Lk#c=}rs+t~9k;T+9*I2F$Ta`JQvKkH7Dts?>tfWC?<<94Iz4G{Q
zU{|uy4LS5aE~=95mcthRk9vpFrIFIW=isj^2h~;2Cz_;Xp`1P}^ysz(-i|-A<1-hB
zQMa+sJqr==^ytnf2}t13mlm%hJ49d`W^k{hQ4h~<_)GExlQ{3r<I~N*R=|IS|Dn&J
zCgghE<&t>Y05wKszpg3jpfEMpUb$2aHea*n8B~?9n<I+JHcA&0f1mZ+#wx?fbAMD_
zha40Qb-sO_P)7JOfA>@C)KJ#u6U4PFjfmP87E)w?pKtH`!(6Wm4rQ(nmuTA9EpXXe
zq{9IEF@{eWn^m!t>0)9;;{7yExB70nG-O84yKkS?!v5}OGQ(%JAa5q6|F~Qo-*k1h
zZn&(6_QMPk2fnJonHJvVuvrg^LQIZN30(xFu2j=zAbEpm=}fnWh7c*dW7VIhifC;;
zLC0GLII??#($4)_P}s5ZQhu-w{OY!SF|^mm$EQu4VJ330wtH`9BQ6Hxpq^u$`XWf*
zoW<I#DUHFcpL<HO<lx}jXdEA_j`rTe)c7G;R6mVWW=R#nX_*ss8E5#hm*KF=HgX-G
zvk!XkszVG`mpXSu`^lkEra7xxUKHb5H$z@Ci=%}zi$^qB6bprQ-pS9{U|usFsdkkM
zy4U|?MyW_((?^FDj&%aC`gY$iq*(;ck-OS_?=Yc6tJU*xrXY^4KDE|tEfvWZOs2xW
zh~U|VZlC94Qb_CZ=j+!}#D%Tfe1pc75OFR~XM>>vE)-8~k#thTzT)?uyq&UGw=FrY
zlam`xcXT;cdaC2r?fsH#N9DmZ%ir`cLJ>Vo6`@!Dh(I!tE96e5Fq-r$T_lU7z?G+T
zd_$H9)-;~%3Y?O_X!M%Q5CcWHOJ6~3f+(J-*|J}1pn+|<po79sL*<rJW5w*Uuo6w+
zl@k<0K5vQ6Oe_T(g}g7dO9((TT_gPcq#!b7R{C5MV}Z%f-9h``N<&Cxyxu-r61ET6
z>^H3z#eS}?HO&vi;F-E^;O7BxXiqy__aJdc5G^$(L{k9t=)Y^IH-s^jWh^Nc%84aI
zz8?}1>^QqTTmGO>4D2NZ%_qfVao*<so|3C#5d9mA$So3Bil1Bm?!62gBAZoTtd~UL
zvfJU=ck-AG_}J90ArIjNbzv?=DmoWh*R(zsMd7ha9BW-<ajJuR-qc7B@ATJXgq|=&
z?!X(b&x9e)eR;4r!D)a6J^P`Udq!x}K0h5Qq5`(=Ymef;tAX>2hU2wJbp%|^h&}vF
z1p)l5y=gi+(3jqDzgj{Uh96Q!i`N;#YB+(zy2J<+^&=kxnst$Hn{ryPfsE@ZABR>c
za~zOdm8|>I0M=^y>M<;a*z?%mO?H<)GDossw8v>f=C_{PXs-d}gFfFoMy@+Yr@eZc
z4Gmyoz9E3+l^(WBt5%N2Xv6TM1g-PCDpEa#ZTkIH&{}$bMV-D17_x_gzirWkH20pM
zo^CCOFdH*9GOM8Ux^P1z$$xYe++)4Ksf(XEmAfh}bn#jIfzP8Y>c~DD!OPkqj~^c&
zJm2`23ggnNT9(fwvC6vJ=z=S`9<?(a8WmSX^Y{GB%$>@h{5dI9f0evX(Dt|W31xg{
z8uVFXNrRhw@(**8zqs|#Ct8zN1@-PDy0k=Pq%UrXIdEAVyM{IT?-`0=^3o1iWsBqU
z&<egg=j9=*7&=`RD33ET*;m9}6>zUWQQfy)4jdsf7v9H8VyUd|lb5b07M+(oPAXCH
zsF8Ki$bt&Dz-Z>HIx_Gx5$t{<NapXKnHvs@$$)?F1HCzQF$~17U7u+pfYa@}*L`p1
z!k@^rva(S|B(r<BPbi4NG<0C?=qqsubyv#1vJ-}ea8LahnRg#MJOA-KjR(`K&IqMF
z)(7AHiuOE5UAX2?*H|v9;NEtoId@YHTqE}XiH9O~6<S{?C;2vmhte}EA8JAQh<Tjk
zEp4RpZ8?`-tBaeqS3i`H__W@vYsb@k4P>ZrE$K%ap<8C6G;o6vM*oHttbJpM>{o^L
zV<bQ17qfA3U%Ni$n+zQE!&Tu~Sy?;SqK<t=YBkb=%J6@2=9@9Q8eE?KOlrBIi|QBS
zicX!znAA&q*r#KRbH=S)A-38uc^I4%+5^z$x(EpseYBqr7M;DSjiec#@r<)Zpm(ts
znojBB@zM6=TzwtbNBB)|ZqmoZ(ZrtZfA!FyX}i4iL<{LBKh!-k(M3XxU)~mWeWd#y
zsAn`#Mfu2!q9ZGmuu<3lW^cSM*a9rXzdhGQ=ZCr#!ymN~!F7tB<)DI}jItSP>eLX!
zsnIPaqXJjgTXS3;>adFOjLOK;M$qN(?t5HHIIv~vHLXz{`Bv9Tzsaa$!@e&UT4L4k
zC`ao`;t2&<DR^peWtpJfX=znMm^zd``X>fP>4P!xCq?y<0d(fQ%B7o)5N9v;TenmP
zZ(BX9c^?=-(OLN8r%DURF>htdQc(xzkBXn#3aii@dxBZ<ojO(>w3Xc0uZHZ1Cl;gb
zhS0tm%v}A1<g+ciDHhr4C>W5MZAj69o#GF%A91=^lXiyT>@Qugt_XT%X-M|-&X>Ct
z=o%1w6xyIR%?|2YwI%5&K}3)1^w?~dK$pC6k$1TOx<lUkFPx!bm;CTuBW7vTyi~q-
zf2RZ<u^4j=8Y`lS8oIahjS|v$`+W-81mGCd!`aU!f$SeOL(C4cIPiK{{I`h$K8Vlk
zai~$j3Gbx%KWegwJJ)wsVxt_aR9Ur)7o>2=jBBvINDP<q;@PZO6>zOTy7c5<Rmj$C
zK)5>%uXm~!wa}!o%Qo(U9Sey&nwn{W&C(dSEFqPgr3?-E44W03xnXO0+Az&_g6QT^
zbMODajY@gzh=K_=hz6f$miCz=6xP4;kD#)kymb6b%LYa)ow`AjqO)UhTQ2|V?}D&r
zv(VK@Vn=Nbmy&O;0(5SkJJ%E@2fm}7@%dg#I8)TInKfJy8+oNhy1vN5OM+$P>GyJY
z6*5(H@`wb|vfY#%-pL@jZrt7fnk-@#%g?`^6UVpFQc0y{IWS&hVSV7Cg43CoQ{wi>
z!L#O5r}id!M7-nn^_P_gb-U}@$oKN7LEI<ZRT}UuzK~Tus*bSO8!vgsR51E7+Euhu
z9gVy7-#L?cwVK-&Gw%s?9HpI&NtaZ_Ppk094hK~b)!?*-&{RVjo%`ugF+GI&js|pP
zlDxg|LX?KFG8pY|4IezBj#P<H&&-6#{5w;P-C%<TXdb;gzN@HWfBmk4lOcK-yt?pU
zNKg?^w;221c2Gn-*zfhyX&^S6>pdcIvn$i=+8~lYJa>5f^3fe+o}9%ySyZ5aJx<+z
z19pn&8ju$}dRz-SXQ$|EGRXP=9*<L^rYZ`=lsp)UbfLOVz<$4|BB&oWYzmauz_U2Q
z|K*4x-aUTN^y-@`f_B93a$%)`<YJaqZxzJ^m(}d)2vN-MJj(fujH|7*#mt-+()g4n
zB2oEC4(8UqtB>y!$E>KR-$PY7v<o{p3X|hfq}<M&I;a3y&y2*ZS2PrFYFuMb#*cMA
z=d>8p1#w`&TrBCCI41Ys+<o4d3ZcuU9C7aAILzvmkxdZ<A6v0#<qmnoU+8^JbCky6
zqZwgWe@KBz$Ia)8r8r_ghdp_lK|@nE7wa&c<iS(3H5!>E;AN)BTfRvIVP5o%Pt5XI
zD=qP`mt3#>l?rn+A}H|9mVU9%MFa}#PsKJo<%g2(sM|qaVRUI`hlYw%@NKQ1t8<(P
zBw9Y)7-XPeNQ!}_QhJ<t6#lNd+*TB4zdvUhvRR@BS%~>Pe#2VU66f(Pn3<`}P$@Ti
ze1@Sc_u2vX@UB+k)Ha*aiQNNq*P3xfTKh8nz`9(8v}3>N8$TvGe2rl)i>PYWy5+b)
zzw(qla?>lOG7Wai!5ym?=<(ZLwOCxAqDTF5vKcX*r2jCEJ1@q*NMEe@vUykZANul*
zE4$;8f7AQ!-sbN}VJwpvoS}@#GncvlT<@MfGfS82i852uG(@$7b>`h-V+0d(ENez}
zutxn`&DDNAn0!f;u?jOlTTPx+Pss}O{rzhpSgZq?w|_dvkE<cqYh?G`WCNI89V|{(
z(t~cl`WpRAeK-|gj1GQcgr_bC@2d+MVC`vj3*}^8e2=M#WxuM2o-e=mjEx$?t-(TO
zZ!$TbZaUk;`&<)l`SG^Qc6#94@+NQpF@2mG?`=<HT!F8qUVSp*deCbz=~_r7^ZXB6
zCZox`XH3KM(6v}2a5m;STb8Tgi)r^S_DTaJUiFxnHqpl|@vBo~a%6rs-uSKkwk`zr
z8GfE9R>1f9!Q*>a)#1XmS?8%fiOLSm$osy~!)LAX7sMVT6mYGYxSDPVMw7z4Y8gWu
zSqQ7kyJrAln@2aft5ncbYjEb!LsgU|82AWU7-G3@-q<O@1n;Y=apR9JGFns&_mJy(
z;<r|kr!j`Sko%Ls%PWwg;xbnxuZ?rRnM^5}ItU|N%r`0+pit<tot=XLs*f$th<0k?
z<-RcyXJ%RCkEaivzN3u6&{v7_^13+uBC5u=R|{W_L*CErRl#MdjpNjUJihR#iX=Ac
zLHOfVVw^((+B)wZDc#k^0{_UNf>I3_SP%WW$*KYNxEQlb(yFMRI-fJJqzpFe>NDQ1
za`-l`VRvds2elqtGvBV8;0OP+6GtS-d^9z#ZP8jC@yDm=LtB*~yVTaMP$dGcC*0~=
zof%O|t5w;P&VzgOwv${bQ$*v$&a>YGx$x7*JhNO_0o+?8#(hbiU&QuJ{q|Bx5b6xK
zBp-<(>W2Sjp&$h`rk~ry|Cs_kVr%I8V>IlVT2lT!Bn6tda^mMWc3hCy^YW7mH_6NB
zwcLKGfRfzL(=m2RaGm5?U0x~%-pIIOZW3SCUAvQTDV*eapIaMrR?A>0|Jn`9BT7iz
z_{xs4ToQX*{hm(nQt|P?GEemnDrB$p+PIxn#5ARDNo-bz)CDe|VL2!bmV|R9qE95S
zmbkQSCy8H<2HT8DhAY4;d~)(w6S=M(8}pnwOs<<$ioRMc6%&h(9+%gv!f5BH&`n_z
zWLxH3*g3C?og0(|*xwuC5nK18QFCo5nPR<Xu>tDy7PDm@$U&M>GA%RD0Jq$ReZI>Z
zgT<~S$dtnvH?IBpA+X&5XU0zSt?*OB>L`cfU5|CJONXT^ltCU!H5G*dY8nVu{%t(}
zN*_-Lwv|{gslf3^#F4;*dSHv^y0N!b1zK$xB5@?ol_^`G_xGt1G``=dsns%q^l-4+
z$E|wUwDBN^jI=To;+)D`NIh{R`MRJnxt`q7p&1pLkiUPKf%98(93R-pa<gyQ2=n^t
zbCxStf~sJ!SbLwu5r=nfw@Flo=eGwgi-GzG;fwZl9n!;Y8d0j-p@R9Ns+`*ywU8ij
zb@*qgF)~;<w_bk(2pX#!kG!zLF_l1<w!;8hYvu0ex+{=0kmfJKuYmWiQq@HyPL!8;
zbHAuW4SNn3sXbq<0FN8jG!He4L0OQfU+1ibZ^!R=ojI%uY2S&aJ#x~pth=zXs+NWm
zj1PA%T~x(n#g?RU3n>^{r|dK$^;%EM3!hiLFo5laUms4CYGaGe!1%jxU0gOV50GS2
z$HNU*Hvja}!RAhp;Bi+&^v6HDJN#Jz#~PP2IWLfWs*Xi~p9RSay^shCBJ<?O8!Vqh
z1c^f@)Tt%ES`@qIm?USErEz*<_KnX?McCgQla?u>!7+dBeW_L{><iHLxV|6`hLL2y
zvNh^h{(Oq#x-bWx9BMzIvymIjC(YmH$MS<uVXnX_o);f?9S<>jP3o<WJh;}9xN}4J
zeCgqMY1kCaYsWECARO!c+xCqxHkPg~|2ZHC)>XfbD2-5|VP5@uI|nZ!0;7#wsJvk0
zc`)RnD*>}yfkE8}Svb;<iW;r@O23r!<XjU&DxK{d%VoK;JH-AmqHz7OG<xCd(Ld|M
zY6%J2>#r*hR?(LVi~CAnw-ADF9(<<d*3g-+JyU&pp@g3C(7@cn{WCo@@!H?U7%3E<
zZ2EM^l7hI|d`V_E9t_T$d!MkE1^2f_J#7l$NATx3iI7eye8`i%cC&`m7kHm~oN(eo
z-oaD3UL}m+EcIsS_{jzX^TBB2Gc=rfRiT%DMi#3_RzI8ju7Yc?4XK=L$|$H(-tmN-
zuRc_($&9s$qW|T@y5ssJ4|ntCIqpZYnDb*#nw1g)QD+#lvVqj&YTi-DW96_U@NO!%
zMHsUpFr{z{Kv130NAs>YBDJjNxeaCTipBK;51AjOo6y#sYmkL++NF(DUNWDhxYVxD
zmqvNnS?cO8Nu(Q{`|<q_6;k((%XKzMV8GtTbNf#kKIfa=-ajsdH8~zsx+)E!(-|^L
zTWM&cyuZUUD29_ka=azAG9<qewZ1o!26|>?WnrKgZVoV7(E@4YxbzdXJ4426MA88x
zXBvJrB^)qlp&{kwE4M2#5|GM^bq_a^L!{#1kbsdQzARl=V!a}V!(JKbQd=}I^SxNO
zJy8jaXJ{MEGASrJ5-b>VSOLe|eq^!>DWYL>C68Mw4R(9y%SUB|;eSKEKm9rnB)yNv
zZVKSQgbjDAZjv~z`ZB#}7?44TTeybaUU{4sliDpmu7<Oon+_Mxs)EA6vdVUehGTk@
z54uaqe5}p=M6Q55Y*W;NDLD$@O^<8q%9250ZRWd-VkLNLJvXauQ^ZO=9=@nUq#pc4
zQHQP~hcD_hN9{~06iaw`4y2Ile(0tbCj*sWsBKrGqR0W}S5cn2CK?dl>acsGlr-`_
zy>o0nt%xi3VqTwm<RFxAP<d;TFkYF+ui$GQqU%-^zM-<br$4#n9up}rPLC_iw((f{
zMNhl1{RNBq1fkcjH9K`+o>+NfrZ{mU3);Ud?HAEw!rh0#?c1AqN#43-pCQTbdW7ex
z)BbWJ;C1{0*Jf6Tv9*Re>yi0phsjJ!F*^<=3Jp7Wi9tzo#qVI_2||0t;ApTZGyY`v
z*cH1^5;ew*%y#BXm>+E_JG7&V-kEs)MUb%oiNme`l&P~L^oXgGRss_&GU@L*PB9^<
z{mQm`O@E0C=i@WvwsON~jGeo}y^)@?cV<Y)a-66%Og?yz<OSn?-I<JToFI4%3slmQ
zmI>=1%a=|HywG?*GhZ?}NPl_dLR;MPF9c2KYv#v~(?m00z3k&fU9?Q*iwb;E!jr;;
z){A}u5Z={#P5QYIs82!|xLhcZ=-D^m;iQDf!PcDy`63Y7ZZ}lDUL4ITx_8BbMX+VT
zr}1t&InO2)Z~Xd30TXTauME8-<Is4(eZfcuF&W`cyn86f2`yR6cUBeOx7?-OlhQ`#
zkz2>6NF2|8_t%;<OLef-yy|Y@(E!d?tU68R_fI+(ROfTGvC(eRn{#7oz^}6FYNW2P
zt*&Cn4R&St#_CIsrzk`0dydS9KWeZJNIP?klN>Lnxkl#$#gSj~p>XLI4PM*44J%0f
z;L{3P_N_%_d}A%zLZ9V@9^2g`7efRfIe*w?`&WMKPNOWGZV-l<b)C<<VGSrR_R9tI
zDr5CKo}n6&C;Ddp@sij9Ww0N5%+YjJ7H)BUn%39UaewXbv568zWZSB^hLXq6FGdO^
zb}K=^i4ys<RtM|fjs%#U)xoW8E7~?GYa=f-S;b~Q**`TghpOz!{Na_1#dUsdu<W8*
zjOa<B!pv)XaH<@1C^V^IaV@<35oT(TtcGFPD!*tORphWrWR*k<VqV>LXXPpt<j-7q
z?iE7%AZ|VD_C92YyMj?PVx=N3)A<kXUsA)yh(sGn((m>C$ojXhrj)_#zT3x5UIjC|
zDOnF)$@}k}Y-_rtjJww_pYsn=!VcD7do47S@Oi&zgS?prc5mh>zV|}`{^8>1j;;Jo
zzbMu<w?LVtzuV>S{NvMex?PtKKQ*9_E)(Zi@2K8Nw7dD=K0hmj)o1#9Syl;QeV75&
z;Kc%w-Y3R4`;gQ-RM#APUB!!AYP_+Ju2b;XJbI6BKL;GgH>VVQ6UB}dYd@*x3Bv64
zaR!<=H#BJ8{c5d@WjWN#DORr+=m#wueEgFp=ue_PPS-tHpeJkleJZn@rZ3N5TIo2z
zT&B9qBRP<9n!fL1u<$A7KlIc(UPB7$W1w<vW4O`qhyFn$^&yKhL)qk=7>VYEdHNau
z%RkjxDhTCyKK<USU+6b`>a>;1|I&T;jxV*`?4rk%XT>%K&(VW7$exDTG`*_vu7}*v
zBynwFRjI#6FI{f=lB5PJBf{_Bx-wKXN2p%#j5a>Ngsu82wTEQ|QONA@Y{#D=Vh8<~
z)gwt(^u7#e^Ls9gYu+)Br^MKyoE>{?w=6R@as|H|{muZ7&OLp`O#)yDk}Nv)Qvf0c
z6(=pU1Tc6lW+=vy8&40^NHcBV!yh&4jvOTl><+yM5I;<XWO1wcH&roQ6soG`Wt7FP
zf*E=$8DHBM9sLtJ<#FSCPsD%p*n2MwZ^xJ^W7&Lfs{Kg?l2_~Vv?71+UdJ*@@IWI`
z`7rW_ci9I*-&VFX#f=3g2a=9Fd^=B^P*E9?SvN>bq{c=jl04<wiSJp)k0%JHui4En
z6=#WT_iZgnk;_Ey>LW!B-`LRH#(d)?$zO<s+`kdTsEpoHKh>4$B%eDKo4oh18ff*X
zdzP&Uxy1{Wa)bg-_MhZLq!MhT!zpVS6_MtYee_f^4S%-kNOPW3gIT#SyEd~j@+aO*
zMHR|pdpz}!bT!F?$jdl<mZV|Xq>;@(Q65`5&9^d<I?iG94j!R&UF@~ja8{U9#dCv#
zFU$kl__=qjl<PY+4CP$bSYb%w(<$HEP6yO*Jav^@-E9@@V%+WS!K?wp)l%w)qbdm2
zDN3-;mj&Ci_U_npIh@n@m9X(Qxo+QCJz4ow9z*mv!BzS47+k6HVoi!VR1>#d&&eY5
z<*Rz5>~G0=s^URZLY*S6>Bv<zCa54OptAAVff>5+sjnjeq0D841_A3g)cmF2-XNUq
zv2Bt5{zc9EpDl}Y9@Vm-ms-NezVhLG^al~-M^A^9ewKy{+TM8Sh@$(z&`%d9Ap~<?
z%C7uLMK;UBt*6@Lkm`RVfHy!9=Z;s_hwmllnWpKf0zr9vG_E*#<A^-TTWlR@ysUu8
z1Mhy`e64`E?d#<wO~kPy#4t>Lj|j$Jj+~A!q9QZ)>gcBkNnGXEY)v5Zgg2T6S|d{8
zc>KUOB!w<S`t*)Ybgq-Zrl98~r%9h)ll1ocTS))FmiLU5Y*H6x^4WP=?Vbp1dUtvd
zp;Ay>F7#uyCVg=i-t7_UAbks#rW==Z#h_oodaZp81=})I=llCeJ}6jv&1*kpJY;av
zGVD=?<k>@a2N%@9{@tw2UtbPSEgH5}u2ROUdM3pbLKW$r@2GQZ3h1Q1{IjM~0_HOd
zFPjf4;_!T}M8C5Z^gHz~Nq8$FF|Z@Fmq8BN+h5ADMk<13q>(>&S{b3&cl`bxtcb@&
z-vf{9DI>*7e19^@|L{z2*oqy}n7jTtM~F=pA(V>W@79xgnMr){Z&F`q^%a`cUnhs}
z<I%5EW)<-9mij8XxjgA7X4k1C{a^`uzI!s;O5=@QT=!p5NqkR@GYt2Z2lHZg{^L|7
z@QCt%t`Q)4+0v(t5nsiS7c0@eayJb-otl)G7)V}9TJ;AvIX)TA->Xe|E`p)+_Ip~y
zgh8#Du-rt>lSj%XCBMz6V%PO{skcJPNH}9=TiPrSSH8UH%^&0-vtx{X(@7e1%hrF`
zb4mkJS8A_q@g>J!$na4KJxQEY`E9ZNvLRfhSDpIWtcC%<A?D%=J-Gd@kkzWwMX1KP
zy&<-wzc0&=V=IFOIBJ=?X0NJ3OECRMx1b&_C56)`H;Ixsq~~GSBn{NE;G*(A6);Y$
zua4AEAbB0mm=DjS@k8M2G1o*9#2ejiPL)x_X10sluk@>cX}^bxf1)bpUlt#V@>9ak
z<$e2KN66zMtMa2RQoo+tyYfyUzZQfd81wgD)B}>(gXCAM;O(L5%?Ugz$WmGD^3?t#
zabewQDYwya;;XxzhR?okI(=lfOY^S<;<UN(M?#JjJbF!$<u@wnIorNEzuy!~9KE5b
z(0X!&xT2eU^whO}A}jm;o#*P~^t6Jv&z2ne=$j+|I_qJE*tb~HWD!3@Y;uoE{_EXM
zMAu)rdNN{?=rL)wazC0we0<pXm6>y#sArF546ZDri#!dOz~6p4(-zJsR@W{<`SwwF
z=`)Q4|LSBO)$tK}ocX6!RQn#fK7;NiUf*WIH}_=tExR|wGov&X4n-!=2lh0+lxG4@
zb;)-BO|!&@TZ7Z0UX#Qb`x8A!+`H)Bjp=UZj}OzGT)xdsliJFWx#Jo?Kd>RniJGJx
z(M)`NT$@0>y+C*;T-UKJmPKKWNoxm*L-Ja*e_L1!AVo(!<;su>Zb?58T^%lm4%PsN
zL>_4nN|}6p3X*Vl2u`}1M)E>=o{5!rl%OD+Rv19~Hg>o#kYbZGI<F<2ZYKSBE(+SG
z!blxH<H+dqe$rR5`jO#o6L~3U{bIW<N|nQ<BC9kdDJcZF{CaE9LcvYL6G1zIXt@97
z#<ep(^3Ys*%6LbBhTHppu}_!^z*jqgc6>w-?dtvNcU3vja+UN-Pe_94<EjbHSdvHW
ztTG<%A$8=R7gs;`P(nVNLq*$V5memN2+|>aon5^L)TAaw!SV83?%xYiICje2*F#tq
zMZ?xALD%H)@QcmXiYf|>e%b7HEdNAgt^Uqu7%)et)pxQ)zL};+^A-Ip_xMJicJrZH
z>~1Ea8b>efeLg`Db>DV5zGj7$r__PKcVl#3m0Q*?d|K%hSNJzROO(T-)mPGmfA-VY
zi(XUVZX2chWk}cfyR;A=ZKInW?;EE_3f@pCn0rd!+7#&0|D%t<IBV_W7(oP{=X}ak
z*+v}yJ<65t*h|zC`)%y5W)oG@6pdX+g|MnbJk4{f5C%edUdP&15t-^}GcE5YUcY;y
zmCYvv!-ms3U6R6J%D(Fm+{1*j^M4E0t5NVQ+1uBInGXipPadp4!VV>wJ=E$7M%<7Y
z92mPtfuKyFRNnU)LOWZ)p6LlYSgd}pI@2KtNuNQUQ=L<U%%yYo>eC&>>R8Xx;3dYg
zeH}UJ*R@9IEq0QnpAI(DD+NQoPwJ39=|MAT%grp<p)@e<6j?;izx8-wF8U{(Q~J&B
zgrA+np5<Z#U3*6CdUZ^h@8NsmMo8@X>(-5Q!AId<*Bf&PYJ0uXIu%9~m~A#U-pvCm
zmWOQXrY7lK+X-cXUmf&QDu<uNclXf67w%8<_I)8-EcPfFRhAGRJOlSV_L-z>uGq!e
zlQ2mSD{HxZ*Io#BjK3YbI{uY-aP@EV3o+KRD}Qt!R?Tpg)!mX+e$dHTHq-vK;`%Ua
z*`P$?h0nDtWsUw}lBP!)%D#H(fAZ~PFZ1$rHw?AqE|YDL(i^p8EOQ<lXfF7)K>xnr
z&~0{E5Vj|DRfWbW2&{^`DQv-y`Fk=HBPI$ygp7N%8A?ErCV1hGfjA6bt=~K$LgKkj
z#quK=3&iD{pQ;WNkUr-w+V_%kig<6R={J37gy?Ny-YM$SN1tr_S=_@ShHbw+SMriN
z%(-xfai10m-2Hk@wW@fK&YbY=rT?E+;`6zJwBn?3x<&j>KF;&Abg!4)rblnh(f<nU
zZ0R^h;<ziBm0@e<=z3wFB@CXn(2qY{49~nWK-fB7&vzJP!hxWxOnth;L=)SZ$prav
zqO^QV=8FfcD4}<5Ze^&VKlHPX9qOGWuI0Yo_o!ip7}~nw*}xnZ{I~<_?TjUH)`^p#
zY@mTJFtF#(b@KV`Cz&2KDS_MYM%Mid4fxy7oZt1z0GoylYrYpN<9T{4vt*tM3QnFo
zFmy%{V}fyK+C>$xSNN;Oo^$FrG?*gC?W>8b(d9M9!&(^KsV^!eYk=@HRoNC&Up?F@
zc_GS90d1Q;?UCQBi%}+n7y)-uck4OM!^Fjk=Y?NivhLJDG5-hEy(DiNv?C?!&K^mu
zJ@(9LJLzwWx!iCh>LeGa?A9!Ym1J?BUj6k)wE<kx(rT7TefbAhWLY2SOJdx|{3*GX
z3ARovOX(lUdIgavfgBS>SPEvm6kDMJqb((8`^a@F*~rp&ahZZT2dYS^tQ>wn+4CZN
zl`4)<$H!zjNt~n-(Z%PchV}2oC3d#6p`*oSN#gqg!Il<Y>$ho<@D<y9QKDdqP;c=}
z@atrUb>@i`-`M5|lOr-){WF;GyONt*`9d#of>~$P`p!;*hxjo1AOFuP`Z|~M(SyX?
zgG$#Ndkzfi&Oh*VWWjKDsYYuoFG?624jl>;1+SfpO^N^$o~!y)Qa<rRH+S;$Uoj@K
z&Z05R<`*l*W>>jh>*hs6XTIR08WyOPwprCHaREl>6-KRj@K^0G<#aX&Uc54CH%;Jy
z7jMVh*%Ah5+`p8z!HyAoU#xGsaB7e+{?c>NlWB=i&T9E|{FgBLMC+Lh4z&^q3n5qH
zzxNV{mR8Zq3VCp9ThXZb7EUzvmo=M^cy@}xMO{^u)I*aaD>^<=AaL1wZ!ZT035H)A
z4ogU&hHY_=Y9<x*3CH3Osgf{=6t0fipoF0Xt*)1*B%faJxhBU_8T?Cs)^7eIkE9Jz
z?rV*NAy|GU!kMfy+U7y5<Iq-u%wF~)O)?+1ZD2HiU`pcf_rVhWn-p+oRFr!xRtO2B
zTMag`^I>^JZYlDT2I=Q-U1kcVlEzMB^RZz8oSEBLb!eQ5+L6b9)`^MW=qbHGCv7&Y
zNbs~SH{*tQZiBBW<YCykMMut33ei`;>@qvQNc??s*`shBKYr96yOOeMfe4TqIP0^T
zj2EN%#~;L|2(uMGU3aB$q9FOgNFW0vh~SV_*5v1%eynPCz)c0tP%ZW+{XKVPWw-Yd
zqz-#&bgpAU9%Z6i4y=Dh1@+_^=XF+0P_~S;ohAKS-gjqY9SJF<7amArVUdRd&x%K?
z-U@hNIlO*<kQ}LBN;idXk%ARpfbJ%KS(w`WrtulcLM6&cPM1LilBV<TC_PH(GTK>E
zeNPo>K8r@xZ>8XUQ9EE=CJkRcTs>56E&{u6_Y?OO3PMvNy=F;363rL#Tpj<Tcl@>@
z+L&ZWej|s?c%ua3AHFY;ChK~3G_owlllndXiH17cQ8wJtST_G@I!f@*z6+5#EQGDp
zL>s+%0hlNoy!pgV!Aphs?>hxWk!;*x%NND~j?rkvf`e=*s$Z6Ko9m!g#a_7C&Ob_6
z<ZEo0i6QZ{ru{}!|3RWFYtcPFc$}zJ$_NZ!?xZhVdiZ-?>Mz3n=8NqPSAP*b(xPFe
z@l%BH_3qBrO;yAj#w3qT?B57RW)^J|u2y>F@1a0Dna_mk2_fNQr$_11ZMB{<51Q!g
zVu@^Zd<;-uewO-;b(!e=@{IRfBr}Esmv6<lG2-~~O@cgizliq2f-}0d?1<Yb_*e44
z5TR4bS#X5%m55#Qdd-mKC*sU2D_2dGCBm-RJ4J|v0g0zhJhdqrrl$v(@qBFQpa*p=
zE}8~S)0Ix8%10@+5%$SET0j1d(79i6Mt;=&LHBm)e3=)MPv~9A?Qt8JB|e>#emiK`
zMd(j-XM6GUBl0#&{W6K0Y6n_YL~@E?*R}W`Dk6%ge{Or!I#L)(=47j+AMnbI?T#EX
zW+?8CeB(gQ8wt+YY!pW_zev|_zG%vYxQqbRfyX=$lPO3~GFO1JyHjjdA?fd}s2_Ra
z%7|Z5x)(WgsA%>ntf9z|<I}lRZ4b*b-9v~7%zZmfUpXcwqI+wWeoQ5#&EYdAK3i+e
z-;$L={zxv<nGp$G;JhHcf>i_$K5#2by`thcUDxcAqa<!ybn(~zR)DW)UPXE+4QiSu
z8x-S}G4ieudpZ;mX778@{vbK8?cFzQEuxGYt6P0-o|1TwO?=<>m-2YFzK(LjQw{R3
z7nE1%DZ*i2o!mK3by&yH8y&W5Vzbwg4TXie7#J10ZzHFR0zRgv-pwTceUw!)i>%8c
zUawa?M)K~?Ec4%8XGk2?wkuQDT>>L{l#|cS$icN%E@($CSx+}MxZ*lF{|q_!FvvK|
zptE~{|7$JjOCP1aw@nv^uhG5Z(Z+g6KheXRSV-1A=8UQFcc^1<tzUe{Aw6`rM_Bff
z`rNiT)4-Wd1Dt$8>W!BSVeQb)vplPdpsh;}6`#wacww|{ZJ92F&zr5Wk=6(6N-@{_
zj!NkEKXV~BObz_Es`KursKIE~s<w-T^aE1*_;oI7;P2!Qi84+N^xggFo<i0$F27Rf
zWl2zj?4AeSdHI@n9pG#;X{(F|K~IT~?g}u8G-T%wCh=+PgQQ&24}63*<9gI>F;sLG
zHCUUe<An7PD|diA$zw7Xe>*CMwb}7|+C!vaXXf5;EKd<dOa0fqNL;aLu789QEQcs{
zD&I{#c`!B@uFfX$LZIflqjscDD?kr3SKBOym$sW^Y0s6g!oAK(mRAN&ZB>coWZo}!
zlzDGIi377m{!0BK{mTuxl`pylq+xa?c1+eq9Uf)1XVvoM5Pr1l8fB#nqzJn+_D96<
zX<_os?igM~OFTYP^o|dEOU;hgER*$%L!Q5;oT+&0<9xW>T?X{whLK=48aj@McIuIS
zsCNUKmn}9?&{;RP&!~zImX{st?R6wkPWilr`-lh(_vZ^&UlzhS4v)HO4H-Df-I=fx
z6T@Da2p*j%c^uSA8J4^$0q$QRWp7FR<E3j|n{rALma=2!JE<~I4oT0}W27N<WJ}fQ
zW3u>l`*i>6O43*J*o*%St2oa7?!WLYR~{+7N9XsF{d!1K<Kx^b9)vtU-?WmfbDMk0
zpH<o}2tn<*yqO!ESh*o}@q~#mS(mddU}7~Ny78RWSxeU0bah=jKFWmF7&HHjV18UN
z=AY>&>mwv%xS}T6_%MnW6Vm*`_|RArc12PMuIF=ano-%%lj{AaE=2^?Iu6_JI6iDS
zN;!PPP7ryw7I5YcKlaznP}mtoA!_tQQl9pOUU5(K^<FOttaM>@WxdCQwJd&7h9pnP
zm#K4oqnj8$-)R;(sUi*Lj8j#YOqGz4P{z7pMi5sI3FrF#5X4`L;~iGpB$0oAX|*tm
z9Jb0|&aWyZ=Z~L}v)=8Z@N*jW7$^Ohr(BL#{`f@t;rEq(Nv@TKD&4_|Gh7LLn~5ru
z98Cn4toe#_dKlPSC}bW;^3duG5v&hLoFYeg_99LNdoNYFog{s7p-bVf)~RY@aMicz
z*a;a7M{eZ!z)3+{PI!C~t0aUn&mS`<{boO&T-1qLCk6dCQeh<w0{HMN?s0w%$$v6W
z+fCc3Lyqe4J<d}SY$M0-mg{n3gUWNNiJ1s)yc`M@d(B=pBH`3mq{>(pvLU+T?PbQY
z0Jn9|3m-C+<<VzlGT$+kDeJGVFIV7zhgiWrv!YRA^1$aGzgE2^ZZ5uh8+hOs-L@iy
z&G=+DadC6P$8q*?LRyQ%;2=vEecZA<-H|d*pBC_KnVX-W->^F1+_C=$onLO-mOqAq
z*!}hi<8#|3A~LeYeVY#(7|*FH9Ns)b+#Rn;|0KCc)Un3BNl)g6iq^NS93<a#Tu4~d
zcbWxpK3csW%1Qk=N73`{IziH()6nxYkP*Xo&a^1C%@AoNZ#Y-!Gs8~9!mp`}6*h4)
zdkTXVi7nJKu3G}x@FOXQnm)*jl*{Hbys>OZjGMKORb;@WU|KUVnng%{BZ!R;eiH}o
za-I~_rJ_8pf<x#tJCbY<ub4CBCG+ataaKX>xVincw$5=XIsT75C?e}qp9xC!dAZaO
zgmT7ap0FN5?gCv(PlFSLc;T&HCbG^!s%f`<mJmu+4(%x76hN5stFY5-EV$_THBi%-
z9qnq=p0PK|q*0*XK50r3HyJl?HfI;aIp5=IKADnmv-Z@DAoZ0lCt;=YLGsA@!K*c#
zC53P5q-}dt7;;@M%pu>!aN|&iNL+^$x|P>QO_2TMv^8?xU=KO3^X>nCC_3+OEZ;Vc
z+k5Z5_ukp}nWBiuj6&omBt!{OC?g^&g;Z2zm6ciCG9pxDXJlpXy}j4_XUEY|&+**P
zeU0z<oSb)MSm6uvi@9cE2Ds@|GHdC=28KyW1@%aGeNLC~P#vu^=Wp=GHJlp7EV`d6
z=J1n2HqPAF`ehHZ`=dT7)3Sj-vb+Oo62#DQIQ(Rnl@tD+<qcG8q5}08V)o?RE$pYJ
z%bUb|yO^R><stLf6qXR_)}V=co?FUEM>W6uFgy+D^~k9~j<BuFp?D7a>n+L|>9B`A
z_aqYfX+a2nl_@c_R=XJ0cis_u<lB(Ec<4GX#tGWS8H$gqXkaM)bzHta6DWOlDL><a
zeCiX@JoWR0!2K{%(s+y<y!u62rIi?9rS{=*zFY=a-N<a}rxbzt&CAh*Aw<v;mPMR=
z?jL6SvX9^EHSz(jo_#XDM*%(B9=YscG*G}ca{M508(Va(npO&AfRAF=yr$3ZV5jfz
z@D$IJfY}AAiWzH4XsoL^beGu0k|vqHtSL`n)?A0AbtlX5vbl0WMyC-hoc7V2JWVPV
z-?K-i^Ku@)x<)@96)=lc@QhFe?*GGhnVzVIyNqG0DU4@WBib>RM+8l+*+ZDX16frQ
zqFGGo0b!PU>OV|%+1u~ik339DM<})QZv#Hr8ensyat)h2U18e(as+#{_VD|FA0hmy
z=Ks2IxQM;Io6SCvF^&zr7{Cp}3URK{`_42Dzp=5VlkTK`M;NKtP;#;E4i>1d7RSHa
zgMYN7>Fi}|z;xbW{;RJS@u!qssRwbt@Pgzo=4s7;@CC9AZmpno{9$DC&H2SiT;XKm
z;YR!%KCRv{CN<H3ZPgT9&MjQQ54`50=aV<FruX}GL^rl^644K-7wuT!9M5eR`U{NU
zi-qh2MN+}pV`*`*-%&3_HuWehf(3R33^t=sAN;VKoFRFF9Y`noa~sfofcvL2%ja7H
z5cB~;o6tV`hc2P%FY>b)POXcbtYL-ptJWb;tC`_tPSV%?FYJ(KAt=94$pg*0r`)f)
zu|RX;^@vtgZlG|Uv$6Qf0X2Ottv`d2F2pLZNQ~}7=1X^4jEYfCmg<~WvMI`|1bgJN
zQKEgTi6iK2J0-Lc4xc5AW(CdoAC6SV(fTXkOv$H#^#5?$7Y3-m@#&Ur&bkQ|L?t<w
z>-}Vc(X~Gr)ftSiLNoRIJo2*!AL^AgurmVDO~T=%1Y&4#v<d6xWrJ&r0k!H(qR{En
z{`}50VOX>q3t|hE0S2eAtL{BgKzFajgEJiE{TKMUs?|{6DJ_HM{2=m+4sYe=SP8)+
z>Do)(Jm}Bz%60neJm6~}xGG=52y>qAC??wkK=_hxPq01G%eN9JFBhTwLQv<e^<X*h
zd`ri%79s+rkxpZr=-+wHl$TfBC<e;jbTcxhg7BV*esn!j4rrO|Hmw@Dz|Kcl<3D<F
zFsu^i@){Kard6Nxr(^u^)YBnS5uHP_UU794p*+HIQx30eCDcO*BKg(*K@0+@Z^+2=
ziNSJq(5Iz-lmp&N-eVjP1<RA_#=GeJ%ImVZq4E&rS`H>N-yuEa;z(O_#xn)r`FiSm
zMj*<e9aSm`{>KAhEnh=}1Vy2_<;eqEE_8nPEZLWA=Ye@G2g&d#0jMO9<9myGYrmR%
z!c$vCz<7iIR{b9#U|HZ*cSX63m~{$C_Gidn)>}UN=8hovrG-R32}AuRn@!DMXg}5}
z-Z36LEe1)&Kl8&?k&l<clNS?)_GyZ`qu^n*t~jQ&Zm9~v6I|}2E9zC-Y<Zb1y%d2$
z0mAyS$6`>Qm>&?kD-2I<WC{igg<-?YT)SpQ6s}!x3y(l~xyOI2ye=h5ftpo1tUl#~
z=B0b0iiDz2JQb);O^5pVUe2l(RpRhCpN;V@>K8V*vnw+SBEAT_$^%0c5s<kY@%LvF
z%HuScxz`VIz<=G&TE-|hlC#P3@YqvUxVKB;N`TIrL04p`B1KRhy#CP}6hVLu`q=v#
z-e_NPeIikMf*l@O=eP@w@Igl(#Y$=|50q%HXELU-!lTrL)CX}K5T^c;_Xy>;(nmhT
z)9G`8wPeqFji?a3pg7y(U@idhG!GA|RoOvec1J30PaJB~#Z<$PE*)Fo-xe!D4|5rR
zJ<A6XM_}bO^ETo?d@~nmi2Wx3H=dYnwe~YX&)i&8BkFruUd`^k<;DqiPv&2dc?iH%
znC%FwKPU9J>+_lHv4N-}fsJi78zhfxTpl{j16LFGMuj_=fcJ{&VF(-2Ra$kD{T8@E
z__x0TuN(*RH~-}~++4*sGtP>fdwGagkNy5dakPd@I$4sF1%JRJ@@5y~Zq4DwreSMJ
zWR;lkQ1Th^+vAwl*~S1z4MvD($gMZAWQ1W|>f?WZk;6_a^{BvYW*A5(FsO=H#qPZ7
zB+sv-0%D5dSLbJzF;5B}X7-n?;ITh?tZ!r(`^P~1{=wiDmTzq{cPDTMZ*~?QzV><s
zqqFtr?YYx~*|FW!E!`jk!PCe6A2^djKrlUT6bAv=7T-}gj4Z_J@Y$9$76#CZFp2AZ
zI)%MjJ}Ys@avY1x2?@4PTgNINU7D<rTE@nPc_iGwZeSmqokh*;w{gqI3){8*^O#rr
zk3uW|F)X4!By)eY5o`6$_&{-&0Agm>wsOTc@HmqHZd~@*!B>M?w0_tf;ab|>ySAD~
zILE0oRmn;Rc-+6D+|W6K+Lz)YW2Xn!@yIi=b$vdBwJos;?-^xgad{>E<3Gsi@sw#g
zpEBk>{Bdd0XSUFJ{Pb<i-dVL1UluBN`FUm)XOX)Q?d}+b9Y}8Kh|qCDT${&$RrUxz
z_T$xusc*9wUyOvpb)!K%>fQD4yDH<@sCpieDFHPQjOb`zHerT#=g^0tLkHOP5~p4R
zp9yTT{o0w6GC5eiw7KQA$z-h5A@ZqL>I{B+jBIrEZ~=?`k~1GCyNr`(D)k<#nZYNF
z=i0;H&fuK`ZKJ0yuj2F{Dw0`cw(tfa?-1keL%ep=rxLgB#+AIz|M-RS;B+G?GGeR$
z@TFsJi!t|-u%y4qq#74@a2`CJ^5?Bdym9-=e?!Emcb}%XX8MmGdSnbjc#$7n(>%W!
zphE|LKR#Yp(xL<IqO?EHWJ!TIW5f3i`hBMI>OHFJ<c1yMcV;1x9Ps7c8^dr{R><$7
z8CE4Ds7)K<x|5<w2b)Rm7ulH!LG+W73tz-8rY-4bkr+e_xmZD@9sI)@m#Dfb3}|7A
z^A}z3>t*c9OVTe%<D1w@O^(a7-7dx;(ynSWJCA#0cipko+`xj}I6_T=*RhwAWppx9
z1jrXM*&=hH0HKRLf=&1gX4~`lXCBW!M)+EPOUZNtPyE1fql}ReS{}Zk+*aa&NBNo!
za&jcFkmh4!!N33!^X=-n$XBU9m+aw`!2zr<NhS_(A$aQdm*GJh4RkzJG?cGJ_a--a
zuQ&8eKw3Pd9C?okDCt)HW=?a#wdRS1qW}iDAN|+K;6G}ZH_5oTcN+1AtjjOz39`eV
zdHO-&a7G}fGr0LWm;(r=ty;C~xZqn@*zu54T=0jYyRWXA9x~Z^oR8h*g441tN8-`c
z$WL>wF%n1pjh3Gq_H7Js?{b6(*&kkrdwa{XQHUL|l|X$Be-_mL58~jBWdZXXzTx~V
zI(XqkOnkhT5hAM254EBDQM2#2Y=;R3NKIXAr9k^;MdyOSX(=XXy<9cW7R3b=XNDzL
zvnWA!WIcA2h8~UwI#9TAAimF^@a9XO>EToE&EI$)3(S;sO}@4#hT+r-^|m@eXerf`
z`oJd&3lj^NaE>TgKQP>VA1eS}$!hhAip)SU(s?Q|gCDLmWol`VNrJaT#(i=EA>fP>
zy50Gm8~pi-Q=dq)!FfNw*k2-aprVm9KeEaR7EjjGxaTO~*u-mt4Ju01vvPSwluZw>
zip%QX6EK5{b0>NA$S$V--+lXSiVZCLh|bQEl?94l%YHE%WB@O=-e)&gSz(9LBHgeB
z@qW1bmrhclzIl2<f!`Y{u>LzTnzqjXF9tX<-Dqy;-(9LCIKc`}^IAl&EAv9)$CVt>
zCxq}?^}JX?9~FH0#yJ0-R|Y(q+#?oI?lEn`XQp6E3{F)#Pw6R(z}2?GqaA+Kt6EZ9
zTtYh5Z>y@>atTRj=6#UF^H>^QTYJ!T<B~w2ZK7`5DF!x4zyGr%lY>XaO`8N(@(}dg
zEs0JGoeLx>Huw!>!M2pP%g<5>1TuScm>v0H^Y-PIq&{JI!N>geNgm2OWalqbBOPsT
zCZR}+NDO*!SqJ>EWdU(gH`^;dB0yJt*O`Z3076@B#Qh6Ve%9%7_?zFHu>NdisVA2W
z!fz}8A?9F!uwenFGaw3SZ<j-bk=}9I0BZgTqy9r`fJO?^-<5Sr_ep%kKz)gf?@6x|
zMAoV{o!pf~dDmJt5(#nm`#|wjqdz-vnc9BRGvbHgZr>}RUnL-EVi3RePy%LiPirn_
ziGrez!24wv3E-UWxa}Pz1kOdpZhC)&A<tHkZ27(@B-rJ=BsCKQamvUBopZeKy>iOn
zvXvCv3bhcCh-8JI$FAPrJ;x4;sRoK}4@BTuV%D-gFv8pEj4gAZfw<ATx6`8$Kgyse
z=qRKSt5F}~6A-3^bWsoL=qn6RJCJy2KzV?DnWt%2TsgwtQwk<`vN1rCW1CZ<Cp~Ni
z`j%><eR$)aiBTxZ-|h^n<Sf`zK#OpGV<TGM92?#w+{@*Lh{%W2RzoyEE0F%3Rsx-m
zy-H6`KjH?Hpm>&{X;!d(X-8IV!~~N=G<O}y%dtD#zuG6yui;CaW#m<c#I>Rvmbat}
zR&b^i$%z2b6+Fl&#x_r>7MGZyxT?>wj_ZU8t=(|n!2fLe{C4=cjgwK^HWL#~VI}PX
zo62!(xY5_;k*T$EtRUqa%eSfl+*5GP<?-JM{J#pNlas&6;B&|5jgiWIoL_BqFq@3H
zcDPrt(7NalKQm})zf!$`d;Rz5YvPA}JY$c-+>_`RF1|fA&1f)>mwy#5HyxV6J)GJ9
znNQB)BQt(!x&!05U1rEZ2F(#p>0yv%7I}z^sIBR9<!#~>Eo!F@FCXHs$mw++*014=
zgkK*pKOw30S!lLO{YF)r%YS>7u!*2nRBdu*BaEPS%R{TN^8s1yy+KcJTX$igx%7(Q
zxH~VDb*_o~p!3$RDe)KsbpF2J_^QlSP8_t2@;bK@If0SE&7A8i161ckvYwtK2U$-M
zkArvtXy$N~JCDx8j_%=CjS-JaG=@@+DxME0^HY0ViBVpjQz-P?q6l~h>`GmkV+PX!
zljQj;Z1A;KfO+B+Equ<J3T&rh2D-rBulK)F!Og|zR6p~OUldpRACDssNU0Jqy>MoM
z$IW4*dim^-|7)o6K#mI7zKx~u{>KFsH;7N1|4aepRLg_ph`(S+X0T|R%m8chX?^Ar
z?6C3fqMH9BE~w13cH+Lx07aMlvnKD+!i5Sw(xG-{_@PW3OQXXC*&2C2o@9{0jf)o&
z>_w&FA@yt54p|xK#%_tt&?`gT%Z2>kbZYQK`zVC6Ukb|NpVq`a7lBLK$#3mZ-j+wH
zTqWK?4t&+8qHR{hV3v^VL=MV}3(MVG9<&w%x~+g68|2$c3zkQO<{<9NuHLD4+ETES
z_<LUi>7o8ZYaa%lio%nuqdvC<3Am2e$_4RALs^Avrg8)yH0rWll&FvdVkd(j-&4Zy
zC^%1e%vS{3OLSOx%TfMBz}063`A;v6Pe*7Y9p01i`Q-er47@LY%jKD`0-aab6ln`3
zK<J1pz)_ADjz4$sjs74DAA~RMB%~v*i#gLPo)Q@dG$XD3^hgX!FLS(Ij!}Xc8r>Ud
zXA~jl^P2nt%7M`*bX*@P=YxAi%KBWC0?_I3(P6ks1XeVTZMRUffVX*OpYI0&)Z5P7
zACnS>3t^`sqa_8vpl`B8c~b<^AFZgoKY=)4-rhxP&yY^Y+O+fXz8KsdG!Xj!nG2HX
z4LB^VdEwmKz5M}8w69mK&gFTrL-|6?`#Nt?xWFCptP}Oeq%CUBImx1ZW~=nEJM!yH
z-9t6RSq0#XjX05X2ospTxu&{-cmitGK812GBq5cPo_xtm5Rw<T$hq$FKo4)D)So<I
z2wfluA}SSz)?pS8WkX>&gVW$Ykv|ddE<<1xKnDhFOt*A{xL{D>;;Vb1eDG>7kAMl?
z%RVv(`c<>>!*1xrZ81C4=V8n_<8zN6Mrasr@*rKhndpjVrJD#0CUr2qUKfO;)bRW9
zl44N!aXMjShY!5_%v`fkU-FWm&iV5Xc;TW^_dn)Wf-sgp{OoEl;zqvZvQ8`H0s6v}
zy=%V&P)@q(Q#2PZxZ8cF&`uTv?BVYsZ<Ocu5i+yc(iQ|W=ZD`uv5UZeeLp59y~F|Q
z9;4W}DGrp^=}Kf!kKZs=`%+6b`Wy^RS2Pg^(4U^4{{EC8d@x8!Dd-Y{C`%s$&Ms*<
z6=`L3;(`F!{gS+*f&5?k+>kBi0}(ilJ)G<QB?csZSDp$}2*7A!p>Zj&LDOTm{IW1~
z?_RZ*DgGn|qywXm^w9oW`yxMY0r9YW>c0z&JZ6J~g|!JCq>n6oWG<<`C<MA40tvBZ
z!ay`C)uU@K3?lL88`9^cK%Fu&1n3oD_ip$5;^Xr0bTO;2%1;`|p8P)IME7O9XE*0#
zfC2>Zvz*C99HRGJlV5!|P=6|p&2s&cApF){RvI%#`-WAHZuSR0_>Eop9EpC1ZDjJ5
z;4T0Tpltc-P!Oy=^==7Ri9wy>XH%CZ#EA*K+3?mx2wv}qkPSXWxzyG=M`QH;+zOr!
zUK~R_0J~5=BSle&sdbtoLL7-an=#wNaY=9rd+3q1BMDmpMvqU7i9z_8{q7Kyr#n+U
zKK{A{^+jeFe)FSVn8M=|OsRB|K;gEg|LQ9f%yql;SyFJra}V*l5GQV!O6Oy)M*CU6
zJaj+nVg*i_-fzi>ccN+Xa3mPzY`6Mp2F5$Z;XZsbx_5&cM5dj8X9l3>+4TpbbQFhs
z6k{JQmWjdVUn7N#6N0c?l|Waf!3zW7Y~#l?d7(|7{+l(c0&r<Q3p7Wclb&0oA}C)P
z_4uwC-8Gj+9Kv*BZfDfv{mS20Q6~%v+-bM|GKxXtBx4)Xju?oo8=Se0)&)riT(0UD
z7i`Z<#LtgOg4au_<Cm3%p-#TuWC-z2dI^{h?lefE^W@#RO4JWuF#5FepiTiCocO{E
z<>i3VPo1+`N))y<G%bp9kp5x3*EY_N_>aA&Cpu7naX>hWiYb)}>N-o_><iO@(|&~Z
zmncfWW%SyLFYjRXqldFG@eDxSs4-`N{22Mgu1SXi3ZRG!NH_gL1#g;O93OV1f)k=F
z8p;lw@Ga{?>!~d!IGU0%VeLZqf&3qyeD>sERD%m-nUTY6$#w2G+#HDc_g}Vd63Q2Z
zwV5p3W`ds=vbAt!LI_?LJbC#NA6WZ*c_R?V0$G*QSsm0IU{5EqOLUn5oX=Rop$|36
zy~MN$39v(L@}E1(56EFGhM0LNngKxQfs6<RJ!D6TYDLsi0Z&MF`;T+fpnZBRXk&&B
zrnq|pKLQ;zJYXoeSwIEHr@Vg)RxrTkFM-l*XEM-I;g{x1Falwc=$hz83~Vm83CBCC
zgRXUcTQ~uLX6b8%q6lrsbTYBL!7c$dYs2#rXdT;ql-t7XA_aZF3U%6$&K54`<s&K~
z4JiT{r$;uVfr?Hp>N@JrgEPOq{-^|u-S3xDR#AX?nhaJmbgooSAteneF@ykeg%)|b
z<Iqm<tb)?h0PZ^Oe44qV11X;VCsVU^k=|6KYqy2L*T6yFup(XX($D>I5plnk9jdY$
ztTjP3*|Lgu=oqYBx+2FQg~8ZYJ2gWcMF@Btboy$cGV~=9Fg`~d;pZz!v7ukpp|+^1
z^we>EAen0YnRQkjUj5J%qVrOQ-gD=dd7di4mDf5}^699rdnDSck;D%<8J3s)#rff)
z;M@QHp<H_fO|6`^g9v;R%*qWe69mU*%c%wvNpL14d^O!72IshgD#+i6L+7O2rLj#R
zppAMLeIir{)JHsD1rwv(uPwRPOfu@_FxU=p%!r|WTw1Cmn;5)c3R@N|5C;;od)a9q
z3peh?Y*?pB!lY_`bbqD{^qs2R<h2%t&Dbcr^#-Jqj@~>IJ|zq1Sd`ds<QE^SlUSdR
zM*UDyg*iRsvuECpdzp*!<Q6&lBQnSbE%<C9F0{@HhQ>!H$aAS6JxwXZ6y>}9Rfd&L
zBQB__0Fiz`7AFv8sCL_;bFPT{TgRAGCOCa9D7Nh?6G%F-ZTn?$fn-dq&1oeWczE{M
z@V69{qjO1UHf&{s(U-(^m(ab-?gn{9RHzvI$H4FY2l?J#3O;7#G6{oAPcq*0|DNsg
ze@eorSLj-0cc8q)1$yDG`%h3Grk#_cnD{^#q={rx7Mca2hur0HDe|>x!uI`B9&m$-
zIqB_N3TR!WR@oD5;e=p&<73;%Cv?_h?xK-JI-8Z<M)O-<*yWd)WB-G63YW!+2INP#
z6Z}iD>JtU2W(CdoWMMFBloEGCd?ap+v&BwD0;EY^GM)vbL#wpMS)CREdKr;R{kPC_
z^;&cGwGe_W_Xgcv)MI+}W1}qXF7nO){737Id}4>X2ujKjKH%3rVirEe1^<YbDkIdy
zfr0XZs=c@%MB6;;3qKNqesH_CJ0T3)q8?*y;+&9Tn35u9EdsgmswI|@A|PUsOG$u<
zgO^6ILFa)el&KgG7Uwg-Ykuc{o3sL;m0%iutzHl=yJ){7tw&tckHo~1s6YOWE&nGE
z^5xkWS|hRt5ideetGWDwG}LW>IA+`=3xQARe6shY;gjj3NY!>3$iJelQr4ynLFtO@
z^89MBW~f?fgU)ZU1TituMlx`MbwkVjJz8&n-ulrbDi8X})8|Fe^H@_*Xt)<B4JUF<
z?~j_xg134_l+RCPpub+hXlx?`-uXd|pN8cjBZPu0URo0I{ko}YQS^B6wYiQw(w989
zsJi13XOPgGS8*m0_0aZtNk?5d;3A`!<`MdS6q~(Dzr=8ZRZ868XfqEy-})-r%gPEB
z4OuqV+IFzXj(Zc0cPT)NUQ=8Dh#C$bow!C!j{2G^AGSZ=V1#zF(AG0ks4rMp-m=|G
z4i!YPSxz@mp6S>5o;QdStLTNN-z{Z@7mq9I#79}+w(ey5d6ciN7%EAiM0%A-N?jni
zIXd@8X89_je8>kYo9~?{7bVQ6sJh30h;?n84|Xr0h7+mPo3Tt35b0@=Gq<#beXK4b
zxqpEIJd=cZyokwwwUMt+=m7;3EQ^;rsG$6`9@jmOn{1HFP)~aN|9rL!iy6#1=>HFS
zDsS?c8T@ZmZ5MEm0ufPIgm3`^9GVO4tZ`F9;W6Wl=VuPF$5!hLn#z5cI<Z<pv7tP?
zcitB&MLLgR%LV!97DljfFdAIFP7bU6$(^n0)G##q)ZuhA;-#!`lXIfJZbXt%rMVvq
z+^8sbWO~d9FFspHFta1xvpXBF3oQ+}@P83K`GFjil4FB?29a-W@z_E?U<Xr9vn<Sh
z!T^zpS?6Zg2*L1}VMi+3$2i|vem(q224}ciXnIlJ%Jk~mkAS~4uzkn+E#)CO(rsw#
zf@O}dWiG4RtUq=!8m3GmU5a&Vi06^2$jfcaS1HP1>md<*2psRFa9GFI3olgsaz%7-
za!Ojor3u_CDQ0nUZXK&ADZA1UkNQM$4sU!PiUD7u=U{WUFz9(q+jn$|0D+{F^hB-z
zXfGyl^9_l?LqnBq71R%RRdvBlP;aXAc*cOnEp(pdwOGzcVh1I~-bV~gh$9S?uQa>F
z!9=ore%lxE_cXp=`R2+4>=p_$MyQvYfBjN1Ly0te?>+uG-&PQ&Zi@^v&hdf&QjvD%
zN#svYe{bNeWdJ^D+jy%c5jZ*h#(3y8$|X$;{QZo0Gh6{L^#_s8_j=~`8|_eL;HTYb
zF-#ByhRMYC`+>rsQu;aF3F${Y{ycGf?-3V~tAdpR>3grc90rTlgn;kM-HJ_H5pbHd
z#5)*8py=v(4pw^sDBR_>uWAuST!a)n5j}r5!j}gOov7CvUo3Ong&2%Yo=rL!5CFq1
zj)mpAZ7lpnKkJSh9i%PsaZ*)~f(3hJttR5_Bm_o=Gn<pZM<P?v|8s7o##>LFGoypY
z1{{Cu`KjUgsWYMS<J53gYIijf>H6LuWX$yB4lstT(D?_8RKOS*!EhVto>kU+rYg#G
zP)O>X|B{UqlK;4Uce7&!?|s!1yL7x@rXln>0R1jc{Sk;@wAsh%6#k4(9FanpYT8AD
z8%U2Udf&Z}Lk;=^`Zp9_(?V22*4{5cA`mP&>L*5hy!%R0mN)E3k-xp8d!d~a{#|>+
zTiZzplTX<*t`n2MsIKY5mP=&t?qOv^X+I&H{K4Ecqrn8Z&c$LvTf{K`_Cm6a1q*bp
z9#S1c=Ur+~enxY1W_aLdmqkFx2{Fd@dG>jT!xvDXK>wKo4D(v*MhaQrKdbvmDXI)$
zHgJ!3c2W>V+KDvID=>k`i-@l-vxM-ePUxGN0X>LJlCg3#9$~k1^3!_Gvw*~K{Cjis
zeg{80$vetI4aejzm)E&40&#P=^6flUz~2drWz|z6jz`?nk~UV5sPc1n`_2GIFK2H0
zYmkDBn<BCFmm_S3$z=US2{)YG6}v~`ia2!3{vpI!WYFP#B`0}=7|aK#3y(iX{O}=L
zO@0y@pg&{bBlC(L)_R>t!uKg5^}0Sb`jrN5CgLXw-I;*(U0A1CtulN{kC`93DG4u`
zK9&hmDWm7;QT>TV4hUI}o2#?Q!>I3oZc4NOd}<#}^5_&mI_L@N$yPzQlBz<KD~I?u
zLKn_TqjhZ3=a1uYAu-rpFVcIrjQGyatZgdS*?{Ksma^$C;${k2k3K_v2Gd~ey2k}P
za6|3ncZ0Y5h`V^nTL|?{wrH+pq@mm?&z*hG89iYj|3T{h0C8`_g=NKLgE(PyN1?mR
zlMBYJ-p`*7WCMCHmS<f$Z15!b=2%ai2t2+dcIm-4P7pe2H*n)C%9-ycvUphv!lwr<
zdr92Fka^icSpuEUhV-TMtv3*FlQAp7c$FJATEiKBjj+NEdWZc4N<L6`8yh&(kb<tO
zXwPev0y!d?*Cr@WwC9s8M{>jlGtpbFCq0?r`F>AtoC7Vaa%Y@0N9*S+%QrGkiA*3q
zcGf@jB^#X8D@fTfr9$hWG?s_@>NgDkWAfjigxfqn`SYU5ftmi77ndgs%Gm~z%?GSv
z<>bDq{Ul6Kbr*U@?vcYUs@EC2s0YEgnBKb6KnTNRH}nkDm$A>p9SLkm$M>2Z?kHI6
z#*a0}zSuy#c`B#IX37(c@Um-Xn-y_WLVSbg!amT#nft7^RAuyF(P3M2dwv<?dE#rD
zcySk7zHIbbXO9@=fcY6MZczeV-t9Xk$ge3!+i0sXE!aexSqQ7qfw3M5Nk=Xj^vMg0
z_n>_tY+x0wc}G~o5(gPS?;ghE9a0(^O$=$lBi4~46WEMeVcW<}CKzn;iGF#39sD2b
zydTS=h8)d3kD5#pkkK;GPjw+fxv=ZJj))ijHEp&y0Npc;FXa<nXQhD(W^qbG2{Kq0
zRVOd*r-Whue}bR1=t0MyWtKUZ1=JVVYW?iDu?4#}vDhjqxZQZ-#Ayw3aCdXf-mWEv
ze`&4~w#Cd4Apdyo0^;<wTG!6-8I!_Mt8LzSYbFTR-5jnor$YUMxtqfc^vHMmNaoE-
z0-h(tlun&xgxc$GJO{2)!Mv^!qZG~v#qPPo<3c2W+QL;g{8li*?p(cNb_Bq~zmx3x
zkqA_)`mRpb3xP<MH75;~JW#M-KkhIm1ykpe3DY8_!TJ7OY1=Rbs9#uQp?xI@A+t2M
zug(j>$rr9Ic4#ic(aUO<!#IAxzReS@y%mN#J8g7R#;A8{?OJA~g#7imeDZX}HSW_H
z?INM%1^(qICEL#uz{=RUcy?46w(41{tA!E&ckZ~j9j`oad!}@VNlHNfdkB_&Dg&Kb
zW^Gjo>_C$2<r!rq3<cjGraeaIN=M@Lv_S*(_u!c;kGcrZ{`NDv%b*NJM!Dk|Wr}b+
zne3xsl?pVUr_rJLpaN;H-_1R<QiN+%0hb-hm0@*CS)#>54LF`lnk|3Q29?OLa+N<C
zh^yqjeCCfLILSCSz0V~^_v-M-hi4ZtV&-h}`}b!tu>&!32iqx(pWl=~b)p!bD_7H0
z(dUHu5u<dDkK|DE`)<cKF7$kVS*it`pTaz1%qU+eGJt`^6p!&W#2fwKQU7d<3?{ZV
zdJGJRL1$pP+}e@=)WxR?oknQjx|Q_&RU0Z;4mo@hXugZxZ}+$Q`I84?9+^Bm`-mQK
ztsm#c%2Gp~0nH;*oE2^h64g^8y{3tO#49I(4@$#?<FhyffHqhTLD0}T`t1J6=O~|g
zBhcj-YdAObK5X7tzl(g^{P*S!7a1VS=XRRo4I&_J%%p2d{EfY!KBsl^G8M>PT8pMP
zrh+9g9hdj)<=Btv53J|+7V!X_rJbY*<*WE976PWHF~^dv3_9&8Y*noh$AbxgNXf1%
zLU9iZ8HjYV=NiBoYNcYrES9mofXXek(?9Xbk$pO$#x2~IiCOlM*b1%{dh=bqD|>Bx
zv<IovB5UoRTkOeae~{O@PQH)UdpLpLy&3n%-jA-9CRgN{y(4L@1#!s5GSd#MrYOpu
z#HbM)UQL%&PhG*zYF~PKQe_Mu8=ehlMC%Q!N$1DcX7jjFb#(O=&jTFiRE+ScTg0{0
zx`bU!XK^W(s905k5o~aElTj9}SJDn4*UF>FL2^qV@ORr=ytE}Vd9#!d(nh#%S{7Gg
zpS#{t?pJ-nysY<zuMYQNarAWE3KeZwX4?HfnZ%>`YeM|r{WO&SaQITqoGc69{!&jS
z{8fZ=t^t?uSS7@vu&lctr3^f}&&zUAe#qI;rbb7O9|Q_?-SyCY*TL$f_(?VakZL`8
z<xeOKoH<0(1drID{>n$+@<`MVR+Gq#&Otemliw}k5x+I#W#rSoQf`nkveD*$E(NCV
z>Mq&5Q-aYO{SKtL(je5F+kl82pxh$(<D8%%{1FeHQuY^vab8t|79Ux-Ypwo>Z(ImY
zpBW#JLj1$Y8$_4=(0Q?2<ximhA`^7B3T1bpUL8xE7IO*@>LH291$3hQH)iKcjaLCP
z^psI$77Q>$Ej#J7W;hMZ5rv(JMEkzH=W|UR6)LFmxw?3r?f?sTMgdQmy0JGOe{JY?
zuVOEK1(J8ZjAI3NjW3aY_>LP9nWjv0tYG%Vnbjtnq>#AIDSh=AD<m7tjXP#i0fo=a
zFp1}fm;gh>P+DXIMr%{~t4bK<JuK>83@(tvwHOzUTmpN1HoUuhhOQBhTKW8i&Uz0c
zRA?^#q9Y7$SHE+VpHcv)oXon6bkx81>S=l2EDY*>P9>4Y1VG}j(JaHC55DYYaV|$8
zKaN4@uP{1K%Qw!%aFlUF>5{~{7y-&hJ?XhT7fuZm{z7qD(#$Y&;N{X|ObJ;-xBRM|
zSFp6fpgKpr3Cy)Y)ZkOuHkP=OwN~wf&WBc?y0^4eu$TlsTBSRq*p<q7>#FbHF^NPr
zKb~q5_+3&IXdllEG3^1zyDX?-T~#VeRgwl?RLyXFm7s;Uzpl{!Dn7vUYTW*PP-6yC
zmy;=$%IG{RPB$PBf%t?CH8k?d?C|4fq9>f;hnMFTpK`t7M*POH)Dg69?1$rL^ATt2
zl6mu=A!0_bFy|y-J0JrSrmTC}Q50~(P>SDhgC6!ThmIaQk8-;^4n8Jt#xQ$|vmpvb
z$X6t~CRE7J0P#1AO43%4|C6hvFFr;F20w+>7;E|Am1;^_lJhQB8J-}!nTYav&jjty
zG9f+-|5e_=FVvtkt8vbnZVg-D=lml|#R)6MRB8_U9PlSH&{gFa;!GS=KG+-V!RF>X
z5~-h#<98<h&Wpz(ZY)2Qx;^6e6zr$A9v{|(k5#^x1I{A8{hChU7bXP|OfK+Jdyew9
zbasu`NEBeHZzB=tq=C?cSNIj`TL`$m--zOugyTPkGb(c>;Xs#^(1BPM;>}k)(lZcO
zLE}_HuZ<iW64caC>WP5${P=WPogRo7<o0PgXu|7$rMMYREfA$pv*V7{h541g^nZ$V
zp*LvsOn##}5HGj|Ty4Q%Vnrf_MD`Tao~nKyA94(|ce=TVRrR6E$!;d?j0$8qHv436
ztH3)6>zk=cIuLGh+45-d7^r5x-8^+p1w<6Td@V6mhmwbXw|u$PAc(-6%k23vV9fuk
z_K4&dH1?2L*nd}sYr&D(?#P$9xwr6dRSa=f;yNx($TGtOclIS*k{lKcXRcpFeC<6g
zqq_ucJb;2t6PIl`;QNVGpG*Pdo7bcky!<8rG`i}S7tlU>&8gr;_C7E0+&|pvNArUO
zr*V?!rx6#R&9-s`-Ph{1!!9@67lP7@>~;4M-`MC~gGA{wap=$|T8TpZZ2f~glMol=
zvmd-x&$i?SI3?jD`9=z6qDtPKFX4lRw7oTA#NSK;ajW-YJaB#S@NJ(jGjPVAU98?^
zhR4)79wn}fz;dOM%$tG<BA&Kw|5uF8d(I~rw@;%!P@{YIt647S$|}kGIm`y~cYkxY
zFmM1irY~83hXYhah^#Yi@PKLluai}%m(t>u6@2fWAgE<;q)%D%fX)+==5t8jV~+c`
zd2o{xKG7CvtFH@z&h&qrmo*R%wcuRh$2bPaKC(G)%*+N(dQ3Ln476}l)Z`8UJts8z
zw?=SgNkafpZlT2<(*GN6rxmJ^ZZla?Ym4$VZ~xQsb1Xr+o<@mp57NzK$3*@W-{%6=
za}js&DGsm-Nbfd4`E0?qu5M|h6JCEA|K*jwJcx9$u9Usxhc@QDzy%gzxa#!Dfh&O<
z%sI>6`L)V`zjE#iv&-V>{&U4}!w2bk4eo>O??i$7?&d6&9v@`boaU4dmxR7tJH~d@
zLzSo4VwOSu59$OSg>}^9sM6D0VV6cZ2M!tK29zTS%Kv-f3DN`1vyAwTesF_&Zo@Cx
zEE<?7FHY~+<pSl?uky<UH~@j`iA>qW;m9`gm8-1~Tm-B7x}VH&fkSoJ0j>A6`m*Ok
zON3xKaZEmy4b8RT`YN&1hH@MPyio_Jzc2TIN?C=E8z`rKceM#iLiNT5()4*@^!vWD
z)GHzARhe5)MEu?1uR|AUeNn%k!m%b{mJLFCnIc+|USNO4gO8*^1SII5e_K!zg~<>4
z7v?m?V4EOf#s>L^KPzvVKV0F5OPa>E!zlOR{`GnJ$XRAkxPROG1<E0ZFGpLRNB6MM
z0w-;&0(M9lt)UEh#t7+rm5qwu7=ej3Jggthl{lpqAvB5B?>m0g9=Iht2xCvy+fYAr
zjK$<5w=c@=@P`gIzh(yajy$7iJqBRvzwkM+0`(`xiw2s|Jg^hh&d*vi$>6qH@J)e2
z2GA7|uhn^kdX)4ZkB(nK^Jt#Sy0ht0K%AYT?+W7@Hud<UoGu>~m>66*V&K`u>a;rB
zgxU`=3L&wis8Mu(iIf#Ko88Cu%{qw>K9fNCNm}m_1yYD}>t7n^qJTn@tf+(2s3+GF
z-DsG%fvH{bVa<sng|8#yM$g`FV9z$msTLiUG4D@i1W725e$aF<Mn^D<iRZJ4EBe;r
zu4b}?uIuaAc(c_Y&Bsk_NanNV*7g);S+jgI^4|eg@os|CZDI)fQ#K+0fs+SHX&p~r
zq~!oE#aMjj)IaRz<V@n<LZo~D^*=v4$OEZe)%1Vo*Z|fE28cCwu={I!oO`S@*vXFW
zH*@DWVZ3(Pg$3QKi8X$^69zJ)xezxS!%<E$NyjZsZ<q|m65UCpQO@_ogJYA1g{(lJ
zGh%Z>g9a83W4{-K(Sg9#H^I_ITu`F;gy|W|bv^&mxg?JA6q%zVELTxpT8n3fp*M&C
zmj1pZj6->~V!jI9R5X9*+_xR#spo?5q)Xmb6LD_@Sz2OrY5t#&y)#my!3nyKSE<<i
z*dXx*_rEGV9td*fH+^o7=3m&a`Zz@~Kwy%Ci61xO@v$%Vy{<jLc0^y8Mc^oZA@w%%
z;$>;*Sg0d9Z7m8`;(947v5b&9n%=V2$N?V{=c>YTcoBbY>D@AoER-5=9m@6zfLMl<
zZ@!BFG!<Aa{!-usXmcDCMDs=d9$ODh&`^NqLG1HC(R{pS;hSbu$GPF0$?p>}24YZ5
zlEpXqhzGcen<+#QU)AJC+KCi)B{=NRk+Le1gY;3tf#XOgkDu}*e}(3fh-jsGa`{O?
z#84IMS7H&MB3UCV+>(H}RvY_+J(TnQAwn*#%LUwb2yN-mdC2ER3s2cuaqy;=wmb7o
z2p$+J?yvN6qufSt*H5H(=#Vm`xaA?f(7pY&D~5uAn-*F5&u~HS)Vmp}L;-mJ;;nT0
z5<kQ-YdscW`h%(cV0lsZ;vXK7o`0@mv<;`XH~;YcYYTo@-*V3__d8CZ-FPHZ#|~{_
z?rvHm``CsGk6f%c8T^wtve-j<-Ko(#S4f*sZ&%`4-Z~#CU<WZ-eMkqW9V_%Nuq1@O
znG(B1&IFuVZ0FIab0zlc+Lr0n-y)!VzUf~%7ds^MCq5V&rGVFgFGnP32%ymV&0n1@
z0&uuOmOp`hKVQrTuIwX@A>rM#O5+TOFX*wOS%o+c*8T#G$t^!Iu9LSpn(lJLu`6B6
zH&LIOZ?UebMDGx@xL-73QhtctrYp#ZvS9_vp!6RkevH7y!(tPg&j|gmx%W!)sUWv~
zL^tWf5*GD?j89~V9YXZJE6qkDKAVy9<-_M_ZlbLH?41sjQ{x-K{j8XQ<k_=ck|5;w
zi?en5@u7Kt7WfJqi#YhpI_?`di-YdzC?-}eH2>hgFFe&~|Lwi1fZyZefZFy%&v4Z5
zn{`)a?^I)g{@_w4gIG4;^Wb$qJ-`R)KmWS9u(89He2&s-MnNF*H*vW56Xl9j62qt5
zsG)D|Th8%L2Joj8e|u&W?UQ%)Lr4V$;6NP`7*Wr?BGXW9ZkHV_PlwhTZy_J(Nek;8
z)c?Cm8@#(~Cj~?<zaMlZ5`haZ?R4mO)NfjODjFiPf-Tlg)yrxfVrd`RD_g$rWAqOm
zT+t4j#q1`&M)_24;7Z)25>+I9SlgD^j^I;OptX8yauvM}f?W4?soelXC}iyWH;+O3
zzm?s-0Bw*}G+)2CCl9m70;i?XoSn>yAzM~L704yCG;52N0yh26r(W72&VxGKokjC1
z?!BQ+I!UeyGy*g(lE|;26r$|9@k|Dye(mt?s7eFf^R^Q?R)R3?cQfaoh$3{Je32=o
zuM7zpR(jtM@8O5C?<bjOYJk&nNHn5(p_*!Uzw~ITg34dpqm=~>a7byrC3i^y=KP)3
zbScC@PCBbB*b#ANM9h`vsHNe0ftO5xfG`O4UOq)E$_2Nkk_<$DiU1?>jin`}AVn`s
z^UtC*e5h&~kNm&BIA-&Z<&H4KpGs3#_=$Y`$JNa_h!cN)u$0@<j{>Yj0ttd{?O~<5
zMC1Y-6PWwu%_y2VDtOJTx*?}U0wF!@{3fUeEyfu(`r#u9h-TRwEie)Sfx}i&y&Mt9
z`aj|Sf%cKMysf-XPYHqfh0;k&^gf)dS6@9|LJL`WasQmrJuc_1->~r15yq?M7HFPK
z2nT6R)fTrmF$oP-rO_J`*zg6jYdvdASonWr_M+ZL*o)7C8LsD#FrLDZeL>H4?1^H1
zg#Y>qmUvJ1Sn7i<?CQgQ2b;trOjv~d<-8v$7%$JH=zLzq@~+Pg&-O24w-SarNj+yV
z_OImBXWY;{yBb2F`VZ)H53BpV%^(E6>Jua;DXW;V;yWLSyX)BTwnw+J(EK)QqCwGG
zB2qYXV$SAVM04E8Xr4%(rbqYXw%N;Pso+<R`y=C`A>2vEOE2TrI-aROCKElqfxGrK
z@AO3t;NOiqJ$Oz}<KD0RxuujTpp{lSKcRXRqY&5}%Qrd1XI`f%(x$E9t1ZM@&TmKY
z99}NsQZiET{puCzz{&s=l)7v@R>bhf_NwHi#a)af^C;olC^hJA9@Vs?{Tz(PhmXD6
z!4f*&Ka8&5!~AR47-^YTG2#<9boSm+!nBg24_68WF!}%JxJuW9P5;|pmmk~0x~K!%
z7N0I*I!3+~)O?2+njgGjIl7H~<@62Bd%ca(ab59fB}4N$9$gpdK;MVicJc9g@?Gq0
zgUh8g#8nF>Uz%l%76GQmFMF*_g+TM;kZkQJ(#4o3we;HsK&{u^ZBdL8evCUS9WSGW
zrtdL!H^bP0vNrbtpnNA>jk>p0OAWblTW>gGNT7r9qv4Y{5-9TY=z8YH09@a;^*#k4
zpQK>_XT>z){Eb$q5ZVYp$qk45%1F0UVC#|L8RLVV6uP)8kCD&A%wrf!kN9(MbEhaf
z*+5u?r^C8h05UpQ1IeBEp^Whh)F0!6KDB50#Sc&pQcTtEqr3>p(H=cfK%eWP7P;AZ
z)ORn*{`+kf<q&)R=vWRsC5Mppw=pCrhhXAi!}v6S69SCK87^Gn1n=#$tv+b3o7CL{
z`@S?L@X(G;O_wJF5}wSQHWLbP&S~dUbs+`Uz`9ls)W-n-QB0+n0zQ?#C00w{!zNX_
zO1oW{!S>V%f{Um((x~{6#_)h1uIw><iLmE}+)GW9IV|)*NL%>B2<2!#tBW}uNTRt$
zbK&&ob!p-E{&7;1cr*{met2v%kp;@Qsjp2(QNyVnu@~=AA3AhNSF69B7Bqddnja#a
zy7xuLnSUP`;9YXqeEc#Cyz6jQY*%3iC)U?&7%>OzauWr4?~=l1(a`YlF(#;-csNsO
zu!d<MVyc)QG0?B<XusWHLA?VTc@?B@{o6RZT$;-W^rG6{|5>xcvCnQzK6?c4rnU9A
z)pZ7#?Eh~#QJfM4X20JRLOF&8)8~WK1FZ0G$?njLmk`c!Xe6B>9K;CDOnpj_ox`hy
zdkhkQ4>-PGx?5Av4vtIHqcw<k*&WSsCSsBluKrLMI`?S?XHz|O&GIsu%j;xdT7Odn
zCg-aJOLll*aMD+(5S{a$T#S(XW5Ej(eQXjgX^7`l6<)XPDFF8OUhvs`;{i=JA~n?`
zPIL}Cx_j1<4QffmFM6k<`H5bc*73e*{XBNlF|Y^m&}|;`PFFF)WuuLT!QOo=H>*X?
z_d3ccsSETr$<u?t8ArBtltYE@8A?h`q%h#NywrC75ECl$J^x=h;!fW4wi_cvT<PnS
z)$#7EAno{h#QiA)oO*7pxLrd5v0v`bkzGeTLH}3Df880NWyC6VGMNL;-as!WJvT)5
z=@Sq;kpQjl!fY|l1(Xz1?P@5;-h1sm`Fe;r__WsZo4iAQW(LcWk*_r5<oFk_W%9$-
zbwL99Z9z~S*1yJqdQw`G7ne^(2tiuS)P=|_0T?k6pCY6Y1NLhooRMiLw@Lir8GWr3
zG>eR%tWyy}^XU`=KkgxJ-t9BQ52EQ|)tmZRClk7lvW~KWGs;7R-j}?9@@jX|Q;wev
zm4ubTh);_|+>odk8J%|losUUQF-&yvfcUq@@g>wJ+|{P_-lF4xuUTIPHj&@EXRO{X
zEzbp;P=2oh%?mmsqbDDC8_f&ec)Sk&T%dl^-&?+Z5)1Wo;jHo-!bPfn^%6YD$BL|b
zJ?Hvs@j)inCMThM3_Cp*fAtpw2)P!<-w&jL9oskm6)O+}TZypvf5qsz+RxH2UL%2~
z0gVNcStj7h_RKCEp@W2v#HRC~IKfrm$zcqdbJuq^Uis1z31}Rbc>S5ZAA6HUK;KBX
ziv6u6x|RE47aO)?7LI*2hspfd9R2)x0VB9L8Cr#M<Q}c6H4|taOWBps+E<)}AZ|fG
zKu@uaN$D3|`jxeZu_uq$aOX^8WfR+z>ByfV^8GCTWojSOY&=U``X2!#U^Mcw&C8e_
zFNOa;;^n-4%9NRPpBQw9O|os#I->7(Q*-p%4tDg%#<ijF5L=^iXd^8mhO+sGOe3ea
zux~BGw+;CTYcrLnJ^7T!ar?|RQ-{JatZc|NP5T!S+`HqG6vapY*Q8y)9@Oq(Wy*~L
zAHR-Zm-1siEgeU_?gyUJUpo3Qfk)v>iX45IM1Xj9(zPY*{c-D1>bym~^%5`jYe`D*
zzAs#Sk3SVZXW38oL+LwSwB;`Cx;~2cYW&RSW+=v+zFlbbFe8K{O0$qReblwaj@?O@
z-jv{4ahrvu?92G2t+)QM5>&Nk?dRLAO&Op@gwm#I5Aj|zzn?jlyM}SHyp7@hHHVqj
zQ$#FHl7aivS^-5*BDnumlnlQ^1B%SG{nc$7Son-tdv?(t=3w0#-?c{uKeRh_3ds=H
zFY|7N3hF5mdk+V%qWPP}4$=dg5gd>~n6OQ$#R8=gu?j06Sm1s}NDd&~*5RhKpB)_?
zFkJfXJ;g-?FNio(c*99S>Zb2$?_DbJB={Mb@dEw%iD_=-WAxsa1~5JKWrWZN`(`^q
z-T0eJD=P$ftC*m=^{^|NkJJ6*>$MUg0U-X^;cyVo3zduCPOTyC?C@_e<i9EehQVw{
z7<wNP0?Zr8mpDN|a_K_{>RmK{?Jg475Qdvv9sO2X!f?{_j`S4<b||>x1(C;5FN)~y
z(odu#A7gYL%~zhsG<3Q%ziyJj6Y_6yzdM<M`lscq0s}_)N2_7Aq`H7@ZwPWu_fBHt
zmaY8E+eGkQ-?lbhc@CG_sI+Df-oztT^(xe16EEE!NQ~!R#LvE;B{r5@!_A1b+-0mb
zu?yz9!W-8%Fx^Zysp+jr><wLTi7d+$ra>)Hy+yH)ec^c9YB53pE_+ec)^AB5h}W&^
zkp~T=4>b0y{rHP<H_vN0hHhd~3|E>n8;>w(FwVJ+czaiR+84diKC*36l4e-BiOElY
zEzvVs$7WrA=e_!m6rP=Gxf>=&06%!zPOtS7gKMzqxb*uGY-W1G!FcBzmdo>r=Y7C7
zW-PE9XI{00i)h*#hMXg=t^G_9-CTWy2bNn=amWzWerA*mjq4?X&of!$XSWZre*2!+
zgm+4Chv9Pu&nbrS&Jj|hvK#IA`^@>+z;pC)VSIUpW{VB=px8NX(KCR%Rh8X?_ta=^
z0iAJvHznehN$j7uV1)}OI1E-s8DU>G=3sr55%OA_e>$SMtJIp3XT`R;VE4uM^XVmY
zAbEqhGmVcN;^e?Px#9q$dFoE>aDfJ@Du1nzOwz*PnT;)w*~g~M%Zu29&^%#^KSg-R
z1WtBfd%&a~fdvNN?Y3^*#zY6hQ|pbW;73Nb*eK!+FtvV35dGAH7m!>Je%#!J@m<5s
zMCwuRFH4wf0~^OZ<&9WtW~cE03$rFo>N$Kb+U_LXi)n04QNYf}W)t(eQE{7{sRJ{J
zRgz%%FoLnvH7afJ%wU=^)iq4(+qmR8smwaTaqPcFiCYmvoZ#~2xAz-=Mo=pxqk9=n
z2c4w}4P%)+@SeBnUQInKoWsvomDxxD_NeR}<0l5V?8@ROkwOEae~Y5a&moR!Thl@u
zu@H#)Ckkw3p`O(F-t~r9QTV{8vXr&W0k%XU+`ZatpusxifW8puQ`~>`1kEk&c20kk
z?4t^&l89jTJesHCuygj8xhlMJxg$t(3-O7kevY46lYl9KbCq3nO7LkRolrYg6)XZ*
z3jS)!L0-YQj}|(YX@*g{VOykd@p_{Y7Y)h{Yy7!)`!+9{+gaHs7|#v24IFCRQ&5ic
zo9??VYJT9QRN6H(-~&FZSw<^#@7(hdrGGmk0w!O6+3r+`B0Ylf2i?dfezKd8Lt%9k
zA6ool_#us?)?X%ObuO5ymfgPINU~}iH*YZ3d2XDGjkD_c=)njsejx69dwvj8uMe`5
zJ2#3`d`gYYp8bnw&6fVhQ8$dA?7d3-KK~zH!B8?y`LPyLFu#@_u)c$H7hDt9C!fKc
ztn3|A#%A&7FHV`*5D(#kd7ebR-&?S}9tNHqk!8$6-N{o{vJH3I({4{Wv5K28)KZEJ
zy}@E)TRmBII`D#|qHVrk1=zVQ0mJCZF3kC@<NUGuBmBYQW9(egCp_5t4e<q)DSY+Q
z&+!$?Jp5I~zstCK0hV;|W2dxW93T7F&mF)04}0oLAzo>>j&U$@+&ZdR#jdf}wD<Q@
z)slZ|v$<-&gvan@I+mgL@9**0{)Vwte10K8oZAS^e@?AVPUPRl6YgH#mF`=>BUR|O
z9fHt&PrIx4E?c7>>V<^utUapQxTjJNzK?WbtO*eck|^gO-~B6X#cv0%>Lm@Cv2MYH
z-A}3fW!b|1ZXV(>k<GZgLQ>5&u_?Tj#{R+cH*<Kyc?DhfC(Bqq_dmL6jw7saXs4do
zd<e7oA4TUKk7e7&aeME*_a2cIit`YaN>OAKQCX4fG76zcJwl;KC8NwjNr~%LA}hN>
zR`y=m>pkE9pU>wJ*L~gRc^tpr_j~)vI}rMd-ZP6PmDElmQ<b^ATlMpZ<To8l^_KyH
z%wt~Eew!dXp2y4vPm;m2iiHD5ROe7>cl%QG^+j~nrhet_`vs)+RsP8>`xZ3017YHm
zV@T+}W1vsv24SGi)NzN7lB7;rBG-GcOUPJcn18KbCGO!x{nKbpV0tg}+Uh+U1VwOl
z&L`2s@nEOYE%P-b%TpWu1m`I;1d1AT+weVw^-P7cj2PVEG--JvKn+@tR~tXM<2;5b
zy7kS9ANa~5PTAz}0;4JIImOeI5I&1<!nqu9i#IWe>?P)uv@hOEZDI$}7QfK8D}3-o
zbK+Z#w=j71@d?bR;@n(qz{pQLfA`4DtmoIkJ=x@Aa=G7lA;9Y6#y4*4eUlkXk+k3f
zsas)b($Bb|tu$7s5cATi%lrrUk8l8)Y4NXJoF@s-mAY1>Gk`qG&dp``j1xy2m%Qoe
zS>Q%RMy%H<J}`_^W~Wl8g832AHC8+imK0f1{C9Z_@znH7dJS(9@5$a>G9&FGN1fJr
zLqrZk)J#r^<fTZtCQSZn{vxtEA(s~MeFk0ku%G+jg!5*{UE;1kqJlfBx`|d1WbjUL
z_Jfw&I$FpP-45t!Mx&dt)>8x>&KoDc&a<Texv_PQRI43C)_2WScW4nw-~A&wjpq;D
zy?*YYcwU;_baQ?1+c45v@O^rTdKDdW-JNH<IDwccK2T&&P(k{NwPr)a3VQnLWW<%n
z1E_D%pV@RL4RM)L22>?5fQeXi^<&sYb2{IY4lwqiPXCdj_~;U1`l98Of6Fv6zVY%G
z<$lbw3-UM?*Zzo@*t6#ORHqA7uBpl>&2$o@`W9odH&=)tC#JU2?RMgWZ5L-QT0vb#
zcamoA%n)9@VZ4l4ro^Im(j!{I6+$|1)j-o}fXLS>4Y8K5LVO~XRm|rmQN;)QW_c4X
z(ucCa{la5ZB<JbrND*gBQnAe1lgn$kr{HqFq)miCJuC|!n~p3YKbs75rSD9nWBT#5
z)*@>}Q1jK;)(@S;UIUig`VX{V;i~yx?<h6NQeV=j_Xsm-{gm0}3(_Vbo}eGFqS!*X
zL|hRckob#K-*`4F-`*xJ{s*TkIXFpH-=zM2p%EbM&c)?gsA3=5nmzq5e#~KNV{nQ8
z(}RAz(p<SvMoFr;1<!@FHjp(_1aC6-+WYf;?r1NeBsIqDW@p<lkTSgcpLeoO5|xd9
zsqTeTq(kE;$ch;mNQDlHH*ejP1n$-evUD*ukb19VqvN0kBmV@7Rx#)3&V*6ug$t@6
zy1FND)mH_)1HafQSgFE$t=WECF)i5q;p6@GH0GN&t8sk3z7JaLkKbhT1)w@En>Kt?
z16&WyyCzM^LJ5VSSpcC4#SUc;3nNs4blpRzBtaH9w)<V29`6JFQrm|~tSZ1vHQrrt
zM;$IObzSa0p#d4I8TAgh&%|}S>DzCT23&Qj4%x>DFzUl3D*Dn0ma`6pypJ^kw7a1d
z<AymV91kC`1Y(Ymb^42vQ8n;2KR(7=s{s<dixZ|&>OlR_e;_bk5iUiZ?YH@*2DBfi
zUfuqPJsDRm-z*HM!nTc7bV8acP%)pUnZSFE;UntVXK>EJrsZx-G4>vL++4XodYc9^
zhEL|R;yh5X;p2vwbv$1flJaL}#lG^ZEq%T>S>bNMLpm~PT2OJyR@!gE0_(IJx6`|D
zzkPXAPh&s!O8RH>D&c#ovucarJ1KT}@Rl%N*JOo11BVlS7IMNo&93nt>_tD?_;-8f
z92Z>CZ&7RP;DL7V&^pv61cq&=R5~qit}!Df(5OckxXI*esrYfv&_hb~+lDX%JcF!^
zNfBsV;GFRI%n4k1)2qV&v49hcywGoNN^nV-&3moL4yFO;*8b@7;5j<OfdU0)Pzwpx
zV#sF(`Z=D@q1Yd$Da39jQOyFKE+ff-^qim<@JzAd&?>T|DyWPQqk(hZg^a?+*q~$F
zF~DDs34-a=kI!%Y#2iTmJ0hQ!)cU+On`54WWO_L!@nAI-DXQ;j+=wGNN%W|n(u^Vv
zDf-oaM`ay3NHu)tFRJ#>5L((SmfvZ12n&rnvYEdaNEOo*Zn1Y+N!)(VyVPUJV5^|+
zNO~6oXb3#J+WL7Nah>?xdG`)KL|T;lKdYWa;y$s@%Fb*OH`+AlZv<_j0=9a`<-{FC
zdUf(|Kr<yIKm7fq=_dzh9+M|=yy5^E@2fSjG~BT7m9019cP0>B@a5ag-a*l%^%Lnc
z+sIyd&%Z?vPLTc<b2MG5pK$l{AByqZLU#7i*10{HuQe2KOHhOv3|GAWPLN5#z2cg6
zZp?X{Z&ps_OyUB@&(`h>cyFXmzdC8QiG45mV?!rn@cZ>lzBYy50($>#A?8ByE}{+M
z_G#C}=Z*X6OB)?z;M#6MZ|=?wS5HivWJ)e03C{I85%C?gIVOVZNlVBJUoGAKv5@>o
zyfa<aILBf>T|<vKGkuyxZ{)DwHz<@<e`yW#_?{Jo2VuVMvAmN<Yxm+lx?)YOxBwH>
zcM9~|{^0;di98eC-}JCdcJ#=P>nz~TvEmSc=O)ZrVPa()tZ<Tgr#Fy=2BwEp;-4I3
zgw1z%MXw*^grPK+b_UG1(KppDWE|iDO<(nA;KvDptK1=1xiQzW`KMdLN6eqOWM`Tx
zwTgsG75&&R;rISUy1E~~m(lX}Q^tQs$`M_vTC-7a7s{5il{aSUKsq-pbuJ1|BC+C}
zd+QU6$c@LzSJeLxar65tX#wF@blj;fVk@GLU~QMQX)V1(JdDdtyFB^}@jaT%P*P|o
zHo1)q9G<@;Oic3mc_Uj1O^F*)l!XlhHJfi08P_OMrmmN`Ro8|T{PQ1VJe@+J)5iXL
z7;tWFI%T$wZyd3&Zhf%&{s$#q6mHd6n?V`2d0|8h<{+o>ckuMhpkF~%yc+5Ru{anp
z&mKBKXeeK)Zj6XWrEm2~{UaR&#Y;+8)5}YQW~h66ebFHCFt$M21n1yplfp&+@QxEd
zHXhD<)zqQiGl$fR1D6QXrz32^xfG;{7Z+|d{ouqtj^wBpE*vDLYu_0HdALcoqV=!S
zGuTN!aqs9=Yne$F78NrRw$!A}m_M^0de?}tbFW<AFYXelxz~eE?cnFUdF@Ey5f)OJ
z>xN9FG81X@>0ybnp<M#9j(f@LZW6k>!<FTy#?brDTR&L57tx|h;`h+vHsU{0_Q=C~
zokZ5N^j6Q9RU~I8^QU$2FRCS_N#xD06Sw-l)m$%JL$oeZ?WZYNNTpw^xeq?wMYhEm
zW*2adg1>qcQV)+2wuhf<%@8zD1|EF-m~j8lA%aPuWf~O;KyK!1GVqDEb9YoHgL^mh
z=9();(dCr`FD^Y}0!v=%XWKv7!JmO+@ZSMRFgcy{()f)OTxs#@rNA80o8!EWxn1(`
zC;Nzt#TQw)YkA;y5B5&TAuXralM*0r_N-vvh6ohW@}2vGy=CDu0%fHav0vna)y(=0
zN%(&1$yEXD3kz4GV2mh}g^CN!8PjCq5N;_Fcs@`RoL_&VR4&^Ozgoz14{_{;!7%zs
zgF-Dxu6FhJ#yN8z+I!#1E@2O?jps*H0@(Xlu^PBXAGkSYUwJ*#!#(<V@<~GtSlDa*
z)oxh_p2;dlYKm&W?|M+Qbd!XROJp0<GPuuagd8n!?!o8Pf-e>3VVL<H5OForfSo@+
zhhr#IV2%CrEhRTKuuV_z^KDXxR`0B9ktJ%Ny?XGH=sX1s=PC7@n$y8**@{AY0|hWJ
z3mj_U{D&4F53ZH2(m~fJDYm4SoM7$sH9zeLCC~?-J8e+5LVWk!w<h$HoWvNucXy2w
z--~nI61WZUd_yuvQ2inY%sWcUTw9`pl9~cBX$B6+-dC^0Rfg}yS)*n5JvLEF;fv0Q
z%z7elyW_0YbO+(}BgXx@JQ*oB^EpFI*+=3g%fpSstK`6@z(0%9mrzA_c_Wz<&Uw?H
zt38c57w+^{3@7m1eY`}g`zAXZ80|3rT%(*u(nHFX)ek7~zDr8%*&XZ|ao8uNBsz~!
zfC3E{)flQ_ARde;G$6{@q;b#W7NU2Rwypc?GBHq``;$Fq26Z|xc&Fc`!F(F?V`hR>
zpu+Yr>_+o8ay>5ju;nW?JpVMu`O#+yeQS8*kaC3`jN%JE$bVzR{<EeKW>zj3iP+*k
z%t-?iJ#T*d57C1Q{lJ*h+zR?z;3t~W$q3IsXsl>lXNKVmA-4586GUwatAEy4PH?_O
zrfng!g8Ymo>%zD(2gAd{b@bN;u`MKg^mxV=QG7EkF;j4o;HhLa%In!cLf2OvR!TMr
zIS7l{rXwTW2oAb`f}M&4<4!TMx5tnoTYk-p12f2D$sqa6pKjtQht_SO*W<+5Q;TX9
zE5A|xYu>G1@d4D3l$b6{(@X5-b?ppaS|Wbdow@pvdWW!ee;ifzgn~4AS}Qz`XAtqf
zRJD*M$zv|#E%Cf*W%zw7%rk@xb6Gz0v2|mwj_AWm&Mxe;2<;$rI|cDxddKa+a-Aqh
z4pc-Hbu++^dOn-(FPspjMZp*%hJ8-sEt}eQvXH^*9+HChHn!89+&3aIPxFqyhusVh
z1ixlF|B+V#&d@sA8)>OQfoOoI8a`j?D}25e&x?EPG5%fUPch%(V(?ov%&B`W6H<KV
zup-b4cO{!uN&$_U!bQ;@F*r&@wy(XC04+t@L2(*s_^-JsDA-XA3?(B{gQ!$M;4d*1
zk%B#*x1W*Gq=-W$6CIP0EFUx<q5s9us|6!&izX)66I{!6=i{+bNf>L)OF}7opj{|g
z^BDHhI(!n#tg!1wFI9GRxu1t1O26$2pz1@F<$@KuEWeP2xQ1nFdJPg|>D_;}RTyY4
z40N<=uc5>bM~)t5-$t_*#YbqjKB6yozV_W9n?mJN#?%G#WZ?2*hc!oj0d<_aW0#rV
zfbzpGtnVm~64$&`TyHOaK~q5iIS26`S5ZQ7=9B>~xK<?!{L5y5M@DSUQ)T_=kg~YH
za4iS)KFTxaIfOkZ&_IZji9i91(on2DCoH+Xq&SH`_fpMWeo?fH5G#^p<T1?xvMDi1
zMT8{IZz~<l+9HQ9{Zma#?^Y0gDJoe$WrY)W9}Qd!!~IqZ1+i2+0XUTSutw(|H(Wnc
z#Cx}j8fJ|-{;A<yQ;HR-FU}dCi)5>lmocw4#`bucCW#p|Zw-uU-(&}e5*|7`4R**q
zQ0q5*4foDei+_n<6$CNqyR8(9n1@fb{N>gq{9ZQ+Qqd6Sf!6SrU28||sg=n|t--%X
zi{)z;Zl}0lRMN>H*Bbvj``qa#a|Ph9y#Z@kq%xSuXLg7=N`VJm@FU#<37EM@`SG%X
z7)0wH=g&XI47p6*bDUwykTCFa>?+=`8we=YF;EIY{j=Hss$OtIji_XB0?zxI&@Po*
z<J{3foy6}SnI(bD&F3=L1I*<=BPTGDfc=-7Uo5YAVh+aHQ(hO`aGx&s2N9Af4CVU=
zHlJdCB)_y4cQwvg7{SQWzq_K4wP_WWe+2jaJ?QlIZHU9fQ&l=LJz;qI+Qqxfi4Te{
zm(@PG#shb=yZGNW;U1sysrzUZ`-bM;F|lc5zJ-+Ng0dth*joyd>i!9Vxy(Qo34gzR
z{Pkh7Cm-L7w3u`PJEdT2`}F)M_P-COP5x7EQGm_jKd;oVzpA$WL%D*EAk@`U<rL{*
z&NRil#3;<?P*+Fk<Sh*FFv+|#?x{5JZP75Z|C0hwnR5So^%5|e$n-SMT^OVj4pK<s
zUK#(n;PsLKX^6ii7|WZ?1@~6Z`t}`?gV~awtsmv2;c8X$rPBw6;e%IoQc|oqOqEVd
zmfXd?Q$78ltG`4cnu)Tjt{HpVzX_&&x+(x)FKkSIQ)ou**IpH=WKR;OnCtaOq#E>h
z@00qAdF@2Z&6W3|di_LcoX5XcOH?3mAnHZe&<?sA`i!_XwTa%P=WqwTTt}&cFCAQC
zFn9LZ@&|WKY6#q;NZU0+21gwWGyOTqpd{yWM$*g*a?cl}B2vlWvIv`}oY*>olJ;yh
z%nvx`E-F%!xQy<-b=i>iTtXM4S<%Cu3DhL!_Gwv!3PuNXIb+4}e(H~jN6-@XO4#1}
zQPaMNL|S?>++14;zegn5RO3pb?+Am(OaGt9+U@Ge_&uHI`?cVPpKU(~D-I?jdZ9LA
ztY9|o{;6ejGok&XqwWAw`m%V4y0#P9(!{zhyRD)rn+B#gD(UDO8|96f5>a67xGJgB
z!3?j}1P*p2^TNALzk8|2nZf1ZeX`+9A<(hwI^n5A1I^1#ZoHxW#QXHg+b46{iSvvd
zW=f6yh|m0M_icus=xK@3_fIEAP^`q4gOiI3#G}HKa=TT%gx5%o&~Eq=QPCo+-IzQ_
z4Dux02^i&rT-qRo@Ar0*LFW6ETI|!{qy8FpUYZW5O+TECdqW1Z4HNMNK4LI&_c3`u
z6b&5Na+l>D#Jt`6KyGkk0~x;wyA*)^6XL?ki?iL#K+<?8DE^iPa@u_8+`X9Ls>uEe
z96pqgGWFKU1^4|Hh4dFL;qT4suh^62Hg*t2UODw7#V+!xS>AKijScQ6yl%{ir3TKP
zmv=HO`9Y6&C@^%68^+#!qv^mLjpw_rDBz6<jPaETuy_bU<&68OMl)V888*H@hWErb
zujpU+6odI&$;Q%4);#cnI(Us2=hVE8jd(9~@WJ42RZIIc&Of#Lbsfh&q@zC%{rSj*
zd+Q4!e-wRqfc#gAl+l7D_~~Mu8RlOt^?&NCvB3X+>W!Q7P2v#a+VjhjQX1Y$hsl=U
z^QMg_{XHqn+sSy))K@bl1y+)v<b=J3>$%JJ`~UGm$-b(Np9^we$KOVE3;S#xPkoK{
zIE#CIak7272W7z5WpG+`1N%b+mvbY|%0lqJ<^8#Id!S9Dn({REl)F<aihjkPZ=(Rt
z++pmw&N-A&(N-x4ifZ4WrHva*k?0kv-|QeK%J2A(Tm<~b{2OI(Zr|k}kMJPyfeyqQ
zurzZ+QxAQJ9p>{L{b^l8Ny7x{D*okf%s4>kz(l|u+z-gttU2(~Pyn8$&WVlp;`^8>
z+m|MslN}W<yfD^;`;N7b^?0v}!ev&rLv8r~OB&au+I-9fbxcavON1D4j@OG$;ui-T
zxJGeNDqS27i!=Ns^T1p{tIHPcv+Qtwl_sC|Jw7MonC88ZrN(_i>8Q{Oai}qo`mdo`
z6u&>WRa|dkPM}`$HokF!Szv(EyEP`@4ov)_(;^N}BxKE3b;aPwp|t9GdI1QiJ!&Bv
zD*y>x5yO{pE?`^sQ+nbpa-fOYdRmEjeud#GeJgh`xAf27ljW&67vuQha?U4mD41Ma
zp}>51t*tGOi{zMl_=GF)S_>`QUd@B#S#q#wj!hNOWrCmK{72g87=cT#-cc3%ba~?V
zJkC+D!$p~KZtK0fs4qxA{E7iD=-d9Z&^?TE78fry{KWgIV(uRFr~!KqlYZDto@0bD
zeT6MroX>ZV9Btl@fB(hW5r&^%l7Z)Q`y37Ya|#}rERH@%4_EkY%|pIpj&N#KvUe2^
z*wT$V`7f}-X}hG}c%0AsMoun%M2Z1I?^!h~&$Gf8djskp$64U<ZSOBS9=H$hcS3<-
zhy`-iNIvxY7$Eu>!}p>C3~<N1KwU+a10I`yJL-#hoLO--cp1zHS${@W1rM>nK!CP^
z(=7(b3pc0pYv6*-0)@_{r@ZjV=ft)D`(`L(eZTY5vVnU*P|)}X4p>~#maFO(hx}+&
zL!;Ap&$t}JWr}mMWd=sR=Q8MkQ%`@WN{bh!63uI#dt<-OarzQ&J?yv74flPBJ%BDf
z-wqf~;2e3MShzHo06eJtG8ASg0lvW^P1XcH&z(KTLEeIUYr1qPG>xLbzJ0D(*+mHw
zr07L<e>1~h(QucL%ztP*vo>KBzn>gi+{P*l7~mIY|5a5jdU$>EMbtUm3zV<sTkvpT
zha0P`<rl{B05F2wdOd#`?Oyup$g7HdKv(!ZzjjX$aZ%ppH?#WCX@;N(?V)+1Tywo+
z=4vgGn?`PQMRJ}H9BkoV5E(~(_3??OQxu@@KyvfRT}BHVes%v0$zW3{$*#?V8YGq%
zqhPR~*x!?~Fv>oI(m%)^-&)*6(R7V=#fghZPqfeJXABv1=|-M9Wxx%$d~60j&;BLs
z3PjhQjNx7!KfC9~PA;($rnPDAHG>YPcz3cEY$IvWKY^}}+vsM@Melo`#*mdLE7`fh
zVL~AM<Ua1*K4OoTt(y<UD$>@I;n6*h`|(lj!lU;lkw<*!Yw9!0$hhs3oJaW@Dop=;
zV4!XZ1+ANH_2f`MyFqO^b7>25$UC%UH?@PT-^(2?Us^_NcIu7BVR(-8{&7r*1v~iZ
z)v!GKjQc^lyu5VBI3O^x?DBVhR=7$YNA<*$3H0bc@hnArC754ECZ~N^AgcJj$kcX_
zgE&>+_p}&)^nAQh|Agft;pabnt(O|ly*tHnAZZK@Gkr7n@+?LcJ~A3UGHpcPa(sVm
z@)SXRm?>ziAq#1xT|6)}KS1n|kB+kR{U$!&w03#2XO1w=(EgMiO-|Y?B}kR<xfA6p
zIE>v8T_&j9;sYe2=tvrc<u>B;w4}!@tL2>y8${E<jjwGQTSSl>rRVU@IFa$#qe%_t
zIo`+oX)j5`eD;B>baN6VM2<XdWwyyE5?|+c!Y6Iw5`8#_ut7he&=xSz)J_5W6TK`O
zWSfX52?4Bek?)9CwavQcDrV7Irz4fb&|l&|&JRVbOF_ijM|GKxB9>7P^{*_w?th48
zZBF6Q&NNcX;+Oxix`EDbFDhoeq=aod#gvO(!wApJFJH+UMBkL>3^(*Q(V2U@6bBE?
zp%{zC_%F+&$haXkE9iP1n$Ywe9HHMu=Uqz{2KA^RGuOla9roQ;A8b2mjpu07wP7i}
zIkU*V{^PszPjHT}<%*fh<xRxHTz&no3^jQCrG4l1h5~+mzxBoX!~*)$dt!O#>pW^d
zbm+V!A0=qKs-MVT*+x!ReAJa~DWQ$Bp(YCF%M2SV)b_aiLzg52uPVm0qrx*3w$Az!
zh@DpSk-=^Y$_Wz=_f4Kb`HGd>PNIv5=G5qixP%TQhxq3!tCmpU_lcFT{#nGn{Y;tu
zHy_lijc1SG_nEP@ycs_^H}sl*X&J|Tqk}KcDQe;V|1+Us@oRDXK*lrk%bb@FDjZ3f
z0gTj8E1q^p)SDfq7Y|?loX!A6US!wQkMe;YN%}x`5)W)GHe675#_vJy;H(hL9pq4-
zYGxi6fUEp1_bc>7fXPx`I+=$KRG|5=zdr5{z(>#dW-^G+LGNzqQNbH3>M&t^?qQN|
z=gR1zh3DNv<|}6@K$XOsbE9JiDV@(Wm#iZL-hylG#0m>M@R5u={cjhQ-*QRu5~2jp
zEc3gsWho)5{nh41D=oD8x1ACp*uXkVs+77P^D?ET*?(hi>h@vh8o4vf@IdOUJ~igG
z7`(ppm4}xc*7x`<1~}uM!Hq*y7!d`1xy%=Qf3Bkgy_PE7Dzu>e`pBc>rrhvXc|ZAE
zPn?VMlaW(7%?{*M+?7{M1i^vl@9A0AO>|sohd$qy4EJdMK5XwH2cqf3mc1bh1Sqd}
z|HS)FE3_N6uaXU}S6uYc4vQvOUp^nd%*Oy1;#Uj)II+NjT2SzQ?5FTPZD0D?VhP0u
zC3rFWkYiq(Q%&C81*BfNdp4;E|2+Thah+r)2R{_zpJ>Dj8NbbgU%$lt{0BGHD>2Vi
z>9XLdqb-;lNEJq9fW0r;xo_l4wi#iz`1iauo;N2%-wzlK5QIHn2Mbl?g&@@+$oKg>
z9uVlywaa@V2$8ba2R7X>m%hwC@*xfO_v}P6vEyDvasK!MC!;jDr3}VTU@uefvS~o}
zs5JDbhhS}pBIwQrR2IZ5!CQmg^)k#oI?_^+>;D_yv!cB8^$lfUF?u5X?WQQ4Sj*2}
zZ<hj{?<vkjo%o!|_KMf-H14rzaJd~@=7%pM1-`i{(qL}*XNny2UjKZ3_<Iq1D+aw^
zewO_x4z0H=#XPyOM_1lL;F**REI14Q{tzjQeSFG}O8nwL$y8-)itzVbap~a8-;!Xa
z5_HcMduyZpnWY|LF3P`P;?LqcF^JE*^Fvx$68O9&k1I_qA%E)|X-X37sEk%OPhfWw
zIVF3(&>mVt^s^`bJI6nb*u&!~+>Z~TA9pH8h6YBE9(p~Q@}-e*dzr~n*g_yf_L5_<
z1!Ks(<fUA1-cO`3!S*|tqLrZ54=GoAHjG3K1=6oe?V#q{iIP^9^zbr9_ZZ2V4%o-I
zFMsp@O8B17uFpBj3Nc<(9GS*jD8E~Z@gUB3r`?UB4L8Qm59RxUQ)emRpf^SDVcZ8-
zDE*^;@CFOiHC}5>i=qe3qF0v!?a855%OJXIbQx8A`b)kT$_l~k;SO^%cyIi*Z@;Va
zD!O?qzAsad8NQ30EuCSag~8PT7hTPH6x9A>C?}W<tYcDUm2$~}!lIrQHn5*XKG64Z
z3^^3Lu3F6+(}8++=c6Yl>yd93b%ve`-ZR;-$zCvH1KlZh(smIwG!%r&h}^*(l&0YW
zLo<`ewp-4!dt@EeNpO04zY)ggU27fH!<eUg;PoC&%(LHpH1*N-p%i>9Y#^myW(SJ|
zHrkWTG+>#lA8&pOdt9ulpEAv_A?y3u>Gm57D8XvhGsSBeC8y0i7@kZd$~JF)rs<{v
zH&xo)GzN009;`DP%cUd5o-p=E*3L%zJCf|=FD{}tMkI=W6wLj2O1_bPiw`b|mn*g(
zW&^Jly^xE1Z1CT=(5haXKR&K*VGSdUm^<xReGZ>1@4w|6O41ephbwbBS;I^q7k;?n
zG}kgwCo8^JYfm*YKU)68-=K-mXlP_i+TVxN)HU}<1d@~Vjb0U{2}~1#7b6a-d|x0m
zXzR(Ju1*n02i*3t;Jx$vtR3O<Co4pOFw=!7$t84ZqmK2}Ml+hHRXU;{Fo?!vO*ZNp
z{t_YrhqJvU$w|jlWM{t4;B&KM{Y$sWRrJ_Fif>Vy0zR8w)X|uwAzke8q9tT!(4(o7
z6tsGMXqz*?mNIpdxa*i9+-<vtE)y(_qqXJ4*E?yJY&oMy^VE*>@LUeEkP*@H@?Ij&
zlEOaPhYb^-Cg=2etcD5O&U!(?=TxNKgp9D``-ce^7AFYxYC}T`(Z|b-H;F28iI}Xo
zd1Buq`9!-aa=2|HZmh*SN4(&^l=I7qid183Lb~$lA3@Hr^lVLPgJ?fA^Gm=tADO(n
zV;Lydfx^r0wihx@5&^SDvT19pgy@5tPx7Ah6Q9k<Vn*K1qZx*Tx?1}k^d<A{g=V6j
zI1oDXH(RQe*xNj`V>m@iy4oMTKu$A8c>VW%@HzhdMmrsECDknxzrWfa3bvR=f<m(w
zQ%n9LIf28qg6Ip{_r_o82j)85vai$&^co{#De=Ipkdn0a&XY=PERoQ*&E+lg{)P-w
zZqv8ExlX+6H1xL@+9pV%J~=Vd^F)0~?<t17C1Sg5jFzl&osfO`QM=n@m@pnJp?oZZ
z|4ynG^R4Kx7dFozu@C2gGRFT1h#RnzI=oJGGWwE}T74?$sdbi!YcK7u?XBb|wV>3K
zDQi?D<4KmX3$v7@&WiFaiE46E-R>u`Rs4Oz#d?VG-Iq0Dk9)sPgDMIA?f6Q~yG2HF
zyZf24-;IJa_1EO}bp1T>bu!P&U~Zil%W87hmz^h?)vsqUp1}NP>7(!5?dVBSfp?5g
z>aF3w@1pjl%?Y9_L{zb$eVTB5TkPtd(M_CHy}p@tn1+<Pp4@S4ot*S5CULH$m4X!d
zM?lx}_7WkH+)itf(?N6%Z<>@KMv~ZBp~x3+X-OZYo^!GtAtzlpI`y(%bBRbfaWUQ_
zWQF+hz$nz+2YYn6`GZ5lI7z`pUQT(dOT-r<Ix%f<n@C?@9VwNhBBe-vwJ(}t2HU#z
zu;l}EF!N5vu56ncUN&FxAX}#go;Ln1$8I(#{bZ^f*NAz1Y4r~)y|8axV=8ba2*1a}
zQE;0I?saKLW`svbLuTXnF0-%%+<M196YeSpjZ=RFRlP6|^~`3Jvxg!aqH||xZWaQT
zz7)P3Q+5!$TUVVe$qr4FJ;wqucbWIL^Y#x_ZV+neZJYJP-1cVSCrs}IAx}PyBVt1g
z+><^uT)=ZqU*bpPR0szswunYWVGep`&CS3=xDQ?AXY!isJs;fD)`_my5rHQ1MBy6D
z-J8rkT=V27_WB-hr5-&k1#0G^#XX0_fooMZK>d?2wCHkuJUD@QLho3X|Ff2Ye|JBT
zF|}?WX{%>`pN*-&^+B=!RygK3XLf|7#7v{X0S`Bk^O!qR%-?BNiupJ0)ZS8yyimRR
zt+o~O$Ff7?E!kz+;dchd(thmGG1-4_U+W=ea7f5YQ@YC!frUSWRS$8&@4Qla5zIFZ
zX*`^GhaLBwvM+S9`SZen394H(;shGSKSQta@5^q}aKK<f7y|cZxh!Gt&}#K?I6Gp5
zx?+)+%$Q45@h<YocD?|Z*;N$(vf~H24tjN^WE$vDk$IyNLIopf)`^lh5B0ap^|m<f
z5i*?K2ws@QT(go-l)c7c;B8<2&{P|9BXrXYpJJYGP;O(>+z9Sp?z3ZDG8Tuk3s*~v
zzhb_k6-A)AJS8;V-L^UOoD$AyWYU*Ml7m}eUo*`e8aSEGq4Pz99KxDxSoiPafk&<%
z9PIRYKuRR!if$%1Sllz-qEo>={Y1vd5X1?uuMc|M#ok$ck<Q?*L=H&!BBMx-`{|VR
zpWVdqa~B_?XH|juJ?&2ymUZ=6AyLY0x-pR%J|vT;SZ6ZA?WCaW>~ieQN@a4PJBa(Z
zaml%7W4IxyGrst<120s0>J8m!<$|ub%f9ymI6*?0ey!{SE70q_5ju?LBXiCIXI)dc
zVchuMbwN``IOSNv6duh5$^|u-rLb>nK;?k`4*u^nB!6+$<9oJTssAp^0WRQ2@76kS
ze<J-)7)a;RLc+8ii#6U0@mYnZT}{Ey&(qBJU+5&^(+AzBZ?8$gwc_(V5|}foe<AuS
z1LgsqHhrGV>CFk7g}oI7=2zZ)5nZx_d7Sd)t3|=5`GM<(b+K^~=7^L?$>ufVbMeDO
zo}W*6;FiIq%umgH5Ns_p<h{uS|8A?&sl};)Hi>FnUR4%G&V5bRUr>Ut(XtnhDdX+g
zoTEm<Gg&Y{JlCUdtON`a7d0Mw;JMnJ<B$F_DM0aVd1q@X=CLCer*R=!5T#CYXCjn<
zJA8+!9diLpSz{&s<|)9B(!EP#UU={I({Hok<6a<t+NRyDsRAqgR~ao;l)!dhZR=NW
zMHszx-|6s*G<fOHUAX>P0bC6Vb>`z3z?lH%U%K>gxIg{&IzIP%bTZVj-(`jOW|yO_
z-crNgf1x+^btGWoaUt~=eeA)N41OJKfqBWNo+K&8VsFy1letuj0<gOoX`XE?0tT<R
zU%Mkgcon^u>4lLn)Gkjj9M~fWX5$JE1MxlM!NVKLig^B6k$FjiKM(gi4jG&=(3J!S
z4c8%FUlE`hS)8UB=7spQ!|FkWnCm}UUpgu*2I|j(Dx&1^xxDb*znK&P@OGx5kB#Mr
z`KImO&u*AwC~;8FGkF0?7dRQtQ{g_eynE!b(<<6tyvW&Gvy0B$bY~tEpu+y?%fCNq
zV1M({55CCxUBvYMW<=906&wq8D1G^J6UBdzQh1TY1NNH+KMwLU07Z#K!-NnEwB%OD
zmdG%Gm4(Q^$8BuT(wvs@qKOFv)4Y|lPjW*H@AG|THC&MOn&uc^H#g+yc--3k#tBY_
zY*SP`m@{`G$kyi^CrtQu3)%eT1WWShf|r(<zv=W)h&&JTv-(m~t?)hr?5mOlnd#xF
z=)VI+3HXS4Ut!PBc^YWHvU@pCfDQ9X$MzB|bg*kDx?4`k04(<|sdPKz-bH@HS}f*h
z`5K%$T<^mMRUe0pDht`bJ~k)i+&IpotMI%j!T#B#JA#X5xG%SIeV?v=I2{Q37#{z2
znicH1Jih$EIc_^;8dU*5W^g<&v1w(+3hd@i8OM$>g6{zduGzSQ5T$X9o@eeL4AsyV
zlGR~Ou!Ap2DDfar>@pk;VmJUDat*5o7ImP*@Ug<)AN%3?!ltQ|q&`H>MjhRAa6cq4
z_vhTGR08E&eNnf4bm0^8;ivm>Z?#UHPkyj&9|#QRwSLDu;Q(?3hEuw5PohZ1ep(-9
z>t9@D8`}?kV;ShAk`Bz?;J0*O(FKt#R=d)c{SYO_;(q;yE>QgT=v2Xc65GnLxUjRj
z;6!$=@u)54oET?GKUvU$NT!w^muE&$AD$F-wFW?oY}3cI)DZlpbpAW<d=O@TP#sxQ
zIRxLY&ug4YHH5Ai+P#sU2KeWqTVdR51d29)L-y7hKuzN4k%JHR!w<FMFRxF@!nanx
z3;Gdq@Jiv*Pi-@4n0QIL^l4lcg5KMmt@xr0t0Uygjs3X4yLgM0!V>qVZvKLbNJ-FT
z%1xTekp*vci3H^%a<Fp2Q8U9+3Cgb>ww#H?dGe&9(w-#DX*aTIYWpA$OK&?0b!}xp
zU+}MeGu|^6MP783+>wWxxGt44>?5enblEgF*$X1;m8@nO3b<!{Ek~h;9kRkBk2MV{
zz}b5bT5pHQLo5&7>9#UC(D_t9xf`Ycb7{~0`0_C~f5xhc%2Wn+=<YvN*N_2n(}T)+
z)v~bvc=T+3D$Zy1Kk1Cbec{78`4goT`2Na}?_6jp3oetIx!xl3V63BfO;KA8E?#o|
zu#GuJbkErxYs2<HOWomu@4NEQVsqYgO<fMun@2sI6!G_h!e2Y5ZQS3M>wkBi4gVfC
zSpE#3!|%l;a)W|keE+=7G1e<B1@wNeY_xr)fUN7@VQFVs7#=rqoCw3dZ}ag_j+pl%
z_f+%Yokek2sx35rgt-T%Hj90J0+JwF{PBsrw-gLexH8`m5QZzw9KF{uH|gI8x&)mv
z3HTs;sn8`u9KNdSFvfnC0>P{GYCE2|k8ZnD?D;|xdW#g5B|eIQ&1~=o<|86-(B<Og
zMa&^^`)c_vT}T=XPjgc3sEgsxeak^-Suy+^$jmP#V-L?f-*k135bUXYY0}DpdCaa{
zs-a{Ouzgv3H-R7X+yCWRYiLP>`@zbRd3^r4x25~y)+d}FxXVE;U@s1r#ex}<J7h7p
zcGg)&KpGyL9&qDolz{3_0=ttTV(_1Q%yMD6Fwi%0l6m(@gJ$_lvm(s9E?y6hET@r%
z+{B<T{caKLbDc;t{~`v;OIe9CQL>Ql|7NWP_fzF!mJqqHH0F((j{d5|`2(scs#Xe7
z%+(oJ*fS~x2d9XW4!I(5!$Rqd1hY7380^o{#B-C!$88??eZqUEH`^+Wt<s=oANiR^
za}T6iKWpCIuM8uXjEB4hmEgSNThq8V@*r!SN$X9Ex$^s3XH@YV<mQ<ZuaYq5=>4GF
zxG=vA@Yjh;hx5q8V}0AH+juXNO*>|IY5{vXs9z-X*J3{VrAfT<#Pj*SztP8VPq#Ot
z>N#a9JA}3*9E|^u4)}Vnk33?ff-c`fezzMKVRE6=vLqDqbTiWy+EduzCr?p^*8&Gv
zI6ie%3d0<JPoBU}3k<+mukr12Aq|*1_@p@O3Se&KVkO5(L1<1rT5;ACdqu`-igpWl
zp)#josVWWsU2S}pnymz2a+>$mhu=K#d3oTyi5(YsT`_s`4f{fEyGnCsE4iSbGu~7i
z^IMv~S&#jgXM%71kH`4&`G|Bo`3ch^BfN?Kk9@_L6Wr9#tEetBgYeGgf7b75;ccB?
zNV79LsNFz>t`{S;iDtTSiP3{ZW}jC)-v3vU6RkWp;;<;oWONw!9?xF(KVGgc29F|0
zdOY!xK%pKwseeNWtX!X5?B^1M-@?w@A9n;H_NNWGVlfw(dqd8$iy)NKeERpDQvni7
zr7!M`i$P>W*;aZS2i#Y_>*s<!cNcq3GnL%u2FZqwR|~STAjI_5ZGue<SVXqiq&qQx
ztb_75sRMJ3OX;*<2FrkgydW)yn*>aHP)km43F7nkWrGlH5pd2v)*v=12)4&-;55!N
z<eliHZNdIQ@tnv~DhDBOEx2kl|40ZdGQa44H|K)`hOexBQzao$$;#NiQUbiMy>6<*
zd(@jjG4q@m0{=f3Y`+)h2TQW_yN=7eaMEMr>Q&6IXFWM@&x$=EOyZS;u^W5fwR>}t
zcr*UIT;II%1V7(HT51s-Bz(@@mFe!S6M~aVJl&IY{II9UFZwXfZ}5J4Gs}waMg0yz
zNsq8Uq11Tl=KCd4@H|dJGx&K}y&9#~hP@YOFSLj-Vqbtke+&=$!4G%drQR7Pgg{f%
z`=FB-&O0doCN;S60T10?m6Z{3Fm!jnUlb<*_5y|yb|?6uC|`St0sB3T%fEM!74pNf
zy%nMKUL1CIZ!BIuF9reqJWP%r+_2i0#m4gk^W+|$u~E_$g1Lu6Goze*pz$<Ky3dv!
zTwL##D&lJG!fTV*xeZ!a6IkPkRb>I{XHL<=IG@WCdBw9|k_)1)Lg@M;3)C#=6z@v2
z!{FqX)g!nk^3$lPQuY};{Or<fIF+}6T#|-rAK*Dj*Xk}&w|^U@864-~2&INrw7F<w
z$pIG&kLh)Ltl<7v#2bWpL31(tdPq1|x9BxdZ|H};!j3G8Q>hh1#5M8M1k6iON^oub
zD>{If7PsF#2*J5HK|}R(|1rT2{=wBpqATcrIQ9CRA~l@uI{ns$w2p2IIPk3e-+P}N
z9dx>a3iu5jDJii}uFU906&3D_onM`QYX5)=P9IBn7w1j`qt;Pu`Re%RvWV+u#d|>$
ze^Vw2IcofTgmmQcvE%#itDF}&=YB$Rn#&}B1CmDl2EQ1wgVIFn>T_#+o-@nLED^?>
zzD&KW8QkxoF;7m>z<KJX8x>_-&zDg_`&xh#p6jUy*pbmhaKVc5sl`X;OfYgd@5FHe
zb9^spSiI}!0{R$<Z-2t^IkfdKjUVn6zj#ku=_JnyYrH$Hd$=&S=lY)<nHesqvU@&G
zSxOIIuw;5ho&`?5sAMf5V}Y$%6;ppIHh{n5$0tTu;r{D#r<KFp5PIZYNjm2C(iT=7
zt6F6T%RPqTnL$kOuWp~NoigT+1!v^H62|*i<|b>>aUP)awq^5E=7pnik+EK*yimOF
z?;;g`Zv~uNP~!Jz0?MMEi_INeAW5mxr-*xm2lm~J(a&UuGpCBLaCWl;+uL&k1tC)4
z>KiTDS|JZ-A1LtdaLI#5^V6oHec}*k@cqA|Kli|(<M2y1ElEfzo;+>OEe_>|3~LV9
zr#3Mj_KRi#f1cYJ3;JagApO!&mrzDAxLo?|%-dT0euyjG_7hNsYw_}?CZBP>y14ut
ztFkC)PM!EUQikW%X@fIzxcA*AQ*Us6uN?4^n7Bf{m0+MSv9jZr92i}@CM@D13=rMp
zJ6$FQ!y19zHF%D#GsTYLU&-QJ`h99HJonH`x3@iQrvYB~x@v=1HQ@ot)BlWx8f2{v
z&@|)x>w&7#lgd}HU!`7Xg!!fxG{GI|9X(AbnD_Xsi2E4Tx7QQ&)79XVv}}9v(>)L(
zrW+Wlyo|=UIU<dB=TTVG2;VuE3FI7@^?qi032k%RhxGHWqE11|^o<f~7}HZSDDL=0
z(C0TWn9FUW59Abe+v+RmB<pCRw*?KnkH~cVX1#`n=;I36q{&I*QFr~LpUx7h;<LPL
zzn6%;>}E3#d*=yrp3(odcLvevkl7BZ8*OOWSKMLG#0E0cIpga$u!-(mud>^Asw2GJ
z{5Xf-_91~(V}=u7SCHVylEQsoHfY;CdpaNIb-uj%$>u>cqGE<0%<+Kdzo$+3Q53$%
zFHvxB*zTaZsu$FX2dN?KoY_t&F^Y~?{2G(~^n`FenypLL$qGuIZLF2}ei2o%kn8gs
z=U8Jak^;<jk$d9UuE;$;h*h{<du;%7d)N1UA95gvPtdO5_IDFe&dX)@ecVQtrn`w{
zRhV}YZqAa8{atLM56H?CsUS7n?e5g{1{yiK-}lmg<dD~N`Ipf=ADnJ&xlC1o`(cgJ
zEj8KGXhZl<=}U_R^e$jIZbct+IT-{cU+-my*LJ~Ds*DTByK1g6>K-}FFVI~H-#?9n
zq{JLFH8CgVeqH!*G7Csdu@tCb4w_bn>hba84Diu(h0bLH_jDI$Cw)a%Q9%39lBEb2
zj3*zO$icZ2W%W~6?mDwT_TlFYA^80v;9_7Ba*Q4f_E!9G3ZsYE&y!p3fcrBAgEq7~
z^su<C&qI+&3-v5A9>2|4;f4Yo)z)Y)Qk6e{>JlG4ENwcwkYV0ht_9k2`Wyqi$!$>M
z)!jvb>o?4Nu*dut$M*N|T51p*^WEy4#yNn|r`-%ntdO%_=q84FWlb_-dwU|e@ZS7+
zo#<s=cs?JKcej%Rm{N@5|2Z?l-rQuzPDe&y`%or#2?L7AZu1_somK>P4s$kV1zDh=
z`Y`eq_cqe^x<st9ioi;-%G{7M8~pR`+vkG&JF9F01GtO<=UB2nkhOBdfxKKp8)_EZ
z@6fV+cbN{3-f{ZAit`*g1z#)$hS@>hv2Zg0_vk-SHnTrGMhS8seP92nCWFdCI(dY1
zwuzNi=2L38U(=HRYw7+X+NwCL>d7#K3O1U>A|3xBo)cP(EmxKiJ%#al;m99EzRnwS
zhk6n*mqe}{P$37Cg2ZK+hchVFA>z~d@>#U}Ni4}lbOia{(s2@$Uq&1xg_CwhqlEbo
zBC8^m6GL;xcf^NU&{a8~g7aLhXdjdKks{PZ*!vF<Ru!#;+In6H<NxPVKa%gIQgQ>2
zzLNV@U3NHE5I9zhIl`m<=hOc!v4O@}?!hy$_<O6LAuHx7CG0KnF204|%V!vu;yMG!
zA^iU14i8@nxLHTWC=xeF45f^Ba338eZVt(-xrg;2n%n%^o-8B87iH4)?WAFX(fkpQ
z8Ri$a%d}0MB(EYqE`)sV{@q1f|6p#F+SrPOiiTK~rCNwEs+;4r)tE;XUP8VtiT$Z-
zgQ<r$m(l2=`F<;$6FGGBm(I67T4>KKHtWHCzBPmGYry@LFcKQ%bv5~k;x3G|srKW&
zIq~rgBYwUeR}Ta@<O~uIo<EF#i8-+QoFA@QgbKhyO@5r>4|?zoS_!HT+(daX#h)9i
zCeVG^@cZAiwo&d<gxzCq3i##EI_u>|kLO0Cr)><EQA4t9$Z4`3B7nE7v5$WVJ!lVS
znAPCKJ?M7RUCJG#-PAwlvnmf7oP~@ua$SgfuV-K=1qDbxG>vh}rvsBJh1V3yG~l8&
zEqOnX8MNBm9`!|R5>eD4zukH!k&R-ugC))({GQww$rVEhFR#R>YnHOZlVxP9@DKYa
zXKh5A`=ueIwp^86Z7=4Q$20qy%fa>P9`lo|il8ql+UPeY1!=Et76i+w!kdB^Idy$i
zcrJWjKIDfg+_=>JJa(@n=AFvu9kJa5ysEvL@~3cLE@}5hEB21vW)VrOex?Yd>_vy-
zacRgiTh!&A*$akUzb!Hrl|YtZa(T-X&kb_R#zHn!!QyrD(+Saiz^F8wyC2`H>&`ak
zRcC3yw94F(xj-E_;^A>><*Ncb_1o-z`AZKLPlw1EM2W+Ldp!xlCotbnIi*aCS`{o$
z$Uc&sl!FMX;XsCLc`*5uc=Viw0_ascKU!2#fXjDyd(7}XYG}x(wZA|WniL}KUs7S-
zDcf^r{iHdx_@YYNXn!8TYi0A_IOal)wra%M8I!^Fp&jk~nmJ_li&yP(EDN4*{;Br3
zMFC>wC(?FsFLp4ou*^$~7Gl&tG`z;Viod#=jT2kUz%Gb<E2M<sNA|{M^-p}?h&OpB
zwnz!wH|Z<1eJ}@ub;kCOJKp<K`*>1($3BHn-(kgMGB{aSshttd1BwB`Q~BOxkdA{9
zfOAI=(heJDtulezi#`66R|R2|-|I7V2Nh6X;S?Xs-$LmFsgmQDaNka2cXP~+8pJo>
z8#UrR@8s(?;sf5V-ozeB&ukiyoiZ98m1Bih7NK>v6}0d#o3rx5Nu2Yn$$6cEc_-Yq
zVkM@@n0Lb#L?at61`8p@c5ig~VLxAs-IJ3%Fg`Nt>C%b)rS|PZ-8+2HKwdf!h4-<S
zpRr063kku&i-g#&6d6paG=6O`WQDJxTe%WF*gI*P{7ccA1;`IR#l1LTI8$1ZB71}r
zZdD%Bas9K6GEZkdp0%Zd=;xPu?Z42#l}x*Ml_{KWdzZp<g_;7oDX0!@Vh#$s@Y0Ho
z3l)q_w1zT}xWI5O|0fY44A*!V<9_3wkh$RrUCS>#P~J<rW_KK)w@(o3btf>dm}-RP
zGJbEdDEixEh;zUNuMmmi`(j{bWh;HD2Xp0n{maR4?||vThPua50eDr;F`ctP4jl*Q
zy)yRk!JCX%??uK$;q@<h`gT{$9XfGMPMwVr66>#dKEb(4CL@C$m3;iYKbFX<iF=-Z
z?3|nOM7iOm{}a-#fIQ^yJh{=BEC5BUY}c$T_+a6IhQI^T5=tF2ihTcv6I2fVR`Jvm
zg6IIALs@t~ll2+!vIOVwB|7XzJTdP#J9FnDKDSc|*n4#1KFi!_x$7S6Ss>5KpLD^w
zn$$O&6^AP5Ku;oL+8Cc30?V?kyYP8eIsf8Nxw0^<<=nP=@*8`v3VIK$E^>jE#v5lk
zlWn9aAl3Z^&oyPy;Af{Z^pK#q_hb;})W6a5XSuw=1fI7QON@aHdrJp2o0j;YjdSrL
zH|EBTe7SwX#*rR=p-XLD`eYE!{_Mz#TNkP-ZD{a&K@9~o0&lbgH;`JlKfBqhRrLIf
zb;Gv{46xNjn<`haj6SL}aZB<|66u1o^meqv=t6(Dun*M;T0gFCT5mOryp7&}DSp?E
z?$0W={KkEutIn@~xEG8gr_@(xDhkR7`GS2Ba}#645sjO=uTEAX`Ed`%cD^2>;ZqR}
ze=3QPy#D?njoAoM8%59fiFt`28c97-#~u?5+Xs>kU+5%G-lJev7ak%i&TlL^hKv*E
zPrTf&75_yjo{#y4XOzV4)<iKgh8be6<nzaGKi3H!1N$nb`+o^D1*hG+()|Qk)LF}m
zDL;|KD<OA5m5*p_=j%-+>@m;y=WpmMvp|HlQw~L#%@U?l?|KFk_~G$|`*NN^;`liv
zpA7KE^Jor*nJO(F_;Wi;ec>q&xK(wYbsnIFhpr(t=Wx&V#~aJZ!(l=&xwR*F7@sSo
za*K^eoH$`u!t`^u7M^z;Q2yPtLk6eH8J@Ln(ST3D=c<5Ua!7c-##!6Viszgk7x@Wl
z*l(+-%!j=emER5ff`uueHcoQ$E1vK4at906W4`RMyn_L|am;YydySR0D<zz9K6I_T
zfF0JiT`5jSbf7s3o3IAVAE#WsnY|*sgw(jRM|cOS2~}|GE`Le~%aew3UuE$7j0YRo
zwy2?vzL=?!qYKqUeBU|YNd^fLN5eL>*OBt=P){oTWmG2fmucrsA9~T7_i=Nc2iWRz
z<;h(|A<qTMDfL)EMI&!lkWUzb?wmMvTt*m}Q^s%e`^iG~k7FG}V|dSZcb}n%2Oq3t
zMe`27W`tdJ$*C$^Q79+TQo$w6gDki=UWU2&23tuQ(|UZcm*Vv;O3W_}oRNvRfP1|M
zDcIlCxZ+%uakTFRoEv*C)@12W!~z`O^P=cqio$N*Q5h?o$3M<cLSsL~4w^P)<;O%s
zp(iKju0y^8L^!CEiSJhhNBBLo)6NcUaS6)vOM-B8hrCG&&;L$2#!yV+e3tNB`Ue(0
zoWnjf7pU%mxzj<7-ftu%fW3EKp%U@IJBj9!B1vwD`*C)y1#`0<<&Npzx+?&j{Z4;~
z#SVg}q4J>E^<RW0{dLjxz)4~z_iw?G@n)iP{dRuwo_~Z{RKz<Q2Hf8(&}Hvp+(i9`
z@;U>;Ylu9mm+#sARibjBy5;f+J@hUe{A7cB6P`&gshEC{0o8}xjAneFFzJzSP#gY@
zoVoLaUl|Rcf=d5j-)c@gC)pS3@ahBN-rx4-twj%7n+bJcVVxoj%bovoKHf*H-KYF7
zJbD@_t&Y(#+fak{BTeD2lY?lr>xm%0RwHUGZr(%2u!82ggG}uC8<Bgr!nJU&Y2<lE
zxu?i#mPkq4)~szVM&Z9)pZ^OYhpR!=54ygM5u1?-e4my_P--qY^~3jTNWeym{Of~B
z;<UhhHeEUj(m@%T#A-Tb2p^o5oL*i<#>!6K_Alr_v%1iC;l?bI)0|?1kKAx3qotV^
z_x18zeNPN~3WL4)rS!~jN_ac5K6@mM4FVq3>`bxJf{nBg?@jC%l1dTq)ThU}Zkjar
zs~5<?Kh$C{{tq)mo~%$Cv*U%q>Tuep=}bVT;GP@$h!IBIdk)u}=LYV5e~Xw7;^&L)
z@rnQ1xj@NV>d`dbw;D;6c5(z_&(`_<{gcPJLHAK_km3`}ITYM5sCMRt%4M0vs_y?$
zbl&k?zHJz`x9q+5-YT>EvO+|PLW-=ED3TwgM3JmSDp5p6l#x+NJ!V8CqhyEdy|?#%
z|MijZ^?jb_zOM5;4jwq0ryxbiAPl*yIkzuQ;(jHoh(MQ|Ac*8s7WI*_!G`L+?-TgE
z^<?PGfIkNdOa<TdlEHbJn{q)cW+H5$v+MTQ0`HBlW<3iCs8)e^g`ds+ga&-)JRct3
zrU9o9JY^)2QiHGwcMr3={g9*6-@}TZ&#L&9e>9WHKsAqT+RJ`CCl)KDTilU><8AS(
zA0))!WYVwAOjc=Nwf%c{TSf+=Z>TIqjbpC4@@~Dnq!gZit{I+HlES?%M)zm<`C!`4
zojuh-8bYW&g;}VTAb|4>#A9D>)MHmYwq9u<S9CHgwv~m-mo*H(jMQL%JzMRK2{mY2
zC`|HKQ-QQ3IXcQ@ak!<Yl$}x_0mq7_8*k>x!1nu`KW}|7kIT18jcWya3u~qG=CR);
zf!8OZKS2UoWkWuFqr!aGU(WHjwq@WqyS~&2zYOeh^eQ`13qq3P&LkVt8oJMP|DkU3
z9&+wJ9KwCSgh<%D%^Y_8GpeN?sA&nAN5+>bG&?0}z~}?pH&<6OaO)4WH@-**+Ru%R
zRp%+-p{f$!vgsmf`peZe!%hz2-zUyi_2P5(mo+C6u1zF5H)<yLmI5qz4Mo?^VP?|E
zR8L3pB0BQvU)R8?b>uZY6(*m$ikjMJESa3QQ2rM!^&*^$uJQjc$~3)zgjgPa#M=wh
z>^A%=qn-p>wx4z7?kB^%SlNmE@8d}Epuu!N10`Ii{7Ox>w1y67xVD(5Z=!g^)oUjj
z$YAP1^iOn(1ehW}Q1G8xLmT9wH|x&rA;a@$1;gJmKpCq>V;$y{o2{w2<!V#IiG73m
zPyS;AW0$p_!S~E?UYX>@S^W3i?kCNnDvx^;zw1v9IkAJ9iqMYXA}y%AXwYmvO9uzk
zmMz>mFh9MiVd6JF@6xUYspM5qgHb)H)<L{qH8y%s-MWUoY<j8WLmrqPK%09y5np#y
z%<~^Ds*%B$U@O(@EI0?Bb&&El=1VUr6j8ZpQ$oCV99{+C{KJ86nn+5VmpC43QM<?l
zdHpsX-2%7=Jgrw;`iUHb_}<!=4KaezBaWK~H5oySubDtNr?8r6Pn&s#6WX+5)*>-?
zx#BKeuhVZ1(Eb{)n5NAS?8!d)V>C4IroT&+dYKCJJteQ(ydwp#BSOiSu@~o>NQsvO
zBOToLBLsG`n4!e$?B+5DA2=q3+kC|yGiH97amx(MOOULS&SK}noYZaA&o38I-0A&6
zhgtdHQoNJwEau49)2K4o((?lM{*#psqbv}r^1QAjY8OdYRtxaHBY`qq5q-Z-PRuPk
zneYSin|}n}rIT31yvjOmGVQfRqA(<jWIyJ5UJA?)DZzOj{um3(QzaZgLY}$o(9ZyZ
zyv~Nqc+T=ihqz<FO#_MwIeITJf0ZiZh-uM5aroB1&)NZd*SB<8uSP{;eiO@(a3=W@
z;#^oGZpcaEoYGzDC#Ad)GB00acVQm{TJ3A#n!!9I1(F^+Ms~QpaDwhI=7Onq{Wp3B
z=l>sO?ERaeq=TyKkGC2~z7k&A_gD(P^&`Q9A=d1@BZx)Y%2JBD6CF}3G<A*ni_#wq
ztoD}G5Uq{*W~{rU*f+XAR1^1DS$)_a4TqEyPrg1OcySL*9Vxf{Fd9Z8QZd=HQ~2DD
zS%iTT^Qe_7@R6S~1(b!R`x`q_!^e&Igm{~2^ix|TE#uQJ(n_@0+Z)B6NG@^fxNO{W
zNupEg@YqCb+*=KIjTcZ&?Y^#*{dkUePIB@p=^pwF>vFF{DS$kUE5m*CDdLmi?lcOn
zA_6{^Zk#I~CTu^9O_TjxMBka3LaPtagPUwxaH0V%9Qa#cGa0&!4tn#Gt1|DPF;)fk
z%aIF6sjuZp^Y8|mUbY@@{f&Ea5;g7)okN(HBR@4_T!^eobM=j|=PNUOOOwTo60)OT
zn)@-bz^$*FFYFb!5p!Ty;|%s69Yv)QBHPrELgC?fM0pLR<o2tC;orx-rLT;q=egj{
z^=H+|X@Zaz-FC3YVF~5p^_qwK5c>3H@{K>{f6UPTf;X(RxEJ@~ja(ER$SLgoQ5MAS
z6StRJ5)_=U?p2fiRvgdGj%e84@e+ZRhkTCOV)XE{`90fu_YT@RDE0jYo^QW?7i+U^
zPYMSHMwo5|Fu^;Pv=<czajqv^GN1-?bcvS*o{#h>VaFrY!IzW;Dy4+{?tL2}B!nhM
zr=7Xr!S3@9f`6D{>dZ!z%?KN0yQa6_d%+4R84s9|tT=Quj=iBT!soM-ON^%?c%j0G
zp)%_k=9YeI^9e}jg`Jn#i%YhWkgzR#`qoqI`_hW*3MEs4He;gu$t`){jLZ#tm8%Z>
z4qU#tkS+mte#9KUM5zEi64dpS*uNZFK<^uGAqQ*K<|%o~%8=``TPKg_7)P~p_mZ;Z
zASgFZ)!XI(oHe*E)SMs<48Nq@8Omfp%;>jzCgyXGN4bub(}@9Tnbu(sN)f1koo4;%
zumY5Pq5bmrp$fPkxfJ>8h#cIHXb2su$9W;aUEUd236RsH$_cl^ef4S1n~%vQ;j8k|
zu(&$x?cUhWLdA*q-E6I^$=DxnS<|XKaa;m(;PvQ?@Xy&{ed=>?-#6qmF8geG>lNZ~
zPCqvJX$(0=#^x6u`-WVv2dGA6)T1bmneOJL9dtJQ{CL(b698QXzv<8(vicyyC4;#P
zxjczYM+3;fndKP8$!%tk_`7}n8|G5`$_~-I55``{pJJ9L@%h0)U8hOEg9;YJ!LP1r
z44E^qtyr5)pyTsD>dvk1q5#9*K<Ug4l)`y7=wrhmGQ9iEiP~=n@uHWOq?fyqhw+4o
zSU@*&5$x{l(O*FXB~llrokR7tlm54I8_;BbN<Q8Dc64Sr>8iaB6`YZ6yZNq(1WZm0
z`q0%bpvfjx4sSjR;5w6E-z>U@`UhSHe8Iey&2oGG#fO-u;BS{M@@g0H=hGdiEoX+e
zgGVoYNTdgJ=c85ISKQm^ewSKyf*ec)zG`<nV(#)r?cOTIZ={%KT~vqXBpYTXLE~p=
zAu;6K<u-X*&^p^|?m$fitYJNYM{#ei=VRyR0Ux}-qTioXh0mQb=k$2X4`E(rtxYnO
z<vwr^W^G!Mq=Mru<rf}}<9(#U8MPr+>`nTLYb7l>7uP|>o;@gty-Fu&#^nTHuSe{q
zvj9JYwg0pgd_)KK!yD=cBCuD)E%o~wS2obM|LrqPi622p`A^+s#_vxp>nxfOa$x@M
zQ!Q|p8tyPU-S9GEhIkKsU8RT2uofgEvw?X(GSt^fRqdI8P49O;zc(i|&M^d8*>S_I
zfQKI^Ww5VzDSN10k`>-Gmrpu=$Go1DSD|h8{4m9#`M&O!2q;yVj2yhZfyDl5(TVr&
zA$iXWvfdQbAVFNWF`y-Z?k@+d7BGKZO=Qz$Z+(XNC`l1S>h_CBXMgCvo<IR}r*3*a
z)f*uqNNoDfx>OTvKN3u`M{)06D=4C{P6k%;OU6a=M8Rl2>~IKvK5V9L@DazkHJAI}
z4HC+6Pu*-tBMv{mouS}%>Z-%u^vrjTGB#46lrpSc9xeg3sSMOxnYcH)Xw#)BOb34&
zl?MhM(?XKJ0<~Y*JUX5JezAv>8S=8#QNAY&MEg}m`d(lHMwa#rmHTv18fV&(vq}yx
z?zOnj`p^T_pRNaG<O@Wa*dgBy`US#>BQkYRev**j(J1oMogmt$!hNrPT_S`&d#Tdq
zVP9k1)r$5rJ7}(R+p7F09Y~CnrplI6!0XnQSPNq^kgAtiX9~dF4-?&gvGfeUPkrfp
zINnFEJW-)F!Fz@;%=gt}@wr^qwrKs+>J&QTt63Frhz$7LH1~;_w4wcbLgl7<!|2G_
zulJr`YD62ZVKyZ>!l3$=%(8eH`yNYNZEUf>^uiYvhDMbYbc-Z@JI-_*@s^ZSuo~>3
zq3QSjL3f7;xyTj{Q(JQA4cV7t5;li;@434Eu4+fTOzN~ZgsI_GKF7h0B?{>E`uUqp
z1@|H7d<4_l@cY2jQ)E?U8m+J1j_%{Z`$@02rH4H^aUb$$@oW-5$WXoAdOX1mB1?OJ
z%2GIh?>npF{)g<aUDTM$>&yc)U&l@K__^Te`l_4VG~SQvN&5Iw{@>R*d}M?Q_ivdk
z=`~caAL6eeS{4%oX@7Qo<z7+9=3|%QJt+*$C5=@+J*;q7z#+03?`wZ2_$2JI;eA*T
zIiKUheXvO+_AZ>o-shT;e~C4?pBa5bHuDnhJv@_MZo<zy3d*p1r-d0R;q$(dQC2W^
z@;iO+GR|QvEY|ts^X)OevCv;i+lcNIv#TFP4RIMt@5_3wAbm?IkCfdmB&$Wj@*w#d
z!DnT0*1&TS4Sjk`k%;Dr(V637Pa9Xz{5kOgI_$;$Pq@bV#b4|(J}<N*z{3kCcQp@~
z1WCYkiH+_julYb&gb7{8=bpp2J*O-TF$c9R@13$CD@5`Cc)*T(-@gJHhCkAZ09(0#
zg_9#bXL4_g&U9lx5f`H+bsFYbbn2DSVV_2t9#wo9ALbA}DPX+e#}D);?^}I-B#ZN|
zr(|XRNkCnte1Ec)EQmk7MwN_v;!6kC^p475Pfn|Qh76w^{IlM#)4i(<vpHAFw#lV|
z=~}2&Of(bp*}~54Ju={FvVO*O67N^GGOx7V!`!e&76uV3UU*FsR1uRZ0Uk<=2l)cI
zVMODP-U)JHP%qjYZ*ma?zN5;MWgkUgkp0Zh$1L)oMJK6cYdu5^-jFG{VckW<YD%BU
z?V+grkBirt;cpMI9p(Oo_H8b@%0edXle>wkj(@ZcHF|`^4h6;;D{i3)h3&*8uMYIn
z?2q~jil2nWvU#PIaUZ(uG%iRp)QQ}<M&p>eyU{{vQ!LG~b<{Rr$vLGlj3P=?g&zO;
zh3ckff7!?nqEdJ6)S292l<(Ru73;i*gs%OR6&+bb8)_bJw%@j*s|EaiWGpL);rH)#
zqpTiuTrV+y<?#w~3<&K?r(8!1<Ldnaj6aEigR7EOFDKC@rl9tw@+Fk@Eb_zz_H~{N
zs(vCJ@Q0{*Wu<cYP9@S-bG+|mxPWAQcuqao+(sMnf!e>GH6fL^y!=Klmxx%~<2S07
zwg@S$*fh>9j!H!aKY=GI?3Kr!oV?xPj5*l~a^{|xQ}=8r3QirGC0zK6&u9OfL3fs)
z39-LkBr1>Cnue(GSK68MKM#r_fhk4}n^mT5ME2s4_;H67g7fE@iyk!Jh?~rIr_4>e
ziJGfD$IZ892p0C9EBR-hpo`Wc57!QEBg2_T3mUIGkht?Rvbv}(^k(|Yx#Y5b!g{Lf
zN{G}HK|jw+(<{=Cn%n#N)oLb)I~OE6#Eh{Yv9{KQvS5t}{@AKhYqCzzT&VFKW23J`
zJ34pOVn{2Ge?E|TVSa^}<a|YH=C@4rum8D~@aYdqVP8Dd@nM?~Us{|9`2LrOuV()y
z@oJUWF34pQjHRi(m!;_<f%kkjh6CfQgX!UzY<P-D0S%-(498rcq=&$4=1aaK_&&u*
zKSIvO4mUT4Xl9Dpz;k5wL@6)!WRItPK7ND=ZUr@Jem>6wi>5az-u1JC|9W77&><>F
zHYght48*zhmhuVuyVyhMDrRvX&rMcRj=zvMVS%0tS3TOUVy@iguGHybVc3=@H!Bko
zf$}}iGpC>OLe90uK))RpI1(^&C|dz@gLNFOzSHnQuu1HH;SWUMN|x8@m#wsL?)v&i
z_IP%f?<QH}$NhP}>P{Q(F%HZT`Fd{o2^;L@J}SF_bLy9Risto6Fn8ej@du@%0^rK)
z{NM2e1}Jt<i3lQLg$Y5n;~IIiU~Ch%sU)_7IO?7&2uP6uLxoKnwfYpgR4_E3b+{0z
z*B_I#$!|pl9377~lgU77t)DNU8utjYJ^sY9k^&1tHBb8}q2sy4`4Bwcd6TQ2ouf_<
zY7u48Q?>N4q+*sEhW9{0y8FW{-~Pk%H)nzKZ6(BuAriB|o?%q>E%bonUn(%oAs@f?
z2>X<rJtT`}=zvYR$~){`Cn_-tIdX#$e}4_%+CCm3g@cm+-e*{m!eGM5uFTxOsQ<^G
zRmavw6dIHNDugkPh~|@%-DGbhj>jA@8gA$#w(bX;datY#PMfYY-xGR?GxW?Mfin1c
z)z_lOH|7Bnzpa6H?t{dOn;i1d%;UtjV4a;e*aLNmzgVp4JkH1Te>J?1J<<Dm$rtLP
zX+buuBW{3<6Iv&?Vhu6xw*Nx-`)%7o^v_AMp2T;E7&mWbKKupyRt29;bM7pl2-9+E
zK1vE0<oKd{p_dG%PwjqfRHcDZHLt{~f}iL>n{B7#>Kqy^BcZ&EISV@}g%ux{@c)zN
z7yjh!Hi{GWcYmHVL`+&QZ2xKdL6~nl)jw*ag4lGwy<VJSfAC$mcmx0beqVV4ehihw
zrK7jT?CPm2TcBmD$#)Gc|2n$!;u|@{jrgFS-^pNhx@&Uqax<Fj{CX^8m>f=i8tr~J
z&I7L>Wy!q7{6K?O3=X49ZN!gruQmT*pU=TkWi^{s7T}(HlW6i_1$|3SOKXu50g3gc
zmpPg;p#OW#Q+^reIS;lmEx%BL+AsbiKZ|9+tv9Xn&=pm%zE7w0vPS_1Q=RfhtCWE>
zmU^1tQG#K{@T@1sYH-BFGls?O5Zq9e+cO(f2fvuP)F8}D(z`zMQ*=WW%okgXZiLB$
z5Uu~4_EBjlvNYDcj?Y=y`M-9i&Paloy(2b6D8j*}U7zSpHF(!|Mf4P%B+l#QIvwFX
zh&^If7Zq3mR107I(y!2iMV5#cD?@r9RB?W)|DGiLoGtG!a+84Y2jRAN+GKGK{aete
zj0$)vo%5v5REF2KN?Q!AQoyFr{`}LtJS1$8FJsamR3v=2RKfS(x-;wQoE|c;87G?M
z<-dm{<Ye@{NB^MB?Q4m~B^!ujPtZc1d<|t!l*;w9F#y@1Ql$Yq8PwIw%AY??f&D_>
zGxOtnSe+s~@<VqSU91yjqop54QL2@GG916~(wo6pr@s}6oepAs%`lHtH7q=)S$h!Y
z)Qi`)yOn6Rw#r}29p{VYlx=n<HV`rT{?5Hy_;tVgRQs;pCQ?cav93#}f~+s|?!5C&
zDEzfK+x~c3sBm4WpjBT&m##hPIQe`9vGrZJ_2$tyGWg7K=5XgEx>5c)QYs7cBZ9R1
z?(GdDhUZ_RmSa~@Ae(~M;=~9#IOXq^?%hb(-WDUHh+IZCJ*o?{PIJhir6?=nViKXo
zzjJ%8r4P}atG*wuKaZwr&xN-R(1SJlz^xLrhb(?}+KP74z|)0H5iZ=1NoY+jsyd7N
zW%0M@te#+xaeDhK^*$1K6}ceux^x4*(J{0aSlU8z{dKMlLd?L}v7!-jnih`CPuah9
zq=4OOwGUng*O31TMN8xY8MNJRXI@ukhq2h{eFdq@sDpd^s}1Ix-JZH~X#@8delO+a
z9{I%qPW{sv?x*$vqvYcCA2_#CVW_B|gy(?4HK7iNeI}89vW#OC{(M83B6$wY`zT5b
zqvBRDU)uJ?OV%h77~gL9)Veo9B;-8Ysw$m9(v<Vwn%MIYxfTB*+KwE^qGII7|E!{x
z?fdmp?ej>>Q6)E$Y!juO(#vvs!vmdXDY$#y@j&cn?xar}TZk|6Z7&Djdz6g_U#wuo
zd_P0&i-iL7=s6#y-~A~bh%2S;A!e9?RCy)A3-c!FF5KdN?#Bn8n^0A19}S$d81kfx
zC4(pC&i9pYzxbR<1G}CM&Ib;J>TJYN!*TJc1F`Y@Ahz*fGDSbmrCw*2S;PLF><DQ~
zKVF=t)*tbIjacDtk3cjF_8g91J~udhj2<Yf9CU{<Hz(G^Nt0b1=P~b#^VQ+=#TIuQ
zs}Fvz8)>2A339@@qhI8QuZGe>?Q+;NJ2@JVSd<V_y^WPGHKMB#I4?jJJW^6iV9#J)
zwnw-F=D4dioJ(_M06A;f&t<9DyE{7l#@qt;fw$L=XpmPUyPEm!0|8@bA|vDFMczi#
zf>mbBuNzU|;mQ6P$#&HB%JcB{uVf<7-tEQ9x<(}P#hFguZk|}xt?oRv)=mUU`1QCh
z<)Im?`JOuTnh>Q3Hu%#yff75*9v{T7o7q?)i8KEq5ml}$h_+UU{T-H;RwMJo`|a7x
zftmMc>C|J7o7qi-sHR-e*5Vwxn0j{jXIndQQB3i$n?wit?Q&mmovRP!(precc&(#r
zBr)&bQ-2{u3Mo>Y+NKZ>)618keXWQm;&9!h@f>2RSq>WY8bPKRTgn_ShlwWZ9qs2L
zBPe*yy`R>q4SC#6q0VN>Cf=<!eVTO~Ar9U6V0GfgZ=#&vhs}0V1cr~jJ1OUaxi|G?
zGjxMou;+dC*o&hKkh3YDE0o9r86=A2>=$>5lE+HkH}okg`^tFUyjGegYGuEt99tx-
z?0h_`>cvA*X}qms_1$ESXscz(^>vvfJiTQ<pUR-G6y4k}6!CQfv3M=U+?u3<bF#rr
zx6;T!i*;V`MjZb6b&5aFF^{6fyCHH_Dy4+3Es524dwRJ4+n}(6oCiLR^Zn<}*H3U8
znCl+)T}2ZsCgcen%P2FM$MLNmJrw;e6i@z)^YA{s$Nux#2OUv=VnS!RfGH|1^$XrB
zTZ^3IK4FA&2`^0S6tHJLW%W}%w*l^TJC6P~pIJwKj@EZI1sI?nW0l$@ao=#ieZ}Kk
z>|v(+BJvaGq8FbYHWIZLfbla!%{jT)7d*bOCR{HJ^WqyaWU4|?Ma#`WKg|xLN8bBL
zHnT##`;%Il0#5k)+s$U+Iv>y(L>7-Si$L+*&={L4Cw{KEI94OZ4<h8H=A?m~us9lW
zeM6oF7^i<Z7XK#)RlZh}r*N;L>y*8Pyowz5%se>VogxZRo)?~rbPGYTeUANBfg~i2
zlu})fl!n&h%!6Y?@*w&_UYNH?49=?OUAc)lbpPN@C}X=6$ej}w|6(Z(A5Qk&B22`f
zqDIKuw+{1Q({cthpGgC)Z6-;~KWTW!6&xW&gZnVy+1yT33UK%&QyvAqG~6hZc+o*B
z0~c*%K3F^LpzwwawNf;SUQ<PEnt9A)NuzP)N*-BdswY$VhT$%;$LdyEV7fuD{>b~b
zS-C_sz4Q#Jj2|WDM{BEs6cz~K0`~0zt4%^}aM(YiWRwVgXni=IYm=D&Ays&@Xp3m*
zxN@HP<st#zoF=iVW9a=|v%mhA8<GA+gCBt^1B4*AMXjmX7GbY;{D;dj=K99`R~mPg
zAadgyvb2{lUxulooxQjX318u{;12tT+&5h=A7UOru5~2Y6>*zLjQcR@vBgQE%txfL
zQhtrN^7dQC&U?DbVJDl@-I}bG)D~0%nRINGe&%Xj9Tzu=V99S^97flPyvYqS=Egzd
z*khR*Dq@Z3I}xlEwX{J5YG^xB;Qi9Wo0KuZ6cmtj_R*lF3n^&&-{vYkLk~oe>{eAZ
z1)M&lO`}g=k1jpn{&I160J+dl57?1663*>PLdJ`;$o*-Y2;cir<nXYCW+}K9eKV@C
z<FWaN6c>21468@ccTLWkH%jzCs@pp8#I+i^%j^Ap7BPbPde#3jbC;1X^FJZVrX3WK
z^E&OJz#w{~cu13aYnZrl5}1+qCc1LTPvnpM5;~cGVIoRx3mx6D>tc%ALFttnz2Eka
zqNC3)|5$wZlQ>zVa^{Ug9dV}oUA>ZE3z7Ebmd4jN3n=aO^4ycVi-;|;Q#t9~A}So?
z{74%;io8g_rs%$$K>3Dj0^<yr!(>&l#a%r|*lM#lXkSx+0}Wd*dps4P@J_+MC$p;H
zBHQI4o~R7uQd-AGn&p7Jj!IR~RSlecEu#<1D#QNM6@1|%*hk#!tA6XNB-DEfUEyWK
zxg@g1^T=Bc%=bAJKM)sz?un+BxD7r~;prWlyC4Ljh>|5JP8A~JZ8<gNWg)ve>Om;I
zDimuN@_oc#kH7M^2=j&*__KziZYJD^+IV+Q3ir3}W^Oqo<%(m!?-yT}uflMnm+ebn
z3iie1Z|7U$-kRv8E5@P)a^R;JfA+M50_1Sq>$v$r71(++9JFuZe%N&x7Ii!?FE}G^
zF7QMFJk!sfjnPzxC8?Hu39l95qAIfeS)u~_=?!?Ol$7BL*CdlyLodPlxRpfCV2~is
zFzeL$I7;xgIn`4bjuZbWss6Wgp%nf0*4CuK{#KIk=y-n2y}sD-J;af&4Lu4p5Pi8c
zj_Tx1*6+>W`@pTbVvVRV;=Nt{lHKt|bhlotP0V2rl@#%dgwl;6ve0S)_AhgU&e8@Y
ziOV=~gKDkoxxx(cxNy15{6i;-5Q)9@`pO8wm@gMCcV`IE^DuX?;rt8P1wXz(yEUX+
zp{-ULO%7ok^zjABTWG0l;7$fN6_7J^U(EICMjc$gzVTD;p^prsTc-j_h<nT*xo#^K
zq8W+}uIchwf;fETbpiD%%2m7YvFBteVRL<feFt+`nnGf~S<{W8kQ8Jm-MEQf#?%Dd
zn4yPDnFn02_wWN{j)}wmB+QjNuKZrsgdcXf2>T@LGy1wy^kTV*46YS^%L`}NMR(a=
zcMC->BJ_$^Nb=q`QtXd9GU>L1d@ltqOPVtQlLvWVB<4f$wz5iXrqBV`H->SSAv`DK
zH*S9K#Rz9FxjoWWl!Em!xudlwSV21Ec6SUtKhOm-xibf0zqWLQg$nlI`rhjB;bXx3
zgTTL^e}7~I-hT7Nt}HgF;5a+h5+?{U&8DYG_hByS`l~Z{uJ8fRbCawmKSW^fepE_Q
zy9ivI_s}F&;fA#X4?S%Jc;MWsGEdQA+|S8rR?j@hg}EIH9FN3A;YI)F5ej>}uh=V(
z=XivDDc#cC)(WDS8xZ>AO}P{Z9xGlHJ<ScNcQ>o+{u2Um{efA*MlP73w;Qj(J-=|R
znH4(Rk6L?F8_>8ehWq9*5B5LDeJg71`z>LjAZ_cgbfiE8+Md(AV5pUYGv_Q)sE<g4
z5l?JB-w|#|e)YpOS_tR5bqg&Ait&CsuPNVtgA=s(nR;#2aKeLFrCQ1dqM+k7=yxif
z3rb<)#}e+Zd%x0b6EzkF+kBZM7E1x_i&d#Lvy}j&1~c1)d`>8%9ND<8BMQ9#ojk$h
zBn+aQy*v$JvcOw+SDDvG6vEe89!ES80*fJyUFj@gxX6@vz%z&+s;CqH>B<Vhd|G$K
z*H<DC|99<I)KdW{k+xcVh5b1<r+?n!;29!%UvVnSfA2s?OcpdBcK$&#?Eg9KXjdb0
z6Ss3z78^+Q)8CpiYpbXzKH+6f<pRp98BJ2Hn?(2SN$=aMSV9voW<0jO<LBZ>hC5oi
zYv@_)Tf5*RbI9B|kS0)a4V~}vnRR@zhblS)?Ufsr(9D$op6=ora`TI-ow1)s+Mk$O
zgK!_gr&Q!$*!(K;IHIB;_Hr3j=d*r~Xq!W80$W&@zJM%-tV#UzR*=_bpybrx4BFGJ
zO&m>~MxJ)Yvs@+f==H?FoP)|7`mH%eT~YQ6wUN~p`pi$DiVUSj*VSdz@?WWNZs-d7
z9jA9RGrS&kCGCBkOkG2HOV3RIbaf%lmbi~jUzl<KWx<7)dLJ03SC$5}?SqF+a^D&X
zm_fE~zj%8RCzuqAH6FaXg-&?5{F!(?M?}=fWM=A;!kLd6@%@3*NG_)(Db;ETmAt!u
zj_ye}(&XN)TPe7Ugk(mtCz$6EgX`Iw_WF~A#eZM@&1^mr<Mc;OXQ#;FhqJ=S_dP0j
z6hCm+dAb1|oE>PI4Q@uqf0=1jb5VlB@ZI0#)~jgNP{&Q|8ZB@seQ?q{M+;K=nx|)k
z_rd+h=))cRc2LgAe5KDgH=uRrV$(=12ejU~m|{D{0_w7ZfBUjoKy2WuYECTXiZ|RU
zH%P?$vD(y!ewbH2`qk`JSScA$hW+08h4)a@(#@k8wTv*E|67L#bJv`*R!gtH5ry_d
z%8Hjed@w{h(QF{c1N7q2wnO;+rtgpy=p4@mt?joIjm4$l`L|>yy3hO|tR-N;TqObi
zx$Q{hv^dC*l@$a!NWg;H(YHw=xF3B-JgxOM<`<mW&Dq1xP1StwZ%3uGK*ZXWu5!$G
ztC#wh%B6|9$MnpnGa9(T|Jr(=UZ@nr>STI%WXt0|k-x!nUp)WL*}L10=Yjo2^v7jz
zPC@EN{PBq(yl=SL7_*BxBH72w0~swvVfjzRD86ChT>1~n<9Pz`!-#KzG)@shDv#^E
zi&uiq@<jv1TI}1T%*M7931~Y@!uF?D6ujTZ$n&_%gD>T_`=xSOpr?Lr_y^~y^ldsG
zem;VGhXM7?W0jb9Vdz!1$%A=CPU?p2A{_ARNE(wco;N~@a2b=>CKB;c&(btu0;5Xd
zx8*MXh}XQ8M!Pt2mbGP_I@p3=zZ)_Vn`*c(aH`4qFDW%7r5>`lg8O4;U!0}>4B^+6
zzfLNok{ad&Dzn$#_aRQl=cJ-;OX$EMd6l@Z1*FGjNFqPX0>hnG3-`V(psy>8jJ-x&
zFf>x|spiZkqVc-15sy8>7ksnbF3r=!XYsGyv74(%(qoULJs$gh<`kz^FR=luXi)TX
z6CM!I6Q*$N=*0hyf5Iu65<X`r+D9Ja2estCT_11rfKtJE<{qUblmk|}vJbJp{1;`Q
zjyWS-G2JSRsKUNIPY<`1B{B#!qW<#|dtkJ59<z;+u*18wGY^DuPE+U9*19&%7b|Z1
zM=^9QA#%#ILMO04*F~DVOmcz;yk!Q@3n!7nsHsJVyd(#RK2|*#nKg-aW(_%R-Q7hl
zdQ>NE=h(5YzJE%ff&=H_)z+`#ylPud%&}Q<ybqD#zgA@a1s$b}-gp1|8oGS3i^8yZ
z5nT!8uO5Dd`7~aPT-z@h;n$r-Av=`~WOH(}^_MdzoX(;@)|oSn+HEx*=`$Fi*PlDM
zmVy-Aa&4{;T_OV~`Dw;ToTGKms4WmESwSt++219xr^KoudsoAX8O~g)UDvB7fjY56
zgS{oJP|)~W-<ob0{Yx51FM2bFURlP)i(%hY;rZe%t5Q0U^aGn`b!5P<-KqCLjvJ=-
z=uc&1-;Y<dS!ou|9kCo+dai_hXi}Zs7B9Eg(E3@sm03Fl_^-$R`HWBl!FS@)Q53X+
z(u$;G&tY%ObKCLfuW#Z#TEQ&|n@SN#&(xx050?hh+QF&;HN4CxWMevIB;ah_g`f@-
z1@IsadQUftfl9sng!DBr=ppp{7FopLil1*O)sPfSOxOoc;``m2+85z=YF=pX`<<XK
z&I*pH!r{?<%y3-2dp*mC3F2P8JtKtY<qz5}X`WgZ0n!XssmddQkad-s&J^=UUIi#=
zUb@Q*)aT@@7Nx|%k%p9qKYSiFH}*z{%B>=?dX@K1GXq4T-_1Pog=)h2k&FBw(_bVu
zu0c_1uudHQprT$UUP<^!?(=ornk5|U!<ie>Ceb1Ho9^pElLUo6Ii-W-Ai-)B$k^1h
zK-{3=Y<c{nmyr8P^=z=Wo(R!tJkhROPdu2p^O&}S8phH{+0_rX5CJ!QEMG5R&qC5>
zZ)G{=TPABezS(R<58p`ZCS-F%+b1>W%eTlOKy8J@(2^85@-K_=7L$OTo29CW`xx4N
zk@PcUZja#Kj7ai+wMP8ME7J3<WQF(`Hl~+fxk;3>E*+^fSS9>|f*rL|I*B;&DH#pf
zAWWmLS_*KJRo-#<l{n`xMjVSQQ2bXrMAZDQD$6{{0-q?g&x~Wv$oTbi_K_SsUzpjr
zPu)NR5d!@0-Coi`l;YpgD~;PI^@~oCJT(~@r0T7T-daJ5=9Y1G#SE}}IWSz3l^T4T
zU6S10C}1PHM^@<$HJFT-6pm5S!0k1|k0ZCqAz?IZ&mjfR%Z*o*{=@!SO|F-(1fOGH
zZKdc@51k$K{d+^wgxw$#`9!rWa(V>4+rRoLFk~N`>FwcrhI_`2tpOd6b;;lj2bp;K
z$r)t)o-_8{+!p%a*2$Uq6yIl+4@FB+b)#N?MW>0M6G+dS{onU@<nXCD+c8K8=g8Y@
zHg(R^f#RPGyCiZ};0*jzFZewjwJMBST<xTUWSvf5Y1|`dOx`(I)4zrcNS9-dHVq+H
z+tb9rLuzQYrzqC!Uq`VXK4B-hmr-L+pV@zwOi-d8(Rs^?3P`waS5bzMz}#FKAFl){
zxU8R(zLv)bYTSm!bvWlj@}JM=AjdiM+Il<n+$c3%)2I56wwW4AY#%#io~MD0HtH)o
zeRD|Lm2S+OSVQI}f0;M2udnUw@yi)L*gvCwa^ac{?os3k^$D7iLCCkGJ^q*{xV>%O
zw1sm`=jv}iJeWWNF_B5C94gzWNVCDUJb@H|bI>_=eH~@|?iV<GejE8Pe1G(N-#Y3@
z-zwXE`VXBnt9LqNM+PZgt2buCHjs)lt%-Q`E|PjkVs_4U1+iZ}`tW+p3KCFiue|-a
zo%qkQ`UHnsKhbpK^fTV{m#9_E;lX)>YC_;_Lw>g6BH`in=#_ZIKQ!K2)EjlDg*YF`
zl9b+EMJ!ZSJO3sjuZ&^lewFq32dduPtvk)UL6C;U$#W8$XqokLYrx<ZVJgVz+C4Er
zBwX>K#_%5Es;BH9rtKm0rU&bD4)-AIE;sM30Gva+WpQym@f+efR_B@fY6bbX21je-
zb5VBeF<!r?mBhT6!7fR96JnRU?zd^vj;wlQ$PVo*M!j}4%S}-o1g0O%d>QXUB)?(~
zwCMgtKQ3-*96kI3Wu0{Hm=$?ORC!Gv$e!Oq0$N;89Ya=7?7wT1v@hSF*<%5hR&Op4
zpEX-Q&83h4N72#ZH@K&g!{n%w-OmgS<?dlYm?JfICx3Z2hXvvaD&D=t+yY<6zp@Rm
zf!+@cc<wVL$K30Kljlcif$tgH{xa;r;OIKU{l<A46>}(_WXt7*!B)1S^B3tMgZyd3
zTSi8BYcW<(@f*+8t{;4%wl#zF6I^KIU*Y`topZN18`<D2GT!6E`^Tpy6Tzw}3@{O~
zy<~<ni)CC{JvS@=qNuEY6<i;&mnb&%g(Vw3Xpr1S3*ML)B&3`cI?fC|?T#^;_edeX
zcl8`kR5!Aj+t?d#r-QY(E8b5pl0a(7r)bM&Ves|3H#M@djY=urpKPJnL^*@To5rr>
z@cy(Q|7UJ;P<ylY^yU^N{B|}sti=7POX|&Uk1~kD?lhH?1HUM&U)%Pha~1@Wb4PeC
z^NK^4n%cR;A((>@t8P?5AqE#cr^1E;6hTb8A-_mP5-J>mZU_~M0kD`Da?RpiLtZX_
z-${80%4-w3=_>`FhHhTkwh)8LK7%q}TX~2%5y<&aLlIgc{`+>)QVvX>yW}oaO2JyP
z<()xYF$h-TxY>PM1TN*q><Z^ez*GqN#edkxR5vpn)ykuYxk(O2FOu=z=dY_@(^V0W
znobaytrv$S>#-WzF){Gzlx}l8A^<sTD&!CGypQ2u>B7OkB9J-pQq{m!1bTjzj^~8S
zK)Af9=Wc~0^mwN0lV1>nu#hsR3J`~pnJ7Wyo7<@K3nyv8vr$C-Q1M}g_5!NaHI%)G
z^EN*}o1WTvw~W|q<=T&}kizANwD<S$+)7IJ--FiSWu!2vL8>b;gU%<0G<<)!g5s4~
z*=6vaG;7y4=yv)x8Y${1=sH0SYR}HZFV5pU*X1nrmb*KsYan{rd0-U@JR>*QkM~f$
zp^vZFU1tW4<<2_ROZ&j3Y`^Z@ehLVbOkL`-Vt`LxarQZQ4?1yMup^rU`!3cb{*An1
z0Hf$pGSR>t^x%|=1XKDh60?2~nG(2*WS&LYe#6(b%OYpLec0JU<s1DkY}=^dMyNoP
zO8_(cNEkd_=ZyOSvu}MK&)~l2zEY#^Ld@;bN>W<7hx>oJK1uwCC4uI$-!a}*%=KEg
zb)vb)4x&aDuD|ee^j*s2@whZ02+?HmTeju^=bfqVZ7-;xK>S(3!8ryHb$v+X(Zm9a
zS^8D~MKVH!JI$@vPso7LCgz#N1RG4z7qb6{xmlEXdUX7PWU$Klk#8yyd#C<AcP!Lk
zhR6?b^mUlib>h7IJDJ>l(6pN2laKq?F|z~jK4Q<Q+vAdBjic-klHVuxu%8R4N6W<m
zlG%YoOH<^a96R`a%PNUxX9DIvGNB#p6Qs@Npz6dt2uh>p(K7h=MF0J{=%gPDr0SfP
zy?T)k-Wwb+O0{GK@o4^UmX8?0YTUIZV22zQtQ15PE3uExQ%&~p3?nca?mg$X{f9{G
zpXVo}V1JJj<Gr78*q?ky$De7Q2O5S3#JPAGp=9ce)Z;{2=-k*@FuXzvTL0zjMn*G$
z)rf)Y$-CRgVr|afdX*Ze3l2zrHf4n5^S|GBV?I8sg?Hn(KluAQi6OB3G!W?A_Ps%E
z2(>Tge*R-92z@z;p+a-K@Gtyh)sbFa%ztjNo4~pCB(<w#pJQ2JZQ9{$FwSLFmmlp=
zTNVb!rT~HBVt!C~@Q0NzkqLN{*BVPOukCDlAcSHr#o~pq%}|^_>^q(1%P5Ke9(oGv
zHl`_nxrJIQZ9gmYo>;xrWW)gOE8Ay|ckKiA?9*EG*o%}cF72arh!v_!Yc6Dd;DZA}
zzq&@<CkR$?@w?ZH$SVi!b?RDfkyf5a-PeEf(<<RKkiPH5_%QKE<mJ*I!++?_(bpnW
z8LcQk#pqe-(lXI96SL#=|8qR)nVCm+V?^^7@2a%V5bCjfolB)Sh}eeI*z+WQpl|4_
zbdX#(3R`Fi{xCC$_$Smax_Yz_&hPsx{_ZUj3Zm@hyY^e?xNRHl2I(SVksc{|mD-DR
zUu8c3S3nI7Vl@1o@}tBS`5bw@*>B>M^A-6ECSyqbt%jXK+Y(~hW)4$K*&r0MqQWx;
z*9b3n@!!RNwuvd0sV__i#)zI*X8e;rdj#7PF_nsNib__YKN!2_K?s}KF;USh5uw_O
zO&zDGE3f7TkyJ4MBTOvoh1E|n!d7T-;3-csSXoF+Q3zvz*t2(OpZnroKApv7$LcX8
zIL=zE&A*CH*@X|2gj0f9xGw{3EH!X7eF(_l!Jee(G=Xcs@N>*^bC0g}3bLN$JnXr+
zjndwSIr@FTzJp_;8I%c(u)SHT?w~;qK{~7<fm>C`@lJ$!yW%Fw-Jw`s&0ax|t|<CW
z=HNZ=+tp|1be56iya&(Ki7v!Teqo!$1J5nbI+%FiInVTq`yCO!^N3cTa_q$_4Gf>?
zoR%c{iw3!hwl8jsp&N_~YiRBlGBW+ec<kN|iY~a<t}DEOYHmCp^upJ<(>3yDSbc@!
z?%wD*v%ZDOjdX)Q<rkv&vogCnpH>hV%B6XijPr$FguH15D^QhI*=Vuwz*kxUlR8Z{
zd|!ONp_qy1k&`OpqN+ngxgf<q&v7zvl-EcOf3S`e+|=|^6KFw%bHqN1c^i4woxb<I
z7yD1$!<)0#aBo+-^L?WCA`y76K~W1|hYvL*b%bD^lk%A`xW}=D45-|?HT`}gg%pVs
zB3|TB(|@3XTo3PSjhnu=l+2=(-;<Gh&F={_e!-}XVlptXh~QTcWrTfmJjO3vC(tFn
zxc~egk-#ly-><WKBWT_<^q;u?FrlL8THfq4fE-^dB+*}IgSqk47s=SyY#DrqdkF8d
ze*Mdx(7%B>ra|=GcW|Db?OhZ3Ce8=mDf5}9I>85VBFC36?WcpA@;_cy;vRAnJ6qDt
zwG~v_;y}HAeUM1GeJ*3t8o!TUMOmd|z9IXo-oEAzdJv<|sJDn=hKRY9xRE9fC~p=v
z+~Z+~lS6M;gE#Qp;<A2&M-Ly=(g(hsmf(hP-_K$%BYDBHB>M3M=MBUGtAzf21_+=C
z%>2STi8OD&mGZzGcg44}hYt&}!24(ycJuKmM2$ud9O0k<v#{pdeRHf3oFo0Kd7A=?
z46>hoW@QD69#_}pW-2H#b<Nh?VTL9iX$R+;zl4zFU!n!~!}*Rx9!*f7#NOfo!L%LB
z!-!96Dx(yHNbmfh5msf0?<;xSA;<-Uk^BLTLCm93_~>M<$OXI014YRTcwVB?v$v+m
z0D-ZU2GN+0x~BKN@aPN7bz~|Ej_TY*{sD+TLkM#Sw9n?o3JHMKo<Yb<M@d-yNVZ>X
zT@uXPY)R>yCBQ4u#%{Mq9$FTns>T0`L-Oa)1G}#!@Dribr|~>-==t|>>AsI7oPF}V
z))e<?#{VTHWR(d(M|g;EOd&s9os<1rnJotQ?kE_)dm;*Dj$bM&7$hLdv1VR4MF?}g
zsu>>QoNEKAzP7rD6kKk-PB#2d2rN4t>!(f&L+J&^<p)otAiC<o)0li=AY(1oQsTn=
zx2N$WWj3N<Z|+iQz#tBvcIPCVq_Ou#{ocJ00nDLyo7@eE6@@G_%g1dRBCvJt{2H@^
z3Op4)$>X&k2((xKz2fc`g?WD|8)5wX!(unfvq>)pBxSEAvcz`L)oT%hu}(!Onr}tl
zWnck~SzidehWkXvIseQTdJZFY-mk0qb$f{E2-BoQ8wGg1`+C{p03}3;O_V$Rn@5rN
z{|diuz<%}8D#z{y?876~xf+c3LNpgs%tEn+u<m+iiHD*zh=;}6xg?5$U5ewCQ|5Ti
z7m$da;2z+m-|HWx2gKl$<lqt0+mdkIry{$3LJIb@wr)QDCJHJMRDW+6@<6vC73rRY
zD3BzPNr`8RW6#J2w@a=f$aDF7R^JnagWk;7OhRR0^G)x*TW(SimUl=!g;frY_de^B
zC{%>)Z|7%iq;W4VUG8W%^BmIP{Cusbmj)`s>B%I8F&FpW@IH;NyXd&X#=cUVznBzJ
z7E3sRy>Y!Y4eS<}?_zIXCfkC!yTt|LtQVMp>F93G&Ne4Zoo}`-UgQK%>wd{>BixI+
zGJQKTjSFfBvsf_=+*?_df6__K3F@~s+Rs|Cz?A~;prh*okeD{iDUSCb39}vF))zQ|
z>r0}Ncrpj(T978EuW*7ir`Pz4cory&c=NTH1^ZOw)Z>QBIU(|$-tN=-RWv209Xnz?
zicIrDFa8>zLB!c4yWpY)!s1$Ag{#bO;)xaW$Ng1H#0vj~0^Z7D#I0Vz@M*b=$aNXi
z4CtvRV)DMHCRlY7K2{p6`ooy7S9v}B^TG;JAe%RdtXM<k=wntj`yBd8{>3O1b1W=h
z9bN5e;RGphdI9rg0a!ZfwRNbE3zR#%az8!ehGDMar@YgAaII0zH$0CE+{y#DH(dlk
zG<NG^H0Gljc3iOcniqr<JP$bXH!#OKKHhuQ2A|7%^Zt5auieWG(ZcQ;oab!M))mxX
zgA=SXal#k)a6bC=ni$TTHyMdp{>86D5%pFq?;&<LI{P%jCL4PzJe6e3%5jh8xXkhb
zEAF@5r#N-c8s~j9Lv>|8GXpjGTc#(rq~LGeCOC?DO5PIHXxoYvZj}h1B*E9W1Lb6O
z|B=u^{>xQ2V>}NKRkfUHlh{NTDy>N_e3AgFM9WwAyu=}i?Am{$za-(X(KPq1efa$=
zFxFk5BnCt54UA_$;hvEk1B)D`3Pj1AxX#z70?&#y6^b>LLDZX^gXouq%;WDjr)A_J
z?ZLu!u%j~Wsn$18nW#X{Im?URZYaa1@UqI`2g;D>SU|V`m@-)ER4t^JN&@qN+Q-I;
z(h$Yof9~FM8F)0aF2E2d3kfWh%U37lp#DnUnaFh&$h*1hnyse{&dISdXNHyG(fiD_
zB40(g$1cK}^?$Bu)fn%K*OK7L`^NnGjub2}v<JyHDnRNFX3p9Id0?ky-+MGI3Go4$
z?D6LOa45r3zs*?&uGB3wY9En=em?HzBa@==%<G0?V8%W;8dfWLC4m{zIZOp++l1lk
ziJ!L@gG3<Y%$q-g4%i<UFL=pOSsXrJ;Px>p!Mr^kjcfK1Ebyk+TW8ut0FH-EaM)l@
z#yfAnr;*pO=TXc3ZO0%d=AwV^3sx0`w&KrO=1+Nm^{4$!`~3p2LrzwoiLaLdD#9j@
zk8xw4YO)H$bq@S_oyl`WT+lDwvLuJ^TBt5$sJMgyG~Hj3Nnn1jTY#%o@JBXi_vg59
z@Bu64%T-!i;9m8|pwAbm<9I+PpjU|X2@i<8XlUfdykk0}Eb`|mm}5AXoq8x8U#}I?
z18n}oKi2_khj`quEsb_e9oZ)ef;7h!KG+I_+|Lx+ZtQt`vp~|Nh_7pp?SKCGiLd+Z
zWhUu#Mbhvz=a>|a9ljn?qRTaOm^Wo*ucmrf2}USujF0+au1!^b(E+^QQ=9QUFBK&U
z%BSknmad4vv$3w^S3EfX|MheB4GRg7`Wo%MwIU8T-#R-lKa_xX?iIgsus?Hi#*wT~
z5C8oO&38YO#k|9K%BBb2f}p^+p-&+r2xeS#OILA^WSrz|M|>>yv>Wt0D|(AS{<yL`
z(@`;~&0~0*cLVbj)%fba{1$_EW;`s$i^6cidyk}526Mz(o>Shz9!cKi_DuhE5jdqa
zs{a7@_T=l|*B+i0gm9TR20h~(V4LlG;aU;q69?Rp_<9WU7`2K;3Z?l#<D06{A5v?$
zI`WR~DA_RxV>@5&G-d^-C(`?WiCBVQV@D&gdK6adC+DMH7(tSJ(w&@}h7dzGw=YH4
z0D?T?Oz9%^p^!F6%A5(?GH*uy2=zG(Uuym+kjomw8S}-eI$uNh;PL+O@ht@1H7C5h
zFBt+6-E)0n#0;z^dU^7G9EMPThW<z~Q|wJf^8w4o(As&amw(3)ZtG<^&c>L4q)<|{
z2#+Di##gGl>^FvoZKsw=9veYM>D*B_{Pk7VE-8*}8UTBOyZIkJL-3v$n~1MA1W}iF
zbODTpaA~#3z~`(!G{0wPq<7VaYY+M6I~WXsCo3zF<c1zJb@N{kJFf=?cK)J028N*B
z?waAePYr6P4c@6|YQPFp;R)e5O|a{J5|Qq&2~Q*bGqt&_0f*9F{2I)X11TH2m9TaN
z(0H3*BBCx07mKJvjV{Q-r=`?^Oex%Vob|jvTcZk^OZhJMKC6O~G+~ljtp=&r8po_w
zmB7F)rZYWD0Rk&t)A+}zz$rsMNvCN=*z8k1z;Q_hthczDLOYcqq$g3p;SlB%f73N7
zy>$>gr_4n@hAP5`y4IWV{0cyRI?VMtt17(vJ8`4+y()Yd(hAhPBMA|F$rm#f@LsO!
z%Y^Y!Y0SUx^0ni}eBYT6+Dka!JCS!=Q)^Kg?hZ>S=^2Yc%a@n_L!Hv_V@snkOGyUk
zORwQ88h&0X)o}^%!d&MobKHp>8o+wPVE+LT4KNuI&}?Eua8=ahT(q$kH0ugXnW&n=
z^+_dLs!wXb$NE#9?u8Z<lQ1TaD<6cHR>Y%DDGl&>%T4LBp%0wNy{yI8G;lxre&&ab
z{gAN{Zo;CW4g&&@MO!||LvA6}qt{+qkQf?lQSXgEKCg0I-c}8+95}hc<fI042W{34
zjAC9k{az`R%mJ7#wV_ooSAkgD2-73QYQPh0$}m%{0@Tgbd1zAyO3bQQ=LGd&{>kMt
zNoH!;@9Mkp?4uIUOdY-%u_X@yR<>cBI+}3XI3~WfAA$GNvA31Xs$j2lD<~ih-w!ls
z9P9Lzpp~QOmV~t$eBfTuq&HQB_^hEMmoZ6j7h>8nIJqBIPUyP#V$V?cmB4$O>@x6<
zGh#quND&fx8YH82aen%pnAy)2Ined3cz9e_9JCCNYQN4@g_8WTd<$`9NV4BNDRLLj
z^8(5obf=`?X5!^FI?TyZeBSa%3-48*ev~dRXix^av@t__UwM%IPq(%FhYIAAq;ruw
zVbAzg9qK|Q{Cx?oqK%6xz^z4?g&tCd7eT|8AwF`Tlw5E-5a)TyFA%FC70R%5b6ZTT
zQ4PEYn00oHC1IOuX;ar%6-IbCs3U{$$FDx1KQx5@{*JP?oFkP7caT*jbytM|+fU2c
zzLM}vn$O<#oCL54lh5SdmxtpAMDthP@I#Kw4~f1BX2=kgWZ?7Rg#l8Xkp08#P(RmK
z7WtS9(kowOyO~o$^{iU<-*mc4{{H<-H3TgPxJ*1WeZ~ym2g63ol0<NSaC%6(juig%
z|0>jf$_X{mT@tMC`M~Xv)Aq??cG!(J7;nGK0&`6HH~%rNA;W|J30#_9Cp>wBGnp|@
z!S!;kC1H$nytNeUr?Y6_7Vo2hV)+3=QR73MA{h-ZQ#6SNJ;WS03R}hph#92M_l2Tu
zJZF;k=NrZ6-Vq!9Wt~+vcyKJ5%MqiSjtx%==kszv`>&*~u|ifjZgz9I{u?DQ^(f`9
z&~_4q&Ps-jPqBA${>K5@bq+XBp>v<yg$_*EgbR*<8stf|Ii}`_f!uIM=&FJol-91D
zG))x;TT+2n$&WDiZ0$=s|0OBV4@`Y~p;8uHgZR9P@%@O*T*iT_PyiOnm1H?cv7g#%
zfREK!0p>_D(iJ-Spy(mfdhdV;3_Q7=+=J(T{I3_3bTfoucB!$CBnH2(s+24T`bD8?
zR)p;Jei68=;C`?l2}5o7f93z9=)B{xY}+_)@4dI%-diN<I*Ovq3JHmlN|aF{vl7`v
z$;uWPm8>4>x|2d=CXwvD_a5*0{^irB{&?!SulqXB<M{o)-+nqF(B!?Td-IwY+@zq&
z5phP`kR{TfSakncd0BCd^_LiE-l>dZ(UgL^P3HT8O+wJ+yMO#&fD|bH-u<OBAPHg2
zPt*<@N<qygG4m+$e#SjW(JthcMmbH>N0QT$@a2js2|daY<;bM#Nr(!7x5G(o`ujZ4
z8Tizqi-Q-09PZYp+~$P3N#%*u85yAEW;>zv6Y)Nh$Gqpzec9QlvgFrcW#oml5L`rD
z6UxFfFDxavpo-I}=Y%g0)SiCk^$_uVc8x~O{JtUIgrruSB{vhaTsWseMuk3i<g`2<
zXr31rd^|dnSr7_`pBVjz&XcLiS1jU!#i5mOyZJZ~JwGHY{NH6IA=>z_?tjQ@?&V!1
zQRc`G_UlJ}O4o_Okk|54dc<|sxR>7^W6ueD=Vzh@{zHCR=Y`OYQWcQX3P``ds06;E
zRYS_z>JXUNB;yjMg7|c0U)K?j^=65Y^W^m-aL~TeP^_&DD{iSt3ar{7@zE3vT(yyx
zY|)x#K>-|VzlpS<T-XLn=1UscKe+a>%jPyR$X}V#_FZXe3X^AxOLTm;iW_Egt(@*+
zf~<Vu^yz!3FB}wVqO{KjvyCn_`GyCWbM@QX|Bzqd)dh|Y2gDI^WmP<@+|!F+DqmtP
z=J|zX<h?F@=RSh@T+GAhk|wcK%FG{}Yh+M3FUn_~)sBnTy{6MY&k7DM9aN;2bf{nC
zU0#6fJG|7UZ}1Loct~0Q^nis00!iXLU#Bxc$e$&d$B2_RQD~*3e}WXUxOMOT%_fC(
zd(Z#o5y!6W)&TuzcmTG<l53NU@@^kDjYkuwkf$myQ08Er6wGL^upZ2i6Ni(p*6>HJ
zU>AA}1kZ>4!SfFBNseEb#%8>pes(1&!;_MjI*U{>n6wkd>g)udbESSfKp*YP?`%m8
z3&{dqyY8{B4M`vv*^_cR$v|g+Tuy432*~x%ipHu7!2|1zImLN&&rhqHHP?~`>&V66
zI$n8DGavfz?|=Zr(%e6lIwA$JL(~6+irAo$@XY2E;yek-WjeHbbHk%M!|nOm+^~My
zx@B>O1Fl%w1pT4q1s2ZYon#6bnDiSkx|l5lX11!lH>c2k>Wppz4DkRbt6@b4;+f2n
zMbb5(Jx;Xirv{a)JaFW+|At90;?GNqvrOf2LwjgE7r8#l!}(+>oXnB{!Rmv!tUWQP
z4|{v`Sq>ZYIwz!sA<kCCgXfoh1JIoJ{?y&fBYT)~pQ+fNr`s5{%j4tKjv09TNSJ=c
zJOgA{9XVU7iTE+MCIk$XC4njIBhl8393DLwJjKLC4*ds$Oq7{S@b;Ca*Ubg=J=4z-
z`>2fp;x4eCd4<mJn%YKGyl=RHtlvAowT}b5%!|sh){)QS=W)yL$e$~tN2ac~%m&&i
ziZ^g)^f|wxfBImF1r*JWF?6H(w%{6@V1f|xm;|ebheU_~=eMcmAL{~;XuGZ6{$(F4
z<j74@y37mIp?M?=$2u{B=&i;LoQ#-wBJnWs-URM+v5k)r&4Vc@uqFqSQS4iFxR{?Z
z1+n(VjIW$HDRHKeha~7ED^Ze~PR;i-DRGJV{YEkUBpzO8DHgHXkL}*me=I{vLBwWm
zWSvN)B}$*ss)%^lg-^&lNT$!oz+WEjXO8|wK^!E1^Q0`7f=C%jb&NG?85fhiAmV>z
z6qkKF=>L{+1J4EM?rGS>bM72IcTbFzSi&^MNn-XLZ%B1w=Dza>J9K|$b|iZbzix(i
z1~jpON6)jt>IIbly<vJG=ob&P#68bGAHoK2Shjv?AP!+ncgcSgA{;=l^A|rzB7pJt
zk{9Z(+`vsOduP)c{ritynqX39g`ktvf;93?cx%TQd+aqeF;#(~tI_xXFW>FCs+UPh
z3}2ECb=cj)U2nFQ(<5&XzhwTAOKRgdQ@jTryf=%zf6pLL-#m!(Id3(mI<{e>cjDVI
zly@xH_4g%3KANQvu0(tE-rYNE_&&l$2>z34^-QZqoE+Io9r*@s*rb0O&{V?&BdeX~
z&Z+Z&;k%Te-fju_Vr{1NVpbZiTBv29>=2eX<x2m0NCLRTouA$Qhvr3xR6-v19)cgT
zbYH{lB;jkSUz`W>U6x=ceg{Z0fi-n%^40|r__Up~O}-%nJQA;7{+ncl_0408=7@Xf
zuv9)bxS<G>PNYM(O_agHD$SieUj_tXV!7udQ9sV|gLg|ex@U<9CLb+8ewHsCj2p|6
z&|URF%Cm?Q)EO143=p4QXWS*Yj$Q_IvQ~Rf_=`YbA9qc#2S1oA_Y)f?5x<Y&RZquz
z9yoaH#Vw5PiIKLeqp|A>@Y1w{XOvk7E{QCy;xg)x7j14YI<E}h=X_*(?WKT&*)}%d
zlroeIpL99QEDpUHf4HZ{6rk$el*FwjdALj=`XV1w1|jZuRlUet^tq_wNq2(`xLjv7
zJz6UPSj*;FEFIl9Rg`@t)sDi2Rf?}}L}jo&rDZdH>=5)Xj#~~L9Dy|Hi9iyg!(g3#
z_5E=-l)vWps0`T9hF2nnvTeTs^ombOsGnB@!wjK@{;S84@BW_u6*2`N`Nen9El?Ty
zbCM}H1l8fE_pJwfZc30>&gq;ft^$ggPeVx1eIq2pg+G@>12+E6SbS(eUYX6tqemkS
z0p;??vxJXo;8gz2U36#{GhF{>k++kMdB2ovzGp@OM;$%C*qqwNijs~62yRis-DqdA
z!RPGo&gHoA${jAyR3IZcB*+2Q;yFUow49LcqGWf%jvM|c(j6aBLAmGyrf*ULydZ2D
z$aB;hea^HD^`_DV!Q(vjEh%Z_MSZW(+|7;VOy}7fH|*GfJ8w8_$dd!EdkQvv-Qobe
zzkAYamIrYdjEyeT3xo8EA<x$VP8g7gC4G#%=5=FO-QQ$ZFtT?3O{FIcqrMuKzIh73
zm9i<G(}<r?p5koXctRLXup6vMH6u^<uluhx#JS+CMaJXD8@v!x>+iW_$O`1oJ|8tV
z<c0jUz+Z+z+)yw7<$;I+E38)3>*m)eflUarDN7FG*)X<r4%#Tf29b;QDazYlnxK))
z3zGts&uN5cT6wVYiAaeHl?VTEvgQP|@0Q*<t~M`$dMy-lp~3vBaP9c~C1d2pVdrG}
z{E%J|eh&o&RHAuvMa8vOr@9oNyIY)1V_pKJS@=5#TnI3v6evv7A`avi|GALJA`isd
zw|QTJ#o$|;Zm}Bb!C;*ZzB6-@5YWIqKGuhLICet&LuhUwR6JPwu%7^TE+1TN5EX-$
zUVX~j_Z5J0;S`tIZ+WN?=hF8vMBId?K2JOJKGPqg7ED7u(EWsG3gt%XK;}LV=X(&}
z*I#0f@J9q9zOwOj9Fc|u&Px{;4{Jg1no`tlVlNg<HhsrjlN8*@m4EP4QNbgn0gIXC
zK`gk9-n|;}He&A=7ksazha>y7)K7Q_U|SGkxsJGb0+)93E;pg~W!i7vD|x)oG)99I
z>}-(Rd+s^fd4bt4mO}p^7Dx}0>ivv<emNk~@76^L(YFd(t;9(zu+q}Nk!%7hI%vz@
zrrW@u?~hJjI!RB=5yVTA@6r>OBh;V87_H(|oqZpGyA=~;74yILpcfbVOx7arM+#2d
zPVXh?voTZMN#bLilxXww7<D1a`?;#t_fzHdWBBYZDRPYuIFrZeC0&+Y%=j?Le%;b2
z=4j&kC~24is!tZsbXHAcOM>HS_dZbp*+tV1=jLsU<0!Fjr<RI1?O^7{{h6F7$~OLt
znS_LRM0b*da&{P7XPg@s9$Lcg(tk=TcA+9Fh8)wrz(qkM?$T5l-l8TpOxzB5&`3)R
zxynx#LbHR{#Jf?n=aLauS32^K`Op!s3ofSTrjig}>-yhtPaea~vor18mpAa+p7nZl
z2Tk}{C*d%XzzrPh=;`&BN4cc+qHN~eHe7NrkiUIm5jQ`@Wv%ya71wmM?3XTC!Ec6~
zjBX6s#k+5$Fhu>C#*>JXT-~AXF_(t3@3fuPaTVLn^EreG++X5o*2qB_9)7a+=;g3Z
zO#JK>?)toU_>=DPh<=hL{0W)b#VU~>I1Tk*m)-DD+;!)5{gIMR>_vg=bU|z!UZ2_*
z(Oe@2!G@x`Ns8i7A^BMGaxn*V*}QOh){pl6r)Xm|U+{t&LB@YphZ`z`b-d31;DC%D
zZ#X*i(EYnkBtaDC09W&676O$xNWCi-V0I9L$W`v&Bv#1NFuv61?jZ`Cb~@Jej;!$h
zwfqVtn#<uunTcGl5J&WkLi&;y4`?jeC1h!$_nc;+G3{wKP^=NQY}FHhS4}^sri4Xd
z^u5QDYB49IaXgktY?FfK>Mfy*rl?m@n)FQZG}`As(W@Ro^R{e$Md*7b3{n@53WWFy
z!pz|t%y$T)@Py9syadYeZi&05n))E$4HtuM#7RmRWjZkO5*7kWsuLvMs_4HD)3Gr}
zeNgd`rQFBY5O3sH)T?ba6*v_>*{fx*2wzW*-^;my`bGD;d}|PYWa{Z5h5MgG;9|m4
z|2D)Aa^0FJZHtkFgL3{q3ik=HHT-n0Ul+}*f;-<Gl9mOh4MicIJYg{NycTMQ{FbGR
zMHiU|k?$z+V9dHr7ItX2vvT7Ffut*&;UpUmtT<f$K*h%gU#dvEuI0;t*)^fcWozWC
z2$4Kx^aSOp!+-1sj>>}6Ip05|!WwYUU2T8MQW4_5U7_&5h`gF^@tV<Zk*{v%teow2
zF}QX2QdsS6F|^0Yr~8VygUzcCKeaFMz>ZJ_?ZZYPaHf&D$6mq#&-eCKAFptOL%@%Q
z6!iTzs8*jgq{s{ZPII`}diLXre>Ojr-CV>O$d?PX<xt;_^k(9V9WvM`^qp*b(23_f
zabJ6ugz~z33T*Oav@m0)LpO?eMSNFNzERL|fTP)^S))qSXMFxz<yjg%<n%ZO)6g)3
zS3ND;0pee8+)s|$XGc7Y`kYt65vb3ZlibY6AO?<~j%w)sWCgFB69i=30XfhMF}Oet
zS{EEE(~K!#<m091d3CI?$E94K#=#Ch779#%a*{%X(7{(9YUI14yZGMHf*nbQo=0aZ
zuj5X1QMU&W*M^wzA7<vhkNro_@x(cK3KL5J<6+b{ZGUbRh@&3;8F!q^s(l@k|6yK_
zAwGrjXZMA}Prl-2tt(^S#hF0R?rQo?G#^yF=|s+Yzz)hkM5A4s&>Z2@VuCQ*v-T}3
zKBA>U^DoKUgaX99KmKvBL__v4u;iV)O|()1ir;VDu7@M8MnZM%Fohx*A9CrFFA)O{
zSIuAcC*)w4BRy`Vh6QS<6pCs!(cgREy)0Q7;;=cY)Z<HxFe!H7^rKBVuz%}NX45GF
z1FLCn{r#%I5FZI&24$dOl5L|aR|VdO^_=1Pp$h6E6{n-c6k#^mDR5Cz5@>zS1cz3k
zy^Wi&(x1vhFrNMKq}0j7V4~4aBe0+h7lcB`b}j*w#NGU1a#jPPqC9j($0guc@S{k&
zzjAQr(gDj+6BYP;H8;h#A8~d(wSkRK4el<Ulz1Jk23ehvDKW}gP<E3I0l&3Do<j6l
zMu0llIGTRdZqfvjqOh#)Bnfbw%&RWs5`*@@(1`IxX%KX3GC2_=kIrpR@c2wc$m^*&
zxKfF@^X@9u-_MCbft&jm*D2)pdUlfS5l8_Y_AF&)R~gP<lAd?-QUbZE8>tlIGT<d&
zB64d|0SvQUY`4zJ0I9t4-%x91$a-7PUstCB6Z6C$s#fYSblgp;Cr%X%w^YKHNz|Y?
z(Uyz^@$h|i<LB=)D}d8qn~Y>tWnjB0dNZXQ&5!>hU}-Iq5NuK35uvXPWg7d%{B(-I
zrJbwN@<bU<C`xEIep7*-ZSOuO16BAWB<#d-P998quPNJp8^-(txCb7TEMcpsCw0D9
zmg5rkujy_7bYjurD-@KE#;_6Ik5rcX>@Yz#@GJ}U$7ZTC=?)>U7n^2X6`Lv}ys>BT
zAHumIbSwK^qdgrgiT!t{Sco1J-+X=V^_m4HHEtElB0kiMoZY%NR4h;zeI)Mv9utr)
z@|q+TF+r{++m0*h_tS-%gx<G8K2(Fy;O5&~STY5j)kg3(7W9F27DIeH#@BwTLwnS~
z$6?wjzlM7Ir6aFfw&$_X=I>YN=g~gLPUhHLI5qf%WJiofk)gbTw%GCOlra1FfpM5W
zEnL5+{NDzeGhIju7SNv|g>zXeM~b=F;25b-bdEATFl1Xj7CuP^Y^(2&zeoK`NvaEP
zs$~=)B{HULwH)R1_h+bYqP=6)kkub*lv8{?bCzc)P9ChI%Ze55NdQ4{)YGa?39hU}
z=S2NQo;LXBv50aCrkw5?Q8qGgY0pbFSyUcQHus=`wFKIeOB$T?BtWgi^+TIS(XZcB
zLCb3iIP3HvG+$Q^tiwzhF6Z+DHLdf#;OpYRZ6ed>z##!9hTLZB)#9*3YQZ($C<2O6
z`cA>OCEz~;_VcwSQt(3ErdDH01UAfHrhWAggM5SFYff5dzW3Or^n$rKTtEMQJPq-;
zC$!Jix15)PD#p_FS~PzY++C(w;Sd1U238kwKGajtqF;NjF9km-eq6YhLV#9*=N~@4
zAt%0b$r~^JK?d?1JRd?t3a~?K37>pU?c$Io6LG$n8gUXC<S+lGAu2~)6uNtjk{Gr_
z$5gq7_$vYrzFRscW3pt#c(RXVM6ag$E*`N}T)J90fFF6*?=DeMe-tE#a_Y9Rrn8IK
zFnK^sy$(Hb*hQu5z!q_M<kR_!R5*yXAqdAUx{h@<s<d(IP!l^Yn;D)d=O&8G7&Wer
zkibSq>ape;1|nx1b&wC@n9bVrmUK=rLz2tzhl=DbyrTc?a~k6bd@=BX^6Oc8VwkJO
zJr9(_x%`!4IlP&Q_>5!7m%m{dm*rY>tA4bPcO|iY`dT`TGaoHTo~hy{%C}s&Zqvs?
zR5z4M?|#0A8<n1ITlqeRg{O+~>S=6alolytSC~nl=)=mRN5pw-cH-!A7xJa1y&?-b
zv$>D|`x$5S-19pwGjNU2QQm|XzTrDf^MRQdyHc+HmW!0Ab#=h2=<gbKV<30pdn*Z1
z?WBs@t!p#55QAIM7nF;b72|7>T^+@Di!AL$I%(n6{J=NirhTj=sMn^uYZ~{;w{rCV
zJd9<!QKenrAH$Lunxa$@FVW-ZwH>O|CH#Y-;TNZvew;mrS?yKKZ_H2G7w3rnjko$Q
z<g_?+;K_GJ1DWgxF@s=T)=i!zyzLX|TW#G{>^mccL4fQG7Hd~ZlMsb+k>Z*8wZZF{
z?}HE3aD^P?oKiGhuCHKTOzk=u+T>7T!4@xED+P_CIo5afc;O=@74vo=GlHI#WwNa@
zf%Zb9g~HH0CbFSab^ZAQR+wMJZk@b=EzvsHlfEW{&O%q|b8osap-^dxU<N@LoWFTK
z0rBI+S~>1P0S7efY(3#Rj`F7oA=wwo)-fhUvlv_w@iQO3iO?2g0nhEs^W#(pnEO&C
zdmQy1cGmMkcMQr`J{X@#{@aD_9l6tIA`hfMnujs)V3rJw1H!K}K3T!-sLwFmb{W9v
zl*kWzBOgvgHLop21L70t4X+=W+re?GCfg|AUaWRKd_vN98Y3+?lDa;>kBt_otkTOd
zLSTE3!b8Un{DVlu!`R|EOpx!;)w|`S#A4mo^)EmE#W!W_?@P+9<L03ZW$`5Y`1^Sk
zWryGu?3`leTk^Z>c-~usx@YDT;9#4cE}M+@{xNm`9#NzGf@{Z@Z^*x;taDe4>O1Pa
zeXTkr7^(py5hkADfwD02;GF)~3#vf%uTXH5N)7@g`A?|&D8dstqx08RmEcf%1A`69
zmvjXDOw;W|-{&)C)C=f7IQHGcf&}#rO`C(hQ$@=`@kOcJumTE*>3L&GDaZ!va=%nh
z9u<K{LO-bT9!WwktD-UYs5GdGlz!W4RfW45epva03f#CX5NOV&223aYlGw9V;fZq2
z#Wx+wz^JI?wo0V{ANAa5uFFfpZF=`}K1GTk%b3-A^@K7=b)1dnbC!avyE!|nv5UAJ
z+pj}hIZHT6?%#$tF9-4Y>bE2R`A_3dyb@j6SQl{;A*2OFJsQ2tW~!4L>=1WD`suw&
z8ko57k+0Z;8}jW^D<2?l6}|4SCqbz1JLJUSNj69VSne!OjxQT57_Q&deu?I*)}5vW
z6Re;}dN{$M1@$JR#M13l{$ef~+POb$kuPg<UN-s19(FJ5PD_~hCMGrQ{4urUJ*Mtt
z>m45a2m5U9YkBj*09O7<cG>OS7?xM1s&GkZ7~8#ZVkzQd4wmP7dg0&W7VI+fZb(`S
z9UO9V*WBZxfamlTR~KpKG2yuS#`8=Jp#AcAf+e<y)pdWZIHoy^jk9G~F&XY+Ls9vW
z6Kdoju507^`y>~Lh)%n_h~fp}&5Pd7R{ZdCq~wY0AxcoUU);*nB*5U~4ogPFTeP*>
zXK6(Hx4-Vfonk@MK)-7I#ZH<Nguf^xZw?9oFE{y4@o&V}=()e0n@9&{Q`rh8#;nj6
z>!tDMG!Kx;U3;D+j(P~XyL&05j1XD6Cp7Y20=ykH*$CHVAoED-!`!P}z%hXkh_f=F
zHEi^_YFQNI%Dxpy6-mLn26oCSH4*6YU!JsK7XrRV<grI}B_aHR*H%R}4+LFII7-FN
z4cTPv6mR`Gz`ZK`?b8rWm^rm()#lF$RMsJC`lKjd$kNo8iTY`ujyTIQ@d!f(8RMW;
zH8=bw>ZV;m+?NFN7x(<0Q^6<$;fb^#3(P*zOr2HchE`I-o9K2vbUxIO{uYSlJ87!e
z3omYBlcwB=Ssn|KOkC^u!4v~=@JNrj!w?<O!&$$3U2`3uJ5@w&aEY84V0UXr1?$6d
zQg?EUYo@U1*j$UL&m=@`IS+e+3pMeR&$j}lQsnXbo#<&eBL+C@#L**Y4>6t_ZU;w&
zpv94W>KPXwFoyHbiGUbzdl$@w{6#!5h7l^)IWaKOix<?H5dn=7H@-``yzpz~*Vmy5
z<a;!Jb;RR4J<-Z^Ycc260?vGE<D1XLb^PYH`*qh$qwsvj<aKA_9DZdnxc1U*S_tti
zmiuvU0RQlC`33!n4NO1|zqJ`a0nIN@HY}~J;a?5c-7Hmha22yHN2uAr>raWkq+#vG
z%lUo;TR;DU&;Qf8RunXY>)Go`8H`aA|L(B`$^RI|oQHm1QgtoI#Z402QbfzK(;5`d
z$8K+8=TBAIbX;A=ln%!@;-zdL7c6i~N@)vgq<9w_xQ95^_RHlTiEH?SwxB3C(LdOB
zIPd;(XKEs8c$UL&Ni?61;9H}xKz~0Gmg|d3=zP%+;)fiV;o$21Z+u2=m`~7OgK0Bz
zqMl_+-&yJ(_@kCB{q8mvqK#C#r*Jq8F;3@2owgi1@srLE%^(R@Vo|P=m>C%zktghk
zlCx_E{(9$F^S{Jhoc9yy&!^2?L>co#Hqy?N#9Bi$n-&sgq9Tn)=LK&S7_O_H5A0M#
z-qW}{GNdZ-H~NFre=iiF!Km*x+oT+r%N1x?(M!N(<4p3K==<uhMq+5dGfB{{OJJ<9
z5`lQi5`7t8ap1|~WNJg4ncu8CA#@IC-ut(UP%|kGq~C00|4k_X-F~`C0qW&Q2LC$J
z_DT|-&>IMR?vaE^|L|W=yk((F^I?>qp(My<H&{qLM)?44vTGeea*+DlDfL0VEa;8p
zXW2%hbLjoY^z>?yz!*||RsE?1+9Rp)47m#cr?|AjMin2tY<#<akcal}F}Yk`Mx?-O
zr6-nW#|U@xW9IdBxj<6=%9*mqY+yo1=6U5P0T?1q`H^r@g3eC{`o%#y*#B8-mJ=lg
z551diC1s#{yh_CD)<$_S6yDu?!zB%W1F$n9=(%4z&&<Zli26d4K6lt+gkhG-{9|sh
zFx=X$4*S?80NJ$HpOc|^V$iz&1JX!w=w#hp`D!BuZ)_*SDvb&7#Vl)cbWRXPZ#!$1
zu}gz(@A$AA%HR5so{jTzlZ8==of|jy<-joWC0kAfnkUk^TRONX!PU@Te|xD#;Ieil
z@x%_|c()E~U)MSWzMbB*q0=hx<9L&i@n?Q`W`cFlH4)(T#@azRn*anw#fdMM$pFub
znebQ&L3k+p&~*Xr0a#4}&27d+poxbxAP>z!eP1f{-XbMH7p2<kR7wKOO^Q7Wy`u^<
z9deVGeMyO)Ul#7xlUHCFo1$aShH7z9czJopdknWDQPlS9*~hJ%u1QWLyu?M5_$M4L
z_h9G0+_bz(n8*8H@yz=?na4wFUSN%PzGEgQzucEPy@U_{$W?gvs05RjFPQu^)Qykt
z4VZfCkP}CHCQeY?+QuW&S~~H#aa_PhG+DLr3r75ECA-Z>LUh*&R-RD6aSvP4G*XTo
zoQ@^0{N6SR(L_X##DixQ7dmZN^3-A-_l(s$r%gGAha7PT@!r_M*(W7_^<E<ZnR3%O
znR^sac8%_u%*ZBQLv8N<%^yAg&D3}V%JX}D5w?rrTgR?E6igkmq=C-i^RLRPX#ugv
zUrg<xd8<u#NZ8djO#K6Y?|VmXxJi1aG)9{Od`q1wPlS-dQy2U)nV=ZT$7ebd&I!RW
z=_fAt(flhXPl~qQXB)fAc^KE~CV)VzYI~tIE%bNBYGuC}$A|wCzd77o!|a9#KezPg
zATr>~8zP!3dlr3(Di-d<ev!L#|J858E*PD=coq3#QwnNnJ<roYll`y<`{#X3XMLn6
z%v%IT^ZF(^-f)0Un7n@#tth-Jd6E{HHI7-$)8FQ!*}_uR2Kyh{kw9~<;zx78Z7e+e
zO{HET`o5oP|HoOriFXYa@x^vA!Zp>WZH1>vh@r-rd5#{t7<Kg_ZFc)Uyf{|InG`m#
z{}wJa#hs>v){nN|O~?=*iM($8Iu{wSf}nIXgP#=)4aKLQj8K50Ytr}Is-&R$HM5ji
zn*_ADtKUca(ZM;BM!mKWVMyVnd{a0g3KX?=lhSQuAi{L(dkrZwEL>i^{<jD5hBn8G
zI6XMQBzc5=@HRO-dvWBr|05>QdZ5pAM-TbV6kZOiZE(WT#ijwXw|t;daMYai0?I+W
zAaa~Z=LT8(uij$S9N>LS-$9{;5~fdVZ<r<sz%BgytuzA(C}83{t>?-PIeacTuXnhR
z1ldL~^*sSTn|aZWqJGQe#?w){flJt+>9K1Q#UyB6^?E$?83m-*nXdAmY{Nf%^Saek
zxQiVGy@}7g$q4QJ?{wbne8PiH%lc~gA%1}&f$+){c{>Vx>Sv^uvBzW_R6ma+zE7RN
zxmvnqjBmiH%)MkDW2CR1Z%jt~5ih34);`FaOyivsj`+H*=YHQa37W-Z&lTN0a&HzB
zO!)X*W0Ms67Jt2z6=s5$_n4zn*hoNU(2T;7VG(PG2UtPiE_SzH;*&G-HIIGQI<~EL
zfVIeK+u@?*(4Cy~pWtswFg5LXHb;x{2FLpN#HWy7rDZ$s1WpQT7hibJp+9eBL>i)g
zf*kUfiO<Iu_plbKbH`UF$-(_ppG^GUKlne(72dh8OZe%>`xdd6CvdS#S0_71cX7eH
ztWhx;|L}u}Q<DpxllZYH-}E0_YxrQfchvFrb(}}XlhTi>0q;MyF{)!bjC=VBWNx}E
zf|KcT-_BPKP#17b9Ezg>(-@tH{<_@go}#=b+^GbY#Ad6mzFNn)?!I)dmg9n4R>l|!
zE@Alh_T@!F8RDhQ(OAT0ZDED3Wu7LIYgmSvV?KWZ@}WLAc^>E_3x1)if)4To2qlOL
z8&47-cJA@TMNSDAB(5dZ9+d`1Hzi}sN_4+=d8qftnhg{j(%q@QB0jG-`-2H126%6=
zTw{s8m#di{#EYTx^!FnzsAMMzoVnzqjh$$(Dq~ezxV3<}cjdm)uV90#?Fp?sh|^>1
zaBJheGddp_4Duen#ReDKcwGIK#i1@hT7?&#k8b^GQsb#1fWf^IlenkiP;+O?!Sjt2
ze9IG?iAKI4e_G85j}-yX{8iNK<s$=WXZqwH_lZI3^2%n20^*0%wra9dBEMFl;MrFy
zC=Y*h)yY0c3?7jisN1!1fl9Tt&RaCMf15A8QC_PF3+I)M*a&h^Nm!nFc!L0fr0gOI
z5wh^={!o62DG$_)ZBUkONy7GXulrkvltKOAVZg*X@+Y&#T9z#cA#OU;y48v#c+L2k
zQ$CUaOS``-{B~+^WsY6T>o=OC{&4s;(1F1KTdCd<U{E+2WfNa23Lh?Ywk`8Xz+yT3
zkD*v8sBGXV7rQD8o91Vm&OVX{?%AIKMC4V{KHskpg(1(za7*dA4dgq6?}rvNq|p32
zrDznLN9J5tDrKd5F|%rSJz?u<T$eS@D9>XF=e+cHJfZv#)}+R~R>xG2IMUf~BL8(`
z=_9v)=vWV7|2|CFyIo(w7xSsbzMdi{nqx+J$;dk-H9RDsdc74hE7SkaaTfi){)f5Y
zx&?e};+$Dw#Q|=f85RlGNQemo)8y5WfAHlS^OqQ+hjE|wUpE@BbmQHIi<0kNAkO`z
zly0ilUc_<xO|{7M6IV3z=c5c<z{DjZ6${-b@b|2m<`vi~o*o{+M(aXKRLlK);#=Q5
z=Ck`Fjjw$cJMQ&<YM*-v?|8@X0cYR996QpjCFDq9(B<~y1Gh0OE8RM6HDVldSO~lM
z&jWdGDS6}%Uz^1g8jLr)OndOqZxs{zA-te@{x@ymeM*p8x?&Sn#|+>118aFR7O@m@
zbE;(23p(lW@dg7rpT(;Qt~jJ3p3H==?Xx*)@bp^CA88f^tEIS#vQatsJ4<8zR#62g
zc#^zS^CaM<(7=ULZW5q!+hG5vlOSk>-4*QlPZn&R_@x~aRR^i(zh;VUx!~Ry%_rqe
zG)GizU~hdT29)hhyk)o?q(@&Cl@}m@%n5S(l6(B{nY@uv^)DBUh|EwO_g%zJOd3;o
zaG<=xGn${xYJBip7&QTWxFIt4KeeeB-MHTZL#u~A9~gXmXSu_H{GsBD@9D<HK+NV#
z2&FaZ^N8R7LV?cx|7=uq-UO0?YEZIPhPyblvz2NH#4*DCGg^v_DDNKc(mDKke-E=h
zd$4!x(j2Z(ysftNmIv<a8L#}JVS`GV<?!FtqL7tEO-frT4(or)7d{$_!I*t?r{|a;
zeD=GkTC^bwLkd*Czx?Gxe3bh!B`6mq#ZohTT2TOEv<ye4cBG;2rO>CHQ7P!q>%Xpn
z_R1x7`VzEE0uZinv?}*0JtQvHW$B#egxR_&zhB4;uvh+`b3vUKR^@NYvsekixs5*l
z+9;HRF-tt+^q(LEh!o~+2rxk}b)NCJ??NEl>cyX&Cy2bkmZy~lS>UwW;Vm}gZ_|Cn
z_1F{5OVvI<y_}s$fPoqYs*BTHa6875vL}%TPMS%Fh1W^IU0y~3nfs&Ix(DB@w6u0?
zE`f2TJYWh-R^<(z?%u)rl21&&@?6D&1y>)fm5*RizXXWKj!)nbJf4paTd(7FhzHmq
znT`8@UlC2S9>an>brw?dSMh8oqd@(UN&MnvH?BO&MLaTQVz^vt5I5QMjB?KYgS|PK
z6`5hWh+mHut`MB6!8Vd)U0y}5q36tWv|Dr>|LJaY_(M-SRwb4{-a*lYhsWGG)kVFE
zuiSmu5f`w6zcJR7ui_fTI&G@?{6$EK?RJ6sl6}mOB2s+M>H`<deH{P#Vib7`ZqVkl
zB(j44&B+Ve+B9%sY<I$J59MPTDL$&7;{unkib{We)C-Z83aXN2fv-k-FV$BmV3|r|
zQL$bE<e8MukzP=M;gSjJk0?LlsgW92;(>Z>M-I_;hak_J-N#o6UxeTT$ehj8;DvjG
z2DzQ3VsPbCqs8Q333z=`XZNR#2uxX++f1W;yS7D+)r`74L?khsFgc|H;HH1@X;u*0
zTR&Lq{~~|{$>{U1I`XJTa`78?1us~?sk;Xk5l`TwjK5A7np0Iq-wg9qgj0uGDG4YC
z=gn7XvHVaGrXJ^XJ}6KC)(KVWcZlzqBPj2G_73ve=LBwOl8VE%^m7gw*(#8I%F&w*
z<+&BQU6{DsH6TxcUM|5?6t0l*S)bikfs0$4VmBxcL-5-ZktyznfvVP9eP{}UIGUG=
zEicre)zT+Z^ALKUT|H`E>?Q{KZkt9mwvtfb*=$d4p$PwWy-Qz)6X5CQ>)0sdTi-p$
zZ0+@~5*zH5Sx*%IjlbNE_!jW>5vD-lzt&JYh+$Qq3rjOup}sGU+AaG(Y)p#IiIBF0
zam2EP^m7g2g%uIYu~PH+!|pIL;+7PY5zJcrrwQO#BqsLRR0fK-Z#apd_it8Zq~ueS
zSGZU4=esD{GYPbBicTEnhaHx<O!WvMC|jdCI*+&lS{GtdhP06Xno}y;okANp<qu_V
zNGn2t-LV(8-(+Dx)+yetP#W$!NM3PSSA=Fk@(AC5>R^!hgPdGi24ZWU{HfAb1Lx_4
z=b1yY@Tqroa&%e_3T@R@GD^N-Z<hbQxN(Y-C~ro~<Yz%i^zvlNPaiqJXFk1q;$P27
z98t{3KhU1UwaH&+WcjV)DFwp<OW}yGN%N%h%dY_}a(#gH-oY^bkim<-r)vQ(zT5x1
zV4R8=6TeZ%#>h%U(nZ>mk{!GtPw&Ox!(r?W`HA0sYI~TRtFL1XJMxc&|M#)~1Tz@q
z`%Hi6WdqTP{wW3tb_h_Ys*QU>17xm}^Q)A!kZ|^MTjB&QR7D&k_8cdH1l_ahw~+7h
z@)sRCpJEbXk9Wz9;bR=cxJSJKDS@2CXJS>&ezp=sf1!~dvQi|(Ws=QL(U&uEu24PP
zu#kh87V^i}@CzAHe*E0j*C`I->Dqp(L&coL=Mfakw~mm&VDD3fME_o_d0Bh31|vs%
zxWO0dRkZN?wUp|)DGJD2U90~!LIpnejepMKB%mrl!*a#z03-cN&YHbX0j+p!S>f3|
zEJ>?DjScmJX^86~Z@m{WJ1;IC713$zG=*zBV+Jccz85|BSbrBg)xW?)h3*Ob3;Zuh
zQs|+|!}+$-78?{;ZyYh{BtT-pw65$!VThU@=;yu01H*nklY%_tAV0r=1vRmQOvllM
z_g4|8ySDYR>l_Dc7&JP+^kagbK-#jxv4L4`2P(WrdjX1Ln(cjy8~8-3N^_erIkC>W
zd#S$(_0bH|Y<B9|V0-IpYU~hlz_m>r^I~L!7`s0&1!p!fmkqCP_ZZQ0GqYLHcvuW7
z%UZL=^Cb~Kc%Ak~nFREFaHhiKRiSqeItE^<0tvxEbUj=NUWao&7I8#<UR5@`u{{Y0
zT>aT)b6gQjIxdeV^s0bTP;mrHr!1(^94$8Ztpx17xy&)i%23nZJ<`#k1o9@r@s?+$
zA%#soH@K1jAuV)kC%Wap!sm9T1*al(*b^jk_+%k=?eS;<>dCAHt;gs75r?6$!lc9o
zMPQ!|P}bm=2a)FS>Qnm)aOszdmNoL29WOohlbl}zuJ}5|IB6e-*rK#Mngc4pvV6un
zE>IqxPYNpie?ML%{U0^!oF+_f6N-=DQh}hm_xr!ZtHNdTfoSSI4X}0JGG7($#W=UL
zR&%K5F_}X_XPn1=;&^Rz`_-UT%<v4wP+Srvyi5<jsku!C{iWGGhYuqT&hO4rVNW*T
zJM+1x%#aE!@O^IBL3#QsBetVA4iIn7UnAlJFNAkTPS{5?K>NVdaLOt>c*~{{$mVI_
zh=JSaYt*ZFHvfoBmWBnyxX#(vpg9poFfo=SgdU10y0Ne4(LD86jp)b^7EtI>5g(Lh
z1S7kQYNj9baEG<wAL|a{a0HyB{*<<ZaS^23DG#=>Tk7Y;CA3IkVZT{|rhW@+^ZmK<
zJ#-CQo6c0joY_I`Xmr{8;YsX{acaO*n;l%dGK|Lc+yXW&ej}T@VG|qTTMwm+IKX@o
zHdMU!Y2ezHYwb-FX&AX)=RTz>4;QYS-@KM64pglr8w=)382jwZ5p<*?K5~&`kx>x?
zi@SB@ir##n%~fjhZyx0tUWLqLFj4~bWDQ~XHy<Q^?BUdHmWE~afRj}B#b8|V+<&JD
zLhz!+Qdm2Q7S^)%Cly{YLOGvTHTkK1j3Sp{d#g?sPCHaDk*LT5qkQ8X5(YUqG@;;c
zjsL^6;upfA5-4EzAWhMbi533*%ph?xl?8Q@JAJ7J3P2%7+)8~x4fxf<o4OI=5cQz8
z=><_5ILj)fe;2G{{)7aJuz3Ms`<uff+%66qTIVrKG>;F`eqOa7BLbiEF1od#y;<ag
ziAEgVd;K%;Lm8k7H<LK!j~5+=_Iu<}%E2m7omu<#6OR%Y$D8ZBqrSeIYi^7t>iMYb
zvgrhAiUE!Ne-k$z$$@^c^T%vu5g=&plI1eVLsAy)L0Fa=gciKl5xT4iosMj`NTZbD
zWy1FCp+<42-J8mO5v2t^SM-|O(LPu=#;$e0SqK`HGn5&JxImQuzsDQK5)d1i`TcAY
z^1nO`8M4S%fKu6wZ+s`DAUq`ZX+Pq^O24SOxk)Y$(JYq_-?T+J&8lye)fCDQLmAID
zaZLo8Wwz4llvPk))h1>;Rsrst{j2}<SPb!(&l>4-pj^eke(NzoIcW7`+$9MUhpbdh
zONP@@5W;Z$>-Y<CFr-;a8wnr*3s1Q-QHc}Stj`YTQ*Fcn+PgyfIk6677b)Q|J{^Ex
zJ)w4AC<^%vc<wEH{Y(d;n`-fCHz<K+ZAC&rf)xJrEX5rdlK{z5IZIXwE9%2e(YH_1
zz>XaKP+bKn+!(pWv1dvKzedk*>DrLO#FZmX{3SGiGnx2JAbwj+@=U}-!)2_;qAymD
z6@6cKF8|?l8^RvNs7$s*?P5X)eQzG7(m-zoO+N$Ti9Ml+IG&2QsM8%Qa?zJ3u=4N3
zwF2a&UF(!-SDjhLUODbQ&k~))BxXOeBpLQ%BHlCG87m7|%;1E_@?Q#AtegsqS0_cB
zhD&dpKCWT)v#p=zgqN`oy@Vk4<8N_k_hph{lvkKOs(b!5$|KS5NqW9p762~p*JX-K
z=)GW1BmFE;8qVv7UKQ9Qz-9}3)E4TW@t9>x<QIy8;Et8cLo@V~qFK#eMI7Z~C9M*j
zm{4D0s)P#hsuWWAjgF@X0jKI02PKq~Fjn8Y^%wpBisVhLcpEDK>Cci+be5uf^oKH!
z&~jFI&hwDxSqde%IIV`&Y=}d|6>%9%U=DvZ`FpHdTmp(@(~SInq8^96l=q7z3D|F%
zT@pvUh-v3J+H19Z@WH@Uso=LLXasA2F4_}@eX3i;VdUj{YKfI@%A%a$Et3G1R2EqD
z3~=A45&&~D#r_UU5xC+}+4WHa^>%|F+O6|TgSX;9iC2XP?9t4!J&XQ}olMFvxthWS
z8lfZ=?Si7P_4rVd$yFMd(ycDMpNc*QQGFtJu2X<2zl)Uy{T`N`sa7uV4$U<oDrU2j
z0&>3jc`ovxTx2h=TO8WED_wWBzKA|g`PN5hHl0NvsI4ZB<pK+I&RA<3NQyw4*NDR-
zLq3>!qg7>$_JfQ0uhq_zal)I2^`#%A(4J36T&9Z(ah0vRm)5um&=KF1iFPNDSCq??
zDY}B)uya`8RA2^r-v9Wz=VXAT>64=M9y>6#(jMCC<bt~2d1ODI^F!$R+()MuLLd;h
zYo&jN7k+%*GP|=X290msY?7BaAaHcFrZkcVzPE=a>Yr1FA-8;4XZwBpMh{`oC}t7=
zV{rcAT<j9gB6RnO8RI_w!g%B68TwW1YS4*(+rlBdL4Aebl)H!P(R`LTrZ<YbEW&ZA
z!n8#4^D)mP_E)hNHsxk+KX-A9)@n1EQ3_)FyY0Em>m<ZQD+}3$ran9_>AsaIBjV&=
zcP$uS`G*;w&pXtDO7-VbYzuQ|S%`rT46>*sDT!?F8Jqs`4dZ8%eo3ZBQxp9Jb&DUV
zQW3olA2^0oF%lhBEz%N8(B6!_M0MK)`GB?G<*1$~BgQC&Z<!=-VT#WRTR*RkV)yrr
z?V4ihu=DpT_%7zK6X)ct&gA={+{hJ)e|K|Nu~O6gWVy8ieEmq|E%{IF80)-hjYT9g
zQLTJreon0spLjF4QCCa{hpBtas<JonAIAojok++)`qLCMe=j3ssLrmCaxG&0S^ZCL
zYmMX9oP+UX^X-_w;yjC`)&^$r*w!#3con<Z7?N&oKaUmO>REF_{fs_ZkIm*+Q`pn`
zNb8SnQ@C)cg2Jb{QOxTzSyUR`0)BNWF*jv(9A8(jQl1K6fnP1_w1$*aMBf69O{Jhw
z{F;w;!Mm1E_)guc-in{~SbS$3M%O?G^6@vd{%NgYqqHsUJj%P6$FXLYy6=_vu#j$d
zvnMlLsBSes60?Z;1zm4@Te^ma`N8RvzyJXhzt2{ne96$&Ood#59ZX4XMdh_9DbWtw
zp!DdWAm*6*{Zmdpz@l;zG)&V5aUs!IZu{D9yv5V_a6{A<)@y3=sJUzjlP;q%Uo76j
z!asy=?xXwpD{f^`Ms{}KzyD=U_&7DF3X&z!pFltVva~!r*Nrhc4bz`U6oJO;DjoMn
ze&TMOE00D6k-sJ{Yi1sOUus;%G{x!3VXvWBYU(OFN2VJ*D{+^H(dxQ3&SY5#W?;{=
z>Og&c>gr6!Z3XDzq@a>IECRM}VN@~lD95;v5^|GN7C!h=Te`K#gW?HYZSxOOK*FKo
z`LRa?+|8(-&!=<13SWG`3*tTR-Ya~OlFbMF86Q%PNi%`u*H5b@aiZuwL;*Ck9Kcho
zd8I6n8&vPzXgcX7i29@y>NCyA-?RE=Kv8-Yi`uk|iaxi2b(k2r{t=tRJ-2(yMh8}K
zvs?1_#O;?b){2U{qF^TC%fg-qwOQ-<yx`|aYu$Z(n0P7NP@0@5KzNuj=d+L78ee7&
zHDn_4>oR?Qc9@cQ#h#q^gcS>MDE!J~!8A27n%iaR+aMJ&UZ3j3+hQrOS@2H!(L@E;
zB}r6c0vRB!zIJ4mn+24m|NWEF+QQ`P%BOe|Wr5lBcgROA4mekIvBVqo$(rPb=-#t)
zLO?o#sc$S}8CTwx(2|f5pI=dZe(Av^eo5PtuqXZ=XR_z4Ij56_DXFQjpBm`GTi@~3
zM~Zh~AAjmSYn7S7DXCSTJqn^EHrXu1mtJ1NpJpyT*kbF(2EOwb?}{T{M{(=vEyTtC
zAmi+IB$5S`3|)GbpKt(6AxE$e%6k`^(=T^CkOYgVf0w?Q5Flga$^G#`#D7g<pk7=P
zg)+{<yPGajU}bzn$}ou!+L-1Sy3ps#?@NKv1@!0DX5e!<Jpl>>j<L8PuALiC@n;*v
zhe^<(is>}u2CfC=8`sg?L?f4}gd6oxzY#>v{dE<D^r$SR%yD5LgX~B)Lr$n2DqdfW
zB!^qNYMnLh^f0`;HKBW+06_J#4OYcr%u40p_cA|_Og)fOm_&1x8$NpT@x0&|9A<a{
zdFiarG>{7;e$jFgr{{-S5h(6@8RCNpf<rjjTgHn7$bDz`^rV9*wCSX97xj!|EeD-9
ze5F^h>mC7Le95W7e?ak*{?kpY$3%!lL6aUh#$ODS*OJ1BK_lz()lH1km*$o05kBx}
zxQ+kKAc2PzPsy94*&*#^`W4yyEzFD|qvtisnZJtEAMT+<^CB(QBb^b<uw|bFAqxB0
zV92&z()J%L&4Tue4<{wu>CQY>IxGMahc<K%FY<$a=G$ynH8E&Y?tz!~XrEF_UHx>B
z4XTJN^aDP8sE_g4{a!dbC=_Tb$I~N!49%EFMkx)XU47a-HqHdIQX)bB4RAxy3CaKR
z;<&+p>+WA~I#!UY_A-`0-mSq!DMs9W7wh-b?O^)H26np)Uuy)|;ZmUb>qKpOXl1GI
z8$i6ipOp=7AI@+C&C|`Oqv*ZJ=ds^?5%~v9CHLEEQ#P<xUZI=2zi1(^B7V3Oc_)SJ
z9)w+evyJ5@(9n6zk-+^4_e%3b<YCyPn}{_afsa=+A01s_1?m$;G-S)mnAGPkYx(sZ
zY{Ti!ra><mR3*QEU5|RLVSlXuJjma~+BfSH8`qd%PV}GVacWlhtnT%BD{dcC-VCyR
z>W_Tc4@THH8$=O*bC5Hd3VGKP9yVOLyNy+4&)?Nv6a~uccEj{{%%CdGycbDi1Cl+#
z(k(Y$K!hXRGl)xGT6s4t19<`{%Q<=?gVDUlb@5{$@*?=Zvezs?J!YoiD6><t%)swy
z?8<}o)?u%t0uCq30bh*hnJO9?2u-~B_wo}oXG1SfD_a>jGW%I(0_FPuomA^@Fq4EI
zk-tZ}&&fjF1xEhgh7yoj;%&l=_8Bx}W5gsuMG$|b`bjHQ8LH=Low?BdyVAR>P!!Fd
zE()C=`GS7`B34SuH!6&HgMRNr(fpcs+I+{n3Z1teDyT^Mior(Hz}kEmA8faMkykes
zgXVwz+ZTJ-;6s|=hB4|t*CvlWzw=E1(u|nQgOJzRwo<h{F`fX$hsq}Z1_(eMb<)^m
z7YT%LH2Q2NqvvidxR8O51EQnC^1`ANV2Ep?F%jKc1ip8*tO=<?-%6nDa}8Da96bAd
zV^9UoD)X|Ipyw&>#&wsQS;}xN(Wv{7GRo1Cs;Mt+D!@bcixpjtQjl$M|K=RZBgqHu
zwVa|;2Ab<wya4jKu;9}4iVmt!FX|FhT&#$Ck!J=jams^aQNZ%l2gJ?4>%Jg}`g7wo
zCjMvH)!{+W+TplEa=`dA%7gE|GC1#Fv#65SfPeeDH5_d+Fvwlk@uXG`evpK7Jr6;B
z$Swgw5V~h(6R2~4?<vBS-k|iGh$~TTRQROqpBe=G+&yj(uL9!zZ{^;Opxki<UH02d
zG^aeaN2(Yh2%3-X*G{7R#-`!(DKTBd-O?%7{pL-82;1A<+=c{Ty{AR5DI)^!e#!sp
zG!uc!w*D%;XCmlcd3tmL<@)b-O}AvB{lT4T_Vd{DWsD5x+3#ti0_uN}9*;guVnl@_
znFC%c*k*H39#<Bccka~F95ob$pws?4HE)H%H}aks7xDl+m%J8`kM0d3d9wSr*inv&
z$Mvku7u4U;<~Z6{EC$zNVvGCtP#-eE&tP*)9Q5r@Z%R`OgPrkWmh^jC@YTaEt)u*u
z>vP`eP2>&P$c>As{>}$}HI^TIx5dGTsO@Ngp6k6#i=bF#bYA#dt+Zx>{5aITv%gUv
z#Nfx{$U~@C%z2i2dG7||dMZB2DvT6_x%z*42Lh<)T|Zr%&4-?&xr|IJcL~Hvd7b|4
zt{CLdgt&aF=SKZjy<na^4mfXJ*{f8_1KUQz2F<|&aNDf^-!pm<=y4hPa|GqfKA0c1
zkUk{`ldt1jY0w@}?{*)>EF;>tEHMcyMT^2Mx|g>Es_9{zE1Pum{W9j2!M^g}V_N8$
zF??~ig#g3f{h;fs2$*b`g@ve!LAL$)SIJMPKWg>$Nj&Obj8k#`IrxmYx-T=Il|B%G
zxzMM){3bGxRU+IaenSN8)bJQ`e}15K%F(b!_p_6VclxExMIpy@s<zTr3UUgntL`{)
z0&{1zJhvd)+dtr=W<lpP$tKPElMTFJaXRq2<4q>0nYY3Neu=_}eRX*v%JG$Eh8}Rs
zQoyFL;HL934_N5P8794Ag|sRu1sTLArPyN|e6fT)GhEcxM^V3Dax?zNjY1NzyRm#m
zwtx<{kG*;@fcSu~S$t#SmQhakx`XN93MbGgc!Xv~GlCND<KrKqnV_&dvNGli%3qRo
zm;FTdwh*AzPeOat7&n(vcXD(OOIO!t`^5!=x)qOl_*sC7#m(p8yc9@<xRcp95D?$>
zmXR0A<xsLzk24Pu;O+g^v})uf6BZkzF8<C5sj+_9J?Pvr6;@~~jq*rs%hkU`+X!&`
z*sWN%6D-Ixrp0N4&I_%6%xUBcsNbAb(&|Y=fE?qvB5prkp!{*{tP9$=WeUcA6Y&v-
ztW%ech_<tWu5qlzWio#FvbXy~8F5<7ZHBd<e-?uHskb4E59Pp%>G<{`^Brun{3x~a
zoo^VOG^LB*c~Ustqx*L^WecIW4d(PBCorD|MPjihHIbkG@rRmdR^le@TWWPRF5>UD
z*%y=S>_qAf$4}RT$%s-^yP>UNLd0}0vMoo9nHb6XhtPbUow)U9Ra^K24e_O0UwXAS
z6Y+wY&tf>5*B%jm6r!)d0L{}*XYZrD$wGw5%lEUaAZ5bpMRS7_BClAbhCkwh_Xm0L
z8&2flICbaRyJix=nH$oaE+bwGDc?EuJk&cD{48sDWCeTbZKgr~o)^@AHq%TZziGh3
z#;QUzr|9bbeD9ek1$;WHbp;RIz`w5LA3mVl!EPA#Rp~gPx#SJUj|=aoF_oK1UlLTu
zund9dgDp-ms4yR^WPQaA??T+q>C%gX<J|EGuS<w0`e5B>w&H&jop(5v?;FPLz4zXG
z@6B@|vPqGVL?j~(8BsFgOGp%zR8~etNJ_^0B2>uCR%UkD*?#x$|BepneV^yPuj@QN
zA3jL)-UyXD5Cv}v8XT1|KNxDcn`Gt)!%A6AUST3P?8?ZPO&<yYQ#nI&)r<(#hy;d@
zDY3x-O)KpMH22AMoYS#IxtR|RVg(P5`QfSIoBA__w4igngyy(d6rTUNU2MpSI473e
zo!3;*^HRJj#qu<o6Zl`G&rTPBQzvsqUmlA<>XT6q$!QU|ay|4%a3IRFa?wkPpFw+C
zayyw`FVx$3b3H;6lK?{U{fSL|R+t$4^G+1KcjaF?>@%36{8LKXcNf$%=HtzOu`t06
z!&kU{Z5x<j<P)>*0W0#^5|eyML!6a_Uqo5Te}v#z^MfJ{qa^(Oq_i6QK@uiU2l-}a
zi$l#*Qtuys<bdGLe;uL5>cC(2`TbpM4M<_}ZJq4UfnMCs?TbIP!Lut)*_~e(?CF}m
z+(Eg6bB{M(ab;<Ox0h#!VyPPJe3{RIG95@%Rl_BZtHPSZPZtqdS#Xu|RX#G3gsHb3
z8MQe|KwbLcGv@`=OP3^2PF_|7w$0RLUVcqzWcsKhcu55$sX9(iR;$9m88svRVHH?s
zf6L2dsRGZOD=s&;s=)EvJ=fq}d3cick9d_q0`L`yhVPKqtnnqYk3)?dl%(dLdTt~G
z{o6dhNOgswbG?VnJVO-uo19ATq32t7<ZWABMH#?fnu*P2WkdXFw<CSjS9v}}h1a+u
z2)}6uo2a)qfZoma9?2f!FY0`b>U5TXVxC9xp*D)Jd?K!I5%p{=i^a||hKj&zlkdT*
zev+`<na)PqEd%5_v81fzk|24*f`mQ+`FK^WSm>lgfIp&SOq)v>n6;f_uA}FPe<NWE
zzX0Mo#n3%X@=$?rWwSNbX%&d49F};!Cj(i(HCf0GB;f6{5N(m4%8>E;j(}>m5=e6U
z7d&@Rg2-^ghqsR9;e*%TU}0K$2=+R)z`7^`k{Mwy%#fd><Jjia&_@;UO%3zOL3}A*
zNm;5SML8gg5F5NAr3PLue%G}~l^`d)JySMX7OLxR9y82qfdNa=uFo_%T=DA(V5eaL
zvm@Sd>n-Hzj+B3+#K{T&-MAp#(1zy839q8`BPoHb)`IP|nK0xeMfb#2@<YwH#13<G
z&XQi?dhyAG9cJ}atmc0+L&<sSf3IYO;n~THw=-n~A$##(tPRTjg_e2s)w46hN&mFd
zp{S?nBJeh{^@s-?FIJZoB91k+gr)aAHBzW;=(nUr{5leX6JO%&1cCe1pKhWdK9I4~
zy+XGu0MUsbJ+%^0KQrd;UX42!fXug~+5vtjEwNEi^Ol6Re-FBnW{}V8_Ft3#V$mG@
z^6LH|mmm~<6m$};5C+Ti!uN~kg`jggFkU@H9A3Y^;#y2E1f_ZkPD^fR{-w{&a6d*7
zeGW-XR2K!o`JhBP9C<CtPbXXGm5IP|-8DC7#N~^=!E51o8Rc;2n1`n+c>qlb)(Kv5
zLq}LUNd-F(jMQe4c^4u7*1Z(lxgLI?z4|2R9m+dAj2puIR74@3n8#QnT?m$6e6kPE
z5QNG<&vz$oDuXFY&CR4cvLLpvXGo9ox*Yb#d}HWbkt4ZaC`T<0ToV699Q@*gogZCh
znKy)CsWSWWPN*o9|5@Q{KwK5Q4jwCeLe#s@VJozlPyx-fi&cW?-*fZZvT29AGOSd-
z$rt;g0#6r8J@L;JK_S>6I{sJ}3~er`-s?~VaZKs5w4NLsiToKg@{$ARkJhe(7AVim
zJ4?>(%M7`zX9~jwSiqa}d`bj57hI)?UlI;sft(?yFS0jKzoX^_E3GgCG~uXjPB_v7
zRo_@0$16rK+M6oMD<*`tAzv<v;2rE)r|b;50~^c=sB=7UVne)%9nP=5oIoQ)eJ#ZW
z@jICP=9Uq^o#o@$^#;^qQ#MgQ;zm8{*5XH%E64+&wfI%Lo*HpRon&5cDsVzbTYh!h
zOKxzdww;?s`~(fV1C51MUQq6-y)iD!1%&H6YdQ8TK*d$Uz$HWg!RzzwETiN=xoz4?
zp+^dD6`}>DeUY!|ZP{?)J8Ec)5#3MoW`b_T+arV-gpig(y4Qz#;@`uugg>VkVL0}y
zpAq7Uw#$27TkxlY=EIA%v!7^yQcm3|z={HlHo655Sy<rG@sSAO6fuPF4)ji&F~dH$
z$)fpP<Ppgem{wG!2h8z}@>%5DJBn?}h%}}}=j?~pf{Dm?KhN(dvxht*wU1a599e+2
zZ)Q8~3==R$Un6i%KwdxPGp8iqp!;xI0E3h|;#_fOk;mzwT$~2RnZ>~gLYICvSiVI0
z&Ai%X(O2Z~Z>DQdJDD3+1vCdt6M3K}Mp2b)k{$lM|8`>(akER4w@vN4IDv`{E3T|3
zN8a+Z4AKlH2wG45!LCOI1ag$Wv(P>9If6&Xu_BHp<$8fcAv(YLbl6Y4Cj&8Q%is7A
zGU%@`AmUvkgS_2iB`(y5PY)NFtlkxZ8{1D#6B2TPeqv{(&Xh2`?6&&2jyzx&9iORL
z&+<UU&(*tCt~?MK78{x0iQey}D!JFZ(et#)#^ppf7Zh|o(56T4xtxeA0ak1rP;67w
zwmmHjUCY9nV(1>&`eV>K4&DDY>7Ql^^T<GfS*Nkt8(~O$?Llvkc(HV6e!LF16$L4K
z994F{ILdz%1%97L?_E6ug|8RoK>qp<>6M=%@TSCiAW&HX9%5lj593juu5h<WD@qxR
z&JnjAi=teg&&wF!EoGpI;RqEGkb^`=@!11<br`x`>+<Zq3=p{2b^d#z3}mhMs<%9p
zpu37aOPNg`-iT`7r@1c%Oqh84*I8oF3?Qp68ehk7CodOYc)|?76J{9uF3><sM@h5F
zwQlSi^=Q1%-U?1p>NWPB_y?}_m(-Kr?u1~rZxk2PO^9E9xX||UkOY6xy#%X%IEE$W
zluXwt58?KYr()RW=Wyv_D!dnP^SET&*FN%ypJH@*q-?&Q1T>N?Z`@R70?T1TwT!@h
zEUfc~Sq|?OruQ)`v&Uc)V;9|>89jG|33bzEs*00?CE@kDPfQco2Lh71!rmE-uK4;x
z4gH_EqKZp9^gdfyv{U$j|MqX}%p{M^r<OJBl16r1n=U#0$%(J7K%8~;YPSKb8qGCC
zAK*n1_kPq~V)2Oa54I?2K4OFBmNCwWXOyQ7Fo9F7H+9QNAUpE((=BwqX@H4TUsFb)
zA-2f&+vWw`z4pb0UOrfS-}YWzl>!Q7bd?FdO=6K{#60S!cd&Mb4knKYQow!OY|?o{
z1|ILIKKUbmpI=*SR|w(*f5a`+w+vH2*T^IO7Di_Hn38i|q52RzNM8R*Oicokj(oS{
z`u4Ht43hg@y2!^;TcRd=f&rprhFyw-DL|&lubph28Uk--O=Y0@A;lYAg7(a5EWGG#
z!ehkYKcIYm^>rE*JmNTLF8PUkYzf;ZZjCHr>ygoL6`gOZTZi+i5wD3F#^UtHy0D8c
zI64DP&;Xh2{>PbXG%%&&^!pXs&vaf=n-bXF!CL#=FW9|e03mfZiF{=Ni0V`N`CuL8
zQf)5Ms-iuMk<#ZMB)o!9wcGeOU=Mwt<V*ft&L;uA1<MOr0?fcsVl`TT=3q(RnCiR`
z4|nQ(lJ^9ffBr|=KpFCs0fv$fIkzuxz{S5xTl8ZjprCqUg;<Xbp4mQ9Ag1GjtUDgh
zicxQk+DYB-_8mTO;|QSQr(=U#pHum5*JvP-tu1r6lL4J0Qu~`<5y3N#AVN{Z)7cWr
zm3V%a6i8V=#lJ<qJhPYC{dTkHd3jUG#LMppTk7)X5ku#39Y(9Km*f#2Fw0uucL@VX
zG6fdYI55LYN{d#UJSPM>YDE&EIjf%(kq{Ne1CozNCl4(Uk1zEBGgBQOgf&roobf)!
zHZ)kT3QQw!YMxq!m(vzDNh_#LK1~XA)AhK;swJ$v=)Yfo^$@GF&=B*i_=b}zN-Goo
z+k<`kl+lODcjKz)0xhAO9HhqEop;^WFxTdgE2fJ}SPUnZEy249?DJ!byMcE`aVk0;
zlsAG<U@O+_^c%Nd*fTQcZ<jR*z(48(jF`W}$rjnZ;c}S7ndv5!Sy>I@c0Q>w7ijHa
zGwRyMeOLZqo;M`aX`{xm;J)xAUYBXC%KGUS)(5{ZgNOa8$_sNi<(9MY4XnQ~hANh_
zvnET}UkAnY4v!(sEtR+>72Cy}t)Knm_Cnr_bS$LU=`W^vh3Xl*9P&;IC$QH<Mq*MK
zeu-DM-(W=Z{)!I848Uu4vm%>|5uKY?ZcCv&{=0`J&ho@)KYBmnqr+V`7`3V2jOw4k
z-cef<$%Qh4Y`~GylWb1tR8>C_wt;$9TmMw9*dvdTyVJzhvpwt=lkw>j+^lf&@$X29
zG4#D5$&-(BL_K#QyP9;aEzCNhF5wg6Vd~@y`h+zxfYr&bqW_X<VdYss@0DM)utZ1y
zmijCqF#oOXk~AWLFPJ}Jy#^z&nJ4(4)gXucD`X^InOoQouiL{4$zvFiD6@mJ{w|KC
zec|*Y0S4%K>T_#wl>+Rld_4a<iOz|pl0Hu1bC~3j<c-fE|1i3j_InH(EHE$65xBfT
z3ID|x_<7baz;l!QQalk2n2Byn-F@Q@W{r2Boi=lXb5{$zmp6RjyO2z-vXC>Bj9{UI
zEN4OS%SqdRwR*tl#qgShTNhFpCpFZyl)zAr!yH4r0|$0?`3`w`H0M*_Y1`IAx$qk<
z5>^@z>f*~{aZe3e-k+LD;L?O(_u780HdP3k-3fmcr35Das}b~8Owg0K`tnFY1DXvM
zX73)!z(UlEo}8De;6wPtO2S10VoTojD2u2=YS4A5Tp2~cZAum=k}E;jS&emp5G7c#
zub5d%(g1!T@zD)*U-)m7yTDjo7j8bz$d&o63xnD>SXR$z!NoP_KyeCmj-?mo)dn4?
zFxfx*K1vHFCx^()b5)^-+;JpPRtFx?D6}`@wIS?yQ|Y~;9&D0jZ@zt~4d-qpamspX
z!25zQ5rH8!=yNt&u;bE(zPS3`PH8dd&bKK39H$4p4?6g4Q4al6(x6L;lRi9PC9p49
z)P#6>35OaxZBR*4AHK7o2_0Y6ILyKTsI*%dgv@lnsfVMi${V0qS~K#_kRBwl@DvrA
zVL;BPDCuOO3&ecwB22IJK)d#5OPQz+<ZclD+9ub4`|iPTCe;8!A0A%SJ`2zw+0gy@
zjvjPS{73#6{Xd-D=vl3|Qi1QTMDeaps=#%+wO-Rn9Y}1ga|vTr!Swy7;a=41I#*_`
z5rpoW&DnCEbRp_MtB|64URxDZHdV3-9ML`W`zyJ1dklo8Zdwf_NrGU&%U_0f)POU>
zX{ujC6?U^;7=$(>ZhLZ*zCw)(B!^Azvp1@MC@Uq=f|~-QR9$Foij;wa!*f1Pzhyun
zbdT>%hyplB90?x8$V0E{h^y9Zc_?MmX^7320;BCpiJc)i_`_Uvc^BOSgkx*_+xbv#
zCFu8wSj6w3$o={y0L^Rrh&%0n>Bs@c`&-`fDA!M?dyaKvOB3!S^*#o5WiSq0Too@>
z1`dO#h28(D!U?~O9{$_1&}^lkV!NvdOb5DJ$(0K5aIBH1$xsR8)GvvCF;@nM`1_ye
zij?7=;p*s}yNX~F#=>&{gFIYy$nQRMQG|2+2?Af`<Y3C!!8}1%4}A5!f(ohtc1;<q
zOoB{dvWdvk+t>(RDHM*JNIU^w-JRbQywL<HHkszSSyd2~_iNaWQHN!pP%AnE4Nw+R
zHhJf&28*+1)s>euA-!ei{lJViq+x9#qn0|r6R_3TH-mn^7q%!r_UponYuZ826IJ0>
z(+rD9r84*(K3>WCp%3GHn=g_Fw1Im0c^>^WeQ^0<lq=bT=1+8KmAFb((2nHl&<Ixp
z+qR=?AxGM9kLZS2iHtT_y@~A|*3ttl>HuO*Vtu&#T}-7!-vERLUDkDP8GzZnc>mia
z`fwrkcU{eSeQ5Ugx=o#a0^(Rj&ksE}1Yhxym{Z(_Ks?owa6w!bsNUrrlei$hoanu&
z5iwR65f7SscTO1k%KOVEQ4cU`x?A}Sx__LbameENiuQ!JHao_)kiV^)g2KT-5c)<Y
z&sl140(0BznW8LCFp0J&s!L{pfW89pm)`8Kd3BAr`IrV8rGkGlX3)X|38yWEwj(Sl
zw)v#$94Q3ptFQ_B@<K_<e<y5)IU)AsbNj2Vh;veWbBMr>9Ta&?f*%Ref|7sf`?e|y
zu$<5cIcbahGVkyz`uB)XKl}QnxdKM08gIeZAP)Wp!%tH(N?C|9BjSn|K%RHUZQ-fk
zBA}MO+?cwH=KiT?Wi1~vK@_&q)BaBZtPJXXU&!&nN=|_z6*@P&Jk3zBW26AK2H~vi
zTS7p&r*80>0PQpVgZEComH?M=5iyqkM8NoxUv9I99Jso0gc2+6VP729WD8NR=sk(q
z_q)ZMU@69Xyv>Su_VfdeS(aR&;^cEX*mxC7zr1O`O>=-T33PA#^bmy1m5{$KD1Yjo
zQ1WXG%_kgf$8KC&qJ@6Xx03-+=|OM1`R1J@)FYjExcmj}6UN&<Pg}VN!4#vwnQTIS
zU|!%c7N%tYb-o|#wn_8Y=G&vl4Urby#_#=SAyzzKvb#N3*M>Nw+_~|?cX?rxGRP?V
znJ_$o#+`SgtYGifSyQykguFIB#K~KHkUFax>_^E9?%d_gR;lQ`)UJqK)S`zQQU5m0
z=+OH)PRhv)J?|yd2*2lu7{D)CyFlMd2H+v=6Cjad0E?Ti{?PFnKu|o>!y`5W*x8G)
z<nckzKUUrve;EykAT(v1)KUlU)@~0;K7DYX0B`ko8gTH>e5lR?1LdJjlNbv<cxcXB
z%@n8sot0sFuYc%(@m&wDKtFxBGZXPdB+(E!dc}`RJOI26_45AH(gmL<CRX@F4RAhg
zpshgsz1Lb6EpAm>V4ZPzwq;crlw&eAn~JsI##XUKnv^y$pZclv*;5%vBVIZt&r89l
z1YC?|t}@Kbg*>7wlZW`V80j^36|lH-ZqVnx9I&hJmdPOQ{K~+#l{ETu%7^wo<Q*#D
zbLu?HTURL{y71VUdYA(&3Z8ytid)2JrKKb!w~1lD{n6*AQB1Iv{UKcn?Nv?<+}NTt
z7X+yi#*!@tG_Qp<x`t1}K%dCu?o-GMX6&(33q0t2B2YLjXebQ9|BSO0QC{<1*x2`m
zAVE+%sdd$pKoBH&hoo*I@6`E8t-j$_IWQ62I*3X`z3TOMstex{=jaiuWgz0_yBbzU
zycHLR?^$spBd0|niemFCHjHu}4l@j&gk|8v)W_FeI2p*<W#8Sj5&@ku2Ttwhh?Dj{
z`Bx<e+827(mg8c%VeMq?>lJlAcoDfs_NGq|IL;?!7a;D{6XS0eIC#Wh$n(l&#2SE4
z-%LmMKcKnw&n=tl%!n(uM67pi5b-J<)V8DQkq5qWMs2AT?Ja%X3KI}7*xN%&a*34z
zh`jVa%%FbV;V$ih+9`2>c~0d{lnV$x=lt9q^}Ip?JlirCP(Hd!o&GWE^%-8_j{T2D
z2{LF%wz@PFL5n2V<Hu(iSji}$-jNZ4H@y$omgywG{)(pmmnsR6O;7w(DT(I2`R2=0
zZ^dCE;}5X|;yqpcmLq+$0Qqpdlk}J})!+qbvW6Y40_2@|dZj@L<uJ+Jh*Qn9L9+Wb
zDNm0COg!7#lS1eD5a8{|*Fya6@_<YSeokn!Si8hh&Ij!Nc>xND<8_9a-E<iB0lXY1
zT~|%f9#DCifMK5jY6~jtbK5!KsY<NDMujr`pmBLVZKMS6zkObKS_iPSe6UzsppH0E
zcbJq$)Zu9qU6cTWEPTgbtzR@zhn?X!39RV-Fko?qdhUTH^iw}zW!F~(_0K&M?@E+_
zui?KafoN5remwYjjz$$+6QAS`qTIE((8GHHp6K&{sZ?aO=|cH9#opU@ilD*USKJ|^
zhj_;F|F(Vr7-{{ylHg{5yfhI~tG=pm@Al<b^-c6W?UVi>n{@)H$~@R#&#A)M`eonr
zDl-V5Q*L;7RSG03H~-~-l!f1P;`hEHzX6HSLHvaTHRw8c(RKTgCcKMksj6dBf>-5U
z$1BC^5YaLe%XFj*)M-tZHY;^O&D|$elt2>}yoBy6R8L?vNf99kS`1ryOVRydw7~AH
z_a8wf8LamNxWyPXV};&dN}0+Tfufr}<Q&lv<~E<XXZ(Z`e*IZ;bJ`&X(fLcg_lODc
z$B!Qn*GSTXbuiftb4qUH2atbXistGP@ggEFXOT}QAup^(hYoh~Wd7n>7I0%Pn{|c+
ziD6@FO13}#5MzFMmTvxt3&e~Sq*(%3p)NS7&&v2W?zqY=C?%H(awtFa{TN311i|zq
zuBX(nUNe55_9_Q_6}{6hhw{(gP6axgb)ClQ6_YJ6SCj{H5L~#VxPfC+ar`O%sv09U
zD4rEprvPe!-^u<5n^<0IiPVx7@>QLi<Xhg`#O|EUQkZhf#T9&wVOH5;fKN=7jGU$D
zUJQ>aFJ43QTYBGp({VQFwPz<AM{}m1N#6^qUD=^>;!N|wA5Mr1`qMjgf&=2^6!UPX
zk2X?d^pO140k%doGtbnF{6f4gS4=l#Ah?{m<uSP^Y?4H%eMcOU*=~=xq-8<SKKfLr
zeO?$?t4r0$E#;x3h3stoh%`LqP~V=^mH-aN7YauIi35Z46>(xdX<%~5SU2#L1>yJ6
zQFviVI6Y%^FWX%XqUk&3Z=#<s^-7SJ!~gq;*xLr?NCjY*xhMYNlMMKN`cGMs9{C^?
zo(w2y34y@0zug7Y2UQ6aQfI^?e@q<X?^9@w{<cpL^S*-i!0!vzx6{`#_J(-EkG*o>
z73C+iGNc06Cw9w{UMZp;o?@D2vK-7lzYrUlig-IgzIQY!6ky^3q5BN47L0#+WVm=r
z7Ut$6!;5ARe{9J?clewJ{97xNqCJuVCcm({Fj_TukKM0NE>?suC057ZdelIis9-n`
z^(m(Ax@^U^N`te4jQa=VFS71+|D1M00aWk1)K@(c2U34qBa1p&U|`^HP<|)|X)2_`
z4R_=aS5Wk~&uJBCY;Q^r>{kX>fhX#^=$<9?z|VN~ff$(0h!B?IW#PhKOZ5-PM;3L>
zmM<|%7VNiNJ=OG(-$<uCh1yRVcwRZN(zwZic2vk(Z;}M8uH75RN|yn}pkhm3I|cat
z<M+20Su`-HuJBwXg9fgQrgFPKrh{8-`a2H?k1^i$B<mSnPVj|u_Lue;f%%icSRCaX
zMmZ6_ydt-NJ(Xxz923FelA8v#Ij&Q}HO<HUbO!C1Q|7_9HYy@GV-ni?PjU+DR;bhu
zRV4%0TfZD%lpbLCfUSmY&M{n9O+~3N_YUq%_qUh$kIk6Qr1G#H>pJerj?hIF!~t`D
zMDa4#brmx!^F1N+W(%iUDeSv>wi+|n(6cz(aezBkKkCB~e8Eb}<ZI3zZ{SK#QE*#?
z5#pbu9YxsMw&2c4KAr9zoWYon9>^x&`H0hT6#dNHIf4uNaKm+mcng>1z}2y1yNi3J
zEXesfk__)0mZ<kEZ3=f?>T&$cEph0fc2Gagmxs&4#DB_61mI=SC{4?MvT)o-zVi%m
zJXbH-;uXqeq3t;G#NU0CXWUp|OZi6&6J=+W)jC9>?NV^R_gP_xcW~@b@Ra~}zHPfG
zdz8!HIG!s)T;K<;CR&w<BOorl8}{uZ^2W9Gkx`!#0x3|y8zwNJ@Llx!u`wgG{=1hj
z>C6n;juG=MoNQ1^im}yAAin1C#`1U<17w~aZLyqVhwDC~hOxv<aI0dZ%Q2500>*?1
zNiH8^QJp?Rf*eAi!+K)T!jT=i7rHdTgA*P-Z|&K@*g&<;@!lC45>O1_bAN>Rsl_yj
zasJ4galuB=KR$yRc?%MMQk<X#U(dh{3sqGhtUbYHSA+rg%wc3iCfc)<KRjW%sRaKr
zZM{QARp8Va95XqQ7Ho00U3O{K0=dRE)*Wj-5KzkWRp>+aKT~^N^JaCJ4`XT;7X%Ot
z&#s_5Q~;+s<=;{pT9Bma*M8is56Wc)eczJQK~N-)`I3e#2wbAdHFXjN3lg4puiwi<
z=;%SwH5V1gx?~p^m8}T;PjdEe&&q>Af9OVzmjVzzj_xIoSA&QDF2BAKsRSBIC)vwy
zD}uEo_OXl`<(=%tHTQZ@p2S=BdiVzw!0ehF{{%^c#rV%iT%0VN=^;Bg;VchLi-TJ?
zFDd}Z`!fZJtD?Yt%or)Tj`o==5)WPdWzqdi+^r*w9nPohOAyC$!LqdbdLru8o0uP+
zv{&GQ_4fCQ@d0eWwg2bi)dxI~Qg+F;=Mxu%bbc{=-y;U>sZ458L_EOpk%*b+u>hnO
zdv!=6&g(7xyMG$frJ<1KNPGmH>kRTw_8(plgfVf4PTC26_>g3*d7T`2rYRr2{Q7|x
zSkw~}HW2qI<@FifRDHBRIPmT{B4>tY8aM9zLjK;{)H_ojHId(}#p{aCUm?i#eEV#t
zL=3`U*TvUO6b5Om&t+ZYgCx7N*9CV3q4SASVMHI|g(sEK6NoWG{s+PRyks`0dT7iL
zUnu~iuLt!d5SMpfj(UJ@O&BE3AIFxT;f9T_{pVHa=L(Uf7Nn4t2KUIGmbpV(xX#W|
zb)y*N%KY-E6MK-q#YW(7&{O1b+_RJLzR3inV;wFVUu1#3uhK#OqBx}5T}lb~CJBkY
z+6#}-^V;?86M=6{^ze<2z$i;o1T-iq%^kZaK%MgE`K}aBh_C0FITV%!DW207B4eoU
zbuPw}T3!KoHFYw#(H`;-Trap<FNgM6iwnkICE*N%BY!5EKQP619Lu6!tBiD3QiQTN
z{8o5ttRW-|mz7#QH&3HI`QFW%4~P?b7*QmeOsxtviwhsyi_u)<78X5{q>K6uGnvOR
zD!_GCmT(8nryoBc(O(D>KzWcRyC=1raQSA6KB)~2RLe%({qcwz2yb2?7%bI*le{eB
zu8;H~_qNL5+Ax6L$wi&42xGWQJpbK;7lXte^FJ@0<Uu`@E@;wM3fRZ>TvyOJc4H~E
zTj?_L59MkV-}ov9XX@DrtCf{u3rop0u0%XjuMh9n69wRr{N(}BRx#Mhk2@<|gmMeZ
zK6?i!Pe4(<mP5~va*Bx$$~PFKfrX!#^XQTSeC#cBszvvm4*r*GC4=bR%M=peo1%iQ
zwUXnXOAz1waOY-0t2n%<jPz(aB?`LG%KcbD0h~{Wyc&C}3bPuj=>s<MKxv*^O8pxB
zUY);Zy!oPpcr6;W&FJ$|K%}F#VJZ&`SMVpgQQqKyHo>n1arGSjPHT>KsDtV4KXm0}
zjL`1OT$+h;N`@C`q}AWDKw#{dAJ)N)kj`Ige8H3f?x~w?dri;*nMIUHi=Qwg{n|A+
zg{pftzvX`N_D}#<t)_dmEd}hzTy<OXLFb;a248hrW)N$0c-y>023c#w(_PnDKry%b
z#r9_bV9ETz&fCof4`%d2YR8bzw#RD5U5Op+E%si<RI`Iv=4?`wG4jAIF$sSUWrhh}
z#%s=E$j2dTIKFb99bAo-pXeaocE*#F{?YfC;IY<56rDUZ$e&Mc<+DQm7#Y8d<`KkT
z6UsD3hw|_I_(oqoFB&M#en*$1$N-D7B{M0WX#cQzG`UEQ@_ND%Iy5gBP>+s`PVfp7
zP&Sg5ryudcDn24SK9vs$>Id%JGU0(}61|V}v}g|`=Uy>s$P8zwC4TUs{@xqwn1_XE
zZb1J}_g|)<1lZV&QVkXfK-we!*BYpQ^d?yM#m7IA5OL>Lt7$IcI4#*ZP)3TtQp{@f
zMkO!YT3q>A&MXX4k(NH{1}OLJcWyNA1M<Fv(KKS>G>~RqMZ+n=1S>@Q1z9STut;l^
znK8}?4q1g3wCH`staFGz|A+=Z6&8Q$KYsyub5xPa7{Uz~RIfeerbao!>qi4cGJL?0
z&L<r&DGH=h^D=W5Jdp9qH#F=UBg$nS*_&fR(8Ogv)F~+hS`Tjt^vWWis{irtSmYnt
zz7f?RKZ){?*7cTSD2Kwmv+vvQEdbxcC<x?3_~CR0?_beo9zdmQEfTbs6j_#{;gDp6
zH^PV1lEI3={#z?grbZfmo7jHpf36I398D_k&1K<QT-mvxPF{$TwjJ2h<OZ_LTP&@p
zKT8|-o$tR+4Y+wIQQv{iuYpv~w?#Hcp-0&N$^h!yWqlY;7hx6${rpkuw1@m)ele7&
z=9L8STd`iIon-|z<Gt(0==Z*y-gM&y@{UzYx%}d?k%eG4MbcSxPZn%7XWKuLfNjmE
z$HC8eVUP9agSvH1cy&J0A{@<Abq8&XQ)|&aiLw@nCK1o(+_a3cj4bF{KlV5LCk4$O
zc~*T_1z>soACG(*CuC&I)!+yaAM{~+0$K7lc3A#OidCEp4yhw;OPkg)x)PhD1O8EL
z>p>}rQ_&xci%#iXS=Ir@W5M}A!{9fT-F&fLk#+*3%Dw81kE4eVb_Jo?sGnNx^Q6;`
zdlkDZk^IdyhXU%^Z<CZoqkDft=;yoAWKa=ZO*N(Q7kAUE_+PgfHRL?M6h_OkgNZD%
zYB8pd<I>O6^Kk?%VzXT&<ra^Iu~Iq`=o=&gG68ypx66oI`~I5)IV%CAk4_xPpgmk9
z>3{VlsS{X3u2uY~1>#ywb#B>-(n5LG5sM}RF<7zROVxO>g)3lQi_S!S?<tFA)+jM5
zSO7b>rR6nTBcJPciS}XKxUZw^#48GTsU7%a{Vwusx#i9HHSxj$QH+8s;y}ug66Q3E
zu>)kVeAkp<1O48r<cuUD(4%!!Ejwm}bJ8ca9=MV~!t}>NO_^zINVCr@i+Tx%m$>t3
z9P#TnzZA^e<6{TCPYpG<Dz~xW>F+I!cc!qD5e6lA_D#&mD6+8LNB|`0ZYc|QbAf_f
zR>H+a^#A;`(W`z2d9%Y0Ye-hufebn9z7})9l2B1f0h+Ife5VYPLcXx9gnPlS;(4H|
zy4C6n`n?Wrj;C7+v%<NL)e$2U{NP!E^HkSGJ+{sh8VR>hPf=~)$$A{>@8-C3VQ9{>
z-Y8C+WyJ`qk^5V!sK40iWn~;x&j9~!S3I1*jdCoHE1q><kb}IW6Dx=4^DW16Z^{SV
z*Dr)s$9P-F0PD%v?eDIVAa_$S)s#vExVmJttFEyF9cc`03CdIF{TS*Ebr6HOg}wAJ
zR~1mcx-BvKK?1~o#PYA@p`1bNFPV!40x(_H?Y?0s2!9{yoM@SlgTCLt2A>qlz)8<M
zrjx>=U@V)@5>kkKuZ?}r;?Vo9%-}QQi{EMx+w)BC0L@d2-OE&-;}roP()x}^QVx2?
z#Kt1^)PUxc{3c}p>dUSa$=jhhhn1Hg)d8On;;E%2?mD8}_H*k>p&x=EbXv0|eOw60
zpNOSWJr)PaTcjqhQO>yGe!6ehH(_|7Hn8K5a%dLW#tTn5`C*cbr_L1lHjI{fTe$Sr
zaKs3*wz0N^J9~4Ip6k{sPPTm9!%piBPTJVgzS43Z6S-z|Hx)+%<Sb~$!$kn6Wj|bG
zonwNlOE2Z|mOI$qut#Sw4FwFxq)5%KkV5f<hwzLW0~Ay4cE?ZeA)e0&t)3<|l%I>H
zIREb-rtn)OJiKTWyG7O8kackwyRWh}`_o_p%i0S8y7^U1-+a7Cq>&I5yRy$-^&$ft
zfd!dU=o&^saU5y*l@c^<8qHqG{==fk!%Q5smND_`F0b*Shghmt_yN)GPfRMu>by(S
zHJq3L^Q36SUre~^HL6_<Vcq6u>UUYnu~#c*^>@uCFv{7?2fv=tA|5yeOU-{P*oi&e
zPj!E{aS^!@9s=eB_*M_QfR+VHyfeSQ#~2$0KBsYoJ(Fw~rx--8+Q+txTXybw;oa1S
z*`J`AUv-(sHU5+kaY?#|W5YSLR=EyhI~Vr?=uy5_db>VAzJ3FXemUfiyE=z?q<$9`
zzIcpVdsr0MRF85NHZK*n$EfjgX$+Lt(D$T-*V8pkfC-w_oEll^M{rSDk^jEDCIM0J
zWbYr3SFnz{CBa^9#5-*^ar>u110wQ40jcO-YH&Zf%WIPlu!=2O)@>pPAHL}S&K&WQ
zhUhAv>Z1Lv&|Pn9E>bX@qqvp#fDn}33yiAW#&Bwqe8SgD$8jMX>7>8#+qkbGV>SN9
zgpeI#&U$(b<p4j~)&(PeK5b^hR|<5#oj5kC%|z!&TwNA%*$H|0RpstFUZaTSrcCUe
zd5WMmHdTEniO$0z6_Y{trC`%?Kvw0kG$@SA927lQ0V;yY%{f+dE<GYm>OuEVi$D9$
zE}>{IN>?^0JtPg-kE2i<HU&uEY$5G<Dg(#Mcl#S|YJlpc#DDyLvXE5Zi$7f_gg6f^
zL^4~*KR@?GJ10OHA|^^6(DsW0k5`z2=o@*&8%klW;Sz&LmQQ!;S>@qTX8%>qm&luD
zoLD)-jP9}a4dlKPLST__%6t;>9dU052CZ`?fRycX@nc2>_(p%{)8RXLlmnj?^=l9Z
z{vP!tRX^nGZIC^?<|PhlcRgLAbk{Hj!b=JvQY3h0;?P_H5+eN6iyi4m<~<xiwsS^Z
z^cJqAv~X^;ixC#ie@W(&qlQKWompSh?`e<ou^Z)Mh3Oc3J>Ff^dpg|_Moy3XH=$Ta
zV&oBai=nIKWg07_%oxOVZnFbUM2O&`6yizw?vXyc&jQbq==gfOn2-lIT7@&21ll`#
z#iloDpsseqioIeNv);*JyI6ArS9tE~!(0g}VA7c_mw42RdgO!qI^&C2ztyc_nTB=j
z%QQ`K5H0FE-FP6}9!P<F&A<Gk&~w$lf4}v!*bcV(m^c9CA#l9kZ3pv`Cvarga4bU?
zE!3M8)N;P)$6em;AuiM=1@?}B)Vq&&u$=6((oy1!P*i8jcSd**<1~J?d1Q_9Qh)H$
zxr@lBG}Ui>-IxM&TGaEu9c^H8Z|_)2uWn)vKTD%84Q^uAd@Hto-xqO%RIf`}c$grh
z$hM>c%^U4cH;M{&6T{R|>s=|48JuMAcNNT;6h551AYo{8fPK2sqe?P4jj8gn4v+=x
zVx%rd9Hah>5HxC&v%y9LEyZeO_R@5q;Z934mNAV*c^(+raCKq~1D)#c-i_hvB7&$n
zdmFJATkYPyVv{%rqkyG>jBRXD`7+73h6RlEk-&+EGl(-jW#p{w`wPo;Ef9TMf%5bA
zrtZ6AYgoPMw|mUG6cB3aPdP+R3fb444P+>O;jGRc6j+B3VL$Y8=y{R1RkCD<<wAlI
z5a%lr-t-p-`%CX%o=1Dm8lzA0d&XM8_wnD#!ICEY*U%NzrHJ;=ngs+0$ZxBzcsIXR
z8u=+2XM4UVsK6KTD#JM^Ww>!|NtNQ34s@B)o;{VS1O1922YU->{!q2PcJ>~Ch2cW?
zK`R4j5@d{i9x{RfTB$VJDMQ#bJodc)LLd30!_Ex+1-SdUC&+$X61+R#Y$d1}K#1vG
z(h5#vsIa*@z+#7ibGPe!TLSU{&%dz_oRb8N6!q@`M_Ry>F~-TSVF)`DgF{co6d>up
zMcEW(9dut`$XHU)1x-8Bi(l6PD6Lw1Xx8*$CS6*B@2UY*rk`$llwt&5`K~B*TQGr&
zINz>e0Ts%d&J5lQn#cSan<8jwnBl{m{9kjiX)NF9SH2taB$A}f--><B0EJK5E__Xx
z$CZ9h6nm4phh;x?y-bVxfDg|{e}6ne3F-qg7LF*dYU@Y8s_>WzjN^>jqpT^RrXf!3
z^%Mi}X|FsojHCvIo6#XVCs|?p#n9!IH00&U*}Km(L<i+|m$mv|pxm8O`s4cZ6j17*
zWw1*_2mQ5dK57a~K%=4USCh&H99?IK&Oc&Bdnxgj*OFY2`gNgrV^{#L9B*w{O_9R)
z8zIiG24*qlTq=3$ITmn!hi~-oIKWm*ShlbV1_*oKQ*|Yj0g|if>dLS6V49j*<uM;;
zF(=K>%pXIE(7w;pwXzlYqnHP9s?p^*NY#1~kxB}){{=SXq@$kpK(rncH}WDK(U$$O
zq=IkJFAJ~p)5B@43);i+C<k3EsggA&07Fs1nSm5S(Br{=D4#+BW(~&q+eJHA<?jjo
zY#T1H7|3{fh;oke@&cbiKXXE`?9kjpb53BSNnAGaJ;XwZj0_f{n8Db&-E#o-_XL9P
z8|d{SuTmUmtZ*&bE5|Z1EsC;&j$BHoOgGx=J&>Z?GG_vgdQ#TJO;%uyZ_4~+Ob687
z62X36ERcLbPqOASx<7`6<o}{(ftQu_-9?GaaCP>wO3S%v+*_TG)V0)9u=Dd>^b<xd
zNS_T)dWO#JXTDl!EBB%Noa=Vt(p5=F=xd1QL+8U&o{M=R55&O|&0{^<ke6l3KKV|l
zFw~P?F;nkAUeN3{u^eOM?^Mwd6W9_3-<_#ZGL*N7EZWeFy(tFi<Fb~4zK8?7^xi92
zL=MR9hMVpQNrHHm=@iSlI0Sud|L;5E#+;nFyYrh8^%`^XW4%z$LhM<wqoFeDNlx7T
zTys_eLc6b7MxWw<fW>LX%XKQSo0K1MO<fWcqY09UKoMjzZ|Gk7#E<-s-bQ06f35aS
z_^!PI;=xYVXym;Rg9$e|7A_`!@bc2g=%43?4CyzddVai6;n7uojh7dQ#f}Y*RyjcL
z!J)!QDQ<wIn@PMSqOcf?TX2;i0yhDCxQYxD{2@vo`LMN*aWh_xZh&oU>b|Le`u03l
zck)ba3M~=PNs!5VKVyWFOC7hkb`CLlPm$NUmfP56DmRV^)L(bZ`R`Xxzyaoh?BMwS
zwlRqZ*DXu+$l$+Po&ia6bPtPOo)h*)URa4ChJ&Og9O17%B62q>7^5j>q~4>3hz^DS
zxCxlxj^QSQTF46S?+?-_R^DUmi;C?0OJ!0hEiyR&GZ^)fk0p0>?sI{q+SZ0l%_jEf
zoZv}Yo^I@dP2_R)Eb<!3Fj^C73}XE|_$%R?KX7=BjXCASNi5?){dL$QGMKku%%UkJ
zfJ~|+mX@7GOnR@<=&LCKzNwUpZp3pJb3K^8`kZhM<ML5>y<;H?HGfGSYSxOt(Z}D5
zZ|;c#8Q-imFZBWL5ry4$!51<}ZWUX*$<GS&KIQ?Wm9%h}+CSBc_S+nkWtH+MZ|QQU
z_5R`$YT&!udE7EV1#yk$;!1=JFh_ae=&J`YdT-MF=}Z%W)!{pfB@?T-`IKbVK{SVv
zr>x#7eMJD?U%qi139^HbOKo#3z7aE0dG^(Qj~vK(y1kPNMIlgBarz(X37;?JlO7Ps
z#nJH$IkulX#_4snZoNrjgb^Xz;qUfGSZj>8mkr{&y}jPlW=&2AjI-kVv2mym7}rNg
zAT9u``KoF*?^!^w>!e9dAQ$WshK{o-Z(x2G^j{?@u44wd_2XqGYM^3k`mR|+4{(E`
z;u3QD(0*QMsM1Xf>{KLs_hWV83zdt9dIEr4YUkVyQgt}#`|=jjH-UY3+Gy5IEx6Ao
z|8z9h0Im~xz2W{~13zx*eh}d^L_KZyV4+ea82nPGq7beRQZlEx$28TTx_P<#iMSTX
z`_@0N7zFT`tz5o#T^Y0$IdfxfXoAnj>m$x~T5w$>Nsd263sO55X8L#xfp7H7ovtx6
zD2Kj+f(CQIRsK@p*f9rD@uMh?R|;@mQMQ?(T@K~RmuoxFyuJL%PTK94x^Qpan4Te1
z9e%DbK9@stL50$QRTgF~=sBcW4?|vzS>3{TbwxD@3i=!CSFQnNB$vi4EjS^d_-^FM
z&&XF9RNkh%#tAm0;a-B3Y`_;Ce7wxY4Fl$BS}wQuaeQBQXa^g=<1FlR>XJ|W!6i#x
zRJUu`!?B(5w7XHhg%Rh?lJTw3<MVyKd>*DGz%yv?7?9Ev;mx(XIP=l@up&YEwvWOF
zwj79UbmSA_EeZ)o?C<vCHit~!n<wvKldlp#T$M%l^K7%P$wpKVrIm52;>r$={1hu?
zQurEX-2L?HeM9v3U9kAC->eUJBfj0`ekd{CvBrL`@BA??YwTU@;choZ_@CS4<FX?h
zp-%EruF@b@rn&VG*G>iJcI0H3YTI!<?>0{+()-{zH%)FF3a?^v9^}e42S2ch0J+{0
zV&pwB40-R0?t#lmkM36DzhU`zoPUdEBHxP0U~qoS51a+DP-AJw0p>+_DTdvM0{l&;
z16g{hVVmI2_RY~>n3~vSFH*)MtfQb*#?O}n<v{vp^_hr}-;z0p(T@_Gv9RWV1VWGr
zbNtfF+k@?%Od=*)BY_VFw07&6q<9mTCE>>?U#=1Ruqp%bY*Id$S}ew}LfKz2JvLEB
z*eG@hXL?S8x8Rds(ELgV6EPc?3no~=l7h`+))Vov&k+(PWU+vl(aE-4&m}D0BJ!Y1
zj~Jw6qau2$8KCs`b?Z?bYRJ9Ha=xXM5mdB1&O2<918=2aQo1`MBs{o!lBAIgNG(2>
zIvwm|m0gJ}-*y>L56ChvqeK(vSSJ#T@-@JY%632N8_J(9a9_2(qzY4!OHwq$=yUcy
zpw7}k7`#+c6UtJhV6^|4i8tal3Uy!DvYAA_GrJR8)}vD3Yqxr~P*eu440o9>tH^?&
z=MTzQDS6mpadh7dmj;PD827<HQP|KBJ$fvr1&;ik-m+8xYI&*h_j?qfWz6zt4yK5{
z2Wr#A_41G>zZEe2ToLBKo2uL}Q3Q`VDVCZHw3lLu{1WRV3!)no=c`|%?<r-cy#w;q
zS~gzWGe@4#%P}qAn<d5I&j%5aGSs)qWzzR3%9R4*x)HrmIcbRgmOie;gL>)BdU0=0
z3jsgvsld-nXpjElo7~wADUfq`Aa=>B8S{?tnTxs7j(a6yZ~H}j8Ou&n*=o2@h57K#
zSkAYsVC~fs{CcpDm1rx5_xa#44Tr<jln1YHfu7-V0o1FQv*+#eI>`USIJ*uJKWDKH
zbNs%P)(6~V(6vTk@}IcjAN8MN%Uf_iT5e4%<}G9SBlcGpKQjTe=@sVUm|<=5X~Sk9
zGq`Ds8gLFUK`xHqgQx^4oDqF5PLPh~WKYd+N9X>*PR|WpcSb!|v!uDlGm?l;ZmRs-
zIgS}Ro&0H4U(aJ{KZmNfx+w55=gxi$btlGuoE>Q9Bk0HZd}_~PdC`p#b6#EJ7@org
zYc2<lEdRhwtfXm)cWvR`pM4`nnzD$y=2JK@Ai0T&3HLVdvkO9Sk#kd$2N_Tp%(GPI
z(18c--p@kxydFMb+V-`K8M-R|wzN(%fV){@rHkV+mi%TfEnWcqTm)42aEi=88MyLy
zLX-qRwj!<Z9zPK1?(zG0v}12RdT$LNzx&jIBBNr|D&|#o@vR^7)EMqSO!tB?aK;7A
z|CC1v7yrGeFCPTq*yHcFOEid!t{w2};v-HV=y0+G5P^ywi99_8YW)1A_2lV$Ls;(p
z?Pl9AQ@EUVxk9p=!x)=Q8_6w{A9UxMTO2?+bnA-#<LqWxxSkbOrCo!(F50geKOlc6
zDUq6w)fq+jZkXf$Qyk^4P7iifObft%>z*#IT?pm+YW{hK2|%I308{>LC18uYqgsi)
z%4eTfW<1+gLcQG?kHl6@7?N22NIk6vESAJ_8#SsxN29Aj{8$Nkw`zx4J(b{55hHob
zkTQH7#&`35R)-4dKl?>~nt-Qr_;_j<d6O;EqyGh{qko^Bx*6JY%B<c|vmQ|ZL;9bA
z*^2tm_ts7s&#MWJ4+3&ZZH&OQOYNxsvLVWC9`^V=(}YiFR8t=K7(k%2$dlVCy1;bL
z*n)jm2lY5Q8snE$VS36eX4Fp|dPe?h(HTSeq{NeSF97A1^G>GO3n)SSTds`DPc`70
zNP5M_H#Imcq4$##(SR^o@dukMC~xO=_S(f}J^1bO>yH173fP(C<cZU$fIEZp@T}bt
zZn^GV(9+g2E_v*NF!@PB{HsAJ6S>nJSc`3))o&*v{BvW<x;955{QcA9ukTjPU}Ey6
zcR#O<<EkrU9?>ci;7i_;Ok%SrN5FD8l~GoMyG_uosf)ZyZin~(V_~GjJEy8AJN3}w
z=T9HZHzSVN1+IUdf3%r_@aMIO>x;~QJB@oxvA_;Y`R6B6u5kc$NXqS4A{G$wH5X}`
zVuAfk>+*}9bRg~;wq&u!3-WiLef?a{30inL!caR_V6KjOaH5+E+yaDj>@II%mJ@-S
z5ASbaPx*X4=hl+p>B86a&C)h7j>pgODIJGc+_n8TTXvh63}sBpn+kepPjZesJX*qL
zm5#Q(Wqx82JXgj1J(jSulY;bxYlJ|vFv(&lyo2pmRk`)K9bmbiYF|nqPL&^dV4KH}
zSuBJoK*=L`3n!qSD9c%~jP<k{SXK)jV=}su-*57DWBHecd*{c<!Ji`j&B^V4jQwWM
znGwT37@up4J5k*sW?}I?>?7*g6`1-GSeFw3Pny3&){{ew_y(7oz}O!4aKxD(7mMzB
zq!;pnuZ?1!DH3`<h-Y)Va3H)X{3GUOnbS?oFpRrzqxWyG><>;WCZ6tk*Dg*@z?5I=
z%n_RFi!6BT65+v)u86Ic2><5V;S{m>G&XUwuj!IoKV~99`CE;b8o$V`Ong7!09T@X
zV|ygH61%ul-zYaXj%yQN^(&%S#qBaQDCene;;sa1r<9;MFf6<7o;xoAYfKIcDLay|
zIU*o)@h6(I?9sJ$`^&)j-!HwMilM!_WY*s&-mIYR9~dsQzywFZ>Ylz$0#FjoLig#l
z2;9pKNf5ur3$m15r`VpeLyNn#nEet5B$o$;Kg*Ve^}m~qEEkD@uz&Hs@K0XQ$`#CS
z_`(h|qJi&s*|~t8lFg?KJ--@98ZXxOj^h&b9?9p2(St)!6Cvv#<b{ZR>F+X50rTC2
zvK_u8c+!pD#-~bTus8EAO6HarWc(P-3?`O<?nkeck{vj~)c=+HXEj35-X;BqO^bq<
zz@^#XX(c$TRNOXff_k1TLqakb3CuPGyEokzg4(kBci~<n_-pH346GItIO+`PSL-{|
zxOgx9A)>c`af|Oq94tx*@RzP<5y(8>$93U#Y9>B&<CWx{rp}Jj<1;K=Kj-R@<BN!k
zh<~#j;a*0(y&W~cg)idX=c*dw!k_5UstNU;!EsJ)9=|?EgO?F|6R&i%i<@h;_*?jb
z9IsrUp@tVG#%rJdw)I!+5GS&azvA9Rfp64!BxQAy7Ed!$H}YkP694j!@@=v@PCPZ|
z&4?BzTD%RTyZoELRov1a`bs+sB7Bde8%Mq<J6`{)lbB8>5q^PJKkdaG8vNe3iEC4I
z)cAZYK6CTHAq?c?SgD_p;8|kpSpCRJ@fw!p$+u(4@LDy0JCEYX@XzK0pIFOw<I2>|
zNIjAx#6M)w2p82yJTs=2(I@t_&}UUpTrWk1SN&ZxdV+BS=V;UMWP^_Zl$05}GUHi+
z$XfjLGTLt?2{yE6-QL1-sD61hpE|;1ETno{{dnLhrO!k>H{!X8zo7GrM!s7^2dx&A
z+i_1Sj>$s27N_x$-NY3hn0`z3oFje<J7meuEViWqDRLJJ3cDH1@$%=>U*aZlG@V0v
zL)3dXB`$vue1Y!Qc718Do-=`0oQu^pGj5dcvJD(g7REb_ZEBKbGU4r<j|;=hIPo+)
zC(Za&3Grf+wkl^Dr*S8?O2Pfg9ww<glbvt1jGeC9{<Y#Qh+lfhxwZ9t33FCh#7Pb9
z;O;%2TZ4!yTmb&usI8+2@QoSMwGpD6o1Nq-eYEG)px)dMK^$MZzPCQc$frC{On#LU
zdDwXtUfOyti$T@tucvUHGO%ary5#f$@hi;I$u(SLz~9~Yj%Sbz@)w1CEWd=j?hIG%
zh0e&s;-Itp>v35y`t&hvEL;alrDo6Dkcvb7h8LL)D1eBX!tASD#8n^*8aKb93i8%I
z66|OX#Gl(O{RN%xu$6nCoC_7f`(e#K9r}AGpG-Pliqb&2icxFha7kDgjL^1MN8Y8^
zpA+c}Q6Biq_dE|3)PD`DrFnl<0oH~$?w3VN!#1}@oEatyZo7O%K6(mpF!3yQBN}<7
z{Hn|+{)xd~ACnWh*F?ZOeu~lb{y46s;mmj4%@J&N@U4Pr`aFi^KAhv*Ud2w!{8QwS
zUBc)C)<1}uP@?>pdsgrk6Xa_=eZP@S1E&d$_ak=@PsP;urpOT^G{54n^Gm0Omz#G(
znz|XlL^-s2W|$0Ym)sjY>X3JN{T*uoI?wH}R$+avM_3?7T~0qcJIG&~esTxRBj)}J
zY)}27gucCmU&j^{Fc{zv_9%)7dTdG3zN2}O<sV&I^#f`!@~;;mQl|o~&qs2s9Y>fC
z)9QPr=he7bllQaD=LjHWrzfYAjsWuZ{43{fu3=R1X*N24{zuVyhhzP=aoFB_@4ffl
zd@o9o$R^45Gb1E~GD;;;h?1;QDpATP<9R5eWR#Viz4xB){r=g}(Lv9_y{^yaJdrno
zH}b&Fm>Tr!<eP)+$skOtY3VIG$C<PXyq8j;0`7s6jp^f)So+RXv=YV(mlw?3zFc7e
z(HDz4#-`}qrhAO?UlBi)-LW`*LWC0vCKZ&Q6trTGOy3)^B93=hkbmy`Od=@k9uQ)e
zWq|Ijc#`>X7I;fw*yWpvIBg$Frue8x!K_e#_oM?J+ib~lB%<EOnyPw8Y>+p>G}}IU
zZ$l6)xTE8GuL!~z{y7uPV-dvha(CH6yy9Hdps#6usONCK^|rznQ5afE*>iVfho%?>
zOU4>%P&TR1%uhPN3Qp+;l>HNgob%s8MpL)2K|W7EdwE9Wt0-1jJNp+m_KbTLtq1TU
zM8qs2Xd9O<+x%*emkolKpM7mw6awa~P50RuGN^2QSKKCoJiM2QCzsXff$eT`?>6#%
z-B8x6wjM-zE?J^4lH8I&9Y`4(hjQDG8k*gu(0#}EVQiogFAq3J(ksZ_VuQB+M;rD^
z!ccs^T#Mm9#NX{=@-Psl1GNYL6>}a>VTYFK`=8MLi@#weo#><x@<+Gt-18L!7X5F|
z<LCH5Cx6MA2HkU7?Cxmp#iM!7%a1G4+lX&Zn&Ag~Xg{>hx*_>k8A61J>xOxyAe4qN
z_H3gvw7;&xv`}8_ox{z(Ie!6onWt+UJjVz18GbQ!A4I`(CShsCRSbmgoJlc4xv$XZ
z?RUq>Tb3eG(NIIL2%@*~R2kJWs2`*eps$Vm)GY?Nafd>%u4!()EFuhS%*F~wJMwT-
zwl|qY_yG6yOyG9GG6}wr#Hg7=kqX||)3k5665&(tI~1PYBgF4mw*9A1JBkyEns?0e
z+Q;=@|IL8+T)}LnIqg?i=5cL$OoC&@%=pOVm}gVx2=PsXnoT%HLj0jrdWXU7bsRej
zqa&vs;y|`mR(L}PZhSxdmA3UDW|=B$plh;-4fqzhcU+pntcaS7I$M)4y%N4G33+;a
zu*$h~y6G95t1Dje+VnIwd^fo`9_=%qk_tadF(ck*{3WNDgguP;Z(S$D1S7tCgW!`~
z;StU+>Zg^FIwzj7iTB;(MI!tv!_hxsuLGPY3k#j!ts|UiNr9k?|1!>GXkg8Nbr<LR
zwmV>Glm%~c!F;_boEg8=i^s{!kl?pht`y?#P~wkU6Lxj4BVOe9RsNxb8SJ8?_>uOH
zL)?FzeK<)f8a&k%P$DDd#~-*j5FCwB;hj}KUJkb8$G^U57#eiMgIDNnP}HqE#C<gl
z)D!u_fPde05AQWHgHsNqy6jTQgOBd_{#N~(6(1%1`u%hmGyb0u^^*FvA)JredRs{_
zqCMu=EE&xr|89xSIm_8jY=en0c`9TJTf6YMucnq5Z}Czp^U3dV+-kPVckLN!{JEp6
z1-$6<eu4kG`$vBryE<hj8#cCuIVjxyIb2JKe^yBTsJCz&w-WI3Pn`ubeps<th;0v#
zBaBV4b%<fY8!G=uQ3)f#^IU%^df_S&yb^lba!&FX_x0PM)`@K78K3a9iB6G#-~XzT
z3ooN}noH^|R-*)*M4UQ3t+L>xN!moWstf|XlFVNpqa160xQoq%26Qk`+Og!Q!_jub
z@^~$pCtV4jbLvosq0F_Gj$;MrZ{!H8zN!rDUsrD`CQCzEwz2tX9Sxvg$~iozi*g(e
zrFY-)%0PW(;l#rkVF;lN)j2|WQxd@l%<d7oe+4a^@a>iZr?Lk=b^~%SR{*#7GLheK
zcAuliTM-g`S*$I>l;A+`b_`#(G}ta&>@RVbN51Nx2ijZ;VEHEUlX8$I;t^J`C>$vP
zDgD5rkgXJa?_{0Up;7{;SQ8#CE7b4V%Y8XFAq3nm9O;#U%FrN|pLRsNihbYw@6zMB
zW!!bEi#aE+^y1c7X0NVLpgCc7bJGpY860VqljRtW6bh7LKRzF311I0}EMKpXgJ$3P
zLL$Vk`<HWDQ0*QI2r#zJ5zY|9#8!L$>+^K*xnKSJ1x{9gPK$H-{3Jjfu^woR`e0f-
zIA>f85!imsjwgLe1vD=8Tc*=Qun>1PO)GR8<E}Vqecgf{e6`Onsqr%48KpALf3TXv
z33zyzSw5b?9*6E~-4pzWd&psB$)R)#7m)kT7X}INi#*G=)z2p|r>kUXF@i_9PqJ3T
zOd=aNcgjno7IH1v_TvkyOj#uOFv6MzT?PXDod%!Wsk{kXx{GUDugnnkB27H$Z1*bm
zTWU{Y&6p3r{xdMyfM*-Wv6Uu#;R8M1t^2AS?adL~DXX{I4NvB<S5e#?J0k3OC+_CX
zS|=uau1f3ct$G&xCI=lpad8j3Jf=rOx=sgsfi=h5`Mh{J_<EGDLxA^T&Aq^F$b$c2
z*?o6EiURM}@+n1fbPM-4NG+n$iUd#3({9_MyM^<tWPK*aJBJ(Me8_XfW)G*8fc=!X
z*@2^Ared2l5Wp8Vn2G(zPJ`E?jSSe&;l=-WDfzsLf(u`Lz-$-&hz);|Uo>G@mmB|M
zZU2^};U11`FHdSK{}0A#Lg3(Sxry;c3pMK#vckDqnjH55CVV7C`pzG&Jxm~sg6S~_
zB@o`dC_9!<i1)kctkJMR4VZ$g1Iv$TEGtpPmSKt%;?qVtJ!4<tj<U-Rr+%+v61ekU
zf)Q8d-ALM<T5`lcmiwcnZq$RR9Sl>2ZM?(nN+gZsxi8~>DS3SG6rqEpP}e&&p?`2Z
zTRA`XZ|q}|*OKxknAdR?0Uj4U1<CO*ueE&YA3<Kn&lJa5mq|eU`)uAh6&7e!3otB1
z_vj`frkjaugm9vZzbclR4K{wfBK@*Q0Jk47B{l~MfGevk@lhcqJd3vUPDgV}=ig1^
zfT8!B#$7v#dIHd8aIW0gNBtPaPsE~ul)%(+Z%i9~zvS<#9t~_BVqR~|!Sgl=>Y*_?
zJaXU1$dAnrr;bqW&3ksD8r|F9xkWIY`P7fSOp9@D_&SR_5`QKVGe3q)*-p>Mj;+G#
zJ-Rzq7Pqj*6aNVfl5Sv3>&N{S0`y=wIW^I1%MLaNqPAbV89^t;h31%s5cDp*F!6qe
z-kaXBbY*$612cIqQ=KgGX_~~Ag}h^eb1XZ4&Z5X?SFybH@5KlfdyJ#~&dmvx5|fg%
z>fFHOa))_DiWQcm-`-S7=YXgm@;h$3tZ;ES6}?yS!<BW9ky#r`;1fCh_CgUOyo&N3
z54Kpq$hlQ72qJE|x3kNFLsKQ@p=a_#_4zKgd%2jA>fs+O;9}U==9ymHSqA6Ws?$@L
zB!cd+qV-*Tarx5cn-e(PrXk&bY-^Z}lt`9m#T2I6|Hn{I2(9mr9;ZstAzz!f)qZQ&
z5mq&C96$PS4~u;EGk4`HAqd2mGMYMZz=wzD-h7!m!jea*qil=NyYqXap5qV#Fef8a
zym(dw7PD`ukCO60ro_goL^|Ttkd_Lqp}taG;NYIJAPfA6)j2SdLv!4(xq-dnY~V>+
za<;H`5qqO}n`i2J1EzV6ScgoT5qy3M%Ov~JfyoVFqYLPLz+UEq-RvJS$Wc1{R}jVo
z!{L`6=DDw6e3AFcs5`51Q3KHTU11Y@@lVBW_c<F}(D+w#)&-rXSsc}u%MUUB-tUrz
zC#b;fS#%lK3i2{BMO`>`7QK5aw^VU0B7RiPQ2r~_lcCIpCJQk-AaIX3&CkXL6gtA;
zK`7^=(9&GeV5bb9^2Z}T#H&HP!w5ccN*%7s^^^1!sKf5xKzUheW$@wJJo^xFb!>j$
z)t*ULhNm0+CC1OxVA(#fltfe+Tzn&bKay1e)n<WhHc8Zvi)iF5`mF-yO}z`csE={Y
zdZ3#Y<yAwYc3zaPquxJ$WAuTlJdocRX?Vb@h`4sXc$_fmM{<?6$QK~)md2*n`j{lp
z*S~Cvc%T5XA7$%(t<gRw8MvI#sRY&7)A$pYr6DcL<W^Ov6udLl+;V>{0Z*=%Fyii_
ze4p^rf`y_YjQ*l^Hb0{bv=T+rx6Vj|x*AEumX{K!k=?%#{7(T+Grz~}qWzECz}mm`
zSPFtWXBltPvcM$f_j$gM1*F_lhX`YlZ%HCx?mq?8M>#?0{tew{GzW-U!+{F_{&U~Y
z@A!ROAH!|NoBf3NyQ!Bl%+IXi?6{Vwj3VekyHEGuSy3uHPcaKi@(L*)=TsJS$95kl
zR$Sq|Og4_I4lM8t4c){lyLDX3W{+_t_QJ+<G%eV{>h)SN_I2DNv-~c)IOL1gPaIz(
zK<hJ-oWG{s!kBEDA61WSU@i|EteMa|u~hY!$cu$HF?*qwj}#UMSnZ3m%xS${*cNkG
zWxio2js|;n*hMgnwSZl6h!XOeIQcPrMDNeMP7k;AP~Z2dXxB!4!U1M(RF>@$(vP(`
z-2H4BJB~@SDx5rl_Tg#*hZm>Mu)?$EQnjWzPB3{m;K%=60Cc@B^cT_aATLh0pd>5e
z$_Zzw*oPtygC$vH<e@NJir8(V$`FKSKPU)t&-P($ZU?K5X9OY9aY<3U0{NHC=B=qs
zL?Dtn!$ieL2yVv37QA7R19}&RIo^BRfMpDwR6y?xK81~+OTRNCZspnT7L@ON+4_~|
z{Sh&At5O%a#{I^8DnG4hc~L=zU&YNVv<~r9&JEWhZ>3eh(ECr{+HfrIg-8Y|mT}r*
z6;E{DA|I09?>}6;;t>2rE1YzfAG$bL1djM*AZ@t%u>kVdM@Ty#uEa@z!W;XJv}Y)1
z7E9)qa7Gk_Sni!tLmrD;<yn?uPbt8<H^%(br~;hjQt!gn6`|YB?ox1sG8owmU)dwj
zfGLXpJK8supuw1?N!eEp1~-o+lV7nxS6GkaPc+Y_py$0jNhb!>=BXdZej^_7Qdp0x
zyfP$GX!C0z-U$EMpBm@Nh2T}b#beJOqEH)`kUH5c20b?VD_L=hz^&bQ&@zPb^QYt{
z1r?N_@1>wtPO>OCxocT1{6=}wZ|gF@J*DCE!kDfrl^kF?PR2$x%J7{#BXAG(j30mO
zNl94|0YT?W_S-0L5&sQ$ZMzR~981R8mr#zpueJSxd4nWuD>;+kekg;e$li!kj1;63
zsk`joMSpMbtG^~%72eiAuCwA%g`M>JjJUtraD#o0Ru}#JZ*(&Br=z@1*1^r6j&96Q
zQ?HbI73CXp`FIZs-S#n-^Iz<icA4QMe&y%|;_hXq58hrz{?ObqIn8Yg0bpaJ8+I8J
zhcjW{rz4XQU$>cvcNlpRtA^OQvhoB#Zp-;UCDgN7(K<-hYheXr9vL<X#1$SLaH7-v
zh;qR}$ETbwO2824)TY&Nf^Q&eK2^6UXfb6_aL=<rX2O-D-YIS{wLcX^fO;DiYE3=3
zYXTtbc#Emq9QlTe*prTKazHuJbA=eh33Yq)VUiT(<F7trFB^^#0XAy8)!8{wI9cp`
z#m}4r+-}F!L>sdK)1Bt(ItpQE%b8#iMR^*(^Or1++R*3Q$vK%xi~gTaj42GJx!@!&
z#Jed$9O!TpbDc~gaM%(`^o30fIF~<~E+CJJM>;M0r5%2le9YdVg#NvSV-e{*^66c-
zw|!2Wi}t0ZFJ%MChzDtU$Yb5k4N6X8CqKj>Z`bCnjN&0)XrC^>nrMW$siAVtm&?(<
zWbHO0O)m_vI#~H;RsgPsP(DBVQv}>J#Lg`I6#;=;jaC+@#}&4J%z6cJ4I^E=|5cn7
zLvwgNZMh;r_!c!4mHl22uDfErFQjEa|3muooj)QVilZmEEY1UZ{MB1;jfLQ9%+`R~
z1;lSITg2y&p?xcUg?|KbuM65HMcbFSz`v`2+w?py&@+6?YL;h*x$b`)d8ZMdz@s$m
zRHGsYJ)L7rn2`fb?Z&Ea5pr<&eh7d0JmMl+rCnH}R0e&e{^S;Vb>Lu1kkU+6hk>?^
zKcY8uK<0yn%a*D(T#f86&c3M%$)|JN4VX1S=t9S0^C?ZZA$THOgisIeEe%)11)|Df
zo<OMigbc9FuP({4Nh7W)SN=qc6!^TIk~)}|1UIsppUoChz|eK>&CL!)pl;20-u|CF
zM1A@2{y$$?5IT5k|9(#azRi#3dC1EFTU-5ApNER@>GoM|F4Wt-D|R+SV^#>#ua2=-
zFNr{_!naJ72?3}XW#_5f7Y0{$>W=SC=zQWd>p5gA43@svH0xjR!xs&)B<d+aXgJ>U
ziaR5Kau=buRD`6!SyQTjLq!PiyaLIBf@ob*my#z6mjr%q(nIF^;%L2_<!5)}hY*R|
z>X(OP;KA`din?KbkWmtCO0Pj4Dqg+t&F{kSYN93|k8<<$iTdXqK@{}5vjXlSpQ&jp
zNxA@fe`*Vl5xaa@2t+kccbUaYfWXC424?~p_(-i&(H<-g8dqCs3}nUOW8JhxOfWy}
zI@0HBHi(04D$(u);^Cei_PYOSMFONoNbZLyh=aT55-vVT59G7HWz_X3qq)6!?*+UX
z;7aTkcntJWUVqXiKua64-9IR<^dVl1nEcHjBAU=WdXObLuLhcAijm<c7ZNEfSpKBl
z5NhN|m~)wV!2GSe6oWk%Tvut1V&ve3jOG##`x1Ug^ipeQ(&vWSX}ahREp)!i;cv(f
z;RiA{DQTf6oba)%b8i8?V~6DF#W=b$0**B~N83;chzk~fEUTc;oud9v!W{B_e3O<?
z7-ENSq>sa2;>f^i`_TK+A}4sZEO3aUeI_B%q4`ppDAb)xIsIdf8@Q5Wk3???!ZcB5
zj!(E4a2vgpH+1C!QM0_A_C_&q?4qpF&J_lSS?klJcQ`;*bu=Yd7ww06dxz;aq~I0Z
z<FJd90zftS^ZRnSF#J@YqwYsMbjJ$}!RHu|kMl!ujP7$$F!|KX&y3bJFOIa=>E6QN
zDE~c-K!+FJJ+^#wT~ZxNZ<bRPvWo-Jd#i5!VAOBd7`6CADh=c1f3(s*OTu(=ujOM-
zIVk-;Lz0Mkz+4PO&)#gw!-U0Wt@DnGAYee&eWFtmnmuQBhE*ltFTs1G9dhLHGR>Rk
zFIE8kSu>^gXHb9r$b2n)5%nVf-iuXE)B^GKug@b*WPsQx`PvSnGTeF{u^z^V=04sb
zihmL%Ay)Uuz!7=+E>`=8{AfjaiKh~N>buCR7OSqx0kUwm-m$feMFuw6zR<1S*M?n<
zmmlx4D1cjby@=%_)C0sNpKkxE0R*vs_OFK`pJ#jJrf-El@|(|G@4>4>gKOzGZZl=j
zFtf5wqeHp#V=MJVb4{TB>V&W3-@~d;8aO5KA7jLh{ya4=D50SEAe;x~R{y)j{Hppt
zVsP-T?)Wo-=IrLGNAtl<FqDE*xr62<;;tqqN>I*Q-;wvd$0rUr8i;H$&f$exrAJKh
zIh@dESf%htoef@1r{u9HqMn8}S4yr5KSXgf#9aF&0AY_SO~Pam&s<eMHy_RI-#t}W
zDYzqwxM_-V@od8I`e=xRm_!&x|5$Q<{3rm;_gIa$odn=|*zYi$6zccJxc_@YgK|vH
zum1~8XN1!U9ileLED#m%!mnzNIF^^S+Gz#2!G6-$<zG5Gv~eBf*F<rF)ShJ3x(o-b
zxw(CDLVl`2U&)nq0WNUK96m8G!Uu<Ex-30;m4G)qC7{2B1w8&+dip+y9Zm(QJlyVP
zg`K2n-pn;2s9Pjd`haqx^yg!?UL$|UjnEQ;%3u=cNVfev@R}5Qyl4d(YSA39Raw34
z8Xe?RP1c{Ip#gKvhF|}sqF&FGc-{#T#N%=Mx)+2z@qr^0#2rLz@P_$k_^=BdD9|Zv
zK8<03$ImC+tWD`4_!Svx9UmjeZ?^Q8ICF!~ah<w6;xK6~l{mf<V1O6X3sng>m|^x&
zb;e~n#GxI9VKLO_!+n$Bn~prh9xM!c+!kbo_Hy#FJIH$|g1=<_X@Cg+OAmi!V9E$Y
zRg@wk-!?I;=yIaIhh(sIDO!3Tc}w0EKd`zJO^bL&uge-F1flcIexo26FO<yq92zYm
zKSv9mkOX-HMe414@~6bnIgIUH!4rPC^v{c`>o3a9zEIbr6jp%iUgekVlVzZU+{mjy
z8{Iql0>*|B5B(<JUv~{Y5ulbVOQBsx`-Z846zwYs`1S70NF(BwN&DXA^g+3TcVCO_
z!*3z(bYW=2ZFfm{&U|*goL?M>!_3RI4#eT|G=;F$XIY@gRxV3H_n{~E&66IVM;`L`
zET*2{Wg(_AID_N>^_a1vT@yMLi2QxKEP+}P$jahsIp3-Rcghhl;d@2c^L2Zon4$_a
zWPzbVT#68Cz;T#6rvf+RhgKCHsep!bmZtwa%7ruI;+~N!L%M0U!6iF7;GW#L!qLb8
zz2DnpwPi#gm!XS7&x{XxTm;UU<)WNHaow+HnY2LB$jQI?l^y)o!kTR2B;nh?j^^(q
zB2X05WFSSz4W42GoQtSWI(87a&m7MJ368CucIcc^r0IUQ2XP*-;onA%@3_F-Z+GOI
z5+8`hbA3|1i`Gxu+@RHyg5dJrK&=iF2D9@D<{w`OL2pEkypsVVj0#u~+<hwqbE3o3
z$LVPPEl_rF-9QwyuLPO>*_MEo<<uVsMIzANnfd8=nlO~5Z?K*+MLm(2vFC$<qA*s*
z&Q(n-1oiBlr5m$6&@t50!lH!yZoHVGz+-eC3;IAz;l~g5u|J;3<_duK=_@`r`9^W^
zWHdQxCERd$W8X)@i47VZD~wIdc_G?-GlObV2p*M3nZEju0f=?DPL4J(LloVko?=%9
z$YT<kl4fNGuW5~m@qTW&LPtxLQ@{cF{$m#9I*8XCB6nf{y*IIo?zvVjvH}%fb*Y{h
zEga~onK-=2!CmTzcxD)}hwZ#Eca`m-2br5fYrD2=z}UC)lkLtn_RX~PM140k$ThI7
z%d@XxG0A}{_p(SJ=d^pKgw!f_MfQ*Ci*O3K&9rY-IY<p<>>@u4bGk6rkIHJxI>hiL
z?udc8njF{+BP+x@Ix))C8I`{rWFYrdBZ^C%7&cCw!Y3UO0>$$3?d%8SP#sO<AL2(3
zmy<8arF{B-Pcedg;|%iN-Luiaajjy+4xRPp@s!|_J{sn^jeMp1{ya0R%n*@PGdEmK
z1?oSr0+nx+$iMYdH#dO@4k`J?w-66=!G=u88u`52>V<z>qh9Yb3QjL&hZW3^Ek?)a
z2|W<jon+PifYz@o3i_(({24QBu_s_401UnT)DLEuVA+Ovjxh>(h!+2=$fjq6(s}N#
zyf_x90`9*>@u)9w=J{3Ux0JB<qRKAMg$3HFMU{?X*}>K7yL{R`TG-?za4!GF0V6%;
zOW6d7pZdg=el!7bQeQV*Jcsx*^6Y<@Cbya4TWXl}P8mC7zWo%~H_rzR5*{lzh!M|b
zF0}?P$pqK(&WhYayi=;Y!a|2@T{u`)DE{ww2bWZGba0!V1%FA#r7Ui2ANM#zQ`&4C
z<>%Z-`r4`&aT)oF?$6^_FnLxA*)wk^u{a{$TeUP>Si!obbx77%oYd?9+v&+coW+S7
zJr3Vcj{B7Q%R0$@%$a=o(`%`5oWdXx2T2eCMAKX+ooyw6xZa&th_sCfZJ(>77h1!e
zo-pA2IZguq<Smt6B+!8F?Dxe76eLikzg%!PdkA;SHj<V+Vg=(g&9ZDtIl#t8wv9#F
zrZ6J&pp{>^QLMl4-@}68MJ$Evs!z>@AslaMNp%zr@~NEcmATF|k3~K%%L?6H#|rL(
zbJ^{AtV;U&)t;h8Z1oPCd@Ml|E+Fq#7Cq{5aj(wY{}1IUxg1hXHM~OSg5@x||Mpbj
zNY6un0{PyeD!ZhHdWE6<H^w81xY^mU``z_-gpn_x)OZ-3i&%GBH=c$F!`{=R`zknI
z#4jL&XF>dMOz|M^BRU6;t<<c)qd@zHMdjZ)#Mym&e=N=iV}$ZT{7@wo58|tkp46x3
zf~+UiJU@Hcp+Y}0z9&c!jGnBcVk+`MoO8U>M#uz$er!_-h@W(Lrshe?l}+r@tIJyo
zh_Ak1m-aXoohQ5hbs7y<2}0w;w(1XU>@dY65u;Q?3wy^FPm9nyA<b3Uq*3%9z;x8Y
zEaHrOyuX%W2N0iIh@iV$81-!9J1u24>;-^Y?}Mcxy)l@X>ziiQYry@Tp@E0VXMqBv
z^c#7h2BK_nb)9lrK(*Va>C2}9;w`I!1Q*qzcJD)<2=db~7)zb<bdZ4ifphjn(F%|g
ze(r*qCF0Uo30alvs6zbF-RpdGia@xdW2)gL5Ajv$t(|CI1EvcfmHsM#wfv8+r$?yA
znwYlK@k9x%@h|l*bBe*<4Py^RNkyQqeUs>MLIu8i5V6H9C;`jpQ@%-2IUtRG(Kui&
z5BGYQt&I@h;kWZ!kvJ|T<egtUMVE=VLyNfDaxIj12%`HDKduhHR}x-b%vObNOJ>W)
z(@L<^OVF8y@`Go7K7Y+?hkAun?IceSAMWLxV~c0E3Va#jfA(+;@izZkn2-1_2NxOM
zJ_uBk0YZV*F%ERkUo{F96u5};m`5k@<df1c>yq)Sh@Ks|a})N0KO>*T-`;O}q=<W&
zL*(XZgM7qJ?oO>qa<I!>uOKKd15789o&?+!2VvW-lyG!jRf;-!{Y8u-_?Nh!xlOMI
zM*PB!4(MKV@i~p_D-(I}9hIXNbwyu)<88~UIXSpK??F^0qYAURdsVWp5l1sDP5mjU
z8sJqqo<`ynfFt(Q%BGznoUT2)oP>CGyPoDWZ*(PrRV_lb3-O%JD$*}GF-n8bp3wXY
z<TXj-3b=irQU=}!d&uZ^2}3`L@|9~<QqcLS-XniT9O~buoA|9GA6KR>0d`3O3X>@h
zKBE53^2Er)v$lx8lvZ`ZMNI-?lPa5rg@hs3=W|`pby+xYBrhL6kc27XZqWlfQLv_+
zF#GWT9+cW;_jY3r(2bKGbjU^=o87d%O~lts&0#;<eJ>2EM=WP`>;!?1#KyAzGwS>6
z?Qp-&kp+`Ts$k+V0gxdqCAdt^0>&=8B+&zcz_7q4`^Z=n%v|J$JP<E$(`N*{4@DuI
z@k(8ltRNJ*SW#=6qkHJ@c$NxXamXF4sfkYGhOOMpdkLJv;H<KJkr#0$lrR>w5{g2<
z@UFkBmN?9FU$`4lfcRaSY&=<~(E9A<HQp`H3`|4rK59hheS@jMM5GX%7c@0krea-T
z?WFhXbCa&{tHb4`^A9%&%2Il>b=?_aXvQih4BcTk;&oWNp(FB{Jt4k5U<W(Vl`+8s
zmT>9bv^KfXd5Ak8jinv3g2^?ZJwIw|s4+Gkk-caOPqxXwEe+WL2i}UNQ~Mm$S6n;4
zU1|qXWyJ<>{@H-cnKGTvY&O8r6TXo_?hNIs*}VD^_NcdMt+{P}9xg7JU3(pG0AxRk
zRi_-RK;hi5#;&0ikb06Nz8SVhUYS&+d9{VS*76zqOBbQ|`lFW@2pmB2DA0&+*9E<^
z|EKsh$q^D~g<nnd+ksE?H<oxA7x1Pj&8f2XfTX_^{TEAIVK<GhKJ2tBJi1f-YqP=u
zw91wDewUvBiIKYXxnMvX_QJI0AKKuo->Bm;fWb)twbzekPr^y3&m$ZURT1ASJFD0g
zkRL2kwg0sa%7HEKN3?0eKhljv`+R`ep)a3MZ5g-=T0D9sPrxzj-~n&H4(PZ4=bR~}
z0eNnlk0u}Mfzj(Yz1|3QFshX|z4}ZC98WGf-Cji8%qlUz41HDjAuFQyaz-1jm=U)e
z5oy9kM9SRFkLu7y5=?H3^7*~8vHCP0Rna}V?$>Q0ZCK8YIInUS;8GDyciNc~z!}lb
zdZ?ri^yO4PqGJKNC(G?_>gYm+^#1;5S{>Mlmkn?VGJ|N>q-U(<S|BRWAM#e+5O}#r
zUNm{D!l)5XxLqCcz#F;;l836nB<0Y&q>BdZkjJNWtmr_j+Uv{yTmTpD8wtsNRRZ%7
ze!QcKDzx#OnW!MufiYtr<MU{)a;bf3gFICYK7QDI7gwbTlf2}@?kBZi?E7R{VT=we
zC3y>InyNv#*29E^c?^grr0j0r(}sEac*1I8RjAf|F}pyl4Rnv3+L$N+*vCR`9DW%<
zE8FX<vtIzb<lW4B@9ILNe%9#HcNIu_%+q(~5OJA3Xb!*YVqj}GIDuFL=$&2fb?K1?
z7#vn<ehJnB>`vauriB_j6t}J+KB)uK3P*%jk_;eWivNd*1nQN#E<MIy(*l8odNU7y
zEl{!L_u7qBgplyT<eM>C5a)e|EKkw^0)uvgo<(6m7xnDo2M0hLa63QRK7C-Trk1_n
zs}H9utjv2m)e(<Bl7l}{4Jco#>Us`of>Q<`>A-s(a20zgo`>FzccRB?M4AC{jL+bn
zqjx&_!5oVa<j>iaT$?OFy(Ztf{n!kgF`RquOf!&X2tW6)A9L`XgpH`VxatS`@X4Uk
zdpAT2@vDSq$z%aYGS$ME7<7QoQpxe<D?M=WsXaVhpbM5i=I&bu>%#m~(-_t!RZwW(
z9p5yRhI7eVr#`I6gWG8#w~usa4iGlRafuf3?jm%!SLmg{NIJOsEe>(m_WR=AaG`m@
z#kS-!kcU5M+;oNN;xItLF!)nj6n^=NrmlSxhT+xr`frZ>z<ozBH>j2${&o|@re#aO
zhwlyASiCqiU0c5OX-*1Wzma*gi+HZTFC4x~dLRPtxW_s|Q6HW(tEf)}y&qpAGa-0=
zR}97?)oziBNCG~?XZ3!SIPk3n8=jsQ0pVfc$OYtCtK}CB9shyukteo7`S=l^u%zoI
z&wUYSp!F{Po+SxnciENAA{4=$OrAW`P!tXnpE_Dk2tuj)mg3%ZbPt_cf9s|t1eywd
zk?rPUu;^J396}-p!*`PF4+exmp8G4&W+orJi2Cc~LWFX{RrB0ls25XIv&CKhM+^?e
z7@p=6a=}*iu$`a27)0!LKZqqlJRcQPzdkZVk<+z3FcXl3KYfD)`Do7P@-pC{1ieRw
z7f|?5^mD<~;59}DJ9)79Y<WXNKoxXZq&yn*R3UMR!r+sJCUEId5X{`s1eQ?0_uU4n
z&>UA=xU;SYD>>y=&z-bDP5!YLtGpI$5CqGVswjh+@JyLXtSq>@33*YPX+YJ}!;>?O
z+VCq|N>$Wd3CP(kP6{KgI?v?3*WRciu<kMxUvSWaO~X6|TPIz3E9zD?dRGeSiVI_(
zB^!c-=lf@_KU83HfmKqBSQHlRyTqmA(eD+*5!XG$-_z*7HrwkV3o<E_WfA?FAoiTA
zBCbgXG6}A_Q=&e2JRw*A-6>I!rGH_Tai|D2mv<NzhA{ZL!cR(#{9YU;11Fvao&-)(
zI*Q~i0NsTBPhGKkF#M-r=hccjXb63_WgJ%pn|v6c(@}w6(cf(UajC;BORmL1n=WJ=
z<jvT>m4QwwiS>PyBO>9fo>m}NhhJ~2h`P}4T~p8Wj%$npbjVtt=KN|11e}&MHBPEf
z5_Ya^oKy?$-XIR7i8X-l#!5z9Df&>)BR2owlO99_a_$9p8Gy5}g_mxeA&5V_G$G=u
z1NDD+Zc}WSf!*QdKwlemn0p?TRXD8!2c4@=Jt;MzE`u@3#6kmxylYE)Wi)}C^+)5s
zSS?uRv3x&bpbq(|5yr{^82ETCkL{Z2z+bMkK0i``_NysB!|}xMr>CDVqlgJ!L{xeH
zMVuYh${MrYFj`oxRB@fx=K_OQR`Pu`v_L8SH;-U|2f8A86z6Rvp_NkQ_<6fH#Oq63
zfm7UYwy@?D*<A+IZ}>=xi{XJArF5CpCIX<DxzLtwA_nc%%g<C>c)&ob-%s)v6X^JT
zeizWq28#11=J+-k;bDDfgsz7O1Y@%PnbzWfYoD<Z;%A1Tklobd2{vd+<q^(l<^_SY
zV|zKo#n#|DOM5j}97LGZm~xwtpJeUU2n5oCB5A_hu@hPaOFFcEveAIbkxgReMMCJh
ze&Y^NF*CgNr`dVUKm*Z#n-2@`v%*)UKjfb&SV8PI#})-MBkI3-t@%p`!^io)K<hq6
zP{gwwsUr?#ip<_%oG=$`nx1}Pn9c?2H3ge;_Yh~zuf+VxvKYKzzmgE&k2sePvUj<R
z&|G?4UyD6c0{on;y<HoaK&Fv?*kVoqrXye0+*d*GZL8^zy%EnRmU`Kl0eNH+>l(Ol
zUdZS3ovwW_TpC8)_+y!v#o#yjLh1KUA|UZ>G~1y-67&vNyx0^Z;46!3f=8GFbP|4+
z*8Ru_OhhGznI=-8+76G+E{Y;Qs+8(#nhfmtl5x`Wq5IkAh9xI7PcuE8`|M4>ASgy!
zbkU%^MR)(sS=j(Cki0WUJr#}k)|88B*U(FG{Gn>pwkZpUr<q-0lSk{}2g6c<8AaF+
zH@_<IP8GU3%Q7#wD*=;V@EHdJMR@vG&raM$2{IHKediH3F5o43Pb+#iuD&Q6|M;&m
zaGM(Q&<de*xn<z{d}V#)y^T&?e}jAmQ}owJYqcRxIpJUGd2KW&Wo?iQ)`6l4qJ)J&
zHMpiHUUDxAtuy}N(&_H1u=#tAz%2=J6%<#lC-y7Bw2$Zfca)zyt#Z{-`7z4Rc?2eY
zlvac6Y@^gO<7h5rL-FCKi#iC)rAGPYDS<~y=1Xc7#M6@>J4se44IEQF(zRRC;PY)&
zI|TU*M09Gk;&c?jm2n<-C@K%HLh1vFzNtX!zrOtWCV7bdz?bn?TL$qTPWvQ9Dnk4<
zvdR#|p%(qYU#7N#ID!$3*WYFf0L6gDHIX>PBWgEvSt1sOle)gGGGdf)NmX<6mK7Ih
zNwv6$BHnH7{o&%MWOArIcTqqVc}w4fJjib2rh=-4ymKMKB=Ar+sluF+3O@QS9ycQ%
zkI&J{6+P7Fd=`K&NC^Fiqj^}zwRAX$QHXZ**Zpn5U3hJgC*}G96RvQO5S`q|+L=Y{
zn&USx3H5RB`m|&0`GTHM!p<f}y%0@8V%Uhw)m16_q&bh3kjOiC@MdEdoVmCudPzY)
z?p*9z<QC>PUi+*(Wdzq1F#hf|Aiw2&yO7DBRm@_LGg0REKBiE1>#wEzCT@>lru8IY
z4`y=8H;$2K1!K%ye_Vm`#g8j;W1C-V!e;B|A_HP|a5Dd;OxUOari&2`9$8xOz=b|X
zs!R>&-_d!0uH%P~whx@E?+XGy8PP_dha4~)L=YaJxy&`qBo}fUMc5T%dGXCp6{?H`
zB(C(zfr3-fP4g%6aAo(U!m9vuKb^|isp(gQu8$clE@+;ToM_@2(IyR~efQtyQ7S?P
zr6=W$C~3&%=WlRLmx1N-OXodSWWnad8$KOTRUrD|R<eeAKV=cgB4bTT;4T=BiJ^OV
z@yqej)*xvxWF|iM%L2_ETf}r!FUrHGXE*YA6r@m&d_ByK1O46vI0>CK=LYpoO&-TX
zS!hzNJ@t1UarP$}NL(|d;K|+Jl`QYIp^I0Z|C7EhX#L{#nZAyC-A7;jo-wLHZYss+
zUs0-{u_wjNzOD?^!{xe7)*4X9o;W<{j6v+G1+9OjI+$pY&2l7ZL&lpK(v#OPAZVM@
zZ9k^~%Y~uNQjfHt7K<tR;*8FD{pL)1wpt*)rtoAAuL9huRnOGb<si0tnY_bW2@HHi
zCT=IHfX{mpqSMaupnC4%dhsVk7&>-)AcyYdP5<uPD?OnKUoY{Mgh!!yai&&JQ=}}^
zfApK4v6F@Bg@BfrB1K?1F0Ch<RtL{Y19`+Y0F8Xrl6iY+<cD}$^BM7y2i)++o%702
zb>ro^@o<z^q6-bH#mhrmAnmQi6N)f*$z(evp9LhQ0!JQTD6c@Gp;RA%<~;X_%eWY*
zp#1HPeX19%paiWlAtH$9fE1J29_V5~G8N3-f_Tu*5%5M_6pq(UIdpg-PBT}sob@eU
zko1>dIddoupH7r&3!(W!Kw>H3a~^JRzyFHJLR$!YG~Yd1{U!<aL1!lgX{5pPqr<Bw
z86rS4UchC~g7O8@_7&lo++dlh;pmtu08iKN6LcUi+SLs1bH63|!QjnE_3JaTuxWlN
zH>^t%N{fabg^{E84K8a_xe;OX?y;yoeFyRL37ZXw`-DMdJhm@jSrTGu9?&$2NdWn8
zg&{t~4IJR`;aw0A1G>E@k)a8~5N+{{!}7i=>Q$O4f8s%Z_NP#el1KX^(aSqwUzFh5
zwCBdKs1)q>-f){od6@;pe;-2Ma6$X6NYbM*Ip~?%E&8tuaW*f_`zx`?gQnz@fWLa8
za9_rGzL7)%j+K1xo7c+$L(jFViFE|fYRB~S0-9%K8`>h_ni9PKtUMkffOvJLc>MPY
zSxA%{89Y583L<IlR)m{~lWNcFB&s70x*F?7mMO}>X8zt;uTlwQ%+Asj=puh*(u$Q0
z;%8U}BxgJ8i9^6{RQE9AQC+N75up2}3}<dLJ)SC80r#KsAI_Wxh?b?R_)DS!eIz&E
z)}Z~V#W(s6bC5W&(<r$1x=4Xdvk!jb8aZA(vz^=P4+ESUG=6hFL>I<2+S;SOo(2-?
z+P6fvPe56F=pX+b1DHxU9r}s*B#0OGw)3T^z(`nUY#sXk8W?^~ju>deq;t7f_-A!E
zxHG9si&KJ!LtD2<<kUfVFD@#aMH94=i36^oe0b7H)0dj*YLIh{a+cwxCajB_Ut=!Q
zf~aHnM%onvz?T~By*)I9?uz15WDF<ZonX!W!L&YfY!>Bzc%TPCigj8G$cJ&B(7)uJ
ziV<{4-((ah08r)Wy5W8j1GTl_Bx)}7`6<>s`i0J`{Ktf>xCS|Rd(k&b9<5^`fy&pr
zJrzL6TnZQQSsZ5D@()Y)Wx>pr`+S@j;(5=XvkQEIJP#fe?50)9psV8ekwBaQY93G=
zFW*Ey=km$1sUv2%!l^M%E5ZS{T=$OOb&$i+srT&N$P>bTgD9h1gBjFi=X;+ka)Gk9
zoXlM<X26~Zq%$k90%H!L_G=?v2w#}cOHD=jv<Y1CPku&#72m*9$irsYG}fcUg1Cye
zGCvy=kimiBP61iOHYP!&ltboE0D}_p3f+EdSc34_*mZR@&kQ>2UwoMY>I_r|yRu2Z
zQ|*eX6Oe+hUBg6nKMBm{nSBf`8pA^GOZ!r`a>9U1XE-<FV_w?Yn*TY(3Ej^*3L~Vs
z;fTqm<d~cd*0KcB{7SjtU$m?fDdJp*Zo1uaZsG;@Z!-HV`uy<XLEBt7@@CAhu<x7S
z5`qfLm0!s^qCh3)xz2%dXlbmxWa5a&e1^~Zlx&?47*CPEHA4Mdl1j2W#|%PHezW0J
zjG`#$G_cU;vY=c7m$~9^^zN;S?YIT?BCp`Oiatj)FNl<8S{cX+0fpEDv0pZPz;*7i
zNYWJsFeDlL-0UI>?!t2fZ1;ts=5&Xc|1v+CXK|P-it>ZzhnbY>+oE77bRH+&!4A2(
z%~i@v{D2p?7@R4W0xAQ8aA|bjjdoSYAs0h)HrI*g<PE~`lzJfd=(`B0(z~Vn8j^xL
zd+xWf9#JUzvPDHUhkQM6TY^F!vckQrdu|FR`C&GIl0UFQ7`pm%n3l`g;Z6n%|0e21
zWs~v@N+u#+tKUUu6&{o$vCj##><|PBjlQ4eS47~<LZY+VC6tR2PzmU{D}?f>tsC`Y
zijW#%79x(`na`X`_xGq%hEns}({aexq%U^7mvIuk!?W#N{Ix5H=Ji`^g?*ARawGL4
zOR*x9s?yDn@FV^(<+xMNeGbt6a4@mpA&=H=*Hl4tf1``-+*k=gJ{|H@M@E!uiS15a
zJ$sP@lHGj&(oUc`&zAN5Avz`a!4zfZ!lwjeW=swlU1AWh^d+TuM-I)kOb32tN`b#V
z$&?!EZ>%}qqYdel2kCh=&;C5*Ne{59kqA~q{M%ARniAxN^2)#AwWEaizP^fZjOHMY
zGxFND=yUM<ns<$l5)y*&3wLPNv9c$X-xShGK;~aMQMh?0?l0b`(c6y>5^Ze#$|@$Y
z{5lrJ*RM9PfQ9mj)T;!bAE7-udSU{1(Rh}YADx>5hIH=*XV3ycuYG>*_$KyykmDBi
zn;zKfn%j92(Y>TtMtC3jy5H5U+fxGahG56>?5Kx!{gv}po&qVT(2YEwH6n!#S@+<x
zX=~Wi>DE_=VTf}aWzueo_%;{uQ@k`MXuy<_hVOI&2e?L5{MR(ThP8DnBnDL+;kr4W
z-o`y0!5u_M2E`wI!bFD$;$x}kp`##f9-|n-X75D$26gRYWV?c_hRA0T_w*ezTk0`(
zEdIsAZyTNWuChBtQqx1#1@Q+HoQm-9Z^Q8|#HF?D={+_;Inam-ovX~|8(3;g4!4~g
zKakU2&|$ZhhD$O5XXm%ky(j7U;UjJ|@BPWBcb--N=0@$9C%qY9)@~+XctjjVk2HTP
zT~>n2G`!FABV>V)dwWF+-MeV?tQP8?NQ16U%R=msBDf56arylehplh&vb{pmKr-CI
zaAO~F-Sv|j)i23HHs&MpI70wV;8V9nG!b{7nV5B|K@=3XSMJcA5CZxdZw^ayVTkMT
zR#|9KgnR#fINeA={^SSvdhQ(5L!9+@&qF+$8(|{OENDN@dPe*20(#fU`mPdgKZ*QT
zVn5P1BzeH!n|`(h&Aa=qXutk_8hKq+pFZNeD+%PzU!vLAB_QE`M&CMG7fHyXtE&*#
zxMP;jZ+K7)b}3ER`Yubse>Nhb4n+L$b!?IOfu<PP5;Ec54Iqwou-4L7l*@WWPv0$!
z@`A==We*>4h(f7zuG|$bJ}Bt0WAr{H2s=IxpB30kf@fT{vBYU<c!pz@i853G6*B+t
zBkZa`uD`=$=p>DN;tIW#1&Z)E`QX2o=>9HjV|?KZ+TRzXefknn&O$oY?Hm!}=V>V3
z4t`jQ_UEo&%cG^Jk2j8g*B&eYYe_nO^xnvGLhx$T>LDNGCBHK*pFsKV2|v%T#r#0y
ztn<|7E*BJaj=YO3<c0S>wluhJq98~{PO?+U2LEdG@@xukVN==)k9-b^@jI0jk@rq*
z;P$Rqa98nf;2gFZJ=C0MaC$oF=1V+;a41NBcG`{vrh0Q^3I_>*vnvF%n?1(bORpP0
zd`b#dr6xPI+=tk!7g_qb2V`)D`hKRd%p#7%-k6|TVhMAqtytc*rUh=RyZ!-06Ihkh
zw{F_;LF~!b?TJ%!q!9M1*HgW526MQFe`~8Wj)??vv9X+=!hTJZwD`Z=$MhWrEnArO
zu<gC8hRZ)Tum@_RTo>$Cu^gdlimG2fF(G@(2ag-qu*hB(iiFG5aNP9vt6m>D)R!LS
z2~KQcDSv;z%oisDt8`c6>&m2XTXm{nYLx^+w>vZ|87HvNImNi0uiIEMwXtn|CNW;G
zmWpNR?=dbTvuEw$?`@nA-rQ^naVG+J_xV#FP~zXwuv|<eX2REbtr!VrlH-G)>tyBk
z(%{2)1zuftp~WjI_^b+j-NogNS|-LW@8jkwJpRb7lHyOlNM;Z#X2dHH29iB$;=zAo
z-D3GwPlacd9<<?aqQ$2Nu*7&4lEaqtmy{o^IoL1y(xF-=Dm-<o;om0z4NU%n&GBsA
zC?=z4ddn!C9zrLAEQK}3urTG3rA(`TxQh}aTzm=Zn9BK?t1q^Can%$x-dBc}aa*(W
zYNFKtut!8OR}7xFVU3bw1xfx#IPSL({ok~c<9{9&kXnx%;hyrGrT4hIhm&P{5gxEJ
zi5=vd=29q3Va;Xf-A5=d`%8nG4R?_bj=Z%T61s)K*vjrpF5=Y1sfMn1%OYR7t<lr+
z@1j7x(Mom${T%Oqzh?1SS`d6?vZqT?F8;>>jr-3Jav*L%IC@c64vhKo_;T+{0MDT2
zODl8^{CPL_jpv{UxPSUyS$IMMC^kv{u+&RK@mSR!s4Kyq!j!>Otq6n>#>^>~@IvO&
zWZi{fVdzc!`s^Rdi9T#f;wX<5ht~1`C|f^D!W&n9-VXs1u-kej+HXn-?52u#jnVt>
z_oUvUe8k7|_ivP1l|=jKQiK`*d(;Om-eS1_K>|KMe?mkTg65=}S9aUcJkh<QkKO_0
zk`JzWI<W+aK+p|CSK7y7aFH^q$L3@o?%ma@XdQw!Y?POd%!^|imocn&|9ChLTc)=k
zyTP}K3)EChIZ=$Pyh-y!A;?2fX|niIwVxKul(D$ZByI?a6thZRV+6VI&x8g4Xn@p9
z+d~+6CaQG*))XLKVXh)shnFeJIsd|Ft_%pkHX)~EuL<fK&#zzEM>$&Vts3nUlzhN;
zHYrT}3nLi+mFwX^`QjjDMwk2lAzriNlT_Q+Tp&kygLR^n3m7c&2%4vffpuzDd~1sp
z)>Zg5Epx=6a8^=2IZOmb882_{45K-+<@pgCG)GKTf4Ikq_*V}Go^c24u|jQg>b;DY
zVj!nYeh_Yld@Jg=k{#WIfITbyiO(T7T+N)hr^`eDI$<|LG1SAk@zy8=G&z7+Yj>j=
zaf0?L$f%lDQT}kN=x%#4Hw-R2r;`_<cm7ffcdjK-Q0rTbi#d<p&*Y!yrYs{){Xbv%
zaKx|G54*(m2lcC0Y`qP*CwQSzq$CnQEdcW@RN+`9^4-^es?L@qMUCNjZxKss*nBFk
z-~N*q>WeNtYmTA=POCumPG?52qoyWeK<|!$(M!SGV@%-ZLHS(E7@g1BmhWGAO^vww
zeZ{|<Na4#TZOGC``KoEXiovI1kW6}4QM?4*uaeqhba33D6Isq|NW%voVxm4Uk8=Wr
zOK&gfedGsMQ-5)3R0{4Enl7r*Qoz`Q((}CcX~3|BUT!~33VL50abZi!;3>;}`Ei64
zBq=Z?MAYj+uux*g;%Qyv8*5BjyPyoko4+5jddWiH)~gQ}g2jMd`}(jvnrrEDYf}IC
zp#x$&a#4GO%0T2S{##Sr0M_o9lHydfz>-Gkyv2$J*m@qBb_<_?jx!3o?@<oA)GYld
zKgR%=O6+Jc#0N_7^!C{r1vo{zTw+|H3V+u-4Z;z>JL7Dt`jL$eoQZ9S*-h2}BR~CY
zmETIR)o*j}pQso#-p!H1hbhC?s&?y7)W{=StCW^IstK#q%T0bLud?=e@YX3#ZTMnW
zo=)D3Jg1z-HX`<Va3-3V33pu|RPHISrQb&R22GbP`4j-mc(R935%IQi*fN@o=5Sea
zN*=!qr!fJRAi|qNgg}*3{<<yp14b%C^vmWiA&eDW(n>L3!~MD0R<DvthA+QzvCmdy
z702|xsXe}a5{DhHax)|@;6k1f{TcRM#;#pxJQG{eh%+$oSCdPf!*#yC5yr7PhBNSN
zFInoN0GH&?8o)#fru*zvJPtb;{&g@5WfAHp{#mt>qT0i%j+bU)&l1DEjs`|~#No|$
zy%&>Kv5NWAF0WFeKFscTTMBt53((3-@@a_D0L#(Umsgf4AvihE4yntr&m``tZQHY0
z!H199MwYaY)4+FE$%h2$H2=OS96~>rtV+XHf&3s`R$KDAfe7@oJg+~nDaX>Mgk-Ul
z7OZ0?gf*yT5f?c;GsQ)=gR^98r3_%Efl61oz~^(sz#-n8eHL*kI7xa4*yq-8sf{V;
zHu4U!jr$3wJc@|mk>Sty{cdK^)zg)VJ;MR!GFhZ4ROGPy;&Nlp026Ev5ii=EB7yrS
ze6!p`jxph2lHFTv^dPy)Tl8pO5agDIeJ}e_g4@p<Jep{JFd9Q|^4p6EdR@o{n~Bi6
z-r8rjS4j$T8QjYn!IUsHUiA0sI2$DO+Mm9EiX9A<D>I)i72}wW*#mZXH*gBFeeBe8
z{9yV?iR<O!BJNADDJ?<440c1M@p@wpF@6Jk{_4FQ5#*BV`;9&%g7I<s_~4~O?3U4;
zqN27#9PJwcB^wiIz&*VA-#mjP;HKjEKhq-rS^4nWO9sMVvvcQ-;U5Wz4)|m9@+<1u
zHS9iKrBMbv>+9=}{s{x^^YPo7$-<Cyb^LkKu_h?QQWMHFq8`Exi<buO;((c*8mBvu
z2i$;GP6gtrY-~Pyx3@0_zot(Gxeh46kVPUz81h$8Cyt-aa#w^SX9m`{$PZD+ZK7#H
zD*=3y!M0jxPE});F8sV-9UAv)_qC9}NaR7F*M1)2cU>S<EzOmL_Ez^Ylkb9H6|-`J
z2c2^(*%bB_t;AtwzSh~~qzEYAw_)8;<_Cw0W8v&y44@YzevdVa13Hps;{B&Npp7qa
z;veGJ`MjXJ+=Sj|&Ah0R*C~l$?vO$Bf-MD9d}!jUXPUy?xrJ5cQ&(}L3F6k%qNA9r
zQtc@k;DF#6Qs(c8v>;A<Z!$D+6XSU`|Hgm#82d+XoB1B{EO^XV;#nDKA+NLhPvZ+>
zsJNMfk4Cv?c2=L!-l)&mVdL``t6_W))S*$5kMh?{d?z`oPSJw-WyukH)OS55<5Ogj
zBmnlsTOms4nc+Cu5XI1Gz`AIZ?$NJ3%$ICW-Q^|X_u4-_;<H75rqIEfA0^0_b+yJV
zcIP8@T|e{Ljr38RzS#YZXzg{J)|t!B-sLm6$2=E2&wCEw4sTnHQ>gS{Z#b$+iT+2?
zdB<b<wqe}f*?aH3_r6biWt8j@MKp{=p`wsc=w}o%qf&~fXprZQh%%D0l0CEc)_c8w
z_D9L*8P|QC=W%?$qwR$02zM2N<R&5JWNqsk<fFLuD&+W*|0lwq?vj-KS;QX@YU*w7
zKENs(rf-qyj$l-mdAmRTLi{GeOjjM17|g5_9ZsotVn>t+6oW~B2$y7^GPv!N;<MD2
zty!wbvl32^IetPu8Xj(6UZWKZ#n7id+7QDTmbd2DNVy=q$Y4|*J*Vrxi-<KD6@&8Q
z1y$ERi9+uMD#dmKI_NH|?j`@*hV_fe#AuF95ONmxC2Agx6B@}qou5@Rp!25AzKFmM
zj~Nnf6mm1d#EzGHFzR9Il~`#Qqr9!p==_6&9u`oF`11PNDiMy7;eP(URA3>IE`7Xv
z8A}j2|C940J>=;q8jZf>2dd8<6b;<OpwOG-Im#>neib}j)~llM^ORcz1+fU!EIp}b
z4AckuUhnDZEdv;6KQndqKQrhZQ9I+bstdnNo5F7z835as`W>ks`Y>DCyqB_te3nAt
zl84LsfEgdpHTr~sqW2RqaR*~y&+ABfF?9^eCfDUGMvbA6LHa=rlO~)Y;&qb{G=u2+
zl(_t}D5vn}&{I`L6T~+7GcM}tLy`KjZ+5>N9165ETIuP*yXPN$g`*J;(W9f{KLXlA
z=|#;R?=S|9BJxK1$9CW$aH&)`#1@KH+1B=c*+bs_^0UELbYa1)@ENg!F1Wq7z8ZYn
z5MKW-zA(^W2!6tGLdW6|zx#`X7_o^ygip>_oeD7oi;VI4YIKf1B_(&RMIP?Gi}wuj
z^^D*(o8gN?eO6fSm9)O<#fIjwvFF-EIN;~g>Z<PvTrid&z_RimBaHs~Z2q)(1Y?i3
zTe~*7hSAS<PigKELuYF8^<(KjF)vAb(y3}3J0~l6;B-g=q=NN7iW8~`j$NlJEQ#AN
zlRJFoc~3Vnb-C>BhC8&-RUQ5ERoXJa{tn+MUiA9QGVlEjNF@Qb5j~%A^(8FrTU}7J
zIWc;^Q>+ue#svS?8m`&9(tsqc+TMJd2y8^@=%e2K!<?z^tx|YzW7p=WUBBF>h6$Sc
zRvgS*7*XYB=h~$iLLTOE`NGO)EL|pX;P>f6ENVi8aw#Yu(@^rb;`n`)U_Y{7BtA%r
za>W9J9hqxb0sZmDWZM>O{9Mk1D@I2k>HLAAKs*tw4p}DNMSThR2iYWjQ=|~HH=<kK
zMh0%?6v7mU4|_`K#OWp?23VQRuppp3qTz2&a-u*Ms8<Uq<VO8h!KzDrDf@IF!6o40
zg8CiXe4>guo*Zy>n(jmVF*f*dut-=${@J+TKWX~I%#h>wK$q*t2DUAC)0+9lG8W;o
zQp;t=4=4XfoaYk|gz#H&R;*vBfI~)u#q-7nrhB5J=J9SLR?GeS>b?aTWO5Sx&h&FY
z>VF?>v6J+$gS^-c&QsV@2WzS;OAnT(%PQulbp+jGatw}pP7pY640YZVp+z2IE7q`W
zaqxavs$0uN2WDr9NL9T4VZ!1u{F=|`p~>9-`b4=dFzy!@M*Hi48I{6#9D^p}PQ4UP
zsa1hgf9{_OwsO!PxqZ~xKn#4$D#~x&76E!+`Ts7fBEL#TU}xm8EaV@+V;dS7;OBEU
z&rDH)4;}8bliO%d&`a|!^fcnJb}cV6BA?z)Gg;k3cV!?6c4`$|SAlDSt|vOOP(C)+
zD)@=1GML&f+>^DEg6mBK53dv|LiwGFkJr$iz(RY-^xsqDp$vWy;)rst-vT4vE@{ZZ
zUsnBL*E~fyv*)d;i#TEX!><y{5trCDee6$Whd2~kD;_>WJ%OlCn*&a0u9#|MdFO+n
z6lko4J>ySAxh8L>f_^ncFg5+18I>;vA|dL2CBn+EkRN<zK;?j-`mJWp$#I<^o*4>-
zd{bEUV%B~PJu&{CvBhtr`7a^!0~=Rx$RVMhXKiIVf1JRZbJDjadY+JB(kas;H-(K8
zO;a&aH({!IZ_lV0j$u99>Y3T6{u1=4auOY#`mi6@3FI+4<Af+e=L-Vk24Sa$<@_b9
z73`XO#^<-wB#=-dz<({B4pw{lZVIH(13R5|>n;mDI1TNQlrf{84z~>D%?;!S`ZC#c
zWb7Z}6p0@ENM!@*{ie0}RaO+NBdT{igZ$-}yPj*P9$;*1XF+mo1JhrYniy81gC|9%
zcZDmbG0w+|2Pws~*zan6^Vwl4xLb=)JQO2=G}l$C_teW+@iirZiHaR;@vYf-FBJuR
zy+=7Lxxb7FB|Xn_L!4%2$_Mi*euvnTgaq=t_k>~j^!Q5NbxNTAE_&0+j|fIKy5rQ%
z76=B@ey)qMs~F?Y_~8#0M7Wi!FLRIu^6UDa7!K1xJx==-LmOT(i1nJfv#c_S6>EKF
zCCiy3`0|<mC-8+D=KgkQpPELzGQExm=VL1{AtP?jEZbc|#q6DTH5Pxdk0sh^>QO}C
zxH4Bn*GLZ^6SfX|F25&S>P)n6`^p9Vaxty}$*kZ|OSr#}e9E5Qr*8Q~vjXvA>iT<3
z0IJ&VZ4x8i;!)N2foGzTSNp13{Ma1<m>*lXTlGx^dOR(d>h+bt-1n|QjE6et-}~+$
ziGpis*B%+=qugO%V&D9Bs2<GZcgq^HXu#-z>X53gHkjQdT$e(7B6jsk8;5Rr;Qpy5
ze8CaDPxDCcnUyI5$pBV%Z5PcE6w1XblU3pI$g%K(Gb(WOTMo|kM-is`3Q|rUQwHTf
z)~i8!azOg&<)Xw6y5|>ePbj}K0WRn3N1}-|pfk|>$P!wB&H6LMGVq##Q03LI@HZIb
zetRXOQey_=?;A4~+6>_09z&%Jy1(r6cSl?Hs)Ojpx%K!(fQKKNf>~n$ZojBaHA9};
z9-FC`SIbl&lA6o$x{C(n{=F$6J&63A7kC%>r%`^gt;s)HP8puYDt%y!)dnFq+N3cN
z6^J{M&~P?X1N`Wf=t^1;r-y7O?t}LXW=g_!YU}AFMw0?@@7_-ngraObvs6iO^|#_P
zr~HLrlPa3Xu2m4;4JES{YO_P_{=(SFAN;UAKlA+8F+O<0;i8eH!v~5Hwt`!^JfO9n
z+OVC6yytg+o#9F5hV9zky`5=h2zdW$Do%?5{seCARl2bO|6$ahFX^=4!?rG*iMR;A
z+;v`MGSGs%>Ko4@J!+W#6C{!CLJPKu{oJc90x;*1Xsv65<`7d}(ho}LAVWoq$!hor
zgszVZO!{tNmp<sZf8y-LOi1bsi7!!sO@oI1Sq(loXMgDR2XSh?4pslOGbV-s+3UY1
zSpH(7q#0C?CwDQ$Hz5<k-v_b!kTMIVOw>y<(&c+D$_xVJsu5B}Y+xPNfqy}~3Q-U7
zOO(3Yp#El2*zD9cR$?$0JZ(b`zNJr3<EXEqrEtJbop^vbbo{01wjcqlZMoKsoeV@+
z$*-hIu3#q|@kF5~EU@^mO?VJ-Y^1FW`yaQFLZ!gHT~l5<FyeRf4b?<mr_F5>5?j=@
z_#4NoM2z-7M(a%xt|DN_5kNar$_2+}z9osFJw;vhaN{C9GYk&#W9|g>c}=n<Hp*dy
z`qJH;B1Q&yW+N`zfjB=DZ%i&3dQM}W>jC+vmx*EFYu_6&stxQz%`fA|OLWk+fsvnF
zLtO7D*DmdRCfKCqKbxD!2<g)2TwWaej>)wvGKKw80tX5crhPYb9;JyH-{Mt4`C!4H
zF=&ofM(ovl6XoZI6-0i}g<!Dt{d!MTD#`&9Az&mE;$l(mf26ilLOriE>w0Guc=fei
zm4gO@5F~%uA}E0c+14@7TarL)<}qy%s03fLN2XukS`bFjG^K~mI~K=;=T_+6gPSc=
zWQ*&7jyQ=X-Gm<e-I7XL?^Xw=jE$=Q@7vvCC*Mdat3jZk?*~aHHE8?#?b{@#0)p{F
zD^FAu;f8h5VfNAg_xFsv$7r>{V)WfDKY|triqaiEtyTunpeEl6)Z@H(uD^L%LI<v&
z0)yYbbRnMh1@*>=3hH0|7L!0ZjR$=Z(+*}@aF4^o)}UmSFdXjr^htd;!BUkmG+TQb
z(=Yn7)gQ8q?R9oee&1fjHq3tbRn4+N@M55N1Ow{FHheZHO(lgLYt4wwqB+9eMV(f4
z!98rH@xn)UV1bIM7ZdKu$R|nOB@lFL6MOqoLo)<%mF9i$%Hvs6ggeQ6V(OoSA#A!-
za&(3fG7RL^J>Kzw(zzE$+Jm@31lQ3gQ|5!2|JcuodI<yl?MgPAMjklv*4Ad|EEN>F
zE&Vk9$qs_$8sp)e+>mSCuHZwxjVa)_^;w;`K>Abb=6{Whkis1jUiq9A0&O4csip})
zFh}~k`d9|!g>`y4dx9DDwJh>7UmzbR?aK>K&6v@C?&i3xBoT~})(&O_{=w?lQu=RR
z6@;AX^UWnm9Ee-NLvp1By<dl?S-g%SU#A@>brZgZX(YrqnV_&o0@tgr*%Rat$fii$
z`-2ZoQSI2QUmV7ir5>g8dvJiD<Hb7CR%VbkiaV~c#07FSwm(UWcd_*0+^M=WW-wGH
ze&cdo6sljk$;IrUy~KSj%?d_l(6;h1sS6;1L9(%fdSfzp`eQCYkB$QWTIiURLrn|X
zW0)P``5q?n{Zn_H92*evO<Zh5{Yug5f6P-PqlDWu$;<PjZJ1Ned3PUHBDh0$NyTJw
ziSR?b?|rP?9$~|3fz3^q7!+$iE}k+XhT6Oc8teKFZ1$+BfqrN^VWw}K_{QJ@fjIwK
z{h4LN{}8Maiy=`5WB0m__H}h=aST>%IjRXJyXEy^t7yLE((5}=p$akdO~6}#`Wfwq
z6<^WZVQbg0u#8*;?f+lACjW`@4(tI;XEszp;dyHCe~9-z@x1dmeXAPy#6@$q?I3=_
z(a0~a!gPVUepiNvPZjnLN1wztDMRKX=YOY(RUj056!Hh%n|dhCJ8hRxPI`vShouDN
zY*#1R&5mk=0exfjHaagv%<0~=W?;~yc2V9L@fpr%Fn+)H3H6gQ2Cq?YDFFXPb@`{L
zk1(-Wt;FRb4<aYWRz6>r0Opi1hsW8dKV|E?{?tSTwyfUP`k=g{E|c&2hjg^>n?6+2
zOOk|u6O<2v1ZD_cr@hD%PRtSnEXgU@AN64#>w#~juH47YdbFpe{2C+3`)<=rG*iNf
zYvC^18mQNJ+9&pJKRFb6+?#R@+Q#IK3s9+r2&@Q7*>=dURU}0CJ~V{prSznwE-@${
zYO&6F*Pk3dsof&_-AfBR1$tM*rHP=($G6ED&3A9?T{5-LBLe1=Rg12P)DUi?bs)M%
z3YOGgECLGY;OIc^?VkyVhwA@BfU{{IbELTaGt!+Dj;n`#zg9vD-^ILl(@OfV*&en1
zYLzN1+j9B6YFH*_FD7rSoHk3S6*9lWPrZiq5?}tcC*z5oed-}_=6y33-n(9wrd))@
zj1D9`eu%s@R$n;kOeZjQ1@mB+ui{WM{`f}Mr#0++<_$9MSbBJCu%CYJ)h^~3z*p2|
zBmx;0Cd*&UsDK)$qvRd`OK5oU=&48qHLzS_<_&tdh4D$`{;alI#%|Cg3k%C39%jYK
z(EnZyU|c>gzL{43AY{6`J?-b5Bczqk%i1MS0@<TRmHl+Yk+P%D`}OA+*7n-@Z^7_y
zg0yYfaa+3$>`cFu*BApiI2^ghLb%HWp|_rW{>LqZa%?0X2^*g=>V%vBIK#L=Y&`j&
zjyeliPgT@$@-qUtA*YAcF52@m9&=7a9*jZO(n8Zba)`8!R`%WJhL878NT)|5o~anc
z=)MLwpeSHw8#;d%-;5s^bnw8BR6L0{TL|uJ(isRvp&mqv$_RT1;>4?^gvs>jf}{JJ
zGXv)O@MM7hQlP5_l+`aAOwuSq0{LFMVTB}w{i;b_;!uQ()BIZp3^MSYbjqMxSsD%>
z3(amAAr1}cBP;K#GH_UQ$)oFwGz8gK1}A<(Tt@LewGTwnkox+G?B9RN;1@YM*~+K}
zP2^^w?{(y1Mw=~_%K+Vfo)|}cM&|~uP5xF_MFF%2yxje5Rl(RrI7sJ%0yO88Zp_?~
zh7al?g>MKlpu<oaUW%U6W^8%(#L>BTX=kofxLOUQe^mr{M`=S?lC<v*vN3D<MmQNh
z(*T#{kr(%VVW8XmXl5Zt9lqTwKN0s?2biu#Fh9I)0JOD1M-Gukyqx=tWp^o>N6L@d
zwL~IchLa#>KPe18jQyFboM=9H&+J|a@^zjimb%V^2>}Uzbre^s9Ay7XKfkad3ND3c
z>4W$=tMs*1+`KYyBhjVMXGIXyRgpFPtvL7`PM!Q~iuz`$RSI`d?v9O_+l}FtG~{tU
zA%0e*1kWxkJnIn<hhLhbC%;BYLa<+q=P>d@E7s|kT&`4vAyXak^c2*S)T+6Wc3lp%
ze6)J~(D%lwbIzTeIVHru(byUOD*~TY&l(o0i$m1w-dUeOe)t0MZ>bO`f>Zr|1Op8h
zIE2V;l-?4Dvf4)^^AC}?ob{UYn-potnpI%=!;a?6uR9lwCpdv<pl6W^y`L)nT>I#k
z#D)BIlbauEIN|b3GmBJZls_0S6lxV01TzmAW*2I9XwY%__8ajqQ#?8JnNPB!`J`_!
z!?FnQMD}GosSt$6JkM*34%vZ5#7)G|iU-VZw9oBNpnFWOSVLGT6L1(l>nxCA2c2~P
zqjl_@(D`Kl*vSAMARBdixAR&W+C;60H}!>~!Yff$B|r$OPt_}vXj6j`RYLyN!!4|_
zJfz*k59JWD0_#7oAU=TLn(<pSf0eKxi*%}Cf@5^UyDpN*Z}ee2CdG~ngtH8PZ_-dh
zf@MwRzC;JMa3$=_tIupu7)cq~pNi%_M`Vln{~Uq(lhJXC$(+b*?kLavhZ~YAGFP-l
zW#N*v3Xd_$QMH|)bWd9lgPrcyZ@V^fAV_Z|<Jcw)&at~scSRMz)Y7M*D+T$$Hhzvx
zok4l<M>2YqRf=GrV??G9D+^5Yxn-HSKAc@>aJ<!^jOH#S0giu^f&Xp9Kdv+}D0X_I
z=uoH%&lcZX)FM7irvTG&He3>BE){S;@Ztb5%eGNpaaqW9FbP&ymVv55$$+o^ns9=%
zF6sM{GEgOx-gnHDg9>LELA3)kH<!+mp+vbogEAj4!ZTrDF0H#%njr(+>n`TBw*+Az
zyyw-OYBZm?();?mj3T`D`W#`fgq~v)qzFp660oQ@vLWFu5B5)4s*jb3Ag++M`RxgL
zIF%&j*82pVBdPJT9V-<02krUN&hxtjPX~^n=ojSpctP!_Ses3P5%-x~ZRCCY_Rh1q
zl$Z|u84a~=-Jpgqr6k&CQSK!!&2!XMj~>ovz73q5-oQk^myC@Q?PBG}R{q;@q=ePo
zn#@F$Bf5rDo|KAM!*+!qk-vJ(4J754Q`C3Xv2FZy0)_Jm#{VlX!~o?MNbYf6%ft6E
z%q3!fE(CcVZFOcXzAY2B>0*5NQnm<}7`_fE>}(RkCk_IQHYiXJ$GiV@B=T)tZ+P<C
zoDvF_i$fM<rm?!vkD-t3)3NAbT7!i6Rm}gs&=fL#VtR_>XPHs2{D*<oLR1ekv@78^
zcXScgl0tX7Pks-R9V5FbEOmoGd}=<+(s&u$P%b-JRYnB8@yWjpWT~L#?(m(*kLbXZ
z@p6lwUMXRs9U~M{AHk0XNiHtAk>Z~oC^IND3=)!NsNPX=u469-40G$NDR8&<uNtdF
zXE3&a$ZfeclrK80y2BYmgkKrb4V>Jk!lNxoDh3AkumJu2Iac~ZjNZDIJbRQHVtX&X
zio39jnPOx=xn0q@El%`F%Vm+^IG1|E)0YUi-GrW$b5Y`w-bU|Ax=Ha`hSJX0K3@oR
zcfB9D)b3$|G2>Nk#+wBHX2Suw4^()4N}gLy!YfR~{!`bO;0j@C{<WI}^DJRT<$K)$
zdpjXu><GQ86D6+I{98}Fln4YxPKDRGu_Nzs-(1-b3TXWHV48Y_0|Lq=3ndeH;GffL
zeH#-F=>BLxath_5+6&Hd5KHoc<4B>IZYvKw<R#{k|IP!GTD%`5->}2&Ny{_2!u(K3
zETML@nG@)h>~=2kbHkUckADnXg@7WZ`<-?WGq~2Lbo%si!K;(+Y8-o*p!Y^O!_V{F
zaC2+2D3Xg8q{ofO@iN5u`)$MlQm7BtmK2{Sjkx8|EVeR;xWw+)`9-7ILE!Xrr|(Ll
zFi?=MP9DJz!9$n5)YO^5r|YRsra2SLt(!(kSfc&P!Gp-4>okDsF~Wu-)DR)RZRMU$
z4;~GP2BI2FFf_zfmA*+2_P1ULzFXx2mPVG6TI6}PesJuH-Ovo-w%?I4?qV+RcVIU=
zpUnafYni`xbI?I!y8PC}9t{{I9zE}{U5k}vIlZ_0OARfWcmE9b9bzSA+jEld*&!~D
z3a%^(LdCD*M~mcakn=9rC;@Td3W%y@s*?HO`D*P!Ir3a4(dM5fL%isK=8ZEOF<cN6
z;9z^SQ3Rq0u>ouMx!{GDz}`o8UeG+pbV&;BGxD_sEPigGdxf>Ce?kQ>(7yQB_HJGT
z`WX}DSob)9k?^bS)hTh{t#ESf0usn{{gyI1K@Eg-#_Tn;*Jszc(5aA%{LpKZ3%CE#
zgK)1p1s*j>VBxc;YRhASsr$+KD~MZuJKZv$!G#*eo3Gccd2V7C@>4icJP>!`Kgp(}
z>O63R`r8$21(g4kW-0$eh4$(aHou=62*GK-t5VXa4@v17biwMG2q;Ok#+7>`-r^i(
zyj8aZgtg_^@|K``QfR+y<w-dR2;SG9|1Jw<?dPddyAY4P&%ZR2R2rVTa`dw%^TRvx
zf`4s^!<b^~RNU3aG;po!&T3VvIBZ4V>RXT!1zAmv{XEp)de46N?dxMQh}vIx#LmbK
zi_7_Dyd!K-Kb%^@dKvM7X#L8g31om4=o`mEIbqGe|LgD<W(Yq1xc-of2Zllg43p4&
zgi&k#sjRCK#KrcPEG?m&>%t=G=D0NYExSe(*(ib%my+zlmMrKAxOCt25`@NG#;;xa
zB4GKEvv}-K5;pmQTn`?~0b_0wsWZxx9Qt|Se!o@VttSvg&&i{Ltn+g=<dc~APe8pI
z_4X@&#hkp4o@3OeR2&D^rQq=oLc(H=D#VBGJ!DtWgN<zi3G-uW@M%6cOz4|9xD68r
zwQ!)hdYtjGb{gbMN}6+d@k0sZ%6)eq3ah~*m>W6qO9HGer3d+tNkbKW`!Zjn0$4<a
zN0lP(LDHQjj)!}S5b|t*rDk3ceg6Ccs550CNvk8&IYbI1YhO0m$|LT>4;$92^1|TO
zQUB;VlOo)*DayPwBn30v;r~gOBMv{S-~8R@s8^VN=ayU);sfp93;BE-{a#v^C0u?;
z!VR8FfmaZ(1XJc4<Gr$sX*ldRTefv$hZ1|8vF4=UF?YF7xOE4^1NVqUZAS?j|E1oc
zy~BwAm3>M@oyUk@X|I=v<7U9y^?3U1Xesd(%@jXgFAn^b$yX=!Zhl<OhQhN)ffkPz
z^9n0Qe@{U9T+W*YYJAsF#z0e}jzF@j^7kg|0QOBZ&+E?XK0*Os39rb)S1jR8t;FdY
z2ZZnn2?LL%T7n(HEW<2v9y=9N82iz0p75CR<(A#d2EilmZMJvjI-y}xDNW4`dAKRF
zwYC(R2#uXqrH7v>!6xEy&2lRlT=WZxe0b1}1u$8qzCTS4Y?SdvV(5A5v#{c<eKPu<
zXXt&?bo&6~)Oe(}<3b9ee&h`Q5WiXJLZ;^<WlnG-lW80b6a*g1j{<|=so?v==e473
zdjz{N0V3sx+@NUVZ)bOw8~6-4+lbd#K=sTUeVvsFg4?!okEgE?L|(S<SgPlSL8_;P
ztHS7gct%q2%zyxdKmMunq*D<#Yu`?fmZJHi3&k@H-d(I@a+1FssKNdZ?-bV=7AO_5
zraKxrO}O4hm>O#zB;1%|f9k*alhE_=zQuqS4-^W}&yF79fSWzH<4z6I;<F-OL}#86
z;p*DXr)*FjD#`j|;3hgJ`a(4Bu{j~%9<|rC+8=`O<>cF@uR+4_tvhk~5tT5wY-DxG
z@S}XZ6ZN;nek$NR7baC|AOd9_ax8cC(f8|9k{5W0D41sCOP{_Z4Sh{?0(@7+(K!>j
za)^3Qx5nq+Oh}4BL*X<_d8Iroq<fWBp5=r9w==_|$I!es*iHA7tRS%NH@eL7a)3-C
z;YvU~+7Drh)0Ge8VamVFz4+r1pjESB9W3LA?6($zFYYpe^P>%~2jxo8@JIKJZJQ`K
z4;hwjwJAgDlbc8O*2U5HMqkkvJ=D{7l(IehL>b1+)m+O}(C39>;ky=#5<Dk9`CPnC
z0+tBzG4VWNz@eQL;qqP*T+7$?@gQYjk|4NyU6BOpPWqR98A33u^7knn;-oAtubq?)
zM|~g-_c93*RXB94Gwi&k0ba7I8tAD7)U3<g7j@L3gGV*&w;%^ZuyVwo+ZKe|pQ?U1
z4e-L^UAo}_l+Q2sPtqRJME#mWU$4G3cDR)z_qwl~AD%o_HW<P=pke63Ah{FDH5-~_
zPsWQw?PTn!V01o>T#<-K&ESW5vG47-1koJ9w1(jjadvGU|GU*2#0Dczx{-mB6O7BI
zN#ExoZ@?SIFwIB_=zeb1P3tTS8!ZpK<<H1LrP2eteAE||<gW@>wr7K?9`oB;)PnGV
z;rZuRR+6x4LZd1hf?l^>!PYWeL0AhqdjBcn_<k~5{qvHWAN100r<3Lg!tn89<U_%z
zhyJxrPTPYG6vMCH6n@VHzLoa}e$1nDndH~FbRsuMnnzrHNG1-9<lCg{PXwWg^YQQt
zA1X)@W-gNO<b(XQ496r^S~x%S?MN`<FdcU+a(EHV1(Ze?oDVEnAt;vVN%I+A5Or74
z$WNt##=403y+{U#y%AbNYa<NDI`^<EwL~C5)Z%<Rn-#dDHJ^6nu)yQ1B6oNFnBde4
z^|v2!K`2U!HBmmx47~4>Mb+8JL1<m&^SRh1jKsQfNShOR1(e=I?+viSW?93@`VcBO
zcJHH7<oF+qo_6<a59c-^^Kp2*cqb8D4ohD!zKY)Or9F4^PKp7kv<5E?6)WV^MEcsU
zAWqeQdXIS}GpMCKBe@~IO~`8Y(Iwkt04?6^p1=oao-gC4&vE<}fpXt*+1UFCTzlAx
z4gQh>L2|)+?=VFu_Vwm);1!3U8NxW5rULNVvC(~AkcZffgcJ4MR={<BFYP0l4Xnt0
zyyX&e49E)Z30q4X1M7D=Tg}QRfUcf(b7H_2uKRp`bDG!|!YqS?(~Rr^`0EC@*G_=^
zOjP37Sp(SkF1M)PtOa}Tl^*!M)&c!E-;K`q`oNm?U#-ZXIwVHPjnb>@!qSpPr{66j
z$Vv_j{a2v}2`K~qNY4y~{<V#9#Kz#RF`x0RN)P((-CQzyWeCB9nFB^k42lhc82>mK
z!iQYT^tcn+(2{O@G5Qn$=^F9HT?;+fI`j!v>d=J?kBtcG3z~3~+9lvOzb+IT{VWdY
zz~G#l$2a3K3Vgr(+`!%VDS`pD&GlSs4#?Rq&-{vdcd=v<i%k}T*p`xtTiA#K><Oix
zQ$<{Jj(|}569QUroYDT9l$;8X`risOH&6zD!_&<%`dTov=^j4LtOyIYsVG#+q#-)F
zYnbM$6dZ6~Pq<2_ioA%y67pJn(Aa;c)#VHFB-$s%`uV8Adht~yjxdy)n$S(t{UHl3
z<QF558X9_QvgWKm%cIW&`)$`Q#6QRyw6Lm|fuTw&<xlH~U)RMRHJ-A8Inuv#c<Ctt
z?<zyOs(O(>*mV7g*rqDnD%bsF?Sy)v;(whs5Z5f$_jc$&3_BEydY0?ulfq}HSrjKj
ze8l!hK`R?&NWSXj-Rvofc)%hjbD0D|r6>G^^dU2lv~5J+6XOQb8%qnlV$5)nQFKOo
zL=xr0(kAcwBi<_)2Sdm^ZqQ;|)k<Ly02xWhjn}4yz+;yNQ@kX={rLC4Whlp5C6z+c
zE+q^HzqQM5eq{tz<A|k+Dn{rZag2S2=3A5(>?Lb51VK2cCwCY1)#tpGg%1$l*np+|
zgedZ3qwU_w&=GdfUoKK`{v-sxxw)L#$fN4r!kef%#sKfPK7NrgLUW_6zX^rh$Y)6N
zF1Gl#1gy3^x)@U_2r=`dkM~pfz~vFQkS5~mS=}BwZAC8zLE<SvfuAHnFS3L69paWA
z(rqk-_{xA&Xrk2M9v`TvIp=;#*Mf}P$|dZhBK%bpe7^Kk9x^nIv_t9@L4Ge3Z6cLn
zKwa^ChL9XsG!bs5>myEx-sfs6<RQxb-F8aLK?aE3AD*K?eXhV$o%Y`XW#Hczt-m_r
z3NTyaCEuMb1G>vPqh-gHA>3Na&P!4XZgqX*JNpLUeA`Ez(iS}kzMp^hv>%}Pg?6kI
z$}1fI&w}^mD>Ya#;r;sLr7{=~^nWi@PzRs4rv>kqsKTmu-nH3_@~{-{bN;`l(x^8z
z%*Dc|4K@72w$^zPK>p*oqFFpQ%=x_2ry^AX!U1Jvje{}-Njsc-UTO$T{Ie9pPf;#c
zyF8JlO#<AqqTIetsKAxk!#Xt~4LIi&8?`kyg@r!hv1tyUz;*>$jBV}yVag3d`&?b4
z*ad5yS1tT=SX1*$5|a#Ws4SOQDq&#+b~c9(-m5&In5Q7u)xiu-{GV>-XZ^#bTz@-x
z@-ji;_oE;4^q63wP5kbAoCSpa*GzJn8G%+%zo@v137)X7zGV3+3}jBj5>AL;$`(P}
zC7QwoB~3rB+A^`jX}^j%&mV}d-c&euYD5@XS~>W0*jQnNhrzJ`aY73mubdq{AqXk&
zDbzkS^Mg8-<Y`l7^xSej>qX-`5fC)^igg|G!BA1oqx)#Ccjd`{Z$lBUpzGMiu+nK+
z@cns*A{6DkcPe^bp2Vf$_VzbnrsGoZQHK8bJ5w1DFFh`XyP^Je5;>zYdf$Ej^4&gk
zRS;r%FHp?rq8xu|bhAgJBFL7%ICJ(ry5AmH+OFT`h4_RG^)HC?{lu$~>|YNz1ew=d
zo?S!t)3a$q+T~*Ku!+0PYe^LTq|aY5YY~Oi-X+I{bU_%ZAzgNzW`To`H^P7B^271Y
zc66;4f-{93TP?qM!7bI{+g}D=AbB*DGN8l;u0K1Um}M|S%)k9#FHx@IBg320=}8GV
zb~2PVr&kcHiXe|en+M3v2uFH;2mv3;OUZkQ1Ls#4{qx+SATcuB63i`(_{9~baUz1?
zvcH|!dmsrXzP-8<gq}lia@!NDq#`hwLgI9h0p-QV^5gx*1c7of^N~?KJ7i`XJ<wwy
zf-0YD?_#kQj6I1+epQqKl0#IpodU_>f-f20N-pAqPEXF>M0xg+?ocl_M{#tIWG|Rj
z5<>Iw2?gR)G{9!_nxgQv5YQC96qGxO?w?zmf~)A>X-GwFxM(5*|5~><Q8^4UucnYG
z-qM5>v(#R>bwwyUmE7ftxc*Ja4@Fqf=Wifw@*g*+0?hYdONWn;Z?;QW_s@hncu5q?
zS5Tt<(Xef(&Xgo*iFWsCwMxKa*_B&xUl+_Go^3fj5Cw{82V_)Ihc2D_X3IZC;RB7=
zf4#LDV4}gVbzrLoL_Rf{S%_0^v7i3to)O}k=cc7k1S&%5PkHsKED0FLFRE0Kj$@x!
ztYgUT^$@zIR!Cg<89?(v-Dunr34CB&kX;YmAiS0P!m`;)f)f$`hRht_CYYKMZ{B}4
zNANJecIx;iX8c>ra!<>1F8p)y;XRpWTNw4lj9ok7F)S;d`fXwAU&5N*Q;vC}e}smV
z(Zv}$V*F+S<CbT{G-l|Jt^6V1A?zN^HCB9CBgA;*DkP$QQ%ZdF%?+V#<inYW{aw0>
z(cOPu!NtV@Ha~hEb<s0{-2S+)a`!NSjkoz>L-Y<Iz;1tn>MSGvpZNY`wn#So;!cSF
z%>f3S;TEM7QzbFZ9Iooi7f*uc+l10hTXNuivYCBUOFM)Lb}hoz)FPoPnl?Rho*qBC
z`*SMZf(EzuImxY9#()#PpQeB2%L2h)U#5_w_jAlmrPWE4t0KA4Z%88|1>=S#|2pds
z$JY35J-HAwUg{(j`!S3GUzB)tJnkAJ{?CzFqS0-VFfJGIBua)6*q9u}UQN;AKYwpn
z@Vz0!wY2{*A0yu*3<q2L>F-eERJS~vn6LBTw@iIi;>9WOZh}vLegG|Q*7TO|K=(E#
z9x1PT>K`e7BZ5@hYZZB+Y<#^IguAhfd-ICEnp`-|#Rq1=T@3hKTx^4Pz%oX~*XC*E
zM}!yHE1jLbM1~6$RJW(iv*S9^w5u`2g7|_5bzR~mCj5n7O7zsJIZSe)VM1|jo6z@&
z{*E&d8~$eR(S;m6PCO9;CpylN;Kr^8I{`6!7}qf~O#=ZI`1J0OY<QUiv?V8<mI&z2
z$`)m++)VJH*tPM7I6rt~_aB<XZ(@&}X<cHn5zljR?vo=m6YQXR15^1C5ag`D*%41C
z`N;<45D@p{Hi32d;{i5#f(ak-CI=VRpyVzcDoEux&!PL50e-BfEGDrZV8NY-%GZ<^
z2zy+~f+dX<_|4Hotv@qegotxJYI#H4FyHW(ztaoNq4EZ5{>c-;K%G77>M$7?Fj7a2
zb_@|tO*;#nM_iv9oQsJMgjcbXv&?c=8F|1iSK`Hy)qU*BW!;R}3(P>7-@Nl9k{vR9
z!q{dhXyAyh=xpCN0eE<9KR#-19z%%HVrOCw<bx3Ga_>amo_N80A7V~Cq~50PdCUgE
z*AAPSOx(oux{oT{Ok{>PC9kGmp!d}ep^U0;#T@ufWa%^bj}I@vCu0|~gmB!YfUjYQ
z2G6TIp%-r|fCs;5_#ARt1fPj~U>onnk4I5zC}+=e;TQfJfwx)Ac&Ju|6Qz|n9^K1A
zF*hfO-?fUn`F>Fl*Kr?|JobPOUn**2k0@oqC5~1zC0r81r!KX6IS7j2K8>4JBJ}+D
zZ4nz%(&u7$%3B(HU4AZ{Pw(~ISvz`Mx9r0W%J(za?Y!g#SGhjIAy3eeAA@5AE`46z
zJmqad!|)G7xuXLFdF*4>P#GECVph=gX_X1jzyE8_kCO=3DR6)5cSws<shs%Nc7+qa
zs@^|QI>e4Y`g+V*L5UPX_gWu6L-#{GuI$uy37VU}yl6U#OW=dN)kE)E=<wj2)knId
z0=UHIM@&SGD}=X(HnR=8#CTMGm;&+dd2INF_s)H061=c(a^a&09o`w0b-|y54eykx
zR^S}@g{fS>miaZ852xv@RWCk5jGql7%-OSZ;p6*4b_czbc$`s7fYL)I{J(SqH)10a
z{F}-9Cz5hx_*&`ky4w?4ykW(idh|Uvo}JEB6-+6H8|l6D&OITFzbQ5+rawu6vz$~u
zUeZN^n;HKo6yPDpZ*;dzEbg=8+d~xzHFScw1!viHETR;<d2d>BfpP~^e(Iq^UQC0p
zM1Hv9-@A$B;67Zqh9R&v-N@bWz@S?E6o(OR3kvz(Y$(nLsSfU^{;V5--&*Fp#*z+j
z&kKw+)@gvO)1~z6bsdnQ_UxY+kcSF24eypasL!Bn5J|6yLG;v(c`4L4a*4&(q$afB
zX5^z1X~f%7&6;@ijtp`3I=iqA)Jt-1_-}kOK^(NTc&OGibwF-KBAEr{92gx=Z~41v
zLag$1P@sn<Jbu^_mzSsp5`$y)=aA1&`Th6nvqx3oky3T!e~72>a<h`<+6@dm<Sp3~
zP);z-&oz0@9^J#FYa(5#_2IvFdS?c+v|%KSeXnRz53WC{B+q}0!J11)fBGF=Fy!)K
zuC~)a-0`FL$;0)4E~$dlWe`yRR?e==)&zVb(}W(n8$e4fpO+8HdzeKE75~xDhS}Fv
z&%BQ)z>S_lg$w6UfB8r?Pmm(=+kQ2wJ*lk@CgHvQYAQ-ld(6t%OiUHl=(D2#KhGIE
z(HLvtBm!rz)=|}5RfqpRTTYEfqJ7x4RQ0)L^m|3*^3v<-!V6ZG*On+pwYcqE=KoM0
zPKRd3u0K<Rjj?}?3&x5NE_I*Q?wK@nB$(VMu<Jm^sb<H4EVLhcVm3&Qd{G!va*MsI
z1l0bZ&ly1bJwc*x*2f}IKhQqEK%5{42CvgU2`&i2tfqITcnlx(i22pqgo=YErQPQ%
z>S7SqH~8?6f((Rb4zs>S9P#9-a|-<hLU<fGy>hLWC_e9E)~=FDg+Je#d()r5igWeM
zzKwa#ieKQ3WsD`+#p=Q*PHW$z1dWG%UM}ZQUj(}xeYJ)N`L->7o~PI)tezP?<&{f^
zCxw_=3Iz6GLp2di;_9g1Ait19r#(*4kzgumRU*Yx)`nx$HC8bJ9dfR`ZX)PT*U|g!
z%!sQqhX>3%9ulaFW~`~7j9?QFn~#rBk>F*IQ-gx6xgq681p7b9zu4h}squ}<4U9wZ
z=nIGMC~q}QOlFlv16>I$f36&(fSJ@s9`z!W_&;*T?7MOe*f?)yrKocY*7@^6@;7=C
zsGc0D`E+@Nz^-;;$26P?=WDQMZ!6ouEb1jTcx^9YBMPQrF1jWV^sd<8kBkv;G@pNM
zPGtlgeiNq~0*pY;>7y4Y8bkGi#~af{1|UhC@^JbG2HDot>VvreWo?I<zr~Fpb^X8o
zghE63yZGVW-lh(;J|b*t^cbRCOT+h`FcbL4phd(-jdBsoxl_^(hVW3zJ-IT+09@Jf
zy0sUzA%dd0v$)<I$a)zc&!V4W_TC}Sh{y=q>bLWc7N|gR?8V^UHw@q`L9q3VjUilk
zF&xK)atGr%J>f^108GpR+6|7F0Cqq+cK4MgFi{UH|GI7p<QGfTPm@_frL~Wf$CwFN
z6PJBCVr~c$13ylrk643s&qvb2b!+&{8?j<%Y7R~}+<rDjo572)kxxAL#X-;C_CwAW
z5jglk$Cl152&G)vkMm4LAk|>&94i~*%^!+QhC~QMcG8}T_lh`N5zWVLOQRgbdD+GN
zP9gN~KWs4wkOXmKy)~mSd037;m$SHxdR%HD(*li>&?j0jpC82ol*v1|<q>}LIsHne
zhD(4j*K?bL6a`QZ<k~AYQ3K)VnALOp$iMwN(D~S7WpHdtj~Dfn12@Bh?oVirK^=U;
zX#cY!EaqdRzmb1Su<a?G{hA^~-)*(|wXX`Tj<U}La}gIS7L)7wr3?a^Rt|xr@}Qul
zqZ#}~5zK@17cO34hZq;v4XU?>uwX#9@8zrsvrS$>t?n9dCYWDwVOJ0wu<+=tLkhe-
z{5)ayIC_5CY<AEXMtjU2lMe}%B)Div+Sye>M!ZRC_ET0L6`ql`m8>)&f`>iDe)`U^
z<0n)r0u7VVc`b5~VL{1^%M|@vX&z_7!!Ef8>Qr*#Gp9PVU*JNxQ#$tQ*>4W~3zqnc
zn@$veU)UQp{gWQ=w`B_7+516|3~;V%(<8=%xIQ3+7&mmxkKR-hroa`)&UpBYtrJ@7
zn{`xg(cw*Bws%rXnDEX+A~p&}TKt<n{iTr853#7=>r(rhlyC`ubvsXY73--fx=Uw9
zhkOUrkMGJ(64*aE?fkmQ4#Hu<Oi~kq@Zyt&f>8zP&EzrAE+x=_*)~bz*W)D65<6E`
zGJ8m9V5DG+CprhRUrjzur3AyTjZCJ1f?(h{PUAFo>LTz}#Pd(>U4lc#yEA$Zec+#A
zo&e?RQ&8~Z&G`>Zry=$S^_|&vAE=T!CV1zb5BQgoJ>YiqfgPS3Cx<Thf@6SmRPg)L
zusHF=@Wz-Id`OANR%`Qw@cVMgLKi(Cuhs66WULpYU!TE_fIDz7jJ|!Z;RcrPxW2uL
zc7*jw_rc+9dr0ONerQna04)U+Y10SJuzm4Z(cMxPDD7bKC~ZCtS8C#a%zC(kep@8}
zMRRw=Im`}Ct~v=<<mSRz`aQwo^3}zbHFqG9Y_|5|bAbqFca3U)XW-8Bue<od4Mf5Y
z$X=+rg8JB^c~q$b<OJ@K{D(X)Y1gSO9r*xyUsPN!wbX;+gebdd4kc*xzvpL4tOuuZ
z*P>$E0Ek7(4`qT(U|L(@re3HK)E8f0??v;$Yj=p6eOxh^(k}h>UC9vMO?AB7@i0R@
z&$DIh83r)+(|TUP0^m%6K|z<NA=IZumivntK}(CSclU*(z}_f6Nb=DZ%yfrX``c|G
zN^N}l&Z-4W*uU$4lWGQ6IA3E6(MHe?<!Ai0OyOjXYj+j1IneOz<!*MHz+VK95#3cs
zbBYTqfm#6Nn;lQJ`7jtOuxWgaIKV6C&R@S6ss@I>6Iwnubl{sXk)w=<KD^ymV%0TJ
zhpkp!Ivy`w5De_>*GHW6*Ks-j1tLyz(|xfg3~~A(CP2*JiuQrx4b^MD`^ZD3rTFB5
zt29KE=TK1cYs1eev$p&-3wWimt4J1L30n>gp9OvF;6uMaaB;ag7)5VZUw>)>{^q;~
z+b55LGv^Ia-F7o*vdYOI@i&8|zFU4y_w>Mnev2uh#1#29Mz(GE?O=t=$gX(p7#xwl
z$GTZ=1$V4(W}N<Q0hb&y;%~N^KsjY=@dG9&5U6~uf7s;=#jBacZ{*O=8=)&PX7B=5
ztI(et$ir1lLmo9(2%uP;Wy*#)tJUYci3|2MA>JjVl|Nq@PL_P%zT993ExnEY5zp;`
z?kx@4>)XKOP}-_&g+B7oG|PVDH-^1<POczk4Pa+Y4XVu3Ll~&%nqR6AXRC_j{yypx
zXny`zUzleIPR&l8S)%B?w+j5vj303gc<-8D>z0FStsZA@%qoMu-1v>b7s3#0bolLj
zE(h#c<cY`Uh{D?kZcPL&Wr$f}jf=l54NXMRr*+xo(f*YwO%(B^@wXo*&RS|iLQrGl
za022h&qSzk{M7-6D5X=BD9`2;m>O_^`nsbGs%i<K0+kJ423w>p!Q}mll&6sfY=q8w
zu_1nC?~TjxKEg_HIayNt!<Ianr+55Ujd;mXwyI)di7Ft+Dthu^5aQtzUwA+6B@3Tf
zdHWU7zu)X$L)tfw_$-sT@vB3skV{vIaa~jdT0U`R;!91~3Aq>b*Cm($qsttTxVef+
zWtkP|uN(n7^*tf>BL@WEFUR^!35%HK%l=ZjVHP09eJp*9nSi)E`C9!lBfM=bEZs3$
zC%i}tJvtyYiP;I+z28E7sS~T;uM65!0?D%ZV|pnesQN3%co*%fSPopJ#nyQs(W?JT
z1wjya6)b5(ypVs3g1WrnyZ|t=Fn48bwGztH15Q`O(E#P)P3LouQEx)lsQ>;x2Nd&X
zuLp(lg0W??5U=hIW)-J&g<FIM&;CLEF4Th?w^h727e>sFztmU}$rI<mt*KrOQe-mX
z7c^q0bQ~86VFE{}o9Cyok@#lg?#u*C)w<%_qjDnra;Ka}<$WSZ(vBY{+&TixpKF?_
zr6j>~GR$#M;0SOJEVdt=rG$r`p{=IvJg~8MD&^8=)GOxu$w0@<4+fPHT&BO-@!$7K
z9`VQQ68KydMdwe`;6_8cqkTFpSj;E?j(zlc9FH;YwD@%&W1o{W55CBN-#<5<PIH$L
zzbF^}-RD0sII7pqTM{b-VIs_jy=PILPd)Jc%C{Qq*;~!2`$uSS16u3cYs>=hMnL}F
z@*?_tfA^}^uOJ7Vx}t#NbQ17v?t6j`DFyyHRI1>(xj5Y8ZBct(!3x)toEfW|nBZ_N
zM2#<81n5W|gBDW%VyDI4K9$)!B)CO;f6cpo1e&?N_lZg?!;tW=Ro59NAd~G<Kl73i
z*5BPqY-qLssV_ynS!p(~Ke|YgbYKMu4&F<bA6bFue)--$<x#}X_>fb$YzzUnd;JR&
z>;Utf6K!WT2X!9ho5nrHaQ}fjTiSICcyHYI=gg=X^t0@Y)hitZea+vapGPbpRINPO
zJpU+M+v2ncoHPadmb8~%_pRXhWt=RF6n*cciAga{T7k3V*!I?xC1|>{Uz@#h6#gpJ
zVl-4{@Q+_P<K~Ptd?>e{w=S@S?b7=WPm<C9m-=*~CY>e3GESZJA{c{%LO{9AEi163
z3raF$KZ<&qx|(0FnF6(YTKt<46WC42uA}3zgfmg%aVPdHVZU(e&BZx$IR8`Uc*ZMp
z_+u3w_FKmS3UYZqnbjG9{!qaCFm@vloEnH=an*$o%T{H+3u;j1x#HgJtp?e5a`W3r
zHGysA+9=;J>O&2D^ouT12f8(H#X~d~?7ezrCag^bp5;_tSUQQgg5%iBl6y+f+yBpn
z)=C9<qvYPwmditQ>mBDmh)1ZH5FKNJ{Brbj;To%G4r!C^@V0qN9K>nPl<{nc!tcJD
zC*GV#{x-^A6P}@>z?^Pv{c=|lycP(ASv049nr9!C!y^J$uSn()Iz&O^WaIep@1n4M
zd6Hlxk9-a%zmabsuEw*Yxk@#mBH+wJ#rJnd7}O${Q>mmmVQ8ZGod0QIxTrq7r$fXK
zm4kFA<YpuxJ<nBkjZGZLZ9VenBg~;y9lIUMX9d>_8kcMt4IuQ-8v^Z;DLhIerO(Pd
z3U;+wS{Kkcwo)Pfbo03iG#QWiC4FWEhGEvgeZ&~)3-g`J=R*9Am)71?sCP|t>u-`V
zhYnEne99>pRRde6#LDB8`tYDY>uU<1Ivfe}zE`qp3?7@W==T*(;nxYqlO>V{$hSB1
z=}A5S6xby*nE`a{D%jT8AznO94v}${A!N(eKJZ*Lgd~Prt@Bg>qhtX_llrDG(o%PU
zgkT7h&0`vodZyrLs36;U+5l`*Sjqb50WNb}eKlk@fR_{Zit5q#uxX00Em|Q%!Rw^X
z;wn=h4Y=C+T1_9;a%p>9txcezlU;FN#1aBk60osMLpVG6zCRB)0{Ppvi_g>yfY+?@
z%U{$FkFvRH;DYW&FRfm(%xoAzLfqxAxpz&0MR+#g(>mG%ktlHqcU!=r_e(A9F(a6x
z&Ds69Y5-OoLjw|Z#&Fb$ilOJVIXrs~`NDsVApI_dlYyHFbm)+qm7#eC{DiKaCq_WA
zmr<-BVgjr4d4DH<8-tPPAj@?r1Mt*7k?Pj~@SeUQNzl+77+p)Jl!f#_(0Pte*#U#2
zEqCs|tU~h*`jdK2XdV!CY>J521N8(Qe9l=sFaYBvp4j=H2JoJEi1<sC5paGQTx9Sz
zfePh1_uqjgV1DtOaFM40aJN+#3;flGH|@Xlb9m(8#MFtTYSi;>xRvqxvKh+lb{<n_
zMmccS=$$0xd`a|rbPO49DMI&}v4)$tBplwKR%PH*fOzMXJj!Dm7?(p@zHO)^yfNlj
z=FF7`lHT2{HESgZ&>$MP|DOcxw2Kl4qP>8+Ph`=?S+p-&^!9#-c(BvdR_pQCmEqY}
zliCoJ*Rbwqe8;LF2eGtqLucMe0dmU)6ua=iR#n{0**$q!qiCAG^h+9Y*^)hrPD{h`
zux7;8gcPv!9Ne%PMfs93Cr|&M(#Q+G+Mqlo2yXxM$(9~SK(Cny5hKbcWXZIhGnf|x
z<+}&9$9?61tL;Os*_tGbS^l9;otK2SBR&T@59pw8Ks0jzjDdDm_r14-8gvB<FYNyK
z|8p!k4RO2%6#oi+cY_=Q?~p{T>v4!vtMGv#Y(yWJhl^UWjdW4p@oO7_$q-6Bt~MJF
zY65{s_)EJv>Vr|%6uQ`HLoSh-h^MkFWVl>q^wvN<=QoB5|B5kiW!_E{{jCJLuURWz
za%n+gNAsVJO|-9n-G2R*XD=a;bA`A<6!li@_f9s^n1EqqrU1>PCTP`WpJ#iZ2D=z9
zQMH)@Q2Bg5{^pnoln^r~wO!Q#o}1>Kv!AtqB5(Pj)e%LQpUhN0DrW{pi4m5z^Jw4w
zOp9;40Oil#${o2|r~=HFYN#K^$%DA6x6g+?UHDdZV*cfZ3JfR6{m%F!07<uOiA$6W
zz(yF~WbM*}iHtfIpD-0Te=9pUW=;jDX=e*u1KE&QzC~vc-Mi|<?K+;OD1x(L^zT4w
z<jd37y7c!14X9;%!~{z!LIq9uDbhT7kfX}wI5ou&eQz$On;VJ3oyPO3>kQOj`h@TA
zU&JxzAP!GIQm6$-sM|l!r<nlB2i;s24qezeK`itN&FPYg)bcNp>p>mKN9}VaI-o{&
zK|L)KKxMG+wY`=C1S`1le4kc<d*3AzJ-rauv2bm!CruNQN7JqJ(LT6WTG#Qhxg6Mg
z)(_hADZ!PF8-~;5GH|=+(eEWIIkXStoZ7f14G(2kXeKNbf$2BJ+H4@|?><hoULa=#
z<_-Sm)F)WL;kAG9bsm0*;LkkWo6H6&mD1d*4;kUk%hle1`ZdDE7b$DDca{nNqv*WD
zxoq1wZf9igz4zYRecCf4ibN$UNfDAFga%1vuZB^!jI5;JO(>K-vr_hWL|Iwy^*;Y~
z)N#~<-+f=#d49j2kBUjUmW1a57X0Ml2-TSlLQ~^vIPd!{Oi%cP%4gYi?0LZHu!_=6
zto4+Jgp9%(VMDo7M5$$pKpOj?K>ac)EWJ7#tKQs>9a?{EyuL{UW#zTM#F@9SF!Ngx
zku$4=UET+}ABm<3zpo9JhnBv<NW05RKC0~z_A)OBKer{r*<X-`e_>uDoRWCoMHV!V
zk;s6|m7X4gRixiT7Dp<?%huGr7E1!{|4J5oZV-dOioDch)g0j<;$aVS%RlTq?kzmG
z#|lsH>YvlQzk_*~S|-QgLs;zk>eUZR>4evBD!r6>1z>z`_zuxNHQfEo-S_i5Ib8n~
z_t7V8fMAqStN8UaC6FZ_Az#m?gVXDua$Zl+<6B0VZ+_)4;RX0dRg!vQoOOfzQ#SK&
z?8%R~cL}D5r)KRvSC++w-`KrL{=tGDzg0iCB4b5@Z>-vG_(u@qBK3n?+1iND5UqEy
zYJ~$nVf@>T`2z4FVTT;MMGf3R{i|A<e89NIE+l~ZSA(gH`!S~EK<Zq#`3(6Q-!)G~
zryV=QIGiQyi!Y*m2BSU0dmC0DH%ew;Gx&o|6pr6rL%ky>BWprjRtr{A;&|ci=`F1D
z(wt73DJ|sjg!nwQStQ6OJX>V2-omb>a&#+^u;PK6eTKx>8R34?<)F)mU!{6RoFsuo
z8@#=&E(N{N1@-InHW$})V4wQPmq>YC2v8AvtSGAm$sM1+nuY3us&Ban_8!g8B+dJt
zRT@L#%Kp9mU_<z{G99p3g7OJ}{9-C-05}^%oIhk3K(+f@m82rXQz4`G9w*iTu3FEg
z0_3+*#j`DqYK-8SgF`p}s5aDDcHf}e(}$h}hRa8O>%!l{q>1jMvLF@QMH%>07ffp|
zzM4ZEWwu`dZ!g@{g?m%G&RwFKV0mLZWO^Ng#yLx-9U=_$E~{K>6)^*vER%}M^TrUb
z^wP@9Oc%rg<i;QM7{TYGM}&2Y4S?^+#RPdYuWWt7H7;GF3yzFNc$^l%35&A64KK7W
zd$({*746r}{Ujtgrv)LU<J9s6<h8c`qUG&HB8z-eN0n+{ia}Q1I!TlS$_q|KGfBwE
z0qd_Lt0CtQZ~Vla6uK{J@V<IJbn!FF+ZJ`B`iKa$BlI^tIv>s`*s`cM$s=#(@_jYr
zUz7M&@FHDF0dC(K7!qHQhG0#spl3u0@~$kb;-SbZkl_F21mc-LU7RVsNu~%Rs-kIR
zb}I11WO;J~@t>cNkl%mDr-=M)GaYBpeel1>+WiBovQVRUkKBv7i?Dh8r1H{$987(t
zB{_;X1D^z>m|qJb&sb&e`2v&|Vme3>zS@W84lkdj(1gi@(gVJS<s@jY@i_X}oHyce
zw3wV~M14-3p)fY`cH|ARwa408l|h|6yUfP``9<VMwLYkz9;dTm?R(_s&Av8&i75>6
zpeXy21=o>>qilQX^@u2-_SlQJmI@Gc-itnSS_`}v&D$%L_2EWHV~TZ*GSHuFDv*0G
z4G&|hUyrD01A)_|++|Z8v}Ypdeb9d5PX=3HWV<TRR4Xy1@@pe+EOvakSs9jlPd%>x
zg6_Rvew;gbLjleVmUDQbepZc;)n&m}MUZYUZGYS$1OmTL>`uE$!5Fu|rM?z5Fu&G!
z;~+^1-bgw-%gt%PC&j19(!4qldiSS+oeTy;TBLWxG<3nMtRk{KK@kMwRq0P4KEpa@
zz{Ph&3I4d==v;F#fq=5W<2TM>U|x8%`>KrwP(1hYJ$DNO?QSdY_-#!vQPUgDM*Y{1
zjEsB5KImL>OkuPCFY0R-4|l$B(SWJ(*^V+wG*><lZ6C@({O(5Lz->ugNFmH${MIW6
zjJN66-RKlRbHa%*(yI;ijn7Wk%bLK5ymRF~ZUm9eAJn`GtU<%SayW9@0RBpP`uP$W
zA^+~e{si*msM^vo$Qqb{?0(L3c}^2(koERGJdOB2HN`0t)|ODG>_@-ot_S@%tB5$_
z45!7CI5nd@knt&p5s5f?pbybXecCDqFKtg>;Hp=F#&?s>Pkt&w*~aS8YZsLvecMTs
z70|EsW>yxB#h{SI+{Z_LonSzAWh6h~D4svZ)oJYbn_$rJpJ!pj7QyP<*}z+0W3lIf
zPvx{w|MfyF*`eSx+E@R`WFfgl3?i~wIcNO@Kse&=CE^l(_;tuwHzr5|?uvUsKm0g=
z`r`c&PhMdNODK9`GQb8_XVt8Kpq_U|v=TR!88Pm8%<9s-A_;Ej@t-nXB?ay_i#u4S
zlH$?>t;t&U2ZVcDQ_;IUM7Z42`62PiMr?^CZgBU`7}h;5KPP>K442=HYh2)%BT$zr
z-&>+##@8P%*km@7;(439Kj`KT2$??<Hy*_u5S-r&z7G+j!uvm5p0hoq#a*5(lWV)s
z;0<x18J0%mID6-*`8C8#eQEGZ?z_S+LBHnZkc0vSUe^=xo%kjVPWs6#NXi-Q_00y}
zZlti`Nlte{^lF*${D7j{-vtf`h7E03+CT0Pa`dGeiLMjjhq0laoGHxsL=;!vZsIKA
zL^$UQ(t;hrq)W#8hYv__*r-1%`hpy9s<FTnUa;Z?>w(eoH<)o=^G{4|CS>@@jb<LI
zC^opNtskm)l>z1D7^xL45!bAfSf;ZA&8@lE<yAKYP>%Ppe8)Z|Os1^pu>Bzes|X@t
zJ^nfDcFOlGwiXV^84q^|G5e3OsWKqnI7^MsSU+?xsN}^NUZA3G#13IdEiC2eC=njq
z^SVPaniQnY6%RbM7Qh*%!-vMI1@I(k*U1;ERJc~{-xKaCGX(2g^I!XXhL9FjwEW+a
zK7`b(*%oXWgWcf9)4T6X;0~MaxOR{k{CD)3u?Koj<Qf0zuy8hj^qTqtHgpc0e?$<t
z!UMoVNu=@oxEZWoekFAx-W1Zhc|02B^kJ%I>mCc638Z`uGn|{(2X|E>dW|W4NTTK~
zxXX@wc1`I6{J0f38riLNlA6G+>lJc8D-B`#O>XV}eG|CHSkj-BWD4K^h~E6pVFb*j
zT}2^h%pjp%GBsx00QM~163#@LKox^Ve55o6GaGT*^q%Ov9vt`RD;)r%8hu+?xF(cz
zXY=k~Hh?%AzG}Z)Xy0|v;S=)R7{*gpk7Y<0f|5vC;ms6%AloS(?nnR5)K`xRf|+>X
zdg|y4?@2}|saH8{P33^Z<8;MtmYlHf!6(x)#RBtDXC5t=i@|h+UZ5d5$F>P<5Zx{p
zh4j_`Qa`+s04*+YOs8HPK5^=8cp*NXr_ONI)E~qT^*6Zu7v%z}f67~?d_}p-Cw3|l
zp`yT}p7JUH_1|Y+3e#8V$%28SDzB5EG%V?=?w|aOJnnk^VV^W4VVmrn>e4sF4@_Np
ztXL`lZo!H|Ka9}a*^;Mr#Dx{Gj^aYADM45tNjoyaE(=(TyCJcJ3@H3`mbmAp34MJk
zqtX#d&=@3er<zS1p4T)|SC}GBZE$Wod!!<ScPJLj79bxdO`k*-@<^ngLGAiAdAR)A
z=JaF+%F9=E<JW(vfOO2K+oh-<{I#j!RtM?}DNrna&_aHB=DeGu-Djj==0|J@$vX*%
zxDk`{PhT3|B;UN*|4tNqPlN{EMSovj<35#|gDMzjcDS0#puAgupx$*fkC;-KxiL3~
zyysKry@$}f=D}4@`GZ^zAa;noZb~TtW+$#C9wA|bd@`zgos)mCSGntrmZIzsFx_eN
zs}*@V9nK~PZm~kQmz|ty3M1s)i1}sPNdch;r&KTb3xF+lN3?931&mMXoV7JU9?Wsi
zsHm&Lz}9e+t*=T9oXSTXxI|^(&5l@{xVZ!fMbGBaqTcI>3T<8`+9wJ`|GP|_$_VwT
zyyQkR=yPq>Y>5wQf&I@Xe$yxyo1#`$ak@twtT>Xk{ze$Uu$WNr7|I94*@hOT`|E(Q
zm70;slq{sZf7t#qS{TkyoH6{tsRL%);%VC|8n97wr?Dki2gGM1Xzx8U0FxhG|MtIV
zgU;D0$*eP`K>IO6PP7Vx{q*ptF*C%wx8~_H%&~-!BD%f%;--*(y-9P%-y8@mMJt1=
z7U0F%9!KtN1eMaSZ_ZHJfSZm5$#eAHYI}24&Y{x;6f8BWs<PDKS83<_qiA25=R!}R
zK%@;0+5G<2Xug;?TKu<GM+3HQynlT_W(JQAo4<s2n}V|F-@xAEhG3C*%x|W{7#^y>
zQTDiJ0{xaEpB*DDz>R-tBm6JQFAIfL=j!vq@7D(F(}}ADc?3<pM?8kT9GatfD8vTJ
z?jw;k&S*|;tjJM4Lkh3&1b1*pa=@J(5~WHP2JkFfrGFGn3=aaoehgx!gkE;t{Yb<S
ziXEdeU|nX05n=X=v>zEzug`1L(US=ZR^w;$W|pwO{2Kv}(0+D#dFgqRI^w<62UW|b
zBY%(!%^3GfJ{U3(#WllN;C#X*^+xpbV{Q3i%XXRpY`T8j6AR^muaXa5(u4>=c#P&T
z($gfM#A^4mP?rZdB{|*JxR_z)uV~;$UPh?<ao*{Q+a6|8nU?f7;ve>n!ud{S(LYRu
z=vn-g)=dJ9&#5WDpbdg`LqdxS;&gX9Q#F~ZP~s;?W*+^?WCZUX_xD9qtl%~p5!ISD
zMY#DziQojR_+&QekyJWyD5|bh8gy3!K{MIn*sCaK;*`Z9?kfbX&LqFS5TSEhldE!d
zi!w~B*%#k1;e>YObN6)KN<g%PZ~O}4uPv&$P~_SOgVx*4I|@A#klA>Y{TK4{L<Y6f
zzW}tCHu&iAArbXvI1X*&c98#hDe3%pkRF7*iXo?ei}vBqumm&2i=(!e^-(X72HyI`
zn6xTkpu978t%Fe>tk)c{1a29S(BUpWqKdc#>nDP((Vm5q<M`=~C=n=6HzO%U&y~h~
z@A4~ODWHPzSo52YB-m+;6nW>$LYI^AEJMC9;<l(>c<n0&@AD&kG1RjYc1`shJi`Y8
z`T72F?CcORflnIw3PamI%`R1%B3!7xd8)%)36cz&JQ@Bm0k5v;mU%epz3dtKm~No?
zkj&L)C)7{Oo!cV<#M>_=Vau~L7esuo_rH9H1OelY7W5QHbBeLded-nDb1Ehe%KV8u
zWfgqa`4kml;lg#-)f_bENx8^5s3{G3Zh_Z+kthIc=5xLoS3!B8;fYHxWTBGNkDP2$
z0Xh-r`_?UauqU+>nrM&$<vHy~^)h1cDB@PwpAjjb{1+t|`%V_#?|jFu^N0YWoLSo2
z3y8bjepPzS9-ZF;Yf3+iqaG$fL93Hn8os?HGGZ<g0|6hRGo?MKCo}4?HC{-Myw}e9
zfvbDi<`6}P+E*&5Oj6w5`$G%8Z}~LeA#ULm{Y@hpB5pW+d#RU9b`@hx&i|x|@-3qj
zT(V)u|6yj;?<nFvtzqQh`|m}#$so1Q{9a?>5ul;*6R7#ShxykqRVFpi0Ds{X7B%D(
z$g@A-5Pe7oR79UlZ;>JXu95wv6NrQV3H{f_#|(BG^){c?Sb!lXr(U6v9Hay`DJByb
z;oU_e_G73Y#--iUoTkbEK5Pyptq02(N9FkwG_$|3WY2e-tDZjy19?4!uG%evk#hXO
zbm$z$@M^xK(d_^;37MD`?>xk`igoGJ2EP*IvR{_Jme?kI)%!hJ75p8e$xe{vx;jrt
z*uA0Dw<!c~ij(%-%h`cNgf`lMAPF4>2}kHv{}HZ6$<sOBr-J%zW$BVi2E4R8h4i%y
zEmXUHMdnNf{53sOTQ=g@GLY82yd}a2-^LO%w24_EVA0JWt3d=mGaOp1wZeeEaJeB6
zf_hVz4DQS+`tD(?+s9|=FN@<hlS;}o7+LV6ZT(rltqw49ou7eB*F|7gmqT-Q3jN$g
zO`VT_M~~+}3wT_g#gAL>8XnPfRKV{{$YeOJGUI}+QY==;&+Og(U}hke9PT%&x0NLm
zLvMbCEzzAF?6?4J|56(V3|1Z!zc$1KuC1qvX{80B!rtXFtMvkQ*z-)#ZDNz)c=ti<
zC97sEZNWG3E9$j}lmE`}LOl?@61w&ih#MiSo<u%&oEJQ<kbN@rmxmUX#QsheCE!i(
z@4D)%4CnOyxqMs^?_eZt>c$NET#gdXs#@p)Bv{-zrHTBPlI2EZLg;g1XKrz%PZIH^
zX*DK1l|e--cgZbL0=SOa9mr=Zz*bSfcLwC?JJmbk*3hU3uOb|{{wyef{8kQE`6&%Z
zWqEmYL<Y^_(iSw<NtI!Oj;Y#})ev~zz1S5ytq&8Hg~ms#w1H>uo7_~f0;sVBrVP?c
z0{PtQy|ptMKrEx?a@k88J&)5T);(0frT#&pHybmQ{Yc!M8BzhgKgP-z9&3Qfyjb6^
zn*zLfy?3?c4w~l@&E<zX9>LGAnJIjGfMbk&vepHG)VPGFyjgnPG(k6~u#^1-;z5Rn
z1)Ms&j9rYJ{!SV?M2P=VC1)-F4=b>#W|vJPg2o)aGHI!8?89}LPSpV-xL4ouCeZL3
zw*U0iO`7i$Smo$9UjJ$`aLEhL*+%^}$w4dQ3lnT`zN>>uLKgXSuBDxew&w+*=7%Sj
zU-3e1^GfEuV&qxkuWS|^IRf7z%V%G_LH(Sqy@i-(EQq@zB<pvZ1FW+jDUj-M!Zj?c
zPT!aTuxyn_eIdh``<J}c8H;8DX;sxhD>VhmHN2-?j^4y>Z~DC3Zl1^VPZ<xL=%Iu=
z=f+jC(0$HM@1o{Koizf@`x*YGdP<;VU=0bU*&tA^Ik+(QGs3E<QU8h#GyIHV=t)*Z
z{>Rc1bABxzyk-WA8I=>q^X9|299j7B_}?d{CP^gl;}0!Wq?82kmTHfWa}<L3__HdO
zURim3=by(!Wb6UqQ@?S@`(ajm!mlN#g_0Zh|NK#<Q;Y*=+Si~SpHskNMLb`QhtCi=
z!n&4O_^5EW?iVyDPmDZ5TW_~|nQ@okNzY_60sMv_qJfI@;2Q2C-C@FPxL%yad3x3b
z><Yzw>3CK~7`eeqH2D;9hq^M32py6_Vw8qNSv(OK)lnYnJ97lDN+V)92xh`F>_rZV
z)u?g&DQlQz8av)#SuGlMf($oq6sIw{yo}i?M!hvAS|>zh_tIz<0^Bt2d2Ei(Z6miA
zD!LK>)I4f5fC+K6hgaB6JYkapb)Wh<g9gM82~i?_XDA9@<F7azYNcU*R($KtaVaop
z;QJMZ_;KMysX=PgDiA)e^31JO94y4!?w7xkh5Uol)}3KeP<H(J$rr>*pv|1bufU}b
z4=>RQO<yyF<$E=@Y%<C~k)PT&+^Gn6sK2H0YsmqfHrt&`6bjIq_jJzWssfPSpd3~~
z^Osd2fo%&zbbeL)%dlD{3wJWUsqH&z09k6L#H6Y!Ov$&0XO>6-kKLZK^&{kWxzM(8
ztxpT=0$Ocr__d%Z?$}iDt|pKK;pA=Oh`&GLLarpO1z*>wD2jCv2UCQ7#t!vJOmbI-
z?JJq#%Rl~@ic74JJ=zr_9YhVk<>{&erO@14f0kX%a~I<dsp&8{$^xkzPH(0wSYbPd
z#6-l79CohVuP-wrhMTT$>z=%%gfI^=);IoCAhOld6Vt#51~T3W>Xo}#*nb(}#~n$4
zNj$yq{unxk@!Fog_5Khmu_j~Jj^+ayGR6)o#NV;(8H=#7=7gr&rs1!S%)pS{+j(J^
z9?T<)6-=HoqUZLpiA%A(&@Z^tE%HeKo?g<7OG2N|xBQ3lEZ-KeEz$J5QAJAx&l@bM
z&H;IZI{WBrb8(25?W4|f(_@bydi!2dR_Gz2%4<K6Jd7M4bh#(-x`YAdZ!las9mok^
zp8D%Z&Ts&IsTu9wZ(fkCr3um|Lw%(Q!HWBc>!Ot<lJwX^6gZ~cGK5(XSM}~<OAq2o
z9Tw%?7ABh}XnTGU5|iVA0dparI+P2!B6f0cla?Dc8$#RS&k8_@U@pb6Rxv1wj&Hcu
z$_^W=qe@>mr9rXok?Xn}H|SM%Z=dr-c{c&(>yb9dvqSf*{OGU{j2s&rP9o(73Tb^I
z8I-S)t12UpcHspE1{rW-W`zgKcF97B@6<ZjTSKZM2US73l;@Jrys0ecCAR|VeQnO3
zPJJr?x{A5k?x?S1Q_;qH8@<=)te&dyq5fk#AB)&E#FI)nA$VSJ9-YU!N_HeN(S9lB
zr0ER{CD1AA<9e!y_T_Q+oTna1!a>2i)bXF<(BE{={3MAoD1CfwKT#(O;)|Ml?-u01
zP=KQ10Qr&@FBo%vUPYXGJ(E;BlrI(|#I6>$DMDA57P*QM;*vgkv3{RY3QQjw8)fq<
z!;^q=;?;RYkZ;=<A>oyS_^$rf5qmoDjLtwt^{z6^^l|7c8mNM+7327QeE>Zf-WS;m
z$V>TfNuEwv2XrSA{EWY906(S3Xiq5Op)wgR{>xARn;%r1y6%c#V7R5&uA>fiFP<8r
zcL20q&3P2@NCboqJ_yM=BJNWXWmQDH7|ijGCA2uHgR0U_w0t4D2mTl6Sc%@JyRo;g
zuSZG)TRZ2}D&iQWk=s<RAb(Cm|MtBxS_Yu{kfS$|K@7n|8Cn8-YXrrwJi6H-|6%ud
zJ6YsuW(e9cms$=vw+Iy!e@+TE5#d|%FNS|4^5G5@FH{U>cL-%hM`-1q^<s2f#10y)
zh$r%^?O-T`4nNM4X`Sdtgi9VNyT{`{gDqV<5PCh1?l+B@?F=Pk(9mcVvu$*MEva=0
zu^k;Jd~6C+H)-F;E*JS+@Kd9L#sD3|&%Y0_*)-vRZfZgBBOT%lUF3qoeg4R$96>ns
z$AsZg$_AD%o1B&EMGlTnTf&H_SrBjY@~nnCF*wQ+J>n!rJwsJZGOrC9e1JB2w%(Wo
zmrl=jZM{SbzpW0>mG5s7s4HnozL#bZ1k9L6J38p#+kiXA;Uov*hs{<9luly`Ry-d5
z>a=hzOfb;Kk_LV)9uzMerGuRMl6QjLEYK5p&u)Z-3vub)ESL@dV6AJqYF4)yKs!@F
z+zH(yYg6TE;wqV-(jD`nU*v<V-y;QQFR;RB=IOd8^z2}G^LzJkvMoYqbBkPU2{~R=
z`!YIf<Op6!Lr3ID%m7k#wNw*zBzWV{c=pL?YCP=55?9BS9l}DZcD@$}2_B3w__KR(
z0+ry7tykGPVfC}m>AZF#d|FjRphue&_qZ1MV^kjXGVDc(=cC3k&EDasV#CxhB_*^x
zM9PfkxyM|X4`ji)E7q?Uxv}F%j;p*0B4)#tbhmROELrivmOmsNlOiyEdE;W7iy9=*
z1}?tg6oJ$J&ng8yP~S3Fu6QR;2<G1E(vl+&j=NX>@#R5bxG)&_Um4;c5mm$x#SoaF
zr`P`tH$e=99A4$!xhMlX-@<1CECeC+y!d+0c{GQrI6ka^&RZ-TSHJ@0Uo;>0-}rSC
z<pABkDQuy+e~I$@h*3J^zm&}%Of^!4I}7XMjcAX;FzMkzAXfnY!x!qc#}$FRqcwq7
zK>^(89~Mu|D1gNt>43_B1Q>i`Uj1C82rHW!MV%=kAeIpM-5v3gs~!xlIzKwVoJkIo
z`Znm{Wpl1=j-WPtmhH+mnbiZ=jzr2!Kld=MtdkirQnOfg$@71#;w&(fZ0(d9ScP$R
z-+fOKOpj~wyS)@_q`_sn#*97`QsEC&otv9`$Z#Uk@)ReF6)e6k`x-XFhHG7Gy+-_-
z6<5^0spzo6gGVyS=N{{1!fm(Xcm7Z^;Jr85hyDq1;&hRVwuTGb_@b0avF$!LzMUt<
z{0n)r{#|z1zhAY4sa21ir4l$K)W}eXSIUkMuIX{n#jlg%uY2j(GTBM-wGG1|zDa(#
zf^S8cqB+9+)>uiL=q|y&CU(W`{vP)0Imyz+-DzyLl%iyO^c6<Fe4Y39JUwihWF58L
z-Nqbt+%-Dh9swcBxJNs8C?VsUsSN`o4+Ovc=snNO0a_<scqdRY!&Z0{PwfJl`<iXa
z$fQ$%N3cRl=Ndnp+L|ZNLZ8=i{`Q4bJ!+hTT<Wk<W`R&HpzUzD%>it$JM)Ob5g)4k
z71y~ODo__-C+QE}AVhv={Cbv%3MOqhKJ3VL6Mh$BKgtY*U{pr9jP1pDth0YHaUN#^
zx4-vk<ZLPNKLpyH10m#zFZl1jp;3VCSo+ZipO1om@a%*y4;h}w>$5;JHHk%wTdtm~
z5yvaJzMLZHD??RR$s^8ZhuCpxa*y1w0)o6-65FWLAHu89YL0$!G2GmnaL;9h1X^NB
zAIfBN;>U@@Y@dt#Ap~!`d?k83OweLm-f0>}UOvfF*B1Hbu_rcnhh=eeuL{XzR9Hgu
z7;y=K2h?OZ{eSoGMfMUyg3gtRc(fP80#xk1oWx<y`!kD_Ch{B|`iuv}AwT51iz*f9
z=bo9dC)bli5|T8@y&_Q$R+NX5GpR@tjy|~SJAWVoNw*}_`I^b$nO?cyOtCP^6`X%3
zisrb2wB3s-2txVvh;cPzmJ;YIv8`O<Q3N9FFy=4vwgz0a%T73=4nNclUM1gBgFjuq
zf5m=j0xL<<>WrZRP|Z7ff4eUQzW0f(dPTG#AaU^I0OF5(U#3D998K7-SjymxRE9l=
z=0EM-3Lq)`-33oZy;fB$UD!h#zK7=4Z~oN)Kj}oRwLBH*dG?w^Wkdo>S=inxNy)*T
zNAVOK=sYQ+_$|k+SqTOPJ>Kqmq1?wn<T8=P1flg7(a)fQzgSSXxYYyY1uR+GOIM^}
z2b=iwFMIbV@*cUxkesEWhA=DlL<YpmR#z|?UN>X`{fqnu@wbmcB%Yok;XnspvK*+w
zhPE*I$g1-(H>p6@Hq)9kju;Gb>(8}0Qp5A#v(D!JOz`iCj+3K45g3qhMSS|kf;=5<
zdyh*Gu^+Dr3KQ1%F+t*#l?YnI|9Sr_gv*x^t}fG_@_$PU9?MIeS)XWuhj}C7jpH_E
zSv70rDKL)(3N$_#ivAD#Lsarz%#;pTLwly4)}Z@;y>IqH&pIaOm9PH7i5YTjALa_5
zqk?h?W)lTkA}IL&-TJgV3B0{^mabf$1%e!pEj=J6gMf$>6B}W44k%R?&mLw1F~N6S
z%I|&<wkz`--(K9oN+l|6gmV~RF+aUx>MaS}baH!38c&Ufcbx7>dHo-OQ}MU*xIYuV
zEfmDdolA$u8miA(AU{zvqt@v6;yJ?G+VG=WL}Yke*R!$1NIv{W!^K-Q{|VxM!UBUX
zxbnid$FmSdKa?-^$K9Rxgkd*N+wRj3cF3{0p?al+5l-88AC*RXWyeOpe~m)|FuU>?
z&%7i80%z5FZx5inD!0ww9CYuj{mt_H++P`pW65lYKPC+qGrm$MARgF{MXKGjE0U=9
zVq!w7&jnfY)8C;+5|UTBT2BTmf_qP0tF;#|Tv`iw)*!+JT}@2pMPf`~x?8WTh<uXH
zFO!uE@9BZrzk#%y&-CGw_8~bH`nB(wx#@~}9XNiYt!CCl75IWSb30Vkf#>EqOf^pn
z6x#$x7c`W?>x#Pgin}Tp7LC3UjZ*<C#>-E->~!I=Z11hMQXSBuTR1aNsRQi2QIt1b
zRYAFzw_1AF07!$$6BF;~Lc@SnL&KmU=vqG@bbY}<rP4esVZ#(yidZsTFe4Zty(INq
z&<HdXykEI)7(%HKLXDz)L`!5_<Qk_2Smqu#zI#y%RNk@1Z-)Z3$i*oCx1$dhs%M>B
zQEpI$HL`yq)dZqz-}3!bH-wOpYo8lvE#YqOS&L>TBM9Vk?OD<`h5px1yuP@aA@1mv
zkc_h$K*wcA;X9!Uq}NNh&vmGR;H9X6e_?7MSL9Lc#E1Gn|E7ObcBA~-NJ#p^usSgR
z*HQW-5b>3{iU=+JYA`W8{JB_B4($UJTq~3`fL-Fe3pS$y%0~T(U-J|p(q~TGpi2rk
z9+J4#Bfl*Ri(Sgzdp(f5u`iX)p${e3Z2s^!YJq~Z%zn=y@{X&--C0FGjh{Cjlce0$
zf#1KLuoX`re#-X7-gRkJP)fYB*I=vyH{^thG*ORlP75Jw$h2X8O3p0r4Tii4yR1*H
zY5<i@{SXPK7EBaQJPve6xrAob8HW*NxJwlKmG!m?oc~uer8%ktu6#ck21nIFi2PKm
zYpxp9Di$~{F31Cehi&Wl8C5V(RxWa6Rf9<_xn~N9KTYpLtVH3b0O4=Q<W12&``L~F
zrM?;Z|CbC5FIGo<&HH&L53P_V`ED#JeXJC$&R!N_8WMq$GR;xTEeX(heO1S=SOk(Y
zv+ewcsKK7YiOtGe7SsYy9_{SY1hMe!{>fV?uW%>Dp1BD5<mzMu^(VA}Wl=2W5&Ajs
zs{MU7Ee?5w`it+MAC!Z;V1xa=q71HV5rlew4Pfq5E-CC#2N%<_4I@S5-R5JzqjE+8
z1b6h0RU@yLy?;&p732>}^1nnUEroI-x;g^Jj^a=Ub4!aa#i3lb!1aBRFieU+IJ5Gf
zJS01`P@KE22);RY(yn}vgQFQRu88u$Vst$poxRb%f-l{_*Mb*VfQP8JNE949ek+@+
zYCu_o-n;vHY7peNe8__O7Gli}_K#kvK!css592CHNR(I`5Jx$Qrgb`Z?;gar>Bi5B
zzEgm!Y-gtLA^-fx^WLTjv50SHbi*!lR2uBBeaZOXuMW5StD@&s6d+fj<I{;e3>@pG
zp33y8!v~Mluhh4c;rIIcc^7GQz!<v6Tu~2$pK2CMUQmVTJ`puCdklC4Ro2)eR6wX~
z$~y+}@`mxz@Er~XNW8_$@(*$EGmND8l~BGeH(|iG=Z+d&7R%L2zo!MWt%elwY3k@X
zCX(MeC;)V_G$$KfP#<;riD<E0HTKa`Im6PK5vo>>B$ULF!@F}I3wT$Ff#I5gVyj3t
z)^j}a<xw>TxGh=CE8WNkc^W3_3zwPU#*zF?<5jfpS?t0?oJ3&m^(*6b4N9oGWa_H&
z5A7R!r^tAJ3ZipU&+27gRuCJVIy^DM5AIbl2ZiR8VEib<!4~o7<?Itr=aC?O&45%N
z3F6pjIv6k%y+M90t;;u-xmK}XkMm4ivo<g;gO%s!ZFVuq$>TYTjco)s3Fr9}(?2ma
zwl*@?C=NKwhNs+KVTFZP*Go;#l7QQQ1^1~BB;dakcJiYDE&MYt<oT4#3a{k!RisX{
zgUwpMBMG`s{3X!7zOaINr5Dq~>rYUFdr%|wB)a#q6twWzgo(q2S9B%pXivoVsrdI~
zmmuUGdqZv_DhN8~&et`(<AcDw7{#Hh2iWiJT9WXASu81fj*Hov9_V+O?S~VY@FZ<l
zfn%L?AUrmq>0h!&AkWcQw!KIN4fl54KctX@10jh2?l<IraHAV%K>l;45z+Na`5Rav
z>z@lFtdvl!Velnoh!r*@eg_GkF2~}NDO@eM_~HI|Y=|EfC6wcmo=5$TfD*JQ^^pD{
z+`oLa#LAWt&#RKWLUIZDp&N(zsgG@Au^)7QCX^yy=T8-lGsFTA%yne*f*u#Na~2Ya
zO?YAFfW6Gch8O~r6Q?Xzh+sVQ=HsaDH3Iust->^VF7VSa9kWL{x=s};Iz|CaFff->
zQ>FsYcDdpu6QK*7(=J6HK5N78B;u#q?V6y`8RbMPrUi{sYV%43Y9LKq_blWN;^BMT
zIQNeRgW51(@naO4@Wj-T)bz3%kR0<h?e*0F^}%1ytWTm|C)2Ip-_9X#U)t41v_68P
zr4|3#eAa@T=v-d$d`;NkII!5+K=~vMqnF2;G@;!4{wu9ab-2r|cIQ$D>d)T%n)W;x
zgJ*J4ije{u(7%#>AxB9Enx)=U<P>Vcv3x!M$TK=XEu?)8=@p<?+DxICO&5x)YEyqb
z0=PdR8=UlA9h~QlzTV8zfc%!;)^!?fcv>+@opMDVc}MVJJrXVO8k20<GU5Wq%C8>v
zBw}#iBgy()xd{0Ed+?4!To^<?oe5%y6#@Ic_vUxeo_{Id?h7%>O>DBPF+Nd7eEyQj
zCjo5A;C^54;VhcN>`Lt63nb|Mv+!j(2;~5tYO}s|;nRT3izzR|J2YYP)z$jp0eR>)
zIMhlZmw|J_!aI_0QI6{!%|-ha3Gm$EQc_@12J;IlJ6gx&V6aboQFVzGYGMZ2w9xla
zJ$XL)`-U`3GnPo6N4f4jGEaf2SVcH>f`ljw`EHM%tf{g%5Ci$t@891?2tjq-g){tR
zd>|NjnbTKW1dMr%UXqJQfp{^`(rIr22-rO9!kL0NI!p;2LKRZL$M9tLP8uKVG442(
zA3<KW6(yZTR#mWf-~CfCi=L};={=#rDscBGuZ{Ep;s(5Ww&}Q`1?t2mj(Vr`z)n5j
z9=WnA1o(ygn-kZ8m~xTM1PUF{+i`h)gT@Gsl#Uv%(Hnr2$bsHkiyo{fB>5Slek4)j
z+q<{OHGnkrjLdL2^3K&B`)sa={02+wDPfU_NB>{4AwTlkJ)FDW*6EGDkF8d5vf=1?
z>PWt_5u^$}9@>AC?kd7p?%VFi(bxaNTk0n<)yklnI6C!jSPO>UsOwg-q3;V#`fqjx
z#36gqWy_r-jpkOGkDYD;_}{8kU$aqz|4w*w#$>A^&qMY%3QcXOQW0oaLG$4fUFt5=
z*C-z{EA%w_feKuF{@%uSPz|Cdao+e^^qzk=M3IGl9xPW3J}lVlz>ACTGh2GK!1>l}
zx?myl33=|w>!A6X=^XX8Qi(n!kBiVY{X+k4pU&ziG!Oe&-KoQm_BS1$_Cl9(^?+2K
zIBJzo4Su)0;#sZMfy&q9^QLIN_brraZDCp&UZ`^!bsH)Ia}#6Z0^&7{U`_P328iEv
zu5)+;@n>lJ)(?sf<e^FQT7b8Y9F(=uY!1{QPJhvl$E3IAz%TXVdaWn&S={JxeZZ{(
z*`?a*xdbH$^TfRss?|_lG{`>jn>w5vzFtM+sRRpI$1<J`=z+FM3_qoT8nE{Vuho^P
zz{9WclxG^0QBLbyXN?3m;_d2Q3p3|}W1O*B@o2AD%8FYqlrtgjm%_qldoJh`ss43N
zdJX%=(6DqOtrL?jq?YKGAj6x*PM&W(*@0c3K7YO`b_;8ppLTckV8FFRj7c-4_6Ww}
z6I;A>jQGDz5tAx4B0Rgu@ZObMB(QabX1^L|0NOhW-bVyj;i3EZufw<K-al8S8$O2k
z&z=ic%+UG%W%_Y4cbY9sQib&GW+5xE4-Y-EQ6~YaKO=jtXpWW|`bpxf?@<VKeL3=H
zjT@?2!<(Mkkiz12QnWTXFZ_F6)BjkH4JuvxK0cHef~UUsnFZ@bfc42Yx*^o75WPvW
z<Y><T6o<l$P3Z4^W%@jL#FrR)I8R)4MthM!L8ZEn1IP>g)=83Y7WLy^C)x`m=Em3X
zfQA>oQt-;nc)iI{5r)kUA74JJ2rrbcJh-BW_TQ=XbDt@>!8uJL{{CG$2+gs1!mA<#
zyl&oK<%FeR`JL5pe+uGUGP2z|r>zV6Ep5autKx`HFv%K#&I_lr?$Qj`p?lsCvns>P
z9KndWW}ao20@s+AWBs=?kG=oYF|plz6#t~x%@STF0%0fp>=oW4?>2FMG^-XP{y2K&
z!`Ji`jO}s9z<YKyPgf}Rnm0##!?9`Uo6mW`VtTUg5wSFQ9}-4Z&CwiLB&Wc%Lj~qo
zgkwukF6$JP0e@?_7&zn0w+tHPfL7*tfBGwF@MWNWLmHz7E9Q5%Gv~E{PviB&6X@O(
zlteqCq+tj_Rasjt$(ry_QT0ZBswUL(%kMRsAzx7T1<F{IFQ%e&ee&=$+Hca!9@Qq7
z2iA321JO+_NI!q)XPmP(oI6^+$$@@Od74gCDetO4l-^Vn)eH0<N!GSIhwdpS7fSO8
z_l!a8qBGx3CPO&%Y~?;buMHfP9hc6aUar?!7iv9ybe=y#2<Sk+-%+tw`ft<_!k^r=
z_36<E-sYd|X(0yCGhlJm0QDsvzDWzA>@<eRPf~xeITNsZd?-RJYXpDiWCrCBcfxLS
z^HzGb9+;G8oV8!nhew%)45i-;K<vi=&hBRd=9z16!q<(#m-=_~`bPn{dGb<>=%6I<
zi8;wwno0vKOzS$oQh<!6L)A_el&k34--)9X1*#avI@8CZpix>lu7<u2(@Pyyk1FJ#
z)4jv5O#po^M`+4Uk|1tq64!x4kOB-B6nQ1vazj$(SGAu-5}@qAI#zyM3@(p{S_NCl
zz)F9Z*it#l1CP&L7&O#^uJQG$Z|2hQuAQ{%TL`+pg#EYn#YGIF^gGKF{FFiQvAASG
zJ>pHf+D@;dufJq>d*bkx8e~)`h5R*>hm}j>4@*~7p>@I1TnNo;5;!i)oO+}MEd~n8
zTgcmU?tzko(+4T2`f~S7VvRCL*%=>}PpiVfUTw43R~2Yw{nDYcs0{4;n>Jq*MG^1j
z6`2d_H*0qs6{6M_hRVk)d>bhez?;z0%Myb;I0JMiS%$@6@nJKGI6ca*OJ5}!AVZ$7
znG1ILuSB7i*1<%plMguk6+=}pdbsoQ#GS+MyfAc_C^5as27%q5?iHcA-&ynOWm;K&
zVC@))V@+GaMiwt9*{%r!yPaJ~E4m~H7T?sikyU`%rkF=fyE1U1uI;l`<vP~0M5hvm
zJmb%QN?xH~7lDGhk!tE}CD`FFByX@nxq-V~m8E~!fp0mAdSegG?*l~U&T6p0Z33O!
zCi*^(6g1h@@$-XSLj3hlh|}r*@Up|uPgZE1Tsj&Tg#7jn4u+FAWnjqPea=!x5GF39
z5N9<A{@(}k^D=`X{BUx=v}mdXU75rWrLUm(gG@uoEp(sM(G+oi_FEHjAM_mjoz+49
zDH8fC6ne0qbo}EF4HMWm)9$9cXaurRL6A{q2u?>cEDR9;BwS^8@Vu!h@($Ubm?SfY
zy&GfE;G+lel5U^<i_pGvxPNSTNEw7=+ha0_MBpw1<w@y$5g?;#=5C-71c6GU#lAyT
zcpl8~?$8nOh@zi5k`$pn0Po!f$pn;#5TvLUjFN<cg=@?jXEotRcA9!{zB)XYpok=l
zqyCoRMGxPniip#}eD)@qx7=d?ut}t;1~fbq?^uyH?2F%bm&Fp)E59E{H|dJ<4Z-3g
z??hA}Gq)f!{)8UP?r)s^g^Cop{0)26C^vp$nlnAAP!`SgKT|{i@~Kd{o<3(~08v54
zPBQ0|q3>DCn6tAM6zhJN%dryyy-)L;);y9>U&_7Vbxj+b%wDdV+bP0x{t(>hwIXEq
z?f3=Dq8=DUeTN4q0Qc8){a_nIFg(>y@!V7!%Fb+!@+9a$`uNSo5!5FTc)aj;KnVHd
zgKd?EP<({Zl<kP*Cw=H;tRGxVQG*-)Z^aThRG_|YlivgN#vJcGF=2gb1XzvX&w3#P
z<f*Iv<3q0xuas>GR4t}(Pcu#T94YG8sgU$F$CyDAmXhLw`gv55G1p^JkDtQ)ajpI^
z@_}Z&G08Y(4wg@)W7E0BfF{=|KqX%Rc&F$2zJ^GHa?OGS*J&Z>lfTq-oR1C8j4-$|
zqWkywyWYQf-w=1`m6>(%Lvf(IZLkuSjh?s4sD;!l1tR<JcX=lyfTx&Fh0<Lb?!LA=
z*LqwYf-Ub^q*qEqv)*{qfu9VDh3#(26^MfSilrFIBXPKAdm&XLRR~^)r1jRXpmUqg
zHJ{c5e)#JtrhM_92=aJhnzIrDQ0I{_(vEV3yzvLze`ZCX$^GxY^+O5dPhC|Vq}agt
zZdpubosop!lF7m54ib>WJm^St3h`-Jee!v1<w2qg7cT8Vd0IN>(?M18ur^WGp`V22
z(NvLoW9!1e_@_vGwF&W6w`486mP}xS_u&zz3y4p!)D@ceL=Dte^5~yYr~*Z7OjRfH
z#Y%{$(DYL&fs`u+g^w`eCHUC9?9vs5UWbGwH0*@G%jPaisp9aMu`{GvNC<L*8%8#%
z#h^p~T9CoGG`w8+P`0C^0H2#BB~xcPVI`+fu0PfY61X;-DpYmh-MC<==}!ZA^7nIa
zNV*aP5PiZL%vB*-=<)nrbneX9dHCCjRSKH(;ppwBk`Q#_{p;6gj`aJPcKX$7^ydUb
z^&`fNK*2t8DV0(e=uiC4H2R0Zg}RM1n~{bP{qYmtK4SqbXXE~UV=xC(gM)`xgUz7O
z<7JUcgb|RnosGCXW&zhH`T{?w+Q6B3Av0Y%Iw%Su3%@qX3{yk=9f9YW;VI>~Nqid0
zH&aI4&SmBSow}jCw(sb@o-2Dw5_w=6pH{3Zq3=^mb=sA-M-*V3^wf>Zi4n5hUu2v>
zK7^tp-IwQU_`tLGXG=$~AgEl;{P6rX56pc~s*oNPfDZfRaa(&)l;;%GJywXG=c2@e
z4iln4Y|331i1zIBVzHm!Ns0nz^_PjPdO09yJ!hb@<3Zd_)NnLI?@zJ-rlOBBkXIN^
z8p$FA-z^v1EKNCqFWl|C%3pQ}ik+RxMd!aKRVs<atz2-H`SI!6N>(`FJ^vxJjt5xO
zuli*aF@Rt0nO$iKPEaaLsNF>Bk5d=A#cxotz(>WzU~E$fc|1}`eovu2(#qv<k(20o
zH!oa=<l%7Y{<)J~D*`ZeDpYY9y{Cd`>6iyB5T8MSX;_1V6t3E{I{UV<!>6v4e1<$a
zD0xkA;d15#Ex~JQ>Py^k_brxYTY@}ZkJH$Eis-;bcG<almlUFJO<jtm;RpUb`kz0{
zk@xcWd)A6+dXS(lNH0KK`GSHoR|l0v;H$(D-BDUrIKD)CNjyUkVovE^>u`_<JyIbD
zYV_WpIe)*24*Be_a_yhyXc7X;%K!ed$nijNetkIox)9We7A_=h@qpHp?HhYm9*F&(
z85)6nQ)479uR0TWA%saQzYOJnPlZR1hkii)VLqc-_ACy#ww{sbAuj>apFd|O@A1L2
z(?^A83>o3><J3o;cZH$XL)A(T<vT34@lt!#TPpss*rzC_1eILR@}l3U!F1lcsPk=V
zs7K{tnd2@CS;40F*=-d;<@`%NsTDE!Na-wn5^?h%wbbjF`YJ)E>BC;GZp3$UE*|OV
z5C_FWffC9#QMgRzQbvP3FuRu+9+J-pg8nnFWcLvUaLr(lD$_voQ(@uJa(_W6j(_~e
z+*Jb3-yPSy9U%^1l-zE54xs&4^*P`22n@|{E4kAUr>%ja$a?CNI{4mvyAyvx3`_)Q
zh7Hw~A^2QtSZ}sE7+j3C8%4b)($XWVcP?lEiRF6!b_BZDUl86^&{Y9p(>W7c<RO)-
z|3ofJ^OrD}c-B+o3G#&AnRw#A!wVW_yiX411mQ4&vO_pznJ~35`+IDc5|{-S803C(
zLqm*ks{3;W@H)DDufu!@8~W8Sk%Tx;bBQF{bCbU@rk|%c9#i%cT!KVe#pY-r`#_NE
z!96;_y3e(9E^tC`aI<!39NG_cz57F2Fo^a+U2_saO@#LCpp-W?I6)>>*yrJiWvoSc
zPbH7y7vVE8?L|+NSDn?`#z^}&u=2fY{XGp#FezL)r?E4QJ#QzM`B*>!K8tM*F7rHa
z@%`X^=T~c(+ZnA*U6c>Mu1InmZDz5*PwL<ABft1psR70((fio@I;HVoLF8wOV|DiA
zrGqHUf=G&k89y0#rL=;J6vV0L^MraAv6b^<PsjcWBc7_x#m5&|VaVgLTz{YzXk|=I
z`i~z0o+q-uO(v$WfSraYv-o|24~=|{-7q;`+ZJiTDZqkv>)||_LX3Dl3EAlMB_4c_
zIDA4B=f<my^xPd<Sn&;FoqxM@BKX^@&kR~OIPrLs*IcbHsc`YHjiOspw76ft!%wzG
zHr!wAQNq|$LEJQ2j5oi559b~ktr~wIfM;6&46U~2#__vH2fg@&@qf6x=Ya|r?)q=p
zOwOJSCw(RmzTzy5tN*Lj){>UO|FwiNx~&M|0+k9Yj84SBcgoh1<uNBtKI6_q!NiHv
zQ_ZvW`0(J_A1OP_{b=z(;<W3zl$v1HIGibgp8sYA&xwXmUpqsM&DAJG24dvN{*(nN
z0h6Dz_UOI>_`WRmcz}McN4>p<M{~sCZ|k(W?hp@<E{P{op*{u52pJCUA+DpyXt)lY
z45ao;DTsR^-?>M@<<G2wkQsCJ_Aw0wK<jAs=u!-L!_+s$cT}J*_szvGqq5L=U8wd6
z>fu-4)_E^#gXUBDi<<%H_xl~R6*$J^AxFTvxhqNmY>WQ0aX|aq+7Z&});kh#%yGo!
z9XiM4GpA_$MR`0{&ko7wBkB-%M_9ciMjZxZ80Pyqkw^1QGgfy_0RnjIzBhF#!D6de
z|A!iMj%a^D!f;;_sIFQ5AYN95>1uLqNA%qE;+DAf>#aC==6IZDSP_Ac-Lhb<53~^F
zCU53&j}M4j|8%5TAx@H9NBvb|9*~5~p?#$cz%F+AmVq24xYqbCR*47$Y0lX9eF-60
zuREpdgA0MLelA;c8af~Fqi_l0C<g_$?i6te!XuKNds8J7ghOW2t?M4Um}jYp^!e-`
zSb&(@eU*p`?9+C2<pCgXoJA^cOabcEHoO$fZTpS=du2Zwp|y+I(zS%~5|HO;ebn#k
zdv<s#<lMG*g%wzrg#+`@^L{W+>qFfMHc+r|)}893gry^=R27yvVN6-V!Do{L%;t0h
zPL(l(r>u()^A<0(Ke}t?EsSywg67m#Wjyd>-Wy{QL+8;>SMAmbapa8+WXMDJZ#hq*
z!<a%zaGIrwl|h`SeiN2yDkk)PGfbxle6>%=k1i;=i#~@21E=+D$)^YfM`n9AdCRey
zjYOltXX>yuF}TLgMF$D0JPH)q{|Gasg`r7%f3f^z_8^j6O8i#D^=<7n9_VG>x2k(W
z4(4W8Y}A-pfFk<6WQzI@R$JJ#U{p&CmjhX8om2%tyY3N7dokkup0C%VDd-@)eW5pV
z==>ky&tEDpapcqT@nQ3Ee<ch(qJJ7$<*31zS$ceakPN<m<a4z#?!wmFv)W0&%n}ao
z&xhJvK|K{q+bO>HB+#KWiSOkT!C8x^jY6LevGUF_o^*{S!mwMoZHy$^hmLI*pZkuc
z>~D%9#UI<kX)kX1EVMuSb^Wy4(pzD8Al4<z`_%xr?;FY2nHvDLhdb$0bbfl7(_)>`
zuL>EiHsS&OhS0o`^-U*24<0uc3PkN{K+~k?JejpRg!3r13yW((HZpko5vze_^T?LE
zq%_0@?3m##h`;vAT#}K>5P2O>5d7x#z*MoH=*bUsuD_Jf7096li@qlswOsUoJo;d_
zViSP!xwZeZGXN&o;GbK<T0pLH-MXt#2dr#uS9VnOAYUeVklIckCV%$@g|8Yw3XM~Z
z$Ww%sse3J6CocuI{&GCu-{`@oK$o2hF*-o`Ur#lwxGogvcn?r40Ay>%o|1G^1TN7T
zvbcRk;C=dzM<o&MxBO)&lM!!f(7)~9Ck+Y638NwV{)`Pqx*hJ>6|h6df=+Q~y*vo7
z3CId@u|wSQXOHvdqHt+7{%1vvAPA4Fe<opIghBhVE(%Us=v&SV2t_?Oudy8R8}a-=
zogsTvWl;(|&sGujJWznMWHsg#ib{y<8tvotR|sDByv1n75H~&R;owumX>E_~3HB8f
zf$rD#&pfpyLGm3(Mf?O0q@C@W^zaq|m7EDt;{+z4c*xJ~U&w~MxdJ*|C|{@HeYztH
z^<lm&Em&q&Z~+e)_n$NLEQm*zJ@9)|5(FPT`f(B6<9pM81XGry{@{<3)rm_iAljV6
z;7=zAE!VR7TX?9TWzt=}?KArO7Xw!liG@JPbb;|N2in7lT_>3-6NX_%kvG-oen|2o
znA~xW7am2M<<p^@>*T6IRn;y#Ox*cJdFHkZ1f5#f|8<rPF2+;6PrT2Ea{n%~j{RH^
z@}}gCG!GYWWXkr%{}u#Wb9FJfeKByC7JWN~_+`o8m7M)!*x(lBoCIex%B42sk|krv
ze?i*seJ@`T{whmO|DhCy_x92kJkb4YKjzk{o6(|Bx#?%RX(<KMabxn~Tj)H;T|a4c
zzya-P93n^4kni<~e2B?yF1YjUxTu(mI4s@%jnSBM0%?-v5NQV^kPJ{XQ=&hwylg8l
z8^H{=e+($kcAKL;jyzGBj3ubef3OIxu?Lx;;AiVqwosXDh1aYdgQFb=mg#72oS@&D
ze40-MhV<eu9meXT{6&UOk%t!4TW3tLvZDU$c1Fko+Uwl(C62S&LigJCup{65OySdJ
z=DD_Ub)a8tvg@KX1Y+K|FQaEM7<D|q(`$-8Hx(8cWhn+Am)-F)`4DkVj=9_*XEp^&
z<Ha6!eHkz=vgHWNMP8C)fnQEHV{nNjMYU4W91?_?qv(T8;INQo=8TmU%#|zZt@m0(
zBPaC}_OX*tWMrKZbK(Th>=!eg$LwI<_an)GvmFH1TuL~gJOxZdTd&0ba|EUG4~5Ug
z9AJ-hNk+8rI7r5pWL=dLhwZ59#vBL4r`oEPWNnp(+6?yepSB9{%d9%@K6-DzcDWCB
z<A}d}arschlMXH%T5IB)I~YmXK<>#l5>P}3^XRbuQFPvcRQ_!owzurP_uhM++uk#o
zm6c6aA{5C;Au1W6XjrL?%KV)ZWsgM4jAY9evfl6er+?0IjOTg2_x<@?mjJZcJ39O4
z$wGkP?rRGPVW3IFqoTei3=<W@<&JV}U?+I>f%gfTM>yc_O-1p+bVxk&*i$ihP(r=#
zT!(xFnlCHMdpY5?2H#8PK|Ub;wMY_<`g;zUGphBSf?!VJ_;n*f8oXUzj76ec452<#
zgg%;McQRbjP`xArPdkSfhY>HDDIwfG`kN$pvr=Qe;1t08b;9^NNl9SIAKqg{=W6Sl
zVU=a*=iZzYotxF90n(R>NUiGCKstrqX>?BvDqr?bKmNb~(esVG`22)8Cl!|;dAl5N
zNB_CvGd4CTq7PalL47ncx|)YNtE8~(vv?IdLIKy#UYz|)c7!3q>PF7uGk~1jZ0Cz4
zI`}Hy^Y5D=HLg*y#3*)x8gaN|cRhcxf%#!`c<PQQTv+CyA2MFW=p{?4<&yEic&dK0
z4I?SsbJ=O^<L7|=2XAjatP_Bm7M7l+``mD^<<;xA6CCiUP%v(*haHj<Ht&c#lEU}U
z!@}on6u?$oWusJzJkh$pZi{V^;{GcW{9)fg1hmrrR&J>)n1a3Xd&^W`u=nuR#<eOR
zVngab+IMCWKp|%yo-!Wdprl{7|1@@ty*H3VFhxXw<0D(zeVIaxdpT4^R?CDq)#LYa
zxc0PQL813*i<l;i{Ntdaa8UsdI{SCoL#mK*^=ytg+9zEbuoS$Ed@kp9D*U^?DML=f
zuj`!XIm`RgznU_B4d^?J%sG#8KQA5tQ8NVw3>)7+57SeCO&!G!iWAhk_M&=e{ZA8|
z>5fmAL;<!7!s>-+0p9Yw&c0T!0i$KfcQWdAplDb2!kJxVXsiGEkz+(2m;}0hWOr$T
zkgkHJLX#56Vk3Xklu81}Jkwkx%Bxa%;_565<iX+n-`(*s2GEou_|FTE9iCUo$S;_q
zdGdEn_VQ}vF&Da)Mu~XC&dYltsr-t-cV##!z6s4K9lChmQAvZ?IJU;+wgkj?>|DIG
zdW`W=P+L$8U<B;|HySNM#9x>=vCGLNg_`0=SH*dlVPD=NaSz7}#SC_nulFTDLe{y6
z8J`cxI1W3;zDc1R%5$cnC~06l<?14sVgQEcv5lkZd@x7XNH>2d2IDEaZ~A(LAb`fr
z+V_hTJhaKY$%6VQy#K+Oa08Sd99bBtj+KSsO3VZ9T`5TEFL>w6D+a+!ma+%&$QR05
zdd2fV5HiJQMdY}I;M^?+u?xtnY`H<wQPj%}V=6=n2@z<HyLL^s2KC2JxF2sHpd88c
zY*z6J@~)g@bj?aDqWOu6uA?|NAA~dR-83Iyf+PlQc9&KTxaPb#Lidjq@)fG8Z?5xz
z_!~wEO$X$QOnehul!5x;uRo@*60m~xSwG=D^#8L;Mpqsi!wBn_NnFEign^}3Y3U_S
z8c6Tlu1`VvwO6x)7r(s{2PHY2R&|IF@~`dPm%>Pa9?4m`ji<=Zqn2VEGA{?>*avs6
zqxoqxLFa5XI%j*H3-kDZ?wd(xS;V?g@8N|PL!;wg2^i_Gy+%xm_$7WUBbU%#YoX&F
z*L8KYcczLdcd_Sz)xm#?I#)y?x1-LL!c-V)hogV7JXDAK?H?UF*AzjV)+p7<mLF74
zpU5w1@WJM?&edE}7NGl0l6>tP>S1O1Jdkpehl^hhGxq;T!<5fi;UP5dem3)1<k}P$
zgv{M=^3F%TuzRmqetZmroCAyKjs0Ngk9sNFm=Xg~ksqW@GOs|+49;Vv^9qPYkfdF;
zbO5O<1gzKRFMuYQvnM&pMffq)Y%!?h4wv-eXU@1efr0wfe>j{AblU`rHMhEesA`VU
z%i)XA`YPcAXPyi2&qTEIMY+J^;0A3zx?pIP&QlUt^9AZW$`ANmUZ4~sJ+5cxgXRyH
z3K-ozf$ZWGQ)ajiC=hrw@8|mi`(qMq&b2TQ(`uO1-f#nx{rf8MoDpzySFrgFt1IAU
zZ`pkK;|k}qi}C!1JV0rk$HAM*4YpNg|LShLK<Ju6f?vi3m|^%_`Gdm^VysOjpIvf?
zlt-Kf?Rp;2FS6R^%;E~qw+@?hO;yppg`epQgASyXdHl*ervvrfsTPt0+ORCHZF#{I
z@%~0Aj6&^IVUh6$#mrwV=y?6*#0IN_c&Yz!Z=w11yZ4(DXBPo%NKc6FK0*1X{N0^f
z{fP6sk;6j!UKQNl4?llhq7RHt+|+sMi07|&e0U?=06Z;H$J;Fdcyjd?J$<!d=>qk-
z3*x7X=jlMB7RnbUTMl1F_w~n;e_z@oZm(mI#xGok4*ZqBzQv9>NWU)+xLxwogRaj+
zzisp6;6@*zcLNF9KUef`7{<zja=eP7&u>Y{IZW{@l9z*Vjlqj^s|p~T8UG_6^<1Rq
zI%2jE&+?509>HZ!c?iLKEAm7h?L%TbH3?`{;FO%zh7<8gc^$4^u}6Jm%*Z>>$Mj;5
zhQ}Vwaa95wZ@&2uq>KS!acwKe(1Ion<*CQ0hm<xssqRuF2NuhDET$+|&_rpg;ELwf
zE<ADe>X(c_X@V_D=ei<<VlM`doKu0%eZi6=Zc4}p@RnHMR0l5Q8~F}$nt*Nb0*!-#
z0rYv5OE!=hLY($k4;$ic(79cRYhToZGPa!6{vC6$@15)6&Cvj@H$l02j}0K&@XHiE
z>YX>*PI=q5S^{=o%h4hc@rrA1JEbTX0zEs^kSmQb43Xk5y0WMNO~%h}@`$%9STt~p
zyvZ7JMr5dd*y#hAxRXa7tsWHD1bnHhM?8FdKMG>BhfB5P)pBiA0gfB8(@D;%;J!V@
ze?dkA@PzwX3h5DVadd=YWeagb8%wk7EA*h@iZ&fhFY*yxrl#d=l!b5GNx`~I`oOAa
zjKj-CK8Uv4ck7Vf?(ToiMw5u&&`mZ}#zbTQ9qWYI3Mk(evOc;tGpz!h1oSt|^HDy}
zTUh;OqdMH_%VjM@bMVt%84W*TbtrAPN#F8Q9ZrSGq#5fpLH?38yMmk!6kJ`pQ+o-W
zlTJbnciw2i%lSkVpCeUBYFooRM0>99&t87^%Tk2-j1MOsXVu}M;i&J~H8l`;IOat`
zf%>;sKCX6tL0s)0t5&xIlmOSutW#uw_{dzEtk3lU#EK|KR*l(#sw8RYi#|PAyj+*l
zGei07kWR_c5VSw_ta;$@PXJ1ESN#oqS%E=cg6)~dFKm`fMd+CjI>f=d9d{Cl4^ck}
zu9fvNf~KYW(7kC65F1>5p>E3zMcC8!zNJGf-IWG122MI?vv7G@iE?Rtcg*(1NVYL~
z4brdN&Xiy!7WSBOudibZj%xRVqGqs-3VNS@Fe1;4w+hXc(Fx{|uSU;Q@)_pMJNDH$
zn^CM?wmsc@B7B@}u;j5+R6izC-CQn_dIvk0a96$k*)f)`vVebfWe-Ea)zEpb<^;p2
z>>BDBxPeg`on>+D|BYq7Q%-*v)`sbgdt*6vcO1J|9M~Fl<p8UsJ6P5|F^YXB*0{5R
z^2)T*4mSk0<RD@4vljb#)bI1-rcI=ggv%tnHWa_qA=9^3Etgsie9S(6{b?ox1z96z
zslSL|fyK>~>y<q8`mL9|L0k>vds*YeONvm>ki2~&uK>fo<YQ8ra=_{I$3=P{?V+hN
zluZs1cd!~WQcEceV$T~xZ7vglP~UgHof=`F4_#-+L;gX}`J|2p#5LFtjFi?v+%r$U
z*5HY2oY1a*xUu+=8cNFO&U>Kq?d{(slS)ovpt2>evwocquGvgQC?BEUr-z|ZytWwB
zoI8JGFb8oLr~XrWK&1?XZ~AtJYWP9(-S58e0YUh*ezv0^odE*6ZK$z6+Zd)tgD+MQ
zKcZGS!lj<d2)4)zaQ@-8Fz0r@|042M{)+C5fA(7+=<Z$&loT_ANV&p*nJH_K>ar6I
zb2bADYL<Wf`WDbU@7>||%n*3;#pjn?^g-fFcl;S4ebkeyk<Ytp1O&_3a)qXbAo}l*
zqTx?Npd~L1z3XWND)5Oy+rt)GcV9dIHnxOV-NYLj$+qzNllwfY_gN@3aTuMWu>|w6
ztCx}(EYNf0IWLw<8(3;gxEB)U1fM=oCq3yh2hG&xsJ#zHh-YCU!8m6GX;mea_YV=j
zn3g!-=e{`@(dtEvq5Y$s+_AE8p&n%BD^EW_?|Z?av(`1h44f4LYljw$AgqRRC85{|
za3`Pd4-)FZ<d%(dwH4ww`-dxqL?BN0MIR%^d;#e3sH?ML9>#wEYqM+^!Urwnd+#sV
z3V~EKK^DiPAPC?WAH*ympRGZv9_Iq$w7Jo$W*|PDY2t;$ffO_!3XRHKLEN#%-N-F#
zR@9@H`de6qm4HflAESP1amb3is<x=C2<hhmd(K!6Vm$F9jL`h?dxk2}5#kx+A}X8P
z(79M+j?+=2NC<N428?Ux1z_fDPI5b`FmS7EdET`^`TM{F2{vy<Ae>3SUpzqlR9Rkw
zWfwVE$sAPptSAQbo%MN6Oj59q^am%8B!Q>SO6%HL87S1hX!ny}7F_H}3A3f7Amn?s
z4ck8<;9C7I(O;+x4gyy_C7vR$O^i$KH$CJXcVyVu&(nZ%T+!PP<LG|F%(!^+Q69V|
z(kfKj#Nbz{y*v+x7BD0TL=%oFBffECiVw;aPia$_sPkySRRXMXyNEoPpEVBuRwoaS
zxf-0=r}?1!hG3uh8zImhd7-(euMC))e*tQ?qM#Se6lRyFi1Kc_Muqx_kBXo2OWHyf
z2-vtD456M|Rkcp0pOOZQJWjK464C(g3~K6aeR<eO_qW*WP=FsqDm<8GT_EpyZ7z@Q
z>rXFK>sa5@fpbsrR;YW>`N8h;>-)cvAN7%lW){92V5}LL$0g)|&_$c%8=4CUKYJgj
z8Yc#QWadjIUXnl~=0tiLrv~`OWVS2xR&e2X+mOY{9>}hQb}kA!LY}3i(n^9MOg`Fd
z)}OJ4uP?v&UtuvqKD<E{+J0T&e+>;Pt7gd4qMh2BVG7pc;hi19$fLw9@cv4w8DJOe
zFF5E~AU=e~Wz7u(kcvri4ktz2?~I<UEB*!`E2gZ~ZHj?U*O_}p8qA^HF+ldv!4^~o
z%yNGEn*piZg1KD%SqN;i5W@>H1dp9ECp|$E<ey9@;2^Ss6lvQPI}-!2tR_w4lh6mr
z`%AR7u?Eoj*pQAy%N!`O429^&4Pif4`rqol4!jcKVV2A{g#o<b`_9H@kd8<9>UXsX
z+7F)CiR&1Hs9T}^$r&@4B=n*S*w+IrsT6(UQ+DKMd8tRI#|}D{2Q-eTm%RK?`fQ;V
zFUmt5M{2cmLV@+N0bUv&P;_Q2Pi+0fP(OLVDZ9@Fi6fhr9rmao@`v9!?pMg;7%X6&
zR*Ul68IDcoJz2nem+<$u$7m1b-}3Jk>i1NYs4&*up@s07!Wc1hoh;9cp=q&0?_Ztw
z*=YdnPooYCFRF6FNz5&3&lE0@)XRMHOO*#s<t-?R@_E6(Wm@!B7bB!HNYDIq-~{YZ
zNxi{+R#4fAUFp{20`72k+K_!FAZTxsCpSO9NU2ghv1p+}J%hYxeNP5R9X>fT+aLoj
zgoHF<erzz!(4!o6iv{Ktuqr0(R6w))m+~vy0mkl%eZUeAAKWUV@H6idgaF{PK1B11
z{yMpL6PKjH=|@kbC^`>{C9yLs4Wm6;@XZ@F#e!hA_(+O037vPMZ5>ZfB_Qek>wL_i
z6s+i~j&QwDhPfNxm2}0#!G=zrW4l2Dae#6x5?&&oc;N`e4aDoQXQCQ#We|Yx@0jT}
zP_8Y1BAvFmL<pwl4+{=em;v(ql*Znp>&UZ-$G5Ziz>c2ZK^bwCL&Mu$t-6FE%BSKt
zb-N%e=ZVU+wxa&hnp~sTTR9NwKa_hmDGTZf&negW<v}LXBmdM_7HBpud<pN61F8Fl
zGZrY%Y1cIH@RFf8yxd4s;}=$dFCfw;@R}E*o?c>W`6>smiflcrC*>gVlr#M;I`_9h
zESUnaHhlcMP(Og?#l4<aG=|pzB-uFdxhK%R=0s7{&O;lLTuS4-YEWMLy!Wl*6f~c{
z#2YzLp$b}_n}J%O3XZYSVOgW7Ctk7?Ka1uDS*1MrFZ%W2XKg~kR}2Os3^=tJo~uK=
z93d4clL4^!p6$Ovs|^aT^qW5X(}H#$b!MtGT{sj-DmKoN2M=+$^*~SyzKvGPWgyRT
zr1izWwW;bL|2^(Wo1g~p+`n_(%2glI6;jiX)*Lw8%O_|I%^_=pUbOa-30!)t7-`84
z(6vJsA-iG%bov)g2ZxZq`Ne>&U@zi;`%v*@4(mf+Sn0cGh}(YiTW<vU6c7BKSIFIt
z#)BF@-T1N2Hq5i>f)O7bv{$5gU67Q?2#K4wxOIy}z@Dd)CX+xG!p^75MxIE4pzQev
zIxo?@*Y-)~A|9GkQbp(!`$>VntV4a(dz547OsowGl7kdFt&^MqNvQet;=#QHd0;G9
zu;}!{htU6s&Bek+fki_rsx?&@LS2GWnw5p2e_l$02<1H!?w(Fn<RI_s-&<0v^N0&4
z#BgvQ@ss{~&s@m4ApynzjoU|~97)Z(0B5=z$}gXz$X263`PE0vn&I61u=4d>AT#Pc
zL~~~o5+G0dJ+hv@5@ktvNOxs0Fbw&ky>F|0&Jlpk@dwI|q9U+#bzo91M-cL4w&<l3
zF<^Wupt+=_4J=XwGb-HT@UcfLJ%B(2#QC1;k$Rqi<HSYHe3S#Ude-!}Hc%8)t5)*k
zTSZ~aHJL`u0rBN-T<Bv#`HMCQ31<yaP57~!hH=?fhv}t%aRz<TV97Ac`X9Fd7&&LK
zs_d)4r615qgE54UTz={GsCU(;&l#DLgn`U2S_0M48u02@c=Eov3VOecuWeM4uvJr`
z?lPwYm)c!Qi^EhP!XjCoj9&_p*?mpA+@)bD=8ws<IC<z87_WUV&4|+<^OJss<|{(9
zud7ZG*R07hYuLV>5ap%X@CJXOeD~F`GrbQ4kteR1#+Oe3w(>F~CK)EN%?fu|RT)k&
z<rHPlg_`AHc3hGzv_TMrOth4X(R^pB!JX?;HOk4_x>Ay_DT6Dg(1@xOGfuoIqwL{l
zJe=Dz2dn(jer&;K-kKrqGvK-O<dE)xG`PQ4iwsgaz^p&9^y7Cw#T--SKYTp?4?F8T
zXzuBVJnYm0gV)gh(WUZxlL3<k)Hy3Vka=st)U&5-4)fX|5X&7t@fh*Yofbp+(4I)=
zK~!+-F!J_B(Hnp4&;%Q*&|5L~3TRId!Vrh%%?ua+&F~li^hqyEjU?}3yPk7@6FX0i
zaw~rny}xpRPn+hraS}fedgw(2N*rPTleFrrbjO2(*1BgrBzW+L-iKbgWdM`jl3#jQ
zMFLbmZ&*ILM-DN86SBdk8<=Y${!QKP_&7zHPyRZG2UxnAr?d0(yI6G*_8l&o9jr%&
z%$X|YSq#yGO8nH}dCcp9H`dx&s~Cm*Bq>*~^TRnf{AwWJgJG-;+UleGgJseu*_D{>
z#IVK1>To?JfYZ06E&CT~z*hQ<1d-$s##&O;#JP+ZUY-uTO>-p#8Tx;MkH`t2TqGe}
z_y^*rCEDEk;6Vmf;Ufpaz0(+*xyymx3k0ymBk+5R6c6aqTo!%H$Y9{o-9YvKNYH-z
zQm14w9aP*6>a?(>gcW&3E!!HzeYic4wttoyqK~Ev+{LM&^$#vMZjBZaGaQ7zJs^h5
zD|qr!S1G~pv|K>Q_#-ANyMOyoh7N)sY1S~FFyPE>wE`Jcm~roU15Ts1C2=;rPagRm
z%He+eCm+bKM2vg-V$>iX)-i@U5vnrRXmLzG$t#DG1#tEeH1{)vxNuo9ckCjonc<NX
zzsnVwU2F>D)xv}4oVZj@g32UW9^Bll;<WPQKWwM7aXwiD%C8D&ny2#~VJ5T{akd4#
zxM-RBr*HaLaV#$?SO;o2aT@aJ{%qzffX~d06P%|7sa;pCLVY^iTo9ahx%dkUsY)~7
zb@*{Sw~woHX3_lHf^o?G&j@Bb(UaTE@-KD~xUQu)v*U`MT$dq|*uy%rD39B-VKM&K
zM^_)}Fyd}e>!x@;62zHJH(fj$7RJfFJY#v&a2oUT2REZH!wJ^f=jS_(YX&ezHh;WP
zs0*uaTyOs*H-?jgvFU6lGjMxwTYcEo6nZBK$^;#>fbsA9%v;);kaJokN}7rKNj=0Z
z-Y061__0ouVoC=hgRAftd-dRpZ3;ax2?ngpjKza~=>vaWp1aerHkb+vp~;615XeV7
zOA^q9QQ5R+MHA$^5IAgGOEm;FzsCFf?~t#;tDx$BvmrF<b2Fb(8p27`%Si1Y<f;5`
zjQ*~rF>G%$jb~`<0NLFTD<1+QF!7I3=pIELuJe{zmdCnKO+(1$YKlApPm1FS7f|mr
zufnL|vkolbm24(t7{e0r!E_(W-PLvCrL>(z&&f&zN0rlRD0h9Am%v{Q+_|INX0m6o
zBy+XHcMP|%^jzeh``C$aRWWv2lQ~-$1eH@vlA6REF4?}%9iW8!ep~;QobF&asna*J
z!svjd@TZ>W92;!o#p_*vi*m#ill4)Q|FD+Tsx`lvxZnxNpnwhXRp15J&b6Bh0{MGk
zt9u`$U{=7vI`cUVu%`*ey^Z04{}>B6A}^x6!<WaD@ixrxTr^8F^a>rAMVC78qP#%(
zvy@feAv)Nlv^v^NWPpVLa_q9e0p>Vg<#R(f+ShpJ5S7i*fp}=;$KM}jFy>buV84~{
z0Obgjl_4Huqw6(Q+Z|3Qp&`rhZDxWh8w=7iJ)4*iuh%1#N@QT6aG%;Zjt^*fai)67
z#E4gQv`m?da+74v0kiIWp!Ggh<~-u*w7KnX1+EAJr}lONpuD!Ju24oO{R)<*G*Y%m
zj22R*E`WtI3l!dtrI%&h$4E4%EwB@8V74&vC<Mg-C4_G7N6M^Fw1LNF!$l5@nV(WJ
za2zP_?8l<bK?rRlgaaNF1W>;+J$9grcnvKpRr69*koY<G2U`UZs2JufUdv*DdJbnQ
zN<ksu=p?!pPLH?`c8@ZGBoMcxt7Lzp@Gs_tIA2+bB|cEx)w>vZ_Ae%J%&lg?egiYf
z-KH^Y(Sva<j7Tp|=7+OqV!pWeiGn2F$MqHrn$PzsrciaWz_dmMCtoBV3_;T;j{0ZV
z@ZE^z?^0+!zMd+V=dJ*88D?r+T(VF&{blJ%kqpdyA!unA!9WI$E_E0>7suf5$89&E
zbB6N}Uf($dpfbsw=J6K+t>EM5hSrEPj2D-uZwipjqY!PMuL14X3{3-+k*|eEdgEXd
z;C|{yX|Do3Q1x}5E6p%~(GIh~fwR(374GI%@!kkTKQ)z}IO!uUWEqdMm;s2B@R~hE
z=h{d^0*$0LT^J9(n<HRk3g6i>M?FuG-{suxNI7?Hm<%JY)5BK>DP>{eSD*xAS_~1F
z(o_NWwemsw2W^P_Z>UjrR|ifh0&<Iy2R6a$TQ%Py2EGtSURnFDhjNNL?+8K+p($&k
zhJQ^1tSKq<DQeO4r##sn-UnKoyNsolFYzDjqWYz-5K|glK(Nq(y$1!Z0#9uD*>gTv
z3+*MQJxhx#eUaGmE{+b@;indHEGdlR|8QMhx{eD+(jDtJqDP6#Ajry{Kg*6wXt?9y
z@LB+;_GY%FH;5m1Os&m`yYUCJvc}|wO(4V#_Q=-U`pb`cYKOE=$Qzt;_gXzoKP^tr
zQ(3&`*)b;iNb~#uJ*>C%?yHBoF+x}B<tv2em~ojxm;RQUa^UdN^Ika=Z(%;QNSB@K
zqXS!UJUt^kI`H$`c;&*1hqD@trL;O>$4Ptt9ejtS!#%7I2vX16#mp`I#ObR4#yV7d
z{H;=kk7NI?F7#oB4BGF{6E7T3V_6b?wEirR<5o<@s%{LCz!Ce4C&ICd*vi1fvu+Fc
z(6{Y%_PppJhO}5YwXKs6w!7*RH}{2L<d)0a2Xz0l?RNB4`cD+ibIc$7LL~KP-S0eX
zH$|YB`uw}U);zFj%wNOugbnVom+wBU6oyxi_IGNUx#71uT_LLuD~w+*`Wn>51eK$?
zIto(gIrqmF&Nh=6`exae?mRjJB|VLEk@NyUEP6|<8F8jgAFJZ7*e+q7JhH?@a4%!X
znE5<P^Qpl(;hnam6fs<)&mHI1Il??=WV_QwOO3k}pR|1W1<GMCoM_Jn>|<T~>)co#
z{Ki)7e53lE$&OP^qkr=H1t~D{&-FFSiNM=>v$#UUdplSwcDZkYkNY&1pq}Xkz-k#E
zINhrS<2Ris<WZkbmwn<^;g&oI(<&HBF`)U!v)2<IH<5?&^GoZaA+*QnPMQ-!dssQY
z&jTN8khg~6(c&K@a>5HKW8Fgj8}8i{t>Hv9;Ll~#sV2|?1?>=`Bmpf5jeNgi#-$1`
zZ+|cvMCT!)9ioc!A;`l*wlezrHwN_+2+q_MVSwirna7T=CcORVlYL613(@>Kme>Vj
zn8O#(WWAvd*Rf)j9wsUvVzj*^hWL0d>iF~1ge0Jc#j3_mh#A__8`z4oW#Qw9S@Tq`
zEEE-Y=rW<bWo3=juN~wQGW@5EJ?@qTwmI)JjL0wQYd;gRTFnUUA{IgX?3_Sq(5HV-
zlMzZ}skO<^Q6t{NMtP&wS8Uj03!&%CB#`{)N(0RYR=D&2&occi>g)dwjSjmd2;05<
zbBr_;kpKSGZnpFeMxEpd)B6c-P}U0b-18KG=T4L+@&+i!qJAG#{*l4u;V!0(&$OU=
z@a>$Lr2yJ1pLBAh2!e5yaqERAcrf~u?d7*Vb}+xQoSo4}4>2$AdVRab0XzeVKgUIw
z;Xv(j)8RjASXZygOrE2Jr%g<5rQw{A-Er=sM>FEBygivGv1Ep+VdC2blJnT1WZaF`
z%`MDjY{rX*O2qBK&(_eKMxUb<&mhv74hY4y*Hwr1v5B&E!b5?7vDYm+f(8w#LH^2!
zq8joR-yTjUWlUzk#U@V*E?3EcA#P`H<h3w}-k(1ivX_C~3%KBdC^p;|HxA!Abp<#r
zbUM*MIkuBJUy70naX5D0T?<g41UemwzBnc1gC>yaEZ5<KXRTkqbG{V;_VOviS8as2
zdWFO?svJh#Bg@>1r5SBli`k_QE=0XA$B)<Lu8Y8(CT(LobT0jC#Ad!S%L@^wE!);l
zPcU*qmWD#EDp26lCe(_&YpQ|1qW+d5Aitb{{X5!oYtpAsvJg^$tWK)}_lywq9m9?5
zwd0u6&DdL}XMSOvHvBm~hEa~<ni2<bgBWy(8d2`*9$+qCaKCyJ^~$u@|0*ksZDU*g
zd@>9E@ZrwIi}?kOu;E&^Fk6fHHlVWTr>H(_gU&~9GVdzegKC*EtDd<D{9U-Cz53l2
zzA4dhr<1zCe^G&Y8KU-pHxX>}|9$J_kSj&ypD%*8>r}=ia!(My7_aYS=?lMyPrdS4
zFT%gKds}CftwEV+>+u^xcNl&jqaT592h&9lDhGJ&;r<qh+=7)0%)-4*odOfc772PX
z6>=8%%_jUUdF_Bx{CtWkxjne(o%t87>j>>D_VsrkTmo$91v8rgFZi#Kn5c@!3ubR6
zt$K!<0mCfCr(B#VOeFohza4A^0-yb@7zt6{={#H1p1lb~WVg59wYG%RMhSs4Q)cjL
zdE8s{lPOdby0=Zun!}xkYS{D(XdWI))@8IL2!{It?qR407E}~(UJ@+~JY|Pu8T6u%
z^rLh6?Gq`e#tst<T_XXLGj$XFyqth*(oCh?=7%SLw9TCAXhDUh)l*@W6_iGop8dAr
zfUu1CWBm<gpi1ttQAb}>y4_6)ddUY^k01F@5l^}7&9kkL-z>;~sH3x)!2wo`KlS;H
zjxh{v*|J)a43Hl|pGS3*7e0MzqqiSJ_rts5TQ^aDb2O8;zLrJ=CZN7XU7ZJ5&wUOt
zK0^mlEk>8~_t15gn36oM66NanoS2$q{$gaPMJZFad0}mqGu)b01Zvw-xpr^wVOr+!
ze`KwbL5$pv!!<@h_)g3`Ey{{K($l8bvp@0y8-7Q;rL7onjVnD8LcF1oNgv(5oAS^U
zL2x#9Q4B2J<{9Us`{dEy-L>MHNer`hl62)F1(5tWRoDB02Zyt%7SBG?0Y&R8<@Fs#
zn15bp9u&}po%`@8SXhk`=nFDz$HI}<tY}Bk&twauJo(sU9OY|$|6BUmJ*td&pj&~5
zkK}<$%>Pwjt{Cb!h!~CC*MY-2$wR&#8RT=H=?)tsf~QWAvPVRM@HfZRloN5U?meJy
ztK*agjTm3a8H_Y6+9mqZEGWUO1mA$fOGTg{=kQo1mIi%;)ujH{QqYyMCXqcU4^>W`
z|1nme&-dL%@aB0wP{H`uTAxxtYQF2A0$p|(oVEXG`dJRL-W%L_+ISX>!%fokUt55}
ziyB4O5))vv{Pt^D-4e)xU-{8T8A8IVfU55q+8~?%_MVc9I_M`YD80R_1)h(~4yaI{
zboKAlHeI$ZT#x-j%+HLxy3$sx)2@2pKgE8|`#(dtd$hxMo>mtcDP$<#Ul4&ecso5-
zqUS(hgT5lh)&ZzTHD8K;F$cq2HQ5f5rf_328~>-UF<k5%`;MtH1FFx?7WQ2xFlQT8
z@=CxA{NK-)Fa#Jvc2tW1V}J>i6|ok7l-7m&9#1~%N$SA?<(4T0;>Sn_gt$`Uw4j%J
zs<>rZ52o9SH*}GwCe5R|T#eHZ-g~L*72|Y3BA<iY^eWox(%Q?0vgiRO8L#FBsR)oT
z(qq>>#UW1bU)wyR9B6ahAS%%i0Tqe=ynp{E0<F_e)yXu`+ywVkL>%=!3QU-e{^R6E
zy+wnsgtt)M<hj*qLNPBiRom#NFY$rH-hA~$JS+JBN%`|$lNYWEKW*-N_ZJg_v%Gd&
zo)g{|nrPOFD*}ltQ5R>bBKYoAuaEI7L5UrsS>?7IFewjd>tf`A<WHOl3EGbkiIo~Q
zq{+kg7q<eR#-VvIUQ5o?E=4E~Tj5D}P=MCuFP#d=!yWG^A*UiWfeF?aVSg38kEwOo
zd-K?y4&ttu748nwf?n@HYGeQnq#3J~NAThSM+9N4#6>#L_-T57C6XO%NjU#RiSs}Q
ztNmy)ofr@)A$AfCH`M;vs#X7iycqt8$|=g#n8y)BH^<{Car?hox4zNJ!s3WauZe^x
z;-9aNxgejjO;UYEDlOvwWM!KlBfcT_F!D<zo-$Z7m3{O6PXn@k+%#Z8`=P-rW4gz9
zs4p+0w>};!3T?kX)3SF-0L@nief}^3xIppOlO~K3NYx~a>5Y~!>9pbLyaH@6w7yjG
zX$9q~qjLq!vPEH2Of$VIi3u(bP@WGYLcG_*7fiLtC-IrBoJ#zK5;PUlXZ=84c>UcB
z4!$OUn&;9q*DPfqFm^8@+D;z+9f_3fJw?1-dIR~2VU!<@Ag`L=L;d6CRuLW(b*L~)
z*mRfEgtd{)?<-RXL(eDU3>T2^eVq&2|JeYJus)Ge1BT#B*miZp0CA~)9H}&&MINw_
zid-@@_ck&5RbD)UJVvBihij#p@Nv@D-`EEO%@nz3)+u#?*T!?iJ{S27jk)~eDRsc&
z-ZU#a>ZRY*DY<U5sSYuZ<3Db$SplBD&gaEZ6W9n6UXrJ`ff0)DD(^qp0;O=`RizGd
zxLoKd9*k!Lq@szMI~OfMXK_R_M#%<-jx)mQPK{xDYfIz1qXqbOW=X5P(E(x%%TV;b
z8YI~mv|vNDVdi4qpHi$QnjF<v@0)7?4du%@n-}_EEoV`u9f#&34~&wEUmL=+i@mt9
z7=1|cC!r!-(*Z}OmKYyl2DqBod{`R91p_CoAwqYg;DWtks1xEet%oKX?S9||!d(Rs
z1!f^AlgK2iyUYN%1cv@85pvwcxLbyfRr?sO{*$r%KEwxB(`|2J=YjQQzK-BPlncZ8
zODW&vfv$p*va17V&$?!G*gq%$XK`-#dYO2kv(=@&`4uM+P4}_Be8&O$znQ~#shOdh
zx|bk^k{6^u#D%<-=K@~s_SwIatWZicP8hc*4jj=A&d&2_u6=CD+Tkt?b~i@EMqdhm
zd(+yL1}h#={@f8doFN7QKHUb!$+GaGvCwluN(K%J+s<Ci;)ki4_rY&_Ie@=o>bJlN
z1ss36vsqEOfsqye!204fCA1nnw<+*qLwRJG8;|PfVTWIvf8`1@eB-XHo)1QO_k;<%
zmI6``<`~k^eZUH8UL)I!Xs%u(_*N9h#}DFLwvBiE=CEO^fw<-mzc3658+XQ}@xagC
zhHXHV5(@V8f*kIP!JO1;aPJ2^90~QR(q(-fxYXIFPd`Wm!}2n9UvsH(?gI-K!h7ei
zR8AIZLx*$N9ikpqp(zraEj<PEtU5mQ_q;o&Puz+jQ0Dw4)3T3!=ye*)wM2m1zECCZ
zVseVTbJ&~rh?E3(H^cEp%pZDOSs88C1}P!#+o3ddwJquq#<w={4UxhP9><WIMMSu|
z!2>rX8baLD#GK)<-;_89VsQ)7N)DXaRav9&SDA4?Qg>b?3IN=S536lLbLPiSR1|&&
zpd5Bcy2utcK#;vJ#~%d@Tqn4i;CdeQN()HnP7Jlcr-x?AokIa4mJgiR2T*?`r_y_z
zpBo<Z>pyeA%EB$hU*FzPv4M-=<jBxNA%L*`E3aDlAmc%ilR=0Es4aYCY4A~p^$i~p
zE0jm;WtV+1bRBVNh)C1+kY}U0B6hBZRuqn#GJCBM7w)G@p;q|~8Q@!)r&rhKhiyMg
zwn1i5=n4s2Cn}YJJ^z67jQF~sZlY$ikMiO#$oq#HT>vis?ECb(8F_+l(r$I5{9?s=
zgKP3T6PUg%)g9Vm0YWJ$8vQGX?^nG_OMX=iToxm9=nZrrl<1$?wnGj^7w$&fja<ZN
z_-dH@R<B_0ZNHA?E~Nmgj;k-DZE1n*lsZ?<>I}5-o-wlvBgAp}ZtW{<kl;eNo-w41
z&0?DuU%X0K8OAKMd#ljD*u)mdq>|m0p~e+c^ptno5#SzFev&=fUdMLWRE5Y+6X7QA
zH{b@}tYV6G<ru6ndsxR>c6$HpUTht{aj5$)Esl|O{uRIf4~zm~`fxBY;#^&@S#cg+
z!RYXKtvZG+V@qqZ$FILXz-IqDx)+s2g_|_Cu0H>K2ZQ;!`TO7vC8Y4!c%Ank#i=vP
znx<J1;iP8?6F+=n1G*36v<f&1c%#3|@J5yq9x>o&C|qEGu+MbVb)=LylQZ{&jVOt5
z#{GJ?-p#Tj4`H!~{3t(2t2%jI_TvH?8sZ!xvr|m)#PDTBv^S{XfAFvu<!65qSQ9I_
z$ish1gJ){e*`e9s=lX?$9gKH~nswMy5ipzM+}(S$jX9Sq$hK4=3bcIZJ<qYvU=s~K
zaKt_5hse7%s@3I)e|6xLx3rG|Et$!>(JnE#N=%+gIKcwpf4c^@cm+ZJNQNi4ei?(U
zu4a7npBVVE7uz^%@Pn|`uWZRQK4@iDU6c5U@?HGOKf2e>0J~(dl+qajXb9T4{?L~X
zDCT?>%7U1Hk!db%tCkKzMqf93)$kz>T2kuzIn?8l?#??VBgQqWyKaou{>IJ{RI=2i
z^Fdi$)e`kR#NqsCA0LF~(E840fvfB~K-xs|s4G|>&bRAcEO@2^B9;2zj&l`3D6QSV
zA<PKgibNeVT}Jzy!L*(xCSBmObq^3j+@&mniv5%xbvU16`qi}s<pqW8@$K?-5#K}m
zsmP)MH0<(=-O<y9FN=TFA{&emmn8mU5xXf+-q9ZrPevZ;=J?nXQsfCs%Knvq1@TGb
zX1kQtRUwl)KULYm7<L<z&-bpGz`VWfrzUhCTDLIxD>Y~ig$oB48i&=PkDJF_OxFl@
zB;}55-m5_)$pp))kuj(UxZsJ|>%zHsY$rN?K^u2{D%Akut0X54`wF2sBaiganFiET
za=#fA6rcxH1i>zB)LKBMPWZYakqYqmZsP;PDW<ghW`v@78}_*d-jgnp5{xW+CilI6
zW7y=xKT>B<KI;?JSGU3*au~Zf7f5ME0p*9mLVf=cLD(By<H`?0uq|P1-|7(nh5G5U
zL1!31NSH|dIr5nPn9qGzM!twCav1MF%G<<*749XDX0t)wy}gG?Y`mb5X7Q;M(}$@f
z`9+~4jr^v#?~3~(c(69}d3z~a5CSI$?^v_30OzyS#@Ce;==tJ&+_g|b@Rj>2XYE4>
z@y=F9gnM7G{jvh_b1#;#4Sss8FS7q(KJ7nv86orxTV~H|952iWr^MIE16EPL{0-S>
zyJ7~A2?AcJM#K|$tDI^L-oW5|eCLX5Pq3`*f)&4zZ{*nb9m}6De6asoBvAy7u2m<y
z{}gKQLXyVOCaWd~#IzyU65^7v$He#*@^gaFpx43k5>EJ5XqnI;h<HSQ>neZZ1fiID
z5*vs(d(m?9zYw$?GF|i~snY0R(w+Hx_zET5x~|PwZ_NhF0?LZ#5dX|cX*K=!8!-r9
ztI+i;l7<T{-xBEGq3d_mXx@8L0h9+8Z@=~iaXVA*mGCD>K-4y2d?hCn#1i#<C!d|g
z@*c<TzRi^a_iGKjrVjEDPFm9N&s+pBi|89#Mn3DbCofv>vVhd&NOBtTXuK$5-2b{J
z1jV@>b6N{LFzA-#>W}jArS;=kJI4DMVN=?Xr=QM1QI{;ow^&n<<|bif5HbJ~vF@Mg
zF35Xd<Gi<`XbP5-1MS7Pjp6pA8#nc-l%Q?@?jWkU16i$?N4cy9RG*6#b<R|VSc^=$
zv|=@g>bsQQN`>~)+P=aAXwJuQq5qza0pi~sjYbrI(t|se{hzbgRDf8lLP+O<8JJ!w
z`sGt;1nUn!9_;0s!gCh6e{KzCF#6M=Vu#!Y8vk*eJxaBL=FE+oMgPp<hIXfJ)jtae
z(`otHmT3U7>i*Aehv~uIPj=UE6@8djY&hOoFo%~`*N^8<Enws#e@fI93usyE-f1~w
z12u*ArMNv4@SdcJf1_msY*SyY#$zqug)OUO8JbI^Z?gEv#M!|OE7#KU=e&@*G3;r3
zj{|N9q&VKo5`{wQSy$x>S>U{K?_Bh2ZXjK-b*@4^4Dx4$l*zf0a4)0q3<Jt7oVV7K
zIYFGcMt|dNhkJ+vV$HH_<0lV?4Y4x4bjY{KI+`;`#tBOkSDh0mke9=BX?8IY{a)#x
z%P`Jy!m*9$(c^Y`DBGMl|M<KNcu@by2r`p}cNcB%3h=Q(ys1;@(<ewW8>aAP3FOc|
z>Y@!-3*r%dzWOY56mf$EhHGWt%7En0%RJWyWg&&>@NsFLGJIFob^T@~2T`-S@1G6I
z!$XsAMO;IYfO&Ex{WVw?q>C$5%F*k5VQScs?UjcI#fobhs6QhqxmDSpCJPT9j+fl)
z<bba$#t%ZC2}0p|s=^B&K1gWKTd>@f0m{p)2TjskaGKM}@(1N^GjI>ThT5>fc!C<$
zQ7|*u-@q?15k&i&<Vgcx)W6-n?%bmLiUpqPO3gp?<ALtcQ2Y{GPG|^Ds||-q?7sc>
z$gT`8dTudWCv_A9$u$#SBSJpNZ*BdREra@vEn_?#Er`?frEHsOQUsEDev{=s69*?k
z=b^NJXrDFeLDiEg3R#y3RTwt}!M!$N|80;wxQ#I}$zBqMScxJ5<9<n)QQMV>MDruU
zKk*tDXt`k_!<g4CO9UQPWzA$D??RM5*8Fj>FmM`SZyHu`!^u<cS<NeAa9K@%^Hv={
zd>#|Kq&%Sm9{6m>I6--MV`#PVB}WO&_0KR-D`~<P=MmNfe<2unAS8!(LmZ|>;%r;b
zNyDEzT#>f#P!6I*U?i(s84N3p`5Rr-;DXMOm?sIkzK7hn(~sui4X2}aDQU{^L_SLE
zAW;HR48~sZ(<0t(%DGt2LLML+ldAW6F9+q%XLw&XFu~&Uj$eEch*zff{MJqM_s7=0
zW51TJjQGGG)iU_xz=wb<A^o~ATuq)Z=3rEW0e97rGIU>LkG@v<$3qr2a$etUKsiN`
z51%e&4NHP$oWqm#9Sxvj;4iyvuML`Iu15n{T_`H(-elBQ0*dlqxkE*w@Uq{`hS3c1
zRmf(RGpvzU_w?O+&Td+q<-|xqY6%DKE7``Qe-o5A?k73dQ0@)aJzGQdaD^4OPw{km
z;0fB}s8qzM-=)P}3E1Xs6ruvlWr`j>4Scx%DdFgCJQ?J;>c75@A%RZcypcC#bhsnA
zYj3ac5`qSm;m|${JrwKcbOhc<Ts()X<L&q&KwE!9{&*Gf6mA}J8yu2=Rg`H@<itM4
z-`TvJ0ri_-e^VxI@)^dgQyD4u(xE)Vr&Hyo^dl^zihN(0EfdaqNc_RLI}NV5#du68
za~pf}1fM|t1`!S?^r-^JwS;|_zejSb;V*Vm%DG;8^*fe)vxP701r09R>EL?=Avw-5
zFL&efG8wMFCiZQ?LnhpNiUw)sKs?;99TmB~7&_dCq{nm3V)T&K<DwC6jjqS>BE!3x
zWU$QXapn;rC)}hjA}8?V!|ktfX5D<okCPyJ*|T?z2dA@bEQ$I25nJ_d!a{Uz0fTQ}
z@q1cE3Rjz6>HKwi4m%t!BJ+Hb7Z;>ZEAjyOSjnD>slK7*#J&6Nc(I0M9UFd5&b{{E
zF6RCV6XMucjJOwU&JXR7FTzJoCNx6eH^x<5DvgRq21h_>7fOu2UkBm-Kh+tcxXTs-
zF^8A<a3!YCMRIxBaTZLM?~6Ya!+G(oGbeGKVu}vza$YHJW1ciFGR5B~LR@uH3CC4Z
zoM_<Rz@D3;I0!EHO!&HieKlu&EGR$-f@d)U#4;p6Hfd{)Z_f=@nVFe0Zd|a?U8H2Y
zgFJ&7mDEpB?^DbD0=}cD9PHhZPoqH|mZB%0xeUC8A%~e9LDZ1n>WeuQ!Al89lY1Q9
zsEGLGb)(vQh-3Hs6|b1kI^wVd_G_BP^1<5${*r5-g~0N{Ok$yxARJKFXltNcP?!LH
z3T+7DW4BMxsfs8=zy+NHY=Jub>m6OVv!xE0u!}<Fs4t6KjPdJB<^|oXk+un}8p;j)
z$JHMy4>W_aHdEJBK`A@#`psl?-Tm8U$WOxy9-XfIF6jKeJ$<Q<z7g>)*;t7zs};fj
zu27rGD;1Q}JkybBFASIG&Agw`%Ys4S`;m27<QI2}YdJ7i1nYNs{0ZMBA+@QY&LNo<
zYFWy^*qe#KH3<~0J1YSn98%8Q){}%xc`u&)>&&pxsihp4j`&vbYEIkxiom|6OX{|&
z2)jK4MR|2f@T^qth&V(9^2g^H|7@$mkqPC`g-T__qiYF?zb*@Tq?Rf-5q~XEyDc*y
z2yvktpLrXgpUeHZWYRNeF54onNX&t9d+{f_!B<leH`73#oQ6yu@a(Es1MZ@IN|!`(
zixuKGE!J<$qrUC+DG!cdA$Guf{?T1NPa1-X_1%LWal_M19udte9Eh{mV`o^1{6S`&
z_${b+yP+j@z5`DNN=us8^-DxRPiM=~XIc_*Iyi_0T<O7WtBTb_jTt(&nzj|UBoSxo
zpWoLiRq!x-mrHt66%;1dz7*6dg1(s<rNu?WiFaMVo9&Z<a*~enZ}>`3<(u(UtQ2tv
z8ft=UWzqb2$0uRvD|+r4FAw_~i};-TzELe17>If2VD9d$4VIsxuiaikTy^t=c<9xD
zRVBM(5yTxgo5N3Cdn5;Uf@#7ZX^MlU0$!g}q9Sx?l{yJ%N`SCswvz~x9Jra46fz2k
zz+r}fV<gJO7UEfY5jKcG_Kc_iKJxJd6413C>L>wQSK<M&w+i?MQEbn%OCpZeSIk@V
z_iS9gxT4V}41w)!pN3+MpkU!^+fEbWea!xh6j7IiBWKb^`rpW>XV98cjeK7$=_1Fh
zsMjigVno-~tOGPV$z4|5$b0<fZXVV~9~52RrWdlS!7RC#=En&m_#1xq&25y|_ILkp
zm6==%u-fVRw(Yuz`@NcI<E925?n!PYe%1nM%_+_WFaf_0N_))_7N}QaRjf3PIBU@3
zyKqqpaSN7Z6ekT(KBDL_<-`OIpLl9>-7x~Wjr9;B32SK3?dzEd0`T$;PJl9iOP{V~
zgroCO4ik6m^+pr$&E=oCOKJt<Q_{cMADhARk-&8$j42o|73po{8bb_T&!oVSCDi==
zz<Ku_>SgVSsAYSbf$)xuw~PkLDUjIzZ9rc~W0(oNTx=lmN(;W2wlxsW(#N!To4~5c
z-(zPNOYrl2v1}111SE5k#>@vq!1mePW9UE>sOR3bc#q40t%6nIIPgPMN7Lf2EDPeh
zod5EnfCO+W{)NizJ6Hk9g;L%5VT_KE)4SBSB)CTT`%zk5OPKcq-oJm(5aLKjf40?E
zE@RJ=eN`Wj+{Vc7ND5gN9$>=+o|w}rb3*s|-OR3<LoC~m{_c`QE=Z%AQ`xekhU$lk
z+uUehOjJsHJ)>6u9Aa^{-{vX7&(!ZL+s$Ll`%5pr+MXo^w)2zu*2@H-FLP<Dc!d|{
zob87E-qFHK@#R$RYEDq_&UOy5<b`e3UZ$fj#E>q`kkk2z8oXca6O^0rL#eWKbA%xg
zBozy*>#~yryJ?q5mp2#491j1!waJVNO!S45TW3J{P~0qkc>(*OCP&&VVhl@*r7m#R
z=fJ&8on}fNQiPYry9<}O)gWh$ru-@a0}Q0w9uXk!SUlqu4{|9%APjozcx!$H^Vnwc
z=F%KD^o%-==}Jk0vNV~%*>5_K?v*~U*~kvdC()K)(f3u!Yuv?ilL>Hf0V!DrQUH@Q
zUn)GQaPoYKZQD^hSf>`RfAQbGVlHD&x%QZtAdEjUknOV~7@PCCSM}{+N%$3dY-H(h
z7j8t$1cfs~Eo;i_U?N_yT;OE-HSr5;{2^+i<}oR7so8%Y@Ra;NSEJht&0)*bbgrf>
z?O|)_Po$|{qa5Og1!m<X7BG+wCHSi-3#zq^a$WQ)K-Qhhw0$U!KIdnB%sL|wYK^70
zu86_6)$@(?-JI}Ctv_2JMgp$2-nx7AgCF&O?vIaBNJIE`OI1GFAL`DpHHf+jL7+=N
zey+DFTsf_nphnN3xuf?>f4q}~cSd}=9~p$;3lUG9E#ma`Ot3b+LmaHhO70RRXE_*2
zOfF57Ksh~@&gfM1T&kn_?X@$L3Ur(wqW0?(1JZh<@u!znU`Jhl!(~Jj`b`pOlgmWm
z5#J`!De@;(HdJ&Di}AuPf6#xAY*B7pyg#7j72+gEUfO9ypO4B|=g{je^75s`XgVOC
zGH+$Wl!A&pgl#6jc!cKIOlM~pZ=hU<EJbYSlK?gNPh}pHM92aq-*2$QRntL%eS_O~
zbdGV}Y-82WM7}r$>v?`RCh)p}>;Cvq0vfK{vz&Jj0-FTS?dU-s5GcIDPl4uH=0A+g
z$~I7s$nknX44N|&w%Zq6&X9z)aFecnRwe)?MHit{#OF0%jJ}Meg@GvgEr(b^a2BEn
zVB<hJxL@uj>a>Co&0}11lYt3120t&~DineG)z$Ci=zdiDCV|$PP6!12Jo5-X2qRDM
zH{y~<GH`n;Eb`T3QK;=xh?0IO1m?E7xK$6txAbR!IX5K^W~_Jyb<U`-9`Zoipjrep
zzn^QMDnUNZEDeojc?tM6uVmVPECv@oe|OtKuXj*;`M3woJ9h`SZCuh$F?Mf<%(J^$
zVXN>2Tk>ijyFjjAt`d%NBzIl$sfD<J%p1>LjhPqlHknc)+NB|Mdg@$zH`*7Cad4EN
z>%T9034da8=+-GY`C_z-IkxEvsz<qw{*5A~#+RZ{t;$<(+$jNev1zG>p#tzn;G&_C
z4?Rp26JJvh<b<n?yG}>)h%@7Vd)EhXTKm5%I#QhB1UaclmfP(lz$aS4>3v=h?o<_~
zjV=no1x^QLCQTt&eskEqgyz7yDO*n|;{~BBnu}lX5fyY%oa^flr3WDc#Sp945@0q_
z+V{B=?Gx62zx>$G3?mAB8p5T+m>e=}5Th+U(0T=)TSwdupF76vOZl9T5kB(-|Jy7k
z^p^bz<@gs&?c2F}BNq}JV^e0VOV?k_1EZ9;g=c6W(tCgrts}v3vaB~<R1c1i)>$bV
zbirJW<w7aDJ|x@fieQ#dU+<g<Wx%i@TrqIHlZ-qp-5n0)5i6!3EUEEczr_?}Kdvw(
zA&!ITvaYcndQNJ~D_*rtm4v35DdqJ@MX+m?rLIDrd6(Ore0C;^u$fblK_09ML!K5C
zoAv1LAUo-3${+Q*>i78EBh{b+<H#fzqzJrqwM>l-s^H+8j<ZQn1jjTp&on!ANL+s|
z++?5t>Ke0dcpFNve)9en8?8LNmhNGwkd%Wj{Z<DqQ&JEhTT(RtL;+$iYdufZQ$&8}
zTB@m2l;3iUCl=ZKA4TUKj^+D?aeME*_sZT|&t;EPL}Zju2w6$PN-4>RREiWurIL(7
z#&btfl%$MAzENanZ+`dhU&rBi9k2I!@9RFV^ZcB&;J;BJ+n^*2_o;sU8aI-Lcc=1p
z@*JlC1sjJui8y~_Cp8`$jC+~(yQI(M8R`P;x?d_%qYd-PX)z3*n&4JD2*P-8R%TS|
zw_>Ia;@|6r-e8`lbHuYB-LF+4sF>f_xEuF>9yLhkdaD6~r2B3EpK37Z6M8044d-O0
zO<t;b>%yCYeqY}(84#HN-n<y52HzW|3m%B!o)KNWX@M}@GxD<S&uM2>IKR!tCpe%0
zwwjUw%B{4Zv>#_V>hSl!o$18^>|5=uVCUuu$9!p@T{mSgpY+-%Phl1QRic%zR%C4d
z2EpxgGeSj(ALpd4F0vQnzFNHxOI3nOxGzW7HesF~ZnN*M;)$CjVf%1$zc(Wq(q^mV
z_&Y)x1dH9Z+vq06DfivYpAm-EnF|+p{}qN94$8mtcASv+P{?OYi5W!Gc>nMxQbNUk
z%Cem-5-|4Wrj%DNFQ{j1Y#)Ec4#s(fel=b+FlY0*Vk8Rl^yUn8EFa*W+at9hCeOLy
z2-BCL2;39#*@`pma<Kq>yfwI|4f7^{9Cz41<RS#<YOSdMQ5l$MO^K-Dk${Ld8v%=N
z<_Wufr_TNH<N`12@|Wdb_@T2+)028!5OjZe$TiTc5)?Il8uk%9@SknSrFYHiM81_#
zZ2U=Hus0v?JJ!Pq4O7%nwJBn7$XX~UTSyenU#xhqaf1~Eew^;QV}m)9%0+TDIPXC}
zvO8f%lr+3BnR=8ZCIc(4u3oOVFAbGVxr6r&aG#@p-17Dm3q1I4ll1H&6OxTRWps1o
z4|%9WK*`L78wVJuh6;8u0d2j%nyl0s!Ce22xjL$exU!I%C~VFEb<?Y3=JtG$vx`6L
z`W`&bQ=G{2=23>G)S`rnG8HJ6_SI$8mWEjBFD5aIijZ`wCgu)>B7FNa%_^QL1M=y6
z-Q9!aAl;am?r5zPJpQ_?{?H#8c=<Xqr%Oc-E<QW%^ZvUG=Bj!q(mj>~w%8n(e5^zH
z?)%x;%C7}ym2cnsiF2YK(Tt6;y)4jj96K+!M;3E33=*BNe@kgdZy^xh1M-&6Jl4WK
zUNr;t)|z}4C=`XG8*D;wjO9?k)gTUVvv_@*;K2QMTiLqS_<WdEEoMmRpob^DX@z{T
z3~;(oKOjtq4;G@YQ+%wTgqrC2ltT-w;Gy}S?4Kceuvzfg?J35H`_t%###019dC$FM
zz6TWWkl?C-5>9v?+2}AEiTk^bY)<;g@Z;Xy>D0&LTo7p+diN>*d6sn?1H}wCDCIhw
z+IyZ8-h94ld+-qttOsun+G2k~-9N8hKL$>qP2pbpn7{#^jHhFo{3^+4;QyQ;MvwW8
zluYWIn3F@T82X+9_s!aA$z53#0e+<mKIhT|;P#kxVEZ?Ih`T0g6@=%L15-JMJMq1X
z^8IbPSp7+|@S#_f^Ckxby*Tu@vYiD=uIA*lXYj(m%GEh<oc~)S(&D&U7l=D{S3aE^
z=_N`-a-YuYQo^6xXV@G*Fn|vkGhrgpOq}(T7aVt4C8R`kTU-}@k_jq%ZO+}NgDc#&
zv3ZZ@i2PMS<CW4?GVs36wPK!aLaVUBknrWe{jV)gFVitW%8scs!dx2!%dKXoZLTF^
zv$-H=eR!6vc`nu3=*9q>55qWwk4_Ogn!Kg&wyzQy|K%NJoBB!y?4jYj^LGvh;VAjI
z&(p%}(<1s?cd3Be+o<6Z6C-#!yWNUrUMGr+t{uFT#0?|g$^zDZ@xiwv+|8FdSwUCn
zymqz)570i%e^P3K^&u9m^3$=baO}acN)BIoD6-18W-sa^qED2e=7~{aiFv8&eB~c<
zlJRV>L<uX{xaL*Im&_3?ord}!)dvZ-HG8KvD@Mqbt>ERh=0ZGPMq{h^IVt1leitlN
zKm;z_x}jV$L-+tCS6$NxvG`z_u_k?$(DF)8-OS(y3){G<gj<pjAbL`NP=gU-SJl-u
z#<(EsujA9}e)xOkJO7MC4dy3G%fG4}V1{0XuTlm{tk72)&C-PP1)e%((HHQ~w^pJX
zF5$h~r-0SQQ<yuL-nZE)88Ayoe@|7oWy6Z7_i>{zJa?!}(m9({3PIQV^N|u3oRI77
zEbvko&kKvY%Cu<k`F&upSJ!-rNG(Y>@w>c0L>ZX=p6lu-8wT`^I~bTyChIf*WN0A<
zOjiS6x(pL*hs5j(4>2NMYVHsASU1u=+fLPeP6$0c>(dfu&yIYY|GM;C;6)srtk2cN
zCrQTO_ZzM2g9K&E+VJ^nv!v<5lYLCQljP?TW7#xuF{CJI6?p$TEeaqqO@DI>B5f09
zS<PGybWPfIQlovDyu>`>6nlUJy)=G8vs;Q1E_hg$WN$E{=Se)mUSDa^SqmF#pDY?Q
ztR3Ax`;Q+D$e!y7^X5T!kL!OHzR8c|YM9LhPw^sFim?=CUPkn6yy}Nty%cKFmX6<f
ze4CUO|HUMs$%*W01fmMAbEA`&w`XZgIMC0~R}L?ZaG*7UdO7zc3wT_t7H0aw3pZ_b
z_N`-%(AA%pc@6&w!f{6)=HLxp*t_yh)eq|y496)A=|(tE*I$ND)E{V&(=%rt(|v4+
z(_k}+X*Gio;~P2ry^j_)Y4eW>bTFgG-x?QB*sYS=FKC-s?Wh5zBsbUTu%paU<EH(t
zYvgpUns#6FH2G=KpySQCVX~*_Kz+VD4f>R6Sh>YT0oUw*dS(8YBs{Nw8<fsmBn}1^
z$lbk?O?K{be=%y+M(Fs_l?n7PLiUoBp`>vWc~GXMM&Rcsk|D$8gYlaVLdh$(Ff4nG
z_}s?U@%qp<QTOZ1I(o(ktlC58D{&uUqsxNMKaEauH)Epj!7Hm|lBJrz>YgQHVc_|<
z{4YGH{?d|f)0_ZO`4B-0%CC}2O?$iQ!{<nJ(bKBFj0X*8zG}&(;e`|7=6^P`D3JLc
zYnytuQliOOUx{Ch9flfdYoCV<5|{KQ9(Re)kjEN)^sMOU5miMxDM9~{{4XhJIA?u}
zup3XHS!$<4ZW3>W>OL(J{^Pc$97f{k9Rq*=Yk2|G<bUSIp9Gwz>T`dm|C9lRR>?fA
zn`3|&AL-Q1^BizFLGaz7Y&ux-TsLyqVn(SgXXjR~PLq?9{gEB7Sm4msct;$R5vuq2
zOjCDm5X`>WEDfa$sFUr=PfPqQ>9AK)(mDZiPNPlLcyG-R^PdlK6)~?660Fx5qXQ|C
z^P#?rPT}<MPD`$nePNBb=AN1H={h}HO!9d8UW*oqip_J}ZCN6|y?PKJDn<o+GDve*
zcXmYRAN<P8$B**6<c33Q_)%+xb%zxT*2}LpgB>Y>_)pGTPd4$P7gt|?lRM0T;Lg?5
zzkCuXLE!m{iK`T9KU_`Mg8RWU&*7WPg>`aW=xtQeew;5;ihKEKmI_Iv=EaFx(xOf?
zugFe5LFByuRJAw*7t%0)Ed22|3!0^f{x8m-4rwK9*X`w`N4D;E8W!P9s7Q8vBmFH6
z+8?7DV&b<-{ytbS8zY1J$eXLj;<Kko28KqNKXO#aQtI8&!@9#{v0YC@_0mUT?#N>W
zAD$`FrPxPvw62rbR@dgrdoho>$ac+V|1A@LUypF#@a0F!KN8tr1oNWhvx~u5?W}0L
z=ZL`I(OJTD)V0^9PzsG^?{qryQ53ztvfNkNumjn!wwF$@bE4Nehh?j_7}3pQU+kt6
zLfkR5lVz{?Q1J_wd$$^8P+`VRgPtxfbo3x!{QfyEl+0<X>%1U>3?^2`4Hkva!0D4q
zAI^%QcR_Y2zeNz8Ew=Y*y~KycqAZHW78p?fq*MO27%B9_FgkwUZei4>MV-zUEQvy1
zKix@fERUG3_Q%^*@FFYEj;#w4QfR%!(jvH$7wsuO5@FTKiM%VnzLv5QLhrOvP)0U2
zvY2drm{UT94#!vxf6}AJzt8gU<`*{P&ntgDgpC`$jyd&y<%c%#ZC<9W#d&q}iO|<7
zYx*GKxTBAs1?#MJvi@6`=c2z;pry?P^VzJV*BgSQfRW2hH^fsN1RmSnY-`5+Z-=#p
zSaw-3kz3~#bW;M4U%ny{A<9s4+{&v9_a`T5ZXf%9pW)4!#G&9A6<~QuttYLhiSv2O
z?F_G#;mv55@FbxF3wPCeui<@W4L|?GEBIcs%hKuaj(RmHsXY{M9&?giLQXHNQECCT
zA6;%-tQwd&6lOnZSA<2qHv{u^T5w2K_KkD94)_MJ#Awy%fhFJ715B>!&_^e}a5+d3
zcF*6rJi&@NPazd?vS0wmLXT!T^l0H8TaL)Ls#>sheJE=$-e(16MmeowPF14x-$un)
zePADWU3Bl74n&nj(>c~DV{TIYJ|CnGYQh!ueN|ErfB!&gIM%yIegD(34VHtzy5?I|
zW|$`;|9B|zqX2w9b$Ve>$PQ?{YW8~Nybug8ohy0H!2_{28Wbiw@E)F9wN$)|2?lOC
zBtOD?gRAL}-MuiMD(33&Qu2^8l#Ru^yg0)FS?jk>j_j9&f*PsmS*+vaWP!{UBkqGU
zQNAD&ihHQpAB;F{h(UCuZh1JJ2vlTTN?2*b`$&VCbIFvrCvf&4I?=!a+%Kl57hQ#c
z?y*!+Knn-F<FD!6Nr=J41%lx&)^WXecJ$XjkpO|=eeY|ZO2XBluE5|let72pz{UC)
z3;JSRSJa6=-^Qe^ALAuf6mxO)*STL*D5r3CRA%>Q;!9E!L(x<z86j?>ric4&)rf4`
z+jCUtKmPl_c&@IHR)W8_&3hI}>ZCXA)+&=kOKCk92+fle#&POHx4#kLiYz8N$Ct@3
zfBQ2TZ_uE!a`BTYmuL`24GQzj<wnN)m@eNN;YNzeEbmu%SkUH)oVWrn3S{e1e)VoH
zHF`UEAm%k+H~Ffm`}>$29Xd8PEAi{t2x(#*g1Q>;^E<%uX?TMIbk(~O8F0QkIjpfF
zK!XR-E=SvbY+^&LH}@(%v)UvX|8V_iS)m5ERU68}dM?zlSL{P}9Wx5_A4zmC{6`#I
ze?6X=vr0<wzvr2GjrRc(r8#Q+dT{7U6MBKvAUwqG%GW9#aG<2DJ)nzuYkhrr&u7#j
zgP?V=Hdh0K#9gNkII05sxw4VKt2!X$p~*cur-A!ie3@u@m9U<idpiyHm!*n)a43Fg
z0>*vkeh6d!Qt(9o=TJk;QM#QpHZ`pRr^m%Q^as@7tZhU~uY@MpOzz(E)&T1dvpkL^
zG`Me^;x13j*BwweojY<~R2jCt>`N!G&g2~SN<3~v8}ou|9Lq6JAl+q7_zUJ`Wjb~}
zFCp|{F?dt;m9!bGRd(FzXT`dE)Oq42voXY!NL-{EBtV1lPKvdOCD8b)rd`B-3vM~B
zrP(nP7-nDU@yC6F)x0(;tm53zWRNfWG+Yd(yEZ8n^S%(Ww}Y1DqOOvQc@DLmu6QrA
zc3>&djSG0XWc;@xIpNSH+mNPgUU=WBrg=$86q>(0<n+c|-S1;6C0BLDA@K82Prf~v
zvuNr*dh`@0#9D_Iu7}eA5l1T^93+T;zbs|1nKW2d3vc_($^iQ0*A)E>`v`)DzfE<?
zfs@THFF`*Q*m>ZAe=_a~Rhw;|Gn-cf@j%$6@JkB!05()iI7&lgeD1X+>_?>hNx$dJ
zQ!xl$ZIqxtAp>_WzO23=B>`u6%})y0ED=7Z*!NAX@`B@&u$;6JPFV2C*%_j)jtwgx
zFAIqC!<cqmX2E03X>kAX&4QH%T^manNWSxtaFb6Be2^u8s)lyc@}A^JZQ>2S1r}mR
z!|jBO&_!|N6LEXoFPa-2ak%b&^0zcn?G@Bsbr45mTavY|H>A)Rl_KSx0sN>((xY8#
ziv!hO-!k}xb4^Q$umABkDx*8G8cmvyMNsiIyUezCGU(QLaBUo&AgXY_bwuPRC$iw|
z&2FkVN6_z&TZ<aS+}dqc6ScBI;)f&ehrvdCKDxcuKc>%$T&(3zoOGl@n?@_|o3j~_
zX!*;A9eO;7d1^#~5#b!xSl1Az!YrYTo?h|(N(IKI_w)8A^pj#0)hiCyIY8*ZN79jR
zg~&b=?ZtPJ239o`i_dmZV(#;`q`EV+gx`f!r`8!NRC;RZ+&pOu=XdgG^ou)zyJPpk
z$=rQ#J?U43Ppu=+l1#}J2F_r;*Ul{8-v)l%OZ<>sYYA!5de=>vtRVkq!4q*88*qM^
zrlbni;D6eSP2`aSv`Qk5siHlgwiGKK_{JWx_%dMcKP!;$3bZbGXAT=0l|1r_xW6lp
zt#*3@;7R9F8@-eXbl;KhdKRe<*AeRsd#5q<AFvmVFj0e~ylsDDGZonGE9W_Rfq<%e
zv}c`*&7d|al|ole9S%>AC3+k%gJ<nw)6cXqm+186a>ryFpp5>|6#fl!fXYv`UO8_A
z{a1=N(w~?@P5JG`SiE1_<K7S=`P3FZrt#<xa9e|O%a6dSP)k@nbpM$)*1_!Ewqy-E
zF=yqa7FVl>I;@rd3fGR2hol&aL%Bujzy%KVoC3IKk?Cl6uZj+g$8czLFX%x?h=RwL
zJ*tpM#(v$4b&|WM?X}0aajvcRP4WIN9f;mM9Fi-Jdw?=Vw8e69A6a^XS`vP}>t~(L
z|M`piZH4!Q9n3I->RsP|YF#r19q#oc!H32ma3RuR;g257SVemB${N5YiO=zwL%2_}
zSd`m=Mi)$Lcv#28bRpz%kwB4=E{F~9;V{MeXX1c+v@C-<G~C`0KY)E3yf2!im{PDl
zxHJ6V6>lXtEc|#EufGcL$bQNAMQVY~uNlRMg36GUmUR2>0Ol6EpXdIPC=0I-+z|Xc
zDgZ14gEiB^n4`xb7Ufz&2XlM>E#JJ#1$7?=D31)$!TgFj!*y0+_>Vrn<6(jtJbT)6
zCtVQp^&hA6mYmQ8;auK|-_shf;xT%vY8LyGMGouphwlW}u++QMSf5SRcv_|_rUd>Y
zW!I0$%RpsC(Y?@KEttRd_~#31{5hF$oA#tO1*6HWP1+QIeGHEs>Ma5IC|wIQ`s5-0
zU~lUFHB+Ew%<Ot$Zvnbmg=@F5uT6$~yz`a29c-9wKT9eRh4!c2{7%?Er1a`=>|tfB
zhu;%^KHtv-yY@2={LpG3bhA%R{2J5;rn`Pm4{8vgkQ~sG^40*vWW=r2?6JS+Ok`xB
zxhmK`8_(_3)&W!d(ZHkEb)YSM*5wh_rA1P|35Ma`mrU{S+L{IfFl3=+%}kaB)&B2Q
zeJToI`mm_Lc0m!=c7K`j!`!kvx5JbJGNhr~PM#?cb9#Rq*3e=Vl7?yy(l-M415r>?
zhV}N#0`>Xtjee$>^JjTUxbZN4e<NJZI@YPcp~SNRB}cLE>FTrdTDYG<`G~1o%H1uJ
zMj)=<q7!q+oXWeoW)xu}Lhrm5_BC*l#JTBJ+&`%E)*>A5`zq%3WCh|duQzdsg)Mal
z6eSER@5<E%fnKZ1M|iJa;j8tNl}`=k2V!^Y;B&3w{LuOp8CAIFF}Z^aKL@;Nq0L5?
z8sJW-oJ;+`9zS(L_z^uN+^wXWXu>)`hVY^HM`t-vie92H`^PylukVFR-Ya4B_k+a9
zI?mfHnOrN${lkg02hGE59kxiHqANN_zP=(34DL~www@#{V%KAMYB<oLhk|3J;k|@+
zkQi!P6h(qN^!KG@&>%QjbgzS-5tu#(t(H=)5{m6@|M)Mmz;_evkIuam=!kn+*YYRq
z8%<Q)k(Voqc=^ko`DHKxZu5JT-!MeJeVKR1GMXNgJbg6g%Bg_z-l6Usd|v!V%Umzi
zFi#5mv#b9sr$8_6O8&mY%Z*Yd&6?*Vc@eQDqG=_?fWAc)*gY28A~U&qJl_N@k%uOh
z9<D3XAUQuF&h5p2#B}{9Pvwj?LX>$b%ZytF_I#F(H_jG>S=ya1RgV`F)HFv~k@69;
zfbyb4b1XY(37qA4cj5nj)xeowTimexGQ2xuFC~&wOr!Sl-z3@F13RkkPZM#}qZfZ{
z_7Tf9b_I(iQjk{G7MSlgPBb>E+f;8dBX-Ip#w;NUB;+?#t>n8wJQLN7E7xWQj&<|&
zN9j!P^-Ff56v2bu`m7FHX^En?yE0MCOG8A<Kw@pBw<44bTg$~?U`4g}DL?Hrn<oTv
zh2q|R7C~FB+I50w6yQzp<g2Kh39^Zr!&Ch|E$mFq9?t2b11Tz-T&FxL$S4g=eZi~*
zjk+F+#mSOzd%s!1?|bwx#US3Y{D}&b{5dXay~q1I`9VVk32)Gu44Y39JpwP{hEHaW
zc*AmB6{{DAH}2cDY;5540S!l;e+hlgaQQovk_?p>JX22`B0LU2-&qP78){d$%D4Eu
z8}ma>B$n*dU_1bEX9wGUTyujXVt*1&q<g>_oxJ3YZ|<-|=89~fwkt^5T?}j7c?k54
ze`Ig;xPr!S_ioSiL$G5B{mTgU0z>ZRSK=<7p#H?;wzr2H_I=*0tMoVw_T2mwIo^lC
zb37p6H1}ahA3u5_+VwC@JG{zamvMmyJJR2W-SC96sMDIyDcwP`Y50=o*nWt#9zA0x
z>;mD!yJDVax<WMdi+u%auF%u?nGi5>1+kBr$KMsZK=fxp#e+O<kSW%#dCS`hoZd&?
z$epl)*a$6`X5548C`MhQg?$`0na(u92Tj2(J;CIBy9I1MDSCb;&;p$8hs1-~O~LLB
zx72=|ua6SUo!WtUESGv;4U{JU9Hu%OBIk{BBBQS#tQ<4}cYkAt=|U3-qf_9QkpoCb
zvS6=>SA;As|8@#|kMpi`J0f-t`-k$QCzJ5=Js$Pde)oOMS>vTDIwy_$dFezlBW*N6
zGXA%fU#S+L#dm2NH~#MzEvKD)ss&4R6@0JWW8Yzj%ZwP88U~iRT3IOKyghH{cA%{?
z$QNn<FvIscZf&XvNxV;P;5_EG^DxdOam}lokXMH9TBGUbx3od`RhKv&-h1hKT-99p
zi~Ys)ov~|y<`8uxG(7f$8HDJ4*bKtCwf*w@_LX~ELhH{DRDUtA#!mfKL;N!4=Kd4e
z@y<{d_roP--MdM^ZX3J9bC_Rn_U96V$!!92Q|Eo-X#uvs`zBl(!(0yOALd_kjA8Ck
zU(g5KN1Um4;!!^@?sI&n%a}&L3*3~1P1Eu$pgh&R{iCV{d^rfuHwr93|1u}F{$D!~
z_nHhpscZ#-Wj#_npKXDc>ElKStp$kM^8{|R+QAre@SFK5OIUC6>j_iX19_*Dzg-Q*
z{Q%;uPD4*kVR<2MTqe{EoCLmC*+dvXL2UL7V@X4}^(XlUkKisS*Si}n_@5bw8;Cc^
zGT8$#&hRUkn8M`_;~vo=Q()d#xlDmMzEZXQ;raNU5TQEj;v8%YtfP8Op=;(){q1CU
zi<K$(zWYAb#<CN>1}?Fi7~=e`kD_<6!%oou@L(tb_pFrfJnen`g$Z2u)~=!qG=vY=
zczVC#&*8w#vCLn)wP9v<Z5ssv=Cr3MzC8dyovOXB_lX5CB{zFWx9)_UFHhV}J%D?>
zclIWn&jlE4V6b^#OF(bkyB6PfR`8DGXBfwN$e~dGyUyb#a4vN34R$;yoD8~J8SJMH
z*SgNAZVBT4zKa3R&o`^WlUD7fqjlO)9OAfA8ioB3?Kdr(>P(=+t$I(<eiP6=XzaBA
zxjMLipd|e4)Zu#dPNQHi+`H#@<MkXqS1rXS-<on`J*8|(<tgUcq@{m8ZQm^d2Hx7Q
zI?ss#L&KXYuZC^nQo@-Ekwrc@5KDW|f_a#jXm2|!rXmaC?(XS{uSIcB-le*<e{yiX
z+nIP@$PaI%dM>F~b3@Cc*G|b%0uY<rG5J~$=KwgXsKQpTZt``Yy5|$-l~HCgCd&!K
z$od4Gi6AxPeL^y?uzz3iz}1<D*azL0Kr{P#N*c5Ui*vtZN`ok4oy?toQgHEWP4oOK
zS)e&WMOk%uny|CF)b}uOo(zbV7*FwGfr1@~&k%EkCfKD3<4zuMkR0+6lof%30GaD@
zx2fUfiE}4+88d-Mb+%%w0u4$&cSrFWe*eze6`$DjQUsdXV%MvZ_<o#bQsv%-`>Dc@
zpKQgv{+sD#Ct6FS;U$Ma(LdaK@y}^m^gE*(>~rZC+|z9YeC~0-!k;tXc~IcT4b0J)
z{A56X;DG|XH))fT(c}bm+)`q3VVJmNd~oT}J$2A)zy6@%x&owwaqHb;Uf>#d{bi<C
z7-Z|I<9@7elm7dczy5KeMkR~+kAF(2!&|CQLNHbqs;r8=Z~E~=n{!+5fy!CJSmv$z
zB^M2#57<jFhW#vQKPrb@*>Jxm4Q6QNVZMyUW3RkP{Jo}PniVjG=k^QiL`bs?bn?o4
zn%kuSmSmz*RXiJLe0Ip%aZw&<mpEV5<jcY<iXSWUsd#^P@6>cOryeYYWY|7-)`hn>
zJqK7`upxHEN|e*242i}X-CpsG;39m9-CsZyf{poa&M!&BiMwnk8Rq5Sz_@)<N`({%
zbLose>cO0d$Vbt`h6*s&^<uYsxhQl@Qf+=w$G#HR1lq$lIB;&EFwt&5H;9J)@&B8$
zL{PHw(~isP09(H9N3F9H#D@;+2%1pb^TX3HaQ~eesQXylO|?~lKL;u!ctIO}SJLLZ
zE#U&fUU{xHj1Q<1N?No3;(1#-eCF+bU04!09#uSxd$6}E7tnF6E4J4D{u`zaPagFI
ze0G)trAI>J%Usxh%iBnX<J>{XlSwzTEe#Nl)s;B<L>t0zVnvym7455joJ$+Th7P>R
zCS9C1NTGRUAz>z3^zX{g6IHA%h-+fFd)FUk6!7D~+ndMm{zuC<{zeBCQf^NzjH|=k
zI}fd0H&0g+XFk3)bljpwuKQwp<;_RQ`{rA$V%C_0<+QCOmW=ss47SJVR%S`3+w>;C
zC9=sT6P5V4vX4j`{qUbXFaD9oJ`Hn^KAt7dIMp7|8~93$q`!*H*8M~1sGjZ$;{Q!j
z-@DXbfAlY@&?0BS?b<=G?zk<~(YQ%i|7n;Nv}Q+}l{+ybh7skF*^X_DbjV>ykbcCC
z2fYw|e|d%#>r=#>apRdq^3eR3Ht`Bhq&zYq_bi?fjrQ-!`K-u<j(3i2@#}ISF5Rem
zNPUKsk0$kx(@`OX%8rbTbOyxA{ZRSWe+;P2B}IYzbuVe4h}!k^7D(F6K9PsTBIr?#
zZAK=&AYz+}w)0bEM-^N21+tyosNfkkt81>3GXuuw%|7y@_@*vvMmuq2Y_lr-*Fy@?
zn~;N-&r6}Z@rjSV&Tv3sQ^%F<z-_{ISjw>3h!rje9W6U5HA6hPMd|r)oeR>Z?Ad&5
zM#*y_xmPomd&u=FiJp8NYDjJVa<wCf7Bq}{7!CS13B7DRqY$=r(z`ipc&LvF<oDoU
zWAQxEZC-g^^(r@VtD2yK7ZZdxInp%WM}fG;zgnA6aiA=zu!)uxtV`ZM#PDQY7#-ov
zO;d4fB;HYV$2Gszgk94Xchc~j;*sYX5MXBklghyl)SOIV!>vh`1?vD`ee%4h1x!H7
z<mXtq559+YXY6?}WdUAY$MYf%+JWNegluWOE#wEiec8Pq&oy%2#Z>PA6yAAr(uBnd
zPA88HddTd?K7oa-DL!+!;5)<h3iF5p!UC6O%gjJVP5PYL6oC9rD|WBD<`CLRr5AII
z0H2_`I|<l-;G|vB>Xu~&m;K~gM#s#7E9I4pIkP#W9=!P?`jY`@*1YlAHpM+;VtkrH
zc>ul32Mq^>?SZb-{rp{?U10m?@;3WD3s60z$2!1d39d$3?&f2=;9pLY9r|Pkw4dgO
zrROc+l$=BL{E#KEpAdf@X(<Vw@^(4b929|bxb=ZBl{mNz>bTAe@jyXI&Z!Q3zqEe8
zuT1T`GKgI`_3y2-7To;weE!UW2JUseCzy@zf#)=8Z-(>}5PzD@#zub!Nd5ONfgAIv
zMC5yo`@;1>>F*4etd1sVEvyJkP8h?7?_O8bEYzV}{r1z2vzjnG<iPKQ@BN;2R6hGJ
z;qT8}l`rNO)IrBD#)MrH>)cEFN2<SR!L^dO%flV`ecB8*o)I>Lfci=n`&z8;`{z*5
ziHd-t`ly|flqeVu-JP}{&;qADK37f^Yl3ov)D7Dg_}-s=m??Nx9{ak*^im|WAdXhb
zEj3F6)SoAvzPg|ShP-7(Lpb-M=$AG<I3^0R6b;<1?26#^U%iDu1J-391{&Ntq75pn
zR78XvKJPVys7JBRKS({{C@U%lNi9u#pW-~Ukmj);Tt3pUE5X$%{IfI|TZKwobT@`8
zUQOE%-Wfu}9M|mZwgxZ;ZA5KTYGNMf#&V~T7O+JGpRqDig5B+UBVS4Ued~N~@q@Y^
z<R4RbRy1V*<zKjddsN|G1Y^_1dL0>1emcb2hjX#qar))dvbc9e;z6eBRdx7Nu@u=q
zA_;?kT11XSOcTR(Q8MW@8bF!#&wX}O4$6Wz`@0j=fq3>w^vy+eIPzbp_<>=}$-Qxl
zjOo(^4Xd{Mj#~;4tMTX#-3fJI^sj$bKdlMNs`~%lbs59YQp*bF3aqCLsBnK(RDda+
zQs0JVP4H%KYhpLSy|AiLLjUivI}}{FJD*n$ipoA2J$xnu^$!nh8kZ^o_X(8&i6lMn
z?GbUx{H+KJk+L3{=hdOUB_!`E_8$)TE9w3olY(;YInl)b6rm@iKG!i6^S;)da~|R@
zk}*C}aY@{R_v+hCS<3`nIH&3VrU1`{Uiyyyh4_BpU2{iD&Cv|}_j7#EoG^no9E;cJ
z*|j16H1)*@CNs=uc%n-CQWqZb9?>n}mxcVLvM6Uy%(<qk;(JQR1!14lLkp>-pgKy=
zniuE)|6_~dOus4#4Fdy4#|&^DOTi~FZZGC_Y;_mM2uneCpHk&y4+Y#Zi6Bnjo+oB*
z|Ngo6#T2oA=F|D1pMS_mHt|8qi_7Hii5fQpd=4L7rR9(=l!f@R!xrJX_#C|?Afp<%
zM(m8;Z0E!NUG>EFr!zOj!EW}iIk%c5%=w)E8xoGW+Fql3I<S9?_PfNXqX%%G+#ZLe
z^S|bZqQs{0qn!)H@o&dDtb-WfN*+x`uM|DFpBxl0s97K~#QHT%hBpcA&(_X!z7(*q
zB4H8P!wfOka-S`4){-3R?`FE5&;tDd6Iq+`PJ;i&k+q2Q??k}7=gJ{wdN?m*aN^Pq
zItYmU&Ga^6mDs840iVAzLP5vh%=6)mg#ID7gOw&<$-Wy+3(d-upkgSJt<J{_frex1
zyU%bVYUce9O1F6tOG2HcN`e%MegnZ~wxTHU#L}7#s{|5aFFqaeh8GouPmNpB{Uw)s
zkH3E5#*DZ_P9zVDF`*M+XMfRUj!>ZNQ(wNshN_$nmO7?#pmPR&zr>dXkiwu))5%&6
z6fPlUP!Y+C$UGxTw`bGjRo}8e#xINH>BZX|s)v}7^&iK3o+(pgbH9lb(;*6Uy`rGH
zSeFekBnCU1U1UH)Qo@HMWB3uHJxh^tBOMy`?6PueS|vX{rt@q#Jx6?a)af~_@P{b>
zL2+4sofhpruy>-lhXQR@+x$M5zfPp4{~Ik@?IdrRg%6%B=SFGQ+04$;aiR1giN>a=
zPJ;5umuLU|nIq?zPoF8EH-}+^ZEfm&fLfn>R@g`h4w><0>mGKn=4;)0q0Aa6r5|J(
z8k&Q1nKAvXB~y6W{oVJ%PD>DC*!P})8}R%bHc#UF(|19>{~U3S+vbApggovAgC76T
zQzK@OMjzi>_l3YZ>83}l8-Pzq-MI5!Q|w1SH#!n#1FAP}Z-45t!2UV!-(HQFOEmK9
zieZ5n>^7vxClKzvyujqgHH!I4r{YMtclciUs8y>&9$+&x_KZ2J1w`yMIj(io43^*U
zy^_J_3Zbjpl;#9rUe_vaj=A9RJ4D<BPvYF{Z9lrWNK25kzqL2r+8T^fuB8ROumIV@
zN?B_B=Q0PXt=XM4g$oAsay~btAmzf1pE>t=;T)sSgQE-*U^VS@=9;|-aGc1HSFRTa
z!$naey<~M*UC8q}dQKJU6-}Zpc`3s=552{uPqHwwL(@rUMFE1>R3c8T;hf7}q1j(w
z<iO~?p1D4=45Vn8z~OOOIK1NEYrRJX?tlEVmx2oCDVM%bHTG))-;qkg`b1Tj^!*_I
zDqbDFhS%S_OX6Mz0mXrbPj|rY)=DD{DNXQ7Zt#+p)P(4{8xcm~JMj7Iv3~NXIy|dR
zx3AXLh8r&`S>lv%PPRaAL!t}s72ZB}J+P?`Thj;izF|GXRLjqb3HNx}xCl}SNoYf-
z!kkC-8qNb$_AK4|pb1uAR@#)*bYNEu{Zf@O?zuSGLQ~2r2O2Ba63hs3_`~{AzL-H8
z&XqiPx&!xa1iN<bdvu8zrtbVb$uKPh?oZenT)zvz;w|Ig=f&(WTG%~)W>XeU?fK}~
zBA^1j=SrV*?h}HWb>VTWVtjBtFP>3HKnN1{OU=byRD*x2+p=flajp!a+ceKg1NZB^
zh>~S~Sp8S^Cg1`GXmVAjh{!48dumqxxeHP-*sE!7h<!;-Pc8~y{J{lz*XWPf%wXSQ
z!ID#ww+uYD-24!BPXxF_N5%vX@&mgv&$YEu4p?5H2^q%u((s3oENe%kAiMLUVM!T3
zRBZ-0eP^ZyQ?tuFtGgxOL#x;xMjJ+`(x$PLkys<#|5~Q>+vETLN={9FIWNv<1vsm{
z$DHsmlCE*o0J;Noxplj=;d({$gqOG$)I|JkxOG_=6hAf%zQXxUO7R))%cgpeESmXZ
z;JGg3ZPU%})zyK<iij`WPG;~msPKbWfI7T$&RpLf!9AEIjWOyum<LffBPA0q0NGjh
zxj0`Lflg&6b@+YEY3<UZOTy=rS9bLyCQ%D8`Tn{h`=}NW!_U*YbS&Wcj<7WfXB)WT
z*R-|eVFn99di7KIoQW_yp&;BZ4w0>bnHRC&L1g~ub16|{*!TJ?7~{R-cg}ttn-<(>
ze%T^2L>6EqCCXV)%NQh8(oBs`6Cg12u<`$|dsKF&ZSt`>NJdbZUi$lmtW<e;_bKjK
z$h{)@<Z&3DlOIbLQSM|%ogTha_Vdf+Y}bf!#z78H-bH!chjy5_sV>Tv7)J*`E;H6G
zVxOMUOWn}OTR+Hw)FzsCJ~|Nb?I<!)SRxeeJzi8&Ss>f0I}>+k;d__ZY;0=T0>O6K
zu58Mc2hTMPbH*L>#ApTQ`J}dW!dT*7+RY#t@Z?W@8!-5b43hgkI?=!l0wxJh+CEGX
zF`{ew_x%2noTd%&)9JKOm{L_fJ}L!I66w^{p8p~)8~YhV;`@bt%ZMwb7~V?`m}GvZ
zpg<L{A<5uEjYz?VsvmgP$eNEU?2?5n$W``QLYNF6lHASAok=TzG`B4k#y@eRvlHuK
z+viqEPw}7uZyhe!T2|F_PN2u1+izc|PX8nI%hzH>_tPO;mmf5xoI+6jR$<?xWO*2O
zN(*_~uMUR-WW|M_^TW8t0QFX?G@f^*6+Zowhwasax8tK|ptep<^CP1$=0R0U9iI@#
zy%25fcRWOaFXE(FGTtM1Z|y2=zJPgUG`b7E_jzFMckpweQ&c!de@|NR2_xK-y*)8@
zSOezg$_7bO3Y>Q_WAiNH2XC)N4k}s+usiQLT}-=8@Tc5L)W`GHO<URV@9_#Szq;qn
zaohuzUGsTP+5z|Zh7ItWU*iL(I+<>#EiQ=dXI0rRPJv32BTqgt5P>JZukrIPiGT;!
zzi02}xIra@!Qo<r7JPhmQ6-K=3l?s1Q+stQL-QMM99LI|<L8t|4&nY6JGrHT|1KF|
zUr#D;aK9lOT1_+*#q%gn)A)y4Ih^kv99lc|5$9-KJLZ*=b>VVI`_=Ju?5B}5{9atF
z3v=^n_idwf;km$&;5P0RHxJrJHgsx$nWDkgtv_0@|JF|yI-Gm(@y<V+-)IQG-n8zE
zKcfW}w6zD^U+P1?2CJjN17q-So}39NG=N=sQsqs!FU{kJV8k5j1W|YY=SCi#Fqldz
zYXxRV!cs}xnYBbJ&`zi=(X|kUrl8ZqlV`-?xTnbHzX~F7tTvl5SV0c-_F4*`#e7n&
z3y1by@ZpAI?SD%SVLrVjJ~QrfEfdK?&+GYXSinHeKw<Oa265TfBi3$|5`vTVh4y1V
zUpIYGm8LTnxZ`k)%Nc$+EV0JLcxaK}H<r45@d7>kEie$>Gd)V)$^K0W8(@7UqpgGc
z7aMfmeD?6V4HLN4ANR@V!am>sM2)%y_@O>cd?J#G9{eqX`yOktg5d0B`a_8vaB81;
zmUspwgvwvh-_+v)VXs{Tsm}>l4J1G<oEA>6XhalXeoBE_>aD{#pQiAmAugs7`*6!7
zPX~PEhWs>ox<|N2Mk7Xqb-i<msFa}E+&i{RbnMzvQ|!h$>P)(=9cvtLYwM!S9RWV*
z(3rl(dXENvX1&ffHk={`I=h<nKG6cBCr$CuUVdoOa1wRIe$=N5_b=7oStN4z{`(`<
zwn-FkXP(^YBn<a@kM8Ede)QA7ALuZs(IIQoo=qFod6H-EYy0OqN?>)RS@UqB6wC_E
z=frpLK>rQjB>q|n2v@1RC|@^5`o8Th_;-gFyoi`xA+P@sd~8FvcjM>rPwLATey$wo
zh1cHg=ks%<%Szn8x-1I#W!7=qFHZ=PYEItxx=w}S&X|p=G4&8!M&|qs57)^ZTJy8-
zvgMJcrM!<HH=g%{KYouppa@(wW^%p9he@F%*~tv+VdB#u8vRlv1h$+r55KG6zptEL
zV)}j(DL--8@UlP$@!+wMAY-c>rbr!%3F6@gLi@Z09a9JSEwUqEN=Oh&m8mXhrpduk
z_kk2{O-a~6!7gUM3-`&q&(hMT(*e*;k`d0(0+}ZNTl25A!J~}Pu%Zcn{x4q!#%e9x
zKVIni73a5mS=S=f4+2~tnT;&Z5`k2=gnfHbc0eTWsq2*mD$t(Q@F{nnGF&_LZ10bA
z@^Hd{N;bm-_aHviZE!T%0WN}eimbVcpdylJKR%0nf8RQEUv2Y&vG^n7LaZB>xp=NC
z#_EAX<3X=-d=Jza+0ygHI@>>2--Mps3gEn)lB3|D43DF4*gtW?d_+<DXBm7NFq^c}
z>~c>7bXM-LW_XLkikoGNABP<57U1E@$y0%|emrxp@g9&j;{*G&iX5a-z1&UjP63Vz
z>sg;-zYvEMR}Ke;PLZ^Yx$Ff@f60k{q1$Ppv`{}{bb2LwmI$!3D#|k5BvcHq==Cwp
zk@@|}R}$^$&_9a7S7U+PDEJ_Sd{E*7d16(2heOIbdE$0p`>Aer#FX+%k&2xM+0XFr
z)tD1R|E5RZ7k;HiO)I%xw?8cqfd!Y;%drlZk|KC8FKvQ|6sISi$FM+=?nenJQ6^+Q
zFd4_|zd$UVIF@sB@hkbg^sHrb<`Qx1!~Nq|RsIrtB8v9-h-1I$#$*dm>nibQjw+}z
z?=SWd_o+qGuaT#x9_56uej!3FT5ie`E94E?i=KM9<3uaR&i!$RsZsFX(ps0eP116w
z>viu3{iJ=u_22MX01f(boaL&cM=JH3)}daa=%11;x<4R_=I&H&=jchGh_GDk%|02F
zY_Zo{Jw*yR{!tX)!oKpOz2C&*0!2_u)*FK`dKvWYbKu#2Q8^SO!ai_o9qV|3_7+^a
zoaj;D6@$7}4m74dQ<YH1ixjvnMi`6>qEyo(i(%11h<sYPYh8yC1w4FdzSh8muIsBA
zk5h9Z8eSvWOQSUCWsupS?RaiPt74mz_=OV*xrNb}=P#4B8bN0z*2hSt_#dX9m;{lL
zpx{l_Gy&u$-jox%mj_kkO*dpS$RR5=@ubEa5p=sxA?(@&6{7Uu67NssM7h=TG~a}z
z(9aNI{dyfyw2$(BaFHD5x@)mp><+L52N}~xS91xNDJk#Wjy8hWMb6Nk4@S8EO*A=H
z-URAsjAllw)PZ3**w6605`4SCa`S~Y);Ba6vlTcM;eGP9M!1kBRKM&0aU@#_UY%r5
zJ&N<XJNthAWy8MB8(P}`uD@3S?YBa-=?VfMADQ-_9Ois6l>ROZ#X4Gc=$EbVVgs;q
z6l+yB(udX!x#J_h)nVPnIYnAd4_f7F=cUH=VRzzyPZ#F89=GluTg}&pfKYXV@F_je
z5{Wx*iua1IxYrXZKB+@{yrX5Vvl7hA$OS3+V!ivw>9?nraF6=d3*?3G1FwEbP%`%E
z1C@aP{m&EXzyblk6GpY5x?A~%tv}{c+{-wwQpEuREPVNQbNO+PXjdH<5&}BapSON5
z(nEAtTHLfP3+_|7`Hgjs2mW2v<(fXr3)j`H&s-Vhfg$?}mfhXUg!Nv-{p#D4pv}`K
z8pp~FmRmjVEco#}qMCGJZdCvh??>hyogE?cqmEa~4KczO*A*X8{CWrf*nP?w#(DL(
z1xgmbBtV?nS0N-x2-fTGZ6rqs!^vw>PQFrt!0VG{;6*DAO|MU6?#vazIVJz8C)H9=
znezCYEu$>F<KgobtYZPn>JI@Ms~zOZJKnA*y7PpJ(x2WlxX)5t^X|7GFJ`c~Wf1;~
zW1jSUHk&@6P62V>t}-&I|0eowYn+dYpoRXnZ&hL*f<Sv%DjEX@(BRE@P4U4ELZL)A
z+wM9(2ilM8n4YAC`TEGcg#xnRaQu>WPSh+>qh>Q=l#I{$iR9**&y(bxe&X=TI33Eq
z<oY&P?ivx^rV_I68V_`{mma0d+#r85Uo+?P;6j(;ciz|i$prTzZUm-Ial^+`hg~8u
zclJ_mxbLU4>*Q#5g})o?GP%Xa*H9R|OwNRs<}&}sjTngR&tA{}kt>c(fgW9><Z;t%
zp}%?)q;qoJ!sTQ9Ak16ytC4w#Jmtu({XR$u=$FN-+OhxlsC%vi*8n3VviJQeWa=ax
z-?ueIGIK-QgD!26I38H`E+ak7c;Qo8Dc`t`0CX0VpOKc6h70FeX@%cOLsh)svmVwh
zGW76&?WY>n$WFT?jl7=}D9d2kTt=D(93)iIt1LDMQgG+Np-ef5UQvB&ep?cb1vE#l
z^GM-6SVfI@D*k!NWQpBQIe7p6Tb_S_3f#IUd3eA~3Z%T$_M9tIfT7YxVa-MrV9J*2
zRTh+mZ`m8odod@3>Gjh<JtG?E?%FVVRVaY2yq_vkr=f%FA2)w5#1)Z_^&camAMwEj
z>rG{^TY`|&d-%9v3Iq5T)T^8I@WF@Jl9;X>%xw{i9lJkE1x~)nwLH_DfN(?c<u(zR
z771tj)6NE6f{t`^zlGt>qp?dZ2P7fETi@inG%qxUEa%M)<DA+V$HhWhewbVfHe5I0
z#PhzpNQ&tU*-`sfAXt(W4fFL;`}=bs`;(e9vd?Id>M?iD-OLMwldOyL0Tnq^{Z*^2
z+D{I>baVS=sUeTv`6|5seL@K}xxJ{J?~_CC!m^#6us=V_&FHmjt|aQseskfQg&fkx
zXg|p)S+wsg$5P=qKPvKxahD@xVf`}`Qv&W27v0EQZ!5=oosN}}-7iM4yF23d3-4bq
zgAI>k0tZ|=82L*~loi5Q|LmcQ5Qn0w?SV1eAHMYA>jnBpVo<bu*QrlGHptq!p@-CG
zaBekl#CouEg%qznvTzKuJuY3@D|42f5&qldChTFw1SoAI%;OpZsto8L(QF%;Qk=Hu
zXBsuai=B*#_uonJU&dkR1}%CiCD5QaLxD`C;Dot2Gy3Xd+IByS3*DiP;W2;1h(6r&
zXN~ElL;S_<2WD$mNj5&sz_#E%k}Reb>T6*|nJ)y-$L6k*zfLNgHL2%8f=kzq*A7r4
z{sY&JJ{hG#$<$3pF8*SIhb*k?*0=s6%l@-%N)us68p^6Qu`(iPXLT0Y&Mk@bo}cLN
zivB=G(+T(&#B(5Wyz^dGDG!?CuIG{w<3#TJMn&mv(xN%{#H_RudT_{jpwXEAmo!&R
zv1ffSMZObpvG1dqCErUNh>SiUfn52S)dIF9k<A%51{6$<&iy&PBlGhLS+3x?rl-e?
zf__PBnVIq-=jVOQ;zihZbt}G+`!*AL9LRq-`i2mYA8P-5Ln{X>;x<9H8}gu=&FP-^
zRsj;vIv*t~889yzk65#qhsziBLiwvWbU#0KW_Jz?+`OG%M;1uI9cJ>_ZU@ZOVZHV*
zr%@IfCciA?vtm9AHG|a2Bg#-+oRi_#E)54FqxcWfXki}dY<Ag#1X!}(s?u`8KJ(=3
z_j0e}Jazk5EzKHP7_JKF{;Z$|VJDvLG{HUf3G;<bu085t;8?Xdt*8i7@9*X`{<j0%
z8NLUVu&Uzw3gv6{1|?{rihtvY_rgrn$M?<5Yr^h5{r3)vallZIEAvmRJNuNE{#p5@
z1AK=yz2DaBLO}n$BIaXapv=-pnHS6jffT<5bFWE2kAW&pJbypQLC2(jwRfBRv2<5$
z(0~&CH$N^Hn8}PReNnc~8w#}Neao}pM-#+&XR&SOK{2$SKX8Y>HVewg@137%=11BV
zdT-xJ3ZfFp{0RFsY80dNjl?A)$aiGUxZ73`h4DsybRCpLL1*5tW=e`6k%ff%dI5g4
zoAyMUw)Hsi+869&I=0En@XFS*R0th=)f{?`OAKZG{G&#DoC6Y^x(1w|vLW!fTvS*z
zO_Xlw&K)oNMK&?N@ZD+7g#`U(?+Gxopw_L=7f!pc5MoaDKd5{bh#9wo><_<FqQ@4U
zhjK4bf~7%A!rg~M<R9gh@HV_3-uIsQL5@2Ev_I_nx##*i`C;F8&eT?FkQ4A?+olkO
zeUc$G8Xi(`Rwizm`!O?oG>v+r(EEoN)eziIKOzN9W#)JLEIEMvO3eemubk+erHd5L
zE*=zq`iP-ZIW3~#I=p+CWsNM@G`Q9CkOH;mP;K6&;z7!`L!pW{=#gvZVvyh|aU@so
zpS|or0lVrQGlIe_K;y)Ir*k<nFh_BNoh6wQz8g@O${1m8X7LXj`bcIpL9OMDvUI`k
za_KI(#tgBCE!#V~#6fPdy68ZZIC7kG-x(6WNn}W?Yc${JA^!3{KhBBgy9`Thm6X%G
zsC2iz%~I_gu_kYj79-0DDycTyKdo3`#;c$0C4O$iS|&!A$ME~!ExH9qSs`f6oA7uj
z4nxulFOn3bu#U`^y&FF#+l4neYp%<|)}9}9?)8!oD=A}kgLen+{Qzst0#$f!;gchH
zSPG8aqY^aC*a2z>vsf+WFdsMOuzX6VBrG(KS~UL>gB$+_R|+bnL55lH>OvsqoSQyb
znm?%o>1LS6q=5C~+TI5S95m3gdvM<sF<D4YYLc<Q{Pn6eT1f@W;Sto1cxRF&1OHKE
z<$t=%0Z$EOhl8`EfU7)tzu{?NP`+^5{$&h3H0V<CJjeMO<AECoHIO8%=O#q`?2-Wq
z2?~2b3TZH@JIKtrAPZCXX;K_Bq#*n{zyBu=C0O{znoGThANap9oq`x?%s){+{We(&
z6kdl$A1}iEia2A+=IKt-czZ`8pLYfMA(VSfHwEt>ie8mpZkZz`KblF+3wDuiwMQe~
zmd_Ea(N}WcTK*(5^y0od8+Vg0*UfuR)%1|jQ||GGo-fE^hSHf-`VNB0w_>1J=^x?J
zV{oG5%>-%dY(!^C+fCd!cFZpz^gp7H|96zLc{7o<0Vl&B4H4(f^C)}$`$&_|wG+3E
zUX#oq)N(%hJ?Wui!&M!;O7!J^PRhw#BYzb7o+OV^fmY<Yi}OSyA%kfL;lCEi$5Vo_
z>TlkX0|sG&>@?%#u$9CNOZyKZ$wh<l3f)ig_5M<&mK{x`Z1H?{?+aESti<AZi>{N5
zL8dDgcfBPqr`t>lNUji9>292OKL3q4`_JR2E*&Mj+)5sf{YV1_MNMoM`RUQ`^EMUX
z=Cg!dM&I6|cNd8_C*HXK?&L%Nm3_9*3fUl58}77o*$xwI*JmH3{GmYhTmOt|E0)Qt
zCuI2#_6`#Nyp4pd^uCfytwJLPmfPgWRB736(>YRUx7L{U8)_tVV(!K?`!sobWkyw9
zofn<m@iwiyfCWuu6~7(e<wNFjwqp;aB+*$7b)FC!S}<nXkYNJ})O|2O=TZ(MVo#85
zx&4$CRq6a@wh(4PJ^x*m6Znide;mWl_kEuyWDX?UX4D!Y0<WE0DQ;xN9L0=5{yhTd
zXq@5N1(!xb(KUW;ZHf{5HmkLTHNO$G)xV5XjK32{N1PPO1X$5+v#sp<L3yBPUOF-s
zg8BM)nUfrjXuyt-`TZZFG~j!lxV+eDEx2Ll;hE2_3We-p8ewdDu)}-m@pg>%|0p`|
za4P>ljN5zfz4zXm=WWmIWMyY0qaveh8HqxXC@VsuRLZDx`XVzUkrGK(Ss_Hm@ALc1
z<+`{W=RD8nd5`;k-Oxg-dg=$-H&j*sQF&0V3im2+{?Q^=MO<!Wa$V#<y5<(}_U&6W
zcvZR?X(g`-_pDU91aB!pzzQYt_iHLB2bo(ysz?cX6oY?j4xl^*R(U$pEW|nX<}z>+
z)`xo<s*l}1YJ%Q@_|9`5Wgt}Au?f}HfNPUqlV7$efl-w1%f>2E7&}u$5@CvRbl=5O
zM=mOY=Q)jDP90^qR4h~T0p%n~u5b8FquklawI?>}%qnns_YU#Nc`azpb6DYBRfBA$
z63&cs8X(g)@d2l-0gq<)5)OY$0-Y#<>ZPyZV6eH-8T(Hj<p8Oixp`I!EJ~6NR!al{
z)VD(~7s$Yf{{?z&#8c{lD;dbs1Xr96Q|%wifgM>S=c&KqkfLgwZ<r$oQ^BmZYnt-#
zhfiZw8qHZ4_)|nCehEUg&pEwnRRM@#>3L1ZArHY;lKM+t%HSJzXP)DW6a>**S4>NY
zg3~+hb4Jx-@UnMQ<E)1S%1c;ru_cj0eu)ujLQD|izZ`5iIfz11&8D~idBlTNxzWX?
zCk>6+k2f4g<ROP$eDIJ`0Ty`SWmSqCysz2h^i7rmLL#p_ik=eCot5bCkNSo;e5|3$
zh{I~bF5KWqDhVMc972?Sh{J69;BC87M(DbhC-&<-FX$U3EE(5uK(MKKn-32&q<v<S
z6_O!<e%C8Lm+YB9{{o%fU>?f%V&)v980LljTFNgEi^)LxcX#Nv2byEEWgNYmVgb%F
z<GioPf5mVq<soy)050+0^>b&`H?V-6eV*i8ZcuX+RMi}ofct(Atz6fs@%-WQixOW2
zz*$VfoVA<_hA9S455MAq12zke6aFGlNOimX!v{Jj;uBWctY(0Jh5K|aN}Rwc%j$Qg
z4CTEvXxuMH9Mt*(&&W+G0k~Dkk@0Fv6tYC_Z4y6VfPmqO#{T~#;NYs}vd&owSS4^h
zK^Myo0>3DNYHg3O519@&i36mN;rHJz^At0<UF*6Ui*l-!xVnkubi~0u(5`O7NgPUP
z+_DmaWuWyWf2!N4AoysBYj<Iapxt<iRuJi6vW1Hk0%sI}_t=#=DqkLWqD>e$r)6Qy
z?5em>r8Lku=G=RXa$I>gAJLDqsX}RoKjVy_JXna|mig(Y4(<=!=Dm0Y!Sl3kD&4pw
z49WBi<54|1^!}Z-Hqud;ldS1n>68L_<3-BhOnErASv3ojP)7OXDv^4FO0fD@;6VzS
zAI>?=@G}}~LCvS)D<}OW;LZkra#fuo{C8NSr0RrzkE@_KzgZc+(<T*e<4|2FrL~*b
zCk3Tf90;g|RN(tTQSjM)d7#PIA&V;z0hf@=KK5vSNUuAmI;B8@@6dZ+#{Ks@W=QVG
za(TTQ_svU9X<BI(o0-?XakY;Cx=ag>5{P&p-S%!t>q{1}w7uX#jrJb*)b;}Rk`ZrL
zC`p^iL;z@&>u(g-P(j?qiMlpvcEq(jahWQT2MEWFvv2USfl9d2fXy5~$_ceB3m9F(
zMs#S4%(kbo^BL7kU+K4TCuidhtR`1+jWS(!uS*ZHf?#S^e{37)`|4_3yBiw>8Bu-T
zWub?F)ZgWo{SPtkp{F{{|GmS-u-^;TF{Oh^_Nt=dDWsFtNxMy&u!G^Q#RsZrQGj7(
z5@s1j4u)(Z(RVh;z?y9KoZ~PDI6oJwB|^C_IfMz?yl<I-&MiMOf{FnM>lHM=QE-FV
zjhd(3VMyQfVTIuFImGEEVF|Hu<pp=y?c|7`JWw_~uQqu9828$n*j`zA2WJa}4YhIv
z_?$5E42D1g5NVAUPhS+lOVLeNTjvtsGp@xiNB_Nv{l30i@=}Bx{-`_4&tZ#L(_!&w
zb=z;;Kxtv~b$2TG6&&)fY?Tz`C0Co2de<?}Vn)puftwiVYj>xzk5qUXmG?J3aZ%xO
zgnfse$kD<%^0!^5yGbDXJ()(E5HY^5RqVc|Jqv!uF3a^rE-T*9Q!bUNhZ3TX(iSfG
zk-_+5$53j10hp$p^Vhd$0gs%a0E_oy*fIfjR=tlF|5vxi%$AD;&-s9gO>vDHKM@-2
zu(Y~~6YgrLoIv{9!?ebV!dZ1lnX>4tB+-VK7i3?yyhA=RiYEz`_Uf?z=c|`J;$4MY
z56$--R))9hM!EfO6ydr8|977T<YNn8wLkB#2GfT#x3bQnT$xBgOp{ItaN{knE#9aA
zCqYoAIns+}u8Jk+x~YK9BKOe5o*GO=856*=Dhy5Y4e-Rs!<Ci9!I+<_5W(^HjGTfz
zgj@^xNZO<h@BF`%ofy-G+N0*ghi`S@&)1#{8!1Zg@H<hP!*9gZ?AlC~t<!+8+eSJ%
z!rG81c`u_UO%>_-wg|rwsla4ka6qh;Dh$j1dllTP4AK?n7?KTCfQYm#vw1@i&b;~j
z*5HXMG^1JYMM`C8QZcs2|3ZF)D_IT3Ju1+@!DZVptOm3FTQ{CgsRB)qR_3`LdC(?&
zLKH%w4HFHA!z2N^kl+4gH(?TkY`eF{ec!ZU_=i%>ACzNl7IZmd4e?g#oc;buol}E9
zCeEX}{+iG(@+ka}6Cl2z=>AttbzuA8XR61f2FEle;vF+8&|#CrRW&CG-jAv6^6HT9
z^;_6u>0ov65gK(B=SF#2-1G`P){>x2rS<C%A|0R^XQ&67pSpK`sgk*@3|}Vxv#x%C
z^w>fF{*3LZKqFb6%MS^4*o(?AkPksV<mo5Nq{)ilXGK#pg;R%o5A&oaZ7Lx4@uYlb
zuLcAUDAs!KsKR_kx>^C!KU|}~a98u2F5+5gyYkJbgZ#DsjA+n)u&6F3x*}H{<<mHn
zeYmXwt3eZ-u_2n^8cSWGKc@|+9WA2lkxnk_%{+CzHwNr1LuGY{AKkyU)#Q_o{K|^g
zRVt%(q27L2yKPewxRTb+$GB>Olj{3hlH#hczqA9-9W-GoW2~ILMiq)e6s56sO}PFb
zgF-h|3zlMJ!8TPB;>A_Jmi4KF-uo%_b_xynp76|zKS3P~nQgE~(}+t}a6)OV2=Nt@
zziC%f=>U<z8{1dt|69?^8%e#b4);ku`AiWh11-l#|ByR6FjK2;`D_sbHLm!vvFDl~
z?eU|->#+{>y-4I^SJ#5r^8;y8gSsgHlOl-umO2z!5`Os=kLs&%zISiXb@&F$k^YYA
zD0z}Z@dZj1APGKgy7oyCsN;ygvWTky{nnvQrV-kMzOUO+!D+$ow=`$#SmohYPP<zU
z+V7+n7FZRa`)#?I@<WOx;_KIHY0;cf0VlIKPkKHL5T_|os4w7#p*B|o=Kwia=>3)O
zflL85eEwF~mr8+9+H5@~sw+Q=U6hv3KsxzJ?MB{6VIZpe<ihF442&%1DrY7U*LdTN
zuLROrJ}0)SO7>HNcUK>9#_20TfAL)bS@e2*rXQ%CqC{L=56e8uY{a#7jmqDNm4JnQ
zLe6_8>fkbP82SR~KbJ4sOcoC+!rsE|d&KXRpzLn-nJ|<)TKQk~y{EB^aBil&W8gD0
z()$l*4Hh5{AiLO6!yX&NGt11~O5DO4LVxA*>Z1Mm)9ZfOmww|e)~Fl0-XVah_%JKe
z3*?|&W^eZO>r;&UaGs2k<s&XVrA6)f&SzY-Z_sI)fFq2W?&l$y+AdCka4wr8WDlEt
z=2lVd#|R_k3B3)snBm=n8U}Vt4j7XT=ev4^4VW)S%L(4=!G-es`q!jwVq^5o4!uYx
zS5K_@^iuFVrc`Wn7Ar#ec90Y(ergLFaN0Zb=ps4%XwP)PBb`M_m_Tb%@e$TzA=ooH
zLV)yO2adZ6WMFIQarUd?ELLW>BPx578dxnP51(4Fz#yf~bG{2(7=8GCoTxby{HqM-
zU)%eLU8hgZb^b#D2<-6e`80ZtDVChdie!S}9_yJgx*6<#>iJE={~qK18Zx?W$n!#;
z33uv{A|XCnIO(Sq2M^viipt1cT?oF|t6rnCX9X=ArH@`1%I|0+YP=Z02z`&FI#@p7
zv1@q(XL&^F@xM-0H^lJn;U-O}q@QY$;JMV+$zGN2;PNcVg|Eu4;S3@N_4LyT@QGGN
z&kGW%ARTwK6pMT==UkLN74Hz^cQOvL66DZcxHIWi?L5jECmIsJNG=G@pW4oI)00A4
znazu18)20Hy-iD4P6Acac)Ev?48U^M??J3F2b5e_I>*elfc?I4sa+KLTJ=P_Jj2lb
zV%0XeGjt4bLv-F>$*Wd|Pa&CHw9DdvW4(R%*MAxyT5x~*#kw?b^}cX=*pIlzS?>}g
z$Wc8<mB*ZmbkJ6|PtC^>5Bj#0;Q)1@5Pa00Wg&Gy{#7ysuNb7~wj_}F;q*uv2pPgz
z>`x(1<vM-26{@d}zWTb*<|zO{fC7(#xB+}jc={p#KP9LjnY{5R5$RNq3nl*|9A1++
z!5t1mlruO-!97u;4mDLNx&MEiob6wKa?Yzjymgbi67n-iAD;XdA1w*XODu*P$C{vB
zz|Eq#uLbwxGI+yyG{Do{%i{ZG9Vl}Abd?+Z{0$xlZi8SANOfi;4M(|SS#fhs7_mCs
zd7%1<_&ee;-%Qk1I41=R73&v<&WOR)J@xQ+qr#vU6Yk(lCJ5pJ{F9PDQ9ardX1#^{
z$R?k<U0bctUU$1+tT9az1kRYN1^J3W3n7!e7}|rS<P<;Pr$hT_#=hNmU*y10^5oCO
z4sPIE@nKN(6NWQKB)=l2#liReCHazVd9eM<c54~==Ex6@;>UAU!N2%7b4<S+&@`P)
zi6zhk1-sSZcM<5kI<UPMhH@7+st?caU@Ab~FW@0!s|w2Lf1`&^DnSenc6upR8PdYu
z&_<-G!+HH@;V;ruVC{?N&xRUwzAO56HKM%8>s3B?^iq_et;!;z)ItetjIXL_o>c&5
zB=Y!ar40A_37fVe)IglI__5^;GQ^=uZk-NfLHz(5N6e%kcr5xPnE)%e4Lo{$KAIh#
z*zOkbJ9EL%+x@SJeZo+F>oB0xg99k<w*Gzhi5rSY9yh=0WPwF-avmE61~AE{Rg$el
zoXDy~_qc5iAk$im4<MidRg$A2rbSku_@&sK;@yj#sQGaz>Ej&MtYNzS-24xwOTXcN
zJBS<N)C4!_qlF>%cXVj40}<G@j9$7Z#0Y1luS$Gv<A6GP4%v5vf?zQ!bcP)9iV^Ry
zeT#t$5}bkszG`&gGWfkmW$hV3{2S-=k_$8Ry=kN2kLQBURQ9q@ttgj$W>qyST>yM*
z+g+GG@PNC}v;P!~QQm2mtJ3ix15iJIx9X3cyM3OLcHu0_FlhROviFq&9C$p+IEVaM
zZMP&A645-NzT%jgP)H9(Zv4k)l%Na80%l7{h6%5Zeg7=rj39Dyu<K#B5p)T&rw(xH
z!zEhKj`G)s1Xh|i>c0#?PEX|P9D1isS`{fe=X9a?hfc^dQFYkVbhKMX{7{;yxEK51
zl@b5-6w7C%r%YBiirJA;gqV+<>n$dF@SmA@DIqoTB?jD-4wqF!d)v3Z`I>4#I=Wx^
z(_aM+<W~}MZ|Xqn-H4S$R3C-jm+yIgR|zr|oQ%zL5YL?NPK_MmAGyDY=ehh@3F?;|
z-;Sf}RE)6;d-@dVC^mmjaLmX8K2WQ@K}QjmJ*t0j-_wM+2>}}2B0adM)Sp3wuDhy;
zLSG>TRftklKAJ^y_4q#bzrr-S@OzqDa35XQW`yi~8bO*+#v{8H{#*ePJheaU<tRhc
zT&`E%nhvzh8=m@oPaRCm(oQQHpnBqxw2wi9DrgUKcwg302UQz;)wMJu7`|Obu*<9k
z|I8Z<wheTUZY2FC8{#hr-SXFrLj2VXv7O{CcRloZweS^Z0=R27OJupI!Q{oi2`<RD
zQBacB?!$p}AF}#W$^97oO_E8_xekEcE+RZaIqt0gRT_4T8GvDK<8p_X4jAIR_T02h
zz<J}CJLr!(@LW=26#0R21rqu0PqpcRWZu0~eB-8I{8q9s`MWgA)sAd7MZEg3+K~l&
zbe;?*UHZ~NCxbXDv%VYxQa~QItJ;qGXQE3<v`2@sP|eU5=kZYhW`B}ahoC&^ixCsI
zG#+xo)9lA}%C8jx!mARe<<Q<@OmoDD9_>dvgFbF92!QxFy$bCIew4$*DS4(%7zkdM
zh}^w`^u5+weAbaDFK0wjWw096Nh{a$n6D$AwbSs9q>cy}T<(dH{Ur?ZJuYXX#6{uf
zi)I^EGEvwtqP%tNB7k)KW&%7Cf^ajk^t0!(1UP4&#<pw4K-9v0X(b(TL9ZNzt<{M_
z<L_(id7Hv;S@^ZF^b={Yi9D5*BZ>S0d_nKZc#sZuyNa#}?PG-xVgjY}P(7+x%hZZE
zt1%ZZg)Ya7fP)W@o3Eh=*op?HU1Ai3fo{jVwIW4O|Jb9OxGMvuF@N<_tEC|B?)PX)
z3TfEe_5Eds`g?|9(L*wC1=OdijtQSsgtktpQuMz<NU_2C(I>>&4nAi0<3Zfg6}?qn
zD;;<i?8}}ifX?ZWtO`#LEfBFc>ZZ&U0IOxJ`oy6Cg!bHVWQq}j{znRSXJbUsTsBFP
z63w?1SNE0|v-u(5L;ulXBp2Au8Ap=DtAVDQpn!s*5)8+-9ARj_QF*N>iG)fKw45>?
zTchht$;Qt`CS4z-a?;&m_fVh2XLD=HO%b?ak{^}wsK9-<sjwd>RG~chs#mcNnyY6L
zu3~YdP#=@MGJK039HVv&eUg}g<;_}>YZNWWX`5ZVS|$u9+!Rzt9tpw1<dt5V4<eA{
ztW5sjs0i@4->4Su76kTkomz_b+`#VpIc9y87Z~Ti-xUiKhIrPF%2jevpnm0zD`iJ{
zLba!^KG~B4zFre?d*n}fCLekJr=J8o5BuiBi}Gl<(_;8G#*n`A<mVy-GbsrDJw$Ws
zF%Nv-)?B^jC<M9eK7{j45|DW+H-70G(sTZv8i@TP25c))Y|7Cx5cl~xTMU}BmCLQX
zUY%9~2hYXIMWm0)Joj9QiA)yEJ>K9sy~W{Xlc9YjGvZu$Oi&laiUH}Ots~ZoKBq@E
z<vE&4aIPdYk{}V~;ck@WliG^G-GItx9BYC=5V$u<<17ak?v|<9eieq%0fxVk*LdLz
z7N0D1k_7^%_qyq#+2FEd!lgZHIv`0Is2Ymqg)~)0%4;Wt;g15Y`WZPJ*qP7EEi`d}
zlrrP{Qc`w!*H%2pxGx32OJW+<(9fBll39`{6@lVV>Ii*eQMmR&(Z{D!9OZ(}4-y9m
z!Od&&oGGs)knVt!^opl6_|cg#67mT`vzTOY_+J5NP*kzgQWAs5$E1icBnW#!mzKF{
z(fsqXQaF#G2pBys>r*@_4Ez5T9Np{{0e_P)$HP$p(D+ihTi_%BKHo~Weq{*4&r2Vt
zXb=avso;L0_9`v>e0;B{``a4MKhQ?o&X5oc3^T|_y&1sf#O3@98dexqa+#CSJj8x`
zeL5G9=1yLx)?{iQFvE1pFPGa6<j}m6Yw-H9G{{DD3XuyFLG1V~pO)nf?2(h$z~Lie
z@YG$N%L-!w6q7L*c}WBq`s9KHt{~r-n?mdb1!15H&F`E&MEuvVsE?nlSis8Ru*biG
z6RHa+$ebI<VZgetMP8X7bT>n;XZ%MElb@<XF6|<&i}v_qyG1IX*iT)VKaz$5jtjKX
zG173ya>DfBDms^i9VQC<MS*d%RprAwB_MLO7U?xrgo}iw4DHSGfZJ_K=7^C5N$m=z
z)<mQ`-57BUM}Fz@Qz2v<R=m((FdgiV>g)I}E|1b_HW2Jtpd3T>v&SO!v({cdDBkN5
z(7wzAz5%JLBeV4IN=?vnbC4Tul-_rk6Gz`y4Sgey@4=FJbCZ2LP_AN3%jrvZMljyb
z!I3&uEHHh8^9QhzfKB7>>K@WlJnM}4SKcfDFLv*msK!x4CeF>Pq>l*H3#jm#Ekw{N
zNx#kZjR5J88&akSUt-6LSN<_0U&m+)`<v1;lyG>d?$F^cAvEC&$nuhC;Ee3YG9MCR
z=%P3O#7|EES4^cO7`YiC*u3LRmDv$yEL~qTeVq+HyIYBu9}>f~9<kddF%{U8O4Rq&
zGr;vpr-fTO6p$KPTQYu#`iGbem!^>K*az2f!el8<z~rss%GQK|azDlR<0n37fBDRy
z@GUoBM#&UEPpiOP$IxR7Vm3&RurbI?WQF3fP21=(78og=T>Uh`2!Nk(PI`!PJG?ur
zaD%LH?+eL{^*#&K$oPh+A)U#`dz=}ejBG%#x6;zji~1qcbgu#d0(@%iuX~J@B*+h_
z@`Jve5u6|Xd6U|3h)t^9(|hi)hxPn;Sm!`M55q@`uC5Fl7>%Z3@HKQjmas~^PcEZ^
zMZ)xDEtIQ!a(yVmxqlriXnRiP)4zjlan;={aoEPTu3wzKytj<&ot}<*tAqMI@#;zg
zlJB^2vMfhlszpryk#{%szrPsaD}kQ>#84iz=&Rb?K5^vBo*<=a;sX<JO|o<OOdv(#
z;g&m23)JZYwwD}Gy*txx?t^?J;_YGo*r$l#=}UhnV+TrzA@cdoxK508K>e|`0wT!3
zBPq7iL=MFDL?Q#o*D)SCcH=%7J@}kbH52VdddtH5JK3eYz|%Y6veYdD7hM9o$+rbT
zFc+sX{FfC1Zazz;Nf3gk2j!u`)9C&>vY`th7l4WL6=Q{nCtD;z;jH(D1X!=G%6TSp
zLh@vq#<xnuQ#7X%i?v(A3=A22SxT2MufoE}tE<GI($eRrrc44B3Cwo}Hd=6xK2nVL
zAfL8h_bXfT3qNtc+rGW-vV4wJ?p_nfY*@hknom6Fc!2uL*|O|4R1a9V*`2>#!wMEf
zcD%Q*@xzsdS;t93ez5$<$e&k>o{utx*6EWgxYDrqi{|?Oa0&Ta+q@o|IN4571Broc
zocHf+);m#%Lw!R>x66GCcVo9aP2^w}SKV1(N!mD%dHxb<_<VZ<_oB}9BGcj)_O<)#
zqtu7QK*2vlaY6=h?g~4yh8dQyQxu*8?D4BO5ECq&85qJbcFag`UgCt#^1s`<$DNq-
zKl2`{o0FKc3uBX&-EYi~G0={dj~K4T3j28eqJ<gC?Z(T5C_iJn6nF6&D^PCbEk{4w
z$L2=P&DusBVHfA--b&{(z}<6XBx(Ajz;6_zaJ`Ef)z6cAcnM;tATTN)zqf%c5BTQs
zDGLHi_J+y&D+aJ%b#LmV<pVoGy9VnYLU5Roa6jM^s$YI#Ojoaqf@}6g`+sO}{-UmQ
zZAMZAl-JK58revI)W_d`Bco_v^I&K4NrwW6w^$8N2Z}%dXG^U8xFE#dY@%(?kbuoQ
zQYqKV`Jmh=n&i&{CulmjQhyLbx+fRs?pOz5U~J?m6=D?x{eYT6B5y%3nHdXSX%+&4
z<^}d=7z;3|F0r*#@xhXBW7iGDA=ouuWQ#$0oYedS@M90nx5b?V9H~)0Csl<q?K=VJ
z)GMcC$>IQS>ZFK1ZGQMpGrBTdAp=YEsXXo4e4r9n%W+_i`Y?^<pFT+6xZgoQo_<~&
zf@CypHaoSTy~FUY;}1o67UfcK&d3yG&xa_s5vhUlc7vE4@=<&+Uv|Iq+!(rE6wl&Y
z4S_NxjOjn*&r1*=ILmWS3r?KhviCwc==DJ#z5YHm1)e3rI7&?e_|kGY{H3KnRBAoo
zo37D=(x)WbL5%>}0clm#8#>T1L+~db&0!Dn?1Na}8^b$wi{4>A9q=*;%6#Wx1V02v
zibP!Xp;fTmn3B~H>T^EK7nAA0=-<I-agi8!Qd|f-eMS#X3-9gw6&e85%O{v6tpW7X
z=KdtfHU;<RE}38BO@L=U;1`X(F_cEOs5^=415Q%NwZ7dHG`e`-9-=(k`nI#Z-x~D*
z$Mz+)<B<`F=zm%r7T1J<lBLkJX&w0Brm_6>7upX;{rlE{<|tyCPZI|Y<RFTm#?GNh
z2^cj4eK^)oj$mOSXYi^Pux|&@#^cq%BY48rT}K0$#U+G_?r1{d))=+;lp3gp7Qj;~
z4RBM~9zAf;15Oz-1EX0r_|Is>^;MN72s2dKT3puvUWd7BSDJKDe8s|pOic~=^5*`F
z!WP8$sWizWJE@9Z_tT<%#Je+43TAlEgTbqQ#>sdYZTM%zTQJ3-33LiJtBn2PkS!N@
zIeJ_bRF~-#gHE8_fFG60JpPJsiz+iw_zBX@E7m3($|yorR7w|%8@eu@%0xCJ9_T9(
zqt(l3UOT$kXc``d_>*JZMxRk#K3F7e6v!b0fsylc17~Cqzc4D7yg(ANt#mSm2}R%_
z0GoS=^g*^_oa8p>dF8Ct<TN!T2xTqSmM^M#K__VTqcWN^T&m7tO>h-~`tY2Y*SGoM
zCO&0?k3a}^KB?Z+BH;#mPl5i_Tn^~TsG8pq5`%{qy_rMn(H`~61d~Y(JM_xtt=as?
z4Lqj}8d62Mp}m?vz|@NwTrMBmc*>&vqadF_R)83|)Kjey*ocC9T+-8;L{Xsh`26~>
zwj_`>D~qX?io<_Bo@;7~=ziQZ9ZL@ohyEG;r#*(k;C`-efuleeocJ1pQr89HG<Qe8
zPa-qqh&j}L58?rf0KMq%yNuBE_50sj3c4UYnA_MMfw(!1w=xMvO~I@G`?ZTg051rC
z&2hcPU`CQusshc=ADz8$xILl{_KRI(*Y2o8NuO6gKZ`0H4PQ}OysZhzoCeQ}&MJfQ
z*ybDc8pKa}N>FqaaR<n1_S1L06kxX^|9r}S==WPQz82MMz{2g*L&ozOP?PqmH{qlK
zVA^TVjMQ~N`1H8<aX-pm{@FVga)@%RHFh4KOi=@R!oAP@k2HZoMrhLduO3jJ&NwBH
zc&+r}c6toS03J7c**=ZvKr}}h|6TyVm)BfEVOyH;5!2z7Owok-z^KwTeLY~ntS@zU
z7(=7b`qgLI`mo~hD}gIg4@_UB?7g+bV4<i<_V>Ct{H7#)s)TrY(~8CqMTW(|22Uzy
zz%L00%GnlQSS8?5kekyR3025yGO-v(=bFYtezUkJ4q#tD*L|9Y4ouu=GTx>!KssLf
z&`(evZaxgT)r9)x*3WmglzchiUFL$r@C_dHex#il%t!j9{;X#MM?ygS@;X-7Ed|Z;
zGh?-=AEi_=yKHTWa*Fmbk#A`J`BBPYy1NYVkt902M>f%(Erce9h(ifJ2nANi>B|D;
z{hQXss2^HW(aKZ_7Kg*atl63pG2o}Q9}<}rMtL$My61(^eV~-g>#TwPzNm2e^aRQS
zWI1fTTrUB;Odp;{7Yaf`+*7%Sa^hgNabx5n2|CAPqTahEp}AKK#m^fPoN&5iRT|%m
zazC7nL+i~1VZAUSZJ9_E+#`OR+KD>G#7|W&4}>wo#Jx&+f?7)0IFZb6w1DcgjPk#B
zHXM-b*8O~j7Wu2RPjzx}l0%$ET%pVs8@Tlu6_f{a!L>7Q%9_V{q1JbH-oc6k0(=an
z{|ga>CaScZZM1lMr06ukW5fe$Y3*u`k2ztzdge2hLkrAL{V>A`CJ6F)LdyG(6f|S#
z_+=A@G4}b-CYhuh!0SxP$}%DfX>0NqF6eUsNzhj%_6BY^Y#kNxmJkN-!H4F2L%eW*
z*L2*1ND6XP-DZO?NP(tBZ*&Fn<9h%6_b7ft091tSx3i=8plP`!+;0*f#Bck8ub2hs
za%be-d}0i~GoP&H?wLYd?U}RTW#&+I{ZvvWp%LKTFJ5=j*MPN8<2zoDRl#w<>~4WF
z%JIF^`#KJEVR}8d)Z>C7%C$HfbGgkBobMc^XQF*>r{ycFW;BoO%PsW0r=|;<c*-g9
za$|_~d#ST}#~8$E--Xcy0;udaQj#Gbu99!WTF4_ESm9mbsb@5V8?;lTnX-l;{FQsC
zkx>`^9IW#5qWK70>hFiu6-sc>a9~a5iE<#98#c9&-}%dZqou?s<U3Ly6`8hI1-l+R
zuN(3KO3Qb}UT07T5?<EZhbw|0-L|^9BOwlAO}S;Uh=bwz{_e4|mMoa{?p$+yA_})&
zgjt3y3&Xk3OFTT=Xx_0pL)Lbl2h13#sG6e0;d#-)bj&8wRoE=0yk69TuK|COI;T}Z
z^yvvULS_XhS03TqeUJ8I-c6}COo)53t}u{Tr36mv2OMln(lC>Ac0w5Wv+^<S){Hd?
zcw#h7y3mg}7{B(T<!#j9d+(4@Im)q2rqqdv=0^3x=EG-ApAkolzAn?8LK!MXyHCoX
zJ=&Mc#FSwqDEEui<2B7EIoPVMJ4uS_o<A-}^{2d~!0z6Rd;6+9Q2m>kk+M>N6D6}m
z{)iLt!2rbzdkeq=XYzm)RaMB{_tlt1{1j6)v&70W3AiqolKj(K0vsG<nU@wsAkp%d
zBj;)4S5NyW>%=V!OU)z|@E-9%@2ZyU7$|~OrG`lb;zZREyZ$tBmWFVdY(ddQ6<BHg
za_s~1vkdoP%<tPZAxHfA`U_7Css--PDWT6P#<`nS=L-e_5=_11(VB2q!tmeXIW5qu
z_ao*l)PNmaJCzAKhsZ5E|3&wse0sw~`;M0Y-ek41haT#Xyh|KoZl?>ZODs}Vj}*X-
z^6BrGGX_96UNhmcYX&z)jx+kvxz30Uugm}E0M1Pew5~|^oWavryqt~BrKYf_+DfQS
zQuvVXHYN+pPHq`OXzw07WKQ0>ss{u`ZBYX#AF}KpqlK2QCP>{J^bQ(Pf#lZi@RSf`
z7<P;5`&42C?vpp`;`R+7^)>ahcB?h`c}GZ{o40@y#GjP4@0&td&+`wRXs^8UO>?t#
zOAEUCxt<uIy>ylH`D+`lMsRYxSk(B5Hl*!jz5j#q%RMa&xe}Q)z&elQ;ax@yM27WP
z=k>Kf>tMV?gbnet!}L1eN0`Hv)bL&X^B540bSzxWG=mb(+SthRCP*h?eQiqD3R<q%
zUXcH63=Zq^QcCjZ`wC*=TXVKR`8B;j?TZoeGd6Ln_1Qzmm5&qSSt!@Yb%i|FRueur
z-{+ZnsSh0Quilbv(m@=C<mD21edG%|!~C{b5Ah18_}2S1fV*4l-Xm)xAYSxqw?;no
z?Udxh`E$C^)9LoDhm;5TF^(U$i%A0OeJM2+3Rx)a9L%U?lZNa@1CQZHV({kby<s?o
z^6HkSGJi%WfK;Hqh8ucr9<6k%cB!JTMYT9?bbU=V--+Hjp$I)Oyj`5;i2K9FURgzl
z=HhC@4pVX(;FNvCxOPebY&G1*Xc2cf+;@7=GgJlU3tpa@7*>GC=ig{)puPB6jUiQ=
zV|CCDjv)LmMgwMtzn?8!SA&%l%IpV-1DO>-{v-SX%8kvIJ*|s$31rpX15rFuaF*iz
z_pezZAbjI1x5+C(I2FBdU(-bdsxCe)n9mae<;5CCn?VsYx6xXpzmIshxAv8}3MJwG
zsrZX5D2H&>Ti7>h73qKYCAvv6QJ|d5Y`^(8G|%eNU~zI*gg<-NudpM174Mxz1J-;r
z=c&}oebSCN62b|U6sT@Vf5029AtDWzY$Gl(Dx>G5JbUS<L~UqHxUnkvTn>sqrxSCZ
z(1sT`L%xSULwTz<^NcJfRlu){VcauP0m6DOYQ%~wgM>m?S>$td5DVT^q?1>JoB%7&
zPe@Nwylruf2=Nv@@U!#{=sC@C-NG>fQ%Bs~)(&e<B_Nj)<rB74gNjbhiu*&d(6Cg7
z?dfPjZX+i3VNU}l>?XNuXAzfoZN@4J)kj2|hw=qEl8~C*eBpNhI$v)TQh7w^!|S)@
z4{H#oNWOhlSTax%`UlD+<wsF|WAFv9LbQ*ZrkVO7LZk-;hk+U1G}`cFY*k{2R0}NX
zJ+3+3)&p4|_D+imJ(zMxW@ale2Fj`yf}$*a2(y?G(qqyGZZoy+)#pawmXxUTg+U9>
zzU{rRFKGl8J|AIO9D}Fkr)?fP8^WmyH?u5mZ6GC)8F~<|14dflQ-^%yF(+4?<%}?h
z-HP*}PSgOx$dz4hq`x^&o0J#0t^vOl4jg&1G+}Jbu3cEi5cQuTw7IAry}^5(;@`F=
z*z%7p$D%#sT8>7$?QOJg;R(~tOIL$a{|&xiLB2eDrLwqpbgHn~{&4rso+da>`t96P
zN4nMG&r>gq)S;QZ#JxgE6V}q{nd-%mz9i49O8Oqs!4AJMiMgN#bC;jK%6*^=?8AJM
zelH}!iu817;4gIDmPOaAO`yDsijvX!O%cc(cs?$G=JSu)ZuZ`*<Auc4ldBO(=Pyj^
zRVPY;cspOdcc`94{i$Hj_kuKG$Q>HIY+uL+0-X;25pl9W;M;3iqPT%knQqLC43a>W
ztDt)NHxh94^*S4uN)Pf34ia*{0>I-ninf9Kn2RNywPO=8D83;m;%^~=%zMlhub!-6
zx7{Yn{)<BV!)LR(RlFo9cOzhWdY1v|@Htw~$Fo9Pe2a-<Hyfz3pULy1VE`>r>9$XZ
zV<}G=!Hq|Lxz53f>Je#_-*PWCv;6UM?CubAWBoA&WO!zVc@-N$fJrPb!;~&qeV2N7
zodTeU&j0>d4Gbvr-%W+k7{OrjBZr=kCa9n0cDaP=aALw=JpO229y=myb-@JS?=MZw
zPp$^gD8kSZA*2tnlqX)Kwd%w5%a<OfvKs)|(9E4vLjdjU{guX&Xn%-(tZZpjh7ikq
zNxwB!I0y-IYa~?$NsEvAD=x~wb}~+u3UOg{&vZIwTtRx2E1S-Nfs&xa+%nu7r2}EA
z_$&AB$wS`>!WUiB8qkSrVJfLph9|6Zh7&y+P`4AA`+r`Vn4xRX-P2mIt5zDU6rc^5
zaz1qoCJnnhXATpc5Ra?ItRi1r4r(4pSDgDO2i8p|O-75=V8-h)d#bWOc<_jimwARD
zzpL-usA(XW-oKU{o$Le7!p_DKe7?{m*hI`8a2m#+ng?X9x<bAFZRJ-dJyAWZTw#;p
z3MD(k2HS=n&}II|cEZdXD*KiNC#OyWf4K*E#JIua=bh3d8&9}sy6zGZ?grUjIn@uH
zo#FmtBl7eIcJQ*;KzZ!-NjQIIO)f;y6_jt1o}Bt~3P@J8D^05%A;&`URd(GeC>@&l
z!OnXcFvj$VmsC!`zkbR0e2)X9C;xr6*Wd~>U96%n=UosV{ssTuo;#d0y1II+%MsMJ
z1z+D=J_*KineHo59#G4CRQgZV9oAIIw|R73px)@xE#Y1_u*}T;b|K;<h?*@;pPSGG
z?{_ztTPxL|cG32v2Dv)Y6&0k?Abn955k&;kT~%PZv1Ob`jh<t+?i8(CI?(8Jo$27L
z0SL$nN_JjEd9(VvvtyUc!DxKV@J<lGBF$Z@SRxbnH%ULZ;*LQZcg+?@wFXqOBwNa|
zX@TxYLFXX7G4xz{Es-5;3eVH!bPL-t;J(8@RL)=oTNd`p=X)^7e_WVNX=4mtR&6g|
zWShYD>)Fun#)uDt`%3qW!VrGFJaO~<FaWoL>1scl5jg1teY~7(1VP!9M6Xx$p)qjw
zjD@2<oJeauy>P-5Ixo*YFjv-xoU|3ZYo<QPPBexQw;I431J4--M}T`<=Q(lAhTwUj
zEI9mvJxoo0{I1@CK{$tubZ)&hP`rjXE*3LrG&|);l4%bmRI(J8zUlyvX~(>5i9Lkn
z-*-zFwS%|ZJg@ZlPQY#Q0mhhOI~bSLB(8TbfGtI@s7NI%NdEWsaHvofaf>Y0j9oC0
z7hPlcnQQ|D>E@jyS2W<pu=e?WX**CEF-)Y$H-Mxi1+#1xBe=Fxz8v>h4;o3KxhKmS
zQqGPC6qVZoKI$cTexotG2D*mAPGg|`GVv^;$PT`CP`(+)J3>gj$@O<K=ykMN@u=TM
zbxyy+*aIIIxT6stAt7lGk)sEdYlHew5U55SKWhT(@(+q*5Z8)DL|5eGt|g=!2l7_z
zSi(%;yn@;-#53+UjV+3>0;{NpCwYl1Ah<^D%D}QYjJ@Vf(5FW4D__(JlT=lZ|EjWD
z>yCJXE^MrL^xXZzpF_@fQ5n893rNnPJc6s{sRF<E)Zp*R6&llcq!;zLHM??C5tf>+
zg>IleSko)N*7aB$d_w<N=pe2%$(N?|fMx^G0lBLQNFNmPV=CwRffiWB+6B6N0hnyP
z=@If)51N7oT2pW9Lm7Ut{#-J;ZXX8nb)x4Hf6a?-%VJHS=45TGN4kL=XuGD0e1aZZ
zkLhl+$^g##%VO0I;sQ!;TPO1)9eOc3WOWq4Sc_khgi8uo8RomBi;+)2tL|KZ2=eJ(
zmTSMQqy@$cM;v-3B#`e)I89v62srW7I}-IYK(DTt(O^jh>~Dk;+;qv|x$Zz>SONpQ
zcKb2NWzGu=$5+z5t}{W$Soqh#Eh^9=_g=2K&H^c?pIbSLv%sGWh2VPie^_@5UAA#I
zBRGxA#1mE^AEl>5feX6?u%A$2t`<DNCOit>E?G9>;?7r?ABS$@E*{c_cKUzDk^Rd4
zWLdn6<q<Pc*lliNVSAa;|Jfg7qLw!sBX1%fjabX>E80Em>|NOu!%v%-=HPx{fDI>H
z6w*~!%0fDs9Fj{%PkS*cm1p-)gp=U?(`1s?J9cmxFZ?-adQpya^R?*|F+woxV7l7)
z=?|_wc=5M;;u21Dzo1k?@(}mte!7gZJ3HLXN@??05&)@@1(m=zh(q+M`?>2WPDqXS
zD9Oxc1If|qXFPVwaQ?jh9Tg7byUrOYlNC{fV#5Tx_-|s67;ud!D^UvG)Adw_7;D04
zcd(kwIbm>pta<Odm<U`B9k2>ND-1&XIVV&|Wk5Cmhw}P+0pJeEp%BUzfzavuuE!@4
z&!_WN?Nds`jiHTh%s=3Ph|u_YC22t@%{mUaz>2uhQn+P(<U>1L-Tt&rB?#o|FS<qc
zxF9scM}N;o3Y<hD3{J-iKuD56QsZSIApEDbcT^$@Ei}Y;9h<n}?1k4Qo#^%UjBfn=
zRE=`qBjO)UCWt^Q@7=R2e^Ac!L{`@mO<@?=pSsq`hH_8(fBx;((ge}@<`_e~HYB`M
z+{#9|z=y<JDw#z3z@zm@F?bAdM2e35CNIeXGsS~uT5|;u`Om(=#s=vIemXG79HKc-
zw4jCTrYNvJ*I@W)jdFv2-d0ekR08q-OzxRXHQ<fC^rw3U<zrbXjrySaG3Y?FquT@J
z78P2M{CtLV1kBc>+fwQvWK}$A5ugsZ?Bm+Z4N3SVPL*AO>Nmv`jOAmu0WxY*!p{+7
zAoZ2zP8F)Z>`qpceSV4hpw1e>mzf&S)*^M%iqRO9ELWw@d`9=FpyJ|pq$}GjBw;;R
zM|>><?#zGby0E|+$B>e32$kA4nmbeg4S8$Hp*9+j;ZQFag#18tB$K@xXkV~G=tC!#
z!UOdCKUBw%UbT5C<8R+(q!&q<i~o$?m%A?SQX`RHN%cQI+QCXWsMt5^Y1$VD{^Ha$
z(I%t^H1MyTv{i({k%>p%{m8#TSGiz%MjhgB$#0diNx+rFp`c4ia!~m`EcF7b0=$pr
z4YWjh_9@E}lcRfxdscfNBda~YcFY#8x;FB|pr#MuvNSr!cv@#u^E4pk%<Ed~2vpDP
z4NZE>DkELqr8iQDlTpo*^{@T3Bt(~9CD$Nk0p7YwR!1LkXihNt;}(MY|MOp}TNQ=j
zefh@E2bv0SwaHP`8`b|7+6^{Fc0%BPwT@KtqZsI>zSY%vErxQz)A6TF)S!E%$a7Q?
z<&?B^yZu)s1#e_z%156H!%ndK^$es(uN+X3YseObUgJ1_s|XPgt!kDL%A$vT&%5UM
zWGb-XS<&&skPhcC#AARKai@rPT*DO+htz%e_3KLl&`$Jvdr_AI*gVP9g@2--<GBCT
zi5ls=o8^Nqe^P@dP03X}?J6L5iEQoMD`l`IH<Vy8k%8rU?KY229Vi@6Q~rMrT!kQK
z6dwIwbItv}4+5njMX<`|TLL!-GcI!bWGaJO*tZ@ENm0nRvSbqD7l9mwGktF(Q2j6S
zbtV!G9^RTv(du`oz}0g)`oyR{?`<OL&|?;dzzlMqEGp#t)W*}u<Vb^%<+#rz(l>=W
zyjOO8AP)Ka<WvK#jNo!p`y0b$LC8C)`YN_v42FjzFL2c=!V7mE{B<<HF4b4zADK`F
zsqMxZ&8u=ity@DdKB@y_aDl*!1M$F^7u`7Y6hLp)<(0E6FWkKyt?no*06`J`t0@Vn
zPF-xv`gEuT3g*&|Upm#`LL0@w$8K%F|8(pUN3Z+LM3A2SK7e#4j#TeC%8QAj;wL{)
zh4*H|ZIN+mkeWYo_pg8+;t<5=eXUo6Po{yYY;r1)*ipBchvsZrF+6ow-Q_^`R|G@n
zrWCw2HLHJy&K1KiW43B3qOfG~Z|?LWKk!Bg5d7rkg`c&18z1WV!7%vr0y!Tm@WjqM
z`07Cb9adiqt(97Euj8$r1O|;`caxs%HS(=sy*iX41S!WjqH`CB4rN#X>nA8MK{w(X
zzc#A*FZ5s;Xe9Ib5f8YoF%8E)<A&SscFkfuMd4IkmhQkuUbvQU<^~_~MdLW|zs+`$
zPGIzk!Qwd5v$Q0<dzDLwk9$C0c6D+KcV*P#T_)`}Ov~>@yG_ds2Fjaxhg&nasf<^L
z;r`!o?6M+pt$a(EzfZn^N?aE%!j#m#*?tYX@8$o4rDg|v^+LZ-`_VqGe|<E`XQl`D
z%)^A-pk^G?>|5_y>0ZG;-VyUXcK(SYoN3;~rTxZ8KHmzsSUrb(HoL!L*7XNt;hPNb
zJM|u8>hbYT`PYh@DpgajGd#ro%D?A^qvysC9d+J13?WB0ic=<6=eY4lTrr8!_vr9k
z^5JK0Cv4#CeP;|l39aC`q3mpV8y$Y`@<kPqGAjHU*!6jY{>A-n3H8i%BmkSDUZpqI
z<oE%{sgW1kg!r8wzJo#=tGIXq!R$Q=K5&a!n5N(3$M=L--=yo~fYKNE=?Dt}C={eq
zy>*ib|EYe9pcv_MDCNl*Ew3PMiM|a_P5~?2R9BNF{!9f`0n9(YxzmAzL5R>ECJGE8
zd-3im3%K&8`vbS{P~lfx{v>|1B*$~CmRovyt)RWPZAUTk8%dvPv>;@mz)!NB=%6m7
z#eYLBbHEu|{DGXs0n>X%ywVT7?|9K4xR}023D%2hU`w=I$ox_fHcQvH>xR+&I5CH7
zIi&+!eUIyfZUBVx=q5{}ygbuDzw?dtiZJ2RPZqy|a>FSP<?jm0L6WSFVRswaBa(3p
z7>Q~_FZbElH&p8IM@{XP^LIVC-kI=z2hE*6B*m3i;FLhPyn4U7QVS-p3O4jP7=pj_
z2+gph7F@2p<>h@|4LI{UPE^n9!0$-5$n>{}IZBuF^5%j%dXRkkw-KWUqS9ir1Yv5B
z^!Awa&7uZqeET-7k8+qCN6A-TA`aIt%9`=+VtI&s`{3T#fiy&()>m>s=P2p7{A=0O
znxHP?{Ba~v3n&`2P1H?QP+m#A)L4fYWRPCWZp~E!>EqQ~Ja&Zm*gM_)sqbj;(h=iy
zlq7WcMo2n)N{b3#AVhdnOuLCQtf}p*|H1^^tE;LXl89ld#y<T7Asz6X5x66LQ2;az
zP5-c<{m1j0BoA(&9K843pKh2P34mEn4h?O$FlcjBwDx6FLvPGdxtswneE(iWBSR<;
zvJ{y6A9S9NmiAe@??|CKh<dF=S{QC#5Va1p7XZ<C`ztI#B5<2oKDu0(8%)2<-I3u(
z`;8XiU)3=jKzweY{LDjiAB*vcDj#z~e31KFhYAKLGnM1XJ`{u*tC`~$KRAKKb`u-^
zzzkPkKbj<;LVNni9|IF;ADQ-~fQIM;2V_P(x_jD%59NX0-wxgtgfL>hUo&@DAg0?|
zv`P;70<TQ6QorSaSUd9)lhfRwDbOMA<cxGhA<r!(ei1_*g>ubL4N_=;J^3zkVtDY^
zN`0x42IU*1-+Q5Vh{Y*%PV*h2<O4btK^4SV@ciswSindO!^FP}-*VA_Q)?i!va*4B
zN%hGrzFq8J&0J{a%`Z6aE2jetcZlGTfn>=>`4(mr&*Mw=gBaveBFzn=IKi}j^YNnq
zMqr!OJGst92|88kBqpj$*dKfIG=sZaxZEkS-!tx{K=ShQ5tr!>HW6AB7Pm|Y(sF81
zSGG~^dPc3DE<NHN28o>|@#BJDp!I;GkP6D_!;0RI>|t$})nmr#*}(qyvB`sn46qjO
zfBH-_+D9bSaXz`liuineqFxKMu%{k6(C;M+eSa}0y%q(C=~orzMtx3t=~Kh*c`~@T
za=+Pe9OcUA8VorfBi@dM-_o4mB96+)IMfdLoh|D|WUIO)K&veK1gSJX1i!H=;Z8;V
zxWd03Cx5MBich!J6xA64H8<o`gUD~Eq{FqOhW?&)g_iF_b}-CSBxoH)fk3ss(xL>i
zAi5@-Z<;0w{`B6R?|e~S<DPvUU9d2ma-HGsIKv88N*#EUYbAj^y<aSvR|q<v>+G>2
z-{GUX<~Q1c*`Zlt^E$~(WuSa`WBU=02C!bAB>cRD=43-MRdF@~@H{`vP)p+fI!~9a
zOGe5N{YL4l?;U=8U1^x%cp?*?+RUDqshbBMpZ-LW=7kXcL;=+U38@X7GEVI3vF;*n
z{Ef@jH-8qqp~CzR?Qq0*3l}MfIM0da#ybaUKVZSPa@b5;{A9pqT_TVAi1K`kQ|ROf
zKl0$;&DzG44|3tJY94O9QWV5*g_~w2YY^b)T$;62=ZNuTg}kJ=F>XBgz7hXnyoH;#
zvvTeXq{Ukp&k_Y`9%0qQT!&XAneqL&hbxZP+3^E6|K3-fWWcWl8j%Lsli<0R7Pmc{
z7jOla595m{HxS=QLMS$rAD?ZhH_mCwgb&etIADr9z-2SLQ}1(<;4kVs353ZX;#^Xk
z$(K0k@w3{FZ;XnV@b5$iG&*hgkq=bY=UYA}(9~0W9*pDzjkCYAJbFmMC}q09n^*>>
zUF7d%=1KqqXP79bJ_nF5#oE2e<N>8B(eP_O5oe$3DDX5l8L-!p#*0J|;%S6mec^w>
zg}8{1+nz+SgS}t-tFJ8_piCiWl^XCCW6wMEj9wzaldC(M2n!)Sfvy49ANK{!(X-Za
zD&h%F0*m`w^_CIwZbr-l7EnJL-uU0`|Ky-8t@XU%azEDbWo4t6?>ok{QdJgH$qKp-
zBv)nymNE6&qc!pE$GAA2Z!&Z8zi}AVQiY-+;?Hv%e-4&e!u<&Uk|`BR4L`=7CA~O6
zF0MQI?NY>)`1B0=9&DTy{>^4Dm|tN*94<+HZC?g_^X<R=w;Dy^%v(O)UTR73y#9Le
zL<-VRN$DE*ybywG#IsHfrP3e(3(q_6NdpJ>dd`VWlt0DUSZny53j*M6<ioSvKppsM
z#y?XRuJ$RkSh@1RCHoWy7biXlhz%1OMSUi91GfJ}habGV<C;W{xj}H`FL_a-D#X3g
zVf@;q3dtTgt+aIH3uievJ>eh@-zfLbtRmj2n+<8`rj|MkzHleCLvsm`o4A>yB@B(^
zK0UcBq7XDeN2wE}4r*VOw(bi};Ydn2eqVUBgKHF<E0XqM2dUT*%)N&k$}xGxJJKlc
zTql&0-=7rtxQ#BJn_+}3y689Sw+3-e`d8jQKSc>flT8oowwNLI=-<*eX=b=WH~-h-
z8y)=o@7lM9$3%F(r_W=&ekWoo%M}#{j(;(Zw6r0HtNg&s#_@;}>46<AIB9$88Zp_?
zMtV^tV*J?9!h-9g_n5nHfdf!8!f-H!eEbdxFqm!zRvr_fd`6qP!I!kqyLZDoqnjSA
zyjTW=bA{mNOF==|%d5D^kKImL=ld|ji?xQa(X>$T*6_V!^ghOy{-870W)PzqT+RQs
zH;X$@%l}C7DH&c^viPJTdOlH4lkXZoBZb48ArornnsGhVhG(;EDDlLjfob{N6nH_l
zsh*qTBzWTbc>9CBPZ)if818l{6<ih&-g!1ogx9(p)ShvU0$<qu-X}9?2B$;V6o2dg
zx`crI$HTUC@K5|%`El$%MlOwe(UM0F3XG<k`!1x2zu@P{GtY#cZ=IQx(d1Cq)diCs
ze{iLaI}sEI-!V}m*^0wYpK<4F9UR{-Fe05ys{Tn%QaqR8D~YQXo4AugN5L6C`M~2Y
z$~#@>fe*`%!bnc@!h;hP_h#6b;OW~`)ueM|Fq@OaA;Ch0e`xmj>HH)E+V2FspFO68
zpr$9+y>ClElt(LRohC1swHfGz%2NU6z9;dtb_e?`MmsZ=%n0vKc&^gsjNr2Clz#QC
z?O-C<E=$4UA~sK5G~m}oh|m4UzS)KPvlibHoDT9G?3B!bkUu?iQu+L)_N4~bhh~@0
zq3ip2!u#dpDFV3WFdGpykNTz`#nyh^sQ<s%(z_?3j{N)&HiyqBLebIP#i1ch<PX~0
zy()<Ksma*3yM-n&{g0yaj;H#4!??Zo-h1!8Ik#CPl1<7k8CfYLn@Xj=Rv{}QZ8D-d
zpUNs*GLlX9&R)Og_m@BN@{)7T^SPhvzOMI`QzG*(7VTyCUIlv!s6o%C80XcqD2MZB
zfIi0p?V;%TzA}`kK{eqs#?&<h2pS1HoPMAS>z^<8-bOi9z54I_Q_o}|@i1f64RPsh
z{tVO3`=R~TNE5wL3=V$x)BTJU(}&_p9+DSEN-)E>b;dOT;H$suiJ}lokbJQq5MgNn
z*-t;qhdnwCj<W}TMiUC4n_I;{VuJkr<}Zrc(ETdtQjuMClnzk$X~#_{YQlQ+t!o|c
z<l!E@M6D3o(~bYCjFt{lhrT;YNxZH)FzZu7E%_L6kx#j?>&SA!xrg+9h3$lJvwIv1
z`Ei7Ej4l;RzD5QqBpbb6XV_pws_GMQ8WE=W=qkUB_Y%(I)itxgo++IEmj|?_>ZI7b
z_P2(>6a3(4T*@1P{l<@P+<Ia774eUx35K<)#&8dG3zKCPNWkfvvULnPFN<RXn#GYH
zn@-NNFH4ReTI{*RDbF$kMYEIUffF0}+Qv9=eiMRX@8y*fO2Say^r7xX1q1XvZnEOm
z;)9`J$G3qr0-yjqujK0m;Z(tgD?070U|(rzARxMh)4P&B6(Zk{AO2~sTC2bed8au{
zvV(-cMbgFwMp%KMw7Bm17~+zD*0!9OX9i{C+uUoH5treE3{#uB7$`6=gp_=z#5_AZ
zVqOM(#gCVdkFC}-0<lYN+GCY9d<g#{o4FV{_HbJNpGBt-=>47F`MxRu1lb@VXv&Xt
zuuF}nB!%GSqc`HTQG8JB7qe)Kd=(@qsk%diVsPSc;+?dr1duKd1db*Ofcg!34yRp7
zc<gi1b(C!ew`ats(y~ti&KE*I&0i&lPkuHN$%dj39?w>lg(HUhJW9gTS4rV#A;|?Q
z3-oy*w-}vRWQSh|e#u3<OhAx^V3f-|P`xWnQk!*%6FhM4Gd(1L;lpan7JD*i+h*Op
zsY?qB3FfynP|x<Y&a#7V(maqgkU-X!P7c%R$WNzufYaV#USK5e!>RN7%9nVd9`~kO
zMk58raJc=1Xt@{dRonhfs}E^IXme#xydn<il9d&bbvnq$8}ge(N){fTEj!W*mIQ@c
z1(qk|6%dDqy^$Jmd3rM@0!-Uf!8uT;KZaHlZV*TRvO#>2>!lrj%a4>Guc~uEI9n0u
zgra_)>lTE&c~^0FJ{mw`!Y2RtsxeH(hB|#hywi!n3<jBIb?|N-qPbXy^mDtD<p=g^
z=<|<vbwqhgKBc#OI_K0NG~$I)S-&E9r^vj1nWhZ;MV}g;{X=|YJG-0bYt%q8lrfcR
zQwhB6+b!*96yXddWu+nF2JBhvj5i>kiJI>{Lazy3Ab)0dFXNj!bl*J4XI4=Ix~E<$
zjZE6`iuQKP9rY>P{V&&KBqa`TZzyj$U-6@c!tg>utuMcE0*4Mf8`mk|HN^)lMydr|
z?W@l6#&u#~OO15lyg&#^CUllE9wcZ^jyc<Wb{Cfv^;3Itd<N$*cq-T9LobfmYpL-H
zEdf04H#(_-|BGkTFs?)k2jF~dmj9BN10G6bEOIsRfJAwT$-)9V+86s9cnxuZ%oCz@
zl~_9H3)C&UlY!n3%kBxwD-59R9W5@v#|Vs!qtcIrB|!cgU)3#T0SLaRAM>e~5-g>)
z+MD?p;Oh8UiT}{^I6kib&0PLC?p5uvu&rb_PVpmn)^U#F9xF0mF8A2R{VLQZlPM$s
z_d_=EMH~h2GWY4yj1hy^pG4M%$C6;JaLD)H2Ue(_USA>mEDM^<eTT960?>UlAx>t?
z0kowWAzzRmEivZFW%g&tpBgzYX04=x`mg?bJ$^wE^nO%YF^}*A3H60!X9`s)o0$%3
z4bcFn9TD?=YYmXMtYew*MfW!T#OVu2ck}7qdpmll1j!s4{LkbB;Edl;^p6{;kB?lg
zbJl_r^$dF*|L#OR7%HsijY80T(kJ=|Ta|<U@8|6`?#RF`x$ey4JRZ1n`LJ=a0rmGN
zL^d$y>qEJ2VSmAZI#6EXz0qB#2l}6y*3bDN{fy`%98#&mW`c8*4Xq(utGp666sHfj
z!>yFZY<1vTTYq2Rb3@cSW$S(i?Vp2&8LcVKqCPK@XP2^O(SH7!N7VVtNN?yY?4Zt3
zfvvLTnyFQ3;A7vFFzZCzp~Y(gCYp=5jRXOonj=Q=t{dUBX6J*KDvR2_7ubO~K1=zt
z0X_UuRa070WdvJQ`$r@s>|j!=<j!GwfOF$lV$Un10Q;VEXOvv@A#XayPQp<g-l%mG
zSM{Ji=o@A>yz~Yjc~bwR6MDbjpH7o_UxRXn6V6|5pzr(8Vt70rr~wrZ61Q$GDZnA6
zg^%)r8mN$ch_5+`xE7%YEFLJw-TbpXiJV*k+?QyvSJlW@62&4h@*MGlh5}F7jUk<0
zdMlpMSOFApp4UbHsGwX|)0*xn6;Qnr5vH(@dOG#_10VEJLXu3X<16}Ye6yaf`FQtV
zJj2ab1!E6Lz|LnWR!?&VH>uM#NvOpP*8cKknSUAJhEARIgIQv%n@T6*PBA&={;A0F
z?&n3k$#vV&Q_BzVQ!^I_YPz^FshvVf{_{QfFCD|9^*$ST%EL14ccCQkX=#ytF}Dz>
zYmdq8JGSF~dkEKZKi<c`zOWQLHp_~9llNyxmzbcv>GFmm3*rT@Ejv`C9^&H3^1q$8
zqlKiRp+7fc-{Jpus+M*lULli;2W_6vHcoc`KJl_PB^I&Kug9E8fHehh>E@$c*MDOY
z%sZt_;8>Z`{t@{gK1vXGJYZtRlK4|(8s_8hTMs7)KdV&Z<)-#HaXn;MtqA3CJu4%&
z|LXI+KjJ37KIwE>^&}bgIY`?6!{j3VRe5k<DmNYWx9#xPOO*F$Rv|ty%0Y(JR9;Tw
z5b4EHmzq(gXEFfa*n-2|Pzn&hiC<&oKEfX}zun1yON6PNvVT@K^#)I8YQUoMf*xDo
zOn2m6YR754@I4=KJdcm%?&G<<$%;Akf4!jknhlG(F`-+SMusuM5Xs#Ja?H0&%(moH
z7e2_A)~czT1*5cyX)AiijhU~>S>>}Ljw4T`uh}UY%t|pVHSuc;UfS>|O{<*<n{?Fp
z_O4F^<Dbj2khsW$F_h`(-MWqL!~5Qh!&U>hUJaM_;3!J0(32!l@&sC){`0~-Iq0#%
z^iVF(E5ukngFnTSaKu-Ol`(&3tPOhUtb%JO$8ejkprn*k6)3N#xXwRT0y(pe!HN%>
zu<Aq0*yF4TL|c=-j4_H3J@7p4v4J?~k-R;95B0~tUG@^e!qlMH-u+DEk~Cl{)z0rg
z8sgy6;O<39kP{tIrRP?K0=k^#_%kYSx2VD(jS=;?@ykKfD|NVQolk-OyrAK}ouh%~
z%ZuJ?)m8I~@KinY?gpO%Ji93rLjDi+SJVqNW+VOZjO2&&N@(uWul5+!ey0u-LB%RD
zQ|j<_`q{gpXWEd**r{D3s{!F%(Q#3T&yuykxXCPO2yZ6>Q}-(jV5VS=g7O{eljD<X
z&qRH*_sqB{`c7*CJ@sea1Q~K{kVNe3+*wM@J~@A-*c;t5g=6y>P51D%DlhZGj^}ZH
z<k|OqGZDv4H$zNqkO6Gzq~7)?k-)dxm#lIr$gw{qSub$<2l(^u8DU<(hH$=JkK8F#
zS+T9;Cl+P*r}6xPF{^ZfMA*YW=fe+MsW9gP&z&^Xk9vDq5_hP)jGJmX*{h_ohI=;o
zyk3i!0+Y3z$TR;%0DeQ$1H~rdz`;-_AfCknMg;oB`!|SyWOl^UWpV?jFq+kuFVl)!
z?-lxUqv{Y>PGhvKhI-%pi+jTUb`fHZrrV-=C+RS@jQ&Gv)bmjDk>b^dzoM|Ew36RJ
zhx%mw*Rj#ld?1%(!M=+$z1<SrL*`}*upRn&5M#*(Je+C9E$@`z^H`w#olw-LKt;N_
zS}F>kY?__t(BAjcqnPZPN-|)qt}ne$A_r%tKN6g%BnP6}_5r6Ne()9w3f39g!G|&3
zc1t|T3nDA&g&f6FV55t@pF}?D*uSm0JuGD4doF@I4BcC*6%Iba1r;DRql}*y<OiaK
z7#YH+BH(hSkGpRf_2#bRct1ma$Jp$_&jDm2$gj|y9TO-Cul)0jv@?YuJYX$e>>uKU
z3_DN`hoSQ`O8m=CEC&qRyf$Jo<bjSnM~w+L9<U;9yXnNt2?0V=U1E8{P;p6OWYV7>
zO8fn)T_)#orrLj2%~Ag8(J;?}VDK?sZb>btJ(vpa=n&RY)rml}j`PR&aSFgv;v;*X
zM+h`+e&VzWxnR$@<_E8)I8c-@lCW;bgZ#Te<MfjpaDtY`O?E*9n!*;%1^;n@5wV+P
zhoJ;;U$U~>PnU#;*|@O$2nC?Wy&vaV5(ggB)W1SYg0NSqDDqZZ8)(Ho-bk}i1oz3p
z%n%&vvFP?DNwP;=h`2b3H?QP@<(jnNg%SzGt9}wV9)fbLb3P(5=pIJ!AEmHbz5=wU
z%)2(;Q3G8?mR{y*39ygxSQ3Av0Ieh;Ov3-kLfHwP3Y$~f5G>}hxf`Ygos?ptG_|t8
z<l@EDPLK2rjZzl3e~M_Yo3rrglN4lE97nv%K|KAYGgT9EvT!G8(S%Wp2FMk^jZy6_
z;nlLVyC;hFaM=Q{rTq+#aG|$<UA-Z{jhjhdwvSF1fF^36Csijn;f{UCPyh=LEZ%=2
zHIUB@5f7hVKPAHl;hp5}B7X$Iu~~zYcbgUBXXzV?p0L4bE8gVoKsNAt^L&B`?U`-{
z`c)LCu%f-1xX$4ZRuKNlDU=<>4j#Oof8U&80^!70`VSeH!7jKwB`1OnGQO^<k29ja
zN|7C6g$l$SAgDF=Lwghb=-*#%z9a;)2a>fxdF0^!@vcsiHzmlmsBahb(!o#WU2VxE
zGB_`Kzr+A>>>O2uq9U2OpvtzMw0B?|xAj>~;Mxc+Fi~nuokx9JD{a*Qe-Yo!&4PNk
z6EUs^17fm1Ikw`eC;XUwehC5l3<!{B3&UH@{v`J<DUf*4hp{=g;h7^-ZqfWJ!ws={
z+j&I&#XZtexvN&WgvW|Py$-esvAaLVdRBwbK4INwtmJ48pWEXnQn-GEXPx=OlW}7Q
z@4aWAdnSGs*A?=#jsCh61P;1-{y}{MQJiojCBXoL5;C;^s)#^F$E!C#aUbVWK=j{c
zf-p>FZaQ6cr2|qEx0GMrM6f7(#pL%c8T@2>trBh`0^}b#4_y99LGr7jw!}!Zw|T1c
zXF~?<VPmN-EeZ<)Kg$wRG~&<G*vRIthzY>h5hPOYNQ1I+ToNbBk7#0(-32j{Fz42o
zr60u)>#})|`sj4wMY`X5*%dA5x@wc)YOW6-CZ)sg?%^Of@=h(TS`T&wblQLXPz3oW
zCf{P~6hUfgAz*+@9ZqR|ygce43w#nXG#8#Kz&VM}Mj;>NfwuL9pH-D2{JoaddAA+)
zxVcLFC>_xSgK)_>8I(u!CB0d&k%BlJtplooJUDQAr{1Vmpa;aUGmG`eHy*xSxp0c_
zB!tiYc_+n(d<LgiC8zN?c*%Fd*7wi=uIqLbPj9FKJy=)=K0-dy*U8mcGU)SR$P`7X
zqXlZR*0-+DXhW<~?%?f49k9wSfB0bD5ON&W419vMpkrHS{*5#8LlKavAcQzXVD(eR
z>AKKP{Lr#e*a$Y?_+~j?m4Ue7BbOILh;N#_MWk?E8A97fuP1V&UMMz-mvq16(Ej!s
zZI`YbMAEJCj0q}$$+30k54;@mS7yiFyDbAkIukNlfX>+h_3SCs*LP1u+VRghC8&<t
zpMQ;d#wB0J*P0;?kl5-)?+tcE_@+dssmP=PzIU(nyc|*kXXy_Kvl}wNFX3$TZAl5t
z$mqqKqGf=#p?YO4R}Efmm6p(<`=aIayHov$i$O-qQ4+DMgnYHas~hi8Z!9>NdLsXM
z$)2rJr;jT53zv8AAw5Q>W#)xdvl1Mar%L&XOF-G1qx+lR)qy<q{?lF#)K{IgH9b+L
z43k5r81ADvplkBkrWU3EAwH0MR4ojv-<$Z-19`w``PZe@Npuf8@#UZh>8$gid7ckF
z5r4KIf%)~CJmiWf|5!)ox}m`6Wm|m_=&#iDp-qzj#ybyeCCw!Oud?zw|FH=8{<5`<
z3=#!;4uN}=<U*iT?-yA1mJ6Q$l5+@<kb~!a!k;h7BR*&5ee<+Z5yZK5r!8Vee($~L
zr)N+veMbN8m7-`_*xWTgNbQw^t2w{P7z<IJwY5pQ#Yz_5+SD}Mv{e9QI?Zld#Or&>
z7tC65PXg4x-JZjLmj{B3=$6~3P(MfVSn{SdH|o_INL8>yoQc*z_tIk#l&hwGu2n7x
z>+9XN3T7fe+gxWV7$5{}8&yxF7i1xRPob#6i3rn7F}h^hw1%e##gwAHMqG$4Q)iwB
zf{l=AhBwYpKxJ<Ax8vhu++;?y6_&yR8wS1mU(1=`?O(Z`zQ+u(IP!=k7(K7^VhQJ_
zOPFCJz-91d0y|9pzUQqQO@vi=1rS(&pTiX<MO?0aPlNgsI-eP6GQwl~|5nnMk)Guu
zv6@<ddg#&^c#HRiL6OAAiR+3CnCXWN<|s>m?R8h1@5G`|l^rE>CzlqwIypWb-xCB=
z6+6O-2_ew=U6d;QSqwaOD9A))8KK6t)y&L<1AXpg2;I=@9`rP*wB#W#3{6YkyuU93
z=7CqQ6UE4YOOndv@&T0FyfjvzVZ;WLpyAqt`quy3IGts4P6QiJlKne<hX>;b>!vzo
z$d1``*jrz-<H9yJoFZ?3;>P$F6stNo_wm{Nt<R6z`|;=0T>7`-*6~Lt)Z7jDCvlX|
zS2HKvcW{P_H~LM72XVs_%1XNp>-Zk+1*S2!O<YXO=k(0+F}%M04^8)ULg4Y~x&Ha&
zGLAuUUUGkL6YqR!UD(Ki2%G8`4O=xJ!2U9^<+XW{U?s^V7oO8FV^t5GG=;*6u*eLL
z<rKC>yzTaSr``ksW=N69&l$;x8Q$e%X=$gzI!+94ni_B7X>FD67P2kl30|gd(;QFZ
zAFciP7I|tL-w^Pm%V&lG3)uL~p>mHD>pE0yB@SD}y9iMp*jCTsz4d3m#njB>^DLhD
zpVubDT$tJ^<1^VX{#L<pb^{iy?QgaD9ZezZ%Q>C5U0#gXWxcyt6pj=kmKq}#&M;tP
zZMomt47srLbBrb5?{Q+T;rmIK6U8yBdySb_6Atj0$X{{PX@Gkqe^y$(b`}58urcu~
z`3C+y^9%e&c?W)w(m`eCh7xw2i)WO$M;K#bFYkH!fdPx$X?;NDBZ`%JZ{1z%6T>br
z&J6TfuwbIP9KYNjlVkal>b_k?f>@s9BLZBw2sZtZmBB4f5c3kMvL^0j$HH|Mm-~u^
zF-(J(n#WNH`{X!7KzLgO>pWyDZHy4dO0OMd8k>?~vez6-L<a@2D?=BaNM0Ah_AY*C
zN;DP6#<FytpFb&vl{NQ<8L_Frf`;<mr(raIViPZ_S5(0E@=Qj&JMz1=2-QA}QiYzZ
z%>Ii#3edl~AbsVYJcv0zR%lvM0aKmbfz)Ps<b!4Y!ES{5pl=z}MCK`hp1Tb$JXQ%<
zS6<{)l`6xuP^8{Sq7pD?UfurnTOJbMDb(cqC_^_1o`mDMI`~kx+kdUmfJTG3ll_5e
zF#Vg7j1>8xed^W-SYDuf&-bD_l`%cI>MR^Qi2Au{YLY(KBb~=(TfO_obv0;gF}W+U
zpb1)Hg5#n=+Q7X=^GMG}4SZM^v7(n+FiFLzjeDgD@-j)odaUSq=p?p6@=XH*Qnl00
zV#;vhgh^a*z9wAKt-kze3!Q&6lWNqgsK<$F>MeJN90*5hl8aABz`$m*B^#A6tQ+1>
z2<1X^r)bW_?<mhTBav5QXRZabqJI`{)FXX8^CKTwG!8Treomz8qUY{S?<JWtYLF_M
z<sXRncowsL$B%!gf(f_0UIe-qURYOIIYjgS#M9-?a0WF<renm_BHu;RqUSk4zKquE
z(b>T^3NU9p)1Za)sMG7^%Yn$xt6e|0o)Mz}CzC(iUh`Fi>la4s9}x*cN9OEU-I6M_
zlvV#_*pdg^)6azOp<cy{UH{!AIf-(F35q%+U*y4!##QvnTh!0`URn6%u_}<a;J=rs
zA$_KwZl#?@2BfnIDXP0<K)3&!o+t9Z-Fxrz7Gb<$<oB#=A!x&&6z$No(>f6NexoGb
zNgYJZZKlR@k$=TRDD&5tHr$BH>SbF+xf}9+e94+7G;rC~!n7{T4VW{wX6qt8QMr=g
z2h<ZR-@pFtp%D~lbe5U@hj_1gU%vB2>B9=uI}tOKn{z6@!RTTu3#tNV8N|^Zg?&(v
zy#e`Ka;Z#huEZejEHmHh3oM#o{3h|{1C$%eKz)*KC@=ZI!BOCCngV28xkgoi^tXxE
zd4)wt*S&m4wVrfb9c<NlXTF9>!GQ1d5Hn5*DE<<L=(Z_<QB@V`OsN69AKLy+eTd$t
zN$)<W-&ci?dlST_salW}-(>n=9q9<HDQ^g;(Z0q+;~urHAjG}voF7E<2m6%Qo&Of3
zVgH@E5oWCdhZO!N<E|^fJ=(Zzenw?bd)@Dz<gExilP@l7ff5u`G0gt%l!REJrXUr4
zWiYYn-ZErV11h`5w~~Vzuz6J@yunotBpPGbwAAEbORBgd(izPeS6Tn^BL0E(RsZ~P
zT~$cBd+%Qp`uTLM!)1cj65t(pIP$Ou`99bD!d1?oIrNTEPFpUT8>ukU?0i{BnV;Qe
znot5y{k8A_A~AS>QQc5^NCwsqf3lRv2*G*Y#`UZjX}DmRHYOJ(4D#pcE4A-Q!Ah+`
z`u$EZpg%{OdC)5XUuF{<YWO8!NMWnv+_5Z#)?Ur5P>=(;n5?r`@|a+?-kP{^f*hnO
z%+un$ws46@*EeI{9N{X(dFzz5DF9=+c0*iZ7yp#d{v1Qv6#i3l@Q4sSA+{-&bK<7k
zB>t!^d8Ig?6qf$EbZ{0kVdK00>`(exF#-44^re|yeC7CoJT^Lrf240c|NZ$0{(xz+
zuiy(4m~@piJ)xb$A9H55(%ZD-ot^#fPtW3UzYj60>ypcOvUKvk;~TUfzCR&*gM<)H
zUhfP1ih5e3JBDZ91`{J+%X{(A)-L?>$Cg1-Xx?8*WeU&lW`O#<o&{Yz>KRi>a5(SD
zhj<IM=e(GRVakC0Mt>(CjI=gAz5J37j0TGx{=H{J`%mYdN4#7>V^ERz#h3v|hi>V_
zJ&=b2s`FtcD0fZs(3+L>gcR(1O#b)y$sYb62jlrpI(|4hs-_r2Tuh&o_etTX_srq(
zlVv9%R<P;{2>dul0)GXfl<w}618$qMwd}Siob7tikx(xLt0a{cB&Mj3#WzY_q(%~Q
z$RD(rq%wewXyxsm4gp{(4S73mHHCNAlqr)iVSt^M|3t*1Sh3uB)BEw%<2awAVH(o`
zMy!!`mjACSC#27~IY~`0LXky<dkcvGW-TE`UL<&o3lhkow_Y8?<q9Xh_;8UQ<-f`~
zW^|5m&GrmC<j4=h{hrJ)l9?NpCj9F-kRLp!CCY1>5cNcFB~lp9vw<F2=6#t@^uRSR
z)0Ub<iV25FnN<g(d;4p5oK1xSSaT<J8B(Z$r^7kHC^wXktIwc}|Aut*@&wGfR|Wp8
zQhYQ;+<;Z@GfDE}h`(seZhVM%$VpZfiX@AQ;Bm)-ix%bYI{aiW<tU@P9KCq3@C|wJ
zGd)k1k2qNMMcC&{)2guZL1NGW>2%ZI3M{M$(B4OX(r6v=i~Tp2!y^%wyIiHw)$~2$
zCvT>-B*bXIqmHGk-sjbz_4|d)43s;z(l#8*Lgx}KUq{wICN1!2ZusZ)LkaHu6dw06
z&_{DW^95;i?<?V38Ctuf38%f3=FD5wAXC89WD4akSI?Ch{5PrzI?0jg?Z0$Eyodfy
zW)T3Px#fb_Cj%&Vco0C!&I`d5n=3nG3P5<C=kDSL%83(C|M^uX4^m@29^R-gLSTBK
z<}EGa%HBK0oHHo};in!GmE}l+L(1Th{ci=R|C&C*Z-RQnPt5XU1j|FUN@^U5t`gk0
zt=Z!HBLR0PT?Ki|5r<4hm{s0M97rDg<~Wfm3Ec}eIVbkzz;e*|*Kn%}ocs4ws1BW*
z(}f|k+vxAM5fSV2GC&-9Bu#7g=;T3?n7v#VaSkWMYA%JYsY3#Zue}VpDvT}vx#5iZ
zp;n3STIIe&=UN54h;Y&bN#WSLxqp?xJU5vC*Bt6QPl&qa7$5+7P1d(LUm+f-7ybRS
zC<od7>rUVkXT$?!ed0|JAp=J*+rA!bp?M%Wc;4DZ7Sh<2EfsKbz@s;RsEo<Nc9oUY
zYkdXa#)gW>R~2AGO%XHyCJiMbuV~MPNx;e1jGrzcU9fM&>+xqBIZ*hy_$13)4m{>n
z8{5s1FM5>cpwLSMcw#G07Ho)v^Lyb3Uvs5k#Ms)POhp#{$o=E{h<x+d>^|cpu>$0#
zUv*(2LEPD()v*3Z8DPn0Y}n3`g93YjLf$=D@Ue>Kz2=MNC)$CJ*9YZ6aOS$S0f9Vt
zKGx7ap{W9Onc-CImzCk0t!{tE6Z9NucS<lCLHFOYcG?*n$lp^`A~l#GkG^)e{<<y!
zRna+W`Jd$B$@%=3?$Odf`_uM!Z3Ma(##K6<M7dw~CkO0;SJ510QyOTtq6{y-l^;2r
zP=s3PR};I46aPNabeYIs3QBlZmnhGwz*nw!#p@X2dj!-Byq!UMbG6;+uUAxHb+?S*
zU|Sl<j=#4!iD`mw0PC+|)H^S6W$jN!xHhn4e|_D?r3TMxQ(k?okOoRUKFkQ|gK0^!
zQs4YgPjsqtWb+I!$UDkaZX(c1Vro4B=pue+#VIANI0<+uU3f7%NeDUu&fahDMS6V_
z!F|eJ5%5Y>sb&_HfGtJrVTPXqbf&Uwzn}kylWTVEey7F;vtf(2i(b4yNq^~Q2-?Hh
zSeLu{PVxhMpJ2JXzy<;GBvilC5C_`tOG5-95A<IOsMSHeN}5-sM-C`BVCUu21GN@<
z=r!E<>urH}eBwJ_aMA40u*~)IM3DqU2+Z+1rlNUjP_DH87W(}@x3!EAA^%SF#j(S7
zCW!H8QOjqff?H4Hjz78`;Czf2Prsz+0mnPVaW^e!;lk?Co#hi0K>00#IUk)f+w50_
zr?R<W&Cfe?9`$JpDK_&mp!=_#^X3+f=K)Ttg7A^C7YhV`P3|x(;)5bCt*1*!-{bg0
zFuAYI3=7PXfiWjL@l6A`kd9RYP|5yrHnvz1eyptyh+IT{*($7e98q2`COGZP&J9gS
z9EmZpOfUj^a~2BoRDHNq=YFLtUk4n{yRx5&2Vlr{>2`c{3Ra+c#0llbmw(5+u47Sv
zEm8wA6%$2JyUs0q^-u&VOa&yHtdK8(MEz05m=w@`3}SEfMLP7E!L-S@%wT4RuT*4_
zgp0+`C+l5>VP2B=9M5S9)DJHD^@xxk>{XnekbV&aV#*%*!yd%7yF8M1;EG&nyfym5
z(TH2(F*=)#d_WZY-&5334$N%IWw_l~0G!JQZ^WTKChB{njaJiq5U=z7Y}UvUu8{oc
zotrV_Ky}tBC3i*y3WzDIh6ISg$5S)ELka27;sae*r^TRzM9RVmaU?xT2R_OEpF4el
z`&=EX2uxbc-P<x2huu#zMbC$X;r>?E&*v?C@Sahv!Q($p@Kf~EE_ufdiJi$8Z!-bp
z_1D=5m59LbUR~e!Q4Y9PFX}CedSdKfQ~F*K5&`vPjU~BT%22RyI_c-IBGg?u|J1KR
z8*T?TDwyV~fYOP+hC|dJF1zaVE^8TagK~mCt3@fn*`AeU6~v{wVp!0Y0(#)5Zz%4B
z_Nk9w_;YWd*O!_-siMeD9qJg~gt6Sx1$%D6=7%n9@GMnKFaXV4^#sRZUra^eMJzX8
zI)^Cu`kPpX|0e=mbi+FLkiNWaf2pkeJv-bBS?ZksYyfHUgj%-Wv|)H!(?&he5JY&S
zg#Wc7-q){Z{{-)xh8I)qZz)VHA#guE_1r^!0EeabN=Dl7g~_g4j6)f2QQmBR8?FGw
z&fU4bhHNmzQRlOkLkfkL#<nN*2|>*ecdAu_8Hm2qSdae40a30YtZj>eaD$ELrMV{q
zNVw(joi|~HOd35uH5Cr9(<22bIx1jFBKhH|!U|1k?~~0-S%Bz)QNmdx0Z@ER&000f
z2%1IY@%ahJKjuV3`ej%a9ybx-jaK9kmvQd%?`j!fzh(9DlO7jvOWtT^FGGB&1+8q_
z9bquP8*DXMjrw5|p9a1~x;KxGr3w8G;#~)Cr8zAMKn2P0%2iL~`|~sZh*M;PTl1N$
zPp>n<mS4bHmOVQE-@Mk!&JzTKi_Y~ubArH?;gj{$lNSiJ<eM)k?&I=`R>#9QSmD~%
zW%<4oPFOy@%G0zj4VV8M9P@08L0zl!_|gvvpf2SWELlT7&76a*ORT6*Tg>>RCI=6g
zSPCw%)F6&<z`+~AU0&$q)$%BiWd=$c&r6QKNWfI2J&IhH6Y-zO-z!-m?#d3=*RS#%
zFy~8A6L=Tp?HU+#rb?MXlzFzP1?`8tWH&n^{RH7fJ>~qgGADT3@UqVxiGW%__Q*Jy
z1jKdcU8qHQK<fb4?`M!d{;;OKduLb*h^k~Nmy1Nef{EhXLk3YeedUN}`5OAWT#cIS
z*JlH>?XNa-DChTP<NHZJe-7A?jF_IXXNURM-P{_aLJ+9XR{M7f`Re`NuXUOTKr16h
zTzv~SBw>v=<<8TA*s0(|>Q0n1V7a_279s~>-_xIXaEpQU&urZVbRXHVH&GB~763I%
zZjl@s#HkgSN0o-CFDUs!M+myN(w{igy0?PzS0CtI6V6kB+1*I?++!&itU$4$IR*HL
z<>qozsKBjaqj+U?X*jl_jTl1j)1aW(FWS3EpYBi_;z9jo`9$2e=Q(9y?vld_fsZ6W
zjrv9=3F78jRL*H-%fP=DHjZc+HR#xSy;^r)9BQrFTisD#*F%ehV$MS$=xTgap6Fr-
z|ICN6u~j9+xfQRu&7=vVsxMz+724qNStPcs-2nOjpDVgz8gNG4P@SB{7*fNI&hoGT
zoH@qfso!YBeW5-}X<sG48Yoi@&WeFs9WC<(IxfhWNlDfUJiw_^lM&8Q$w740guon+
zG>p*qh8MS^eS@fGxfh)PSVZn@p9mHOSqtsD^*7w0&9D^zN<<9&UD-<}2H4=h$u{R3
zKQB;3F_B~@@`B*x8|EK60#Fxwh0;Nh5l*Cd6^)?2K+z2e;S6-oPrSp@bo-ecNYzIQ
zMKel*X+)IE8$MwW&uwb(v=oAxyvjgvB?(A-Ant8bkM^iXW~LJ(q5#<mUv15V;8*av
zswY~u3{WLsu*(ntW>aQOmUMP_-@K01%yPoD#_%uJh&QRz*_K{lhkSc4?b-)WU*)Rr
z1#>~<pU6D#Oha&m8-{sxoHm{bK>T0-C*7AeaB(NJiS5w+COhM?$c}a|&UBP#x|b~*
zmuDk-UEnqc^byXTkyMfeWm{9VyJyi}NO|ot^O*shMk0f#n=t_v;ToJeU37#G`j)tp
z#z+A>-I;-xU4P;!IglLtlne`7R}H(jvW_Q^;Ga&anZOl<&@I%SMEB0|ByVe)O}zh@
z={WaQ5)fqjT^%m;4{z0~{=v6@6!*q<r`wT^5?Jpj$kdfH!fA=A+z=XKa9B3%d#y%*
zdCYcQG%Tk9O|SgT3pr)D#61-^zHUM++2*M5&}JH!U`g5EBh8Mnng~xbA|Hn7e`ELa
zrnzA`i@(D$jR5GF?eBPM9ODF<{la{FNU{68*4gBvy|~9`Ka}UqDWcx6Hbr#?1=ut*
zv-B#HgtEJ#3uM`Hu-vZ8)Vm`IJvWC`?FHmute?WZ^O^{}lT1JNnMo8j#99qF{gK{o
zk?1mC!wp$UJ(p+$#URsqxN1KM<;)vQ>f(`qyn>@F{Bo`km~+baO4<s5a*qS~z#8hA
zv6xs{r5A#MZOgsv9%*1#@XDDQM|%)ohf3R@vJkn&R6|uE4-HQvB=4LO0l6PEC%>Sc
zGlDZjjrX=h;d!QsqgRU{yv{Mhysn|S{QKjG>VLB6yt&!`Z4&vK;?v7@P_8smq=0yO
zPyvPwDX*O!m4o?^v6HljFEywWbv>9G&Al%z_blV3A&A=F>vy^`{4APyE%${R`<K|1
zV{u*p)0P=dKKEGw6L@o*%Gr?#d&jhLAWOu85kFX3WANex?cLrg0o*G7)y2SQ)Od|=
z`4jlBS?mD6PkVcti+&R)Kx}Ul%`O0{<FuPCTO5!s_Q?D#8zG2(s66`*c5%<hZ;8`a
zvO+*pmz*2&zmi5=r1+vkgY?sm?4DC|I8RMp;!Dp4@g!-hiaOW?o_W_V;`IPG5cBz|
zU$Q*HU9>;Ye06sP7nv5=Zn}v2R{9usJWx*XZr=ISB1LZ4^j{SE=dg`)dfv+HIkAgV
zxnXxQB#ICu>}2({E+9XqS(L|{Tb$rwaIwJp9u>T>P`LVe4?Q0z4r5DWI1w*BJtof&
z<!VA=-=3k@gB{Wjl-E3@AdZfLoF!cvnw)Gyf5ytdxa4hXM#SS?O;K&CMO-dZaW3bn
ze<+_Q#+ov^D+R*zWUDJ5WMMyav+$yo0O%{_P^HZw-3)#xvU3SS=Wz<_!5}~U0lstp
z-)|2N63l<I7l4f$L7^Hsh|jdP{ny3^aZg(&z16olk-zUrNWls>B&398?KuhoYggmf
zbmRlG`O_1t?;!&FTXwba=UL&>OsdYqV_xV__8`$eDFBr3^tQ4(ltD!|qM7voarEta
zG&L`BL+SOQOef@XV9YGqj0SO#z@N?}{jLa0E+es(ame358B^ssL<Rix(|xT@XwS7B
zmdzH!1rlG?ZmxD1gMpn_T%U+4tUlNbnx)Z)Gtp{7e>HUBCqb3`d8D&_yeLtabOIf7
znUrmpXLVq6&f+jg1ocyPo$aVVzP=XeAg8B;YT#yvMQ@>fD%-d8v5&I~AVFJllo-Md
zy$$W>L-v*7k9f(n9_nj3`m0!M-D(7jWEo?<S2ZCo{IclP2LSeLNjK_IKb17s^QoYh
z%CN*Q{Iy;jAhMFW#Qv-n9F+)+e~wdw7K}Q{^FO5f-B3{o_RxY``~kbS9~;BtTCAPL
zQUyviVjlfMKJwbH9{PV@8iG0xxw`eHKAaGV!e2c^yvTdgj{0}C;O616r1TlYMS>c8
zYgN=sqh`+Km#+)f^6Juuh$m6mc(&rFpFG4i`VR6UPVTLZ@N181#Go)XP`}ZN18jbX
zTBy>?z@-1PvgTn1aO^RCFzv4Z9~{z2EnX_X)lWY@)T6v`%Y*oW22N>Erwerza1n-3
z!xI$#is(OfK;C4Vhx!HTMwMj(1QD-~(T?bhESR`xA4t`)!}=@rpQSftpnrCOki8q_
zM8*#q@+uHVBKD_@#DN4*JRq1@euVa*9C>dRf2qQo=H4Y`)PvX=`XK7dH(@Z^I<7f^
z_J_&bCQ2o$k}ymCHr$h25PqTl&hJ#B5M#^BSoA?0#@~OUjrb`8Qe1&c{$VPxKT=F=
z6)FV;-7oy^s!M<-Z`!>T4Pn4HM)Z53`z5x`zq=5?2V&PL_@DV9y(2aA$~6HA#5q%l
z{BTnU1mqW;K2(W8kL@_Ge*^MCw(qyrA>Ed?cFl+f`M}d_vtO-w2m?>)rbzabJbb%D
zeH5ZC1noKUtU0ryP!rztGXw2!wef;H8Rk;J^-ssGi%begr`Myj@yg)(pzU8Mk32M`
zR=9}DOTz0xJ2KT&De%?gOr}9|UWgfGuydIrP&}iaR7O0r<Woj}H&M^%%28>y!9OJs
z9okts6UqxOovmsYqNJhVQL0@B@;6zE39yBsIZK0JH#zc|G_ce@2>r|=2E~%~))CGM
zu>LM_YO@CQklt~o@eo9Fuz84MsjL{Bd^q+(5Apb{SLfur5r>g-sZEp9+!F46UT!5r
z_lxQ)3|uZ&#*o&2pMtVS9TGjdTN$#Ip$sp_<#}Ba+NR&z_xr1Wk(fbHo0AwUD=9tC
zNRb617G}nkE!0oJk{J;thw^pI>-$_ptUw(q{vp?03LK6C%6N)VzXSb;I8GhZM-*?%
z!7yr!e0{3B=hn4>!DqXVXh0XL#?!~to}<?<rus&oupYQ2+%&!{h=T>rH&5E~5NBo~
z`_{oLv}gD)*78TZ36y&r&o!`{!m6IROeL8y@SiEYFgU3XRii_nvp)gIN2uKx5;laA
zJMXm#1<hb~H^KJynhA{ReBzCJX9!)-DT4|#OdxC^Qf>kHwAAwr$E0|8fMKG&_B`Ja
z4nO0pe6^4XYQIZeQ>qh!efHBaQ54EheyPe#mRbbJLicvfWl%q-j%oAfLDX+_|F`CI
zEd{8_93C!3=gMuOZQj2R1>mQw=<{wjF2oZ%C#v~I04~t#PjAwT!B~|_7i$JJ5ZT?I
zO-6YM<HN`8)EB5h*-WB+om?1Z5U|hk1mX}xo|1TWmJ?=;RkJdtk8#uiR;vd$Ht`3~
zDZ^>WNTG(=;mSLAVZ?K3{MskY2J*h=t~~KWzUfzMRurWY5VX)?!4b<3GCYiv!rz(T
z4Z{)lGy?&~Xu0!{s~X)mEwm<@v&g_cjY^0T<zGMUZx*_#J;aId270@EVFw5HU;5um
zSRwpKuGXoV7rHKI$jQzNLS9H(*C`TyNU*w=CxiUy@xSMkP6<mxnTs1&eX<xx-^}{7
zhk6|3?4sC6x4D3~qh_RNW(T)GwJ*WVK@QKRqvoi`MB(4LIiBq*dbnveYDbSavW~4H
z3kSFOfcKAKgdggi*Yht_`48>!)kfnViHoD0@$R+`oj5-X+|cP#z0U}u8qNjzZx|sb
zuaD++GA)Gclef_uqr4{*wZ3{J3mnPT>MPB$gKqmuGyxSS%AGF~SBkR1y;1KE{hM4s
zuVz$zk(wHIUt}nxbW?&}0lBZuN#wtFe&|=v&kSzWeDjtpbl~2h)@$1&49bq&dV*T)
zAdFX=)j*%)P%1*xZ5Ii|6J%t-EXAR%q3-u=uppF^-@CSYjRz*Iy8WitIgoBFD@Bvd
z3S!yKLRYv%L7<9A;p7A4*ED2I&v?TCv(LY_{ITT*@19nfc~K$AAQ;J`MY`q%-PGPa
z12kuMPky-Mtpfr!-*c=u5hq-#tkp#h;6F>Xu@N(U$TnK6<xo<G;7Q8S(6;~~S<B)K
zwfgW_R@J^YMh(cOl%kc4(Q{}i)ak+(b+G(vviJq@+!Eanl=p8e;=Ds~ZYCpa*rukd
zRstmzR_{*6R`G)nPCYmz9kWIIg(SbwRclU6TlAqABR4Bnee-4K#Y>EsHl;o!=Fwrl
zdB~~PhsA)xVBPdB4IfB`BzHcRVh4HGkG9S<yde4PN!f^*6hL|jR=z6^bH_?O!${|z
zjK(Jw1u1|h+o0OaiZJxGoHx05R|xhPJAHSlL?F0O>erBnB)Cdkyl2fX4E@1v3tTgz
zK>AN@1NsGk!bM$1>pSAkeNPv1TSPrqd0&fH-MJttC(?uQ2kN)V_8Tuq7KKK<=U;~a
zI{1E<hT}pUB}`xF>fq64f_PRp^VbPnAZa2sYOK!zPqOFsHlMJ-Q^NDdDSyb|C|<|5
zzLx{^_a4T43PygtsRy)QC8<D~c4U2g7;#Nl9QE%bUnSG}YYsOfM%3RGuJjghgo982
zx2L*?zK^}Olv!8=#9qgE$o!UsieE2V9yD{q3RAg~1<EBv;Lj9PpgB_h4e_fJ=y~;Y
z{xWf-2|vuMJ<a%1%z>UC^0BkpD>#}RS83J+M(iOUf6W_C9$;q7rqM>6=2gM>52U|I
zL4y6WgGgEetcR%blUy_b#@XrdN#rskFu8um_d1Zmx8A!NepeX*jE9^4(bHk(df|fK
zDLAlLMHz{QFL}VNjg5vqk{gqFu=8(DhyzpQp8EQsbq62K)$_B6T?)i6<uQw)J#E^n
z{K5VwJg`n~d8?3}4I+g5t4EMu4)Y~Fo!PaHd-=e3pL&!Jf=NqEjA#$>GU-R6%lr%Y
z?rf#LB%~n~AN>vs)M>;KEwc38uSfi^*mH!xP;a+NytQQK>`Ca@lV>M6gLr0-`@>|=
zd#lf5(i~r<0bM5PGKc6IdxdpFhucU4F!u8H=Sf<CC%?Dc&#ez^lOD3%+p2)OzCmws
zOApL<2^09!5Rc5p;E$s(4l-hbNDJnbz&$+9IY8PP^}nq7+~7V1`5wLH+$|?TI__U)
zF1H1|b$v*`9exH(w!q%b`V2fFh&U-JjW}pwdkf~zt-<MsT&pyVA;`E&NR|9@fgp)E
zYr!-_&<y5Cd{bZq&)&VLO21|TTGGlE7bNuI4!8If(FmmHdId6oj4AAYh^zP}fc)Ot
zzfx*`>%%)syJ}%BL-=F&g`>>Y2wWBUs2k%M!ToZC6gw*wWSL5RCJ<zRau%83GkH&O
zC1a=mWyDg$U(9i!nuizclV2t>=ppVxxVL66>MvRkyqbL<`S2w7PuHl7p?xy-)d2Pr
zNUunJN38Xh7i<`2`^FvkU<x;T#}{#QT??08ylT+?uR@@&lLYmPyH1QZ*NDSQd7kJu
zNS6v7FV<$q3xc=s%>8agMKDlXC>%z;fBlb3^HrwMz99ZT<3EImvuvbh;=n8fCw{bD
zUP_XIE&-1-^Fh2ouC~a^+s+PWY$tyYBR{pB@U=^K(APq>pG<gk9!8rOJ|DAY1@&a=
zlFVlmaF6Qln@Letu%VQE`HBbiew9iEbY*fvHf6u#INFyDEl^VwiV?ug&Py7n<2c~s
z5ZWZSGlSComia3c1fX2+{YTPY7831FNb0A{0sl<8)6~=<PFdj-cY^{uaK){r`q3yr
zW$oiXufFlX^;?<G?;S8g-|fV(S31H#@WfXDk8)}&7mWWkoh5*#x!GI~T^V?3cz5`q
zPy&<)^vSOcB7XyTM9-{>1Dikf+d*12xb*1TU%M1V*d9KAbShUC>}2FZPoZ2w@t@rU
zntCa?Lr#BxH5~DT8eIzB&Z|Nxv3&M<G<V979v*32PyjROejd6sA+S{UY}y^+0s|U5
z8^+U;K*)Agaz9rc4l@!sorHy8GVvnU<@++=dU<Ia+3g`unO$_96YVK@+8=*vWd%3i
zNxMSyIv;Z`I{h_a0+r8?Gy7X<q5KAGn8=m_un9<=K8JDzS1YTYR%WR|fQT1I=^s^a
z*9lV1M!C9X!rj7+G^D$^eVJlGKF2<8V}nh^OS-+VJ~pJK0=L5yr?QG=!IG7uM|qJ0
z#^PmV8d1Lf$BnKK4>ma{jdWhhbx;HyuhTDQe~Tmi?b<v16)tEw=QXY~jCx>~iAmDX
zzn8x}PG2Ndg|GQ_@8k1@;gmC_92uGy*SfSD&t8>-jNt)-E(Y{-lyBLS>`B2dR(kml
z3kp!BXBskmRsr<;FMpuAE(9S(EoTpFWWdxy^}=t|<Jdv3s7iu-r=Dh|GUU<(aB%cs
zUD#6ys@~B#oUWpUn2~=XiMCvz#iaW181cQ8#>bV{BeroG4;rPCf2`qVnEZ85?Q%lK
z_2#NkmU-M}`pW1nGiLZH9EC}|CIp(YX3=R|N_hFeYIIwl9=5gwR=Cw>aNOka6h9lj
z;j5;1)E>vtV~Ydv17<fEu_{^--oq|B%>A(EDa95gHYXNLqVaVXU!0_4E1I*3Uono{
zj=05wbvw1c<{=}-()IqS&=pc(-#fV6!-J@?voksmf?v^Nk4ejlCax1;dzr*uqBh6)
z+y7)Fx#y1X;Y?Nx^a|vd2!G>x;!i59AuYOk-kc2c<d0c@x5|LU;rtm{zcOJ2q6zn+
zdJx~`R*cL*2qStvPyDt+`&$bzb4#6N00qGbtNcC+%y8^)RB$sBR)+eWv;HW8zw|-O
zlnTnt+0NL8Hn0MH$vvm!Vre+zENd&BCk@?o8RRYfDiFFxZ<p*O3k>J}Qr@*ygg>!a
z#0sP+hj8ud%CCMI*yWF2Q9dsMMOvmUzdQM1NNC;I3++GrH};QA3mM_re=~9OANe8Q
ztXHHR@zD0QDrEB=dEuvo>}DJD1iniv;f+`^@?Z3hx~JqzL6Fi1pId0oc-Z;mp@JV1
zsI6ZU6;eWT6~hAlAdmz?cC+iaA0Fb)Z&$eF(ow@^Wn|~0QFJeQILp|IdJ2B>s8Ej~
ze*VI{%bl{LoWMn`6jOXl2SN<4zCS^r1JkGV-X)hRK@^#YV<_S#v(O~^n0%H8xt|I(
z_Uk7g>}vkU>zb$+;{D`$%drmRz8cNokW~amYnSaC<a)qzZmYT_$N)}c$N!{c)_@$5
zYfRi{aj+W`m{k~I0<TBJn$!`8NI*(kE>p+=^=WSX7m7H5{cL3yc06$Kv>@-<oiqTw
zVzT@adM)Vxk?^y-1_wNMUuy}Vy%de<a{U!{eR!R}P$sm7es8w)<<HiL16lFg@AFw9
zs5T|=(M7q!XXpN7SW^*!z)$zbChoHW?Z@Ts&(ekAEYa16E(b{0i^&yFeS>uU(a7XP
zTWN?9Tl{aNjT`oy;={I23Bhe1&I@hZ98helUN|^F2!5X$tVTF!fQ-&+;rJCX=;YU>
zYCF@w)tYn7Ep&?T{%pvZpE1Ia$l&_80P%O@6Ov!B6C%GjztEe-Dh1HE&U0?GRT|Ep
zua&=5i}<#|FW5Sj(0-DMBJjE=Jy@>qbTvw$`AAoeB0^FXlnCpxIb?+(M|<_o69Wmz
zt8M8KWkviDFi$c3P7H(b^0sv;67Wy-1zaRRJWb8!HgDv+KjGi0_v#Je=NUGPL{CeB
z#*|R1hm<Jzhh38z9+w1M!q>IP1zx0YqQYBrzf-+?=GU^UJS0?G*z2cAL0+KS2e}bR
zXj#l55cZM+>tp*bE0)6G@544EhdBPJ{@*pvS|cA2J?W-m5jr0uV>r&>ke`i(ndJ$K
zGVG{TM|Jcl!sWrW1ziemaFM@DCa8sc>-3{?D(-S%pxT{VkNPYk<-Yrtm}<k_C7(P_
z#8rF5&~nfaig>`?cf1>(Bi-$mqs0(T5N@7*z<m<=0V)Wnw>=6`Z>$ZQ^+38dz#^6V
z@SZaG?H5!@OlX0(Y4JO^3KfuzV&_srJ?q-l$}E);IC$d;yL-YaP((xJb+JVQamK?-
zndtsM59IREQW(PSFVd_lhx!otsxh7gaX!w;e2aT0q6U6@FSWhrwLtwOiTYzVRmj#;
zs7oo(hWgt5#5?a0C)u^($IT^0_(dGRm(8LM83E+4tuF<_Z^_Lp>5=R3pE?_B#H(vy
z?^dT8^ve%O{z=K`T?_@KwjJjL2RGDzAb&2L*A>(+CgeNNdcc)I!{|o=F3`Gomg2bT
z9E`=X7Cd6|gw|TgdrzA@A=h8fk5$AOvhOqL7oEBQuYacw(DJwgRkFUrUAr^zRCWB+
zR=OK7ow`Tk)#V9h?Wbo-uDZf}OfgZ_O?Pm-bll~!dJfRd{6-<C2Yl0CBQloof@}D4
z%Ly?TXlc%7D^9Y7NaKzPvJ=i=#yBhRL(~KK8qdWp-m(GlWyu#7i#E`^zTP3geI9B~
zer>pX)*iSxsK^NPFMtN7e?=m|9tMMQFBS(mLJ-H%skN_ma69WEesmZ0tn-OCR5Bwj
zJ!PBK{43<|JazbQRSnIhst*VBN>HDWa8a&CvmVF?CXRHSQisvCw_QqBh?kqc6EsMx
z1<9XoSw{0~!H=K3Q4g(=FLQ?YH8c9$HwZ3qNynghxN<i6m_QeN=v`&0kZ)2^%I}qn
z3hI|gajoh`d?ttGy1xn?$bb56PfyNL4&JJ`>;v)*+KChOhq}o?r^w)sbHz%)ClF$J
z8u>=>L7ZV<wv|El#S=o=*K)AWNp0*sfc(8t%+>p74o~6S7}7z$A4ScVZK3G-{%fwY
zWrPdm90%SN+b8LOQq!-gXm%|yEUVa|O-Jt|zcW0H<SJlRf3j%e3*yLYtfjMyARSea
z)~sPx5p1UAtS%1%u*6Y1QT@<|#?31t)$O_<cc|=IbWax)ryT#})$79}2R_kodPBH(
zrI&7R7vKeTkwZ?o5lF@RxmNZYK%a5<?B5AZ&_DdvArWE-vG>sIq6d(+GnO)o`l!gr
zYp{=b%1}7*pVb<-I=l^a7<&?oc%R|E)wU?-{Z>sj_9pW8c!g!Uthva*yS$($JC9M$
z*$vCWNKGJRQ)|sSLK(8_^<F%<p#k=n@5gkZkK=c&ji}fX<!cIb!b(~VU=N6!$;^yk
zZm%jJkHrv<-fH{~L4CQ;^E`3y2T>1KZYvA5rXCy??5za;X8@NZPVJbt=s-iY#lr#Q
zOVX(-Z6>8rfkx4gIx;gwc;*|(>BWh7i+y(^tCf`D^(%)P94JpI9Fngs^HmbWl|rW`
zp9z72Zu^IZ5tN5=CyKKR5P=IKJ#RS(g`rWE$?ffTYOr(qdnp$Ay;E+QoAGHVLj1#~
zF9TO)!J=>Ue-xc}Jk@U-$L+oM-h1!O_p*ghq9n7(C<!6sS9V$1MKYoyvPVgs6H<f{
z4U(+L-g`aw^I!k;O2;|pd*9df`MlpDo-6W@!K#uY|3@BbIzFu_@+pGZh2zU(r%*4C
z{_&lEC=aXbQO9!h3*~;OdN$J0b8nzjP@Q-}1Bl}{whlh40j11fvzZDXypw&%V9t&F
zTDC^oj4#FEjFe!-k*6+vTYr&%8F^azYf2&>8K7Rr=h4Y0X{vAur5|sQ$UvI+kkj*N
z^jxwNa{S060!y);G0zbP!;2umI9`n$3^pPoIU@=1jsmp>B(@_sf(_MrjvHvM^`AKd
z{W1kUNTyH!KH)k}*Y3?}-kbk0jZ?aA;u~GK9YX2ixP<o@qj8_jz;8-mo4Pz<`I!c`
zjU3!KF4MxYC)J9|CO>4?*<5}UP6#hX55jAj$nkn=lVSv(oN)Tb%ZQ5&gz#=uM$aa!
z8MCZ>sFvL_hcn(?t`-nl!#3}~q`pJO3R^RRM{ehY;I;2tnq*IAp!(}%{*PAx_W3Ip
zhIr_}B2T60+zlF7y>3eBNLq!-Ua^X|{PGv`HuSdFL*MURj9NZy1?yP4NXR`SenI%T
zEX4hk2>D*_$MJ-j{J?4Vi3Jn0uHx2iEO@EeF~I(HKW6PE<dqvqi2sZ@QQEcySH{+N
zaAjepYR8I)xb>wZv7@3T+)eIp^}Q3~aD}#RSR_LLDx)MjyHWo><=)Rwrtc(B@Ot*z
zrE%nipwxG&SV#Tan*Q-uh{vn@?}A0%dF1~NFSz(sj2{1aL|m~O<q|qKABW82BtX<~
zimEkA3g-Nef(I8+F4=EtH_B8A?oBhDth*xx6Cr<F#)$MF^@Obp{|QwP5(<ASl!o%!
zM|Kyo+Z14LFO{SiQ-hwsKy_Yw4OsN3D?fef1Mb{h0E5jSJBTWEvHIcZAhP;YM%N5G
zR0UjWlcy1f<5|1wzsXp@c8TWFyK&?{OnD$1d7ca|iAd|zOOV0Eg0hz~;hGTK^66z3
zUK7q8-}x?1gYqctem7!~7sAy+;Da%p82o!DMcJ;W1Z6$cg(KcFaQpOd+u)EioFe+K
z;WD~sZ2JGv&$C6JH@dM;PmYy<sdKd)Vntw0N@}QumlHV78vP1uKs_OSMiKvF75LNo
zF)aO12P{~WG*LYo0;T1;8}0*)1k{`HeL?Sg%QPkf#AzUxY!-AvuUDAj&UH~<Wgw$=
zV{;5ufp2;{<(Ieh;L?RT4ZiQ%@X6=N*KTbkXuCq&9NHiP8m#%^wQk50ebaenb50I&
z=1*&ybt=P&UG)>=Y7#)>ao99SjCe@lV~+Kk=xNu@Et=Ad@{VTAj19YD5aci6%G$eu
z8zw0+_%lg~e|TtjD<*XnS-rKDRS<t`>gwavR|O3Czd^wy4%*`29u_RTzsv!Z?KRCK
z$(*p&TDo*%QV3=QE?WDb9>Wz{Et_4$<@w{4k?%2zJkkN4CbN==*Z7#3f%h3VT#UVA
zuPurA)b5d;EH+<pcy>0$@aqRy@C8xRaTRh1*!1Gh6h6e(uaLyM)Dwcj(^ETY(?__+
z7G+*OqRUv*ze`$81@EyWf!;*Tb8EPD3685ue~Dn$XFxFS88QA|cC`eTXCH2AtCDC=
zj|l`4PgJjq)4}$=vUSnxv)I{Ysiyap$SXa&V<v#Ou+Q!$7frWP!G9JUn7}eQSd>|*
z6&Fyz$=mtrV_`x-N@FF#aG4L>H;D{_I%r{URZQVa<|fXSpkwt92P0hjovv$EO$ID$
zGyx|?2_VD%uzQf137i@G{;<$)VV^%}Mt-NGf$BYW*4vzu7}t@;fPKvlcJ6QHy~EEW
zV71pi@g3zT=6?ON%9LXRk&3#Xw%yXujUW8T_Ma3a2h(?(UlWBE@3%y;_VTdqvHS5d
zAKLdxI~8&w?&wRh-!JYXo{DeQh!l4j;+j%(?g=68jZ{Fdw2CvjM?WIZj*KG42b*2n
zxI{{WU%kVhI}=Tcub_?zRx6vtIXm$Xt{Bqbg*R<q>;`j#VqXazq5LNHf~rbweRd6-
zNs6Bc{=f`p-z=U{+8~B{-Fq8~s7GpdZfhwtK?(e=&4_tKW#K-BkpE@mUtDeGP#2a*
zIqYSAhg&}-(dTBVhTlj4_>QuFxpSa=S%0M4xp^kwv^Fy1)M5k{m8x5Bre#2_Wch)5
zmk_88vf715$pc<9^EL+?JMsnZ(qDfe0^CNNC*>b#K&$!c14DF9u95kCz3zhw)SCRR
zT&0!+eZTO?(J<tD@Sm6W>QDtvv-bHje6k=uf8pikRW)?KSt@NjBMtLf#Wqo^i0{3+
zbN>&eGE|NRNr<7o$AdHc?YxD`U_?pi;Tw(exDrHJ7tN99t8@J9R50@MHS6W;#i4Vr
zFwd8dYie*%IVqic2Kj;(!`75;q6Vwee~;DO$ncu%cC&u|EcoHrYw97>jQFGc^mCdm
zlz6`8FMq|RNbq6GD^+#b#Bf`XklJ<i2qOzJ^C$bv2JDvC{(eP0a3$ux%{wShDzv(z
zX<$Bp$x4%cy84d=er;lMoaOxRmx1ib@C*yMW)i+O8E1l-`7MX}m&m_&Q$yxQp$JeI
z+g*`F@9RIK8m6lZoKW!RK}ymC<S+H?qvVT5dmFj^97mK}NhrBjoH@>h&aLzf;fW+b
z$>VEAF+~GTH$FRAAg=w0@M+PxGn6p#9v{lvP7jhL0-hwyG!Pxmo>#m-ffbIqU3-e=
z1tO_G6CS$p!pg=ZO%D1#?*1Gx&~=3eIy$MIus4x`ee=Gyb(bJ$A9)1Rqq+Q(KV~e1
zgTnCZAi~c|n;W7-RSNDE?PBVe@5vA8A)e0@zpE*Jh%?@w!RFs94TAq+hI5EJ(0w_m
zfbg3l5Oay#X+a*iJW90lMEgYdll5Pw8PT784P;&m$isz{)+X}1D0j>hldvj71k{)7
zt8=93K&V`R{!NDf7%cXsGd|!3nVKzc4}LbF&ttxjEF}O*nF9$l&diYaO3urg3gx!y
z0;f&UJT=%{qFzUt2vG3+cyUGmoN-<3ZR1=}o3LQGhUN&PsUk59<cLQk{pxfU;+lEY
zUMi=Jqy(AzM7DuL2B_LC4tqO}?rpesQ|d$>z<va=?PbWoL}5N>W*hQa%6R*w^l(C`
zRb6Ll<Rs?W^>-&rN(vs-SDxc|g8T`}(qCrDFi30v5gJUR4CR~S;o=)Iz|Eee+q;Az
zp2BihC6f-&Rr<O_Q^>=75%$to?*yn=o>B<$Mm_E}Uy37T3}#)M26JkRz-IhioLE2F
zL#qt2L>e2yB4tYV;0b+rcedMIssQ;l1zK_J-727*YOtmC9{ES^*D6ROzDf33Ec2Wh
zp!v?E&j_;$^2O5ACMBpqyl~wTC-Sl-Ke;OU=uir_v;I_6#tR~^DVr9#H1edWD|u_Q
z0EpK_cy75Uqxt&p{>!r%FsIZUEK>ofF~tN{{X`zrY`IKpK=*(fXPP7nk*{8~QkeQQ
zFYI1yF)2Bu1I6sBye%3DFuAH-E-^0-&luvJx`a4E^pOXl;qe|e7V+1+FO>-%yz017
zBuWJiJNFJ_Uaw#+PehXIO^M;sYU8AgCgL*uO(*}|iu_339+&JUP+lc?Pfd-G5{Qp2
zUsek9fa-dEzMb4QCibDrqw5|EIQ?w*Gwk7jXHA>8NAfnYLkU{p#!41+Zp&savfsd{
z?LP#+5nsb3jnn_|{9%B5zm63QHTWU)NuK-Wj4(ux=eGD0(Sm}BZ@YsU2gEBDW^Qk?
z!}~|#1{Y!uu;cGtmSMDnc&1mDhX3SIA4$-)LGrd3>Xje+n20Z8sq&PUd=pu~pYw8J
z@st$E1^qfVe3J%<!UL+$>Z83*KYd~gI*-%@JGt2PDS;;;^`gW33EYX^>MM_YS>ap$
z9|vkDD*SUY1+VSmRh+FEogG8}K1NzRLSJ8n_RUMa;#)LS5EM{QBhj>sIhx*O^Xp{<
zRn_Sq*f9xEO<vmTh+D^eYxy{CHA+EacidfP=Of&biv6*512agdr}P@!W`NMYD(dgf
z&SOgRn`wM4Jn%DA_Wk{JcChrwR%Bdef(8<`;~R$LuoZu|My-GjY@*hbIp0%3W|q;d
zZtqR3g`1nm)N~RjWqiuFTT=||yxGIm*HC}EtaNQrnHEa*ezn%Fl7V0^^XrKlYuJj+
zGm2%hah&>5?2#g)4)~nkX(}a@0#AKvElo5xK0kC3|9~9Lr`6nyhoaPBFqft=Ilu(G
z-AhFCz!YW!^+mGG#o&ewS-C<g;t;Fmmk{t{upeRW7W^LdCNE7k@E}e!cfR}bEtE6q
zYMH6EIgo))t!SfgVP%LK9dv$qP6H}h+h;GP0u)(EY5S8S|8PiQHXXXxm&~{v+fmDc
zamF*zUOppW{d(r+n{H#2_v5giMe~<V^H=Y$eNu;Iw_sag0VR0(NI52dfERLh!WG;X
z*<c~g8pvFQ;G&Yog*%8xgY%AOjzT%Bj=Je;n&-ku6oj3$@0J8_Q;O#W2OQA2!e5i3
z!vx)a^qZ#;UxqB?Cx7%?W{B<JK11t^xc5|E%=<P=IO(gMGfzq<vDbmmD_a%Ya8PK?
z{#*+6Fp?}r1HzeL`287inQl_B@JxD^gYw%XRTlMB!{iWBo)>im@l4__kOz1kvVdWM
zxmCRg70{{m#>%A*;)HH;MqCZ!fP`IE-RTd4uztBw!W!|Rf4$<pm>0tb_S<as3YF|Y
zk+)wugYwKq_1CRVjIjXO?WG6)J1mg(-tkx+?J1IJ)eTNG2txuX_ZEMQ2t>;~Vwh|m
z$1KCR6mTOX_==wMoGV5|_`9tHKQ2z}<7PhPvM#DF;xf&%b*NbXVE>KZ<@~urhA+HA
zGHGVQjQ5NVJv&!3kCS{Y(xkfBgFVt}m8i{72BvE+xoe9|aHH&XziBQzZ2i|<uAjyL
zDJFVCw=YP-ipUOwx*szXzv{jz{p2Z5neoH0j3)_v{kLw}*(?phIWHdn_<4Z+8H=E`
zW!S}Svr0Lfy@t*;29+ZBUhqLpG2-~zD#5SQl!af;h@g4qZC}<vE+`%%+xodqfag7x
zpG|$hfgkL{eQdC%$FpeVy6V3f!kHRI?|qp==cf2t9r+vUSh>Ld$n8JJSU^&#LN-$^
zZs(*wch6G>NH;za!0$m1<WnAx-D>FJ(?7EZBtyeE${+`>+nQUrX`fGr>KeP4_wc6J
z{!3Q4RPGGJqe75DLhCnJhW2NFg(}l6H6UaoHH+dW+F~s*(Zwa1zzf^MV>Wghc>C9d
zdC$-ax__Ky<exTyN@IWiW3f}P5n_8G^MwU0nEQ5$cA9_??wd<Onl<ohzGwB2It95?
zzk~HSZNY@aE=+>o6%vXH`(DCnc!yv7a{}!@iv;{CIo0eTuhPp4w|xSL&Y6s#6E%Uk
zjp4f9c6)HXbjzmz<#`SoH`<?9m;;Mp3s^^5f~4<sk+GIJJpcWaZN?DI-}D>3jV+wv
zp^HfVc@{S~Ow5j5{^|lH_c^-i+zfzN3iC}szFFQE{<Hac*690Q;!R@2NqDAU-FBh&
zBn+#$R{NV;!rPp(IHP52$kp^8zA0l3vg5wLYu&6M;g|6<msN8}$)+CqP9lZ&pO*dw
z6H+KY*jCw^iO#+1(Un(tQSQCr%+kACs5d)vY2b~GFa!^+<$eDm0$4g}Znhcn%}W=q
z;%_lRRo0g>k$7SFY5PUmM2;Rp4ik49)C3?+=2ZbF>US1vx`w56@q;DJH4l4qPb<jj
z5sLRf{Oc+{1}b!}2&bhdRa`@!j_<gpsA_ij>s~J(RD+(k)&B^M3pwCY$(M?F)T21H
z^Jh_WPyqf-t2^tR6#{Cph<;vXe%OtvbZVhtgbSTdPgVvB!jRXP%STEUc<t0iZ#T^j
zL9;MMguD$UH;=`0M){y)92a-I!VWBHnvZAE{zXjjSal$j5gO$tOubc69xdeBIUO`d
zG+FuiNw`ZDY>YB)6TU-x_TAY7EiP5KnXr_78Rg}M1ykJ|%EaNjp5_xb4RII_xoUNS
zgBqqr+FN-;(fwV+eJ&2&Z_emB1z0gELB(^0BDDcgu$XfBv*Rrc&eP|p1|Lws5_^JV
z<sLscYw*0T71Re*@3DM?dVtcOUroxO|1Y(?F&Pz&Dhxizekqg02cm^OlSHaS`0pee
z2bV%n{yyR8rHzdsr2WdL)pcS8BcDJU!%oz1y``eEbtDU9`o3mvEYcuW*i-XCSro<O
z2X{A=_`zwAZV`+H;XyQBetkv`4rG2yOT1md5wHFDXp3^(nZKqi89W(*`Tno9VswuQ
zyl}Cm{HY!|AH{B}r^!Q@i>B5g;#8^q810_v(*uH#%-Hn+#6z`qI7mhufMmRy0L7s;
z<WX}B|HjbVeYFkku`vj0w{+W!1bE*Ok=ql4JmFLCev|be|D4ONN?N5pc&ANt*_P?S
zu=101B42bao_0uaX3~brK;t15Ys5kR$xFLOB@18nG}7C>&^g<Yh`jm&@(yn`M!vm;
z@=Q2Z;OdlslUr#sxr(yz;_dE`u^8fba^wtnBi_sk^*rS%#E}puq7i}jO5he_`ENf{
z0;nwePT`8g!P;!v{@F(*=;T}qsVzj`bCANH&!qxyczJKx9jifa)x!a7L>?Ag^eo+9
zYl9R04Abe8!x+IraSzui)C)M!B+&g!4YhaiAEIbUVQeyIj^HEeBbhs0ihF|2J562+
zv(fCZ`N?=-=7=2*D@<qNUNFFl*3<h>P|gnQJF$KXI^ffetuwWt0qWlN>=9i$SWODx
z>byz=If|XuIq3bWx#uY+CqWOq&(fNCmgu3?tJl;Q^@FS}MOLLz&c=Vx)#}<=1}N%x
zUT5@1_msEG90oj8ut?=Ww;{{|1oYSJFIIDcM$ffH!MAMa_t$ZK<%R(AS(x@u|6m6h
z?~v(G9!~I0NgPWFe1tn8dPCz^APYR?kT27IhQr<}$OgZTBu2e18vZbIYS7+4kx}H%
z0P~6}{8X}R(3zP1(soWCBEK_sXojdjudzgocDFvzj^C%vOH+cCl56`7!8*|8K%TYg
z!U`V=FS(AOpTFoed2Sv9>Z3l8Cpch{grWO;uRHxkAoElHm~aj1y*mEv=s|f`O0}wj
zm|KYd6R4kCB8&W75f%n7zAD3(n$7F`$pA016n%C4)!}*<uiFHs1a(2=l&?Oig4DTh
zVNd^|9<^t3XBj%bmy<PWFmfqEt+w1o_BA<JpxJtT?khdG$a}bNqCVG2LSe^l17mn4
zA9q2OP#anjcR#QXAdksNIs5qulw&@uz8#G2>!aQ2@5`D^A+txY5?77-10SwL<(^c7
zhUAZQm!|aKa&+hEht39Io6O;}zKHrby012s%yqz?Bvo_?c~OdS`7XtFTBv9GNOu?c
zS<S8&2~MTS!k-G|-STiLkdnyGm1p1vhHIzZ#E<iWb0_n>$2&>5oh22oh+eOoh4qgL
zZ4|)n@)<^~P#!+3m>UGXU;^r2;%jA?5IinAQ&!ky1E=L*C~$`x!A#JQ;I$+R5VD$N
z4$v|H4d2hU-~0e1vva$`(Q}eHiX%O4+5$FLc6h47PJp%FK%A8x2J!x$m2KK5A?Nii
z%}gFkVCkLQA3?m6gplv^cZ86?luXFc?5YtE9`-ZjeMIxUHshER7Yv~iCr-7B{O2E7
z33MOOp8&c)pI)8l(Se*yJ7-Q6Ll|E85pnlFLVPSvr$I4@6~FuN9@V3EMtn2Z(4ZX!
z5x5x;$1al5;#IOnRa&*lp;<7uA=8BsuMoZ?`HpM@=RT=_-U9I#PfDZH|85V?S0SH|
zv*7?&Q5|H@r7(rt3XS?vcAo+Nr-HlwO8#BUw;+J$sWBBky{nI4!$kz&{W`b6E`SWb
zsZEzeOwNked7aNO-8_U#C~qQ@U?IVmlzldOd4mm485NzzQ_7EbE;}FY`|cQ*82)Z3
z#E2a~$!b77G0BJLN}Ky|^9d1{)9d<KMl<2fo30kT7^B0tWS-6aNlc38zCGtRdAN<O
zzv^h!f58ulZ)vncP_)viE1I*mo)7;|fNb)3odMtK;x59b#EPF3&Y=6y-h<T_6A>yn
zP2lLJhpnH^%;O%GmaoW4k>YPgU&N2re8nz%LsxqxJv#q!*zlH7193g?O%6JCh{)CN
zE^B3j@$Cz<v6D0~AVbs6&BXxQ+xwN*&6&V@xUxTI1o5)(9e!dTCW7q--gGS<9A>$*
zU-6)K3sX)wt&&bphR=7g?k-BD#H**p3eVMWK*}wVu}ZRESiyTejolGaln?)_B}_<$
zUsJNzBP1un+iT8srF~<;cUP6hbhZ(KQGUV0-;e&_Tsj4-9DdE=YV#=aGHhsJE2N_1
zQgQ`$%KB}~wODF=nn9GHwVXIen|XX@Il}>UvWz|~2ZEp#efpt9IR|J|&dmD8P(X!{
zTd~0vZTNiP<(A@V1U|=`*CU#YKr%=E$ILZ-kha(K3%riLe=;BNdjy?;#8d`(hi!e3
z$XqBrSA#r9A(u<IS2aNC<ZtJsY$1pmI$IV0O%E!YLYV%d-U;)o+>Zy3ke@8#o4@~&
z0DMk(wN3xR6u8g$1{|PygU)1_JCs<#_!@{(v*|#%mBqx<c0ixk;5%~Z80xXuI19`H
z<Y;;gw@e#=D`T!o1>*l;1RUpr{s4R$iNl#()J30<a#rdu$iKW<OO;Ha1D$6#MklR|
z;9hm6wo(Q1{HEOTH%GqL&`S05&$!Lu@WpTHg<Iwz9H004zn6&jeSB))lmYSWsHi*R
zQ;cA|!iK!<3L~EBct!hV%NDL|TzgZ>{WsQKzEtX_^ba?dcC##><0o#!->r`BKLMx>
zzs{7I#*FqUtr~|HNufKDOk?;HG4QN36E%7;BR;A2tu}XN*pF%xGJPNcL50$-av{uM
z^iXZ6iI5Oxj*bZ9`e>nr$g^$YJugUU(=q<H$pCrkd}5!HXkhQV>0YwgODy0U%delP
zmv=9RkRb|vpTDa3Il^Iq{2<Y@0|AH|W=&5c<4!;Xj%HsvndN_B%^4CZ_nB9*;>tno
z&sTZCN#XbFXY54y`=V^uW*CogB!g8JT^DJfONr?g{uwW@K00Nwr-kOsUTib@<%}>J
zg8#lPO9e6Ay8_CFG{C3V6%!nJge`>pQ=wm{gXd3wKkm@t1>%uG;^4;uK+a^=Tp~sX
z_f-B!B;<U<U6NFYXQ$rA)jn>F6nnFTGgw{ExlBj|OWg&V^K;9%<WpDT$y*hmE2kl3
zdsPTtxQSdA<6!`1>Djv<P!2u7MD>l=nGtMX|BJ5q7iCnqRGEw4WCL0{uW`0IRn$xM
zq!2YleOTjrrxQ^A=7@s-E^V|VZ0J_mbeE|>?$B)0t92pJND`0jo7Mu&P*2K~O&#zO
zSdM>rgBhIsTG>s|bKUvI!lMMl57<{=8yX(k!7R1)LzS`_;0t%-5=klxY|}fq^~#HY
zU1MU$)$^htce2YYv{e?^%ZG_u=n3#Ye>N1@ks3l_Kw5XTo(cT?w6<V?=3#C6o4Mi0
zJH1cYSzHyShx{htewCFbpsk1&=t;;UE^s0u&B6q@DYYyOMpPgyGE@1xk`eUVNhr4t
z8KF7#h3*h~D>(V<O$Jq%1^oFPQ=G$W2=hrdgsOr}A!X?4<}C8I%dQBP>$K}a`r~?`
zT1qWQ?cG0}JdJYQX@4v=)`Y;vQh%8=AN^eax%4InnnF2O;8#M_kGlC!>bUugF_89+
zhDoD7pn8np=BH^4#3(L2+rv=4Y3#=D)g>di{Vg<e*b{)J`1RAv&rmM>){(RQFJm}M
z*-rE^9H52p^&}z6Ma35j7X<m}!`lZBUL{T<-?>Z<K_ur2cDHZPC&T>^i<7vhl5*k@
z3rZdRES$57HTye0E*$uUMHLlmtMv22M`rujWOW|+@T=pPQjHr3y2adHgm3_X)~~s`
zzZ}4Bx5pE#ECBUs8SRW{f7zE)CU+3e4IK<aMuW(+lG8%*XbSOGr%k<5S<rsKVl?8)
zrx9M*5NWCKMdwA=l5bw8G|-%x%UWiOnHxgFyhH1fkteD&UGpsBnVzk6bEc=_1KRBE
zTlHyzuxg-_@QIEI*coGO`EGClS6}dbB0@&wEi=|{$1}r7?-`R;aYDFXH1nmrlnm~@
ziy72<MhREX?guBDq1<!1%^UKIjG&)>xpwRr^@&Pb{b@N!Am;_&RYp4*n469Na-1Rr
zC&@Z=AII@QsGW)GWm_hYS=kOODpvtBr@It*MNxRC<f2TRK#li&ELd!ZdUE3&mIG~7
zj1Uv*cXBV45d3;gb2UHhV_u4e#UABUkfrDEj~hYXN6n{ulJ-fVj-B{o?lvEox4Zf<
z$nroqM+9@`UF7rSU4N<MD+rhDNp2Fa@&l)ftyboaA_(pHl(wK=rIG=5374l0Nk0f;
zT9@SD`^bDGd4mGDB|H+T&CrJ7KZi0is8{VtP!w~B_L<vH{@f`2i~QzZ;z`X_e4zei
zC4pl}3L>|!$Mjwj0XMj?6&Q^ApE)D{DT*pUDr>T^xq&MDTzt#+AWQ|$8$Z`tUKEB0
z85_;d<U}F$;{l~VgA(#O5`DUZI4)<pGuy|~#6Z*FN~}qO4Dw*i&7ZiX0BSeJ$~gaF
zpyF5?;5Z-w<}oEaWvFKnh)QhU;qs8BJxXS>paoNYb{q$Fnh<qK=Chx;3hZ29j&{w{
z0MQ89tATnl;7}uQY8CC#zK*ZE5a}T=D#x!US7&%YG>PE;rid(@U2;3TBB2aKsceS-
z@u2>_A;!wZF9Td;jy9r*XVEX`zGdT%_OvFtWe=_7z#+l{i_Q}Rn)8oE>+==Bfr>Z8
zOi}{I>#Bd=LwQyP*44;Q!l-ZPn6%nTgmRYAqIDI7;_$TUkLA+{X$ZEzH6`u?!1y7R
z@2o33kg`ya4~Nmf=dZJtuh$W$Qt{fXguVbQE|xmo<=}*uln=(Ik-y4>IDLY5g&Z7c
zs_zCE(}0WJuKk^o6`ZYsKGBsqbT2wXdw>2sdR{ASUyG_11M1wQtU^l>h%LC2T{p)8
zKBvJ#z!J?9{=ArZ@K_lByvo2k-(ZCS#lmT8<YgY=I9X7RIMO|AdZBFQj3C@vCRvBy
z$7CztF^5y4e7F8DngAnlc+KN!f9atBysO{!4$4Q~*D&7m8+^l<<HhugrRX_1F2nFu
z)rb-tU5Rp)zHHz!?3Jut4~g-SzkFyt`#)i<g&$H`(ChV7xEP~Sq{sI}avCUQFae!m
z!?sn{CoI0IbLATY576jFRGh^l-pOeJ)#5BM#8KG5J#`d>aBD9A<xVkl|5?^E$zTL&
zSLT0emQ3*c-*}rc(GKoZ%ZrrX+1wDmU@y$MLJZMd*%v-DvH_p)K-ppl3+$C#GamfT
z0)<YbA1nm9fuwiIqDcq!1tXW8G8~YP`b=oy^h;qFKXIJ$l9LsEuDD8^Bqp#Qqbp-i
zl;<(m0(l90auRqj|L#mhIXxUo8)U{#2*O>pT#o`T3Q!#mxlM}hmo50hRyKcHC_6UY
z9zy)Chp+fGhBC-NariK1?Y<DO{LtzAxJd%%;uikJI&s0wy)Q2D(#M#%y`jM))bCEY
z-bZRFA`TNZZ`d#a0mON2%oIg)ZL;dk4y{Z9H1C#3q_aT1Dct3dm#zxXAF$xwlOY63
z3W2AuAn)UQqLL5z10gW0iI4sM5#{uvgYTE0M}5M*7w<nci334aL0%JPfIOMPJ4t4W
zuuteHY<p1=@cAEKE4~$g>uaetOp9`0r7O96@t+j9Wxief8ZH61aRKTIGhFbdquwv?
zE8-%lhMl8~P=Rr#$ybRETJY_YN$_^82HJyNTzlcH3L^}pC+<aS!Yf>nZI6Hv2*xpn
zCL`|AC`FL1DUTBJnTvOSSrdfXli~3spCtjebYG>rOBNLK>I#%zAnvd@mg0#1{+qYX
zWtqe(F!nrSxMfiZZZ@eAp3G2zC4wP>K@fnD>r!kq<_lQcdo@!VaWdF<a*>Tu`HuTx
zmwyvKzJ;AG!wL#pcCgQR<(zlUZ(_MUYH!<PcCjw1o%Y563b-(F_pZk49qcNP?yej=
zHQwSm3(=4Jg!m3?5*q2vDO}n5wYMrB>)4@9%5M*=@7U7j@X=2TMkq>Wls2a%g12u)
zP5yatL1}4h58e~;;j2~zX|`D){PxcUiU=`q$tpAried*!n(Dy7V8s1a>dB{V+{WbV
z{p0_0<basp-L?9o++d`_Ymscp22HU}_bzHMf#;i|bzeeycu3FP$ZN_1x|Oz$Gbra!
zG#FHEZpsQ4eVb2~)j8nS@G5tRHW_F#H9Stov49jVp)2h%53F*I&@sQ^#e04J<>!j-
zO?sOhVN7J~cqi8%*PdD};lfQ?XilSi?qKBQeu5GqK<?!LE>$k@$p3iiW(V4PPLr1@
z=6t|$oOXGJixq<3LrL~|3H;ELHFMc|P7DeTY_8ny5rF|<EwGpuf%eH0H-@qp@w3c$
z-Z%JN+^@F3J6E3&;_LI)7S81n;=4lcDUW_##|aM?e>Fq*@W<)@*)mS7VY8P@yjW5v
za5{IJWJN1?uzS%xWDDmh!A4LdDYcy&%n!C_2;CQP6?4+O-(n_kxhWc%+UAS6T)(_H
zW2+h5H+{dsr9g4m67eY|bYX;5%ZR$%w^KNg#*Unt9!7}J{aCHXOo_Ol*~wD|oDkuk
zP$A}v`Y`?DPH)lqJWZ#}?enxSd?2V!XuK*0Wwwnb?dbm{?eDwt8FBJyJ3sxcjo<_y
zf!wblO*|0!)H2sK1oa*UO+x>Q^MdyCy5UcK{IE)yAwiiX0gCX5Y7BAxiPQ^OpXdsM
zXit{8>j4WK>vRY>j-dUGo(APMP87zr)kTDr86hCV*z9>DnlFo0@AapyW0T~0s#A8T
zSJ=1bd!7>Im|s8ADG)+^Hl9x6UQ%?Am?~80ddUnMyk{aJ8n|E>2Fqno-!L^!B5CEA
z7O44;a@wB>gUEx0Kh7wJv19W0(?2b0pkcX1<Z+K0TqeWBllM{2uN8QLu1#Xu{-<e6
z<2doh-wLd?c*%fXGgQJ_a{{AX9}J@zUB|IieYi{Dy^W>uXU2Ru%ZMjU>#riBBgKDX
zWv~=bV!+$JTRgi}u#d}<k-m4no&nEwM_*s}i~wF-I#u7lmjt4t#U2Wp@!%cLzxnrk
zOBgTGNP@eyz>b$p>P`*YTEUroj$G<`_6|!i{LkZ!7&Tt#s%Z&v<u)!zf>)X`i3IdH
z{jSzEl0oFmxd#_q2mv!{mnuj7v%6MXQD+|`9z!}w(T{NfcpWC5amaUwy)m`*z+XGY
zR(?JzQM<j2<G&<0E8#+dw@DMbfWNtc9T8`<i;VB%c6cT_B2F>mGxB$2zg?lmZ!%I-
z&*~E4OS`V#T4meE(MnF-AQwdQ;zp}X2?=3P&5!DoN|pqNK<yi+(R?jac#%M!8=dD!
zyA^h5sley)i>4EF$WwOGFQfaO4A_qcx1?Sm1l9d7Qe4;hz&i2Dh!)~)Xgp!8bD2b5
zdZY5KHV!#3W?Y(5zJl_W7xxmA(fN&{?O~X;KRc8#52=c5F#(?J47<lg<llW}SZG_u
z4qspOS81TWY)H6Kxv&8nUPHgklUaocKB^mj@8_a{P-Z2}&w~iMUu4v+J?4V<R3pmI
zI+`)t-X}7xsf2ify|$)XLBueZCsY!6{{Yt#Vrj=5wu-xdYUJTFNiGQ8C=U8Bh6!(W
zpN%_l`6I4;@v`Z&1ZKR${lBaC%9voMEa=+<D-AFgZZ>65!r<v=)tz(~faQPo3Lnuq
z*S%}t?q>@_(6)%EToKTLi3E*O%CBnRemA1%-L4);JK1qRpj8Eqh+yldD(aA=T%ASA
zfw;6mWAx!Zra;Oe#aVg+&Ht)xmHk#U!Q%9*1etgv_<hxHb6?03^*@SU<Xh^4-mj@S
z;yq(<9^D;_LvuE>@-Py1DwM0g%73dC%@ud+Mnk*AF`(GGlf@rv3cmM>9BLa);r-+5
zjCAh|A*-@r<GrK?ID|#r>vKdLhW=u4Izn|g>O1R@6{QWW?p0UCBM~3s(baO2Vr|e=
z{nPt|$Ox3@ym@LY0UW=DQ=~O%K--?T>$?Y<a5b$lO{R(+aC&#iQm!)rj&JN#ybc$L
z)xJNS_>CRr2VG-UnOHz)MVO=g4ki5Dow@31zko?dTcp3I*}_Fgok~b@p2xPGmx)Hk
zNbsi|oqFkWiNJ}qK3H*O7t<A@{mv*&0;aFOGqawjLwvZMnp08>n6<*4VWMDRa8KS&
z=WpSHUt`_u?n3CCZO8h$y+s^oSFaoKHb}y|O&YR0C|}G#_eu7fqa?H#zB0dn?nxDl
zUC&<L6$T)su#YnrhKQUe`l${A(APs`F^Tr2qrd2H<f*g6?(f<3D=Y%Q@Rilf>NyFN
z8{Z4I&=UZhS-IuR3t^N$Psmxn$_WBO0vf;US>b#8AWq8)al-heu8$+$#2HhZ@A957
zs2J9jj;V-(qQ2mXfFcf%6x;u>fpUte)IlG3qnP0B2W!(+(y!Q$g^{Z&b91=k0ck(u
zKEzR%j+G=5n8uRo*0$POx$riN)5N(uh;JGN_&s+f7^C=Go!iL>fo+ePB^U;<i&C1^
z%x9)>qk1FWT*{OnKz=T?Amj)~cD^kk^u#<?UCAc;)pZm5viHs~DQ5{gOkAzLs7s3H
zukhma%@+Zqwrul+?n7K}&mEP-K4OTB8`vT{&keTVAg$*-iLIY?@{NyYfRa)?(@W(0
zTho^E^O*UKdnKvJ7Gy>aua@PKuazBRe3z|)GKtv{Z=O4a^4u0C+jfYxk_dqD!M(Es
zFQnmIG*w&_2jYfUyE#f~XaFO%%Lm3D4Aj|WmCig?hns5a16ti0&@;uXA&<^U<m)N4
zvG*0=#jqDe356nX*E->q1Qg-OIB<<K#t2-N8=;~Q-TQgYZL>Ei0L6RzZ1WIV_~<8G
z^;A<G7WN253=RySk2%@f^OPF$B5&Gf^c%pN%~G9^W+h0bGCpYal7*;^yV^fwbz!63
zjzl0)3tp&=mi~u$ry*QX;?o-_ryXWX#I&vgA0F3gR*R^jdksa!VXzihPAxt$S43QZ
zrDzl*Q3Mj<WflunHDDc}Gz+|>26fKge(qjD{AA6d##^5HAY;u<mxT661Hqhf?7I4J
z-tCe6y*DDT`}pvwlr$$4{-#vNcgaEGw7T*H>Tz`wFiVMLaY4sU{VDnH0wAuMoNo~-
z2C>Y_j@jsb?)2a3eTyj;pja1|c<RXp6y(Wo)NUw3QuAu)nhwfKWKjM|ZsP!!qLb3G
z+|O_m6(*aKqlcI;NgYEq;vz1QxW!XPNrLXzu&{d$$d~Z>{r8=_%HaN=pMP?Y7=)7i
z{jM^oggByidNu9%fbxySV}mK=L9k2Ui(*p*oUmW@!*)qX^}gJY=#9Jy((UtvuY}-f
zm$b-7v|kd{X8iaq0_|D9sQ2P4dEw!0Yb)MJLAXeClkw7&F!J3}N-8iS{-M29&ygR>
zKb?OV+lunS)Sf|&rV~2A6R~k{jTG^m-UbCke3ONX*C%xR*_F^7>gB};qGFKD8s$pg
zqXCs3YS;YF3qYx2)1z;Qn|`jW;hmF(B+7eGR;vC+Jh5AhArFZ)p_#Q)M(P?T?D=>`
zHd~@z@Cs?gB)uX`##~!8M!l%M`02Ob5f3)G_)(42q#Q8cJWt!_B@cH_AF`F^vO>>q
z^|sbg4&az>k22Fy0oorj!$CcY&`A-K@~&MDuC%|ddg;dt=BK!%B+L0gqDF>gUO@{4
zvAdsbb2NZ7m;B6#gakNn9kW(W2*Wdrom9UCao}9Q#Xa}nhPvO$LqD{|VELS-$PL6x
zG$%cpK8f-x=Xd?SlQyHiae8~-7{MW?9T&;ufH)h`C$?G>(B6zTh?9T|^~S;s*WM(d
z{uMPz*7%w*Dr^L-=DH8+fE3?_50e6VpfQQp%a>D!`UNSRsk{~}jWSp~{(wQh>apXj
zloEUlNpWxchq#>mJrm2+IuOi8Pw6Qr58qz7NAo`xgtz8;A6oiF;6~~#$oeD*qIiR^
z*Hl;_jxS>DBYHjm5tbR#&`W{jaAUmTO#xv0<LR!_AO?4*LkgnQP;algFevLT4?GMA
zztZ_s6@0#1qtt{d43#z*EU8KZ8|89tggqB%n)vgM*a<*k6wTJ9_Y&Yi_gD6nC*p#i
zUr>_MMSYJ;1(CHQZ1Cl|AZkDgz>VB9wB?`-a=)H!hX=@ky>=-xi<=z!cU@ghKUILv
zlQ#aWi2JrcOEM+erh&YecLSetp}BfgzO)RT76foPkoTZ{@W&%PS<Tx@pwvH3cbf+F
zd{WPEoIrV(H)o9esq&OySRp)bfeP_?^o*ruzN37tyU7DO`4iAooB4(_P792E0yXGf
z>cB;OvEtHKlv8w9{;`QXjkDFxE7wrp-z@$IP4jsS=wg0PnwzKt{Y%N-l|vOU)%a`s
z?S=}x=7=e!L;G?cs}R;eHA8TZzGLbWi-FXMD>)u9C*gEn=C7}Tx*+w8>+IJ9V<_!&
z(UW_w1wO{E7oswBA;-;w3D>L(j5o<DwIwZJ*Y`aB|8u}zQC-D{D0fj5e><DY_dP~M
zQmQ_`wSg^q5x==d_YcRxW|CpQ#{o;S(iC<7F~jy_`rIpTjxiFKegZ?qP0Z%wrP36;
zF>JKV^=WtnKXjbo5YxK4jkQhpTv_0uhkw=Cwd{|MvAQRfHr?7|*g}Q0zey7f^!lz1
zkQ)&~*(m0?6mo#of3alUN9QUU;j$^UcT|YK{eH;$?;J)I$YU)x%M9;65!$c*B8KBo
z!LNUq@8fp<bNQl$a(m5o0l!q=kV9f&^2W34R6v|~zvCMt3Bc!%j=ZO~u`9cJM+0d`
z*!Wd9DNbs7;AeX#`Lcu_3SYjnR&AgKE5pS_C&b6)Z6$Yp#Y_htr`^{xkxy%IYLt)l
zJvXRv?Jm3};DEVY?>E+a=$^s7`zxi72hOlu*(^XFoNpb=u3x4RcX+6eK~4a1@uRo@
zX*i%hY}akFy${NuQ({yS6r%*~ziM}aKF9*eSQXtOnv>pX6cug~(twswqryhizZk7F
z5S)Fh2pN~SM9BN(q5Ma)W%r~8&@X;cH4EnjlM{jCvsoh0fU^@W8s-Pyp$kpI#DehY
z)%1Gw7AFM9N{LrGbAt0nP8TO59(XXi{+QNM8UFqHadxFf0wySKf2lw`X&oKW&&I;2
zm+F~$I<j09VkS!;+&TiF;;kwzm{CHU!@W^M#4mfAv1#oRD+MV`s`LRL5ueKc=@kQX
zpL!8)OSuA^sJBr6)Ifp{mfFcLI#RGea>eUXLq87q+axRoUZPM)Ohdt3F9y^68FYQR
zk|0_Z<^BDwBrx6x=TS-!f%B)AL_TKlgPP=0dN}IwGq>Kq`}R5V<TjlVJP;59+%i~P
zxy1|TmO+J0L<UAaq<rJrlm)T>_8aEIgn@IwXMFgsAlO&i4fLVj`iXf1-rJkv(0?4t
z%yx$d#;y~q@R|w24LVjm1~ixKH@stM<;@EAb>e4Y#?f4K#6edIeSZ;02+0kh9`32T
zH-9`weLTi<lDHhSFV|_97I;vCexFVEo*nPWz;XQ6Ch>jbSA4zZl8Sym+=<_ri8|%r
zXXFp-DkfE6st+!sazpP6%8I&(1;n+>+PLWb|9L3Y>rO%vSr`m+toD4!1`mv$jAz6#
z0xS8skvU@)_+e)GQ=66={9N92q}Bh#5pz(!%F*Wp1?uG|r*v5mj}%HG@u+X_@uMc#
z80BrJn>DucCoq$f3Jvi=d@vG1HZc5?4vgp4Ll+c}F`X}cc`0JZ!zRIZ=h-PT2o$yT
z)2btal8KJ+sa(V-i6f`mQWgU;jmhIEK<}qZ6wSqNi0}eMB$$^w9|)z>J!0Syg4D()
za+zy_(2N-}YMAoE#X~z9o6nq3!&jv@(ZL2)G<)6wo=h-7>8AEfmlY=OjMX*x^FwmP
zrq#FaJiwP$KDTk51E#;?-x!WFg2;G;!${B(mL~c0x?DUF%sqciWMA<cyD1^NKYtI+
z)jvtQ#dpv{>{{=Sjm9;sXEw)ZE{Y1WJ=pzqZxZ5HWF_ivtJ1>3=hr`fIUHaPKCaK@
z0%;IelJype+$Q$8+2W<r(Ev{0t#UEOO#x0>FUl@13V@Pas|K?fKd@g=m|aff18&tn
zKOE5eM#~_=dwg0FtUj^@{g{-7`wVNG-HPa(KxJR^6ej}i)GRbc<J=&W-)z|aOaZ<Z
zsYTPjWCW}97>}>=yioh}up@Js4tgsbZ&D5+zD?q(FNbboFfm$#d6prrrNr<D2efZV
z$bbKqJQ#7EFIGw2M0tCo!E#Ejq(#j2fYI%h<zL)SMUOq65mJ2MB>g_C7dga%LFZTr
zDVW{z{r23C2XXbE@CMaW!$X~Ig0bBdY{7s)^Um%THknm?lO_5X(|=r&&U}XmVo%S{
zl59vocY$uU(*P6vr`a3PY{>xyO7BB{6%&G^VNsYhfe`ZC#99&M2|+tS@nfaWTtJn~
z^?k323!(%kn_z(+v<yv~&Hcx4iDIF1aq_~zS2EYoYQ+WHBP3%RWr(}uc2HGsa~tcd
z43MuoHHRrXw%l1_*}?eRZ%Y$=-p8tM$F=HZ&EOanTD|D@Cb5NW!`Lg2sL=fP&x9u8
zNrde}E7;LON|Wfx%jSnz2feq4PyhpbFpPTbgK}&Z%!GflhMAztMRcm=1SgbTjEbQG
zVQ6c-*3FuWxR^e7n#_sxA?5q`9rBc69NtlBqIhHhQ&S5%b>rO!tbv)@{8*42W*Q}O
zjB*gSPbSU(eE%MngbV#V-MWbtru&EuXfs0m^8F%1Z(?|;pX{cS!vwk)getHzQ`lno
zzlp8L9gIyZ-)(wl1!L5yp|A@>oTXzcfw3+|7`WcqIfV99^{(!BPsGzBU$~T2-wAe@
zt;ig7Lq6#7t730_S{Xsy*;%E}{|K`s+RP4MKf)Nq>s;sh(ZBcRNBmQ^ZOo^@)N9X7
z9Ay7~?i=DD1%c}ef`1;bV}aksX9h-Rac^+N+Dz<g*bRXeo^c6sxc1KAKV9bo+y?E*
zl2ki?+{KM^?G4{oaaw6yk?ZQD_&d*6Epx~Av5<t<w*0smT<^R1tg;b8yp9_8{r9mO
z*l4id<w3b)+>Y}kHCf3H?hY|(CN)>%Tou`qtBug!+<3uE@B9|-6;Eb`P2vV_lD!Uh
z66HVSKHRNbQANBChPy^nyNkG*K+4&7tNS>wYXqK7Rui~-M$(qmg?$W1q9gy+e;Y^8
zyH4*HNroqgGh3k)BgTJ>BiifOs>K@2UM3EAQ9wMCv#(}36L4|u@J^#SaO`M<{=VZ9
zHmF3)+mb>CrGmkX)jbr@%O^qV{FM}pc-|LWQe^>~ms~zxq<dIa(6ri(91=Jim}q(~
zl^?9;J1lBhSinp#(D0iK72GB-=M{cS15Y2F7ddUt4gCBag~O=#tFCQglKzqm|A_A!
z--CjGxMD9|2aJgV?@qhWTZ{Z4x{Wmss*40rM@&FPmOY5;l&_ayezA=Uqn39IWgx)&
zlRp}a(3{4x`wc1=`f=DThUkaHCA8qDa^dvv)-CKWt5``Q#SHen<4G8Q`5xwA?6tRL
zx{G}i_|HZ6#2V&N$8AzqScIeYwmNH<x`a&x@!5qK5<#oyaI)Xr4yI&&>SGL$f~4aM
z*A{FAi~1Wx+rs||x3x~u)tR_}X{pAQ`!&sDkJF?HvZfYrE%n^S5qw*if{W~03RORD
zOlKkUB<W||9X{;FRpbHKq9MO}N0<Rhe;HriNI1Z*hSa{c(&2%^^5Ahg1{TnF_&3*w
z`lXZ^oW)Bqq`(&W@509^8oby|y%cZ8A>7M-DkC4%-+N+nrKP<e&3!YI11XOQ;KT1n
zF$}Z2SX(5~Z=KdP?8KYF<H}F#*tLivL&YmpaLe%a(pyd<aENrB{($Xa#x0rGy3p%V
zEF4~s9ir!65BZ%oH(J<WJ5%z$lK{W2%VzhF<1R*=*WK=6vW{CXFQMu!oyS&M0tUrm
zXrcYaO+)v>HJoVa+Q>!J9~mrN3&}X$gA*|{9`3ayg8YoHSGCo)F#2mmM^t{jSZu|@
z>eg36pk-D5jpJCt;!7qh_M?d*OQp?R;H)x4RNXZ;;+FuGTXjwed&q0tdOG1kyD024
z{CJn{E(ZVIY4^77l>)xYYmXaU#eggL?AF`Qa^Uqa;X>F+LAcDAc`vPm5ymsyogP>y
zARjZ!m`=Pn{HE4YuVj~izy7D9ySWiprXjL}Ws?)!*eG-Rw~_yA@x$UO^1U826|Ea;
zsl(4vxZ073_R`aL1e`S$!0Sqs>pe1gm<VmVq4QcAGCn+tSaw!|*5&2$r!OSX-e-4B
z_@fLM3%}3c8qkHVst3fci<Cj|^LR$$6D?@}$9h8#Qv~|~rL3NRh|4#%_JtGmX=@aG
zjvpLrz^8|vkwwu`KtA?dv>)|jx!jdLzeyE?GXuMyzWh*t^MNmZ?=+!azd=NexV{K%
z;Ya;NI)wp$k0+VTOAK_cm($T~B7W3!{($B(Z7`e=yO@f&kI|QPSX8zoVO=C>ik*oE
z5TWn4WR)}s8M4Q%=n9~HoBUd|qX7I?r@XDgiae1Sf!$h&qn~$cn>Dyb0nPu!TH`Pk
zu>I@cXO4K9ME=9?L(lTTAI$tMAL@y&5_Ondeys!PtPh2Vy`|vO+)EYNFUYs<BF5K%
z=0F(&7M-Wj`Rzv*-KqL$Q5ev3zI`@S5JbK-shOuR!cPRtJd6CYCi0(lFb4*>e)Duy
zCGwm&+fz>t=xKm{O^3~SMiB@td>@})Edib0KXf$fQNNe@ymZ=QW^m8fm`qS1#Yd@@
zKQw(yh8HXUcii=s6z+di`Ku+fj%!?6Askjh`(2I4wmD17I2!x^YSODn@V3W)@^jf|
zaKTQ`J-H&7@Vfd8&E)o9akV@mr|zkc;dgQuBZ41};k?=u$s<M?@#YQfB_{Elctzn-
z%|=afe6m&QmOk|&ZZUSLdVZY^fBur}^8j%Uysc8w<jgKJo?Gjcpyvubo;T)V-gBk~
zTz>)M-$mt3oSEhCw!ZuOxSuC3cNkZq9N?3(8>W*i5PW#$+}9ton6Q8Gvq)1?eC^Z~
zr;MX*99h4$>d;L({JCS&hm{YTaca&VN0t#MPa(s!Vv~~|pAMROVV8;V=8+i>KG`tg
z`5&?lHXxqNg_mk1(TT{vdG1)PVoVl}K5mltRw|*n-A}d1j|#vQw>5aiSQ;D$|IIs`
z7KKr#zw<2~;*eA{kDW7B0E>e5hx-=jzW#TiYB>Yt-_KkWZDo=HpUd(Avs6l8^jlY0
z;z$hcC_iAq&qxAGi|hp-2XsG)a*V%yO%hH|3(6TfY5<)XMM$=v6cnF-AI!xk2P4ZS
zCr2KNf=YxRUn%m?ST83IPIsxmRSwMyFG!R?`TS{>;q%HcMB^&YkpiGA)YHmai1x}s
zvVR&2^uYeX!bje0<YQ7$k9dkac{4VSH*^1L!%QU=LxVcNueOZr$#Ol=ddT*{P8sp`
zF3Hy|b?U%>9&{#J*A(IF{;AZ=J_#UBNTP8^d)&4WttPyR0yI_ajS6aNK#)vfrW>z1
z1jWewO<a{g9E-q0TD&+USQb!`<nzNB=T{ycyOQ8b)n80+B?DV&EP>yVCqPpz@9*Wi
zl5oqdCAD!#814+KEy!|6!JfXEXDEjFB(e9rx-*e)n^QOFy*To91O#23I4g{NK~)iZ
zaq^IMoBCc~x)MkyoAe|rBfit*3TacWBJ|B4zTyy)hk8M)dg?_*co<_;D}ER8Zkg;4
z|0Qbx+1@k101G*I%D=2Wa9#>(s&oos@5(`v%R7nt_K5fPTr+!W1>n}QG3hH}C3rn@
zlhV5ed06$&Mbnf>0-33KdCk`YoQd3}s`dyrd`8T*mq$VL`0q{vsqD{~@v;}S?hmgB
z;qTs&?X@Ul!x#JgiFgssi@*7!<%xGH8y<A0e2l*_;nz9Nv+}XC<9#%*4Q|e|;?<?p
z*uS0N$ES3+y_?tK!prMd_+gjn@ZYZU%4cP<;J-WYTs=F(fIl6TePnxb9@~AF^mX(E
z0bX%W27l;Cj`+F;Q?9oLFrI~DJpb2S9OG<KriA_s?z-BoePd2)d=kT%{LVMj_)Ac-
zyK{*WwAcQVuRxp%xzWjBst9^`^p*ZxzaTsM{@bo3`Z116*J;=Le1ihb4Xji9m`EYA
zSm)p^F}i=9RW&%gOaxQ6udi{14da9vizWwp&~tD7QuT`!Wf%{-&=F#&1Uf;IH@rAB
zQBH7d$yF2e2~>Ix)*aQM@z=L}hDI4Ur*@sn-WBl=81005^2H(N?zva#s26ADB2^WB
zNf0J2qn8w8{zuVy$5Z`(aoo(_d+)tn*XAC3M@SK=h{!07uZE<ItWr{uiljoejI2vS
zL`p<t%giV;QvJ^F|2*Q3_vgINd7bA|9cV3b_@gpqK_uCw^xUEpxO2BQXDUd7YWVdk
zGb-!{Cxq)+wi|$q;XB&h$d_Jqeg3`wuR5HMiE3ybkpt7p5Ssd<^1xQJ=C^rC6Fj}r
z|F8-vgHPsR<>Tlvn4<4dT0u|X7lWEM{TUJ9&aY$F7gB(HA-#usT<ED8xgvJ(mMn}$
zbCZJ5tMc+cIoA{iaqy=r-MEK7CryV)uGh$=I{)(ecXK6GV7TlhyB>}HlfR0VOg-Wt
zk;xhBfqUz(8q@c+;=V}#x=85t8|tuFXnXr3=5AJR9>~hx!v4ySjdVrq+e*7M(vIv0
z;9sM77SN&xY_Ie=T>}+B%|?gM1Yd_vp_k%1=t&RRlw6F;(FTK>@9!U)Vt+a7$1No*
z^qaht7^S)?31)KLMYWSEkiWzGc4(LYG`*vCX}D*)``>n=#0m7~SSPxfTgxC{dq!Zl
zm^Pe>a#UyY#=gib8|z(r+<SBq^}n<i=cAuKhl_uZ0;7qD<&!c5U>s$>e(OJNn72}U
z6}m?Y3JNcr?Tt_dbI-xn{I_y2Da`uPGFcZ?H{bp|)};fN)avXRqBI~$n~&abRs#<6
z2zJ~Zmw{YnpNkG>us^()batJ9{nb;!G>r=AT?zU=Ylyt!iP!(W6dXg|uC`}&^e;(x
zUwWng<R}q-ZfV`1SyThzed;^U=JjwNhUN;@SpxjjYB;9LM*#7W<)>M@bm8Cy<wG}}
zv7Shx^qqFs1-Dgs7a{anc^R{QFR8=+E2ABJ%p`)Ug6PXQq8{8R>tQwV*8<+g);tKt
zbLF?!FPnY%Jnl{i*sRBVT>`z;vE%xn^gv$rVzL_Ct7<zu#$yH_j#ujWxv2ve+waH_
zd09Ag<zrSsn>q+Dea-dIlYsRXUAWsM3~aHzLxa8sAV?l}O+N^5GNi*c?Up|B`&yJ-
zd+?kO9#t+y&L!!FiCy3wW4N4ibHeAD0er62`4}>*4M)Qbdn}G<fM`EgkHAqp=Uc5(
zMEq58ew|El*&F%Xa_1%Kxd;$_?}U0!wGIr2+}qG-)I{Iu-}u!<+^Ze>_|F-iGn)rq
z-k_Ezf~%3*@lM<qx$gBQ(|SM~Ja1g{=Q?EoD&&zuQEuddL73t!)=$+Dx5Jf=6QNCe
z!K9#u2rnClZjAlXfnyQm*rG4`aK|$IS;Y+#;8ea)RA-IcsOqmO>=dTpb?c4uv={On
zWWCs%F+a%fzfmbMOoX-6s^5N%THv0l@*+S|1N_1tTYbR3_2c1knV>D?^0i2?W<5~{
zijr)PoMkQG{8(M_M2G-S@<MHjUP$1*sg5=1izG;^r9Y&i5(mXSfj<mPctEr<dWCs`
zA9#!gOqCpE(c8%oV=Af!E?>BU=2SJ1Gc!EhK!^OIb=k@jCy|36JvML!xo?|CrvF>{
zs|sgqP5rfAi-WYOkB&6XhexbZh^|fq2v^_zKG04Z+~X$HE&B<uU_#w*cM|i8ClCH~
zM{Yfx>)7Ambv0n(95~^54gH2vGz49IZZ=u`x;>2j)V$Q|kxpVNFvz(6G&xxr4*ib#
z^TJ9JPQG8<EXF(uyS)MRCG=EOmD5PEVs6?@QN)isT@c&{(+w;pc|hfQ@WK36ZjgHT
z^V$rp1l(mDj5kb?hUVVO`;TCLf8ddzYz}fd<l3jVpIS(QankJzf$`#CzKfk@`lTd{
zua;VknTvvc9F>;__QzeBKf34QJ^yC|dr(T&I*E#xDg2>fcO%7ZI*E?6J0zLRUoAd;
z-Hjgm+WT1rWue2OVsAV%KP2!@Cd6eU4?h2$zmNbea7xIZ4nU50+5v}yWBX)apgHjl
zqpT#{AWA+uz=>RSXWuD~-T@Ns2u&oQZ$L6z_)Irh6JETskWv#C0*i{kZyg_0fUY>F
z%*boCQ8)Bm@CJ(>ICA?IJ;(lO%jx32r^^Ch&h+u9JMxLfB`d<kYX6Y_gx-73d0HDR
z+u}2<F|Qf-;?cWM7X?t>gm#K70pQjUF>|8DJoUQ$3BOmm@SDzC$Pl?A-1`rk<$36W
zO@L8i!VCe-vJ1+G6!bvorpBH=^dYv7(eZqXF$IgdTj~J=x*+znSVjc-u3MH=r_zro
z!d#Jak<%KU$MmmW{_r-0N3*K;nGWLIDSl|4rAr?^I6TqjM=si+cgD!)bz|7O<P{(^
zP6AHno4+*$41v#o_qsTX5$q>~h1^~;ghMC&s%c&t0zcjF@cr(3An8s@+`#;KM*1Hc
za*hrpJRu}AS{VT8Uxk}DKY9wIC+W_rpf_2KHRjwkHGs2pzVR_S@YRtdyZ@0U^lx11
zW-TxPwoA>Cr@#REysqwD_S1%NZjovYQ6e0V@I4w(NQ7GZ^mkqs03D-!K5JQ~Fx%Bi
z5re*_&MdzCo0|GC@VsXFGV+S3MU#ScMU0_qXXEc<ORV#nDnI<$)Pl$fF5j3NS`aPT
zBfuD;2XuEiX>1F1z%+AgY<G<g=p5khY;Pulie<A$4CZ0>`DV{I;P>bK!CLdVz1-k-
zW=cc~_xVzT5`QtYaKiiJf0-N8IiT9-X}G_p5LBP#Km7*pS9JUqadbEN;goECTMqi+
z0~&=aujevCZ~gI1Eioa`6;Si*7G!}t=5ris?`a@$qDS1Fx3f{%*+#}mj0$!yKKAXA
z5`@p4>o*&+IH0LFhGUdzo7DL;!|{6!HT+j<-DZe$obaS$C(dL|HHr_KFpZ7sLR+8y
zMX#?opPDY&73+of$Ex8v5v<=CO7o?S!id0iHiTvukpz!?zxXX~^8jCM63tC-?Ek3o
z>}X+bGo@RI*^;aR@s=wB@RtDc>^tYXtd*c@wP`~v2kVZU=*2_1I>7jb=aE3L8pNG>
z;%4Wg2{yF3PBWj;+nsmlNRy}z^dQaa1-`B($-M+|e7+r=-@Ukn?_;uO3*)&R^iwS7
zwEO2v!^l$1!3`bse`n=SWMUt2rnT2)!cZ58%}IQ-=mn`c%tN5J*M#xVLYr<SN%VZa
zb7w-|!EQnSlf}4iCsE&(o{!%nhlh95&YS3fn{GoTDNzZg<;XfU<{FS%val;s%><@7
z(k-eE5J0(wVm}@7Te?yu18Rd6;g{R)6>T3CuwIPcoce7Ayqh9T(jQ5%8MZ;tJ8S?B
z5*p?$I8V%7aY^;?(u1pkg*WPMXu=Ow?{Hr)^nhJid@6$Tq_cnCH|^5Vg@mEp?NrPI
zE9)j|(;g)OiH%`rgI^!{LpN-^aL<Xa;LVnwjy9ZL3~M7Rp@%|mxMhyt6uvM0o@z1D
z1m5_ry{kFKaG&OOU&k(4u;Zv_BG_OKVM>TOZBZTA-bLun;@m?`mX*8SR~Zyumj8I>
zj^2+R?ot}$LyJXU?OPky2IHrNNul_9+7O#NbZC&bpY8gM755EK-kQwq&6kIFg~wte
zlaPaFnQ<aPO9=Yk<c8@U!aUb}M3zJME)a4&a;WJFD+IWFuhY4!1<SAhYb4%9Puz-k
zrYiPBD6UT{%>I^wzP+VR6>;dl5vcuX=PL)d?y#<Zmeqpy+{PT|Y80WXj95vD{+ESp
zgJ)ym$lqV9WaxZk0p)#Lu@9~R$Zoskm)5EQzgp=StF;D{pFThAy;~kEh$c}Y=*#7x
z9jOaGtO<f;5A5nYH9;t4psZCE=RWJ7KZr}I19cEX{V)%Dbn;&g9Fo=or`@;th>I$~
zc`rlRYElCdJQBykCG_BhTglPuZ*(DLP@5t(SPv%lKNIUfZ^@|@$7PmJ%D~$t6n{$5
z0CY3b3U{7cL9WP)lA3+$(ER)Gf+M#%Fts#OJj=%Og-LX(3g5>kldB8_b>wmIB{U!V
zppAScZ!=XRW4L%@P5ZQ*8RP_5GV+J2!P0}Mm%jptK;B%xYo>$qy<LSC`kf+hw#GMk
zx2G%+i++(#`>H|2x97vA<0{Z#e)I!B@}Y8sv;_p4)qqbwnB6j(9XT=PdmUK6lhhlX
z=2=@vKnR-~XHr3*s!YDd268?g4j+m-dWIkF5RY~rThRsm<DurJipG$T&fsZ*bM|q~
z@c7M_$hDL+O!*Xw_<iS#>0_qo_f4>SA4{hRQ_lJB6D-L033avP%tfxyF7ba``?Mjz
zdxzDuOA9`)Nvw?%&_`L@;1H>14!6XP6)N900smyNR}MrqxZ!STu|2I1wKTajQQ<1^
zZ)UsXvKD%LR%ZFmd1^wWvR$Zfmj)P9vpiL15CPLT5AsDtU9jhAca4rUgfbS@Z@bnM
z;Z9&jCJ}jJqyc|^D}6;UWb#aVo+bq?seQuk=M><<Xrv#D1?Ejy34vp8lpy5;mFfVC
z4)9YQWHk{`fjdf^vEMPD@;2r=xAI*glu}hIG=C6+fuF=@ne)h<*tlMAh<oF~Q@#I9
zzc7Tui;`agspLV3cF=<TG4k4*#5CWKwV=n?%GDO@qPSr(csq|gCz-d@zC>mCGfKn6
z^budr2ZsY96R@5tc;vkBjTZu4+dmYc|G`5$-*=FT3-{7be`4HZhRVHG0vXu%`j<B8
z&|!)`A-S+Fx5gz>@|$_bx;wHUC7YEUZ!ZlIeH~V6VIq(>BkO)^SPEp@CN2i=h{44}
zS2|VA#UL;{?uyQ!Bs_?fE?bfihV-!9A6l;lNb{u{HpxvdNVzdh#N+-OjR)7S+bJn*
zGzN{;UAA&wY<xkCD>&9jK~CN|bl^?+YtmTnncB6jZ;ja^mwZ-l{cH@qf9!kHvk8)m
zrH!mdBKn3L?>ka@NkH1299Q=)Hs}bSHhP`H20Z-3bi0wqa9&*c%(9IN7=6;`c#53C
zzH7I1zg^~m{lW{QV~m`@nA5#;`~(l!2aUSNT^MN;zPB33Z^2Bq;5pWqKEX-eXLjwK
z&Gf&<S4u(Rf4%A(!wFQf0ngc>D$wc@{{SU<sod{n+>@Qg_n$8a#5u2$PW09flotIU
zk%dHdcl^f!va(BS?)r4(Gg)#ww?n1K3qQ4@M59X@@1K4HHTqE`;WpbpZvVzexBBgi
z-*yc*iX3f_`5RK+s6(0gWj$uIQ91g-$};sbsj$AfQ1&_tx$;@Up!-oqa@&(-6D_7)
z<iR@yA2;2vkVdw=?MRCBz%h8^UqbU7>D%*S!`jq7Qm?S82rXYV=@-|Y_pcQTNmnhW
z_ow%KA#J{pr>!{qn-oN680&NEPvft$hLQHVR#HRQgiVPu7rBXkRN+W9awHb+*mzoa
z!L!<o=&J8Wfn#@TXpma~$UQNxh|v#(PdaZ%hYXH`z$eOByR+87GNxxaDdq%$0?YKB
z<qnWM75azL*#$OMPOD!WcZ89{N_R9*+Q4IfL(?k*7EnK|sO9#^3Gzp6Kd!SlgG6}i
z;TUUc<ZndqUJUSn3}rPw%Lm7icfR`ekknCl=B;=jb-y17-2Su^*yac4?|MEc;5!61
zze?<mi3dSwY7AV%->YQi6weR#0MM@x7kF^n2L_3LkE*(z;lA1@->rL2AQjVbX}WDc
z$aRbr+yi%*_3ZpKIpY9kDrEcX(yowcIkW#_z&<#~`_`#z_kNhLo8X$6+yj4~E}z)E
zfIq*7x22L>1Ky?`trhJCNH4R0(S1@Mq$6`8BY5>;{^8-`ifw?ptb-iBggr3w_2u?g
zp}pu!RhE6Bw+||fYoZ*IoWVbzHzSkY0~iw<jQdme!v3_I-#+!bz{vm+{{+&0pwzpn
z9WLw)bxPB|!XXF1MEA@4Pj_s9^Sb00{%jYZxziKx%<T-O{rbM^Jg(qd7XEbdqyuQ5
zHi;jza)Ql&{*p4HuE2WOUD5ZT8*o$b3LThm1xv-XBeQoLp{snyRNmbQbopgWjh*pc
z`QtC=`OD7mc0qN|#m(JNMB2ZH>G^K>yVPVwC1(ql3_|+<7CD1=i5~_16)UK8>V3+2
z5MP()LoW-iSc66hBtCxupqW=j_cPE8o(CpX|A@3guU6FgBkNYsd-T=Saw9ufa;#4`
zM_$dLLY`UnK`Zc>Y@%$fv<B)mHQk~K+*?WhrtE%99Ohh$I(I5vARs-}xXj5JxywT`
zluUMDTp4KdLBs}Xr}&0**zMt*`mds^XKi5G-lntJ-WDDir!!F#9pFvQnlW{}9o)=0
zUzQSQ1z!#fF8Ao7uif(Cw)!3mcw9xXB1UNei#C}aOZYx^Hgg!=e4+zJj+cZ&k&hKk
zKM#|SE#dq4k+c;vQxJaGu73&t9>4DeMh1Kqz!P_Jl+)A_3PP9nlm|M%VVmHbGd8%-
zs>ku^FLDqZ*7=@?hg(C>>Osfle06wz{jrvvt|DY;tW{Yf=V`TFY-F}e898Jtdf%hb
z8{2hT#zjj3Mx6wnSkL|?nH+4^>A64yGmdSMe4Vmz!6V>8zM4AZzgxfd`~y2=CtBR&
z>=FV-N2OamESx~u;p}FOyj}Gj@z6!=Yj4dP+`a9s2|732;;g>nz51i%p}cY}&^jYr
zG+3no+2RM-=)&;6U?g(;q>dEWE`6PS%c%~=O}dtD#aIXX1<!tVWrmv(FCOvjC;+Wx
zMgOdfGWh>J^UqR{2V`tjUBQ+LT4zIC7#yh~X5X938j8r>qR{A#*e4DTB8#0I525FZ
z;q7Vw3m23gq+H(nN)(D^>f)0#gyD6|f3?r^1cB0mx+$oS11?*(l{HEKCM}4Pb)&Lq
zfO3y`rnAKosi-Y>k<Ju-_tjNFU#)PSB-N1iv0em*SC=hfvSi@9(Ou(bY)T-!S=E04
z^FFP#jCD7^%R#j9g{kY9qaF6VI<fm8dJ<-A2BQ5H&^NDn?S~)-JU2DIGq278`mFbD
zPBG7r?8~cDXV)p9h!|LT>iYyK=&a9>Um_>m7M;m^?9UC~9eEr1_$c9$#|&Zb2tFtC
z&%eD;O9MyAVM=Mdf{<b9n0Hr{6}~JD$b8xuY#a&`Sv|)0vGL^N<9Q(#%wW_0Ohfe_
zC+<7?GvuW&G!81It$d!@X#5a&<GbEHYUog=EB|>4=hcNnw}f;kz{rB=TY8BTvd7b#
zm?D|UJtyYKzy8sYO+GlYEOz{DtUH%~cks$E>2jF$IHdyx)Cn(_B-YF}>ThNncHM0v
znVPU(xr)Aaqk8u~Na}ACk?maD*8AQV>sB0m3>e9l+b4(byU>xPCbu`POstUJj$HdK
zxWfa<`9s;>CUme|$z{MDN(H4g)Zr1^lJMcPYt|KC8Hfs3Ki;XWfS+gm1N&v^!J@H5
z*=IxmI(Fi_=R)McyI)J{Rgg5~nJdQ7{KfktwWn@~1m??1jCA+WQ9@wY3(m|1Zsaqn
zZC}k11(&f&k3xK2s^!gcB=Y_w-D575BG@xR?Kq2)1n#qo@y;Inm5zIzWp+Z78phCn
zk5l^VUCdJ_m+I&v@6kGI_Nr~333OvF?Pn)|)hp`FKwr#nkJH?Kl4gYShWlIBQ;lG6
zr|Y{OD?Q`~oXooR2DuIVccV7(=Pj7|0?uS32iA(Kq(IvM<flR(+l%SJd_R3z=yP4j
zXa6_<LtF<Avwk*{Mz2hi#_v-HBX!Yd*lbyTLlr`9&iZ>N5x}TGzcdB=CE?w@>*`n+
z|9cpgUGGGM`{e9RfdDNSN^3ex{z8DZojWN%D2?It%?Ij&a{yj_Bo^)Cm>->WYm_=b
zg#ToI`FtEgzIox<9|imXy3uqEDK{{dxYt%BRh<NOM}@oUO|@Yzy3Oq^2N429_HpRT
zal*5J!+}Pa-{xG|vsd~o2mbrCMq4f}h&z9_X1xISqcv0fDB^W7k6Y45xP^R`Fqe_X
zp~j$2a40_BgB;khyhHAoPYo#zV&qcMgtWv*=0Rin;OcjFmVlh37FPzfnngWe9hthh
zFGCCNx>vmIbufVs8xMQFYMX)4t3GmAhzW>Wu`g&@8v#{=OMJ>4dI{}b)|Ts`*HP+5
z-Cat6gcHoFvF}V_gY|I5=6_fp*Z$rklxhfn#uDt_xtYO|$AM$10sv>YnZ0X5%psY!
z&#m?z38b63TAT6=;Y6h6*7*}AkaMg?QQy!MJiJn~Dov1s^MJa>F(2SCXNZg3Jrh{{
z?~uI!oiKRhQ7Tt>;{Mm#KrxrMIOq&h>)KZGgH|G=!qaT5@6CNv7iPGj)p|Ki!AAtj
zI#<qpJ;4RWD_@gxj{YTy%m+7oZ03T8tOqA;OjyBhC-nGy{BP1{fur<+7iLI*O_{n3
zOOVS<3P0E^i+<0VXC5l}efYyQwfO<POhFlDmE$it;73E>=SmtT$oV1>`t=j~@&2iL
zCyVgG>|mWKk1+Bf{jH7kl<DD{;BSRzf9c`k2B*R50dCOeW2XveK(5nMgOaGT;*hjI
zw#etXAXr`MZK^=d*?5Gvk~oVDG|*7EQnyJ$DgAC?F*y!sIN9?%827H!7TVuQS<u03
z#|hz>Ix4v3C!d$Sg?R!xE%r97)0^V=9;<vR42t=?9glY!gTidD%ov3>#AwQX`pT*a
zPczJh73&ls;Qo~%wezBopu|!iZwWyCtGF+}AN&8z9Myy4n9n@$_;&a|YdBGM`Td`7
z1Xv!)=sv$}2!2ktvv(b}girfkHu&iZz$a$i(oI7PP*jl}wTZQaGu}%%D?KJ4%JF#c
z%m-swpDsC>dO-(V&P%=7)HDMZ*;kf~#sJ}dmUYVtS|IECAbMy)0qb}DfaqN0Pb!^C
z*^DE=0ByvFjzik8ND2sLTm|4uW6gvHfOh^6W+iT2c&m7<%KbQijS32Qs!idMzCN4J
z6~sg87X3+-B7w}tb4B_xSqS0`E-hD7hTn^?HsZM@;nSU+l}Cq><0@1C%^K&QOW&1i
zMTqj~_nBs2>yd>&7u<5{b?G54;+2sfa%iW!Wc$B_;QTqF$Yz(l9LSZmw?E%60`l>V
z-|1IH;JaIzWRWic`u-^d*)yrb*{6@$OYUpJC+~DFP4v-*j*yt+M&x0+mvHXKX)UOf
zF$~uZlY>rQIVOGNmksy}%8uh6+^-a-kDrUBfpIANr%#0n=JZ7$b@pn5?8{%ff;%Na
z#98z0&>Rb7TkpE`1V6vUOZ|mw6GAZR8|HhZiU)2u=O+7J69k{h+pVRqxj?c``qZyE
zdHC}9#_!Xn9FR}bW_=MqXDiY_1(`psG}1mCh;2Y`dNXS=xAG-%*e?j)IU`IU^(Z;y
zu;VO=nVYX`EFJrdj6Y1(q6pB<O1f~AUIRu~;s=Fr-#Fta*J^pB26RUKcF8Z+gv<kK
zYKA7%AYJdhWOr5qJUYkZnCo<5OpfP_D?Jh1ZthwTH&KQqckXzpkLd9oZ{By}D*peP
zAzb@}L}C7^KtTUhS@>sV?Rp(^0f%;Ly`{prm?_0`_tq69FmG~kRu{v0{ntaACz01i
zWS{@c(nNq{4$^*(H|pTG=VJQ>D+08hxPI5MQ5_mL&sn^^q7IL8SZTDc%7MAJU}#yI
zFzkwJE1(X>{{O$5#6b;Za6DE_{+EaIzI##c(~`76BXd^eO05>CIqXZ?|DOhkbPi{F
znPKktEJwHPHEr0tky?CCQV)hB2#VpKajvtG6?>wK096djH%}5U|63+&vmg6oQ$?Y|
z*;EG5>nh}y$!7p$hG+E!PqlzC7~#;KL};)n%5va9Z<_Ra2ZbKa)kjA^jz3fd>I#~`
zEbN<YNN`GfCmBF}{QGH!Yy#|4I7xY+QyWf{7pvraG69AE+Tz%7{$^ddIg*4v3@LZs
zp9Z*>%)M6Jcm9nrJoPoDw76jaZbA3GzZmPoduZZbXG2d@q@haj4<q=!?^RLyJAi7t
zaqV%eo3|!<b<Zst0N0Z0*aG@HI38`6#4!;e$10e=N(t*-L%r4|GXjK+d0jTa+_kV&
z#BgJgJaifiZ%>Nio_+Dl&!O0dd?&_|!`G(`Hz;E(94l0jYbPH5fJ+e=AKs_mi}TUb
zb7FdZw~62v+SYb>g9wzJqdZPH9~DT`lO!4<XSyQz%|e<gIIYsN$zgx@?fX{uc5gM9
zeY~Gtidh9nqe2zQrV79&5uNsAOBpmDPBA>h{j0b06F;fZlbI(u#&gR+2{H=y_b_0d
zN-a+5LJ)d}{Ab|N=yw6w``g!@RvS5@U-}*QU%-6_(LoKGUB5_|>E(N)n=mix`=yHT
z2ze_XgfoepY;aEB;;XR$4Um-eK24seY+QVB>-f8e=p&TsIoD{w4<&@%L#1{&KiL1I
zLL2+vTY9dM!nkKCF&i=GN6!Nbl#;!l4-%o=aKgsCN*a8A-xpuJLV)e?oB#c3og__h
z6ukP}q7TpG*4Zwi2f1=z054A*a_JUzYY(zclDdR4q~b5~fZ~zS@Rbupn8RmdWHKdq
zirQWwl+nX(nv<QE{)z$D=hI(`tOcQN)Aqjud*xxSY%^KCLJku8pE+cgi-EOYV5qSM
z3k-5R-DNDsO*XvU6R?&#O-d#^*8IY~IzyM2i;tUdjxQLl!&=Ay_ikHqPg@dzzG&V)
zwMiS;L)3HBAJD>Fddlm)xxCQu<Gn)ln{Cp!TZOAaT0a{XPEu=7PfRz~YV;m7HdX`j
zd*y^EdE^4ClSmoMIuQ4-M)qkeav9UMS|>~N!JmOiR2M(jG;?#dY6XUHP4N7<l8-iw
z>-HZIx5YWWo8zI;Tq79yQPVE*P!}@Gh7D~ewc)tz3vCVTvo#CccK8E0|4ABZrsu<c
zyK43sQ)=wfUj1*xAp*d#cW{X(hzQXtby2ewMEI=JQu7D<vEu1O&dUS>a5>8tDracG
zDN^pl@Gmp)h?I4kbH;wFi`n9dy~beUwP#%7w;U|%BpssG!T#VcGrLm*I7g^Gb7?x6
z2!~q^r?7cqz9m}OTC9->p7EK#{OI)|U#opEx>FD98O74IJau?p?RMC*2R(l5j~%lg
zVm>N<+C9GuxqK6(5W5K#U>oV0csMHu`F{-3FJWI)=h0PNE}Vm}*PYv8e~X`M>N8(%
zqmN|90D4p|qo124$Bl~}y;=V3cU+Y<U{6ebZulDh|CS~>r^X4eqI@YnT~-?;p1(|e
zh1?qJJkz1L+nRVktv-4$kqF8(S?pEF$EmquOnxb#1z$XvU6e4t=MlNy`GSuKQt!g6
zQw<3)@x!#JBu^Kpsvo(O+H2$f=J%<kZuIUH(J39k`&&q~@j~9X68!hRcTh}I31Tai
zy_?5XfnwWobBrtrrU*58jNDU}5zaJA%mI>pvS;XU4q$#Xjc}V6xv1JC+gKk3xc@${
z)%Jx3?43>Bs9KgsZV27expYk^x%%Jv-FgJ5iL}o6js8Spe^UFE5q>hR!>kT0h>>qK
zq=)v@ijhfD$KMNR@{_-Hg{CBVijjTR6{98oa*~yk<b}hQ*~yjKOi%wAu#=Cs)!w#!
z$3@<!;h6NZoSXdpg#TU(O#$+r`_yVpzr>;8UuFNoJ9g;)-M81-3ptmsMg4zTiIVeE
zW!ZNUB*~e3vMx$vHA0xFp?;{t4Ad<78MgB{_Z3a`IU2+b((~iCG`HkI5)$seX-8ko
z$`vKKo6@jzDEAd93pokhxp!++#9*+%t(w`A3!==Q?dZyi!tG<-A;Ho3^8>zhoNU}s
zbvrFAM-BJk55ns^$WM&eD>^;(-5mNnzSiYgn!%6*P5Zn6a(?@cmHFV@bzat7OSnr0
z3SKE*psy1EuQ?WZw%dweJdknyQ3v|kZ0`k@8Op$0e);9X|I|RdP)0Yr0Q3K+jXUIh
za4ut2;F2<=23=oN%ML2b0=Mc_R@r?vpmrdGv47hR-YtmTyY6ZZLLx5`_TMlCDwFI@
zM@l^qtyZI`pD~5GG%@BQ(^%g#2iy3?m_x(9m=H-e6NoMJe02ir_rH$~Hy+^JY9^hM
zyZD$Mgc&HLeRjnAPAgZJpSB+K^K||A#bFA!?vA$&y6Avheo?*8eE`?7D+PVJn(!vg
z@GFahGK_XpO)1pjer>#)W+^9rPUz(6_;}EdaQp4ysA0^}c(X5*Tos3@bay*t^h-aD
zw$E>Bmx1OUKTmgYb&z&jUS3sFfuoRDshO<+4i-H7pW8{oxo`eb&f^l0KKhoGOeq67
zA<C_WK?+dQ7V7-w7BA4o*4c#%OMzrxpTt_D3Opi?p0GQMIl0fA(RIn{U|(|n{3h~Y
z>I_nfUu3J{{oIah*noKw!Nk@noD*G>smxfufO~^!e&pFLtZVNdy-|T4JkHi7-{t}t
zAjrzPS5ol7Q#xjr`}6F;!0k!+v4V4#@rUf|Lt@alE6L8!iXPVTWF+sKA_qmQ!Km*j
zFHlsCs~kWtEF1mv@8l2S5Yb|FZ0{ak@Rix7n@M1Whm*T(6B=Z|%HWc=VLCgG+doQP
zU>5~GQMR?BEh@6u{`psZid&6dYzC9s%^c*7lsCS)E{lz8C03dLCD4(*BfpF}{AGt;
z_PZ9c97B!OKceFHic^w{|7D!1gT+P#;VWGI<wcE*U)P>#JeP)0-mGbDZgwb1Trr*9
zp@AB6fob!#Hd5HnABorU>A-3~eapY&vcUVQh!n}ZOfq_-c6gxlSEK97oc4CWHYquP
zZq$8yiKG#>CO`Lq0C(jmC2Bm`z?V)nWE?%v?d3<g4kYlveKC>cK1OM<ZtmSjU#$uB
z>}!egS>nLprEc(Bi672w8LGJ8K2~18_rKa|dB}NQ`+k;I20Gg}CAd7L!8y{_MTk-r
zF07pw88udcLt6I1+dc&Nw9rv^e@Y7|mNPZHWz@jbi#dSFT@4&!R_cVb)X<k6Y%qX+
zjYkhw{=1Dixv<<QX0BchkiJF~8ba^wuXlEumxx4Q`u(^1Cs7@k)e5eAWE+DIH3OZf
zur}QBxy$#7k^slwQBYSuC&ID`%@eL#ZK%6zKjbH90-i&{_1|4c!0@X0Cyki_Ebn6e
zZ!TX4`HotOH?8m-KR7j}{ZJ7c_+}3mEu(K}pxpXhge+v(NbJ#Wk%Ij5@=<JDa!|&R
z*i-tF2nB>&Yw6g(`H$mg>0|WU#mqIaDE?A|f$8~)Amkr^D>4+@`l|u5seMwPkXyaa
z*+bh5=lGOHPXY;{I#AU=6-l~}d4%}+U*_vXkZvjXC5v;fuan;m_ew~Ea?=RMXA++O
zg{<jMertdNTL|Gb=0<~#34g}x7<l`M4V_WagB2%Nv5|wAA4xwWRM4dfpLchprlHSz
z10|g=>e0LQ{NmlHepM)7zc|Q*C+u2iiM~`A&I=3l`SbDL7pHozpT~X3mv6HVXEx|U
z?mn&8t3R}WU;crY8ghd<)8pJ#3XP#~;PBoDtwzvJXB|EA*aZ3t?JZ0u%z(y{llyTo
zfJ*DePx)m$C-%J*5PWA0rAL@28oP*a@j%OBYdD@qdLe8yN+eKTVr@`jLH<wQ!i#HX
zk@G|UE@x;~2}-+L+3sQ;b*8zPFO7{8EV5Ewi=JF++^sGjEU}9cUhgJu%(JjSQ4Ce)
z$00_tMnPxF%o!ST{4K$}=I3H$etp;43jZxq+SRHfg(NPBp-@V^8rDGi`L)ll^gTDc
zK5fz*@QocbSVK;I>SKq*hapFU-m;;0>Q>=5mmQK**2zozDt?d-=F%t5)($m(W!~gX
zUP8{8v<}$a`9?~K*_iO0oFFB+ukJO;Tt!Zi`?{^QI1GPzl&Wbj0jAlCqBJ|ZKuf=%
zyP!-A@~Jp11W(ApSjt?0#L_gWO5p(MViOzLba$7qH5)rwwq|<|=L>G~aIF4HI*}3H
z@;-P_dlGpowJqj<=p^7oX5-GlqzJw*3a{Ca^Woq=U9qCSOwx?pbN4xm0Jsim1hc!!
zz%R)LjoksPAnR6?OnX2CK1J7cix5O0?sTDKmJkKB+^L<HrsIM4MU2T4PPiwc*Od2i
zFD>-{iLdr{;D?b&3hOj>4Pa3p2&ZZwf&x90f$|v{_!@ei(;-6&E^|(v{1_nxzDM}%
zZ$(PLpV#izy60sf_4-b7S(XHhjf7F93W|Y+@^Ke|4iT6?vS=3RrUCElsRxWH)j<Cs
zjo2*Kg;bkecHJ5Z@Ho*IyBcC}__q3<1?+QuJ<8NE&#n(g!cTn{#NXrOP|QWz9?ZY)
zzZkL0OB%E~EWdT_en<NITvHx9He}i7ml*8@smaC1o?U)xx6=4NwZ)bpjf1?Bml9fp
z`EMFM%heB8MZkA-()U{oH+00=r`*vI1X7T}iRgHC2&!hUD_56-(B8f@9aVO?(C+YS
z!j}qOjE1%sM9q=3mMl3hoZ*J|X-#yWqXa-8xMzxQRSN9?tI-xVQv|20-xZ=vB;YjZ
zsKU=7d~R{=C@@gy!JogceP<qMLCW~d5jHJ3a1O2!a5l$t%;MOaksdtf-kaz$4r4$4
zv}K8FmM)CUU%OfFstWDdBf8T+lt3kw!~D+$DR|U1)v)_1-dE+cx~V3KP}h8%ER=?Q
zk;_Fh!Z+36f#>+?o*X%7`KG3sLz04T(LTFY&;#rL#&%Ncf*=%9zRU2)L>@tMhjtzM
zVrlzkf>i%#fK>g^9=u^d!GXm?*|-0ZepDC@F41q0#C`|<juSwCL%fUawiXN7vF(i5
zSUx+H9X>oP6)Xhw{8H~LZ*jxS{OyM<R=gl)K~fasvw`HWB>OvO3?MA|a7tD(?qxoC
zT>tctDr9&lM6shUO7%A<$9yy9JM3z{X*$b-nZ`X47e{$GU@zdhX(|VY@0@zoU#tdc
zy@^@}HVE+J%wg(1XBD8wv|O^eUls;#vKCC>z4-b+weTSx4N%*fER{^vfGUbP)u~>*
z$MHP)6pEhkt))C(;<f_3qe$Nvnb3e&Iti{esS*Hl<jZvT#NmYYtqMyMCGhGHyt$`J
z0z%pUo4-cO3l>6x`xo!4!YG|a@+`j)?yLBXcngSumM7tfi248dt)K6__TWQ5bqh($
zKp8&qxSXFvPTmoZsa#$BJF;E`NxxOXT+E_%i**U^qXw$I{fpeV+g7D7s}_{Npw{*<
z3H!qF%a=d#q$|P8C)zLMk=Lcr?J{<DMjg(adT4bQ`*WWuWKNdj-}h!nGr{%(5yZyo
zYcr=Y7d{n#@*R4_P9NZ}r$PVl_}Gkx5Ig#NI1YwBMUMWf>zP#Fe5Ig)xL>-4r~^N~
z>Io)4RRfFY;a$TP3UEPE;K|xK890*^@MYCg5<+hW95f{hf@cRQd5VO6n$@syIn4cV
z{ypPx<%Tc>@{~ZzGUnEux4+zMkpoUbdGV_yaey_Yw)#ZOExwwb8G9fNR!L<Cc8g0w
zxyy}#Y-0s@vny~=9{a_CPBR>8^a7Ars`9SVK@8sirlyt0oaWoa8{Hp*rC@fCQv22j
z=4sagqP6=mx2?G@v^67#{&kOQpKw2#dtYCw3qc9yxKE`?h$=t?``uep)>5#;zMk5@
zB?LR|LI$`h4$a1X?A|H-V0}iZwv;Fd6JK0!EqBO(Vn#$VhminGU8<g$bP|IL1GHC^
zFjsPxH`x9Ok1UM*-D(W*6M=_${X?5xd_Xzf>{J-cgFbK-=8P_N7*;zqQgK`vWNZ`-
zB{(_3CU>;%mAw>1x4yZvM-}^H$7%1=s&T-H*cle1aTfC0c(+`|5<U63ta5sw3Io~e
zRo1bOoOEQa1B)Tg_TXNX`nwu~;q}I|uRiuaW}qPdp0$?aA7vzSbZ{MI;-nyVy;IYp
zxT6Veg>oa#0}?PU9BbBx{!?4G;pe$>JfQxnFT7+A1H3y>RuYt`52?!}wP7jb$q`?6
z`dyNQJ$%IuX0zL*iYOivRlHA0%h9U!(d$5Co~~WlWi7b+fuK-(UkRr8xB3o|(a&%-
z%A@KMaw87S?@bfXKrda_jm;qi(33Xcr`_U$3&EEM6&!^j$fht=g^>oTZwWHZWB*a~
z`tfYzF?D#dC48*O5_3~m<ryZC^I`U1LQGKwdRf^W-2{=d8u0aPvC<~q`zg;ws(}VD
zU&{%e{e?V%2HxVi4CMZODfF94Cqh`y_#i8-4ve+fzTZO5a_&L-=?gJ<&$ccQOAy8S
zDoXj5mxCVoPc``HeA56gcE>nAMf7xs&&L+m;CXtaa$<Nx6Z}(^ti8SwVMPlTzRqDk
zEY3hM=^6I@On)}N;3t5mMqBzPTP5(l`r>=|58MOV&N+GZF##SNxikGCP8$l@s{CuQ
zKN!KAWOF&r0FE_Er9@Wg!`^>#7Oj~8G<@f_w9zN(-s)LJ!Z}Vob@M*|{f0pN=V#op
z%Lo_-x!x7F>%bNHDz(#JbU|t5#;|)gaz9=~>g8}FpP7<Bm5#v(axA2`wf7i<rg47f
zVhGOry}!%Yxf((EgUMPY?Az2799dMqiynhOUkQ`903iW9VL9r0V2~nJGghe$*TSO3
zkGr53c$%@aXww41RxZpP<1>TIfd@a$&ziu;>T~xR!3cJVJ4;<D)`!Da>SSpIO<}Fd
z!1YfK2@F+=(p4u7;9R>;s>CB*C?uvnkgr5Pl;_f%#0fL#qk6A;=nc;MuLmvMjWB_2
z#*JtdFo(~rWYVV;0MXK~nvRVo=*3gEw*8KEpn1WQZgUf$TV;Cqe$E8utj^T*?!seY
z|Dlg6oSM*aq2Zz!@{e|IA2prsCBVtfO8vlg^oV&y&2^(EdNa3FW`Pp<90}IJs#*j{
zm-ZC#TgLv+YD9feqBvZ158HmDi}M!Z--<iPzq_$V?&jOqDzG-U>hhvR7CxDTx9^<e
zgH63~Q>jqg+g$LTj>*-7_o}S-i?MI|M4(mCffxVYb6@X*CINEC>EJvQay+vF`cErp
zK!^5X#FNJg;JCF@6~dqbUso?JRm<Xign?swf3!Ae{;?R&IzoU#I`8H5$Lf$%#(7fz
zJ@T9c7%w}c=cSC~ALWExV0po>G(zX)z@OsO;2q3evZqX|I2ua9bK*i!4*E=tvq*I{
zPUyc5%laIMb<|k{v!7qEe{m&Km*-BAA|%G0`tnei01Y?JZ@vGHJgMP{#VDL7R*cKZ
zec4ZdF=l)4CFz02_D+VCogS1jb*o*+y52=7$t;Nn{qGLVdCXJD)BY7DR&ZSh#1iP#
zO0f@6E>XC0V8aLu&NXk-;2uwE-jLHWes9F;e<#c^NyGbi#;z~aIB&2!a>%Yz70S!I
zt5qCzAY`dFs|~qJSCzU6!=9L{z8EExWQqOkmBWfuo9Ng6bp2V<O+24O?v+d$>45Ai
z{X!aYSjIluRG+cc1F0X~Un(bc;QZHwvh=?)@Ulqj%mG#%NPW3@d0bx$j{k_Sv%-E_
zT4wq;l{fgk32zUnTg7}?zvRVU><_K|uGRa8ezzAI_1o&B;@GceBc*&6h2#e}(_{4%
z;Ga*f-=8b;P`J^ZOA)68(oqjgl`T}@*dfDi?kF{oiM82wcp?KIC>AIJaeqj|>`T#u
z24$GNL=L%$`+Dcak8#fskXJ#w#b7C~02K1qDSEnOVYj8j<f5u1usVAM@hHo{4|}fN
zI-D|a@1?AJV2=>|J>(J_W`X>XPsvBst>s}W{PDSeSRcD^Rt!A$QwGTx<^oz@6<FBo
zA0%m}3Yng>KRk70p>Z^Xk*iSx9*Ftop3;<rNb>0NFRbeYIP$t&q@-Z@#|_3oMn!1-
zYcc-%y&@PG>Pde)B?U8kjc;c~agr}bD@P1}rp5E*Se~E_B~Zm!ov2EthvbC&AzS5i
z!1cH^vUiOaQrd(}USfaq50x?JS3K`}F2B)9{GbN@{vhlWp$$Vz7Kg=<XS!=B&gf@q
zKdHyLUTHF|p0pL$HBHc5BDE3{KfO!X1p_xmo%30hL5_FLe&3=rB;9|SXt7He9&_DG
zsdy;}srN6raN~38!12I`E3c`^^|dF;FL%(8do!yw?5;7xCdK)K$Lr{TdNpX7eTfrl
z5}*0Ad(V&#4#mc=RY?I7w2v=tD}j<hlaEWe0vz;k*gQq24O?o}DaRlECjDlw_7)xz
z2Dd|g;=M=FqqFn0Pyd7rY#bGuKX{c0S3WKa#tdnIa8c%P-(T!QYc>Uax6uQ^JmwFv
zt@u3{J69!s3j4)b3kLG|y>6QbW2eUVzs>rZ!~*VLE1Y*b$?yvKIAaeQa|bYYA$pTX
zmy-aW|32uqn^S@7Q)dS=uwVN9?V3l8vjSY4G>JK%s|dxFcf$l()j*eOCP;x<1GL(G
zx1IXbfza~wsSkb+9k0DoV#T_TW!V3c(@hPS3y^P#Su=v;VSV!w-?c#SLE7|toJ+M_
zAFeordF%89=fH6{^cx)#nMxidfVX~7DpM!=4;g$Lyn2-(UBT~qZVPhseq{anU8w>8
zJ+pbpf%}FRD`XWeC#b{a-llu+M75y%%3bTOlPVC-t0ZZTefg>qvZU}^6)+GIw0wR~
z9=PmNHi=!5;Q!24;ObB0DvMsEE=sY6r!SlajSZ~8tnj{$+=LY<)8Afv=3oxFtIDRl
z<1%n*&ZlShX-i;j;1x_p-lZm8J&lzi&avXGlsmdjp-kjwOQMD$JeUuS7qd126O9r}
zZOjk&zn380JF5Y&N9+C7ei6WRyzcXBEi)(@K6rU?%@TIvS4VA5%0QUV=xv>EYG6~6
zUdx{>3;uN!GuP~7;Cy!|dEdMa+^yc}?y1p*OR4&H5QzEe5QQ{vDFS>XM(_XDh#a`n
z<ueDjOyRcRMTS^416a*fGWQrY0j~smh2?ooaP?X~q*qS__GzDM9V+^;87+8w?IZ48
zzTDyQRa1sb{A(L>L=6n63maa2ik!mxi}oT|kJ}dpFb;ERz~D`amsa0pAmzrhbN7R_
zz*pjojM!`BuQ%LDjtVq_)@E1t;}%5VHhp6lHih?_deeKCkQ;WskUKhb4Y_y@(D``<
zeX;dYA?@fLb4xXss+q#M(qZPlVtoQ6rr#sHc%ci1{$B1Bc)$4<(a@+Fi1m`j>~LV2
z25evbvK>)~T&xdlGE{n+aJf`$_t`WJsBzvRwu@r^ny@mkFCX_Dd=Kh1m}x-Vm+~*g
zxE~XfNa*<|gSnkL{nE?wI45gyD!0YY7hyPdqxB!|3wLO!M&@aQm3f3apT8C;u;~7z
z`AY;B#-p({n6s%_e{_7$K20!Fb6t1atpgf2*g48rq~N>e=K57xb=ZB(=O}j|0fL1|
z)*ZjJAxxyB_3Iww4*FEf*<v0)LS-b|yb0fT0ghIpC=sk;?u4o0>vnx`kG|AnEoiUI
zdE9mu_b}V&d0721zx_ees}Da|rONwyXZTg1?@a1Bs@<A+9>_@t<Gf8~hS4|@bAC)0
z$9g~eNW;A^GxBC@YEXUGW8Xv!?yG8rNQQQ*!SHsB($i;{m(R`CzlHa*8YYj5?R+9s
zTs-tuxm622jEuB9I2WCKNY0Tuq62M>Hz@;LwLn<8p4Ntl&q4hNuJJPT0JQkeDJV<A
zvXua**ArnFvCn*;`Ai1NX2nlbvB-nKhit)lK52M5)PVeQaqv36#>i&E4%N-4A4bg6
z!F?*OM{n+n!nKk0jgo5;z{KFhd+`)KWZYdDx}Je^%m`q%Tc?HJ)Pc%<9O96cfBQ4f
zDdds&j2kID6o)erQ+W)P;xOscF;-4e1_SLo`?^B$9`+@9^KrWz=r9F_OcBIEQee8U
z4WA!Ie21#_E=fb|%wi8)o;2KTRM4JSk%SZN++2JM;!yuitF0gB|1DX6=0oLW;AW3V
zH-)JrkcMAfdNqn1hck@MM;PRQ=GoDEnMHCSeW5}6%va=ui9U?pBaidU;2ZIVc;2%F
z6KR%y5rL;_;+em<GE|wr&?^qddh8c-#|WO66dtW~&IQKssc$Xq6z;!kQy+1?>Z1&?
zK_`<XHf3QdBJytangY~@ZYC)phwx?Qo6F2jdbk(J$LaJC_vd?xtA#L6u-<vD*EmcC
zSbD$oI<+Z-R(!pgcbW<;6|s)(#<{`h<Eu?NObXC-^vTiWJ#6rytp4f>&WTSj=}_uy
zAz!7tyoYaC1&Xvim#hj2Fher53;+6^<Q{hI#C7C1_In9g8eNt|zU(l466QTCpRilB
zT}AGvU*CQGdIbnl9TlOKQiNW%g!F+`8HhO)nVF8hGu2V**Ax+aP$Qj0Ou~C&r$m>w
zf&=c=iWz0zqEv>5+5|Y<iE}nl&m0$9L16y1GbU7|443b=C|^pzdvlK9`$GaUz_1oo
z;hxV2o<$pRKlexh#XI#-=BLQ3y)X1)Oh^J&(h@5E&rQ|iQtQ$<EdfRf51zFfOTZU1
z6Xyc#tB<NZWiAU)#=i5~@ij*YxG2rUuezZGkvS2Y1~LNhL6o1GxG4$sk9>VueC1%N
zKlfx#iW~%PNa_3?7lFxw;veO>kFDFPw;W$C1LCBHs&V9e*zBQc@OI{d>=aJR)A)Oj
zMKHEK#=eKp<EGNgN)=Fzh)+B?BnLwAM(IKaWFR5n)2%E{IT#|m6ILFQftDMzxh(w(
z$SpRYx_?jt{Q4J9@nW4uRoo>@B&$N~mDF-7>`Ppz<~VgILlNo;y~946$QzHlzT9}o
z5VAWH1RuK_LE-qR5^LPwxgx>oAL*$Fr`0J251_xWdn-kQ@B@I#KIz_T%u{^G=q;XP
z)di-nNm(umL^%J`A@rk<F1(STqZh#Eb4B%^)Z=(=3Y`}{V#kbo{~i*!`J@bNVbOc`
zl2qVncwJf+dab`RlwY&|tP1Ss<N2BJ`6>{ie)el60V0f}EZ^)?0tYr*OOC_Z;P=v`
zvmW!n+3Odwr<l+aAD$ulOj-|QCY>C%bhO}yC@&?ukO2sU@~%}#8UR!6V3Qq}0sPla
z-7d{+4F4@1VfU%m0io3BRl=|!ywq?SHAf!Zf6d|cv;v$EAt-#!oq-eB_5^A**<ika
z=GDo2D*R9^^jwpkRRCC{KCr(*e>bb!aaJxfPUvkSQOM-b!hPq!F+E!WIC193?gik0
zy(>X%NB?kwjF=U_#xOmM@~^Ta2+@JzpUESVJ=9>g`@sG8F7$9n-n~);|KE=KYOPx(
z=-c$Fu1Gl|2r^d>yTvwff%9_4@@02kXnFX;l+jH9`h(;%wi(bfu9xw%_pBH!EH2EQ
zrjdeW-lqI%U;wo{uRpSyqQCZO8EZT<7bIj~5kByN4uo25$zAA&E!i9EO?eRgT>{Ts
z<4+4i+}_%)N5}yn+;z2lguIw@`@`jwKcQ!IM7fc3hYzAn4$C}Y;Dwr7ITbI&h2hWk
zSx<N5`(%m#SK*Z=11CNRIr20qgVf`|3v0*?y8dOwL4KbKgax17eR-D_95aBwzZX;?
zZmj>-d<y!MX_EIoN1%x1qq>1CXXMZ7hkAVWQU`@V=AW1TO2U-K;nj(c*yn0_sJ0fY
z0vV2`vejSEt6LYn%&<!d<k-`<1nwz<tmNyOdTsQ<hYMWmLq6#rYN0Pq=%GyhN(w5<
zRe_69%jxr;a=@hfNw|-o3QaASU&UxiLImw^2o;h7&csud9D%a%irV2_hmtIO_A)&k
z!6*UlY$L1uK9X=~VGwK@kaI9TO{8&>0uO#u>(@`1$b#Y$H5*?y8wJuBeqOpuOD=gt
zs=B=Pt+C1~GV_xvKlxryMoe$PE)bl%{_AcM^0M9BD69$cFj+ZS6?K*ij-C=PxH8NR
zE>rq5_p&jcBX_GtOqd5E7sBRWOYXwGgj2U_rjZBu;)u^Z@-NcaxSbt+IV!TIsg;>)
z!aq{6k>(L4wOx=oGJ3SWmID&9?%Ed+zmSYVcBxutwUTPH_dfgm@f(Scy?uY+6ct>l
z^6(r?Tp_WkiIgu&Pc_<&3NR)5^OE%y3Uogu2$7l6I!V$4=;_P*!ST_Rhs?s*#ys9F
zOxAYa7pTU?Ngnjv{LNm^LH_PN6<S5hK(4;|@9JkAc5?8Q@`;b#yU2yz7N75+$Ajl}
zO2#e$3E1eXy-#(M7qX-1d@kgn7v1Z=%DYh!ka9@LcSr8qk4vRjDc(rH+_jVU;Uzy<
z{Y{q1HNrhOzN7?Uar8I|m0cfsqzdQ1J4J-%@Pb;~s{x5d5jgW#`@fP=F8HQ2u9T`N
z2(w$OgkLGbkaUpvBzBPpMyDV1kkDK9DEEkn<vi|%a>vk{aEKrWfpVIZC=4+Knwd+I
zLU2ItQb9tfIJnb&<%;kU0%FA9;S3Hw=%riE-Dr~nv!|h@ez-SpqFURhi2jC%du3hW
zF*r}+Or(xn7lwF=;mk|;d1-!QKv)rxfN8c^!PtH|^h7)P_hbK+sdL-H!Bq_Q3I>N1
zMaY2Z7|+t17Xol)Mm6x-2Og+l_qY>lzyob|D+~X$xgq#1xxd<wg4`K6adF&Xf}~({
zlHsTk1%zI_^2+tsLSt@H^_DZ;Z_+%|(S_Tz!;O_=Q#8+8{x)9Y-qv_fy4HB_6rn^~
zoC#>GiuYbUH`jP%WbnuIO%Z73KkhjcssaMHn!L^=%R|8Dk9p^Vn4$j0!{Povl5lx2
z!F;_8`2vUicJqv2AO6ZJ=b#MEFQmr&JPL7tf91J<_bYx7bnw|elZ12E@+f{c2RXR>
znmA~EM-DW#JS&)~katD6Q0795`@Ru_%S!#o2YH>!s7X-7Jb&z)%ZHVq)iL%l<t0&Q
zNE{NdTtnY*SEJ1IYZ_4HwYy55Zb0v370LeI4k<89EL{ITDzMUVd{siE{eMpXmV@^=
zX>|Vfx(tSg*b2G+Y<-(0m0Z2K+x*TTY5LYXum4eW-r-!mZyd+R-h1!8_o{I2tg_3j
zgl~}%Nu`WJqHV7h$(AkB<Qz%L2pLI2l)d+g-}C#|)fHFyoaZ_B{eHh*Ef+pwJ)S(H
zT8~ySEsDs!V5b^v!1?ac-|2nWQJDsB`NU3KpL&C*ud5S(HgYOgLV+IW8fCs+ImQgG
zQkiMDgV@18L+}#|*9JCc^=9ec?j~l`G8rH3zl6Q(oBJGcnHqX`?ngVMFhFChQboAX
z9!BqQF2ui=4&)Y}FmknU5a%6|!<CKs2y*Y~GqZX$goi-MiBr{VMEY0#w18YH;w{e!
zo5d<R;+qfq(#=IGVyB3#_<<5NAy_Hpc9DXT$m^WZ^!>|3II|tS)5l5&<9GaaC;Jin
zG<=Vv8to0;Z>Nu+nr4BgBO91`n<%W0blutx_=DN|n7F7|(}L3zH-Vf8a=4>Bx4W0Z
z1{-0!er5+K;XktcqbKzl;gpR$vmY}VbXkr>kuVmpck9$>HeAF4xt=MUs_(>XIO!)Y
zdLeF|SGo%O!6hvBvvgl({3dpJ@2|!(;}q7f7Wiy!egWGrd;FM6%P#))*&F@^En3)e
zs%1B`CxPX}4l~ml`uU>L=Y9+iU>-@mrEw>hFjnkq2_uOO@|=$z^jTzu@&&DUyKPF)
zdD%;*u|Wez^CTK0)%P$9hVOZ%A`BonlJr>aI4ca;Cr{gF(!*p@27~8oG8lJ#BU_*@
z4F_!LywCrWg`-UAB4+5E;9fc~Mu+x&rQ=ze$*3R6C>>{dR#_TKqH^0w9f&(Rzs5Mk
zDG4$IcN@245eK83qDn}N9r+3;*he$uA*Q+C<Wvsg#hmf)=tS>T^>1nepZ}7E*ZZGx
zPoVptP;h3yd$9`C{CW0?e_90`>Xu^iyrdyjlJc2Sqav*89A`f>sR|WD49C34e)yct
z*i3Uu1I!;R6?#ysLPYL)rxyV#fE^2Y;6$$mt^qxuTA>9E0|UPtg(Shl)X3VQQWlPo
zE_rQ`OQ3yczERZ`MbMp>pVDDffYVxIx`)jaV4I>)Wy%t9fLeAV8Q0}us(jCaJ3<_k
za<q<IZ0*1Tgx+p6{a(V4C4QnR=BFkORYa06wlETWKOec4ZEj#B>RY$lRGGjrgH}DD
zmK?U6wfJ64En<{+H6I<19>!fpFc~&Q0(<yWrzA>@6^zMszKkKi!;{x3S`lsJpgWtk
z(S|%quih^gh3~z^xh1qRuRdlam|v}4qWStB-~Rn4!IxBzS!UTKFe5LZ+~If$dEpU^
za-JvtXV?sG;ye_wSFnIR_#E|~E_WGw!u+pqGkXvFcK?p4Oxz4+PjNn5@!2>g7}s50
z&Dw%%EqIB{%8%f(JF6)?*<JX9oaSF?QPa4Y@1?mC+ZXuk9Si=c=r%0ED1n?X|Ak#W
zAYZs~Y!J&7GLgP-wSw_>(J-+ij$f+A%_8AX+~9Y+=?XoX^KFj%o>FjSfINfxhVuj)
zln+z8UFfF<lK1C!v-9Zp{*ADztR@}2lu0aEQQX8FS8v81=wXJ!<i(w<B8<?eOSez$
zAqC8~Xgl#G(!yWs)Rfd|W+0Ehe%NDl6EkNg=Uzx-g!4bcBYBo6!D8jvwTIHwuwodJ
zbB$*Tw`F75kT50#Kj1W@ek=gTH<mb4+u1=+vYa(UkrQmr45zW({DS>n<38c=7kS$J
z+N?b*$M6-uy|&?`DeN56tD3#59B|)rE||rN1xQo-?o!h4U_AZ%Eh!$0fmoPC(}$N#
zh?o1BbH|zn>~`J;hF1<@67>F0pE@EA-Yo@IIs0k+W|$0-!i#vyTXOw*=YC_V1wWMM
z#3^A#RWDOKuMK-YsIIh#ylAg}pA_43ric3A$kAbQI(V1Z()wgS35+^TaoL++v4tu_
zw$eyiXnag%wuF2qjhvTn+uvKmf?`sRH)yhgPs5v=2V;;Q^nr`c4_@T4(%Z6FJVguB
zadJcLD*O;w#>Q)Lfd=O4Pji&LT*S2QBraRXbHjm0_iI}3aDr5MU4U5v>H$f3k=|Kz
zz!$x>$(OdA0Av#CG6llGP`RdQEhGWn-s?94Yfv9x@IgqAH#fBKcz6FmeH02C%Ivy8
zw8xCR5g;>+yzu>-yt^@C5Ot&Rbdfkev|UZOcG^oERv!PmhfEgm$NtMDmHo7EzPjP^
z*ggu-yUSvr{Z$a&@s*N4kz@yJZH5yf>x_hWUtz9yA{W6P?yfW&$Vu=<mr(Lna1hxk
z7mHrTARmvRVtYC>3qd+u(bNBejF@elp?xIHLA*Zlb>x{mFJZGI9>ac-o_K$F;K-Z?
zJ5krN$mh<%NCf;$Zn9M2AQYPIrUf6c5gMji7ROq-2-aOQeDeoCG2;*}u6Uk<@cVG#
z`4wgk!lOT%1Z-?X_Q;CvA7_4|JURI9mlF&`H}w+xk4QE`SU>KV^Hucc4!B%A>cU7A
zR1AEzf5k-XhU^nsBcmns^Ws~{WoU>*A3Yl^mzGHV_U7HARK$@J-Op6s$xi$_b@p22
z8U=83uXa4YOhvdj;bTK4Ex6DR4>cD}E@Dd~8XA#*nRg`nXkjWl?5Voyxt*KA4llmG
zy0kQeJCJMaIHir?PQ5v60o)z9*36vbv=`#4P{c|pNl#+wm$T`)q`%>cq;|`n+Y9*d
zCPC5tqDwgA?zQXr16=4mET<*w9~0<PS$fS?EMbYIf9?z)rABiv)=#bDTu|jFAd$)}
z28pJ*hd0J(VBf(q$riIs%*Xfi!<r;2xN~!Ul01Y42CGU=$thDqwnUpWKN&T+%dMPd
zmD$36`lc0ZDSgF;XD{k|d6Pli{(1Qh3l_-Y<B$zWW<>sCcak7gJr?7UGxl9&8zT+R
zaL`qe!!1%Yy|%w5IBMOEQgTOJ(8|+VuThRUsZG-F7lSHXI?r^!I#&T$vo^YqZ14aP
zaN_B?W-$m=4L5Gt7J|7q%;d8-CE#A8XwhjdVW<)HlX(>{3*|pwHRg?qzzg3tYmq)t
zI3*Er?hfJuq%&Ajq~bCVEF%?o?UOt(h*}pIpuHOTfbOSf==;UlZpk$xpPpJrDgRi5
zEX?Z33~A@fz(K|<2cqJoP;zm?(j!L=?X~JMH(C^-+Qs)q_M{9n_He6qjEIBcXP@3u
z#DS3E^!Ht7L3s^!LQgRp-Dm0TGq}D9fWy`qAG6=0kfad#MVue?dY+R<mK;}rd6Kv9
z!EnU4x>|Sp*aa0(?YqF`^Ggs+lC3u1$g{!6arvFIE~w8}dB`p}nFXePWd%|#vjJso
z>CyTy5|J#zPU_Iyz^I&ykW+UZclj@0B*2}T5T|=ePnCNQ%b_&A%vnw%IzQ-m#-3Zn
zwQFrk#8Q9Z=EC<f?XpOOO75*c5_`176L0rX>sQP~aJG`vtPnjoUQ0H5z4IC$ys0R$
zlQ)XHTaD_66)ob%B?^z}RmQQ;5s#Zj!@gtE-4%}>Z?9p|oY^vm8mh6Xa3lXf_bpt1
z;ilrw$|CNe|HQ{Yej6_wY!~!4q$1YOJ_%i@8N=Q+smb+Bw&JBzta}F!k_eBi(>n<l
zdoiYup3ze8_wZLjynDje#xQ3OtMLu9F6_l^-*|?zyo9gmQA3@xRK%XznxV>1#8-U$
zU+fSCH8Dh)v6>%7Nx1#ZkBsGB!8zmHE<}V-fR6H#eP9m*@}V4^8RYnfm3`wYHSR$F
zUe+IKo{Jz3v-(L3!<J!8Zic4HzIz8_CY0x_Z79IU$bV}&c^xBp<n=eTF5(r<sgZl9
zDZr+rd5-@LEzn8U{~SBhgVmf{SK%P7Vt4x8$IktGfpvB!_M{$T1INsc`B2U^j8VGG
zd=ov#J+7)o6#qvJWuc_zf8t~id{%9owvh?lBYBiq?AI{ElEfvlEXx0LRC+n|Hn4jX
zBw6LzQT(dMz<0}?T}*=K;gbaazgU*uFP0F*Yj<mVc&3SE6Psjc5PG$Z@>Z4oa|Fs)
zg>na%x6W!olCaN3_dFGFB|Xh7iq?Uh-qRX9Z)Je76-E4LW#RTeEn3S!87QYeA|SOX
z1)nZ^&MRM6f<w`MIyT87Q0`om{tNjk<=$omJ0PxVx9E?)Y93KAKYm^AlZ^-rUMLlv
zv_?6S8s{ojA4zy&6wg<KcreT|zmE%$tHKYlfwQGH$j`@OAnn{F0s`N9vU*LV;jdRJ
z{ng8eci8dfid?xg6cs|_(Z6yao8iGSnWzgdoQoqf=22egq@f+BGwO+zb@lNezuECl
z&vF&ylc0X`LC}11KhWRVS4W9@poUhLZ(gL;hGy|Cm$50dkIH0!tCgh-$NuvW?qoE<
zyy;)Do1wmR`cJ$1fzfR|r`I?~Q<{PZm+%~*y~{>mku#^?1=9fk@zZW@b7Vv|!F5vV
z-a5t+Bti3)SiqK_8?wFsZy5h_bV=B)Zx*L?D|*nDzl0k%Mz+Z3EaFjg!(v_BQ~1Q(
zeMZjcZCtYF?^kOQBjMS7aaHjC0{%gz+(mvS73-vONjM`ofZrU!1n)<#VAtPmD}_Fz
zBl?QR&&#;~#(j@UB{k5H5icGLeI<l9agC($y!|iwF)#U!1*f<*%t`6qlL0q=ki$Gr
zImxnut!{_;J#??sENi(TVzh-xWX+DPPY>fLWbYcR$OCrrdQ(_4C2TOt{G{Mt#3-Ww
zk-e!{!%M2kT|e43;5nlXheE{I2(=gE#%!<235PQW7{n6j2oWv$sOOK_2?_I48FA|0
za61#h=7k}|mE*Wvqr=#PYZa)(903xc=y;d!-s&FCQ)PaKNnU{9T@(Jnae|llTp*oz
z_CGEnJn|aNAx}nv=B#WxyM`#SVPPM)*G@r5g$eiv+$Rw+^QYU7j583eL!vEm&FsX{
zypqDwJr<(E^y16ch?o4dv)Fqunu>VQHpeOYYz6l>S~n<UCJ`A=y(!lh1PL19fPcM=
zBv{clVTwFJ2Brp^PMIwfaGqaj@N?4?CSFvkZ*yw~b5KzryCuGhUl&T~-s|qcCG)Pd
zI%id5Z0jF$jTZjk#{czv4+^G)B!NZU3w|0P#1)Ym8K4VSc$KbQa7OtHrN?Jh?GVS;
z?{j7ML4DAs+chZ6)qxN3U52mF*B!e2PRcf*EwJnM>!;83!Bv?Zqhr&9^1b39W(9p1
zU*CD8ZU?Z*TH=<Thr#NvPraAZ_26cQ9hvSUZD<(}ba@=70VyfpMW6TqJX`+WSLvmS
zI8%N5dkH;ITovK`bj<)dXJ_j@h9qFAGkIR^74pJcpLg4J(goT#qA4Ayw{$7-L*tr(
zI#mC1GKvgV2Ks82c+m=ZNRe4AzdWmgJnMUGp2#1Q>!Gr|Bcuw`Dcko>`YFJMpwgZ8
z>x$rV#@4CDQ3I4dwq%x}y<yCAig!i)XisGvDR^B$4Af+5qbFp=5I@1`LfA85C>5@t
z?Lr*>iEzi{acwc+zc}T_g}h+%6T9y%4#+^VWqnfkfDFh6$pt>rl7W7w`|;cHq7YU0
z{@qx&AZV6sC)K)3gUn=n!;+;KOw(PzQHY)|7ZQ%vYGUHBdh=Bt$F2m7novrypXP*T
znd2-^UW-HBJ*=*N2Yp?Sf~*GR8&9#(_>7|c0-a;hzPm#FARc>Dw6#zKYD!98i-q#Q
zmSb~$W|bhc|My1rcMl23wXVy@sj&b>2qozd%G0*rFh8S;JZF?HW_%+JEbyBy<;=^I
zq7Yva>B*Ze1aEu3jOep)gEaTP;kWvzAKU+(PFRNyRt*C(MPkXoDEO+|*iDr0;q2x3
z-bV{np9OZvS@tl;sO<ypwJb0%W+Y@9Ll5WGOT2#}{|&Bw^={$>;_WT9AB%d%0!u@V
zCG)K$Ld)~8%H6|*cq92^%{wS3dOG{xjn!EJh+~@ch-9WFNRM#ALmE6p>gktJ=X6nT
zGQ-9+@r@+JYwPi3@=AbuN$xlKG%?UQdqi&R6yjO1>TX1ZE@2I;Wl<}t)KD#O>+h9n
zGH^K_s-L;NiJi09c^7gS<!@_0Rk!G(Jcq{RCd~*g_*46%{opw|V%qn>N`%D<Zm#>u
zR6d7`u!tG$dKJM9+-0f<uJv<6Jz*`sj`E65^12*3Tua!CIrhnoG+yY~Zu@*3^@eVY
zy!lqyE&}_bkJcxk-oSuoMiZtl38k#B^CXdH_WQ2*nTq}VAec3LJ-Zgo3)J*Nno*v%
zn75r8c*H>Dhd_tKC2<(OH&J=8O#<YPJe@OGLi;|`Zr9ZX<U=1BP#L2_zMqSVMHT4%
zq%(a@*?f)(lG=|ysIcGx#gutvyLz;LCHZw1GVNizS3)0&A^&2r?{q{+HtP9UCjWa*
z$p@{nHk}91J+09&;9PzjJG@(yRp~5|fp&gNi&L=z@M-!`>;-pj&~d3flZx_|H<FYr
zPyOHqFU5lB>yLP$@GfKTlpOkb%0B!2`hoV7PNfT7_r<_`^`d7>2?w;vQ+JO<ut8gs
zuT2g+7ty_FoSPNRLP+NsMjqSGL@?QX)YpGWO}OZ_U)wLtLR8*er@tJ=Mf`l=Iq&bz
zLgf6HWIythM0o$q&!;74Aq@WZC3-RO5b`I4VsDFb69qlKy&dd3_yu#;OP?*+iG+G)
zq2sAE#2(J_HRcf;Q6Zvrj%8Dj7&6QCcHv+pxOMbzSflro7f<>3CL73zeO%f$y#2g{
z$%o9-`MRP+@8#L2G!MB5!*iX*F&SjUURC<0q!0rkciryAEe}zG`|0@?t-wYcNN#Qv
zs-z=Wf`ki(9eIhfTBHSSK^}q-vY5Z{l$CIP>r-(#W*x7#HT>mThH|2DrK>*$sfqo&
zO^TgaY{U!B^Qsi8G{iCP*uzb1;$YwU;=9dN9uPJb@cx#(jGa^&UWsTN#)95R9U5h&
zg?dx#luP7faHNo;RyB74x7tdjPvM{=(wt9zw7tEHeRLT5{<IPG)q_N9cBshV>Du_d
z+{i^tU$47;I^-u#bh)1Dbfh6fvW}MupBTgAYCm^)P6)%7zSE(L`F(g`_CQ}iDkb8>
zUtO6feTxb3MaVzb=LY+3o5_n`c)?khp>Py^9%C0y#HN>W!h1XW@dG}bAWg^oxk;G^
z{>-Tx#ioctaWI9Vr5Gzwxp}hGEPWksjy$Uof$oQW>QAb-G}mx)r=6d-$)u4dnGsx&
zKgNsmquF_eeq1m>cwDk%6`QL#Q*_3V1c&V%tQCtiLHy@;*4{xa@S{@ZIAx;=lcoh7
zt5;RQ-DX|kG|Kh8e^b5d!i4y~pB9xo1_4g)vspR#MHhb6#}my~$cGta^p)3C9zt%s
z{+#2Dat!_>0RyB1uu@K9y=trlY2W(b2<p{FjYsO<dWiA^e5v1`d1?ZmO{=dU;>g*W
z2S`>S?n&UQeLrbuP!9ZT5=+H5ZD{o~emnX~9cG&tak48qz#V;R$<=m0ELU1Aeb3MW
z8xbL=4~kl#z2f-OxF6*g7QIrMQGZ>IHDUD~;(Xq2P+$0nIKd}wSWeLlDuCMPw;c-%
z^<H}yxFj@m!NAj$vtLaWG$Xn0HD{~9?`L6l<R}kkefPref&yOneP8lrf0it0s9nBz
z9_<w_e6f!ljuZr1DwWi1)Ej-$_<`4rR~E>}!u4-l7lxbD>AAUmQjp!-@Hly06wMRm
z!@F)tpuMf_<*_|p5b*Uqc@X6yLh&@+rVuH(R9V2xfpQ5=+HLFSQEtNNpm<wsJUdWJ
zaZ10Y6b5Sfbo6QG0~B6WN_)ZuBnMjRu{jQ4e>Y{}GlP7Tf<AB6^#veYYr-%1tvKpa
z>6<m@3V_V9_;#yboKUjc`n-XP7Yriniq!+@;P{NjO+TCxP#08)t%L@2e+OT-3}=H~
z292sfGEVq<kyo|fgBQG1{D%IOv%_7Zob`^MLNLSN9~e5#2I=a}%2#yuL7pMa0X^g!
zAU&a4a-r0Ly_0;E%;&YCgf_xDt3(p~-u-?vc0>zCDJrF>(SBGbl!t+qQV|ZB|NY%?
zSQi}nHU*p*HGwj)_|uCpHE{MM&%Z#g0YM@fmG_D@K{sKS%ND(_=d_+zKOBT|NwTGe
zv3C)d+-LOB8!jDi{<h4;yrc?w-`DN0nV|ewPzpn5v<5V)(SG^bq66Yz`|pLK-bM<i
zOxbN=d9XkJL0kgmdZG)cpHu$S1f$WjO8@so=OjI}y)CK*edkkob+4%bw>4g;xTX$C
zBh34U`c)t(L}UEnB`LspjC9U0se+7MqiCb%epoP?n9xMr5&7Yl6|IQ3)i30rt0Rv*
zpTa>MZ&<XU;oSBu>QDugr{g}UyQ2V73iU#<=zV2HtW?(MgFa;0-8h!2t^(<evA{Pb
z11W(~79?+exQ8pa8OJI>W>8nIm$n-Ed<>c2MtNTM$2BkMCs2NrbVO><PZO?j&qoa*
zj>VChXrTz?e{DC)S9|_U7V0UfFS^CZgJo0Bh%Pnqotz4O`D8{ERLe^{#RDb4Bz)cX
zCCc?*8^5tt<F1Z4wB&Rax!N$Svi|rdJId*|EsM^g`vXPKyTQu^qKFel>9>LMb<w`Z
zXA(rjfuZ3X|Lb&F$V(Y=to|epcWe8opP>Bi&NI8wY_vy?dh~kj9O_#bJA9nCnUMkh
zXOF7FXzH*+GgnE@hIT9|bCm4k)D-qgB&yUQycauil*#fCK8KSIA365(&Irc$*elGQ
zV;Z;LcOZm@b^|X~DPp*Og@))QzmtDYnU*-P&UlQYV+>!r?HW9OU=MpGB`M*^L{4nq
z?~fl8-NJ{@uf~fnui$qtOLhxKQi8@K&ol|-F=H`I$z?+4$VU^?{Q@(zM7ht%PKz)n
z5tbO)*jn%r{~S8}gOzR*cYZmedB2vLNT~4s{bib*VCC$ao(r7A{9LPaq{h3jrqYw@
zCsY=2tv@d!1B;o6KRSUc)*F;W>7fbPCsHH=d#_;ad4C1}D;3?8Bl-<{F`7?$O*w_H
z*j`@t%v{04CZ;%oLfHu!|5Z^c#Ah#EF8*uxL<TPBy(gDFC<kkAe#;k|@&MPsYoIzI
z1zYkHv>Kjb@FZqU<Ou4gH_U0RzerVtE6b_QAG>8>=a*jYW}Pr>Tk(IS3Y3P6WF2p9
z@5{j%*8XSJyn-OzoY5&i#*IE#I3fK7<)>F>|FY8{ZpqJ2LNV{9!K|HsKh7!-O7E3j
z-`kPUyy!(;<bE>f_w_n=(M1iUmL}`)cs{uNipzID;`{go9lpR`Bm}e<Q`Gr~r66uA
zOE1Gr3i#Y#)u^CexnfFOU-$+)Bz;VYXg$Xdzhye#VY<w~XhYG|_YCb(4k@fG7$RR$
zgO~~<j{FbHxBXX8KNNeMqR_~Mxa&-cOK+17fYA9mqv~9MhW_8p!exdKU+Q@MIkP5&
zl^>4~90qW_^UuHIH1Z6!2_^X6QG~A^yQxd1N?^5XLcxZ5nSn`Fy+_gKrd4LfZNH@k
zJn3jVP7J6+yK{?LQL!AT5)^D_UZWg3cOj#FnKYdI=u%}!OAX#!-uGYf$O9jFeHA_B
zJ{aZQ*1q%q+<PWXLpiN9Tsob{xgYIQ{n6Ht9_537WSz3E+dTl?uftbgAx`||spOaz
zG)J`I$xx|BoaUEe304yE7+k2hbnH$S@>J4$N?IV^-NKNLpd287iO3%V-P;mSOlR!0
zIH3W1y7k{B%9KH}IKqd~8=ZeG?x*P}RAJOdk#Vhk1>f$><~BJqiW?+r#O_oLW5?&_
zNj(#zSVn2+?ZCQioIzD?bU)7;e#zvzNTm`ZQCBiCH}Y{6&-KZm_RH+U)MAr*p9;_r
znei^(O=TqFzZ*Y_f)0=45_?S1bn6wkp@+(|-32N_Kb-u-TMv3-oJr0!F>4tcduMNM
ze}5edS1GeUerpM%yfVYT!@q&O9ZQ=t9UjHZlr0>jv+HpUvD4p@UjD{9+%gN;5B<TM
zj9c<f1gv2W%s+koB7b3>KeBhj)ZXJI<KmoxQcL*Nam(j(B}*7dP_1S8zj3^>pxFF=
z#TT5q|4++$IV-`MV0<NRuK~Z#L#wnxvxODm^4YEoU04Cf-o#YUJhrC1UHn&$6MmkY
z5-CIe#``w!YfoJifKX>^-RY|+pH>`TFPbV2k20nmHnf>x@s=z@t@|2=D(F2thbQn(
z52yFFw`k!iE$P@q<t{e2<XtDWLxO#@4b#oHHgN&%w|^NMxA8~aKa`s2yYQLM*2W60
z3;1_|`rwbpd4c-hs60~~E07{*x_RZ%eQo@KK*+KP+#h=I_>}-Rx?g>8v)<XjzRth(
zRsKT-B?e->#e^_;)w^sYQzB1Xg@HZMi}vTyyX6tFjL>l<ziB{_2IOFDE$=f8q`E{{
z$zI#VDE&CxhZ)AOLHoCd+e3%(2S@1P!|Pe>g6U0tZlei&YBy`MPT(&VWO#+(Hl~Ef
zpN&R1xsV6*xuc!vm^?UZ{Z~dkEDudge;=j&Q2?gD^NoQy3h*LDBzv__9K?ELZC|Hq
zz#XHv)NP&0;H!5mEPYuE>H}DyLth>`OZRg>{;UEX6d%@_wPoPs3)-<2l;b(ybeBfv
zlNQKaOy(Oxo(sRP9scG|1>lz6o3xWMvfz-ry*$dJ1k@MwHXgi|0$r=|_snY&FnPJ>
zk{{}=otU9^Cel$4@XwK6Cd5zb?i*1GMmc1MD@{#t$g|O4SA>O|%0SeAVK#!ilBjPz
zRdJoi01`O7dBf#3A@%I3;@oao*!rz8ts<%f!YNXh>Kv7zC4;)`Up(T3@E)bfLg$+5
zmfO3qt8y^ul(m0hjYPQK!CAd_wy-HOmMee8cCe)Xf><(QmM|UH%$3HKb*yJLGrBTw
z4bP0eVHLzMj^8}&y;hw_4f`L|93yi@^B)=+I-`g5Fu>NFs}W5GVwVY{mp^9llJi*Y
zO{)cL)W~(F%9#iB(`|LntNz5A%l~ue+CPgQ`#qEHuzw57STa-3yT}Q@xd!gZxC~?W
zN_u#<DVH(Q>hssKPZsfr7nXG)SJ8Z0S3Ie68_mf=B2KIPqlQ<dtz3pVWMC*mxBJzY
zoH&*o{p?&U9Z_+P!c=;S4{k>*%S$E*L4IJ(=U->2;N3Ae&8akv({kir;&YnDPK8qA
z^NjS6ZKKlCwMGwIX3>{3wrN08Zt3dab6!x2AJFT3%?&An0^yhYxZ!Vn&;!&Yhvf86
z8~VzqPojGMIm4U?Y(aV?58B7E*ZO^_isOLSDGdP+_i+L~ddVTcMIPQ!afa&{%YbV-
z+rdTDOJwtE7d(eJ&`;h?&ZtK*z?qYui%ZdYz-xPm(ZE>%_~jiPS)8O{my^|>FGUWT
zWbSjX4JiQQ{XESiRY@>eQQ+Tq<NuzON-u0%1s0diJx>T#0=>UgQ+nv0IOJ?`;1lXW
z?YQJge$+?%t*exmdncPQC9?yOC-d3R`#=5a(YMqf?eXGE$t5&DD6;z7@>&=a_s7Vb
z7!m}n8=P@=dYhQ&y%Qn6N(``0GVB<AfcDWH=HuEdC&64%u(jx=J%|pU$?DOt2USMi
z>*Z&T1Lh@D_eszWylAtMb5W09K==rGVZ8|y4E6-2ky}F6^S$v@+!PL7t1yd8KMI-G
zf<9iGH39z0=Wc6<tU!0>gIH1YK_H{uz4<4~5NtGL@3|CM14H23Zv+3C0<T!Y!cn$E
zU|p@|=tgM)<;UOui0UwgpR6>s`r3zq%=~w&!2!e<Uw<<DI>!*IvuH)fE|~&tOt01V
zQ4_Gg8&IxDZVpSwld4m?Od(6@`=n`@5tveGh~GMF2ptzInv_ipz&28WnZ?Nvc&^Sk
z*oq$nrI0OVS9=UT4JM2UqMs{|J0)d@>JTtRS5Al{AK8oTq9S*rMJ#*J?%`GcMeNOB
zZ@=%`RZQ0)(SECL9WxUgBeCBY#vdN0W*`$0gZEsG4^9Tlfm{?@+V(}{cl4<?)<b+&
z-eP@L?l3gR;F}aU(I5%kaedEKjK$zhfrD9YH6KtN3@scqKzS9ab(Zx%LMWHdl<Gf9
z4KLahgiqv<gWDThR!78D6;m;{c+AKGf5mdL(j-}6mhG$BTlGmSgKwt^`@W8um}B$<
zs<hxbr1p+dmIUsD?QBO!7~nSMn9;YghTWm|aSbeA#U=*>BAHg%;Jvct8^Z)v=uaEg
z5vZVmw6|UToB53JJ?S7FH8<jyr<@nlR7W{3HnBR(yX)BEuJDtc%QTQ6Fg-g;v5sYO
zOa1rx(HQ2`OPwaDzl)jCXa<mGHZk4t1qa2gKlqwX%=f^;PQ0|SCGvX}+Sk)_Kbo<i
z0N;s$*pOXnNQ=ncyod7S&fk;wWP?$D5Lgap9T~$kjpLjWGl#LlmZArb*neQROcV2Q
zpeERTqxlt6kw4UHBb3XTA7(bgYO<bkLBq|eq>qt|KzHp9Iq4AMgjue!(@IOhAC-$_
zKR898vo@jk6!I7MOotT{=$uk1J$=9aBM(p<Cgu8e(7=iG@E4bmm-nu@zqI$6Wy~PQ
z<jU;oH0I(euDjPt0+ScQhvRSZ!O_u=Q$g3c!AH`}p6VqB#0wo@OdJ)4vzT1X4(b`>
zq$>H6Bwgqsqj;NRhdfi6enKHvwZY`!o=wIT3_`Bo-ZqXffaT^y-vvrds3Otx*wSc0
zjH-T4HlHqxe>bhl`+|B8iMH#43tFJh?89!dr3ue@ak&TA)xh?9HzoT+9gy#1ttodx
zye4uhw+>NdxbRwc^?b(xs3Vr%{B{R$PkS7+KDrM)-VGd8LwzEv67giIf&GXx{qOm&
zJw1rZjSwME-Uo4Ze4RTQdca{+?dOWTSjt5i{z4@>z+B7lYzc9;z8W-~I?;>zDo<Gq
z7PYnDR@B8(>t;nrm{1={Th)Q`BPY@xa%e*L6~5=Hh(nOk^)M+ySqJV2_?|uUPaRy$
z5;aU(5yvk)ttM%Q6NEmDyMqNIG(EZ*>+XiU*c+oV#VyS6J4EgHSHx4G)M`l%K)#$O
z)3pn!vFQ9&h83R(N%&7jSyc^rQ_dNmC$qYUxK^P&>z?R&cTDc^{Eu;NaBzIWu5wBY
z@LFu%<2)BEa(s0B?IH+)USv-Dp2&jj){tA*fAS!cxk6Tq`k9_-Kc<QcMS-f_w&^*Y
zIHY^b#Ctd)4^^zGaeM&E3Fg1{V?e&c(dv4ONKRfLzk9*%se>4p=5mGA_@ew($Q1Rd
z=kn0Us9Rg`OBw1yuW>TVp#GtFTFkK<k|39G4R%qEo%foJi;93Mgca9w1sTdi{6O$i
zt4t{%e^2(^Y+DYho!(jXh$C-cd>nUc9NOCr-Q-Ddl?S=H@;U7*%5dYKTxsNC)Q?d7
z(rfz_`TbsE*0*gC2egHE;Jk(!yclZ#YC%$f`t|fdkxotccB0dY1Ji~p)y|2|rkaR5
z-YsXVq6V{X7g(nqHGvTF3B2B+4HT84B2RzIgOu<~-;-!Q-pKNM@<f^<&_8;sm4f<R
zH_0zi-I0)h-Kn9l{(6)H5Y=ch;8%juA49a($Uk<${Kx%E$U}GLPs{aG<WC9W_;SwJ
zMGo$Y8`Y^$3BkUzg&)=<QQq_EtMm{OH<GLNoUQ!F2jADMz21E0gSMau&6!bl_<n59
zilSN=4A198Wp2{LOnL_GHoXMczqH#oc1;joB@<WYdn6!%_2lKCZE0A%VG#V{wiNjJ
z4W53TD+;^Lwfuy$AnHYS{5btX5)v;qFP&&bIXkCIp+m?w$vPlyc2-dt#>Ar|a!{YM
z<@@ncLB#X9JmIA`IWGZaQR?NYhtwc`Jk;te;zO3GwaiDoLOlqfhh9o!%7|B-zej;`
zyMo&0pES_>=*{@o*4qN&@HinMxR*g5A{LCOe=VtlXmm19$OQ7o-fxg@ey;>~7T3*+
zQGX^{&mtz_hY&m{c$z3!CImM>^5@B*|L^Rkrk`PmKNu_^q7nB{9d5O;XPC`MgZ6@=
zKa)T5O*Hg83_hn0H!`voPMaaFQ5CCw-Un@1$qwCE`c6-jN`!wJ&7Q(zuC#R4#&+U=
zTo}JkC{hu6qFudtM<%e)BHo{)DL=3oo0T%bgh}keh4c>H)Lu-HB@>Mwzhi1d$cZuT
zLR_fb#A07^7q*Xgf54D>1FoXsDwC_<j^8>W;n@Fa1Fvc#%9J@La69&(&ttFHfZ@+s
z?F$yOxSm~xtHY;N%)gX9<Jde0I701vUiJap<aDc*`ZOi{vi>pdcw!uDIQim2`Q$hJ
zWWQlyn$b3v`2NqW@*+<7BNe05^58Sh{qRcrw}Dm6vCC~=wqp}sYd{k;{JR@3*V&h~
zMNI;xrEmRG=SFbKN4edv<R)>Zh;F``!{b<C!o7gWyPJ5ItC;thhD|*2kY69wtQZXJ
z6DU3~HI8xYPIGwT3t0K*FTpY>56$cyKCgXT96n4L7N`8=1IFpWf@*7Wc(kob<^5g}
z+%oGLlg}679ofZFq$Wzx{y{EOKF<Y)c)si7vmC%svfu6<nlrw0>57WDzzQr!rWT~^
z$M7#<zQ>f&xhFSFTl3QiJx^{kQQt#(y27+ist-{vz0J2F1y5PT+@su|?KU7U7!&Pu
zU}i0LmJx0hy3oL%U%bn8P7_#!uggsu(|JrLIKcZcnpambczT4lqxaFIiTDO`PT<o~
zai6Ga!(Q3>j>I@n!c~*`wr@NmSos-=0?mUoP<Do!$3>P2es6muud-}lp%s57R7&>{
zSFC>7_d4RzEf?O^yCMvkVxOw_8}Y)@{DM`WoG?sSwL~}?qrPQ-%~4%WwBPCfuYJl8
z<%E7KKl(<`2Z6PUpOP<%K>lih<p)RPJv5yvJYXvcN{Qm^AIVsOQdszR-i{1>6|77-
zj-FrSQD0)6kO%Xk$`pP?2lbFPu9wEh$->gc45p-mIGCT?4i56jfXG@$808f5u07qL
zJ>r4Rhm4wU^<$`SYr~PM?<xf}tOMh)Bn?$sBlI<BuJdT9-Hn@p8I;_96+ZsV2@ldZ
z`MS{@_hrG8f4?I5Ku+LK2#-5Im~U=*O8w*q7cnElty&)F_tvld63GPFE;=FilvyB-
zGQy~!UJQ(bBV}f6>4>6+x*M;$zF-lqfd;!L8ZgYD%dM=MoTy@egO3{j;YMm7*fy`N
z;*X`@eqX)JKu~++RCvVv#b0f>KAi6OhM#%GI#F<)jX1d8zLFL^iCg|>Ju&%f9B;m}
z+;E(45Vy0C6H{rUA}&u2bVejB<5b_1D&IV&BwqcUc39DF!xEFuiL#F@Vh@jeKKI9B
z95d{(HJa=i#>BNM`0oS_;*U<w?zfoe$Nu}$)7i8zgXMXrd$@Hm61Q2-Cg0v95l51*
z9P#+RfFBmH9g0=|j%m`Y%x-4>#y2HmjU_)&68&*!wu*eVagB>ksX=e%ad!@$6&CLo
zSnDTW;wsq?KF~g3N`?3&M>%geUdX2)f^;9uVmqwF+IZ&pQVR+3%>47DbUtIf#__cW
zPLacV*${JybVhW~W>e{T#X%HDJI{sX@DnGt@+~?>*$Ag$=?;^iHB9&8qeIdW<Cw@Z
zlXc2}+(e~Pg8Qf-8If5qcY6+T)i){RZhpVV1Rp+!YvoJy;e02}M9+*;5s9={o@Awp
z5*8Pd?ng5V6U)j69n5Q3i97Gr*^da1Vx%u&!t+cUc&Sm4Zj2S$`!%ziaY5Wk)`6yi
zEBk~9UvC!%QQuwsi<8v`cM~l!HIq2;JdK%Xtq6ShyN92cEnJ;A5YUe`zMS!rpr->r
zfAg8A6qJOn?ACI({wlsJa?be8H)`1W^kDnt9OBN#=SUun5GFjo>!$e7a)QHhk00A>
z#2>m)VxF@t2JyyxLP~qmFnves{f9Q>n|OJ}$0|?}TGzS^zbvc6sYKPC;sR-yxD?}e
zgIoqg$*vQ0sHgYp6cx`Y1zmW0t=sH`rUD$#Rl3=VdUJ(4&)Dd#m4L^rdTKRJ2L6`n
z9A<Ogz+&`+wmS$B#B)4$ms5@g`Ij=zV$XPBH9CIiXgx2;I6k}0Q8k89O?ygp3v<Dl
z?0bzdzZKy~vB)>e3$l<gXe{<Jmk;?)EMv!l$iR*C>6Jh^3#5jeG@laYh0LdV2c=(1
zK~;`^@goNXSWq=6xO*3!v-?sb#cfp}cVFD-{U~LK__ldn{s4Mj_}no)Hz5g8jk?_w
zhtPBX%wMK{(MkMMJSA3KKZalSBXvp~Uche`H#~fC?I*6ek9l?TY%%7g9a|WlxP!BN
z@DFg)VkCYny_#-GVId-l=L(Zs1&P*p-^Gf9%*4y|+Aqnbe8l*HW4otkc?l6m$CjJ@
z0)&CKmZaTlVIpVvw&dtfE&~6LJ=9-l9dG|c7Oz)9M(7W`)Z&e$Bo<#)GxVlx;yJ9N
z$M}ociEaCgQ<o{$aUS}vbTHv3Ms1x!5@}h9SPp~a?+rYJ^r8LkM|CNQjzgh+)%VtM
z^Ha<ZrBwEC_0@ZrfdVyg$}!5&y^o7{`S!YO$Iv#?LXxgTj1A+8VHIlTWwb<{Q0XWU
zO-;o8yIJKq!AksMYYuV$!vU*(>e=Jkh_@x}aHf}o2{w*qnjW~$0&Nc~oy=Y=;0Y;4
z=kns2fvx|tbJczZ=nTwSG%|RMchu#NS&lJ-$zi6_{4O?l<9ls+@-h?T(K^jsEkT^N
zw}F=1)m(5s-e|U3i~>BE3f}SNaDoim_t8Y^EsS+FAo%@Tc4F*g>CFXSGD4~HE-icP
z9{zaWJ&FTkn|PeWv!5ep%5ineP{S2Z3c~K|yWvlN$cZzzS&AEJ7x3$`;y)&OKVcTN
z`mdgQ(G#l!o@IPJ3<Rkt;r+RD{kSj9qn)@iKEiWDQTA&r8zEIReLI134lk=d6?f_C
zEcSejEUW$I9KN=jzkFDWmPn{Ay5-N!LyReD&8Q=8inSeiz}0nW=qQ~gaZyVG<A?0<
zjy*1*e;_sf;H@-Jp0Ss>@>LA31b8=Rx+;P)4O>^Zq6|FoQr{6aP=FK`Yx?qK)L+;k
zV%v{P!qdQi+sr5*r|Q)8L3st`7ql*&y?Pw+HxwvtaC@#`CLK@eW|24ej?tA_UTFik
zaKz8HdRPH|A24Ls>Xrt+cn5hxLJAJh`hIhcl82cu!CWc!65uKC^M&h@EI9T^v-tS)
zLmJ;p&SRT`h{N;f{M<z`$ZjsxqsbPB#7%=b4mv?F7P$B0UIp^Ce0^spV8{>6A6k-)
zQ9sG_E3?&U<Pi|hcm5GmA^`>RUf(s8#o%?S^B5h<A+5gk7SA4>$IgXQhWcd9Vi6N*
zaWAkjEYxGF-8NzslhC}59rGavB_)%jM5ZlVCCtS6R{8=???|6ZI8Wj>9F@DeGbDn8
z{vTV|Dg`mdxP3gxY6)91X4>CgH;7$Zon7JJS;FS<;8F1j24eZZ%ct7xlQ{1#>vG1g
z6)Ylk(xgXk3>)PvXYyJi2dlyJRlE&9Fy|z`XZJ;yvExRAwPosC7=EQr>r&S?w$VwR
z{<e(-liD#iJgZP{$yacm1!shVdn5Js!pNJ`&%&6@#zeT&bc@pVcjHZzX#z&dTe$iQ
zrr4_z&Db9jx8|C~FwX38eTPbL1HZ1EyP?-Oj?X>m_R(-3#Hv&7UYtAAilx6h>zau6
ztQ8^q<gN|Kf_I;Lb90p%9L`Pu8%QY$_MtMB&Wd7C{?xkU6Y5o*{bEP9P%H#(oE8Qm
zB3!`CQ#GFRn;#B$$5_dY@PWz+_J@Z;#X-T#n&wKNJh+tHiL%3Zz=&e9(j<)=>?~(=
zd3(|O<?*5ppJ#}R|A$Jg+eH#C`7j+ys$zwd@v1B0mg4X(EdNQ8mjJk4TJ!X1<Au;a
z*Q}f(5%10MYwMM9S%}g)S6QDc24&s8Uv^Nh-XZ;m`6i<P_?AuEm(a37@a4sA&qYDR
zsr<tH9`$Hd7B7@xU$|k?WaJzNn+((sQTj*8OF}Z6LBu~(Zn$NaQs!RI1|6?6FdM{|
z*+>^~9bk}wxB_QxWt8{as&}(F^bvW0uTHzMAnw8a^EU)EDiq=EN09^^?ROm_)TG0t
zR3L&&z)JaoJh*+PEuq?xhp%O2WhW6|qQ;%mzq14NRcmgU&DO}nE!l+g@g|D!Y};Ph
zWn2on1q<tGEYW<k&NPeCM+MBYNP)KhslYl_-RUA%Ay63znWID8I-MKj0s%hK@L>1K
zWT&DMls`BkcN}>eOX6|ICoeTYmATUStF#EH9~~w4xT_AAg2Zor;#Y<EWxHd=N2I{x
znbbF?0>lMesY)HYAOT07b53|aLmbIhO3Yl+%HZQ-W#aNn1`@8NY2=`J>lDK}Q&W-@
zn2^uiFXxbjh&PmPXS;T>bGjTU&nmVt?|rr$xqnu%wm|KP!*zc!kpq{*bCt%heV59P
zhF_;5!Ub5uDjJYqe(=wp`ZVH&j-}E&G0xzdrdWI8S32aaA0esAu@OqmrveXL+`|q_
zt)I?dq$R?nUe=U!QW8!y3w4JdE#hzTpU!%Umg6xV3!`p7NO0B3K>`<=#Y0*zrHnpV
z#{bQS*Pi`v44bn+o;wXLV!6~#e=L-Z$P_W4A5)+qD#~m>QS;LiO2X}5qbj+HGXoC-
zV)I1_9s8@ImKVf{CkIw(GH*!|`yJUw)NU&fdJ{)Oc5W*Y0d2Q=#sgRg?*n<EgPpPj
zq@CBfk%)3fAHK!6q$v<FuQoDX+>#~U$7xvTqI*|JKWUG3nH5$={pHIB$>4zoBHp~9
z1^;PWWd0{J)bP~i@?T{HXR|!ZP$5Pb+Kt)?&|nAchxzZk={bPY!C2eQn+;Mv3(hpu
zQGoi_r*C8|=|DAiPJQPd3*vU(nL1`Li%p|nue8ZE?B)h}VtfcE1k~RaU+ZN7p3c9e
zge4oCd@8z9ol6f24b;QmF8{`&$1J<;KmEqfjpV<e_WO=iEx5Xc<dopFURcyoi(Tw}
z#&;8wLtLQu0n@lU#RcbfK543FpnTcb-<Guk4tTJm#j*b13@%<C!t^+(18@Bu_|{&Y
z9w_=m4;4J6hp!x;C<cmHq3Ql~F5yNA{SKF-yXIJ7omG2qT6Y7pFxsmfY3G3IM{kNB
z>odVvx_?7<I2F)`#hE=s{x44o+0Yf#Hx*DxP&k>0dV1mOsb_z2!SdaYK8h9sh^u_;
z-P=FX5E^!+#!*NdW^D3Gd4q)EgVS3j_=~)XeX-5gB8363KCo>}rULeTrkh2Hf}l6?
zs@MfR|BuJ?Hl(8Wv_FoAf}ih-fkXU#pTTr-aO9@ZdZ#3TJg2*<w}Ma~Z|uv$<`cvX
znT^TbJ0=1KubX`HaYQ?}dduCzAPW}1@WP~Cv_E$Xt!90w3n9AsSv@r(5Om1#PEJ1R
z6)|X<HJ?TMtdN>pMTiGEa#K<>U{4-?{|fN^D4+&`>hU*2QGX(gWX>8jPfuL&b9OOA
z_h);dk7BHn?8I9K^6&_Po5;@ceIL8_4-e}#pr_g9CJfd_zb(;<5`|zt^!YS9u^v_H
zYmmW7L|HBf;O9_&%bUr-?t~C=tN!trXfQX?6ufv=W{rmE(w2{H&}Ajsw|=(#`om3(
z&dA^BauO$|#5rzAItUV#tV`YaMQ$SaL1aatg#baSkgorxCr+Ry=A)|>=ySC5xx*=6
zh)|f_;pGsaCf=)lUVd|*lNhZ|yZJYZpLoVP>zy~lMr53p<hUXyL|CyzhZ?u>6St1P
zx@8|JO2myDos9cNO`NrAm^m>>O|<=$tI=MdCLSj}5Ee)0*NS#a)B9OIBLBj-nh;h7
zB0})P?OlT{ESNp#7J@0@YzZO$yFOd^SQR&Q=^`1ib^Q>*mN|<tMMQ7Z=d|G8L>iVy
z%@v3{Nwdvs9|VbD<^K0xe>sT#Lr#ZBjD(46s`nffCU}AAIY$P4!V<<9PxbBBzENEK
zc$2?EJU3yl``Dt;ii5axB5Kn01{HXnSDq8L+s2zsX(N7|A}4CwjALDDsECX9m5N1F
zzwzs{j2s*{H?YlduEckjXo)*g-fmkdd_-jzPpiTEZ@B82l0%di&^a@5Ddit0D<QA+
znr%m$oyfX>-}4c{N#uym$!c8shmYD#vRvV%AqE#|zx9Z65v^n`uelebi8mSacVAFa
zBA@vWmC>~Y3>&g=?z%xn+_%t7l~dt{u{1s-9Qj?w2i(ueHwl7go#V{&J|XzmF8b?^
z10Q&iDJp$NbC@Cam4m2%2FAZ6>W)7^Vk#P{d|GBsxYOx=PDWS&xJ*TVHX?p;;&$7S
z1PzpDUI}?5hx`LA+852d6U0D6QG1I1lnV00^j3O(l?Iiws|=X7An=ZQ%a2uwf``8z
zPvt>z=yz>b{_vC^-joiLdeL0)q2BL(<WEpedR{3jiCP-o2(vdta;w6i`>i(7_oDEU
z%RIE?js&nWS;<uUiGyBkbk!3LNw`;|r&6;l1XRmc-S*w*2hHRj|64btpt(T%F%8Nc
zNwOsMye}1j#i2s#&P{PJEey65(GftNwTxTBnPh}Y49$}d1OIRf7TrTP`I(8s3ii6q
z`3pFndg6Hf2{adQrjz~BO(JwSIC6sAcX77ZDYmsLa-y)J`{NI@4czwxx1Z55a^gAf
z50}<PI^x~BY@gLnN+RXiMxo^h6+!OzpqZ(78P9WEvALd2L2OxG2wRq!z&~#A8R|Qd
z5!VXLOz(S4;vx4ZQx;Nsv7|c5f(u@~*kW<oZN5{hxX|jA*xJY?oKmIDO7=(x=8~ew
zqd@%vSG#>J$Ehg=+rB0?Le8*@Ewr2xh>@Aa-4=TvO8%X~gB39c7PCg|&UvvD_jSME
zRQ{@r7Tt@uh0Dj=19?mM`b6>6i-`_ggR$OY;n!!3_tnnC0^e6Ohg7jsIzNf8SW_H`
ztN4rc*pm*;@-h=0)lzMr*EtBAcaK;Zt7)Jhr0?H*N^;1QIL2jtat}M_75Bg)i3Wt5
zhwR?$`-h#ftJt5|(up0iZ4W42M}4Yy9TZy7f~RTzJxK4pjQtW?GkUAKh+Xnn3P0jX
z1}VO=JM@A4gn9dkEz`no{B0T6>XYNBFZq$~a|S^oP8RKxvew$dZVj<+c-kyt^9Rp{
zpHZTO^N#lp{;A)^{6peXhg#P#=<!P;s1~sK4vDXqM*m<Ad7KIGybG5-HXGG_jDk2P
z^13#ws~Hoj_;PHptqGUE%zaDUuMP8&T=`MOT!tV2bcACfcLpyn)W{5^B_~XSY%NF3
z=!v2GGSG(dcmBiCifqTU;Bjd)-NI9}|95*{H1Ztv8g7l%x*;BBmng~O?6e}V55Cdd
zi$#70`};EI0+fL+P?4L;RSp&xFXeo}RDk#r>>0a_`hYc_*X=k|q4JRMhlme~Ae2~k
ztOWHKhG(sMT&2X|PhZY+`mgE`HINv>;*R)7`m8RkgaX_R?XqMlmxChP_YZn$kSAvO
zgGludy3dhVl5Z@^!r;YI!+Rl!A8(mf<QF0fhaNt<AjgNeh&?ql)IKusuGEvf{uttl
zy;t3Lsa6UKo`#2h<52|(OAp)vc_gx|q;c#P@-?6FuD=e-Fv=3tplBqGIO5OaJ<<KL
zdhddC&yEJf>*}V?m9c@(w>qcIU)*3o-$%0bVTT)iXQjk^sGvJxB;gw!CoDY<(a}bp
zxXLEKpPE<6VXuI`A*qBPW^3FvcxHF7I{LUna`{Z)_TW5U=2Lcf#%Ca;xycOA*mMSh
zS2^K!olQ#E5I;m4p7mNQ5`<tm##2J&BzVXWQo%KZ_&ZuANfq<lFz4BI;Q=2NSP*S3
zdr>?<mU@5s%{&RF*hHPwP9k2U#G9b43LelrF&#OFivooG_;{;K0(3kom;*?EarLNA
zV!g>cK*Q_V<$=*b%(afA<H(aP#xc~s_>~zrwTmB3htUw+Ep>H#Cpf_4Rkm0=g&4Tj
zOYCz%T#bn^8izQ<2@@HaT$ZmuxyZ7%#g7Rpu(h2N&i_*yTnZDu+Rh;kp<an^?i<9z
zycBN|cwQ2^)>0<c6i^-^^q#%6m<0H1T=yH|6a(xIgS*?P49pyjZWKcPBI)aAZJqZc
zp23;8>LE+yIcw`yw?Y2H%%BRPZ<MkSX|0)Gg#KRA#*`0VA|IHrbFzvfPT37+%PvuE
z0eED{w{4C%9j5FrRd1vB_J<~QkClSZJcM)md=)(>JaMYmcb^l6m*FW*y*6?X5;r(W
zMX3P7KC=G>Q^>%T1%tU5D|y(@cwI&x<zimbs9nnwQw8u2wpj`h0hTbq$t+0;NOUhu
z;5S4Zl!meU-_g8E!<YK~cSkX(|0<LnN1+4{#DgV>cjEByXqx%3qByt<EuPLCl>lQ3
z!}vu<0oZI{UTJ(J4Ur15OQXgDP(1W)<1o6H(RS8;4Z6k$b^b!T+((etTcS*Rc3d6|
zX9X<SOa<VQ<U5iR>a+YA`XKwbgBA5qpRN4<A4TUKj@AFhaeME*_uhMRZn8qd-n&v1
zT9lE7Z<Ml0DI*H0tRflDu?Z!zRYa6Mve)nP`^)8zp3BqqJm-AQeZSwY7o!M-y?(5%
zbwUE}eDYhku%Q4dS2;I5a3#o6X03dMavn={A?iUxityv<bty43l$&+ck8UeR9u%^!
z6V1{}5Pe^HFNza!OZTMwam0oF>hf|)p#XW*XvkFGyC8pBdVXzLoecQjpyN7;a^U-o
z&nSpcuCC2R;bMEC5{Q&?1YAe^!;d+~VwTbS&Cf}CpCQZ(^T)nXOuY~Tr<kP;$t*Td
zjCa4jDn$g<caj<`RVaW@g|q*vHYMm@@|LA6n85<<LgJTcr?4~l)Z5LxRYKn4!}vzy
zzu4#F_k%VVrm%@eS7Q?<3o)~BI`P52WlWtx&9BL^gRmRuD?6*)jfkdv@l8J#G1=Zc
z4`t<PEaSHV%gp89Saic(wKtAagfYvVCYACYY^TI6HbC_`Mit%>#C((#l=y5em6eg=
z_cdho+O_&Hw6nh6eC&X5Uzj<<b$fw8LM-$;K8g}2=TLB-c(8<>4z2%f**}O`<eiYR
z+aktS3tGp1T&BhYf?QUJ5X*bGI86J?u~|Z4yBOQMz-7W`iV{V$_z5hW=A-K!qYdo#
zQY!t6pcz6JQRr%3v>*^!w}^`53c;sl&HEay{GfFgBRz}$|H4_AY#I>H!0v#uA&Z9+
z&U*e}YPmuQ|Ea5~Yj*8m+tn8tRrX0>cb4v*-#1R2>R0V<3*uF^Io%n`9Ak#rR;ZC&
z6$BqMTA%CO$ZJtBM!RA!2)&<HwMZ|mV<y9Ksx8%Y;KlfJ-6(9GKr}<^{^t2A<`Q_>
zEo|p2_UL@xm331J2qO}zec8YX2PLPn9NJmY=czf&Aa;|W`C4tnt96s`bV~0Cj{q|i
zmke`iKb#<JeYS4bZWzTvzOUXC7g)hI*2a}6`xgmqJzlzZP%rw~m0JqUh=+12sD$Kz
zdxen8@~A_09__0hzKRY%#R~!t?jPGXRt93ZfMVb8h(F&tHn?<D4VvtBN#ai-Pvor)
z^ZVUOsQ3MKoODSLIu<`(klql4Tk1<=e=MYdKK$K?l@q!TRLxsNN2ox=^F9BY$Pceu
z(H}d2a@~^UTR-AXp*^ZByTaWX889tBIqt_R2}N_s%bZ8#Au2{~bworR`igEie*1_#
zv&&x<EyvX0-mF8u=`U?y;Um2>V=V`Bc9D5+e<~otnT@N4p9)lZOzlNfqPa%VUn1QE
z88GV+?hvzOfRC?+xM;4iLj+~t?@%FGXpfq0v~H4sn)?Ctj);qtB)3|v-@yb~(__=e
z=Mcv>`2-VXpDgg&-<6O>d?mRb*T2%6NyFZQDj`o2oNzWH^nu?LGtiLRScspeh8Vr`
z5)bAX;ARU)x+FOp==Z1;zHgO)aTca<&KN03CE}|c{4NVs8pdatqEPO=4WC`GWdl)L
zrZ#OVQ8+zrI-m9p^|%go*Y^+)4Eaco7oU)Y`nBg<o`}bnbMwinG3r0lKM1)%Jj{js
ze0HAI3$)<nRsm<sSm92Eucd<)>c<Nu)w90hg=|KfhH#X3>nu3)Mgs9IBEs8tyU;$Y
zLSX1WeO^J>GBx=_6+#Jv9SjF`zT{y2jrGo5u@%BOrcIIiWxLo%&ECUmVG1ad&I_y`
zV1drRbDWKB1K9U75^pF;+2GLNlphn?;~YtFSdPr11=bb+{8Di-;IY4GoP~S_v(!-w
z!6GUkOJ&o;_EiavIecv$&`^cfI_*xJXO!VpN2NqK@+qdoN)5&#4oyk+Rm)F#n(#Q)
zwCdH020VP}s9Sqm1#v{zW{4xS;7Ly(QTJE0XU~pOxPkgMlk^g#p<ZGTLnnTmW*l*8
z_1ql9E+EgqhE=IA%0CCqFRc3}%7Gi3N*2>MMJRcDZM!pC4pL+;$S)v%&SfG4!Q1Il
zkg&M<jt+6<{ps%Y__)ZylOtJE-e~XP^iZMc<2zB1tfER(NI*U+W3lxg`3kUVzAY5^
zLjz*84{t|KD8U62g_j3Z=)86P<5Gkbx^AD;PBxiBUdy`i;`^ZrFtMRQ&a=l0^^vkN
z7d{HZ=SXI~KPZoV)iv>#=XvzJBlo_z4)GcKUd_$^_$v*bVz!Z9h_ggkKO^S&Mi?5e
z>B7QUlphQz@gI4O@)WKis>%c65a9h>LcB^0NG%OE_MW4w?uvt4+jVxBJUji-RZAQ=
z4NEnTgv-KNHX1)qTg2;pEt&oFJ{_E`;r_e#i5k4eEAw4TSi$E+nt*eJAmIC!8HVTC
z!Bn%UKG;nFT9tcruOhCI!cx_^!r5)iNZ=2x1M)yT+Ra-I|A+QUCAY6plyktA6Psx}
zohW=qNZ}i7B4A;$8aHqRd2Mc5X>Tfs!J=e1nFzHg{05@8-23QU;Jj-SiE@X38Kcj)
zu9D!**Ax26|LzgOzPV)ESyJGNxwPrNeGIs?^Aqfq&^|#@gZh_#1`S?1y`axlN`d>-
z?!Ui@xOYu9W}oLnned+^JjFGPoVZPVVbWSTJ-#kOfBDZt7M$KUNlNPonp+%wIP2lW
zh-+OXqCU%n<`TCzjpxyQY`JJJOe<`X;HvMbk|x}Tjd>iU3s~MKB-sxM?G)}4JOand
z^uG{6!E$^hd}+hnxxK#MM?Upa(lWtMsV1;51#c?49{s@zKZ_lv3Q*#cO~o4dZESc1
zc>|C2GdkR}{y(8=M^e<E*vq~2jva4a@@+^cCBvyB)AbL6)(O9DYjsl#*zmo8(9H&F
z7Q8pkS0M5v8$Ol&YhS{O7nU~a?{sKQ5K6B%9GCYd0w1GZQd?&}T=qlzY*aEOe$-KZ
zYe9k?@?O6-80<v67{?K=>eMOhkmW=7^y>{Qh`;HH(I3=Dcjuk@sh)wQzBAaq&NWG3
zSv}?_7m<y<^VN>9cBF(e9e!G*N<_FAxs9Cs=o`!?t-Yz6ai8!cf6?jE@ma#n4_neZ
zS`>I;!kwnur3ZvEwQED?CzlCEd#@Pd8`iO!gTIl>>4+ON^5%p9lOTR&<a!^I(;Puy
z=xJHy(l}Pk;M|$j-b~=wJ*RfhWeZ~+A&Y#+iugqLs><V?N%1PL3Z4xicIdVU@m4lw
zM53q*Y866cVDXwcB)FX%e1|Ugb0O}IE9qz1C39)`KJfeUz^DRLewj$Bd#wn!;<KMu
z8*4%0@hk2VM97P)B8pWoD#5E_<_|YVl;K!vMM2U9Ww^b=#wYhl35eQNmg$=m08e+;
zJ%jwD2fHrumNTlzE7DT^t3wrNc*wsJBmSdc7J;?{al^}<XN0<u7xw1*j7(IaE|{u4
z^syI_hL~I3V(E>D`<<ZkWFPfhs!G-OW$q(>V^VWhZL>Oz>H4KD9#;a7b)oui`_e$U
zZ|^#d&ZVQ8feIPq%Fz1y$e#-2t1a1i^z2uYDv(>148O`$hN2UJFYQljz_);S%#cV0
zSYnOT2A?2*xX|Tt8dnYE2fA||(Dm}6(&NiQJ33(U;gY!TM<QHDV@gD>xe5~@RS-Gg
zTPLu5i+|4Z-wuITtn8NW^)+nkU^9+UWF6aDHHTRxTJZF^%@Cc5a&)0AH#ShNMNnUX
zXKaEU9CH?w<gc(m_E7l`Id61*zoB<R`9m{-B3oE$xt0k$<&>$1c-cTEnrn|vnG*KW
zNS=5lA<opJZ=n?|Y_M`8Y$Ly%4NfjFouVy3^UV76EPmuY2)R8{<$e+QkMl0wl|IJ`
z<?fEk_RT_Y*}2}h!=4?SOY8e$Nf|+PY3{Sde_SAgP3>CjaYHA~izr6K%@xSxtM3#*
zeRu!i9YG~Zc;36f$Vtl!B*Nc@>1Y^%SVMy{hnoYK1gQO%qM0H0@@&dOTOl|hEgaTF
zEDZ8+B9jZ{vG2Nt)D%^UL0jwIniiKd)Vs}G)g=`J2A&sINtUSpy|dUGk2uY0dJP6K
zgTi1id5`hl1mf|RpOh2J5(aX9*?LAHNmz5crCN0o`OpJLqp@@Wm^*jT`5HP;(5C3^
z7BM5g@e}bIm6XzOjr^_nQ(PK07fGF%!;tT-JR*CrSQ(}%f*o5@g<;-2$nXb;Bv@n~
z(Y(5be$E7Z*6LRR9n;HRe29l{)RxV&Iv@o~IaQu_S-9ar*CsgWp?ta!PGMFr160W^
zQsEAWpZM_7mBV+4Q+&#tjJI9_!pnJ*-|Q*CaN5L^5KRTRGtfJ72lcH!)>!R$*^7Yt
zgV9G}!^o${ev&CZQ3aOnohQF>P6gz9ls}v~in!mJFYZqMIsz9e6om%#&ES2VyhhHF
zDQGcZ`oYO2FrqZqWO-l)k^4%yHowgv)Kz)-s+}>YTWv5``dcAh`IAH5V<+H<!K*SF
z25l(H%`&}tS_yo-J~#bikO%MBb!Tl$P5A7TWT<{a8Qxm)=iP8q1?}lc-=&utkjfhq
zZ;*rfLKIJi+mkg>UpXY&UP=dYl8MzaQSVau3M-`-nE~3bT?mpHMftceGHt~`4G?hh
zT9I0phr+lxnq!CyFP8R>@-E_@_`2uZ8ER06pH~FzNRUrz?Vs;wK}iMBTK8Wte5nE%
zMM<Jt!4k03mixG1Qw&~@S4#;zM?B-tJ*F*)?~)Lk)ANUU8k-I1x?q>61h=m@qz}%h
zff3!yV?U9XBiMeGM~`0xPS^a-+Lcm<(+LV(LCjj<X9ToG9ZE2$xE0W+iMaNfmVb0r
z(7c5%%j&@wbPf?I+_!mT0Cv|BW~<edVNjl2eI9Xz`-BA-yNyuq^f>cfUi5q$yY9mC
zMneNmDf7y1aHzllkx%t+VP&ZE6!!ctUJkA+nsnPC4$QhjRf*m4Lri5b?P|fIDDX}?
zMae{q!lKmibQ(E1m}lsU`STj(m7`lKW73$Q_+V!(LKtz*kR&+|<vR4Exe@|yhy#O%
zNYS7+;#cdlNZ>;JkaJwjwMB{tl%;9T{XqR~CxQ0rquH$R(}s~Y4CT@#k6Qc6b}7J#
z1?Re`e&pG>Lh9!KL=5rTMxPa-xdDv;>9tt&++Hj_CwXsJ8my$w40ao!nO6{POih6_
zq*r#d)-4FZ?rC+W?}&StdHKw@D_5jp)ka$V!mbpo1&rmanTUX)N|t%MuONtBlj)#G
zEh7EUJUusBbk26D>t=k6_M3t+QI`@?FUtRNd^GY^xi5OI?WW4XuOYq+H$dm24K|&u
z=b~`qBk`O}pg5@Q4&C~C4SB2H#e2FHB7VY24?RaQIapZ|X5wB(=R;zDmycg1z@;y)
zOFCT~93EcXyMuaw<v#{bG@es~5?Z5H!(m>~WQ~es5@drkQa2_(N95xhE~9Ej`&$k|
zC1VD9ZoHm5Ky+u|0L!T|b}mC)%)mPSykY_5yMA^rgXSDB@=}e_I*)LG_a&l+^Aa@B
zB=ERoMTi(44c|PR8<Bt+lG~@2Hu#W#K5rvDUm5kCwKTS`sseL`M%*m&UzRqpiNu}a
z23$Tn?VbyIUfDc)KCc*YDD^&5TKb5<-rv9n7Gy$TAbrz^3ib8X(wPmahB-mq;c=&j
zsXR1B&=Q{Y34^6Ssl7Mq5qw;h7{?p=K&j#3<nJgdd@HQ><R+Rk=$-#D$i~10nj)6j
z2JFlr)P7VeBcBfLj32Ld;O7GS?{|YbB<X;g?C!1jerDL=eK06Fj<~oZP9v@@Y+y8)
z{cNv{0_^KpKUdfzKUqr=XT}F6`1yqXKe9o@>HEsnsfOm~dlHu(WEio-vvay?JoDsm
z`D)i=nreCwKEX)aMn(r=hwZ_ae=@<R>nzs99jxFvOhNAG!v}vW-9EqF6M@Bm(ODam
zyF~q>7$@Y7`LyQj;*9d*%^OSRe`mRXRch!((E<m265dXHavSx?dj7I6XL18&LZC{4
zJU3MH<#ic3FJRVt{ltVbLj?KS((@u)KL}(ReyWe0o3JU~#}#v^*Q6d15N33o0Y2;q
zd6z9rVBc<&xNL_pqW$>wv^*0Q$R+OR*63n|h~MqkWkp%x{awvy6G}?Zh++4cwWo*G
zi3av-ova`sA9Ma#s}NK&y`hhrpo8R5Isxi{F@hrXwfBX)|FDh&g{t7MYgkO~#*sU1
z(^wK)-TJE?8gSgx$bHkki&gtF3%;(Ug?G;34=M+UVALqLn#-n(FnuwgJs<Tg_6zK%
zPBr``oHl>_^1UZ5uG3j6_noej@O3);gF0m?w!BzdMDdXde@!9Y`RMKj;pO3^fVA&>
z%ya->=KZpXjfD<J8ng@GZWqOZ(^kkpB7uAHr5F>eu>UcmY9&JRuE50+4PuC&INgI^
zS;87CAD*y5pX)T)A6&OsXyLJ9VOhqlLu~Bj0GvcVOVY2j)qAXDz`-Obop4G3Sos%Q
z_s!9KcZ<b#c(@e%9C_d;^@$gz558BD@Y6%+kef9N`rcWmd9s}}7KDfNwf2qO0x%UH
z+vFQ53)1HX!$)3CVQ(VFH3QLpsN~f60SEG%XgZx{_neo8fF$3fSkxy7`?shfkb!!=
z>etEi6==b7SDIh20)6heSs(4AoW{zLMdx6&50VQK&A)I)0=~|2^6#UZfv?i|VUDx}
z<iv~~?BC@EiKXr1!Ud8bK+j3!r-GgnFTBfRN<lq}<O=8v<^qCIZrfgyI9PpnMB6_u
z0$(pRHjbQB0iziX=ZIj`_m`uw3P+w@7uM$AYN)S%F353N9_8Fmj0a%sHUcm@y`s_;
zxrOP_D}>T9e#NHl-u%jn_>IRhZ$9HKEW_@64e9ymw~iH$kgTh!(?W27j3w3iJ*@F=
z-Tj(8dc+m(<KkXjz~23iu@@^?A$&NU;ORSpIA__frPLi+p)<`WWW{R*yJt7QIAqKY
z+w?cseIHOm5532g(qnw!b0+KSoTe}w-DtM*lRw0!zB@gg`N;-sZU?@XKOACv@Pk%U
zogFwx1{)a%IHCDH$LH5G^q@5VI&d<mlAx+|+OSD?gTRz5rS4pcde;rN2-@Bon9lD+
zPP~m0_(UYAdSgg|_2Qiu;}*1#{jS$key<zruOSli`bh^CM1K}VWSQVvQEj9V4GGZR
zxTa3UOareK#l=`R+2F;}{l_0TQI23xs^Zz7Y0TJ;K<kS5F;~i!lONeEV?wX5cmAJG
z8t=f)vTRO-lMl(<%GM&qYp}#Ow_k2x)>+<8TuuFiIxX3a&jNecqm7KC^*hA4PhgzH
zq{J`6*<hyn9qDx}#iBtTt47~Hjf&kHRtuO|+%yq?6;9Z`*K+4O`v@kH)TmQT^98$>
zdSUgWJt;5=$==je`VXt=+a-xnr9d3e)=rFq8s89#jEMeD3V&2N9>scg5&UWt2ztrC
zv3wzevHNIGWt;dSj$&ks&}~8gAl~DUz%q8B=Ga&#;l!O+r<hURIw?$6prJ5=@JTtn
zm2T)CHh1pCMpeobp~s>!^U3c8EMFv;{WUuc_)jt&O)F)Dp%v4U*MwPMLzS~8K#K>m
zz|1XYc^}&pP7%9G$p(5S&;4q-(Li|oGno0TH944^v-kY2&`KZ<J35OG4icnKzSCco
zS|RAOeDz5=kMd&{JgJisYgl-W)(GaYgI&B)@;+4gJLaeRr8K#P1K3?_^wbN<VQ`n#
zp$2i6ODE2%t~&1%2yNfPjI|aC<_et?>x#n!X~v`v)~zh?)V*@=%SC#q^iI1J6|six
zSk5|S-erf?m5P}v^gWP?sEa89wC|$`c~g)0BOfN75OpQcf|!`?-Cb+seYJ?6v#}S4
zSLSb+Z*n32rgTTi`Fei%9eF9UpX31JjpUp8!zc`ivF9_6?TdpWG3{I71>~!Evb?as
zj69^WDeITe>n0ZM%wMw=2ZN<YBD+Uuah&!>r0)SQp2<RyqxPB;-xJRycPQt=eIsJi
zkH+p3t}O7~x!%HsUw!6DOEpY~x5dfY;r-mWX6^&wzeVi0&8@@TvJ85Bq=ZgWZj&1C
zi+Ui5*PvWE>zs{K0Vm$g#rS+cof-FaALX_^PmibYM7;UIg!1T%#|^85Xz_|K3$cC=
z*>SaR5ejBo+&D95<dz-Eu@+Pm*#0=ON$?WvqAq!fW5k!DAKbHI#Zy$IT^1K;@fYsv
zDgR_>ah1*jfhjRI{FjgP^PVCqd|!|dd(nae?^as$lSVn#*NiOoT6>K6&qpg+gbpTL
zwK93z(~KJrWpNb%>wUrr3NtCni+p(4-jQ!hd1N@#+?R%=*%?9)*qRBuwh@+Bl~=_o
znQ_h&U`yV(PDpt3I{r=30O9d<FN*WhTUca>KxFgiJZ5k-fkfpy3I1(%Cv~849t$N~
zjWrbQ!9-g~h2Ij9<6&}AG?9n<gvM<JyL3$=Tv*CqHdc0#5WFc{k$s0252sb2%rV@?
z5<0)S&(bpEI!7E^x&#La?;Bs;-{SvAAgTT!mp;IRhb58A-FU=}`_~t$P*8E=*ZViz
zTwEFOXmj`Us#*%XlPFdF$^sKEM!eshK`M&x@306{XcFVz<0)@t5GP|e^?a_ECl%gw
z@m$L}^!thbjHHb0v|z|fQA8K@ao!j^_*Fi{fX~+9L;E`79bBCfN<zK+(Ry07bvkjN
zzg^_<i5<<eyZzm67owa2F~L#ffCJcy1na8Wcp)q3mlC^;0%$ImPlXpt!Og8{e|}d9
zp!U7@OLJWm;%o%|sB$45n;*aIH1Y@@of}VlE-wNPio2<nFDZa$RvNrT=d)SMh`LkR
z(vbbf<)qn|3>bR{9xbv#`NHJh5)L#sIM#J4`^7cH2NOG{lOrezmV7&L+9on^0lR41
zZmkJt=rzez@>F4TcTyFsWT33EWMQvC5Ddw0VIij#!03Ur&H1A!_g5yUsTH6EvG*fJ
zlu%yCXN16HfVlkC@ih&Kq3E2Kb*kv3mKc!Kk(&tVb3qDeu{iM!)W6W$*|$LaTc`B7
zR?9FU$X{-bS`SfyX0H5zVf6gUb-`gjN{$~k#*WFYp*@Dezr$OnB_u%^mSP?uJ}Vo=
z-N4!>s8`vqP?&N=2yQ7->?E2Hp?z9)WvZwEG)Y>%k2gRbV=_Wf<E|{kiSsG<Sg?ZH
zs`33FSNY(DLwx7-4@G!BUoaQ{1m!tm8q5Ze7wMklVchZp5BUAA;3Y3(1BUSz%+@+A
zAphL(?jt`skk9^OYaO(Lz1r<3IvnH#c_+)(L^>k4IK~h$%7lEd?UF(^DYB63Lez3F
z#{t3VLOLTB!r)%Xog93b0U|u9*DJ2D;%d7R3~%GP@MPa*MX3&MeEZ&7LwN%mPQ9cz
zpw!QY&$6_IvdSJ3n&MK{0?sTEY>cX2afvPwTKXBN^wLRjc6VpnI3Fgw<#GcD?;#DI
zc}&^r-7G79Auh2yXy_k7(fPy>ODZc)RLm)`YQ}-{K3LmoQrjdP7T%L~)n>x6$Kyqj
zzZr3|ijV#_PZ;n|jQ06G1C+RmO5F3mZA|F%&3xs9D>=LrI#$bCOo9hDyMHgheiO7W
z`vrgGC&v3swF3Jb8Ng*yNc*(FDuFTR5+Y=>;oU)P=QSBO2}JS<aa36hxEAw}XWP~q
zA;;u$%IV{jxJbsXX|_5I%1;SqCEVU4{0mg;rL?5OYr711xRsDs?HyO45S<d77g}TC
z7FGxTSZ`6SS}k}KaNb;!Mib&z<y9Y{9GgiA@3DVBg@GySY1rcsMX3Gw$9fv|UkAkO
zK%r9^8p^dLa|=aa`lN;VYgP?N`*wBxGr10|ADXb-vXz0D725NSb4oCq=X5s>&HdSJ
zUS@FBNdYdqm0N&v6YoD_-a0V~@NCcABI=(K%)CF@@6gH#`-WuRtZ0t%Lb#|)?|~{@
z=TGKRMO>n^^F~4>+RCu+6MNqFu`Yy_QOJ9|Lf*CLA71KrwIDzs-i5<V8`dqP+jcSy
z;ItEGU09YDywC_y3un^<T`TuU=XvCPz3_ZPCPo|lzd!twlA;b@6;g9e6bG>Yo7Kgf
z<bT+e<kO#iqdoh%R%`Lv6O6FP&H4JK3(CL$Wq3&{je1N5w#@<GSm5zD(JL2&nP9Kw
zzSCQb99UTkFYn|q!^98UD^#NcnAy~Y>Q-OW(`&jCeT^FJ6YtP^b-tS?+&)<*pMUEw
zVfpPzo6;&laMTZVuruO<pB|yHW5~0J_ee+IA>x4-erNn*(0#HYyy?Xi<OMaqLw2vh
z40+6(a$KJyZXgG9w&JBAUSLcN<yts{=4WF9^6U!I@WEGySnin=e0{uo-`<P`I)qOv
z9Qnl#9+j`Q34wedCGw(;=PVao3-T6dw$g%ej#YXx)HideXxvc<mxR9_S@mfyOki<G
zxSyw;15dq3upRoskK1x^jL|f(;38j$CqFp~;(?|#F#|)wxP0Gj1Li0Ec&N?-*(8r7
ze%dDHc9EepuACWEeJII?6WYe~e_M*;xBlL`Wf-V}M>=NNQfaE-3Z#7(JRYdvzoZ@$
z>2yfq&&KNLrplG@zZ?g(y{;m-_YrotfoNvDz92cA^#%h@M$}xO{E`%Z%l3=%3KKuh
z^1$N`la?^f)~{)FaEt@TS#?zNZ3XZ*Nxsid=L+LvbJNq!9jtgy9{pKM20FZ@w}$dg
z_B_V${U<lwDk&s%31bHBB)B`beN&jq99A~C{ix>eE@o8mA|i394m-bZ=)6nVB4{;S
z?FrW+#>ED*V=_)s;=ac?sAFmYGIXxsUujLCuhuQEsmT<bGo>~Ds+z&i68-Qqv*z$&
zTK?Ta0Gfx%6Tj^GsSZZ80hFQq8ZaRA)7mmq16JD`Ov)0qK%&@yr*K6R-qyL0Q8wy8
zZ>^jDlMlKu^m&}W5BXWgn7<lYqMq=H<>#~Y&Bk!^9>aX%qCPwguyk}N(S}#gUZk_7
zYr#r3Q!3qr77)eQCfcF<%Cq<Fl95(w@JCJFOt~Ke)~d+oqYL_QJ3!sj^t1{*jx^sh
zZ$X~8AYWhCYBebLH4#%>)qu>GcgL=4YeT)ZeiqMtE%+_=E<e2i`LHSjvMMQ+VJ+7)
zB!5B^Oom0U>+Nb_p_|ImGN%T2d);nvAunWW7k!m@g)HPxis$C8%7GRA;e*3q5fJ})
zG$;b~wf-FqU}!<P2rqZihP69rFE^XG^rI8?vKBZqhAUA2TdQ_=JV+Qi<%#*qP@h2j
zpZ777BQns=uSh=pju*=5qQW#k@PnIo30*Fl6AvcR^}R&-zxQmd7t9%yp=<K`5}&#j
z*nsV$o79>hH)hKiAg=}lju(M!LnyC)AZ;bvr~m~=GwmsnH{+UJ#eA{0B19`o6+O05
zfhd8nhmV6fKqfujDM|y)X+pl-i$N(0(X{{UvJfwm;uwSMGJz3sAt=plmC$@AZ!js%
zQ3UNNa{dz@L3`c1c9DiTJkXyxRcynBI6<!ux24`QL5k+wv}iIdG(MiGkr^ifaYLIG
zk_SBCGrjS9$D9VXE8av-a_|D3be}WjAUDkYB6yoyBW~Z0*?>f{5X}C4=h)aI1pEFU
ztc<sqVNT58+R-{WI8~VRXhlW@j&y71cc^R<&VJ4nPSD=O^nY_{d80X>7jGMXCz@Zk
za^!P&ODe;Uh|ST@M#!V88?sP|dIS-t=y99xqA+yop4YCjJUr;NqpJR{iLQ(E&PgaI
z)>3fh@_i*kc=hu0a0Kd8I~-l+-B}}tNA_cEmirR0_~M%X4)WCBb|Z0?jG%)3T@ryS
z>T<~Yp0IpHMgw$|=Pi6*s)2Rs<s&IY+@RjV=JpYJJ?)+41d9_iK)1M5Yg%6)`n#Pj
zUzr26cPeeVejo>BK}s*9$V?#q<n0eB(b5o|rIOZDjriYm8`EB>KhJkk+?45=K1f`M
zlbf0nhhLdl$HGk!zrp(G=d3{`*pz7EXjoB(c>n2<lQc@O0q1Tq6)B;;XVm^N3IOFz
zUO#RsJt!@v|E}T>p!7V^d29iL-R2+NKhgfm>o-%e%Skohx47XuZEXlPXS>)^h%6yD
zwZ%AGULU49+(W)dn*q^W=ffB@H?_X_MaKPx2x!y$X|+C8gJ4P1IUYyEc{F>@`>#qB
zCY?%^Rcj<5OXv*q1$4iwyP1$OOs@q+?ZVbC%8`HW8rx_G@_+@@mEks~l%Pbp&!799
z4ho}Z54JamA-LaAKY*4S=qYARFwt#n^{*N8FIP4oKa=lJ(<%T#iAKzNp%kFn@>b>7
z2_le$$Q$~N%Y?Fn149!>dbo7u#zsvCFYKESU*=Sy1j@d*88o?UpnBNM-#;h<Y_AU;
zcZHG9F8g9v3(EBh{*zo7p5cStVh_>{<a^e*vG`uMg$zU(v;4RW5r-&-)bFtrnt%Q|
z7ruo4{YVQ%PI|KdNRj)bFndry4QWnoi3sB7w;e94?G_PU6nXq5ry{~FdK%)R_I?rm
zI+_2$iPteIKcC8tAO@J!X0j@rp@9RTkYgjLM-U(WzEQ;O05dTcZo1e`4Vw`YI}4|!
zVW4qx;x0QaT>M_9fd8Taw+5@)ta>Jh`>^7XWQ6)qxxE55v-I#ycpSFLnLs!E=rMtl
zV_08B!=9B7@=Zkd`^?NT;N&$c{A_=aXUg(c=Gzi32#qza9T%VniOZ+B9%TL_WO7dT
zF$vPZK>DV2@%A3!p~mN!n>)-9y1j7DnC=^aroV3T^m8JJow-}J<|TzQ7*b|`o0`Ff
zC^%|m638LtKUQ^Bnr(v0gZD%!zxFZaT*7NE4Q`zDh_$J0vkcrbAgkO9;Ro5vGCF_b
zMZl8Z^c-b2HMG+vuRD>gVwrY3&qYp4f$63^lYcfh5JG>bouNb?vlP-4!IxZc(THZW
zr{o{jEUbKE!QBwv6iDfJP8dU+`FrV!z$0j%Li~p7KSP)r`}EGj-w4ubqq$W}jsSc5
z?#!k4M}dv^krx#ez`6EymNZ#Iuw$k&bH!EBTqk^zqxT4i@&&oYjv0g9aPeq|qzOEy
z>j|YEFb4D65#e7(4Z)jcdb8Ks2&AqIke^Q12VvK!llQg^VdT<1in6Z&g0`d;(qu-^
zzdk<C?raFfYy|F4EdY|e238<y3X-d@4SG$CppYZOsHo@&tV?g4*;UX7x^97KN*Y60
z>g(xYJc5DZ)>pn;Lk95u_w{zK%m3dm9c3H%bOiLSrm5sw8iBW!I=`xd0hnz$lzp%R
zps2GBI^Z`1+29yF^FPF8$-hJQm{|?t3c=_Ux?Y~id;iA<c}i{RQheFeg+V9We*F`I
zo3P?^_2*hpUX*F}l`lFUr}ooJuw7RIWncG@q5*ldKO#=d3{e6Wj{!5S9x2%DDiTY~
zmxotP1rnl<#bM*X__h3ZB{;omzccxe3;cZ&KXTg(fe@vCcw&JNm>tPr`0UON0<_Cz
z)wj@fUGGXJg}5MmZ{{RY@Irn(o?=g>kD{RA=FV~F2_Kw_q+si^M!iQlOAlu>Uu6h)
ztsZUW2JK7}sg4({u*{|+%Q%KO%mpQUzm#~PR-UZs2;wPhf4(PMbq_tSJ;@CFyu%HD
z%lc$?wM0NnD~Y<lhX>Zx!Xn=)7((#<#n{h>8gM<hY`(EZ3A#_@d=z@424>;>o$`8`
zV9YAxtK*{w+_61A){hiHGyjq`(<eq?3p%M^P=`2#QKsuWmWXFF<6!U$(7Ai)>{|Ih
zH7IomyPS3fJtt(js(7Ql`Ak&zeUU_EC<`Hf|27+)SC+1~Is2hLOv!dn*(p^xeL!8i
zUW?90f1i&Yr&5C-VXj|Sw^Sj0oV5Ne@?zn!xiL=VN-)h7LglQh4lmPMrt^`HUQ2Da
z7>iW{7U{Dx*)1v{x)f-a@j(e1I7ntT57oiR?k-nCoI0El7U|kplLcKP3O4(Cw1@Pt
zV6;)u25kp#THjZ4Ku4lRW6GuuE(S%y;R$FtcrWdd0rE7^754@%X(7L~X7X1nKa>*{
z53=%MR)#}Gm6T5-04F<j9LuWoz{wQ!tUhbNpX}uBT_MEZ5plVqIjslxe03Z}5KlyX
z*!H^jm@a&9@XtGPR1@m2cD}XK)Pwe-aK)KyGzZ9jvXRqm02M6E_~s)mC}dun{Jm-b
zXB|7p?kyU_N8Rl4;!=QL79oSr{I${b=(hsf1AXvMdVXdn-V_S{-q&yJ2I%LTTjM^f
z1Fn%2QCyBHP`b?)mFlbtvbSmG-j``Y#@v3vE5voQpyzm+jCi`zn-<MS>Ggo@5Bt01
zF(X*D7g?!(jDEgLcRxj?3wu9Zd&N!ELA96<=S6wdxt8G`G9qCxNv+tv&MO40#<32D
zcHH3W+!MWhmkSo+%6~PZIVOJ+%{SHr3Scl$37NDOg22bE$x1T(I1TNE9SJcZlq;KC
z9=gp4u8hMcEr-Ow`dP)6bOJSyaQA96^DJWRj)8MCzN46uyvwf=#8DKfH_rQbO#miK
z<|=BE(CcS)(smDV!4KndvZfYdNNy3PKX;D=3S#f4Yd%HKWyS}a%VPA9PhCSXJS`02
zM9LG4bAm9|=X<Kx73JZ?UMIb-Vt`=5hyPW(e#iE6U-s6UQUUqEhmgLfzp>WT%g_5u
zQD1mA`O66b4xqP6CyiV`z?6*>XCrKAA-t;fv4p2EPUWKg!PiL}am2KC)^A8co5+c~
zY_>Yk<bFQBKvD$;zwABJN4dC2b|!fu<cS}sm2=^!Q-cNxIgSN%?p|?h=e@rLV72mN
z^>42{cxEsRC+r|UT=tA?BAU~rQH*O{dPN71s*mqlAwS~QMs@w(59CSM)i1L)5r>~`
zXM=PvYk-n!_k-t!a`5lIcg_!t7H88v{r-g+86GvS;D6)>2A@@y+_e4FU{Y=H+U*0h
zHz|Cye|laRD!s-A{=2LPIm%TR^v|Gk@kAzT&wq-D=M!$9k}L+1HFO={knh_~G$%N|
zR1%hM?cNSR`SIJ*Kab{)$b-eoaqeDk1<2z6>9TE!&fQu>mqf_rfdyOp;}L>9y^{|j
zKZzTF^usvr3$L^wPsRFdP=zQcyklU0ql~!1ouA5n(6YmkTr~srA`y7iaJS0SSqc`X
zGqb{rWPz(T|K1`ECq$KH-{rQIgJ-^D<g>geCx9){-Z{k&Z^C3MqGx5{&5dMHrQ>{{
zoiC@Kkx31L@*GLVG$J6xB<isrp$F0Kmg$FG9B?KYU-+z`3RHfiy&n~&pfK}7bYQ+X
z{GfR%r|%#Q;SLsWghe(9CGS?!lKg4m+^w7KOUSqUmQ_J?8GRoFNv8{XiBaBZittqV
znFJJm(hzr(Re=Dx741nHe#EUgC+BF4&be$!=BHOAq4lY2t0~GAa5KGHi!_&mfb916
zE6BfR_lMH2|Jyc!XxR87mGBl8KRfp#S?d?}WU_1GrZp|zuqmM{6HSk=?)Y7rTqeU+
ziflUW-ftzeoXDDNTmC~h|LNk|tlD3~pp=d{g$@ZG5MwJ9Q9z8pFrC*}j3dE~YwDvD
zf6fsy=4hzHhv{(%N_R_xPrX=7sDr~zdE|LL7c58C@CQ>|fOln{8-(LGi^;=0X9<nX
z&)9C{?-B^*p(Lu;)(G!Kc?#u{rV;mZ-HXPj1Cy7_HW?3EAtX6vNlGK14DBU;sm1X%
zLUu0cn@w$M+~s!SXTN58{8_(;L1sBMng>WHJVsn2qF>@Y3d-}?O$O1yH&+h{pMuk$
zzrVRla6L=FjEsrlGUKCBo2g0cNu1A@#cfjLS;;!xZM9Dj>Z=M831PqmyUu3s7~+`Z
z$)e@e@4R?GeQQhbHF<m@09~VI6!3q;r|_d!6!6W@=^g$fig>4VbVOM#D_+jvBO+MG
zir)$y37c-0!mX!gc#lTQ;S`%rqe}%6_@`^(a}oU%_{8hXmWW+WFuf!-`swThft=fU
z`zIwS-oxBoI4ZS{aTeCPk+c%wH9hqWt7oPN&&_=Lsw5adujW|6CF~DDPoCsJJD3dh
zp>MriCS%7H0|x?*4f5byM-0`|zVhJ5FLSr+3=87ZI$rY0Dk6AN*r}N6d1|~vN0Djt
zI_eku)+)JwA;!rvzKJ=Bh~p{SR9mShsBo#bx&(P)H5gI2+UH)b4<(a227ysV5HKj{
z-24;+-L1yTh8spep>bpLC8HLoS-UYGJT`{E3)>1KRv0KWwSM`2#T=vs$Zub>H-V(5
z*LpvQpx2o?!B{-24I=-_=k^lKAokqElVlciFc)PXaef4_^`26xa8wmsov&!QF_^$-
zNthYEqX$<)G#x%BV=zU!5wj_dL5D@~hfS2TJGcEUZ^#nOCA@@Ej0KH>3j50b;@T0Q
zD0UC4ay0}({0Xn@DiiqVolV7y&SfS+(}srEEa8Y^>KcE$70`-_Y5d~Cfbh0J{!xh;
zP)z4$)JB*Cm&IHy_3fizt@NdC?G!+1<(tE}azhAZnY|M2!wD%RpQvxYRRD3}i{Z9f
zC<o4%FW8nM4|XjSw}Kw3fz18mXJfOKp;@xR#r1{?$i38XTTW1iRCc-y0_x-b%~rpt
zeMSf7dtDOmTu=h~;E93z(~2<Q^iO5}tu8dUtJS$5sKW(OhHMgazde3mQ^EFzEX=1E
z)sAgyK*LSBfV6!r7-+3`Y!Fcc%8TT3_Kix=<Mm-F5cy^Dtk>I?wlqQI?uTb8h>zj&
z?b4@T+M4M8{=9^yPy?=sn``r~%7eRC^L4RQ9{5c5n|^WyaRX(Gl)5ri!N!TZWXx9`
z4%d3Ot+<o`%YG;Ig-Z(rb`M$d&MCuCd58Tqd3E?WZBA18L>02_dMRmARpFy}uKTc^
zHt43RpT9++3}5>bHaX^1fImjQ?v$GbG(#2d@p@U1F=ZPPMLixrzc_=g0!28fP#5)&
z0`c@n<+o}g+2B7LQ{JauI?!TR^Db>v2kI|AH@?8H3?Hr*j`pIwi<`894(mrHh*5ZY
zcx+r9q)O-#cqR3q*u;5=wO9`vdE_M;Ezo)7OVJ#CsRrzoc`%Gj34_dRe;QkqIs~rL
zMbRs&!?N1Nfn~HW`SR{w;W;DZm8(8_x@m+J0$+w)GKi6f8{qcl^;wkf{3dr^`Mee+
zh49K#$f-iv;;w@r>Z6sIOl&mDAuiiOJd;$c3}{SosQuYig8paI5@|OSfHBP_?x4jG
z=8qDOaU|%1l_|+{_Fhd0TyOuc`2_~_^cuS&&$Pg!q&4Rw`o4YE`~EVI3i<N%Uh-L@
z^QaFEpOO6!UFcYNwsDMb1hVKVmCkRV=lOxqFX}fn;lulL4(E<51M~&eI=@o|#{^Z5
z8-H|RknvDeXjdCJHQVo;+%SM!^t{V8HxS44N;t@HX@ZN8`A1ec#1-}$HNH(I2~oit
zCI6@a7UlOIhm@*;ICthNeP1=WnZk9f1I^ne+83<<#bdy`t@KkzKpARt3xx9H6=9wD
z(_Sj6D$Ehhd=f=`<j=RNQeKj40MY2OyQ~e$uN?%A)2*t5%JL_Rhd;G|&LXy(;T^hP
zyQej0DN_Je)MB5>NCGdWIoDo1n<KD4yc9~v-o#YSaVVr)?-DLnV!rQw$iShF^hKN&
zJ-0+;eHi>E3<8xD>&J<?fdAs)cTOj9XcO#o|2QUq@`yi~XG0|*alCxzNhdlNo|i85
z*FpJbo5Q};3+%9;_HMzIgA}NFlP!9mZeea$QYwS#Co!jWnx#CRek^|M*?ywbUo4o)
zc9LRk9;0gsc`P_g310-FxLQ=HAl0VRtZ)7wmRQEozWMC{lfN;)d0K7_drZMEILY`I
zGZr>b@)X1g%sE_L4#*ps(r@&Mj;W6j5)$@zUSpnMo);b+=2A<juXD{DxE@WgP0Abk
zDE|jLdn)+q!!PrMw(4}@5LaTH>vFWU2Q59Grd(G`{DvNX)kewBxj>CiGDsA*ku&4!
zbfSwc>%RyF&Gzyd{JVs-R_m?!N*a9fCm!)xn;q|)6dD;mM};#cxLm@Ds<EQly6Z3f
zcL_Pd@sU~Aei2Nmj9UF)qF#T#QT`Wcc0A$9e;#J+RCv5c_N5LpD*Wex$kJ79X8bM|
z#1!#mn_ykDdo(<q7MI^rmFw@O#Q!y|e9lCDefN>5fCqz2ct=9Hrx4dR!GNH`)8M^D
zFuiF=E%oCM;R^dRnbNQYtU5$tE02m84`kCGvb7$^YD$~`yfa_J?%o&D)1)8=9y@Qg
zB*lLO^&*8(lC=(k_3w1cN_G-_yZ8M&qu+Jd@=4{Q%cH)K`TD|9&p;nY*BDUOH}L_n
z7qhlm7tX>BVx{b}$Nj)1CGbUaj638!{>M%6&J|wdKaZVh_XMW2pQ@f&?ywdY{hzCa
zFKm6iUm=m|4ZlgFLsnlqqVJW%56hEYz`SFe|7F1mh;M&nm#TCEqGNBSD2ALtbd28f
ztb#ZESD<jBR>>7sHV^88l^nn`@!(vRof|C1*8QTt>k5hi*LB649YGFz->cW*hVpu^
zYrVxBz-%J+5lf;oeA1Z^at23;l8QO?;ExMD)g2Z*cg7hyhd-PTiM55~dQs})pPoQ?
z8FtsU&I8gCqPQmKyddeH!Rnf&Cz>ny_DxnhK;fMm@AAf+p;23kW#I<$^Sv=RgE7j2
z+zJ}go>zl&_iLQA5ijyu)YE~_K}sNd3;W<jX94r+wZhjaEr9&+LGmftV=(#>vtZyc
zhlgQaKc}NDAgV(?YR}FB_)6lQCFGeSo~g;-+rvlU+1;)g(RMRX^D{ROlr@DvD+UaA
z#H>KVoT>41j~S#~f2|g=Ylh|^wjV|%O(En#nB9d{Q%HD)IqDDTfw#|r`|Gb3aP?PC
ztDDwwApf*QQCesU7oUBZvKuxB|H`h<(i7&u!TLz@zYP=k<?O_qcFYFIZoLU^@j4Dh
ziZY8=q>h5I)F$VdbaS8}W}0THFo&>GVh^LNqu?o9{wT)X1SGe89%jC<0wQmxg9v8S
z7g9W0YE!HX-Pa|<ujwel(EN7xf0C+jB>pD4rmMip>;{{NyB_p-d}7WC(SU?V+m#x0
z{#aZ7$(Z;^8LSzG!fFE4fM(*PX+wZAq@1n81S}8->J$mdw+~Wa_1->_7IEI*UtQS9
zM00|gMyh|i?8?wlEL9wiyrwSyyd48Wm0-^{+CGy>5gh+mXWc}5$q858-Kb;*$W<0N
zmSCq0d1nU)$@P%;<e{gL5H0e&D6-g|8c~9j(7sq2ls`Dgto*qu3XruQ6l##Bhj<=m
zZyg`dfR@TUic($-yi4zGp6Jj7D_k=2*fljcTFDjsR!0lcTGUd+&&k0dTNhDx2Kqbh
z$R?agQ-`PG?K9ENh@*S^x$=e*A8cJYKhEW^0Uw(_UDrbX2!R5%JunB@%kb+EpHzhV
zY@z%q=zhz@HKJ44r3F?H-~M${9kLXy!W*}A;XjGUHiIY&I6|>El73zXCKEKbZhtZZ
zzFi~2;B!N8RHAI7n-&534gPhHW2SJPn(e}Xpcyblw7&N0H-o?4enZ%rIh-Gi>)YK%
z-o2Jw=dCVF5IeEb+<M{|MDZTGBU)qvv7RM~Ov=hIp<p;0_gfW6a`tF8f2x9M6z6pc
zKWzx5;a_R60U-W3E%<!e95mrSQtg-{V4UXBBlpS>R0*7?$}b;*jN`ravunnXnV7Po
zrey{+L(2D>CnZ2w%||umoe+eRuLmo4{l$JVHLJvj@Igdx{Ql)F5g0d7N?mIb0fVZ*
z=cTEFFx!{;!-9$r%+u;>S<qf)?cy3KH^v7BftyqVpZFo_1!wJUg#g?e(rH`v6b1Dv
zu}5M)5<q^jIK1mS@}$3bAJ+It0v@!f&|6*<0n$Td5JNnxzvp*;FrdCd&i%xK5X6rq
zp(J<Ak(P!r>VS(1!XiNOD)Jy#hYv!ZN9$3c{m{J?M~z8zSe8^#7zromh1pZuam*u#
z&(l`-rTrlr<aG=vn;&vR80#9%+c%Sh`b(}+XBBp_D#IO0?Z?#cI!&aL^e!LV%M+Yt
z_%enOXUQGsZCl1FpWh#5DW}CpS>JGrp<a>k$(O8?0qj6QF{6?%$qLi^p{eD*dxXa~
zA4ht7&;lI|ZEu}}A`~Xrrd-=nf|qOegK9L9hdw8nLnlHSXir;45%-9|%E6sd(a>S+
z)*cD-+}RoIGDpCBwk3J^>hMgY;)yh{Wv`Cdq4&4vBviP?$O9duxj%mXL4AIzyIpIj
zf0X2sL6;;X1RrPbS8Pkk!k_=*W0Hh8A^M*8kBwi5YZ{V1uX~#nC`4Y&{6amozehTr
zS%t{LcLf#slY?^LpP~~;`5&5NaPl*+QXubehNajCNeS?Nwxg>&F91}*V@>UOQ<&kz
z{ODnt7%WkaCm&vrh0{ak^0yOFp8ae31(9t{pq>7(=v$xzBo!MLx?QTE|L5l!<BRIh
z96VJkID@#`Wiu`96WUPR>P@WDtOs2uUrL20=)mDm#eYe9>QJLT{G2FK51K{NYIgW_
zA^xW^`>3@RJmqUlQ8(3uV`qw_21j*a@`6v1@U#XP<?QOdMAwt77b!wD)k?4=pAoIq
zsSfuk9^6c{M*i0B@OaB4by&SPsc@W473ewgg)0}df!n*SI|==Lx$f0NVLqC$)+}4f
zsk4tgNq3j#9T0$n7yZLu7Np>z%-V};Dj7&}6BcU3<X}*LDbLga@hAIV#~z~G`}Jdc
zx(DMZ2Nk!kDom*W3j1+HLS7PJ`oKDK{T%xIE*1Gtm9v2A(}QM}8Ft|2Y7%BPVFgP=
zsa|u`>!SM6?0+eh7yQTrMR!topgzAlN{+w>_icjzDaf!xNnFL$whR-j_9>Ho!1>{1
z$8&7t5-q5_%@g<~B?JxdQ1VnKH|VnUW&Bg-g~Q)T3J)2OztwWEw`P(O^laiE1a|Tx
z&*<+HPm)l6+9LUKLIw*|9e?8azL^!$a|9S)A^viqB$h8{%n5>blMi#P`Jm<Ui7#Jo
z3Pb)><Jh-tCaBHJSYP{04#TYfNjyUw&8DiE$GT`9_QqqC*C2ZYJ5_yIvaoXxOX-(B
zMK#O@O?zQ1z22x#Z`3yb$%Phl?+jSPzy{%lnHa0%DN6Y2$w-lTlmypg<`;7j;e#P|
zmL{qgJ}`<jXtl_ffR41|JWqYd@K{E}nKEi2@c9~={mn)QGFkTsM?MI{!+H5Qb)y+V
zA9t*eaf>kY7+c#{aj?RqXbzbm>bZuUuz2;}fF0kpX@2A=N{18XS4$O6bAU@ZE!$~}
zHG==-nYv`;zxCEyUVD6}7NeAYA9$jO0sh5UgwQhyKqtkg!R)8(_`ehQ%2N9}VZQ0`
zRUj`5Zl6}}Me<q<uiZMHE=*2}=QhZvm_{PMR`c&Q&u%u@5T}_593CdLDpwwNlwt(o
ze}xmA^g^)aC~x7DK#SM9Q}fF}Gr_+j^=V<|JmGPywC?^Q170&=nkc_6h3D_qojtsS
z`l~%9=VlJk+}^J_wSHC$^c<r#7SMdrLe(_cjtf1%SXg1-9~%IRJoATZqk7=S66ILB
zZw$1`q4%?_P!B0yTB|Y71g?GTX}uj{2KYC}oX3oY!0`Zcc}k@U0g+AQ%;Nw%rAA#1
zr}W^Y(#@r&W(oM~pZ0YT&8L-~9(<*4Kz*cwj8`LX5l?bD^^_uFu%u_WogehzgpZ@A
z^Ly)rfz+VBCg{5n{E>U0R~)Vf3np#;l)v=hyycgD{z)15_p;PP?*;PVRX;h>mX3jK
z>*9f9wicYa-~Y&87WG5^$X5P`{4Ev+hx0?n(0)f~$c_T-|7}!j+7;{MVO=}=(Uy@M
z<j2*nbBce*mYco2+5(8+S;y+E#MeoJC*RwgiRQo9uVyRazu8RCclt*<8Jc&8o3T`=
z6;i|dw^XGzXm2>kLUA#+o)O%91%${;D1plLOUea7Vleo0!lRXf5<)UWV_8>cu*F83
z-UV+a*ys{J<IUTNy*=0$K6hUT)YFNAc5oq}W#1rKYGQ^<x7UYhk~!c()j!z{Pj+aF
z^?#D3T1POW^jJtTXNBAm=Er%PJixH(`)O#J9a{foD3!Hy0p(XL<Isr-<$o@d=8BSm
zO;vekeKRxSd{T=@+@ynxeR<2`NhohU%1zgT{0h&TtQ|C3nBn*V5B?tmHIzGc(QVa|
zLZJ;?9C<1ooM-5&y&BF4r==txeIIKk-1C<j{)ygK%NE;M%Q)(-|Gf?GEG7s~)=P;c
zKnnlns@>PgAdH6y{h@J1TrrRF+P}>ioOn|V2Og**fG17)FnG*}<BrEGQd6fVFwwrU
zuV)2_;Yl^8%kL&?obBAz70u8CLj1|9@a`oMT$Wdex8HymD2Kjn)T;f$loGPNZLI0R
z=jyff8Wn!roNxW!iwRb|`|rXTA3JLNbVK*rr|LZd-{M_gg6KEQ;(JofdL}7OA>&Kh
zGee12Fl&)N>7j*G1AFb=vQ0wD_LcIg&n!4!iCeGQFg3ms!Fh7Vo)tg1FF*D_iq1P8
ztM`rL_TGE%y;o+O%Z!Xjq0pcrL{>xteM4xWRH%eBC@OoLV`k5gkz|jOJ;U$*{pk;$
zm*;uTIrn|tpU?X(zs^j^!IYZ55)VOtj*&v#h>=K}V5Ez=&O+23>(c+|YYUOtVJDwG
zHAOz5<;?P1W-#<GUP)KR6ta9jt9&j-^RF|u>oUS>Q1<un#0}&D6jr}OcFIy4op1j!
z7arAx!B;0YM7|sZ)ov@lj{yb{^1!}G!&eLS)5^sb(fQ8YKAA;<l@0{0inQ9uv%+E*
zhw-B>Yt*-*=4q?62GTdh0zV#@LP?N<>$gNhP^Rpuuzs%(55Ltf2FI8|XX3Vs;UPm%
zIY;>?;fE>oY5%=!IA;tMHaT~V+W|C)Ct2xvYA}-9Gs+u`dT+aZ$x+{wpnCJ>`}^pA
zFu_7!YAA&~oPniHAJIIESN%e=#7jL$eJJH!sHh4NIq4V43zWcFky|aC40$>)duA`a
z6^1JoUW$D;P=6t|b8hk@$`@{tNuQqJh7Z>mZ4P`A0?IEs*yK?TFs2}lv_(Bsx3dZo
zDGi9z&TTe!1aWz1EI4Aq>}bKSr^)T3HYWt`8pzK)MBcj5+adT5K`_?Oxj!5?fl=z_
zR9xj_g$p--|9HrUdU`#p6R(9(e%-FlxjYZ~U|4CkhAYthfjwJ9MgYz8Xr_-kcOZ{p
ztLuxrUlPzAFZ|SGT^jm0Q;L2dFBQq@b1h=F@-VUW*CMBT7ZVXpF@BjvMWh?d+$O31
zhvU&9dC7@;_)9Mpi9^ccSgy5s7WGBMX_1n;9D#Dpot|TzTCb>xnTWeC3LM3l{u`Df
zOC_twZ&n!a%!8VcE55<g_ig~QG<hU<uLW^GNQAG)ns5?{uFiaY>7qog%%kHi8XQD=
zNUzMd{W1K|p249Lf60j_#^Tv;qPYmp8)|8>HbeMT{z^0A0}ULQ70M0uq5+N3CsDq|
z+qi$sNKm6LH33|{OG7%f_}gSxK82g)Q0?aH<r+GN#XlNn&7)YrV$bVmndUF!7f(}s
ze#}5eYzH*|&1qwYlheIxQE_dUW1d}RS;-<U<ndOO#*duP6p@);YvzF?8TO;Algtpz
zZTnTfY!TZ_nGbRB+Q4ECb9nM~af4y1(nXRt>=5#LPcGhx1C%;=w@avHP@j5~@~#ah
z#AtqsWI^ZNf3BXtn!_yzVd+}es;`Mdh#NIo{+JZ({IN=;Lf-EB@Tm<sUuD>8`|n|C
ziVEEMM)|?bOA6&a<`nvWB94n;3%}_;;=cJXr{rCb1WWqB?m1RjxG>n8)W|OmB7du7
z7%W8L&p*;WN=zKe_8<AS)uPWe`b6nj<o%LvbNKhfULLwD8DDBxOTlaX3!9yJobby(
z)4PmW5p2Kpzm7$IX7$Wn*1%~6XnBykALFVB`%H!JCO6Q2=-F?B2IL2H*gk+eFRFn5
zkiLTM4GAbTr;p^tso-q1F@8Q;1aRt|5c4Orz+%!q72!h%XC#LYY$c(bP=L*=@dJ{e
z(53C)vn2%;E&rmVQJ+#O#EaC}R~n)<#zaPGw=wyug>Ni*sFzo4e*DNjCCt!9UUR)Q
zi8J*>KWWx7X8)oj)cNxa&Pq;qaiDS>`_;v<#c%ZsJ72~xnX27~IeMS@tm6I~*J%%F
z@Onc6-6{SY`W+m=`XV#N)0Pps76;m_W@|7R&J@ziqsUj}WBNx7@pY*~^mmr^g`j}<
z9_(!J!2K{squa<w9Y&TQlDf<Zi$}sLho)FTse<*DKnx35wv32W*$ctf4@1ri0)lXB
z@W_da1w24R+?3aM8pJK<=(jvt>7br*G5*tkd~i>W%g;cEACkG(`HpeZ06T-(g66|{
zyjZX)^$)=X6+xf)9#ZkZ;?Tkm8Psz+b($p-ehLHUYSDac2L;hCq!MF+&X2gP;`sx*
zR`AUe>6%el)P$;7=Z|?aI%3Yao>dZgGEXm>#J5HB5|63JN^Wpd66aE`G>s1};j!m>
z3isAXiK_;l6topQL{DxZaaV+aP>Q+2eoKd$u)UnJEfBbe+ulpqj2>OXE?$p%cDI6&
z7`QamZ1$Ivu-aTUsV(Cs_VSG9U(5><_wD$?JJI#qEv6tu=FdrlkN2osf8ion>=XP3
zzX}pZ_E~y83<L>*O{HDQN;bl@@YW7RECrGII0{o*+r|4_^?&*&i4$xBA!Sbce8gF0
z7oj&U9K<gN((CcMLImZIA|3lDexjFjWyon)khnE2GlZa8s81pHk(`H|&~vmJI)vuw
z11Fc$BT<hbBYHJQK}ZX>1r*q^G&PuX#!vr6*I!-r^o7r5!f>d}WxUKC`JNpP8~S8_
z#kh~Bmp&8Qz(OP^zSWf?-|x+phwr?2A!h?)s8U9pEpdXBB!?HG=z=`rCD?%4CNMq5
zPaH0Pj^zA>@+O7a1EUehlUv=AW~=Ila{Pe;(SmQ-;Qg2F*?U<+uxi>!Il3eYKS{V6
z&oi@w5a++q6-E}Q`IHscv(F85SeePS^N71rUtATffO^5dQ2A3#49YGY{8*-|2F80m
zg|SC&U=^co`M&uAC<o7MXTFbm+^sRZaz$ED_&(w4gwG&$o6AJTMw}5OoeR7?QNH{k
zdFjf@v)h=+DwX<+>1~|-)r7^?Z&IT0@l2c4UwT46$KOsHaZs#(JR0Fc_my1LNP`a6
z9?bar&FAlGx^cSvm=pIXX0hjQwkvbP#<4?69E#bpyV$9gcV1smUvpZSrZM{3G)A&?
z>xOULHeRO_I61AlfV=Y#OZ0Fr;PkJWnZD0{!`xpVKVEl`6s#-?Qoekg!YfZ+qk0!s
zgC8x?>{aL&0k4(9htFQ{L#s8(Tdfs#P<<npIb|&fRX5Z&ol>}=E9}dRi96!eG%NJ)
zb8y1N1S#IG&)o2pRn+595+{heT(@+Q*}(V}DMF8)7J}TO3(q<wB;eJR^KSBSsP84)
z^(JweAI)LqO{QEBU&1ua*pNX4jDOLe))D%Lr}<0j&9HLA2%F*qHt7{?=qATW<y>x1
zAvvn;JR|^>yW%CGPiP=lR@=4j_$n^lzFLvvw}*Gs9vS}4#11+uN3VRLL*84?$C=^S
zGWMT5^-{=b5(s$kct9wbgqT}l$?fQ11|Fdk{(s#KVD9AUvD23j2hcByk)e*AupHp2
zuCt{F_fKE#uZN-jmG5dph`S_2m~?O*K<fjUUCB!!+mx_!FQq~DD=lHbX>{7tiH>;d
z)2b_zE(+9Zt7k9$+{HXh>m?&S#xRbCYXv`|k*_T(u0x@e9D14*e7T>IK(puQe(5V-
z!p9)r_?rtCcz;!w<(8%ciYGZ;3#Ec^^;B_c>7+I^ZTwO0f2<BK-zHfVvjC{aI|u2Q
zX#?;6XHJ8^^1vo;mOf{E0N(YG-BX%YgxVPQ@D7xt-i}KkYdDL1&-9`fxlSTJQ6;nc
zPMHSs6FyFT_7LT&HAg2xA7CKl`s^hwsR25Vl2b87b229%u^Dl49k7|>Z+V!a1$et=
zvmu(}_J{qGV=71IYMKcm{kj^!&-YKiOGOK`e!P=@A#8{wqla_y)b&9pPuR7(6`-Cq
zrr_W`4ak1R`(-yw8KwkA!x)b$!tU#o{qQ7hSX@iDYT!q6%KgK}CJqOHM#AgN2$d4t
z6p6L5LwqKVNO><mXT*mZ-HsPPb5SpaCbxTNF6;2lE$Pk8T`aKCpys_PIeeE()_*-t
z292jR+1e)eFuP=iaEA<1u#ud470iVsE+)d-LX;%X%I3ImX=Weuv>eP!dO!`wUBU|*
z3rL{6z@0JiKQ>67|7-iglN8Q;IqBI}xR1G{$a65BBnJV1%+2sA8}fk7w@dYs!`BD)
z5$R8O!LPzaIAos@Vy$x$u8lAPqlrMewgnS-{R<mmKEVY6A2{uv?bAW}?#V=UK^90g
z(`H<AqXE8@y34;3QQuf{#$xLh75IC8;eRkr15^_+R6DQPLF}P&#@-cj_;HIVg{6xg
zo@w+pZzym=XixcJCn{#Bsjao7iJ$;S17haZJ!-h0@cy>XgB>h2sES0tofFvnF7s2)
zu);<IaY}-F178iFI^ej!gQ-%ybdnk;fq%I@-*`jGVY7a?U%`$auErQIzNce>OTs)I
zam(D`;=AfqN6iDbsUFSqT@;2Mi6N%^9$r{bwzucH&j?4t4=0$up#jP73_cIuG9$iL
z6UCunUMQ>4Z9ct64`n~r!X3S<v8o%@N~+?E_)0AqIa#O>QMd1XgrQjyv?i$cA6l~z
z@{_w+kJ|{$av($P!(nQ|*zlEfvM&c=X%YF?5Y3?uH<SM!8x}+7h;-j(k%!(s=>Co#
zl?)UV2S1(7V*phiu&_!Lhey2WZoP*EAh<fGxr~7V%z9W;IQ{9tI4{$I^~eI|_gJsf
zItIY_wsr2ZxFJ03Pt4**`x7S<5tHCW6G)$b`KZFn5CZ+KA?5?(NNPy@++jyO>>D~#
z3rz~pph%;mg!q(&?!ukFub_F@yLg2jZ5hN-w0@n_tppQfmt&9oRDthr<H$PHQNJiw
zgoA2G0_?wU-*s9**O8!F-paWHs7Kv@rEEzKu92H)Fghtg?V^OF!B;KhmE*sXia0)9
z-`>0uf20ZDJI`7d_an}UsGh3&v?kcBvS%e1$pUx#YZj#dO^9~(w)V1C2U?+e&P?e8
zu(huwYp<aLe_1=HzN%}3V^j`*-xrh*8#>m*)@}rR^M^}+#9-jwbT{X*8o-5PCUdSP
zM$p=Qyg<}i39|kU#V;($!rina%Y6kj2c$DJy5uJU^H+?2b!&>izT&y1NpBgHv*kD8
zOp<|KCSZPZPZSz!6g)C>q~Xy|stMK_Q6S6H31SwPfyR@rpDGx|;I7@9e$mI$u$!#N
z!=;aSr2FOH=9fg^_lD5bm1tQ|noaR4d!~Z8XEqgcsF!t;QG9LZrV8*+1{?@{EDsu?
zin1!?YEbc{F>I(6_4Y3w8efSNhTA)*PX78J3s0V2Rk2n>{Lw%^z9iIhSuJ~^xoIN}
zu~+nz2Y1oA*L+m*cRF=AWy`4VXs-wd4*Pll%0;T&At9YSB@GI1Xh{sw>#6*Gd5<<y
z1oa=jv46ZI3&)a$?Zth$VC(`bz1$=V%<Fu*KX8m6lqUNbtmQet<VL0Y9WS(wf0+^N
zvqugRC0A2^$RqB%l?}%ka|v)){Mq(2j2gZgCNCHlBfplAXl+eB8}uHdVG7aafu4sI
zaWZ<`5H3wQ7$4Jtdw)^TlkY$r>=C0=?`cHfme|^q{MZ<_FH(`QPA&?eLQd_vF|06o
z=5@loi-OR2w>7d$Srii9>WRM{=7RdetKv&&zu*y8qIlv2H=y0FIJpAK)t~yd@!}22
zIflQeG#eF$g*#WwtN7*N%Nr)wwl!{8;J+$d=!neR0SSb02rppa40d^=T#%DEHKb<D
z4!w1L@?HgO5Yt_-R&I;VF^FR7XQ==UDYYx-(0rS;w%K|L_2FcKn>cE(7{I360Z~>p
zEx7c1`eJIn0r0#?yw9Pe2lSPirT6#H_l_aHJ(a`=`ngED$G-riyiF`Q{2G8Fb@m~T
zxiQ2Tdzfjp7{cj#zYBqnb>Pgs^(qrfQ?S;L<nKW9I3WhRR0i9FK;nKyOleaV9xai2
z^;+t|tM}dN&t#R*`}<*khfD{}^@IAE#ty<U|Cgu!9y|zrLJkt>*b5Z2LnHboOu#AW
z?%s&84zLH^Xy-Bmuuy1@XkgHX%U7+Z=5HB;AC587uNi_wBAdI=s2-%~wT#t2GK8`F
z&yI0c=s|7fyVKW9w1DpSbv1QcfW+S5SE-lDK`pAsdub1GqDHEB9oJFbx^uW;pjrU7
zbe!H<9ASkt#UmVcqvBvcXe8iyRTM71J6G%fUIIieR!>ikNJ4oM|8Vh9<cI8#+$eS9
z0iK92Sx36WAQO`>G_aF~eU~E5ls*w?TJc!7$v}Sk8<C^^h^MY4Berp9T@3mdSh%<1
zkbgF!>jjUm2wW8VaA7T41~MPNhJp@q=qi7;ohOI-g(qJ$n=7%x?Tw_OQx}*ajP^op
z`2{WzDffk=h8*zNllJ?KRY9;9JuTAXKn=6qw-_qD+2E}9XkR6o=c$B|Q^>_~!JM2B
z=|gQ1D0q=^zTb%%)_rr29H|h3>F9{6GQ{^h_|)*!H=a*e&tf7SR*Tksv6?q3O1NSC
zVNJG~9Xlk1R9br(B94%ap!ovDKb&Vlpq7JP7*0Jhx_x?<7ak}{ewB*jgM(kZI+xod
zK{&A9JHUJvGd?C|GD$&6Z084b`k!VZRPUxF&7palbbW*ai|8-Ra=2Id_H8kE<<1l?
zCC>&fOw}Lr3bwK1?fT+X9_v^mCL!KFxQ{h|ja=+cq9Ay<9xh$e9l;qI=yz|)jN)Iu
zFdyn0`-P=CXw8SZf5-IsT}LPK-(tJN>ZQVteDL<hvy47}HaPM1v`MfB;vC+6YnX?w
z|5c0DnA9~g*jg~%K3v+2*$KLQ$jD%X{pNUGiU`C7yCuEg-KPTPY?hJE=&Y|IfhkWr
z0ePP-lobc|r6KoX3GEMS1yE6$dQoSJc)sHymQ`pc{>*Re&wjBKP&H+cry+myoiG6p
z9|sX|PJhpE1@+FG^YWL|^(5f4j=b&1ehK(ut(Kx7B>^A2FH%p9A&!kQ%VpYKQLy(q
zK)M^C2wP7g8p;pIgOf;)N$-#h)XlT7(La*`nTz6)o`{Q9G0es^AfO0i!QAggeG&gl
z-t)LE>hJ!!pZenDhBO%YcZA<cLOIkCmzyJR(eFD%R#v0?N*?U~i(y6lB*PE~Cr)wT
zNxZV@KP3%`>mz4Q7b(FzmmFyuF9lF@Pzg3rl?1oV^S15zXucA_LCbhs1p3ZxvPcW<
zVrm@Z;bd3#u&f;SKc^j7VP?jP^%puvx)VHJEZ)cj-G^7VPSvTvj?)C?M;Ele9AvAe
z{iF)z3%_rFL;gpPr>wp0f0psjD|OZuZKy|oKRojdw>q2~HRYz@P=+R(5qD}QIZ)6q
z8Xb$^2Z55RxLIxmU=(A$e>_bde2+(OH?^<;htAEH{14f{`N8U=cGOq%GtXvz)1U&(
zvM0qgou=^CHoAtR5o}PYSv4fEPYnj0lPUMkP{7k)&7t|u%y9PO$1bNIXx~X_8EJ*l
zLG|<Ull_}pn2#0X3td$BvOTxB|4&H_hP0P;DTkPWE9YSC`zi^<ry}z=6yN}PF>Z}7
zxzsSIm=LL<jQp%MX4*dJeat6+*)_$d04JDRJu3f0{(@G!N%B#Y0~2mPsX@*U91PpF
z^k~28+c1)+x-W+Kd|!f`?<j*1ZF*N`uQ<v*dgpNerwr-(7gMa4BtR>?A~p4%B9yq^
zW4eksSE05#<EL>+=$xhb_U4*2+%=N98_}o?ZX+a4S^jEp0?YUMq@oDpS-M%xRjM#-
zK@|`-Ee*;qlW)8dSA*LQCKL4khkz=-nThq01)TQU%cmydF#gR(&yq<Q%KM8wd^}Na
z^7uf;%zYUMTNpF^vML7ItyKCp&KSJOi!RqjJvRBdoF{{U%Fr=Y{6PlgT-Kv(9+0>z
zgB{49oIw6CRm!12uP!qXU;0`~O=AXMQZEbbpEig8K(Q#v))aYt`6Z(EO`%|rGrPxD
z8>BCivF=nF17!(2&8VXpXh`z*6}+|tmgH-dEZOG3`0>h|*0w3)(S_uZ+_Ho}4^j?a
zqBn<u_4*W<A#+HZ%BM5Edl)*Jri=g39e|i=&p(l(`mk!iLD_TL6k2JR=#tLq!7<Xa
zg|9O8VX`nv2rEW8lv9mKg2L$MBw|%A*aZ5Sst$T8n1Ru#WQU`T0W8atMSM&*07vKL
zH;-eDfLUQXxYH1EWsT1`&9EDRWdFA_rF=&4{gmRTqBcDc<=_$3nleG_OIG`>U?a%i
zF{9z3!hk2gF2+5_2y)|;U;pBi1e$*=FaCRu_-(>-JM3#hFnl_f=LWq9q?KHFS<Hic
zx|ifeoqUlu?N~+EAs#;PQrhuK*Fg7OXAehp<h@^7cG#2PqyXnVUPI+Pc2Ja?MBFM#
zII?h5#^M(<+_GMD9?B7f0NX2HWABK9?6H)m!m^0>m1$jD)Q7w_1y=VAEyNHEmUre;
zt2oT+)g^o7N<-3d9(OBkUf^XS>ug25IlJZOFQu{t;bl*Ouy&0g82x84aQUtzbQJo|
zG;oW8%blkK90j6q`d+m|@h8N8;~cwp@~srg8w4||)`>#H(UX5J^(aAzWg)i&g#!2q
zq<lQ<EDD21oSrGsA-=u;_T?_LPk7VGaLhnY1(ekYMdB0UA!hxnH=>k>5zoyt`&)7l
z6mt0Y9n{YZ6whpHM7=mOQ}d$87jh6kO|>d&zzOtYiIPj1N|5Mqmvj!je-~dQ6n)WQ
z1(Qf<PL-DdwY?S|77=CGdz<icW$plc_^SG=EdpIn+$n*=Ib!h3*Lwa^vK)|DMDZow
z6$jkdnsiff1y7}v2rdhkgv9Zff({{R#J3L)<o6MSwesVZeo;KI+7q0;nnnxn>O&4U
zk;%dQ>2J*E5${?`hpCHHSq-wJ?xoy$EQ2_)`!+LoB;bBvGiCf=v@gl7-pQ|#hqgQJ
zR<Z?X{<5S0JkwnQvLqs3m&VCKw*|+g2kGc_!sCv*epi5O)hB~n{>a~|^f8}SRUVE%
z)bRcE5%KR>yQbn^h`{9F&g;M>85s4<*)OL-J~VJkxcgTU*xYY7<gcN*N8TlsFX24!
z`{~?YS2_h~_h@IAjFW&tdQ#fy78zgy{{GyvQV_7ZW_dYN4k|@xjOp{m!J&Y0CKT=S
zyESdvSdmAQNr;;|7@c#6GK;_Ny`&DAue=J*JZAy*Jxb=LZaGNK&1*kZEeJ<7%}I_T
zAJeOkGD&scWuT_wsH)zuBHXU(FvzCYhWWT^<Jgl*kR-jrd!ZWT;q1afmW)*q2b*id
zC|VgTi(g!8M}F=@-pA-f4oO3)@&VWQKs8wVz5RoJ3gzD|Cssv9SFyXYmg+{Ptk5sx
zZ8#axk6Su##0YY+!t=h==d);T*wWGR<iV~ijKseG<Gm#b8?N^&l2{ZV?F7x`Xb)MS
znm0;rZc&2K7MGYCy~t12$|h~7rvwZ1(>6yeMWK>5&VsH}7-D(7yyL~hK~}o?G+`wP
zRQB&>I{E}b>t%mgkr?uLPSL+VI>-jEwsNH8^<-dBKFWO|LIT>oM!)a&NWh+n<DK>Y
z<RSCqXI*|b3D~8%-hG4?d90I;HH@L>L6!4^njkX?__X&*Ih+sxs#F1Xx*ipfUb~|G
zD^wDk+3Am!Xz)N$(fZ9zf8<3B#m2QL#h^C%TK8Cs9QYks&?q!efa^(4oc8(u@R=bj
z>>JQSN^DsZPQHu<iL;b(lvBf*SN5#;%Ga@s*O}3}ZEe_{;LBklt%$!iMN03&LJmTr
zn&Zsl+`!+PaaZ6o1;`94PaZI0CSJR3DAyc8&ppR(cX~y32-5uUQ12HPWDO15G^+DK
zR+b(ai{%m~mp;<;q>YZK<33zf5Lu7q?U;wm#S4Md2V*T~PGK;jzHNEn85?nay*!ou
z7bUTm<3ZBN(1_RY?ra|%7XhlpS63xQxnVzai@9!}47x<A#=Ce}3GJ)uR?8W+xYN>q
zk1pOpz4__LNuhc^@PEn7)I`G$$H*o;0uWc@*{XQP1e)(m3M(!gj~9lQQv+e=*0~_2
z^X;2K&H-#)(z=Fmh7n#fWn0+ZLg(N~B;Bs+B2bE$F$ccz!WZw=0OL$$n7-do#Eg35
z9XIV1o{l2F%Rz76Dh@S>j5_&g_PrWNF`Z<jFH!~%$sP;i8PwawPWLJ=$idrhg_#4N
zWq|dzDkEkj2c-Mz55tp0;1rY4;}gAnFrX(DS%`A$SJyr=>7jKWSBT7+ep(rryy8%?
zicXP_`RcQqJwn{gKhi0?c`8u6-q<X^DFd90xX?EbIT$p3oA9Mo8G_Cm=|&gIL*O$3
zm)cWO;P|Ea^znbln`l8IrF&cvvicmGTXWF&d{3vKxDj#3rMbpxev1Pgb;0Mwi{fy}
zBX+(_1^Ho)&6~y?{D<{z`3O{w&=HrEt}T9lJ%m4q?3z4nI)UvbseHPt{}D5K(8E$j
z{Szk)4yJuZ_gmAqYQpckIDn6uGUKcc7kJtaD;b?(0D(QA6=q(;f{X1HJU?$^6YDA-
zb*symcQ!W#^$y~MQOnG{QXz+jo4;cE{8sU*r8PH?#&Mia?;aSsXJfkiH;Q^Y8Q~-r
z5_c$a7(aFR!%8Q|8YbD%ze)X#6h=48FFbnm50jTAC(f8sK<%d9g35tDJe+IX{V)Xu
zu_MbB8To^Um`gm)6S~Al%r?InO6{a09^ES0+oqr*8uWs81o=scSkXu0H|e*qiq{2f
zyY8D<ZrNL=zx516TZ+!$4V145`Th3YpJ{HOkIs8}?W_>|w-?M16eI*^G=E+jN1P(Q
zs}Ow!t$*t%%<l)>q=nhRl84L*f-o@Xcq!Nc`K&%hn!O9<1JSQzIqhyNfbsvjCm_xN
zN!)c2SG7^US9@;OJzD}2_ugBMv~a>qQE?BYBrA*;v>ZEr5cPt^t=(D=2?E)`p~ajF
z!f^P!T_O?21oNJv&ph4;fjXy38OabMU~7S1iM#yJolDnGS;PrBo5=<o%S%`v?)EXI
zl?Q^`wci^3=74`KDJNx=Q6IlDrZ_1^81}k<Xc20hP%Nd47Nq<jC9Pf36ea+Z;g=1p
zQqX)m|J_c8HhOLZX&O~+^Fez0GIKPgD3IjlZ#};+1s{TFmu_9zz?!m_Jk!WYA!(Ph
zd-gpWy3gL#7yZi%tEtpMk|P_Kij?qyS&4Pb)Z)hDH>uk=)77fxV#9r`ms;iJC;fGt
z)f0H1TXbVgj#EFCl$P;>f!zmg7`38az)QJjdyCjZ`<f{w;}u*=*fHjHy$VQ3f7hM+
zD-NswDg(q2U+aA3g%=EnTkV{fc)#W!AKX|iyJp!Z0ea0tc`qwPVb{@2Apzyu;9c9f
zb`ufQ>wEr%@(mxHYn58`|AhKKc4Sv15XZ=qD~QG%?W^Q;8%%2s9YFKHe}Y#w^+9^$
z##SNfD__9WIX7?>h@Os(;JT#(Zz(!=f2ke-r7RcP52y6teRG}7uRD}P+ET^M^Kle}
zhqmZejU)x}TtK32KVTDov0tjhq{mD|T{%lnxk^T82w$$o=Ewl-`&ZK*Y-2f3@0W1A
znZY=QHS?8imoc`1?2wkYIc)55pfSJW3P#@+Wqk7`HSondd}h7dg8e7s%6?+}3*Ii0
zx%DKY4?CyY{O5$$3}#rQC-(9q1>ElD>?Nrt1LexPl%DtBar?ebaat<mTQNS9?D%LJ
z>sPyZVLW&jvpx0mZs!6OaMh-VUpoE++xcx3Gw_#^kR6%3nkz?31Ub_0o`@tNOw!gp
zd7Wqod0P6`Yd}rJ??#<6Z)7Jn%S*FFGH8i&tZ|p^T{duug{YjY!gYLYwSlA2or199
zd6lKpP7cc)tTePnECjP}2r<>dK|B%-yAg|ecJi+;-)S=wB?Pk1Y<O9+1NDbQqXT-#
z+r*S8ppAS`Ji7;fUML#J;~%Z!uDN^I;~~==o%ie@YJBsb_uvfHYInk%p@#%EB~yA@
zTKaH-(Gy{>#CEVESKY7c65F`Z7h!)>HsncfdNJ5nLJrE!CN_lwHCX6xt0SU&n>b}z
z*l6oDGDuohKAoMphLe#Iwq@dzxPR%+3DS)TEM_p>USW(K!a_29EWht#u1+IQa?QrD
zw+(@3*MHC98{=YkUVhuaFJvw*-O&DmWl=j&UPnC3VYT&hKktm<N>}A3jqlJ9HJ&#I
zwO^1DGQ;vOcn#JuX2Yt-Nzp=}fPYD@J<kE>B6|DA9&o_lIVUsPZz8~JW=_iYR229I
z>?;@0bMyCRNzyc$BW>7o4BSBLiK2tG_;Qvw{HwI;+kd}>y}W2MBp@#i@?M9V`Ox#m
zry=Giw>TffWc|mMXo!4!vT2S#jYS~n@T6BN`n~bi`tYJLRwy|Vdt3T9KR7=$bFD>r
z&CCQ#>(i;+Ff-yed+D$o+$d#w{3=@nR0Gq0zC`)v+d6l=9gL(vF-yrKfE@A6GtO`w
zjZuP~xRFjqe@Vdda^xUD7EZL%mlv<d!ga2im`klPfR)Elvi2*3s*zSv^_VoUoKzpa
zh5S_KU3*DdlH`GIXZGI~TA#@ra{KCbdmP_MLhsDa3aog+2%e5mz+CS9*q|Z{sJi|4
z#rw`a7WYQHu-t%_DE%xEFPDpQ11n#7kH1{Sq+ej7j`YaeZD-s4<U#><Px5YT$QB9l
z2(n3b117Ln+qMZVpEmJ;nb>x*n@u>W`*A^)#W{TIc1zhAwju0C>yK2P{uSI-gX+^u
zE=ppeXQDUWe-#%ZHMi*U8^vB<8oho#n~gA3FlhYmeK&r}KlfbT(G|?^Hf4lTQ!7T!
zI~id<kJiJ?M@Fa5j$@?tl81s{4Pf`_O74``{>6<xjvN$1UZdi-yG<=F>v&Ur@2wzo
zUtcrKd?j{k6${}p?M`aw!u8?@^v_<Y!DFwS-i%@x!qxb7No|gi5gE4LUgVn-_+aV1
zC*9Y_@kcW^20LT8K+;Z3-PLg&+qkptJ{!SLq{xktCb1&FdV#st!5?e*wMomA{FNE}
zO-J0hlxix%;p1oD_}|~LPYHULhu$sYHp657+34?!8~W=pt*+pA`bxiqfBTLxb~>jW
zK%R_ekymHE4(#FN86WtM+@K~D&bVE>RoskomeJOvm$qO`t#{vZpQ0wn>W_%ol`#?|
zzAw4G25AW&&i&8Bjnu@Fgkx|h(+W-&dijJO^17d3x_RL*%Ql|W9C@E3hLoUNz2RdQ
z!%PesePfe~B_-I?m-MA*=JC7Eia{*Cti;uw+8HZhN}?s1=~#xz9{yF+?iyRnG`fD@
z?GB*tWm&hu`+#i;h_#Y9P+=<$hPs<SZee0@h1T$Vq@p-D*=$1QuoM(nCcOR6MH2E0
z^W)7)#UMnzFn<mc2L<x4tX_&jkoIgom8x4BCg|_Yh4RXQ-8z%Rhu5OukS?)xXA8~o
z{?5q!N=4j4*NCzohDz{SI=g$HK@K=>B{`X&R0M@<jR}XvRN#v5_6PfSYQX>G%g<Z%
z;?RDiKcqWS4kY)#wr`~(4pG`}xW;*TxM(M<m+~3q%MOq1F<g~_gcD@*t0jt1VP$(m
z{Hhwb$NMHfm5>Lw*ylIv&Z<MiC(BEVJm~q`zJ6dqRRPGQUkb9Xpt*I|jk_9X&dD1?
za^|kCB=8rq)K(xq_mOB@wi2}^>}_7z`|j(=lNdHwxNAxe|7r$=7Jsm!ycCb)_uw9E
z-mkXk(%T9Ar)Veb#jJ1GcX?g;3e+<&tghpz{XT;opzpalbF&kFw<`L9UYZ)r`NNq1
zHGjtkqlAJ?m;PWOx20bUde31B>VaR%<w?QRtem|C@p|jm=)5$xw$Rh_DQo=nG&UPv
zuyN010~=9cUfI>8fsahj=!=uru;c#xjK|HFu*D(K80^YFOv3EaN(k#eO!&c=%k|-T
zEHr*)>`BxbmK>IQDy6Oi>)h2#_(s=<DKCB$dRn%E-=EifHPtkQy<up7x6-$b9ag5;
zqWd_CtzWANXOP{-$kZjy$G_jiP8c%yD5HMjZ3yL!%Gt)kzqo{XsIfz8D|6=`bdK~N
zgF+fT7vk<tu3mCQd9#g}3@qs?ADqH3&b*Wtf}qXRw;hsbokXn|DH_QLerb>Uq%c9~
zp!aFI=En}toZ9HsY`MX_uVLcu7B#Tc_tpw7Qo|7Axv10rtT2-7Q65Dm2oI8~){ADD
z;J>xBTWquBKxd_3FO58<w=Ji1PR@!#o$*;ii8rhe+4DiG*^~utGw;_jqd9%BnU%Wy
zT@mPAIn{2^Aqn?)tglV<F+or2a!T3|H_R=JYW_%Ihf5~XL<^b=>Hl_edYK>t7d+VY
zTkWWT!%*9(-Jb*KTO~h!yv+hmW5rE(yICOfhn&NqGDDy}kXAc=R|{OG)kjPG&ERM1
zla@dZU08M5_WO(GUQtZ>vd!h{kT8C$ZQvj}7p!|e^cV4SL|<;$9Yy{q_mRu&1BdwF
zj0Dkikxc=<A9*6}a#9ZX6@8t~{Xp}dg+T?JPz0inJ7#1`0nX=?%UqR^0Rt|F7%Ag9
z#4%5u=_*r(MXlrKl1U}OrN~7+cU=KY#}1N|ZYzTM_h`Bhl;d8rtBhYetqkPe%h%)P
z6oJz_?Me^wS&bz!YpVYfg^l00qd^w&U2YRvN*A=Dl8gVnZmBw0_Aq(I3@U?2=Z0mY
zk1#~>YqHdDDuOlr(=P6CRnTSH`$zg-1qM?8v%K%134bS?%l`6GgT<&<&<YbXRLFbR
zFk}31Hr0^wx)B!;-O^o4uVkUP^VCAP!aAmY&ZSeCVGvg^QEg)<r-u>0L$|e1u8Cd6
z*jxqqymTi&{IXy`xj$dkdqwEEni+adzHSJ4R<5&9iTQ}5xskvz4&-le{l1%d|0xX&
zeb_0~IQtzpS!}<XRLBfd8a3|K*~qV`e;`B~^)t&FX6vt{lEE?0iD1H%8Zwo`RPXVy
zLtkizhce2eKNk<;j_YKFLO=eB|NkGX2kX7v`8F`lLggXt9U35a@?f8;rH7wd<_}xP
z*0Hw{Y{lI)Gx*A)@1Klsl(6MzcIfuXE;hk)-rTKe1+(bdu97v_z#d#bJgeX~ix(A@
zu^(8VB?6_DRO77|aqYCqQWqU6s7?CkHAuFMAMs8$_weL{?!g}+=aI*t`OQd#Qwaz3
z?3aXBA+M!?g*@FEl$W2ISl{kWA%R+zfyYjQXr4)${!a((BYZBb-Ls0`$8KzwCun!j
zLKJVrxsx1BU^Szp?yHCVHU)9J(cH)rsVm-oRh1P~7;{dN_42~uwTItkRR3YWT!YfD
zNOMCxo&BJ%Fb`CvZ}BpR3&Bg<XPUeb^ia{5b*Q6(0p5M|a2l{;0gs)O3yvc!(2+P2
zX?BGb)HrnBTKr;!cA6dY4#XX~zp`?zYM2rPrM<YMu5&_S+%5X2w7j6oN=Nk-oi_{w
zwTZI!3B%1KxlC3SQTRbjXe0!p@8uzKg9T4fxZr&BN~aE*kMVpFBCIum*YL60Ez}3P
zA9sx=%2yGZii|`1StP+DO2y^%LrJ*ftkYtF_^A7@!!%0h(RFgkxnDFA%>nNhS@f52
z!TX~s-hbmIp{f5TSJW8d<CV$UZwSf*M{GbPwWlh~<)kJYd#wo4Q<J(;s<N=)5Taeb
zDF^3X`Qbi|DnNDEqb+4s34-0Ys@+-9bCKz_5y=^OVBZqC$Ks(6UmMFK1xYoa<?f^E
zP%l-`bI5+Me-3#u8&mGCgh@ln&j|JJxtd`9rqN>Kj5gvrFxC2SYk^_tnWNoj)Zs*W
z6#s{6)Enc>y&-;I7>vEy`UlfcPOYx*?7%q|NZ5(KVC&8XcWu9`ERgYoh<aC!;vy@k
zUSG-{r(}b<*PHpVb9~_ZpX!Jx>P3p2nI39>AO+-4jmfnLT1dTohUIQNH#jDa_^u<q
zqSK?tX+0?naDq!x<pIi#=H}+xDWm+)A5sJR@n9y9akN=?Rc8aAplm}OwtXzJlDAkS
zQWV}XrzNGMJnN@FzEq})C0KSySc?zxj@S4qQ<~;55u1^ZTXzi6xx5Ge#o9kYDA$;N
z{?tAN>`<{r_GNEjWG?a3xmj#*Y1R2fnluNT(8y`3*5!uBHvaqExvQAdQ?s{=N-WSM
z_HT20c^7lgGp96)p2Ns4SIXp}oKs?P<75rp9`3Z5{IG#$9osiZLKKHd?D*%(VxH6N
zP@=o&m-T}L)^-jK`t>sqYZIEiFDU2;(<6$>q9)|TC28rW<7CW4l~44wcorJ?;7N1F
zHjowk;{+Lf1!##;N)hs!gFkVFCHBL|p3@MYqKMi=|542SZNBTJF~pzr`|dpRfQ`7x
z8MSp%{44f8`zMFA=ML`b|21<Xn*<EBLURs%LC+tu3onw2H!vX&kLUOMcCnWw3hc+I
znc?P>n2_!?YGO8dzQtT@89z$%KBiE93bzzeq-`pvC0^`nybYU0oSE$xh7BlBXFO4N
z%PoNdcKyCf-jS}s^)4K<9?|%N2Yo$pO=6#g@R@!|$Dbh&mE+wzRp?ywkM!fml!|J|
zOH=dfu&pX&ZyeVpvy_AU^CPE=(D_m7wyvfhj}k=NDYLyooNQ}p-?63!RUl!dmSYUl
zgnJk7MpS=8=aG*r4OtFrq0f7=J=9VYTyHpWTxU=N39Z`NAzK}wnW<jO3f6<c-NCgH
z#E1L+<m7NXIpT3yUiHrS39!$9=9FWg9$eiUxN`rm3Ro~Ece@=z{MNK5ZNg9Vpwg$%
z^-w4VbGnT-4X&Et5FPzC1#y;+rCepHiB|#F0}mh6Eoi_yy%2++IqDGW{k}N5Pz}bv
zOEM^DDM04!gN6w|)!^=Q#QW0k>Tr-YYh_DJ2U-Fi9q&iHl8BQ^J)8U@(1oPzhc=nv
zxk*{+v<?SEUzhKui)MfjO3$|2LEO-1r}e%11r72~N06y0i@+b<W9-KSL?DiR<L<d8
z<m)O-`>pbm7r3-U$V^rlfvkLUDY%Fg7EUDzo!~(GKO>Y|P~Zctu=?n$8T`<%8`zMH
zD}q6<@<CG%)W_OXFPf4^Ii63#rP1+nfITcbx!8d64CAs}N0X5c^VmX;1LDJF=^H)p
z!DZo6%m(!!%FmO&NdE6L$_uz;{J0wN81>Y&|7lotpq>*opD}#`8|Z$^_V{#G0QLhO
zRW30g-pB{>S0N~0mK^u8T7y{>xI-_@5V^dd;9;RQOeq8(Fv;gzi2K!XMW)Nk9Pv);
zrexmnB4472;9v4iE?}SOFFw^H54p|WOVq}qVD;bi`gB1NkYl@V=U^`m(^UIAa($@x
zah*m{qzIi4r07QSh{(Y0A)bq_yfScaiJoH&<%j*J*Dmt2$)h}Urjh4ov`^F9;A>1~
z2hP3lbIfVToBW-Zgw&T6npqz?_5NmsgL}t%`A{zH;@>HzgS+xzu{fE326@&l8nh<+
zxrzd<jKKS_DlxeCgZ+XFi#&Wju~lc?X8^9po69rTkVir2X7ZZ@T=42a{@06$tHLZr
zFEno=3OC6_pMFQrv#p<cjsxi$u&Vy~holDbx86774!$o2mlC+Ing>b%tD`0-t(p|j
z&6*pt<SIaJwdlZ2HCbrLf8jJWr38ImMKn5Y(rEwUC-_}e1>%aX`vs!wr!lj9t&Ld~
zycvZj3hiVdKI2&cYbx?rpQ*A}{h$n=+&(Ai$jKs7f{QIb^0~ZIDb{}S8F5QXf?Q6b
zKCUD~cio>w<Z<x!Vy#8~PM?T*l3Y$X&}MnV^q@i+c+T9C?D~j&%8v&!s+qLV=cy6U
zZX*H?&!0+{$szA5jI^}HX~2}v*l`M60lt}C>N1Zr0-@wySFuht=%_eO-SgxCgk)c=
z_bx!3!aUuxVe;zW%YPeu(DmKTyQ=<=P6L!bu94aT>S1tgy7HXUgr{dDnd}hnq;r`h
z*<Aks^hsv6GBU6bWgA`@H##T@EgjF*4zh0CR_yvGOVZ!CTStZW%Evj(K=yofmIwn3
zbX)cMc<*8js#O7=Mt#`jc;@_eUUJ~<XtVP`p}W_IuY2(Mtzk^VM5zzTnPf9@+&V-4
z6T1XYt!lQ(;19W%fwL7Q4C4_@$Ir16!Mv2gDgGOH_5&=)j)k1Kern~7ROc?<zWPdB
zh?JACk+>#PV9!ciy5YkgO5KPj+>cq<cur2_qtz~1b|{MMc-Au_I%PnWnnt%$HO}SM
z7);%=h{t9I6bK125L_os+IX+h5ml6@W=~oE!fRvy<iUX*+}eE4_37#ecG|JUhHc_6
z)|m3l_yP+fv2kH@zgKh$XYp8)OB_M|Z;h?KI2{I{PUprP3ADb-9?Ek1&4YO91Cc-H
zXdq?N?p6GvFi_sIpm{w{4!VbHrwUO2yx8W+fYb;L3|be*J*cIDsW^33<7IlF+Br@H
z9!K6%#;c4@XB)AR3tA$f^sG=#)pIs!g%!q}#4@+X1z<Vh=Vms_v-7Bb=BDWv1aAGM
zV{XWw^INZ!Y{hZ~6I9DDYCp#V>k;Fv$8|-)`jEpoIoi+AHLYyz++~5Ox-@&y)NL%~
z(9dP35;?%vUyS&4lLDiJWTlE12_*Lkq-73LgX<ORKX}MT%xzcqn3^L3>_})vWjIR!
zKJp{RQ%w{yx2r}|G}%x-;j0ew(<O|uDfDBog(!HXUy}+zek~v8swlP~DIlw3A2}y2
z3hu&V!<nd0uW$2UYys`(SN`0mVh&IT$s0ShbDNT|Aotq%7V=<z_?>oPN?r`qPE=rj
zuE~SSo@PS@+RrdK@<kSwNP!aLwDb5M#I=wcc@&T<j&kJG2f2$S;mYa*A0k5xC{!8A
zO;;sABFypR6?C5uJ2Z2b7x^KAT_olQP%d!X?v8DAk0^}R@Llpiy`&RjwGA=~O7QJc
zL$s8ZEF{&8+}i&j1AKhSA&savUQzOEnHKfobVb{f4-H5{=2y>*>u*tS`Igh)7s!`%
z^vRaiF+){2<Jm0e@mw19R_C3E;>EzJQo@>MUk-%457khwHe%}T(>CWm_TXxzW%t=;
zD2YFx6YaIHRpZGD(mQAJ*Kx7;$4e=YkJV)Ta`(lLl!UyS{Eu`J2BLSbt%|9alDL0q
zz{ZYZ4i{82ef9D61U8#0K-yr|ge{a^(=oPZAS!QOE&kH9gZ(sZjjc!XA+pS~^BE*7
z`1eQ8#Lin$6Jy))zm_{_iBok34OQ+m#9Dx^q^9*K9;x5ZakzdL=k$BcB%#DetXykP
zV3;B&D&O@Jtam5~sZVJu4vpw%gXNv%8pM%TYp67S$WAmKo3j1Uu!Z+wwK?JmBt$jU
z#!Ut$M|{D5vd!t+4xYK)e%|{YBT-|0zNp(2<<#soC$Ag)!JiFzo@RE~#0N#Mdrm2S
z!#~fbd(eLn2P+a?Tj5H6P<_eW+Hh7Bu3O)W`OMCOdd)Fk3K6&PPRgu;L^v4?C&fA?
zZ3)4r?*BwozHj4>6Ae}5LA(HX?!Qh0esI@f{8>yz4tF$W(sdDs@@Z#9TF!sVxX@w#
z@q_N{(0Y@_;b{~HkZ7Hw$=6-R(#L<4jhK<bS*n>mF?9yWnI0xBZR3Zp;a-o<qkf3)
zwb&Bsa&{p7I#Ye{vLgKFKkE4|81=2P7bJG)|6z=rzr$b2FJi|}zBf5bvVlE)7kx@`
ziyPX1d@;D<jy#t_)jza*Ip7jU__;eNl+g3ac4^9*7Bo+`>C<YgVlLjhPmPErjCD~Y
znVLYkt!ro355JRu?RBj?LHCe%A|}<5S5yIJ8FmHs1!O>iIIP=Mk8*aj!z)fc%8(~i
zJ#Vip2}k!Dk4*oOgqG;2_v(UTAUoR9^W>%~EU{eoOCynmkP^Y-v=d_R=hc>H|A+{r
zH|P4@Cr3G{_;LrkH)vgQ{DM-Ku>>5ph*oeyy~50^-P@;jC1Lepni#L_|L5wffPYm6
zzue0y+~3jp=%>q^Asi?-5?-B`Q-yNK0n(Ml%It9Bpx5*ygE(k2duBGZ@I$O@)48^D
z!idXx;lSIQXg_;ZoY8%O6)F_2ME(`$g<6l<VADE5P>GMGWRmBGgU79EYHo^vG)YXe
zx*PH}koBe)ms3F5e<wrcfdUE+Z8%*eaD1oniRrJyOPK0+vz6%81<d7f-o>w%C$YeP
z4PH^a4A8Wc+HK>ujeXB4dg47O2%|5fvpVOxvFZms`8FNf*lWf+($l+au$L#e;&V<6
zf@6E)`RaI}>tTRNs6QPPAN_fc<Q6ZiH+4n5VPJ*h%7WHCle`de%4kvjJr&Sp-MDiv
z;T=}rvdI<xu@e{bP#GWzp24gK^u|)rSqxok+u=v(|8MM%IV6knsnr>DXRKcH!uF|g
zmm8=ElX-&LwnGYe!;U1hwGTAlxh(IO#~+cP&&zWlMUD<`T49Asu7dDyn9gXVh97*Z
zDa}uyJdIbXg4fnFF4)gEw13^%fq#mKSr0N%hbBKpt0|*yoQbMekC#Ije%W0hd3+l2
zW}j(nHkzrxne3P`@^vB5+8;H!EQ@k;if^<pJ&}Qz>Vj?KDChN;c=%?4LKHIk#2UX1
ziNWKv+p5zxEYPpz)9S}70;6Ipy|TjGAXoS-%XC2j<d0O_zd+uB1wY!RljW3f>u1eY
zXAlcK*0_0oAV&&V@~;JmUPkM#tI~gb^kv}dvXW4pE*IPysV0Amdipgxl#5$uMPNcJ
zGkD~>8rXBFafqUP6RCi^Z)>MCe5&P;=l4^F8pT8Ym$x+_@O{<|<j{r}EpeX`QSKAh
zthB8}{22*(>k~AU(rE7Wi-G<TT9-byA@T4-*NafmSX`(Inj21yTc6bd-E5NUM1&s5
zF&zyK<C6wkjrW(UN^}qx-y;4q%Gcj2-e@H$M7(>3;sQ-_fF_sfvlo&7By*~9=5f6y
z;sR@g_vdSac`eqw{>uQ0L+_NxdaJ`u(mAIwbzOMC!aL;6i#UQOOy*23AB1h%Vm(@>
z!?4~X{QM(v1aj-W9~OF=BA;Sy`6C7^m>6`w79I+~Hmau2$7}>cH}^}GrObfpx%9)k
zo&dv<qBk>9p3b*PhQb)-2Y*`~3aE+(I3z#T?si2NEM3MzIjYrw?pxQ?{cJsWT-_&F
z7^4C$haOxBs#k?KO8okXT3XPzSjCdKr314f=e+CDJmb1$=t)B(bY5Bqu{8V0r(iE?
zprAtou|GbTT(a849xENzGsvfa$FWH>y1K)d=GUi|Xn~HucW*hksl1F8l+(IcT<gPX
zNaIK@9~s3X9P1@QS(kA>5p|kp-CS_(aV++q9W?}hP3U$1_z%CZ*OfOqv4OLvj}d_e
zyV$KA(+%k!dQjbpOda9e$I>6Zcj%?v#b(<F<Y~?8un(BgYB5zJzDOO|w$40^ksI@`
zYQ<6mlU@61vG4To?L+<t=ayQ$>~{A>=O;5*<ePpo?@#}*D3QV60|*4TA^)JRg$McL
zDXx?ML-*Z{AEo+wQ@NO=U#}{WT!c-J1a8x?GD6y!!gI|1)Sz}RYAcX?4%4}}sMma$
z431`mnltVQLV{VHqR$I@I3#tv)r<x4f{Ym#oE#Ui3YrPA@AY&<*2-*`@vIQBWEJtS
z-d~95nrN}#?_nnd$c9_`3up-$-Nm!JUw&g&-cNs;9%Uuu4qE2_j^H40b;m$6T6O|%
zj%)ro#X%IA)o%4}F5=1E!+lI%i&#y%5pNySCYDJloOgU+8^3h4E?^wZA0Dvfd<zWd
z!D^$H-nIIV<Bc+WlRr_uuu*y==6pFhaHNr1WS!f`77f#Q{{Gs<$K<R@e*T`tW+(IP
znodpP;bqP}d@O(QgF&RTKQe#gg%O)nS%GLC`&sY9F2fZ5(a8PK)%Yzu<2gZ3-_Al5
z|18&I$lJo^h49Y-WNc7M_g6gR2g+}!=pVZ;E(VK=>*JrYdEqaOSCME1AGAhh(GMR*
z`D;e~>k-uKP({ge=uL$%B>v5)D?#T+0dY^p!uZhs@*bP-AcY((wC!X~BcG&3MqHi}
z8`>}L(=dNLi=J-<{&;7A2y{3UL|CEql^}Pon~MxBm?_&jy9)?F%t1w(jCW$NRbP7i
zVI%`=QZr7Z$_qf$TiuxZwP@Y&tT5{{I(I!ES`<N7ECw(76_|^a*}(Hz#ao#b5lH-^
zu<q3?07D5sTUq;6;l;B-%SCBPm}M{VokyN5)e2)=HeC)p8ofy8r})5y?|N|VQ%-on
z;HG(#iv>7K1z$xM3c?vhe+r(EUwFvP#3Xys5!{tEgx=~#7hc&Fqv-o!6Bm{a{97|j
zOVrhzRaXl`+**jMSJkJ4>1qaz)2s{l`32ss*#K%{dP?NBCkHdUWGZ7w-=RdjSc&1s
z18dm*CX?gOsq(P7Fw$`PQgV2K`MYfyvcp1i?J(*5EJkUdaqtTL3NGTB*d+AtANI(A
zXYUs;Gt52@a@Kg5i<_?Ymgg&y0V{Q;jeBb!Mltey;p@Y1`1zbi952Q9G0`9AA6q<b
z!k-?fjLrT@MqsWsf+b!I#QM(nQWslx;>r1=CHEB9FqZ6NHErCagw;ZDA@h|LY^K!3
z%_fx!?%CT!&8@Fs0VV941;jY6R7ho%%sYkE$cKJljFbd&m9A6E4+TMiHd~7v<>cSl
zU+&RFyw4!|y+vLN<X=~dTdO=xNo2a2I$nOw2g4=2(Kqdx;PZ&|z5^x%4hKnIH|q(4
zRdyM#eg+fVj<50^t`Gr|;iTJEM+Bg=b$4V#PZUggtloz5{g0xvjH;sT!Z6+4-6`G8
zY)S-FKv6(N5k(|SL@`iGLIhDlDTx<Ji%>vfMg=9Ly9A`AyYYLzpR$&VqvxENdG@~V
z>k@{%+BZk;Uf}=(_4cs-aAD|>OEeGM76s)*o`+KTXm6y(>O=Wf7*5(BJsyGb#Yv5u
z2fIfZAVq~&cfOPzKAcnjt<%f}y-dvtBwtaEbJESzZHN<^DOFGXhxSbh0j&jG+4PWQ
zW!+*RLJ2IYS**&F3~-72fc(Q|UbwiW^G}q73mi%^6iRNRdD8drUmPF#Ayw2UM+Ikv
zZ%+ju1X3CR`|VV<(Qed#>qd9$VI{a?X_!Xgp$d0JQp+qcC6GK{DZH#H1@5PFcEwGE
zz(wzr=(BERuzo^C-d=?~41X78ZN?Bk?`WClaGWx*b~@!AnN~vAsp|62d&m>_EVy>>
zp(IcQW``T0e7n-JV6LT^EcgV?CVp>{2a1|WjZ7td2t9e3>ocVeWZzKRr$=*xt>>g<
z>4+ziu^{HAxg`g7x_53pmQ;a<b!Y>*qzZgO`i*L>I`HoZ`4=<9brAljth_}?f$nxV
zM?1P6G%zzhiAA~Q6R%d6&h^Lw=k1#6xDF}!=u-Zp72THy_~Jl;Ujq4Z`FJA`*F8E+
z*Kx#<3*~2{Y5jdUh|mbxI-hY4A}n}2@5wwhA@#GJ_dkAe!uN5&U%DN3V(+LPORxJB
zo)-2zA$V*Za|n7zt(minJ?-LE_)bPaj5?crp%CB19Y1B-&v}gCmQ{JbKOkPJSJ1e4
z+*LASDp8jGt^qUg;t4zdiu(p0@^9+<>cxNfd*gaGU7#Wycg8l%Qzx*9JDw)zSUzBD
z!c>N-f0yws*ZC>I1UkapjMBl|pOUDvB5|MlyoP_TyZ5=}5($ykvCg!oPE8!mdVKMg
z#2PMFIQ1<savcwRb9RL59tn6Son}~2TF3J5yOCKP*~R&vT3yl2=)u3bYh98ED!@Bz
zLQZkJjbe<M$2ZSt(-ZNxbr_edQJ+2gkf101A{KYKw5p?M2G@Mclw4@Hig$k%y&E7;
z2XCC6NZvHA;WhPH<;BQz<K4JH$AmZmmmd}D8E~v)nRiU*VT25B$KP`2*%1b+D}Q;(
zM*iTeXF7;XF*0zqnt}CXO33afIoZU|2o==hEX{6R7>|r5i&PlOMH34anGXE0&vUuL
zWQz~z87q@$QIA|CC)36E(=gsQOv>adr3ybe*>u0Amtucf$M8*KLFg|knby>lgg2B;
zXPjy`@Ng-gD)Jpp;@enY<k>QILi$##oEi@`;qEeYqRX9?kc`V2je0{xXss<K<yoV1
zk$$5)^z7gYO1`$I*=PtNGxXfA#dZ7vN43L)*m?Z+M+*lFC0Sr``6a3=Ck?u0eA^7a
z6d-Mvr7`KSGH^djZ|@L7bFkapt&u_s@ay;C-iK&^D*CqYXmv2+(g^-7dJ-%HSIk?N
z?533Al68S+J<6dMecWM-50wL&to|tPLF99}t~C+Etqc!c*XH~vRiVCh#<Lo6fO(k+
z#wcqHmd+eWym}CEiMKfRk|Y6chWv!)77Q2;t@-X77=p{2zb(1w`&E{Fhf3^=9`JEl
zyw{ULeM9{vh`*%|={G-a?bo2(waaqPEb_=nxeF{8GAY7pVf5RtH)TLw#i8}(&H?Zi
z)6e@sfp|gMgQs3{>cZgFal4PP>JXifFMRVPnuEN4`0``|;!4}34W$M5ViLN`!=#1(
za8uhaR<B<*;yNN+bJAXQxb<Gd=t@uxUQSK_;Xl4DEdMyA*<Sw;rq!>W$>-aI)%Vz(
zk_te1g7=pS`S@7@<)MdU|0Up4r3OI-V%(s1Z+@o1A8~6IY_r_VX~0kLRN~8@+>mN3
z|6eO96+zn_65ES%o;OwP@0Hx9fVZ>U;%t4}7{lC5@Hx#@Opd-iv1*zJJY_sHKOf)1
zv-{OQ|7SgmOT=(BY+vUj$aZyv=5R71PPMBeB>fx8V^kj=7~91A@gT3I_*wjLr1B{F
zhi%+JM)F0T(;6<^PQ!G5oQ8N*QSIi^_ZJV1&!W#<+{eF5q^j5@?_fU<UvO@CL_&zw
z$p~#MN`v6J)7G>Ta!|0)OxF-33^XrgMojx8V6dwCsR8l@SsF#`EqEax=Jg9V!ka{3
zttn4^El3oOnbTj9b`gOKK20kjXl_hSZ=Pu#C<+>8j2F+CazO5_lGt2leh7KId9ssF
z9Lk(K$4=J@KoJq6R=k1kKO8(ZVrVWcx&2bvms$*td{mb|+9?UcblfGS=fvPuC0&To
zWdU%*$t)>H*g&$>_?;i}LY+JMangfS3idQ@O>dftK-70{%Y`y3IDXRgFR212I{&XM
z?R&C;UqfcnT_!a5j=XI#%ft_t555TFImiwrR9!|N4syU+)M)P2C_c#V)O$#(zzrup
z_~lGCivoSRV(Rw26Tn`ruAJU-7P12Q%5y7DK~eX^cFJdGKwLQ|L@><-aYz0!zyEp$
z92P^kJK`Lnr8Q>BPtgG$3|nnj$UC9lx4NhFJtuf*oAI8y+a8>Lxw?{4x<aSyc=|2$
z^9BFMSL<#&p*?-dQRd~-&@t1^OfLv9cPg1yv+OvK|46u16?htGWSwY?-5o)yfpzHb
zSw|2tjZor!W(D_Z-|gxgKL_8x>}-S{xB%0B32v-Eoj|kW+!*V?VIb(q*&d&>LtLb{
zmR66Pz(;19_N9X}^6TaIYkWTmn~zUV-+y%mDkF%KQcb78wz}($;k-RyGGQ~y9A|)8
ztk#ra%N~N~zmR;t=nSUP7S*Db3J@)FCAQj41!%~g37xGH0WS3wL47h=_|tMjZVcr$
zOe%KRDPE!XaV$IC)kh9K1(GL_l?p*NZLMidwJZpIG*-VxiRL5%DgPCo5(Vd?x*QUe
ztDp~cT`A&MhP|(ebOqs(F#a$=Y>ZC|%=AySJ=PEhR}nr^_7Wv<zWb;qXa(JeOMaZa
z^&Nd~uK4Y=U6q4mrI)vI*rg%aJ)`3&$}?uB_PR9vLY$+mb3C5Z${^b-WY9Vx1(x7v
zwBoA-4|7Gz8lR)yi5c^+yACQ)NFP%$h$({Xrrl>5#1EC4WecZ&i+Vl1a52sA0H}v;
zKT`_Tg&P+=NDqZcL2Y1}n#Mfx)J}~Vjv44cf^f6WR}$27Gk56UMPuQ4vyicCwBjKA
z-)w%!ybe%axS3qrWdzvkcQq!5^+Ejhv+DF$=1^yPa@<MY6t2DNs9nuchr@X)+lMLD
zp<jW=F4R{Se(OINy&|FyUmF+yTr)8Q@ry?N-)jv(i=dvTPXl-|dEj!Fiazv7F|D>p
z9Dpam66JenFL{1P@<8RJ9!zd934Qrs0&QBSjS<ra5)a+GD6*;oa?(w?>}Y-kvwd$8
zlNEsE?wwDLVrua5`~aO6+LLhhQJkD>#X$NM-_KMVwD&ZUIp+RN55!~5KKbVwfCXmk
zANm~is&2Y^@18J%yUBNsF07isrx>qOtH#=>UluW$_*(<cr4MCCgv-IHXUFF%-im?m
z!OZX98Ti0HAz4MGOdT5SY_en!|MA(7#^obd4PegyF1pc*f|Mp_M)O$-*maW`t6|oH
zG`gXf^k*nvGg|h9$%Yp)-XuzJmWe_8b!Uyos|pZB9q^j-v@*>8P4giq*9N~slEICJ
z$cwXfSLE&&#8=>t*S5Apxe2F@x1-lkU+m}Agt+f|FwWql?Ggz<)9QFpMP3z1EGy-i
z>y<$uNW`>4SPN$IDJv5thOx~A8KZj?EO2OY<ug^HG<158)xR@QgnF}kzIR^J!)XtJ
zcujs%P?P7$ozIsBcg_PN<!+*&<K-Olc>?t^B$66sV^yHGP36o*1zISjS>JZQL5+NS
z6<jUZ<nZLGoPdWP8I0CzYDUGf!PG#ogC-d#h#cqm`relT#x13uem${*HJ{Im5Wy<(
zf^Bboso+Vh{{2uG*-aWq_X=h>Iz|Rh2lE>aX0Bn&N^4~s&v5+dLF4g->(r1EJTP|Q
z9XEhb;>H=o9g(y@WESulc`1!$T}j%x&|djXZmk;?TwpGZjJ{3*1DBR&4{ET$a2Qjv
zmJH$pTU}>4R<MbE)nZz%IJA#NbB#wUrqAJD4M!7FZjRsuuS)O8&7$YRwPKB=>=FFE
zjHP+ae}AxYSH%+>_a^Wdvu;P}@+o|yok{UR<Ssth_He|db`h&3eP2H-v56f#HY)d1
zqZ3auT+ZN;)&{1mhq5kckKOm@HJkW|Ci0Uq{R=5ZKH}#i+**i}5WJRk+J0FXc>Yct
z-$d{4v9Qb24W-P;3uHYZIk$xSO3mA)CbnRKH~5~Ap}DN!i+jY?C#awNaCxx`<%=%1
zWW-X18^dR|=XFDQOPJAv)y@e~3HYzuuerz*d4ep`N9KY>pq;lL6GHvj74@{Ed)H);
z&#>rSi971?yx=HeqmhQ(K<CIIK+jbp<RU+DUgEx(f6TkHgZQyGiHAv~k;f(X=)P4J
znycMkOes7p4pa^?a`TAmuDqeUXfG)TpMTy{d%`0R0c@l7b+jBX^Hnqcqs2NV`Re2q
zt*2<dv)hA0Q6}(Y58rhAZU&+k&*|kdm_caX&7@Q=Z8#Aa!pU#~pqtQI4RY3p=Q*lg
z?>%%;kNtzOxP}qL_I;nc<)Q~BCKb|OVh!O2ZR7E%qsQS$V`pdmq8ZeX2RW6ab61=F
z!Lzap2LW?=HCL;QxZAsjt5XrbBWT}EsUX4#Xkr5wYLJfzuUnEcj8Xyo<^gx7N@X~(
zP;=TmUIp%q`4`W(7(;PZV}3xp1;l?eo7Db(6w1xTkCC$4fK)b~IMS{TZ)s(m&LDoW
zf&`_g>R;q}oB2;5wHx`C6?yfdkOyP-XQayc54s@DO#6FWPY06exYv4H48b{WK=#oh
zI%l2O`L9Y?4Y+#huAZQ$hKA0<qS~1i{E2(q(-L8FLThHQ%9U;v_t7nc@vIK)%w3?P
z9b_eZSuaJ43D6P4N_pRhnn{SEpk1mhCr;w7F2w}vA5Ovx{(C{>kr81Y<Q)-jnTd%@
zm%e7dW+Ec{e4Z$2@)P$z|EBO%6ea%S7@B$OJcfU1CV$u@N=AJ9@?5hqco8R8P18^F
zrzhAs3Yij*lM!FVeB+I*mhn=0HCddOnaHaTYBkJeA!5z*`Tmr#5F$P*A0V8E5a4aj
z%xj<|Sey-Bc^0qYq&3lb0o|;`=n?n727ENcSf*0Vlr%5FGn!?rOoe(Bst-(=dl?Cu
zOL-&g9V0l)!4ouVDXaw8F3h|c<s&5M6LXG-2trR>sCvaP;#)n6CtlO?0HLAWrWwtO
z#5Wg~JybSvUz5q{e<+`EnyjxsT2~$<3Y~1ZjL4x;vG?uPVKF#NOF4D*yf936vV4}f
zDGKLFZ9mSw`u|?NoW>QM#~t!#PMRYU@ZDUy{9ovtJba;J?W36#lz4p&oLZj7g@*14
z7FAFZR?l>NKYT_$_Sj$alAe4-UhwV2ut`=}A>U+b8Dk}SX~s!;zR?r;S(dL31drga
zJ`){RRQ_QeKhvab=LEpx!lXopXg{7g+Hscs5j!E`;8Z@@#Yqe)4<zT>Nf7IvV>_&d
zypa6NdtQ-B61dMk<daSnC7d|NUbhWT;I+-|Vo$P2iOpK}%1-Trka|WtR52XjL9&|2
zriL!K2{FiIpd7>Ge2ay(ye24htKZH>xt%4;#o=ZrU1$_Ae09he1EcJao9_kzJ{|pP
z7usY1>5X(5p^oT#_dRTa9dUs-X4)<_-9qP{_#dI^qyWdX4?DjoGJw3eH-}9xnSm9J
zb?KRXOIWeC?aGxgfQ$L@-H*>{gUJ2Xzd?NZu$eqvlfkJE$8Rh(7;|ZX`Z<~4L!bv#
z@|O9X9qPc-$hLM$RvT>V^td@9kiUEm8w+F71j>?!$-AGC58Yp+o~%R}GJij6zv`_4
z`YrKI|HY^QNvqk9lr9~x2%Ss$%BKZvFDE-aAE*J<(c{;mbJZb;(8CgF#_%&?M=EWb
zC-GbT(f_vIt>8cG-iXnPOyVRR74Bzq7qD0wu5UI+wy~jNfw}l(lK=OxHTkS);5&4M
zTv1uV@TqIJj}wTyMe6pHi;o^YxY?9@KA{B7IOp<+&$Phhz1jXxvmaM19N$~=TfwxM
zb*S$YGQqv0FOF|E(x80{{Z|e9Rcv8gA>;I&MJzZ}SG8P+8r}vKpL7f02d80$*S3hG
z*Yci=ByOq{S0FmuY?E1FHeEf+{tG#LUW_?OiS}#fDY*RJP}70!CrXvpY!>*m=`Gso
zKm}_I@=>xwEO5GISLf(k7NA@&yl1|R@~$;j4q_+=<j5KBbOqx8YZ6@%l{cJFuxKG~
zg8ZGr>*X!dw#wi$bj$2L+9Pyu;`H0Kitx74yu(lraYCQ81Y9yhoD37eiT_MhK&tQ8
z<MxdMU~pi%sD4-q{$sj2<1d1IN_{0I4ArO?`cz2X^S%OHPN}~u{8|+bpKmP{uHy%*
zex|dcj|3pWN#>l&do`#%QLIMgqzDG{6%0Gk$`I|5*%hOv3Q14z-#=t62dOdpf0fhK
zpx48zVjAU${Q^$0zx*Tv*<%%7-j|EOCcTI6zJMf5cqnCDyrc{!?hC(F)>MH_J=0YS
z?M;R^^+pWh<l#bq&8zrwRk*d*ddIyOadC8CoeC*7gkOi~GjF@-!X<l#mXHMWoOV##
z!(#yPu7OWw!%+`$x7`f}j~GDDplu|{3V<bccQ1znfNzIU!qmzTlEh;Ok!f|9Id9k)
zFRcz*<?R)JQE%N;F{LqjL=kR|UZNo9QU+m_&r31Py6`96S1ra*1;$1_lItF7g5*e9
zeCiz~Fcx;a-Zm)*iGv@5FHf2QHQQIei^c#E4;-)%9poADuuKF?Q|Odww&HmTpevnN
zSLtp7y6HXd+3Jj-miBM!N~kehJITl1D~xy%VhwGzx&ViUx31M5(1GB`J~q6ST0lOy
z=p_@X4hh+3#5woT-bmF)qt#UlQc3p|egD&j_r?XA9+%a@W1S(il|cs{1=@#sm8gNZ
zD@>j~pak4>H6B~4b$B{=G*`C~%JZ_&rRn;xf*IK?V_Rz{Ua=(dqLFG9iPUagT8u_s
z-V0ieF<Ud(kz*BPnrWm&<Aj~tm%b&O@A}j=r>ivJO6#9Tes~`{G4sGCDwG*kLztdf
zMZd+G|1EGSq5R&<%DqFS=Dd*e<HYd$*`N5*)t`qpk1b=R>zvKi!5diGgL#>-!_36(
zPx600i>zTCq75m->eO(6^Fd^`5fxOGHlCcm)`s&bXnFO%TEToq?SfNLn?Eq4GvV1a
zQV_Y8@W`mM1FLO_ZLQ$oB;LInjaNx-!hd(`RUW@4Lu@NtWc#z&i&0uX{`Xy<g803n
zN&aAI8UI=#;rh*#gJ2bP2|bWTNyLTg$46VUz+|=eWn79H{(S$qcJKTQ{>g~PW6XaA
ze>E6?j%9!Yj97n+?OhdxtUotLtM2kZ@YvVS78H!Y663!;OUnga&pQO{5NFcsshIbO
zr6d%(`7V{lvBOKX?o-*{*x{JvYxzTV$m1B(QE+!a1V&U8p2xCpVMXzm-b7o>V|wZa
z-?j?dF~7<(c8VQd#LK%Z=~>PPVdlan1`agHhfb+_;^iXtWb{??u0JcB6x{QjnMC_}
z(#68XlU%SnaaiQLq5zmv7aH1_pn1BY@%@I&bfA|Tx^*1u!n%5|KYg=QgB{Y7R^sME
za|gdmM=5?V!~RR^-=B}N0u!y6J<TR5Sec3?o<egJMX@Et{1L=Ovwj$=nXLqts+@Ol
z8)@*SURC{w=F+Oy-(F03tqmrn{CZWmHt1+f6%1FZ1H}=$rD>G=j(-39P#wyFYE9nY
zw#-w5>X+%KKi|}Wv%l07nGtW1!(?XDbw>?2pZTRH@T<Z7DG)i>4R9`0qWVvo4(MA{
ziQa##1I!L%&Q`c4hzNZ-<a|U2iu^1i>7q4}r}HpR@2DZvyguJxH>m})Nzq|9hO{7}
zp~w7TiVnn`5#<r#(*<^#>pr}5Mqo4Q6kH~53U4X`3Jk3dLRELd+fyiyWUnYD+ghOk
z0Sw2p$6Am#mLx(-&>29l6XVrCuLTzpza9RJ{=A0yKN@E?0Uocmf_>zls#!iRus*ql
zH{D7@`l<>1t?7zy_iIYxC0nI;(2W^fPv9#b#|u(|@!Hvi1Cwl^sPEX)LCysp;q{$g
z){(c|L2~?}6e~zBZF9XiJdR1M%w_pda)TAo>V5DS9jM~6!>2jWUN+nI*Qbb2SbWXX
zZxI4K;HTDP_Ar0~2!X{Q(syETM&cN01CJ=I*61<P^7F#m{+`Y}sc(2my>s11cjUK3
z)amTXP5e`ruAf9)E|%LL7I0^+8hfoUS)lDxi{JL{kfx$$BBo#X<a@tlAh_d<kDegN
z3Ai(P$?_LDoG3m0UxNcFp~rl)XWy6y^=4E06{@L-U`x#3+P59Mmc?t_;_?^2V1lX1
zd9uQo=qRfp;>>1fyi=aqCxOAl;1QS4DAyt5cHA0ybDg4D*wn{p2~tTxF}vIuJW$Rh
z`)E!V-gJIY?zSNXoWovM74uON>SyKe3<3w(E0_ddc(sf5h<s-HEyN69VEeu%X9f?s
z_;j8O-EVbnOU&E*a}xqrRm;L&vk`UAzw2!8Qv!wKsfeulbxb(b=<!MzJ#1Z_oz27;
z2-(EpE232e7^l^iXwfDcarV`v3JvicOgE_D=b_^$Um5XQMe#c+!SqUW{)8tfbiAtg
zT7u@-?vCE>+Sj>>#xLHEh9CKeuCZ2KvKk5^Dl>X3-BXYd;getHeM(1M54mNP`jrcU
z4GvHQ=~BY&6vIwhbl&+Gm|D?BZve;cQmhX+8$feu<J00feFzd1y*62fIB;h=4-)rv
zV8B@+d4~txhs6)SpF#JFcfF3vF~@X(CGXiGQ*_Qa-;-2#qeKfL-7fQo<`@H8S23me
zIV0E<;NNSZ)rBsm^|bUF6O^m=7i?dY1qQdXBTvXwV4lMyu@FPN$A0S8wE=x_c6`@e
zhP=}*w_XV8-`9Y?Ct@`>Z|Fk&cDY7Bnx}YVsmb|V)q!i92bXp(BmVIEi-z2Ibf0{(
zGTMXYFF!K5Cuq@gWGF-D2bz;w;LT!fL8Gn(iHibfD$w6|>1TASZPkYREb_gRm(+n{
zHzGsDN(-_aO4omABVXm8UuQMG4&Z}nO*d(C8u3K?<qh}vU5s?LMDdh)EB-*_aME#X
z7~fZC=lV8I30ic0F;3o8u(ih+M2h<N!g31VeNq2DLfy)1+hrDup!m<M5olp;`&8+(
z6>5+iT)A(=K@S&s?Ri9}$-sB?(dnD1lu#ZR5}9keiAnKaK6F-s30jie%7(v9U`AUs
z#@88EG2T-$ou^3luzO|H7mEzHu*IeXV@Z25cxLOzueQMeF0(OZ8Jl$&wTJ({FUKmj
zS%0UF>c$FIJ<xk)?IE)DviJCI#I9l$#%C%|J8fZR4Tm!GVrf8*g6{iwIuf`q=i9%p
zO$w(1ti~6O2;8Yp!)r>M66I)A`dqwfFy4+VYH3gbvE?r-sy?cqL_W|()+i5)bN9lU
zDAa+HJ&3jOuR0j6=bH%5$-;BU^ms3z2J0)W4IDG*d8|*JR;*YJnmD#?a2E6&t?!(B
z<evh}=4h6#c_W{Dt5DomeKcQMOrw5@o(KQzkUjsjrwW%2$k^u%NI+%5H8zXm62LV2
zPnuB@?P(8f{8ElWIo8`91^Fk*V5m!Zg4cl$j(9d@nxlMHYmRKWvxO8Kf6{bD(VHK{
z4TT;JE3m<}4URzDt0<>^)4%Lzy(okjdaHc-CI*|A&szNmlmn5HAsqu(<a@Vzw^)mE
znh?bIH>e9ew|dw-teKUCE|z_LXPg(5r`^lrGo@j%BArLUUl?ZUePwIk(Ey1}!tW|i
z9vEkgn6!V5dga_y&DqFr(=^}pF02jtdj4@6kJ7Us4n+2^vu6<pQ1!MJSs?OlGuWoT
zTc81zesj&^7Mqxpgzr|w^&PA)Tl!0SHzT~uuadr$zz3W}e@ThSD*oE**4$t893G<7
zZW5fu4by>z^bLW?&t=gcQ0Rxe^f4)t1LtLd;_r`RX`-UwEj{X@z{Lmq+QP4y(Hw}p
zLTXF;BOCnmb=#ph#}8U|FZ`(w^23hO(>?1t8F1q+zIqb*UOtAtGW1j90RH9Hw$^b`
zIC|vyU}y&oyqT%&eX-96b3x^<y_QsPvUn62d3izNw%H-Z|74*cUuSUU6ARJv-T!Be
zAr&zxkg=1}#79i7|C>6(N<*lNvR03}(h^d6hmu`RRbzK88#7W6k6IyqCZ|_z3}q(H
z{bZ4#AWlDbX8pD{hp#1L^!3^d#7~<$)E0wF_>6^}dUz-mFp@`ndO^hq$H<7##~oC}
zf&KFQ^e%3qzqpeSW91@>j_vKKwr}CJoJ^CUE?;oJM;1@Hf0Ltr;^?my6>h@5ex2x;
zZ^uu<5se@ZI^vjTC;#bdWDvaUk?K)P2mcy}>a-Zx3HJ|PrtG~UgzG?;NB9LQf+@1I
z(!OdL-6vv_vTZpD_T{Ph``5PdbY2x}F3C<jdCfroYv&&RZ&&oGM?M?Tts2f;8a#-9
zJXq$Fms5l9KB6ThdGiUQBo}Gue1x9oJWl_UoZ}|S1XhNF(Ox*R@_i7w{u?ZOE%}fC
zM+OLI<$CH~%?8ZZBJ?Iw$q7TA{L(kSwlEWye$1&J{d+$5>0Lv)7LFTTJ5`O$V3_tf
zI<#*e7p9qgm{B{54V8Js$uZFo<kKcGUdu~3)?GHW*2)4zQ+Vkdx^CqbC;eEdn#OE3
zirx*kBTk4>r`)4Y6L=j*>)cG)27Wkphds@d1?tI8+|tDM@JLHukF$@tptygCsqjlP
zo^bD?g=icD1ikAd1o(ttIo6bHX_Oh%dJHI^q8y4~`Gj<b&KTZfW6ri?jQUAwdof$5
z+2D?GAT}Gjh~MRSFt|6Z0jDm`kCw+O0L9l4;fEoTa5i5yL3k47_B!57NU^KJ$#nq<
z<9P!R`(2ged{G^i#;e5~l@uYm;%R-$Ia&B3roN0LZmgGe@0ZaS4LIWCQjw4^4+pv^
z>=h6vG41#?C^ew{#>Jr?oit5gQxcXmnnAoFk(p#~MuZ1>cy^&yUJG6*Ymp_D9|V@b
z_LFB;FgRN`XWKG{<`nwZrAkzdp=Rg6YRzv$I9U3_m%j~zS}U9Lt7K-7RNN$~JcYbS
zQM0_+(fZKDbCu%BK{eps<dGFF1z=}!Sm$2X0tc#(G}T1_7qlNN7H^sW%_%?A7;___
z^kQ`S+p7&L^88B+1%`0gEWPjSvsKJkBPmYAhY_9oq$B+G=;5cT|HgvdDn^_ed%!8q
z2}6_rxLyjjW2{Q&)`}RGvHQ$13t9J8uuJm(ep}+J_;c_1&~wUE5bkR!^`M!CNJ&n1
z+nQ*?Ulwc0Z{DRKR7jLY&QFpMe1l`pIjPV*`OIZW4L{@|s;Lyci25(DPBC1u3={&o
z<WAkEnSyX*+Uc+^H{#!nWn`$oU;|&_+8rJz4tRM*UHim8LC`C7&7{p2fH&j3PYzPC
zLezuZA0O>dzQRGPWrmp(h(ROqwlmZ~{y=AXKaUQ~6DBU&S5m>;ebwIV2MgG&_i$qe
z;)5sdCm25Z(S^Og?ql57&Iko<|8+P`F+fCu_J;m9R_MK%#5_<f2PBt;V;|-sKYeCB
z$04*|5UWamIEi=x8MC%8xKkxSM2pws(@k}dH9KKDWv2vF!Ly|YqU1pH=jfij2Fk(2
zFw0#&%>^L`v+gfaNr1t=+xrGiG^fy6^SLpO=G8B474>qY;Ch_Wp_NG$Ftr_VXH-Br
z82Q)CK6m-S**D{7<eDM`JpM7b{6ik>zlp|F{SktAp3LefUm?ix+)9%vIsi4fpZo1o
zB;j+Zp_m-XVc$F^yS~IE0Vd?3m-bMuB}<9il$=%>a$LPw`-CK6Zf8&DRWkB1bJ}u$
zLgzQFs;;r?WHNBeAyn)y;_vA-jC}uhN)A#Uq0XtLItZnge2CjufWL0Nq0(9k;9FI7
zW<5t8f@3BXin`R{kkhOy+i6Wuev*G-dk5`{vm@qX1I3{H)JF~7cQO!owe5Ef+K1h&
z>aF{IMG>edCj8%zi$m=b3FhrAF7Vl*)>8Z+173$Bvls{&prKi<cdZoy#Sd)vW=*9b
z{mcWNlcH!J_D`CDkx3QSNkd<HzmSEL+GFB2LmFWHi`2oi;Q)L-aw<jgh9+e5vy#kN
zBTr~!6kV>JGHA?r2C5=o;@1LED++1}Xk?=l$_|%?4}z;%V~$dABjW+>>F?4oT)Y=?
zAV3lx-wIYaJ}m{~g}2=^ek*`Vv#ig+vJ5yr9Ozw?l7~`JqFC;;C|tJJli4d>#9lCS
zn}!OKfaus&&0BiNpLOzGg_`I-<{GV=lD#v9?RxyABe^98!KyGzZ6OO<M(-kw|H{Gl
zp!(mOSLC3KLzG(h8#DCkSM$AI5=IL!{U9mSW5ZkgO6<|TLz74v6!bzI+P9v4lUIa6
zk+tPQ!4Ebl${nA3g}4^)jx99vhmeEhqrEmqYGL^JTK9y*GAA_91nxC{5`)v~A6AR|
z$q5o3;@JBi|FFBv0@d8VhB5KvcYBHXo!Ez~^hL`GyO_<`N&ClYEU+LLpJyvT1(g-s
zte;5Au<LsVtC#y?v1?+{hgPnOLX@B4OU7<tp!oA>=C!XFsQnROjk6_%{L9b6u6Z-T
z*J$k?%SUJr>~&tiCP@Y~eq|SBu!)1G{jaE%MrjaG_Y@qNJ^(>ILdFx%6u|BJbx-vQ
z^!~VCH8ev!G@<qBjvsH3H=OLi*_Bp#a3B>l#cgC^WYA|RU{n^mD~(X1PzI{Re0@f(
z(C6dgU4vC-UU+gO`R-#G#A7>Wqk39E4Di(XB#C9j+g_%<{9!`~hT`d)0udulZ&%79
zRZj{kn^Y;xW)PRpyWm`_0YBul`bQQZuGa&PLMatp9!Pq5qhqI70>(~-zrMbS@}>Oy
z*~V7l;571wBntHkUJT}h?63e_Ct-N;Gg<+T=?Ba{h}VQYt*r{`Pg)>)+(YjK^1+X_
z(D2OcBEE;yv4fH=$j7Dpv1JJDpMNk%A5zRQ1?$Z|)fJSd4s@X#v<?DTa<%3%oz;P=
z;Lx=ZbrX;Z2)SJ1Y6^~7J*@rF=J4u4)2K!CA=rC+*DSc*6pCfVDn%b7&cmlN|5skd
za5;5DYIq6&o6hIj^)QF>y^eO#Y-8|ik+-o%=a^!0FaMD%CLn5^VH>ol0cU69Tonb>
zVau7#@>HQF?9j1}%YQ{2|GQ~xrOF3k?!<*&+X*vp`O5mW>phy&*Yy;#ywrwxnU5@7
z>AGN~@W7PKMje<3Yd8}#4WQ$!pG39}ntPveqBMA*4PKINMjy{(z-4DoU$BY1>B+xR
zs=~B^Pm4Zkuv-J=xFu4Kp5DQFK9=;}@$bVsCE^YrC!50C`(FOxv?L`KB;J|0l8s^(
zFVYVu4<R1#Ctitd)CZ$=j2rkuzK&fSEG(Bcp#&k)2{!87e^|M9H;?DhJ?!S$dtoN=
z0+4!HqUTsRCsYK#?-5Bsy$BnT^s23GOor}O)=&yJ<aYV3UZ&uHaO%W7YDH4`BKacD
zB#sV(RW9uooTfy4W5M%ZCIsM>XGY03>YEP!JYDEu#1F%doT+b#Nx+GHJ^{UdoN&U`
zH|WxRelU)6J>WUa4|^XiIct~&(4LT-+iP182tU!4Uk&wG!BT620Q#IBE0XkmQ;c5U
z3ZIqEM^?ChLB(-_f)=!AR1Rpfl0sq0p(~^Tny_j<M7HTg3r&4u5{p)JKr`6GQxS-K
zKH<x3TZ@K}>s|PPOz{scBW*4exl2MUsrSBjjT^>T=Kluhy`Urn9Q~f9YV#0PX@uev
z!w#%Xa!uGUl#w9K)@{&eU&3x?{OR?oph4$#F*>t4ZsK-Cn5fW|?>MP%>6Itr3wX<R
zSr6|aegc1Ne_P3ujUe4CSU!OAQDl>pe_4Y#VR+|=@!_s|{NDC8mCa*P;21Y<qZCn#
zZ>@ICd(iNKYN_I72V)ViKL5MEYMUAH6|Jq-o^9aw^n&!vPa*!lK3N*4Iv1hdp+zaj
zfcD@4je#WJ*&(N%T8}34H!ipr!|dYJj4R&>s~0ap`B9qXTUlWW@YyCiaJ(J)q#s3S
z<B6J}VsW%OMqL}e95wPQR#gWUU2DTucTL#L(>rVTK?RINjr!(oRH6IIO_4l$b;y4>
z*x!+h_Qf_&Oy&u7s135D*E+2Wj1FTl?8x_0;}{@wrU`kNFIh4ClhK6O9(qkr2gHxO
zH@;alt_t^VVSgRZD8t&tbMkp}3NTcZE*ciD1q#|JDqimoKsNa^staZ+AZuPJ?(jez
zIxozbRUjTD$;-#gpKmIIVL?v+KDQcZe3O0CDXj_37mSa3J8Ho50QI%==zh~-c$X<#
z5X~)i&kHlPr~o+xx{09gSrH9;Xu(%?@b5F4d+|;S{@v-jQO%+b&yDg+L*u!KcFN;d
z{n<H)7SDA}FZtiNZM1Ryh%VwFtdne9Vi>`X40V18VWJ=`?J6P<vCZJd{24b$EvN9-
z)UR!SguC$idwNJF$cwy6&)UW<X7Fa!tVDjvMJ%jONbWi7FfP<P%9WC~iEo6de{L;W
z#4d2#P-aT6;(Nbl_KY?<@zhWIIG!pD)$$LMUY}wGceik*s}iiRcS`Nag+XfA2=Z*r
zaU8(9v#&f#o*%@o|Kz>?vz`HJOr%@Bhp>Uiry-8-5oE;Anr#m~9X2FHIQ*?xl>usz
zANc1G4-BxRE57kUyi>uES5z&7SnisblO@X*R{JIRVstSVY;(ype_$7Zc+vIKg%ij(
z$f03Syn_74UQ<B{vM9G==hOD%xHMeQo1Zl9Rs>tI?J*rRKVl;-NPmvFHSE^IuNk$~
zVBha3JJ(BPDC149H~y#y!Ai9LGAO@vV7)0L#Yz%t9rMSv-z&p?y`Bdp5~^T0Y@^pB
zrv%^E{numlR6s*ReDUyYF}P@?MiTo<1)8{WGr9ZG?=P(&T*DAgU@~bp4{<rHzSuN&
zPe{VDg%gQLvJ!-ja@zgAt^&VKOQrlLqzO4&ug>2xRfUHq7|ysHlSlba&g#1FN^td`
z$Xg|I8K~r#er$eC9wLwGc;YB`;~I{ibVd9r5z^LRJ2cl;COvSi5xvgxi~NUk?A3v0
zVkv4!MhSQok}D6!auO<+`dZ`PkPx3LaysvKp+2PH%<Bu3d-y~}yT;;kQsRW#`2Ej{
zC|77(ajs5G7G``%Y-UBJ;Th49^9Sv%r1$qsZhw%2-m?+Eb)pd0<8eA(WhoAlW~PO|
z4k$p*`_#1N0yXG@?bW1bsMmMCA)335988u*&b~=OMW*P~$@^*auqt>VAo|uK_N*uI
zXt4`5_#OW(^HYQm^n|Zu26}P9)pr#PXf6rg#@lj@)~H}7e~$F90X^_}OIsP`@I%7E
zva<uoGkUgP{UYo9FPy%?^JKhCJ$_iPTUEiJ4yRZ7sWf?`4Zq0kR4|=8gqx(%g?%31
z!TrPjuCB+B6QP-@QSHX9cy7bW)(1TX&=HKcH$wbj1~<V=*>iuekz;{sEJcX3v6R~N
zV~d>#Pit#Dt;h(2HBBsU3;tnI4N>G~7k9DI5%uhO+5z17;Q^B4fBxZi%GU_az)dWQ
zoAu~wAqC;_y`lVD>;nEwB&Skzvm0;oyFK>y#6IpUc3D-{PY?!9F7-V)NdXVZwDsm^
z=%L|5@yhbcY3za1DT}=DE?l;e+oR2z0ciF-gQ`!`z=N6HMw<M2{9xL4>|TEgw($OG
zZ6MPWrtd3rc^$;T_s<8pKfQ=6;7t{C?GZPOF#UeCYcB<TAzSPdkE9{v=}^H#lnZ;a
z+jM~L0O|##=cP~H5rL}~l8?&(`5mp2il%uG*M9gy{Lt(^-e1H_7Jd}%jp#3v$bQ<v
z8`(YTg-||S-}{P5cghOBKL3T0y^)KM+&wG9!OTPSKeIcA8?h5jr%%+Saqtm#S(MuK
zgB--<d=bU&VRpjk8cnsg4=*9?YE;HH%}3DEovBpc<s=TioV_*4$4T6~OHo;cBVGz$
zk?1dOCL-vX#i1M30z`AvgX=m2LWHMvvPmmF9r0sJRyd1?mY8-P4!CrXhA7(g-Q`H+
zAp$y|I=?^8O+5CE7o8oYBE*k$?KzaQ5vQ!r78#Rn;G{nM*Dj{95~-WBr+RXkh=Phc
z!dDCsFGj7Sr-_T2IMaHL>^Yjh7m9{)a}}fOX8rafMoM<V**7feP8b^j7yM3Ule0l$
zNR-ETPBXTF-F{9#xrr%i{~j_whd3@0V=5Z*>lnxP4S|E*=)SJJ_?;8wWz@PvOg#L5
z;~~6_x0)kXu~`w9YvX918kd{*-?;{qgD-op%>H8xD{kq~Piz{-@b$ob6KX1mlr2-R
ze%6XTq^T*;6BdAi(`5HZkf%7|IZ?OWyo%90K2kknvWOjs_$VCvmmW4YGjCm$M_#HI
zN-IO3$MDez3H=ktf8mZ#HZ<%|Z>L>=<*ii}DX{IS>G=MVLp@mkfZJxs*JU{VQg)jH
zxKF;g!51I|zs4I~_iZ_$Qt=#hthOX9)fkS<2Xmu+;)A94oIK#b)>xVOR0K3bmTD+I
zATMMDo1TO^7d#XgP#PLxfi^pW%-EV9($8O!{zJxyybBqg?^Nl5V#?8f;SZV@@{(s{
zO`-l$<y8t*<e3YooZ}W|VujPU^C(gXDiBkQeO97J1DxysO{y)^z%P+=zf={u0jf)$
zZ1FNdtBC!pvy5!;zV_lR9!)XO^?dGkcSZ#H$*A+9ese-U+fn|6uR?I-%_XN-{37uB
z;o<j#EFzE@l~Z@#nir^6EX+nyg<wR1G@())alNF;=*Mq~z}>OocbCQXvGX@tN~WhN
zAztvU#UVc`=(CsI^vR(FfBD=(`5gw}?>}KxXU+;rLp+~o5tp%Dl{Z=74+l7i{ufcn
z%>^CwPX&)lp<cw*R~awz5wBrriKjk~h47KoD>=E$P5iyT6R94}LfpT~ixNnj#Qu+y
zs&9_1;*&n(j6sc*C?CbsW{vm|zFLdV+nz1s1p{s*FUyzlp+{R+OAE<~l8~{X&s(H~
zo%_UHa+G)C`c$VcB)W|YSKQ1q9%#ps?Bpgmf1{!1v9lL~1~&0K_JM)d!pVrulZ>va
zLH*d@OT)DmF(dd}feDV+xy*!roXoJ(Q&Qqbt@D^5#zq{=v=+A)qar$QbG?%gWFdTQ
z*_9R+xA5TBsN(*}4cx2w#ZXrDF8($sVl!B80UxXDe}5kNWYuR`<G8%)G1cZ}Uca1m
zd?Yiakm}YFZWs9~@!9(c>|`KCUQ%p7zF-mmE$Tj+zuJt`UFN3*w+H(r#;E5qIv02B
zK)^pNQt-#EuzO@+W{6!-EhB^HkvH#=ijaUdqoY;GuPMy)kl;TH)azutv-a|4^boG4
z>Pq|6jUEn%vmdD~>BQ;GzlU`U?_$q`eeNdpY+^L$M65+}r!neXqbce8OfcryJeRz`
zi|KecW!wHYh(#rD`VU_xg^v+>zq{TpVPPtK;~qRz;A&T(+9<{cCf9@<2Tqd1)NH%x
ziI5d6_o~L<F&Z-95IG#Q_eBJ1S2td`Eo5Mv%LR$1Iu!8v;<TDr0xNNn@;}4<)CKI~
zIgd&9e0o@)bdQY`Vu7FCUDGx619<cuTZ3Mw1-xXReeCD;_jvzWP~Y(>4$z{E6t?1F
z0y3X34;0KOq2tNDs?}<K_`oou>6pO<&zF>Y=sS?-F_(EuNuCunPUbD>T;+xjd+m>N
z>p3ByYKpBDea>lpW?I$T8Q{a`NU<j*JfN@_%EQ~p0xbS^-@NmXcZmPhb8QLq`{FLl
zwxIKkkC!TByypT{y{I`8B^D66`y*3{6kP}M1%FiBV}zL-K38L=IpLaR=2eDHHVChM
z+H6t9jnXO3sj2Hcp!2NOt1N{D*xxPtw4nQzJ8#N>C*l@H(k^&7P;x+N#D%8k18i_k
zWQ_gJ77O?u{+jx|V;d`{%8#koLHxwgHuYu?dMIHF-%TH8hM(J~ze*!+Pt|87p6x%Z
z#MjUZiIFVqM5vF<*-yYhT)i84(EA@XAswSjwM|eE!puFLNi>uMMc<Fs5BB85!{<-r
zhfQdSB3ZNB3AzioZd8L)Ve1U;Xd&i69l%7`b`-pBv|}eGD+uk&rPRbgRj^f45j_#Y
z6%g*(OG_jZ0!$)xti(*vUn?PBE}~fArPwgRN*t9-_)T3*N3fMU?=7lQ5KemBe|>`}
ziI8HA2gk>L<BwE}KYWwtB(AW&z7l@|y*|lEL!K!P!gKgM<A4zjflm1D&D3<n>%@h(
zPKdAE_bor9b&iwJSGsYuP?>>n)f$iYJG6*JHwN=(-9~$i#;$Lw5_AOVmkU(2HpuJj
z6nS#ln4Hj`UgP}_^{1X3i2XOZnTa2*wj*z89KmX2Y%OvO<1puyhKKeSS23vv7=_mD
zI_$Fiv3d6k>$q_1eOocNCG0)VFXGgd4(yOOV_Tx_FeY1)`6Y^hlsNRV|J4oDyEXeN
z{L{gI4?nH;_sSi%F`S=o+c=KnA8z^F;=hou6PWj}>?tcoGGguJw$<CFX?#yzrF2nf
z5nCyUy4%u82Z26|LfyJ#M45>1H-Q7YxO`jl>qpyrcuPlA0Ev7*c6N_lLN$Ss2wSN>
zwlckn_4kXPIm62Vb+KYv3cfrLf2dn4?=Cm^ZA>d%Dx-v1t?N2cu9Q&9`I1tjjR`dE
zV$5zwFJj`9JVs>s?U=Go<&C;(Dp;<4Yj9Ma0+K>>IBWOF3AVb^SDq&9<0)qRO$j>x
zaGIAlBG1qL!zLIr?(;FTLo=@~*D&K6#?#Yhrld^*OnZOdC%jm~_8nE*m($X)Ho@x)
zJrDn3x|Z|5wpl45NmlTVbId<%CwHyq%wcNCI`m9=QJMv=+U;wzoI&1>+g(~WE($<z
z?jvgB2OL0~8^*!B$qF_LTjFWO43NZNm%-J~4?+A7UY!i(2A!jxw=$U-VXW>lFJZ@q
zJak>ZtSC6amIO0TX+k~DH^FSWAIQLT(Mx0DE<2<j9Hc2j*E?0=b*JPztbmtqKF0X@
zLC|~gwyOpYu$*7OSJXM+^S;CQ;$1d~uMKj){F(!9#OmIgp<TnmEvsFAkCGFYZv^HG
z)p8RxRWI_6htUxWFSbgT`<V!weecAessvGxB=zx^h7dt6S>?^FB1(ua9I<<SkdNT?
z)Zc#_O-HQl4#_0N3lg)&PJafU(i0bN*X5#R2%#?DdPn{|4e@)Gg5IH)hj6NVXjJ)j
z7l)?8>T-W};%TjU*YG_WLUv!aipzqM=suG4L-{TVaoE!IYfKgup&`N5Jo$~2FmMzP
zj`AWWd_-BN>59;KC84TBl#-eV4j59)DJ4OBw5DzRCO1)-A}TaY%SlvwOCGuPlACBz
z9&+TRWhAZzw)(x)W+kc*#3i{V@8G3MN3;WYDT&8r=a$va{ln!nN=-TSsEIgle^#FN
zn($lWd}FhcG&C5JCr@wcLH~9ff6{Ly<Ub5G(L}l4TWNIhnoR73@$cev{z9~GvmWM=
z;btY=BbsO;>A8ufrDi`J{eKvTkk{l-Zc##5<holCJ2#PE&RMlow~D7q2Mi{ru@G0C
zgKjKdXCY=sy{meXNr)qN3%LElSqWE-&?s}aYD{IOB&TzRmGBDv89X7rjjOp;8mGCE
z5kCfcCHRC8Upm~~-o^SqTrAU0))jiOS6$@qPZ`eQVWF)HbVedXX<GY+TFDl^nA`OJ
zzeOIRYh6TYhKiGrIR7m6Ihq$-k9bm)pUg=(j4wyNs%0UvCyY5{>uHHTr+%7=!clyH
zV*F!{F`66so*2KwyotLV>3$cPK8ZJWzdKIpvxtX|ncsdf*NEj=)AM>vP(qyzRC6H?
z?{Ax!0Lvn2aK2MMMaPLeNGW$bPP8E|q=YY{o;x+P`Q1{j(&dE@qrqCFspHr+_T1#w
zfM2*XV>rX63<+dL{w)p~+Q*oNjrdnkAH_(IQuxMIaWM6c5q)_=656-_Jyk*;>Is*E
zHP(I}5N&UM%ju&4K2NKoJRTvB&}wD)y+m1P8VKkPw-Epto)0|jJ^X-~pB2?YJh{Hk
zBN}|u%uqg+|91HaE4*rz{qvlc8y+^D*$i$Whv)-`-|{*OLTa{3>>1?qiMS#u^XH}j
zaPFpLnDz=lUh;PBlSy`%nt(a;Bo4yeBjxM2S9}D=(4|oaX?CK+yn33PhmY8c*D+~J
zWF)q3{7Uj)+r;&S=NK!mP!V5l+_mGCS;zf)Yz==OnZ;HXghSqqui+<elnF@wW*}mv
z1bGy=#_-jpwxbDt``A(K^vbETltlaU$PLa9d-$8>XN=Csudv<g+H%>QnMhA|tNK>3
zg(tl;9Cs<$!>!93W*dIc5aQoXL|-MNAr{*+4%ru>bE#j#AHG-21pl@4$0AYa`^4+L
z$iRj6)tB;D4F~^X+iye7ye27$#&0dBj<JyuhJ^>2^mfPzVb$mK#=?6z$x2`-#mqjQ
za6%$~wjJfBZZfm}csPsKZc*V%4%Jw1&(T{XI~(|~*+7cyM;Z{DG5cf`&6__7Zav%c
zz+lwk+&V3{HmGcvT@>3kfQCQ9Bro%k$I1EjV&Qv1c+J#DcOga^@$mB6KM0|DLt@Xh
z`|UEIw_j8lX)XoMwfnVJJt`3Sc<AD2mIhEa%Z8B}OMv5S^g#ZA3@|JGs;_33gpgF5
zr@2FjpA)OM8BnMMbHW0j6xt*~!-Uj91MPjbUs10;a^!{KGciv~{u6;5AKt)b13AQF
zkH|Z^tqg8_1|7N$h|^u_%Gs8u3G=MUd!HqBLGp;X4-{gsX!&AlH&q{Alo^{@oCXl#
zo6GmVpaq>aoZbB@7$})iOIwI(K$d=p{O@#qNW7%Zf2~Xvn3t|l4!&XmVcLZGdJ|5#
zddGJ(yb<{<y~PJz28DrV(|JGSFDD$}e%SH=aiGal{BNDgm4L2srEp6DQMg6+bE-^B
z1PTS-W(6;cp#GE0d;{83OJ`gzu1gRH)&>!)r+N~gK)v<nV7w?ybCEizNFYC1-$Jna
zZ(iUIy|3`v5%DAo$8yy8#o_L^8)8%E5l?7Ij`GU~2@v%WYN$u~81B7BqSyxUlJ9->
zolq5m(49KZs&~Bb>mFNDYPTea8F&Xu8Ke20(Y)$0a#3iky{^&j!3iBlzqLQNqJ`CW
z49s$rJP;x`b^Y=?9#Hcs&w7Ub|FvpJRUhVZ!CLQ6m*3NZ;1wt&VDXq2v{OdjN`!pD
zIu@HV-<fj}Z;zAB5eZw^%73fcDNI}VKh>$E35I&?+`e{MB`F1A%{O}Ory>_oR#%^*
zB11wLk_aU_px%k%<ZRHlrZt?NA!Eh;%3r+v&YRatVw3oR3Ch-b^!Z(SJi`{I*@8{E
zTo3u7IE+QsWrk*PGZ1QxH{NatFcTJY>t<D}RK&FDL@r6#49?|6nI|*1hsVz-&#8oQ
z5Dt+S{x~gA5q~q(XI{3T-bhWKu5uYYx^7Rdz8$0?I?bh$Tf4ULwcYEnHN-BybwoP)
z(&hqQttZIC_jngSI1rB;yxYJF7t%{2cS(s#)`n+C(K%0n@lv%Sl2~Y6y74)Zij-(i
zS$N?W&P4dK3Fk~Qquh+jm`LnJAxI3JjhhV-1;;;mN@mg$Fz1<?JKH7&-9~X6fB2Ed
z!EPZX?wtT6&B!}#vu$Atao+cC#0$Yw{=>_&UpZl2_x7l57TSx=_vvIL@c`Fl%bnc-
zPKe|^&yv-SILck+PbFNC2h;3}&4*74sNZx}>*Glt(Ci5!c&SnTveSk7EcD~<=RAkG
zj|jlJfvlBqtPrr>ppCh#w1rD^@C9DIhrBxv6AXF!k$>j<N6nuk%UB4X9;rnhKe&82
zc*gz=1<bJAJ`fxE4-22TwYj^ykGXA1W%s#~K&~Cxljn)t;8nE1TponZpIcJr9)#@T
z4CaTqOcmLPavgcqMQjQa`1D}Q?G_`@zvecVOyvOEzBfY})HGmm;*Q6kc?z)g>|z=m
zr-tZTzFPGl0`o0oAKCU<k*E6bw~0kI7|4j@2*1yYIHMcKqB<$S*ji#qI*AoNUQ%-V
z(!>VY8MVA0P1Z2M>tsg`vi!qN@w=N2_)q}#As64Gd4AZ|EBzlu=N*pa`-X9Q@4ffl
zd-GmKGO{x=lku%I$joRcl~qI~g`&tvQHbz7QV5ACtB}1{_Wa$yKRb>N9rSvh`@XL8
z{CsAv9pMHm%fhISk3@htVtiili~xMMI})xO#0w^G8rs(o7v{vrtU}racK8x~B_#Pj
zPWY@>v~!IDaoea=IES3MV0~)by?KEN-f8AO*H}V(OX6LRZW{rxe)_Ibf0!D425)mD
zH!=aK-vhE7l=Cui%1fVd;)H!ly>h{`yfC^QDPLW}4xft>u-$Y{7}{Mr8DAiZAB_oS
zV=@%QD@XF?t>cAo`U=I^AX-*@jODyfyn`U#-O}RW*TR9P-_&WM+F{4FO|_4Nq4U7H
zmuvjyc@g}ofa;j@0@}~ivU<%ep`W{wONjj?Hhh}nL~us~JKn(^6`+<NjtBRN-Yq-L
zhS!l1Ub38*#a|}fb7j0oiZfE>4FoE);x&zb6r$?UIn2{@N`r42t2u9fQ}eC>ZgQ-f
zrTD%u&M@zoz;c`$H+Znz#kMVsTWh>ZI?YIhJ5$*Fo+=W-Z`NLu*Loy`yDRbOzOxj=
zDYbfLbfQG@Zvw5lCT9e2+9-1wYiTLO+vK_%)XI<Zc_~Sf4DjIA!|`pb#Ul79P0F23
ze<}RyGW{4|w>mVuD{p+EtqK=+N)(fh0`xQgr>XZ(1K#{7^t0yIhd~jeKT>hxaMi6V
z{Y<eWq!#?R{Q-F#_zvt|-2S8tFVb>KJxQg2WtB70OHl%d)^jF(QEz?5+31-x@+U`2
z+NCcbZ~EteJ-%bP$p3Z!a+WH3Ple|GOJNC81UJjQ6l!%D2>toB@rJ89xV1m7E3%M4
zbG$ISPQ=YJ*V$^zvDX6kquS+sRJtIm@@!zPR}L-+^vY$WnE-3>2EX8r2&9hv;d9m%
zg=cE16WI)igP(L+>4LL3T<r2sr~4`aWN{)C<=fm4M&dp>d|n*RM$Gp*w8+6%im%iS
zx+=go>{9$=OdJCB4zw~NNPtoE(PZZ#;-a2Zv%3HI58-<_$42Ur4MOjmn!4>2N)YpK
z_^qc-1*Tun9$t?V<o`1ad3lB!w%69}qb=!RPB*_(FJqfv@%T~R5z8$CooJavc+Va|
z=YG_1sq_XRV`O*L-GdqQBZa7Qyr^NdM0(LQlMNW09=>fUAw@m#rv|m<D2Kz69r$*f
z7K$x~tGM=vKu$@qPLv+`>Mm@}9NFT4k;{?-UP6?R6f!hd9mx#K{Hd{tM;IVDo%+IW
zBTC5N-}C-?j1-h=lFU-8X@T_F<A|#gyMz~}_RIn2(O!4Kc9gD>2qfjnDN?i63Cw-t
zCM_Migu1=Nqc!#P@F~iFFGY?7m_B~1r0HG8+T-=I{!aD~?rK@n-dkb8SKg0a>DXq$
z7yUK=y!%Rqdmo+ixfnqTjrG<I;i#|6_`dA=O+h9IjDy)Ix=liVqg4>!CrbRj>&?p>
z-$$|MQq?U4bdQbZ{xSdHEj7HK-MR9<6y+X07QUQrqJYTNcPA&&y|yRZMds=e)W;we
zy5NlXDPFoKChk9Dht@N%cq~LW2&RU~;UOYy5cz44wg0m)ys~{C@Kc5q_{~n!Rr|6+
z&7M~GC;LLok2L8)`TPIpan)p!rM3yVl*IewC&)n$yKUE#wnA_`ciZam<xVW4^l@Y6
zcV-Cwd$J`obC+P>@4Rz3Mub~@4;u}NA%<|#)W-t)lLTqKvvR!1w^1(c%*YWX4vu^u
z!l}bh{wQF!G>4fRSk%q0GtG#@k;Qy>H$&v#K9csKEI|c%Hh<MwH;RJq?5W>Q#S&nC
zoQ(K(5#nw=^G~2FM0q>DPdawV(y&$g_%Ijwk2})aO{i~aKo{SIUZM*E@FZ$-w>M1@
zjzs)=@bee)+s^%Lv-VX0h7bk0*bI5lejjJcO^v*|cjhQ`E=U4NklCX&b4Bp~l;%D1
zMFHwe=yI8dlwtTs)`>R{)S$^HLssa80;uU6pZvBg2W{6hF42vOK$fiY_rFi2p=E!9
zgP@J_S~3n4qNrcIn!ZIXqAUZiHkFrtqVGd@ZBd2=ahati%b)W9QHHcPIv1Ulc%W6~
zKlT5Hg`qpVqthga0k&T$ALM^Uxu&g?KNd)tfPVX-L-B8JI6KVxL2`l-25k$(XNizc
z`}BpeP7QP)su^|4HbnkO(j%Hg>nKkwBtX5_%mJi6qCC?YoKPa0u+S^d4Wkbe%A;=!
z!sD-n_GRezc8!^SwLyditRRnZcY+M!M^5Yh*F_BP>a>3yo?-=2fhYM!4;bJ%`w{Wa
ztPGGDG$d}*hI&REWUs#(Qv=U^&xn#ldWfPsY_|`jf)CEE+k(f|2nQCX<7zJ!30Y#&
zGA$>`VK~9fF;9;KWEO9;PQ51q+OIlg4!R_8jYDbP$b}kC{VZ_tzQqipcGo1IPplK(
zUX5*7HXy~B8K}zYZ*t(@+1*`zF7V*-imDHnH#l&owUy6Cb%<kb%Psn{uaclPbzyM%
z<q~$F6u=(;gawc0_Lz8Zd>z{e|A~oT$FcVO%g-n5rm$hkskKt%p<K7QnW`E?gkL4r
z>UI)Y#*W_orOoJ0gdbl%w7gM3f-hcwF1mYi6}w9~o6SSNhYcx<SyR-o<5JRD&ptNN
z;=M-8-BP*&IJYa+(TiWR38A|5C-pXHaVkv?)#rXYn5+Kekt{O?ob~Q|_0z%cu}b!5
zv|76qxXHWK!RcRH7|Hjm@AKWzo~WqT)dI*MQja6He0T{v{O<u(2h|RCd3BclVK67o
zTYkA>wS^jYpSO7yXibZkNwIw4_$&o_W6AS-$B}Qg(e3YXA_>^U%qH5K<segt+qs8b
z5!my&t7s|Z;40mjIvQ&sD1G)_#ylT!>v9gMU#D_|<ZOqK@hU%j{8imoAoq`O<0e7j
zravn@T%Z@gv_!yv9)C@cLf$SdgFZHHF*tqy<o(Mjl5p<2D0eyX$HoQnx!QH9Aub8K
zb$lb@gKV39mnI<p_1>T3Hy<m)gZk=<<W5P@_$_(D$VU!*8`mysJ(Ph)k-PT?45X1i
zRzm&wb2N{ZAnj}=<$?~K2-^E2EYM>=+e?g|?>5mPv`2*z54k@w@d}$bNY=2|+}jcd
zRf0fFO{q9I@amezJ{N{gx4??;PNMKtfO0B$V4kq75-}efP(uj2oSNpq*@@BKN^H#a
z8X=659QVEVZj@krQY9YSS|fOmv;FR`sK6#>v(*bUHV8_=qiYVmdzfU~)yhK(l*^fr
zvrFKp!L&(RMFcA-fph+qHIe8lp`P{=>4n)pn8>sVX94Ln_6I(fMfwOqhIfUH{TeH{
z9GZTuuH7U2km##YOj{+;NKOChvz;WkS-4SX-P<GhDtU?uc(Ox)#}$4nYf=zvJ9#10
zkroVU10s&!r-6f8KF6y^86ZiQZt6dLjnH?d+r$0S2H{W3kC2q#GX(G6R}}37q`>?r
zc{S%I7nFbbgF9S8`P=trj|n|kC)BI#K5jj^OxUW|R+UiLz_uCeFF4DhVDXpu4|A?8
zxI&frm21vC5IkA8Aah88XM81%N?WJF_sa?<7jq7=EL(0aJKt?W_inAbCx+%p37nqQ
z<xH@>XVKBV&5YN_1*Ql$4Wju&^*Q<RJ6Mfl<%{7jr1+`+E6FYM^vDa-kjd4(k5PHm
zC%k?#go)i^iHi34iD|t4E|z*o522KcBFWDga06r8lVZv=_`Ul|K1@yYuqxnt!!vl3
z5NWO&7Z|cmI8e)Oi;tzki|I(z%S6z8l$Mm5_8lj9QQV{*y0%ZKU5ILU_2eh^?r~_d
z{x}<44Xvghm|DVYXaj~GqJC2*%U$7o5lY<K!=G?2pBL8_6KntR>Hy;>Ir1xhk_hkS
zI?%S@LwqcynVCujHCP?>lJdPE4tJ|x1vltWgXludBRWr6xK*1@8xku6dR77p28#;d
z)+I0%sip#1v^PfSzA8dxgG_l`moi8uKi~U`BY#kp$4jaonjn&~G{Ib^41c6Uq-Cm=
zVMy-Lv8Hi#I9}TR!7o4pq}uv;H?$Su_i?K2szN2W_9W+=BI4L&4~!~4@6~{i3ewVT
z#M%E4R(O0MR}li{?%G^@ua3TMJ8yoaG&~aP>HEYg1q(}!RN5s{U?O2;9Q70Vn2JwT
zaCA$<f4Vy{UpwWX{R#15=(sXe32<L~Va5yQy;pndGn62c?d4w=59F`yYba0hQAXUn
z)4Zo;MPa}thneWpA|dydgi7k%7$$Q0PBwWoIW&G7c<n(;1-a+{{4>Ej2}&R7sq_r#
z;GN|9hY3<DcsCe-=JGN#NHwQ5Yoq(#_dUn`U@F9&ex$!lf_eig>3c~{>WDj-@PyVp
zk{{)5Qgiu~5byH$u-e*vW)Px`SMBme=NEx5T=^)kmtNyYqV|IX_O3)dZ1QJDeh<lT
zlD7;n>zG7dEkq0sDp7UYU8Ep7llya<8})=bTYsGJW(AEFI*cg|<wK0*coudy2-kVa
z|A+|g5oGNCrjb5Hd%JUWAzuxd;dJ(b`)dP62r;95z+t~mu%QkyX`!cse5PBR{-?;n
zs?n+D%WcFtv?%v@or7}kKfX$yLG!bAE1L3bD>_`jQLNx@ArbB}^UZ0sn+2z)v`9Ms
zn+}h5_VntiTf;7<dXh_iWy6*7nlf}l81XvM?H=uL7W`LBU1IJ9UR>tJmj|khyVwoE
zIuDJ8f0#~5ht<~iH7q2yV})~w3THWahwGUr7hdYoNTDFIj{P(o9*;qDUa1mN{)`Ot
zUbJ}Tn1g%<{Q-~in9zIVR{q598xvxj$IaX2@~2H~MKn3-5ASbGd}h?+&zUZa<@AqN
zPxSv`Bg8!CCDDDjm~VZzIrIR#^Ym1q(d<8LI`!Uf=Nu+H{PbIk&iBl?LwnAi?(0KL
z(UR<5FZ%vQEKyu<Zw0%ScK1ssdl!MonwEuG676SwZSGg29QKFpB+S4;2?*SNXG-5G
z!c3=OhH(($WBwSwcd;CCMyN@$O8TWh;_k3>%1JTc{$wUZ{6`X4GOibIHKKg@%%t?E
z4P~GkxajMAS`I4J;}=IC$iQBY=f0D?1}w*Jy;n|EhYUB@(=H}5pmF8wy{So2xEJnw
zp;}r4PJ|a$YCTZ_4=Zi{x>99Ga<e<3k8<4qy|gQ6-jxE;Z)LB`M-|}rYxxy!#G7>S
zi2q&gqXAX%TnGAL^1yND`*LNPGKk;TQA{3GfRQU-J$(P7ua`;I?A@pe|0$?>h*e3$
zCCc9}RlCa2S@Fl9?XNQ2q`!1;1aXNFZ+NRN5aqr{W>h^$rJ(}aI$|&L!_U(_+eWB|
zRp<HW!N?0<IJ{v0K&6f!#_wvWJ0=PNroYDBKO_KMvqZlhNur#Xc&h06Qxd3e|H?1o
z8uC9UvOfQS{5SP|BOfA@CBXP)I7v>E7`%xHkWF1cJ_0Ta`#;N)K<39}9X_TAOw@CH
zaZQL{B|qVep?$+^XYP=5A0=U9CuKSY<qXdUDGLu2i-F-o>l?3MqI>A6I@JvZNubRQ
zU2cvLhH-A9v2OIdv!439Gm|9=#ozmr&F%;T$)4Ef2Q6qWXG*6y@&)+~rn<w%e@FwB
z@rAK{lsji>iaBSE-q)k;EnmMO4#|@U26qi2Ntn-n$X7&!?z7z;a{&foknZB{Fpcg5
zc4YnPzSq!PBe&{O!98+#{+*J=ZRsX<J3y${PY9jQa$=^E5>Z~)>iG-0p(VoFopX$Z
z7A=HJ9O@irPaP7JUOAVtMl$13B+PPxE6nicSoc;D8#C}k*{rv_vw^#kLy<uqCq#AY
z1-zAE2Sz*7(cT|?aB0`wU~r5D2D>!FJayPWu6!weD1M!AXZO=DJ+C!FTJ=WzE}CzM
zYtDL+2#yin_>OcAf2IQBHMRJ>t$ECJj>LHB^>>WW#`4Jb-Ujw0FM^}!HW!4QJr>uH
zGEO)*tEX@t-G`>WGsN2Z(?EW=*z)CF<b{5GnkX5)_qikL_u13fAuLK(ZlZ)4&<MaS
z!T|N*`(iV-wB$iFJL#(@8!s3P9ek!oUV#1iFX>}#!oYh@h2(6eIM{7(#u-IX;`Eno
z&h63@;~rrtW1E>2!1%*}inn_PD>3-c*-k_PzLm;k>0KLyro_BH>=o(*`e&9>6E_l^
z91}7aDf<aKpQ<jM<RJ&Y(`H%aXg}gdqRQ>0#1AxHiY&C~Jjwg!NK*{X1>d|jo3EmK
zmi*+)%SHw4@Xa&!>{y!w${R+<sL~6;hK8p;IUO+=9jvMatkZ(FCAOv-!vxp1JUubQ
z^K1``&gk`7#~!|u88bmJB!7;~eLe{iygs4&$gI#HVUz5rbC7BewtFJ`on8AjMy7Eh
zQ2r<KL+6c6kG-YG2f4pyC^FGNRD8-quNzb#`RJ&%kRcV&v;H1)Oksc;?)}^hnm+`(
z7n~<#252EPKi5%$h6t2-C6-uTk%0@opmD071)u#89fdy~Coo=USBq)dBbWylDBRj5
zf;_?lIuZt2oYJE%!t6K$?h?4UPo={OxACqphiGna9M;b-CS`|11G~n5;hZ35CKmYA
zng?n{Q}`>9KP-59E$74qHV9?ywY~C<9aQUXW<_;yLZC8Z+TMNC%k6y7?i9cQ3hN6;
z4VZYKlSVIp<s$Oc-`I^Ywqb$Tzdoa1L|LKaZ_4`<=eZz}q~c3Q2M>_fvZptPutNTg
zo#!QU%+M*KR(!K~lVBp0y)t!@1G2ZOho_IO5?+q5k$z;yFk7kX_s_Yp;}lm@ZBsf(
z@sP3c-{Ct8n7oYnvoh<yShjKW!<19I*nsBsXS|bScnN>SAcyQ4wvi}&wxxNL&>jCV
zkwuCE$8ZX*Hy>&77fOz|)0XLQ=ksn^r+Jugza&fL&CUZXx?A;Sp!y2oIp_K;u~84U
zrx3$4#lMUxg?iuXmSM-Ib$rueed%!Wdjba6Q@HW8+^e6c&1SH@Su>y7JWkw8k;v-z
z8E#xdiigzbJO}O;Tk4a^xq(HJ5XI`~G-JYnJD>i$-G?pI6SI5O{Kfn$*fKOn`>;ik
zk3^k5w0PEjpjVtr9pP5MjUQ@%7ct5zr}J5?UkNo|Ze1c5Kpf8V5~g<NRN)c{lWaqi
z61c`?NpBsfz*=q4hDfFw%pSY@_S_G|2bRsx-$Xgt<2N_H`RyUUSj?>4qAr?S2aOL}
zama&yc@jg>M`ftH8X$aDLlvgmQhh5b5O3H<&`v^53Fu0%J5WtYLXS?r*`m8Fn3*Q#
zdZGT1ZGFUMwZAq{hTS@ll~IAvaqjHN^U`3{;PTXBUKKHeO=x^BYk<Y3!WbwhLSdej
z#<YPNXqPzaesGZlJM8SGD8!i=?f=Qk-KhvftMb1ROA)_C=8)=zr83NyMaKMdk^<w?
z=`IGO>hR)CsOkSXV636)f3<Q{ppi^@`zgI5DCN1FIf^_?#$z?6Ma@cZf{`rbUl2RY
zEDep2YA}Ki{rLM1XEu~uP-lAdiUa0i^CP`(aDs~5x1X2eWMSsfkmV?+A|x0l%=0oy
zLWhMb6^#?}SAAv`Tt$1F#V34kZd1tuId{kBzj}&rD^q(!`Xu5?QC4;ZA^x9o`_X0D
zSxJb>@gprmT#P6DdtbzBWFdiJ|5xuhd62HOX~7<e!_8Y-1&kJwFdM2?^5lvroIAo;
zC6+D$%529+6dUD0?ZeRpA2kWERWArTZ7T_<gt(OFTqK}ju+!IgMFa$nwLMleL;Jh6
zAg&LVV(_Zt=-W|sap0zYd%h$<6tH-*$U)>e9M%6VgSkt<lH{`lY4qN@75>$m9HhV@
zV$sw~h6N|3TcO#N<HX&sO|`mKvf|fnc%2cQV8A_&UnF({GJKmfWF&c;8$VU{L!w8Y
z8&BxCa?K-$6W?BXQ|3^>fwNVxvE91IgFpK7v3vDDKK!d$?>~8*6My-+xui{m1Hb#%
zOTVs(2Oo)vq(2kSi&vdcXmZTq$6L#s&%b!bgOkJ<`k$s`!5MAj#do@?aq^p<k5?PH
zaJ!o-z3$if@KR#ZDOV9*d??4@B4aWSUSOLxY46I7e`=Mh;XwIU<sgT<4?Xv=G?gNb
zJrydPxJP3~Y?}(t=3+XgdXX7tiAj4GGt7!tj(Ka|9ACufGjb{7=&A6(DMnL#jboTk
zZxBnoIm)MQH;t2VvE%(*k!|r-DiBTD@}EJz1jG+2N7IC$dwQDd!-`)T@GWs`hz#*b
z!b1y=MmcH$WvyvYh?P7TW=vC2r%QogT-vC|cU@Tc?6ti86!mJqm^%ONMBXkd5*M9-
zqp-Sh#!VG*m4w?>DacUY^>xp>&d*sxST(~=vv2kj7$T^BJxle$`6Ks5X-$9t*@#H(
zZ(1<@c(`Z!gcjs*eRMn7tPCGGzi>*R`MayNPK2eE2{<ND%(5iwBCe;vN}Z_$s68+)
zPyH?n(r#x2wF<OAeUn*XH&qu5if8|>9wUJL9+T>)dSgf~5Vpkf_2J;DdsGYRRR#N8
zZwP*G2#Ncmx@lU5@MoUUvfbtg1m|h}<2{go?``QNwA8}DE_Io;uv!%K#9mKaIwlF-
zpC>;&u@Qj-XaAwg?ZTjzkbAwZPXfmBuSqKGP=Z}T(y&?wH^lIgZd&Y#pyvSpg%37D
zpm&%x{_>tE9MO?jz2qkXJ)bTcJYzt7-<OuwQW8?o%XIs->L~@F(T@3j)<7J#&wtg7
z<(Gs9DP|#`y(D4jge0-^dtv08vKARe_e0t4<FB(`^8i<GZ-=r!Kd`4e9x;9<13omW
za!1hfr9nWH&h?HI+_;>`+$SjleAd5q=Nggs{Toe96YANgJ$4|Q;6VBLXs>f*N4X%f
zFE#4Z65?9E;$)d~7XX1rOCH(Ys0Vc?DdGlt@8z|AyR;d^jRz3<pUSS?#p2IW+%H^O
z##UXonVok;a9%b}iH2$+-1~yW%O^Y&SYWbIbZ#6AxUpX!t{~ba+;gy_SBYl;hil|Q
zzV+z6o475rBSi<f@f69dk4SO#JF9~Ul?-^#+mlbZ(LVF?5m$GK^Gq<}qM=#$7Wo9T
zY%K`xJP->UV!g`im^Y(a+lvque3$Bba3SKPbe7Rr^oB9R$w6K7+rzYQ{c>Kz7B@Bg
z1a@c0n<glKrf0iyZ50z=;iaA8-~hvgZr>Z{Xy5{6tL$Cm)%kugdBrA-2<Ev?<@9mA
zB4kVlQXfA%L|~kF7)n&oht+fa<+lj`hl$6n2o$5|Xx2S3J^!!kgj=8c(>0ZjgI$4G
zV|?dv@EnbB5PxY4SL2>&bDCNKLlxa>1d}7``wVb>tgwY{xo}mQM|SX7Z*#-S+!mhO
z{5J2~vW5HVa=QNa93hM^l}L5g4oD-%9|Y~#z@k*<mbs?`9Fr%q)&JrEqk<I!sh&0<
z_NIAg&CUX(@0`qiF?ST?#m||&47P`&!YH}gHG5zrB2^{rvPKC=vDAb|w$S=wUODNO
zGaN~;b?&6K1s_!wmQ(+1f${9#QR^-}AaP1tSH7nU)Ei$}8C3v0-+Q#zlpaCedxckL
zr%YkJw?jKH4M2~+Z|=#KCOrDNx@*&C1Z4~9&XXSv;qzAPTP;QtV6tbg{6=pK)~;a*
z9y3bt*7GElrHBeJnab;)p_YU01?orc%Zgx^DEO27gc3ZmKQio@uL09ZLVwIZslxkX
z-qdmCa^Oyp7xzI#5$?Zo>)%BCHLD19>p4M1=$UHYUt?B***2@1o>xk6)$A5+i;*n+
z7$ML+Wz&L{W^&x+lomAkrRDwN)c}%Hfg-I*+Azw(+M8{Ic)9m(6^4A#1R|1D=KTT0
zVT$K2eA2E7E$oYo^iCQ;=DkUF%2ON4PImX`Sff7iPe12cCwYjzaf9aNBY7xGV6jee
zlY-8@fBr)#4`MTtHO#H544+cUJL>MrLqR-#?-t@M&!3C@RD|A-Qcq{buAV_TldX-^
z>LhuX>e=c#Vb2EJEM!`;-G(3`Z*KlPL?0TLI_#=Q2p~26-tp*95?n^+P0Qn_`aqM_
zzs4?Z1nGap%JwG!x_0H*{&Dj{kdoGXa=0FNCA`cf+17#WCns{L4s{?}i)dXTlLI1g
zo9Y9me}vt-vomQ57O>*_P9g{Ky>%NNmOCKc+5)-c1Mc4%&`fbB;yI|pWo@|~p*NaP
zZnO2HOj8?_ct<0xbqUZdPd8>>sSQGEf%h~)6YdT^+gR$|A_Nl<DW^gQ9({b_E0T!3
zlZPKQyU?82;%<`eu!JF8^b+6ucEu3-pQgHgNsxyhtp6q7Me{BftAmf^H7sECk<HTj
zF)7~hSA&GOj}37Y*nV7)1CT6BtuF;b5R*?GW??gd>S{}|XA9^(Qy}bpXl8;u-m-(d
z8<yafZEG|ZY6NDU7hh$f{_AR`rYxnQDUi6C#>@OPN4=FB%AFrvz~grYO*7+B$Q=$|
z_$y}sG<;HOE!0+^ooH*UmuU>9<!|r&xNi)3+Cg+1*NoxBij&H0r55<SRbsYkGz8tt
z14Yw_OQ%RYDeO;!KIh)ECfA>u0Bt7iG3sh-=xcP}**IYf3a#Ty+hlg==V0fR`cM}(
zcP(9`I&~3$#;;u+{XdV)IM%m`6F|$pn=pA*7g(|<a=-N;{*h4T`@COz5M5YnSab@V
zYrh|%6heJr)`vAa%cuu9zx}ml+fNLl_R8;VYVm{kTsXmA4RN&nPDhE!34zID4en6n
zm-6F%eBmO_1AIaw#1SahHaSr=elJo80#+m`lNEWuS7v8VVTl=fQe?l}cNKw&T(z-n
zZw{y@+HBs8WCx4ruYD(vaDrSN`8_-2&zV%r4o)Z(hUW62Z-oJTAW_b?e|v--;u~(J
z7$|eX@N4-e`XfBxBa;{q6oa^oyUMD}s4ubX_50b(v>=G2#Jtf$o=F)A<tNEb0<bjX
zti2Z|2q`VM{I7@d!S%<%xsAO1fIZROZJp+az(18~(-&AEbqV>1Q4WO*4SBnwgy79!
zu+Ky$FOWP=DD>n;ywlN}W)(hYkGgnq)0P|cqNLrzEpJU@n#%2IMW(|9$!eZD76&T)
z{=Lj_rR`<{S!H;;e=a+&s_t-FT}=q5GmZFk7|MyWhZKY@^KsyHc7m?wm)UV4?$EDA
zHpI9^6@Bz;PhR|!&rq&VF*~lLZv0U$fCE>)WMOu~fE7Pv996xiDuA<OZ>e<h?_v*(
znprQkQR0eA5PdP2A9o1tYgU+L#Z}`B&POGW5rSQxq~Fq_#Yy9~h;r7qv0?fOziJgq
z+@;`>XM8^co+^0dSmQU;JGOhZKds9ITfJ##?uhSTD{k$|{ysf~U$+mQ#W4<IGeEV<
z5X%Zi&N`oi=_Q~)iCALy!yY!?7H6znxQ<<M-O`j1V+CEU@XKkBP-Qb=#Z3Jb03XfA
z5wA(aef+I^YrDz-My50wmu2-~hqJXyd_ozFn#}zVXc0fNS#Tx~^#zqfc-~iPs=)Bb
z-He;_YH;QqE;pyH0UFA7cb-(JfcxR&+dTA|pz7-ydXhl{{`LzBe^2Cr)WK#mdj?C`
z@+=qY=R5|K^1kGm<;D=grtH*Rrw0e#CO5E?1R#nym+O>m3<3qF@7$7ff!{|%OG?-f
z9N8bvh<WQnDEB*w_HuoA9aYT0Xs803%eG${oDpZ*izi)_NEJw}nM-vLhqEo!inm=w
z3*-(8yz!5S(^CF6q%%MVu9I03G+)TTogDV#tYY#&T>47+XT3V)2vH<Pp#9jzE4p=G
zT}7cps_c)9FPc;8Mj8}q2|ySR|Kj&s0`N{fp@JEG?px?peSh3Q{eG55*~9Ka;Np8}
zY~l+yq;Ai9NbI4!`M#2@m$EQ)5X<CjeGr18Cp}k}dPG4(=Qg8XKRf*SRHD+v#SJbq
zBUi+Hr6Dm{^6#V{%AL-g8aft@?j@gTL&{bpfHnVuE<L3*j9o5i9z^#{!7XOnTUVsO
zvZW@F81WAZlNqXUOC^wJj35f;mV>_ur%qRXU;_<`eYc4TT4?`4JQ_mA3Qug`sy|TW
zf_^*P>H#S~Xg|@Sy84I*2BN0YrqP_|_l)%x(;f$?D%kQrGUo(!n@xqP4;*N2%cNso
z!iP5*YIgdjiQtceRX00q`EcR36Ha_QVz_uOznOQMAg<LX-ZtGoL)gRl7xTO(usf!$
z_AMe^*h1VjIbPE(?B1WBO~;-rVs;7d@MH-NIOb9IR}#(1q$AIB4c*|y^9x+<%2Ky6
zms+pA23b-ZD_k4g)F*>;$8Xn%deXwTHG>E??nCTR)sG2V)kf?!N5qlii#&L2oldF#
zRRK^nDt=%+Ergp~u6K0mki@_JH<|W6juj`%d*K#%TnPW%;Aa+Vw1d^3SAy@+GXyp<
zC;HDrB*-VAbR<>*^)IgT=Xc1nz>7QgG9|tFkSCdKuV$l-;Or+;xK>4u5C3c8qzxj6
zRfkuU{ZVXi?)*?zS+f`fJt$t(l0x&^E44Q!JJIJs!Q@<Nt0b)bS2f2tgyy2joUB!6
zRAEr#MFR0xSx~>Et<Ml555+tW{|VtTK=E|D!Rx02!g$O{*=frINw>^O>~#fj`mbTS
z?gH8$*+oCA{iX!VXq3{UgP!BfIZGe)l;Kzxn+Xk?`%+vnQ%xplfo)~cQhAydNLiOq
zy+?EJSLUPrA;Ri#;@%_1m=-0FteSD-=TZb}CdQPeM8s98ThY{*N4}-LA8K=#+0Z#W
zgri@a9=iR-&h3fPfcu#zD(SN<;5im<mlTPfyR2;!CF#gxRyVHfLe322Oe+jI<w9Wa
zPRPXERS53EgBR3#%&_4Z>RSGc3~w&Za9>-Z!>QH%-#kTqPq_=tK5a+YAaOULf1r^W
zC`~fGTTRvox6T`EU+W@)nfK*+d>^R6J3{h<a1uRKEB+0sb!CUNLn+?URW87Ki=0N#
z@1bVUYGZpdC2U`&)e(!}f&Fi<K5pou`wi7{lPU)-gdaO*&5*QCFn<1hdP$xND)blk
zyM7_>@)46eSzk5@UOOd;raqhyVR-WRqkJ@f6FIwIMMnYFu@}v=v>2c%%<y-y1q<X{
z@tbEw`NfE;rMzeUj8OYpJC64`JM=PmFN|8O6HF3s&iRdUq8w$quVo`02q&Cv8$Tq1
zJ9fnKPx|P<pN$^~XuilSvi13%^lz-VhPZTVd=;}9H+Xd*dWbO(eLNImUL%~3zmZKo
z&5VD)rO01xM30jjmOmKR;=yknI=}d>!i1+Bwl9k%GvIuuRg>OCbK{~FnaMSN{P_8g
zH&(VegmLu_6J`ES0yzDb8)@2MT)3sSr?>lmY`E{8AD82Yi193;=+NeEa{RfcU+aHn
z%a~?8@vZQiTbPNfju!EAcHDQ~7P~Laj2{#S)P5)3z<3mObFVyOz-{x$L}ky=<7y!u
zmUZ{&@wftqA(>(p{OC~Zuuv5Vp6Po|os0Mbf!c1<KjRD?{;8Ruc!h)-|6*ztGh4Tb
z)gR-^5|Th(>xFAy)1|0z!8?KRbN{j8x@R&udnBmw2mZTAd$oYESC4$pj@JN_g_!Xy
zeM7|i`R4cb3&2pxO7Cc~0X+Mh#rfG<8BE{iL@rVrz)#k_Ci6Mu7pw5(x{$5_Pn$+x
zD4th_?C`r|O1|vSy`E<rXe0w(V{-|js9#E*!As>K$Og70vw5Ab4+&*FrSyuY(fO0O
zn6~4#1_;OB9<DwHFnKp8Lr@pZ`=)=3e7~y#w3~9KuhQf|wcIa%K1L1Hg+pcef1*7v
z6UF^tHhI|mFj;@IOdjMXj<fo$Dna{MrUdadeb6py<~jR82NcZ4({uZD;qa7FkzI%q
zY**W~#)zTZ4{kDQu3`)mwLeAw@fbrLQO=Uwo(f#zoR~7)(g20vG%m?-ePG$l)O19>
zx<=2tBqJzqyQ=Z(dPxT_NXjvD8`CgD;Y?mtXzdo^oR}Q-7KtcWJ)qB`_Tq%Hz8$+_
zZ&6U%I&=RY%75Rq&de@v6N1ExazsHlg`wAc(AnNw5~zJyH4M3gAuckr@(%+SaJ_%J
z^9W-CiO28d{$Aq;r@wtI;S|E~y>j+K$QB=zR`TgdqrX?q&~tk*Q37V3wya2)i$fNx
zh_9cM5a|EuI!!Lm0o%mg(rad7@Z3uI&?G<@6c!9s7Er(6d+@lqV<*Z<@X;SJ8WDmy
zclX*(D`DVL%ZZl$Aq>&JB;PuAQNDcSP7v{Z<W1hYCGL>Q0pt5DC#VRBo8td{iib-C
z-hLzr6S^t_^~<5pD%!-rIeE-Ve^>xsFi+2HF4F=RLDJD*NEB*K&e<GsX8_@2MgwCM
z((qfk#dUm62*~CQ7-ZOxubcO6p}+tS<XQS8{br-Zxx*SR>Hj5yQ(OziuAgb4;&OC3
zOCCQQ4E|i|o)mzbIIlKMPdUh@s-o~15P@5P*B-nw5&(JjlB~Eb5pXuS^ywSwXMLoS
zAS=od21<vdH>Ylh0j*K*q<)|T@;*L&O2MiGProqxNgt?#mQCyMeP&_E)EmDrN+|)+
zO+noA=)7Po#+yjnC<tR697i|3C4eJ5lJW%N64f73H(4b@{9}s@>?rcop4Gog()Uaf
zbO-z!Yz~p{QKy#u65_vXo%6k`-+=hyy?dheJz6l~rh4l|p*m2x9F0xMLi@`z_NJHr
z&mT>d9KUp19&UfG&iCun1X+>!DjD=13Sn$5bkS0W3-%?R`YoEEaDv9q;<6?%T8y{S
zUqOAQBCye4LOrLBx%hI#-EXoub~4FL8KSY$>7<M5FcN*XAo;2mjE2gHz8}&8gNt!~
zVTXugPVP_sD_je<J{>!S7%On<#sniFRtxmsUehzu*8!i~=SRwnR6)VzWY3>^C1_%E
zjF?nIzM$7!nc)_yK%*a$Hjk+Q-K)uOModa@@mcXgrjsgY_ljB^bf`dfG9!C+kuscb
zUwCX4rUaTx^ewvD3P8&B)pgE?1?H;Sj9*@4hV=^X|AenmLF;iQ8y6d9cyz7L%Or&b
zWOn4z=<f(Y=%HMba;6}Jlb(0!Zs!K&W;KxzbWU<u&Te&%<A%R)j<0E;bD}Kv+?V3I
z5c-^1XrCS9f{+C@HEe?$3|qu*QdjeXi=8V?I?4q}Zd0CCDc}b0F3}0U7GC(VY9ctW
z!w0%WEss5kcp&5jd#pf$APj}SZ<xL$2uim#sl_M|hve$e<VBS0mJ%Jb7YJg5iyt~_
z+#CeqJE`Q#ff5(A@%K%YH1Yy>W;=tPBO7q-Thcx;V+Q$0<x{Up(7svv-$8N=+B<Eq
z{BCvQhL5nBJUq_>Pbf29XuEI#rOzkv7?d9!8#3{ob?w7C1NGzaqbzuZdCc?rQ}bA>
z#^HjIUl$?n+Tup!&TB$->&hxcF1nAD4No|HA46LTaW1Fhl(;$5uhoJ9QamBktwQ@9
z1^nJ;UeU=V#*Hf4KLm_!V--v(Eca-b@aNvBLyhuv6{q~akKLpMx)stlTxoOI-y#`)
zmB|B4qBK5QjbtDDNp4oyyiJD_#+P}X@w38&Ze7Qa02|)+Z~#C4`42(bF<z3UU=^!A
zU&*E;O@qJNQmB66$d0&dJ&i%g4@OdKYj){i49iZZW)39f1VJ$|qHhPw1mj31vhsH<
zu;@Czn0FwI&bzVIGS5gM=?&4!4Ut_!Z3V?)_t{0l4%K?v5lL0ZFt&JAkt7aOaj$jb
zw2&v@C@~x54diJM`gLHA@}#8g?{5FSCJN=Q(`M$M#XxXmfMWZlFyg(X=vPb$Ky=F=
z!|UBBhs%*krfNnHJ15K7!_;_TZ06td6CYT>A;ZG<>i>Cu`sJF{R)Wyb^2VWE0rk-6
z8nF&pc~IA;4bU@^hQ6yRRNSW}p!v`c4W1RD+?+!?hgt^U4)j%S%b-2W%29K7X$U;g
zc*@vW1kxQ3*CL|?AVKF?51{8<dgR;T978EcDaNLZQLjzq<SKoRfGjw$`;YrxRRo^N
zPx@q`QV`lO?_eLS3UsXLZEtFkm*7#L!ulmSh+%r}9r#@Z)a1q_Tn9M7=;#|R-U)hW
zawnNl^I`{)F;(tzlq-50n#H%0%nE;G?B_@yl0k5?qtLf%Rv5T;s`5B`F0yj(zag#S
z2S)C-p{9@nLhV4P%atqS@S}JZaYmWp0T@4ZkmiJuooiohml&Y&rSG{+l#e@+!~dz_
zJTD|)u#rpJ5rq#M%3YO+=ksxMP0y4?5bmm&8J<EOBpdEp+U6kSI~{0BI9DMGL-U^L
zuLJo&mgz=Ip#wAU?yjZN{P+J}RK~s>CpX+uIjtep%?>GXGb<x#-~0Ss=6oo6|D9q9
zW7k0UH{k_e32P%pupzp5*T-R#aPLi^Km(dHyLh%pzQ2ZidDLk_FTXHCp!|*KpTTUn
zQ_Rw(<yk&_dyD77(`k0xUUEv5B#RLrF`uQ-80E!725v9C2x7zsw=5;APf+4E(X+%_
z8V?Ci_G`oZrP*+6Kc@D5E=t_WIQm@903{x0*=_IWLybS{9w1FzV8#0x7U-luu;NRz
z=0A?C)8h5a4o?JD1@WQYoCy_PE_{f{UoQ=D7hE4O=t(^}#E8O-0xFj&(K$`KgwK}?
zkMDi8v8~F27q%W{9joTVx$CJ<$DSg?72Rz3*f%+FC1R<Dk3#hL-D}@Os@^i;$)z^W
zG%VQg*o;BvC~Go&v(;^FY;X_LdP_w{JI8`&&P8<%-(bY^aJvtU!kl=d?-IkG4mvzb
zRDo_KfECYs|LM@~H~}U?Yy?dzwBZY*y>HzSEf792+!*7m3q8T@J8BKu!1d1a8q!&U
zSDDM7ibY+hWDVsGjMN8ms%;*%Ak_2QzoXhZhxkWd$kI!xO`zqt!fCO$dWbhH_%$Sz
z05un{(5-7~f!-Z8t;<rVUq>Zg^t_Z0Y*=&k&XA~r;sJF`iiZMh1cx4NpwS1W=%9}*
zdg_pn+v&_JrUhrN;>0b;3-c>I;l|9WHcT5QuHE+_z;S6qdU+*dXbnKb{YGt|0L2$~
zI|x7(`Oi52l@6R0D2z7fFalH8BbQ_lCv`%4z7IYAfac<<3vL32FnNaFQwe$87PF%V
zZ+Yngo4LwlZKXcM5U%X4pq!momoo=r9yhSDXY?qVB3`U<Q9h{;4_JnuHJIYyh2hh-
zX}_(+0KfF|IklcR3}$_q|A6v3Mkx|;Dwjo|M8?ovLtF+<q{p3)WZ{5}jXs(iN`mn8
zlA2Xy6E_&~oLioG#se-fVPmbrLhxSfAM@!H9-!#i@7#$Kf+Ua1+`t#Y@Sl@pcIdhQ
zD5=yQrPCJyEstO4MC*CMmCS6`Qc@BQ)ig#ZJcMDf>j(4a7{sw`aorF`IrF~hMaF0q
zF{qKPdf9@`ndd7LWq6SvF5_8$s=pjB%Hz|e_o8{j3GZb=cLjc!(JmED{VWQ`Oq&LQ
zN5sIDAK6GmMBq{&MZjbg@?G=NKYb*|hyS|m)ooDMO^6CsdgeDjjU7)=X=0<H0-?ur
zXRS^52vjlrPXD=Z;oTNh#-gsAcwyi9`Z`NmT$3<skiE(T1*Ym_?TMVg;P;r%lt~aj
zE4;~iwTTjM=}h-J=-|K?9+R%#?PWzA1gm`f3L|bBd9i}y3om5Km^WSdxJppgppF-?
zAb~iIwEH`|<Alo_jvhCHNRjV2if~qs3;%e`X)&IP1ow%jE9gpX!@SY;B!`|3_h1;Z
zFXDPjAf0}x5f*}YKPKL0DIS!-rE-()jRqUsJvh+*5Al&2iiiJw9bpEA@n@Nd+gx~l
z6^{so6C+$5#)zx#@W7gYc=<%q8lgY(c61KfyAAHJ-pc*_1G}hm!SScV4#7?hi~ps!
zN4P#9+e#Zj1XZV)qsN0NK<;1Ab~xh-R(jF+{!4~=g62Y1$-j|3tfMCMyNO0MHt||j
z#Q*$XOvxy(g2DymA~~z$_8Un-rpu)dXT`9FB>(KvaWb5gOy<O~q9rWrdRh0b<ssp}
zHHs@gP_D*DlYKygzZuIdvjVNbB?3>-TeZ?V4B&FLvgVg5D;U%#l6Kw_0h&-Vhqol_
zga(qgv9f3nktE%@Kkx+cGT%DOythWa;6G>SCJjk(Vn@AUd&*f%%Jg&SpG+b=AhEG&
zldy^nc=ycL|60HT$)^^#50?o~y`)8@XS)e)PZ!LWzR*BrR@n9bHYW)>+f+mX%9OCx
zu$hwRLIVL)&&T|}&Jbqjm--50e-mD2Pmi^El7q}~@{N#R0w~wu!Aup)1r`RS>?F0E
zu&P^<-Au=a&RG-%i))(%eZ!-b1=+$dR7fmmfqHru)#GSc^0**@A~RBip9`9FGYo#!
z(t&$iqvn7I>hW8U(n&9iLhOqONf!%d&>?2+Hg(%4d^?DHU@#>OI<?VVh8=?7`8&QP
zx_^^EO`&}^sG0%!cX9(sl~xJQC&!xB{h4sprB(NVQZfi@zsft#K@SfrLaCUq)4_j@
zKR$?%QiEl;%)0LZ+Jl-&)y7BhgRcdik^hw(*uLX~jma$V!OEYn2ys#-<)3zwp_~yt
zUCzm0mss$#3%i%HjdL(^pU&!xbKBVG;*#cmrcErM#q{cd$}YymmloaeaRNKceqLA<
z{)<q3HG*v9RTqJ;z3!)SDJz~O5_qI0vlE*On|g|QvEu;(qxu@dV)*a6sp%Idx$wVl
zhd5h$Iq;ObP2D*v)Obm?!FipAC4w!Z>*0CgRjjyZiTc@*7R-|H=5O8rH7+0`AJ803
zgx{M;dwx1`lb{?S@#7)O9v0Ps{i&{?z_YjFw|D!<aLekjM-3Dm7@gGe-uqG-P<5*c
zpu7E+aId+!=*?p?oL9gpfNTFZ0o<M3&t8y*E(fDjp?`FcSNr+(<z#A{`@!vGdv9`_
zBPS$|@dPz~+9D)W)|?2BsaLyKMye0jRlaozvFboO6B$k3B)SKk%b1~?)P%v$ywOq@
zbYTD9%0s$t1z0w_8D36}yhH99a@2u(Ak^MW`n^gQ9=y`SOUkssOC*Txaj`xSj^#xr
z`58g(%7ntiq8^ye7PK`z(}AN=t1Jud01Uxw3=#s!$c_0LQ#{p#!j+xcs=o#xUu@7|
zjphoVR?5#+qXxm(=ig0dAwH$m%i+01O?X@yqitdhAS>2klWzbJG&%FFr9~S(M;=EE
z{?vem+vf}9n9%!$bwjKwNEJ@fDfcP-)P{u8w^t_=w7~D3hwApa7EJy1v9^o>7<}pU
zb}&mHmSU3i90Ig}gPw6hwo?mCJTkgs%_U)ODuvIg2Yvp%j~|sTM)&#@RW3C>DM)DH
z>ivl3;BOy0C>X7x`Sm3y_EAp}=qq)nIHN5D51gysu{()Dfpx2nK?Da}{9ASUy0i#1
z8TV)di5P@Lckvos7J$K|#jU)fs5dw!sAG)g3Kc(kovM<gVCKfl6Q|__p|8KS@9r-V
z_-3swZ+T4up85<et9pyWy2Et(7&_Mi>sOtNNfN+v$;ZvoN&-rC+FYMGib1=&M0&T7
z1bDver#Y8|@~W!;{bY_n_wCi-twm+z)vC<rl5CTPi~$|xlN6#*==Vnc!9N*TAy;UV
zCRKo(+a+_HXGP$KVUVl~+M9ea|4?UIgZj{+hh#N(`N6^?{@Q7jSI;5*y6NP^1mz=d
zcVz0&ULf)pHj3WMkIT;9ypH_HMdl0p&5wnl=ZmADq!b6tGvRwC`m7KqCHf<>Q5JoF
zn_}?}j38g&XSx4|8~iiQ>Z`U2K{%_PucVa>TxrHG%syiR?(1dGmKKE|)>&bzYnU7S
zp1-v_MJWYWckTK)lv$v~Oy~KU3lm7wjm0h`@`I0a%Kp2DqA<zpy>H}<_T}fk(<GDd
zf=eN9=nlpMh_m|czgQt~)J?6jQsxJ#utfWOPDb!`2uq?nWQWQh!&LU3Qm|@0K76Kt
z3x>bH^AA&J1+g>#Q9RT}oU&IoSRc6*@XB3SEp``&{oNA=AEnX#_0UkX0Qn$TN4YiR
zP%kF1m4b4k2YGJJ`kwK*gL=wl>f~XLJaCCj;$<-MS10@4KH&I?JcT8Vxy`?+f!gLz
z|IM$&!1Vi&*Fl8~NOLz&OvLlRJLce11uxNauJULzX(%bmdyal9J;e^i$0q)j?ClY(
zO-#Cp!${#@!B5VJB~HBWjx5_B7GmVT__wQlh8YfXs&*aTj}Q<-NyxP6fN+J0==|y}
zVw~C0gVE#P6!w}1%PBbCPsk-S)mP<=VbbcM_jC|PY;doo%>I@TSd?0f&@c-D&!czG
z?B#`kePXo78$G9VZ}0S2^iacmd|jl7pa?wQ5~<@c=7e`w7xWHt(OerZv;2Vi*19J1
zo$cd@<H^*FM&cZBRPfC1%~e(iyc^tV#fZ2+3AFL=tVPhCQe){Ur!acn1Z2OtD**lG
z_7^YC@xYZ%pWELCC1A@SmA3#F2b_-5@DTA`OF4hgkD4Lxh~ONrYa<uPUB6&gr-DA8
z>`h(KkLlp=Pfx~Hc~0cFPZcVjBL{DUi}w^RA~0>v+@EMXz#LK(g0(LqZo~Xd=S_4!
zd~#K|$i|!({OoSG@jaX(NXPhn{dDXXA?`k@<cCF3NXze0Y@uXBJocz$6XgHsYr_P{
z{-XK!$W@=sY}6yXRy3#3DFy)>O1;7Fguzb1&r|J!5F9Jirwoi11}CcCB3>0<;F2Yu
zJ(+oceQXdl55GEw(Yw~A@a?V=KE}KxKGunNJ%t!acHA)L!*HUe(u*9ocK!a~w`3n7
z;e}mbHQNq08ytB#--ZbPL#%W&e}NHiGb*g>)Mmq17%wYm=8)rUY2SzwAMRlZ<YtX+
zhTWLrRl-Z2%_Tz8n<MNGu@$W3S-X<dNjCfg4{3#*9O9`A4D~n>|DRX);t8V~2~Mi~
znxRL96kikdTTYRu!OhOD_+LA=j}c#C7*#0zN05xtp&hxlf}Knd3a>=H2&W{q=5LkE
zctBU+1ODgCxQ5I10(O+MW4o25l(WQ)PmxbDo(U(%%O0mLUokqwM&HD)txr?qk%gNq
z-hs@x9S4WUf;SCr;VSJM8Hl)O>yuw1{FPvXG$_;)^|e`9%k(ajD56{k9Xln;{X?4g
zqrM>x_;~r`oA=Ljf%*FJr6pY*!15oq@$TtBiHVHKqiHQDOWp}Tm8%2mY_|5l&T0Wn
z$DJ(q(*-2ZDm79fz-#rh`>oC@a8mE?YK=0=S?JWImo_Ru8lia5)=?IIbwBJE5Jk`1
zlNEb)+w$;Is34-s4f%N!dXL{`P=<9guZ*x2Wr$78s4mD;0+m+(;UH!O5S1ss<L|2i
z^<(e(JYHx(htXz8TBkC|rT9yx@hQU5h7#${W6JP*Ai^r7K?{l=3b(eNR)(t={u>V(
zRs(nUXt5%clhuEs`1Lm0lSS12eCET+3dUh;-bDgL5L3+Z3U1TD*>jip%hnsQu6wa7
z;eSW5(x&!!{uBXV_Wp01c9aL^YHRBE2RR{ahMX$7ycTQRDd#<!ig>G|94wzrSU`aF
zs+^Sb1onjDRu<XfKH*Gl{=CjH#F?z>a{ozB4|=g8f=8IOq3KJln&&?;7~OngpzVqF
zs)zbn9AhXK>{bw!GEM~tlyCnP)l0xazA51*tqk&Px4r6p&kLOt#LO&co;P*Ah~e=9
z6ZrHv`%t|$1V4L5DU&Ib6S}{{e(+uk3e(=Y`}CWE>u_Ol6588!nZNY<;cfyFKZ`G!
zTvmX`Z)ftZoY8=Pl0<<6H0V5FxS~}Se-vux_nv=upTy3vOv_r<(EuAt0CXeY^Gn&O
z3ZoO-1fzNU&w?*GUa0<}@|ptTbUByrnQ76&sLtKzA65B5sKSzjbBqs6OkTZXR2B!0
zGReoe5;Fv{^PNSjgZx0PePWe2g%xu8XHAZ#$blQjB8~TJG?$M3>lx;bxFA!%Q-ZFb
zd8TaUY4%|u@C(o{<3Rl0+f(=AzPw<C{vR=AE9lSrJC|m$1tGX|v;KncZItWycrEs5
zgdk){`=+O&fA`w^7UKR33}DGS*)TTp|2}G0;V1<Uj84__??j@ULro-i;uJT`R$o8E
zGAs_p^=doP2clr==eQ68;y_E0a%T|)(4OYy^M)W{C<%1A@h?Ch?sstwS}I6@a5|Z5
z{S);5c(@s~FE0<>mDH!Z73INcma?7P4sncQ#5gsEMS-mMYQ#xOO|X-q<v6TRhHj(J
z&;H2BAYR}gYk{sDRM;2FAGsxkJn4z|E@sHWrJ+_Y4{p@^Su;A(z$6U~MxMtX=L6Kf
z%c}`i)`Ttk9pY9gE$GPL+xp9cc<v|22deBuVd|GHkAAZR#7G&kclQg!&h=um1bQ)e
z@IQ*qI~>cmjpO#-d+*2Id*7#>l@-dCkw}A#GD1ef9*LyPkkS;P=cY(QW|1EnMie1?
zzt{U`$I&52+|PAi=lS`5zD}>G4sCOTm-|ZL%lCXh!TaIp;SnQvO?i}DqFxo;@8S$}
z{}kZz;D^!6HtMiHQ(bFAVggk)HBu6Cmf$&X%lE{lAt(yaQmT+@!^GDSxtzb+P+X;r
z^&?JimSK|VV$L9u>!06J|IcCUO5WfKBhwmjK%`1>V0fO$*-EEj`DBa8VY5mZ5xt7J
zC-tml8%|>{ZtI?T=CXwqkv+96DSt)eVi36BlK30jr;~o3etVvHgR7?8w0Mg+>upiH
zGPH{Q_^{z|f#N+zc_B`Iy{!%NqV1aOza<15h7^A1z6pT(<<|C**kz28l-l*+H#wBv
zd3*8-3prRm&yT$njn2)6uyb(cJC<sHMbfW}7L-Q_yOB-E>q+&D;Up{ShyCwQTsJyb
zzu0e@(?3RD$oU4I@F{9YyqiD&b%!6`$#{)9vGN1=qEL?2iU^Rf`rcNQLif(n>o2dq
zWQ2Fm)UJ^~V}-d-WarOy@PN0*y~bW?1#p!aP5g|!c4vEJMinR-A^05r{aYYE1SjZz
z`RRl5h?Up8l4S_s!n(^X#fP}u!mpq2NeaW+{|0(#P~Xgvp+~o}kf(h0c4w<Zqztg9
zsQx)LFAO?V-!tqHKlSXkWkK{wUicMKRwRqwBQ?8BeJtK^fz_Yc*AISh0sqL#_Ma_!
z@GuCvcMW~Nzs^e!^4U<pLFn`Ok!xHacB3?9_&Umki8T%^-WLZEn`<erOy%Ik*&EqA
zLlkgg-@a}Yy|4CfUT99S<pufG7u?ZOH1P9XmlnCEAS@>(bQj(u0H^+Oa@A0Icw3YE
znzNk?B2BE%IliWVE%iJ4?)n@+Y(3$Zn#K-m)C|fwq!Os-&g8iAU17MP-K>#)X#`Wq
ze&3*H%ngerAM_OVSfDMj!<;rq7W6pwg=V_M!0pCEM~!*`IH-o`kxi6KdwtdL(X&ya
z$!zC6u5vkG$d-D}@r3|o8vL@2Tgs5yPBtcSMhFVjIhaH~qde$-o?Cf<EX>}oZK0#w
z$J)n4vK4pPU}Azo)?14We8;O&*C~X+tXH79^%ns=lCHCx+?0nCy;oyBT(&W)n**zx
zOQ^?<@$3ctKP>S1GRd9u;mFrdwedjjFCXM`6#m^;mj|2A^Oc{X1Yw=><Chb;GQgOf
z{K;2V8J1s%dqTH1tYz&R{%}+P^)n_vyEDWfx-i!{=A<Nir)6v`C#S^~rs$0Whq&<g
zdEDG#R}hzfr5`xcN&;>T$KzNE=7}2e%zFX*jQHJAO$(9%0i1B=u`Xv19ZtiQn0Ed4
zDp6f?Y0>oX0nxudazc9=d8*!8X?*#}gqOZI@8o^Xi(i~iKGiA5ffM#D9IwAc{fmr}
zztqR*fV+sxCw6a>n4`UaOAO6bw`j;7OdaFI%d_X=BhGW+s%;WPe*z2q+a5nwM#hf6
zPZ}b9-AaxBcy}kHIFkV%O8$%jCF@u~-VvomApv}*m$G#S7sqcZpR>7$c(j$K4VCIf
zUOZ@Mm*vMkHSX$MFv<OX3oFZbTfxiBhZAD=TT`<+@#SLbgAWeuIPtXm5L*sC{y>$r
zlpXOM#NP@P+Bqz^^}7Dli5MnacPdIvr*{ie9qn}s$Rh&}*{buO(C1xr)@D+A83k^k
z=;G1nLy0%u^AT4b-63+hI}I&7V#2>HpOSx?i#&AEay}M?$X9yVJ1)Y54d1=)fBF|C
zDPF_iYfN?U3;Xj?rQrD`Qv6mP>EQSYI@|yg-1n{AAd>MiXf2<f!5ZF~(N~z0;>}&(
zGR2;g;U!HRpFh@55Yw{WGtVEQ#G6uw@CUpM_#0)0)^htPZ0K3lSKjJ1VomxLE`Mz%
zd|{T)?7@3xoH!ABJ=>ZUFYg)j$?fCB&z|X^lyh0dgepl-|EgXmnuO)CbSiHV-;>+8
zOWLy_-*RPAEjtD7-C*I;O|ylOtSfH|716@=KiRc|9AB`TJrqjQjx-?XCE+59-aGWd
zid($oBq062y~If|DwyM$Fd?g9hI@>3amhbv;F@Bwo9lHdC<Zykrq+MhU8+aN1}kac
zEoIJ{<HbenvB?kB&w8|o-}$N+6TLzV_1#-NdP)_tV#)I!p!@0r3tpK(<l}NJ`cG>$
z6YUFILN^H^+^`Z?+9ip2PE6HOy_-iF(w8093Md4?1iNbIm4f_lQ!f{23OPXBdP_fL
zQWYBJHQb9!Ie{2ja&PakI%LniG2$;GK%iOt<X|!CvB*R>>>6>94V2xwC@BK*RZ^|`
zh%*?uew~sUab#_3vxLk`h(|Wu3ckzDjptvyfu{$2CD!G07<uQj;OAeOf3f~9frkdS
zlggsJvmuv?!k{!IzMQf_Z%Kl@yPZcPn>Uf)x^eKV0u={-MgEijCJEY0q}-{yV8(#|
zl-Vx+F|kH0n|`h=d`1NS`!Vi!_Y~?e-g&H$Im(8UolLtGdFe0lW`+P=g!MP#LZF+H
zcgb&JRmqT#8_z27<l*P^=1O}+^j9U!A2L8p`-pJU@&u;ZT0d}6`WI2I>EC{5)(p`I
zOAgdETq0f!rKVgd9wq9Wy!9m1lo3B7^y=6~FbV$VgxqlFO)C7E;;vDv^9XUS=%Hq7
z^dxajarx`te=9`uUsp*UEKL$eSBtY!C>DtK6qIsY)VGKwIRW0MV^l!UYUk{H$RhD~
zfUDPObibQPF%jpLUB+IX)-mMK<b++a5icY3^D*;~OgoHtII54qR`z_zW0{>`1)|9B
zKzL#}R=q>q$Oye@M5zYW^mC_U*SNrtWiHgLcM?k)dZT%JmmOp%OP;1NQ-M#Vox;UV
zA+Y?n+0ot24))KhEd4%_g2r#VD0?~7JLon1sKAaNO5bk}igQZBooNUDaa|UuRZRQW
zv5!1v?`yP$99cnj?B>TM#2tTKQI=r4E)CNvg&%&sp@Y$#W5oRT^F&<aPNa|&@~(Y-
zaKxIE1E!B&Q`_JWhxq<lOBh_lMD*%=rb0Wgz-z9T&ffb%ERke9Jj+G}r&eRGO?*Ie
zw?Rj$TgIxuojT_je9{#1R$WqKMHEoK^fB${`4Zqy5K?YT)du0OFD|P^sKTRYmh-a}
z>QElJ;9-S$9%}g?|Nf-OfY}$9ryKlQsNX4qvkLXS$e!C&Uw)trwxNuHAIBA8VEui}
z8}yziFzF~QL8}hOlDVlC0~MjwyIX7p`L<XYHv@GuQLg-?;0ONqY7n5n<PoK#4iSFA
zjC$zL2lgQ0N~H-$Dv9-cn`%%N#e9~^TNR3aoBpb!kcCO!%`&zBw4o^0qUIr!7R<1k
zw4WN&hNkT1cJDzo$o=4QHN#j1^#U5sXs@WkHGWo(5Hc;$@Z|{pH=qv1*N?{bqrQ;H
z-xHJbmw4b1dv&DELly|0l`Bb~<^zu}^sV>PS)gQw?7OJwU(C4tnT~m&1Q4iNlN5Ai
zpq0e3Lv&OLF1#Z*{B%+QJ~!|LMK;Mo-#rQUU6f1k%Y9=jLcs?i<4SYyzH$ItHZISj
zC=Rbw{BLi_pgl&^-kmq1$WI~T7uHjUat-nHpSvm*prT^?p$``?I>*^}TD+uSm+QOX
z_Zx^Wyc~G^J(^!otp&@neNhJ2=u0<q_T}Ksg7&v|ass%KEhh8|h(oo&8;e*n#JNV~
z7Ressgn~hv@>ApDFiquPW97*OZc!f_f4>lc14riPaf)(49I(zQK;FC@>Sohza(VEh
z>ePK$E(n3zZbocZ8nFAVlN+`rba1@D!Onz&4O}%mCP%aAz*BHJAe5XQ&ZjI|l5n#^
z)DPx^&wr8s{p=@0wqW$$ICpBQQH&d^W8e9@6_5gJdQq|9e{(30+`bcHN(B<7l(hzX
zJa9Rl`*lYD0A@yB)0q8i1&ce~F!{iV1Gam8a;8k!fbWu`aJ3;FJg7HK;JSQ(+4!0=
z>hbU((7GU<nV%fE><*6^$0~r~On<V;M@k^yTMb-LV*~Dx5(yU_X%LaG^5a|+g%;aA
zKZiLw5SWkS6q=_3cRE$>&#XKU!yb5l{wmr-m%jfw&h`VFs~(+mi(v!9Be5MkuV~;R
zZ!m6A$`1Fw2`0{6LL6mE81L9UBe?Q!`bfm85u}EVv47D#47wS~;$4y!$ou!I?ohfF
z%=NFAS@@v7qZgyCOg|(cYh6`RYF-j3$*`_^XB9MeFlV{>2=N4sRc6-{<)NKf!t(Ha
zl>hS|pSY*20lyYaGyeKZf~}L)SWTA-%+=M%jOwX_{T98BoxB=!><ASZ^cq8gi3zQx
zkq#ui5#cE~qzg~RD2(=g2txX;WY#|9J^5}Tf0e0B7exERS7d4dJa%iDdCW{8UuHKk
z#S!(N#T=z!^~0d=#&GIXtr_f2`HNldG=|a>rH)i37NB1Jm0OU~6i&s_&#{@?0HyX!
zjF<8us8Y6Z4G^$^+IecBd&OqJl*fHpOIj8BnXeB@X2`<Kpy#P$Y6PfWPZ27umjbCP
z?WON+RDohc$nKT947|C-$&)ds0>4jM8Q;-Vg!ZYr*4_Xqs2tYm`{1Yy|Jk(CH<GKs
z5WifT)oFE5eH5k>TPqK~vOg~;&`ZO75I=hn;skF;(bpvZ=7+FgEvHxhA}};bND)F_
zq^}MA1(c^*;BXUOR>~`dJWQSg1&+e77}+U*(oX=2v$ns`9A^eg`A^S&x=_KnT#FC;
z>*7G|>vl>(Pz{L0TV=B4TA)Lp+vQ}S2ERr|J93njVIi(`Xze=s9DMnW?47$TRI@L#
zX?hvKk+oXk$z)|<cjGYMoz@2S_`5ePTSUN2>-}A?l1<_-OGy#$qw~b*yHRdDw%ic8
z7Smx>gyydC$L@()vIBvE+r$;^?Ob<w<<uuB@CE))??#o;9#7&!X~FCs=F8Q*y6*Fn
z=yi;Xo98Yy9t1?`v<IwsREt7j81niI^H`65yRb>5qy6Gwv^a^4>clWlPO-zuM?E`T
ze@TEdK*Payg9T?FS5ugoV1brtIaz=AWsH$k@aMaS?4bSBp1IXh6s)eZFMAcSK<xJI
z>5j_`aDmwF+*=?Bxp6!+dN~K!v)McH5AuY;Zs(=cQDzZ1a(V4`Zq9e?iSK8QUpOfw
zI45R12ymkN<)EkX0^)LLFV->d{=`U>sy)*LhKOTYi3aiZD3e3=pjJ;5d4OwsLtjrR
zgY=;(&ShP7s0<<zv({CB_<cpe;aOQ=y6aY3JH-XPbpEw$1;`Jrc_4JeNeK9l&iFrx
z6ot?Q9?w)28PJKBlc7jPeYV+_TQ@1hpp~Ea-RKknY_}SUdaOm@!Fb{GtH|?Zaje`-
zZUf~hHVj@kB7Q>pNYz(9lyBz|W}~n~KX29eMCvv(Iq3G2@Oy)D8KO>q9I|S4AujwI
zg?^JdBsTp%tlg~u>D}x{ZIP!$FCc2B`ytASE`AkWuV8^Ij~`OF!U|R)LKk&F!U#{J
zBfR!rqJG45KRb!5JW!N$y4cZ92C^huI=ZVBA=ZA0S?wGF0%-r%*Zkv#fsR6*xE2!l
zb+qY|2<a+Debm}G)R`R2y1F`>*WVFyJrzr<4puN;B^sf0>?^UX@`$?43_JY7y&sWV
zP{Wn>LoX$M(7=^g)3#sey*Tydn&#&;<i%l_6H2AtB%VCQD<&edM*Np|y-GC|&GVP<
z_6&}YLj3jp^MuFTaO~Qb689Kha98FvJ-oyXeV5<Aa#=)sUV-_Kq^$>-o$U?7vjV99
z(tho~6UGdX_(c7rBRey&&YR_O9A*b1m16?E_84)(+tDU^@hhfH6=<kqzl<H-jqEZ~
z`%GkupVLX|tHMsP4{mEa&k_%qNE$5_=8269>~CW3Phrl_#qBVMCz$V--c;w@Ped8*
zPQ?|LkHp$G^@;<IK4NcK|L!Z~;ocNePo*;B1yk>C{zrmz&@_{*Ja&4ND6NNC&GjP>
zn0j^o#&b?ko@ig2xyuHxqWQ@M*vawF-`Zb3PUlBCAWo*&i0eDh;m~|PONYyl)_4SV
zaf7B*o}pD0C+=6K8kZ>~h+lme2YSau!RL#3+VvM~ur$Nt5Vgn(FW9gBclrG&QAs`9
zQZ<JMPx^6)R}Rewb-ol5v=MJe+f21vKB<VG%9Hn%M11)lan{zCtIGJKV}bck7FoDE
z)_Ujs6cvO?W$zq0E)1qLjdq-&wD|BYdz7LFx=-mC4Njn5G|PL;N9Q>h;bG_*OONgq
zEJu2>RND3*QF=<_-cTtkF4Sk-Il$!r_RaYBd-5g_r1pC;z1RU*GUHQigl*xl-jx`!
zZCg0v<xnbXi+V3F1zzQhH-+S1etHv#+fFD53li5gg_X%=&w3)jeA+hc(3}xei{5cw
zLg&lZ+o6Y_SD`tXo&GA{6C-Gk{`N6V%LqJvvQZ}&IKk`8yt$GYI~biczNS`g1>e0$
zoUJqLpvXSnV}$20JS~<HnZ05SGq;k>cs1;iH&@q#T)-75V#<X^oJ`@>iw~K*`95Gk
z7yjY#4NHh0VmY&?XbDCo_sdC14}*gbNlyJ0TaayjD#EvC4pc40`6p5>LHyFwh{gsR
za5a4OSzOBoo_57f9j&kfH^yO6D|s8}Pgam9W%x<V62kd?j5&dlVo*#pgb#7LZKYTj
zJ>1mBo?Jkl(hl45cE1n`c*Dvs<z~nWq53yWA0s|{A>n6qLZArvb$knUM&6yM`(>XO
zSg3%9lGtWk$_Bzqugi7NoQp8yqY~UC3Lb1P+swD=Av~_@WqP+56pzfS9H$Wgs(JgU
z$QSI;!^OjTgdg?2D3BMkIEVpvK3lMGBOiSIF8W*0ha1=?QaTmBaYL`!%A^C@M@IU#
zIF=x<t=(*t_fOY-V%JG-si<RYc<O(d$8Y_&jPWrW|Cz4eAg0%-aY;_H;F=g)d1L@H
zJ|DZj=EXsQYkv*;JI_Rh-@8#K{Px~9miyPIZ~EK{G2DH;$z<yf(LG(3fF-sPB}Z)=
zK0JIwO#QnqLDXZz57~uXAGk`13%R_FuR?zP0!Jg~^d~~_VRS5WV4oLGIr4^(NucLo
z_~x)KB@NzY`IH%pLvv)Eo-OX5C|6^AnuD`W1h|#iGuzGzL4%8ae?^i2>>CPF-}|Nn
zfAyT+lxAr{+@Qt{zDFv6SLa+=LAk37>8WN4HsXL0!zi+*RiSHQ+`a+r)z3D*YR*7B
zezDOfskJxAFEYD$0Yh^{v8Ojg*##6J<9%J`zn|*xvcgFbkC%hV=rTPj31x7(mPr_!
z-~%rw$A7(OeoiTt;=duH3cL?|?xbv?e!svKEwvsw=&3Xl74g_2x+xy-h(exE|KOL&
zm)#ZN@6o~QIP#IqE*j?NzLEunlcd!zn`L3+u=GzGbT4{`1*_uk)FIx3V}M^;4a7Vd
z1aAZK1HX@&Ek`+`C&o5;TU^Qz`xw)|qKD48R<cUR24xtRzV14VdMEkhk8LcbC_sI=
zgTalf(lFvE#-!Y-0B)xfj*p<P_iJ4|#{QTp1aRXm(Ht^>e{eTE=OhpGV`ps4(fr!>
z8$Vuf7M*)zgJZ9~P|xMY2b%C#@}MBowlawJ4FzSXL7u|W@LNiT&7VXJ@Ia-hMK%Sf
ztjN^$+z^MYEMc!}h!?xF%xmU`Jd=|)dH#{*;t+ZExk8+?IC}1<G3_ZyaH^gD@?MJ@
ze%{qiNO>&=p1ifABheJ_Ui!bLS0N%$y>#|%GdTmO$WNag%wY$o@At2yyl01EtNMI9
z6B-x|8LIxTa1Fy6z4!=5JV18n@A%IiVQ^;ul*@r~Pv2>}0;j!bVWH%RK=2QApSVET
zP>=X;TFr^OhA-LhO8xIM;TwE7Ww!InQ73lXdc*bPu^|q8-#SwK6XQ5BLzP@_<qQ+<
zYL#a#Ysrb%_MD9@^Jc@<Qh#CR&T`}5186=suCd{_YiW%WY}xP-2Ck&;9By3V@@u32
z_w^jVxYT*hh74z3di$`Vf)?*Te)!DvHY+|CXOsMIfDixdY4ONrpA)Z7dqMm393`$(
zI&@HjJaK_>ERTAhGT>gc6JbhK5<sa&5NG3O!VkR)<;{s&!5r|L|J`dAf%7&@ehnt_
zz@#t}-tdtCg7iN$>p1qYq2?ZruPOW>7v&Obpu`Q+x=)MqJ4K=EZNRJW=g2F#cByb6
zRs_V3tAFKmM7`Ph{qbq%#NpzDiGjF0ap0D(Xb+`8-p~VqjEk0NKk)L@!+>`TkWS0M
z;MIxt(#@HRY+iz}7Wd8Kp{*3O#04;1%jbY6Iexizt)kFS`NYwzo(&wX$}EjOU<00i
z!mmnE4?tLX7|C-b36NPj6Ib_te@1k4W&!e-=G+uvdV%gme4*YveTciJ5bAWNekB7>
z2UUD1?g&6%@p+>yY5~|Q4Orj4je1qDXp-tXs6d+g@BN>#XkR%uZO}j>4cKbR>@zJn
zNL1+$-#n?0a^Af)T#_h{omTzS@Pz@4?hV(zSyKhdqmAOqmjPn<CTI@{tH9IC!s8to
z%HX3DB!1*T1!V6^tSpovZ@0J3))dOu9(8NuI)e5!Cu~m4nW5Z9!3pjt!3ZP31Wp-U
zYy&X4|1Y06Nev7ahv|14^$;)rYl7e)0|Kim6fU>4VSt7AzjvV$K-E{iCVx{E1~>O*
zMAKDaWb*hiR+LNfxhPZYtF8<>jcF;b#!$alsM@Xj=w4~~P@vEzK@asvG+kSHp#_y?
z2BWd)o)bBI+aqUA0&EO6_wU@H2YZtiy7bHch}G^#R04(fiChHpzyOCyEU~8S^H~N)
z{H&e3Yud^jk-tg%-Fy}m{(dnq{7v#6@rvqKer0J6_@c#iM}U$Z>arD`vQF+|Nrg8`
zD}1-GoMX*&iu~w3XZ3NDs0Tm1Cbdq}DMcRb6P*D+v`HXzmqp!dP!1UH-B$SiOc<_h
zlhjkar-6u^eIqMH3gEgRE6n56NX+PMipe>>MLdox`aC^>`hRTJvK=kyp<#bjN|%%m
zesE~L8VnMJknHp@*{NCVUGaPcQwzE`-z;st`<oFS<*NUl=i`7!TN34-v}`~(LlBxB
zMjoWPTkTKT(Ejvr>q;HsBj@7H>jG+M!HRabg33z?Y;_7H`XAFkVTom1v)Omz@A1WS
zYzw`I{s|vGmB$YB-U&Nrbot;;oz0tTSEh-FzLa_SB0kr2>!n}z3*>LRuI><Rit@eV
z$)1MhVo+65{Gj*d09JUOQvPeA4E)1RX49<jK!`eNlEq2nl}>h?J6K1YY$t(gWtt8A
zsO=v1YKXvmvV|lCK>{XP^~pBgp<H(%<<xy+QOKXI=Gg9#fcE(Bk9BDILEI)StQyTV
zhz`t_SAxWW`IALJOq>*S{Nm(uMZbUhstt}*KNVoaqg1aK^?KU2=5K{pDnU%t(NuxI
z8<^5bg@jB@2GW)}TzoPRM-^wAA9hs~1VXh^CRrrFx1JE0g!c7HkCGb0C=Ns2-KM}@
zX=li39;=Nwa|E<j{5lGY&Ec$$Q_LM>C$POz%v2U(3E`*54nA~SfQG5Q<YhH`2wIYz
zztV%=rv_s+j>a0p+sg}7q-OSDTz=sRNv0#*dzbabT+R$?lg;jaZ?T4L(z0R`eH*y*
ziT4C^1fcyfJ%?<OJv4F+iT-dt0wm!FLf#T~@O&auFuTbK(teM{O`os={mO9mByn4K
ztxrKh-sAuotqY%-iRMs$dLbq+(iF}pY~ApuGy~;A!>+F{ZNL+!F_%O0lY!q!^cJRw
z_meLgy=h|sYPGcYM%Yc@Od#``?TQ(29Vq76TsDSveGi4&5mV^H41W%`0|cx)+_{lQ
z2cn-Z|L6IO0xik@aVZILL#40K)oqmPQOnB9W!Yi@(hWXKY4my5@X`O-o1^3qePm_L
zpj8CrN$_6%SM0D(BE2n#a)7#PWg*!XsFyxwc(BJw0CF7p3h3#$pd&X!j7pXY7^Zp?
z$<z@4JM?X6f*X01|J>?}U*(3E!JgtIdmNw>yLi_Y<zVu)Za$+3XN8qTOt{L07N~>z
zcm;J>AXiYksEL{#Ud&XFUqHS`g8Uc7*XQZsY;ID-KpZy&O3>wAMEP=qSMvNMbiCle
znZqpiOAvktxVx@}ihu^cMvm?r+6N@yEAJ<S!Ci7sA+<*Yf_hwYmut~^YWbgz?0rEv
zq&rDm^5KC5@xQD0i&??V=*$V)PYggV<%-6dJDB)AlOJsJOfYd)WL)ytJ~4%)@o#2P
zHf9+nz8{V9rFzuqu_FXl+|+%s%v)fCSj`iC$G3n58qS<@4B%t}o#UV7vvOJS*0+^*
zcZ^u@wj;3m>hKt*D(ykP`I{CJq80u|YqCLra}(9e;{qUP-Ni@2HIJ!0^zEor7lYkr
zvEIH9IpBiu_{16;3s`RdSO3pR9107+7}E-(enz_4YVjs<D62iD8EW^7xc)kgkL}Gm
zcE!u|^l%~>)H$VfgtY%7Hjr4T+1**f26mfX%%FU;Uo>|N^CcGa^O%iOM*Gy#o8{3{
zXBdF%Taf`rIRi9%4^Ex-N1l29?R3o=<f+?w{rl#S3XJ-?U|K1fFkV1Pm`DEMnh>Y>
zQ96_-bZM)`s|j#GB>V_4Rfp7Tjb|&+=gW&wZ83p5N#LYP|CT91088&K-v|>iNa;HB
zL#<8$g3-L9FcS5eGIEb?pm~NZr-*R{$~7fKjF4T5)`P`79h*&V6%aGMtW|MG6$HP1
za_u^W{5d{Prf>J49*8$Fr-eGy!NM<awGri_ng}ff*C%K`z!0BQfP6P<zLIBIV)WpK
zB(F~9H!Tp{rf5152<US?P=(RO5N4hl1duhTg0*bo%=zm^z%vp2w)U$oyd^0)8oy--
zBsuMtJ6i^Du)`8JKZ)kwbIWR7sQ-2UWl-@O^*y3xs=RgS2siGzNUnReiWE;GiYK@F
zG2(J|6YFQY+40j;D_3Q;cd-WP1((v}6IcM9K;K>770g2*BCO>z1DM~+>T^fjNfDci
zRY(mt*ccAwh0Aioqk}3ZD|rSO`Tp<Y{sq+glC4PiVMB>>^w(&-{V8y<#exWHl3naN
z<**B>2)b9qopmlZz%ie(OE=i&P;cA6{GdXN4eTv^7Sb-EIn}6v)M_aWptgWh$3?cW
zZ$#187FHV==0LDiK7shR-?zp%UvlG@Jtre~Tq$v_vu2aqwQP9AjXPG-R}Zj<{bTAo
zXBc6^oYX}V`5C2Y-Uqq}O=C+3kHoG#|3O@H<6OF>D-Pe2l)J@_p#IJA)8bn<Ss}hi
z38{KWfIyz#F5xJHm!`kG-?4*w5{~>i^IH?;fD0O~eElp3(=9wc^L@y3y*bPFFp3cp
z4eMwPVr0Sd9<7b$G~x}mXzOaJ2ylczkYZ3rdw2)8S5wcFq568blOFQArCj}v_x)6Y
zo2Bj@!JbGA#k5hWT_Oq7f9cj9N22$>H)nb1A2(y27Lz-?*To@_?8<WG3?JCXYSQ@q
zM-Dm0*A#k-MZq$ZI;emVJ!hfbG=Ya1V5y<b==j}PO!-h*`_c9Y;!M|RsaCgDqSFF<
zMOmRLP)TeuOd`*M%a|u|mM8!ooQXwC6a27$X5FDrc^UgisL;EwrUSYh*=f%nsKcs_
zYj#O4@;O;ptXwBUJe|xt{<rKXUq?=_(4|BNCk`|gS1reg`9&Ia%<+@h>NhDvq3tcK
z#8{{)^&<(Sy^xu5c_st;mR;ND1Gr%CyxFMfWh$Je<dxNN=O@_Pmi6SQImA~eyr6Gk
zR{*chn>5ttG(p|<{?Q@S17FFbETtENy!Z^7n^)EKV0c?>t6x$DdPse2&2Gzr<OlUQ
zi+tp!_-f4fl}Q>BZg?*w*du<frs%56lrS8xCy7bn768xr;sBc0Y#@HChCUE^&<I=-
z$BR%N=WAX3!;%XkP`3Mi=~jXis8`|gVqa(=cst4Oyg$l^Una?R<|T!t=8LyaER*20
zMHeG(ms8{9CuA?TBR{GemyGU5`WfO@U)%Sax&nB>iQ%DQAyS~~J$^O6`wy`zDC#~J
z^2vM(Tej%BN&#c(*=bKVXz-2g>xDY}d&H)sA8TVfyTr2JcW31ftz$I>{nuxbd2oBN
zgHze8<oI^1#Epm<GSDR{-3;-efm~wwT{k22|8DD=X^DIe^>)ugO4#|~Pp|Jpjr%P2
zuTHnN^#ciLbiKa&IAj+)@-EQ!KEpb8E>$J)7wVO`8FSp#M~)S|Hufln-?N}x<^6&;
zQ|R~JYx>b>DmlodAM?!nO#;M;!!fSh8<=kW9;YEcC9HM*$qO;$0Ka)@H6a@Y+@mV8
z((@M$X!M`=nQJD6ydyK;$3ATm(QDY}JIM_AlaT5hEq-=*YldmM%1#q4O{-|EPKttN
z)zOyK7veCx6?^F8_%=2y{lPIRa2{(J`9}SOQ3PxS2NksAchFq>!lgPIE*Pj2LRFod
zF!Cd);4qq}iQLG^(a~3iFLP?#gGWVx;qJwHA!_8)z4Ph0)h3$Hp7NKcR8j;R(tj!o
zabhs5+xD{u<u#SA{pnmrJycIP65XqhD1uYw$-h^uRl(WTx6SH55x9DSKJGvNIbu|>
ze61<VKcW%UP(Hcc5N3Vyn6yauHm350JK|C45;4Q?uHOdQ4;nNq3I7pWCfeHh{`vN5
z4pTRJoo1TN3QaWnU2iRCh$7yU%_lFTdx|irO-6zie7W@|=o-rB#jdWAMxND$7dPa_
zOkZk%slo%PKc`ecsc1c+?VKt!JNxn8o>7BO4D`dkqAHM?|4Dn_M+XvDw=-BVRq)+C
zl=o~w0p{Gl-M{rn9o8Hl47Dnv^Uj9#?d&BTX!xMqM-z*3>xCb~Xjn91cSn~#40&3O
z{q>@B^9^C>?vtKyNp(2h5o059LlbEFbVa|eE5p?hXR-uz{@gMAHQ4__11SEu<dBqV
zfEm58&^)<14BwOL{u{0bgz)TRZ0PGV%$_*rjQo{E@(&~iMk=7$t{fVT^7&~KStcTD
z>Oh))nEn!`3)5_@7ykX!1|2c|t&C@APxa?9M~D>}9-}i*Oy9+XAD_;NaF944UJrUb
z68>zRm>j?ozFxmXd_4H+uN3uPjIWSJ@(cwz2vt9==?S8ScRmfD*w#q!gAeaje%E~`
zGU!IAB`OYKGWVX43<j`)!kf#|4-prBYUa^YUM?w!>dc?JQb>S|u+D*+G!DoZ&^V%K
zj`)rm10m@GZus~u<mkOrHi!wR>K#EG{~?bfq4vR@M80$O3M>*7I9+q7`tzsM5cx{M
z{Y={&7Pt||T4b}15wimPCZ34G=L&PFO6E1J=MHs~y(kxKE`PXGFCzrLM`y3q$uWb@
zsZ)$v;gqmf@$9x~IyG1=s?vo|^FU{hbBKv8;^fs9NPEkLLH5D+6mdurDvuCGnY_i}
zV{yXSep&RqkZLhkClO%0MZKC*SP{a^2m}4TC<kKp_eNzC4_rVXh`<pR7-8bJqkcyZ
zQn4BS%-?x|nK<m;JSGT{3}$sUk^30Kx`(D6{Q=fdb#CTS3n^^39X8lNeS>xlJj&Os
z6+ne8x+e6x0_1?TZ4BD8Oxd0wuKkn*TAq$8L0zaPl4jfXswO}DuJT@v6(a!Y6Z-a*
zT>{8t%m$S`mj>mO(2q&I1Q0ctFMYH8n~2OEm0_RPu#9Y>=PKM3pxN4y9*Q{GRu+-E
zL%w9tQJkejb&d_HQkR?UqbOmRg2?CY!v}+6$u56HL}AgWi8d>X2Y#%!-?LoQg`evV
z4mw7LaCEzYt}0I#>MSnD>yMbj{gXXUKQsXlt@@*Sp4!4P%|@Tffia}(hp_x2qWqBl
zpwR3iYgpmEu{A1a15W=g6!o~6z#lL91P6v=u<^OWcuU+0=;@m>$0W@l=0dwyX`CG>
zw{{#A?qi2lbw#gGMq}`A8VIa9XAGfbwg&AA`jC`h`sMB)C8&Bn@Nm)-J$EAN2ki{T
zV0<-!DsRIOu6_L2Z*^M*azqamz4B8AVVgd&p7VwfR;&JRya+&1CC#<;s1dBTTRlx&
zw+5|NhMYT|*5L7ZVtZ%B2<DY^$6iL8K_=hYL|2G8Sdu@g6S!swY2A`z9;y~lXxrMt
z&_RG(e$VQXWl+ywV^U9eIXgU45@qO?kcP)}^O`NZ3Xq)HEmJ(p2Ccl4UyY?$K<rsF
z*^1u|(cZW&me|P$le1^6gbuTSF0Sj@$;u3|o?@p<Q2w-Lj&mv@6!`-!#%o(qzgd@H
z$fUkD7hF=bRtV`+giHJ7UrgOOpq|?;f@PBhPI3-E6C@XbU-xIP6pC}e0#109bVe9h
zdG<Qfsn@W$5Op5=Gw58={`k<cN&o^z`wH#!L?J*fbMp||qg2@6{`vYl>Wg^ns&%Vz
z3zMq+!Z*FUiUoGmtI0B<d&h=L?w{>F?CnM$S*mz1CYbGY#_PT?Tu{}%$)dPL>?(fT
zO>>A3`6q<fZ4`yz_Daz={$r>|^W>46_pcD3Zm^>@2%VR9DmqFb-#FpUcU-D5Tog`q
zY#bYAQ3l$Xr#p=;a-fe9MOie};gNF2HUr|2-+xyh{8cUsCloZJ#?krWrd~=}#2^lq
zm>BIpc16f>ACYdx<)OTf)vLBn3@pQrxA7m52k~L4HSK8*D9*nfYx9s4j=txopnoO^
zO~I3#b&b*xoojesUkuI9d-x)o{|Z8Z0ZCLK;_W@BGc?~^M4t~Gg5MRpWWezHg`<+w
zQXqV~>FqUr8TdBEy{S1X4Lvzp3=AwPV6ov{VEI!V7B4KV&9ckG7W=J4ej@@@-r<~j
zbqR3^u}yECU&_MS5<>5ZHB*?P&3Y%#uMdBvrdv8UmB2*dZ>hPQBn0~<Nwr}{z-nQy
zO?A!+xF5btmJ76j<Njat&*v*a4+*c#8%-_fqn(uA+pvJ0XYW~Gd^LsLH~~S%bIRa<
zKVSSA@-o(rZ~6D|>A(PA?xCZMMv!}#?ynHPF|=NrDD>PhhRn^st{;&PQdHZ>>*8%w
z_$%sIpdhISZln%xb!jYMD46BKaEL8T+|ZUUAvXp_ZUI}-MFS9Re*fa49RN8$vpo}<
z%Scrwn(9jN0L6*3)e&(@P#u=SkpD*w2<w{1Gk%DG_u!qQW~b$#EQF0@%3cMsFNp@7
zY*z)&24A@w@+#n+Tb~*=r~@$)9_dff?@0k||HR-O2G};1(-FP4j~RY0a39uWhkt1W
z+LihuKzhx)-3j$Xoev*v5lRvRk%$}iT&?JSU*Pvns)ZT8)V8wMd=vm0HcbabV*!*8
z(<v0TVFkFB=)jUi1ydGu>|Z&MzgS0T+0-2MsNJet9JnP52EWgLnEoLO%;x#q{?uaN
z_h3IPgI5qNSvM_ByQE>rGCb$Swg?cs1J!4KiGfZ|LBDepx(}$Ta~jnmo_LMWyLFQQ
zGvS83Ls}%D6aD?IYruDm)iOR{TW}w%*}odG>Pia{ubp1j25|t~pYE1Bj`(Sn5~{}A
zo0z6Okw$EJ8M}FRuQBH;73|)2KeNz{xJnJPeeatrpkM#}g>JMq9AjOl;>tpN+*a5T
zu}>PXWMISPT!;9^)+bN*jFmxx?Bep-LbM;TA-$uRs0;%APZ1r2e9CsOB2V;)!iG#u
z`l%Nz$X8u)v2{%rv=@AK&!GI=S}fP&1;lr^UxcPUcT@13=$?M8E&=!ZsvBJMRp8p}
zR9a#p+GFg^Pmqjrz$$g{^%M8Gf#xM!-3JC$X!$7ppUE8R;m|*}Lt>8hN7CWcrxVnG
z$@1~pnLjA+z}+`-%XR@Ho4FM3{hAW@OmWK>UzUYTTD1h_`>3BMFUeB>wGi}`sEJrv
zi^1o$O!w0Xijc-sk(-UqxfII_@t*alXK6#TJ40I*Fv|&xrkT^A#?XD6lO`Op#;CRJ
zHqRq&MSCct#vgh=4MZtUodf1$hw4h~Lty`-jd*}n05BxkZtq2fz^{j{gT}^Z(7f}h
z#TU6S82GR6LSbGUh-eyK{n&I4n!XJlUI!mIJ97O|SVcH|RnNQ;sB#h<P6iw!yzvFY
z#8zLElR<DsMpA5f^e7w_>^-mX(HAyFp0sGc_JW7on_LUB$3ac|?OHrz5O{xS3@LXy
z58L<hZzd7XL+M)CB`ve_Fv#_;KkKM3Fh+*34pR6+lT+HAZR-FaQ(XRGeBn6aBA?y9
zSa=*xpY2!;{No4uY2)p?dVX*NuEm`bIu44ZVPCwXkAvi+AqS1S#}IEr_i2|MU@7r+
zZzJ+aTv4$;W)fxy5ksd1zP`X9qram=33+kPOtQ*l9Yg;53SZHqZxmo`=;vrI+Jgzc
z4Nl?wBoFh!8gYk872u)L>Wl#5i?rv2DSTK_55dz-N;f+-@X*!DuH?{y-G0|SIT1}5
zO%omyj+TSq6Hm=!MwLMsyAiy)K!7__oh!x03c!C|BykDt0|hAf*=`2Pg7pzX>$!gl
za9~s$STmsxU&9q_$25_rQ%d4Wyt)clKOAUsIVAxCQ=1J;!UWWl=l<hdr8G=_wtE`j
ztq79xud9!Z$be)z&sVQ*J~&`|clxd|>XYF#aOqK22R4Nd!_3`sVC6-|bK6H2REOOP
zbIK3FBi7O}=1vPBOL#)gl4t>^!;K`hURxl)bNrFyzbI#R^}c@eF)he&R@*YZV+?IR
z*Qs3P4dCjBxR%5gBk*m1!rAr27*cOnI+VXfIpj-0FXygca6HxV@%B-DI7)vo{p^=M
z*qM!7E+{bq@2)3IFC{F%GtJ5CLo)_hxwxNZEy|@$mVNtJbO_X!>s=Fms=`~9pL>bw
zh_8HpC~egS@t8L|GH%Ig0&Ohc=J0iO$g8~nctlqP76sl-_mW$HWMo7zIk_2B>W}=U
zLAmhg%?}6cT3SFI;g)RXqzebk7KuHFOu)sL+R*(w!1;pa3c?Y@&-AY*L~yCWg9@tu
zJ{TE6(1keSCut`zZ4#<o(y@gC@=^nX>O&y@m?C%&{X2_0vgO`9CSW)`b;|v?HY6ul
zo-#)Bwum>j{4Mr~Uzp;jF*G)UZ;oH?{1G<<(}Gn|foco*UFso}%W42~v^N-hjv9l`
zptt|UT_gCjLar}@dWguWdCCMSognENS!lPrBhV_%%SO(dfMesOMT#tAV7f10{Cy1I
z-Ld9SV=YrqI~Y`V`Dg&@6$D#@@5UfAbnAs2sUc*X@!}!m0;F%GKPn+Lg72P>CK4);
zkL8f0Pi!&r>PZ~=!0xIA!FMlk_ROO9!M6LrhQ6-Y%}<?kzm33ceMaN4ixx;XN7t<O
zqTce_0;66DW3aGm`fJy)gDE|(i{DCPhLn>e@zQJ*;B3|QL!^oUYUJ<sBtGK;*TYZ0
zd~;@jzhNE!_3N|4!o{|TO2onMFNw+V#q&dJ+s~8T38?=hJ;S(sgAtt6FXdJt9@6^9
zBfJ05eIyxE@Ri+tNaS9Udzb&19qf)fx21hVe!H4`{`@J@PzI{V`yvi?Kc5^cE<w3;
zf$GoWIwCOfXm7g|-4o`Gsawrh*dVcli;*IT4><OJP>iE{bSnM(sdIdSKp8x{wEIm0
zwoh<Lxh+!Q1V5|7{ir%D=~ClA!vr$?D*f}{4fi?V^SwF6wW|ZfPTvnV-?1zZ{RIyd
zDmE<<pDVBYmC#~<2UeQemTwU^aoDEeKOqVH#dAU~yR0y-F_IS=_dx}ZVEq;uSs{ae
zi+dZ*x~YI)Iz3PjzQ=@Dku;=a8f+5tNw<d22Z=zO(ubi2)U#UmIzx|Eod#BmwRg0r
z1i&)zc0g+3Q*1W3tYuY^84s_qy6hUvf*VFxp84>C9ltRCH-}|c0e0eby+hhiPxMLg
z*KziLh#uvo0~X)@5Q~>IW+qVXszH1JIc=4|=)acW_#_EjDp&Tplb<AR-Ro4_!ytlZ
z-u7@&$QH+4?)A$WbLqfo7b;E09dV%HEsA|rCI#mEZL;Ws0va}<5y$@%hWnvpvwyAC
z;ff;TeAoF6qH;#v@vCzz_|T*ReRBvOzGrcybNY@rbp6*Dc0mLK-x7O%ceKwLmaw9V
z7B_;p;EbZVR8tU2cKZ|l#svA>zE&LZF#%TlidPM(Mu0awRsHD)5Z8hV(P@x>=ev*e
zZamtfn*1&hmobOhrzD4in~k7nhohuA%?!k2&3cx{4WQyu#e%M!9@tZFTs84^0vVgI
zf1-ZoF#k4{lWWNVYG&}F=kzu}&>3j%A2)}fnaaILQb&lj_Q`x8;s7aB{-@CQ3egnw
zvbvp?a646*M(2_PkYJa(TkFihZOQQ&2&utB?eELq>eWHLzI8dq0PU&18Gkr`K_7W=
zs`MAG8AG_|)et=^LpaSEUUm3}8B8QS(VZbPf*Y~TZDqYiz&$>;m~|KB(If1e<ML&|
zF*k4EUZ*?+{5R)jaZv?$wG(Lz5O;VtDogq>@&r77=h_$kk`mr)bl%9Dn<V=8#xn%h
z_hJTVD|&CYMPcpX#cxmV$wF1R%h`epC@<18>P^=o2(mTOJZ?ADz|o1VW;>A+>}V3G
z$eXx8Q-na_dYlg0lYY85HS>a%L~Xv{EH$1#v2kstl?RN!oB|PEbiZffdVX*q2!)G=
z6aMk2k1Tjdnj05^@tug23^EzS3m)E2J3xESd`j9&i*k_fG5mW{TOAsWmgOyyHQ|a+
z+4i6Js?geT{Fu&VaUlIX5ZK>~@?u&9QyRqC&@`gU9`YhLKX1HCQX~N+Y)qGX5obAa
z`n5aj9}yU6v<%ny#|uS;uJIb&+#tX^UQUVl^~oRnRv(vCAw_RQsbo(XPCq~Ke2+&C
z?)nFr?Y$I(E6z=OY{+ADJYfAty)E(y+64%Sugk%o58T33j}+lb`X}~6#8KNEB1VRw
zo`6ZRe^(crg<vq5pSV242?iD}H{1za;ALlFZ8gXOT&p~NI_8uRQOtkyV1^qW$Zar7
z2hhX3%)Zn88WNy(S$M*ou}a)Yxof?}NCqdu=`_^Z`C)Ng!yQ`?0lUjL7+#|1d{SlI
zLfDH7Jh`3sqNR}c?}qDQ*&q)rUCcPeJHZY8>Q{w~YWYFajzf2ogbFN-Uo}L&kOqZ5
z@kui_3-~pkPDjq<0JGwQVHp+{aGvYbF~@pyFm*gAK5U83DZV?Y%(Hf2?mwK76@Lgo
zg?z2!CcvbfN)y?6Gx*2le2P+74?^{-x(+E=!ocMCw$`#C2;4qwEAvhR!e5w2koW7r
zc{^#|YQ)b;{rt=2HfRY;C+?j8WM~h{r%P*%Ut5AOskXD|5nG7zndX@NaR^lHjyWAR
zw1Qdf;WtY(Hqdl8(6g<>3QpJ9MrQ@v!p%cektepzp+`KE%{kv5zSc}-a~m86)(zSh
z)eiQ+lA+bRd)^%AN_I^A&l|yoYHdHqTlSFW$agSFaD)d_vC3?Vs3$<@VpMXuB@|w{
zwRrBb1FYTKS?|F}@s`@%rIEwj@P*Uw*kq;vbbhfN4kh`4`6tH}T(|v>k<Qp<Gm9eM
z$%%MUHN<TzUt4v#g?RW|Cq&n_ABjM2x#H=@9Z4v?GHPss-lOGp8-s<i)gYsUWO$wt
z?GXcu#~pU)K%351d;#^Ly-IXpiZE1$9gk&Se<_q-xbj9RU{D44pS;NVzt@>YC+VT2
zu_};{`=wc$$Uwb#gw}6TRWP%6mGYkw1co3FP8DaAtDXo*j%nftWviOm1WLr&KQGqE
zej)*<Q?j}_o(h2bPEL>TqB!sp&WjxFlY)2-ypJ+e3<_-NtlkoY!1RY&b!a>%Fl7X{
zYf4IkTp<~$tSb-L(4GIL#VQQ~nx8{QW4K^<&@|}r<R-SI5?K++$P8-za!HwOVz7`z
zPII4%6?U+Sc85(lAaEwdo6(3N{^|nBg?FMryqup_L-LEbVQl+OANivc!n!sr+oFlI
z9$bX2)lIC=+(?3cLLBn<^B2XoNTJT}48ti|<j<YpD_;y^g3x<v#X?B)^8L?;0*OCb
z@V(pCiJ+$qyHD81bb0vU^M5#>-8~gpfAs8EB`*&sv0Es7_S6H7K-p!-VOww@a0XgT
zBQNYqd5Ry}f0C*Nz721Zfcj73Lbt<KupeK0+;&!(VfSdIYqua1%(U=X=iN|+lQG_m
zx92x7=a;zyZOF5}oq0H^qL>XhN0vEW4QYYNwutvnO?jvgG2O<Nbs_VVr(v(424sE7
zdncwX38VRLYY#3Pz$co8h?nOHpt?%);8>I{i1dA~;dYlq-ohq!wlsA#-`}WYb2bFE
zpsWa8BV!QNQ_*GHHUgu%J~`{_x^S6_=wkXr8~RqX4@;fXM|08G=1wndh@@Y(ln*up
z{EPVM9R(8z2sn}#UndLXkKTM{e{Bj4`s#~nCT5TqGUR9<Zvr>#W-GHknu7PI9OaVp
z8gMu`<C(aIE@-4&(4vb_g7a+G29KQ5gAZeAJ?lxDVCLGLl;ETcL1}A^mym8E|E9~t
z0Gf}Bkn${k8q$E3qW1G5;(E}ObYVm2l{!dUXuM4kq({ElD*}X9$U}9%dF(s$I`%a7
zsgN)a1-yJ5OK-fojWJAQX18?l0eN_v7lzIw9eoqK&3BuaMM!E%@kMf2Yj7uXl&6I5
zl~jEGfCD{eYMD8`B;Yhn%302_jlJ9H=1KLSfDz&L9;tc`$l9E2%eO?{lhvOw9glg?
zJ*vcwZ-okewG7Zngo}W*ACoZa3l7L;mXMjq5QI;JhecKAMBpi<NN49ua!^ZYOFcQv
z4nC3N1EO}cz|6Mfm!XUk|GqtaVyxu}#>2}Nq3Ov67t^y#yG&*<OP4xxS}O|3b6B*R
zJ;e>J7TRRVS+>N`ir+~DhJRQ!D&a_cI)#O0OMmUK{6ln#x=VAHUmil$);I@#NkWx)
ze6LiAI7t6%E&51?xWpiT=L?O>XfBL*$zD|k5A}TQ@d7lj8qD3(kQ9MK>7rM(-K5~|
zE!pkv9s-!3qws(FjsRDA+P)~QNkHdu;b~6fLn>e|oyhto4?^ZvN0YT=U}sUPQ9EB0
z`8SGlaxgA<M|#(xZB_y<zKD}gN9P7HBx136oD0Y{P1c`?DZt4@9o*?N>SOS?SaCo9
zp2#VoNyfE5jWIo}PcRms1g=W{xiB7CaC=as%*-MRp8C(V8W=?(Ire3b<uw}UKFaI8
z*~kGRN)|Oi3j%Qd7|$*DKMXK^Pmk-%2sLa3aPc;J{leH|C?Ec~!U^xM*~WGtt|n(O
z&x8Xs;N%sj&N5{)FfimY%v?1G?L>OQ>m*}n&{|#~@)#n&f>6gqp$2Tq>agZnslx@)
zI1!T1Qjo2JNYq=1b6c1gr|?t)`vRq7O6Z=);lyR|x=Ilirz&=M;#DBe$(4rBRvA2b
zGWoAq8^X!9rQ+>fZREMVm&E3b!8?z)!@s#Tp!=D}u=a0lP+C}i5u>LA@in)<U&;W8
z+OI!#zFY?)I2shreNcz672`G<S9Mq{WSSn?#L)dtke$iX5Jq?n-`L2QqF$ZooAu5B
zqvkTZ5(!4oC|xp~wGY7mnBsTYoGD!6E?sjHHG;6yE*JZ(5dRP~Qbmt)OTyL`Odc{+
zkYub?f9ot899}E)ATA;wZ@Yf!2b8OSpc+5<z-Ey6=Z;{{4a6n5=N8OUU!;K<iX@KB
zADnQ#=49P(edNctY|{Iu!38sU*o7ojw2xFLR&-{IA-;WC;p0O|pf>m*EcHhi!mjp?
z7w9AZlebVav!oPM-Tn1GfkzU4J@eW)nJoyJ*P?0F7lgs$!4aY5W2_MB98sbrhkAXp
zQz)gk*uiYDKEkJ;9afaMXf6A>;lSXb!sAKAAKtKBTzk(8qXY7yi?qm#HO9$Kn})m=
zFPe@=MWJ%j0u$1ZAZ}0$63w|qB?S*iK8b#@poe;+1TvEsVi2G2=(q71am*)#d@fOP
zL)BkBoqvu3FvU=GYU5`v@#C%6x6h2wg5<M{5^aeB(5%vt7eK`VgH62_yIQnR`7g8Y
zrwbi)QI+11s9neIk#U%^Em7fuCx;?TX+INvJTGRiGp}G*1D-9N(Hke4giQG)qW`~~
ztFLd_x~>!V?q!`Jp{4^ft2mKIvm7`U!d^;zOMzct)!G}er3d=8n4vGKE5!Rr27!lv
zkl;Y;_&u3r8PgL#wPNkfj?;X5rBp<Udezl9Eo3HH@ztPm64Q=tV!{rCP*gt;(2G%B
z?!1jSkK3&^*BbhX<|ir{EPbe8RN(0UC_3+Oto}ES+k4OKz4zYEZB$fB85toYWF)CX
zLsmvgBxI9RNLGD~I>$<bq(Y(0?7g?&=l5q_*K;Y)^PKZJ_x*mqUg_N#f<(9g=j#dd
zJxydBj`9=XBrbE@4mzO5Nl4Ca9?AGIj5EdiT=N<eA`F6=xdLqgTF<d+)#$3iHEV&-
z7kyM9_hA1Okpl)W{E{qNLrociyN><oc1PZb1gpClv$C-8#JTw}t2!u(TS<56sDXR!
zQgRP7+RJ8~*JM6t42$kPj~Wr@`+DQ?Y)win=%ntDN<1tF9=DVac$4Tr{z$rY43#8Y
zYMiZ36-V#aqT$x{x+$FN_q3)V@(;zTq$N6ZX}}9|u~5}YG)Jg({1=^qo(oA`eWH2P
z;X?D3w|8xoARtiP?QqLMh~_%ivGf4l-~Je-ViEfA<h&xEYM&a=T4uU%BVKBLrM;oY
z4}Ex^B{Y6F?-0aBkq(`1H-U_|qII-C3?Qn|eu9!*6OL2pFAJ)eK%znAo1;Vj=k?}t
zJ@eSY3rj~&i~S;p*7fmg^{mxc{PT%3>^U1a>Dcv(E-u9XZR@`LG<O~kTY2R&#76~5
zx)gQlwfmU<LzQ&*ThuW1*UKZdEFZUN{}R3HOGiWv#BLQ#kidHN6@JFIWFSTrbg<tO
zdB_uvUYesqoO#U-`EK+*OwmxhlZAQ`IzE`7tG*ySoA?-cD@X(w283VnXv)HF;t{&}
z{d_F5>6xh;%{pew-_88Px&<o>Z$2M#kPMLa$$2G&0fg3Tzew581I{WVJpF+J_-`z6
z9{;_ES^Vu|p?pUTYj2}$q~6V8H5YW_kD1ZJmUWT2`2kiiVOYL9(?tcchZ=0;TmIp3
z^7;oDpYjr?>K<g?KPo_&n#Pkau`>`fofb<OjeB?z-RdoK6EdQyg<`eWSOR$8T`WIc
zFAJpD&#=?svT#}R!sx=yNNoPl0*k^)E{L}*4fLnq#(vrz7(V=H5!=0JVa99Bg7_tE
zXH1+>Uo9eEUP4+N^%RpmeNg^Tq~=+xC(}Om#=yko)@$VPay_l=8+HJG5Ko>PrXGNp
z@JOfOw@cW0Q<X(al;`7(7h7``TEO-<7-aH{{$YvT{V7W$d~hVF-2cyOA$XOUseSwO
z1b$>kWnOfU0!W<9opPz@;oy~L6*7~(c*L!d$1_8HxGy)&+2l9m@OqEg+=X=vi?<1i
zVL~27_M7+ZBXd=u=q-h(JMs+(33&LtJ}nOQ&#zxoaTJ10ZQ=w|B;rAz=J_6;iJp^f
zVz*OkQJ-)qd-T95CMbCJ{cO}O6}Y?$1+y?7Fp$1IUoXWCEzQK%66yh@i&d-5&N9Qq
zdXbkc+Lv8^WRu{yOGcb7wlea^xq)Q$$KkKP*x^cd^mcDFB~YE2E_qhhfeTVn+g!X%
zgFH+p4EmhKVEfVmn$d0+5Za}Qj&PTOM3(7eWC;xLw1zd<1QUn%k$2$@%4rYZZQ2o1
zq=)C0HT~C1so>mJiM2Tk1u);ZdE?y4U-&I;o%HLP)UfqjSLw19JA^eWlq?UB!7-%-
zi(@zFfchF1u*g6Qo=gMRuggv1qzeAWzhzMo*4z&F_$^3@U!OnR;>+v7oEpExhb6KS
z{45*HnjUGmyGO|5H8e*P$9Zgb(|CZzKlk8TtsulwUkDgLp2Sa=V?IS4UBH=FHjF+U
z;DWP!SphpJ=e)Z6mrvmy2}~dFJ^TalYU?U=tvSBU;60p|64OymfIRED(zu#1eDeIh
z9&uC<XnoZd43CLI5!vaSg`<eK&6}l|t0f2*E)?!57_$-W<l3uKsJ~S3YUtyHuMm_l
zX>cDX=ODU*s=JQ(4q;2;TdZ~si`Yw<^9PRvOkvb5KmRp8T*Y-Wbd*ng9>$&eSS?o<
z3GC2v(SW})3F_TUC@3IqveczXlVy)x{L-nPJfZjcFi9%usAE6I5J!;CWgFf1woi_S
z#EP(h@&3kae;POVS+R>(B5yUPOW}qB6%~jm{2ne_q5+XB9flM9s2}p*`6P;GmALR{
z{m`^oQsB_MBxI1Yhs~e=>N$955LfzE7c`0TXI*@IPIV3xP))8_=dCn_olxDbP(@xZ
zjrLOp;YuPf&QX7@SZWVbRr~FD8TB*CpI68}PT_$E!;*PwA1MeAnXyx!(Rq^oUT}9)
zKPOy?=D+>jN*r!~qjMwsz(6FQv6LQ<MZJ*{y{BhvDT#x+=lBD3Q9s5tj!#*P3PJ>a
zud&aoLfVec`I$WAr4TEsaO~lS&d1lTToacAqZdKP|3m%gfb1IMr;j;7>C9QZe+kC$
zVZrP{7c~aHE+yewIR_yy!*Qv=*AT3=n_L>E(R^FpY2KmK434&T=32Zo1*3-Ka3eM&
zFvzOjfAjt@{H8KFeV@S;W>Y(I4;mkaf!X^CL*W*Xd*UwXprIKQy*Fe3FVYl-EIcm#
zTRs9_ns=P1rjNqV+_jP8<VH~Q%6p{!pasyK9n8^wtqay<vBpQ8G@&DoePP2DJqML^
ztV@453^DOf9vt_w02U56o}YJ*!aO;5<Ee|L@Zz}sL5FXE_@@`s|GY8<+uxoH4@Xch
z-S-wvjk5`;{r5Ki&Kq5Lnka1Vj^+(VyGHlEsha_do+`ifjwy^#Gr5dq8NvGS;Q3W<
zV<0^#-a2%a2`th`qhn8?9I%7ml@9@|p!LKs(=bN>UKWtjtuT<lV5-d%U#ShuB2de<
zXJZFHt@2+nT@4NKcJYm#+t5D#z2@GHr@kxr)x3<7<1Z+QwM{RFrxPg07V0lRzn6j0
z`%^b*M9<;ug7hXO1RcaG`0+|wAdZxcXQ=(?0;VuyskO6=&WY<JzNIP1kHu=H?PkRW
z$8^Iz#L(R0=RW@Mc?9Z{meBcMGDrOUuMK9ii2L+k|9!HWf1JQJrPUtU%mY_|ictyi
zp*-7C<yY4Q!0N72M7kRCE(hkt9_js!w=FkixkVyh#zloL1xr!j@m%hkN}+`t>~;qI
zqMKOvFUo{3=(!@rLHxw_J#9GrpYQW`H>sgNs4z0LhZ1g9+<E^S<&cLA!VHVDjbVaA
z$wu=j2ON1euPPbJ0wSQqw}<*>%;duVTJH0~%2tre+SPuP@7$ar-$2}imoZn`Zm@v(
z<5#o!rl|Kt#`=<49`QnhEXWsK*<tUkON#707I-Z*a?dK18$QmxQArs@{8G-)nePEK
zi2wFfth*iMyj7CCN#8AF9D8}8K}oD|Sft7j3q^a>)CVgArexqs`+_p*oDg)yQS5%O
z=SOo~vm5l2OIYUK?-9})-01$!ZI}3A5DV3}R~}#IB%;{P<gY{{o<sq!`;gZjwlmq^
z@V#smo18nT`#PKq_4QNZoE4Er-bmU>C|nz!PBa`n$)XD(&tgyCLtf(1sQ(`J52Lwu
zdBE$Z5}Lqw^<iQik2V~dP%JvAssdpg{uv=zIw(&YDyLn7a&m7uSky^Wz|Qen%YAm#
zFLZgwZFyZC;+#cO^um>Z@zwPT`g>XsUmVT$y+9xQ45hbPA{0QN_QK_>8<LPx-5<qx
z4yB!t<nAKMStxnR#gehAz|CGPQ8-x<c}eweT9qpS{zhVqWkD90MUR}dA5er80fpGK
zU2%ADO3*CZN(+uPIFcD<>cj2lhw`q!Qi1p9N&n40K<7z|AKJ0m>Y&xhT^dV|_z!HX
z_phN`9{<<JB-U!GaG(E9MG~tfEIqm&{6J3wVi=|^))eUAbXj%vnKRUgzj!&LHB%ft
z7w3&EhM=57{5zSOe^4H6=4JV=58BTxoU-v9M0?VT`6=TH3Anv<x_A}sCH4f%=7x&U
z9_Y8+S`ONW4~C8VD(xx4aK3lgdmhBo>D#A_tQLTZ^!HWl^}L{UTfsP@S`hIb9vj@a
zEdkdT)CVb0&iHVR^!??V{P5K|Z{Hjwpp^Bjp)>Mkj)zAzb{TTPC7rUne;8yTti_=*
zV@(1otA#BxWu#zElx~t1<<p#Ryf~Y?APF4A1`=M1L!w?8+s9-{7%m}1%Q_Kff4$(+
z6D27SGoyI9F3SNII=f02)Y&0<-h#d~OB(Gr?3f-k$b-ehQjy6iSvV;atSd?>4q*{x
zJBzL8^+kBb2QCGOs`8L}7NH8wX%XMzk0CxvPL=HgaW(k$lb_A5N*ccAJk@qbo<O1B
zbcfyt$N@R0tpLeEX?Si=Cm7c*1HC^a3@<9n!(XdJjpZ~snC&q9sfx>i<@KP;rD*Q%
z`eQ|p6Zt_T?p+Wma+ZbZD2fZ8`8DC~+rjWdXfOIMkp66ph7xeHbUo`*lY-Ir_RC*y
z%R<l+i_aYgRoJGlJQVdq6#}-Vm?o@L;J3#G`W^H+vij>;vrnrCE$3NJHb*K#s58%P
zV>>1I^RrWS%3KyAe}8IH6IX!nUf;o4l!Kjrly*Z0eQwOG9Ui=3QHAB*HukbvT0&lG
zd)!&26I&B*HMU|J#U3VLU)V<Ip;UzA%hTUmn8Q(vtLk#{uvn*V_2!5QNS}ZEQv&7M
zymQN0`OFlcit|n8SH!7nj2Nj7M|>Zg_P<3()Z=RwZsM{M(||pv@pHygX#ek-Ep3AO
zw(?VI^>017!GZpdJc%A7NRP|+>;!Q^Aj_rD1RHL+P`ND8A<6{HGGEOuVN&pDf9yaT
zx=xqM?0cnp^FeE77|m)oIj9;9JI0+PfxiigcPBq6g7x+d=Vz7TFz3H}bi`j6s7d16
zE)q=eM^bP`%ti>x6wWdcVf;|GKj!6SLjw)EwT3pPEI@PlOR|UtHO#qsKl6RW2_-vL
zlg(%!_r5Lok<|rWxa@mlW=$FKP~TI~_kTdXubmc_$5eFSH_8}sazG5Wdg5!M5Vx_0
zDVKMWLK=c3E^*Oqu>kYY)Q(sOUT}y~FiDY;g7y|~u4yq*Fs3y%b)uw!M%<yHh>a8F
z5vPhGT{xiaa&gkB6RNPTs&#=Y3-y1hW+KxyCBScOQQL)F2-+Fd4bt+rF=~2-O-7Ut
zx=OBOvuGd-3DLV#L+fn7$9zF6C=~T_Z~RRW(B*^<8L?NC{L1j&>b|F?voK5+@K#>g
z=7g~4UE}@Xl5psBd-9o3GWhF9eI#^R2X>!r_%aOh0aGHIOpF&h$OoF6c~){m9cd$(
zD$hD*WtO!!@3W3|`Pui(zFWuU|BdD(_I}5sUU)Tc-5JGu<LhnpZf)Y$Wx4y4LDW!?
zv&$6dF^i8<w8;DHe8XZtOenhjS;x{ot@l2=zKV(X6ezyB#svjhWq-$pXK~umRHDqb
z8>6Xcxq5|`0o2%Ddpm|VVGjiuZ^p~B5-LAUO4$Yb@S8WOru=hOaq@hw#j6-27+1a<
z_&G;G+zlEtnL_&tmV|p8x^A2J;Q*7{<_9Q=*z;ck)mrv&dYt5K%&`J&cT=7gScdV?
zlmp~Jw`hoGBohSz6wE|!MjyWb$qrth5mi)la}rlF(p_OfytSr9qJR%Q_ibvAve7VZ
z;WWK}KISeA;;*R3r4JzPrzR2hP*On{gd)m%7HrVJ=TofTWY-2(*Bo`rO%=_5^p}<0
zrD!2^D8+n5W(V8Ma7wS`9m5^cG6FbL(E0X(7*)s2F1C~J!H?UMz=c2FqADTHSft6N
zvhU8+gzOoo)6<!M@hdKTy+s0O-|(UB{bgDXaIng2eMF%Iai*@1EoD#-X^QSmY=b(K
zCtY$(R1kw)U7lM!_A+q()BNgH7YR6E)jk`YCJC|YBfV=i!qDg^vVR=)94^NsTiIC&
z!#xGF6=qBm8spN=H$6t@<={?kD;HrH)&4gw(ZK^u?qLfu5<DOn-Kfi8it^r+d3`T3
zMA3Ej{dNaB_eMyMv#wYF-|H3sqd7_tO4Q%Qhg4HTT=Tw7x-lJ){mRxe`ieN}ehZrk
zuBd0Ht|NmLqJ9tkT%j%E>6%Gf*O1e3!^@j)Ig@X>AgW#6;gBE?oO2EAYtUtfm-K0Z
z1s4%-%d(x-GKm8Q`=pm8@1UHWoN1S59rC95n1<Msa6lSO&#6Q?Uih2(zC4Ll3}QoL
zxl$1K_V(+V<s4ZappmGQ40B_JM-p4!Gd5gcd(Zsiz(Ia+QA$*wIK&Hn59%JBPv?Sj
zorfo-8yLW(vRJ}5fF0hPn!l=dj2T|JYS|=gQA2U%id``S2b^vve;{;&1K!MCETeWu
zy@w|h&q978KHMYS^;}&x^m~;k`K(M2jZ+O*JrO_jq2B!~3orMufHqk_|J_#HtJw6D
zGz$swFz~oYQu`0wh2w&-DQg#gfK2b&z4;+r<7`xY>EH}*`N)dJT51nB`=VCj|A&^4
z?Rg>dZjgm2Ec(DCZ@+;L$>Z14l9%whdx1YyOUMY%#{%Q|=8S~O-NY_C@*Vuo@7G6i
zsf+L~_YjrKn`Fe-46A<1LgaDXl`(2*{e`7O%k!RQVj>=uYqJSHp(c(LeJtk;T*s%<
z)s-2^pX0X&Nor?E2k=g2l_F(o4kDGzk<sSR11x;DLvPgOBX-U-!0&dzF8*3%CymXj
z6BjT%RI((oiH9lKh@2orL8t5V$EFn4@s5*YzQJ@P1YP$8S8C`Ie!SV<w))vJPFJCE
zCx?*+rc55yi=J4*tT;Hla%7h<+V3w_z3E1A)k>lCdq<yR=C53J;*}{0#SzbRB94TZ
z&0*3pKh8{yUV~V+hkx*Lt`8*<zJi2-popwO?il8G@R|JmR#M`nxVZ2<4GTf;Rgq<_
z!%8gQpb5B_%TAcp-z~h?O+pNd)__4J3(8O3KC-gU1}@`n$NL3Y;dS!1=(loKC>(dY
zBTB!Htt@d@J8_^sy?N7Uj~fZ3{ZLi={)YrCxwqd(grnYn_>e7QvNVid)?g4p&*?iC
zq}=Uah@gFoW!I!O2kOg69=2o<0Gi!%ht@>Jz|*+$4jC;g)Q03b#v-oOa_K*k)kgI9
zX}11fTUcOvK=+$F#R}fw@2P3Jwu;Lrr^WoI%Rwk`9GR+`<b+qt>^e^Fs1H3P^Tr^N
zj4%ow{T3w4L^Q~DQzb`|6Vp-TeD|Ao@Y;<#m*(4839muxa%~GLSn8>{t;sWw-xmxF
z_Ke!c*^~Qz&VF6RL!Y1ArH|Xg<2*iMpf!dW$9tmv%@D42akSxe`wpJSnj)uY(1I}^
ziwnKezlrPr{^K5TMFQ?W`Nd4vxrB8upD$r<`-knD2KKn?QxWd8CD#rPvk-I9OnbbD
zhoypTiB(I?V4MP>4}M?#hdZCxe<C?Qhh05fSh@CT9}E1$$z~it3co-96g}R^4C&&`
zwe39&;C0M7OBL<O9FDyk%>K>{#m@O_CVo^z$&8A%b^i)>GZ>#ej-FS>jt#$XImHO#
z@ud!SN|Z#}8{14%9#W7noRxEM*~4|?!dg>vr}1{4d^>4PYJ$X+?!#FX3gQHHFWo8M
z4gBq3$mhkjEqt<3@4u(~OZc#C=}Qxx-&i2??Dun18~Cr>K4*)WA-uLa@i-;MK_uRh
zzjae@4L^~u)AsSsKK}PgV4FYIk41Wh3G)|G5G1q-4I1t2MDN<s?^`dn@DOIT_5zAF
zyw10PV(8ftE=ojgzPzxBuf(VS`RGnY%zuh-<4>Hzeabjx4~FmHOug1IB;xeMGu+Wq
z|8p(=-uLo?&=Y22?UCf?y?9#WxBaNrbBKxftRAcS;`|2A-X322#*zfs(w%#Q!)PI`
z#_N{T%TL&lwt^<@lOep)^h_`tPGCQy$BKFK#<8JE!^VdVf3fVje;EQN$cQt|Kb5PZ
z7V!U^%|CLTV<J9<(-k&KQxks_C*D7gT*d!fJxlX^o{@0f`EjbafQg`!W@hXE#7LN5
zG7UV~zk!8rp5V@?Ck3*<BI=p1Si$j-){N5mI;=-OWbIrTC3JOPR&RCO#nt(YB)OMJ
z2<%AyRK=Gaoa2Q~@Q15ISWvY}f!;(1Uc1g^8Ty(DCNEbUeZ9;In^hrW_Ky*Nc|hcR
zXb{SWm3V%<<b(R)Ep20$v?z(oW5di|-{&#ssWpZ86Th+D1%q~{(=*t+*7h~7_CI(}
z?$0$7)lNL|>o>y$fgSAg1u~b&7j(dqb}{z$F-CYHC1&2#zJ?i)oxIY1^$&jf#(Bl~
z);>HX)0X|G$O`Unb|>~t&@WsqTt;I9U7zS32YOE2{fl>Uv(sPD-^G#wW4JyA&=WE|
zzseHOb<QG4%jx8eHSBDMz2CK?n^@g<ACebhlrXw_m2B-J2^g&aPd?&U#g4lc^g7c)
zp5wLGCdE_OzU084$V-D*k3D4f^ekc=zeFc_mVaPcvIE0~%&RyT{(S2Q;;D>DG4KRa
z>|tEd-ETG%cd<PSvgzV~h;v_CD(B2a1LY@49$YIO!T2u@J1NQ00o~roEFIN#jBe4c
zmFoLCc0hF((UwTy)31uC{5~<Lq@oHqx4;1Xr;VG$^o79cj!$QBnh2yyeYxGB$Pbj7
zAMtbD!qEETb^b+OMyO-{@0>;E5`Kt^mcGuE4t!k?3$onh1FpHetc^7exF;ZCp=5#h
zrP4RnHd_#HJH4fj^c3P^!t`)v{SL<3{q_*#(?j;qrLv}WHdrg>jCj3@uBR!tY-{c@
z!?bm2Z*uklXilDy+Koa!#N4O1wE1Y^){X`@=@TmWJvnLcM1uvs>g*J3Zy-+1<7%T@
z#^NYnvKRBT9G#Q2za4*-w~7C^pfcYuzm5HxCo824=74J(JVUuxSs*?y-O21G`v2G4
zD@yXwz^8W2DJ|+1{K=_97P<z=-z8<>PVR>C<h{%v?p=_AdQPsmT~#fJTlz<RCs_sr
ze)ZO~+?9p;t<WoP-K0Rj!lqUJF)Ku8`b~ab5d?AB@@f4mX#V-WW~j*;?f-7C+`U1E
zav>KSPKW0pj!x^l<O`%MC^(HDOx`1b9Xh`huFxG!$d}fBK2Q!^6TaLGPUnZXyLZBh
zkUtBRy`Px9+QmM)7u?oH&y}$?b}wtWrBUxUq_B=c4E#<lo6LwIF4@Gbs@Xdta3`6{
zvawni1SB`I+>6wp->vEJ{UdzvONC~x_JKUGylS{v6(tX{EZNkUxD-4XaQHw^it;hJ
zo}F+P?K%0(a06;VD2fhVyw8quR;wv@X)xrcT)Ry9<<cU?HhX(ra(oyMA9?gnRFH|-
zys<X38^u9vH}BlK)<QwNG~m*aI@N>oS29kE1S0=4!J2Vy9Q99yuD7dB(Lki^sNPlx
zfmfXl{5X4y9-17THG|k1u*X4%POx0u$G@EL>J)sz2<go3xtDBavHw!mo)&*c=QVfz
zW=ga-n3b{o>-LNWezv6y4d^%EW5mmi`~Q)^CAA@^xz|!)`m`m1X@(7k{LV(ba%2au
zi+xcXdz3_9!f`1X!F9}dj<rYIbPgLZ>@t3pIg8K5<<Nf>8^^rgmM7^`lLPgv{>Xo|
z<M=aM${da5X-u^Wdlcd?gYqfC0tsLDG2@E2RA%GM5GT`Iom9At@yd>Fd$(<19!Zm}
z>lYb_1&z-V)M|9Z^{elX$7pauh`9xy;+t{IIab<1ig^>~dGeL^$Ga`OiMfq0{_q%n
zHp|cFu>Lx}j<elsDr6+Gt)moj{?6fJZ-1opb&(RBLS|vE^vk$s?^9k+MfCfwY-`RH
zW+GmEyT5$Zl9G@Rh&hn^je!_1WEbx0VI&e$Xd-c565=R}$0M@dRovgkVnOsO1ra67
z^RVFn6Jazv-lT*)F5~sW2f`Rgi4T&m+CN`qAk6(Q_K!W^!KAv33d~UN6}lhHSC()P
zx8m(gv&mVB=j>Bu0S4Q+z~4(#b_1KZt<C91)k<1|*}1KL;3pfg6h&ou#Bm2VE2XBl
zx=umRNK^BSqh5za+hA_3fh6?k$+LR-Xu$rk&F)OP3RGB~q53i^0i9u6&C`D+fIWxT
zFVvMEhTM-BiCA*MOR=GvWB0^>&x6+ES+odP>lYei1R>wk<>9~hjwBq96;-$-kLF>Y
zo`?>yiNcWZYrW5|DEBx)wdA=k1qbSzEVPD1A(ApQ%}PN9Y8z-IWQX|R8fB(~^>aDk
z_`n+9LI^<=ebX@-MM==TTv6(KULNWs=)S3HtAb@5^{B;!DkzM&%?P3X%TE1?q!kS<
za4>!6VE0uU_&M$zaj?>c;G3yotkwG9vKBM#7N7}nFImR_446RRLU4MpwE<)jhW3hR
zAKPuarlEuQNs&@sfl2{V5Y&F)$9FM$SmrHoi_D+`@6VKXO)7V=s~W5ADHJkLs|Ldn
zm!&}5!R*n+SA6jEOUo?FA0D{<__w?Z1@iUr=aQ2rN`U6${P7BFN#tF~zjYYpx7Cyc
zirNAZ2X%4WRA7k{%wuTlikHOUI@cOq*q{s)b3bykMP4R}Cyh^Tqnucg3mhENLq4aA
z0jnoD<UwC*d!e3M4WgfqUl%2ngE#XYiqtVuDBpILj|_1MvL|zOJ<TLRyQg3EE}0bg
zI@qtsGfG0&%L(m&3%qb$$}NxQ5%Mhs(A1ux6^8CJzSi?gtUy<0TynTU3YNd_FWtbU
zfrwE|@cGOSSkHW5%eh}TBm~*h4KNYK_q`0plY|NHK{M;r0A>PzWGEjXD@v56&(zLw
z2oSf;H-g3xr{t{2W1HJL(nN7S*JjC{B0>9dxAV;lQ37l1pRc+rMu<$D9#_39Kww$-
z|HO+46Vr@2Wv=!T#GG5VirOC%f@%BDe2tMf5#(XDacPN};B8ONe*KM&csQD=^Ey+2
zaQ?Y||57qJp>QvWlgn0!Fuwl9OM7ewFTDqn{XuUqTRSOMULH1rH(ICL2>FVNmA;*0
zm0!duRc~1wf5A=&Wb&N+c!7hse#-1$sR%joN7<<}b%>A9qg9PG&S4>p)2)M(CI<19
zfS&{5eGJ6P`Ah@SPJV*n^B*^>5q_fJk$_`!G6(VK$k4{eBE&=e+o1S?7xl7tSHh0>
ztH3d_n-5o21W}(apn7^$3j7Vb@fmv&h-XtAr{m!PpP77AWkK`aIo<H9Awm$tCnKe8
zDFS>t#rVh>b(l7ZB^jAlfw$Gu%Z$B}aFSa(E{8-EVzUp%wQPxkcVuMOixwTAAJV<K
zkbrt%9>u|iv(nI%Pb*jc41KST&%2$7k%Uj_7WdV7Q9qGH_wiAb3*>DNlwImjgvOVW
zKg|$F*Fl)$8;mi*KiT9-c3~kPU0BY%ag7E3@|r&An-l@}y1c<7PH27?f8wZei!Ahx
zr2)r31!$@`x+|30jobNjai*ePsmuU}8sA+ZPzk(|94{{ns+G2+;rFQ_H+i@GE)_RK
zv+axB;o$&6UpN1#8ac}U<t0}eQA3aZ5cN~k|I}^xye(ZS2E_-T{XTJ)1Ee?(D+zF-
z-%CUK7iVuSU@)@fimT=Tx6|R`lqcArDvd&GIdTyD%;U#=L5TrGDt25s9&!V9`j2;g
z^eEqup`9yECJpAy&!d%(qtEv=Z+{Dr!ncqW?RsAx__$4<A=1PIO2>z&ZTeUt7-ut@
zM%<2~Dc?rrr~6oHuJd{N8Y;+iixxR!PX;dbQ=dYZIbcnJRjQ1i9W=#wZSO@K072u3
zk(1iU!@0)$y-R@}c1-ov-O#y+g^{_7ZIK<avezuV$k3kkgvs@fFOeU*Zkql-1rm5C
z#P&Qu5&0t@Nvw-ElEaiy@_Q444I+6KV?-uU{x9UCnBZ|5uw85Z_9Kr3GEcEwIij$I
z=?tI$wW&=G`uQ<it?DBf{#Bb&#f%$bwNGkkAitr3Bem}pLw?AeDH^dlNCg7#G^2RQ
zs0q^BuW8R;V1yIm5=ZUK$Y3X_znO`13n#pb*{&F%oWN<ma7`AJyEXZ18qEC}uc9VZ
zZU0IG-m;V$f8{tq;h$Zw+nqsN{Oyukb=4xCM!p+y|EerdKj?U-@?i%P5V3QRcNGK$
z^ADG+FNi@<fy_s{)9fI4jVEUKni%{zb8IKlT@c`;iQ_iv*S{gUu`M+*P<X>ZTaG-Y
zD}VH}q>kwTZ8Y~mkt8iJf3TVUX~hVx75*$WbJu`Y(yeu03w=<ZD|1zRAqi2Ruj@%h
zNdUiC<U^ISQeb&EAz_YA1?2jaMDaXvi1$``cNm>JX|2z@_Vghx``6w#UgT2nK}Peu
z)<+58(M-)Z@sfd~UT5@G)D5A>zT3uCRS!m5Zc_$DYd~A~NsnA@J=k}p9PL?Dg9ljI
z>;63h$ge0&HR#tvzUQx`a>~XKa6uv9O@%Vp3{S<rt2m0hD;;ylwgCPbzm~Vt<=`df
z;rD4Tw4t}c_i_Chl&?-Gn>~L@9gI6Ke7Jl{4RU=}isFwdfS=3qR|1`DHL2M&de7*=
zz`J^m5>SPUicZQu-%~)I?N70HRTN;mIPg18g9+^M*l&3QR6tqbuJYS@2b(myRb@BL
z4<ivbY@hx@=jo#G&_Fa-XEs)uzJhWMAp7BQ-cfR}8Y;P@Ey@LljI|Htpt=2h$C685
zo{r%eCEqO@=tK|~BIV>`EnzSc9V`1aCIb06G_d#=<y7yEz~3Ntn436Tq=N2ScRrqY
zBY0H+d8qwg%0-HSoW@u7G4woAaEexJA^iYc%Y-sM25v|_7F}3<krPfya1je+TwtY3
zV(1&q3BCr5@kPCykf6nX>$5c%+%J6?9MZ)JAM^JZtltPgd8pox=ufOrnOy$i@#F!t
zhu}1>L_YLX%0&TxjRSzyB}~MZu)wNpZNlS^)I`7TNzOleW7sE|NG+cnO88a4Q>Nnj
z4Rf-g(0Ye_v@$Ygepb=cgwI#=TP#&9M5i59+wY1|{N+vEqA)GQfk<kKxpk};KlGu$
z$mA9!41BK{f5*OrzduqdC8;)qXUPR#iOlK5&v=b)*#>{YH;Xm8M&}3cyG4VNx-?wG
zmq$1Aq;Inj>x~s1&wDtDZT4X%`$7`fj|`GZN!-RY4sGf`8QH=!4r`el_gcXveTJkN
zWH|`6X8)x8c6QJm-5v|e9m2RDMO;q3!Un9}jh<r%8GwyiaNO9t8FQKtZ4AF40<q14
z<rC<feO!Bvsbpdm7gp7YG59r(k=r>98zDXu{}iA4x)48XFMM=ddZrAbHRZRr6cnK^
zh_u9vP8M<0yTbnRtHK_;d}R&d!#8VgIQRvtfS`y&k8O)I+z%3U{6r!FN`9CB9Y;A4
z9}(4WXZ)qWNpR3T2=U@gzd5y5>?i}t{$9|kn=H`tEjs$hh$D~Yrw(N)5fJo`CELnC
z*In~4v6U|(5LzcB%Sw$nT{O?ba@!O^UsJ>-<)kFERg=pdL;NmFciJ`6>l#2C|GD>R
zwlerRtXe+wQ-Q%>7CDtJ(r`VZ-Ef2laV=V+UxkIDK26Nsi0dhG5FC?CmQo-M-vlqd
zzaJw9#Urdf`mW;02Yc2j?KLk{6gIt$ye<NynZp7Gza&8Z-7~g5bU#ab>b=$%Dg(Du
ziRVWK1;MCb*Hlkm0@@z<U8v>YfaxonbsT?Cj(Ot4v!{dzeBSt_9MvTTgr`lhC#e`v
z(Pd6vIgR|4tpXgXXOL&c&ih{iE(UrNE_wNg587q=C!OM|2-K%vm1}jA1o7|s<O&!0
zVCV12sAev1V2mPNwR+En&TXHZ)KGre(C*>PRW$$Rc4mv4HQ|F(<Pw+byanLfmINs)
zGZ)kv-xptJVTahMK<4E*c397SxSp=T3t#9@bTlKL+gxf#BWXVgxLyBjl=EsG>vwTC
zb@C8_^J}laOeOI{^o{f1$i5zcQ8tdDyQkQ}uQ-cr?>q9cOl~~Xv?c{z2_2!$tsUGm
zDrPg_7(KyUvtSspLJdPHjv}9GyD<Za5aStZR^t2_-DHM2Cb%y8;%4LM7&d-e$s_yh
z0<P3BnJsjOh7h1~`KKk+flr_EAJ<Ty!Sd8omL;-Bu!%$Y!83h37(vU@m$giWcn>_E
zDwQ@d;+|0-gYG6~zs@y|uP^~N`^TT#>I+tzJh@3@jP^)piXUe_r-DVl8?517^n}W@
z&O={rQv+>|*FeA~BV6Rx@Wu+B;=b=CGdd2lfZF@<<`{~7+-Z7HQf*}ow@h88(jlQB
z7R3EzlSb%ZsH$1fEciRlsq&H}MxKnQyE&dS<GF^5T~Sx|y+;Fb9^BOK?>cd%YhNbM
z{aC~-V>{PcThzhF<AvgLDGl(=jLm&qAqSg($M`}bRY3i5r!NDq3PgU8)a<ya52w2~
zhCkd#`O(T%)2S#eI2D;M`y2I|sp{=Zn>O^|DjVbNR^&}~qtm`fhIl>XuaZLZKogSa
ze1kZKHDTi|H}lydMTm3zuY&un7Tl+7Z0qh+2akf@lw)~X(DF{cvjO=S4zRwNSj<5^
z>G>YY$1in&@86k~b}|E?+O?t1x`cX9O~aTK+5-tcR-q`CRfCkXm+*^{d~kO=ui$eb
z4{WhrqpmxQ_*{iAjlJ2WAgqM3{jHTE2;VrR7|SRIwf+@--F6yq#A}f#w^jl&Yc@{Y
zQW~ZMyg1YRWZ>;~W7xzEAz+jx&-Ur!M_ysMAUYa0$Sw%^EfBDcasMPAX50UR-7~&#
z-Gy>o0scj)SKguLj_}{t_v?_CEisQy3~?jNjc8QL(f2ZsFNpH?d2~*laLRkWBn$s~
z%yY^UQP05LztIa#rIgo)9_RWA0~53ME00W7IPKoX{`aCR#7nx7X{(7q*nr@v*KMLO
zv);;{@|6`9$TyhslDL4X#*&r<aRj7N8C#M^g@Lc~%H4++h|i`;lb+cq15-aapVtm6
zLh&08M(GqjNHm@2m6zg&2j{()wl1J~OmT1x{)`7AYjn8Ey`=!}IJ&&JE)Cx;W@s|)
zxWI!hB24HzA4Kn7*pzXULhtJ+{VgqkUy>ZUQ-LCo6CGy|h`iP(OWyG{*sB1OEZKMy
zn>O^tjj@xY%D|ph;^2EbRhazT+qp%m2`)ob66+<1-;`2Tly_GO`nF0r_T-cyW_P(<
z<TpAWgj}+_g3h;s8fGkf>&UCu)zCmsj&dm%Hf)}te${Og+uEb*itu9hrfBbPS*VF%
z3VzqTfDJ}kM17avz(xfAJEo<j58sN_KL==_T*Y)!u|~NxM7!#5|M@5d!~iu5qkt~N
zJPtXsBCZV;Y7(yLQL11cW#&-TCJ9tezB%4Kr4MnZDxCZ!Bq5Cb>7LqWIrv^&W@?W5
zh$3FoHDd=+uSw~vW|EB>T;@2S@8E{GBaX#cjfhWU<;vk}Bd!N$ZVXnGzSo5M>*H(3
zNzrxLo;m**`Z-wfqFw({dGP*i@K6fzO_B>vjeb)@dr!9HYbQ}I!t7pow*RgK@^-z=
zez~Rv|62LgBO<k6*q2K41M&?KYT0RInMzPpFn(ZXMis)XVxHSmaDx6w(4BK%q~PyS
zBZC(a>OgJTS@-dW5QGtZTNz%OK<~g#@<mh%F1@}g=Mszf9e?k<a&Jdoa09t&vm6Pi
zofOkPh5Dg$%P%-6qLDxLdA$Ga9$BEtu`Yf#Dh_$4*A|xJc;U79sEs3mzQ1u<b;_?q
zpfvhsMlj-F<Wmi(QzCxBH_=Rn)LtH_@#S%DT9Sgn2d5(?DTc6T4j1;se}BOKikh0g
z^q_!|QuyK^ObS)ZHGxKt>A{fVtD^v#CuADRR2-CF!s2C8=+e&cg47||8lic1sQ9|y
z#ahD)k|EEd&Z|;G&PBLUHH)|$-ZOE`iCoa{OyoL+a>ATYQ1OBiGhFC6cyQH*8rZA_
zSq&PfLFe8JhQ|imn5Cmqh)CQH=EaQfHFk|+zq|ib`8}P*0~UzChp%sA&00gwHn;aN
zNy_J>XA^0m!NJbhZ*vZN_LkiGVA>cS@cu+@3)Lv@+>rfOqhucork_40f$|u7Oy`WY
z!Z)$RNxoYbFb2pd4|aK9&I}<UCd%@MIANTZo2Wqj2g}*NCla(#p2OC_h;ZG-HuPF6
zb|3U%7Uq-HQR*9b_AR9a1y4aD>Bf^;adL7vJ^r|N7~>%_*-P}Y9!d}#WQ*QcvLy-4
z=XcY7rAiXzSwCls^`r@`g=AFkGzH-t`$sUJftOgw8Wa8WR+%WjQXZRIB1!Bs&s1wx
z3KBi_y=UqY*oa$N%jr}4q{LN9v!P2{WJE~aeMWmb4nmi@)Frfwg2?VjKCE($ipXd;
zLNfy<BJiO1gV+r&B7fm$z#;lhJRYO7zQNIm?b66c5${+C`@_GZ&ed=b<;Udhyhd4x
z*>17%WjQ`V*NS{Q^Z_5CW<60K7(Iry_7$HdGi4`USw`RgqexCXO!^*qrB{L=`{6gH
zWAzJvsB<oHgh>=mR0dBDqMpI|ZJv|M|7k#@t=iT1>{?)L(<<)1uL*^W+V{@eYXE-A
zVD&qdIz;+E9R0Rq0Lvf#t}fg``lhBR7fm)@(DR~VC*#)x@|UMFC(PC1HmSGFxfez#
zrx5q;Bq>1AneI<L6h`nTc2>P`4dvNNjK8eus6$!a?hJjR3b@kwGlw6O0}X9qPPrqB
z@cY7{u@((wxZZO3$b|vKy}04}g!ioul(2SgJlE9*C-%-(@>~_z^Xe*gd;;)BwxXQA
zTpLWbogar$nL>PQvas1_V|bzFk>+D-1foGNx3DutkXut?h|!op!C;nwf2avu9SN6f
zA4lBP;p&NhS?F<c*_(kfTmjUc`#&vLMtLl2TfIdECD=V+El5SK1bI#=7Ad~U;H-XB
zplm_`f;cSd?8g+r-lQkeM_2_cJzh|Gsi=aF-b;t3G%aA3i6eDI*P{^E-n#BedAQqI
zITdQI0fylFT>6wMjD>}3Uf0nCQQH@d!C4BhO0i^8gkCRZkg%nIIDr;|sk}mAnqbQP
zvEN)p1y&|2_l{VoL%RB2yla~(h~JVM-1raqbqwEUAEs1+Mdx<|g9lW=S|PW;1e1lu
z_^YeN=MdLAZ}zpLunzJboN+(-7x8iDNk1mN)__z4<}bsu+CUY1eTr*c8|FgV`2yzD
zfwvzP7-CUw?JWPj)5R)aD(*|?h`5Sc>6T{=CzT<aZk>W=TNqxP?Y6mjMg&CpVyev%
zhr;(LYv(KJMeMWThiEmF-v<qI2X78qi2Xa*{@t1xI)j)M-%jshZ_FU-{Bh)a?+8@;
zJ0%8p<Wt1YJm3P(3c<oE5q{9!Y`P*lrvl^w1A>NQ%3u($UUv79EQswmd)!cx2fj{W
z{U~_}(D_f>R`0Jch==lD<gliK9_J?Ij=N$IXLVNI-BuF#d+N<(X@ue5Gmkg#1sLG$
z-72FT15P0E()|3CV+N<M)FAgZ{*4(<Hd-8O*~1Q2n@<;BTgG*(+WpR&s6&@r3qG$S
z2&d_Oo63!F!mTzj{rgpPpw&>4=@q(<8MTHd-!0b!=67)nd;dv5zW!{5wy-oP>Ah(#
zloo}fI@QuDh?^JLe-M7>al-dk`P)v7j4<Te^VQ=q8`x}Kv2C;DfJXhpRg9t{P*ixm
zg3Xr`_U`erdQVG$@Q|J_V?+z~T2X}57GK3muU#6s;J^aIQm<v27$snm;SI^mS#c;2
zwm;VI%mhx%q)(}vB_Zf@`+S+DGFW@as7GGi$LOdNb<G&Kpm?L({r4d@cqzego_b;g
z;~p2IedQtm83jbE_Xy%`Rcl`9>P7p|(tr=$S_@eG6Pc|<%S~*~;bcL5<~HuAFl`p6
zIfIq?bUVom-N9_#`j!KhCNYl(rQToK55T~&$%}O%B*gW$UHaxXU$8uO^NH^j<Jiq6
z?;xS+ReaN<xXQbI6#11S0==nN2+xW`$9f*~Lk!-adEc-c`}eTOpu2Dk)BmxonUOq?
zi6llzqB|byd)B`>XNPh-j~lF;hNzJT@?B`b=r`<p&Dp~zDF!j8AcX|IVNM9%Qke4k
zi@aC;zAYlIoRAtp+dM@_0~BIM&DQ;xKzUJ!ChjH&R4$I#J`Q1pe(}XS4!W!m?nCsM
z9A^WbAAKq}hGwv#d;To;r;rDo`J-UMeNOo2l`i{6h!qBE4N4>;Hn2S^k%Gb=l;`I4
zbz={pfSifde+lxes8@O@@Ja|B__Ur&Z{DMYna|YmlZ<4<!hOA{bTMk=3!jS#LHi$u
zn;T_HNnC_gy7>9zSw`Z?Tm(H)$V8~Oic(*aKs^qjX2vZ94l=m*b+pfV7W?p1VD2Z?
z3cg-)fWuOWoQNiWX`n=~5b~D(k~~8TIMWT+BdH}r_>ah74lR8uus)D@HL`LY-|M=-
z$FI_hvGIKQW?IJx?`y_Psn+)K6&o=jvZ_tIi<_S2$r%!$KV`GAw#E&IJy`aSpnR|~
z+`T@7{PHeBcm7T5Zex)hnj(h$EYK*LeLQcQ4NM*jXFYg8MVz5qT3S)~iM{^zj^_Q>
zew_6LcEXWw6+5=g<ahQJ9pPG%yW=dmhFcs9-58l1z<l;j>V=7IW16NBk@6>3@P58N
zAB{)r_*hk+!Ewal5yw9~s~FXXRN-`f4}Adn=7Z+9c#UD!;Xwt<AtTi15|3)5HiCr6
zbgkzDhF}o>p~4*Tv@3K{XK2L{?=&Fon|GiQtl`H$$UQRxb?O`2pCWaDBE*=|wM8H5
zoo3#W*y=$qTjk^(aV?+^TsV|}NC(b*nNxI-FoC7~Dy@w;eNd6|>$N~Rxk(QbeGc?`
z_Mp*b$^S55$w}O6_@)j2gg<bVdgy}Rv!a}UTI5w0aAYhqLq42@Q#WwbpKT&EJE^Jw
zQm+0Eb40y8XBn=-!-Njx$i~L8Rs-zHnV08p8NpcLP(uT&DVVi8y>nbO1lwMg7V0cL
z$f+MX`7KKurq-@|nxMJb)%@&F9OqUssoTX*H3PXI>sNUaOCS#fB?txH`Gh=|_0Er9
z<BFhBVj5A1`f4weI6dD!RDjg%71LY(lEByfkS*;d^2%U+wbeE<@YAAD@5u=v_;<Y}
zk24(2FAhs}okBhG3;fGn#kr#JE}@to4_1P`?bJ`6p33lInu+AurV`Mx>}g57lY`cK
z`3{@)QowSuc&sc{6b8yXOD+0EA>`N0sai(lHB_QeJXnGLtTNmcIwKB;j}ER}M*F(a
zOFVW#$Jn52@9F15ipaD39~;vK%7s%c=~4dX6Nb=aWp`dZS-{1l35LIj$IwxldaDL;
zpYKqHMHa~-&R0NAYbWC2%2<#kY8`+_>JA|+Xuj=LAC+ywH;;{96?|qN!~`{C=|R+8
z?68=%J-ev<2d^T3z%MAvOk9g8C-R$F2&#PnUw>X&;<>a_)gI**eoZhbI&g}GxF4?)
z;j76-{GDAFPrJiTQ0|5uIAhICJglw#!fVV(++S0lC}9}H?nb^jJDZF+r*E#%`&`|@
zc8oq}cag9_um<Jf?9Uuv`0>cU(kH8!;iA>0p9>3E#l8CTy^ojij-@=6#QtAc<Qxxi
zDq;w~vdSwec##_3s&b`|AwPx-kDL!4#RbPI=L<Y4c%jniSZ?ZjH2>U+&{~p1^CKm*
z6r*7Q$ZF~+OMi~;7qv^qw;m#|`!7f8=x$E%QopY8f&qC@lKQ;r*OXy*D9_rVR2e>y
zzd21dtO4fQ$pLhH+EAuiL$b`P1QK(8l!=#>LE*HQEXg?XF!ma-mkMgaLxZe3z6u@i
zqd8+OU#kO!Z2EhHbO&Mi<#Oqh+uHEB#Hg;;Ul$5OgH_X_jKQ+QT<wF95FGP7oFEjW
z2XXaF>VY>gc=ggM{z#5CSjcZB2lDCyo2N=mM34?-ykNdX*=P#q+&qTN^Dtm7o*9bW
z(}(}O-o!LWXu!Q6ZM-h!y0FT=(p2uE1|OvnYE?%EI$YSiO@fVKMfu6iWaO)CuP}Ks
zv=0#e^qqN7mO5}>FPR2EbWR-i)W1}v55L3?@N8Z+0k@eJFNSt8pj;*Wk4+l&9J7`8
zpCW!igx&SFgZHE%JVaV>lSu^@&R7*P1R<`Be4!~-2sfyd9B<V$VS-WltjzT1ys(&e
zufiO012nFO1|-(=!=ZIUkL7P%&`0`Ks5@Q=#Nw&~`0^#eFH)8Az^VwGrF5pvt(F1}
z0g06%D?T{%j{B^i6gv>(Z*88~Ar48Bv9~UrFq%I+FwJ%n1yZ4u+m(p_b*FVZ$Lu&g
z+!YENT=NuwEvM;%pA%xR3U9K;5T6AfpZqxQGlbV2<yRioWJA}j0K=0jED*Rh#Pl!$
z?USPNBxWA4!LPa@)h`r%`0t23isZ*4K$jMp#45)EjzR}#ZIuL}(ra+nbU_#<qJ%Y0
zdntix<8*;xxgu;=YKI&4Z(}>|w~oY_%0k4Kj5dD?<U@EGsoB)727~vqGj=QtVc4Cm
zsi;RCLQ0Ic*`38<{Dy9Zh_)mYFpxQB7z#nG0BMRW>feW&SEUFb-Ze*52k%guJaoFH
zRV3X-9LAjPsH6}4z`eeyHTX~zPWv`|GC|L6cw$VD`?f5YF-_2rJ0Z?Cee35da)_fk
zqTYEK&6Qrf{7*OYwh$!5UNky#19@RT1b^$0Py&qU?MqV+6-elw^|Mz)=WL_!#il1}
z@N~r6CT$4KjXzJ%J}X7<&uKxsp<=Y(I(o<JmLu|W=`%mk{H+P^4Kr=xGG#!$T6*$O
zi!so4KGFLP7+lHu^`r{TBMvZ4Z@hf33R$(`v8f&gkZ|q>b1Nl46^qurjC^gVXIl6f
z*Q^EW-O5RQ-!-5K>%MXZc_H$vzHuiQ104ChWYs{U4I5$YIRB0=3^-S-T`<xE{>0_f
zxBP~XB_;Ot*GU5~a{0q~{|xe2PAB!y?`s27j}QOZB0cCZNEWz+&h7M7-kB_jFMP2)
zghn^Q6iB-%{<(B(K<z;>xjt4MD5aXBT;@^%Z~t{omj+5uxsX_GiLOr~Zf)P_exZKu
zr@@q~R^0H(?AnV_9Ts4_Rv;4nQyRRfEBw?6X}IIpKmFns;^SOQ$);iz0M6<brXUS5
zSoiOGlqDboVq&+2Q}!hwBE|KzO)(90J8S7PI*J0@w<|CIXrkOy&g8wM9(kw@&bn4~
zKoa`e6r^n)a)J@p<MaJJOpp^;CUdfd9sasIlz*X?g{9X%#|8N%!L@4n$NY{M+*9|S
zNFd_|S8ku4aX~p49?c;6YJ~O<Uu<j-?FfK8<G2M^tT6PD9%<}&DgfUnpPy-LkN^sq
zql0hS#Nn2~?<@Wo^1vK)cbhNg2k+YTGj%s4A)NZ-#LBohG_}|CUcSW-YK-|^zchKF
z3kKRrcv+x_Dl(g5h7%xu@ll_h2*|JmwG1eVg0#0?6ZoMXR1R~LqcA(nyk=gwU&;qx
zB3rk2s72sJz_WmgFm{Mhvtq0Lr;7FxmVa{5=kC!>?oq!T#JTC&QWM?U$2XtSReRcq
z!wyA#^U6iE2N>(lo)3|SLnZU%dLl!Z8p#9iYCE*2`B7NfslyJdRS)t4lhIys<<LCw
ziv*;U#?P;!K5~Qhdfgx+;uvRW&Nn!+!@2TQCE9p#SkL%nY<vW9Nj68KB);)NvEC`O
z;J3oiv1wSk6NvWOdr3T5$m<u!N;CHfou_9m)j3KbUS1AQDI2>eH4u;X#$N96!YZ}S
zc+luJ_RvT9g-01Pa2yzMVLiqL!IYJF9O7dp8rpYU)ja^4TEPwVN+>7rgEIMa>moL$
zaqNuM0zH8Z^VJp?v%q?c(8Q$~V<;^D^y1a@A(%*6)9g$!10B0-|4Aq7!#U#>dZGM7
z;AFmM*EnJVMxiq#of+ty_sIN>;@87qJ{b6A=Ivo1)*{sRdXGTU+_!qo@l!y5ao_P2
zuPLyR8?D$FDMOFz&xO;5=5W_<!S}h4A-L3K^ShigLOx?^K`NcYaKo)4d=SkKeE!o+
zu=fCXsgRobc|aF%wP*Tts@ibPHz>W;#~4}$lUDMEPJqPbK=eqXCD`aantY;%dbIC<
zxbwxK``G=Frq`94V0b_BxhEHZr(NB-ooia~FuPVotsZ$l%3ksI%^8A*o5|ULPD5BF
zi~Y!|2yo*?%&2`W210g<;mTZ^V064kvY}80Dq0IoAN_}V<5?$TZgGf0$(;tnCk2QP
z;uNPIkRSzepBwl{+j!uua@CiOO5{&CRntl3!3D-`V%~zmRA8<$|A^IK1*6|^oF>c=
zcg8ReW40Cqo`h7-`VbzNFpL!UK8ezpC%f0#3z?y}FJisWL>P2pilcnrqFheWcN3Oi
zK1dy#$+|cv4A<1d**czygSns&7~d8J#s=<#$B>uYE~AJ}w^|wo=q|P^HzHpb#3bt`
zqW&oyVRZ-*fs2o>Jixtq;Z5sg>@`Y3VA>w8-beXJFK);8?9-e;yU{yh)4~rjiqoC8
zCq&>@hdS>Qa}oG1Zbia`dg^v@mhTJY=z;zC)%gP%vhY8O&O08<w+-X=-h1!8_vSwB
zEu&;+R%GQzcG-z2B`bu8gpyLSo<~-sL@6nR%E%~td$0HZJ|FQs_kEq$aURF_xL;p&
z5YWH@as00>TDQbuU+H{@-5L)F4O*xRUR%bF3W#|_UgTpD|JeEF^!Bmm+5fs}=E(6W
zH@`WhG|%9~WgXO$REfd9fV1q|MZ|~HO!$>rJ&bX%F*9e#F@QWx@Vbx{B|gNFUL{b0
z3~`zbc#=AWAs$m_lxkeZN$nmJrrtn4TK((1=k623sHE<IrzRV|ui@UX+Wmdp?Xab|
zPj?^UD#&kbQ+5$RU^s`8Eb?{WJT9CxVrj&(p8ggycq#%4ZZh8G{V3mzrT<v3`GBn~
zT`mu}LyUJl;dl3Y7YW{uJ7zU*iVNw^P2Wuk#ZZ6hc$RW472d3%V@dqyI?jUY+=G4@
zRxrAMNc5yU0wVU3uxr>w2(eWw_EEY3I)CvV@iBq$w{NsiULgo(wd4f#C#-<#wCb+7
z59&`n`TRBg8(TQ2o4!F#Xb0o^0}RK?_AsTQ6Swl83*_14#-3QV1&sl|R-PUQpy9aP
zud?U>Z5;D8bbf|F{8KmHX(a$mic8j;l0$&(rIn&P=Q;Rjw603&;RBQc_w$WRz2I|w
zj0FXW4>YS3=++Z>!L-Si%(ZA=I6W3Hc&*k83a)=CdZz9TB{5h01m+#USGu8v?SUgW
z(`mMeve+Z8#F5gvgCqQ@eyz%%a|SM^o6NErI>Yj>tkXJ=&!GH0^Q!zq8z}qrA?`G(
z9dIpKOsfw%Aw6B8{f~?R@DGKn6E^Du!R?h`|13k8BOqvaNrXXY3NpX*VX#M+wD(;|
z2dr%ej%IW9A!E|-@pv|d#O=1=$IRMr<3g`g<#{c5aoLwP?w2MsN6hlKKhgs6E9^VR
zu^3zsQZW<DkcaKz@S8thYs1;swHD0dhTz_kNqV8!5bFBjzouITaL(M&{GyTpgmY^Y
zSgsmC%!Ec_W|T2Bul{~-bI}lf-ic>A>0k&pu`^LyR%X!NKoI9zU<7(Q5p+x|a*&iH
zLaUGR+*`6zL9&Qrh4qL|4MvDTMD8{9hgx!Qf>>M3azO$PI>%(Mqy3TH&o07XO2oBS
zNc+!OTn5escA7L#BJQ%5tUGBsHMldZvXHI|!)>;;ZGJLgSPt?hT9rdSmM4|A)_ikV
zZlyqs^{y1u=7_jYTvvu&&4`z;EHxmrq(WxQ8TCtD4cS#atqpuMZ!;6c^x!2&p_Jkh
zBb;~JeP5U)2gcjKSwhOV;Ac?hH=)zqP?{dyA}wwK$uFw^%k?pb%-Oz%AjDCuu3`9W
z>t+Jkl7D0q5nt5oak=IG153!Lvm|_anHy-tmK8p39Aj-fi>G*(7cjPK&zS@kP(NE%
zQz)OLE@+x$(Jy(U`KbKDN7qs<_%kL<e}H<quD@P7ybxlDIEPxTeb3E6BKK?TYN0B0
zzyHR?QYQh^^94f7$j|%BT5{d4LK{e`-hVhRBmf6%n%OO<MS(#?lssuy0<!Hg_)A&Q
zzDwuE<9D3WsGlQcxtbku=k7`$&n+uJPf&+%<|P>rQGBQyt|J5Kd=X|rLWnc;j`;II
zgFN(|OIS3`M!aQup(18w6-f0=Hkte>4?5MK>H0LJf$AgS`n5d+=vPX9ea=oDHpTO%
zD7y?GS%dfjZUlYL=8Z`&rznGl(E`UdpAPi8^$gwV(1k(yfDKE;y(@C)urJ9}fznOQ
zB(ZZ^@Yw(orKwQwjNZGsZM2_b<Du$xG82Kp!5^FqpHcsl@xI6jPn3%uJ)-I9R{@Q=
zouaR6qQJIL!)#QB_JDt#CXJ6J;Y>@0(wTq4@ZV6MI>Rq&yow7$_16MYywJ(c6xpBC
zSf2DqU_R<qX;JsQ^-dJ^YEurzum76EJuI5!?7c*R_dPE^=t9GU_Y{fh|N43b$1jzz
zI<bIqOed?ntL3(^`TL3gZ9O7_N;uCKTup-)Z0Im=<zWOKGe#97T1xO59IK*9<b=0u
zH6D|H5wAeJ<sX?51*l6F!X?>%m@|lb;nrB-`2G{Y8V^ngZJnn&i};K^LGw>|v``*B
zNV)cnAs2jbDRd+vN4_na^sWM9Ubxep>vq|h8iXj^9R?8xO!cgzh2jDW^hS=<hHo$9
zt~V5oIe72@tyv74%e@7h*2gcEp8PX7>P2_f<h$Q6`!8kh&2(q5{`+$d|Iy9hGV08j
z`z02zd;D@X)%M3YbAuJR$+OJ(r*%5}AA?EpbwvNZ(HgJdI3$=zM|=qJr_-hN;y(Yw
z1-*E5n7&Mhx7?WHul&S}e?hzat;$#kALbw2{oNG#LP?n>)+Z?Ndbg_=j&y19w<70E
zt5*JEkt>|xryW*t>q(!79N*L89YVfeWKv<q@8*A+NzA3h_l+_{R{SHyzva%LGj{ol
zB{It9-8(~p_ZNu#CtAvcKa^qQAY<aicRg0EyLXKpzey*+defE+V)^4~638i`)a-ly
z+crYH+JEtsq7v-*YiE4ri3S+)YcJ&Jg3nUnonKS)&8~0a`m=AI;MAnR*V3N)Av4B|
zciN`mlDkd}%?bKunJ9PuWW|H+ZITE??%r!QK9+%OwHKG06Q!Ujk$#H-<u|<^pCDHg
zlZA{g^?s4Vyin%y^x=Ha7IshGZr+<k0(>N$?$Li^2d62{#r3<0<L5;ypl}Q6QfK~_
zXv`Bs-dCyboGAYhTBO!)X{Zb%Ezdb9{wPC9)57Kze|5N2WFShu#0=320R<rih=({*
z8{k>R2EqzUo!1d3C@iclFu+L|PELs%vj_5k7xjwP%4;#$o+IvlXoB(+H)(#A)+wQW
zjfP@|zsUc5S|S@me()rHTlZypc2H4(gEPjc_m%P}#!}D#L{{!(%8#kTi9;9P3Pm=c
z&{3R?LHFGbC61i%Ek$^8pICI|)jamE&8y+1KFaH)JqxPZBmxuv0A`o1m$-!xhPi1y
zDlordrF}P_7sNtG>WA)e!CE)#tBA9FaOXt72x9~f1QayN+F2c7dskX*M<fK`_gt5&
z2;%GhcE43kjrzfK!tpZHdxY?XrHmqjo)C!3#O%kAZ{U#@fy0cKB;?SG|Jz6w1FkXc
zJ5#YJ-}Bw7HK-2d!>9R=Pk$4H4{R^q|3vS(Y;rjfe+5A(T#r}XwGxE#e7Qog92)qn
zdj0K3<i~R^O-QY|jrwLkwy!;=M?90WI+v28xq<hde2m)%QLr~UUzz1A0L7ygOoqV{
zV6iFjR2})xlYhTr{}8|n2Mz9KZbb~JUr{13=Oyxe|8W!$_`HGh@_e}?Il~TTrGl8W
zx(V=$^m7t~`NTlTczZddgc+{>upu#)WrMZ9MQ#M1)Zo{zld5-)6|PF8_I-?>#eHpT
zxFDCbfhEp;6110OgIvuIG%P!8@MEZN^uv2nQ2H3d&#SqOwS@92HSg%aGN-K9EoMR>
zP_7oB(?k87_eJJ%{aL`y^BMiwJETCP-EiR+`g@8OH#~|*c^Yw^>yo{{*x+4@;JA9k
zI_~L-^!3FXig4K5tsF^;dgH>nQ@cw^K!<L0WHf#cd&2$WiL(YdytNq^HRfjn>%L#x
zUPrW`H2SD%HGmb)Sx&A>6i;Il1BRg|iOFH&<<=(cA=(F3@*KSHl?L*`t4|Ndguv~M
zVg|uecEnG0#d)Cb1K<12x}P-yF!RoCzK>BIjE$`3rQRdoncLI`rJy(%o(|n*`%eIv
z{K~{Ho)Uoj4lI=VO^7$&HZw9xtpIFFL9vMiGNAX9|6|g;BDhr8CSO0P0>$j2RG)1$
zVJzaW$QqRfu(~KqN`2CV^IUhxoYC`pzemSn2l?#erSd*&aU$N`Y6B;sp$?FjUpN+%
zQiovm+|3{s9dMt`tCM@C0P)%n@AEGzfR;HQ34OOPC??5L)f33V8wvrRuS2N!luxi?
zFjWFpf7G8Q)li1}D$<96bBdtqOCk3C9pZ6hOxzkn{mjY2!=&rMqA(KTw_j>N0`eC#
z)VzKEU^w%;mt;rgaI-nqNAlkmu;{M}k8OPqu%<KiF6yW+`K#lffkTv&ZEQ%w!a3-m
zOYuegH*3@{HI~##Ge-&G+RxaoA`bBPszo2#es*AYb>`UmKn<6OZ=3U=y(Qt<yn^4T
z*N7s)*xPrE8}<^M&NlDz!i$*4nRRTO5RJ?09MeR8SeJJ^W42tdfe*|-P!fW|kvAV-
z9PvY<SmjCk`{>`9>3fP0(?U_5A;*v|1xzs&&WKdK!eytZPE;e#n57#r#q<FQylo=O
zZaB4y=@OdLH3fTPo&UvtEL<0a@ed<guIW@TpVK~8eTfVj+hUYHldWRyfB&2-pZbg8
zpDuJh`zQh>u{?&{0;o@h!^BW}loXDxawG{%aRS#Trf?H`5nzxYI@&`ydg^wO<V>19
zY$IC5{+iMnW^<4w=dR5F%i=`473f^AZDS;u+CV&1s#KGVOQcXbx5)qd)*;rf9{fTG
z^(RkdEEs1ZUh_RoVgeiF4>6z?c)%vIi;<xg$6f_u{7ET2>HybwxJ6;>*Bu>n_>F{V
z9g`CRu)mS-g<~SbvmgC7_c^(Z&G$ZbamrrDmEE1}$V$WG&dGRJPjV{4Y(v-ELLZbb
zSrfZHi#UOU-GUjBMKXwU&6``}%?y7DT@3Ku65w^&<!v+pFSP4vY}`Y=fJ=VwQxTaS
zMt*Mi`FiuiiCL}{?`=*vCAg3;mPQ2c_s-g~0pcHIDGeHH2!QG24T?V$A~0?gOBH%?
z9m_lH4pY2&fDy(lY5O4`<o7zZXNAuXvH1Fl*!mG#<OgUtzC|>L_1dgQH{N4`b>ybc
zdCd<tT>d7n8To+z(Mhu1$p;wWPyf%he+1!GyGX=#4C+lM%aMJo&IqjkmCUe~&f<cy
zh6bnyXu;<4BA-UBFjR2n$yV-gg8WyF50ec@kK6mSFwBX#Z|<B%0y`8CSJ*LqenJrP
z&VRe<%`XW15BOr&<k-P1h|%`w9U}yKm&rxR(8Je#Y3WZ4guprST**8W@dcBX7Ij|l
zU^a&TI;RQA;p9nXimC#{6&>1XevIzh=}{_GdOI{=aTKeVjd+cbs{22@5vTM~Y`ZRd
zA?kmud(?B)Y6oNUw2#$XVFudx5S#pxU5r9O{qHYVGVoI#jq2TB#j))TrabH8f_49}
zPrvFJAWPKdQ7qEE`*>>ZW%^P8UAt@WZMs=ZQf-xCq)r-|)>K2u9>_w;9Up1qNJW^G
z7#72oAl{D$5p|g>;*@yOu4ygH!6(AV%TtK6b16SL+D<_dq%N~R&Cch8pX`M_dUc}k
zRq1MtGx|Iq=o~0s6%&L`x!Q<#J^V1~#Bf)coE5gp9cd>&v%$o7rp$#WqOj`w)t>)4
z%4LqHl1ulnLQ2bcF?WG5gm&(ey|Q5gA4__hcWw-L5z(M3h~mcIzIRt8ZvGf&rfM4~
zqj-$lYV&_0r$LTqUbTwmxyXrk&Eu2|N$11kqbsp&+%XPI_iYWlD~#U~RZ3jw62L28
zX4~idLyPa{CN);k;>U~hDjUjFGvV`S%kP)^h~uwvm5(WE2;fN$vJ33_4sdq&$k+93
zDew_tx~)!lQjj5Pttyo1z<rofwY#;pf=kpU@iaNy!#NPNx{Y?y;ESg#1+K7h<BR(S
zl9zi&v9@OsgDK{-*!9IX+>3C8A)Dol1f>8z?8kMy#&<gWeOmV-*&S;9Pw}_I9vK|?
zz20kweS+J#<oVGS;v2kpCUVbK-xwaeP|uy*6j4Te$Ef3IQ3xNNx=cIP4~*cMiJVZS
zIR;mMK7MjDNEaj$zR!i9*9R-|zbn+~y3nq1)nwz53EWxBxKLQD4|=sr>%QswaG`TM
zEx`>yr7Nq19qC|;S^bj93dTSek=7_oWC%chN!y7N@k!PF@M+{aFd6(v_XPTR&F?&g
zg*_!<<f2j8=W-2jVpY_`m=wU$BD$Ux-H!>9CUGzF5x@RBW|46Lz>jG{=szcbSDUj0
zUV=JMP&;LD?mU1RYs2k4V`HGzc~`N8^gQ`%PY%bFjDXBVzDlAN)pdo3myzh1Lc<`%
zfrpGCRMEdpJ^Y{#bDKUAapb1(i-!KHxv2s8G!fc8eWwlki#vWq6Nb<wdQ&0#iv(!$
zF{iQi3V?$zHRqA7D7fBAyz)C&7+l!ikQ56ELAgho<##m+U}#^)Vor&}SLUM#o&rhm
zzDDAhKraqez1+DE&19g+G(BG?3-#jGUHw91ggEY*G^c3ugpp3kqw;Z_2jvpu@5^ur
zAYK@yG<%BxTpHq044M~%6o$JToo__IK=)k>IguD-Qy5zZ5r`qa%TAxetT6nY%A^(+
z69uNK!MhpdLQwJPyG)9u0JIPak~~4aSHZ)7WSRfxntEEra-qCR(@0`g7s@NIxn@}K
zX>)<|d5U}GUi@IfMJzwVBnp$Rrw!Ggi$f+RM(`W$O&G(9UY;ov1$JxyCYu4|b16M1
z`eTz3>I<*iFROBc^5;YsCpt0+dX@N5N0JCWU$19gR3QMXfYo)X3JUxQ`gNgZX8|~s
zvfD5HiXX5KnykF2FUs<nb?kGrzsYNtU#uM;!oEa{mk!_A!?|e<%bF9h;QuL}Uh}T$
z#vz~POUE;_m~2QZ>yft@c=E7>d(zUuRqF|BF-um6TuGty$)JT@%Ch8162z;c6}Z3n
z7UiC76u(JEui<)>z23Sgvq0jNVdKVN3ea|WmEH`9Q+vHlLlXHiUk;Q%6Q<$>MXv}B
zURMEdv2DCul*9o65_eL@1BAiGp!Z_j78g9X!*8T9pdK>=k&6RkOh6WwWaDs-7wjqC
zD?g@1_lwhFZJ{i3z#FyuV4fA_N~vEs7mO-FQ+7LM8m|f=N4ocGbJbvz@T6Yl1~2MC
zs^^xjK)Fh*oHwr&xFH~I?rtK|Rg)e5>~snULQX1|M&76Z$|KY)d>utO@aFv87Irbv
zGmSLzN9WU(&05>IbhJM{{3aXLEdz8RgEPDzRN&$j`_F5psxZA*xIz@K0I>!>Ttu%m
zfa%Ql-wPqg*OitKsknqVj#TsYyl7vPvM*3!ou~k%tPDXV>d22~d*!b6X(1S59r!u6
zC<6b|Un*LS^25o8S2aSlCBf`()jX-BDC8Wr8JbcE!?*n*w%-?J;dbb+i7$EL;IMu5
zT=F?Z2<4eniam+?*lmVA%2?Tf^!PR*3oq*ZeV+3thK3ua)i&0~2?gM!iNJk^4}74f
zxTofQLIsR&AI6gsslq;f=bomkD(t0|D$pSA{<6^K2i>6~>_wnrScQ%X*c?UQ%G6ed
zV$-U#u85Nqct%rmff{kq+sf{nqkPG(gMEywzbZ8Uo4aWxqmKCECKQCCB5?YS^J2+}
zBsd?1`Gkh5!gp=SKUFo_fQ!jGMb*dx1hR6*hHG+Q-WXKcQ^5noFC20lj!=I|p5h~Z
z<U6a?qAm##LH)9&msmc=i$lDGBbz4bWBKPEoIcOU5B4_<OP*g-gg)%?{>LlQAiZ3i
zuAZm}V}J7W=sWm8p(|GI%9b2F*Hekjxq<d<j2jC2f}+qWcRpf(Nd&&6mGkv<qxoX-
zPt6a+=f8HUG^^kj^6@^VtP%N41?(3unq+v=gObSGml~3^c>N<{EkoqzmXmB-EOe3r
zS61x~Ps9()iBcuoe$5Ku*Oc#4&B?=;Qz{E-+ALramQ&Dkj|ch(Hxfg~*}$*m-OR-U
zes~@l9W7DB1{t5{qQb<9P|vmr+XY5>*n0QnPWClUu-xeBB=r-7!@d_UozVH5;TRA=
zdQ1uX3p>`qTynrFH_F--$_*z^2$Xe@uz(>E(S^WO4lswGjp@kWt=ku!H(#d?WD8Rd
z6+Mt&ZR69jw2lId_tGXul_4&{rmpqnTVpskP3@NHE^T1ET++jROC6?9`2Oe7s17Ao
zKPtK!bWyJ|@i%b=HTc!6^!=5*7F?vs^k~i31-50+<{Lr!h?hvo!0c!U?`4fNY)%05
z_6O^A%^1QGPk9^(-VpVRxqWp|)rXba`_Jg!>cg>j+r4>S11LVkl~`sN!C>6^P}%4D
z@TFjgs`a@k*qSvFpZKB+Om2~C{lnVuSo-v+A|>j*xaxu;?*{OS$ZdYi*9gXTuJK4X
z8N=Bbl&YNuFvSb(RdK3<>>iIG!B;IXxMx#)t5yZrMl`;}eboS;^uH9%D5t@bQQNm!
zkM!0kESMenp8iv^V&u4`2X_mM74J&wKqXD4!)Mg15%skr{kOFMEWUQ^jzasyi~#vZ
zkJ0-`_4oaJzfeJV=@YKIvLFopX}ZeYD5vD1l75a%lM7BXxGxMnWQPUQ5)O_glp9|S
zruy_B>XTp^xmTis{B84bO$`x<_e*@gTW*dOW<8&lm~pd!k!!!kiX%TbS`H+{6Y_y>
zIHfXgz98z!ORdlO!3)r%c<s=e2M7u`{oiJyeLTU<tRZvs91wap2Nk0pTZ21NEw{yC
z>;4@^nj~~CuJrs-@Dv1tYGt)ksGn3wjU;INSOk1&Km0v$2j$#(vmd8fNPv<_^3DMb
z%2U0v!}l%8!BgtL%WE>SkS2YeBq2r^)Xc6bKA#bV&uPZjbT0A%ft`up_OTMEsrhGQ
zeU=29FM?-O;$=WPRAMBnLlgwkc(nFj=|CZm*wa#!SNnmcqCfl6@JW7?lS~Trw^}an
zPkmv63a%eF#MA_Vb#>DdED-naa%XR`fGmg=uh!T^D?(Jl+3I=Jzd9(Z*3fGr1os~s
zn@5)lLJMzlddHLyP+$J#KJkSUdM}sMZ-fxzou3vb8{R}cAV0g$Dr6&l>cG8lPna8Q
zNA$)2&s%w0>64~AjQB!r-q-JYGe9fT;}6`)g1}@^+tW;;1QMJHXKtzRL9yg)5#tcr
z8`|qpewsvjb@6&`lcW@QyLni>F%*Q~FMNoL5Qlc-V)jkm*UE4&RNaf^h6vEk#{{w?
zU+~n44>iwgRKQTpG2I>IMT{v`m@8<sKr(YK#W_S7K7QZ(<@QV&N)_xDI;~M(jJ<dE
zw51|^$Ui-thR)}Xdv;67QZnFmiulaxhBnAu5&Y{Mq5;t*$+togH_{(ZL{^!ObouaD
zZ3}h`PWSm5sDDFq+-<FJ!49N5U+bA5Q&I-^(j_W`FbyDFd$ji{R~16T$Tv5C%YsYk
z!^ousU8s~8AN6>o3>*@=Z@nUs-&dYi$!JIs>`y*2ZF(pU*0R3?&9c;Cxgx1SqE-_~
zUu^X_)}dUjLfr&uF!Eo#K1E=qrU*X`2<Z=+RN!PX`2~uf8t|vwx>c-R0|G1N%$`3-
zT;wN*(hrbN%%Yg|om@Bz;?{T98>Ldg=9xEM-}VrHg!x~iC+dM9vB?>e@#TeR<%#&h
zduV^($o$zG^&kC~7&$h6CImdDkH!fK#9;sHbo3`z1$dADmRl1i4v&BO5oRJk#C;Ma
zttux@sB5ND7PsJohxU~rdT0-O#VQ8lJ5LJci`*ACpB!K$rS1>zjR^pA?%7W?9b7<P
z$dEHwDg>_PEFZXDvO&n+3TJ+@FueDsXyf!_f;6|&RZER*V0k1`eZ@!w?D2&RvB>A3
z<t6FRvCa=H(O3g+MFLzK8~z;|BTlKZgQzOXHLE4dZe-Gkz^w(X?|#3K|4&MPRlpjF
zoh{Y&b*$3R^@l-%xE$@DuV~lii%Y_cn{<~@nFw57<L6{dLHvG?iqM{KqA>12^6)C^
zw;$Pk^s@IV^4C=R%vPGqfPueH>+Lyln18iZPcbV2asQ%U#*Rur%vnvx-^h0pnD0F@
z#(?sci;gZ|nIs^iRmoQ!<;Mh4<L}-<-@Bq>3H$QL;t<zS`f@K;7S=xBiro{Fhi8m=
zoI4cKkRwQ#^d?yf6y6pOyhS~;VT39{dpA)2$Sxtl-&P4+Q=(tSb1J}D3)}w7-Ettk
zZ+uTZSrN?ckx@By%A!1Uh}x>73~bq+?2?F=gtqe}9*Yjr;3MS8%>Pyu1}0-wPq@oL
z2yeyBEpa&z-%d#&{v!iN0Vb|^HzA1g34L{5Kp1j))L5*E#KCIu<>7}kQRrqrdqo5L
zKbP4rM^}g!^>YS^FQPdk#NtLm4wVcHXq+TGS0x2=ytFaS>Y`x2rFOhO&J3v}u5Yg)
zKaB!s^2=sgeyE|o*I=eD2wrbu4k}J5!ojC9*Uv(Tn{qGe(n;jc-FOjPrjX7F6O6>)
z9Q9d%Mt(UU0r>^5cdkjdJBmWyx()DsL3*uFmD80=TwtRgu+^Bw3KQ-LU1SGrK>kJv
z-*8zL3{zXls1>Au!+83NQxzl3S}(=<)*wIGbV#>z9StmHefT$HLjev;$bL-A2ot)p
z7YZU+z^6#PpNIbdW033Yv}fAIz#)|@&0i2O{#DWea<pHwXYY~nVuxMa5|aSpC8g)$
zgKhPAAvRWdfhAKMt{488G4Ex9xWT};8iM@bJgM|^f`|x0#eaDx{A7U6xMJs?0WRS9
z6Z4V!7d`0gyeu0>dm_y!(iaO^EYP>&xuApewXNhB9UsIE?ldtoZ%4U6GpFB_|Ip7T
ziIfYp6k&$^k&n%5DCZVU7S`r}ofYcG+1bD7A)WPdBKBR95ef*E-CUnAAwB6v#X}h`
zD16P|_JT_RIOFeSo-`8xyU2u?ohhWNzcY$4N4{3wOr4JPQVICo@Q}znSpgCv?uzni
zDu5dIX=)xi1u%#!i3~zI@x4fmRq`%P__y&*oR|?km&Y;0Q9p#CY(BO2jkpk4+~D3i
zgZdSsSgPs2-WG(S((J`<Mq1#?n|^eqiUS<>OAM!3$w7_7%rqJ4+k%SINBsHpfQ7TM
z$9plrcs!|YbvG+CET3@1&T~Ob>5YZ_WoA&WCnYKWO$Q{6uCJKhBmT|d<`%gpHw*|!
zEe)p&fv$+N&`Z>#P#zFJyZRRO6tLM_`aI$S?B+k~m;?&=QFA#@&X)(~l+X9`Azg6%
zu=e>2CsybUohuf9!UZb6=9cgBgaF4I#$<_}&#f+<@H5FgaKA%#(3DOXn0vjh-v5Pq
z85Q)*c2LfGlg4c9PYdcP7`T1-xR?th?d!Dn+)@8vZc~Sf3gX~CFiVLS5(mZY5@Hp8
z#0?sM$@gJZ9OnG$`Ga0cLb$H|&6qtj#}<k&H!BFk*U5F68XGh(lQjrDS`>pm+w)WA
z=Op1p#NXp%H);6Vhj+IcLwu`z5poN8QLs(nyDQ5i1G-8=r_V)7!DORD%t*Wnh<I>q
z7+scwH?r{iA?nFZH?0zv_Z33F-(JrI(pLjio(wc&;;@!#9~Y0_zmi9>`Aqu4@cj0H
zOYWL5_~48(?HJLVQ&Y&-%_)xhq#IxB=L^HrndXy>ERvvc@zSJ{A?jN_L0m-9i1^W$
zO(wpfyp#R8J<TZ=lpico<?{0p0X}id@;MpQH!M*6?scvdI9@rHdpA!FDo&Od%bz1`
zl9k{;j;;;Npu$Cq(sCa=E-Uh0Z>NFjp7%=Qh76$p;E0uL73tJ0LK(t!yg(49R{0w7
zM>+jtFUh%c!W4Iftw$X{RMCogf2(E#^NsOv8MODhB=#sw5OGlx@4k<CZ^;i4RkF%^
zXue>KVs7||KHpsN1HooRVL0R}`ZQa_2jT4B)9s(|z%#X{k6k%f;ejnNX@L<JOuYE<
z`$-%p2rYcDc!JI?0{3FHi4y=@6N<ibC3FyiXUl7DV1!eQLk50cgz(c^Z`3ZG1*+Vc
z9n>V~!HKPil!F2Fko#_I$!}7CMxnmyTpc;^>-A2iUZ8-Er-8F$L5TAxncIINi4_EH
zwwrvIAH&|6*WHspHICUu{FqWm+`z4qZP?iLea2b&Bs084^J<iSSldo5dLBCbi)6Q{
z;lHzKJ~0ZkK*O@OuwzULCrVGV3{J4X+&SkWA5~_EeWQ~!Bgz2oR*&K`R%pR7`81=P
z9x0?YE*<zIy?)*y@}o{G75IH6ykxOK3HKO-E15-T!Ef27^nws0ocr~7S(SPVyBvR+
zz~6@r`2LAkRqb*?N>5sd_%SzFZ-V_w0MbX5>Dax8*g?4S6&Ixw6Uch2YHfdF0d+c)
z+c-Wl*ko5zDmhIDWMmc``BSvuY**1g|B?dOsi?+pS~EiR)6qY6y^K&?8MMH6p8!Zd
z6fbA{A-#z3NBp2SC#Wlu5Xh!-!E#x=z^sZ8R1yBYTF1`=rW3s+${|9q^1?&@BJ$x&
zzG0&iH<SXr%li1hz6ezMxt%Sj7l1n(hT6_+ybv`}$-XBn0?a3a`fDf=pIg1Fo!&(h
zb{B65xjYpHultN)AKFDgyrF499QnRa(XKK(p!ffq0{^Nq^ghV=m|$&3#RGW1xtrH+
z2*YIT-<2{n=MUjU&a74NgV1N2Z|<nK%7-`4$taQ?<(u0dx7?726tP3bBLM+OmFYW*
z3m1i<=l=ME93cplDv-^HlLAs!OHV;hA=q|d&9`omhopBp@7(0YAU<PiQVQ*lr3VH6
zi6{y{#QE34M!G~$AuTyi^pF_d|K~2}+=Y4`LU>J?1~|c#n)`CSFatcd`rWEcMFh9}
zm2?7x7=T9ZzWGxpQJ9tBEH>?60dB#}9kvBx@RvI!C?Z0LLUB!D+0w*7;$qbA%Rmf0
z&yVBxmJhJrewUgqJ0^&rYNc4QA%ual8D2*|Zb*8G7N#rgAeq&y^duF%cmHfXZ(`&C
zYnrLX$Iyw9&_wuIdoY2Z0O6Hu$xJ|>tZ6@z%?U+rVwNRuxxwQ@ux#ZjBlH(NX5_!d
z1+V9MV|ptXVH1CjN1KNn<mzswa%P}h@&Sdhq|pIZy#9%yTZI9lgM&`f)*=oG{cFNd
zS6Vo`?Okv#f(Gcz9Zhe$k7IlLHVU_qUi}4(TPhK6Axq1Ulluo5UbXZ6IYy&J?8UYR
zJL3Tj{3m{{aHy9Q7>^BwUSlXnMWk`@>g8jsBW4i)%WwyKdnL2t6>b}2zP)eEZE}DG
zd2m-<%$~*NtLOwaeOtqY(qFs!w{!?+khkjLJ4=B7Ie5;D&-O2_UF4;$C)pQVJ=6K5
z2iKor!>>n)^9m1enqS?9x~Z0N`na~+{CtPFISy72f(!k)#~EvpkJJe8ir&vQ7gJZU
zmTSa9&p3$SL+FR;PvTQJ%7V0{a%>C>_PrzRbCm?oJXg??D!+@HAKY>n{muXp*^-45
zYKxeF`3e<l!3`Wu&Ks(;{gb$vBcj?LYNI%II;v`in?i7Fu>9^lw0{)MSxe#MVF#-g
zv!9=WS>R*Q63HKVAqX=Uh%FdKb8oupK^w~Z2{eR%qAg>EH1}GYphR}~I@+-5f$rau
zgs;B5Igo&hkgu^lEeYzz-98_T`5>iHSCKp#?J@Qw!}cA8;d-UM5^ItI{7kMLuVWVn
zM%C@KMn++<cj20@LwrMnM}m9=i4x!&F&|#jAq2C`@%=b;9x!@Zk+LR&@*q+MUo-~!
zAnA_5@8E3#q$A;d1iHB3$+x2QjvXPyGkH=xJ0k==0ij!b`$91MZmQ#xBkIv@RG*4<
zLFdJ{(cDyDVMt@M38y_L4!3wYBfb%f!EL9SRZd<m$o=>tWPgPUZb^p9c;!$*Y~Z%L
zCL;snJ-Q?>(n1A~y-7x$?8(75Z9z13l@2Jqq+Qb2semAEHY_3*>5~675@jhOj=#+C
zh*2j$_*quRkDz>ml_%x(kQrLE|9!;uZUyoFv>2bT%W{CY#nks;6U5hgYuFx)a%t7E
zSgJ|`8FV<(4bE!pW32?;GR{uhm@$12rpCqvL{|A?Bd<w-a8q#mddgpnS=QV;T!R2U
zj(MM5_T0g4jRj=r%8{TRVE%76b%}wINLEE#f(F8NTZ)eTN#UuvN?7At0w6PMrbrK@
zg@L{+oo^o>V2bU0Q+p`)cHEP<#6wO5K}kgAUF9_3gMG)j<PifraJz0c!V05Y>q+5H
z(EiEaE^WMo0YYm3v^i-C!GFIe!d9s1p-g@(a_OZY)U~EXhnXP0info{LaHDbDtlg-
zzD*6zl{4B)mdDsx0h!$<a$#W5Gr7pWL=1f2TI&eWoc2{DwNhh?06qzrzN?&~hRbr}
zIni`1z?`z?6!nG)CN|t;&Fk4AErmkLtDg|Uy>gDbc{#x=k6Qj+9Upw4svb^><%Cv^
z)*FSFDL~%PLT=a^^~oQ_oA#jG7*A_7FG&G6{E$m(dWdq4Mq@;Zc~AB*tBMP!AIl(K
zSvz_A^hIh&)e7AS$4LP3gAMoPHX;~|IZ<PlNe&y#xd)w!NKd-3>p0X%4<%ZmRKXdV
zko%Ilm*TfDxQ<uR8z|{O*teANlR>f&I$xx0f_QVDyo2;Qm2$wZqIc?duRMS<2b+VV
z2)qcLlseE71(*ECW#8~<&#=S?eNqY#?y={AMM;4A<#e;nGC^>8kg1o*E(!q|O;TJ=
zBCxczJ8$(F<!4$GirgO}{hMs&!nwzikX*dk6EGqL0(uacj`)evn)lDApOA!BC$nEh
z2jUPL7MeGL=DwRd8@o)Wgy0|krRJU=KX}*}onc1(ztoX6n!kvo;Mt@4!T%mALE-zw
zPLpzZ;G~TIaDa5-qoD#dJ~q@dvS*@6j`~4LHZNwWt0};7YC+6JZq)O!BiFC2qX>pd
zDHIc9Qt(~sGv7N0l*?V4WHy#U_v|NplHEwh8!k!WJ&XEE6S^A8f8Jn+qs5cK-gDhp
zl}CIf{1k?3YL|{@<pp7eC-dse7c|F<p45nD-~|107vp#|*Uw2uww0d}1e40*(E2nX
zAieOKs$5tYoUFglKMh5D)S>jEQzGmT;clVX5+elpS)56?e@Y;|pL$Jkha2Xt7#rAr
zpk9tu0ogTl&${bAfBqrLfn=R3%A{!#hTSQJ!NlJJu=;RU^t~z<lqYwcEjC5D19jJY
zLT7Fm|NB}DGvk8Kd;^PpWqe?FDr%lmloRwgjVyB4`QVHk;dEdHCtPpUIkU=v?h7N#
ztoBlZpzNvg<8K@Tc-x2l*Db{ejT2?K&*^;d(zTdnkB19feH2^$`dFc`o`KSAf*Z6;
zuH526z6=d=I}Umr7wDwfmr|e}O}~?8e_2!`4(v5tX=5DXkZE~Xu?ew)VpCM7S_&(0
zc$h14UL%63;k3`Q*69C{Seu?IA_Tu$17i$}P(Ol$*o7iiA-Hhj&)G_IPN)bOlIuf0
zGA4@5!8l?zVEojlGEyc4&Y}rV&g!H6*dK{Y-6et`)9^M;^*YLxUH=(+hn)%P_UuLs
z-tvLw9Wl2|FCpN6aesICGs@Gp)zkh$_pl}<eNXdzHZbispb4|*1yw0NRx@P*(0RUi
z%f65uZvJz4A4bOx^O|4XX^;+aE#`H_Fv<(f1+CGA8)0D6DX$y7s|r+%wS8fTYv)F<
z6xw=L6C7SPOa{}bfOvcRu!to(Pk`cPJ)sJ?GMeNRqn<M6WblnyQUI$HwklHFh>Nw`
z;Bz1G0erhR--jaIDxYP<w%rbWZ@C`z{X_m%nWr`<LV0DNl<diQm+QJv_sz%f@QFGc
zZd$ZbJE(yY`Q^BVZYdCSci^`rQH93nuv?5wh(|}g$2OO&0cG|EQvUB$;ju@C!m~(a
zFuFA8>xcF<>`qVn_#er^I?X_AZ-fkxWnk;EH^jmBhiZ&Wr4pQYkzYu#uLgVlvjW{t
z>Y%xQXcUyA4*d-wI-SUei$5FSGK=n+lv<hRDk~V^tia7vif7oMa_H~^^%@5(l4uRn
zTQI@U!KKQXLv|2}KXKPRiwOp|Iw>iAw=l+zANmW~o7kJB`PYgE)IcY9q1VBm2|m|Y
zJ<p`0fym)eDyxeOpmecHPmvgL7sHa0yt%l+NBK`q&-OmXbVD*QObX5A4Dtmk&74r{
zJac8`5(7w*1(M2EA7fv=-mtWUqI(u4W8^OpM!05u+&_SLTwSg&qKLwIA>p6gH!m|P
z=+XbE>`^3w?&UA}vz|x+-|H4N^*rR)`>%xeWEA4B248%7Qkfr=-?*PM(xe0m(mwUv
zB_24-arXJ6GIqefj2xvAV+G<{Emu;n5`fXR^&?*a7T6anNTB_JdcM?gH=d1gz$yCi
z$F)(cP)>L!h{c;5`W01<CF>bM{I{UKCd%7-2TOMigbM+4db`J31v_-qh&|v&=k|jx
zEf!Icd7S4YQOtgMJI?w^+n3=i#3QS!$zLBvJ>&6LW_$;bZnI*uKkdT^AFHO*WK?#s
zo5tf$l`a#(;rmlBGTb(?+g#TTLQgP5OUJ|<9pca!%F!D&3bVm!Cg*KQR-}VFDmz=@
z(Eqd4HH_gV1zZrBj1i;efy>VlHG|Ok^X=_5xw>g0NML9TWfkTGk=}OAfHD?vid3;B
zBIkm9%Q4ShaW1%0Pov2$!whv1CV2!|98eybJmQV^T{ZGKB%^4)5e+&iIASUW#C>iX
zu81RL9nrcSyCVjTDQHh7BncOozt=u#mP31M0ZlhPVfgo2{a3Fh(*ODHum-B3&tp;k
zqz|by7_E@njWKef9`!;Mmq|fz+uJLuq(=H^8rkbveGwQjrc`+CCjlM1)_%W@6alZ7
z>>YJM4(71|njsc3plN%ce}hmNjxWMx9^@mWrQSK4jdHsAA*bXc_T{15Vmd+u>6_SB
zS?v)k<YRU`2;f5gz(;<Lrtf?xAW-X!&--u+XmS+iFhqSVsHSEpP9A*^--yZXY_P(8
zkt5EuJ50bE+}BU|_B&?3jt~2#LI=#PKYBW<nW0Uw&W}%%5atAKzsZhZ29t~9>A5fV
zuwfIyl7MMKz}@wu8GKIx58rdXRV?C$@Kf&xHc*bBz45)EQk^i6%aAhVA;0dG=I;!Y
zMT{UjPc&uAMF*qx)gQN;c_4{BJm}6Nbnni-S}yjP7!;^@ZwRZ>K*gJlY^OvT=s~RW
z3N*J|yy9d?Vkib`|D{}NOXLN%ciglby!3E;)=Qx}g9&mPO5bj;OMryxi!|IBPAK%=
zC3UypfQjNqy4NTuAqRWc`CgF%Dstc4i%?~R>^oLT2WAW~{Io&yXA?7sOi7~KDm93;
zvg=h%kwY$SlvSyO73oGv2#G`kR+^u0$J?>MwqV!apAPi!-}6VzClDXeBxIYeqJ#qo
zIluF8-K7P!xXb&!=ZHaAt446d<^YqyYG%o&7BP+}DmA+j3b5j_eDnGZFJ!YSJp2^Q
z4ThI?WQH3^fQJ0Np-jY6+|v(g@B3fzfL;C2r&FJKVfg13n}9znSl$rgs}80Hf)_S~
z0Y20q+b_Q)&qV+u{CBP@k`drPPmI<2Q6J$-wj=jE1(83iz~s72H8~LPu(AdruBB$E
zoP-F{Gj(I?>Jr!~@R2uct&A^iU@1gxiw>{mut7St@E#cvIE?m{D;}T6y=&uW5|QNt
z(-($;i~3`@q(9>yzi;<q`qo2?v|%D(G}ZT;_9o&p48{+5-=D$cpNtu@HuhtO#_a38
zcein0C@5`oQzXHt_u`+Ih!fwsp-lSoqdNT1|EsN<sRWYV6p}>feo`~N@%_nll$Vep
z3vj=s0Osv~;^K?M!EHLtXbA1&c#Fu)@8qe2+M)1(ry$CGieB}r%0hEcm~d78t}K*3
zIGrBlC<&>pZ27|vgrKys@opO8-BkUzVKclV52}gMrkdf3DBmD(Nd@)f1xBd`GD~1^
z@%*#s2bPGx@W{JOY)TzW9v#`uYw5$__4_ZsuqZ+_)=%~-5AAhlIX$K_5x*z)*3g!p
z3Iw|tKh1ii3W`fn1A0@+aQBWQmDgD%xWy_!&Y6g~d+U!+7dI<{!`zBzZh;z57W7cM
z^Qpq{sn^!&oyrhM@WITTmku9lCmv(@W*t`-oFJ%7cYxg}U@V?{GmZPRE$1YHK0n6k
z>OyG+W}x@3Rau&$f%B!fKDrhTINQU?Xt>Rdd^9tsFAEdH&D()5JsFYjSp2b+PaQLG
zO*>axAm94V=_B8hgXsPLs$Y~p262XmY9C({A_LYNBtawvzp!@((^@3zM5y0+`Z{ih
z7S1nt<Rk*hv*jjaXmJw4#D%MQj}l3sx0~x8#Q-rR@_H>$yECA^Ch6Qxq|XTWMY<P8
zuVEx=$ILHsNg(Oh&^J9F8lVXMew2ys4QB(*Q^VrOz#`EyY&o6~zCCw}4*5+2T-yZ8
zO(UdG-F>$$ZG8(fGS|tkPg%o~#pq3%kRFtHSdulWLITh4>m@g%{9@xUMVoUd7ue}`
zJolj6!hST#nhCuXfYY`0@iFL$T`+oeJciEmxl5^+ogBGAxVd+h_DBdaNsLL#<X9oZ
zERem{j30crqE?=MMt)cR+Y_$hf?#{lkw50b584kT><BN2KzO+O+7RMYbE<Fl-7!IV
z9ty_E2WZcFtHRhXqd^H|zMi{vlR^Tlry0saUP{BY#w(R?MnqxJ{qtqLA0qInE%5wW
zsXRE-xH){0kOgV?_nq4zqJTS@cYV2q6UG)jemx^aJlTq8F&xMb!q#1~8UFz7S+Cvc
zf6%1_TnrCNXF1s5OUjfA*B(00xK6Q4p}ujm5igpb-fOs`oPXC&(~V#c9tmW17?6T(
zK@+C~>OHo*F;>+?zzh)uyvuylB(O(JDK@hx1P{mJNNtaiZWL$Wa``$R<XA515#1L8
zo9e@MPA6hmF--7$_LT+953+?<dr+^%zl|hkv?roz3!*ZPAp#B-k?3<8Q#i#0%BOdn
zcX3zr`Y5j`Rp2sCj9e`-?8N0S{&YI(8^H~+^BMchl;U^;*E-5CkfK~o=qaXZ3Rt@x
znd1@i7n2eTTr&#U#bR_c9$c3rghORAZk)_ER&A^v_OxpTcjdL)*vGKj*hE}s55K@P
z&ikKg|3FR|E?K#PZF`Inu(;MIbooDV3A@f6OU{Sb<|}6dgUK~)t=g0}Tze8{Wz2D#
zi*O5Z>2{s_mfNs}3Zke4&3{;qhU*}zo(1&-`yX5WJ=i?o!RWH|Hm=ekz{km94j2CG
zzO>Z?3Vdkq#_KN<+qi0s>7=+MC7wL4@L#y)M_itBB+t9w#Q4o!^Q{EbZ$y~K?b|`P
zjZ>mEAEQyE!7m49HvPFoj8|QKVBJ?vjki0w&RVENjc=1yipw(lf{RhS_aC`3F@B0F
zOlNAD3{P3}(DF<^8Ga33{MYi56#qgYZ)K>B60ec5ARyyHjyHLL1%~xf;%!LA1{S@K
zalMk=|F-`U;mtVOEzVg|;B&6egthk{;fBl~n1>nd;JiM&&gpoN;18piE9xdG@$6ew
zLo-|3xaY4E75T&{P+xQ@6G4SAe0gfAFU83LV-&FiEFX|hXJj8QjrK;XS~S0|KS4g@
z7JMPoH3k?m?KiYb*~Ex{*pV+wQG)8;>;<-Bau_R@V0F$UgsX*A+y$R$!PF)9gs3MY
z)ckz)RpZ7Mwn_X1t6rdh-SDnIYt^eL|CAil+xHh2P@UAvd}RbD5pnt6eI;rLNwSVm
zEoOkE{kEv)6c*SN(K<c-1?k&ISE$>{NP*Z;&)<WO8OTL?s;py5aU}cMuT)HCaN7!V
zZ&Li$aQ4r~v(3?aWr1@zcqxMt%y`Tq_Y{_}qPIHZeQe_x9jSCUIhqF_8m*0e(^<iU
z#ec`fg$?6Q4B`aan?GX{cFcOAh%1qLSjysgTLroVtiz1@B!QEoP3xw*IAjRu_@^d`
zLAPV5R#cBP#LLk+P;;vQh0-SF(w-tPmJAWn`AdUZ6N9n^UI|RcD`RN-)gVW_<4?Aq
zG}2q6szeKwV4Sclr@K!D-7`yhSI{1M&(wcCqC_4xI}|qN5HI-QQ%%P=9D)##R~LHg
z)CQ*OeVi=f#|rZcO<a%t*r4CnLc0{{6Bj+DnE7aB;Mk&;J2O%c-Z__q)O-*Gj;8F6
z<b4LHSux<hfpTqJR}3xX98ezIiPV7N95Xb{)0YICXM*E`l{csDSs=y)uUCiWyQliA
zF+3jMv7NO)QEHpqFmcDi@oO|Q;)`_|-m*!+o|u^Xdy#D7xH*_VoNFGzN$NlJpnKDf
z`?7vf^RDa?R-=zoqoia5_h;j|>ppZ~!sGe8X_f;{oLXE8{D=7Z;<Rpk29$6&nI_6;
z7x~~;a!!-jAwNrMLi0^aUO1WKL0uI}1)cj}8M2FLfxnoVLJ$33_0jU86iUd~{>0xd
z>k=c7Tw@V(9HWJ~wv5Uwa|Q^@;^VD7%>*wM1)@XMxZ%ZFvXHJxI=B#e`!};U@~81?
z(VrJ10jKp?!MJVI6Ky$a*A-0*?->Z(_;_d_%GEse<Q4-wakFpVK>mq&kMGtY#dP5J
z@Jtvj;w9*JxW|YMGr^hrhJ$3NcZaf4n5l1E0KT4B#_^@f!o%UaA!6Q4KqYcHljAxI
zykEOnK{`ne&GWm<myRjmt3xJJR^u90xJMISmC6rINv_t<^J(Cyrum^pH!rxoekNEd
zE&{_0?$&{~53uT+tJHG-lwj!a-xUuw^mml{esVkn>4|;J$zP{rVg9tsbRRhr5C>_0
zG*V)LJhIh?Wj*u|X))`k5H17c^!#f<QDQJvZe*&eAq10D+nGg(ht@hmyG*Ca0i#S~
z{x{Gbj>uj^!4c`pyYd46<tj>pv*4rNt}Jd~7gPJ%bxIzjifOdxaUy6R@{BPR?QuG}
zoD^G-&vqePYQmRW7=AliOH(2qZoS^Yu2{-d?0Z8lc~J}E(hQ#buKV2p-re0kh>tY|
z-q#~DcXE(FI=<Y^tK9$=o%yv+b((^XN6BT5D0N8fkXy63tOoLp1EG#}`f%gP-@sFt
z1|(7jY5)CC9o)}_<_%rfhQMRjS{grnI7=CS%}r7b$nW`z^!jSRr{q|zyVANa;n#9*
zc~}jC#d1E8pEUyV)w489RR)Ns<$t=;NgqhRaT*CDUgO&97kIsg%D^joL&Llkaft<z
z9A+8~V7<h3|KS@Qu%#lV%_Y)=7^=PZf3GXT`}(ornp2t}-Q#PIP$=*qq36(KAMIm<
zwj3NClwtk+B#D>04D5X4usQcv0TgLBo0OkRL;4@(0yjs*H~7b=m?tF*F-I}&iqgl}
z5B2xIuSAo;9WfqCw=O!Ui=zGQ?uvS)f@n3E+8Dr+kVFNj=z-jk`}W&cOi+1n?atLa
zbT1JM?egX!1^Mf>Yjk<2Kf6AnTjT@<)aXu5U#lTOy#tzbw_<1zKZUuKtd<rgn|o!i
zX`pkT<#t34842tYl+}G9Cx=gwhUIjks24oryYV~;B`|j;K#UV9B+!2uYh>TXo*K<e
z@`n>c)DwLPzmFskoD)-QfOLo(XZcTJQis@(MabVtQEp&q%ascYqX$jqaGmx&DxeJr
zs1>$A`z>(;lB-*+pq|7torHX#?GEKHQV=J9^l?pVxI7Dd{YQ{G;Yk8TCk}kC3X#IA
zoBvK23Q~iiTlAFjIpi1oh3~M;5Qf1>Zx*{4ad<ZRRY59~4cg*Q_Yjnzed!rv2di`j
z_;{H8TUm}0ltT4KTmPZ{nQcW%*8mQvR%bqDG(h@D!NONv5mM-QGv*XMOAlFjN~DDk
z*<k3~9mb2XjPS^&ZDu{64itY13>rDo!x~OX>ZuMRJWe@x|KT1tL@yRy{d#u~qYHC?
zeqD(GPRo(f>>|#QO?$Gt+NcQX0l#_i9@?AnZ8|x)kh8!Uyr26)2I4|CSKkc3M+dRr
ztlL`JIHCRk*A!we48i(C15rr7T&`w%iVI@^t|<S2Av0E>p7jyt8eo9L?~8gO6#Q`4
z;#a680TXN*@43u%GXQHgTf!fdH%gxxX+JbZI%!t&-}6x@zh~4^=2bukQ-6QGpL@vw
zZlu+W6qktb0TM>v_Hip%<9zv^9}g|sr~EjXW<HIbC{Y+XY@-5J)^S^=^W?x6%fTcP
zfH+@IzOWVrlYr~oNB)6ba-gZ<NvNtu@Bb>x&a3q-pg>(;diNa@2z~M?!kuCSQETC8
z;bB(zM0GGIR3!jUi9*~ddl4t`-m{%A9qh2=DKB}Cm=!!+o{pVXoyDB1<rv-W)4-Lx
zKJ8bO*Rg+{^$U3$Lg2eT#cr?42`c%fs+TVO#A?6RZZcO3fzqwEGblv`mRfWX*?E+Z
z{q1elvsNO=r4z>|MiPRGR%)W@+mG0Mvk-Fz?hrRZGtp5<HG;G3-macZI>Pz=^K<0h
zNW|GT{B6%RrN!$=JA7!NS->KkUe=vQx#y%l&E}8%{W$v*J&)EpMsX)oNmyzQ=W#y*
z@}Ix$p2hu%=QA@N{fDcFy!fG|Y8w+GD;EqP-ozP8o=CSw^V+-kBH1}s3cL?BN$Fbe
z9xjfPtN!IH0{oah^{wBiw=_&P?wjN0HcrDNQ9SY#IX>*lq3ok(3VgDN?bycWb<D<h
zUD!|Z7^h{tuldE33}5WWcUSNHA|}l7?-rb4!2ge;^Nz>rf5W)F_uhN&$KK~QqC|v<
zjF3^15Yix(N|Y8-MnYCeSs8U6MPFrSWn{0+?9K1<`>(w8%Hw&?Irrzfuj_sFy?8_a
z2HLQmCAyBro?YBD>~GZHsejnh6jn~UYb0>o0&io8oW+7x2VESK>50NL#A{rR%h-`~
zw-#TwNx}7pRvKB!qKL2T;uS;63kfbxYDrp1$Kc@)ius1}es!~N6lXTE)5)EA8>3Xf
z^g~>jNoyYqpQfUYu_b|<dM{UuZVJMIpkDx{h5Xuwd&6!EAfM<5A!NFt2LE<-{W!%p
zxK>JQVT&<4&^$h9q<km}F>!oT-H%1V;@?wge#9~F%h9@bMOz#c1n)NG<cmVOfLbV}
z5#k3b<%QD*iGX1OpIdA_1!x6}vnR;%LE5`@-PrF^2oRq!aB5EkT0CwXdqvuhUFAF(
zZyQVkHI2Hr^l6r{OAlxlLyB2oA3SutWqH6bDAz!`j0W*$YuWaG?PAWN7X;e^4=~Jl
zBjbG?4eW@Ai#`~T2l1X4J3)wR-ums~T~9V?@Y*?j(2Tejey+lo)=__I{Z;!P;Yz6I
z0B(%96^H=^{h_3A<eQ(;_P3SwLOuj>uKw5i3XoVpcO`C44gz|cXkH`V)~(gI5vNaa
zgL?rd!tZjy1x@yyu^JiB=9vy(`GWcw?k!;=h&TALmfL(tRTi#%Y$dRxeI3p3oWnZW
z3V`J`S5=&+2j@A#JMri`qH!?zF;s|t3Kx~S$_Gdnp)_*qphf!?T$JzDG2|c0+${CK
zC<<uO{-*XG`HPG~PM)%m2Hs)UJHL!%z~RiBqbiFiFWnzIxg{Y2A>rL0AEMW@a9l}#
z?l;Qm91nSV=YtePle-!W=hx%z_KHG!>Dzb`i%EL9Q#VetZ;`M6cpbmRzW6RWcoH`i
zY#Ui|X9ewv6Mo~J+_3#$>~ZCs11w!0qpv``T+>(TE`)wcz?+13y*CkmwqWM>%~(nZ
zI+R9iI?oR-nVgbBrJTV1v>P=HQ$gFIU>7s4L2U1NR|!9FA4Y!bdYx4*%C%1D-aEWb
z3Kf5Z2CILpVS#sCCp4&L@rtuS6e-_E@SJlMT#DZoFt6BM+IWOsHq*K28E?Fd6>R*Q
zO}jjU#Tj*LTz$2I-L4}OqBUiMK7rD4Ipk;cxKv5{I(QSCIX}YKi}tfRresDHew4to
z%y><LiXQp#evORvqt9W5bdrW6HOiHrFMscYaxafUDPM%3ebYLB$(3)Uup&rPnPRz$
zohZHhsg{BVxV$RaI&fha6A{uJp=Se3_Ii(6KN~plovvF@Kz-87Yvvc0rQmJzzZ18=
zAx<B4O3v}qOfb4EOHV-GZ>({LMiKS<4b41?;jtHhLM7?tod_jhb1(56K+k1e4*olb
zTsa|I<LS@>@`t9OD}YZ{3eI^RIUe{;0gMg{U}hx(AaHUZo6AQOe7_DI<adYwuBlf^
zgZhlhe|#CTQ=Y}Tr8~0zOikc)`a!Cd<NJ7pwzEA!x)v`JpAXH6p2zYmQlINS7lLX}
z|L)M@6^zgs?A|3y0@vq{KmWYR3fvM`d8bg%T<L?i$0*RAVCuH^V%;1KwDRwYmw)4c
zeBvhc9n^b0r(91xjPm!6Tz!oCMHKKw>QB!O$`PJ+Y5#HGnHo|vLTU3Hs9`3;Js~@n
z3^H{3V<|^Pf!xdHHT4P`WQJXT^py+s=tPh)gj#X{Ygd+%-cNLHxW;o!9O)wg@=SBf
zh{w??Gp!hIgz_u&iA8iqsCWJZ+2kv<FWaZOd1<Z}`HN#l=v#dyQ6Kmt9XuKNDzbh4
znO)}rddppV%@IMcBXr*~B3;53JA>zOY6@_2DxNX4<OOQ}pY(FfERcOX$)B`<14K)5
zZ<8Qy=7VU<0FQWj*y?}6IY!P6_JqRk9mp3K`{$;J?IafrWzEW6>{!JIQ%{F;8j=vb
z80yMi{aeOsi?!NK=+<zTv^_x*{Z;&kVNt^&)(LFi_GyYN$toWGo4w+A)?fVN-p^i9
zjUDVNUFtLL^kFP>+jz(B^9V+`amc9GiydqqJUGm1!4AHchmtBdS&{#FRl)uVJ2;*l
zuu9(}ftb}RciXvGU{Aj{E~tJFyHC;5^EzY-J6CPFETlMvzr<GiU*)m_@99j}nvel(
z&VilfwAF9StU0!B=RrO`q4B}e#gB+D?D!ZTRb+!$!qx9{z7yD!pB)6r@CDp9WUfhJ
zybZs<ruS^{+!CH}@kQU+W3RCnt?#z#6%R1V1Bq8P<j5zaA{i`abAb6A)21G}RF9Jv
zk(9Tg-ZeJWzvROg#R2VpuNEguLtnvAUM+fGH17E4Mxp0ZEtlTxZGGe$k624Ts1SpO
z&X{*x;aor>f4b0<k_UXI=0_t5GGIt9({f5f1mp*Wvw2YOB0<imgvn9>^_RIiJw6Zx
ztD`MmhXRGbIV8xZ;*9`=QOA;*(u)Ai)eAnQq}&i!_BGa(nja_(#f+4^X+c@^)qhzg
z67Z38N0Q4!1iWG%OHnj10gv%)&S%8&`*HTGyX!O?eAIWlog%)C{acuB=g&a7ZJnr7
z<tXRg%u!f<bC4V4jX7Tn<O;y~)rU!JTMR%aB{uQTjUA3rTk-MyLBCIv0C7o%HOyM<
z#I=$!LDav(u<m7{54|%ksXtK8^cj@~qvwDsq-rIJzChgILHF0#hZ}~l_~4f7rE&tu
zO&yt>{ih55!jqY2KWn30h+KsIpcafrP`jP~Yyfmu=#sX+>VPfjCw%I<DHz38@YW(u
zYU<OtM^&5ZaDz)L_SqQ&m>4f*eIzXnhId)7QX?L}p}<TrqZz=RxBeS{Hc%f%=pDE3
ziOML?Mhsyt(1Yt43nod+#$azp^OjG~6t=F$U-7?Z2rKu05ccAAA=c@dLMj~woabob
zi>A@f`zvCKjKKhQ=L<i*WiSTwcc~VUm<f2Cq>BupHv#z^JTIog0ABG)GG@Nh2VQR~
z$N4@jNIxNYI(yLwzH5Y&q$N+|mxpA-4SJ?9%G#{2*}9upp9{4p?>Ty4SZ@E#b3p{I
z{Znb2G5UucTq*;VE##Xs{N*v;@CE;HZz*hpY!ef!<#OPzn!+@8Cu}MgMzPD25>yvt
z7qIt54u>W)mM~>MVVUloO>9B_4e{0MN$hU4g^y<`FY;fCL@tUmKs3uu-e>1`uz{Xv
z!?bpGnCSfbLLTXo(P?cNONpreh}&i1kjx*9CHG7>Ib|lcdgj7Ic|UahCG7d<v2epP
zhA*q)h%+S`dNE)51`~L^pB&^?rh<A=F$#?)M&PH&rI?K70H>Vh1n~h%s32L47*g58
z(wLkbVlYYQeD%Pxfj|nouj=9zkRK!1JAPnzO$7B3UMcHeMBK^du)II0hmW#U+l({<
zamJ6Hxo{ux3`9if50ucn#ngIzR-*GICZ(QGmLw?&cYhyx_n1i#RJwJ9x_Oqd0Yb(`
z2*(=sS2x?u+gcF$0UCc6gwJA&dOYnjGo0`+w>&j9kP7WZ-rhF&D-0y}r>S(`p!<GV
z!*q947dE-=UF8^BikUOm$e#a>^o_}Pg6Gg2)8*}boy(>a3#)dCX}q<J9VUCJDK|cY
zoAsZ=s&C9<k9vKwNv3x2r(QkSgf9s(_>q^cOe;BD7r)|#YcdnJWvc{3U(I3t_ofH|
z=4;roT6ACJ;RVUsIPs-b9_af-S^67sm(C7E<Y#j1;WD}B_HEr|K<?t^VQW?f*kG#B
z5@uzE>|aG0f-=-lLYU*2V3&co3r<uQWmLe~y--YJQw2m%RRo&kk-@Wy%taeY7EqXf
z$KrzW9fwvKWpa20VE?~s+jahAM16n%bT?DfXJe65l<}S&G>+SuWpSbR-!-bc&rJpV
zf;1MUQD0fO>QmMrCQ&fZcK5JD{R7=??twe#`JcsTB(Zc#4eSq>eZ>R`z*a#ommh(0
zxox{2`XhuO{E2{fy^}b!|5z{jTepMj=zovQ{!B`Y3od;%{S5IL3rb%MTM2@+(dKId
zebkxs)p$(l3@K5KVy?`<iWweXa16U~d<!!f9)L-tyAtQ$<PNY%0_RUrXYQ}G(A?_!
zYFBjvj|xBA{C#y5AE{j~rBTSk;tLxBxW@Ld6E{Qg+dZ5R(|5-AQ#u(~+||CRm$-rF
z_}7<Cog*dYTuLmnK|Z@6i#Nsor^(=fP@WHG%QileY;|Y)+AhBMvnqX|U=8PEa?D*4
zq=T1S<WEY~=wRUFfm?t40@iujqUqv2DxfL|j&X{n1IK__p?n=W5as)C+aJ9@BEo{P
z$$liTUTfEr_lE=&?{RZYAEkm*{&)Hxs-S(U{R2&y*~dA5=1g$BV<v{|pM9N^O-Ia0
z6e66zyocL8T*)ac8pTshK3c>~ZQ=WA(j%cA^u*#I))%WMn2B1f{RyhMZ*ZBZPu=u4
z+VQGyEbjCJ%UGEj{xeBe4s!M`irf8%a(3+=J1);9!1v>W0PGPum(vwdMJ%u5%F9}2
zOX|o+OndbvNge7(3#qT8G^YT1fp!ORnms&N;;doZ9|odgjnm%Ub~<9#CrgRF5;jP^
zCCJsBFoADml=jGbD}u<wtHHlG{$fl|+LhcWnP6?_o}6v|D5km}o4&I^4x#HdvA?Ab
z@YXOPit{AWAld&bQKO6%`d;9(U-Y@*yNzFf-VVyk|1-ioWGRSbnb@E0d;CPjg@k4q
z<!=1C$bs$^l($TtPJQ$4EjoXS(al(n-^b`{eTRa^kROTUI^k0X9|Vf<>EfNj@KfOf
zpZaao=hx+8^U-q<b78PgS$nSsddJeQmK~tJVZ-D4$u@?t#lv#)UjYH}VYlPoAYM05
zw5HG(PSor1fh<2NO&mghoSl89iFo&i+-t1JRN#~9$n={f)SnW`)%d!`9HQJf-%vl+
zhER^1?+*{l!`0!NH#y`0l8@=;`=k*NCqZV-hXLgYZ~h63>(T}-fl{*3t1>_$`|7ea
z;{SYT`T3(nUltToOMNT+)uBlFuI#`gL(t9aHoA<SFVaeaR$dksuvA%ig0AuioH{G|
zQB+?I$P_f29m`d~Ghyh9I*%smZCGwdyP^q-IJF9sxEl1v*e%}m(MEGl#Ui7w9$Z=4
zD3h$#0JRjZ+q3lO`TOp29DOS4uetK7D2fE>xu2@98C;=&OR;RjBp53YmT1PjYH6X%
zaj~4elL97%1U~)QT*eKAR4q?i4r5E#J?aXhNr+kvmwo>QF%tjINxT@ySi$dZSMCIQ
z?czty9O7hd9>L#rIoSy(&f@E4!lZESFTOs<ZaqRhgJ*vg3U6&($5$&zL)YD>aW`z@
z_}`IktVVC+UWP##exsx%*hYa2V$Y<NP0LV#$rhd09m{e&{q2?;wb&{?6cw>=S4l}U
zHYuQ;Cm!I1Vx9q$!@qIbFIuUsDf1ZTp@5LyY)WFrn(=}6{yJU}X|`4@PX*`B<a`k|
z`46WcWqX!)<{uuGI3QJKFpA4`FpLEzEaSA{!MCW?HZc>mccyK83UJcWS~8Yd0Y+!V
zG-xtVPw5_iso^cOpD`ay7YL$8x>v`OCnyiR?O<#1oKgy8lOk#Nkgx8@p|chkNWfvQ
zH{a>e+!jT5rrmTOag^pvJGjxFb)lc0NAeo-8=ej``aUBG6QwB&GANHH@&2THJv#w7
ze@W5a@}q#=?@Y|s%XTp>KC3Tw>GZJbda(`d-9T6HX&hY_;?H&to_L;33QU45elJ*Q
z;LX9y)3v|IL7<_Fx%SZ#rlNnXby`IXv{oNQo<_X1y|a3wHoIe(m(*X!oF;O3+H)py
z=lmv?aXaKbuPYn;C;b>W@&w>ws(GQjR2ROH+G};RY!GvuTxla_qVxGzf=pk63Y65V
zKPmSWhY9*-s|X$u(7YV{^X4IL82qhJH-D5LKB&l4Xd0`-5AzT%E+Ue8cl6^Pyw!wT
z6Y*VFg>>P4(ZP=i9xb>b@SfghN)JTa{Y{4jbb+~aY`mfd_30Evy|`7a3C}+KlX_CE
z0!39mkcN7T+CA(-D7Ljg<(^K8@tPd?p9ze-6(t3OT`xAM`xIenD=M}(R}?s|S8YXU
z^MgTQvo?nIC)eu59#BoO06R%@^y3$Zm+)n@$@-)$IO^vz=-!nBj!6{<RW#qe(mUe#
z;;J}=@t=Jk|3?lMe)ZGVTu}ysj<@TIi!3a){*dY}R)fNS9JZzCIcwRyXcKu^77VF1
z-n)p=z`kN`o-8>HfbgG{@fhUSxjge%*N_z+evC{g3PXL#vxzZ&h@){ql};xj0`*)j
z>+$}a;sBk&GO3mZ<U{&V@N*FLx`vmO%t)1Rz{}!z@$X1)7&9}A9lFc}Wg!p7Nu)^N
zlOD0UL5B<0tm)E@?6RXhMN-pWlsjLeH4XlPc-mUUuR^1EsX_PtOwz_PIyiHuW8tYc
z5A=|cCu&j6V9&>+$CvmHFq8X#4E9@)|2l2>i~9>QI9KtX;t1k#oR-qE{)(RO(MggN
z+f1C$P22??4-O#z6%&nTae<FC^}HV1(@$z27(1c7_J=IyeU9&Z@K^X(cF|)#;B(Mi
z`TdLwc+OtvXdV)Sqz|88&JXaRa{wO6a!(B04J(fce`Ntumnr5UA!)?>eSN{=q$qF&
zKI8O9Jp3SuuWp@XQn1wJJp6h^4)V?6qhAg3x292gwGhyKlhfmUYq1>ir3DM6luN^!
zU0S<4;)~^z3paQnUx=E|xL%`*8m!BSin*~UK|zD5azLLf^j`_f4h@%wNUoTUFa7dx
zrJeQiz@{pY&)>-PRz*E7#w!D?Rh+Q7X>28e@<~@4KTt>}vjhLf<hpdUFP-2Dx#k_G
z3|Bu}#(5!s8iT65hG-oDma{9QbsXiO<&22cuK{h4jyXRuo~Q~(f87<DC{+aN&8YY5
zU5M*0$MEyk33bS1o4j#a&>n)R@mnFCC*Vg<gGAX!2gst23iNMxfQOqxb)(Am;2&bg
zC40&kYMW##H&Ts&&HNy$F#v;I^IaE<K7eWak=@@MCctxJ@hRLi2hYP)Qa67XgQk4@
zL*}nWQ11EP(o&`_aP5Z&Q&Aa!OR&CgNQ*O6*#`Zne{2Wee#%Jv2s#N$S2%_pZ5`mF
zmY4U8)^T_d?)B^@>j{{W^hNc*b|B(3Ant(p#;S>?gygNmpgDeW>7}U+2%9L#7)n}$
zAe`LIj5CK&_M0w~ttMy>MmS;n<uEj-v>82UI0R4gTUhH&kAYs1-UVjf!$1;rl2O0w
z7|4_}IP(!q;N*Cz5%ItT?tAEb?R}#Hf)D%cx#m>iT>8y}r7;cU-(G%mbwvqW>l@x?
zxXQuv9rmCQIvvQKel*kuYGAx!cv9USg%atmK9NsRf$PEv(W(rZ&_$f*@IgGJz(+Su
z%{Hh2_t?(t_kVKGUjF-7KFTv%ALRb+f2s=Gv_sX8b;Y6i-}PraujE1K(Db21Jt=r_
zS{!4UM|+5@R<ac?Wf0t#h^Rq(u}+e2;*`kOQr@$dX8KqH>ba{Avkf3WImwvKb>z!s
zpOm4#fadbcZ<ufRA)Y6;QBlqOm=5UIr#zk@e`?o7JBrHjO?<Op`~hR06!`jn4B7fc
z0Ige*9vz)x@Py=p-@{cY_>`DM_umzMh|(tgc;gr9>x$CWKZ5j9&V^Y$IR!Ql{`Baa
zpBoP_xNsIY#)w0Wd(bX_jS3jfmQn>iQUWpmn*(k>(qQ_$No=DQ>8k#CRHT_KT&44Q
zOj)1;og*H}D;)9=G<MHI<B%MjoiljnWyc3TMu#{3%oHJJ@WgNDzeun4kWrAXk$}WJ
z8b-e*Nz@0Pd8XJ6@p+pldc~0+t;k+N{JRSB51gO4OHM5b!9mGyawep}T_Q}hydUvP
z6=k0lqWrkE(`a_uDQQsJKVn3V@^H+}iZ5_M8F=>hm)&wd%D<hx#AAl?X1^QWr^qKM
z13Opq&0_{iz|yR?^lnuV2(D~$LT&PpI9JkCyRQrr4^Jkrk1D`S+?#^KceP<-%SSLj
zp8)-A^V(MQiVzZZw0eG81MbdUxc?3GA%Vwk&K~V!Ne=b9#d4s&HzVSg^fRj9rgiJO
zm8T+vdIbNsxUC79RSQ8QwkmKe3ZG(gmxX2Q%GL+82R5!rSG}{MgLsn09b-*u@Px5S
z(-HmsoZBO!UXcp?p+9z-0)1XtC92-`6skaw>)xFPPGy)~NN+exr2&0OKm5kI)xk=&
zXr>$GT61SzPvu=!g=5W+gt8K};jg7ely8<MoD+6yeYmL!E<R0u=Q31bwoX8v_n9hu
zi=p5BG^!1iDlY>ip6ftE-@C!j@d_Z&L8_tfO&uIMA)M{B7VwI&|Ixz{XLw!gNL*+a
z7Ek8c?`hSEB_BFv9basSCwESN4G<uQeAFoC#fy3!t-ncnP@^3C5wfp48zkU*gFV_<
zat{MB)hKrd8mLi!@}#`-H_jgslN=elhw+D6M=@|y!nDub@aVp6?C6^lif5V@@QT!W
z#+M2_z+Lm704>b|7Bd}}{txM^FCOTPALix&Tt)Y4e>*G8o{l$C_T9sdWp+}<KbgcL
zw0^0EA0NQl1>cWJ_iSM;dCFXI0$bRw=6UBJhAvEcaZ90%ISQX!`O+jUN={^ExP2_(
z#4@fVe56S6I};4L9ne`yFJVm=$iG-?ARb&>xZBd>AGm<1HGax(59?$hKe2J~Gj^9-
zmQhxki<lqX_S1BoiJ0JhbfNq_DRJ}u#@}JYU&d~elb!eDCZ1)z6HMDgLF~_yzH;!5
z74B1LJyds~0LQP@H*W6GL+#i@^|l8TM6HrNxus%Kc%h!?SgJ|HXR%+`qfu{J<B!|-
zHA}a!@AL#S36=rerE9GzkAZ@Cud|ctb_4~{UFT`Y>p@P4-SC*%2qY!8){PwFM|<Pp
z!o;TRxjnqI`~0tmX#!xUK_X$UH;xON*mg%G2*bGEZ>HZY@}S+!Z~oqP6{obAJ2-lL
z2Uqp|7iDsTgm`rDd2m7D7CulEbfH^;hWJgPpg|eU2hqQ&hhwr4-+02i(3FIpIGS8k
zan^VPKbI;>*tyq*ZwuO0o>fzVzaQrhSPm<}BfQ2^F9`Jq4V07-?A73^v_-tz87Zhz
zu;#a*Qicbad)$?+s5iuYUpnQoIy(P-!S;{K!u8@hzJeeE%!Ie6<g6)y`Z=}HXyjwC
zJ}PG@tEG+lK#sCmq28G6@5)J113KXRE~z#a`I&#F%az-pIj-<d7$(hvxGXRCe+4aT
z!LG}~%Op$0Uw2s4jcg%+)%6Q=`RMxDw4ZJDH6lO-0)6TI(FFVKpeEiON$^k_X8FM)
z4W$zXS^xKm`1R_fE-E1IjM(oL6JuGB@24b`BVNUHicNcC2I^6lAdBu*QAd2`Bay9+
z@=z2JZf|)E^<ubw@$wOn2m0aA{92=SJlbQd@=@11Hjjt8NNmkv7iXx71-X{6P{&i1
zM*g)J-KT3R8;2J#$Df7L8<snmBdgu(cV>Sv|Fj-0t<gD5ZD?BG{o^Kf^lr5275!yQ
zJlqBEaQlb-9IwH9R*`OMnCMB{Hj7PjNR-;jZeVN{r7XrS``Eq^_a?VA1GxSn;z}bZ
zPfdRddtAT(E)=<Be%!QhKgf@JZkG(4$WN9Z>7s`}$}Cmd35@XH8P|rr0HlW>%@-hf
zMh*W_-%N7)j`-0tc1sMhJ6Jh&$(=U615EaJSPrSsJ|@ZXL2II83!6)dJ*`@a{7FOl
zWhbY$v5rl((7^vzFdnCwj=$2Z;N70!l@`8@J;K(aSyA5V#bVWSvkrE!Yib@dy+sf2
zOCK0)XS2h12eEUEbfPe_ME1@q2j#{NORYUoMLjg>4{vdy=Z2^&<0nr}^nS$g{yIsJ
zgh1+v6*c5%J#@Yh=RusKFz4WKK{VHKi(M$vESCr7vI5D0UrNw=nzt;`LJX(_x8Abe
zlY?tDo4U*wq@i0&&hKfb2$=D-JUA933xB6~dtX|LK=9X9wN77E5Gr~~ImRpt8Dhgr
zT(dGT5Gz2_?~M4n@lT%zB5s<^tYbApg9un=^jV7+u)&eOmL_dE<bTS?|9d|q0&l8)
zMi99J^cBdjd)`JI2eaE!<C&7+Cm~EYYas%4uL&!RaT1VhPkj6Oi6E%WA35$Z%nr-+
z-?m>Oy|Jic{U>uE@(WXDe>O=HgoKSp%yL#z5bX1=mXD1KvaV1Fd|Vd?u^*047hSnw
zuX^0*=xtWi2W~*>e3uixK4CmYhkCQZ&JEIV{S<)pxg+?cM#OoI;R>DjCjqNG`15m*
zIN<aa6L-!_0mxqy`#Mo11s58cJwr^99v3#MvAQb)d&4mouW*ThjqS{;%LP8z=jw>1
z$3=lx$Zlc|=`rDyIVX~LSRu4{^3*80j@WNZ^}Ikiaa;0y(}(E!?|b?WMYW7L2)RXE
zB)Eu!UGN4<3rGTgvZxI!(siFz2_Cf*Ks{^Y7y6gt_~6oorA^H|#COs9aJQt50p=f$
zT=OmE048!L;^Qy$kirpW-)un(H;C?3tn|oFDY+BVHcAgDy*QZJNe+xmNBvt=J8-H$
zBlI3`_puiVqo1or(4Oti`{{hdA0P>I;0WMGevJ60tVrblK5;%ab7h7d_GpA}3NTQD
ztbPddAP*(t0bNcvK)p#WBjpcrL>94&=O+rh`!}%41=4Gb$hYZa|GrP$h#Q6q$JMW+
z-#2$cA>AgmAY>Gd@htF=!V~VP%z(aq?0D&N?e1hFHt{g|Oy@QaoEcDkI?T3+fm_VC
zy}TN{%>HTluTwoZSN7)HbH-di=X&qdzW6R?IgT%IO0Qx+kA}yvYV2Wp%s0N=aa+fH
zm{f07x6Wdp_{6VqQ|#lnO&@RS6R3zL4_XG_)GuSP&uB<Nwh5OmKckp+aSH1zk})Jt
zWG7~a2%b?+rzL)FVI8<bpd?n+xBQvV<sf3`@8)~FCL<c=Rw~-J9^iKa$T^Bl$FW<r
ze)5!v$1T*yV*PD#9b*>tcGh;FBF61D#@?$~!;~-a82|AhCq6sD_Ac3jl*qu6qj%`=
zI{tvSM%qYr4NDHPQU7L0PSi1q$S6c#KON5@5{vx4KH=7f{H4f=OQ}Vr^%Tq4%=2W;
zz?n(R+w6RiOGXnO)%qYv&W#-Y%&Xs#pP(WtrioD6p4!1WE}y&MtTc$F_up=`*8hRA
zd}EvaB1{ec*pDxNelmfR%V;g&PbI<ZOBW}BjT_W1<%CsIQbE~-v_mi2170~3E&2_8
zp1n3yzYAp}zCzDW1NBbCxsjx|HE1J)n!2pB_ao>a-o(46dXR`&>bk0Dd#WR@sL}E~
zANu;X^1#QC157ogo5j0u3EN9(D#!??19@)muZiw*;En4tep8Wyi+$f?Oizfw@`@$-
z2Z9oWcx92LEvtbe#e2UTavk_UAw?jdd@Bd{?+Jh8gBK|Jz<V`U3gq|p1J0j9{l`WW
zVU|C1VAh{WF#LrWq_zz2ew#!5-<Gz;5X5=EcXBAuidzsCmwG$xSW#af{T2Lk1_3@f
z`uKIB9^P0M1=9vu3Fznx8OqR>h5YAd%|8_){{3E5gp(1<cisJb$9s<j@z<Z*usH2w
zEzV?}VaUhM^{WI-3s>;R(;tsSHq#OFGJ82H9Y=6S{n1QSIWnU7fwC{3^)xP0bShrC
zpOQG;bMWS*77cOvQhZ(?@=^N<M|!fgtl-tvBUN7=$cV{LWD+&a&|cX1*~8jl7D&%h
zVohm8dGjwyhc5l*03!DIMP()ntkd67cudI$lq*!v+FZCHzU9`cWF-d_#9a3B#gPvz
zRjk5*xR15n^hpeiqkwNR(hWb+^}PQ(G59yS{&mRD#{C&0fkk)RObYE;SMNBM(HxLK
zQ*^}RANAyL`_1vD^!`nZULmsB&7K1ChWh9gcW9tgyt96LiX9RN+=^3a)F7+aE2hfF
z0Fy=II=5<>;AR1H+xJhXha-6C!LL73kkc>It0FH3(&0N&H*o=2tQjk-<fi~)i+eZz
z0_{H|YgD|O5nqbM?(+r<;)wN>)?1_R6EwF~%0xYCtP5tjJSn0`mnq>?d31n<2YdN6
zSZ`xwEKV<OcQ6odtes3>M7fatU^;_ib%;0F=2*GFP7kwE_wX2$7k7kMs~|hXSw3{F
zH>e^9)22)mJ=u!<hjRM~hJJjoEApqpt7{(T9ZJ1=JA)C#ijH}GM*R^9)14_7{@cW_
zZ#_)%UzLC%@6i>k1#$Djvr;081b{|O*|SQB7jmn(^$w$6r1*o!vl7lcP_;{Q(hu=K
zY+FyNrlMZ9>C5`UC*Goee?z*S<+&{Q(lA^&$lArsvy^?0EYJhdA*)C7F5+vDC7#r|
z%nqu4SI^SR@c@}AgJ$p5ax6oWf&1bl@=cS<36V!LL8D8!hjTXC3)*kyCGpX~o#bCB
zQs_ArH@Ikai%b-TKVE&2dQ}Rl@AD?Go{#`V2_qX#)bG-Cu|6!&i4z35+PWro#UW|&
z(fw~~h=-GY?5li}C|pbPXK4`;1s$5KI4Z<h^j<oiA>GUbWZpNG6)L&lefY)>(M|-k
zN2L~2WBGyo?syi*0~R<El2c9p80C-`L%8#8g~6q~-tJo|4+K_Mbc>>Mb3@3z(~_zb
zAQB-N`_7jM4qK8Q(hg(-Zu88kQ7USPSP4$<x<CbKr*fSPOGUvUs9BfiiUeFUk@c89
zkKX_A2MxLflHe_HgF-auC%!(&s(7nS7P>O(ddi*9>)ae7=a&_QG@fFw>RwSe{k=_`
zI*T88$%#Cn_qf5|q2+Nb;(_mZ*W@zXrvpt-)<J)iGi2hv&RKp-7_OllR>eO-Fgsz;
zcr-Q*59z$EM^eiH^TggH{Sij6*;^Orl-R~DG=zK`y+4k*Pc?p~l$=F}`zdx+`xV?~
z$F%;=bSb_?<tNp%l#AWcowQ|YL;CJu&;{F$5ez0m9FKa;VkP1vAE`b6Vs===Apyi)
zkSzMCa80!c4-$OqURa!k7iG3_OmwYb`|2tr@-1W_B-Q*`b%+ke8DAKwlaN7*(A}@c
z#91LF^lQ0RuK@IwuEje)X9VRFP00>{6wt4$eV*7Q0Dcct#mR*E;MMq-7&{NNzouGv
zUW2V;JnWBBr0FT4r`dD1t&0S{+1Ca&x_!qobJq4$e$vC!OQ$Yw$?al;{S}Q1y-4RS
zNa0U4eu;CvCH`UZpn{~^(+tD$qZrMJxiTKBGHm%T3qkaLJ?8n??Bw=2259g+Dz0<t
zF>Yt;DIG3bh4X!sVNu<v#R#q}Rflz?As1~#IklKz`CB_FGbtCSX)9Tzq1UlFZ^S%D
zCIH7G^=#$etzh*fqMk3$5I~IFf|>^PHAFA%=gHY>KxI%MuxQJHynL3hHd^J4WYfmQ
z^{4^e*)geq-&JAW#KT2|jsPd6Tr)D-P(Cih*!01gI;^WcTOXp-042)Bwv}eYVZ5^L
zXNk^D-z7K=5AiF)!-?*eO~mC5j>!q>7dHe+;&N7+INCo6I)}LXYlC)tvS>&u@&Wye
z8j0B#g%GE@m%GwP?|6A+niBD5AMR#$ZXv%p1;<dB#!of))$~LB1DzCzoYA`fl|cr6
zI_JtCTvvg(dk<RboKcUFGWjxBwgSxWk+rySN`pPMkY3jm@^!B)ectC+g1E}Ku7MY_
zu&3~z{Gx#jr1r{}g{;fNOR}d|(*Mq5rE|v@jbz*L|GwKKuM@Ixw(I)XQI#>QkT`v0
zg<%@Y={<+v`Hv0!r;fZFbD@N?P9ItN<wfjVv?!t>Pyk12z+PbfZ#<6Eh%;4%9!NP=
z1ulp&KxQ#@;Xh|GF!2AQV;xTke{|^sJPnY4S;1bl*#-4Z%)OX5npwc*XHuacZ3p9z
zxxn?orX1UNbaBjs@fYTpMHNbNpB_}yZd?qkr-sGzi@(C0XrSI?F0>!<L3W;spW9X6
z#`>oJeP%6V1G2hSVFy!kSfrDE`rjxQ#M6AK-T2Lk_A<tvVnh2_T+kWkk2R=Y@{PjX
zAPG(&t)V|D&xU$^d~-F#`qA}JE##5HNd^s<-pna||AtBYI(;nS1}9ON<Qs3Y)L-oK
zYNTa~HaD^BSEe9O^%Bk<JHBxvf)+j<7cA<4cKj7&7G<Z7<IR7a20ZHj;uOK=!jIVI
z@itR`(j&k3aI@g^1>LU9M2&ds>V&xk{9tRnf7YHEYD#z#lqlJW6QkVE^@Z1Qd&~3W
zQ~&nxjBbUMv*$Ok^GdWC3FcLJo%<;n-;z<>S$&B7#eZaQm9(>3#)O<WlO8UuM~|NG
zrv)f?s}Jy{xE-#Rd{RIkCU-u<4lY8sV(ZJWk6+w<K4ea|gAX_@2^e(J6Wb~ouX+7G
zz)75h_ZEU@vGhBt_UUtM#4y|6zHYuWM0c}^F16h?oGI^N-c~UsXhn+NtW4$yz7RF~
zx@i%J&K^o@bws?hD`!846ib5oC7;V4mk@u$5m$AO6okh|liN&CE?J(Gcdq8D2>1!6
zT2zFJf)=Zzgzq~Z5TNng89|@NPs)1Z)5u3(`sC-OV}Se=>`jh~#=<~5ARgh1IA5W|
z_nn0-(cU4Zv`YOw>hm?Q8I&p)fdY=F#bDoq$&P(iZoq`WCZAe5h>;sAD_xphtr<XR
z82yo32;>;HI=C!Z!Pq-abx(^LjwKs%Hrt56qr+{(Q)X!1`%<x5v4i?T*SmvG7YM*m
z(zNUNcX6n{aM4!#sVGpsmAHNu@mEMv!UA#;cQ0GA>GBVGNpSC2hxh+fVY!-rM8=H~
znjGKgHhd?8dg^el`8)J5XDzK?%z)-n#$AP^tpm(8SB|dJk{&qDq#B1wBYt}PQ$hP)
zYQT5OsD;n6!0MsC!zZ|@KrQoj<JdzkC>Kp_y-m#mT-C*<d;~JkX+HP4!jl>tQ&Ya#
z|A*!%zKHA`m0E1{nnFO;E*%`!ze}8&<N<Q!b>ntgHZZ)Q-XUVb22v?cWlw%&1oGpo
z(f`HIVJ~{|ty?`in0lb{(dcz<xN!Xy|J$#Kt2(^8|KDSz2gI1^?z66AgIemZH+V^*
zTAAFutN8#6-PJ7htE7b}D%rjD+!~C<kl}M`dL3?m-my&X3llt&bg8{jOASLOhu+QK
zW(3ccbZ@Jps9*hNXl3&`a^UM-`LP|0@@=<N%vJ`dfPX3=()!3MHlmii_MluCdMwF8
z4XWrNV4YH-z()v%XYyXYbwHeov&v521$ZI#LB{GYYaZ|`KI^3Oi3w5<Zc%@s5e3@-
zKM8sPeh}UA3gkHugqHz~$y|=8U&^m+bQ9-=sAX=~FnMmcEt665Um*`P7@g6YzbgWC
zgWiX>PN2S+C!0rk(B3QSlN)gz<=C7F$B9~qhZp?K%24+SnvWI=FG?$jg7|^j(YKvE
zAjEjQGFyZT>S<H5_OCI+R(yEK)iiY89XZc<rh)`)WtJ3n(EYMp{kXz!vn{M<x6S$3
z(lWL{f3iu&6Xi%Q<(e)`B0gT>S#OqKwYY`ukR*dX()SMM9)8>`LYy%zF-+0pCMv--
zx916bpcDL1T8k6)3&p&3nz=0wed!Y^BRP_w5Mm>8;yNvCl`mIcS&@YE*XwN`b;v{9
zOQ(JFb|I*ZPP;L@%L)tf-3%LOzuo9=?3_5m29XhaBu9%mp~U+;(`=~#@p^yWKSOqY
zV(htot)so0*q$D?aIqKV@?=A9TA{h>zl*n2vWGc|S>b2oX*|S<@P&SSafzDfJFzGp
zqr8M|(2Ilyj4k1TeHJ7ubpv>8LoOqq^cI#|Bx!z(>KFdU&)&L{j~DDkJ8C8#FJKG-
z51O!{U0nPzhvt!JTH=PMcGxPqkG<9(X!iY^gc-N={&qaEia-Cn*0Fh*o!EXekRbhv
zmUuhB{08AT7cuDba=fz(6_NNKVYKa)0P%?fgBM#jAMu>&+lypPqC}{B{^PEbDDm0T
zG0ubpZepP2$NhzR3F1MpJ+ZNyoA{wca5b!4oH*rBYWL5Rhp5}TF?ke_J~~R-*ckU0
zm*oG!8H1FOvF`VrY!5aue<^>>d0uKF%bV3!;R_^ib}ebn)Q_Ji{kKkXn~{_l7$e(Y
z%ELlziOXejArU0{InV^gIEq3}*VW@C38ff2i-5O`H65_s@2Lu1=73KHO$8G(z4*FD
zm`XnCtzwN8F8Q6V0+)Hq<`Pg&G19p9%Xm2_P{)2U$~9TX1!ph&QfiH0O@lvj^fLCa
z*huH@dm+=<t_98;PO^=i#GWM;(J;U{$M|nqg$Gz^-}L*-f+!zFf9#W%H_BT*@zyjN
z-@-aXrut`tP=A+zgVOK0e!Nup$zbVs)Zg_?ZtHYlFLq|sAtx}G1V)Y%%|4;)lZH{B
znZCRSw^T@M7huP+lBJP@@i1m$uD0IGb**_!RG_^c9daRXR$rjamjT2z@3YZxFhh$$
z_dS3AQ9Rc>W!6G?4=bZ77b@PK!0O1)(pD<YV)d0`#AEiXK<<*2dB*7g<1RTeX_!w7
zOD$(}w$ILC=GPfk3P~8CrO3ZI8*wEfzcL;>dyxgcF82H0lbpnYR2nLUuQXyO8Ou`5
zDODj|=*5zmupm$#@IRKfkpP~tMA^IOyhJX0V7_*f57^A)l>|{wNoV-`NJU1(`_b%i
zdAp_pd*;Ry{dBTW@OD&6?hf(?yi*GqLb`GP!iVU?D1RYkPxtEMJrTHI9DHVWivXA6
zbrOG!%E7CAj{j!Ybb;{cL)8{K-$WNa7Z@VZgwG05^GnD-ae?zW=_kacLN?SdS>ME=
z_2Q!oyGIe%;X=}nQF3wkEdRHJ4-<pfK*<9J<O2_W=(rd%Ljcb=!qR+*>ux&}Pwe}l
ziu%$j7bS-zAYd-RSl2-ZXgH|`O{Fz}s@V8#_D>aXs<3k7u~P!R_wU?aZ^*zQYTsAn
zqRJ5K*kHQ*b`3Y*4!-_xlbxvZH}$PtBP-FLP_VkC!$P#S5@i{XoWUKP{6pTA@W4M+
zg^Ic`GT1qN>_|ZgIWRA8KY3zI19kNSRu3m>z{Z7YHVSb!4&OSqP{+E9bsaM5Aid88
z0XBtQd#O`c;Nb)lZb4S42;Yn3^hf6{!&a`O62wW_`{MIt8ujj-Ql1h0Aqqamv&&k@
zm*o~^s(JIeC{T$7ibb~|U6yIHA%UG2A~#vSyV8lkjnjczUY!!~T;i><b2bmqsaVAG
zu?oPGM$+RqQJ!G-&~!q(B^PMv3)smBNkU%wsf1M26S5%Apw;pP`E@ouO=e|;AX2iF
zQq&gpHR#E+=r##Myql<Tmh1s`Jo8Hbmh1>l=+&3AqN&EN$G>i=l3K@}D!+TPt=Nsd
z4JuZ7b9W!p`I+AOyn!8N>xam?{28Iv`Cf7;$|EP^<2QE?5RdjFTYx3Y3RY=2toIo8
zJotQk6#O-A4D(_2JJguZ0pdDYQJAbS9N3*uAlPsK#niuWie5B7j~w_Jrcn|%=xbu{
zu#aN*(vLn1Vc5mSyY76GNT4Eq`r8;|!8nJvpS?lee{mOk|71<ulVlT5P`S>S_KTCq
z8lvcCEj@~HUhaAO{O1myV%P5K**=SluN6Nz5%UYTey6SwbEypHc<yTAYtf1qFm<cO
zA7dpN_;)Mp#qQ$n!gY+wdt;c6$0M2xdNjoH{r7I4G9+QgxoKcsOB{Tw<!hLcpWPzA
zn_AI88M4IB9{uPd4-t7=8s}uub#dc`qU$w9Fqd)vSnw73!tLHDvDPY~p7qB9sc4Th
zVUWrjkGSE{hDSYKxGN(L_^mf33o1~&9Mux$LV)>{j94!d4fxgle&iGvz@I0J)*Q(9
zXZRw9UoaaP@TwLrWQdDFp!PXi9x9Y?GPbJAXcmIt%iqUl%q5}i*-_4q5mFElAKZA(
zQx3)}m(2aVWgxMo)1dc@HvBAmM4@b{4UbuVP&{nVg9LZGzgmVGpuO#KR^*-*{8lk;
z<~*kjJS4UB|Evt*psXOAe_b8iOx5?!SfKp-{&mSlGj(ubkT^+U!vGg&w<DOzrQwK0
z%&|r;^t#g2Yngs3!$Dt{R59YuTYq-7w|5YPX^Yb-&M40;<?-p~O|<_=J5Iimhk8dI
z@>lC*G)qJ3i@J<jYHn!wFxLx+NA*yQwbPeM82Y))h9pj*IYtogV>pU(Q)SfOE};Ct
zTTR^u$%v=w6KGpA$|V6^4RVh<ijh9ia>*#5Q5<BSN$YoMBK~GsI!U)aCuC(xEB*<S
zgfpzXSJOL@ABS_(g7T~iR8lFFyq1)MO%ER_bt*A%D?h?7k)r_SA62vVXi;7}_)uc*
zT|to5E#iUE1Ehz)-;(|%j(RZ%oErHMH}i|{ThHGzV3OJIHfbyk5mw=|j1$Xvh`mX|
z`bWeAdOi}|SJa9*2ADnn5rpQt*5*I$zy)F-ig{L45x?Yl&HGR%QMgO%HkfV34;lp@
zuzV}jV=;CjZzPQk<$N7)ghh~p1I>cBBgO>p%MCy55!vCRpz@x(E-4iDZVG*fV}U!^
zly<K>6ES&s@^V?wBzEs~Q<YFV6V%=vy21N`2@Ex9UlH6^@krtcgP=ZUqKo_5k-6Cp
z{H0A3vE(utG35QY?h$S>V!#6TL=vSqabO|mcAq<%pH6%wk6+otmZF$~erS_|?K3L+
zsHaTC9CBwK*V;BbCn9o5Qip^%|I9qb?k(bFSbofYZn%Tr5EO74c7Baly1u$}LT3@9
z)3Ca7i(Ux%TAWm$aPh*h?VBVkXKr}@?2*kjdfiF!Z#VurF~e90Yi{C6#Dx^4So~ok
z57zGH11(jGz%Bb&{SeZxHw~{ST0EDA7Wt;hSDk2|so`~5m=W<%cVa|joD^VX%2+UA
zTMF@k+&@SoUrD~eaXs=40)T<YUL83Tz^`DEfNe>*L6fq-Evy2<ZQ`QobgJ-PyFIgM
zRTk`|#ZIdkse;sTEvX*Fm;3&XT9_Hl!DN4`e=Z>XD#UOmNijeT_=>1PwDUDV(!H|s
zwXZ(BC|oga`cDhaeeaZ}B-a9m=xdWZ?dbn)ixOZ8(gMLSj~s3qH6Rt%{i~v=2JieA
z9wkM{1MBueS>g~6QT;?Nui;-7q}TQ>#eNvWCok>px3-gm2|wXjz&~-~Ub5;ZdvrZK
z%q*0=iF7tM-bnvk#Fef&tnhL_iWP1LJewdK;|7bBz#|PQB4BdsmI&dd2v`TVbq=BP
zA+=^?QxqM_2h1e)+_gvj7U}QoyC_)TLybhJ7RpWD$TS~aKslO?aaAX=34X{5X*=}w
zG%GZEU28dIf;i^lr}78%MW9cZ_I8^97o;mbwJ%BJ2Hmkww095(BGhNiW2uN0&c)QR
zU6!OLeynBv?7(|~F=T!?rIs{^GkpBxp}ofh<Ypvm|H3%I?17kN`sZD2Y%^~ASpqFg
z9PoUQoo0s@Z(iq$FK|M}e`XJRPOHL}VP`-Z;_mdh9}nO-!T{C%Z(Xb<RN$f-OKKY8
z>~rF$pQfXI3dySomcIJ}AT?=|p6SX6LhNo*YY)kwC-r=?3i2=U#>iagIUx_^Qs*X}
zBam;1tN8mt4&v3GlbC(7Edwgqn^^%p+)&XvVy##w3mfy~u|xI;*m=1hOrM@3U!7X*
zo#@k&a5=(Sp<fgAjkvwei|3I+yub9)4`@!b@iI#q!_ho6^C){GNE%#MEZlX_e!jGg
zj638K0RlrOhFdMSF{PL7Ka&HQVfeg;)JfDAyCfYZa{-;(pPdYTa>_{#$}Ps@Kg^)~
zc7Td==L8=Z4j0}VP?ZAx?xOpVMUv3}Hre%qi#FnK$oPz%6NO@iMn<nc1mOAo#h!mu
z7Dz_lUx`Qkal0#_`8K~5;Y_?&uM8dP$0$18QMxJ()bAvoRw5r$o|U@9!C3{cP<zW+
zS&aMyg8zmdBHmm{`}f^4B^B5x{~VsOBM%Dg4~hoUkS}&<Cd)5M9B2fdnQz=ug_!%%
zdKb~}DI@Z{NzXNQxI%0{(0M2aeG5({x+piB{bgzJ%bX&t4(;4=SmT7YSiTf{23h#W
zv|&}uq7KIStZ~kB@?chT*Jf}Y_3qGIwL8<S2&qffncS#%jBa9em0+R(xs7s(inoyd
zAZ%d%|DFKvlPQmIV|lpswv~0@5-*yY_Nz8ske^PgzN3vo2Hr@&Njc9-3YJ4>Zel3M
z_$kF)ZTe3uUakGkzvbl=M*4O=`-}q*h_H!O%n!6<BX(ooUVr$9adZz;&qcF9XV7!u
zJc2YRjL~1SRpf-G(eWz@pDEyOBInJYH_`d9W_H2q(N}EF*y5tb00}Jop-U4mmVklv
zPZ}4IkJLQ$(|{To;&G3#-;JA=2Rni1L?LT*zkBa7pLdi4T*-lV0qHunY0+fv-D04z
z;z<^}Ar22N+6%gpA@1wql@)Fi4oH8ar%8i&&en7urubzlFkpTBw1bo$elnz+U!4~O
zx&t#QKh$^p^m<uo$;dn|mXbDm-fRok?0(jm`)d%Fzm(VE=fnc?qvYGemnQMYA4Kmn
zI4@yo!*_<K|BT|t7+-QYGf)%tM7N{f)O^Gzr|3xnIB4N*6-y*n3Ip<OW^LKY(7^S9
z|M(h*Q4h|iViC(|5vaHLa<#ck8HN@vP25L0&Wor1Q9alZgX{;n3S#AA&^z_M_NRs{
zFuLV${nQ)BK7VlWxz-{9Rgpi1UZDQY6xAwCaZgDQubb6bKz*$m9~@dsNRS_h<yBy8
zG!5jQ<6RC$dRQ9Stl^_}0qA*MBEyAz#A)_{yYm`6L=NRA1~X&~urLr%PMBwgs|%lR
zMoh4Q^A{@1m^x;toBbms$iff7B*`P;DDPTu>DrKPl@M(Dd_DAIT^O3!?KfETxq$D_
zsR6}P$fqN<Fe6=}3l>3_?O&krD*lA{_YTDSR>hj7{7Q`ADI?!nlA{s`XnEXzdsP<p
z?{${**s4OCrN;Ss<ZEbq_4PWBr#xi7acKQur2+-tUiUYh(}eo1r!Cz2IzSg9^&<!E
zJNxtPxJ5EVKzQYzYOA*jBzS#e@f=kFv7RSf!N-vQ;N@*IiEElroOpPn=D0i@4!hVU
z_d_0%!sN!en1!Hwxiw)A@rcW%oE9?!H9#eg(7*p0@s303$mD%Z;k%XKP6xL+OlFy_
z5+>E*_kqY}!Z$SU{lm{Wc@d!X#8H{Y6?&i&J|J_xLIXmi{B8b95a4ww*F_03<O`I$
zHhxB10Iu0*zKQrtfR{ZSS!&2vGNPqS_xl6t(S844p7Iw7U|Z(-$LgR0j_=Eu>G@UQ
z=e2`6Pjr79x&KJHEmRTIKI8iYCMC!_GCJMBq6$U{Wh^rHk#F^B=X~u)0(ciEvyve_
z-=@(fr^Jo`M?JN3we-}Xl9|eM`xGg#x}_MBP#})yy?gem-Yj5~ve*z;#R}coQMOcq
z^q}Q%?Mf^U>R&o!pH#2=5x089A{2*ocjMDCRf$MfmwevNU~)tNzP5N!^Yn;A<%ONw
zt*B>KVLbj9WuzvAs3<hPM7myHFR@D3L<|BDU#v}+2P8Jeya`E?P)d8A@t)QU{=(_)
z?`CvAzl?tuv<{<(?rQE@2_Fs!`8e{~={P?W#O1|(ZIl3QKC@?`h;x|uyZ8F<du(w3
z>5<Z?1}RYP2pMeS=7(Ri>JRl@q@Y=Fa5?Q1FX&kgf3Fsn2ff#QzS4nceh^rxboSPQ
z4~KGa**yi=qB4|_*g-zA<BHgh6xy#y+xU++DZ&j$>NJ+i8(4-`pIh-AVQ`kNr+plA
zfPIcCQ*r82fzLl(EsvY4!9d>6{VqWbIOKgGd%IT+wBC}+zYrn-3XbWOSc*d4l+DhF
zv=p2n@gO_fx`xS_`@^CYD;U&CJaZ!vfx!Br*q(iMq@Vq`{*h7|MrAm1_mTfhF0}Ra
z%S17FCpZ5hlnLF3pS6)vq5aI`N1`|SU<~&)G4FpVB@Sg_G@q-Y`N8z_o0ru)oY2C_
z-5mOf7I+*DWjQHF@O#F$-boL05FOGJ7M;$p6G;sUF{YDrM9q75v(A$J!<C4x4=EoC
z6T>~JGD0Xxi4hKm4hJOe;%eS198|i4*n?x@J-;~j@O#gki2~?(ms3<Cw1jkL>W60a
z{)neoaG!!i;mIaem(}T<@|6IywM(^|=v@5GGDao&q7;mj?p0Rp^MX+D+I?+F)R#?u
z#qj<L18nvb_8v86AbuI$kQqbzV)iAgg{EC<;(Zd5ml|6%aLDAPsnHcl`29TFFtK_C
zKipMm{`(3Cky?Yfth}Fs=)@*?X|sO>KSBF4z=?7a4<awSO&8A%4yOsU<!Aq3IwzR|
z=NU*~gOT9+9Q7Xw7{0!tc%2232S}WLHKt=p-;Va4ao@zc*L06Ef1@M9@SkJi&Wyw<
z_JhK5`3d~CIh?w)TZ}bQznn;9Vk2_yRoyQQ9K}-KmrGRf(jcFpOhZlS0(PeLYVG>$
zCf3TMTl!0jk9cQt(9M=qni!t<$M-6)II(?7GOM$JhA0<kTg#xhhea4YlRt8mf=JuQ
zXknF4N4$6}Wd5!`E%BjoLNEXSC_2wTuHH8e+k5Z5_ugCQw)c)iB82*d%tEDMmn4-@
z5+R!?Li(Phfh2@NL}o@dng8eis@L`Hobx>Q{rOxM2MPXNP|jV4YY&sY_g9S{?Ikz-
zf*ZsUr?HgYlK=R#H9}17(`dTsA%f=8`Q`tgtJ>8X^Y2YgU;}+sE_doE@$0%=<zvu?
z1##2&&<v5{FH~H!`j4sLI<H;o_@hPfTME9fMNC+6W+##}n>YCJORNGeZFIu;36JID
z0>R?AP555{zII`}Ln)Ma$4&zOr5|$Nyg>v%N>irmbA=24MN>-|woZrN`>Xd{I}YVr
zNr(iuSUB*Cqo(J#U3hSwvDBB;J*>FRv(s6jD^mE*%+T92jm-GJ(2z>GUu5{z`SsEp
zXC!gk{)St|A4G8v=T?_dbrC$COZV;@Vlli!SKeS|NF49oQ2l#eP!6wjn3occ9v~Qu
zAG1t@Ny7A&O<qKRJT7iF#KM}-kFS4tw$SS)hld{w75+CYj8Bl9diwDpA3mT&R;OMj
zhqvjnt*<?k#ry7maS~rt!YgHmjMI!&@DdsFYA!K=8fK<D)L%3pz0r7YRN@HWlHQH=
zy?T&%l6RKxm_D3KdT_mYP!dAD=+0p=DsWfHXg%j9%2jWVJk$K60Yfr%1+)iB0Nl?#
zQcymDywbvvHl7EjIXE-kRcU~Jf_rgWiv}DJT{j%#R)zl9-}7!+Dp1?alJ4>W?PKdQ
z>XKPhA)IE#J-$v7hI8)T`fY0p{zDsd&qh>1?_HLS7yAAY(RyC$&C~*$`6cDwBf5|{
zeW*UzhP=sxUn-a8B;n2FrPhf}C7@w&y*?*|{GL5WN;fZ{{jeWg4!fZSdHpX=dXs6u
ztq$3MyhrN5cl6!WKe{>~)?MmT{7(le<z`OZjMs&GUSHEaiCFQ*D}}C&E~q#8%5q%!
z7&jg}q+^rq!;O<~JCPF`bK<&kUt~2SDDcsrryD~Nzvm92N|S|?0w>DyeC$0$jBkuc
z7tUT{ft)fWp_n0R+&=0Z&--LjoT~5)ZJyFP%6-+a$Cq*AU)VRc@5THf42x@vtXeSP
zj{5yIK1Flb(vH)fNfHfSka0?o<s~tG>Ms4YXD8@zowb{`qC%v&-<?C=K2{>!QaF!e
zhJp!Cer*&*n!<wX2-^u?Cl$fjY*~Gco~&a?lryd?Iz<q81C^|-C?CKq99VN{mT(A1
z=}ZTZ2c_k~9Wp~VLRj(YuYr@Bgq(S$((aUbY`*`4jqBDOY-ZtQ%=36sXxI8{-^0xg
zf|LQ{QWDho;X^rkQe{Ehkl#Nxah4OO-~Vpb8BBpM_zJ!ZzbOt$W2U3+GMezlu5s%)
znitQUy!U342IX$`p0_tND1Z$vYX0{W%ExnYhGYuyf@QrBujXknxGQ<TGjop@KHRjP
zmASzKTl_XkuhJOc-s7*;k5G=gAm$69k((B*Q`#0CkiT92k(&J%<g<CF*87uc80F<f
z1FE+^qI=^udveC|3g$N)u~Tw{6bhIN2JR)JoRSFnKk+$YTzN-~V6aL9M~92|<c;M(
zcsX{(-HsT@DxRlam12Sz8><VS?ka&vwpH{GdLB3xS5<CyQ4lX*NV<JBKostl#uwd6
zk^}@a@ftqAj9sodmY0M0-&M_jer=lYgZuLMgfGcwf=&PBcbCW3F_zZ)g5xw?&@tF)
zkjbP9!$e6d?fa6Dsq2Yz#3{jziHpg+T=UqyD$gL7$80c=wd-&co!7-{iwA@hWWcX&
zZh_BK3^2Ce11^H%5V1R#_EMY;tO=P#m)d#Zbww;&)kSeIA4+qhSCxmdoqPR1J|Wh1
z_dwX%Nj{*pctz`k@&~fEOIzm<|EwT6mzC*15h%MAX{Q=a3}=3O1^HcKfbJy9kYk@j
zpi4Wq&*3rR{yE*fB+M!TZ|iA~$&|{0&F%6FUqlgSB!wYs)Qk^muFClv^a`MJ4sYLG
zln?rxb34eneHII=HV{pmKg1|H(kmwYb}*ss&AtuZDXflRVsUGo9#53*%O3Qi#6L^a
zR#J}B!QDQ2-bUmD<DxKm?fOp)jxw>|p5bSJ+2VIi^gob~uk~k}ycH#gIIzZ$ej);O
z@bTqL-~z5_k0-1JWKhBLx+_k83*)`d{7>7J4Ugr$v7Al8jYmzpleJp1<Ig#|-MUyQ
zaf&RN3l+oM_^YSyr;C2@;hi1i7oI#|#q(%lPqPtm;3xOp)RV1w@bmt?c};Km@L3A&
z(&J}1@xI{LI&#JqOwk9MVB^~&M7XgYVOyZU`PN@gycswoh>z$UdvDE*e@widY|BZB
zi?;7w$VubC4NJYrU$@K<Uc9_}oJ@%vU%91vl*(2ZKiqtv^DOrRcD#H?cfo-Ocan=5
zFK-aT>jRgELo`L;btErQ+fg>)D#{%9_$dMoJeGd@VeD|TC3YCxDWGV2DR(4(3_EYS
z9)9&B6+Tt^`?JX+6aFXd>z^~D6wuJyz~1+Z5_jPUu0DLRPl%4B6^SHfz)ki(IaV5w
z;l9<&tUd|V1i2y);iPmf{0$v_f!pVOLdXEIL*}$3-fDc{)Yr$1%PLY*guNAmy58?&
zr{p>C``%Jia;^u2Ns7gOT3H^PwE^>&f5(c8l!j8AwP40M#{y3do+N@9O_y9cRyKTf
z|4+tzGap{_Z>f&qIvs9O`^Z2wK^X5m=9y=<v`P5*Gh~I`Km?z8E^_5F%DD}wHa^KY
zq7OS?vMwAHC_qHy$%d^4)Y~Z|Cw(fZ2BU{Q!=5j7!S5-ZY;T|%L_Z}ucp{<>QNOS+
zx|kBYAwReu5Pbv~4JdA{&!IW9U9Yg1sUeh>-LQL|tpzKcnJ>BvbwH|3p)QdUfQ5cp
ziNa3;W*(m1JpUSTnA?Mt*N_LI>#eB*1>)cjUfKQCl_dh#mR)amTPQ*y`v{{&tSZWR
z^USzg>wt-6=zq*C2FQy%>LfHE4=?>`8s&uLAk_cm1!@}P8yzaRluEAvO%M2v+(G-W
z!kb*W2JEWvGAbx3AXFGYyDHHvUJ)irUHmJZWPnzZyrBQO27JA4^3T#9_1*j8&MIfH
z;76D0=1ZS);Tv>XZo4%i_*@NT?*r>S!biOilTVGA@y%<;AA9yuL#gQZ@7Xg9pcnLh
z;`f*gnD3>Nw&KE|9N8mK+#?KUavn$>MLCYIXD`(c9-zM;=Y|qTloY7)6vi2TVgftM
zNxNOtA7v7_B7c2Q4yu>_29h!T!-}`HH?J-3V?mA838eG$Sl1u*l;{3?80P!oTS3n(
zA+58gMK47X=%1zS6WHmX=2mG?e<*t2etP!2c7hTvP2MPqoZx{Q@|xv+x0s;n!IvCk
zaej2KtG~OHEC41WY}42FBw$bR1nL-zfmmX3O#~bAG*-WPrjO>g&HXvM_49}yw+pT(
zge3tNbWs_t+QK9(9Vz0~XyLiXrl~308sS|I)kJ$EJ0uJYm@Hb0!R=X@bE(W|zIBFB
z(2L%ORUd{pPF62tK@k;Ut)>ESZOOEi6!G4_{Ifg3w23$wc|D2al*(YAXfOBq4Jo|T
zSP;-adD^oI?mK3P6aP84QCJt{;^oK<P6^tofYHJ)KDSvBC=WQ5nmZ#5qrdu@J{Su_
z8p~9UY@ZlpG;O$a4=aK6`{euaVrXv6<ga+`Py%rhKT!O9#SR{_-shZ2h#~&pV0kC%
z37*{^kWx@Y`!us*7bRP1u!~kX5OUIkYL~dn)bi+l>A5bYv&jYtmel>qTZnJN$4*Lo
zQy5qm$TFT@5{4wPvvPG000vi<@?5Ukp*dzoaOGEf_;ZaaRO_ZO_)sxz-MeQCg0k8t
zu3a?(h4#)kn=WIpCw@12f5sG+bp{&Va~Qx__|U<Ug&~l?mf75<HUn&bH?!cI2}H--
zf&?E7jHWaTB7%)U-zFqTF2n*pI)q56TN=aoD$C9KOnaEAocpB8<Oq4=195ex*1(I`
zb63-w!!0$}RknT$U_E5`9L{bJiR%BF2WxC$B9yu%c)}VQqR#vpSTu#t_~2Daay{6R
zi=@Mu3_$tcCtlfp9jG6Wpy4k^_v%314fjADVAb@udz7jIkrMCgNz?V9h%a7A!bcl6
zRMI<xl(j)_LQ8{XULCUaC#3yvQQ>UwvIq<G2ZSSKm+CZJ(0tz4(f6J>Ikaj|FfBcv
z!Mx9N#>Q-Mz(?2Aw;nH$*PdQ-Wh4XbTaFhjU-Dps^Vy3Z^zP6=?D{#$Qxc4zoX$>q
zBnJ8QmZ{~7Zm>bOfmL6i3F7*#WRMSd2!Tkm^%;x0B`m9_CDz;fCt*v<=Zduc3&M(g
z&KLGOJJ@ZI2%*LPVWjb99G@Q$<C?~_gx-5ZxQkY8_h|JZW<1^O$D%<6eRRcfLjREh
zu9>ZSWuFELLk;c;+@^+$qif<e{3u_i9~sxBzz(@qQ<3#=>A=!L#I|1r`Bh`z{ngDp
zz-~oar5&^8fie?zXCdUv+T}RA_4FqbydHY=$P>LM_*B~TtI|cl#keP8t5_U<+^IEj
zB1c}^+sdKJ4yeZ(X-2FV#|uYa<)-TQh{47`;vh!UBgsDQsqrq058?)#NV=*e;X@5i
z)$jKlVAI~ZYD~-m)U2AYRz(UqUtj1vF+tB)*aOp021bzb8(gF9SB4O68GHKxW#FcW
zxifoQ3{)mtB%bprf|jMPe$1FG_-SzToS0UGQD6U)TkdE-GU6hB3iXxUg|qWMpn1~$
zwmMbSbFy&l6wd>q8w{}cfzgY=Ckm#Dlm1j6Il*Qs?demLha!#7zV<$X9oF9`=Ue_|
zgeIC?qk)ec(DTuzMYIC-yvCP?cFp)<uH!=acPTQM{}`k?{_+r;9geV7ib1`bJ5QG$
zAU~LpPfBje4{?aJ{8g0ul@E?bx(=izAimdPGw*hY07PV8f5v4>kF(WKJWP&Mg4*`6
z<W3g_@ZVr%ww7mtiuBoF*F9>8H`RT?Bd?Bn4C=yUXz%c!lUBLo7|IP+iw+GY(BNI7
z6E05GVxWDyGnyd`arzP*a&6H(wk4hA$R`#S2%$7(&Pt}jE7`fXH^pe7PUm&HueT!D
zJUr(r)Sw7%B~_2Y&Tzm%LbR7jFgFDB_8e;|p#ZlwFP;CN%hR%}vd0v(py&n`Fmk{J
zH=AVKZ)9_U_20FgtR^v(tB;z`xTp$NX9XN1Q2&6=(?Lor0P*&Y-F?W8{5A^VzdvVI
zBko^eL+Z?veT-Hm&w!I^7Yhw-E!(2l#9j?KC3z$7hkORxwo_dfVY8CkhkbS%`*-Jc
zIF}qPyvgo1zWeP5Va5GRkKkEey!%*~C$T&^Ucz{P((aKEsOL?8cMz;4FemQaN)}$m
z8n@YMG-rk2MEGS5tvTeiKHqb}afS*^KkOgz_g%(j#4g{}iax-$Ptl23@FHG>-_e|x
zf}GIOeZElfhA2pisVizPbHji5!7>-|8n%8tb6tmt7&2RUNbgv%;s4xtuW&VN5g1gX
zd!%1b<Egq_RV1H(VQou_ysYjdAZPVJ%^UG2%;~M_*uIVsv>)jUijawe;+f_`rN3lQ
zEO7dMx;#7Xw;(%Ht;&FB$?G(zOETl66DC7vRz>lzwaOU|Q#)9N;Xc8OY>Uw4Ye#*1
zgdOMc(&c{~Cxq+B@z(iC(c%2rpx=PbQ#Z@}rMbM3AApRi+~gd(KS-1O-iqVFwPj8|
zSI}q1k9)pYmh|Aq-~3R{`ikZf^~K+gxTv*Zndcr(c{MFy7Y?_q|1~#b#SCP|kKX>m
zY|mEj1|yICIX<Bg;xr0)vWoAF-(?4f-&clxD0qNXP^LO9j|Y@QZ9T7UumJP+l*Ln&
z<GGX2K~6M#kHG%C?0y~99`-5xgMD`YG9mH5@xD8wO!ynhx6)2qWVj8M9jH;VLwJS#
z9?U2f1=*>EOmcz%<anzNRo_57OTXrqT9@}R9_gFqcH-1HRQoMN29txZ`TeFoMJcG3
zSYT<JWy6K;^%@2|*u+i?{J@77wlUv2ESs155L+2Krtso2j`<6J7hvyg!^Yui(x?jy
zPBKDfv~q?S_jG#4os>?Bv%D0R_qg^CGr&(js@Ic&9NEm8KR=O=eY?KGKS~P}9Htyv
zNzvXQh9}O?TM1+(jx>rg^8lNe;2*X!RXB_B5#x~xpwMjmp^8!$@m9V_tbbDkIq$zC
zyr`E)BtBYkU!|Y$I^1qyCXog9@0XA~ETRL6!=UNA(>$P9((>!v1}S_s7!#gJ+{F|Y
zPVqB%&Jz?r<?fwDzw2AqeKWZV0%7gT^FVt?CcIp4Dg&9P@P`&Dip@KWINs-M`{gwq
z{%AeS;IAyoAvcn`{PZdySPc%jsRa|^H?m6Bk1cN##;d87Y3}V1-p@?T{WTlKh~hII
z3C0oOmoL#*?NJls&SS$Bcdt_6Z?OBUv>hn#eD=vsvgHPLK9_hSg>MHd`#G?2v=im(
z;?!+T*lFQv@q!BNacc0MFz{H3Mji&EIBDgkDZ+&xgyMI3>lnRN;u&JG4eUfNy`~}h
z-TB`xZF8lQfQqB5VKlam*_Js^egCqF{pKo?HPN5|{{9WqIL`xYaKvKZArtDor})I$
zI#5BGShH}V;R-f$T#DtD<`R}_sqFN)bd%6|OmHmW1u>kE4Ea_R%nRCU-igN(nBdL!
zFAk%Jdsv+BRH+6X2`<H7mzYgT4uASO&oW-*f}*0_)8A>?!LZ52`aLTzVD!o3<7tdw
z9iA>ARzm{o1z5ztAbuFWFfgc4B>>{qo++<#g<!rr{vkOZ@?0Oi)95nB1;w21?#YYN
z0F4*2QfTC0HKx_MP+b-pMNWM*KzZZ3R;I4+*99ToYR7WqP!=MNJhW<a6NmDmvPm<3
zA)vbu_Fq5ZA9Opr8FDi6!KBcQ=k-0LIOT=?y`L1Q7j~j$+n7uMSJLY`_ezNxm(d~}
zPb?oN?3t`>jQ(Z<`JK+@!$&KGR$x~illqH#08HFB^oU^iQMtmKJ|Y-3t7v?Pp?<Ee
zuH9GETkV#tEgnPv4sVhIzV4zv_XbNQy{U~H@bFu`d!R1~3u%v!^~|GOLeLKv>I^a9
zq1>lz43z+}M;~q8=_3!0uwC@(GZ`2j-;=0)PXT5#qzN|{#30I@D0k--Gw|o@-<@7X
z{$^=4*|B03(5En#lu_4!6|u)p#%<N$&6ML`BYjz@7~+3D;idtzIiI5crD;Hgwn6O+
zMOm1<=@=L8sSY}s9;_2i^1yie!)&F88W?NkXDP_b!<G~YMMsr9oS+eqK24_#KB?<V
zRo+tI#XSGY9#AgG_VbNEMqTu0>29M4;^eEu%bA3!0C|Vl!mD&qc*+?-0zrx}U6}dI
zyn-G#tnKltJxzx@V6Bf8Z&2gmv1iXp#WCPfLL?m@ok{WCQ&j?{Z4|Kg@N|vyBMR^@
zwBoy_hUQ^^^4vsFelvD(g<>WDFD8B_?B9jYG(eQTJ#ki*4~}-prGCmLgV@J<T5H2}
z@IyG=SipW23;je!(-qGOb+prIbQI)JuOX1Z>_r7?EFzcos2HKaiT_7)G#8xuB|*~X
zCJ9p-!Q@@Bq!3+|e?iD+moRA(+Zxf<ft|4JZ2Ljcggso{<<c-j`=Bms)L#~c;Ru<(
zSB<$~+b%5iJv-uLljTlcK;DROVHU>of0@8l-ty#YG7dPYyUt!&g!X&`X}Oo(RxuHh
zc#O!69hQ5j69QhXU{>1QOre>m$9g7WeS7UMc9A18p!zg1Ueo%1nAC^_FQx0h=Elkb
zYZjtE@@iHI(hhET2|E++ykkPtueV0%9^Bygmqdr3>sY>iT;&kc3v8{p(@zQRPuiVt
zN|S;5WH3c>FeMa!m9Y##zNl6?O!6ud8Gh`y2qW~Po+R%>N!gc7_}Dux1^<s|{&~!S
zjQ_+QL9Z^TJ<fy$cl<=Eq0@mAj#5e9_Ix@;FiPK#dMb}&kHgYWj&~jqx<1ytX#g~T
z@Rhr*FwOv!Ta9OkR#DD-RO3AZEhnCRW&Gs$Wg7fOr>D+#xBy=A$s&!5nHg_hycF3~
zLx)HB3fjFw=ce1PrVe6X=s_ttt|>ZQ1Cn~4MhOXOz>Ed$<R>**c%Rkfr>%ViCPGSI
zH*TSMb(2l*<7*g1J<FJ8OB09l-k&@Se8k~6^&=&Tzlf($@}u`&p*lPiI{CN*^@-ll
z%QfzM8^bxrNrx~wH5gVM=(PEafm3U>ft~|~yo;y&U)Bmj8s!1g8zW8FxccZs$dE2n
zSvIIBSxCUUxUUJk6ey?j7agzA{n0_xZKA3{8Xg@md*$~5r0nbt67Q%&@h9&0E)7iJ
zx%FZ$1Lb7{+CJVZVo`(goBHgZ9%zAiQ+b;4YgL%?7Mj~-!hm=pudw!mI!wjTCCE_f
z!Px8A%NHqh;FQ(d;?K7=U|U)Hya_7?{0#JNq$i$Zl(%mReg3#b$XVg&_)D}zSQ5YV
zc|Qhu#Csj(D^Wgy{$1gzs0nKPd2V3}TI3K~85}IhR~IqII}S#l_{qWXi6-dKw-FRh
z$y*Asvf~zOI=(U1bZ~p<2dSCXI;Q)e>egz(CYCs)-lGMJgcWUHO&p!iI|TX+hir+#
zlH!}W+WSdD#Uk6g7d))6;^zKV*oFkZ3xiAacRyh5Rf9^>N@Td~x4}>1Xx^;c*hJa=
z9r+9TtdEAN(*i+JqB6xr90E_2CmM7y!h`#SyVLB9FwQV#yE)DUsmf){b^X5yzaMo(
zMk1fLg8j8S6@Ry|2T${tqC$~>*vYLkQ;7yHn?^?qcr(LYn-rHuee|3JKRVXH@fUlo
z>9H@HOM;8NSjjlMs0bl$Ri!VfzY%gim?wB?O%eFcP&UX-aKYU(f-4*bbolXC9p^of
z54rdJn%+ZMCY)%)yZ49a1jaoVYjB!+0n5Zp{1c?6F|MR*$t?=ZAaki8+-sf)>Ro?z
zlg1MR<&BKanjkv-#rqmxhRi*}e{~1nuecyz@Me(K8O3?R=rdOD=R8t4i@lbb`z{?`
zs3rc!b(#V{_?03pUdM>1AF`NLgfihmy@^&y*H#EDA~z^nLxu<wiRxTJj~VeH4iclv
zZ_K!Ez1D4pC=S@03drB<V8i)84~aEXE)cGB>`>mJ*e9&v-GKwURQRxtN|X=L0p=3w
z8|6qq&&&LVLA$38JfBkXFL|y77hL|+C_{5L>M=Kp6nR5nA9O8sO)>=Uf}>^D>xSSw
zz0S$Cs0^dgWuGP0)Zp?nUPdMn6WIM%*6Q$CA1)YJ2d_k`fQ*Q9)d@B|U~LN@j-pco
zld2|&cF_gF5qaK<Ul_2BBrh>E032~WdXDBl0Mf%~xxrooctLN*uvw`MJ6F{&o@_UP
zg-V@smJKG5?3BQA|H=_q^*%k({K^1%rSJUHqtO99-mLeh&!|8~hdimy6$Q9x^xui9
z17)Zcm}$ay)Zx$3%8Qu~QSMKl^|GiC^4rv|rLm_9LlA>bRrp&u(BH$#Mvf~(Tm|dw
zwJY-QJ^OA=|2bh8z{mv>eVE`1+w!d9@*!s2PTo{>g%ZM<yEfaB7$DE)(w^m2<U1$S
zMm2}Z0@IJX--_zUAz~ly$R+Z^HcwQ8N<AkK-)K@_ToDHT*XEP{8+;J5%ei=%!3@M>
zL8(>h6!4r!iSatIFa!#_+L|dLpQVMT#q?K{Z#PN#_i$1O4l^~+g%}9~Ww|JQLM<y)
z&%CehT|m5zUfxcn^CIxfIqqZ~+P6H)OD>|+6okbs1H*V%4mhiKXU`Nq5ZXd+HU2a@
zAS6E{?|q?gK=}4bTUYP$A$C+J>Cn08JEmv7HQv&>j4jEH(>{~kBpd|!D&77-go{nO
z&iu!?jA=87yi$4d8>0*rd_sb}-!6nZH$S6(cey&t$MyXY!nSWt&%JbF@Jafe66lC}
zjT}Bt%N7u?FU#`&QN+EKQS`Zx-$V`PVn4R$`l0@1K?1eu_XX@<=z;Ug%j{sJ*^7{#
z;!rUwqgY2Q0vj|NmR`Il|D#WJ&^^ipQM_ko9feguQR-=0@_iZD*siQwZDE5m3Lk7d
zQ2#5%iz<e`d6Q7S?zG=+rw&J)?75oalp*lh*-un~@(^`>;C`D4$}?m93p}@#V2Lj5
ztg;s?a5wXD_43o;nH^G@#+3uuN0$8iR8f5JtkmC`Nkjm2U*z2m)aHiCKz<EnX9lP(
z@i9y#Rfl!0Ns=#^JakXAFp^}bfb2LnGkw$!ns=&R>VC8bF_SzGUm7R)TWgyXDQ6BH
zf8|K>?%6?bm6^TCPZy9pT$SjnG6(trBZ+Z`qcAV?YItei0nU7r8%vFIg1Q|y3TAE}
zNV?$sFL2cnxD+PRoJGuGp;Nz#U(6Xu!pg<G)a}5a|K%1ZhXtIX6t-H+w}5+#xq+D^
zdZ7BOZ1??w8IajuV~hQ53>IfU=#Pn5!I@h7eY<=c*l6jf`}f!d8dyz4JSUyup6rb)
ztIo&KoRFLAd4oArUU*2Eb<rGLJQ*DpRBXUVsnP6Ou?@7vRI0D@S;056qM<T=YiM<_
zZ@T1Q2^ahmUdJA_0B<Xo*~2d;Fqb!`d&|ZQGQPGSyOkjdO+ktSGr7#*xp=Xz^(Nx4
zTutixQO5|!K_T=t%3+iJ_!emTlMf)S^`5>07gW)&BS0JnkT}TcyqX{b)~YW>4Ec!9
zLcB#2n~vrix8%%Xp7H~+O6zl*-#pOzl*LRp0Oe|ywm*6$u)x!I>la?`GD3?bdCt2{
zKG<&$IsP9hE3oBwJM3BV0@wQKh@mq)KzNoR@uFG)ss%s(VVDsCyd~_#T$U(&jOJ&q
zWak5htG;>(HZqX9c0MNeCM#H|mzc#WGDEsq(YGo$CRiJiP7e;Ig;0kC6(2Mw6FPK<
zB}H18aZYzkRU?Kv;>(vk&(MOmXVxPQJ2J37sh3&N$_ClQxwAx$(vWu5)H*SW0canG
z7v><&(7b1RoeLK+E?uqKu_eF<iuY}o{p!_$TZCdIt6B-fhP)T`lQrR!GM|NFjtX$U
z4R^6#RfhPzcbA%z^r5^Aj=Q7%dGF7ain4FAz;{KcYAXeK?P&j!E)S`K;+3QQljyu-
z7aSZH^>Y@>lhphYI?DkGbnZPlD957BDV?TDEdx7k3RQo)^<fe(<)SWOfD@^d#anUY
zpmwgP8R}_qW#JLpU3`T=txWyk!*NAWo7O%d{Y(xHINz_|Lp@|6w$K%s?>&U{^$*=T
z3EXg6Qe$&mUlk^Jc8XL^D1oKaJ-hESTu}LJuAd}yf$)shH(cwE61WRKPx6RS2Kkmb
zI_YQZaC)8b4J*3ub$^eC3n{ALp)kL%%*zL9PT>O9cO~Je`A0^(EaWS{b~hv&^~cY3
zEi1{WYJmTrk`p6gs&KVs?U*s*z<t$Y=EPi8ARst<%+*8@cr`Wu3|OF?lk{9|gp~&T
z1nbdZSyix%sVU$sQi6KE+uo8Fr9iz<>|?E-2#~mMZ8Pm_fOcbsft-Xq>}v1dcS9T>
z;;S6IXQU)S@W*5JCLu{6EpjUHB#{8E_$be*Zgh|2iVfn3ME4;_BErrD>MPJ_=pGS3
z920@c(4kNTNUO<FAZM3`1y$L@3e+>ilC2l>W8|QDnI)ewNC}8mvs;RK)F9+)V5%$e
zHesqF-6J)h0+-|C8B?TW!yn&|ozSWKg9$4C_@)^+jdflKpA$QvgS5*o?p~rSfS{~f
z=^NDWLv6H(?>q~v414krbs+B*g1=r-L%giV1OsUWM&NE3-sF>~140>QUm=0`DGWud
z+9pg;ASjT~iS7l9dOpjnuZW>V%OcbzjuwtsxHPMIkijFXmt0>hkatG`ob0}cz+#O>
zn(}#8oIdVuWctQO%=28Yl9Ask;rOXQd*?IjNYbw6Mv)){8xwN;H3KY=u0NYeltBd^
zWO43-$TLG4<h2=1#S2qE`OggO5kZZd-S<!HOmNJqSBgTN3Ko76nH3w+!FK`Ev&Wg)
zfrH{LjkXlx(H^-j_#=P=9(Fn$@}cj4&gBxpkjKK1(^o^wk)sKX&+*q)N0cD7bKTDF
zANrnBa96dwR|X5ly1~IQP0(t!zI%^E1njEroEPg-04d|z+6Y_p?{#qTdTxsZ>@vS5
zFT5ZLy~XoNuh4V&$%G?;hDR0_{>-=3As&YGqMN){66%Sadz4>+IAAuNEKKcR#DL`X
zel%6EFev!CJLPTigV?Hok@GQjP+yVuSf`YPw?9TrG|J>4r6j>k=AH(GS2N=(lWHJb
z>~LK|Tmz<}Q${Ni<iYWZup-lx6d2O5%QR1GfsB6o8~;HONb$>(&3KP|a%%>mLv$)Y
zzdSnk{GJNXxz+!&Tvh;qFnYJE<H)Pr+??~uP7WOS5}MjhE2IB+bL&)U3eZ?b@}I=q
zKGqO_e6w?H1*2?SlWJK&??s2$k-|s`*ao;)PQ?l-z1?2A=)FbHDfi)gAP4dm$@+)c
za{?#7zRP=z9lm>N4OsIMf$x)3=LxNbkfomVwEmP9h=eoIEOeN`;zOqa=K%wt7_%kO
zch-Xqj@L{*jau;Qi{+Z8yDl(gzX>-t(FVq?@XgUGWnkFKZX;S!0glv4eQytKh)wmo
zf{w;8>>@;AOoPsGwdWGo+Et-;F^|smk_xoAzl~9%(E^9%DJ`uZ>L8|6!nQ)J4Hb_Y
zSnhTsKCTFDmovR8kO${eHE?|(C~29WjTNHDVd&29)e<87s|#nK`Q$p`9fd&87~?7-
z>l(Yq)vXP}rw6Xxlcr4gPp=E+$Br@M_Ky0;hkkM4{cDqgW>!SFk{DE9GDdu`=f!P)
zUL}}v^tQb>$|;6Ler?S;y^H11NvWHgZ({xTk8#ZDG-FNsk>Aa2IHAW?cFI^5ad|$A
z|2g-C3cf}}4<tskW2zOR(<d&V9EQ7bq(%+$Z0`a{uA-jH0ejMQRTk)x!%rB~3PVV4
z18Z45Eqr>}B*KRBH`lMqX62)Kg-qsi?(SX+bpAR0-w@*V5G`r4zq62o{m%1s^%Tg*
zMGI^1A0d7*;l&TqV0L(wYnZz~P637A8h@_cVZi&JM5XSkl@lh70vdyYb_k!I^4pb~
zp*+#p4{loIxltQxN={JXgg5Pc!`a9aZxfwn;%0w<xv%U~e`6#Esgx+bhl2kwzLv<2
z?md(%VbfmWpr8OoC)V6YJZwPR7g4h$fqd~hAsO;02VU?O#gJ+@v7B7nzma?Em?Bwa
zH`}Rk0taad*STxG$eUx*j1B!J(9c~7esXDpa8r4Lb5wN*D<gi)e33weCngtaW-DwG
z9Noxco?M~;ygHO@bLN0xKmQ_E{9H0YC;Y2W&v6!fWkk?Nn2Q#V^^$&9Jx_v@m%7zk
zp!=5ww>ZO>2-KrO;G;iGLJ%{sdC9p7`A18QOA`5)3C}Or_U;v)hPP66s=oh)03Gq6
zT;4zk^kkHh)E5MUEA?HOS&{!BYO03dm=Of!iOc$zgw8?O<MflsD?VV=SX{8o>kp5<
zXW6LbxPciprO4wgKRDfK9`oPgNnjJSwB|Q)gY4hKKUaN^!9kbLqi^_GaNpXaik<ZU
zenqRHF+o2V)q^J@wWp9TC2QSm{WKIu6jCL0or0v^yIhGqo-lmpgBwq}59|g93=|l8
z!=9Tog?yqnr1`x#>(TBD&LJWqjkKOXZOh2}dgm0x7^M8<PxXeA$|E;gJ-pB<?DFd;
zH&4K1^*up879Y5JDD$6so*%5KFg7{Jx&ujlPIX+4A4G3CfBk+j0P_Eple{hB0O{TD
z#{~zJLCM;MjbldzsA-(82yviuN^(v>7~+Lf=#_PmQ2<2b5*S~~qMST_gvy`82>91K
z+lQVT!LQdLB%Nl4(B={TRCLJ*0v@Luo~JW~_7M6CnzzV9vq@W;eCr5I=QWJapd4aK
zI&<l5-y;y*5q&L{9N_Ih>K7NwBXDj%HOm?RhSU{L=|mdB=jc=uRs$nAY3Ru{bJh&%
zhz{LFPiuoq*|4u_rvd2Sr+?|iV*tO`_8u&jXu~<3i#8voRYCtO>%_7W@`@hOF5^05
z2x*d^PRriYg!Kuwg(4Y!IO`B8q#33MpHmYrJvGt*hC&)rc~V2rn||Bbq^Jii4Vm22
zA;_1LrxqXFia|c(or32Frf|jRofz{Q8>p9l=zN%|2P!|~C2i6C`O7Yu=id$|ST|#E
zR`9ik(Z(66Km3l66;d<wYSI{-X64VNJk$Ul3jJ$YJ}Aul`3j@eaT8b)ejm0>Zwa13
z;)Q7%=BS5sB);~71suP<K?we11YQRZM-u5>p{Yy$&vc+8T&dqx&Z=?%w==i5X>J=s
zWMbg8WKKH}$qc6m-ZO!fkJOccQjTzKG&QE4@f6IkXG>QXo1vW2lTg|l*3kSfqm+Kv
z5^}~RO@a%M_t>)RxxcU`aNLR@RaLfxlAYY@E3`JCo%pJW;erv$(;LVHenY)#JNvK}
z^gR%o>gZ9KFapmd!4KwDCLndahe*!W9G>}zBr?rgf_`ILZ&9o<m@Er4^5<aCHeI#i
zUaSgk0^WhvJ7z%ax0XM;qX+pD|1Rf>nZi$db}ly!eK_{ko<{!A2;S3Kgsrbzfrq7l
zpGmP1{I2ryOZ$xe^y6gTj8lcw<DGOx{hAQDSv1#S3$P{HHKiG728k+XFMlyn1M!P`
zx%QkEuo?TNEtA9?jP0(KO(+{dxZ;G+W~vF?t&zEw^g<Wpx=L#uuVXN?bjYuERu9;h
z)00|q4MBprd?`=G0KzQp*!Vus1s<!v78QDiz(3#M`}(aO$eMgVJLI4P#Xcdyu8;Mh
zRlNDxnwl=$Ccor%VSSW9L-%^ehv6I6di|(;s>C5SaDjCLM?NC)QigK%_8knH(f+k_
znG}ls!{3{!R1$WhxpKojcCn=0j$an>tJvU~+A_5+a&TjPLHoO!3Np#(?KqtNV$Mtv
zFGlIfp-)@>Xhrt{7S5{~Mt&dd4I@^mX~o8|X-BsMrmKe-F6wG>4Wj}(;{Q~>Mxc9F
z&jvx$h!tXPxI8!H*~eTeJi;eMDBx)6!^!O|#K|{2op!vK7j{#myf(j}@65;_<M?@2
zczmyXOWR@=W3GwoZdN0MLoVj>|ENhJ{lT2waX|YtGmXd0)-;e0mi(*h69m@k#{E-0
zL~u$=RCE^gTl<DBoZ7z=!%;o$CzpA6!J}7B$O`ejuBbdoTN_{p=315RtJ25|{r%vr
z7C{a8N@s3mz7qtEB;jKxVo^WW{ic9~J@Oxf%LM1!D#D<v!Q;4WS?Dj2Un2JvgB0Z>
z5qHX@z(G7m)rMFKDp(7g^|quzXCgj>mQ5M53;9^iOYUI*i6@9*nQX|5K6W?y>nfJw
z{_)?3Z5rSu=}g&`;05WH(J!9XBiP;Uhu#X0S%8uzlEFNK6KMTRSzfA3K;hq#^MPeN
zF#1S!gPm=g;B+_2o}oz^YW>3ZxzW8rf)f9P7f8T}`iU{~ZAsW)PJ8_RV2wb+$0SCH
z{NVhiGG&a9Re*S&i~8OrH7N0x+52$@^#SKgeTM~15O*dpy{^FsObIKNyWFPWc;Gmq
zR%Hf;J2AN)rl!b49W(IPTo;l=NK5nXXaO$q-EE)|&FO9jwU#vKfpm3)Rc)?1*eLz1
ze@(6d`}wWs$v*2q**6LDr~ByK^@G3d$WsNF*O;A6TtRd3?XVQB3`1xzeVeycZU|fZ
zUbo0v^<iHkG=9(308m7aICR+%TtD@TjZC0C-rI<+FQ|w9_pEK=(n|oop|?Bn5_)jr
zau16qpu7nC`xygw3<eX4%2c_Jz~+1RxQ!hHFkO7ACZcZ+9+AR}nV1>aupfKhMQ#Me
zdn2cB+L<7aj8t<Nj~V1sgx>ml!V)U|lLN~+EP?FZj#<5vI>hM+2IkJIL7iKlk(&=X
z_x6=*c_ALSP^Z>w2gDPjR3e|b&L|02;?)~}x+}xAnzYp$!^jJrB3brYKoRP9N)xW7
zse??*N=ZMTG*oa{{2f5Nb^jlxQL*TKceiEvkZDE*%E-<Xu>>muj{8V_e69l<V^19t
z+Vml4_=U1&tOES|HzlpkrvcRZ)?C$UI^dQc7fKbO3%?D{oFcxi3s;Px>r|B{<Smcf
z7Q2t`=Ortidy1NHd^l`%zE>S2Z1&b~b<4u(jY}>b0qUSv-=yXrp#<5U?IgB2O7QjB
zKiu}JDzKEhe)1WUfHOx2GnC&eL4<L$sZ_Qa6dkiK5TH_oO*5aDhfYNBG*vgRD`p;J
zmAuLFrfZMT^7~in(rLt1QeGsX$wWLcTQ{ee#_QPUrqKeX#AU*hYU$zHCU!jUrV1Zc
zPXX0bs;^eKN$|a)WmiJ=C&J~pNyo|I9YU6O5uZi@H%{@z_sn`G7wA+!Ofh&!0*hB`
z<JSU-@K<gvoF-h<xck}r*PCot3ERAbA6Q$7aQ-Q6*<PF-&+3@DZ+4Xvj|oURKVu|-
zPm`yVOl0g~e~ybcTtu9jv4=d{c~=DR^3joMAyRsLfWB?5Y?l@Ma<NGAOLUMcZWwcO
za~dP_D>4@q?IJK!sSbR$B!f`<{RbvKoG|H<>S;oQYz&u$+<YvEAhn6}RnH71ZeDk@
zC?3-Wd3K#@CN6oXdvfl@20E`C+`1JgdZ+@9x*A3|+f<?K%)D7!gDS93HC$U9RDmc`
zjS~qO$X`)tqSL6P0{53xa+sefK!EZ&Lz*BnSU5GfKR~PoRK3g5mMLg2GotKrRa_SS
z8w%_^Ux}Wh$CLrJNeb}rAWE1F?N48NTs;&rR)z>+sy7TQTJU0QBK<D<-tV>3+@g;L
z@V?o;Z+FrdoX_-=4WS-KT>kl4v1b4p965>Y?xqk$PfBWso@aHNag)>4dN5odBy&v}
z_4KY|pAO0aDyRH7lN<Fx=b-%z@qZSePW8vl*B?N$>e%&B(<4wUd^9Y?@d!ljo)o20
zGC=bJC6*Lw9^ezo)#<L;z#=Ora>%Zb0(l0_lg{Z?Y~v3nZ*3YAh%o;Cx1_Lw#dORO
zcfDtVX4iH97E4wjnv>yAw55RkKXXFs#6l3EAjmhT%!+3TH1RwVn!$n!NFK1Nvfw8z
zch{!K<_I>QuPDC#I7^7p(j01yLFdN3>g8o05m@t(D2+T6h9+f49TrpM!xcc#uUh0M
zCZ*XGM1FvVWL^RDw-S);wUbSX<|figl8>x{5l6x?IY0z)t{)od|6~(nfm9<grlAw8
zaO=f^7+VQDOl6bXwQ6xfT8H?upcN-X`SsmS&tQY#BQ(JUh?g>FJ(4(uxY6&|o`^l#
z*}>kw<1kCi<N@_u{7yL~5pHp=RQ8CbC_Yj2AeY))1joL9Cffcig#Y-KD8-=4j^{g%
z&lPaXfz{IR#v?a!2<|_ZQguTN?5mAElIB^!c3j8j;E@_6hR;`M=xq?b6@UHw>q;xZ
z!D_OTb#nt-x+S;LMX`rn^dTM#2w5aZEq$G};1Yq_Q{=(7ZN<RyHe)><zcd(}c`=|M
zEe;!LC$l}j%0Sm^t)@FJ(}ck<`rleEPGcu4&oSq3u;B*A*hK+7R#55`anS0J2ABGE
za)EVmkgsO_*eNOsbvfbM<(Z=J#%+;u<OK`l@(9ab6=H{ascQy0$hZk~b-6#Og`vvT
zdY`CS5ki|@j98_L0{Q9>MxjTtsQ;Mw<mDn0l(-r-FLx5-yHoe}(;YdWl%JK}Ul;L)
zYL{s*2vNbS56WzkC-`AMae#pXdCwPG!f-Rh9Si*vWTcGpu;+UMeLJQ2z}R4SARw0w
z@=gv3ovPr36`8(}Ysmkx^0j<PD1#RaPICDijPS#&zt8^G^N>PO*l+uzhdfZ?lMjDX
z5f_=v?p^jC%8NCgh<x3F{{OhMoQ!Uzf%6v%LL<CsKp?Y-I4(#W@<o=b!u3QUdBDfE
zF_IU;E-8CZqW#KW>q)KYHa?KM;vXO2gM7YMl-FLav%!K}_g?NE1&pnBcdyhU{>EJ1
zz{yeMDaxhV3`V`<_5K8A=ij8DdCtGGmmPV5Spo>TMVyHD_3-SCj}pKTb~>s7%}Lk$
zI}1-{NP|{b%i?V^)F*#T&&0HIfPLCD*jlk;f<f=*7ID-^_Psp#RPqELbh(#kAC{nd
zi9?ysYqj45`$GNWFOCX9ikMeGlO_%BOZD!eRLD5N%{{%ky?6p^cw^hsmnR6GIbl(j
zQp|AgC2d$x7%K!_KRPb8#|=RBmhs#96^vc(zs;v8$33~%`7A_N5@gmVvk8^R3pAZF
z7=rjdj{4NGjoNZx(XaXRVW2FCEQHvv62#zI#$jCGMP;Bmdo-^zK@>Rp{<NKSK)sv!
zVE4EW(vZ;6US+F+=Fe<46Z5-Lkd^t^tz$<7VhDv}@6h*^Z}@10M2jedj~u`58;?Bm
ztd9hh_(b6FZTPCee~3$yKjTEv#sXD3F%wIUMEJ<jxD4$8CZKGOX$UPR2G;^X=g&<%
z_+g_`n<8gBrp5Zx^lLNnR2t)}hdaEmT(c#VC&~mY2471QFbNn-u96ZO8^vZGK!N+M
z5o|7QY9jbPH=JX;Zhy}K^?zo90_xFoq<C33FCWcSuHOC4#PygF_^RDC77$lS{)eNJ
z)ruH&+sr)r_zZa$POMEnQ56S)Yp0Lj|2~V^&eE}5upx$b0iT5re)537wt3DSImEwU
zxSdQ}wn*sWDEVaDg7}NoqF2{F60kBmu9S<<o)K2=3s~g-T_Q|T))4y|A|E8@uX2fH
zb9heryy0Ph75u2(Ewmf501x}D6`_9sqHh~`_y3u}a|XwEP1z=(tD;SO`M?U^UflUL
z`r836SnS*zC9#5x?4bVWH`Z|CdHRhTTlTP#>pvH1<P50_sVaqj_OR)#Nw9xv1zoX+
zHtu)qVW0B4Yp1y#5K~NiKG$LabDU+Hw{jie)#-L$jc^lqd6Ktt<f;M675_G4{cZ}*
z(F#8*mn?xV@OW~}k`shKe*e<z&=FWG9}VD{rr^t&uCy_4gzlTPZzlXrVEMG*klThn
zym&=CGSzQ{=2@ykS)dEzKb?b)L>j||$ieUJ-z{LkJeqQ+*$n=j{Us4PX9(hVm`J@)
zKfNI3*$b+CDOlgBD@dZ?hyOA!J&yw+(D&*R|B86YRZX>jEG~+|ZM|RF#b$!w?Z4|$
zeN7ZrZ#22ov!Z)|3d#4k;b@-IkR@62NCd{RD~(pJ@xjWA#I<eY9gG>Gd-kMX8pe9w
z@`RI0zypg&iQA}`E?&Ytc#TE@($5_@i&{t`&+g>`%cn}vbz`NLlUEUR@Au@?A5{e6
z_2rr)v8dN_KepE|R26R9b#6p|kpq5;B$jqwRhZKu&QwP|1P#Gi)l^|waLbAAn-7(T
zqedxzh2El`NbQrvLk-m5K4x;$LIU-<#)(N;$d#b7TA$#I`uKRqs>6;fniI&XCEnVV
z1ZlU!CenAZ(7kp4`PFS*crLkZ9kzm=AJsa`smg6kFFV>`!A=5RJl%~PFFOKW<;_ux
zH|XKF;FPYCGuj7y<}MeH6$8^^CZ>}Xyb$l1EE>-*10sD-oudpCA*wK6h|EhC;(TiS
zm-FQyMCT<pPw)~(>&z3p7{vsH^I!c!vJS8}yB2DushrUI<m*BR>U*>Q-r2d>$qo6k
zVPZj!^l;y022agLzr(%Bgai-d0X;gi@q`cMGDB?TnC(R2`*=r`x-C68DP{yn8>@iE
zw>m3vf7FY+BEcds%?RYyUf&u}PEXq6Y&hYqFc@0WcF$i%efSizynf_s-OFF*q^6(*
zT@&n__8{U*NF?2SIj;oEMsA+Dx6qK2Y$>_2g%hf7$vvQVP=Om1_nH6eRs^oF2)2_;
zh^t*VFj&CE2frFmj2oi;@}3y$h@CU~U1Z-}xadI*f;|Nkk@aM-WTy5q82Rj3g9=j~
z{^o`l!+qHaM_x!YJv#8_i~yvwxK|NtO2VOQ<}$qu1tj0TCp(hE4mo?5mFM_LfK+Cd
z%|KTMVl|m($?vXX6b+U&#@`SZapC;hyVD}@knStBL=rQ4|NMTJ|2z{5qnqUniQUKa
zYMJQr&>U^+YC~K=qX@WdcZA(nmWID;t|_iBIN^ccv#$?Kk$*5Q<ZNj_`hIRLx+P~b
z!A?o<G<li`)Fl2S*8L?6S|aKzeC&cSR`T#eevuf^lRy4+`9K7!%qyakb>(4@PpPY%
zoD)9F&)V2!(1EX_Psy`mhnTvfzb0=N59%59sC9>+{6prsm<dWs$QpDfKKYvhoW3eW
zE`5}QF7Xp_!fwb**XbpoSs(<))^1<q%svo^<X$+yJ~b%NU0>>5oyD5k&W>rA3xmer
zAC$|;yZ0(*{5emW7(9NWrN(Z|0|TG#JN}hG`;AMdKgS?mRr{Pq8w<+4r_C7>{7#C)
zB{PMW-@--V(>`3uilBj;gFK{Uj6ATCYo&B*6LCzrj{m1Iw20hB%av7Ghy%-Zox$Ov
z7&tW_GXHmV8}pkLdD8QKnXox=(f!IvT5y(mpy0s43USRneHCJ|AeiT98}*VFNMGyU
zc2E+A`ZMN74Q7d8?#QRf$~?q{`Tj0etCtNdzh_;HJBPTfa<!fq$_+jXS2ERMMV`r#
zh~7mudN2`4Z9lD#`XynO`$r;KLG0GsKeobrfN^(ROYIPZ;*~YV<y*W!JU3oni1tEf
z^sK^Pds0CB$JOp&wC~=0A%DttfEIeWo4d-+(ZH#V%2IQEQOFed5<4-%1yJmjJA95E
z(waQ=`GV+CUM0Sx6z!=L?fg$#aPh&YWSc0}YYtGBbPS?WBL&L$R@tY1qkilkMwjmj
z-w3;t<fl62cwtPh*g+lji0SN}m(VGo-?N4#>%kH=PzY0m^9t-^qnnG`7U>iaa&pT2
zTfiVjs8|qLoIu`>r29{FZ_f~B8g7nzYm?#ri(VpR$aZJV^QTyFLjqnFO5_0Io5X4`
zd)Ii#fL7D!>h_*Eyt%oZbG1nj7#UATX5Hq6^U9^qHBe8a;%iqNnTR-GO?;z4HS%DX
zkYG1y#tqE2FKWJ^9$_3`fX$l*E@-weE*srrhpxi6e;V>x;XuWDZP}R{j#2J&UPeC1
zxJ_}Qv_&GIBee>2G+~DCQEOVYj}Wi_!AHKc9YWwQvAJi7IQ8v+J+BS_qXf;tDuJ*6
zda+wODdN>?B+x2l)pk7?^>BA59%s&RfpgQ%N$oyPP>{V6Uy0^s<=aC4wg1Nex0nK+
zob3EXNRN5S%)$GGz)XAWJ`w7Trf*u4-{ty+vHp9sCTqKk-Mo0yu=Kx1?DqvbMV=K3
z2x1%Y{na;u#jU;_t0-K?y54`S-KKhj6+Cg;XWE$~D62IkN7XH3d?(&1jkphC0S_{Y
zU3I3hj{{0e!ffd36Lj@#%PkhrxTzUcRXsrPf0F){>faLf;K(;_mJ5@ZHsz3p$N4ov
z#eXpa+&QGUe@8Kka^f8JNk~04bD0B&!+a03c{coLNv<D<4Gr$Jq|HCokKPYI?w#L?
z`A6t4I8X0rK2Bf}U$1|`{)Zq`z-%(QL=Fk`xX;OBl92QwlDx%77V?Jg633iog-(HC
zde1F#Si8#FexZ0DTZ=PO?wp|k=L-Y)#{&-Jt$JARuR;g$pB|VWMhp?y_GrW7j!;7T
z-N)X)4pCldn<&5HHOlFQu4Nslu|bWPSyDUNPeF8HndJ=u2);|f`XfjXMnB?xTWOqd
zm$++dB~TbX%0A%pvE>Dq1lePQ&yjD!*kSrx8WDIaJ7#vA<ARR`A1*FyQUUix;zBjL
z-`JI+vz6{Sh#!1|+kAGH6C_xll)S&tP9QZi65698Mtm<5|Dmt!Fj^S0aFc@#wqFmk
z?tWng)0ceQRptVqSN5j<@|FP52J!^`Xki0k6|3QTH(n62KN-4Kj=rDS)^eGMkFVAi
z@aAU}7f>|X_f0?Az>F?AdyFUXgSqI0$+t-bcqDpLW2=K0e0>x)FPAJ~yEKEJ%5O5j
zcRv@K*kC?j-?_!h@QVY~o8BpVxv+vgA7#105yY!K`_qkHMi7pbRy{u+N)Frlj6ni=
zT!_Pdg7v2-BaCE`_erd=LRX}o)<?v5j<J^8*}uvJx8`;KIj(8IX~Q(R{&FEWpcvlh
zqD1>@5}$zO9$vVuCF;xSBn<zf=)B{(dfPZ|X79cC-g`S2GLlggG7BxMBua|1N|7Cv
zQAXM2CuQXviclexnGwlWWQ*s1{_2l<^-8|Zx$o=xeBSTbry>tC(EO85*Q>owKp6b5
zm)UUEpq!|oM3>14Zio`NCAW<@h8q5&LqrYAnY4D_KNTztj#l?4M3J|5s4hsfP)H7P
zg#9i$+|Yt|TRM)m;;O)JW2!T~Ck~41d3~eV;=r#ksV5^S2Z~L_XTHxUf?4I8D5vEa
z?480PBgKQ$*x~)I0o#QcbYd?UY_pufv;JmZw_W~<?_Z-n8jSXfudN=Y{(7*8YtHvJ
zY4(1@M@jXzf_=9!E-%NuXEeX@-}m=;RGoY9&sct1>yQdwOn;FoEATg#ZYJE$*!l|>
zR5uh-Quu)f%WE+(@UsJ#TUVY*EDO9oV}$83vq2Hp{ENI_6oBJbYu?%KVdcxJ^%oGA
z``T=h)8N`aEaN?`qcpaFnVq%@kMP{bXiQzt|F!&!{ruEw(JeEGC$3f&#*ohA6UTDJ
zM+(}pY|$m#rA1OAGG_Em+vyoBRj#x_AZ-F?*7$gSa9|PV_34o5GF-*e_Z9ckg(vZf
zPZw@C=8a>mWNqu$g4glT&=aj4`5Xk_E2qkX!hA%&aA@x!1q%^b6+LZ;NfIG5B&%HB
zTX?qOi&N|2i+F&ZNX?;B%XplLmm`-D@|2f(<u3#_;O}~E-Z%cYimL@ZX=~H|gX`y)
z`NajU;tPLl+M`!zag9jx5mtTFKQ2oD&k=ELElSA$Gk<k}c-p_Ae>jGf_&nRvF#ds+
z_?2y-zqo+rdDWLU*luwXmZmJWj*n>xmOm~pE;exxffc8*RAzEQ5^P)oTiA)qDL>{o
zg{X<MF0Cbvci9MK7q_&Rcc}@Xn>)**JM4sKd)R#8M>fKeOEiaVWCH7OT4(%5#Z6fC
z++dEOVIu5|T_zLH(h|kkL4Wlm8bUIKwQo~W9K`ZtTA7^@Kl5#>UW_CwT#1bL2?!L1
z(A1?%kH-!`_tW*4_q4@<T|0WW&|d=XGA*$jeIo<4l+Qf3q-0@`CVAXomKEktUphQ?
zTMShH-OV`dCk6IokE5*~$il<w^z}4!-YSqdvU2C4I8?M*$lRq=19^Lx3Au*ui!3L4
zt_p~PPkVJ<bBqXddGc!)Yl{K<r3(!X;}W1@<XU2j=0Dy|0{tqs;=nxNl$oj|1FwU$
zZ-g3&!b(I=>+xfXQ1IwGUo_&e(klvc`i7z2W5^IkP%z@3M0Qj*T~~tiBL>qOzB2Gs
z{%whypeiJsvr`!vm4O_Vw3<y`MYumoSJut10Fj3^{svW|eDjN#4+?s;kbE)Rg3OWy
z2Ge&U|3mu+qo*gM&s{_3gYKSAwxfdJn#%pqKaUqqJGeg?v`6>ZG|^}J0X)DHR+;Dj
z9}hhI9rbVW3LR{n3RDtAye!R9wKMwuDEFrQ*-Y!P5FERDO!*w@tJtp9*kFN@kXi9I
zYkooqOmeO)7ie(8{dV5d>dwetmOY{x`IQ}PXnDMK%LT#zIOLj92?5XO2uadiUPyS@
zXJY-C9cXju^1cNNfyBXDjUF*Zh<(^9MYkdV-of1&QALPb*^uebZNUjgWh5N#++hdF
z;gR;T+i2dS*)pj@A_f<{Op2Ov(VmK9i{bMZ#HIg6_NHJ8alBahZD)%q2<5=oCt~WG
z*d0ZCw}=H&A~iKfwZ;D@9=QKhku`b+o79nha!h#-b25{@*BZQu*90*wJfm61o!IuL
zgF}{aO38OQPJYO*IZW!KYKML<dI~4?RrYX;(%|UP7;0ko`PuYsCK^J}PyzpbmWlW@
z?%0<=P!h+YZJ&G&XC=;53~*DRpIgo>&d7*KR-(peB>y|#2A&<*-q&lei_e$$9oCzo
zB3=!j(_WP4B=SyYDEA;<!^83TO5q|lBIhVCy;2S%A=lA-B6XUUNS@{^epbjz(9qmE
z-uF<5IFMSK*egX(+(|nTbM4e0y#Jn3Tk=_UV(rT69Q!Z@(WHFwLh>F9VM}Wunl3|5
zBpj+_@a>R;VsAcDVZ>?Fn3OqICn^PJD636so=Cuvdjh08Loz6bEZfMHg7}cPFAYbw
z$wGCc=Fx#(X>d~i<=)aM36f98V~2}XpjXsq^S`fh&}6J`p?ebbgOuOu&P>UGN<+y#
z9!UvcQT@-=l|d42lSTa;ic*I+oN|kam>AGNCmZ!;<R1=Qsb@v=B%`*^RC6Q9YnvZ&
zqG$m5$7jaRIc~|qiyqDc`94Yzd*5j-l0p%F&GlDU9+!in#XB+;x!RCe%oDU;qyZsh
zz3ck^da&yKB9pQQ<&OULNOntTL!I>Ns!zS@P~o;AvJ<8a^n-+D9O4&s40LkDYHC2n
zsirf{y_zuc*QR*ll`!guP_MKguVc=oSUU^Uquf%8`&-@00mow!SPPI3`va?MEiID>
z2!GeORU*I(BJ1K+s&S}4T=h72>^CRmE_pf~dc+Nu?`rjI9*Mzw)mDY9K4Fj$sj!(r
zzYdkFHE@uL!TyIWv?4=4Pm`CPNZk^F;5N~#bDP5OQ~kAn`H~>;bY}k%El2&?muoRJ
z9>S0?%c&=Yc;uH@xvsYk3W0-Uz=LspKG3UQcXVPAg8I6jbSJAt;Ex2C`zv(;u)ER3
zMA?q`B1L!VyH?S;WP$cjVJ-{M7vu;=Td@Hv=|N5_Wi;>ZHZRkw<b)M_>XX82$QN-h
zP<zZv2tMa*l&>WS!{ScS{C6@LsIt)d@*ACZjBIV`7?mXu-(uCkVM!hmWGPSfpdJzT
z_G7i&XTos0k~Yp6aYP%pdMSiaA8%ey^lkhpZjk%baqVF`9XRou-T6C)xHnlb-M@-C
zp_8m2>v#4f{-ggjqkIN4EGpeURldp!{JFjQ8Yyf*Yg~VkhnoY+HezYonMh&j&6x#C
zlTqAS!aOQof)gH*=NG-*6o3ycrzve-@qvDJP>?I~g5Cd1X!6r=fU?bon<>r$b>~f%
zzaefP9ZLeq!FqnU5yKVUow|hEn<Zax8)gHGPG9-I<1ElNupMhV%MPtt@ix)CWN?Y;
z-s^z&LA*s+hJ<X59{RRalNXvv!Q_d$?k3|w)IXG_O-4LdP60Z>_y6>uWhqvRCtDR3
z#M0IOokacX80~TO1R<F87AWG37KfeAs*s@7Eqtc(=h<Kx9?-0kp3ncq0hi+TqALw}
zz@>wtt<G2gn39#9aufEjIu%KY3I`FmEOm1|;vM1$23*z1JS7X3PWRhu1&~*=c1Qm@
z>Z8-VwpXWNAH_M`&Ye}^TE?`=ub-Gfd?T8QKOZL1=d&b>Q4HJWfbU~hD+qTED0lsv
zeNjpbX7t|Gzn~X~XSw$*f@nFRh&hY<$1!o}q_UN!-IE2`Z2d203NldXpL({+MGWNG
zrBhv#Hn7cYZ?>Xq=w3DdsL>hqXNNBsL>i$yuEae@pO?OfJLz1l+cZZ788o4_W@pj<
zCXOTL4)O=hz4*3ufq@&w6TDtLK=Xg8y_b!d7$Xrs8R`GWU=5?*c3iC^We29){1J{-
zsGo7veg9`a8PMo!1q*y-1}o`Zj$OoC2#St!p<HKzM;F*_X01M9MQ*~j0en1QN^>mm
z`+)__gZs-b%W*E)QZ;!uhInSy#|>^h?L(Y<{t2sKA>`Q+TwE~s6NJ=Mf0oI3UQktf
z)9m8K12rCQBC=nQ$7uU_;|p&l5S?Sc@0!B}ex81d9yYXK?k1n7kiret+3m_+Z`j~$
zi(G&vJv)?3Ra8kd&Eewpoh$n6oWP`5msx+73S5U>f8<9}fY;5Aq~$t(qTzC;MY}u|
zk<|}_?KbFqmv_r|P?MZ+StlC~Rc0cL3+-Q5^sZnX8YdV|a2Fu%s`W?bJrejhrEyjU
zK{=TurzJz8mN3l|W%15G&>m&=g9|n=gUhK(eP_N!LR6QA)n}59V%N=7%mPhzv1Sut
z>30?VIMr$}<E-EWR+Y@T`~`WQ&ae^l`)FSE>GpF|maHA@tJ+XlV8sut=gQASeIr`p
zS{`d+XI?c<qs5RK*;kEw2OBirUmnM=r@^1EKUj$1&ZLurT%YjEE)TB#4I9Rl&bDiX
zru@W&&2Jammrh`_-;F7{ySuOwTBF5$j~0yLCj;HrTYs_X<>|!oniPEY@MgdXc~U5o
zNn0{RdswYQGZb?-48b?#PsBM>6Ig}m&#nAA@KN$|*X2BbU%weA5)5@fa>Qos$5E8~
zm{_}*Evf`jrxlu1eAOWSux`?&1rZRs!z(S1^0Xej96})sDj@KXM>sP@0_7g#553mr
z1uoa8g*T<pKF!eLh+iGzEO)*CI%lK;&cDnDn0RzS=9h{Z+kh(ADk=`DQE0%W2GKXt
z9g+|-_Fl<9PZ^TW-TpzMrwmpy=V~^Dbb#lRRDM^M3hV~y=Vl!Nzy@9pU1v6iga=bb
z0_;YR7t>%-eNhWa>>Mf#12jNdYtLFP!w?=gmkIvSHipi9DPgN9BQVK&b+GCmfX&wf
z@7!keAXls?Q;8MjT4p6wH^)&9raIV)FOv&0hSM_S5AZ=5b$w4(5aM$@=EN?qvB0WD
z_a)MCY1qzwzIbI9<<+TVqp3sDJZ?(E3%e-`E<xuu#&LFdN_XSjbP*r$`<|Qm>L~~j
zSH9bgo@56Owb$fv)LfwQm`QjrkrUd>bPfghv4N&WSpTfQBm~~|C}?d*d#Bao7RB_U
z5UX!`V5^f2=6w5)+cdI)x3;@<@G~K>xR!Wx;1Ke6F7TzVJ`jN2?uezvCp?f7ZC&Va
z3-L>-=y_X_w>uj(L+f+U{_^|XRnuufAUFI+!E~4xZeJAtD9Nu5(~kPX-FD&-uH(ef
zyCw(Cq#9>4zlnl*-8s7c+oS|`zVBb7<N-KHFEr7Q{7Tga-Rh@xb}>dD@%Lkvh~FI$
za@IST1TK<#xE*0+g917&K^b!7JK$9Bqd+~`r9&H@FB@4P#^!q=LjebT{JDQ$pn@5M
z9=@396hnOUNd5PED<inTl9kIW-!7J)nj5>YLJid^g$35kEm*L{gL0B(azg$mh0j&;
zWn4HTjly63JC^z-#?r!%0hV|Y$0)j4q0wl!Vs(=nsw-o%W`|jUxq=~EXMh}7s$_7N
zPm~}*J!Tc!MGn{N4Iktx?O}>We7~LuQA5Yo-q*9AXrMBf=4Dzv8z|&0r`#Rh!<gL!
z+}V0rppq%uAt3_!jw=dw=2a=6^_(_iJmSqGTjiPn@;YR`&OGMU!vH7UwNKyqqX?Js
zv8gp>1;l?=B^c+GfI_YC%Tsi|(c^Nj9$P`Z-}6ypare2QB&u9J@e3zhPd7WG=s``G
z1ZirKSZrXTTb139>)62&v5^#;xPdRZr|60};wy(M3eqBe{g=aiFI<ku!+-G`7Xr>`
z!EDfU*1ajz^Ipp=y=*2AlG{gTmF}y6`jYW=!JA4T^4KlKszeF?Ga2QHYD3=S>R|IF
z#EGoG(_VT112^O{o(k?}N8j&>XnznFhKzgMLj%Sv@ZTPdhCeF@%=<7`rlb4R*m{UW
zaKI)`kr!*NEVzRooDAD9<fbJ^rHfmaTB(S<(yCLUMcfc^X8#?-XJIHek^ZzFC<JEz
zCU~9m*q~pKZD6vJ6-Z=mQ1jiK!1S+VEcL<;X5O?ZP@^)4@sE;ea{Qx)gJo^LzQ|9d
zZyA|xVz!1QuohOGuUo-{HgZ#H-8f(*?eeuJI{Z+3*W`@{+GF3Ay}@!Ay<d`^330wc
z&y5=tG;SJRl5oEtbX0B#!zaVay!sOgz|fO$Q1q=NaNEq)zdI)Z%|~W-J1&U>(`WlH
z1Iv<-ceZm(0Qt2QkJ9g?Adg<NmVNKxPurN|%A3<6mQ3)C%l_(6D-E2oVLtdl9r+w)
zinlW;d7$XAH4|MO6Xds!w5icBz$(93+tnC8_$55R=RL~^PgZ|ia9U@8G=krDt7H$O
zTb}MQ2>XhU?sTulN6>)Ts22O5P%?<Uu$>YsMF~}b-A?iK%)|rUt=G5dNr;NTf?2D1
z0m62vJd1jSnJ9j8M7R@iC12c2y*M<vi?4qCIc#%)0dYM|o>4!gB%*jq!#3?2v8g=y
z*&oVWgzNQ>W46ava4OoQ)N6;)+-CFPmC)OZ`0C^>jZ>Bt`27LHiEm;;P*i1Vb;q(0
zH@MdBzNbn`91%!jjOqJ{Uv>7QW$|Q(5Rc^MYBO}s3z4^<G~2~bu51?{^ic$JDc`tb
z4;dkKn_8@Gln!X`Pp2%}A--4f@?=NM3jXj}L)UH)Dd8S&Y(g2vLa0<MxO|pnAS@(U
zWczirpu@P1;y%h7`#!yJOAx((Omv=mZ>j<uHaaU)Du;pZx$W>878SU3kJ9p-gD%R|
zJpVfpr2@6-uYN7NsRB1^m%50w8r-8KB2S^*UfegIzISr!z@S$A?OlZuP{xl2&>0~f
zeu9->i8<m_93Gn}e_#yiLLp<+4XC&9{hrzItRDDOmA(nnFowq2KGWR<l;;VnJ2HJl
z7aC}-e)-H8LEnu)GVC+TDcA6Y^Y3dxb8MaMQimm6_n`Y>gE-FQ+K+T|pKHQK-Er0<
zKeRyW__Y(E$R{y|y|8oc)qp;`uDkaZG~rT2hQTc8z#9rjzI4!s%4U~X`lq@;Q}^>)
ze4rjgg^qYs1pLOk&#21%L+7i{3Gb8icgP^^BjxqxU;>kTWNdAxgZS@6t^&BTfZa9Q
z1yjWT5FJU&ZGF!LZc&{*r?2xuVB6BPy_7KI_uAJey<>vdD2Mn0$pK7Hv_&O<YZ3dM
zc0OxCQ3!-ZD>Xb({#3Bx=wqwfY~XxmijKRT9B5eIZvTfkMHL6X#BVZ?K-Nrdg0wU*
zs9*f0Iy27&o9<eE^vLHhE7@1c8ukx+FMfxIR|R=tuEo8yL7!_q#fy&v$ax^81oxXp
z{@8AdoL!@0N;n_<GWC}OJM?t<c&mD&ywAp8np(uKkF_76T}SzqLv2`G2l8O3@rd;L
zN6`Sg$A0fb8S>Ls&IGxlK5_7IveO3_)-jj)7lYM^Pi5SHH-G`<Vt$6T#j4y`#lHKs
z31uoEkBzw-AFYr$u*K%z9dsDQ?*uG-d^JJ=^-+mVd5FjL`@Qq3D!Tvl*6JuMJmLp$
z_W#yNSN1Ty5g2SXAp=pjqutjg$RK4|#)Yh(6z%nsFaI}BNvNt-NX<v%*!sc0p7Yz}
zM6IgF1gSPP6#7h;h}<QEWcuTGgr4`|<iC}7(k6akA4vambK+(r-ix!gI5Lm{b3li8
zeiiZ&&>Oi*jdFr-AH-4?(7;^it)!XlbzD==sb4sF5&PHl-t!D01&h0Ckj||PALj+e
zB8fr#d6U2AA#Ogf=>0Vmc3Kl`&+ti!716-IuLj)ZzG9#=$XrDdCk2ZC245bRK=bmF
z!Fk+86i7#Q{Z~CXAmn%1*Pqj<XGOX+LHQo}DCbU!^jAp3r*GoL_P?cov%mC=6_*$c
z(n}7Pg`oTN>8QCPTn@g3M;{sMQ--AK#M+Xd+<@g_^R^w_aD$tZ<JBzUP&O+G-Z{<%
z+41Q;={bVH*(7U!qnQH=owicuev`wg&n&M>b%kLS=l`~k_#STzE^y$8Gk-vx+b?%W
z6h1i>h+Y#!`wHLRm1SE}pyb#;7*HVzm90D{{)>`@b2gq|=`Tt`)?;y77eg@+6^{6o
z=OzVh(PI+2=$;%W@h95CQ51eM*{5DcJeNs*p5<DtPR!6UFC#>17yr-JQ=Efz4{!FA
z8Etwui05CQ63!*3hM6Bte`mAmumUZgB+;%(9Ovubj?UY`o?U-2Hfzz1X)6WuGzh%J
zn|>Y?%;H|bGUnrc<ty%Bbh+Au@%brS&UltS<1s1BHm2;n8JxzCJXh(MJ4Z_JKY7Ju
zGx`hHE~kvoN;p6`XFlEEc3;EEBFt#dWik@CMI1Em=WpQZoPDYbqjh-X#D$o8>T&$>
z`Dg$BOfTbf?56YKq0B_Wk#Bz=mXQ&{$#mz{LP-hw?v+{TbW-AExOq#w#2!w2RQt_`
z=YR1;cN+JeJQCtldVjakqZa&Xhupv!19GByQn{u6&n)gbkfB^}ypOj9gao_pG6QY4
zfn7B<@`|t7`HhBA5<Ca*ky@@!Vc$lvNS0q*a7z63;KU>+OkGdU`O}HcQzbtYAKCxF
zp79BqG@-e}%a6w<zsXWVx<~1Ex+~k*XuxO703})i-~ADANtA_1do`5l*zya@KHT%L
zrf~p^9}*le(?=X4tpA>t{UW9#X?pI*LpC@`T{Lz(o&he1%s4z>r-o_QywErb#9^_l
zxc5tp4ywt#Ozsy8gVg)$r}pUt;D!}D4XYU!m|BebhMnYryWL|~hZKc@>ix~nU(q=@
zqJ-yRzTX;_6%pANxIzg{@&T5TAynWj^Q6Uz`zO|c)AKN)=aIOj!i!^w`>FF;q<Arc
z4lcN-{w~=RgKtW9<Wnh%F#Rh3A+;DE{1d;u*o*uo|43-_;v&#~=Rv>fOpgN0E|NF?
zJShp6t_xi}D#Z`UX6_RsQW8+SE~0yKUje#@S=DD+Wr620(NO1#d<*xEBt&^i!HUJR
z*G^$d@I>Mv(yXY#``zUO7aTPazgM$C^t2iTn1+uDA-|WmhQLH)y*5Pl>hZN+Q3eL`
z&e4o!b;t-04$|?|1e?J1S4KhxkdVFNu0^5?O@(VGA16pbk_hX3`a6_I-l&cnFh|~J
z(}Be4J$29@@A;~sCI_RvdF3CvmEqBg3m^JhRp7vZtezhaMZwj@k(TnJEEKGio@%(E
z0n}UOp{^XNaJ43?IsU;Kezf$4pH9{a-tmj%QAE!KZe<?lf612&{+QX5zV-Nv-Ilo{
zaD#>go<2TG@tYf+^Tv;A(`d27mW4;Zwm#}{TX-Ti2L%j5zwd<xH0QSC{Y4_d26Rch
z>EqAY;gQkbzx=2_8<79Dy5JQp5I6H(%jeO1;-=<_rkVqYuQ=c8J;@4Irzm?E;_I+Q
z2NI5*6H8b&b0sB@&n#x}kc7=66M1q4YpAT5Ilzi>rQAl16Bb8LTXnQ>0%vrsm)#}_
z+)vS6xP+eXX1|`=ouOF67Rv4#@$6Egyzi0e#0YlyceiTy1IioT`a`)W8o~-5CwBwh
zS#f}2#@Z(jOHO$2SWk0Wj~YI-uYJ(h6ovP;-Dgw~FK{wF$xF~0`5G7WDj1CfAjX;g
zAxo(&7<+Ye4Kt#@U)qx^(3AmuAK4ln>EMS6GUw$R?|Gp^v-5JxBVp*Z{-nL;iJsRw
zug}{wq5T0D&+=s#7KqQg?$F0g51-<mH>;<keO1Be2_GXgk8t5;O+GFFrO7M{Y+tD0
z@3ia>sTUg<T^9LUwL`41cSzCC@F*AZ)Hv7%s7nBwx5d3|#IMZHFYL<P7lx+^*WwK~
zYcXB3->i|xgrG;6Je=0}2j*|$^_nDF7{<yS%ac7A;i#j_M%)lT9C<99+IEv2@jl4;
zKhpEUVd^Vy^|{5t_W>o@0Id+5ZBPC$_B@&+_4qH`&&S})0m&)l4GTEbHSo(-&Kl;f
zZ=U5jZ3N|^srP>tnt?+5^CZnsb?`0~`Ni=-1*(dlb~XG!_k6Z{RNht^kZO}#3#PiT
zk;r`Xw5A^Xl$4t2o-hFN505U8@~MKv=aA$=2`$j?Xe@3#s|UT`9$lF&QUZlsS3|=|
zV@OJ>u6@sB29$j@lk2V~(D-&wK8nHwu$Y%6A8Ry$C)If~4*mV0rQjZk&V$T_wS4RG
zIzV;Hf1mk3E%@L|r<ydN0^Pk6ZAAjQ@ZsZatI;nSfZhCIbvjTDdVAMIj34QM_va1b
zGkQM@e0-Ty{aPIk3}#(V(L;Vf59ZMLs~W)dYA0l+Lm4d0ht6FqeS=R>Z%{q+TET`q
zL?5%SQNwP?nREZ=z2#FaK40Jeft56ozFk1P%G3YMCf#i|u-CaC&OEYW0X2yNvohNr
zJV_xig6zgmyrD+AJ|~k7)UL9fgkE&-uBGqu_u9j{BKdVi1W92p@G^aA&R;Bx^{Rq%
z7Y#`BJsUp#gbGS2Pqr<w(ZZNvcat8@1dg08Gv?{&{2{h?l+%C=CSoeHln;@?)~-!*
ziZm+(jbFd})DPvUMH$;mhsa<fGsK}jmmF%tE$CDwcCfMwU&0uElENMKXa{G+6S}%l
zBdnB90SX6VJi8FTLGEvt!N)<=SGsIF8LG|!@h2*5=akstyQ81+gKwOWU)@8oQbY=B
zY<ef6QV&3ja7tx=67rr`ef{IsiTFu*+;t~|5$8dzQ<@P+`5BUy)|o&1*vOpwZ+$J)
zAF`&5f6~ndpOdvY=J|&)-YVB}rNAM)Nb^;U>qreodCFQbN|gls9)(-fUZjO)k^R+x
z=v6$^t*O*YyAQuJAY<C_;yWgBH19Fp-*wzZkDn3$w~p~0K66dVU<ngG@Kt>=Zw<Fl
z_uo&o$MI&>f1*Y!;-K*HIWE6OM(7?ortOmW3D=aWzP<Gy+JD_UH#8%)hpj5tX@m*=
z!H&kgS<u()#$qL+%A_4gh=to^4=Fw^;-ubo3-nh=fZF8qS4z6yn2W)4nxT6iu&K)l
z&53uu;&)eUm`*ivLk2xI_ozY~7VVoRZNH)%Po4L4bOtL3^>^<0$#cQLJvJ(BA2BF0
z?K8}EQUd1R?yOnIgn=<6yK+TU4TMDV_RByG(pHQoxOJ7mnny%k0_8cUo~BoMs;Yyg
z)%6Q+S~a2fd&#S+Dka3rTX&f{%n5%rkG=nl@`K4;4p*aIDnrox5CWn}gC^q$HkTm|
zMQI?}eHc9_HaIsFmpS2?9`}?d@?-8LS~7VdpO5a>HW#ySVNk#4a_p~wB8&%KV}GG7
z4X-BeZFw?lL3rs0&iB96VU_2a;8)~#^w13!v|5)23r)*FY(@&6Ok+1$DW#!hs#9kc
z?SUR2a2CIZ_~6LvV=gpL4+$NXFLpd?@$)~2hR&c~!K#Wy__x?9JT|DyIoWLqD`;Sz
zz`w6!Jui6@DQW3o_8}GL{8cKTfaF<boh7U!=r2p7)EqXT54Hw}C$T|``o{%Hhwx>#
zRFiAT%;4Xj&~9og021seyq-t*u&gpgd+RQCXftm;b3%w2yzeC$=+ZMl)ZOGm@x{Y<
z``)bL@^K2FB#g3LL;qmn_kx&|uaQ8Sh-$+w%4zQA+uz38N#LaG5war<3@|4$RXnm!
z4l!zbCgQ4_*pT~c1}8}p2zcfgpW?*_E#JsAgVV;bC|(|8CPiw%UB}h_-e!RL2`{Va
z$0)Z>`tj&l3nsu5S^ds3@Pq5s#x^<%F|a%nzi8Vh0MFlPl(kSTVprozPGrWBLBiMv
zf2H%}a9d(~+QJz1(bG2RKjfi((#8FVV$;9a%zk;dG}Aw9^3YrERdY0dk#F*R|C<4N
zik5#mXrnoo^?w^z(ERhi;Ql3ZeR6oHW%%X4BYk)+Nto*3KlJq_Uzn_Z#0ScsM+_qW
zu!6+v$HVTASfH$(nyn7K@B3WZlqSE6gR^SVdu}prnBEPE(<~>4r{^qxi72x}|E=r4
zj_`}Yn;OoL$8@OovmWBAc$NdgWt+)#OBmr8zj7(nv<OgW9e6TSF^*v+Jj@GiTyT)^
zt+0qfIRk~!?}07U0J+gV$IK{TukYfy;_$y%qFJ%41<L<pVc97KzPwOTb7<(m4K}EE
z3loui%?CN2^9J&0P8lbud7D-R<${CBNFO-}!93^paJ5k(@U!h&TK7RdN|Qr$4gAW$
zsz=?Ci{7ht1!Xt+5vR3~)jmLsmJ7}W*Wk~6grU*YKX7SS6q+xqKg_2ThF6m0)^U^Q
zzQULRY=v4-OqzPBn^^*Jc=AMUa!3KIaoF-5Rm77D*DcD`mxBzgVJtma1b!ZG3Rkx0
zfld+<_eXpp5Vk2G#6ZIjHD*CF6^J`eBU8fM`J4|3x86IdGQ!9gDf92Ru`mcbhhnFK
z1tCr6`bO7BK`{I%uvPns12(nG{VaZRfD+5s05@`aVC?*7Ks8H2q?l7sDUYG~-CKb#
z=9@dX@rIxKjKDN5EG5)T&%K6&9Ua3fB{Im9ZB0xI8^@2FIv^2DvWDFfF&NB^-NI-^
zZ@7F&8N(GL&SFmPmH1ubUhNMSy;wTKT~>-$>sVQ<v|40u2bMnVn{)mx9bC`!Jg>Z&
zf`<i_B^|moi_M$}I(<Kr7O1SA-fGk(gF@O9V{xr$A87m3&MvSWZ&Ih94y5V8#>96>
z1T?d;GyWyUG{t|gA_d)a3FdKZ%0e+?|Nbz}V;jHk@3xHTVF_)#xy(@IcF&ZWiW-<>
zoIA56NrB<S<&1MOlwjs+$-t$+1pl;uo>>2f-fxcYqTSR<LCD3Di<g8NLiL{~b*#<c
zpYFw0Wm)gz=Zkx6WS_GT=sNsK0CC?^E+_a`Wik^yF-;D5E-L})a*Q3<n2FEM4b&#x
z{6zAlVlFzIjku9<x0$hkli+7mFJt;~fOw%u%kQ{GPdrc}HBYW!B21H(Uo-Xo#?P~M
zr0)c?5OmD}*$LU7@DO7a8r=>GV#6y)?Q%9F@x7Fz@1hDbk#=vgbLKKPQLIs^E6ZGg
z4NupU4-dV=<ze%Xm+d~zv0!=UQ_U*AF>?d{I?dxpNH8xl<mG79xbP|`mYd*QBZ*1m
z;wD_is-xCo`H0*Aud2*&E`s-g<@eJp<itTH`OjaUvJwxU*{oQ8;v{-c>Ylf@VIz#D
zPpaHG!AwjT*gM~x(}34UES6s({z>PU*yZo#s>nm0mdDki3w;Gzvr<<yKq8n$agtIL
z`X4b4I-(r;oKUgJp=L42i<T5~eTsOhITEV9$!I^UWOzOPx;lK+WZPK3Ee>hE+NVh5
z5a&)OHc72e476q*FODip!HLIFUhj}+X!G>f3xAvdBo?X%_a~9BVl0BT;f^}gofa9C
z?nC^3vfO`UQijm3#lXJ7t%Er2H2V>yM({T8is^_t;?f0p_?C9+!|TGhhZj{<;HNy@
zx3^TNkJ_?M*@xa&b_4cm$LwXG>#eW23AYCL+<D3NY75=JURFuZSZl*+uFq}y6vzX2
zZ>Q=Z>g}4Bk`!_;s>8&KiAoxe8N55NzbG?u4$o4&dga?X%D03s))0=rvAL0z2VTvH
z&l7W)FXkr~)Q?VW6dE8N?YU9gpio}4M@tFSMfa0e?pw1}KK$^_RrY{^KJt#<Ir8SC
zgb+mL@DGZi|Ib%P@5}7}76H%kf@l2o!VuDN)$hwYRv@#8P-Bzi0?rnr({8bx@Gt3|
zu5t4w_T}~i2gXQ7$l!?-Pa{zN*=Vfw=~FaU%WfYZ7DRl{l$av=+mw)p>ka%vy>Mzy
zM&Wz5v~bXdN5~2JCc6C1ZVgt=<CK@*kRRPi!W)0_m(BRC;rh3#O1z(wgWb~SHvR_W
zt>+}0R8jhh#e5508+*hGA-un11pd*1ffk$52XsHDmY0~w9YN1Y2Pdja%A&yZ&G$LK
zANsnUXl(pOdFI`5Ui;JUMWOxJ$Ip3UXm5B%V)Sq=3+TF$`|u&ZjY{T}O~oS-Q0_}>
zFJ0z=UJLu1)8|>?*5~;r$1iZeD<`F30X0EbvW}+=8RvnkvI?BJcUG|~)k)WRE@pTs
z6RA$mjJP}4+jQq#MsT}h|JjuW?U^OXICzU$!E4~AUV|LUFREGpy@kGCB&Xtjlom6C
zc(0qaW92SJCFAjL{|OmnYgC>2agGC?53fJU*kgkU>)+SLcYb3^DNc-94eQvL<4rDE
zDGGwE?5(!k13J(+`JHn}mJx0ieCmEeyNmyfc&;+zegM*A3`@so3?TmUbdAWiF4&)^
z74>>82Ptp*XmWeiASf=r!g5Ooa!#18Z;=_ngU$~_1BfI1N>b0m2h9m08X9{~73ss_
zlFOPGx&Y|un6?gOs6*xp`orbgrXX;CtXV!>ANGfJ&vU%f0x?x-6`uQAz$~8IplPcO
zq14|MHr>sU4`!>mPsalB1fE9OubF`6)tqbgeMZ2|-d^BTg8|#jHxct|7T{I07dVS}
z7G?yA8ry?IP`Yu)@3?^uXe$Z^6%T5`ZLv6Cigg1p$o_TK>6{L{3|H!|4+ZG_Cv~B2
z%n)uyZ(=7N>jHi^*<aBgK=p$Bm)27N7W^BJ-y>dRRQRJ7$7p@n%{)EoP{s;JRA!p3
zr1*g1*i*)f7kD9$A+(O8ga%ad$pgc_2_b$L)!fQdF5W69&U~Vl6@Iy@X$T-sbtr@T
z>no_Q%n*3&1RFgQC_6D%oiBNYu^)W2WQua9Q7a{Nf`~__V?`q`j{Z$H1<w}mB5%E}
zl{KF$>On|eFXeJVIX;6&lh++k&RDggH~QCG23Vx&Tz=I~3tq>`sKa!3Fn*ysBYq8N
zp83yUH>4lUkN0{Vt-tX=VWsCCc{@r-xS+MN?}*;RvI{XeJM3_y#-hv76Xh~$Je@NS
zq8#|Svfpti-+;nLUCuVt;1?iSEu4&ar+pX$JKDbvuIrOlA}&s7qe7Q0`no(r(!Z6e
zNx?%$nwDR6BH-Lx`tCx!Fi>1L=JMWJ41!bit^7F^U~W`~=M3^mIX+GFwfMJ)Q5kd;
zA7<f#@vM|wei<p~^%0R#BHhL={k#-?DTE$)y_H?*dDy_`2S?5r=OUh9kQiB+#|Jgo
zb_};256I_L)nk4g*tdn(>c^(|;QXhK##<tPFzuvvg;S{aw3;9mkl8~Hp_c?rGJW=N
zt-Jw;^lLj<)VOxcEDPce-}4k14p_!Lwl@>)U$tUZ8n@nks-}h_TYs875gKqxPPXJe
zJBO1QHuPJiRN;~&cYA8-nUSyg#bI~u1?)_g9aq5#cF<UkiYh)t4Pt&_dtXG-ur2eD
zN1j5cH?evAqtIy$NOU?{MrEo3QwhrFq|v_hYmnm83`IrQj4Q$HG}PcKpZ1$<A%KF-
z`i9dJMz9dCA~#$m14r`e=Lc`eLy>lZ$gZ*`e3B#~=@CIbPcB+N8N}(18Sgp4b6Xka
zdDL2DP!F2nWREt>jxt>5VvYT0tOfo;IZxYf=)#Y!zkgWLbl^+d-@4njI>5pFNs>B2
z5sp>U4Kpwz4o`@{-4F*OaHsF761b%SO1U$BIvX00cU6n&P?#Dl8ZTWHK>6sBbL(3K
zI?q;2Vt2PtF2;SL#rF^L9Lp`tUJ~x-h9q|P%<NQ3^tocVLLjbVR8HjQAC@8@A9qli
zqF4f6SEqDbOqGKzb+xr)a+{dQ+^H9<1tehl!Mx#0DHSYQ_jOy{n!)UxOxi!We!=7k
z4aJlWR!FT=*pT66fOQS`=Ta31Q2tb~qTvJ=bX_Wo{_igpbm_5@ow-K=X&mpHFK&~-
z6`Fufw+eLre{ofpt^W^Z?fW0c&{qN2{2XtRm&gtO-aPtkaYqQI%ac;iRtq72Z9p6+
zvj7}A*VPhv5cQ6Qm&UEENKk(5_(&>xza_U-Onv)`JkDR~uHH@Nhw29zq_@^YK_>s^
z%d>i;SenUF=;3E8_-%I6QeBG{T=HFi?X(~{VK?98qfEJo6<$8H-1qe>W_Tvnvz%!a
zxBo&`@G%VSQG667dzuaqG%tn!sJeW?U#K&*GXMuX(^62=^5F&<hS6%#`<!q!K;S5&
zEC-x_Y_68}4CSG+Me*(hGRVAaIAN17hJ1vTC*&C=;H31IxbPksD6h^pHmTji$~<=0
z#uZyJUQU_RYuVqiD1M3d2NY=D%ls>|>$VWo%C}v!;a35*uR51XGbNy$)Q>l=fRRvc
zpc_>C)`C5&<i6KPj&cZ@TclcD3~-vp(v;Rv1k}%RcO4^L#+i7e>>qv;0HJKwrcrMx
z&`3*IZ$>#4x7*|4zcG~4nz%F{qJex)>vJ=8ZxNrLPF_?qj|^_U-;Gb~dy8i#6#6`U
zFAqb`?CRFs$P3e#p`(MzLDf2Q(2kcF@E)YR@gF7)*%2es<cK>Tv3I3UcpifzrnMzi
zLKsL*IluMBHQ=kS&#1ALK6qmP;a_Tu!LYe1E^|{C21+7@bN$R<Vi1iX9~(o?*~Edp
z+=GyIY?Ez0|2VYEROdE^nZwJ}^j5n@HHdwCOwoPL7#tg(np}0&1GsXcY?>0_VBB_F
zk+lgd#bItD_YwDTP$~PzjwXC~js3A7ML)OH7s#K|8H2|Iz8L3>gP<_xYyKqUFtm$D
zvv?a?fy?+1sp46CFsiW8is3@<mv4z7Y4b+ly{OVFe(E5&e*B}#d-5P?IOY6_4mO5L
z`%BV?{fuBxbE14<Ll5>uvd>L_)Q8Q7y=>~{`Y`UTBJk!u1|PInHu5M&v28)W;Gd|!
z#Oc(qVK}yn89!v^CcoT`*D^5OesX^f6V9o=cNKX!z87^KuXIPb<D6gLBV*}_ksoze
zr3=`JS_<8u+nuaL=%#OB?@e0bbPt8P&HytZNp0y%dYOU9NgQGBSRy4RTHtX08aZJy
zJTh>?hnKkJQOk!lGZRak+b`Ah4-jq2;cXc#%*0@c!zF7K8bXOj>c$mSDk6Exu>Ir|
zJ)zK(G<(E}lOW-LCL3T$ODF^dmmIssP2}_W+P_j~ChC1{?Pbp}5o2z@E>@u&K|AhU
zzY)(&{MZZE<>n$IEJ*Wm-(N#HZkyi{QQzr_1}FXl2g_LqGM@#i<U35n_=hZp#VmGW
zZ~dEJDE%I8dudSqMJEeE?CIUCK152Ce$~&4eMv`H2^w#;QLzy2PU)m_7JZmPp)Wh@
z>m}Ubu>{GO+af-qgt5q7_=nLtkN&q_I)WL#oAYT)q5!`e<#yKkbnyN_plYfg6;vfW
z5oG?40nTzeI7ZY`!ny=o<ETgv#$@sAidYCA@gvLs_3;&EVkAQSPx=9BqGI^d&(;bu
za15Mju~;A@ob9)}r62MVsc6iw){i{1<-sy*sZ2!6z!wtwR1U(qi78GYiko0oaRuYc
zB19nF0s}Q8FR`d!I@AAzgV^zWX{j!T{BeELS3OV7;9rGy=Uie12<GH3-AruUL=7_^
zbzB`Q;Xyr8dexMNux!1`JjtN~+q8s*OC1YfKPIOIjKo3Oo{4$(g#!GvO0BYYlm~@l
zcfyXKKSvQT{c5yN2a;(5*@AByfc$Mk9fV7O`w7AK>;()VAAc7A-N*pYVPaBD(g<|C
ziYsP$0H#(i->hlShm134^{yUA9PPvE&zaZI+<K_T+gMEtu97k=ZCa@SZOYTWq*xi4
zaSlxTxvGx*7FE{`GUcIHBBPAvI`Und3AmJu_PvML&p(%#m4oHa_v|Zo6u^JsRD=M7
z66ko0nD8+oj%UijV_|5YRLh%e$>SmqSnL58ooWSmUF7<U-A)d6b`tjk9OR+m^#JX7
zp(gmRzZdNKq5^zQ%9u2|FEL9Kh5X)Im~?lAwA1Zf?B{vsbP9iJG$%UcJYY!=y1~69
zaaG7a1RRMvh@UY*x*KqxgdHA~Jgy$ZP*3y4#Od<|0#H1IO+;Jrf=jwTr!P4l2x~40
z-Sa~GozR&_3R7&*%^%(rl|c`DCSMrBX}IB6fUpk#8YMiwaK0@ulnyMPZ5PR)zGHR5
z;ol)q98htvd03{41L!uJFBVR5Lx|GMDLG9t2ys!!&|#s6jJ5|3Dv!BfnYO~@t0Fr*
zk654Ye1`JX4i)E=<LF>r&yOokUKp%P7@j_?<bs!)p3=ye3<o(wf7^7ip}a<a`^9`t
z(DZ6$FGPHeoUDX$*JxglJMhbW${G0tPh;1M%Tz&Se7)v5x}ROLD137S<qApZwI-e*
zuLZBp&{a)3Rw!yEagsT%3=O3M$5W$}LCW`6<tuiSx7S{xSXa@28&@QgZoX87Tltv{
zkN+ye8hzJJSCAsKn%$`JV^)Q4QVl&cqKI#lkyAKqDhDCv)4s1e6+pyp|5<nj^7ehO
z)-dZ(fs^JN=2R$WBQ{B`5W}kpg}&3b3VnoNH}ruQg|`?Sy^V#}Yao8YEs6d3d6e(X
z2><arO93pXbF*3mmErxFZ*n|0RbeiV%dqyWHUz!+G*Uc{&Plp1PZGZ<LTApOsD3Rq
zki9DTc+XA;+S<NZYm=b8C)Ev|`yA?U!u7wcesfLG7aZTFmQaTMRyn1$k7z!9E8E$h
zL>(g4J_-Dskps<_S4LZw6(G=ckc_R52mZcVEaDpD2j_nk+B4|>aPlo*PRngZVC*}}
zd)$H-es;+HTs+PUPZ-i;bHaJxUe5OM?;Cs|Sk}$hFM&9gYJ$2KQ2){+F+bq>d$iwC
z|6`*@jrwyOKdKOx7pmvAL^-&0p}ljfall?1WCYCXv;_2Fo5R9O=(Pr9T2S~Dtf|7F
zD!a`N;#&kfJE+mH4PeLT87-`-3)YnH?s%V8g@}DO`YXPwP_u6BBB81Yrd~9pZRSd_
z)~U5Gp{xdKX=IzfVl`msz=zLl=TYC{!K_rJf+}QIy9V<|YrxCbVng@Df8*m-PxNv&
zw(-hTw~+AiKKx+W-TM>fi`aR`#X*q?W`ZfNpfC!}SIKs7wvBf5;%`Djb?2HEF;)I!
zqE*IdubO>{teTSrct4)<RvJG5ld^%&>+ODEG07G#44*&Zg)Cl?|2^Oa{w*5&r@ri<
z;--AdzLJml?;}-YbTS3;Ks)}`A5kV^?Zgl7Mf!1^gXfDc7so!{PZ5_~W5Q0b+?Ef_
zSV27d`ti!D5*i};OQ50m7#&d(A+7OEhnz50((U&MpdxlljdU4gS%{A9&Md2{E&Pku
z^<AM|9>QZ~H}uoPZtR3{!tA6O;u-YKQ$HJ_Cazp>>wCV0ysHf_18(jJ5sYV&wRWE}
z6VG=Ylpe8e;RC9!`c3aBh$rIh8U;-BM6CsW%JU*KVHNFD_?zoDcBt-A&rAgBD@QaA
zxY48i=;fN$=GcE&V%ygkbJXK9_gU_2y~hA-`p@Z`U1;Iq>7DrTZW?%aO}Aj;5gn8r
zF95m))LWnaVo!O49Om>DU3nFju%02Zi0~_4@oAD?_2k8A9Jg>jd&Qp>&Iml1)fZxc
z)`;)9w>DVe^Yg=cnMda^E91*=us1uH{GsZWiu5_$jePUzN)Q*I@8avN5386`iILRk
zrB&>nLI}U9G2(a)US8hppd^|y>^`^4(-LYqKkqa(a>8ea1kY=6OlWR79$tm=Pjhw$
zg9SyI!A49VwCLg-CgU}lz}sp7f}R)rwTDeX!S!Eq1DYo&f^4*O0|u6Ay7aV>=$yon
zb?>a0F<9G<TrAkshKqk$&X3R|kGPt@zx8c(c=nxPtF~7bg1#g#Z<?vYid$^_YP1C8
zv%E_kmQaEBhqRi`-bHzWHM&39vWNq@Y<cV7rY0yH6tlK1HH2|YMYI2y7J5GniEEE)
zf*YuW2BYUyW3#Q?ew8lNbt!VvjcNhk6Qd&O5;YJHQEQfXst$(u?UN6@bzr95<UH94
z#OJc3KeC5%4tswO7dhTAfuIZ7{Xf3zz@Pe{B>D<ncn*=O5m}m0`~K1XAz=*a*rzCe
z3aCQTG*{`H0SrF&r>Yjj>%-^W;JWsyHJr(B%0Bi2IaqF=zYv~C1`eOp!ab3X<kI-z
zu}g^K@$l2&-=neL@Z%~1Y&T?>z^tTHH_?t3ynl<zU*bhPR;h{<GA%*4>)qWcU&Rd$
z<cezD`FxOkaKe=@5j|%PX@x{)a{{Ti=;&KAPH-}=Z!gQG23oc^lAZTaPbQNwxEIYO
z>K9j@Xqa$<@&}p{adKfWzqlwsUx@NKW6>`weOQ6wQkX5n6!HUatHnk8p&T&d(Sh;n
z%plz&iB(-_$Dc>;G%|9p;G(RR9W>??@Y$QaEw2oDx^BzL45cwZrJ-)>i@Cp8p&9jc
z%e)!9+@p$Qq-+s8eOSkb<{&#f`%fvVi34#Jh}7x>QR~==g5tR=$WLR#qGA(u4)K`0
zz9^GCLpeWd%0FLvyYYHmHP5JAVS=9VkkR2qE}|ns>xbIvKP)_t^InW(3C{H7RJ_AA
zE`prY`bvoN8s>Xl`R$<uGNRmbJjm_S9L_-mUG_kJP3sTYtIzfq@uFpcyx5_?m_yjn
zZ<{1M1aI2aPs)xwh&QN2Tkc5@OBFYIDvu(MRQ8Wu)7TwMT*61Ba^nEvL6E1(Qd1DL
z7xkF&w;%BshpanV6%z1R(=<o#_9oWK9c%Oo<)f;;+<AMogp4SAU{-bVfG9!ECw=y7
z5t?(4j4Bi+HRE@#7x5I6Q9u}9)e@iVD=gYUynrzUaij|kA6|XJPPCoOvUySG3Qv^z
z|Kz`O1=pw}<>g7v&{Q<{Rgv)|tY0})CZFmKN-soA-u0e<q`o{&BWr6YAJ^RrA$5k0
z%T80LwvNDYO;0~7d1n~^V_dFBIDuoy^aJ%5?hw7L*MR82@c7U<$sTlXn%i#dr?zzh
z4%@q@>Lm_?aKTq!6YMBF)cGnJ@!bk8KFi}jKVb))cbx02j+nvC7{&%(Rws}c+Yl+X
zaDr?dOMXfn2N?J$u_N;MIP^;<K1kQHhG4srR?1pCSaou;{POS!gfZ_wZC*GIF_-sB
zZQ>6DGt=3O(hVzE)S^CZ6l@Kd5jGXnEJuN5#c2P2(P6}U$8QZ?I07_%Pu^Xyv4)sK
z#_k(VD2L@K>qJ)|3?*tzU76v?<5rQfE5slKX>&Q`hLj>eR<xhJ3$may(xWmjEeoCH
zWM3r5Wl^3tW47ZzDLCx<efSRQ+wGj+vb;T@2=33K#lw;m;W?wE$Cn;O$jE3WJ<6_t
zayEXAR0az0cYx%rWwj)HI7ObLHZKh0R%_ipVIuIkP~nZ)q%?5IN7mH($pAOk8>1G~
zyVn@9R@$<Yg)H;1sg!LA@G!UCOlFdUYMmhN%P0q05V8@Vld245_5M_CXJx^0>F5pl
zOgY32ijaQx7x@O{?W1n_iNfY{8#=Ed<V!i$<6I{r1CLWL-RR3kJ>nKa^+PI3$lq}b
zUIru1sN=P?&y0xM+ru?_t_J1Fk1yPiP(ryyzqs`=6MmowyIU0`tO>f&Lr)mI6oB0N
zD4zl;I>+TW3ZxxS2aU@r9xQiN!9#j{(Y;y~m<Z_%@d{bsrO`VtFQEa$8tmB{Pt<_n
z-}t)wapbYuG#zV9)PT~rZ%)M_9(}To2fYK@_y3_tosBAxfEiYGx=&9fV9d(LJ?uT=
zjh^gWOZz7YihAD7WlLJ{^Xd=Q%^_{L{7L?E*tP-41hgA|M04gda>Z%?Zm598H#3E8
zLtP+!sDFQ4PYXTwNrxl*w1L<2(Hk1Xkyqdw{4aP`74|ewV`o-%-~rylBcg2xmM@I%
ze;YRhPG6C<?raPQC;8u*7Rum6Zt8G-ToQyiujXU+YQQcST&19^0;Z3C8;EAgz{okl
z#vjAOShwlfsf#4txWkkS+!$hl_ceD+JwlhUFbCZ%HMVV>_9QjlmC}We=*9X;1S6kf
zs73z`;a!}gHt3EfA2q?VQ3=$aS>ZJ;oZkE@3f;z6O<Of3QQ!28$Kg@LZ{L?NY@!ec
zb>AlwAz{3b@kfs*qD%m^F5X>@XcmIPWVz^nlbmox=Z+#3;=gZ+SZT8Ev%t5Tzh!Gy
z#lbd}0dIUG0#2MQ9Ib+qFg$R~mE*H4h!`BeR{T)k_J^)S@i`fIS?4p1p<IOQ**ASj
z=yNX8b9BABR}mH^*vl-C=eGFq_;0~z5yI!s+!o~wKQVzFT>j1?Ol1Ag(!9neMp&!~
z#w2~`C5%CoM@CbCh|^#aWaDKcn3SsKz0v*jnoABY9LrCPa81eRD032@8>52?j?)lo
z&mU|IM)DDpWFrgxhRCm*a`Vc<95W$*x;*6QVRGUDn;WD=@Dii-A+_Vnd$@K@f^8lX
z9Wh(EFjaKvJHCCg!%ww<lyIgJX+FY#fCzXisjqLehJRhMc<x8Df={1Z?zbYLA;Q1h
z{qBtRm#P{xM^Ae36R+&$7}bU3iH090_w_tDiHMuqT6rHOh@H@^#mO>JqVhP!^2M9n
zg!dvv^V=2?VzHHNlf77y@SigL;B*1~zUlo#x)j1h0p+iLCU-_+>-V9&Q}+=Uq2E1=
z3hiILHRfKf&hZjg+C*7D6dWL4?yZ+_9v3HsYIcX3$fb$5i8s0bwDJ+AUO8M$O%g=a
zbEd)bjZy@S<rgEy3Nd2jRY1=aofvWcOm|RvxDX**^eM!3Sb)&5tk3i06DIt58<*c4
z5hGOpYDpSN3KNAiW9~oVrHJlYZ+!!05yHyjN^bT(4?!*)uX*c?5V3uS^UQTSe&Y3e
z_c^saVdCR8DiWzgcA_A!>n@kG1mPbQ@bW^Y01<I5A$r<EnD~#sB<sl_FTp+bKAOe+
ze-xc}IG1l5#_hfL-g}RT&~w>@%9c_YNs&>KQIR4MWfNKwB|=3C&(|y?KYL_vA$zah
z`~9n<BM09@&vW0`IM2^XOt?WOO?;b+kMLALT+ynGk#I9YIN;PMH(|8or)O*sGvQ<N
z?AR-yBOEg+U8Qm2CuCilvbF4&M)@#qhL1x9V8Jrro}jQGP-~baq&kbk8;V|uloAQJ
z9MN{8IZY87QcrnH(@4TJ(m&lm9D-n_8}kY1o{Ua??Yud_0accw{?`>y&KLzl)pt@6
zcu=HqjuxF;ku}agv2Zc?^SG{}NJ<Rm1^8Lsq1^lU=w7lZ#7&N!l&vv)FAYxGruX?t
zP;Q1LFGt%|W%y{V5Na@^3PBY9w+hEl&V<z2Iu>OO@VV5TX3eYxJ|%PliF7*P7D8TZ
zhPb_9b9ac=QGVH?;c?ziA7!9ce%GT(TmgbUA9YeRR)Rls`O-wOI`FBx#`#_Z@=y4-
zq|6{chtxK`^G7Kact$pH@ZR|dRFa?Rt<c`WMwhjXviARCB4jbt-twd%{QE{<ph+4&
zt<iS2l#2?Y9}9F&4-)Vv-`K?({!#$Pq(1q_78+<h;xYP>ks0nY&luiQr-KXm`t2kb
z5#gu5aEpE9E|z>v*O5%0h>&+)E_{8x1&jAiSA6c+gBOhZ^nFVbgd&xkg|BpI(V)21
zsU0c;BD`&N9G^v?>09pBSOh!NdsJ6gT$6-B6V|&wkWXz$jADGugC9<l{(Lx!{Cw8}
zi1{uf->w91?iUeA3XiIjjGpe2!TqbE9Tj!7;JAD%HgJj+3MjAMyw1u5FS7m0&Doei
z`^}e@dqgy_y=FtwYr2T3Lbrv5)B$$M@Ah!}eHvi>aJP^L={`faS?Y~L_@Ifout2I2
z@jSlY-l1bgenPV7(MrUjQEz+gi%GLUPi+Ey059TBaFQAIi7z9|D@!+r`6T|^C{;(0
zzyc9vrrwO4U0B)N>4&UQ^q_W_&Stws2^&{lXI|zQ!>%=Js?igzW5QXjJ~F8s1WEgf
zA;+jy+^=!QkUM-4_wm-DTcai=T<m1C8FQf^{C<+rN7PD$a--%gyi5);5;-TsfFmq~
zHsAEgGNd=bv}dgxaZ>p5MT_}PA>yTCEwu1#9$Ob3v{ZGS#O`>RM~X+Y5#nFoT9kZB
zPpBr5eeB9a2{(wQtP=uAz(KV<UX_g;@%%!#+sjEIf%WoI_7NIFNu?aw_!=?1^n0WA
z!ifb$JRjLLD-t9AY`WP!#J|`%9F$106ar^!(>e`BI^;)|sJ>2$_`8>xn!lNf0-s&S
z<6mLCKtc20iFfr<5SF=gb9jRj)HT+Qe;!A^@B6p;qs|Kfk=Mw{<SI#&TlLy4X@UzD
zr_W4$NB&RJ1!utrouZKS!GrRBfDB~(?ov53Cj##GL|XokBi~-ag}WU#h{N?#jqcAW
z<kv8Y2_9%fbxgX|c3inUV6oDtV$uE1-e2_JuSp(Q4Zzeq>3N~?rxAZWfghO6CnPxS
z1);Ws{Ii{`5co|k2;J@Bf)=AOZIcOh7-9al?qJ9Y`9e)A!}C0_^z&XO9pVZTUbsAV
z@*o9w50b+$Gf{9Kec6|KP8<k4J3~#F7~F0<mvd^K7WiuClHMOfd;_|*0u{tXxg}J@
zq&Z6me$MHfwn*O`CcDlcL`)42l4q_<BvFEB&fd(u$B08k9u;2c%?@)cF@KI%GQufW
zuF{~E7VH7J(O*|I2fVrL5l+iM3o<f;PJV5yP`}0J?7G7XpA;KL)Bo@Plc{}C|B(?4
z;-a3(F^YlB(@<V&8yU#ze0bj459OBK;!ZkSB?#FsHxz=AUiCVyzpL{jCb&~|vRvv3
zGnAeBT4Enf3_3K`a^f_I>vx{9^hrn$CYH^V%uSExbkaP-lLI|i@OPHagS4zb_4z8v
zJ@md>@MolwA|I!~-PGPP#JB8?Bh$C8;DtVQ6P0f(Y+$J}E|Fv@4xB^jEV|>uKrZx=
zFAdd)H~C&@t)3KyfT53@IbA3}@6tt@IK;K}+Bqyt!$lC^u<z1EB5~-Jb1gmnh6}{r
z*@xBmii3tO=T{?R5@43TpR`}Z0YlZ+em=Zx5Im+B{;#we8>!xU6L5+OYVR7#&6kn_
zvD2JVNh}9c+J7H&U*U%tPOb)*Iv#j`R_9Hl3<tbq-Tm0E#swK4RGubHvqIF<!KAEl
zBFGD_V3<cb(p^T@jH0(JU?ks``R|wloNBm6;YTY8TAdm?PJ^P5+<1qt$W;s^7Z+vB
zy%7hfxqkfCRRPFlG4nVhtq0OvE9pOx&iXd-QxWQX19(1TnOKYV{2G@vrEe(eL#ra(
zZSYhBci&&mmM!{V^Wfxx=r1E!$v@gu#AgKaZO<51-HkwLbJ>XhI@;4ns@r-CnjuQn
zm1H$DBTyioZ#1<)c_NpZXVzuSz!f{w9&2O{%<rhali^5jV4->82WA2<CA;24%V>e#
zcWDbIq}yTQFpv1DdmPF${r=n6*8#Zxy7Ot$X`m_lSut}S^*MJa1Og0nVbbW%xcALt
zpmmke{)w0_R9i}Peh$-sG|wUe8gIk2n$TE%wl>i9Ighy81MHt^bkkVZgPE)In&*+u
zNM0q%PmtvpT;)g_V{pM>><@uaNf`0j3<|naoao`GU}XW1HwSdEhgB4uLOO(8;;YGq
z>_DTXP#)^e0VZr&H)|1h&_gz)dOw;Ic<=IK$>d1a5~RE`HOB_OB;P4=b)o$#M{jma
zk_a@be)rw^BMeVk#f7H}MBqp<XU1#{9|#POlv$kRg5r)VKN^sqp+V?)jC7DN9K=X7
zpNSKO!@l;ynnk4B4bc_Z&6S2L$90~!1&hHgMd;TZ6@f`bABJDwML~bpZ|_VlKU9Ta
z4NRkmU$J{;{|55M;#<*;eqj=b7xO_)r%w_@eqFxrTgD4gMqzv=_r&03;nMexD-!VP
z<$gpXjSwVUwB^h~d4gONpPzLZiU6OJ>$!UlByf(gWYmb47<#L^X6cMjKICR*WP$!)
z>|!QkGn=#$tcgACEOYP2=>Ds7#Q3+c_HMt2+9aPav(W`M+0Ai`Hb}6zahMWbJAL6=
zHAMOECnKHt^O?Z$NzA9zBpML^4_DfY*~6LaDVd)gJ;e2iEk0;{A%T94;XbM1EqtB9
zb$MKJ0`E7rcyiB;hOkN9Ymr!t_QivCT(o9F(0uLviTB(+_^m1P;PNjb@Wf>91GV@%
zCRcPNU6zCw#OH%!r_ua|%3p<17;!5vYGv#5bS>hHY+NX|Y!oB!>rIKO|Ano6FUfwS
zJAtKMdU^7i&la|mwwsxzKuu`6(V{eJmyfeF(Da#)Q2;l`)1j*p!jQVw6C8a?7Vb*?
zfd<6ov2%a-=8~i|klXz@s~d>;uNm8c-3Dk5E+PAyOqLDt&ZB<XjqpI}Rie-r9jI<I
zzI)&EB_GTt{B?cjt^@(rD>~B`6u~Xgd5bz%03MS-ZYH4T=2w2L^95emwM=y3Y8Qtn
z(bd!QWCGyoe^BBI67XBXUf}8sGdO!D@G|*x!{TK1#YJ>3c<Bul=AnMuO}*}v>X;<l
zklV_i(C2{<t(QhQl^B7sl5FJ9O>Q_@RQ^JU81YI|0uxOTzbh54-*@^e2x+fV{#aX}
zIl!F1^fglv^xR0rRQ{BLe*a4CBr!!WrNX46UWx+a?J%!n-z6dN<o*;B$sdd~?y$la
z?bYb%q&YlK5W^4eibZ$i%YXewZg%}SIs6_W`C#R`iGOIZ5t%OQ#$(?SJy}xTzzZ3v
zaB7l0eD|7Y&}CA3aN-HNm|H~y93zHsiL4HLb@YT+5Oon=S$unEseK2xmf~k=VB5vV
zFJxtr5z&IpYfe^S<O7;y913WhL+3O~jb%jl;L&KS<g5%~X!E+PVve|p6NBM@^ynzT
zsHadoe1ive6)xAh_9Gth*|43z%Y5K8PZAPt#RKA<r)&N8(R;b~_4o638t9)i7)V+s
z2Zu(JKT9I$>v=LC1tpRKTb|_H9!>|0EN7otGNO9I(@P?SQylJ>Un-V16oN$>fBS4b
zq>G!TOWM&ShXBFj%bn$W*!e9UL&-HJ;Iq|RBvNAn-C9NZ-AM+Zw|5J5Nn{0yzwBiT
z-}r$r!+YTp(jWe~liF_*zy<gA=SK5T9eD0-S8X`@dHs~tdPHbXwNECIJ;*JI^hRFs
zPCa5k$KtqNvcL?zZ){tGuQ7o5=IOg>HEfWl)b40&K?l8zBkZc|%+NvdpU`vk=d{rW
zt0D~+XxlqGyj4sC->yG!{_XG&Tb1`VzF<!dMb8`+U6KAm*spzxGlCob+6?T+UqgOn
zxq;w%b$0Olu$%AZ%mN&z)FZMzwy_Z@nm^p{7(ih!NUR9)0~?leg$k7iF*bG~e2tS4
zJgQ#MADNVaYDS(K;(C6Fvt)3)fFWL8-MPvqORV74b5Cf)g&dZ+T-?83REMVf113UI
z$3QZ{M9;Zf3)DTRvYw**Wcv4a=8l2mFtlfMqDDXm_+~2v2c<BO^Deq&{8I-Wl2wuz
zlIlUC!Dd_IRe4AmxY>I6P#W%9@#T@Si-U{Kr&g6dK{&W0xR)Ew1<MKstL4Jt;P7%X
z%Z*V5Zt$J5Ovyz#p6XhqudC6Vpe)7mlCn6+t^aDNZk2)(Y46!P5~?t*@$~5Qf;?=e
zHT`#}sf_lBS?+PR3P9{pPts|FIH9U)Py0|FnDX78Ps2UZu>0ug@9AgK5a;`hqxHTV
zj9$!Ykav*-p07&Z=}wD5>aHni4~r;Bm9u}H%-{x@U`$4}809uBNAcaRpU2D!b4$Yh
zp!?q^dx5c97_gfpRNNzCu)f9;Y>RwKZC{AqRrPT~`2Dp?r8o)LqEK__PG^T()yo`_
z^?ZPP4N}Ct<p&x2?E!jvVK9ijo)Dy}jOq+e_Sr%aI94oT9^WDXz1*2v36+wt{OQ$F
zG2*>it}?RtvB-hUV0!U{B+3z?Ha2A=<$z({%jI7!ksivyc3L8o3yN-aet14B2OC@S
zMavQr@cvI$aYm;I1g{v3Y_?0n*CN;JjJ#xEWc1vd-4*53ysftv)8Pm2sEWE;W+6yN
znJ>+G;t;bMRm_6+!2xnEp`5!k5cn)C#y#c{F5pvnUBEgWYyLdn_lcDV7~f6YDjQuv
z_l=c=U5OA-@RgjfzD*DH-;M6-RWidBBF==vX~Ylh?xrjx6N08IQ3Gasyl`*u^2a2!
zFXk;Fl+B{|<)8TtA8{E@_<GANX8aA}0A{}CfBk?P$m@@aRDMJIXinoN@69%`qL!oi
z3Rc_LxjfITkC!+R&*IX&;EWLLbqnUWhj4>u&(V>$v|PaTpI5UJCnezJUjzhXc|hYF
z{lr{5CtT+hx@M;?3=+4}-DgiRBTj-IUOK@B>dQ;v$Es<7?dK-M)Cxe8LjucP^!eiS
zVZLUL8`#@}26%6<1NDyU=5^F}7O%!+_MyH1h|S6?a&u9*IFiWnY*QH4ycjLFkdHO)
z+z-n2R;1Sriri{H*uz%V)ehoH=peedm;HqGSL~nVQn$zg;_2T0p8GO%1#?Oo4U9>k
zhG!g>jqNvCfGe|y`!qW_yp_J#I#`VQuLRC%5;3&z#_z1tyix%zgY|zO5XV%qL;iTe
zLltNW&}=0e;scht>Sx{}BCvDzc8AS<A#nOT#C*O_8YoLHYHvHC+>Ie2lGr>62(*4)
z^)U(gl-|62FG(&B@;*T!-pqV(ExUH*-VVy;xbQ+{CQ1nSk0y(z3#g&z@fcCHjT}5;
zw%f==_obE0-u-o3ak#qWqWmZvaV0B^q8cxu`^o#`u@lAQgfFZ*jYkz1@rN!kDwBKL
zSnqb~4E4eq=CCSYRDg7k(eE<oXZ7Tu)S4-xz?vDZJ%1EI{*4CB!GF0=#nZv`8O0hV
zSuXJXer}(0g#r8oGW8zi9AYXr`rkJ{{)bJj+w0nBtz+d@S9A;zCpZ6fyFz#gITYtJ
zd;H*GK>60T&Y{1N4|Mc<%G??!+^C4LH2TB?oosRbg51oI;^wY*CWaAg#c~DjB0i1}
z&&ib()KA^qJ2xQRBLL&R@*GQL{9w(*p;dtNwsep0FFws?gD%s<0ID3sr!^g3<mN(L
z;Hk~P|478Za6I!W?YIyOe<&~9Mmf@nPPBiCgAos&X!eZRQDLCEK5(Y-1`{kQ>6I-X
zQh``c2AR|4f7qeTg{0b9Cg{|&V;DB4g7X)&jGnoWK^47J${ZIH^sS^_TSNNlu)-gI
zXH1CTr-{(5ez_IQ??IT8DCHhDR_V`gqD=!ocG`qB-Vg!F5M>JoJu$eixfzHh%wd<y
zJ58n$SJg{)R*{Ku8Y{9bd__?{i&smESW#?DV?max?k<rNIP)=I8~Z#eg4+5gY0>mK
ze2U!f^vhQ<7~Z+8tVj5a<HFf@MUBJ>6nJ%?B~U@^1*?}2P>#CUN`-+u;!NvQr-yX%
z(*P~wgRa(}<bZdI^+k#yAC>ekklZ1Hw`p0_Va_DLxACO=Rvan(Gc;ytT_FWSzLdi?
z6H$m6KGRb`#|~%B!d6<zm?5h9Z~myF7+6x1Wbz@N!pr2s^p8S_<9PR9HhG#bbk{Fi
z$D%#!s+@-GVxtr=I+99j93mZm4#sJYa!njeBY#sjNrDdD@q7boC8V2uZ$@`j0;c-o
zl1|9T!}yCxw^k`Rm@Ft&y^QKL+3cztA1Gvj?TDq$d88MeQ8_ozhj<F4Df0uQ%R&%`
z_Ux<n3NZBa=5nE{I6RPxvo2s$f{%yiikhE@!(r8{cAjTS&{^=_t%*(?PB0UdnCvOS
zsiV6iWFrbd)K?k&sTXm;@Z;m>>}BA}c&W?hR&}8Ae)wFS1m$?i3kQWRq9*WIgxJPC
zNx1M|`uG09P3)JMwrgA-(ruKqFJ=(4LfjAE-8{r`PpX_WtGA;8^R6zM$a+%v)yVpf
zxP=bN!V4_A>6s9Jd^dicf(+VeiDQ2}phk1fjtY(j^#Ah;#ojui-#bU_&kj`zAQ^O!
z^>;w$*^GP6`48k^5@TS^*(wSb3{PFyKEnaVcc;UJe^7yR_ctNl116|0(-~9orv}lI
z(zEkIh@VPd$jMQOcul`A{O<nD0{hf)3S8-Q@NRL8&JS@B;?jL)H+I=zd{~0VR+0`(
zT%Ih-I5L6R?z1QL+_aEb)$N))#{ds}S3~9sSz)A{%P|YhNsbXCdm-sAR+g<se^q=H
z^SEUZ5KBh_ykBG#Pu5U^m#Jig=1;`Eze}|joX8AcMXtwwy(J7+Q_3urU-3fdjY>~%
zRbg0&bMqNFiE<F$>!0er!VdY&xgrb&Y~Wm$f%PJNdPtsfYm&__<`V94aQ+s`*^~Im
zdh0YBgv~DRoG4-j{+cL{7qZ+iO)C`5!?J=Idhop)8Jfoa_D+cx|9`#%I^Si^kwKs=
z$K?$4oV&J3tFyR|W78=m_BZ-z;k56euz&CtCjaTb>z`h3VY6i+1Ct31&|RZJuXl6<
zYpe4a+icpxHVn?1Nr)w2tKg?`G-?COb&9_GK7IvnKe+wv#4*I>Qhq?akn;n-MjvYa
zhkF}SCf3vnx7fm7FrB=4CUq3g-#^=K>?i{F!oSl!l0Y1WqzB@|wJh+tmZK*T`K7}K
zT%s?@aYO2Bnz>HI-A*W4V?U4PE|sZ4mJuJ2PUx-?`P1j5An~Jbb&OjCRJC@xPK_~x
zN~7DQ+;jn$EhgMbAmW2}?m6cOONa~d*rM&l5~^P;-`)185{KlPdMFbY1?`}dVTnfE
zU}nqyqjH!IuKg~z@?T_tKc2NSZY08}PVD>cigGfTQkUzi#3;c}J@5M!FHX4T+RQff
zh!dU#a0TDHD+$c~Y*Dd`+>jCB6D)HP>AUKMC_jcuf;!XF`?)hR@Mr!;diM`L2tN4h
zb90&p2Ahlj93Z~qZS9^7qA5NgvC<MRUJwPOGPB+({e|@lOHSVoCq|q`J3kk(d7N0n
zs<F#}jF2o_Fm^r-adlTViiG<A;q9hs6vuz<;deCXtltf6;D!+_xx&4qgvhZj$HjNk
z_~(?s#kW662}GSuAAWOE5R?iu-BdOfu&m?<y}>T4_@%}W&*=vwgjZ+zzON|k;1WEX
zha!k?9Wv8d)ou9~Pc1Xx>LT66bzT^&PTwEGqq{3E{LCbQR+BgK3FAw6#@a*ch3Gwe
z&{S!CFk=fJ_;GenD!Ca0{5fIxEYdUkF-zr8e#1U_nD#xI8pNwKBVMKw_26=cMpR3;
z`Y=6%WX0L-zu2+vo++ucHvH6Fn#P5JpLq2+MVf>CG)`NbOJ47=gx{*Un&4tU4|uDk
zQ`zJUMtOQQgZ~yW%!J<CdGsGQ=uEq=_6G8R@|Ptc27d++x=QXtC}jYOTXmzqkiW-e
zdEjY{79%Xpea*CZKn^`Z_8+EGP`y+C%f^sN7|ahE&3s2t9(Uv808b4zAW;7oe|wZ2
zo|7vtH?7mcG{-Q9fHNbQs$0*zKZl+Zu=c1iWdk~y<*+;*)KAvaalH7*0WL%))Ys#v
zf%f2gf4eN2)6<om5nyHlwcrd>dO=PQ6HTQc_;EqliF~FZMdUkO4qc-AL=KnCr22AH
zD4}Spc*h+R0=XesijC44yt64P_xB(*+@qKx`Z>%8&vs4f4x|_m?}3XDiE^K=Uw3;=
zB&iI6ohMmSW~o5^ivfcf(%Ep=M2uzAlEE{h5{ntc&$w;bPcigL1Z=eQocA+$AwR8=
z#oSmJm=4zI(x*ir$oTF?yq+w~8M(dDJm7%7=L<Jd<%M9gmmp{oCkkeXo6HX}VR*c?
zQJyg=37(F^!n3hLz+-x`%pr>(3~lB{m$xM#a;HPNyMPJoj7uylnmM569H(!Flq677
zsRg&z2td9itLP%C^L)otDejht1I2`}iW?ap&<bfDdK@6X?whTTo_2h|B(tb{pBClP
zR}b^5-Vp)*@((xkq<Nv)_>Pj)4W#4udQfnjbPwCOJ7E`j2leY~=?-S%JRtHe{b9eN
z04(1t{Pui+2cA<igb<H$!pVr8{kI#$AgVu3Ib^hht<07GF0UTL0-Sq}?&Y(<x8F&b
zB0ohSCo%d$?sp0ZA;K=Jz9l2%%vMP?712YOnZiS!rbCR9j3KGaau08{#;Rjedhr*P
z51rl}O~w*7(;_KkD8Y^ICR5%a11t$gJ`K3d2`s;s&z3bKKM^4ipGJDM5cO^L6cTEv
zI8v=Hf#$oI9_{AW0ZvfNihNHMN)G7~<nBy}pR%v3w9@Iq1WVq^^L2B7asRN-v0u=B
zMzp`EN=lIoG#DZ#4)=(_N$j|e*Xt5&X*lQ)$N6b&_+LmU%@0yI?#pJ%#ygCY-&(pS
z5ljscD&sdE*H>Zs=k2Bx&odHG#+Z?J76n0_s&Yavo`%qNQrJ@dD+S>VgG+H{G8y6Z
zh0UmytYyqtfqYARV*}^Wr+EKre**iuAAU6)>BTcm8R{agP!MWuQk$q$Mlq&_+e@3p
z)C7`L&nB|2Nn9z9Qd5G3gm9GAqVCiQN&-VdP4e}Df4Jgt{x`8Jv$!+!D}{wbYQnPF
z>xk$kQo>Od*+_$^8NAou=A@GPHtsDJZ|KiWPUvrVXMaj?1LwV(xy=2Titt8iB;hgp
z0#3{qFQ#0ujhDAqua3}A5G)(G>eZQ931)X~@3^dO;a<O9@00}65;mU7;jl1==|;4x
zM%5kSJ-u2T)9p+Izm%HW=av}>u^IikK1x)CX_^L)j2U%cJFPN*%~ccV{VU66eD#4l
zdTZ^+7~&hyE{yq|(FP5Tlwv7;Wtcg>@X~Eg0Ul}H!T86e!7GX~CoxV5xHs;Gk?0{#
zWI<JCx}qXzgl>11kg0$-PjHLQNo7<oE;G2#BmTOqGVcjLWoQ_r*xkIS3IXj$o(E+q
z!D}`T=B|GlFmA2fLwxKAd|?|X{Lrrgxt8PR>VJ^V(SovSOh6eHA_9L<zEy<G$-1i*
zen&y`jm`D*aws1$<ma906m5|BtTC0ijP&UA0#8lW6;Php%b`vhbr3SId3ShT3Ea<(
zO`ZRx4fl6myZgM>f{u*qTni+cpwH^^?|k%8XkGaez4b>EWWH#sRyQ$2{lL?}Jd`8+
za%Zzz>Bc`y;$D^0qwg#b+P$*+Gm#%w_^#b4CglN>ao&)7VrX8l{`X6WF#~KjEn#wE
z`&dww>L+hAQW(_M=)FY50*1B^=^rNX0LhEw`?v!o>?f4oD0Dr*?k(s%<k#eZKj$cd
zzKV0f<lD6QqsSLXKa)asBS-+MKdCjZqj~TM?`Ykl3v{5+dOl*!lnK~u;;5<5Qvn-Y
zmH4S=OsG%h#Yl&lA<MHhtap_e-gr^zNi(oR_1X>IN+k}+lDNaPa+(WHKeO+9*@*US
z;?&{I94wIVbNm@g6f&MzllEJ!$UxsotNX>k2ReRV6EhaYp)v4-;1!$+8Ur@_G^qaJ
z@+G_UqZln%q?xhVG;Cn?eEImxY&sY@{fwcvi5jBLgc0>*lM+&Qy?l2#nFvZ8b`d8O
z83~WW4t$2q_VJli65mWUVyIMjpB#_o<yu!%-YkoCVs7T-6%NU)1a7O}YmXYJ2sPG}
z#;Tmugpu1MQB5ds=eqT~`}{Rc*kBh)4FmB{Y(mFjE_w##XwhnSy!C0u;_mxmH*W}l
zpVVAqIoi|xxA)>$!E59Tb^vd#H8Kcgw>O&oMFg$JmNCY&WMK0Ba)i|;;;>ZQyQP|j
z{9!6iH)}7ELEOPvlAZfZkef5!R%wHLwmDZFn}#?+Nsl<{r8O<oMz3}m$<RPh?x!eX
zvuW%nJ)=>*yD-?AuDUrq)C89JS<feus!)~KU?qgOj%Ri&cGXjkz@LCic@60M#(xr<
ze5$gHDR1(RokLt%H5=ZrbBmRj(5ts^rE^hknExA}?Eoe)ekdBRd`Aq<kKZYNs>=(D
zVz2V-Bv_!Oz3w%)h7ers^A_J|W`;{|BF*!v)RF%@#kD|D8InyLetrs30O9}0-&LHH
zfwk3ym4eD$jCo+$@o$<EBnN&d$Xi34u<zH(Bh)29v?9RSsDU3OEhn;Z#EYP&Q$NO&
zJ&K145_MhwOa`^rLO6umnc>}UlDDTV#39V1kcpv?9$J5WO#P*da&kn5FML&IgHI~5
ztV9n5fU;sm^&|NzmMC|o^y&dI@Na#T2^d<z1X@OS#U6~}xs%S<m{TYqW2}wC9M$VT
zv#y!#{2+$k#%Il4X*;ll)I|~1o>i>xOt!H5*a$W*5mas-d58t{*newwSjL4s<MeAk
zj$*Tx+E;m-h#|+hAv-{e1<tg-5r|;t1|qYLZ-b~V8N?MlSE|st^OD(e`UelB?b%H#
zHnKs&2VL78#OWKp=3ICq_W<u4nAvfQB8TUjCv(Hm9@=uagS`Hb6U|lggY8&(!ThcB
z;NpX2tnN&3PI2KNHXHuRismIc2L!B0xKUn<ZIE7W>jN@EcWzLMpuj2?zWLd-=z0g%
zWK)`L5Hx^mv2k>fTt>XH>~5xCYlGNRH_kR|n=L#*e9<QI>0jJFE!ZXGCMRI6zD2#i
z7O`8-TH=%3qj;^Y3mb!1KmPV9XWBE>1B^t4k@aI45nR2NDOi4!9gZ>j<sKMw0`=29
zZyWgrjP|gzP=}R>aQXF_<5{=R+&uc2^<d2o?oxF}m1>U~fj4~*6#}~P$+4=eV$?5>
zzVY7lI*;~ZKVOY5Bd)7-<7CFYI&yewc-g1p`4oQZUdtp0nu{H!EcHtiMCW1B1Ln4K
z=-(OepbB}EYuVWM=UN*hSd`Yxze-uguLbG2sh(KG?HgQH2evnHal5_gqOECcUH`vu
ze{2_j<}bjxgZ9piF7*;I1%lx3UBas{!VDg#AD-BVK<7}5gLc=xG3<4jRX9G-2j$$Y
zysMq2K(rj&;OcJzr2+e8gJvgSRxqu@@{<}6@g14i@K*<wU!OJ4J88qmn%-EAFM#GO
z!S5IO)WD|w^wlSRh%ag0zT(@i0-9%7Bi9MX!TVc2C1tWUJd8;%caqcqn@v(x%@|`~
zI>lmIwP6TiJN#8n?~&g6_<b^MceD@IBN~d*Hi4Ty2HZS(0PbPLZku`lk)tjjzfc)N
zoT%Y48Uw>7(`0>VhB>IjzDyRWRfU6sJBI(((f;-M24mCjBk;ndB67g?C}i}v1>HuU
z@1Ly~a_S$2iBAm$$6p-<hMPKm>t~Q}Z$i85L##G<+}ZiaqJ11%71X{t88JhqI{BrM
z5l+xu(o%2*ZosOCT6Sf4AUBsSl(<?59*OCW72QDG?SQFFDP~#NS2T2sHbQwD`)+mR
zC};9_ZS1DNB{`t3eZAr}Cj?0iW3OJ^l!0yTFTpok1fgkFQN3+M9zp^a3o=lC%xjD?
zdZ$hif}@YvOe-k@uN!wZPlOZ<hfigWoRb9OcSjy-2nd6?o;G{QNk!;;=l%ANhAccP
zGTipgl!g$#4{9DoXwT%Q(8EwJ0*3Ra@KItuh@JWus_V-MqOWfaDt%-D#u}R1L*%dB
z#F-<E&#^<9%mEjU_zLE6znHV^xB$OZ@|z2Bjz5e<2+qz4!m_Zea5~~|C}gKz{hLAt
zZ}Ws7-9+baO1Q)c62vcEk{7v|R<nWy2WA{z?xBXy8B>A_cA}tuktt5zN*-pU#+8Cm
z{Tyg%{vzuJ3ux*F_G~foL+`s$-jlJ&r!10nvp!rN-mks1JT@r-IeM=W3NNsreZR6|
z7s_qbic$RL%P9vn%5>x*=OuyaXM<d(pD>#HIEe&C$pJA=`zIFZJN|pMnt9hj76eK@
zH4v8_fejtS2kI1@h#ThTBOImxu@;`44P5B!-YR|jsLupf<OGFz(Ol=h2rVv?dI87|
z+;7>l6#;GQ`jFk<93b0+E=-gc?3vq5+5BD{@#19Z?pJa^4|Rj5?KM%5b-%5wX~zSt
z-}>bq_=y17c-;KwS27^5v9%w8xU)CBsY`N3q`=k6CC1589?a|9qf-$NKT^5ngM_yR
z*gw}B+j@`kvh%!o|GEf6L-ee-<Xu%5MfBlze{mT7&Wrt{QG+4M$$-}=7e(MdnxlX1
z)qt<`@%OShX&|Jl59-Is08@=}wt}q`h<Ih*z7ePdZ^Ak^M<&(bX7ZPQmnbF3{_9dM
zn;{7V=8$~dO?4pO6iBYcj=+J9Z}WDy3V5!6mA5RF0rM=2DU-Y6kk*h%N7zC7IOfWj
z<DZW}FC~$h?6fp=zl+(AuS0p>v_<56h*#t<L68@*Q~@zBha7(N98(yE2~32_!L^7g
zPFbX%E)cM+{jtFW3Eb&D8Bz0C(;bJaFL}4Im+8X~wh`Y=!fdtfzaYf3=af*j>E6V)
ze44`|bcqQRH8OGcrk3&Y?&XJ8r$`7VyYHJEAileo!+8IO6eV;t@#<8IBHhs+TAn4P
zEi6%quEOzcES7ZIt1a%?1paLD3{SO90~T*8NKryLhKXsuSQgT4#eW?ahw$BcT$23<
zi|OYvZ0ywhedp#SOyE+-YjqyP0lqGkH14sB`ODt+Sug9vJktXweKbcgZu-Y@EYp)1
z(Vl$i8S4#9&gPY){rC>1%W531P_&3CM2?D49oxk2*64SSip*jGR2xi*;pLcMcV>*p
zTsJnYcj|k~0Ge~TZI33BZegKTHMg!tBY#}W)^c*ZDr8#qDOmF>L)QKH)Vxf@U3)lQ
z={BZ-bo|Mg&rO9v3;A=LoH*eVRv>yIa}9H@>KHkc76g`4(oe=;h=5(%LHcenJxnp(
zzg`w80j&-~vt7N?uzKBXEaW*87@3Frq+R2JYSXJUo%V=(tM<h19}CL;Ia&GRTCpHZ
zY2?`+#vwkq>F#UqDj_&n?a$O37lbcjdYl8)5>Q@Z@Plqf1lW`;+>e%`{B6Ou={!X~
zXpVi-`p}yOv_i+{>5+~xPpX$xsT1|@L{HR??nr=uPg}<ua~5d-Dok+gME(_C+g$&P
z%<$;(B$)!zXH9(X_7ZuD-v2By_lkFXkW1t7yMR|3T6w-_x3g-(Sz_tH|IQqNxvXko
zPHSag4_GXGpM~C=K1<qUXFbsScCp6s6v}}})_>R-p$T6EWIqPV$U!Jsrt7^DRUl`T
z+q$%>0D~9)-k@qz1m7PuHv~}r*Im_o{fCJE5b)bI^&LSKXnzzjJGN@Vxs<RhBk?1k
zO3`~?c3l&mN?j?BQr3g*XGW!+ZJIzA@7{2_QVsOaA7fL~I0|%~6$8=b012{{0rHnL
zA$Ivh_JV*qOjq@|%djfKR*7E0Je3lhH8ppXM103$HnDtfTpl<>L>0x*d$d`~@>>V-
z_V#Ott3{`^L6I_*uwJVU$@@R3KgX!TlA~(FQF~Qb*5#|z`Q3?88Vmfg`mliKsII+>
zzqEo?SbI$<*pm_N(rdnOeA$7``)u#&D6^ow)Xa-vKPKSOv)axq7JvxxQu^XYyfB^o
z<pQ&s5ImlI)#gsgg*eMCO!pl{p;+rTQH(Ik1F8~;wclcbKl0fIw{_VeCHS-DNj4!k
zy1RR(=0Fytc<BBqAud=)!iSd}21u94BCW^xa|2U}e_x>fMF1|^%YNAcS#T4Uev^cF
z!O8!;qtttNAg1Pr9m#DLSjep&U_iP7j*23RhYHAN;S_!NiHQdaHkNfxCGo?>cgk0+
zuZY6C3u2?c2`nJ>f#P!7X=bPi|F(KMnH4fj7HMfLsiB_iBK<Vd6Gf*z+<Ezgj$mm0
z)~+*!8@?GDN*z-qCCK)FVK{qr6niGBH1VC}0B5gK4iaeNf@4&HKgAz2!%7hOC-Y`X
zc*xb}z8t~}8I#6YgE@#>etP|<KbrqWe&ly=mZ1mibo9hn6bZmLhX>^uEU?AL?H@bI
zL^%HC$jntkl*2fseOw@i1)S$jcgKWq!Q~MfJA-Rmm|be>-q#LRsNMEiJB9QU48e;s
z?;{Sd45{r~dpZ-?_s2v^{tWGSwe8#gRuz9?#vYW!3=!-EhnoAOS*ZU=+MDhEa*i5`
zPKk{EmwAB6J68YjCZQ(i3<o(MM|JGvwB@C1va7g<^4-9@4;i6*TMyeyBZbDxfm&zu
zMzP#bx`bRmNw7^#P})HImEE6KAwGU8Q1Q|+<61A$0S%w+=wng@hgYYWhrbCS-Cel&
zBFZCK@>U^f4VQ(mmYt0M@`PYDrQKTu?Fp3}UA^LI5SO;b-PyiE9+>+=KdvgVf^)Oa
z?$<~BFy(#hbt#%FIfN!se8E(pW+@<3p-3Of8cU0fY7C&w+sD+h41){XS9)mgt3iE*
zlZ%So5wIiHd{lH*8^}&-t-i9*f@8Z0&3o_A`@CLYxRQ7j))*|}dv%1s=yd)PW*`rb
z#RY%8M_iiltl((PZ4n^t3LsD1k%b0Hs+Yf-1mF|j%nPR-IWW7-^H-LE2P%K6P5nc2
z6iS^iOjQu|vs91y-FheqA<kd&y;rCRDhEcwUpzXo1cuoc!@k3q_hVAadXW`eHza3_
zeP|yGx#YAlzqNwVTlJqXx=05ZnU94S14pq`md=chV??lH@iE>-xD%r*8H5~@KJ2~2
zv#&lK2Uq~FN=_=rAAIe>!-LZN6-?(hr>=qF68?|wSmMwlB0^`#ZoaA|F(I&SJv;O%
zF@gMgXi;`Z58ip+jC&$u5x=8ARMM(SLg2`7Ez$L)CY()d*sXj_P6$ZBm^y3c@Ve&}
zi>)aO_$KLuQO~nlERv@B)h*s}ob~i>BM}u5!Ge3%%lG{P{x6Q$AhvN7Q!g}E2w9^f
zC{PyQsmC($SGg<geFZ2l5BAKS?@$taz7A*Pyqw2oMPD~P)}n+9gYK6LrdZ&b?tgpj
z{Qt1IS4WrB^QZB?GzcO(PfAETSbVX)LQZ%YA4A^B%t8o#-qGQ0$WG806YOkYWF&+=
zRZ+gdUytj>-4?H#r6a^~->0V;W+p5RuoM3Qdcs4;(FYHbi3opt>J~CQXR+|12KtbZ
zP0Whf;*p9s12|r_(BLN9!6G$?VSR@Iy2{BdR((kc$LCtzYo7Gsyu*Fr7nKL``r@8^
zBgD6O&Q|X;YexdAPMnDWM~Da|UD5@voXmtV;l#0VgGKzqmDRL0YI*`+mr>)C5904T
z48=}}5EDi=2JDs-Ngz%s-G`Zc4P#)e9rQ>n#2!_2w{7OkVez)x{M7yEo;>AEq-rV$
zRktLxIZ!T20x9R%`i3&<kGvl&oK%HHU0MZ#1s_yC2)2ilsLtD1QJ#LJ1al8+0%D9*
zp|rQ`VML1p@Z`xH9RG>((j8fcUpXQD#_jNMFEp=^o*h^v`K$;nZRhIF$R2_CmG~=q
zC|7N;ah6X>TNCQS{K6=_k$#($cIGYWE1Kipwmd_6@9&l0gq}*FeR$JT_5~LONHNn}
zP-r;<qNl}4lu=#5Lir-+Iy36q?2Lq-r78ddp`22Pkbo*Zj5Jb91&TV19kXT>;9$fj
zdci{;bVZsxkEM%)&}bM@2DdWYU=gA5qdEd19qEG~-zq>?>|NOk6$SX3Y#QN+=5={R
z>#XC8g5cM|v`MPW3g<^vWqm>r2m76<#Pv;9=o<}9Q9yMDXTnLdn@rM>&*76|7K1pJ
zk{S1Nk?-X3gO6-qBUC_k>2L5-q$D)U)V6tkl?3T4Lq9C1WxzLgz0bLy7cPGwP7DiH
zg{~(iCrE?k!JGbM+Y;iSd&k7x)QnLAbehLAv?{^-K7ZQCEi}g$w0AssAp_)ml6v{^
zim<*|6_$Z~A>CbS%T?-%pwn$pkY*$X*NZkJ6Jtc+xR*k4azhzTxK62;+@t^>bmgY<
zeo4WFQvFLu(S4LjrfpFvg!C~sVY)|Y#eg%|o2<i|9r)8CPg=#x!|Ber7}GR<_}iY5
z>CUx<J!;K9X!hX%11oQ%8B}-s7dE~3{eZZ*EW2?_1ZDVBp{U!4^nIlT;yjimC|79;
z4d_sg@y@Jm=N;5<;a`7HT)nt~_ph~glcT)37dzcMN+x0;G@Mko#w`rN;UtnP!NTx!
zCr~Hf7xgoDzbdoeB!c!EAN|kNvV)<=fpn?^59q(~*|mDf2BoJ+YgPnl;q&r+F-N5L
zHDG*vRkWN6GAmLrJ!uXY&2G}p`6UGMzGfM3zLG=T((zyAR8(-ntN7-IxFQ4^*NzpV
zJ!PL&CO^qdSvXhu?V&A=7zp&34gL9<fcc%cvXaXo4F47u^qCvQLGZHu<66|uM*G)M
zriw@bwOYAQn>q3?PIh}-KcWO|L9Ydy@5q70m(O)157pqJt@NGUd1dH{D|E?h7lK{S
zho+}lg&;$~Ert{6Q?uPD^x2Sq>A_?Xur#4M?Bt@f!zw#es=N_0LjH;Kbw$0s@~j|T
z)AXTfm>q65o%;5V8Tlf3NB+C=7+^|FB0Gjs2RJA$JAFzqf^kZnzDxlC^Z9gv)p}jX
z>}~t-W>^Uh-wlQpN@AciWI9$mt_ii2$xcqr0F0J9eQDGB@cKu`e_NGIaC1(7;G_Z>
zc$$?_Ru&)*NyGc%Jx(F0eeK>+g>-`JFODyg4I%x>pxuY4R$h=aB2w2#V*v~IG1~D<
zyx^x_ofeO{*AahppUYmH$6B@D8Pe#?;lhJLr9{Uj@s1?s{Q>@Q{J5?4yGDy8{0n_f
zq<=>*W@`WCbqw-tvq~9mmtI-L4WBq!Cv8+<stSKc29IxGhifbeHHdTnUtU?nH`JGp
zt{t`d!?}oy4o+kpHqsNO-<tL)+-}C{au>R6`zP=YMn|VPzCXBR>gi!+rFr~Bp_bW_
z+5&DEkSbAKe~6d9FYEXDyoN_!Uy8M>?8SyFxpGbZ5^&0p8+-q@rt$16(_f16x-dGU
z`D7KJzxctHsHg0)RXm=W&#9bv5`Qe*?Zx<M6?fNb{}!z^iI-|07JmLXh_mTNt9^ad
zf!P-vk^M9_fnCyIIqcaZCVVTScyrER4$oi7fzg;vOqS%N)1{ONY?vvBA|q)5*BK>Q
ztNPZ9bw_G=sVWf>`UD-9@1lIzH<p5mZit`#+dgow&w~brdoN_)C)&i1{H^|2kcsvI
z-YQBw>+=|ur1r30=LhWRt<^Xut~o4kxPNPEW*sAqdABimeH9b0*w?y{w}P8ZTkO5O
zw29@6&nLfs-iZ~+I7+16=Y}DFrK3euMDXwrW1t-BOGOHE?W(z2uxAzRl12)wV6c6)
ztR;vER=0N!o|(+xl0^*C4YoAkt5%tEFtCP6{?KZ_QoM@Ox>RlW&ym8!$lDf94_a7M
zY|gEF#Rjv#Jx6m+)!^W2JtK|g>()QK6h;%#bG|%Lttv(b%`N@j{i|B=Dt+1CN9Y)w
zJ9D=2!B<sy_9ZoU?Tr@7dGmV3Gp_;DYt|{fh&RVN<Ypj<-a9K(dH(6RW1ydIsnLI4
z6B^B`AJij1F7eE*7>peGf$v@XE}Sn4Q4?HYMhc23-<-HAeoX>GNpAWl=F6jep)szq
zlNfCOq&X7Qq79}3`QhP?$Kc7SOvP$)l%I55bJCaygUH;9a#}jX(+a*9zdE1>9C^yz
zyfPT9nMr!4U)6-$RUrdn<~r~!`}J*e2@KLruTY&%I0|8Z2yi7!1&D@@=K3L@v77$<
zl((=Jn6t%R<R;Yyn&9{^MS~h({64U(3h}nQ2GS{OuPZ}E9cj|TzsF#jUeijk;tzJK
zYcV)Kej6iPKB2wk)PsE+r!WX8-NVAGc*~J07CXZ-_eOP&7RuQVL!Bp?VP+wli%gpX
z^cbJ8g#^&UC#CeElVAQ}YCe~UsV4qm6dHDa^M0V*dG48(Q&i-@K>Sui!Uu5*MQ4`r
z-W@FZ?eo^Bo<z_uFf7xlJ&ygiPT#3CN(GnW&f4-8(?UUxV5Wj98=Sc7q4r&w8-8%G
zEPZ@J1s-V|rJ*Pv)q0%td`k`DB>QetzUw%|I0dA<OJpQqfhIR+Nmv$|bxrJst<W5i
zdPG<4FVesMys#Q)jq*R2?$CAF34!_JeLw03b|B-o*U9}P3EyKTt|<(2f%dDHHnJ#>
z=k^hg%L{CrFf&;AD)`4fw%oGrV6D`I1u(-WB8M@|`I_x#&eeS^NiH#zq>vX*pPc1N
zP$fp6o98{v;RJSsCAj*D8VS;~{rhj@!33UO<#wl^m=P9q&i`ATMR`x;kr%^SNkCY}
zA7#JNf$q1SmjdGCaO|kPPKF~1yz669(#xg?T`$HfuEfOPrQz0a@ht_s6;eq4*Tn>h
z1lsq}R{IzUgM#Cc<t_Zi_dJWZzFjOTJK2lEb{|`DQJ)BuU&8bcgx#gL5kHXf$^{|h
zXG~$js|9GOAZ=3VeaYn+><K?XSzT=h%b_n<zm!W(n5`ocwe79P&vbnfUs0ie`16b9
z^-4_eZP0eZW|0Z%#0Zp4#mFydY&a-$7Wr4XI43y~&*hg)GJW&&BT(#U>%YW`@{;*!
z_scMOI63z+DMgh9CTu^|<9Enl?)PIB5w;_+XL(R`^_V=U#*!r6jpGL{H@ZPUearbz
znwEzIQBXRV-EZVqhwl#!Bs_hU!Qg>PkMe5<aDU|}Q*vJz8nw0FpK9O(Q4L)N8}#>B
zgG3f_V=>6Fn3KYl`9W2v*u;-d3Y7I4sKSpZf)iD<&aom+5Xt1f^6Uo%YzPzSC=OA;
z%6z6FUknHQqtg5)qAUX4JH)(g>7p>~<QgM9F98n97SCGqxZz%(-{NGJ42YYCRbLB2
z`RVUl?nHf-f(5#%=7Ec{K#;IV_$^FAXp{eU=J+5pfs%PP@uw>lVeL5UfIU4Ep-!mP
zUBsT0uy=OcKgggEgP^?UUZfkiI)zZ$g;*NG-aUoZpsf{Llp^V(%zq=;Yb_eGsoOg^
zlcw&SW7}J}J-MFl{=qIDPxV<`7+b@yi~1^Tif!Yu^IB8;x5(k|e5wXvx)J}Wd=NbR
zw-0Bv5qj|)aW-zIZ>m+DUBEpjh?R3btYann1Mir>H)3zr<z573uiy&Ybnh*>(LCh#
zb>`=~G@$PA?A}=6KfGtFIcKSmoS-x4`!&pX9l!niLRoj?CT@^Us}?f1jDH@w;{2@h
z0RK?cdl8+O_($HyBL0ql@eA%kot+011m)|(?&kf>gs^K)>=RYXcol!U7!UfrAW$54
z@--U55M_!!MN}VtAnp0*_a$lqpYqO>ni&mY<(JFbbv8B#>e3jYA|i*Dj$03(2u|UL
zIhN;!&b-49#>*&Jp0FW5MxdA4rxje4)Y<%I9^z)2Rk3EF{4z-kp8G3lBv7p_IhLr+
zM(|Z@*nEz3y#~7lu1qK&eYNs4lhfI0JT$Se$k%)u4;mZ@{rF}Rr<*v)VY#)62~0(+
z@Q3YU?I|XPDgqQB#kF#CplTg=B!6wpC`bbZ56E==7RRvHZ``6H`&w}s^$_{pnmz2l
zXQiJz%h2cK5SugNT*Eq=m13t0yD*KLDNK{nj07V6M#n+q>)-NJw3cU|#I<j8Ui^GT
z5F}F-=0~PELA#Fg$!a1WWM8G|`td>t_^zbiyX=E<Oq0~6uh$~3^YF7-(=rj5UuK)>
zCS!!vIG*&PFb<%3&apOns0z0@2g(0PB98ZYPmRJMHgLV^>X{ZL1`g^TM;ybEesL<2
zXUSCn^yI~2&Cz^fR)j^?59!>Kq=p0@Oo_sLz|xcFAtJE8y%D%$C<TiyJb`mcQji!b
zmLL3D5dsKRO<6LCFXF8qlC~)U9?7Sl`kz2Q=h&(dm6#AbRa0-PR!4c4=dNG5W+MXa
z1#4Y8t-{FHVfFE%lqk48>T?+hXGeOlf~=a8yV##Zr|cZGzg9kSGUxYQN~onG;(8QG
zL7*jB8{B{N7aM)>^^08%1=6=0N0bX}VS@>;@42?kV#$RR#iF<Cu)HF*Kl`FQ=-ydB
z7lL?Ee;|_o0zW;BocGO&@IiY%{;9NEWvf_!Kb7(6W|X_#;V+<p@;`sKto(@N;s&z&
z>N)|(N#X23!#TwP3OKQDr+g}r1upA}3Jax>!0p@NIMqjbkZ9)p@%Jqgu)I2w<vEYI
zJxod`-6rV~_qn^YB7hvt`Ll!<evw1+f~u>TOe@|V#{JbosTQ~TOVN6wb`rb1*n5R7
za1}f8S8kMqz6Mj=Tq;ZDp27O8`0UpWf8h=#CQ7!5e>3#q?Z)xEb?m;P_46x#-(xag
zs@JKE+HeD{Hx%n)Q<(DC;A_w4SqXwMRX)d@=m`lj@8?6^7cj@oXayo)q#M2cYat~}
zkWk!3&hsLf48A=)=M}odNk~XJcvfIdN*DsRZVS<SxYKHd=aUW^(2w_((=R1Ld5&EZ
zX=rY_sJQe!RfLkj{LwlmYLK7cYj4gIMtp$J2z;T;Ig5Dymj4#stZZS|4&Ps&j9S9a
zX<WBDT&}|#S@q5aAwJgw8Ho-W3sy7_X*JR*;DDc*QTcOeU$D#Xw7f{pq4&qU=~S8-
zjyr|@`f<s93)6D&uOc%##7epIMNSA)6W->R@Ks&l2lr%m5sKTw@S3dXP0#p0Jj{+!
zx>=ov@K!Tpi|Zc^;qv8A1GXSQc+_lis1(RSkdbV^89j$Vl-rklqhA2aiXX~ex|%{I
z_wVC}8JghKLjS?=sXolI7QBqKISsGo?w&B3(TC$X?UVdtrckf`$o5dx6eOPu%LdAy
z0#DiW$7FXLq4wwIQL9u7cx0tXV*DQljUfp%@ocBT_}+hE`^3f|cWgY$J;?w*40NQh
zyBfl`8(NEGXEfpCr8{3Qv?2bNBD0CW96<0uSWoK*BZwP4FnhF#zMox_yWLrPApE*~
z$!!6RJVNU(3U{1=a$lm#;VS^=94O{oD~<z?Vx#1FUjxvKkh}P=68(9C_z}~6U5LKR
zKCI@X50po|$CS6VK{WQ8C$FFe+*DcAZ$`X*Vuis9saRc5ZT3j#ImQh~ph5QAA4;I(
zqLzMmnj7Um#oC4HumSBX)h7<b2QIz-IiP|?0GKQC9P5k)AnL~nwLO$`rLI1%{Yr}s
zT5&dQRS#aUf9;U)=MZs+>O11-`_MjPL9<?ZL>Rta8wpBq76F;*{kv2T(SF~>wYUN8
zXDHK-<(@Z{1an$;I?5}EE14B$LydIiu8#S{C(*udx^yFkNmvY+j)q@V^Am%v*79v7
z7YS%^kiGCw9reT7d}9aAlCU4Fj=3wKJ&omCDi#xz_a4$)m#mER*UCcd!3jd}@pRh*
zV{>}wx29Bh*31QKjh_!&Z=jsS?KNLVv}fFz?Rp=G@{zyrE_bk*q35zwNRPLVAMwG<
zq<eYUAY$U;Q>I`+;2=Gd+#4YdI&sdDXJk2{%#NO6h>D!>sgiHL5$RUSk33zPLb{{}
zE#|>1h<6_UWWRGzlN+v%RtW?z&;O62^Ny$TedD;j_m;i)UYXBDDM|LMj8ueg3Q-zT
zA*l$Jl~hJDLa9Xc+(t!ZhLBPAi0o{?`}e1p*XtbPIp;k0b$veXH_6j|E+!iD{QYW~
zkG3jPK|TL3i!1bea6uxtlIxEcqz63yH<2p?)}Ajmz9(=)t7=2#?G9EbaMBV~Ix7X=
zl1h0(BY0t=*)L5Xf(5KN9=Is};fF`V+cha(*oUk2N9L6|I|%O_mHCQ!(T|mdsnSIx
z;Z%Oo`KlBd@CcqtTE~4~hgURb4Ji14nUX{wHE>SVwEZ53f-Fqa?!R~za{@}IY#QHV
zZ_V|akB<oBea7_*?6>oS#i3o{ql)6PG$c|4%J4*R0$d2JFK48OaaJ+2yvs^(n(FSP
zc@;kdNq?ktx<&_QU;jv3D;9!a>U8Z~2613kR&BL(kOdtc`*#kfB%!mhvwk*60hr8w
zUHvy81pK!{x{hDQenWFwv(nFEU?#1Rqw_)ndYe`vS1?cizHgRNnu`Y1b4Xb>y;B6r
zqJ+8&&y~RcJO$086(xB4T6y<WJ?_OF-jyn1f<L!h9wqXn$U(96p`)IUCE$+r%O4SU
zBw>iRP~+82X0Qqo%^7dwg4_mh$vsaETP~@$s;|?*6EVu;2Zg!eQ+5`g3+8cqhxH`H
zcwvu15zYADDG`vpL`T1TMFciYRbnGNC87P_wYT~f)1=yfjS=H=G0DE&Yuy+zPIROg
zT%|Q=CzltBl7#pECRu(M52wE#Cbfthe&X>45ltQWoYyRu+^oB-_mrWXh+z78x_h>l
zJY~fm)8Y1myvQ7Rb9YfM>8FsuN8#H@xMfRyZNPlOUvE#Hpj2BV<t#i^K0jO~w2xZe
zzbd^(<amX=^TGFLYx{Q|mW;(-u^W7|Zl%A7y~m2hPhI4NmK{%)e-uyvQ<TJ@iwn+)
z(FXoGcN_yXwaD?DbsA{#)YTR69U>Xe_vx0|wvpTUta-hzl>}q&cZws@>qHeX<Ek6D
zOjMa!Y1F@KB^jM|aqSyeAo%7Ll9c5K$z;)=4P7VZ2~HSKN$?pUYb8!h<SmNAMaP=A
z%+I<A-A`gaKWPq<LDqGT89(=8ADHUl5D_jg>VJ95$^q}6bh4*v<5<B)bV5v-V1x+y
z$BLStWni`;?L7=KK_OE}_apCV;@>r4%03eJ<2Tn%yW#thpd(L?+;#0C@ci`Kz;{Lv
z<JtX3_9PdY)u(B`%+H0Y&kwvwirpqpUHlzzW|jphiH>(C$TL9G3(=!X2RYG5%`KhB
zwTp!Pjf0UEzI<SAKS(n!_JWwZcp@@O2>1IgP3@OxnIzuqwb}pI9p7hFYFZw($6SDp
z&ZoQZb)9+eUBFpMN}wAp$m|o~0pau``wlh9f@IM58_pJzK*7Ki-s3I=DKAwXTr5@r
zc{-JAXO)%UKz`Rka)}ZsQSB@~o2LjDuU0pu464JUM5!4iyq~7Zc8(Za!n~T%Hkzbg
z;=sT_v0b1k4I3*~#Z{O`D|f~zcpINDoDZq4pJ)+>RBqf5Q<H!!tMdgpOE}NuTM+IN
zCxiEh#`6~0GVojPbVY@+23Vgh<rcyBTMGd$rYGo3VQ%qcO7{Xlxr@Z_o&+P<(P>(;
zAfpBG9=X2`Olg8S>r%6bsum<Yvp#em_wX2&b&p!>Xu!3!C2J)sDWHuzRuw^kxm&SK
zT&CG_ARD*eE{aDUOzCWXn|sOwcW-yRgP|C#9-Jw#aFhlK>b%p{`2RMotm`Q@p$-&B
zy?Oher~}gv$=0@EVR&PhYN<0W0FK|nu6f}3<7=<DplwCWJ>73i8Hl}6uP@}TNaJ~^
z;oKdPJBSZho7vOZ-|+%vu|<VA_A~r@_8Vg)CE%mVe+R|JWx?s}zg;{yf6;P!xSYWO
z_e@V^t-dJ6?+fv*2Mu{7K;Ev*B{NkN9FJ|XnLWeYl#Gv^T8@}=LLc{F*Txc|{h)<E
zd6)|{K3=LF3l)YBkE<G)D6tPuf`^04Qv&iQqb<5dMIcP~gm>ep7)V~wvH4UZ1n%<%
zeib;s$({ICQruJy{_Y7a(Yhvs<z~~BZY!A6H2$(|wU-y%e?9G+F;fNitwyz$G@L7n
zs0?W^#5n`Xor`QAlwr2_kIm~6++!1oihU)`1i#|h9$6_dfYAe2jY-xG!qNV291R~e
zoa5Xg+xsaYLAXNiY7`T2_E3Z}JX#^>HOcw^Ear)7Q8)Q@b84X4EHoU$xmpYD@KkL!
zcA)Mx|5+2e1JchbI8rm>e5v)3GtZZ{h_WF87qtg05El8p&l$hYwTkbF_l_+Sm)}$S
zCLWq1%*J?B0?+gksy$zRTsI#hlFo)^*nH-MHGe9jgTA<LloNJPVR4plq8EL5C<EtB
z@@(X!m+6rEJsnOiu`M!P*?~<gpoCC)U{Ll6=Rp7N-LyW8bM?6%zHNUfYlw4iWBhAR
zFB9ML8m3QoFvEQZQQJR4%f#w{2Yn^plQC*!<$bf*39W7CPJYodgQIbUmo!fq!RFC{
zPxR3{q3)wrH%+MlcyF0*<SUuM;ysgjU(yJ|HTEoyY-+=b9E;KWQk-LxHW@ABQiX%n
zF?SPF4d98vbuoq|c_^VtpkDWvhWg3jlnQq_7^pMP&Ji>PpDLe*KOx4z#`=1#TpH)(
zp3cPN&>4W{%*0GNNr2=R?Teh$J7H7Jd#>PwAt(=)WJ;$R!+Kxwrb>t&l(<ldcxUQD
zR`Ug7{)ryM2v#2AFff3NgnX**+)l7K+Le`OYY4I?$JNd*Yr#=<MmG5<CD?s(&`>@b
zVC7VE9zCZSd{aLs;1{F>dy9-mmV6Ds{2;g2L<)ee8^}re%@PZr-S(eg=p+)0xI8Df
z28n;kyY}tV93jQrP|M7lPb95te1obo{so@YNn6_E`}@#BEiw!H>zeDPT8rsHuvGZA
z0-m><XyBl)n=p*zilpD_V1olUg=_T!86ZS5fx`)37gw0H4YQy8CEmDisZ}vb!|vEx
zS_d^TV3?~Q{4oDWDtY!v^#Km>FQa|_AB!~nN}&AAr=<-lPh87|S8-3+zCSr1=UWc;
ze)|#ME)J2i(k%6oa*%LxtL))3X&9od-d7l-2DP|u{mMZcOvk+g&wa!1BlZGId+{Fi
z+Ro?a?}teOqhIE{^^6=OKW!Dw(G!PiO_ZBkD+z-JzK)3kba<}ZoJl(>1-A2QyLRFG
zp8Xaxn&V3o<O#NBg@<<pA=ZgPSs#1b70+))nb+Zb#^shwg_e)x)=8SooW=#>ntxrA
zV$&L#6KMK^r+S@u^i9TC0Q<j(JVb5&8Zn^V_Zex;Oz07{Ta0*T6eToyIUUeC@Pp*|
zeWa1zRR(IKn`NGbVc#X6Py$Q7BCIVXu>EeFB^W7rulYo_lEEmf$T3G6RQJ^?F(K@s
zHMHtK!%u;>KiRdr>2{IRToHF4e%J}a4KIUJe@MX|-(t_;BjS*MBqm2Umlu4S_aEB7
zOA<J$#e%%nBth@)_l_s5JW%8k_jxzYy_cNijbe+Uhk1{Ht7bFUQ!*tqNs05sYekKm
z3N!L>JX2TQz()~`SXwkrBx!-OiKpzMh6>J|(@yYSRR`xkX$B^i8jvJl_Y*#I!7oA1
z<abG`Fr%<LK(<W^QqJ6dm0qg|{|!I>M6*``boPg5jNFj|i3>CX4Tm&fr+PH9!hD*@
zW5dTz{MN!A<@J!`gfdvXnWoCfQi1=RFBN%<<LA+5ep!8JC&-sbJk0Wyf)8}#-CgoJ
zz?=Rl{_-<jXi+W<J90o5IE0Pv)4Lc$OK(EYyDb&)U{`;2T2UPmO?uJ}f+QSO5i`GY
zS|8#YtJjJW^nesm2><(210sczX9d1Wz@W`}OAj46h_E!7#DfCR+&<YOVJipJ>sH(*
zCCYH!md|k$R)|}iUL*087s=^=6f#mYn0K4Jdh%P!5<y{sWZU*l5ON21rU&-1!MVB*
zCp5Nb;MEbodrajUM9Ka3Tc2uI2$d5%%tepS68mfF4EOdk;XcY-j)xFEc-1(o|D^jz
z+&mR*wI;bnz@rl_xmh@m+%PqgG0h5&>y$6N=9od=P|aM*3UhgGC+eAV;hY4u*^BLy
z)KKFS|D*FS8|GPkn5$i*hkC<Y2|pPcpm3$XnA1ZKEn$D?%l5KD?D5L%ubbWE{VR=5
z9i!bOg<6-zW^ET~`}v^%X6H2FG;5@-smB6*<2gbwJ4M)ezI-iz^be8vyOuHG&m4Kq
zxltiXyPG`K|0r)Vpqdo=&vUUYT>!$LMYYjlPJ-FbZ^uO+@PV<Rx<uzARv2rUJU@zg
z4)q$&EE7)HV`=Y5Zxuv?dHO?5#zB+B&Hu6rjl3zKjc$RSqO^~Y6n4xG!(8J&E}_gt
z!M8-p-SZ_(dsm1u8QDJz3PYr_z}*ueXIF?r*EP4xa#zVa$MU4bC3(;{#*^lqS9hSW
zjx1rJ&z$J?&)+_F`8>$HoqxxO2`lV&)utSm=0R^xbnLxpgS{KWJ8bv7<3fW^U-0!6
z@F0aVy@tz)v~cRS*V`Q2OZv^R*?f_L1E_6z{~U^<g6vQc)=+ImXo0KBpL<3~8&hiq
zUVUc74(*f|qD#rAGf#fPH99mUP-pVvCM}Y|uv(EEA9$hpO2AOY8(vPuu?(B~!1)$y
z>+r}E@Qda<<E!MOuxvBNDEH0|=YglfxX;)^0#j;%O`Hw5pNL9avbO@Yle&+B-yZ;h
z_S(m8j}O4?^ZbD4dG>Jr(OCg<)CTs&x=-!eZwvcI`h00GSi;)$T2YO&2V5~e-Xv_}
z2B|gg{Ey8#gG7xK<NgaSkff48WwYT0oea4u4i^r?lk*-*A2bgG=kPRR;p4+#I1#k-
z=~ZWFb+o43$>9Xu8+ZRoo_2!!&+0pV{dR`#PjTVr#tuTD8=B^Jat9NgANCB?9x%7_
z%x2hQJO`O|Iy3b72%I=o@LB7@VW1Y;@EEi61ks11fmyeXLgJs$nBUkNW6)0~akm)(
zgB`tX*S0Yj<@4Xq=`{h{Qw;W{vwFZ_?AT3Fg+C9C_J<2d6VS{=Q}&_C6zKkzt{d0l
zd^!_fs}c}!>Wo_KOC=+y{Mmb4(9sa=O~aoNKE_}Y|2X;<n=Uw2z8Za7r3=fog6!Wn
z41xEG<;;}(ZZN(-;{6Qs&u6ba3X{?{hQgN(kESh+AXtsrsmB86({EVI&wn9+J^E)z
zVu~S<jK0nSj|mVKJJMR|unQjY#Hrfpn}F!0XFrbj0{pSkTs&K60><acl=0gbxE~<*
zE;9hcnvBLy;=Q4J;s?9AaZNbY$1ZeN+64OzS7uZ_Ou)ZZKKg@|33NXVvhTp3SJ~xH
zqE~V>Af@8U4(8pu5Np<K8*oMwE@s3p^)+IiW{~r{Twir~tU}4qT5kwfQc@l6nCQZS
zzsIAsBwc6}`nfQJdtuX;s(o*FszW1F86<XVV;^`O^Mx>Nkl=hX@J3P-dQ-)BDJ`kO
zeCVNb?g}~}SpDq7fh8@-W3RV}w$lf_y+Y6G<8@)n_~z9r%#{yXn32|gpbl?nxrFQQ
zYG6<2n=!VV+7NL2&d@X;_AuURCLHkN67^Jz`9HMbuk0EBxFIdD5OdF}#=QBf+>UN9
zDs<r=O;d*%<`ADW(_4Erq6)&srv!xFYd}xgh4kQQ4XA$i`lH-^J=k$bxb91=A<PY#
zH`u@qXx4QKzqg+SM0^HIhp+QN(TekCpS}d#T(f!PYbOCsCsX70Rti9;U%S#~63$P&
z(EgTTAOQ~@p4;rrl7=%NJ+R~@4E7mopS3$BVUlSxNDOnV47da0*0&{LuE*;)J)JZ>
zq^22C5m$x>vr}oKj7*sS9Snb!MZkbYW`}H#6jZD#M!m&*u?JG!RiiZmV5Lw_bDDt*
zW@^n<eYF+glOJQ&moRl0In}0W^i3Vkp3PPo=Tic^%dgIzQp4xklO@tNB{IPCn&Xrq
z{`oG5af7s<8r)ShFERF&hp6yS_T&H#V1K|r8?TA`?aaqhC5!MpD`U-H<{l5!l{cB~
zPsKTppAT;GK4eCvRu2<SRL+tNg?az(G&7)Ax!1UxcQc`U?;nXGOZe+i!9bg+HZqXo
zkkpF7Dv@yG{MpZT<Af?dO@&ErH*qw$ps;?48Vaof&x?F5B+<r>g^LOEMDfY!6Q@5n
zVgG#D$qbWWBH(NFaUJ>%!a39+|Fy(6aWK27kW+D-*mEfP_Nvl4p>L@tcJ&XYBOfss
zvNy*ZkTf@wL$>TNMzbCJIl7zV_470cxcrJdtWUQlAvQ-wuLYb*^j#q@hH>Ab*!oB6
zdmY(~99Sh@<~%y6cww4sKX)#QRc(=w4?S}^k$R3$o22otJ-kA^k#;wK{%C^GW|4FK
zHN8e`Tuqk`v7m&k`+bMMR5QY@>s#9TzyA<r!*qkoM_!YMju^Bi^wbm5Mr!EFgH9qu
zKi`wQI766+?>nE$Pl=vuR}!WYtjMaOe)B>j1G4&Xmuc4}YE({Tq9LfqiNsFs?I{YU
zMu9n==eeiZ(b4ET-jV0&(TkcE(WZ4)RLc|c#&i!m%Jc7DZ+Xj&gmQZyarUwy#w9wE
z_Y571FWrB4*q#HCwp|yNCWO(&+X1iVUbhmC-<XGI_H!VbEKk!9QZi`bota@AGdp@>
za2v$%URABFs~5GhpuD|4ekDfKsDan$u<H92^03TdigP_Pq{(c@E+%FMbiu$L?>&~t
z#rHX#R9TEjzj~nVkq|dBPPaGCR^UL|OG5=y0&C=3al@A}0~%1k$>`&7RSP7pQv5)d
zb)d24imD2}PTRFL)?+TKgWEX{t=THf=lbOLpcHee`kAwfhR4()iuc(bBb>jQE1?pI
z_@@N1g?ZLeU*&<JNv*vG^H1}{XZ}7sh5HHl3sD?<mB4)=W-953DsY7<Rer&I!eX_E
z`0wG0@HCJ<C+na(tS^-gT*i4(EA5TbZz;7Qj<sA^67OBRT{(}|$?3sp$XLv5wiZZr
zeWOqOqzwkFTS+Xgny_mzoJI4jBz*o{G3*(NIg8_$wP@K@pw=StYQaufIGDT2S&%9V
zo%8`AZku>+9P%bPaD@-pPtiEo(#pbc8@<7PHUX%6$rj=nBo5p+%6aGxQbOPP_UbXb
z_Yp9AYAwacgSor0mLJ?G!L;h-tb_w4*u7n&)jlH)*;ECtn#B?@vqG=&bzKI8J9U2P
z;J%pPbsZ^YT$J)C?dsIQd$}gtg8XeYWt?ZSbZLBwJrmjcRpU)W;M5>la<LxwVC|X&
z+luayR(T`N=2)h#{F&z6?Cx&DKj`ARoiHUltgA^ME@y@2xy-Up^LWp!S+SL^zyl-x
zJGCNAYluab|I)wxV+ID@cZn@y(lGwcz&Qfv6g)3IS2`7j{p3Yus<#z6;6Clq75cx+
zgzxpwcm>7-G5NnV-v1ScgvmtOE8N_`$VOY@dUyxuA5t6bYi5HdU#?x23Z;RIO`mzM
z-PVNKpyZG2@{%BZ{Wp!#PZ3C?>o4fVyjjXfzeCz(yii2Rc>j?h2VlPgd4Lbk|HmI*
zU}F>kSUNRWj_0J$h5em?8qbN7$Lh+mHGnzlm132rGISIiP`w_Y4vUVH1^@3+G)!g>
zeUp`e9i_#5t>#=nE5apkDgkp4VkwlEf9pW<zH0pl6HT!545RI+*MQba<~_xji)xXj
zz4`#pu>^Rk?&SSdf+IRjR)w6JAiD2pwMLjcxZbBFlxT&(?d9Bw%3~bRcF>wfMIGlZ
zqkWjAUGP3(xOIY)Lken&-bFq)R|TC*7ae1zq#<0p{+~7G#<e+>dg!RD0L6{%+m|Y_
zmpCc(*)1<QXbUqrG|Zp|OuN$rC6qP6QZAg*4L|SmX&+_UdHj7g&p(lE_~$(Hv-+|T
z?yE)rOOVHNI6i^cn!o#0fxRv~r9Mv?!ot0_v;%REfxVE^D;)Dn6LOmtf8m@FDJ)8z
zt_etx;Xyl%F1(l86*h+V9_KgmFAibutfwtS!6gb!nCfso_BBipKA;ut)NW3Q?tXoT
z!&MOIbHC)-h06l7SFvdqJ~x-$D|Y!$ULNen4Oi`LB|+I@S6)@J3fS1rUpB|Rq!RP_
zg(flVD}A@^z3Vd0l?NH0uG*mvpOU)QA9iEU*iFrvp)%}Mo<5vtjr)BsGv4sr-oU*$
zQzg-_Z3g&GOzrs<1xlc>6gIBLJip4rCwDpD<^w^x8R_9Ym~YJf`iZJ5&JEsQaXl}v
zPTqR<XhG`Q3dx)4lJGTdiM&}M$24&opGUYiy5q|?$h5oxFFk8IBvD{+uWpeZ3GpjA
z#DBrO^*%Kttpy6?_ReeY>XAt@d7kZx1kMGy?~5^X;6_9f%%(UT<b$_LgQ2y~6malX
zPkR4FoJ)Dau{)B29uU{UZMr=SAU;uFV!%H^ItXU}n=@Y{p82m9Kf(UgjVpHC-i-Jh
zHQw^^1Li({os@sKQ$zrwB?=4pSs7r<s_)1b^%3H~y#gKEne2FfK{vjziw6SHjRVv+
zm?QL8=tWvCEwmF_-}r^F2mak?<}mgTG|;Xx8`e-j1;2X;FE>53`>x3I1q~5%o$?x|
zSu}v<QcUR7331pd<}O?kwgVaiBQG91#|I_czkWadBMHA%=Jt1uW4_F@&L|l?e+v5d
zg6X!fBHXTX%rcvn1M|}-pW9x<{l&CnqDgl#zr5&uf&Pdj7`j9h{IZk=i$=q-mzWE7
zWt?$A@J2rw+4$0`GFk|3cz7o*ck=*h2sW<HWr6sVNME{L65xJENZIOHJCT#d^mHtX
z51umIiQf^Ad#$w((6WgvSTE*(b~rBuE8*<5=^cXLy6MxPhx4rx)GVS^AOYn88_j>d
zb3>dDW1mY43vjmHtT|kS=cR6^<1G9oU{X5HR7)7oO*QoYS*6OrO9_cG*Dw_*%3_aV
zZNTr_TROMR@!zfG$FYj(YnW$ya;8rjdoj~a?&-a3Eet*n90=m10#wnpoWK523M7T6
zx@xr)z<B$zq-KXQ1i0kKZ~xMOElIEW$X+=>$(&Dog0%o5e`m~wsll3X@G(yhEoeOa
z^xB?2Rmhn6aEN)YI^3Z8V4#Mt_kEdPOGj*_fT>lwe^N~s*5p#;ZG%+6S2+LbOWgnC
z*?qRM$VL?Cth07};!uR4{kN_Zm8-(Tpw>&icrHS=OWPm3CjpipC(5QgHNfFxUtK?i
z3@C949m>Rh661trT?1o9n7xcXh1ILW_(~DQ#Wr;~C(ro6`6dOr=o=~ZzP*ne+I9(a
z!}-tK4U|4I_vT2N_Oo^BCM$$xVo<5|vwsA`*~gSZMvKJb6Pj6;-v@|^fXn-*<7Ww0
z6%F6h=1j1DFVQZ>aDmu$C1Y4(ZkzB)Ex$L(vPf3kOP2aig966gQr&fx7Kr=Fe<=U+
z{YOj(B-f`IF{28G<n_Iu`^jh)WB0Frv3Kdi-|G$z3}Ef_oGOm-4_PepUtxxFGnx1P
zVU)(i3}M}A@JQhqB?$1gl~u~~qujO=`^Kc`P)cGjB?ZF<aq#Q)fVzogLeO>OwOP$L
z8B!~*>8!Uzs@j!4>bk*-^cqa;1ydHt)1Ldxw>y|n;=79`e*C=X-a~Gk{a?6H`qqLI
zmCiiL<-S%N-1Uzzav~$#f`yU)ZNaJlrUjC0NY0_@oF@<J@tjM|pg{A%mgicNHVF2e
z6vD>(L*y-=CDyC2CW$Mg=2PY)*qib8qdxl;9@Ka+<WXw|6?8UfmYvUM02S?kod5bL
zuxE9mBD-~rTxN0q@tbm<bgwo4OaF%nUD%tR^d(}2EY0)g-K(@thRv1^{&_J%T1|;8
z35W0?UVr{FmDW}A2{|k>p|DBHl-~W^K~e(^Epu58RU`SR?lnPEHBTNEX;g3Uq(Wwh
zf&RS)E&7j+r1GQUK!K<Dch^^SkW(vpF$Mnh#P&}^6(W@xdFYiMeWb8VEbMdNA*8rU
zWZ?xP*A||e?;nud(2+$?x33u}Sn{Ito0P5{zlG4d)IHToahNwD#?ERZ%7f;5-p`CD
zO99VQD|5R@T?qN6Q}VG3Z~KSWTI7~AfnT-f`2dYFn4G=D?qI78+-*<Y`Yx%!sPOeu
zk8WUpOhJ9`WIpc4?eymu&*6n^A=CEj-pugpQ)T%}c}B3zSe*@5qz3Wp`*t;RuM&5@
zrt5pVaboVW_v2zI0cdm;t^Y$%1MT6ReOEnMK~y<py=pH7$U6BsSsvpARl&<MD-UR(
zJlyz5K-xBuB!9iOjh_PU`SYpvoZ7@WW!hTvaYhi;?LXCo_tDb(M9*k{#C!ai6(M71
zW(ZVP8~3Q&B&?=u{^mrpgW+)9(7YiP&YvpmELr|b(uT4*k36G8lce(+mEIiD;excT
zy5QW|tyE{58!t%)WTE_HeU&_XlS$j1Zi@`d>qs_b{7LvV@m^*fq(jMe3luW)b40GD
z&3k9zCE^-|;nt6lPU6K>;9@8f9TWr&Fz)%-N&Iq)87joRh5jO0YAU?nH$D8~ey;X3
z@w-1;WH=GOK03&ag!)C|NtAuxhZMZ;4|fPL!<@U*iP|@ho~A<mD%pys-2ah-|EU|4
z)?r@4RkKHX%$cDk-Z!Ypd7e<S-rewNjRs}JDt0nuG9%;d${0Cjc1Y=@mg1Sfyym*7
z&8FO0(piXwR@jaY{mkJudbTc%xIWG}7Tuyo8Nhwe9PdwJx5Te!9@`?Wss2l8GVdoZ
z45=mrna+~~kuCe>Rg=lD*?eAymatbva4PVRq$G;I{Qg+1g#=3G-9u4LBZbP-T6S~a
z;75^VoXO>Oa_BSn@qM^wh{79#>_w?$&_KCz_w5c|#Haf4iC+LO^7rlyD%nSed^oen
zThH0itlF*wB1i~{M!$XI;30)5pAD4!m&J)_1=t2kjtZiUkkVux7cRt{J96q1_P8jR
zuY4*=!H*w(GQMJ@nBe__xDFiSLHgp2`VS%*QD3&!m)(dN9V;{a+|$p1N@n(^Zg0|~
zvxoBiJdN1V!_MGuQbwEPZ(~1W@xAnDJS;K&jx8lBAuhNI4&gceqD^B2yC}$Za4Ni}
zVTHoI)qKsAtnekjNZfRe5sGT!-rU9czAt05cN_6OWzOW%xB%xI8J{2atA2nH4);$k
zE<a@faZwX7GVCjPXSZRcfbtB<vJ@O&k@ko9+Msf{5!?3absab?k{5`j2Z7Fvnajir
zx7!}C<N0AcljoX)5Epd#dc5Kq;>Po{FS(LG=7`F*nb*8=)DWMkfR629fejIl9}!QO
zfKpy*!}og~p~Bu#?0#gGc&caju<phjk#zsc!^?NEKPE)le)<k2+_OF0PHs+;_Di~n
z-L*8BcleU6RT1+7qaEJ8=*B&Y3Lk0MY$qC?@8Dk*#(XE83uzU&x1xEa%H<{Yrcmq7
zyGmJN4nav({t(^+brc%ZMn&Shb>U2o+a(^Ty>+I~<1QtTl%eO6U-7}Xw)UEc5<Td(
zrPs~gWCHs_z6ZlO*yG0<++nrM1jd&P?3<a{ARsX_(B>BQhRnHVoj$|?F_&BCcec~P
ztL+qK4`mL}_wzfbUc(QkuZu~Dc=E!nHJJqFN1Mddlk=3?A{20|`Dv@rZp?+O4YCV9
z#ScwMV@+N1Okn1?64jo;1Vg6++?+%h;d{F89TS2bsvZ~US2wdmS{+6BiBg=~3p%Uk
ztwImlSKb;(&f-1qeNC|per{lrc*%LwiwA-ZNshgk+aPu)=#^cG+akpFEq)~!wu!d<
zaEp7VIe=Sf;ri_Va})ITJ5Q!<kbZGR8@iEv$kMor-yxX>tvow6{U?YQd3_A9m%O<`
zFiZ{8uD8ySb@3M-u&XbUQv34dEaFzkqnhEAKhj1?`+rZ1gNSuPocUN)6ZY6>`s?jG
zHusCXme?@;Y40}Kk;LkgaIlX^QjC6)qt1eOx0!dVbYc%n!y5a?FT5zHl%G5EJu|xN
zwyQrgjstyZzHg@NyaUZd1~;wUXGD%y=hCuk+0f%!y4uP~7E~dV+plp=2u(%=v8oO(
z;e@bLs3Feps>oftVDX$01$6Sn{@`aqo_RZ;N;D1;1zN%1yYTg7{^IvviZTvFC#KA~
zQALSbrukU%?r)GB?U^F3mR)4V^Y^qC-#9@}(Cdi30p5Seu4iQ$EfX6ygCE%xrU?04
z0m`3_{vrb`wK0o%mRQW}l|H_?N(_|eHz&Vp#T>Dk^Y6F^NY7vPpRX$MBa0Hg5917U
z;KRgaolRds{QPKtO8XV|So_}C5%Oz^Ob9>uQRB={@`&U2x%|4{<igb!wT<uvLWrPP
zJIVWvNOk=f-sQbYC|xki_}JG@m>fQraC8*sVH#~ittRN;c%eyB<e7g2Q++#~L)|<%
zg+eOCzb_L8{CE34wBUT(tZQyV#uD+>CgO6$-*rNru_e~|QYYE!J{nG9u4TyK{)|64
zToCtt_luBb9td&!7QG+mnEuH`(=lvG0q;tCwh!@!Otj7WVYNyJK>5V3b>}8Q>%7Bx
z++v9Q6BIgaN+%9C1<FsJ$;A1Y_z&zp-qdjNrp0B#?;B}-$IFcO_838jW_K=ywvx4l
zr)+YG@8r+Hlo^FQDp0(4J8b<s9UKsAFi&BqBceuo8Zw4y;M=Mt*U5n&<o#6>NtTN^
zg;OKn=$t%59PqFhwxdrajt2_pZSJH1t(qfucaO~yT#s^yg<KJ6?uqiy<-@+m>oroY
z(Ts3s`s35|wJ)Tq)PWOz=|731ua2qai_k;)K=JS{xnD$Lfd7Z8vL#|vD1lw9s*m8b
zWQs^ULkk?Eqv70Tjf7I$_YzxNg1Aw-Vz5oY0G*1=sd9LK#W^OnEP0y?3Z>ev@A@u)
z_KcWnX9%;R92qON{~Y*GxYf%x|H4hOKAl~zesBkRJUE)IZTXA5Ys~SQ!;Ke-?)zTV
zJjRWJXIf9D^avnFg@J_$QDMYUZ8}pe%!|fcz5WA1AvCvV|H1SDUbOk_tfI{sK6HCZ
zjP24x0W`~(zgT@&9J#kHe>>11g(MQ6P8rCHAT!_I=D}1x#KC5i?JY`&WK>;*mRSXn
zT>r;I^8zA>tNMwyzOE3ey_&P_sKAFtM?QzawgmcdKCSI;j3^?LrxZTl6GVxRHNR#~
zi=(MW0|&GsWzjj;w{o7XqG<8itpxrQdSu}ATj>Lb5L(=Pf23Dc93hqd97|ehbo-T!
z-?P13NSWvFjm(Ns;=yF@)X#i+h})GSB7bm_*gtnbZ_R@alybwG_#XZyum2U*UBmsX
zgV}c|B}*EKiL%8JU)yD(IE|flgSUfl<%tX4`*(t@b)ECpc*BBdA2EGpo@YdFcWm5{
zDP~2_zqF{nuAoHwfY)`pi50mi{KxBma*X_{V9i&5R}czZrf+?j<^sw%<(+H+gT(s~
zt={lkOhE4atn-(R4*jC8xf@3{Pkil;6=VN3N9NWb;r<rv`IzckyOz%h$0%=iNig$4
z*4BIXBfdg#QdTDX0Y0Z*uIaqWcwPjyq}=3pdJBWi&NlJrJbq}Wu3@E4V1u4dWw+TR
zgrMGcfuz|@2hwY6&vftbfOHj^_Sge^8F+YVwXFn!nfJY6s(}#P*J_u^D-wd_<HxMu
zyyS)#hMGAocn*D0`?R-|G6fP|qPdo~j}m>pq!B!Kb(7p_HV_fR^_}>1xL9d2be?QD
zBYN1Fa*o(h5TIJi#ef#~x3mfQ{3B0K7G>*a4-#cX=fwFt=7^e8EMq%aIAJ1|%E@$3
z57|`tV{|m^Jwf+(0y$uwNy&<j;x$ti$UXXweu#gI=$wMW&cz;b%i}+@=0~qc>VF3x
z1e8w^CFb|-oqtn7^tx_;lkZ=m>8SddR?IU{4rbI%d)G$L>z$&y61YjU&m5ew!@L3a
z2%~q3-AhECCg;kvmxDyazSPj|ihsnF;ImDM)!T$%VE*=7Ejl=?Wmw6uz=3|1Wz_w+
z_KMKhYxq-gm=ftb{X40pI#1T$lF~U*F-aPJe_iq-o)ZnN(cAts6F?IgHe9;Rd}xs0
zNFn?^BdT&vb~Jk2OLpDa)l=EdiVQxsZTSarq4JpB>OZ#F(WfzYnS$4h$USRX%-oe1
zeTjH}=H^>UH1qME;DbR{^w)8fuAGJzIRyKg{0SN)e8;7~*=0~8?#13{$^33|*4R&9
z#FPqUetCPd_7W31^Y|XkYQQF$HOF#Fo0|@qFe_F?ePKj0no6n{`8ZIGxSdiTB`2z#
zZP8fbU_t@mY+mv5Txj{>q|2RU29&Q#(pELDkS{s}BfS>+(MHpk8@AyTXd{r?_T)uv
zxRiaWu9ZO=Y`4z#i8<=S>YxFoA*lwM-40VZxQ}yT&*N=c2QGw0D9aS4`Ow%???VBv
zSy7nGZ#|{w4CwrxrVBGoJCH8Njr{t0adi2Ml#3t(586Bz#u6pZgp_7#2ID<=5QEZ(
z{xnZXRANFSEKod7P7cYR7v!EM{yUvOocgdriZiQK*gj!HTc1N;d{kkCVoA0r6NP`I
zPG}6FUp7mQervaq#W|_>VV_qXyc#5~p9>i0%%_9F$#n+70(L~T+x=Pk6B?vlWK}<8
z_m6n6bWdX0UL2X~5Bb##v*3MDs@CpSUbL5Ulvg%`ALXa{UoY}zM|;>f%kyGr&@W0~
z7Y}xBr0=oq6#10_L>$zQc^L2kcV`aU8upGY<lcT!L%B#CI4sFu@Rbh^|JO;~(78@X
z7I`&UG04JFqTTtyUo3Dv_g2-hSHjrW_wOQg4lCxaxBb20#RlC6y=ezt(8IUa8|4{v
z-%0lRPv%3D6i{Rryys5{_6hX!KdfXFgarCPmAC&1!i^s#vun72VsrIlxlI(#qqa+q
z{yyAJWNf{8yo$Z9YG-24t+4SyS!;0=?BIj1vqvulH?@%__C3c_aR2(1L8-x^?H#c9
zZE=~ez&zovZ#8p&ahyn2cpCZ{pSOIKHV=OFt|T893|JOne*Z-OXvv!`F<5C>NmsSv
zh2Orp_j^28!06F;`Y`M<veGwIY#)$B9ZS9acD>T5N=o`OwSyE&7VNSgelLj5eCgi&
zg<mIjUn{OC=kX%$Osl`t4@8mMw$lD6e*u)iy#>y`tK{78g{|sVE)*v;s997efx6bb
zwsf-@(ESak+jG}eNi8=C+Tv_(#CSca?^_}#GGvd+`vKhO`Ji6m15bVw;Zi94tAi7v
zdo>J3X<UdhV)Sd)1}Az+rCa~Z8Ru9F@^)(7!ahscECx+49`s}QPW!$etcdQk_Jp9Y
z7)okkYDs;_f!vZrXYc0-AeY+4X}$;eIx(`VyJRYiy!%QQwL}Eb(dOts3avuuF*QE1
z-4sF+Qu<FO+W1j$YL?ZRWDexT^0|Yxh5;FMky?lQL?NBpcaXnN1`<V_%-X(UuE1B3
zRGAe;D0y5Xwr!5*-iM4igI)+iRr=xJf7ol5wV-EajdSyxOl?<AbqK?qXud~Js`<e4
z?!tp*%&mD}epS{6&!aQ$><v)}kOJm^96CApTyW#DUijrrVR(L1Dtu4+Fmd3iKP~Iq
zHGJQ~As)3`9Gu7j=C5YV@R;RWLJHjuIHmtH%3$gb@%|Vs@9jbCJ@bv7ROrI_u9&au
z*Kkgs`<-@ARFeoCd*f0~|6K!4M4mta_Solg<@al*3mVXT@3a$@h9)dCl<?+%(E|ym
z$`@5z8ZcH^EX}u}1GU%g>V@=Z!9%wvZnAjq{f>>L?^3@qR3rt)z4*X}3}1*b7FqEi
zvqjnvi4qPJ#_&AUaFYjf36IU0exXNajxVm?d$>p(*O|#}x5v3^y}0EZni-Nj+vLY(
zHcM(HZL_?4JVW%rr<XrJ4HAu~Q&0XbqC#uR8d_{VbEI#pME0+yPO?kkSV*B;7y0De
z8RN-4OfbA-<iOnnm?OLO$>~-sAKX`rpFdhc3qntBdMD@ef;z)ep0Eq%A&-2ywc^MK
zH+EBRCvdZY_S(6uV9Xr|v>mE_(n$x}Pvu|7ur3lTm&$)+q?eGv(*C!T<>$z2M;@#9
zQ&6L`<*g)7>k_GP?3v*R_aN!vknDYSm>VwVcP$}&Zfm_?X&%&u{jbaH1@DE{NcG~9
zmDzeRv>+o?eOO)$RVw7<JW$wyV$O`t=(q_Y8freHFOH(9aOGZh9;G-6x}Mo?hv!&@
z=RBS%^sAyW*M-bCgHot%lBLI#LLONMrgYOC5<*oqoQ?q@B1rLzSiNkZ1o9U6v*Yz|
z>^YC5TYf4mgB*993##3gLRW1>-h|8xAY}<-mwTbIXrg@o^Ylz%#7<iy#@{cC@~@=b
zYR!^IH&0CDQ0<XI7p`Zz`@9!M6=~x;jH)FOouh=~izGS3Og5XikRph%yzpmIhXwuS
z_jqrz!i0n!FV1><%A*(Ep$**M1<{Wa_uPJXF`=9P?Q`}Yp+~th`(M=k<3?Xdu8y~x
zyr^Vyu3SG>5+P*`hVn9bn5uM0?~1_w)N%$_CPOt4xoMT7rl1MxwELC3*R^r(d|*`v
z^M}1gVvp`ORe_)B1JMN)szA4tJM5LO0hf>To)~$CeJB2$+7Gm(LGtD&pK&7<NLvfZ
zPk4&`(v@pL#gEnDh~1|({#cxE)l=P_yh9hJl6hM8JF5drmdMcGWeLb()_;DFLI?Jw
z@Z8Yyz&Y}ke`fhdrQubAr{^YzI;a=M|2Q$Bhq?C>+&9}bpyKq^41QMpd`@TUGje4i
zWSPY?O;!}TB)soz3dumk=`n$r%i@stAyk~oL=LEa?mqhbkPP_!x~88I$qxrJyWe_x
zOM_F%^L5c??6>&V;9?aa3;M5nkC!GblSew6POp?wgVUk*gLmCl3FpSUOS>dn$h4i>
zt6zE<PzsC5kDs6UKp}75GiX8pcpANRE52bKKvuPzUIaJ1f6yGfEX@q1w&{EPLU3*_
z`tP@xFh)q(s<?mdb{9Dp;XP?DMGJI}|5lS8a{wLf!;ud@JK$i-jB{MC0(`u0Yn5k-
za~rFznmeQw;78yM5uasw&>HTGs>eK#Ln#unfm@<*uXsVAw+3@fY9b{xx&$$g;MzF{
zcg#<>{H*;@bezb%sd~H~_p3P#tmLj7m?PLj%xK20uMz$eBGwuVG+@6og5jXlZ!+uO
zM=plXlf({{>$;t)>qLIqmljzTygz&HZe&)@0T0AAPk7#wMRA5+d>Lo>k?!w($1Wu?
zqw$8^XWL7RsF|B4@}1&evMaO6_IRWSiukIKBz1=!d#7!4AD-ewY0SHsXtVfGy6u$$
zxvN72>vHS`ZW(seko0^+V$TYBP;=P2JeUDBSthr2AC*H7>9chM`^C|r{EPQ*ec?x;
z-=y!}I<ZMml(##B=QerWr2eFA(RWfe=Zsak`UKf0SdkL*i5E?{=oSyo@u8pqb^ar4
zJgBlr{`p`r8)ETROG%=YL{rV9d8@eBx_r6E&gCu-O55_C?CNDf$}6sHW_&crrvE6g
z;d$TjcK@)!x_QEeqeYZC^&7F4#?*Tzb&7l`QuoMpg%?GanHAXD@F4z}>+bB^J0W6T
zOtgzq1N7>TPmi5c1yP!Hr@8?ph@;VX6;GoFE9WmOB`NU&IWJ1R+CvA1x1<{^FAIaI
zdgxMIKK81<)!1Z><$^QK*AEGvTp=XLJiVSPy@Z~fkyz?82?!YbmH+P{3+()mGi6q~
zNNn|{R|J*gJ?{qhaKEWO9GwdPGU~4e0yCR~<_hZYo;8lJh}a^O>UY%)(x}1Z^ERW$
zTVx?@kIL5^KP3qDl3WfMmVqN)(R-JZbl_x>53i1?BK#G;z>$ePF)_C+Yn}%R!CQkq
zp+Ehyz?yMYeX2$TK7C*onGeLCzC_**!JC*nBfgKOFH#(cF4X(6QW5IU`kCHW#*h0|
zaYL@^Ephbct%*-gEo5jVUw>BEFQVkorJt|%QK0yTW$qsoM@hf15$CAy8$>Xl<K6C3
zTHJ$sxX)6H7I<ETx`eZA5|XcGX;jqbh-~D?u>SNTLC0$>G0reUJ}Jo#r*@tp7p&ED
z*G6ff+-cP$=okf5?YbZz7ApwC(eY2?u$Sd}L}_38`wqhIqRedi-M{49OI_?mg}J1J
z-*&ULlo(9<#PohuV1fL{9pfsu=gG9AKRN&VJxI#Dny)-x)lHV~agDx#^9yVwMPyp?
zEaBiv@h?P#3I;{)x%F$Zz=sdFwBl}3frn(ygj_BSSh}z;$|imz+}!kKmGM0Cg{paV
zD?cx&maclu;U2EQ?LQXHz=jkjKGyoVaiGC_7w!$jF`!R>z6uFkVnrV=e>f+9QV^|(
z+)OmMxkP4pMAbB$pCy}q{ukfHERMVfZx$Ho@S_C*sf#))QfTjs2Nt2xJ5Wi@JJ(48
zdK96jJ+$k|4zz$X7_Y0bZ(T)CPwcNCqTq8wg=t%4)zX=922WlzT@&^5=qGVxqI~3;
zIsSZmtsr1Me?$&F*DI;py){cN2S}=<#|#ot2MbRerxZco=<CCUmH&}6pQ3u=_$5&J
z-VyCn!FWHrQqFXtMHo^3t}_jd=R>ZcU3aQ(Y>}51jAA~U(W9>iWIV>S1<)(CVzv13
zZK8hD$>pU8KRR-@*{VNE3bEdjiW2@qi2`_44}acCi*tUm8Un}oVPbCMa*~A*aJ|>G
zv9DPp6I%Z&Z+xmF1E5o`Yqpu-X1wb!y(J8F98v1ODfl7d_5PZp5$tf&|8{%pEf%=X
zSl!!?^VVPd8W(R~V}X<w_QFTOqVQpL)@x6O2COIPN(qLH6H8*&_1}Y~V5FV-QT!1~
zc<b*is&7UC#_CUe5^;YfcisN@rE%P=Kc;%6|2QW|<p<Y8nE>1x`E_4imm3yT_sXC2
zpoTf6Dvu+7g`l(j3GWe2ewcqy#zgmUh1hR?g84R{$Loxk55AZkC2lN#4?LH=Li{{J
z<5yLJ`;L$5v**9#K2Ou(37-IxY<(j3hSyaT$uAWSzWu}om;cRZ3$9_W#adcUPdFdu
z75_2#r@;x_Df6sc-2&iV%=Tb)7Y)eQFiq-WuTPunkj(oJd{9~TWs(!~lr;DKDSe3d
z=$=~1%PTl9lc6}6Nk1eGKSWpu#IP5vhGFbO6ZXr#art@vLl8a0w2ZKKRf|JUv+ju}
zYiw{v@|XY8^HIVvMR`f45p&aIWu?c=w}>FCQhO$Lap)A1U|q#?Y(h*n3u-Xm`?HF>
z4;>>^G@9P1?-?hWgGZP5`Uyh!zGQDp9$I)QWL{$Jut;<t;8m)AF+|k!m72c5bN2U@
zcbzM(aUb32&|BW?jBu=dV>j2$bz)6iz-xw{3fdn(uF1oE1g-PJ|K9ChCQ8m1^c~UQ
zLrwbmyf=4=p&NQy=9#l1C|AJW_f!%OYI<G3`e2I*l_{m(IO{KhG7?3!zV|Yr@1@+V
z?p%^6@WC%lZhbKn@<4hdL`D$tx`)}%2D742i+#0%#d1i)h%q#_QUQ%ky;6L2W0kyX
z>mNY=;zCOlYaz)Nf~b(b>_lCGB%*rqQ#O*98qJ;^i%i_ZfVA^`5;&i1k|}PpS$n@q
zqGLC9tr)O~BBLJRzpr>XQSq<maeChwP?=@no!dV+(0=C4p|fht=)qey^`0<Ebe!U+
z%{Mj<bRc&uXZNcGa#$}Q`Z=Cguoet>@#AxOXv_TXM$H|F<Lcj-*H+?)D3soRie3!G
z^w3&&d$OZ@HZ(F%0|l^$`0vt{eFC8Cppx;mjTr?VGMjMG7J=leR|0P~$w5w_lX?D@
zCal~zwtX~biBzI0EZDKg4Lco~n1#!QAywa#Cb9z0&DwM6#aMS>-|P}wmmC8)hsQ46
zez#6|Wu+UR{;LSVT@6=E&vQUgRS;dMj~r<2OuH0ctqkES*;Df|3gCfBExX0V;d11G
zzIG4nr5Ehqh{JiDLp`sr`&0=+;vQGpv{pfQrlu~oy99Gds81-Ll9(stIF>&;-ljp*
zhw=(+GiS*>A%D02L>lN?v(7t!_t_deL40kWDu^$P=Q3iyQNewKvCKr3IbzSn`#1Ch
zCx}|h@fnLp+l1bq)It5>U!*=uZutf+3(V6ljK?f25>Dlgy`hP7#LTmPcL}jSWZY4C
zJYVT1PYZMpWn!;Z&h{NXx!QU1w0mU2m(^Z^T*}J(IJ8XeylfL?jpwlc#lOuuyLXxp
zer4{RZbS>uEyntmw%EZdoQlq&dw}?07DZpV)lFDGdtLoQ7JI-|zDcHDkwyz=jbk-e
zdWrv3E)LBwb0RlApE&#53#27~hM|q5Afi|OB0L_-k3=;z_VMf-C3L;hq<M0dh%5&G
zk-7vLFyE-PdF4O_DmND%isN2Sb@;TD+V3^8Y%az;=@}zRp1G0T<IaKXHNQ^Qdh`-O
zPP<0O25L#PmlPttP(hh+T~d`x6-gf*JCK6;A5?x0>j$U%2>o-5`-i)jQU6nkI+qAG
zcz?d6FKIt5+-2>|mrwjcT)X!Ag?lnL(9kzrRMnwFH&W~s<oec#-m>k~Sy2(-v!zzm
zAE!cLZre6S?-z+g$*+!2XCzR?xy=t0OpC<x=t{eK6HX+(;`40xTOM$@qb}^czC<?g
z7)5=~<v}!Di*-)c9i&U7qM>)ADC#U=|3fduftY@DC9N>=0e_&N#HtiK8eoy-X_06l
z-kavyKe{qTUh@CWFGY!SMwxC~#aB0ohxw&N2Z&L!gPEy5X<Y%$cQB7uzZFO3V|3xG
zw3<jQ@qj@xp2s!>a-NKOJxBVd9&@)O@tp0uQ)l$9O;YIAy87LN*c))e`S|LHI^@4^
zqdpz32S2`cZ=sJmkdx@RGns)KGOxN`-GT4xC^|$N8+p~iJ^Q0X8^1Pavwc#uRnmst
zN;!7F?DRl}Ce_biL<P*gP#3te>Osi!!K>eE3_v+X#j%7>9sJ+@mZSZr3+_fg-L4qv
zLLnWeq80YSNjb5kcouU4qvkh5(FOqsI>Bl?tjGo5gAWf~a8rlg$5)+IF!wh{&#fkW
zOb{e;fBrh$Bo2?x9@Tl`!45u~_ju$t`QQe<D}BDXCPeR*j*5`d1b3}(&&;irAnf&o
zdgCiasJXGqy~j!&YK7@2o1S2gC3W)0B1<LEX(`hhD#gCpZFME*9BB{=sIfnOOdhHZ
zzjeG9%LvyOrUd1cIHAvOo>K1`A2c^z<SKf{3E%S0AH8)JbMJ~gW5!NUz;7Nc#ih+z
zV$^;ood+lOTSmcC9u;P|epvJ3i&A=sJ!{Dybdd#A-iVAUALoY`N{4&DTCu?`&q@wD
z*$pDQLQk*k7VbOo)tJ#^Uj%J>>z_UKf*`G6zwa6F!Osp)2DWSb@V%V-_A^m-xUsQ#
z;kzF<_Nrd^ehK&J`~IGLzrK$bP`|Z_XOIZ+s5#`h_+Woan#qm5{Zk~HyOky5_$HzB
z`eV!o%m=>j%sn3U6Z71{l-gN#<KB^(h0cDwKUUg2_puN23%<C;#O`U}g2}WE!c2n$
z+D9&VnB3)ngr}uzfsWhc4sR{5=ny*eThiBpSw;-a9P@X6d|C+YyvKUKZkhr8l`(cY
zBPWGo6j`RZeU;I#bW?`L0y(65()Fn~l^ha&r|ADGUjp&JWsI$8;zdh^EGqW5`H*C?
zzupB_dGtBH;rhh9Ji2RfHdjqw3UQ9;#6FGYMp3Q&D~}RN2!jk7=X2B)C}nzbUsE&>
zI=7+JlS1*2JhpZ5dbT&_^}S!&^+|#n<z9I!u9ixH%FYKSk52XyN{{&h$2-@E<xlTD
z{YE&@)lu2nj0Y>^q2SuG&<rlrlSaKu>5U+&b+-@JW)Mfmlpg(!*J&eS3<INYp5{cc
zbW;{q`K<(zxfz;&jT!ltN+lhiS|Ns*&y+9O3S&?ARmV4&=h(67$$T?O1sc>2O6opT
zf{7m&veSOafgxG13Ly&cKGNf`?sZ`ZHD49U{Gb5gS;IeMZPa0^ucUU@x+=V~*Cr+}
zYT*1{gv$|2H7H(v?R7Ci4=$CjggV*j!llBH<0EPEAlrMi>-9A}A4q+!dgi(YwB0!z
zp*<i6J{26hy^<AS*u5c2!&46In#yYW=cPf{!seYO&ZQ?&MwU!)X}}U~ennoPIvf>Z
z<M}+J3brag>3nfM_Sn~-NslI!fd6ITzVv4ru>4uy=_rpbP@uCmmoCV{!csGT^olmb
z8-@)W!Ff6pi=pHDRWP4lL2t2A2Yb}>#|&s@B%$ba%Dvk6IF~1IUO9GF9R5eqd52@!
zzH!{%>#_IVd#~a?tqNt8l|q9=5-$}E8I=(Yk&sbIMrB3jeJdjo*&z|xTOs>*{r-KA
zqqh#8=f1D&Jip)1=ctR__hdO<NINWWt65nB%swWc%aa!Z<C{s}<b6>Ejz0H#wwf%g
za!r^<kz^q+z$@naK3U|Aljpg<pad~yMVDPszr7=wVODTZ6u4z?3@CU>!10LryZi2l
zLZUmZp0R{77<f4tNvBDmJ*eu;Sehhcrn5A<Im?4b>D8m}`;}nTe`8n&`CNbGuAMYu
zR)l~jr4gh|S$G`E^|uc34eq4W%w6}9LOu>Dxpvf7x$&;iov(l&S}qD1>)O%4Bm1Ah
z&b%_<H=8uuup|K6ogA?o%R-P$bIRZ9k_6b_t~vf*T@rZ|-c7W4NP*k=eEk75SK2yQ
zKoL?U28<uh4t@Jb4ptVC`}U*}*E8d{aG|0ox{vbiJ$=Fje$h5x9tlj~pRZ-TQ<tQM
zVYVD&Qyt`U)KovFA+v#<c<|}E)+#%ERj+R@xUz;Hb9gHki9G7Ml84XNHH$$0_aKu?
zk2qj;OY~4t05{@uHrD&Rp@ZV16YcG7ywF)DRAG(I@p)q&ixh$+c)z77xqOllLdK+<
z+0gTCMNHu0Ka}TrRm3pB=}b+mOP`o>9HfVChK62~6b^{G78T`QlY|L9xbbm+3-Tn!
zzw`0zLOo7)o4A%yCa@xx*mq){0ZPh*u5(1^;9aHcs;#dj;nd529K=&mAaPp_G@@QW
zhW2i7Haj1@{5x>^X%{<a4UtKtit9knodZ8jo#f%cDRXIg)ZdNkou~<WB?(>W)?ejU
z<blu3apI2LBCgn2G-dx|4!c9L^~rFi1i6dTbn=K}x_>D>FLFOGP@Lrvo}%G|Z?vuV
zEKEc|vf1?}>j9KgyZcun@EqbqjdnkE;pGRnYCUP%KZ2kf*A>6!EDBe@3bXbM$v~2$
zQ)fHsDW%Q5Cer%R=jj~z_x%Hmz^$_E<R-xh;^)ZCrpLFj-;og{iyIvnxem`s|4-=W
zAil^qJirYy4gFl98Dzvgxf6~5q5jHIr4MAMgeeIMn}Fl@ZAP%xL9NqUyqnmQ{h3z^
z3umzPZ8b`+z6IRrWVL1C&t0tkT49gG<7r&6r@d*4Y7NW(o&G0QU<*@o?W=Im_QuTQ
zG%i07?Zr}sHs_i||KPbC3j1S5P#$D=@{jw*KWs~7pF_eLJ=BF&oXxs2hK)|XTvI5g
z24T)QoclE!m~Hh~KRL<<A{1Bd9C!PR1rwWWHRK(*)d8*~TR8^kx-!oxYfA&AQ@v@j
zv<y)6{v^HHO|);Cs9IfHMe_u8&L8KE>EV`W%%Qv{GPt<&t&Rn83TQs+eEg9`4}*Gs
zzPj2}p#5_6v+@%%$ooPvo!g{A{NB<W2lW3<j|giMLZ9zkMz`rK<Z)Vf)&14Td=Crh
za?(xC*~RvD?>8rg?_vu9^2K$PJDAVQYi9o?EnrTfDE+-h1}U!chJsvFM9A~&TgfMw
zh~C(zO#wWdM1Jvzf54a^k>Mv0eq4u&xHk94;=9Wxeqrd1;v{1o;uutYs1T(hR$VrY
zj<mI7ku`Y-4{DRZ_-&kZ!x?&_SHHWgq<9A}eE15N&!i=e+Q;n9%#nzt67Fg_cQj`X
z8|12NVk5o_Ufgjt8^Pj~RJLFLr6lgPDzI(QvlHf@B!ahJ@DaA3K8H0@e8WOd=^2Jf
zu@fhSHg-;&6eLt%6>M;XauZ@-CRh)ZaS%D&h4r;gWJF`@%>`eyH+*Ip^2>;lhj2+P
zPR^O4C)N^jAGk{){+^e~kn%|mqL0;XKpW)|e-z#`Bzk#?+<z30M^@JHJcju;@1Z|<
z>5t+E`>yK2e-0Io14guA5o>4~J#PROj|OP1IQ9c@CAp~7=mAT|+x0K>x}ez70AGSM
z!K#u-kVBr1@cI8_=ui(*Wd8f$7MC6zS&!oSZ)88v7Jjl=;?)3^igUZZD7QK+(5q#z
ztO4WysVN-NREIdNV*a^6Em-Z}F!RjPg}PR+X9*nI5Ui4?W|N@-ktsf+J&4Z`Dk^qO
zLQ@~QZI`vo2Q=a07G;OXpdO@%xhyDuR)>;Aqoo2*O$ZY=6<CmyhpKaL^|Cc|AbE)L
z3IA^`VBRu0dtz1<itO7{2AQ?NO`h`JxdZwja9lDlDOne|C23PjR`ih9yI{A?R}1WS
zw5n1~HQ|y|w?9_~4-}>MSr44#gycIZE8_Qgpo1y8;0@ZZxHz-tEYza^E;YjtL#+%>
z|K)Ggu^}!wC&gh)X?1v5WNTW>CkH34=n9UfDZvM$Tg*lFs<3>D+Qe601D>m&*t=7Y
zJZ;Z@er{+~MLu(;=AJXE&^e<^z96U!XSRgysOu|3pH@|nW;p7jJh#3i%B_g}%=kX;
zXc^$$&}=Yf5(oCzfyApfs$em<U+OA47gQ)cSnXku1{h=)mqt8v79*Y+wh|ebP)xPI
zA0Q8Rmx{7?pQu4<^5@#ZQdKCea?$3ZRe>yxvC@|B(x9o;#d<eD5}0@A9*m*hWZeku
z<x416FJq*0#-36ZK0KWaE>@-{-g<=O_<s3`HC<ftTxet`GOtGS3Qds{4tt?D404vR
zv!R*$I^H9m@jjle$LOA~8?o<8$ip4HE$b6oob?Q@{y|YZIFy1A^R?C<+2JF^Lv5uK
z2~mP|+f+r+M3}Ika*4^JLG$jPtlrr=qJ)UeAq#0Q#0`#elkh6xB;2+?jsMp`Pl)N5
z4sj=v6U)cXTv2``NZc?Ne0oh)fG9aCZ*H~CPPhlvX&)TsAj)_iSuAF<6OJZJ3GRW^
zL|tMm?>L(%;okUB>UIT*pg2dF`%aCE*if-Ayw6Mxs`oVQ6Kt!nR-U!b+{0)Nmh^5y
z;tUmWRO`_1YOh7Sn&Qw?vHVQDH>gSR>7gy0>d)iN3myQ}sf>v<61or*)$?HPoF?3H
zaHLoDH3Iw3DVWPDfb_~WMTxQf;9JTR^n6(h)Pwsi5ULGeE5MAWdLOKc{y0B<+Xy=U
zS`16_0x+))|I5xl3@yz0PA)$UKv}2LG9$ql)|&M?4<wj@)u#m)jb9>={fesSlDrwL
ziwyS5d@+RuZT3{N|4g8IX5`6m0l>=>r<}>qzmIp5bZgbz9C{?o8i#o-VB%3Oahcl$
z`fYvrq>?p2;Px(-kf{kh%9-;sGWt-%XlD}ZrUxq-mp&=09R!Xu(}SX~%z-U1<4&Bd
zDI7RZW+*0N1QZ>M;TJi~;G@qzN1k*u$i48(q_Xt@ILbB)+(Gkq8{rxqhZ$Lz+<C5V
zr6&#v$H)3r>J(t$*GAvko-*`v)sp?T=LggD7GXYC3HUax*A|Gpx6!5XFD%ep_4Q3p
zy#d6TSmk8vjAKIQqBmdW{kYJ4oxM%=OfKqeyeKHCLib1h0q^5|*X2Rtw8Cs}hb%D1
z{9q4lR)AQh-M}xXmy+B<$+F-m1D87|DYg1#;YL{Q=Q?Ty7!5tK-G$Cy=cn*eQiTK@
zA?uS*Mjn@xQuW}jRAo5ojxSnkqXK!V=!l}cG%N|td)>c-&KK{lB}8112d%u{oJ$`>
zfnaIL{Pj-+F8o#3+?yAME+vT^T6R^?y&lc&h<cCT&F#z#QO|gfqxWLl<__)^GKz(N
z;)LJkY=LP!EZ|q$o?v^1lZaJe+}`9I#<^A=x$>M7hSvg*+9i*PLY7I%f0s;UAv^pb
zXF{knj0j~<JvuG{9g4tXX3h%Z@4V%gNOZtqqPDutzJ*yFJns>5K@k{TYt9!INdWgF
zgTUE-R=9GlFP(E*6lf@J+bjFg!??j6o>v#x;nUP^C&>==o4#;(F}NZ=M_J0c2@?kt
zl=AHA{pClTrmddSO4InoW}A|p^R$rp?v85G84<)aiOw795rtZNx<ks^-0(+aKG0ZO
z9K`!=S-8php|W0K!$DXSf}V?hzi!0?jV5DCJnvAy&)^dE+LAQPc2gAxg~>wsl?|Ok
z8b<IVy26gCc0as&^GeqDyB1LF87;Nk)&M6d5=Bw~K-%kaDZ^%fEUU33wRuDE5$x=B
zx~2_>ep42|OH&8;-<0RC?Ct}EF^tN;p%39->EqRQ(Ehc$Pqr~m6RfGJ6_i%>A?BJ$
zyuleAcq64v!-u#5S|2GNJbtbN^ol=?efkaHW~tZWk0%(!jmqJ<foQKqDH#%{ZUjV~
z&JD9%GcasPjC>lP1D^cj?^jRg0T|VW8FnavNUhH+9Tz%c{b9^Gr({m3<}tZBMv{Qt
zwF>VZW5ln1EpNLszzgA%)%H~@f3R9v)0l02arm9P?KiK0e9b~4Sj}m~u~ScY-d!mM
zBXS;N*W$#Xwkc3i$qnT-o`YC~I4|%$;mOK-E)IqGjq^-Lq@b3ou`Pfd^=~KW&+Kf8
zLx5eP#2U(p539xqmSwU7-RYMBoV_BDa6c|97x|DbFevbM#R|j19a{gGJ(Qch^jA!h
zOBBT8{6w|Z(Y~4KVqIyO42%ZRk__cU;fllVQRh(!@Ye6Yt%*y(j-kyPEk{W-@1i<I
zFCzyZVh&W~d_udHCzgMTJ;dO+Om6V7iUfoRkB;U=i^9^gvVGQdoY36=n)e}^-#>1R
zS;?*9Mtg0^`?Zq7(2%O&rWqyzmyf5&WCe18VoF%;;$L3yR@gcCMGtxGOi$!V6$`-p
z#jKeQ4H3w6dAi4>I)PVf*~YL}sR8@TOZ$}P6yb5I`MrN+==*y<x-xK$jrdD>`uvQc
z9K5Qwujdtz23ey(ayxXt@E+CKS4%a8hktskk$8g(Cbpy(LT$w$bX2~99nJH7je@5b
zjH)pXXN#)aE(}CL&s-#PnKnE%v6Cyl{s(7!9+)yu{~LS!vi!A592vapQ50{b=7u*r
zBWK8m1c9r~v*8-zR~I(R|L{*nT$v*&@_+KCFz1&HhdVTQpsHKe@j}!(mYH>&hyEl5
zXtkAY73Xn7OiE-C7u6>AQS8xQf<+4M&~_Ag$_jzqrxdb9NjAuA{Fgjn!3v2+uadrA
z*uv5;(^6-!@e>mRAFs)+aS*zfE@Fmbs8+{lwT~&s1dbKA*tjW~L1e8^J?HWLU~*_P
zPw|-{Fh&iXx))&z8LCqz2Vd=jC*fSldv{Er<2!Ir-$#G0@K+V-t_cVvJh_ueYY*Bg
zhlYM0HUnJ;iAD~0O_*v{xRlyt3Jq5Sb}#lCz_oXZBTi)o5PfWduGQHD?oPHd3Yu%d
z#+(1dkFn`Pq@rc6s~YlII%me*h}sYTrWfqx^8w7<PkR-qn1h#4R&NY(1Tyc+-d+A+
z0sPE|sCv)n!hN%A%pQ;RfZKNWh&P`;@VJ;W*ESlUzC!8`yGniJmwGa2?O*`+pD0;1
zix@yJt6gzq%6|B9CZ$*9xgNZ_=oou6MiCIPv8e2U7!-UxGWZMmEHkb*L|LM}Eek^x
zQ?eL8xD<y?{5vZOty+d(N&D$x<;8ZqbpjbAJ&zt%K=<M^zC}-bgDD_Vp-@Nm?;gfg
z>(ZZx_OnToS7X8z$w4*lTU*d3723Pqn`~KRK)GsCc<+r}ytLSk*~vu+evC}NvM}HR
zceTYq<#GyeDE8zKb7TT<QMQWPD3?1y`+oBB9tXU>zbwV6MhSDq!A>U;mtF?*Tg?B&
z0oBuqm3fB+K=X9tldsOmdnJO+y&s^4bD2h*N1QmJN$t|XW=<~n(DCN)wE`NjH{3Xb
z71Kkqzh%^F0?JjWEPXOWe-HU{w)@<J?2uI#Q8F1hjEh(ro0%(%0`qIWjRn-hOzO&D
zFv?*A?L?1q%X~o~i#hpjTbK+;%st(nPnd`|g0zT3Lra7nvtp2bDozNW6s7aw5+k<!
zJ7S{=5yJ7-U+sz6acp%vM0ajx9FMb>Ki20wikn8{HN|HO6T14L=^Z#5A<(tBd*c;9
zTwpRtKDaf4bx2#>>MNy0_pRWC`m>0W@ncHyA<8Lmq#PI!_T(YHKg&@Km1ifo%gg%S
z?JyHPN0R0eHAuwmvUg+S+uL~3O~><(N~z&n;`?ki>m^)@#3*`QiGnz2y2Z*g(~QZj
zu)J?G<|fiBygAa@IHBrSW<dan8~8^pyKbU;+T+*jgVsOC@Z<K=vf1C3@$y?2qJQvN
z!Ow`-46~n&AzrZbMy3)vSM>{DQgt=}RW<9!k3Sm0WTkibHFF(skdM?q?5PcJK4(#e
z(e49gmzSDJupgYhwirG_94scY^1uJ|jiKnVz_iO3Lr~63YS2MEnx&zM%&b-nENPn@
zj)+KsF4>O=LAfK~D-<KO^3@WEMujH~pN(K5==!KF@`Q~nUJZ_RL>!!Riiz`!#_;&C
zTy!rwce)gvpiDSo0Bsqp4Ow&OUe`QQ>&>7K|NIL~OFebLE}c!M<|g9Ssf0befzEq>
z_PBP{6?MRhE9h7!@~%7G4iPYQ(gmeYA3R#PG30T0_*T1L3sM?guO{befXrqcC1aQ&
zJeZ0wOi&kv?O7L0F-Zja#;@|O-V=q5>C<lq4vRpuzwUG0Y~)eY*6yR`5rZ>oypuIo
z#2~F|?11DQA&7~;_;m#rLY`bc;_$X0EYw$P=Vl862N}kD%w7au&F+p4ARo_$9S@@&
znqym5-cMJ*D-4$BJ8Xmp72)|gUNx$33UKe}Rf$ty<>9}ilLP5$%D@rC^F4+f^(9%Z
z-WEnYoc!KmqtQDOkodsARTlBnR9@W~8%6%4H+-BQw~`RQ^Oy2WrH?QyCo+1C22emv
zVyW=)Kipt@{*1kaG#PYjIX-e;;s>rYp74*BeDK1A(b0pK9W46?zn`2Y!K<QQ(mtqP
zlA2iaN9H&`G!zcw;)z?>xTWG|h9VoG^S%1Id-xjWIH`BBL7jsb;O-@6f9&97!asJL
zbXTzun`jAQo)KPf^C&#)M)Pe&%d_{`*@(_u%NJKyX@Sm+-T!F204Q>3Ht!WM656M{
zKV_qNw11s{!b1jHqBi+xdV_-yk<oOo3ParGt~ae(x`Zt7(X-{HQ%b|S)sSxwpD>hP
z;Qtb~LkR|zTs~60D!_OC)%~}}QBIpp<6F^nQ9`LH^|4GI6H$M`<nP&45#k#Mqi%+Z
zGDv$4cD}idxL_wF4mYxH;a4n|4;J72i!0b?cJ?!f!o}YN+b>^LxXb#%W`RcnUiq&u
zoIQs2?So!ew;}RlMR|ALu|!_QHIjJEvLdvJ+<wS8rwRwFOG??!XdzCJ#}RIOHINrE
zeYt?%--@n#xA0e*u$C2c`0RipjE03hU)z$0pC`ioayezty`*BqIY9-C-<_p6hH?u&
zJlGJ8r!r&?9db%Is{(evV(xFF`R|Ils9Tk;ER>AOGLnhw1M&C`4cTuc;LxPF_(?+>
zTs%i+=g*^ghL4`zNqgj#z4zk`fxfpB<X831xamOtvcG(Tls?Lvp->R5Hk1TQhb<!?
zra>+tZr_g1?{9}_I#GUewdB(N*J!>My?Ts42c7>16DF^<BW~gK*H#&;M&bauCR*#}
zXkNX0vqbf!C=7K8Gd&fR21U2>w3oMep#ObRUf3ae!aknvs*(X2aDIuwnOt`;ix;m}
z=f1CDej}|~CYyq=z3?OQ#rJWX*|8Tco}(s)PXtgRH#$+=alX!FfP<K`3Hw-g@fUV+
zDI|n1WEBhYNJt1VrGlagUMhnXGN}F2P*Q)08QA526jPR={EmZmTpse0DDp6+oGTr|
zbPc*9Z5b)R(ByH$`cL%vOTEK+d8!L{sVcoIwvQ3=hi0FT>yscc?zLq35tO@1=Zjr4
zVg%L#^?ptvQFyM6Zw)=<gnOKu9LuJBARc&6{A+_K9Dlj%Vwi~TFV$f_3lm)6S#SM7
zdz~AqEW|!WP5j1dsF`UJo>D>DJ{jiAA=_B2l1;0o3oG<J`jI+&Vi{+uFSdIyJBWW~
zIw25|xQoyKI5D+=u@hhV-q<m+&=P5xH=oZH@(^RAJRJw4IEY)>`4dGmEQH`GvU3ld
zIS6aXNE!!!ej?-KJr*A+0YWv1uBgn9gNWd&_}EaxL2L~FeR|SEjL@{d_=>xklSlx1
z?_vRV;^4~g(?L2C5wz3%DE~1BaVY0f-7Pd9h#^lopnHv#h#q{}IAp;>MBHyZj;k>c
zz0PrdpHA};7}uCjdZ{QeH)hM^%ZhqPiZZr8^SOw42MQm{!%W0WSz5!pI%0&I2f4X^
zK8fHB@$A2^yM>=Ta)s4KQH)?dwUxziNr(uzu8XFRqD0zwFbdv?5ld5&OZ}~!gtK}!
z*LtoFw36oIZfR=+<95PWP_HihTOCatw$K5Ox>G+{BecQEy#B-oG*8Q=t{IM^QGq@V
zQ3aPRDR_0kl;r@L%Q2C4eJ*_}2q!(AocN^_P>xzC{4d(G_<J1|j79Hbu@b6^#0E~N
z>EzFO;JY8nEKB<KTD2kmrdTM|4Dt~DI$xk+%nxcj-8<fBFPiFa{ep3i8}3G`e;#l|
z{|>1(sZe@(P$v1eW_8KI52c-?7pw{}?kH<HkNkEt$zmp4vH;xiKW*<$X~VGvRppO%
zS`f;dR6TZH7B({e>Tj<ikGLo)x#FD>xL&Q5tI99{gH=T>2MSsEFOR+H%7`lD>kGv&
znCT+_**VHD2iYP0Y_WSl9|>x6zMpDE&u5{)7gifD(0==S{(2|ct8Om1bxd7D{s^1k
z`Fwven6vs2(P_Z};*J|vo*^D^yqMGV0AWrLI#*|Yg#mHNNWI2sPef7Q;UL>oJS!Aw
zzLDB0A_LotrmwHuCIjw3N&)4&=w5e-CY*0f0@!UB^-P7NkRR`8Uge||TrXpr;iZ-U
z&&jm{xgcTi*}3(QOG^ki^b~Gi>f(g1nifOcQ4B6$DyBTD#R~=WA(Dq}(Q~w?*l)vF
z0GdQTiQPcF<ma)u{${mY;ATkweeHw<B%6GZRLDWx>bd1X1t%`B_WJB`jhzIi8@^Yi
zc=Cb__pwQ8U*x-JAf<>bNW<fkr(*BMumIUr?e&Oc9>CtDuY_Mk`<2&L$LD*6p~5xp
zz3MA;{@f0!bpFT%J4x|nXG%ChIJ(jI9O4+21@U^miQ@!EnHkZFQBE+Z7Odw-+>k37
z_s9&@k<Zp|MeAr2Cj{x|Rc)IHfc-J0mR(9kn5#X1EcYhz3rcCK&2I3+6s@K|mLdjI
zHfJ;*+-5-cd9shLwLHMGa-efFRRBD$LI2P=GhA7qDGI{nfcL1uex(h>0}Ow1_z9UD
zFeb8ip8bkELyLuJ>c~S7z*suQA;kq{f!je!O6Yu`SoC2L^|tS|%aolyLjnyO*XIji
z!k~WcNU@JU2~s{4%v?sCwnr|f>V)+*LFW2&#REoZIKLP{sH5MrD|IwmKAL-+eq~_E
zXDkNyZ*=vOQujm3it41ZtvuLYxL-+IuLz$i74AgzDFVa0zlQBw>X765Mq=4g1FTwG
zWWUlXL5`=}&oac_tL^wwA~CNHH?+NOnsqBd<wFLUuPE1DeZEb5F;N4aJ-cjoT3HqR
z?k1^cA;0sqFOw}BdY?714XY;xszAn6aOC7uO&DN2zE~it11~Sp=5ZG5fRn<F4*FB-
z(AcZnmS?99M)k${1|&51)%{PnG+qhiwiS;URH(rCyxqq$GOCb#Ro8I=`6UY$&AT_)
z6o6mnYWXn%Rj{(L`11L(JXq&g)oSU<f{>1|y@m4{_H4~sLT0lK`}KmgMEv3^9%85N
zyyCWuahESiIB@M@{CnC8m9`9!tSTVtgYLCM7n!<sjF~}B;^@jW>glIE7)#1D+`%k^
z?)VagjPU)z?f2~0Xrb0bBmL}MDo}rUWnaQL6*Tir+ILV<f&PKGd)3yo5UnHr@9Xp?
zcFgq6VwgM1hd(kz$9Wo1al}>jwn#uhiaYHx$p*SFBXv)3tYi7TdsF8B(L$eD-noX$
z+gLj%_p?@7N~pf27W%=p4}URZ=U$KAD|?)iPI)=s@#x)K3NHZNvy%tjSHJ7PRuhw5
zq+T<F*KJv)`MEjF^>E34O4lVUKVtYrtluB(2yJKFV)G6bQW0TWYrzO7?!=M3LpiXI
zXCrmnUNeB{*|<?-65^H_&y<*6*ugy?a9QsSQ-CVxy$=*_6hx|P!BevL6ogcanx4rz
z%G1%DJ|bz$Mo<L(povE31_7bN+JXtR#ExRkm(6WzLjUF9?z7`;#LsdX+Y?kgM5wFY
z5KU7XUgW$vq;Z2Ba!1~G^SV$G$+YHP?_GXjRnD8Sj}EWnA%+(@)Lr<X;DFt!Id^Wt
z=EFVnn?F!bRlr{Lv^_WBp;H&+WF|-~$;{jvx21zvDUPFcwqG%K*SKEw^#QE>kdbYh
zDhWo$Kt}F610kN*C)nGM_8pe-;glpQSgK4q7vJ&=D>iqvbe<;>rx;wX9arwdhF?GX
z*;f1iz7g5Cb7*hM@QPMi{M{Zl`NWg>CM61|hd3YTpq_DuN<oFpM=@Y$>@<vT5(Ap*
zuE5AnIdBt8`qSW#cpI_@1!EESksGN8C^?1U$uNVz>5d2}D&-#*FpvPhda2txBn5aE
zl!ZhJYgnxZ=a*S&3ebu3vM0H5fS;7^j4s+sKkaxf^VFOJ^?|;AGDY*o6Ot<4w1^+f
za$4cRRSI#?4`_Pm{aOMlhohLoo(KT;&(cr2n-j8j-}>&SLOhA-^}{l!kZ+8X=JYKc
z<+4mUZVSwEfJG%u_cG!e39^S*+#6+v=NHb?*#Ab)>7Y>I{v=M&o{ifO6cvU?zU`K#
zV@z;h@rsafJTDl$JN)#17&|<7NxB&In}M)(+1}!Ip#f&r!#~|FEaQ_Iln?po8G*mU
ziqrlm7rbn$aJ9I;gB5i@?f*}o3GAMnj=EL4h<R5Ta2yV8!Z>Fw>_zS_V%2;t&uYaG
zPrr}hV$G!)>_SD{^>6to2mbsQMW``4XS!&3MQjLzO2(kZhPX7yS1luvCl{2am;EY8
zWrD>BW65zHVIb2kh&Mw$!ez>W!*S=hz|z5!Rh0~JBiW9A&sn5|+c@tqd4@DZvH0lI
z{osV}XRmg>F+@IfH7_@*bS|hq&02R0{r=7gAF1lSCjg>*pX4lUso{h9jr8bWY;g3{
zP4dSzC<hGMZmOTz!20vu+`{uMxUywrW@g(OK4)whCDBMtOxNdhKe@+1#OZqVg>|wL
zOwC;bPPyDfRHV=AkU<WjYVhBc-)&5U^NBM(HdeyK^jc}<#7hpME$`f~R&F*TXkq)u
z94=0HIl905m(Nc8ZR~RoHWVY&_j`@id6S5kFCOBxZ+7uac9yScxm?76%sL)VIe_oo
zGgxWj`-fi%q46*K_zmxV^5A!u<~Dxuu$w*y%9Vey{`0w6n4NG4_;T>IQZIgltm!|8
zrf+yd^ELjRw!ir1WwXx#iL8WvWI|Ut3pHW-{bpo6`aXYu9W2?Mi28a4{a-_ZXo-`#
zEsD~~>_qj3e*NkxP9nw2+w<Q5i8%f*P)5@aJrA^B{W7yZ0dga+9QZ?yf&b;7J*QM{
zfyPt9_l}zb_-j~|62Bdx(eI**wu&>Pk7fMo|8x{Gb<-{#mp=;9-s#^Q{p~<%(r0`m
z!2%5I{O2Ip5gfm|$`5+j!trHYIT^E~uvIPmeyPU>k_1Z*9q2y>8V@z!uv!?ybVQZU
zmu4$SJ9JkO|6&G(=I;e~XY9d9K+`*=)dtQ_s7Tu9+riu22h+Xk_Ry1Ej#`2CASo3o
z=0D?za&-SG90+oQ@2teVSnFe8Y{>iTkCFqBZ`Lch*B*n15$=8fF3_u)y&}Nt2pa~U
z6jR?h0fsJBpW|G>os@kkl!Um*g7F7!8IQtY>`$EXrUQKT%{P`|)`05n3Nh~cn(&{{
z#8Gk`O~^Y&DeF6>3I!VFUa`o78L)Ag^JAbUoRoIS(Dl~@o6`~^e~zKKe2{#|xd$rX
z<CSB6$V?wJKFE5yZis+iiJGV|l`8Ok;(y|IMHU2h&AK_P6(FB!^-=|^8b~F?DEbL%
z!nW$;l<;>tz<1SZxu#7Ev@6VLNxeGo<?Eqycj)yXG_rn&&QKfZgyX#)N@xM)fecjv
zRSnoY+M*}#tp=xl?8^GhAoHfnR&+7i{{~qt*;FcO07rRf(CDHX1To5E`y7=)^Y0Vi
z&sSAJJb3qf*&}supv^kTprsAVk53-kYFC3o7h9@-tr{@WdiCML3k7gHrpV`5g8Ugq
z9`v-D8nE|E)Hv(1GQ`b%Yq;2@1~fCd+CTHvfs}Z?GW)3lgkA_^q21PoJ7n=^{zz(o
z|7Pz%_p&CmF?(rwIGVx`&%vIsMZ~k?#(J+@;DM<1+5j@d*?wy`eD1&x9ys-_ckpbe
zIAmta*+`54+GACzEgaASv9A2G>9ZP;`l#ix1UkPg1eiM7SLp)fjh4z2Mk+wWo(a-#
zMLuKveCz%gHIVI{)!aF*0C$D$Pd+SAfVFD&D-!7E@nOMJ=l)rApYhCk=_ZCa@F9Mm
zl9aWf$IR43O%Ls1lp`ur($(Pl^r}J&n<i|=@7;EZ+Xuno{!#yIP|huP-}bL)3=FS-
z)-|+1+@7fG(T!-nA6_n(o=_$RTh2yHK8lhMF4q;|@CWrY<_~Ts`=A`heTUNyXs*L2
z_J}=2NC2dlZ>1c#Aqv8N%D(*bk}xS^lepzbf+I}d3r?dx^~DSSWF--I_;XyDktW(p
z6nl=Bq8B7gQ5ad<(Qu*Oc(mI;<Q-x@@{8W+t2jI)A3S~RqyQA(c$4%i2=xT(hP!*I
zQ2$oUH}He1EHu43lb?%vbB$m3n&eLi!yV_%e9aXBh@^2zh@$&}JI4L!+M51^8Q0YY
zanx|ZHJ+jro<78{lDIH~`E!Do?9;+A=5?IS(tvBm5}of~Zp4VSBmb$xKD&H*e&C<W
zJ?DykkLit)Bcf0LVEx0?a}9_ek!bm%iFuX{`jtu}lRh%TAT#&6`?p=pg<^+&K#voy
z(u<})W)Xq*kA>cPz5Jl4Ks{CvAPT18iE)gmFIaf#C(~*4o^_R}oPVpr2L}V$RhT73
zVctaI=Vx{v_@p<*Gonoa%~Be()DH!~Z2qU#d?L#E%~{iJ8!~|XAt6K>5d#L&^1^{9
zXm2&f&9D?L4Qtx>nHAqIV3wl!qm@5IVK^ai|B*BExZ(TKheA|a_=r0%t6wxb_>>f0
ztVG_Ckd8O|4E<0qQGIr!n?OD~zdYaV8)Oi?!w^S~q4)LV^OTAGA`oC?$t3-U1LBtX
z$a@;e;OX;y)-Dpl5Ey&?N^Cj>=qCyD2Us#duut7~V-Fi_1t<8)v@T)RI;4^4i8bs$
zL5B9#Wj2ruf9bb-f&nh5KlqGC4dE}G6*F&m(8Kw4WsLIUI5xa?EX#F*1gSV9E1mWa
zEcJrqt-0=YEV2B(2<z<yY;(JuvV`X;el3hOf%=*#bnRdBO}d26!`F_A_!j)c3KTOc
zJ<n3Wqa$r+_DY3e`=#<Zj8+yx3Js(DPYOZHW!cpG+dOdiw47^nFeePWZCO1W$Ordg
zn!;{}A|IIGe!J0BLCED;=yQ0uhg}L<sAs=P4;*1~9U-SBVCy5J7R|Oe)SEcettH7q
zMT+8!^dOWgy{w;@YK8g+azUGW5<FnBd$M_h@*rgAOt(@Lm_l*_bwhcF3FPHAUC(vc
z57|YXlzu2*u%N>7K=ZsN1l0Wg<~soJ)SZl6J;fM)_b=$o>6ro5yyH@Sm@y2$Fy~6n
zHU)3o=uPjoDey}MDXyV>!&dm`hnGzN`PZtv60R75?@b}Ww75gyAlsdmC}<3mjujtM
zl8%7F!w(c1i1U7FsVz-ON)Mub4=a7vF#&#Tw9j4QAWX!V_*nbc!00BmnSi7fkg;UY
zCM24`uNPdr2bK)LQn|vxtlAhZ!RC%fzAkJ>_e>ho7(tPvFLk=U9;8y|KB~QIjB+`>
z&te!4f~D4jbB0?cATiP37(@v`ADrerCt(6?V@D6iAaAC0qoT<41(g2`TtUVO<hNqt
zI_l0Q2{}ziudKh9f%i3C(IY4~sg}2rQo|vLJ~uVHM$b@hk<Ps6u@mB-M^%Su_b|Xr
z=7RLvH0mjZA1|99mIAho^zFcRh?~NB|D+CsI4JRsd<lJo?%~INf08&T0Zoq;J7dvv
z?Ai2#&MTV82hx4}rSw;6xY7Fl%}F*jFy@xiXF~ahk0Szgf9Is3o5t^6EV|c`Hi{1Q
zi_1eqwf)!3_Yx?_JNUgaMiSm6JPxB_kbw>I^I!kONrUN`(XzpVN}%HK=*|E4^_t|d
zH2fdrK)QJTsaY?|BWFbfi-k#mX!ZRv4p#|K_^PMxc2x{c1xNol?~Och@~RT4=Q-iS
zk=tj&&6coOhxt54O~f0GoL!vnMe})+t9A7#w?1^@!LbE2Z^xPs(q9c6!%SYNOb()R
z{DgD7jg{aA-Vv^E?sW7Y#@%X%85nHh0e*&@?}yl7l-mEUbS5pNDjDW__v~RWU8e@-
zw1g4=Y*WDLD+kJ#u*jNDY-3EW=N9Gsm<YWFp|OMVOoYod`ytjo3Mf_Fw$kxK&+pL3
zUZim`_;+(*vrUskTzc_b%`$-zUdbCTT%s0%uzclMvjZ&9Vm{xKeTp4^J#8a5%HV{%
zuXggKEX5#6o4s61iUg;4>iV`Bg+WbN)p>u_4(2VIyJu^|07^Af*#{KmAzJZxq1FQ?
z6r+3Q<;5!thFdn>KGf1sw$-_uJt74M20E@wqdhyy?We^bQvtVwPcAV0hkREDSl(Sm
zxvhOh{XaRKq(NWq#6w4JX;8XyRs1IEgXe}nyE(9h<|B(S^Ih6X5Z#o+o^@6l{66#-
z1kcNX)7skdDdf-Q`tP!*zNIj@*X~`Rk&}R7<`%XF3U#=tmgcg(DFb7Y+53ApQC~t~
zU}Cmg1Kb<hTZKQ#LB(Lx+K!hTm{8ri#U-Nzr>q#=OwoOCjwQ}JhfD<`+wGoJ>>=*+
zd=y>3fC{+2cmL9Fs0w6T;`+6{(xCI<ykfAC478n79(!A&1RdQD?2#pCUg225A{C5&
z4o?`5w=<687pqzyxc;C8zvWZyZG)&^Gez~;=JEt?n#t4Kd889NB3gBk0{L4SPC1P=
zp!e$q3i@*gTdCnu{u}Xb%5m&{V5=HEnm4q{r_Z1FrG{Bpf5^`w0C>ru<Ks?7FfGaf
z^7JO`w9p+hZlEOEJft6vo1=Vb#93cJ&(9wb+2vDJw2+f=s`Jx$DW<ST>HFs}ffZJ{
ztk1n=hbKEj(>g}%phEhd6s*n-)(tx0Z%-g^i8|@H=I|V*%RA{^fjloae+-WBEo@`e
z8q!Dw!v(D>Ow<-+T#zTiO7$&`AM##YdDfdJ1QfLF=duUMq5Kd#jno>-5ib@w4NjxE
zpvHrfhm%phhdQKYWTXNAGx476oy7*mWLFX#sn14uc##ow1+7@D%Dc!1h?5u>>E3>J
zW)~|jF#oCkO%e`sIcllT@Iv3Q1*e=4LHIB<fAf?g6>u+HnED#hjEily95sKz0WXW=
zPE4<GBM+0;t!TtG)Oh?nU+D`2#IDcM$FGs#!krUIg6Lf2tDp6D2E8}3*i)r8-FTp~
z`L-czCmX~MeEL4<wScYYwl2KxpaMZrgW8HiOc0}T{4zzX1ccUi@(+Y@f%jeQ-*@N7
zak<iNjhH;N-{Pb)&o)@arw!`<)!jpU(U81Py_&QzzE$u*P>mH1-W*F;5~hSriwW`z
z7!!QUHc)yr!wJli>C$H(ZeX89Ggp41T!{+TS49%5Jj@E_DV7}*1ffWOp~eg;<cW%!
z8B0d<U-zWNn|%9WKGU9eB31{)Z!uIm&uBwv9N8T4P#x+!@A@y$qCA1s4f(V0wW04G
zkxIUR`0)q6%=rG*hC#=W2+mPWkehE7+3`_F_gkgKgA$66<8Rnw#47>jTD8*sHHZ)V
z@;@=oOXz+bv_m4#6@rF1?*)%wd7w6`P_s0VhWv%QuT;>zLY$`K3)K?JeU?Ueq$0oN
zeGk_h?4v4VRD68-8+rG<cXHmvPfNnwJxlrh#q5wrt&%*8IFHJuHlIe03qlwt>+79%
z36#fb`?$j(2`+yJ4xhTg4rDoRE1w$*!X>rWtQQ}0Ko{le>9lw3pl)o!ArMXpJse8Z
z3pVT!a)>4M6nPmw%I(P_nTY%#GPBb|jl3Y=x|35<t^tydGfps;ih;S*zPG=Z#G#8i
zfMe4{9&U?X`^t#?OEt$_s#_8fFZ`-&c4d$l{Jx-Xl|L&BU&l7qEi<*@osrlPT{kp0
z4VwK<h2~lLuVfN~k8{Ds<vRHnjHnMhFKPVcrWEvuWjDU<k%nhu{ecHEse$X})Kp=}
z4)!Lsf9`C)C{+BFc=v`2`6BgGv*sr_KwVJo`TK2N2)*{K@m8w}=qFnK$F<Ic?%5Lx
zU$3abmk)V4G`sxZ=wua9;Uomj8yV)ps1I{7+2q@0wBM-QbM0Qw69FbtqFlAI2q;N5
z>XprMgGEm}wKUoTgjj|v&=t`^{wy`tgnA?I0<R}oD@%j*{?GVnO$HFV>~wYJz9>*I
z(~^DSB*A}eCx=`fO2Iy#f~6CaTo8V=&FfN#IF#I4p<+v7gJ5or=?*tKX#cviQAOg0
zY>^A$*{bOG!oA=un8yVg=PvMSq)0*3P^Z|3KV*=3btSjvTR#@gCE^~dK?`;L8*Af+
zOfV<nWd2Cw2NpJXB!<EQ<u7!)IBfJe!KS#Q;O_thc+OGBwbUT5t>A5OUT-q6Z>M?k
zTZ;>}M+bY|%hxdWb}6p6zmXSsOqi*mV*@iT{pQVlfE`ZsR`vbK=Y%DbCfT>He4ufV
z?i60vgAdkFC_Oyhgs0>j&!si}gGC-tnbw}{!=4K=Dy7i~!G5le@uI|4Y*9#+NczbP
zFVt5sKOn)$14GGr(Ny3c;j<L*7VY))*%M~h+i}_yYj-=3U2MJQUHRN05m25#&Q)ha
z1JU-=H%69(p`}5<@lh@EFmRXg(N@X8$f=~Th$|eh%{^%9h~`W8=)E&_dr|KC#mTbx
zUnHokY|Q_*ioA}yt+MJL{$WenV^b}>3z*c{rQ{_We&9^d9>CB!E2xt!@Temtl>Pet
zxr<H!$S!jZoQstLF?YD1u+0a}wQ|(?6|Gpw_K_qOrstUJ^|J{PG-O16zGl324kb}{
zQJfjmU&M241s;TbVjvc`FW%26`G+gKjA|H@ti>r4qBZa94dKfLcV=#F|Hdj*+}0HO
ze_`RAFA837*W+pIwoNlKv$$~BlZ%s*V|dwZlZn6ocJYKI0or08I%3Lu=IFM<6z*Qg
z)R4ZPo+$Vi*dKp|lGwU6f}L@i!tM@Ejd*^k$0o81{&s~fV&`7m@ZV{f!7VNye_O1B
zIB^zZ6)Jz<V=95yPe(sm!L=PQvB6W5*w?4*Nh{psu<MZV$KVYaG5p}!y{5Po?0BP(
z#0KXEChS(1N2M`~zu}cE6(nbYYf7Odr1R?-<(2qW1+_lxWvZ4#wb}qiOlrMmVw%L$
zPaPoT&#d6do(_7;_6vByUxP&I`vUO5KXK#3)Gl_yFhM?$X$@QdnQ@#ajv0cSXUpkO
zZge{I{!$V;Z~0pNGpqQ?jQV*KI(JU95y}47^YZH{iEmH8F<+EmAYR087FIl`A#_?j
zvhwXngxdt$9TgjD0xX>(-d^M;)T*60@m>}}V^?4<yOM)Ay7qxbH<^-1dFwE8f}fLM
zQ9U`h=SD`<Qo4Mee9cIN-8ggQ{TMyrl!KGKs$e2qcUSmF4A=0aPl_H{hIN=;0qH{U
zA}1knaG@q=9r0U3Gk%gQ&=JbD2j?DKXC}BCJo#Gx?cfKZN5kWdS8xHkYlD|fKj6$~
z%bqYG-%F+h&q(RDKll(Y5euK2u%E@j_9cBASilP@Yu<Z5@vYjoJI<{vge-NGFN-c2
zVVK2T7JP@C=vLTT%#L6pHhs9`N0sRa5*Pa$ha==f|0<0_yX+=DciHMNKP=%4&(HPK
z77GxX*UdU}CuxZ#mYi2Q+^hK6+moSzXSQ*7R|j(6Y*r#eZ}PsJBNai*eDV$T9wXtC
z<wm!k7x6x%YtFT~E#qC|eYUw*mhlzNiI&`kKll_=#y1{x-pwLWCzakA#qsw)AG$XB
zV44|ecQ}H6;z~7dT||>NagO?tP?N9x;K|t{=P)sWH9q8b4jZNho`WepCtj^$EbXU9
zj~(ZOu6=BuryD7tF7tT%9g4r0Gmc)af;_+)vJ-5JcyR)^?@EoI-NT12_Xbb;vl9{?
zDWadFn23y1)ko=@*$Faxtup%bF)ZzuvSptZ3-K@YO49B{W`g4a*SX<k<kO+6{7Z-U
zvVR{Zv^V9VIWS}A{>L{(iI89UessUs2*bK-2OVfv@XB+KSs%o)6LM{T54=NtO?I)`
zoTt4cqUBv^!p)Jt_&~tP(O)C;c!TFNr=i!pM7Rg{kl#4sioU};B&FC0X0oU#BYX#w
zDhxED+(X}&FDw1&+zWUlqZWU6A>!A5KlIYhg@Z8dpITE7r6wG)zPB&6$%(E!H`?uC
z3c_16^Ty66M&dz~&(p)Ui`eP<3k(|(bi`$f8n)QmOIY~q%9mu;Zana`<J4>?J&`70
zcM#87!>Nv@f4@Jqj1Q7-b%?&4!LRFY*XJ&90{^2vQX2B$wO17?vpyDpkP*t%unxpm
zE578{-GjV!g3o6Y#<y^;zQixa)6F=`GHcZ_s|h?C44vm^rm=v*^P?A^QV<$(F&_Kd
zDGAYrcopl01zh3YM&j~W8hE+MdfMRXB<}gVGv-4T`Z@lJy<mKSoG`#fVy~6g<MSAM
z@vV|=d=--z+=-(hc7G;mil>kfr}b-_ysby@Uok-k1@8aBzds3Cs!L`d+V2~zKIlJ&
zCj?}DnC2oQ-0LmnE@iIcI9ZI5{S-TqbV=>cd7PT~9aMf~f5Sg))^*%k!j_Vd|0`Gb
z*`*b8@emXuZ&<}&$MVq}QAW>;=o5NBOzDZv5`MW|#{~>K<*oR1a}58at8<Kva|(}T
z>gr+9-o(Ez{`WG;6#2Mo4vf0?4&oF~8$Kuue!~XHGDeBtOu(+|aMj}xHOR+Jf1uZ1
z!TMMis-IZ4V|<j4#oJE2#uI8L3MxIuF&Y19gEtyv(AxJ%w!W7INXJ^FdrQAzuQUB4
zSih`eENW(t-jUORinKzhoHG{$uX;F(Bai0!5xHCC1!V9$RiSy=f()#p^nZ=CQo-WB
zPBDu~YRG=Zv6i;W2m(Lax6NyRV9{?YX3o^CV+*s9!pcDlxV>$Yi1_O*?6%Ez^Y8zV
zAL3~fooEX=2%C^|UbUlx``BTr8^bK%<=CsLmG~C>;o+lJ*-ZwcD|?4mhnWdMo6eZ6
z^hP}0AdfTu;a~i&@u7*J;&H70r~A$NSL{S+9p5a=f9%8#2e)v{Dh=UqYwo^V7z1HK
z@rT^5V+-d`=qRN2r6i^twGUkNryx{gEmg?)IfxT?K5(#0vk(&8U3GqsCh#lQSU0*q
zFX9GOPglcK$cQ<2+3W&-Hp0B#sk%g-L`0N);;K@nCn`+??pxH86J?1GocH+|iR6M)
zA%>w0MC3;DsZ+8f!lr!qrRr}gqQ)aVEA3Yw9v10$=It&mOvwK(;FbS@O>PA39pW6v
zNsh%AOtn{Wi&E0Bxe*E?M*Y#X)}IqNR^)0nUiuf$nOk2A^XbNK`gu@aP9MjOPJSUa
z+!RoLnMwNaxh;(3^^HqEn*_EzH`fah=h7<ACmWRb;lIj_WK{_Pn4`%U-f3opLxBpG
zO&jclNTZun<Tf+Va9#LVi*gQPrPr4NLc~Bj^_soXd>NJ_pMJOgHw7%%e;<#E{EOwr
zc<Z*^r31q}mS=At?BHRa_pfK7{kYq=KY<Gj37C0<r|{$J8Tgd4qv4BGM(7YNEAKSp
z0PXnE%*U@+a0$AP$Bx~az#7&=GskB-@YCI$%ZCF8@Vq+z_NAZP(A9LT=w=++w;c+a
zbq}Y4-!vC8#1=QPt?8rx>G;!w1M(bjBR{N~HS>*?UX%x0Kib73u#1JhGy8p#c^69z
z2zUQR$p$>dPb#ajB|whHe_CmK9&g(7+cngrf#219<TV81xi^0^6!xJcJpKrX#iLw-
zm+;mjx<VO{-JZ6wT$X?$%F9EhX^J3gm%31aayvs?+X0klZ(#Roozf)_`Ms}I4aV0B
z!=<NBZrl_R1Lm|%JsC4u7}X7rQ@g4Nww>{p8lCkZl6YvjtE~y6?l)GaQLZTMV$sJQ
zW>H9JqDm-7^Qm8j$C!^Pi-9pM^V`c8Rp3dM@%XDC^!EnpbJnK{L!pA3({{Wr7zXEz
z23^$#s&hYY-Ynk-Ha=>7?X2qHW}lKPXRHP<s^z&U(4I%H#KP~%V^!!OFC?3?Q3bl&
ze_|<*Xn?P6!L33)bx^o*S8?SU9UM&UR&3Z}0?P1+?Q8!K=dGX3+T;%{m>d~n`spPM
zyOiWN_n+W_=r3W;1rbZwN9)HNTsL^(?`B`rzdv+voMz)-^9wQPyQNC`S%Dogl^U8R
z-f@A)f?0@nIvZp}UA-+}&jZhRh#c1uW=QxUB6X*m4;C`541#?Tuj9Q^=KEkVFp%46
ztTo^V>T;D|H_sv;Qugo!ZyX<ZwrMl&XXFC)yUfqqFb)_MjI4c*<_+&Rne)@a*<iZR
z`%lQtJ*?)!*LVjJ#8>D!%0XjIiFh-{5F<+hrL(zvA~)#ZpT}L^haae+E$++Pfjts5
zH0}FH&i4mXj@SwBG+}{XGf|O+j3khIa~S`}L<TjqCo`Xg(Gk_wWuYpF=i}3y$>^%m
zgTH#0Lw!4fmiXLZ5OwkrBk}Ay1DXmk6PDfetO{Q#iT^AgTd>5l5W(*G@4IiZ5Xueh
zv=rrZgx<YB$vbjv#PWtkBF8&sB2-Q>eZ`eT+@P#<IC6nRFt01{ile>lJ>3|^UPA(>
zJ~W^@e-HUS3XRU2W>FG(RAhF46IO6D#{jPueMX{xhrx9&Yzr6CSiWX%xrp~1uFQNg
zu!P&3(T;bnW+1-kvQKy`&f^p6%SsgOG(@A*R=jO2dj5p8cV1d&ArvO?uWi1ZMAg14
zo0rgYR7N7h%3hm=sIXQo)RSZ*RP}nZ4Exy#gXyzs60RJ?E+yAl$zxxzGzQHS3NspL
z^?TTs%Pj<P7eY#SCuL#S>(*MF3>RqosvWr6A_es=)<Gp#B%!3vm*r{E7H+q~UwvE?
z<(7G4`<nPS@T_}!Xa0&TVZz^^o<8lrguUgtC6aQN0`~b?vvsM_0ZBaQRGJJM7zNkm
zH_%E!wT>g>Ckr_!S}r&6aFGC&(hyQm#!q~f!E?UcgdYa7#5J~3k$)a2UItr;LB$bJ
zsmkMrZ@Uh@X_v{M*MRYGBA*O!(Cp;q9utO>ob~Uw+G?=A4ko*)71ST<MAMfRZh}0R
zVpDuu34Xh^H{bok2UBl9s(wN}QZ3D4o);e!A(8AmOInsBxRvNKz6?|ahTl6AN7JZb
zOXk<1EltF4=63k@QF9ApE1FysGA0AIdjjpo-!`yhiZ|y;rRej%exBRfdjxwKQpBT)
zmt*iBUEVL}zqo~YY`jfiH=fSAJ>K-C0(;cVbu=^q^}oy49g_{I;pbYp?j-F7PJMSp
zU_*-r7QdE$x=ASpqHM#)&R4i$zWJomEfE<=Gb2|xzmEal$PE>Jvlj!&rl#^AY0@Ay
z?mk?NauFv?JeO=wqxqZlQ~+t52Fm+d9;^C^Ld>S(gX=Y-!1#5u@a<|ocIHiwnRLcq
z%xJ1Y<IFg^hhL|0`gWBGTtbF&W#90_`Ny7eDvAWQ5#V+%jI@a*xzYJulwHC|1Fmj&
z<-TL@q%Junl=BcqbZ_s(ev%^m3m+y=nIkUu`Q4N1QDTH#if8|ZF(={qtfk<YcO#~H
z!Txs#%AW>n?K8Q3pO?u0Tujm7$VR;Ge6O=_pCGaLtxP=}<pw_9Y<rWg&rFyX+bz#3
z3K3MisV!;eg$bMIYgYN+#fi+O?r)sye{id3Q80XP2`4uDlTw^`2-UghJCqm;oVj$D
zpS+ue=p53ii4~wDnBud#AfFkib$@Bz6&D1)l*h{kio&oKPY9^!p}A$jo7tgq#P`lS
zbeiWb2NBKu;!)n@9&Y?wKIQ-4cmBQlLUz9`{8?<lHN6QRtn>3%Q@Z4J+&}o_hRP@z
zVR^lg%8Z49*f6`5>#oH{s4xv$F~p(0%gZZ*BD+Rlrfl?`nHlY4G~P)lH<*Bel-sZ{
z+7GFb|Bs^c48-zn!?>B9z4zXG&-=7@p@cN-N+l%ZPa>pbgq8*(D=QI|+>aGXNMz6K
znZ5O1?{^=bp6=(q&g(dj<99?8-o3(Lo#~z*IfWLGNqUduCTqiKv-k@nt0*7D-^XUJ
zt`09pQv*ZL9_jR4@8a;PKESwiuO0<J8OuFB(Jpm3k|I%Z#!(yb0S+I{`)I(&v0n3a
zMg?f_aVGj_Ck>1d+w$Fx%8()W?^D{oB7Ew8oyzr20oq%y&vqM10x!bU8?pSqhn(T?
z81jYpwe!24RuqMA?=E?(6skf1MQ|HCqdvF?pX&<$XaFS24U;+12EcrNV0l}?0OA_Q
z<gR|vhcx2xuYBw}(DIEqY?(?2mIW_S&mKX2#KYECI#p0#F=KF&Eb`lJ_wzR^UK9n|
z!~XL$$wE+-qop_Dfck7JKlj8<iNnft72898IS_i6^i0A~8OF6s6o)$H;al3YTb-Xc
zOqYgdh@TY!1@Vx|@&sv+Ut0emB&GsW{IlX|BVy3!A+Lop?!e~|CK!nH(w<9fK|4+q
z!1r>NHv78>nD^Y3)!-BXO`7UUE$`6#L~9^m<i0rg2D#@wIxPyLll&=Pk)O7S?NIx6
z4n4#s7Wnp@;)m}+)B2)Sf?&&3-IJz`_N1?gHArNc!S7Aqd4HTAEDx%ljg7FupC==e
zdN;Q)^4&P{5ob|QK1@9BFM)at=bt;cE((F;(1|0Vh#NT8pKK(-zyag=5o{lolwiUq
z&}peb5KN4ZkU4XpJ=S`D;MlYrm=88Icqod%e(i=QX`BQs5hCmg<rLvgjeJ^KtuQ$8
zi+)tSiF!?Aul=YhlY>vR-H|<B5-@sMbxv(r20ka(Wm}@&#Yf67ib5YFU9);Uqlyc0
zYxucJOKVXMBvJbIX+04z`eAvTbyxy!#srVw2~z>})QaQY!iw-_o-)e%JIW{I5ECgC
zDuY<=M(NcAO|aExj$ay81)V`(;(#4<AeVU8-l&K2+^k2wOAkl`+464%jR<wPWO^&S
zHcSEr<smj80qMi)IbxT7DL{DEc${FRI&hG5ZPlRs0aZs(S{jcAJc$?PCmU3O6FY^r
zb4d4nLi?HM%?tEB=EqCtODn;@DP3mkS+qYI8a|+JL_K@w&K~zDkc6<`k<|OwxFGm!
ztScK0;@+uuv`sRyL$rzAmL5SK*7!ahYIL$e_Am8VmM0ugx%8`oZ<Gz}nQJGzC|Tgm
z(g$r514ei}r0Oht(f~H>)$)0l6reg)$Z@Yo3@+N!PjDgr!|n|%kl$4f7V%iss!?5N
zP24l>EmMQ0JDTyeA-XX9@IckmMjY0v4#(03P2ma=H0Tv0ZjkEHTNcL@fpvr{L>SF|
zPZ$3bULZ!_%jdORIc2nuBcYATrj<oKr>}Qp)DcH5=4opz8{*<@XvhAt5`^VPlUyvE
zvT!YM*|P6DB_T+??tpxM0bh1L_O{4k7bAMCr#~1zidj9kpQDOj!W8{?Pp$2-!<o)X
zpBG_#5HZ^nXUHf7KeJ>1u}ceqlPz6z&J-sE`)8Hy?{PzG6Can6EhU5%nT^yHtl`_l
zV;4lyq(Lr*@R;Pq5wH=kp5hdggqA;o-yGQ(AamYEAjORux~coV_Q^89g>ST+Ub>u+
zIim5I_n|mEigr^ub@wO?152eM=TR8Hz|S$pOb=?6d*3aznV_;{yP(Mf`S^A%gwmO5
z!Pm9eBUzme4niqM5A~Q}fXg>hw+HnR98$ut9`b8+IX&PhA%ZiL&!%*L(ZUazw^qma
znZVp%NMohw2oPNq$e`hqhj*bi3Vk(P=sCRj+nQ1kg7@_8cVvY?Nolj@gFEVnTJQE8
z373So&l!%Nnnr#_EIK`Es1?il{KaRQYyg{X6kehYmxrszB0(mP72ZadYkvA90`B!`
zuT)lOfFv@B**B6C=B1qnTThci8Ml|3b&Dj}e5G(Eq29!{X>8Ku3H&g1xgc0na14KI
zqZDH3h`2?L#y2if2tsUuee#P6R_HiMvRHZ#<<S=nKHQNYCA|8>)Tu7Y0@=j^{#E2!
zu=L9}=pnj)ub+7~HimqpjMH71K-32ILDBVm4(cy#J6?S{iA@5&(=PeYQz}DV7vo3|
zYM>9#k<hTsU;v8SZ|ZDUG{GoTzB-E)@je`1(HuTkg=<qD?m}KlKz8!`?683rtX~W9
zB;(cwgMM0m`z#G8*R4FFg#6h$fdZd51a%-XG+^(XtQs7QN#%AS4ql*r4g38O)T{pE
zW!yNW4)if~jyu+BL)Yj3?kW3WfV7M2$CEX|>adl;(m);b!rw_=W6^>$T9ix!M4B-9
z#i*z3nI33!6OWwJ(*PopJ2{>y8t`+i;!o+GE^z#LDoNg=2Ra8%nOle#vGnEq^2t>V
z7|O1fK8E;vYiV-ryOKIU7j9O{+=W4YYuNryt2*>{{!}QM)Py#LmK5bL+A#jj>ub?R
zUHFlG#hx-r6Xf<hWrRO!LZT2!dIai$ccz+=Y)5(6wjISTc``|ueinNxTt*0n_h*U8
zpQ5?2HB+Jw&7oD<q^+SSf9f(6NWUJ#1)R->+ryVx0Vo@3&P&jPyUH8euuT?_x~r=Y
z@P!#zQ`G#-oY_F<Wk=-|S5D~t;o2(4%mq!K2WGJW5g>}{Ki}40h)s9}p8v)%fPH`N
zh?`T*;VnVOTjb(;v3l>8u^k2UJBaWuQh2wCebqg8GD+zd7StKV@TO)1!#zX>%(6DH
zx-)lgAB#S~1}A52zj1V7Nr#`3t4Q+kmX<&<w{<!w7cLMF4_?PC?seqZ%u%58O)xKr
z(2ea6kT)sB{l@%!WIe+Q2k>9vuS={=h~dhkfP%&Zaws*G)bD6jh2cN)M-8|%;jED)
z<Bfj`@CLer+t<-~8<sM7_oxIIoYQj3cq#|7BXeWfJR-op?>wWm#RKo}N_~y@5CS@O
zv!A~hMPY00jHAPUl5me1r>T+_28Q#08y<$sz}Dr<Rrl3|p!I={!WU}+Fs;uK%hyJJ
zMm?sM09N$85%01Bi!4aKXJ*YRRR-@yfug9hs9*NKr-5(fHQ<bJQ=gcoJdB)`qze8c
z1|dtCYAz?0Q9r8Sw>K%Oz}CxHRp-GBjW#UAz7JHOe(y-6{1pYr)bk5Xj6l2#v+4O%
z6?A?&Tne>}paEN<$XLlc!tnW*Q)gD9A}G=K271#f!ycBeFqI((_L9~HzIobE*4UVT
zra>RPZ@~AOc~!t?D^vdasR*aEnuNPjrD4_T*k<G%fGWAa#ixrj;A{6Iw$dhaZ{K?n
z?iHpC^#$yjVi&a`wm#v>P^li=^la14JAuwMO^Y5nd1dJO$Y`ZdpaO!G@!y+lRbhoi
zaEFybAL?iMJFQ-5!~5#+wmw-5{3@}x6zS^lqKaU3@qrc;it3y1&FTVu9J1W}Q-P)I
z$FFD59I7KpX?8qZ7APyCGer=up`*9@`E|6{jj6}k-&)E+WDLzgql*kkyPeP+&zFLy
zPvU^MR|-5-&vG)GtAJ?8>=(Q5>PQb6X7)@{0!>A>Nl}z1AIbd2dWlOC@+MnI#;+kB
z!|M1KH)2NUZ|mls{d*Md`OkQfO>APt@?Qe#rjc(gSoqMh1Ld*O<C;n51>sh7M8I?g
z%0tcgC%pM33iZmaH&{-pz>e)Zhj)m3A9dz<%TY5$^uA<PTZ%^KWu}?`EYcC!9$J>W
zx(LIA^`3jbP)?WNkl386qXW;I?|xR8m4UbBON(qF^3dt<ld85v99U8>PJb#zeFBL;
zMT>G&VYG8Hr=T459GHtxzw(uZW0YB+2mi_dBYEZ3lVj-rAuoCCBg%=qiNapWNK3)D
z&07bhy3&x|F~E*pR)JUl>OF1<D8ljLw_Y3`a?nQhIi3E27`R#5^xow~f3I>%j;})n
zuDV>J|AII(BaGF{J5QBh?esQP4dN31$goV5@kBn=JFZ^gpS7T|b>6`b?TH_n_Z;i)
zPz16E%muPC`tT{HZjR!P23)-RBQn@d4A?ZbL-TReXP>{3Nq+?OVEf;fpRg1MyR+(r
z!rY>;x||pM$UzzGOk)tER0b@~>rQ`0{U^lCUQ0~<LXbKewA>Mf{4C#cm|r2^p^A-Z
z>JECJHppK7FDsuDo*#ALHeeBjM~svw1T_Uf=6z<bZ<!)!>L--ilLNHlcUvdNC4epU
zYJ(w_0(9AwPo~Kz1Ld>DBDv!N;L)^0q)MfR@(tU0<4)>`|5r7+@k<T-wO8IX>*#^3
z_U425RYPEQG^5X{QiZP%66t3Z4B_gcLHcaEK150^ZX2T>`z<4}_ovZ$&`24$^YJ(8
zg(o{<R`NsyC?BvgeE*|@bf~$!*NE5Dtrp#Xmrn}nW4opoSd>t|T=M10QF-w5Cypnp
zm4MUFrtGX{#lRxxO6l+4B50p$oZ5wQx<>xY1+QiGVa%FA(oxtL);&%ZJ65QJtgv&u
z$we*TU5&NKd#(&BuTIY1wUbAF$<2u2V$?@FJiMpJBn`Yp+)~a_XbzkG88gx-4fZQ0
z!ro&Va6YAqW)z(l6j_Q{VWq<V=Zz}%Zlb)d%T(4+CplP7s*euhM9+!NB~rd*<nR2G
zoJNVbJ9^~ofvoAAVE0|9LaK8RZ%aM*`r+d(tcmKmDWmcf#$2Z^J11X*-yRF^E{tBo
ze$28cd`7+;uFUVRJ<weC*Hphuua_4JU1o^*Lyp4zBUPG>tEe}!^rL>-76UjZ40uV#
z(7-0E$&T(kDa<9YBw@%$dP~mJDe?vf(9Q3@wd3r>)+3(S{B3W;jy(SUFr%;x=NxvX
z8=K9*x``srh0iSEH$U_@ZKk{9C1NaXL#%_i&9NcbrQW~z{macSeZ6P#k+L)wqm&-p
zi*l;ZdXE!qDOqE5`sk1^*sqD<5gB~+G@W0hCkCIo#f|2-Ob}=(9LoDl1Rn2@b@-I9
zfwGlfhw6F6dnW(-&9p2Jr^yv<C2A%DwJMfHse7yVf|uu`A<8ift`=!ten<>P2;16+
z_~|bGK4CIpEbyb^zvzme<Zv#mXE0zX64x&r<hiv!fEDpPoAHwF!qWmqm#V%{5`?q%
zd&W+P!iQ<opEucw2(7O#S0*U35RzD=CYU`);Z2FjH#-dV51jT&pl4sl&Ry_LIaWS^
zU*+shut2(JUTPV~S{X60jnaBJ&mzvy^!Cx45~!^=`Nm5|x@CO%^pO^3F;Ph2^e*}@
z{Rp9W-pXK5bOrZ4cs+f`b_tVW?B0>_?ZW1NMMrLb2*Bf|&+8BU*uV?PJ9etiZD6O`
zrrXct9AMp=J7(`jH!z<&Heqp=d)Qvs8DfXT99%C@HpGbY7j~oT*;%?X3ZQ(db*TKl
z3NV^iPX~`^!kKLGGR9-t5D?Bu<k+PK=IsyTeoN~jU3GWit*9zINUr5^B-a5(K}<S#
zQ5#C4v)>VWsDljSS+}p<`Y?WrKo_N^2Y#dbZNujJps_CL+iR-_x5B>qy_*7HNY49@
zlui!}>F+$^Rz$hK*M91ONPi~xcPyE$RE3jn=bag?RDt-|rM>tk8jybFbncT54M=W_
zuBMJufsnz;EFD}0?t~RJw3R8r?!%8>nxk64f1K%RZnP#0UNhZOqceeW7wbwlVtr5^
zHMEP>REIX7-6u!}hvJZq0XHQbFgF`We6$P558YNCcS{d;&)twLGt&X(vIqu29U;*8
zr&dn$0&ymrvTVFizOv{di=`y;mj;>0@sA@vRp8efv}7?N5Uen)a}D|NQ!O23LecyC
zb?N-${0+q03bJ%jjzIjb7e{JS(0tG5@Gf8{N*bQ4-F?DojQm7&8ecA@qTE3JcalsV
z8BiU6U$r4A35*qw%d)K{Ay;_xqV>8YtSuPBK!6-Dnp6?rIUxksE{*%`<;lWn8!msF
zqw)~k`RdlfLsf7+cVFm$K>{3Eo=1mbQc!mC#;;xE!}k$b49xk5a;Qg3&Ud2U`IpjX
zot_tj;iXR?&x<F5AgOWk$Xi<l=;I-pamN&3Z$p?R`L!6FdCqtx=^{GMKk?^OhcUp)
z!&H^UpPKL>vqSoAs1}5s7W=6=C<D*JmE1Ba72)c*)0*8|d64>BP@ljr2K>%z1F5>`
zIj-!Me~tPA0z(=kTaoT^qHLqA32`y(@db-+OEx%qSJY_4TnKS`w?mfCqkQ$cP}0#V
zMd-(cR$n@4fzy@$+|_*)K(d4P%7nQrIHd!>L$5p-lSDrrI3@|i3v{D`+(NM0w7lo~
zSs93*kH<)H%D`;3^bw|cNeI0pryf=-2}+Mhe-`#DL8tzUv_a(4ZLo^VZ9&|J6YEx=
z6_2BQtM0`p?Flh3OxPc8u|(hdd<tT|s>45*$lhz+Tu`H)-|xmE26YeJoku5;&&x4>
zVjSgIojUoyF;MD*9D5i~M6)JXP(4*R{X`9Hy(>=MPgDXeyF+DKq;u<DYduwdQwa|4
zW=8k-QA1Y9xSsl)AmaMiIbsdMuqEbZG8?W8myOv@8lP8#)%OvGj`Qk396GB>g#0=L
zjqpd$a)sf<>laKn8x`T@ipXQbN=?}8S7_;`(*jNUl-h?~NcVfMgT?M^Kt?XhAKENU
zxST*_F489lxqsQU!cqRcCosY%x>gH*5nJlWBEG=a6w8~+$2CDkFYZoQoDxi_RS2#(
zGC`g%581#lC2-R+HeX<5g^Lx_)d^>~pr>Cylp<FY_7s{mNUux77d7`cFE@ptC3#lc
z5&4{>dpYP<(EU4;msrj7&OUC~KK5foa34qhk)Dxr2e|D1OXidBm+)DUxVPbBY=pSz
zX3^?VCg6XVh;@w<!<t^yj}JMWnC<s#RFC3OpM&PdxmKQT+%NyXdqZI~!2Ic{9DxJn
z7g7pwG21;%*6Hu7yC>GLX@f^!sUwJhH9u|quD~pAvtc<f#`PRmdh%jP@go_~o*u0=
z3fsh-4>6Zp(Zq0*_R{m~zH4~wy+<_ZmS6BWY>2ivmK0hS=euNO(ccwc|KQfrgI$>4
zPHuZZgmkn&8ePTfSX!54l3*1blw^#N+|r;2IxQBe)<@l#2#XH=7f&*{<o40?DL#ea
z)~qkLt4M(8Ba1ih2Nr^q@PW;TYeZnVHzU2UPD$|4P}{UYz8vH9vBA7uL4vx2`T9CH
z^5ab9@E?|={OZNgyg6HH!qLt#-v-3FNUG^jUZO+(9tHaz$&2g+3(>N0(nqwA751o5
zN}HZg+xNLgeSndm@Q~rSz8&HnjBID+I`a`ec!~aXu3{v-In~T0jrwEybP`%-^-+Ip
z9x>VGc}4;xr)f-2FhaYdB|B>}1;IylP`+ha5xQ?0_?P}7BCx;dm@?^Mg`{_O4U;as
zpsKn%{XDZ1H}R2uI^#k~2z^+gXc;<%7gAMLy%|5mRN_P|^x7x!u{EKuEfO?@XD1Je
z$;l`|I;X_(lncrsyPnf1&}4$ubKLh<l=txaO>f;e`l$#_`?HMR8%iK0`&c>HK?zde
z*5|MEn!ph-ZfD+x=Bt}C$uIXbLA>{(#YDIg(2GvYKI~J1FJ*=~jUUxO_JvO*%~>U=
z>-E_cOHhYWz8KvjXH`H~C}rO(9C1#o{7M;@Re_t{<HipL4VYW-IZ_jd^y#&d$+>1_
zm@j<j>UCBd`14~^`wUS|{6s&aAL6&Jnkoh-xT1U4R53%OnkE>FmCfbXYr!SKrTrm8
z4R~eE<W++{Z*xzFL)CyPh{YS=w0cOFWC$mfM4u~w<aDMDi3afhx%<N;Q60|l{o{EX
zrUujvju)uUYQj~rNlir$#N`?-rhj?{16=D^z9#zp22HrNb6n7b<eB>pMmW;FOs?h9
zVq=(0i_t?48#>^R)g+ub%?NAKUqr{uI3VU<h0<CuGss>F0<j)pXf2QZ+Jv~-e3lR3
z>>qmA7||v=Y+#4QK*qYPrz}9#UQgX_C5H65FzF4%-LvjqO#F!Q2tv*S!P&OxUM4$P
z^J`xe#Oj{bg`vEQTifT1X;(?am#bi<W)p&lcgA){3k9IIB-G7Qo*f>lyu0QuAqGF<
zPAC+e=Y=r$rPp35Jn+$>TPDLx2$D2Zp2<)0fw4C}>qo-{Sy4A)U!A6dF0qbk8pLmj
zHmzdMUSR?=*;vMjFQSllO+<%?6!D<R(p?<2k^iypz&hSr6sRt~C><l>grslFBMl)c
zP?7cGl>UGQoUYgjk3jqDXR_n_%qUODE`18_&mkRJH<9^xggE>lyRiBP`A{R0?Zrrr
zq5c6AIy;89;*h)gYU+BJB<vWtem~?;f#AyKOWQ_@Aba3t&J!mMm6duu5#-8<Qy4td
z$|VO6Ui04H;FSZ1IWaD`*XTZ^6W5h`4dv6iIPbKbK<9lxb}#isCD`+P9CJ!b8CpAn
zSkId)z^{=y7H&rcklVMGrhg|3S54gPb4<{Cys7?|;kG<f{oVbeithJ(L|#D}qRJq5
z!XV{lzZz&)9=S1SuL=t}0U5_6Re_eE?)!~j3DV-(gGJrYb0VhC!1hQERw|@+{@hf7
zCXr{X3h161(VTI(l%W6%jWz$B{~!-OJyIvAhC~ss@)VWtR~2|as>DyfzyY)?oYvY~
z=w2vr?Sb1bDX?t4$8y_L8QdxpXz2@dK{M|{dy5IuyD}+H4C@<0blga`)2b3|tz`Rb
zjtIc`nz-*HTn*BA<E4x;<sd})r~aQcNl1L>dp9aZ84ljH4n4o90M-H46hep>{)|8J
zC~1r?FuoKO4yx1zvxFM^)IkMENt-axd@c)_a%DL}Y}$||b@X^VT35+Wh;uw;Mtb7n
z++^v599+_5ib>})1n0A~lH-WewRqR#R;-`~^lx(2@V!)oGnYU7CvU6<KN&<Gg}DpD
zSoB5r^(<NNeBx*{@3e@0lef1B%Ho7q+p8~hezF767X9Gg?|d*=Hg274jrfMua%Z+~
zAph8}NNM`F^VrF7qM)-$4Vc@Di$vXW<5-Av_?!G+KXBbMI+DJ@Q@9mB@eA8IGC~At
z`5)(31Gv9TvmHwe1;Jh=Mfv{h22O85scmV;2@9Wpzb-c3#ly`<nzp4TQC~92K$-(H
z{0V>8Lg7kGP)_(nW2A8etlV#OmcQG;Qy<&vKD1iKi+#e9Q!mrO)t8DgWv|$vlEbO;
znfgmind8#g>tT$9=ZAS>61Pa9G%!oP&4mnDyjA=qA1-2yVXCbAq!V~<P07%@+5sM(
z-7)?>L=?8g2NTbiF~Ye!`QbvfJW%`Wiyj@f9Gtamrg_1S`VEe$)c%V`Jmq^lpDM~x
z4yU*KQ;516T%l{?zH^`mZqYQ}UT8jE*l6k>2+{ywi(}q_8ghu=J6%IxP6XfjNIuHY
zQh-<j=}yFTIVk5&)1=vwg{-$uV`?9G(cGtXB#i>;>%YS@=YO#RL-)-`ZazXl%W-9L
zxsL@Xwx?bH{9^$b%bCQ;+o+F4Zso!1T?OdSY-jtMzJ+CF4l!juV*@vyq<|lm?1bCD
z2P&*>_~F>oNHWqy#PhsDcI;K6AS`B{Z+bE*j&etdrg12jdXGZIiQP;9Di$t2j0{D3
zD(|5V@jG$U1CqSts;>mz>zvOGPl|wxskjOsH#@BR$tl(kDZo$RX!f%*Y;b2>t22d_
z7UE9I?sf63;g#w}qT{+8V0wwCDa;h*5{iY*JA7myuJo$^-I;AH=UVBsbR89JEO%dy
zPTs*9?{jF>#InOBR|fk1a0+0!%==&KUwV*!LfPw4$c}i8{u&CXFGPW=d1Poo0iv(Z
zX%exDL;3G>t-6RS<hHbyAtc5HT8eZ|^-p&(ZIh^P)=1}YoHM_XW+nmmn9{$ln<K7%
zQfON8dp00R_zD~GGDwf*d1PZsPN>QBeCe>gh>b8TeJ+frA{<xYzGd`*2pYxmP1ZN(
z@ef3wO)B&`2q&nl#|4;HF>8Luqn{dQaQo1b^eYd^z|3kdvHmJA{LsR`AM~R+@DAq9
zdWi(&a%+=`DCaT5Pp8aOy(nQ~){;{C7dz^okZr&2#R(X7W$@~KHfWBx`Mson2cOOq
znHe~~j^6?QQ@oZV_+n1~{>?5LAWr>wqmkh+7R4*r_&#?AzZKE-lqs+Y|C8*zB8j-7
zJd%_(-%+mB&9+*9Q4r-;QGXE5O9|ugF%&KfbNEMgmgP<%8t7r8q~G>Ld8o(-;n`PE
zZ{Z0xox9{mfMaIrqjeAkNI5QVr@du>ppz-d<S#ccyCrg&&g;|o$^A-4yRk{!;-lk0
zl?MfZ?2>ej@wo}?_H`rCfHGo2#^Nchio>6{h-Sa#Z>?UO)ntQkd4ClDXTc>d%)W)&
zn#V7Tn{q&E4ADbg^gfFXDGjAKD~J4GSBC`}P>+X{OtQu{>Y?a-r%*6XN^qAbJ%74~
z4tC;A&L|4=LqN4`uz0^9$o(lh?X^k*{!-~7GoeQb@sA%GPnhmt7nL^8QK5c>_1*a&
z$6gb|FIrFCQ?6uC`ko?j-hvURZRbW$q;M0a%*llq8W{*Bk8Fw;LrH+)#{IbqAH;z5
zIfLW%&M7>i{PO)aZWcm)h=YS)2RniFv{=~jjWujftAu%(0`ZD1f}ZM03}S*~q2}*=
zIAP=FTEdm!Eo|x)bA>qJ0DB|%M*Z@{9<K9q`p7eK#3jDl(8*vR2NRX`eYWq!pn$mU
z>l)%{KC@Fg8sK;oh6dZ>3+s5{Xa3hG`xaavIeCHPu_zOa<~36+i+#a%$z`j{Ll6hq
zT>RLJlnGpLqhD3{652-=iRU&?PGgAb@bhqg4Xa@PLB7dO1USnZ{tz~Hcpu}%CSbdV
zYp!v|cyS`Xlia1)M^E?gyW0;wO*)bhY!s6|D>4cKe)9goQnLVTHoU)awtyIjqCFa?
z#fb@n{D!m1pO}FD%}mLkv#4*_onGx)E*p&2WSI7UMmpuC-`^XXq+r#4<&E+$K@cC}
z=*g5t^K(I{dv*gCoRYOjBytskcdyBcdvA~8F7>~Q>8oq7T7wYMKp9!MBINfqPn`yQ
zbRD-P78T&SGn+TN0P1hP5~7&$bsG~yoxEbTtg!d@-+hHUgZMiwZv8{{ubA*Dw)cGI
zh~IXxSV{lx21a?s-beZKIIetlp-}oxKh9iu&Nu2QC86Y}GWUiz6Ct?t!Pd)UMgn(u
z@00#;#Fq}~p`}ck!LMFC_vD$tHcq$w_njCgJ%Kgo<3i(o8p20)t6{#^qZlb6Zfllt
z790F^=yHg-i?yB!WkRFmP{3&N_pR3<W>g}QKw`}Wdg+tRLP47t&3*qBY@7`0n(OQr
zT}WZP=tRLT{Tl8SPky)7`~ds9kffF4KZUJ#4)<)RPGNKIr_FOaQSbT`kxJ<&GO!u&
zZ)iukdGAkwE-NB`u@zgI<LT}z81-0#PpA4cX5CEr?Th(ejDjR2Ei984)|PWd642bT
zUp=-uF2{{}q)M(%E+bydGpFml-d*@?*@<+KpTq=(jVJ&5sefWJW*@%3I(3BbyXbFT
zlgb31m7<aGyJrRY^iAroCNqL+VQAD$2@9O{&!caj=YX`|R5!L~nc$px29vrt2Urzq
z7^-uLL%ZqOzf!q$ga<~&7gi1_31<#^{5LF7UkkfJ!#oo=!NY;$@Td_hykc_-Vmd=a
z_(a-tV*JS*Zgci`!$?gV{vwe~E>L+DQ)(WSu3TY(g;T4afMpw_X)$L%d4z-@^xu`2
zK`ZU}$EPKsNf;d=@NB$H<C9e^p)!V-2XR18^#xv-y7dE}QT_OvKlK+jvu8sy@n9d@
z?7kT}e$o_d*rs!D=^H@OO%Y8)9D|}~zU8$46ybLzi)(Ku0EytRUX86LoDOM{8~C9N
zJLY>|N<%fFZ1t7R-UCet9Q1d8h;rZ>CQn(N(hVV|h4Y^p;%{>bKW|zc(}nvlsob8}
zYe9v<vO<8WHn7chhy+rY0EKk)`-N0XxOU>UtX-2fv{QNeQ1fWQ%<Ddf^GFxG=h1cl
zX`>og$5Repe24Z&A8#J~rq%`}an)?!HN^4wV%#XIssv3G{L)=58qgg<8;{v(!^E%G
zg2ZUvWr=5d{oiv1SmRJnaxT+^0(Ae>Y14wyY)e9vuNIj03Ui)K(gh#upeAWW4XCta
z^pBO&gl*pH9aUh4i-Cv7N%Gi0u9vm~!H_{D&&YlD2|M&&m%QWV#RE|rjZdquAb#=L
z$HZRYhyyHBCvN_U18&~^<6WI31Xr?ED0dhH!JCTtY=0CRB-0p}-A3o=5spRvZ{h4{
zAr~L4>`x4W!{^4YunNJaAMW|vs5hti;y6{gDbnqa$BoWMall+p(eu;ds8`dj`uO(=
zcF-n1NjWqp0?WGmoR0Q9z*qOr&TEzyGQ}sx8|BgcindI%?<xA+{10Y)t;FHHZ?tN@
ziXfC3eg7KXEDYWIMc-Zz(u00-KwEFG5Ex8d30BQTd^Sc+gZ1aU;P<`iyr8ZSn9qbA
zz6e3On|tR9FVbPQSqpD4k^rb^%)JTlRR_~hb*7AyhHy;t_UJ7)w4YtKOpD6b2c7L`
zLswA+X!d!zsK25Fl%$?gkqydFB5tW5;;#m;xV)OQtJI<9sNMGP106VhIox#NA-ZRn
zQDta7(}p{gx4hr`O2LKDWTF`4!<n$+(xLok2wtBD(;IGKh<nfwd)-|hR=nnwZhPs$
zOq+T8K&&c^xgA{a4mSnQ*R+}C=y|I*AnDd>QHHIdKfO$7KlST?j5DlJ8SX{La(6lz
z!wGAO>I^r4ie-`)_4|5&8?rans_TGj8@2!A5?wg9ePny=k13F;{<zV3Ss!L^v5yuR
z>jL%2h>b1U_d314zudNN06AT%BN@7qa9te#&+fb|Y;qd)Q6v4c=p(US=CBNeCKwM+
zyb^<KLq`#1<RjKS`$nT-L=bM&8w?+|azW5<-R~iZykMf0tzjt23srjHv)hLD)n_kA
zG9o=S_=q`~5QQ+D^3=1rhB(ur*qcocK@n(iczQLZSq=GL?aKH#mC$|W_kV;LDd>8z
zxIlVI25RXAI)6K(J~Kl*k(|5I@R-ELSkVM=8c&cAMHH*R*3D)n)<97x3b^`A*HaZt
zvwZ3_S(V|#b>gDwZ=9g?<<f-KKYq9~Th^|6O%Pn}uT`Xe<pbH1Z(Hq&6j1-4R&Kwz
z5X{-+q!|?o0S|Wl-6A#OsOKBi>oo~Lho_l#SRXgURh&Dc_kjf7;+K*u(mCMh)7U88
zd(=Qz!X~dLPXZ^o8y4EfxS-uVAT}~-7f<6>ERAtzA}}52BU&)u#WFgDjodovAxHYJ
z=hOxrfqaQE;^Mb9j7Is+*OKuW+^bJHwj+iPzU1-jFUf6Ub%j6I%*^@ViyQv~+fhDn
zFtMdp{zwA~NkrP=`8+Umm$$#@wg8mH<kXK|q=PlzPUR;8>=5BZbS-$52YR!@Y$WUc
zpGPN>ucYFEsYf!sZsc27Cf{P=DO)DO`?W}(&$hILqZel<{c0z%<K}T{o~*2d!{a#3
z4L#KJH&9Yccb%G`OZEJsmlG4=&o{ozHW_+C%E>$H)B{`u{U~nV0&xlmyEb&FrMZHy
z8E;jGR&3#qG;Vvv*|QV2C2Qsb&b-1L%A8wupEAIA0gGb)LlVMWPL_RMsR=wWWIuZ%
zjuApfZ|*)v`dg8x2BY)hE@ovIVRul`h8aCeo&9UOfjugo`0r})3a+(#1;~Y{2*J}_
zd%H!;*i=zp)srCx0$ZzxO-2C=K~*>2kM@HAm=KcZxmzgEefjfurFZ@K<gm~6%(6eY
z28kyFhxrVi@y4m}>X;yq(C<GHQ04&&;^5lfh&TJLi7@4rO$h@^4A`eiaze2FoI^6o
z3;x{uF(4|<PI!A?JR$EtVbD75`68Qz1QrJ?B4kDTuyUr3_z|~xeD~(xSGN#<ay-NT
z87a*_oR7~aOLbZp7|&n(lRLx+-&UW^(6bzc6MYYsOAQdu%t7}<3-XgzOkQWcHZBQ$
zyuRmIQC{K5NroWvH<D0HO4gFOCk%}{&m$zzb3YwL{pokIC<I|1b`mrKK$`X8w1__P
z;kDHT2Ygh3$k*4*#UxPA&YMdGESieoU8v4hmoEW2*3Yi{>M6nB>Wp>c|D@qcsmPyA
z<h$5&YVJOV{F!fvxw9G6CE%H`IuT8c40!mwT{>bW1t&Z{y?g7a2r*|At=(y5;Dv_}
zjgYP~{O6NC8=)o%lVKNZjw7GMdta^K+dJZr-c#gf5hD!2>yrr;*{onKlv<F=Cj^SN
zZ2ep)57TW?RpIXX4{y7yb2bX~L`fA>-g-&$9seWdRgq}*1k3+y*LtgM8%vR8k2&&~
zn!p>8E?9c+C6<`jOi7mh6+h;%^7fUqE9OM&e}9j%94}|RklP(Z0zTC*hW6s?@YmMm
zWJ!bjILqB5HIcG2cm>-Xa=p2A{JeW=llL7aaQ&)kc14B)4n`ezPkg3@QOet=j5vv*
z$~%l^ED7yzzX|T9ux??=iYEqh<99JyimrdFBrBK<NwvT~l~G)Vj8l(({|JFgi?wsN
ze;oTTI+rQac7Q3Ls(R6|K8^ob?#rZ>Cnpp*h$}HH(?TTOZLKp;r!g~&rtRy=M_^EV
zp*EBl@%JT&ol{QD;$osQ_CK}%;2wW5=8$n-NNqaG?SS-4710;%97m}k!OL0ONt6v<
zq=d!=Bj4R`syRyIhDF@}kXOIel^H^>(?coB=^9n&XGo57fc$uyiB$~~;rutY*-@Ms
zmP#j7B9(`+V(y1_N5&WNL$>C}!mHG<OCw%%f%Om{*5qi%ziNZ-tFoXr#4}aTtBB(J
zj^6JDwadP0f3dQ6`FxJH0wCN)&@|o@hReTqu4QTnf=x_sTPpJDMr|xUF~5!W>vU~u
zEKGWEvKVure6x$CI+1X-)UpvCcGev8&OJ(qz53_r<cA&H^|MFSD#rx&W#sE+vR%YG
zXF0E9ad!xx{%~4BDqs||jF8go+G7S$_6Vh#n7`ORtC)MX3apU2<}vSseDl}MEuBl(
z1z|qy9;Xh{ZyEZy{LZ{ZoW|D4SEVKN@HWft!G#kCxR$h4g*5W%g{ZAQch;H5zF%W&
z?^L3J00WC$y^S4AG6&PX*~ko|j+&?a5La=`x8StkSz2(--Jy&{eo;xctc<Wad2qNM
z)%E0`1kjofuV-Bm118IdBugZSYntW%CJ*Uk=gJ<wmRv)=t!I;Vd4j6Ys$P~_igb>b
z4GA|k?xP;sUhOXzpYy}KSc{eS4_PQ1931OHx{)>uxf8B}`nf8SZ7os%)e(=+JC<nP
zQGHj~HZG(LNd`h}7Va|OI%{@DY)=AIoB2}6j-dVC%9XLWVPOz&{jJHESBu4u9qh^t
zM&j4~zw&HHtl>VCQ>GT%^SFhI>=(nmc|77$!+U3p0c4|<Oyty$z+ubDs}G*;V{9CY
z^6ANBkgL3UX-}LKE*zWwT++k<qhIWH$I<WL)|>a&t|_l!?uH_d#LGzF=LyxjjpxXK
zDy45KT$~8RMQr}cTxNzB6%=wG{{6u`DD&D?P>;ne-{_^w==a25&8G!AN5NyY>a9E4
zlif4ba$lLD1hT`*3w^dUF#ns_GmLE$3%FXBn^r&pQKJ72j}>lW$+Pgs(t{Yj+1p&~
z(LTUl*9vvW8y;fWKg;qEFB@ogyB|a)4P)s+Ty7a3k)Plmxl&d=HTXT=8-C{Bk2T)z
zu2)5TWU2B?rV$VMASySS;jIG;q&Kr};BI{2>eN+tr%xJ~<J70D>bYV56}#(w<eQER
z%lA~GWr2*FGA=ZTmvKz1x%=iHA_yNM|GW4LaeBso8rk{rz}|#vNJk4Bl$|1s-bUPt
zgz}%?rd-*eidI<Mpo<!KD26uM8Tbgg{R<;67mpH(%q0FQD>D!#0&mu4<xvsJlLISx
zk^a(`>=<HOG=j@L;P%?gLw$jZa;L)<5AlUhbRGKSud$lTd3}2oh@0VZG-Sm<9IP+Y
zJxCQp^Z60UM`IsR5AWS@r-4Q(_;4ZtL<{J_^XZx>kaB>ib8{AFGt&1mjMWoSA5f%$
zc4uOZ0C2X`-5Jyan5;BYEkgRXZ2XGV;(H@FT0^7tMMVcD)z8&dqy4{W@2z|LXwUlj
zRM2uK%IEOxn)oNztHa@!3#L!H6+z|PmK^1MB^Z0o@ui4Q0qp^PvfV>{eQc?h<BnZW
z2g&Fs*4-P5z(iF;<jSrNBv~9&ypI9G%@lY0igmy?C~NnQvJRY+DfDSX_ZrLL@w>Ly
zbRpU0>W|DC0EhaFoTl4a;Hw^!`rJqlbo*;eEN-a5o$?dZLUK9~^GZzcDB1^IJh+{`
zkM27Rubt?u=rO2X%6EA!paGgKW-7vOwZYo;`N6SBWgzIw(Oa-!aN-sH9FwIwfZt!f
ze`BgBcP@N=@UkIvuOOo8EE(ub%lHx)X`#2MVxWEgJH|QFsvYJj4p%(;L!1`>VD{&l
zp2uh~!xp3dTN%Wu9uD|sKoY?K%n#{Ow*uIKVb9>vD=u0fzkI|=Ck^fKQ?^|O$eH19
zlt|m#H<Xa~?>~Dzq}$XwpWf`?-o(0#uV0P9MS%E0?fYyG#9eB4F1>$581ak^uhdqu
z!S>@yEY+9-@%Cs&#MMNBjUtFUfR+RGnZ_`z{t|`br!TRDknw>b)Ae_6k8^^adj6QJ
zE$Vk?ui=all!sp??4M~@1tIgyq+1~ynpZAo6tp0p^@>+{Y(=IhcxVfiGcqGym`&%<
zf9FME<m%$<Bg%@Ph_6%83=6@%R;GLO%q(DSndh=bf;cVjGlsntgkY(THFb-X1%@Ks
z8(aW!zDcOZ3Q2^)?B*)PCxQ%oT?mMh%#(+Mp2rsqQ+dGb$u}Y<q`NlejvL)^<b;9i
z906L9Xda19l5qYk27`Ik&JpN*0|iFCO~hMC3$Wm$T0q?F#C9*8Q7+(Hp4rfH6$P8?
z{lc+l<Uk9}$91UZ{eAuYaK~bCpsbb=D<YBs7t4EkpO$z*<-GUt*N6vYW@gxU)KCJL
zJk>fn+C^dgbHTu%8$bMPZb&~<iu{K`FNLym<Ul}7v$*^%@{j#Z)qm8-1r_<L<RKRX
zVEfmeRbvJ(>SH^5g11Q&diPjwZ9fr)^vUp)rgIX|(pqL>f5-#nr8FbQkPfB7XK-QV
z>K4{t-7vOdgLo+aqG}Thq(GgG%n>7_2SWn)!!gedoX7i_p2E&J?oi|SbmROoCREO6
zHLQtrPN~@+2dHm5khfCWd4mp~OkQcv+9!oLX*;EW2^#3b*&Hr!BcG$3?tK+^6-fIv
zOHTJ4?S)d4_Q=rQYt2OcXPGJDU<K;=J${RPfkIk6--uP9RDVEu&<>qvrt)GKJr|tw
z8hZIJR}J>A-Fy2~R1YRR{;~12DF9jeP!Sa=H;i4qbUj)W^<1PShRp_vfkA<nodd1|
zH>I6#UsFJRNY@2ue^Q`+&N~0yEky-*!7?n{kShn_?OKH(%@0bie9J52nUSCNI{Mt~
zAfS@}U)~-KSU#_KML>OU0_;4^AM8kBFEr)Ddg(r16hG`E=(LYb>CV3Yc&i1=x<+uS
zhXvfFX|zUs>i{>_7GCx3-pB6_$H}>$MtqK{X|k7ZM(~4Q*UvSC5EK5}OJDE~QiS?4
zF)#jNG01Y#qN$)kdpxVCZm;7aAjU%d;;)SWoLw>e8s~?4FaLH0rBn++<6WMTd$OFM
zd3fg(=OuO!w0N)3ImiG&(B>WrpaIr<J^!Wi(}3Iq;fu$E*-*|b?Zy`t8c5L7Ufq>s
zgm6o@IoCy6pxZy#`ccgS+e%sg!k5_LHt*Yx(PqS%dabowj5x-n1BA^rlnW!Pr=780
zmWJG8pQ3+TOT%8!D}j3`rxnUnQkg=B?jco5s($h4{nhGQ&NL<pJ_)q_`pBpA-`ev6
zGn8Y8n@%+L#)ubYmGcU?r64L(aBy9W8~hS168;;J0OwQQLQd`CkU$;x?ZX9eXxMin
zZT%<%I}cpzZk`eX?EzcbFCWRF$>ZXSS1khI*u+CjWrR5U&90<ZJ|KSVjL6l~Cpo~t
zFZoHq87b65^v0Kz7tML+%ZqKU@xdeGZ2aOi1sJB<oh&`Z4U}aHRK-ke@VAS${bwID
z_zN4`g%yn9X*y+v=kKe5i`H=!<5ppyxw2{f61~rSxrd^Int9QCx1z`2h#jh<`1>-X
zTp(cfftHG@8%Pg*JMMSH4Ho*MLW_3Y;fL6hoa!`pSXi_AZF1KfB1rV9e=S*q->0<_
zJKJM0(VFHsecJ}`C8DWi0ZaJO#ANuE%@P>Glh}JgtRelx7cVY-TNsV^&Qhm44%sXx
zMn^cT;OV(Jjy%ItAmmDFqT+iFZjg|F3Mg>_%3C?(HU`e1a64LzrSCkt9~F11UvWY`
zrqLXc%r4NLoxe!Sd>U3>Ii2Y^eg<lFnMJ=bpMo4Se){nb$6!nS)bf!y8;D$cCj0oa
z4d^e`ER4w5!=%e8uBU%az)p@`Q>MEOJa;;-kR4$UUM(5iV?`$+$>)Y=rJX%67o3>y
z*R};+Df`Ex%K8wf*8M@E))46Bk{x2{0g_FAZUre~@QA2*&c$61cny1{+e*z*4-spt
zq2h6v>g1XC5wwBKxC_l=@h9Me-F<@>%NV@A{5?bPiV>)8v0X72F^9}538r7I7GUY*
z^Hibg7&HzY8L5dk18YX9>qEiDAV=gZ>vPu(iUpUJh~{))CrgBjTty#BPfVUW_1+B9
zkF}MvlbOMc=JMqUlv_D*?^$E{aRb<%xc=^pt}ZynJ-Qzkqz4~dPOcoY)JMIcnO?!U
zs4q>3=h@~Ez(`?(#40-PWxv+F&a>75qg$~B(_6;S9ja49w5<<s%)XC%m>7Vzyy3*o
zal`|@6;@BRtPc*sv7VjkR-kH-^60~=2@DIa_1j%E1$ZAm<*8}{pHDt_3-!~1ZfVQo
z8<ge{msk4!|Ifp7our_nspddNu_-c=i@`hH`pM#LGjJ?281iMah9>Tt>g?>cV0h+x
z^)m}&NM)MgYU{Ovf14q<PWhWaON4xRX{8Aq-50&#!h&?=CjGSicq1sD8#2x>Fn}zk
zjgxCuW>6P;$y8R?66s>``qnNc;I@3H;TUcJ4^A=9Xfqo^!iPqI=pI9G7nOO$)?@)m
z2_2kCXdG$dJ@sGjJ_b(gavx-B_2J2~>|8>G5nR2oPxSBFaj;wxj($mD0fn}EIw7Y`
zLG;^cDYb25#3@^+2#hiTmnSZP+$UsU^QIT^s(=tsT%DHuio$?z+$~$^ebBu{;Hdf?
zY6ZyHS}po%Apx4{iY`AsqC5cKTso}^FUT%bKP}crdr=EIKe0*?5I)D*5{rE8Hx{;Y
zQ_x;nf$vY!;#CRY-?ig<9mfK{&oFUTH!DENd+vfdR6}&nW$*l6zc}ohF5R5{pae|O
z|B?Ql;)C)n0z2*`3|VaxAKu?q1lt_dTSZC&5Vf@uai}Q{j3vJq6Ca~_p;hDN55%2|
zG-1MP1;jz;<MW`G7ZhQ8dG2U$qyX@~<uR{WKsm|{^Q|I%Wmr#nQ~#P(4w~PD9oxSl
z0VhMRXVcyn0r`kJT^tvOW>KMy9ZeZ1advoS-{yu1XYP_WH;iJZS>#U!r;lI<?--N~
zk^Ux`6{Y=oe;YG1GHfIJL=M$6LO<Rg{=`-vjg1ZG=i*26gWHo@m$0&zWK5lUsCO!M
zsQ2VOQUd??3qw!6w=wbg9V4Q?Exg`>g`c+WH}+{U<;Tkx%ur4q>TU1C0E>Pp9#hv>
zaE12TFDj`dz@GGZN71JWFOb@<B>Z3kZ98|S$ShV^oy#cm3#UTgx8PNapNw$idwp$O
z5(VN-^Si1_Y+~h=H*)50vV&y?n*f{JKWtX^_~DsEdLU5xuJn*`!?)hJ7ljd|kam$^
z%r=F3&Pb}}{18XNuTz@8``!-rXUwdyz#r*gSub|K)sVxc=M_GZ5|l4GvF)0QbSZLs
za(wlhBwSe&-k&<l4(;SplyS0hfHSO1C+&$ru_oCM>1bJC2+n**bBhMt()V}Fk2c`q
z%=SFP*@sxsv_NjrDb#-!5;xGphxpq&a^#8i3LqTwRDBZp$QadbtSUxQL*<%m(kaCA
z;_YVtkJ@n&*B0JApMZR~x6O=ZVss90>PMG50v@g6DNlbjUyfx2Le)j92r1MjrCV>?
zgZ71gOQwapv-j|3uRQ{P4lgkDGQ^!VVTRwnv3<S*sDCWUrZM6;2RuF&rx!cV4gMLG
zd)W~rK&9FBh|XIW2;md2V-$HHr~ifHV{-~fv=59JROAI?KW=i8eB?8|qoG-Y?j0jn
zY^9H$!{Fx~9%XG`UHI<gb;0K(hUUG$a`a9H;8wNrx%2_bkMz-Mo$3YP9m{w6^AI3d
z;!xT{#}N1oETTu_0sc9pGj5g}B7Qr=jgMDNVfJOv%rzZj2y>R~`9Ng==yrBnXweF2
z^mVl!^&7y>(u>ExR4qWE%1GqiM}7Fu)jJ_*%m`Roauk<;nSw2kQitZQ7DzZWNz(nX
z0=e%i{%4JhLE2J#Kvh~FUZ<VgoeMXDXNSHf8{N7<73k42q+<n}nEU+$f*G9Uze=C!
zWegU29xwhbn?h2s@ablL1IP{NJ&>L^Ks^zci#m>5Ag;~yT=l3K+-N-OHd|-~#37lI
zVJN3-Q0{C*^F{`&oSs+Mqg?x!h@7TG0cl8?rC$8}P7=iH6ny#1WdJ&5USCE!{cVGG
zZ-<i#FylCP`&+641WARy4@3PnO`P}ZA8M$;;|ziPrzo#Gbb6OaHv{>lLVJq&98m7#
zu*y+$PZ}B(;oIcC3>cieVX%nqGlb?hV&+ezp(m2(_7@vPi27j}$n*yF<18>or81#?
zO@ighxUw8vydZA(Voe^j?_Dt+UQhv-14nB;am2N+xE-R9rvbmVB^iHs=)uBQw%<>C
zQO?@$Se2Hp3cPckd>qQB33NtL4I9t2pqt6~N-NSeDO=ieqo(v=viJ+BCL;!Uii-+$
zQEH$nXLiV%BnOagSE5>{i0+^7W8Q3uLgAZv+9$>+zsdBZPtjHh=1rogWzMUBTcLbd
ztsdHEWK27p6O{uqssH{4SIUCGJuNzNEd|&}wsQ5jr2u*4ODdc^N^q0k^gupP9=ce1
z^AnGue>dIBS?)wR$VvF!8{?u11q1c@ZuKfqZeQjrsI3GGGm6UNOR6xSCy*mHhjQVB
zgu<<91-R6G*XO&qGVr=I2{j}uLdWlRnMIVFqv03K&t_MGP}SuZ9*Bc*)kY?zXh99+
zs>YrZxhX^cRhxhD@6<pEn|-oEt^h;InePLUZ}g6^@GJfibuiFAzwUy3m?y7WHm0Ed
zx=(ldR&F$_!olE#LJZ<~99V{Mp37$f*5Q(w-$!@wQ-$Ha4?P&b;_jr>x&A*m>z7_y
zx(p4NHvabMvzP(o2WzIWBqP4}&Hn_FZfStV13h&u)We*(JSsNZh2{q4CAJ&-YH+@`
zI-r8Y2<mC-T1`KiK!JQBLQbo|C!XnG6-6=F_Lki!mJtS#p8U}cVlk)%+Lu&RT(Eht
zqEdpmp6~O1c>Ru$LVDJ}N2k?MU!JlYDNZB+toIj`V=khyYf;YJ$F+i>M-*F;)QfUf
zIpxcXi6{pJS06~3BQCR^mc5iIF-)GJe$(O42D`)^k?vclr`wv<?-2Qsl#Be;gzs{J
zNqe+s$^&+|_Ugf_Px}Ip_bH%iIN&JMld4|+y|#gs&5cY-ZVg}|5yO1tb_+O};%U!2
zBxF$HH>7I!R}8LPcl?+0Rssr|itGMfRfIMzo99VaDG1zWEK|nLui;I1EG}I07Y17i
z|9b(4v)JYQjPZ(?6&&%UJl#&N;aZ-mM4@$KSn-LflEzAu&kPg0>0u-Z2Trd4rF6-F
z@wzCb2cIN7%Ha`nyUzrCE%tA6RS{q2m!NvfM{aPRFZQ5}MEb>zHlJ}rQh1i}_jBgW
zA#8j(QZV?o5`4IPk7Mw=G&qu$&9IDfBL7<wckW3FxSMSz_1O&dz8N|=?PM#1z2%?T
zC+L3J+t7<&OGN(lpO?9d5=Jq>##$^ymX*-+!g0v^DFwJPGQ1hRvV^^smx)$TT*c|q
zZ41r4|Ke*`rOFF$P2(LFy2evVbOiOEy_Z6QnFz^e8!Wyft|Ye;+g26ozajo|vDMdu
zl#nBTMvg}R03V3X=6%MC_>7MCIqS!m30|*yeYY1#2;^ki->aF1@HxfHNjJwPa2h|B
zz$xK1obr8{SFs=yVLa#dj?8r~IJR)dPwxHzrd>a_75#n&lX)g_<X71~#`E})=awrC
zp>$^ce-xc}G*|y0$L+oM-h1!Oec5}KU8!hE_@Y#@D~XhqQKGCCDM?wMt1?1}l&tJc
z_8!0Y?=R<cPL9L9pZmVA*Yojsb_NxZ;p*Wt<NZdgaJh0d=9wrtZg8W~*iDxU-lu>h
zUPXa>N@X)rBhh<^n`KG)%WcB*XN7m!coBCMOZqtc7s@jZ@(C?UqrA^)(_fZoekjto
zbY&OuX;tN%TIx5X;YY6W_ol~O&|65&8`;DSLdVX%zG}%0$1>jL{e6Pw6(6|INA9;^
z8mwGt{}O3n`rj!NnTI>rn$?Tv<7Tut8DsB6s|`O?D=(4Tp*iRaLvy{X-2;N^<fLLZ
z@~$0JX5F}a$OMeP4no<Gr<d>KTD+3F7VL*eAKjl)0YBpB1oLQR$dvqId<qkRwSl*y
zt(tPcE+-cI5}gAHOjo1zE2V(O(DI>?o(x<|e*ef8@uVEYE-9l7@^I1ZwD!D+A^6|C
z$Ki=S=M5Edx;cpyK<W(RUMcda2)K-dA;Ty*-qw`pI@ANbm{_)z0!?VtHwmji*AL0h
z+t&;cpWHHWw*6107Mu*>9@E`s2GI;QGvXiIAR~S^IpVV*_-S8pnrst<aM8Z*e=(Gx
z80eF5ZA=cLeD&EZ8kk_9m8i*#o&}s^{@dt7zYi`4u}|@W%<zXMMP-Yb3of*#N2rOS
z-mUljRF_EvpeyyWSDPLW#8xO1UGZawyCL_}bBg(Zs5i%7Vh(Yi?onHXC=XMRl=DXu
z&A)s;e0`qQF9pQi$9p)xbHb73*f>D>pwpJNeG(-6u)#5J7KJ?4cN_GcNpmCL2B%BO
zwR|49v{f~QPwZl9pIUo4xH!R#tt;q?7ac?yhMdW`D+Kesj!y$U1mPxUe9tR>26%2e
z!Zq-c4Q6=c0$sIup#Q~vZKeZW@MYL^<)5X%ZAdguo;GBITVDz}uB<bFeF1wzQz{qu
z`1Sf0n4<m-jg_i=#|=zKU&-ECv=h5S#S)tB$qa9lc(3rk-p3wCs-!9eZ4hj~h(91Q
zCxJw67>q={p;a7{cA{xCz~*lvvL(O<iZ8E9TT`>Z>Gy--hhh7KgV5&fiV<o!7-aY6
zn5DwoR+ufb7AFW({?4-zEa})0<9+gg3?6*Zp}m>``GXeKYO@m0?GlzL!(xRpDDjS<
zC#k;|WpQhES@Z1aJ;L0-DgFTKeuAXoTEvIvGX%nof_wItmk2{oghw3nHZYf@gNOXo
z9Ps2quP%0%6mEaL_A)AX9%Fr;y`Q_n0Zb<z-7$+?C74RCUH3f{MSG!1lmGKXOW%4I
zN1w9-m;Tw{@?<tBJ?6|aiagg%ls(-uh$H*j9DeWRx+MHUfy8v=m3dAz_-WZ!3RF6C
z^e=y$#U6g!6K$1O21Ux=1%U_L(D6EnQQ@By{9#lTy?aX%{x$~;W?J*ZwU8s3?xt$6
znk-UAX~+ZXeUqP=TLeL5cfdMkP7L{HI{g?Bhqif)OWyp3Eb^38)rYt8fVky2Z%#Ps
z&pdzTXpWC0P}e>4<V9Y42@%2llpr<eD*C|qpMo%aIl*{c2j#InB_YFigcq_-Wx9Kr
zr~zGy_4xy972u<xhdaqqFqpK)#_S;hXVNFz+6buU?7X0m6ykO}<D_1VlK#Q;esv2z
zIv6Be{p}F^ZI}|T)Ts6xGopt`L5{k|d<?Lg6c#7Vx`ml?UdrO}K>oL&f-hcAx3QX4
zy?|H|5;!P!xnE392ee<Lr~@4LF+XJ<NsR<{kUSFWVZl!ZS1voed}cC>?UK?>Fd!fC
zXxzH~P&q5y8N&yYOII;I?`DQ%*(Jh<my*SCiNhGpBkdIFh$ZZX{ndW1FA_jFQH9qY
zL!O`nyJ5ZqYS_r0v&Z(BA#D5vY1?xW{PEfQyX!+V$Rm@p{P0o-c0JdFr67g`zP_Gg
zyA;j<hRX)OJeNsuj;w+=1Lde^*<ODxp`RWo>D-SHJzBz2efu0Fi0R<S2c9ynu{A8#
z>~-Pe(hh8~_C@u(-We>6@1vhr6AvVm*L@V`<$|f290}j??}Qtsd_#>XEKs{Q{LOV~
zi(qZ<9A3FVjc0$*yl!}r4$u5}B){5?2IuR)ao?<&9&gsDmK@C|!AWcX8k622#vNX;
zN|pXi$6lHAt!tLB;JU|6Z~49=#ZP&8m1nb{{NnhwHqAaaPLwVqSgCwSsJ`SP;?}i`
zu>|`o&$O%&5)*{TGSS|QJBcOhANdUCmHWro=gJqXw1(AM_82+t5On+@JAn)D468aN
zDvNs66=gc)KXT)O7g#0)<pl9d8xP4Q2bKve2dfU$6rF_W3L)MVN?Lr5=hpm23mblc
zj(l7D2MZoFZ#DSn4;^mFQ8#AWDgxAkQ}W};e_iS{;_>6BH2l*e*-1g3l)D3Z5g&<o
zfKmUnOkM_>d&lbHY3RMsmg~`bL01Ws6W3r~vyg{`@5>a=P*3qI!K9F0H+lG(yx6Pu
zUKVmbGdjoUDZ<cbujZ{WKCl+NUr1m>yt-DFP6iq@Fc>s_PMJi#jZd>PKE6Y9$+eA%
zm|{uLZZ54=l$VAFYI$d0%E`h{6%XyOeQEe=Rc&#OPYRBYzR%DQmxQ~wWh<`mazOg3
zy8`=d9r(v<r|`B-3-rc@I5wz^AzdVzS*TG5rkUmc9Ydb2O^=iqb+izxc^>Y}@<12l
z`Ql6S9w5IEQ?Ysmg)-D0UM}t%)Q0OV;b(tm4HLeetTAz6Vu8?rjUG)h5}>hMpNPpm
z#7IL7yzTfnfHrw^A=4lA1pQN(lG~ZU944z4GyZg9ik44~CM#tV;)hw6-yZA|KBRLw
z1pK52yFL;!s@Zky61(=L@t1>y-C@tg5rL0{Bgt_wZDSnpfa7cH2KO=++hk!u%0LHA
z&ZBGD6U?A^be8zcB0H!}w9awcF@cR}$z<tSHt^YYKP@c71`9jw>ti+)&_`a&<Pu8{
zANbDX{7FT8xGuTsS}zT#o{f~UYpcexK8wD@MY!Pt^GaY)1QY7#@IEGbp94Jm$9%3Y
zk-%i)+8qf#RtRiuR$ZK;0N(Q#w{_9{K#*Vbtzs}YOa<2xQzdA_XY9fa!BiRO;VI(f
zN6$rDb)q`23Dn>2ot>M9IAM{C;n){$S+IUyA^4PYA2ZrGc+9NIi_gwE(43y6#k;)D
zEV({7#8OYUN%1#IgTm!x?Lf8xj5K-SUCV89+>!H{&iNZPgg2BU_pje!0m-)whIOGt
zc;J=2a@}4QJXlU_IMkRKw?CC&RQa9~&*P%avOymCx39JQg0^Ykkj|ipEsq)3AJL(V
z8YRb@+NA>`Ub5gSK|Bc~m79cn$EfY-(er=H64Tq);l^K8FMnp@SjWy$2h(+i{v_m`
zOD3o`ZV`HH%eL$uutV-Zk)%=8KMenbR+~|OG1jU3boaM+F>kZ)60tu92{-1&q>fWt
z!@Fj?S1~?XAjO!nA3SaX#iO2j#g9~By{>4~lUfB#HvC26Q4j8N^nAbzv@eU_T2OAd
zA`e=QE`x7gih#{94bjO+#4nZDw|{OHgowT3XSM^vuqLNQ>qn3P3qk%jhZ>wfY<O!+
zun_GJry~EA5aggJwC_UbfjFGrxEOM6P!_aURC0n)Pj4vYGw-vFs9!kHm(2kAJiM=H
zej!?yhc^PrPm_X>zsH^Q#$l*9SU&gX7Km1Xi&3tmZ@rPvWkX9)!bJ?gO*>1PRT5^e
zwarU)34rI2t}mT1>iJ4yk=p=%;AS;yyuB+1J}N6a!fGgIOd4LNir#aGh3n%(G8EzA
zP;A2IR8ja7^|<ZqJxPeT=UQ^+iyV9<Sp1rP!~p|>cYG_+ectY|`YNiI1IqW>s>+na
zpx0V8Adrg&Hf4wxa?J-Y=`eN5#cDRd<jlo{>?xp;b;Q1=g%fvl{#*2VmlOZ}Yg@<G
zjsxdv9TtfA%Zf|Y*vEe@Ks^R3Zf{lkQU2rgv22nT#9+J{dPl4Td4dgH2ahOD5nRGv
zF6bJfeYe8Q$>i5`AcYNQ-Cz_1_O#PUr0Q!}0@K>5R`UZwXo%5gKSd5OXeQ25%%%dL
z6VsYgu}g$-qoYP<Y=>CdOVKbM*<Hf#io7e|Cn<o=@Jx8Kwgg0{*_dv9Lg%Vsqtf4@
zLzuQYHYp)Cjm;3YT4XYYupv?EuVN*LC(Uxo&JbH8xJ$(cIEC=xod?A2ymzQ@F)kas
z*oPcAU4;-nMoWvIalD*!CkJuGMsoy@`(*e>OMUF)4K{qbaL3I&j0sn}CSfBh#)><n
zU->lJm`6BUar^zNH5Pok^Y}bvB@5o6zjJvyP#9<b@bSvM{B^>Y_T2DCabpDc%%lB*
zew=vjnMzZ$&#btc$4+kq5iyQF`LlnSEE5FJE+3roC&8mKM77^dcMzD0l&M8RNbrVZ
zJ$T@$MM9Lva<8Zx%GozAH1a;6!A}aAoDj@l!O3!Hy$x;naeV{1E3=Ml_{_t|+-XbH
zldx2DS74I_0_#qPkw{JxYPeXl6pwBb)E0{WF`Yy?g?Jj1@?T2uBG@&5no=9gj%Y|N
zt_XqisAl^06ltKOdJ0ST#6Yv&+F9}j9~e-}7I30DRu=CM(}@c!nC$g&y&WxCXn+3_
z`$#VZVZv%=N74I+=(@mIK&~!K4Fj3uAP1Z;=V(jQX9MG%#pN;ywBI_UmOXkw1xB|n
z-OU|Sf+iOesgHT;a3kR1y&rlgcSkB2S%%JqqeITbZD>#3r&fEfdrlsTnve09R?EZf
zs$uGnvoa8KldtWLhz7*#zqqvRr4B59)0v#;`O~+WZj0>#Y#GokF-qxztIOwaX}`^&
zOXbl|mjW{&=pQJOHvd1*>mBs<wh4^I9A#y4Gy=<`u@`-3HVN!h-RTL0Rl+R!CJ)=Q
zWsIt4Yk65~3d3K)<;^1;;2_XD$E=2W#fm!bTszJLBC6DCY0(>m*pSE3R*ZR=r#tGZ
zHWq>2=3SiEbQ2Rg${e;8K?7k5>^1}!a;W8cz*mU+NL?MTDkXfRf)DTKgt))Rf@5;l
zA1ez1Fq-<AX^Xso<AlSwM-Aj~QCMpJEWJFKq%=@QA1FaK>6OYIcX5z3C=x3(=LMGS
zINe#4%WW(>R(-b{<*v@FAEiQlH;l;#y~GZ5!1|<B>Raa_!8kX2g~k{8L(3@hqHgd*
zqTyxt9+c<1EpZ|y>Xi-@+tb|k;6Q%M?1-*<KLyzHi2Lsf>S5GfbGDZ~Dhi~_Jniq6
z8KAhqGlRdL5&YL53YVCpUhhyLmv0QHf84AmV7Y7wi@fWfVlhXF%hNF(mU&a+kEK;;
zr=w}{-$LH}z5A;eshx`sr5p>`+Rzi}rqSTe=34=um&ovB&Y<BaWg+N*ix;#s773Rq
zy-uGw&W&I296D`HOM)kR2h7;{v*ST$AeFX#6B8Js81Zmt!!LIIzV%gx8m|~n82$Nl
zj!;hWdG=IE7omz9OvV2);qGJmCV#(5;6G?w?!UDr#y1A1>V*_$2#jCLv~wy+;i;C3
zNhCih?pEY_aTW1dPj%hL10_cY%D!}~M+wV>yV8Li18z)sB!x}4-Ca&RjB53b>?9j*
z&$J)M;-(CLuTG{anrnf0y`$D5t^wlVzV%dO>TuegjJ9D_2MUO7C-&)4&l-yo>B~kH
zNb{F4=blIVp!egI5{NU;yGc?&A%yt%)SIKsbcl=W7rCn|D+!*(0eMxXn((hI=g+w-
zN<iYFaB3=88u^d2X4A@b;7M3f!`PMt%w394tg%8qU@e~ih-(=@dnmn*BwQBs)SF43
z-W$T+RjjsGZ41Et_+$BORgw@T?2_S)INuX~?7V-cWFYkVqmGI|G5BaC-+8`C7$#5J
zKfQr+>tEc_LU~^X>K`SMT&0o(pR1=-TAxTkct{tE^qdL|IXr2k{-g_?wYoIJS!_U7
z{GC>d74;?aKmOy}`<ZZkuFCSa7ZWJ%74pC6C5GA+-dj&tNTEQ8^H^5RHbH6_TmD=v
z3M(EQH6?BA&@m~f7AnLBkuFp!_w5caw_ciBVwGir(?^w^!*5$yZ6rzZALPOGIpVP*
zVX#X`RW71?7Q>C}dqt>UXCuaM=n0Kvs<8m`$$#z(JBYWr^`9X<>Y?<nnU?6H8^Rca
zcwb)ALC?dLGXv){=P^y^L!12sa;W+|`BjRI8VuIXm{&2Pb04!Zoe%2itX=kyxuZ%A
zq}D+a9RIO{f1PAF{Y6gDOS<;wYTW@AW6ImBugDBcq*8~G);tjRkl5u|;x=|K@p3Yq
z7&W->9&BWs<%GMLP9i`3cCq-esX@DVIlS<nU}IvfAg=x96UB3MJ$?QgsZJFufKvy0
zH0*7P;OeIbSuZ~j#r>Ok=nn{j_*+hqS4$hhctbYbXOk;p__m;8KI;`47_&UP=gP`~
z%bIrXulY0LJufb{(oPZKqN%ynUA1Jm+-6T$Q|A)4DTRq@VX}Av8=tMujxfXx!k>c8
zd8}gC%5o=r2iv6C5r1@P1WQeJB>Y(w#`Omk%QjDo;L3TLsn1^^Zp&MXqHdcB*I`R9
zljGrq(&t^5PP&le4+y_}5(h=`5F!uJfFm+E#bNy|!T>j(pd(jiP{@P-O?X-w^i>>J
zrvG`K5%s&_H?{(9e%dBHi$3cT5JQRE4ELpMv$Esv#v>QLJD9?fpw*VMh$+07FwN{g
zZiR9Zm*|eJm_v#|tJ3)%a|q75Sk*AD1o4r*#t-i*0q;)q!bJg;pL2`03O`VT6t=`y
z=eQ+-C9=G_AYTSfUcV}*FfRt|la;?7wyHt`^OK;`0vUK1GxWX!@yO<`b?bg1s8{kE
z$7~+K96e8%RqAOhkteT+`1n;rke*VBAe}S;_H4fM8F!6AT#NcR`HB(5;xjjC1&_eb
zb7hr_ZpLsrJFh9T(FyFe8$*?S&_1i1Y`<5+5Ym=xl__IQ!T+6e9px<A^M9`Qi+_#$
ztq}(W7Tx;b8W)gL%7npavdT~OITLt&`>;l6#0<RXb>_Aa#$0N!&By6M0u%lsOABpl
z7^`Fki-qSFVLUO#<5kjItnz*-?*vAN50Kt1`NByH(}54ngeut}blK_UDf$WQ$_;+{
z7dz;>)_+4}iO!n>cGr{nknhFgO#;u<ASpN!Y_+MI5uZo$W31X@1?%{dIu$C6=9wN&
zrDiD{;Hpa|qZNqwTDLVTjc3fryJNWPt4IeIb6VJ{=O{tHv)$FUPypyJ|6Jy`L*Fm<
z&$(D8Y8ZMdWGSh@31WVVzkDxDV1K(EOb7q6fo|vYsk6yUz#cy8IJdBe#f9JJyh$-e
zFv(p^aOWg}4Ib*Jd}hqx%w(fyYs~~3pBU@MjuS!YIaP|3i(GKVYiZx=fiT*`Oxx+R
z%YeVJ71#C0VsOd!uxqZH3K~v7dYVsQL-VBT!bt@)ggE=;Q&qWa@Y8ZRC=u<^EZI^$
zEoUgei^-ztt;#A^7`aiJ^pg%8C*H0#CsIIW>*M_;l#lLkq@E8pqX8a95{c3}I(Veu
zt3l?=0%{?h0ahj?__MV8S85P%UUGV4)K!EHv_F#P(k)R#9`#pYUO_5|%v+fu%_hQM
z2p6lo8&d$I?bzFQD3C`yrk1mD<^XH|Odr&KnhCz1?pjhi5Ji0G?v-R0WhkK{u^I`H
zhSNuhdIYSv;k{bJn3I_T^k?ukT#OWggg7(b|Ii*VeB_F|nan)4!BVYR`$h=m*;ozP
z{Y9a1tbuUyvNrrZ@u#!FQ5|Z|zc}W$ssS=xqgQE_6oISf+Lv@9dC2gK=6)KY0xu8b
z<mDZV!1elHvFcL9<%!TI(0)Si>2=qa!)ygX=6BN>Hh#2kG*fYNchZKa+@R7?ly`TE
zmoMqc(Scd*q=lm2I^gi|+ZFB!<cB<}cKc|98btkjT>dUkA0AdjZ14U+@x&h=OfyWi
z!F(!@j(bE0G@eK@KL`PMsOXft%x(xR-THa4$JF5P-d^`FH64goWjf>6BMakC>-)@|
zl;Ksxh@WkQ93*n}!`Oxjd~#Q{QKeRe!R4#SudV`7iz7;L%F4hU)>b^7CIwHdd#~~w
zL-{QUb<&Fr%D@>xUhH~Z2%ZFUsAT%G!t;8!st`24`Y7R6l7=|Gu%AG}hs|O3D{t}{
z#d+W)DhnDx{-*d;f15?L|GqDF?eaAP9{6+RqSwcD#0%ZI^T}#U2sY#821pUF70$nK
z*TGEy*njW$XBd%y+oy-NOUFgvDMy$KIV;Ltt9x9@_eXhZirq`Q6^y_;OEOUQoCS8K
zR?e4p@PJpFRcGK8ez1+{5miGzfe^mm@}-n~;Nx{9XD^->1|0Mgt&uOfNH=lF_MsrW
zEMlTrEEYn!<7b#oH7lgQVS9fo5BdEkcZl|=1mV0x*@vilW*EBiq)b8-c~fG;71_Ai
zVF_bzIugVQ{*wtx9T$Zl>n6>o0OMh7n<IrWAMuHFPcO6;@`~U=vDOK0+Cq4Z&?$MG
zR0MJVm_eME2)ycNmY&c>UWebOck-5*;nqyzUc+-ypf0BkB<rSx{_27e<|Yz2ZFZ^c
zOcps#<u^DYwakKB(`^%PFtVfk?087MGb6|g82o7bM+@ICM1S&fVuj+%q_iiIk3n{4
zyI-??3=?QQc2Y%*4P2jzRCXO(AjpmcyQ-j`OGb~5YuAp*!u*oa$EMp-(DiL~KW&2-
zxD{#7QX_usjAVy-C@bR9I#%*@O*uj7&ceO@Bo-*WZ+uXoIEfL9VXaj{l+f_6N3G!q
zF@D|Y1KpDu4)8hqR=o1RWvq;?=!C8j4a}U}Dg7~n_Smf?{X2B(K%RWW&f7#1=-IyU
zb9@zm=`K60MMoT5`_2n9ZyBK;mNdQ69z7_pwEOW;MG-s%>F!)wkOEfsk)f;*eK^w;
zbo?`kF2v_Y%?Ke+_gv_ObTUIV$RU|O^^si%sORh>$R2A0S-;U|Z$=|13+;3vGB<^j
zyKR*Teb&Gk;%)TC!vL70niGmHBA?xG72Ax4DR6v}-V7cvgzfRB_?2c0!1w()iP3)B
zr&nd~H?ay_Dl9ltq9+GqqjlF!o=HRWQwpqgLjvxJ6->>W@<7Cg_FjriDLAmx=ZS7t
z2bI^>)izO@z>ckMmIfiu424wjIWLqGs#Q2Pd4(6E<#e7E5TpJ`lkQ(s8<g<opxk)~
zU6)4=oVb`u5szQ2xxx~+ifOi)_Ss8HLqYkjq)Db2u&plJg$1j^@gk<4V>fxBm_hRI
z?hh3(mZR8lpHl#aO+M1bXIjA8NAvw@vI6|{>~FOmk^`kSzN9yQWneaWTjf13@+6NF
zD-Ze0!#e%m3kJk{k<L97Q9*fBb=hN)(rVH$(&W|Ihvq3tmXR&H*Tle@_(?J+KjK3w
zdaA0Dl|V7M?CD{OJWy9^1*~by!X>^hw%sV-DjnbM{i#t9#FCo_yVp_vf3E6-nhTnv
zeAK;T$&dB{*Ysr?kjLcABHOUOq9jaAR;v#9ih=zj1J)*C<hN<FHxxQhhKgu!pHVd~
z@C#6nC^iy+y4lr%?izkzw76C;Evo>Js{<2xLj<5)kmPz&bqZz|_HQQ07Wr?pFE_!A
z7JL@^@Onpx0=n-_C4VkdLVcIhTxa_wVCdG@xese2*l5Mxt*7Cv@W;VI+I>hJ$jlAD
zgj0zl4&jMa(!w7?SbQLzF!FaNNn+prY2L*CNpP#aI=YJuE5A6T(^Z0BYjJCZ#k?>`
zRHP=)$A$P`5egkKCOEc9MlnmP4E_%a9J3gd;O}H+rDmN7Tx26(Ht3Xw6hFy@(DR1S
z>(dy>`$Zl^7ObMVk(YEN_`eJVl#iHCo7m+IQv)rsx!=qvH<>UNA8cc;4e8XI{H;WW
z@ThK?W2(av;;zN?xA)mV^H{{D!vNxS-bep)Dl`E-8G_Nt-v9!ET_QJ+8v%{d>oCR;
z6QH`RkYyWb3<n?O=EvI&Vd(9D;|BC5fK|NG>2ojxlSfT2t?CTmW>MN)eTXq6N?~rF
zT+QI%#D^>QEKnXW>3E%|pecCJr3+)Mj<BOEa@F9s2@Jl(Z{*&xf=aqk5WQ{+7ntm<
zt>sN%wn@pdcG(gxn|nwEqWjI@B1igmv?;I@?zbz27((lkV&-6pIpmifvrEo0hOcRa
zQ}I*CKO0g=GQnUBT?Lf`S5a=Wh=D!NbHoTJ_fC|n<)D90ARf7Z@{!+n?3v1t$MubO
z*<gsqF2Q2JYqe#b1`jN`B_P^Jg8$kxxIG=PLZGOZoiCFh!Tp%~YRv5g;a=vOi70*!
zV5Z2sdoNua9=LVkeo6eGT1;tTa|7|gRYC!7WP<Qce#mXA0(m3r8^@g1BvI}#P2kK)
zcF>`9f3fjK0M58D|164T2adW}^JqsNa34MhaLYrS+d<B|Oix~LC+aH>Jk0`QcZp|i
z1yX`@#Q@1x!Y0<-C^xo{zydbB%zsOjc)_^P;C9}1M(~iK9&Y~53KVyC-J;$z!FF%<
zbzxa9ILGx(f&|Tzy>fKVpIT=^{ZKvp9xZ&JmPDVyht5eKnpxKdOq;Rw;Q))7wk_;!
z;jY_M^bXee5x26xCImVqXRE%NtYDP}1|u>)%=m5fjj{%rT|(acX1`0_1VO>$qlFAH
z1O9&5#}T_q3h(k==`R@zfV4vC>8t=sAp88%wupxbK7J@w8lxfxw!+k1QJ*y|=n02|
zgUl9owKchtgpnHG<|z+*8q5JFr}-Jb_pw0OCqM4@h<CRr*Du9U|K%$mUnM=4O~UAS
zf{TI`>LXjYBUKWOdT<-XO&-Uw0N0~X`!Bz_LAp;lBEWSOdsF8YJUT57+kyQ(OH}MQ
zOU;ZV(ZmF{Q~9wpCx`?X+GcKqYwlvU#(3%z^KF9r{{H>{CK?EX{pSL11(4zw2ioFK
zNHD^=nCcI9*7KN%yx3LAt9^ukG(pud<olLMTMCX*)rY8;5hudr4dA${u|}3K249~~
z(tIk=h3o9q_2x-vZsd1e>J##)%2J9X*E~Sys8J%dcPNL~zHGC6!WV;1hI^IVH`Sr}
zeS|z7s|2%@^$M1T2GB}#ON_@9-CwmwTQ0Pz!*dVy$DF;qa5G6P)4N<BSPb*_qF(4j
z&q>AQV&uUeh-4iS(AI(5ziGbTI3f*s{rBUvQ7*yz{!qstW(s~Y&W>--8^cPq^mpp7
z29WdeVdH9m2GITY2)Ce=hfLa+iJAHss5*=(%gP%88-cBh4&|fjZ%0xQ+i5}3?Sa??
z<lPTi(DWnhYJ!!Xcrwv{s2`zd^+nn}byyh^;;Af?fk$QP7iD%-;5oH9{dR&9JY3ZN
z!c(RQhD$?PiU%6-@8iTD=0g>DEg(ute1JTj&nU*|yfq+k#9$pmKfknaz|e^h1E~K_
zOhk583GDrv<6rT}Bd<-5^1?eEIB6CvZQP^@M>TJ~n|CvUze*8qWHaheAUkb~&FMl4
z#+Vh9ua5H1X2pLa^kCMD{DvsXTlv?FG1p}wFX*AGLLu_=T^o^_8l6&y$5n}O1s~Ag
zOV-kWk4ppE%uZa>m{bO>vlEjvBa&cQ%0-Gaa$u{<CVB6@4#?T`H~8x5!@@fWvSq}l
z_^6)wLAQ+ZWo(xp1o*1Lt6=5NHzReS@(5|bF7jm5$JMIjyNwW}I*L`_IU+CBVe9Ld
zzk+ao{Q0pVS`K&~R#YP4MhX&3177t%#DJpm4@E25_no%(<!E>+4`-u(yQQn5-_vxq
z-1g-K!V6o!J~fo@YRYMl`j)E>@1j_u*3Srm7Uei-sVRd1pM7?30xcBi5^rYqD8Y4)
zw$v{#RpDy!-tX`E%0NSJH|d19v29vf%7<HOFcWr=-0d@qP1;%ZDfY_)>%z5~xdD_5
zuoEwpqEiM5p5>p4K{D{`vw&3g8B#d@>gM*hCNz)w<RKM;`1HL1sqDfDbwE@WcV(a)
zD4yXZ*Dd7%^W0P+&Ev=iVl!ChoGT7Tx1Rk;K<^VDRI!z~>l#4X{z1~-PZ9Fm#A1GP
z3W2dG%OwxA4{7bu5~8X==OS`<`}<ZZ5a$)E60AuD+v1B`M_WW-Df#OB%_!tycej?S
ztP}$Bh1jL41}Pw-N|N10+}VTfp<55c(K$=mF^zpy7^=*o_}5N|!GYXmP8;M|5W3rF
z`3>b9bA!ii()BbTwI%yZPAouP-$r|ahdA7)?20Wxq0O+P2v|e=Dg%DAQ%krW<d~_9
zUntRrkZU}C-k1=4j%jDan$_U-Vkom-yE61rhNdXk$isH!NX(LqEDZ6b>ioAY4K2Ge
zYkxd>Akz4Un4q^5JglE>n3+aB^ww9m<CFzKQHFeWB9#*Y4cvR=%V~isnM3w8De^fz
zVq~qg*}}+IT67BMma$b84jN;<J#3}2f^w~!2tvEYU*AQ&Ma4f_wpxtP9HocFyevxy
z3S(Rah*5tYo6XzYa`e7XT$M3@$SDY~rp!ytwiV#zrzeel{>XFt<CW+sH+G<ie6g=i
zDh2_HcXcRU(xIL}O<8AVB1p}9F!iL71<d*5_MRMLgY)^}>Mq)wnET5)Tg`K1kaOi(
z<H!g-FcKL@DhSg-u1wEKFSQ-)S6QLo3ms}8<c;{~q!K~6i1e2!VNy^Nka$G-j0qAX
z-2U9^AqCUT+2p2tCU~dY`jr*+yiRk!`_}xF1X%h*9z{tKL-nyY*?U(xz+99x^V4@O
zc)rq4)Bh38h1>q!Q&}d(P5vh9QjAjJoi{(9`z}g~yH7kXy>^2Yub(eVIvi)jyQZ!3
zzszyrw`Yn?vbNc9+bMg?xNuf{g!ucft|S(`w=3koH%yFpx<SRIAe%pgtM)N8X`GDs
zQR3hc{?T=8sPm$@HYGbA%vzYVy}^k)6|ENvWiX&Qyo6hG-!>Neo*w(0!G|AmGQ7x)
zWyB*h6h&&zvg38couo&O)8coOQ&qXlL~*7-lP7yeiSbOYz6H-3GQ5i}+2n})Bt}&p
z9jdd$2iL>jwdP%1!^Dr>=8WD!bG>_AFH+e!Ame`P*9&$0ki|J$dBc2$z#3h#$E>-4
zC7hvGyI4XAzp5F$Pi(y;sGa*zRc>bvM+`VCI?POAZ0}V|;AIoU-@H7Kr*wp%sYktR
z+13!pI)AZY+X(f;T{ApOZ47(FTg6J6CQx%t%kZz8A$;>o=(nUZ2kJl0`}ymZ(B2{6
z5sC7!ERs2vgm7b68;MzS{%!<?SApKv6#f6g?UVX-)=-AZn>|<@;AlT>QRg*Vh|6E3
z2=KOqN|7b9N^u*Qlk4KRzib0K@%{fbPFldQn8buSlPzo%!zVgFD+r%!JkSlb22Uqd
zW)lJAHIh4BV|vCMo|d}4;77dAlf|*dbAkY(f;80Y4c5r-(o{G@Vh6*oygOAN+oFAa
zTZQJdC462HYj3wi+{;FA?Z-U}F!(^v$8;Ozq%IvDJ^h;x&Cl&V-A6g7M@FOJh3P`T
z@zA-n>OXGSVe;&^6vDvurJMa=nm%aRKY20q$Ozs)J{sB(r4Pf=HqksY2H=MzIb&#^
z(>~%oy1ZZj=Myro`K_wM>m38ejYs<65$%=BIjant3E^3qxH|ON{*f__MLFiHj=vl}
zsz63Dn^!sVb}k*KRMU~wfp@i|-3KU#!R9qk&&8_`wLb#;q&GAns^;P~C-goRZLqA>
zBcu&2wMQz$(eqx`p2mpklrB8uzNyJQ0T9FAU_bK={k**qsv)!JxytLT*uRc)98BYJ
zBu3hBi$2+Nn@tCV9oahn9H;}%SxXV%g24wSM>+R(cF>ns6zoMgx~Ld(;def}*q6{=
z742Vp*eWlB?qWL|{P+FrO;%49@CEn#XTA`_y470D!^iA6p(zfhe1kZ~0`Ew|HXrKK
z`!4VlxPeCdRLYq20pa+s)-kT2ag61`Y@Jc}K0*8~-eYo(4Txq4GRepnXguHMm_NBg
z==fR9;2!)FV_MSO>dF3vNq<kc)+w-tz5gdf?yby@k0}Vk6K`^SE?C@t;O_|5<CZ`~
zl8xr0R7mMPxQcDYq~>gSvw%t0z`c=m4!Bb&LUBiy7BC@Ou@NTZCsE_FjiVHRJlXW>
zM-0EQ+3}UzlW4yj*hAk(I7^COSQ$6;+-89(k}ofw9oxo41pd<|l{JDKk(N7?1{%nh
z<$p?nTLGv@L<RE75O23u8}eAg7}N}hPm`M4gHGC-v#o+YIMKyXRncezYbjw#bKM4f
zhiE2#BQD`tBW=zmw*|`EA8meg(hVvjINIn|EZ~pO+b@?I9pTa!p+)6ecCaTQy80nV
z8Kh&6{b0ASgpqiit)I+}U{$%i)ue3=dM0ycYyGW3-<0P05S2MNm;N{18|(;{G1d~T
zan4}qcdphd#SV%D-bZKHYJq6QKd&}~FMRNpsV_skRdk$AQ~Grq_~4s=axBLNYGs-C
zIdqSJ$l8X-?`~Tdw28dmHD?3CzaKix892br^O9em2irq+g6l>1vqzw_uxh*Gfht7b
z6Kghoj^>eMl(v4=;_xisFD^-;4iCQBTsI_DgBGFlBySIpmp(Y1f%!Y?eKA-Umm(I2
z^H;@-eGnhxAx`v1a8DX$nlDh<SxdstSW?HPBzfQ&-O6)Wkp=M|9H!f-Hzw=Bm;C*!
zD$t=ynOyTr11|WSOYJw6g%4Yx5>%=LEE0<Gg=;D>EBVIfpN%Yd#BX<hK|h~S#iQmc
zlrq2=xhEA7jB;Fa2&J?|eIIXCu4)CUqdcPfLeYveoXYi9R$ml@=5TevKccGO_rlw6
zPXciYw?2E`Kg|wCcfYr!-VuVx_o`14RD@t$Qq=Sf^2w*y42J4?@j}f;%x7D2dHBH)
zGBa9?_FUhnd~3?YA?D0h(TN}q$WyYcnE1VqwLIXC*>gj=g7k3$&dUNmH(9AT6E%>>
zwpnY%PZlWVjO)z#C1C8<g^ZFO^qwL`R&qB>92n=PqE`=T!OR%meHY+>+&Qwx2mcT+
zR<_A@9`PeAI@&$-T0)@z`a%Yi3z|1$#n||-6|9egVJPf813ax63^zWrg}v;2BR=cS
z3tJzgt2EVkA-wk4_oJxaHn_O0qJMrHGgmp4X*xp!t)!n`Dk5+3u-=PzUZ!#&RCsk`
zu#Fie&I&FVcZtGoTytZj2I|4wwcN?|lYvWD&yDPL)594%N~>mU4WoV6B{`MP4812W
zaNm;?hKf1ij3Kl?iT%z#n_6rP@+U4S-AvYp7EPCaYvfe{8M();%|_s)b+X~qeM`h^
zG8MdCwF3Q1MyZux1PnjoFUrXn0n@PdsW-^;wb)Sh<Aa+i$Yj?u_GlRc35Djhd(5Vw
zh{%hui$=&d*M5At%Lv+ueI0os^x-VKrHZ8$z<JGUl0(*}AS~}x#3yM9PM0b;_ty<T
zF-FX1v>YIdh-g+S$r>m=sSIW~n?QtQ!l4$aDR4bi_XlZ3*r;?Z4|^pKV-i*(%yBX>
zdi8Hsqp=D|t&g<^j;cd-i{3gl$`u(td^WaFF9NxNg-M+y%JA<s>91(S9p7-|u`qov
z53+hh!BgGH^YTpNebbB(^t+P>el`^b=b8>DX%8Vtil`thUgv`s(@327Py|BxpzA&A
zkseznb+nw8MLilii`rwzH=rN1Uqgd(vV2`f+|jvVC&g>(%_QnIq-*;9*jX6LORHY#
z3<^QnSzgU5G*7;;m$-UaO&+*T4XsNy3q#a}FYN5TGO#+Gch;Cy0Yu-1y^N@pf|ZjT
zRcgpLX0UHjt|%xCzaCdvk{k$wWxjBlh^Qn)+B=cWewGI#krVH-P+yne*f`7Ab3!0k
zcOxR#p9`FKna|FJu|iSoqy0@M4p`~tlFvkbQQTFNLGv~0hn@VrcR0iYG3m-)`H>8;
zFzWLSBv4LU6_2_Y!3HA6|DO423*rjxO<Ci_qEM_`;#!2}<0BWe1m5ik!ewX0%WLmh
zasFao4~}q2=%*!bTYMw}cH^Ge#2sSbP~Kg(igM8v>#MoK?4-b1-=m(6xN-xI_2HJ|
z$}sI0qRt#DiMvq$X`1;@7=N`RV-?{j0I7S+5;vJCVXi89xAY!4<PBT<dGqnW0!QRJ
z=`bJY(=v>e<)i#Ebz$t4Bqsb5Q=}v(%E4>g*4Sn&MZEad<FYpd7VvzGS`yB(;HldQ
zrAgl<;FKxFx3PWXO<;H5A$f#6VR}FG#(cTq#%O4Y?o}};Iw(73{f!pS?O2!?yh(<C
z>d@poLB<SJQuirtf2YK&uCY?lI`H5xE(s2tX>@@1dQoL0)AkUmA2Cv>>jdm7q^^3m
zO+iO!W1Obp2z;TuQ0jPS0|JIVjO^$<=U!R!f*Q@&q=Ph18n)U(9*L%)VV*tEzNOUO
z_wa!G&z{!QJhA|jq^49y5e)2#8Lciqae^Q=d0ZOZw*$sQx*FtKsJHM|v+ITtRCS!&
z-WJz@gm_YV7aldZe^NL7#$5o4nU~giS{RtzY)-qXrVXCy)7;(JHt>ziO<vH$5aho;
z;Cgz;4B(uITZW-AJTeu$VsOq3WEKW&GV5%?A~)kmy`(v?Qm;(+TUo+vz=`8IQ)a-~
zqZ=;GX#&SZyyvMFEFfAztn>@NDY##4=c_bB-b&d_b*^!4AaAEV>65!e*nK+d6aJe7
zB+ffuoJ`v%tn>|LOd-ErzUW_z6tq9gZN8O#3VnX9v@D9wukwS80Ify&c`o<|4{`}(
zLj;|<W2J|O!qChRo_2ps9`dY{ID~3=fWkxn&VL{IfXY@Vw=9JnWM%J;2J%Zo?!t{$
zh3hg<y|5z?mnaQJJ;7(p?3BPq;@pG7b}@JpY_unayi0$&c()ypH?oh2e&y&e@*kud
zTx#G$xx;DJCyU58k=JQfknmF+XcHDM_7o!TNt!50jR!lVQ|*K%Bj0pnj85Y^$_JDt
znD+RiUP{~N$I_ka`JvU;{ejk3c8K}%Y(}L>7<|GmF0gC!f?vng_Xn18@b(06^>DHX
zcv8G-q%GkGx2g5cKy+PSnErJ3nU^SBag5edqF{ygg2a#ZMvU;oN=~Z}?Xe~-bw^_2
zMIbwagG!>686tdpZ~3bt4j|B5um|m36Y#mq)P@o;jLs@k6vEK-#4IcQl?bQ>`GrPa
zBZ5WcVIQ#I#w%oxJG&Z_;;yEb%YKxLK>>r^!Fk(lEb^qrToA81)G3@ha>bn;ci@?N
zOwi}T%i0V}5{i}x3o}d?JIUB^fy>@5XJ7F`d*#>no33PF7E;K$y6^{ELE)D=8BSbe
z@gu(%`uim2ZtaDlo~_$N_4N(K^3XXeLt@X*gxBe~dFZ2gZJo~W)1b5Hd^fQAJDkxG
z7*>l;GKX3MBdwpJ`!_R~`xl|#*lG!*_{RVScQYuy5#?OvtPd~Oht@Q0jDbwH=gIO_
zV@Ts3yGi@P7-}vuX-k7Scq-7G`Sb@pCuAk6G$M^)L^RF3cik9rW_k|AiOhkLG_JCS
zOBec2km!s3G>2kyj94z!9J;^O-JRPugpE$W8=J_tx_GN3XP67XJDyLh1I^vnnBu88
zD-dr>5fjcXi=K1mgfWg3BRJ_N7~}E_;HYAzMjzrmqjv&cl$=7my6N?zM`{LeqfGlk
z<dgyEw5+6<qxt^jZa=Hb^9Jz8Fdbq~7{ly;d)j2T3?QL8KmT4UnqP@MJBBx6z%Y#+
zJRU(DEVh@_i##bC!J$&V1SMcTahyD{R~#;%XviwPjeLEa<vMG(Wx>KX)yU{T9(qc`
zeqOjD0c@}8ieI#e!#APdf4`6jLFGG7)~gm`u*(<GcoW3n<<Re%Y9q8KKG-q(_k$NC
zj=l0qnL_iMD>M?c67q0d>w=o3p*(a`hsVu-P=~0FlBd+@zM%WhjOne53Vb9><Z~rf
zhi_iTu^-xM@YKlUuFN?V$Q8IGtciNuUQ*?2lfPGolWqf27d$61JnhDXp^arM;@gRc
zs}X2!am&E)lcf;U+-SZgjQ9zkD29yVj~HQ%N7byWhYxOz7SUyJqrUidkz$6w%s@6s
z6yDUr0PmEY6MZyD!10NKkLf%S80#LM)U^`<e{z4jfKo=_JD&ObpEEz;s!M?Z>Xh)M
z)hPSD@)DMKg7S?hlLQ`hrSF@h)G9$=v?D2)lpl}!vuYl83-!eGP<P*J=fv}}{ng^a
zcyMY`_tctw7T~;pBH?-q5zaTFl*Xm9ML2)L_Ovc80)toXp3sOx^ZCD7zjJyJS7&p+
zFGZ0BTHpLw5sTu72m#GgJ&I&_v4DZcRu%_dRF)DPc0&vdSxU;-cPT-gyp7W)Q5>(W
z<hpU@8Wa8)BOR8bXTk3Y2&PmYqsE0JLa)83{Yxl4R;V9b@{906#XaKj2TGjpvS5CB
zI2FFHboXSdH5=~l<Yg$TCxP3Jkr3;<pgpN;k81W0HSn@Yrdax{2h|da9||6!z7v+8
zH9uwbpo9JTuT(}uSkIIh)fzE?C%P3XOF{aOeN!MK{!kwbh0^$r?HK~M5JP&ppAkq6
z>F1~E01T44`WB+=-tRM;b&Cl)*S*HBTZijG#j4dqaUm1bi|W35xeE1>O|{%Cu`~zr
z-YbjVmn`A@*v351F*6WRtRfDyGX*WF+~JM?Ou*ot4HwA=b2#?c;I&siz*EsA$wqBm
zpp_e)jnF{cQPX49q!<Z!VE&Fe^Nu{2zdk)L>81jY9L++Xeo}yP+=JLlQx-HV-tZle
zNCT5v{1G2b1?X94>{#MKJ~4~j+FSo*;Gm!&lT(2Y?3{8NJ|Hf_b$T)Wgbp|8-x$&~
zT;qUzPcO^3VoKQi@%FcW9`a&o@n(LhLj4X8epN8v6@|3!&-%x;QI4S_d23x&6r!5S
zzoh+?hq9sN^9g)PpxkE9)WRqWW@%3t;<FW@p(=Iu*b8wuo?NZ}L0<{RKG%i;l^9Hk
zrQeel6a;VKp2zfZv~b)1D<yxKFc9nXG6kUhVb(-l{PlMta8EGL{wVToD++9=rlMT>
z?m6M_Pd&syM8Je5@ry7x<yL5~qVrY0=A3M|kuq3Dx^6T4(*zdEd?DJ48h~%Kr!@US
zUQ!+vqH6-`aQMaLqfS2Jx(3S>>yIgc4!sKBGn8-n?A#nNA-0Ci<}ExepAdm7BcHv@
z<vGBqLO`6;jRAaxJ?R#l_~6p<H#*VUlsHx5ky}x7!vtdEdz&(;g7|PxR<SM%AFh#9
z*X7d0i`xX+$c1}y;So-yTrKI8IGvgA3t=)ke1XnC+QV=fqnZ1zRa8fX-diINsN~2&
zdYXm0X7?9iNLpp{+fim*qJ-Q(xm6U`<*V)QLSJ3(tX_Y{NROA)Qgf=vPyz*6jily<
zCG2{{>*K|gBN(%asoXyD#|F)P4=QEg!UbM5JULRth_AC;gXv$Ac=0At&Y5yy+@(7f
z+m#%}yq~5!NxCZIH1Eg*8eTBq{+e5)v$-62z+ShogOD(OiL)f=a9ITR<is^5$sHiL
zo1-!5rX%#4he>SiIzp6>{4j}}12EUbb5Fdm0aB;3=AX0HkeWJF{cXYqRt)>hY&VTT
zGKo(2m5dd{h3tnXmKp-Bvr+707F+NSXrbFVZ3<3el=f0T4B_E}oVYnIQ`mXz6sUH|
z3dk*2^!iK8fobDj{AnF)STk@G?$y-?bvwt9femB0kV93^g7&7$?pCL)1dYM^vJ_Vw
znuip{KOCQ?FowCfq{~MdP2iZP499DNDbUG$;BWZj2wC5mZ)rxF!okbUi3dllK{580
zWR93Uh^3tV_(2ivWy1~)o0;rkwNOjarNs(JKRq~iLDU#To9nk<q4VEL@u)ukLsQ7r
zes097gyx~W3a$cabP!)R885TK3?osd&dJ$a&~$&(eWH~Z^<~_i`8K2jc~zfoPTZD+
zs)m%p->COTg5heJ$`jOYqU6Atr6q+@%jI9ZQ2)|9{sF%9bQO>kGL?VrCyxBl=ZRkJ
z@B!aHdjB)%J?qrO^BfiAISBNak(bd>hc}bAsIwH*ARwjLBImXu1XRgc)bpx=d8e@I
z<FAI`?bXl`ZK4C@lf}nxXR5*p=`T-{A8UbF$dH4_9`cbH-ozdfp+3cNv2v_I3+||F
zm7X+29J1$#(6Fl}II8|v!0}uGdY^x{Zl~9QJ4}b?J8&IvQxHtgG*kxc(sQ+i5OugX
zOcxXLTM_abvF2?~1@KyX6&a);1~XnnHMYnf@$m8BS2;a?Si?kGxt_^`u@DX8>v1s%
z=Bkx0KcWs<T|4^uTjFrZ!gwwBg8+1Vwa#2bJf(ay<9&*BUOZhU-&5qy3|6R9^>qtz
zRWb!suK#^Ty-91-Ps-8W<j%mVr|g;uoaYrzF;miq>es`q?s^h{nklXIl4K#vL56TD
zRt^N}-KevxWuW}kE9Iuks7Ey#|GhPfzRFyy>W<L?j-!{}1_&EN9#&E#BZG3H$u2bC
zXC=WnOeQ}rl^33DM4eqxRDl+zd99S^N>E=PrL%KY88RA1v^hzoVPlvfvXdF{+83vy
z<J48*kSza}!HgydzSVMZPO*TKiu19C8W=3mkZ%x<m_wz5m9Xb9@*BA&bQfLF0xm&D
zVkuH{bbmeJ{N;qf!4uu=$v9I;IVIx|{zwn7NZ)3qZ^qCVDmRhnVGdgYHZnS?Rv>pu
zdd|bg5@finW{yvqL7i)J$LlUbSP_`J-D?d{SIWj@bVmn-e#O0;Wi^6=^iRbHG`3Lk
z_moTGKSTI<ZT4&14&oVv%PCi9O@a8P$MipWbl)ggxa4x$q8vn=Z(#?@StQ~6bRUgD
zZ$41(2cte{DjbsM6_|qU#JyLR!4|NmPSg0R4Cy&^7q#Vf(Z2I$1DQdpF@)-{`a9_w
z00-^)0O|mMS7$R%on$pYxdxtvJG$IZpfBHc3GMm$Ot^rxjR)?{-q_f%Vu9`FtSMW>
zY>?%-_srf?7;1C^wRliIz~RWJ(;dAmuuuOob^8W4P(3^H=HL<=nA$Wat5}G`zpPGA
zw|oIOPrJzV=MOtHj%Q-mlemDmMoG~y5B2)CyuNRQyi4zXW_6@<%EG9{_jjy!P;a-n
z4!K92D6}Mso)a1ogD1?7472Ylf**5_->LV=cl3mr&k`{jH3eMy8;xwBJi;43xG4z@
zHWyO6Gl<}(=Zj)x9u6Si_UwL<$OX2eM-$GpA&)8D+SB4?VfdU>O->vr4U6O<b$Mtn
z7du!kruLE<5-o`GDioREWtaD?6ygDEl1)UZpNYc{x1B!@ds1+I;Edu+Wol?Y**ANJ
zP9E^-)=%Pz!jN7u{5#8C0vJ>xe4`%8!ts%Izl(?imEN?CuFFO5d$t@)ZsqbYKYPDO
zt4tfH(n6Y&zbk+r&c+fqtN^udu5ct7%Rq>>%YQ!+hh3Ry!Ps{S?Ufor8ko+>z}35n
zYWM*Y+_$vfe_g`?qC4l7XFI9DSwoc7?1nHHr`30=|3$fX9;X%>c>%bWCNbNH{C=|B
zW}lxiZ(_-JYqj$<M4*u4EX#clVVLRnsc2R~zU=tfo395{Kt(Zb+w`{(JUt0|ZbTAb
zlPXbzGpRuuDSo#iR|a+(%-QEj#9-qdOVdSHLHP8V;leNE6QjJN!##Cg6SNvA2;t_M
zK#(Czw|7tn9`eck0XAJ2{!jcX=MM7v=^0o&(b9)E2xdICstH#u{`L78pnW@iF%#ua
zlnd**KF%_s467+$|K39!DiL3Jt(FOTANn+}-HGyb4H;)_PM~vx&31<cv}i#=yPa4b
z>IpEee*R<6R|8}doju0o(Vpd!c-E*B>Xm(?Q3zo=5d5i7j<_D>6&khg#OLdR(ybny
zA(W3hTV;D!&PW`nzItR6J<|c!(8Ci?{4wbH&zZMoKp&J}OYISajo=a|O)^)D5zw=<
z#QYF30N0UNk;#7+FyO+iQ8aA`28(sT{KN#hZ!J`Ypy$@(_6})n<RM=_o$^;>KnZH3
zj|L9kLVfRz4?~yGUVM{-rRYB;Ss+ngncbsAdz7h7ukR5maA5nq*_R*><f1k$&tIrP
zWJw{bAIhVV1(Rj_Tv7-A%f;#uyJ!x#*!W++fFR`PS(H{G-(mS0Efzx|3nf4MkMz7%
z1)*B;+cbUJpxEd>VaBNh#1*=Mu3e}XJ@UPpa{%&{^Q-z`r?kM}`}gM9emT&OsFP@k
zQ-tZfk87kON>H1VJIeJ`8QvbN|H$N{3_tHYKH42B2j^n%gbSZj1S)f4>mT+?a59#=
zjs67U&!qWS`;ZTyaoVUanho*D|K8R2wkShtp;yg;3*tKkCBF=)tAnfv%{3FEW$Y2J
zihHi)|0p`|cr4#GjN5zfnZ5UxaGzH8Ov^|SQhp^AB_tvuBSnR>BCB0S+;?PTl_;~6
zz4xB)_5PVpo_M;S>pI7Ad=Ej${W#<4Z-C~+!PHFwiIcd^e$qW!_YKTn`CsSOaW2A`
z^?-|L3<WWyAKMzW(}nLG7huxmJ3zEAUgo|RKZFUfJ+F$}ry|a9)z->fIzUL=Vy}_@
zE<rS0X{ryB5hV^C=bYk<<0r1g82mh2zmJ=^u9In9I6$xt-MD=eSP1K@bkhrIEBH^(
z(_>#$#EI*=?KF~W(uAGz=cW4gSv<yP=@m-&Bfh3^T*;oD#2G41R#NgW<3Fw|kcj9D
z5kIbY*d6PjBNSS>ofOy^3E9cQ`<lIrcw$sTH~sb!78w(spHwJ9R6qUm+_Zy|=uaw4
zi|ybgR@xi?HJ0!bOZ_{R&m<`j?_sd+jhz{U%#RCIy*GdZlGlxApP{|w&87~k0TZZK
zFeQnj*9Eaxq1k&y79e0c^l+a6>E9wPUM8daBrqY^`ntFYXqYf<en$MiW@00tcH9!~
zW*p*AID8mtHRhi7TOEcG)<Eq%)IS*n@aw%ryu-4?3L39tRX~$QXO*iN@v~HaC;d)G
zy4Q_z5>FR%7?~CKm<uz6I<=*~4|b+Na^@~E<Zcdj;gO%>gv>x>=F{)vzb!zJj<Vn{
zts|&?6)9k2vjoj|Pn`?0Z6Wyif~G91Imj=4Nm<LY2TQSJV%EnNYK!Xh<?9?^@v+8<
zpb!T*&-~ye-D7(=JLC6pXUQ74#Ttb46dgdhNGGr6J3FXJjj7&~5`jyqeeW4bkiK~U
zPdX*W1D6~9*xZs3N8;YOhMA575H{RwyeN49Y|kC7UX7Q6!_5fXo-7Ds9uF##yJR48
zh=Tr+AusGQ*9gcjN`N2Zphghl)P$X=Q#)vkUYDGz`B*RFlPr8vpt~UiLN`48{R-59
zx3VzW8r46nfwwcI{-ONEIx}uHdNnl5ig{*LD-A3s+<Zgz#o?8S^f{VRIS5&wanp;G
zgM`oL2kU5LU`kEs$Ddzf@b#HgOd+`}oVxdT@PvRQ1iNI+u&Rr}EOklAyGvrwGPce*
zw<HBMi*sE*#*z@QU_$R0Dhr!`Bc2xAkcH5gjF8w4X~5!1D0l@q2^s<YW9J_;!&+xs
z-#*gc9Zy)^pMS{#xs5!!S3mN?!~93rduzmqk{qAm#ZYdv6ndckB3Kc6E86Q#*+k&+
z!dx%)1y#gXm#I8?i-q72<E|7z`4mQnv;UL^uoJ^6%hMswG{j@(M<$l{R&kk6-zI9U
z^&m+>{4?8C8Ss|U`*E-X>C#V!(|)&-hO;({Cuk!Sz;?l)JCKb9ZrptCV1VZGQ3{9Z
zmxj>$G??~pC`ui!PPomRkg5QqoUV=6^%?wMJ+oE<hYD!SNj_K1QiHs+%;{UY>YyoE
zXq|!1ZL4*ceD)4z2pKn9POdlrT)KP0t7xC+s}oN83HcRVeBM|+jXMOb<xbUfmeRl|
ze>rM=Oc?%43Rw|Cem4dA>WOX<8OWvD$362Uz=HQC1w@HM!X<{Om;+KU^W-wcOG$N5
z`mtIVrmF}c*XEnwJ=TEkdD-K4#w0-3$j{CR`30sPs8b~>qx_qC;Q^_;Dk#60lkQZY
zEHsCnl}Mpy1(*J{!Q>U>4?JFDtu?0xZY?K{yhnQMpr~2_TBSp9XZC=!F$MCoopru#
z8FT;yufO6ej@O12J?1adS5@HQ!IgIJeqks`>^04|LY(yr>)JDsC`Ur{q+dv!3e>u7
z4O50ILGfJahvZjC&)auYG`$z)7LAr^g)^aC3AuY7*Uc5+bLh(#juada@^a@~v#SyW
zoue!0U=f1k(z6-5l!$|6rDM^-s1BTd?T@)L)qvuo%w>h2LU6V-lg~|01B9NIO`W$?
zgN{c=76bdra4Jxg)+ACJ&e$=ArfaIhltY)+Ci;CSyI0drb!$S*>gOWq9R(QpORfH3
z3UTQob?}r<X^1ApG#bm)f#YKkMI0;2PZWFkbURf8j{KAoUmwtdhhmOtRwaiZq~6-$
zTAd0Qbu_7%@u@+|><NwQ@AZLN&&j_aRuwX<=SRzx6oH@Q`O^}#@6;~G+)0;(A(`t>
z2c{(k@ncdszNzAX$<9jH%qW5GZs}vYFa_vgu8wB=i*k$NPA+KKi^CGN?Bj|BVPG0O
z(vgH|z=x5<z;WcCQ72nDV!y8rfjLflKco=v>07tubt+9@-pIMtQl|~dB21d)htcz>
zx9|x=c~<4{+I2Ze9X`xEKAS7mg}J+yI<EJXp^rvbehP7f2dEgufmQ<&#%sgOUMa$?
zrGb;iQx!;xs0pFGAPE1g_kY!y3L$P)ME{1e0*p-?%?1u5epL9?znu3Kq4lwt{86-@
z{_rvXU|FjaIO-%u_4%p*?fQp0hjL|De-p26T`LdrZ+?^7*h&G5=eDu%sxmke4jM0;
z5s&=*T61upGPoV^|19bu56qfzo(uV@xN_i2i4TY`BA=H!7tX8*AN=i0viT8LvedJy
zMqC`c2l~5XQ6G7kBR1n@cp&7_Nbc?&4S>q~bRmc0ub{rahap(>Kd^Pa`r2>$G6=pV
z?znS%1I2D{UEA}EaCa{~@O{c<P^;Tx_K5cbicf+~><=!2&52i%w_5xlB+i59KGPM*
za9p~}d;Bum^R{VgGy8#FlP%vuogZ}bJX>IJ@&WPS7r8%7eE=a(X+C`LgCC)rzPeGK
zP}}Xd!as2qz9;8ll6_}j==3~xfW`+x+Jl-J?)bsa$?<@@x)%XoSlPAu<_*4A8S89D
zJ)uFawgO8%2lt-yZm=FX4gcOyF!V8c!SPEv8Jj+5U{$})#IV}~Z0k;N3do)V#Q$OP
z@Am|H?_I+7I{Nz02#<PNPngTm8b7XT3F!|ELd{0el6~^`hYOF);FxJLceb1r1U<gr
z{tPn*=L^{ly4I$!sK#`OgwzN^7_aeNMSS2Yk7<!x^~Rvx{+`CV-vA_Nw)U*1bije?
zkjL3~h-2&|_x6LRAt-3vBF}F`T+6C>bM{&j*#GY|%^@^LvHQ_RSHlIM`p=K&9G^Kz
z+DE30Qy+%PmqpiK{Wga^fuZh3BSTn9=KMU@V+1qC@s5?K4&Jyn9a2zg2-d;lm2%}M
zAM4@xx3x7hSWBr_xiEJaTB9dF|4y`kK03=!CEu-J%h0Vu#Lx)JLm8@S^=;uqQ?Ypy
zuN_cc-i<M~J`CaKJT6{~MSG9deCrL&26$~l-xVBkghwu&-j<>k@H?A(-kiq}w6fwD
zKASs&WNfeZw@z1JO?oi+$<_g~lLfs(ZrXt3knKn?1KLN3%1d_!Ily-2%^#Y4M}Rtn
zJ37M67*sM}F3gErgK;wHgxr7?T-3CVHbMRG!MSVd?CZv0%#?JFg3JN=UQT~!QL+a~
zkMW3WVQ7CDdGbi51*-o?$mmRTtUy$CIH+yV4s>|h@9l(}LqW}_?l$iuaIN=?^}Fc9
zApi1MY;nIi;xp3>3RPJ_PmlS9*;S+u6Cggj3K>Ge#*@9hEfXm8Jb2zh=mg43?WYWI
zG=kCJ^5^eN8o=EZhp)xB0n|qJ#T_iM2F~^|T@JK2eZu-nHkVWw5-h%P%KTsg_IbBQ
zCqgMfwyE%s_lg({eR#BSnS~t=nyZg)qW)Kcqm$;S8!ec1lZ|C(i9q4aV5{mlPB>V=
z{u?);g!dj%rWOv|5c<Riu|9S%+oash7`qMZ8cw<`8!HB?w>kAceiVbb@Rm0ru3K2b
zNte`^24PSpji71sox}0u+|k)GMQG!>yMAj+7*vS${y(iEuyrQ4_&M6oFZ~VXY+sne
zLSBC;JB@s*&x#DKxt|Gv?Sa&|Y19W?`<|{<pNjbUNdxo4Xs^<)9z0_BKmsNgqJGF_
ziv#_MSQZ+@2T`$PKXvi1FvMWWoR%4q;N|b-uTdrjuRpB+j6?GtjlVQx`EfL0+xu|l
zgsw2CGP@bw-xLK~+g>K|E|l*hFG9z;#|Ok2a!&(FQQ%h9uQ#5QgTY@(p?;2P@P2Ka
zSh*k#J(ngP83szhh~P<bLF5xZb3QGxc2pke7BhdJz$7616#eDX=R|<r`0_itSUIr$
zt0{c_Cl8eL6xE3!9kf4>W&W4<Dv;w=6~d3|uVsZmDdA0NI1)d1n{f*1cm%&vK8xjq
z>=P$qimpgO@6ju#2Pah_CBe7Y?kcMDeje)NU1fxxA~(05D<~hlms&0xap+qg_nc-j
zkb>I97iC_@M1dvg+$(N0{~Gu+`dpy?0Cb5*g}by%L3+<>&kGN<H|B1PeEe4u;@&V<
z(uAPArKKtp4R%r@uC&zPt^_$S&0aRZzi|@DmUDHUto*>-_1QJ&!vg-JK8?dVehR~)
z@9(|#|BhQ^u&rJ`%s?FLKUu@ZvxWbqIvBF4_X{^|9XxV~W*?L9)O=vhN&$+y&-MH>
z$>GDBQ4XnHGI*Q)>JfMGD3+LT!BjAS5<1SFd*f=!3_i^6JMJs2kS#CRVVTYYlgdxt
z&ph14l<B!F$s&evt!Hv2XaD74;tHC<Y{{%}Y?hNDZ<7b4NWTA?L7dS3*WX?pV_|`8
zMrZ1tp;@eJ$$FHdbQ0gQ4<HXE`Hi2wci6V^0vCK(3mU*R7$ECc?DLiuDk#5Wq+!ZM
z3%iL&jda~fK+(U%u((kSES^c`o8f2<ad&5Po>>8^eF?jxZzSR3`cS*=3o)Q-zqlkl
ziRQLOH1`$J+(OOPOyLZ-Hmo~@374WgJ#RStv(;G*KB-2K=~!z($S=|%j7J%y%~@~O
z2B<>4Oj@-*JL1(Uzj4_|d@Jg~M?i0@0)k5&gY?sKkabhGgC6zmyXir!m!C>Q`z;ej
zudgU?-Y_%12<i8Kg*T;0ddUJwZ%ztVqa@r`?l>>lCX4FjKPK0#(epWVdtv^WI@pl8
ze=<gUARb8@MsWu*c=o_JVIT3l%=b>Z+`J$I7b0q|z3fy5^4q~)Pp0Hyyx^&kwiMz6
zUEzJeI4=YAoPtX4U(2F=Ns2E=m_Fh)%&%EK8BF4BxjTiEQ`=bg+otU-#V-8iPV^b=
zy(K)$a8+wciXD=<PswdfQ^Vud17}0**09R3gYW&U$>E=jQuwqj;wcu8b~GZtB`O3|
z3`DtrDKrbe>B9<oJ2&18uCao9hE|SdB^zWCJSCf4@}Qt_uT_bO2b?QazvmV60QRL_
zp$qY~zOJ7-c)N@Z_)1*Kw~%ixFr_i<WR(CsrGBTDQi)#g?$x(H=cvKrxKgLt06jPm
zpI%_-yl}muVl@&@2M+0Nlcp)ipCqBM{GS@)5~VhLr2EW-@)*8EO(A^^w`5Qh?FTZ5
zU6%XSa0TgX2u9s)D_*$580IK_RsyC2V?v_@gg_%+``DbN7-*C!(u+!q!bh$5e#J=N
zLAm+9v6K7&a2%X-(MuHu;V9-M?J^<QoM|ixW)uUHjY$ittKtynY)Kt>P#hdeJa6VA
zpJj8)IkP-%R7Zx84xT(L1~Mc6HPy>XfQYJ4r0N%Or1ya1A7xSQW4&=h$xR9PTvky2
z!&Mw+tA;P1qLPLMMnR4nj{LAIxX$BVEe>Ou-s(#l=zQBvBl(Kvq#<f-!gf3&z$YG)
z++c+EaxvVLN>RuU9{+mQ6X_#)4-~`|Bc0!zC2?$yMjG5ohd7iTNCV}KAEXtp&^(mB
zO|)cD4ul>m_b3$0gJ&}h)3IV1u&&SQF0D}j!AaA{;(UF0OlEyi#BWl<$m!w)MK3ks
z9`Ur4p=cDJ9ienSmq$Zz;C7@@ovh$VBdDKta}A5$(zVD({;xKjA){G!ls~>Z5yh9k
zfn9PxtaXQ*6Hd~(Cy_f+gWJ?W$z=gHIM!f7<;%zoTbvvM5jV)dqE1Km#(O?!7fbbI
z)1d(DHD%0Qt|`pAM<{v3uN^a7Sy764{2LFD7!dQJ-p5aT7+8IHXdi2=?o~38CIgqi
z`&!{X<OKV>{1?RV7CwD#E0QFMAGBMgn)`Z%;MQgFtJAFl;6at9q&9}`4dtob6R6MP
zh!*=Lm?Q=#hiiG*db!}0>zaA;YksiZ*`*xxL;9+~-t?7DQMmU@_Et?k3(@esJ=M62
zp3v>txEp(nhEP2;^7mOF10hD~DMMeuKs-9#T>J3|6Y<z>=SD1=A3fqo8~PGML)h-;
zRYNm1p?lSTcqS2jpQkp(<wa&f!#C#D8T9x2e8RV?&FKjnZ{vl2StjDliG|aW8cc+i
z(Tl5@0VD*InTy&{#L-Y#Da@DfWFi)sE>zgaG7~A%y03Z_S%~1qGk@EQS&1GyIi|8P
zR)VU2$<suVnn*9o)sXc?x)t84VYgj2qO>&1v-LV1@iv-KE&dHHL3L;0kDVSHkrtUe
zBaz8MT$d}NGVNg{VjqRYxtK8!GctFw%qrLjrht^Icka^=*9}hxd->22p2gf*b7<dh
zcG@h<lx_z5eV+CcCn*VdEX~#N)~{i4G5_HTStN*;ZD!w)L|{RIdb1Oev=IAQ=eyVR
zD(1>zIHC4x9b?EBqj_RJjAe`VkoX?j#zsR@i9?IjurI({VfBj&vKH50=OO)PnEkNS
zl;avUbFGu6Z<Ydt>Ypz~gd(29alabN^CXC$d+B99Zz`6`sqJ&FjuxU4D_PaOwy=%_
z5zqR}C2WJFSRRwvz<h6xK(Z<wTz@d(X*$9LW8{V97f4qzk-sE0Q<)Q3{oTCY4Ay1r
z`i)rp`0WKu!riJq+;<c!>-}{;z;7BmzLeZE=1v7Cocw7lx_@EQ=hx(~{~W^EPLOt8
zJJ^NWcHDi)eSQbi&M<gDZI65uR;5BW|4<<QLP|rz(?WcE(*C*ZsV<CbdH(ST*9ul~
zD-Mr!WQU`&zE@NBm|%<b?(mgDdKj+5ZaqIt4`HRRBhKIai4R7T24}vb1py1{U2km`
zly~{~YyD3;=xSe)%8jOhlXa9|wb0i;r76tiO$)#VolenrA3DTwQhaKF&d<OF|A6=6
ztT1N5X19R+FfUA&O(^6Lr{iJKPwVh?>}*l$mkt9u7_Dl4Eha_{Qw6y<a<b?l^NzN=
z^bji~rC7IZf98b_3>LLcivY_7*^iVzxIs@w-RQ-jFi4jiE7Y3jhAHyL)5mtXfxJMe
zp}Un1qScRYuE#OJ%qxxeSF=(6+ah^0<9RA#>C(ut@fbQn%P~Sd<|hsDCor-01ve>?
z$Tdlkz(_)*R?|#G;Vi_$-f(Wq5-m|+^D?-)iGpwlwBlDq&;6CJ>y$co*@#Eaq;KNk
zG=yutQ0|O8JyCc_xzii@Y$W(9f}cHLATnYtPyC``A<X;!p5+f^A-GSKrq9Wd5I4D)
zy=W82iA#5uMxNDD5tlhaB#lJqh|FNK!(pHJ36-6*x|Pdocu-f8`juol;)+N`6vIa<
zLPWrBRd1b^I7$7?F+Z4x5Pp#HikXv(xHEB(<9;b85&37;SuvHJxE1Rp{xOM%s0|S+
z{q&TZU^HqJo2zCc3=jUat7+jP7JP&=q}JI9?Z}%l>k(|k#R(S`J8CK-)GFx&_-<jN
z^Sz>dx2Pfg%9zY#{xbGU%mqRIX(0G4nL>!lET-PxM)Oi&9S{659j3fFi}QOKR+fcO
z5G^~m%Cr9?Bkn)v%=ziNiJ!O0-@HmsLLe7=V(2AO;(|H<QvcRhoXHtAabN2(g=QKx
z>laCQuAI2pIpt1VEZ_f4G4e?$$Xevpdv;;USz4jm6%%-)?IV7dmLaU~o^7VB$8YRg
z@aJ3mq%F9(snUY;qkQ}c3)c!A*A5n`FLR3NSq|oJuDfd_KablvI7=Hy{J<<*$aU@*
zOyO&IU-wee9G?6my<K*T!1$N9a&zPw@x0n?>bUI%ERyqDOI-N?{!S`4yQ1tHekJF6
z#PUaS!k4r|PM~!O-&Q->rP%ThOEMdmS6lDIx-<OTeLVLu%`Te&PS!q5$Lns*UBhK;
z@mx;>`I!m)+t(Ve#P=guQ1E}jJ7qhVR4UyIvzdQ*;-}&VX}`Cys^JVzDq;=eP<^qc
z^<V*8h`8v?7Bq_AYpA+Z%Z#{Z358>d{WLJMq`NeBiyq{<b)Bh|M=*z#w^MZQN3l$H
ziJv~bf3fF}lD;VI3BuH|vafbJ9N^&IIQQ0;0R(>L<a$qTV_8in?4Njw!W+%|0@X{@
zkZh*jwRVLYXermCj=$={#Pg5%@9uI!vdP$4A44YaIMMn%^A8Q!=o<~Z?nhjo$}+)f
zRdmiBv-dEq`+@14Bdtt)NlsiPZ@ZW>zJ=L&-sox^q5#5b+}jSwfo4eXrgqXE7EzFS
zvO<rS7@Drr@+bHR``v4G<{(Iv&rbNJ6!Q^bbE>`_&jpAT_ppy2&+-seIYhPnf9N?b
zA?p4~3K3ejXFVdn3lOiF<Ck?~I0&hZfvfyXoJ6lwZ|!LYKH`Jc?;>h#0phB3bCq8d
z4-vt-bU{{9jQFxwxE9^bMbu-tvV)|2MD%fI54FqO#F6_$Bw@$62-@9ur;0842t501
zV*5EBg70WwV!j?L;ji>_RX>=E*pe*Y%$H{)lv*QLYDhSUWBJA!VNI;WY~Ve<qB1&S
zWJ7P@X%hz_K3|cx|DBmw@^~=mufs~*I*`w1Vcdngm_8qAc!jv`_Jv$(mi5@3-|f>V
zG!mD}t0@_ZUBc;l^>{<MSm2MPZsMTrI#%IF@iOi_BcxVb31>BCfRS|Ptma=MxLS>R
z(~=7{9Qb$N)A<t#%+yxi^>6)y-4Z+0Xp}<+J9%M;-mUIpbAB^7;<LYEbByF;Kix@z
zFRwi96jdj#bP(pd?{DMAc@_S|)ny#$BK#69C_v=+yT3ywE7-pp?{K(H3sjzs2k9p$
zpdd}2WOnTr7V?6xJF8~{y8&jG^pPJEyIApMW_$}bZpye`X7(35F;_d@OFM~+8qkl6
z$9~1y8?I*a#xCPEXPz|4Pc7s7{o4Lofm8%<V~1JV@E{(Y{4?_uy$1My=bJu;^tF*^
z{Wdl-bYS&@__-|9S6u!UMC&sn2nWh#PI?+?!L|i+rjx4{d{yz@ueL`%+XtaRuOF$v
zTzihhPvn2ODm7Up#fx$u>L_QZb5w!5E9Tz;G*>QoaQt3wvJ%{0j*zEISAZJ}aSpM?
zYOuglY{C9Z9w@Cw69mmQ;Mc)xn`18|!FEZ0<(;Jld>$)_boiqVNxpG(p+Ooz<!*g}
zi9s38YloduN>_$MK4sOEe>7m|TgpM}N_7ZhHoj}ti+COPNwVLG=s<bMgjuAEHtb+U
z>px^QfqsWBeZ5c}_{+8z7IY4R0iVMs-Z*t|qQzdReo=)>;2~bLiu7e6E*oEx1>nnv
z-Pyr6TtFRmne8ft0MPFinyNG-pK+|mCz2t4P(SPSq^5HoYod|KvPmE#h9|ZsxwE*S
zqy6^xk8SIi-re)NjFyPEcE>fo=E@rO<6~d!*F9R$Dm86vh-Cq)FH~#_B6HXlwU53)
z<v1q(aq_117ALg6S#iC;y@}2AJ-*?h%?AEabQHZ4d)TS`l6WC{5+FNgd7TiXfb{9i
zb-z(cxD;DpwK7VD@=DpJuB-CEK$`S&aMBW{eYYchwtNH|`mDmz%|;0$qAunMU9;GS
z(yI2{@GWe2dh<!R5GA-;`V>mt+rjuIou#WR7x5FUlu5<pi&#M3zhj}N_b@W9>y_zu
zC}CV|ZOp9)`G8!$GGsW@fNP)0Bx8agFm>ls7YZJLRRzQLOK4A)F<pJz3F#7Bhi=`f
zC8L6Sn+E@VC}Dx;maNtOMu=Z~^621$%ZLN^`-h1=K80QTs!9K%hYc=nYWAhmA%8Ay
zn%goH;yv5GUR(J<3orCWSn^{Sz?#iF{p~Lf2;|*%J^q;kJQxLy+iBP!qB@AfDUut~
zy`;#+Z?M3j^=%3Q<(5pT__gILaKczEo9}r|E|6S#Xch8`6P?E!a&JDez&+)C=R;Rn
z;Xs_L4aUTbbUs&#n3xcEZ1R;B*%%vm-r*fMP_&7uPnM5a+OorBZ_N!#VHOB7NLk!N
zIgN6G?)yAW^k8*?G%01D2V&y5jhe46V9!?HU|*b7;Q2$l54uv)V7zDgQ1~(le3rBD
z)JEK};=8%;-dAx#0`qQ4@+Bq^Pg0O=UO;~Ak1P?#g4eL6n=F&`S6M)@uw3ni5gqiT
zU=7tK6Zjg#&Ii*wBRD>1wIqyFLbJ{N?^Eug@RhQXV|a-V=`^W4J&!5CwtH2l<HrNA
z4FBCuc_Raju@}uZ(ffkpyeAnq5dZ6wpF1_;ji&w{k={W2PtnE%N@ibqFbFoXe&`_q
zxkSOqj3HTwt09ZI1(I<0u_K*mp9Gw~BkyVcS^+);U-axdq6(F^3qA&Ps&G?y#rjZy
z7L>2ZAH7JY0T<`F2Yk}i!Qt~wf9gq6km~)Z)l$EKo0A92%Y-lCdZ+#|8<PLTi@aXY
zaX#3=uKbtMq<@wVC?_tLUdp9{;pl9Ge11AmC{cU-LURKv;6If!dvF)q{geN%gM1V}
zq0OH07;#M{nB(u%{OrW$e9&RSK8COF+!wO&8^_PCyLM39jo^QtowvC^KZY+^FumV6
zg!)l)<K_bx1rh!F3v*8D5|&<hS@*WpCbsP_HCd!hNjO=on(cFw5vBZ|f5=i;h-`W1
z7XHpDZ1&IdnCbKb@P2_P;qqsMqt;^cxlW51(|+8uY%O;1&|1xxk7I|yVnG#64KgCc
zj^EK=jt?S4VrkyqI{@MLK9bMavqA37w@0KNEaS(5#E-_fp}MU$X7kiZc38b+m_LgA
zs@C?_WoFB)z&YP~l>rUxP3IEc^hm8?JUa6&f6h~Z`B2eWrt5T|IVO>kz{>&!j0s!*
zBdhpd*4Az5mwZs#PrNWY!-{l(4ROp!XOve!%F?{^4?i|<>Sh(Nh{eyHp=Z!%hfd)q
zW^(R`|0HgI>#^T1mRH9U8=t}lU(VRNHOA0@@zYWc-atl>c<(l)tHlT=r=PdM8UvgP
zO|G&-ITh2YY0fifKH4sR++Z8!fys}ngmWQYS-I0Ak$d7OzvYqZu)Fgg?38Vk$E|Kw
z5UvOeu&HN*kCl|i{24ePKF&qT6V3O=ZxmJ=3(~=_vbKJ=F)E06TG!s@RfePX#f62`
z>M-&$n*CCMI+$;9$Qb%-K;s~jxgk2gizR~t3hcC@!a47i9@>lF?NL78K7r=LhZMG=
z;*p+({{&rrpFGS6##jFLOC4OAybt4Dn!v<(uxXf06ZTBikGj880gG|xn_f><!RzEy
zP&%>+{xW(aFZDnL0<Q1wOd?<O=Z+w!5I${qCRv{|azY*6aE(%%4XDBWSz)nU3Jl&$
zzD;&_(SY#p)+)b|50=;J=G{lHRpISPmeY~)XdgIy!{<KwT(QJ>r(exO`_RSbLBlUp
z;N6E)O77#xZxA!0B82Xx#^LL9lLxfmg_bsR=}%1vj+!^7P16L;plGej=;x$Lz9AMx
zMhSyVvIcTBZTRoNoW`=&VO+eMdj4+EUu?Itf_eMe5UzY+)uf?u5~m~8KmM?X5iaKz
zHHWhxT{fA+am5OH&>iv>Z9Ps7r*2cL7xygS*9yeAPDirAIi0uXt20U9YKZHrqcVF~
z-I4#^+8}@Q)9?e1yF46F@&ZlKPw@l2E9+F269;@M8=JS^VFcXro8+y-%uv<;k0YEx
z2<ckO@2@>2g%Dwlji8WiY}w}i#v<w;#nSr!xTvpSX$|2Mf=XN1!#{&E-)Cm<qcKwr
zG%t3s*H*u{Zl<^41xo)dm(Q-^`G*=3lHW1H^3QT_4n_*NIPj-9P<jrFkF{I1H=e|I
zguM<&^R3|`=ZH}?Tm@3+7nhpu$OCz6%<eFUD3EL}lO2661r-GmKO8@b!jOkKf9YpV
zh;ZVbS3>-V_<=E+X#;fM@XJ=Y8u36|2*uhZSqgBsJ2CiAQUr2-%HFr!k%wOM?Kh>y
zvWQ!zvRtUo40*GoVxxlxVE?S6#^)pQU=(mI{pN8I_)%LJ<bCo0Tz{YW>uer3wC7e=
z2y=--|KI+;Z=nh>uDD3PZl($(=PO83m=M=Q?D@SHXOM10>Bo<~6>V6(HGhV?4%ID!
zgRSfq;;`%ERu(9#0dM{KnD;Uz;PG{r|DK7-!hK$!xHQDM(OWxm|B|N+bkhjgdPGY=
zX@2lB-JCFZ*xX@z;`0A<`lDNFCDPyW2Jq6N+@53_1K%&05ZvAzqGDU)f@h1jcO;&$
zfhA}Cn#yxV$l^Vt{MC{Nj-);@di#(C^0%>HztBD0F)u<-)y@DiWe=+DHCdtEQF+g4
zLKJRy-B48S<b^Kn+(un4Iw1Xq-M{>Z1&+;+9WA=b1JaghmQ4)k92<x>8@!I*e@^ve
zoBQH0xK#dU>je)aa78$q<Oo1q;!#`^<q9AAFfkUchVo+$cfDxvrv=Tg{9nFtC_=Q7
zXHEhg(yM7r?>t%&1<~8COk~I(i&v?Vd)W&@ZQQMMw|zxHF}RW^y#@I;Pi67`h!%yB
zL~rv20{Iv0pNXE~l7b`q`ZRJ&@?hcOq!wz!M#x+-y-;wIjyU^5@b_>&4e|8JS2h|>
z3W7YVLweJUoZv7?U^pbOj}JJ${Dg?^#6CsLrLbsvqUf9Qa>gGP!Zuq1|9g#@c*`JM
z690&dpb?qTwGW{ps{E6?{*$67%)o^0%oP^I$v3?<uuV_I$IJ1w|6?ZHC5PN;sF{hs
z9c?T0;+(|aH&6W{1L=qXy;bMYT{JIb=>9VEmX=6aqKH~Ipd#)V^7cPMI=1&3>97CY
zW+2A(#m3CaS&3ka!X~49F2eR{&!vwNTtw>7{IN5y1qmTZ(r4IPKH_!Y0l$zc4x+*~
z!6tE+lQ`5GqqX76K^P}ocQPd5Bj|pdIgn?^Pu!EfebI28o7ll|&F$Z7*nj-0f4_2(
z5)mGk{ack7!G+S-BI`Rj@Z~ff7PsHWxZKKr8>ehwZ&%fZF8rl|H|c++i<&5bHCg{H
zojgCJGTWN;QnA8Z*4U6}DXP!r$r9{Kcz{rx{cWg155Lm<0?D??VD7`XE}qH(L%5dn
z<SSli)cvbxDv$D{l;>Xho<>|$E%qX#>IwY(rI)Om!RTHoc(i%rEHC26nGWZUlS8C0
zt7I3_%{UD|>~*;7fJYv6+K;@3>M}N~@b(7eV``+I8KR<t?c#rD8iFYS&)Xk-o5cac
zPh2(H$p&%1fV#Uf1B+P6Xg1Sn&v{HFkjnan2qQGh+;io2V1ks*KLcVNl;C04%{R9z
z2Dp)+0b{ljh%BuL47sEI;o23`Q7vVtnP>13YnF%esm*p$V`4zY_rOTbL=mu-=WdC&
z5kJ4{&6mzhIi&O4%^d(WQ1HssPn?qj>FAqhbp6EObIaG_FYlybS-P_3XPzo7lD|%+
zVMhEX=ZTu?P-&Pib6Ya9M>*{o$L#Gj<RA&eZJyC9Ld=8b<}!U!AT0fzHW%$3sJ6!y
zANwkUAf<OwmW>hwD~9I_XDGp6?D|XLI2jOa+I|yIAPPn_QrKfsMX>qkC>L*|3YwWm
z*VxKrp{)H*mP@KUOqo6niI9^8!C|{mf3(NqQTOGWrd5UxqP=@KPYzW76f}!JP=Kcu
zYT9uxhOjKxt@mQeZMfh|$$-VvYq&>?0oPZFW&CJ$f467L81AIG@>6wp3l}06;<42j
z!bT|D_H7xL@Ppd<nlsUR_z?{^y*{-PT<H%-%p=QOJfyHAgTG}MKlGvRMNr}%{$)~L
zbMNgEW&y8UzI|`USY(f9lb_)rDz8?pxOH+9VQL=^ovULdGHb81=({ozO5x6gTJJvY
z$l*1Wl(L1hwBEKR4`L@qE6P*MPcstpPI@gd44lN$p{i-0Z(M}s;zo1c9d?3(Y%I!i
zik<L`YNR@>z(8F5<e_Nxjg2s_E-;?(rXsG@3fYcc<{<{i+C|$MIEas(l;(eEIEXX7
zq%)PJl!RqZ{p7u3Mq>J0<{Yo4B&0BO{dF0UgTBZ!YbFtr(4sjo%aJAnU52jLdQPf9
z#4EAt$I;qgx?Y=^jPehH56UKGZ%Tr4!!>%H-^x(Qt}}URSpmYWZ|*kBD?^k~Pt$(}
zN?_i4i@v`d>BhHtT`rW$AWqG7t-gB1mtdi^Ty#?a^1$N5>0RjcKR0Mdy_19jD(a*v
zAqlu6uUu=7_Uz|%U)6Sxq5ML}xidjDlAtcOfAX1$1~7(`=opvC0@F`#XDWLIn5GYT
zpZQ!0e8lfnS+6TY6<PYuO(vw{og7XnHI@RIldK}lX7b>eacw>d@hL(gLv9x|3c;A(
zrJoNp)gV@EDD7Do(h0qJ%B3NTa_c0m{>B(8119%F|Fya*yi?!^r)iUcmyNC$CI1Qm
zpTjFpx?mpoTbEVD)P(A-C5`6qh;#PgXK;{GEz(WWzdj<@t_+dq#0Lxw4no5ZU3(1l
zp~8)`)&kXq&pup|SG3fG00vSu{@aHjb3Z2K;tvgIOXm5McUc3j#@k;WMY#w$_Mg|U
z&LW>m@ZS#Xxf+a~arVfdP=Pgj5j~z9HIV2DVKUxE9Q|48nv-$bu;;~|y_cx~5gD;G
zrszKM$!-cb6DkK9*QWc2r4)hM%Ba?s8Tm#WhxL_^&$-EF<6UNv6nrAFqBC1m2C1-8
z^{O+<KthauPQ0rCmn({TtTvGU^?uKjhfl<y``pqbg}@Z1lFNRivcCfpS$p=I*L?vC
zT<@h)tQp4hI)CpKlDA_2n%Q)w_(;H;H`vw1Z3ydlc+gd<gA*>}4w?O7OenW3{=Z?J
zDLnmR<>}y`JJ^3o6*faJxWMydP(|8t)So(p`&7vzou|@`FB_<Dn6__a{lMOeIc6=m
zx(^5f6_fnjTa=?{FpJWG-f=<SE!wee6>8v#O<zj3TE~pcZ<;+V<^Xcfqbi3YcoCmV
zXk2qg2$~;?)cwp50j7IDKlXDmLO1(w26HnOkS1rRy~jZhu9|xP&O6h?tEll;*Z4QF
zyuyHYW~<EL@$1Q@bBLQQ-1%ZWT8aZ&WKO)8_{IS|V%O<xO1a@wyDIbREKM*pNXjYh
zl!Pc(#s3JzvpqE{OV*Z$bpC?>1>C-^4dK*BhsR?DVDy7iYEO?UNYuw|h*%)K{zUMT
z$^%M}MIzR@_XzPxH%Y(Eo|c7vwL3J|E~$dYd4x_v`H*;fL);fGCGaVDFIU2@20WK{
z+v3+{;2Y~ey0fAR9DS?I#ub5lm=U+1Z{I?DQ?8?|XTK?co9LBI8BZ;gt9sj3*-stF
zDLL{DXOzL?mdC4vm#QdVs`PUo(&ZPjP>Xz1!oYL8ZKMrxnSR?k$pr2jz~P|qvbubf
z&(1}txiBJb--@1bk~#YKm`po_1k}MonJJpq=Md<dG>!R~=m1>_U5O9UCAEb{r#Syr
z0XM%FW^5M>;M3H9QA6(l<**9J?@6K0OM65AFA}6PY*WATs814fKP|{rdkDe1H%oH;
z<nkaz=6vtmdl|TVn$n{1ku*g5v3kELR)(U`jU(f6ia=|=`*|!;47{7}J+sx72F-BY
z)0?;&B=z(&Gaixw1~N`>ckhGncBaap$_@Eve{G%6eys_ItF<x|DKsJdUx@dK?<n8v
z$z(olng*zUaXOXrR2yO+Su^UHsX&5_xtBGEGQ{!kW^UA~f}D-5LKd3)?e~6^eY+?P
zw5s!0ws_@HPUhfFVW2YPvo>X<Aiqw^$r=GxG34J)==vq}LlI&tYsa~ekDD!)W`E95
z74)~Guzfi)LKesc#xc~#>og|2kx~%OMxt_uXUGYekn_Jk-K8dCm2WUGwyxpioI_$K
ziq>&vcioP4SjPSw{5C<7xq|N}oH>(dxQr)JDAUi3F5wdklwD+((HyP2T}nanJ?`P{
z-+W208#nK~&hRg16}L!kuTp7W#;y3H70nA*aCh>Si-D<&IKHg;ds==A-(8n2&c#WH
z_t{L%4MrryKp)S;2Mi<la3B=>PtM{4<!l3EPd0ET64RM<Aqpbd_xPpzT2nZ`j1%n)
z?IJ#&R-oWhGJ{92_xX9l1pdp*#+2iI8>W5dJ%gzhfjjwBzT@p$#Pb|9Bpl<Yh*8PL
zCe=H8c#S~pLw7V+-pqOa_mer|hLe2ZI4MX8ZiSZ3Ax~Lg`Oq9iX%#b=%bTg*Ms+@G
z>BoUsF=5CtQs4O%$p@2mImfbB`QVY?r{PUBXEPY7V^hf$h1bv5{Bu)z;cPY^+cimA
za6a#saXg;~cnZZ|zs?tcpL>C!opvY}T!A*<wT>EQ#*_aFpt%Ge*SYzOS~ht2qK8Ul
zmmLljPWPU_NeO(VMY25R%s~B2*m$R$8Ri!v5LZ+l5{a<qQ>C0R&u!c7kS+j@kJ71Q
z(44^YJy+R?C^hu7`W}&1+QxWFDuTlQV}nzVasoR?_b@w^pAx0NxWOs>q&$TME3EC$
zab88=cZNQfJ<a_Kw$L+eVKztyoy-naUO|Eoep6vWPk<K&rDA`yc?tn(ae(ymIbPtH
zk$L!}n+>pS*>+|-379aE;tNH337MOpWvx&?N_&~&_z$E@tIaL6`eh&rahy+s%G}Vo
zKlT2a4)S|SnVvDenk@+@JO+xY%jH4qnPu2N#69pAm3!RzSOEDuJEk0``Ji0-8*Qeg
z5PVsvjG=srbTdnze!0){gR-i%21O(%r0p(W$8jFWj8Cvr&EkPSO+B~0|8c{%QRbiM
zTZqS-ak#XVP7Xdj6bl)nlt4bb4a#>88qhH;Qc=Gu4=qjHbMMv!fbF<emodEp(m94k
z<#o%#y~Io&FZAco2meS|KpvXqSW?84C4tR}m&daGBYt1`u%y~a8p86kn#+_Q6LHyw
z)^$&jnb>2lN@H4OAyO$bOzm#c5CN>MCOl)i_@hSdfS_mw;-z>%tOo}Z5qBX7PIatc
zHB+y1B{%l)6&+DG-wkS_yzfBAUGv}Adct_;9i25?dG?`2<1<Ra(L{p(y7msPe)roQ
z-Am*|^na)BYYK1R+^wulG1?SFTfqIm?jt++`xDMHc@uMZU}V^$u=y}v*&Tc!M|ujM
z;Be%;aGa7beRx&oIrnEgNoU5v>M{cnp7^nBFna|L?Ehl*Mu&so5sy?WRbIh45gA>d
zlZrTMuUj0DNKF_%2(HSo8N?@Ebm<qikP^3p9n0LmQ4tJJ%I3fE(h+Gdl_htb&>S`N
zf*J8j08Zo;k%bjAfZcS<yMqJ`Jhgb?7lL>SxdG$J7fb~pgTuDdAf6Mv&qeII)1o}t
zi;YR2jrl<-s)SSh1mb)yQJ9wA5&)5n=2xL;zhG$<@8hH`1X9j6wZ0<U@WSCZ=i4PA
zDE;coTAG6RM>en9E+~kBThpe*hMPE$1hzW-&JczRW&D<N4Sc|R;U&lHVHNn;SSQ#s
zhJ5uUSFfe42t%93*3m;@Jn$tq_hX%a3`{#xOv$797S-7(rrol6EYPfs{$>sxn6ecA
zWAWk!kMfp#-I|o3n(G?t`&SHZzX|NQ`kDkP2Ewc!$e_=6{KFm#bZ^tLcM4@Q(7;`F
zWjTiPDzM1zW`5`}%J~lauT6ai=`|HyDLj=#L3LT^-037XpmgD@{yr=U<gc3A>bqEg
zRwd+=-2*;IR}2t0<syTo(mXO|U0%577;CCmEeB^+EZS0EDMKyA&S!m8=kREcHR(4}
zgMhkXy944csh(IKA-jq=dwB0564VEJ$kEi4puS)0rGy0kV`=yv`Tcl?tN`Rq8M9RP
zp}a@G>Rzfpyl~-_>+p~)7r4Gt%PCBifTIl(>DGA?&=A)<t{)^0xqTTgZBYKIhgYab
zm?$4u&~um^xycJ!-6{LVRU&XJuQBCE6q<9<-dQ>IN*FHgHTK;-gLvz9yQ!X6*kLC}
z=jUrLR(QDY)j3ASK|F;1H+VhjPu^WBS+-y$SjUe3^%`X&3f4-C=>PB#Le7sUd{N($
zP?L%0@Guk3@%zV@=UIq>a}cy8D?*rG^qtZTU?7~PIC6(?@DgqjCY&x)%*1=jf&;wO
zVnl45g$Ls-KXE4Hn~6Oi711{58dER8KzJV0_)pKBfw0nzADu{GC+cL~y(@(22^KEF
zFW+$n;{NTScbsLk#P_gghHU!eL}lp5<H9nGMB*35mX&{8gj<UTY0h&d;(PN+(Vv=B
z#P2J`M*BrHgz_!wzx^q!#AeC#e#JT~;UWC1j^BfxusUXy$*RXfe68C%O?`-+@N;xg
zxoyuvluMI4tl(V4`BL4LyNh(h38L`50cSrZomh9|gA^@M!K+yCa+Cp@%7yrq<~bol
z%dmRbo1A#-eXGt*Xbv-~^qe1Z=7Oq2xjiR~$f4fXo$e9aHU`!%4*xkc;sa9-oTN?z
z7zyhl)kSX}_)wyAOCysL%D2WS0&E1}*6n<uxN#cr_x5-GQq2z1s+(~Zgfx`4$^2jm
zmVle`ixI4M#i2Ui#qi%zHki40#%uhsCZx7}*}gM?^hL%&El##Fkh&Vt{Ci3fYEK#G
zcR8ROg!Sznmuuui`SJyt)0=a+@$Q4%Oq9<qnB=z?y<Ug6w%)Nx?AgY@{Fi9?D})E^
z3ZFbr^dbX0-;1irVjEbdc-El8p&i`$6<1nn>IlB8>{9afp)wTnwPkFlC_`@i@ngY8
znvnFvC+GVN;=fUUt0WafTxZD(iehu}5cc${=NLPhdoya3Uq^laX3>+Che9Z)m@1Tv
z?kM6V?*2wrBx#@@e_L&e>Q>oXU6pUp++pGx^#|b{q=&AL;Bvkz3mpxGdA751uygHJ
z^n$(`IOIxj>oF<8%#ffcodC*bNE&ircT$E{?Z^syNfpFhzEWoM1^H>pt{NRjJdc)2
z$pqD}sLxpvlz#FO<@Po7rq~#v^Qu^~{!66-h_IhY8yi%Fa&g|{zhV_Y?bL}3norVj
z%J9sF&^I-xX*|tyBU=LuDlUDyT&fO|1<QJ&FOZLL&?wdo@e_OMQ=DdY$qCu8GAt6!
zug+|dj0GP>x}96$m^>G{mu`|&2N+QjvcKS!h8#P=U07*FIIiK7@XMg<91GDu^TM&f
zj*%$&9$a(;>EVvE=lFWH@em4E9Tbz<=!g(`nhzdtw(yC}V@aF#w8We2#G_0+w1kz?
z*pty72BNFv?_iqh3Qogy{Q>tWO5*9uKi|p4*a(3DsRx{m3<S1UI3HV1K`hnGX1XKZ
zN48?;-_Ck2Vly?a-l39%c;=bhR*=O=bW>?F=QNTL%G7sAu2nG+DP`53Y}0%M3HfQE
zzg|4Vn>er6iVB>>*xp(qIr%8osY!R~O4}07Z2wZnI+uaSSD*b8-MfvqRxOW>ba4|U
z_|bQ>$e-hUNu4w13F4I-U8~7vSA+{&1I=1|DscUgE(uGc5_sv)e=oWs3n!YzrK7aP
zz_#V_%Y%my4<?qq-|~hiIJ#WF9}_47($7kkzwn~}FYo-bGk0YmgC#qar&1brn`hcz
zI4MB4jJn&=DCEn1Ah|c0rUDX4b#%K%XwS&}r)6bE7BuOHwEjbUYz7+LiO+#bU|jq6
zhTw=246pn2&3#ftA6Kb^M^J8~OCHx#I(KDw8+k<L7@BL$yT6qgK{=+$Y@CslyV6i&
z{7vuhYYAvNknf(#BL()F;co**#UZf59_SE{xx8A>CNfD9vb<$^b?3x^NpqM_Hdqo;
zxnh$z_~oD>A)i42{hVQ&*3w}puZB5QPGpA$aS%yQS(PG=-nz|*WDDYlH6`9Cc6^HT
z0zZ9~jO<h(qobi-^Ax&oa-#W!(Yz~XU8o_98*w=L$9xq~oy5)`8=8JiA3fLOnbPB^
z|Ee$Xii;6}bFuzbbx5bZA;9`v^r#S&uP-*6dZ~ca-3PCqm#D*RFi!(sBoF`G4|^$c
z3c}H&Q9l}a5C{ER)Jc+6SrE~ZmWj1T^M|Z)wmo0;K5*FyCVQY9ld=5WpCy{`@a5qH
zLTGLg#%mqEe@_wEnuC-|T{Pi$_XAq{BdE{XnoK=iqy*MIW5Xs}^1vR_UM4w*@*(vl
zFUI?`!)QAL+Xdtoc^PJICC|qM*Qo1O4hyovlMB;X(Jj<S*B2esrX~m$N<Df4mqbA&
z>VZLV#XfHK%*}k`-*+tfEj?F|EiK`wUVrI)+!WsRDBGjv(G(uQPHtI7K|-t<y1XXw
zYR9WQDb9@??Z<unG7ak2Nufesoptf+KRibK^@KaVhD{pe&4${K<B`X~``s`lJlCBe
zYRr<cBmc4K3x6ub)Ub<QT<yPc+Lk}F0q3{ym`xt}e<dTB7%iX4hqq)<W8_2kW@H|V
z$-BtxX|sau3Mn>zN?F5QK9RQhZ%*PzqE|~J9KYc)M$kxNPesIS$uX`*(h{C5iCR2n
zbOfm(&D6`J6|73fFy;7L#PP{#pS-6=4n`A;@6L%R0M*wcFKd{UfhodR|1*;sh?bd-
zo8>6OoYG~dGrlSyloxr*UR)7aL=yuQkbk4q#P9LmH#E<>_edd4O&#oMkLEmjA_A&6
zPfH{`Lp+)OW7L}{H}PR--!U#`8ITtslaxbwFo|U%#D)#xT6`brbdKT!#lchdciu{X
z($OEZ)OSR{AUz@CLL>4iNO(4mS?~j0QN%F$cM-&cR&Om76M|fG*B>fwBCxcP;<8q`
zh`AiMNa}xr`0F(nEpLn-fcQg>f!7qIKuhp8uA(OiM?^Lc2eqPlX-cYo8s&tGpR2iF
zHlc`e-CVv|FsQ=m#r2;Zr)1zG>m}V^9kQSkS}e1Ha%zGz9@5fQFhd4$MCRoAU3|tw
z+D%`64<9Iu^p!g}i1VvD+3$F<fcnnB`?Gu!@YF1c>r#g(95MS6N>+z-;s4}`Qr!vs
zMS5F$*LD}K-{5*@aG45(s^?^?-M{0G_G$X^iVJvQ;%$-J9Y3(bf##jFa&&+<^ho-8
ziouPj_@Dls;_x9?@Mc3c(qEBJ&bX8!o!#X{$(8$!_{82P`T1!DVAj}mQA?KwzpR-1
z^BUw}c{U~~hJGG%XS}P|(24R(x8E-RDnWIA&BJRHJ_J4}%gA?Obq!m+sInDzYX>ua
z|9C>+zxR0W-|{;RpQo`%_JN&sv?rXYacgP0v4@#VrBg``GeTfM_;@GM|I~OsA8<l@
z8hIO6$B8IfLiWxz?}jjX;>oxKO;8XMaXwgCN;is(_@VgP@DSQ32{T-{V?9bmJbYBt
zL86axux{UbnQKZ<)IQUF^Ctm4pDxT_PFC&W<#Ml^?40O`a?8ME<|Q`b%aLD)k_#D$
zQ{=78MLNInT=4-uhNV7S=ia>dg48ZvXe0QIW1ox=`nzXNNkK{^1-(2QW;BKuypzaz
zx=u%kUB;)cE+Yxdl6W$S!47`VG_A8m^c}w1s@&pZ(u?;<H{1|(qa!TuK1k5xr6t^~
z_HAAxohbe6^^3lSG(=l@UDj!T3Zkj%hRW$eT7r@`+vQdkDUlZH@5d-aPJHv8PcnOj
z_yw9i1<DMx#O#D<Lq{kZDB{8&3hxO4L(h*4cQQWs7t_SCUM~#(8AmLhe&&WOvG&1C
z#K|i>Ksl;%ksMwTG&(ve0&pN#%g-%P5*|3@`lK+B0sFU{zB1cs?4Hlm757GduwUwb
zaUJ;*sAFoPWE6z~zxBqw3gw6RRhfneS_?qzcj(<5;fFI5zgN%Okb>GH9m^7m5$wsY
zT>h%DJ?wGXzI{g=%I(^{)2*3L0mh~8z3CSy;iTQT^@zX$$o|F=Im5*V?~)QPT6}B3
zxMsK|<UCe!Ur<oWV&{b7wqxG{o=jmE`R@KVH?fNAu)ilK<6=iSHMge&kl*6K$rTyu
zeNi}?bMntvizs~8k9rj;Bmx5R=M?|aY9il%_S&|-4!Eaz{bn%Mg<7`7KV}m0aIj{C
z{hgx<oVaH9=+|`(;Q02gykZFLTQpA$2!trZPFUZ6PW^K5`7N2G#F8d_I{3298}a67
zs<RGu#c9G+y8>ed(w9l!_9!#5RY!a---L_*5YPD`PhRbmD0D{0pDsXpyVdmM4pLfl
z|H!{IIFT*_A&oDNwcHYg7ypu<uFOfno4KwTAH=O~66$OJ+;I?eY3?kBA)fbz>wTXT
zEOa3)$7;~~HwXNQyC7`i$OlImyNX8=P)_uG|7}s=hoLcgzK|^Bmx(x78h8cmk!=(;
zd<ZU}KakHj$1eprll&haz7m3w^EGGtFQR$zy2OJ1`33y0_1PXD<#{~hgMioW`{(#q
z`TsR^p7B`yVH~#SWAD9J_R7q;2?>!0B`Z-$%AX{AmLiE1qLfj|NEBsuj!-0tNEyj0
zd+(J0@2wX+pO15%^E>zb{a%-janXq>d;tG@YK?9jOA^f|OSW(l^t@O7Sc^G{KNXrr
zQ=Z&Jj=RK|@-#nDDHl*9uqi~0%zU}{?gJ-ba5ltQqn(|w7QWAMbe@Y4SQ>xCvBXEL
zpDjyMZWkc*i2Lm!Lo9^0nxopOHAX`5T6$95KT3l6SpJdFc4ne*pr^{6m6<RRne?GM
z&Pt@rl}L=|kcbNxUsw!nvJ&mRz9ZDSoJ6~tdSv8NR-$b+=gS!d<OP3rilKFimoT{~
zoE+LJK)fX_Q_!G&lC^CJ7t1*=;>fDnr^Rw^g7HdY8Dk7Tp+~iUDshTLc=u4G#$Dzi
zUS*RPnv&4xF3&CGM)$#_PI`N^CodSQU3y@8lL@NMTpWn?LhqMpoEBA<Bv>}eOeI$$
zE{pPk;%wx-&(|J0?<c1Sm`3*5x6#UQ!`_+H`a&HH^38KpNotU!lbEBrq6Lpt9=ILw
z)q?k5CTO_Pb$7VN)ZFSZ%3V4<&Iv=@)b`FC_hdihaSm)S5kvdZ$bGI8<4kg(W&bwz
z*9;d7*p^BLB2FKN@iP|bYUHEJ&JuP)y}t()^x7hSX~F)xOX`#q4dJ!QbUNxQ%FCH{
zht5RO!K-f?{tmBkEW7;LVMj44qL1?iscH%3tiIm*8^kFJxUq`2A~OlZtRFPCm#^Y{
z3HHf%&VIqNyiX?a^nJ#tJ$o6-?ihlNqx@C~^4m<eGRhl@?}gFShhg(*KFuzuC7q8r
zk;!L9s9n)@*&n%Zl6^rM`E4#|h#*h+iMS}9vII52g>@);vXy~spnY%(@zp4D&Ws;u
zRRt0MLqB*|mEf?TC*IZ~2OmD!jXXl<s=j1<J99B@;KlWX_dDx=c~s-yJS64`iOHTV
zaFhjlGIiQ(GikUXlydCP9a$LWdE2RGECCjx`3Z89h;zXaXd&{SG#r2v?bW>!@H_5U
zYgawW(@|&{$0E)IL9{&nH_inGU7e@ne<Ckq%6h<wLFAn?oWt%F$fKNMAG5WpJXo0>
zxOl`*8v5%}&(HIVL(`^*k^q`pxGK13PcG3CG%}2T8SPi_KgQz&Y~|DVqicI^neJW1
z??$q#u-|IOuB51BEijGZ$(Nj^_KCg2Xw){$7KVCp&x+g82A?}IjWmgV>Do?wI7ELv
zfv*FXl==E*m3siM>UhF(I(!&Eqd6^osfm*CGI$-CFffjt|2BV*T=^U03CtZ2mP*C;
z{T5yiS?t9us2s=M)O^RV*yjG@fmFob<6k4oZRsJ>=>4f_>m6LqVft>e<SyRd@o|t!
z9C;r)j%?;;k71P4j<j;C8`y`iVSxk#M&bhHePvl1dP05WwU;p`GjW2n$#g**eJ`-`
zJR2^jBmR{4_}?f;&*7$U<x{ToMDTx`%SMBvc<Xzm@iV<YF=;BT?r1T2@Q8VJd(2b;
zsLoPwZM3RE_nmR<X@(~JVS;q&Pg215)S~~$6bodo#PE&mu!FDC)RLN{6qF|w$R4pp
z?;{#|f`K~nKzYP5HB?>(xDO>=7oFgOgUoXo1H*EVX@1|IZ;TiCkB3+-p&s_)lce|v
z#Lo*0&E<W#jLuzW&U)O@m4E`DPcb7(vT#tM?cP~M<nehg(k>{X341U1o=UoidftJX
zBR<23|17Qd>#zmt!#Iun`7n<15qVST-6;2yK{MdOJSz_rX<ob(Clnx#(xglHixgb`
zp8H06KjP&UUC%N^`&-?hTeL>Vk9?AJx#Yc|B1~;l`}zJS1Gir_##DE!!BwS4HxHHa
z!m4$6mr5%i#A&ak6Mux@Oe2l65Sq*DIE7iRnW9`SMM<l(GAqQ-O;}NW;DND~M=iK2
zH<Y#BINsjR4wa7<;}+AnVB70pkv0V{SR@p8N0jhE5{zbb@e08%bCe)&C?lvdok~5O
z%mKaEKLr)GOM_nn^JCuIqQF!^lix&Ef<UVVHG>*4FxJ24W37&O|LPlwjJG9W<Al+?
znTrUdY41#XbfMm6{>u+hjcmZr;W!f;C;@A=&luj*s{ornIT;eroM%eT2cs4M`@a!}
zS;;6@mD8C!xWo$IUzl;!4oHCMo5Tk#_5$$GqioKKBmqt?%7+#Mc;Lcc4MCPA9^eX#
zDc<{A66U_&u{kIr38jIlfdXi5jt6fZjCY}f*Y#~R=S5~Q=7PKYFCVVs3N}Kgq~>V}
zi68MFSp(7icX)SFmS7>s+k(6w<(F|zt*MRU3$%pE1ARBrIy=GH`rEt!_3nQB*M@CU
zZQ!eHc05uR3m9JwdD|ej1AiIDIb%aLi7h9_Kd=`-z5L``GPS3=u(ErM=61Uan77Sg
z`n(IP_?(Qv!(i_pxJM>`k)1siP-ZJn#?ijV_%6Pq-1Kh1`$EFR#`GwO@ILixCmv7`
z?M=Z3%=T<V<`U=e#9#tzi|!|nBvBFvByVY)RrrOA8ME^4nWTctlzkVf1v@a6rDNYa
z2WGLp=5I{%Pgigo(UFN9eNOn0ZyFF{#|Ck{ju9s#2Cz0Cz1>2eR(w~7OJD0EJB0ha
za-Fy#1dnD8NoYkQ-{9A#{ti{t&o)i0ySXF=%0^;7o59GdTNTnn8WV<J(%%O3zVblE
zc4X?*CND5q4rW^Mb3jpdLP!!x1jtMO<oFsX!7M0_^d)={Gdaz3Uemh`qoa5-TjtFI
zIeQdNq*bnAot01b1Tt_S4xzV1OVbo)k`sBnPk9Z~WXfCqZA$}x+#UES`RL(=3cFdK
zpBN-uEifzS5P~KhtCCC2<Jcn|$)wE@N<uc5w2`f`f%^=3S@>IVqCKs6=yW6v@V&78
zd$W!b=sP$a`gxbIh-Q1lQRRcEHTmJPoJH&_IpwLbzXFWyF%2KFV1`r1aBw7^1#Tv`
zt$s-7hNy^=I9h2L7^51_W_FZ8KJ2S!X6{i#*KxCJ=0bvC6rlG^p;rj34lCZvI3xj4
zqsPQ9?uvk3)SlQ~6<$!OqiEU?L;I`Z$S22+A-?Fo(_3vfrQzHDGVNrv?R=5>;`>at
zB9!m<WqtV^c^?|h8cC{%BlvLDw+iKTmW%Ufj*BY7deB47dbK^k;pZ=Gmxp@cLSh$e
zK1+g^SpMEuAP0>hhxWf4mw^{sS;~`=N)RT(D4p>bc_OrrGwO{<!sPYc($@)Mu-LQY
z{|DvyIO~#~>QKM9F3!Gg25|x7ggz~Hq{_hsjv~R>P}Ji&LwnzPo0Z6L-Wwi@a&yT`
zSDd>Ad5OpOtEPpuX$gvV&#lQ#TtwunoxIFBF5*S)@t1n2N0j>Gd9@e=6Or-t-S`JN
z212N=TV|t}mw4*cSNYhDhX@n<RnPmIo%ldiA=LSXl_+~8yqHdd=ITTJe`M2G34ZRk
z%turi2%Wqfs$1<GM4iV>N^lGtk&u#CX6s2$=-)mgRC<?#DDLI1Y|-K)HqX7$>&X@%
zViX>Den)wp(BdBZ!*krkvb0v3+%^xv+)jm+Fz^utmzT4ObvTJWnYN@Tls{tAN|}6$
z_;HP@gH1&^1Hoo5p0{s|k@(N(PLxFyI>&uXp`*URMvyLvx4cE?I)i?ZPoM9ie6vze
z#naYbm_q=aV`7sqD6;s84&?~LSXgX)=NDSI8zL}SGeJ!lrGC;U|Dqt=zbCaB?4ai+
zV?utda|K@VF1NaQf{i#YmiNq1ksq$leslPI0`)^WS(>8;kk_L1+0nl~>)6K{54s;p
zBtr35P_X#2B&=0?wk1B8z|WiQmY3y;!(y1}-p(UZ(C;J2k>4N-mC?00<B$jh=NL>=
zT@?bpnH_Shbt!fQ=wC&|i9^P)v%i9}8vIG*tffA-jh$DeQ1tDghQW((-G{`w@nCYr
zxZ&S_cpvSI4gFD8;#!fK>}`*2Oybdc$M}z*7&);hJnbAEk){B}t=@EC$FCmi=1l{)
z*gGv3UI|0lsjKeesOQi~o*_G(763}HyW%p>4$}`(MS4#lZpkO}4zW>w2-08pLJFV(
z`CDJUeCii~H{=MmipS{ux#9hq`UvvuvL5=Zqs0u>{EDts!V(Zcweoos<sULi7wPtF
za6|s@ca1mDyzuPFvH5zGOMDhp7<$v558h_+C0;}O*Q8G3Tb8vX$oRzuc~MiqO^Wwb
zBQ|0%`0V#`1C1;c-TiFYu}2U%>CSG`QYnMS?7J+j)3o4yv?IN`MF95ql5amndpSX-
z;=&6BN??E5g2xc`Urno|u6R|WJ-eEVbz7!5^t~TyH9@@kLw<KwpI;Jya}Q;%S9K#k
z_yT{YkupEH^+a%s@X`?j@>#~+UTEHZ;!a|{I_j~Lo4-6k&k;_wKQE<on23d_FI|U}
zNAN}F6VEG}Hu3U&|K^5@4SbK%*KTI_Y5ZAQ)`JPpJe-^TEN8;qExc{2wSsMN9cQ#@
zCsn@Q#941!8J3!S!M|5eiCc&+VcEOn^GAm^ag_{OZK2)<T+dv5?u64C9xt4A^w&fh
z9{Hr!>ubys{;>Y~%!5zEc!1)Ge;eXoaNhuVks1?9A~`!Rs&HTlm$6=Fi7H>gYZy6t
zb0v3hPlic@C(YaV;poUmVm@p5)!PA=xxa1U=DsbL^yL@vJuEi<aNrxB^<T#J;kSSB
z1*$VCk2II?Bwo8BE%ptZ|EEA%X#f@B+4<bb+>IZmd*uDEp#FjzY1K5FQ5x*W!%ZE(
ziGf>2lIEL4Nr<?5o6XZ&1}yHR#gYr9;XG;Dh;l+4RvoouijYrP$*PVdKa4neDqOLJ
z%Mzgac!JG+L>5Xkz2iNR?=ie9Xe0=oyEvwLt;>rQ;ALb*k%0g&+<f$rLYI~VDXhty
z$BcF`ZH7ddT5JoWU_5vH#{6F_CA0e5sWS}lM)k<kXk$KjL(OqM?Ewog$c`2oUStKT
z>{EsAwNzjxD4QMAiSqn{_0)z-qVV63&Cdp&!eD6bNZw<_181IEbuy$2gRN7sjnicc
zn3%P!4rLOD`<+>}u~7n0_4mO26Dh)w%lzS?KHBr1efj&-Q+ZJcyj_!!g1!foAHG%F
z%tySx4%03>2WcqLzP5Nv9C6m2)~H=QB;m^Q<amvC5fF0T{9YYR0x55KN&j!?I&SVd
zW=Dy*qV}rYO1jiQS8*g{c9R{bgD+We<+1_gh#JK?#HGk*8#l93<O0?4A`j~*MW{U|
zvSG<83*&FoRR_?#ePGeAX<HHfortg7RX<fAEF_W9Mo<YnuO=84K9hqZEN@2QD$(5V
z>#L2BF@D${>^Ckz=emqc(J7CFJy6lc{NT(XdC(YN=DYY+7N(=Z1H!M!z#QYGi2|Ba
z7CX{C{HY)Vk&{2~uUpE3-ud{~Mrf{3624Tzjrvg3`Ij=Kl2Cq$v-FBaDB^YQJuVS9
z!a^`z7iK4;c|vwj?v=6MOZXE@3oqkk7Q#_4F!{X28a{aGj;%AAKO484H@^3371Lg+
zoQYjp!nY-K6B`6(@nxs{yIJzX_>G-9dGkv>xa_1cPmR_n-e-&nYw#`Mxto_RQMb?I
z`p<k)%H)1vo^IfG;WXOkNd9-LQs*7!Jm*bbF#e0_y57jWm$89gW{dL_LY_(`9)r=B
z^$fsca`AHXgBhHgJn`$Hz;{fOJs7F!8Nu#(wM`w)MilIt0&@=q;iVgR|4kAHF|xLV
z&pYMgd<SJ0hkH2*OWA;r<d++`_;iy?h4%_xR4U15EIx|wI56mD1aJ`RJUIQ^F)CuI
zs7I1CLJ3dhHS661rtwN6r_7Sxe>me^%<h^@2zHw8%{={RA6C!(Mwv%<72{r*GgG3X
zfy6qF@~QeA>_wMa<F)Udn2GG(Rm^1;YqUw`-$T%XD~+wK)Sp#s<@Z{OB{$+#b?Yci
zb+%$PEzZ|+MQLHaF#C)WKk8o%3?{iHQW7l&XA~P$sfozJ+LKP9G=y*P<CZT?G(_cQ
zRbr#_7S_)?$3oq|fLr{tX`HE}B=}XEuT`SlmT5Csb(2?cfp0G-h!}35B`1wPi(ka+
zEl$Q*+ETzN+BIESElvoYlmG9Zc_}udW#AFi#R+1R*1NGTv;+s;@K9Rb8lF>GeC-4C
zI@a|oe)rhQ2Cf*yqiv&t?jNzBX!m_TaBEU=$yuvqd~0%a*k0xf-le-Z(R-T{lnYi~
z>1r%sT5**xGF^AE&D*=UJog{0!-I*6c)x>*53zGNgi=FOVRG)lcv;xETC#Ehd7nMD
zr50o>SfIdrGBd$r9h+oYjJhegfobgwW8HBQFc#HNb*Nnklqo9}s`|Nrv7srG=AsNd
zkzc(;uO<sU_1-SdD0itE>|eQ=DF)PAA(dnd`3*VzeRa`ulWdhKF7GZ57Q>q58N)(w
z@=$`Lek>DQa(BtS_e&W1%tc;3ZWn~JwF%eD+ZjPCD{u;?M8UhgHm?!!kyu@u(@Sk6
z5MR<i-(8Oz-ZiYur+h%ZAMaD0e8z}JA|K<*dQpIg@3=kv+=-i@3*NUnu*Og5lqmlx
zGZ!RWvUFYGAQM4i^_x=J%T07}ee_G><{)04*x<Yni?}DXPBEL;*a@ler57*vuoKFo
zogXUrSc&M=xW|rq>_oW4P3n_h*opKDTg(w2oP@^Fp}BPJMO@!kn7Nh(aZZXzcS{eU
z>%Un*HduKTcWcl56ko_pT(1*w6O3d4?el)CnVyWqe%W^RjK{P@8-Mye##u_Dq*U3a
zi{>9r6?&ZQtr{2ME4vS{8UaG#%F*+6Yg_~=QOO_><;jUMabEZ5JVboawosp!0HL#F
zdu~CFhhVEq@aBHPL%2yqVC6I@Z{c6@rg)5lSbEVEC{;IurSyo<ik=?9Y_Ei|z94U5
znFbl+_}~gQ@HYKsbi*7LPy0Rbr<yeM?zN$^I4c8mfes`gF63o<%Nm2H{lVI(&vnO@
zBJU-YW#>b*hf9iYmBa7y0;$~Y`4;j?x?xIxIn|`#D7WHVwW}1&2s!Y*szrMgC$qr?
zEgmppFT!|UuVB+lZLC)Eyr6G6;@2I<2{$iJW#^R$0H2Bw^}lKk5T0wcZF$TF`fR$Y
z9249y-2dR4?*<3(&o}m5*W?GD^=fGv`U*_Z@W9`f7DM<^p_%Ax`C04(WmArA{|0VS
z;8MGJ1?6M3M{D}*xghrLadodyN*K#gUt*`>gpIc%=QPoK-_gCF553gYMDxLP;#VW`
z6pJ#NK2p$vU-ODvDbZSxyZhmQRG>CwKg+AR(k2CwO{dJ0b0om<Ani7{4D#M7{%OtY
zmxg1y*Y_s1sX%J2Ku}+S6y*0jOW1CaM*AychMG#m$0ZV`M~u|Lqk-n!_b@3ai+9YR
zU{Qz5g#~+h9krn{^iV|6bsbP|&yV2bKyyxoQy*{sK)pWd8$*vzs{n<;<L@e*x<F^g
z5VPu_h5EKXjF&64;cV~`nR6&dukYLuLAj*@!9VvmEJUDuRg~xWjWBf>z7#3x<%RfP
z!&v-Rl=H4BEdS$Rr3B?PT4BX#|L$%t9}<9iuzdzHY~m}Lp!eY_<KH+nxJ@Lxv66q{
zPjrH6ja{ZNnSg}asw-$dVpi_g<v@a&Sz!UQ7hkan&V;OJwmED)^XIGf9W+l#;Q6Id
zAq+A{Z4%gpxj|U=0R5dAPOx13_S<^j4rZ(}U_o!l4OHvfVysepAojzVFM^r{=vPMe
zsn@P!`XQ=H$)<F0xZ;kf+h=BIc9MT)LQe}k{Q9?8cQ-L@m0PX#r8LlX^*?{M`9AEh
za+u^$`YLvl>aC_a6)#vG;aJ|7qXF*EOj&#c2^v+thxo!@%)vOU{$Ug~I6mSn&-a<a
zq^8uL<Ziyh@`HuNAG(cVug?ASeArA0?419xr1S4$CH0w6H(pSJrF+^Z6cEJjsCAG3
zd$ES`u#>v$X5}C#;MN{Sw6AzM$WiMTs0ls#a&sQqYRECJfB5r=0!#*Phx1)Pxoc|v
z8OC8fxZhrSze+<7x;SjFGngViZQ0?PGz-KHII?fj$W;XrI%n&Y3UuM4Qg*SQx*E{B
zRrU^bp`J2>U+>u)Qozfk+8#VBiMShqKVv2lM{B;d_f-cEFq^OycIU`}XlBcAS4;}B
z&r@|pyU0OahvEBtl&4V6{iijsj^2aYtdHp)k%RJ~fq}|V33$?XGU8;mEIj?}qcBV(
z0^;-+ngh6$f%*0+W7ZBi2)(@3G8C^3MFd;$8<fKse|Y-y%~Tx_aj!PKdP^Hz^@?Nu
zv(kj7n@1%AZ^}WKXtZ;jj06PTpD;LcP!#-`1+c9hd7ulAI`ldRc@wR$%Xso0;Es4O
zn|4(R6brR@9}XbTMZg_#OVqa$bbZpCOo4oo{CC=_kXPt%OQDKlh&YU-pKQ)T{SoFx
z`!QC1QLxzhq!{GL0~&S~mh<}+phY%#AYrc#n8^Q*b7w<yd_$e;M8t1czb!!(Ucv}<
z(f+@b8R^mcmML|!5b~g|#ra>^L>|t(p=8UqTCgvADB~yU!B$jCkScvNK-<Hg)$9s4
zEamj+yz@uCgS&~cd)3%rKhO3DGsIb&eR74~FCB5P_1DB?_aLvsHN_g)ujv0V)@<OC
zg?bWuw~M0piol7ElgBz~#lTvxY`Tz#i5P7-XQcRup3tzC{+C-sLsTeTyYqEn2e;ZZ
zukLZ(!TF3ST4vhNe1PKWfg)Od!ZGwI#>gy0XeU!;P|Ksa!qHtl<(l94k8gely--f>
zvQd}03nvFL)Nhc)6U$A^o%#9DQ-X&$%Qhw<6Z;OonIO*jg9CBKE*J=xKH0&WA3wj0
z;2HSf1og0>sXu<~&+&|ijCIT^p<8sMmlBq<zI=J#vx@D%#}Js{(SvJR(b#i0Ok#sZ
zr*}n!-{EG(!LmY$6ol#m!%N0xHsW58-Bq4(IwJgNT*s3dD#G378LYB#69LimpC&Ds
z30vx=?<4li#AV-q*Zjn|h{3U`Lb5g|F&ZE1R3wPFL0sa39oG>@*t9#?Kni&XFJH;Y
zHWCDhM{@>?s#5TiCM_nyR|hIc+u!#qvI5qU__5_DBh;s^?<6BG+8M<dx_Q?nEH(T6
z@1jB)!nj|>G$9e4oA?<>I&`RCK4P#t{C5dkUiFQ!?Byo90(fn!Um%{y-P4_04g#=h
zRoXqhZw@=WX3<yviXKwT=dW2uPh+o)lP=ADr6TmqMSV({S8(UR@I0|mE(rHpf5K*t
z-qW0gTcfU06CU1%&tG4sf!bh^zEib4&??u2oi<=1L<cVCQZRnS0^3idvbmyu35n`z
zG&(;n9oaq>z7KH%4E<bT9C<lS?s>T;yumdNRBowLzQO&&PG$C^_Y~XCz^mq`9YG^?
zs3fe#2~^xP?>F9aNAt8dZ@nISLR$%^#Cscepcar~HBohdOK%j)?>ip`HDmsl1rhd8
zA>rb5e1r^?T(LRU8g_8F$>o%UfCCV-Vf^0NM?oX8(tTvq4vyaydA{$71Jq_sGDoO8
zLM@wY!qtpJz{}(Rr!&C{epelAJAc*|EV}OVm80L&UoSsZ@cA$_SS-GL-ERS*y!}pl
zNDjycNd2P${X8nLLraRy3hk*(*7%Tb>HX(o3X#W_@XRceSIF!rT=bdYV6L%8d7>AO
zrq`_?E1tX)-EI#ei$Y9W_J={Uul_)zs6Du71UV8P9Dt_z4QGASQOIk1)NPu76oyki
zhvx4Wf%lsSE=BOmfQF6kW!VB%c#Ta|bD;f4;DWjd8O>GtX_po}xnw~7L}B}(Mh&nD
zX{eb+_jUNak9u#>K5^}rUSis!A~5g&@zAtT6^6+BZNBY8d{kwdrAWl9^orvP{^TMB
zse`3Y4mgN{Njy)ISD7l<htAFar>FxT#RA0tBHpIhb{pS-q%w?uBBc{js0TKuA7F?4
zWR5MrMwITN9H9#7kNtBkc*d^Ge)ig4;K~+G-#d!@d>2X%oc*E+TZ31E>Ie3L-_36v
z{MU`(o6oFEk&YpxiM@L1CS?r5_H}X$wtCRFXl!a7s0UN0cXGb}G=T{F;SF+|IjEt2
z++?dU_|V!qr5#0_-s%DyuP|eXpqQ;zLR@0*KDA1k78AIzgHg-mBhRo4`QUV|F$igW
zm8csu0O88wu;*8e!1Ix{T?dywOfpW_A6GPnL1miyhDHGG1|j;W66C4-GkM6D34kfQ
zZzT1DK2(|a7w>z$51th+{yKlc1nx+;8`3nGK%XzCYP=l4{=&N9h#w{(YE#?keBBhD
zr;vWR2knPSze7F`7)^l2<Ez-?(*1D0XFBblFY;w=%NeG40VKB;@Y@LPhu7ice#hUY
z&=YEHW^oaazq{SXAjbrJ>3=QPjREw$eAmAc1n}djo6eTdei)}onLKY|3{8RWBP~Ch
NfVZQU+aT)u{10PNVO9VD

diff --git a/bob/learn/misc/data/ztnorm_znorm_eval.hdf5 b/bob/learn/misc/data/ztnorm_znorm_eval.hdf5
deleted file mode 100644
index 5d670ae0b3bd410c40e70b4697f0531fdc7bfb87..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 22944
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

diff --git a/bob/learn/misc/data/ztnorm_znorm_tnorm.hdf5 b/bob/learn/misc/data/ztnorm_znorm_tnorm.hdf5
deleted file mode 100644
index e2f709ed9a33a014f64e6c69f15c3e549dc7e3ca..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 18144
zcmeIZcTiMK_by5f3X*dW6j4wF0Z|ZH8$?7<GD=iHQ9(e00*VR>3Mg5SAR;+Pkes2(
zIp@rfbIvGo<~!f}R^2*(-m3G*t^1p)n(p1Z_nPURUVE>8o@aR~$}3PGVLw9fpBDuM
z0SN)^|E~V~arn;*r|{pFe~<q?Z}d-v@SoD-pE8l?zZF7)|GWtZSpR9K`^WzO*-uO3
z`gH<)&wuUzTmEwyfe6WeYZU)B{7?D+s~J$dF01yR0qguT>VH>h-9PK>-^nnxwKaZ;
zKlpb&D*k)o|7A%?K=xl-{}?1BIP<?P5fc5kf$<-^5C19u&tqcz%KuMKIvybS@7l!(
z#E%k)9}@rf0#bbIf6fyT{nsGHKmCabjs98cE;9d^{@(@tKUV&8O^T4SCIP{d|L5ud
z>vc^PRr&vT^gln2fajla{9pg#|M`OdnSuYAf&b6Vz&W~=jo@_#Z1Y{howHF)*!PWQ
zNe6vqESlVo&FT#k=6+q(IG2wRo82bS7fYqYN`6{jB;lmPR=xJUDtM@{$aw0!SVtO+
z?^;SP7Y`lAB+<d&cYGdro80Q`usO(io+{FOVG{HNLnO~MPeFv^yp5d4FvO%%-nN>V
z2PY{9yS<t@sF6=RKknBL9ydSe9CQxCX%^B&WsV7$(v&w^3R!}uu`9Y8nv)=Psn6S7
z8V8$0Qp0Mgi$JO%HhnH+9egM(yb`8opu|k$i*EQVs7D_DJl!}2<*l0!)knslp_|uB
z@7XjMkeKZfx)(yR6;F^2dm5~=+<yP)upBg(VsoNDGywYu3v*d^2_(v`CO_;hh2^N7
zdF$8`;7v$;JDOJwq{9R_+9xTX_*vFMC@lr9r@Fl8s|kPrZS8%%ojSNLFte+Cm<`>p
z4a_Kos$lXR*Vb2}DtJ2C%$0Ma4Uz;0ZXZZDf`rbrQCCqT1f8&~njLNgo!>$Q89t4G
zYZHOmlgUU+-JOVXx*j!kj}g7gZ$QQBwp3gMmFTxL>lJnXc2rRwSSC(^Q26=cD)#bf
zWZHp|KdZ|{vcpH06UM8NGf^D*2kScIFMEekU-BJtqiwPmHgiXj#nTUK+8UA9(D3qY
zw-i)gB|hi;p$w_%ncPUMN=MOTnR0&Lf1+cddk-oYQ^Dq_=b0vw3iQ1CnZOzG3{)OR
zHcZK0hitE$RWaetK$cwf6Iu7GP_?0E$?JtUuzJ)+z-W<<zVr~U^!m3TqSg+kM579%
zE%4G1ry2_q5if;ERx=Sv`r(_I!T_{WX+D|gI1C5=8LNFJJ+KBh=l}4H0XJ{s*6g1V
zn9~c?*N7Yg3$v>&6I8=ciqlm#<*x^8PnX(E41ZiuDZ>TRVC(Z^NzAkXqPneScKtVi
zTV&FFMq?VZn%&64dFCNUPgu_B+#1MmDMg;&oCl^w)w<gpYmjRidwWM`9;hc7PhYsX
z3<5+qwXYRS08WK;ZAWPZ6eZi(--Oa)2E1R6zPoq~6M1$l<vtTFCN(4JFJFEXlahE_
z88UeUtG;O({ehPOyK(B~UE&l5Y?wdgsp&Ze>=8~VIOH-TCQaJ%$JB)hBNbfKeffS7
z9{zZGN9ytdDBn_lRNgWRcbB!lhO$k8+g9S;PbcD_X-|uhh-evJv+RHOnp^<m^BG;&
zFHOKx?@4u;&?%tZLsklf^PqS&Bz4Db1H^tO|E$kgg_(V$@W0ZFKpow}`}gM>Jfupj
zCH=Sw+uSQBC56|4jC>TwIkE;Oz0W%C9;`r?<}zn!)B=>JDGi1ytwBz@FgEs~9$X%%
zm{=`WgC+0#iMoykSU7sfo=VsTUn&d!Dw<Y<^ZKEnCU*sJ{H#-98>oaK67d{+g=!G5
z>g72!&wyPLt?Uex1+N4oji%lgpqma?^|%Z&QRg!kR7Mw!ihjC<pHfRgVxRhZC|@Ta
z{=zW#F5GwUijsW4C-@cqzGD1K9sC_0cK#V6Jo_57R@4bJc*DSE=)oOzUxYY+RptM&
zt3rw|=E4~4%g{$=U-wgg%aOw06|%vBS~PkguuEF73OOaZYd@)PLXlT=->ki?MCwOY
zNx%Q>LR!z~GVZ=_L-ShAgjzynXtySeZ`Uac$uLoWA1Cibmf3xA>KS=RFVn$_m9!Rx
zi~ihnpsYf<vFE*Qk2RvHis-JD!vy3uKhas`U4f!_BuM9;WFz8_oOi5DTj1Qx-Oc`n
zMtC9BleEuX3B&1c_|}R#fH*qb^LSz_OsK~z`kNL*l87AbXTc(9NpQY-^;RdCUaj&>
zlx~I6*`+r=jV(~`azDfMK|A#Qj=KD(XcRmeK7DwfKMvGp`wdmbW8fyksbfer0byi}
zKiFLQA=2TSw#Vsi_;}UN)x~fEbUwe;dZF6^UwRr#lMmWpe&6}L@P##Ch_g!F5S#)6
zCOQ>gf@K)2Qo6$UV;Q7GsfkHM=Rk$&nqw;QDwuh7BwD}%RB@<bRGG`5V&mZ!q%;r5
zb<gDtA1(p&1(D~}$}@0zT8XFFWCj>hy+n;8=3#{N+E0s-DR^hg68%ef2?~}5b*)%u
zK||F}kVkeFPN8oa#}9@9ZW_&>)}M#a&?rgXU(?`r#FABUf(iS0S!53v!-T!>IV_bH
zWW)&BF3BV$(qpL}!Ywit)YyPwV{Wl81NMaK`-SN<jF?OEl?YlFYAnZM?uo1qEq1lD
zTSt+L4$F#2d~Yzc2JiV7E4AdeVBmVh8}pfUP}Tq7{<(ewn16`6SX6C6NpOE@!t^E(
z2hl%#POt@Em`{(;&o9AFEZtzk#v;h@k2`+6vJTkWi0<bC%|LzN6)*p=5;93JnnATn
z@Vy}<G-B2Q*Mfujr#G9xGN#a@XDSi0#xK!qyr_U|uG_F+kpVhnjU!LWN+BFb!e#+M
zk@}k_+R{~sPcpN1f*}^kWDtnzM<ZCjQ?EMCUIN^s@&&Wmh44m?vQ)pR6#A{W1k4vB
z;6qzrNMk?_d<`a;qc)31hFjfGe!c*SI4aFNA9;tuPJE{07HdN*AHSA!UF<+Z=dbbS
zvo#~$qvNkaV-tbPJnv-GcpJL<QTAII)`av{j9*TsH=t=1ZADL#H1wC^3R{|6EBctV
zw|4tZ4-)R!rd}r-LRNOnOF7@VkfHe0lNjTE6thW6-Yz+Ucw!}$$@)i7kg;Q*uKfVY
zrWh9tE9piXHoqh~)<)5t(?1fP`}d-*n?+x(cRLX8T#cf<V<yty^>Uo$%SS4cQ8bfe
ztw>e5TdaU99j#mOIoZ*4p`)?#F1Edyh~ss@w+8nj)S$|D#L~4Im7xcUe^zTypb-0z
zbxjY{WIpTsjbHcY{JtLh__ZH?1UHbZsx^b8*Ji|+d><tCex4(GI1KmNPl)aec0t{o
zRp%AY4xrfi^0CdO2lj-In9yW)fHf7Lb2R4?aAJDz4y(t({nXJi!?_7iv3lIYC9n#1
zPYnAAw5EYjpk0r0co{6upP@hVcoxLl6^UQInga?7q1@96Q}El?!FO770W3S#?xp>n
zfeMRNAujP*$Zy4Qa`DYVRa$ueMVWE9&at~i=(PY2?-QKl4VIwcU}~l0%n}^N+%i;u
zGy{dyPerfYUIKBmrj9wL1#nYPz3`-s5ewbINxV*G#A+CnC=+cMF{8(WWOej3*bHYc
zm1Q^q)=B*ObU-Hy_T6FN#!?vzwk_X6uvo~9J+Jn+ce~7j5ta;IR}E&x+>|QAD=l{5
zx0cHBlVA5BDs-{9%6=0Jt>27ghi-y#E70u~Z^P?Sea25W_aJqwwCS_$KA8OKzCiPP
z1M-#=OZCatq1IXFqGiE0_&IMl2Fka?@!yGTy)AWMvMBUNP^AHuCpAw$wCjK+@j>%y
z>vpiZpz`%;e;KGLYJ@9ewa{`~O-b-*3A_o?@cf$D3YM-4Cs_o_K!<9J>EXkAv|ya_
zTirVzmFo7WU$~b5^bz-Cvn11jo}b`nUR*l31xGxS8%~7^V}47@qmjtw$W>{Evv_~I
zp631MX&9=y!@_TVJslmBH-B+ruLr#`AwVfZ<EXUs%D4y91cEfRShC&;WJK%!q8*os
zR>KGON2<mVk5~?;i{}JN%Zjeb+a5>n$428`p#dan-5I5Ea|o$Q_FtZD?ngNXA^q#F
z!^n(F{PZW8P9)NvJDzv32a)~M@k}{`L!G&QhYL)`(Bz*7{+&@c<aJ(j+$3rcHHM9D
zTw)tX@^qClV#IwYDxsw4f^I*`J<+f(Dp`SwtV=YHpQ=aJqAJ+h<z5tJi0QdURw7FM
zA4hUT22j}efo_6G1G3{!FR}NmMNrSF8p_a$BxtV&5&Z5zzj?x(toR0DG~VHR@|#ge
zJ6QQv<vj?ji3!82FMD8w`sCs(+!#Du(U0A)!ol}|sWgRzA>a(C&SV$q2NrYB)JGoe
zpm4_}gKD%N9yy(>zuY<l#<;>I4|W{f=zT!dK06MC>?S=5;`6ZaxtA%ua01rj`N@6T
z7l8D`^hD|YG=#1jl&BfbKxP@HJ9IDwjKiZ@a~EddYvfGo()uE7->d(1l4~7In=f^(
zPp?3Hhny5m<|2&kveHv-tbi}kt5G*>6}Hk|OO-9J!f$!Gb5(r1kV_$$Hl(@%@lK3A
zHRD@gKNWK<>A@aM`sl3hG3>xAqf-g3ZrgDGbNQB^&pOO`9hD@~n*yQSq`{D~UEp1f
zyV7}e53ZJ-wIW?#hn_<r2N8{3c=wxUv(<eYgsHOhu3u%utTRhKrhI0^`n%o-Z5J?L
z*47_W?q@P$&mD5;lZ_d$6XeH;@<r${LCs3w-=W2338MO6Bv4>Ry2rxRWhgLw2zotc
zkP4GHebLI!YzUx>JmTf;9=NL=>py;T2;P~+))z{Rf^M$y%tx<&FgdC1`<%QDSOeHX
z2?)kud$mbL`g<=VR0e%lVrvJB**H>>zpY@iYGs`9tOA{#FuM~c{|oh1%uLhwJAxo-
zwujTJABb#BcA$Dp6PhYA%FdQOM@sA$uJA-hf#Y}GwU>W$(3fs%r}&8&w8(P9Z<jn9
zd2hcJeCnKmGQUQ4OjCBCpc8jhZn9RQ1&f=(3-p7i>CCBK?>Dt*co*h~PIn*^YKiwP
zErW;}c{*IT>_S!#*>~5kHz4(8wF`b-c}QGgGPL1J2VxCgX!6l*M{$ge_l`_9pg0fS
z?rpnaG=?s2YWfc&Co|PcR@OsEBQ1W1ZfhJJvyM_&Y8*lS$~+Ga@qVXn&AVKkHh`>C
zS=-GiQ&H2snj-bGO0XX1n;MJC0OGYz&j_O{P-8#tqTq}_%yI_{rA=iZ@reO3jU!&@
zd6pp7*jomt#A@U%yGxM0YxU!g<$=f**EV<$!$FV3aw#MCG^icv=UDZe1`cUX@;enc
zXuouA!%+|iQzFwV_3}6<R-RPWdNBxcSxz2zzv6(qj*_B9ISUAeTbskg+M&kWliVk7
z3!3+{)n0S0fw|RAK<U&vjM&i{1ovz~U)6246sk@5@%|dMB-akqx|@HB^4W!!Qku??
zwH>Hw*>Vdq+lD|bI`a7MJFuDHZRYDW3${mcvy{dbz{&SU$QhX_XcKktS;nRyMEKD@
z>Dy@#6v(CF3YZ6~!HNS<_IW7b9i^34*oLHfQX#^)RroHj{i`c;9U_}JS!<bgA#D;T
zMZCNPrpq&Obx(I-v4TeF#OGBYuF7HvNtytOn)lu#2|M7{;6%kswF@yNGfx+Ux1qA6
zQ%0HnH#|P8rnAYq3!eEuD|K7xuz^M%VeK+njASc>fue~Db80<TYuQAJm1l<-`rA=p
zbXpaGZ~7Uqt%SShu30l;B)5~kwfit&Cy%sH1+CI!mYYM|TA_@XokdrWU0WaU$Lp0n
zA8vuO?~JYuSM@;cZTU%t>>d!faLM5LuP#`zKINk`(g=A+eHL4bdti{^QNf%|8>kT4
z)8zNmLbNN78ugiKsG8tP@<y$QnC$X3-s^ctt%$bgb5kO$g>d|)@pDCqiWJe-=`KLv
zZ}3!GAPE(7%s((7&4B#(d(4uk0IkYDuxY5yMRGotw6algC{{Sn$K`7jWF0&XK0Ihd
zr!L%Zy=7F0Jlj`)BEv2e_oAE9p0XU}^i&0qn3SP>PRHsFp;i?5sQl-1x=Qpk?L+TL
zpCVNE<BqBAVGg=G`9ec^vKL|dxUo*}I@Bol$6-b^8;u=YIAnR$fxMG<PpwpRBJOse
z<L&N5N@qu($lylNwsMkg!dy4<&A%v>TQh(rMMd=u1zM2CUAmz4Xg{<mMI>(5-iW_X
zb9-y-S3u{n*zk9+%Ft0mH8o1EDAZ7!Hg3WD0ck{5jNC|#24a1ccyzZK#J;_XJF8WW
z+PqT;d3@7RVb?V;s+v)-v_5KNPcZ{ws_X0AVe@c!o!=<fU;@ONiUMB<jKiMUPH67L
z5L_&IVaHM02W|GA&Y#dUbTsTuDmxT`y=2VJv*(@As7CTZpKArEL{H5tGp|4?L9k$Y
z_8M4Rl#9^&v<keDU*>}NR^fw`!yn_{Yry)l%<XFU2As{8c&TuG6;`FN3+ZK>uo?mi
z(n%{IBKp$pPD2JP^ihqGhc$ywXz;^(3zfh-w_IB3UIBj(3EpmPHNy56_7u9K9Z-R)
znP#pOLhQFZlMaJ=kXY1Td^}PNN|qnj&#Kje-uWGZLGLOssi-_UKv4m5*@?0Li3_jP
zhEQoX7l6&S9vm|%fDXr9r6;(4NT2_<PjjykzC0a#XKK(4F;v=(e?ENyv6NKv;Gh;z
zxbQZ2X0ib?(@O8q)O3LB@7yo?_C4_Nu<^AKNh^%X-4^2h(*Yw5QnwZ9I)LCOqefm>
zEwG*RP_I*|g`K=Zd%4HeaCu>u(wwpe_B=H-b(1(TY^qOafSD6JT&k+i8|A=6jY$S1
z9oezHrO2-lJ{(x1Y?1Y|MkcKE!k8Ur4l5R?`BMMtFdo+{6@I)UN{4Blvs+;!W5m{&
zelR^5DgoJ>@=V$TC6N13`tqN#UyygdxpyKd8wk(#yD=?h!c9ANH)qWduy=nn9V?mz
zdg8iaF)xatQ)=nUvS>Oyyi~gNQ85^rW|(Sz()Gao$tW+W%|VDg!F51?dI+8r_`IE{
zZ-+7dU?Y!jF+de=_3P8!L13db)o(o83s7J8DI>8HZY4ZnYKv}x3j<W|wEMdt(?aYM
zB~u@i?UX%huxteq3&!IDd_CZ5P1ASeQy#REOMZ^KRtpWEXifU@_}nG2ORtxnSA%17
zm5>orHN2V4u2_E?i{icMn$yTTLCUg_<~}`suT)M$*LctaF`onvE5EnFmT8Zf?&BU{
z9b9rAE$;!jn-<SB@c*B>gSULYW-~A<cj{Lh>w{wko}EWIy1=R1qxssIA&?R}Q58Dh
z4vjP{>N(f|(4`t<GA6xnbM0{XR}c=5v$SXI8PCG*@2riS7h`bWfb`~TjWN(joP3@z
z+znXz#rVbW9-wcq?H-it2VP~ON3!<g@Nn3s{lWb{AlMmJ_G1|X2cn;?blQW!a?aK3
zi9tVT?VUwNs#D;2@4GX7FAkQaLPdT@PXo1uPPB&A1klD6nxD|0fQRaQKGk~upd5c&
zc-glC45AAeyziES$EY}tF)0U(Mv|OoMQY%{*Ta#Vt_7TCM^Ma-6d=wXCgBJyg0NnW
zS3?SpkOzg^$7K<89ZuYTaxDN-X`1@CFmEVEgN^wb)!=a<aL`(`2#yJPq%G}a!UvhB
zr*ZF_!0wh(U(QHAjK!>fApBSc0p|(=1m1mye(e$0i|4A~G$!^U?OrV~*9ko$6=;P>
z<5_(&{C@10$ims(#b%JnIj!=vy$ckHP42yyYy<t$zx1rJWkAMYZe-e82!}L{H(yic
zLVkphr!7++ln@=+uh3z}&bZ!E&L?NauJ;x5J?&w}Wcmk$)ySAJIQ99^d7TN%>zkMF
zw_(CYzowO`?J#4rBc%Nu9n4riHGfv%J4UST;QfGe91|8SE1^Jhy$WQ!>4E1`1#GwN
zZAxnw!>Hv&k}S?L5SqxM<nStiQJXc%$m^-lCYd1dR<#@?18(lBHWk8%f_3)Vr94P^
zs@H0S$DJF~i+E=|d!bopb?8${FU%`0B{^>N!k`wDi?&`11P45`I#c))E-L3+=<xJ{
zX-8P^7pESW^hmjWa;Xy@9@|%(;%k9l$B**l9&|zSgqxd^5`O=>%w2wby9TIF^uPa|
z+5=9a&5GyJvf-5f$2qTSmGDj2_Cft&F?6ua>2Y{hfU5(?4-Pyor7<dyxnALmQh)5v
zy}Hl@f3$xXti<&~UF`1aHvb^_leZ59W_5$J?4R?jM+ZPaPcXoTqz_7RUER$y+rY#@
z=OPX20FKZ@DvQ(sNUd%6I)?wf*7Ua@WbxqpKXa3mNNWM^9|C29`Ta0sOu8y`xeEkc
zZ;f~~4}!SsgW0}^lOS2U6fCWegR+aw)s^Ana6(D{2hqz8Xwjo@Z(3-FNTT?zmDql$
zR9n;g6g~p;R4E!`IUVrek_2xF8Ub<Ujyb-?ZYWX}t(?Ev0~S9`%JhaN;E`Xyoc_u%
z>^awTfBZ55Ja;Sab8?IUAIqcbfvn@8@_p)+Lt6?&8yDNgzW#-}BBN<Y#hM@@d+=wH
zeGQ1n^?E(FO-CvM`rJ&V`H0>`uFj()7uYycPDH4+A)yDSqd6xlQ9xmp+If>&^um_d
z?h<JesvbD)ZBt%@vOWmc^IE2($mr-NPf;ESH*F-aPmY25s;q|!F+!^u>jjC9MMy0D
z4f$GN2+*9`F-)E>Md`x(@)?5dsO?Vs^M=V5<c0H5We!P0GP9}3QKta~EV@t{kA)(u
zv+9GrrZwopgTYpk=5{3ZT!AkyuMHI^*8Z$JtVEZhNy+E&_+~Oqquy9@F_MZpXO3|s
zfn=RflKbU)xDlK3e5NNI5pj!_iTA|<@tZ4(U1?>Y$9q|Oi9HzREA6ildWQm$oKLsR
zw{M8qmbL}6>;;!PgD!^W4RFlT;Bj9d8@4EPTvfM@6U!X8o-a^j$K+heGmK3+usNE-
zSt}(@?9ugtck~u)m`rGvc~&?xmO@UWMi9b=eL9G1JWkGnjp})=ZAdd<RQK-ts83D6
zsRi6S(|gl!DpkR$>E;x0`3l!-6XQT^Rg8(_MlDd>>rH=CISZF){S3{+#zCk+;L~`}
z7)*8w&<}=9!~P@w^Hg(V@GD9$Y~l3+9B{CTMd9O?jH$!umwPyvxzyx;<Hi8&D0(lI
z4==!Mwfop}##!($chG&<y9D>6Vu<}cX2I`6&Bh<M36L#)y&Tds1D(JBhK(21BNV}1
z_=u?l`3@CyBpfe8D#V4i<m5{b>m!qyr@eJ3=;Eo>R*x>^Cmr?nWpooN&3`hg!IF+1
zle!<)k9DA|p9TWUCtA?p;EMj^8^h4BbAd&iHydufojSPiA_o}Xg}f2;Z-O_?)e49A
zs=*zt+Fy}th8CVO9yDGENiy$=`)wj&z~hRo;%FaqzU29)^EMV<yltJAyIqUMbajy<
zX%Z}-WcI73sX}K?$IFR+xdFKq54^YnYM|$Z_20W0?MRMaiJ@*P6A23V{>AMlpuYj)
z=%QOSs*<40)WtssJ{w-YOKFq^Tufo45$OR)gUm))WU&RTNf|n6KexcCpgdpSu{f}q
z7L|FC;R=^g@y0LKV(9stA=YnGjb^78KRe@js&rHSP~GM%^!(9gmG|2c6iBzjvN({9
zoUN~&Su8C^i4I?DeD*7$w0M6#cVGl=Ri15po|2E;83Zhf@3|tLfvBj5Rvsv%_P*)I
z5Ao=T&7024uN%;4oJd4OYB?g`*?S{;5Q}!Gre!RmtI;)PCN1`*Q1DG?cr4o<i%#tZ
zNW0+qfOf}(buII9^hto1DLlCmX@+kr2)ouHq2ZSM_YShq&q7uE2t5CCjp=pm&BS^r
z;Vd!!^&$hE&rrJPWcUN+I#IaZc~A~$ReLd`;S1t!*^W4_?gMA?+IB=--H|U>QD6i?
zFKBQ)bG|WO0ZhE|yec0Uu)%z>H;%VhFe194e)1e9Y>`mq&q^{2mQU9l*zCiC<=#m7
zJob_utA5he9p%f8F|*8~XXPANZ+1k~!7mO>Yph#2`6?SmJTVkKq&o?;qgBBM=F>pX
zaGvDJ?J0=*bUxGa*)TlZ)$&?m$$(Wp#C(2f8fu%V@^LZaU|PFPTI+zvca%=M3ghp$
zoXIt9@<YSm7A9k&H-^U>Qx;m)@%)#n-ucL_V>58+KqK0qY7DH^OZtcIt%8I4pHvU2
zC3yVp)lCb+HMsn$Wyo6-&rgLP&U@F*LHkh5Q0dSD^elF?U&7;b4H0Jv8kW-$13Jm2
z_aqYu-B}cj+Vn;l-xFmx9u%Vkn>ude!UptZN`YUfvKHNZ9eH8%lpkC#a!WOQR*Qb!
zFg&A*RiG;~3h6|NU7#w7Z2V1v;nwY!CvJzu0bhZIlt9lnh$)Vkbbnh6Zj#}Fc4FCJ
zb#LktT}=|oZQlCO#axZ7nc~{6F}A==p`SX->=&eEx<k1o)Q+AQoErb?rU)eiq^)8z
z)u`38=ZhCd9vVttel;gm3=!0{XX6@r(Z@Ii-;4V-DAOdF(5JHujdWjJDtgd>Oyus&
zuW<Vz&Um>uS^Sx3@W(~fNrGOq7PL0Cy4Qx@<{Mo4^1cvh(976gW*9~;(L*!h%k60A
zk_H9mTs2Y-EG%oF>qn;<UVq)TsX|*PZCHc7I+0pcen#%;L1b!~96VYwg6{PP1q|No
zLv6uk)w^D4h*0~ODDhr8q&i11H22_8N|m3&y`XONTEJ7j-=`0$U7l+1*B(HMtI!qK
zJ%%nV<=v=A9YW8|_NB`xMo{)vTgO&DLf%W~iK14!5THTMYqkC8)DDk&!JjrHW!39=
ze!3TxWQ(8W$n8gj0k6yseVdTa#25X&#X;n`|HXBAqyfUED+Jecdtj<`_d{4h9XxsZ
zt=KZ690GN7KaVAJK&B<NNV94OoYPel)>x|s5u!)IAMRFy_PZ(z7p^YI`zCwiep3%v
z-fv*@jh%p*wfQc!H<REz;q{$lxeuz%oC<_CaZuXEKXH$71jJ6h57+@57`Zn8HHz(n
zj>NVYi|R4JNjb=uKbwL(dg*yL@bUUlzCX(a_ZcuhyIUFKVoVrOK=BN#2^041o!}LF
zB_?dJf$%QH32Kaax8XQJ2pyLG=(|o-0zGEIDYo@+mmZUMczZ+RHy!rAB;!wP%~7m|
zHjL80Zxkx*$7M2I2BFfYOOW4t0`5@qpV4g?hU)?E{cpRCKu71w@dfU25Z1bzQ@Jw*
zH)-9^nhcEr{hc7UCt33_U3BUcq3<}@&g-UpabE>0l{CrO{Z+W6(^T;$XakIHlIeWE
zxCwDulX_zQYmjDITKMzaDm0wvyi5LN3I1NWZFMqY4c@Zl$VER~g;4I-6%0q`AvS&O
zU7IEXnoz&1xV!|^9wA!M9PJE|y~$KPL)p+-Fr*=TyAa&CBW>HwV-RV`sWiP?MPMk^
zxMj#$4i@Y$&5n})L@K40R}DrZ;nOVtvw({&uvKw*^4#kNkQl$uwLVr4Y40sdGW8lk
zw(joQ`<QMpHZBt!S8s+OGbu6GurlZh_{;Z)xe8vrB;9mI)zDO$lyT};6O=#Q&|T_G
zK<fSL=lkR8QP)nQ^Rj9&(#Rnz^B(enJBIF3JuBTvt9y^GO1KFTkl5%Ddm{8SqGHaW
zw*w94^;1s=HlS3CrxuCEO-QQQXzx?{7>f1CX%q||N51mf5*d$%@#7A;dc3X<y$@;W
zb}ny$j`JI<!*&zsl9bzqk1`I4@;{JPT<u4zmbZ@cZx5rO1}?t_hH11tj+HR9^`S}E
zq2b>bhEUDgtadP4InrlyKhk2-iIf-HISO@qQM+^!t-$3L)R2}QNP+7>x^c$4Di!_c
zsAxxs=7$<|pEB0{7E>Qu=A#={rR;zU>dRkSd;4MitKHK_EA23vv{J+%R|PwP(GD4#
z-LSh5$aJK%6<Fn3@9$_gfxy`78z)b+LW{a*h`wPr(5dj)Z}g5p`QN`srADXWj#;XW
z3&$+TUYv|26~I9q_n(C@n@PBQ-L{|7WE=*Knyy-(nS>(RYqz=!aUlNU*?PUf6o~vJ
zGUWU=3-+noP+u?zOH#Aaqf-pn*~%N24kZ|{iO@-VE=hV!&Car^V38gRCGw{Ivp|dm
zzWS>8#)TP6@0>9?k;IIRmA2+Qq-4gLZgY;fV9eOt@Bn5WCwffh#?L6W{Ruc4b8j7&
zKLW)znwyryQ{WS9ouD>40NpyOa(7!spjy$<NmX_new)dsi@lhJoFvP?v>9XYpe>v;
zNMROY1vyQbBFCYEjcP+Sb_M)8q|2Dn*I@Iiz^6HZ4WKm`u`CPQ07n8f?~4yt;PSJ<
z%qMufNIlAItY2aY7RV{e`Px@O+V<O|r|kj^`E~KM<KsDnUUJJN$67GF<40u2lZ#&U
z-~wmZ5+T1tpdp;~6D%dY$#i6ifrfXgNz(@z$Ta%xk9*4*(D|S&)#+XVuoZt|Ez!+J
z+=9UgHZg%<)XVKTlwJ+-7Oe`2Qmx=5mve!LwjO%>Uj=LB)q~XJVz|(eZZQAJ%l`$h
zn^+oNXJD2_kfMFs;YLdi5M6IeRVk^0PlEMIfhQ_}^4;f+`*?iu`P5<h-laJ7^q5iG
zEPg-0yXaMW)FJ`&MQ=Bvdu2!}->U~&q7j+J{Gg>%0?IVRD}qFwpkl+#JypL36}$N+
zwkm%@HVdrTR_jAZa)mFyM`sAtmn&s38I2<rs!y(Ld*g^~w(9<;{$8Xy&CR`QF^V2O
zc^f)NibG33-!5|ObR$=%+#m|sVboWwwyVlMfqr0ecln7sQ1k_BzRUY<s9UFGV5lhr
zX>oAmkFK<%L4ht?mXa={`DvA>oV6cO;+BX_Y#R`J-k!|m=QSuf=2q2}C#lHa-M-Tt
zub-fC{7p#D-wQ7pzU8O;^#Yl=u}v~d6Nrt!yZs=c9Jm~`Pp#td-;xu}4B%7>hnHRz
zkO{T}Nh&$cnX(*@ACL!m%nv|%gh#R8i)#G-?xkVG({b<}Q>lseoB`$x&SDkn30R7-
zS(Lp$0X|2PIVkUqL-Adg__Mm>ko;q&)8*GJY~5Ng_r}LZwo=AXGQ#ul*zJk&mh=oD
z4U-eA4`#vQ7IjAx37*H=tRjw>8H1GBNbh@F!=O}FI56;`7q$Wk_+mcH!h62QiKTm!
z;Q#t=<4*V}qy&qWYqZaUO&)c8rCl%dE|*bd9HGOc*mewBZ5gp4Te(KoWO~ewjVD>k
zoE|H&<b76^#fY6{>v`~Nf)@KWdg;j+{<(CMW0qGwix%U0bD_Bve|-y$*lQT0!*I^E
zO9ztUkm=?Ynf?U_3k%U7ny%q>bzSi~^qgZ*<l3yD_H_(eB%4Eyz8V7`*?Hz!#xaol
z=62Rf76)nMuX)lL2Z7AB*<gvh2RKq5Ne92{hMKP`gmST+P~!G{{BdAANPYU)gt2u(
zG$s9CB|J}F8T4C@*{=$Z)3Nh=o*w|gpc}+(NAb9f-LZVH=m9*>_V;W;N;y0}Cm{Ad
zu?bE6-3pLQNkA8A34TNm<f8beaipfnE$Gf-tdrD01gf=j?bp|BL|^XT_V^}SiXI3J
z3!Xnwi$utF?vZXsp*xObMV2)cXhV<R@yqiRq`A|>%-2wZJ{Qc9<Q;cI@3+2w4DTrb
z2WpY9Q}&%`{Du1Om;RZEUFpxxB5eSgpu4nt>|GTSHQ#-s#?XRnGDv;Tap$3m2&SB@
zXE;<k7$Z#0Iga}6l5_c{hY^FMl9wv`7@9NlkYW=WLLYbzZxuWkMAgDNa^6Zf#Pa*s
zxwxiL)TTzUqe(W7NVa{xeDs?{>|8MmtRfSru_5b3uiFUnQhlZM>O>df;9(hh_k08m
zYBRgLnhhh}=uZJhTX9G*k>PyO@*v8x@@KjsJ&4qr?yMLXH6f!lS%p({L+D#<R?FdJ
z2OMebZnKQ(0-{kyBaxU|&=fL;xhr)*;bpK~hkD`twx;+%Vg+<mgiW8k(gI8;KvE>T
z3bbi6#+T`az$;(gYz_ZBZawXK{&U(49LiM;?$Y7)k}PQ~i}@2E*lWgYiPsl!+@|?7
z#54`c$2f=xXlH?#^2c9;jae93`Ee^gc>y?Hn0e<%uEO$X%0%~*bKpcCs`ug19Jn_O
z#Z6Dl!D%(|{g)dv5Zb8}!Jv=FBbR*3$gU5=Y{E|W%_#hS`_UQFYKuAWu-!kwVlxFc
z(r2STRL+B))muX+uOaYH98u97JBsPG(H?7Ppu<9<?M=t^X|VYPEjsB5yx+8|6vQ^+
zd85XvlnOk4SH<_SL3x1{Ta0<+m|w_($#s5jV2ftKE`%U+&3b0+#Eq*(eycMuLoBrH
zHaZTs+V~!2wavl%#V_f!Of%5c4B64KbC7sKr{;F{415=kF23<)5)K4kR(xiifw&1w
z{$}<(e4h0G_6)Djh&tZ8Yg5t(Dx|z?r^rgc*ri1!r?M3)MgF?**LQ-y(F>h85j@W@
zZf%h@+77Y;&!|O}+d=6npOa;E8|<8a$$1z$46&#40t<w*;6t~xr|e`SqQ0qZExcTg
z(wrYCn{U^ljZ$-o)+3#W=3JDj0DC#IRXdow-_ebPB1?~X&gGy4tqVW4tD2C#dS^nb
zay`1Db;EnexdG|$n{(kzt00`~MoNNdDqOZctNRqM+tfF3WZKusgxc7vhe_oPXn_nG
zo6EbwEjN_l!<Qz|ZdIgWjBWy|LOVN=V+C;CqgtfwVH<EM_s%QbZ9rQIOCxR_9f+p*
zk<s<BUi6DLF!}VkVibOAX-~AT4W*y4D7@{}ha@(+eI7+-pfl=LiLFWPs5etsvb?Yo
z#X5k1?9FbJ7$GS<L|l%n34`395&Ixl)65WK({Au%QaqE3D}`5D<fJvPykMi_k;IXa
zHc&nNBP0WluZ1E;XCvJNICJQuX);y@(gco+m9O$4)}-`Y<J}UdKg)tL?YrQQM5it1
zbSZpIWXXxAjD}gB{m)6Eb%6bR6~@rt11mi4zqrFXA@^phOIAfC*c#mnCb>}u^G3&5
zxrEB#{#;~1Yd|tO_l?$?pS2F{S2o%?D>b6Xf@i;&RMU|uk1h$Vc@<KYmSot9&qSro
z_uB}ma}cT6Te4@-zu>o|*M${{8hFi{iz(%$qh!1Ng1K{B(3;_QJ&Ae?7!9Op!?QMl
ztakAiFSZ8h*inJg#|NOzRD01NWD_h!(?T|Lx8O5_u)ikzI>b@~!EKXuDD0eVlsq{B
z-0=j=*R_Tq^Ser7ZZi(5CckYFaL+=9^oM1h*hv`eHt0z>H3%OS$^`8!XFxp1*8dJn
z!kxQkpGgqn^{+p)US?>o0G(^$_x&??KfTAIWF^RkiRBcqS~s#_y{)_EGLKlXMA`0R
z9o(##<N9w^*+Uj=P$ZD^#4RT5#R+pmn@5aTKEra=dL%RU%eT{r$&3kOei|m@Xh?^h
zSYmpw%3K87Bc{|};wqsiCgRaJo=32W?aU<EEQhBBpA$Pim!r+*>W5()c--u0KTi2#
zGU!49<C~!rFg!cmdx+QB4BfhWi&DP;Ez~mw>=H(U{I8S7zHU+IuPNJw7tA?u(~yAk
z6kfN+nUWbThm}G257`6*-+B<Rd22`+-vQ%^FKh1vcHnhdRQDNU@VxOluY-GX4-__g
zn@Wfvm@gjqZB6q7Y^$;MlV@|_TQ@mB-Njhw5*X9tt874@U2W(3>U&^YNr;*^qZSfs
z%er#6D}eKjM>`AAH)tTbMPK1o4<D{RJbH1f6=_5zb$0r8p{pW|wavrbXkI!{qV+@-
z((9ymc$e3SQfhENX;%A?NVHkA5MvRF6iK=1B;AWzZZ>NyRW+d9xn%OqrCxM=@P#8`
zcrBvX-F!B$7maK*cZHu`>jc+O7I%+V>3BWv!`*MV5JdWWCYOz@0Zi9vzs7IIA(4^r
zt`5R5h`w@5$Kg&MkT9wZ(dl`>euWdI3VRc1c;vSEmUP4M_TL)C#BER(b#Y~rz6|!5
z$g@=Z+kxfFWcOltKWr5gdDe#wK&Tnx*QX0@AbL(_-o(2W;)B%h(3jP~4eOA{g-2@8
zL&wL|J;bf(_zyYl<u`4}<>IzneQOcALl*UzSFj#ElHpMP8IO>kff$iuNd;24FVSPU
z@Dh^PB`ZD2D<CL=qVD#S5_HU=qEPqtIy^6u`gHlvI<SUc-uk+-4lFW>?Yns^AUFHY
zlARj|w`A4JXr@;ofBtfqUdcLqG<h9vy0-#M<ie)4#VgQi5Ur2(PlCop@|S&r{lIua
zhch;E2-K5z_<H_KK-=n>=hvmjp@v7;cP*?3M42TY4qcpq71o)R+RAY_btjj_LSYIT
z?#aH?s#pd)pRnH%ixaR>QfA(Eo*8p(zkH@yn-SX&q_31tV#MBcKVi)sWyB&b(tM=u
zV!|RM%#@t6m@%@?%WP_2n6PJkGRY-|ESO8>*YV^!7EJW$J)PIdOxOzlmP{K@63psH
zT_v6kfS2*k=2u=-z!_EfKnd?m(EM}J)P*G<O=&nU@3(fMH`hePrIbw|(|kodH6<RU
z98d)^2aF>x@7`lNWw9vgtFN5mKoS^Vt$4O0TZMK%&wjUik%bDBstuc0;!v`y^BU(u
zB1|TI42U<$fi*2UyWv8-emnT2-hID%@bB%eT&v83?>+~{EJ7{#ec4B^J&i$VxhZ}n
z)fWe3+(~6P^D!Wp7+_I8G6}yrQp0x0$3SWSP;>g}2yCzPg$m<!VL}=rG?oN2K(A^)
zdemnO42CV}HFNQJd#mcNOFs1=`Z3#ed!-W|O}Te8aF0TVd`PGG5qr3`A(LEIQw^R<
z<RKKN`r!dvQHZW$Hw1l~b2r%U0sjuN=d(0DaP3rHm1bENNK`4RhWgKfqq~A-ry)Lm
zP}|f`W10dF&KRfU5FGqv9J%HFt``QhPTes+oCLe#+dfAVr+~iTI*p9!5(M3i%`<#B
z3uJb24O|zOfQrZXsD}oAoURFqUq}XF<mGYFLG@wKZkpaR%btL94YFn@T*l#&9rqdZ
zZWwA){z~wAjsx?XjszLDQLv9Qzvh2)1dOg*rtjsoL#S!|#`vph$l~D^WDjnK?eP0V
zGZc+b(Npo{?fF))3Tikmi07>{DYQ2ySW02zvc^d<)h3veqWiqsTm}+`oAEbr@$jB1
z*_wbi8Dx2xw3|bE;oOt{3Tn3)H2rApz{fZmmb2w%9i#GL^QE7<N?{y;>=7#;gHmwb
zKfm2u9R&|j4|iU58SqsH!}}|pP&_dz&hXI(vP!tm@LKi3r~J#orvh>Cr(rZx%wiPo
zM&DOWsO$v_$=wWVy*`L}x<*zSi09*E!wkh2dI4wPysKB+3zoC<{cY`?AbzOj7b@Hf
zw<oKuDOBoUQE-D&C7>NXI2-!KXtjcCaiGPVW;NKq-%2`hwh51WBnli=4no|S7lq|o
z%E0%52knd0PLL}t_VcZ+gv9vB?8N{_kbk}rBbrT%rCZ+?7gVCfQX6=wdm`zu@h98d
zToQB`F`HrCuIDk#bX&%_j)EAAc|M-?_ADiK%#vilJc=5#Yb7Tga{mK9PuP_XXbG_;
zhqqq#PIK_$F8vR7`6ZyIO?=OnxC$FKg>&oubD$87MXK`7!R|yMPkh7@U|2nGqs|f(
z`soC&;N!$qyCcU>iLZh-;S-ZqiaDq+(w7Q#=z<}t(QShD5m>AgE==to1J&bqYhJJ8
zb&vI`Y%VIJuqYv}m{BzV?>1xS(`4H~o+tWozda82zkad(sL&6)U;B^TVH<&#j^i>+
z27^!_;E|z{I|75lDmTBaj)BOz<V&|Injy(&Wy9XE5oUvNR|VTffY#c|n~-Y|ELOiq
zOZ*vzu4AS=A7e+sqB2ZSJaq)xA~vW?HTxiX<a_jHKp(tl3zvE4F#t1P&*jeG^(h@2
z%QoEgb@07LRb6AG4~px4n%&_YhN*6&JJLSm&=K-^E?H;*wjb6%;n^I6A<cuGjD&IM
zx5$%ldWFNw6uEVB`EhWxkM#Q&yx-mKna{o;H4Y>7jC?XxL%?oI&H9=T&p!~_9#PF6
z0T=Q`zX=%}p7(ZPsMhNM)%xVf?yV}Yy<D#IkgW~u^^cooxi{c>wrMHT#U}6^D2%o#
zs)vFgMb1XcL<kZ!EJ!<B1{~SN^*+&gQ09DEkS`z_`AKvIniQQw9l9(@o~8J_i0d!L
zIWuz6cKgP&A77)<eW~ls_A6O%HbLiD>N6u0&|i~%WFZoMd7Vn;B{N1uq&?=w8PAag
zCizTdzaBcYPuovDEC8J=ZAG&`#vu3LEwi;34y4YB5*-P}<IEQMocvOKU?p?ctLo$c
zr2H+Pzp9FZyPpgz6%%mKC_<G$&^H8Cs)H;slPz%Mc!quR+acK4er{!8myE6$1eBWN
zf>7K58ENXZIH-NktQJd=izJF=(%9d|!LJs5N%+=`lng#3+s_xHFaCAkjdjxTdYNh?
zt6YCXaPG~F)@D8WY`kzH<^nNxICS}3zynh3CCdPz)>~4Hgza0!`LASH!-dgzJTW9#
zM1NBhX)z5ZCd+msu#6h}t4y_?5>JB}*E&-iyrjk2C3aqt6_I0aiR4Yav}R!P4BLl|
zz)485{p{K{Jp)qc7Z3Nw6v!-+vPF1Kz=L`>hSZ!n=ny?toB4GLnmW(jdn7msfdaEX
z?=j54&&KtllkSrsy6*WR`0WBHJ?k{%DqjVK#AY=S{#lr*+1FO8Tn2HYUH^e+t6(3z
zJgG4|1{B%aB-iYxKz~m34BT3PKOVisl+?4}Y*h7OC1?q@eqZ6Ueme<&>tA_v>P)~e
zNs3(9gE9E5a81WMa18e1Uc{#8O@LWx*esLM6v%)6YONfC-|uzwQ29`Ff*5UG+Gf@W
zXj$x353uxrUyAhT!pT)gepNU#`D-4EOdCjqUax?8i9Tt!`X-DRk@zvBZ9;UEo~CN}
zI&4U93uj+ghPBApP?^bTc>Kv*pyd7xT%Yhue`c@>ZIP1|cis<zFqbWn+SwlHXglAd
zkH>k(U+x8zKg0Wl%PRjHY8*Uq_SAndg4a7lJbyld*X^X#UVHV)ZUo92UQxu+_Q6H<
zm&v9VT0o2-@^Khl3bK3Se<ud7XK}Ck@S<0u5<JH)Q#ajBMm{EWXK32Y(BH&#pL?se
zAS<EDm9LlyM2oVPMY>w3T})`MjXfPr>M=Ic(MJQ{pL81ftuYvJyP8`4W(fLnTu!F<
zc7YA+y(b(89iVtY!@9hx7yd>uWZ$mnhqV_W^9NPku<y5XcRjlg`dp4=8eG5uBNdJA
z-35GHD7P8_4tTs$@3g{X?l<7^jXS^kEFb0{xKU?}#KN`aV=i2bvFJ?oum1ZGfv8r~
zj+9Adpr^M_=&}2Fq0NAx%_D8eC_dwXu`Hf1-PKTDzr5%Hf9;-rAo9TT1W~UJ*7d7E
z(zNA>pap(Dx?d+v)|P=Lf5&f2r;jMI?4bO4Z#9H$zH5ARH3y_!j>fAg$HRnM7*#)0
zHl$~+cLn100#B}~W^ISgKu~jY+V^`4;IZ4pJv2E7w(CJWe<g76=>_{adS-kcs+_?e
z-fBGm@2t%`A~XXQiV=o3DHEXVGe<>srV<KB0s@7HnXu<CX0NIuCM<Sgy2EFU3A<?f
zJNppd9xld8e!PYm8&9Y>`GtT1>j~WBfBc96%Ov<FG&fI=Nm}=k*~-#myD!spNcZS4
z)hc$Dnzk9Bx_9H^>+)qVf7j_?E<Fnzf77L3e_n>D!{5@&czk7B+oyZRe+G`dnYpLy
zKM7}2Bq}$&mmyN5YgdYJ21d^2UmxvXg7SHvZ-P@(z+R>{7ehD+;&$?$8ChdcH}n1D
zvAd)2gERD2cFrW+ax`kK4V?gCdK<<Mcs_SEsFyYE!~kd$Sd?lXn*{q;Tv?@wI3Tj2
z{?a<I4w8Aqkw@|Qe+-qyH0RsafyVbJUCr1o<R4jM+`hE~+Ml+h9UgCiKzcBz2DS=@
zadDNuhiBo_srndyDtzAUX|0TJZ`UBH!ocgo5j-#V?XUd>JU-dW9uX6G2A_X>|DZ<r
z{1iy~?p+-b8G}zWCimSmCLoU^@5VAd|6t?iBc0utNl-{~P8`Sjfrl%)!`!70^zKg<
z|2PQ1>tvkWtiB|}#iRl4kXOZ!Iv?@z*^LZDL~~$ib0Z85-@E0V)tZG;Y+B>^nljPt
zQTcKO>l}PMEgR1GDHma4b+)r{S;*s%X0%195B9kD1)2>yVMD=+Jy59;&&$!b<@px@
zd4q2i(@H5ciGP+gx>N)5{X!o~@c#Dt>(Nn;rZT{J4xPuf)q#R#`m{K0IWXC(o0WOw
z0)<qb$rbVf^ykRtB86ZM$Rw(%`fB<iBdKRbggjM9cE|DUx2Y=BweNEF+{Yp$Y?Q5F
zaJm=;jQv(CewU8CX65VLdx{XT@)fzd?mD0vQj_8-z~=*sFI?3y>x33<tW%+65b{@#
z3toBE0eL-k@3wf$z%|0({hCP!+!>a(P37vq`!yHY2bXF9-XmS_E>^*+5@+up!U^!W
z@pv__eHMO>yy!i7dI5&_*}ZIw=HU_b8NWaH`2OG*XMd3t4&I2j?0eZx0=Z5b=i19D
zJbv`OMDyGT2vNJlXVv2K4j4O5oP9!%X}a=%a1x@!9+*f=KEmfee0zSadnuLy!-UJ7
w9Pxf(cI(Z|-UAlw$hc779|9Ik*x^<6>wXq&kIg2gf{F=K><kiqugQY_FFUAD2LJ#7

diff --git a/bob/learn/misc/empca_trainer.cpp b/bob/learn/misc/empca_trainer.cpp
deleted file mode 100644
index 1b7a696..0000000
--- a/bob/learn/misc/empca_trainer.cpp
+++ /dev/null
@@ -1,378 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Tue 03 Fev 11:22:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto EMPCATrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX "._EMPCATrainer",
-  ""
-
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Creates a EMPCATrainer",
-    "",
-    true
-  )
-  .add_prototype("convergence_threshold","")
-  .add_prototype("other","")
-  .add_prototype("","")
-
-  .add_parameter("other", ":py:class:`bob.learn.misc.EMPCATrainer`", "A EMPCATrainer object to be copied.")
-  .add_parameter("convergence_threshold", "double", "")
-
-);
-
-
-static int PyBobLearnMiscEMPCATrainer_init_copy(PyBobLearnMiscEMPCATrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = EMPCATrainer_doc.kwlist(1);
-  PyBobLearnMiscEMPCATrainerObject* tt;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscEMPCATrainer_Type, &tt)){
-    EMPCATrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::EMPCATrainer(*tt->cxx));
-  return 0;
-}
-
-static int PyBobLearnMiscEMPCATrainer_init_number(PyBobLearnMiscEMPCATrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = EMPCATrainer_doc.kwlist(0);
-  double convergence_threshold    = 0.0001;
-  //Parsing the input argments
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "d", kwlist, &convergence_threshold))
-    return -1;
-
-  if(convergence_threshold < 0){
-    PyErr_Format(PyExc_TypeError, "convergence_threshold argument must be greater than to zero");
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::EMPCATrainer(convergence_threshold));
-  return 0;
-}
-
-static int PyBobLearnMiscEMPCATrainer_init(PyBobLearnMiscEMPCATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  switch (nargs) {
-
-    case 0:{ //default initializer ()
-      self->cxx.reset(new bob::learn::misc::EMPCATrainer());
-      return 0;
-    }
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-
-      // If the constructor input is EMPCATrainer object
-      if (PyBobLearnMiscEMPCATrainer_Check(arg))
-        return PyBobLearnMiscEMPCATrainer_init_copy(self, args, kwargs);
-      else if(PyString_Check(arg))
-        return PyBobLearnMiscEMPCATrainer_init_number(self, args, kwargs);
-    }
-    default:{
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 0 or 1 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      EMPCATrainer_doc.print_usage();
-      return -1;
-    }
-  }
-  BOB_CATCH_MEMBER("cannot create EMPCATrainer", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscEMPCATrainer_delete(PyBobLearnMiscEMPCATrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscEMPCATrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscEMPCATrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscEMPCATrainer_RichCompare(PyBobLearnMiscEMPCATrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscEMPCATrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscEMPCATrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare EMPCATrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-
-/***** rng *****/
-static auto rng = bob::extension::VariableDoc(
-  "rng",
-  "str",
-  "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.",
-  ""
-);
-PyObject* PyBobLearnMiscEMPCATrainer_getRng(PyBobLearnMiscEMPCATrainerObject* self, void*) {
-  BOB_TRY
-  //Allocating the correspondent python object
-  
-  PyBoostMt19937Object* retval =
-    (PyBoostMt19937Object*)PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type, 0);
-
-  retval->rng = self->cxx->getRng().get();
-  return Py_BuildValue("O", retval);
-  BOB_CATCH_MEMBER("Rng method could not be read", 0)
-}
-int PyBobLearnMiscEMPCATrainer_setRng(PyBobLearnMiscEMPCATrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyBoostMt19937_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an PyBoostMt19937_Check", Py_TYPE(self)->tp_name, rng.name());
-    return -1;
-  }
-
-  PyBoostMt19937Object* boostObject = 0;
-  PyBoostMt19937_Converter(value, &boostObject);
-  self->cxx->setRng((boost::shared_ptr<boost::mt19937>)boostObject->rng);
-
-  return 0;
-  BOB_CATCH_MEMBER("Rng could not be set", 0)
-}
-
-
-
-static PyGetSetDef PyBobLearnMiscEMPCATrainer_getseters[] = { 
-  {
-   rng.name(),
-   (getter)PyBobLearnMiscEMPCATrainer_getRng,
-   (setter)PyBobLearnMiscEMPCATrainer_setRng,
-   rng.doc(),
-   0
-  },
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "",
-  "",
-  true
-)
-.add_prototype("linear_machine,data")
-.add_parameter("linear_machine", ":py:class:`bob.learn.linear.Machine`", "LinearMachine Object")
-.add_parameter("data", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscEMPCATrainer_initialize(PyBobLearnMiscEMPCATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnLinearMachineObject* linear_machine = 0;
-  PyBlitzArrayObject* data                          = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-  auto data_ = make_safe(data);
-
-  self->cxx->initialize(*linear_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** eStep ***/
-static auto eStep = bob::extension::FunctionDoc(
-  "eStep",
-  "",
-  "",
-  true
-)
-.add_prototype("linear_machine,data")
-.add_parameter("linear_machine", ":py:class:`bob.learn.linear.Machine`", "LinearMachine Object")
-.add_parameter("data", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscEMPCATrainer_eStep(PyBobLearnMiscEMPCATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = eStep.kwlist(0);
-
-  PyBobLearnLinearMachineObject* linear_machine;
-  PyBlitzArrayObject* data = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-  auto data_ = make_safe(data);
-
-  self->cxx->eStep(*linear_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-
-  BOB_CATCH_MEMBER("cannot perform the eStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** mStep ***/
-static auto mStep = bob::extension::FunctionDoc(
-  "mStep",
-  "",
-  0,
-  true
-)
-.add_prototype("linear_machine,data")
-.add_parameter("linear_machine", ":py:class:`bob.learn.misc.LinearMachine`", "LinearMachine Object")
-.add_parameter("data", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscEMPCATrainer_mStep(PyBobLearnMiscEMPCATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = mStep.kwlist(0);
-
-  PyBobLearnLinearMachineObject* linear_machine;
-  PyBlitzArrayObject* data = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-  auto data_ = make_safe(data);
-
-  self->cxx->mStep(*linear_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-
-  BOB_CATCH_MEMBER("cannot perform the mStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** computeLikelihood ***/
-static auto compute_likelihood = bob::extension::FunctionDoc(
-  "compute_likelihood",
-  "",
-  0,
-  true
-)
-.add_prototype("linear_machine,data")
-.add_parameter("linear_machine", ":py:class:`bob.learn.misc.LinearMachine`", "LinearMachine Object");
-static PyObject* PyBobLearnMiscEMPCATrainer_compute_likelihood(PyBobLearnMiscEMPCATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = compute_likelihood.kwlist(0);
-
-  PyBobLearnLinearMachineObject* linear_machine;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine)) Py_RETURN_NONE;
-
-  double value = self->cxx->computeLikelihood(*linear_machine->cxx);
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot perform the computeLikelihood method", 0)
-}
-
-
-
-static PyMethodDef PyBobLearnMiscEMPCATrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscEMPCATrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    eStep.name(),
-    (PyCFunction)PyBobLearnMiscEMPCATrainer_eStep,
-    METH_VARARGS|METH_KEYWORDS,
-    eStep.doc()
-  },
-  {
-    mStep.name(),
-    (PyCFunction)PyBobLearnMiscEMPCATrainer_mStep,
-    METH_VARARGS|METH_KEYWORDS,
-    mStep.doc()
-  },
-  {
-    compute_likelihood.name(),
-    (PyCFunction)PyBobLearnMiscEMPCATrainer_compute_likelihood,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_likelihood.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscEMPCATrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscEMPCATrainer(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscEMPCATrainer_Type.tp_name = EMPCATrainer_doc.name();
-  PyBobLearnMiscEMPCATrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscEMPCATrainerObject);
-  PyBobLearnMiscEMPCATrainer_Type.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;//Enable the class inheritance
-  PyBobLearnMiscEMPCATrainer_Type.tp_doc = EMPCATrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscEMPCATrainer_Type.tp_new = PyType_GenericNew;
-  PyBobLearnMiscEMPCATrainer_Type.tp_init = reinterpret_cast<initproc>(PyBobLearnMiscEMPCATrainer_init);
-  PyBobLearnMiscEMPCATrainer_Type.tp_dealloc = reinterpret_cast<destructor>(PyBobLearnMiscEMPCATrainer_delete);
-  PyBobLearnMiscEMPCATrainer_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscEMPCATrainer_RichCompare);
-  PyBobLearnMiscEMPCATrainer_Type.tp_methods = PyBobLearnMiscEMPCATrainer_methods;
-  PyBobLearnMiscEMPCATrainer_Type.tp_getset = PyBobLearnMiscEMPCATrainer_getseters;
-  PyBobLearnMiscEMPCATrainer_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscEMPCATrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscEMPCATrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscEMPCATrainer_Type);
-  return PyModule_AddObject(module, "_EMPCATrainer", (PyObject*)&PyBobLearnMiscEMPCATrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/gaussian.cpp b/bob/learn/misc/gaussian.cpp
deleted file mode 100644
index 5ab2a7d..0000000
--- a/bob/learn/misc/gaussian.cpp
+++ /dev/null
@@ -1,571 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Fri 21 Nov 10:38:48 2013
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto Gaussian_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".Gaussian",
-  "This class implements a multivariate diagonal Gaussian distribution"
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Constructs a new multivariate gaussian object",
-    "",
-    true
-  )
-  .add_prototype("n_inputs","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-  .add_prototype("","")
-
-  .add_parameter("n_inputs", "int", "Dimension of the feature vector")
-  .add_parameter("other", ":py:class:`bob.learn.misc.GMMStats`", "A GMMStats object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-);
-
-
-
-static int PyBobLearnMiscGaussian_init_number(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = Gaussian_doc.kwlist(0);
-  int n_inputs=1;
-  //Parsing the input argments
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &n_inputs))
-    return -1;
-
-  if(n_inputs < 0){
-    PyErr_Format(PyExc_TypeError, "input argument must be greater than or equal to zero");
-    Gaussian_doc.print_usage();
-    return -1;
-   }
-
-  self->cxx.reset(new bob::learn::misc::Gaussian(n_inputs));
-  return 0;
-}
-
-static int PyBobLearnMiscGaussian_init_copy(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = Gaussian_doc.kwlist(1);
-  PyBobLearnMiscGaussianObject* tt;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGaussian_Type, &tt)){
-    Gaussian_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::Gaussian(*tt->cxx));
-  return 0;
-}
-
-static int PyBobLearnMiscGaussian_init_hdf5(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = Gaussian_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    Gaussian_doc.print_usage();
-    return -1;
-  }
-  
-  try {
-    self->cxx.reset(new bob::learn::misc::Gaussian(*(config->f)));
-  }
-  catch (std::exception& ex) {
-    PyErr_SetString(PyExc_RuntimeError, ex.what());
-    return -1;
-  }
-  catch (...) {
-    PyErr_Format(PyExc_RuntimeError, "cannot create new object of type `%s' - unknown exception thrown", Py_TYPE(self)->tp_name);
-    return -1;
-  }
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscGaussian_init(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-
-  // get the number of command line arguments
-  Py_ssize_t nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-  if (nargs==0){
-    self->cxx.reset(new bob::learn::misc::Gaussian());
-    return 0;
-  }
-
-  //Reading the input argument
-  PyObject* arg = 0;
-  if (PyTuple_Size(args)) 
-    arg = PyTuple_GET_ITEM(args, 0);
-  else {
-    PyObject* tmp = PyDict_Values(kwargs);
-    auto tmp_ = make_safe(tmp);
-    arg = PyList_GET_ITEM(tmp, 0);
-  }
-
-  /**If the constructor input is a number**/
-  if (PyNumber_Check(arg)) 
-    return PyBobLearnMiscGaussian_init_number(self, args, kwargs);
-  /**If the constructor input is Gaussian object**/
-  else if (PyBobLearnMiscGaussian_Check(arg))
-    return PyBobLearnMiscGaussian_init_copy(self, args, kwargs);
-  /**If the constructor input is a HDF5**/
-  else if (PyBobIoHDF5File_Check(arg))
-    return PyBobLearnMiscGaussian_init_hdf5(self, args, kwargs);
-  else
-    PyErr_Format(PyExc_TypeError, "invalid input argument");
-    Gaussian_doc.print_usage();
-    return -1;
-
-  BOB_CATCH_MEMBER("cannot create Gaussian", -1)
-  return 0;
-}
-
-
-
-static void PyBobLearnMiscGaussian_delete(PyBobLearnMiscGaussianObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscGaussian_RichCompare(PyBobLearnMiscGaussianObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscGaussian_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscGaussianObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare Gaussian objects", 0)
-}
-
-int PyBobLearnMiscGaussian_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscGaussian_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** MEAN *****/
-static auto mean = bob::extension::VariableDoc(
-  "mean",
-  "array_like <double, 1D>",
-  "Mean of the Gaussian",
-  ""
-);
-PyObject* PyBobLearnMiscGaussian_getMean(PyBobLearnMiscGaussianObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getMean());
-  BOB_CATCH_MEMBER("mean could not be read", 0)
-}
-int PyBobLearnMiscGaussian_setMean(PyBobLearnMiscGaussianObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, mean.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "mean");
-  if (!b) return -1;
-  self->cxx->setMean(*b);
-  return 0;
-  BOB_CATCH_MEMBER("mean could not be set", -1)
-}
-
-/***** Variance *****/
-static auto variance = bob::extension::VariableDoc(
-  "variance",
-  "array_like <double, 1D>",
-  "Variance of the Gaussian",
-  ""
-);
-PyObject* PyBobLearnMiscGaussian_getVariance(PyBobLearnMiscGaussianObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getVariance());
-  BOB_CATCH_MEMBER("variance could not be read", 0)
-}
-int PyBobLearnMiscGaussian_setVariance(PyBobLearnMiscGaussianObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, variance.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "variance");
-  if (!b) return -1;
-  self->cxx->setVariance(*b);
-  return 0;
-  BOB_CATCH_MEMBER("variance could not be set", -1)
-}
-
-
-/***** variance_thresholds *****/
-static auto variance_thresholds = bob::extension::VariableDoc(
-  "variance_thresholds",
-  "array_like <double, 1D>",
-  "The variance flooring thresholds, i.e. the minimum allowed value of variance in each dimension. ",
-  "The variance will be set to this value if an attempt is made to set it to a smaller value."
-);
-PyObject* PyBobLearnMiscGaussian_getVarianceThresholds(PyBobLearnMiscGaussianObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getVarianceThresholds());
-  BOB_CATCH_MEMBER("variance_thresholds could not be read", 0)
-}
-int PyBobLearnMiscGaussian_setVarianceThresholds(PyBobLearnMiscGaussianObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, variance_thresholds.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "variance_thresholds");
-  if (!b) return -1;
-  self->cxx->setVarianceThresholds(*b);
-  return 0;
-  BOB_CATCH_MEMBER("variance_thresholds could not be set", -1)  
-}
-
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int)",
-  "A tuple that represents the dimensionality of the Gaussian ``(dim,)``.",
-  ""
-);
-PyObject* PyBobLearnMiscGaussian_getShape(PyBobLearnMiscGaussianObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i)", self->cxx->getNInputs());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-static PyGetSetDef PyBobLearnMiscGaussian_getseters[] = {
-    {
-      mean.name(),
-      (getter)PyBobLearnMiscGaussian_getMean,
-      (setter)PyBobLearnMiscGaussian_setMean,
-      mean.doc(),
-      0
-    },
-    {
-      variance.name(),
-      (getter)PyBobLearnMiscGaussian_getVariance,
-      (setter)PyBobLearnMiscGaussian_setVariance,
-      variance.doc(),
-     0
-     },
-     {
-      variance_thresholds.name(),
-      (getter)PyBobLearnMiscGaussian_getVarianceThresholds,
-      (setter)PyBobLearnMiscGaussian_setVarianceThresholds,
-      variance_thresholds.doc(),
-      0
-     },
-     {
-      shape.name(),
-      (getter)PyBobLearnMiscGaussian_getShape,
-      0,
-      shape.doc(),
-      0
-     },
-
-    {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** resize ***/
-static auto resize = bob::extension::FunctionDoc(
-  "resize",
-  "Set the input dimensionality, reset the mean to zero and the variance to one."
-)
-.add_prototype("input")
-.add_parameter("input", "int", "Dimensionality of the feature vector");
-static PyObject* PyBobLearnMiscGaussian_resize(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = resize.kwlist(0);
-
-  int input = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &input)) Py_RETURN_NONE;
-  if (input <= 0){
-    PyErr_Format(PyExc_TypeError, "input must be greater than zero");
-    resize.print_usage();
-    Py_RETURN_NONE;
-  }
-  self->cxx->setNInputs(input);
-
-  BOB_CATCH_MEMBER("cannot perform the resize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-/*** log_likelihood ***/
-static auto log_likelihood = bob::extension::FunctionDoc(
-  "log_likelihood",
-  "Output the log likelihood of the sample, x. The input size is checked.",
-  ".. note:: The :py:meth:`__call__` function is an alias for this.", 
-  true
-)
-.add_prototype("input","output")
-.add_parameter("input", "array_like <double, 1D>", "Input vector")
-.add_return("output","float","The log likelihood");
-static PyObject* PyBobLearnMiscGaussian_loglikelihood(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = log_likelihood.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE;
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-
-  double value = self->cxx->logLikelihood(*PyBlitzArrayCxx_AsBlitz<double,1>(input));
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot compute the likelihood", 0)
-}
-
-
-/*** log_likelihood_ ***/
-static auto log_likelihood_ = bob::extension::FunctionDoc(
-  "log_likelihood_",
-  "Output the log likelihood given a sample. The input size is NOT checked."
-)
-.add_prototype("input","output")
-.add_parameter("input", "array_like <double, 1D>", "Input vector")
-.add_return("output","double","The log likelihood");
-static PyObject* PyBobLearnMiscGaussian_loglikelihood_(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  char** kwlist = log_likelihood_.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE;
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-
-  double value = self->cxx->logLikelihood_(*PyBlitzArrayCxx_AsBlitz<double,1>(input));
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot compute the likelihood", 0)
-}
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the Gassian Machine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing")
-;
-static PyObject* PyBobLearnMiscGaussian_Save(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the Gassian Machine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscGaussian_Load(PyBobLearnMiscGaussianObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-  
-  BOB_CATCH_MEMBER("cannot load the data", 0)    
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this Gaussian with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` and any other values internal to this machine.",
-  true
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.Gaussian`", "A gaussian to be compared.")
-.add_parameter("[r_epsilon]", "float", "Relative precision.")
-.add_parameter("[a_epsilon]", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscGaussian_IsSimilarTo(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  PyBobLearnMiscGaussianObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscGaussian_Type, &other,
-        &r_epsilon, &a_epsilon)) return 0;
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** set_variance_thresholds ***/
-static auto set_variance_thresholds = bob::extension::FunctionDoc(
-  "set_variance_thresholds",
-  "Set the variance flooring thresholds equal to the given threshold for all the dimensions."
-)
-.add_prototype("input")
-.add_parameter("input","float","Threshold")
-;
-static PyObject* PyBobLearnMiscGaussian_SetVarianceThresholds(PyBobLearnMiscGaussianObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = set_variance_thresholds.kwlist(0);
-
-  double input = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "d", kwlist, &input)) return 0;
-
-  self->cxx->setVarianceThresholds(input);
-
-  BOB_CATCH_MEMBER("cannot perform the set_variance_Thresholds method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-static PyMethodDef PyBobLearnMiscGaussian_methods[] = {
-  {
-    resize.name(),
-    (PyCFunction)PyBobLearnMiscGaussian_resize,
-    METH_VARARGS|METH_KEYWORDS,
-    resize.doc()
-  },
-  {
-    log_likelihood.name(),
-    (PyCFunction)PyBobLearnMiscGaussian_loglikelihood,
-    METH_VARARGS|METH_KEYWORDS,
-    log_likelihood.doc()
-  },
-  {
-    log_likelihood_.name(),
-    (PyCFunction)PyBobLearnMiscGaussian_loglikelihood_,
-    METH_VARARGS|METH_KEYWORDS,
-    log_likelihood_.doc()
-  },
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscGaussian_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscGaussian_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscGaussian_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    set_variance_thresholds.name(),
-    (PyCFunction)PyBobLearnMiscGaussian_SetVarianceThresholds,
-    METH_VARARGS|METH_KEYWORDS,
-    set_variance_thresholds.doc()
-  },
-
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscGaussian_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscGaussian(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscGaussian_Type.tp_name = Gaussian_doc.name();
-  PyBobLearnMiscGaussian_Type.tp_basicsize = sizeof(PyBobLearnMiscGaussianObject);
-  PyBobLearnMiscGaussian_Type.tp_flags = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscGaussian_Type.tp_doc = Gaussian_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscGaussian_Type.tp_new = PyType_GenericNew;
-  PyBobLearnMiscGaussian_Type.tp_init = reinterpret_cast<initproc>(PyBobLearnMiscGaussian_init);
-  PyBobLearnMiscGaussian_Type.tp_dealloc = reinterpret_cast<destructor>(PyBobLearnMiscGaussian_delete);
-  PyBobLearnMiscGaussian_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscGaussian_RichCompare);
-  PyBobLearnMiscGaussian_Type.tp_methods = PyBobLearnMiscGaussian_methods;
-  PyBobLearnMiscGaussian_Type.tp_getset = PyBobLearnMiscGaussian_getseters;
-  PyBobLearnMiscGaussian_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscGaussian_loglikelihood);
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscGaussian_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscGaussian_Type);
-  return PyModule_AddObject(module, "Gaussian", (PyObject*)&PyBobLearnMiscGaussian_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/gmm_base_trainer.cpp b/bob/learn/misc/gmm_base_trainer.cpp
deleted file mode 100644
index 0308f16..0000000
--- a/bob/learn/misc/gmm_base_trainer.cpp
+++ /dev/null
@@ -1,437 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Web 21 Jan 12:30:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-#include <boost/make_shared.hpp>
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static inline bool f(PyObject* o){return o != 0 && PyObject_IsTrue(o) > 0;}  /* converts PyObject to bool and returns false if object is NULL */
-
-static auto GMMBaseTrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".GMMBaseTrainer",
-  "This class implements the E-step of the expectation-maximisation"
-  "algorithm for a :py:class:`bob.learn.misc.GMMMachine`"
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Creates a GMMBaseTrainer",
-    "",
-    true
-  )
-  .add_prototype("update_means, [update_variances], [update_weights], [mean_var_update_responsibilities_threshold]","")
-  .add_prototype("other","")
-  .add_prototype("","")
-
-  .add_parameter("update_means", "bool", "Update means on each iteration")
-  .add_parameter("update_variances", "bool", "Update variances on each iteration")
-  .add_parameter("update_weights", "bool", "Update weights on each iteration")
-  .add_parameter("mean_var_update_responsibilities_threshold", "float", "Threshold over the responsibilities of the Gaussians Equations 9.24, 9.25 of Bishop, `Pattern recognition and machine learning`, 2006 require a division by the responsibilities, which might be equal to zero because of numerical issue. This threshold is used to avoid such divisions.")
-  .add_parameter("other", ":py:class:`bob.learn.misc.GMMBaseTrainer`", "A GMMBaseTrainer object to be copied.")
-);
-
-
-
-static int PyBobLearnMiscGMMBaseTrainer_init_copy(PyBobLearnMiscGMMBaseTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = GMMBaseTrainer_doc.kwlist(1);
-  PyBobLearnMiscGMMBaseTrainerObject* tt;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMBaseTrainer_Type, &tt)){
-    GMMBaseTrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::GMMBaseTrainer(*tt->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscGMMBaseTrainer_init_bool(PyBobLearnMiscGMMBaseTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = GMMBaseTrainer_doc.kwlist(0);
-  PyObject* update_means     = 0;
-  PyObject* update_variances = 0;
-  PyObject* update_weights   = 0;
-  double mean_var_update_responsibilities_threshold = std::numeric_limits<double>::epsilon();
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!|O!O!d", kwlist, &PyBool_Type, &update_means, &PyBool_Type, 
-                                                             &update_variances, &PyBool_Type, &update_weights, &mean_var_update_responsibilities_threshold)){
-    GMMBaseTrainer_doc.print_usage();
-    return -1;
-  }
-  self->cxx.reset(new bob::learn::misc::GMMBaseTrainer(f(update_means), f(update_variances), f(update_weights), mean_var_update_responsibilities_threshold));
-  return 0;
-}
-
-
-static int PyBobLearnMiscGMMBaseTrainer_init(PyBobLearnMiscGMMBaseTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  if (nargs==0){ //default initializer ()
-    self->cxx.reset(new bob::learn::misc::GMMBaseTrainer());
-    return 0;
-  }
-  else{
-    //Reading the input argument
-    PyObject* arg = 0;
-    if (PyTuple_Size(args))
-      arg = PyTuple_GET_ITEM(args, 0);
-    else {
-      PyObject* tmp = PyDict_Values(kwargs);
-      auto tmp_ = make_safe(tmp);
-      arg = PyList_GET_ITEM(tmp, 0);
-    }
-
-    // If the constructor input is GMMBaseTrainer object
-    if (PyBobLearnMiscGMMBaseTrainer_Check(arg))
-      return PyBobLearnMiscGMMBaseTrainer_init_copy(self, args, kwargs);
-    else
-      return PyBobLearnMiscGMMBaseTrainer_init_bool(self, args, kwargs);
-  }
-
-  BOB_CATCH_MEMBER("cannot create GMMBaseTrainer_init_bool", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscGMMBaseTrainer_delete(PyBobLearnMiscGMMBaseTrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscGMMBaseTrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscGMMBaseTrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscGMMBaseTrainer_RichCompare(PyBobLearnMiscGMMBaseTrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscGMMBaseTrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscGMMBaseTrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare GMMBaseTrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-
-/***** gmm_stats *****/
-static auto gmm_stats = bob::extension::VariableDoc(
-  "gmm_stats",
-  ":py:class:`bob.learn.misc.GMMStats`",
-  "Get/Set GMMStats",
-  ""
-);
-PyObject* PyBobLearnMiscGMMBaseTrainer_getGMMStats(PyBobLearnMiscGMMBaseTrainerObject* self, void*){
-  BOB_TRY
-
-  bob::learn::misc::GMMStats stats = self->cxx->getGMMStats();
-  boost::shared_ptr<bob::learn::misc::GMMStats> stats_shared = boost::make_shared<bob::learn::misc::GMMStats>(stats);
-
-  //Allocating the correspondent python object
-  PyBobLearnMiscGMMStatsObject* retval =
-    (PyBobLearnMiscGMMStatsObject*)PyBobLearnMiscGMMStats_Type.tp_alloc(&PyBobLearnMiscGMMStats_Type, 0);
-
-  retval->cxx = stats_shared;
-
-  return Py_BuildValue("O",retval);
-  BOB_CATCH_MEMBER("GMMStats could not be read", 0)
-}
-/*
-int PyBobLearnMiscGMMBaseTrainer_setGMMStats(PyBobLearnMiscGMMBaseTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyBobLearnMiscGMMStats_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a :py:class:`bob.learn.misc.GMMStats`", Py_TYPE(self)->tp_name, gmm_stats.name());
-    return -1;
-  }
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  PyArg_Parse(value, "O!", &PyBobLearnMiscGMMStats_Type,&stats);
-
-  self->cxx->setGMMStats(*stats->cxx);
-
-  return 0;
-  BOB_CATCH_MEMBER("gmm_stats could not be set", -1)  
-}
-*/
-
-
-/***** update_means *****/
-static auto update_means = bob::extension::VariableDoc(
-  "update_means",
-  "bool",
-  "Update means on each iteration",
-  ""
-);
-PyObject* PyBobLearnMiscGMMBaseTrainer_getUpdateMeans(PyBobLearnMiscGMMBaseTrainerObject* self, void*){
-  BOB_TRY
-  return Py_BuildValue("O",self->cxx->getUpdateMeans()?Py_True:Py_False);
-  BOB_CATCH_MEMBER("update_means could not be read", 0)
-}
-
-/***** update_variances *****/
-static auto update_variances = bob::extension::VariableDoc(
-  "update_variances",
-  "bool",
-  "Update variances on each iteration",
-  ""
-);
-PyObject* PyBobLearnMiscGMMBaseTrainer_getUpdateVariances(PyBobLearnMiscGMMBaseTrainerObject* self, void*){
-  BOB_TRY
-  return Py_BuildValue("O",self->cxx->getUpdateVariances()?Py_True:Py_False);
-  BOB_CATCH_MEMBER("update_variances could not be read", 0)
-}
-
-
-/***** update_weights *****/
-static auto update_weights = bob::extension::VariableDoc(
-  "update_weights",
-  "bool",
-  "Update weights on each iteration",
-  ""
-);
-PyObject* PyBobLearnMiscGMMBaseTrainer_getUpdateWeights(PyBobLearnMiscGMMBaseTrainerObject* self, void*){
-  BOB_TRY
-  return Py_BuildValue("O",self->cxx->getUpdateWeights()?Py_True:Py_False);
-  BOB_CATCH_MEMBER("update_weights could not be read", 0)
-}
-
-
-    
-     
-
-/***** mean_var_update_responsibilities_threshold *****/
-static auto mean_var_update_responsibilities_threshold = bob::extension::VariableDoc(
-  "mean_var_update_responsibilities_threshold",
-  "bool",
-  "Threshold over the responsibilities of the Gaussians" 
-  "Equations 9.24, 9.25 of Bishop, \"Pattern recognition and machine learning\", 2006" 
-  "require a division by the responsibilities, which might be equal to zero" 
-  "because of numerical issue. This threshold is used to avoid such divisions.",
-  ""
-);
-PyObject* PyBobLearnMiscGMMBaseTrainer_getMeanVarUpdateResponsibilitiesThreshold(PyBobLearnMiscGMMBaseTrainerObject* self, void*){
-  BOB_TRY
-  return Py_BuildValue("d",self->cxx->getMeanVarUpdateResponsibilitiesThreshold());
-  BOB_CATCH_MEMBER("update_weights could not be read", 0)
-}
-
-
-static PyGetSetDef PyBobLearnMiscGMMBaseTrainer_getseters[] = { 
-  {
-    update_means.name(),
-    (getter)PyBobLearnMiscGMMBaseTrainer_getUpdateMeans,
-    0,
-    update_means.doc(),
-    0
-  },
-  {
-    update_variances.name(),
-    (getter)PyBobLearnMiscGMMBaseTrainer_getUpdateVariances,
-    0,
-    update_variances.doc(),
-    0
-  },
-  {
-    update_weights.name(),
-    (getter)PyBobLearnMiscGMMBaseTrainer_getUpdateWeights,
-    0,
-    update_weights.doc(),
-    0
-  },  
-  {
-    mean_var_update_responsibilities_threshold.name(),
-    (getter)PyBobLearnMiscGMMBaseTrainer_getMeanVarUpdateResponsibilitiesThreshold,
-    0,
-    mean_var_update_responsibilities_threshold.doc(),
-    0
-  },  
-  {
-    gmm_stats.name(),
-    (getter)PyBobLearnMiscGMMBaseTrainer_getGMMStats,
-    0, //(setter)PyBobLearnMiscGMMBaseTrainer_setGMMStats,
-    gmm_stats.doc(),
-    0
-  },  
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "Initialization before the EM steps",
-  "Instanciate :py:class:`bob.learn.misc.GMMStats`",
-  true
-)
-.add_prototype("gmm_machine")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object");
-static PyObject* PyBobLearnMiscGMMBaseTrainer_initialize(PyBobLearnMiscGMMBaseTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE;
-
-  self->cxx->initialize(*gmm_machine->cxx);
-
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-/*** eStep ***/
-static auto eStep = bob::extension::FunctionDoc(
-  "eStep",
-  "Calculates and saves statistics across the dataset,"
-  "and saves these as m_ss. ",
-
-  "Calculates the average log likelihood of the observations given the GMM,"
-  "and returns this in average_log_likelihood."
-  "The statistics, m_ss, will be used in the mStep() that follows.",
-
-  true
-)
-.add_prototype("gmm_machine,data")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object")
-.add_parameter("data", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscGMMBaseTrainer_eStep(PyBobLearnMiscGMMBaseTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = eStep.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  PyBlitzArrayObject* data = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-  auto data_ = make_safe(data);
-
-  self->cxx->eStep(*gmm_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-  BOB_CATCH_MEMBER("cannot perform the eStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** computeLikelihood ***/
-static auto compute_likelihood = bob::extension::FunctionDoc(
-  "compute_likelihood",
-  "This functions returns the average min (Square Euclidean) distance (average distance to the closest mean)",
-  0,
-  true
-)
-.add_prototype("gmm_machine")
-.add_parameter("gmm_machine", ":py:class:`bob.learn.misc.GMMMachine`", "GMMMachine Object");
-static PyObject* PyBobLearnMiscGMMBaseTrainer_compute_likelihood(PyBobLearnMiscGMMBaseTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = compute_likelihood.kwlist(0);
-
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE;
-
-  double value = self->cxx->computeLikelihood(*gmm_machine->cxx);
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot perform the computeLikelihood method", 0)
-}
-
-
-static PyMethodDef PyBobLearnMiscGMMBaseTrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscGMMBaseTrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    eStep.name(),
-    (PyCFunction)PyBobLearnMiscGMMBaseTrainer_eStep,
-    METH_VARARGS|METH_KEYWORDS,
-    eStep.doc()
-  },
-  {
-    compute_likelihood.name(),
-    (PyCFunction)PyBobLearnMiscGMMBaseTrainer_compute_likelihood,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_likelihood.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscGMMBaseTrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscGMMBaseTrainer(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_name      = GMMBaseTrainer_doc.name();
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscGMMBaseTrainerObject);
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_flags     = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_doc       = GMMBaseTrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_new          = PyType_GenericNew;
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_init         = reinterpret_cast<initproc>(PyBobLearnMiscGMMBaseTrainer_init);
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_dealloc      = reinterpret_cast<destructor>(PyBobLearnMiscGMMBaseTrainer_delete);
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscGMMBaseTrainer_RichCompare);
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_methods      = PyBobLearnMiscGMMBaseTrainer_methods;
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_getset       = PyBobLearnMiscGMMBaseTrainer_getseters;
-  PyBobLearnMiscGMMBaseTrainer_Type.tp_call         = reinterpret_cast<ternaryfunc>(PyBobLearnMiscGMMBaseTrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscGMMBaseTrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscGMMBaseTrainer_Type);
-  return PyModule_AddObject(module, "GMMBaseTrainer", (PyObject*)&PyBobLearnMiscGMMBaseTrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/gmm_machine.cpp b/bob/learn/misc/gmm_machine.cpp
deleted file mode 100644
index 0b21d68..0000000
--- a/bob/learn/misc/gmm_machine.cpp
+++ /dev/null
@@ -1,834 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Wed 11 Dec 18:01:00 2014
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto GMMMachine_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".GMMMachine",
-  "This class implements a multivariate diagonal Gaussian distribution.",
-  "See Section 2.3.9 of Bishop, \"Pattern recognition and machine learning\", 2006"
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Creates a GMMMachine",
-    "",
-    true
-  )
-  .add_prototype("n_gaussians,n_inputs","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-  .add_prototype("","")
-
-  .add_parameter("n_gaussians", "int", "Number of gaussians")
-  .add_parameter("n_inputs", "int", "Dimension of the feature vector")
-  .add_parameter("other", ":py:class:`bob.learn.misc.GMMMachine`", "A GMMMachine object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscGMMMachine_init_number(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = GMMMachine_doc.kwlist(0);
-  int n_inputs    = 1;
-  int n_gaussians = 1;
-  //Parsing the input argments
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_gaussians, &n_inputs))
-    return -1;
-
-  if(n_gaussians < 0){
-    PyErr_Format(PyExc_TypeError, "gaussians argument must be greater than or equal to zero");
-    return -1;
-  }
-
-  if(n_inputs < 0){
-    PyErr_Format(PyExc_TypeError, "input argument must be greater than or equal to zero");
-    return -1;
-   }
-
-  self->cxx.reset(new bob::learn::misc::GMMMachine(n_gaussians, n_inputs));
-  return 0;
-}
-
-
-static int PyBobLearnMiscGMMMachine_init_copy(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = GMMMachine_doc.kwlist(1);
-  PyBobLearnMiscGMMMachineObject* tt;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMMachine_Type, &tt)){
-    GMMMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::GMMMachine(*tt->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscGMMMachine_init_hdf5(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = GMMMachine_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    GMMMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::GMMMachine(*(config->f)));
-
-  return 0;
-}
-
-
-
-static int PyBobLearnMiscGMMMachine_init(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-  
-  switch (nargs) {
-
-    case 0: //default initializer ()
-      self->cxx.reset(new bob::learn::misc::GMMMachine());
-      return 0;
-
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-
-      // If the constructor input is Gaussian object
-     if (PyBobLearnMiscGMMMachine_Check(arg))
-       return PyBobLearnMiscGMMMachine_init_copy(self, args, kwargs);
-      // If the constructor input is a HDF5
-     else if (PyBobIoHDF5File_Check(arg))
-       return PyBobLearnMiscGMMMachine_init_hdf5(self, args, kwargs);
-    }
-    case 2:
-      return PyBobLearnMiscGMMMachine_init_number(self, args, kwargs);
-    default:
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 0, 1 or 2 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      GMMMachine_doc.print_usage();
-      return -1;
-  }
-  BOB_CATCH_MEMBER("cannot create GMMMachine", 0)
-  return 0;
-}
-
-
-
-static void PyBobLearnMiscGMMMachine_delete(PyBobLearnMiscGMMMachineObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscGMMMachine_RichCompare(PyBobLearnMiscGMMMachineObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscGMMMachine_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscGMMMachineObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare GMMMachine objects", 0)
-}
-
-int PyBobLearnMiscGMMMachine_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscGMMMachine_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int)",
-  "A tuple that represents the number of gaussians and dimensionality of each Gaussian ``(n_gaussians, dim)``.",
-  ""
-);
-PyObject* PyBobLearnMiscGMMMachine_getShape(PyBobLearnMiscGMMMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i)", self->cxx->getNGaussians(), self->cxx->getNInputs());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-/***** MEAN *****/
-
-static auto means = bob::extension::VariableDoc(
-  "means",
-  "array_like <float, 2D>",
-  "The means of the gaussians",
-  ""
-);
-PyObject* PyBobLearnMiscGMMMachine_getMeans(PyBobLearnMiscGMMMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getMeans());
-  BOB_CATCH_MEMBER("means could not be read", 0)
-}
-int PyBobLearnMiscGMMMachine_setMeans(PyBobLearnMiscGMMMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, means.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "means");
-  if (!b) return -1;
-  self->cxx->setMeans(*b);
-  return 0;
-  BOB_CATCH_MEMBER("means could not be set", -1)
-}
-
-/***** Variance *****/
-static auto variances = bob::extension::VariableDoc(
-  "variances",
-  "array_like <float, 2D>",
-  "Variances of the gaussians",
-  ""
-);
-PyObject* PyBobLearnMiscGMMMachine_getVariances(PyBobLearnMiscGMMMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getVariances());
-  BOB_CATCH_MEMBER("variances could not be read", 0)
-}
-int PyBobLearnMiscGMMMachine_setVariances(PyBobLearnMiscGMMMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, variances.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "variances");
-  if (!b) return -1;
-  self->cxx->setVariances(*b);
-  return 0;
-  BOB_CATCH_MEMBER("variances could not be set", -1)
-}
-
-/***** Weights *****/
-static auto weights = bob::extension::VariableDoc(
-  "weights",
-  "array_like <float, 1D>",
-  "The weights (also known as \"mixing coefficients\")",
-  ""
-);
-PyObject* PyBobLearnMiscGMMMachine_getWeights(PyBobLearnMiscGMMMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getWeights());
-  BOB_CATCH_MEMBER("weights could not be read", 0)
-}
-int PyBobLearnMiscGMMMachine_setWeights(PyBobLearnMiscGMMMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, weights.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "weights");
-  if (!b) return -1;
-  self->cxx->setWeights(*b);
-  return 0;
-  BOB_CATCH_MEMBER("weights could not be set", -1)
-}
-
-
-/***** variance_supervector *****/
-static auto variance_supervector = bob::extension::VariableDoc(
-  "variance_supervector",
-  "array_like <float, 1D>",
-  "The variance supervector of the GMMMachine",
-  "Concatenation of the variance vectors of each Gaussian of the GMMMachine"
-);
-PyObject* PyBobLearnMiscGMMMachine_getVarianceSupervector(PyBobLearnMiscGMMMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getVarianceSupervector());
-  BOB_CATCH_MEMBER("variance_supervector could not be read", 0)
-}
-int PyBobLearnMiscGMMMachine_setVarianceSupervector(PyBobLearnMiscGMMMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, variance_supervector.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "variance_supervector");
-  if (!b) return -1;
-  self->cxx->setVarianceSupervector(*b);
-  return 0;
-  BOB_CATCH_MEMBER("variance_supervector could not be set", -1)
-}
-
-/***** mean_supervector *****/
-static auto mean_supervector = bob::extension::VariableDoc(
-  "mean_supervector",
-  "array_like <float, 1D>",
-  "The mean supervector of the GMMMachine",
-  "Concatenation of the mean vectors of each Gaussian of the GMMMachine"
-);
-PyObject* PyBobLearnMiscGMMMachine_getMeanSupervector(PyBobLearnMiscGMMMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getMeanSupervector());
-  BOB_CATCH_MEMBER("mean_supervector could not be read", 0)
-}
-int PyBobLearnMiscGMMMachine_setMeanSupervector(PyBobLearnMiscGMMMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, mean_supervector.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "mean_supervector");
-  if (!b) return -1;
-  self->cxx->setMeanSupervector(*b);
-  return 0;
-  BOB_CATCH_MEMBER("mean_supervector could not be set", -1)
-}
-
-
-
-/***** variance_thresholds *****/
-static auto variance_thresholds = bob::extension::VariableDoc(
-  "variance_thresholds",
-  "array_like <double, 2D>",
-  "Set the variance flooring thresholds in each dimension to the same vector for all Gaussian components if the argument is a 1D numpy arrray, and equal for all Gaussian components and dimensions if the parameter is a scalar. ",
-  ""
-);
-PyObject* PyBobLearnMiscGMMMachine_getVarianceThresholds(PyBobLearnMiscGMMMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getVarianceThresholds());
-  BOB_CATCH_MEMBER("variance_thresholds could not be read", 0)
-}
-int PyBobLearnMiscGMMMachine_setVarianceThresholds(PyBobLearnMiscGMMMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, variance_thresholds.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "variance_thresholds");
-  if (!b) return -1;
-  self->cxx->setVarianceThresholds(*b);
-  return 0;
-  BOB_CATCH_MEMBER("variance_thresholds could not be set", -1)  
-}
-
-
-
-
-static PyGetSetDef PyBobLearnMiscGMMMachine_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscGMMMachine_getShape,
-   0,
-   shape.doc(),
-   0
-  },
-  {
-   means.name(),
-   (getter)PyBobLearnMiscGMMMachine_getMeans,
-   (setter)PyBobLearnMiscGMMMachine_setMeans,
-   means.doc(),
-   0
-  },
-  {
-   variances.name(),
-   (getter)PyBobLearnMiscGMMMachine_getVariances,
-   (setter)PyBobLearnMiscGMMMachine_setVariances,
-   variances.doc(),
-   0
-  },
-  {
-   weights.name(),
-   (getter)PyBobLearnMiscGMMMachine_getWeights,
-   (setter)PyBobLearnMiscGMMMachine_setWeights,
-   weights.doc(),
-   0
-  },
-  {
-   variance_thresholds.name(),
-   (getter)PyBobLearnMiscGMMMachine_getVarianceThresholds,
-   (setter)PyBobLearnMiscGMMMachine_setVarianceThresholds,
-   variance_thresholds.doc(),
-   0
-  },
-  {
-   variance_supervector.name(),
-   (getter)PyBobLearnMiscGMMMachine_getVarianceSupervector,
-   (setter)PyBobLearnMiscGMMMachine_setVarianceSupervector,
-   variance_supervector.doc(),
-   0
-  },
-
-  {
-   mean_supervector.name(),
-   (getter)PyBobLearnMiscGMMMachine_getMeanSupervector,
-   (setter)PyBobLearnMiscGMMMachine_setMeanSupervector,
-   mean_supervector.doc(),
-   0
-  },
-  
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the GMMMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscGMMMachine_Save(PyBobLearnMiscGMMMachineObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the GMMMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscGMMMachine_Load(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this GMMMachine with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.GMMMachine`", "A GMMMachine object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscGMMMachine_IsSimilarTo(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscGMMMachineObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscGMMMachine_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** resize ***/
-static auto resize = bob::extension::FunctionDoc(
-  "resize",
-  "Allocates space for the statistics and resets to zero.",
-  0,
-  true
-)
-.add_prototype("n_gaussians,n_inputs")
-.add_parameter("n_gaussians", "int", "Number of gaussians")
-.add_parameter("n_inputs", "int", "Dimensionality of the feature vector");
-static PyObject* PyBobLearnMiscGMMMachine_resize(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = resize.kwlist(0);
-
-  int n_gaussians = 0;
-  int n_inputs = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_gaussians, &n_inputs)) Py_RETURN_NONE;
-
-  if (n_gaussians <= 0){
-    PyErr_Format(PyExc_TypeError, "n_gaussians must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-  if (n_inputs <= 0){
-    PyErr_Format(PyExc_TypeError, "n_inputs must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-
-  self->cxx->resize(n_gaussians, n_inputs);
-
-  BOB_CATCH_MEMBER("cannot perform the resize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** log_likelihood ***/
-static auto log_likelihood = bob::extension::FunctionDoc(
-  "log_likelihood",
-  "Output the log likelihood of the sample, x, i.e. log(p(x|GMM)). Inputs are checked.",
-  ".. note:: The :py:meth:`__call__` function is an alias for this.", 
-  true
-)
-.add_prototype("input","output")
-.add_parameter("input", "array_like <float, 1D>", "Input vector")
-.add_return("output","float","The log likelihood");
-static PyObject* PyBobLearnMiscGMMMachine_loglikelihood(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = log_likelihood.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE;
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-
-  double value = self->cxx->logLikelihood(*PyBlitzArrayCxx_AsBlitz<double,1>(input));
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot compute the likelihood", 0)
-}
-
-
-/*** log_likelihood_ ***/
-static auto log_likelihood_ = bob::extension::FunctionDoc(
-  "log_likelihood_",
-  "Output the log likelihood of the sample, x, i.e. log(p(x|GMM)). Inputs are NOT checked.",
-  "", 
-  true
-)
-.add_prototype("input","output")
-.add_parameter("input", "array_like <float, 1D>", "Input vector")
-.add_return("output","float","The log likelihood");
-static PyObject* PyBobLearnMiscGMMMachine_loglikelihood_(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = log_likelihood_.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE;
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-
-  double value = self->cxx->logLikelihood_(*PyBlitzArrayCxx_AsBlitz<double,1>(input));
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot compute the likelihood", 0)
-}
-
-
-/*** acc_statistics ***/
-static auto acc_statistics = bob::extension::FunctionDoc(
-  "acc_statistics",
-  "Accumulate the GMM statistics for this sample(s). Inputs are checked.",
-  "", 
-  true
-)
-.add_prototype("input,stats")
-.add_parameter("input", "array_like <float, 2D>", "Input vector")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics of the GMM");
-static PyObject* PyBobLearnMiscGMMMachine_accStatistics(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = acc_statistics.kwlist(0);
-
-  PyBlitzArrayObject* input           = 0;
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O!", kwlist, &PyBlitzArray_Converter,&input, 
-                                                                 &PyBobLearnMiscGMMStats_Type, &stats))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-  self->cxx->accStatistics(*PyBlitzArrayCxx_AsBlitz<double,2>(input), *stats->cxx);
-
-  BOB_CATCH_MEMBER("cannot accumulate the statistics", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** acc_statistics_ ***/
-static auto acc_statistics_ = bob::extension::FunctionDoc(
-  "acc_statistics_",
-  "Accumulate the GMM statistics for this sample(s). Inputs are NOT checked.",
-  "", 
-  true
-)
-.add_prototype("input,stats")
-.add_parameter("input", "array_like <float, 2D>", "Input vector")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics of the GMM");
-static PyObject* PyBobLearnMiscGMMMachine_accStatistics_(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = acc_statistics_.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-
-
-
- if(!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O!", kwlist, &PyBlitzArray_Converter,&input, 
-                                                                 &PyBobLearnMiscGMMStats_Type, &stats))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-  self->cxx->accStatistics_(*PyBlitzArrayCxx_AsBlitz<double,2>(input), *stats->cxx);
-
-  BOB_CATCH_MEMBER("cannot accumulate the statistics", 0)
-  Py_RETURN_NONE;
-}
-
-
-
-/*** set_variance_thresholds ***/
-static auto set_variance_thresholds = bob::extension::FunctionDoc(
-  "set_variance_thresholds",
-  "Set the variance flooring thresholds in each dimension to the same vector for all Gaussian components if the argument is a 1D numpy arrray, and equal for all Gaussian components and dimensions if the parameter is a scalar.",
-  "",
-  true
-)
-.add_prototype("input")
-.add_parameter("input", "array_like <float, 1D>", "Input vector");
-static PyObject* PyBobLearnMiscGMMMachine_setVarianceThresholds_method(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = set_variance_thresholds.kwlist(0);
-
-  PyBlitzArrayObject* input_array = 0;
-  double input_number = 0;
-  if(PyArg_ParseTupleAndKeywords(args, kwargs, "d", kwlist, &input_number)){
-    self->cxx->setVarianceThresholds(input_number);
-  }
-  else if(PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter,&input_array)) {
-    //protects acquired resources through this scope
-    auto input_ = make_safe(input_array);
-    self->cxx->setVarianceThresholds(*PyBlitzArrayCxx_AsBlitz<double,1>(input_array));
-  }
-  else
-    return 0;
-
-
-
-  BOB_CATCH_MEMBER("cannot accumulate set the variance threshold", 0)
-  Py_RETURN_NONE;
-}
-
-
-
-
-/*** get_gaussian ***/
-static auto get_gaussian = bob::extension::FunctionDoc(
-  "get_gaussian",
-  "Get the specified Gaussian component.",
-  ".. note:: An exception is thrown if i is out of range.", 
-  true
-)
-.add_prototype("i","gaussian")
-.add_parameter("i", "int", "Index of the gaussian")
-.add_return("gaussian",":py:class:`bob.learn.misc.Gaussian`","Gaussian object");
-static PyObject* PyBobLearnMiscGMMMachine_get_gaussian(PyBobLearnMiscGMMMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_gaussian.kwlist(0);
-
-  int i = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
- 
-  boost::shared_ptr<bob::learn::misc::Gaussian> gaussian = self->cxx->getGaussian(i);
-
-  //Allocating the correspondent python object
-  PyBobLearnMiscGaussianObject* retval =
-    (PyBobLearnMiscGaussianObject*)PyBobLearnMiscGaussian_Type.tp_alloc(&PyBobLearnMiscGaussian_Type, 0);
-
-  retval->cxx = gaussian;
-   
-  //return reinterpret_cast<PyObject*>(retval);
-  return Py_BuildValue("O",retval);
-
-  BOB_CATCH_MEMBER("cannot compute the likelihood", 0)
-}
-
-
-
-static PyMethodDef PyBobLearnMiscGMMMachine_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    resize.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_resize,
-    METH_VARARGS|METH_KEYWORDS,
-    resize.doc()
-  },
-  {
-    log_likelihood.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_loglikelihood,
-    METH_VARARGS|METH_KEYWORDS,
-    log_likelihood.doc()
-  },
-  {
-    log_likelihood_.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_loglikelihood_,
-    METH_VARARGS|METH_KEYWORDS,
-    log_likelihood_.doc()
-  },
-  {
-    acc_statistics.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_accStatistics,
-    METH_VARARGS|METH_KEYWORDS,
-    acc_statistics.doc()
-  },
-  {
-    acc_statistics_.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_accStatistics_,
-    METH_VARARGS|METH_KEYWORDS,
-    acc_statistics_.doc()
-  },
- 
-  {
-    get_gaussian.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_get_gaussian,
-    METH_VARARGS|METH_KEYWORDS,
-    get_gaussian.doc()
-  },
-
-  {
-    set_variance_thresholds.name(),
-    (PyCFunction)PyBobLearnMiscGMMMachine_setVarianceThresholds_method,
-    METH_VARARGS|METH_KEYWORDS,
-    set_variance_thresholds.doc()
-  },
-  
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscGMMMachine_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscGMMMachine(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscGMMMachine_Type.tp_name = GMMMachine_doc.name();
-  PyBobLearnMiscGMMMachine_Type.tp_basicsize = sizeof(PyBobLearnMiscGMMMachineObject);
-  PyBobLearnMiscGMMMachine_Type.tp_flags = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscGMMMachine_Type.tp_doc = GMMMachine_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscGMMMachine_Type.tp_new = PyType_GenericNew;
-  PyBobLearnMiscGMMMachine_Type.tp_init = reinterpret_cast<initproc>(PyBobLearnMiscGMMMachine_init);
-  PyBobLearnMiscGMMMachine_Type.tp_dealloc = reinterpret_cast<destructor>(PyBobLearnMiscGMMMachine_delete);
-  PyBobLearnMiscGMMMachine_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscGMMMachine_RichCompare);
-  PyBobLearnMiscGMMMachine_Type.tp_methods = PyBobLearnMiscGMMMachine_methods;
-  PyBobLearnMiscGMMMachine_Type.tp_getset = PyBobLearnMiscGMMMachine_getseters;
-  PyBobLearnMiscGMMMachine_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscGMMMachine_loglikelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscGMMMachine_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscGMMMachine_Type);
-  return PyModule_AddObject(module, "GMMMachine", (PyObject*)&PyBobLearnMiscGMMMachine_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/gmm_stats.cpp b/bob/learn/misc/gmm_stats.cpp
deleted file mode 100644
index 9f859ff..0000000
--- a/bob/learn/misc/gmm_stats.cpp
+++ /dev/null
@@ -1,623 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Wed 03 Dec 14:38:48 2014
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto GMMStats_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".GMMStats",
-  "A container for GMM statistics",
-  "With respect to [Reynolds2000]_ the class computes: \n\n"
-  "* Eq (8) is :py:class:`bob.learn.misc.GMMStats.n`: :math:`n_i=\\sum\\limits_{t=1}^T Pr(i | x_t)`\n\n"
-  "* Eq (9) is :py:class:`bob.learn.misc.GMMStats.sum_px`:  :math:`E_i(x)=\\frac{1}{n(i)}\\sum\\limits_{t=1}^T Pr(i | x_t)x_t`\n\n"
-  "* Eq (10) is :py:class:`bob.learn.misc.GMMStats.sum_pxx`: :math:`E_i(x^2)=\\frac{1}{n(i)}\\sum\\limits_{t=1}^T Pr(i | x_t)x_t^2`\n\n"
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "A container for GMM statistics.",
-    "",
-    true
-  )
-  .add_prototype("n_gaussians,n_inputs","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-  .add_prototype("","")
-
-  .add_parameter("n_gaussians", "int", "Number of gaussians")
-  .add_parameter("n_inputs", "int", "Dimension of the feature vector")
-  .add_parameter("other", ":py:class:`bob.learn.misc.GMMStats`", "A GMMStats object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscGMMStats_init_number(PyBobLearnMiscGMMStatsObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = GMMStats_doc.kwlist(0);
-  int n_inputs    = 1;
-  int n_gaussians = 1;
-  //Parsing the input argments
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_gaussians, &n_inputs))
-    return -1;
-
-  if(n_gaussians < 0){
-    PyErr_Format(PyExc_TypeError, "gaussians argument must be greater than or equal to zero");
-    GMMStats_doc.print_usage();
-    return -1;
-  }
-
-  if(n_inputs < 0){
-    PyErr_Format(PyExc_TypeError, "input argument must be greater than or equal to zero");
-    GMMStats_doc.print_usage();
-    return -1;
-   }
-
-  self->cxx.reset(new bob::learn::misc::GMMStats(n_gaussians, n_inputs));
-  return 0;
-}
-
-
-static int PyBobLearnMiscGMMStats_init_copy(PyBobLearnMiscGMMStatsObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = GMMStats_doc.kwlist(1);
-  PyBobLearnMiscGMMStatsObject* tt;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMStats_Type, &tt)){
-    GMMStats_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::GMMStats(*tt->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscGMMStats_init_hdf5(PyBobLearnMiscGMMStatsObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = GMMStats_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    GMMStats_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::GMMStats(*(config->f)));
-
-  return 0;
-}
-
-
-
-static int PyBobLearnMiscGMMStats_init(PyBobLearnMiscGMMStatsObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  switch (nargs) {
-
-    case 0: //default initializer ()
-      self->cxx.reset(new bob::learn::misc::GMMStats());
-      return 0;
-
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-
-      /**If the constructor input is Gaussian object**/	
-     if (PyBobLearnMiscGMMStats_Check(arg))
-       return PyBobLearnMiscGMMStats_init_copy(self, args, kwargs);
-      /**If the constructor input is a HDF5**/
-     else if (PyBobIoHDF5File_Check(arg))
-       return PyBobLearnMiscGMMStats_init_hdf5(self, args, kwargs);
-    }
-    case 2:
-      return PyBobLearnMiscGMMStats_init_number(self, args, kwargs);
-    default:
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 0, 1 or 2 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      GMMStats_doc.print_usage();
-      return -1;
-  }
-  BOB_CATCH_MEMBER("cannot create GMMStats", 0)
-  return 0;
-}
-
-
-
-static void PyBobLearnMiscGMMStats_delete(PyBobLearnMiscGMMStatsObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscGMMStats_RichCompare(PyBobLearnMiscGMMStatsObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscGMMStats_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscGMMStatsObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare GMMStats objects", 0)
-}
-
-int PyBobLearnMiscGMMStats_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscGMMStats_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** n *****/
-static auto n = bob::extension::VariableDoc(
-  "n",
-  "array_like <float, 1D>",
-  "For each Gaussian, the accumulated sum of responsibilities, i.e. the sum of :math:`P(gaussian_i|x)`"
-);
-PyObject* PyBobLearnMiscGMMStats_getN(PyBobLearnMiscGMMStatsObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->n);
-  BOB_CATCH_MEMBER("n could not be read", 0)
-}
-int PyBobLearnMiscGMMStats_setN(PyBobLearnMiscGMMStatsObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, n.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "n");
-  if (!b) return -1;
-  self->cxx->n = *b;
-  return 0;
-  BOB_CATCH_MEMBER("n could not be set", -1)  
-}
-
-
-/***** sum_px *****/
-static auto sum_px = bob::extension::VariableDoc(
-  "sum_px",
-  "array_like <float, 2D>",
-  "For each Gaussian, the accumulated sum of responsibility times the sample"
-);
-PyObject* PyBobLearnMiscGMMStats_getSum_px(PyBobLearnMiscGMMStatsObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->sumPx);
-  BOB_CATCH_MEMBER("sum_px could not be read", 0)
-}
-int PyBobLearnMiscGMMStats_setSum_px(PyBobLearnMiscGMMStatsObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, sum_px.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "sum_px");
-  if (!b) return -1;
-  self->cxx->sumPx = *b;
-  return 0;
-  BOB_CATCH_MEMBER("sum_px could not be set", -1)  
-}
-
-
-/***** sum_pxx *****/
-static auto sum_pxx = bob::extension::VariableDoc(
-  "sum_pxx",
-  "array_like <float, 2D>",
-  "For each Gaussian, the accumulated sum of responsibility times the sample squared"
-);
-PyObject* PyBobLearnMiscGMMStats_getSum_pxx(PyBobLearnMiscGMMStatsObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->sumPxx);
-  BOB_CATCH_MEMBER("sum_pxx could not be read", 0)
-}
-int PyBobLearnMiscGMMStats_setSum_pxx(PyBobLearnMiscGMMStatsObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, sum_pxx.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "sum_pxx");
-  if (!b) return -1;
-  self->cxx->sumPxx = *b;
-  return 0;
-  BOB_CATCH_MEMBER("sum_pxx could not be set", -1)  
-}
-
-
-/***** t *****/
-static auto t = bob::extension::VariableDoc(
-  "t",
-  "int",
-  "The number of samples"
-);
-PyObject* PyBobLearnMiscGMMStats_getT(PyBobLearnMiscGMMStatsObject* self, void*){
-  BOB_TRY
-  return Py_BuildValue("i", self->cxx->T);
-  BOB_CATCH_MEMBER("t could not be read", 0)
-}
-int PyBobLearnMiscGMMStats_setT(PyBobLearnMiscGMMStatsObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyInt_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an int", Py_TYPE(self)->tp_name, t.name());
-    return -1;
-  }
-
-  if (PyInt_AS_LONG(value) < 0){
-    PyErr_Format(PyExc_TypeError, "t must be greater than or equal to zero");
-    return -1;
-  }
-
-  self->cxx->T = PyInt_AS_LONG(value);
-  BOB_CATCH_MEMBER("t could not be set", -1)
-  return 0;
-}
-
-
-/***** log_likelihood *****/
-static auto log_likelihood = bob::extension::VariableDoc(
-  "log_likelihood",
-  "double",
-  "The accumulated log likelihood of all samples"
-);
-PyObject* PyBobLearnMiscGMMStats_getLog_likelihood(PyBobLearnMiscGMMStatsObject* self, void*){
-  BOB_TRY
-  return Py_BuildValue("d","log_likelihood", self->cxx->log_likelihood);
-  BOB_CATCH_MEMBER("log_likelihood could not be read", 0)
-}
-int PyBobLearnMiscGMMStats_setLog_likelihood(PyBobLearnMiscGMMStatsObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyNumber_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an double", Py_TYPE(self)->tp_name, t.name());
-    return -1;
-  }
-
-  self->cxx->log_likelihood = PyFloat_AsDouble(value);
-  return 0;
-  BOB_CATCH_MEMBER("log_likelihood could not be set", -1)
-}
-
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int)",
-  "A tuple that represents the number of gaussians and dimensionality of each Gaussian ``(n_gaussians, dim)``.",
-  ""
-);
-PyObject* PyBobLearnMiscGMMStats_getShape(PyBobLearnMiscGMMStatsObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i)", self->cxx->sumPx.shape()[0], self->cxx->sumPx.shape()[1]);
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-
-
-static PyGetSetDef PyBobLearnMiscGMMStats_getseters[] = {
-  {
-    n.name(),
-    (getter)PyBobLearnMiscGMMStats_getN,
-    (setter)PyBobLearnMiscGMMStats_setN,
-    n.doc(),
-    0
-  },
-  {
-    sum_px.name(),
-    (getter)PyBobLearnMiscGMMStats_getSum_px,
-    (setter)PyBobLearnMiscGMMStats_setSum_px,
-    sum_px.doc(),
-    0
-  },
-  {
-    sum_pxx.name(),
-    (getter)PyBobLearnMiscGMMStats_getSum_pxx,
-    (setter)PyBobLearnMiscGMMStats_setSum_pxx,
-    sum_pxx.doc(),
-    0
-  },
-  {
-    t.name(),
-    (getter)PyBobLearnMiscGMMStats_getT,
-    (setter)PyBobLearnMiscGMMStats_setT,
-    t.doc(),
-    0
-  },
-  {
-    log_likelihood.name(),
-    (getter)PyBobLearnMiscGMMStats_getLog_likelihood,
-    (setter)PyBobLearnMiscGMMStats_setLog_likelihood,
-    log_likelihood.doc(),
-    0
-  },  
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscGMMStats_getShape,
-   0,
-   shape.doc(),
-   0
-  },
-
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the GMMStats to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscGMMStats_Save(PyBobLearnMiscGMMStatsObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the GMMStats to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscGMMStats_Load(PyBobLearnMiscGMMStatsObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this GMMStats with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.GMMStats`", "A GMMStats object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscGMMStats_IsSimilarTo(PyBobLearnMiscGMMStatsObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscGMMStatsObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscGMMStats_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** resize ***/
-static auto resize = bob::extension::FunctionDoc(
-  "resize",
-  "Allocates space for the statistics and resets to zero.",
-  0,
-  true
-)
-.add_prototype("n_gaussians,n_inputs")
-.add_parameter("n_gaussians", "int", "Number of gaussians")
-.add_parameter("n_inputs", "int", "Dimensionality of the feature vector");
-static PyObject* PyBobLearnMiscGMMStats_resize(PyBobLearnMiscGMMStatsObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = resize.kwlist(0);
-
-  int n_gaussians = 0;
-  int n_inputs = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_gaussians, &n_inputs)) Py_RETURN_NONE;
-
-  if (n_gaussians <= 0){
-    PyErr_Format(PyExc_TypeError, "n_gaussians must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-  if (n_inputs <= 0){
-    PyErr_Format(PyExc_TypeError, "n_inputs must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-
-
-  self->cxx->resize(n_gaussians, n_inputs);
-
-  BOB_CATCH_MEMBER("cannot perform the resize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** init ***/
-static auto init = bob::extension::FunctionDoc(
-  "init",
-  " Resets statistics to zero."
-)
-.add_prototype("");
-static PyObject* PyBobLearnMiscGMMStats_init_method(PyBobLearnMiscGMMStatsObject* self) {
-  BOB_TRY
-
-  self->cxx->init();
-
-  BOB_CATCH_MEMBER("cannot perform the init method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-static PyMethodDef PyBobLearnMiscGMMStats_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscGMMStats_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscGMMStats_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscGMMStats_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    resize.name(),
-    (PyCFunction)PyBobLearnMiscGMMStats_resize,
-    METH_VARARGS|METH_KEYWORDS,
-    resize.doc()
-  },
-  {
-    init.name(),
-    (PyCFunction)PyBobLearnMiscGMMStats_init_method,
-    METH_NOARGS,
-    init.doc()
-  },
-
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Operators *******************************************/
-/******************************************************************/
-
-static PyBobLearnMiscGMMStatsObject* PyBobLearnMiscGMMStats_inplaceadd(PyBobLearnMiscGMMStatsObject* self, PyObject* other) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscGMMStats_Check(other)){
-    PyErr_Format(PyExc_TypeError, "expected bob.learn.misc.GMMStats object");
-    return 0;
-  }
-
-  auto other_ = reinterpret_cast<PyBobLearnMiscGMMStatsObject*>(other);
-
-  self->cxx->operator+=(*other_->cxx);
-
-  BOB_CATCH_MEMBER("it was not possible to process the operator +=", 0)
-
-  Py_INCREF(self);
-  return self;
-}
-
-static PyNumberMethods PyBobLearnMiscGMMStats_operators = {0};
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscGMMStats_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscGMMStats(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscGMMStats_Type.tp_name = GMMStats_doc.name();
-  PyBobLearnMiscGMMStats_Type.tp_basicsize = sizeof(PyBobLearnMiscGMMStatsObject);
-  PyBobLearnMiscGMMStats_Type.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_INPLACEOPS;
-  PyBobLearnMiscGMMStats_Type.tp_doc = GMMStats_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscGMMStats_Type.tp_new = PyType_GenericNew;
-  PyBobLearnMiscGMMStats_Type.tp_init = reinterpret_cast<initproc>(PyBobLearnMiscGMMStats_init);
-  PyBobLearnMiscGMMStats_Type.tp_dealloc = reinterpret_cast<destructor>(PyBobLearnMiscGMMStats_delete);
-  PyBobLearnMiscGMMStats_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscGMMStats_RichCompare);
-  PyBobLearnMiscGMMStats_Type.tp_methods = PyBobLearnMiscGMMStats_methods;
-  PyBobLearnMiscGMMStats_Type.tp_getset = PyBobLearnMiscGMMStats_getseters;
-  PyBobLearnMiscGMMStats_Type.tp_call = 0;
-  PyBobLearnMiscGMMStats_Type.tp_as_number = &PyBobLearnMiscGMMStats_operators;
-
-  //set operators
-  PyBobLearnMiscGMMStats_operators.nb_inplace_add = reinterpret_cast<binaryfunc>(PyBobLearnMiscGMMStats_inplaceadd);
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscGMMStats_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscGMMStats_Type);
-  return PyModule_AddObject(module, "GMMStats", (PyObject*)&PyBobLearnMiscGMMStats_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/include/bob.learn.misc/EMPCATrainer.h b/bob/learn/misc/include/bob.learn.misc/EMPCATrainer.h
deleted file mode 100644
index 753c78c..0000000
--- a/bob/learn/misc/include/bob.learn.misc/EMPCATrainer.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/**
- * @date Tue Oct 11 12:18:23 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief Expectation Maximization Algorithm for Principal Component
- * Analysis
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_EMPCA_TRAINER_H
-#define BOB_LEARN_MISC_EMPCA_TRAINER_H
-
-#include <bob.learn.linear/machine.h>
-#include <blitz/array.h>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief Trains a linear machine using an Expectation-Maximization algorithm
- * on the given dataset.\n
- * References:\n
- *  1. "Probabilistic Principal Component Analysis",
- *     Michael Tipping and Christopher Bishop,
- *     Journal of the Royal Statistical Society,
- *      Series B, 61, Part 3, pp. 611–622\n
- *  2. "EM Algorithms for PCA and SPCA",
- *     Sam Roweis, Neural Information Processing Systems 10 (NIPS'97),
- *     pp.626-632 (Sensible Principal Component Analysis part)\n
- *
- * Notations used are the ones from reference 1.\n
- * The probabilistic model is given by: \f$t = W x + \mu + \epsilon\f$\n
- *  - \f$t\f$ is the observed data (dimension \f$f\f$)\n
- *  - \f$W\f$ is a  projection matrix (dimension \f$f \times d\f$)\n
- *  - \f$x\f$ is the projected data (dimension \f$d < f\f$)\n
- *  - \f$\mu\f$ is the mean of the data (dimension \f$f\f$)\n
- *  - \f$\epsilon\f$ is the noise of the data (dimension \f$f\f$)
- *      Gaussian with zero-mean and covariance matrix \f$\sigma^2 Id\f$
- */
-class EMPCATrainer
-{
-  public: //api
-    /**
-     * @brief Initializes a new EM PCA trainer. The training stage will place the
-     * resulting components in the linear machine and set it up to
-     * extract the variable means automatically.
-     */
-    EMPCATrainer(bool compute_likelihood=true);
-
-    /**
-     * @brief Copy constructor
-     */
-    EMPCATrainer(const EMPCATrainer& other);
-
-    /**
-     * @brief (virtual) Destructor
-     */
-    virtual ~EMPCATrainer();
-
-    /**
-     * @brief Assignment operator
-     */
-    EMPCATrainer& operator=(const EMPCATrainer& other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const EMPCATrainer& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const EMPCATrainer& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const EMPCATrainer& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief This methods performs some initialization before the EM loop.
-     */
-    virtual void initialize(bob::learn::linear::Machine& machine,
-      const blitz::Array<double,2>& ar);
-
-    /**
-     * @brief Calculates and saves statistics across the dataset, and saves
-     * these as m_z_{first,second}_order.
-     *
-     * The statistics will be used in the mStep() that follows.
-     */
-    virtual void eStep(bob::learn::linear::Machine& machine,
-      const blitz::Array<double,2>& ar);
-
-    /**
-     * @brief Performs a maximization step to update the parameters of the
-     * factor analysis model.
-     */
-    virtual void mStep(bob::learn::linear::Machine& machine,
-       const blitz::Array<double,2>& ar);
-
-    /**
-     * @brief Computes the average log likelihood using the current estimates
-     * of the latent variables.
-     */
-    virtual double computeLikelihood(bob::learn::linear::Machine& machine);
-
-    /**
-     * @brief Sets \f$\sigma^2\f$ (Mostly for test purpose)
-     */
-    void setSigma2(double sigma2) { m_sigma2 = sigma2; }
-
-    /**
-     * @brief Gets \f$\sigma^2\f$ (Mostly for test purpose)
-     */
-    double getSigma2() const { return m_sigma2; }
-
-    /**
-     * @brief Sets the Random Number Generator
-     */
-    void setRng(const boost::shared_ptr<boost::mt19937> rng)
-    { m_rng = rng; }
-
-    /**
-     * @brief Gets the Random Number Generator
-     */
-    const boost::shared_ptr<boost::mt19937> getRng() const
-    { return m_rng; }
-
-
-  private: //representation
-
-    bool m_compute_likelihood;
-    boost::shared_ptr<boost::mt19937> m_rng;
-
-    blitz::Array<double,2> m_S; /// Covariance of the training data (required only if we need to compute the log likelihood)
-    blitz::Array<double,2> m_z_first_order; /// Current mean of the \f$z_{n}\f$ latent variable
-    blitz::Array<double,3> m_z_second_order; /// Current covariance of the \f$z_{n}\f$ latent variable
-    blitz::Array<double,2> m_inW; /// The matrix product \f$W^T W\f$
-    blitz::Array<double,2> m_invM; /// The matrix \f$inv(M)\f$, where \f$M = W^T W + \sigma^2 Id\f$
-    double m_sigma2; /// The variance \f$sigma^2\f$ of the noise epsilon of the probabilistic model
-    double m_f_log2pi; /// The constant \f$n_{features} log(2*\pi)\f$ used during the likelihood computation
-
-    // Working arrays
-    mutable blitz::Array<double,2> m_tmp_dxf; /// size dimensionality x n_features
-    mutable blitz::Array<double,1> m_tmp_d; /// size dimensionality
-    mutable blitz::Array<double,1> m_tmp_f; /// size n_features
-    mutable blitz::Array<double,2> m_tmp_dxd_1; /// size dimensionality x dimensionality
-    mutable blitz::Array<double,2> m_tmp_dxd_2; /// size dimensionality x dimensionality
-    mutable blitz::Array<double,2> m_tmp_fxd_1; /// size n_features x dimensionality
-    mutable blitz::Array<double,2> m_tmp_fxd_2; /// size n_features x dimensionality
-    mutable blitz::Array<double,2> m_tmp_fxf_1; /// size n_features x n_features
-    mutable blitz::Array<double,2> m_tmp_fxf_2; /// size n_features x n_features
-
-
-    /**
-     * @brief Initializes/resizes the (array) members
-     */
-    void initMembers(const bob::learn::linear::Machine& machine,
-      const blitz::Array<double,2>& ar);
-    /**
-     * @brief Computes the mean and the variance (if required) of the training
-     * data
-     */
-    void computeMeanVariance(bob::learn::linear::Machine& machine,
-      const blitz::Array<double,2>& ar);
-    /**
-     * @brief Random initialization of \f$W\f$ and \f$sigma^2\f$.
-     * W is the projection matrix (from the LinearMachine)
-     */
-    void initRandomWSigma2(bob::learn::linear::Machine& machine);
-    /**
-     * @brief Computes the product \f$W^T W\f$.
-     * \f$W\f$ is the projection matrix (from the LinearMachine)
-     */
-    void computeWtW(bob::learn::linear::Machine& machine);
-    /**
-     * @brief Computes the inverse of \f$M\f$ matrix, where
-     *   \f$M = W^T W + \sigma^2 Id\f$.
-     *   \f$W\f$ is the projection matrix (from the LinearMachine)
-     */
-    void computeInvM();
-    /**
-     * @brief M-Step (part 1): Computes the new estimate of \f$W\f$ using the
-     * new estimated statistics.
-     */
-    void updateW(bob::learn::linear::Machine& machine,
-       const blitz::Array<double,2>& ar);
-    /**
-     * @brief M-Step (part 2): Computes the new estimate of \f$\sigma^2\f$ using
-     * the new estimated statistics.
-     */
-    void updateSigma2(bob::learn::linear::Machine& machine,
-       const blitz::Array<double,2>& ar);
-};
-
-} } } // namespaces
-
-#endif /* BOB_LEARN_MISC_EMPCA_TRAINER_H */
diff --git a/bob/learn/misc/include/bob.learn.misc/FABase.h b/bob/learn/misc/include/bob.learn.misc/FABase.h
deleted file mode 100644
index 35b1667..0000000
--- a/bob/learn/misc/include/bob.learn.misc/FABase.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/**
- * @date Tue Jan 27 15:51:15 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief A base class for Factor Analysis
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_FABASE_H
-#define BOB_LEARN_MISC_FABASE_H
-
-#include <stdexcept>
-
-#include <bob.learn.misc/GMMMachine.h>
-#include <boost/shared_ptr.hpp>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief A FA Base class which contains U, V and D matrices
- * TODO: add a reference to the journal articles
- */
-class FABase
-{
-  public:
-    /**
-     * @brief Default constructor. Builds an otherwise invalid 0 x 0 FABase
-     * The Universal Background Model and the matrices U, V and diag(d) are
-     * not initialized.
-     */
-    FABase();
-
-    /**
-     * @brief Constructor. Builds a new FABase.
-     * The Universal Background Model and the matrices U, V and diag(d) are
-     * not initialized.
-     *
-     * @param ubm The Universal Background Model
-     * @param ru size of U (CD x ru)
-     * @param rv size of U (CD x rv)
-     * @warning ru and rv SHOULD BE  >= 1. Just set U/V/D to zero if you want
-     *   to ignore one subspace. This is the case for ISV.
-     */
-    FABase(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm, const size_t ru=1, const size_t rv=1);
-
-    /**
-     * @brief Copy constructor
-     */
-    FABase(const FABase& other);
-
-    /**
-     * @brief Just to virtualise the destructor
-     */
-    virtual ~FABase();
-
-    /**
-     * @brief Assigns from a different JFA machine
-     */
-    FABase& operator=(const FABase &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const FABase& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const FABase& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const FABase& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Returns the UBM
-     */
-    const boost::shared_ptr<bob::learn::misc::GMMMachine> getUbm() const
-    { return m_ubm; }
-
-    /**
-     * @brief Returns the U matrix
-     */
-    const blitz::Array<double,2>& getU() const
-    { return m_U; }
-
-    /**
-     * @brief Returns the V matrix
-     */
-    const blitz::Array<double,2>& getV() const
-    { return m_V; }
-
-    /**
-     * @brief Returns the diagonal matrix diag(d) (as a 1D vector)
-     */
-    const blitz::Array<double,1>& getD() const
-    { return m_d; }
-
-    /**
-     * @brief Returns the UBM mean supervector (as a 1D vector)
-     */
-    const blitz::Array<double,1>& getUbmMean() const
-    { return m_cache_mean; }
-
-    /**
-     * @brief Returns the UBM variance supervector (as a 1D vector)
-     */
-    const blitz::Array<double,1>& getUbmVariance() const
-    { return m_cache_sigma; }
-
-    /**
-     * @brief Returns the number of Gaussian components C
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNGaussians() const
-    { if(!m_ubm) throw std::runtime_error("No UBM was set in the JFA machine.");
-      return m_ubm->getNGaussians(); }
-
-    /**
-     * @brief Returns the feature dimensionality D
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNInputs() const
-    { if(!m_ubm) throw std::runtime_error("No UBM was set in the JFA machine.");
-      return m_ubm->getNInputs(); }
-
-    /**
-     * @brief Returns the supervector length CD
-     * (CxD: Number of Gaussian components by the feature dimensionality)
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getSupervectorLength() const
-    { if(!m_ubm) throw std::runtime_error("No UBM was set in the JFA machine.");
-      return m_ubm->getNInputs()*m_ubm->getNGaussians(); }
-
-    /**
-     * @brief Returns the size/rank ru of the U matrix
-     */
-    const size_t getDimRu() const
-    { return m_ru; }
-
-    /**
-     * @brief Returns the size/rank rv of the V matrix
-     */
-    const size_t getDimRv() const
-    { return m_rv; }
-
-    /**
-     * @brief Resets the dimensionality of the subspace U and V
-     * U and V are hence uninitialized.
-     */
-    void resize(const size_t ru, const size_t rv);
-
-    /**
-     * @brief Resets the dimensionality of the subspace U and V,
-     * assuming that no UBM has yet been set
-     * U and V are hence uninitialized.
-     */
-    void resize(const size_t ru, const size_t rv, const size_t cd);
-
-    /**
-     * @brief Returns the U matrix in order to update it
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,2>& updateU()
-    { return m_U; }
-
-    /**
-     * @brief Returns the V matrix in order to update it
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,2>& updateV()
-    { return m_V; }
-
-    /**
-     * @brief Returns the diagonal matrix diag(d) (as a 1D vector) in order
-     * to update it
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,1>& updateD()
-    { return m_d; }
-
-
-    /**
-     * @brief Sets (the mean supervector of) the Universal Background Model
-     * U, V and d are uninitialized in case of dimensions update (C or D)
-     */
-    void setUbm(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm);
-
-    /**
-     * @brief Sets the U matrix
-     */
-    void setU(const blitz::Array<double,2>& U);
-
-    /**
-     * @brief Sets the V matrix
-     */
-    void setV(const blitz::Array<double,2>& V);
-
-    /**
-     * @brief Sets the diagonal matrix diag(d)
-     * (a 1D vector is expected as an argument)
-     */
-    void setD(const blitz::Array<double,1>& d);
-
-
-    /**
-     * @brief Estimates x from the GMM statistics considering the LPT
-     * assumption, that is the latent session variable x is approximated
-     * using the UBM
-     */
-    void estimateX(const bob::learn::misc::GMMStats& gmm_stats, blitz::Array<double,1>& x) const;
-
-    /**
-     * @brief Compute and put U^{T}.Sigma^{-1} matrix in cache
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    void updateCacheUbmUVD();
-
-
-  private:
-    /**
-     * @brief Update cache arrays/variables
-     */
-    void updateCache();
-    /**
-     * @brief Put GMM mean/variance supervector in cache
-     */
-    void updateCacheUbm();
-    /**
-     * @brief Resize working arrays
-     */
-    void resizeTmp();
-    /**
-     * @brief Computes (Id + U^T.Sigma^-1.U.N_{i,h}.U)^-1 =
-     *   (Id + sum_{c=1..C} N_{i,h}.U_{c}^T.Sigma_{c}^-1.U_{c})^-1
-     */
-    void computeIdPlusUSProdInv(const bob::learn::misc::GMMStats& gmm_stats,
-      blitz::Array<double,2>& out) const;
-    /**
-     * @brief Computes Fn_x = sum_{sessions h}(N*(o - m))
-     * (Normalised first order statistics)
-     */
-    void computeFn_x(const bob::learn::misc::GMMStats& gmm_stats,
-      blitz::Array<double,1>& out) const;
-    /**
-     * @brief Estimates the value of x from the passed arguments
-     * (IdPlusUSProdInv and Fn_x), considering the LPT assumption
-     */
-    void estimateX(const blitz::Array<double,2>& IdPlusUSProdInv,
-      const blitz::Array<double,1>& Fn_x, blitz::Array<double,1>& x) const;
-
-
-    // UBM
-    boost::shared_ptr<bob::learn::misc::GMMMachine> m_ubm;
-
-    // dimensionality
-    size_t m_ru; // size of U (CD x ru)
-    size_t m_rv; // size of V (CD x rv)
-
-    // U, V, D matrices
-    // D is assumed to be diagonal, and only the diagonal is stored
-    blitz::Array<double,2> m_U;
-    blitz::Array<double,2> m_V;
-    blitz::Array<double,1> m_d;
-
-    // Vectors/Matrices precomputed in cache
-    blitz::Array<double,1> m_cache_mean;
-    blitz::Array<double,1> m_cache_sigma;
-    blitz::Array<double,2> m_cache_UtSigmaInv;
-
-    mutable blitz::Array<double,2> m_tmp_IdPlusUSProdInv;
-    mutable blitz::Array<double,1> m_tmp_Fn_x;
-    mutable blitz::Array<double,1> m_tmp_ru;
-    mutable blitz::Array<double,2> m_tmp_ruD;
-    mutable blitz::Array<double,2> m_tmp_ruru;
-};
-
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_FABASE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/FABaseTrainer.h b/bob/learn/misc/include/bob.learn.misc/FABaseTrainer.h
deleted file mode 100644
index c5b2734..0000000
--- a/bob/learn/misc/include/bob.learn.misc/FABaseTrainer.h
+++ /dev/null
@@ -1,350 +0,0 @@
-/**
- * @date Sat Jan 31 17:16:17 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief FABaseTrainer functions
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_FABASETRAINER_H
-#define BOB_LEARN_MISC_FABASETRAINER_H
-
-#include <blitz/array.h>
-#include <bob.learn.misc/GMMStats.h>
-#include <bob.learn.misc/JFAMachine.h>
-#include <vector>
-
-#include <map>
-#include <string>
-#include <bob.core/array_copy.h>
-#include <boost/shared_ptr.hpp>
-#include <boost/random.hpp>
-#include <bob.core/logging.h>
-
-namespace bob { namespace learn { namespace misc {
-
-class FABaseTrainer
-{
-  public:
-    /**
-     * @brief Constructor
-     */
-    FABaseTrainer();
-
-    /**
-     * @brief Copy constructor
-     */
-    FABaseTrainer(const FABaseTrainer& other);
-
-    /**
-     * @brief Destructor
-     */
-    ~FABaseTrainer();
-
-    /**
-     * @brief Check that the dimensionality of the statistics match.
-     */
-    void checkStatistics(const bob::learn::misc::FABase& m,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-
-    /**
-     * @brief Initialize the dimensionality, the UBM, the sums of the
-     * statistics and the number of identities.
-     */
-    void initUbmNidSumStatistics(const bob::learn::misc::FABase& m,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-
-    /**
-     * @brief Precomputes the sums of the zeroth order statistics over the
-     * sessions for each client
-     */
-    void precomputeSumStatisticsN(const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-    /**
-     * @brief Precomputes the sums of the first order statistics over the
-     * sessions for each client
-     */
-    void precomputeSumStatisticsF(const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-
-    /**
-     * @brief Initializes (allocates and sets to zero) the x, y, z speaker
-     * factors
-     */
-    void initializeXYZ(const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-
-    /**
-     * @brief Resets the x, y, z speaker factors to zero values
-     */
-    void resetXYZ();
-
-
-    /**** Y and V functions ****/
-    /**
-     * @brief Computes Vt * diag(sigma)^-1
-     */
-    void computeVtSigmaInv(const bob::learn::misc::FABase& m);
-    /**
-     * @brief Computes Vt_{c} * diag(sigma)^-1 * V_{c} for each Gaussian c
-     */
-    void computeVProd(const bob::learn::misc::FABase& m);
-    /**
-     * @brief Computes (I+Vt*diag(sigma)^-1*Ni*V)^-1 which occurs in the y
-     * estimation for the given person
-     */
-    void computeIdPlusVProd_i(const size_t id);
-    /**
-     * @brief Computes sum_{sessions h}(N_{i,h}*(o_{i,h} - m - D*z_{i} - U*x_{i,h})
-     * which occurs in the y estimation of the given person
-     */
-    void computeFn_y_i(const bob::learn::misc::FABase& m,
-      const std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& stats,
-      const size_t id);
-    /**
-     * @brief Updates y_i (of the current person) and the accumulators to
-     * compute V with the cache values m_cache_IdPlusVprod_i, m_VtSigmaInv and
-     * m_cache_Fn_y_i
-     */
-    void updateY_i(const size_t id);
-    /**
-     * @brief Updates y and the accumulators to compute V
-     */
-    void updateY(const bob::learn::misc::FABase& m,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-    /**
-     * @brief Computes the accumulators m_acc_V_A1 and m_acc_V_A2 for V
-     * V = A2 * A1^-1
-     */
-    void computeAccumulatorsV(const bob::learn::misc::FABase& m,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-    /**
-     * @brief Updates V from the accumulators m_acc_V_A1 and m_acc_V_A2
-     */
-    void updateV(blitz::Array<double,2>& V);
-
-
-    /**** X and U functions ****/
-    /**
-     * @brief Computes Ut * diag(sigma)^-1
-     */
-    void computeUtSigmaInv(const bob::learn::misc::FABase& m);
-    /**
-     * @brief Computes Ut_{c} * diag(sigma)^-1 * U_{c} for each Gaussian c
-     */
-    void computeUProd(const bob::learn::misc::FABase& m);
-    /**
-     * @brief Computes (I+Ut*diag(sigma)^-1*Ni*U)^-1 which occurs in the x
-     * estimation
-     */
-    void computeIdPlusUProd_ih(const boost::shared_ptr<bob::learn::misc::GMMStats>& stats);
-    /**
-     * @brief Computes sum_{sessions h}(N_{i,h}*(o_{i,h} - m - D*z_{i} - U*x_{i,h})
-     * which occurs in the y estimation of the given person
-     */
-    void computeFn_x_ih(const bob::learn::misc::FABase& m,
-      const boost::shared_ptr<bob::learn::misc::GMMStats>& stats, const size_t id);
-    /**
-     * @brief Updates x_ih (of the current person/session) and the
-     * accumulators to compute U with the cache values m_cache_IdPlusVprod_i,
-     * m_VtSigmaInv and m_cache_Fn_y_i
-     */
-    void updateX_ih(const size_t id, const size_t h);
-    /**
-     * @brief Updates x
-     */
-    void updateX(const bob::learn::misc::FABase& m,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-    /**
-     * @brief Computes the accumulators m_acc_U_A1 and m_acc_U_A2 for U
-     * U = A2 * A1^-1
-     */
-    void computeAccumulatorsU(const bob::learn::misc::FABase& m,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-    /**
-     * @brief Updates U from the accumulators m_acc_U_A1 and m_acc_U_A2
-     */
-    void updateU(blitz::Array<double,2>& U);
-
-
-    /**** z and D functions ****/
-    /**
-     * @brief Computes diag(D) * diag(sigma)^-1
-     */
-    void computeDtSigmaInv(const bob::learn::misc::FABase& m);
-    /**
-     * @brief Computes Dt_{c} * diag(sigma)^-1 * D_{c} for each Gaussian c
-     */
-    void computeDProd(const bob::learn::misc::FABase& m);
-    /**
-     * @brief Computes (I+diag(d)t*diag(sigma)^-1*Ni*diag(d))^-1 which occurs
-     * in the z estimation for the given person
-     */
-    void computeIdPlusDProd_i(const size_t id);
-    /**
-     * @brief Computes sum_{sessions h}(N_{i,h}*(o_{i,h} - m - V*y_{i} - U*x_{i,h})
-     * which occurs in the y estimation of the given person
-     */
-    void computeFn_z_i(const bob::learn::misc::FABase& m,
-      const std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& stats, const size_t id);
-    /**
-     * @brief Updates z_i (of the current person) and the accumulators to
-     * compute D with the cache values m_cache_IdPlusDProd_i, m_VtSigmaInv
-     * and m_cache_Fn_z_i
-     */
-    void updateZ_i(const size_t id);
-    /**
-     * @brief Updates z and the accumulators to compute D
-     */
-    void updateZ(const bob::learn::misc::FABase& m,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-    /**
-     * @brief Computes the accumulators m_acc_D_A1 and m_acc_D_A2 for d
-     * d = A2 * A1^-1
-     */
-    void computeAccumulatorsD(const bob::learn::misc::FABase& m,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& stats);
-    /**
-     * @brief Updates d from the accumulators m_acc_D_A1 and m_acc_D_A2
-     */
-    void updateD(blitz::Array<double,1>& d);
-
-
-    /**
-     * @brief Get the zeroth order statistics
-     */
-    const std::vector<blitz::Array<double,1> >& getNacc() const
-    { return m_Nacc; }
-    /**
-     * @brief Get the first order statistics
-     */
-    const std::vector<blitz::Array<double,1> >& getFacc() const
-    { return m_Facc; }
-    /**
-     * @brief Get the x speaker factors
-     */
-    const std::vector<blitz::Array<double,2> >& getX() const
-    { return m_x; }
-    /**
-     * @brief Get the y speaker factors
-     */
-    const std::vector<blitz::Array<double,1> >& getY() const
-    { return m_y; }
-    /**
-     * @brief Get the z speaker factors
-     */
-    const std::vector<blitz::Array<double,1> >& getZ() const
-    { return m_z; }
-    /**
-     * @brief Set the x speaker factors
-     */
-    void setX(const std::vector<blitz::Array<double,2> >& X)
-    { m_x = X; }
-    /**
-     * @brief Set the y speaker factors
-     */
-    void setY(const std::vector<blitz::Array<double,1> >& y)
-    { m_y = y; }
-    /**
-     * @brief Set the z speaker factors
-     */
-    void setZ(const std::vector<blitz::Array<double,1> >& z)
-    { m_z = z; }
-
-    /**
-     * @brief Initializes the cache to process the given statistics
-     */
-    void initCache();
-
-    /**
-     * @brief Getters for the accumulators
-     */
-    const blitz::Array<double,3>& getAccVA1() const
-    { return m_acc_V_A1; }
-    const blitz::Array<double,2>& getAccVA2() const
-    { return m_acc_V_A2; }
-    const blitz::Array<double,3>& getAccUA1() const
-    { return m_acc_U_A1; }
-    const blitz::Array<double,2>& getAccUA2() const
-    { return m_acc_U_A2; }
-    const blitz::Array<double,1>& getAccDA1() const
-    { return m_acc_D_A1; }
-    const blitz::Array<double,1>& getAccDA2() const
-    { return m_acc_D_A2; }
-
-    /**
-     * @brief Setters for the accumulators, Very useful if the e-Step needs
-     * to be parallelized.
-     */
-    void setAccVA1(const blitz::Array<double,3>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_V_A1);
-      m_acc_V_A1 = acc; }
-    void setAccVA2(const blitz::Array<double,2>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_V_A2);
-      m_acc_V_A2 = acc; }
-    void setAccUA1(const blitz::Array<double,3>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_U_A1);
-      m_acc_U_A1 = acc; }
-    void setAccUA2(const blitz::Array<double,2>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_U_A2);
-      m_acc_U_A2 = acc; }
-    void setAccDA1(const blitz::Array<double,1>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_D_A1);
-      m_acc_D_A1 = acc; }
-    void setAccDA2(const blitz::Array<double,1>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_D_A2);
-      m_acc_D_A2 = acc; }
-
-
-  private:
-    size_t m_Nid; // Number of identities
-    size_t m_dim_C; // Number of Gaussian components of the UBM GMM
-    size_t m_dim_D; // Dimensionality of the feature space
-    size_t m_dim_ru; // Rank of the U subspace
-    size_t m_dim_rv; // Rank of the V subspace
-
-    std::vector<blitz::Array<double,2> > m_x; // matrix x of speaker factors for eigenchannels U, for each client
-    std::vector<blitz::Array<double,1> > m_y; // vector y of spealer factors for eigenvoices V, for each client
-    std::vector<blitz::Array<double,1> > m_z; // vector z of spealer factors for eigenvoices Z, for each client
-
-    std::vector<blitz::Array<double,1> > m_Nacc; // Sum of the zeroth order statistics over the sessions for each client, dimension C
-    std::vector<blitz::Array<double,1> > m_Facc; // Sum of the first order statistics over the sessions for each client, dimension CD
-
-    // Accumulators for the M-step
-    blitz::Array<double,3> m_acc_V_A1;
-    blitz::Array<double,2> m_acc_V_A2;
-    blitz::Array<double,3> m_acc_U_A1;
-    blitz::Array<double,2> m_acc_U_A2;
-    blitz::Array<double,1> m_acc_D_A1;
-    blitz::Array<double,1> m_acc_D_A2;
-
-    // Cache/Precomputation
-    blitz::Array<double,2> m_cache_VtSigmaInv; // Vt * diag(sigma)^-1
-    blitz::Array<double,3> m_cache_VProd; // first dimension is the Gaussian id
-    blitz::Array<double,2> m_cache_IdPlusVProd_i;
-    blitz::Array<double,1> m_cache_Fn_y_i;
-
-    blitz::Array<double,2> m_cache_UtSigmaInv; // Ut * diag(sigma)^-1
-    blitz::Array<double,3> m_cache_UProd; // first dimension is the Gaussian id
-    blitz::Array<double,2> m_cache_IdPlusUProd_ih;
-    blitz::Array<double,1> m_cache_Fn_x_ih;
-
-    blitz::Array<double,1> m_cache_DtSigmaInv; // Dt * diag(sigma)^-1
-    blitz::Array<double,1> m_cache_DProd; // supervector length dimension
-    blitz::Array<double,1> m_cache_IdPlusDProd_i;
-    blitz::Array<double,1> m_cache_Fn_z_i;
-
-    // Working arrays
-    mutable blitz::Array<double,2> m_tmp_ruru;
-    mutable blitz::Array<double,2> m_tmp_ruD;
-    mutable blitz::Array<double,2> m_tmp_rvrv;
-    mutable blitz::Array<double,2> m_tmp_rvD;
-    mutable blitz::Array<double,1> m_tmp_rv;
-    mutable blitz::Array<double,1> m_tmp_ru;
-    mutable blitz::Array<double,1> m_tmp_CD;
-    mutable blitz::Array<double,1> m_tmp_CD_b;
-};
-
-
-} } } // namespaces
-
-#endif /* BOB_LEARN_MISC_FABASETRAINER_H */
diff --git a/bob/learn/misc/include/bob.learn.misc/GMMBaseTrainer.h b/bob/learn/misc/include/bob.learn.misc/GMMBaseTrainer.h
deleted file mode 100644
index 4015055..0000000
--- a/bob/learn/misc/include/bob.learn.misc/GMMBaseTrainer.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- *
- * @brief This class implements the E-step of the expectation-maximisation algorithm for a GMM Machine.
- * @details See Section 9.2.2 of Bishop, "Pattern recognition and machine learning", 2006
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_GMMBASETRAINER_H
-#define BOB_LEARN_MISC_GMMBASETRAINER_H
-
-#include <bob.learn.misc/GMMMachine.h>
-#include <bob.learn.misc/GMMStats.h>
-#include <limits>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief This class implements the E-step of the expectation-maximisation
- * algorithm for a GMM Machine.
- * @details See Section 9.2.2 of Bishop,
- *   "Pattern recognition and machine learning", 2006
- */
-class GMMBaseTrainer
-{
-  public:
-    /**
-     * @brief Default constructor
-     */
-    GMMBaseTrainer(const bool update_means=true,
-                   const bool update_variances=false, 
-                   const bool update_weights=false,
-                   const double mean_var_update_responsibilities_threshold = std::numeric_limits<double>::epsilon());
-
-    /**
-     * @brief Copy constructor
-     */
-    GMMBaseTrainer(const GMMBaseTrainer& other);
-
-    /**
-     * @brief Destructor
-     */
-    virtual ~GMMBaseTrainer();
-
-    /**
-     * @brief Initialization before the EM steps
-     */
-    void initialize(bob::learn::misc::GMMMachine& gmm);
-
-    /**
-     * @brief Calculates and saves statistics across the dataset,
-     * and saves these as m_ss. Calculates the average
-     * log likelihood of the observations given the GMM,
-     * and returns this in average_log_likelihood.
-     *
-     * The statistics, m_ss, will be used in the mStep() that follows.
-     * Implements EMTrainer::eStep(double &)
-     */
-     void eStep(bob::learn::misc::GMMMachine& gmm,
-      const blitz::Array<double,2>& data);
-
-    /**
-     * @brief Computes the likelihood using current estimates of the latent
-     * variables
-     */
-    double computeLikelihood(bob::learn::misc::GMMMachine& gmm);
-
-
-    /**
-     * @brief Assigns from a different GMMBaseTrainer
-     */
-    GMMBaseTrainer& operator=(const GMMBaseTrainer &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const GMMBaseTrainer& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const GMMBaseTrainer& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const GMMBaseTrainer& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Returns the internal GMM statistics. Useful to parallelize the
-     * E-step
-     */
-    const bob::learn::misc::GMMStats getGMMStats() const
-    { return m_ss; }
-
-    /**
-     * @brief Sets the internal GMM statistics. Useful to parallelize the
-     * E-step
-     */
-    void setGMMStats(const bob::learn::misc::GMMStats& stats);
-    
-    /**
-     * update means on each iteration
-     */    
-    bool getUpdateMeans()
-    {return m_update_means;}
-    
-    /**
-     * update variances on each iteration
-     */
-    bool getUpdateVariances()
-    {return m_update_variances;}
-
-
-    bool getUpdateWeights()
-    {return m_update_weights;}
-    
-    
-    double getMeanVarUpdateResponsibilitiesThreshold()
-    {return m_mean_var_update_responsibilities_threshold;}
-    
-
-  private:
-  
-    /**
-     * These are the sufficient statistics, calculated during the
-     * E-step and used during the M-step
-     */
-    bob::learn::misc::GMMStats m_ss;
-
-
-    /**
-     * update means on each iteration
-     */
-    bool m_update_means;
-
-    /**
-     * update variances on each iteration
-     */
-    bool m_update_variances;
-
-    /**
-     * update weights on each iteration
-     */
-    bool m_update_weights;
-
-    /**
-     * threshold over the responsibilities of the Gaussians
-     * Equations 9.24, 9.25 of Bishop, "Pattern recognition and machine learning", 2006
-     * require a division by the responsibilities, which might be equal to zero
-     * because of numerical issue. This threshold is used to avoid such divisions.
-     */
-    double m_mean_var_update_responsibilities_threshold;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_GMMBASETRAINER_H
diff --git a/bob/learn/misc/include/bob.learn.misc/GMMMachine.h b/bob/learn/misc/include/bob.learn.misc/GMMMachine.h
deleted file mode 100644
index bf3808a..0000000
--- a/bob/learn/misc/include/bob.learn.misc/GMMMachine.h
+++ /dev/null
@@ -1,371 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief This class implements a multivariate diagonal Gaussian distribution.
- * @details See Section 2.3.9 of Bishop, "Pattern recognition and machine learning", 2006
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_GMMMACHINE_H
-#define BOB_LEARN_MISC_GMMMACHINE_H
-
-#include <bob.learn.misc/Gaussian.h>
-#include <bob.learn.misc/GMMStats.h>
-#include <bob.io.base/HDF5File.h>
-#include <iostream>
-#include <boost/shared_ptr.hpp>
-#include <vector>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief This class implements a multivariate diagonal Gaussian distribution.
- * @details See Section 2.3.9 of Bishop, "Pattern recognition and machine learning", 2006
- */
-class GMMMachine
-{
-  public:
-    /**
-     * Default constructor
-     */
-    GMMMachine();
-
-    /**
-     * Constructor
-     * @param[in] n_gaussians  The number of Gaussian components
-     * @param[in] n_inputs     The feature dimensionality
-     */
-    GMMMachine(const size_t n_gaussians, const size_t n_inputs);
-
-    /**
-     * Copy constructor
-     * (Needed because the GMM points to its constituent Gaussian members)
-     */
-    GMMMachine(const GMMMachine& other);
-
-    /**
-     * Constructor from a Configuration
-     */
-    GMMMachine(bob::io::base::HDF5File& config);
-
-    /**
-     * Assignment
-     */
-    GMMMachine& operator=(const GMMMachine &other);
-
-    /**
-     * Equal to
-     */
-    bool operator==(const GMMMachine& b) const;
-
-    /**
-     * Not equal to
-     */
-    bool operator!=(const GMMMachine& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const GMMMachine& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * Destructor
-     */
-    virtual ~GMMMachine();
-
-
-    /**
-     * Reset the input dimensionality, and the number of Gaussian components.
-     * Initialises the weights to uniform distribution.
-     * @param n_gaussians The number of Gaussian components
-     * @param n_inputs    The feature dimensionality
-     */
-    void resize(const size_t n_gaussians, const size_t n_inputs);
-
-
-    /////////////////////////
-    // Getters
-    ////////////////////////
-
-    /**
-     * Get number of inputs
-     */
-    size_t getNInputs() const
-    { return m_n_inputs; }
-
-    /**
-     * Get the weights ("mixing coefficients") of the Gaussian components
-     */
-    const blitz::Array<double,1>& getWeights() const
-    { return m_weights; }
-
-    /**
-     * Get the logarithm of the weights of the Gaussian components
-     */
-    inline const blitz::Array<double,1>& getLogWeights() const
-    { return m_cache_log_weights; }
-
-
-    /**
-     * Get the means
-     */    
-    const blitz::Array<double,2> getMeans() const;
-    
-    /**
-     * Get the mean supervector
-     */
-    void getMeanSupervector(blitz::Array<double,1> &mean_supervector) const;
-    
-     /**
-     * Returns a const reference to the supervector (Put in cache)
-     */
-    const blitz::Array<double,1>& getMeanSupervector() const;
-        
-    /**
-     * Get the variances
-     */
-    const blitz::Array<double,2> getVariances() const;
-    
-    /**
-     * Returns a const reference to the supervector (Put in cache)
-     */
-    const blitz::Array<double,1>& getVarianceSupervector() const;
-    
-
-    /**
-     * Get the variance flooring thresholds for each Gaussian in each dimension
-     */
-    const blitz::Array<double,2> getVarianceThresholds() const;
-
-
-
-    ///////////////////////
-    // Setters
-    ///////////////////////
-
-    /**
-     * Set the weights
-     */
-    void setWeights(const blitz::Array<double,1> &weights);
-
-    /**
-     * Set the means
-     */
-    void setMeans(const blitz::Array<double,2> &means);
-    /**
-     * Set the means from a supervector
-     */
-    void setMeanSupervector(const blitz::Array<double,1> &mean_supervector);
-
-    /**
-     * Set the variances
-     */
-    void setVariances(const blitz::Array<double,2> &variances);
-    /**
-     * Set the variances from a supervector
-     */
-    void setVarianceSupervector(const blitz::Array<double,1> &variance_supervector);
-
-    /**
-     * Set the variance flooring thresholds in each dimension
-     */
-    void setVarianceThresholds(const double value);
-    /**
-     * Set the variance flooring thresholds in each dimension
-     * (equal for all Gaussian components)
-     */
-    void setVarianceThresholds(blitz::Array<double,1> variance_thresholds);
-    /**
-     * Set the variance flooring thresholds for each Gaussian in each dimension
-     */
-    void setVarianceThresholds(const blitz::Array<double,2> &variance_thresholds);
-
-
-    ////////////////
-    // Methods
-    /////////////////
-
-    /**
-     * Get the weights in order to be updated
-     * ("mixing coefficients") of the Gaussian components
-     * @warning Only trainers should use this function for efficiency reason
-     */
-    inline blitz::Array<double,1>& updateWeights()
-    { return m_weights; }
-
-
-    /**
-     * Update the log of the weights in cache
-     * @warning Should be used by trainer only when using updateWeights()
-     */
-    void recomputeLogWeights() const;
-
-
-
-    /**
-     * Output the log likelihood of the sample, x, i.e. log(p(x|GMMMachine))
-     * @param[in]  x                                 The sample
-     * @param[out] log_weighted_gaussian_likelihoods For each Gaussian, i: log(weight_i*p(x|Gaussian_i))
-     * @return     The GMMMachine log likelihood, i.e. log(p(x|GMMMachine))
-     * Dimensions of the parameters are checked
-     */
-    double logLikelihood(const blitz::Array<double, 1> &x, blitz::Array<double,1> &log_weighted_gaussian_likelihoods) const;
-
-    /**
-     * Output the log likelihood of the sample, x, i.e. log(p(x|GMMMachine))
-     * @param[in]  x                                 The sample
-     * @param[out] log_weighted_gaussian_likelihoods For each Gaussian, i: log(weight_i*p(x|Gaussian_i))
-     * @return     The GMMMachine log likelihood, i.e. log(p(x|GMMMachine))
-     * @warning Dimensions of the parameters are not checked
-     */
-    double logLikelihood_(const blitz::Array<double, 1> &x, blitz::Array<double,1> &log_weighted_gaussian_likelihoods) const;
-
-    /**
-     * Output the log likelihood of the sample, x, i.e. log(p(x|GMM))
-     * @param[in]  x The sample
-     * Dimension of the input is checked
-     */
-    double logLikelihood(const blitz::Array<double, 1> &x) const;
-
-    /**
-     * Output the log likelihood of the sample, x, i.e. log(p(x|GMM))
-     * @param[in]  x The sample
-     * @warning Dimension of the input is not checked
-     */
-    double logLikelihood_(const blitz::Array<double, 1> &x) const;
-
-    /**
-     * Accumulates the GMM statistics over a set of samples.
-     * @see bool accStatistics(const blitz::Array<double,1> &x, GMMStats stats)
-     * Dimensions of the parameters are checked
-     */
-    void accStatistics(const blitz::Array<double,2>& input, GMMStats &stats) const;
-
-    /**
-     * Accumulates the GMM statistics over a set of samples.
-     * @see bool accStatistics(const blitz::Array<double,1> &x, GMMStats stats)
-     * @warning Dimensions of the parameters are not checked
-     */
-    void accStatistics_(const blitz::Array<double,2>& input, GMMStats &stats) const;
-
-    /**
-     * Accumulate the GMM statistics for this sample.
-     *
-     * @param[in]  x     The current sample
-     * @param[out] stats The accumulated statistics
-     * Dimensions of the parameters are checked
-     */
-    void accStatistics(const blitz::Array<double,1> &x, GMMStats &stats) const;
-
-    /**
-     * Accumulate the GMM statistics for this sample.
-     *
-     * @param[in]  x     The current sample
-     * @param[out] stats The accumulated statistics
-     * @warning Dimensions of the parameters are not checked
-     */
-    void accStatistics_(const blitz::Array<double,1> &x, GMMStats &stats) const;
-
-
-    /**
-     * Get a pointer to a particular Gaussian component
-     * @param[in] i The index of the Gaussian component
-     * @return A smart pointer to the i'th Gaussian component
-     *         if it exists, otherwise throws an exception
-     */
-    boost::shared_ptr<bob::learn::misc::Gaussian> getGaussian(const size_t i);
-
-
-    /**
-     * Return the number of Gaussian components
-     */
-    inline size_t getNGaussians() const
-    { return m_n_gaussians; }
-
-    /**
-     * Save to a Configuration
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * Load from a Configuration
-     */
-    void load(bob::io::base::HDF5File& config);
-
-    /**
-     * Load/Reload mean/variance supervector in cache
-     */
-    void reloadCacheSupervectors() const;
-
-    friend std::ostream& operator<<(std::ostream& os, const GMMMachine& machine);
-
-
-  private:
-    /**
-     * Copy another GMMMachine
-     */
-    void copy(const GMMMachine&);
-
-    /**
-     * The number of Gaussian components
-     */
-    size_t m_n_gaussians;
-
-    /**
-     * The feature dimensionality
-     */
-    size_t m_n_inputs;
-
-    /**
-     * The Gaussian components
-     */
-    std::vector<boost::shared_ptr<Gaussian> > m_gaussians;
-
-    /**
-     * The weights (also known as "mixing coefficients")
-     */
-    blitz::Array<double,1> m_weights;
-
-    /**
-     * Update the mean and variance supervectors
-     * in cache (into a 1D blitz array)
-     */
-    void updateCacheSupervectors() const;
-
-    /**
-     * Initialise the cache members (allocate arrays)
-     */
-    void initCache() const;
-
-    /**
-     * Accumulate the GMM statistics for this sample.
-     * Called by accStatistics() and accStatistics_()
-     *
-     * @param[in]  x     The current sample
-     * @param[out] stats The accumulated statistics
-     * @param[in]  log_likelihood  The current log_likelihood
-     * @warning Dimensions of the parameters are not checked
-     */
-    void accStatisticsInternal(const blitz::Array<double,1> &x,
-      GMMStats &stats, const double log_likelihood) const;
-
-
-    /// Some cache arrays to avoid re-allocation when computing log-likelihoods
-    mutable blitz::Array<double,1> m_cache_log_weights;
-    mutable blitz::Array<double,1> m_cache_log_weighted_gaussian_likelihoods;
-    mutable blitz::Array<double,1> m_cache_P;
-    mutable blitz::Array<double,2> m_cache_Px;
-
-    mutable blitz::Array<double,1> m_cache_mean_supervector;
-    mutable blitz::Array<double,1> m_cache_variance_supervector;
-    mutable bool m_cache_supervector;
-
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_GMMMACHINE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/GMMStats.h b/bob/learn/misc/include/bob.learn.misc/GMMStats.h
deleted file mode 100644
index 4dbef6c..0000000
--- a/bob/learn/misc/include/bob.learn.misc/GMMStats.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_GMMSTATS_H
-#define BOB_LEARN_MISC_GMMSTATS_H
-
-#include <blitz/array.h>
-#include <bob.io.base/HDF5File.h>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief A container for GMM statistics.
- * @see GMMMachine
- *
- * With respect to Reynolds, "Speaker Verification Using Adapted
- * Gaussian Mixture Models", DSP, 2000:
- * Eq (8) is n(i)
- * Eq (9) is sumPx(i) / n(i)
- * Eq (10) is sumPxx(i) / n(i)
- */
-class GMMStats {
-  public:
-
-    /**
-     * Default constructor.
-     */
-    GMMStats();
-
-    /**
-     * Constructor.
-     * @param n_gaussians Number of Gaussians in the mixture model.
-     * @param n_inputs    Feature dimensionality.
-     */
-    GMMStats(const size_t n_gaussians, const size_t n_inputs);
-
-    /**
-     * Copy constructor
-     */
-    GMMStats(const GMMStats& other);
-
-    /**
-     * Constructor (from a Configuration)
-     */
-    GMMStats(bob::io::base::HDF5File& config);
-
-    /**
-     * Assigment
-     */
-    GMMStats& operator=(const GMMStats& other);
-
-    /**
-     * Equal to
-     */
-    bool operator==(const GMMStats& b) const;
-
-    /**
-     * Not Equal to
-     */
-    bool operator!=(const GMMStats& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const GMMStats& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * Updates a GMMStats with another GMMStats
-     */
-    void operator+=(const GMMStats& b);
-
-    /**
-     * Destructor
-     */
-    ~GMMStats();
-
-    /**
-     * Allocates space for the statistics and resets to zero.
-     * @param n_gaussians Number of Gaussians in the mixture model.
-     * @param n_inputs    Feature dimensionality.
-     */
-    void resize(const size_t n_gaussians, const size_t n_inputs);
-
-    /**
-     * Resets statistics to zero.
-     */
-    void init();
-
-    /**
-     * The accumulated log likelihood of all samples
-     */
-    double log_likelihood;
-
-    /**
-     * The accumulated number of samples
-     */
-    size_t T;
-
-    /**
-     * For each Gaussian, the accumulated sum of responsibilities, i.e. the sum of P(gaussian_i|x)
-     */
-    blitz::Array<double,1> n;
-
-    /**
-     * For each Gaussian, the accumulated sum of responsibility times the sample
-     */
-    blitz::Array<double,2> sumPx;
-
-    /**
-     * For each Gaussian, the accumulated sum of responsibility times the sample squared
-     */
-    blitz::Array<double,2> sumPxx;
-
-    /**
-     * Save to a Configuration
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * Load from a Configuration
-     */
-    void load(bob::io::base::HDF5File& config);
-
-    friend std::ostream& operator<<(std::ostream& os, const GMMStats& g);
-
-  private:
-    /**
-     * Copy another GMMStats
-     */
-    void copy(const GMMStats&);
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_GMMSTATS_H
diff --git a/bob/learn/misc/include/bob.learn.misc/Gaussian.h b/bob/learn/misc/include/bob.learn.misc/Gaussian.h
deleted file mode 100644
index acb08fc..0000000
--- a/bob/learn/misc/include/bob.learn.misc/Gaussian.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_GAUSSIAN_H
-#define BOB_LEARN_MISC_GAUSSIAN_H
-
-#include <bob.io.base/HDF5File.h>
-#include <blitz/array.h>
-#include <limits>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief This class implements a multivariate diagonal Gaussian distribution.
- */
-class Gaussian
-{
-  public:
-    /**
-     * Default constructor
-     */
-    Gaussian();
-
-    /**
-     * Constructor
-     * @param[in] n_inputs The feature dimensionality
-     */
-    Gaussian(const size_t n_inputs);
-
-    /**
-     * Destructor
-     */
-    virtual ~Gaussian();
-
-    /**
-     * Copy constructor
-     */
-    Gaussian(const Gaussian& other);
-
-    /**
-     * Constructs from a configuration file
-     */
-    Gaussian(bob::io::base::HDF5File& config);
-
-    /**
-     * Assignment
-     */
-    Gaussian& operator=(const Gaussian &other);
-
-    /**
-     * Equal to
-     */
-    bool operator==(const Gaussian& b) const;
-    /**
-     * Not equal to
-     */
-    bool operator!=(const Gaussian& b) const;
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const Gaussian& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * Set the input dimensionality, reset the mean to zero
-     * and the variance to one.
-     * @see resize()
-     * @param n_inputs The feature dimensionality
-     * @warning The mean and variance are not initialized
-     */
-    void setNInputs(const size_t n_inputs);
-
-    /**
-     * Get the input dimensionality
-     */
-    size_t getNInputs() const
-    { return m_n_inputs; }
-
-    /**
-     * Set the input dimensionality, reset the mean to zero
-     * and the variance to one.
-     * @see setNInputs()
-     * @param n_inputs The feature dimensionality
-     */
-    void resize(const size_t n_inputs);
-
-    /**
-     * Get the mean
-     */
-    inline const blitz::Array<double,1>& getMean() const
-    { return m_mean; }
-
-    /**
-     * Get the mean in order to be updated
-     * @warning Only trainers should use this function for efficiency reason
-     */
-    inline blitz::Array<double,1>& updateMean()
-    { return m_mean; }
-
-    /**
-     * Set the mean
-     */
-    void setMean(const blitz::Array<double,1> &mean);
-
-    /**
-     * Get the variance (the diagonal of the covariance matrix)
-     */
-    inline const blitz::Array<double,1>& getVariance() const
-    { return m_variance; }
-
-    /**
-     * Get the variance in order to be updated
-     * @warning Only trainers should use this function for efficiency reason
-     */
-    inline blitz::Array<double,1>& updateVariance()
-    { return m_variance; }
-
-    /**
-     * Set the variance
-     */
-    void setVariance(const blitz::Array<double,1> &variance);
-
-    /**
-     * Get the variance flooring thresholds
-     */
-    const blitz::Array<double,1>& getVarianceThresholds() const
-    { return m_variance_thresholds; }
-
-    /**
-     * Get the variance thresholds in order to be updated
-     * @warning Only trainers should use this function for efficiency reason
-     */
-    inline blitz::Array<double,1>& updateVarianceThreshods()
-    { return m_variance_thresholds; }
-
-    /**
-     * Set the variance flooring thresholds
-     */
-    void setVarianceThresholds(const blitz::Array<double,1> &variance_thresholds);
-
-    /**
-     * Set the variance flooring thresholds
-     */
-    void setVarianceThresholds(const double value);
-
-    /**
-     * Apply the variance flooring thresholds
-     * This method is called when using setVarianceThresholds()
-     * @warning It is only useful when using updateVarianceThreshods(),
-     * and should mostly be done by trainers
-     */
-    void applyVarianceThresholds();
-
-    /**
-     * Output the log likelihood of the sample, x
-     * @param x The data sample (feature vector)
-     */
-    double logLikelihood(const blitz::Array<double,1>& x) const;
-
-    /**
-     * Output the log likelihood of the sample, x
-     * @param x The data sample (feature vector)
-     * @warning The input is NOT checked
-     */
-    double logLikelihood_(const blitz::Array<double,1>& x) const;
-
-    /**
-     * Saves to a Configuration
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * Loads from a Configuration
-     */
-    void load(bob::io::base::HDF5File& config);
-
-    /**
-     * Prints a Gaussian in the output stream
-     */
-    friend std::ostream& operator<<(std::ostream& os, const bob::learn::misc::Gaussian& g);
-
-
-  private:
-    /**
-     * Copies another Gaussian
-     */
-    void copy(const Gaussian& other);
-
-    /**
-     * Computes n_inputs * log(2*pi)
-     */
-    void preComputeNLog2Pi();
-
-    /**
-     * Computes and stores the value of g_norm,
-     * to later speed up evaluation of logLikelihood()
-     * Note: g_norm is defined as follows:
-     * log(Gaussian pdf) = log(1/((2pi)^(k/2)(det)^(1/2)) * exp(...))
-     *                   = -1/2 * g_norm * (...)
-     */
-    void preComputeConstants();
-
-    /**
-     * The mean vector of the Gaussian
-     */
-    blitz::Array<double,1> m_mean;
-
-    /**
-     * The diagonal of the covariance matrix (assumed to be diagonal)
-     */
-    blitz::Array<double,1> m_variance;
-
-    /**
-     * The variance flooring thresholds, i.e. the minimum allowed
-     * value of variance in each dimension.
-     * The variance will be set to this value if an attempt is made
-     * to set it to a smaller value.
-     */
-    blitz::Array<double,1> m_variance_thresholds;
-
-    /**
-     * A constant that depends only on the feature dimensionality
-     * m_n_log2pi = n_inputs * log(2*pi) (used to compute m_gnorm)
-     */
-    double m_n_log2pi;
-
-    /**
-     * A constant that depends only on the feature dimensionality
-     * (m_n_inputs) and the variance
-     * @see bool preComputeConstants()
-     */
-    double m_g_norm;
-
-    /**
-     * The number of inputs (feature dimensionality)
-     */
-    size_t m_n_inputs;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_GAUSSIAN_H
diff --git a/bob/learn/misc/include/bob.learn.misc/ISVBase.h b/bob/learn/misc/include/bob.learn.misc/ISVBase.h
deleted file mode 100644
index c062076..0000000
--- a/bob/learn/misc/include/bob.learn.misc/ISVBase.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
- * @date Tue Jan 27 16:02:00 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief A base class for Joint Factor Analysis-like machines
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_ISVBASE_H
-#define BOB_LEARN_MISC_ISVBASE_H
-
-#include <stdexcept>
-
-#include <bob.learn.misc/GMMMachine.h>
-#include <bob.learn.misc/FABase.h>
-
-#include <bob.io.base/HDF5File.h>
-#include <boost/shared_ptr.hpp>
-
-namespace bob { namespace learn { namespace misc {
-
-
-/**
- * @brief An ISV Base class which contains U and D matrices
- * TODO: add a reference to the journal articles
- */
-class ISVBase
-{
-  public:
-    /**
-     * @brief Default constructor. Builds an otherwise invalid 0 x 0 ISVBase
-     * The Universal Background Model and the matrices U, V and diag(d) are
-     * not initialized.
-     */
-    ISVBase();
-
-    /**
-     * @brief Constructor. Builds a new ISVBase.
-     * The Universal Background Model and the matrices U, V and diag(d) are
-     * not initialized.
-     *
-     * @param ubm The Universal Background Model
-     * @param ru size of U (CD x ru)
-     * @warning ru SHOULD BE >= 1.
-     */
-    ISVBase(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm, const size_t ru=1);
-
-    /**
-     * @brief Copy constructor
-     */
-    ISVBase(const ISVBase& other);
-
-    /**
-     * @deprecated Starts a new JFAMachine from an existing Configuration object.
-     */
-    ISVBase(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Just to virtualise the destructor
-     */
-    virtual ~ISVBase();
-
-    /**
-     * @brief Assigns from a different JFA machine
-     */
-    ISVBase& operator=(const ISVBase &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const ISVBase& b) const
-    { return m_base.operator==(b.m_base); }
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const ISVBase& b) const
-    { return m_base.operator!=(b.m_base); }
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const ISVBase& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const
-    { return m_base.is_similar_to(b.m_base, r_epsilon, a_epsilon); }
-
-    /**
-     * @brief Saves machine to an HDF5 file
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * @brief Loads data from an existing configuration object. Resets
-     * the current state.
-     */
-    void load(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Returns the UBM
-     */
-    const boost::shared_ptr<bob::learn::misc::GMMMachine> getUbm() const
-    { return m_base.getUbm(); }
-
-    /**
-     * @brief Returns the U matrix
-     */
-    const blitz::Array<double,2>& getU() const
-    { return m_base.getU(); }
-
-    /**
-     * @brief Returns the diagonal matrix diag(d) (as a 1D vector)
-     */
-    const blitz::Array<double,1>& getD() const
-    { return m_base.getD(); }
-
-    /**
-     * @brief Returns the number of Gaussian components C
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNGaussians() const
-    { return m_base.getNGaussians(); }
-
-    /**
-     * @brief Returns the feature dimensionality D
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNInputs() const
-    { return m_base.getNInputs(); }
-
-    /**
-     * @brief Returns the supervector length CD
-     * (CxD: Number of Gaussian components by the feature dimensionality)
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getSupervectorLength() const
-    { return m_base.getSupervectorLength(); }
-
-    /**
-     * @brief Returns the size/rank ru of the U matrix
-     */
-    const size_t getDimRu() const
-    { return m_base.getDimRu(); }
-
-    /**
-     * @brief Resets the dimensionality of the subspace U
-     * U is hence uninitialized.
-     */
-    void resize(const size_t ru)
-    { m_base.resize(ru, 1);
-      blitz::Array<double,2>& V = m_base.updateV();
-      V = 0;
-     }
-
-    /**
-     * @brief Returns the U matrix in order to update it
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,2>& updateU()
-    { return m_base.updateU(); }
-
-    /**
-     * @brief Returns the diagonal matrix diag(d) (as a 1D vector) in order
-     * to update it
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,1>& updateD()
-    { return m_base.updateD(); }
-
-
-    /**
-     * @brief Sets (the mean supervector of) the Universal Background Model
-     * U, V and d are uninitialized in case of dimensions update (C or D)
-     */
-    void setUbm(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm)
-    { m_base.setUbm(ubm); }
-
-    /**
-     * @brief Sets the U matrix
-     */
-    void setU(const blitz::Array<double,2>& U)
-    { m_base.setU(U); }
-
-    /**
-     * @brief Sets the diagonal matrix diag(d)
-     * (a 1D vector is expected as an argument)
-     */
-    void setD(const blitz::Array<double,1>& d)
-    { m_base.setD(d); }
-
-    /**
-     * @brief Estimates x from the GMM statistics considering the LPT
-     * assumption, that is the latent session variable x is approximated
-     * using the UBM
-     */
-    void estimateX(const bob::learn::misc::GMMStats& gmm_stats, blitz::Array<double,1>& x) const
-    { m_base.estimateX(gmm_stats, x); }
-
-    /**
-     * @brief Precompute (put U^{T}.Sigma^{-1} matrix in cache)
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    void precompute()
-    { m_base.updateCacheUbmUVD(); }
-
-    /**
-     * @brief Returns the FABase member
-     */
-    const bob::learn::misc::FABase& getBase() const
-    { return m_base; }
-
-
-  private:
-    // FABase
-    bob::learn::misc::FABase m_base;
-};
-
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_JFABASE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/ISVMachine.h b/bob/learn/misc/include/bob.learn.misc/ISVMachine.h
deleted file mode 100644
index 16adfb9..0000000
--- a/bob/learn/misc/include/bob.learn.misc/ISVMachine.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/**
- * @date Tue Jan 27 16:06:00 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief A base class for Joint Factor Analysis-like machines
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_ISVMACHINE_H
-#define BOB_LEARN_MISC_ISVMACHINE_H
-
-#include <stdexcept>
-
-#include <bob.learn.misc/ISVBase.h>
-#include <bob.learn.misc/GMMMachine.h>
-#include <bob.learn.misc/LinearScoring.h>
-
-#include <bob.io.base/HDF5File.h>
-#include <boost/shared_ptr.hpp>
-
-namespace bob { namespace learn { namespace misc {
-
-
-/**
- * @brief A ISVMachine which is associated to a ISVBase that contains
- *   U D matrices.
- * TODO: add a reference to the journal articles
- */
-class ISVMachine
-{
-  public:
-    /**
-     * @brief Default constructor. Builds an otherwise invalid 0 x 0 ISVMachine
-     * The Universal Background Model and the matrices U, V and diag(d) are
-     * not initialized.
-     */
-    ISVMachine();
-
-    /**
-     * @brief Constructor. Builds a new ISVMachine.
-     *
-     * @param isv_base The ISVBase associated with this machine
-     */
-    ISVMachine(const boost::shared_ptr<bob::learn::misc::ISVBase> isv_base);
-
-    /**
-     * @brief Copy constructor
-     */
-    ISVMachine(const ISVMachine& other);
-
-    /**
-     * @brief Starts a new ISVMachine from an existing Configuration object.
-     */
-    ISVMachine(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Just to virtualise the destructor
-     */
-    virtual ~ISVMachine();
-
-    /**
-     * @brief Assigns from a different ISV machine
-     */
-    ISVMachine& operator=(const ISVMachine &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const ISVMachine& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const ISVMachine& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const ISVMachine& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Saves machine to an HDF5 file
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * @brief Loads data from an existing configuration object. Resets
-     * the current state.
-     */
-    void load(bob::io::base::HDF5File& config);
-
-
-    /**
-     * @brief Returns the number of Gaussian components C
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNGaussians() const
-    { return m_isv_base->getNGaussians(); }
-
-    /**
-     * @brief Returns the feature dimensionality D
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNInputs() const
-    { return m_isv_base->getNInputs(); }
-
-    /**
-     * @brief Returns the supervector length CD
-     * (CxD: Number of Gaussian components by the feature dimensionality)
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getSupervectorLength() const
-    { return m_isv_base->getSupervectorLength(); }
-
-    /**
-     * @brief Returns the size/rank ru of the U matrix
-     */
-    const size_t getDimRu() const
-    { return m_isv_base->getDimRu(); }
-
-    /**
-     * @brief Returns the x session factor
-     */
-    const blitz::Array<double,1>& getX() const
-    { return m_cache_x; }
-
-    /**
-     * @brief Returns the z speaker factor
-     */
-    const blitz::Array<double,1>& getZ() const
-    { return m_z; }
-
-    /**
-     * @brief Returns the z speaker factors in order to update it
-     */
-    blitz::Array<double,1>& updateZ()
-    { return m_z; }
-
-    /**
-     * @brief Returns the V matrix
-     */
-    void setZ(const blitz::Array<double,1>& z);
-
-    /**
-     * @brief Returns the ISVBase
-     */
-    const boost::shared_ptr<bob::learn::misc::ISVBase> getISVBase() const
-    { return m_isv_base; }
-
-    /**
-     * @brief Sets the ISVBase
-     */
-    void setISVBase(const boost::shared_ptr<bob::learn::misc::ISVBase> isv_base);
-
-
-    /**
-     * @brief Estimates x from the GMM statistics considering the LPT
-     * assumption, that is the latent session variable x is approximated
-     * using the UBM
-     */
-    void estimateX(const bob::learn::misc::GMMStats& gmm_stats, blitz::Array<double,1>& x) const
-    { m_isv_base->estimateX(gmm_stats, x); }
-    /**
-     * @brief Estimates Ux from the GMM statistics considering the LPT
-     * assumption, that is the latent session variable x is approximated
-     * using the UBM
-     */
-    void estimateUx(const bob::learn::misc::GMMStats& gmm_stats, blitz::Array<double,1>& Ux);
-
-   /**
-    * @brief Execute the machine
-    *
-    * @param input input data used by the machine
-    * @warning Inputs are checked
-    * @return score value computed by the machine    
-    */
-    double forward(const bob::learn::misc::GMMStats& input);
-    /**
-     * @brief Computes a score for the given UBM statistics and given the
-     * Ux vector
-     */
-    double forward(const bob::learn::misc::GMMStats& gmm_stats,
-      const blitz::Array<double,1>& Ux);
-
-    /**
-     * @brief Execute the machine
-     *
-     * @param input input data used by the machine
-     * @warning Inputs are NOT checked
-     * @return score value computed by the machine     
-     */
-    double forward_(const bob::learn::misc::GMMStats& input);
-
-  private:
-    /**
-     * @brief Resize latent variable according to the ISVBase
-     */
-    void resize();
-    /**
-     * @ Update cache
-     */
-    void updateCache();
-    /**
-     * @brief Resize working arrays
-     */
-    void resizeTmp();
-
-    // UBM
-    boost::shared_ptr<bob::learn::misc::ISVBase> m_isv_base;
-
-    // y and z vectors/factors learned during the enrolment procedure
-    blitz::Array<double,1> m_z;
-
-    // cache
-    blitz::Array<double,1> m_cache_mDz;
-    mutable blitz::Array<double,1> m_cache_x;
-
-    // x vector/factor in cache when computing scores
-    mutable blitz::Array<double,1> m_tmp_Ux;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_ISVMACHINE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/ISVTrainer.h b/bob/learn/misc/include/bob.learn.misc/ISVTrainer.h
deleted file mode 100644
index 1f04141..0000000
--- a/bob/learn/misc/include/bob.learn.misc/ISVTrainer.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
- * @date Tue Jul 19 12:16:17 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief JFA functions
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_ISVTRAINER_H
-#define BOB_LEARN_MISC_ISVTRAINER_H
-
-#include <blitz/array.h>
-#include <bob.learn.misc/GMMStats.h>
-#include <bob.learn.misc/FABaseTrainer.h>
-#include <bob.learn.misc/ISVMachine.h>
-#include <vector>
-
-#include <map>
-#include <string>
-#include <bob.core/array_copy.h>
-#include <boost/shared_ptr.hpp>
-#include <boost/random.hpp>
-#include <bob.core/logging.h>
-
-namespace bob { namespace learn { namespace misc {
-
-class ISVTrainer
-{
-  public:
-    /**
-     * @brief Constructor
-     */
-    ISVTrainer(const double relevance_factor=4.);
-
-    /**
-     * @brief Copy onstructor
-     */
-    ISVTrainer(const ISVTrainer& other);
-
-    /**
-     * @brief Destructor
-     */
-    virtual ~ISVTrainer();
-
-    /**
-     * @brief Assignment operator
-     */
-    ISVTrainer& operator=(const ISVTrainer& other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const ISVTrainer& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const ISVTrainer& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const ISVTrainer& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief This methods performs some initialization before the EM loop.
-     */
-    virtual void initialize(bob::learn::misc::ISVBase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-
-    /**
-     * @brief Calculates and saves statistics across the dataset
-     * The statistics will be used in the mStep() that follows.
-     */
-    virtual void eStep(bob::learn::misc::ISVBase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-
-    /**
-     * @brief Performs a maximization step to update the parameters of the
-     * factor analysis model.
-     */
-    virtual void mStep(bob::learn::misc::ISVBase& machine);
-
-    /**
-     * @brief Computes the average log likelihood using the current estimates
-     * of the latent variables.
-     */
-    virtual double computeLikelihood(bob::learn::misc::ISVBase& machine);
-
-    /**
-     * @brief Enrol a client
-     */
-    void enrol(bob::learn::misc::ISVMachine& machine,
-      const std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& features,
-      const size_t n_iter);
-
-    /**
-     * @brief Get the x speaker factors
-     */
-    const std::vector<blitz::Array<double,2> >& getX() const
-    { return m_base_trainer.getX(); }
-    /**
-     * @brief Get the z speaker factors
-     */
-    const std::vector<blitz::Array<double,1> >& getZ() const
-    { return m_base_trainer.getZ(); }
-    /**
-     * @brief Set the x speaker factors
-     */
-    void setX(const std::vector<blitz::Array<double,2> >& X)
-    { m_base_trainer.setX(X); }
-    /**
-     * @brief Set the z speaker factors
-     */
-    void setZ(const std::vector<blitz::Array<double,1> >& z)
-    { m_base_trainer.setZ(z); }
-
-    /**
-     * @brief Getters for the accumulators
-     */
-    const blitz::Array<double,3>& getAccUA1() const
-    { return m_base_trainer.getAccUA1(); }
-    const blitz::Array<double,2>& getAccUA2() const
-    { return m_base_trainer.getAccUA2(); }
-
-    /**
-     * @brief Setters for the accumulators, Very useful if the e-Step needs
-     * to be parallelized.
-     */
-    void setAccUA1(const blitz::Array<double,3>& acc)
-    { m_base_trainer.setAccUA1(acc); }
-    void setAccUA2(const blitz::Array<double,2>& acc)
-    { m_base_trainer.setAccUA2(acc); }
-
-
-  private:
-    /**
-     * @brief Initialize D to sqrt(ubm_var/relevance_factor)
-     */
-    void initializeD(bob::learn::misc::ISVBase& machine) const;
-
-    // Attributes
-    bob::learn::misc::FABaseTrainer m_base_trainer;
-
-    double m_relevance_factor;
-
-    boost::shared_ptr<boost::mt19937> m_rng; ///< The random number generator for the inialization};
-};
-
-} } } // namespaces
-
-#endif /* BOB_LEARN_MISC_ISVTRAINER_H */
diff --git a/bob/learn/misc/include/bob.learn.misc/IVectorMachine.h b/bob/learn/misc/include/bob.learn.misc/IVectorMachine.h
deleted file mode 100644
index 88dd5c1..0000000
--- a/bob/learn/misc/include/bob.learn.misc/IVectorMachine.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/**
- * @date Sat Mar 30 20:55:00 2013 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_IVECTOR_MACHINE_H
-#define BOB_LEARN_MISC_IVECTOR_MACHINE_H
-
-#include <blitz/array.h>
-#include <bob.learn.misc/GMMMachine.h>
-#include <bob.learn.misc/GMMStats.h>
-#include <bob.io.base/HDF5File.h>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief An IVectorMachine consists of a Total Variability subspace \f$T\f$
- *   and allows the extraction of IVector\n
- * Reference:\n
- * "Front-End Factor Analysis For Speaker Verification",
- *    N. Dehak, P. Kenny, R. Dehak, P. Dumouchel, P. Ouellet,
- *   IEEE Trans. on Audio, Speech and Language Processing
- */
-class IVectorMachine
-{
-  public:
-    /**
-     * @brief Default constructor. Builds an IVectorMachine.
-     * The Universal Background Model and the matrices \f$T\f$ and
-     * \f$diag(\Sigma)\f$ are not initialized.
-     */
-    IVectorMachine();
-
-    /**
-     * @brief Constructor. Builds a new IVectorMachine.
-     * The Universal Background Model and the matrices \f$T\f$ and
-     * \f$diag(\Sigma)\f$ are not initialized.
-     *
-     * @param ubm The Universal Background Model
-     * @param rt size of \f$T\f$ (CD x rt)
-     * @param variance_threshold variance flooring threshold for the
-     *   \f$\Sigma\f$ (diagonal) matrix
-     * @warning rt SHOULD BE >= 1.
-     */
-    IVectorMachine(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm,
-      const size_t rt=1, const double variance_threshold=1e-10);
-
-    /**
-     * @brief Copy constructor
-     */
-    IVectorMachine(const IVectorMachine& other);
-
-    /**
-     * @brief Starts a new IVectorMachine from an existing Configuration object.
-     */
-    IVectorMachine(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Destructor
-     */
-    virtual ~IVectorMachine();
-
-    /**
-     * @brief Assigns from a different IVectorMachine
-     */
-    IVectorMachine& operator=(const IVectorMachine &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const IVectorMachine& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const IVectorMachine& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const IVectorMachine& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Saves model to an HDF5 file
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * @brief Loads data from an existing configuration object. Resets
-     * the current state.
-     */
-    void load(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Returns the UBM
-     */
-    const boost::shared_ptr<bob::learn::misc::GMMMachine> getUbm() const
-    { return m_ubm; }
-
-    /**
-     * @brief Returns the \f$T\f$ matrix
-     */
-    const blitz::Array<double,2>& getT() const
-    { return m_T; }
-
-    /**
-     * @brief Returns the \f$\Sigma\f$ (diagonal) matrix as a 1D array
-     */
-    const blitz::Array<double,1>& getSigma() const
-    { return m_sigma; }
-
-    /**
-     * @brief Gets the variance flooring threshold
-     */
-    const double getVarianceThreshold() const
-    { return m_variance_threshold; }
-
-    /**
-     * @brief Returns the number of Gaussian components C.
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNGaussians() const
-    { return m_ubm->getNGaussians(); }
-
-    /**
-     * @brief Returns the feature dimensionality D.
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNInputs() const
-    { return m_ubm->getNInputs(); }
-
-    /**
-     * @brief Returns the supervector length CD.
-     * (CxD: Number of Gaussian components by the feature dimensionality)
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getSupervectorLength() const
-    { return m_ubm->getNGaussians()*m_ubm->getNInputs(); }
-
-    /**
-     * @brief Returns the size/rank rt of the \f$T\f$ matrix
-     */
-    const size_t getDimRt() const
-    { return m_rt; }
-
-    /**
-     * @brief Resets the dimensionality of the subspace \f$T\f$.
-     * \f$T\f$ is hence uninitialized.
-     */
-    void resize(const size_t rt);
-
-    /**
-     * @brief Returns the \f$T\f$ matrix in order to update it.
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,2>& updateT()
-    { return m_T; }
-
-    /**
-     * @brief Returns the \f$\Sigma\f$ (diagonal) matrix in order to update it.
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,1>& updateSigma()
-    { return m_sigma; }
-
-    /**
-     * @brief Sets (the mean supervector of) the Universal Background Model.
-     * \f$T\f$ and \f$\Sigma\f$ are uninitialized in case of dimensions update (C or D)
-     */
-    void setUbm(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm);
-
-    /**
-     * @brief Sets the \f$T\f$ matrix
-     */
-    void setT(const blitz::Array<double,2>& T);
-
-    /**
-     * @brief Sets the \f$\Sigma\f$ (diagonal) matrix
-     */
-    void setSigma(const blitz::Array<double,1>& sigma);
-
-    /**
-     * @brief Set the variance flooring threshold
-     */
-    void setVarianceThreshold(const double value);
-
-    /**
-     * @brief Update arrays in cache
-     * @warning It is only useful when using updateT() or updateSigma()
-     * and should mostly be done by trainers
-     */
-    void precompute();
-
-    /**
-     * @brief Computes \f$(Id + \sum_{c=1}^{C} N_{i,j,c} T^{T} \Sigma_{c}^{-1} T)\f$
-     * @warning No check is perform
-     */
-    void computeIdTtSigmaInvT(const bob::learn::misc::GMMStats& input, blitz::Array<double,2>& output) const;
-
-    /**
-     * @brief Computes \f$T^{T} \Sigma^{-1} \sum_{c=1}^{C} (F_c - N_c ubmmean_{c})\f$
-     * @warning No check is perform
-     */
-    void computeTtSigmaInvFnorm(const bob::learn::misc::GMMStats& input, blitz::Array<double,1>& output) const;
-
-    /**
-     * @brief Extracts an ivector from the input GMM statistics
-     *
-     * @param input GMM statistics to be used by the machine
-     * @param output I-vector computed by the machine
-     */
-    void forward(const bob::learn::misc::GMMStats& input, blitz::Array<double,1>& output) const;
-
-    /**
-     * @brief Extracts an ivector from the input GMM statistics
-     *
-     * @param input GMM statistics to be used by the machine
-     * @param output I-vector computed by the machine
-     * @warning Inputs are NOT checked
-     */
-    void forward_(const bob::learn::misc::GMMStats& input, blitz::Array<double,1>& output) const;
-
-  private:
-    /**
-     * @brief Apply the variance flooring thresholds.
-     * This method is called when using setVarianceThresholds()
-     */
-    void applyVarianceThreshold();
-
-    /**
-     * @brief Resize cache
-     */
-    void resizeCache();
-    /**
-     * @brief Resize working arrays
-     */
-    void resizeTmp();
-    /**
-     * @brief Resize cache and working arrays before updating cache
-     */
-    void resizePrecompute();
-
-    // UBM
-    boost::shared_ptr<bob::learn::misc::GMMMachine> m_ubm;
-
-    // dimensionality
-    size_t m_rt; ///< size of \f$T\f$ (CD x rt)
-
-    ///< \f$T\f$ and \f$Sigma\f$ matrices.
-    ///< \f$Sigma\f$ is assumed to be diagonal, and only the diagonal is stored
-    blitz::Array<double,2> m_T; ///< The total variability matrix \f$T\f$
-    blitz::Array<double,1> m_sigma; ///< The diagonal covariance matrix \f$\Sigma\f$
-    double m_variance_threshold; ///< The variance flooring threshold
-
-    blitz::Array<double,3> m_cache_Tct_sigmacInv;
-    blitz::Array<double,3> m_cache_Tct_sigmacInv_Tc;
-
-    mutable blitz::Array<double,1> m_tmp_d;
-    mutable blitz::Array<double,1> m_tmp_t1;
-    mutable blitz::Array<double,1> m_tmp_t2;
-    mutable blitz::Array<double,2> m_tmp_tt;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_IVECTOR_MACHINE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/IVectorTrainer.h b/bob/learn/misc/include/bob.learn.misc/IVectorTrainer.h
deleted file mode 100644
index 4f496d6..0000000
--- a/bob/learn/misc/include/bob.learn.misc/IVectorTrainer.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * @date Sat Mar 30 20:55:00 2013 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_IVECTOR_TRAINER_H
-#define BOB_LEARN_MISC_IVECTOR_TRAINER_H
-
-#include <blitz/array.h>
-#include <bob.learn.misc/IVectorMachine.h>
-#include <bob.learn.misc/GMMStats.h>
-#include <boost/shared_ptr.hpp>
-#include <vector>
-#include <bob.core/array_copy.h>
-#include <boost/random.hpp>
-
-#include <boost/random/mersenne_twister.hpp>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief An IVectorTrainer to learn a Total Variability subspace \f$T\f$
- *  (and eventually a covariance matrix \f$\Sigma\f$).\n
- * Reference:\n
- * "Front-End Factor Analysis For Speaker Verification",
- *    N. Dehak, P. Kenny, R. Dehak, P. Dumouchel, P. Ouellet,
- *   IEEE Trans. on Audio, Speech and Language Processing
- */
-class IVectorTrainer
-{
-  public:
-    /**
-     * @brief Default constructor. Builds an IVectorTrainer
-     */
-    IVectorTrainer(const bool update_sigma=false);
-
-    /**
-     * @brief Copy constructor
-     */
-    IVectorTrainer(const IVectorTrainer& other);
-
-    /**
-     * @brief Destructor
-     */
-    virtual ~IVectorTrainer();
-
-    /**
-     * @brief Initialization before the EM loop
-     */
-    virtual void initialize(bob::learn::misc::IVectorMachine& ivector);
-
-    /**
-     * @brief Calculates statistics across the dataset,
-     * and saves these as:
-     * - m_acc_Nij_wij2
-     * - m_acc_Fnormij_wij
-     * - m_acc_Nij (only if update_sigma is enabled)
-     * - m_acc_Snormij (only if update_sigma is enabled)
-     *
-     * These statistics will be used in the mStep() that follows.
-     */
-    virtual void eStep(bob::learn::misc::IVectorMachine& ivector,
-      const std::vector<bob::learn::misc::GMMStats>& data);
-
-    /**
-     * @brief Maximisation step: Update the Total Variability matrix \f$T\f$
-     * and \f$\Sigma\f$ if update_sigma is enabled.
-     */
-    virtual void mStep(bob::learn::misc::IVectorMachine& ivector);
-
-
-    /**
-     * @brief Assigns from a different IVectorTrainer
-     */
-    IVectorTrainer& operator=(const IVectorTrainer &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const IVectorTrainer& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const IVectorTrainer& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const IVectorTrainer& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Getters for the accumulators
-     */
-    const blitz::Array<double,3>& getAccNijWij2() const
-    { return m_acc_Nij_wij2; }
-    const blitz::Array<double,3>& getAccFnormijWij() const
-    { return m_acc_Fnormij_wij; }
-    const blitz::Array<double,1>& getAccNij() const
-    { return m_acc_Nij; }
-    const blitz::Array<double,2>& getAccSnormij() const
-    { return m_acc_Snormij; }
-
-    /**
-     * @brief Setters for the accumulators, Very useful if the e-Step needs
-     * to be parallelized.
-     */
-    void setAccNijWij2(const blitz::Array<double,3>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_Nij_wij2);
-      m_acc_Nij_wij2 = acc; }
-    void setAccFnormijWij(const blitz::Array<double,3>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_Fnormij_wij);
-      m_acc_Fnormij_wij = acc; }
-    void setAccNij(const blitz::Array<double,1>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_Nij);
-      m_acc_Nij = acc; }
-    void setAccSnormij(const blitz::Array<double,2>& acc)
-    { bob::core::array::assertSameShape(acc, m_acc_Snormij);
-      m_acc_Snormij = acc; }
-
-  protected:
-    // Attributes
-    bool m_update_sigma;
-
-    // Acccumulators
-    blitz::Array<double,3> m_acc_Nij_wij2;
-    blitz::Array<double,3> m_acc_Fnormij_wij;
-    blitz::Array<double,1> m_acc_Nij;
-    blitz::Array<double,2> m_acc_Snormij;
-
-    // Working arrays
-    mutable blitz::Array<double,1> m_tmp_wij;
-    mutable blitz::Array<double,2> m_tmp_wij2;
-    mutable blitz::Array<double,1> m_tmp_d1;
-    mutable blitz::Array<double,1> m_tmp_t1;
-    mutable blitz::Array<double,2> m_tmp_dd1;
-    mutable blitz::Array<double,2> m_tmp_dt1;
-    mutable blitz::Array<double,2> m_tmp_tt1;
-    mutable blitz::Array<double,2> m_tmp_tt2;
-    
-    /**
-     * @brief The random number generator for the inialization
-     */
-    boost::shared_ptr<boost::mt19937> m_rng;    
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_IVECTOR_TRAINER_H
diff --git a/bob/learn/misc/include/bob.learn.misc/JFABase.h b/bob/learn/misc/include/bob.learn.misc/JFABase.h
deleted file mode 100644
index 7fbc669..0000000
--- a/bob/learn/misc/include/bob.learn.misc/JFABase.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- * @date Tue Jan 27 15:54:00 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief A base class for Joint Factor Analysis-like machines
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_JFABASE_H
-#define BOB_LEARN_MISC_JFABASE_H
-
-#include <stdexcept>
-
-#include <bob.learn.misc/GMMMachine.h>
-#include <bob.learn.misc/FABase.h>
-//#include <bob.learn.misc/LinearScoring.h>
-
-#include <bob.io.base/HDF5File.h>
-#include <boost/shared_ptr.hpp>
-
-namespace bob { namespace learn { namespace misc {
-
-
-/**
- * @brief A JFA Base class which contains U, V and D matrices
- * TODO: add a reference to the journal articles
- */
-class JFABase
-{
-  public:
-    /**
-     * @brief Default constructor. Builds a 1 x 1 JFABase
-     * The Universal Background Model and the matrices U, V and diag(d) are
-     * not initialized.
-     */
-    JFABase();
-
-    /**
-     * @brief Constructor. Builds a new JFABase.
-     * The Universal Background Model and the matrices U, V and diag(d) are
-     * not initialized.
-     *
-     * @param ubm The Universal Background Model
-     * @param ru size of U (CD x ru)
-     * @param rv size of U (CD x rv)
-     * @warning ru and rv SHOULD BE  >= 1.
-     */
-    JFABase(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm, const size_t ru=1, const size_t rv=1);
-
-    /**
-     * @brief Copy constructor
-     */
-    JFABase(const JFABase& other);
-
-    /**
-     * @deprecated Starts a new JFAMachine from an existing Configuration object.
-     */
-    JFABase(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Just to virtualise the destructor
-     */
-    virtual ~JFABase();
-
-    /**
-     * @brief Assigns from a different JFA machine
-     */
-    JFABase& operator=(const JFABase &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const JFABase& b) const
-    { return m_base.operator==(b.m_base); }
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const JFABase& b) const
-    { return m_base.operator!=(b.m_base); }
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const JFABase& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const
-    { return m_base.is_similar_to(b.m_base, r_epsilon, a_epsilon); }
-
-    /**
-     * @brief Saves model to an HDF5 file
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * @brief Loads data from an existing configuration object. Resets
-     * the current state.
-     */
-    void load(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Returns the UBM
-     */
-    const boost::shared_ptr<bob::learn::misc::GMMMachine> getUbm() const
-    { return m_base.getUbm(); }
-
-    /**
-     * @brief Returns the U matrix
-     */
-    const blitz::Array<double,2>& getU() const
-    { return m_base.getU(); }
-
-    /**
-     * @brief Returns the V matrix
-     */
-    const blitz::Array<double,2>& getV() const
-    { return m_base.getV(); }
-
-    /**
-     * @brief Returns the diagonal matrix diag(d) (as a 1D vector)
-     */
-    const blitz::Array<double,1>& getD() const
-    { return m_base.getD(); }
-
-    /**
-     * @brief Returns the number of Gaussian components
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNGaussians() const
-    { return m_base.getNGaussians();}
-
-    /**
-     * @brief Returns the feature dimensionality D
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNInputs() const
-    { return m_base.getNInputs(); }
-
-    /**
-     * @brief Returns the supervector length CD
-     * (CxD: Number of Gaussian components by the feature dimensionality)
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getSupervectorLength() const
-    { return m_base.getSupervectorLength(); }
-
-    /**
-     * @brief Returns the size/rank ru of the U matrix
-     */
-    const size_t getDimRu() const
-    { return m_base.getDimRu(); }
-
-    /**
-     * @brief Returns the size/rank rv of the V matrix
-     */
-    const size_t getDimRv() const
-    { return m_base.getDimRv(); }
-
-    /**
-     * @brief Resets the dimensionality of the subspace U and V
-     * U and V are hence uninitialized.
-     */
-    void resize(const size_t ru, const size_t rv)
-    { m_base.resize(ru, rv); }
-
-    /**
-     * @brief Returns the U matrix in order to update it
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,2>& updateU()
-    { return m_base.updateU(); }
-
-    /**
-     * @brief Returns the V matrix in order to update it
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,2>& updateV()
-    { return m_base.updateV(); }
-
-    /**
-     * @brief Returns the diagonal matrix diag(d) (as a 1D vector) in order
-     * to update it
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    blitz::Array<double,1>& updateD()
-    { return m_base.updateD(); }
-
-
-    /**
-     * @brief Sets (the mean supervector of) the Universal Background Model
-     * U, V and d are uninitialized in case of dimensions update (C or D)
-     */
-    void setUbm(const boost::shared_ptr<bob::learn::misc::GMMMachine> ubm)
-    { m_base.setUbm(ubm); }
-
-    /**
-     * @brief Sets the U matrix
-     */
-    void setU(const blitz::Array<double,2>& U)
-    { m_base.setU(U); }
-
-    /**
-     * @brief Sets the V matrix
-     */
-    void setV(const blitz::Array<double,2>& V)
-    { m_base.setV(V); }
-
-    /**
-     * @brief Sets the diagonal matrix diag(d)
-     * (a 1D vector is expected as an argument)
-     */
-    void setD(const blitz::Array<double,1>& d)
-    { m_base.setD(d); }
-
-    /**
-     * @brief Estimates x from the GMM statistics considering the LPT
-     * assumption, that is the latent session variable x is approximated
-     * using the UBM
-     */
-    void estimateX(const bob::learn::misc::GMMStats& gmm_stats, blitz::Array<double,1>& x) const
-    { m_base.estimateX(gmm_stats, x); }
-
-    /**
-     * @brief Precompute (put U^{T}.Sigma^{-1} matrix in cache)
-     * @warning Should only be used by the trainer for efficiency reason,
-     *   or for testing purpose.
-     */
-    void precompute()
-    { m_base.updateCacheUbmUVD(); }
-
-    /**
-     * @brief Returns the FABase member
-     */
-    const bob::learn::misc::FABase& getBase() const
-    { return m_base; }
-
-
-  private:
-    // FABase
-    bob::learn::misc::FABase m_base;
-};
-
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_JFABASE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/JFAMachine.h b/bob/learn/misc/include/bob.learn.misc/JFAMachine.h
deleted file mode 100644
index 54c93b9..0000000
--- a/bob/learn/misc/include/bob.learn.misc/JFAMachine.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/**
- * @date Tue Jan 27 16:47:00 2015 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief A base class for Joint Factor Analysis-like machines
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_JFAMACHINE_H
-#define BOB_LEARN_MISC_JFAMACHINE_H
-
-#include <stdexcept>
-
-#include <bob.learn.misc/JFABase.h>
-#include <bob.learn.misc/GMMMachine.h>
-#include <bob.learn.misc/LinearScoring.h>
-
-#include <bob.io.base/HDF5File.h>
-#include <boost/shared_ptr.hpp>
-
-namespace bob { namespace learn { namespace misc {
-
-
-/**
- * @brief A JFAMachine which is associated to a JFABase that contains
- *   U, V and D matrices. The JFAMachine describes the identity part
- *   (latent variables y and z)
- * TODO: add a reference to the journal articles
- */
-class JFAMachine
-{
-  public:
-    /**
-     * @brief Default constructor. Builds an otherwise invalid 0 x 0 JFAMachine
-     * The Universal Background Model and the matrices U, V and diag(d) are
-     * not initialized.
-     */
-    JFAMachine();
-
-    /**
-     * @brief Constructor. Builds a new JFAMachine.
-     *
-     * @param jfa_base The JFABase associated with this machine
-     */
-    JFAMachine(const boost::shared_ptr<bob::learn::misc::JFABase> jfa_base);
-
-    /**
-     * @brief Copy constructor
-     */
-    JFAMachine(const JFAMachine& other);
-
-    /**
-     * @deprecated Starts a new JFAMachine from an existing Configuration object.
-     */
-    JFAMachine(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Just to virtualise the destructor
-     */
-    virtual ~JFAMachine();
-
-    /**
-     * @brief Assigns from a different JFA machine
-     */
-    JFAMachine& operator=(const JFAMachine &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const JFAMachine& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const JFAMachine& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const JFAMachine& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Saves machine to an HDF5 file
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * @brief Loads data from an existing configuration object. Resets
-     * the current state.
-     */
-    void load(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Returns the number of Gaussian components C
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNGaussians() const
-    { return m_jfa_base->getNGaussians(); }
-
-    /**
-     * @brief Returns the feature dimensionality D
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getNInputs() const
-    { return m_jfa_base->getNInputs(); }
-
-    /**
-     * @brief Returns the supervector length CD
-     * (CxD: Number of Gaussian components by the feature dimensionality)
-     * @warning An exception is thrown if no Universal Background Model has
-     *   been set yet.
-     */
-    const size_t getSupervectorLength() const
-    { return m_jfa_base->getSupervectorLength(); }
-
-    /**
-     * @brief Returns the size/rank ru of the U matrix
-     */
-    const size_t getDimRu() const
-    { return m_jfa_base->getDimRu(); }
-
-    /**
-     * @brief Returns the size/rank rv of the V matrix
-     */
-    const size_t getDimRv() const
-    { return m_jfa_base->getDimRv(); }
-
-    /**
-     * @brief Returns the x session factor
-     */
-    const blitz::Array<double,1>& getX() const
-    { return m_cache_x; }
-
-    /**
-     * @brief Returns the y speaker factor
-     */
-    const blitz::Array<double,1>& getY() const
-    { return m_y; }
-
-    /**
-     * @brief Returns the z speaker factor
-     */
-    const blitz::Array<double,1>& getZ() const
-    { return m_z; }
-
-    /**
-     * @brief Returns the y speaker factors in order to update it
-     */
-    blitz::Array<double,1>& updateY()
-    { return m_y; }
-
-    /**
-     * @brief Returns the z speaker factors in order to update it
-     */
-    blitz::Array<double,1>& updateZ()
-    { return m_z; }
-
-    /**
-     * @brief Returns the y speaker factors
-     */
-    void setY(const blitz::Array<double,1>& y);
-
-    /**
-     * @brief Returns the V matrix
-     */
-    void setZ(const blitz::Array<double,1>& z);
-
-    /**
-     * @brief Returns the JFABase
-     */
-    const boost::shared_ptr<bob::learn::misc::JFABase> getJFABase() const
-    { return m_jfa_base; }
-
-    /**
-     * @brief Sets the JFABase
-     */
-    void setJFABase(const boost::shared_ptr<bob::learn::misc::JFABase> jfa_base);
-
-
-    /**
-     * @brief Estimates x from the GMM statistics considering the LPT
-     * assumption, that is the latent session variable x is approximated
-     * using the UBM
-     */
-    void estimateX(const bob::learn::misc::GMMStats& gmm_stats, blitz::Array<double,1>& x) const
-    { m_jfa_base->estimateX(gmm_stats, x); }
-    /**
-     * @brief Estimates Ux from the GMM statistics considering the LPT
-     * assumption, that is the latent session variable x is approximated
-     * using the UBM
-     */
-    void estimateUx(const bob::learn::misc::GMMStats& gmm_stats, blitz::Array<double,1>& Ux);
-
-   /**
-    * @brief Execute the machine
-    *
-    * @param input input data used by the machine
-    * @warning Inputs are checked
-    * @return score value computed by the machine
-    */
-    double forward(const bob::learn::misc::GMMStats& input);
-    /**
-     * @brief Computes a score for the given UBM statistics and given the
-     * Ux vector
-     */
-    double forward(const bob::learn::misc::GMMStats& gmm_stats,
-      const blitz::Array<double,1>& Ux);
-
-    /**
-     * @brief Execute the machine
-     *
-     * @param input input data used by the machine
-     * @param score value computed by the machine
-     * @warning Inputs are NOT checked
-     */
-    double forward_(const bob::learn::misc::GMMStats& input);
-
-  private:
-    /**
-     * @brief Resize latent variable according to the JFABase
-     */
-    void resize();
-    /**
-     * @brief Resize working arrays
-     */
-    void resizeTmp();
-    /**
-     * @brief Update the cache
-     */
-    void updateCache();
-
-    // UBM
-    boost::shared_ptr<bob::learn::misc::JFABase> m_jfa_base;
-
-    // y and z vectors/factors learned during the enrolment procedure
-    blitz::Array<double,1> m_y;
-    blitz::Array<double,1> m_z;
-
-    // cache
-    blitz::Array<double,1> m_cache_mVyDz;
-    mutable blitz::Array<double,1> m_cache_x;
-
-    // x vector/factor in cache when computing scores
-    mutable blitz::Array<double,1> m_tmp_Ux;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_JFAMACHINE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/JFATrainer.h b/bob/learn/misc/include/bob.learn.misc/JFATrainer.h
deleted file mode 100644
index 99070b5..0000000
--- a/bob/learn/misc/include/bob.learn.misc/JFATrainer.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/**
- * @date Tue Jul 19 12:16:17 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief JFA functions
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_JFATRAINER_H
-#define BOB_LEARN_MISC_JFATRAINER_H
-
-#include <blitz/array.h>
-#include <bob.learn.misc/GMMStats.h>
-#include <bob.learn.misc/FABaseTrainer.h>
-#include <bob.learn.misc/JFAMachine.h>
-#include <vector>
-
-#include <map>
-#include <string>
-#include <bob.core/array_copy.h>
-#include <boost/shared_ptr.hpp>
-#include <boost/random.hpp>
-#include <bob.core/logging.h>
-
-namespace bob { namespace learn { namespace misc {
-
-class JFATrainer
-{
-  public:
-    /**
-     * @brief Constructor
-     */
-    JFATrainer();
-
-    /**
-     * @brief Copy onstructor
-     */
-    JFATrainer(const JFATrainer& other);
-
-    /**
-     * @brief Destructor
-     */
-    virtual ~JFATrainer();
-
-    /**
-     * @brief Assignment operator
-     */
-    JFATrainer& operator=(const JFATrainer& other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const JFATrainer& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const JFATrainer& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const JFATrainer& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Sets the maximum number of EM-like iterations (for each subspace)
-     */
-    //void setMaxIterations(const size_t max_iterations)
-    //{ m_max_iterations = max_iterations; }
-
-    /**
-     * @brief Gets the maximum number of EM-like iterations (for each subspace)
-     */
-    //size_t getMaxIterations() const
-    //{ return m_max_iterations; }
-
-    /**
-     * @brief This methods performs some initialization before the EM loop.
-     */
-    virtual void initialize(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-
-    /**
-     * @brief This methods performs the e-Step to train the first subspace V
-     */
-    virtual void eStep1(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods performs the m-Step to train the first subspace V
-     */
-    virtual void mStep1(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods performs the finalization after training the first
-     * subspace V
-     */
-    virtual void finalize1(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods performs the e-Step to train the second subspace U
-     */
-    virtual void eStep2(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods performs the m-Step to train the second subspace U
-     */
-    virtual void mStep2(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods performs the finalization after training the second
-     * subspace U
-     */
-    virtual void finalize2(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods performs the e-Step to train the third subspace d
-     */
-    virtual void eStep3(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods performs the m-Step to train the third subspace d
-     */
-    virtual void mStep3(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods performs the finalization after training the third
-     * subspace d
-     */
-    virtual void finalize3(bob::learn::misc::JFABase& machine,
-      const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-
-    /**
-     * @brief This methods performs the main loops to train the subspaces U, V and d
-     */
-    //virtual void train_loop(bob::learn::misc::JFABase& machine,
-      //const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-    /**
-     * @brief This methods trains the subspaces U, V and d
-     */
-    //virtual void train(bob::learn::misc::JFABase& machine,
-      //const std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& ar);
-
-    /**
-     * @brief Enrol a client
-     */
-    void enrol(bob::learn::misc::JFAMachine& machine,
-      const std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& features,
-      const size_t n_iter);
-
-    /**
-     * @brief Sets the Random Number Generator
-     */
-    void setRng(const boost::shared_ptr<boost::mt19937> rng)
-    { m_rng = rng; }
-
-    /**
-     * @brief Gets the Random Number Generator
-     */
-    const boost::shared_ptr<boost::mt19937> getRng() const
-    { return m_rng; }
-
-    /**
-     * @brief Get the x speaker factors
-     */
-    const std::vector<blitz::Array<double,2> >& getX() const
-    { return m_base_trainer.getX(); }
-    /**
-     * @brief Get the y speaker factors
-     */
-    const std::vector<blitz::Array<double,1> >& getY() const
-    { return m_base_trainer.getY(); }
-    /**
-     * @brief Get the z speaker factors
-     */
-    const std::vector<blitz::Array<double,1> >& getZ() const
-    { return m_base_trainer.getZ(); }
-    /**
-     * @brief Set the x speaker factors
-     */
-    void setX(const std::vector<blitz::Array<double,2> >& X)
-    { m_base_trainer.setX(X); }
-    /**
-     * @brief Set the y speaker factors
-     */
-    void setY(const std::vector<blitz::Array<double,1> >& y)
-    { m_base_trainer.setY(y); }
-    /**
-     * @brief Set the z speaker factors
-     */
-    void setZ(const std::vector<blitz::Array<double,1> >& z)
-    { m_base_trainer.setZ(z); }
-
-    /**
-     * @brief Getters for the accumulators
-     */
-    const blitz::Array<double,3>& getAccVA1() const
-    { return m_base_trainer.getAccVA1(); }
-    const blitz::Array<double,2>& getAccVA2() const
-    { return m_base_trainer.getAccVA2(); }
-    const blitz::Array<double,3>& getAccUA1() const
-    { return m_base_trainer.getAccUA1(); }
-    const blitz::Array<double,2>& getAccUA2() const
-    { return m_base_trainer.getAccUA2(); }
-    const blitz::Array<double,1>& getAccDA1() const
-    { return m_base_trainer.getAccDA1(); }
-    const blitz::Array<double,1>& getAccDA2() const
-    { return m_base_trainer.getAccDA2(); }
-
-    /**
-     * @brief Setters for the accumulators, Very useful if the e-Step needs
-     * to be parallelized.
-     */
-    void setAccVA1(const blitz::Array<double,3>& acc)
-    { m_base_trainer.setAccVA1(acc); }
-    void setAccVA2(const blitz::Array<double,2>& acc)
-    { m_base_trainer.setAccVA2(acc); }
-    void setAccUA1(const blitz::Array<double,3>& acc)
-    { m_base_trainer.setAccUA1(acc); }
-    void setAccUA2(const blitz::Array<double,2>& acc)
-    { m_base_trainer.setAccUA2(acc); }
-    void setAccDA1(const blitz::Array<double,1>& acc)
-    { m_base_trainer.setAccDA1(acc); }
-    void setAccDA2(const blitz::Array<double,1>& acc)
-    { m_base_trainer.setAccDA2(acc); }
-
-
-  private:
-    // Attributes
-    //size_t m_max_iterations;
-    boost::shared_ptr<boost::mt19937> m_rng; ///< The random number generator for the inialization
-    bob::learn::misc::FABaseTrainer m_base_trainer;
-};
-
-} } } // namespaces
-
-#endif /* BOB_LEARN_MISC_JFATRAINER_H */
diff --git a/bob/learn/misc/include/bob.learn.misc/KMeansMachine.h b/bob/learn/misc/include/bob.learn.misc/KMeansMachine.h
deleted file mode 100644
index 5f8f5bf..0000000
--- a/bob/learn/misc/include/bob.learn.misc/KMeansMachine.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-#ifndef BOB_LEARN_MISC_KMEANSMACHINE_H
-#define BOB_LEARN_MISC_KMEANSMACHINE_H
-
-#include <blitz/array.h>
-#include <cfloat>
-
-#include <bob.io.base/HDF5File.h>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief This class implements a k-means classifier.
- * @details See Section 9.1 of Bishop, "Pattern recognition and machine learning", 2006
- */
-class KMeansMachine {
-  public:
-    /**
-     * Default constructor. Builds an otherwise invalid 0 x 0 k-means
-     * machine. This is equivalent to construct a LinearMachine with two
-     * size_t parameters set to 0, as in LinearMachine(0, 0).
-     */
-    KMeansMachine();
-
-    /**
-     * Constructor
-     * @param[in] n_means  The number of means
-     * @param[in] n_inputs The feature dimensionality
-     */
-    KMeansMachine(const size_t n_means, const size_t n_inputs);
-
-    /**
-     * Builds a new machine with the given means. Each row of the means
-     * matrix should represent a mean.
-     */
-    KMeansMachine(const blitz::Array<double,2>& means);
-
-    /**
-     * Copies another machine (copy constructor)
-     */
-    KMeansMachine(const KMeansMachine& other);
-
-    /**
-     * Starts a new KMeansMachine from an existing Configuration object.
-     */
-    KMeansMachine(bob::io::base::HDF5File& config);
-
-    /**
-     * Destructor
-     */
-    virtual ~KMeansMachine();
-
-    /**
-     * Assigns from a different machine
-     */
-    KMeansMachine& operator=(const KMeansMachine& other);
-
-    /**
-     * Equal to
-     */
-    bool operator==(const KMeansMachine& b) const;
-
-    /**
-     * Not equal to
-     */
-    bool operator!=(const KMeansMachine& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const KMeansMachine& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * Loads data from an existing configuration object. Resets the current
-     * state.
-     */
-    void load(bob::io::base::HDF5File& config);
-
-    /**
-     * Saves an existing machine to a Configuration object.
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * Output the minimum (Square Euclidean) distance between the input and
-     * one of the means (overrides Machine::forward)
-     */
-    void forward(const blitz::Array<double,1>& input, double& output) const;
-
-    /**
-     * Output the minimum (Square Euclidean) distance between the input and
-     * one of the means (overrides Machine::forward_)
-     * @warning Inputs are NOT checked
-     */
-    void forward_(const blitz::Array<double,1>& input, double& output) const;
-
-
-    /**
-     * Set the means
-     */
-    void setMeans(const blitz::Array<double,2>& means);
-
-    /**
-     * Set the i'th mean
-     */
-    void setMean(const size_t i, const blitz::Array<double,1>& mean);
-
-    /**
-     * Get a mean
-     * @param[in]   i    The index of the mean
-     * @param[out] mean The mean, a 1D array, with a length equal to the number of feature dimensions.
-     */
-    const blitz::Array<double,1> getMean(const size_t i) const;
-
-    /**
-     * Get the means (i.e. a 2D array, with as many rows as means, and as
-     * many columns as feature dimensions.)
-     */
-    const blitz::Array<double,2>& getMeans() const
-    { return m_means; }
-
-     /**
-     * Get the means in order to be updated (i.e. a 2D array, with as many
-     * rows as means, and as many columns as feature dimensions.)
-     * @warning Only trainers should use this function for efficiency reasons
-     */
-    blitz::Array<double,2>& updateMeans()
-    { return m_means; }
-
-    /**
-     * Return the power of two of the (Square Euclidean) distance of the
-     * sample, x, to the i'th mean
-     * @param x The data sample (feature vector)
-     * @param i The index of the mean
-     */
-    double getDistanceFromMean(const blitz::Array<double,1>& x,
-      const size_t i) const;
-
-    /**
-     * Calculate the index of the mean that is closest
-     * (in terms of Square Euclidean distance) to the data sample, x
-     * @param x The data sample (feature vector)
-     * @param closest_mean (output) The index of the mean closest to the sample
-     * @param min_distance (output) The distance of the sample from the closest mean
-     */
-    void getClosestMean(const blitz::Array<double,1>& x,
-      size_t &closest_mean, double &min_distance) const;
-
-    /**
-     * Output the minimum (Square Euclidean) distance between the input and
-     * one of the means
-     */
-    double getMinDistance(const blitz::Array<double,1>& input) const;
-
-    /**
-     * For each mean, find the subset of the samples
-     * that is closest to that mean, and calculate
-     * 1) the variance of that subset (the cluster variance)
-     * 2) the proportion of the samples represented by that subset (the cluster weight)
-     * @param[in]  data      The data
-     * @param[out] variances The cluster variances (one row per cluster),
-     *                       with as many columns as feature dimensions.
-     * @param[out] weights   A vector of weights, one per cluster
-     */
-    void getVariancesAndWeightsForEachCluster(const blitz::Array<double,2> &data, blitz::Array<double,2>& variances, blitz::Array<double,1>& weights) const;
-    /**
-     * Methods consecutively called by getVariancesAndWeightsForEachCluster()
-     * This should help for the parallelization on several nodes by splitting the data and calling
-     * getVariancesAndWeightsForEachClusterAcc() for each split. In this case, there is a need to sum
-     * with the m_cache_means, variances, and weights variables before performing the merge on one
-     * node using getVariancesAndWeightsForEachClusterFin().
-     */
-    void getVariancesAndWeightsForEachClusterInit(blitz::Array<double,2>& variances, blitz::Array<double,1>& weights) const;
-    void getVariancesAndWeightsForEachClusterAcc(const blitz::Array<double,2> &data, blitz::Array<double,2>& variances, blitz::Array<double,1>& weights) const;
-    void getVariancesAndWeightsForEachClusterFin(blitz::Array<double,2>& variances, blitz::Array<double,1>& weights) const;
-
-    /**
-     * Get the m_cache_means array.
-     * @warning This variable should only be used in the case you want to parallelize the
-     * getVariancesAndWeightsForEachCluster() method!
-     */
-    const blitz::Array<double,2>& getCacheMeans() const
-    { return m_cache_means; }
-
-    /**
-     * Set the m_cache_means array.
-     * @warning This variable should only be used in the case you want to parallelize the
-     * getVariancesAndWeightsForEachCluster() method!
-     */
-    void setCacheMeans(const blitz::Array<double,2>& cache_means);
-
-    /**
-     * Resize the means
-     */
-    void resize(const size_t n_means, const size_t n_inputs);
-
-    /**
-     * Return the number of means
-     */
-    size_t getNMeans() const { return m_n_means; }
-
-    /**
-     * Return the number of inputs
-     */
-    size_t getNInputs() const { return m_n_inputs; }
-
-    /**
-     * Prints a KMeansMachine in the output stream
-     */
-    friend std::ostream& operator<<(std::ostream& os, const KMeansMachine& km);
-
-
-  private:
-     /**
-     * The number of means
-     */
-    size_t m_n_means;
-
-    /**
-     * The number of inputs
-     */
-    size_t m_n_inputs;
-
-    /**
-     * The means (each row is a mean)
-     */
-    blitz::Array<double,2> m_means;
-
-    /**
-     * cache to avoid re-allocation
-     */
-    mutable blitz::Array<double,2> m_cache_means;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_KMEANSMACHINE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/KMeansTrainer.h b/bob/learn/misc/include/bob.learn.misc/KMeansTrainer.h
deleted file mode 100644
index 432c829..0000000
--- a/bob/learn/misc/include/bob.learn.misc/KMeansTrainer.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-#ifndef BOB_LEARN_MISC_KMEANSTRAINER_H
-#define BOB_LEARN_MISC_KMEANSTRAINER_H
-
-#include <bob.learn.misc/KMeansMachine.h>
-#include <boost/version.hpp>
-#include <boost/random/mersenne_twister.hpp>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * Trains a KMeans machine.
- * @brief This class implements the expectation-maximisation algorithm for a k-means machine.
- * @details See Section 9.1 of Bishop, "Pattern recognition and machine learning", 2006
- *          It uses a random initialisation of the means followed by the expectation-maximization algorithm
- */
-class KMeansTrainer
-{
-  public:
-    /**
-     * @brief This enumeration defines different initialization methods for
-     * K-means
-     */
-    typedef enum {
-      RANDOM=0,
-      RANDOM_NO_DUPLICATE
-#if BOOST_VERSION >= 104700
-      ,
-      KMEANS_PLUS_PLUS
-#endif
-    }
-    InitializationMethod;
-
-    /**
-     * @brief Constructor
-     */
-    KMeansTrainer(InitializationMethod=RANDOM);
-
-    /*     
-    KMeansTrainer(double convergence_threshold=0.001,
-      size_t max_iterations=10, bool compute_likelihood=true,
-      InitializationMethod=RANDOM);*/
-      
-
-    /**
-     * @brief Virtualize destructor
-     */
-    virtual ~KMeansTrainer() {}
-
-    /**
-     * @brief Copy constructor
-     */
-    KMeansTrainer(const KMeansTrainer& other);
-
-    /**
-     * @brief Assigns from a different machine
-     */
-    KMeansTrainer& operator=(const KMeansTrainer& other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const KMeansTrainer& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const KMeansTrainer& b) const;
-
-    /**
-     * @brief The name for this trainer
-     */
-    virtual std::string name() const { return "KMeansTrainer"; }
-
-    /**
-     * @brief Initialise the means randomly.
-     * Data is split into as many chunks as there are means,
-     * then each mean is set to a random example within each chunk.
-     */
-    void initialize(bob::learn::misc::KMeansMachine& kMeansMachine,
-      const blitz::Array<double,2>& sampler);
-
-    /**
-     * @brief Accumulate across the dataset:
-     * - zeroeth and first order statistics
-     * - average (Square Euclidean) distance from the closest mean
-     * Implements EMTrainer::eStep(double &)
-     */
-    void eStep(bob::learn::misc::KMeansMachine& kmeans,
-      const blitz::Array<double,2>& data);
-
-    /**
-     * @brief Updates the mean based on the statistics from the E-step.
-     */
-    void mStep(bob::learn::misc::KMeansMachine& kmeans);
-
-    /**
-     * @brief This functions returns the average min (Square Euclidean)
-     * distance (average distance to the closest mean)
-     */
-    double computeLikelihood(bob::learn::misc::KMeansMachine& kmeans);
-
-
-    /**
-     * @brief Reset the statistics accumulators
-     * to the correct size and a value of zero.
-     */
-    bool resetAccumulators(bob::learn::misc::KMeansMachine& kMeansMachine);
-
-    /**
-     * @brief Sets the Random Number Generator
-     */
-    void setRng(const boost::shared_ptr<boost::mt19937> rng)
-    { m_rng = rng; }
-
-    /**
-     * @brief Gets the Random Number Generator
-     */
-    const boost::shared_ptr<boost::mt19937> getRng() const
-    { return m_rng; }
-
-    /**
-     * @brief Sets the initialization method used to generate the initial means
-     */
-    void setInitializationMethod(InitializationMethod v) { m_initialization_method = v; }
-
-    /**
-     * @brief Gets the initialization method used to generate the initial means
-     */
-    InitializationMethod getInitializationMethod() const { return m_initialization_method; }
-
-    /**
-     * @brief Returns the internal statistics. Useful to parallelize the E-step
-     */
-    const blitz::Array<double,1>& getZeroethOrderStats() const { return m_zeroethOrderStats; }
-    const blitz::Array<double,2>& getFirstOrderStats() const { return m_firstOrderStats; }
-    double getAverageMinDistance() const { return m_average_min_distance; }
-    /**
-     * @brief Sets the internal statistics. Useful to parallelize the E-step
-     */
-    void setZeroethOrderStats(const blitz::Array<double,1>& zeroethOrderStats);
-    void setFirstOrderStats(const blitz::Array<double,2>& firstOrderStats);
-    void setAverageMinDistance(const double value) { m_average_min_distance = value; }
-
-
-  private:
-  
-    /**
-     * @brief The initialization method
-     * Check that there is no duplicated means during the random initialization
-     */
-    InitializationMethod m_initialization_method;
-
-    /**
-     * @brief The random number generator for the inialization
-     */
-    boost::shared_ptr<boost::mt19937> m_rng;
-
-    /**
-     * @brief Average min (Square Euclidean) distance
-     */
-    double m_average_min_distance;
-
-    /**
-     * @brief Zeroeth order statistics accumulator.
-     * The k'th value in m_zeroethOrderStats is the denominator of
-     * equation 9.4, Bishop, "Pattern recognition and machine learning", 2006
-     */
-    blitz::Array<double,1> m_zeroethOrderStats;
-
-    /**
-     * @brief First order statistics accumulator.
-     * The k'th row of m_firstOrderStats is the numerator of
-     * equation 9.4, Bishop, "Pattern recognition and machine learning", 2006
-     */
-    blitz::Array<double,2> m_firstOrderStats;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_KMEANSTRAINER_H
diff --git a/bob/learn/misc/include/bob.learn.misc/LinearScoring.h b/bob/learn/misc/include/bob.learn.misc/LinearScoring.h
deleted file mode 100644
index aeac718..0000000
--- a/bob/learn/misc/include/bob.learn.misc/LinearScoring.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @date Wed Jul 13 16:00:04 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-#ifndef BOB_LEARN_MISC_LINEARSCORING_H
-#define BOB_LEARN_MISC_LINEARSCORING_H
-
-#include <blitz/array.h>
-#include <boost/shared_ptr.hpp>
-#include <vector>
-#include <bob.learn.misc/GMMMachine.h>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * Compute a matrix of scores using linear scoring.
- *
- * @warning Each GMM must have the same size.
- *
- * @param models        list of mean supervector for the client models
- * @param ubm_mean      mean supervector of the world model
- * @param ubm_variance  variance supervector of the world model
- * @param test_stats    list of accumulate statistics for each test trial
- * @param test_channelOffset  list of channel offset if any (for JFA/ISA for instance)
- * @param frame_length_normalisation   perform a normalisation by the number of feature vectors
- * @param[out] scores 2D matrix of scores, <tt>scores[m, s]</tt> is the score for model @c m against statistics @c s
- * @warning the output scores matrix should have the correct size (number of models x number of test_stats)
- */
-void linearScoring(const std::vector<blitz::Array<double,1> >& models,
-                   const blitz::Array<double,1>& ubm_mean, const blitz::Array<double,1>& ubm_variance,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const std::vector<blitz::Array<double, 1> >& test_channelOffset,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double,2>& scores);
-void linearScoring(const std::vector<blitz::Array<double,1> >& models,
-                   const blitz::Array<double,1>& ubm_mean, const blitz::Array<double,1>& ubm_variance,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double,2>& scores);
-
-/**
- * Compute a matrix of scores using linear scoring.
- *
- * @warning Each GMM must have the same size.
- *
- * @param models      list of client models as GMMMachines
- * @param ubm         world model as a GMMMachine
- * @param test_stats  list of accumulate statistics for each test trial
- * @param frame_length_normalisation   perform a normalisation by the number of feature vectors
- * @param[out] scores 2D matrix of scores, <tt>scores[m, s]</tt> is the score for model @c m against statistics @c s
- * @warning the output scores matrix should have the correct size (number of models x number of test_stats)
- */
-void linearScoring(const std::vector<boost::shared_ptr<const bob::learn::misc::GMMMachine> >& models,
-                   const bob::learn::misc::GMMMachine& ubm,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double,2>& scores);
-/**
- * Compute a matrix of scores using linear scoring.
- *
- * @warning Each GMM must have the same size.
- *
- * @param models      list of client models as GMMMachines
- * @param ubm         world model as a GMMMachine
- * @param test_stats  list of accumulate statistics for each test trial
- * @param test_channelOffset  list of channel offset if any (for JFA/ISA for instance)
- * @param frame_length_normalisation   perform a normalisation by the number of feature vectors
- * @param[out] scores 2D matrix of scores, <tt>scores[m, s]</tt> is the score for model @c m against statistics @c s
- * @warning the output scores matrix should have the correct size (number of models x number of test_stats)
- */
-void linearScoring(const std::vector<boost::shared_ptr<const bob::learn::misc::GMMMachine> >& models,
-                   const bob::learn::misc::GMMMachine& ubm,
-                   const std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats,
-                   const std::vector<blitz::Array<double, 1> >& test_channelOffset,
-                   const bool frame_length_normalisation,
-                   blitz::Array<double,2>& scores);
-
-/**
- * Compute a score using linear scoring.
- *
- * @param model         mean supervector for the client model
- * @param ubm_mean      mean supervector of the world model
- * @param ubm_variance  variance supervector of the world model
- * @param test_stats    accumulate statistics of the test trial
- * @param test_channelOffset  channel offset
- * @param frame_length_normalisation   perform a normalisation by the number of feature vectors
- */
-double linearScoring(const blitz::Array<double,1>& model,
-                   const blitz::Array<double,1>& ubm_mean, const blitz::Array<double,1>& ubm_variance,
-                   const bob::learn::misc::GMMStats& test_stats,
-                   const blitz::Array<double,1>& test_channelOffset,
-                   const bool frame_length_normalisation);
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_LINEARSCORING_H
diff --git a/bob/learn/misc/include/bob.learn.misc/MAP_GMMTrainer.h b/bob/learn/misc/include/bob.learn.misc/MAP_GMMTrainer.h
deleted file mode 100644
index c6c7cf7..0000000
--- a/bob/learn/misc/include/bob.learn.misc/MAP_GMMTrainer.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- *
- * @brief This class implements the maximum a posteriori M-step of the expectation-maximisation algorithm for a GMM Machine. The prior parameters are encoded in the form of a GMM (e.g. a universal background model). The EM algorithm thus performs GMM adaptation.
- * @details See Section 3.4 of Reynolds et al., "Speaker Verification Using Adapted Gaussian Mixture Models", Digital Signal Processing, 2000. We use a "single adaptation coefficient", alpha_i, and thus a single relevance factor, r.
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_MAP_GMMTRAINER_H
-#define BOB_LEARN_MISC_MAP_GMMTRAINER_H
-
-#include <bob.learn.misc/GMMBaseTrainer.h>
-#include <limits>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief This class implements the maximum a posteriori M-step of the expectation-maximisation algorithm for a GMM Machine. The prior parameters are encoded in the form of a GMM (e.g. a universal background model). The EM algorithm thus performs GMM adaptation.
- * @details See Section 3.4 of Reynolds et al., "Speaker Verification Using Adapted Gaussian Mixture Models", Digital Signal Processing, 2000. We use a "single adaptation coefficient", alpha_i, and thus a single relevance factor, r.
- */
-class MAP_GMMTrainer
-{
-  public:
-    /**
-     * @brief Default constructor
-     */
-    MAP_GMMTrainer(
-      const bool update_means=true,
-      const bool update_variances=false, 
-      const bool update_weights=false,
-      const double mean_var_update_responsibilities_threshold = std::numeric_limits<double>::epsilon(),
-      const bool reynolds_adaptation=false, 
-      const double relevance_factor=4, 
-      const double alpha=0.5,
-      boost::shared_ptr<bob::learn::misc::GMMMachine> prior_gmm = 0);
-
-    /**
-     * @brief Copy constructor
-     */
-    MAP_GMMTrainer(const MAP_GMMTrainer& other);
-
-    /**
-     * @brief Destructor
-     */
-    virtual ~MAP_GMMTrainer();
-
-    /**
-     * @brief Initialization
-     */
-    void initialize(bob::learn::misc::GMMMachine& gmm);
-
-    /**
-     * @brief Assigns from a different MAP_GMMTrainer
-     */
-    MAP_GMMTrainer& operator=(const MAP_GMMTrainer &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const MAP_GMMTrainer& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const MAP_GMMTrainer& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const MAP_GMMTrainer& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Set the GMM to use as a prior for MAP adaptation.
-     * Generally, this is a "universal background model" (UBM),
-     * also referred to as a "world model".
-     */
-    bool setPriorGMM(boost::shared_ptr<bob::learn::misc::GMMMachine> prior_gmm);
-
-    /**
-     * @brief Calculates and saves statistics across the dataset,
-     * and saves these as m_ss. Calculates the average
-     * log likelihood of the observations given the GMM,
-     * and returns this in average_log_likelihood.
-     *
-     * The statistics, m_ss, will be used in the mStep() that follows.
-     * Implements EMTrainer::eStep(double &)
-     */
-     void eStep(bob::learn::misc::GMMMachine& gmm,
-      const blitz::Array<double,2>& data){
-      m_gmm_base_trainer.eStep(gmm,data);
-     }
-
-
-    /**
-     * @brief Performs a maximum a posteriori (MAP) update of the GMM
-     * parameters using the accumulated statistics in m_ss and the
-     * parameters of the prior model
-     * Implements EMTrainer::mStep()
-     */
-    void mStep(bob::learn::misc::GMMMachine& gmm);
-
-    /**
-     * @brief Computes the likelihood using current estimates of the latent
-     * variables
-     */
-    double computeLikelihood(bob::learn::misc::GMMMachine& gmm){
-      return m_gmm_base_trainer.computeLikelihood(gmm);
-    }    
-    
-    bool getReynoldsAdaptation()
-    {return m_reynolds_adaptation;}
-
-    void setReynoldsAdaptation(const bool reynolds_adaptation)
-    {m_reynolds_adaptation = reynolds_adaptation;}
-    
-
-    double getRelevanceFactor()
-    {return m_relevance_factor;}
-
-    void setRelevanceFactor(const double relevance_factor)
-    {m_relevance_factor = relevance_factor;}
-
-
-    double getAlpha()
-    {return m_alpha;}
-
-    void setAlpha(const double alpha)
-    {m_alpha = alpha;}
-
-
-  protected:
-
-    /**
-     * The relevance factor for MAP adaptation, r (see Reynolds et al., \"Speaker Verification Using Adapted Gaussian Mixture Models\", Digital Signal Processing, 2000).
-     */
-    double m_relevance_factor;
-
-    /**
-    Base Trainer for the MAP algorithm. Basically implements the e-step
-    */ 
-    bob::learn::misc::GMMBaseTrainer m_gmm_base_trainer;
-
-    /**
-     * The GMM to use as a prior for MAP adaptation.
-     * Generally, this is a "universal background model" (UBM),
-     * also referred to as a "world model"
-     */
-    boost::shared_ptr<bob::learn::misc::GMMMachine> m_prior_gmm;
-
-    /**
-     * The alpha for the Torch3-like adaptation
-     */
-    double m_alpha;
-    /**
-     * Whether Torch3-like adaptation should be used or not
-     */
-    bool m_reynolds_adaptation;
-
-  private:
-    /// cache to avoid re-allocation
-    mutable blitz::Array<double,1> m_cache_alpha;
-    mutable blitz::Array<double,1> m_cache_ml_weights;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_MAP_GMMTRAINER_H
diff --git a/bob/learn/misc/include/bob.learn.misc/ML_GMMTrainer.h b/bob/learn/misc/include/bob.learn.misc/ML_GMMTrainer.h
deleted file mode 100644
index 13cda74..0000000
--- a/bob/learn/misc/include/bob.learn.misc/ML_GMMTrainer.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * @date Tue May 10 11:35:58 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- *
- * @brief This class implements the maximum likelihood M-step of the expectation-maximisation algorithm for a GMM Machine.
- * @details See Section 9.2.2 of Bishop, "Pattern recognition and machine learning", 2006
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_ML_GMMTRAINER_H
-#define BOB_LEARN_MISC_ML_GMMTRAINER_H
-
-#include <bob.learn.misc/GMMBaseTrainer.h>
-#include <limits>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief This class implements the maximum likelihood M-step of the
- *   expectation-maximisation algorithm for a GMM Machine.
- * @details See Section 9.2.2 of Bishop,
- *  "Pattern recognition and machine learning", 2006
- */
-class ML_GMMTrainer{
-  public:
-    /**
-     * @brief Default constructor
-     */
-    ML_GMMTrainer(const bool update_means=true,
-                  const bool update_variances=false, 
-                  const bool update_weights=false,
-                  const double mean_var_update_responsibilities_threshold = std::numeric_limits<double>::epsilon());
-
-    /**
-     * @brief Copy constructor
-     */
-    ML_GMMTrainer(const ML_GMMTrainer& other);
-
-    /**
-     * @brief Destructor
-     */
-    virtual ~ML_GMMTrainer();
-
-    /**
-     * @brief Initialisation before the EM steps
-     */
-    void initialize(bob::learn::misc::GMMMachine& gmm);
-
-    /**
-     * @brief Calculates and saves statistics across the dataset,
-     * and saves these as m_ss. Calculates the average
-     * log likelihood of the observations given the GMM,
-     * and returns this in average_log_likelihood.
-     *
-     * The statistics, m_ss, will be used in the mStep() that follows.
-     * Implements EMTrainer::eStep(double &)
-     */
-     void eStep(bob::learn::misc::GMMMachine& gmm,
-      const blitz::Array<double,2>& data){
-      m_gmm_base_trainer.eStep(gmm,data);
-     }
-
-    /**
-     * @brief Performs a maximum likelihood (ML) update of the GMM parameters
-     * using the accumulated statistics in m_ss
-     * Implements EMTrainer::mStep()
-     */
-    void mStep(bob::learn::misc::GMMMachine& gmm);
-
-    /**
-     * @brief Computes the likelihood using current estimates of the latent
-     * variables
-     */
-    double computeLikelihood(bob::learn::misc::GMMMachine& gmm){
-      return m_gmm_base_trainer.computeLikelihood(gmm);
-    }
-
-
-    /**
-     * @brief Assigns from a different ML_GMMTrainer
-     */
-    ML_GMMTrainer& operator=(const ML_GMMTrainer &other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const ML_GMMTrainer& b) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const ML_GMMTrainer& b) const;
-
-    /**
-     * @brief Similar to
-     */
-    bool is_similar_to(const ML_GMMTrainer& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-      
-    
-  protected:
-
-    /**
-    Base Trainer for the MAP algorithm. Basically implements the e-step
-    */ 
-    bob::learn::misc::GMMBaseTrainer m_gmm_base_trainer;
-
-
-  private:
-    /**
-     * @brief Add cache to avoid re-allocation at each iteration
-     */
-    mutable blitz::Array<double,1> m_cache_ss_n_thresholded;
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_ML_GMMTRAINER_H
diff --git a/bob/learn/misc/include/bob.learn.misc/PLDAMachine.h b/bob/learn/misc/include/bob.learn.misc/PLDAMachine.h
deleted file mode 100644
index c750857..0000000
--- a/bob/learn/misc/include/bob.learn.misc/PLDAMachine.h
+++ /dev/null
@@ -1,702 +0,0 @@
-/**
- * @date Fri Oct 14 18:07:56 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief Machines that implements the Probabilistic Linear Discriminant
- *   Analysis Model of Prince and Helder,
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_PLDAMACHINE_H
-#define BOB_LEARN_MISC_PLDAMACHINE_H
-
-#include <blitz/array.h>
-#include <bob.io.base/HDF5File.h>
-#include <map>
-#include <iostream>
-#include <stdexcept>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief This class is a container for the \f$F\f$, \f$G\f$ and \f$\Sigma\f$
- * matrices and the mean vector \f$\mu\f$ of a PLDA model. This also
- * precomputes useful matrices to make the model scalable.\n
- * References:\n
- * 1. 'A Scalable Formulation of Probabilistic Linear Discriminant Analysis:
- *     Applied to Face Recognition', Laurent El Shafey, Chris McCool,
- *     Roy Wallace, Sebastien Marcel, TPAMI'2013
- * 2. 'Probabilistic Linear Discriminant Analysis for Inference About
- *     Identity', Prince and Elder, ICCV'2007\n
- * 3. 'Probabilistic Models for Inference about Identity', Li, Fu, Mohammed,
- *     Elder and Prince, TPAMI'2012
- */
-class PLDABase
-{
-  public:
-    /**
-     * @brief Default constructor.\n Builds an otherwise invalid 0x0x0
-     * PLDABase.
-     */
-    PLDABase();
-    /**
-     * @brief Constructor, builds a new PLDABase.\n \f$F\f$, \f$G\f$
-     * and \f$\Sigma\f$ are initialized to the 'eye' matrix (matrix with 1's
-     * on the diagonal and 0 outside), and \f$\mu\f$ is initialized to 0.
-     *
-     * @param dim_d Dimensionality of the feature vector
-     * @param dim_f size of \f$F\f$ (dim_d x dim_f)
-     * @param dim_g size of \f$G\f$ (dim_d x dim_g)
-     * @param variance_threshold The smallest possible value of the variance
-     *                           (Ignored if set to 0.)
-     */
-    PLDABase(const size_t dim_d, const size_t dim_f,
-      const size_t dim_g, const double variance_threshold=0.);
-    /**
-     * @brief Copies another PLDABase
-     */
-    PLDABase(const PLDABase& other);
-    /**
-     * @brief Starts a new PLDABase from an existing configuration
-     * object.
-     * @param config HDF5 configuration file
-     */
-    PLDABase(bob::io::base::HDF5File& config);
-
-    /**
-     * @brief Just to virtualize the destructor
-     */
-    virtual ~PLDABase();
-
-    /**
-     * @brief Assigns from a different PLDABase
-     */
-    PLDABase& operator=(const PLDABase &other);
-
-    /**
-     * @brief Equal to.\n Even precomputed members such as \f$\alpha\f$,
-     * \f$\beta\f$ and \f$\gamma_a\f$'s are compared!
-     */
-    bool operator==(const PLDABase& b) const;
-    /**
-     * @brief Not equal to.\n Defined as the negation of operator==
-     */
-    bool operator!=(const PLDABase& b) const;
-    /**
-     * @brief Similar to.\n Even precomputed members such as \f$\alpha\f$,
-     * \f$\beta\f$ and \f$\gamma_a\f$'s are compared!
-     */
-    bool is_similar_to(const PLDABase& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Loads data from an existing configuration object. Resets the
-     * current state.
-     * @param config HDF5 configuration file
-     */
-    void load(bob::io::base::HDF5File& config);
-    /**
-     * @brief Saves an existing machine to a configuration object.
-     * @param config HDF5 configuration file
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * @brief Resizes the PLDABase.
-     * @warning \f$F\f$, \f$G\f$, \f$\Sigma\f$, \f$\mu\f$ and the variance
-     * flooring thresholds will be reinitialized!
-     * @param dim_d Dimensionality of the feature vector
-     * @param dim_f Rank of \f$F\f$ (dim_d x dim_f)
-     * @param dim_g Rank of \f$G\f$ (dim_d x dim_g)
-     */
-    void resize(const size_t dim_d, const size_t dim_f, const size_t dim_g);
-
-    /**
-     * @brief Gets the \f$F\f$ subspace/matrix of the PLDA model
-     */
-    const blitz::Array<double,2>& getF() const
-    { return m_F; }
-    /**
-     * @brief Sets the \f$F\f$ subspace/matrix of the PLDA model
-     */
-    void setF(const blitz::Array<double,2>& F);
-    /**
-     * @brief Returns the current \f$F\f$ matrix/subspace of the PLDA model
-     * in order to be updated.
-     * @warning Use with care. Only trainers should use this function for
-     * efficiency reasons.
-     */
-    blitz::Array<double,2>& updateF()
-    { return m_F; }
-
-    /**
-     * @brief Gets the \f$G\f$ subspace/matrix of the PLDA model
-     */
-    const blitz::Array<double,2>& getG() const
-    { return m_G; }
-    /**
-     * @brief Sets the \f$G\f$ subspace/matrix of the PLDA model
-     */
-    void setG(const blitz::Array<double,2>& G);
-    /**
-     * @brief Returns the current \f$G\f$ subspace/matrix of the PLDA model
-     * in order to be updated.
-     * @warning Use with care. Only trainers should use this function for
-     * efficiency reasons.
-     */
-    blitz::Array<double,2>& updateG()
-    { return m_G; }
-
-    /**
-     * @brief Gets the \f$\Sigma\f$ (diagonal) covariance matrix of the PLDA
-     * model
-     */
-    const blitz::Array<double,1>& getSigma() const
-    { return m_sigma; }
-    /**
-     * @brief Sets the \f$\Sigma\f$ (diagonal) covariance matrix of the PLDA
-     * model
-     */
-    void setSigma(const blitz::Array<double,1>& s);
-    /**
-     * @brief Returns the current \f$\Sigma\f$ (diagonal) covariance matrix of
-     * the PLDA model in order to be updated.
-     * @warning Use with care. Only trainers should use this function for
-     * efficiency reasons. Variance threshold should be applied after
-     * updating \f$\Sigma\f$!
-     */
-    blitz::Array<double,1>& updateSigma()
-    { return m_sigma; }
-
-    /**
-     * @brief Gets the \f$\mu\f$ mean vector of the PLDA model
-     */
-    const blitz::Array<double,1>& getMu() const
-    { return m_mu; }
-    /**
-     * @brief Sets the \f$\mu\f$ mean vector of the PLDA model
-     */
-    void setMu(const blitz::Array<double,1>& mu);
-    /**
-     * @brief Returns the current \f$\mu\f$ mean vector of the PLDA model
-     * in order to be updated.
-     * @warning Use with care. Only trainers should use this function for
-     * efficiency reasons.
-     */
-    blitz::Array<double,1>& updateMu()
-    { return m_mu; }
-
-    /**
-     * @brief Gets the variance flooring threshold
-     */
-    double getVarianceThreshold() const
-    { return m_variance_threshold; }
-    /**
-     * @brief Sets the variance flooring threshold
-     */
-    void setVarianceThreshold(const double value);
-    /**
-     * @brief Apply the variance flooring thresholds.
-     * This method is automatically called when using setVarianceThresholds().
-     * @warning It is only useful when using updateVarianceThreshods(),
-     * and should mostly be done by trainers
-     */
-    void applyVarianceThreshold();
-
-    /**
-     * @brief Gets the feature dimensionality
-     */
-    size_t getDimD() const
-    { return m_dim_d; }
-    /**
-     * @brief Gets the size/rank the \f$F\f$ subspace/matrix of the PLDA model
-     */
-    size_t getDimF() const
-    { return m_dim_f; }
-    /**
-     * @brief Gets the size/rank the \f$G\f$ subspace/matrix of the PLDA model
-     */
-    size_t getDimG() const
-    { return m_dim_g; }
-
-    /**
-     * @brief Precomputes useful values such as \f$\Sigma^{-1}\f$,
-     * \f$G^{T}\Sigma^{-1}\f$, \f$\alpha\f$, \f$\beta\f$, and
-     * \f$F^{T}\beta\f$.
-     * @warning Previous \f$\gamma_a\f$ values and log likelihood constant
-     * terms are cleared.
-     */
-    void precompute();
-    /**
-     * @brief Precomputes useful values for the log likelihood
-     * \f$\log(\det(\alpha))\f$ and \f$\log(\det(\Sigma))\f$.
-     */
-    void precomputeLogLike();
-    /**
-     * @brief Gets the inverse vector/diagonal matrix of \f$\Sigma^{-1}\f$
-     */
-    const blitz::Array<double,1>& getISigma() const
-    { return m_cache_isigma; }
-    /**
-     * @brief Gets the \f$\alpha\f$ matrix.
-     * \f$\alpha = (Id + G^T \Sigma^{-1} G)^{-1} = \mathcal{G}\f$
-     */
-    const blitz::Array<double,2>& getAlpha() const
-    { return m_cache_alpha; }
-    /**
-     * @brief Gets the \f$\beta\f$ matrix
-     * \f$\beta = (\Sigma + G G^T)^{-1} = \mathcal{S} =
-     *    \Sigma^{-1} - \Sigma^{-1} G \mathcal{G} G^{T} \Sigma^{-1}\f$
-     */
-    const blitz::Array<double,2>& getBeta() const
-    { return m_cache_beta; }
-    /**
-     * @brief Gets the \f$\gamma_a\f$ matrix for a given \f$a\f$ (number of
-     * samples).
-     * \f$\gamma_{a} = (Id + a F^T \beta F)^{-1} = \mathcal{F}_{a}\f$
-     * @warning an exception is thrown if \f$\gamma_a\f$ does not exists
-     */
-    const blitz::Array<double,2>& getGamma(const size_t a) const;
-    /**
-     * @brief Gets the \f$\gamma_a\f$ matrix for a given \f$a\f$ (number of
-     * samples).
-     * \f$\gamma_a = (Id + a F^T \beta F)^{-1} = \mathcal{F}_{a}\f$
-     * @warning The matrix is computed if it does not already exists
-     */
-    const blitz::Array<double,2>& getAddGamma(const size_t a);
-    /**
-     * @brief Gets the \f$F^T \beta\f$ matrix
-     */
-    const blitz::Array<double,2>& getFtBeta() const
-    { return m_cache_Ft_beta; }
-    /**
-     * @brief Gets the \f$G^T \Sigma^{-1}\f$ matrix
-     */
-    const blitz::Array<double,2>& getGtISigma() const
-    { return m_cache_Gt_isigma; }
-    /**
-     * @brief Gets \f$\log(\det(\alpha))\f$
-     */
-    double getLogDetAlpha() const
-    { return m_cache_logdet_alpha; }
-    /**
-     * @brief Gets \f$\log(\det(\Sigma))\f$
-     */
-    double getLogDetSigma() const
-    { return m_cache_logdet_sigma; }
-    /**
-     * @brief Computes the log likelihood constant term for a given \f$a\f$
-     * (number of samples), given the provided \f$\gamma_a\f$ matrix
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     */
-    double computeLogLikeConstTerm(const size_t a,
-      const blitz::Array<double,2>& gamma_a) const;
-    /**
-     * @brief Computes the log likelihood constant term for a given \f$a\f$
-     * (number of samples)
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     * @warning: gamma_a will be computed and added if it does
-     *  not already exists
-     */
-    double computeLogLikeConstTerm(const size_t a);
-    /**
-     * @brief Tells if the log likelihood constant term for a given \f$a\f$
-     * (number of samples) exists
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     */
-    bool hasLogLikeConstTerm(const size_t a) const
-    { return (m_cache_loglike_constterm.find(a) != m_cache_loglike_constterm.end()); }
-    /**
-     * @brief Gets the log likelihood constant term for a given \f$a\f$
-     * (number of samples)
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     * @warning an exception is thrown if the value does not exists
-     */
-    double getLogLikeConstTerm(const size_t a) const;
-    /**
-     * @brief Gets the log likelihood constant term for a given \f$a\f$
-     * (number of samples)
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     * @warning The value is computed if it does not already exists
-     */
-    double getAddLogLikeConstTerm(const size_t a);
-
-    /**
-     * @brief Computes the \f$\gamma_a\f$ matrix for a given \f$a\f$ (number
-     * of samples) and put the result in the provided array.
-     * \f$\gamma_a = (Id + a F^T \beta F)^{-1}\f$
-     */
-    void computeGamma(const size_t a, blitz::Array<double,2> res) const;
-    /**
-     * @brief Tells if the \f$\gamma_a\f$ matrix for a given a (number of
-     * samples) exists.
-     * \f$\gamma_a = (Id + a F^T \beta F)^{-1}\f$
-     */
-    bool hasGamma(const size_t a) const
-    { return (m_cache_gamma.find(a) != m_cache_gamma.end()); }
-
-    /**
-     * @brief Clears the maps (\f$\gamma_a\f$ and loglike_constterm_a).
-     */
-    void clearMaps();
-
-    /**
-     * @brief Gets the log-likelihood of an observation, given the current model
-     * and the latent variables (point estimate).\n
-     * This will basically compute \f$p(x_{ij} | h_{i}, w_{ij}, \Theta)\f$\n
-     * , given by \n
-     * \f$\mathcal{N}(x_{ij}|[\mu + F h_{i} + G w_{ij} + \epsilon_{ij}, \Sigma])\f$\n
-     * , which is in logarithm, \n
-     * \f$-\frac{D}{2} log(2\pi) -\frac{1}{2} log(det(\Sigma)) -\frac{1}{2} {(x_{ij}-(\mu+F h_{i}+G w_{ij}))^{T}\Sigma^{-1}(x_{ij}-(\mu+F h_{i}+G w_{ij}))}\f$.
-     */
-    double computeLogLikelihoodPointEstimate(const blitz::Array<double,1>& xij,
-      const blitz::Array<double,1>& hi, const blitz::Array<double,1>& wij) const;
-
-    // Friend method declaration
-    friend std::ostream& operator<<(std::ostream& os, const PLDABase& m);
-
-
-  private:
-    // Attributes
-    size_t m_dim_d; ///< Dimensionality of the input feature vector
-    size_t m_dim_f; ///< Size/rank of the \f$F\f$ subspace
-    size_t m_dim_g; ///< Size/rank of the \f$G\f$ subspace
-    blitz::Array<double,2> m_F; ///< \f$F\f$ subspace of the PLDA model
-    blitz::Array<double,2> m_G; ///< \f$G\f$ subspace of the PLDA model
-    /**
-     * @brief \f$\Sigma\f$ diagonal (by assumption) covariance matrix of the
-     * PLDA model
-     */
-    blitz::Array<double,1> m_sigma;
-    blitz::Array<double,1> m_mu; ///< \f$\mu\f$ mean vector of the PLDA model
-    /**
-     * @brief The variance flooring thresholds, i.e. the minimum allowed
-     * value of variance m_sigma in each dimension.
-     * The variance will be set to this value if an attempt is made
-     * to set it to a smaller value.
-     */
-    double m_variance_threshold;
-
-    // Internal values very useful used to optimize the code
-    blitz::Array<double,1> m_cache_isigma; ///< \f$\Sigma^{-1}\f$
-    blitz::Array<double,2> m_cache_alpha; ///< \f$\alpha = (Id + G^T \Sigma^{-1} G)^{-1}\f$
-    /**
-     * @brief \f$\beta = (\Sigma+G G^T)^{-1} = (\Sigma^{-1} - \Sigma^{-1} G \alpha G^T \Sigma^{-1})^{-1}\f$
-     */
-    blitz::Array<double,2> m_cache_beta;
-    std::map<size_t, blitz::Array<double,2> > m_cache_gamma; ///< \f$\gamma_{a} = (Id + a F^T \beta F)^{-1}\f$
-    blitz::Array<double,2> m_cache_Ft_beta; ///< \f$F^{T} \beta \f$
-    blitz::Array<double,2> m_cache_Gt_isigma; ///< \f$G^{T} \Sigma^{-1} \f$
-    double m_cache_logdet_alpha; ///< \f$\log(\det(\alpha))\f$
-    double m_cache_logdet_sigma; ///< \f$\log(\det(\Sigma))\f$
-    /**
-     * @brief \f$l_{a} = \frac{a}{2} ( -D log(2*\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     */
-    std::map<size_t, double> m_cache_loglike_constterm;
-
-    // working arrays
-    mutable blitz::Array<double,1> m_tmp_d_1; ///< Cache vector of size dim_d
-    mutable blitz::Array<double,1> m_tmp_d_2; ///< Cache vector of size dim_d
-    mutable blitz::Array<double,2> m_tmp_d_ng_1; ///< Cache matrix of size dim_d x dim_g
-    mutable blitz::Array<double,2> m_tmp_nf_nf_1; ///< Cache matrix of size dim_f x dim_f
-    mutable blitz::Array<double,2> m_tmp_ng_ng_1; ///< Cache matrix of size dim_g x dim_g
-
-    // private methods
-    void resizeNoInit(const size_t dim_d, const size_t dim_f, const size_t dim_g);
-    void resizeTmp();
-    void initMuFGSigma();
-    void precomputeISigma();
-    void precomputeAlpha();
-    void precomputeBeta();
-    void precomputeGamma(const size_t a);
-    void precomputeFtBeta();
-    void precomputeGtISigma();
-    void precomputeLogDetAlpha();
-    void precomputeLogDetSigma();
-    void precomputeLogLikeConstTerm(const size_t a);
-};
-
-
-/**
- * @brief This class is a container for an enrolled identity/class. It
- * contains information extracted from the enrollment samples. It should
- * be used in combination with a PLDABase instance.\n
- * References:\n
- * 1. 'A Scalable Formulation of Probabilistic Linear Discriminant Analysis:
- *     Applied to Face Recognition', Laurent El Shafey, Chris McCool,
- *     Roy Wallace, Sebastien Marcel, TPAMI'2013
- * 2. 'Probabilistic Linear Discriminant Analysis for Inference About
- *     Identity', Prince and Elder, ICCV'2007\n
- * 3. 'Probabilistic Models for Inference about Identity', Li, Fu, Mohammed,
- *     Elder and Prince, TPAMI'2012
- */
-class PLDAMachine
-{
-  public:
-    /**
-     * @brief Default constructor.\n
-     * Builds an otherwise invalid (No attached PLDABase) PLDAMachine.
-     */
-    PLDAMachine();
-    /**
-     * @brief Constructor, builds a new PLDAMachine, setting a
-     * PLDABase.
-     */
-    PLDAMachine(const boost::shared_ptr<bob::learn::misc::PLDABase> pldabase);
-    /**
-     * @brief Copies another PLDAMachine.\n Both PLDAMachine's will point
-     * to the same PLDABase.
-     */
-    PLDAMachine(const PLDAMachine& other);
-    /**
-     * @brief Starts a new PLDAMachine from an existing configuration object,
-     * and a PLDABase.
-     */
-    PLDAMachine(bob::io::base::HDF5File& config,
-      const boost::shared_ptr<bob::learn::misc::PLDABase> pldabase);
-
-    /**
-     * @brief Just to virtualise the destructor
-     */
-    virtual ~PLDAMachine();
-
-    /**
-     * @brief Assigns from a different machine
-     */
-    PLDAMachine& operator=(const PLDAMachine &other);
-
-    /**
-     * @brief Equal to.\n The two PLDAMachine's should have the same
-     * PLDABase. Precomputed members such as \f$\gamma_a\f$'s
-     * are compared!
-     */
-    bool operator==(const PLDAMachine& b) const;
-    /**
-     * @brief Not equal to.\n Defined as the negation of operator==
-     */
-    bool operator!=(const PLDAMachine& b) const;
-    /**
-     * @brief Equal to.\n The two PLDAMachine's should have the same
-     * PLDABase. Precomputed members such as \f$\gamma_a\f$'s
-     * are compared!
-     */
-    bool is_similar_to(const PLDAMachine& b, const double r_epsilon=1e-5,
-      const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Loads data from an existing configuration object. Resets the
-     * current state.
-     */
-    void load(bob::io::base::HDF5File& config);
-    /**
-     * @brief Saves an existing machine to a configuration object.
-     */
-    void save(bob::io::base::HDF5File& config) const;
-
-    /**
-     * @brief Gets the attached PLDABase
-     */
-    const boost::shared_ptr<PLDABase> getPLDABase() const
-    { return m_plda_base; }
-    /**
-     * @brief Sets the attached PLDABase
-     */
-    void setPLDABase(const boost::shared_ptr<bob::learn::misc::PLDABase> plda_base);
-
-    /**
-     * @brief Gets the feature dimensionality
-     */
-    size_t getDimD() const
-    { if (!m_plda_base) throw std::runtime_error("No PLDABase set to this machine");
-      return m_plda_base->getDimD(); }
-    /**
-     * @brief Gets the size/rank the \f$F\f$ subspace/matrix of the PLDA model
-     */
-    size_t getDimF() const
-    { if (!m_plda_base) throw std::runtime_error("No PLDABase set to this machine");
-      return m_plda_base->getDimF(); }
-    /**
-     * @brief Gets the size/rank the \f$G\f$ subspace/matrix of the PLDA model
-     */
-    size_t getDimG() const
-    { if (!m_plda_base) throw std::runtime_error("No PLDABase set to this machine");
-      return m_plda_base->getDimG(); }
-
-    /**
-     * @brief Gets the number of enrolled samples
-     */
-    uint64_t getNSamples() const
-    { return m_n_samples; }
-    /**
-     * @brief Sets the number of enrolled samples
-     */
-    void setNSamples(const uint64_t n_samples)
-    { m_n_samples = n_samples; }
-    /**
-     * @brief Gets the \f$A = -0.5 \sum_{i} x_{i}^T \beta x_{i}\f$ value
-     */
-    double getWSumXitBetaXi() const
-    { return m_nh_sum_xit_beta_xi; }
-    /**
-     * @brief Sets the \f$A = -0.5 \sum_{i} x_{i}^T \beta x_{i}\f$ value
-     */
-    void setWSumXitBetaXi(const double val)
-    { m_nh_sum_xit_beta_xi = val; }
-    /**
-     * @brief Gets the current \f$\sum_{i} F^T \beta x_{i}\f$ value
-     */
-    const blitz::Array<double,1>& getWeightedSum() const
-    { return m_weighted_sum; }
-    /**
-     * @brief Sets the \f$\sum_{i} F^T \beta x_{i}\f$ value
-     */
-    void setWeightedSum(const blitz::Array<double,1>& weighted_sum);
-    /**
-     * @brief Returns the current \f$\sum_{i} F^T \beta x_{i}\f$ value
-     * in order to be updated.
-     * @warning Use with care. Only trainers should use this function for
-     * efficiency reasons.
-     */
-    blitz::Array<double,1>& updateWeightedSum()
-    { return m_weighted_sum; }
-    /**
-     * @brief Gets the log likelihood of the enrollment samples
-     */
-    double getLogLikelihood() const
-    { return m_loglikelihood; }
-    /**
-     * @brief Sets the log likelihood of the enrollment samples
-     */
-    void setLogLikelihood(const double val)
-    { m_loglikelihood = val; }
-
-    /**
-     * @brief Tells if the \f$\gamma_a\f$ matrix for a given \f$a\f$ (number
-     * of samples) exists in this machine (does not check the base machine)
-     * \f$\gamma_a = (Id + a F^T \beta F)^{-1} = \mathcal{F}_{a}\f$
-     */
-    bool hasGamma(const size_t a) const
-    { return (m_cache_gamma.find(a) != m_cache_gamma.end()); }
-    /**
-     * @brief Gets the \f$\gamma_a\f$ matrix for a given \f$a\f$ (number of
-     * samples) \f$\gamma_a = (Id + a F^T \beta F)^{-1} = \mathcal{F}_{a}\f$
-     * Tries to find it from the base machine and then from this machine
-     * @warning an exception is thrown if gamma does not exists
-     */
-    const blitz::Array<double,2>& getGamma(const size_t a) const;
-    /**
-     * @brief Gets the \f$\gamma_a\f$ matrix for a given \f$a\f$ (number of
-     * samples) \f$\gamma_a = (Id + a F^T \beta F)^{-1} = \mathcal{F}_{a}\f$
-     * Tries to find it from the base machine and then from this machine
-     * @warning The matrix is computed if it does not already exists,
-     *   and stored in this machine
-     */
-    const blitz::Array<double,2>& getAddGamma(const size_t a);
-
-    /**
-     * @brief Tells if the log likelihood constant term for a given \f$a\f$
-     * (number of samples) exists in this machine
-     * (does not check the base machine)
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     */
-    bool hasLogLikeConstTerm(const size_t a) const
-    { return (m_cache_loglike_constterm.find(a) != m_cache_loglike_constterm.end()); }
-    /**
-     * @brief Gets the log likelihood constant term for a given \f$a\f$
-     * (number of samples)
-     * Tries to find it from the base machine and then from this machine
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     * @warning an exception is thrown if the value does not exists
-     */
-    double getLogLikeConstTerm(const size_t a) const;
-    /**
-     * @brief Gets the log likelihood constant term for a given \f$a\f$
-     * (number of samples)
-     * Tries to find it from the base machine and then from this machine
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     * @warning The value is computed if it does not already exists
-     */
-    double getAddLogLikeConstTerm(const size_t a);
-
-    /**
-     * @brief Clears the maps (\f$\gamma_a\f$ and loglike_constterm[a]).
-     */
-    void clearMaps();
-
-
-    /**
-     * @brief Compute the log-likelihood of the given sample and (optionally)
-     * the enrolled samples
-     */
-    double computeLogLikelihood(const blitz::Array<double,1>& sample,
-      bool with_enrolled_samples=true) const;
-    /**
-     * @brief Compute the log-likelihood of the given samples and (optionally)
-     * the enrolled samples
-     */
-    double computeLogLikelihood(const blitz::Array<double,2>& samples,
-      bool with_enrolled_samples=true) const;
-
-    /**
-     * @brief Computes a log likelihood ratio from a 1D or 2D blitz::Array
-     */
-    double forward(const blitz::Array<double,1>& sample);
-    double forward_(const blitz::Array<double,1>& sample);
-    double forward(const blitz::Array<double,2>& samples);
-
-
-  private:
-    /**
-     * @brief Associated PLDABase containing the model (\f$\mu\f$,
-     * \f$F\f$, \f$G\f$ and \f$\Sigma\f$)
-     */
-    boost::shared_ptr<PLDABase> m_plda_base;
-    uint64_t m_n_samples; ///< Number of enrollment samples
-    /**
-     * @brief Contains the value:\n
-     * \f$A = -0.5 (\sum_{i} x_{i}^{T} \Sigma^{-1} x_{i} - x_{i}^T \Sigma^{-1} G \alpha G^{T} \Sigma^{-1} x_{i})\f$\n
-     * \f$A = -0.5 \sum_{i} x_{i}^T \beta x_{i}\f$\n
-     * used in the likelihood computation (first \f$x_{i}\f$ dependent term)
-     */
-    double m_nh_sum_xit_beta_xi;
-    /**
-     * @brief Contains the value \f$\sum_{i} F^T \beta x_{i}\f$ used in the
-     * likelihood computation (for the second \f$x_{i}\f$ dependent term)
-     */
-    blitz::Array<double,1> m_weighted_sum;
-    double m_loglikelihood; ///< Log likelihood of the enrollment samples
-    /**
-     * @brief \f$\gamma_a\f$ balues which are not already in the
-     * PLDABase \f$\gamma_a = (Id + a F^T \beta F)^{-1}\f$
-     * (depend on the number of samples \f$a\f$)
-     */
-    std::map<size_t, blitz::Array<double,2> > m_cache_gamma;
-    /**
-     * @brief Log likelihood constant terms which depend on the number of
-     * samples \f$a\f$
-     * \f$l_{a} = \frac{a}{2} ( -D log(2\pi) -log|\Sigma| +log|\alpha| +log|\gamma_a|)\f$
-     */
-    std::map<size_t, double> m_cache_loglike_constterm;
-
-
-    // working arrays
-    mutable blitz::Array<double,1> m_tmp_d_1; ///< Cache vector of size dim_d
-    mutable blitz::Array<double,1> m_tmp_d_2; ///< Cache vector of size dim_d
-    mutable blitz::Array<double,1> m_tmp_nf_1; ///< Cache vector of size dim_f
-    mutable blitz::Array<double,1> m_tmp_nf_2; ///< Cache vector of size dim_f
-    mutable blitz::Array<double,2> m_tmp_nf_nf_1; ///< Cache vector of size dim_f dim_f
-
-    /**
-     * @brief Resizes the PLDAMachine
-     */
-    void resize(const size_t dim_d, const size_t dim_f, const size_t dim_g);
-    /**
-     * @brief Resize working arrays
-     */
-    void resizeTmp();
-};
-
-} } } // namespaces
-
-#endif // BOB_LEARN_MISC_PLDAMACHINE_H
diff --git a/bob/learn/misc/include/bob.learn.misc/PLDATrainer.h b/bob/learn/misc/include/bob.learn.misc/PLDATrainer.h
deleted file mode 100644
index 3323083..0000000
--- a/bob/learn/misc/include/bob.learn.misc/PLDATrainer.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/**
- * @date Fri Oct 14 18:07:56 2011 +0200
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * @brief Probabilistic PLDA Discriminant Analysis implemented using
- * Expectation Maximization.
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_PLDA_TRAINER_H
-#define BOB_LEARN_MISC_PLDA_TRAINER_H
-
-#include <bob.learn.misc/PLDAMachine.h>
-#include <boost/shared_ptr.hpp>
-#include <vector>
-#include <map>
-#include <bob.core/array_copy.h>
-#include <boost/random.hpp>
-#include <boost/random/mersenne_twister.hpp>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * @brief This class can be used to train the \f$F\f$, \f$G\f$ and
- * \f$\Sigma\f$ matrices and the mean vector \f$\mu\f$ of a PLDA model.\n
- * References:\n
- * 1. 'A Scalable Formulation of Probabilistic Linear Discriminant Analysis:
- *     Applied to Face Recognition', Laurent El Shafey, Chris McCool,
- *     Roy Wallace, Sebastien Marcel, TPAMI'2013
- * 2. 'Probabilistic Linear Discriminant Analysis for Inference About
- *     Identity', Prince and Elder, ICCV'2007\n
- * 3. 'Probabilistic Models for Inference about Identity', Li, Fu, Mohammed,
- *     Elder and Prince, TPAMI'2012
- */
-class PLDATrainer
-{
-  public: //api
-    /**
-     * @brief Default constructor.\n Initializes a new PLDA trainer. The
-     * training stage will place the resulting components in the
-     * PLDABase.
-     */
-    PLDATrainer(const bool use_sum_second_order);
-
-    /**
-     * @brief Copy constructor
-     */
-    PLDATrainer(const PLDATrainer& other);
-
-    /**
-     * @brief (virtual) Destructor
-     */
-    virtual ~PLDATrainer();
-
-    /**
-     * @brief Assignment operator
-     */
-    PLDATrainer& operator=(const PLDATrainer& other);
-
-    /**
-     * @brief Equal to
-     */
-    bool operator==(const PLDATrainer& other) const;
-
-    /**
-     * @brief Not equal to
-     */
-    bool operator!=(const PLDATrainer& other) const;
-
-    /**
-     * @brief Similarity operator
-     */
-    bool is_similar_to(const PLDATrainer& b,
-      const double r_epsilon=1e-5, const double a_epsilon=1e-8) const;
-
-    /**
-     * @brief Performs some initialization before the E- and M-steps.
-     */
-    void initialize(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-    /**
-     * @brief Performs some actions after the end of the E- and M-steps.
-      */
-    void finalize(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-
-    /**
-     * @brief Calculates and saves statistics across the dataset, and saves
-     * these as m_z_{first,second}_order.
-     * The statistics will be used in the mStep() that follows.
-     */
-    void eStep(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-
-    /**
-     * @brief Performs a maximization step to update the parameters of the
-     * PLDABase
-     */
-    void mStep(bob::learn::misc::PLDABase& machine,
-       const std::vector<blitz::Array<double,2> >& v_ar);
-
-
-    /**
-     * @brief Sets whether the second order statistics are stored during the
-     * training procedure, or only their sum.
-     */
-    void setUseSumSecondOrder(bool v) { m_use_sum_second_order = v; }
-    /**
-     * @brief Tells whether the second order statistics are stored during the
-     * training procedure, or only their sum.
-     */
-    bool getUseSumSecondOrder() const
-    { return m_use_sum_second_order; }
-
-    /**
-     * @brief This enum defines different methods for initializing the \f$F\f$
-     * subspace
-     */
-    typedef enum {
-      RANDOM_F=0,
-      BETWEEN_SCATTER=1
-    }
-    InitFMethod;
-    /**
-     * @brief This enum defines different methods for initializing the \f$G\f$
-     * subspace
-     */
-    typedef enum {
-      RANDOM_G=0,
-      WITHIN_SCATTER=1
-    }
-    InitGMethod;
-    /**
-     * @brief This enum defines different methods for initializing the
-     * \f$\Sigma\f$ covariance matrix
-     */
-    typedef enum {
-      RANDOM_SIGMA=0,
-      VARIANCE_G=1,
-      CONSTANT=2,
-      VARIANCE_DATA=3
-    }
-    InitSigmaMethod;
-    /**
-     * @brief Sets the method used to initialize \f$F\f$
-     */
-    void setInitFMethod(const InitFMethod m) { m_initF_method = m; }
-    /**
-     * @brief Gets the method used to initialize \f$F\f$
-     */
-    InitFMethod getInitFMethod() const { return m_initF_method; }
-    /**
-     * @brief Sets the ratio value used to initialize \f$F\f$
-     */
-    void setInitFRatio(double d) { m_initF_ratio = d; }
-    /**
-     * @brief Gets the ratio value used to initialize \f$F\f$
-     */
-    double getInitFRatio() const { return m_initF_ratio; }
-    /**
-     * @brief Sets the method used to initialize \f$G\f$
-     */
-    void setInitGMethod(const InitGMethod m) { m_initG_method = m; }
-    /**
-     * @brief Gets the method used to initialize \f$G\f$
-     */
-    InitGMethod getInitGMethod() const { return m_initG_method; }
-    /**
-     * @brief Sets the ratio value used to initialize \f$G\f$
-     */
-    void setInitGRatio(double d) { m_initG_ratio = d; }
-    /**
-     * @brief Gets the ratio value used to initialize \f$G\f$
-     */
-    double getInitGRatio() const { return m_initG_ratio; }
-    /**
-     * @brief Sets the method used to initialize \f$\Sigma\f$
-     */
-    void setInitSigmaMethod(const InitSigmaMethod m)
-    { m_initSigma_method = m; }
-    /**
-     * @brief Gets the method used to initialize \f$\Sigma\f$
-     */
-    InitSigmaMethod getInitSigmaMethod() const
-    { return m_initSigma_method; }
-    /**
-     * @brief Sets the ratio value used to initialize \f$\Sigma\f$
-     */
-    void setInitSigmaRatio(double d) { m_initSigma_ratio = d; }
-    /**
-     * @brief Gets the ratio value used to initialize \f$\Sigma\f$
-     */
-    double getInitSigmaRatio() const { return m_initSigma_ratio; }
-
-    /**
-     * @brief Gets the z first order statistics (mostly for test purposes)
-     */
-    const std::vector<blitz::Array<double,2> >& getZFirstOrder() const
-    { return m_cache_z_first_order;}
-    /**
-     * @brief Gets the z second order statistics (mostly for test purposes)
-     */
-    const blitz::Array<double,2>& getZSecondOrderSum() const
-    { return m_cache_sum_z_second_order;}
-    /**
-     * @brief Gets the z second order statistics (mostly for test purposes)
-     */
-    const std::vector<blitz::Array<double,3> >& getZSecondOrder() const
-    { if(m_use_sum_second_order)
-        throw std::runtime_error("You should disable the use_sum_second_order flag to use this feature");
-      return m_cache_z_second_order;
-    }
-
-    /**
-     * @brief Main procedure for enrolling a PLDAMachine
-     */
-    void enrol(bob::learn::misc::PLDAMachine& plda_machine,
-      const blitz::Array<double,2>& ar) const;
-      
-      
-    /**
-     * @brief Sets the Random Number Generator
-     */
-    void setRng(const boost::shared_ptr<boost::mt19937> rng)
-    { m_rng = rng; }
-
-    /**
-     * @brief Gets the Random Number Generator
-     */
-    const boost::shared_ptr<boost::mt19937> getRng() const
-    { return m_rng; }      
-
-  private:
-  
-    boost::shared_ptr<boost::mt19937> m_rng;
-  
-    //representation
-    size_t m_dim_d; ///< Dimensionality of the input features
-    size_t m_dim_f; ///< Size/rank of the \f$F\f$ subspace
-    size_t m_dim_g; ///< Size/rank of the \f$G\f$ subspace
-    bool m_use_sum_second_order; ///< If set, only the sum of the second order statistics is stored/allocated
-    InitFMethod m_initF_method; ///< Initialization method for \f$F\f$
-    double m_initF_ratio; ///< Ratio/factor used for the initialization of \f$F\f$
-    InitGMethod m_initG_method; ///< Initialization method for \f$G\f$
-    double m_initG_ratio; ///< Ratio/factor used for the initialization of \f$G\f$
-    InitSigmaMethod m_initSigma_method; ///< Initialization method for \f$\Sigma\f$
-    double m_initSigma_ratio; ///< Ratio/factor used for the initialization of \f$\Sigma\f$
-
-    // Statistics and covariance computed during the training process
-    blitz::Array<double,2> m_cache_S; ///< Covariance of the training data
-    std::vector<blitz::Array<double,2> > m_cache_z_first_order; ///< Current mean of the z_{n} latent variable (1 for each sample)
-    blitz::Array<double,2> m_cache_sum_z_second_order; ///< Current sum of the covariance of the z_{n} latent variable
-    std::vector<blitz::Array<double,3> > m_cache_z_second_order; ///< Current covariance of the z_{n} latent variable
-    // Precomputed
-    /**
-     * @brief Number of training samples for each individual in the training set
-     */
-    std::vector<size_t> m_cache_n_samples_per_id;
-    /**
-     * @brief Tells if there is an identity with a 'key'/particular number of
-     * training samples, and if corresponding matrices are up to date.
-     */
-    std::map<size_t,bool> m_cache_n_samples_in_training;
-    blitz::Array<double,2> m_cache_B; ///< \f$B = [F, G]\f$ (size nfeatures x (m_dim_f+m_dim_g) )
-    blitz::Array<double,2> m_cache_Ft_isigma_G; ///< \f$F^T \Sigma^-1 G\f$
-    blitz::Array<double,2> m_cache_eta; ///< \f$F^T \Sigma^-1 G \alpha\f$
-    // Blocks (with \f$\gamma_{a}\f$) of \f$(Id + A^T \Sigma'^-1 A)^-1\f$ (efficient inversion)
-    std::map<size_t,blitz::Array<double,2> > m_cache_zeta; ///< \f$\zeta_{a} = \alpha + \eta^T \gamma_{a} \eta\f$
-    std::map<size_t,blitz::Array<double,2> > m_cache_iota; ///< \f$\iota_{a} = -\gamma_{a} \eta\f$
-
-    // Working arrays
-    mutable blitz::Array<double,1> m_tmp_nf_1; ///< vector of dimension dim_f
-    mutable blitz::Array<double,1> m_tmp_nf_2; ///< vector of dimension dim_f
-    mutable blitz::Array<double,1> m_tmp_ng_1; ///< vector of dimension dim_f
-    mutable blitz::Array<double,1> m_tmp_D_1; ///< vector of dimension dim_d
-    mutable blitz::Array<double,1> m_tmp_D_2; ///< vector of dimension dim_d
-    mutable blitz::Array<double,2> m_tmp_nfng_nfng; ///< matrix of dimension (dim_f+dim_g)x(dim_f+dim_g)
-    mutable blitz::Array<double,2> m_tmp_D_nfng_1; ///< matrix of dimension (dim_d)x(dim_f+dim_g)
-    mutable blitz::Array<double,2> m_tmp_D_nfng_2; ///< matrix of dimension (dim_d)x(dim_f+dim_g)
-
-    // internal methods
-    void computeMeanVariance(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-    void initMembers(const std::vector<blitz::Array<double,2> >& v_ar);
-    void initFGSigma(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-    void initF(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-    void initG(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-    void initSigma(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-
-    void checkTrainingData(const std::vector<blitz::Array<double,2> >& v_ar);
-    void precomputeFromFGSigma(bob::learn::misc::PLDABase& machine);
-    void precomputeLogLike(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-
-    void updateFG(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-    void updateSigma(bob::learn::misc::PLDABase& machine,
-      const std::vector<blitz::Array<double,2> >& v_ar);
-
-    void resizeTmp();
-};
-
-} } } // namespaces
-
-#endif /* BOB_LEARN_MISC_PLDA_TRAINER_H */
diff --git a/bob/learn/misc/include/bob.learn.misc/ZTNorm.h b/bob/learn/misc/include/bob.learn.misc/ZTNorm.h
deleted file mode 100644
index 47f0af9..0000000
--- a/bob/learn/misc/include/bob.learn.misc/ZTNorm.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * @date Tue Jul 19 15:33:20 2011 +0200
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- *
- * Copyright (C) Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_LEARN_MISC_ZTNORM_H
-#define BOB_LEARN_MISC_ZTNORM_H
-
-#include <blitz/array.h>
-
-namespace bob { namespace learn { namespace misc {
-
-/**
- * Normalise raw scores with ZT-Norm
- *
- * @exception std::runtime_error matrix sizes are not consistent
- *
- * @param rawscores_probes_vs_models
- * @param rawscores_zprobes_vs_models
- * @param rawscores_probes_vs_tmodels
- * @param rawscores_zprobes_vs_tmodels
- * @param mask_zprobes_vs_tmodels_istruetrial
- * @param[out] normalizedscores normalized scores
- * @warning The destination score array should have the correct size
- *          (Same size as rawscores_probes_vs_models)
- */
-void ztNorm(const blitz::Array<double, 2>& rawscores_probes_vs_models,
-            const blitz::Array<double, 2>& rawscores_zprobes_vs_models,
-            const blitz::Array<double, 2>& rawscores_probes_vs_tmodels,
-            const blitz::Array<double, 2>& rawscores_zprobes_vs_tmodels,
-            const blitz::Array<bool,   2>& mask_zprobes_vs_tmodels_istruetrial,
-            blitz::Array<double, 2>& normalizedscores);
-
-/**
- * Normalise raw scores with ZT-Norm.
- * Assume that znorm and tnorm have no common subject id.
- *
- * @exception std::runtime_error matrix sizes are not consistent
- *
- * @param rawscores_probes_vs_models
- * @param rawscores_zprobes_vs_models
- * @param rawscores_probes_vs_tmodels
- * @param rawscores_zprobes_vs_tmodels
- * @param[out] normalizedscores normalized scores
- * @warning The destination score array should have the correct size
- *          (Same size as rawscores_probes_vs_models)
- */
-void ztNorm(const blitz::Array<double,2>& rawscores_probes_vs_models,
-            const blitz::Array<double,2>& rawscores_zprobes_vs_models,
-            const blitz::Array<double,2>& rawscores_probes_vs_tmodels,
-            const blitz::Array<double,2>& rawscores_zprobes_vs_tmodels,
-            blitz::Array<double,2>& normalizedscores);
-
-/**
- * Normalise raw scores with T-Norm.
- *
- * @exception std::runtime_error matrix sizes are not consistent
- *
- * @param rawscores_probes_vs_models
- * @param rawscores_probes_vs_tmodels
- * @param[out] normalizedscores normalized scores
- * @warning The destination score array should have the correct size
- *          (Same size as rawscores_probes_vs_models)
- */
-void tNorm(const blitz::Array<double,2>& rawscores_probes_vs_models,
-           const blitz::Array<double,2>& rawscores_probes_vs_tmodels,
-           blitz::Array<double,2>& normalizedscores);
-
-/**
- * Normalise raw scores with Z-Norm.
- *
- * @exception std::runtime_error matrix sizes are not consistent
- *
- * @param rawscores_probes_vs_models
- * @param rawscores_zprobes_vs_models
- * @param[out] normalizedscores normalized scores
- * @warning The destination score array should have the correct size
- *          (Same size as rawscores_probes_vs_models)
- */
-void zNorm(const blitz::Array<double,2>& rawscores_probes_vs_models,
-           const blitz::Array<double,2>& rawscores_zprobes_vs_models,
-           blitz::Array<double,2>& normalizedscores);
-
-} } } // namespaces
-
-#endif /* BOB_LEARN_MISC_ZTNORM_H */
diff --git a/bob/learn/misc/include/bob.learn.misc/api.h b/bob/learn/misc/include/bob.learn.misc/api.h
deleted file mode 100644
index 44208e5..0000000
--- a/bob/learn/misc/include/bob.learn.misc/api.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Fri 21 Nov 10:38:48 2013
- *
- * @brief Python API for bob::learn::em
- */
-
-#ifndef BOB_LEARN_EM_API_H
-#define BOB_LEARN_EM_API_H
-
-/* Define Module Name and Prefix for other Modules
-   Note: We cannot use BOB_EXT_* macros here, unfortunately */
-#define BOB_LEARN_EM_PREFIX    "bob.learn.misc"
-#define BOB_LEARN_EM_FULL_NAME "bob.learn.misc._library"
-
-#include <Python.h>
-
-#include <bob.learn.misc/config.h>
-#include <boost/shared_ptr.hpp>
-
-/*******************
- * C API functions *
- *******************/
-
-/* Enum defining entries in the function table */
-enum _PyBobLearnMisc_ENUM{
-  PyBobLearnMisc_APIVersion_NUM = 0,
-  // bindings
-  ////PyBobIpBaseLBP_Type_NUM,
-  ////PyBobIpBaseLBP_Check_NUM,
-  ////PyBobIpBaseLBP_Converter_NUM,
-  // Total number of C API pointers
-  PyBobLearnMisc_API_pointers
-};
-
-
-#ifdef BOB_LEARN_EM_MODULE
-
-  /* This section is used when compiling `bob.io.base' itself */
-
-  /**************
-   * Versioning *
-   **************/
-
-  extern int PyBobLearnMisc_APIVersion;
-
-#else // BOB_LEARN_EM_MODULE
-
-  /* This section is used in modules that use `bob.io.base's' C-API */
-
-#if defined(NO_IMPORT_ARRAY)
-  extern void **PyBobLearnMisc_API;
-#elif defined(PY_ARRAY_UNIQUE_SYMBOL)
-  void **PyBobLearnMisc_API;
-#else
-  static void **PyBobLearnMisc_API=NULL;
-#endif
-
-  /**************
-   * Versioning *
-   **************/
-
-#define PyBobLearnMisc_APIVersion (*(int *)PyBobLearnMisc_API[PyBobLearnMisc_APIVersion_NUM])
-
-#if !defined(NO_IMPORT_ARRAY)
-
-  /**
-   * Returns -1 on error, 0 on success.
-   */
-  static int import_bob_learn_misc(void) {
-
-    PyObject *c_api_object;
-    PyObject *module;
-
-    module = PyImport_ImportModule(BOB_LEARN_EM_FULL_NAME);
-
-    if (module == NULL) return -1;
-
-    c_api_object = PyObject_GetAttrString(module, "_C_API");
-
-    if (c_api_object == NULL) {
-      Py_DECREF(module);
-      return -1;
-    }
-
-#if PY_VERSION_HEX >= 0x02070000
-    if (PyCapsule_CheckExact(c_api_object)) {
-      PyBobLearnMisc_API = (void **)PyCapsule_GetPointer(c_api_object, PyCapsule_GetName(c_api_object));
-    }
-#else
-    if (PyCObject_Check(c_api_object)) {
-      PyBobLearnMisc_API = (void **)PyCObject_AsVoidPtr(c_api_object);
-    }
-#endif
-
-    Py_DECREF(c_api_object);
-    Py_DECREF(module);
-
-    if (!PyBobLearnMisc_API) {
-      PyErr_SetString(PyExc_ImportError, "cannot find C/C++ API "
-#if PY_VERSION_HEX >= 0x02070000
-          "capsule"
-#else
-          "cobject"
-#endif
-          " at `" BOB_LEARN_EM_FULL_NAME "._C_API'");
-      return -1;
-    }
-
-    /* Checks that the imported version matches the compiled version */
-    int imported_version = *(int*)PyBobLearnMisc_API[PyBobLearnMisc_APIVersion_NUM];
-
-    if (BOB_LEARN_MISC_API_VERSION != imported_version) {
-      PyErr_Format(PyExc_ImportError, BOB_LEARN_EM_FULL_NAME " import error: you compiled against API version 0x%04x, but are now importing an API with version 0x%04x which is not compatible - check your Python runtime environment for errors", BOB_LEARN_MISC_API_VERSION, imported_version);
-      return -1;
-    }
-
-    /* If you get to this point, all is good */
-    return 0;
-
-  }
-
-#endif //!defined(NO_IMPORT_ARRAY)
-
-#endif /* BOB_LEARN_EM_MODULE */
-
-#endif /* BOB_LEARN_EM_API_H */
diff --git a/bob/learn/misc/include/bob.learn.misc/config.h b/bob/learn/misc/include/bob.learn.misc/config.h
deleted file mode 100644
index c35fa5c..0000000
--- a/bob/learn/misc/include/bob.learn.misc/config.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * @author Manuel Guenther <manuel.guenther@idiap.ch>
- * @date Thu Aug 21 20:49:42 CEST 2014
- *
- * @brief General directives for all modules in bob.learn.misc
- */
-
-#ifndef BOB_LEARN_MISC_CONFIG_H
-#define BOB_LEARN_MISC_CONFIG_H
-
-/* Macros that define versions and important names */
-#define BOB_LEARN_MISC_API_VERSION 0x0200
-
-#endif /* BOB_LEARN_MISC_CONFIG_H */
diff --git a/bob/learn/misc/isv_base.cpp b/bob/learn/misc/isv_base.cpp
deleted file mode 100644
index 023a6d3..0000000
--- a/bob/learn/misc/isv_base.cpp
+++ /dev/null
@@ -1,528 +0,0 @@
-/**
- * @date Wed Jan 28 11:13:15 2015 +0200
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto ISVBase_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".ISVBase",
-
-  "A ISVBase instance can be seen as a container for U and D when performing Joint Factor Analysis (JFA)."
-  "References: [Vogt2008,McCool2013]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Creates a ISVBase",
-    "",
-    true
-  )
-  .add_prototype("gmm,ru","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-  .add_prototype("","")
-
-  .add_parameter("gmm", ":py:class:`bob.learn.misc.GMMMachine`", "The Universal Background Model.")
-  .add_parameter("ru", "int", "Size of U (Within client variation matrix). In the end the U matrix will have (number_of_gaussians * feature_dimension x ru)")
-  .add_parameter("other", ":py:class:`bob.learn.misc.ISVBase`", "A ISVBase object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscISVBase_init_copy(PyBobLearnMiscISVBaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ISVBase_doc.kwlist(1);
-  PyBobLearnMiscISVBaseObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscISVBase_Type, &o)){
-    ISVBase_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::ISVBase(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscISVBase_init_hdf5(PyBobLearnMiscISVBaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ISVBase_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    ISVBase_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::ISVBase(*(config->f)));
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscISVBase_init_ubm(PyBobLearnMiscISVBaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ISVBase_doc.kwlist(0);
-  
-  PyBobLearnMiscGMMMachineObject* ubm;
-  int ru = 1;
-
-  //Here we have to select which keyword argument to read  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!i", kwlist, &PyBobLearnMiscGMMMachine_Type, &ubm, &ru)){
-    ISVBase_doc.print_usage();
-    return -1;
-  }
-  
-  if(ru < 0){
-    PyErr_Format(PyExc_TypeError, "ru argument must be greater than or equal to one");
-    return -1;
-  }
-  
-  self->cxx.reset(new bob::learn::misc::ISVBase(ubm->cxx, ru));
-  return 0;
-}
-
-
-static int PyBobLearnMiscISVBase_init(PyBobLearnMiscISVBaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-    
-  switch (nargs) {
-
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-
-      // If the constructor input is Gaussian object
-     if (PyBobLearnMiscISVBase_Check(arg))
-       return PyBobLearnMiscISVBase_init_copy(self, args, kwargs);
-      // If the constructor input is a HDF5
-     else if (PyBobIoHDF5File_Check(arg))
-       return PyBobLearnMiscISVBase_init_hdf5(self, args, kwargs);
-    }
-    case 2:
-      return PyBobLearnMiscISVBase_init_ubm(self, args, kwargs);
-    default:
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 1 or 2 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      ISVBase_doc.print_usage();
-      return -1;
-  }
-  BOB_CATCH_MEMBER("cannot create ISVBase", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscISVBase_delete(PyBobLearnMiscISVBaseObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscISVBase_RichCompare(PyBobLearnMiscISVBaseObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscISVBase_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscISVBaseObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare ISVBase objects", 0)
-}
-
-int PyBobLearnMiscISVBase_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscISVBase_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int, int)",
-  "A tuple that represents the number of gaussians, dimensionality of each Gaussian, dimensionality of the rU (within client variability matrix) `(#Gaussians, #Inputs, #rU)`.",
-  ""
-);
-PyObject* PyBobLearnMiscISVBase_getShape(PyBobLearnMiscISVBaseObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i,i)", self->cxx->getNGaussians(), self->cxx->getNInputs(), self->cxx->getDimRu());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-/***** supervector_length *****/
-static auto supervector_length = bob::extension::VariableDoc(
-  "supervector_length",
-  "int",
-
-  "Returns the supervector length."
-  "NGaussians x NInputs: Number of Gaussian components by the feature dimensionality",
-  
-  "@warning An exception is thrown if no Universal Background Model has been set yet."
-);
-PyObject* PyBobLearnMiscISVBase_getSupervectorLength(PyBobLearnMiscISVBaseObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("i", self->cxx->getSupervectorLength());
-  BOB_CATCH_MEMBER("supervector_length could not be read", 0)
-}
-
-
-/***** u *****/
-static auto U = bob::extension::VariableDoc(
-  "u",
-  "array_like <float, 2D>",
-  "Returns the U matrix (within client variability matrix)",
-  ""
-);
-PyObject* PyBobLearnMiscISVBase_getU(PyBobLearnMiscISVBaseObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getU());
-  BOB_CATCH_MEMBER("``u`` could not be read", 0)
-}
-int PyBobLearnMiscISVBase_setU(PyBobLearnMiscISVBaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, U.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "u");
-  if (!b) return -1;
-  self->cxx->setU(*b);
-  return 0;
-  BOB_CATCH_MEMBER("``u`` matrix could not be set", -1)
-}
-
-
-/***** d *****/
-static auto D = bob::extension::VariableDoc(
-  "d",
-  "array_like <float, 1D>",
-  "Returns the diagonal matrix diag(d) (as a 1D vector)",
-  ""
-);
-PyObject* PyBobLearnMiscISVBase_getD(PyBobLearnMiscISVBaseObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getD());
-  BOB_CATCH_MEMBER("``d`` could not be read", 0)
-}
-int PyBobLearnMiscISVBase_setD(PyBobLearnMiscISVBaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, D.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "d");
-  if (!b) return -1;
-  self->cxx->setD(*b);
-  return 0;
-  BOB_CATCH_MEMBER("``d`` matrix could not be set", -1)
-}
-
-
-/***** ubm *****/
-static auto ubm = bob::extension::VariableDoc(
-  "ubm",
-  ":py:class:`bob.learn.misc.GMMMachine`",
-  "Returns the UBM (Universal Background Model",
-  ""
-);
-PyObject* PyBobLearnMiscISVBase_getUBM(PyBobLearnMiscISVBaseObject* self, void*){
-  BOB_TRY
-
-  boost::shared_ptr<bob::learn::misc::GMMMachine> ubm_gmmMachine = self->cxx->getUbm();
-
-  //Allocating the correspondent python object
-  PyBobLearnMiscGMMMachineObject* retval =
-    (PyBobLearnMiscGMMMachineObject*)PyBobLearnMiscGMMMachine_Type.tp_alloc(&PyBobLearnMiscGMMMachine_Type, 0);
-  retval->cxx = ubm_gmmMachine;
-
-  return Py_BuildValue("O",retval);
-  BOB_CATCH_MEMBER("ubm could not be read", 0)
-}
-int PyBobLearnMiscISVBase_setUBM(PyBobLearnMiscISVBaseObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyBobLearnMiscGMMMachine_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a :py:class:`bob.learn.misc.GMMMachine`", Py_TYPE(self)->tp_name, ubm.name());
-    return -1;
-  }
-
-  PyBobLearnMiscGMMMachineObject* ubm_gmmMachine = 0;
-  PyArg_Parse(value, "O!", &PyBobLearnMiscGMMMachine_Type,&ubm_gmmMachine);
-
-  self->cxx->setUbm(ubm_gmmMachine->cxx);
-
-  return 0;
-  BOB_CATCH_MEMBER("ubm could not be set", -1)  
-}
-
-
-
-static PyGetSetDef PyBobLearnMiscISVBase_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscISVBase_getShape,
-   0,
-   shape.doc(),
-   0
-  },
-  
-  {
-   supervector_length.name(),
-   (getter)PyBobLearnMiscISVBase_getSupervectorLength,
-   0,
-   supervector_length.doc(),
-   0
-  },
-  
-  {
-   U.name(),
-   (getter)PyBobLearnMiscISVBase_getU,
-   (setter)PyBobLearnMiscISVBase_setU,
-   U.doc(),
-   0
-  },
-  
-  {
-   D.name(),
-   (getter)PyBobLearnMiscISVBase_getD,
-   (setter)PyBobLearnMiscISVBase_setD,
-   D.doc(),
-   0
-  },
-
-  {
-   ubm.name(),
-   (getter)PyBobLearnMiscISVBase_getUBM,
-   (setter)PyBobLearnMiscISVBase_setUBM,
-   ubm.doc(),
-   0
-  },
-
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the ISVBase to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscISVBase_Save(PyBobLearnMiscISVBaseObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the ISVBase to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscISVBase_Load(PyBobLearnMiscISVBaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this ISVBase with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.ISVBase`", "A ISVBase object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscISVBase_IsSimilarTo(PyBobLearnMiscISVBaseObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscISVBaseObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscISVBase_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** resize ***/
-static auto resize = bob::extension::FunctionDoc(
-  "resize",
-  "Resets the dimensionality of the subspace U. "
-  "U is hence uninitialized.",
-  0,
-  true
-)
-.add_prototype("rU")
-.add_parameter("rU", "int", "Size of U (Within client variation matrix)");
-static PyObject* PyBobLearnMiscISVBase_resize(PyBobLearnMiscISVBaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = resize.kwlist(0);
-
-  int rU = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &rU)) Py_RETURN_NONE;
-
-  if (rU <= 0){
-    PyErr_Format(PyExc_TypeError, "rU must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-
-  self->cxx->resize(rU);
-
-  BOB_CATCH_MEMBER("cannot perform the resize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-
-static PyMethodDef PyBobLearnMiscISVBase_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscISVBase_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscISVBase_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscISVBase_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    resize.name(),
-    (PyCFunction)PyBobLearnMiscISVBase_resize,
-    METH_VARARGS|METH_KEYWORDS,
-    resize.doc()
-  },
-  
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the ISV type struct; will be initialized later
-PyTypeObject PyBobLearnMiscISVBase_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscISVBase(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscISVBase_Type.tp_name      = ISVBase_doc.name();
-  PyBobLearnMiscISVBase_Type.tp_basicsize = sizeof(PyBobLearnMiscISVBaseObject);
-  PyBobLearnMiscISVBase_Type.tp_flags     = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscISVBase_Type.tp_doc       = ISVBase_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscISVBase_Type.tp_new         = PyType_GenericNew;
-  PyBobLearnMiscISVBase_Type.tp_init        = reinterpret_cast<initproc>(PyBobLearnMiscISVBase_init);
-  PyBobLearnMiscISVBase_Type.tp_dealloc     = reinterpret_cast<destructor>(PyBobLearnMiscISVBase_delete);
-  PyBobLearnMiscISVBase_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscISVBase_RichCompare);
-  PyBobLearnMiscISVBase_Type.tp_methods     = PyBobLearnMiscISVBase_methods;
-  PyBobLearnMiscISVBase_Type.tp_getset      = PyBobLearnMiscISVBase_getseters;
-  //PyBobLearnMiscISVBase_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscISVBase_forward);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscISVBase_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscISVBase_Type);
-  return PyModule_AddObject(module, "ISVBase", (PyObject*)&PyBobLearnMiscISVBase_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/isv_machine.cpp b/bob/learn/misc/isv_machine.cpp
deleted file mode 100644
index 0d7f0da..0000000
--- a/bob/learn/misc/isv_machine.cpp
+++ /dev/null
@@ -1,604 +0,0 @@
-/**
- * @date Wed Jan 28 13:03:15 2015 +0200
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto ISVMachine_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".ISVMachine",
-  "A ISVMachine. An attached :py:class:`bob.learn.misc.ISVBase` should be provided for Joint Factor Analysis. The :py:class:`bob.learn.misc.ISVMachine` carries information about the speaker factors y and z, whereas a :py:class:`bob.learn.misc.JFABase` carries information about the matrices U, V and D."
-  "References: [Vogt2008,McCool2013]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Constructor. Builds a new ISVMachine",
-    "",
-    true
-  )
-  .add_prototype("isv_base","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-
-  .add_parameter("isv", ":py:class:`bob.learn.misc.ISVBase`", "The ISVBase associated with this machine")
-  .add_parameter("other", ":py:class:`bob.learn.misc.ISVMachine`", "A ISVMachine object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscISVMachine_init_copy(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ISVMachine_doc.kwlist(1);
-  PyBobLearnMiscISVMachineObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscISVMachine_Type, &o)){
-    ISVMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::ISVMachine(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscISVMachine_init_hdf5(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ISVMachine_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    ISVMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::ISVMachine(*(config->f)));
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscISVMachine_init_isvbase(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ISVMachine_doc.kwlist(0);
-  
-  PyBobLearnMiscISVBaseObject* isv_base;
-
-  //Here we have to select which keyword argument to read  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscISVBase_Type, &isv_base)){
-    ISVMachine_doc.print_usage();
-    return -1;
-  }
-  
-  self->cxx.reset(new bob::learn::misc::ISVMachine(isv_base->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscISVMachine_init(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  if(nargs == 1){
-    //Reading the input argument
-    PyObject* arg = 0;
-    if (PyTuple_Size(args))
-      arg = PyTuple_GET_ITEM(args, 0);
-    else {
-      PyObject* tmp = PyDict_Values(kwargs);
-      auto tmp_ = make_safe(tmp);
-      arg = PyList_GET_ITEM(tmp, 0);
-    }
-
-    // If the constructor input is Gaussian object
-    if (PyBobLearnMiscISVMachine_Check(arg))
-      return PyBobLearnMiscISVMachine_init_copy(self, args, kwargs);
-    // If the constructor input is a HDF5
-    else if (PyBobIoHDF5File_Check(arg))
-      return PyBobLearnMiscISVMachine_init_hdf5(self, args, kwargs);
-    // If the constructor input is a JFABase Object
-    else
-      return PyBobLearnMiscISVMachine_init_isvbase(self, args, kwargs);
-  }
-  else{
-    PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires only 1 argument, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-    ISVMachine_doc.print_usage();
-    return -1;
-  }
-  
-  BOB_CATCH_MEMBER("cannot create ISVMachine", 0)
-  return 0;
-}
-
-static void PyBobLearnMiscISVMachine_delete(PyBobLearnMiscISVMachineObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscISVMachine_RichCompare(PyBobLearnMiscISVMachineObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscISVMachine_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscISVMachineObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare ISVMachine objects", 0)
-}
-
-int PyBobLearnMiscISVMachine_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscISVMachine_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int, int, int)",
-  "A tuple that represents the number of gaussians, dimensionality of each Gaussian and dimensionality of the rU (within client variability matrix)) ``(#Gaussians, #Inputs, #rU)``.",
-  ""
-);
-PyObject* PyBobLearnMiscISVMachine_getShape(PyBobLearnMiscISVMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i,i)", self->cxx->getNGaussians(), self->cxx->getNInputs(), self->cxx->getDimRu());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-/***** supervector_length *****/
-static auto supervector_length = bob::extension::VariableDoc(
-  "supervector_length",
-  "int",
-
-  "Returns the supervector length."
-  "NGaussians x NInputs: Number of Gaussian components by the feature dimensionality",
-  
-  "@warning An exception is thrown if no Universal Background Model has been set yet."
-);
-PyObject* PyBobLearnMiscISVMachine_getSupervectorLength(PyBobLearnMiscISVMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("i", self->cxx->getSupervectorLength());
-  BOB_CATCH_MEMBER("supervector_length could not be read", 0)
-}
-
-/***** z *****/
-static auto Z = bob::extension::VariableDoc(
-  "z",
-  "array_like <float, 1D>",
-  "Returns the z speaker factor. Eq (31) from [McCool2013]",
-  ""
-);
-PyObject* PyBobLearnMiscISVMachine_getZ(PyBobLearnMiscISVMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getZ());
-  BOB_CATCH_MEMBER("`z` could not be read", 0)
-}
-int PyBobLearnMiscISVMachine_setZ(PyBobLearnMiscISVMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, Z.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "z");
-  if (!b) return -1;
-  self->cxx->setZ(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`z` vector could not be set", -1)
-}
-
-
-/***** x *****/
-static auto X = bob::extension::VariableDoc(
-  "x",
-  "array_like <float, 1D>",
-  "Returns the X session factor. Eq (29) from [McCool2013]",
-  "The latent variable x (last one computed). This is a feature provided for convenience, but this attribute is not 'part' of the machine. The session latent variable x is indeed not class-specific, but depends on the sample considered. Furthermore, it is not saved into the machine or used when comparing machines."
-);
-PyObject* PyBobLearnMiscISVMachine_getX(PyBobLearnMiscISVMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getX());
-  BOB_CATCH_MEMBER("`x` could not be read", 0)
-}
-
-
-/***** isv_base *****/
-static auto isv_base = bob::extension::VariableDoc(
-  "isv_base",
-  ":py:class:`bob.learn.misc.ISVBase`",
-  "The ISVBase attached to this machine",
-  ""
-);
-PyObject* PyBobLearnMiscISVMachine_getISVBase(PyBobLearnMiscISVMachineObject* self, void*){
-  BOB_TRY
-
-  boost::shared_ptr<bob::learn::misc::ISVBase> isv_base_o = self->cxx->getISVBase();
-
-  //Allocating the correspondent python object
-  PyBobLearnMiscISVBaseObject* retval =
-    (PyBobLearnMiscISVBaseObject*)PyBobLearnMiscISVBase_Type.tp_alloc(&PyBobLearnMiscISVBase_Type, 0);
-  retval->cxx = isv_base_o;
-
-  return Py_BuildValue("O",retval);
-  BOB_CATCH_MEMBER("isv_base could not be read", 0)
-}
-int PyBobLearnMiscISVMachine_setISVBase(PyBobLearnMiscISVMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyBobLearnMiscISVBase_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a :py:class:`bob.learn.misc.ISVBase`", Py_TYPE(self)->tp_name, isv_base.name());
-    return -1;
-  }
-
-  PyBobLearnMiscISVBaseObject* isv_base_o = 0;
-  PyArg_Parse(value, "O!", &PyBobLearnMiscISVBase_Type,&isv_base_o);
-
-  self->cxx->setISVBase(isv_base_o->cxx);
-
-  return 0;
-  BOB_CATCH_MEMBER("isv_base could not be set", -1)  
-}
-
-
-
-
-static PyGetSetDef PyBobLearnMiscISVMachine_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscISVMachine_getShape,
-   0,
-   shape.doc(),
-   0
-  },
-  
-  {
-   supervector_length.name(),
-   (getter)PyBobLearnMiscISVMachine_getSupervectorLength,
-   0,
-   supervector_length.doc(),
-   0
-  },
-  
-  {
-   isv_base.name(),
-   (getter)PyBobLearnMiscISVMachine_getISVBase,
-   (setter)PyBobLearnMiscISVMachine_setISVBase,
-   isv_base.doc(),
-   0
-  },
-
-  {
-   Z.name(),
-   (getter)PyBobLearnMiscISVMachine_getZ,
-   (setter)PyBobLearnMiscISVMachine_setZ,
-   Z.doc(),
-   0
-  },
-
-  {
-   X.name(),
-   (getter)PyBobLearnMiscISVMachine_getX,
-   0,
-   X.doc(),
-   0
-  },
-
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the ISVMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscISVMachine_Save(PyBobLearnMiscISVMachineObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the ISVMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscISVMachine_Load(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this ISVMachine with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.ISVMachine`", "A ISVMachine object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscISVMachine_IsSimilarTo(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscISVMachineObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscISVMachine_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** estimate_x ***/
-static auto estimate_x = bob::extension::FunctionDoc(
-  "estimate_x",
-  "Estimates the session offset x (LPT assumption) given GMM statistics.",
-  "Estimates x from the GMM statistics considering the LPT assumption, that is the latent session variable x is approximated using the UBM", 
-  true
-)
-.add_prototype("stats,input")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics of the GMM")
-.add_parameter("input", "array_like <float, 1D>", "Input vector");
-static PyObject* PyBobLearnMiscISVMachine_estimateX(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = estimate_x.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  PyBlitzArrayObject* input           = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMStats_Type, &stats, 
-                                                                 &PyBlitzArray_Converter,&input))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-  self->cxx->estimateX(*stats->cxx, *PyBlitzArrayCxx_AsBlitz<double,1>(input));
-
-  BOB_CATCH_MEMBER("cannot estimate X", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** estimate_ux ***/
-static auto estimate_ux = bob::extension::FunctionDoc(
-  "estimate_ux",
-  "Estimates Ux (LPT assumption) given GMM statistics.",
-  "Estimates Ux from the GMM statistics considering the LPT assumption, that is the latent session variable x is approximated using the UBM.", 
-  true
-)
-.add_prototype("stats,input")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics of the GMM")
-.add_parameter("input", "array_like <float, 1D>", "Input vector");
-static PyObject* PyBobLearnMiscISVMachine_estimateUx(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = estimate_ux.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  PyBlitzArrayObject* input           = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMStats_Type, &stats, 
-                                                                 &PyBlitzArray_Converter,&input))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-  self->cxx->estimateUx(*stats->cxx, *PyBlitzArrayCxx_AsBlitz<double,1>(input));
-
-  BOB_CATCH_MEMBER("cannot estimate Ux", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** forward_ux ***/
-static auto forward_ux = bob::extension::FunctionDoc(
-  "forward_ux",
-  "Computes a score for the given UBM statistics and given the Ux vector",
-  "", 
-  true
-)
-.add_prototype("stats,ux")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics as input")
-.add_parameter("ux", "array_like <float, 1D>", "Input vector");
-static PyObject* PyBobLearnMiscISVMachine_ForwardUx(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = forward_ux.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  PyBlitzArrayObject* ux_input        = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMStats_Type, &stats, 
-                                                                 &PyBlitzArray_Converter,&ux_input))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto ux_input_ = make_safe(ux_input);
-  double score = self->cxx->forward(*stats->cxx, *PyBlitzArrayCxx_AsBlitz<double,1>(ux_input));
-  
-  return Py_BuildValue("d", score);
-  BOB_CATCH_MEMBER("cannot forward_ux", 0)
-}
-
-
-/*** forward ***/
-static auto forward = bob::extension::FunctionDoc(
-  "forward",
-  "Execute the machine",
-  "", 
-  true
-)
-.add_prototype("stats")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics as input");
-static PyObject* PyBobLearnMiscISVMachine_Forward(PyBobLearnMiscISVMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = forward.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMStats_Type, &stats))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  double score = self->cxx->forward(*stats->cxx);
-
-  return Py_BuildValue("d", score);
-  BOB_CATCH_MEMBER("cannot forward", 0)
-
-}
-
-
-static PyMethodDef PyBobLearnMiscISVMachine_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscISVMachine_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscISVMachine_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscISVMachine_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  
-  {
-    estimate_x.name(),
-    (PyCFunction)PyBobLearnMiscISVMachine_estimateX,
-    METH_VARARGS|METH_KEYWORDS,
-    estimate_x.doc()
-  },
-  
-  {
-    estimate_ux.name(),
-    (PyCFunction)PyBobLearnMiscISVMachine_estimateUx,
-    METH_VARARGS|METH_KEYWORDS,
-    estimate_ux.doc()
-  },
-
-  {
-    forward_ux.name(),
-    (PyCFunction)PyBobLearnMiscISVMachine_ForwardUx,
-    METH_VARARGS|METH_KEYWORDS,
-    forward_ux.doc()
-  },
-
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the JFA type struct; will be initialized later
-PyTypeObject PyBobLearnMiscISVMachine_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscISVMachine(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscISVMachine_Type.tp_name      = ISVMachine_doc.name();
-  PyBobLearnMiscISVMachine_Type.tp_basicsize = sizeof(PyBobLearnMiscISVMachineObject);
-  PyBobLearnMiscISVMachine_Type.tp_flags     = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscISVMachine_Type.tp_doc       = ISVMachine_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscISVMachine_Type.tp_new         = PyType_GenericNew;
-  PyBobLearnMiscISVMachine_Type.tp_init        = reinterpret_cast<initproc>(PyBobLearnMiscISVMachine_init);
-  PyBobLearnMiscISVMachine_Type.tp_dealloc     = reinterpret_cast<destructor>(PyBobLearnMiscISVMachine_delete);
-  PyBobLearnMiscISVMachine_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscISVMachine_RichCompare);
-  PyBobLearnMiscISVMachine_Type.tp_methods     = PyBobLearnMiscISVMachine_methods;
-  PyBobLearnMiscISVMachine_Type.tp_getset      = PyBobLearnMiscISVMachine_getseters;
-  PyBobLearnMiscISVMachine_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscISVMachine_Forward);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscISVMachine_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscISVMachine_Type);
-  return PyModule_AddObject(module, "ISVMachine", (PyObject*)&PyBobLearnMiscISVMachine_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/isv_trainer.cpp b/bob/learn/misc/isv_trainer.cpp
deleted file mode 100644
index 6ac3b83..0000000
--- a/bob/learn/misc/isv_trainer.cpp
+++ /dev/null
@@ -1,566 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Mon 02 Fev 20:20:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-#include <boost/make_shared.hpp>
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static int extract_GMMStats_1d(PyObject *list,
-                             std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& training_data)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++){
-  
-    PyBobLearnMiscGMMStatsObject* stats;
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O!", &PyBobLearnMiscGMMStats_Type, &stats)){
-      PyErr_Format(PyExc_RuntimeError, "Expected GMMStats objects");
-      return -1;
-    }
-    training_data.push_back(stats->cxx);
-  }
-  return 0;
-}
-
-static int extract_GMMStats_2d(PyObject *list,
-                             std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& training_data)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++)
-  {
-    PyObject* another_list;
-    PyArg_Parse(PyList_GetItem(list, i), "O!", &PyList_Type, &another_list);
-
-    std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > another_training_data;
-    for (int j=0; j<PyList_GET_SIZE(another_list); j++){
-
-      PyBobLearnMiscGMMStatsObject* stats;
-      if (!PyArg_Parse(PyList_GetItem(another_list, j), "O!", &PyBobLearnMiscGMMStats_Type, &stats)){
-        PyErr_Format(PyExc_RuntimeError, "Expected GMMStats objects");
-        return -1;
-      }
-      another_training_data.push_back(stats->cxx);
-    }
-    training_data.push_back(another_training_data);
-  }
-  return 0;
-}
-
-template <int N>
-static PyObject* vector_as_list(const std::vector<blitz::Array<double,N> >& vec)
-{
-  PyObject* list = PyList_New(vec.size());
-  for(size_t i=0; i<vec.size(); i++){
-    blitz::Array<double,N> numpy_array = vec[i];
-    PyObject* numpy_py_object = PyBlitzArrayCxx_AsNumpy(numpy_array);
-    PyList_SET_ITEM(list, i, numpy_py_object);
-  }
-  return list;
-}
-
-template <int N>
-int list_as_vector(PyObject* list, std::vector<blitz::Array<double,N> >& vec)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++)
-  {
-    PyBlitzArrayObject* blitz_object; 
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O&", &PyBlitzArray_Converter, &blitz_object)){
-      PyErr_Format(PyExc_RuntimeError, "Expected numpy array object");
-      return -1;
-    }
-    auto blitz_object_ = make_safe(blitz_object);
-    vec.push_back(*PyBlitzArrayCxx_AsBlitz<double,N>(blitz_object));
-  }
-  return 0;
-}
-
-
-
-static auto ISVTrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".ISVTrainer",
-  "ISVTrainer"
-  "References: [Vogt2008,McCool2013]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Constructor. Builds a new ISVTrainer",
-    "",
-    true
-  )
-  .add_prototype("relevance_factor","")
-  .add_prototype("other","")
-  .add_prototype("","")
-  .add_parameter("other", ":py:class:`bob.learn.misc.ISVTrainer`", "A ISVTrainer object to be copied.")
-  .add_parameter("relevance_factor", "double", "")
-  .add_parameter("convergence_threshold", "double", "")
-);
-
-
-static int PyBobLearnMiscISVTrainer_init_copy(PyBobLearnMiscISVTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ISVTrainer_doc.kwlist(1);
-  PyBobLearnMiscISVTrainerObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscISVTrainer_Type, &o)){
-    ISVTrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::ISVTrainer(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscISVTrainer_init_number(PyBobLearnMiscISVTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = ISVTrainer_doc.kwlist(0);
-  double relevance_factor      = 4.;
-
-  //Parsing the input argments
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "d", kwlist, &relevance_factor))
-    return -1;
-
-  if(relevance_factor < 0){
-    PyErr_Format(PyExc_TypeError, "gaussians argument must be greater than zero");
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::ISVTrainer(relevance_factor));
-  return 0;
-}
-
-
-static int PyBobLearnMiscISVTrainer_init(PyBobLearnMiscISVTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  switch(nargs){
-    case 0:{
-      self->cxx.reset(new bob::learn::misc::ISVTrainer());
-      return 0;
-    }
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-      
-      if(PyBobLearnMiscISVTrainer_Check(arg))
-        // If the constructor input is ISVTrainer object
-        return PyBobLearnMiscISVTrainer_init_copy(self, args, kwargs);
-      else
-        return PyBobLearnMiscISVTrainer_init_number(self, args, kwargs);
-
-    }
-    default:{
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires only 0 or 1 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      ISVTrainer_doc.print_usage();
-      return -1;
-    }
-  }
-  BOB_CATCH_MEMBER("cannot create ISVTrainer", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscISVTrainer_delete(PyBobLearnMiscISVTrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscISVTrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscISVTrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscISVTrainer_RichCompare(PyBobLearnMiscISVTrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscISVTrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscISVTrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare ISVTrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-static auto acc_u_a1 = bob::extension::VariableDoc(
-  "acc_u_a1",
-  "array_like <float, 3D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscISVTrainer_get_acc_u_a1(PyBobLearnMiscISVTrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccUA1());
-  BOB_CATCH_MEMBER("acc_u_a1 could not be read", 0)
-}
-int PyBobLearnMiscISVTrainer_set_acc_u_a1(PyBobLearnMiscISVTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 3D array of floats", Py_TYPE(self)->tp_name, acc_u_a1.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,3>(o, "acc_u_a1");
-  if (!b) return -1;
-  self->cxx->setAccUA1(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_u_a1 could not be set", -1)
-}
-
-
-static auto acc_u_a2 = bob::extension::VariableDoc(
-  "acc_u_a2",
-  "array_like <float, 2D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscISVTrainer_get_acc_u_a2(PyBobLearnMiscISVTrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccUA2());
-  BOB_CATCH_MEMBER("acc_u_a2 could not be read", 0)
-}
-int PyBobLearnMiscISVTrainer_set_acc_u_a2(PyBobLearnMiscISVTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, acc_u_a2.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "acc_u_a2");
-  if (!b) return -1;
-  self->cxx->setAccUA2(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_u_a2 could not be set", -1)
-}
-
-
-
-
-
-static auto __X__ = bob::extension::VariableDoc(
-  "__X__",
-  "list",
-  "",
-  ""
-);
-PyObject* PyBobLearnMiscISVTrainer_get_X(PyBobLearnMiscISVTrainerObject* self, void*){
-  BOB_TRY
-  return vector_as_list(self->cxx->getX());
-  BOB_CATCH_MEMBER("__X__ could not be read", 0)
-}
-int PyBobLearnMiscISVTrainer_set_X(PyBobLearnMiscISVTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  if (!PyList_Check(value)){
-    PyErr_Format(PyExc_TypeError, "Expected a list in `%s'", __X__.name());
-    return -1;
-  }
-    
-  std::vector<blitz::Array<double,2> > data;
-  if(list_as_vector(value ,data)==0){
-    self->cxx->setX(data);
-  }
-    
-  return 0;
-  BOB_CATCH_MEMBER("__X__ could not be written", 0)
-}
-
-
-static auto __Z__ = bob::extension::VariableDoc(
-  "__Z__",
-  "list",
-  "",
-  ""
-);
-PyObject* PyBobLearnMiscISVTrainer_get_Z(PyBobLearnMiscISVTrainerObject* self, void*){
-  BOB_TRY
-  return vector_as_list(self->cxx->getZ());
-  BOB_CATCH_MEMBER("__Z__ could not be read", 0)
-}
-int PyBobLearnMiscISVTrainer_set_Z(PyBobLearnMiscISVTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  if (!PyList_Check(value)){
-    PyErr_Format(PyExc_TypeError, "Expected a list in `%s'", __Z__.name());
-    return -1;
-  }
-    
-  std::vector<blitz::Array<double,1> > data;
-  if(list_as_vector(value ,data)==0){
-    self->cxx->setZ(data);
-  }
-    
-  return 0;
-  BOB_CATCH_MEMBER("__Z__ could not be written", 0)
-}
-
-
-
-
-static PyGetSetDef PyBobLearnMiscISVTrainer_getseters[] = { 
-  {
-   acc_u_a1.name(),
-   (getter)PyBobLearnMiscISVTrainer_get_acc_u_a1,
-   (setter)PyBobLearnMiscISVTrainer_set_acc_u_a1,
-   acc_u_a1.doc(),
-   0
-  },
-  {
-   acc_u_a2.name(),
-   (getter)PyBobLearnMiscISVTrainer_get_acc_u_a2,
-   (setter)PyBobLearnMiscISVTrainer_set_acc_u_a2,
-   acc_u_a2.doc(),
-   0
-  },
-  {
-   __X__.name(),
-   (getter)PyBobLearnMiscISVTrainer_get_X,
-   (setter)PyBobLearnMiscISVTrainer_set_X,
-   __X__.doc(),
-   0
-  },
-  {
-   __Z__.name(),
-   (getter)PyBobLearnMiscISVTrainer_get_Z,
-   (setter)PyBobLearnMiscISVTrainer_set_Z,
-   __Z__.doc(),
-   0
-  },
-  
-  
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "Initialization before the EM steps",
-  "",
-  true
-)
-.add_prototype("isv_base,stats")
-.add_parameter("isv_base", ":py:class:`bob.learn.misc.ISVBase`", "ISVBase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscISVTrainer_initialize(PyBobLearnMiscISVTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnMiscISVBaseObject* isv_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscISVBase_Type, &isv_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->initialize(*isv_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** e_step ***/
-static auto e_step = bob::extension::FunctionDoc(
-  "e_step",
-  "Call the e-step procedure (for the U subspace).",
-  "",
-  true
-)
-.add_prototype("isv_base,stats")
-.add_parameter("isv_base", ":py:class:`bob.learn.misc.ISVBase`", "ISVBase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscISVTrainer_e_step(PyBobLearnMiscISVTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = e_step.kwlist(0);
-
-  PyBobLearnMiscISVBaseObject* isv_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscISVBase_Type, &isv_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->eStep(*isv_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the e_step method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** m_step ***/
-static auto m_step = bob::extension::FunctionDoc(
-  "m_step",
-  "Call the m-step procedure (for the U subspace).",
-  "",
-  true
-)
-.add_prototype("isv_base")
-.add_parameter("isv_base", ":py:class:`bob.learn.misc.ISVBase`", "ISVBase Object");
-static PyObject* PyBobLearnMiscISVTrainer_m_step(PyBobLearnMiscISVTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot 
-  char** kwlist = m_step.kwlist(0);
-
-  PyBobLearnMiscISVBaseObject* isv_base = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscISVBase_Type, &isv_base)) return 0;
-
-  self->cxx->mStep(*isv_base->cxx);
-
-  BOB_CATCH_MEMBER("cannot perform the m_step method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-/*** enrol ***/
-static auto enrol = bob::extension::FunctionDoc(
-  "enrol",
-  "",
-  "",
-  true
-)
-.add_prototype("isv_machine,features,n_iter","")
-.add_parameter("isv_machine", ":py:class:`bob.learn.misc.ISVMachine`", "ISVMachine Object")
-.add_parameter("features", "list(:py:class:`bob.learn.misc.GMMStats`)`", "")
-.add_parameter("n_iter", "int", "Number of iterations");
-static PyObject* PyBobLearnMiscISVTrainer_enrol(PyBobLearnMiscISVTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = enrol.kwlist(0);
-
-  PyBobLearnMiscISVMachineObject* isv_machine = 0;
-  PyObject* stats = 0;
-  int n_iter = 1;
-
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!i", kwlist, &PyBobLearnMiscISVMachine_Type, &isv_machine,
-                                                                  &PyList_Type, &stats, &n_iter)) Py_RETURN_NONE;
-
-  std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > training_data;
-  if(extract_GMMStats_1d(stats ,training_data)==0)
-    self->cxx->enrol(*isv_machine->cxx, training_data, n_iter);
-
-  BOB_CATCH_MEMBER("cannot perform the enrol method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-static PyMethodDef PyBobLearnMiscISVTrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscISVTrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    e_step.name(),
-    (PyCFunction)PyBobLearnMiscISVTrainer_e_step,
-    METH_VARARGS|METH_KEYWORDS,
-    e_step.doc()
-  },
-  {
-    m_step.name(),
-    (PyCFunction)PyBobLearnMiscISVTrainer_m_step,
-    METH_VARARGS|METH_KEYWORDS,
-    m_step.doc()
-  },
-  {
-    enrol.name(),
-    (PyCFunction)PyBobLearnMiscISVTrainer_enrol,
-    METH_VARARGS|METH_KEYWORDS,
-    enrol.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscISVTrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscISVTrainer(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscISVTrainer_Type.tp_name      = ISVTrainer_doc.name();
-  PyBobLearnMiscISVTrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscISVTrainerObject);
-  PyBobLearnMiscISVTrainer_Type.tp_flags     = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;//Enable the class inheritance;
-  PyBobLearnMiscISVTrainer_Type.tp_doc       = ISVTrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscISVTrainer_Type.tp_new          = PyType_GenericNew;
-  PyBobLearnMiscISVTrainer_Type.tp_init         = reinterpret_cast<initproc>(PyBobLearnMiscISVTrainer_init);
-  PyBobLearnMiscISVTrainer_Type.tp_dealloc      = reinterpret_cast<destructor>(PyBobLearnMiscISVTrainer_delete);
-  PyBobLearnMiscISVTrainer_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscISVTrainer_RichCompare);
-  PyBobLearnMiscISVTrainer_Type.tp_methods      = PyBobLearnMiscISVTrainer_methods;
-  PyBobLearnMiscISVTrainer_Type.tp_getset       = PyBobLearnMiscISVTrainer_getseters;
-  //PyBobLearnMiscISVTrainer_Type.tp_call         = reinterpret_cast<ternaryfunc>(PyBobLearnMiscISVTrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscISVTrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscISVTrainer_Type);
-  return PyModule_AddObject(module, "_ISVTrainer", (PyObject*)&PyBobLearnMiscISVTrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/ivector_machine.cpp b/bob/learn/misc/ivector_machine.cpp
deleted file mode 100644
index 5251905..0000000
--- a/bob/learn/misc/ivector_machine.cpp
+++ /dev/null
@@ -1,676 +0,0 @@
-/**
- * @date Wed Jan 28 17:46:15 2015 +0200
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto IVectorMachine_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".IVectorMachine",
-  "An IVectorMachine consists of a Total Variability subspace \f$T\f$ and allows the extraction of IVector"
-  "References: [Dehak2010]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Constructor. Builds a new IVectorMachine",
-    "",
-    true
-  )
-  .add_prototype("ubm, rt, variance_threshold","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-
-  .add_parameter("ubm", ":py:class:`bob.learn.misc.GMMMachine`", "The Universal Background Model.")
-  .add_parameter("rt", "int", "Size of the Total Variability matrix (CD x rt).")
-  .add_parameter("variance_threshold", "double", "Variance flooring threshold for the :math:`\\Sigma` (diagonal) matrix")
-
-  .add_parameter("other", ":py:class:`bob.learn.misc.IVectorMachine`", "A IVectorMachine object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscIVectorMachine_init_copy(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = IVectorMachine_doc.kwlist(1);
-  PyBobLearnMiscIVectorMachineObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscIVectorMachine_Type, &o)){
-    IVectorMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::IVectorMachine(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscIVectorMachine_init_hdf5(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = IVectorMachine_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    IVectorMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::IVectorMachine(*(config->f)));
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscIVectorMachine_init_ubm(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = IVectorMachine_doc.kwlist(0);
-  
-  PyBobLearnMiscGMMMachineObject* gmm_machine;
-  int rt = 1;
-  double variance_threshold = 1e-10;
-
-  //Here we have to select which keyword argument to read  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!i|d", kwlist, &PyBobLearnMiscGMMMachine_Type, &gmm_machine, &rt, &variance_threshold)){
-    IVectorMachine_doc.print_usage();
-    return -1;
-  }
-    
-  if(rt < 1){
-    PyErr_Format(PyExc_TypeError, "rt argument must be greater than or equal to one");
-    return -1;
-  }
-  
-  if(variance_threshold <= 0){
-    PyErr_Format(PyExc_TypeError, "variance_threshold argument must be greater than zero");
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::IVectorMachine(gmm_machine->cxx, rt, variance_threshold));
-  return 0;
-}
-
-
-static int PyBobLearnMiscIVectorMachine_init(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  if(nargs == 1){
-    //Reading the input argument
-    PyObject* arg = 0;
-    if (PyTuple_Size(args))
-      arg = PyTuple_GET_ITEM(args, 0);
-    else {
-      PyObject* tmp = PyDict_Values(kwargs);
-      auto tmp_ = make_safe(tmp);
-      arg = PyList_GET_ITEM(tmp, 0);
-    }
-
-    // If the constructor input is Gaussian object
-    if (PyBobLearnMiscIVectorMachine_Check(arg))
-      return PyBobLearnMiscIVectorMachine_init_copy(self, args, kwargs);
-    // If the constructor input is a HDF5
-    else
-      return PyBobLearnMiscIVectorMachine_init_hdf5(self, args, kwargs);
-  }
-  else if ((nargs == 2) || (nargs == 3))
-    PyBobLearnMiscIVectorMachine_init_ubm(self, args, kwargs);
-  else{
-    PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 1,2 or 3 argument, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-    IVectorMachine_doc.print_usage();
-    return -1;
-  }
-  
-  BOB_CATCH_MEMBER("cannot create IVectorMachine", 0)
-  return 0;
-}
-
-static void PyBobLearnMiscIVectorMachine_delete(PyBobLearnMiscIVectorMachineObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscIVectorMachine_RichCompare(PyBobLearnMiscIVectorMachineObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscIVectorMachine_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscIVectorMachineObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare IVectorMachine objects", 0)
-}
-
-int PyBobLearnMiscIVectorMachine_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscIVectorMachine_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int, int)",
-  "A tuple that represents the number of gaussians, dimensionality of each Gaussian, dimensionality of the rT (total variability matrix) ``(#Gaussians, #Inputs, #rT)``.",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorMachine_getShape(PyBobLearnMiscIVectorMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i,i)", self->cxx->getNGaussians(), self->cxx->getNInputs(), self->cxx->getDimRt());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-/***** supervector_length *****/
-static auto supervector_length = bob::extension::VariableDoc(
-  "supervector_length",
-  "int",
-
-  "Returns the supervector length."
-  "NGaussians x NInputs: Number of Gaussian components by the feature dimensionality",
-  
-  "@warning An exception is thrown if no Universal Background Model has been set yet."
-);
-PyObject* PyBobLearnMiscIVectorMachine_getSupervectorLength(PyBobLearnMiscIVectorMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("i", self->cxx->getSupervectorLength());
-  BOB_CATCH_MEMBER("supervector_length could not be read", 0)
-}
-
-
-/***** T *****/
-static auto T = bob::extension::VariableDoc(
-  "t",
-  "array_like <float, 2D>",
-  "Returns the Total Variability matrix",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorMachine_getT(PyBobLearnMiscIVectorMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getT());
-  BOB_CATCH_MEMBER("`t` could not be read", 0)
-}
-int PyBobLearnMiscIVectorMachine_setT(PyBobLearnMiscIVectorMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, T.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "t");
-  if (!b) return -1;
-  self->cxx->setT(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`t` vector could not be set", -1)
-}
-
-
-/***** sigma *****/
-static auto sigma = bob::extension::VariableDoc(
-  "sigma",
-  "array_like <float, 1D>",
-  "The residual matrix of the model sigma",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorMachine_getSigma(PyBobLearnMiscIVectorMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getSigma());
-  BOB_CATCH_MEMBER("`sigma` could not be read", 0)
-}
-int PyBobLearnMiscIVectorMachine_setSigma(PyBobLearnMiscIVectorMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, sigma.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "sigma");
-  if (!b) return -1;
-  self->cxx->setSigma(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`sigma` vector could not be set", -1)
-}
-
-
-/***** variance_threshold *****/
-static auto variance_threshold = bob::extension::VariableDoc(
-  "variance_threshold",
-  "double",
-  "Threshold for the variance contained in sigma",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorMachine_getVarianceThreshold(PyBobLearnMiscIVectorMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("d", self->cxx->getVarianceThreshold());
-  BOB_CATCH_MEMBER("variance_threshold could not be read", 0)
-}
-int PyBobLearnMiscIVectorMachine_setVarianceThreshold(PyBobLearnMiscIVectorMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyNumber_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an double", Py_TYPE(self)->tp_name, variance_threshold.name());
-    return -1;
-  }
-
-  if (PyFloat_AS_DOUBLE(value) < 0){
-    PyErr_Format(PyExc_TypeError, "variance_threshold must be greater than or equal to zero");
-    return -1;
-  }
-
-  self->cxx->setVarianceThreshold(PyFloat_AS_DOUBLE(value));
-  BOB_CATCH_MEMBER("variance_threshold could not be set", -1)
-  return 0;
-}
-
-
-/***** ubm *****/
-static auto ubm = bob::extension::VariableDoc(
-  "ubm",
-  ":py:class:`bob.learn.misc.GMMMachine`",
-  "Returns the UBM (Universal Background Model",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorMachine_getUBM(PyBobLearnMiscIVectorMachineObject* self, void*){
-  BOB_TRY
-
-  boost::shared_ptr<bob::learn::misc::GMMMachine> ubm_gmmMachine = self->cxx->getUbm();
-
-  //Allocating the correspondent python object
-  PyBobLearnMiscGMMMachineObject* retval =
-    (PyBobLearnMiscGMMMachineObject*)PyBobLearnMiscGMMMachine_Type.tp_alloc(&PyBobLearnMiscGMMMachine_Type, 0);
-  retval->cxx = ubm_gmmMachine;
-
-  return Py_BuildValue("O",retval);
-  BOB_CATCH_MEMBER("ubm could not be read", 0)
-}
-int PyBobLearnMiscIVectorMachine_setUBM(PyBobLearnMiscIVectorMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyBobLearnMiscGMMMachine_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a :py:class:`bob.learn.misc.GMMMachine`", Py_TYPE(self)->tp_name, ubm.name());
-    return -1;
-  }
-
-  PyBobLearnMiscGMMMachineObject* ubm_gmmMachine = 0;
-  PyArg_Parse(value, "O!", &PyBobLearnMiscGMMMachine_Type,&ubm_gmmMachine);
-
-  self->cxx->setUbm(ubm_gmmMachine->cxx);
-
-  return 0;
-  BOB_CATCH_MEMBER("ubm could not be set", -1)  
-}
-
-
-static PyGetSetDef PyBobLearnMiscIVectorMachine_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscIVectorMachine_getShape,
-   0,
-   shape.doc(),
-   0
-  },
-  
-  {
-   supervector_length.name(),
-   (getter)PyBobLearnMiscIVectorMachine_getSupervectorLength,
-   0,
-   supervector_length.doc(),
-   0
-  },
-  
-  {
-   T.name(),
-   (getter)PyBobLearnMiscIVectorMachine_getT,
-   (setter)PyBobLearnMiscIVectorMachine_setT,
-   T.doc(),
-   0
-  },
-
-  {
-   variance_threshold.name(),
-   (getter)PyBobLearnMiscIVectorMachine_getVarianceThreshold,
-   (setter)PyBobLearnMiscIVectorMachine_setVarianceThreshold,
-   variance_threshold.doc(),
-   0
-  },
-
-  {
-   sigma.name(),
-   (getter)PyBobLearnMiscIVectorMachine_getSigma,
-   (setter)PyBobLearnMiscIVectorMachine_setSigma,
-   sigma.doc(),
-   0
-  },
-
-  {
-   ubm.name(),
-   (getter)PyBobLearnMiscIVectorMachine_getUBM,
-   (setter)PyBobLearnMiscIVectorMachine_setUBM,
-   ubm.doc(),
-   0
-  },
-
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the IVectorMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscIVectorMachine_Save(PyBobLearnMiscIVectorMachineObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the IVectorMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscIVectorMachine_Load(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this IVectorMachine with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.IVectorMachine`", "A IVectorMachine object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscIVectorMachine_IsSimilarTo(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscIVectorMachineObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscIVectorMachine_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-
-/*** forward ***/
-static auto forward = bob::extension::FunctionDoc(
-  "forward",
-  "Execute the machine",
-  "", 
-  true
-)
-.add_prototype("stats")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics as input");
-static PyObject* PyBobLearnMiscIVectorMachine_Forward(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = forward.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMStats_Type, &stats))
-    Py_RETURN_NONE;
-
-   blitz::Array<double,1> ivector(self->cxx->getDimRt());
-   self->cxx->forward(*stats->cxx, ivector);
-
-  return PyBlitzArrayCxx_AsConstNumpy(ivector);
-  
-  BOB_CATCH_MEMBER("cannot forward", 0)
-
-}
-
-/*** resize ***/
-static auto resize = bob::extension::FunctionDoc(
-  "resize",
-  "Resets the dimensionality of the subspace T. ",
-  0,
-  true
-)
-.add_prototype("rT")
-.add_parameter("rT", "int", "Size of T (Total variability matrix)");
-static PyObject* PyBobLearnMiscIVectorMachine_resize(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = resize.kwlist(0);
-
-  int rT = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &rT)) Py_RETURN_NONE;
-
-  if (rT < 1){
-    PyErr_Format(PyExc_TypeError, "rU must be greater than one");
-    resize.print_usage();
-    return 0;
-  }
-
-  self->cxx->resize(rT);
-
-  BOB_CATCH_MEMBER("cannot perform the resize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** __compute_Id_TtSigmaInvT__ ***/
-static auto __compute_Id_TtSigmaInvT__ = bob::extension::FunctionDoc(
-  "__compute_Id_TtSigmaInvT__",
-  "",
-  "", 
-  true
-)
-.add_prototype("stats")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics as input");
-static PyObject* PyBobLearnMiscIVectorMachine_compute_Id_TtSigmaInvT__(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = __compute_Id_TtSigmaInvT__.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMStats_Type, &stats))
-    Py_RETURN_NONE;
-
-
-  blitz::Array<double,2> output(self->cxx->getDimRt(), self->cxx->getDimRt());
-  self->cxx->computeIdTtSigmaInvT(*stats->cxx, output);
-  return PyBlitzArrayCxx_AsConstNumpy(output);
-  
-  BOB_CATCH_MEMBER("cannot __compute_Id_TtSigmaInvT__", 0)
-}
-
-
-
-/*** __compute_TtSigmaInvFnorm__ ***/
-static auto __compute_TtSigmaInvFnorm__ = bob::extension::FunctionDoc(
-  "__compute_TtSigmaInvFnorm__",
-  "",
-  "", 
-  true
-)
-.add_prototype("stats")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics as input");
-static PyObject* PyBobLearnMiscIVectorMachine_compute_TtSigmaInvFnorm__(PyBobLearnMiscIVectorMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = __compute_TtSigmaInvFnorm__.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMStats_Type, &stats))
-    Py_RETURN_NONE;
-
-
-  blitz::Array<double,1> output(self->cxx->getDimRt());
-  self->cxx->computeTtSigmaInvFnorm(*stats->cxx, output);
-  return PyBlitzArrayCxx_AsConstNumpy(output);
-  
-  BOB_CATCH_MEMBER("cannot __compute_TtSigmaInvFnorm__", 0)
-}
-
-
-
-
-static PyMethodDef PyBobLearnMiscIVectorMachine_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscIVectorMachine_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscIVectorMachine_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscIVectorMachine_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    resize.name(),
-    (PyCFunction)PyBobLearnMiscIVectorMachine_resize,
-    METH_VARARGS|METH_KEYWORDS,
-    resize.doc()
-  },
-  {
-    __compute_Id_TtSigmaInvT__.name(),
-    (PyCFunction)PyBobLearnMiscIVectorMachine_compute_Id_TtSigmaInvT__,
-    METH_VARARGS|METH_KEYWORDS,
-    __compute_Id_TtSigmaInvT__.doc()
-  },
-  {
-    __compute_TtSigmaInvFnorm__.name(),
-    (PyCFunction)PyBobLearnMiscIVectorMachine_compute_TtSigmaInvFnorm__,
-    METH_VARARGS|METH_KEYWORDS,
-    __compute_TtSigmaInvFnorm__.doc()
-  },
-
-/*
-  {
-    forward.name(),
-    (PyCFunction)PyBobLearnMiscIVectorMachine_Forward,
-    METH_VARARGS|METH_KEYWORDS,
-    forward.doc()
-  },*/
-
-
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the JFA type struct; will be initialized later
-PyTypeObject PyBobLearnMiscIVectorMachine_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscIVectorMachine(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscIVectorMachine_Type.tp_name      = IVectorMachine_doc.name();
-  PyBobLearnMiscIVectorMachine_Type.tp_basicsize = sizeof(PyBobLearnMiscIVectorMachineObject);
-  PyBobLearnMiscIVectorMachine_Type.tp_flags     = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscIVectorMachine_Type.tp_doc       = IVectorMachine_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscIVectorMachine_Type.tp_new         = PyType_GenericNew;
-  PyBobLearnMiscIVectorMachine_Type.tp_init        = reinterpret_cast<initproc>(PyBobLearnMiscIVectorMachine_init);
-  PyBobLearnMiscIVectorMachine_Type.tp_dealloc     = reinterpret_cast<destructor>(PyBobLearnMiscIVectorMachine_delete);
-  PyBobLearnMiscIVectorMachine_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscIVectorMachine_RichCompare);
-  PyBobLearnMiscIVectorMachine_Type.tp_methods     = PyBobLearnMiscIVectorMachine_methods;
-  PyBobLearnMiscIVectorMachine_Type.tp_getset      = PyBobLearnMiscIVectorMachine_getseters;
-  PyBobLearnMiscIVectorMachine_Type.tp_call        = reinterpret_cast<ternaryfunc>(PyBobLearnMiscIVectorMachine_Forward);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscIVectorMachine_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscIVectorMachine_Type);
-  return PyModule_AddObject(module, "IVectorMachine", (PyObject*)&PyBobLearnMiscIVectorMachine_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/ivector_trainer.cpp b/bob/learn/misc/ivector_trainer.cpp
deleted file mode 100644
index 958d2a9..0000000
--- a/bob/learn/misc/ivector_trainer.cpp
+++ /dev/null
@@ -1,453 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Tue 03 Fev 10:29:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-#include <boost/make_shared.hpp>
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static inline bool f(PyObject* o){return o != 0 && PyObject_IsTrue(o) > 0;}  /* converts PyObject to bool and returns false if object is NULL */
-
-static int extract_GMMStats_1d(PyObject *list,
-                             std::vector<bob::learn::misc::GMMStats>& training_data)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++){
-  
-    PyBobLearnMiscGMMStatsObject* stats;
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O!", &PyBobLearnMiscGMMStats_Type, &stats)){
-      PyErr_Format(PyExc_RuntimeError, "Expected GMMStats objects");
-      return -1;
-    }
-    training_data.push_back(*stats->cxx);
-
-  }
-  return 0;
-}
-
-
-static auto IVectorTrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".IVectorTrainer",
-  "IVectorTrainer"
-  "An IVectorTrainer to learn a Total Variability subspace :math:`$T$`"
-  " (and eventually a covariance matrix :math:`$\\Sigma$`).",
-  " References: [Dehak2010]"
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Constructor. Builds a new IVectorTrainer",
-    "",
-    true
-  )
-  .add_prototype("update_sigma","")
-  .add_prototype("other","")
-  .add_prototype("","")
-  .add_parameter("other", ":py:class:`bob.learn.misc.IVectorTrainer`", "A IVectorTrainer object to be copied.")
-  .add_parameter("update_sigma", "bool", "")
-);
-
-
-static int PyBobLearnMiscIVectorTrainer_init_copy(PyBobLearnMiscIVectorTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = IVectorTrainer_doc.kwlist(1);
-  PyBobLearnMiscIVectorTrainerObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscIVectorTrainer_Type, &o)){
-    IVectorTrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::IVectorTrainer(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscIVectorTrainer_init_bool(PyBobLearnMiscIVectorTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = IVectorTrainer_doc.kwlist(0);
-  PyObject* update_sigma   = 0;
-
-  //Parsing the input argments
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBool_Type, &update_sigma))
-    return -1;
-  
-  self->cxx.reset(new bob::learn::misc::IVectorTrainer(f(update_sigma)));
-  return 0;
-}
-
-
-static int PyBobLearnMiscIVectorTrainer_init(PyBobLearnMiscIVectorTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  switch(nargs){
-    case 0:{
-      self->cxx.reset(new bob::learn::misc::IVectorTrainer());
-      return 0;
-    }
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-
-      // If the constructor input is IVectorTrainer object
-      if(PyBobLearnMiscIVectorTrainer_Check(arg))            
-        return  PyBobLearnMiscIVectorTrainer_init_copy(self, args, kwargs);
-      else
-        return PyBobLearnMiscIVectorTrainer_init_bool(self, args, kwargs);      
-      
-    }
-    default:{
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires only 0 or 1 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      IVectorTrainer_doc.print_usage();
-      return -1;
-    }
-  }
-  BOB_CATCH_MEMBER("cannot create IVectorTrainer", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscIVectorTrainer_delete(PyBobLearnMiscIVectorTrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscIVectorTrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscIVectorTrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscIVectorTrainer_RichCompare(PyBobLearnMiscIVectorTrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscIVectorTrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscIVectorTrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare IVectorTrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-static auto acc_nij_wij2 = bob::extension::VariableDoc(
-  "acc_nij_wij2",
-  "array_like <float, 3D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorTrainer_get_acc_nij_wij2(PyBobLearnMiscIVectorTrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccNijWij2());
-  BOB_CATCH_MEMBER("acc_nij_wij2 could not be read", 0)
-}
-int PyBobLearnMiscIVectorTrainer_set_acc_nij_wij2(PyBobLearnMiscIVectorTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 3D array of floats", Py_TYPE(self)->tp_name, acc_nij_wij2.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,3>(o, "acc_nij_wij2");
-  if (!b) return -1;
-  self->cxx->setAccNijWij2(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_nij_wij2 could not be set", -1)
-}
-
-
-static auto acc_fnormij_wij = bob::extension::VariableDoc(
-  "acc_fnormij_wij",
-  "array_like <float, 3D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorTrainer_get_acc_fnormij_wij(PyBobLearnMiscIVectorTrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccFnormijWij());
-  BOB_CATCH_MEMBER("acc_fnormij_wij could not be read", 0)
-}
-int PyBobLearnMiscIVectorTrainer_set_acc_fnormij_wij(PyBobLearnMiscIVectorTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 3D array of floats", Py_TYPE(self)->tp_name, acc_fnormij_wij.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,3>(o, "acc_fnormij_wij");
-  if (!b) return -1;
-  self->cxx->setAccFnormijWij(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_fnormij_wij could not be set", -1)
-}
-
-
-static auto acc_nij = bob::extension::VariableDoc(
-  "acc_nij",
-  "array_like <float, 1D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorTrainer_get_acc_nij(PyBobLearnMiscIVectorTrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccNij());
-  BOB_CATCH_MEMBER("acc_nij could not be read", 0)
-}
-int PyBobLearnMiscIVectorTrainer_set_acc_nij(PyBobLearnMiscIVectorTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, acc_nij.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "acc_nij");
-  if (!b) return -1;
-  self->cxx->setAccNij(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_nij could not be set", -1)
-}
-
-
-static auto acc_snormij = bob::extension::VariableDoc(
-  "acc_snormij",
-  "array_like <float, 2D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscIVectorTrainer_get_acc_snormij(PyBobLearnMiscIVectorTrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccSnormij());
-  BOB_CATCH_MEMBER("acc_snormij could not be read", 0)
-}
-int PyBobLearnMiscIVectorTrainer_set_acc_snormij(PyBobLearnMiscIVectorTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, acc_snormij.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "acc_snormij");
-  if (!b) return -1;
-  self->cxx->setAccSnormij(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_snormij could not be set", -1)
-}
-
-
-
-
-static PyGetSetDef PyBobLearnMiscIVectorTrainer_getseters[] = { 
-  {
-   acc_nij_wij2.name(),
-   (getter)PyBobLearnMiscIVectorTrainer_get_acc_nij_wij2,
-   (setter)PyBobLearnMiscIVectorTrainer_set_acc_nij_wij2,
-   acc_nij_wij2.doc(),
-   0
-  },  
-  {
-   acc_fnormij_wij.name(),
-   (getter)PyBobLearnMiscIVectorTrainer_get_acc_fnormij_wij,
-   (setter)PyBobLearnMiscIVectorTrainer_set_acc_fnormij_wij,
-   acc_fnormij_wij.doc(),
-   0
-  },
-  {
-   acc_nij.name(),
-   (getter)PyBobLearnMiscIVectorTrainer_get_acc_nij,
-   (setter)PyBobLearnMiscIVectorTrainer_set_acc_nij,
-   acc_nij.doc(),
-   0
-  },
-  {
-   acc_snormij.name(),
-   (getter)PyBobLearnMiscIVectorTrainer_get_acc_snormij,
-   (setter)PyBobLearnMiscIVectorTrainer_set_acc_snormij,
-   acc_snormij.doc(),
-   0
-  },
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "Initialization before the EM steps",
-  "",
-  true
-)
-.add_prototype("ivector_machine")
-.add_parameter("ivector_machine", ":py:class:`bob.learn.misc.ISVBase`", "IVectorMachine Object");
-static PyObject* PyBobLearnMiscIVectorTrainer_initialize(PyBobLearnMiscIVectorTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnMiscIVectorMachineObject* ivector_machine = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscIVectorMachine_Type, &ivector_machine)) Py_RETURN_NONE;
-
-  self->cxx->initialize(*ivector_machine->cxx);
-
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** e_step ***/
-static auto e_step = bob::extension::FunctionDoc(
-  "e_step",
-  "Call the e-step procedure (for the U subspace).",
-  "",
-  true
-)
-.add_prototype("ivector_machine,stats")
-.add_parameter("ivector_machine", ":py:class:`bob.learn.misc.ISVBase`", "IVectorMachine Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscIVectorTrainer_e_step(PyBobLearnMiscIVectorTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = e_step.kwlist(0);
-
-  PyBobLearnMiscIVectorMachineObject* ivector_machine = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscIVectorMachine_Type, &ivector_machine,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<bob::learn::misc::GMMStats> training_data;
-  if(extract_GMMStats_1d(stats ,training_data)==0)
-    self->cxx->eStep(*ivector_machine->cxx, training_data);
-
-  Py_RETURN_NONE;
-  BOB_CATCH_MEMBER("cannot perform the e_step method", 0)
-}
-
-
-/*** m_step ***/
-static auto m_step = bob::extension::FunctionDoc(
-  "m_step",
-  "Call the m-step procedure (for the U subspace).",
-  "",
-  true
-)
-.add_prototype("ivector_machine")
-.add_parameter("ivector_machine", ":py:class:`bob.learn.misc.ISVBase`", "IVectorMachine Object");
-static PyObject* PyBobLearnMiscIVectorTrainer_m_step(PyBobLearnMiscIVectorTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot 
-  char** kwlist = m_step.kwlist(0);
-
-  PyBobLearnMiscIVectorMachineObject* ivector_machine = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscIVectorMachine_Type, &ivector_machine)) Py_RETURN_NONE;
-
-  self->cxx->mStep(*ivector_machine->cxx);
-
-  BOB_CATCH_MEMBER("cannot perform the m_step method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-static PyMethodDef PyBobLearnMiscIVectorTrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscIVectorTrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    e_step.name(),
-    (PyCFunction)PyBobLearnMiscIVectorTrainer_e_step,
-    METH_VARARGS|METH_KEYWORDS,
-    e_step.doc()
-  },
-  {
-    m_step.name(),
-    (PyCFunction)PyBobLearnMiscIVectorTrainer_m_step,
-    METH_VARARGS|METH_KEYWORDS,
-    m_step.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscIVectorTrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscIVectorTrainer(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscIVectorTrainer_Type.tp_name      = IVectorTrainer_doc.name();
-  PyBobLearnMiscIVectorTrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscIVectorTrainerObject);
-  PyBobLearnMiscIVectorTrainer_Type.tp_flags     = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;//Enable the class inheritance;
-  PyBobLearnMiscIVectorTrainer_Type.tp_doc       = IVectorTrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscIVectorTrainer_Type.tp_new          = PyType_GenericNew;
-  PyBobLearnMiscIVectorTrainer_Type.tp_init         = reinterpret_cast<initproc>(PyBobLearnMiscIVectorTrainer_init);
-  PyBobLearnMiscIVectorTrainer_Type.tp_dealloc      = reinterpret_cast<destructor>(PyBobLearnMiscIVectorTrainer_delete);
-  PyBobLearnMiscIVectorTrainer_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscIVectorTrainer_RichCompare);
-  PyBobLearnMiscIVectorTrainer_Type.tp_methods      = PyBobLearnMiscIVectorTrainer_methods;
-  PyBobLearnMiscIVectorTrainer_Type.tp_getset       = PyBobLearnMiscIVectorTrainer_getseters;
-  //PyBobLearnMiscIVectorTrainer_Type.tp_call         = reinterpret_cast<ternaryfunc>(PyBobLearnMiscIVectorTrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscIVectorTrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscIVectorTrainer_Type);
-  return PyModule_AddObject(module, "_IVectorTrainer", (PyObject*)&PyBobLearnMiscIVectorTrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/jfa_base.cpp b/bob/learn/misc/jfa_base.cpp
deleted file mode 100644
index 5793919..0000000
--- a/bob/learn/misc/jfa_base.cpp
+++ /dev/null
@@ -1,578 +0,0 @@
-/**
- * @date Wed Jan 27 17:03:15 2015 +0200
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto JFABase_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".JFABase",
-  "A JFABase instance can be seen as a container for U, V and D when performing Joint Factor Analysis (JFA)."
-  "References: [Vogt2008,McCool2013]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Constructor. Builds a new JFABase",
-    "",
-    true
-  )
-  .add_prototype("gmm,ru,rv","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-  .add_prototype("","")
-
-  .add_parameter("gmm", ":py:class:`bob.learn.misc.GMMMachine`", "The Universal Background Model.")
-  .add_parameter("ru", "int", "Size of U (Within client variation matrix). In the end the U matrix will have (number_of_gaussians * feature_dimension x ru)")
-  .add_parameter("rv", "int", "Size of V (Between client variation matrix). In the end the U matrix will have (number_of_gaussians * feature_dimension x rv)")
-  .add_parameter("other", ":py:class:`bob.learn.misc.JFABase`", "A JFABase object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscJFABase_init_copy(PyBobLearnMiscJFABaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = JFABase_doc.kwlist(1);
-  PyBobLearnMiscJFABaseObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscJFABase_Type, &o)){
-    JFABase_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::JFABase(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscJFABase_init_hdf5(PyBobLearnMiscJFABaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = JFABase_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    JFABase_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::JFABase(*(config->f)));
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscJFABase_init_ubm(PyBobLearnMiscJFABaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = JFABase_doc.kwlist(0);
-  
-  PyBobLearnMiscGMMMachineObject* ubm;
-  int ru = 1;
-  int rv = 1;
-
-  //Here we have to select which keyword argument to read  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!ii", kwlist, &PyBobLearnMiscGMMMachine_Type, &ubm,
-                                                                &ru, &rv)){
-    JFABase_doc.print_usage();
-    return -1;
-  }
-  
-  if(ru < 0){
-    PyErr_Format(PyExc_TypeError, "ru argument must be greater than or equal to one");
-    return -1;
-  }
-  
-  if(rv < 0){
-    PyErr_Format(PyExc_TypeError, "rv argument must be greater than or equal to one");
-    return -1;
-  }
-  
-  self->cxx.reset(new bob::learn::misc::JFABase(ubm->cxx, ru, rv));
-  return 0;
-}
-
-
-static int PyBobLearnMiscJFABase_init(PyBobLearnMiscJFABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-    
-  switch (nargs) {
-
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-
-      // If the constructor input is Gaussian object
-     if (PyBobLearnMiscJFABase_Check(arg))
-       return PyBobLearnMiscJFABase_init_copy(self, args, kwargs);
-      // If the constructor input is a HDF5
-     else if (PyBobIoHDF5File_Check(arg))
-       return PyBobLearnMiscJFABase_init_hdf5(self, args, kwargs);
-    }
-    case 3:
-      return PyBobLearnMiscJFABase_init_ubm(self, args, kwargs);
-    default:
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 1 or 3 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      JFABase_doc.print_usage();
-      return -1;
-  }
-  BOB_CATCH_MEMBER("cannot create JFABase", 0)
-  return 0;
-}
-
-
-
-static void PyBobLearnMiscJFABase_delete(PyBobLearnMiscJFABaseObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscJFABase_RichCompare(PyBobLearnMiscJFABaseObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscJFABase_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscJFABaseObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare JFABase objects", 0)
-}
-
-int PyBobLearnMiscJFABase_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscJFABase_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int, int, int)",
-  "A tuple that represents the number of gaussians, dimensionality of each Gaussian, dimensionality of the rU (within client variability matrix) and dimensionality of the rV (between client variability matrix) ``(#Gaussians, #Inputs, #rU, #rV)``.",
-  ""
-);
-PyObject* PyBobLearnMiscJFABase_getShape(PyBobLearnMiscJFABaseObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i,i,i)", self->cxx->getNGaussians(), self->cxx->getNInputs(), self->cxx->getDimRu(), self->cxx->getDimRv());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-/***** supervector_length *****/
-static auto supervector_length = bob::extension::VariableDoc(
-  "supervector_length",
-  "int",
-
-  "Returns the supervector length."
-  "NGaussians x NInputs: Number of Gaussian components by the feature dimensionality",
-  
-  "@warning An exception is thrown if no Universal Background Model has been set yet."
-);
-PyObject* PyBobLearnMiscJFABase_getSupervectorLength(PyBobLearnMiscJFABaseObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("i", self->cxx->getSupervectorLength());
-  BOB_CATCH_MEMBER("supervector_length could not be read", 0)
-}
-
-
-/***** u *****/
-static auto U = bob::extension::VariableDoc(
-  "u",
-  "array_like <float, 2D>",
-  "Returns the U matrix (within client variability matrix)",
-  ""
-);
-PyObject* PyBobLearnMiscJFABase_getU(PyBobLearnMiscJFABaseObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getU());
-  BOB_CATCH_MEMBER("``u`` could not be read", 0)
-}
-int PyBobLearnMiscJFABase_setU(PyBobLearnMiscJFABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, U.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "u");
-  if (!b) return -1;
-  self->cxx->setU(*b);
-  return 0;
-  BOB_CATCH_MEMBER("``u`` matrix could not be set", -1)
-}
-
-/***** v *****/
-static auto V = bob::extension::VariableDoc(
-  "v",
-  "array_like <float, 2D>",
-  "Returns the V matrix (between client variability matrix)",
-  ""
-);
-PyObject* PyBobLearnMiscJFABase_getV(PyBobLearnMiscJFABaseObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getV());
-  BOB_CATCH_MEMBER("``v`` could not be read", 0)
-}
-int PyBobLearnMiscJFABase_setV(PyBobLearnMiscJFABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, V.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "v");
-  if (!b) return -1;
-  self->cxx->setV(*b);
-  return 0;
-  BOB_CATCH_MEMBER("``v`` matrix could not be set", -1)
-}
-
-
-/***** d *****/
-static auto D = bob::extension::VariableDoc(
-  "d",
-  "array_like <float, 1D>",
-  "Returns the diagonal matrix diag(d) (as a 1D vector)",
-  ""
-);
-PyObject* PyBobLearnMiscJFABase_getD(PyBobLearnMiscJFABaseObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getD());
-  BOB_CATCH_MEMBER("``d`` could not be read", 0)
-}
-int PyBobLearnMiscJFABase_setD(PyBobLearnMiscJFABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, D.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "d");
-  if (!b) return -1;
-  self->cxx->setD(*b);
-  return 0;
-  BOB_CATCH_MEMBER("``d`` matrix could not be set", -1)
-}
-
-
-/***** ubm *****/
-static auto ubm = bob::extension::VariableDoc(
-  "ubm",
-  ":py:class:`bob.learn.misc.GMMMachine`",
-  "Returns the UBM (Universal Background Model",
-  ""
-);
-PyObject* PyBobLearnMiscJFABase_getUBM(PyBobLearnMiscJFABaseObject* self, void*){
-  BOB_TRY
-
-  boost::shared_ptr<bob::learn::misc::GMMMachine> ubm_gmmMachine = self->cxx->getUbm();
-
-  //Allocating the correspondent python object
-  PyBobLearnMiscGMMMachineObject* retval =
-    (PyBobLearnMiscGMMMachineObject*)PyBobLearnMiscGMMMachine_Type.tp_alloc(&PyBobLearnMiscGMMMachine_Type, 0);
-  retval->cxx = ubm_gmmMachine;
-
-  return Py_BuildValue("O",retval);
-  BOB_CATCH_MEMBER("ubm could not be read", 0)
-}
-int PyBobLearnMiscJFABase_setUBM(PyBobLearnMiscJFABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyBobLearnMiscGMMMachine_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a :py:class:`bob.learn.misc.GMMMachine`", Py_TYPE(self)->tp_name, ubm.name());
-    return -1;
-  }
-
-  PyBobLearnMiscGMMMachineObject* ubm_gmmMachine = 0;
-  PyArg_Parse(value, "O!", &PyBobLearnMiscGMMMachine_Type,&ubm_gmmMachine);
-
-  self->cxx->setUbm(ubm_gmmMachine->cxx);
-
-  return 0;
-  BOB_CATCH_MEMBER("ubm could not be set", -1)  
-}
-
-
-
-
-static PyGetSetDef PyBobLearnMiscJFABase_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscJFABase_getShape,
-   0,
-   shape.doc(),
-   0
-  },
-  
-  {
-   supervector_length.name(),
-   (getter)PyBobLearnMiscJFABase_getSupervectorLength,
-   0,
-   supervector_length.doc(),
-   0
-  },
-  
-  {
-   U.name(),
-   (getter)PyBobLearnMiscJFABase_getU,
-   (setter)PyBobLearnMiscJFABase_setU,
-   U.doc(),
-   0
-  },
-  
-  {
-   V.name(),
-   (getter)PyBobLearnMiscJFABase_getV,
-   (setter)PyBobLearnMiscJFABase_setV,
-   V.doc(),
-   0
-  },
-
-  {
-   D.name(),
-   (getter)PyBobLearnMiscJFABase_getD,
-   (setter)PyBobLearnMiscJFABase_setD,
-   D.doc(),
-   0
-  },
-
-  {
-   ubm.name(),
-   (getter)PyBobLearnMiscJFABase_getUBM,
-   (setter)PyBobLearnMiscJFABase_setUBM,
-   ubm.doc(),
-   0
-  },
-
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the JFABase to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscJFABase_Save(PyBobLearnMiscJFABaseObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the JFABase to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscJFABase_Load(PyBobLearnMiscJFABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this JFABase with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.JFABase`", "A JFABase object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscJFABase_IsSimilarTo(PyBobLearnMiscJFABaseObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscJFABaseObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscJFABase_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** resize ***/
-static auto resize = bob::extension::FunctionDoc(
-  "resize",
-  "Resets the dimensionality of the subspace U and V. "
-  "U and V are hence uninitialized",
-  0,
-  true
-)
-.add_prototype("rU,rV")
-.add_parameter("rU", "int", "Size of U (Within client variation matrix)")
-.add_parameter("rV", "int", "Size of V (Between client variation matrix)");
-static PyObject* PyBobLearnMiscJFABase_resize(PyBobLearnMiscJFABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = resize.kwlist(0);
-
-  int rU = 0;
-  int rV = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &rU, &rV)) Py_RETURN_NONE;
-
-  if (rU <= 0){
-    PyErr_Format(PyExc_TypeError, "rU must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-  if (rV <= 0){
-    PyErr_Format(PyExc_TypeError, "rV must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-  self->cxx->resize(rU, rV);
-
-  BOB_CATCH_MEMBER("cannot perform the resize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-
-static PyMethodDef PyBobLearnMiscJFABase_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscJFABase_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscJFABase_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscJFABase_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    resize.name(),
-    (PyCFunction)PyBobLearnMiscJFABase_resize,
-    METH_VARARGS|METH_KEYWORDS,
-    resize.doc()
-  },
-  
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the JFA type struct; will be initialized later
-PyTypeObject PyBobLearnMiscJFABase_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscJFABase(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscJFABase_Type.tp_name      = JFABase_doc.name();
-  PyBobLearnMiscJFABase_Type.tp_basicsize = sizeof(PyBobLearnMiscJFABaseObject);
-  PyBobLearnMiscJFABase_Type.tp_flags     = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscJFABase_Type.tp_doc       = JFABase_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscJFABase_Type.tp_new         = PyType_GenericNew;
-  PyBobLearnMiscJFABase_Type.tp_init        = reinterpret_cast<initproc>(PyBobLearnMiscJFABase_init);
-  PyBobLearnMiscJFABase_Type.tp_dealloc     = reinterpret_cast<destructor>(PyBobLearnMiscJFABase_delete);
-  PyBobLearnMiscJFABase_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscJFABase_RichCompare);
-  PyBobLearnMiscJFABase_Type.tp_methods     = PyBobLearnMiscJFABase_methods;
-  PyBobLearnMiscJFABase_Type.tp_getset      = PyBobLearnMiscJFABase_getseters;
-  //PyBobLearnMiscJFABase_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscJFABase_forward);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscJFABase_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscJFABase_Type);
-  return PyModule_AddObject(module, "JFABase", (PyObject*)&PyBobLearnMiscJFABase_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/jfa_machine.cpp b/bob/learn/misc/jfa_machine.cpp
deleted file mode 100644
index af71412..0000000
--- a/bob/learn/misc/jfa_machine.cpp
+++ /dev/null
@@ -1,650 +0,0 @@
-/**
- * @date Wed Jan 28 17:03:15 2015 +0200
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto JFAMachine_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".JFAMachine",
-  "A JFAMachine. An attached :py:class:`bob.learn.misc.JFABase` should be provided for Joint Factor Analysis. The :py:class:`bob.learn.misc.JFAMachine` carries information about the speaker factors y and z, whereas a :py:class:`bob.learn.misc.JFABase` carries information about the matrices U, V and D."
-  "References: [Vogt2008,McCool2013]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Constructor. Builds a new JFAMachine",
-    "",
-    true
-  )
-  .add_prototype("jfa_base","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-
-  .add_parameter("jfa", ":py:class:`bob.learn.misc.JFABase`", "The JFABase associated with this machine")
-  .add_parameter("other", ":py:class:`bob.learn.misc.JFAMachine`", "A JFAMachine object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscJFAMachine_init_copy(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = JFAMachine_doc.kwlist(1);
-  PyBobLearnMiscJFAMachineObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscJFAMachine_Type, &o)){
-    JFAMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::JFAMachine(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscJFAMachine_init_hdf5(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = JFAMachine_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    JFAMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::JFAMachine(*(config->f)));
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscJFAMachine_init_jfabase(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = JFAMachine_doc.kwlist(0);
-  
-  PyBobLearnMiscJFABaseObject* jfa_base;
-
-  //Here we have to select which keyword argument to read  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base)){
-    JFAMachine_doc.print_usage();
-    return -1;
-  }
-  
-  self->cxx.reset(new bob::learn::misc::JFAMachine(jfa_base->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscJFAMachine_init(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  if(nargs == 1){
-    //Reading the input argument
-    PyObject* arg = 0;
-    if (PyTuple_Size(args))
-      arg = PyTuple_GET_ITEM(args, 0);
-    else {
-      PyObject* tmp = PyDict_Values(kwargs);
-      auto tmp_ = make_safe(tmp);
-      arg = PyList_GET_ITEM(tmp, 0);
-    }
-
-    // If the constructor input is Gaussian object
-    if (PyBobLearnMiscJFAMachine_Check(arg))
-      return PyBobLearnMiscJFAMachine_init_copy(self, args, kwargs);
-    // If the constructor input is a HDF5
-    else if (PyBobIoHDF5File_Check(arg))
-      return PyBobLearnMiscJFAMachine_init_hdf5(self, args, kwargs);
-    // If the constructor input is a JFABase Object
-    else
-      return PyBobLearnMiscJFAMachine_init_jfabase(self, args, kwargs);
-  }
-  else{
-    PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires only 1 argument, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-    JFAMachine_doc.print_usage();
-    return -1;
-  }
-  
-  BOB_CATCH_MEMBER("cannot create JFAMachine", 0)
-  return 0;
-}
-
-static void PyBobLearnMiscJFAMachine_delete(PyBobLearnMiscJFAMachineObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscJFAMachine_RichCompare(PyBobLearnMiscJFAMachineObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscJFAMachine_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscJFAMachineObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare JFAMachine objects", 0)
-}
-
-int PyBobLearnMiscJFAMachine_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscJFAMachine_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int, int, int)",
-  "A tuple that represents the number of gaussians, dimensionality of each Gaussian, dimensionality of the rU (within client variability matrix) and dimensionality of the rV (between client variability matrix) ``(#Gaussians, #Inputs, #rU, #rV)``.",
-  ""
-);
-PyObject* PyBobLearnMiscJFAMachine_getShape(PyBobLearnMiscJFAMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i,i,i)", self->cxx->getNGaussians(), self->cxx->getNInputs(), self->cxx->getDimRu(), self->cxx->getDimRv());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-/***** supervector_length *****/
-static auto supervector_length = bob::extension::VariableDoc(
-  "supervector_length",
-  "int",
-
-  "Returns the supervector length."
-  "NGaussians x NInputs: Number of Gaussian components by the feature dimensionality",
-  
-  "@warning An exception is thrown if no Universal Background Model has been set yet."
-);
-PyObject* PyBobLearnMiscJFAMachine_getSupervectorLength(PyBobLearnMiscJFAMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("i", self->cxx->getSupervectorLength());
-  BOB_CATCH_MEMBER("supervector_length could not be read", 0)
-}
-
-
-/***** y *****/
-static auto Y = bob::extension::VariableDoc(
-  "y",
-  "array_like <float, 1D>",
-  "Returns the y speaker factor. Eq (30) from [McCool2013]",
-  ""
-);
-PyObject* PyBobLearnMiscJFAMachine_getY(PyBobLearnMiscJFAMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getY());
-  BOB_CATCH_MEMBER("`y` could not be read", 0)
-}
-int PyBobLearnMiscJFAMachine_setY(PyBobLearnMiscJFAMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, Y.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "y");
-  if (!b) return -1;
-  self->cxx->setY(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`y` vector could not be set", -1)
-}
-
-
-/***** z *****/
-static auto Z = bob::extension::VariableDoc(
-  "z",
-  "array_like <float, 1D>",
-  "Returns the z speaker factor. Eq (31) from [McCool2013]",
-  ""
-);
-PyObject* PyBobLearnMiscJFAMachine_getZ(PyBobLearnMiscJFAMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getZ());
-  BOB_CATCH_MEMBER("`z` could not be read", 0)
-}
-int PyBobLearnMiscJFAMachine_setZ(PyBobLearnMiscJFAMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, Z.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "z");
-  if (!b) return -1;
-  self->cxx->setZ(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`z` vector could not be set", -1)
-}
-
-
-/***** x *****/
-static auto X = bob::extension::VariableDoc(
-  "x",
-  "array_like <float, 1D>",
-  "Returns the X session factor. Eq (29) from [McCool2013]",
-  "The latent variable x (last one computed). This is a feature provided for convenience, but this attribute is not 'part' of the machine. The session latent variable x is indeed not class-specific, but depends on the sample considered. Furthermore, it is not saved into the machine or used when comparing machines."
-);
-PyObject* PyBobLearnMiscJFAMachine_getX(PyBobLearnMiscJFAMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getX());
-  BOB_CATCH_MEMBER("`x` could not be read", 0)
-}
-
-
-/***** jfa_base *****/
-static auto jfa_base = bob::extension::VariableDoc(
-  "jfa_base",
-  ":py:class:`bob.learn.misc.JFABase`",
-  "The JFABase attached to this machine",
-  ""
-);
-PyObject* PyBobLearnMiscJFAMachine_getJFABase(PyBobLearnMiscJFAMachineObject* self, void*){
-  BOB_TRY
-
-  boost::shared_ptr<bob::learn::misc::JFABase> jfa_base_o = self->cxx->getJFABase();
-
-  //Allocating the correspondent python object
-  PyBobLearnMiscJFABaseObject* retval =
-    (PyBobLearnMiscJFABaseObject*)PyBobLearnMiscJFABase_Type.tp_alloc(&PyBobLearnMiscJFABase_Type, 0);
-  retval->cxx = jfa_base_o;
-
-  return Py_BuildValue("O",retval);
-  BOB_CATCH_MEMBER("jfa_base could not be read", 0)
-}
-int PyBobLearnMiscJFAMachine_setJFABase(PyBobLearnMiscJFAMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyBobLearnMiscJFABase_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a :py:class:`bob.learn.misc.JFABase`", Py_TYPE(self)->tp_name, jfa_base.name());
-    return -1;
-  }
-
-  PyBobLearnMiscJFABaseObject* jfa_base_o = 0;
-  PyArg_Parse(value, "O!", &PyBobLearnMiscJFABase_Type,&jfa_base_o);
-
-  self->cxx->setJFABase(jfa_base_o->cxx);
-
-  return 0;
-  BOB_CATCH_MEMBER("jfa_base could not be set", -1)  
-}
-
-
-
-
-static PyGetSetDef PyBobLearnMiscJFAMachine_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscJFAMachine_getShape,
-   0,
-   shape.doc(),
-   0
-  },
-  
-  {
-   supervector_length.name(),
-   (getter)PyBobLearnMiscJFAMachine_getSupervectorLength,
-   0,
-   supervector_length.doc(),
-   0
-  },
-  
-  {
-   jfa_base.name(),
-   (getter)PyBobLearnMiscJFAMachine_getJFABase,
-   (setter)PyBobLearnMiscJFAMachine_setJFABase,
-   jfa_base.doc(),
-   0
-  },
-
-  {
-   Y.name(),
-   (getter)PyBobLearnMiscJFAMachine_getY,
-   (setter)PyBobLearnMiscJFAMachine_setY,
-   Y.doc(),
-   0
-  },
-
-  {
-   Z.name(),
-   (getter)PyBobLearnMiscJFAMachine_getZ,
-   (setter)PyBobLearnMiscJFAMachine_setZ,
-   Z.doc(),
-   0
-  },
-
-  {
-   X.name(),
-   (getter)PyBobLearnMiscJFAMachine_getX,
-   0,
-   X.doc(),
-   0
-  },
-
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the JFAMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscJFAMachine_Save(PyBobLearnMiscJFAMachineObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the JFAMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscJFAMachine_Load(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this JFAMachine with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.JFAMachine`", "A JFAMachine object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscJFAMachine_IsSimilarTo(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscJFAMachineObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscJFAMachine_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** estimate_x ***/
-static auto estimate_x = bob::extension::FunctionDoc(
-  "estimate_x",
-  "Estimates the session offset x (LPT assumption) given GMM statistics.",
-  "Estimates x from the GMM statistics considering the LPT assumption, that is the latent session variable x is approximated using the UBM", 
-  true
-)
-.add_prototype("stats,input")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics of the GMM")
-.add_parameter("input", "array_like <float, 1D>", "Input vector");
-static PyObject* PyBobLearnMiscJFAMachine_estimateX(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = estimate_x.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  PyBlitzArrayObject* input           = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMStats_Type, &stats, 
-                                                                 &PyBlitzArray_Converter,&input))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-  self->cxx->estimateX(*stats->cxx, *PyBlitzArrayCxx_AsBlitz<double,1>(input));
-
-  BOB_CATCH_MEMBER("cannot estimate X", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** estimate_ux ***/
-static auto estimate_ux = bob::extension::FunctionDoc(
-  "estimate_ux",
-  "Estimates Ux (LPT assumption) given GMM statistics.",
-  "Estimates Ux from the GMM statistics considering the LPT assumption, that is the latent session variable x is approximated using the UBM.", 
-  true
-)
-.add_prototype("stats,input")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics of the GMM")
-.add_parameter("input", "array_like <float, 1D>", "Input vector");
-static PyObject* PyBobLearnMiscJFAMachine_estimateUx(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = estimate_ux.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  PyBlitzArrayObject* input           = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMStats_Type, &stats, 
-                                                                 &PyBlitzArray_Converter,&input))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-  self->cxx->estimateUx(*stats->cxx, *PyBlitzArrayCxx_AsBlitz<double,1>(input));
-
-  BOB_CATCH_MEMBER("cannot estimate Ux", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** forward_ux ***/
-static auto forward_ux = bob::extension::FunctionDoc(
-  "forward_ux",
-  "Computes a score for the given UBM statistics and given the Ux vector",
-  "", 
-  true
-)
-.add_prototype("stats,ux")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics as input")
-.add_parameter("ux", "array_like <float, 1D>", "Input vector");
-static PyObject* PyBobLearnMiscJFAMachine_ForwardUx(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = forward_ux.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  PyBlitzArrayObject* ux_input        = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscGMMStats_Type, &stats, 
-                                                                 &PyBlitzArray_Converter,&ux_input))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto ux_input_ = make_safe(ux_input);
-  double score = self->cxx->forward(*stats->cxx, *PyBlitzArrayCxx_AsBlitz<double,1>(ux_input));
-  
-  return Py_BuildValue("d", score);
-  BOB_CATCH_MEMBER("cannot forward_ux", 0)
-
-}
-
-
-/*** forward ***/
-static auto forward = bob::extension::FunctionDoc(
-  "forward",
-  "Execute the machine",
-  "", 
-  true
-)
-.add_prototype("stats")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "Statistics as input");
-static PyObject* PyBobLearnMiscJFAMachine_Forward(PyBobLearnMiscJFAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  char** kwlist = forward.kwlist(0);
-
-  PyBobLearnMiscGMMStatsObject* stats = 0;
-  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMStats_Type, &stats))
-    Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  double score = self->cxx->forward(*stats->cxx);
-
-  return Py_BuildValue("d", score);
-  BOB_CATCH_MEMBER("cannot forward", 0)
-
-}
-
-
-static PyMethodDef PyBobLearnMiscJFAMachine_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscJFAMachine_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscJFAMachine_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscJFAMachine_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  
-  {
-    estimate_x.name(),
-    (PyCFunction)PyBobLearnMiscJFAMachine_estimateX,
-    METH_VARARGS|METH_KEYWORDS,
-    estimate_x.doc()
-  },
-  
-  {
-    estimate_ux.name(),
-    (PyCFunction)PyBobLearnMiscJFAMachine_estimateUx,
-    METH_VARARGS|METH_KEYWORDS,
-    estimate_ux.doc()
-  },
-
-  {
-    forward_ux.name(),
-    (PyCFunction)PyBobLearnMiscJFAMachine_ForwardUx,
-    METH_VARARGS|METH_KEYWORDS,
-    forward_ux.doc()
-  },
-/*
-  {
-    forward.name(),
-    (PyCFunction)PyBobLearnMiscJFAMachine_Forward,
-    METH_VARARGS|METH_KEYWORDS,
-    forward.doc()
-  },*/
-
-
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the JFA type struct; will be initialized later
-PyTypeObject PyBobLearnMiscJFAMachine_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscJFAMachine(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscJFAMachine_Type.tp_name      = JFAMachine_doc.name();
-  PyBobLearnMiscJFAMachine_Type.tp_basicsize = sizeof(PyBobLearnMiscJFAMachineObject);
-  PyBobLearnMiscJFAMachine_Type.tp_flags     = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscJFAMachine_Type.tp_doc       = JFAMachine_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscJFAMachine_Type.tp_new         = PyType_GenericNew;
-  PyBobLearnMiscJFAMachine_Type.tp_init        = reinterpret_cast<initproc>(PyBobLearnMiscJFAMachine_init);
-  PyBobLearnMiscJFAMachine_Type.tp_dealloc     = reinterpret_cast<destructor>(PyBobLearnMiscJFAMachine_delete);
-  PyBobLearnMiscJFAMachine_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscJFAMachine_RichCompare);
-  PyBobLearnMiscJFAMachine_Type.tp_methods     = PyBobLearnMiscJFAMachine_methods;
-  PyBobLearnMiscJFAMachine_Type.tp_getset      = PyBobLearnMiscJFAMachine_getseters;
-  PyBobLearnMiscJFAMachine_Type.tp_call        = reinterpret_cast<ternaryfunc>(PyBobLearnMiscJFAMachine_Forward);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscJFAMachine_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscJFAMachine_Type);
-  return PyModule_AddObject(module, "JFAMachine", (PyObject*)&PyBobLearnMiscJFAMachine_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/jfa_trainer.cpp b/bob/learn/misc/jfa_trainer.cpp
deleted file mode 100644
index 8d46e94..0000000
--- a/bob/learn/misc/jfa_trainer.cpp
+++ /dev/null
@@ -1,1013 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Sun 01 Fev 09:40:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-#include <boost/make_shared.hpp>
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static int extract_GMMStats_1d(PyObject *list,
-                             std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >& training_data)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++){
-  
-    PyBobLearnMiscGMMStatsObject* stats;
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O!", &PyBobLearnMiscGMMStats_Type, &stats)){
-      PyErr_Format(PyExc_RuntimeError, "Expected GMMStats objects");
-      return -1;
-    }
-    training_data.push_back(stats->cxx);
-  }
-  return 0;
-}
-
-static int extract_GMMStats_2d(PyObject *list,
-                             std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& training_data)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++)
-  {
-    PyObject* another_list;
-    PyArg_Parse(PyList_GetItem(list, i), "O!", &PyList_Type, &another_list);
-
-    std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > another_training_data;
-    for (int j=0; j<PyList_GET_SIZE(another_list); j++){
-
-      PyBobLearnMiscGMMStatsObject* stats;
-      if (!PyArg_Parse(PyList_GetItem(another_list, j), "O!", &PyBobLearnMiscGMMStats_Type, &stats)){
-        PyErr_Format(PyExc_RuntimeError, "Expected GMMStats objects");
-        return -1;
-      }
-      another_training_data.push_back(stats->cxx);
-    }
-    training_data.push_back(another_training_data);
-  }
-  return 0;
-}
-
-template <int N>
-static PyObject* vector_as_list(const std::vector<blitz::Array<double,N> >& vec)
-{
-  PyObject* list = PyList_New(vec.size());
-  for(size_t i=0; i<vec.size(); i++){
-    blitz::Array<double,N> numpy_array = vec[i];
-    PyObject* numpy_py_object = PyBlitzArrayCxx_AsNumpy(numpy_array);
-    PyList_SET_ITEM(list, i, numpy_py_object);
-  }
-  return list;
-}
-
-template <int N>
-int list_as_vector(PyObject* list, std::vector<blitz::Array<double,N> >& vec)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++)
-  {
-    PyBlitzArrayObject* blitz_object; 
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O&", &PyBlitzArray_Converter, &blitz_object)){
-      PyErr_Format(PyExc_RuntimeError, "Expected numpy array object");
-      return -1;
-    }
-    auto blitz_object_ = make_safe(blitz_object);
-    vec.push_back(*PyBlitzArrayCxx_AsBlitz<double,N>(blitz_object));
-  }
-  return 0;
-}
-
-
-
-static auto JFATrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".JFATrainer",
-  "JFATrainer"
-  "References: [Vogt2008,McCool2013]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Constructor. Builds a new JFATrainer",
-    "",
-    true
-  )
-  .add_prototype("other","")
-  .add_prototype("","")
-  .add_parameter("other", ":py:class:`bob.learn.misc.JFATrainer`", "A JFATrainer object to be copied.")
-);
-
-
-static int PyBobLearnMiscJFATrainer_init_copy(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = JFATrainer_doc.kwlist(0);
-  PyBobLearnMiscJFATrainerObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscJFATrainer_Type, &o)){
-    JFATrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::JFATrainer(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscJFATrainer_init(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  switch(nargs){
-    case 0:{
-      self->cxx.reset(new bob::learn::misc::JFATrainer());
-      return 0;
-    }
-    case 1:{
-      // If the constructor input is JFATrainer object
-      return PyBobLearnMiscJFATrainer_init_copy(self, args, kwargs);
-    }
-    default:{
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires only 0 and 1 argument, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      JFATrainer_doc.print_usage();
-      return -1;
-    }
-  }
-  BOB_CATCH_MEMBER("cannot create JFATrainer", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscJFATrainer_delete(PyBobLearnMiscJFATrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscJFATrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscJFATrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscJFATrainer_RichCompare(PyBobLearnMiscJFATrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscJFATrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscJFATrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare JFATrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-static auto acc_v_a1 = bob::extension::VariableDoc(
-  "acc_v_a1",
-  "array_like <float, 3D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_acc_v_a1(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccVA1());
-  BOB_CATCH_MEMBER("acc_v_a1 could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_acc_v_a1(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 3D array of floats", Py_TYPE(self)->tp_name, acc_v_a1.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,3>(o, "acc_v_a1");
-  if (!b) return -1;
-  self->cxx->setAccVA1(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_v_a1 could not be set", -1)
-}
-
-
-static auto acc_v_a2 = bob::extension::VariableDoc(
-  "acc_v_a2",
-  "array_like <float, 2D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_acc_v_a2(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccVA2());
-  BOB_CATCH_MEMBER("acc_v_a2 could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_acc_v_a2(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, acc_v_a2.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "acc_v_a2");
-  if (!b) return -1;
-  self->cxx->setAccVA2(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_v_a2 could not be set", -1)
-}
-
-
-static auto acc_u_a1 = bob::extension::VariableDoc(
-  "acc_u_a1",
-  "array_like <float, 3D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_acc_u_a1(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccUA1());
-  BOB_CATCH_MEMBER("acc_u_a1 could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_acc_u_a1(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 3D array of floats", Py_TYPE(self)->tp_name, acc_u_a1.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,3>(o, "acc_u_a1");
-  if (!b) return -1;
-  self->cxx->setAccUA1(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_u_a1 could not be set", -1)
-}
-
-
-static auto acc_u_a2 = bob::extension::VariableDoc(
-  "acc_u_a2",
-  "array_like <float, 2D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_acc_u_a2(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccUA2());
-  BOB_CATCH_MEMBER("acc_u_a2 could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_acc_u_a2(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, acc_u_a2.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "acc_u_a2");
-  if (!b) return -1;
-  self->cxx->setAccUA2(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_u_a2 could not be set", -1)
-}
-
-
-static auto acc_d_a1 = bob::extension::VariableDoc(
-  "acc_d_a1",
-  "array_like <float, 1D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_acc_d_a1(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccDA1());
-  BOB_CATCH_MEMBER("acc_d_a1 could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_acc_d_a1(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, acc_d_a1.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "acc_d_a1");
-  if (!b) return -1;
-  self->cxx->setAccDA1(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_d_a1 could not be set", -1)
-}
-
-
-static auto acc_d_a2 = bob::extension::VariableDoc(
-  "acc_d_a2",
-  "array_like <float, 1D>",
-  "Accumulator updated during the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_acc_d_a2(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAccDA2());
-  BOB_CATCH_MEMBER("acc_d_a2 could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_acc_d_a2(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, acc_d_a2.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "acc_d_a2");
-  if (!b) return -1;
-  self->cxx->setAccDA2(*b);
-  return 0;
-  BOB_CATCH_MEMBER("acc_d_a2 could not be set", -1)
-}
-
-
-static auto __X__ = bob::extension::VariableDoc(
-  "__X__",
-  "list",
-  "",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_X(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return vector_as_list(self->cxx->getX());
-  BOB_CATCH_MEMBER("__X__ could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_X(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  if (!PyList_Check(value)){
-    PyErr_Format(PyExc_TypeError, "Expected a list in `%s'", __X__.name());
-    return -1;
-  }
-    
-  std::vector<blitz::Array<double,2> > data;
-  if(list_as_vector(value ,data)==0){
-    self->cxx->setX(data);
-  }
-    
-  return 0;
-  BOB_CATCH_MEMBER("__X__ could not be written", 0)
-}
-
-
-
-static auto __Y__ = bob::extension::VariableDoc(
-  "__Y__",
-  "list",
-  "",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_Y(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return vector_as_list(self->cxx->getY());
-  BOB_CATCH_MEMBER("__Y__ could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_Y(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  if (!PyList_Check(value)){
-    PyErr_Format(PyExc_TypeError, "Expected a list in `%s'", __Y__.name());
-    return -1;
-  }
-    
-  std::vector<blitz::Array<double,1> > data;
-  if(list_as_vector(value ,data)==0){
-    self->cxx->setY(data);
-  }
-    
-  return 0;
-  BOB_CATCH_MEMBER("__Y__ could not be written", 0)
-}
-
-
-
-static auto __Z__ = bob::extension::VariableDoc(
-  "__Z__",
-  "list",
-  "",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_get_Z(PyBobLearnMiscJFATrainerObject* self, void*){
-  BOB_TRY
-  return vector_as_list(self->cxx->getZ());
-  BOB_CATCH_MEMBER("__Z__ could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_set_Z(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  if (!PyList_Check(value)){
-    PyErr_Format(PyExc_TypeError, "Expected a list in `%s'", __Z__.name());
-    return -1;
-  }
-    
-  std::vector<blitz::Array<double,1> > data;
-  if(list_as_vector(value ,data)==0){
-    self->cxx->setZ(data);
-  }
-    
-  return 0;
-  BOB_CATCH_MEMBER("__Z__ could not be written", 0)
-}
-
-
-
-/***** rng *****/
-static auto rng = bob::extension::VariableDoc(
-  "rng",
-  "str",
-  "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.",
-  ""
-);
-PyObject* PyBobLearnMiscJFATrainer_getRng(PyBobLearnMiscJFATrainerObject* self, void*) {
-  BOB_TRY
-  //Allocating the correspondent python object
-  
-  PyBoostMt19937Object* retval =
-    (PyBoostMt19937Object*)PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type, 0);
-
-  retval->rng = self->cxx->getRng().get();
-  return Py_BuildValue("O", retval);
-  BOB_CATCH_MEMBER("Rng method could not be read", 0)
-}
-int PyBobLearnMiscJFATrainer_setRng(PyBobLearnMiscJFATrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyBoostMt19937_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an PyBoostMt19937_Check", Py_TYPE(self)->tp_name, rng.name());
-    return -1;
-  }
-
-  PyBoostMt19937Object* boostObject = 0;
-  PyBoostMt19937_Converter(value, &boostObject);
-  self->cxx->setRng((boost::shared_ptr<boost::mt19937>)boostObject->rng);
-
-  return 0;
-  BOB_CATCH_MEMBER("Rng could not be set", 0)
-}
-
-static PyGetSetDef PyBobLearnMiscJFATrainer_getseters[] = { 
-  {
-   acc_v_a1.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_acc_v_a1,
-   (setter)PyBobLearnMiscJFATrainer_get_acc_v_a1,
-   acc_v_a1.doc(),
-   0
-  },
-  {
-   acc_v_a2.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_acc_v_a2,
-   (setter)PyBobLearnMiscJFATrainer_get_acc_v_a2,
-   acc_v_a2.doc(),
-   0
-  },
-  {
-   acc_u_a1.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_acc_u_a1,
-   (setter)PyBobLearnMiscJFATrainer_get_acc_u_a1,
-   acc_u_a1.doc(),
-   0
-  },
-  {
-   acc_u_a2.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_acc_u_a2,
-   (setter)PyBobLearnMiscJFATrainer_get_acc_u_a2,
-   acc_u_a2.doc(),
-   0
-  },
-  {
-   acc_d_a1.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_acc_d_a1,
-   (setter)PyBobLearnMiscJFATrainer_get_acc_d_a1,
-   acc_d_a1.doc(),
-   0
-  },
-  {
-   acc_d_a2.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_acc_d_a2,
-   (setter)PyBobLearnMiscJFATrainer_get_acc_d_a2,
-   acc_d_a2.doc(),
-   0
-  },
-  {
-   rng.name(),
-   (getter)PyBobLearnMiscJFATrainer_getRng,
-   (setter)PyBobLearnMiscJFATrainer_setRng,
-   rng.doc(),
-   0
-  },
-  {
-   __X__.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_X,
-   (setter)PyBobLearnMiscJFATrainer_set_X,
-   __X__.doc(),
-   0
-  },
-  {
-   __Y__.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_Y,
-   (setter)PyBobLearnMiscJFATrainer_set_Y,
-   __Y__.doc(),
-   0
-  },
-  {
-   __Z__.name(),
-   (getter)PyBobLearnMiscJFATrainer_get_Z,
-   (setter)PyBobLearnMiscJFATrainer_set_Z,
-   __Z__.doc(),
-   0
-  },
-  
-  
-
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "Initialization before the EM steps",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_initialize(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->initialize(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** e_step1 ***/
-static auto e_step1 = bob::extension::FunctionDoc(
-  "e_step1",
-  "Call the 1st e-step procedure (for the V subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_e_step1(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  //Parses input arguments in a single shot
-  char** kwlist = e_step1.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->eStep1(*jfa_base->cxx, training_data);
-
-
-  BOB_CATCH_MEMBER("cannot perform the e_step1 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** m_step1 ***/
-static auto m_step1 = bob::extension::FunctionDoc(
-  "m_step1",
-  "Call the 1st m-step procedure (for the V subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_m_step1(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = m_step1.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->mStep1(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the m_step1 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** finalize1 ***/
-static auto finalize1 = bob::extension::FunctionDoc(
-  "finalize1",
-  "Call the 1st finalize procedure (for the V subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_finalize1(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  //Parses input arguments in a single shot
-  char** kwlist = finalize1.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->finalize1(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the finalize1 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** e_step2 ***/
-static auto e_step2 = bob::extension::FunctionDoc(
-  "e_step2",
-  "Call the 2nd e-step procedure (for the U subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_e_step2(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = e_step2.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->eStep2(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the e_step2 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** m_step2 ***/
-static auto m_step2 = bob::extension::FunctionDoc(
-  "m_step2",
-  "Call the 2nd m-step procedure (for the U subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_m_step2(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot 
-  char** kwlist = m_step2.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->mStep2(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the m_step2 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** finalize2 ***/
-static auto finalize2 = bob::extension::FunctionDoc(
-  "finalize2",
-  "Call the 2nd finalize procedure (for the U subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_finalize2(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = finalize2.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->finalize2(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the finalize2 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** e_step3 ***/
-static auto e_step3 = bob::extension::FunctionDoc(
-  "e_step3",
-  "Call the 3rd e-step procedure (for the d subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_e_step3(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = e_step3.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->eStep3(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the e_step3 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** m_step3 ***/
-static auto m_step3 = bob::extension::FunctionDoc(
-  "m_step3",
-  "Call the 3rd m-step procedure (for the d subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_m_step3(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = m_step3.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->mStep3(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the m_step3 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** finalize3 ***/
-static auto finalize3 = bob::extension::FunctionDoc(
-  "finalize3",
-  "Call the 3rd finalize procedure (for the d subspace).",
-  "",
-  true
-)
-.add_prototype("jfa_base,stats")
-.add_parameter("jfa_base", ":py:class:`bob.learn.misc.JFABase`", "JFABase Object")
-.add_parameter("stats", ":py:class:`bob.learn.misc.GMMStats`", "GMMStats Object");
-static PyObject* PyBobLearnMiscJFATrainer_finalize3(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = finalize3.kwlist(0);
-
-  PyBobLearnMiscJFABaseObject* jfa_base = 0;
-  PyObject* stats = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscJFABase_Type, &jfa_base,
-                                                                 &PyList_Type, &stats)) Py_RETURN_NONE;
-
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  if(extract_GMMStats_2d(stats ,training_data)==0)
-    self->cxx->finalize3(*jfa_base->cxx, training_data);
-
-  BOB_CATCH_MEMBER("cannot perform the finalize3 method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** enrol ***/
-static auto enrol = bob::extension::FunctionDoc(
-  "enrol",
-  "",
-  "",
-  true
-)
-.add_prototype("jfa_machine,features,n_iter","")
-.add_parameter("jfa_machine", ":py:class:`bob.learn.misc.JFAMachine`", "JFAMachine Object")
-.add_parameter("features", "list(:py:class:`bob.learn.misc.GMMStats`)`", "")
-.add_parameter("n_iter", "int", "Number of iterations");
-static PyObject* PyBobLearnMiscJFATrainer_enrol(PyBobLearnMiscJFATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // Parses input arguments in a single shot
-  char** kwlist = enrol.kwlist(0);
-
-  PyBobLearnMiscJFAMachineObject* jfa_machine = 0;
-  PyObject* stats = 0;
-  int n_iter = 1;
-
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!i", kwlist, &PyBobLearnMiscJFAMachine_Type, &jfa_machine,
-                                                                  &PyList_Type, &stats, &n_iter)) Py_RETURN_NONE;
-
-  std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > training_data;
-  if(extract_GMMStats_1d(stats ,training_data)==0)
-    self->cxx->enrol(*jfa_machine->cxx, training_data, n_iter);
-
-  BOB_CATCH_MEMBER("cannot perform the enrol method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-static PyMethodDef PyBobLearnMiscJFATrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    e_step1.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_e_step1,
-    METH_VARARGS|METH_KEYWORDS,
-    e_step1.doc()
-  },
-  {
-    e_step2.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_e_step2,
-    METH_VARARGS|METH_KEYWORDS,
-    e_step2.doc()
-  },
-  {
-    e_step3.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_e_step3,
-    METH_VARARGS|METH_KEYWORDS,
-    e_step3.doc()
-  },
-  {
-    m_step1.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_m_step1,
-    METH_VARARGS|METH_KEYWORDS,
-    m_step1.doc()
-  },
-  {
-    m_step2.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_m_step2,
-    METH_VARARGS|METH_KEYWORDS,
-    m_step2.doc()
-  },
-  {
-    m_step3.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_m_step3,
-    METH_VARARGS|METH_KEYWORDS,
-    m_step3.doc()
-  },
-  {
-    finalize1.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_finalize1,
-    METH_VARARGS|METH_KEYWORDS,
-    finalize1.doc()
-  },
-  {
-    finalize2.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_finalize2,
-    METH_VARARGS|METH_KEYWORDS,
-    finalize2.doc()
-  },
-  {
-    finalize3.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_finalize3,
-    METH_VARARGS|METH_KEYWORDS,
-    finalize3.doc()
-  },
-  {
-    enrol.name(),
-    (PyCFunction)PyBobLearnMiscJFATrainer_enrol,
-    METH_VARARGS|METH_KEYWORDS,
-    enrol.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscJFATrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscJFATrainer(PyObject* module)
-{
-  // initialize the type JFATrainer
-  PyBobLearnMiscJFATrainer_Type.tp_name      = JFATrainer_doc.name();
-  PyBobLearnMiscJFATrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscJFATrainerObject);
-  PyBobLearnMiscJFATrainer_Type.tp_flags     = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;//Enable the class inheritance;
-  PyBobLearnMiscJFATrainer_Type.tp_doc       = JFATrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscJFATrainer_Type.tp_new          = PyType_GenericNew;
-  PyBobLearnMiscJFATrainer_Type.tp_init         = reinterpret_cast<initproc>(PyBobLearnMiscJFATrainer_init);
-  PyBobLearnMiscJFATrainer_Type.tp_dealloc      = reinterpret_cast<destructor>(PyBobLearnMiscJFATrainer_delete);
-  PyBobLearnMiscJFATrainer_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscJFATrainer_RichCompare);
-  PyBobLearnMiscJFATrainer_Type.tp_methods      = PyBobLearnMiscJFATrainer_methods;
-  PyBobLearnMiscJFATrainer_Type.tp_getset       = PyBobLearnMiscJFATrainer_getseters;
-  //PyBobLearnMiscJFATrainer_Type.tp_call         = reinterpret_cast<ternaryfunc>(PyBobLearnMiscJFATrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscJFATrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscJFATrainer_Type);
-  return PyModule_AddObject(module, "_JFATrainer", (PyObject*)&PyBobLearnMiscJFATrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/kmeans_machine.cpp b/bob/learn/misc/kmeans_machine.cpp
deleted file mode 100644
index 9febd70..0000000
--- a/bob/learn/misc/kmeans_machine.cpp
+++ /dev/null
@@ -1,768 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Fri 26 Dec 16:18:00 2014
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto KMeansMachine_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".KMeansMachine",
-  "This class implements a k-means classifier.\n"
-  "See Section 9.1 of Bishop, \"Pattern recognition and machine learning\", 2006"
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Creates a KMeansMachine",
-    "",
-    true
-  )
-  .add_prototype("n_means,n_inputs","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-  .add_prototype("","")
-
-  .add_parameter("n_means", "int", "Number of means")
-  .add_parameter("n_inputs", "int", "Dimension of the feature vector")
-  .add_parameter("other", ":py:class:`bob.learn.misc.KMeansMachine`", "A KMeansMachine object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscKMeansMachine_init_number(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = KMeansMachine_doc.kwlist(0);
-  int n_inputs    = 1;
-  int n_means = 1;
-  //Parsing the input argments
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_means, &n_inputs))
-    return -1;
-
-  if(n_means < 0){
-    PyErr_Format(PyExc_TypeError, "means argument must be greater than or equal to zero");
-    KMeansMachine_doc.print_usage();
-    return -1;
-  }
-
-  if(n_inputs < 0){
-    PyErr_Format(PyExc_TypeError, "input argument must be greater than or equal to zero");
-    KMeansMachine_doc.print_usage();
-    return -1;
-   }
-
-  self->cxx.reset(new bob::learn::misc::KMeansMachine(n_means, n_inputs));
-  return 0;
-}
-
-
-static int PyBobLearnMiscKMeansMachine_init_copy(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = KMeansMachine_doc.kwlist(1);
-  PyBobLearnMiscKMeansMachineObject* tt;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscKMeansMachine_Type, &tt)){
-    KMeansMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::KMeansMachine(*tt->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscKMeansMachine_init_hdf5(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = KMeansMachine_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    KMeansMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::KMeansMachine(*(config->f)));
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscKMeansMachine_init(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-  
-  switch (nargs) {
-
-    case 0: //default initializer ()
-      self->cxx.reset(new bob::learn::misc::KMeansMachine());
-      return 0;
-
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-
-      // If the constructor input is Gaussian object
-     if (PyBobLearnMiscKMeansMachine_Check(arg))
-       return PyBobLearnMiscKMeansMachine_init_copy(self, args, kwargs);
-      // If the constructor input is a HDF5
-     else if (PyBobIoHDF5File_Check(arg))
-       return PyBobLearnMiscKMeansMachine_init_hdf5(self, args, kwargs);
-    }
-    case 2:
-      return PyBobLearnMiscKMeansMachine_init_number(self, args, kwargs);
-    default:
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 0, 1 or 2 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      KMeansMachine_doc.print_usage();
-      return -1;
-  }
-  BOB_CATCH_MEMBER("cannot create KMeansMachine", 0)
-  return 0;
-}
-
-
-
-static void PyBobLearnMiscKMeansMachine_delete(PyBobLearnMiscKMeansMachineObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscKMeansMachine_RichCompare(PyBobLearnMiscKMeansMachineObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscKMeansMachine_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscKMeansMachineObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare KMeansMachine objects", 0)
-}
-
-int PyBobLearnMiscKMeansMachine_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscKMeansMachine_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int)",
-  "A tuple that represents the number of means and dimensionality of the feature vector``(n_means, dim)``.",
-  ""
-);
-PyObject* PyBobLearnMiscKMeansMachine_getShape(PyBobLearnMiscKMeansMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i)", self->cxx->getNMeans(), self->cxx->getNInputs());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-/***** MEAN *****/
-
-static auto means = bob::extension::VariableDoc(
-  "means",
-  "array_like <float, 2D>",
-  "The means",
-  ""
-);
-PyObject* PyBobLearnMiscKMeansMachine_getMeans(PyBobLearnMiscKMeansMachineObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getMeans());
-  BOB_CATCH_MEMBER("means could not be read", 0)
-}
-int PyBobLearnMiscKMeansMachine_setMeans(PyBobLearnMiscKMeansMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, means.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "means");
-  if (!b) return -1;
-  self->cxx->setMeans(*b);
-  return 0;
-  BOB_CATCH_MEMBER("means could not be set", -1)
-}
-
-
-static PyGetSetDef PyBobLearnMiscKMeansMachine_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscKMeansMachine_getShape,
-   0,
-   shape.doc(),
-   0
-  },
-  {
-   means.name(),
-   (getter)PyBobLearnMiscKMeansMachine_getMeans,
-   (setter)PyBobLearnMiscKMeansMachine_setMeans,
-   means.doc(),
-   0
-  },
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the KMeansMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscKMeansMachine_Save(PyBobLearnMiscKMeansMachineObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the KMeansMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscKMeansMachine_Load(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this KMeansMachine with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.KMeansMachine`", "A KMeansMachine object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscKMeansMachine_IsSimilarTo(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscKMeansMachineObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscKMeansMachine_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** resize ***/
-static auto resize = bob::extension::FunctionDoc(
-  "resize",
-  "Allocates space for the statistics and resets to zero.",
-  0,
-  true
-)
-.add_prototype("n_means,n_inputs")
-.add_parameter("n_means", "int", "Number of means")
-.add_parameter("n_inputs", "int", "Dimensionality of the feature vector");
-static PyObject* PyBobLearnMiscKMeansMachine_resize(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = resize.kwlist(0);
-
-  int n_means = 0;
-  int n_inputs = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_means, &n_inputs)) Py_RETURN_NONE;
-
-  if (n_means <= 0){
-    PyErr_Format(PyExc_TypeError, "n_means must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-  if (n_inputs <= 0){
-    PyErr_Format(PyExc_TypeError, "n_inputs must be greater than zero");
-    resize.print_usage();
-    return 0;
-  }
-
-  self->cxx->resize(n_means, n_inputs);
-
-  BOB_CATCH_MEMBER("cannot perform the resize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-/*** get_mean ***/
-static auto get_mean = bob::extension::FunctionDoc(
-  "get_mean",
-  "Get the i'th mean.",
-  ".. note:: An exception is thrown if i is out of range.", 
-  true
-)
-.add_prototype("i")
-.add_parameter("i", "int", "Index of the mean")
-.add_return("mean","array_like <float, 1D>","Mean array");
-static PyObject* PyBobLearnMiscKMeansMachine_get_mean(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_mean.kwlist(0);
-
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
- 
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getMean(i));
-
-  BOB_CATCH_MEMBER("cannot get the mean", 0)
-}
-
-
-/*** set_mean ***/
-static auto set_mean = bob::extension::FunctionDoc(
-  "set_mean",
-  "Set the i'th mean.",
-  ".. note:: An exception is thrown if i is out of range.", 
-  true
-)
-.add_prototype("i,mean")
-.add_parameter("i", "int", "Index of the mean")
-.add_parameter("mean", "array_like <float, 1D>", "Mean array");
-static PyObject* PyBobLearnMiscKMeansMachine_set_mean(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = set_mean.kwlist(0);
-
-  int i = 0;
-  PyBlitzArrayObject* mean = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &mean)) Py_RETURN_NONE;
-  
-  //protects acquired resources through this scope
-  auto mean_ = make_safe(mean);
-
-  //setting the mean
-  self->cxx->setMean(i, *PyBlitzArrayCxx_AsBlitz<double,1>(mean));
-
-  BOB_CATCH_MEMBER("cannot set the mean", 0)
-  
-  Py_RETURN_NONE;
-}
-
-
-
-/*** get_distance_from_mean ***/
-static auto get_distance_from_mean = bob::extension::FunctionDoc(
-  "get_distance_from_mean",
-  "Return the power of two of the square Euclidean distance of the sample, x, to the i'th mean.",
-  ".. note:: An exception is thrown if i is out of range.", 
-  true
-)
-.add_prototype("input,i","output")
-.add_parameter("input", "array_like <float, 1D>", "The data sample (feature vector)")
-.add_parameter("i", "int", "The index of the mean")
-.add_return("output","float","Square Euclidean distance of the sample, x, to the i'th mean");
-static PyObject* PyBobLearnMiscKMeansMachine_get_distance_from_mean(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_distance_from_mean.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i", kwlist, &PyBlitzArray_Converter, &input, &i)){ 
-    Py_RETURN_NONE;
-  }
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-
-  double output = self->cxx->getDistanceFromMean(*PyBlitzArrayCxx_AsBlitz<double,1>(input),i);
-  return Py_BuildValue("d", output);
-
-  BOB_CATCH_MEMBER("cannot compute the likelihood", 0)
-}
-
-
-/*** get_closest_mean ***/
-static auto get_closest_mean = bob::extension::FunctionDoc(
-  "get_closest_mean",
-  "Calculate the index of the mean that is closest (in terms of square Euclidean distance) to the data sample, x.",
-  "",
-  true
-)
-.add_prototype("input","output")
-.add_parameter("input", "array_like <float, 1D>", "The data sample (feature vector)")
-.add_return("output", "(int, int)", "Tuple containing the closest mean and the minimum distance from the input");
-static PyObject* PyBobLearnMiscKMeansMachine_get_closest_mean(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_closest_mean.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-
-  size_t closest_mean = 0;
-  double min_distance = -1;   
-  self->cxx->getClosestMean(*PyBlitzArrayCxx_AsBlitz<double,1>(input), closest_mean, min_distance);
-    
-  return Py_BuildValue("(i,d)", closest_mean, min_distance);
-
-  BOB_CATCH_MEMBER("cannot compute the closest mean", 0)
-}
-
-
-/*** get_min_distance ***/
-static auto get_min_distance = bob::extension::FunctionDoc(
-  "get_min_distance",
-  "Output the minimum (Square Euclidean) distance between the input and the closest mean ",
-  "",
-  true
-)
-.add_prototype("input","output")
-.add_parameter("input", "array_like <float, 1D>", "The data sample (feature vector)")
-.add_return("output", "double", "The minimum distance");
-static PyObject* PyBobLearnMiscKMeansMachine_get_min_distance(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_min_distance.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-
-  double min_distance = 0;   
-  min_distance = self->cxx->getMinDistance(*PyBlitzArrayCxx_AsBlitz<double,1>(input));
-
-  return Py_BuildValue("d", min_distance);
-
-  BOB_CATCH_MEMBER("cannot compute the min distance", 0)
-}
-
-/**** get_variances_and_weights_for_each_cluster ***/
-static auto get_variances_and_weights_for_each_cluster = bob::extension::FunctionDoc(
-  "get_variances_and_weights_for_each_cluster",
-  "For each mean, find the subset of the samples that is closest to that mean, and calculate"
-  " 1) the variance of that subset (the cluster variance)" 
-  " 2) the proportion of the samples represented by that subset (the cluster weight)",
-  "",
-  true
-)
-.add_prototype("input","output")
-.add_parameter("input", "array_like <float, 2D>", "The data sample (feature vector)")
-.add_return("output", "(array_like <float, 2D>, array_like <float, 1D>)", "A tuple with the variances and the weights respectively");
-static PyObject* PyBobLearnMiscKMeansMachine_get_variances_and_weights_for_each_cluster(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist =  get_variances_and_weights_for_each_cluster.kwlist(0);
-
-  PyBlitzArrayObject* input = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto input_ = make_safe(input);
-
-  blitz::Array<double,2> variances(self->cxx->getNMeans(),self->cxx->getNInputs());
-  blitz::Array<double,1> weights(self->cxx->getNMeans());
-  
-  self->cxx->getVariancesAndWeightsForEachCluster(*PyBlitzArrayCxx_AsBlitz<double,2>(input),variances,weights);
-
-  return Py_BuildValue("(O,O)",PyBlitzArrayCxx_AsConstNumpy(variances), PyBlitzArrayCxx_AsConstNumpy(weights));
-
-  BOB_CATCH_MEMBER("cannot compute the variances and weights for each cluster", 0)
-}
-
-
-/**** __get_variances_and_weights_for_each_cluster_init__ ***/
-static auto __get_variances_and_weights_for_each_cluster_init__ = bob::extension::FunctionDoc(
-  "__get_variances_and_weights_for_each_cluster_init__",
-  "Methods consecutively called by getVariancesAndWeightsForEachCluster()"
-  "This should help for the parallelization on several nodes by splitting the data and calling"
-  "getVariancesAndWeightsForEachClusterAcc() for each split. In this case, there is a need to sum"
-  "with the m_cache_means, variances, and weights variables before performing the merge on one"
-  "node using getVariancesAndWeightsForEachClusterFin().",
-  "",
-  true
-)
-.add_prototype("variances,weights","")
-.add_parameter("variances", "array_like <float, 2D>", "Variance array")
-.add_parameter("weights", "array_like <float, 1D>", "Weight array");
-static PyObject* PyBobLearnMiscKMeansMachine_get_variances_and_weights_for_each_cluster_init(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist =  __get_variances_and_weights_for_each_cluster_init__.kwlist(0);
-
-  PyBlitzArrayObject* variances = 0;
-  PyBlitzArrayObject* weights   = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &variances,  &PyBlitzArray_Converter, &weights)) Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto weights_   = make_safe(weights);
-  auto variances_ = make_safe(variances);
-
-  self->cxx->getVariancesAndWeightsForEachClusterInit(*PyBlitzArrayCxx_AsBlitz<double,2>(variances), *PyBlitzArrayCxx_AsBlitz<double,1>(weights));
-  Py_RETURN_NONE;
-
-  BOB_CATCH_MEMBER("cannot compute the variances and weights for each cluster", 0)
-}
-
-
-/**** __get_variances_and_weights_for_each_cluster_acc__ ***/
-static auto __get_variances_and_weights_for_each_cluster_acc__ = bob::extension::FunctionDoc(
-  "__get_variances_and_weights_for_each_cluster_acc__",
-  "Methods consecutively called by getVariancesAndWeightsForEachCluster()"
-  "This should help for the parallelization on several nodes by splitting the data and calling"
-  "getVariancesAndWeightsForEachClusterAcc() for each split. In this case, there is a need to sum"
-  "with the m_cache_means, variances, and weights variables before performing the merge on one"
-  "node using getVariancesAndWeightsForEachClusterFin().",
-  "",
-  true
-)
-.add_prototype("data,variances,weights","")
-.add_parameter("data", "array_like <float, 2D>", "data array")
-.add_parameter("variances", "array_like <float, 2D>", "Variance array")
-.add_parameter("weights", "array_like <float, 1D>", "Weight array");
-static PyObject* PyBobLearnMiscKMeansMachine_get_variances_and_weights_for_each_cluster_acc(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist =  __get_variances_and_weights_for_each_cluster_acc__.kwlist(0);
-
-  PyBlitzArrayObject* data      = 0;
-  PyBlitzArrayObject* variances = 0;
-  PyBlitzArrayObject* weights   = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&", kwlist, &PyBlitzArray_Converter, &data, &PyBlitzArray_Converter, &variances, &PyBlitzArray_Converter, &weights)) Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto data_      = make_safe(data);
-  auto weights_   = make_safe(weights);
-  auto variances_ = make_safe(variances);
-
-  self->cxx->getVariancesAndWeightsForEachClusterAcc(*PyBlitzArrayCxx_AsBlitz<double,2>(data), *PyBlitzArrayCxx_AsBlitz<double,2>(variances), *PyBlitzArrayCxx_AsBlitz<double,1>(weights));
-  Py_RETURN_NONE;
-
-  BOB_CATCH_MEMBER("cannot compute the variances and weights for each cluster", 0)
-}
-
-
-/**** __get_variances_and_weights_for_each_cluster_fin__ ***/
-static auto __get_variances_and_weights_for_each_cluster_fin__ = bob::extension::FunctionDoc(
-  "__get_variances_and_weights_for_each_cluster_fin__",
-  "Methods consecutively called by getVariancesAndWeightsForEachCluster()"
-  "This should help for the parallelization on several nodes by splitting the data and calling"
-  "getVariancesAndWeightsForEachClusterAcc() for each split. In this case, there is a need to sum"
-  "with the m_cache_means, variances, and weights variables before performing the merge on one"
-  "node using getVariancesAndWeightsForEachClusterFin().",
-  "",
-  true
-)
-.add_prototype("variances,weights","")
-.add_parameter("variances", "array_like <float, 2D>", "Variance array")
-.add_parameter("weights", "array_like <float, 1D>", "Weight array");
-static PyObject* PyBobLearnMiscKMeansMachine_get_variances_and_weights_for_each_cluster_fin(PyBobLearnMiscKMeansMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist =  __get_variances_and_weights_for_each_cluster_fin__.kwlist(0);
-
-  PyBlitzArrayObject* variances = 0;
-  PyBlitzArrayObject* weights   = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &variances,  &PyBlitzArray_Converter, &weights)) Py_RETURN_NONE;
-
-  //protects acquired resources through this scope
-  auto weights_   = make_safe(weights);
-  auto variances_ = make_safe(variances);
-
-  self->cxx->getVariancesAndWeightsForEachClusterFin(*PyBlitzArrayCxx_AsBlitz<double,2>(variances), *PyBlitzArrayCxx_AsBlitz<double,1>(weights));
-  Py_RETURN_NONE;
-
-  BOB_CATCH_MEMBER("cannot compute the variances and weights for each cluster", 0)
-}
-
-
-static PyMethodDef PyBobLearnMiscKMeansMachine_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    resize.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_resize,
-    METH_VARARGS|METH_KEYWORDS,
-    resize.doc()
-  },  
-  {
-    get_mean.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_get_mean,
-    METH_VARARGS|METH_KEYWORDS,
-    get_mean.doc()
-  },  
-  {
-    set_mean.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_set_mean,
-    METH_VARARGS|METH_KEYWORDS,
-    set_mean.doc()
-  },  
-  {
-    get_distance_from_mean.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_get_distance_from_mean,
-    METH_VARARGS|METH_KEYWORDS,
-    get_distance_from_mean.doc()
-  },  
-  {
-    get_closest_mean.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_get_closest_mean,
-    METH_VARARGS|METH_KEYWORDS,
-    get_closest_mean.doc()
-  },  
-  {
-    get_min_distance.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_get_min_distance,
-    METH_VARARGS|METH_KEYWORDS,
-    get_min_distance.doc()
-  },  
-  {
-    get_variances_and_weights_for_each_cluster.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_get_variances_and_weights_for_each_cluster,
-    METH_VARARGS|METH_KEYWORDS,
-    get_variances_and_weights_for_each_cluster.doc()
-  },  
-  {
-    __get_variances_and_weights_for_each_cluster_init__.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_get_variances_and_weights_for_each_cluster_init,
-    METH_VARARGS|METH_KEYWORDS,
-    __get_variances_and_weights_for_each_cluster_init__.doc()
-  },  
-  {
-    __get_variances_and_weights_for_each_cluster_acc__.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_get_variances_and_weights_for_each_cluster_acc,
-    METH_VARARGS|METH_KEYWORDS,
-    __get_variances_and_weights_for_each_cluster_acc__.doc()
-  },  
-  {
-    __get_variances_and_weights_for_each_cluster_fin__.name(),
-    (PyCFunction)PyBobLearnMiscKMeansMachine_get_variances_and_weights_for_each_cluster_fin,
-    METH_VARARGS|METH_KEYWORDS,
-    __get_variances_and_weights_for_each_cluster_fin__.doc()
-  },  
-
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscKMeansMachine_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscKMeansMachine(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscKMeansMachine_Type.tp_name = KMeansMachine_doc.name();
-  PyBobLearnMiscKMeansMachine_Type.tp_basicsize = sizeof(PyBobLearnMiscKMeansMachineObject);
-  PyBobLearnMiscKMeansMachine_Type.tp_flags = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscKMeansMachine_Type.tp_doc = KMeansMachine_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscKMeansMachine_Type.tp_new = PyType_GenericNew;
-  PyBobLearnMiscKMeansMachine_Type.tp_init = reinterpret_cast<initproc>(PyBobLearnMiscKMeansMachine_init);
-  PyBobLearnMiscKMeansMachine_Type.tp_dealloc = reinterpret_cast<destructor>(PyBobLearnMiscKMeansMachine_delete);
-  PyBobLearnMiscKMeansMachine_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscKMeansMachine_RichCompare);
-  PyBobLearnMiscKMeansMachine_Type.tp_methods = PyBobLearnMiscKMeansMachine_methods;
-  PyBobLearnMiscKMeansMachine_Type.tp_getset = PyBobLearnMiscKMeansMachine_getseters;
-  //PyBobLearnMiscGMMMachine_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscGMMMachine_loglikelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscKMeansMachine_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscKMeansMachine_Type);
-  return PyModule_AddObject(module, "KMeansMachine", (PyObject*)&PyBobLearnMiscKMeansMachine_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/kmeans_trainer.cpp b/bob/learn/misc/kmeans_trainer.cpp
deleted file mode 100644
index c31e3df..0000000
--- a/bob/learn/misc/kmeans_trainer.cpp
+++ /dev/null
@@ -1,553 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Tue 13 Jan 16:50:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-// InitializationMethod type conversion
-static const std::map<std::string, bob::learn::misc::KMeansTrainer::InitializationMethod> IM = {{"RANDOM",  bob::learn::misc::KMeansTrainer::InitializationMethod::RANDOM}, {"RANDOM_NO_DUPLICATE", bob::learn::misc::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}, {"KMEANS_PLUS_PLUS", bob::learn::misc::KMeansTrainer::InitializationMethod::KMEANS_PLUS_PLUS}};
-static inline bob::learn::misc::KMeansTrainer::InitializationMethod string2IM(const std::string& o){            /* converts string to InitializationMethod type */
-  auto it = IM.find(o);
-  if (it == IM.end()) throw std::runtime_error("The given InitializationMethod '" + o + "' is not known; choose one of ('RANDOM', 'RANDOM_NO_DUPLICATE', 'KMEANS_PLUS_PLUS')");
-  else return it->second;
-}
-static inline const std::string& IM2string(bob::learn::misc::KMeansTrainer::InitializationMethod o){            /* converts InitializationMethod type to string */
-  for (auto it = IM.begin(); it != IM.end(); ++it) if (it->second == o) return it->first;
-  throw std::runtime_error("The given InitializationMethod type is not known");
-}
-
-
-static auto KMeansTrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX "._KMeansTrainer",
-  "Trains a KMeans machine."
-  "This class implements the expectation-maximization algorithm for a k-means machine."
-  "See Section 9.1 of Bishop, \"Pattern recognition and machine learning\", 2006"
-  "It uses a random initialization of the means followed by the expectation-maximization algorithm"
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Creates a KMeansTrainer",
-    "",
-    true
-  )
-  .add_prototype("initialization_method","")
-  .add_prototype("other","")
-  .add_prototype("","")
-
-  .add_parameter("initialization_method", "str", "The initialization method of the means")
-  .add_parameter("other", ":py:class:`bob.learn.misc.KMeansTrainer`", "A KMeansTrainer object to be copied.")
-
-);
-
-
-static int PyBobLearnMiscKMeansTrainer_init_copy(PyBobLearnMiscKMeansTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = KMeansTrainer_doc.kwlist(1);
-  PyBobLearnMiscKMeansTrainerObject* tt;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscKMeansTrainer_Type, &tt)){
-    KMeansTrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::KMeansTrainer(*tt->cxx));
-  return 0;
-}
-
-static int PyBobLearnMiscKMeansTrainer_init_str(PyBobLearnMiscKMeansTrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = KMeansTrainer_doc.kwlist(0);
-  char* value;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s", kwlist, &value)){
-    KMeansTrainer_doc.print_usage();
-    return -1;
-  }
-  self->cxx.reset(new bob::learn::misc::KMeansTrainer(string2IM(std::string(value))));
-  return 0;
-}
-
-
-static int PyBobLearnMiscKMeansTrainer_init(PyBobLearnMiscKMeansTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  switch (nargs) {
-
-    case 0:{ //default initializer ()
-      self->cxx.reset(new bob::learn::misc::KMeansTrainer());
-      return 0;
-    }
-    case 1:{
-      //Reading the input argument
-      PyObject* arg = 0;
-      if (PyTuple_Size(args))
-        arg = PyTuple_GET_ITEM(args, 0);
-      else {
-        PyObject* tmp = PyDict_Values(kwargs);
-        auto tmp_ = make_safe(tmp);
-        arg = PyList_GET_ITEM(tmp, 0);
-      }
-
-      // If the constructor input is KMeansTrainer object
-      if (PyBobLearnMiscKMeansTrainer_Check(arg))
-        return PyBobLearnMiscKMeansTrainer_init_copy(self, args, kwargs);
-      else if(PyString_Check(arg))
-        return PyBobLearnMiscKMeansTrainer_init_str(self, args, kwargs);
-        //return PyBobLearnMiscKMeansTrainer_init_str(self, arg);
-    }
-    default:{
-      PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 0 or 1 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-      KMeansTrainer_doc.print_usage();
-      return -1;
-    }
-  }
-  BOB_CATCH_MEMBER("cannot create KMeansTrainer", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscKMeansTrainer_delete(PyBobLearnMiscKMeansTrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscKMeansTrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscKMeansTrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscKMeansTrainer_RichCompare(PyBobLearnMiscKMeansTrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscKMeansTrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscKMeansTrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare KMeansTrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** initialization_method *****/
-static auto initialization_method = bob::extension::VariableDoc(
-  "initialization_method",
-  "str",
-  "Initialization method.",
-  ""
-);
-PyObject* PyBobLearnMiscKMeansTrainer_getInitializationMethod(PyBobLearnMiscKMeansTrainerObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("s", IM2string(self->cxx->getInitializationMethod()).c_str());
-  BOB_CATCH_MEMBER("initialization method could not be read", 0)
-}
-int PyBobLearnMiscKMeansTrainer_setInitializationMethod(PyBobLearnMiscKMeansTrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyString_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an str", Py_TYPE(self)->tp_name, initialization_method.name());
-    return -1;
-  }
-  self->cxx->setInitializationMethod(string2IM(PyString_AS_STRING(value)));
-
-  return 0;
-  BOB_CATCH_MEMBER("initialization method could not be set", 0)
-}
-
-
-/***** zeroeth_order_statistics *****/
-static auto zeroeth_order_statistics = bob::extension::VariableDoc(
-  "zeroeth_order_statistics",
-  "array_like <float, 1D>",
-  "Returns the internal statistics. Useful to parallelize the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscKMeansTrainer_getZeroethOrderStatistics(PyBobLearnMiscKMeansTrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getZeroethOrderStats());
-  BOB_CATCH_MEMBER("zeroeth_order_statistics could not be read", 0)
-}
-int PyBobLearnMiscKMeansTrainer_setZeroethOrderStatistics(PyBobLearnMiscKMeansTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, zeroeth_order_statistics.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "zeroeth_order_statistics");
-  if (!b) return -1;
-  self->cxx->setZeroethOrderStats(*b);
-  return 0;
-  BOB_CATCH_MEMBER("zeroeth_order_statistics could not be set", -1)
-}
-
-
-/***** first_order_statistics *****/
-static auto first_order_statistics = bob::extension::VariableDoc(
-  "first_order_statistics",
-  "array_like <float, 2D>",
-  "Returns the internal statistics. Useful to parallelize the E-step",
-  ""
-);
-PyObject* PyBobLearnMiscKMeansTrainer_getFirstOrderStatistics(PyBobLearnMiscKMeansTrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getFirstOrderStats());
-  BOB_CATCH_MEMBER("first_order_statistics could not be read", 0)
-}
-int PyBobLearnMiscKMeansTrainer_setFirstOrderStatistics(PyBobLearnMiscKMeansTrainerObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 1D array of floats", Py_TYPE(self)->tp_name, first_order_statistics.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "first_order_statistics");
-  if (!b) return -1;
-  self->cxx->setFirstOrderStats(*b);
-  return 0;
-  BOB_CATCH_MEMBER("first_order_statistics could not be set", -1)
-}
-
-
-/***** average_min_distance *****/
-static auto average_min_distance = bob::extension::VariableDoc(
-  "average_min_distance",
-  "str",
-  "Average min (square Euclidean) distance. Useful to parallelize the E-step.",
-  ""
-);
-PyObject* PyBobLearnMiscKMeansTrainer_getAverageMinDistance(PyBobLearnMiscKMeansTrainerObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("d", self->cxx->getAverageMinDistance());
-  BOB_CATCH_MEMBER("Average Min Distance method could not be read", 0)
-}
-int PyBobLearnMiscKMeansTrainer_setAverageMinDistance(PyBobLearnMiscKMeansTrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyNumber_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an double", Py_TYPE(self)->tp_name, average_min_distance.name());
-    return -1;
-  }
-  self->cxx->setAverageMinDistance(PyFloat_AS_DOUBLE(value));
-
-  return 0;
-  BOB_CATCH_MEMBER("Average Min Distance could not be set", 0)
-}
-
-
-
-/***** rng *****/
-static auto rng = bob::extension::VariableDoc(
-  "rng",
-  "str",
-  "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.",
-  ""
-);
-PyObject* PyBobLearnMiscKMeansTrainer_getRng(PyBobLearnMiscKMeansTrainerObject* self, void*) {
-  BOB_TRY
-  //Allocating the correspondent python object
-  
-  PyBoostMt19937Object* retval =
-    (PyBoostMt19937Object*)PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type, 0);
-
-  retval->rng = self->cxx->getRng().get();
-  return Py_BuildValue("O", retval);
-  BOB_CATCH_MEMBER("Rng method could not be read", 0)
-}
-int PyBobLearnMiscKMeansTrainer_setRng(PyBobLearnMiscKMeansTrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyBoostMt19937_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an PyBoostMt19937_Check", Py_TYPE(self)->tp_name, rng.name());
-    return -1;
-  }
-
-  PyBoostMt19937Object* boostObject = 0;
-  PyBoostMt19937_Converter(value, &boostObject);
-  self->cxx->setRng((boost::shared_ptr<boost::mt19937>)boostObject->rng);
-
-  return 0;
-  BOB_CATCH_MEMBER("Rng could not be set", 0)
-}
-
-
-
-static PyGetSetDef PyBobLearnMiscKMeansTrainer_getseters[] = { 
-  {
-   initialization_method.name(),
-   (getter)PyBobLearnMiscKMeansTrainer_getInitializationMethod,
-   (setter)PyBobLearnMiscKMeansTrainer_setInitializationMethod,
-   initialization_method.doc(),
-   0
-  },
-  {
-   zeroeth_order_statistics.name(),
-   (getter)PyBobLearnMiscKMeansTrainer_getZeroethOrderStatistics,
-   (setter)PyBobLearnMiscKMeansTrainer_setZeroethOrderStatistics,
-   zeroeth_order_statistics.doc(),
-   0
-  },
-  {
-   first_order_statistics.name(),
-   (getter)PyBobLearnMiscKMeansTrainer_getFirstOrderStatistics,
-   (setter)PyBobLearnMiscKMeansTrainer_setFirstOrderStatistics,
-   first_order_statistics.doc(),
-   0
-  },
-  {
-   average_min_distance.name(),
-   (getter)PyBobLearnMiscKMeansTrainer_getAverageMinDistance,
-   (setter)PyBobLearnMiscKMeansTrainer_setAverageMinDistance,
-   average_min_distance.doc(),
-   0
-  },
-  {
-   rng.name(),
-   (getter)PyBobLearnMiscKMeansTrainer_getRng,
-   (setter)PyBobLearnMiscKMeansTrainer_setRng,
-   rng.doc(),
-   0
-  },
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "Initialise the means randomly",
-  "Data is split into as many chunks as there are means, then each mean is set to a random example within each chunk.",
-  true
-)
-.add_prototype("kmeans_machine,data")
-.add_parameter("kmeans_machine", ":py:class:`bob.learn.misc.KMeansMachine`", "KMeansMachine Object")
-.add_parameter("data", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscKMeansTrainer_initialize(PyBobLearnMiscKMeansTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnMiscKMeansMachineObject* kmeans_machine = 0;
-  PyBlitzArrayObject* data                          = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscKMeansMachine_Type, &kmeans_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-  auto data_ = make_safe(data);
-
-  self->cxx->initialize(*kmeans_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** eStep ***/
-static auto eStep = bob::extension::FunctionDoc(
-  "eStep",
-  "Compute the eStep, which is basically the distances ",
-  "Accumulate across the dataset:"
-  " -zeroeth and first order statistics"
-  " -average (Square Euclidean) distance from the closest mean",
-  true
-)
-.add_prototype("kmeans_machine,data")
-.add_parameter("kmeans_machine", ":py:class:`bob.learn.misc.KMeansMachine`", "KMeansMachine Object")
-.add_parameter("data", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscKMeansTrainer_eStep(PyBobLearnMiscKMeansTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = eStep.kwlist(0);
-
-  PyBobLearnMiscKMeansMachineObject* kmeans_machine;
-  PyBlitzArrayObject* data = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscKMeansMachine_Type, &kmeans_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-  auto data_ = make_safe(data);
-
-  self->cxx->eStep(*kmeans_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-
-  BOB_CATCH_MEMBER("cannot perform the eStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** mStep ***/
-static auto mStep = bob::extension::FunctionDoc(
-  "mStep",
-  "Updates the mean based on the statistics from the E-step",
-  0,
-  true
-)
-.add_prototype("kmeans_machine")
-.add_parameter("kmeans_machine", ":py:class:`bob.learn.misc.KMeansMachine`", "KMeansMachine Object");
-static PyObject* PyBobLearnMiscKMeansTrainer_mStep(PyBobLearnMiscKMeansTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = mStep.kwlist(0);
-
-  PyBobLearnMiscKMeansMachineObject* kmeans_machine;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscKMeansMachine_Type, &kmeans_machine)) Py_RETURN_NONE;
-
-  self->cxx->mStep(*kmeans_machine->cxx);
-
-  BOB_CATCH_MEMBER("cannot perform the mStep method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** computeLikelihood ***/
-static auto compute_likelihood = bob::extension::FunctionDoc(
-  "compute_likelihood",
-  "This functions returns the average min (Square Euclidean) distance (average distance to the closest mean)",
-  0,
-  true
-)
-.add_prototype("kmeans_machine")
-.add_parameter("kmeans_machine", ":py:class:`bob.learn.misc.KMeansMachine`", "KMeansMachine Object");
-static PyObject* PyBobLearnMiscKMeansTrainer_compute_likelihood(PyBobLearnMiscKMeansTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = compute_likelihood.kwlist(0);
-
-  PyBobLearnMiscKMeansMachineObject* kmeans_machine;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscKMeansMachine_Type, &kmeans_machine)) Py_RETURN_NONE;
-
-  double value = self->cxx->computeLikelihood(*kmeans_machine->cxx);
-  return Py_BuildValue("d", value);
-
-  BOB_CATCH_MEMBER("cannot perform the computeLikelihood method", 0)
-}
-
-
-/*** reset_accumulators ***/
-static auto reset_accumulators = bob::extension::FunctionDoc(
-  "reset_accumulators",
-  "Reset the statistics accumulators to the correct size and a value of zero.",
-  0,
-  true
-)
-.add_prototype("kmeans_machine")
-.add_parameter("kmeans_machine", ":py:class:`bob.learn.misc.KMeansMachine`", "KMeansMachine Object");
-static PyObject* PyBobLearnMiscKMeansTrainer_reset_accumulators(PyBobLearnMiscKMeansTrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = reset_accumulators.kwlist(0);
-
-  PyBobLearnMiscKMeansMachineObject* kmeans_machine;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscKMeansMachine_Type, &kmeans_machine)) Py_RETURN_NONE;
-
-  bool value = self->cxx->resetAccumulators(*kmeans_machine->cxx);
-  return Py_BuildValue("b", value);
-
-  BOB_CATCH_MEMBER("cannot perform the reset_accumulators method", 0)
-}
-
-
-static PyMethodDef PyBobLearnMiscKMeansTrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscKMeansTrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    eStep.name(),
-    (PyCFunction)PyBobLearnMiscKMeansTrainer_eStep,
-    METH_VARARGS|METH_KEYWORDS,
-    eStep.doc()
-  },
-  {
-    mStep.name(),
-    (PyCFunction)PyBobLearnMiscKMeansTrainer_mStep,
-    METH_VARARGS|METH_KEYWORDS,
-    mStep.doc()
-  },
-  {
-    compute_likelihood.name(),
-    (PyCFunction)PyBobLearnMiscKMeansTrainer_compute_likelihood,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_likelihood.doc()
-  },
-  {
-    reset_accumulators.name(),
-    (PyCFunction)PyBobLearnMiscKMeansTrainer_reset_accumulators,
-    METH_VARARGS|METH_KEYWORDS,
-    reset_accumulators.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscKMeansTrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscKMeansTrainer(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscKMeansTrainer_Type.tp_name = KMeansTrainer_doc.name();
-  PyBobLearnMiscKMeansTrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscKMeansTrainerObject);
-  PyBobLearnMiscKMeansTrainer_Type.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;//Enable the class inheritance
-  PyBobLearnMiscKMeansTrainer_Type.tp_doc = KMeansTrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscKMeansTrainer_Type.tp_new = PyType_GenericNew;
-  PyBobLearnMiscKMeansTrainer_Type.tp_init = reinterpret_cast<initproc>(PyBobLearnMiscKMeansTrainer_init);
-  PyBobLearnMiscKMeansTrainer_Type.tp_dealloc = reinterpret_cast<destructor>(PyBobLearnMiscKMeansTrainer_delete);
-  PyBobLearnMiscKMeansTrainer_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscKMeansTrainer_RichCompare);
-  PyBobLearnMiscKMeansTrainer_Type.tp_methods = PyBobLearnMiscKMeansTrainer_methods;
-  PyBobLearnMiscKMeansTrainer_Type.tp_getset = PyBobLearnMiscKMeansTrainer_getseters;
-  PyBobLearnMiscKMeansTrainer_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscKMeansTrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscKMeansTrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscKMeansTrainer_Type);
-  return PyModule_AddObject(module, "_KMeansTrainer", (PyObject*)&PyBobLearnMiscKMeansTrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/linear_scoring.cpp b/bob/learn/misc/linear_scoring.cpp
deleted file mode 100644
index b5bf6e0..0000000
--- a/bob/learn/misc/linear_scoring.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Wed 05 Feb 16:10:48 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/*Convert a PyObject to a a list of GMMStats*/
-//template<class R, class P1, class P2>
-static int extract_gmmstats_list(PyObject *list,
-                             std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& training_data)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++){
-  
-    PyBobLearnMiscGMMStatsObject* stats;
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O!", &PyBobLearnMiscGMMStats_Type, &stats)){
-      PyErr_Format(PyExc_RuntimeError, "Expected GMMStats objects");
-      return -1;
-    }
-    training_data.push_back(stats->cxx);
-  }
-  return 0;
-}
-
-static int extract_gmmmachine_list(PyObject *list,
-                             std::vector<boost::shared_ptr<const bob::learn::misc::GMMMachine> >& training_data)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++){
-  
-    PyBobLearnMiscGMMMachineObject* stats;
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O!", &PyBobLearnMiscGMMMachine_Type, &stats)){
-      PyErr_Format(PyExc_RuntimeError, "Expected GMMMachine objects");
-      return -1;
-    }
-    training_data.push_back(stats->cxx);
-  }
-  return 0;
-}
-
-
-
-/*Convert a PyObject to a list of blitz Array*/
-template <int N>
-int extract_array_list(PyObject* list, std::vector<blitz::Array<double,N> >& vec)
-{
-
-  if(list==0)
-    return 0;
-
-  for (int i=0; i<PyList_GET_SIZE(list); i++)
-  {
-    PyBlitzArrayObject* blitz_object; 
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O&", &PyBlitzArray_Converter, &blitz_object)){
-      PyErr_Format(PyExc_RuntimeError, "Expected numpy array object");
-      return -1;
-    }
-    auto blitz_object_ = make_safe(blitz_object);
-    vec.push_back(*PyBlitzArrayCxx_AsBlitz<double,N>(blitz_object));
-  }
-  return 0;
-}
-
-/* converts PyObject to bool and returns false if object is NULL */
-static inline bool f(PyObject* o){return o != 0 && PyObject_IsTrue(o) > 0;}
-
-
-/*** linear_scoring ***/
-static auto linear_scoring1 = bob::extension::FunctionDoc(
-  "linear_scoring",
-  "",
-  0,
-  true
-)
-.add_prototype("models, ubm, test_stats, test_channelOffset, frame_length_normalisation", "output")
-.add_parameter("models", "list(:py:class:`bob.learn.misc.GMMMachine`)", "")
-.add_parameter("ubm", ":py:class:`bob.learn.misc.GMMMachine`", "")
-.add_parameter("test_stats", "list(:py:class:`bob.learn.misc.GMMStats`)", "")
-.add_parameter("test_channelOffset", "list(array_like<float,1>)", "")
-.add_parameter("frame_length_normalisation", "bool", "")
-.add_return("output","array_like<float,1>","Score");
-
-
-static auto linear_scoring2 = bob::extension::FunctionDoc(
-  "linear_scoring",
-  "",
-  0,
-  true
-)
-.add_prototype("models, ubm_mean, ubm_variance, test_stats, test_channelOffset, frame_length_normalisation", "output")
-.add_parameter("models", "list(array_like<float,1>)", "")
-.add_parameter("ubm_mean", "list(array_like<float,1>)", "")
-.add_parameter("ubm_variance", "list(array_like<float,1>)", "")
-.add_parameter("test_stats", "list(:py:class:`bob.learn.misc.GMMStats`)", "")
-.add_parameter("test_channelOffset", "list(array_like<float,1>)", "")
-.add_parameter("frame_length_normalisation", "bool", "")
-.add_return("output","array_like<float,1>","Score");
-
-
-
-static auto linear_scoring3 = bob::extension::FunctionDoc(
-  "linear_scoring",
-  "",
-  0,
-  true
-)
-.add_prototype("model, ubm_mean, ubm_variance, test_stats, test_channelOffset, frame_length_normalisation", "output")
-.add_parameter("model", "array_like<float,1>", "")
-.add_parameter("ubm_mean", "array_like<float,1>", "")
-.add_parameter("ubm_variance", "array_like<float,1>", "")
-.add_parameter("test_stats", ":py:class:`bob.learn.misc.GMMStats`", "")
-.add_parameter("test_channelOffset", "array_like<float,1>", "")
-.add_parameter("frame_length_normalisation", "bool", "")
-.add_return("output","array_like<float,1>","Score");
-
-static PyObject* PyBobLearnMisc_linear_scoring(PyObject*, PyObject* args, PyObject* kwargs) {
-    
-  //Cheking the number of arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-    
-  //Reading the first input argument
-  PyObject* arg = 0;
-  if (PyTuple_Size(args))
-    arg = PyTuple_GET_ITEM(args, 0);
-  else {
-    PyObject* tmp = PyDict_Values(kwargs);
-    auto tmp_ = make_safe(tmp);
-    arg = PyList_GET_ITEM(tmp, 0);
-  }
-  
-  //Checking the signature of the method (list of GMMMachine as input)
-  if ((PyList_Check(arg)) && PyBobLearnMiscGMMMachine_Check(PyList_GetItem(arg, 0)) && (nargs >= 3) && (nargs<=5) ){
-  
-    char** kwlist = linear_scoring1.kwlist(0);
-
-    PyObject* gmm_list_o                 = 0;
-    PyBobLearnMiscGMMMachineObject* ubm  = 0;
-    PyObject* stats_list_o               = 0;
-    PyObject* channel_offset_list_o      = 0;
-    PyObject* frame_length_normalisation = Py_False;
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!O!|O!O!", kwlist, &PyList_Type, &gmm_list_o,
-                                                                       &PyBobLearnMiscGMMMachine_Type, &ubm,
-                                                                       &PyList_Type, &stats_list_o,
-                                                                       &PyList_Type, &channel_offset_list_o,
-                                                                       &PyBool_Type, &frame_length_normalisation)){
-      linear_scoring1.print_usage();
-      Py_RETURN_NONE;
-    }
-
-    std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> > stats_list;
-    if(extract_gmmstats_list(stats_list_o ,stats_list)!=0)
-      Py_RETURN_NONE;
-
-    std::vector<boost::shared_ptr<const bob::learn::misc::GMMMachine> > gmm_list;
-    if(extract_gmmmachine_list(gmm_list_o ,gmm_list)!=0)
-      Py_RETURN_NONE;
-
-    std::vector<blitz::Array<double,1> > channel_offset_list;
-    if(extract_array_list(channel_offset_list_o ,channel_offset_list)!=0)
-      Py_RETURN_NONE;
-
-    blitz::Array<double, 2> scores = blitz::Array<double, 2>(gmm_list.size(), stats_list.size());
-    if(channel_offset_list.size()==0)
-      bob::learn::misc::linearScoring(gmm_list, *ubm->cxx, stats_list, f(frame_length_normalisation),scores);
-    else
-      bob::learn::misc::linearScoring(gmm_list, *ubm->cxx, stats_list, channel_offset_list, f(frame_length_normalisation),scores);
-
-    return PyBlitzArrayCxx_AsConstNumpy(scores);
-  }
-
-  //Checking the signature of the method (list of arrays as input
-  else if ((PyList_Check(arg)) && PyArray_Check(PyList_GetItem(arg, 0)) && (nargs >= 4) && (nargs<=6) ){
-  
-    char** kwlist = linear_scoring2.kwlist(0);
-
-    PyObject* model_supervector_list_o        = 0;
-    PyBlitzArrayObject* ubm_means             = 0;
-    PyBlitzArrayObject* ubm_variances         = 0;
-    PyObject* stats_list_o                    = 0;
-    PyObject* channel_offset_list_o           = 0;
-    PyObject* frame_length_normalisation      = Py_False;
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&O&O!|O!O!", kwlist, &PyList_Type, &model_supervector_list_o,
-                                                                       &PyBlitzArray_Converter, &ubm_means,
-                                                                       &PyBlitzArray_Converter, &ubm_variances,
-                                                                       &PyList_Type, &stats_list_o,
-                                                                       &PyList_Type, &channel_offset_list_o,
-                                                                       &PyBool_Type, &frame_length_normalisation)){
-      linear_scoring2.print_usage(); 
-      Py_RETURN_NONE;
-    }
-    
-    //protects acquired resources through this scope
-    auto ubm_means_ = make_safe(ubm_means);
-    auto ubm_variances_ = make_safe(ubm_variances);    
-
-    std::vector<blitz::Array<double,1> > model_supervector_list;
-    if(extract_array_list(model_supervector_list_o ,model_supervector_list)!=0)
-      Py_RETURN_NONE;
-
-    std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> > stats_list;
-    if(extract_gmmstats_list(stats_list_o ,stats_list)!=0)
-      Py_RETURN_NONE;
-
-    std::vector<blitz::Array<double,1> > channel_offset_list;
-    if(extract_array_list(channel_offset_list_o ,channel_offset_list)!=0)
-      Py_RETURN_NONE;
-
-    blitz::Array<double, 2> scores = blitz::Array<double, 2>(model_supervector_list.size(), stats_list.size());
-    if(channel_offset_list.size()==0)
-      bob::learn::misc::linearScoring(model_supervector_list, *PyBlitzArrayCxx_AsBlitz<double,1>(ubm_means),*PyBlitzArrayCxx_AsBlitz<double,1>(ubm_variances), stats_list, f(frame_length_normalisation),scores);
-    else
-      bob::learn::misc::linearScoring(model_supervector_list, *PyBlitzArrayCxx_AsBlitz<double,1>(ubm_means),*PyBlitzArrayCxx_AsBlitz<double,1>(ubm_variances), stats_list, channel_offset_list, f(frame_length_normalisation),scores);
-
-    return PyBlitzArrayCxx_AsConstNumpy(scores);
-  
-  }
-  
-  //Checking the signature of the method (list of arrays as input
-  else if (PyArray_Check(arg) && (nargs >= 5) && (nargs<=6) ){
-  
-    char** kwlist = linear_scoring3.kwlist(0);
-
-    PyBlitzArrayObject* model                 = 0;
-    PyBlitzArrayObject* ubm_means             = 0;
-    PyBlitzArrayObject* ubm_variances         = 0;
-    PyBobLearnMiscGMMStatsObject* stats       = 0;
-    PyBlitzArrayObject* channel_offset        = 0;
-    PyObject* frame_length_normalisation      = Py_False;
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&O!O&|O!", kwlist, &PyBlitzArray_Converter, &model,
-                                                                       &PyBlitzArray_Converter, &ubm_means,
-                                                                       &PyBlitzArray_Converter, &ubm_variances,
-                                                                       &PyBobLearnMiscGMMStats_Type, &stats,
-                                                                       &PyBlitzArray_Converter, &channel_offset,
-                                                                       &PyBool_Type, &frame_length_normalisation)){
-      linear_scoring3.print_usage(); 
-      Py_RETURN_NONE;
-    }
-    
-    //protects acquired resources through this scope
-    auto model_ = make_safe(model);
-    auto ubm_means_ = make_safe(ubm_means);
-    auto ubm_variances_ = make_safe(ubm_variances);
-    auto channel_offset_ = make_safe(channel_offset);
-
-    double score = bob::learn::misc::linearScoring(*PyBlitzArrayCxx_AsBlitz<double,1>(model), *PyBlitzArrayCxx_AsBlitz<double,1>(ubm_means),*PyBlitzArrayCxx_AsBlitz<double,1>(ubm_variances), *stats->cxx, *PyBlitzArrayCxx_AsBlitz<double,1>(channel_offset), f(frame_length_normalisation));
-
-    return Py_BuildValue("d",score);
-  }
-
-  
-  else{
-    PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - linear_scoring requires 5 or 6 arguments, but you provided %d (see help)", nargs);
-    linear_scoring1.print_usage();
-    linear_scoring2.print_usage();
-    linear_scoring3.print_usage();
-    Py_RETURN_NONE;
-  }
-
-}
-
diff --git a/bob/learn/misc/main.cpp b/bob/learn/misc/main.cpp
deleted file mode 100644
index 10e1e8a..0000000
--- a/bob/learn/misc/main.cpp
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Fri Nov 21 12:39:21 CET 2014
- *
- * @brief Bindings to bob::learn::misc routines
- */
-
-#ifdef NO_IMPORT_ARRAY
-#undef NO_IMPORT_ARRAY
-#endif
-#include "main.h"
-#include "ztnorm.cpp"
-#include "linear_scoring.cpp"
-
-
-static PyMethodDef module_methods[] = {
-  {
-    zt_norm.name(),
-    (PyCFunction)PyBobLearnMisc_ztNorm,
-    METH_VARARGS|METH_KEYWORDS,
-    zt_norm.doc()
-  },
-  {
-    t_norm.name(),
-    (PyCFunction)PyBobLearnMisc_tNorm,
-    METH_VARARGS|METH_KEYWORDS,
-    t_norm.doc()
-  },
-  {
-    z_norm.name(),
-    (PyCFunction)PyBobLearnMisc_zNorm,
-    METH_VARARGS|METH_KEYWORDS,
-    z_norm.doc()
-  },
-  {
-    linear_scoring1.name(),
-    (PyCFunction)PyBobLearnMisc_linear_scoring,
-    METH_VARARGS|METH_KEYWORDS,
-    linear_scoring1.doc()
-  },
-
-  {0}//Sentinel
-};
-
-
-PyDoc_STRVAR(module_docstr, "Bob EM based Machine Learning Routines");
-
-int PyBobLearnMisc_APIVersion = BOB_LEARN_MISC_API_VERSION;
-
-
-#if PY_VERSION_HEX >= 0x03000000
-static PyModuleDef module_definition = {
-  PyModuleDef_HEAD_INIT,
-  BOB_EXT_MODULE_NAME,
-  module_docstr,
-  -1,
-  module_methods,
-  0, 0, 0, 0
-};
-#endif
-
-static PyObject* create_module (void) {
-
-# if PY_VERSION_HEX >= 0x03000000
-  PyObject* module = PyModule_Create(&module_definition);
-# else
-  PyObject* module = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr);
-# endif
-  if (!module) return 0;
-  auto module_ = make_safe(module); ///< protects against early returns
-
-  if (PyModule_AddStringConstant(module, "__version__", BOB_EXT_MODULE_VERSION) < 0) return 0;
-  if (!init_BobLearnMiscGaussian(module)) return 0;
-  if (!init_BobLearnMiscGMMStats(module)) return 0;
-  if (!init_BobLearnMiscGMMMachine(module)) return 0;
-  if (!init_BobLearnMiscKMeansMachine(module)) return 0;
-  if (!init_BobLearnMiscKMeansTrainer(module)) return 0;
-  //if (!init_BobLearnMiscGMMBaseTrainer(module)) return 0;
-  if (!init_BobLearnMiscMLGMMTrainer(module)) return 0;  
-  if (!init_BobLearnMiscMAPGMMTrainer(module)) return 0;
-
-  if (!init_BobLearnMiscJFABase(module)) return 0;
-  if (!init_BobLearnMiscJFAMachine(module)) return 0;
-  if (!init_BobLearnMiscJFATrainer(module)) return 0;
-
-  if (!init_BobLearnMiscISVBase(module)) return 0;
-  if (!init_BobLearnMiscISVMachine(module)) return 0;
-  if (!init_BobLearnMiscISVTrainer(module)) return 0;
-
-  if (!init_BobLearnMiscIVectorMachine(module)) return 0;
-  if (!init_BobLearnMiscIVectorTrainer(module)) return 0;
-    
-  if (!init_BobLearnMiscPLDABase(module)) return 0;
-  if (!init_BobLearnMiscPLDAMachine(module)) return 0;
-  if (!init_BobLearnMiscPLDATrainer(module)) return 0; 
-
-  if (!init_BobLearnMiscEMPCATrainer(module)) return 0;  
-
-
-  static void* PyBobLearnMisc_API[PyBobLearnMisc_API_pointers];
-
-  /* exhaustive list of C APIs */
-
-  /**************
-   * Versioning *
-   **************/
-
-  PyBobLearnMisc_API[PyBobLearnMisc_APIVersion_NUM] = (void *)&PyBobLearnMisc_APIVersion;
-
-
-#if PY_VERSION_HEX >= 0x02070000
-
-  /* defines the PyCapsule */
-
-  PyObject* c_api_object = PyCapsule_New((void *)PyBobLearnMisc_API,
-      BOB_EXT_MODULE_PREFIX "." BOB_EXT_MODULE_NAME "._C_API", 0);
-
-#else
-
-  PyObject* c_api_object = PyCObject_FromVoidPtr((void *)PyBobLearnMisc_API, 0);
-
-#endif
-
-  if (!c_api_object) return 0;
-
-  if (PyModule_AddObject(module, "_C_API", c_api_object) < 0) return 0;
-
-
-  /* imports bob.learn.misc's C-API dependencies */
-  if (import_bob_blitz() < 0) return 0;
-  if (import_bob_core_random() < 0) return 0;
-  if (import_bob_io_base() < 0) return 0;
-  //if (import_bob_learn_linear() < 0) return 0;
-
-  Py_INCREF(module);
-  return module;
-
-}
-
-PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) {
-# if PY_VERSION_HEX >= 0x03000000
-  return
-# endif
-    create_module();
-}
diff --git a/bob/learn/misc/main.h b/bob/learn/misc/main.h
deleted file mode 100644
index 5be119c..0000000
--- a/bob/learn/misc/main.h
+++ /dev/null
@@ -1,312 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Fri Nov 21 10:31:25 CET 2014
- *
- * @brief Header file for bindings to bob::learn::em
- */
-
-#ifndef BOB_LEARN_EM_MAIN_H
-#define BOB_LEARN_EM_MAIN_H
-
-#include <bob.blitz/cppapi.h>
-#include <bob.blitz/cleanup.h>
-#include <bob.core/random_api.h>
-#include <bob.io.base/api.h>
-
-#include <bob.learn.linear/api.h>
-
-#include <bob.extension/documentation.h>
-
-#define BOB_LEARN_EM_MODULE
-#include <bob.learn.misc/api.h>
-
-#include <bob.learn.misc/Gaussian.h>
-#include <bob.learn.misc/GMMStats.h>
-#include <bob.learn.misc/GMMMachine.h>
-#include <bob.learn.misc/KMeansMachine.h>
-
-#include <bob.learn.misc/KMeansTrainer.h>
-//#include <bob.learn.misc/GMMBaseTrainer.h>
-#include <bob.learn.misc/ML_GMMTrainer.h>
-#include <bob.learn.misc/MAP_GMMTrainer.h>
-
-#include <bob.learn.misc/JFABase.h>
-#include <bob.learn.misc/JFAMachine.h>
-#include <bob.learn.misc/JFATrainer.h>
-
-#include <bob.learn.misc/ISVBase.h>
-#include <bob.learn.misc/ISVMachine.h>
-#include <bob.learn.misc/ISVTrainer.h>
-
-
-#include <bob.learn.misc/IVectorMachine.h>
-#include <bob.learn.misc/IVectorTrainer.h>
-
-#include <bob.learn.misc/EMPCATrainer.h>
-
-#include <bob.learn.misc/PLDAMachine.h>
-#include <bob.learn.misc/PLDATrainer.h>
-
-#include <bob.learn.misc/ZTNorm.h>
-
-
-
-#if PY_VERSION_HEX >= 0x03000000
-#define PyInt_Check PyLong_Check
-#define PyInt_AS_LONG PyLong_AS_LONG
-#define PyString_Check PyUnicode_Check
-#define PyString_AS_STRING(x) PyBytes_AS_STRING(make_safe(PyUnicode_AsUTF8String(x)).get())
-#endif
-
-#define TRY try{
-
-#define CATCH(message,ret) }\
-  catch (std::exception& e) {\
-    PyErr_SetString(PyExc_RuntimeError, e.what());\
-    return ret;\
-  } \
-  catch (...) {\
-    PyErr_Format(PyExc_RuntimeError, "%s " message ": unknown exception caught", Py_TYPE(self)->tp_name);\
-    return ret;\
-  }
-
-#define CATCH_(message, ret) }\
-  catch (std::exception& e) {\
-    PyErr_SetString(PyExc_RuntimeError, e.what());\
-    return ret;\
-  } \
-  catch (...) {\
-    PyErr_Format(PyExc_RuntimeError, message ": unknown exception caught");\
-    return ret;\
-  }
-
-static inline char* c(const char* o){return const_cast<char*>(o);}  /* converts const char* to char* */
-
-/// inserts the given key, value pair into the given dictionaries
-static inline int insert_item_string(PyObject* dict, PyObject* entries, const char* key, Py_ssize_t value){
-  auto v = make_safe(Py_BuildValue("n", value));
-  if (PyDict_SetItemString(dict, key, v.get()) < 0) return -1;
-  return PyDict_SetItemString(entries, key, v.get());
-}
-
-// Gaussian
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::Gaussian> cxx;
-} PyBobLearnMiscGaussianObject;
-
-extern PyTypeObject PyBobLearnMiscGaussian_Type;
-bool init_BobLearnMiscGaussian(PyObject* module);
-int PyBobLearnMiscGaussian_Check(PyObject* o);
-
-
-// GMMStats
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::GMMStats> cxx;
-} PyBobLearnMiscGMMStatsObject;
-
-extern PyTypeObject PyBobLearnMiscGMMStats_Type;
-bool init_BobLearnMiscGMMStats(PyObject* module);
-int PyBobLearnMiscGMMStats_Check(PyObject* o);
-
-
-// GMMMachine
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::GMMMachine> cxx;
-} PyBobLearnMiscGMMMachineObject;
-
-extern PyTypeObject PyBobLearnMiscGMMMachine_Type;
-bool init_BobLearnMiscGMMMachine(PyObject* module);
-int PyBobLearnMiscGMMMachine_Check(PyObject* o);
-
-
-// KMeansMachine
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::KMeansMachine> cxx;
-} PyBobLearnMiscKMeansMachineObject;
-
-extern PyTypeObject PyBobLearnMiscKMeansMachine_Type;
-bool init_BobLearnMiscKMeansMachine(PyObject* module);
-int PyBobLearnMiscKMeansMachine_Check(PyObject* o);
-
-
-// KMeansTrainer
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::KMeansTrainer> cxx;
-} PyBobLearnMiscKMeansTrainerObject;
-
-extern PyTypeObject PyBobLearnMiscKMeansTrainer_Type;
-bool init_BobLearnMiscKMeansTrainer(PyObject* module);
-int PyBobLearnMiscKMeansTrainer_Check(PyObject* o);
-
-
-// GMMBaseTrainer
-/*
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::GMMBaseTrainer> cxx;
-} PyBobLearnMiscGMMBaseTrainerObject;
-
-extern PyTypeObject PyBobLearnMiscGMMBaseTrainer_Type;
-bool init_BobLearnMiscGMMBaseTrainer(PyObject* module);
-int PyBobLearnMiscGMMBaseTrainer_Check(PyObject* o);
-*/
-
-// ML_GMMTrainer
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::ML_GMMTrainer> cxx;
-} PyBobLearnMiscMLGMMTrainerObject;
-
-extern PyTypeObject PyBobLearnMiscMLGMMTrainer_Type;
-bool init_BobLearnMiscMLGMMTrainer(PyObject* module);
-int PyBobLearnMiscMLGMMTrainer_Check(PyObject* o);
-
-
-// MAP_GMMTrainer
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::MAP_GMMTrainer> cxx;
-} PyBobLearnMiscMAPGMMTrainerObject;
-
-extern PyTypeObject PyBobLearnMiscMAPGMMTrainer_Type;
-bool init_BobLearnMiscMAPGMMTrainer(PyObject* module);
-int PyBobLearnMiscMAPGMMTrainer_Check(PyObject* o);
-
-
-// JFABase
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::JFABase> cxx;
-} PyBobLearnMiscJFABaseObject;
-
-extern PyTypeObject PyBobLearnMiscJFABase_Type;
-bool init_BobLearnMiscJFABase(PyObject* module);
-int PyBobLearnMiscJFABase_Check(PyObject* o);
-
-
-// ISVBase
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::ISVBase> cxx;
-} PyBobLearnMiscISVBaseObject;
-
-extern PyTypeObject PyBobLearnMiscISVBase_Type;
-bool init_BobLearnMiscISVBase(PyObject* module);
-int PyBobLearnMiscISVBase_Check(PyObject* o);
-
-
-// JFAMachine
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::JFAMachine> cxx;
-} PyBobLearnMiscJFAMachineObject;
-
-extern PyTypeObject PyBobLearnMiscJFAMachine_Type;
-bool init_BobLearnMiscJFAMachine(PyObject* module);
-int PyBobLearnMiscJFAMachine_Check(PyObject* o);
-
-// JFATrainer
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::JFATrainer> cxx;
-} PyBobLearnMiscJFATrainerObject;
-
-
-extern PyTypeObject PyBobLearnMiscJFATrainer_Type;
-bool init_BobLearnMiscJFATrainer(PyObject* module);
-int PyBobLearnMiscJFATrainer_Check(PyObject* o);
-
-// ISVMachine
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::ISVMachine> cxx;
-} PyBobLearnMiscISVMachineObject;
-
-extern PyTypeObject PyBobLearnMiscISVMachine_Type;
-bool init_BobLearnMiscISVMachine(PyObject* module);
-int PyBobLearnMiscISVMachine_Check(PyObject* o);
-
-// ISVTrainer
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::ISVTrainer> cxx;
-} PyBobLearnMiscISVTrainerObject;
-
-extern PyTypeObject PyBobLearnMiscISVTrainer_Type;
-bool init_BobLearnMiscISVTrainer(PyObject* module);
-int PyBobLearnMiscISVTrainer_Check(PyObject* o);
-
-// IVectorMachine
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::IVectorMachine> cxx;
-} PyBobLearnMiscIVectorMachineObject;
-
-extern PyTypeObject PyBobLearnMiscIVectorMachine_Type;
-bool init_BobLearnMiscIVectorMachine(PyObject* module);
-int PyBobLearnMiscIVectorMachine_Check(PyObject* o);
-
-
-// IVectorTrainer
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::IVectorTrainer> cxx;
-} PyBobLearnMiscIVectorTrainerObject;
-
-extern PyTypeObject PyBobLearnMiscIVectorTrainer_Type;
-bool init_BobLearnMiscIVectorTrainer(PyObject* module);
-int PyBobLearnMiscIVectorTrainer_Check(PyObject* o);
-
-
-// PLDABase
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::PLDABase> cxx;
-} PyBobLearnMiscPLDABaseObject;
-
-extern PyTypeObject PyBobLearnMiscPLDABase_Type;
-bool init_BobLearnMiscPLDABase(PyObject* module);
-int PyBobLearnMiscPLDABase_Check(PyObject* o);
-
-
-// PLDAMachine
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::PLDAMachine> cxx;
-} PyBobLearnMiscPLDAMachineObject;
-
-extern PyTypeObject PyBobLearnMiscPLDAMachine_Type;
-bool init_BobLearnMiscPLDAMachine(PyObject* module);
-int PyBobLearnMiscPLDAMachine_Check(PyObject* o);
-
-
-// PLDATrainer
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::PLDATrainer> cxx;
-} PyBobLearnMiscPLDATrainerObject;
-
-extern PyTypeObject PyBobLearnMiscPLDATrainer_Type;
-bool init_BobLearnMiscPLDATrainer(PyObject* module);
-int PyBobLearnMiscPLDATrainer_Check(PyObject* o);
-
-
-
-// EMPCATrainer
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::misc::EMPCATrainer> cxx;
-} PyBobLearnMiscEMPCATrainerObject;
-
-extern PyTypeObject PyBobLearnMiscEMPCATrainer_Type;
-bool init_BobLearnMiscEMPCATrainer(PyObject* module);
-int PyBobLearnMiscEMPCATrainer_Check(PyObject* o);
-
-
-
-#endif // BOB_LEARN_EM_MAIN_H
diff --git a/bob/learn/misc/old/blitz_numpy.cc b/bob/learn/misc/old/blitz_numpy.cc
deleted file mode 100644
index 6354952..0000000
--- a/bob/learn/misc/old/blitz_numpy.cc
+++ /dev/null
@@ -1,235 +0,0 @@
-/**
- * @author Andre Anjos <andre.anjos@idiap.ch>
- * @date Mon Sep 26 11:47:30 2011 +0200
- *
- * @brief Automatic converters to-from python for blitz::Array's
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-
-template<typename T, int N>
-void npy_copy_cast(blitz::Array<T,N>& bz, PyArrayObject* arrobj) {
-  PYTHON_ERROR(TypeError, "unsupported number of dimensions: %d", N);
-}
-
-template<typename T>
-static void npy_copy_cast(blitz::Array<T,1>& bz, PyArrayObject* arrobj) {
-  for (int i=0; i<PyArray_DIM(arrobj,0); ++i)
-    bz(i) = *static_cast<T*>(PyArray_GETPTR1(arrobj, i));
-}
-
-template<typename T>
-static void npy_copy_cast(blitz::Array<T,2>& bz, PyArrayObject* arrobj) {
-  for (int i=0; i<PyArray_DIM(arrobj,0); ++i)
-    for (int j=0; j<PyArray_DIM(arrobj,1); ++j)
-      bz(i,j) = *static_cast<T*>(PyArray_GETPTR2(arrobj, i, j));
-}
-
-template<typename T>
-static void npy_copy_cast(blitz::Array<T,3>& bz, PyArrayObject* arrobj) {
-  for (int i=0; i<PyArray_DIM(arrobj,0); ++i)
-    for (int j=0; j<PyArray_DIM(arrobj,1); ++j)
-      for (int k=0; k<PyArray_DIM(arrobj,2); ++k)
-        bz(i,j,k) = *static_cast<T*>(PyArray_GETPTR3(arrobj, i, j, k));
-}
-
-template<typename T>
-static void npy_copy_cast(blitz::Array<T,4>& bz, PyArrayObject* arrobj) {
-  for (int i=0; i<PyArray_DIM(arrobj,0); ++i)
-    for (int j=0; j<PyArray_DIM(arrobj,1); ++j)
-      for (int k=0; k<PyArray_DIM(arrobj,2); ++k)
-        for (int l=0; l<PyArray_DIM(arrobj,3); ++l)
-          bz(i,j,k,l) = *static_cast<T*>(PyArray_GETPTR4(arrobj, i, j, k, l));
-}
-
-/**
- * Objects of this type create a binding between blitz::Array<T,N> and
- * NumPy arrays. You can specify a NumPy array as a parameter to a
- * bound method that would normally receive a blitz::Array<T,N> or a const
- * blitz::Array<T,N>& and the conversion will just magically happen, as
- * efficiently as possible.
- *
- * Please note that passing by value should be avoided as much as possible. In
- * this mode, the underlying method will still be able to alter the underlying
- * array storage area w/o being able to modify the array itself, causing a
- * gigantic mess. If you want to make something close to pass-by-value, just
- * pass by non-const reference instead.
- */
-template <typename T, int N> struct bz_from_npy {
-
-  typedef typename blitz::Array<T,N> array_type;
-  typedef typename blitz::TinyVector<int,N> shape_type;
-
-  /**
-   * Registers converter from numpy array into a blitz::Array<T,N>
-   */
-  bz_from_npy() {
-    boost::python::converter::registry::push_back(&convertible, &construct,
-        boost::python::type_id<array_type>());
-  }
-
-  /**
-   * This method will determine if the input python object is convertible into
-   * a Array<T,N>
-   */
-  static void* convertible(PyObject* obj_ptr) {
-    boost::python::handle<> hdl(boost::python::borrowed(boost::python::allow_null(obj_ptr)));
-    boost::python::object obj(hdl);
-
-    bob::io::base::array::typeinfo tinfo(bob::io::base::array::getElementType<T>(), N);
-
-    bob::python::convert_t result = bob::python::convertible_to(obj, tinfo, false, true);
-
-    // we cannot afford copying, only referencing.
-    if (result == bob::python::BYREFERENCE) return obj_ptr;
-
-    // but, if the user passed an array of the right type, but we still need to
-    // copy, warn the user as this is a tricky case to debug.
-    PyArrayObject* arr = reinterpret_cast<PyArrayObject*>(obj_ptr);
-    if (result == bob::python::WITHARRAYCOPY &&
-        bob::python::ctype_to_num<T>() == PyArray_DESCR(arr)->type_num) {
-      PYTHON_ERROR(RuntimeError, "The bindings you are trying to use to this C++ method require a numpy.ndarray -> blitz::Array<%s,%d> conversion, but the array you passed, despite the correct type, is not C-style contiguous and/or properly aligned, so I cannot automatically wrap it. You can check this by yourself by printing the flags on such a variable with the command 'print(<varname>.flags)'. The only way to circumvent this problem, from python, is to create a copy the variable by issuing '<varname>.copy()' before calling the bound method. Otherwise, if you wish the copy to be executed automatically, you have to re-bind the method to use our custom 'const_ndarray' type.", bob::io::base::array::stringize<T>(), N);
-    }
-
-    return 0;
-  }
-
-  /**
-   * This method will finally construct the C++ element out of the python
-   * object that was input. Please note that when boost::python reaches this
-   * method, the object has already been checked for convertibility.
-   */
-  static void construct(PyObject* obj_ptr,
-      boost::python::converter::rvalue_from_python_stage1_data* data) {
-
-    //black-magic required to setup the blitz::Array<> storage area
-    void* storage = ((boost::python::converter::rvalue_from_python_storage<array_type>*)data)->storage.bytes;
-
-    PyArrayObject *arr = reinterpret_cast<PyArrayObject*>(obj_ptr);
-
-    //mounts the numpy memory at the "newly allocated" blitz::Array
-    shape_type shape;
-    shape_type stride;
-    for (int k=0; k<N; ++k) {
-      shape[k] = PyArray_DIMS(arr)[k];
-      stride[k] = (PyArray_STRIDES(arr)[k]/sizeof(T));
-    }
-    new (storage) array_type((T*)PyArray_DATA(arr), shape, stride,
-        blitz::neverDeleteData); //place operator
-    data->convertible = storage;
-
-  }
-
-};
-
-/**
- * Avoids the big number of warnings...
- */
-static PyArrayObject* make_pyarray(int nd, npy_intp* dims, int type) {
-  return (PyArrayObject*)PyArray_SimpleNew(nd, dims, type);
-}
-
-/**
- * Objects of this type bind blitz::Array<T,N> to numpy arrays. Your method
- * generates as output an object of this type and the object will be
- * automatically converted into a Numpy array.
- */
-template <typename T, int N> struct bz_to_npy {
-
-  typedef typename blitz::Array<T,N> array_type;
-  typedef typename blitz::TinyVector<int,N> shape_type;
-
-  static PyObject* convert(const array_type& tv) {
-    npy_intp dims[N];
-    for (int i=0; i<N; ++i) dims[i] = tv.extent(i);
-
-    PyArrayObject* retval = make_pyarray(N, dims, bob::python::ctype_to_num<T>());
-
-    //wrap new PyArray in a blitz layer and then copy the data
-    shape_type shape=0;
-    for (int k=0; k<PyArray_NDIM(retval); ++k) shape[k] = PyArray_DIMS(retval)[k];
-    shape_type stride=0;
-    for (int k=0; k<PyArray_NDIM(retval); ++k) stride[k] = (PyArray_STRIDES(retval)[k]/sizeof(T));
-    array_type bzdest((T*)PyArray_DATA(retval), shape, stride, blitz::neverDeleteData);
-    bzdest = tv;
-
-    return reinterpret_cast<PyObject*>(retval);
-  }
-
-  static const PyTypeObject* get_pytype() { return &PyArray_Type; }
-
-};
-
-template <typename T, int N>
-void register_bz_to_npy() {
-  boost::python::to_python_converter<typename blitz::Array<T,N>, bz_to_npy<T,N>
-#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES
-                          ,true
-#endif
-              >();
-}
-
-void bind_core_bz_numpy () {
-  /**
-   * The following struct constructors will make sure we can input
-   * blitz::Array<T,N> in our bound C++ routines w/o needing to specify
-   * special converters each time. The rvalue converters allow boost::python to
-   * automatically map the following inputs:
-   *
-   * a) const blitz::Array<T,N>& (pass by const reference)
-   * b) blitz::Array<T,N> (pass by value -- DO NEVER DO THIS!!!)
-   *
-   * Please note that the last case:
-   *
-   * c) blitz::Array<T,N>& (pass by non-const reference)
-   *
-   * is NOT covered by these converters. The reason being that because the
-   * object may be changed, there is no way for boost::python to update the
-   * original python object, in a sensible manner, at the return of the method.
-   *
-   * Avoid passing by non-const reference in your methods.
-   */
-#  define BOOST_PP_LOCAL_LIMITS (1, BOB_MAX_DIM)
-#  define BOOST_PP_LOCAL_MACRO(D) \
-   bz_from_npy<bool,D>();\
-   bz_from_npy<int8_t,D>();\
-   bz_from_npy<int16_t,D>();\
-   bz_from_npy<int32_t,D>();\
-   bz_from_npy<int64_t,D>();\
-   bz_from_npy<uint8_t,D>();\
-   bz_from_npy<uint16_t,D>();\
-   bz_from_npy<uint32_t,D>();\
-   bz_from_npy<uint64_t,D>();\
-   bz_from_npy<float,D>();\
-   bz_from_npy<double,D>();\
-   bz_from_npy<long double,D>();\
-   bz_from_npy<std::complex<float>,D>();\
-   bz_from_npy<std::complex<double>,D>();\
-   bz_from_npy<std::complex<long double>,D>();
-#  include BOOST_PP_LOCAL_ITERATE()
-
-  /**
-   * The following struct constructors will make C++ return values of type
-   * blitz::Array<T,N> to show up in the python side as numpy arrays.
-   */
-#  define BOOST_PP_LOCAL_LIMITS (1, BOB_MAX_DIM)
-#  define BOOST_PP_LOCAL_MACRO(D) \
-   register_bz_to_npy<bool,D>();\
-   register_bz_to_npy<int8_t,D>();\
-   register_bz_to_npy<int16_t,D>();\
-   register_bz_to_npy<int32_t,D>();\
-   register_bz_to_npy<int64_t,D>();\
-   register_bz_to_npy<uint8_t,D>();\
-   register_bz_to_npy<uint16_t,D>();\
-   register_bz_to_npy<uint32_t,D>();\
-   register_bz_to_npy<uint64_t,D>();\
-   register_bz_to_npy<float,D>();\
-   register_bz_to_npy<double,D>();\
-   register_bz_to_npy<long double,D>();\
-   register_bz_to_npy<std::complex<float>,D>();\
-   register_bz_to_npy<std::complex<double>,D>();\
-   register_bz_to_npy<std::complex<long double>,D>();
-#  include BOOST_PP_LOCAL_ITERATE()
-}
diff --git a/bob/learn/misc/old/empca_trainer.cc b/bob/learn/misc/old/empca_trainer.cc
deleted file mode 100644
index 3df1d75..0000000
--- a/bob/learn/misc/old/empca_trainer.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Tue Oct 11 12:32:10 2011 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-#include "ndarray.h"
-
-#include <bob.learn.linear/pca.h>
-#include <bob.learn.misc/EMPCATrainer.h>
-
-using namespace boost::python;
-
-typedef bob::learn::misc::EMTrainer<bob::learn::linear::Machine, blitz::Array<double,2> > EMTrainerLinearBase;
-
-static void py_train(EMTrainerLinearBase& trainer,
-  bob::learn::linear::Machine& machine, bob::python::const_ndarray data)
-{
-  trainer.train(machine, data.bz<double,2>());
-}
-
-static void py_initialize(EMTrainerLinearBase& trainer,
-  bob::learn::linear::Machine& machine, bob::python::const_ndarray data)
-{
-  trainer.initialize(machine, data.bz<double,2>());
-}
-
-static void py_finalize(EMTrainerLinearBase& trainer,
-  bob::learn::linear::Machine& machine, bob::python::const_ndarray data)
-{
-  trainer.finalize(machine, data.bz<double,2>());
-}
-
-static void py_eStep(EMTrainerLinearBase& trainer,
-  bob::learn::linear::Machine& machine, bob::python::const_ndarray data)
-{
-  trainer.eStep(machine, data.bz<double,2>());
-}
-
-static void py_mStep(EMTrainerLinearBase& trainer,
-  bob::learn::linear::Machine& machine, bob::python::const_ndarray data)
-{
-  trainer.mStep(machine, data.bz<double,2>());
-}
-
-void bind_trainer_empca()
-{
-
-  class_<EMTrainerLinearBase, boost::noncopyable>("EMTrainerLinear", "The base python class for all EM-based trainers.", no_init)
-    .add_property("convergence_threshold", &EMTrainerLinearBase::getConvergenceThreshold, &EMTrainerLinearBase::setConvergenceThreshold, "Convergence threshold")
-    .add_property("max_iterations", &EMTrainerLinearBase::getMaxIterations, &EMTrainerLinearBase::setMaxIterations, "Max iterations")
-    .add_property("compute_likelihood_variable", &EMTrainerLinearBase::getComputeLikelihood, &EMTrainerLinearBase::setComputeLikelihood, "Indicates whether the log likelihood should be computed during EM or not")
-    .add_property("rng", &EMTrainerLinearBase::getRng, &EMTrainerLinearBase::setRng, "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.")
-    .def("train", &py_train, (arg("self"), arg("machine"), arg("data")), "Trains a machine using data")
-    .def("initialize", &py_initialize, (arg("self"), arg("machine"), arg("data")), "This method is called before the EM algorithm")
-    .def("finalize", &py_finalize, (arg("self"), arg("machine"), arg("data")), "This method is called at the end of the EM algorithm")
-    .def("e_step", &py_eStep, (arg("self"), arg("machine"), arg("data")),
-       "Updates the hidden variable distribution (or the sufficient statistics) given the Machine parameters. ")
-    .def("m_step", &py_mStep, (arg("self"), arg("machine"), arg("data")), "Updates the Machine parameters given the hidden variable distribution (or the sufficient statistics)")
-    .def("compute_likelihood", &EMTrainerLinearBase::computeLikelihood, (arg("self"), arg("machine")), "Computes the current log likelihood given the hidden variable distribution (or the sufficient statistics)")
-  ;
-
-  class_<bob::learn::misc::EMPCATrainer, boost::noncopyable, bases<EMTrainerLinearBase> >("EMPCATrainer",
-      "This class implements the EM algorithm for a Linear Machine (Probabilistic PCA).\n"
-      "See Section 12.2 of Bishop, \"Pattern recognition and machine learning\", 2006", init<optional<double,size_t,bool> >((arg("self"), arg("convergence_threshold"), arg("max_iterations"), arg("compute_likelihood"))))
-    .def(init<const bob::learn::misc::EMPCATrainer&>((arg("self"), arg("trainer")), "Copy constructs an EMPCATrainer"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::EMPCATrainer::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this EMPCATrainer with the 'other' one to be approximately the same.")
-    .add_property("sigma2", &bob::learn::misc::EMPCATrainer::getSigma2, &bob::learn::misc::EMPCATrainer::setSigma2, "The noise sigma2 of the probabilistic model")
-  ;
-}
diff --git a/bob/learn/misc/old/exception.h b/bob/learn/misc/old/exception.h
deleted file mode 100644
index 7d02a7f..0000000
--- a/bob/learn/misc/old/exception.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * @file bob/python/exception.h
- * @date Fri Mar 25 15:21:36 2011 +0100
- * @author Andre Anjos <andre.anjos@idiap.ch>
- *
- * @brief Implements a few classes that are useful for binding bob exceptions
- * to python.
- *
- * Copyright (C) 2011-2013 Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_PYTHON_EXCEPTION_H
-#define BOB_PYTHON_EXCEPTION_H
-
-#include <boost/python.hpp>
-
-/**
- * @brief Raises a python exception with a formatted message
- */
-#define PYTHON_ERROR(TYPE, ...) \
-{ \
-  PyErr_Format(PyExc_##TYPE, __VA_ARGS__); \
-  throw boost::python::error_already_set(); \
-}
-
-/**
- * @brief Raises a python warning with a formatted message
- */
-#define PYTHON_WARNING(TYPE, MESSAGE) \
-{ \
-  PyErr_Warn(PyExc_##TYPE, MESSAGE); \
-}
-
-namespace bob { namespace python {
-
-  /**
-   * @brief This is a generalized exception translator for boost python. It
-   * simplifies translation declaration for as long as you provide a what()
-   * method in your exception classes that return a const char* with the
-   * exception description.
-   *
-   * If you follow that protocol, you should be able to do something like:
-   *
-   * ExceptionTranslator<std::out_of_range> t(PyExc_RuntimeError)
-   *
-   * On your boost::python modules.
-   */
-  template <typename T> struct ExceptionTranslator {
-
-    public:
-
-      void operator()(const T& cxx_except) const {
-        PyErr_SetString(m_py_except, cxx_except.what());
-      }
-
-      ExceptionTranslator(PyObject* py_except): m_py_except(py_except) {
-        boost::python::register_exception_translator<T>(*this);
-      }
-
-      ExceptionTranslator(const ExceptionTranslator& other):
-        m_py_except(other.m_py_except) {
-          //do not re-register the translator here!
-      }
-
-    private:
-
-      PyObject* m_py_except;
-
-  };
-
-  /**
-   * @brief A thin wrapper to call the translator and escape the variable
-   * naming issue when declaring multiple ExceptionTranslator's on the same
-   * module.
-   *
-   * If you think about it, it would have to look like this:
-   *
-   * ExceptionTranslator<MyException1> translator1(PyExc_RuntimeError);
-   * ExceptionTranslator<MyException2> translator2(PyExc_RuntimeError);
-   *
-   * Using this method will make it look like this:
-   *
-   * register_exception_translator<MyException1>(PyExc_RuntimeError);
-   */
-  template <typename T> void register_exception_translator(PyObject* e) {
-    ExceptionTranslator<T> my_translator(e);
-  }
-
-}}
-
-#endif /* BOB_PYTHON_EXCEPTION_H */
diff --git a/bob/learn/misc/old/gaussian.cc b/bob/learn/misc/old/gaussian.cc
deleted file mode 100644
index 70a8856..0000000
--- a/bob/learn/misc/old/gaussian.cc
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Tue Jul 26 15:11:33 2011 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
-#include <bob.io.base/api.h>
-
-#include "ndarray.h"
-#include <bob.learn.misc/Gaussian.h>
-
-
-using namespace boost::python;
-
-static void py_setMean(bob::learn::misc::Gaussian& machine,
-  bob::python::const_ndarray mean)
-{
-  machine.setMean(mean.bz<double,1>());
-}
-
-static void py_setVariance(bob::learn::misc::Gaussian& machine,
-  bob::python::const_ndarray variance)
-{
-  machine.setVariance(variance.bz<double,1>());
-}
-
-static void py_setVarianceThresholds(bob::learn::misc::Gaussian& machine,
-  bob::python::const_ndarray varianceThresholds)
-{
-  machine.setVarianceThresholds(varianceThresholds.bz<double,1>());
-}
-
-static tuple get_shape(const bob::learn::misc::Gaussian& m)
-{
-  return make_tuple(m.getNInputs());
-}
-
-static void set_shape(bob::learn::misc::Gaussian& m,
-  const blitz::TinyVector<int,1>& s)
-{
-  m.resize(s(0));
-}
-
-static double py_logLikelihood(const bob::learn::misc::Gaussian& machine,
-  bob::python::const_ndarray input)
-{
-  double output;
-  machine.forward(input.bz<double,1>(), output);
-  return output;
-}
-
-static double py_logLikelihood_(const bob::learn::misc::Gaussian& machine,
-  bob::python::const_ndarray input)
-{
-  double output;
-  machine.forward_(input.bz<double,1>(), output);
-  return output;
-}
-
-
-static boost::shared_ptr<bob::learn::misc::Gaussian> _init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::Gaussian>(new bob::learn::misc::Gaussian(*hdf5->f));
-}
-
-static void _load(bob::learn::misc::Gaussian& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void _save(const bob::learn::misc::Gaussian& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-
-void bind_machine_gaussian()
-{
-  class_<bob::learn::misc::Gaussian, boost::shared_ptr<bob::learn::misc::Gaussian>, bases<bob::learn::misc::Machine<blitz::Array<double,1>, double> > >("Gaussian",
-    "This class implements a multivariate diagonal Gaussian distribution.", no_init)
-    .def("__init__", boost::python::make_constructor(&_init))
-    .def(init<>(arg("self")))
-    .def(init<const size_t>((arg("self"), arg("n_inputs"))))
-    .def(init<bob::learn::misc::Gaussian&>((arg("self"), arg("other"))))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::Gaussian::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this Gaussian with the 'other' one to be approximately the same.")
-    .add_property("dim_d", &bob::learn::misc::Gaussian::getNInputs, &bob::learn::misc::Gaussian::setNInputs,
-      "Dimensionality of the input feature space")
-    .add_property("mean", make_function(&bob::learn::misc::Gaussian::getMean, return_value_policy<copy_const_reference>()), &py_setMean, "Mean of the Gaussian")
-    .add_property("variance", make_function(&bob::learn::misc::Gaussian::getVariance, return_value_policy<copy_const_reference>()), &py_setVariance, "The diagonal of the (diagonal) covariance matrix")
-    .add_property("variance_thresholds", make_function(&bob::learn::misc::Gaussian::getVarianceThresholds, return_value_policy<copy_const_reference>()), &py_setVarianceThresholds,
-      "The variance flooring thresholds, i.e. the minimum allowed value of variance in each dimension. "
-      "The variance will be set to this value if an attempt is made to set it to a smaller value.")
-    .add_property("shape", &get_shape, &set_shape, "A tuple that represents the dimensionality of the Gaussian ``(dim_d,)``.")
-    .def("set_variance_thresholds",  (void (bob::learn::misc::Gaussian::*)(const double))&bob::learn::misc::Gaussian::setVarianceThresholds, (arg("self"), arg("var_thd")),
-         "Set the variance flooring thresholds equal to the given threshold for all the dimensions.")
-    .def("resize", &bob::learn::misc::Gaussian::resize, (arg("self"), arg("dim_d")), "Set the input dimensionality, reset the mean to zero and the variance to one.")
-    .def("log_likelihood", &py_logLikelihood, (arg("self"), arg("sample")), "Output the log likelihood of the sample, x. The input size is checked.")
-    .def("log_likelihood_", &py_logLikelihood_, (arg("self"), arg("sample")), "Output the log likelihood of the sample, x. The input size is NOT checked.")
-    .def("save", &_save, (arg("self"), arg("config")), "Save to a Configuration")
-    .def("load", &_load, (arg("self"), arg("config")),"Load from a Configuration")
-    .def(self_ns::str(self_ns::self))
-  ;
-}
diff --git a/bob/learn/misc/old/gmm.cc b/bob/learn/misc/old/gmm.cc
deleted file mode 100644
index 00b290d..0000000
--- a/bob/learn/misc/old/gmm.cc
+++ /dev/null
@@ -1,330 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Tue Jul 26 15:11:33 2011 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
-#include <bob.io.base/api.h>
-
-#include "ndarray.h"
-
-#include <bob.learn.misc/GMMStats.h>
-#include <bob.learn.misc/GMMMachine.h>
-
-using namespace boost::python;
-
-static object py_gmmstats_getN(bob::learn::misc::GMMStats& s)
-{
-  bob::python::ndarray n(bob::io::base::array::t_float64, s.n.extent(0));
-  blitz::Array<double,1> n_ = n.bz<double,1>();
-  n_ = s.n;
-  return n.self();
-}
-
-static void py_gmmstats_setN(bob::learn::misc::GMMStats& s,
-  bob::python::const_ndarray n)
-{
-  s.n = n.bz<double,1>();
-}
-
-static object py_gmmstats_getSumpx(bob::learn::misc::GMMStats& s)
-{
-  bob::python::ndarray sumpx(bob::io::base::array::t_float64, s.sumPx.extent(0),
-    s.sumPx.extent(1));
-  blitz::Array<double,2> sumpx_ = sumpx.bz<double,2>();
-  sumpx_ = s.sumPx;
-  return sumpx.self();
-}
-
-static void py_gmmstats_setSumpx(bob::learn::misc::GMMStats& s,
-  bob::python::const_ndarray sumpx)
-{
-  s.sumPx = sumpx.bz<double,2>();
-}
-
-static object py_gmmstats_getSumpxx(bob::learn::misc::GMMStats& s)
-{
-  bob::python::ndarray sumpxx(bob::io::base::array::t_float64, s.sumPxx.extent(0),
-    s.sumPxx.extent(1));
-  blitz::Array<double,2> sumpxx_ = sumpxx.bz<double,2>();
-  sumpxx_ = s.sumPxx;
-  return sumpxx.self();
-}
-
-static void py_gmmstats_setSumpxx(bob::learn::misc::GMMStats& s,
-  bob::python::const_ndarray sumpxx)
-{
-  s.sumPxx = sumpxx.bz<double,2>();
-}
-
-
-static void py_gmmmachine_setWeights(bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray weights)
-{
-  machine.setWeights(weights.bz<double,1>());
-}
-
-static object py_gmmmachine_getMeans(const bob::learn::misc::GMMMachine& machine)
-{
-  bob::python::ndarray means(bob::io::base::array::t_float64,
-    machine.getNGaussians(), machine.getNInputs());
-  blitz::Array<double,2> means_ = means.bz<double,2>();
-  machine.getMeans(means_);
-  return means.self();
-}
-
-static void py_gmmmachine_setMeans(bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray means)
-{
-  machine.setMeans(means.bz<double,2>());
-}
-
-static void py_gmmmachine_setMeanSupervector(bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray vec)
-{
-  machine.setMeanSupervector(vec.bz<double,1>());
-}
-
-static object py_gmmmachine_getVariances(const bob::learn::misc::GMMMachine& machine)
-{
-  bob::python::ndarray variances(bob::io::base::array::t_float64,
-    machine.getNGaussians(), machine.getNInputs());
-  blitz::Array<double,2> variances_ = variances.bz<double,2>();
-  machine.getVariances(variances_);
-  return variances.self();
-}
-
-static void py_gmmmachine_setVariances(bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray variances)
-{
-  machine.setVariances(variances.bz<double,2>());
-}
-
-static void py_gmmmachine_setVarianceSupervector(bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray vec)
-{
-  machine.setVarianceSupervector(vec.bz<double,1>());
-}
-
-static object py_gmmmachine_getVarianceThresholds(const bob::learn::misc::GMMMachine& machine)
-{
-  bob::python::ndarray varianceThresholds(bob::io::base::array::t_float64,
-    machine.getNGaussians(), machine.getNInputs());
-  blitz::Array<double,2> varianceThresholds_ = varianceThresholds.bz<double,2>();
-  machine.getVarianceThresholds(varianceThresholds_);
-  return varianceThresholds.self();
-}
-
-static void py_gmmmachine_setVarianceThresholds(bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray varianceThresholds)
-{
-  machine.setVarianceThresholds(varianceThresholds.bz<double,2>());
-}
-
-static void py_gmmmachine_setVarianceThresholdsOther(bob::learn::misc::GMMMachine& machine,
-  object o)
-{
-  extract<int> int_check(o);
-  extract<double> float_check(o);
-  if(int_check.check()) { //is int
-    machine.setVarianceThresholds(int_check());
-  }
-  else if(float_check.check()) { //is float
-    machine.setVarianceThresholds(float_check());
-  }
-  else {
-    //try hard-core extraction - throws TypeError, if not possible
-    extract<bob::python::const_ndarray> array_check(o);
-    if (!array_check.check())
-      PYTHON_ERROR(TypeError, "Cannot extract an array from this Python object");
-    bob::python::const_ndarray ar = array_check();
-    machine.setVarianceThresholds(ar.bz<double,1>());
-  }
-}
-
-static tuple py_gmmmachine_get_shape(const bob::learn::misc::GMMMachine& m)
-{
-  return make_tuple(m.getNGaussians(), m.getNInputs());
-}
-
-static void py_gmmmachine_set_shape(bob::learn::misc::GMMMachine& m,
-  const blitz::TinyVector<int,2>& s)
-{
-  m.resize(s(0), s(1));
-}
-
-static double py_gmmmachine_loglikelihoodA(const bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray x, bob::python::ndarray ll)
-{
-  blitz::Array<double,1> ll_ = ll.bz<double,1>();
-  return machine.logLikelihood(x.bz<double,1>(), ll_);
-}
-
-static double py_gmmmachine_loglikelihoodA_(const bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray x, bob::python::ndarray ll)
-{
-  blitz::Array<double,1> ll_ = ll.bz<double,1>();
-  return machine.logLikelihood_(x.bz<double,1>(), ll_);
-}
-
-static double py_gmmmachine_loglikelihoodB(const bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray x)
-{
-  return machine.logLikelihood(x.bz<double,1>());
-}
-
-static double py_gmmmachine_loglikelihoodB_(const bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray x)
-{
-  return machine.logLikelihood_(x.bz<double,1>());
-}
-
-static void py_gmmmachine_accStatistics(const bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray x, bob::learn::misc::GMMStats& gs)
-{
-  const bob::io::base::array::typeinfo& info = x.type();
-  switch(info.nd) {
-    case 1:
-      machine.accStatistics(x.bz<double,1>(), gs);
-      break;
-    case 2:
-      machine.accStatistics(x.bz<double,2>(), gs);
-      break;
-    default:
-      PYTHON_ERROR(TypeError, "cannot accStatistics of arrays with "  SIZE_T_FMT " dimensions (only with 1 or 2 dimensions).", info.nd);
-  }
-}
-
-static void py_gmmmachine_accStatistics_(const bob::learn::misc::GMMMachine& machine,
-  bob::python::const_ndarray x, bob::learn::misc::GMMStats& gs)
-{
-  const bob::io::base::array::typeinfo& info = x.type();
-  switch(info.nd) {
-    case 1:
-      machine.accStatistics_(x.bz<double,1>(), gs);
-      break;
-    case 2:
-      machine.accStatistics_(x.bz<double,2>(), gs);
-      break;
-    default:
-      PYTHON_ERROR(TypeError, "cannot accStatistics of arrays with "  SIZE_T_FMT " dimensions (only with 1 or 2 dimensions).", info.nd);
-  }
-}
-
-static boost::shared_ptr<bob::learn::misc::GMMStats> s_init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::GMMStats>(new bob::learn::misc::GMMStats(*hdf5->f));
-}
-
-static void s_load(bob::learn::misc::GMMStats& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void s_save(const bob::learn::misc::GMMStats& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-
-static boost::shared_ptr<bob::learn::misc::GMMMachine> m_init(boost::python::object file){
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::GMMMachine>(new bob::learn::misc::GMMMachine(*hdf5->f));
-}
-
-static void m_load(bob::learn::misc::GMMMachine& self, boost::python::object file){
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void m_save(const bob::learn::misc::GMMMachine& self, boost::python::object file){
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-void bind_machine_gmm()
-{
-  class_<bob::learn::misc::GMMStats, boost::shared_ptr<bob::learn::misc::GMMStats> >("GMMStats",
-      "A container for GMM statistics.\n"
-      "With respect to Reynolds, \"Speaker Verification Using Adapted "
-      "Gaussian Mixture Models\", DSP, 2000:\n"
-      "Eq (8) is n(i)\n"
-      "Eq (9) is sumPx(i) / n(i)\n"
-      "Eq (10) is sumPxx(i) / n(i)\n",
-      init<>(arg("self")))
-    .def("__init__", boost::python::make_constructor(&s_init))
-    .def(init<const size_t, const size_t>((arg("self"), arg("n_gaussians"), arg("n_inputs"))))
-    .def(init<bob::learn::misc::GMMStats&>((arg("self"), arg("other")), "Creates a GMMStats from another GMMStats, using the copy constructor."))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::GMMStats::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this GMMStats with the 'other' one to be approximately the same.")
-    .def_readwrite("log_likelihood", &bob::learn::misc::GMMStats::log_likelihood, "The accumulated log likelihood of all samples")
-    .def_readwrite("t", &bob::learn::misc::GMMStats::T, "The accumulated number of samples")
-    .add_property("n", &py_gmmstats_getN, &py_gmmstats_setN, "For each Gaussian, the accumulated sum of responsibilities, i.e. the sum of P(gaussian_i|x)")
-    .add_property("sum_px", &py_gmmstats_getSumpx, &py_gmmstats_setSumpx, "For each Gaussian, the accumulated sum of responsibility times the sample ")
-    .add_property("sum_pxx", &py_gmmstats_getSumpxx, &py_gmmstats_setSumpxx, "For each Gaussian, the accumulated sum of responsibility times the sample squared")
-    .def("resize", &bob::learn::misc::GMMStats::resize, (arg("self"), arg("n_gaussians"), arg("n_inputs")),
-         " Allocates space for the statistics and resets to zero.")
-    .def("init", &bob::learn::misc::GMMStats::init, (arg("self")), "Resets statistics to zero.")
-    .def("save", &s_save, (arg("self"), arg("config")), "Save to a Configuration")
-    .def("load", &s_load, (arg("self"), arg("config")), "Load from a Configuration")
-    .def(self_ns::str(self_ns::self))
-    .def(self_ns::self += self_ns::self)
-  ;
-
-  class_<bob::learn::misc::GMMMachine, boost::shared_ptr<bob::learn::misc::GMMMachine>, bases<bob::learn::misc::Machine<blitz::Array<double,1>, double> > >("GMMMachine",
-      "This class implements a multivariate diagonal Gaussian distribution.\n"
-      "See Section 2.3.9 of Bishop, \"Pattern recognition and machine learning\", 2006",
-      init<>(arg("self")))
-    .def("__init__", boost::python::make_constructor(&m_init))
-    .def(init<bob::learn::misc::GMMMachine&>((arg("self"), arg("other")), "Creates a GMMMachine from another GMMMachine, using the copy constructor."))
-    .def(init<const size_t, const size_t>((arg("self"), arg("n_gaussians"), arg("n_inputs"))))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::GMMMachine::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this GMMMachine with the 'other' one to be approximately the same.")
-    .add_property("dim_d", &bob::learn::misc::GMMMachine::getNInputs, &bob::learn::misc::GMMMachine::setNInputs, "The feature dimensionality D")
-    .add_property("dim_c", &bob::learn::misc::GMMMachine::getNGaussians, "The number of Gaussian components C")
-    .add_property("weights", make_function(&bob::learn::misc::GMMMachine::getWeights, return_value_policy<copy_const_reference>()), &py_gmmmachine_setWeights, "The weights (also known as \"mixing coefficients\")")
-    .add_property("means", &py_gmmmachine_getMeans, &py_gmmmachine_setMeans, "The means of the gaussians")
-    .add_property("mean_supervector", make_function((const blitz::Array<double,1>& (bob::learn::misc::GMMMachine::*)(void) const)&bob::learn::misc::GMMMachine::getMeanSupervector, return_value_policy<copy_const_reference>()), &py_gmmmachine_setMeanSupervector,
-                  "The mean supervector of the GMMMachine "
-                  "(concatenation of the mean vectors of each Gaussian of the GMMMachine")
-    .add_property("variances", &py_gmmmachine_getVariances, &py_gmmmachine_setVariances, "The (diagonal) variances of the Gaussians")
-    .add_property("variance_supervector", make_function((const blitz::Array<double,1>& (bob::learn::misc::GMMMachine::*)(void) const)&bob::learn::misc::GMMMachine::getVarianceSupervector, return_value_policy<copy_const_reference>()), &py_gmmmachine_setVarianceSupervector,
-                  "The variance supervector of the GMMMachine "
-                  "(concatenation of the variance vectors of each Gaussian of the GMMMachine")
-    .add_property("variance_thresholds", &py_gmmmachine_getVarianceThresholds, &py_gmmmachine_setVarianceThresholds,
-                  "The variance flooring thresholds for each Gaussian in each dimension")
-    .add_property("shape", &py_gmmmachine_get_shape, &py_gmmmachine_set_shape, "A tuple that represents the dimensionality of the GMMMachine ``(n_gaussians, n_inputs)``.")
-    .def("resize", &bob::learn::misc::GMMMachine::resize, (arg("self"), arg("n_gaussians"), arg("n_inputs")),
-         "Reset the input dimensionality, and the number of Gaussian components.\n"
-         "Initialises the weights to uniform distribution.")
-    .def("set_variance_thresholds", &py_gmmmachine_setVarianceThresholdsOther, (arg("self"), arg("variance_threshold")),
-         "Set the variance flooring thresholds in each dimension to the same vector for all Gaussian components if the argument is a 1D numpy arrray, and equal for all Gaussian components and dimensions if the parameter is a scalar.")
-    .def("update_gaussian", &bob::learn::misc::GMMMachine::updateGaussian, (arg("self"), arg("i")),
-         "Get the specified Gaussian component. An exception is thrown if i is out of range.")
-
-    .def("log_likelihood", &py_gmmmachine_loglikelihoodA, args("self", "x", "log_weighted_gaussian_likelihoods"),
-         "Output the log likelihood of the sample, x, i.e. log(p(x|bob::learn::misc::GMMMachine)). Inputs are checked.")
-    .def("log_likelihood_", &py_gmmmachine_loglikelihoodA_, args("self", "x", "log_weighted_gaussian_likelihoods"),
-         "Output the log likelihood of the sample, x, i.e. log(p(x|bob::learn::misc::GMMMachine)). Inputs are NOT checked.")
-    .def("log_likelihood", &py_gmmmachine_loglikelihoodB, args("self", "x"),
-         " Output the log likelihood of the sample, x, i.e. log(p(x|GMM)). Inputs are checked.")
-    .def("log_likelihood_", &py_gmmmachine_loglikelihoodB_, args("self", "x"),
-         " Output the log likelihood of the sample, x, i.e. log(p(x|GMM)). Inputs are checked.")
-    .def("acc_statistics", &py_gmmmachine_accStatistics, args("self", "x", "stats"),
-         "Accumulate the GMM statistics for this sample(s). Inputs are checked.")
-    .def("acc_statistics_", &py_gmmmachine_accStatistics_, args("self", "x", "stats"),
-         "Accumulate the GMM statistics for this sample(s). Inputs are NOT checked.")
-    .def("load", &m_load, (arg("self"), arg("config")), "Load from a Configuration")
-    .def("save", &m_save, (arg("self"), arg("config")), "Save to a Configuration")
-    .def(self_ns::str(self_ns::self))
-  ;
-
-}
diff --git a/bob/learn/misc/old/gmm_trainer.cc b/bob/learn/misc/old/gmm_trainer.cc
deleted file mode 100644
index 9ec49c7..0000000
--- a/bob/learn/misc/old/gmm_trainer.cc
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Thu Jun 9 18:12:33 2011 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-
-#include <limits>
-#include <bob.learn.misc/GMMTrainer.h>
-#include <bob.learn.misc/MAP_GMMTrainer.h>
-#include <bob.learn.misc/ML_GMMTrainer.h>
-
-using namespace boost::python;
-
-typedef bob::learn::misc::EMTrainer<bob::learn::misc::GMMMachine, blitz::Array<double,2> > EMTrainerGMMBase;
-
-static void py_train(EMTrainerGMMBase& trainer, bob::learn::misc::GMMMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.train(machine, sample.bz<double,2>());
-}
-
-static void py_initialize(EMTrainerGMMBase& trainer, bob::learn::misc::GMMMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.initialize(machine, sample.bz<double,2>());
-}
-
-static void py_finalize(EMTrainerGMMBase& trainer, bob::learn::misc::GMMMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.finalize(machine, sample.bz<double,2>());
-}
-
-static void py_eStep(EMTrainerGMMBase& trainer, bob::learn::misc::GMMMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.eStep(machine, sample.bz<double,2>());
-}
-
-static void py_mStep(EMTrainerGMMBase& trainer, bob::learn::misc::GMMMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.mStep(machine, sample.bz<double,2>());
-}
-
-void bind_trainer_gmm() {
-
-  class_<EMTrainerGMMBase, boost::noncopyable>("EMTrainerGMM", "The base python class for all EM-based trainers.", no_init)
-    .add_property("convergence_threshold", &EMTrainerGMMBase::getConvergenceThreshold, &EMTrainerGMMBase::setConvergenceThreshold, "Convergence threshold")
-    .add_property("max_iterations", &EMTrainerGMMBase::getMaxIterations, &EMTrainerGMMBase::setMaxIterations, "Max iterations")
-    .def("train", &py_train, (arg("self"), arg("machine"), arg("data")), "Train a machine using data")
-    .def("initialize", &py_initialize, (arg("self"), arg("machine"), arg("data")), "This method is called before the EM algorithm")
-    .def("finalize", &py_finalize, (arg("self"), arg("machine"), arg("data")), "This method is called after the EM algorithm")
-    .def("e_step", &py_eStep, (arg("self"), arg("machine"), arg("data")),
-       "Update the hidden variable distribution (or the sufficient statistics) given the Machine parameters. "
-       "Also, calculate the average output of the Machine given these parameters.\n"
-       "Return the average output of the Machine across the dataset. "
-       "The EM algorithm will terminate once the change in average_output "
-       "is less than the convergence_threshold.")
-    .def("m_step", &py_mStep, (arg("self"), arg("machine"), arg("data")), "Update the Machine parameters given the hidden variable distribution (or the sufficient statistics)")
-    .def("compute_likelihood", &EMTrainerGMMBase::computeLikelihood, (arg("self"), arg("machine")), "Returns the likelihood.")
-  ;
-
-  class_<bob::learn::misc::GMMTrainer, boost::noncopyable, bases<EMTrainerGMMBase> >("GMMTrainer",
-      "This class implements the E-step of the expectation-maximisation algorithm for a GMM Machine.\n"
-      "See Section 9.2.2 of Bishop, \"Pattern recognition and machine learning\", 2006", no_init)
-    .add_property("gmm_statistics", make_function(&bob::learn::misc::GMMTrainer::getGMMStats, return_value_policy<copy_const_reference>()), &bob::learn::misc::GMMTrainer::setGMMStats, "The internal GMM statistics. Useful to parallelize the E-step.")
-  ;
-
-  class_<bob::learn::misc::MAP_GMMTrainer, boost::noncopyable, bases<bob::learn::misc::GMMTrainer> >("MAP_GMMTrainer",
-      "This class implements the maximum a posteriori M-step "
-      "of the expectation-maximisation algorithm for a GMM Machine. "
-      "The prior parameters are encoded in the form of a GMM (e.g. a universal background model). "
-      "The EM algorithm thus performs GMM adaptation.\n"
-      "See Section 3.4 of Reynolds et al., \"Speaker Verification Using Adapted Gaussian Mixture Models\", Digital Signal Processing, 2000. We use a \"single adaptation coefficient\", alpha_i, and thus a single relevance factor, r.",
-      init<optional<const double, const bool, const bool, const bool, const double> >((arg("self"), arg("relevance_factor")=0, arg("update_means")=true, arg("update_variances")=false, arg("update_weights")=false, arg("responsibilities_threshold")=std::numeric_limits<double>::epsilon())))
-    .def("set_prior_gmm", &bob::learn::misc::MAP_GMMTrainer::setPriorGMM, (arg("self"), arg("prior_gmm")),
-      "Set the GMM to use as a prior for MAP adaptation. "
-      "Generally, this is a \"universal background model\" (UBM), "
-      "also referred to as a \"world model\".")
-    .def("set_t3_map", &bob::learn::misc::MAP_GMMTrainer::setT3MAP, (arg("self"), arg("alpha")),
-      "Use a torch3-like MAP adaptation rule instead of Reynolds'one.")
-    .def("unset_t3_map", &bob::learn::misc::MAP_GMMTrainer::unsetT3MAP, (arg("self")),
-      "Use a Reynolds' MAP adaptation (rather than torch3-like).")
-  ;
-
-  class_<bob::learn::misc::ML_GMMTrainer, boost::noncopyable, bases<bob::learn::misc::GMMTrainer> >("ML_GMMTrainer",
-      "This class implements the maximum likelihood M-step of the expectation-maximisation algorithm for a GMM Machine.\n"
-      "See Section 9.2.2 of Bishop, \"Pattern recognition and machine learning\", 2006",
-      init<optional<const bool, const bool, const bool, const double> >((arg("self"), arg("update_means")=true, arg("update_variances")=false, arg("update_weights")=false, arg("responsibilities_threshold")=std::numeric_limits<double>::epsilon())))
-  ;
-}
diff --git a/bob/learn/misc/old/ivector.cc b/bob/learn/misc/old/ivector.cc
deleted file mode 100644
index b36e66e..0000000
--- a/bob/learn/misc/old/ivector.cc
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Sun Mar 31 18:07:00 2013 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
-#include <bob.io.base/api.h>
-
-#include "ndarray.h"
-
-#include <bob.learn.misc/IVectorMachine.h>
-
-using namespace boost::python;
-
-static void py_iv_setT(bob::learn::misc::IVectorMachine& machine,
-  bob::python::const_ndarray T)
-{
-  machine.setT(T.bz<double,2>());
-}
-
-static void py_iv_setSigma(bob::learn::misc::IVectorMachine& machine,
-  bob::python::const_ndarray sigma)
-{
-  machine.setSigma(sigma.bz<double,1>());
-}
-
-static void py_computeIdTtSigmaInvT1(const bob::learn::misc::IVectorMachine& machine,
-  const bob::learn::misc::GMMStats& gs, bob::python::ndarray output)
-{
-  blitz::Array<double,2> output_ = output.bz<double,2>();
-  machine.computeIdTtSigmaInvT(gs, output_);
-}
-
-static object py_computeIdTtSigmaInvT2(const bob::learn::misc::IVectorMachine& machine,
-  const bob::learn::misc::GMMStats& gs)
-{
-  bob::python::ndarray output(bob::io::base::array::t_float64, machine.getDimRt(), machine.getDimRt());
-  blitz::Array<double,2> output_ = output.bz<double,2>();
-  machine.computeIdTtSigmaInvT(gs, output_);
-  return output.self();
-}
-
-static void py_computeTtSigmaInvFnorm1(const bob::learn::misc::IVectorMachine& machine,
-  const bob::learn::misc::GMMStats& gs, bob::python::ndarray output)
-{
-  blitz::Array<double,1> output_ = output.bz<double,1>();
-  machine.computeTtSigmaInvFnorm(gs, output_);
-}
-
-static object py_computeTtSigmaInvFnorm2(const bob::learn::misc::IVectorMachine& machine,
-  const bob::learn::misc::GMMStats& gs)
-{
-  bob::python::ndarray output(bob::io::base::array::t_float64, machine.getDimRt());
-  blitz::Array<double,1> output_ = output.bz<double,1>();
-  machine.computeTtSigmaInvFnorm(gs, output_);
-  return output.self();
-}
-
-static void py_iv_forward1(const bob::learn::misc::IVectorMachine& machine,
-  const bob::learn::misc::GMMStats& gs, bob::python::ndarray ivector)
-{
-  blitz::Array<double,1> ivector_ = ivector.bz<double,1>();
-  machine.forward(gs, ivector_);
-}
-
-static void py_iv_forward1_(const bob::learn::misc::IVectorMachine& machine,
-  const bob::learn::misc::GMMStats& gs, bob::python::ndarray ivector)
-{
-  blitz::Array<double,1> ivector_ = ivector.bz<double,1>();
-  machine.forward_(gs, ivector_);
-}
-
-static object py_iv_forward2(const bob::learn::misc::IVectorMachine& machine,
-  const bob::learn::misc::GMMStats& gs)
-{
-  bob::python::ndarray ivector(bob::io::base::array::t_float64, machine.getDimRt());
-  blitz::Array<double,1> ivector_ = ivector.bz<double,1>();
-  machine.forward(gs, ivector_);
-  return ivector.self();
-}
-
-
-
-static boost::shared_ptr<bob::learn::misc::IVectorMachine> _init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::IVectorMachine>(new bob::learn::misc::IVectorMachine(*hdf5->f));
-}
-
-static void _load(bob::learn::misc::IVectorMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void _save(const bob::learn::misc::IVectorMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-void bind_machine_ivector()
-{
-  // TODO: reuse binding from generic machine
-  class_<bob::learn::misc::IVectorMachine, boost::shared_ptr<bob::learn::misc::IVectorMachine> >("IVectorMachine", "An IVectorMachine to extract i-vector.\n\nReferences:\n[1] 'Front End Factor Analysis for Speaker Verification', N. Dehak, P. Kenny, R. Dehak, P. Dumouchel, P. Ouellet, IEEE Transactions on Audio, Speech and Language Processing, 2010, vol. 19, issue 4, pp. 788-798", init<boost::shared_ptr<bob::learn::misc::GMMMachine>, optional<const size_t, const size_t> >((arg("self"), arg("ubm"), arg("rt")=1, arg("variance_threshold")=1e-10), "Builds a new IVectorMachine."))
-    .def(init<>((arg("self")), "Constructs a new empty IVectorMachine."))
-    .def("__init__", boost::python::make_constructor(&_init), "Constructs a new IVectorMachine from a configuration file.")
-    .def(init<const bob::learn::misc::IVectorMachine&>((arg("self"), arg("machine")), "Copy constructs an IVectorMachine"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::IVectorMachine::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this IVectorMachine with the 'other' one to be approximately the same.")
-    .def("load", &_load, (arg("self"), arg("config")), "Loads the configuration parameters from a configuration file.")
-    .def("save", &_save, (arg("self"), arg("config")), "Saves the configuration parameters to a configuration file.")
-    .def("resize", &bob::learn::misc::IVectorMachine::resize, (arg("self"), arg("rt")), "Reset the dimensionality of the Total Variability subspace T.")
-    .add_property("ubm", &bob::learn::misc::IVectorMachine::getUbm, &bob::learn::misc::IVectorMachine::setUbm, "The UBM GMM attached to this Joint Factor Analysis model")
-    .add_property("t", make_function(&bob::learn::misc::IVectorMachine::getT, return_value_policy<copy_const_reference>()), &py_iv_setT, "The subspace T (Total Variability matrix)")
-    .add_property("sigma", make_function(&bob::learn::misc::IVectorMachine::getSigma, return_value_policy<copy_const_reference>()), &py_iv_setSigma, "The residual matrix of the model sigma")
-    .add_property("variance_threshold", &bob::learn::misc::IVectorMachine::getVarianceThreshold, &bob::learn::misc::IVectorMachine::setVarianceThreshold, "Threshold for the variance contained in sigma")
-    .add_property("dim_c", &bob::learn::misc::IVectorMachine::getDimC, "The number of Gaussian components")
-    .add_property("dim_d", &bob::learn::misc::IVectorMachine::getDimD, "The dimensionality of the feature space")
-    .add_property("dim_cd", &bob::learn::misc::IVectorMachine::getDimCD, "The dimensionality of the supervector space")
-    .add_property("dim_rt", &bob::learn::misc::IVectorMachine::getDimRt, "The dimensionality of the Total Variability subspace (rank of T)")
-    .def("__compute_Id_TtSigmaInvT__", &py_computeIdTtSigmaInvT1, (arg("self"), arg("gmmstats"), arg("output")), "Computes (Id + sum_{c=1}^{C} N_{i,j,c} T^{T} Sigma_{c}^{-1} T)")
-    .def("__compute_Id_TtSigmaInvT__", &py_computeIdTtSigmaInvT2, (arg("self"), arg("gmmstats")), "Computes (Id + sum_{c=1}^{C} N_{i,j,c} T^{T} Sigma_{c}^{-1} T)")
-    .def("__compute_TtSigmaInvFnorm__", &py_computeTtSigmaInvFnorm1, (arg("self"), arg("gmmstats"), arg("output")), "Computes T^{T} Sigma^{-1} sum_{c=1}^{C} (F_c - N_c mean(c))")
-    .def("__compute_TtSigmaInvFnorm__", &py_computeTtSigmaInvFnorm2, (arg("self"), arg("gmmstats")), "Computes T^{T} Sigma^{-1} sum_{c=1}^{C} (F_c - N_c mean(c))")
-    .def("__call__", &py_iv_forward1_, (arg("self"), arg("gmmstats"), arg("ivector")), "Executes the machine on the GMMStats, and updates the ivector array. NO CHECK is performed.")
-    .def("__call__", &py_iv_forward2, (arg("self"), arg("gmmstats")), "Executes the machine on the GMMStats. The ivector is allocated an returned.")
-    .def("forward", &py_iv_forward1, (arg("self"), arg("gmmstats"), arg("ivector")), "Executes the machine on the GMMStats, and updates the ivector array.")
-    .def("forward_", &py_iv_forward1_, (arg("self"), arg("gmmstats"), arg("ivector")), "Executes the machine on the GMMStats, and updates the ivector array. NO CHECK is performed.")
-    .def("forward", &py_iv_forward2, (arg("self"), arg("gmmstats")), "Executes the machine on the GMMStats. The ivector is allocated an returned.")
-  ;
-}
diff --git a/bob/learn/misc/old/ivector_trainer.cc b/bob/learn/misc/old/ivector_trainer.cc
deleted file mode 100644
index 72328bd..0000000
--- a/bob/learn/misc/old/ivector_trainer.cc
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
-* @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-* @date Sun Mar 31 19:56:00 2013 +0200
-*
-* Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-*/
-
-#include "ndarray.h"
-
-#include <bob.learn.misc/IVectorTrainer.h>
-#include <bob.learn.misc/IVectorMachine.h>
-#include <bob.learn.misc/EMTrainer.h>
-#include <boost/python/stl_iterator.hpp>
-
-using namespace boost::python;
-
-typedef bob::learn::misc::EMTrainer<bob::learn::misc::IVectorMachine, std::vector<bob::learn::misc::GMMStats> > EMTrainerIVectorBase;
-
-static void py_train(EMTrainerIVectorBase& trainer,
-  bob::learn::misc::IVectorMachine& machine, object data)
-{
-  stl_input_iterator<bob::learn::misc::GMMStats> dbegin(data), dend;
-  std::vector<bob::learn::misc::GMMStats> vdata(dbegin, dend);
-  trainer.train(machine, vdata);
-}
-
-static void py_initialize(EMTrainerIVectorBase& trainer,
-  bob::learn::misc::IVectorMachine& machine, object data)
-{
-  stl_input_iterator<bob::learn::misc::GMMStats> dbegin(data), dend;
-  std::vector<bob::learn::misc::GMMStats> vdata(dbegin, dend);
-  trainer.initialize(machine, vdata);
-}
-
-static void py_eStep(EMTrainerIVectorBase& trainer,
-  bob::learn::misc::IVectorMachine& machine, object data)
-{
-  stl_input_iterator<bob::learn::misc::GMMStats> dbegin(data), dend;
-  std::vector<bob::learn::misc::GMMStats> vdata(dbegin, dend);
-  trainer.eStep(machine, vdata);
-}
-
-static void py_mStep(EMTrainerIVectorBase& trainer,
-  bob::learn::misc::IVectorMachine& machine, object data)
-{
-  stl_input_iterator<bob::learn::misc::GMMStats> dbegin(data), dend;
-  std::vector<bob::learn::misc::GMMStats> vdata(dbegin, dend);
-  trainer.mStep(machine, vdata);
-}
-
-static void py_finalize(EMTrainerIVectorBase& trainer,
-  bob::learn::misc::IVectorMachine& machine, object data)
-{
-  stl_input_iterator<bob::learn::misc::GMMStats> dbegin(data), dend;
-  std::vector<bob::learn::misc::GMMStats> vdata(dbegin, dend);
-  trainer.finalize(machine, vdata);
-}
-
-static void py_set_AccNijWij2(bob::learn::misc::IVectorTrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccNijWij2(acc.bz<double,3>());
-}
-
-static void py_set_AccFnormijWij(bob::learn::misc::IVectorTrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccFnormijWij(acc.bz<double,3>());
-}
-
-static void py_set_AccNij(bob::learn::misc::IVectorTrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccNij(acc.bz<double,1>());
-}
-
-static void py_set_AccSnormij(bob::learn::misc::IVectorTrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccSnormij(acc.bz<double,2>());
-}
-
-
-
-// include the random API of bob.core
-#include <bob.core/random_api.h>
-static boost::python::object ITB_getRng(EMTrainerIVectorBase& self){
-  // create new object
-  PyObject* o = PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type,0);
-  reinterpret_cast<PyBoostMt19937Object*>(o)->rng = self.getRng().get();
-  return boost::python::object(boost::python::handle<>(boost::python::borrowed(o)));
-}
-
-#include <boost/make_shared.hpp>
-static void ITB_setRng(EMTrainerIVectorBase& self, boost::python::object rng){
-  if (!PyBoostMt19937_Check(rng.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.core.random.mt19937 object");
-  PyBoostMt19937Object* o = reinterpret_cast<PyBoostMt19937Object*>(rng.ptr());
-  self.setRng(boost::make_shared<boost::mt19937>(*o->rng));
-}
-
-
-void bind_trainer_ivector()
-{
-  class_<EMTrainerIVectorBase, boost::noncopyable>("EMTrainerIVector", "The base python class for all EM-based trainers.", no_init)
-    .add_property("convergence_threshold", &EMTrainerIVectorBase::getConvergenceThreshold, &EMTrainerIVectorBase::setConvergenceThreshold, "Convergence threshold")
-    .add_property("max_iterations", &EMTrainerIVectorBase::getMaxIterations, &EMTrainerIVectorBase::setMaxIterations, "Max iterations")
-    .add_property("compute_likelihood_variable", &EMTrainerIVectorBase::getComputeLikelihood, &EMTrainerIVectorBase::setComputeLikelihood, "Indicates whether the log likelihood should be computed during EM or not")
-    .add_property("rng", &ITB_getRng, &ITB_setRng, "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.")
-    .def("train", &py_train, (arg("machine"), arg("data")), "Trains a machine using data")
-    .def("initialize", &py_initialize, (arg("machine"), arg("data")), "This method is called before the EM algorithm")
-    .def("finalize", &py_finalize, (arg("machine"), arg("data")), "This method is called at the end of the EM algorithm")
-    .def("e_step", &py_eStep, (arg("machine"), arg("data")),
-       "Updates the hidden variable distribution (or the sufficient statistics) given the Machine parameters. ")
-    .def("m_step", &py_mStep, (arg("machine"), arg("data")), "Updates the Machine parameters given the hidden variable distribution (or the sufficient statistics)")
-    .def("compute_likelihood", &EMTrainerIVectorBase::computeLikelihood, (arg("machine")), "Computes the current log likelihood given the hidden variable distribution (or the sufficient statistics)")
-  ;
-
-
-  class_<bob::learn::misc::IVectorTrainer, boost::shared_ptr<bob::learn::misc::IVectorTrainer>, boost::noncopyable, bases<EMTrainerIVectorBase> >("IVectorTrainer", "An trainer to extract i-vector (i.e. for training the Total Variability matrix)\n\nReferences:\n[1] 'Front End Factor Analysis for Speaker Verification', N. Dehak, P. Kenny, R. Dehak, P. Dumouchel, P. Ouellet, IEEE Transactions on Audio, Speech and Language Processing, 2010, vol. 19, issue 4, pp. 788-798", init<optional<bool, double, size_t, bool> >((arg("self"), arg("update_sigma")=false, arg("convergence_threshold")=0.001, arg("max_iterations")=10, arg("compute_likelihood")=false), "Builds a new IVectorTrainer."))
-    .def(init<const bob::learn::misc::IVectorTrainer&>((arg("self"), arg("trainer")), "Copy constructs an IVectorTrainer"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::IVectorTrainer::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this IVectorTrainer with the 'other' one to be approximately the same.")
-    .add_property("acc_nij_wij2", make_function(&bob::learn::misc::IVectorTrainer::getAccNijWij2, return_value_policy<copy_const_reference>()), &py_set_AccNijWij2, "Accumulator updated during the E-step")
-    .add_property("acc_fnormij_wij", make_function(&bob::learn::misc::IVectorTrainer::getAccFnormijWij, return_value_policy<copy_const_reference>()), &py_set_AccFnormijWij, "Accumulator updated during the E-step")
-    .add_property("acc_nij", make_function(&bob::learn::misc::IVectorTrainer::getAccNij, return_value_policy<copy_const_reference>()), &py_set_AccNij, "Accumulator updated during the E-step")
-    .add_property("acc_snormij", make_function(&bob::learn::misc::IVectorTrainer::getAccSnormij, return_value_policy<copy_const_reference>()), &py_set_AccSnormij, "Accumulator updated during the E-step")
-  ;
-}
diff --git a/bob/learn/misc/old/jfa.cc b/bob/learn/misc/old/jfa.cc
deleted file mode 100644
index b5cc24a..0000000
--- a/bob/learn/misc/old/jfa.cc
+++ /dev/null
@@ -1,321 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Sat Jul 23 21:41:15 2011 +0200
- *
- * @brief Python bindings for the FA-related machines
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
-#include <bob.io.base/api.h>
-
-#include "ndarray.h"
-
-#include <bob.learn.misc/JFAMachine.h>
-#include <bob.learn.misc/GMMMachine.h>
-
-using namespace boost::python;
-
-static void py_jfa_setU(bob::learn::misc::JFABase& machine,
-  bob::python::const_ndarray U)
-{
-  machine.setU(U.bz<double,2>());
-}
-
-static void py_jfa_setV(bob::learn::misc::JFABase& machine,
-  bob::python::const_ndarray V)
-{
-  machine.setV(V.bz<double,2>());
-}
-
-static void py_jfa_setD(bob::learn::misc::JFABase& machine,
-  bob::python::const_ndarray D)
-{
-  machine.setD(D.bz<double,1>());
-}
-
-static void py_jfa_setY(bob::learn::misc::JFAMachine& machine, bob::python::const_ndarray Y) {
-  const blitz::Array<double,1>& Y_ = Y.bz<double,1>();
-  machine.setY(Y_);
-}
-
-static void py_jfa_setZ(bob::learn::misc::JFAMachine& machine, bob::python::const_ndarray Z) {
-  const blitz::Array<double,1> Z_ = Z.bz<double,1>();
-  machine.setZ(Z_);
-}
-
-static void py_jfa_estimateX(bob::learn::misc::JFAMachine& machine,
-  const bob::learn::misc::GMMStats& gmm_stats, bob::python::ndarray x)
-{
-  blitz::Array<double,1> x_ = x.bz<double,1>();
-  machine.estimateX(gmm_stats, x_);
-}
-
-static void py_jfa_estimateUx(bob::learn::misc::JFAMachine& machine,
-  const bob::learn::misc::GMMStats& gmm_stats, bob::python::ndarray ux)
-{
-  blitz::Array<double,1> ux_ = ux.bz<double,1>();
-  machine.estimateUx(gmm_stats, ux_);
-}
-
-static double py_jfa_forwardUx(bob::learn::misc::JFAMachine& machine,
-  const bob::learn::misc::GMMStats& gmm_stats, bob::python::const_ndarray ux)
-{
-  double score;
-  machine.forward(gmm_stats, ux.bz<double,1>(), score);
-  return score;
-}
-
-
-static void py_isv_setU(bob::learn::misc::ISVBase& machine,
-  bob::python::const_ndarray U)
-{
-  machine.setU(U.bz<double,2>());
-}
-
-static void py_isv_setD(bob::learn::misc::ISVBase& machine,
-  bob::python::const_ndarray D)
-{
-  machine.setD(D.bz<double,1>());
-}
-
-static void py_isv_setZ(bob::learn::misc::ISVMachine& machine, bob::python::const_ndarray Z) {
-  machine.setZ(Z.bz<double,1>());
-}
-
-static void py_isv_estimateX(bob::learn::misc::ISVMachine& machine,
-  const bob::learn::misc::GMMStats& gmm_stats, bob::python::ndarray x)
-{
-  blitz::Array<double,1> x_ = x.bz<double,1>();
-  machine.estimateX(gmm_stats, x_);
-}
-
-static void py_isv_estimateUx(bob::learn::misc::ISVMachine& machine,
-  const bob::learn::misc::GMMStats& gmm_stats, bob::python::ndarray ux)
-{
-  blitz::Array<double,1> ux_ = ux.bz<double,1>();
-  machine.estimateUx(gmm_stats, ux_);
-}
-
-static double py_isv_forwardUx(bob::learn::misc::ISVMachine& machine,
-  const bob::learn::misc::GMMStats& gmm_stats, bob::python::const_ndarray ux)
-{
-  double score;
-  machine.forward(gmm_stats, ux.bz<double,1>(), score);
-  return score;
-}
-
-
-static double py_gen1_forward(const bob::learn::misc::Machine<bob::learn::misc::GMMStats, double>& m,
-  const bob::learn::misc::GMMStats& stats)
-{
-  double output;
-  m.forward(stats, output);
-  return output;
-}
-
-static double py_gen1_forward_(const bob::learn::misc::Machine<bob::learn::misc::GMMStats, double>& m,
-  const bob::learn::misc::GMMStats& stats)
-{
-  double output;
-  m.forward_(stats, output);
-  return output;
-}
-
-static void py_gen2b_forward(const bob::learn::misc::Machine<bob::learn::misc::GMMStats, blitz::Array<double,1> >& m,
-  const bob::learn::misc::GMMStats& stats, bob::python::const_ndarray output)
-{
-  blitz::Array<double,1> output_ = output.bz<double,1>();
-  m.forward(stats, output_);
-}
-
-static void py_gen2b_forward_(const bob::learn::misc::Machine<bob::learn::misc::GMMStats, blitz::Array<double,1> >& m,
-  const bob::learn::misc::GMMStats& stats, bob::python::const_ndarray output)
-{
-  blitz::Array<double,1> output_ = output.bz<double,1>();
-  m.forward_(stats, output_);
-}
-
-
-static boost::shared_ptr<bob::learn::misc::JFABase> jb_init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::JFABase>(new bob::learn::misc::JFABase(*hdf5->f));
-}
-
-static void jb_load(bob::learn::misc::JFABase& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void jb_save(const bob::learn::misc::JFABase& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-
-static boost::shared_ptr<bob::learn::misc::JFAMachine> jm_init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::JFAMachine>(new bob::learn::misc::JFAMachine(*hdf5->f));
-}
-
-static void jm_load(bob::learn::misc::JFAMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void jm_save(const bob::learn::misc::JFAMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-
-static boost::shared_ptr<bob::learn::misc::ISVBase> ib_init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::ISVBase>(new bob::learn::misc::ISVBase(*hdf5->f));
-}
-
-static void ib_load(bob::learn::misc::ISVBase& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void ib_save(const bob::learn::misc::ISVBase& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-
-static boost::shared_ptr<bob::learn::misc::ISVMachine> im_init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::ISVMachine>(new bob::learn::misc::ISVMachine(*hdf5->f));
-}
-
-static void im_load(bob::learn::misc::ISVMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void im_save(const bob::learn::misc::ISVMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-void bind_machine_jfa()
-{
-  class_<bob::learn::misc::Machine<bob::learn::misc::GMMStats, double>, boost::noncopyable>("MachineGMMStatsScalarBase",
-      "Root class for all Machine<bob::learn::misc::GMMStats, double>", no_init)
-    .def("__call__", &py_gen1_forward_, (arg("self"), arg("input")), "Executes the machine on the GMMStats, and returns the (scalar) output. NO CHECK is performed.")
-    .def("forward", &py_gen1_forward, (arg("self"), arg("input")), "Executes the machine on the GMMStats, and returns the (scalar) output.")
-    .def("forward_", &py_gen1_forward_, (arg("self"), arg("input")), "Executes the machine on the GMMStats, and returns the (scalar) output. NO CHECK is performed.")
-  ;
-
-  class_<bob::learn::misc::Machine<bob::learn::misc::GMMStats, blitz::Array<double,1> >, boost::noncopyable>("MachineGMMStatsA1DBase",
-      "Root class for all Machine<bob::learn::misc::GMMStats, blitz::Array<double,1>", no_init)
-    .def("__call__", &py_gen2b_forward_, (arg("self"), arg("input"), arg("output")), "Executes the machine on the GMMStats, and returns the (scalar) output. NO CHECK is performed.")
-    .def("forward", &py_gen2b_forward, (arg("self"), arg("input"), arg("output")), "Executes the machine on the GMMStats, and returns the (scalar) output.")
-    .def("forward_", &py_gen2b_forward_, (arg("self"), arg("input"), arg("output")), "Executes the machine on the GMMStats, and returns the (scalar) output. NO CHECK is performed.")
-  ;
-
-
-  class_<bob::learn::misc::JFABase, boost::shared_ptr<bob::learn::misc::JFABase>, bases<bob::learn::misc::Machine<bob::learn::misc::GMMStats, double> > >("JFABase", "A JFABase instance can be seen as a container for U, V and D when performing Joint Factor Analysis (JFA).\n\nReferences:\n[1] 'Explicit Modelling of Session Variability for Speaker Verification', R. Vogt, S. Sridharan, Computer Speech & Language, 2008, vol. 22, no. 1, pp. 17-38\n[2] 'Session Variability Modelling for Face Authentication', C. McCool, R. Wallace, M. McLaren, L. El Shafey, S. Marcel, IET Biometrics, 2013", no_init)
-    .def("__init__", boost::python::make_constructor(&jb_init), "Constructs a new JFABaseMachine from a configuration file.")
-    .def(init<const boost::shared_ptr<bob::learn::misc::GMMMachine>, optional<const size_t, const size_t> >((arg("self"), arg("ubm"), arg("ru")=1, arg("rv")=1), "Builds a new JFABase."))
-    .def(init<>((arg("self")), "Constructs a 1x1 JFABase instance. You have to set a UBM GMM and resize the U, V and D subspaces afterwards."))
-    .def(init<const bob::learn::misc::JFABase&>((arg("self"), arg("machine")), "Copy constructs a JFABase"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::JFABase::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this JFABase with the 'other' one to be approximately the same.")
-    .def("load", &jb_load, (arg("self"), arg("config")), "Loads the configuration parameters from a configuration file.")
-    .def("save", &jb_save, (arg("self"), arg("config")), "Saves the configuration parameters to a configuration file.")
-    .def("resize", &bob::learn::misc::JFABase::resize, (arg("self"), arg("ru"), arg("rv")), "Reset the dimensionality of the subspaces U and V.")
-    .add_property("ubm", &bob::learn::misc::JFABase::getUbm, &bob::learn::misc::JFABase::setUbm, "The UBM GMM attached to this Joint Factor Analysis model")
-    .add_property("u", make_function(&bob::learn::misc::JFABase::getU, return_value_policy<copy_const_reference>()), &py_jfa_setU, "The subspace U for within-class variations")
-    .add_property("v", make_function(&bob::learn::misc::JFABase::getV, return_value_policy<copy_const_reference>()), &py_jfa_setV, "The subspace V for between-class variations")
-    .add_property("d", make_function(&bob::learn::misc::JFABase::getD, return_value_policy<copy_const_reference>()), &py_jfa_setD, "The subspace D for residual variations")
-    .add_property("dim_c", &bob::learn::misc::JFABase::getDimC, "The number of Gaussian components")
-    .add_property("dim_d", &bob::learn::misc::JFABase::getDimD, "The dimensionality of the feature space")
-    .add_property("dim_cd", &bob::learn::misc::JFABase::getDimCD, "The dimensionality of the supervector space")
-    .add_property("dim_ru", &bob::learn::misc::JFABase::getDimRu, "The dimensionality of the within-class variations subspace (rank of U)")
-    .add_property("dim_rv", &bob::learn::misc::JFABase::getDimRv, "The dimensionality of the between-class variations subspace (rank of V)")
-  ;
-
-  class_<bob::learn::misc::JFAMachine, boost::shared_ptr<bob::learn::misc::JFAMachine>, bases<bob::learn::misc::Machine<bob::learn::misc::GMMStats, double> > >("JFAMachine", "A JFAMachine. An attached JFABase should be provided for Joint Factor Analysis. The JFAMachine carries information about the speaker factors y and z, whereas a JFABase carries information about the matrices U, V and D.\n\nReferences:\n[1] 'Explicit Modelling of Session Variability for Speaker Verification', R. Vogt, S. Sridharan, Computer Speech & Language, 2008, vol. 22, no. 1, pp. 17-38\n[2] 'Session Variability Modelling for Face Authentication', C. McCool, R. Wallace, M. McLaren, L. El Shafey, S. Marcel, IET Biometrics, 2013", no_init)
-    .def("__init__", boost::python::make_constructor(&jm_init), "Constructs a new JFAMachine from a configuration file.")
-    .def(init<>((arg("self")), "Constructs a 1x1 JFAMachine instance. You have to set a JFABase afterwards."))
-    .def(init<const boost::shared_ptr<bob::learn::misc::JFABase> >((arg("self"), arg("jfa_base")), "Builds a new JFAMachine."))
-    .def(init<const bob::learn::misc::JFAMachine&>((arg("self"), arg("machine")), "Copy constructs a JFAMachine"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::JFAMachine::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this JFABase with the 'other' one to be approximately the same.")
-    .def("load", &jm_load, (arg("self"), arg("config")), "Loads the configuration parameters from a configuration file.")
-    .def("save", &jm_save, (arg("self"), arg("config")), "Saves the configuration parameters to a configuration file.")
-    .def("estimate_x", &py_jfa_estimateX, (arg("self"), arg("stats"), arg("x")), "Estimates the session offset x (LPT assumption) given GMM statistics.")
-    .def("estimate_ux", &py_jfa_estimateUx, (arg("self"), arg("stats"), arg("ux")), "Estimates Ux (LPT assumption) given GMM statistics.")
-    .def("forward_ux", &py_jfa_forwardUx, (arg("self"), arg("stats"), arg("ux")), "Processes the GMM statistics and Ux to return a score.")
-    .add_property("jfa_base", &bob::learn::misc::JFAMachine::getJFABase, &bob::learn::misc::JFAMachine::setJFABase, "The JFABase attached to this machine")
-    .add_property("__x__", make_function(&bob::learn::misc::JFAMachine::getX, return_value_policy<copy_const_reference>()), "The latent variable x (last one computed). This is a feature provided for convenience, but this attribute is not 'part' of the machine. The session latent variable x is indeed not class-specific, but depends on the sample considered. Furthermore, it is not saved into the machine or used when comparing machines.")
-    .add_property("y", make_function(&bob::learn::misc::JFAMachine::getY, return_value_policy<copy_const_reference>()), &py_jfa_setY, "The latent variable y of this machine")
-    .add_property("z", make_function(&bob::learn::misc::JFAMachine::getZ, return_value_policy<copy_const_reference>()), &py_jfa_setZ, "The latent variable z of this machine")
-    .add_property("dim_c", &bob::learn::misc::JFAMachine::getDimC, "The number of Gaussian components")
-    .add_property("dim_d", &bob::learn::misc::JFAMachine::getDimD, "The dimensionality of the feature space")
-    .add_property("dim_cd", &bob::learn::misc::JFAMachine::getDimCD, "The dimensionality of the supervector space")
-    .add_property("dim_ru", &bob::learn::misc::JFAMachine::getDimRu, "The dimensionality of the within-class variations subspace (rank of U)")
-    .add_property("dim_rv", &bob::learn::misc::JFAMachine::getDimRv, "The dimensionality of the between-class variations subspace (rank of V)")
-  ;
-
-  class_<bob::learn::misc::ISVBase, boost::shared_ptr<bob::learn::misc::ISVBase>, bases<bob::learn::misc::Machine<bob::learn::misc::GMMStats, double> > >("ISVBase", "An ISVBase instance can be seen as a container for U and D when performing Joint Factor Analysis (ISV). \n\nReferences:\n[1] 'Explicit Modelling of Session Variability for Speaker Verification', R. Vogt, S. Sridharan, Computer Speech & Language, 2008, vol. 22, no. 1, pp. 17-38\n[2] 'Session Variability Modelling for Face Authentication', C. McCool, R. Wallace, M. McLaren, L. El Shafey, S. Marcel, IET Biometrics, 2013", no_init)
-    .def("__init__", boost::python::make_constructor(&ib_init), "Constructs a new ISVBaseMachine from a configuration file.")
-    .def(init<const boost::shared_ptr<bob::learn::misc::GMMMachine>, optional<const size_t> >((arg("self"), arg("ubm"), arg("ru")=1), "Builds a new ISVBase."))
-    .def(init<>((arg("self")), "Constructs a 1 ISVBase instance. You have to set a UBM GMM and resize the U and D subspaces afterwards."))
-    .def(init<const bob::learn::misc::ISVBase&>((arg("self"), arg("machine")), "Copy constructs an ISVBase"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::ISVBase::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this ISVBase with the 'other' one to be approximately the same.")
-    .def("load", &ib_load, (arg("self"), arg("config")), "Loads the configuration parameters from a configuration file.")
-    .def("save", &ib_save, (arg("self"), arg("config")), "Saves the configuration parameters to a configuration file.")
-    .def("resize", &bob::learn::misc::ISVBase::resize, (arg("self"), arg("ru")), "Reset the dimensionality of the subspaces U.")
-    .add_property("ubm", &bob::learn::misc::ISVBase::getUbm, &bob::learn::misc::ISVBase::setUbm, "The UBM GMM attached to this Joint Factor Analysis model")
-    .add_property("u", make_function(&bob::learn::misc::ISVBase::getU, return_value_policy<copy_const_reference>()), &py_isv_setU, "The subspace U for within-class variations")
-    .add_property("d", make_function(&bob::learn::misc::ISVBase::getD, return_value_policy<copy_const_reference>()), &py_isv_setD, "The subspace D for residual variations")
-    .add_property("dim_c", &bob::learn::misc::ISVBase::getDimC, "The number of Gaussian components")
-    .add_property("dim_d", &bob::learn::misc::ISVBase::getDimD, "The dimensionality of the feature space")
-    .add_property("dim_cd", &bob::learn::misc::ISVBase::getDimCD, "The dimensionality of the supervector space")
-    .add_property("dim_ru", &bob::learn::misc::ISVBase::getDimRu, "The dimensionality of the within-class variations subspace (rank of U)")
-  ;
-
-  class_<bob::learn::misc::ISVMachine, boost::shared_ptr<bob::learn::misc::ISVMachine>, bases<bob::learn::misc::Machine<bob::learn::misc::GMMStats, double> > >("ISVMachine", "An ISVMachine. An attached ISVBase should be provided for Inter-session Variability Modelling. The ISVMachine carries information about the speaker factors z, whereas a ISVBase carries information about the matrices U and D. \n\nReferences:\n[1] 'Explicit Modelling of Session Variability for Speaker Verification', R. Vogt, S. Sridharan, Computer Speech & Language, 2008, vol. 22, no. 1, pp. 17-38\n[2] 'Session Variability Modelling for Face Authentication', C. McCool, R. Wallace, M. McLaren, L. El Shafey, S. Marcel, IET Biometrics, 2013", no_init)
-    .def("__init__", boost::python::make_constructor(&im_init), "Constructs a new ISVMachine from a configuration file.")
-    .def(init<>((arg("self")), "Constructs a 1 ISVMachine instance. You have to set a ISVBase afterwards."))
-    .def(init<const boost::shared_ptr<bob::learn::misc::ISVBase> >((arg("self"), arg("isv_base")), "Builds a new ISVMachine."))
-    .def(init<const bob::learn::misc::ISVMachine&>((arg("self"), arg("machine")), "Copy constructs an ISVMachine"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::ISVMachine::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this ISVBase with the 'other' one to be approximately the same.")
-    .def("load", &im_load, (arg("self"), arg("config")), "Loads the configuration parameters from a configuration file.")
-    .def("save", &im_save, (arg("self"), arg("config")), "Saves the configuration parameters to a configuration file.")
-    .def("estimate_x", &py_isv_estimateX, (arg("self"), arg("stats"), arg("x")), "Estimates the session offset x (LPT assumption) given GMM statistics.")
-    .def("estimate_ux", &py_isv_estimateUx, (arg("self"), arg("stats"), arg("ux")), "Estimates Ux (LPT assumption) given GMM statistics.")
-    .def("forward_ux", &py_isv_forwardUx, (arg("self"), arg("stats"), arg("ux")), "Processes the GMM statistics and Ux to return a score.")
-    .add_property("isv_base", &bob::learn::misc::ISVMachine::getISVBase, &bob::learn::misc::ISVMachine::setISVBase, "The ISVBase attached to this machine")
-    .add_property("__x__", make_function(&bob::learn::misc::ISVMachine::getX, return_value_policy<copy_const_reference>()), "The latent variable x (last one computed). This is a feature provided for convenience, but this attribute is not 'part' of the machine. The session latent variable x is indeed not class-specific, but depends on the sample considered. Furthermore, it is not saved into the machine or used when comparing machines.")
-    .add_property("z", make_function(&bob::learn::misc::ISVMachine::getZ, return_value_policy<copy_const_reference>()), &py_isv_setZ, "The latent variable z of this machine")
-    .add_property("dim_c", &bob::learn::misc::ISVMachine::getDimC, "The number of Gaussian components")
-    .add_property("dim_d", &bob::learn::misc::ISVMachine::getDimD, "The dimensionality of the feature space")
-    .add_property("dim_cd", &bob::learn::misc::ISVMachine::getDimCD, "The dimensionality of the supervector space")
-    .add_property("dim_ru", &bob::learn::misc::ISVMachine::getDimRu, "The dimensionality of the within-class variations subspace (rank of U)")
-  ;
-}
diff --git a/bob/learn/misc/old/jfa_trainer.cc b/bob/learn/misc/old/jfa_trainer.cc
deleted file mode 100644
index 542c33a..0000000
--- a/bob/learn/misc/old/jfa_trainer.cc
+++ /dev/null
@@ -1,392 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Tue Jul 19 12:16:17 2011 +0200
- *
- * @brief Python bindings to Joint Factor Analysis trainers
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-#include <boost/python/stl_iterator.hpp>
-#include <bob.learn.misc/JFATrainer.h>
-
-using namespace boost::python;
-
-template <int N>
-static object vector_as_list(const std::vector<blitz::Array<double,N> >& vec)
-{
-  list retval;
-  for(size_t k=0; k<vec.size(); ++k)
-    retval.append(vec[k]);
-  return tuple(retval);
-}
-
-static void extract_GMMStats(object data,
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > >& training_data)
-{
-  stl_input_iterator<object> dbegin(data), dend;
-  std::vector<object> vvdata(dbegin, dend);
-  for (size_t i=0; i<vvdata.size(); ++i)
-  {
-    stl_input_iterator<boost::shared_ptr<bob::learn::misc::GMMStats> > dlbegin(vvdata[i]), dlend;
-    training_data.push_back(std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> >(dlbegin, dlend));
-  }
-}
-
-static void isv_train(bob::learn::misc::ISVTrainer& t, bob::learn::misc::ISVBase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the train function
-  t.train(m, training_data);
-}
-
-static void isv_initialize(bob::learn::misc::ISVTrainer& t, bob::learn::misc::ISVBase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the initialize function
-  t.initialize(m, training_data);
-}
-
-static void isv_estep(bob::learn::misc::ISVTrainer& t, bob::learn::misc::ISVBase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the E-Step function
-  t.eStep(m, training_data);
-}
-
-static void isv_mstep(bob::learn::misc::ISVTrainer& t, bob::learn::misc::ISVBase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the M-Step function
-  t.mStep(m, training_data);
-}
-
-static void isv_finalize(bob::learn::misc::ISVTrainer& t, bob::learn::misc::ISVBase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the finalization function
-  t.finalize(m, training_data);
-}
-
-static void isv_enrol(bob::learn::misc::ISVTrainer& t, bob::learn::misc::ISVMachine& m, object data, const size_t n_iter)
-{
-  stl_input_iterator<boost::shared_ptr<bob::learn::misc::GMMStats> > dlbegin(data), dlend;
-  std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > vdata(dlbegin, dlend);
-  // Calls the enrol function
-  t.enrol(m, vdata, n_iter);
-}
-
-static object isv_get_x(const bob::learn::misc::ISVTrainer& t)
-{
-  return vector_as_list(t.getX());
-}
-
-static object isv_get_z(const bob::learn::misc::ISVTrainer& t)
-{
-  return vector_as_list(t.getZ());
-}
-
-static void isv_set_x(bob::learn::misc::ISVTrainer& t, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> vdata(data), dend;
-  std::vector<blitz::Array<double,2> > vdata_ref;
-  vdata_ref.reserve(len(data));
-  for (; vdata != dend; ++vdata) vdata_ref.push_back((*vdata).bz<double,2>());
-  t.setX(vdata_ref);
-}
-
-static void isv_set_z(bob::learn::misc::ISVTrainer& t, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> vdata(data), dend;
-  std::vector<blitz::Array<double,1> > vdata_ref;
-  vdata_ref.reserve(len(data));
-  for (; vdata != dend; ++vdata) vdata_ref.push_back((*vdata).bz<double,1>());
-  t.setZ(vdata_ref);
-}
-
-
-static void isv_set_accUA1(bob::learn::misc::ISVTrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccUA1(acc.bz<double,3>());
-}
-
-static void isv_set_accUA2(bob::learn::misc::ISVTrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccUA2(acc.bz<double,2>());
-}
-
-
-
-static void jfa_train(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the train function
-  t.train(m, training_data);
-}
-
-static void jfa_initialize(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the initialize function
-  t.initialize(m, training_data);
-}
-
-static void jfa_estep1(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the E-Step function
-  t.eStep1(m, training_data);
-}
-
-static void jfa_mstep1(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the M-Step function
-  t.mStep1(m, training_data);
-}
-
-static void jfa_finalize1(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the finalization function
-  t.finalize1(m, training_data);
-}
-
-static void jfa_estep2(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the E-Step function
-  t.eStep2(m, training_data);
-}
-
-static void jfa_mstep2(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the M-Step function
-  t.mStep2(m, training_data);
-}
-
-static void jfa_finalize2(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the finalization function
-  t.finalize2(m, training_data);
-}
-
-static void jfa_estep3(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the E-Step function
-  t.eStep3(m, training_data);
-}
-
-static void jfa_mstep3(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the M-Step function
-  t.mStep3(m, training_data);
-}
-
-static void jfa_finalize3(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the finalization function
-  t.finalize3(m, training_data);
-}
-
-static void jfa_train_loop(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFABase& m, object data)
-{
-  std::vector<std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > > training_data;
-  extract_GMMStats(data, training_data);
-  // Calls the main loop function
-  t.train_loop(m, training_data);
-}
-
-static void jfa_enrol(bob::learn::misc::JFATrainer& t, bob::learn::misc::JFAMachine& m, object data, const size_t n_iter)
-{
-  stl_input_iterator<boost::shared_ptr<bob::learn::misc::GMMStats> > dlbegin(data), dlend;
-  std::vector<boost::shared_ptr<bob::learn::misc::GMMStats> > vdata(dlbegin, dlend);
-  // Calls the enrol function
-  t.enrol(m, vdata, n_iter);
-}
-
-static object jfa_get_x(const bob::learn::misc::JFATrainer& t)
-{
-  return vector_as_list(t.getX());
-}
-
-static object jfa_get_y(const bob::learn::misc::JFATrainer& t)
-{
-  return vector_as_list(t.getY());
-}
-
-static object jfa_get_z(const bob::learn::misc::JFATrainer& t)
-{
-  return vector_as_list(t.getZ());
-}
-
-static void jfa_set_x(bob::learn::misc::JFATrainer& t, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> vdata(data), dend;
-  std::vector<blitz::Array<double,2> > vdata_ref;
-  vdata_ref.reserve(len(data));
-  for (; vdata != dend; ++vdata) vdata_ref.push_back((*vdata).bz<double,2>());
-  t.setX(vdata_ref);
-}
-
-static void jfa_set_y(bob::learn::misc::JFATrainer& t, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> vdata(data), dend;
-  std::vector<blitz::Array<double,1> > vdata_ref;
-  vdata_ref.reserve(len(data));
-  for (; vdata != dend; ++vdata) vdata_ref.push_back((*vdata).bz<double,1>());
-  t.setY(vdata_ref);
-}
-
-static void jfa_set_z(bob::learn::misc::JFATrainer& t, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> vdata(data), dend;
-  std::vector<blitz::Array<double,1> > vdata_ref;
-  vdata_ref.reserve(len(data));
-  for (; vdata != dend; ++vdata) vdata_ref.push_back((*vdata).bz<double,1>());
-  t.setZ(vdata_ref);
-}
-
-
-static void jfa_set_accUA1(bob::learn::misc::JFATrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccUA1(acc.bz<double,3>());
-}
-
-static void jfa_set_accUA2(bob::learn::misc::JFATrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccUA2(acc.bz<double,2>());
-}
-
-static void jfa_set_accVA1(bob::learn::misc::JFATrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccVA1(acc.bz<double,3>());
-}
-
-static void jfa_set_accVA2(bob::learn::misc::JFATrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccVA2(acc.bz<double,2>());
-}
-
-static void jfa_set_accDA1(bob::learn::misc::JFATrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccDA1(acc.bz<double,1>());
-}
-
-static void jfa_set_accDA2(bob::learn::misc::JFATrainer& trainer,
-  bob::python::const_ndarray acc)
-{
-  trainer.setAccDA2(acc.bz<double,1>());
-}
-
-
-
-// include the random API of bob.core
-#include <bob.core/random_api.h>
-static boost::python::object isv_getRng(bob::learn::misc::ISVTrainer& self){
-  // create new object
-  PyObject* o = PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type,0);
-  reinterpret_cast<PyBoostMt19937Object*>(o)->rng = self.getRng().get();
-  return boost::python::object(boost::python::handle<>(boost::python::borrowed(o)));
-}
-static boost::python::object jfa_getRng(bob::learn::misc::JFATrainer& self){
-  // create new object
-  PyObject* o = PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type,0);
-  reinterpret_cast<PyBoostMt19937Object*>(o)->rng = self.getRng().get();
-  return boost::python::object(boost::python::handle<>(boost::python::borrowed(o)));
-}
-
-#include <boost/make_shared.hpp>
-static void isv_setRng(bob::learn::misc::ISVTrainer& self, boost::python::object rng){
-  if (!PyBoostMt19937_Check(rng.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.core.random.mt19937 object");
-  PyBoostMt19937Object* o = reinterpret_cast<PyBoostMt19937Object*>(rng.ptr());
-  self.setRng(boost::make_shared<boost::mt19937>(*o->rng));
-}
-static void jfa_setRng(bob::learn::misc::JFATrainer& self, boost::python::object rng){
-  if (!PyBoostMt19937_Check(rng.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.core.random.mt19937 object");
-  PyBoostMt19937Object* o = reinterpret_cast<PyBoostMt19937Object*>(rng.ptr());
-  self.setRng(boost::make_shared<boost::mt19937>(*o->rng));
-}
-
-
-void bind_trainer_jfa()
-{
-  class_<bob::learn::misc::ISVTrainer, boost::noncopyable >("ISVTrainer", "A trainer for Inter-session Variability Modelling (ISV). \n\nReferences:\n[1] 'Explicit Modelling of Session Variability for Speaker Verification', R. Vogt, S. Sridharan, Computer Speech & Language, 2008, vol. 22, no. 1, pp. 17-38\n[2] 'Session Variability Modelling for Face Authentication', C. McCool, R. Wallace, M. McLaren, L. El Shafey, S. Marcel, IET Biometrics, 2013", init<optional<const size_t, const double> >((arg("self"), arg("max_iterations")=10, arg("relevance_factor")=4.),"Initializes a new ISVTrainer."))
-    .def(init<const bob::learn::misc::ISVTrainer&>((arg("self"), arg("other")), "Copy constructs an ISVTrainer"))
-    .add_property("max_iterations", &bob::learn::misc::ISVTrainer::getMaxIterations, &bob::learn::misc::ISVTrainer::setMaxIterations, "Max iterations")
-    .add_property("rng", &isv_getRng, &isv_setRng, "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.")
-    .add_property("__X__", &isv_get_x, &isv_set_x)
-    .add_property("__Z__", &isv_get_z, &isv_set_z)
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::ISVTrainer::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this ISVTrainer with the 'other' one to be approximately the same.")
-    .def("train", &isv_train, (arg("self"), arg("isv_base"), arg("gmm_stats")), "Call the training procedure.")
-    .def("initialize", &isv_initialize, (arg("self"), arg("isv_base"), arg("gmm_stats")), "Call the initialization procedure.")
-    .def("e_step", &isv_estep, (arg("self"), arg("isv_base"), arg("gmm_stats")), "Call the e-step procedure.")
-    .def("m_step", &isv_mstep, (arg("self"), arg("isv_base"), arg("gmm_stats")), "Call the m-step procedure.")
-    .def("finalize", &isv_finalize, (arg("self"), arg("isv_base"), arg("gmm_stats")), "Call the finalization procedure.")
-    .def("enrol", &isv_enrol, (arg("self"), arg("isv_machine"), arg("gmm_stats"), arg("n_iter")), "Call the enrolment procedure.")
-    .add_property("acc_u_a1", make_function(&bob::learn::misc::ISVTrainer::getAccUA1, return_value_policy<copy_const_reference>()), &isv_set_accUA1, "Accumulator updated during the E-step")
-    .add_property("acc_u_a2", make_function(&bob::learn::misc::ISVTrainer::getAccUA2, return_value_policy<copy_const_reference>()), &isv_set_accUA2, "Accumulator updated during the E-step")
-  ;
-
-  class_<bob::learn::misc::JFATrainer, boost::noncopyable >("JFATrainer", "A trainer for Joint Factor Analysis (JFA).\n\nReferences:\n[1] 'Explicit Modelling of Session Variability for Speaker Verification', R. Vogt, S. Sridharan, Computer Speech & Language, 2008, vol. 22, no. 1, pp. 17-38\n[2] 'Session Variability Modelling for Face Authentication', C. McCool, R. Wallace, M. McLaren, L. El Shafey, S. Marcel, IET Biometrics, 2013", init<optional<const size_t> >((arg("self"), arg("max_iterations")=10),"Initializes a new JFATrainer."))
-    .def(init<const bob::learn::misc::JFATrainer&>((arg("self"), arg("other")), "Copy constructs an JFATrainer"))
-    .add_property("max_iterations", &bob::learn::misc::JFATrainer::getMaxIterations, &bob::learn::misc::JFATrainer::setMaxIterations, "Max iterations")
-    .add_property("rng", &jfa_getRng, &jfa_setRng, "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.")
-    .add_property("__X__", &jfa_get_x, &jfa_set_x)
-    .add_property("__Y__", &jfa_get_y, &jfa_set_y)
-    .add_property("__Z__", &jfa_get_z, &jfa_set_z)
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::JFATrainer::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this JFATrainer with the 'other' one to be approximately the same.")
-    .def("train", &jfa_train, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the training procedure.")
-    .def("initialize", &jfa_initialize, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the initialization procedure.")
-    .def("train_loop", &jfa_train_loop, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the training procedure (without the initialization). This will train the three subspaces U, V and d.")
-    .def("e_step1", &jfa_estep1, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 1st e-step procedure (for the V subspace).")
-    .def("m_step1", &jfa_mstep1, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 1st m-step procedure (for the V subspace).")
-    .def("finalize1", &jfa_finalize1, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 1st finalization procedure (for the V subspace).")
-    .def("e_step2", &jfa_estep2, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 2nd e-step procedure (for the U subspace).")
-    .def("m_step2", &jfa_mstep2, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 2nd m-step procedure (for the U subspace).")
-    .def("finalize2", &jfa_finalize2, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 2nd finalization procedure (for the U subspace).")
-    .def("e_step3", &jfa_estep3, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 3rd e-step procedure (for the d subspace).")
-    .def("m_step3", &jfa_mstep3, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 3rd m-step procedure (for the d subspace).")
-    .def("finalize3", &jfa_finalize3, (arg("self"), arg("jfa_base"), arg("gmm_stats")), "Call the 3rd finalization procedure (for the d subspace).")
-    .def("enrol", &jfa_enrol, (arg("self"), arg("jfa_machine"), arg("gmm_stats"), arg("n_iter")), "Call the enrolment procedure.")
-    .add_property("acc_v_a1", make_function(&bob::learn::misc::JFATrainer::getAccVA1, return_value_policy<copy_const_reference>()), &jfa_set_accVA1, "Accumulator updated during the E-step")
-    .add_property("acc_v_a2", make_function(&bob::learn::misc::JFATrainer::getAccVA2, return_value_policy<copy_const_reference>()), &jfa_set_accVA2, "Accumulator updated during the E-step")
-    .add_property("acc_u_a1", make_function(&bob::learn::misc::JFATrainer::getAccUA1, return_value_policy<copy_const_reference>()), &jfa_set_accUA1, "Accumulator updated during the E-step")
-    .add_property("acc_u_a2", make_function(&bob::learn::misc::JFATrainer::getAccUA2, return_value_policy<copy_const_reference>()), &jfa_set_accUA2, "Accumulator updated during the E-step")
-    .add_property("acc_d_a1", make_function(&bob::learn::misc::JFATrainer::getAccDA1, return_value_policy<copy_const_reference>()), &jfa_set_accDA1, "Accumulator updated during the E-step")
-    .add_property("acc_d_a2", make_function(&bob::learn::misc::JFATrainer::getAccDA2, return_value_policy<copy_const_reference>()), &jfa_set_accDA2, "Accumulator updated during the E-step")
-  ;
-}
diff --git a/bob/learn/misc/old/kmeans.cc b/bob/learn/misc/old/kmeans.cc
deleted file mode 100644
index 96c06ec..0000000
--- a/bob/learn/misc/old/kmeans.cc
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Tue Jul 26 15:11:33 2011 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
-#include <bob.io.base/api.h>
-
-#include "ndarray.h"
-
-#include <bob.learn.misc/KMeansMachine.h>
-
-using namespace boost::python;
-
-static tuple py_getVariancesAndWeightsForEachCluster(const bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray ar) {
-  size_t n_means = machine.getNMeans();
-  size_t n_inputs = machine.getNInputs();
-  bob::python::ndarray variances(bob::io::base::array::t_float64, n_means, n_inputs);
-  bob::python::ndarray weights(bob::io::base::array::t_float64, n_means);
-  blitz::Array<double,2> variances_ = variances.bz<double,2>();
-  blitz::Array<double,1> weights_ = weights.bz<double,1>();
-  machine.getVariancesAndWeightsForEachCluster(ar.bz<double,2>(), variances_, weights_);
-  return boost::python::make_tuple(variances.self(), weights.self());
-}
-
-static void py_getVariancesAndWeightsForEachClusterInit(const bob::learn::misc::KMeansMachine& machine, bob::python::ndarray variances, bob::python::ndarray weights) {
-  blitz::Array<double,2> variances_ = variances.bz<double,2>();
-  blitz::Array<double,1> weights_ = weights.bz<double,1>();
-  machine.getVariancesAndWeightsForEachClusterInit(variances_, weights_);
-}
-
-static void py_getVariancesAndWeightsForEachClusterAcc(const bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray ar, bob::python::ndarray variances, bob::python::ndarray weights) {
-  blitz::Array<double,2> variances_ = variances.bz<double,2>();
-  blitz::Array<double,1> weights_ = weights.bz<double,1>();
-  machine.getVariancesAndWeightsForEachClusterAcc(ar.bz<double,2>(), variances_, weights_);
-}
-
-static void py_getVariancesAndWeightsForEachClusterFin(const bob::learn::misc::KMeansMachine& machine, bob::python::ndarray variances, bob::python::ndarray weights) {
-  blitz::Array<double,2> variances_ = variances.bz<double,2>();
-  blitz::Array<double,1> weights_ = weights.bz<double,1>();
-  machine.getVariancesAndWeightsForEachClusterFin(variances_, weights_);
-}
-
-static object py_getMean(const bob::learn::misc::KMeansMachine& kMeansMachine, const size_t i) {
-  bob::python::ndarray mean(bob::io::base::array::t_float64, kMeansMachine.getNInputs());
-  blitz::Array<double,1> mean_ = mean.bz<double,1>();
-  kMeansMachine.getMean(i, mean_);
-  return mean.self();
-}
-
-static void py_setMean(bob::learn::misc::KMeansMachine& machine, const size_t i, bob::python::const_ndarray mean) {
-  machine.setMean(i, mean.bz<double,1>());
-}
-
-static void py_setMeans(bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray means) {
-  machine.setMeans(means.bz<double,2>());
-}
-
-static double py_getDistanceFromMean(const bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray x, const size_t i)
-{
-  return machine.getDistanceFromMean(x.bz<double,1>(), i);
-}
-
-static tuple py_getClosestMean(const bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray x)
-{
-  size_t closest_mean;
-  double min_distance;
-  machine.getClosestMean(x.bz<double,1>(), closest_mean, min_distance);
-  return boost::python::make_tuple(closest_mean, min_distance);
-}
-
-static double py_getMinDistance(const bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray input)
-{
-  return machine.getMinDistance(input.bz<double,1>());
-}
-
-static void py_setCacheMeans(bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray cache_means) {
-  machine.setCacheMeans(cache_means.bz<double,2>());
-}
-
-
-static boost::shared_ptr<bob::learn::misc::KMeansMachine> _init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::KMeansMachine>(new bob::learn::misc::KMeansMachine(*hdf5->f));
-}
-
-static void _load(bob::learn::misc::KMeansMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void _save(const bob::learn::misc::KMeansMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-void bind_machine_kmeans()
-{
-  class_<bob::learn::misc::KMeansMachine, boost::shared_ptr<bob::learn::misc::KMeansMachine>,
-         bases<bob::learn::misc::Machine<blitz::Array<double,1>, double> > >("KMeansMachine",
-      "This class implements a k-means classifier.\n"
-      "See Section 9.1 of Bishop, \"Pattern recognition and machine learning\", 2006",
-      init<>((arg("self"))))
-    .def("__init__", boost::python::make_constructor(&_init))
-    .def(init<const size_t, const size_t>((arg("self"), arg("n_means"), arg("n_inputs"))))
-    .def(init<bob::learn::misc::KMeansMachine&>((arg("self"), arg("other"))))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::KMeansMachine::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this KMeansMachine with the 'other' one to be approximately the same.")
-    .add_property("means", make_function(&bob::learn::misc::KMeansMachine::getMeans, return_value_policy<copy_const_reference>()), &py_setMeans, "The mean vectors")
-    .add_property("__cache_means__", make_function(&bob::learn::misc::KMeansMachine::getCacheMeans, return_value_policy<copy_const_reference>()), &py_setCacheMeans, "The cache mean vectors. This should only be used when parallelizing the get_variances_and_weights_for_each_cluster() method")
-    .add_property("dim_d", &bob::learn::misc::KMeansMachine::getNInputs, "Number of inputs")
-    .add_property("dim_c", &bob::learn::misc::KMeansMachine::getNMeans, "Number of means (k)")
-    .def("resize", &bob::learn::misc::KMeansMachine::resize, (arg("self"), arg("n_means"), arg("n_inputs")), "Resize the number of means and inputs")
-    .def("get_mean", &py_getMean, (arg("self"), arg("i")), "Get the i'th mean")
-    .def("set_mean", &py_setMean, (arg("self"), arg("i"), arg("mean")), "Set the i'th mean")
-    .def("get_distance_from_mean", &py_getDistanceFromMean, (arg("self"), arg("x"), arg("i")),
-        "Return the power of two of the square Euclidean distance of the sample, x, to the i'th mean")
-    .def("get_closest_mean", &py_getClosestMean, (arg("self"), arg("x")),
-        "Calculate the index of the mean that is closest (in terms of square Euclidean distance) to the data sample, x")
-    .def("get_min_distance", &py_getMinDistance, (arg("self"), arg("input")),
-        "Output the minimum square Euclidean distance between the input and one of the means")
-    .def("get_variances_and_weights_for_each_cluster", &py_getVariancesAndWeightsForEachCluster, (arg("self"), arg("data")),
-        "For each mean, find the subset of the samples that is closest to that mean, and calculate\n"
-        "1) the variance of that subset (the cluster variance)\n"
-        "2) the proportion of the samples represented by that subset (the cluster weight)")
-    .def("__get_variances_and_weights_for_each_cluster_init__", &py_getVariancesAndWeightsForEachClusterInit, (arg("self"), arg("variances"), arg("weights")),
-        "For the parallel version of get_variances_and_weights_for_each_cluster()\n"
-        "Initialization step")
-    .def("__get_variances_and_weights_for_each_cluster_acc__", &py_getVariancesAndWeightsForEachClusterAcc, (arg("self"), arg("data"), arg("variances"), arg("weights")),
-        "For the parallel version of get_variances_and_weights_for_each_cluster()\n"
-        "Accumulation step")
-    .def("__get_variances_and_weights_for_each_cluster_fin__", &py_getVariancesAndWeightsForEachClusterFin, (arg("self"), arg("variances"), arg("weights")),
-        "For the parallel version of get_variances_and_weights_for_each_cluster()\n"
-        "Finalization step")
-    .def("load", &_load, (arg("self"), arg("config")), "Load from a Configuration")
-    .def("save", &_save, (arg("self"), arg("config")), "Save to a Configuration")
-    .def(self_ns::str(self_ns::self))
-  ;
-}
diff --git a/bob/learn/misc/old/kmeans_trainer.cc b/bob/learn/misc/old/kmeans_trainer.cc
deleted file mode 100644
index 0b90db7..0000000
--- a/bob/learn/misc/old/kmeans_trainer.cc
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Thu Jun 9 18:12:33 2011 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-#include <bob.learn.misc/KMeansTrainer.h>
-
-using namespace boost::python;
-
-typedef bob::learn::misc::EMTrainer<bob::learn::misc::KMeansMachine, blitz::Array<double,2> > EMTrainerKMeansBase;
-
-static void py_setZeroethOrderStats(bob::learn::misc::KMeansTrainer& op, bob::python::const_ndarray stats) {
-  const bob::io::base::array::typeinfo& info = stats.type();
-  if(info.dtype != bob::io::base::array::t_float64 || info.nd != 1)
-    PYTHON_ERROR(TypeError, "cannot set array of type '%s'", info.str().c_str());
-  op.setZeroethOrderStats(stats.bz<double,1>());
-}
-
-static void py_setFirstOrderStats(bob::learn::misc::KMeansTrainer& op, bob::python::const_ndarray stats) {
-  const bob::io::base::array::typeinfo& info = stats.type();
-  if(info.dtype != bob::io::base::array::t_float64 || info.nd != 2)
-    PYTHON_ERROR(TypeError, "cannot set array of type '%s'", info.str().c_str());
-  op.setFirstOrderStats(stats.bz<double,2>());
-}
-
-static void py_train(EMTrainerKMeansBase& trainer,
-  bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.train(machine, sample.bz<double,2>());
-}
-
-static void py_initialize(EMTrainerKMeansBase& trainer,
-  bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.initialize(machine, sample.bz<double,2>());
-}
-
-static void py_finalize(EMTrainerKMeansBase& trainer,
-  bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.finalize(machine, sample.bz<double,2>());
-}
-
-static void py_eStep(EMTrainerKMeansBase& trainer,
-  bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.eStep(machine, sample.bz<double,2>());
-}
-
-static void py_mStep(EMTrainerKMeansBase& trainer,
-  bob::learn::misc::KMeansMachine& machine, bob::python::const_ndarray sample)
-{
-  trainer.mStep(machine, sample.bz<double,2>());
-}
-
-// include the random API of bob.core
-#include <bob.core/random_api.h>
-static boost::python::object KMTB_getRng(EMTrainerKMeansBase& self){
-  // create new object
-  PyObject* o = PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type,0);
-  reinterpret_cast<PyBoostMt19937Object*>(o)->rng = self.getRng().get();
-  return boost::python::object(boost::python::handle<>(boost::python::borrowed(o)));
-}
-static boost::python::object KMT_getRng(bob::learn::misc::KMeansTrainer& self){
-  // create new object
-  PyObject* o = PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type,0);
-  reinterpret_cast<PyBoostMt19937Object*>(o)->rng = self.getRng().get();
-  return boost::python::object(boost::python::handle<>(boost::python::borrowed(o)));
-}
-
-#include <boost/make_shared.hpp>
-static void KMTB_setRng(EMTrainerKMeansBase& self, boost::python::object rng){
-  if (!PyBoostMt19937_Check(rng.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.core.random.mt19937 object");
-  PyBoostMt19937Object* o = reinterpret_cast<PyBoostMt19937Object*>(rng.ptr());
-  self.setRng(boost::make_shared<boost::mt19937>(*o->rng));
-}
-static void KMT_setRng(bob::learn::misc::KMeansTrainer& self, boost::python::object rng){
-  if (!PyBoostMt19937_Check(rng.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.core.random.mt19937 object");
-  PyBoostMt19937Object* o = reinterpret_cast<PyBoostMt19937Object*>(rng.ptr());
-  self.setRng(boost::make_shared<boost::mt19937>(*o->rng));
-}
-
-
-void bind_trainer_kmeans()
-{
-  class_<EMTrainerKMeansBase, boost::noncopyable>("EMTrainerKMeans", "The base python class for all EM-based trainers.", no_init)
-    .add_property("convergence_threshold", &EMTrainerKMeansBase::getConvergenceThreshold, &EMTrainerKMeansBase::setConvergenceThreshold, "Convergence threshold")
-    .add_property("max_iterations", &EMTrainerKMeansBase::getMaxIterations, &EMTrainerKMeansBase::setMaxIterations, "Max iterations")
-    .add_property("compute_likelihood", &EMTrainerKMeansBase::getComputeLikelihood, &EMTrainerKMeansBase::setComputeLikelihood, "Tells whether we compute the average min (square Euclidean) distance or not.")
-    .add_property("rng", &KMTB_getRng, &KMTB_setRng, "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.")
-    .def(self == self)
-    .def(self != self)
-    .def("train", &py_train, (arg("self"), arg("machine"), arg("data")), "Train a machine using data")
-    .def("initialize", &py_initialize, (arg("machine"), arg("data")), "This method is called before the EM algorithm")
-    .def("e_step", &py_eStep, (arg("self"), arg("machine"), arg("data")),
-       "Update the hidden variable distribution (or the sufficient statistics) given the Machine parameters. "
-       "Also, calculate the average output of the Machine given these parameters.\n"
-       "Return the average output of the Machine across the dataset. "
-       "The EM algorithm will terminate once the change in average_output "
-       "is less than the convergence_threshold.")
-    .def("m_step", &py_mStep, (arg("self"), arg("machine"), arg("data")), "Update the Machine parameters given the hidden variable distribution (or the sufficient statistics)")
-    .def("compute_likelihood", &EMTrainerKMeansBase::computeLikelihood, (arg("self"), arg("machine")), "Returns the average min (square Euclidean) distance")
-    .def("finalize", &py_finalize, (arg("self"), arg("machine"), arg("data")), "This method is called after the EM algorithm")
-  ;
-
-  // Starts binding the KMeansTrainer
-  class_<bob::learn::misc::KMeansTrainer, boost::shared_ptr<bob::learn::misc::KMeansTrainer>, boost::noncopyable, bases<EMTrainerKMeansBase> > KMT("KMeansTrainer",
-      "Trains a KMeans machine.\n"
-      "This class implements the expectation-maximization algorithm for a k-means machine.\n"
-      "See Section 9.1 of Bishop, \"Pattern recognition and machine learning\", 2006\n"
-      "It uses a random initialization of the means followed by the expectation-maximization algorithm",
-      no_init
-      );
-
-  // Binds methods that does not have nested enum values as default parameters
-  KMT.def(self == self)
-     .def(self != self)
-     .add_property("initialization_method", &bob::learn::misc::KMeansTrainer::getInitializationMethod, &bob::learn::misc::KMeansTrainer::setInitializationMethod, "The initialization method to generate the initial means.")
-     .add_property("rng", &KMT_getRng, &KMT_setRng, "The Mersenne Twister mt19937 random generator used for the initialization of the means.")
-     .add_property("average_min_distance", &bob::learn::misc::KMeansTrainer::getAverageMinDistance, &bob::learn::misc::KMeansTrainer::setAverageMinDistance, "Average min (square Euclidean) distance. Useful to parallelize the E-step.")
-     .add_property("zeroeth_order_statistics", make_function(&bob::learn::misc::KMeansTrainer::getZeroethOrderStats, return_value_policy<copy_const_reference>()), &py_setZeroethOrderStats, "The zeroeth order statistics. Useful to parallelize the E-step.")
-     .add_property("first_order_statistics", make_function(&bob::learn::misc::KMeansTrainer::getFirstOrderStats, return_value_policy<copy_const_reference>()), &py_setFirstOrderStats, "The first order statistics. Useful to parallelize the E-step.")
-    ;
-
-  // Sets the scope to the one of the KMeansTrainer
-  scope s(KMT);
-
-  // Adds enum in the previously defined current scope
-  enum_<bob::learn::misc::KMeansTrainer::InitializationMethod>("initialization_method_type")
-    .value("RANDOM", bob::learn::misc::KMeansTrainer::RANDOM)
-    .value("RANDOM_NO_DUPLICATE", bob::learn::misc::KMeansTrainer::RANDOM_NO_DUPLICATE)
-#if BOOST_VERSION >= 104700
-    .value("KMEANS_PLUS_PLUS", bob::learn::misc::KMeansTrainer::KMEANS_PLUS_PLUS)
-#endif
-    .export_values()
-    ;
-
-  // Binds methods that has nested enum values as default parameters
-  KMT.def(init<optional<double,int,bool,bob::learn::misc::KMeansTrainer::InitializationMethod> >((arg("self"), arg("convergence_threshold")=0.001, arg("max_iterations")=10, arg("compute_likelihood")=true, arg("initialization_method")=bob::learn::misc::KMeansTrainer::RANDOM)));
-}
diff --git a/bob/learn/misc/old/linearscoring.cc b/bob/learn/misc/old/linearscoring.cc
deleted file mode 100644
index b614879..0000000
--- a/bob/learn/misc/old/linearscoring.cc
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @date Wed Jul 13 16:00:04 2011 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-
-#include <vector>
-#include <bob.learn.misc/LinearScoring.h>
-#include <boost/python/stl_iterator.hpp>
-
-using namespace boost::python;
-
-static void convertGMMMeanList(object models, std::vector<blitz::Array<double,1> >& models_c) {
-  stl_input_iterator<bob::python::const_ndarray> dbegin(models), dend;
-  std::vector<bob::python::const_ndarray> vmodels(dbegin, dend);
-
-  for(std::vector<bob::python::const_ndarray>::iterator it=vmodels.begin();
-      it!=vmodels.end(); ++it)
-    models_c.push_back(it->bz<double,1>());
-}
-
-static void convertGMMStatsList(object test_stats, std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> >& test_stats_c) {
-  stl_input_iterator<boost::shared_ptr<bob::learn::misc::GMMStats> > dbegin(test_stats), dend;
-  test_stats_c.assign(dbegin, dend);
-}
-
-static void convertChannelOffsetList(object test_channelOffset, std::vector<blitz::Array<double,1> >& test_channelOffset_c) {
-  stl_input_iterator<bob::python::const_ndarray> dbegin(test_channelOffset), dend;
-  std::vector<bob::python::const_ndarray> vtest_channelOffset(dbegin, dend);
-
-  for(std::vector<bob::python::const_ndarray>::iterator it=vtest_channelOffset.begin();
-      it!=vtest_channelOffset.end(); ++it)
-    test_channelOffset_c.push_back(it->bz<double,1>());
-}
-
-static void convertGMMMachineList(object models, std::vector<boost::shared_ptr<const bob::learn::misc::GMMMachine> >& models_c) {
-  stl_input_iterator<boost::shared_ptr<bob::learn::misc::GMMMachine> > dbegin(models), dend;
-  models_c.assign(dbegin, dend);
-}
-
-static object linearScoring1(object models,
-    bob::python::const_ndarray ubm_mean, bob::python::const_ndarray ubm_variance,
-    object test_stats, object test_channelOffset = list(), // Empty list
-    bool frame_length_normalisation = false)
-{
-  blitz::Array<double,1> ubm_mean_ = ubm_mean.bz<double,1>();
-  blitz::Array<double,1> ubm_variance_ = ubm_variance.bz<double,1>();
-
-  std::vector<blitz::Array<double,1> > models_c;
-  convertGMMMeanList(models, models_c);
-
-  std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> > test_stats_c;
-  convertGMMStatsList(test_stats, test_stats_c);
-
-  bob::python::ndarray ret(bob::io::base::array::t_float64, models_c.size(), test_stats_c.size());
-  blitz::Array<double,2> ret_ = ret.bz<double,2>();
-  if (test_channelOffset.ptr() == Py_None || len(test_channelOffset) == 0) { //list is empty
-    bob::learn::misc::linearScoring(models_c, ubm_mean_, ubm_variance_, test_stats_c, frame_length_normalisation, ret_);
-  }
-  else {
-    std::vector<blitz::Array<double,1> > test_channelOffset_c;
-    convertChannelOffsetList(test_channelOffset, test_channelOffset_c);
-    bob::learn::misc::linearScoring(models_c, ubm_mean_, ubm_variance_, test_stats_c, test_channelOffset_c, frame_length_normalisation, ret_);
-  }
-
-  return ret.self();
-}
-
-static object linearScoring2(object models,
-    bob::learn::misc::GMMMachine& ubm,
-    object test_stats, object test_channelOffset = list(), // Empty list
-    bool frame_length_normalisation = false)
-{
-  std::vector<boost::shared_ptr<const bob::learn::misc::GMMMachine> > models_c;
-  convertGMMMachineList(models, models_c);
-
-  std::vector<boost::shared_ptr<const bob::learn::misc::GMMStats> > test_stats_c;
-  convertGMMStatsList(test_stats, test_stats_c);
-
-  bob::python::ndarray ret(bob::io::base::array::t_float64, models_c.size(), test_stats_c.size());
-  blitz::Array<double,2> ret_ = ret.bz<double,2>();
-  if (test_channelOffset.ptr() == Py_None || len(test_channelOffset) == 0) { //list is empty
-    bob::learn::misc::linearScoring(models_c, ubm, test_stats_c, frame_length_normalisation, ret_);
-  }
-  else {
-    std::vector<blitz::Array<double,1> > test_channelOffset_c;
-    convertChannelOffsetList(test_channelOffset, test_channelOffset_c);
-    bob::learn::misc::linearScoring(models_c, ubm, test_stats_c, test_channelOffset_c, frame_length_normalisation, ret_);
-  }
-
-  return ret.self();
-}
-
-static double linearScoring3(bob::python::const_ndarray model,
-  bob::python::const_ndarray ubm_mean, bob::python::const_ndarray ubm_var,
-  const bob::learn::misc::GMMStats& test_stats, bob::python::const_ndarray test_channelOffset,
-  const bool frame_length_normalisation = false)
-{
-  return bob::learn::misc::linearScoring(model.bz<double,1>(), ubm_mean.bz<double,1>(),
-          ubm_var.bz<double,1>(), test_stats, test_channelOffset.bz<double,1>(), frame_length_normalisation);
-}
-
-BOOST_PYTHON_FUNCTION_OVERLOADS(linearScoring1_overloads, linearScoring1, 4, 6)
-BOOST_PYTHON_FUNCTION_OVERLOADS(linearScoring2_overloads, linearScoring2, 3, 5)
-BOOST_PYTHON_FUNCTION_OVERLOADS(linearScoring3_overloads, linearScoring3, 5, 6)
-
-void bind_machine_linear_scoring() {
-  def("linear_scoring", linearScoring1, linearScoring1_overloads(args("models", "ubm_mean", "ubm_variance", "test_stats", "test_channelOffset", "frame_length_normalisation"),
-    "Compute a matrix of scores using linear scoring.\n"
-    "Return a 2D matrix of scores, scores[m, s] is the score for model m against statistics s\n"
-    "\n"
-    "Warning Each GMM must have the same size.\n"
-    "\n"
-    "models       -- list of mean supervectors for the client models\n"
-    "ubm_mean     -- mean supervector for the world model\n"
-    "ubm_variance -- variance supervector for the world model\n"
-    "test_stats   -- list of accumulate statistics for each test trial\n"
-    "test_channelOffset -- \n"
-    "frame_length_normlisation -- perform a normalisation by the number of feature vectors\n"
-    ));
-  def("linear_scoring", linearScoring2, linearScoring2_overloads(args("models", "ubm", "test_stats", "test_channel_offset", "frame_length_normalisation"),
-    "Compute a matrix of scores using linear scoring.\n"
-    "Return a 2D matrix of scores, scores[m, s] is the score for model m against statistics s\n"
-    "\n"
-    "Warning Each GMM must have the same size.\n"
-    "\n"
-    "models      -- list of client models\n"
-    "ubm         -- world model\n"
-    "test_stats  -- list of accumulate statistics for each test trial\n"
-    "test_channel_offset -- \n"
-    "frame_length_normlisation -- perform a normalisation by the number of feature vectors\n"
-    ));
-  def("linear_scoring", linearScoring3, linearScoring3_overloads(args("model", "ubm_mean", "ubm_variance", "test_stats", "test_channelOffset", "frame_length_normalisation"),
-    "Compute a score using linear scoring.\n"
-    "\n"
-    "model        -- mean supervectors for the client model\n"
-    "ubm_mean     -- mean supervector for the world model\n"
-    "ubm_variance -- variance supervector for the world model\n"
-    "test_stats   -- accumulate statistics for each test trial\n"
-    "test_channelOffset -- \n"
-    "frame_length_normlisation -- perform a normalisation by the number of feature vectors\n"
-    ));
-}
diff --git a/bob/learn/misc/old/machine.cc b/bob/learn/misc/old/machine.cc
deleted file mode 100644
index 31deb42..0000000
--- a/bob/learn/misc/old/machine.cc
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Tue Jul 26 15:11:33 2011 +0200
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-#include <bob.learn.misc/Machine.h>
-
-using namespace boost::python;
-
-static double forward(const bob::learn::misc::Machine<blitz::Array<double,1>, double>& m,
-    bob::python::const_ndarray input) {
-  double output;
-  m.forward(input.bz<double,1>(), output);
-  return output;
-}
-
-static double forward_(const bob::learn::misc::Machine<blitz::Array<double,1>, double>& m,
-    bob::python::const_ndarray input) {
-  double output;
-  m.forward_(input.bz<double,1>(), output);
-  return output;
-}
-
-void bind_machine_base()
-{
-  class_<bob::learn::misc::Machine<blitz::Array<double,1>, double>, boost::noncopyable>("MachineDoubleBase",
-      "Root class for all Machine<blitz::Array<double,1>, double>", no_init)
-    .def("__call__", &forward_, (arg("self"), arg("input")), "Executes the machine on the given 1D numpy array of float64, and returns the output. NO CHECK is performed.")
-    .def("forward", &forward, (arg("self"), arg("input")), "Executes the machine on the given 1D numpy array of float64, and returns the output.")
-    .def("forward_", &forward_, (arg("self"), arg("input")), "Executes the machine on the given 1D numpy array of float64, and returns the output. NO CHECK is performed.")
-  ;
-}
diff --git a/bob/learn/misc/old/main.cc b/bob/learn/misc/old/main.cc
deleted file mode 100644
index f73f4fe..0000000
--- a/bob/learn/misc/old/main.cc
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * @author André Anjos <andre.anjos@idiap.ch>
- * @date Tue Jan 18 17:07:26 2011 +0100
- *
- * @brief Combines all modules to make up the complete bindings
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifdef NO_IMPORT_ARRAY
-#undef NO_IMPORT_ARRAY
-#endif
-
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
-#include <bob.io.base/api.h>
-#include <bob.core/random_api.h>
-
-#include "ndarray.h"
-
-/** extra bindings required for compatibility **/
-void bind_core_tinyvector();
-void bind_core_ndarray_numpy();
-void bind_core_bz_numpy();
-
-/** machine bindings **/
-void bind_machine_base();
-void bind_machine_gaussian();
-void bind_machine_gmm();
-void bind_machine_kmeans();
-void bind_machine_linear_scoring();
-void bind_machine_ztnorm();
-void bind_machine_jfa();
-void bind_machine_ivector();
-void bind_machine_plda();
-
-/** trainer bindings **/
-void bind_trainer_gmm();
-void bind_trainer_kmeans();
-void bind_trainer_jfa();
-void bind_trainer_ivector();
-void bind_trainer_plda();
-void bind_trainer_empca();
-
-BOOST_PYTHON_MODULE(_old_library) {
-
-  if (import_bob_blitz() < 0) {
-    PyErr_Print();
-    PyErr_Format(PyExc_ImportError, "cannot import `bob.blitz'");
-    return;
-  }
-
-  if (import_bob_core_random() < 0) {
-    PyErr_Print();
-    PyErr_Format(PyExc_ImportError, "cannot import `bob.core.random'");
-    return;
-  }
-
-  if (import_bob_io_base() < 0) {
-    PyErr_Print();
-    PyErr_Format(PyExc_ImportError, "cannot import `bob.io.base'");
-    return;
-  }
-
-  boost::python::docstring_options docopt(true, true, false);
-
-  bob::python::setup_python("miscelaneous machines and trainers not yet ported into the new framework");
-
-  /** extra bindings required for compatibility **/
-  bind_core_tinyvector();
-  bind_core_ndarray_numpy();
-  bind_core_bz_numpy();
-
-  /** machine bindings **/
-  bind_machine_base();
-  bind_machine_gaussian();
-  bind_machine_gmm();
-  bind_machine_kmeans();
-  bind_machine_linear_scoring();
-  bind_machine_ztnorm();
-  bind_machine_jfa();
-  bind_machine_ivector();
-  bind_machine_plda();
-
-  /** trainer bindings **/
-  bind_trainer_gmm();
-  bind_trainer_kmeans();
-  bind_trainer_jfa();
-  bind_trainer_ivector();
-  bind_trainer_plda();
-  bind_trainer_empca();
-
-}
diff --git a/bob/learn/misc/old/ndarray.cc b/bob/learn/misc/old/ndarray.cc
deleted file mode 100644
index d5f728f..0000000
--- a/bob/learn/misc/old/ndarray.cc
+++ /dev/null
@@ -1,1015 +0,0 @@
-/**
- * @author André Anjos <andre.anjos@idiap.ch>
- * @date Tue Jan 18 17:07:26 2011 +0100
- *
- * @brief Implementation of the ndarray class
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <boost/python/numeric.hpp>
-#include <boost/format.hpp>
-#include <stdexcept>
-#include <dlfcn.h>
-
-//#ifdef NO_IMPORT_ARRAY
-//#undef NO_IMPORT_ARRAY
-//#endif
-#include "ndarray.h"
-
-#define TP_ARRAY(x) ((PyArrayObject*)x.ptr())
-#define TP_OBJECT(x) (x.ptr())
-
-#define NUMPY17_API 0x00000007
-#define NUMPY16_API 0x00000006
-#define NUMPY14_API 0x00000004
-
-#include <bob.core/logging.h>
-
-#if PY_VERSION_HEX >= 0x03000000
-static void* wrap_import_array() {
-//  import_array();
-  return 0;
-}
-#else
-static void wrap_import_array() {
-//  import_array();
-  return;
-}
-#endif
-
-void bob::python::setup_python(const char* module_docstring) {
-
-  // Documentation options
-  if (module_docstring) boost::python::scope().attr("__doc__") = module_docstring;
-
-  // Required for logging C++ <-> Python interaction
-  if (!PyEval_ThreadsInitialized()) PyEval_InitThreads();
-
-  // Gets the current dlopenflags and save it
-  PyThreadState* tstate = PyThreadState_Get();
-  int old_value = tstate->interp->dlopenflags;
-
-  // Unsets the RTLD_GLOBAL flag
-  tstate->interp->dlopenflags = old_value & (~RTLD_GLOBAL);
-
-  // Loads numpy with the RTLD_GLOBAL flag unset
-  wrap_import_array();
-
-  // Resets the RTLD_GLOBAL flag
-  tstate->interp->dlopenflags = old_value;
-
-  //Sets the boost::python::numeric::array interface to use numpy.ndarray
-  //as basis. This is not strictly required, but good to set as a baseline.
-  boost::python::numeric::array::set_module_and_type("numpy", "ndarray");
-
-  // Make sure we are not running against the wrong version of NumPy
-  if (NPY_VERSION != PyArray_GetNDArrayCVersion()) {
-    PYTHON_ERROR(ImportError, "module compiled against ABI version 0x%08x but this version of numpy is 0x%08x - make sure you compile and execute against the same or compatible versions", (int) NPY_VERSION, (int) PyArray_GetNDArrayCVersion());
-  }
-
-#if NPY_FEATURE_VERSION >= NUMPY14_API /* NumPy C-API version >= 1.4 */
-  if (NPY_FEATURE_VERSION > PyArray_GetNDArrayCFeatureVersion()) {
-    PYTHON_ERROR(ImportError, "module compiled against API version 0x%08x but this version of numpy is 0x%08x - make sure you compile and execute against the same or compatible versions", (int) NPY_FEATURE_VERSION, (int) PyArray_GetNDArrayCFeatureVersion());
-  }
-#endif
-
-}
-
-/***************************************************************************
- * Dtype (PyArray_Descr) manipulations                                     *
- ***************************************************************************/
-
-int bob::python::type_to_num(bob::io::base::array::ElementType type) {
-
-  switch(type) {
-    case bob::io::base::array::t_bool:
-      return NPY_BOOL;
-    case bob::io::base::array::t_int8:
-      return NPY_INT8;
-    case bob::io::base::array::t_int16:
-      return NPY_INT16;
-    case bob::io::base::array::t_int32:
-      return NPY_INT32;
-    case bob::io::base::array::t_int64:
-      return NPY_INT64;
-    case bob::io::base::array::t_uint8:
-      return NPY_UINT8;
-    case bob::io::base::array::t_uint16:
-      return NPY_UINT16;
-    case bob::io::base::array::t_uint32:
-      return NPY_UINT32;
-    case bob::io::base::array::t_uint64:
-      return NPY_UINT64;
-    case bob::io::base::array::t_float32:
-      return NPY_FLOAT32;
-    case bob::io::base::array::t_float64:
-      return NPY_FLOAT64;
-#ifdef NPY_FLOAT128
-    case bob::io::base::array::t_float128:
-      return NPY_FLOAT128;
-#endif
-    case bob::io::base::array::t_complex64:
-      return NPY_COMPLEX64;
-    case bob::io::base::array::t_complex128:
-      return NPY_COMPLEX128;
-#ifdef NPY_COMPLEX256
-    case bob::io::base::array::t_complex256:
-      return NPY_COMPLEX256;
-#endif
-    default:
-      PYTHON_ERROR(TypeError, "unsupported C++ element type (%s)", bob::io::base::array::stringize(type));
-  }
-
-}
-
-static bob::io::base::array::ElementType signed_integer_type(int bits) {
-  switch(bits) {
-    case 8:
-      return bob::io::base::array::t_int8;
-    case 16:
-      return bob::io::base::array::t_int16;
-    case 32:
-      return bob::io::base::array::t_int32;
-    case 64:
-      return bob::io::base::array::t_int64;
-    default:
-      PYTHON_ERROR(TypeError, "unsupported signed integer element type with %d bits", bits);
-  }
-}
-
-static bob::io::base::array::ElementType unsigned_integer_type(int bits) {
-  switch(bits) {
-    case 8:
-      return bob::io::base::array::t_uint8;
-    case 16:
-      return bob::io::base::array::t_uint16;
-    case 32:
-      return bob::io::base::array::t_uint32;
-    case 64:
-      return bob::io::base::array::t_uint64;
-    default:
-      PYTHON_ERROR(TypeError, "unsupported unsigned integer element type with %d bits", bits);
-  }
-}
-
-bob::io::base::array::ElementType bob::python::num_to_type(int num) {
-  switch(num) {
-    case NPY_BOOL:
-      return bob::io::base::array::t_bool;
-
-    //signed integers
-    case NPY_BYTE:
-      return signed_integer_type(NPY_BITSOF_CHAR);
-    case NPY_SHORT:
-      return signed_integer_type(NPY_BITSOF_SHORT);
-    case NPY_INT:
-      return signed_integer_type(NPY_BITSOF_INT);
-    case NPY_LONG:
-      return signed_integer_type(NPY_BITSOF_LONG);
-    case NPY_LONGLONG:
-      return signed_integer_type(NPY_BITSOF_LONGLONG);
-
-    //unsigned integers
-    case NPY_UBYTE:
-      return unsigned_integer_type(NPY_BITSOF_CHAR);
-    case NPY_USHORT:
-      return unsigned_integer_type(NPY_BITSOF_SHORT);
-    case NPY_UINT:
-      return unsigned_integer_type(NPY_BITSOF_INT);
-    case NPY_ULONG:
-      return unsigned_integer_type(NPY_BITSOF_LONG);
-    case NPY_ULONGLONG:
-      return unsigned_integer_type(NPY_BITSOF_LONGLONG);
-
-    //floats
-    case NPY_FLOAT32:
-      return bob::io::base::array::t_float32;
-    case NPY_FLOAT64:
-      return bob::io::base::array::t_float64;
-#ifdef NPY_FLOAT128
-    case NPY_FLOAT128:
-      return bob::io::base::array::t_float128;
-#endif
-
-    //complex
-    case NPY_COMPLEX64:
-      return bob::io::base::array::t_complex64;
-    case NPY_COMPLEX128:
-      return bob::io::base::array::t_complex128;
-#ifdef NPY_COMPLEX256
-    case NPY_COMPLEX256:
-      return bob::io::base::array::t_complex256;
-#endif
-
-    default:
-      PYTHON_ERROR(TypeError, "unsupported NumPy element type (%d)", num);
-  }
-
-}
-
-template <> int bob::python::ctype_to_num<bool>(void)
-{ return NPY_BOOL; }
-
-//! @cond SKIP_DOXYGEN_WARNINGS
-template <> int bob::python::ctype_to_num<int8_t>(void)
-{ return NPY_INT8; }
-template <> int bob::python::ctype_to_num<uint8_t>(void)
-{ return NPY_UINT8; }
-template <> int bob::python::ctype_to_num<int16_t>(void)
-{ return NPY_INT16; }
-template <> int bob::python::ctype_to_num<uint16_t>(void)
-{ return NPY_UINT16; }
-template <> int bob::python::ctype_to_num<int32_t>(void)
-{ return NPY_INT32; }
-template <> int bob::python::ctype_to_num<uint32_t>(void)
-{ return NPY_UINT32; }
-template <> int bob::python::ctype_to_num<int64_t>(void)
-{ return NPY_INT64; }
-template <> int bob::python::ctype_to_num<uint64_t>(void)
-{ return NPY_UINT64; }
-template <> int bob::python::ctype_to_num<float>(void)
-{ return NPY_FLOAT32; }
-template <> int bob::python::ctype_to_num<double>(void)
-{ return NPY_FLOAT64; }
-#ifdef NPY_FLOAT128
-template <> int bob::python::ctype_to_num<long double>(void)
-{ return NPY_FLOAT128; }
-#endif
-template <> int bob::python::ctype_to_num<std::complex<float> >(void)
-{ return NPY_COMPLEX64; }
-template <> int bob::python::ctype_to_num<std::complex<double> >(void)
-{ return NPY_COMPLEX128; }
-#ifdef NPY_COMPLEX256
-template <> int bob::python::ctype_to_num<std::complex<long double> >(void)
-{ return NPY_COMPLEX256; }
-#endif
-//! @endcond SKIP_DOXYGEN_WARNINGS
-
-bob::io::base::array::ElementType bob::python::array_to_type(const boost::python::numeric::array& a) {
-  return bob::python::num_to_type(PyArray_DESCR(TP_ARRAY(a))->type_num);
-}
-
-size_t bob::python::array_to_ndim(const boost::python::numeric::array& a) {
-  return PyArray_NDIM(TP_ARRAY(a));
-}
-
-#define TP_DESCR(x) ((PyArray_Descr*)x.ptr())
-
-bob::python::dtype::dtype (boost::python::object dtype_like) {
-  PyArray_Descr* tmp = 0;
-  if (!PyArray_DescrConverter2(dtype_like.ptr(), &tmp)) {
-    std::string dtype_str = boost::python::extract<std::string>(boost::python::str(dtype_like));
-    PYTHON_ERROR(TypeError, "cannot convert input dtype-like object (%s) to proper dtype", dtype_str.c_str());
-  }
-  boost::python::handle<> hdl(boost::python::borrowed((PyObject*)tmp));
-  m_self = boost::python::object(hdl);
-}
-
-bob::python::dtype::dtype (PyArray_Descr* descr) {
-  if (descr) {
-    boost::python::handle<> hdl((PyObject*)descr); //< raises if NULL
-    m_self = boost::python::object(hdl);
-  }
-}
-
-bob::python::dtype::dtype(int typenum) {
-  PyArray_Descr* tmp = PyArray_DescrFromType(typenum);
-  boost::python::handle<> hdl(boost::python::borrowed((PyObject*)tmp));
-  m_self = boost::python::object(hdl);
-}
-
-bob::python::dtype::dtype(bob::io::base::array::ElementType eltype) {
-  if (eltype != bob::io::base::array::t_unknown) {
-    PyArray_Descr* tmp = PyArray_DescrFromType(bob::python::type_to_num(eltype));
-    boost::python::handle<> hdl(boost::python::borrowed((PyObject*)tmp));
-    m_self = boost::python::object(hdl);
-  }
-}
-
-bob::python::dtype::dtype(const bob::python::dtype& other): m_self(other.m_self)
-{
-}
-
-bob::python::dtype::dtype() {
-}
-
-bob::python::dtype::~dtype() { }
-
-bob::python::dtype& bob::python::dtype::operator= (const bob::python::dtype& other) {
-  m_self = other.m_self;
-  return *this;
-}
-
-bool bob::python::dtype::has_native_byteorder() const {
-  return TPY_ISNONE(m_self)? false : (PyArray_EquivByteorders(TP_DESCR(m_self)->byteorder, NPY_NATIVE) || TP_DESCR(m_self)->elsize == 1);
-}
-
-bool bob::python::dtype::has_type(bob::io::base::array::ElementType _eltype) const {
-  return eltype() == _eltype;
-}
-
-bob::io::base::array::ElementType bob::python::dtype::eltype() const {
-  return TPY_ISNONE(m_self)? bob::io::base::array::t_unknown :
-    bob::python::num_to_type(TP_DESCR(m_self)->type_num);
-}
-
-int bob::python::dtype::type_num() const {
-  return TPY_ISNONE(m_self)? -1 : TP_DESCR(m_self)->type_num;
-}
-
-boost::python::str bob::python::dtype::str() const {
-  return boost::python::str(m_self);
-}
-
-std::string bob::python::dtype::cxx_str() const {
-  return boost::python::extract<std::string>(this->str());
-}
-
-PyArray_Descr* bob::python::dtype::descr() {
-  return (PyArray_Descr*)m_self.ptr();
-}
-
-/****************************************************************************
- * Free methods                                                             *
- ****************************************************************************/
-
-void bob::python::typeinfo_ndarray_ (const boost::python::object& o, bob::io::base::array::typeinfo& i) {
-  PyArrayObject* npy = TP_ARRAY(o);
-  npy_intp strides[NPY_MAXDIMS];
-  for (int k=0; k<PyArray_NDIM(npy); ++k) strides[k] = PyArray_STRIDES(npy)[k]/PyArray_DESCR(npy)->elsize;
-  i.set<npy_intp>(bob::python::num_to_type(PyArray_DESCR(npy)->type_num), PyArray_NDIM(npy), PyArray_DIMS(npy), strides);
-}
-
-void bob::python::typeinfo_ndarray (const boost::python::object& o, bob::io::base::array::typeinfo& i) {
-  if (!PyArray_Check(o.ptr())) {
-    throw std::runtime_error("invalid input: cannot extract typeinfo object from anything else than ndarray");
-  }
-  bob::python::typeinfo_ndarray_(o, i);
-}
-
-#if NPY_FEATURE_VERSION < NUMPY16_API /* NumPy C-API version >= 1.6 */
-/**
- * This method emulates the behavior of PyArray_GetArrayParamsFromObject from
- * NumPy >= 1.6 and is used when compiling and liking against older versions of
- * NumPy.
- */
-static int _GetArrayParamsFromObject(PyObject* op,
-    PyArray_Descr* requested_dtype,
-    npy_bool writeable,
-    PyArray_Descr** out_dtype,
-    int* out_ndim,
-    npy_intp* out_dims,
-    PyArrayObject** out_arr,
-    PyObject*) {
-
-  if (PyArray_Check(op)) { //it is already an array, easy
-
-    PyArrayObject* arr = reinterpret_cast<PyArrayObject*>(op);
-
-    if (requested_dtype && !PyArray_EquivTypes(PyArray_DESCR(arr), requested_dtype)) {
-
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-      if (PyArray_CanCastTypeTo(PyArray_DESCR(arr), requested_dtype, NPY_SAFE_CASTING))
-#else
-      if (PyArray_CanCastTo(PyArray_DESCR(arr), requested_dtype))
-#endif
-      {
-        (*out_arr) = 0;
-        (*out_dtype) = PyArray_DESCR(arr);
-        (*out_ndim) = PyArray_NDIM(arr);
-        for (int i=0; i<PyArray_NDIM(arr); ++i)
-          out_dims[i] = PyArray_DIM(arr,i);
-        // we need to cast the array, write-ability will not hold...
-        return writeable? 1 : 0;
-      }
-
-      else {
-        return 1;
-      }
-
-    }
-
-    //if you get to this point, the types are equivalent or there was no type
-    (*out_arr) = (PyArrayObject*)PyArray_FromArray(arr, 0, 0);
-    (*out_dtype) = 0;
-    (*out_ndim) = 0;
-    return writeable? (!PyArray_ISWRITEABLE(arr)) : 0;
-
-  }
-
-  else { //it is not an array -- try a brute-force conversion
-
-    TDEBUG1("[non-optimal] using NumPy version < 1.6 requires we convert input data for convertibility check - compile against NumPy >= 1.6 to improve performance");
-    boost::python::handle<> hdl(boost::python::allow_null(PyArray_FromAny(op, requested_dtype, 0, 0, 0, 0)));
-    boost::python::object array(hdl);
-
-    if (TPY_ISNONE(array)) return 1;
-
-    //if the conversion worked, you can now fill in the parameters
-    (*out_arr) = 0;
-    (*out_dtype) = PyArray_DESCR(TP_ARRAY(array));
-    (*out_ndim) = PyArray_NDIM(TP_ARRAY(array));
-    for (int i=0; i<PyArray_NDIM(TP_ARRAY(array)); ++i)
-      out_dims[i] = PyArray_DIM(TP_ARRAY(array),i);
-
-    //in this mode, the resulting object will never be write-able.
-    return writeable? 1 : 0;
-
-  }
-
-  return 0; //turn-off c compiler warnings...
-
-}
-#endif
-
-bob::python::convert_t bob::python::convertible(boost::python::object array_like, bob::io::base::array::typeinfo& info,
-    bool writeable, bool behaved) {
-
-  int ndim = 0;
-  npy_intp dims[NPY_MAXDIMS];
-  PyArrayObject* arr = 0;
-  PyArray_Descr* dtype = 0;
-
-  int not_convertible =
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-    PyArray_GetArrayParamsFromObject
-#else
-    _GetArrayParamsFromObject
-#endif
-    (array_like.ptr(), //input object pointer
-     0,                //requested dtype (if need to enforce)
-     writeable,        //writeable?
-     &dtype,           //dtype assessment - borrowed
-     &ndim,            //assessed number of dimensions
-     dims,             //assessed shape
-     &arr,             //if obj_ptr is ndarray, return it here
-     0)                //context?
-    ;
-
-  if (not_convertible) return bob::python::IMPOSSIBLE;
-
-  convert_t retval = bob::python::BYREFERENCE;
-
-  if (arr) { //the passed object is an array
-
-    //checks behavior.
-    if (behaved && !PyArray_ISCARRAY_RO(arr)) retval = bob::python::WITHARRAYCOPY;
-
-    info.set<npy_intp>(bob::python::num_to_type(PyArray_DESCR(arr)->type_num),
-        PyArray_NDIM(arr), PyArray_DIMS(arr));
-
-    Py_XDECREF(arr);
-  }
-
-  else { //the passed object is not an array
-    info.set<npy_intp>(bob::python::num_to_type(dtype->type_num), ndim, dims);
-    retval = bob::python::WITHCOPY;
-  }
-
-  return retval;
-}
-
-bob::python::convert_t bob::python::convertible_to (boost::python::object array_like,
-    const bob::io::base::array::typeinfo& info, bool writeable, bool behaved) {
-
-  bob::python::dtype req_dtype(info.dtype);
-
-  int ndim = 0;
-  npy_intp dims[NPY_MAXDIMS];
-  PyArrayObject* arr = 0;
-  PyArray_Descr* dtype = 0;
-
-  int not_convertible =
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-    PyArray_GetArrayParamsFromObject
-#else
-    _GetArrayParamsFromObject
-#endif
-    (array_like.ptr(),  //input object pointer
-     req_dtype.descr(), //requested dtype (if need to enforce)
-     writeable,         //writeable?
-     &dtype,            //dtype assessment
-     &ndim,             //assessed number of dimensions
-     dims,              //assessed shape
-     &arr,              //if obj_ptr is ndarray, return it here
-     0)                 //context?
-    ;
-
-  if (not_convertible) return bob::python::IMPOSSIBLE;
-
-  convert_t retval = bob::python::BYREFERENCE;
-
-  if (arr) { //the passed object is an array -- check compatibility
-
-    if (info.nd) { //check number of dimensions and shape, if needs to
-      if (PyArray_NDIM(arr) != (int)info.nd) {
-        Py_XDECREF(arr);
-        return bob::python::IMPOSSIBLE;
-      }
-      if (info.has_valid_shape()) {
-        for (size_t i=0; i<info.nd; ++i)
-          if ((int)info.shape[i] != PyArray_DIM(arr,i)) {
-            Py_XDECREF(arr);
-            return bob::python::IMPOSSIBLE;
-          }
-      }
-    }
-
-    //checks dtype
-    if (PyArray_DESCR(arr)->type_num != req_dtype.descr()->type_num) {
-      //well... we would need to cast, but maybe possible - check with NumPy
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-      if (PyArray_CanCastTypeTo(PyArray_DESCR(arr), req_dtype.descr(), NPY_SAFE_CASTING)) {
-#else
-      if (PyArray_CanCastTo(PyArray_DESCR(arr), req_dtype.descr())) {
-#endif
-        retval = bob::python::WITHARRAYCOPY;
-      }
-      else {
-        //we cannot cast from current to desired type, sorry...
-        Py_XDECREF(arr);
-        return bob::python::IMPOSSIBLE;
-      }
-    }
-
-    //checks behavior.
-    if (behaved) {
-      if (!PyArray_ISCARRAY_RO(arr)) retval = bob::python::WITHARRAYCOPY;
-    }
-
-    Py_XDECREF(arr);
-
-  }
-
-  else { //the passed object is not an array
-
-    retval = bob::python::WITHCOPY;
-
-    if (info.nd) { //check number of dimensions and shape
-      if (ndim != (int)info.nd) return bob::python::IMPOSSIBLE;
-      for (size_t i=0; i<info.nd; ++i)
-        if (info.shape[i] &&
-            (int)info.shape[i] != dims[i]) return bob::python::IMPOSSIBLE;
-    }
-
-    //checks dtype
-    if (dtype->type_num != req_dtype.descr()->type_num) {
-      //well... we would need to cast, but maybe possible - check with NumPy
-      if (
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-          !PyArray_CanCastTypeTo(dtype, req_dtype.descr(), NPY_SAFE_CASTING)
-#else
-          !PyArray_CanCastTo(dtype, req_dtype.descr())
-#endif
-         )
-      {
-        return bob::python::IMPOSSIBLE;
-      }
-
-    }
-
-  }
-
-  return retval;
-}
-
-bob::python::convert_t bob::python::convertible_to(boost::python::object array_like, boost::python::object dtype_like,
-    bool writeable, bool behaved) {
-
-  bob::python::dtype req_dtype(dtype_like);
-
-  int ndim = 0;
-  npy_intp dims[NPY_MAXDIMS];
-  PyArrayObject* arr = 0;
-  PyArray_Descr* dtype = 0;
-
-  int not_convertible =
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-    PyArray_GetArrayParamsFromObject
-#else
-    _GetArrayParamsFromObject
-#endif
-    (array_like.ptr(),  //input object pointer
-     req_dtype.descr(), //requested dtype (if need to enforce)
-     writeable,         //writeable?
-     &dtype,            //dtype assessment
-     &ndim,             //assessed number of dimensions
-     dims,              //assessed shape
-     &arr,              //if obj_ptr is ndarray, return it here
-     0)                 //context?
-    ;
-
-  if (not_convertible) return bob::python::IMPOSSIBLE;
-
-  convert_t retval = bob::python::BYREFERENCE;
-
-  if (arr) { //the passed object is an array -- check compatibility
-
-    //checks dtype
-    if (PyArray_DESCR(arr)->type_num != req_dtype.descr()->type_num) {
-      //well... we would need to cast, but maybe possible - check with NumPy
-
-      if (
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-          PyArray_CanCastTypeTo(PyArray_DESCR(arr), req_dtype.descr(), NPY_SAFE_CASTING)
-#else
-          PyArray_CanCastTo(PyArray_DESCR(arr), req_dtype.descr())
-#endif
-         )
-      {
-        retval = bob::python::WITHARRAYCOPY;
-      }
-      else {
-        //we cannot cast from current to desired type, sorry...
-        Py_XDECREF(arr);
-        return bob::python::IMPOSSIBLE;
-      }
-    }
-
-    //checks behavior.
-    if (behaved) {
-      if (!PyArray_ISCARRAY_RO(arr)) retval = bob::python::WITHARRAYCOPY;
-    }
-
-    Py_XDECREF(arr);
-
-  }
-
-  else { //the passed object is not an array
-
-    retval = bob::python::WITHCOPY;
-
-    //checks dtype
-    if (dtype->type_num != req_dtype.descr()->type_num) {
-      //well... we would need to cast, but maybe possible - check with NumPy
-      if (
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-          !PyArray_CanCastTypeTo(dtype, req_dtype.descr(), NPY_SAFE_CASTING)
-#else
-          !PyArray_CanCastTo(dtype, req_dtype.descr())
-#endif
-         )
-      {
-        return bob::python::IMPOSSIBLE;
-      }
-
-    }
-
-  }
-
-  return retval;
-}
-
-bob::python::convert_t bob::python::convertible_to(boost::python::object array_like, bool writeable,
-    bool behaved) {
-
-  int ndim = 0;
-  npy_intp dims[NPY_MAXDIMS];
-  PyArrayObject* arr = 0;
-  PyArray_Descr* dtype = 0;
-
-  int not_convertible =
-#if NPY_FEATURE_VERSION >= NUMPY16_API /* NumPy C-API version >= 1.6 */
-    PyArray_GetArrayParamsFromObject
-#else
-    _GetArrayParamsFromObject
-#endif
-    (array_like.ptr(), //input object pointer
-     0,                //requested dtype (if need to enforce)
-     writeable,        //writeable?
-     &dtype,           //dtype assessment
-     &ndim,            //assessed number of dimensions
-     dims,             //assessed shape
-     &arr,             //if obj_ptr is ndarray, return it here
-     0)                //context?
-    ;
-
-  if (not_convertible) return bob::python::IMPOSSIBLE;
-
-  convert_t retval = bob::python::BYREFERENCE;
-
-  if (arr) { //the passed object is an array -- check compatibility
-
-    //checks behavior.
-    if (behaved) {
-      if (!PyArray_ISCARRAY_RO(arr)) retval = bob::python::WITHARRAYCOPY;
-    }
-
-    Py_XDECREF(arr);
-
-  }
-
-  else { //the passed object is not an array
-
-     retval = bob::python::WITHCOPY;
-
-  }
-
-  return retval;
-}
-
-/***************************************************************************
- * Ndarray (PyArrayObject) manipulations                                   *
- ***************************************************************************/
-
-/**
- * Returns either a reference or a copy of the given array_like object,
- * depending on the following requirements for referral:
- *
- * 0. The pointed object is a numpy.ndarray
- * 1. The array type description type_num matches
- * 2. The array is C-style, contiguous and aligned
- */
-static boost::python::object try_refer_ndarray (boost::python::object array_like,
-    boost::python::object dtype_like) {
-
-  PyArrayObject* candidate = TP_ARRAY(array_like);
-  PyArray_Descr* req_dtype = 0;
-  PyArray_DescrConverter2(dtype_like.ptr(), &req_dtype); //new ref!
-
-  bool can_refer = true; //< flags a copy of the data
-
-  if (!PyArray_Check((PyObject*)candidate)) can_refer = false;
-
-  if (can_refer && !PyArray_ISCARRAY_RO(candidate)) can_refer = false;
-
-  if (can_refer) {
-    PyObject* tmp = PyArray_FromArray(candidate, 0, 0);
-    boost::python::handle<> hdl(tmp); //< raises if NULL
-    boost::python::object retval(hdl);
-    return retval;
-  }
-
-  //copy
-  TDEBUG1("[non-optimal] copying array-like object - cannot refer");
-  PyObject* _ptr = (PyObject*)candidate;
-#if NPY_FEATURE_VERSION > NUMPY16_API /* NumPy C-API version > 1.6 */
-  int flags = NPY_ARRAY_C_CONTIGUOUS|NPY_ARRAY_ENSURECOPY|NPY_ARRAY_ENSUREARRAY;
-#else
-  int flags = NPY_C_CONTIGUOUS|NPY_ENSURECOPY|NPY_ENSUREARRAY;
-#endif
-  PyObject* tmp = PyArray_FromAny(_ptr, req_dtype, 0, 0, flags, 0);
-  boost::python::handle<> hdl(tmp); //< raises if NULL
-  boost::python::object retval(hdl);
-  return retval;
-
-}
-
-static void derefer_ndarray (PyArrayObject* array) {
-  Py_XDECREF(array);
-}
-
-static boost::shared_ptr<void> shared_from_ndarray (boost::python::object& o) {
-  boost::shared_ptr<PyArrayObject> cache(TP_ARRAY(o),
-      std::ptr_fun(derefer_ndarray));
-  Py_XINCREF(TP_OBJECT(o)); ///< makes sure it outlives this scope!
-  return cache; //casts to b::shared_ptr<void>
-}
-
-bob::python::py_array::py_array(boost::python::object o, boost::python::object _dtype):
-  m_is_numpy(true)
-{
-  if (TPY_ISNONE(o)) PYTHON_ERROR(TypeError, "You cannot pass 'None' as input parameter to C++-bound bob methods that expect NumPy ndarrays (or blitz::Array<T,N>'s). Double-check your input!");
-  boost::python::object mine = try_refer_ndarray(o, _dtype);
-
-  //captures data from a numeric::array
-  typeinfo_ndarray_(mine, m_type);
-
-  //transforms the from boost::python ref counting to boost::shared_ptr<void>
-  m_data = shared_from_ndarray(mine);
-
-  //set-up the C-style pointer to this data
-  m_ptr = static_cast<void*>(PyArray_DATA(TP_ARRAY(mine)));
-}
-
-bob::python::py_array::py_array(const bob::io::base::array::interface& other) {
-  set(other);
-}
-
-bob::python::py_array::py_array(boost::shared_ptr<bob::io::base::array::interface> other) {
-  set(other);
-}
-
-bob::python::py_array::py_array(const bob::io::base::array::typeinfo& info) {
-  set(info);
-}
-
-bob::python::py_array::~py_array() {
-}
-
-/**
- * Wrap a C-style pointer with a PyArrayObject
- */
-static boost::python::object wrap_data (void* data, const bob::io::base::array::typeinfo& ti,
-    bool writeable=true) {
-
-  npy_intp shape[NPY_MAXDIMS];
-  npy_intp stride[NPY_MAXDIMS];
-  for (size_t k=0; k<ti.nd; ++k) {
-    shape[k] = ti.shape[k];
-    stride[k] = ti.item_size()*ti.stride[k];
-  }
-  PyObject* tmp = PyArray_New(&PyArray_Type, ti.nd,
-        &shape[0], bob::python::type_to_num(ti.dtype), &stride[0], data, 0,
-#if NPY_FEATURE_VERSION > NUMPY16_API /* NumPy C-API version > 1.6 */
-        writeable? NPY_ARRAY_CARRAY : NPY_ARRAY_CARRAY_RO
-#else
-        writeable? NPY_CARRAY : NPY_CARRAY_RO
-#endif
-        ,0);
-
-  boost::python::handle<> hdl(tmp);
-  boost::python::object retval(hdl);
-  return retval;
-}
-
-/**
- * Creates a new array from specifications
- */
-static boost::python::object make_ndarray(int nd, npy_intp* dims, int type) {
-  PyObject* tmp = PyArray_SimpleNew(nd, dims, type);
-  boost::python::handle<> hdl(tmp); //< raises if NULL
-  boost::python::object retval(hdl);
-  return retval;
-}
-
-/**
- * New copy of the array from another array
- */
-static boost::python::object copy_array (const boost::python::object& array) {
-  PyArrayObject* _p = TP_ARRAY(array);
-  boost::python::object retval = make_ndarray(PyArray_NDIM(_p), PyArray_DIMS(_p), PyArray_DESCR(_p)->type_num);
-  PyArray_CopyInto(TP_ARRAY(retval), TP_ARRAY(array));
-  return retval;
-}
-
-/**
- * Copies a data pointer and type into a new numpy array.
- */
-static boost::python::object copy_data (const void* data, const bob::io::base::array::typeinfo& ti) {
-  boost::python::object wrapped = wrap_data(const_cast<void*>(data), ti);
-  boost::python::object retval = copy_array (wrapped);
-  return retval;
-}
-
-void bob::python::py_array::set(const bob::io::base::array::interface& other) {
-  TDEBUG1("[non-optimal] buffer copying operation being performed for "
-      << other.type().str());
-
-  //performs a copy of the data into a numpy array
-  boost::python::object mine = copy_data(other.ptr(), m_type);
-
-  //captures data from a numeric::array
-  typeinfo_ndarray_(mine, m_type);
-
-  //transforms the from boost::python ref counting to boost::shared_ptr<void>
-  m_data = shared_from_ndarray(mine);
-
-  //set-up the C-style pointer to this data
-  m_ptr = static_cast<void*>(PyArray_DATA(TP_ARRAY(mine)));
-
-  m_is_numpy = true;
-}
-
-void bob::python::py_array::set(boost::shared_ptr<bob::io::base::array::interface> other) {
-  m_type = other->type();
-  m_is_numpy = false;
-  m_ptr = other->ptr();
-  m_data = other->owner();
-}
-
-/**
- * Creates a new numpy array from a bob::io::typeinfo object.
- */
-static boost::python::object new_from_type (const bob::io::base::array::typeinfo& ti) {
-  npy_intp shape[NPY_MAXDIMS];
-  npy_intp stride[NPY_MAXDIMS];
-  for (size_t k=0; k<ti.nd; ++k) {
-    shape[k] = ti.shape[k];
-    stride[k] = ti.item_size()*ti.stride[k];
-  }
-  PyObject* tmp = PyArray_New(&PyArray_Type, ti.nd, &shape[0],
-      bob::python::type_to_num(ti.dtype), &stride[0], 0, 0, 0, 0);
-  boost::python::handle<> hdl(tmp); //< raises if NULL
-  boost::python::object retval(hdl);
-  return retval;
-}
-
-void bob::python::py_array::set (const bob::io::base::array::typeinfo& req) {
-  if (m_type.is_compatible(req)) return; ///< nothing to do!
-
-  TDEBUG1("[non-optimal?] buffer re-size being performed from " << m_type.str()
-      << " to " << req.str());
-
-  boost::python::object mine = new_from_type(req);
-
-  //captures data from a numeric::array
-  typeinfo_ndarray_(mine, m_type);
-
-  //transforms the from boost::python ref counting to boost::shared_ptr<void>
-  m_data = shared_from_ndarray(mine);
-
-  //set-up the C-style pointer to this data
-  m_ptr = static_cast<void*>(PyArray_DATA(TP_ARRAY(mine)));
-
-  m_is_numpy = true;
-}
-
-boost::python::object bob::python::py_array::copy(const boost::python::object& dtype) {
-  return copy_data(m_ptr, m_type);
-}
-
-/**
- * Gets a read-only reference to a certain data. This recipe was originally
- * posted here:
- * http://blog.enthought.com/python/numpy-arrays-with-pre-allocated-memory/
- *
- * But a better allocation strategy (that actually works) is posted here:
- * http://stackoverflow.com/questions/2924827/numpy-array-c-api
- */
-// PyCapsule is only available on Python2.7 or Python3.1 and up
-#if ((PY_VERSION_HEX <  0x02070000) \
-    || ((PY_VERSION_HEX >= 0x03000000) \
-      && (PY_VERSION_HEX <  0x03010000)) )
-static void DeleteSharedPointer (void* ptr) {
-  typedef boost::shared_ptr<const void> type;
-  delete static_cast<type*>(ptr);
-}
-#else
-static void DeleteSharedPointer (PyObject* ptr) {
-  typedef boost::shared_ptr<const void> type;
-  delete static_cast<type*>(PyCapsule_GetPointer(ptr, NULL));
-}
-#endif
-
-static boost::python::object make_readonly (const void* data, const bob::io::base::array::typeinfo& ti,
-    boost::shared_ptr<const void> owner) {
-
-  boost::python::object retval = wrap_data(const_cast<void*>(data), ti, false);
-
-  //creates the shared pointer deallocator
-  boost::shared_ptr<const void>* ptr = new boost::shared_ptr<const void>(owner);
-#if ((PY_VERSION_HEX <  0x02070000) \
-    || ((PY_VERSION_HEX >= 0x03000000) \
-      && (PY_VERSION_HEX <  0x03010000)) )
-  PyObject* py_sharedptr = PyCObject_FromVoidPtr(ptr, DeleteSharedPointer);
-#else
-  PyObject* py_sharedptr = PyCapsule_New((void*)ptr, NULL, DeleteSharedPointer);
-#endif
-
-  if (!py_sharedptr) {
-    PYTHON_ERROR(RuntimeError, "could not allocate space for deallocation object in read-only array::interface wrapping");
-  }
-
-# if NPY_FEATURE_VERSION >= NUMPY17_API /* NumPy C-API version >= 1.7 */
-  PyArray_SetBaseObject(TP_ARRAY(retval), py_sharedptr);
-# else
-  TP_ARRAY(retval)->base = py_sharedptr;
-# endif
-
-  return retval;
-}
-
-boost::python::object bob::python::py_array::pyobject() {
-  if (m_is_numpy) {
-    boost::python::handle<> hdl(boost::python::borrowed(boost::static_pointer_cast<PyObject>(m_data).get()));
-    boost::python::object mine(hdl);
-    return mine;
-  }
-
-  //if you really want, I can wrap it for you, but in this case I'll make it
-  //read-only and will associate the object deletion to my own data pointer.
-  return make_readonly(m_ptr, m_type, m_data);
-}
-
-bool bob::python::py_array::is_writeable() const {
-  return (!m_is_numpy || PyArray_ISWRITEABLE(boost::static_pointer_cast<PyArrayObject>(m_data).get()));
-}
-
-bob::python::ndarray::ndarray(boost::python::object array_like, boost::python::object dtype_like)
-  : px(new bob::python::py_array(array_like, dtype_like)) {
-}
-
-bob::python::ndarray::ndarray(boost::python::object array_like)
-  : px(new bob::python::py_array(array_like, boost::python::object())) {
-  }
-
-bob::python::ndarray::ndarray(const bob::io::base::array::typeinfo& info)
-  : px(new bob::python::py_array(info)) {
-  }
-
-bob::python::ndarray::~ndarray() { }
-
-const bob::io::base::array::typeinfo& bob::python::ndarray::type() const {
-  return px->type();
-}
-
-boost::python::object bob::python::ndarray::self() { return px->pyobject(); }
-
-bob::python::const_ndarray::const_ndarray(boost::python::object array_like)
-  : bob::python::ndarray(array_like) {
-  }
-
-bob::python::const_ndarray::~const_ndarray() { }
-
diff --git a/bob/learn/misc/old/ndarray.h b/bob/learn/misc/old/ndarray.h
deleted file mode 100644
index 4090a0f..0000000
--- a/bob/learn/misc/old/ndarray.h
+++ /dev/null
@@ -1,640 +0,0 @@
-/**
- * @file bob/python/ndarray.h
- * @date Tue Jan 18 17:07:26 2011 +0100
- * @author André Anjos <andre.anjos@idiap.ch>
- *
- * @brief A boost::python extension object that plays the role of a NumPy
- * ndarray (PyArrayObject*) and bob::io::base::array::interface at the same time.
- *
- * Copyright (C) 2011-2013 Idiap Research Institute, Martigny, Switzerland
- */
-
-#ifndef BOB_PYTHON_NDARRAY_H
-#define BOB_PYTHON_NDARRAY_H
-
-#include <boost/python.hpp> //this has to come before the next declaration!
-#include <boost/format.hpp>
-
-// Define the numpy C-API we are compatible with
-#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
-#include <numpy/arrayobject.h>
-
-#include "exception.h"
-#include <bob.io.base/array.h>
-#include <bob.core/cast.h>
-
-#include <blitz/array.h>
-#include <stdint.h>
-
-/**
- * The method object::is_none() was only introduced in boost v1.43.
- */
-#if defined(BOOST_VERSION)
-#  undef BOOST_VERSION
-#  include <boost/version.hpp>
-#  if BOOST_VERSION >= 104300
-#  define TPY_ISNONE(x) x.is_none()
-#  else
-#  define TPY_ISNONE(x) (x.ptr() == Py_None)
-#  endif
-#endif
-
-/**
- * A macro that is replaced by the proper format definition for size_t
- */
-#ifdef __LP64__
-#  define SIZE_T_FMT "%lu"
-#else
-#  define SIZE_T_FMT "%u"
-#endif
-
-namespace bob { namespace python {
-
-  /**
-   * @brief Initializes numpy and boost bindings. Should be called once per
-   * module.
-   *
-   * Pass to it the module doc string and it will also update the module
-   * documentation string.
-   */
-  void setup_python(const char* module_docstring);
-
-  /**
-   * @brief A generic method to convert from ndarray type_num to bob's
-   * ElementType
-   */
-  bob::io::base::array::ElementType num_to_type(int num);
-
-  /**
-   * @brief A method to retrieve the type of element of an array
-   */
-  bob::io::base::array::ElementType array_to_type(const boost::python::numeric::array& a);
-
-  /**
-   * @brief Retrieves the number of dimensions in an array
-   */
-  size_t array_to_ndim(const boost::python::numeric::array& a);
-
-  /**
-   * @brief Converts from C/C++ type to ndarray type_num.
-   */
-  template <typename T> int ctype_to_num(void) {
-    PYTHON_ERROR(TypeError, "unsupported C/C++ type (%s)", bob::io::base::array::stringize<T>());
-  }
-
-  // The C/C++ types we support should be declared here.
-  template <> int ctype_to_num<bool>(void);
-  template <> int ctype_to_num<signed char>(void);
-  template <> int ctype_to_num<unsigned char>(void);
-  template <> int ctype_to_num<short>(void);
-  template <> int ctype_to_num<unsigned short>(void);
-  template <> int ctype_to_num<int>(void);
-  template <> int ctype_to_num<unsigned int>(void);
-  template <> int ctype_to_num<long>(void);
-  template <> int ctype_to_num<unsigned long>(void);
-  template <> int ctype_to_num<long long>(void);
-  template <> int ctype_to_num<unsigned long long>(void);
-  template <> int ctype_to_num<float>(void);
-  template <> int ctype_to_num<double>(void);
-#ifdef NPY_FLOAT128
-  template <> int ctype_to_num<long double>(void);
-#endif
-  template <> int ctype_to_num<std::complex<float> >(void);
-  template <> int ctype_to_num<std::complex<double> >(void);
-#ifdef NPY_COMPLEX256
-  template <> int ctype_to_num<std::complex<long double> >(void);
-#endif
-
-  /**
-   * @brief Converts from bob's Element type to ndarray type_num
-   */
-  int type_to_num(bob::io::base::array::ElementType type);
-
-  /**
-   * @brief Handles conversion checking possibilities
-   */
-  typedef enum {
-    IMPOSSIBLE = 0,    ///< not possible to get array from object
-    BYREFERENCE = 1,   ///< possible, by only referencing the array
-    WITHARRAYCOPY = 2, ///< possible, object is an array, but has to copy
-    WITHCOPY = 3       ///< possible, object is not an array, has to copy
-  } convert_t;
-
-  /**
-   * @brief Extracts the typeinfo object from a numeric::array (passed as
-   * boost::python::object). We check the input object to assure it is a valid
-   * ndarray. An exception may be thrown otherwise.
-   */
-  void typeinfo_ndarray (const boost::python::object& o,
-      bob::io::base::array::typeinfo& i);
-
-  /**
-   * @brief This is the same as above, but does not run any check on the input
-   * object "o".
-   */
-  void typeinfo_ndarray_ (const boost::python::object& o,
-      bob::io::base::array::typeinfo& i);
-
-  /**
-   * @brief Checks if an array-like object is convertible to become a NumPy
-   * ndarray (boost::python::numeric::array). If so, write the typeinfo
-   * information that such array would have upon automatic conversion to "info".
-   *
-   * Optionally, you can specify you do *not* want writeable or behavior to be
-   * checked. Write-ability means that an array area can be extracted from the
-   * "array_like" object and changes done to the converted ndarray will be
-   * reflected upon the original object.
-   *
-   * Behavior refers to two settings: first, the data type byte-order should be
-   * native (i.e., little-endian on little-endian machines and big-endian on
-   * big-endian machines). Secondly, the array must be C-Style, have its memory
-   * aligned and on a contiguous block.
-   *
-   * This method is more efficient than actually performing the conversion,
-   * unless you compile the project against NumPy < 1.6 in which case the
-   * built-in checks are not available and you we will emulate them with
-   * brute-force conversion if required. A level-1 DEBUG message will be output
-   * if a brute-force copy is required so you can debug for that.
-   *
-   * This method returns the convertibility status for the array-like object,
-   * which is one of:
-   *
-   * * IMPOSSIBLE: The object cannot, possibly, be converted into an ndarray
-   * * BYREFERENCE: The object will successfuly be converted to a ndarray, i.e.
-   *                in the most optimal way - by referring to it.
-   * * WITHARRAYCOPY: The object will successfuly be converted to a ndarray,
-   *                  but that will require an array copy. That means the
-   *                  object is already an array, but not of the type you
-   *                  requested.
-   * * WITHCOPY: The object will successfuly be converted to a ndarray, but
-   *             we will need to convert the object from its current format
-   *             (non-ndarray) to a ndarray format. In this case, we will not
-   *             be able to implement write-back.
-   */
-  convert_t convertible(boost::python::object array_like,
-      bob::io::base::array::typeinfo& info, bool writeable=true,
-      bool behaved=true);
-
-  /**
-   * @brief This method does the same as convertible(), but specifies a type
-   * information to which the destination array needs to have. Same rules
-   * apply.
-   *
-   * The typeinfo input is honoured like this:
-   *
-   * 1. The "dtype" component is enforced on the array object
-   * 2. If "nd" != 0, the number of dimensions is checked.
-   * 3. If 2. holds, shape values are checked if has_valid_shape() is 'true'
-   */
-  convert_t convertible_to (boost::python::object array_like,
-      const bob::io::base::array::typeinfo& info, bool writeable=true,
-      bool behaved=true);
-
-  /**
-   * @brief Same as above, but only requires dtype convertibility.
-   */
-  convert_t convertible_to (boost::python::object array_like,
-      boost::python::object dtype_like, bool writeable=true,
-      bool behaved=true);
-
-  /**
-   * @brief Same as above, but requires nothing, just simple convertibility.
-   */
-  convert_t convertible_to (boost::python::object array_like,
-      bool writeable=true, bool behaved=true);
-
-  class dtype {
-
-    public: //api
-
-      /**
-       * @brief Builds a new dtype object from another object.
-       */
-      dtype (boost::python::object dtype_like);
-
-      /**
-       * @brief Builds a new dtype object from a PyArray_Descr object that
-       * will have its own reference counting increased internally. So, the
-       * object is *not* stolen and you can Py_(X)DECREF() it when done if
-       * you so wish.
-       */
-      dtype (PyArray_Descr* descr);
-
-      /**
-       * @brief Builds a new dtype object from a numpy type_num integer
-       */
-      dtype(int npy_typenum);
-
-      /**
-       * @brief Builds a new dtype object from a bob element type
-       */
-      dtype(bob::io::base::array::ElementType eltype);
-
-      /**
-       * @brief Copy constructor
-       */
-      dtype(const dtype& other);
-
-      /**
-       * @brief Default constructor -- use default dtype from NumPy
-       */
-      dtype();
-
-      /**
-       * @brief D'tor virtualization
-       */
-      virtual ~dtype();
-
-      /**
-       * @brief Assignment
-       */
-      dtype& operator= (const dtype& other);
-
-      /**
-       * @brief Some checks
-       */
-      bool has_native_byteorder() const; ///< byte order is native
-      bool has_type(bob::io::base::array::ElementType eltype) const; ///< matches
-
-      /**
-       * @brief Returns the current element type
-       */
-      bob::io::base::array::ElementType eltype() const;
-
-      /**
-       * @brief Returns the current type num or -1, if I'm None
-       */
-      int type_num() const;
-
-      /**
-       * @brief Returns a boost::python representation of this object - maybe
-       * None.
-       */
-      inline boost::python::object self() const { return m_self; }
-
-      /**
-       * @brief Returns a borrowed reference to my PyArray_Descr* object.
-       */
-      inline PyArray_Descr* descr();
-
-      /**
-       * @brief Returns the bp::str() object for myself
-       */
-      boost::python::str str() const;
-
-      /**
-       * @brief Returns str(*this) as a std::string
-       */
-      std::string cxx_str() const;
-
-    private: //representation
-
-      boost::python::object m_self;
-
-  };
-
-  class py_array: public bob::io::base::array::interface {
-
-    public: //api
-
-      /**
-       * @brief Builds a new array from an array-like object but coerces to a
-       * certain type.
-       *
-       * @param array_like An ndarray object, inherited type or any object that
-       * can be cast into an array. Note that, in case of casting, we will need
-       * to copy the data. Otherwise, we just refer.
-       *
-       * @param dtype_like Anything that can be cast to a description type.
-       */
-      py_array(boost::python::object array_like,
-              boost::python::object dtype_like);
-
-      /**
-       * @brief Builds a new array copying the data of an existing buffer.
-       */
-      py_array(const bob::io::base::array::interface& buffer);
-
-      /**
-       * @brief Builds a new array by referring to the data of an existing
-       * buffer.
-       */
-      py_array(boost::shared_ptr<bob::io::base::array::interface> buffer);
-
-      /**
-       * @brief Builds a new array from scratch using the typeinfo. This array
-       * will be a NumPy ndarray internally.
-       */
-      py_array(const bob::io::base::array::typeinfo& info);
-
-      template <typename T>
-      py_array(bob::io::base::array::ElementType t, T d0) {
-        set(bob::io::base::array::typeinfo(t, (T)1, &d0));
-      }
-      template <typename T>
-      py_array(bob::io::base::array::ElementType t, T d0, T d1) {
-        T shape[2] = {d0, d1};
-        set(bob::io::base::array::typeinfo(t, (T)2, &shape[0]));
-      }
-      template <typename T>
-      py_array(bob::io::base::array::ElementType t, T d0, T d1, T d2) {
-        T shape[3] = {d0, d1, d2};
-        set(bob::io::base::array::typeinfo(t, (T)3, &shape[0]));
-      }
-      template <typename T>
-      py_array(bob::io::base::array::ElementType t, T d0, T d1, T d2, T d3) {
-        T shape[4] = {d0, d1, d2, d3};
-        set(bob::io::base::array::typeinfo(t, (T)4, &shape[0]));
-      }
-      template <typename T>
-      py_array(bob::io::base::array::ElementType t, T d0, T d1, T d2, T d3, T d4)
-      {
-        T shape[5] = {d0, d1, d2, d3, d4};
-        set(bob::io::base::array::typeinfo(t, (T)5, &shape[0]));
-      }
-
-      /**
-       * @brief D'tor virtualization
-       */
-      virtual ~py_array();
-
-      /**
-       * @brief Copies the data from another buffer.
-       */
-      virtual void set(const bob::io::base::array::interface& buffer);
-
-      /**
-       * @brief Refers to the data of another buffer.
-       */
-      virtual void set(boost::shared_ptr<bob::io::base::array::interface> buffer);
-
-      /**
-       * @brief Re-allocates this buffer taking into consideration new
-       * requirements. The internal memory should be considered uninitialized.
-       */
-      virtual void set (const bob::io::base::array::typeinfo& req);
-
-      /**
-       * @brief Type information for this buffer.
-       */
-      virtual const bob::io::base::array::typeinfo& type() const { return m_type; }
-
-      /**
-       * @brief Borrows a reference from the underlying memory. This means
-       * this object continues to be responsible for deleting the memory and
-       * you should make sure that it outlives the usage of the returned
-       * pointer.
-       */
-      virtual void* ptr() { return m_ptr; }
-      virtual const void* ptr() const { return m_ptr; }
-
-      /**
-       * @brief Gets a handle to the owner of this buffer.
-       */
-      virtual boost::shared_ptr<void> owner() { return m_data; }
-      virtual boost::shared_ptr<const void> owner() const { return m_data; }
-
-      /**
-       * @brief Cast the array to a different type by copying. If the type is
-       * omitted, we just make a plain copy of this array.
-       */
-      virtual boost::python::object copy
-        (const boost::python::object& dtype = boost::python::object());
-
-      /**
-       * @brief Gets a shallow copy of this array, if internally it is a NumPy
-       * array. Otherwise, returns a wrapper around the internal buffer memory
-       * and correctly reference counts it so the given object becomes
-       * responsible for the internal buffer as well.
-       *
-       * For this technique to always succeed, we use the recommendation for
-       * generating the numpy arrays with a special de-allocator as found here:
-       * http://blog.enthought.com/python/numpy-arrays-with-pre-allocated-memory
-       */
-      virtual boost::python::object pyobject();
-
-      /**
-       * @brief type cast operator converting this object into a boost::python::object
-       */
-      operator boost::python::object(){return pyobject();}
-
-      /**
-       * @brief Tells if the buffer is writeable
-       */
-      virtual bool is_writeable() const; ///< PyArray_ISWRITEABLE
-
-    private: //representation
-
-      bob::io::base::array::typeinfo m_type; ///< type information
-      void* m_ptr; ///< pointer to the data
-      bool m_is_numpy; ///< true if initiated with a NumPy array
-      boost::shared_ptr<void> m_data; ///< Pointer to the data owner
-
-  };
-
-  /**
-   * @brief The ndarray class is just a smart pointer wrapper over the
-   * concrete implementation of py_array.
-   */
-  class ndarray {
-
-    public: //api
-
-      /**
-       * @brief Builds a new array from an array-like object but coerces to a
-       * certain type.
-       *
-       * @param array_like An ndarray object, inherited type or any object that
-       * can be cast into an array. Note that, in case of casting, we will need
-       * to copy the data. Otherwise, we just refer.
-       *
-       * @param dtype_like Anything that can be cast to a description type.
-       */
-      ndarray(boost::python::object array_like,
-          boost::python::object dtype_like);
-
-      /**
-       * @brief Builds a new array from an array-like object but coerces to a
-       * certain type.
-       *
-       * @param array_like An ndarray object, inherited type or any object that
-       * can be cast into an array. Note that, in case of casting, we will need
-       * to copy the data. Otherwise, we just refer.
-       */
-      ndarray(boost::python::object array_like);
-
-      /**
-       * @brief Builds a new array from scratch using a type and shape
-       */
-      ndarray(const bob::io::base::array::typeinfo& info);
-
-      template <typename T>
-      ndarray(bob::io::base::array::ElementType t, T d0)
-        : px(new py_array(t, d0)) { }
-      template <typename T>
-      ndarray(bob::io::base::array::ElementType t, T d0, T d1)
-        : px(new py_array(t, d0, d1)) { }
-      template <typename T>
-      ndarray(bob::io::base::array::ElementType t, T d0, T d1, T d2)
-        : px(new py_array(t, d0, d1, d2)) { }
-      template <typename T>
-      ndarray(bob::io::base::array::ElementType t, T d0, T d1, T d2, T d3)
-        : px(new py_array(t, d0, d1, d2, d3)) { }
-      template <typename T>
-      ndarray(bob::io::base::array::ElementType t, T d0, T d1, T d2, T d3, T d4)
-        : px(new py_array(t, d0, d1, d2, d3, d4)) { }
-
-      /**
-       * @brief D'tor virtualization
-       */
-      virtual ~ndarray();
-
-      /**
-       * @brief Returns the type information
-       */
-      virtual const bob::io::base::array::typeinfo& type() const;
-
-      /**
-       * @brief Returns the underlying python representation.
-       */
-      virtual boost::python::object self();
-
-      /**
-       * @brief type cast operator converting this object into a boost::python::object
-       */
-      operator boost::python::object(){return self();}
-
-      /**
-       * @brief Returns a temporary blitz::Array<> skin over this ndarray.
-       *
-       * Attention: If you use this method, you have to make sure that this
-       * ndarray outlives the blitz::Array<> and that such blitz::Array<> will
-       * not be re-allocated or have any other changes made to it, except for
-       * the data contents.
-       */
-      template <typename T, int N> blitz::Array<T,N> bz () {
-
-        typedef blitz::Array<T,N> array_type;
-        typedef blitz::TinyVector<int,N> shape_type;
-
-        const bob::io::base::array::typeinfo& info = px->type();
-
-        if (info.nd != N) {
-          boost::format mesg("cannot wrap numpy.ndarray(%s,%d) as blitz::Array<%s,%s> - dimensions do not match");
-          mesg % bob::io::base::array::stringize(info.dtype) % info.nd;
-          mesg % bob::io::base::array::stringize<T>() % N;
-          throw std::runtime_error(mesg.str().c_str());
-        }
-
-        if (info.dtype != bob::io::base::array::getElementType<T>()) {
-          boost::format mesg("cannot wrap numpy.ndarray(%s,%d) as blitz::Array<%s,%s> - data type does not match");
-          mesg % bob::io::base::array::stringize(info.dtype) % info.nd;
-          mesg % bob::io::base::array::stringize<T>() % N;
-          throw std::runtime_error(mesg.str().c_str());
-        }
-
-        shape_type shape;
-        shape_type stride;
-        for (size_t k=0; k<info.nd; ++k) {
-          shape[k] = info.shape[k];
-          stride[k] = info.stride[k];
-        }
-
-        //finally, we return the wrapper.
-        return array_type((T*)px->ptr(), shape, stride, blitz::neverDeleteData);
-      }
-
-    protected: //representation
-
-      boost::shared_ptr<py_array> px;
-
-  };
-
-  /**
-   * @brief A specialization of ndarray that is used to cast types from python
-   * that will **not** be modified in C++.
-   *
-   * Conversion requirements for this type can be made less restrictive since
-   * we consider the user just wants to pass a value to the method or function
-   * using this type. This opposes to the plain ndarray, in which the user may
-   * want to modify its contents by skinning it with a blitz::Array<> layer.
-   */
-  class const_ndarray: public ndarray {
-
-    public: //api
-
-      /**
-       * @brief Builds a new array from an array-like object but coerces to a
-       * certain type.
-       *
-       * @param array_like An ndarray object, inherited type or any object that
-       * can be cast into an array. Note that, in case of casting, we will need
-       * to copy the data. Otherwise, we just refer.
-       */
-      const_ndarray(boost::python::object array_like);
-
-      /**
-       * @brief D'tor virtualization
-       */
-      virtual ~const_ndarray();
-
-      /**
-       * @brief Returns a temporary blitz::Array<> skin over this const_ndarray,
-       * if possible, otherwise it will COPY the array to the requested type
-       * and returns the copy.
-       *
-       * Attention: If you use this method, you have to make sure that this
-       * ndarray outlives the blitz::Array<>, in case the data is not copied.
-       */
-      template <typename T, int N> const blitz::Array<T,N> cast() {
-        const bob::io::base::array::typeinfo& info = px->type();
-
-        if (info.nd != N) {
-          boost::format mesg("cannot wrap numpy.ndarray(%s,%d) as blitz::Array<%s,%s> - dimensions do not match");
-          mesg % bob::io::base::array::stringize(info.dtype) % info.nd;
-          mesg % bob::io::base::array::stringize<T>() % N;
-          throw std::runtime_error(mesg.str().c_str());
-        }
-
-        if (info.dtype == bob::io::base::array::getElementType<T>()) {
-          // Type and shape matches, return the shallow copy of the array.
-          return bz<T,N>();
-        }
-
-        // if we got here, we have to copy-cast
-        // call the correct version of the cast function
-        switch(info.dtype){
-          // boolean types
-          case bob::io::base::array::t_bool: return bob::core::array::cast<T>(bz<bool,N>());
-
-          // integral types
-          case bob::io::base::array::t_int8: return bob::core::array::cast<T>(bz<int8_t,N>());
-          case bob::io::base::array::t_int16: return bob::core::array::cast<T>(bz<int16_t,N>());
-          case bob::io::base::array::t_int32: return bob::core::array::cast<T>(bz<int32_t,N>());
-          case bob::io::base::array::t_int64: return bob::core::array::cast<T>(bz<int64_t,N>());
-
-          // unsigned integral types
-          case bob::io::base::array::t_uint8: return bob::core::array::cast<T>(bz<uint8_t,N>());
-          case bob::io::base::array::t_uint16: return bob::core::array::cast<T>(bz<uint16_t,N>());
-          case bob::io::base::array::t_uint32: return bob::core::array::cast<T>(bz<uint32_t,N>());
-          case bob::io::base::array::t_uint64: return bob::core::array::cast<T>(bz<uint64_t,N>());
-
-          // floating point types
-          case bob::io::base::array::t_float32: return bob::core::array::cast<T>(bz<float,N>());
-          case bob::io::base::array::t_float64: return bob::core::array::cast<T>(bz<double,N>());
-          case bob::io::base::array::t_float128: return bob::core::array::cast<T>(bz<long double,N>());
-
-          // complex types
-          case bob::io::base::array::t_complex64: return bob::core::array::cast<T>(bz<std::complex<float>,N>());
-          case bob::io::base::array::t_complex128: return bob::core::array::cast<T>(bz<std::complex<double>,N>());
-          case bob::io::base::array::t_complex256: return bob::core::array::cast<T>(bz<std::complex<long double>,N>());
-
-          default: throw std::runtime_error("cast to the given (unknown) data type is not possible yet");
-        }
-      }
-
-  };
-
-}}
-
-#endif /* BOB_PYTHON_NDARRAY_H */
diff --git a/bob/learn/misc/old/ndarray_numpy.cc b/bob/learn/misc/old/ndarray_numpy.cc
deleted file mode 100644
index 3b69a0a..0000000
--- a/bob/learn/misc/old/ndarray_numpy.cc
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- * @author Andre Anjos <andre.anjos@idiap.ch>
- * @date Thu Nov 17 14:33:20 2011 +0100
- *
- * @brief Automatic converters to-from python for bob::python::ndarray
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-
-/**
- * Objects of this type create a binding between bob::python::ndarray and
- * NumPy arrays. You can specify a NumPy array as a parameter to a
- * bound method that would normally receive a blitz::Array<T,N> or a const
- * blitz::Array<T,N>& and the conversion will just magically happen, as
- * efficiently as possible.
- *
- * Please note that passing by value should be avoided as much as possible. In
- * this mode, the underlying method will still be able to alter the underlying
- * array storage area w/o being able to modify the array itself, causing a
- * gigantic mess. If you want to make something close to pass-by-value, just
- * pass by non-const reference instead.
- */
-struct ndarray_from_npy {
-
-  /**
-   * Registers converter from numpy array into a bob::python::ndarray
-   */
-  ndarray_from_npy() {
-    boost::python::converter::registry::push_back(&convertible, &construct,
-        boost::python::type_id<bob::python::ndarray>());
-  }
-
-  /**
-   * This method will determine if the input python object is convertible into
-   * an ndarray. To do that, the object has to be of type PyArrayObject
-   */
-  static void* convertible(PyObject* obj_ptr) {
-    if (PyArray_Check(obj_ptr)) return obj_ptr;
-    return 0;
-  }
-
-  /**
-   * This method will finally construct the C++ element out of the python
-   * object that was input. Please note that when boost::python reaches this
-   * method, the object has already been checked for convertibility.
-   */
-  static void construct(PyObject* obj_ptr,
-      boost::python::converter::rvalue_from_python_stage1_data* data) {
-
-    //black-magic required to setup the bob::python::ndarray storage area
-    void* storage = ((boost::python::converter::rvalue_from_python_storage<bob::python::ndarray>*)data)->storage.bytes;
-
-    boost::python::handle<> hdl(boost::python::borrowed(obj_ptr));
-    boost::python::object tmp(hdl);
-    new (storage) bob::python::ndarray(tmp);
-    data->convertible = storage;
-
-  }
-
-};
-
-/**
- * Objects of this type bind bob::python::ndarray's to numpy arrays. Your method
- * generates as output an object of this type and the object will be
- * automatically converted into a Numpy array.
- */
-struct ndarray_to_npy {
-
-  static PyObject* convert(const bob::python::ndarray& tv) {
-    return boost::python::incref(const_cast<bob::python::ndarray*>(&tv)->self().ptr());
-  }
-
-  static const PyTypeObject* get_pytype() { return &PyArray_Type; }
-
-};
-
-void register_ndarray_to_npy() {
-  boost::python::to_python_converter<bob::python::ndarray, ndarray_to_npy
-#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES
-                          ,true
-#endif
-              >();
-}
-
-/**
- * The same as for ndarray_from_npy, but bindings the const specialization. The
- * difference is that we don't require that the object given as input to be,
- * strictly, a NumPy ndarray, but are more relaxed.
- */
-struct const_ndarray_from_npy {
-
-  /**
-   * Registers converter from numpy array into a bob::python::ndarray
-   */
-  const_ndarray_from_npy() {
-    boost::python::converter::registry::push_back(&convertible, &construct,
-        boost::python::type_id<bob::python::const_ndarray>());
-  }
-
-  /**
-   * This method will determine if the input python object is convertible into
-   * an ndarray. To do that, the object has to convertible to a NumPy ndarray.
-   */
-  static void* convertible(PyObject* obj_ptr) {
-    boost::python::handle<> hdl(boost::python::borrowed(obj_ptr));
-    boost::python::object obj(hdl);
-    if (bob::python::convertible_to(obj, false, true)) //writeable=false, behaved=true
-      return obj_ptr;
-    return 0;
-  }
-
-  /**
-   * This method will finally construct the C++ element out of the python
-   * object that was input. Please note that when boost::python reaches this
-   * method, the object has already been checked for convertibility.
-   */
-  static void construct(PyObject* obj_ptr,
-      boost::python::converter::rvalue_from_python_stage1_data* data) {
-
-    //black-magic required to setup the bob::python::ndarray storage area
-    void* storage = ((boost::python::converter::rvalue_from_python_storage<bob::python::const_ndarray>*)data)->storage.bytes;
-
-    boost::python::handle<> hdl(boost::python::borrowed(obj_ptr));
-    boost::python::object tmp(hdl);
-    new (storage) bob::python::const_ndarray(tmp);
-    data->convertible = storage;
-
-  }
-
-};
-
-/**
- * Objects of this type bind bob::python::ndarray's to numpy arrays. Your method
- * generates as output an object of this type and the object will be
- * automatically converted into a Numpy array.
- */
-struct const_ndarray_to_npy {
-
-  static PyObject* convert(const bob::python::const_ndarray& tv) {
-    return boost::python::incref(const_cast<bob::python::const_ndarray*>(&tv)->self().ptr());
-  }
-
-  static const PyTypeObject* get_pytype() { return &PyArray_Type; }
-
-};
-
-void register_const_ndarray_to_npy() {
-  boost::python::to_python_converter<bob::python::const_ndarray, const_ndarray_to_npy
-#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES
-                          ,true
-#endif
-              >();
-}
-
-void bind_core_ndarray_numpy () {
-   ndarray_from_npy();
-   register_ndarray_to_npy();
-   const_ndarray_from_npy();
-   register_const_ndarray_to_npy();
-}
diff --git a/bob/learn/misc/old/plda.cc b/bob/learn/misc/old/plda.cc
deleted file mode 100644
index 64d94ed..0000000
--- a/bob/learn/misc/old/plda.cc
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Fri Oct 14 18:07:56 2011 +0200
- *
- * @brief Python bindings for the PLDABase/PLDAMachine
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
-#include <bob.io.base/api.h>
-
-#include "ndarray.h"
-#include <bob.learn.misc/PLDAMachine.h>
-
-using namespace boost::python;
-
-static void py_set_dim_d(bob::learn::misc::PLDABase& machine, const size_t dim_d)
-{
-  machine.resize(dim_d, machine.getDimF(), machine.getDimG());
-}
-static void py_set_dim_f(bob::learn::misc::PLDABase& machine, const size_t dim_f)
-{
-  machine.resize(machine.getDimD(), dim_f, machine.getDimG());
-}
-static void py_set_dim_g(bob::learn::misc::PLDABase& machine, const size_t dim_g)
-{
-  machine.resize(machine.getDimD(), machine.getDimF(), dim_g);
-}
-
-// Set methods that uses blitz::Arrays
-static void py_set_mu(bob::learn::misc::PLDABase& machine,
-  bob::python::const_ndarray mu)
-{
-  machine.setMu(mu.bz<double,1>());
-}
-
-static void py_set_f(bob::learn::misc::PLDABase& machine,
-  bob::python::const_ndarray f)
-{
-  machine.setF(f.bz<double,2>());
-}
-
-static void py_set_g(bob::learn::misc::PLDABase& machine,
-  bob::python::const_ndarray g)
-{
-  machine.setG(g.bz<double,2>());
-}
-
-static void py_set_sigma(bob::learn::misc::PLDABase& machine,
-  bob::python::const_ndarray sigma)
-{
-  machine.setSigma(sigma.bz<double,1>());
-}
-
-
-static double computeLogLikelihood(bob::learn::misc::PLDAMachine& plda,
-  bob::python::const_ndarray samples, bool with_enrolled_samples=true)
-{
-  const bob::io::base::array::typeinfo& info = samples.type();
-  switch (info.nd) {
-    case 1:
-      return plda.computeLogLikelihood(samples.bz<double,1>(), with_enrolled_samples);
-    case 2:
-      return plda.computeLogLikelihood(samples.bz<double,2>(), with_enrolled_samples);
-    default:
-      PYTHON_ERROR(TypeError, "PLDA log-likelihood computation does not accept input array with '" SIZE_T_FMT "' dimensions (only 1D or 2D arrays)", info.nd);
-  }
-}
-
-static double plda_forward_sample(bob::learn::misc::PLDAMachine& m,
-  bob::python::const_ndarray samples)
-{
-  const bob::io::base::array::typeinfo& info = samples.type();
-  switch (info.nd) {
-    case 1:
-      {
-        double score;
-        // Calls the forward function
-        m.forward(samples.bz<double,1>(), score);
-        return score;
-      }
-    case 2:
-      {
-        double score;
-        // Calls the forward function
-        m.forward(samples.bz<double,2>(), score);
-        return score;
-      }
-    default:
-      PYTHON_ERROR(TypeError, "PLDA forwarding does not accept input array with '" SIZE_T_FMT "' dimensions (only 1D or 2D arrays)", info.nd);
-  }
-}
-
-static double py_log_likelihood_point_estimate(bob::learn::misc::PLDABase& plda,
-  bob::python::const_ndarray xij, bob::python::const_ndarray hi,
-  bob::python::const_ndarray wij)
-{
-  return plda.computeLogLikelihoodPointEstimate(xij.bz<double,1>(),
-           hi.bz<double,1>(), wij.bz<double,1>());
-}
-
-BOOST_PYTHON_FUNCTION_OVERLOADS(computeLogLikelihood_overloads, computeLogLikelihood, 2, 3)
-
-
-static boost::shared_ptr<bob::learn::misc::PLDABase> b_init(boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::PLDABase>(new bob::learn::misc::PLDABase(*hdf5->f));
-}
-
-static void b_load(bob::learn::misc::PLDABase& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void b_save(const bob::learn::misc::PLDABase& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-
-static boost::shared_ptr<bob::learn::misc::PLDAMachine> m_init(boost::python::object file, boost::shared_ptr<bob::learn::misc::PLDABase> b){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  return boost::shared_ptr<bob::learn::misc::PLDAMachine>(new bob::learn::misc::PLDAMachine(*hdf5->f, b));
-}
-
-static void m_load(bob::learn::misc::PLDAMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.load(*hdf5->f);
-}
-
-static void m_save(const bob::learn::misc::PLDAMachine& self, boost::python::object file){
-  if (!PyBobIoHDF5File_Check(file.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.io.base.HDF5File");
-  PyBobIoHDF5FileObject* hdf5 = (PyBobIoHDF5FileObject*) file.ptr();
-  self.save(*hdf5->f);
-}
-
-void bind_machine_plda()
-{
-  class_<bob::learn::misc::PLDABase, boost::shared_ptr<bob::learn::misc::PLDABase> >("PLDABase", "A PLDABase can be seen as a container for the subspaces F, G, the diagonal covariance matrix sigma (stored as a 1D array) and the mean vector mu when performing Probabilistic Linear Discriminant Analysis (PLDA). PLDA is a probabilistic model that incorporates components describing both between-class and within-class variations. A PLDABase can be shared between several PLDAMachine that contains class-specific information (information about the enrolment samples).\n\nReferences:\n1. 'A Scalable Formulation of Probabilistic Linear Discriminant Analysis: Applied to Face Recognition', Laurent El Shafey, Chris McCool, Roy Wallace, Sebastien Marcel, TPAMI'2013\n2. 'Probabilistic Linear Discriminant Analysis for Inference About Identity', Prince and Elder, ICCV'2007.\n3. 'Probabilistic Models for Inference about Identity', Li, Fu, Mohammed, Elder and Prince, TPAMI'2012.", init<const size_t, const size_t, const size_t, optional<const double> >((arg("self"), arg("dim_d"), arg("dim_f"), arg("dim_g"), arg("variance_flooring")=0.), "Builds a new PLDABase. dim_d is the dimensionality of the input features, dim_f is the dimensionality of the F subspace and dim_g the dimensionality of the G subspace. The variance flooring threshold is the minimum value that the variance sigma can reach, as this diagonal matrix is inverted."))
-    .def(init<>((arg("self")), "Constructs a new empty PLDABase."))
-    .def("__init__", boost::python::make_constructor(&b_init), "Constructs a new PLDABase from a configuration file.")
-    .def(init<const bob::learn::misc::PLDABase&>((arg("self"), arg("machine")), "Copy constructs a PLDABase"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::PLDABase::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this PLDABase with the 'other' one to be approximately the same.")
-    .def("load", &b_load, (arg("self"), arg("config")), "Loads the configuration parameters from a configuration file.")
-    .def("save", &b_save, (arg("self"), arg("config")), "Saves the configuration parameters to a configuration file.")
-    .add_property("dim_d", &bob::learn::misc::PLDABase::getDimD, &py_set_dim_d, "Dimensionality of the input feature vectors")
-    .add_property("dim_f", &bob::learn::misc::PLDABase::getDimF, &py_set_dim_f, "Dimensionality of the F subspace/matrix of the PLDA model")
-    .add_property("dim_g", &bob::learn::misc::PLDABase::getDimG, &py_set_dim_g, "Dimensionality of the G subspace/matrix of the PLDA model")
-    .add_property("mu", make_function(&bob::learn::misc::PLDABase::getMu, return_value_policy<copy_const_reference>()), &py_set_mu, "The mean vector mu of the PLDA model")
-    .add_property("f", make_function(&bob::learn::misc::PLDABase::getF, return_value_policy<copy_const_reference>()), &py_set_f, "The subspace/matrix F of the PLDA model")
-    .add_property("g", make_function(&bob::learn::misc::PLDABase::getG, return_value_policy<copy_const_reference>()), &py_set_g, "The subspace/matrix G of the PLDA model")
-    .add_property("sigma", make_function(&bob::learn::misc::PLDABase::getSigma, return_value_policy<copy_const_reference>()), &py_set_sigma, "The diagonal covariance matrix (represented by a 1D numpy array) sigma of the PLDA model")
-    .add_property("variance_threshold", &bob::learn::misc::PLDABase::getVarianceThreshold, &bob::learn::misc::PLDABase::setVarianceThreshold,
-      "The variance flooring threshold, i.e. the minimum allowed value of variance (sigma) in each dimension. "
-      "The variance sigma will be set to this value if an attempt is made to set it to a smaller value.")
-    .def("resize", &bob::learn::misc::PLDABase::resize, (arg("self"), arg("dim_d"), arg("dim_f"), arg("dim_g")), "Resizes the dimensionality of the PLDA model. Paramaters mu, F, G and sigma are reinitialized.")
-    .def("has_gamma", &bob::learn::misc::PLDABase::hasGamma, (arg("self"), arg("a")), "Tells if the gamma matrix for the given number of samples has already been computed. (gamma = inverse(I+a.F^T.beta.F), please check the documentation/source code for more details.")
-    .def("compute_gamma", &bob::learn::misc::PLDABase::computeGamma, (arg("self"), arg("a"), arg("gamma")), "Computes the gamma matrix for the given number of samples. (gamma = inverse(I+a.F^T.beta.F), please check the documentation/source code for more details.")
-    .def("get_add_gamma", make_function(&bob::learn::misc::PLDABase::getAddGamma, return_value_policy<copy_const_reference>(), (arg("self"), arg("a"))), "Computes the gamma matrix for the given number of samples. (gamma = inverse(I+a.F^T.beta.F), please check the documentation/source code for more details.")
-    .def("get_gamma", make_function(&bob::learn::misc::PLDABase::getGamma, return_value_policy<copy_const_reference>(), (arg("self"), arg("a"))), "Returns the gamma matrix for the given number of samples if it has already been put in cache. Throws an exception otherwise. (gamma = inverse(I+a.F^T.beta.F), please check the documentation/source code for more details.")
-    .def("has_log_like_const_term", &bob::learn::misc::PLDABase::hasLogLikeConstTerm, (arg("self"), arg("a")), "Tells if the log likelihood constant term for the given number of samples has already been computed.")
-    .def("compute_log_like_const_term", (double (bob::learn::misc::PLDABase::*)(const size_t, const blitz::Array<double,2>&) const)&bob::learn::misc::PLDABase::computeLogLikeConstTerm, (arg("self"), arg("a"), arg("gamma")), "Computes the log likelihood constant term for the given number of samples.")
-    .def("get_add_log_like_const_term", &bob::learn::misc::PLDABase::getAddLogLikeConstTerm, (arg("self"), arg("a")), "Computes the log likelihood constant term for the given number of samples, and adds it to the machine (as well as gamma), if it does not already exist.")
-    .def("get_log_like_const_term", &bob::learn::misc::PLDABase::getLogLikeConstTerm, (arg("self"), arg("a")), "Returns the log likelihood constant term for the given number of samples if it has already been put in cache. Throws an exception otherwise.")
-    .def("clear_maps", &bob::learn::misc::PLDABase::clearMaps, (arg("self")), "Clear the maps containing the gamma's as well as the log likelihood constant term for few number of samples. These maps are used to make likelihood computations faster.")
-    .def("compute_log_likelihood_point_estimate", &py_log_likelihood_point_estimate, (arg("self"), arg("xij"), arg("hi"), arg("wij")), "Computes the log-likelihood of a sample given the latent variables hi and wij (point estimate rather than Bayesian-like full integration).")
-    .def(self_ns::str(self_ns::self))
-    .add_property("__isigma__", make_function(&bob::learn::misc::PLDABase::getISigma, return_value_policy<copy_const_reference>()), "sigma^{-1} matrix stored in cache")
-    .add_property("__alpha__", make_function(&bob::learn::misc::PLDABase::getAlpha, return_value_policy<copy_const_reference>()), "alpha matrix stored in cache")
-    .add_property("__beta__", make_function(&bob::learn::misc::PLDABase::getBeta, return_value_policy<copy_const_reference>()), "beta matrix stored in cache")
-    .add_property("__ft_beta__", make_function(&bob::learn::misc::PLDABase::getFtBeta, return_value_policy<copy_const_reference>()), "F^T.beta matrix stored in cache")
-    .add_property("__gt_i_sigma__", make_function(&bob::learn::misc::PLDABase::getGtISigma, return_value_policy<copy_const_reference>()), "G^T.sigma^{-1} matrix stored in cache")
-    .add_property("__logdet_alpha__", &bob::learn::misc::PLDABase::getLogDetAlpha, "Logarithm of the determinant of the alpha matrix stored in cache.")
-    .add_property("__logdet_sigma__", &bob::learn::misc::PLDABase::getLogDetSigma, "Logarithm of the determinant of the sigma matrix stored in cache.")
-    .def("__precompute__", &bob::learn::misc::PLDABase::precompute, (arg("self")), "Precomputes useful values such as alpha and beta.")
-    .def("__precompute_log_like__", &bob::learn::misc::PLDABase::precomputeLogLike, (arg("self")), "Precomputes useful values for log-likelihood computations.")
-  ;
-
-  class_<bob::learn::misc::PLDAMachine, boost::shared_ptr<bob::learn::misc::PLDAMachine> >("PLDAMachine", "A PLDAMachine contains class-specific information (from the enrolment samples) when performing Probabilistic Linear Discriminant Analysis (PLDA). It should be attached to a PLDABase that contains information such as the subspaces F and G.\n\nReferences:\n1. 'A Scalable Formulation of Probabilistic Linear Discriminant Analysis: Applied to Face Recognition', Laurent El Shafey, Chris McCool, Roy Wallace, Sebastien Marcel, TPAMI'2013\n2. 'Probabilistic Linear Discriminant Analysis for Inference About Identity', Prince and Elder, ICCV'2007.\n3. 'Probabilistic Models for Inference about Identity', Li, Fu, Mohammed, Elder and Prince, TPAMI'2012.", init<boost::shared_ptr<bob::learn::misc::PLDABase> >((arg("self"), arg("plda_base")), "Builds a new PLDAMachine. An attached PLDABase should be provided, that can be shared by several PLDAMachine."))
-    .def(init<>((arg("self")), "Constructs a new empty (invalid) PLDAMachine. A PLDABase should then be set using the 'plda_base' attribute of this object."))
-    .def("__init__", make_constructor(&m_init), "Constructs a new PLDAMachine from a configuration file (and a PLDABase object).")
-    .def(init<const bob::learn::misc::PLDAMachine&>((arg("self"), arg("machine")), "Copy constructs a PLDAMachine"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::PLDAMachine::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this PLDAMachine with the 'other' one to be approximately the same.")
-    .def("load", &m_load, (arg("self"), arg("config")), "Loads the configuration parameters from a configuration file. The PLDABase will not be loaded, and has to be set manually using the 'plda_base' attribute.")
-    .def("save", &m_save, (arg("self"), arg("config")), "Saves the configuration parameters to a configuration file. The PLDABase will not be saved, and has to be saved separately, as it can be shared by several PLDAMachines.")
-    .add_property("plda_base", &bob::learn::misc::PLDAMachine::getPLDABase, &bob::learn::misc::PLDAMachine::setPLDABase)
-    .add_property("dim_d", &bob::learn::misc::PLDAMachine::getDimD, "Dimensionality of the input feature vectors")
-    .add_property("dim_f", &bob::learn::misc::PLDAMachine::getDimF, "Dimensionality of the F subspace/matrix of the PLDA model")
-    .add_property("dim_g", &bob::learn::misc::PLDAMachine::getDimG, "Dimensionality of the G subspace/matrix of the PLDA model")
-    .add_property("n_samples", &bob::learn::misc::PLDAMachine::getNSamples, &bob::learn::misc::PLDAMachine::setNSamples, "Number of enrolled samples")
-    .add_property("w_sum_xit_beta_xi", &bob::learn::misc::PLDAMachine::getWSumXitBetaXi, &bob::learn::misc::PLDAMachine::setWSumXitBetaXi)
-    .add_property("weighted_sum", make_function(&bob::learn::misc::PLDAMachine::getWeightedSum, return_value_policy<copy_const_reference>()), &bob::learn::misc::PLDAMachine::setWeightedSum)
-    .add_property("log_likelihood", &bob::learn::misc::PLDAMachine::getLogLikelihood, &bob::learn::misc::PLDAMachine::setLogLikelihood)
-    .def("has_gamma", &bob::learn::misc::PLDAMachine::hasGamma, (arg("self"), arg("a")), "Tells if the gamma matrix for the given number of samples has already been computed. (gamma = inverse(I+a.F^T.beta.F), please check the documentation/source code for more details.")
-    .def("get_add_gamma", make_function(&bob::learn::misc::PLDAMachine::getAddGamma, return_value_policy<copy_const_reference>(), (arg("self"), arg("a"))), "Computes the gamma matrix for the given number of samples. (gamma = inverse(I+a.F^T.beta.F), please check the documentation/source code for more details.")
-    .def("get_gamma", make_function(&bob::learn::misc::PLDAMachine::getGamma, return_value_policy<copy_const_reference>(), (arg("self"), arg("a"))), "Returns the gamma matrix for the given number of samples if it has already been put in cache. Throws an exception otherwise. (gamma = inverse(I+a.F^T.beta.F), please check the documentation/source code for more details.")
-    .def("has_log_like_const_term", &bob::learn::misc::PLDAMachine::hasLogLikeConstTerm, (arg("self"), arg("a")), "Tells if the log likelihood constant term for the given number of samples has already been computed.")
-    .def("get_add_log_like_const_term", &bob::learn::misc::PLDAMachine::getAddLogLikeConstTerm, (arg("self"), arg("a")), "Computes the log likelihood constant term for the given number of samples, and adds it to the machine (as well as gamma), if it does not already exist.")
-    .def("get_log_like_const_term", &bob::learn::misc::PLDAMachine::getLogLikeConstTerm, (arg("self"), arg("a")), "Returns the log likelihood constant term for the given number of samples if it has already been put in cache. Throws an exception otherwise.")
-    .def("clear_maps", &bob::learn::misc::PLDAMachine::clearMaps, (arg("self")), "Clears the maps containing the gamma's as well as the log likelihood constant term for few number of samples. These maps are used to make likelihood computations faster.")
-    .def("compute_log_likelihood", &computeLogLikelihood, computeLogLikelihood_overloads((arg("self"), arg("sample"), arg("use_enrolled_samples")=true), "Computes the log-likelihood considering only the probe sample(s) or jointly the probe sample(s) and the enrolled samples."))
-    .def("__call__", &plda_forward_sample, (arg("self"), arg("sample")), "Processes a sample and returns a log-likelihood ratio score.")
-    .def("forward", &plda_forward_sample, (arg("self"), arg("sample")), "Processes a sample and returns a log-likelihood ratio score.")
-  ;
-}
diff --git a/bob/learn/misc/old/plda_trainer.cc b/bob/learn/misc/old/plda_trainer.cc
deleted file mode 100644
index c684444..0000000
--- a/bob/learn/misc/old/plda_trainer.cc
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Fri Oct 14 18:07:56 2011 +0200
- *
- * @brief Python bindings to Probabilistic Linear Discriminant Analysis
- * trainers.
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-#include <boost/python/stl_iterator.hpp>
-#include <bob.learn.misc/PLDAMachine.h>
-#include <bob.learn.misc/PLDATrainer.h>
-
-using namespace boost::python;
-
-typedef bob::learn::misc::EMTrainer<bob::learn::misc::PLDABase, std::vector<blitz::Array<double,2> > > EMTrainerPLDA;
-
-static void plda_train(EMTrainerPLDA& t, bob::learn::misc::PLDABase& m, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> dbegin(data), dend;
-  std::vector<bob::python::const_ndarray> vdata(dbegin, dend);
-  std::vector<blitz::Array<double,2> > vdata_ref;
-  for(std::vector<bob::python::const_ndarray>::iterator it=vdata.begin();
-      it!=vdata.end(); ++it)
-    vdata_ref.push_back(it->bz<double,2>());
-  // Calls the train function
-  t.train(m, vdata_ref);
-}
-
-static void plda_initialize(EMTrainerPLDA& t, bob::learn::misc::PLDABase& m, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> dbegin(data), dend;
-  std::vector<bob::python::const_ndarray> vdata(dbegin, dend);
-  std::vector<blitz::Array<double,2> > vdata_ref;
-  for(std::vector<bob::python::const_ndarray>::iterator it=vdata.begin();
-      it!=vdata.end(); ++it)
-    vdata_ref.push_back(it->bz<double,2>());
-  // Calls the initialization function
-  t.initialize(m, vdata_ref);
-}
-
-static void plda_eStep(EMTrainerPLDA& t, bob::learn::misc::PLDABase& m, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> dbegin(data), dend;
-  std::vector<bob::python::const_ndarray> vdata(dbegin, dend);
-  std::vector<blitz::Array<double,2> > vdata_ref;
-  for(std::vector<bob::python::const_ndarray>::iterator it=vdata.begin();
-      it!=vdata.end(); ++it)
-    vdata_ref.push_back(it->bz<double,2>());
-  // Calls the eStep function
-  t.eStep(m, vdata_ref);
-}
-
-static void plda_mStep(EMTrainerPLDA& t, bob::learn::misc::PLDABase& m, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> dbegin(data), dend;
-  std::vector<bob::python::const_ndarray> vdata(dbegin, dend);
-  std::vector<blitz::Array<double,2> > vdata_ref;
-  for(std::vector<bob::python::const_ndarray>::iterator it=vdata.begin();
-      it!=vdata.end(); ++it)
-    vdata_ref.push_back(it->bz<double,2>());
-  // Calls the mStep function
-  t.mStep(m, vdata_ref);
-}
-
-static void plda_finalize(EMTrainerPLDA& t, bob::learn::misc::PLDABase& m, object data)
-{
-  stl_input_iterator<bob::python::const_ndarray> dbegin(data), dend;
-  std::vector<bob::python::const_ndarray> vdata(dbegin, dend);
-  std::vector<blitz::Array<double,2> > vdata_ref;
-  for(std::vector<bob::python::const_ndarray>::iterator it=vdata.begin();
-      it!=vdata.end(); ++it)
-    vdata_ref.push_back(it->bz<double,2>());
-  // Calls the finalization function
-  t.finalize(m, vdata_ref);
-}
-
-static object get_z_first_order(bob::learn::misc::PLDATrainer& m) {
-  const std::vector<blitz::Array<double,2> >& v = m.getZFirstOrder();
-  list retval;
-  for (size_t k=0; k<v.size(); ++k) retval.append(v[k]); //copy
-  return tuple(retval);
-}
-
-static object get_z_second_order(bob::learn::misc::PLDATrainer& m) {
-  const std::vector<blitz::Array<double,3> >& v = m.getZSecondOrder();
-  list retval;
-  for (size_t k=0; k<v.size(); ++k) retval.append(v[k]); //copy
-  return tuple(retval);
-}
-
-
-// include the random API of bob.core
-#include <bob.core/random_api.h>
-static boost::python::object TB_getRng(EMTrainerPLDA& self){
-  // create new object
-  PyObject* o = PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type,0);
-  reinterpret_cast<PyBoostMt19937Object*>(o)->rng = self.getRng().get();
-  return boost::python::object(boost::python::handle<>(boost::python::borrowed(o)));
-}
-
-#include <boost/make_shared.hpp>
-static void TB_setRng(EMTrainerPLDA& self, boost::python::object rng){
-  if (!PyBoostMt19937_Check(rng.ptr())) PYTHON_ERROR(TypeError, "Would have expected a bob.core.random.mt19937 object");
-  PyBoostMt19937Object* o = reinterpret_cast<PyBoostMt19937Object*>(rng.ptr());
-  self.setRng(boost::make_shared<boost::mt19937>(*o->rng));
-}
-
-
-void bind_trainer_plda()
-{
-  class_<EMTrainerPLDA, boost::noncopyable>("EMTrainerPLDA", "The base python class for all EM/PLDA-based trainers.", no_init)
-    .add_property("max_iterations", &EMTrainerPLDA::getMaxIterations, &EMTrainerPLDA::setMaxIterations, "Max iterations")
-    .add_property("rng", &TB_getRng, &TB_setRng, "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.")
-    .def("train", &plda_train, (arg("self"), arg("machine"), arg("data")), "Trains a PLDABase using data (mu, F, G and sigma are learnt).")
-    .def("initialize", &plda_initialize, (arg("self"), arg("machine"), arg("data")), "This method is called before the EM algorithm")
-    .def("finalize", &plda_finalize, (arg("self"), arg("machine"), arg("data")), "This method is called at the end of the EM algorithm")
-    .def("e_step", &plda_eStep, (arg("self"), arg("machine"), arg("data")),
-       "Updates the hidden variable distribution (or the sufficient statistics) given the Machine parameters. ")
-    .def("m_step", &plda_mStep, (arg("self"), arg("machine"), arg("data")), "Updates the Machine parameters given the hidden variable distribution (or the sufficient statistics)")
-  ;
-
-  class_<bob::learn::misc::PLDATrainer, boost::noncopyable, bases<EMTrainerPLDA> > PLDAT("PLDATrainer", "A trainer for Probabilistic Linear Discriminant Analysis (PLDA). The train() method will learn the mu, F, G and Sigma of the model, whereas the enrol() method, will store model information about the enrolment samples for a specific class.\n\nReferences:\n1. 'A Scalable Formulation of Probabilistic Linear Discriminant Analysis: Applied to Face Recognition', Laurent El Shafey, Chris McCool, Roy Wallace, Sebastien Marcel, TPAMI'2013\n2. 'Probabilistic Linear Discriminant Analysis for Inference About Identity', Prince and Elder, ICCV'2007.\n3. 'Probabilistic Models for Inference about Identity', Li, Fu, Mohammed, Elder and Prince, TPAMI'2012.", no_init);
-
-  PLDAT.def(init<optional<const size_t, const bool> >((arg("self"), arg("max_iterations")=100, arg("use_sum_second_order")=true),"Initializes a new PLDATrainer."))
-    .def(init<const bob::learn::misc::PLDATrainer&>((arg("self"), arg("trainer")), "Copy constructs a PLDATrainer"))
-    .def(self == self)
-    .def(self != self)
-    .def("is_similar_to", &bob::learn::misc::PLDATrainer::is_similar_to, (arg("self"), arg("other"), arg("r_epsilon")=1e-5, arg("a_epsilon")=1e-8), "Compares this PLDATrainer with the 'other' one to be approximately the same.")
-    .def("enrol", &bob::learn::misc::PLDATrainer::enrol, (arg("self"), arg("plda_machine"), arg("data")), "Enrol a class-specific model (PLDAMachine) given a set of enrolment samples.")
-    .add_property("use_sum_second_order", &bob::learn::misc::PLDATrainer::getUseSumSecondOrder, &bob::learn::misc::PLDATrainer::setUseSumSecondOrder, "Tells whether the second order statistics are stored during the training procedure, or only their sum.")
-    .add_property("z_first_order", &get_z_first_order)
-    .add_property("z_second_order", &get_z_second_order)
-    .add_property("z_second_order_sum", make_function(&bob::learn::misc::PLDATrainer::getZSecondOrderSum, return_value_policy<copy_const_reference>()))
-  ;
-
-  // Sets the scope to the one of the PLDATrainer
-  scope s(PLDAT);
-
-  // Adds enums in the previously defined current scope
-  enum_<bob::learn::misc::PLDATrainer::InitFMethod>("init_f_method")
-    .value("RANDOM_F", bob::learn::misc::PLDATrainer::RANDOM_F)
-    .value("BETWEEN_SCATTER", bob::learn::misc::PLDATrainer::BETWEEN_SCATTER)
-    .export_values()
-  ;
-
-  enum_<bob::learn::misc::PLDATrainer::InitGMethod>("init_g_method")
-    .value("RANDOM_G", bob::learn::misc::PLDATrainer::RANDOM_G)
-    .value("WITHIN_SCATTER", bob::learn::misc::PLDATrainer::WITHIN_SCATTER)
-    .export_values()
-  ;
-
-  enum_<bob::learn::misc::PLDATrainer::InitSigmaMethod>("init_sigma_method")
-    .value("RANDOM_SIGMA", bob::learn::misc::PLDATrainer::RANDOM_SIGMA)
-    .value("VARIANCE_G", bob::learn::misc::PLDATrainer::VARIANCE_G)
-    .value("CONSTANT", bob::learn::misc::PLDATrainer::CONSTANT)
-    .value("VARIANCE_DATA", bob::learn::misc::PLDATrainer::VARIANCE_DATA)
-    .export_values()
-  ;
-
-  // Binds randomization/enumration-related methods
-  PLDAT.add_property("init_f_method", &bob::learn::misc::PLDATrainer::getInitFMethod, &bob::learn::misc::PLDATrainer::setInitFMethod, "The method used for the initialization of F.")
-    .add_property("init_f_ratio", &bob::learn::misc::PLDATrainer::getInitFRatio, &bob::learn::misc::PLDATrainer::setInitFRatio, "The ratio used for the initialization of F.")
-    .add_property("init_g_method", &bob::learn::misc::PLDATrainer::getInitGMethod, &bob::learn::misc::PLDATrainer::setInitGMethod, "The method used for the initialization of G.")
-    .add_property("init_g_ratio", &bob::learn::misc::PLDATrainer::getInitGRatio, &bob::learn::misc::PLDATrainer::setInitGRatio, "The ratio used for the initialization of G.")
-    .add_property("init_sigma_method", &bob::learn::misc::PLDATrainer::getInitSigmaMethod, &bob::learn::misc::PLDATrainer::setInitSigmaMethod, "The method used for the initialization of sigma.")
-    .add_property("init_sigma_ratio", &bob::learn::misc::PLDATrainer::getInitSigmaRatio, &bob::learn::misc::PLDATrainer::setInitSigmaRatio, "The ratio used for the initialization of sigma.")
-  ;
-}
diff --git a/bob/learn/misc/old/tinyvector.cc b/bob/learn/misc/old/tinyvector.cc
deleted file mode 100644
index f992e10..0000000
--- a/bob/learn/misc/old/tinyvector.cc
+++ /dev/null
@@ -1,290 +0,0 @@
-/**
- * @author André Anjos <andre.anjos@idiap.ch>
- * @date Tue Jan 18 17:07:26 2011 +0100
- *
- * @brief Automatic converters to-from python for blitz::TinyVectors
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include <boost/python.hpp>
-#include <boost/format.hpp>
-#include <blitz/tinyvec2.h>
-
-/**
- * Objects of this type create a binding between blitz::TinyVector<T,N> and
- * python iterables. You can specify a python iterable as a parameter to a
- * bound method that would normally receive a TinyVector<T,N> or a const
- * TinyVector<T,N>& and the conversion will just magically happen.
- */
-template <typename T, int N>
-struct tinyvec_from_sequence {
-  typedef typename blitz::TinyVector<T,N> container_type;
-
-  /**
-   * Registers converter from any python sequence into a blitz::TinyVector<T,N>
-   */
-  tinyvec_from_sequence() {
-    boost::python::converter::registry::push_back(&convertible, &construct,
-        boost::python::type_id<container_type>());
-  }
-
-  /**
-   * This method will determine if the input python object is convertible into
-   * a TinyVector<T,N>
-   *
-   * Conditions:
-   * - The input object has to have N elements.
-   * - The input object has to be iterable.
-   * - All elements in the input object have to be convertible to T objects
-   */
-  static void* convertible(PyObject* obj_ptr) {
-
-    /**
-     * this bit will check if the input obj is one of the expected input types
-     * It will return 0 if the element in question is neither:
-     * - a list
-     * - a tuple
-     * - an iterable
-     * - a range
-     * - is not a string _and_ is not an unicode string _and_
-     *   (is a valid object pointer _or_ (too long to continue... ;-)
-     */
-    if (!(PyList_Check(obj_ptr)
-          || PyTuple_Check(obj_ptr)
-          || PyIter_Check(obj_ptr)
-          || PyRange_Check(obj_ptr)
-          || (
-#if PY_VERSION_HEX < 0x03000000
-               !PyString_Check(obj_ptr)
-#else
-               !PyBytes_Check(obj_ptr)
-#endif
-            && !PyUnicode_Check(obj_ptr)
-            && ( Py_TYPE(obj_ptr) == 0
-              || Py_TYPE(Py_TYPE(obj_ptr)) == 0
-              || Py_TYPE(Py_TYPE(obj_ptr))->tp_name == 0
-              || std::strcmp(
-                 Py_TYPE(Py_TYPE(obj_ptr))->tp_name, "Boost.Python.class") != 0)
-            && PyObject_HasAttrString(obj_ptr, "__len__")
-            && PyObject_HasAttrString(obj_ptr, "__getitem__")))) return 0;
-
-    //this bit will check if we have exactly N
-    if(PyObject_Length(obj_ptr) != N) {
-      PyErr_Clear();
-      return 0;
-    }
-
-    //this bit will make sure we can extract an interator from the object
-    boost::python::handle<> obj_iter(
-        boost::python::allow_null(PyObject_GetIter(obj_ptr)));
-    if (!obj_iter.get()) { // must be convertible to an iterator
-      PyErr_Clear();
-      return 0;
-    }
-
-    //this bit will check every element for convertibility into "T"
-    bool is_range = PyRange_Check(obj_ptr);
-    std::size_t i=0;
-    for(;;++i) { //if everything ok, should leave for loop with i == N
-      boost::python::handle<> py_elem_hdl(
-          boost::python::allow_null(PyIter_Next(obj_iter.get())));
-      if (PyErr_Occurred()) {
-        PyErr_Clear();
-        return 0;
-      }
-      if (!py_elem_hdl.get()) break; // end of iteration
-      boost::python::object py_elem_obj(py_elem_hdl);
-      boost::python::extract<T> elem_proxy(py_elem_obj);
-      if (!elem_proxy.check()) return 0;
-      if (is_range) break; // in a range all elements are of the same type
-    }
-    if (!is_range) assert(i == N);
-
-    return obj_ptr;
-  }
-
-  /**
-   * This method will finally construct the C++ element out of the python
-   * object that was input. Please note that when boost::python reaches this
-   * method, the object has already been checked for convertibility.
-   */
-  static void construct(PyObject* obj_ptr,
-      boost::python::converter::rvalue_from_python_stage1_data* data) {
-    boost::python::handle<> obj_iter(PyObject_GetIter(obj_ptr));
-    void* storage = ((boost::python::converter::rvalue_from_python_storage<container_type>*)data)->storage.bytes;
-    new (storage) container_type();
-    data->convertible = storage;
-    container_type& result = *((container_type*)storage);
-    std::size_t i=0;
-    for(;;++i) {
-      boost::python::handle<> py_elem_hdl(
-          boost::python::allow_null(PyIter_Next(obj_iter.get())));
-      if (PyErr_Occurred()) boost::python::throw_error_already_set();
-      if (!py_elem_hdl.get()) break; // end of iteration
-      boost::python::object py_elem_obj(py_elem_hdl);
-      typename boost::python::extract<T> elem_proxy(py_elem_obj);
-      result[i] = elem_proxy();
-    }
-    if (i != N) {
-      boost::format s("expected %d elements for TinyVector<T,%d>, got %d");
-      s % N % N % i;
-      PyErr_SetString(PyExc_RuntimeError, s.str().c_str());
-      boost::python::throw_error_already_set();
-    }
-  }
-
-};
-
-/**
- * Objects of this type bind TinyVector<T,N> to python tuples. Your method
- * generates as output an object of this type and the object will be
- * automatically converted into a python tuple.
- */
-template <typename T, int N>
-struct tinyvec_to_tuple {
-  typedef typename blitz::TinyVector<T,N> container_type;
-
-  static PyObject* convert(const container_type& tv) {
-    boost::python::list result;
-    typedef typename container_type::const_iterator const_iter;
-    for(const_iter p=tv.begin();p!=tv.end();++p) {
-      result.append(boost::python::object(*p));
-    }
-    return boost::python::incref(boost::python::tuple(result).ptr());
-  }
-
-  static const PyTypeObject* get_pytype() { return &PyTuple_Type; }
-
-};
-
-template <typename T, int N>
-void register_tinyvec_to_tuple() {
-  boost::python::to_python_converter<typename blitz::TinyVector<T,N>,
-                          tinyvec_to_tuple<T,N>
-#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES
-                          ,true
-#endif
-              >();
-}
-
-void bind_core_tinyvector () {
-
-  /**
-   * The following struct constructors will make sure we can input
-   * blitz::TinyVector<T,N> in our bound C++ routines w/o needing to specify
-   * special converters each time. The rvalue converters allow boost::python to
-   * automatically map the following inputs:
-   *
-   * a) const blitz::TinyVector<T,N>& (pass by const reference)
-   * b) blitz::TinyVector<T,N> (pass by value)
-   *
-   * Please note that the last case:
-   *
-   * c) blitz::TinyVector<T,N>& (pass by non-const reference)
-   *
-   * is NOT covered by these converters. The reason being that because the
-   * object may be changed, there is no way for boost::python to update the
-   * original python object, in a sensible manner, at the return of the method.
-   *
-   * Avoid passing by non-const reference in your methods.
-   */
-  tinyvec_from_sequence<int,1>();
-  tinyvec_from_sequence<int,2>();
-  tinyvec_from_sequence<int,3>();
-  tinyvec_from_sequence<int,4>();
-  tinyvec_from_sequence<int,5>();
-  tinyvec_from_sequence<int,6>();
-  tinyvec_from_sequence<int,7>();
-  tinyvec_from_sequence<int,8>();
-  tinyvec_from_sequence<int,9>();
-  tinyvec_from_sequence<int,10>();
-  tinyvec_from_sequence<int,11>();
-  tinyvec_from_sequence<uint64_t,1>();
-  tinyvec_from_sequence<uint64_t,2>();
-  tinyvec_from_sequence<uint64_t,3>();
-  tinyvec_from_sequence<uint64_t,4>();
-  tinyvec_from_sequence<uint64_t,5>();
-  tinyvec_from_sequence<uint64_t,6>();
-  tinyvec_from_sequence<uint64_t,7>();
-  tinyvec_from_sequence<uint64_t,8>();
-  tinyvec_from_sequence<uint64_t,9>();
-  tinyvec_from_sequence<uint64_t,10>();
-  tinyvec_from_sequence<uint64_t,11>();
-  tinyvec_from_sequence<double,1>();
-  tinyvec_from_sequence<double,2>();
-  tinyvec_from_sequence<double,3>();
-  tinyvec_from_sequence<double,4>();
-  tinyvec_from_sequence<double,5>();
-  tinyvec_from_sequence<double,6>();
-  tinyvec_from_sequence<double,7>();
-  tinyvec_from_sequence<double,8>();
-  tinyvec_from_sequence<double,9>();
-  tinyvec_from_sequence<double,10>();
-  tinyvec_from_sequence<double,11>();
-  if (typeid(int) != typeid(blitz::diffType)) {
-    tinyvec_from_sequence<blitz::diffType,1>();
-    tinyvec_from_sequence<blitz::diffType,2>();
-    tinyvec_from_sequence<blitz::diffType,3>();
-    tinyvec_from_sequence<blitz::diffType,4>();
-    tinyvec_from_sequence<blitz::diffType,5>();
-    tinyvec_from_sequence<blitz::diffType,6>();
-    tinyvec_from_sequence<blitz::diffType,7>();
-    tinyvec_from_sequence<blitz::diffType,8>();
-    tinyvec_from_sequence<blitz::diffType,9>();
-    tinyvec_from_sequence<blitz::diffType,10>();
-    tinyvec_from_sequence<blitz::diffType,11>();
-  }
-
-  /**
-   * The following struct constructors will make C++ return values of type
-   * blitz::TinyVector<T,N> to show up in the python side as tuples.
-   */
-  register_tinyvec_to_tuple<int,1>();
-  register_tinyvec_to_tuple<int,2>();
-  register_tinyvec_to_tuple<int,3>();
-  register_tinyvec_to_tuple<int,4>();
-  register_tinyvec_to_tuple<int,5>();
-  register_tinyvec_to_tuple<int,6>();
-  register_tinyvec_to_tuple<int,7>();
-  register_tinyvec_to_tuple<int,8>();
-  register_tinyvec_to_tuple<int,9>();
-  register_tinyvec_to_tuple<int,10>();
-  register_tinyvec_to_tuple<int,11>();
-  register_tinyvec_to_tuple<uint64_t,1>();
-  register_tinyvec_to_tuple<uint64_t,2>();
-  register_tinyvec_to_tuple<uint64_t,3>();
-  register_tinyvec_to_tuple<uint64_t,4>();
-  register_tinyvec_to_tuple<uint64_t,5>();
-  register_tinyvec_to_tuple<uint64_t,6>();
-  register_tinyvec_to_tuple<uint64_t,7>();
-  register_tinyvec_to_tuple<uint64_t,8>();
-  register_tinyvec_to_tuple<uint64_t,9>();
-  register_tinyvec_to_tuple<uint64_t,10>();
-  register_tinyvec_to_tuple<uint64_t,11>();
-  register_tinyvec_to_tuple<double,1>();
-  register_tinyvec_to_tuple<double,2>();
-  register_tinyvec_to_tuple<double,3>();
-  register_tinyvec_to_tuple<double,4>();
-  register_tinyvec_to_tuple<double,5>();
-  register_tinyvec_to_tuple<double,6>();
-  register_tinyvec_to_tuple<double,7>();
-  register_tinyvec_to_tuple<double,8>();
-  register_tinyvec_to_tuple<double,9>();
-  register_tinyvec_to_tuple<double,10>();
-  register_tinyvec_to_tuple<double,11>();
-  if (typeid(int) != typeid(blitz::diffType)) {
-    register_tinyvec_to_tuple<blitz::diffType,1>();
-    register_tinyvec_to_tuple<blitz::diffType,2>();
-    register_tinyvec_to_tuple<blitz::diffType,3>();
-    register_tinyvec_to_tuple<blitz::diffType,4>();
-    register_tinyvec_to_tuple<blitz::diffType,5>();
-    register_tinyvec_to_tuple<blitz::diffType,6>();
-    register_tinyvec_to_tuple<blitz::diffType,7>();
-    register_tinyvec_to_tuple<blitz::diffType,8>();
-    register_tinyvec_to_tuple<blitz::diffType,9>();
-    register_tinyvec_to_tuple<blitz::diffType,10>();
-    register_tinyvec_to_tuple<blitz::diffType,11>();
-  }
-
-}
diff --git a/bob/learn/misc/old/ztnorm.cc b/bob/learn/misc/old/ztnorm.cc
deleted file mode 100644
index 9affb8f..0000000
--- a/bob/learn/misc/old/ztnorm.cc
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * @author Francois Moulin <Francois.Moulin@idiap.ch>
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Tue Jul 19 15:33:20 2011 +0200
- *
- * @brief Binds ZT-normalization to python
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "ndarray.h"
-
-#include <bob.learn.misc/ZTNorm.h>
-
-using namespace boost::python;
-
-static object ztnorm1(
-  bob::python::const_ndarray rawscores_probes_vs_models,
-  bob::python::const_ndarray rawscores_zprobes_vs_models,
-  bob::python::const_ndarray rawscores_probes_vs_tmodels,
-  bob::python::const_ndarray rawscores_zprobes_vs_tmodels,
-  bob::python::const_ndarray mask_zprobes_vs_tmodels_istruetrial)
-{
-  const blitz::Array<double,2> rawscores_probes_vs_models_ =
-    rawscores_probes_vs_models.bz<double,2>();
-  const blitz::Array<double,2> rawscores_zprobes_vs_models_ =
-    rawscores_zprobes_vs_models.bz<double,2>();
-  const blitz::Array<double,2> rawscores_probes_vs_tmodels_ =
-    rawscores_probes_vs_tmodels.bz<double,2>();
-  const blitz::Array<double,2> rawscores_zprobes_vs_tmodels_ =
-    rawscores_zprobes_vs_tmodels.bz<double,2>();
-  const blitz::Array<bool,2> mask_zprobes_vs_tmodels_istruetrial_ =
-    mask_zprobes_vs_tmodels_istruetrial.bz<bool,2>();
-
-  // allocate output
-  bob::python::ndarray ret(bob::io::base::array::t_float64, rawscores_probes_vs_models_.extent(0), rawscores_probes_vs_models_.extent(1));
-  blitz::Array<double, 2> ret_ = ret.bz<double,2>();
-
-  bob::learn::misc::ztNorm(rawscores_probes_vs_models_,
-                       rawscores_zprobes_vs_models_,
-                       rawscores_probes_vs_tmodels_,
-                       rawscores_zprobes_vs_tmodels_,
-                       mask_zprobes_vs_tmodels_istruetrial_,
-                       ret_);
-
-  return ret.self();
-}
-
-static object ztnorm2(
-  bob::python::const_ndarray rawscores_probes_vs_models,
-  bob::python::const_ndarray rawscores_zprobes_vs_models,
-  bob::python::const_ndarray rawscores_probes_vs_tmodels,
-  bob::python::const_ndarray rawscores_zprobes_vs_tmodels)
-{
-  const blitz::Array<double,2> rawscores_probes_vs_models_ =
-    rawscores_probes_vs_models.bz<double,2>();
-  const blitz::Array<double,2> rawscores_zprobes_vs_models_ =
-    rawscores_zprobes_vs_models.bz<double,2>();
-  const blitz::Array<double,2> rawscores_probes_vs_tmodels_ =
-    rawscores_probes_vs_tmodels.bz<double,2>();
-  const blitz::Array<double,2> rawscores_zprobes_vs_tmodels_ =
-    rawscores_zprobes_vs_tmodels.bz<double,2>();
-
-  // allocate output
-  bob::python::ndarray ret(bob::io::base::array::t_float64, rawscores_probes_vs_models_.extent(0), rawscores_probes_vs_models_.extent(1));
-  blitz::Array<double, 2> ret_ = ret.bz<double,2>();
-
-  bob::learn::misc::ztNorm(rawscores_probes_vs_models_,
-                       rawscores_zprobes_vs_models_,
-                       rawscores_probes_vs_tmodels_,
-                       rawscores_zprobes_vs_tmodels_,
-                       ret_);
-
-  return ret.self();
-}
-
-static object tnorm(
-  bob::python::const_ndarray rawscores_probes_vs_models,
-  bob::python::const_ndarray rawscores_probes_vs_tmodels)
-{
-  const blitz::Array<double,2> rawscores_probes_vs_models_ =
-    rawscores_probes_vs_models.bz<double,2>();
-  const blitz::Array<double,2> rawscores_probes_vs_tmodels_ =
-    rawscores_probes_vs_tmodels.bz<double,2>();
-
-  // allocate output
-  bob::python::ndarray ret(bob::io::base::array::t_float64, rawscores_probes_vs_models_.extent(0), rawscores_probes_vs_models_.extent(1));
-  blitz::Array<double, 2> ret_ = ret.bz<double,2>();
-
-  bob::learn::misc::tNorm(rawscores_probes_vs_models_,
-                       rawscores_probes_vs_tmodels_,
-                       ret_);
-
-  return ret.self();
-}
-
-static object znorm(
-  bob::python::const_ndarray rawscores_probes_vs_models,
-  bob::python::const_ndarray rawscores_zprobes_vs_models)
-{
-  const blitz::Array<double,2> rawscores_probes_vs_models_ =
-    rawscores_probes_vs_models.bz<double,2>();
-  const blitz::Array<double,2> rawscores_zprobes_vs_models_ =
-    rawscores_zprobes_vs_models.bz<double,2>();
-
-  // allocate output
-  bob::python::ndarray ret(bob::io::base::array::t_float64, rawscores_probes_vs_models_.extent(0), rawscores_probes_vs_models_.extent(1));
-  blitz::Array<double, 2> ret_ = ret.bz<double,2>();
-
-  bob::learn::misc::zNorm(rawscores_probes_vs_models_,
-                       rawscores_zprobes_vs_models_,
-                       ret_);
-
-  return ret.self();
-}
-
-void bind_machine_ztnorm()
-{
-  def("ztnorm",
-      ztnorm1,
-      args("rawscores_probes_vs_models",
-           "rawscores_zprobes_vs_models",
-           "rawscores_probes_vs_tmodels",
-           "rawscores_zprobes_vs_tmodels",
-           "mask_zprobes_vs_tmodels_istruetrial"),
-      "Normalise raw scores with ZT-Norm"
-     );
-
-  def("ztnorm",
-      ztnorm2,
-      args("rawscores_probes_vs_models",
-           "rawscores_zprobes_vs_models",
-           "rawscores_probes_vs_tmodels",
-           "rawscores_zprobes_vs_tmodels"),
-      "Normalise raw scores with ZT-Norm. Assume that znorm and tnorm have no common subject id."
-     );
-
-  def("tnorm",
-      tnorm,
-      args("rawscores_probes_vs_models",
-           "rawscores_probes_vs_tmodels"),
-      "Normalise raw scores with T-Norm."
-     );
-
-  def("znorm",
-      znorm,
-      args("rawscores_probes_vs_models",
-           "rawscores_zprobes_vs_models"),
-      "Normalise raw scores with Z-Norm."
-     );
-
-}
diff --git a/bob/learn/misc/plda_base.cpp b/bob/learn/misc/plda_base.cpp
deleted file mode 100644
index 2e3d972..0000000
--- a/bob/learn/misc/plda_base.cpp
+++ /dev/null
@@ -1,1097 +0,0 @@
-/**
- * @date Thu Jan 29 15:44:15 2015 +0200
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static auto PLDABase_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".PLDABase",
-
-  "This class is a container for the :math:`F` (between class variantion matrix), :math:`G` (within class variantion matrix) and :math:`\\Sigma` "
-  "matrices and the mean vector :math:`\\mu` of a PLDA model. This also"
-  "precomputes useful matrices to make the model scalable."
-  "References: [ElShafey2014,PrinceElder2007,LiFu2012]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-
-     "Constructor, builds a new PLDABase. :math:`F`, :math:`G` "
-     "and :math:`\\Sigma` are initialized to the 'eye' matrix (matrix with 1's "
-     "on the diagonal and 0 outside), and :math:`\\mu` is initialized to 0.",
-
-    "",
-    true
-  )
-  .add_prototype("dim_d,dim_f,dim_g,variance_threshold","")
-  .add_prototype("other","")
-  .add_prototype("hdf5","")
-
-  .add_parameter("dim_D", "int", "Dimensionality of the feature vector.")
-  .add_parameter("dim_F", "int", "Size of :math:`F`(between class variantion matrix).")
-  .add_parameter("dim_G", "int", "Size of :math:`G`(within class variantion matrix).")
-  .add_parameter("variance_threshold", "double", "The smallest possible value of the variance (Ignored if set to 0.)")
-  
-  .add_parameter("other", ":py:class:`bob.learn.misc.PLDABase`", "A PLDABase object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscPLDABase_init_copy(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = PLDABase_doc.kwlist(1);
-  PyBobLearnMiscPLDABaseObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscPLDABase_Type, &o)){
-    PLDABase_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::PLDABase(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscPLDABase_init_hdf5(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = PLDABase_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)){
-    PLDABase_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::PLDABase(*(config->f)));
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscPLDABase_init_dim(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = PLDABase_doc.kwlist(0);
-  
-  int dim_D, dim_F, dim_G = 1;
-  double variance_threshold = 0.0;
-
-  //Here we have to select which keyword argument to read  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iii|d", kwlist, &dim_D, &dim_F, &dim_G, &variance_threshold)){
-    PLDABase_doc.print_usage();
-    return -1;
-  }
-  
-  if(dim_D <= 0){
-    PyErr_Format(PyExc_TypeError, "dim_D argument must be greater than or equal to one");
-    return -1;
-  }
-  
-  if(dim_F <= 0){
-    PyErr_Format(PyExc_TypeError, "dim_F argument must be greater than or equal to one");
-    return -1;
-  }
-
-  if(dim_G <= 0){
-    PyErr_Format(PyExc_TypeError, "dim_G argument must be greater than or equal to one");
-    return -1;
-  }
-
-  if(variance_threshold < 0){
-    PyErr_Format(PyExc_TypeError, "variance_threshold argument must be greater than or equal to zero");
-    return -1;
-  }
-
-  
-  self->cxx.reset(new bob::learn::misc::PLDABase(dim_D, dim_F, dim_G, variance_threshold));
-  return 0;
-}
-
-static int PyBobLearnMiscPLDABase_init(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  if(nargs==1){
-    //Reading the input argument
-    PyObject* arg = 0;
-    if (PyTuple_Size(args))
-      arg = PyTuple_GET_ITEM(args, 0);
-    else {
-      PyObject* tmp = PyDict_Values(kwargs);
-      auto tmp_ = make_safe(tmp);
-      arg = PyList_GET_ITEM(tmp, 0);
-    }
-
-    // If the constructor input is Gaussian object
-    if (PyBobLearnMiscPLDABase_Check(arg))
-      return PyBobLearnMiscPLDABase_init_copy(self, args, kwargs);
-    // If the constructor input is a HDF5
-    else if (PyBobIoHDF5File_Check(arg))
-      return PyBobLearnMiscPLDABase_init_hdf5(self, args, kwargs);
-  }
-  else if((nargs==3)||(nargs==4))
-    return PyBobLearnMiscPLDABase_init_dim(self, args, kwargs);
-  else{
-    PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 1, 3 or 4 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-    PLDABase_doc.print_usage();
-    return -1;
-  }
-  BOB_CATCH_MEMBER("cannot create PLDABase", 0)
-  return 0;
-}
-
-
-
-static void PyBobLearnMiscPLDABase_delete(PyBobLearnMiscPLDABaseObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscPLDABase_RichCompare(PyBobLearnMiscPLDABaseObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscPLDABase_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscPLDABaseObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare PLDABase objects", 0)
-}
-
-int PyBobLearnMiscPLDABase_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscPLDABase_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int, int)",
-  "A tuple that represents the dimensionality of the feature vector :math:`dim_d`, the :math:`F` matrix and the :math:`G` matrix.",
-  ""
-);
-PyObject* PyBobLearnMiscPLDABase_getShape(PyBobLearnMiscPLDABaseObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i,i)", self->cxx->getDimD(), self->cxx->getDimF(), self->cxx->getDimG());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-
-/***** F *****/
-static auto F = bob::extension::VariableDoc(
-  "f",
-  "array_like <float, 2D>",
-  "Returns the :math:`F` matrix (between class variantion matrix)",
-  ""
-);
-PyObject* PyBobLearnMiscPLDABase_getF(PyBobLearnMiscPLDABaseObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getF());
-  BOB_CATCH_MEMBER("`f` could not be read", 0)
-}
-int PyBobLearnMiscPLDABase_setF(PyBobLearnMiscPLDABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, F.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "f");
-  if (!b) return -1;
-  self->cxx->setF(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`f` vector could not be set", -1)
-}
-
-/***** G *****/
-static auto G = bob::extension::VariableDoc(
-  "g",
-  "array_like <float, 2D>",
-  "Returns the :math:`G` matrix (between class variantion matrix)",
-  ""
-);
-PyObject* PyBobLearnMiscPLDABase_getG(PyBobLearnMiscPLDABaseObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getG());
-  BOB_CATCH_MEMBER("`g` could not be read", 0)
-}
-int PyBobLearnMiscPLDABase_setG(PyBobLearnMiscPLDABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, G.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,2>(o, "g");
-  if (!b) return -1;
-  self->cxx->setG(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`g` vector could not be set", -1)
-}
-
-
-/***** mu *****/
-static auto mu = bob::extension::VariableDoc(
-  "mu",
-  "array_like <float, 1D>",
-  "Gets the :math:`mu` mean vector of the PLDA model",
-  ""
-);
-PyObject* PyBobLearnMiscPLDABase_getMu(PyBobLearnMiscPLDABaseObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getMu());
-  BOB_CATCH_MEMBER("`mu` could not be read", 0)
-}
-int PyBobLearnMiscPLDABase_setMu(PyBobLearnMiscPLDABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, mu.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "mu");
-  if (!b) return -1;
-  self->cxx->setMu(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`mu` vector could not be set", -1)
-}
-
-
-/***** __isigma__ *****/
-static auto __isigma__ = bob::extension::VariableDoc(
-  "__isigma__",
-  "array_like <float, 1D>",
-  "Gets the inverse vector/diagonal matrix of :math:`\\Sigma^{-1}`",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getISigma(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getISigma());
-  BOB_CATCH_MEMBER("__isigma__ could not be read", 0)
-}
-
-
-/***** __alpha__ *****/
-static auto __alpha__ = bob::extension::VariableDoc(
-  "__alpha__",
-  "array_like <float, 2D>",
-  "Gets the \f$\alpha\f$ matrix."
-  ":math:`\\alpha = (Id + G^T \\Sigma^{-1} G)^{-1} = \\mathcal{G}`",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getAlpha(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAlpha());
-  BOB_CATCH_MEMBER("__alpha__ could not be read", 0)
-}
-
-
-/***** __beta__ *****/
-static auto __beta__ = bob::extension::VariableDoc(
-  "__beta__",
-  "array_like <float, 2D>",
-  "Gets the :math:`\\beta` matrix "
-  ":math:`\\beta = (\\Sigma + G G^T)^{-1} = \\mathcal{S} = \\Sigma^{-1} - \\Sigma^{-1} G \\mathcal{G} G^{T} \\Sigma^{-1}`",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getBeta(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getBeta());
-  BOB_CATCH_MEMBER("__beta__ could not be read", 0)
-}
-
-
-/***** __ft_beta__ *****/
-static auto __ft_beta__ = bob::extension::VariableDoc(
-  "__ft_beta__",
-  "array_like <float, 2D>",
-  "Gets the :math:`F^T \\beta' matrix",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getFtBeta(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getFtBeta());
-  BOB_CATCH_MEMBER("__ft_beta__ could not be read", 0)
-}
-
-
-/***** __gt_i_sigma__ *****/
-static auto __gt_i_sigma__ = bob::extension::VariableDoc(
-  "__gt_i_sigma__",
-  "array_like <float, 2D>",
-  "Gets the :math:`G^T \\Sigma^{-1}` matrix",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getGtISigma(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getGtISigma());
-  BOB_CATCH_MEMBER("__gt_i_sigma__ could not be read", 0)
-}
-
-
-/***** __logdet_alpha__ *****/
-static auto __logdet_alpha__ = bob::extension::VariableDoc(
-  "__logdet_alpha__",
-  "double",
-  "Gets :math:`\\log(\\det(\\alpha))`",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getLogDetAlpha(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return Py_BuildValue("d",self->cxx->getLogDetAlpha());
-  BOB_CATCH_MEMBER("__logdet_alpha__ could not be read", 0)
-}
-
-/***** __logdet_sigma__ *****/
-static auto __logdet_sigma__ = bob::extension::VariableDoc(
-  "__logdet_sigma__",
-  "double",
-  "Gets :math:`\\log(\\det(\\Sigma))`",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getLogDetSigma(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return Py_BuildValue("d",self->cxx->getLogDetSigma());
-  BOB_CATCH_MEMBER("__logdet_sigma__ could not be read", 0)
-}
-
-
-/***** variance_threshold *****/
-static auto variance_threshold = bob::extension::VariableDoc(
-  "variance_threshold",
-  "double",
-  "",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getVarianceThreshold(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return Py_BuildValue("d",self->cxx->getVarianceThreshold());
-  BOB_CATCH_MEMBER("variance_threshold could not be read", 0)
-}
-int PyBobLearnMiscPLDABase_setVarianceThreshold(PyBobLearnMiscPLDABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyNumber_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an float", Py_TYPE(self)->tp_name, variance_threshold.name());
-    return -1;
-  }
-
-  self->cxx->setVarianceThreshold(PyFloat_AS_DOUBLE(value));
-  BOB_CATCH_MEMBER("variance_threshold could not be set", -1)
-  return 0;
-}
-
-
-
-
-/***** sigma *****/
-static auto sigma = bob::extension::VariableDoc(
-  "sigma",
-  "array_like <float, 1D>",
-  "Gets the :math:`\\sigma` (diagonal) covariance matrix of the PLDA model",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDABase_getSigma(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getSigma());
-  BOB_CATCH_MEMBER("sigma could not be read", 0)
-}
-int PyBobLearnMiscPLDABase_setSigma(PyBobLearnMiscPLDABaseObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, sigma.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "sigma");
-  if (!b) return -1;
-  self->cxx->setSigma(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`sigma` vector could not be set", -1)
-}
-
-
-static PyGetSetDef PyBobLearnMiscPLDABase_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscPLDABase_getShape,
-   0,
-   shape.doc(),
-   0
-  },  
-  {
-   F.name(),
-   (getter)PyBobLearnMiscPLDABase_getF,
-   (setter)PyBobLearnMiscPLDABase_setF,
-   F.doc(),
-   0
-  },
-  {
-   G.name(),
-   (getter)PyBobLearnMiscPLDABase_getG,
-   (setter)PyBobLearnMiscPLDABase_setG,
-   G.doc(),
-   0
-  },
-  {
-   mu.name(),
-   (getter)PyBobLearnMiscPLDABase_getMu,
-   (setter)PyBobLearnMiscPLDABase_setMu,
-   mu.doc(),
-   0
-  },
-  {
-   __isigma__.name(),
-   (getter)PyBobLearnMiscPLDABase_getISigma,
-   0,
-   __isigma__.doc(),
-   0
-  },
-  {
-   __alpha__.name(),
-   (getter)PyBobLearnMiscPLDABase_getAlpha,
-   0,
-   __alpha__.doc(),
-   0
-  },
-  {
-   __beta__.name(),
-   (getter)PyBobLearnMiscPLDABase_getBeta,
-   0,
-   __beta__.doc(),
-   0
-  },
-  {
-  __ft_beta__.name(),
-   (getter)PyBobLearnMiscPLDABase_getFtBeta,
-   0,
-   __ft_beta__.doc(),
-   0
-  },
-  {
-  __gt_i_sigma__.name(),
-   (getter)PyBobLearnMiscPLDABase_getGtISigma,
-   0,
-   __gt_i_sigma__.doc(),
-   0
-  },
-  {
-  __logdet_alpha__.name(),
-   (getter)PyBobLearnMiscPLDABase_getLogDetAlpha,
-   0,
-   __logdet_alpha__.doc(),
-   0
-  },
-  {
-  __logdet_sigma__.name(),
-   (getter)PyBobLearnMiscPLDABase_getLogDetSigma,
-   0,
-   __logdet_sigma__.doc(),
-   0
-  },
-  {
-   sigma.name(),
-   (getter)PyBobLearnMiscPLDABase_getSigma,
-   (setter)PyBobLearnMiscPLDABase_setSigma,
-   sigma.doc(),
-   0
-  },
-  {
-   variance_threshold.name(),
-   (getter)PyBobLearnMiscPLDABase_getVarianceThreshold,
-   (setter)PyBobLearnMiscPLDABase_setVarianceThreshold,
-   variance_threshold.doc(),
-   0
-  },
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the PLDABase to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscPLDABase_Save(PyBobLearnMiscPLDABaseObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the PLDABase to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscPLDABase_Load(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this PLDABase with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.PLDABase`", "A PLDABase object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscPLDABase_IsSimilarTo(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscPLDABaseObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscPLDABase_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/*** resize ***/
-static auto resize = bob::extension::FunctionDoc(
-  "resize",
-  "Resizes the dimensionality of the PLDA model. Paramaters :math:`\\mu`, :math:`\\F`, :math:`\\G` and :math:`\\Sigma` are reinitialized.",
-  0,
-  true
-)
-.add_prototype("dim_D,dim_F,dim_G")
-.add_parameter("dim_D", "int", "Dimensionality of the feature vector.")
-.add_parameter("dim_F", "int", "Size of :math:`F`(between class variantion matrix).")
-.add_parameter("dim_G", "int", "Size of :math:`F`(within class variantion matrix).");
-static PyObject* PyBobLearnMiscPLDABase_resize(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = resize.kwlist(0);
-
-  int dim_D, dim_F, dim_G = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iii", kwlist, &dim_D, &dim_F, &dim_G)) Py_RETURN_NONE;
-
-  if(dim_D <= 0){
-    PyErr_Format(PyExc_TypeError, "dim_D argument must be greater than or equal to one");
-    Py_RETURN_NONE;
-  }
-  
-  if(dim_F <= 0){
-    PyErr_Format(PyExc_TypeError, "dim_F argument must be greater than or equal to one");
-    Py_RETURN_NONE;
-  }
-
-  if(dim_G <= 0){
-    PyErr_Format(PyExc_TypeError, "dim_G argument must be greater than or equal to one");
-    Py_RETURN_NONE;
-  }
-
-  self->cxx->resize(dim_D, dim_F, dim_G);
-
-  BOB_CATCH_MEMBER("cannot perform the resize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/***** get_gamma *****/
-static auto get_gamma = bob::extension::FunctionDoc(
-  "get_gamma",
-  "Gets the :math:`\\gamma_a` matrix for a given :math:`a` (number of samples). "
-  ":math:`gamma_{a} = (Id + a F^T \beta F)^{-1} = \\mathcal{F}_{a}`",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","array_like <float, 2D>","Get the :math:`\\gamma` matrix");
-static PyObject* PyBobLearnMiscPLDABase_getGamma(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_gamma.kwlist(0);
-
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getGamma(i));
-  BOB_CATCH_MEMBER("`get_gamma` could not be read", 0)
-}
-
-
-/***** has_gamma *****/
-static auto has_gamma = bob::extension::FunctionDoc(
-  "has_gamma",
-  "Tells if the :math:`gamma_a` matrix for a given a (number of samples) exists. "
-  ":math:`gamma_a=(Id + a F^T \\beta F)^{-1}`",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","bool","");
-static PyObject* PyBobLearnMiscPLDABase_hasGamma(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = has_gamma.kwlist(0);
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  if(self->cxx->hasGamma(i))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
- BOB_CATCH_MEMBER("`has_gamma` could not be read", 0)    
-}
-
-
-/***** compute_gamma *****/
-static auto compute_gamma = bob::extension::FunctionDoc(
-  "compute_gamma",
-  "Tells if the :math:`gamma_a` matrix for a given a (number of samples) exists."
-  ":math:`gamma_a = (Id + a F^T \\beta F)^{-1}`",
-  0,
-  true
-)
-.add_prototype("a,res","")
-.add_parameter("a", "int", "Index")
-.add_parameter("res", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscPLDABase_computeGamma(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = compute_gamma.kwlist(0);
-  int i = 0;
-  PyBlitzArrayObject* res = 0;  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &res)) Py_RETURN_NONE;
-
-  auto res_ = make_safe(res);  
-
-  self->cxx->computeGamma(i,*PyBlitzArrayCxx_AsBlitz<double,2>(res));
-  Py_RETURN_NONE;
-  BOB_CATCH_MEMBER("`compute_gamma` could not be read", 0)    
-}
-
-/***** get_add_gamma *****/
-static auto get_add_gamma = bob::extension::FunctionDoc(
-  "get_add_gamma",
-   "Gets the :math:`gamma_a` matrix for a given :math:`f_a` (number of samples)."
-   ":math:`gamma_a = (Id + a F^T \\beta F)^{-1} = \\mathcal{F}_{a}`."
-   "Tries to find it from the base machine and then from this machine.",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","array_like <float, 2D>","");
-static PyObject* PyBobLearnMiscPLDABase_getAddGamma(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_add_gamma.kwlist(0);
-
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAddGamma(i));
-  BOB_CATCH_MEMBER("`get_add_gamma` could not be read", 0)
-}
-
-
-/***** has_log_like_const_term *****/
-static auto has_log_like_const_term = bob::extension::FunctionDoc(
-  "has_log_like_const_term",
-   "Tells if the log likelihood constant term for a given :math:`a` (number of samples) exists in this machine (does not check the base machine). "
-   ":math:`l_{a}=\\frac{a}{2} ( -D log(2\\pi) -log|\\Sigma| +log|\\alpha| +log|\\gamma_a|)`",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","bool","");
-static PyObject* PyBobLearnMiscPLDABase_hasLogLikeConstTerm(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = has_log_like_const_term.kwlist(0);
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  if(self->cxx->hasLogLikeConstTerm(i))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
- BOB_CATCH_MEMBER("`has_log_like_const_term` could not be read", 0)    
-}
-
-
-/***** compute_log_like_const_term" *****/
-static auto compute_log_like_const_term = bob::extension::FunctionDoc(
-  "compute_log_like_const_term",
-  "Computes the log likelihood constant term for a given :math:`a` (number of samples), given the provided :math:`gamma_a` matrix. "
-  ":math:`l_{a} = \\frac{a}{2} ( -D log(2\\pi) -log|\\Sigma| +log|\\alpha| +log|\\gamma_a|)`",
-
-  0,
-  true
-)
-.add_prototype("a,res","")
-.add_parameter("a", "int", "Index")
-.add_parameter("res", "array_like <float, 2D>", "Input data");
-static PyObject* PyBobLearnMiscPLDABase_computeLogLikeConstTerm(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = compute_log_like_const_term.kwlist(0);
-  int i = 0;
-  PyBlitzArrayObject* res = 0;  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &res)) Py_RETURN_NONE;
-
-  auto res_ = make_safe(res);  
-
-  self->cxx->computeLogLikeConstTerm(i,*PyBlitzArrayCxx_AsBlitz<double,2>(res));
-  Py_RETURN_NONE;
-  BOB_CATCH_MEMBER("`compute_gamma` could not be read", 0)    
-}
-
-
-/***** get_add_log_like_const_term *****/
-static auto get_add_log_like_const_term = bob::extension::FunctionDoc(
-  "get_add_log_like_const_term",
-
-   "Gets the log likelihood constant term for a given :math:`a` (number of samples). "
-   ":math:`l_{a} = \\frac{a}{2} ( -D log(2\\pi) -log|\\Sigma| +log|\\alpha| +log|\\gamma_a|)`",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","double","");
-static PyObject* PyBobLearnMiscPLDABase_getAddLogLikeConstTerm(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_add_log_like_const_term.kwlist(0);
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  return Py_BuildValue("d",self->cxx->getAddLogLikeConstTerm(i));
-
-  BOB_CATCH_MEMBER("`get_add_log_like_const_term` could not be read", 0)    
-}
-
-
-/***** get_log_like_const_term *****/
-static auto get_log_like_const_term = bob::extension::FunctionDoc(
-  "get_log_like_const_term",
-   "Gets the log likelihood constant term for a given :math:`a` (number of samples). "
-    ":math:`l_{a} = \\frac{a}{2} ( -D log(2\\pi) -log|\\Sigma| +log|\\alpha| +log|\\gamma_a|)",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","double","");
-static PyObject* PyBobLearnMiscPLDABase_getLogLikeConstTerm(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_log_like_const_term.kwlist(0);
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  return Py_BuildValue("d",self->cxx->getLogLikeConstTerm(i));
-
-  BOB_CATCH_MEMBER("`get_log_like_const_term` could not be read", 0)    
-}
-
-/***** clear_maps *****/
-static auto clear_maps = bob::extension::FunctionDoc(
-  "clear_maps",
-  "Clears the maps (:math:`gamma_a` and loglike_constterm_a).",
-  0,
-  true
-);
-static PyObject* PyBobLearnMiscPLDABase_clearMaps(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  self->cxx->clearMaps();
-  Py_RETURN_NONE;
-
-  BOB_CATCH_MEMBER("`clear_maps` could not be read", 0)    
-}
-
-
-/***** compute_log_likelihood_point_estimate *****/
-static auto compute_log_likelihood_point_estimate = bob::extension::FunctionDoc(
-  "compute_log_likelihood_point_estimate",
-   "Gets the log-likelihood of an observation, given the current model and the latent variables (point estimate)."
-   "This will basically compute :math:`p(x_{ij} | h_{i}, w_{ij}, \\Theta)`, given by "
-   ":math:`\\mathcal{N}(x_{ij}|[\\mu + F h_{i} + G w_{ij} + \\epsilon_{ij}, \\Sigma])`, which is in logarithm, "
-   ":math:`\\frac{D}{2} log(2\\pi) -\\frac{1}{2} log(det(\\Sigma)) -\\frac{1}{2} {(x_{ij}-(\\mu+F h_{i}+G w_{ij}))^{T}\\Sigma^{-1}(x_{ij}-(\\mu+F h_{i}+G w_{ij}))}`",
-  0,
-  true
-)
-.add_prototype("xij,hi,wij","output")
-.add_parameter("xij", "array_like <float, 1D>", "")
-.add_parameter("hi", "array_like <float, 1D>", "")
-.add_parameter("wij", "array_like <float, 1D>", "")
-.add_return("output", "double", "");
-static PyObject* PyBobLearnMiscPLDABase_computeLogLikelihoodPointEstimate(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = compute_log_likelihood_point_estimate.kwlist(0);
-  PyBlitzArrayObject* xij, *hi, *wij;  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&", kwlist, &PyBlitzArray_Converter, &xij,
-                                                               &PyBlitzArray_Converter, &hi,
-                                                               &PyBlitzArray_Converter, &wij)) return 0;
-
-  auto xij_ = make_safe(xij);
-  auto hi_ = make_safe(hi);
-  auto wij_ = make_safe(wij);  
-
-  return Py_BuildValue("d", self->cxx->computeLogLikelihoodPointEstimate(*PyBlitzArrayCxx_AsBlitz<double,1>(xij), *PyBlitzArrayCxx_AsBlitz<double,1>(hi), *PyBlitzArrayCxx_AsBlitz<double,1>(wij)));
-  
-  BOB_CATCH_MEMBER("`compute_log_likelihood_point_estimate` could not be read", 0)    
-}
-
-/***** __precompute__ *****/
-static auto __precompute__ = bob::extension::FunctionDoc(
-  "__precompute__",
-  "Precomputes useful values for the log likelihood "
-  ":math:`\\log(\\det(\\alpha))` and :math:`\\log(\\det(\\Sigma))`.",
-  0,
-  true
-);
-static PyObject* PyBobLearnMiscPLDABase_precompute(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  self->cxx->precompute();
-  Py_RETURN_NONE;
-
-  BOB_CATCH_MEMBER("`precompute` could not be read", 0)    
-}
-
-
-/***** __precompute_log_like__ *****/
-static auto __precompute_log_like__ = bob::extension::FunctionDoc(
-  "__precompute_log_like__",
-
-  "Precomputes useful values for the log likelihood "
-  ":math:`\\log(\\det(\\alpha))` and :math:`\\log(\\det(\\Sigma))`.",
-
-  0,
-  true
-);
-static PyObject* PyBobLearnMiscPLDABase_precomputeLogLike(PyBobLearnMiscPLDABaseObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  self->cxx->precomputeLogLike();
-  Py_RETURN_NONE;
-
-  BOB_CATCH_MEMBER("`__precompute_log_like__` could not be read", 0)    
-}
-
-
-static PyMethodDef PyBobLearnMiscPLDABase_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    resize.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_resize,
-    METH_VARARGS|METH_KEYWORDS,
-    resize.doc()
-  },
-  {
-    get_gamma.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_getGamma,
-    METH_VARARGS|METH_KEYWORDS,
-    get_gamma.doc()
-  },
-  {
-    has_gamma.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_hasGamma,
-    METH_VARARGS|METH_KEYWORDS,
-    has_gamma.doc()
-  },
-  {
-    compute_gamma.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_computeGamma,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_gamma.doc()
-  },
-  {
-    get_add_gamma.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_getAddGamma,
-    METH_VARARGS|METH_KEYWORDS,
-    get_add_gamma.doc()
-  },
-  {
-    has_log_like_const_term.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_hasLogLikeConstTerm,
-    METH_VARARGS|METH_KEYWORDS,
-    has_log_like_const_term.doc()
-  },  
-  {
-    compute_log_like_const_term.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_computeLogLikeConstTerm,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_log_like_const_term.doc()
-  },  
-  {
-    get_add_log_like_const_term.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_getAddLogLikeConstTerm,
-    METH_VARARGS|METH_KEYWORDS,
-    get_add_log_like_const_term.doc()
-  },  
-  {
-    get_log_like_const_term.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_getLogLikeConstTerm,
-    METH_VARARGS|METH_KEYWORDS,
-    get_log_like_const_term.doc()
-  },  
-  {
-    clear_maps.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_clearMaps,
-    METH_NOARGS,
-    clear_maps.doc()
-  },
-  {
-    compute_log_likelihood_point_estimate.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_computeLogLikelihoodPointEstimate,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_log_likelihood_point_estimate.doc()
-  },
-  {
-    __precompute__.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_precompute,
-    METH_NOARGS,
-    __precompute__.doc()
-  },   
-  {
-    __precompute_log_like__.name(),
-    (PyCFunction)PyBobLearnMiscPLDABase_precomputeLogLike,
-    METH_NOARGS,
-    __precompute_log_like__.doc()
-  },     
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the JFA type struct; will be initialized later
-PyTypeObject PyBobLearnMiscPLDABase_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscPLDABase(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscPLDABase_Type.tp_name      = PLDABase_doc.name();
-  PyBobLearnMiscPLDABase_Type.tp_basicsize = sizeof(PyBobLearnMiscPLDABaseObject);
-  PyBobLearnMiscPLDABase_Type.tp_flags     = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscPLDABase_Type.tp_doc       = PLDABase_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscPLDABase_Type.tp_new         = PyType_GenericNew;
-  PyBobLearnMiscPLDABase_Type.tp_init        = reinterpret_cast<initproc>(PyBobLearnMiscPLDABase_init);
-  PyBobLearnMiscPLDABase_Type.tp_dealloc     = reinterpret_cast<destructor>(PyBobLearnMiscPLDABase_delete);
-  PyBobLearnMiscPLDABase_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscPLDABase_RichCompare);
-  PyBobLearnMiscPLDABase_Type.tp_methods     = PyBobLearnMiscPLDABase_methods;
-  PyBobLearnMiscPLDABase_Type.tp_getset      = PyBobLearnMiscPLDABase_getseters;
-  //PyBobLearnMiscPLDABase_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscPLDABase_forward);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscPLDABase_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscPLDABase_Type);
-  return PyModule_AddObject(module, "PLDABase", (PyObject*)&PyBobLearnMiscPLDABase_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/plda_machine.cpp b/bob/learn/misc/plda_machine.cpp
deleted file mode 100644
index d5cd1c8..0000000
--- a/bob/learn/misc/plda_machine.cpp
+++ /dev/null
@@ -1,801 +0,0 @@
-/**
- * @date Thu Jan 30 11:10:15 2015 +0200
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-static inline bool f(PyObject* o){return o != 0 && PyObject_IsTrue(o) > 0;}  /* converts PyObject to bool and returns false if object is NULL */
-
-static auto PLDAMachine_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".PLDAMachine",
-
-  "This class is a container for an enrolled identity/class. It contains information extracted from the enrollment samples. "
-  "It should be used in combination with a PLDABase instance."
-  "References: [ElShafey2014,PrinceElder2007,LiFu2012]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-
-     "Constructor, builds a new PLDAMachine.",
-
-    "",
-    true
-  )
-  .add_prototype("plda_base","")
-  .add_prototype("other","")
-  .add_prototype("hdf5,plda_base","")
-
-  .add_parameter("plda_base", "`bob.learn.misc.PLDABase`", "")  
-  .add_parameter("other", ":py:class:`bob.learn.misc.PLDAMachine`", "A PLDAMachine object to be copied.")
-  .add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading")
-
-);
-
-
-static int PyBobLearnMiscPLDAMachine_init_copy(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = PLDAMachine_doc.kwlist(1);
-  PyBobLearnMiscPLDAMachineObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscPLDAMachine_Type, &o)){
-    PLDAMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::PLDAMachine(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscPLDAMachine_init_hdf5(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = PLDAMachine_doc.kwlist(2);
-
-  PyBobIoHDF5FileObject* config = 0;
-  PyBobLearnMiscPLDABaseObject* plda_base;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O!", kwlist, &PyBobIoHDF5File_Converter, &config,
-                                                                 &PyBobLearnMiscPLDABase_Type, &plda_base)){
-    PLDAMachine_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::PLDAMachine(*(config->f),plda_base->cxx));
-
-  return 0;
-}
-
-
-static int PyBobLearnMiscPLDAMachine_init_pldabase(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = PLDAMachine_doc.kwlist(0);  
-  PyBobLearnMiscPLDABaseObject* plda_base;
-  
-  //Here we have to select which keyword argument to read  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscPLDABase_Type, &plda_base)){
-    PLDAMachine_doc.print_usage();
-    return -1;
-  }
-  
-  self->cxx.reset(new bob::learn::misc::PLDAMachine(plda_base->cxx));
-  return 0;
-}
-
-static int PyBobLearnMiscPLDAMachine_init(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
- 
-  if(nargs==1){
-    //Reading the input argument
-    PyObject* arg = 0;
-    if (PyTuple_Size(args))
-      arg = PyTuple_GET_ITEM(args, 0);
-    else {
-      PyObject* tmp = PyDict_Values(kwargs);
-      auto tmp_ = make_safe(tmp);
-      arg = PyList_GET_ITEM(tmp, 0);
-    }
-
-    // If the constructor input is Gaussian object
-    if (PyBobLearnMiscPLDAMachine_Check(arg))
-      return PyBobLearnMiscPLDAMachine_init_copy(self, args, kwargs);
-    // If the constructor input is a HDF5
-    else if (PyBobLearnMiscPLDABase_Check(arg))
-      return PyBobLearnMiscPLDAMachine_init_pldabase(self, args, kwargs);
-  }
-  else if(nargs==2)
-    return PyBobLearnMiscPLDAMachine_init_hdf5(self, args, kwargs);
-  else{
-    PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 1 or 2 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-    PLDAMachine_doc.print_usage();
-    return -1;
-  }
-  BOB_CATCH_MEMBER("cannot create PLDAMachine", 0)
-  return 0;
-}
-
-
-
-static void PyBobLearnMiscPLDAMachine_delete(PyBobLearnMiscPLDAMachineObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject* PyBobLearnMiscPLDAMachine_RichCompare(PyBobLearnMiscPLDAMachineObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscPLDAMachine_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscPLDAMachineObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare PLDAMachine objects", 0)
-}
-
-int PyBobLearnMiscPLDAMachine_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscPLDAMachine_Type));
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-/***** shape *****/
-static auto shape = bob::extension::VariableDoc(
-  "shape",
-  "(int,int, int)",
-  "A tuple that represents the dimensionality of the feature vector :math:`dim_d`, the :math:`F` matrix and the :math:`G` matrix.",
-  ""
-);
-PyObject* PyBobLearnMiscPLDAMachine_getShape(PyBobLearnMiscPLDAMachineObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("(i,i,i)", self->cxx->getDimD(), self->cxx->getDimF(), self->cxx->getDimG());
-  BOB_CATCH_MEMBER("shape could not be read", 0)
-}
-
-
-/***** n_samples *****/
-static auto n_samples = bob::extension::VariableDoc(
-  "n_samples",
-  "int",
-  "Number of enrolled samples",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDAMachine_getNSamples(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return Py_BuildValue("i",self->cxx->getNSamples());
-  BOB_CATCH_MEMBER("n_samples could not be read", 0)
-}
-int PyBobLearnMiscPLDAMachine_setNSamples(PyBobLearnMiscPLDAMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyInt_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an int", Py_TYPE(self)->tp_name, n_samples.name());
-    return -1;
-  }
-
-  if (PyInt_AS_LONG(value) < 0){
-    PyErr_Format(PyExc_TypeError, "n_samples must be greater than or equal to zero");
-    return -1;
-  }
-
-  self->cxx->setNSamples(PyInt_AS_LONG(value));
-  BOB_CATCH_MEMBER("n_samples could not be set", -1)
-  return 0;
-}
-
-
-/***** w_sum_xit_beta_xi *****/
-static auto w_sum_xit_beta_xi = bob::extension::VariableDoc(
-  "w_sum_xit_beta_xi",
-  "double",
-  "Gets the :math:`A = -0.5 \\sum_{i} x_{i}^T \\beta x_{i}` value",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDAMachine_getWSumXitBetaXi(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return Py_BuildValue("d",self->cxx->getWSumXitBetaXi());
-  BOB_CATCH_MEMBER("w_sum_xit_beta_xi could not be read", 0)
-}
-int PyBobLearnMiscPLDAMachine_setWSumXitBetaXi(PyBobLearnMiscPLDAMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyNumber_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an float", Py_TYPE(self)->tp_name, w_sum_xit_beta_xi.name());
-    return -1;
-  }
-
-  self->cxx->setWSumXitBetaXi(PyFloat_AS_DOUBLE(value));
-  BOB_CATCH_MEMBER("w_sum_xit_beta_xi could not be set", -1)
-  return 0;
-}
-
-
-/***** plda_base *****/
-static auto plda_base = bob::extension::VariableDoc(
-  "plda_base",
-  ":py:class:`bob.learn.misc.PLDABase`",
-  "The PLDABase attached to this machine",
-  ""
-);
-PyObject* PyBobLearnMiscPLDAMachine_getPLDABase(PyBobLearnMiscPLDAMachineObject* self, void*){
-  BOB_TRY
-
-  boost::shared_ptr<bob::learn::misc::PLDABase> plda_base_o = self->cxx->getPLDABase();
-
-  //Allocating the correspondent python object
-  PyBobLearnMiscPLDABaseObject* retval =
-    (PyBobLearnMiscPLDABaseObject*)PyBobLearnMiscPLDABase_Type.tp_alloc(&PyBobLearnMiscPLDABase_Type, 0);
-  retval->cxx = plda_base_o;
-
-  return Py_BuildValue("O",retval);
-  BOB_CATCH_MEMBER("plda_base could not be read", 0)
-}
-int PyBobLearnMiscPLDAMachine_setPLDABase(PyBobLearnMiscPLDAMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyBobLearnMiscPLDABase_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a :py:class:`bob.learn.misc.PLDABase`", Py_TYPE(self)->tp_name, plda_base.name());
-    return -1;
-  }
-
-  PyBobLearnMiscPLDABaseObject* plda_base_o = 0;
-  PyArg_Parse(value, "O!", &PyBobLearnMiscPLDABase_Type,&plda_base_o);
-
-  self->cxx->setPLDABase(plda_base_o->cxx);
-
-  return 0;
-  BOB_CATCH_MEMBER("plda_base could not be set", -1)  
-}
-
-
-/***** weighted_sum *****/
-static auto weighted_sum = bob::extension::VariableDoc(
-  "weighted_sum",
-  "array_like <float, 1D>",
-  "Get/Set :math:``\\sum_{i} F^T \\beta x_{i}` value",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDAMachine_getWeightedSum(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getWeightedSum());
-  BOB_CATCH_MEMBER("weighted_sum could not be read", 0)
-}
-int PyBobLearnMiscPLDAMachine_setWeightedSum(PyBobLearnMiscPLDAMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-  PyBlitzArrayObject* o;
-  if (!PyBlitzArray_Converter(value, &o)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects a 2D array of floats", Py_TYPE(self)->tp_name, weighted_sum.name());
-    return -1;
-  }
-  auto o_ = make_safe(o);
-  auto b = PyBlitzArrayCxx_AsBlitz<double,1>(o, "weighted_sum");
-  if (!b) return -1;
-  self->cxx->setWeightedSum(*b);
-  return 0;
-  BOB_CATCH_MEMBER("`weighted_sum` vector could not be set", -1)
-}
-
-
-/***** log_likelihood *****/
-static auto log_likelihood = bob::extension::VariableDoc(
-  "log_likelihood",
-  "double",
-  "",
-  ""
-);
-static PyObject* PyBobLearnMiscPLDAMachine_getLogLikelihood(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  return Py_BuildValue("d",self->cxx->getLogLikelihood());
-  BOB_CATCH_MEMBER("log_likelihood could not be read", 0)
-}
-int PyBobLearnMiscPLDAMachine_setLogLikelihood(PyBobLearnMiscPLDAMachineObject* self, PyObject* value, void*){
-  BOB_TRY
-
-  if (!PyNumber_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an double", Py_TYPE(self)->tp_name, log_likelihood.name());
-    return -1;
-  }
-
-  self->cxx->setLogLikelihood(PyFloat_AS_DOUBLE(value));
-  BOB_CATCH_MEMBER("log_likelihood could not be set", -1)
-  return 0;
-}
-
-
-static PyGetSetDef PyBobLearnMiscPLDAMachine_getseters[] = { 
-  {
-   shape.name(),
-   (getter)PyBobLearnMiscPLDAMachine_getShape,
-   0,
-   shape.doc(),
-   0
-  },  
-  {
-   n_samples.name(),
-   (getter)PyBobLearnMiscPLDAMachine_getNSamples,
-   (setter)PyBobLearnMiscPLDAMachine_setNSamples,
-   n_samples.doc(),
-   0
-  },  
-  {
-   w_sum_xit_beta_xi.name(),
-   (getter)PyBobLearnMiscPLDAMachine_getWSumXitBetaXi,
-   (setter)PyBobLearnMiscPLDAMachine_setWSumXitBetaXi,
-   w_sum_xit_beta_xi.doc(),
-   0
-  },
-  {
-   plda_base.name(),
-   (getter)PyBobLearnMiscPLDAMachine_getPLDABase,
-   (setter)PyBobLearnMiscPLDAMachine_setPLDABase,
-   plda_base.doc(),
-   0
-  },
-  {
-   weighted_sum.name(),
-   (getter)PyBobLearnMiscPLDAMachine_getWeightedSum,
-   (setter)PyBobLearnMiscPLDAMachine_setWeightedSum,
-   weighted_sum.doc(),
-   0
-  },
-  {
-   log_likelihood.name(),
-   (getter)PyBobLearnMiscPLDAMachine_getLogLikelihood,
-   (setter)PyBobLearnMiscPLDAMachine_setLogLikelihood,
-   log_likelihood.doc(),
-   0
-  },
-  {0}  // Sentinel
-};
-
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-
-/*** save ***/
-static auto save = bob::extension::FunctionDoc(
-  "save",
-  "Save the configuration of the PLDAMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for writing");
-static PyObject* PyBobLearnMiscPLDAMachine_Save(PyBobLearnMiscPLDAMachineObject* self,  PyObject* args, PyObject* kwargs) {
-
-  BOB_TRY
-  
-  // get list of arguments
-  char** kwlist = save.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-
-  auto hdf5_ = make_safe(hdf5);
-  self->cxx->save(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot save the data", 0)
-  Py_RETURN_NONE;
-}
-
-/*** load ***/
-static auto load = bob::extension::FunctionDoc(
-  "load",
-  "Load the configuration of the PLDAMachine to a given HDF5 file"
-)
-.add_prototype("hdf5")
-.add_parameter("hdf5", ":py:class:`bob.io.base.HDF5File`", "An HDF5 file open for reading");
-static PyObject* PyBobLearnMiscPLDAMachine_Load(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = load.kwlist(0);  
-  PyBobIoHDF5FileObject* hdf5;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, PyBobIoHDF5File_Converter, &hdf5)) return 0;
-  
-  auto hdf5_ = make_safe(hdf5);  
-  self->cxx->load(*hdf5->f);
-
-  BOB_CATCH_MEMBER("cannot load the data", 0)
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this PLDAMachine with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.PLDAMachine`", "A PLDAMachine object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscPLDAMachine_IsSimilarTo(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscPLDAMachineObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscPLDAMachine_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-/***** get_gamma *****/
-static auto get_gamma = bob::extension::FunctionDoc(
-  "get_gamma",
-  "Gets the :math:`\\gamma_a` matrix for a given :math:`a` (number of samples). "
-  ":math:`gamma_{a} = (Id + a F^T \beta F)^{-1} = \\mathcal{F}_{a}`",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","array_like <float, 2D>","Get the :math:`\\gamma` matrix");
-static PyObject* PyBobLearnMiscPLDAMachine_getGamma(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_gamma.kwlist(0);
-
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getGamma(i));
-  BOB_CATCH_MEMBER("`get_gamma` could not be read", 0)
-}
-
-
-/***** has_gamma *****/
-static auto has_gamma = bob::extension::FunctionDoc(
-  "has_gamma",
-  "Tells if the :math:`gamma_a` matrix for a given a (number of samples) exists. "
-  ":math:`gamma_a=(Id + a F^T \\beta F)^{-1}`",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","bool","");
-static PyObject* PyBobLearnMiscPLDAMachine_hasGamma(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = has_gamma.kwlist(0);
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  if(self->cxx->hasGamma(i))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
- BOB_CATCH_MEMBER("`has_gamma` could not be read", 0)    
-}
-
-
-/***** get_add_gamma *****/
-static auto get_add_gamma = bob::extension::FunctionDoc(
-  "get_add_gamma",
-   "Gets the :math:`gamma_a` matrix for a given :math:`f_a` (number of samples)."
-   ":math:`gamma_a = (Id + a F^T \\beta F)^{-1} = \\mathcal{F}_{a}`."
-   "Tries to find it from the base machine and then from this machine.",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","array_like <float, 2D>","");
-static PyObject* PyBobLearnMiscPLDAMachine_getAddGamma(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_add_gamma.kwlist(0);
-
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAddGamma(i));
-  BOB_CATCH_MEMBER("`get_add_gamma` could not be read", 0)
-}
-
-
-/***** has_log_like_const_term *****/
-static auto has_log_like_const_term = bob::extension::FunctionDoc(
-  "has_log_like_const_term",
-   "Tells if the log likelihood constant term for a given :math:`a` (number of samples) exists in this machine (does not check the base machine). "
-   ":math:`l_{a}=\\frac{a}{2} ( -D log(2\\pi) -log|\\Sigma| +log|\\alpha| +log|\\gamma_a|)`",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","bool","");
-static PyObject* PyBobLearnMiscPLDAMachine_hasLogLikeConstTerm(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = has_log_like_const_term.kwlist(0);
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  if(self->cxx->hasLogLikeConstTerm(i))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
- BOB_CATCH_MEMBER("`has_log_like_const_term` could not be read", 0)    
-}
-
-
-/***** get_add_log_like_const_term *****/
-static auto get_add_log_like_const_term = bob::extension::FunctionDoc(
-  "get_add_log_like_const_term",
-
-   "Gets the log likelihood constant term for a given :math:`a` (number of samples). "
-   ":math:`l_{a} = \\frac{a}{2} ( -D log(2\\pi) -log|\\Sigma| +log|\\alpha| +log|\\gamma_a|)`",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","double","");
-static PyObject* PyBobLearnMiscPLDAMachine_getAddLogLikeConstTerm(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_add_log_like_const_term.kwlist(0);
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  return Py_BuildValue("d",self->cxx->getAddLogLikeConstTerm(i));
-
-  BOB_CATCH_MEMBER("`get_add_log_like_const_term` could not be read", 0)    
-}
-
-
-/***** get_log_like_const_term *****/
-static auto get_log_like_const_term = bob::extension::FunctionDoc(
-  "get_log_like_const_term",
-   "Gets the log likelihood constant term for a given :math:`a` (number of samples). "
-    ":math:`l_{a} = \\frac{a}{2} ( -D log(2\\pi) -log|\\Sigma| +log|\\alpha| +log|\\gamma_a|)",
-  0,
-  true
-)
-.add_prototype("a","output")
-.add_parameter("a", "int", "Index")
-.add_return("output","double","");
-static PyObject* PyBobLearnMiscPLDAMachine_getLogLikeConstTerm(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = get_log_like_const_term.kwlist(0);
-  int i = 0;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE;
-
-  return Py_BuildValue("d",self->cxx->getLogLikeConstTerm(i));
-
-  BOB_CATCH_MEMBER("`get_log_like_const_term` could not be read", 0)    
-}
-
-/***** clear_maps *****/
-static auto clear_maps = bob::extension::FunctionDoc(
-  "clear_maps",
-  "Clears the maps (:math:`gamma_a` and loglike_constterm_a).",
-  0,
-  true
-);
-static PyObject* PyBobLearnMiscPLDAMachine_clearMaps(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  self->cxx->clearMaps();
-  Py_RETURN_NONE;
-
-  BOB_CATCH_MEMBER("`clear_maps` could not be read", 0)    
-}
-
-
-/***** compute_log_likelihood *****/
-static auto compute_log_likelihood = bob::extension::FunctionDoc(
-  "compute_log_likelihood",
-  "Compute the log-likelihood of the given sample and (optionally) the enrolled samples",
-  0,
-  true
-)
-.add_prototype("sample,with_enrolled_samples","output")
-.add_parameter("sample", "array_like <float, 1D>", "Sample")
-.add_parameter("with_enrolled_samples", "bool", "")
-.add_return("output","double","The log-likelihood");
-static PyObject* PyBobLearnMiscPLDAMachine_computeLogLikelihood(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = compute_log_likelihood.kwlist(0);
-
-  PyBlitzArrayObject* samples;
-  PyObject* with_enrolled_samples = Py_True;
-  
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|O!", kwlist, &PyBlitzArray_Converter, &samples,
-                                                                 &PyBool_Type, &with_enrolled_samples)) Py_RETURN_NONE;
-  auto samples_ = make_safe(samples);
-
-  blitz::Array<double,2>  blitz_test = *PyBlitzArrayCxx_AsBlitz<double,2>(samples);
-
-   //There are 2 methods in C++, one <double,1> and the another <double,2>
-  if (blitz_test.extent(1)==0)
-    return Py_BuildValue("d",self->cxx->computeLogLikelihood(*PyBlitzArrayCxx_AsBlitz<double,1>(samples), f(with_enrolled_samples)));
-  else
-    return Py_BuildValue("d",self->cxx->computeLogLikelihood(*PyBlitzArrayCxx_AsBlitz<double,2>(samples), f(with_enrolled_samples)));
-
-  BOB_CATCH_MEMBER("`compute_log_likelihood` could not be read", 0)    
-}
-
-
-/***** forward *****/
-static auto forward = bob::extension::FunctionDoc(
-  "forward",
-  "Computes a log likelihood ratio from a 1D or 2D blitz::Array",
-  0,
-  true
-)
-.add_prototype("samples","output")
-.add_parameter("samples", "array_like <float, 1D>", "Sample")
-.add_return("output","double","The log-likelihood ratio");
-static PyObject* PyBobLearnMiscPLDAMachine_forward(PyBobLearnMiscPLDAMachineObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-  
-  char** kwlist = forward.kwlist(0);
-
-  PyBlitzArrayObject* samples;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &samples)) Py_RETURN_NONE;
-  auto samples_ = make_safe(samples);
-  blitz::Array<double,2>  blitz_test = *PyBlitzArrayCxx_AsBlitz<double,2>(samples);
-
-   //There are 2 methods in C++, one <double,1> and the another <double,2>
-  if (blitz_test.extent(1)==0)
-    return Py_BuildValue("d",self->cxx->forward(*PyBlitzArrayCxx_AsBlitz<double,1>(samples)));
-  else
-    return Py_BuildValue("d",self->cxx->forward(*PyBlitzArrayCxx_AsBlitz<double,2>(samples)));
-
-  BOB_CATCH_MEMBER("`forward` could not be read", 0)    
-}
-
-
-static PyMethodDef PyBobLearnMiscPLDAMachine_methods[] = {
-  {
-    save.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_Save,
-    METH_VARARGS|METH_KEYWORDS,
-    save.doc()
-  },
-  {
-    load.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_Load,
-    METH_VARARGS|METH_KEYWORDS,
-    load.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {
-    get_gamma.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_getGamma,
-    METH_VARARGS|METH_KEYWORDS,
-    get_gamma.doc()
-  },
-  {
-    has_gamma.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_hasGamma,
-    METH_VARARGS|METH_KEYWORDS,
-    has_gamma.doc()
-  },
-  {
-    get_add_gamma.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_getAddGamma,
-    METH_VARARGS|METH_KEYWORDS,
-    get_add_gamma.doc()
-  },
-  {
-    has_log_like_const_term.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_hasLogLikeConstTerm,
-    METH_VARARGS|METH_KEYWORDS,
-    has_log_like_const_term.doc()
-  },  
-  {
-    get_add_log_like_const_term.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_getAddLogLikeConstTerm,
-    METH_VARARGS|METH_KEYWORDS,
-    get_add_log_like_const_term.doc()
-  },
-  {
-    get_log_like_const_term.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_getLogLikeConstTerm,
-    METH_VARARGS|METH_KEYWORDS,
-    get_log_like_const_term.doc()
-  },  
-  {
-    clear_maps.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_clearMaps,
-    METH_NOARGS,
-    clear_maps.doc()
-  },
-  {
-    compute_log_likelihood.name(),
-    (PyCFunction)PyBobLearnMiscPLDAMachine_computeLogLikelihood,
-    METH_VARARGS|METH_KEYWORDS,
-    compute_log_likelihood.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the JFA type struct; will be initialized later
-PyTypeObject PyBobLearnMiscPLDAMachine_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscPLDAMachine(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscPLDAMachine_Type.tp_name      = PLDAMachine_doc.name();
-  PyBobLearnMiscPLDAMachine_Type.tp_basicsize = sizeof(PyBobLearnMiscPLDAMachineObject);
-  PyBobLearnMiscPLDAMachine_Type.tp_flags     = Py_TPFLAGS_DEFAULT;
-  PyBobLearnMiscPLDAMachine_Type.tp_doc       = PLDAMachine_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscPLDAMachine_Type.tp_new         = PyType_GenericNew;
-  PyBobLearnMiscPLDAMachine_Type.tp_init        = reinterpret_cast<initproc>(PyBobLearnMiscPLDAMachine_init);
-  PyBobLearnMiscPLDAMachine_Type.tp_dealloc     = reinterpret_cast<destructor>(PyBobLearnMiscPLDAMachine_delete);
-  PyBobLearnMiscPLDAMachine_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscPLDAMachine_RichCompare);
-  PyBobLearnMiscPLDAMachine_Type.tp_methods     = PyBobLearnMiscPLDAMachine_methods;
-  PyBobLearnMiscPLDAMachine_Type.tp_getset      = PyBobLearnMiscPLDAMachine_getseters;
-  PyBobLearnMiscPLDAMachine_Type.tp_call = reinterpret_cast<ternaryfunc>(PyBobLearnMiscPLDAMachine_forward);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscPLDAMachine_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscPLDAMachine_Type);
-  return PyModule_AddObject(module, "PLDAMachine", (PyObject*)&PyBobLearnMiscPLDAMachine_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/plda_trainer.cpp b/bob/learn/misc/plda_trainer.cpp
deleted file mode 100644
index 2f76dc3..0000000
--- a/bob/learn/misc/plda_trainer.cpp
+++ /dev/null
@@ -1,704 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Wed 04 Feb 14:15:00 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-#include <boost/make_shared.hpp>
-
-//Defining maps for each initializatio method
-static const std::map<std::string, bob::learn::misc::PLDATrainer::InitFMethod> FMethod = {{"RANDOM_F",  bob::learn::misc::PLDATrainer::RANDOM_F}, {"BETWEEN_SCATTER", bob::learn::misc::PLDATrainer::BETWEEN_SCATTER}};
-
-static const std::map<std::string, bob::learn::misc::PLDATrainer::InitGMethod> GMethod = {{"RANDOM_G",  bob::learn::misc::PLDATrainer::RANDOM_G}, {"WITHIN_SCATTER", bob::learn::misc::PLDATrainer::WITHIN_SCATTER}};
-
-static const std::map<std::string, bob::learn::misc::PLDATrainer::InitSigmaMethod> SigmaMethod = {{"RANDOM_SIGMA",  bob::learn::misc::PLDATrainer::RANDOM_SIGMA}, {"VARIANCE_G", bob::learn::misc::PLDATrainer::VARIANCE_G}, {"CONSTANT", bob::learn::misc::PLDATrainer::CONSTANT}, {"VARIANCE_DATA", bob::learn::misc::PLDATrainer::VARIANCE_DATA}};
-
-
-
-//String to type
-static inline bob::learn::misc::PLDATrainer::InitFMethod string2FMethod(const std::string& o){
-  auto it = FMethod.find(o);
-  if (it == FMethod.end()) throw std::runtime_error("The given FMethod '" + o + "' is not known; choose one of ('RANDOM_F','BETWEEN_SCATTER')");
-  else return it->second;
-}
-
-static inline bob::learn::misc::PLDATrainer::InitGMethod string2GMethod(const std::string& o){
-  auto it = GMethod.find(o);
-  if (it == GMethod.end()) throw std::runtime_error("The given GMethod '" + o + "' is not known; choose one of ('RANDOM_G','WITHIN_SCATTER')");
-  else return it->second;
-}
-
-static inline bob::learn::misc::PLDATrainer::InitSigmaMethod string2SigmaMethod(const std::string& o){
-  auto it = SigmaMethod.find(o);
-  if (it == SigmaMethod.end()) throw std::runtime_error("The given SigmaMethod '" + o + "' is not known; choose one of ('RANDOM_SIGMA','VARIANCE_G', 'CONSTANT', 'VARIANCE_DATA')");
-  else return it->second;
-}
-
-//Type to string
-static inline const std::string& FMethod2string(bob::learn::misc::PLDATrainer::InitFMethod o){
-  for (auto it = FMethod.begin(); it != FMethod.end(); ++it) if (it->second == o) return it->first;
-  throw std::runtime_error("The given FMethod type is not known");
-}
-
-static inline const std::string& GMethod2string(bob::learn::misc::PLDATrainer::InitGMethod o){
-  for (auto it = GMethod.begin(); it != GMethod.end(); ++it) if (it->second == o) return it->first;
-  throw std::runtime_error("The given GMethod type is not known");
-}
-
-static inline const std::string& SigmaMethod2string(bob::learn::misc::PLDATrainer::InitSigmaMethod o){
-  for (auto it = SigmaMethod.begin(); it != SigmaMethod.end(); ++it) if (it->second == o) return it->first;
-  throw std::runtime_error("The given SigmaMethod type is not known");
-}
-
-
-static inline bool f(PyObject* o){return o != 0 && PyObject_IsTrue(o) > 0;}  /* converts PyObject to bool and returns false if object is NULL */
-
-template <int N>
-int list_as_vector(PyObject* list, std::vector<blitz::Array<double,N> >& vec)
-{
-  for (int i=0; i<PyList_GET_SIZE(list); i++)
-  {
-    PyBlitzArrayObject* blitz_object; 
-    if (!PyArg_Parse(PyList_GetItem(list, i), "O&", &PyBlitzArray_Converter, &blitz_object)){
-      PyErr_Format(PyExc_RuntimeError, "Expected numpy array object");
-      return -1;
-    }
-    auto blitz_object_ = make_safe(blitz_object);
-    vec.push_back(*PyBlitzArrayCxx_AsBlitz<double,N>(blitz_object));
-  }
-  return 0;
-}
-
-
-template <int N>
-static PyObject* vector_as_list(const std::vector<blitz::Array<double,N> >& vec)
-{
-  PyObject* list = PyList_New(vec.size());
-  for(size_t i=0; i<vec.size(); i++){
-    blitz::Array<double,N> numpy_array = vec[i];
-    PyObject* numpy_py_object = PyBlitzArrayCxx_AsNumpy(numpy_array);
-    PyList_SET_ITEM(list, i, numpy_py_object);
-  }
-  return list;
-}
-
-
-/******************************************************************/
-/************ Constructor Section *********************************/
-/******************************************************************/
-
-
-static auto PLDATrainer_doc = bob::extension::ClassDoc(
-  BOB_EXT_MODULE_PREFIX ".PLDATrainer",
-  "This class can be used to train the :math:`$F$`, :math:`$G$ and "
-  " :math:`$\\Sigma$` matrices and the mean vector :math:`$\\mu$` of a PLDA model."
-  "References: [ElShafey2014,PrinceElder2007,LiFu2012]",
-  ""
-).add_constructor(
-  bob::extension::FunctionDoc(
-    "__init__",
-    "Default constructor.\n Initializes a new PLDA trainer. The "
-    "training stage will place the resulting components in the "
-    "PLDABase.",
-    "",
-    true
-  )
-  .add_prototype("use_sum_second_order","")
-  .add_prototype("other","")
-  .add_prototype("","")
-
-  .add_parameter("other", ":py:class:`bob.learn.misc.PLDATrainer`", "A PLDATrainer object to be copied.")
-  .add_parameter("use_sum_second_order", "bool", "")
-);
-
-static int PyBobLearnMiscPLDATrainer_init_copy(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = PLDATrainer_doc.kwlist(1);
-  PyBobLearnMiscPLDATrainerObject* o;
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscPLDATrainer_Type, &o)){
-    PLDATrainer_doc.print_usage();
-    return -1;
-  }
-
-  self->cxx.reset(new bob::learn::misc::PLDATrainer(*o->cxx));
-  return 0;
-}
-
-
-static int PyBobLearnMiscPLDATrainer_init_bool(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = PLDATrainer_doc.kwlist(0);
-  PyObject* use_sum_second_order;
-
-  //Parsing the input argments
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBool_Type, &use_sum_second_order))
-    return -1;
-
-  self->cxx.reset(new bob::learn::misc::PLDATrainer(f(use_sum_second_order)));
-  return 0;
-}
-
-
-static int PyBobLearnMiscPLDATrainer_init(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  // get the number of command line arguments
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  if(nargs==1){
-    //Reading the input argument
-    PyObject* arg = 0;
-    if (PyTuple_Size(args))
-      arg = PyTuple_GET_ITEM(args, 0);
-    else {
-      PyObject* tmp = PyDict_Values(kwargs);
-      auto tmp_ = make_safe(tmp);
-      arg = PyList_GET_ITEM(tmp, 0);
-    }
-      
-    if(PyBobLearnMiscPLDATrainer_Check(arg))
-      // If the constructor input is PLDATrainer object
-      return PyBobLearnMiscPLDATrainer_init_copy(self, args, kwargs);
-    else
-      return PyBobLearnMiscPLDATrainer_init_bool(self, args, kwargs);
-  }
-  else{
-    PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires only 0 or 1 argument, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
-    PLDATrainer_doc.print_usage();
-    return -1;
-  }
-
-  BOB_CATCH_MEMBER("cannot create PLDATrainer", 0)
-  return 0;
-}
-
-
-static void PyBobLearnMiscPLDATrainer_delete(PyBobLearnMiscPLDATrainerObject* self) {
-  self->cxx.reset();
-  Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-
-int PyBobLearnMiscPLDATrainer_Check(PyObject* o) {
-  return PyObject_IsInstance(o, reinterpret_cast<PyObject*>(&PyBobLearnMiscPLDATrainer_Type));
-}
-
-
-static PyObject* PyBobLearnMiscPLDATrainer_RichCompare(PyBobLearnMiscPLDATrainerObject* self, PyObject* other, int op) {
-  BOB_TRY
-
-  if (!PyBobLearnMiscPLDATrainer_Check(other)) {
-    PyErr_Format(PyExc_TypeError, "cannot compare `%s' with `%s'", Py_TYPE(self)->tp_name, Py_TYPE(other)->tp_name);
-    return 0;
-  }
-  auto other_ = reinterpret_cast<PyBobLearnMiscPLDATrainerObject*>(other);
-  switch (op) {
-    case Py_EQ:
-      if (*self->cxx==*other_->cxx) Py_RETURN_TRUE; else Py_RETURN_FALSE;
-    case Py_NE:
-      if (*self->cxx==*other_->cxx) Py_RETURN_FALSE; else Py_RETURN_TRUE;
-    default:
-      Py_INCREF(Py_NotImplemented);
-      return Py_NotImplemented;
-  }
-  BOB_CATCH_MEMBER("cannot compare PLDATrainer objects", 0)
-}
-
-
-/******************************************************************/
-/************ Variables Section ***********************************/
-/******************************************************************/
-
-static auto z_second_order = bob::extension::VariableDoc(
-  "z_second_order",
-  "array_like <float, 3D>",
-  "",
-  ""
-);
-PyObject* PyBobLearnMiscPLDATrainer_get_z_second_order(PyBobLearnMiscPLDATrainerObject* self, void*){
-  BOB_TRY
-  //return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getZSecondOrder());
-  return vector_as_list(self->cxx->getZSecondOrder());
-  BOB_CATCH_MEMBER("z_second_order could not be read", 0)
-}
-
-
-static auto z_second_order_sum = bob::extension::VariableDoc(
-  "z_second_order_sum",
-  "array_like <float, 2D>",
-  "",
-  ""
-);
-PyObject* PyBobLearnMiscPLDATrainer_get_z_second_order_sum(PyBobLearnMiscPLDATrainerObject* self, void*){
-  BOB_TRY
-  return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getZSecondOrderSum());
-  BOB_CATCH_MEMBER("z_second_order_sum could not be read", 0)
-}
-
-
-static auto z_first_order = bob::extension::VariableDoc(
-  "z_first_order",
-  "array_like <float, 2D>",
-  "",
-  ""
-);
-PyObject* PyBobLearnMiscPLDATrainer_get_z_first_order(PyBobLearnMiscPLDATrainerObject* self, void*){
-  BOB_TRY
-  //return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getZFirstOrder());
-  return vector_as_list(self->cxx->getZFirstOrder());
-  BOB_CATCH_MEMBER("z_first_order could not be read", 0)
-}
-
-
-/***** rng *****/
-static auto rng = bob::extension::VariableDoc(
-  "rng",
-  "str",
-  "The Mersenne Twister mt19937 random generator used for the initialization of subspaces/arrays before the EM loop.",
-  ""
-);
-PyObject* PyBobLearnMiscPLDATrainer_getRng(PyBobLearnMiscPLDATrainerObject* self, void*) {
-  BOB_TRY
-  //Allocating the correspondent python object
-  
-  PyBoostMt19937Object* retval =
-    (PyBoostMt19937Object*)PyBoostMt19937_Type.tp_alloc(&PyBoostMt19937_Type, 0);
-
-  retval->rng = self->cxx->getRng().get();
-  return Py_BuildValue("O", retval);
-  BOB_CATCH_MEMBER("Rng method could not be read", 0)
-}
-int PyBobLearnMiscPLDATrainer_setRng(PyBobLearnMiscPLDATrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyBoostMt19937_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an PyBoostMt19937_Check", Py_TYPE(self)->tp_name, rng.name());
-    return -1;
-  }
-
-  PyBoostMt19937Object* rng_object = 0;
-  PyArg_Parse(value, "O!", &PyBoostMt19937_Type, &rng_object);
-  self->cxx->setRng((boost::shared_ptr<boost::mt19937>)rng_object->rng);
-
-  return 0;
-  BOB_CATCH_MEMBER("Rng could not be set", 0)
-}
-
-
-/***** init_f_method *****/
-static auto init_f_method = bob::extension::VariableDoc(
-  "init_f_method",
-  "str",
-  "The method used for the initialization of :math:`$F$`.",
-  ""
-);
-PyObject* PyBobLearnMiscPLDATrainer_getFMethod(PyBobLearnMiscPLDATrainerObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("s", FMethod2string(self->cxx->getInitFMethod()).c_str());
-  BOB_CATCH_MEMBER("init_f_method method could not be read", 0)
-}
-int PyBobLearnMiscPLDATrainer_setFMethod(PyBobLearnMiscPLDATrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyString_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an str", Py_TYPE(self)->tp_name, init_f_method.name());
-    return -1;
-  }
-  self->cxx->setInitFMethod(string2FMethod(PyString_AS_STRING(value)));
-
-  return 0;
-  BOB_CATCH_MEMBER("init_f_method method could not be set", 0)
-}
-
-
-/***** init_g_method *****/
-static auto init_g_method = bob::extension::VariableDoc(
-  "init_g_method",
-  "str",
-  "The method used for the initialization of :math:`$G$`.",
-  ""
-);
-PyObject* PyBobLearnMiscPLDATrainer_getGMethod(PyBobLearnMiscPLDATrainerObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("s", GMethod2string(self->cxx->getInitGMethod()).c_str());
-  BOB_CATCH_MEMBER("init_g_method method could not be read", 0)
-}
-int PyBobLearnMiscPLDATrainer_setGMethod(PyBobLearnMiscPLDATrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyString_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an str", Py_TYPE(self)->tp_name, init_g_method.name());
-    return -1;
-  }
-  self->cxx->setInitGMethod(string2GMethod(PyString_AS_STRING(value)));
-
-  return 0;
-  BOB_CATCH_MEMBER("init_g_method method could not be set", 0)
-}
-
-
-/***** init_sigma_method *****/
-static auto init_sigma_method = bob::extension::VariableDoc(
-  "init_sigma_method",
-  "str",
-  "The method used for the initialization of :math:`$\\Sigma$`.",
-  ""
-);
-PyObject* PyBobLearnMiscPLDATrainer_getSigmaMethod(PyBobLearnMiscPLDATrainerObject* self, void*) {
-  BOB_TRY
-  return Py_BuildValue("s", SigmaMethod2string(self->cxx->getInitSigmaMethod()).c_str());
-  BOB_CATCH_MEMBER("init_sigma_method method could not be read", 0)
-}
-int PyBobLearnMiscPLDATrainer_setSigmaMethod(PyBobLearnMiscPLDATrainerObject* self, PyObject* value, void*) {
-  BOB_TRY
-
-  if (!PyString_Check(value)){
-    PyErr_Format(PyExc_RuntimeError, "%s %s expects an str", Py_TYPE(self)->tp_name, init_sigma_method.name());
-    return -1;
-  }
-  self->cxx->setInitSigmaMethod(string2SigmaMethod(PyString_AS_STRING(value)));
-
-  return 0;
-  BOB_CATCH_MEMBER("init_sigma_method method could not be set", 0)
-}
-
-
-static PyGetSetDef PyBobLearnMiscPLDATrainer_getseters[] = { 
-  {
-   z_first_order.name(),
-   (getter)PyBobLearnMiscPLDATrainer_get_z_first_order,
-   0,
-   z_first_order.doc(),
-   0
-  },
-  {
-   z_second_order_sum.name(),
-   (getter)PyBobLearnMiscPLDATrainer_get_z_second_order_sum,
-   0,
-   z_second_order_sum.doc(),
-   0
-  },
-  {
-   z_second_order.name(),
-   (getter)PyBobLearnMiscPLDATrainer_get_z_second_order,
-   0,
-   z_second_order.doc(),
-   0
-  },
-  {
-   rng.name(),
-   (getter)PyBobLearnMiscPLDATrainer_getRng,
-   (setter)PyBobLearnMiscPLDATrainer_setRng,
-   rng.doc(),
-   0
-  },
-  {
-   init_f_method.name(),
-   (getter)PyBobLearnMiscPLDATrainer_getFMethod,
-   (setter)PyBobLearnMiscPLDATrainer_setFMethod,
-   init_f_method.doc(),
-   0
-  },
-  {
-   init_g_method.name(),
-   (getter)PyBobLearnMiscPLDATrainer_getGMethod,
-   (setter)PyBobLearnMiscPLDATrainer_setGMethod,
-   init_g_method.doc(),
-   0
-  },
-  {
-   init_sigma_method.name(),
-   (getter)PyBobLearnMiscPLDATrainer_getSigmaMethod,
-   (setter)PyBobLearnMiscPLDATrainer_setSigmaMethod,
-   init_sigma_method.doc(),
-   0
-  },  
-  {0}  // Sentinel
-};
-
-
-/******************************************************************/
-/************ Functions Section ***********************************/
-/******************************************************************/
-
-/*** initialize ***/
-static auto initialize = bob::extension::FunctionDoc(
-  "initialize",
-  "Initialization before the EM steps",
-  "",
-  true
-)
-.add_prototype("plda_base,data")
-.add_parameter("plda_base", ":py:class:`bob.learn.misc.PLDABase`", "PLDAMachine Object")
-.add_parameter("data", "list", "");
-static PyObject* PyBobLearnMiscPLDATrainer_initialize(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = initialize.kwlist(0);
-
-  PyBobLearnMiscPLDABaseObject* plda_base = 0;
-  PyObject* data = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscPLDABase_Type, &plda_base,
-                                                                 &PyList_Type, &data)) Py_RETURN_NONE;
-
-  std::vector<blitz::Array<double,2> > data_vector;
-  if(list_as_vector(data ,data_vector)==0)
-    self->cxx->initialize(*plda_base->cxx, data_vector);
-
-  BOB_CATCH_MEMBER("cannot perform the initialize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** e_step ***/
-static auto e_step = bob::extension::FunctionDoc(
-  "e_step",
-  "e_step before the EM steps",
-  "",
-  true
-)
-.add_prototype("plda_base,data")
-.add_parameter("plda_base", ":py:class:`bob.learn.misc.PLDABase`", "PLDAMachine Object")
-.add_parameter("data", "list", "");
-static PyObject* PyBobLearnMiscPLDATrainer_e_step(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = e_step.kwlist(0);
-
-  PyBobLearnMiscPLDABaseObject* plda_base = 0;
-  PyObject* data = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscPLDABase_Type, &plda_base,
-                                                                 &PyList_Type, &data)) Py_RETURN_NONE;
-
-  std::vector<blitz::Array<double,2> > data_vector;
-  if(list_as_vector(data ,data_vector)==0)
-    self->cxx->eStep(*plda_base->cxx, data_vector);
-
-  BOB_CATCH_MEMBER("cannot perform the e_step method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** m_step ***/
-static auto m_step = bob::extension::FunctionDoc(
-  "m_step",
-  "m_step before the EM steps",
-  "",
-  true
-)
-.add_prototype("plda_base,data")
-.add_parameter("plda_base", ":py:class:`bob.learn.misc.PLDABase`", "PLDAMachine Object")
-.add_parameter("data", "list", "");
-static PyObject* PyBobLearnMiscPLDATrainer_m_step(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = m_step.kwlist(0);
-
-  PyBobLearnMiscPLDABaseObject* plda_base = 0;
-  PyObject* data = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscPLDABase_Type, &plda_base,
-                                                                 &PyList_Type, &data)) Py_RETURN_NONE;
-
-  std::vector<blitz::Array<double,2> > data_vector;
-  if(list_as_vector(data ,data_vector)==0)
-    self->cxx->mStep(*plda_base->cxx, data_vector);
-
-  BOB_CATCH_MEMBER("cannot perform the m_step method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** finalize ***/
-static auto finalize = bob::extension::FunctionDoc(
-  "finalize",
-  "finalize before the EM steps",
-  "",
-  true
-)
-.add_prototype("plda_base,data")
-.add_parameter("plda_base", ":py:class:`bob.learn.misc.PLDABase`", "PLDAMachine Object")
-.add_parameter("data", "list", "");
-static PyObject* PyBobLearnMiscPLDATrainer_finalize(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = finalize.kwlist(0);
-
-  PyBobLearnMiscPLDABaseObject* plda_base = 0;
-  PyObject* data = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnMiscPLDABase_Type, &plda_base,
-                                                                 &PyList_Type, &data)) Py_RETURN_NONE;
-
-  std::vector<blitz::Array<double,2> > data_vector;
-  if(list_as_vector(data ,data_vector)==0)
-    self->cxx->finalize(*plda_base->cxx, data_vector);
-
-  BOB_CATCH_MEMBER("cannot perform the finalize method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-
-/*** enrol ***/
-static auto enrol = bob::extension::FunctionDoc(
-  "enrol",
-  "Main procedure for enrolling a PLDAMachine",
-  "",
-  true
-)
-.add_prototype("plda_machine,data")
-.add_parameter("plda_machine", ":py:class:`bob.learn.misc.PLDAMachine`", "PLDAMachine Object")
-.add_parameter("data", "list", "");
-static PyObject* PyBobLearnMiscPLDATrainer_enrol(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwargs) {
-  BOB_TRY
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = enrol.kwlist(0);
-
-  PyBobLearnMiscPLDAMachineObject* plda_machine = 0;
-  PyBlitzArrayObject* data = 0;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnMiscPLDAMachine_Type, &plda_machine,
-                                                                 &PyBlitzArray_Converter, &data)) Py_RETURN_NONE;
-
-  auto data_ = make_safe(data);
-  self->cxx->enrol(*plda_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data));
-
-  BOB_CATCH_MEMBER("cannot perform the enrol method", 0)
-
-  Py_RETURN_NONE;
-}
-
-
-/*** is_similar_to ***/
-static auto is_similar_to = bob::extension::FunctionDoc(
-  "is_similar_to",
-  
-  "Compares this PLDATrainer with the ``other`` one to be approximately the same.",
-  "The optional values ``r_epsilon`` and ``a_epsilon`` refer to the "
-  "relative and absolute precision for the ``weights``, ``biases`` "
-  "and any other values internal to this machine."
-)
-.add_prototype("other, [r_epsilon], [a_epsilon]","output")
-.add_parameter("other", ":py:class:`bob.learn.misc.PLDAMachine`", "A PLDAMachine object to be compared.")
-.add_parameter("r_epsilon", "float", "Relative precision.")
-.add_parameter("a_epsilon", "float", "Absolute precision.")
-.add_return("output","bool","True if it is similar, otherwise false.");
-static PyObject* PyBobLearnMiscPLDATrainer_IsSimilarTo(PyBobLearnMiscPLDATrainerObject* self, PyObject* args, PyObject* kwds) {
-
-  /* Parses input arguments in a single shot */
-  char** kwlist = is_similar_to.kwlist(0);
-
-  //PyObject* other = 0;
-  PyBobLearnMiscPLDATrainerObject* other = 0;
-  double r_epsilon = 1.e-5;
-  double a_epsilon = 1.e-8;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|dd", kwlist,
-        &PyBobLearnMiscPLDATrainer_Type, &other,
-        &r_epsilon, &a_epsilon)){
-
-        is_similar_to.print_usage(); 
-        return 0;        
-  }
-
-  if (self->cxx->is_similar_to(*other->cxx, r_epsilon, a_epsilon))
-    Py_RETURN_TRUE;
-  else
-    Py_RETURN_FALSE;
-}
-
-
-
-static PyMethodDef PyBobLearnMiscPLDATrainer_methods[] = {
-  {
-    initialize.name(),
-    (PyCFunction)PyBobLearnMiscPLDATrainer_initialize,
-    METH_VARARGS|METH_KEYWORDS,
-    initialize.doc()
-  },
-  {
-    e_step.name(),
-    (PyCFunction)PyBobLearnMiscPLDATrainer_e_step,
-    METH_VARARGS|METH_KEYWORDS,
-    e_step.doc()
-  },
-  {
-    m_step.name(),
-    (PyCFunction)PyBobLearnMiscPLDATrainer_m_step,
-    METH_VARARGS|METH_KEYWORDS,
-    m_step.doc()
-  },
-  {
-    finalize.name(),
-    (PyCFunction)PyBobLearnMiscPLDATrainer_finalize,
-    METH_VARARGS|METH_KEYWORDS,
-    finalize.doc()
-  },  
-  {
-    enrol.name(),
-    (PyCFunction)PyBobLearnMiscPLDATrainer_enrol,
-    METH_VARARGS|METH_KEYWORDS,
-    enrol.doc()
-  },
-  {
-    is_similar_to.name(),
-    (PyCFunction)PyBobLearnMiscPLDATrainer_IsSimilarTo,
-    METH_VARARGS|METH_KEYWORDS,
-    is_similar_to.doc()
-  },
-  {0} /* Sentinel */
-};
-
-
-/******************************************************************/
-/************ Module Section **************************************/
-/******************************************************************/
-
-// Define the Gaussian type struct; will be initialized later
-PyTypeObject PyBobLearnMiscPLDATrainer_Type = {
-  PyVarObject_HEAD_INIT(0,0)
-  0
-};
-
-bool init_BobLearnMiscPLDATrainer(PyObject* module)
-{
-  // initialize the type struct
-  PyBobLearnMiscPLDATrainer_Type.tp_name      = PLDATrainer_doc.name();
-  PyBobLearnMiscPLDATrainer_Type.tp_basicsize = sizeof(PyBobLearnMiscPLDATrainerObject);
-  PyBobLearnMiscPLDATrainer_Type.tp_flags     = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;//Enable the class inheritance;
-  PyBobLearnMiscPLDATrainer_Type.tp_doc       = PLDATrainer_doc.doc();
-
-  // set the functions
-  PyBobLearnMiscPLDATrainer_Type.tp_new          = PyType_GenericNew;
-  PyBobLearnMiscPLDATrainer_Type.tp_init         = reinterpret_cast<initproc>(PyBobLearnMiscPLDATrainer_init);
-  PyBobLearnMiscPLDATrainer_Type.tp_dealloc      = reinterpret_cast<destructor>(PyBobLearnMiscPLDATrainer_delete);
-  PyBobLearnMiscPLDATrainer_Type.tp_richcompare = reinterpret_cast<richcmpfunc>(PyBobLearnMiscPLDATrainer_RichCompare);
-  PyBobLearnMiscPLDATrainer_Type.tp_methods      = PyBobLearnMiscPLDATrainer_methods;
-  PyBobLearnMiscPLDATrainer_Type.tp_getset       = PyBobLearnMiscPLDATrainer_getseters;
-  //PyBobLearnMiscPLDATrainer_Type.tp_call         = reinterpret_cast<ternaryfunc>(PyBobLearnMiscPLDATrainer_compute_likelihood);
-
-
-  // check that everything is fine
-  if (PyType_Ready(&PyBobLearnMiscPLDATrainer_Type) < 0) return false;
-
-  // add the type to the module
-  Py_INCREF(&PyBobLearnMiscPLDATrainer_Type);
-  return PyModule_AddObject(module, "_PLDATrainer", (PyObject*)&PyBobLearnMiscPLDATrainer_Type) >= 0;
-}
-
diff --git a/bob/learn/misc/test_em.py b/bob/learn/misc/test_em.py
deleted file mode 100644
index 88070de..0000000
--- a/bob/learn/misc/test_em.py
+++ /dev/null
@@ -1,252 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Francois Moulin <Francois.Moulin@idiap.ch>
-# Tue May 10 11:35:58 2011 +0200
-#
-# Copyright (C) 2011-2013 Idiap Research Institute, Martigny, Switzerland
-
-"""Test trainer package
-"""
-import unittest
-import numpy
-
-import bob.io.base
-from bob.io.base.test_utils import datafile
-
-from . import KMeansMachine, GMMMachine, KMeansTrainer, \
-    ML_GMMTrainer, MAP_GMMTrainer
-
-#, MAP_GMMTrainer
-
-def loadGMM():
-  gmm = GMMMachine(2, 2)
-
-  gmm.weights = bob.io.base.load(datafile('gmm.init_weights.hdf5', __name__))
-  gmm.means = bob.io.base.load(datafile('gmm.init_means.hdf5', __name__))
-  gmm.variances = bob.io.base.load(datafile('gmm.init_variances.hdf5', __name__))
-  #gmm.variance_thresholds = numpy.array([[0.001, 0.001],[0.001, 0.001]], 'float64')
-
-  return gmm
-
-def equals(x, y, epsilon):
-  return (abs(x - y) < epsilon).all()
-
-class MyTrainer1(KMeansTrainer):
-  """Simple example of python trainer: """
-
-  def __init__(self):
-    KMeansTrainer.__init__(self)
-
-  def train(self, machine, data):
-    a = numpy.ndarray((2, 2), 'float64')
-    a[0, :] = data[1]
-    a[1, :] = data[2]
-    machine.means = a
-
-def test_gmm_ML_1():
-
-  # Trains a GMMMachine with ML_GMMTrainer
-
-  ar = bob.io.base.load(datafile("faithful.torch3_f64.hdf5", __name__))  
-  gmm = loadGMM()
-  
-  ml_gmmtrainer = ML_GMMTrainer(True, True, True)
-  ml_gmmtrainer.train(gmm, ar)
-
-  #config = bob.io.base.HDF5File(datafile('gmm_ML.hdf5", __name__), 'w')
-  #gmm.save(config)
-  
-  gmm_ref = GMMMachine(bob.io.base.HDF5File(datafile('gmm_ML.hdf5', __name__)))
-  gmm_ref_32bit_debug = GMMMachine(bob.io.base.HDF5File(datafile('gmm_ML_32bit_debug.hdf5', __name__)))
-  gmm_ref_32bit_release = GMMMachine(bob.io.base.HDF5File(datafile('gmm_ML_32bit_release.hdf5', __name__)))
-
-  assert (gmm == gmm_ref) or (gmm == gmm_ref_32bit_release) or (gmm == gmm_ref_32bit_release)
-
- 
-def test_gmm_ML_2():
-
-  # Trains a GMMMachine with ML_GMMTrainer; compares to an old reference
-
-  ar = bob.io.base.load(datafile('dataNormalized.hdf5', __name__))
-
-  # Initialize GMMMachine
-  gmm = GMMMachine(5, 45)
-  gmm.means = bob.io.base.load(datafile('meansAfterKMeans.hdf5', __name__)).astype('float64')
-  gmm.variances = bob.io.base.load(datafile('variancesAfterKMeans.hdf5', __name__)).astype('float64')
-  gmm.weights = numpy.exp(bob.io.base.load(datafile('weightsAfterKMeans.hdf5', __name__)).astype('float64'))
-
-  threshold = 0.001
-  gmm.set_variance_thresholds(threshold)
-
-  # Initialize ML Trainer
-  prior = 0.001
-  max_iter_gmm = 25
-  accuracy = 0.00001
-  ml_gmmtrainer = ML_GMMTrainer(True, True, True, prior, converge_by_likelihood=True)
-  ml_gmmtrainer.max_iterations = max_iter_gmm
-  ml_gmmtrainer.convergence_threshold = accuracy
-  
-  # Run ML
-  ml_gmmtrainer.train(gmm, ar)
-
-
-  # Test results
-  # Load torch3vision reference
-  meansML_ref = bob.io.base.load(datafile('meansAfterML.hdf5', __name__))
-  variancesML_ref = bob.io.base.load(datafile('variancesAfterML.hdf5', __name__))
-  weightsML_ref = bob.io.base.load(datafile('weightsAfterML.hdf5', __name__))
-
-
-  # Compare to current results
-  assert equals(gmm.means, meansML_ref, 3e-3)
-  assert equals(gmm.variances, variancesML_ref, 3e-3)
-  assert equals(gmm.weights, weightsML_ref, 1e-4)
-
-
-
-def test_gmm_MAP_1():
-
-  # Train a GMMMachine with MAP_GMMTrainer
-
-  ar = bob.io.base.load(datafile('faithful.torch3_f64.hdf5', __name__))
-
-  gmm = GMMMachine(bob.io.base.HDF5File(datafile("gmm_ML.hdf5", __name__)))
-  gmmprior = GMMMachine(bob.io.base.HDF5File(datafile("gmm_ML.hdf5", __name__)))
-
-  map_gmmtrainer = MAP_GMMTrainer(update_means=True, update_variances=False, update_weights=False, prior_gmm=gmmprior, relevance_factor=4.)  
-  #map_gmmtrainer.set_prior_gmm(gmmprior)
-  map_gmmtrainer.train(gmm, ar)
-
-  #config = bob.io.base.HDF5File(datafile('gmm_MAP.hdf5", 'w', __name__))
-  #gmm.save(config)
-
-  gmm_ref = GMMMachine(bob.io.base.HDF5File(datafile('gmm_MAP.hdf5', __name__)))
-
-  assert (equals(gmm.means,gmm_ref.means,1e-3) and equals(gmm.variances,gmm_ref.variances,1e-3) and equals(gmm.weights,gmm_ref.weights,1e-3))
-
-
-def test_gmm_MAP_2():
-
-  # Train a GMMMachine with MAP_GMMTrainer and compare with matlab reference
-
-  data = bob.io.base.load(datafile('data.hdf5', __name__))
-  data = data.reshape((1, data.shape[0])) # make a 2D array out of it
-  means = bob.io.base.load(datafile('means.hdf5', __name__))
-  variances = bob.io.base.load(datafile('variances.hdf5', __name__))
-  weights = bob.io.base.load(datafile('weights.hdf5', __name__))
-
-  gmm = GMMMachine(2,50)
-  gmm.means = means
-  gmm.variances = variances
-  gmm.weights = weights
-
-  map_adapt = MAP_GMMTrainer(update_means=True, update_variances=False, update_weights=False, mean_var_update_responsibilities_threshold=0.,prior_gmm=gmm, relevance_factor=4.)
-  #map_adapt.set_prior_gmm(gmm)
-
-  gmm_adapted = GMMMachine(2,50)
-  gmm_adapted.means = means
-  gmm_adapted.variances = variances
-  gmm_adapted.weights = weights
-
-  map_adapt.max_iterations = 1
-  map_adapt.train(gmm_adapted, data)
-
-  new_means = bob.io.base.load(datafile('new_adapted_mean.hdf5', __name__))
-
- # print new_means[0,:]
- # print gmm_adapted.means[:,0]
-
-  # Compare to matlab reference
-  assert equals(new_means[0,:], gmm_adapted.means[:,0], 1e-4)
-  assert equals(new_means[1,:], gmm_adapted.means[:,1], 1e-4)
-
-
-def test_gmm_MAP_3():
-
-  # Train a GMMMachine with MAP_GMMTrainer; compares to old reference
-
-  ar = bob.io.base.load(datafile('dataforMAP.hdf5', __name__))
-
-  # Initialize GMMMachine
-  n_gaussians = 5
-  n_inputs = 45
-  prior_gmm = GMMMachine(n_gaussians, n_inputs)
-  prior_gmm.means = bob.io.base.load(datafile('meansAfterML.hdf5', __name__))
-  prior_gmm.variances = bob.io.base.load(datafile('variancesAfterML.hdf5', __name__))
-  prior_gmm.weights = bob.io.base.load(datafile('weightsAfterML.hdf5', __name__))
-
-  threshold = 0.001
-  prior_gmm.set_variance_thresholds(threshold)
-
-  # Initialize MAP Trainer
-  relevance_factor = 0.1
-  prior = 0.001
-  max_iter_gmm = 1
-  accuracy = 0.00001
-  map_factor = 0.5
-  map_gmmtrainer = MAP_GMMTrainer(update_means=True, update_variances=False, update_weights=False, convergence_threshold=prior, prior_gmm=prior_gmm, alpha=map_factor)
-  map_gmmtrainer.max_iterations = max_iter_gmm
-  map_gmmtrainer.convergence_threshold = accuracy
-
-  gmm = GMMMachine(n_gaussians, n_inputs)
-  gmm.set_variance_thresholds(threshold)
-
-  # Train
-  map_gmmtrainer.train(gmm, ar)
-
-  # Test results
-  # Load torch3vision reference
-  meansMAP_ref = bob.io.base.load(datafile('meansAfterMAP.hdf5', __name__))
-  variancesMAP_ref = bob.io.base.load(datafile('variancesAfterMAP.hdf5', __name__))
-  weightsMAP_ref = bob.io.base.load(datafile('weightsAfterMAP.hdf5', __name__))
-
-  # Compare to current results
-  # Gaps are quite large. This might be explained by the fact that there is no
-  # adaptation of a given Gaussian in torch3 when the corresponding responsibilities
-  # are below the responsibilities threshold
-  assert equals(gmm.means, meansMAP_ref, 2e-1)
-  assert equals(gmm.variances, variancesMAP_ref, 1e-4)
-  assert equals(gmm.weights, weightsMAP_ref, 1e-4)
-
-
-def test_gmm_test():
-
-  # Tests a GMMMachine by computing scores against a model and compare to
-  # an old reference
-
-  ar = bob.io.base.load(datafile('dataforMAP.hdf5', __name__))
-
-  # Initialize GMMMachine
-  n_gaussians = 5
-  n_inputs = 45
-  gmm = GMMMachine(n_gaussians, n_inputs)
-  gmm.means = bob.io.base.load(datafile('meansAfterML.hdf5', __name__))
-  gmm.variances = bob.io.base.load(datafile('variancesAfterML.hdf5', __name__))
-  gmm.weights = bob.io.base.load(datafile('weightsAfterML.hdf5', __name__))
-
-  threshold = 0.001
-  gmm.set_variance_thresholds(threshold)
-
-  # Test against the model
-  score_mean_ref = -1.50379e+06
-  score = 0.
-  for v in ar: score += gmm(v)
-  score /= len(ar)
-
-  # Compare current results to torch3vision
-  assert abs(score-score_mean_ref)/score_mean_ref<1e-4
-
-
-def test_custom_trainer():
-
-  # Custom python trainer
-
-  ar = bob.io.base.load(datafile("faithful.torch3_f64.hdf5", __name__))
-
-  mytrainer = MyTrainer1()
-
-  machine = KMeansMachine(2, 2)
-  mytrainer.train(machine, ar)
-
-  for i in range(0, 2):
-    assert (ar[i+1] == machine.means[i, :]).all()
diff --git a/bob/learn/misc/test_gaussian.py b/bob/learn/misc/test_gaussian.py
deleted file mode 100644
index eb2b0fa..0000000
--- a/bob/learn/misc/test_gaussian.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Thu Feb 16 16:54:45 2012 +0200
-#
-# Copyright (C) 2011-2013 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests the Gaussian machine
-"""
-
-import os
-import numpy
-import tempfile
-
-import bob.io.base
-
-from bob.learn.misc import Gaussian
-
-def equals(x, y, epsilon):
-  return (abs(x - y) < epsilon)
-
-def test_GaussianNormal():
-  # Test the likelihood computation of a simple normal Gaussian
-  gaussian = Gaussian(2)
-  # By default, initialized with zero mean and unit variance
-  logLH = gaussian.log_likelihood(numpy.array([0.4, 0.2], 'float64'))
-  assert equals(logLH, -1.93787706641, 1e-10)
-
-def test_GaussianMachine():
-  # Test a GaussianMachine more thoroughly
-
-  # Initializes a Gaussian with zero mean and unit variance
-  g = Gaussian(3)
-  assert (g.mean == 0.0).all()
-  assert (g.variance == 1.0).all()
-  assert g.shape == (3,)
-
-  # Set and check mean, variance, variance thresholds
-  mean     = numpy.array([0, 1, 2], 'float64')
-  variance = numpy.array([3, 2, 1], 'float64')
-  g.mean     = mean
-  g.variance = variance
-  g.set_variance_thresholds(0.0005)
-  assert (g.mean == mean).all()
-  assert (g.variance == variance).all()
-  assert (g.variance_thresholds == 0.0005).all()
-
-  # Save and read from file
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  g.save(bob.io.base.HDF5File(filename, 'w'))
-  g_loaded = Gaussian(bob.io.base.HDF5File(filename))
-  assert g == g_loaded
-  assert (g != g_loaded ) is False
-  assert g.is_similar_to(g_loaded)
-  
-  # Save and read from file using the keyword argument
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  g.save(hdf5=bob.io.base.HDF5File(filename, 'w'))
-  g_loaded = Gaussian(hdf5=bob.io.base.HDF5File(filename))
-  assert g == g_loaded
-  assert (g != g_loaded ) is False
-  assert g.is_similar_to(g_loaded)
-
-  # Save and loading from file using the keyword argument
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  g.save(bob.io.base.HDF5File(filename, 'w'))
-  g_loaded = bob.learn.misc.Gaussian()
-  g_loaded.load(bob.io.base.HDF5File(filename))
-  assert g == g_loaded
-  assert (g != g_loaded ) is False
-  assert g.is_similar_to(g_loaded)
-
-  # Save and loading from file using the keyword argument
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  g.save(bob.io.base.HDF5File(filename, 'w'))
-  g_loaded = bob.learn.misc.Gaussian()
-  g_loaded.load(hdf5=bob.io.base.HDF5File(filename))
-  assert g == g_loaded
-  assert (g != g_loaded ) is False
-  assert g.is_similar_to(g_loaded)
-
-
-  # Make them different
-  g_loaded.set_variance_thresholds(0.001)
-  assert (g == g_loaded ) is False
-  assert g != g_loaded
-
-  # Check likelihood computation
-  sample1 = numpy.array([0, 1, 2], 'float64')
-  sample2 = numpy.array([1, 2, 3], 'float64')
-  sample3 = numpy.array([2, 3, 4], 'float64')
-  ref1 = -3.652695334228046
-  ref2 = -4.569362000894712
-  ref3 = -7.319362000894712
-  eps = 1e-10
-  assert equals(g.log_likelihood(sample1), ref1, eps)
-  assert equals(g.log_likelihood(sample2), ref2, eps)
-  assert equals(g.log_likelihood(sample3), ref3, eps)
-
-  # Check resize and assignment
-  g.resize(5)
-  assert g.shape == (5,)
-  g2 = Gaussian()
-  g2 = g
-  assert g == g2
-  assert (g != g2 ) is False
-  g3 = Gaussian(g)
-  assert g == g3
-  assert (g != g3 ) is False
-
-  # Clean-up
-  os.unlink(filename)
diff --git a/bob/learn/misc/test_gmm.py b/bob/learn/misc/test_gmm.py
deleted file mode 100644
index a9e0910..0000000
--- a/bob/learn/misc/test_gmm.py
+++ /dev/null
@@ -1,240 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Thu Feb 16 17:57:10 2012 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests the GMM machine and the GMMStats container
-"""
-
-import os
-import numpy
-import tempfile
-
-import bob.io.base
-from bob.io.base.test_utils import datafile
-
-from . import GMMStats, GMMMachine
-
-def test_GMMStats():
-  # Test a GMMStats
-  # Initializes a GMMStats
-  gs = GMMStats(2,3)
-  log_likelihood = -3.
-  T = 57
-  n = numpy.array([4.37, 5.31], 'float64')
-  sumpx = numpy.array([[1., 2., 3.], [4., 5., 6.]], 'float64')
-  sumpxx = numpy.array([[10., 20., 30.], [40., 50., 60.]], 'float64')
-  gs.log_likelihood = log_likelihood
-  gs.t = T
-  gs.n = n
-  gs.sum_px = sumpx
-  gs.sum_pxx = sumpxx
-  assert gs.log_likelihood == log_likelihood
-  assert gs.t == T
-  assert (gs.n == n).all()
-  assert (gs.sum_px == sumpx).all()
-  assert (gs.sum_pxx == sumpxx).all()
-  assert gs.shape==(2,3)
-
-  # Saves and reads from file
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  gs.save(bob.io.base.HDF5File(filename, 'w'))
-  gs_loaded = GMMStats(bob.io.base.HDF5File(filename))
-  assert gs == gs_loaded
-  assert (gs != gs_loaded ) is False
-  assert gs.is_similar_to(gs_loaded)
-  
-  # Saves and reads from file using the keyword argument
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  gs.save(hdf5=bob.io.base.HDF5File(filename, 'w'))
-  gs_loaded = GMMStats(bob.io.base.HDF5File(filename))
-  assert gs == gs_loaded
-  assert (gs != gs_loaded ) is False
-  assert gs.is_similar_to(gs_loaded)
-
-  # Saves and load from file using the keyword argument
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  gs.save(hdf5=bob.io.base.HDF5File(filename, 'w'))
-  gs_loaded = GMMStats()
-  gs_loaded.load(bob.io.base.HDF5File(filename))
-  assert gs == gs_loaded
-  assert (gs != gs_loaded ) is False
-  assert gs.is_similar_to(gs_loaded)
-
-  # Saves and load from file using the keyword argument
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  gs.save(hdf5=bob.io.base.HDF5File(filename, 'w'))
-  gs_loaded = GMMStats()
-  gs_loaded.load(hdf5=bob.io.base.HDF5File(filename))
-  assert gs == gs_loaded
-  assert (gs != gs_loaded ) is False
-  assert gs.is_similar_to(gs_loaded)
-  
-  
-  # Makes them different
-  gs_loaded.t = 58
-  assert (gs == gs_loaded ) is False
-  assert gs != gs_loaded
-  assert (gs.is_similar_to(gs_loaded)) is False
-  # Accumulates from another GMMStats
-  gs2 = GMMStats(2,3)
-  gs2.log_likelihood = log_likelihood
-  gs2.t = T
-  gs2.n = n
-  gs2.sum_px = sumpx
-  gs2.sum_pxx = sumpxx
-  gs2 += gs
-  eps = 1e-8
-  assert gs2.log_likelihood == 2*log_likelihood
-  assert gs2.t == 2*T
-  assert numpy.allclose(gs2.n, 2*n, eps)
-  assert numpy.allclose(gs2.sum_px, 2*sumpx, eps)
-  assert numpy.allclose(gs2.sum_pxx, 2*sumpxx, eps)
-
-  # Reinit and checks for zeros
-  gs_loaded.init()
-  assert gs_loaded.log_likelihood == 0
-  assert gs_loaded.t == 0
-  assert (gs_loaded.n == 0).all()
-  assert (gs_loaded.sum_px == 0).all()
-  assert (gs_loaded.sum_pxx == 0).all()
-  # Resize and checks size
-  assert  gs_loaded.shape==(2,3)
-  gs_loaded.resize(4,5)  
-  assert  gs_loaded.shape==(4,5)
-  assert gs_loaded.sum_px.shape[0] == 4
-  assert gs_loaded.sum_px.shape[1] == 5
-
-  # Clean-up
-  os.unlink(filename)
-
-def test_GMMMachine_1():
-  # Test a GMMMachine basic features
-
-  weights   = numpy.array([0.5, 0.5], 'float64')
-  weights2   = numpy.array([0.6, 0.4], 'float64')
-  means     = numpy.array([[3, 70, 0], [4, 72, 0]], 'float64')
-  means2     = numpy.array([[3, 7, 0], [4, 72, 0]], 'float64')
-  variances = numpy.array([[1, 10, 1], [2, 5, 2]], 'float64')
-  variances2 = numpy.array([[10, 10, 1], [2, 5, 2]], 'float64')
-  varianceThresholds = numpy.array([[0, 0, 0], [0, 0, 0]], 'float64')
-  varianceThresholds2 = numpy.array([[0.0005, 0.0005, 0.0005], [0, 0, 0]], 'float64')
-
-  # Initializes a GMMMachine
-  gmm = GMMMachine(2,3)
-  # Sets the weights, means, variances and varianceThresholds and
-  # Checks correctness
-  gmm.weights = weights
-  gmm.means = means
-  gmm.variances = variances
-  gmm.variance_thresholds = varianceThresholds
-  assert gmm.shape == (2,3)
-  assert (gmm.weights == weights).all()
-  assert (gmm.means == means).all()
-  assert (gmm.variances == variances).all()
-  assert (gmm.variance_thresholds == varianceThresholds).all()
-
-  # Checks supervector-like accesses
-  assert (gmm.mean_supervector == means.reshape(means.size)).all()
-  assert (gmm.variance_supervector == variances.reshape(variances.size)).all()
-  newMeans = numpy.array([[3, 70, 2], [4, 72, 2]], 'float64')
-  newVariances = numpy.array([[1, 1, 1], [2, 2, 2]], 'float64')
-
-
-  # Checks particular varianceThresholds-related methods
-  varianceThresholds1D = numpy.array([0.3, 1, 0.5], 'float64')
-  gmm.set_variance_thresholds(varianceThresholds1D)
-  assert (gmm.variance_thresholds[0,:] == varianceThresholds1D).all()
-  assert (gmm.variance_thresholds[1,:] == varianceThresholds1D).all()
-
-  gmm.set_variance_thresholds(0.005)
-  assert (gmm.variance_thresholds == 0.005).all()
-
-  # Checks Gaussians access
-  gmm.means     = newMeans
-  gmm.variances = newVariances
-  assert (gmm.get_gaussian(0).mean == newMeans[0,:]).all()
-  assert (gmm.get_gaussian(1).mean == newMeans[1,:]).all()
-  assert (gmm.get_gaussian(0).variance == newVariances[0,:]).all()
-  assert (gmm.get_gaussian(1).variance == newVariances[1,:]).all()
-
-  # Checks resize
-  gmm.resize(4,5)
-  assert gmm.shape == (4,5)
-
-  # Checks comparison
-  gmm2 = GMMMachine(gmm)
-  gmm3 = GMMMachine(2,3)
-  gmm3.weights = weights2
-  gmm3.means = means
-  gmm3.variances = variances
-  #gmm3.varianceThresholds = varianceThresholds
-  gmm4 = GMMMachine(2,3)
-  gmm4.weights = weights
-  gmm4.means = means2
-  gmm4.variances = variances
-  #gmm4.varianceThresholds = varianceThresholds
-  gmm5 = GMMMachine(2,3)
-  gmm5.weights = weights
-  gmm5.means = means
-  gmm5.variances = variances2
-  #gmm5.varianceThresholds = varianceThresholds
-  gmm6 = GMMMachine(2,3)
-  gmm6.weights = weights
-  gmm6.means = means
-  gmm6.variances = variances
-  #gmm6.varianceThresholds = varianceThresholds2
-
-  assert gmm == gmm2
-  assert (gmm != gmm2) is False
-  assert gmm.is_similar_to(gmm2)
-  assert gmm != gmm3
-  assert (gmm == gmm3) is False
-  assert gmm.is_similar_to(gmm3) is False
-  assert gmm != gmm4
-  assert (gmm == gmm4) is False
-  assert gmm.is_similar_to(gmm4) is False
-  assert gmm != gmm5
-  assert (gmm == gmm5) is False
-  assert gmm.is_similar_to(gmm5) is False
-  assert gmm != gmm6
-  assert (gmm == gmm6) is False
-  assert gmm.is_similar_to(gmm6) is False
-
-def test_GMMMachine_2():
-  # Test a GMMMachine (statistics)
-
-  arrayset = bob.io.base.load(datafile("faithful.torch3_f64.hdf5", __name__))
-  gmm = GMMMachine(2, 2)
-  gmm.weights   = numpy.array([0.5, 0.5], 'float64')
-  gmm.means     = numpy.array([[3, 70], [4, 72]], 'float64')
-  gmm.variances = numpy.array([[1, 10], [2, 5]], 'float64')
-  gmm.variance_thresholds = numpy.array([[0, 0], [0, 0]], 'float64')
-
-  stats = GMMStats(2, 2)
-  gmm.acc_statistics(arrayset, stats)
-
-  stats_ref = GMMStats(bob.io.base.HDF5File(datafile("stats.hdf5",__name__)))
-
-  assert stats.t == stats_ref.t
-  assert numpy.allclose(stats.n, stats_ref.n, atol=1e-10)
-  #assert numpy.array_equal(stats.sumPx, stats_ref.sumPx)
-  #Note AA: precision error above
-  assert numpy.allclose(stats.sum_px, stats_ref.sum_px, atol=1e-10)
-  assert numpy.allclose(stats.sum_pxx, stats_ref.sum_pxx, atol=1e-10)
-
-def test_GMMMachine_3():
-  # Test a GMMMachine (log-likelihood computation)
-
-  data = bob.io.base.load(datafile('data.hdf5', __name__))
-  gmm = GMMMachine(2, 50)
-  gmm.weights   = bob.io.base.load(datafile('weights.hdf5', __name__))
-  gmm.means     = bob.io.base.load(datafile('means.hdf5', __name__))
-  gmm.variances = bob.io.base.load(datafile('variances.hdf5', __name__))
-
-  # Compare the log-likelihood with the one obtained using Chris Matlab
-  # implementation
-  matlab_ll_ref = -2.361583051672024e+02
-  assert abs(gmm(data) - matlab_ll_ref) < 1e-10
diff --git a/bob/learn/misc/test_ivector.py b/bob/learn/misc/test_ivector.py
deleted file mode 100644
index fb9c8b2..0000000
--- a/bob/learn/misc/test_ivector.py
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Mon Apr 2 11:19:00 2013 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-
-"""Tests the I-Vector machine
-"""
-
-import numpy
-import numpy.linalg
-import numpy.random
-
-from . import GMMMachine, GMMStats, IVectorMachine
-
-
-### Test class inspired by an implementation of Chris McCool
-### Chris McCool (chris.mccool@nicta.com.au)
-class IVectorMachinePy():
-  """An IVector extractor"""
-
-  def __init__(self, ubm=None, dim_t=1):
-    # Our state
-    self.m_ubm = ubm
-    self.m_dim_t = dim_t
-    # Resize the matrices T and sigma
-    self.resize()
-    # Precompute
-    self.precompute()
-
-  def resize(self):
-    if self.m_ubm:
-      dim_cd = self.m_ubm.shape[0] * self.m_ubm.shape[1]
-      self.m_t = numpy.random.randn(dim_cd, self.m_dim_t)
-      self.m_sigma = numpy.random.randn(dim_cd)
-
-  def precompute(self):
-    if self.m_ubm and self.m_t is not None and self.m_sigma is not None:
-      #dim_c = self.m_ubm.dim_c
-      #dim_d = self.m_ubm.dim_d
-      dim_c,dim_d = self.m_ubm.shape
-      self.m_cache_TtSigmaInv = {}
-      self.m_cache_TtSigmaInvT = {}
-      for c in range(dim_c):
-        start                       = c*dim_d
-        end                         = (c+1)*dim_d
-        Tc                          = self.m_t[start:end,:]
-        self.m_cache_TtSigmaInv[c]  = Tc.transpose() / self.m_sigma[start:end]
-        self.m_cache_TtSigmaInvT[c] = numpy.dot(self.m_cache_TtSigmaInv[c], Tc);
-
-  def set_ubm(self, ubm):
-    self.m_ubm = ubm
-    # Precompute
-    self.precompute()
-
-  def get_ubm(self):
-    return self.m_ubm
-
-  def set_t(self, t):
-    # @warning: no dimensions check
-    self.m_t = t
-    # Precompute
-    self.precompute()
-
-  def get_t(self):
-    return self.m_t
-
-  def set_sigma(self, sigma):
-    # @warning: no dimensions check
-    self.m_sigma = sigma
-    # Precompute
-    self.precompute()
-
-  def get_sigma(self):
-    return self.m_sigma
-
-
-  def _get_TtSigmaInv_Fnorm(self, N, F):
-    # Initialization
-    #dim_c = self.m_ubm.dim_c
-    #dim_d = self.m_ubm.dim_d
-    dim_c,dim_d = self.m_ubm.shape
-    mean_supervector = self.m_ubm.mean_supervector
-    TtSigmaInv_Fnorm = numpy.zeros(shape=(self.m_dim_t,), dtype=numpy.float64)
-
-    # Loop over each Gaussian component
-    dim_c = self.m_ubm.shape[0]
-    for c in range(dim_c):
-      start             = c*dim_d
-      end               = (c+1)*dim_d
-      Fnorm             = F[c,:] - N[c] * mean_supervector[start:end]
-      TtSigmaInv_Fnorm  = TtSigmaInv_Fnorm + numpy.dot(self.m_cache_TtSigmaInv[c], Fnorm)
-    return TtSigmaInv_Fnorm
-
-  def _get_I_TtSigmaInvNT(self, N):
-    # Initialization
-    #dim_c = self.m_ubm.dim_c
-    #dim_d = self.m_ubm.dim_d
-    dim_c, dim_d = self.m_ubm.shape
-
-    TtSigmaInvNT = numpy.eye(self.m_dim_t, dtype=numpy.float64)
-    for c in range(dim_c):
-      TtSigmaInvNT = TtSigmaInvNT + self.m_cache_TtSigmaInvT[c] * N[c]
-
-    return TtSigmaInvNT
-
-  def forward(self, gmmstats):
-    if self.m_ubm and not (self.m_t == None) and not (self.m_sigma == None):
-      N = gmmstats.n
-      F = gmmstats.sum_px
-
-      TtSigmaInv_Fnorm = self._get_TtSigmaInv_Fnorm(N, F)
-      TtSigmaInvNT = self._get_I_TtSigmaInvNT(N)
-
-      return numpy.linalg.solve(TtSigmaInvNT, TtSigmaInv_Fnorm)
-
-
-def test_machine():
-
-  # Ubm
-  ubm = GMMMachine(2,3)
-  ubm.weights = numpy.array([0.4,0.6])
-  ubm.means = numpy.array([[1.,7,4],[4,5,3]])
-  ubm.variances = numpy.array([[0.5,1.,1.5],[1.,1.5,2.]])
-
-  # Defines GMMStats
-  gs = GMMStats(2,3)
-  log_likelihood = -3.
-  T = 1
-  n = numpy.array([0.4, 0.6], numpy.float64)
-  sumpx = numpy.array([[1., 2., 3.], [2., 4., 3.]], numpy.float64)
-  sumpxx = numpy.array([[10., 20., 30.], [40., 50., 60.]], numpy.float64)
-  gs.log_likelihood = log_likelihood
-  gs.t = T
-  gs.n = n
-  gs.sum_px = sumpx
-  gs.sum_pxx = sumpxx
-
-  # IVector (Python)
-  m = IVectorMachinePy(ubm, 2)
-  t = numpy.array([[1.,2],[4,1],[0,3],[5,8],[7,10],[11,1]])
-  m.set_t(t)
-  sigma = numpy.array([1.,2.,1.,3.,2.,4.])
-  m.set_sigma(sigma)
-
-  wij_ref = numpy.array([-0.04213415, 0.21463343]) # Reference from original Chris implementation
-  wij = m.forward(gs)
-  assert numpy.allclose(wij_ref, wij, 1e-5)
-
-  # IVector (C++)
-  mc = IVectorMachine(ubm, 2)
-  mc.t = t
-  mc.sigma = sigma
-
-  wij_ref = numpy.array([-0.04213415, 0.21463343]) # Reference from original Chris implementation
-  wij = mc(gs)
-  assert numpy.allclose(wij_ref, wij, 1e-5)
diff --git a/bob/learn/misc/test_ivector_trainer.py b/bob/learn/misc/test_ivector_trainer.py
deleted file mode 100644
index 17a7c3e..0000000
--- a/bob/learn/misc/test_ivector_trainer.py
+++ /dev/null
@@ -1,363 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests the I-Vector trainer
-"""
-
-import numpy
-import numpy.linalg
-import numpy.random
-
-from bob.learn.misc import GMMMachine, GMMStats, IVectorMachine, IVectorTrainer
-
-### Test class inspired by an implementation of Chris McCool
-### Chris McCool (chris.mccool@nicta.com.au)
-class IVectorTrainerPy():
-  """An IVector extractor"""
-
-  def __init__(self, convergence_threshold=0.001, max_iterations=10,
-      compute_likelihood=False, sigma_update=False, variance_floor=1e-5):
-    self.m_convergence_threshold = convergence_threshold
-    self.m_max_iterations = max_iterations
-    self.m_compute_likelihood = compute_likelihood
-    self.m_sigma_update = sigma_update
-    self.m_variance_floor = variance_floor
-
-  def initialize(self, machine, data):
-    ubm = machine.ubm
-    self.m_dim_c = ubm.shape[0]
-    self.m_dim_d = ubm.shape[1]
-    self.m_dim_t = machine.t.shape[1]
-    self.m_meansupervector = ubm.mean_supervector
-    t = numpy.random.randn(self.m_dim_c*self.m_dim_d, self.m_dim_t)
-    machine.t = t
-    machine.sigma = machine.ubm.variance_supervector
-
-  def e_step(self, machine, data):
-    n_samples = len(data)
-    self.m_acc_Nij_Sigma_wij2  = {}
-    self.m_acc_Fnorm_Sigma_wij = {}
-    self.m_acc_Snorm = numpy.zeros(shape=(self.m_dim_c*self.m_dim_d,), dtype=numpy.float64)
-    self.m_N = numpy.zeros(shape=(self.m_dim_c,), dtype=numpy.float64)
-
-    for c in range(self.m_dim_c):
-      self.m_acc_Nij_Sigma_wij2[c]  = numpy.zeros(shape=(self.m_dim_t,self.m_dim_t), dtype=numpy.float64)
-      self.m_acc_Fnorm_Sigma_wij[c] = numpy.zeros(shape=(self.m_dim_d,self.m_dim_t), dtype=numpy.float64)
-
-    for n in range(n_samples):
-      Nij = data[n].n
-      Fij = data[n].sum_px
-      Sij = data[n].sum_pxx
-
-      # Estimate latent variables
-      TtSigmaInv_Fnorm = machine.__compute_TtSigmaInvFnorm__(data[n])
-      I_TtSigmaInvNT = machine.__compute_Id_TtSigmaInvT__(data[n])
-
-      Fnorm = numpy.zeros(shape=(self.m_dim_c*self.m_dim_d,), dtype=numpy.float64)
-      Snorm = numpy.zeros(shape=(self.m_dim_c*self.m_dim_d,), dtype=numpy.float64)
-
-      # Compute normalized statistics
-      for c in range(self.m_dim_c):
-        start            = c*self.m_dim_d
-        end              = (c+1)*self.m_dim_d
-
-        Fc               = Fij[c,:]
-        Sc               = Sij[c,:]
-        mc               = self.m_meansupervector[start:end]
-
-        Fc_mc            = Fc * mc
-        Nc_mc_mcT        = Nij[c] * mc * mc
-
-        Fnorm[start:end] = Fc - Nij[c] * mc
-        Snorm[start:end] = Sc - (2 * Fc_mc) + Nc_mc_mcT
-
-      # Latent variables
-      I_TtSigmaInvNT_inv = numpy.linalg.inv(I_TtSigmaInvNT)
-      E_w_ij             = numpy.dot(I_TtSigmaInvNT_inv, TtSigmaInv_Fnorm)
-      E_w_ij2            = I_TtSigmaInvNT_inv + numpy.outer(E_w_ij, E_w_ij)
-
-      # Do the accumulation for each component
-      self.m_acc_Snorm   = self.m_acc_Snorm + Snorm    # (dim_c*dim_d)
-      for c in range(self.m_dim_c):
-        start            = c*self.m_dim_d
-        end              = (c+1)*self.m_dim_d
-        current_Fnorm    = Fnorm[start:end]            # (dim_d)
-        self.m_acc_Nij_Sigma_wij2[c]  = self.m_acc_Nij_Sigma_wij2[c] + Nij[c] * E_w_ij2                    # (dim_t, dim_t)
-        self.m_acc_Fnorm_Sigma_wij[c] = self.m_acc_Fnorm_Sigma_wij[c] + numpy.outer(current_Fnorm, E_w_ij) # (dim_d, dim_t)
-        self.m_N[c]                   = self.m_N[c] + Nij[c]
-
-
-  def m_step(self, machine, data):
-    A = self.m_acc_Nij_Sigma_wij2
-
-    T = numpy.zeros(shape=(self.m_dim_c*self.m_dim_d,self.m_dim_t), dtype=numpy.float64)
-    Told = machine.t
-    if self.m_sigma_update:
-      sigma = numpy.zeros(shape=self.m_acc_Snorm.shape, dtype=numpy.float64)
-    for c in range(self.m_dim_c):
-      start = c*self.m_dim_d;
-      end   = (c+1)*self.m_dim_d;
-      # T update
-      A     = self.m_acc_Nij_Sigma_wij2[c].transpose()
-      B     = self.m_acc_Fnorm_Sigma_wij[c].transpose()
-      if numpy.array_equal(A, numpy.zeros(A.shape)):
-        X = numpy.zeros(shape=(self.m_dim_t,self.m_dim_d), dtype=numpy.float64)
-      else:
-        X = numpy.linalg.solve(A, B)
-      T[start:end,:] = X.transpose()
-      # Sigma update
-      if self.m_sigma_update:
-        Told_c           = Told[start:end,:].transpose()
-        # warning: Use of the new T estimate! (revert second next line if you don't want that)
-        Fnorm_Ewij_Tt    = numpy.diag(numpy.dot(self.m_acc_Fnorm_Sigma_wij[c], X))
-        #Fnorm_Ewij_Tt = numpy.diag(numpy.dot(self.m_acc_Fnorm_Sigma_wij[c], Told_c))
-        sigma[start:end] = (self.m_acc_Snorm[start:end] - Fnorm_Ewij_Tt) / self.m_N[c]
-
-    machine.t = T
-    if self.m_sigma_update:
-      sigma[sigma < self.m_variance_floor] = self.m_variance_floor
-      machine.sigma = sigma
-
-  def finalize(self, machine, data):
-    pass
-
-  def train(self, machine, data):
-    self.initialize(machine, data)
-    average_output_previous   = -sys.maxsize
-    average_output            = -sys.maxsize
-    self.e_step(machine, data)
-
-    i = 0
-    while True:
-      average_output_previous = average_output
-      self.m_step(machine, data)
-      self.e_step(machine, data)
-      if(self.m_max_iterations > 0 and i+1 >= self.m_max_iterations):
-        break
-      i += 1
-
-
-def test_trainer_nosigma():
-  # Ubm
-  ubm = GMMMachine(2,3)
-  ubm.weights = numpy.array([0.4,0.6])
-  ubm.means = numpy.array([[1.,7,4],[4,5,3]])
-  ubm.variances = numpy.array([[0.5,1.,1.5],[1.,1.5,2.]])
-
-  # Defines GMMStats
-  gs1 = GMMStats(2,3)
-  log_likelihood1 = -3.
-  T1 = 1
-  n1 = numpy.array([0.4, 0.6], numpy.float64)
-  sumpx1 = numpy.array([[1., 2., 3.], [2., 4., 3.]], numpy.float64)
-  sumpxx1 = numpy.array([[10., 20., 30.], [40., 50., 60.]], numpy.float64)
-  gs1.log_likelihood = log_likelihood1
-  gs1.t = T1
-  gs1.n = n1
-  gs1.sum_px = sumpx1
-  gs1.sum_pxx = sumpxx1
-
-  gs2 = GMMStats(2,3)
-  log_likelihood2 = -4.
-  T2 = 1
-  n2 = numpy.array([0.2, 0.8], numpy.float64)
-  sumpx2 = numpy.array([[2., 1., 3.], [3., 4.1, 3.2]], numpy.float64)
-  sumpxx2 = numpy.array([[12., 15., 25.], [39., 51., 62.]], numpy.float64)
-  gs2.log_likelihood = log_likelihood2
-  gs2.t = T2
-  gs2.n = n2
-  gs2.sum_px = sumpx2
-  gs2.sum_pxx = sumpxx2
-
-  data = [gs1, gs2]
-
-
-  acc_Nij_Sigma_wij2_ref1  = {0: numpy.array([[ 0.03202305, -0.02947769], [-0.02947769,  0.0561132 ]]),
-                             1: numpy.array([[ 0.07953279, -0.07829414], [-0.07829414,  0.13814242]])}
-  acc_Fnorm_Sigma_wij_ref1 = {0: numpy.array([[-0.29622691,  0.61411796], [ 0.09391764, -0.27955961], [-0.39014455,  0.89367757]]),
-                             1: numpy.array([[ 0.04695882, -0.13977981], [-0.05718673,  0.24159665], [-0.17098161,  0.47326585]])}
-  acc_Snorm_ref1           = numpy.array([16.6, 22.4, 16.6, 61.4, 55., 97.4])
-  N_ref1                   = numpy.array([0.6, 1.4])
-  t_ref1                   = numpy.array([[  1.59543739, 11.78239235], [ -3.20130371, -6.66379081], [  4.79674111, 18.44618316],
-                                          [ -0.91765407, -1.5319461 ], [  2.26805901,  3.03434944], [  2.76600031,  4.9935962 ]])
-
-  acc_Nij_Sigma_wij2_ref2  = {0: numpy.array([[ 0.37558389, -0.15405228], [-0.15405228,  0.1421269 ]]),
-                             1: numpy.array([[ 1.02076081, -0.57683953], [-0.57683953,  0.53912239]])}
-  acc_Fnorm_Sigma_wij_ref2 = {0: numpy.array([[-1.1261668 ,  1.46496753], [-0.03579289, -0.37875811], [-1.09037391,  1.84372565]]),
-                             1: numpy.array([[-0.01789645, -0.18937906], [ 0.35221084,  0.15854126], [-0.10004552,  0.72559036]])}
-  acc_Snorm_ref2           = numpy.array([16.6, 22.4, 16.6, 61.4, 55., 97.4])
-  N_ref2                   = numpy.array([0.6, 1.4])
-  t_ref2                   = numpy.array([[  2.2133685,  12.70654597], [ -2.13959381, -4.98404887], [  4.35296231, 17.69059484],
-                                          [ -0.54644055, -0.93594252], [  1.29308324,  1.67762053], [  1.67583072,  3.13894546]])
-  acc_Nij_Sigma_wij2_ref = [acc_Nij_Sigma_wij2_ref1, acc_Nij_Sigma_wij2_ref2]
-  acc_Fnorm_Sigma_wij_ref = [acc_Fnorm_Sigma_wij_ref1, acc_Fnorm_Sigma_wij_ref2]
-  acc_Snorm_ref = [acc_Snorm_ref1, acc_Snorm_ref2]
-  N_ref = [N_ref1, N_ref2]
-  t_ref = [t_ref1, t_ref2]
-
-  # Python implementation
-  # Machine
-  m = IVectorMachine(ubm, 2)
-  t = numpy.array([[1.,2],[4,1],[0,3],[5,8],[7,10],[11,1]])
-  sigma = numpy.array([1.,2.,1.,3.,2.,4.])
-
-  # Initialization
-  trainer = IVectorTrainerPy()
-  trainer.initialize(m, data)
-  m.t = t
-  m.sigma = sigma
-  for it in range(2):
-    # E-Step
-    trainer.e_step(m, data)
-    for k in acc_Nij_Sigma_wij2_ref[it]:
-      assert numpy.allclose(acc_Nij_Sigma_wij2_ref[it][k], trainer.m_acc_Nij_Sigma_wij2[k], 1e-5)
-    for k in acc_Fnorm_Sigma_wij_ref[it]:
-      assert numpy.allclose(acc_Fnorm_Sigma_wij_ref[it][k], trainer.m_acc_Fnorm_Sigma_wij[k], 1e-5)
-    assert numpy.allclose(acc_Snorm_ref[it], trainer.m_acc_Snorm, 1e-5)
-    assert numpy.allclose(N_ref[it], trainer.m_N, 1e-5)
-
-    # M-Step
-    trainer.m_step(m, data)
-    assert numpy.allclose(t_ref[it], m.t, 1e-5)
-
-  # C++ implementation
-  # Machine
-  m = IVectorMachine(ubm, 2)
-
-  # Initialization
-  trainer = IVectorTrainer()
-  trainer.initialize(m)
-  m.t = t
-  m.sigma = sigma
-  for it in range(2):
-    # E-Step
-    trainer.e_step(m, data)
-    for k in acc_Nij_Sigma_wij2_ref[it]:
-      assert numpy.allclose(acc_Nij_Sigma_wij2_ref[it][k], trainer.acc_nij_wij2[k], 1e-5)
-    for k in acc_Fnorm_Sigma_wij_ref[it]:
-      assert numpy.allclose(acc_Fnorm_Sigma_wij_ref[it][k], trainer.acc_fnormij_wij[k], 1e-5)
-
-    # M-Step
-    trainer.m_step(m)
-    assert numpy.allclose(t_ref[it], m.t, 1e-5)
-
-def test_trainer_update_sigma():
-  # Ubm
-  dim_c = 2
-  dim_d = 3
-  ubm = GMMMachine(dim_c,dim_d)
-  ubm.weights = numpy.array([0.4,0.6])
-  ubm.means = numpy.array([[1.,7,4],[4,5,3]])
-  ubm.variances = numpy.array([[0.5,1.,1.5],[1.,1.5,2.]])
-
-  # Defines GMMStats
-  gs1 = GMMStats(dim_c,dim_d)
-  log_likelihood1 = -3.
-  T1 = 1
-  n1 = numpy.array([0.4, 0.6], numpy.float64)
-  sumpx1 = numpy.array([[1., 2., 3.], [2., 4., 3.]], numpy.float64)
-  sumpxx1 = numpy.array([[10., 20., 30.], [40., 50., 60.]], numpy.float64)
-  gs1.log_likelihood = log_likelihood1
-  gs1.t = T1
-  gs1.n = n1
-  gs1.sum_px = sumpx1
-  gs1.sum_pxx = sumpxx1
-
-  gs2 = GMMStats(dim_c,dim_d)
-  log_likelihood2 = -4.
-  T2 = 1
-  n2 = numpy.array([0.2, 0.8], numpy.float64)
-  sumpx2 = numpy.array([[2., 1., 3.], [3., 4.1, 3.2]], numpy.float64)
-  sumpxx2 = numpy.array([[12., 15., 25.], [39., 51., 62.]], numpy.float64)
-  gs2.log_likelihood = log_likelihood2
-  gs2.t = T2
-  gs2.n = n2
-  gs2.sum_px = sumpx2
-  gs2.sum_pxx = sumpxx2
-
-  data = [gs1, gs2]
-
-  # Reference values
-  acc_Nij_Sigma_wij2_ref1  = {0: numpy.array([[ 0.03202305, -0.02947769], [-0.02947769,  0.0561132 ]]),
-                              1: numpy.array([[ 0.07953279, -0.07829414], [-0.07829414,  0.13814242]])}
-  acc_Fnorm_Sigma_wij_ref1 = {0: numpy.array([[-0.29622691,  0.61411796], [ 0.09391764, -0.27955961], [-0.39014455,  0.89367757]]),
-                              1: numpy.array([[ 0.04695882, -0.13977981], [-0.05718673,  0.24159665], [-0.17098161,  0.47326585]])}
-  acc_Snorm_ref1           = numpy.array([16.6, 22.4, 16.6, 61.4, 55., 97.4])
-  N_ref1                   = numpy.array([0.6, 1.4])
-  t_ref1                   = numpy.array([[  1.59543739, 11.78239235], [ -3.20130371, -6.66379081], [  4.79674111, 18.44618316],
-                                          [ -0.91765407, -1.5319461 ], [  2.26805901,  3.03434944], [  2.76600031,  4.9935962 ]])
-  sigma_ref1               = numpy.array([ 16.39472121, 34.72955353,  3.3108037, 43.73496916, 38.85472445, 68.22116903])
-
-  acc_Nij_Sigma_wij2_ref2  = {0: numpy.array([[ 0.50807426, -0.11907756], [-0.11907756,  0.12336544]]),
-                              1: numpy.array([[ 1.18602399, -0.2835859 ], [-0.2835859 ,  0.39440498]])}
-  acc_Fnorm_Sigma_wij_ref2 = {0: numpy.array([[ 0.07221453,  1.1189786 ], [-0.08681275, -0.35396112], [ 0.15902728,  1.47293972]]),
-                              1: numpy.array([[-0.04340637, -0.17698056], [ 0.10662127,  0.21484933],[ 0.13116645,  0.64474271]])}
-  acc_Snorm_ref2           = numpy.array([16.6, 22.4, 16.6, 61.4, 55., 97.4])
-  N_ref2                   = numpy.array([0.6, 1.4])
-  t_ref2                   = numpy.array([[  2.93105054, 11.89961223], [ -1.08988119, -3.92120757], [  4.02093173, 15.82081981],
-                                          [ -0.17376634, -0.57366984], [  0.26585634,  0.73589952], [  0.60557877,   2.07014704]])
-  sigma_ref2               = numpy.array([5.12154025e+00, 3.48623823e+01, 1.00000000e-05, 4.37792350e+01, 3.91525332e+01, 6.85613258e+01])
-
-  acc_Nij_Sigma_wij2_ref = [acc_Nij_Sigma_wij2_ref1, acc_Nij_Sigma_wij2_ref2]
-  acc_Fnorm_Sigma_wij_ref = [acc_Fnorm_Sigma_wij_ref1, acc_Fnorm_Sigma_wij_ref2]
-  acc_Snorm_ref = [acc_Snorm_ref1, acc_Snorm_ref2]
-  N_ref = [N_ref1, N_ref2]
-  t_ref = [t_ref1, t_ref2]
-  sigma_ref = [sigma_ref1, sigma_ref2]
-
-
-  # Python implementation
-  # Machine
-  m = IVectorMachine(ubm, 2)
-  t = numpy.array([[1.,2],[4,1],[0,3],[5,8],[7,10],[11,1]])
-  sigma = numpy.array([1.,2.,1.,3.,2.,4.])
-
-  # Initialization
-  trainer = IVectorTrainerPy(sigma_update=True)
-  trainer.initialize(m, data)
-  m.t = t
-  m.sigma = sigma
-  for it in range(2):
-    # E-Step
-    trainer.e_step(m, data)
-    for k in acc_Nij_Sigma_wij2_ref[it]:
-      assert numpy.allclose(acc_Nij_Sigma_wij2_ref[it][k], trainer.m_acc_Nij_Sigma_wij2[k], 1e-5)
-    for k in acc_Fnorm_Sigma_wij_ref[it]:
-      assert numpy.allclose(acc_Fnorm_Sigma_wij_ref[it][k], trainer.m_acc_Fnorm_Sigma_wij[k], 1e-5)
-    assert numpy.allclose(acc_Snorm_ref[it], trainer.m_acc_Snorm, 1e-5)
-    assert numpy.allclose(N_ref[it], trainer.m_N, 1e-5)
-
-    # M-Step
-    trainer.m_step(m, data)
-    assert numpy.allclose(t_ref[it], m.t, 1e-5)
-    assert numpy.allclose(sigma_ref[it], m.sigma, 1e-5)
-
-
-  # C++ implementation
-  # Machine
-  m = IVectorMachine(ubm, 2)
-  m.variance_threshold = 1e-5
-
-  # Initialization
-  trainer = IVectorTrainer(update_sigma=True)
-  trainer.initialize(m)
-  m.t = t
-  m.sigma = sigma
-  for it in range(2):
-    # E-Step
-    trainer.e_step(m, data)
-    for k in acc_Nij_Sigma_wij2_ref[it]:
-      assert numpy.allclose(acc_Nij_Sigma_wij2_ref[it][k], trainer.acc_nij_wij2[k], 1e-5)
-    for k in acc_Fnorm_Sigma_wij_ref[it]:
-      assert numpy.allclose(acc_Fnorm_Sigma_wij_ref[it][k], trainer.acc_fnormij_wij[k], 1e-5)
-    assert numpy.allclose(acc_Snorm_ref[it].reshape(dim_c,dim_d), trainer.acc_snormij, 1e-5)
-    assert numpy.allclose(N_ref[it], trainer.acc_nij, 1e-5)
-
-    # M-Step
-    trainer.m_step(m)
-    assert numpy.allclose(t_ref[it], m.t, 1e-5)
-    assert numpy.allclose(sigma_ref[it], m.sigma, 1e-5)
-
diff --git a/bob/learn/misc/test_jfa.py b/bob/learn/misc/test_jfa.py
deleted file mode 100644
index 594ada4..0000000
--- a/bob/learn/misc/test_jfa.py
+++ /dev/null
@@ -1,396 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Wed Feb 15 23:24:35 2012 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests on the JFA-based machines
-"""
-
-import os
-import numpy
-import numpy.linalg
-import tempfile
-
-import bob.io.base
-
-from . import GMMMachine, GMMStats, JFABase, ISVBase, ISVMachine, JFAMachine
-
-def estimate_x(dim_c, dim_d, mean, sigma, U, N, F):
-  # Compute helper values
-  UtSigmaInv = {}
-  UtSigmaInvU = {}
-  dim_ru = U.shape[1]
-  for c in range(dim_c):
-    start                       = c*dim_d
-    end                         = (c+1)*dim_d
-    Uc                          = U[start:end,:]
-    UtSigmaInv[c]  = Uc.transpose() / sigma[start:end]
-    UtSigmaInvU[c] = numpy.dot(UtSigmaInv[c], Uc);
-
-  # I + (U^{T} \Sigma^-1 N U)
-  I_UtSigmaInvNU = numpy.eye(dim_ru, dtype=numpy.float64)
-  for c in range(dim_c):
-    I_UtSigmaInvNU = I_UtSigmaInvNU + UtSigmaInvU[c] * N[c]
-
-  # U^{T} \Sigma^-1 F
-  UtSigmaInv_Fnorm = numpy.zeros((dim_ru,), numpy.float64)
-  for c in range(dim_c):
-    start             = c*dim_d
-    end               = (c+1)*dim_d
-    Fnorm             = F[c,:] - N[c] * mean[start:end]
-    UtSigmaInv_Fnorm  = UtSigmaInv_Fnorm + numpy.dot(UtSigmaInv[c], Fnorm)
-
-  return numpy.linalg.solve(I_UtSigmaInvNU, UtSigmaInv_Fnorm)
-
-def estimate_ux(dim_c, dim_d, mean, sigma, U, N, F):
-  return numpy.dot(U, estimate_x(dim_c, dim_d, mean, sigma, U, N, F))
-
-
-def test_JFABase():
-
-  # Creates a UBM
-  weights = numpy.array([0.4, 0.6], 'float64')
-  means = numpy.array([[1, 6, 2], [4, 3, 2]], 'float64')
-  variances = numpy.array([[1, 2, 1], [2, 1, 2]], 'float64')
-  ubm = GMMMachine(2,3)
-  ubm.weights = weights
-  ubm.means = means
-  ubm.variances = variances
-
-  # Creates a JFABase
-  U = numpy.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]], 'float64')
-  V = numpy.array([[6, 5], [4, 3], [2, 1], [1, 2], [3, 4], [5, 6]], 'float64')
-  d = numpy.array([0, 1, 0, 1, 0, 1], 'float64')
-  m = JFABase(ubm, ru=1, rv=1)
-  
-  _,_,ru,rv = m.shape 
-  assert ru == 1
-  assert rv == 1
-
-  # Checks for correctness
-  m.resize(2,2)
-  m.u = U
-  m.v = V
-  m.d = d  
-  n_gaussians,dim,ru,rv = m.shape
-  supervector_length    = m.supervector_length
-  
-  assert (m.u == U).all()
-  assert (m.v == V).all()
-  assert (m.d == d).all()  
-  assert n_gaussians        == 2
-  assert dim                == 3
-  assert supervector_length == 6
-  assert ru                 == 2
-  assert rv                 == 2
-
-  # Saves and loads
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  m.save(bob.io.base.HDF5File(filename, 'w'))
-  m_loaded = JFABase(bob.io.base.HDF5File(filename))
-  m_loaded.ubm = ubm
-  assert m == m_loaded
-  assert (m != m_loaded) is False
-  assert m.is_similar_to(m_loaded)
-
-  # Copy constructor
-  mc = JFABase(m)
-  assert m == mc
-
-  # Variant
-  #mv = JFABase()
-  # Checks for correctness
-  #mv.ubm = ubm
-  #mv.resize(2,2)
-  #mv.u = U
-  #mv.v = V
-  #mv.d = d
-  #assert (m.u == U).all()
-  #assert (m.v == V).all()
-  #assert (m.d == d).all()
-  #assert m.dim_c == 2
-  #assert m.dim_d == 3
-  #assert m.dim_cd == 6
-  #assert m.dim_ru == 2
-  #assert m.dim_rv == 2
-
-  # Clean-up
-  os.unlink(filename)
-
-def test_ISVBase():
-
-  # Creates a UBM
-  weights = numpy.array([0.4, 0.6], 'float64')
-  means = numpy.array([[1, 6, 2], [4, 3, 2]], 'float64')
-  variances = numpy.array([[1, 2, 1], [2, 1, 2]], 'float64')
-  ubm           = GMMMachine(2,3)
-  ubm.weights   = weights
-  ubm.means     = means
-  ubm.variances = variances
-
-  # Creates a ISVBase
-  U = numpy.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]], 'float64')
-  d = numpy.array([0, 1, 0, 1, 0, 1], 'float64')
-  m = ISVBase(ubm, ru=1)
-  _,_,ru = m.shape
-  assert ru == 1
-
-  # Checks for correctness
-  m.resize(2)
-  m.u = U
-  m.d = d
-  n_gaussians,dim,ru = m.shape
-  supervector_length = m.supervector_length
-  assert (m.u == U).all()
-  assert (m.d == d).all()  
-  assert n_gaussians        == 2
-  assert dim                == 3
-  assert supervector_length == 6
-  assert ru                 == 2
-
-  # Saves and loads
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  m.save(bob.io.base.HDF5File(filename, 'w'))
-  m_loaded = ISVBase(bob.io.base.HDF5File(filename))
-  m_loaded.ubm = ubm
-  assert m == m_loaded
-  assert (m != m_loaded) is False
-  assert m.is_similar_to(m_loaded)
-
-  # Copy constructor
-  mc = ISVBase(m)
-  assert m == mc
-
-  # Variant
-  #mv = ISVBase()
-  # Checks for correctness
-  #mv.ubm = ubm
-  #mv.resize(2)
-  #mv.u = U
-  #mv.d = d
-  #assert (m.u == U).all()
-  #assert (m.d == d).all()
-  #ssert m.dim_c == 2
-  #assert m.dim_d == 3
-  #assert m.dim_cd == 6
-  #assert m.dim_ru == 2
-
-  # Clean-up
-  os.unlink(filename)
-
-def test_JFAMachine():
-
-  # Creates a UBM
-  weights   = numpy.array([0.4, 0.6], 'float64')
-  means     = numpy.array([[1, 6, 2], [4, 3, 2]], 'float64')
-  variances = numpy.array([[1, 2, 1], [2, 1, 2]], 'float64')
-  ubm           = GMMMachine(2,3)
-  ubm.weights   = weights
-  ubm.means     = means
-  ubm.variances = variances
-
-  # Creates a JFABase
-  U = numpy.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]], 'float64')
-  V = numpy.array([[6, 5], [4, 3], [2, 1], [1, 2], [3, 4], [5, 6]], 'float64')
-  d = numpy.array([0, 1, 0, 1, 0, 1], 'float64')
-  base = JFABase(ubm,2,2)
-  base.u = U
-  base.v = V
-  base.d = d
-
-  # Creates a JFAMachine
-  y = numpy.array([1,2], 'float64')
-  z = numpy.array([3,4,1,2,0,1], 'float64')
-  m = JFAMachine(base)
-  m.y = y
-  m.z = z
-  n_gaussians,dim,ru,rv = m.shape
-  supervector_length    = m.supervector_length  
-  
-  assert n_gaussians        == 2
-  assert dim                == 3
-  assert supervector_length == 6
-  assert ru                 == 2
-  assert rv                 == 2
-  assert (m.y == y).all()
-  assert (m.z == z).all()
-
-  # Saves and loads
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  m.save(bob.io.base.HDF5File(filename, 'w'))
-  m_loaded = JFAMachine(bob.io.base.HDF5File(filename))
-  m_loaded.jfa_base = base
-  assert m == m_loaded
-  assert (m != m_loaded) is False
-  assert m.is_similar_to(m_loaded)
-
-  # Copy constructor
-  mc = JFAMachine(m)
-  assert m == mc
-
-  # Variant
-  #mv = JFAMachine()
-  # Checks for correctness
-  #mv.jfa_base = base
-  #m.y = y
-  #m.z = z
-  #assert m.dim_c == 2
-  #assert m.dim_d == 3
-  #assert m.dim_cd == 6
-  #assert m.dim_ru == 2
-  #assert m.dim_rv == 2
-  #assert (m.y == y).all()
-  #assert (m.z == z).all()
-
-  # Defines GMMStats
-  gs = GMMStats(2,3)
-  log_likelihood = -3.
-  T = 1
-  n = numpy.array([0.4, 0.6], 'float64')
-  sumpx = numpy.array([[1., 2., 3.], [4., 5., 6.]], 'float64')
-  sumpxx = numpy.array([[10., 20., 30.], [40., 50., 60.]], 'float64')
-  gs.log_likelihood = log_likelihood
-  gs.t = T
-  gs.n = n
-  gs.sum_px = sumpx
-  gs.sum_pxx = sumpxx
-
-  # Forward GMMStats and check estimated value of the x speaker factor
-  eps = 1e-10
-  x_ref = numpy.array([0.291042849767692, 0.310273618998444], 'float64')
-  score_ref = -2.111577181208289
-  score = m(gs)
-  assert numpy.allclose(m.x, x_ref, eps)
-  assert abs(score_ref-score) < eps
-
-  # x and Ux
-  x = numpy.ndarray((2,), numpy.float64)
-  m.estimate_x(gs, x)
-  n_gaussians, dim,_,_ = m.shape
-  x_py = estimate_x(n_gaussians, dim, ubm.mean_supervector, ubm.variance_supervector, U, n, sumpx)
-  assert numpy.allclose(x, x_py, eps)
-
-  ux = numpy.ndarray((6,), numpy.float64)
-  m.estimate_ux(gs, ux)
-  n_gaussians, dim,_,_ = m.shape  
-  ux_py = estimate_ux(n_gaussians, dim, ubm.mean_supervector, ubm.variance_supervector, U, n, sumpx)
-  assert numpy.allclose(ux, ux_py, eps)
-  assert numpy.allclose(m.x, x, eps)
-
-  score = m.forward_ux(gs, ux)
-
-  assert abs(score_ref-score) < eps
-
-  # Clean-up
-  os.unlink(filename)
-
-def test_ISVMachine():
-
-  # Creates a UBM
-  weights = numpy.array([0.4, 0.6], 'float64')
-  means = numpy.array([[1, 6, 2], [4, 3, 2]], 'float64')
-  variances = numpy.array([[1, 2, 1], [2, 1, 2]], 'float64')
-  ubm = GMMMachine(2,3)
-  ubm.weights = weights
-  ubm.means = means
-  ubm.variances = variances
-
-  # Creates a ISVBaseMachine
-  U = numpy.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]], 'float64')
-  #V = numpy.array([[0], [0], [0], [0], [0], [0]], 'float64')
-  d = numpy.array([0, 1, 0, 1, 0, 1], 'float64')
-  base = ISVBase(ubm,2)
-  base.u = U
-  #base.v = V
-  base.d = d
-
-  # Creates a JFAMachine
-  z = numpy.array([3,4,1,2,0,1], 'float64')
-  m = ISVMachine(base)
-  m.z = z
-  
-  n_gaussians,dim,ru    = m.shape
-  supervector_length    = m.supervector_length  
-  assert n_gaussians          == 2
-  assert dim                  == 3
-  assert supervector_length   == 6
-  assert ru                   == 2
-  assert (m.z == z).all()
-
-  # Saves and loads
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  m.save(bob.io.base.HDF5File(filename, 'w'))
-  m_loaded = ISVMachine(bob.io.base.HDF5File(filename))
-  m_loaded.isv_base = base
-  assert m == m_loaded
-  assert (m != m_loaded) is False
-  assert m.is_similar_to(m_loaded)
-
-  # Copy constructor
-  mc = ISVMachine(m)
-  assert m == mc
-
-  # Variant
-  mv = ISVMachine(base)
-  # Checks for correctness
-  #mv.isv_base = base
-  m.z = z
-
-  n_gaussians,dim,ru    = m.shape
-  supervector_length    = m.supervector_length  
-  assert n_gaussians        == 2
-  assert dim                == 3
-  assert supervector_length == 6
-  assert ru                 == 2
-  assert (m.z == z).all()
-
-  # Defines GMMStats
-  gs = GMMStats(2,3)
-  log_likelihood = -3.
-  T = 1
-  n = numpy.array([0.4, 0.6], 'float64')
-  sumpx = numpy.array([[1., 2., 3.], [4., 5., 6.]], 'float64')
-  sumpxx = numpy.array([[10., 20., 30.], [40., 50., 60.]], 'float64')
-  gs.log_likelihood = log_likelihood
-  gs.t = T
-  gs.n = n
-  gs.sum_px = sumpx
-  gs.sum_pxx = sumpxx
-
-  # Forward GMMStats and check estimated value of the x speaker factor
-  eps = 1e-10
-  x_ref = numpy.array([0.291042849767692, 0.310273618998444], 'float64')
-  score_ref = -3.280498193082100
-
-  score = m(gs)
-  assert numpy.allclose(m.x, x_ref, eps)  
-  assert abs(score_ref-score) < eps
-
-  # Check using alternate forward() method
-  supervector_length = m.supervector_length
-  Ux = numpy.ndarray(shape=(supervector_length,), dtype=numpy.float64)
-  m.estimate_ux(gs, Ux)
-  score = m.forward_ux(gs, Ux)
-  assert abs(score_ref-score) < eps
-
-  # x and Ux
-  x = numpy.ndarray((2,), numpy.float64)
-  m.estimate_x(gs, x)
-  n_gaussians,dim,_    = m.shape  
-  x_py = estimate_x(n_gaussians, dim, ubm.mean_supervector, ubm.variance_supervector, U, n, sumpx)
-  assert numpy.allclose(x, x_py, eps)
-
-  ux = numpy.ndarray((6,), numpy.float64)
-  m.estimate_ux(gs, ux)
-  n_gaussians,dim,_    = m.shape  
-  ux_py = estimate_ux(n_gaussians, dim, ubm.mean_supervector, ubm.variance_supervector, U, n, sumpx)
-  assert numpy.allclose(ux, ux_py, eps)
-  assert numpy.allclose(m.x, x, eps)
-
-  score = m.forward_ux(gs, ux)
-  assert abs(score_ref-score) < eps
-
-  # Clean-up
-  os.unlink(filename)
diff --git a/bob/learn/misc/test_jfa_trainer.py b/bob/learn/misc/test_jfa_trainer.py
deleted file mode 100644
index 4df6d00..0000000
--- a/bob/learn/misc/test_jfa_trainer.py
+++ /dev/null
@@ -1,316 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Tue Jul 19 12:16:17 2011 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Test JFA trainer package
-"""
-
-import numpy
-import numpy.linalg
-
-import bob.core.random
-
-from . import GMMStats, GMMMachine, JFABase, JFAMachine, ISVBase, ISVMachine, JFATrainer, ISVTrainer
-
-
-def equals(x, y, epsilon):
-  return (abs(x - y) < epsilon).all()
-
-# Define Training set and initial values for tests
-F1 = numpy.array( [0.3833, 0.4516, 0.6173, 0.2277, 0.5755, 0.8044, 0.5301,
-  0.9861, 0.2751, 0.0300, 0.2486, 0.5357]).reshape((6,2))
-F2 = numpy.array( [0.0871, 0.6838, 0.8021, 0.7837, 0.9891, 0.5341, 0.0669,
-  0.8854, 0.9394, 0.8990, 0.0182, 0.6259]).reshape((6,2))
-F=[F1, F2]
-
-N1 = numpy.array([0.1379, 0.1821, 0.2178, 0.0418]).reshape((2,2))
-N2 = numpy.array([0.1069, 0.9397, 0.6164, 0.3545]).reshape((2,2))
-N=[N1, N2]
-
-gs11 = GMMStats(2,3)
-gs11.n = N1[:,0]
-gs11.sum_px = F1[:,0].reshape(2,3)
-gs12 = GMMStats(2,3)
-gs12.n = N1[:,1]
-gs12.sum_px = F1[:,1].reshape(2,3)
-
-gs21 = GMMStats(2,3)
-gs21.n = N2[:,0]
-gs21.sum_px = F2[:,0].reshape(2,3)
-gs22 = GMMStats(2,3)
-gs22.n = N2[:,1]
-gs22.sum_px = F2[:,1].reshape(2,3)
-
-TRAINING_STATS = [[gs11, gs12], [gs21, gs22]]
-UBM_MEAN = numpy.array([0.1806, 0.0451, 0.7232, 0.3474, 0.6606, 0.3839])
-UBM_VAR = numpy.array([0.6273, 0.0216, 0.9106, 0.8006, 0.7458, 0.8131])
-M_d = numpy.array([0.4106, 0.9843, 0.9456, 0.6766, 0.9883, 0.7668])
-M_v = numpy.array( [0.3367, 0.4116, 0.6624, 0.6026, 0.2442, 0.7505, 0.2955,
-  0.5835, 0.6802, 0.5518, 0.5278,0.5836]).reshape((6,2))
-M_u = numpy.array( [0.5118, 0.3464, 0.0826, 0.8865, 0.7196, 0.4547, 0.9962,
-  0.4134, 0.3545, 0.2177, 0.9713, 0.1257]).reshape((6,2))
-
-z1 = numpy.array([0.3089, 0.7261, 0.7829, 0.6938, 0.0098, 0.8432])
-z2 = numpy.array([0.9223, 0.7710, 0.0427, 0.3782, 0.7043, 0.7295])
-y1 = numpy.array([0.2243, 0.2691])
-y2 = numpy.array([0.6730, 0.4775])
-x1 = numpy.array([0.9976, 0.8116, 0.1375, 0.3900]).reshape((2,2))
-x2 = numpy.array([0.4857, 0.8944, 0.9274, 0.9175]).reshape((2,2))
-M_z=[z1, z2]
-M_y=[y1, y2]
-M_x=[x1, x2]
-
-
-def test_JFATrainer_updateYandV():
-  # test the JFATrainer for updating Y and V
-
-  v_ref = numpy.array( [0.7228, 0.7892, 0.6475, 0.6080, 0.8631, 0.8416,
-    1.6512, 1.6068, 0.0500, 0.0101, 0.4325, 0.6719]).reshape((6,2))
-
-  y1 = numpy.array([0., 0.])
-  y2 = numpy.array([0., 0.])
-  y3 = numpy.array([0.9630, 1.3868])
-  y4 = numpy.array([0.0426, -0.3721])
-  y=[y1, y2]
-
-  # call the updateY function
-  ubm = GMMMachine(2,3)
-  ubm.mean_supervector = UBM_MEAN
-  ubm.variance_supervector = UBM_VAR
-  m = JFABase(ubm,2,2)
-  t = JFATrainer(10)
-  t.initialize(m, TRAINING_STATS)
-  m.u = M_u
-  m.v = M_v
-  m.d = M_d
-  t.__X__ = M_x
-  t.__Y__ = y
-  t.__Z__ = M_z
-  t.e_step1(m, TRAINING_STATS)
-  t.m_step1(m, TRAINING_STATS)
-
-  # Expected results(JFA cookbook, matlab)
-  assert equals(t.__Y__[0], y3, 2e-4)
-  assert equals(t.__Y__[1], y4, 2e-4)
-  assert equals(m.v, v_ref, 2e-4)
-
-
-def test_JFATrainer_updateXandU():
-  # test the JFATrainer for updating X and U
-
-  u_ref = numpy.array( [0.6729, 0.3408, 0.0544, 1.0653, 0.5399, 1.3035,
-    2.4995, 0.4385, 0.1292, -0.0576, 1.1962, 0.0117]).reshape((6,2))
-
-  x1 = numpy.array([0., 0., 0., 0.]).reshape((2,2))
-  x2 = numpy.array([0., 0., 0., 0.]).reshape((2,2))
-  x3 = numpy.array([0.2143, 1.8275, 3.1979, 0.1227]).reshape((2,2))
-  x4 = numpy.array([-1.3861, 0.2359, 5.3326, -0.7914]).reshape((2,2))
-  x  = [x1, x2]
-
-  # call the updateX function
-  ubm = GMMMachine(2,3)
-  ubm.mean_supervector = UBM_MEAN
-  ubm.variance_supervector = UBM_VAR
-  m = JFABase(ubm,2,2)
-  t = JFATrainer(10)
-  t.initialize(m, TRAINING_STATS)
-  m.u = M_u
-  m.v = M_v
-  m.d = M_d
-  t.__X__ = x
-  t.__Y__ = M_y
-  t.__Z__ = M_z
-  t.e_step2(m, TRAINING_STATS)
-  t.m_step2(m, TRAINING_STATS)
-
-  # Expected results(JFA cookbook, matlab)
-  assert equals(t.__X__[0], x3, 2e-4)
-  assert equals(t.__X__[1], x4, 2e-4)
-  assert equals(m.u, u_ref, 2e-4)
-
-
-def test_JFATrainer_updateZandD():
-  # test the JFATrainer for updating Z and D
-
-  d_ref = numpy.array([0.3110, 1.0138, 0.8297, 1.0382, 0.0095, 0.6320])
-
-  z1 = numpy.array([0., 0., 0., 0., 0., 0.])
-  z2 = numpy.array([0., 0., 0., 0., 0., 0.])
-  z3_ref = numpy.array([0.3256, 1.8633, 0.6480, 0.8085, -0.0432, 0.2885])
-  z4_ref = numpy.array([-0.3324, -0.1474, -0.4404, -0.4529, 0.0484, -0.5848])
-  z=[z1, z2]
-
-  # call the updateZ function
-  ubm = GMMMachine(2,3)
-  ubm.mean_supervector = UBM_MEAN
-  ubm.variance_supervector = UBM_VAR
-  m = JFABase(ubm,2,2)
-  t = JFATrainer(10)
-  t.initialize(m, TRAINING_STATS)
-  m.u = M_u
-  m.v = M_v
-  m.d = M_d
-  t.__X__ = M_x
-  t.__Y__ = M_y
-  t.__Z__ = z
-  t.e_step3(m, TRAINING_STATS)
-  t.m_step3(m, TRAINING_STATS)
-
-  # Expected results(JFA cookbook, matlab)
-  assert equals(t.__Z__[0], z3_ref, 2e-4)
-  assert equals(t.__Z__[1], z4_ref, 2e-4)
-  assert equals(m.d, d_ref, 2e-4)
-
-
-def test_JFATrainAndEnrol():
-  # Train and enrol a JFAMachine
-
-  # Calls the train function
-  ubm = GMMMachine(2,3)
-  ubm.mean_supervector = UBM_MEAN
-  ubm.variance_supervector = UBM_VAR
-  mb = JFABase(ubm, 2, 2)
-  t = JFATrainer(10)
-  t.initialize(mb, TRAINING_STATS)
-  mb.u = M_u
-  mb.v = M_v
-  mb.d = M_d
-  t.train_loop(mb, TRAINING_STATS)
-
-  v_ref = numpy.array([[0.245364911936476, 0.978133261775424], [0.769646805052223, 0.940070736856596], [0.310779202800089, 1.456332053893072],
-        [0.184760934399551, 2.265139705602147], [0.701987784039800, 0.081632150899400], [0.074344030229297, 1.090248340917255]], 'float64')
-  u_ref = numpy.array([[0.049424652628448, 0.060480486336896], [0.178104127464007, 1.884873813495153], [1.204011484266777, 2.281351307871720],
-        [7.278512126426286, -0.390966087173334], [-0.084424326581145, -0.081725474934414], [4.042143689831097, -0.262576386580701]], 'float64')
-  d_ref = numpy.array([9.648467e-18, 2.63720683155e-12, 2.11822157653706e-10, 9.1047243e-17, 1.41163442535567e-10, 3.30581e-19], 'float64')
-
-  eps = 1e-10
-  assert numpy.allclose(mb.v, v_ref, eps)
-  assert numpy.allclose(mb.u, u_ref, eps)
-  assert numpy.allclose(mb.d, d_ref, eps)
-
-  # Calls the enrol function
-  m = JFAMachine(mb)
-
-  Ne = numpy.array([0.1579, 0.9245, 0.1323, 0.2458]).reshape((2,2))
-  Fe = numpy.array([0.1579, 0.1925, 0.3242, 0.1234, 0.2354, 0.2734, 0.2514, 0.5874, 0.3345, 0.2463, 0.4789, 0.5236]).reshape((6,2))
-  gse1 = GMMStats(2,3)
-  gse1.n = Ne[:,0]
-  gse1.sum_px = Fe[:,0].reshape(2,3)
-  gse2 = GMMStats(2,3)
-  gse2.n = Ne[:,1]
-  gse2.sum_px = Fe[:,1].reshape(2,3)
-
-  gse = [gse1, gse2]
-  t.enrol(m, gse, 5)
-
-  y_ref = numpy.array([0.555991469319657, 0.002773650670010], 'float64')
-  z_ref = numpy.array([8.2228e-20, 3.15216909492e-13, -1.48616735364395e-10, 1.0625905e-17, 3.7150503117895e-11, 1.71104e-19], 'float64')
-  assert numpy.allclose(m.y, y_ref, eps)
-  assert numpy.allclose(m.z, z_ref, eps)
-
-
-def test_ISVTrainAndEnrol():
-  # Train and enrol an 'ISVMachine'
-
-  eps = 1e-10
-  d_ref = numpy.array([0.39601136, 0.07348469, 0.47712682, 0.44738127, 0.43179856, 0.45086029], 'float64')
-  u_ref = numpy.array([[0.855125642430777, 0.563104284748032], [-0.325497865404680, 1.923598985291687], [0.511575659503837, 1.964288663083095], [9.330165761678115, 1.073623827995043], [0.511099245664012, 0.278551249248978], [5.065578541930268, 0.509565618051587]], 'float64')
-  z_ref = numpy.array([-0.079315777443826, 0.092702428248543, -0.342488761656616, -0.059922635809136 , 0.133539981073604, 0.213118695516570], 'float64')
-
-  # Calls the train function
-  ubm = GMMMachine(2,3)
-  ubm.mean_supervector = UBM_MEAN
-  ubm.variance_supervector = UBM_VAR
-  mb = ISVBase(ubm,2)
-  t = ISVTrainer(10, 4.)
-  #t.train(mb, TRAINING_STATS)
-  t.initialize(mb, TRAINING_STATS)
-  mb.u = M_u
-  for i in range(10):
-    t.e_step(mb, TRAINING_STATS)
-    t.m_step(mb)
-
-  assert numpy.allclose(mb.d, d_ref, eps)
-  assert numpy.allclose(mb.u, u_ref, eps)
-
-  # Calls the enrol function
-  m = ISVMachine(mb)
-
-  Ne = numpy.array([0.1579, 0.9245, 0.1323, 0.2458]).reshape((2,2))
-  Fe = numpy.array([0.1579, 0.1925, 0.3242, 0.1234, 0.2354, 0.2734, 0.2514, 0.5874, 0.3345, 0.2463, 0.4789, 0.5236]).reshape((6,2))
-  gse1 = GMMStats(2,3)
-  gse1.n = Ne[:,0]
-  gse1.sum_px = Fe[:,0].reshape(2,3)
-  gse2 = GMMStats(2,3)
-  gse2.n = Ne[:,1]
-  gse2.sum_px = Fe[:,1].reshape(2,3)
-
-  gse = [gse1, gse2]
-  t.enrol(m, gse, 5)
-  assert numpy.allclose(m.z, z_ref, eps)
-
-def test_JFATrainInitialize():
-  # Check that the initialization is consistent and using the rng (cf. issue #118)
-
-  eps = 1e-10
-
-  # UBM GMM
-  ubm = GMMMachine(2,3)
-  ubm.mean_supervector = UBM_MEAN
-  ubm.variance_supervector = UBM_VAR
-
-  ## JFA
-  jb = JFABase(ubm, 2, 2)
-  # first round
-  rng = bob.core.random.mt19937(0)
-  jt = JFATrainer(10)
-  jt.rng = rng
-  jt.initialize(jb, TRAINING_STATS)
-  u1 = jb.u
-  v1 = jb.v
-  d1 = jb.d
-
-  # second round
-  rng = bob.core.random.mt19937(0)
-  jt.rng = rng
-  jt.initialize(jb, TRAINING_STATS)
-  u2 = jb.u
-  v2 = jb.v
-  d2 = jb.d
-
-  assert numpy.allclose(u1, u2, eps)
-  assert numpy.allclose(v1, v2, eps)
-  assert numpy.allclose(d1, d2, eps)
-
-def test_ISVTrainInitialize():
-
-  # Check that the initialization is consistent and using the rng (cf. issue #118)
-  eps = 1e-10
-
-  # UBM GMM
-  ubm = GMMMachine(2,3)
-  ubm.mean_supervector = UBM_MEAN
-  ubm.variance_supervector = UBM_VAR
-
-  ## ISV
-  ib = ISVBase(ubm, 2)
-  # first round
-  rng = bob.core.random.mt19937(0)
-  it = ISVTrainer(10)
-  it.rng = rng
-  it.initialize(ib, TRAINING_STATS)
-  u1 = ib.u
-  d1 = ib.d
-
-  # second round
-  rng = bob.core.random.mt19937(0)
-  it.rng = rng
-  it.initialize(ib, TRAINING_STATS)
-  u2 = ib.u
-  d2 = ib.d
-
-  assert numpy.allclose(u1, u2, eps)
-  assert numpy.allclose(d1, d2, eps)
diff --git a/bob/learn/misc/test_kmeans.py b/bob/learn/misc/test_kmeans.py
deleted file mode 100644
index 0c6cc25..0000000
--- a/bob/learn/misc/test_kmeans.py
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Thu Feb 16 17:57:10 2012 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests the KMeans machine
-"""
-
-import os
-import numpy
-import tempfile
-
-import bob.io.base
-from . import KMeansMachine
-
-def equals(x, y, epsilon):
-  return (abs(x - y) < epsilon)
-
-def test_KMeansMachine():
-  # Test a KMeansMachine
-
-  means = numpy.array([[3, 70, 0], [4, 72, 0]], 'float64')
-  mean  = numpy.array([3,70,1], 'float64')
-
-  # Initializes a KMeansMachine
-  km = KMeansMachine(2,3)
-  km.means = means
-  assert km.shape == (2,3)
-
-  # Sets and gets
-  assert (km.means == means).all()
-  assert (km.get_mean(0) == means[0,:]).all()  
-  assert (km.get_mean(1) == means[1,:]).all()
-  km.set_mean(0, mean)
-  assert (km.get_mean(0) == mean).all()
-
-  # Distance and closest mean
-  eps = 1e-10
-
-  assert equals( km.get_distance_from_mean(mean, 0), 0, eps)
-  assert equals( km.get_distance_from_mean(mean, 1), 6, eps)  
-  
-  (index, dist) = km.get_closest_mean(mean)
-  
-  assert index == 0
-  assert equals( dist, 0, eps)
-  assert equals( km.get_min_distance(mean), 0, eps)
-
-  # Loads and saves
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  km.save(bob.io.base.HDF5File(filename, 'w'))
-  km_loaded = KMeansMachine(bob.io.base.HDF5File(filename))
-  assert km == km_loaded
-
-  # Resize
-  km.resize(4,5)
-  assert km.shape == (4,5)
-
-  # Copy constructor and comparison operators
-  km.resize(2,3)
-  km2 = KMeansMachine(km)
-  assert km2 == km
-  assert (km2 != km) is False
-  assert km2.is_similar_to(km)
-  means2 = numpy.array([[3, 70, 0], [4, 72, 2]], 'float64')
-  km2.means = means2
-  assert (km2 == km) is False
-  assert km2 != km
-  assert (km2.is_similar_to(km)) is False
-
-  # Clean-up
-  os.unlink(filename)
-  
-  
-def test_KMeansMachine2():
-  kmeans             = bob.learn.misc.KMeansMachine(2,2)
-  kmeans.means       = numpy.array([[1.2,1.3],[0.2,-0.3]])
-
-  data               = numpy.array([
-                                  [1.,1],
-                                  [1.2, 3],
-                                  [0,0],
-                                  [0.3,0.2],
-                                  [0.2,0]
-                                 ])
-  variances, weights = kmeans.get_variances_and_weights_for_each_cluster(data)
-
-  variances_result = numpy.array([[ 0.01,1.],
-                                  [ 0.01555556, 0.00888889]])
-  weights_result = numpy.array([ 0.4, 0.6])
-  
-  assert equals(weights_result,weights, 1e-3).all()
-  assert equals(variances_result,variances,1e-3).all()
- 
diff --git a/bob/learn/misc/test_kmeans_trainer.py b/bob/learn/misc/test_kmeans_trainer.py
deleted file mode 100644
index 89f18e5..0000000
--- a/bob/learn/misc/test_kmeans_trainer.py
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Fri Jan 18 12:46:00 2013 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Test K-Means algorithm
-"""
-import numpy
-
-import bob.core
-import bob.io
-from bob.io.base.test_utils import datafile
-
-from bob.learn.misc import KMeansMachine, KMeansTrainer
-
-def equals(x, y, epsilon):
-  return (abs(x - y) < epsilon).all()
-
-def kmeans_plus_plus(machine, data, seed):
-  """Python implementation of K-Means++ (initialization)"""
-  n_data = data.shape[0]
-  rng = bob.core.random.mt19937(seed)
-  u = bob.core.random.uniform('int32', 0, n_data-1)
-  index = u(rng)
-  machine.set_mean(0, data[index,:])
-  weights = numpy.zeros(shape=(n_data,), dtype=numpy.float64)
-
-  for m in range(1,machine.dim_c):
-    for s in range(n_data):
-      s_cur = data[s,:]
-      w_cur = machine.get_distance_from_mean(s_cur, 0)
-      for i in range(m):
-        w_cur = min(machine.get_distance_from_mean(s_cur, i), w_cur)
-      weights[s] = w_cur
-    weights *= weights
-    weights /= numpy.sum(weights)
-    d = bob.core.random.discrete('int32', weights)
-    index = d(rng)
-    machine.set_mean(m, data[index,:])
-
-
-def NormalizeStdArray(path):
-  array = bob.io.base.load(path).astype('float64')
-  std = array.std(axis=0)
-  return (array/std, std)
-
-def multiplyVectorsByFactors(matrix, vector):
-  for i in range(0, matrix.shape[0]):
-    for j in range(0, matrix.shape[1]):
-      matrix[i, j] *= vector[j]
-
-def flipRows(array):
-  if len(array.shape) == 2:
-    return numpy.array([numpy.array(array[1, :]), numpy.array(array[0, :])], 'float64')
-  elif len(array.shape) == 1:
-    return numpy.array([array[1], array[0]], 'float64')
-  else:
-    raise Exception('Input type not supportd by flipRows')
-
-if hasattr(KMeansTrainer, 'KMEANS_PLUS_PLUS'):
-  def test_kmeans_plus_plus():
-
-    # Tests the K-Means++ initialization
-    dim_c = 5
-    dim_d = 7
-    n_samples = 150
-    data = numpy.random.randn(n_samples,dim_d)
-    seed = 0
-
-    # C++ implementation
-    machine = KMeansMachine(dim_c, dim_d)
-    trainer = KMeansTrainer()
-    trainer.rng = bob.core.random.mt19937(seed)
-    trainer.initialization_method = 'KMEANS_PLUS_PLUS'
-    trainer.initialize(machine, data)
-
-    # Python implementation
-    py_machine = KMeansMachine(dim_c, dim_d)
-    kmeans_plus_plus(py_machine, data, seed)
-    assert equals(machine.means, py_machine.means, 1e-8)
-
-def test_kmeans_noduplicate():
-  # Data/dimensions
-  dim_c = 2
-  dim_d = 3
-  seed = 0
-  data = numpy.array([[1,2,3],[1,2,3],[1,2,3],[4,5,6.]])
-  # Defines machine and trainer
-  machine = KMeansMachine(dim_c, dim_d)
-  trainer = KMeansTrainer()
-  trainer.rng = bob.core.random.mt19937(seed)
-  trainer.initialization_method = 'RANDOM_NO_DUPLICATE'
-  trainer.initialize(machine, data)
-  # Makes sure that the two initial mean vectors selected are different
-  assert equals(machine.get_mean(0), machine.get_mean(1), 1e-8) == False
-
-
-def test_kmeans_a():
-
-  # Trains a KMeansMachine
-  # This files contains draws from two 1D Gaussian distributions:
-  #   * 100 samples from N(-10,1)
-  #   * 100 samples from N(10,1)
-  data = bob.io.base.load(datafile("samplesFrom2G_f64.hdf5", __name__))
-
-  machine = KMeansMachine(2, 1)
-
-  trainer = KMeansTrainer()
-  trainer.train(machine, data)
-
-  [variances, weights] = machine.get_variances_and_weights_for_each_cluster(data)
-  variances_b = numpy.ndarray(shape=(2,1), dtype=numpy.float64)
-  weights_b = numpy.ndarray(shape=(2,), dtype=numpy.float64)
-  machine.__get_variances_and_weights_for_each_cluster_init__(variances_b, weights_b)
-  machine.__get_variances_and_weights_for_each_cluster_acc__(data, variances_b, weights_b)
-  machine.__get_variances_and_weights_for_each_cluster_fin__(variances_b, weights_b)
-  m1 = machine.get_mean(0)
-  m2 = machine.get_mean(1)
-
-  ## Check means [-10,10] / variances [1,1] / weights [0.5,0.5]
-  if(m1<m2): means=numpy.array(([m1[0],m2[0]]), 'float64')
-  else: means=numpy.array(([m2[0],m1[0]]), 'float64')
-  assert equals(means, numpy.array([-10.,10.]), 2e-1)
-  assert equals(variances, numpy.array([1.,1.]), 2e-1)
-  assert equals(weights, numpy.array([0.5,0.5]), 1e-3)
-
-  assert equals(variances, variances_b, 1e-8)
-  assert equals(weights, weights_b, 1e-8)
-
-
-
-def test_kmeans_b():
-
-  # Trains a KMeansMachine
-  (arStd,std) = NormalizeStdArray(datafile("faithful.torch3.hdf5", __name__))
-
-  machine = KMeansMachine(2, 2)
-
-  trainer = KMeansTrainer()
-  #trainer.seed = 1337
-  trainer.train(machine, arStd)
-
-  [variances, weights] = machine.get_variances_and_weights_for_each_cluster(arStd)
-  means = machine.means
-
-  multiplyVectorsByFactors(means, std)
-  multiplyVectorsByFactors(variances, std ** 2)
-
-  gmmWeights = bob.io.base.load(datafile('gmm.init_weights.hdf5', __name__))
-  gmmMeans = bob.io.base.load(datafile('gmm.init_means.hdf5', __name__))
-  gmmVariances = bob.io.base.load(datafile('gmm.init_variances.hdf5', __name__))
-
-  if (means[0, 0] < means[1, 0]):
-    means = flipRows(means)
-    variances = flipRows(variances)
-    weights = flipRows(weights)
-
-  assert equals(means, gmmMeans, 1e-3)
-  assert equals(weights, gmmWeights, 1e-3)
-  assert equals(variances, gmmVariances, 1e-3)
-  
-  # Check comparison operators
-  trainer1 = KMeansTrainer()
-  trainer2 = KMeansTrainer()
-  #trainer1.rng = trainer2.rng
-
-  #assert trainer1 == trainer2
-  #assert (trainer1 != trainer2) is False
-  trainer1.max_iterations = 1337
-  #assert (trainer1 == trainer2) is False
-  #assert trainer1 != trainer2
-
-  # Check that there is no duplicate means during initialization
-  machine = KMeansMachine(2, 1)
-  trainer = KMeansTrainer()
-  trainer.initialization_method = 'RANDOM_NO_DUPLICATE'
-  data = numpy.array([[1.], [1.], [1.], [1.], [1.], [1.], [2.], [3.]])
-  trainer.train(machine, data)
-  assert (numpy.isnan(machine.means).any()) == False
\ No newline at end of file
diff --git a/bob/learn/misc/test_linearscoring.py b/bob/learn/misc/test_linearscoring.py
deleted file mode 100644
index 8a96a01..0000000
--- a/bob/learn/misc/test_linearscoring.py
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Francois Moulin <Francois.Moulin@idiap.ch>
-# Wed Jul 13 16:00:04 2011 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests on the LinearScoring function
-"""
-
-import numpy
-
-from . import GMMMachine, GMMStats, linear_scoring
-
-def test_LinearScoring():
-
-  ubm = GMMMachine(2, 2)
-  ubm.weights   = numpy.array([0.5, 0.5], 'float64')
-  ubm.means     = numpy.array([[3, 70], [4, 72]], 'float64')
-  ubm.variances = numpy.array([[1, 10], [2, 5]], 'float64')
-  ubm.variance_thresholds = numpy.array([[0, 0], [0, 0]], 'float64')
-
-  model1 = GMMMachine(2, 2)
-  model1.weights   = numpy.array([0.5, 0.5], 'float64')
-  model1.means     = numpy.array([[1, 2], [3, 4]], 'float64')
-  model1.variances = numpy.array([[9, 10], [11, 12]], 'float64')
-  model1.variance_thresholds = numpy.array([[0, 0], [0, 0]], 'float64')
-
-  model2 = GMMMachine(2, 2)
-  model2.weights   = numpy.array([0.5, 0.5], 'float64')
-  model2.means     = numpy.array([[5, 6], [7, 8]], 'float64')
-  model2.variances = numpy.array([[13, 14], [15, 16]], 'float64')
-  model2.variance_thresholds = numpy.array([[0, 0], [0, 0]], 'float64')
-
-  stats1 = GMMStats(2, 2)
-  stats1.sum_px = numpy.array([[1, 2], [3, 4]], 'float64')
-  stats1.n = numpy.array([1, 2], 'float64')
-  stats1.t = 1+2
-
-  stats2 = GMMStats(2, 2)
-  stats2.sum_px = numpy.array([[5, 6], [7, 8]], 'float64')
-  stats2.n = numpy.array([3, 4], 'float64')
-  stats2.t = 3+4
-
-  stats3 = GMMStats(2, 2)
-  stats3.sum_px = numpy.array([[5, 6], [7, 3]], 'float64')
-  stats3.n = numpy.array([3, 4], 'float64')
-  stats3.t = 3+4
-
-  test_channeloffset = [numpy.array([9, 8, 7, 6], 'float64'), numpy.array([5, 4, 3, 2], 'float64'), numpy.array([1, 0, 1, 2], 'float64')]
-
-  # Reference scores (from Idiap internal matlab implementation)
-  ref_scores_00 = numpy.array([[2372.9, 5207.7, 5275.7], [2215.7, 4868.1, 4932.1]], 'float64')
-  ref_scores_01 = numpy.array( [[790.9666666666667, 743.9571428571428, 753.6714285714285], [738.5666666666667, 695.4428571428572, 704.5857142857144]], 'float64')
-  ref_scores_10 = numpy.array([[2615.5, 5434.1, 5392.5], [2381.5, 4999.3, 5022.5]], 'float64')
-  ref_scores_11 = numpy.array([[871.8333333333332, 776.3000000000001, 770.3571428571427], [793.8333333333333, 714.1857142857143, 717.5000000000000]], 'float64')
-
-
-  # 1/ Use GMMMachines
-  # 1/a/ Without test_channelOffset, without frame-length normalisation
-  scores = linear_scoring([model1, model2], ubm, [stats1, stats2, stats3])
-  assert (abs(scores - ref_scores_00) < 1e-7).all()
-
-  # 1/b/ Without test_channelOffset, with frame-length normalisation
-  scores = linear_scoring([model1, model2], ubm, [stats1, stats2, stats3], [], True)
-  assert (abs(scores - ref_scores_01) < 1e-7).all()
-  #scores = linear_scoring([model1, model2], ubm, [stats1, stats2, stats3], (), True)
-  #assert (abs(scores - ref_scores_01) < 1e-7).all()
-  #scores = linear_scoring([model1, model2], ubm, [stats1, stats2, stats3], None, True)
-  #assert (abs(scores - ref_scores_01) < 1e-7).all()
-
-  # 1/c/ With test_channelOffset, without frame-length normalisation
-  scores = linear_scoring([model1, model2], ubm, [stats1, stats2, stats3], test_channeloffset)
-  assert (abs(scores - ref_scores_10) < 1e-7).all()
-
-  # 1/d/ With test_channelOffset, with frame-length normalisation
-  scores = linear_scoring([model1, model2], ubm, [stats1, stats2, stats3], test_channeloffset, True)
-  assert (abs(scores - ref_scores_11) < 1e-7).all()
-
-
-  # 2/ Use mean/variance supervectors
-  # 2/a/ Without test_channelOffset, without frame-length normalisation
-  scores = linear_scoring([model1.mean_supervector, model2.mean_supervector], ubm.mean_supervector, ubm.variance_supervector, [stats1, stats2, stats3])
-  assert (abs(scores - ref_scores_00) < 1e-7).all()
-
-  # 2/b/ Without test_channelOffset, with frame-length normalisation
-  scores = linear_scoring([model1.mean_supervector, model2.mean_supervector], ubm.mean_supervector, ubm.variance_supervector, [stats1, stats2, stats3], [], True)
-  assert (abs(scores - ref_scores_01) < 1e-7).all()
-
-  # 2/c/ With test_channelOffset, without frame-length normalisation
-  scores = linear_scoring([model1.mean_supervector, model2.mean_supervector], ubm.mean_supervector, ubm.variance_supervector, [stats1, stats2, stats3], test_channeloffset)
-  assert (abs(scores - ref_scores_10) < 1e-7).all()
-
-  # 2/d/ With test_channelOffset, with frame-length normalisation
-  scores = linear_scoring([model1.mean_supervector, model2.mean_supervector], ubm.mean_supervector, ubm.variance_supervector, [stats1, stats2, stats3], test_channeloffset, True)
-  assert (abs(scores - ref_scores_11) < 1e-7).all()
-
-
-  # 3/ Using single model/sample
-  # 3/a/ without frame-length normalisation
-  score = linear_scoring(model1.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats1, test_channeloffset[0])
-  assert abs(score - ref_scores_10[0,0]) < 1e-7
-  score = linear_scoring(model1.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats2, test_channeloffset[1])
-  assert abs(score - ref_scores_10[0,1]) < 1e-7
-  score = linear_scoring(model1.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats3, test_channeloffset[2])
-  assert abs(score - ref_scores_10[0,2]) < 1e-7
-  score = linear_scoring(model2.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats1, test_channeloffset[0])
-  assert abs(score - ref_scores_10[1,0]) < 1e-7
-  score = linear_scoring(model2.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats2, test_channeloffset[1])
-  assert abs(score - ref_scores_10[1,1]) < 1e-7
-  score = linear_scoring(model2.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats3, test_channeloffset[2])
-  assert abs(score - ref_scores_10[1,2]) < 1e-7
-
-
-  # 3/b/ without frame-length normalisation
-  score = linear_scoring(model1.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats1, test_channeloffset[0], True)
-  assert abs(score - ref_scores_11[0,0]) < 1e-7
-  score = linear_scoring(model1.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats2, test_channeloffset[1], True)
-  assert abs(score - ref_scores_11[0,1]) < 1e-7
-  score = linear_scoring(model1.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats3, test_channeloffset[2], True)
-  assert abs(score - ref_scores_11[0,2]) < 1e-7
-  score = linear_scoring(model2.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats1, test_channeloffset[0], True)
-  assert abs(score - ref_scores_11[1,0]) < 1e-7
-  score = linear_scoring(model2.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats2, test_channeloffset[1], True)
-  assert abs(score - ref_scores_11[1,1]) < 1e-7
-  score = linear_scoring(model2.mean_supervector, ubm.mean_supervector, ubm.variance_supervector, stats3, test_channeloffset[2], True)
-  assert abs(score - ref_scores_11[1,2]) < 1e-7
-
diff --git a/bob/learn/misc/test_plda.py b/bob/learn/misc/test_plda.py
deleted file mode 100644
index 37f9c33..0000000
--- a/bob/learn/misc/test_plda.py
+++ /dev/null
@@ -1,565 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Sat Oct 22 23:01:09 2011 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests PLDA machine
-"""
-
-import numpy
-import os
-import tempfile
-import nose.tools
-import math
-
-import bob.io.base
-
-from . import PLDABase, PLDAMachine
-
-# Defines common variables globally
-# Dimensionalities
-C_dim_d = 7
-C_dim_f = 2
-C_dim_g = 3
-# Values for F and G
-C_G=numpy.array([-1.1424, -0.5044, -0.1917,
-      -0.6249,  0.1021, -0.8658,
-      -1.1687,  1.1963,  0.1807,
-      0.3926,  0.1203,  1.2665,
-      1.3018, -1.0368, -0.2512,
-      -0.5936, -0.8571, -0.2046,
-      0.4364, -0.1699, -2.2015], 'float64').reshape(C_dim_d, C_dim_g)
-# F <-> PCA on G
-C_F=numpy.array([-0.054222647972093, -0.000000000783146,
-      0.596449127693018,  0.000000006265167,
-      0.298224563846509,  0.000000003132583,
-      0.447336845769764,  0.000000009397750,
-      -0.108445295944185, -0.000000001566292,
-      -0.501559493741856, -0.000000006265167,
-      -0.298224563846509, -0.000000003132583], 'float64').reshape(C_dim_d, C_dim_f)
-
-def equals(x, y, epsilon):
-  return (abs(x - y) < epsilon).all()
-
-def compute_i_sigma(sigma):
-  # Inverse of a diagonal matrix (represented by a 1D numpy array)
-  return (1. / sigma)
-
-def compute_alpha(G, sigma):
-  # alpha = (Id + G^T.sigma^-1.G)^-1 = \mathcal{G}
-  dim_g = G.shape[1]
-  isigma = numpy.diag(compute_i_sigma(sigma))
-  return numpy.linalg.inv(numpy.eye(dim_g) + numpy.dot(numpy.dot(G.transpose(), isigma), G))
-
-def compute_beta(G, sigma):
-  # beta = (sigma + G.G^T)^-1 = sigma^-1 - sigma^-1.G.alpha.G^T.sigma^-1 = \mathcal{S}
-  isigma = numpy.diag(compute_i_sigma(sigma))
-  gt_isigma = numpy.dot(G.transpose(), isigma)
-  alpha = compute_alpha(G, sigma)
-  return (isigma - numpy.dot(numpy.dot(gt_isigma.transpose(), alpha), gt_isigma))
-
-def compute_gamma(F, G, sigma, a):
-  # gamma_a = (Id + a.F^T.beta.F)^-1 = \mathcal{F}_{a}
-  dim_f = F.shape[1]
-  beta = compute_beta(G, sigma)
-  return numpy.linalg.inv(numpy.eye(dim_f) + a * numpy.dot(numpy.dot(F.transpose(), beta), F))
-
-def compute_ft_beta(F, G, sigma):
-  # F^T.beta = F^T.\mathcal{S}
-  beta = compute_beta(G, sigma)
-  return numpy.dot(numpy.transpose(F), beta)
-
-def compute_gt_i_sigma(G, sigma):
-  # G^T.sigma^-1
-  isigma = compute_i_sigma(sigma)
-  return numpy.transpose(G) * isigma
-
-def compute_logdet_alpha(G, sigma):
-  # \log(\det(\alpha)) = \log(\det(\mathcal{G}))
-  alpha = compute_alpha(G, sigma)
-  return math.log(numpy.linalg.det(alpha))
-
-def compute_logdet_sigma(sigma):
-  # \log(\det(\sigma)) = \log(\det(\sigma)) = \log(\prod(\sigma_{i}))
-  return math.log(numpy.prod(sigma))
-
-def compute_loglike_constterm(F, G, sigma, a):
-  # loglike_constterm[a] = a/2 * ( -D*\log(2*pi) -\log|\sigma| +\log|\alpha| +\log|\gamma_a|)
-  gamma_a = compute_gamma(F, G, sigma, a)
-  logdet_gamma_a = math.log(abs(numpy.linalg.det(gamma_a)))
-  ah = a/2.
-  dim_d =  F.shape[0]
-  logdet_sigma = compute_logdet_sigma(sigma)
-  logdet_alpha = compute_logdet_alpha(G, sigma)
-  res = -ah*dim_d*math.log(2*math.pi) - ah*logdet_sigma + ah*logdet_alpha + logdet_gamma_a/2.
-  return res;
-
-def compute_log_likelihood_point_estimate(observation, mu, F, G, sigma, hi, wij):
-  """
-  This function computes p(x_{ij} | h_{i}, w_{ij}, \Theta), which is given by
-  N_{x}[\mu + Fh_{i} + Gw_{ij} + epsilon_{ij}, \Sigma], N_{x} being a
-  Gaussian distribution. As it returns the corresponding log likelihood,
-  this is given by the sum of the following three terms:
-  C1 = -dim_d/2 log(2pi)
-  C2 = -1/2 log(det(\Sigma))
-  C3 = -1/2 (x_{ij}-\mu-Fh_{i}-Gw_{ij})^{T}\Sigma^{-1}(x_{ij}-\mu-Fh_{i}-Gw_{ij})
-  """
-
-  ### Pre-computes some of the constants
-  dim_d          = observation.shape[0]             # A scalar
-  log_2pi        = numpy.log(2. * numpy.pi)        # A scalar
-  C1             = -(dim_d / 2.) * log_2pi         # A scalar
-  C2             = -(1. / 2.) * numpy.sum( numpy.log(sigma) ) # (dim_d, 1)
-
-  ### Subtract the identity and session components from the observed vector.
-  session_plus_identity  = numpy.dot(F, hi) + numpy.dot(G, wij)
-  normalised_observation = numpy.reshape(observation - mu - session_plus_identity, (dim_d,1))
-  ### Now calculate C3
-  sigma_inverse  = numpy.reshape(1. / sigma, (dim_d,1))                      # (dim_d, 1)
-  C3             = -(1. / 2.) * numpy.sum(normalised_observation * sigma_inverse * normalised_observation)
-
-  ### Returns the log likelihood
-  log_likelihood     = C1 + C2 + C3
-  return (log_likelihood)
-
-
-def compute_log_likelihood(observations, mu, F, G, sigma):
-  """
-  This function computes the log-likelihood of the observations given the parameters
-  of the PLDA model. This is done by fulling integrating out the latent variables.
-  """
-  # Work out the number of samples that we have and normalise the data.
-  J_i                = observations.shape[0];                  # An integer > 0
-  norm_observations  = observations - numpy.tile(mu, [J_i,1]);        # (J_i, D_x)
-
-  # There are three terms that need to be computed: C1, C2 and C3
-
-  # 1. Computes C1
-  # C1 = - J_{i} * dim_d/2 log(2*pi)
-  dim_d          = observations.shape[1]             # A scalar
-  dim_f          = F.shape[1]
-  log_2pi        = numpy.log(2. * numpy.pi);        # A scalar
-  C1             = - J_i * (dim_d / 2.) * log_2pi;         # A scalar
-
-  # 2. Computes C2
-  # C2 = - J_i/2 * [log(det(sigma)) - log(det(alpha^-1))] + log(det(gamma_{J_i}))/2
-  ld_sigma = compute_logdet_sigma(sigma)
-  ld_alpha = compute_logdet_alpha(G, sigma)
-  gamma = compute_gamma(F, G, sigma, J_i)
-  ld_gamma = math.log(numpy.linalg.det(gamma))
-  C2 = - J_i/2.*(ld_sigma - ld_alpha)  + ld_gamma/2.
-
-  # 3. Computes C3
-  # This is a quadratic part and consists of
-  # C3   = -0.5 * sum x^T beta x + 0.5 * Quadratic term in x
-  # C3   = -0.5 * (C3a - C3b)
-  C3a                  = 0.0;
-  C3b_sum_part         = numpy.zeros((dim_f,1));
-  isigma               = numpy.diag(compute_i_sigma(sigma))
-  beta                 = compute_beta(G, sigma)
-  ft_beta              = numpy.dot(numpy.transpose(F), beta)
-  for j in range(0, J_i):
-    ### Calculations for C3a
-    current_vector           = numpy.reshape(norm_observations[j,:], (dim_d,1));  # (D_x, 1)
-    vector_E                 = numpy.dot(beta, current_vector);                   # (D_x, 1)
-    current_result           = numpy.dot(current_vector.transpose(), vector_E);   # A floating point value
-    C3a                      = C3a + current_result[0][0];                        # A floating point value
-    ### Calculations for C3b
-    C3b_sum_part             = C3b_sum_part + numpy.dot(ft_beta, current_vector);  # (nf, 1)
-
-  ### Final calculations for C3b, using the matrix gamma_{J_i}
-  C3b                        = numpy.dot(numpy.dot(C3b_sum_part.transpose(), gamma), C3b_sum_part);
-  C3                         = -0.5 * (C3a - C3b[0][0]);
-
-  return C1 + C2 + C3
-
-
-def test_plda_basemachine():
-  # Data used for performing the tests
-  sigma = numpy.ndarray(C_dim_d, 'float64')
-  sigma.fill(0.01)
-  mu = numpy.ndarray(C_dim_d, 'float64')
-  mu.fill(0)
-
-  # Defines reference results based on matlab
-  alpha_ref = numpy.array([ 0.002189051545735,  0.001127099941432,
-    -0.000145483208153, 0.001127099941432,  0.003549267943741,
-    -0.000552001405453, -0.000145483208153, -0.000552001405453,
-    0.001440505362615], 'float64').reshape(C_dim_g, C_dim_g)
-  beta_ref  = numpy.array([ 50.587191765140361, -14.512478352504877,
-    -0.294799164567830,  13.382002504394316,  9.202063877660278,
-    -43.182264846086497,  11.932345916716455, -14.512478352504878,
-    82.320149045633045, -12.605578822979698,  19.618675892079366,
-    13.033691341150439,  -8.004874490989799, -21.547363307109187,
-    -0.294799164567832, -12.605578822979696,  52.123885798398241,
-    4.363739008635009, 44.847177605628545,  16.438137537463710,
-    5.137421840557050, 13.382002504394316,  19.618675892079366,
-    4.363739008635011,  75.070401560513488, -4.515472972526140,
-    9.752862741017488,  34.196127678931106, 9.202063877660285,
-    13.033691341150439,  44.847177605628552,  -4.515472972526142,
-    56.189416227691098,  -7.536676357632515, -10.555735414707383,
-    -43.182264846086497,  -8.004874490989799,  16.438137537463703,
-    9.752862741017490, -7.536676357632518,  56.430571485722126,
-    9.471758169835317, 11.932345916716461, -21.547363307109187,
-    5.137421840557051,  34.196127678931099, -10.555735414707385,
-    9.471758169835320,  27.996266602110637], 'float64').reshape(C_dim_d, C_dim_d)
-  gamma3_ref = numpy.array([ 0.005318799462241, -0.000000012993151,
-    -0.000000012993151,  0.999999999999996], 'float64').reshape(C_dim_f, C_dim_f)
-
-  # Constructor tests
-  #m = PLDABase()
-  #assert m.dim_d == 0
-  #assert m.dim_f == 0
-  #assert m.dim_g == 0
-  #del m
-  m = PLDABase(C_dim_d, C_dim_f, C_dim_g)
-  assert m.shape[0] == C_dim_d
-  assert m.shape[1] == C_dim_f
-  assert m.shape[2] == C_dim_g
-  assert abs(m.variance_threshold - 0.) < 1e-10
-  del m
-  m = PLDABase(C_dim_d, C_dim_f, C_dim_g, 1e-2)
-  assert m.shape[0] == C_dim_d
-  assert m.shape[1] == C_dim_f
-  assert m.shape[2] == C_dim_g
-  assert abs(m.variance_threshold - 1e-2) < 1e-10
-  del m
-
-  # Defines base machine
-  m = PLDABase(C_dim_d, C_dim_f, C_dim_g)
-  #m.resize(C_dim_d, C_dim_f, C_dim_g)
-  # Sets the current mu, F, G and sigma
-  m.mu = mu
-  m.f = C_F
-  m.g = C_G
-  m.sigma = sigma
-  gamma3 = m.get_add_gamma(3).copy()
-  constTerm3 = m.get_add_log_like_const_term(3)
-
-  # Compares precomputed values to matlab reference
-  for ii in range(m.__alpha__.shape[0]):
-    for jj in range(m.__alpha__.shape[1]):
-      absdiff = abs(m.__alpha__[ii,jj]- alpha_ref[ii,jj])
-      assert absdiff < 1e-10, 'PLDABase alpha matrix does not match reference at (%d,%d) to 10^-10: |%g-%g| = %g' % (ii, jj, m.__alpha__[ii,jj], alpha_ref[ii,jj], absdiff)
-  assert equals(m.__alpha__, alpha_ref, 1e-10)
-  assert equals(m.__beta__, beta_ref, 1e-10)
-  assert equals(gamma3, gamma3_ref, 1e-10)
-
-  # Compares precomputed values to the ones returned by python implementation
-  assert equals(m.__isigma__, compute_i_sigma(sigma), 1e-10)
-  assert equals(m.__alpha__, compute_alpha(C_G,sigma), 1e-10)
-  assert equals(m.__beta__, compute_beta(C_G,sigma), 1e-10)
-  assert equals(m.get_add_gamma(3), compute_gamma(C_F,C_G,sigma,3), 1e-10)
-  assert m.has_gamma(3)
-  assert equals(m.get_gamma(3), compute_gamma(C_F,C_G,sigma,3), 1e-10)
-  assert equals(m.__ft_beta__, compute_ft_beta(C_F,C_G,sigma), 1e-10)
-  assert equals(m.__gt_i_sigma__, compute_gt_i_sigma(C_G,sigma), 1e-10)
-  assert math.fabs(m.__logdet_alpha__ - compute_logdet_alpha(C_G,sigma)) < 1e-10
-  assert math.fabs(m.__logdet_sigma__ - compute_logdet_sigma(sigma)) < 1e-10
-  assert abs(m.get_add_log_like_const_term(3) - compute_loglike_constterm(C_F,C_G,sigma,3)) < 1e-10
-  assert m.has_log_like_const_term(3)
-  assert abs(m.get_log_like_const_term(3) - compute_loglike_constterm(C_F,C_G,sigma,3)) < 1e-10
-
-  # Defines base machine
-  del m
-  m = PLDABase(C_dim_d, C_dim_f, C_dim_g)
-  # Sets the current mu, F, G and sigma
-  m.mu = mu
-  m.f = C_F
-  m.g = C_G
-  m.sigma = sigma
-  gamma3 = m.get_add_gamma(3).copy()
-  constTerm3 = m.get_add_log_like_const_term(3)
-
-  # Compares precomputed values to matlab reference
-  assert equals(m.__alpha__, alpha_ref, 1e-10)
-  assert equals(m.__beta__, beta_ref, 1e-10)
-  assert equals(gamma3, gamma3_ref, 1e-10)
-
-  # values before being saved
-  isigma = m.__isigma__.copy()
-  alpha = m.__alpha__.copy()
-  beta = m.__beta__.copy()
-  FtBeta = m.__ft_beta__.copy()
-  GtISigma = m.__gt_i_sigma__.copy()
-  logdetAlpha = m.__logdet_alpha__
-  logdetSigma = m.__logdet_sigma__
-
-  # Saves to file, loads and compares to original
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  m.save(bob.io.base.HDF5File(filename, 'w'))
-  m_loaded = PLDABase(bob.io.base.HDF5File(filename))
-
-  # Compares the values loaded with the former ones
-  assert m_loaded == m
-  assert (m_loaded != m) is False
-  assert equals(m_loaded.mu, mu, 1e-10)
-  assert equals(m_loaded.f, C_F, 1e-10)
-  assert equals(m_loaded.g, C_G, 1e-10)
-  assert equals(m_loaded.sigma, sigma, 1e-10)
-  assert equals(m_loaded.__isigma__, isigma, 1e-10)
-  assert equals(m_loaded.__alpha__, alpha, 1e-10)
-  assert equals(m_loaded.__beta__, beta, 1e-10)
-  assert equals(m_loaded.__ft_beta__, FtBeta, 1e-10)
-  assert equals(m_loaded.__gt_i_sigma__, GtISigma, 1e-10)
-  assert abs(m_loaded.__logdet_alpha__ - logdetAlpha) < 1e-10
-  assert abs(m_loaded.__logdet_sigma__ - logdetSigma) < 1e-10
-  assert m_loaded.has_gamma(3)
-  assert equals(m_loaded.get_gamma(3), gamma3_ref, 1e-10)
-  assert equals(m_loaded.get_add_gamma(3), gamma3_ref, 1e-10)
-  assert m_loaded.has_log_like_const_term(3)
-  assert abs(m_loaded.get_add_log_like_const_term(3) - constTerm3) < 1e-10
-
-  # Compares the values loaded with the former ones when copying
-  m_copy = PLDABase(m_loaded)
-  assert m_loaded == m_copy
-  assert (m_loaded != m_copy) is False
-  # Test clear_maps method
-  assert m_copy.has_gamma(3)
-  assert m_copy.has_log_like_const_term(3)
-  m_copy.clear_maps()
-  assert (m_copy.has_gamma(3)) is False
-  assert (m_copy.has_log_like_const_term(3)) is False
-
-  # Check variance flooring thresholds-related methods
-  v_zo = numpy.array([0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01])
-  v_zo_ = 0.01
-  v_zzo = numpy.array([0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001])
-  v_zzo_ = 0.001
-  m_copy.variance_threshold = v_zo_
-  assert (m_loaded == m_copy) is False
-  assert m_loaded != m_copy
-  m_copy.variance_threshold = v_zzo_
-  m_copy.sigma = v_zo
-  assert equals(m_copy.sigma, v_zo, 1e-10)
-  m_copy.variance_threshold = v_zo_
-  m_copy.sigma = v_zzo
-  assert equals(m_copy.sigma, v_zo, 1e-10)
-  m_copy.variance_threshold = v_zzo_
-  m_copy.sigma = v_zzo
-  assert equals(m_copy.sigma, v_zzo, 1e-10)
-  m_copy.variance_threshold = v_zo_
-  assert equals(m_copy.sigma, v_zo, 1e-10)
-
-  # Clean-up
-  os.unlink(filename)
-
-
-def test_plda_basemachine_loglikelihood_pointestimate():
-
-  # Data used for performing the tests
-  # Features and subspaces dimensionality
-  sigma = numpy.ndarray(C_dim_d, 'float64')
-  sigma.fill(0.01)
-  mu = numpy.ndarray(C_dim_d, 'float64')
-  mu.fill(0)
-  xij = numpy.array([0.7, 1.3, 2.5, 0.3, 1.3, 2.7, 0.9])
-  hi = numpy.array([-0.5, 0.5])
-  wij = numpy.array([-0.1, 0.2, 0.3])
-
-  m = PLDABase(C_dim_d, C_dim_f, C_dim_g)
-  # Sets the current mu, F, G and sigma
-  m.mu = mu
-  m.f = C_F
-  m.g = C_G
-  m.sigma = sigma
-
-  #assert equals(m.compute_log_likelihood_point_estimate(xij, hi, wij), compute_log_likelihood_point_estimate(xij, mu, C_F, C_G, sigma, hi, wij), 1e-6)
-  log_likelihood_point_estimate        = m.compute_log_likelihood_point_estimate(xij, hi, wij)
-  log_likelihood_point_estimate_python = compute_log_likelihood_point_estimate(xij,         mu, C_F, C_G, sigma, hi, wij)
-  assert equals(log_likelihood_point_estimate, log_likelihood_point_estimate_python, 1e-6)
-
-
-def test_plda_machine():
-
-  # Data used for performing the tests
-  # Features and subspaces dimensionality
-  sigma = numpy.ndarray(C_dim_d, 'float64')
-  sigma.fill(0.01)
-  mu = numpy.ndarray(C_dim_d, 'float64')
-  mu.fill(0)
-
-  # Defines base machine
-  mb = PLDABase(C_dim_d, C_dim_f, C_dim_g)
-  # Sets the current mu, F, G and sigma
-  mb.mu = mu
-  mb.f = C_F
-  mb.g = C_G
-  mb.sigma = sigma
-
-  # Test constructors and dim getters
-  m = PLDAMachine(mb)
-  assert m.shape[0] == C_dim_d
-  assert m.shape[1]== C_dim_f
-  assert m.shape[2] == C_dim_g
-
-  m0 = PLDAMachine(mb)
-  #m0.plda_base = mb
-  assert m0.shape[0]  == C_dim_d
-  assert m0.shape[1]  == C_dim_f
-  assert m0.shape[2]  == C_dim_g
-
-  # Defines machine
-  n_samples = 2
-  WSumXitBetaXi = 0.37
-  weightedSum = numpy.array([1.39,0.54], 'float64')
-  log_likelihood = -0.22
-
-  m.n_samples = n_samples
-  m.w_sum_xit_beta_xi = WSumXitBetaXi
-  m.weighted_sum = weightedSum
-  m.log_likelihood = log_likelihood
-
-  gamma3 = m.get_add_gamma(3).copy()
-  constTerm3 = m.get_add_log_like_const_term(3)
-
-  # Saves to file, loads and compares to original
-  filename = str(tempfile.mkstemp(".hdf5")[1])
-  m.save(bob.io.base.HDF5File(filename, 'w'))
-  m_loaded = PLDAMachine(bob.io.base.HDF5File(filename), mb)
-
-  # Compares the values loaded with the former ones
-  assert m_loaded == m
-  assert (m_loaded != m) is False
-  assert abs(m_loaded.n_samples - n_samples) < 1e-10
-  assert abs(m_loaded.w_sum_xit_beta_xi - WSumXitBetaXi) < 1e-10
-  assert equals(m_loaded.weighted_sum, weightedSum, 1e-10)
-  assert abs(m_loaded.log_likelihood - log_likelihood) < 1e-10
-  assert m_loaded.has_gamma(3)
-  assert equals(m_loaded.get_add_gamma(3), gamma3, 1e-10)
-  assert equals(m_loaded.get_gamma(3), gamma3, 1e-10)
-  assert m_loaded.has_log_like_const_term(3)
-  assert abs(m_loaded.get_add_log_like_const_term(3) - constTerm3) < 1e-10
-  assert abs(m_loaded.get_log_like_const_term(3) - constTerm3) < 1e-10
-
-  # Test clear_maps method
-  assert m_loaded.has_gamma(3)
-  assert m_loaded.has_log_like_const_term(3)
-  m_loaded.clear_maps()
-  assert (m_loaded.has_gamma(3)) is False
-  assert (m_loaded.has_log_like_const_term(3)) is False
-
-  # Check exceptions
-  #m_loaded2 = PLDAMachine(bob.io.base.HDF5File(filename))
-  #m_loaded2.load(bob.io.base.HDF5File(filename))
-  #nose.tools.assert_raises(RuntimeError, getattr, m_loaded2, 'shape')
-  #nose.tools.assert_raises(RuntimeError, getattr, m_loaded2, 'dim_f')
-  #nose.tools.assert_raises(RuntimeError, getattr, m_loaded2, 'dim_g')
-  #nose.tools.assert_raises(RuntimeError, m_loaded2.forward, [1.])
-  #nose.tools.assert_raises(RuntimeError, m_loaded2.compute_log_likelihood, [1.])
-
-  # Clean-up
-  os.unlink(filename)
-
-
-def test_plda_machine_log_likelihood_Python():
-
-  # Data used for performing the tests
-  # Features and subspaces dimensionality
-  sigma = numpy.ndarray(C_dim_d, 'float64')
-  sigma.fill(0.01)
-  mu = numpy.ndarray(C_dim_d, 'float64')
-  mu.fill(0)
-
-  # Defines base machine
-  mb = PLDABase(C_dim_d, C_dim_f, C_dim_g)
-  # Sets the current mu, F, G and sigma
-  mb.mu = mu
-  mb.f = C_F
-  mb.g = C_G
-  mb.sigma = sigma
-
-  # Defines machine
-  m = PLDAMachine(mb)
-
-  # Defines (random) samples and check compute_log_likelihood method
-  ar_e = numpy.random.randn(2,C_dim_d)
-  ar_p = numpy.random.randn(C_dim_d)
-  ar_s = numpy.vstack([ar_e, ar_p])
-  assert abs(m.compute_log_likelihood(ar_s, False) - compute_log_likelihood(ar_s, mu, C_F, C_G, sigma)) < 1e-10
-  ar_p2d = numpy.reshape(ar_p, (1,C_dim_d))
-  assert abs(m.compute_log_likelihood(ar_p, False) - compute_log_likelihood(ar_p2d, mu, C_F, C_G, sigma)) < 1e-10
-
-  # Defines (random) samples and check forward method
-  ar2_e = numpy.random.randn(4,C_dim_d)
-  ar2_p = numpy.random.randn(C_dim_d)
-  ar2_s = numpy.vstack([ar2_e, ar2_p])
-  m.log_likelihood = m.compute_log_likelihood(ar2_e, False)
-  llr = m.compute_log_likelihood(ar2_s, True) - (m.compute_log_likelihood(ar2_s, False) + m.log_likelihood)
-  assert abs(m(ar2_s) - llr) < 1e-10
-  ar2_p2d = numpy.random.randn(3,C_dim_d)
-  ar2_s2d = numpy.vstack([ar2_e, ar2_p2d])
-  llr2d = m.compute_log_likelihood(ar2_s2d, True) - (m.compute_log_likelihood(ar2_s2d, False) + m.log_likelihood)
-  assert abs(m(ar2_s2d) - llr2d) < 1e-10
-
-def test_plda_machine_log_likelihood_Prince():
-
-  # Data used for performing the tests
-  # Features and subspaces dimensionality
-  D = 7
-  nf = 2
-  ng = 3
-
-  # initial values for F, G and sigma
-  G_init=numpy.array([-1.1424, -0.5044, -0.1917,
-    -0.6249,  0.1021, -0.8658,
-    -1.1687,  1.1963,  0.1807,
-    0.3926,  0.1203,  1.2665,
-    1.3018, -1.0368, -0.2512,
-    -0.5936, -0.8571, -0.2046,
-    0.4364, -0.1699, -2.2015]).reshape(D,ng)
-  # F <-> PCA on G
-  F_init=numpy.array([-0.054222647972093, -0.000000000783146,
-    0.596449127693018,  0.000000006265167,
-    0.298224563846509,  0.000000003132583,
-    0.447336845769764,  0.000000009397750,
-    -0.108445295944185, -0.000000001566292,
-    -0.501559493741856, -0.000000006265167,
-    -0.298224563846509, -0.000000003132583]).reshape(D,nf)
-  sigma_init = 0.01 * numpy.ones((D,), 'float64')
-  mean_zero = numpy.zeros((D,), 'float64')
-
-  # base machine
-  mb = PLDABase(D,nf,ng)
-  mb.sigma = sigma_init
-  mb.g = G_init
-  mb.f = F_init
-  mb.mu = mean_zero
-
-  # Data for likelihood computation
-  x1 = numpy.array([0.8032, 0.3503, 0.4587, 0.9511, 0.1330, 0.0703, 0.7061])
-  x2 = numpy.array([0.9317, 0.1089, 0.6517, 0.1461, 0.6940, 0.6256, 0.0437])
-  x3 = numpy.array([0.7979, 0.9862, 0.4367, 0.3447, 0.0488, 0.2252, 0.5810])
-  X = numpy.ndarray((3,D), 'float64')
-  X[0,:] = x1
-  X[1,:] = x2
-  X[2,:] = x3
-  a = []
-  a.append(x1)
-  a.append(x2)
-  a.append(x3)
-  a = numpy.array(a)
-
-  # reference likelihood from Prince implementation
-  ll_ref = -182.8880743535197
-
-  # machine
-  m = PLDAMachine(mb)
-  ll = m.compute_log_likelihood(X)
-  assert abs(ll - ll_ref) < 1e-10
-
-  # log likelihood ratio
-  Y = numpy.ndarray((2,D), 'float64')
-  Y[0,:] = x1
-  Y[1,:] = x2
-  Z = numpy.ndarray((1,D), 'float64')
-  Z[0,:] = x3
-  llX = m.compute_log_likelihood(X)
-  llY = m.compute_log_likelihood(Y)
-  llZ = m.compute_log_likelihood(Z)
-  # reference obtained by computing the likelihood of [x1,x2,x3], [x1,x2]
-  # and [x3] separately
-  llr_ref = -4.43695386675
-  assert abs((llX - (llY + llZ)) - llr_ref) < 1e-10
diff --git a/bob/learn/misc/test_plda_trainer.py b/bob/learn/misc/test_plda_trainer.py
deleted file mode 100644
index 553ff4f..0000000
--- a/bob/learn/misc/test_plda_trainer.py
+++ /dev/null
@@ -1,741 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Fri Oct 14 18:07:56 2011 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests PLDA trainer
-"""
-
-import sys
-import numpy
-import numpy.linalg
-
-from . import PLDATrainer, PLDABase, PLDAMachine
-
-class PythonPLDATrainer():
-  """A simplified (and slower) version of the PLDATrainer"""
-
-  def __init__(self, convergence_threshold=0.001, max_iterations=10,
-      compute_likelihood=False, use_sum_second_order=True):
-    # Our state
-    self.m_convergence_threshold = convergence_threshold
-    self.m_max_iterations = max_iterations
-    self.m_compute_likelihood = compute_likelihood
-    self.m_dim_f = 0
-    self.m_dim_g = 0
-    self.m_B = numpy.ndarray(shape=(0,0), dtype=numpy.float64)
-    self.m_n_samples_per_id = numpy.ndarray(shape=(0,), dtype=numpy.float64)
-    self.m_z_first_order = []
-    self.m_z_second_order = []
-    self.m_sum_z_second_order = numpy.ndarray(shape=(0,0), dtype=numpy.float64)
-
-  def reset():
-    """Resets our internal state"""
-    self.m_convergence_threshold = 0.001
-    self.m_max_iterations = 10
-    self.m_compute_likelihood = False
-    self.m_dim_f = 0
-    self.m_dim_g = 0
-    self.m_n_samples_per_id = numpy.ndarray(shape=(0,), dtype=numpy.float64)
-    self.m_z_first_order = []
-    self.m_z_second_order = []
-    self.m_sum_z_second_order = numpy.ndarray(shape=(0,0), dtype=numpy.float64)
-
-  def __check_training_data__(self, data):
-    if len(data) == 0:
-      raise RuntimeError("Training data set is empty")
-    n_features = data[0].shape[1]
-    for v in data:
-      if(v.shape[1] != n_features):
-        raise RuntimeError("Inconsistent feature dimensionality in training data set")
-
-  def __init_members__(self, data):
-    n_features = data[0].shape[1]
-    self.m_z_first_order = []
-    df_dg = self.m_dim_f+self.m_dim_g
-    self.m_sum_z_second_order.resize(df_dg, df_dg)
-    self.m_n_samples_per_id.resize(len(data))
-    self.m_B.resize(n_features, df_dg)
-    for i in range(len(data)):
-      ns_i = data[i].shape[0]
-      self.m_n_samples_per_id[i] = ns_i
-      self.m_z_first_order.append(numpy.ndarray(shape=(ns_i, df_dg), dtype=numpy.float64))
-      self.m_z_second_order.append(numpy.ndarray(shape=(ns_i, df_dg, df_dg), dtype=numpy.float64))
-
-  def __init_mu__(self, machine, data):
-    mu = numpy.zeros(shape=machine.mu.shape[0], dtype=numpy.float64)
-    c = 0
-    # Computes the mean of the data
-    for v in data:
-      for i in range(v.shape[0]):
-        mu += v[i,:]
-        c +=1
-    mu /= c
-    machine.mu = mu
-
-  def __init_f__(self, machine, data):
-    n_ids = len(data)
-    S = numpy.zeros(shape=(machine.shape[0], n_ids), dtype=numpy.float64)
-    Si_sum = numpy.zeros(shape=(machine.shape[0],), dtype=numpy.float64)
-    for i in range(n_ids):
-      Si = S[:,i]
-      data_i = data[i]
-      for j in range(data_i.shape[0]):
-        Si += data_i[j,:]
-      Si /= data_i.shape[0]
-      Si_sum += Si
-    Si_sum /= n_ids
-
-    S = S - numpy.tile(Si_sum.reshape([machine.shape[0],1]), [1,n_ids])
-    U, sigma, S_ = numpy.linalg.svd(S, full_matrices=False)
-    U_slice = U[:,0:self.m_dim_f]
-    sigma_slice = sigma[0:self.m_dim_f]
-    sigma_slice_sqrt = numpy.sqrt(sigma_slice)
-    machine.f = U_slice / sigma_slice_sqrt
-
-  def __init_g__(self, machine, data):
-    n_samples = 0
-    for v in data:
-      n_samples += v.shape[0]
-    S = numpy.zeros(shape=(machine.shape[0], n_samples), dtype=numpy.float64)
-    Si_sum = numpy.zeros(shape=(machine.shape[0],), dtype=numpy.float64)
-    cache = numpy.zeros(shape=(machine.shape[0],), dtype=numpy.float64)
-    c = 0
-    for i in range(len(data)):
-      cache = 0
-      data_i = data[i]
-      for j in range(data_i.shape[0]):
-        cache += data_i[j,:]
-      cache /= data_i.shape[0]
-      for j in range(data_i.shape[0]):
-        S[:,c] = data_i[j,:] - cache
-        Si_sum += S[:,c]
-        c += 1
-    Si_sum /= n_samples
-
-    S = S - numpy.tile(Si_sum.reshape([machine.shape[0],1]), [1,n_samples])
-    U, sigma, S_ = numpy.linalg.svd(S, full_matrices=False)
-    U_slice = U[:,0:self.m_dim_g]
-    sigma_slice_sqrt = numpy.sqrt(sigma[0:self.m_dim_g])
-    machine.g = U_slice / sigma_slice_sqrt
-
-  def __init_sigma__(self, machine, data, factor = 1.):
-    """As a variance of the data"""
-    cache1 = numpy.zeros(shape=(machine.shape[0],), dtype=numpy.float64)
-    cache2 = numpy.zeros(shape=(machine.shape[0],), dtype=numpy.float64)
-    n_samples = 0
-    for v in data:
-      for j in range(v.shape[0]):
-        cache1 += v[j,:]
-      n_samples += v.shape[0]
-    cache1 /= n_samples
-    for v in data:
-      for j in range(v.shape[0]):
-        cache2 += numpy.square(v[j,:] - cache1)
-    machine.sigma = factor * cache2 / (n_samples - 1)
-
-  def __init_mu_f_g_sigma__(self, machine, data):
-    self.__init_mu__(machine, data)
-    self.__init_f__(machine, data)
-    self.__init_g__(machine, data)
-    self.__init_sigma__(machine, data)
-
-  def initialize(self, machine, data):
-    self.__check_training_data__(data)
-    n_features = data[0].shape[1]
-    if(machine.shape[0] != n_features):
-      raise RuntimeError("Inconsistent feature dimensionality between the machine and the training data set")
-    self.m_dim_f = machine.shape[1]
-    self.m_dim_g = machine.shape[2]
-    self.__init_members__(data)
-    # Warning: Default initialization of mu, F, G, sigma using scatters
-    self.__init_mu_f_g_sigma__(machine, data)
-    # Make sure that the precomputation has been performed
-    machine.__precompute__()
-
-  def __compute_sufficient_statistics_given_observations__(self, machine, observations):
-    """
-    We compute the expected values of the latent variables given the observations
-    and parameters of the model.
-
-    First order or the expected value of the latent variables.:
-      F = (I+A^{T}\Sigma'^{-1}A)^{-1} * A^{T}\Sigma^{-1} (\tilde{x}_{s}-\mu').
-    Second order stats:
-      S = (I+A^{T}\Sigma'^{-1}A)^{-1} + (F*F^{T}).
-    """
-
-    # Get the number of observations
-    J_i                       = observations.shape[0]            # An integer > 0
-    dim_d                     = observations.shape[1]            # A scalar
-    # Useful values
-    mu                        = machine.mu
-    F                         = machine.f
-    G                         = machine.g
-    sigma                     = machine.sigma
-    isigma                    = machine.__isigma__
-    alpha                     = machine.__alpha__
-    ft_beta                   = machine.__ft_beta__
-    gamma                     = machine.get_add_gamma(J_i)
-    # Normalise the observations
-    normalised_observations   = observations - numpy.tile(mu, [J_i,1]) # (dim_d, J_i)
-
-    ### Expected value of the latent variables using the scalable solution
-    # Identity part first
-    sum_ft_beta_part          = numpy.zeros(self.m_dim_f)     # (dim_f)
-    for j in range(0, J_i):
-      current_observation     = normalised_observations[j,:]  # (dim_d)
-      sum_ft_beta_part        = sum_ft_beta_part + numpy.dot(ft_beta, current_observation)  # (dim_f)
-    h_i                       = numpy.dot(gamma, sum_ft_beta_part)                          # (dim_f)
-    # Reproject the identity part to work out the session parts
-    Fh_i                      = numpy.dot(F, h_i)                                           # (dim_d)
-    z_first_order = numpy.zeros((J_i, self.m_dim_f+self.m_dim_g))
-    for j in range(0, J_i):
-      current_observation       = normalised_observations[j,:]                  # (dim_d)
-      w_ij                      = numpy.dot(alpha, G.transpose())               # (dim_g, dim_d)
-      w_ij                      = numpy.multiply(w_ij, isigma)                  # (dim_g, dim_d)
-      w_ij                      = numpy.dot(w_ij, (current_observation - Fh_i)) # (dim_g)
-      z_first_order[j,:]        = numpy.hstack([h_i,w_ij])                      # (dim_f+dim_g)
-
-    ### Calculate the expected value of the squared of the latent variables
-    # The constant matrix we use has the following parts: [top_left, top_right; bottom_left, bottom_right]
-    # P             = Inverse_I_plus_GTEG * G^T * Sigma^{-1} * F  (dim_g, dim_f)
-    # top_left      = gamma                                       (dim_f, dim_f)
-    # bottom_left   = top_right^T = P * gamma                     (dim_g, dim_f)
-    # bottom_right  = Inverse_I_plus_GTEG - bottom_left * P^T     (dim_g, dim_g)
-    top_left                 = gamma
-    P                        = numpy.dot(alpha, G.transpose())
-    P                        = numpy.dot(numpy.dot(P,numpy.diag(isigma)), F)
-    bottom_left              = -1 * numpy.dot(P, top_left)
-    top_right                = bottom_left.transpose()
-    bottom_right             = alpha -1 * numpy.dot(bottom_left, P.transpose())
-    constant_matrix          = numpy.bmat([[top_left,top_right],[bottom_left, bottom_right]])
-
-    # Now get the actual expected value
-    z_second_order = numpy.zeros((J_i, self.m_dim_f+self.m_dim_g, self.m_dim_f+self.m_dim_g))
-    for j in range(0, J_i):
-      z_second_order[j,:,:] = constant_matrix + numpy.outer(z_first_order[j,:],z_first_order[j,:])  # (dim_f+dim_g,dim_f+dim_g)
-
-    ### Return the first and second order statistics
-    return(z_first_order, z_second_order)
-
-  def e_step(self, machine, data):
-    self.m_sum_z_second_order.fill(0.)
-    for i in range(len(data)):
-      ### Get the observations for this label and the number of observations for this label.
-      observations_for_h_i      = data[i]
-      J_i                       = observations_for_h_i.shape[0]                           # An integer > 0
-
-      ### Gather the statistics for this identity and then separate them for each observation.
-      [z_first_order, z_second_order] = self.__compute_sufficient_statistics_given_observations__(machine, observations_for_h_i)
-      self.m_z_first_order[i]  = z_first_order
-      self.m_z_second_order[i] = z_second_order
-      J_i = len(z_second_order)
-      for j in range(0, J_i):
-        self.m_sum_z_second_order += z_second_order[j]
-
-  def __update_f_and_g__(self, machine, data):
-    ### Initialise the numerator and the denominator.
-    dim_d                          = machine.shape[0]
-    accumulated_B_numerator        = numpy.zeros((dim_d,self.m_dim_f+self.m_dim_g))
-    accumulated_B_denominator      = numpy.linalg.inv(self.m_sum_z_second_order)
-    mu                             = machine.mu
-
-    ### Go through and process on a per subjectid basis
-    for i in range(len(data)):
-      # Normalise the observations
-      J_i                       = data[i].shape[0]
-      normalised_observations   = data[i] - numpy.tile(mu, [J_i,1]) # (J_i, dim_d)
-
-      ### Gather the statistics for this label
-      z_first_order_i                    = self.m_z_first_order[i]  # List of (dim_f+dim_g) vectors
-
-      ### Accumulate for the B matrix for this identity (current_label).
-      for j in range(0, J_i):
-        current_observation_for_h_i   = normalised_observations[j,:]   # (dim_d)
-        accumulated_B_numerator       = accumulated_B_numerator + numpy.outer(current_observation_for_h_i, z_first_order_i[j,:])  # (dim_d, dim_f+dim_g);
-
-    ### Update the B matrix which we can then use this to update the F and G matrices.
-    B                                  = numpy.dot(accumulated_B_numerator,accumulated_B_denominator)
-    machine.f                          = B[:,0:self.m_dim_f].copy()
-    machine.g                          = B[:,self.m_dim_f:self.m_dim_f+self.m_dim_g].copy()
-
-  def __update_sigma__(self, machine, data):
-    ### Initialise the accumulated Sigma
-    dim_d                          = machine.shape[0]
-    mu                             = machine.mu
-    accumulated_sigma              = numpy.zeros(dim_d)   # An array (dim_d)
-    number_of_observations         = 0
-    B = numpy.hstack([machine.f, machine.g])
-
-    ### Go through and process on a per subjectid basis (based on the labels we were given.
-    for i in range(len(data)):
-      # Normalise the observations
-      J_i                       = data[i].shape[0]
-      normalised_observations   = data[i] - numpy.tile(mu, [J_i,1]) # (J_i, dim_d)
-
-      ### Gather the statistics for this identity and then separate them for each
-      ### observation.
-      z_first_order_i                    = self.m_z_first_order[i]  # List of (dim_f+dim_g) vectors
-
-      ### Accumulate for the sigma matrix, which will be diagonalised
-      for j in range(0, J_i):
-        current_observation_for_h_i   = normalised_observations[j,:]  # (dim_d)
-        left                          = current_observation_for_h_i * current_observation_for_h_i # (dim_d)
-        projected_direction           = numpy.dot(B, z_first_order_i[j,:])                        # (dim_d)
-        right                         = projected_direction * current_observation_for_h_i         # (dim_d)
-        accumulated_sigma             = accumulated_sigma + (left - right)                        # (dim_d)
-        number_of_observations        = number_of_observations + 1
-
-    ### Normalise by the number of observations (1/IJ)
-    machine.sigma                     = accumulated_sigma / number_of_observations;
-
-  def m_step(self, machine, data):
-    self.__update_f_and_g__(machine, data)
-    self.__update_sigma__(machine, data)
-    machine.__precompute__()
-
-  def finalize(self, machine, data):
-    machine.__precompute_log_like__()
-
-  def train(self, machine, data):
-    self.initialize(machine, data)
-    average_output_previous = -sys.maxsize
-    average_output = -sys.maxsize
-    self.e_step(machine, data)
-
-    i = 0
-    while True:
-      average_output_previous = average_output
-      self.m_step(machine, data)
-      self.e_step(machine, data)
-      if(self.m_max_iterations > 0 and i+1 >= self.m_max_iterations):
-        break
-      i += 1
-
-
-def test_plda_EM_vs_Python():
-
-  # Data used for performing the tests
-  # Features and subspaces dimensionality
-  D = 7
-  nf = 2
-  ng = 3
-
-  # first identity (4 samples)
-  a = numpy.array([
-    [1,2,3,4,5,6,7],
-    [7,8,3,3,1,8,2],
-    [3,2,1,4,5,1,7],
-    [9,0,3,2,1,4,6],
-    ], dtype='float64')
-
-  # second identity (3 samples)
-  b = numpy.array([
-    [5,6,3,4,2,0,2],
-    [1,7,8,9,4,4,8],
-    [8,7,2,5,1,1,1],
-    ], dtype='float64')
-
-  # list of arrays (training data)
-  l = [a,b]
-
-  # initial values for F, G and sigma
-  G_init=numpy.array([-1.1424, -0.5044, -0.1917,
-    -0.6249,  0.1021, -0.8658,
-    -1.1687,  1.1963,  0.1807,
-    0.3926,  0.1203,  1.2665,
-    1.3018, -1.0368, -0.2512,
-    -0.5936, -0.8571, -0.2046,
-    0.4364, -0.1699, -2.2015]).reshape(D,ng)
-
-  # F <-> PCA on G
-  F_init=numpy.array([-0.054222647972093, -0.000000000783146,
-    0.596449127693018,  0.000000006265167,
-    0.298224563846509,  0.000000003132583,
-    0.447336845769764,  0.000000009397750,
-    -0.108445295944185, -0.000000001566292,
-    -0.501559493741856, -0.000000006265167,
-    -0.298224563846509, -0.000000003132583]).reshape(D,nf)
-  sigma_init = 0.01 * numpy.ones(D, 'float64')
-
-  # Runs the PLDA trainer EM-steps (2 steps)
-  # Defines base trainer and machine
-  t = PLDATrainer(10)
-  t_py = PythonPLDATrainer(max_iterations=10)
-  m = PLDABase(D,nf,ng)
-  m_py = PLDABase(D,nf,ng)
-
-  # Sets the same initialization methods
-  t.init_f_method = 'BETWEEN_SCATTER'
-  t.init_g_method = 'WITHIN_SCATTER'
-  t.init_sigma_method = 'VARIANCE_DATA'
-
-  t.train(m, l)
-  t_py.train(m_py, l)
-  assert numpy.allclose(m.mu, m_py.mu)
-  assert numpy.allclose(m.f, m_py.f)
-  assert numpy.allclose(m.g, m_py.g)
-  assert numpy.allclose(m.sigma, m_py.sigma)
-
-
-def test_plda_EM_vs_Prince():
-  # Data used for performing the tests
-  # Features and subspaces dimensionality
-  dim_d = 7
-  dim_f = 2
-  dim_g = 3
-
-  # first identity (4 samples)
-  a = numpy.array([
-    [1,2,3,4,5,6,7],
-    [7,8,3,3,1,8,2],
-    [3,2,1,4,5,1,7],
-    [9,0,3,2,1,4,6],
-    ], dtype='float64')
-
-  # second identity (3 samples)
-  b = numpy.array([
-    [5,6,3,4,2,0,2],
-    [1,7,8,9,4,4,8],
-    [8,7,2,5,1,1,1],
-    ], dtype='float64')
-
-  # list of arrays (training data)
-  l = [a,b]
-
-  # initial values for F, G and sigma
-  G_init=numpy.array([-1.1424, -0.5044, -0.1917,
-    -0.6249,  0.1021, -0.8658,
-    -1.1687,  1.1963,  0.1807,
-    0.3926,  0.1203,  1.2665,
-    1.3018, -1.0368, -0.2512,
-    -0.5936, -0.8571, -0.2046,
-    0.4364, -0.1699, -2.2015]).reshape(dim_d,dim_g)
-
-  # F <-> PCA on G
-  F_init=numpy.array([-0.054222647972093, -0.000000000783146,
-    0.596449127693018,  0.000000006265167,
-    0.298224563846509,  0.000000003132583,
-    0.447336845769764,  0.000000009397750,
-    -0.108445295944185, -0.000000001566292,
-    -0.501559493741856, -0.000000006265167,
-    -0.298224563846509, -0.000000003132583]).reshape(dim_d,dim_f)
-  sigma_init = 0.01 * numpy.ones(dim_d, 'float64')
-
-  # Defines reference results based on Princes'matlab implementation
-  # After 1 iteration
-  z_first_order_a_1 = numpy.array(
-    [-2.624115900658397, -0.000000034277848,  1.554823055585319,  0.627476234024656, -0.264705934182394,
-     -2.624115900658397, -0.000000034277848, -2.703482671599357, -1.533283607433197,  0.553725774828231,
-     -2.624115900658397, -0.000000034277848,  2.311647528461115,  1.266362142140170, -0.317378177105131,
-     -2.624115900658397, -0.000000034277848, -1.163402640008200, -0.372604542926019,  0.025152800097991
-    ]).reshape(4, dim_f+dim_g)
-  z_first_order_b_1 = numpy.array(
-    [ 3.494168818797438,  0.000000045643026,  0.111295550530958, -0.029241422535725,  0.257045446451067,
-      3.494168818797438,  0.000000045643026,  1.102110715965762,  1.481232954001794, -0.970661225144399,
-      3.494168818797438,  0.000000045643026, -1.212854031699468, -1.435946529317718,  0.717884143973377
-    ]).reshape(3, dim_f+dim_g)
-
-  z_second_order_sum_1 = numpy.array(
-    [64.203518285366087,  0.000000747228248,  0.002703277337642,  0.078542842475345,  0.020894328259862,
-      0.000000747228248,  6.999999999999980, -0.000000003955962,  0.000000002017232, -0.000000003741593,
-      0.002703277337642, -0.000000003955962, 19.136889380923918, 11.860493771107487, -4.584339465366988,
-      0.078542842475345,  0.000000002017232, 11.860493771107487,  8.771502339750128, -3.905706024997424,
-      0.020894328259862, -0.000000003741593, -4.584339465366988, -3.905706024997424,  2.011924970338584
-    ]).reshape(dim_f+dim_g, dim_f+dim_g)
-
-  sigma_1 = numpy.array(
-      [2.193659969999207, 3.748361365521041, 0.237835235737085,
-        0.558546035892629, 0.209272700958400, 1.717782807724451,
-        0.248414618308223])
-
-  F_1 = numpy.array(
-      [-0.059083416465692,  0.000000000751007,
-        0.600133217253169,  0.000000006957266,
-        0.302789123922871,  0.000000000218947,
-        0.454540641429714,  0.000000003342540,
-        -0.106608957780613, -0.000000001641389,
-        -0.494267694269430, -0.000000011059552,
-        -0.295956102084270, -0.000000006718366]).reshape(dim_d,dim_f)
-
-  G_1 = numpy.array(
-      [-1.836166150865047,  2.491475145758734,  5.095958946372235,
-        -0.608732205531767, -0.618128420353493, -1.085423135463635,
-        -0.697390472635929, -1.047900122276840, -6.080211153116984,
-        0.769509301515319, -2.763610156675313, -5.972172587527176,
-        1.332474692714491, -1.368103875407414, -2.096382536513033,
-        0.304135903830416, -5.168096082564016, -9.604769461465978,
-        0.597445549865284, -1.347101803379971, -5.900246013340080]).reshape(dim_d,dim_g)
-
-  # After 2 iterations
-  z_first_order_a_2 = numpy.array(
-      [-2.144344161196005, -0.000000027851878,  1.217776189037369,  0.232492571855061, -0.212892893868819,
-        -2.144344161196005, -0.000000027851878, -2.382647766948079, -1.759951013670071,  0.587213207926731,
-        -2.144344161196005, -0.000000027851878,  2.143294830538722,  0.909307594408923, -0.183752098508072,
-        -2.144344161196005, -0.000000027851878, -0.662558006326892,  0.717992497547010, -0.202897892977004
-    ]).reshape(4, dim_f+dim_g)
-  z_first_order_b_2 = numpy.array(
-      [ 2.695117129662246,  0.000000035005543, -0.156173294945791, -0.123083763746364,  0.271123341933619,
-        2.695117129662246,  0.000000035005543,  0.690321563509753,  0.944473716646212, -0.850835940962492,
-        2.695117129662246,  0.000000035005543, -0.930970138998433, -0.949736472690315,  0.594216348861889
-    ]).reshape(3, dim_f+dim_g)
-
-  z_second_order_sum_2 = numpy.array(
-      [41.602421167226410,  0.000000449434708, -1.513391506933811, -0.477818674270533,  0.059260102368316,
-        0.000000449434708,  7.000000000000005, -0.000000023255959, -0.000000005157439, -0.000000003230262,
-        -1.513391506933810, -0.000000023255959, 14.399631061987494,  8.068678077509025, -3.227586434905497,
-        -0.477818674270533, -0.000000005157439,  8.068678077509025,  7.263248678863863, -3.060665688064639,
-        0.059260102368316, -0.000000003230262, -3.227586434905497, -3.060665688064639,  1.705174220723198
-    ]).reshape(dim_f+dim_g, dim_f+dim_g)
-
-  sigma_2 = numpy.array(
-    [1.120493935052524, 1.777598857891599, 0.197579528599150,
-      0.407657093211478, 0.166216300651473, 1.044336960403809,
-      0.287856936559308])
-
-  F_2 = numpy.array(
-    [-0.111956311978966,  0.000000000781025,
-      0.702502767389263,  0.000000007683917,
-      0.337823622542517,  0.000000000637302,
-      0.551363737526339,  0.000000004854293,
-     -0.096561040511417, -0.000000001716011,
-     -0.661587484803602, -0.000000012394362,
-     -0.346593051621620, -0.000000007134046]).reshape(dim_d,dim_f)
-
-  G_2 = numpy.array(
-    [-2.266404374274820,  4.089199685832099,  7.023039382876370,
-      0.094887459097613, -3.226829318470136, -3.452279917194724,
-     -0.498398131733141, -1.651712333649899, -6.548008210704172,
-      0.574932298590327, -2.198978667003715, -5.131253543126156,
-      1.415857426810629, -1.627795701160212, -2.509013676007012,
-     -0.543552834305580, -3.215063993186718, -7.006305082499653,
-      0.562108137758111, -0.785296641855087, -5.318335345720314]).reshape(dim_d,dim_g)
-
-  # Runs the PLDA trainer EM-steps (2 steps)
-
-  # Defines base trainer and machine
-  t = PLDATrainer()
-  t0 = PLDATrainer(t)
-  m = PLDABase(dim_d,dim_f,dim_g)
-  t.initialize(m,l)
-  m.sigma = sigma_init
-  m.g = G_init
-  m.f = F_init
-
-  # Defines base trainer and machine (for Python implementation
-  t_py = PythonPLDATrainer()
-  m_py = PLDABase(dim_d,dim_f,dim_g)
-  t_py.initialize(m_py,l)
-  m_py.sigma = sigma_init
-  m_py.g = G_init
-  m_py.f = F_init
-
-  # E-step 1
-  t.e_step(m,l)
-  t_py.e_step(m_py,l)
-  # Compares statistics to Prince matlab reference
-  assert numpy.allclose(t.z_first_order[0], z_first_order_a_1, 1e-10)
-  assert numpy.allclose(t.z_first_order[1], z_first_order_b_1, 1e-10)
-  assert numpy.allclose(t.z_second_order_sum, z_second_order_sum_1, 1e-10)
-  # Compares statistics against the ones of the python implementation
-  assert numpy.allclose(t.z_first_order[0], t_py.m_z_first_order[0], 1e-10)
-  assert numpy.allclose(t.z_first_order[1], t_py.m_z_first_order[1], 1e-10)
-  assert numpy.allclose(t.z_second_order_sum, t_py.m_sum_z_second_order, 1e-10)
-
-  # M-step 1
-  t.m_step(m,l)
-  t_py.m_step(m_py,l)
-  # Compares F, G and sigma to Prince matlab reference
-  assert numpy.allclose(m.f, F_1, 1e-10)
-  assert numpy.allclose(m.g, G_1, 1e-10)
-  assert numpy.allclose(m.sigma, sigma_1, 1e-10)
-  # Compares F, G and sigma to the ones of the python implementation
-  assert numpy.allclose(m.f, m_py.f, 1e-10)
-  assert numpy.allclose(m.g, m_py.g, 1e-10)
-  assert numpy.allclose(m.sigma, m_py.sigma, 1e-10)
-
-  # E-step 2
-  t.e_step(m,l)
-  t_py.e_step(m_py,l)
-  # Compares statistics to Prince matlab reference
-  assert numpy.allclose(t.z_first_order[0], z_first_order_a_2, 1e-10)
-  assert numpy.allclose(t.z_first_order[1], z_first_order_b_2, 1e-10)
-  assert numpy.allclose(t.z_second_order_sum, z_second_order_sum_2, 1e-10)
-  # Compares statistics against the ones of the python implementation
-  assert numpy.allclose(t.z_first_order[0], t_py.m_z_first_order[0], 1e-10)
-  assert numpy.allclose(t.z_first_order[1], t_py.m_z_first_order[1], 1e-10)
-  assert numpy.allclose(t.z_second_order_sum, t_py.m_sum_z_second_order, 1e-10)
-
-  # M-step 2
-  t.m_step(m,l)
-  t_py.m_step(m_py,l)
-  # Compares F, G and sigma to Prince matlab reference
-  assert numpy.allclose(m.f, F_2, 1e-10)
-  assert numpy.allclose(m.g, G_2, 1e-10)
-  assert numpy.allclose(m.sigma, sigma_2, 1e-10)
-  # Compares F, G and sigma to the ones of the python implementation
-  assert numpy.allclose(m.f, m_py.f, 1e-10)
-  assert numpy.allclose(m.g, m_py.g, 1e-10)
-  assert numpy.allclose(m.sigma, m_py.sigma, 1e-10)
-
-
-  # Test the second order statistics computation
-  # Calls the initialization methods and resets randomly initialized values
-  # to new reference ones (to make the tests deterministic)
-  t.use_sum_second_order = False
-  t.initialize(m,l)
-  m.sigma = sigma_init
-  m.g = G_init
-  m.f = F_init
-  t_py.initialize(m_py,l)
-  m_py.sigma = sigma_init
-  m_py.g = G_init
-  m_py.f = F_init
-
-  # E-step 1
-  t.e_step(m,l)
-  t_py.e_step(m_py,l)
-  # Compares statistics to Prince matlab reference
-  assert numpy.allclose(t.z_first_order[0], z_first_order_a_1, 1e-10)
-  assert numpy.allclose(t.z_first_order[1], z_first_order_b_1, 1e-10)
-  # Compares statistics against the ones of the python implementation
-  assert numpy.allclose(t.z_first_order[0], t_py.m_z_first_order[0], 1e-10)
-  assert numpy.allclose(t.z_first_order[1], t_py.m_z_first_order[1], 1e-10)
-  assert numpy.allclose(t.z_second_order[0], t_py.m_z_second_order[0], 1e-10)
-  assert numpy.allclose(t.z_second_order[1], t_py.m_z_second_order[1], 1e-10)
-  assert numpy.allclose(t.z_second_order_sum, t_py.m_sum_z_second_order, 1e-10)
-
-  # M-step 1
-  t.m_step(m,l)
-  t_py.m_step(m_py,l)
-  # Compares F, G and sigma to the ones of the python implementation
-  assert numpy.allclose(m.f, m_py.f, 1e-10)
-  assert numpy.allclose(m.g, m_py.g, 1e-10)
-  assert numpy.allclose(m.sigma, m_py.sigma, 1e-10)
-
-  # E-step 2
-  t.e_step(m,l)
-  t_py.e_step(m_py,l)
-  # Compares statistics to Prince matlab reference
-  assert numpy.allclose(t.z_first_order[0], z_first_order_a_2, 1e-10)
-  assert numpy.allclose(t.z_first_order[1], z_first_order_b_2, 1e-10)
-  # Compares statistics against the ones of the python implementation
-  assert numpy.allclose(t.z_first_order[0], t_py.m_z_first_order[0], 1e-10)
-  assert numpy.allclose(t.z_first_order[1], t_py.m_z_first_order[1], 1e-10)
-  assert numpy.allclose(t.z_second_order[0], t_py.m_z_second_order[0], 1e-10)
-  assert numpy.allclose(t.z_second_order[1], t_py.m_z_second_order[1], 1e-10)
-  assert numpy.allclose(t.z_second_order_sum, t_py.m_sum_z_second_order, 1e-10)
-
-  # M-step 2
-  t.m_step(m,l)
-  t_py.m_step(m_py,l)
-  # Compares F, G and sigma to the ones of the python implementation
-  assert numpy.allclose(m.f, m_py.f, 1e-10)
-  assert numpy.allclose(m.g, m_py.g, 1e-10)
-  assert numpy.allclose(m.sigma, m_py.sigma, 1e-10)
-
-
-def test_plda_enrollment():
-  # Data used for performing the tests
-  # Features and subspaces dimensionality
-  dim_d = 7
-  dim_f = 2
-  dim_g = 3
-
-  # initial values for F, G and sigma
-  G_init=numpy.array([-1.1424, -0.5044, -0.1917,
-    -0.6249,  0.1021, -0.8658,
-    -1.1687,  1.1963,  0.1807,
-    0.3926,  0.1203,  1.2665,
-    1.3018, -1.0368, -0.2512,
-    -0.5936, -0.8571, -0.2046,
-    0.4364, -0.1699, -2.2015]).reshape(dim_d,dim_g)
-  # F <-> PCA on G
-  F_init=numpy.array([-0.054222647972093, -0.000000000783146,
-    0.596449127693018,  0.000000006265167,
-    0.298224563846509,  0.000000003132583,
-    0.447336845769764,  0.000000009397750,
-    -0.108445295944185, -0.000000001566292,
-    -0.501559493741856, -0.000000006265167,
-    -0.298224563846509, -0.000000003132583]).reshape(dim_d,dim_f)
-  sigma_init = 0.01 * numpy.ones((dim_d,), 'float64')
-  mean_zero = numpy.zeros((dim_d,), 'float64')
-
-  # base machine
-  mb = PLDABase(dim_d,dim_f,dim_g)
-  mb.sigma = sigma_init
-  mb.g = G_init
-  mb.f = F_init
-  mb.mu = mean_zero
-
-  # Data for likelihood computation
-  x1 = numpy.array([0.8032, 0.3503, 0.4587, 0.9511, 0.1330, 0.0703, 0.7061])
-  x2 = numpy.array([0.9317, 0.1089, 0.6517, 0.1461, 0.6940, 0.6256, 0.0437])
-  x3 = numpy.array([0.7979, 0.9862, 0.4367, 0.3447, 0.0488, 0.2252, 0.5810])
-  a_enrol = []
-  a_enrol.append(x1)
-  a_enrol.append(x2)
-  a_enrol = numpy.array(a_enrol)
-
-  # reference likelihood from Prince implementation
-  ll_ref = -182.8880743535197
-
-  # Computes the likelihood using x1 and x2 as enrollment samples
-  # and x3 as a probe sample
-  m = PLDAMachine(mb)
-  t = PLDATrainer()
-  t.enrol(m, a_enrol)
-  ll = m.compute_log_likelihood(x3)
-  
-  assert abs(ll - ll_ref) < 1e-10
-
-  # reference obtained by computing the likelihood of [x1,x2,x3], [x1,x2]
-  # and [x3] separately
-  llr_ref = -4.43695386675
-  llr = m(x3)
-  assert abs(llr - llr_ref) < 1e-10
-  #
-  llr_separate = m.compute_log_likelihood(numpy.array([x1,x2,x3]), False) - \
-    (m.compute_log_likelihood(numpy.array([x1,x2]), False) + m.compute_log_likelihood(numpy.array([x3]), False))
-  assert abs(llr - llr_separate) < 1e-10
-
-
-
-def test_plda_comparisons():
-
-  t1 = PLDATrainer()
-  t2 = PLDATrainer()
-
-  #t2.rng = t1.rng
-
-  assert t1 == t2
-  assert (t1 != t2 ) is False
-  assert t1.is_similar_to(t2)
-
-  training_set = [numpy.array([[1,2,3,4]], numpy.float64), numpy.array([[3,4,3,4]], numpy.float64)]
-  m = PLDABase(4,1,1,1e-8)
-  t1.rng.seed(37)
-  t1.initialize(m, training_set)
-  t1.e_step(m, training_set)
-  t1.m_step(m, training_set)
-  assert (t1 == t2 ) is False
-  assert t1 != t2
-  assert (t1.is_similar_to(t2) ) is False
-  t2.rng.seed(37)
-  t2.initialize(m, training_set)
-  t2.e_step(m, training_set)
-  t2.m_step(m, training_set)
-  assert t1 == t2
-  assert (t1 != t2 ) is False
-  assert t1.is_similar_to(t2)
-  t2.rng.seed(77)
-  t2.initialize(m, training_set)
-  t2.e_step(m, training_set)
-  t2.m_step(m, training_set)
-  assert (t1 == t2 ) is False
-  assert t1 != t2
-  assert (t1.is_similar_to(t2) ) is False
-
-  
diff --git a/bob/learn/misc/test_ztnorm.py b/bob/learn/misc/test_ztnorm.py
deleted file mode 100644
index ee74a44..0000000
--- a/bob/learn/misc/test_ztnorm.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-# Francois Moulin <Francois.Moulin@idiap.ch>
-# Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
-# Tue Jul 19 15:33:20 2011 +0200
-#
-# Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
-
-"""Tests on the ZTNorm function
-"""
-
-import numpy
-
-from bob.io.base.test_utils import datafile
-import bob.io.base
-
-#from . import znorm, tnorm, ztnorm
-import bob.learn.misc
-
-def sameValue(vect_A, vect_B):
-  sameMatrix = numpy.zeros((vect_A.shape[0], vect_B.shape[0]), 'bool')
-
-  for j in range(vect_A.shape[0]):
-    for i in range(vect_B.shape[0]):
-      sameMatrix[j, i] = (vect_A[j] == vect_B[i])
-
-  return sameMatrix
-
-def tnorm(A, C):
-  Cmean = numpy.mean(C, axis=0)
-  if C.shape[1] > 1:
-    Cstd = numpy.sqrt(numpy.sum((C - numpy.tile(Cmean.reshape(1,C.shape[1]), (C.shape[0],1))) ** 2, axis=0) / (C.shape[0]-1))
-  else:
-    Cstd = numpy.ones(shape=(C.shape[1],), dtype=numpy.float64)
-  return (A - numpy.tile(Cmean.reshape(1,C.shape[1]), (A.shape[0],1))) / numpy.tile(Cstd.reshape(1,C.shape[1]), (A.shape[0],1))
-
-def znorm(A, B):
-  Bmean = numpy.mean(B, axis=1)
-  if B.shape[1] > 1:
-    Bstd = numpy.sqrt(numpy.sum((B - numpy.tile(Bmean.reshape(B.shape[0],1), (1,B.shape[1]))) ** 2, axis=1) / (B.shape[1]-1))
-  else:
-    Bstd = numpy.ones(shape=(B.shape[0],), dtype=numpy.float64)
-
-  return (A - numpy.tile(Bmean.reshape(B.shape[0],1), (1,A.shape[1]))) / numpy.tile(Bstd.reshape(B.shape[0],1), (1,A.shape[1]))
-
-
-def test_ztnorm_simple():
-  # 3x5
-  my_A = numpy.array([[1, 2, 3, 4, 5],
-                      [6, 7, 8, 9, 8],
-                      [7, 6, 5, 4, 3]],'float64')
-  # 3x4
-  my_B = numpy.array([[5, 4, 7, 8],[9, 8, 7, 4],[5, 6, 3, 2]],'float64')
-  # 2x5
-  my_C = numpy.array([[5, 4, 3, 2, 1],[2, 1, 2, 3, 4]],'float64')
-  # 2x4
-  my_D = numpy.array([[8, 6, 4, 2],[0, 2, 4, 6]],'float64')
-
-  # 4x1
-  znorm_id = numpy.array([1, 2, 3, 4],'uint32')
-  # 2x1
-  tnorm_id = numpy.array([1, 5],'uint32')
-  
-  scores = bob.learn.misc.ztnorm(my_A, my_B, my_C, my_D,
-      sameValue(tnorm_id, znorm_id))
-
-  ref_scores = numpy.array([[-4.45473107e+00, -3.29289322e+00, -1.50519101e+01, -8.42086557e-01, 6.46544511e-03], [-8.27619927e-01,  7.07106781e-01,  1.13757710e+01,  2.01641412e+00, 7.63765080e-01], [ 2.52913570e+00,  2.70710678e+00,  1.24400233e+01,  7.07106781e-01, 6.46544511e-03]], 'float64')
-
-  assert (abs(scores - ref_scores) < 1e-7).all()
-
-def test_ztnorm_big():
-  my_A = bob.io.base.load(datafile("ztnorm_eval_eval.hdf5", __name__))
-  my_B = bob.io.base.load(datafile("ztnorm_znorm_eval.hdf5", __name__))
-  my_C = bob.io.base.load(datafile("ztnorm_eval_tnorm.hdf5", __name__))
-  my_D = bob.io.base.load(datafile("ztnorm_znorm_tnorm.hdf5", __name__))
-
-  # ZT-Norm
-  ref_scores = bob.io.base.load(datafile("ztnorm_result.hdf5", __name__))
-  scores = bob.learn.misc.ztnorm(my_A, my_B, my_C, my_D)
-  assert (abs(scores - ref_scores) < 1e-7).all()
-
-  # T-Norm
-  scores = tnorm(my_A, my_C)
-  scores_py = tnorm(my_A, my_C)
-  assert (abs(scores - scores_py) < 1e-7).all()
-
-  # Z-Norm
-  scores = znorm(my_A, my_B)
-  scores_py = znorm(my_A, my_B)
-  assert (abs(scores - scores_py) < 1e-7).all()
-
-def test_tnorm_simple():
-  # 3x5
-  my_A = numpy.array([[1, 2, 3, 4, 5],
-                      [6, 7, 8, 9, 8],
-                      [7, 6, 5, 4, 3]],'float64')
-  # 2x5
-  my_C = numpy.array([[5, 4, 3, 2, 1],[2, 1, 2, 3, 4]],'float64')
-
-  zC = tnorm(my_A, my_C)
-  zC_py = tnorm(my_A, my_C)
-  assert (abs(zC - zC_py) < 1e-7).all()
-
-  empty = numpy.zeros(shape=(0,0), dtype=numpy.float64)
-  zC = bob.learn.misc.ztnorm(my_A, empty, my_C, empty)
-  assert (abs(zC - zC_py) < 1e-7).all()
-
-def test_znorm_simple():
-  # 3x5
-  my_A = numpy.array([[1, 2, 3, 4, 5],
-                      [6, 7, 8, 9, 8],
-                      [7, 6, 5, 4, 3]], numpy.float64)
-  # 3x4
-  my_B = numpy.array([[5, 4, 7, 8],[9, 8, 7, 4],[5, 6, 3, 2]], numpy.float64)
-
-  zA = znorm(my_A, my_B)
-  zA_py = znorm(my_A, my_B)
-  assert (abs(zA - zA_py) < 1e-7).all()
-
-  empty = numpy.zeros(shape=(0,0), dtype=numpy.float64)
-  zA = bob.learn.misc.ztnorm(my_A, my_B, empty, empty)
-  assert (abs(zA - zA_py) < 1e-7).all()
diff --git a/bob/learn/misc/version.cpp b/bob/learn/misc/version.cpp
deleted file mode 100644
index d3c36a9..0000000
--- a/bob/learn/misc/version.cpp
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- * @author Laurent El Shafey <Laurent.El-Shafey@idiap.ch>
- * @date Mon Apr 14 20:43:48 CEST 2014
- *
- * @brief Binds configuration information available from bob
- */
-
-#ifdef NO_IMPORT_ARRAY
-#undef NO_IMPORT_ARRAY
-#endif
-#include <bob.blitz/capi.h>
-#include <bob.blitz/cleanup.h>
-
-#include <bob.core/config.h>
-#include <bob.io.base/config.h>
-#include <bob.sp/config.h>
-#include <bob.math/config.h>
-#include <bob.learn.activation/config.h>
-#include <bob.learn.linear/config.h>
-// TODO: add other dependencies
-
-#include <string>
-#include <cstdlib>
-#include <blitz/blitz.h>
-#include <boost/preprocessor/stringize.hpp>
-#include <boost/version.hpp>
-#include <boost/format.hpp>
-
-
-static int dict_set(PyObject* d, const char* key, const char* value) {
-  PyObject* v = Py_BuildValue("s", value);
-  if (!v) return 0;
-  int retval = PyDict_SetItemString(d, key, v);
-  Py_DECREF(v);
-  if (retval == 0) return 1; //all good
-  return 0; //a problem occurred
-}
-
-static int dict_steal(PyObject* d, const char* key, PyObject* value) {
-  if (!value) return 0;
-  int retval = PyDict_SetItemString(d, key, value);
-  Py_DECREF(value);
-  if (retval == 0) return 1; //all good
-  return 0; //a problem occurred
-}
-
-/**
- * Describes the version of Boost libraries installed
- */
-static PyObject* boost_version() {
-  boost::format f("%d.%d.%d");
-  f % (BOOST_VERSION / 100000);
-  f % (BOOST_VERSION / 100 % 1000);
-  f % (BOOST_VERSION % 100);
-  return Py_BuildValue("s", f.str().c_str());
-}
-
-/**
- * Describes the compiler version
- */
-static PyObject* compiler_version() {
-# if defined(__GNUC__) && !defined(__llvm__)
-  boost::format f("%s.%s.%s");
-  f % BOOST_PP_STRINGIZE(__GNUC__);
-  f % BOOST_PP_STRINGIZE(__GNUC_MINOR__);
-  f % BOOST_PP_STRINGIZE(__GNUC_PATCHLEVEL__);
-  return Py_BuildValue("ss", "gcc", f.str().c_str());
-# elif defined(__llvm__) && !defined(__clang__)
-  return Py_BuildValue("ss", "llvm-gcc", __VERSION__);
-# elif defined(__clang__)
-  return Py_BuildValue("ss", "clang", __clang_version__);
-# else
-  return Py_BuildValue("s", "unsupported");
-# endif
-}
-
-/**
- * Python version with which we compiled the extensions
- */
-static PyObject* python_version() {
-  boost::format f("%s.%s.%s");
-  f % BOOST_PP_STRINGIZE(PY_MAJOR_VERSION);
-  f % BOOST_PP_STRINGIZE(PY_MINOR_VERSION);
-  f % BOOST_PP_STRINGIZE(PY_MICRO_VERSION);
-  return Py_BuildValue("s", f.str().c_str());
-}
-
-/**
- * Numpy version
- */
-static PyObject* numpy_version() {
-  return Py_BuildValue("{ssss}", "abi", BOOST_PP_STRINGIZE(NPY_VERSION),
-      "api", BOOST_PP_STRINGIZE(NPY_API_VERSION));
-}
-
-/**
- * bob.blitz c/c++ api version
- */
-static PyObject* bob_blitz_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_BLITZ_API_VERSION));
-}
-
-/**
- * bob.core c/c++ api version
- */
-static PyObject* bob_core_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_CORE_API_VERSION));
-}
-
-/**
- * bob.io.base c/c++ api version
- */
-static PyObject* bob_io_base_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_IO_BASE_API_VERSION));
-}
-
-/**
- * bob.sp c/c++ api version
- */
-static PyObject* bob_sp_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_SP_API_VERSION));
-}
-
-/**
- * bob.math c/c++ api version
- */
-static PyObject* bob_math_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_MATH_API_VERSION));
-}
-
-/**
- * bob.learn.activation c/c++ api version
- */
-static PyObject* bob_learn_activation_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_LEARN_ACTIVATION_API_VERSION));
-}
-
-/**
- * bob.learn.linear c/c++ api version
- */
-static PyObject* bob_learn_linear_version() {
-  return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_LEARN_LINEAR_API_VERSION));
-}
-
-
-static PyObject* build_version_dictionary() {
-
-  PyObject* retval = PyDict_New();
-  if (!retval) return 0;
-  auto retval_ = make_safe(retval);
-
-  if (!dict_set(retval, "Blitz++", BZ_VERSION)) return 0;
-  if (!dict_steal(retval, "Boost", boost_version())) return 0;
-  if (!dict_steal(retval, "Compiler", compiler_version())) return 0;
-  if (!dict_steal(retval, "Python", python_version())) return 0;
-  if (!dict_steal(retval, "NumPy", numpy_version())) return 0;
-  if (!dict_steal(retval, "bob.blitz", bob_blitz_version())) return 0;
-  if (!dict_steal(retval, "bob.core", bob_core_version())) return 0;
-  if (!dict_steal(retval, "bob.io.base", bob_io_base_version())) return 0;
-  if (!dict_steal(retval, "bob.sp", bob_sp_version())) return 0;
-  if (!dict_steal(retval, "bob.math", bob_math_version())) return 0;
-  if (!dict_steal(retval, "bob.learn.activation", bob_learn_activation_version())) return 0;
-  if (!dict_steal(retval, "bob.learn.linear", bob_learn_linear_version())) return 0;
-  if (!dict_steal(retval, "Bob", bob_core_version())) return 0;
-
-  Py_INCREF(retval);
-  return retval;
-}
-
-static PyMethodDef module_methods[] = {
-    {0}  /* Sentinel */
-};
-
-PyDoc_STRVAR(module_docstr,
-"Information about software used to compile the C++ Bob API"
-);
-
-#if PY_VERSION_HEX >= 0x03000000
-static PyModuleDef module_definition = {
-  PyModuleDef_HEAD_INIT,
-  BOB_EXT_MODULE_NAME,
-  module_docstr,
-  -1,
-  module_methods,
-  0, 0, 0, 0
-};
-#endif
-
-static PyObject* create_module (void) {
-
-# if PY_VERSION_HEX >= 0x03000000
-  PyObject* m = PyModule_Create(&module_definition);
-# else
-  PyObject* m = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr);
-# endif
-  if (!m) return 0;
-  auto m_ = make_safe(m); ///< protects against early returns
-
-  /* register version numbers and constants */
-  if (PyModule_AddStringConstant(m, "module", BOB_EXT_MODULE_VERSION) < 0)
-    return 0;
-
-  PyObject* externals = build_version_dictionary();
-  if (!externals) return 0;
-  if (PyModule_AddObject(m, "externals", externals) < 0) return 0;
-
-  /* imports dependencies */
-  if (import_bob_blitz() < 0) {
-    PyErr_Print();
-    PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME);
-    return 0;
-  }
-
-  Py_INCREF(m);
-  return m;
-
-}
-
-PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) {
-# if PY_VERSION_HEX >= 0x03000000
-  return
-# endif
-    create_module();
-}
diff --git a/bob/learn/misc/ztnorm.cpp b/bob/learn/misc/ztnorm.cpp
deleted file mode 100644
index 9e2c6ea..0000000
--- a/bob/learn/misc/ztnorm.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * @author Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
- * @date Sat 31 Jan 02:46:48 2015
- *
- * @brief Python API for bob::learn::em
- *
- * Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
- */
-
-#include "main.h"
-
-/*** zt_norm ***/
-static auto zt_norm = bob::extension::FunctionDoc(
-  "ztnorm",
-  "",
-  0,
-  true
-)
-.add_prototype("rawscores_probes_vs_models,rawscores_zprobes_vs_models,rawscores_probes_vs_tmodels,rawscores_zprobes_vs_tmodels,mask_zprobes_vs_tmodels_istruetrial", "output")
-.add_parameter("rawscores_probes_vs_models", "array_like <float, 2D>", "")
-.add_parameter("rawscores_zprobes_vs_models", "array_like <float, 2D>", "")
-.add_parameter("rawscores_probes_vs_tmodels", "array_like <float, 2D>", "")
-.add_parameter("rawscores_zprobes_vs_tmodels", "array_like <float, 2D>", "")
-.add_parameter("mask_zprobes_vs_tmodels_istruetrial", "array_like <float, 2D>", "")
-.add_return("output","array_like <float, 2D>","");
-static PyObject* PyBobLearnMisc_ztNorm(PyObject*, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = zt_norm.kwlist(0);
-  
-  PyBlitzArrayObject *rawscores_probes_vs_models_o, *rawscores_zprobes_vs_models_o, *rawscores_probes_vs_tmodels_o, 
-  *rawscores_zprobes_vs_tmodels_o, *mask_zprobes_vs_tmodels_istruetrial_o;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&O&|O&", kwlist, &PyBlitzArray_Converter, &rawscores_probes_vs_models_o,
-                                                                       &PyBlitzArray_Converter, &rawscores_zprobes_vs_models_o,
-                                                                       &PyBlitzArray_Converter, &rawscores_probes_vs_tmodels_o,
-                                                                       &PyBlitzArray_Converter, &rawscores_zprobes_vs_tmodels_o,
-                                                                       &PyBlitzArray_Converter, &mask_zprobes_vs_tmodels_istruetrial_o)){
-    zt_norm.print_usage();
-    Py_RETURN_NONE;
-  }
-
-  // get the number of command line arguments
-  auto rawscores_probes_vs_models_          = make_safe(rawscores_probes_vs_models_o);
-  auto rawscores_zprobes_vs_models_         = make_safe(rawscores_zprobes_vs_models_o);
-  auto rawscores_probes_vs_tmodels_         = make_safe(rawscores_probes_vs_tmodels_o);
-  auto rawscores_zprobes_vs_tmodels_        = make_safe(rawscores_zprobes_vs_tmodels_o);
-  //auto mask_zprobes_vs_tmodels_istruetrial_ = make_safe(mask_zprobes_vs_tmodels_istruetrial_o);
-
-  blitz::Array<double,2>  rawscores_probes_vs_models = *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_models_o);
-  blitz::Array<double,2> normalized_scores = blitz::Array<double,2>(rawscores_probes_vs_models.extent(0), rawscores_probes_vs_models.extent(1));
-
-  int nargs = (args?PyTuple_Size(args):0) + (kwargs?PyDict_Size(kwargs):0);
-
-  if(nargs==4)
-    bob::learn::misc::ztNorm(*PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_models_o),
-                             *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_zprobes_vs_models_o),
-                             *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_tmodels_o),
-                             *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_zprobes_vs_tmodels_o),
-                             normalized_scores);
-  else
-    bob::learn::misc::ztNorm(*PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_models_o), 
-                             *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_zprobes_vs_models_o), 
-                             *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_tmodels_o), 
-                             *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_zprobes_vs_tmodels_o), 
-                             *PyBlitzArrayCxx_AsBlitz<bool,2>(mask_zprobes_vs_tmodels_istruetrial_o),
-                             normalized_scores);
-
-  return PyBlitzArrayCxx_AsConstNumpy(normalized_scores);
-}
-
-
-
-/*** t_norm ***/
-static auto t_norm = bob::extension::FunctionDoc(
-  "tnorm",
-  "",
-  0,
-  true
-)
-.add_prototype("rawscores_probes_vs_models,rawscores_probes_vs_tmodels", "output")
-.add_parameter("rawscores_probes_vs_models", "array_like <float, 2D>", "")
-.add_parameter("rawscores_probes_vs_tmodels", "array_like <float, 2D>", "")
-.add_return("output","array_like <float, 2D>","");
-static PyObject* PyBobLearnMisc_tNorm(PyObject*, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = zt_norm.kwlist(0);
-  
-  PyBlitzArrayObject *rawscores_probes_vs_models_o, *rawscores_probes_vs_tmodels_o;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &rawscores_probes_vs_models_o,
-                                                                       &PyBlitzArray_Converter, &rawscores_probes_vs_tmodels_o)){
-    zt_norm.print_usage();
-    Py_RETURN_NONE;
-  }
-  
-  auto rawscores_probes_vs_models_          = make_safe(rawscores_probes_vs_models_o);
-  auto rawscores_probes_vs_tmodels_         = make_safe(rawscores_probes_vs_tmodels_o);
-
-  blitz::Array<double,2>  rawscores_probes_vs_models = *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_models_o);
-  blitz::Array<double,2> normalized_scores = blitz::Array<double,2>(rawscores_probes_vs_models.extent(0), rawscores_probes_vs_models.extent(1));
-
-  bob::learn::misc::tNorm(*PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_models_o), 
-                           *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_tmodels_o),
-                           normalized_scores);
-
-  return PyBlitzArrayCxx_AsConstNumpy(normalized_scores);
-}
-
-
-/*** z_norm ***/
-static auto z_norm = bob::extension::FunctionDoc(
-  "znorm",
-  "",
-  0,
-  true
-)
-.add_prototype("rawscores_probes_vs_models,rawscores_zprobes_vs_models", "output")
-.add_parameter("rawscores_probes_vs_models", "array_like <float, 2D>", "")
-.add_parameter("rawscores_zprobes_vs_models", "array_like <float, 2D>", "")
-.add_return("output","array_like <float, 2D>","");
-static PyObject* PyBobLearnMisc_zNorm(PyObject*, PyObject* args, PyObject* kwargs) {
-
-  char** kwlist = zt_norm.kwlist(0);
-  
-  PyBlitzArrayObject *rawscores_probes_vs_models_o, *rawscores_zprobes_vs_models_o;
-
-  if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &rawscores_probes_vs_models_o,
-                                                                       &PyBlitzArray_Converter, &rawscores_zprobes_vs_models_o)){
-    zt_norm.print_usage();
-    Py_RETURN_NONE;
-  }
-  
-  auto rawscores_probes_vs_models_          = make_safe(rawscores_probes_vs_models_o);
-  auto rawscores_zprobes_vs_models_         = make_safe(rawscores_zprobes_vs_models_o);
-
-  blitz::Array<double,2> rawscores_probes_vs_models = *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_models_o);
-  blitz::Array<double,2> normalized_scores          = blitz::Array<double,2>(rawscores_probes_vs_models.extent(0), rawscores_probes_vs_models.extent(1));
-
-
-  bob::learn::misc::zNorm(*PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_probes_vs_models_o), 
-                           *PyBlitzArrayCxx_AsBlitz<double,2>(rawscores_zprobes_vs_models_o),
-                           normalized_scores);
-
-  return PyBlitzArrayCxx_AsConstNumpy(normalized_scores);
-}
-
diff --git a/buildout.cfg b/buildout.cfg
index f8fe5d9..be276cd 100644
--- a/buildout.cfg
+++ b/buildout.cfg
@@ -4,7 +4,7 @@
 
 [buildout]
 parts = scripts
-eggs = bob.learn.misc
+eggs = bob.learn.em
 extensions = bob.buildout
 ;             mr.developer
 
diff --git a/doc/conf.py b/doc/conf.py
index 1324990..0317ae8 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -58,12 +58,12 @@ source_suffix = '.rst'
 master_doc = 'index'
 
 # General information about the project.
-project = u'bob.learn.misc'
+project = u'bob.learn.em'
 import time
 copyright = u'%s, Idiap Research Institute' % time.strftime('%Y')
 
 # Grab the setup entry
-distribution = pkg_resources.require('bob.learn.misc')[0]
+distribution = pkg_resources.require('bob.learn.em')[0]
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
@@ -129,7 +129,7 @@ if sphinx.__version__ >= "1.0":
 #html_title = None
 
 # A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = 'bob_learn_misc'
+#html_short_title = 'bob_learn_em'
 
 # The name of an image file (relative to this directory) to place at the top
 # of the sidebar.
@@ -187,7 +187,7 @@ html_favicon = 'img/favicon.ico'
 #html_file_suffix = None
 
 # Output file base name for HTML help builder.
-htmlhelp_basename = 'bob_learn_misc_doc'
+htmlhelp_basename = 'bob_learn_em_doc'
 
 
 # -- Options for LaTeX output --------------------------------------------------
@@ -201,7 +201,7 @@ latex_font_size = '10pt'
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title, author, documentclass [howto/manual]).
 latex_documents = [
-  ('index', 'bob_learn_misc.tex', u'Bob Miscellaneous Machine Learning Tools',
+  ('index', 'bob_learn_em.tex', u'Bob Miscellaneous Machine Learning Tools',
    u'Biometrics Group, Idiap Research Institute', 'manual'),
 ]
 
@@ -241,7 +241,7 @@ rst_epilog = """
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
-    ('index', 'bob_learn_misc', u'Bob Miscellaneous Machine Learning Tools', [u'Idiap Research Institute'], 1)
+    ('index', 'bob_learn_em', u'Bob Miscellaneous Machine Learning Tools', [u'Idiap Research Institute'], 1)
 ]
 
 # Default processing flags for sphinx
diff --git a/doc/guide.rst b/doc/guide.rst
index 7010dd6..b549aff 100644
--- a/doc/guide.rst
+++ b/doc/guide.rst
@@ -9,7 +9,7 @@
    import numpy
    numpy.set_printoptions(precision=3, suppress=True)
 
-   import bob.learn.misc
+   import bob.learn.em
 
    import os
    import tempfile
@@ -38,12 +38,12 @@ K-means machines
 method which aims to partition a set of observations into :math:`k` clusters.
 The `training` procedure is described further below. Here, we explain only how
 to use the resulting machine. For the sake of example, we create a new
-:py:class:`bob.learn.misc.KMeansMachine` as follows:
+:py:class:`bob.learn.em.KMeansMachine` as follows:
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> machine = bob.learn.misc.KMeansMachine(2,3) # Two clusters with a feature dimensionality of 3
+   >>> machine = bob.learn.em.KMeansMachine(2,3) # Two clusters with a feature dimensionality of 3
    >>> machine.means = numpy.array([[1,0,0],[0,0,1]], 'float64') # Defines the two clusters
 
 Then, given some input data, it is possible to determine to which cluster the
@@ -60,7 +60,7 @@ data is the closest as well as the min distance.
 Gaussian machines
 =================
 
-The :py:class:`bob.learn.misc.Gaussian` represents a `multivariate diagonal
+The :py:class:`bob.learn.em.Gaussian` represents a `multivariate diagonal
 Gaussian (or normal) distribution
 <http://en.wikipedia.org/wiki/Multivariate_normal_distribution>`_. In this
 context, a *diagonal* Gaussian refers to the covariance matrix of the
@@ -68,13 +68,13 @@ distribution being diagonal. When the covariance matrix is diagonal, each
 variable in the distribution is independent of the others.
 
 Objects of this class are normally used as building blocks for more complex
-:py:class:`bob.learn.misc.GMMMachine` or GMM objects, but can also be used
+:py:class:`bob.learn.em.GMMMachine` or GMM objects, but can also be used
 individually. Here is how to create one multivariate diagonal Gaussian
 distribution:
 
 .. doctest::
 
-  >>> g = bob.learn.misc.Gaussian(2) #bi-variate diagonal normal distribution
+  >>> g = bob.learn.em.Gaussian(2) #bi-variate diagonal normal distribution
   >>> g.mean = numpy.array([0.3, 0.7], 'float64')
   >>> g.mean
   array([ 0.3,  0.7])
@@ -82,7 +82,7 @@ distribution:
   >>> g.variance
   array([ 0.2,  0.1])
 
-Once the :py:class:`bob.learn.misc.Gaussian` has been set, you can use it to
+Once the :py:class:`bob.learn.em.Gaussian` has been set, you can use it to
 estimate the log-likelihood of an input feature vector with a matching number
 of dimensions:
 
@@ -91,25 +91,25 @@ of dimensions:
   >>> log_likelihood = g(numpy.array([0.4, 0.4], 'float64'))
 
 As with other machines you can save and re-load machines of this type using
-:py:meth:`bob.learn.misc.Gaussian.save` and the class constructor
+:py:meth:`bob.learn.em.Gaussian.save` and the class constructor
 respectively.
 
 Gaussian mixture models
 =======================
 
-The :py:class:`bob.learn.misc.GMMMachine` represents a Gaussian `mixture model
+The :py:class:`bob.learn.em.GMMMachine` represents a Gaussian `mixture model
 <http://en.wikipedia.org/wiki/Mixture_model>`_ (GMM), which consists of a
-mixture of weighted :py:class:`bob.learn.misc.Gaussian`\s.
+mixture of weighted :py:class:`bob.learn.em.Gaussian`\s.
 
 .. doctest::
 
-  >>> gmm = bob.learn.misc.GMMMachine(2,3) # Mixture of two diagonal Gaussian of dimension 3
+  >>> gmm = bob.learn.em.GMMMachine(2,3) # Mixture of two diagonal Gaussian of dimension 3
 
 By default, the diagonal Gaussian distributions of the GMM are initialized with
 zero mean and unit variance, and the weights are identical. This can be updated
-using the :py:attr:`bob.learn.misc.GMMMachine.means`,
-:py:attr:`bob.learn.misc.GMMMachine.variances` or
-:py:attr:`bob.learn.misc.GMMMachine.weights`.
+using the :py:attr:`bob.learn.em.GMMMachine.means`,
+:py:attr:`bob.learn.em.GMMMachine.variances` or
+:py:attr:`bob.learn.em.GMMMachine.weights`.
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
@@ -121,7 +121,7 @@ using the :py:attr:`bob.learn.misc.GMMMachine.means`,
   array([[ 1.,  6.,  2.],
        [ 4.,  3.,  2.]])
 
-Once the :py:class:`bob.learn.misc.GMMMachine` has been set, you can use it to
+Once the :py:class:`bob.learn.em.GMMMachine` has been set, you can use it to
 estimate the log-likelihood of an input feature vector with a matching number
 of dimensions:
 
@@ -130,12 +130,12 @@ of dimensions:
   >>> log_likelihood = gmm(numpy.array([5.1, 4.7, -4.9], 'float64'))
 
 As with other machines you can save and re-load machines of this type using
-:py:meth:`bob.learn.misc.GMMMachine.save` and the class constructor respectively.
+:py:meth:`bob.learn.em.GMMMachine.save` and the class constructor respectively.
 
 Gaussian mixture models Statistics
 ==================================
 
-The :py:class:`bob.learn.misc.GMMStats` is a container for the sufficient
+The :py:class:`bob.learn.em.GMMStats` is a container for the sufficient
 statistics of a GMM distribution.
 
 Given a GMM, the sufficient statistics of a sample can be computed as
@@ -144,7 +144,7 @@ follows:
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> gs = bob.learn.misc.GMMStats(2,3)
+  >>> gs = bob.learn.em.GMMStats(2,3)
   >>> sample = numpy.array([0.5, 4.5, 1.5])
   >>> gmm.acc_statistics(sample, gs)
   >>> print(gs) # doctest: +SKIP
@@ -155,7 +155,7 @@ considering the following attributes.
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> gs = bob.learn.misc.GMMStats(2,3)
+  >>> gs = bob.learn.em.GMMStats(2,3)
   >>> log_likelihood = -3. # log-likelihood of the accumulated samples
   >>> T = 1 # Number of samples used to accumulate statistics
   >>> n = numpy.array([0.4, 0.6], 'float64') # zeroth order stats
@@ -176,19 +176,19 @@ a within-class subspace :math:`U`, a between-class subspace :math:`V`, and a
 subspace for the residuals :math:`D` to capture and suppress a significant
 portion of between-class variation.
 
-An instance of :py:class:`bob.learn.misc.JFABase` carries information about
+An instance of :py:class:`bob.learn.em.JFABase` carries information about
 the matrices :math:`U`, :math:`V` and :math:`D`, which can be shared between
 several classes.  In contrast, after the enrolment phase, an instance of
-:py:class:`bob.learn.misc.JFAMachine` carries class-specific information about
+:py:class:`bob.learn.em.JFAMachine` carries class-specific information about
 the latent variables :math:`y` and :math:`z`.
 
-An instance of :py:class:`bob.learn.misc.JFABase` can be initialized as
+An instance of :py:class:`bob.learn.em.JFABase` can be initialized as
 follows, given an existing GMM:
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> jfa_base = bob.learn.misc.JFABase(gmm,2,2) # dimensions of U and V are both equal to 2
+  >>> jfa_base = bob.learn.em.JFABase(gmm,2,2) # dimensions of U and V are both equal to 2
   >>> U = numpy.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]], 'float64')
   >>> V = numpy.array([[6, 5], [4, 3], [2, 1], [1, 2], [3, 4], [5, 6]], 'float64')
   >>> d = numpy.array([0, 1, 0, 1, 0, 1], 'float64')
@@ -196,33 +196,33 @@ follows, given an existing GMM:
   >>> jfa_base.v = V
   >>> jfa_base.d = d
 
-Next, this :py:class:`bob.learn.misc.JFABase` can be shared by several
-instances of :py:class:`bob.learn.misc.JFAMachine`, the initialization being
+Next, this :py:class:`bob.learn.em.JFABase` can be shared by several
+instances of :py:class:`bob.learn.em.JFAMachine`, the initialization being
 as follows:
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> m = bob.learn.misc.JFAMachine(jfa_base)
+  >>> m = bob.learn.em.JFAMachine(jfa_base)
   >>> m.y = numpy.array([1,2], 'float64')
   >>> m.z = numpy.array([3,4,1,2,0,1], 'float64')
 
 
-Once the :py:class:`bob.learn.misc.JFAMachine` has been configured for a
+Once the :py:class:`bob.learn.em.JFAMachine` has been configured for a
 specific class, the log-likelihood (score) that an input sample belongs to the
 enrolled class, can be estimated, by first computing the GMM sufficient
 statistics of this input sample, and then calling the
-:py:meth:`bob.learn.misc.JFAMachine.forward` on the sufficient statistics.
+:py:meth:`bob.learn.em.JFAMachine.forward` on the sufficient statistics.
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> gs = bob.learn.misc.GMMStats(2,3)
+  >>> gs = bob.learn.em.GMMStats(2,3)
   >>> gmm.acc_statistics(sample, gs)
   >>> score = m.forward(gs)
 
 As with other machines you can save and re-load machines of this type using
-:py:meth:`bob.learn.misc.JFAMachine.save` and the class constructor
+:py:meth:`bob.learn.em.JFAMachine.save` and the class constructor
 respectively.
 
 
@@ -236,47 +236,47 @@ the Gaussian mixture modelling approach. It utilises a within-class subspace
 significant portion of between-class variation. The main difference compared to
 JFA is the absence of the between-class subspace :math:`V`.
 
-Similarly to JFA, an instance of :py:class:`bob.learn.misc.JFABase` carries
+Similarly to JFA, an instance of :py:class:`bob.learn.em.JFABase` carries
 information about the matrices :math:`U` and :math:`D`, which can be shared
 between several classes, whereas an instance of
-:py:class:`bob.learn.misc.JFAMachine` carries class-specific information about
+:py:class:`bob.learn.em.JFAMachine` carries class-specific information about
 the latent variable :math:`z`.
 
-An instance of :py:class:`bob.learn.misc.ISVBase` can be initialized as
+An instance of :py:class:`bob.learn.em.ISVBase` can be initialized as
 follows, given an existing GMM:
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> isv_base = bob.learn.misc.ISVBase(gmm,2) # dimension of U is equal to 2
+  >>> isv_base = bob.learn.em.ISVBase(gmm,2) # dimension of U is equal to 2
   >>> isv_base.u = U
   >>> isv_base.d = d
 
-Next, this :py:class:`bob.learn.misc.ISVBase` can be shared by several
-instances of :py:class:`bob.learn.misc.ISVMachine`, the initialization being
+Next, this :py:class:`bob.learn.em.ISVBase` can be shared by several
+instances of :py:class:`bob.learn.em.ISVMachine`, the initialization being
 as follows:
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> m = bob.learn.misc.ISVMachine(isv_base)
+  >>> m = bob.learn.em.ISVMachine(isv_base)
   >>> m.z = numpy.array([3,4,1,2,0,1], 'float64')
 
-Once the :py:class:`bob.learn.misc.ISVMachine` has been configured for a
+Once the :py:class:`bob.learn.em.ISVMachine` has been configured for a
 specific class, the log-likelihood (score) that an input sample belongs to the
 enrolled class, can be estimated, by first computing the GMM sufficient
 statistics of this input sample, and then calling the
-:py:meth:`bob.learn.misc.ISVMachine.forward` on the sufficient statistics.
+:py:meth:`bob.learn.em.ISVMachine.forward` on the sufficient statistics.
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> gs = bob.learn.misc.GMMStats(2,3)
+  >>> gs = bob.learn.em.GMMStats(2,3)
   >>> gmm.acc_statistics(sample, gs)
   >>> score = m.forward(gs)
 
 As with other machines you can save and re-load machines of this type using
-:py:meth:`bob.learn.misc.ISVMachine.save` and the class constructor
+:py:meth:`bob.learn.em.ISVMachine.save` and the class constructor
 respectively.
 
 
@@ -289,30 +289,30 @@ dimensionality called ``i-vectors``. The model consists of a subspace :math:`T`
 and a residual diagonal covariance matrix :math:`\Sigma`, that are then used to
 extract i-vectors, and is built upon the GMM approach.
 
-An instance of the class :py:class:`bob.learn.misc.IVectorMachine` carries
+An instance of the class :py:class:`bob.learn.em.IVectorMachine` carries
 information about these two matrices. This can be initialized as follows:
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> m = bob.learn.misc.IVectorMachine(gmm, 2)
+  >>> m = bob.learn.em.IVectorMachine(gmm, 2)
   >>> m.t = numpy.array([[1.,2],[4,1],[0,3],[5,8],[7,10],[11,1]])
   >>> m.sigma = numpy.array([1.,2.,1.,3.,2.,4.])
 
 
-Once the :py:class:`bob.learn.misc.IVectorMachine` has been set, the
+Once the :py:class:`bob.learn.em.IVectorMachine` has been set, the
 extraction of an i-vector :math:`w_{ij}` can be done in two steps, by first
 extracting the GMM sufficient statistics, and then estimating the i-vector:
 
 .. doctest::
   :options: +NORMALIZE_WHITESPACE
 
-  >>> gs = bob.learn.misc.GMMStats(2,3)
+  >>> gs = bob.learn.em.GMMStats(2,3)
   >>> gmm.acc_statistics(sample, gs)
   >>> w_ij = m.forward(gs)
 
 As with other machines you can save and re-load machines of this type using
-:py:meth:`bob.learn.misc.IVectorMachine.save` and the class constructor
+:py:meth:`bob.learn.em.IVectorMachine.save` and the class constructor
 respectively.
 
 
@@ -332,22 +332,22 @@ diagonal covariance matrix :math:`\Sigma`, the model assumes that a sample
 
 Information about a PLDA model (:math:`\mu`, :math:`F`, :math:`G` and
 :math:`\Sigma`) are carried out by an instance of the class
-:py:class:`bob.learn.misc.PLDABase`.
+:py:class:`bob.learn.em.PLDABase`.
 
 .. doctest::
 
    >>> ### This creates a PLDABase container for input feature of dimensionality 3,
    >>> ### and with subspaces F and G of rank 1 and 2 respectively.
-   >>> pldabase = bob.learn.misc.PLDABase(3,1,2)
+   >>> pldabase = bob.learn.em.PLDABase(3,1,2)
 
 Class-specific information (usually from enrollment samples) are contained in
-an instance of :py:class:`bob.learn.misc.PLDAMachine`, that must be attached
-to a given :py:class:`bob.learn.misc.PLDABase`. Once done, log-likelihood
+an instance of :py:class:`bob.learn.em.PLDAMachine`, that must be attached
+to a given :py:class:`bob.learn.em.PLDABase`. Once done, log-likelihood
 computations can be performed.
 
 .. doctest::
 
-   >>> plda = bob.learn.misc.PLDAMachine(pldabase)
+   >>> plda = bob.learn.em.PLDAMachine(pldabase)
    >>> samples = numpy.array([[3.5,-3.4,102], [4.5,-4.3,56]], dtype=numpy.float64)
    >>> loglike = plda.compute_log_likelihood(samples)
 
@@ -373,13 +373,13 @@ class, the training data is passed in a 2D :py:class:`numpy.ndarray` container.
    >>> data = numpy.array([[3,-3,100], [4,-4,98], [3.5,-3.5,99], [-7,7,-100], [-5,5,-101]], dtype='float64')
 
 The training procedure will learn the `means` for the
-:py:class:`bob.learn.misc.KMeansMachine`. The number :math:`k` of `means` is given
+:py:class:`bob.learn.em.KMeansMachine`. The number :math:`k` of `means` is given
 when creating the `machine`, as well as the dimensionality of the features.
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> kmeans = bob.learn.misc.KMeansMachine(2, 3) # Create a machine with k=2 clusters with a dimensionality equal to 3
+   >>> kmeans = bob.learn.em.KMeansMachine(2, 3) # Create a machine with k=2 clusters with a dimensionality equal to 3
 
 Then training procedure for `k-means` is an **Expectation-Maximization**-based
 [8]_ algorithm. There are several options that can be set such as the maximum
@@ -390,7 +390,7 @@ be called.
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> kmeansTrainer = bob.learn.misc.KMeansTrainer()
+   >>> kmeansTrainer = bob.learn.em.KMeansTrainer()
    >>> kmeansTrainer.max_iterations = 200
    >>> kmeansTrainer.convergence_threshold = 1e-5
 
@@ -407,18 +407,18 @@ A Gaussian **mixture model** (GMM) [9]_ is a common probabilistic model. In
 order to train the parameters of such a model it is common to use a
 **maximum-likelihood** (ML) approach [10]_. To do this we use an
 **Expectation-Maximization** (EM) algorithm [8]_. Let's first start by creating
-a :py:class:`bob.learn.misc.GMMMachine`. By default, all of the Gaussian's have
+a :py:class:`bob.learn.em.GMMMachine`. By default, all of the Gaussian's have
 zero-mean and unit variance, and all the weights are equal. As a starting
 point, we could set the mean to the one obtained with **k-means** [7]_.
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> gmm = bob.learn.misc.GMMMachine(2,3) # Create a machine with 2 Gaussian and feature dimensionality 3
+   >>> gmm = bob.learn.em.GMMMachine(2,3) # Create a machine with 2 Gaussian and feature dimensionality 3
    >>> gmm.means = kmeans.means # Set the means to the one obtained with k-means
 
 The |project| class to learn the parameters of a GMM [9]_ using ML [10]_ is
-:py:class:`bob.learn.misc.ML_GMMTrainer`. It uses an **EM**-based [8]_ algorithm
+:py:class:`bob.learn.em.ML_GMMTrainer`. It uses an **EM**-based [8]_ algorithm
 and requires the user to specify which parameters of the GMM are updated at
 each iteration (means, variances and/or weights). In addition, and as for
 **k-means** [7]_, it has parameters such as the maximum number of iterations
@@ -427,7 +427,7 @@ and the criterion used to determine if the parameters have converged.
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> trainer = bob.learn.misc.ML_GMMTrainer(True, True, True) # update means/variances/weights at each iteration
+   >>> trainer = bob.learn.em.ML_GMMTrainer(True, True, True) # update means/variances/weights at each iteration
    >>> trainer.convergence_threshold = 1e-5
    >>> trainer.max_iterations = 200
    >>> trainer.train(gmm, data)
@@ -459,7 +459,7 @@ The training data used to compute the MAP estimate [11]_ is again stored in a
    >>> dataMAP = numpy.array([[7,-7,102], [6,-6,103], [-3.5,3.5,-97]], dtype='float64')
 
 The |project| class used to perform MAP adaptation training [11]_ is
-:py:class:`bob.learn.misc.MAP_GMMTrainer`. As with the ML estimate [10]_, it uses
+:py:class:`bob.learn.em.MAP_GMMTrainer`. As with the ML estimate [10]_, it uses
 an **EM**-based [8]_ algorithm and requires the user to specify which parts of
 the GMM are adapted at each iteration (means, variances and/or weights). In
 addition, it also has parameters such as the maximum number of iterations and
@@ -472,12 +472,12 @@ set.
    :options: +NORMALIZE_WHITESPACE
 
    >>> relevance_factor = 4.
-   >>> trainer = bob.learn.misc.MAP_GMMTrainer(relevance_factor, True, False, False) # mean adaptation only
+   >>> trainer = bob.learn.em.MAP_GMMTrainer(relevance_factor, True, False, False) # mean adaptation only
    >>> trainer.convergence_threshold = 1e-5
    >>> trainer.max_iterations = 200
    >>> trainer.set_prior_gmm(gmm)
    True
-   >>> gmmAdapted = bob.learn.misc.GMMMachine(2,3) # Create a new machine for the MAP estimate
+   >>> gmmAdapted = bob.learn.em.GMMMachine(2,3) # Create a new machine for the MAP estimate
    >>> trainer.train(gmmAdapted, dataMAP)
    >>> print(gmmAdapted) # doctest: +SKIP
 
@@ -501,40 +501,40 @@ done, we get a training set of GMM statistics:
    >>> N2 = numpy.array([0.1069, 0.9397, 0.6164, 0.3545]).reshape((2,2))
    >>> N=[N1, N2]
 
-   >>> gs11 = bob.learn.misc.GMMStats(2,3)
+   >>> gs11 = bob.learn.em.GMMStats(2,3)
    >>> gs11.n = N1[:,0]
    >>> gs11.sum_px = F1[:,0].reshape(2,3)
-   >>> gs12 = bob.learn.misc.GMMStats(2,3)
+   >>> gs12 = bob.learn.em.GMMStats(2,3)
    >>> gs12.n = N1[:,1]
    >>> gs12.sum_px = F1[:,1].reshape(2,3)
 
-   >>> gs21 = bob.learn.misc.GMMStats(2,3)
+   >>> gs21 = bob.learn.em.GMMStats(2,3)
    >>> gs21.n = N2[:,0]
    >>> gs21.sum_px = F2[:,0].reshape(2,3)
-   >>> gs22 = bob.learn.misc.GMMStats(2,3)
+   >>> gs22 = bob.learn.em.GMMStats(2,3)
    >>> gs22.n = N2[:,1]
    >>> gs22.sum_px = F2[:,1].reshape(2,3)
 
    >>> TRAINING_STATS = [[gs11, gs12], [gs21, gs22]]
 
-In the following, we will allocate a :py:class:`bob.learn.misc.JFABase` machine,
+In the following, we will allocate a :py:class:`bob.learn.em.JFABase` machine,
 that will then be trained.
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-    >>> jfa_base = bob.learn.misc.JFABase(gmm, 2, 2) # the dimensions of U and V are both equal to 2
+    >>> jfa_base = bob.learn.em.JFABase(gmm, 2, 2) # the dimensions of U and V are both equal to 2
 
 Next, we initialize a trainer, which is an instance of
-:py:class:`bob.learn.misc.JFATrainer`, as follows:
+:py:class:`bob.learn.em.JFATrainer`, as follows:
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> jfa_trainer = bob.learn.misc.JFATrainer(10) # 10 is the number of iterations
+   >>> jfa_trainer = bob.learn.em.JFATrainer(10) # 10 is the number of iterations
 
 The training process is started by calling the
-:py:meth:`bob.learn.misc.JFATrainer.train`.
+:py:meth:`bob.learn.em.JFATrainer.train`.
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
@@ -552,10 +552,10 @@ the following.
 
    >>> Ne = numpy.array([0.1579, 0.9245, 0.1323, 0.2458]).reshape((2,2))
    >>> Fe = numpy.array([0.1579, 0.1925, 0.3242, 0.1234, 0.2354, 0.2734, 0.2514, 0.5874, 0.3345, 0.2463, 0.4789, 0.5236]).reshape((6,2))
-   >>> gse1 = bob.learn.misc.GMMStats(2,3)
+   >>> gse1 = bob.learn.em.GMMStats(2,3)
    >>> gse1.n = Ne[:,0]
    >>> gse1.sum_px = Fe[:,0].reshape(2,3)
-   >>> gse2 = bob.learn.misc.GMMStats(2,3)
+   >>> gse2 = bob.learn.em.GMMStats(2,3)
    >>> gse2.n = Ne[:,1]
    >>> gse2.sum_px = Fe[:,1].reshape(2,3)
    >>> gse = [gse1, gse2]
@@ -566,7 +566,7 @@ the class-specific latent variables :math:`y` and :math:`z`:
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> m = bob.learn.misc.JFAMachine(jfa_base)
+   >>> m = bob.learn.em.JFAMachine(jfa_base)
    >>> jfa_trainer.enrol(m, gse, 5) # where 5 is the number of enrollment iterations
 
 More information about the training process can be found in [12]_ and [13]_.
@@ -579,23 +579,23 @@ The training of the subspace :math:`U` and :math:`D` of an Inter-Session
 Variability model, is performed in two steps. As for JFA, GMM sufficient
 statistics of the training samples should be computed against the UBM GMM. Once
 done, we get a training set of GMM statistics.  Next, we will allocate an
-:py:class:`bob.learn.misc.ISVBase` machine, that will then be trained.
+:py:class:`bob.learn.em.ISVBase` machine, that will then be trained.
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-    >>> isv_base = bob.learn.misc.ISVBase(gmm, 2) # the dimensions of U is equal to 2
+    >>> isv_base = bob.learn.em.ISVBase(gmm, 2) # the dimensions of U is equal to 2
 
 Next, we initialize a trainer, which is an instance of
-:py:class:`bob.learn.misc.ISVTrainer`, as follows:
+:py:class:`bob.learn.em.ISVTrainer`, as follows:
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> isv_trainer = bob.learn.misc.ISVTrainer(10, 4.) # 10 is the number of iterations, and 4 is the relevance factor
+   >>> isv_trainer = bob.learn.em.ISVTrainer(10, 4.) # 10 is the number of iterations, and 4 is the relevance factor
 
 The training process is started by calling the
-:py:meth:`bob.learn.misc.ISVTrainer.train`.
+:py:meth:`bob.learn.em.ISVTrainer.train`.
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
@@ -611,7 +611,7 @@ estimate the class-specific latent variable :math:`z`:
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> m = bob.learn.misc.ISVMachine(isv_base)
+   >>> m = bob.learn.em.ISVMachine(isv_base)
    >>> isv_trainer.enrol(m, gse, 5) # where 5 is the number of iterations
 
 More information about the training process can be found in [14]_ and [13]_.
@@ -624,27 +624,27 @@ The training of the subspace :math:`T` and :math:`\Sigma` of a Total
 Variability model, is performed in two steps. As for JFA and ISV, GMM
 sufficient statistics of the training samples should be computed against the
 UBM GMM. Once done, we get a training set of GMM statistics.  Next, we will
-allocate an instance of :py:class:`bob.learn.misc.IVectorMachine`, that will
+allocate an instance of :py:class:`bob.learn.em.IVectorMachine`, that will
 then be trained.
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-    >>> m = bob.learn.misc.IVectorMachine(gmm, 2)
+    >>> m = bob.learn.em.IVectorMachine(gmm, 2)
     >>> m.variance_threshold = 1e-5
 
 
 Next, we initialize a trainer, which is an instance of
-:py:class:`bob.learn.misc.IVectorTrainer`, as follows:
+:py:class:`bob.learn.em.IVectorTrainer`, as follows:
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
 
-   >>> ivec_trainer = bob.learn.misc.IVectorTrainer(update_sigma=True, max_iterations=10)
+   >>> ivec_trainer = bob.learn.em.IVectorTrainer(update_sigma=True, max_iterations=10)
    >>> TRAINING_STATS_flatten = [gs11, gs12, gs21, gs22]
 
 The training process is started by calling the
-:py:meth:`bob.learn.misc.IVectorTrainer.train`.
+:py:meth:`bob.learn.em.IVectorTrainer.train`.
 
 .. doctest::
    :options: +NORMALIZE_WHITESPACE
@@ -671,7 +671,7 @@ diagonal covariance matrix :math:`\Sigma`, the model assumes that a sample
 An Expectaction-Maximization algorithm can be used to learn the parameters of
 this model :math:`\mu`, :math:`F` :math:`G` and :math:`\Sigma`. As these
 parameters can be shared between classes, there is a specific container class
-for this purpose, which is :py:class:`bob.learn.misc.PLDABase`. The process is
+for this purpose, which is :py:class:`bob.learn.em.PLDABase`. The process is
 described in detail in [17]_.
 
 Let us consider a training set of two classes, each with 3 samples of
@@ -685,43 +685,43 @@ dimensionality 3.
    >>> data = [data1,data2]
 
 Learning a PLDA model can be performed by instantiating the class
-:py:class:`bob.learn.misc.PLDATrainer`, and calling the
-:py:meth:`bob.learn.misc.PLDATrainer.train()` method.
+:py:class:`bob.learn.em.PLDATrainer`, and calling the
+:py:meth:`bob.learn.em.PLDATrainer.train()` method.
 
 .. doctest::
 
    >>> ### This creates a PLDABase container for input feature of dimensionality 3,
    >>> ### and with subspaces F and G of rank 1 and 2 respectively.
-   >>> pldabase = bob.learn.misc.PLDABase(3,1,2)
+   >>> pldabase = bob.learn.em.PLDABase(3,1,2)
 
-   >>> trainer = bob.learn.misc.PLDATrainer()
+   >>> trainer = bob.learn.em.PLDATrainer()
    >>> trainer.train(pldabase, data)
 
 Once trained, this PLDA model can be used to compute the log-likelihood of a
 set of samples given some hypothesis. For this purpose, a
-:py:class:`bob.learn.misc.PLDAMachine` should be instantiated. Then, the
+:py:class:`bob.learn.em.PLDAMachine` should be instantiated. Then, the
 log-likelihood that a set of samples share the same latent identity variable
 :math:`h_{i}` (i.e. the samples are coming from the same identity/class) is
 obtained by calling the
-:py:meth:`bob.learn.misc.PLDAMachine.compute_log_likelihood()` method.
+:py:meth:`bob.learn.em.PLDAMachine.compute_log_likelihood()` method.
 
 .. doctest::
 
-   >>> plda = bob.learn.misc.PLDAMachine(pldabase)
+   >>> plda = bob.learn.em.PLDAMachine(pldabase)
    >>> samples = numpy.array([[3.5,-3.4,102], [4.5,-4.3,56]], dtype=numpy.float64)
    >>> loglike = plda.compute_log_likelihood(samples)
 
 If separate models for different classes need to be enrolled, each of them with
 a set of enrolment samples, then, several instances of
-:py:class:`bob.learn.misc.PLDAMachine` need to be created and enroled using
-the :py:meth:`bob.learn.misc.PLDATrainer.enrol()` method as follows.
+:py:class:`bob.learn.em.PLDAMachine` need to be created and enroled using
+the :py:meth:`bob.learn.em.PLDATrainer.enrol()` method as follows.
 
 .. doctest::
 
-   >>> plda1 = bob.learn.misc.PLDAMachine(pldabase)
+   >>> plda1 = bob.learn.em.PLDAMachine(pldabase)
    >>> samples1 = numpy.array([[3.5,-3.4,102], [4.5,-4.3,56]], dtype=numpy.float64)
    >>> trainer.enrol(plda1, samples1)
-   >>> plda2 = bob.learn.misc.PLDAMachine(pldabase)
+   >>> plda2 = bob.learn.em.PLDAMachine(pldabase)
    >>> samples2 = numpy.array([[3.5,7,-49], [4.5,8.9,-99]], dtype=numpy.float64)
    >>> trainer.enrol(plda2, samples2)
 
@@ -738,8 +738,8 @@ separately for each model.
 In a verification scenario, there are two possible hypotheses: 1.
 :math:`x_{test}` and :math:`x_{enrol}` share the same class.  2.
 :math:`x_{test}` and :math:`x_{enrol}` are from different classes.  Using the
-methods :py:meth:`bob.learn.misc.PLDAMachine.forward` or
-:py:meth:`bob.learn.misc.PLDAMachine.__call__` function, the corresponding
+methods :py:meth:`bob.learn.em.PLDAMachine.forward` or
+:py:meth:`bob.learn.em.PLDAMachine.__call__` function, the corresponding
 log-likelihood ratio will be computed, which is defined in more formal way by:
 :math:`s = \ln(P(x_{test},x_{enrol})) - \ln(P(x_{test})P(x_{enrol}))`
 
diff --git a/doc/index.rst b/doc/index.rst
index cc40c8d..a160f0a 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -4,7 +4,7 @@
 ..
 .. Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
 
-.. _bob.learn.misc:
+.. _bob.learn.em:
 
 ======================================
  Miscellaneous Machine Learning Tools
diff --git a/doc/py_api.rst b/doc/py_api.rst
index c1c9541..e5f18c3 100644
--- a/doc/py_api.rst
+++ b/doc/py_api.rst
@@ -7,8 +7,8 @@
 ============
 
 This section includes information for using the pure Python API of
-``bob.learn.misc``.
+``bob.learn.em``.
 
 
-.. automodule:: bob.learn.misc
+.. automodule:: bob.learn.em
 
diff --git a/setup.py b/setup.py
index 875085d..3f89ff5 100644
--- a/setup.py
+++ b/setup.py
@@ -20,10 +20,10 @@ boost_modules = ['system', 'python']
 
 setup(
 
-    name='bob.learn.misc',
+    name='bob.learn.em',
     version=version,
-    description='Bindings for miscelaneous machines and trainers of Bob',
-    url='http://github.com/bioidiap/bob.learn.misc',
+    description='Bindings for emelaneous machines and trainers of Bob',
+    url='http://github.com/bioidiap/bob.learn.em',
     license='BSD',
     author='Andre Anjos',
     author_email='andre.anjos@idiap.ch',
@@ -42,9 +42,9 @@ setup(
     ],
 
     ext_modules = [
-      Extension("bob.learn.misc.version",
+      Extension("bob.learn.em.version",
         [
-          "bob/learn/misc/version.cpp",
+          "bob/learn/em/version.cpp",
         ],
         bob_packages = bob_packages,
         packages = packages,
@@ -52,34 +52,34 @@ setup(
         version = version,
       ),
 
-      Library("bob.learn.misc.bob_learn_misc",
+      Library("bob.learn.em.bob_learn_em",
         [
-          "bob/learn/misc/cpp/Gaussian.cpp",
-          "bob/learn/misc/cpp/GMMMachine.cpp",
-          "bob/learn/misc/cpp/GMMStats.cpp",
-          "bob/learn/misc/cpp/IVectorMachine.cpp",
-          "bob/learn/misc/cpp/KMeansMachine.cpp",
-          "bob/learn/misc/cpp/LinearScoring.cpp",
-          "bob/learn/misc/cpp/PLDAMachine.cpp",
-          "bob/learn/misc/cpp/ZTNorm.cpp",
-
-          "bob/learn/misc/cpp/FABase.cpp",
-          "bob/learn/misc/cpp/JFABase.cpp",
-          "bob/learn/misc/cpp/ISVBase.cpp",
-          "bob/learn/misc/cpp/JFAMachine.cpp",
-          "bob/learn/misc/cpp/ISVMachine.cpp",
-
-          "bob/learn/misc/cpp/FABaseTrainer.cpp",
-          "bob/learn/misc/cpp/JFATrainer.cpp",
-          "bob/learn/misc/cpp/ISVTrainer.cpp",
-
-          "bob/learn/misc/cpp/EMPCATrainer.cpp",
-          "bob/learn/misc/cpp/GMMBaseTrainer.cpp",
-          "bob/learn/misc/cpp/IVectorTrainer.cpp",
-          "bob/learn/misc/cpp/KMeansTrainer.cpp",
-          "bob/learn/misc/cpp/MAP_GMMTrainer.cpp",
-          "bob/learn/misc/cpp/ML_GMMTrainer.cpp",
-          "bob/learn/misc/cpp/PLDATrainer.cpp",
+          "bob/learn/em/cpp/Gaussian.cpp",
+          "bob/learn/em/cpp/GMMMachine.cpp",
+          "bob/learn/em/cpp/GMMStats.cpp",
+          "bob/learn/em/cpp/IVectorMachine.cpp",
+          "bob/learn/em/cpp/KMeansMachine.cpp",
+          "bob/learn/em/cpp/LinearScoring.cpp",
+          "bob/learn/em/cpp/PLDAMachine.cpp",
+          "bob/learn/em/cpp/ZTNorm.cpp",
+
+          "bob/learn/em/cpp/FABase.cpp",
+          "bob/learn/em/cpp/JFABase.cpp",
+          "bob/learn/em/cpp/ISVBase.cpp",
+          "bob/learn/em/cpp/JFAMachine.cpp",
+          "bob/learn/em/cpp/ISVMachine.cpp",
+
+          "bob/learn/em/cpp/FABaseTrainer.cpp",
+          "bob/learn/em/cpp/JFATrainer.cpp",
+          "bob/learn/em/cpp/ISVTrainer.cpp",
+
+          "bob/learn/em/cpp/EMPCATrainer.cpp",
+          "bob/learn/em/cpp/GMMBaseTrainer.cpp",
+          "bob/learn/em/cpp/IVectorTrainer.cpp",
+          "bob/learn/em/cpp/KMeansTrainer.cpp",
+          "bob/learn/em/cpp/MAP_GMMTrainer.cpp",
+          "bob/learn/em/cpp/ML_GMMTrainer.cpp",
+          "bob/learn/em/cpp/PLDATrainer.cpp",
         ],
         bob_packages = bob_packages,
         packages = packages,
@@ -87,18 +87,18 @@ setup(
         version = version,
       ),
 
-#      Extension("bob.learn.misc._library",
+#      Extension("bob.learn.em._library",
 #        [
-#          "bob/learn/misc/old/bic.cc",
+#          "bob/learn/em/old/bic.cc",
 #
 #          # external requirements as boost::python bindings
-#          "bob/learn/misc/old/blitz_numpy.cc",
-#          "bob/learn/misc/old/ndarray.cc",
-#          "bob/learn/misc/old/ndarray_numpy.cc",
-#          "bob/learn/misc/old/tinyvector.cc",
-#          "bob/learn/misc/old/random.cc",
+#          "bob/learn/em/old/blitz_numpy.cc",
+#          "bob/learn/em/old/ndarray.cc",
+#          "bob/learn/em/old/ndarray_numpy.cc",
+#          "bob/learn/em/old/tinyvector.cc",
+#          "bob/learn/em/old/random.cc",
 #
-#          "bob/learn/misc/old/main.cc",
+#          "bob/learn/em/old/main.cc",
 #        ],
 #        bob_packages = bob_packages,
 #        packages = packages,
@@ -106,40 +106,40 @@ setup(
 #        version = version,
 #      ),
 
-      Extension("bob.learn.misc._library",
+      Extension("bob.learn.em._library",
         [
-          "bob/learn/misc/gaussian.cpp",
-          "bob/learn/misc/gmm_stats.cpp",
-          "bob/learn/misc/gmm_machine.cpp",
-          "bob/learn/misc/kmeans_machine.cpp",
-          "bob/learn/misc/kmeans_trainer.cpp",
-
-          "bob/learn/misc/ML_gmm_trainer.cpp",
-          "bob/learn/misc/MAP_gmm_trainer.cpp",
-
-          "bob/learn/misc/jfa_base.cpp",
-          "bob/learn/misc/jfa_machine.cpp",
-          "bob/learn/misc/jfa_trainer.cpp",
-
-          "bob/learn/misc/isv_base.cpp",
-          "bob/learn/misc/isv_machine.cpp",
-          "bob/learn/misc/isv_trainer.cpp",
+          "bob/learn/em/gaussian.cpp",
+          "bob/learn/em/gmm_stats.cpp",
+          "bob/learn/em/gmm_machine.cpp",
+          "bob/learn/em/kmeans_machine.cpp",
+          "bob/learn/em/kmeans_trainer.cpp",
+
+          "bob/learn/em/ML_gmm_trainer.cpp",
+          "bob/learn/em/MAP_gmm_trainer.cpp",
+
+          "bob/learn/em/jfa_base.cpp",
+          "bob/learn/em/jfa_machine.cpp",
+          "bob/learn/em/jfa_trainer.cpp",
+
+          "bob/learn/em/isv_base.cpp",
+          "bob/learn/em/isv_machine.cpp",
+          "bob/learn/em/isv_trainer.cpp",
           
-          "bob/learn/misc/ivector_machine.cpp",
-          "bob/learn/misc/ivector_trainer.cpp",
+          "bob/learn/em/ivector_machine.cpp",
+          "bob/learn/em/ivector_trainer.cpp",
           
-          "bob/learn/misc/plda_base.cpp",
-          "bob/learn/misc/plda_machine.cpp",
+          "bob/learn/em/plda_base.cpp",
+          "bob/learn/em/plda_machine.cpp",
 
-          "bob/learn/misc/empca_trainer.cpp",
+          "bob/learn/em/empca_trainer.cpp",
 
-          "bob/learn/misc/plda_trainer.cpp",
+          "bob/learn/em/plda_trainer.cpp",
 
-          "bob/learn/misc/ztnorm.cpp",
+          "bob/learn/em/ztnorm.cpp",
 
-          "bob/learn/misc/linear_scoring.cpp",
+          "bob/learn/em/linear_scoring.cpp",
 
-          "bob/learn/misc/main.cpp",
+          "bob/learn/em/main.cpp",
         ],
         bob_packages = bob_packages,
         packages = packages,
-- 
GitLab