From 2f93ed06a6119296ef11a4b0b0d1a886b10a5143 Mon Sep 17 00:00:00 2001
From: Manuel Guenther <manuel.guenther@idiap.ch>
Date: Mon, 11 May 2015 14:45:26 +0200
Subject: [PATCH] Updated GMM algorithm and implemented parallel UBM training

---
 bob/bio/gmm/algorithm/GMM.py                |   80 +-
 bob/bio/gmm/config/algorithm/gmm.py         |    2 -
 bob/bio/gmm/config/algorithm/isv.py         |    4 +-
 bob/bio/gmm/script/__init__.py              |    0
 bob/bio/gmm/script/verify_gmm.py            |  300 +++
 bob/bio/gmm/test/data/scores-nonorm-gmm-dev | 2000 +++++++++++++++++++
 bob/bio/gmm/test/data/scores-ztnorm-gmm-dev | 2000 +++++++++++++++++++
 bob/bio/gmm/test/dummy/__init__.py          |    1 +
 bob/bio/gmm/test/dummy/extractor.py         |   27 +
 bob/bio/gmm/test/test_algorithms.py         |    8 +-
 bob/bio/gmm/test/test_scripts.py            |  105 +
 bob/bio/gmm/tools/__init__.py               |    2 +
 bob/bio/gmm/tools/command_line.py           |   65 +
 bob/bio/gmm/tools/gmm.py                    |  278 +++
 setup.py                                    |    2 +
 15 files changed, 4798 insertions(+), 76 deletions(-)
 create mode 100644 bob/bio/gmm/script/__init__.py
 create mode 100644 bob/bio/gmm/script/verify_gmm.py
 create mode 100644 bob/bio/gmm/test/data/scores-nonorm-gmm-dev
 create mode 100644 bob/bio/gmm/test/data/scores-ztnorm-gmm-dev
 create mode 100644 bob/bio/gmm/test/dummy/__init__.py
 create mode 100644 bob/bio/gmm/test/dummy/extractor.py
 create mode 100644 bob/bio/gmm/test/test_scripts.py
 create mode 100644 bob/bio/gmm/tools/__init__.py
 create mode 100644 bob/bio/gmm/tools/command_line.py
 create mode 100644 bob/bio/gmm/tools/gmm.py

diff --git a/bob/bio/gmm/algorithm/GMM.py b/bob/bio/gmm/algorithm/GMM.py
index 6b48096..fc94000 100644
--- a/bob/bio/gmm/algorithm/GMM.py
+++ b/bob/bio/gmm/algorithm/GMM.py
@@ -15,21 +15,21 @@ import logging
 logger = logging.getLogger("bob.bio.gmm")
 
 class GMM (Algorithm):
-  """Algorithm for computing Universal Background Models and Gaussian Mixture Models of the features"""
+  """Algorithm for computing Universal Background Models and Gaussian Mixture Models of the features.
+  Features must be normalized to zero mean and unit standard deviation."""
 
   def __init__(
       self,
       # parameters for the GMM
       number_of_gaussians,
       # parameters of UBM training
-      k_means_training_iterations = 500, # Maximum number of iterations for K-Means
-      gmm_training_iterations = 500,     # Maximum number of iterations for ML GMM Training
+      kmeans_training_iterations = 25,   # Maximum number of iterations for K-Means
+      gmm_training_iterations = 25,      # Maximum number of iterations for ML GMM Training
       training_threshold = 5e-4,         # Threshold to end the ML training
       variance_threshold = 5e-4,         # Minimum value that a variance can reach
       update_weights = True,
       update_means = True,
       update_variances = True,
-      normalize_before_k_means = True,  # Normalize the input features before running K-Means
       # parameters of the GMM enrollment
       relevance_factor = 4,         # Relevance factor as described in Reynolds paper
       gmm_enroll_iterations = 1,    # Number of iterations for the enrollment phase
@@ -47,14 +47,13 @@ class GMM (Algorithm):
         use_projected_features_for_enrollment = False,
 
         number_of_gaussians = number_of_gaussians,
-        k_means_training_iterations = k_means_training_iterations,
+        kmeans_training_iterations = kmeans_training_iterations,
         gmm_training_iterations = gmm_training_iterations,
         training_threshold = training_threshold,
         variance_threshold = variance_threshold,
         update_weights = update_weights,
         update_means = update_means,
         update_variances = update_variances,
-        normalize_before_k_means = normalize_before_k_means,
         relevance_factor = relevance_factor,
         gmm_enroll_iterations = gmm_enroll_iterations,
         responsibility_threshold = responsibility_threshold,
@@ -67,14 +66,13 @@ class GMM (Algorithm):
 
     # copy parameters
     self.gaussians = number_of_gaussians
-    self.k_means_training_iterations = k_means_training_iterations
+    self.kmeans_training_iterations = kmeans_training_iterations
     self.gmm_training_iterations = gmm_training_iterations
     self.training_threshold = training_threshold
     self.variance_threshold = variance_threshold
     self.update_weights = update_weights
     self.update_means = update_means
     self.update_variances = update_variances
-    self.normalize_before_k_means = normalize_before_k_means
     self.relevance_factor = relevance_factor
     self.gmm_enroll_iterations = gmm_enroll_iterations
     self.init_seed = INIT_SEED
@@ -83,6 +81,8 @@ class GMM (Algorithm):
     self.scoring_function = scoring_function
 
     self.ubm = None
+    self.kmeans_trainer = bob.learn.em.KMeansTrainer()
+    self.ubm_trainer = bob.learn.em.ML_GMMTrainer(self.update_means, self.update_variances, self.update_weights, self.responsibility_threshold)
 
 
   def _check_feature(self, feature):
@@ -94,42 +94,6 @@ class GMM (Algorithm):
 
 
 
-  #######################################################
-  ################ UBM training #########################
-  def _normalize_std_array(self, array):
-    """Applies a unit variance normalization to an array"""
-
-    # Initializes variables
-    n_samples = array.shape[0]
-    length = array.shape[1]
-    mean = numpy.zeros((length,))
-    std = numpy.zeros((length,))
-
-    # Computes mean and variance
-    for k in range(n_samples):
-      x = array[k,:].astype('float64')
-      mean += x
-      std += (x ** 2)
-
-    mean /= n_samples
-    std /= n_samples
-    std -= (mean ** 2)
-    std = std ** 0.5 # sqrt(std)
-
-    ar_std_list = []
-    for k in range(n_samples):
-      ar_std_list.append(array[k,:].astype('float64') / std)
-    ar_std = numpy.vstack(ar_std_list)
-
-    return (ar_std,std)
-
-
-  def _multiply_vectors_by_factors(self, matrix, vector):
-    """Used to unnormalize some data"""
-    for i in range(0, matrix.shape[0]):
-      for j in range(0, matrix.shape[1]):
-        matrix[i, j] *= vector[j]
-
 
   #######################################################
   ################ UBM training #########################
@@ -141,35 +105,18 @@ class GMM (Algorithm):
     # Computes input size
     input_size = array.shape[1]
 
-    # Normalizes the array if required
-    logger.debug(" .... Normalizing the array")
-    if not self.normalize_before_k_means:
-      normalized_array = array
-    else:
-      normalized_array, std_array = self._normalize_std_array(array)
-
-
     # Creates the machines (KMeans and GMM)
     logger.debug(" .... Creating machines")
     kmeans = bob.learn.em.KMeansMachine(self.gaussians, input_size)
     self.ubm = bob.learn.em.GMMMachine(self.gaussians, input_size)
 
-    # Creates the KMeansTrainer
-    kmeans_trainer = bob.learn.em.KMeansTrainer()
-
     # Trains using the KMeansTrainer
     logger.info("  -> Training K-Means")
-    bob.learn.em.train(kmeans_trainer, kmeans, normalized_array, self.gmm_training_iterations, self.training_threshold, bob.core.random.mt19937(self.init_seed))
+    bob.learn.em.train(self.kmeans_trainer, kmeans, array, self.kmeans_training_iterations, self.training_threshold, bob.core.random.mt19937(self.init_seed))
 
-    variances, weights = kmeans.get_variances_and_weights_for_each_cluster(normalized_array)
+    variances, weights = kmeans.get_variances_and_weights_for_each_cluster(array)
     means = kmeans.means
 
-    # Undoes the normalization
-    if self.normalize_before_k_means:
-      logger.debug(" .... Undoing normalization")
-      self._multiply_vectors_by_factors(means, std_array)
-      self._multiply_vectors_by_factors(variances, std_array ** 2)
-
     # Initializes the GMM
     self.ubm.means = means
     self.ubm.variances = variances
@@ -178,8 +125,7 @@ class GMM (Algorithm):
 
     # Trains the GMM
     logger.info("  -> Training GMM")
-    trainer = bob.learn.em.ML_GMMTrainer(self.update_means, self.update_variances, self.update_weights)
-    bob.learn.em.train(trainer, self.ubm, array, self.gmm_training_iterations, self.training_threshold, bob.core.random.mt19937(self.init_seed))
+    bob.learn.em.train(self.ubm_trainer, self.ubm, array, self.gmm_training_iterations, self.training_threshold, bob.core.random.mt19937(self.init_seed))
 
 
   def _save_projector(self, projector_file):
@@ -219,7 +165,7 @@ class GMM (Algorithm):
     self.load_ubm(projector_file)
     # prepare MAP_GMM_Trainer
     kwargs = dict(mean_var_update_responsibilities_threshold=self.responsibility_threshold) if self.responsibility_threshold > 0. else dict()
-    self.trainer = bob.learn.em.MAP_GMMTrainer(self.ubm, relevance_factor = self.relevance_factor, update_means = True, update_variances = False, **kwargs)
+    self.enroll_trainer = bob.learn.em.MAP_GMMTrainer(self.ubm, relevance_factor = self.relevance_factor, update_means = True, update_variances = False, **kwargs)
     self.rng = bob.core.random.mt19937(self.init_seed)
 
 
@@ -252,7 +198,7 @@ class GMM (Algorithm):
 
     gmm = bob.learn.em.GMMMachine(self.ubm)
     gmm.set_variance_thresholds(self.variance_threshold)
-    bob.learn.em.train(self.trainer, gmm, array, self.gmm_enroll_iterations, self.training_threshold, self.rng)
+    bob.learn.em.train(self.enroll_trainer, gmm, array, self.gmm_enroll_iterations, self.training_threshold, self.rng)
     return gmm
 
   def enroll(self, feature_arrays):
diff --git a/bob/bio/gmm/config/algorithm/gmm.py b/bob/bio/gmm/config/algorithm/gmm.py
index e251a4d..592b30e 100644
--- a/bob/bio/gmm/config/algorithm/gmm.py
+++ b/bob/bio/gmm/config/algorithm/gmm.py
@@ -5,6 +5,4 @@ import numpy
 
 algorithm = bob.bio.gmm.algorithm.GMM(
     number_of_gaussians = 512,
-    # by default, features are expected to be normalized and, hence, we don't need to re-normalize them
-    normalize_before_k_means = False
 )
diff --git a/bob/bio/gmm/config/algorithm/isv.py b/bob/bio/gmm/config/algorithm/isv.py
index ce5efb8..24a8be4 100644
--- a/bob/bio/gmm/config/algorithm/isv.py
+++ b/bob/bio/gmm/config/algorithm/isv.py
@@ -7,7 +7,5 @@ algorithm = bob.bio.gmm.algorithm.ISV(
     # ISV parameters
     subspace_dimension_of_u = 160,
     # GMM parameters
-    number_of_gaussians = 512,
-    # by default, our features are normalized, so it does not need to be done here
-    normalize_before_k_means = False
+    number_of_gaussians = 512
 )
diff --git a/bob/bio/gmm/script/__init__.py b/bob/bio/gmm/script/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/bob/bio/gmm/script/verify_gmm.py b/bob/bio/gmm/script/verify_gmm.py
new file mode 100644
index 0000000..f04d228
--- /dev/null
+++ b/bob/bio/gmm/script/verify_gmm.py
@@ -0,0 +1,300 @@
+#!/usr/bin/env python
+# vim: set fileencoding=utf-8 :
+# Manuel Guenther <Manuel.Guenther@idiap.ch>
+from __future__ import print_function
+
+import sys
+import argparse
+
+import logging
+logger = logging.getLogger("bob.bio.gmm")
+
+import bob.bio.base
+from .. import tools, algorithm
+from bob.bio.base import tools as base_tools
+
+
+def parse_arguments(command_line_parameters, exclude_resources_from = []):
+  """This function parses the given options (which by default are the command line options). If exclude_resources_from is specified (as a list), the resources from the given packages are not listed in the help message."""
+  # set up command line parser
+  parsers = base_tools.command_line_parser(exclude_resources_from = exclude_resources_from)
+
+  # add GMM-related options
+  tools.add_parallel_gmm_options(parsers)
+
+  # override some parameters
+  parsers['config'].add_argument('-g', '--grid', metavar = 'x', nargs = '+', required=True,
+    help = 'Configuration for the grid setup; required for the parallel execution script.')
+
+  parsers['config'].add_argument('-a', '--algorithm', metavar = 'x', nargs = '+', default = ['gmm'],
+      help = 'Face recognition; only GMM-related algorithms are allowed')
+
+
+  # Add sub-tasks that can be executed by this script
+  parser = parsers['main']
+  parser.add_argument('--sub-task',
+      choices = ('preprocess', 'train-extractor', 'extract', 'normalize-features', 'kmeans-init', 'kmeans-e-step', 'kmeans-m-step', 'gmm-init', 'gmm-e-step', 'gmm-m-step', 'project', 'enroll', 'compute-scores', 'concatenate'),
+      help = argparse.SUPPRESS) #'Executes a subtask (FOR INTERNAL USE ONLY!!!)'
+  parser.add_argument('--iteration', type = int,
+      help = argparse.SUPPRESS) #'Which type of models to generate (Normal or TModels)'
+  parser.add_argument('--model-type', choices = ['N', 'T'],
+      help = argparse.SUPPRESS) #'Which type of models to generate (Normal or TModels)'
+  parser.add_argument('--score-type', choices = ['A', 'B', 'C', 'D', 'Z'],
+      help = argparse.SUPPRESS) #'The type of scores that should be computed'
+  parser.add_argument('--group',
+      help = argparse.SUPPRESS) #'The group for which the current action should be performed'
+
+  # now that we have set up everything, get the command line arguments
+  args = base_tools.initialize(parsers, command_line_parameters,
+      skips = ['preprocessing', 'extractor-training', 'extraction', 'normalization', 'kmeans', 'gmm', 'projection', 'enroller-training', 'enrollment', 'score-computation', 'concatenation', 'calibration']
+  )
+
+  args.skip_projector_training = True
+
+  # and add the GMM-related parameters
+  tools.initialize_parallel_gmm(args)
+
+  # assert that the algorithm is a GMM
+  if args.algorithm.__class__ not in (algorithm.GMM, algorithm.GMMRegular):
+    raise ValueError("The given algorithm %s is not a (pure) GMM algorithm" % type(args.algorithm))
+
+  return args
+
+def add_gmm_jobs(args, job_ids, deps, submitter):
+  """Adds all GMM-related jobs."""
+
+  # KMeans
+  if not args.skip_kmeans:
+    # initialization
+    if not args.kmeans_start_iteration:
+      job_ids['kmeans-init'] = submitter.submit(
+              '--sub-task kmeans-init',
+              name = 'k-init',
+              dependencies = deps,
+              **args.grid.training_queue)
+      deps.append(job_ids['kmeans-init'])
+
+    # several iterations of E and M steps
+    for iteration in range(args.kmeans_start_iteration, args.algorithm.kmeans_training_iterations):
+      # E-step
+      job_ids['kmeans-e-step'] = submitter.submit(
+              '--sub-task kmeans-e-step --iteration %d' % iteration,
+              name='k-e-%d' % iteration,
+              number_of_parallel_jobs = args.grid.number_of_projection_jobs,
+              dependencies = [job_ids['kmeans-m-step']] if iteration != args.kmeans_start_iteration else deps,
+              **args.grid.projection_queue)
+
+      # M-step
+      job_ids['kmeans-m-step'] = submitter.submit(
+              '--sub-task kmeans-m-step --iteration %d' % iteration,
+              name='k-m-%d' % iteration,
+              dependencies = [job_ids['kmeans-e-step']],
+              **args.grid.training_queue)
+
+    # add dependence to the last m step
+    deps.append(job_ids['kmeans-m-step'])
+
+  # GMM
+  if not args.skip_gmm:
+    # initialization
+    if not args.gmm_start_iteration:
+      job_ids['gmm-init'] = submitter.submit(
+              '--sub-task gmm-init',
+              name = 'g-init',
+              dependencies = deps,
+              **args.grid.training_queue)
+      deps.append(job_ids['gmm-init'])
+
+    # several iterations of E and M steps
+    for iteration in range(args.gmm_start_iteration, args.algorithm.gmm_training_iterations):
+      # E-step
+      job_ids['gmm-e-step'] = submitter.submit(
+              '--sub-task gmm-e-step --iteration %d' % iteration,
+              name='g-e-%d' % iteration,
+              number_of_parallel_jobs = args.grid.number_of_projection_jobs,
+              dependencies = [job_ids['gmm-m-step']] if iteration != args.gmm_start_iteration else deps,
+              **args.grid.projection_queue)
+
+      # M-step
+      job_ids['gmm-m-step'] = submitter.submit(
+              '--sub-task gmm-m-step --iteration %d' % iteration,
+              name='g-m-%d' % iteration,
+              dependencies = [job_ids['gmm-e-step']],
+              **args.grid.training_queue)
+
+    # add dependence to the last m step
+    deps.append(job_ids['gmm-m-step'])
+  return job_ids, deps
+
+
+
+def add_jobs(args, submitter):
+  """Adds all (desired) jobs of the tool chain to the grid, or to the local list to be executed."""
+
+  assert args.grid is not None
+
+  # Here, we use the default bob.bio.base add_jobs function, but intercept it for adding the training
+  SKIPS = ['preprocessing', 'extractor_training', 'extraction', 'projector_training', 'projection', 'enroller_training', 'enrollment', 'score_computation', 'concatenation', 'calibration']
+  original_skips = {key : args.__dict__["skip_%s" % key] for key in SKIPS}
+
+  # first, submit preprocessing and feature extraction; skip all others
+  for key in SKIPS[3:]:
+    setattr(args, "skip_%s" % key, True)
+
+  job_ids = bob.bio.base.script.verify.add_jobs(args, submitter)
+
+  for key in SKIPS[3:]:
+    setattr(args, "skip_%s" % key, original_skips[key])
+
+  # reset skips
+  args.skip_preprocessing = original_skips['preprocessing']
+  args.skip_extractor_training = original_skips['extractor_training']
+  args.skip_extraction = original_skips['extraction']
+
+  # if there are any external dependencies, we need to respect them
+  deps = args.external_dependencies[:]
+  # also, we depend on all previous steps
+  for n in ['preprocessing', 'extractor-training', 'extraction']:
+    if n in job_ids:
+      deps.append(job_ids[n])
+
+  # now, add our jobs
+  job_ids, deps = add_gmm_jobs(args, job_ids, deps, submitter)
+
+  # alright, finish the remaining bits
+  for key in SKIPS[:4]:
+    setattr(args, "skip_%s" % key, True)
+
+  args.external_dependencies = deps
+  job_ids.update(bob.bio.base.script.verify.add_jobs(args, submitter))
+
+  # alright, finish the remaining bits
+  for key in SKIPS[:4]:
+    setattr(args, "skip_%s" % key, original_skips[key])
+
+  return job_ids
+
+
+def execute(args):
+  """Run the desired job of the tool chain that is specified on command line.
+  This job might be executed either in the grid, or locally."""
+
+  # first, let the base script decide if it knows how to execute the job
+  if bob.bio.base.script.verify.execute(args):
+    return True
+
+  # now, check what we can do
+
+  # the file selector object
+  fs = tools.FileSelector.instance()
+
+  # train the feature projector
+  if args.sub_task == 'kmeans-init':
+    tools.kmeans_initialize(
+        args.algorithm,
+        args.extractor,
+        args.limit_training_data,
+        force = args.force)
+
+  # train the feature projector
+  elif args.sub_task == 'kmeans-e-step':
+    tools.kmeans_estep(
+        args.algorithm,
+        args.extractor,
+        args.iteration,
+        indices = base_tools.indices(fs.training_list('extracted', 'train_projector'), args.grid.number_of_projection_jobs),
+        force = args.force)
+
+  # train the feature projector
+  elif args.sub_task == 'kmeans-m-step':
+    tools.kmeans_mstep(
+        args.algorithm,
+        args.iteration,
+        number_of_parallel_jobs = args.grid.number_of_projection_jobs,
+        clean = args.clean_intermediate,
+        force = args.force)
+
+  elif args.sub_task == 'gmm-init':
+    tools.gmm_initialize(
+        args.algorithm,
+        args.extractor,
+        args.limit_training_data,
+        force = args.force)
+
+  # train the feature projector
+  elif args.sub_task == 'gmm-e-step':
+    tools.gmm_estep(
+        args.algorithm,
+        args.extractor,
+        args.iteration,
+        indices = base_tools.indices(fs.training_list('extracted', 'train_projector'), args.grid.number_of_projection_jobs),
+        force = args.force)
+
+  # train the feature projector
+  elif args.sub_task == 'gmm-m-step':
+    tools.gmm_mstep(
+        args.algorithm,
+        args.iteration,
+        number_of_parallel_jobs = args.grid.number_of_projection_jobs,
+        clean = args.clean_intermediate,
+        force = args.force)
+  else:
+    # Not our keyword...
+    return False
+  return True
+
+
+
+def verify(args, command_line_parameters, external_fake_job_id = 0):
+  """This is the main entry point for computing verification experiments.
+  You just have to specify configurations for any of the steps of the toolchain, which are:
+  -- the database
+  -- the preprocessing
+  -- feature extraction
+  -- the recognition algorithm
+  -- and the grid configuration.
+  Additionally, you can skip parts of the toolchain by selecting proper --skip-... parameters.
+  If your probe files are not too big, you can also specify the --preload-probes switch to speed up the score computation.
+  If files should be re-generated, please specify the --force option (might be combined with the --skip-... options)."""
+
+
+  # as the main entry point, check whether the sub-task is specified
+  if args.sub_task is not None:
+    # execute the desired sub-task
+    if not execute(args):
+      raise ValueError("The specified --sub-task '%s' is not known to the system" % args.sub_task)
+    return {}
+  else:
+    # add jobs
+    submitter = base_tools.GridSubmission(args, command_line_parameters, executable = 'verify_gmm.py', first_fake_job_id = 0) if args.grid else None
+    retval = add_jobs(args, submitter)
+    base_tools.write_info(args, command_line_parameters)
+
+    if args.grid.is_local() and args.run_local_scheduler:
+      if args.dry_run:
+        print ("Would have started the local scheduler to run the experiments with parallel jobs")
+      else:
+        # start the jman local deamon
+        submitter.execute_local()
+      return {}
+
+    else:
+      # return job ids as a dictionary
+      return retval
+
+
+def main(command_line_parameters = sys.argv):
+  """Executes the main function"""
+  try:
+    # do the command line parsing
+    args = parse_arguments(command_line_parameters[1:])
+
+    # perform face verification test
+    verify(args, command_line_parameters)
+  except Exception as e:
+    # track any exceptions as error logs (i.e., to get a time stamp)
+    logger.error("During the execution, an exception was raised: %s" % e)
+    raise
+
+if __name__ == "__main__":
+  main()
diff --git a/bob/bio/gmm/test/data/scores-nonorm-gmm-dev b/bob/bio/gmm/test/data/scores-nonorm-gmm-dev
new file mode 100644
index 0000000..f2ef723
--- /dev/null
+++ b/bob/bio/gmm/test/data/scores-nonorm-gmm-dev
@@ -0,0 +1,2000 @@
+3 3 s3/1 12.12236988
+3 3 s3/3 9.84751712
+3 3 s3/6 4.75518987
+3 3 s3/8 7.34467862
+3 3 s3/10 5.84208782
+3 4 s4/1 3.09607379
+3 4 s4/3 2.48938722
+3 4 s4/6 2.63333268
+3 4 s4/8 1.40062007
+3 4 s4/10 2.58779227
+3 7 s7/1 0.03026203
+3 7 s7/3 0.05371084
+3 7 s7/6 0.73314783
+3 7 s7/8 1.25630276
+3 7 s7/10 0.16822658
+3 8 s8/1 5.81056890
+3 8 s8/3 5.75233918
+3 8 s8/6 6.44847608
+3 8 s8/8 5.69238999
+3 8 s8/10 5.86999901
+3 9 s9/1 5.45359187
+3 9 s9/3 5.17747819
+3 9 s9/6 5.73711804
+3 9 s9/8 4.93655799
+3 9 s9/10 2.85098127
+3 13 s13/1 5.62485853
+3 13 s13/3 4.69495514
+3 13 s13/6 3.55635679
+3 13 s13/8 2.59760528
+3 13 s13/10 2.37059830
+3 15 s15/1 -1.70142152
+3 15 s15/3 -1.69356476
+3 15 s15/6 -1.33033951
+3 15 s15/8 -1.35860584
+3 15 s15/10 6.49832495
+3 18 s18/1 2.23807146
+3 18 s18/3 4.27006211
+3 18 s18/6 4.47229746
+3 18 s18/8 4.50382677
+3 18 s18/10 6.00976544
+3 19 s19/1 -1.07694589
+3 19 s19/3 -1.03747000
+3 19 s19/6 2.72020773
+3 19 s19/8 0.96846425
+3 19 s19/10 1.74247871
+3 22 s22/1 1.23767092
+3 22 s22/3 0.24627610
+3 22 s22/6 2.31421591
+3 22 s22/8 0.30195020
+3 22 s22/10 3.69811398
+3 23 s23/1 1.87687045
+3 23 s23/3 3.38952498
+3 23 s23/6 5.66120676
+3 23 s23/8 -0.53659900
+3 23 s23/10 2.28668652
+3 25 s25/1 8.43491331
+3 25 s25/3 7.06857340
+3 25 s25/6 9.62841626
+3 25 s25/8 8.23245817
+3 25 s25/10 6.86464951
+3 28 s28/1 5.78842083
+3 28 s28/3 5.00928434
+3 28 s28/6 5.48259408
+3 28 s28/8 3.34580887
+3 28 s28/10 2.90811181
+3 30 s30/1 -2.46934002
+3 30 s30/3 -1.07156951
+3 30 s30/6 -2.99083500
+3 30 s30/8 -6.39106288
+3 30 s30/10 -1.99549819
+3 31 s31/1 2.16230888
+3 31 s31/3 -0.31403369
+3 31 s31/6 4.22185543
+3 31 s31/8 2.87972682
+3 31 s31/10 -0.96237951
+3 32 s32/1 -0.41005064
+3 32 s32/3 0.22072282
+3 32 s32/6 -0.31322589
+3 32 s32/8 -0.38468649
+3 32 s32/10 -1.16069031
+3 35 s35/1 6.48789082
+3 35 s35/3 7.06172847
+3 35 s35/6 5.38267714
+3 35 s35/8 5.91408998
+3 35 s35/10 3.16072775
+3 37 s37/1 6.88137952
+3 37 s37/3 6.51478058
+3 37 s37/6 -2.13029191
+3 37 s37/8 1.14910469
+3 37 s37/10 5.53095492
+3 38 s38/1 4.72993506
+3 38 s38/3 6.77363523
+3 38 s38/6 4.18609363
+3 38 s38/8 2.61193852
+3 38 s38/10 5.90203072
+3 40 s40/1 2.71932160
+3 40 s40/3 2.83708560
+3 40 s40/6 3.26368573
+3 40 s40/8 4.49616501
+3 40 s40/10 4.71234296
+4 3 s3/1 2.14633635
+4 3 s3/3 3.43836674
+4 3 s3/6 1.81796493
+4 3 s3/8 1.42857864
+4 3 s3/10 5.49964400
+4 4 s4/1 3.44423972
+4 4 s4/3 2.74693646
+4 4 s4/6 4.95646739
+4 4 s4/8 3.80919552
+4 4 s4/10 8.42730408
+4 7 s7/1 0.72550812
+4 7 s7/3 0.38360469
+4 7 s7/6 -1.27798288
+4 7 s7/8 -0.89127053
+4 7 s7/10 3.18020438
+4 8 s8/1 -6.30166153
+4 8 s8/3 -0.41695038
+4 8 s8/6 -0.62568098
+4 8 s8/8 -0.42030610
+4 8 s8/10 0.41426749
+4 9 s9/1 6.73357661
+4 9 s9/3 5.79707766
+4 9 s9/6 3.47787722
+4 9 s9/8 4.62326299
+4 9 s9/10 6.96542511
+4 13 s13/1 1.95627863
+4 13 s13/3 1.44557635
+4 13 s13/6 5.13007786
+4 13 s13/8 2.40118494
+4 13 s13/10 2.42616788
+4 15 s15/1 -3.75928152
+4 15 s15/3 -4.44046589
+4 15 s15/6 -4.48329267
+4 15 s15/8 -2.14354789
+4 15 s15/10 3.02743713
+4 18 s18/1 8.68887021
+4 18 s18/3 4.84982311
+4 18 s18/6 6.15058873
+4 18 s18/8 5.37553075
+4 18 s18/10 7.30939083
+4 19 s19/1 -5.46084252
+4 19 s19/3 -4.17043309
+4 19 s19/6 -7.15933673
+4 19 s19/8 -6.07549806
+4 19 s19/10 -7.82279417
+4 22 s22/1 -3.29075641
+4 22 s22/3 -2.79237217
+4 22 s22/6 -5.13501428
+4 22 s22/8 -4.16592807
+4 22 s22/10 -4.35606651
+4 23 s23/1 2.77162088
+4 23 s23/3 5.64497363
+4 23 s23/6 3.31175580
+4 23 s23/8 6.29312862
+4 23 s23/10 2.61790109
+4 25 s25/1 9.02085606
+4 25 s25/3 8.29029453
+4 25 s25/6 7.69843159
+4 25 s25/8 3.33075168
+4 25 s25/10 9.26556371
+4 28 s28/1 1.04484479
+4 28 s28/3 1.51622883
+4 28 s28/6 2.44827156
+4 28 s28/8 5.70362238
+4 28 s28/10 0.20465073
+4 30 s30/1 1.38313021
+4 30 s30/3 1.24099580
+4 30 s30/6 1.28233788
+4 30 s30/8 -1.66643285
+4 30 s30/10 -0.13060615
+4 31 s31/1 5.04735575
+4 31 s31/3 -0.04719649
+4 31 s31/6 3.89818395
+4 31 s31/8 5.06259339
+4 31 s31/10 -0.62961374
+4 32 s32/1 -0.71615729
+4 32 s32/3 -1.77514581
+4 32 s32/6 -5.46498422
+4 32 s32/8 -4.41508652
+4 32 s32/10 -6.12257110
+4 35 s35/1 4.55881482
+4 35 s35/3 2.72453290
+4 35 s35/6 4.17078509
+4 35 s35/8 4.70268133
+4 35 s35/10 4.17056749
+4 37 s37/1 5.07741428
+4 37 s37/3 3.69439910
+4 37 s37/6 -4.26914583
+4 37 s37/8 -4.71648813
+4 37 s37/10 2.69876437
+4 38 s38/1 -0.13974573
+4 38 s38/3 -1.88109055
+4 38 s38/6 -0.54019782
+4 38 s38/8 3.58774193
+4 38 s38/10 -0.23426222
+4 40 s40/1 3.80375617
+4 40 s40/3 8.28320297
+4 40 s40/6 1.27045133
+4 40 s40/8 1.25964064
+4 40 s40/10 -1.45372071
+7 3 s3/1 3.75518788
+7 3 s3/3 5.86717866
+7 3 s3/6 0.02417393
+7 3 s3/8 -0.77358095
+7 3 s3/10 6.13018925
+7 4 s4/1 -3.41375408
+7 4 s4/3 -5.45204357
+7 4 s4/6 -0.73605232
+7 4 s4/8 -3.29416109
+7 4 s4/10 3.27374037
+7 7 s7/1 11.51230138
+7 7 s7/3 10.17243609
+7 7 s7/6 7.29552684
+7 7 s7/8 8.10823412
+7 7 s7/10 12.48549597
+7 8 s8/1 -5.90842164
+7 8 s8/3 -1.22152565
+7 8 s8/6 -0.75739272
+7 8 s8/8 -3.59316797
+7 8 s8/10 0.13129681
+7 9 s9/1 1.56602724
+7 9 s9/3 2.18801549
+7 9 s9/6 -3.66592407
+7 9 s9/8 0.13617017
+7 9 s9/10 4.65325900
+7 13 s13/1 -2.40040551
+7 13 s13/3 -6.73006139
+7 13 s13/6 1.01206644
+7 13 s13/8 0.01131685
+7 13 s13/10 0.13642123
+7 15 s15/1 1.33242405
+7 15 s15/3 0.47671019
+7 15 s15/6 0.46520151
+7 15 s15/8 -0.66353349
+7 15 s15/10 -3.54814683
+7 18 s18/1 4.48691850
+7 18 s18/3 -3.17398773
+7 18 s18/6 0.43405970
+7 18 s18/8 -2.83738074
+7 18 s18/10 0.87391190
+7 19 s19/1 -1.46868957
+7 19 s19/3 -2.45563513
+7 19 s19/6 -2.79088734
+7 19 s19/8 1.00433470
+7 19 s19/10 -5.61999477
+7 22 s22/1 -2.85135254
+7 22 s22/3 -3.02374119
+7 22 s22/6 -1.64652315
+7 22 s22/8 -3.26385053
+7 22 s22/10 -3.58439575
+7 23 s23/1 -2.04776269
+7 23 s23/3 1.54382822
+7 23 s23/6 -3.72400439
+7 23 s23/8 4.61334647
+7 23 s23/10 -1.88687329
+7 25 s25/1 -0.85040058
+7 25 s25/3 0.87771205
+7 25 s25/6 -1.41713816
+7 25 s25/8 -5.25862489
+7 25 s25/10 0.54527292
+7 28 s28/1 -1.16191462
+7 28 s28/3 -3.56341724
+7 28 s28/6 -1.53402050
+7 28 s28/8 7.59204177
+7 28 s28/10 -5.70258525
+7 30 s30/1 -4.98441565
+7 30 s30/3 -6.73289956
+7 30 s30/6 -3.87116321
+7 30 s30/8 -7.79836598
+7 30 s30/10 -6.15587851
+7 31 s31/1 -1.33378233
+7 31 s31/3 -6.07696399
+7 31 s31/6 -1.60252289
+7 31 s31/8 -1.28997866
+7 31 s31/10 -6.83049143
+7 32 s32/1 1.62235251
+7 32 s32/3 -5.06507131
+7 32 s32/6 -0.41465693
+7 32 s32/8 -0.73554336
+7 32 s32/10 -0.78023096
+7 35 s35/1 -0.57154946
+7 35 s35/3 2.20724692
+7 35 s35/6 -0.11133322
+7 35 s35/8 1.55870819
+7 35 s35/10 6.13485110
+7 37 s37/1 5.26084168
+7 37 s37/3 3.83668505
+7 37 s37/6 -0.17215411
+7 37 s37/8 -1.47668584
+7 37 s37/10 5.40939502
+7 38 s38/1 -6.68927109
+7 38 s38/3 -7.59316113
+7 38 s38/6 -6.42202021
+7 38 s38/8 -2.08418409
+7 38 s38/10 -2.97404077
+7 40 s40/1 0.58339586
+7 40 s40/3 5.23370798
+7 40 s40/6 -3.80110253
+7 40 s40/8 -0.99333590
+7 40 s40/10 -8.09836174
+8 3 s3/1 7.49411768
+8 3 s3/3 -1.32784013
+8 3 s3/6 6.83639293
+8 3 s3/8 8.38846729
+8 3 s3/10 -5.18715122
+8 4 s4/1 5.17434589
+8 4 s4/3 4.34899166
+8 4 s4/6 2.38508100
+8 4 s4/8 1.90162863
+8 4 s4/10 -9.42026732
+8 7 s7/1 -1.83584725
+8 7 s7/3 0.22975707
+8 7 s7/6 2.72556825
+8 7 s7/8 2.63319614
+8 7 s7/10 -12.46211342
+8 8 s8/1 37.37890757
+8 8 s8/3 27.92833224
+8 8 s8/6 29.17673544
+8 8 s8/8 27.93190905
+8 8 s8/10 25.53497654
+8 9 s9/1 3.81532410
+8 9 s9/3 3.11770367
+8 9 s9/6 13.07162236
+8 9 s9/8 7.54098582
+8 9 s9/10 -6.63861835
+8 13 s13/1 4.77239564
+8 13 s13/3 7.67479954
+8 13 s13/6 -2.92405050
+8 13 s13/8 0.72052261
+8 13 s13/10 -0.72782556
+8 15 s15/1 -1.71406789
+8 15 s15/3 -1.02367827
+8 15 s15/6 -0.97382873
+8 15 s15/8 0.57501778
+8 15 s15/10 7.42550568
+8 18 s18/1 -14.89570602
+8 18 s18/3 1.06488064
+8 18 s18/6 -2.08880054
+8 18 s18/8 -0.93702943
+8 18 s18/10 -1.03016423
+8 19 s19/1 0.96390516
+8 19 s19/3 0.17081438
+8 19 s19/6 6.23012109
+8 19 s19/8 16.08816265
+8 19 s19/10 7.98854383
+8 22 s22/1 2.11019614
+8 22 s22/3 2.14781630
+8 22 s22/6 0.50128417
+8 22 s22/8 2.68408319
+8 22 s22/10 4.60839718
+8 23 s23/1 9.90542352
+8 23 s23/3 1.26572524
+8 23 s23/6 7.73225390
+8 23 s23/8 -8.03718207
+8 23 s23/10 8.26295876
+8 25 s25/1 7.19658127
+8 25 s25/3 3.84868721
+8 25 s25/6 10.95554396
+8 25 s25/8 13.46073090
+8 25 s25/10 3.86642400
+8 28 s28/1 11.91551446
+8 28 s28/3 10.12640141
+8 28 s28/6 10.75201534
+8 28 s28/8 -7.12091131
+8 28 s28/10 9.29803262
+8 30 s30/1 2.19166531
+8 30 s30/3 4.81297228
+8 30 s30/6 0.35013771
+8 30 s30/8 1.35580352
+8 30 s30/10 4.66461170
+8 31 s31/1 2.22375034
+8 31 s31/3 -0.73477548
+8 31 s31/6 4.82317385
+8 31 s31/8 2.92013059
+8 31 s31/10 -2.45266643
+8 32 s32/1 0.92021326
+8 32 s32/3 -0.45753756
+8 32 s32/6 5.80292845
+8 32 s32/8 1.18168340
+8 32 s32/10 3.55596388
+8 35 s35/1 5.31623385
+8 35 s35/3 6.15974826
+8 35 s35/6 4.20984556
+8 35 s35/8 3.69171793
+8 35 s35/10 -10.28807492
+8 37 s37/1 -2.62861992
+8 37 s37/3 -1.09689950
+8 37 s37/6 5.81870107
+8 37 s37/8 8.88998176
+8 37 s37/10 -0.93256550
+8 38 s38/1 19.22370514
+8 38 s38/3 16.99283991
+8 38 s38/6 18.64628608
+8 38 s38/8 7.39774540
+8 38 s38/10 12.36258318
+8 40 s40/1 -10.32622496
+8 40 s40/3 -18.26777314
+8 40 s40/6 2.63709467
+8 40 s40/8 -0.25447359
+8 40 s40/10 8.87083316
+9 3 s3/1 3.79800741
+9 3 s3/3 3.60278331
+9 3 s3/6 3.77792929
+9 3 s3/8 4.78211979
+9 3 s3/10 5.26848773
+9 4 s4/1 4.92662979
+9 4 s4/3 3.48391640
+9 4 s4/6 5.13453312
+9 4 s4/8 3.61088516
+9 4 s4/10 5.06086758
+9 7 s7/1 1.03113042
+9 7 s7/3 1.15712812
+9 7 s7/6 0.58803947
+9 7 s7/8 1.20144122
+9 7 s7/10 1.64969151
+9 8 s8/1 3.31832764
+9 8 s8/3 7.00232344
+9 8 s8/6 7.69509197
+9 8 s8/8 5.80230700
+9 8 s8/10 6.97464171
+9 9 s9/1 7.91189317
+9 9 s9/3 7.53811456
+9 9 s9/6 7.36123789
+9 9 s9/8 7.97922977
+9 9 s9/10 6.82482124
+9 13 s13/1 3.30465615
+9 13 s13/3 2.84578848
+9 13 s13/6 5.02948949
+9 13 s13/8 2.58568964
+9 13 s13/10 3.20212639
+9 15 s15/1 -3.85893323
+9 15 s15/3 -4.24062470
+9 15 s15/6 -4.21448234
+9 15 s15/8 -1.65023029
+9 15 s15/10 5.36424524
+9 18 s18/1 3.78611030
+9 18 s18/3 3.51864412
+9 18 s18/6 5.11510105
+9 18 s18/8 3.49665466
+9 18 s18/10 6.20128024
+9 19 s19/1 -4.45649491
+9 19 s19/3 -4.21719609
+9 19 s19/6 -3.09877045
+9 19 s19/8 -1.74140482
+9 19 s19/10 -4.31101905
+9 22 s22/1 -4.05616040
+9 22 s22/3 -3.05111631
+9 22 s22/6 -6.06142274
+9 22 s22/8 -4.40601170
+9 22 s22/10 -4.84080452
+9 23 s23/1 6.39829259
+9 23 s23/3 6.55093721
+9 23 s23/6 5.50333780
+9 23 s23/8 5.07457060
+9 23 s23/10 5.26524250
+9 25 s25/1 9.98349440
+9 25 s25/3 8.59576339
+9 25 s25/6 8.80970150
+9 25 s25/8 6.74665575
+9 25 s25/10 8.57811335
+9 28 s28/1 4.71944233
+9 28 s28/3 4.10498044
+9 28 s28/6 5.68644421
+9 28 s28/8 4.98774857
+9 28 s28/10 0.82161698
+9 30 s30/1 1.38688035
+9 30 s30/3 1.45569031
+9 30 s30/6 1.31033079
+9 30 s30/8 -2.76463565
+9 30 s30/10 0.12384040
+9 31 s31/1 7.52148561
+9 31 s31/3 -2.30167897
+9 31 s31/6 5.98665233
+9 31 s31/8 7.37855391
+9 31 s31/10 -2.31612902
+9 32 s32/1 -1.60144422
+9 32 s32/3 -2.91474045
+9 32 s32/6 -5.53223529
+9 32 s32/8 -4.09443354
+9 32 s32/10 -6.12957151
+9 35 s35/1 5.52125041
+9 35 s35/3 5.76262772
+9 35 s35/6 4.63090844
+9 35 s35/8 6.21640621
+9 35 s35/10 3.86218833
+9 37 s37/1 5.96999085
+9 37 s37/3 5.48442434
+9 37 s37/6 -4.23932428
+9 37 s37/8 -3.50951658
+9 37 s37/10 3.61871274
+9 38 s38/1 4.68931324
+9 38 s38/3 1.37639637
+9 38 s38/6 4.10367097
+9 38 s38/8 5.24927570
+9 38 s38/10 2.77291045
+9 40 s40/1 1.18041650
+9 40 s40/3 5.42009718
+9 40 s40/6 2.14870012
+9 40 s40/8 2.26278786
+9 40 s40/10 0.06986980
+13 3 s3/1 8.17113703
+13 3 s3/3 5.43470587
+13 3 s3/6 3.19800016
+13 3 s3/8 2.57103363
+13 3 s3/10 2.96193422
+13 4 s4/1 4.27921032
+13 4 s4/3 3.70893744
+13 4 s4/6 5.76365349
+13 4 s4/8 3.66633540
+13 4 s4/10 4.04569379
+13 7 s7/1 0.24571570
+13 7 s7/3 0.97354166
+13 7 s7/6 0.58142332
+13 7 s7/8 0.34198424
+13 7 s7/10 1.00864721
+13 8 s8/1 -0.05447741
+13 8 s8/3 0.96186454
+13 8 s8/6 0.44728317
+13 8 s8/8 3.10729640
+13 8 s8/10 1.43611738
+13 9 s9/1 3.49948360
+13 9 s9/3 3.27313194
+13 9 s9/6 4.25264610
+13 9 s9/8 4.83744524
+13 9 s9/10 1.61894345
+13 13 s13/1 11.57234517
+13 13 s13/3 10.46538546
+13 13 s13/6 9.36219462
+13 13 s13/8 7.87959105
+13 13 s13/10 7.92463370
+13 15 s15/1 0.95998424
+13 15 s15/3 0.36414428
+13 15 s15/6 1.77520131
+13 15 s15/8 0.00145794
+13 15 s15/10 4.94911932
+13 18 s18/1 7.88699265
+13 18 s18/3 11.84523913
+13 18 s18/6 10.92408004
+13 18 s18/8 12.32654466
+13 18 s18/10 11.44685746
+13 19 s19/1 4.82549387
+13 19 s19/3 6.28011002
+13 19 s19/6 6.38226763
+13 19 s19/8 1.59925463
+13 19 s19/10 4.23796233
+13 22 s22/1 2.60760986
+13 22 s22/3 0.57662599
+13 22 s22/6 3.86638374
+13 22 s22/8 0.96386184
+13 22 s22/10 4.58659714
+13 23 s23/1 1.04305059
+13 23 s23/3 2.85490518
+13 23 s23/6 5.92963348
+13 23 s23/8 -0.66588901
+13 23 s23/10 1.39029236
+13 25 s25/1 9.37918380
+13 25 s25/3 8.07558660
+13 25 s25/6 9.65717512
+13 25 s25/8 8.76862756
+13 25 s25/10 7.68650445
+13 28 s28/1 4.57866227
+13 28 s28/3 3.13677149
+13 28 s28/6 3.60361585
+13 28 s28/8 2.35708032
+13 28 s28/10 3.58932530
+13 30 s30/1 -2.96538983
+13 30 s30/3 -1.98702377
+13 30 s30/6 -3.35418550
+13 30 s30/8 -4.63392083
+13 30 s30/10 -2.12449946
+13 31 s31/1 -1.96917284
+13 31 s31/3 0.00747775
+13 31 s31/6 -1.70467607
+13 31 s31/8 -1.13816607
+13 31 s31/10 -0.67926705
+13 32 s32/1 7.78372408
+13 32 s32/3 9.26846691
+13 32 s32/6 3.26354153
+13 32 s32/8 7.80322057
+13 32 s32/10 3.55024153
+13 35 s35/1 8.72566614
+13 35 s35/3 8.60970021
+13 35 s35/6 6.12516327
+13 35 s35/8 7.03513879
+13 35 s35/10 4.80918921
+13 37 s37/1 5.49358291
+13 37 s37/3 6.05809095
+13 37 s37/6 -1.12987258
+13 37 s37/8 1.06313085
+13 37 s37/10 5.55503670
+13 38 s38/1 1.19353026
+13 38 s38/3 4.28720365
+13 38 s38/6 1.05266687
+13 38 s38/8 1.15115509
+13 38 s38/10 2.33182914
+13 40 s40/1 4.09887660
+13 40 s40/3 6.07180768
+13 40 s40/6 5.20933634
+13 40 s40/8 5.91438573
+13 40 s40/10 7.05763220
+15 3 s3/1 5.40249470
+15 3 s3/3 3.93507554
+15 3 s3/6 0.03044782
+15 3 s3/8 1.61825154
+15 3 s3/10 -2.34318652
+15 4 s4/1 7.50412890
+15 4 s4/3 6.11684958
+15 4 s4/6 -1.90214523
+15 4 s4/8 5.21381744
+15 4 s4/10 -4.01247472
+15 7 s7/1 -3.20257834
+15 7 s7/3 -2.72157612
+15 7 s7/6 -1.29771090
+15 7 s7/8 -4.38174815
+15 7 s7/10 -1.41082928
+15 8 s8/1 9.19597048
+15 8 s8/3 -2.66683454
+15 8 s8/6 -3.02206722
+15 8 s8/8 -1.57633000
+15 8 s8/10 -4.44308200
+15 9 s9/1 4.84262794
+15 9 s9/3 4.68463107
+15 9 s9/6 5.77241764
+15 9 s9/8 4.84183188
+15 9 s9/10 0.77988084
+15 13 s13/1 4.84591192
+15 13 s13/3 5.27100401
+15 13 s13/6 0.39937088
+15 13 s13/8 -0.42453510
+15 13 s13/10 0.35707243
+15 15 s15/1 5.94433287
+15 15 s15/3 5.59997658
+15 15 s15/6 6.92246992
+15 15 s15/8 6.82229668
+15 15 s15/10 18.49637146
+15 18 s18/1 -4.89143542
+15 18 s18/3 5.52474136
+15 18 s18/6 0.59830730
+15 18 s18/8 5.20942296
+15 18 s18/10 1.02892074
+15 19 s19/1 -0.19799725
+15 19 s19/3 1.24621097
+15 19 s19/6 0.89843340
+15 19 s19/8 1.35972201
+15 19 s19/10 -0.41911823
+15 22 s22/1 2.60331869
+15 22 s22/3 2.68155662
+15 22 s22/6 -1.35065712
+15 22 s22/8 1.64050469
+15 22 s22/10 3.96278318
+15 23 s23/1 -0.65663820
+15 23 s23/3 5.60690944
+15 23 s23/6 8.23387874
+15 23 s23/8 -4.19184105
+15 23 s23/10 -2.54671022
+15 25 s25/1 9.58867597
+15 25 s25/3 6.14639338
+15 25 s25/6 13.66893600
+15 25 s25/8 11.39281269
+15 25 s25/10 5.64220934
+15 28 s28/1 -0.84900786
+15 28 s28/3 -0.01914164
+15 28 s28/6 0.24181488
+15 28 s28/8 -4.94694820
+15 28 s28/10 -2.44583029
+15 30 s30/1 3.94599836
+15 30 s30/3 6.30790341
+15 30 s30/6 1.68319639
+15 30 s30/8 5.68196254
+15 30 s30/10 4.91448169
+15 31 s31/1 6.66098709
+15 31 s31/3 17.71482555
+15 31 s31/6 7.19048924
+15 31 s31/8 6.72683988
+15 31 s31/10 17.85183817
+15 32 s32/1 6.77788169
+15 32 s32/3 12.71467222
+15 32 s32/6 1.71547194
+15 32 s32/8 6.40300983
+15 32 s32/10 2.32277409
+15 35 s35/1 14.61692584
+15 35 s35/3 16.61785841
+15 35 s35/6 6.39353026
+15 35 s35/8 8.44906080
+15 35 s35/10 6.30972411
+15 37 s37/1 -2.77389047
+15 37 s37/3 -1.80142615
+15 37 s37/6 0.90577764
+15 37 s37/8 2.86992430
+15 37 s37/10 -4.27479771
+15 38 s38/1 2.85301728
+15 38 s38/3 4.35813307
+15 38 s38/6 3.05785595
+15 38 s38/8 -0.38554545
+15 38 s38/10 2.34493042
+15 40 s40/1 3.64606229
+15 40 s40/3 0.20333863
+15 40 s40/6 7.45950758
+15 40 s40/8 5.97538102
+15 40 s40/10 11.93624936
+18 3 s3/1 9.52902925
+18 3 s3/3 8.75054482
+18 3 s3/6 3.02773550
+18 3 s3/8 2.91247402
+18 3 s3/10 6.75261833
+18 4 s4/1 4.60275235
+18 4 s4/3 3.76673459
+18 4 s4/6 6.90398527
+18 4 s4/8 4.34959083
+18 4 s4/10 10.43207575
+18 7 s7/1 1.38577344
+18 7 s7/3 2.51814402
+18 7 s7/6 1.07638030
+18 7 s7/8 0.39797873
+18 7 s7/10 5.89734397
+18 8 s8/1 -7.49139379
+18 8 s8/3 -4.38979487
+18 8 s8/6 -5.61330953
+18 8 s8/8 -1.43701724
+18 8 s8/10 -2.72737362
+18 9 s9/1 6.60762459
+18 9 s9/3 6.40394199
+18 9 s9/6 3.50878848
+18 9 s9/8 4.76093995
+18 9 s9/10 7.29505616
+18 13 s13/1 9.47298275
+18 13 s13/3 8.32082286
+18 13 s13/6 11.87707850
+18 13 s13/8 7.06944235
+18 13 s13/10 6.96745159
+18 15 s15/1 0.05909740
+18 15 s15/3 -0.94061289
+18 15 s15/6 0.12333702
+18 15 s15/8 -0.89326882
+18 15 s15/10 6.98206198
+18 18 s18/1 16.63748816
+18 18 s18/3 13.99003049
+18 18 s18/6 14.99062350
+18 18 s18/8 15.37885012
+18 18 s18/10 15.58739461
+18 19 s19/1 2.96835330
+18 19 s19/3 5.12997240
+18 19 s19/6 3.24237345
+18 19 s19/8 -2.95668717
+18 19 s19/10 0.29072515
+18 22 s22/1 -3.00995439
+18 22 s22/3 -4.23366195
+18 22 s22/6 -0.71278872
+18 22 s22/8 -4.75466499
+18 22 s22/10 -2.00933430
+18 23 s23/1 0.40262337
+18 23 s23/3 7.66416184
+18 23 s23/6 6.04356485
+18 23 s23/8 4.37340799
+18 23 s23/10 0.14355413
+18 25 s25/1 12.87622195
+18 25 s25/3 12.18567135
+18 25 s25/6 13.35832611
+18 25 s25/8 8.67718141
+18 25 s25/10 12.20496172
+18 28 s28/1 2.10286430
+18 28 s28/3 2.06262134
+18 28 s28/6 1.72373226
+18 28 s28/8 7.04162560
+18 28 s28/10 1.52392309
+18 30 s30/1 -2.09840847
+18 30 s30/3 -1.59629678
+18 30 s30/6 -3.41767012
+18 30 s30/8 -6.10831435
+18 30 s30/10 -2.81487185
+18 31 s31/1 0.46976124
+18 31 s31/3 3.07960143
+18 31 s31/6 2.49387698
+18 31 s31/8 0.93082407
+18 31 s31/10 4.20265652
+18 32 s32/1 10.77495169
+18 32 s32/3 11.40195337
+18 32 s32/6 3.37297549
+18 32 s32/8 9.11061742
+18 32 s32/10 3.90420358
+18 35 s35/1 10.11273871
+18 35 s35/3 8.91286971
+18 35 s35/6 8.20008091
+18 35 s35/8 9.80211481
+18 35 s35/10 9.80675326
+18 37 s37/1 9.24280488
+18 37 s37/3 8.57802332
+18 37 s37/6 -3.71803249
+18 37 s37/8 -2.83933573
+18 37 s37/10 6.95002500
+18 38 s38/1 -3.33467225
+18 38 s38/3 -0.99126818
+18 38 s38/6 -2.59176655
+18 38 s38/8 -0.75153895
+18 38 s38/10 -0.38553636
+18 40 s40/1 7.85963315
+18 40 s40/3 13.18419065
+18 40 s40/6 5.21910698
+18 40 s40/8 6.97448325
+18 40 s40/10 4.62290522
+19 3 s3/1 1.55829893
+19 3 s3/3 -3.71336598
+19 3 s3/6 -0.16239568
+19 3 s3/8 -2.55635490
+19 3 s3/10 -7.42773110
+19 4 s4/1 0.06402258
+19 4 s4/3 0.52428913
+19 4 s4/6 0.79089315
+19 4 s4/8 0.43689904
+19 4 s4/10 -6.65349214
+19 7 s7/1 0.58830774
+19 7 s7/3 2.85973687
+19 7 s7/6 2.69790577
+19 7 s7/8 1.27673534
+19 7 s7/10 -4.31562152
+19 8 s8/1 12.39522784
+19 8 s8/3 8.20495132
+19 8 s8/6 7.09594242
+19 8 s8/8 11.70342094
+19 8 s8/10 8.12209054
+19 9 s9/1 -2.31168383
+19 9 s9/3 -1.92306729
+19 9 s9/6 0.04343073
+19 9 s9/8 -1.67761092
+19 9 s9/10 -7.80143360
+19 13 s13/1 4.93443942
+19 13 s13/3 5.39146419
+19 13 s13/6 -1.17290781
+19 13 s13/8 3.05106652
+19 13 s13/10 -0.64105025
+19 15 s15/1 4.35625752
+19 15 s15/3 4.50137012
+19 15 s15/6 5.35612526
+19 15 s15/8 3.12659086
+19 15 s15/10 0.13718495
+19 18 s18/1 -3.51250955
+19 18 s18/3 3.55203837
+19 18 s18/6 0.61707635
+19 18 s18/8 3.27101597
+19 18 s18/10 -0.28874357
+19 19 s19/1 12.95150495
+19 19 s19/3 13.55183252
+19 19 s19/6 14.16015030
+19 19 s19/8 14.03672348
+19 19 s19/10 13.27640464
+19 22 s22/1 2.31145728
+19 22 s22/3 0.76072862
+19 22 s22/6 3.92560445
+19 22 s22/8 1.81733580
+19 22 s22/10 2.88192925
+19 23 s23/1 0.05607406
+19 23 s23/3 -1.29996944
+19 23 s23/6 0.32776178
+19 23 s23/8 -6.65849346
+19 23 s23/10 -0.78829832
+19 25 s25/1 -0.94158553
+19 25 s25/3 -1.21713677
+19 25 s25/6 1.89493196
+19 25 s25/8 1.89001625
+19 25 s25/10 -1.37613143
+19 28 s28/1 -0.56878630
+19 28 s28/3 -1.03943875
+19 28 s28/6 -3.04299950
+19 28 s28/8 -5.77539586
+19 28 s28/10 3.34234821
+19 30 s30/1 -2.27180970
+19 30 s30/3 -2.05386246
+19 30 s30/6 -3.80539396
+19 30 s30/8 -0.43840327
+19 30 s30/10 0.13882335
+19 31 s31/1 -8.13324795
+19 31 s31/3 1.82223737
+19 31 s31/6 -5.02633374
+19 31 s31/8 -7.27853755
+19 31 s31/10 -0.27576727
+19 32 s32/1 9.24179167
+19 32 s32/3 11.01504485
+19 32 s32/6 11.47475129
+19 32 s32/8 11.85683480
+19 32 s32/10 10.12246931
+19 35 s35/1 2.05429028
+19 35 s35/3 2.68927771
+19 35 s35/6 1.34049490
+19 35 s35/8 1.19454077
+19 35 s35/10 -5.64931846
+19 37 s37/1 -7.06361621
+19 37 s37/3 -6.57617653
+19 37 s37/6 5.76027345
+19 37 s37/8 6.66035516
+19 37 s37/10 -1.80445496
+19 38 s38/1 1.01821545
+19 38 s38/3 4.92699074
+19 38 s38/6 2.72530835
+19 38 s38/8 -1.99615987
+19 38 s38/10 1.67522246
+19 40 s40/1 -5.12058357
+19 40 s40/3 -11.05641617
+19 40 s40/6 0.47997925
+19 40 s40/8 -0.47033161
+19 40 s40/10 3.81458138
+22 3 s3/1 -2.39135653
+22 3 s3/3 -2.05530713
+22 3 s3/6 -5.60092787
+22 3 s3/8 -1.59737565
+22 3 s3/10 -5.67248675
+22 4 s4/1 -0.85107065
+22 4 s4/3 0.31230964
+22 4 s4/6 -11.51766270
+22 4 s4/8 -1.82139924
+22 4 s4/10 -11.76419105
+22 7 s7/1 -4.67133944
+22 7 s7/3 -6.17987314
+22 7 s7/6 -3.25026750
+22 7 s7/8 -6.51252681
+22 7 s7/10 -5.05322327
+22 8 s8/1 6.83250426
+22 8 s8/3 -9.04719074
+22 8 s8/6 -8.13272684
+22 8 s8/8 -10.35458609
+22 8 s8/10 -12.49183020
+22 9 s9/1 -5.29646834
+22 9 s9/3 -6.04047203
+22 9 s9/6 -3.76234897
+22 9 s9/8 -5.43208462
+22 9 s9/10 -7.68824788
+22 13 s13/1 -5.23505083
+22 13 s13/3 -5.91668906
+22 13 s13/6 -9.74888145
+22 13 s13/8 -7.79461959
+22 13 s13/10 -5.62148878
+22 15 s15/1 6.73286586
+22 15 s15/3 6.96647669
+22 15 s15/6 7.77765072
+22 15 s15/8 6.80634958
+22 15 s15/10 8.83988680
+22 18 s18/1 -16.16116840
+22 18 s18/3 -9.29962630
+22 18 s18/6 -14.31952413
+22 18 s18/8 -11.42206140
+22 18 s18/10 -14.68082847
+22 19 s19/1 -3.43711526
+22 19 s19/3 -4.80280696
+22 19 s19/6 -2.82458473
+22 19 s19/8 -1.39053037
+22 19 s19/10 -0.47581489
+22 22 s22/1 11.04092508
+22 22 s22/3 12.16142162
+22 22 s22/6 6.23912960
+22 22 s22/8 12.25599722
+22 22 s22/10 11.83743811
+22 23 s23/1 -8.02972446
+22 23 s23/3 -5.99428152
+22 23 s23/6 -2.12890830
+22 23 s23/8 -8.86878506
+22 23 s23/10 -8.14182213
+22 25 s25/1 -7.02894066
+22 25 s25/3 -8.62984245
+22 25 s25/6 -3.63671023
+22 25 s25/8 -1.23475028
+22 25 s25/10 -8.66557096
+22 28 s28/1 -4.86102637
+22 28 s28/3 -2.28562385
+22 28 s28/6 -3.37799557
+22 28 s28/8 -9.65127974
+22 28 s28/10 -2.18468858
+22 30 s30/1 6.40028745
+22 30 s30/3 9.35327217
+22 30 s30/6 3.68419437
+22 30 s30/8 10.78881304
+22 30 s30/10 6.91368141
+22 31 s31/1 3.51346316
+22 31 s31/3 15.08079213
+22 31 s31/6 2.86896786
+22 31 s31/8 3.08210528
+22 31 s31/10 14.46682392
+22 32 s32/1 -6.57921472
+22 32 s32/3 2.89229122
+22 32 s32/6 -2.47766149
+22 32 s32/8 -3.62293133
+22 32 s32/10 -0.16211834
+22 35 s35/1 3.13026927
+22 35 s35/3 3.36494136
+22 35 s35/6 -1.02214768
+22 35 s35/8 -1.50862792
+22 35 s35/10 0.09501480
+22 37 s37/1 -10.27266848
+22 37 s37/3 -9.17236164
+22 37 s37/6 4.62581280
+22 37 s37/8 6.69281568
+22 37 s37/10 -9.75328577
+22 38 s38/1 1.97005783
+22 38 s38/3 3.44279508
+22 38 s38/6 0.93378672
+22 38 s38/8 -2.17599904
+22 38 s38/10 -0.30380280
+22 40 s40/1 1.27973151
+22 40 s40/3 -7.19781378
+22 40 s40/6 4.70558588
+22 40 s40/8 1.85210542
+22 40 s40/10 10.08913296
+23 3 s3/1 2.10995251
+23 3 s3/3 1.71585762
+23 3 s3/6 3.61282805
+23 3 s3/8 3.48767968
+23 3 s3/10 2.29822726
+23 4 s4/1 4.53763476
+23 4 s4/3 4.25264351
+23 4 s4/6 6.23067964
+23 4 s4/8 3.88160808
+23 4 s4/10 4.98321727
+23 7 s7/1 -0.69570917
+23 7 s7/3 -0.47211750
+23 7 s7/6 -1.29386594
+23 7 s7/8 -1.04228691
+23 7 s7/10 -1.56414526
+23 8 s8/1 2.27224705
+23 8 s8/3 5.48204429
+23 8 s8/6 4.86760543
+23 8 s8/8 7.62559326
+23 8 s8/10 6.43286472
+23 9 s9/1 3.93168028
+23 9 s9/3 3.98304382
+23 9 s9/6 7.30800715
+23 9 s9/8 5.63315808
+23 9 s9/10 4.11709484
+23 13 s13/1 5.53423369
+23 13 s13/3 7.82668654
+23 13 s13/6 6.09709917
+23 13 s13/8 4.70769912
+23 13 s13/10 4.08883072
+23 15 s15/1 -2.39589955
+23 15 s15/3 -2.94447883
+23 15 s15/6 -2.63788790
+23 15 s15/8 -1.40559431
+23 15 s15/10 3.80347508
+23 18 s18/1 5.76709732
+23 18 s18/3 8.84015280
+23 18 s18/6 8.63692161
+23 18 s18/8 8.94937090
+23 18 s18/10 8.86309366
+23 19 s19/1 0.23493638
+23 19 s19/3 1.42167854
+23 19 s19/6 0.38963191
+23 19 s19/8 -0.94953172
+23 19 s19/10 0.10896858
+23 22 s22/1 -3.59333782
+23 22 s22/3 -3.19230518
+23 22 s22/6 -4.49837797
+23 22 s22/8 -4.34387064
+23 22 s22/10 -4.20339907
+23 23 s23/1 5.60553923
+23 23 s23/3 5.38567200
+23 23 s23/6 7.34084276
+23 23 s23/8 3.39351389
+23 23 s23/10 5.28722122
+23 25 s25/1 8.40560502
+23 25 s25/3 7.09297790
+23 25 s25/6 6.91658482
+23 25 s25/8 9.93168181
+23 25 s25/10 7.37693565
+23 28 s28/1 4.68194186
+23 28 s28/3 4.12269572
+23 28 s28/6 4.75674132
+23 28 s28/8 3.79269024
+23 28 s28/10 3.59608482
+23 30 s30/1 0.81501379
+23 30 s30/3 1.52789664
+23 30 s30/6 0.59835040
+23 30 s30/8 -0.28021222
+23 30 s30/10 0.47873522
+23 31 s31/1 3.66633409
+23 31 s31/3 2.00242394
+23 31 s31/6 4.04043137
+23 31 s31/8 3.74345221
+23 31 s31/10 2.07158319
+23 32 s32/1 4.16362087
+23 32 s32/3 3.69680843
+23 32 s32/6 -0.65638542
+23 32 s32/8 1.62060409
+23 32 s32/10 -0.91236678
+23 35 s35/1 4.80023994
+23 35 s35/3 5.50107024
+23 35 s35/6 5.01259554
+23 35 s35/8 5.51633500
+23 35 s35/10 3.15756036
+23 37 s37/1 4.11765005
+23 37 s37/3 4.61791777
+23 37 s37/6 -2.23300437
+23 37 s37/8 -2.30697582
+23 37 s37/10 2.62005449
+23 38 s38/1 4.74123575
+23 38 s38/3 1.95403793
+23 38 s38/6 4.90143893
+23 38 s38/8 3.48512668
+23 38 s38/10 1.76854010
+23 40 s40/1 1.45109412
+23 40 s40/3 3.78477604
+23 40 s40/6 2.51206038
+23 40 s40/8 2.31031226
+23 40 s40/10 3.49349578
+25 3 s3/1 12.87923947
+25 3 s3/3 6.69503424
+25 3 s3/6 5.83227159
+25 3 s3/8 5.37580677
+25 3 s3/10 0.75627777
+25 4 s4/1 11.40647797
+25 4 s4/3 9.65275132
+25 4 s4/6 6.61842766
+25 4 s4/8 9.09615793
+25 4 s4/10 3.64473094
+25 7 s7/1 -3.99295431
+25 7 s7/3 -1.91782999
+25 7 s7/6 -1.80305228
+25 7 s7/8 -3.69158579
+25 7 s7/10 -3.57704950
+25 8 s8/1 11.78201936
+25 8 s8/3 6.47781727
+25 8 s8/6 5.52365263
+25 8 s8/8 10.32547082
+25 8 s8/10 6.05749074
+25 9 s9/1 9.92552682
+25 9 s9/3 8.89903635
+25 9 s9/6 11.94152021
+25 9 s9/8 9.93993214
+25 9 s9/10 3.34427983
+25 13 s13/1 13.27396293
+25 13 s13/3 14.68187705
+25 13 s13/6 8.13525037
+25 13 s13/8 6.31983308
+25 13 s13/10 5.58822370
+25 15 s15/1 0.33139193
+25 15 s15/3 -0.28141249
+25 15 s15/6 1.36665236
+25 15 s15/8 2.05841216
+25 15 s15/10 17.75092821
+25 18 s18/1 5.80446681
+25 18 s18/3 16.91115744
+25 18 s18/6 12.31911827
+25 18 s18/8 17.04287361
+25 18 s18/10 13.72721306
+25 19 s19/1 2.07363763
+25 19 s19/3 5.42999619
+25 19 s19/6 4.27675094
+25 19 s19/8 3.03410589
+25 19 s19/10 2.61834747
+25 22 s22/1 -0.18236414
+25 22 s22/3 -1.57142948
+25 22 s22/6 -1.27685631
+25 22 s22/8 -2.50931033
+25 22 s22/10 2.69010089
+25 23 s23/1 5.48586606
+25 23 s23/3 10.35672597
+25 23 s23/6 14.05591888
+25 23 s23/8 -2.08549102
+25 23 s23/10 3.54211167
+25 25 s25/1 20.80489825
+25 25 s25/3 16.29589827
+25 25 s25/6 24.27835164
+25 25 s25/8 19.46616095
+25 25 s25/10 16.59377455
+25 28 s28/1 6.03909565
+25 28 s28/3 5.72685552
+25 28 s28/6 6.23407161
+25 28 s28/8 -1.27239970
+25 28 s28/10 4.69094117
+25 30 s30/1 1.45504551
+25 30 s30/3 4.30041207
+25 30 s30/6 -1.12299487
+25 30 s30/8 0.09619428
+25 30 s30/10 2.74431736
+25 31 s31/1 4.81872230
+25 31 s31/3 12.33068417
+25 31 s31/6 7.63943273
+25 31 s31/8 5.71796980
+25 31 s31/10 11.83700583
+25 32 s32/1 12.06118671
+25 32 s32/3 16.01769022
+25 32 s32/6 5.84043812
+25 32 s32/8 9.71182628
+25 32 s32/10 4.56334111
+25 35 s35/1 17.74694624
+25 35 s35/3 17.87490453
+25 35 s35/6 11.24983997
+25 35 s35/8 12.92863671
+25 35 s35/10 4.60248919
+25 37 s37/1 3.42901287
+25 37 s37/3 3.66865736
+25 37 s37/6 -1.25898904
+25 37 s37/8 1.79268711
+25 37 s37/10 2.06928208
+25 38 s38/1 7.55112434
+25 38 s38/3 9.71210594
+25 38 s38/6 7.95322905
+25 38 s38/8 3.57607026
+25 38 s38/10 6.10871771
+25 40 s40/1 4.69012632
+25 40 s40/3 3.02720354
+25 40 s40/6 8.98700291
+25 40 s40/8 7.71064298
+25 40 s40/10 14.26300704
+28 3 s3/1 1.85285024
+28 3 s3/3 -1.08300766
+28 3 s3/6 1.26401710
+28 3 s3/8 -2.51490399
+28 3 s3/10 -4.54140086
+28 4 s4/1 -0.66830726
+28 4 s4/3 0.10322233
+28 4 s4/6 2.19826779
+28 4 s4/8 0.14872226
+28 4 s4/10 -0.59312819
+28 7 s7/1 0.06096237
+28 7 s7/3 1.64610888
+28 7 s7/6 -0.65120735
+28 7 s7/8 -1.98347760
+28 7 s7/10 -2.32717114
+28 8 s8/1 4.26722356
+28 8 s8/3 2.34795284
+28 8 s8/6 0.23313988
+28 8 s8/8 6.06299649
+28 8 s8/10 2.84303854
+28 9 s9/1 -2.88751543
+28 9 s9/3 -2.46459243
+28 9 s9/6 0.92982192
+28 9 s9/8 -1.12033432
+28 9 s9/10 -3.86209438
+28 13 s13/1 3.67078626
+28 13 s13/3 5.90072090
+28 13 s13/6 3.53924493
+28 13 s13/8 4.21972964
+28 13 s13/10 1.86477489
+28 15 s15/1 4.26524973
+28 15 s15/3 4.27737896
+28 15 s15/6 4.18761520
+28 15 s15/8 2.73364331
+28 15 s15/10 -0.61258998
+28 18 s18/1 2.82794025
+28 18 s18/3 8.83291044
+28 18 s18/6 4.68756333
+28 18 s18/8 8.40788894
+28 18 s18/10 4.14162990
+28 19 s19/1 7.15243835
+28 19 s19/3 8.71442723
+28 19 s19/6 4.87504546
+28 19 s19/8 5.69634795
+28 19 s19/10 5.62212832
+28 22 s22/1 1.44617860
+28 22 s22/3 0.71052755
+28 22 s22/6 1.33890294
+28 22 s22/8 0.96157735
+28 22 s22/10 0.99602528
+28 23 s23/1 0.18092272
+28 23 s23/3 1.27458734
+28 23 s23/6 2.87970326
+28 23 s23/8 -3.13735790
+28 23 s23/10 0.82350484
+28 25 s25/1 0.65951607
+28 25 s25/3 0.96088333
+28 25 s25/6 2.31274742
+28 25 s25/8 4.59619371
+28 25 s25/10 1.21099826
+28 28 s28/1 1.95841587
+28 28 s28/3 -0.42318206
+28 28 s28/6 0.37546400
+28 28 s28/8 -2.17290673
+28 28 s28/10 1.38989178
+28 30 s30/1 -0.60093275
+28 30 s30/3 -1.02452444
+28 30 s30/6 -1.01177809
+28 30 s30/8 2.61182427
+28 30 s30/10 1.35354012
+28 31 s31/1 -5.08585564
+28 31 s31/3 6.77228204
+28 31 s31/6 -3.07627789
+28 31 s31/8 -4.77580703
+28 31 s31/10 7.46335289
+28 32 s32/1 13.45697840
+28 32 s32/3 12.95345591
+28 32 s32/6 10.70571122
+28 32 s32/8 13.01781654
+28 32 s32/10 10.62716988
+28 35 s35/1 2.40384459
+28 35 s35/3 1.61296463
+28 35 s35/6 1.83416815
+28 35 s35/8 1.56837541
+28 35 s35/10 -0.19181211
+28 37 s37/1 -1.65434092
+28 37 s37/3 -0.57714127
+28 37 s37/6 7.85820979
+28 37 s37/8 7.15856035
+28 37 s37/10 0.89290007
+28 38 s38/1 1.08898745
+28 38 s38/3 1.69223447
+28 38 s38/6 2.02591514
+28 38 s38/8 -2.51263356
+28 38 s38/10 -0.73298462
+28 40 s40/1 -1.89967357
+28 40 s40/3 -4.39614628
+28 40 s40/6 1.66086155
+28 40 s40/8 0.95435857
+28 40 s40/10 4.19531468
+30 3 s3/1 -7.98507389
+30 3 s3/3 -7.59461241
+30 3 s3/6 -4.42148053
+30 3 s3/8 -4.52580195
+30 3 s3/10 -9.11021586
+30 4 s4/1 3.22747139
+30 4 s4/3 4.49220906
+30 4 s4/6 -4.92986130
+30 4 s4/8 2.80236955
+30 4 s4/10 -6.92303761
+30 7 s7/1 -8.11883033
+30 7 s7/3 -7.89115244
+30 7 s7/6 -5.66157145
+30 7 s7/8 -8.65832919
+30 7 s7/10 -7.65957270
+30 8 s8/1 4.11155853
+30 8 s8/3 -8.93700949
+30 8 s8/6 -10.05321407
+30 8 s8/8 -7.15844487
+30 8 s8/10 -11.12179918
+30 9 s9/1 -3.34598121
+30 9 s9/3 -4.17365741
+30 9 s9/6 0.67207683
+30 9 s9/8 -2.53101823
+30 9 s9/10 -5.10106843
+30 13 s13/1 -1.38358946
+30 13 s13/3 2.22791831
+30 13 s13/6 -4.39278860
+30 13 s13/8 -4.18383017
+30 13 s13/10 -2.42765660
+30 15 s15/1 4.46327888
+30 15 s15/3 5.01762583
+30 15 s15/6 5.18109859
+30 15 s15/8 5.53551648
+30 15 s15/10 8.50639028
+30 18 s18/1 -8.85305021
+30 18 s18/3 1.09596255
+30 18 s18/6 -5.42642189
+30 18 s18/8 -0.25269621
+30 18 s18/10 -6.62993395
+30 19 s19/1 -1.21516373
+30 19 s19/3 -0.22201779
+30 19 s19/6 -3.16564325
+30 19 s19/8 -3.32372929
+30 19 s19/10 -0.67857428
+30 22 s22/1 2.52461041
+30 22 s22/3 4.08139660
+30 22 s22/6 -0.95589377
+30 22 s22/8 3.28213251
+30 22 s22/10 2.56991514
+30 23 s23/1 -2.17205072
+30 23 s23/3 -0.32696018
+30 23 s23/6 2.80442591
+30 23 s23/8 -5.49810034
+30 23 s23/10 -3.17348122
+30 25 s25/1 -1.66933643
+30 25 s25/3 -3.92016529
+30 25 s25/6 0.78328226
+30 25 s25/8 3.66052428
+30 25 s25/10 -2.92928885
+30 28 s28/1 -3.76145278
+30 28 s28/3 -1.54064730
+30 28 s28/6 -2.32849480
+30 28 s28/8 -9.65813762
+30 28 s28/10 -1.01255976
+30 30 s30/1 8.65070097
+30 30 s30/3 10.42794069
+30 30 s30/6 6.97445205
+30 30 s30/8 15.49461356
+30 30 s30/10 9.06344855
+30 31 s31/1 4.18462844
+30 31 s31/3 16.31043615
+30 31 s31/6 3.33264149
+30 31 s31/8 3.27040203
+30 31 s31/10 17.46561886
+30 32 s32/1 3.09289595
+30 32 s32/3 9.87548970
+30 32 s32/6 1.86983832
+30 32 s32/8 4.70383911
+30 32 s32/10 3.62599589
+30 35 s35/1 2.39815009
+30 35 s35/3 2.42530623
+30 35 s35/6 -1.10249313
+30 35 s35/8 -1.19590187
+30 35 s35/10 -1.81232109
+30 37 s37/1 -8.53426378
+30 37 s37/3 -6.90985767
+30 37 s37/6 2.79862722
+30 37 s37/8 2.02895337
+30 37 s37/10 -9.66527365
+30 38 s38/1 2.29948488
+30 38 s38/3 1.55357507
+30 38 s38/6 2.42314726
+30 38 s38/8 -1.09987115
+30 38 s38/10 -1.77350546
+30 40 s40/1 1.11208885
+30 40 s40/3 -5.20986105
+30 40 s40/6 5.16296278
+30 40 s40/8 1.30580308
+30 40 s40/10 10.02375231
+31 3 s3/1 -1.02835066
+31 3 s3/3 -1.48291061
+31 3 s3/6 -2.65018694
+31 3 s3/8 -3.38562927
+31 3 s3/10 -6.07587869
+31 4 s4/1 3.57300287
+31 4 s4/3 4.17771020
+31 4 s4/6 -4.33632871
+31 4 s4/8 3.30596680
+31 4 s4/10 -4.04579661
+31 7 s7/1 -6.29258764
+31 7 s7/3 -5.71615635
+31 7 s7/6 -6.33938170
+31 7 s7/8 -10.99699685
+31 7 s7/10 -2.20677876
+31 8 s8/1 -0.11240038
+31 8 s8/3 -9.97279077
+31 8 s8/6 -12.59310131
+31 8 s8/8 -5.64586194
+31 8 s8/10 -11.56171171
+31 9 s9/1 -1.34593300
+31 9 s9/3 -0.87451666
+31 9 s9/6 1.69406148
+31 9 s9/8 -1.55885078
+31 9 s9/10 -0.77859795
+31 13 s13/1 -1.91110070
+31 13 s13/3 1.59247453
+31 13 s13/6 -2.67573349
+31 13 s13/8 -2.56186003
+31 13 s13/10 -4.06331498
+31 15 s15/1 7.80112570
+31 15 s15/3 7.15370642
+31 15 s15/6 8.19321142
+31 15 s15/8 8.60296495
+31 15 s15/10 14.69125120
+31 18 s18/1 -3.32451676
+31 18 s18/3 4.55233135
+31 18 s18/6 -2.64986235
+31 18 s18/8 3.95293541
+31 18 s18/10 -3.50016925
+31 19 s19/1 2.00707081
+31 19 s19/3 4.78513490
+31 19 s19/6 -1.71837439
+31 19 s19/8 -3.04192856
+31 19 s19/10 -1.02637195
+31 22 s22/1 2.98206375
+31 22 s22/3 4.21937822
+31 22 s22/6 -2.23876532
+31 22 s22/8 1.58132995
+31 22 s22/10 2.46128655
+31 23 s23/1 -4.66216830
+31 23 s23/3 4.14379366
+31 23 s23/6 6.54303483
+31 23 s23/8 -4.25149976
+31 23 s23/10 -5.45987050
+31 25 s25/1 3.33272459
+31 25 s25/3 1.57552886
+31 25 s25/6 7.26031753
+31 25 s25/8 7.39792819
+31 25 s25/10 0.79933250
+31 28 s28/1 -6.87154380
+31 28 s28/3 -5.44875611
+31 28 s28/6 -5.48288457
+31 28 s28/8 -8.69931526
+31 28 s28/10 -4.55635941
+31 30 s30/1 5.73857908
+31 30 s30/3 7.58976481
+31 30 s30/6 3.89055406
+31 30 s30/8 12.61428357
+31 30 s30/10 6.78381619
+31 31 s31/1 6.60567576
+31 31 s31/3 29.72307398
+31 31 s31/6 8.70725079
+31 31 s31/8 6.43183209
+31 31 s31/10 30.55291378
+31 32 s32/1 9.50610333
+31 32 s32/3 18.01728952
+31 32 s32/6 2.03520925
+31 32 s32/8 6.49874374
+31 32 s32/10 2.97347382
+31 35 s35/1 11.32070362
+31 35 s35/3 11.28758378
+31 35 s35/6 4.49434327
+31 35 s35/8 5.31132354
+31 35 s35/10 7.31182215
+31 37 s37/1 -9.02410436
+31 37 s37/3 -8.19687476
+31 37 s37/6 3.70694087
+31 37 s37/8 2.72214448
+31 37 s37/10 -9.19314801
+31 38 s38/1 -1.88910913
+31 38 s38/3 -2.14093649
+31 38 s38/6 -0.57276637
+31 38 s38/8 -5.74675519
+31 38 s38/10 -4.26821010
+31 40 s40/1 2.18951747
+31 40 s40/3 -0.76815274
+31 40 s40/6 3.76908348
+31 40 s40/8 2.05256854
+31 40 s40/10 9.52559672
+32 3 s3/1 5.86076702
+32 3 s3/3 0.47417089
+32 3 s3/6 -1.39921836
+32 3 s3/8 -5.17871158
+32 3 s3/10 -7.36172928
+32 4 s4/1 1.26531993
+32 4 s4/3 1.56752395
+32 4 s4/6 -0.37541976
+32 4 s4/8 1.22442475
+32 4 s4/10 -2.38396872
+32 7 s7/1 -0.49454325
+32 7 s7/3 2.30065400
+32 7 s7/6 1.29445140
+32 7 s7/8 -2.49877038
+32 7 s7/10 -0.79359720
+32 8 s8/1 3.41117140
+32 8 s8/3 -6.34045807
+32 8 s8/6 -8.89396829
+32 8 s8/8 -0.75334009
+32 8 s8/10 -5.65090756
+32 9 s9/1 -3.31487037
+32 9 s9/3 -2.64512582
+32 9 s9/6 -2.04235749
+32 9 s9/8 -3.36143425
+32 9 s9/10 -5.65573294
+32 13 s13/1 9.73046303
+32 13 s13/3 9.96095711
+32 13 s13/6 5.65219339
+32 13 s13/8 5.09805520
+32 13 s13/10 3.54566581
+32 15 s15/1 9.99671402
+32 15 s15/3 9.56366672
+32 15 s15/6 11.36844096
+32 15 s15/8 5.94136959
+32 15 s15/10 5.36175373
+32 18 s18/1 5.36573281
+32 18 s18/3 15.25936788
+32 18 s18/6 8.50905103
+32 18 s18/8 14.89629090
+32 18 s18/10 7.10178042
+32 19 s19/1 14.00949917
+32 19 s19/3 16.59826986
+32 19 s19/6 13.59581350
+32 19 s19/8 8.50581897
+32 19 s19/10 11.58416281
+32 22 s22/1 3.85585062
+32 22 s22/3 1.15272606
+32 22 s22/6 7.95437422
+32 22 s22/8 2.18135007
+32 22 s22/10 6.26131552
+32 23 s23/1 -5.05499575
+32 23 s23/3 2.13517339
+32 23 s23/6 3.21423078
+32 23 s23/8 -7.08799135
+32 23 s23/10 -5.73258079
+32 25 s25/1 3.69772736
+32 25 s25/3 2.39473808
+32 25 s25/6 8.65367544
+32 25 s25/8 6.25512030
+32 25 s25/10 2.57053659
+32 28 s28/1 -1.89249555
+32 28 s28/3 -3.00758119
+32 28 s28/6 -4.00901828
+32 28 s28/8 -5.73883498
+32 28 s28/10 1.02030401
+32 30 s30/1 -1.64473946
+32 30 s30/3 -0.19822132
+32 30 s30/6 -4.42159272
+32 30 s30/8 2.41553859
+32 30 s30/10 0.59468808
+32 31 s31/1 -10.08613329
+32 31 s31/3 12.79709975
+32 31 s31/6 -5.57937689
+32 31 s31/8 -9.57278338
+32 31 s31/10 14.25709868
+32 32 s32/1 24.40373364
+32 32 s32/3 27.08604920
+32 32 s32/6 20.26998772
+32 32 s32/8 26.47541275
+32 32 s32/10 21.13025817
+32 35 s35/1 7.34210606
+32 35 s35/3 8.67419700
+32 35 s35/6 3.69094411
+32 35 s35/8 4.95927432
+32 35 s35/10 2.24941135
+32 37 s37/1 -4.10222490
+32 37 s37/3 -2.74789849
+32 37 s37/6 9.02225697
+32 37 s37/8 8.67493354
+32 37 s37/10 -0.97595167
+32 38 s38/1 -4.13110488
+32 38 s38/3 1.95529781
+32 38 s38/6 -2.22783547
+32 38 s38/8 -6.90006213
+32 38 s38/10 -2.48800062
+32 40 s40/1 2.20021184
+32 40 s40/3 -2.70509595
+32 40 s40/6 5.06548880
+32 40 s40/8 4.42477323
+32 40 s40/10 11.92761680
+35 3 s3/1 10.31614007
+35 3 s3/3 7.95073585
+35 3 s3/6 2.33033877
+35 3 s3/8 3.72779770
+35 3 s3/10 3.76685098
+35 4 s4/1 7.21130224
+35 4 s4/3 5.69069864
+35 4 s4/6 3.01136504
+35 4 s4/8 5.82809211
+35 4 s4/10 3.54159036
+35 7 s7/1 -0.73206936
+35 7 s7/3 -0.30803946
+35 7 s7/6 -0.86961903
+35 7 s7/8 -3.24782379
+35 7 s7/10 3.62366739
+35 8 s8/1 0.99602708
+35 8 s8/3 -2.54907959
+35 8 s8/6 -3.48311876
+35 8 s8/8 -0.18273054
+35 8 s8/10 -2.92894425
+35 9 s9/1 6.72606339
+35 9 s9/3 6.48963368
+35 9 s9/6 6.69891384
+35 9 s9/8 6.24532519
+35 9 s9/10 5.69037442
+35 13 s13/1 7.51429039
+35 13 s13/3 6.59226199
+35 13 s13/6 5.52145753
+35 13 s13/8 4.03967198
+35 13 s13/10 3.09173770
+35 15 s15/1 2.77539737
+35 15 s15/3 1.40806417
+35 15 s15/6 3.54374055
+35 15 s15/8 3.67773435
+35 15 s15/10 16.08088802
+35 18 s18/1 5.93227590
+35 18 s18/3 9.49542311
+35 18 s18/6 7.02673539
+35 18 s18/8 9.79345478
+35 18 s18/10 8.01504193
+35 19 s19/1 1.20278227
+35 19 s19/3 3.61291973
+35 19 s19/6 1.41887995
+35 19 s19/8 -0.78922205
+35 19 s19/10 -1.09625571
+35 22 s22/1 1.10650108
+35 22 s22/3 0.47638206
+35 22 s22/6 -1.01320824
+35 22 s22/8 -1.13417453
+35 22 s22/10 2.52842642
+35 23 s23/1 -0.52323085
+35 23 s23/3 7.74247421
+35 23 s23/6 8.92721319
+35 23 s23/8 0.12090196
+35 23 s23/10 -1.73262256
+35 25 s25/1 14.30368159
+35 25 s25/3 11.75208898
+35 25 s25/6 16.60182461
+35 25 s25/8 11.61299263
+35 25 s25/10 10.88021298
+35 28 s28/1 -0.47628293
+35 28 s28/3 0.22322034
+35 28 s28/6 0.20569975
+35 28 s28/8 0.05311013
+35 28 s28/10 -0.92839664
+35 30 s30/1 -0.12975824
+35 30 s30/3 1.94343591
+35 30 s30/6 -1.64231219
+35 30 s30/8 -0.70406138
+35 30 s30/10 0.15673616
+35 31 s31/1 6.08124368
+35 31 s31/3 14.74735513
+35 31 s31/6 7.74910864
+35 31 s31/8 6.67515094
+35 31 s31/10 13.95245746
+35 32 s32/1 7.38508684
+35 32 s32/3 12.73280793
+35 32 s32/6 -0.64754820
+35 32 s32/8 4.73215442
+35 32 s32/10 -0.68905052
+35 35 s35/1 16.52997045
+35 35 s35/3 17.79323089
+35 35 s35/6 10.08368745
+35 35 s35/8 12.58936806
+35 35 s35/10 11.49467639
+35 37 s37/1 2.25215263
+35 37 s37/3 1.82654587
+35 37 s37/6 -3.36248524
+35 37 s37/8 -1.18215092
+35 37 s37/10 1.28493251
+35 38 s38/1 -0.71846530
+35 38 s38/3 0.59697089
+35 38 s38/6 0.07036049
+35 38 s38/8 -1.04343794
+35 38 s38/10 0.48099009
+35 40 s40/1 5.96672631
+35 40 s40/3 8.17183718
+35 40 s40/6 5.91549379
+35 40 s40/8 6.30091273
+35 40 s40/10 8.23523694
+37 3 s3/1 3.17236360
+37 3 s3/3 1.29436938
+37 3 s3/6 1.49596797
+37 3 s3/8 0.26385047
+37 3 s3/10 -0.96129107
+37 4 s4/1 -1.25254623
+37 4 s4/3 -1.06722556
+37 4 s4/6 0.25529310
+37 4 s4/8 -1.43851674
+37 4 s4/10 -0.04643413
+37 7 s7/1 1.01011143
+37 7 s7/3 1.95217439
+37 7 s7/6 1.02007925
+37 7 s7/8 0.53667989
+37 7 s7/10 -0.69214775
+37 8 s8/1 4.54734882
+37 8 s8/3 2.45138394
+37 8 s8/6 2.15139904
+37 8 s8/8 2.65724922
+37 8 s8/10 1.98393269
+37 9 s9/1 -1.05515587
+37 9 s9/3 -0.96731298
+37 9 s9/6 0.61016348
+37 9 s9/8 0.20561517
+37 9 s9/10 -1.51966545
+37 13 s13/1 1.50176252
+37 13 s13/3 1.60037187
+37 13 s13/6 2.55449496
+37 13 s13/8 1.47876031
+37 13 s13/10 1.73657381
+37 15 s15/1 1.90824607
+37 15 s15/3 2.04220827
+37 15 s15/6 1.75448742
+37 15 s15/8 0.68680988
+37 15 s15/10 -0.61740719
+37 18 s18/1 0.45886136
+37 18 s18/3 3.52759951
+37 18 s18/6 2.02251784
+37 18 s18/8 3.13360441
+37 18 s18/10 2.15728207
+37 19 s19/1 0.67048809
+37 19 s19/3 0.83928647
+37 19 s19/6 0.21702791
+37 19 s19/8 3.04467929
+37 19 s19/10 0.67822287
+37 22 s22/1 1.49382552
+37 22 s22/3 1.23940576
+37 22 s22/6 1.74308156
+37 22 s22/8 1.87935892
+37 22 s22/10 1.89225170
+37 23 s23/1 0.23099705
+37 23 s23/3 0.26746810
+37 23 s23/6 0.60207399
+37 23 s23/8 -1.56424673
+37 23 s23/10 0.64914296
+37 25 s25/1 0.82774098
+37 25 s25/3 0.85576488
+37 25 s25/6 2.13533140
+37 25 s25/8 1.80840153
+37 25 s25/10 0.68806797
+37 28 s28/1 3.66776698
+37 28 s28/3 1.42297809
+37 28 s28/6 3.09590997
+37 28 s28/8 -0.08811523
+37 28 s28/10 0.77553631
+37 30 s30/1 -0.19276266
+37 30 s30/3 -0.44984045
+37 30 s30/6 -0.25397082
+37 30 s30/8 0.15101245
+37 30 s30/10 0.60809591
+37 31 s31/1 -2.07605328
+37 31 s31/3 0.55682335
+37 31 s31/6 -1.49163630
+37 31 s31/8 -2.12383777
+37 31 s31/10 1.69828271
+37 32 s32/1 6.28122867
+37 32 s32/3 4.22789362
+37 32 s32/6 5.64265901
+37 32 s32/8 6.05461623
+37 32 s32/10 5.92030853
+37 35 s35/1 0.71565023
+37 35 s35/3 -0.13906855
+37 35 s35/6 0.37926573
+37 35 s35/8 0.50791845
+37 35 s35/10 -0.05255231
+37 37 s37/1 2.20234390
+37 37 s37/3 2.92023018
+37 37 s37/6 5.81586987
+37 37 s37/8 5.60921411
+37 37 s37/10 2.27292034
+37 38 s38/1 2.18359060
+37 38 s38/3 1.71030051
+37 38 s38/6 1.83910012
+37 38 s38/8 -0.24087097
+37 38 s38/10 0.86737670
+37 40 s40/1 -1.54818900
+37 40 s40/3 -2.42601751
+37 40 s40/6 1.05303073
+37 40 s40/8 0.62565037
+37 40 s40/10 2.07614335
+38 3 s3/1 3.46730646
+38 3 s3/3 1.08880387
+38 3 s3/6 3.29880458
+38 3 s3/8 5.46879410
+38 3 s3/10 -0.12088150
+38 4 s4/1 3.48962077
+38 4 s4/3 3.80447056
+38 4 s4/6 2.24217546
+38 4 s4/8 2.07380328
+38 4 s4/10 -2.57994849
+38 7 s7/1 -2.80021666
+38 7 s7/3 -2.17793605
+38 7 s7/6 0.23618421
+38 7 s7/8 1.43432725
+38 7 s7/10 -7.85014961
+38 8 s8/1 14.08497723
+38 8 s8/3 12.54890679
+38 8 s8/6 13.97698871
+38 8 s8/8 12.08811098
+38 8 s8/10 11.53765554
+38 9 s9/1 3.73302610
+38 9 s9/3 2.92916706
+38 9 s9/6 6.30519118
+38 9 s9/8 4.40377511
+38 9 s9/10 -2.81192345
+38 13 s13/1 3.90965788
+38 13 s13/3 5.08660894
+38 13 s13/6 -0.58267255
+38 13 s13/8 0.67562704
+38 13 s13/10 0.56104340
+38 15 s15/1 -3.42797299
+38 15 s15/3 -2.38171853
+38 15 s15/6 -2.95622725
+38 15 s15/8 -1.72699749
+38 15 s15/10 2.96918039
+38 18 s18/1 -6.21353392
+38 18 s18/3 0.40645838
+38 18 s18/6 0.15300366
+38 18 s18/8 -0.10233360
+38 18 s18/10 1.06063495
+38 19 s19/1 -1.68111233
+38 19 s19/3 -2.50852626
+38 19 s19/6 2.61342782
+38 19 s19/8 4.44083704
+38 19 s19/10 3.76886641
+38 22 s22/1 0.93168642
+38 22 s22/3 0.62447348
+38 22 s22/6 0.23387020
+38 22 s22/8 1.57244835
+38 22 s22/10 2.30607134
+38 23 s23/1 5.45330367
+38 23 s23/3 -0.00403526
+38 23 s23/6 4.09633618
+38 23 s23/8 -2.60934150
+38 23 s23/10 5.17359582
+38 25 s25/1 4.30094002
+38 25 s25/3 2.60635613
+38 25 s25/6 4.48507136
+38 25 s25/8 6.74572167
+38 25 s25/10 2.40165440
+38 28 s28/1 7.05502471
+38 28 s28/3 7.39303765
+38 28 s28/6 6.97487131
+38 28 s28/8 0.00752808
+38 28 s28/10 6.28906477
+38 30 s30/1 1.51435093
+38 30 s30/3 2.83558865
+38 30 s30/6 0.47567746
+38 30 s30/8 -1.50285388
+38 30 s30/10 2.38301246
+38 31 s31/1 1.35874611
+38 31 s31/3 -5.48904978
+38 31 s31/6 1.74779787
+38 31 s31/8 1.83470344
+38 31 s31/10 -7.26659070
+38 32 s32/1 -6.05081350
+38 32 s32/3 -4.94600291
+38 32 s32/6 -0.67165995
+38 32 s32/8 -3.89238423
+38 32 s32/10 -1.53971359
+38 35 s35/1 1.16177337
+38 35 s35/3 0.77281183
+38 35 s35/6 1.31267163
+38 35 s35/8 0.30084735
+38 35 s35/10 -6.79944142
+38 37 s37/1 1.82758266
+38 37 s37/3 2.44828785
+38 37 s37/6 0.08515907
+38 37 s37/8 2.70327720
+38 37 s37/10 0.81480488
+38 38 s38/1 11.21390064
+38 38 s38/3 11.79151598
+38 38 s38/6 9.91395738
+38 38 s38/8 7.05715539
+38 38 s38/10 8.65961618
+38 40 s40/1 -1.94846005
+38 40 s40/3 -6.63052055
+38 40 s40/6 3.11288978
+38 40 s40/8 1.49631884
+38 40 s40/10 5.61652434
+40 3 s3/1 10.82433067
+40 3 s3/3 9.24866655
+40 3 s3/6 4.21898802
+40 3 s3/8 6.23310525
+40 3 s3/10 5.73377692
+40 4 s4/1 7.80438564
+40 4 s4/3 6.44874100
+40 4 s4/6 5.35481695
+40 4 s4/8 5.82825989
+40 4 s4/10 5.26300621
+40 7 s7/1 0.02831988
+40 7 s7/3 0.56686252
+40 7 s7/6 0.73421262
+40 7 s7/8 -0.20718127
+40 7 s7/10 2.68950833
+40 8 s8/1 1.88565934
+40 8 s8/3 0.60457345
+40 8 s8/6 0.46327107
+40 8 s8/8 2.13228957
+40 8 s8/10 1.14584010
+40 9 s9/1 7.08041779
+40 9 s9/3 7.08540396
+40 9 s9/6 9.17887243
+40 9 s9/8 8.56820330
+40 9 s9/10 6.56824861
+40 13 s13/1 10.43746985
+40 13 s13/3 10.42346677
+40 13 s13/6 9.17140696
+40 13 s13/8 6.04159869
+40 13 s13/10 6.51267003
+40 15 s15/1 1.16592438
+40 15 s15/3 0.27102452
+40 15 s15/6 1.87905493
+40 15 s15/8 1.38874313
+40 15 s15/10 13.42311036
+40 18 s18/1 6.91200112
+40 18 s18/3 12.92521672
+40 18 s18/6 11.39925800
+40 18 s18/8 12.98214544
+40 18 s18/10 12.24333383
+40 19 s19/1 0.55292134
+40 19 s19/3 2.12658207
+40 19 s19/6 3.08304706
+40 19 s19/8 -1.14966457
+40 19 s19/10 0.34812988
+40 22 s22/1 -1.95139199
+40 22 s22/3 -2.46703841
+40 22 s22/6 -2.41202429
+40 22 s22/8 -3.52509124
+40 22 s22/10 -0.53175639
+40 23 s23/1 3.11010917
+40 23 s23/3 9.25446907
+40 23 s23/6 11.38670941
+40 23 s23/8 1.68499229
+40 23 s23/10 2.31182738
+40 25 s25/1 14.94280645
+40 25 s25/3 12.45529785
+40 25 s25/6 15.33050633
+40 25 s25/8 15.29934819
+40 25 s25/10 11.24689671
+40 28 s28/1 5.03841427
+40 28 s28/3 4.19604192
+40 28 s28/6 5.44305640
+40 28 s28/8 4.62623406
+40 28 s28/10 1.13970074
+40 30 s30/1 -0.55191509
+40 30 s30/3 1.24931240
+40 30 s30/6 -1.98487971
+40 30 s30/8 -3.36764962
+40 30 s30/10 -0.89774872
+40 31 s31/1 5.63128801
+40 31 s31/3 7.91909879
+40 31 s31/6 6.78444412
+40 31 s31/8 6.02023372
+40 31 s31/10 8.61689461
+40 32 s32/1 8.18926435
+40 32 s32/3 10.54103127
+40 32 s32/6 0.92660953
+40 32 s32/8 7.09400519
+40 32 s32/10 1.71218211
+40 35 s35/1 13.78385924
+40 35 s35/3 17.21805658
+40 35 s35/6 9.07611553
+40 35 s35/8 11.79700146
+40 35 s35/10 11.31701381
+40 37 s37/1 8.26287834
+40 37 s37/3 8.90924483
+40 37 s37/6 -3.44960998
+40 37 s37/8 -1.50381455
+40 37 s37/10 5.09678518
+40 38 s38/1 3.44112473
+40 38 s38/3 3.02263250
+40 38 s38/6 3.50656839
+40 38 s38/8 1.90254314
+40 38 s38/10 2.53591423
+40 40 s40/1 6.76816746
+40 40 s40/3 9.73580787
+40 40 s40/6 7.36224931
+40 40 s40/8 8.32007360
+40 40 s40/10 10.19680594
diff --git a/bob/bio/gmm/test/data/scores-ztnorm-gmm-dev b/bob/bio/gmm/test/data/scores-ztnorm-gmm-dev
new file mode 100644
index 0000000..699b19d
--- /dev/null
+++ b/bob/bio/gmm/test/data/scores-ztnorm-gmm-dev
@@ -0,0 +1,2000 @@
+3 3 s3/1 2.39928264
+3 3 s3/3 2.09842713
+3 3 s3/6 1.39228085
+3 3 s3/8 2.03851800
+3 3 s3/10 1.16002398
+3 4 s4/1 -0.41142503
+3 4 s4/3 -0.57545021
+3 4 s4/6 -0.18119323
+3 4 s4/8 -1.14695856
+3 4 s4/10 0.12421173
+3 7 s7/1 -0.38882064
+3 7 s7/3 -0.55798407
+3 7 s7/6 -0.35746427
+3 7 s7/8 0.08184540
+3 7 s7/10 -0.25831871
+3 8 s8/1 0.15789471
+3 8 s8/3 0.54990164
+3 8 s8/6 0.69412664
+3 8 s8/8 0.35459538
+3 8 s8/10 0.60629870
+3 9 s9/1 0.76382572
+3 9 s9/3 0.74730927
+3 9 s9/6 0.60765682
+3 9 s9/8 0.53236545
+3 9 s9/10 0.20468889
+3 13 s13/1 0.31700154
+3 13 s13/3 -0.17561649
+3 13 s13/6 -0.17338799
+3 13 s13/8 -0.50527729
+3 13 s13/10 -0.54299451
+3 15 s15/1 -1.28487635
+3 15 s15/3 -1.18865219
+3 15 s15/6 -1.20002226
+3 15 s15/8 -1.40174327
+3 15 s15/10 0.13191942
+3 18 s18/1 -0.13488752
+3 18 s18/3 -0.54588619
+3 18 s18/6 -0.05189005
+3 18 s18/8 -0.39611376
+3 18 s18/10 0.30507639
+3 19 s19/1 -1.04672268
+3 19 s19/3 -1.16298660
+3 19 s19/6 -0.08153599
+3 19 s19/8 -0.50881981
+3 19 s19/10 -0.21066163
+3 22 s22/1 -0.26197083
+3 22 s22/3 -0.48329772
+3 22 s22/6 0.24270414
+3 22 s22/8 -0.35737367
+3 22 s22/10 0.35282707
+3 23 s23/1 -0.26629930
+3 23 s23/3 -0.37319835
+3 23 s23/6 0.34812352
+3 23 s23/8 -0.45769578
+3 23 s23/10 0.05721004
+3 25 s25/1 0.66678198
+3 25 s25/3 0.62790246
+3 25 s25/6 0.78302586
+3 25 s25/8 0.62035577
+3 25 s25/10 0.58566067
+3 28 s28/1 0.99054885
+3 28 s28/3 1.04097595
+3 28 s28/6 0.95156535
+3 28 s28/8 0.48906812
+3 28 s28/10 0.20883764
+3 30 s30/1 -1.44482365
+3 30 s30/3 -1.09871889
+3 30 s30/6 -1.45314900
+3 30 s30/8 -1.63542425
+3 30 s30/10 -1.36550933
+3 31 s31/1 -0.10603469
+3 31 s31/3 -0.96413238
+3 31 s31/6 0.33267910
+3 31 s31/8 0.04668021
+3 31 s31/10 -1.00913945
+3 32 s32/1 -1.33052404
+3 32 s32/3 -1.22833792
+3 32 s32/6 -0.88571583
+3 32 s32/8 -1.13749534
+3 32 s32/10 -1.02702660
+3 35 s35/1 0.07984444
+3 35 s35/3 0.16877909
+3 35 s35/6 0.55500668
+3 35 s35/8 0.36908157
+3 35 s35/10 -0.12875133
+3 37 s37/1 1.19631492
+3 37 s37/3 1.14799980
+3 37 s37/6 -1.04441714
+3 37 s37/8 -0.49039682
+3 37 s37/10 1.05255937
+3 38 s38/1 0.39722626
+3 38 s38/3 0.93755241
+3 38 s38/6 0.23167545
+3 38 s38/8 0.21134458
+3 38 s38/10 1.32401972
+3 40 s40/1 0.05264166
+3 40 s40/3 0.14065083
+3 40 s40/6 -0.53985289
+3 40 s40/8 0.58824475
+3 40 s40/10 -0.24433506
+4 3 s3/1 -0.53254605
+4 3 s3/3 0.31011862
+4 3 s3/6 0.36105073
+4 3 s3/8 0.08192003
+4 3 s3/10 1.29783115
+4 4 s4/1 0.44700984
+4 4 s4/3 0.33216236
+4 4 s4/6 1.41769735
+4 4 s4/8 1.04566816
+4 4 s4/10 1.96453268
+4 7 s7/1 0.33758803
+4 7 s7/3 0.13306970
+4 7 s7/6 -0.25805732
+4 7 s7/8 0.09528859
+4 7 s7/10 0.78662833
+4 8 s8/1 -1.40530933
+4 8 s8/3 -0.30610877
+4 8 s8/6 -0.25282065
+4 8 s8/8 -0.53800081
+4 8 s8/10 -0.14059643
+4 9 s9/1 1.50215599
+4 9 s9/3 1.33827871
+4 9 s9/6 0.13807489
+4 9 s9/8 0.86850416
+4 9 s9/10 1.62155084
+4 13 s13/1 -0.66607626
+4 13 s13/3 -0.80488969
+4 13 s13/6 0.79447295
+4 13 s13/8 0.27320151
+4 13 s13/10 0.46676098
+4 15 s15/1 -1.06079533
+4 15 s15/3 -1.12812163
+4 15 s15/6 -1.25445835
+4 15 s15/8 -0.81211498
+4 15 s15/10 -0.45541270
+4 18 s18/1 1.35336589
+4 18 s18/3 -0.05558663
+4 18 s18/6 0.65466733
+4 18 s18/8 0.10656575
+4 18 s18/10 0.78660141
+4 19 s19/1 -1.39548943
+4 19 s19/3 -1.22739431
+4 19 s19/6 -1.96871146
+4 19 s19/8 -1.48137247
+4 19 s19/10 -1.84980173
+4 22 s22/1 -0.87640892
+4 22 s22/3 -0.62475724
+4 22 s22/6 -1.17400687
+4 22 s22/8 -0.82049729
+4 22 s22/10 -1.24786684
+4 23 s23/1 0.77867581
+4 23 s23/3 1.31891403
+4 23 s23/6 -0.23965683
+4 23 s23/8 1.95372741
+4 23 s23/10 0.87459389
+4 25 s25/1 0.85922854
+4 25 s25/3 1.12806826
+4 25 s25/6 0.26613711
+4 25 s25/8 -0.73908929
+4 25 s25/10 1.42945310
+4 28 s28/1 -0.21632897
+4 28 s28/3 0.14175598
+4 28 s28/6 0.28075101
+4 28 s28/8 1.37914273
+4 28 s28/10 -0.16417191
+4 30 s30/1 0.42085407
+4 30 s30/3 0.14714079
+4 30 s30/6 0.65696241
+4 30 s30/8 -0.17688279
+4 30 s30/10 -0.09832232
+4 31 s31/1 0.98710908
+4 31 s31/3 -0.56712946
+4 31 s31/6 0.62034808
+4 31 s31/8 0.97951973
+4 31 s31/10 -0.60163072
+4 32 s32/1 -0.91990986
+4 32 s32/3 -1.15212762
+4 32 s32/6 -1.33252405
+4 32 s32/8 -1.36283390
+4 32 s32/10 -1.38460428
+4 35 s35/1 -0.26728825
+4 35 s35/3 -0.77745928
+4 35 s35/6 0.47203239
+4 35 s35/8 0.25177992
+4 35 s35/10 0.47482763
+4 37 s37/1 0.93395644
+4 37 s37/3 0.61847451
+4 37 s37/6 -0.86232010
+4 37 s37/8 -1.23509028
+4 37 s37/10 0.56045809
+4 38 s38/1 -0.45698587
+4 38 s38/3 -0.99612212
+4 38 s38/6 -0.63616366
+4 38 s38/8 1.15964110
+4 38 s38/10 -0.46842877
+4 40 s40/1 0.96155369
+4 40 s40/3 1.35519378
+4 40 s40/6 -0.72842824
+4 40 s40/8 -0.67776177
+4 40 s40/10 -1.49028624
+7 3 s3/1 0.43782321
+7 3 s3/3 1.48544043
+7 3 s3/6 0.52659028
+7 3 s3/8 0.04139768
+7 3 s3/10 1.87748869
+7 4 s4/1 -1.52238159
+7 4 s4/3 -2.22297346
+7 4 s4/6 0.02802630
+7 4 s4/8 -1.32282882
+7 4 s4/10 1.20071059
+7 7 s7/1 3.14690813
+7 7 s7/3 2.92166239
+7 7 s7/6 2.84312327
+7 7 s7/8 2.80613687
+7 7 s7/10 2.87088703
+7 8 s8/1 -1.03580144
+7 8 s8/3 -0.09238824
+7 8 s8/6 0.04147944
+7 8 s8/8 -0.71144255
+7 8 s8/10 0.15333691
+7 9 s9/1 0.50327212
+7 9 s9/3 0.79283504
+7 9 s9/6 -1.66876784
+7 9 s9/8 -0.06210024
+7 9 s9/10 1.52859967
+7 13 s13/1 -1.48265554
+7 13 s13/3 -2.66841946
+7 13 s13/6 0.15336769
+7 13 s13/8 0.11947107
+7 13 s13/10 0.34938878
+7 15 s15/1 0.60603747
+7 15 s15/3 0.45919089
+7 15 s15/6 0.33245783
+7 15 s15/8 0.17277360
+7 15 s15/10 -1.40870884
+7 18 s18/1 0.95026227
+7 18 s18/3 -1.52770534
+7 18 s18/6 -0.20939234
+7 18 s18/8 -1.29105012
+7 18 s18/10 -0.17823976
+7 19 s19/1 -0.01391541
+7 19 s19/3 -0.40157368
+7 19 s19/6 -0.44609843
+7 19 s19/8 0.37993840
+7 19 s19/10 -0.87920218
+7 22 s22/1 -0.19035760
+7 22 s22/3 -0.13757635
+7 22 s22/6 0.25968518
+7 22 s22/8 -0.11156235
+7 22 s22/10 -0.52485025
+7 23 s23/1 -0.18237954
+7 23 s23/3 0.40916325
+7 23 s23/6 -2.33854640
+7 23 s23/8 2.01652778
+7 23 s23/10 0.00938264
+7 25 s25/1 -0.98319188
+7 25 s25/3 -0.34489727
+7 25 s25/6 -1.51611707
+7 25 s25/8 -2.61173422
+7 25 s25/10 -0.41004181
+7 28 s28/1 -0.24961188
+7 28 s28/3 -0.98211375
+7 28 s28/6 -0.34741673
+7 28 s28/8 2.21157989
+7 28 s28/10 -1.59436546
+7 30 s30/1 -0.67290167
+7 30 s30/3 -1.23146936
+7 30 s30/6 -0.16287162
+7 30 s30/8 -0.79541584
+7 30 s30/10 -1.06191339
+7 31 s31/1 0.02128545
+7 31 s31/3 -1.08446207
+7 31 s31/6 -0.29677260
+7 31 s31/8 -0.02650263
+7 31 s31/10 -1.11062551
+7 32 s32/1 -0.15980755
+7 32 s32/3 -1.31842756
+7 32 s32/6 -0.06771980
+7 32 s32/8 -0.41929736
+7 32 s32/10 -0.11638291
+7 35 s35/1 -1.17336088
+7 35 s35/3 -0.40148802
+7 35 s35/6 -0.78706788
+7 35 s35/8 -0.20057085
+7 35 s35/10 1.33871789
+7 37 s37/1 1.41111573
+7 37 s37/3 1.15515483
+7 37 s37/6 0.26791239
+7 37 s37/8 -0.13868553
+7 37 s37/10 1.81721953
+7 38 s38/1 -1.46590134
+7 38 s38/3 -1.82467278
+7 38 s38/6 -1.57947590
+7 38 s38/8 -0.03811930
+7 38 s38/10 -0.66881098
+7 40 s40/1 0.59246481
+7 40 s40/3 1.16315485
+7 40 s40/6 -2.31157077
+7 40 s40/8 -0.78014714
+7 40 s40/10 -2.58854735
+8 3 s3/1 -0.29983601
+8 3 s3/3 -0.93246796
+8 3 s3/6 0.89228235
+8 3 s3/8 0.80457720
+8 3 s3/10 -0.64774685
+8 4 s4/1 -0.19538475
+8 4 s4/3 -0.18938962
+8 4 s4/6 -0.25870632
+8 4 s4/8 -0.59780743
+8 4 s4/10 -1.23478074
+8 7 s7/1 -0.13207374
+8 7 s7/3 -0.05582201
+8 7 s7/6 0.35121711
+8 7 s7/8 0.50041984
+8 7 s7/10 -1.01760524
+8 8 s8/1 1.85544705
+8 8 s8/3 1.82862677
+8 8 s8/6 1.81696945
+8 8 s8/8 1.72054938
+8 8 s8/10 1.68034745
+8 9 s9/1 -0.22873221
+8 9 s9/3 -0.30496486
+8 9 s9/6 0.91410690
+8 9 s9/8 0.25401189
+8 9 s9/10 -0.92869143
+8 13 s13/1 -0.75050125
+8 13 s13/3 -0.28744789
+8 13 s13/6 -1.36304133
+8 13 s13/8 -0.94992348
+8 13 s13/10 -1.22779832
+8 15 s15/1 -0.48689438
+8 15 s15/3 -0.34123618
+8 15 s15/6 -0.45633346
+8 15 s15/8 -0.28575945
+8 15 s15/10 -0.46815762
+8 18 s18/1 -1.51689360
+8 18 s18/3 -1.27575286
+8 18 s18/6 -1.14642239
+8 18 s18/8 -1.35105292
+8 18 s18/10 -1.03511602
+8 19 s19/1 -0.17190186
+8 19 s19/3 -0.42555221
+8 19 s19/6 0.26585515
+8 19 s19/8 1.19275142
+8 19 s19/10 0.56697917
+8 22 s22/1 0.12170507
+8 22 s22/3 0.20727447
+8 22 s22/6 0.06990522
+8 22 s22/8 0.31546833
+8 22 s22/10 0.22568429
+8 23 s23/1 1.26359001
+8 23 s23/3 -1.11171173
+8 23 s23/6 -0.32593448
+8 23 s23/8 -0.72004639
+8 23 s23/10 1.14447900
+8 25 s25/1 -0.59970638
+8 25 s25/3 -0.79007140
+8 25 s25/6 -0.51690568
+8 25 s25/8 -0.01454574
+8 25 s25/10 -0.76661638
+8 28 s28/1 1.06566292
+8 28 s28/3 1.19266442
+8 28 s28/6 0.97889829
+8 28 s28/8 -0.75252838
+8 28 s28/10 1.25525376
+8 30 s30/1 0.19320449
+8 30 s30/3 0.26922293
+8 30 s30/6 0.20839743
+8 30 s30/8 0.11301486
+8 30 s30/10 0.36333230
+8 31 s31/1 -0.03278481
+8 31 s31/3 -0.67703375
+8 31 s31/6 0.03857291
+8 31 s31/8 -0.01604624
+8 31 s31/10 -0.73438261
+8 32 s32/1 -0.80814831
+8 32 s32/3 -0.98814566
+8 32 s32/6 0.02882867
+8 32 s32/8 -0.63307378
+8 32 s32/10 -0.14243187
+8 35 s35/1 -1.03394520
+8 35 s35/3 -0.86573583
+8 35 s35/6 -1.06909817
+8 35 s35/8 -1.14941095
+8 35 s35/10 -1.65698602
+8 37 s37/1 -0.62039043
+8 37 s37/3 -0.58991932
+8 37 s37/6 0.32589021
+8 37 s37/8 0.47979398
+8 37 s37/10 -0.43128656
+8 38 s38/1 1.57704856
+8 38 s38/3 1.26638354
+8 38 s38/6 1.64601887
+8 38 s38/8 0.94586612
+8 38 s38/10 1.42723017
+8 40 s40/1 -1.92042656
+8 40 s40/3 -1.56439408
+8 40 s40/6 -1.02571239
+8 40 s40/8 -1.91643145
+8 40 s40/10 -0.19791313
+9 3 s3/1 -0.39298393
+9 3 s3/3 0.04514191
+9 3 s3/6 0.85940415
+9 3 s3/8 0.88355347
+9 3 s3/10 0.97957081
+9 4 s4/1 0.58823000
+9 4 s4/3 0.16072355
+9 4 s4/6 1.04378940
+9 4 s4/8 0.40447669
+9 4 s4/10 0.88220458
+9 7 s7/1 0.15415207
+9 7 s7/3 0.04868415
+9 7 s7/6 -0.03588232
+9 7 s7/8 0.33813294
+9 7 s7/10 0.28305632
+9 8 s8/1 -0.21738852
+9 8 s8/3 0.72347756
+9 8 s8/6 0.82280661
+9 8 s8/8 0.34402413
+9 8 s8/10 0.75124209
+9 9 s9/1 1.50649087
+9 9 s9/3 1.53457443
+9 9 s9/6 1.12851129
+9 9 s9/8 1.70960396
+9 9 s9/10 1.30848805
+9 13 s13/1 -0.58794194
+9 13 s13/3 -0.72069458
+9 13 s13/6 0.41023441
+9 13 s13/8 -0.17760770
+9 13 s13/10 0.28055185
+9 15 s15/1 -1.33983680
+9 15 s15/3 -1.33077765
+9 15 s15/6 -1.44055213
+9 15 s15/8 -0.98118604
+9 15 s15/10 -0.19812484
+9 18 s18/1 0.28058886
+9 18 s18/3 -0.67568992
+9 18 s18/6 0.13967276
+9 18 s18/8 -0.58907925
+9 18 s18/10 0.28994013
+9 19 s19/1 -1.41451016
+9 19 s19/3 -1.47080932
+9 19 s19/6 -1.27656487
+9 19 s19/8 -0.82212750
+9 19 s19/10 -1.32020254
+9 22 s22/1 -1.36758947
+9 22 s22/3 -0.96750186
+9 22 s22/6 -1.68679771
+9 22 s22/8 -1.12755903
+9 22 s22/10 -1.63321939
+9 23 s23/1 1.66149616
+9 23 s23/3 1.20946988
+9 23 s23/6 0.21061770
+9 23 s23/8 1.35475140
+9 23 s23/10 1.41939452
+9 25 s25/1 0.80835166
+9 25 s25/3 0.89132520
+9 25 s25/6 0.25114673
+9 25 s25/8 -0.07446538
+9 25 s25/10 0.91750288
+9 28 s28/1 0.58940382
+9 28 s28/3 0.70181547
+9 28 s28/6 0.98234947
+9 28 s28/8 0.96306597
+9 28 s28/10 -0.36068298
+9 30 s30/1 0.12548320
+9 30 s30/3 -0.07285909
+9 30 s30/6 0.35437655
+9 30 s30/8 -0.53176767
+9 30 s30/10 -0.31856478
+9 31 s31/1 1.28358556
+9 31 s31/3 -1.02657098
+9 31 s31/6 0.87384962
+9 31 s31/8 1.25305410
+9 31 s31/10 -0.96297176
+9 32 s32/1 -1.26732436
+9 32 s32/3 -1.49995625
+9 32 s32/6 -1.53634611
+9 32 s32/8 -1.48876452
+9 32 s32/10 -1.56973607
+9 35 s35/1 -0.32305721
+9 35 s35/3 -0.29921164
+9 35 s35/6 0.08244716
+9 35 s35/8 0.39648430
+9 35 s35/10 0.14957570
+9 37 s37/1 0.87462106
+9 37 s37/3 0.78262393
+9 37 s37/6 -1.05649426
+9 37 s37/8 -1.21199025
+9 37 s37/10 0.50102131
+9 38 s38/1 0.41144016
+9 38 s38/3 -0.47866080
+9 38 s38/6 0.27641295
+9 38 s38/8 1.33322728
+9 38 s38/10 0.17600191
+9 40 s40/1 -0.21949340
+9 40 s40/3 0.67953094
+9 40 s40/6 -0.86587304
+9 40 s40/8 -0.76100345
+9 40 s40/10 -1.38704760
+13 3 s3/1 0.56869427
+13 3 s3/3 0.23662001
+13 3 s3/6 -0.31839647
+13 3 s3/8 -0.43426030
+13 3 s3/10 0.13014594
+13 4 s4/1 -0.20486722
+13 4 s4/3 -0.30326759
+13 4 s4/6 0.86809335
+13 4 s4/8 -0.19850427
+13 4 s4/10 0.33570257
+13 7 s7/1 -0.40056600
+13 7 s7/3 -0.38380266
+13 7 s7/6 -0.52944998
+13 7 s7/8 -0.29623526
+13 7 s7/10 -0.14191091
+13 8 s8/1 -0.92786574
+13 8 s8/3 -0.52861669
+13 8 s8/6 -0.51014731
+13 8 s8/8 -0.36074897
+13 8 s8/10 -0.41476882
+13 9 s9/1 -0.30726014
+13 9 s9/3 -0.36293702
+13 9 s9/6 -0.44940364
+13 9 s9/8 0.05678480
+13 9 s9/10 -0.30950849
+13 13 s13/1 2.27616745
+13 13 s13/3 1.49147581
+13 13 s13/6 1.52579019
+13 13 s13/8 1.92278652
+13 13 s13/10 2.27426317
+13 15 s15/1 -0.59545958
+13 15 s15/3 -0.67021366
+13 15 s15/6 -0.43594063
+13 15 s15/8 -1.00169343
+13 15 s15/10 -0.54102213
+13 18 s18/1 0.85387600
+13 18 s18/3 1.29976912
+13 18 s18/6 1.38087427
+13 18 s18/8 1.35232377
+13 18 s18/10 1.33470267
+13 19 s19/1 0.40548090
+13 19 s19/3 0.54413131
+13 19 s19/6 0.68743296
+13 19 s19/8 -0.45863973
+13 19 s19/10 0.26418990
+13 22 s22/1 0.00681297
+13 22 s22/3 -0.47378896
+13 22 s22/6 0.50686959
+13 22 s22/8 -0.26629189
+13 22 s22/10 0.36837636
+13 23 s23/1 -0.81162672
+13 23 s23/3 -1.00939535
+13 23 s23/6 -0.06549309
+13 23 s23/8 -0.54275113
+13 23 s23/10 -0.54819588
+13 25 s25/1 0.50447141
+13 25 s25/3 0.52308550
+13 25 s25/6 0.29961908
+13 25 s25/8 0.29629567
+13 25 s25/10 0.43346998
+13 28 s28/1 0.15899633
+13 28 s28/3 -0.20062007
+13 28 s28/6 -0.15675203
+13 28 s28/8 0.05369755
+13 28 s28/10 0.19701367
+13 30 s30/1 -1.55295421
+13 30 s30/3 -1.36760275
+13 30 s30/6 -1.50134201
+13 30 s30/8 -1.19151542
+13 30 s30/10 -1.38749676
+13 31 s31/1 -1.28484605
+13 31 s31/3 -0.94719901
+13 31 s31/6 -1.71286979
+13 31 s31/8 -1.18843414
+13 31 s31/10 -0.98423002
+13 32 s32/1 0.21026990
+13 32 s32/3 0.27433687
+13 32 s32/6 -0.22626900
+13 32 s32/8 0.30514739
+13 32 s32/10 -0.15438379
+13 35 s35/1 0.39987990
+13 35 s35/3 0.22356681
+13 35 s35/6 0.33527981
+13 35 s35/8 0.34537604
+13 35 s35/10 0.09458972
+13 37 s37/1 0.51327309
+13 37 s37/3 0.66003681
+13 37 s37/6 -0.82752553
+13 37 s37/8 -0.60849681
+13 37 s37/10 0.72451964
+13 38 s38/1 -0.78093823
+13 38 s38/3 -0.07855292
+13 38 s38/6 -0.93041900
+13 38 s38/8 -0.58151427
+13 38 s38/10 -0.47637961
+13 40 s40/1 0.29631120
+13 40 s40/3 0.61231949
+13 40 s40/6 0.17504406
+13 40 s40/8 0.92452378
+13 40 s40/10 0.13543382
+15 3 s3/1 -0.29578426
+15 3 s3/3 -0.11945952
+15 3 s3/6 -1.48063151
+15 3 s3/8 -0.42392124
+15 3 s3/10 -0.68263706
+15 4 s4/1 0.96230307
+15 4 s4/3 0.68810680
+15 4 s4/6 -1.54972197
+15 4 s4/8 0.59361667
+15 4 s4/10 -1.11129283
+15 7 s7/1 -0.67036926
+15 7 s7/3 -0.77637262
+15 7 s7/6 -0.55072230
+15 7 s7/8 -0.85636659
+15 7 s7/10 -0.26175682
+15 8 s8/1 0.31767938
+15 8 s8/3 -0.78679199
+15 8 s8/6 -0.70272464
+15 8 s8/8 -0.89639619
+15 8 s8/10 -0.99138389
+15 9 s9/1 0.18236109
+15 9 s9/3 0.20298656
+15 9 s9/6 0.07587286
+15 9 s9/8 0.08178226
+15 9 s9/10 -0.20841290
+15 13 s13/1 -0.43736631
+15 13 s13/3 -0.34211645
+15 13 s13/6 -1.07051186
+15 13 s13/8 -1.61837881
+15 13 s13/10 -1.28543231
+15 15 s15/1 0.62546561
+15 15 s15/3 0.60531376
+15 15 s15/6 0.71648498
+15 15 s15/8 0.92101689
+15 15 s15/10 1.77567224
+15 18 s18/1 -1.09343368
+15 18 s18/3 -0.49213219
+15 18 s18/6 -0.97760867
+15 18 s18/8 -0.47277534
+15 18 s18/10 -0.91232434
+15 19 s19/1 -0.47524103
+15 19 s19/3 -0.38948176
+15 19 s19/6 -0.42095031
+15 19 s19/8 -0.27535118
+15 19 s19/10 -0.48270542
+15 22 s22/1 0.20895227
+15 22 s22/3 0.30175506
+15 22 s22/6 -0.44968023
+15 22 s22/8 0.15437258
+15 22 s22/10 0.28244607
+15 23 s23/1 -0.83885892
+15 23 s23/3 0.23959962
+15 23 s23/6 0.59614846
+15 23 s23/8 -0.78929800
+15 23 s23/10 -1.25624537
+15 25 s25/1 0.21772465
+15 25 s25/3 -0.15759647
+15 25 s25/6 0.73109438
+15 25 s25/8 0.55655520
+15 25 s25/10 -0.24224293
+15 28 s28/1 -1.15685729
+15 28 s28/3 -0.93018584
+15 28 s28/6 -0.89476705
+15 28 s28/8 -1.04227355
+15 28 s28/10 -1.47833857
+15 30 s30/1 0.54877396
+15 30 s30/3 0.74845725
+15 30 s30/6 0.32675241
+15 30 s30/8 0.61495758
+15 30 s30/10 0.60718355
+15 31 s31/1 0.75193713
+15 31 s31/3 1.17961702
+15 31 s31/6 0.76274226
+15 31 s31/8 0.74166533
+15 31 s31/10 1.14151426
+15 32 s32/1 -0.07985071
+15 32 s32/3 0.48787173
+15 32 s32/6 -0.34325912
+15 32 s32/8 -0.01863382
+15 32 s32/10 -0.23930584
+15 35 s35/1 1.43241457
+15 35 s35/3 1.53534479
+15 35 s35/6 0.25871549
+15 35 s35/8 0.53847680
+15 35 s35/10 0.37589196
+15 37 s37/1 -1.00539560
+15 37 s37/3 -1.00997005
+15 37 s37/6 -0.17656259
+15 37 s37/8 -0.05962671
+15 37 s37/10 -1.42905705
+15 38 s38/1 -0.18652904
+15 38 s38/3 -0.00780448
+15 38 s38/6 -0.19086043
+15 38 s38/8 -0.57545310
+15 38 s38/10 -0.17899539
+15 40 s40/1 0.27700378
+15 40 s40/3 -0.22137315
+15 40 s40/6 1.11529855
+15 40 s40/8 0.77265369
+15 40 s40/10 0.94689579
+18 3 s3/1 0.34694387
+18 3 s3/3 0.68184142
+18 3 s3/6 -0.37436456
+18 3 s3/8 -0.24713058
+18 3 s3/10 0.79932173
+18 4 s4/1 -0.25974800
+18 4 s4/3 -0.35218229
+18 4 s4/6 0.83662094
+18 4 s4/8 -0.02563463
+18 4 s4/10 1.39149772
+18 7 s7/1 0.04036663
+18 7 s7/3 0.09668983
+18 7 s7/6 -0.12311528
+18 7 s7/8 -0.01264810
+18 7 s7/10 0.69778359
+18 8 s8/1 -1.51833453
+18 8 s8/3 -1.03253878
+18 8 s8/6 -1.02009797
+18 8 s8/8 -0.92897130
+18 8 s8/10 -0.80579000
+18 9 s9/1 0.39112253
+18 9 s9/3 0.41766809
+18 9 s9/6 -0.77821616
+18 9 s9/8 -0.18542767
+18 9 s9/10 0.84315375
+18 13 s13/1 0.57808423
+18 13 s13/3 0.15556601
+18 13 s13/6 1.40047372
+18 13 s13/8 0.83000549
+18 13 s13/10 1.02087752
+18 15 s15/1 -0.54834133
+18 15 s15/3 -0.64156638
+18 15 s15/6 -0.58364357
+18 15 s15/8 -0.84682287
+18 15 s15/10 -0.35151269
+18 18 s18/1 1.69077358
+18 18 s18/3 0.89827718
+18 18 s18/6 1.41685081
+18 18 s18/8 1.09606831
+18 18 s18/10 1.33756735
+18 19 s19/1 -0.03195194
+18 19 s19/3 0.12588508
+18 19 s19/6 -0.11832084
+18 19 s19/8 -1.01326815
+18 19 s19/10 -0.44585019
+18 22 s22/1 -1.01692829
+18 22 s22/3 -1.11190220
+18 22 s22/6 -0.40717410
+18 22 s22/8 -1.03669766
+18 22 s22/10 -0.93673907
+18 23 s23/1 -0.68249411
+18 23 s23/3 0.60289671
+18 23 s23/6 -0.45273720
+18 23 s23/8 0.76388799
+18 23 s23/10 -0.62520795
+18 25 s25/1 0.57724574
+18 25 s25/3 0.86307658
+18 25 s25/6 0.38966371
+18 25 s25/8 -0.32128893
+18 25 s25/10 0.89782905
+18 28 s28/1 -0.57195552
+18 28 s28/3 -0.48401077
+18 28 s28/6 -0.65976500
+18 28 s28/8 0.89821206
+18 28 s28/10 -0.43749401
+18 30 s30/1 -0.77477468
+18 30 s30/3 -0.82599945
+18 30 s30/6 -0.83482765
+18 30 s30/8 -0.89213134
+18 30 s30/10 -1.00468003
+18 31 s31/1 -0.44045988
+18 31 s31/3 -0.47240417
+18 31 s31/6 -0.37748463
+18 31 s31/8 -0.44049794
+18 31 s31/10 -0.32971292
+18 32 s32/1 0.30229243
+18 32 s32/3 0.17300048
+18 32 s32/6 -0.21053699
+18 32 s32/8 0.18823291
+18 32 s32/10 -0.12677711
+18 35 s35/1 0.10294261
+18 35 s35/3 -0.22009658
+18 35 s35/6 0.60282530
+18 35 s35/8 0.60311056
+18 35 s35/10 0.79117417
+18 37 s37/1 0.95401335
+18 37 s37/3 0.87054987
+18 37 s37/6 -0.87551364
+18 37 s37/8 -1.02615232
+18 37 s37/10 0.77422135
+18 38 s38/1 -1.38102894
+18 38 s38/3 -1.10772180
+18 38 s38/6 -1.41122313
+18 38 s38/8 -0.78591371
+18 38 s38/10 -1.04009456
+18 40 s40/1 1.07095922
+18 40 s40/3 1.31697780
+18 40 s40/6 -0.21145328
+18 40 s40/8 0.79552151
+18 40 s40/10 -0.67145209
+19 3 s3/1 -0.68147727
+19 3 s3/3 -1.27373454
+19 3 s3/6 -0.56052504
+19 3 s3/8 -0.98406382
+19 3 s3/10 -1.16754161
+19 4 s4/1 -0.80206358
+19 4 s4/3 -0.49352095
+19 4 s4/6 -0.10053573
+19 4 s4/8 -0.42076930
+19 4 s4/10 -1.15983761
+19 7 s7/1 0.36937786
+19 7 s7/3 0.66399422
+19 7 s7/6 0.85445230
+19 7 s7/8 0.66597491
+19 7 s7/10 -0.35386518
+19 8 s8/1 0.84700630
+19 8 s8/3 0.85106252
+19 8 s8/6 0.71005864
+19 8 s8/8 1.14593673
+19 8 s8/10 0.87353775
+19 9 s9/1 -1.05451827
+19 9 s9/3 -0.97737504
+19 9 s9/6 -0.96160238
+19 9 s9/8 -1.23048178
+19 9 s9/10 -1.37616179
+19 13 s13/1 0.14162374
+19 13 s13/3 0.15721882
+19 13 s13/6 -0.92828394
+19 13 s13/8 0.42819335
+19 13 s13/10 -0.82115595
+19 15 s15/1 0.68873862
+19 15 s15/3 0.75357465
+19 15 s15/6 0.77426980
+19 15 s15/8 0.54832508
+19 15 s15/10 -0.99714266
+19 18 s18/1 -0.58530083
+19 18 s18/3 -0.49380322
+19 18 s18/6 -0.58671889
+19 18 s18/8 -0.46598088
+19 18 s18/10 -0.77320938
+19 19 s19/1 2.15016529
+19 19 s19/3 1.94799486
+19 19 s19/6 2.29925172
+19 19 s19/8 2.00958141
+19 19 s19/10 2.14470980
+19 22 s22/1 0.56811295
+19 22 s22/3 0.33325783
+19 22 s22/6 1.00575000
+19 22 s22/8 0.55703261
+19 22 s22/10 0.45845978
+19 23 s23/1 -0.04526789
+19 23 s23/3 -1.39377853
+19 23 s23/6 -1.38135364
+19 23 s23/8 -0.80574331
+19 23 s23/10 -0.13957840
+19 25 s25/1 -1.34578017
+19 25 s25/3 -1.28122380
+19 25 s25/6 -1.22076935
+19 25 s25/8 -1.17483424
+19 25 s25/10 -1.29605114
+19 28 s28/1 -0.55129648
+19 28 s28/3 -0.58501163
+19 28 s28/6 -1.17256005
+19 28 s28/8 -0.77494276
+19 28 s28/10 0.90509554
+19 30 s30/1 -0.28446084
+19 30 s30/3 -0.42556674
+19 30 s30/6 -0.37380470
+19 30 s30/8 0.10710346
+19 30 s30/10 0.06981034
+19 31 s31/1 -1.44610693
+19 31 s31/3 -0.31441054
+19 31 s31/6 -1.34963067
+19 31 s31/8 -1.42192181
+19 31 s31/10 -0.49223417
+19 32 s32/1 0.49646060
+19 32 s32/3 0.48269277
+19 32 s32/6 1.24911222
+19 32 s32/8 0.89291213
+19 32 s32/10 1.03642193
+19 35 s35/1 -1.03615684
+19 35 s35/3 -0.84612219
+19 35 s35/6 -1.08546503
+19 35 s35/8 -1.10775818
+19 35 s35/10 -1.32524272
+19 37 s37/1 -1.34475996
+19 37 s37/3 -1.49329573
+19 37 s37/6 0.79417980
+19 37 s37/8 0.84829693
+19 37 s37/10 -0.43057172
+19 38 s38/1 -0.14315165
+19 38 s38/3 0.46535129
+19 38 s38/6 0.15093047
+19 38 s38/8 -0.42048955
+19 38 s38/10 0.19247419
+19 40 s40/1 -1.32332479
+19 40 s40/3 -1.37449625
+19 40 s40/6 -0.99427887
+19 40 s40/8 -1.46114146
+19 40 s40/10 -0.28446562
+22 3 s3/1 -0.82779837
+22 3 s3/3 -0.28308475
+22 3 s3/6 -1.23585552
+22 3 s3/8 0.11731410
+22 3 s3/10 -0.16798298
+22 4 s4/1 -0.17572606
+22 4 s4/3 0.28698020
+22 4 s4/6 -2.13998470
+22 4 s4/8 -0.11248948
+22 4 s4/10 -1.11425541
+22 7 s7/1 0.11412894
+22 7 s7/3 -0.23731563
+22 7 s7/6 0.28915457
+22 7 s7/8 -0.01827075
+22 7 s7/10 0.09047329
+22 8 s8/1 0.38016865
+22 8 s8/3 -0.70214188
+22 8 s8/6 -0.50306702
+22 8 s8/8 -1.08907207
+22 8 s8/10 -1.00759631
+22 9 s9/1 -0.83598263
+22 9 s9/3 -0.99072710
+22 9 s9/6 -1.03215688
+22 9 s9/8 -1.18034422
+22 9 s9/10 -0.54742155
+22 13 s13/1 -1.60706353
+22 13 s13/3 -1.57558206
+22 13 s13/6 -1.78202581
+22 13 s13/8 -1.86571090
+22 13 s13/10 -1.21610515
+22 15 s15/1 1.31597764
+22 15 s15/3 1.36974676
+22 15 s15/6 1.34857744
+22 15 s15/8 1.55615818
+22 15 s15/10 0.53974005
+22 18 s18/1 -1.42868105
+22 18 s18/3 -2.02038676
+22 18 s18/6 -2.18934205
+22 18 s18/8 -2.10458990
+22 18 s18/10 -2.16073179
+22 19 s19/1 -0.05720757
+22 19 s19/3 -0.40837426
+22 19 s19/6 -0.10776962
+22 19 s19/8 0.09527324
+22 19 s19/10 0.33722331
+22 22 s22/1 2.35133735
+22 22 s22/3 2.49839705
+22 22 s22/6 1.70032960
+22 22 s22/8 2.36457050
+22 22 s22/10 2.12020362
+22 23 s23/1 -1.00826855
+22 23 s23/3 -1.60494588
+22 23 s23/6 -1.14563527
+22 23 s23/8 -0.32850148
+22 23 s23/10 -0.91138684
+22 25 s25/1 -1.66741229
+22 25 s25/3 -1.85286587
+22 25 s25/6 -1.60715020
+22 25 s25/8 -1.20785233
+22 25 s25/10 -1.84368116
+22 28 s28/1 -0.67018332
+22 28 s28/3 -0.00995443
+22 28 s28/6 -0.37880357
+22 28 s28/8 -0.60493836
+22 28 s28/10 0.21733896
+22 30 s30/1 1.68965425
+22 30 s30/3 1.76201125
+22 30 s30/6 1.57592013
+22 30 s30/8 1.50733286
+22 30 s30/10 1.59466970
+22 31 s31/1 0.86590594
+22 31 s31/3 0.98171805
+22 31 s31/6 0.68440692
+22 31 s31/8 0.78916670
+22 31 s31/10 0.89370124
+22 32 s32/1 -1.03634890
+22 32 s32/3 -0.23130407
+22 32 s32/6 -0.18357236
+22 32 s32/8 -0.58461653
+22 32 s32/10 0.06341945
+22 35 s35/1 -0.34807358
+22 35 s35/3 -0.34659462
+22 35 s35/6 -0.84238527
+22 35 s35/8 -1.00590416
+22 35 s35/10 0.10285718
+22 37 s37/1 -1.03202198
+22 37 s37/3 -1.07148917
+22 37 s37/6 0.86523732
+22 37 s37/8 1.03583146
+22 37 s37/10 -1.05628094
+22 38 s38/1 0.42678308
+22 38 s38/3 0.54448548
+22 38 s38/6 0.28732729
+22 38 s38/8 0.34814525
+22 38 s38/10 0.39662289
+22 40 s40/1 0.77325476
+22 40 s40/3 -0.33346757
+22 40 s40/6 1.42849963
+22 40 s40/8 0.82125703
+22 40 s40/10 0.99508293
+23 3 s3/1 -1.03260460
+23 3 s3/3 -0.67384512
+23 3 s3/6 0.57488929
+23 3 s3/8 0.29491579
+23 3 s3/10 0.15440268
+23 4 s4/1 0.39253047
+23 4 s4/3 0.42421086
+23 4 s4/6 1.59247133
+23 4 s4/8 0.41887530
+23 4 s4/10 0.87073149
+23 7 s7/1 -0.53554918
+23 7 s7/3 -0.65611613
+23 7 s7/6 -1.03887473
+23 7 s7/8 -0.58081782
+23 7 s7/10 -0.61919109
+23 8 s8/1 -0.45133259
+23 8 s8/3 0.49979649
+23 8 s8/6 0.40068498
+23 8 s8/8 0.77627161
+23 8 s8/10 0.72549273
+23 9 s9/1 0.17921558
+23 9 s9/3 0.26339395
+23 9 s9/6 1.32600115
+23 9 s9/8 0.88653000
+23 9 s9/10 0.61592201
+23 13 s13/1 0.28844676
+23 13 s13/3 1.06931859
+23 13 s13/6 0.82966109
+23 13 s13/8 0.80801395
+23 13 s13/10 0.63918319
+23 15 s15/1 -1.41343675
+23 15 s15/3 -1.47056878
+23 15 s15/6 -1.49957605
+23 15 s15/8 -1.33567852
+23 15 s15/10 -0.58999715
+23 18 s18/1 0.66926576
+23 18 s18/3 0.89611216
+23 18 s18/6 1.18233876
+23 18 s18/8 0.89031619
+23 18 s18/10 1.08468002
+23 19 s19/1 -0.61434381
+23 19 s19/3 -0.45018309
+23 19 s19/6 -0.72142352
+23 19 s19/8 -0.95054601
+23 19 s19/10 -0.61306088
+23 22 s22/1 -1.79098555
+23 22 s22/3 -1.49905856
+23 22 s22/6 -1.87277533
+23 22 s22/8 -1.63158976
+23 22 s22/10 -2.01966369
+23 23 s23/1 1.44468715
+23 23 s23/3 0.75879039
+23 23 s23/6 1.26084096
+23 23 s23/8 0.84112013
+23 23 s23/10 1.46490812
+23 25 s25/1 0.64134230
+23 25 s25/3 0.63077735
+23 25 s25/6 -0.10021570
+23 25 s25/8 1.22045814
+23 25 s25/10 0.75717919
+23 28 s28/1 0.56349621
+23 28 s28/3 0.63886619
+23 28 s28/6 0.66308139
+23 28 s28/8 0.63949907
+23 28 s28/10 0.59416297
+23 30 s30/1 -0.28421910
+23 30 s30/3 -0.25189596
+23 30 s30/6 -0.12781739
+23 30 s30/8 -0.33531811
+23 30 s30/10 -0.50129389
+23 31 s31/1 0.35184571
+23 31 s31/3 -0.53638712
+23 31 s31/6 0.29553906
+23 31 s31/8 0.33256907
+23 31 s31/10 -0.48595285
+23 32 s32/1 -0.29742419
+23 32 s32/3 -0.52265310
+23 32 s32/6 -0.91526102
+23 32 s32/8 -0.68899187
+23 32 s32/10 -0.92512141
+23 35 s35/1 -0.54074969
+23 35 s35/3 -0.32569092
+23 35 s35/6 0.31917998
+23 35 s35/8 0.18052859
+23 35 s35/10 -0.10102705
+23 37 s37/1 0.41325502
+23 37 s37/3 0.54657165
+23 37 s37/6 -1.00789245
+23 37 s37/8 -1.32498918
+23 37 s37/10 0.08189913
+23 38 s38/1 0.41662074
+23 38 s38/3 -0.51129985
+23 38 s38/6 0.48542799
+23 38 s38/8 0.62680650
+23 38 s38/10 -0.42640625
+23 40 s40/1 -0.39670451
+23 40 s40/3 0.36162551
+23 40 s40/6 -0.98178590
+23 40 s40/8 -1.13860312
+23 40 s40/10 -0.60915915
+25 3 s3/1 0.38788836
+25 3 s3/3 -0.25864690
+25 3 s3/6 -0.27786114
+25 3 s3/8 -0.27066846
+25 3 s3/10 -0.58532625
+25 4 s4/1 0.90349694
+25 4 s4/3 0.58878418
+25 4 s4/6 0.00616744
+25 4 s4/8 0.64317801
+25 4 s4/10 -0.22703330
+25 7 s7/1 -1.14418389
+25 7 s7/3 -1.03870819
+25 7 s7/6 -1.18472572
+25 7 s7/8 -1.10111072
+25 7 s7/10 -0.87583107
+25 8 s8/1 0.14702127
+25 8 s8/3 -0.03989814
+25 8 s8/6 -0.07505656
+25 8 s8/8 0.19617332
+25 8 s8/10 -0.05746089
+25 9 s9/1 0.48568916
+25 9 s9/3 0.33423703
+25 9 s9/6 0.65267902
+25 9 s9/8 0.45271495
+25 9 s9/10 -0.27827417
+25 13 s13/1 0.74679592
+25 13 s13/3 0.86691242
+25 13 s13/6 -0.07069389
+25 13 s13/8 -0.34840016
+25 13 s13/10 -0.47831092
+25 15 s15/1 -0.87129230
+25 15 s15/3 -0.88294480
+25 15 s15/6 -0.74843755
+25 15 s15/8 -0.71268857
+25 15 s15/10 0.79842283
+25 18 s18/1 -0.05676750
+25 18 s18/3 0.79822372
+25 18 s18/6 0.41795924
+25 18 s18/8 0.78978664
+25 18 s18/10 0.52072639
+25 19 s19/1 -0.56077629
+25 19 s19/3 -0.22848570
+25 19 s19/6 -0.36333825
+25 19 s19/8 -0.47052536
+25 19 s19/10 -0.44681034
+25 22 s22/1 -0.87805640
+25 22 s22/3 -0.98951483
+25 22 s22/6 -0.89298038
+25 22 s22/8 -0.98290752
+25 22 s22/10 -0.51204244
+25 23 s23/1 -0.02148167
+25 23 s23/3 0.52170257
+25 23 s23/6 1.06072874
+25 23 s23/8 -0.79986579
+25 23 s23/10 -0.36079736
+25 25 s25/1 1.29936907
+25 25 s25/3 1.00279252
+25 25 s25/6 1.67218019
+25 25 s25/8 1.21615536
+25 25 s25/10 1.08995361
+25 28 s28/1 -0.26075740
+25 28 s28/3 -0.17618488
+25 28 s28/6 -0.19360973
+25 28 s28/8 -0.79604979
+25 28 s28/10 -0.24602389
+25 30 s30/1 -0.52116403
+25 30 s30/3 -0.21786640
+25 30 s30/6 -0.78278031
+25 30 s30/8 -0.40987337
+25 30 s30/10 -0.40218368
+25 31 s31/1 -0.13524391
+25 31 s31/3 0.14503692
+25 31 s31/6 0.10237478
+25 31 s31/8 -0.05675683
+25 31 s31/10 0.10485587
+25 32 s32/1 0.07267514
+25 32 s32/3 0.31236126
+25 32 s32/6 -0.22628334
+25 32 s32/8 -0.08690554
+25 32 s32/10 -0.35558310
+25 35 s35/1 0.99836321
+25 35 s35/3 0.78791812
+25 35 s35/6 0.61676515
+25 35 s35/8 0.59642364
+25 35 s35/10 -0.47653397
+25 37 s37/1 -0.41995907
+25 37 s37/3 -0.50693617
+25 37 s37/6 -0.81744558
+25 37 s37/8 -0.67095192
+25 37 s37/10 -0.65829547
+25 38 s38/1 0.03009282
+25 38 s38/3 0.28166168
+25 38 s38/6 0.07730638
+25 38 s38/8 -0.31010045
+25 38 s38/10 -0.06040958
+25 40 s40/1 -0.23938114
+25 40 s40/3 -0.22977219
+25 40 s40/6 0.16248276
+25 40 s40/8 -0.16861445
+25 40 s40/10 0.51569872
+28 3 s3/1 -0.75788220
+28 3 s3/3 -1.11628312
+28 3 s3/6 -0.32205602
+28 3 s3/8 -1.64401303
+28 3 s3/10 -1.23539112
+28 4 s4/1 -1.57217599
+28 4 s4/3 -1.07596909
+28 4 s4/6 0.15646502
+28 4 s4/8 -1.01849042
+28 4 s4/10 -0.36374443
+28 7 s7/1 0.04287176
+28 7 s7/3 0.30585728
+28 7 s7/6 -0.27764777
+28 7 s7/8 -0.37296925
+28 7 s7/10 -0.40877734
+28 8 s8/1 0.02128638
+28 8 s8/3 0.06599131
+28 8 s8/6 -0.21941329
+28 8 s8/8 0.54327031
+28 8 s8/10 0.18264756
+28 9 s9/1 -1.81578851
+28 9 s9/3 -1.73810417
+28 9 s9/6 -1.00455875
+28 9 s9/8 -1.61381829
+28 9 s9/10 -1.20486963
+28 13 s13/1 -0.18873329
+28 13 s13/3 0.51359419
+28 13 s13/6 0.17299236
+28 13 s13/8 0.95601789
+28 13 s13/10 -0.09988486
+28 15 s15/1 0.72898461
+28 15 s15/3 0.77069852
+28 15 s15/6 0.62337372
+28 15 s15/8 0.40248672
+28 15 s15/10 -1.39331763
+28 18 s18/1 0.22893293
+28 18 s18/3 0.92199237
+28 18 s18/6 0.22597911
+28 18 s18/8 0.77867086
+28 18 s18/10 0.00580139
+28 19 s19/1 1.41477856
+28 19 s19/3 1.51085715
+28 19 s19/6 0.76180256
+28 19 s19/8 0.86281213
+28 19 s19/10 1.02504215
+28 22 s22/1 0.22895101
+28 22 s22/3 0.10751780
+28 22 s22/6 0.33695890
+28 22 s22/8 0.22798274
+28 22 s22/10 -0.07912421
+28 23 s23/1 -0.37534063
+28 23 s23/3 -0.84148985
+28 23 s23/6 -0.62897315
+28 23 s23/8 -0.64925576
+28 23 s23/10 0.00470522
+28 25 s25/1 -1.26563354
+28 25 s25/3 -1.04351210
+28 25 s25/6 -1.23238843
+28 25 s25/8 -0.47258391
+28 25 s25/10 -0.95047392
+28 28 s28/1 -0.09323523
+28 28 s28/3 -0.87096352
+28 28 s28/6 -0.62692037
+28 28 s28/8 -0.55673524
+28 28 s28/10 0.07839421
+28 30 s30/1 -0.28378672
+28 30 s30/3 -0.57361675
+28 30 s30/6 -0.17396619
+28 30 s30/8 0.43573395
+28 30 s30/10 0.13635153
+28 31 s31/1 -1.52300760
+28 31 s31/3 0.33605604
+28 31 s31/6 -1.49852436
+28 31 s31/8 -1.57734323
+28 31 s31/10 0.42415751
+28 32 s32/1 1.58810886
+28 32 s32/3 1.16396025
+28 32 s32/6 1.54091210
+28 32 s32/8 1.51689525
+28 32 s32/10 1.47707127
+28 35 s35/1 -1.05672491
+28 35 s35/3 -1.19839290
+28 35 s35/6 -1.16283270
+28 35 s35/8 -1.23185320
+28 35 s35/10 -0.65403866
+28 37 s37/1 -0.77421177
+28 37 s37/3 -0.65286760
+28 37 s37/6 1.33139600
+28 37 s37/8 1.15737948
+28 37 s37/10 -0.09334576
+28 38 s38/1 -0.30460191
+28 38 s38/3 -0.26125923
+28 38 s38/6 -0.10381703
+28 38 s38/8 -1.17751540
+28 38 s38/10 -0.87983850
+28 40 s40/1 -1.07969926
+28 40 s40/3 -0.93655184
+28 40 s40/6 -0.81366367
+28 40 s40/8 -1.26661212
+28 40 s40/10 -0.15606157
+30 3 s3/1 -2.16750068
+30 3 s3/3 -1.60095894
+30 3 s3/6 -1.57542744
+30 3 s3/8 -0.96098217
+30 3 s3/10 -1.04160134
+30 4 s4/1 0.66444254
+30 4 s4/3 1.22997273
+30 4 s4/6 -1.15961251
+30 4 s4/8 0.97667249
+30 4 s4/10 -0.80344739
+30 7 s7/1 -0.71256811
+30 7 s7/3 -0.87487378
+30 7 s7/6 -0.54321020
+30 7 s7/8 -0.76501764
+30 7 s7/10 -0.50416116
+30 8 s8/1 0.11814166
+30 8 s8/3 -0.98090571
+30 8 s8/6 -0.95501285
+30 8 s8/8 -1.03537550
+30 8 s8/10 -1.20680089
+30 9 s9/1 -0.83192296
+30 9 s9/3 -1.03474797
+30 9 s9/6 -0.33414610
+30 9 s9/8 -0.92687538
+30 9 s9/10 -0.50258883
+30 13 s13/1 -1.11159012
+30 13 s13/3 -0.23077196
+30 13 s13/6 -1.20193626
+30 13 s13/8 -1.44329721
+30 13 s13/10 -0.77968286
+30 15 s15/1 0.94886151
+30 15 s15/3 1.06963974
+30 15 s15/6 0.96835781
+30 15 s15/8 1.31784583
+30 15 s15/10 0.54420521
+30 18 s18/1 -0.98151844
+30 18 s18/3 -0.65195143
+30 18 s18/6 -1.28526723
+30 18 s18/8 -0.77911616
+30 18 s18/10 -1.45731737
+30 19 s19/1 0.03617678
+30 19 s19/3 -0.00090444
+30 19 s19/6 -0.41256704
+30 19 s19/8 -0.36470026
+30 19 s19/10 0.13110394
+30 22 s22/1 0.91300062
+30 22 s22/3 1.23321662
+30 22 s22/6 0.40663586
+30 22 s22/8 1.06651526
+30 22 s22/10 0.68027846
+30 23 s23/1 -0.14105187
+30 23 s23/3 -0.50072135
+30 23 s23/6 -0.08619171
+30 23 s23/8 -0.17693715
+30 23 s23/10 -0.25905089
+30 25 s25/1 -1.14780816
+30 25 s25/3 -1.42531430
+30 25 s25/6 -1.11804200
+30 25 s25/8 -0.46452487
+30 25 s25/10 -1.21731939
+30 28 s28/1 -0.83938484
+30 28 s28/3 -0.19833564
+30 28 s28/6 -0.51266612
+30 28 s28/8 -1.01709964
+30 28 s28/10 0.14806997
+30 30 s30/1 2.09714917
+30 30 s30/3 2.01837451
+30 30 s30/6 2.11806697
+30 30 s30/8 2.11386599
+30 30 s30/10 1.98653228
+30 31 s31/1 0.89260239
+30 31 s31/3 1.23046196
+30 31 s31/6 0.65744798
+30 31 s31/8 0.72582047
+30 31 s31/10 1.28005322
+30 32 s32/1 -0.12012636
+30 32 s32/3 0.46030084
+30 32 s32/6 0.17178306
+30 32 s32/8 0.17560884
+30 32 s32/10 0.38338587
+30 35 s35/1 -0.61689608
+30 35 s35/3 -0.60561057
+30 35 s35/6 -1.36577757
+30 35 s35/8 -1.28777915
+30 35 s35/10 -0.36135616
+30 37 s37/1 -1.19134777
+30 37 s37/3 -1.12492013
+30 37 s37/6 0.59081535
+30 37 s37/8 0.37166470
+30 37 s37/10 -1.54389909
+30 38 s38/1 0.35727797
+30 38 s38/3 0.13813327
+30 38 s38/6 0.39065063
+30 38 s38/8 0.26576583
+30 38 s38/10 -0.22460976
+30 40 s40/1 0.54640457
+30 40 s40/3 -0.36316052
+30 40 s40/6 1.48549116
+30 40 s40/8 0.21744666
+30 40 s40/10 1.08354087
+31 3 s3/1 -1.06706142
+31 3 s3/3 -0.64515655
+31 3 s3/6 -1.18508902
+31 3 s3/8 -0.85140136
+31 3 s3/10 -0.58371449
+31 4 s4/1 0.16492851
+31 4 s4/3 0.48892666
+31 4 s4/6 -1.14083410
+31 4 s4/8 0.47635156
+31 4 s4/10 -0.41931559
+31 7 s7/1 -0.44939804
+31 7 s7/3 -0.55200814
+31 7 s7/6 -0.71228485
+31 7 s7/8 -1.04035233
+31 7 s7/10 0.09297649
+31 8 s8/1 -0.42500663
+31 8 s8/3 -1.03494506
+31 8 s8/6 -1.10898671
+31 8 s8/8 -0.88478341
+31 8 s8/10 -1.15713679
+31 9 s9/1 -0.63300827
+31 9 s9/3 -0.53639629
+31 9 s9/6 -0.50311159
+31 9 s9/8 -0.95037462
+31 9 s9/10 0.02050913
+31 13 s13/1 -1.50181111
+31 13 s13/3 -0.73769813
+31 13 s13/6 -1.01450337
+31 13 s13/8 -1.19255677
+31 13 s13/10 -1.57824426
+31 15 s15/1 1.02571671
+31 15 s15/3 0.97340933
+31 15 s15/6 0.97931127
+31 15 s15/8 1.32661171
+31 15 s15/10 0.84435982
+31 18 s18/1 -0.38610377
+31 18 s18/3 -0.43889352
+31 18 s18/6 -0.96823906
+31 18 s18/8 -0.44439639
+31 18 s18/10 -1.08309599
+31 19 s19/1 0.26877783
+31 19 s19/3 0.40560264
+31 19 s19/6 -0.34448519
+31 19 s19/8 -0.43471275
+31 19 s19/10 -0.09915299
+31 22 s22/1 0.64008470
+31 22 s22/3 0.87405931
+31 22 s22/6 0.01223460
+31 22 s22/8 0.52399836
+31 22 s22/10 0.34761248
+31 23 s23/1 -0.87604819
+31 23 s23/3 0.20347451
+31 23 s23/6 0.24965216
+31 23 s23/8 -0.05220992
+31 23 s23/10 -0.91618755
+31 25 s25/1 -0.65272879
+31 25 s25/3 -0.69296554
+31 25 s25/6 -0.45917418
+31 25 s25/8 -0.26997268
+31 25 s25/10 -0.79167808
+31 28 s28/1 -1.53769991
+31 28 s28/3 -1.33594161
+31 28 s28/6 -1.32282836
+31 28 s28/8 -0.81811236
+31 28 s28/10 -0.94625592
+31 30 s30/1 1.10826455
+31 30 s30/3 1.06368656
+31 30 s30/6 1.11780063
+31 30 s30/8 1.36188316
+31 30 s30/10 1.10481970
+31 31 s31/1 0.85868502
+31 31 s31/3 1.83304606
+31 31 s31/6 1.09807888
+31 31 s31/8 0.81811015
+31 31 s31/10 1.80665314
+31 32 s32/1 0.27120858
+31 32 s32/3 0.81823762
+31 32 s32/6 -0.02469287
+31 32 s32/8 0.08201189
+31 32 s32/10 0.07556043
+31 35 s35/1 0.49813485
+31 35 s35/3 0.33502351
+31 35 s35/6 -0.02874230
+31 35 s35/8 -0.13132304
+31 35 s35/10 0.63336458
+31 37 s37/1 -1.20860061
+31 37 s37/3 -1.31534180
+31 37 s37/6 0.44157748
+31 37 s37/8 0.20120143
+31 37 s37/10 -1.37562074
+31 38 s38/1 -0.49484525
+31 38 s38/3 -0.64703602
+31 38 s38/6 -0.38072081
+31 38 s38/8 -0.88922830
+31 38 s38/10 -0.95141053
+31 40 s40/1 0.39117273
+31 40 s40/3 0.01597769
+31 40 s40/6 0.15512843
+31 40 s40/8 -0.24554279
+31 40 s40/10 0.42993887
+32 3 s3/1 -0.34979288
+32 3 s3/3 -0.63492301
+32 3 s3/6 -1.36563614
+32 3 s3/8 -1.53546874
+32 3 s3/10 -0.93584904
+32 4 s4/1 -0.83840331
+32 4 s4/3 -0.61089502
+32 4 s4/6 -0.68060131
+32 4 s4/8 -0.60775676
+32 4 s4/10 -0.42733627
+32 7 s7/1 0.05173331
+32 7 s7/3 0.26564861
+32 7 s7/6 0.24133020
+32 7 s7/8 -0.08425436
+32 7 s7/10 0.05008996
+32 8 s8/1 -0.31000833
+32 8 s8/3 -0.83646455
+32 8 s8/6 -0.90921143
+32 8 s8/8 -0.58387164
+32 8 s8/10 -0.75000376
+32 9 s9/1 -1.28205476
+32 9 s9/3 -1.19987908
+32 9 s9/6 -1.62451489
+32 9 s9/8 -1.69904320
+32 9 s9/10 -0.84828107
+32 13 s13/1 0.40557279
+32 13 s13/3 0.31295431
+32 13 s13/6 0.04809257
+32 13 s13/8 0.27907837
+32 13 s13/10 0.03473994
+32 15 s15/1 0.99177727
+32 15 s15/3 0.97114796
+32 15 s15/6 1.06104258
+32 15 s15/8 0.56932194
+32 15 s15/10 -0.55814658
+32 18 s18/1 0.26431378
+32 18 s18/3 0.68359679
+32 18 s18/6 0.19901341
+32 18 s18/8 0.61969323
+32 18 s18/10 -0.05538931
+32 19 s19/1 1.45468377
+32 19 s19/3 1.48637428
+32 19 s19/6 1.31740366
+32 19 s19/8 0.62010680
+32 19 s19/10 1.13866785
+32 22 s22/1 0.45899245
+32 22 s22/3 0.16331324
+32 22 s22/6 1.14342348
+32 22 s22/8 0.34312470
+32 22 s22/10 0.56399758
+32 23 s23/1 -1.26921448
+32 23 s23/3 -0.77985492
+32 23 s23/6 -1.05890858
+32 23 s23/8 -0.66186334
+32 23 s23/10 -1.28344535
+32 25 s25/1 -0.88139160
+32 25 s25/3 -0.87571363
+32 25 s25/6 -0.59951290
+32 25 s25/8 -0.82875805
+32 25 s25/10 -0.82938247
+32 28 s28/1 -0.95908445
+32 28 s28/3 -1.17120835
+32 28 s28/6 -1.35144984
+32 28 s28/8 -0.63742662
+32 28 s28/10 -0.14458260
+32 30 s30/1 -0.24835364
+32 30 s30/3 -0.24714202
+32 30 s30/6 -0.42207877
+32 30 s30/8 0.25277493
+32 30 s30/10 -0.05740314
+32 31 s31/1 -1.42467000
+32 31 s31/3 0.32767148
+32 31 s31/6 -1.31324625
+32 31 s31/8 -1.48798622
+32 31 s31/10 0.42114287
+32 32 s32/1 1.40916892
+32 32 s32/3 1.30849730
+32 32 s32/6 1.48979159
+32 32 s32/8 1.60489921
+32 32 s32/10 1.51985312
+32 35 s35/1 -0.55206922
+32 35 s35/3 -0.37641895
+32 35 s35/6 -0.95248365
+32 35 s35/8 -0.69914407
+32 35 s35/10 -0.25853623
+32 37 s37/1 -0.78476851
+32 37 s37/3 -0.77459291
+32 37 s37/6 0.74252719
+32 37 s37/8 0.61360420
+32 37 s37/10 -0.39296201
+32 38 s38/1 -1.00675333
+32 38 s38/3 -0.35790249
+32 38 s38/6 -0.87699895
+32 38 s38/8 -1.38537718
+32 38 s38/10 -0.93881970
+32 40 s40/1 0.03970604
+32 40 s40/3 -0.32881842
+32 40 s40/6 -0.11159893
+32 40 s40/8 -0.15369992
+32 40 s40/10 0.40635884
+35 3 s3/1 0.58989713
+35 3 s3/3 0.56545325
+35 3 s3/6 -0.81300133
+35 3 s3/8 -0.07321430
+35 3 s3/10 0.26722823
+35 4 s4/1 0.59041271
+35 4 s4/3 0.25647226
+35 4 s4/6 -0.32863454
+35 4 s4/8 0.50390428
+35 4 s4/10 0.14809285
+35 7 s7/1 -0.40123177
+35 7 s7/3 -0.49670708
+35 7 s7/6 -0.67335549
+35 7 s7/8 -0.82731196
+35 7 s7/10 0.35781055
+35 8 s8/1 -0.68846413
+35 8 s8/3 -0.89799396
+35 8 s8/6 -0.87448650
+35 8 s8/8 -0.83440570
+35 8 s8/10 -0.92217502
+35 9 s9/1 0.44356109
+35 9 s9/3 0.46029490
+35 9 s9/6 0.10101832
+35 9 s9/8 0.25049809
+35 9 s9/10 0.56185807
+35 13 s13/1 0.09690011
+35 13 s13/3 -0.22258693
+35 13 s13/6 -0.03568070
+35 13 s13/8 -0.27438274
+35 13 s13/10 -0.53421069
+35 15 s15/1 -0.12436037
+35 15 s15/3 -0.31110086
+35 15 s15/6 -0.04473106
+35 15 s15/8 0.04509418
+35 15 s15/10 1.24433931
+35 18 s18/1 0.30125024
+35 18 s18/3 0.13567176
+35 18 s18/6 0.06190413
+35 18 s18/8 0.21586980
+35 18 s18/10 0.15400327
+35 19 s19/1 -0.38961735
+35 19 s19/3 -0.13950656
+35 19 s19/6 -0.49393461
+35 19 s19/8 -0.77366700
+35 19 s19/10 -0.76366576
+35 22 s22/1 -0.29511096
+35 22 s22/3 -0.32271415
+35 22 s22/6 -0.57376226
+35 22 s22/8 -0.52446628
+35 22 s22/10 -0.16873978
+35 23 s23/1 -1.06751386
+35 23 s23/3 0.69152995
+35 23 s23/6 0.55792842
+35 23 s23/8 -0.11606231
+35 23 s23/10 -1.29919153
+35 25 s25/1 0.96193260
+35 25 s25/3 0.88806249
+35 25 s25/6 1.18018935
+35 25 s25/8 0.43012403
+35 25 s25/10 0.72685643
+35 28 s28/1 -1.30052825
+35 28 s28/3 -1.14125274
+35 28 s28/6 -1.15193454
+35 28 s28/8 -0.32750619
+35 28 s28/10 -1.30474359
+35 30 s30/1 -0.49245824
+35 30 s30/3 -0.25555783
+35 30 s30/6 -0.60572032
+35 30 s30/8 -0.31816842
+35 30 s30/10 -0.53832367
+35 31 s31/1 0.49782820
+35 31 s31/3 0.78214911
+35 31 s31/6 0.70630187
+35 31 s31/8 0.57545705
+35 31 s31/10 0.66889594
+35 32 s32/1 -0.11026438
+35 32 s32/3 0.39838657
+35 32 s32/6 -0.80583976
+35 32 s32/8 -0.34566925
+35 32 s32/10 -0.77149188
+35 35 s35/1 1.71835138
+35 35 s35/3 1.63548337
+35 35 s35/6 1.55981318
+35 35 s35/8 1.61280916
+35 35 s35/10 1.15735073
+35 37 s37/1 -0.26496896
+35 37 s37/3 -0.46146913
+35 37 s37/6 -0.93501624
+35 37 s37/8 -0.86769733
+35 37 s37/10 -0.43366404
+35 38 s38/1 -1.02572670
+35 38 s38/3 -0.90396688
+35 38 s38/6 -0.99620148
+35 38 s38/8 -1.00473538
+35 38 s38/10 -0.93592886
+35 40 s40/1 0.64222792
+35 40 s40/3 0.72710532
+35 40 s40/6 0.08210817
+35 40 s40/8 0.50397195
+35 40 s40/10 0.04518286
+37 3 s3/1 0.47219917
+37 3 s3/3 -0.18494703
+37 3 s3/6 0.51516789
+37 3 s3/8 -0.68869941
+37 3 s3/10 -0.76562795
+37 4 s4/1 -2.72176081
+37 4 s4/3 -2.42085204
+37 4 s4/6 -0.76908485
+37 4 s4/8 -2.94846302
+37 4 s4/10 -0.38980712
+37 7 s7/1 0.39500319
+37 7 s7/3 0.78799778
+37 7 s7/6 0.42092690
+37 7 s7/8 0.29808531
+37 7 s7/10 -0.35460909
+37 8 s8/1 0.72635376
+37 8 s8/3 0.45594843
+37 8 s8/6 0.37367807
+37 8 s8/8 0.34891108
+37 8 s8/10 0.31394390
+37 9 s9/1 -1.79461485
+37 9 s9/3 -1.80113673
+37 9 s9/6 -1.09705665
+37 9 s9/8 -1.22308663
+37 9 s9/10 -1.19032548
+37 13 s13/1 -0.61873551
+37 13 s13/3 -0.53330548
+37 13 s13/6 0.58440893
+37 13 s13/8 0.09806870
+37 13 s13/10 0.56294169
+37 15 s15/1 0.52126916
+37 15 s15/3 0.63422318
+37 15 s15/6 0.36279055
+37 15 s15/8 -0.14980172
+37 15 s15/10 -1.69000511
+37 18 s18/1 -0.23490304
+37 18 s18/3 0.39221543
+37 18 s18/6 -0.02873877
+37 18 s18/8 0.19249650
+37 18 s18/10 -0.03735739
+37 19 s19/1 -0.10992435
+37 19 s19/3 -0.20628188
+37 19 s19/6 -0.48343370
+37 19 s19/8 0.89184930
+37 19 s19/10 -0.08800241
+37 22 s22/1 0.54129747
+37 22 s22/3 0.45930609
+37 22 s22/6 0.81116710
+37 22 s22/8 0.81984665
+37 22 s22/10 0.54733597
+37 23 s23/1 -0.48572898
+37 23 s23/3 -1.44934215
+37 23 s23/6 -1.64291584
+37 23 s23/8 -0.85445313
+37 23 s23/10 -0.01479549
+37 25 s25/1 -1.14206972
+37 25 s25/3 -0.97109701
+37 25 s25/6 -0.80015492
+37 25 s25/8 -0.90317406
+37 25 s25/10 -1.05482111
+37 28 s28/1 1.66369888
+37 28 s28/3 0.29330947
+37 28 s28/6 1.36150930
+37 28 s28/8 -0.22662029
+37 28 s28/10 -0.06674577
+37 30 s30/1 -0.39682523
+37 30 s30/3 -0.70790118
+37 30 s30/6 -0.20968900
+37 30 s30/8 -0.06075101
+37 30 s30/10 -0.04487605
+37 31 s31/1 -1.49754713
+37 31 s31/3 -0.56566274
+37 31 s31/6 -1.69153169
+37 31 s31/8 -1.65417809
+37 31 s31/10 -0.19266182
+37 32 s32/1 1.44071355
+37 32 s32/3 0.39929143
+37 32 s32/6 1.65575343
+37 32 s32/8 1.37189811
+37 32 s32/10 1.70812405
+37 35 s35/1 -1.52818795
+37 35 s35/3 -1.87332918
+37 35 s35/6 -2.15017969
+37 35 s35/8 -1.69986494
+37 35 s35/10 -0.77739253
+37 37 s37/1 0.61005264
+37 37 s37/3 1.02215096
+37 37 s37/6 2.07598022
+37 37 s37/8 2.04743906
+37 37 s37/10 0.86473816
+37 38 s38/1 0.42815479
+37 38 s38/3 0.07949971
+37 38 s38/6 0.24504357
+37 38 s38/8 -0.67158273
+37 38 s38/10 -0.16071124
+37 40 s40/1 -1.73873427
+37 40 s40/3 -1.17338443
+37 40 s40/6 -0.83416912
+37 40 s40/8 -1.42797254
+37 40 s40/10 -0.26652993
+38 3 s3/1 -0.34986413
+38 3 s3/3 -0.43848506
+38 3 s3/6 0.87604416
+38 3 s3/8 1.23647577
+38 3 s3/10 -0.06218902
+38 4 s4/1 0.19190085
+38 4 s4/3 0.49143269
+38 4 s4/6 0.16951195
+38 4 s4/8 -0.02890485
+38 4 s4/10 -0.67905989
+38 7 s7/1 -0.45305140
+38 7 s7/3 -0.49972328
+38 7 s7/6 0.09974224
+38 7 s7/8 0.56828499
+38 7 s7/10 -1.20288344
+38 8 s8/1 1.20257875
+38 8 s8/3 1.56296338
+38 8 s8/6 1.67856412
+38 8 s8/8 1.36753916
+38 8 s8/10 1.44907864
+38 9 s9/1 0.33477489
+38 9 s9/3 0.16399122
+38 9 s9/6 0.82206288
+38 9 s9/8 0.49694815
+38 9 s9/10 -0.73387133
+38 13 s13/1 -0.20317228
+38 13 s13/3 0.08540785
+38 13 s13/6 -1.03480155
+38 13 s13/8 -0.71830549
+38 13 s13/10 -0.67801143
+38 15 s15/1 -0.96641174
+38 15 s15/3 -0.66787338
+38 15 s15/6 -0.90327629
+38 15 s15/8 -0.72646828
+38 15 s15/10 -0.59758064
+38 18 s18/1 -1.22808034
+38 18 s18/3 -1.25450703
+38 18 s18/6 -0.83183284
+38 18 s18/8 -1.22054720
+38 18 s18/10 -0.67272463
+38 19 s19/1 -0.56510266
+38 19 s19/3 -0.87673226
+38 19 s19/6 0.18256720
+38 19 s19/8 0.51212517
+38 19 s19/10 0.53526685
+38 22 s22/1 0.13907734
+38 22 s22/3 0.14989023
+38 22 s22/6 0.11947468
+38 22 s22/8 0.40114674
+38 22 s22/10 0.25685977
+38 23 s23/1 1.43004802
+38 23 s23/3 -1.27651650
+38 23 s23/6 -0.21007844
+38 23 s23/8 -0.30382056
+38 23 s23/10 1.50216225
+38 25 s25/1 -0.43345213
+38 25 s25/3 -0.58403337
+38 25 s25/6 -0.74390289
+38 25 s25/8 -0.02651065
+38 25 s25/10 -0.61220585
+38 28 s28/1 1.37123154
+38 28 s28/3 2.00482870
+38 28 s28/6 1.46026208
+38 28 s28/8 0.04231748
+38 28 s28/10 1.83954626
+38 30 s30/1 0.33794990
+38 30 s30/3 0.39139063
+38 30 s30/6 0.34120431
+38 30 s30/8 -0.17142861
+38 30 s30/10 0.40667002
+38 31 s31/1 0.05644954
+38 31 s31/3 -1.27272131
+38 31 s31/6 -0.08964086
+38 31 s31/8 0.10124706
+38 31 s31/10 -1.40039358
+38 32 s32/1 -1.79019670
+38 32 s32/3 -1.60918385
+38 32 s32/6 -0.52069776
+38 32 s32/8 -1.25764940
+38 32 s32/10 -0.62417347
+38 35 s35/1 -1.39942528
+38 35 s35/3 -1.36550208
+38 35 s35/6 -1.39690969
+38 35 s35/8 -1.64817588
+38 35 s35/10 -1.89374635
+38 37 s37/1 0.08342767
+38 37 s37/3 0.15969474
+38 37 s37/6 -0.11885445
+38 37 s37/8 0.16820096
+38 37 s37/10 -0.05410606
+38 38 s38/1 1.87471089
+38 38 s38/3 1.95141077
+38 38 s38/6 1.74221205
+38 38 s38/8 1.98588432
+38 38 s38/10 2.17910838
+38 40 s40/1 -0.87799651
+38 40 s40/3 -1.08762577
+38 40 s40/6 -0.05492982
+38 40 s40/8 -0.81392371
+38 40 s40/10 0.07995599
+40 3 s3/1 0.51637170
+40 3 s3/3 0.64860899
+40 3 s3/6 -0.44882742
+40 3 s3/8 0.34932772
+40 3 s3/10 0.43240206
+40 4 s4/1 0.46063527
+40 4 s4/3 0.16012312
+40 4 s4/6 0.05840162
+40 4 s4/8 0.09479120
+40 4 s4/10 0.26872669
+40 7 s7/1 -0.50236994
+40 7 s7/3 -0.57872182
+40 7 s7/6 -0.59928377
+40 7 s7/8 -0.48562501
+40 7 s7/10 0.03356254
+40 8 s8/1 -0.72784396
+40 8 s8/3 -0.65408256
+40 8 s8/6 -0.55713994
+40 8 s8/8 -0.68363972
+40 8 s8/10 -0.55258401
+40 9 s9/1 0.27685346
+40 9 s9/3 0.34761244
+40 9 s9/6 0.55505748
+40 9 s9/8 0.67307236
+40 9 s9/10 0.53172221
+40 13 s13/1 0.70340455
+40 13 s13/3 0.52593826
+40 13 s13/6 0.63664529
+40 13 s13/8 0.08482371
+40 13 s13/10 0.45244872
+40 15 s15/1 -0.66389232
+40 15 s15/3 -0.75706607
+40 15 s15/6 -0.57126486
+40 15 s15/8 -0.73886211
+40 15 s15/10 0.65767569
+40 18 s18/1 0.29566919
+40 18 s18/3 0.67309669
+40 18 s18/6 0.73171759
+40 18 s18/8 0.66533830
+40 18 s18/10 0.75856716
+40 19 s19/1 -0.74247110
+40 19 s19/3 -0.60461426
+40 19 s19/6 -0.40514610
+40 19 s19/8 -1.05700303
+40 19 s19/10 -0.74010129
+40 22 s22/1 -1.24034127
+40 22 s22/3 -1.20724395
+40 22 s22/6 -1.15241364
+40 22 s22/8 -1.23961818
+40 22 s22/10 -1.03323511
+40 23 s23/1 -0.36911005
+40 23 s23/3 0.90003946
+40 23 s23/6 1.12396583
+40 23 s23/8 -0.05257356
+40 23 s23/10 -0.47946578
+40 25 s25/1 0.95728858
+40 25 s25/3 0.87260529
+40 25 s25/6 0.79021455
+40 25 s25/8 1.14483428
+40 25 s25/10 0.62533388
+40 28 s28/1 -0.17709624
+40 28 s28/3 -0.26499071
+40 28 s28/6 -0.03606273
+40 28 s28/8 0.28904512
+40 28 s28/10 -1.05740439
+40 30 s30/1 -0.86565854
+40 30 s30/3 -0.63496678
+40 30 s30/6 -0.99308896
+40 30 s30/8 -0.85236767
+40 30 s30/10 -1.03225981
+40 31 s31/1 0.22223696
+40 31 s31/3 -0.07162090
+40 31 s31/6 0.27550795
+40 31 s31/8 0.25100159
+40 31 s31/10 0.01844171
+40 32 s32/1 -0.13234639
+40 32 s32/3 0.01938321
+40 32 s32/6 -0.76468913
+40 32 s32/8 -0.16907488
+40 32 s32/10 -0.61437985
+40 35 s35/1 0.89543358
+40 35 s35/3 1.40488718
+40 35 s35/6 0.68117396
+40 35 s35/8 1.09961333
+40 35 s35/10 0.97750186
+40 37 s37/1 0.65609166
+40 37 s37/3 0.79906075
+40 37 s37/6 -1.16413966
+40 37 s37/8 -1.14823398
+40 37 s37/10 0.15681889
+40 38 s38/1 -0.46298136
+40 38 s38/3 -0.66460668
+40 38 s38/6 -0.52422730
+40 38 s38/8 -0.54380387
+40 38 s38/10 -0.70446398
+40 40 s40/1 0.58579289
+40 40 s40/3 0.81726897
+40 40 s40/6 0.27813296
+40 40 s40/8 1.06201365
+40 40 s40/10 0.26558685
diff --git a/bob/bio/gmm/test/dummy/__init__.py b/bob/bio/gmm/test/dummy/__init__.py
new file mode 100644
index 0000000..51221ae
--- /dev/null
+++ b/bob/bio/gmm/test/dummy/__init__.py
@@ -0,0 +1 @@
+from . import extractor
diff --git a/bob/bio/gmm/test/dummy/extractor.py b/bob/bio/gmm/test/dummy/extractor.py
new file mode 100644
index 0000000..2c58557
--- /dev/null
+++ b/bob/bio/gmm/test/dummy/extractor.py
@@ -0,0 +1,27 @@
+import numpy
+import bob.io.base
+
+from bob.bio.base.extractor import Extractor
+
+_data = [0., 1., 2., 3., 4.]
+
+class DummyExtractor (Extractor):
+  def __init__(self):
+    Extractor.__init__(self, requires_training=True)
+    self.model = False
+
+  def train(self, train_data, extractor_file):
+    assert isinstance(train_data, list)
+    bob.io.base.save(_data, extractor_file)
+
+  def load(self, extractor_file):
+    data = bob.io.base.load(extractor_file)
+    assert (_data == data).all()
+    self.model = True
+
+  def __call__(self, data):
+    """Does nothing, simply converts the data type of the data, ignoring any annotation."""
+    assert self.model
+    return data.astype(numpy.float)
+
+extractor = DummyExtractor()
diff --git a/bob/bio/gmm/test/test_algorithms.py b/bob/bio/gmm/test/test_algorithms.py
index 5bac224..03613b1 100644
--- a/bob/bio/gmm/test/test_algorithms.py
+++ b/bob/bio/gmm/test/test_algorithms.py
@@ -81,7 +81,7 @@ def test_gmm():
   # create smaller GMM object
   gmm2 = bob.bio.gmm.algorithm.GMM(
     number_of_gaussians = 2,
-    k_means_training_iterations = 1,
+    kmeans_training_iterations = 1,
     gmm_training_iterations = 1,
     INIT_SEED = seed_value,
   )
@@ -138,7 +138,7 @@ def test_gmm_regular():
   # create smaller GMM object
   gmm2 = bob.bio.gmm.algorithm.GMMRegular(
     number_of_gaussians = 2,
-    k_means_training_iterations = 1,
+    kmeans_training_iterations = 1,
     gmm_training_iterations = 1,
     INIT_SEED = seed_value,
   )
@@ -193,7 +193,7 @@ def test_isv():
   isv2 = bob.bio.gmm.algorithm.ISV(
       number_of_gaussians = 2,
       subspace_dimension_of_u = 10,
-      k_means_training_iterations = 1,
+      kmeans_training_iterations = 1,
       gmm_training_iterations = 1,
       isv_training_iterations = 1,
       INIT_SEED = seed_value
@@ -260,7 +260,7 @@ def test_jfa():
       number_of_gaussians = 2,
       subspace_dimension_of_u = 2,
       subspace_dimension_of_v = 2,
-      k_means_training_iterations = 1,
+      kmeans_training_iterations = 1,
       gmm_training_iterations = 1,
       jfa_training_iterations = 1,
       INIT_SEED = seed_value
diff --git a/bob/bio/gmm/test/test_scripts.py b/bob/bio/gmm/test/test_scripts.py
new file mode 100644
index 0000000..18f39f7
--- /dev/null
+++ b/bob/bio/gmm/test/test_scripts.py
@@ -0,0 +1,105 @@
+
+
+from __future__ import print_function
+
+import bob.measure
+
+import os
+import sys
+import shutil
+import tempfile
+import numpy
+
+import bob.io.base.test_utils
+import bob.io.image
+import bob.bio.base
+import bob.bio.gmm
+from . import utils
+
+from nose.plugins.skip import SkipTest
+
+import pkg_resources
+
+regenerate_reference = False
+
+from bob.bio.base.script.verify import main
+
+data_dir = pkg_resources.resource_filename('bob.bio.gmm', 'test/data')
+
+def _verify(parameters, test_dir, sub_dir, ref_modifier="", score_modifier=('scores',''), executable = main):
+  try:
+    executable([sys.argv[0]] + parameters)
+
+    # assert that the score file exists
+    score_files = [os.path.join(test_dir, sub_dir, 'Default', norm, '%s-dev%s'%score_modifier) for norm in ('nonorm',  'ztnorm')]
+    assert os.path.exists(score_files[0]), "Score file %s does not exist" % score_files[0]
+    assert os.path.exists(score_files[1]), "Score file %s does not exist" % score_files[1]
+
+    # also assert that the scores are still the same -- though they have no real meaning
+    reference_files = [os.path.join(data_dir, 'scores-%s%s-dev'%(norm, ref_modifier)) for norm in ('nonorm',  'ztnorm')]
+
+    if regenerate_reference:
+      for i in (0,1):
+        shutil.copy(score_files[i], reference_files[i])
+
+    for i in (0,1):
+      d = []
+      # read reference and new data
+      for score_file in (score_files[i], reference_files[i]):
+        f = bob.measure.load.open_file(score_file)
+        d_ = []
+        for line in f:
+          if isinstance(line, bytes): line = line.decode('utf-8')
+          d_.append(line.rstrip().split())
+        d.append(numpy.array(d_))
+
+      assert d[0].shape == d[1].shape
+      # assert that the data order is still correct
+      assert (d[0][:,0:3] == d[1][:, 0:3]).all()
+      # assert that the values are OK
+      assert numpy.allclose(d[0][:,3].astype(float), d[1][:,3].astype(float), 1e-5)
+
+  finally:
+    shutil.rmtree(test_dir)
+
+
+def test_gmm_base():
+  test_dir = tempfile.mkdtemp(prefix='frltest_')
+  # define dummy parameters
+  parameters = [
+      '-d', 'dummy',
+      '-p', 'dummy',
+      '-e', 'dummy',
+      '-a', 'bob.bio.gmm.algorithm.GMM(2, 2, 2)', '--import', 'bob.bio.gmm',
+      '--zt-norm',
+      '-s', 'test_gmm_sequential', '-vv',
+      '--temp-directory', test_dir,
+      '--result-directory', test_dir
+  ]
+
+  print (bob.bio.base.tools.command_line(parameters))
+
+  _verify(parameters, test_dir, 'test_gmm_sequential', ref_modifier='-gmm')
+
+
+def test_gmm_parallel():
+  from bob.bio.gmm.script.verify_gmm import main
+  test_dir = tempfile.mkdtemp(prefix='frltest_')
+  test_database = os.path.join(test_dir, "submitted.sql3")
+  # define dummy parameters
+  parameters = [
+      '-d', 'dummy',
+      '-p', 'dummy',
+      '-e', 'dummy',
+      '-a', 'bob.bio.gmm.algorithm.GMM(2, 2, 2)', '--import', 'bob.bio.gmm', 'bob.io.image',
+      '-g', 'bob.bio.base.grid.Grid(grid = "local", number_of_parallel_processes = 2, scheduler_sleep_time = 0.1)', '-G', test_database, '--run-local-scheduler', '-R',
+      '--clean-intermediate',
+      '--zt-norm',
+      '-s', 'test_gmm_parallel', '-vv',
+      '--temp-directory', test_dir,
+      '--result-directory', test_dir,
+  ]
+
+  print (bob.bio.base.tools.command_line(parameters))
+
+  _verify(parameters, test_dir, 'test_gmm_parallel', executable=main, ref_modifier='-gmm')
diff --git a/bob/bio/gmm/tools/__init__.py b/bob/bio/gmm/tools/__init__.py
new file mode 100644
index 0000000..1903eb6
--- /dev/null
+++ b/bob/bio/gmm/tools/__init__.py
@@ -0,0 +1,2 @@
+from .command_line import *
+from .gmm import *
diff --git a/bob/bio/gmm/tools/command_line.py b/bob/bio/gmm/tools/command_line.py
new file mode 100644
index 0000000..e81c358
--- /dev/null
+++ b/bob/bio/gmm/tools/command_line.py
@@ -0,0 +1,65 @@
+import os
+import sys
+import types
+
+import bob.core
+logger = bob.core.log.setup("bob.bio.gmm")
+
+from bob.bio.base.tools import FileSelector
+
+def add_parallel_gmm_options(parsers, additional_functions = ['gmm']):
+  """Add the options for parallel UBM training to the given parsers."""
+
+  flag_group = parsers['flag']
+  flag_group.add_argument('-l', '--limit-training-data', type=int,
+      help = 'Limit the number of training examples used for KMeans initialization and the GMM initialization')
+
+  flag_group.add_argument('-k', '--kmeans-start-iteration', type=int, default=0,
+      help = 'Specify the first iteration for the KMeans training (i.e. to restart from there)')
+  flag_group.add_argument('-m', '--gmm-start-iteration', type=int, default=0,
+      help = 'Specify the first iteration for the GMM training (i.e. to restart from there)')
+  flag_group.add_argument('-C', '--clean-intermediate', action='store_true',
+      help = 'Clean up temporary files of older iterations?')
+
+  sub_dir_group = parsers['sub-dir']
+  sub_dir_group.add_argument('--kmeans-directory', default = 'kmeans_temp',
+      help = 'The sub-directory (relative to --temp-directory), where intermediate kmeans files should be stored')
+  sub_dir_group.add_argument('--gmm-directory',  default = 'gmm_temp',
+      help = 'The sub-directory (relative to --temp-directory), where intermediate gmm files should be stored')
+
+
+
+# Functions to be added to the FileSelector class, once it is instantiated
+def _kmeans_intermediate_file(self, round):
+  return os.path.join(self.kmeans_temp_directory, 'round_%05d' % round, 'kmeans.hdf5')
+
+def _kmeans_stats_file(self, round, start_index, end_index):
+  return os.path.join(self.kmeans_temp_directory, 'round_%05d' % round, 'stats-%05d-%95d.hdf5' % (start_index, end_index))
+
+def _gmm_intermediate_file(self, round):
+  return os.path.join(self.gmm_temp_directory, 'round_%05d' % round, 'gmm.hdf5')
+
+def _gmm_stats_file(self, round, start_index, end_index):
+  return os.path.join(self.gmm_temp_directory, 'round_%05d' % round, 'stats-%05d-%95d.hdf5' % (start_index, end_index))
+
+
+def initialize_parallel_gmm(args):
+  # get the relevant sub_directory, which depends on the database and the prorocol
+  protocol = 'None' if args.database.protocol is None else args.database.protocol
+  extractor_sub_dir = protocol if args.database.training_depends_on_protocol and args.extractor.requires_training else '.'
+  sub_dir = protocol if args.database.training_depends_on_protocol else '.'
+
+  fs = FileSelector.instance()
+
+  # add relevant directories to file selector object
+  fs.kmeans_temp_directory = os.path.join(args.temp_directory, sub_dir, args.kmeans_directory)
+  fs.kmeans_file = os.path.join(args.temp_directory, sub_dir, "kmeans.hdf5")
+  fs.gmm_temp_directory = os.path.join(args.temp_directory, sub_dir, args.gmm_directory)
+#  fs.gmm_file = os.path.join(args.temp_directory, sub_dir, "gmm.hdf5")
+  fs.gmm_file = fs.projector_file
+
+  # add relevant **functions** to file selector object
+  fs.kmeans_intermediate_file = types.MethodType(_kmeans_intermediate_file, fs)
+  fs.kmeans_stats_file =  types.MethodType(_kmeans_stats_file, fs)
+  fs.gmm_intermediate_file = types.MethodType(_gmm_intermediate_file, fs)
+  fs.gmm_stats_file = types.MethodType(_gmm_stats_file, fs)
diff --git a/bob/bio/gmm/tools/gmm.py b/bob/bio/gmm/tools/gmm.py
new file mode 100644
index 0000000..6c443c4
--- /dev/null
+++ b/bob/bio/gmm/tools/gmm.py
@@ -0,0 +1,278 @@
+import bob.io.base
+import bob.learn.em
+import shutil
+import numpy
+import os
+
+import logging
+logger = logging.getLogger("bob.bio.gmm")
+
+from bob.bio.base.tools.FileSelector import FileSelector
+from bob.bio.base import utils, tools
+
+
+def kmeans_initialize(algorithm, extractor, limit_data = None, force = False):
+  """Initializes the K-Means training (non-parallel)."""
+  fs = FileSelector.instance()
+
+  output_file = fs.kmeans_intermediate_file(0)
+
+  if utils.check_file(output_file, force, 1000):
+    logger.info("UBM training: Skipping KMeans initialization since the file '%s' already exists", output_file)
+  else:
+    # read data
+    logger.info("UBM training: initializing kmeans")
+    training_list = utils.selected_elements(fs.training_list('extracted', 'train_projector'), limit_data)
+    data = numpy.vstack([extractor.read_feature(feature_file) for feature_file in training_list])
+
+    # Perform KMeans initialization
+    kmeans_machine = bob.learn.em.KMeansMachine(algorithm.gaussians, data.shape[1])
+    # Creates the KMeansTrainer and call the initialization procedure
+    algorithm.kmeans_trainer.initialize(kmeans_machine, data)
+    bob.io.base.create_directories_safe(os.path.dirname(output_file))
+    kmeans_machine.save(bob.io.base.HDF5File(output_file, 'w'))
+    logger.info("UBM training: saved initial KMeans machine to '%s'", output_file)
+
+
+def kmeans_estep(algorithm, extractor, iteration, indices, force=False):
+  """Performs a single E-step of the K-Means algorithm (parallel)"""
+  if indices[0] > indices[1]:
+    return
+
+  fs = FileSelector.instance()
+
+  # check if we need to compute this step
+  stats_file = fs.kmeans_stats_file(iteration, indices[0], indices[1])
+  new_machine_file = fs.kmeans_intermediate_file(iteration + 1)
+
+  if  utils.check_file(stats_file, force, 1000) or utils.check_file(new_machine_file, force, 1000):
+    logger.info("UBM training: Skipping KMeans E-Step since the file '%s' or '%s' already exists", stats_file, new_machine_file)
+  else:
+    training_list = fs.training_list('extracted', 'train_projector')
+    last_machine_file = fs.kmeans_intermediate_file(iteration)
+    kmeans_machine = bob.learn.em.KMeansMachine(bob.io.base.HDF5File(last_machine_file))
+
+    logger.info("UBM training: KMeans E-Step round %d from range(%d, %d)", iteration, *indices)
+
+    # read data
+    data = numpy.vstack([extractor.read_feature(training_list[index]) for index in range(indices[0], indices[1])])
+
+    # Performs the E-step
+    trainer = algorithm.kmeans_trainer
+    trainer.e_step(kmeans_machine, data)
+
+    # write results to file
+    dist = numpy.array(trainer.average_min_distance)
+    nsamples = numpy.array([indices[1] - indices[0]], dtype=numpy.float64)
+
+    # write statistics
+    bob.io.base.create_directories_safe(os.path.dirname(stats_file))
+    hdf5 = bob.io.base.HDF5File(stats_file, 'w')
+    hdf5.set('zeros', trainer.zeroeth_order_statistics)
+    hdf5.set('first', trainer.first_order_statistics)
+    hdf5.set('dist', dist * nsamples)
+    hdf5.set('nsamples', nsamples)
+
+    logger.info("UBM training: Wrote Stats file '%s'", stats_file)
+
+
+
+def _read_stats(filename):
+  """Reads accumulated K-Means statistics from file"""
+  logger.debug("UBM training: Reading stats file '%s'", filename)
+  hdf5 = bob.io.base.HDF5File(filename)
+  zeroeth  = hdf5.read('zeros')
+  first    = hdf5.read('first')
+  nsamples = hdf5.read('nsamples')
+  dist     = hdf5.read('dist')
+  return (zeroeth, first, nsamples, dist)
+
+def _accumulate(filenames):
+  zeroeth, first, nsamples, dist = _read_stats(filenames[0])
+  for stat in filenames[1:]:
+    zeroeth_, first_, nsamples_, dist_ = _read_stats(filenames[1])
+    zeroeth += zeroeth_
+    first += first_
+    nsamples += nsamples_
+    dist += dist_
+  return (zeroeth, first, nsamples, dist)
+
+def kmeans_mstep(algorithm, iteration, number_of_parallel_jobs, force=False, clean=False):
+  """Performs a single M-step of the K-Means algorithm (non-parallel)"""
+  fs = FileSelector.instance()
+
+  old_machine_file = fs.kmeans_intermediate_file(iteration)
+  new_machine_file = fs.kmeans_intermediate_file(iteration+1)
+
+  if  utils.check_file(new_machine_file, force, 1000):
+    logger.info("UBM training: Skipping KMeans M-Step since the file '%s' already exists", new_machine_file)
+  else:
+    # get the files from e-step
+    training_list = fs.training_list('extracted', 'train_projector')
+
+    # try if there is one file containing all data
+    if os.path.exists(fs.kmeans_stats_file(iteration, 0, len(training_list))):
+      stats_file = fs.kmeans_stats_file(iteration, 0, len(training_list))
+      # load stats file
+      statistics = _read_stats(stats_file)
+    else:
+      # load several files
+      filenames = []
+      for job in range(number_of_parallel_jobs):
+        job_indices = tools.indices(training_list, number_of_parallel_jobs, job+1)
+        if job_indices[-1] >= job_indices[0]:
+          filenames.append(fs.kmeans_stats_file(iteration, job_indices[0], job_indices[-1]))
+      statistics = _accumulate(filenames)
+
+    # Creates the KMeansMachine
+    kmeans_machine = bob.learn.em.KMeansMachine(bob.io.base.HDF5File(old_machine_file))
+    trainer = algorithm.kmeans_trainer
+    trainer.reset_accumulators(kmeans_machine)
+
+    trainer.zeroeth_order_statistics = statistics[0]
+    trainer.first_order_statistics = statistics[1]
+    trainer.average_min_distance = statistics[3]
+    error = statistics[3] / statistics[2]
+
+    # Performs the M-step
+    trainer.m_step(kmeans_machine, None) # data is not used in M-step
+    logger.info("UBM training: Performed M step %d with result %f" % (iteration, error))
+
+    # Save the K-Means model
+    bob.io.base.create_directories_safe(os.path.dirname(new_machine_file))
+    kmeans_machine.save(bob.io.base.HDF5File(new_machine_file, 'w'))
+
+  # copy the k_means file in any case
+  if iteration == algorithm.kmeans_training_iterations-1:
+    shutil.copy(new_machine_file, fs.kmeans_file)
+    logger.info("UBM training: Wrote new KMeans machine '%s'", fs.kmeans_file)
+
+  if clean and iteration > 0:
+    old_dir = os.path.dirname(fs.kmeans_intermediate_file(iteration-1))
+    logger.info("Removing old intermediate directory '%s'", old_dir)
+    shutil.rmtree(old_dir)
+
+
+
+def gmm_initialize(algorithm, extractor, limit_data = None, force = False):
+  """Initializes the GMM calculation with the result of the K-Means algorithm (non-parallel).
+  This might require a lot of memory."""
+  fs = FileSelector.instance()
+
+  output_file = fs.gmm_intermediate_file(0)
+
+  if utils.check_file(output_file, force, 800):
+    logger.info("UBM Training: Skipping GMM initialization since '%s' already exists", output_file)
+  else:
+    logger.info("UBM Training: Initializing GMM")
+
+    # read features
+    training_list = utils.selected_elements(fs.training_list('extracted', 'train_projector'), limit_data)
+    data = numpy.vstack([extractor.read_feature(feature_file) for feature_file in training_list])
+
+    # get means and variances of kmeans result
+    kmeans_machine = bob.learn.em.KMeansMachine(bob.io.base.HDF5File(fs.kmeans_file))
+    [variances, weights] = kmeans_machine.get_variances_and_weights_for_each_cluster(data)
+
+    # Create initial GMM Machine
+    gmm_machine = bob.learn.em.GMMMachine(algorithm.gaussians, data.shape[1])
+
+    # Initializes the GMM
+    gmm_machine.means = kmeans_machine.means
+    gmm_machine.variances = variances
+    gmm_machine.weights = weights
+    gmm_machine.set_variance_thresholds(algorithm.variance_threshold)
+
+    # write gmm machine to file
+    bob.io.base.create_directories_safe(os.path.dirname(output_file))
+    gmm_machine.save(bob.io.base.HDF5File(output_file, 'w'))
+    logger.info("UBM Training: Wrote GMM file '%s'", output_file)
+
+
+def gmm_estep(algorithm, extractor, iteration, indices, force=False):
+  """Performs a single E-step of the GMM training (parallel)."""
+  if indices[0] > indices[1]:
+    return
+  fs = FileSelector.instance()
+
+  stats_file = fs.gmm_stats_file(iteration, indices[0], indices[1])
+  new_machine_file = fs.gmm_intermediate_file(iteration + 1)
+
+  if  utils.check_file(stats_file, force, 1000) or utils.check_file(new_machine_file, force, 1000):
+    loggerinfo("UBM training: Skipping GMM E-Step since the file '%s' or '%s' already exists", stats_file, new_machine_file)
+  else:
+    training_list = fs.training_list('extracted', 'train_projector')
+    last_machine_file = fs.gmm_intermediate_file(iteration)
+    gmm_machine = bob.learn.em.GMMMachine(bob.io.base.HDF5File(last_machine_file))
+
+    logger.info("UBM training: GMM E-Step from range(%d, %d)", indices)
+
+    # read data
+    data = numpy.vstack([extractor.read_feature(training_list[index]) for index in range(indices[0], indices[1])])
+    trainer = algorithm.ubm_trainer
+    trainer.initialize(gmm_machine, None)
+
+    # Calls the E-step and extracts the GMM statistics
+    algorithm.ubm_trainer.e_step(gmm_machine, data)
+    gmm_stats = algorithm.ubm_trainer.gmm_statistics
+
+    # Saves the GMM statistics to the file
+    bob.io.base.create_directories_safe(os.path.dirname(stats_file))
+    gmm_stats.save(bob.io.base.HDF5File(stats_file, 'w'))
+    logger.info("UBM training: Wrote GMM stats '%s'", stats_file)
+
+
+def gmm_mstep(algorithm, iteration, number_of_parallel_jobs, force=False, clean=False):
+  """Performs a single M-step of the GMM training (non-parallel)"""
+  fs = FileSelector.instance()
+
+  old_machine_file = fs.gmm_intermediate_file(iteration)
+  new_machine_file = fs.gmm_intermediate_file(iteration + 1)
+
+  if utils.check_file(new_machine_file, force, 1000):
+    logger.info("UBM training: Skipping GMM M-Step since the file '%s' already exists", new_machine_file)
+  else:
+    # get the files from e-step
+    training_list = fs.training_list('extracted', 'train_projector')
+
+    # try if there is one file containing all data
+    if os.path.exists(fs.gmm_stats_file(iteration, 0, len(training_list))):
+      stats_file = fs.gmm_stats_file(iteration, 0, len(training_list))
+      # load stats file
+      gmm_stats = bob.learn.em.GMMStats(bob.io.base.HDF5File(stats_file))
+    else:
+      # load several files
+      stats_files = []
+      for job in range(number_of_parallel_jobs):
+        job_indices = tools.indices(training_list, number_of_parallel_jobs, job+1)
+        if job_indices[-1] >= job_indices[0]:
+          stats_files.append(fs.gmm_stats_file(iteration, job_indices[0], job_indices[-1]))
+
+      # read all stats files
+      gmm_stats = bob.learn.em.GMMStats(bob.io.base.HDF5File(stats_files[0]))
+      for stats_file in stats_files[1:]:
+        gmm_stats += bob.learn.em.GMMStats(bob.io.base.HDF5File(stats_file))
+
+    # load the old gmm machine
+    gmm_machine =  bob.learn.em.GMMMachine(bob.io.base.HDF5File(old_machine_file))
+
+    # initialize the trainer
+    trainer = algorithm.ubm_trainer
+    trainer.initialize(gmm_machine)
+    trainer.gmm_statistics = gmm_stats
+
+    # Calls M-step (no data required)
+    trainer.m_step(gmm_machine)
+
+    # Saves the GMM statistics to the file
+    bob.io.base.create_directories_safe(os.path.dirname(new_machine_file))
+    gmm_machine.save(bob.io.base.HDF5File(new_machine_file, 'w'))
+
+  if iteration == algorithm.gmm_training_iterations-1:
+    shutil.copy(new_machine_file, fs.gmm_file)
+    logger.info("UBM training: Wrote new GMM machine '%s'", fs.gmm_file)
+
+  if clean and iteration > 0:
+    old_dir = os.path.dirname(fs.gmm_intermediate_file(iteration-1))
+    logger.info("Removing old intermediate directory '%s'", old_dir)
+    shutil.rmtree(old_dir)
diff --git a/setup.py b/setup.py
index eeb46e9..0ed1518 100644
--- a/setup.py
+++ b/setup.py
@@ -102,6 +102,7 @@ setup(
 
       # scripts should be declared using this entry:
       'console_scripts' : [
+        'verify_gmm.py      = bob.bio.gmm.script.verify_gmm:main',
       ],
 
       'bob.bio.database': [
@@ -111,6 +112,7 @@ setup(
       ],
 
       'bob.bio.extractor': [
+        'dummy             = bob.bio.gmm.test.dummy.extractor:extractor', # for test purposes only
       ],
 
       'bob.bio.algorithm': [
-- 
GitLab