From e17ec814e1447e1c377206fdef95f881b8f643ef Mon Sep 17 00:00:00 2001
From: Rosen Matev <rosen.matev@cern.ch>
Date: Sun, 11 Apr 2021 15:40:20 +0200
Subject: [PATCH 01/56] Modernize build and install of DDG4 from DD4hep
 (cherrypicked with a few modifications)

---
 CMakeLists.txt                  | 15 +-----------
 DD4hepDDG4Ext/CMakeLists.txt    | 42 ++++++++++++++++++++++++++-------
 Sim/GiGaMTDD4hep/CMakeLists.txt |  8 ++-----
 3 files changed, 37 insertions(+), 28 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d0547df9..ae78ca8d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,7 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.15)
 
 # Reduce the total number of warnings by A LOT until ROOT has been modified
 option(GAUDI_SUGGEST_OVERRIDE "enable warnings for missing override keyword" OFF)
@@ -69,19 +69,6 @@ macro(AddHepMC3)
     -lHepMC3search)
 endmacro()
 
-macro(AddDD4hepDDG4)
-    include_directories(SYSTEM ${CMAKE_INSTALL_PREFIX}/include)
-    link_directories(${CMAKE_INSTALL_PREFIX}/lib)
-
-    set(DD4hepDDG4_LIBRARIES
-          #-lDDG4LCIO
-          -lDDG4Legacy  
-          -lDDG4Plugins  
-          -lDDG4Python  
-          -lDDG4  
-          -lDDPython)
-endmacro()
-
 # make sure pkg-config looks for packages on CMAKE_PREFIX_PATH and system
 set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)
 list(APPEND CMAKE_PREFIX_PATH /usr)
diff --git a/DD4hepDDG4Ext/CMakeLists.txt b/DD4hepDDG4Ext/CMakeLists.txt
index 5ed174c7..2ac78d2d 100644
--- a/DD4hepDDG4Ext/CMakeLists.txt
+++ b/DD4hepDDG4Ext/CMakeLists.txt
@@ -35,16 +35,42 @@ ExternalProject_Add(DD4hepDDG4Ext
     -DDD4HEP_USE_EXISTING_DD4HEP=${DD4hep_DIR}
     -DDD4HEP_BUILD_PACKAGES=DDG4
     -DDD4HEP_USE_GEANT4=ON
-    -DLCG_USE_NATIVE_COMPILER=${LCG_USE_NATIVE_COMPILER}
-    -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
+    -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
     -DCMAKE_CXX_STANDARD=${DD4HepDDG4_CXX_STANDARD}
     -DDD4HEP_SELECTED_NAME=DD4hepDDG4
-    -DCMAKE_INSTALL_LIBDIR=lib
+    "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -Wno-suggest-override"  # less strict warnings
+  # This works around a CMake issue with the Ninja generator where it
+  # does not understand imported libraries, and instead needs `BUILD_BYPRODUCTS`
+  # explicitly set.
+  # https://cmake.org/pipermail/cmake/2015-April/060234.html
+  BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libDDG4.so
   CMAKE_COMMAND ${env_cmd} --xml ${env_xml} cmake
   BUILD_COMMAND ${env_cmd} --xml ${env_xml} cmake --build .
 )
-                                                                                                
-#set(DD4hepDDG4_INCLUDE_DIRS  "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "" FORCE)
-#set(DD4hepDDG4_DIR "${CMAKE_INSTALL_PREFIX}/cmake" CACHE PATH "" FORCE)
-#set(DD4hepDDG4_LIBRARIES "${CMAKE_INSTALL_PREFIX}/lib/libDDG4LCIO.so" "${CMAKE_INSTALL_PREFIX}/lib/libDDG4Legacy.so" "${CMAKE_INSTALL_PREFIX}/lib/libDDG4Plugins.so" "${CMAKE_INSTALL_PREFIX}/lib/libDDG4Python.so" "${CMAKE_INSTALL_PREFIX}/lib/libDDG4.so" CACHE STRING "" FORCE)
-#set(DD4hepDDG4_FOUND YES CACHE BOOL "" FORCE)
+
+ExternalProject_Get_property(DD4hepDDG4Ext INSTALL_DIR)
+
+# Inspired from http://mesos.apache.org/documentation/latest/cmake-examples/#imported-libraries
+add_library(DD4hep::DDG4 SHARED IMPORTED GLOBAL)
+set_target_properties(DD4hep::DDG4 PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libDDG4.so)
+target_include_directories(DD4hep::DDG4 SYSTEM INTERFACE ${INSTALL_DIR}/include)
+# This works around a CMake issue with setting include directories of
+# imported libraries built with `ExternalProject_Add`.cmake/DD4hepBuild.cmake
+# https://gitlab.kitware.com/cmake/cmake/issues/15052
+file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
+
+# The external project's install rules are not part of the main project's
+# install rules, so if anything from the external project should be
+# installed as part of the main build, these need to be specified in the main
+# build as additional install() commands.
+# https://cmake.org/cmake/help/v3.20/module/ExternalProject.html
+#
+# Use DD4hep's installation location (see cmake/DD4hepBuild.cmake)
+# > SET(DD4HEP_PYTHON_INSTALL_DIR lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages)
+install(DIRECTORY "${INSTALL_DIR}/include/"
+        DESTINATION include)
+install(DIRECTORY "${INSTALL_DIR}/lib/"
+        DESTINATION lib
+        PATTERN "python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}" EXCLUDE)
+install(DIRECTORY "${INSTALL_DIR}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/"
+        DESTINATION python)
diff --git a/Sim/GiGaMTDD4hep/CMakeLists.txt b/Sim/GiGaMTDD4hep/CMakeLists.txt
index f39be9c7..873fdb5d 100644
--- a/Sim/GiGaMTDD4hep/CMakeLists.txt
+++ b/Sim/GiGaMTDD4hep/CMakeLists.txt
@@ -29,7 +29,6 @@ find_package(Boost COMPONENTS system thread filesystem)
 
 include_directories(SYSTEM  ${ROOT_INCLUDE_DIRS})
 AddHepMC3()
-AddDD4hepDDG4()
 
 message(STATUS "ROOTSYS -> ${ROOTSYS}")
 set(ENV{ROOTSYS} ${ROOTSYS})
@@ -41,16 +40,13 @@ endif()
 
 find_package(DD4hep REQUIRED CONFIG COMPONENTS DDCore)
 
-message(STATUS "DD4hepDDG4_INCLUDE_DIRS: ${DD4hepDDG4_INCLUDE_DIRS}")
-message(STATUS "DD4hepDDG4_LIBRARIES: ${DD4hepDDG4_LIBRARIES}")
-
-include_directories(SYSTEM  ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${DD4hep_INCLUDE_DIRS}  ${DD4hepDDG4_INCLUDE_DIRS})
+include_directories(SYSTEM  ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${DD4hep_INCLUDE_DIRS})
 
 gaudi_add_library(GiGaMTDD4hepLib
                   src/lib/*.cpp 
                   PUBLIC_HEADERS GiGaMTDD4hep
                   INCLUDE_DIRS LbDD4hep DD4hep
-                  LINK_LIBRARIES DD4hep ${DD4hep_COMPONENT_LIBRARIES} ROOT GiGaMTCoreRunLib ${DD4hepDDG4_LIBRARIES}) 
+                  LINK_LIBRARIES DD4hep ${DD4hep_COMPONENT_LIBRARIES} ROOT GiGaMTCoreRunLib DD4hep::DDG4)
 
 add_dependencies(GiGaMTDD4hepLib DD4hepDDG4Ext) 
 
-- 
GitLab


From a861b8466b65b9e5a58bc3fc831825debed7ff4c Mon Sep 17 00:00:00 2001
From: Rosen Matev <rosen.matev@cern.ch>
Date: Thu, 12 Aug 2021 13:07:13 +0200
Subject: [PATCH 02/56] Add DD4hep to LD_LIBRARY_PATH (to use local build)

---
 Sim/GiGaMTDD4hep/CMakeLists.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Sim/GiGaMTDD4hep/CMakeLists.txt b/Sim/GiGaMTDD4hep/CMakeLists.txt
index 873fdb5d..c21f5776 100644
--- a/Sim/GiGaMTDD4hep/CMakeLists.txt
+++ b/Sim/GiGaMTDD4hep/CMakeLists.txt
@@ -40,6 +40,11 @@ endif()
 
 find_package(DD4hep REQUIRED CONFIG COMPONENTS DDCore)
 
+# When building our own DD4hep, we need to manually add the installation to LD_LIBRARY_PATH.
+# Using gaudi_build_env() makes it so that downstream projects also have this.
+# TODO Why doesn't this happen "automatically" and is there a better way?
+gaudi_build_env(PREPEND LD_LIBRARY_PATH ${DD4hep_ROOT}/lib)
+
 include_directories(SYSTEM  ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${DD4hep_INCLUDE_DIRS})
 
 gaudi_add_library(GiGaMTDD4hepLib
-- 
GitLab


From 1ddeefdef5654bcfac575f40f8f72cac3d9fa702 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Mon, 13 Dec 2021 21:08:36 +0100
Subject: [PATCH 03/56] Use dd4hep in a dedicated platform

---
 DD4hepDDG4Ext/CMakeLists.txt    | 2 ++
 Sim/GiGaMTDD4hep/CMakeLists.txt | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/DD4hepDDG4Ext/CMakeLists.txt b/DD4hepDDG4Ext/CMakeLists.txt
index 2ac78d2d..ce143f41 100644
--- a/DD4hepDDG4Ext/CMakeLists.txt
+++ b/DD4hepDDG4Ext/CMakeLists.txt
@@ -10,6 +10,7 @@
 ###############################################################################
 gaudi_subdir(DD4hepDDG4Ext v1r0)
 
+if(USE_DD4HEP)
 # Define EvtGen external project
 set(DD4hep_GIT_SOURCE "https://gitlab.cern.ch/Gaussino/DD4hep.git" CACHE STRING "URL of the DD4hep git repository")
 set(DD4hep_GIT_TAG "v01-16-01-patches" CACHE STRING "Tag of DD4hep to be used")
@@ -74,3 +75,4 @@ install(DIRECTORY "${INSTALL_DIR}/lib/"
         PATTERN "python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}" EXCLUDE)
 install(DIRECTORY "${INSTALL_DIR}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/"
         DESTINATION python)
+endif()
diff --git a/Sim/GiGaMTDD4hep/CMakeLists.txt b/Sim/GiGaMTDD4hep/CMakeLists.txt
index c21f5776..30aaf4b0 100644
--- a/Sim/GiGaMTDD4hep/CMakeLists.txt
+++ b/Sim/GiGaMTDD4hep/CMakeLists.txt
@@ -14,6 +14,7 @@
 ################################################################################
 gaudi_subdir(GiGaMTDD4hep v1r0)
 
+if(USE_DD4HEP)
 
 gaudi_depends_on_subdirs(GaudiAlg
                          Sim/GiGaMTFactories
@@ -58,3 +59,4 @@ add_dependencies(GiGaMTDD4hepLib DD4hepDDG4Ext)
 gaudi_add_module(GiGaMTDD4hep
                  src/components/*.cpp 
                  LINK_LIBRARIES GiGaMTDD4hepLib GaudiAlgLib)
+endif()
-- 
GitLab


From de8de180cd9a094cfc13684ed98f8f2ea177c070 Mon Sep 17 00:00:00 2001
From: Rosen Matev <rosen.matev@cern.ch>
Date: Wed, 23 Jun 2021 18:18:14 +0200
Subject: [PATCH 04/56] Add G4OpticalPhysics list

---
 Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp b/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
index 05e0ed40..4e68eb1d 100644
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
+++ b/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
@@ -37,6 +37,9 @@
 #include "Geant4/G4HadronPhysicsFTFP_BERT.hh"
 #include "Geant4/G4HadronPhysicsFTFP_BERT_HP.hh"
 
+// Optical physics
+#include "Geant4/G4OpticalPhysics.hh"
+
 typedef GiGaMTG4PhysicsConstrFAC<G4DecayPhysics> GiGaMT_G4DecayPhysics;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_G4DecayPhysics, "GiGaMT_G4DecayPhysics" )
 
@@ -117,3 +120,7 @@ DECLARE_COMPONENT_WITH_ID( GiGaMT_G4HadronPhysicsFTFP_BERT_HP, "GiGaMT_G4HadronP
 
 typedef GiGaMTG4PhysicsConstrFAC<G4NeutronTrackingCut> GiGaMT_G4NeutronTrackingCut;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_G4NeutronTrackingCut, "GiGaMT_G4NeutronTrackingCut" )
+
+// Cerenkov and Optical physics
+typedef GiGaMTG4PhysicsConstrFAC<G4OpticalPhysics> GiGaMT_G4OpticalPhysics;
+DECLARE_COMPONENT_WITH_ID( GiGaMT_G4OpticalPhysics, "GiGaMT_G4OpticalPhysics" )
-- 
GitLab


From 0c117ccb70a7d6aa2c6066ef012a15b6f88e89ee Mon Sep 17 00:00:00 2001
From: Gitlab CI <noreply@cern.ch>
Date: Fri, 28 Jan 2022 16:20:05 +0000
Subject: [PATCH 05/56] Fixed formatting

patch generated by https://gitlab.cern.ch/Gaussino/Gaussino/-/jobs/19120601
---
 .../src/phys/GiGaMTG4PhysicsConstrFAC.cpp     | 35 ++++++++-----------
 1 file changed, 15 insertions(+), 20 deletions(-)

diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp b/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
index 4e68eb1d..a25963ae 100644
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
+++ b/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
@@ -58,18 +58,15 @@ typedef GiGaMTG4PhysicsConstrFAC<G4IonPhysics> GiGaMT_G4IonPhysics;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_G4IonPhysics, "GiGaMT_G4IonPhysics" )
 
 template <typename PhysConstr>
-class GiGaMTG4PhysicsConstrFAC<PhysConstr,
-                               typename std::enable_if<std::is_same<PhysConstr, G4StoppingPhysics>::value,
-                                                       PhysConstr>::type>
-    : public extends<GiGaMTPhysConstr, GiGaFactoryBase<G4VPhysicsConstructor>>
-{
-  Gaudi::Property<bool> m_useMuonMinusCapturetool{this, "UseMuonMinusCapture", true,
-                          "Parameter 'UseMuonMinusCapture' for the constructor of G4StoppingPhysics"};
+class GiGaMTG4PhysicsConstrFAC<
+    PhysConstr, typename std::enable_if<std::is_same<PhysConstr, G4StoppingPhysics>::value, PhysConstr>::type>
+    : public extends<GiGaMTPhysConstr, GiGaFactoryBase<G4VPhysicsConstructor>> {
+  Gaudi::Property<bool> m_useMuonMinusCapturetool{
+      this, "UseMuonMinusCapture", true, "Parameter 'UseMuonMinusCapture' for the constructor of G4StoppingPhysics"};
 
 public:
   using extends::extends;
-  PhysConstr* construct() const override
-  {
+  PhysConstr* construct() const override {
     auto tmp = new PhysConstr{name(), verbosity(), m_useMuonMinusCapturetool.value()};
     return tmp;
   }
@@ -85,22 +82,20 @@ DECLARE_COMPONENT_WITH_ID( GiGaMT_G4NeutronTrackingCut, "GiGaMT_G4NeutronTrackin
 
 // Specialization for those HadronPhysics lists with quasi elastic option
 template <typename PhysConstr>
-class GiGaMTG4PhysicsConstrFAC<PhysConstr,
-                               typename std::enable_if<std::is_same<PhysConstr, G4HadronPhysicsQGSP_BERT>::value ||
-                                                       std::is_same<PhysConstr, G4HadronPhysicsQGSP_BERT_HP>::value ||
-                                                       std::is_same<PhysConstr, G4HadronPhysicsQGSP_FTFP_BERT>::value ||
-                                                       std::is_same<PhysConstr, G4HadronPhysicsFTFP_BERT>::value ||
-                                                       std::is_same<PhysConstr, G4HadronPhysicsFTFP_BERT_HP>::value,
-                                                       PhysConstr>::type>
-    : public extends<GiGaMTPhysConstr, GiGaFactoryBase<G4VPhysicsConstructor>>
-{
+class GiGaMTG4PhysicsConstrFAC<
+    PhysConstr, typename std::enable_if<std::is_same<PhysConstr, G4HadronPhysicsQGSP_BERT>::value ||
+                                            std::is_same<PhysConstr, G4HadronPhysicsQGSP_BERT_HP>::value ||
+                                            std::is_same<PhysConstr, G4HadronPhysicsQGSP_FTFP_BERT>::value ||
+                                            std::is_same<PhysConstr, G4HadronPhysicsFTFP_BERT>::value ||
+                                            std::is_same<PhysConstr, G4HadronPhysicsFTFP_BERT_HP>::value,
+                                        PhysConstr>::type>
+    : public extends<GiGaMTPhysConstr, GiGaFactoryBase<G4VPhysicsConstructor>> {
   Gaudi::Property<bool> m_quasiElastic{this, "QuasiElastic", true,
                                        "Parameter 'quasiElastic' for the constructor of HadronPhysicsQGSP_BERT"};
 
 public:
   using extends::extends;
-  PhysConstr* construct() const override
-  {
+  PhysConstr* construct() const override {
     auto tmp = new PhysConstr{name(), m_quasiElastic.value()};
     tmp->SetVerboseLevel( verbosity() );
     return tmp;
-- 
GitLab


From 578919dff82de320fdd9f8f314b929a4f99b768a Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Mon, 21 Feb 2022 12:14:01 +0100
Subject: [PATCH 06/56] move to gitlab pages (proposal)

---
 .gitlab-ci.yml | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bb016ac1..b02d5233 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -73,22 +73,17 @@ build-docs:
     paths:
       - docs/_build/html/
 
-# inspired by https://gitlab.cern.ch/lhcb/Moore/-/blob/master/.gitlab-ci.yml      
-deploy-docs:
+pages:
   stage: deploy
   image: gitlab-registry.cern.ch/ci-tools/ci-web-deployer
-  rules:
-    - if: '$CI_COMMIT_REF_PROTECTED == "true" || $CI_MERGE_REQUEST_LABELS =~ /Documentation/' 
-  variables:
-    EOS_PATH: "/eos/project/l/lhcbwebsites/www/projects/gaussino/$CI_COMMIT_REF_NAME"
-    CI_OUTPUT_DIR: "docs/_build/html"
-    METHOD: "rsync"
-  before_script:
-    # As the previous stage is allowed to fail, skip this stage if the previous
-    # did not complete successfully (i.e. did not create the html directory)
-    - test -d $CI_OUTPUT_DIR || { echo "WARNING docs not built, stopping"; exit 77; }
   script:
-    - deploy-eos && echo -e "Deployed at\n\n\t/eos/project/l/lhcbwebsites/www/projects/gaussino/$CI_COMMIT_REF_NAME/index.html"
+    - mv docs/_build/html/ public
+  before_script:
+    - test -d docs/_build/html || { echo "WARNING docs not built, stopping"; exit 77; }
+  artifacts:
+    paths:
+    - public
   allow_failure:
     exit_codes: 77
 
+
-- 
GitLab


From b7fc59383ebc4a1d1d1b7d9c6fb1284c70e06ae3 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Tue, 22 Feb 2022 11:13:12 +0100
Subject: [PATCH 07/56] Update platform in the docs

---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bb016ac1..93235383 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,8 +15,8 @@ stages:
 
 variables:
   TARGET_BRANCH: master
-  BINARY_TAG: x86_64_v2-centos7-gcc10-opt
-  LCG_VERSION: 100
+  BINARY_TAG: x86_64_v2-centos7-gcc11-opt
+  LCG_VERSION: 101
   NO_LBLOGIN: "1"
 
 
-- 
GitLab


From 0ec9f67a0f596e204ef13c9285dab9037fa43224 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Tue, 22 Feb 2022 11:21:30 +0100
Subject: [PATCH 08/56] Test binary tag

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 93235383..6fe09a8c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -56,7 +56,7 @@ build-docs:
     - cvmfs
   variables:
     NIGHTLIES_PATH: "/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino/latest"
-    LOCAL_PYTHON: "InstallArea/x86_64_v2-centos7-gcc10-opt/python"
+    LOCAL_PYTHON: "InstallArea/$BINARY_TAG/python"
   script:
     - . /cvmfs/lhcb.cern.ch/lib/LbEnv.sh
     - pip install myst_parser graphviz
-- 
GitLab


From ead6138bfd27641656c8d6547d93c730c109757f Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Wed, 2 Mar 2022 14:55:39 +0100
Subject: [PATCH 09/56] One missing platform

---
 docs/getting_started/installing.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/getting_started/installing.md b/docs/getting_started/installing.md
index 8b55af2c..0bfff50d 100644
--- a/docs/getting_started/installing.md
+++ b/docs/getting_started/installing.md
@@ -25,7 +25,7 @@ lb-set-platform x86_64_v2-centos7-gcc11-opt
 
 ```{eval-rst}
 .. note::
-    Use `x86_64_v2-centos7-gcc10+dd4hep-opt` if you want work with Detector/DD4hep.
+    Use `x86_64_v2-centos7-gcc11+dd4hep-opt` if you want work with Detector/DD4hep.
 ```
 
 ### Building from source
-- 
GitLab


From 5c624ef05d05f322ccc8b4861054f7f4834f1069 Mon Sep 17 00:00:00 2001
From: Marco Clemencic <marco.clemencic@cern.ch>
Date: Thu, 17 Mar 2022 17:32:59 +0100
Subject: [PATCH 10/56] Fix CMAKE_PREFIX_PATH to use for a local copy of the
 nightlies

---
 docs/getting_started/installing.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/getting_started/installing.md b/docs/getting_started/installing.md
index 0bfff50d..9248bf52 100644
--- a/docs/getting_started/installing.md
+++ b/docs/getting_started/installing.md
@@ -39,7 +39,7 @@ lb-set-platform x86_64_v2-centos7-gcc11-opt
 
     ```
     lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support lhcb-gaussino Today
-    export CMAKE_PREFIX_PATH=$PWD:${CMAKE_PREFIX_PATH}
+    export CMAKE_PREFIX_PATH=${PWD}/lhcb-gaussino/Today:${CMAKE_PREFIX_PATH}
     ```
 
     ```{eval-rst}
-- 
GitLab


From 5c84113ad76b50e4895a6e12eb20ca0e093120a4 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Mon, 11 Apr 2022 14:32:59 +0200
Subject: [PATCH 11/56] Remove ->Geant4/<- prefix in all the headers coming
 from G4

---
 .../ExternalDetector/Embedder.h               |  2 +-
 .../ExternalDetector/MaterialFactory.h        |  2 +-
 .../src/Components/CuboidEmbedder.cpp         |  2 +-
 .../src/Components/WorldCreator.cpp           |  8 ++--
 Sim/ExternalDetector/src/Lib/Embedder.cpp     | 14 +++---
 Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h     |  2 +-
 .../src/components/GiGaActionInitializer.cpp  |  8 ++--
 Sim/GiGaMT/src/components/GiGaMT.cpp          | 16 +++----
 Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp | 18 ++++----
 .../components/HepMC3ToMCTruthConverter.cpp   |  6 +--
 .../src/components/HepMC3ToMCTruthConverter.h |  2 +-
 .../GiGaMTCoreCut/GaussinoG4UserLimits.h      |  6 +--
 Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h   |  2 +-
 .../GiGaMTCoreDet/GdmlDetectorConstruction.h  |  4 +-
 .../GiGaMTDetectorConstruction.h              |  4 +-
 Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h   |  4 +-
 .../GiGaMTCoreRun/GiGaMTRunManager.h          |  2 +-
 .../GiGaMTCoreRun/GiGaRunActionCommand.h      |  2 +-
 .../GiGaMTCoreRun/GiGaWorkerPilot.h           |  2 +-
 .../GiGaMTCoreRun/GiGaWorkerRunManager.h      |  2 +-
 .../GaussinoEventInformation.h                |  4 +-
 .../GaussinoPrimaryParticleInformation.h      |  4 +-
 .../GaussinoTrackInformation.h                |  8 ++--
 .../GiGaMTCoreTruth/LinkedParticle.h          |  2 +-
 .../GiGaMTCoreTruth/MCTruthConverter.h        |  6 +--
 .../TruthFlaggingTrackAction.h                |  2 +-
 .../GiGaMTCoreTruth/TruthStoringTrackAction.h |  4 +-
 Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp   | 20 ++++-----
 .../src/run/GiGaRunActionCommand.cpp          |  2 +-
 Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp    | 12 ++---
 .../src/run/GiGaWorkerRunManager.cpp          | 16 +++----
 Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp |  2 +-
 .../src/truth/TruthFlaggingTrackAction.cpp    | 12 ++---
 .../src/truth/TruthStoringTrackAction.cpp     |  6 +--
 Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h  |  2 +-
 .../GiGaMTDD4hep/DD4hepDetectorConstruction.h |  2 +-
 .../DD4hepDetectorConstructionFAC.cpp         |  4 +-
 Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp     |  2 +-
 .../src/lib/DD4hepDetectorConstruction.cpp    |  2 +-
 Sim/GiGaMTDebug/src/DebugStepAction.cpp       | 14 +++---
 Sim/GiGaMTDebug/src/DebugTrackAction.cpp      | 12 ++---
 .../FCCTest/FCCTest/CalorimeterHit.h          | 14 +++---
 .../FCCTest/FCCTest/CalorimeterSD.h           |  2 +-
 .../src/components/G4GdmlTestDetector.cpp     |  2 +-
 .../src/components/G4GdmlTestDetector.h       |  2 +-
 .../src/components/G4SaveTestCalHits.cpp      |  2 +-
 .../FCCTest/src/lib/CalorimeterHit.cpp        | 22 +++++-----
 .../FCCTest/src/lib/CalorimeterSD.cpp         | 12 ++---
 Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp | 10 ++---
 .../GiGaMTG4PhysicsConstrFAC.h                |  4 +-
 .../GiGaMTFactories/GiGaMTG4PhysicsFactory.h  |  2 +-
 .../GiGaMTFactories/GiGaMTG4SensDetFactory.h  |  2 +-
 .../GiGaMTFactories/Magnet/FieldMgrBase.h     |  8 ++--
 .../src/det/GDMLConstructionFactory.h         |  2 +-
 .../src/det/GiGaMTDetectorConstructionFAC.cpp |  6 +--
 .../src/det/GiGaMTDetectorConstructionFAC.h   |  2 +-
 .../src/magnet/components/MagFieldFromSvc.cpp |  2 +-
 .../src/magnet/components/Steppers.cpp        | 26 +++++------
 .../src/magnet/components/ToolFieldMgr.cpp    |  2 +-
 .../src/magnet/lib/FieldMgrBase.cpp           | 10 ++---
 .../src/phys/GiGaMTG4PhysicsConstrFAC.cpp     | 34 +++++++-------
 .../src/phys/GiGaMTG4PhysicsFactory.cpp       | 44 +++++++++----------
 .../src/phys/GiGaMTModularPhysListFAC.cpp     |  2 +-
 .../src/phys/GiGaMTModularPhysListFAC.h       |  4 +-
 .../src/truth/TruthActionFactories.cpp        |  2 +-
 Sim/GiGaMTGeo/src/GiGaRegionTool.cpp          | 10 ++---
 Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp         |  8 ++--
 Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp    |  4 +-
 Sim/MCCollector/src/MCCollectorHit.h          |  6 +--
 Sim/MCCollector/src/MCCollectorSensDet.cpp    | 18 ++++----
 .../ParallelGeometry/Physics.h                |  2 +-
 .../ParallelGeometry/PhysicsFactory.h         |  2 +-
 Sim/ParallelGeometry/ParallelGeometry/World.h |  2 +-
 .../ParallelGeometry/WorldFactory.h           |  8 ++--
 .../ParallelGeometry/WorldFactory.icpp        |  2 +-
 Sim/ParallelGeometry/src/Lib/Physics.cpp      | 12 ++---
 76 files changed, 269 insertions(+), 269 deletions(-)

diff --git a/Sim/ExternalDetector/ExternalDetector/Embedder.h b/Sim/ExternalDetector/ExternalDetector/Embedder.h
index 9ea601e0..73da3250 100644
--- a/Sim/ExternalDetector/ExternalDetector/Embedder.h
+++ b/Sim/ExternalDetector/ExternalDetector/Embedder.h
@@ -17,7 +17,7 @@
 #include "GiGaMTCoreDet/IExternalDetectorEmbedder.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 // Geant4
-#include "Geant4/G4VSensitiveDetector.hh"
+#include "G4VSensitiveDetector.hh"
 
 class G4VSolid;
 class G4VPhysicalVolume;
diff --git a/Sim/ExternalDetector/ExternalDetector/MaterialFactory.h b/Sim/ExternalDetector/ExternalDetector/MaterialFactory.h
index 5dbf43e1..2e167cc2 100644
--- a/Sim/ExternalDetector/ExternalDetector/MaterialFactory.h
+++ b/Sim/ExternalDetector/ExternalDetector/MaterialFactory.h
@@ -14,7 +14,7 @@
 #include "GaudiKernel/PhysicalConstants.h"
 #include "GaudiKernel/SystemOfUnits.h"
 // Geant4
-#include "Geant4/G4Material.hh"
+#include "G4Material.hh"
 // GiGaMT
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
diff --git a/Sim/ExternalDetector/src/Components/CuboidEmbedder.cpp b/Sim/ExternalDetector/src/Components/CuboidEmbedder.cpp
index e2fb7076..f43a547c 100644
--- a/Sim/ExternalDetector/src/Components/CuboidEmbedder.cpp
+++ b/Sim/ExternalDetector/src/Components/CuboidEmbedder.cpp
@@ -13,7 +13,7 @@
 // Gaudi
 #include "GaudiKernel/SystemOfUnits.h"
 // G4
-#include "Geant4/G4Box.hh"
+#include "G4Box.hh"
 
 namespace ExternalDetector {
   class CuboidEmbedder : public Embedder<G4Box> {
diff --git a/Sim/ExternalDetector/src/Components/WorldCreator.cpp b/Sim/ExternalDetector/src/Components/WorldCreator.cpp
index a2dede65..0bbb6097 100644
--- a/Sim/ExternalDetector/src/Components/WorldCreator.cpp
+++ b/Sim/ExternalDetector/src/Components/WorldCreator.cpp
@@ -10,10 +10,10 @@
 \*****************************************************************************/
 
 // G4
-#include "Geant4/G4Box.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4Material.hh"
-#include "Geant4/G4PVPlacement.hh"
+#include "G4Box.hh"
+#include "G4LogicalVolume.hh"
+#include "G4Material.hh"
+#include "G4PVPlacement.hh"
 // Gaudi
 #include "GaudiKernel/Service.h"
 #include "GaudiKernel/SystemOfUnits.h"
diff --git a/Sim/ExternalDetector/src/Lib/Embedder.cpp b/Sim/ExternalDetector/src/Lib/Embedder.cpp
index a793ed6b..55a0e204 100644
--- a/Sim/ExternalDetector/src/Lib/Embedder.cpp
+++ b/Sim/ExternalDetector/src/Lib/Embedder.cpp
@@ -11,13 +11,13 @@
 // local
 #include "ExternalDetector/Embedder.h"
 // G4
-#include "Geant4/G4Box.hh"
-#include "Geant4/G4GDMLParser.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4Material.hh"
-#include "Geant4/G4PVPlacement.hh"
-#include "Geant4/G4SDManager.hh"
+#include "G4Box.hh"
+#include "G4GDMLParser.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4Material.hh"
+#include "G4PVPlacement.hh"
+#include "G4SDManager.hh"
 
 namespace ExternalDetector {
 
diff --git a/Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h b/Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h
index 81f29515..d3702af6 100644
--- a/Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h
+++ b/Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h
@@ -11,7 +11,7 @@
 #pragma once
 
 #include "GaudiAlg/GaudiTool.h"
-#include "Geant4/G4VUserActionInitialization.hh"
+#include "G4VUserActionInitialization.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
diff --git a/Sim/GiGaMT/src/components/GiGaActionInitializer.cpp b/Sim/GiGaMT/src/components/GiGaActionInitializer.cpp
index c4f88b06..d97267e1 100644
--- a/Sim/GiGaMT/src/components/GiGaActionInitializer.cpp
+++ b/Sim/GiGaMT/src/components/GiGaActionInitializer.cpp
@@ -12,10 +12,10 @@
 
 // Using the Multi-action lists in Geant4 since 10.3
 // Even though they publically inherit from std::vector
-#include "Geant4/G4MultiEventAction.hh"
-#include "Geant4/G4MultiRunAction.hh"
-#include "Geant4/G4MultiSteppingAction.hh"
-#include "Geant4/G4MultiTrackingAction.hh"
+#include "G4MultiEventAction.hh"
+#include "G4MultiRunAction.hh"
+#include "G4MultiSteppingAction.hh"
+#include "G4MultiTrackingAction.hh"
 
 DECLARE_COMPONENT( GiGaActionInitializer )
 
diff --git a/Sim/GiGaMT/src/components/GiGaMT.cpp b/Sim/GiGaMT/src/components/GiGaMT.cpp
index a5e428a1..bb85c37e 100755
--- a/Sim/GiGaMT/src/components/GiGaMT.cpp
+++ b/Sim/GiGaMT/src/components/GiGaMT.cpp
@@ -24,14 +24,14 @@
 #include "GaudiKernel/Stat.h"
 
 // from G4
-#include "Geant4/G4MaterialTable.hh"
-#include "Geant4/G4NistManager.hh"
-#include "Geant4/G4ParticlePropertyTable.hh"
-#include "Geant4/G4ParticleTable.hh"
-#include "Geant4/G4UIsession.hh"
-#include "Geant4/G4VUserActionInitialization.hh"
-#include "Geant4/G4VUserPhysicsList.hh"
-#include "Geant4/G4VVisManager.hh"
+#include "G4MaterialTable.hh"
+#include "G4NistManager.hh"
+#include "G4ParticlePropertyTable.hh"
+#include "G4ParticleTable.hh"
+#include "G4UIsession.hh"
+#include "G4VUserActionInitialization.hh"
+#include "G4VUserPhysicsList.hh"
+#include "G4VVisManager.hh"
 
 // from GiGaMT
 #include "CLHEP/Random/RandomEngine.h"
diff --git a/Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp b/Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp
index 5549e1f1..6648397d 100755
--- a/Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp
+++ b/Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp
@@ -17,15 +17,15 @@
 #include "GaudiKernel/StatusCode.h"
 #include "GaudiKernel/System.h"
 /// G4
-#include "Geant4/G4UserEventAction.hh"
-#include "Geant4/G4UserRunAction.hh"
-#include "Geant4/G4UserStackingAction.hh"
-#include "Geant4/G4UserSteppingAction.hh"
-#include "Geant4/G4UserTrackingAction.hh"
-#include "Geant4/G4VPhysicalVolume.hh"
-#include "Geant4/G4VUserDetectorConstruction.hh"
-#include "Geant4/G4VUserPhysicsList.hh"
-#include "Geant4/G4VUserPrimaryGeneratorAction.hh"
+#include "G4UserEventAction.hh"
+#include "G4UserRunAction.hh"
+#include "G4UserStackingAction.hh"
+#include "G4UserSteppingAction.hh"
+#include "G4UserTrackingAction.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VUserDetectorConstruction.hh"
+#include "G4VUserPhysicsList.hh"
+#include "G4VUserPrimaryGeneratorAction.hh"
 
 /// GiGa
 #include "GiGaMT/GiGaException.h"
diff --git a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp b/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp
index d6832a85..e6b2b1d2 100644
--- a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp
+++ b/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp
@@ -17,9 +17,9 @@
 #include "Kernel/ParticleProperty.h"
 
 // Geant4
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4SystemOfUnits.hh"
-#include "Geant4/G4ParticleTable.hh"
+#include "G4Event.hh"
+#include "G4SystemOfUnits.hh"
+#include "G4ParticleTable.hh"
 
 // HepMC3
 #include "GaudiKernel/Vector4DTypes.h"
diff --git a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h b/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h
index 80a2dd25..38aa093f 100644
--- a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h
+++ b/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h
@@ -14,7 +14,7 @@
 #include "GaudiAlg/GaudiTool.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/SystemOfUnits.h"
-#include "Geant4/G4SystemOfUnits.hh"
+#include "G4SystemOfUnits.hh"
 
 #include "GiGaMTTruth/IHepMC3ToMCTruthConverter.h"
 #include "HepMC3/GenParticle.h"
diff --git a/Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h b/Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h
index 3d795ee3..4da75215 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h
@@ -15,8 +15,8 @@
 
 enum ULtype {ULMinEkine, ULMaxTime, ULMaxStepLength, ULMaxTrackLength, ULMinRange};
 
-#include "Geant4/globals.hh"
-#include "Geant4/G4UserLimits.hh"
+#include "globals.hh"
+#include "G4UserLimits.hh"
 #include <map>
 
 class G4Track;
@@ -94,7 +94,7 @@ inline bool operator!= ( const Gaussino::UserLimits& ul1 ,
 { return !(ul1 == ul2) ; }
 
 }
-#include "Geant4/G4Track.hh"
+#include "G4Track.hh"
 
 inline const G4String& Gaussino::UserLimits::GetType() const
 {
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h b/Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h
index efe69880..c8f0b278 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 // Include files
-#include "Geant4/G4VHit.hh"
+#include "G4VHit.hh"
 
 /** @class Det/GaussHitBase Det/GaussHitBase.h GaussTools/Det/GaussHitBase.h
  *
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h b/Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h
index 89899e15..d86c634b 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h
@@ -10,8 +10,8 @@
 \*****************************************************************************/
 #pragma once
 // Geant
-#include "Geant4/G4GDMLParser.hh"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4GDMLParser.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include <functional>
 
 /** @class GDMLDetectorConstruction
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h b/Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
index 2e9c6c62..f107a893 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
@@ -11,8 +11,8 @@
 #pragma once
 
 // from Gaudi
-#include "Geant4/G4VPhysicalVolume.hh"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include <functional>
 
 //@class GiGaMTDetectorConstruction
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h b/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h
index 30e7be8e..66ec8fcf 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h
@@ -10,8 +10,8 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4VHitsCollection.hh"
+#include "G4Event.hh"
+#include "G4VHitsCollection.hh"
 #include <memory>
 
 class GiGaWorkerPilot;
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h b/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h
index 61983b8d..e3bfcfd8 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h
@@ -12,7 +12,7 @@
 
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 // Geant4 includes
-#include "Geant4/G4MTRunManager.hh"
+#include "G4MTRunManager.hh"
 
 //@class GiGaMTRunManager
 //@brief Specilization of the G4MTRunManager class for Gaussino
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h b/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h
index ea8764f7..cbd315cb 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4UserRunAction.hh"
+#include "G4UserRunAction.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include <string>
 #include <vector>
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h b/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h
index 02d580da..f8d7e033 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h
@@ -17,7 +17,7 @@
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "GiGaMTCoreTruth/MCTruthConverter.h"
 
-#include "Geant4/G4Event.hh"
+#include "G4Event.hh"
 #include "HepMC3/GenEvent.h"
 
 // Main worker thread class that is instantiated in the
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h b/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h
index ed794d2b..e3f26674 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4WorkerRunManager.hh"
+#include "G4WorkerRunManager.hh"
 
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h b/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h
index 9f2e4e2b..6245833d 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h
@@ -15,8 +15,8 @@
 #include <string>
 #include <vector>
 /// Geant4
-#include "Geant4/G4EventManager.hh"
-#include "Geant4/G4VUserEventInformation.hh"
+#include "G4EventManager.hh"
+#include "G4VUserEventInformation.hh"
 #include "GiGaMTCoreTruth/MCTruthConverter.h"
 
 /** @class GaussinoTrackInformation GaussinoTrackInformation.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h b/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h
index d6250cca..bfb2704c 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h
@@ -9,8 +9,8 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #pragma once
-#include "Geant4/G4VUserPrimaryParticleInformation.hh"
-#include "Geant4/G4PrimaryParticle.hh"
+#include "G4VUserPrimaryParticleInformation.hh"
+#include "G4PrimaryParticle.hh"
 
 /** @class GaussinoPrimaryParticleInformation
  *
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h b/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h
index e9066ebf..9b6eca91 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h
@@ -14,10 +14,10 @@
 #include <string>
 #include <vector>
 /// Geant4
-#include "Geant4/G4Allocator.hh"
-#include "Geant4/G4EventManager.hh"
-#include "Geant4/G4TrackingManager.hh"
-#include "Geant4/G4VUserTrackInformation.hh"
+#include "G4Allocator.hh"
+#include "G4EventManager.hh"
+#include "G4TrackingManager.hh"
+#include "G4VUserTrackInformation.hh"
 /// GaussTools
 #include "GiGaMTCoreDet/GaussHitBase.h"
 #include "GiGaMTCoreTruth/DetTrackInfo.h"
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h b/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h
index c5d4150c..8d9b3828 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h
@@ -11,7 +11,7 @@
 #pragma once
 #include <set>
 
-#include "Geant4/G4PrimaryParticle.hh"
+#include "G4PrimaryParticle.hh"
 #include "GiGaMTCoreTruth/Common.h"
 #include "GiGaMTCoreTruth/G4TruthParticle.h"
 #include "HepMC3/FourVector.h"
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h b/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h
index feafd051..dd2fe6a5 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h
@@ -23,9 +23,9 @@
 #include "GiGaMTCoreTruth/Common.h"
 #include "GiGaMTCoreTruth/LinkedParticle.h"
 
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4PrimaryParticle.hh"
-#include "Geant4/G4PrimaryVertex.hh"
+#include "G4Event.hh"
+#include "G4PrimaryParticle.hh"
+#include "G4PrimaryVertex.hh"
 
 #include <functional>
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h b/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h
index 79ddb3ad..75720077 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h
@@ -15,7 +15,7 @@
 #include <vector>
 // GiGa
 #include "CLHEP/Units/SystemOfUnits.h"
-#include "Geant4/G4UserTrackingAction.hh"
+#include "G4UserTrackingAction.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "GiGaMTCoreTruth/ZMaxPlane.h"
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h b/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h
index 5b296eff..b65b2397 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h
+++ b/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h
@@ -10,8 +10,8 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4UserTrackingAction.hh"
-#include "Geant4/G4VProcess.hh"
+#include "G4UserTrackingAction.hh"
+#include "G4VProcess.hh"
 
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "HepMC3/FourVector.h"
diff --git a/Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp b/Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp
index 3535ad61..7e4daf54 100644
--- a/Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp
+++ b/Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp
@@ -10,16 +10,16 @@
 \*****************************************************************************/
 #include "GiGaMTCoreRun/GiGaMTRunManager.h"
 
-#include "Geant4/G4StateManager.hh"
-#include "Geant4/G4GeometryManager.hh"
-#include "Geant4/G4UserRunAction.hh"
-#include "Geant4/G4Run.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4MTRunManagerKernel.hh"
-
-#include "Geant4/G4IonTable.hh"
-#include "Geant4/G4ParticleTable.hh"
-#include "Geant4/G4CascadeInterface.hh"
+#include "G4StateManager.hh"
+#include "G4GeometryManager.hh"
+#include "G4UserRunAction.hh"
+#include "G4Run.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4MTRunManagerKernel.hh"
+
+#include "G4IonTable.hh"
+#include "G4ParticleTable.hh"
+#include "G4CascadeInterface.hh"
 
 #include "GaudiKernel/ISvcLocator.h"
 #include "GaudiKernel/Bootstrap.h"
diff --git a/Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp b/Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp
index 8e5c894e..d82fcf7d 100755
--- a/Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp
+++ b/Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "GiGaMTCoreRun/GiGaRunActionCommand.h"
-#include "Geant4/G4UImanager.hh"
+#include "G4UImanager.hh"
 
 // ============================================================================
 /** performe the action at the begin of each run
diff --git a/Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp b/Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp
index 638362a8..012a9cb4 100644
--- a/Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp
+++ b/Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp
@@ -17,12 +17,12 @@
 
 #include <string>
 
-#include "Geant4/G4AutoDelete.hh"
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4UImanager.hh"
-#include "Geant4/G4UserWorkerThreadInitialization.hh"
-#include "Geant4/G4VUserActionInitialization.hh"
-#include "Geant4/G4WorkerThread.hh"
+#include "G4AutoDelete.hh"
+#include "G4Event.hh"
+#include "G4UImanager.hh"
+#include "G4UserWorkerThreadInitialization.hh"
+#include "G4VUserActionInitialization.hh"
+#include "G4WorkerThread.hh"
 
 GiGaWorkerPilot::GiGaWorkerPilot( GiGaWorkerPilot&& right ) : GiGaMessage( std::move( right ) )
 {
diff --git a/Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp b/Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp
index bab58e4c..445ffb76 100644
--- a/Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp
+++ b/Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp
@@ -10,14 +10,14 @@
 \*****************************************************************************/
 #include "GiGaMTCoreRun/GiGaWorkerRunManager.h"
 
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4GeometryManager.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4MTRunManager.hh"
-#include "Geant4/G4StateManager.hh"
-#include "Geant4/G4TransportationManager.hh"
-#include "Geant4/G4UImanager.hh"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4Event.hh"
+#include "G4GeometryManager.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4MTRunManager.hh"
+#include "G4StateManager.hh"
+#include "G4TransportationManager.hh"
+#include "G4UImanager.hh"
+#include "G4VUserDetectorConstruction.hh"
 
 #include <mutex>
 
diff --git a/Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp b/Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp
index 50ec76c4..a5acc2fd 100644
--- a/Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp
+++ b/Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp
@@ -11,7 +11,7 @@
 #include "GiGaMTCoreTruth/MCTruthConverter.h"
 #include "ConverterInfo.h"
 #include "GaudiKernel/GaudiException.h"
-#include "Geant4/G4SystemOfUnits.hh"
+#include "G4SystemOfUnits.hh"
 #include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
 #include "GiGaMTCoreTruth/LinkedParticleHelpers.h"
 #include "GiGaMTCoreRun/SimResults.h"
diff --git a/Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp b/Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp
index 75ba10f6..27a6ff98 100755
--- a/Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp
+++ b/Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp
@@ -11,12 +11,12 @@
 /// CLHEP
 #include "CLHEP/Geometry/Point3D.h"
 /// Geant4
-#include "Geant4/G4ParticleDefinition.hh"
-#include "Geant4/G4ParticleTable.hh"
-#include "Geant4/G4PrimaryParticle.hh"
-#include "Geant4/G4Track.hh"
-#include "Geant4/G4TrackVector.hh"
-#include "Geant4/G4TrackingManager.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
+#include "G4PrimaryParticle.hh"
+#include "G4Track.hh"
+#include "G4TrackVector.hh"
+#include "G4TrackingManager.hh"
 /// GaudiKernel
 #include "GaudiKernel/MsgStream.h"
 /// GiGa
diff --git a/Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp b/Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp
index a6603ce1..2549c358 100755
--- a/Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp
+++ b/Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp
@@ -22,9 +22,9 @@
 #include "Kernel/ParticleProperty.h"
 
 // G4
-#include "Geant4/G4ParticleDefinition.hh"
-#include "Geant4/G4PrimaryParticle.hh"
-#include "Geant4/G4TrackingManager.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4PrimaryParticle.hh"
+#include "G4TrackingManager.hh"
 
 // Included for vertex types
 // FIXME: Need to reorganise when splitting LHCb
diff --git a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h b/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h
index 875973bb..fa7ff278 100644
--- a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h
+++ b/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h
@@ -20,7 +20,7 @@
 #include "GaudiKernel/IIncidentSvc.h"
 #include "GaudiKernel/Service.h"
 #include "GaudiKernel/Transform3DTypes.h"
-#include "Geant4/G4VSensitiveDetector.hh"
+#include "G4VSensitiveDetector.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
 #include "Kernel/IPropertyConfigSvc.h"
diff --git a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h b/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h
index 1ed11c6e..358c4248 100644
--- a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h
+++ b/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h
@@ -12,7 +12,7 @@
 // Geant
 #include <functional>
 #include "DD4hep/Printout.h"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 
 namespace dd4hep {
 class Detector;
diff --git a/Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp b/Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp
index 446bed5b..12b9ead8 100644
--- a/Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp
+++ b/Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp
@@ -17,8 +17,8 @@
 #include "TSystem.h"
 
 // Geant4
-#include "Geant4/G4VUserDetectorConstruction.hh"
-#include "Geant4/G4FieldManager.hh"
+#include "G4VUserDetectorConstruction.hh"
+#include "G4FieldManager.hh"
 
 /** @class DD4hepDetectorConstructionFAC SimG4Components/src/DD4hepDetectorConstructionFAC.h DD4hepDetectorConstructionFAC.h
  *
diff --git a/Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp b/Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp
index 45dc9e38..833f9fd3 100644
--- a/Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp
+++ b/Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp
@@ -12,7 +12,7 @@
 #include "GiGaMTDD4hep/DD4hepCnvSvc.h"
 
 // Geant4
-#include "Geant4/G4SDManager.hh"
+#include "G4SDManager.hh"
 #include "TSystem.h"
 
 // ============================================================================
diff --git a/Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp b/Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp
index 34511c0e..f8cd63bf 100644
--- a/Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp
+++ b/Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp
@@ -17,7 +17,7 @@
 #include "DDG4/Geant4Converter.h"
 #include "DDG4/Geant4Mapping.h"
 
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 
 DD4hepDetectorConstruction::DD4hepDetectorConstruction(
     const dd4hep::Detector& detector)
diff --git a/Sim/GiGaMTDebug/src/DebugStepAction.cpp b/Sim/GiGaMTDebug/src/DebugStepAction.cpp
index dbeda9e1..c435cbbd 100644
--- a/Sim/GiGaMTDebug/src/DebugStepAction.cpp
+++ b/Sim/GiGaMTDebug/src/DebugStepAction.cpp
@@ -8,8 +8,8 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4UserSteppingAction.hh"
-#include "Geant4/globals.hh"
+#include "G4UserSteppingAction.hh"
+#include "globals.hh"
 
 namespace Gaussino
 {
@@ -24,10 +24,10 @@ namespace Gaussino
   };
 }
 
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4RunManager.hh"
-#include "Geant4/G4Step.hh"
+#include "G4Event.hh"
+#include "G4LogicalVolume.hh"
+#include "G4RunManager.hh"
+#include "G4Step.hh"
 #include "HepMC3/FourVector.h"
 
 template <typename T>
@@ -73,7 +73,7 @@ void Gaussino::DebugStepAction::UserSteppingAction( const G4Step* step )
 #include "GaudiAlg/GaudiTool.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
-#include "Geant4/G4UserTrackingAction.hh"
+#include "G4UserTrackingAction.hh"
 
 class DebugStepActionFAC : public extends<GaudiTool, GiGaFactoryBase<G4UserSteppingAction>>
 {
diff --git a/Sim/GiGaMTDebug/src/DebugTrackAction.cpp b/Sim/GiGaMTDebug/src/DebugTrackAction.cpp
index 5d3ce8b2..f0421223 100755
--- a/Sim/GiGaMTDebug/src/DebugTrackAction.cpp
+++ b/Sim/GiGaMTDebug/src/DebugTrackAction.cpp
@@ -8,8 +8,8 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4UserTrackingAction.hh"
-#include "Geant4/G4VProcess.hh"
+#include "G4UserTrackingAction.hh"
+#include "G4VProcess.hh"
 
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "HepMC3/FourVector.h"
@@ -22,9 +22,9 @@
 // from Gaudi
 
 // G4
-#include "Geant4/G4ParticleDefinition.hh"
-#include "Geant4/G4PrimaryParticle.hh"
-#include "Geant4/G4TrackingManager.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4PrimaryParticle.hh"
+#include "G4TrackingManager.hh"
 
 // Included for vertex types
 // FIXME: Need to reorganise when splitting LHCb
@@ -197,7 +197,7 @@ namespace Gaussino
 #include "GaudiAlg/GaudiTool.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
-#include "Geant4/G4UserTrackingAction.hh"
+#include "G4UserTrackingAction.hh"
 
 class DebugTrackActionFAC : public extends<GaudiTool, GiGaFactoryBase<G4UserTrackingAction>>
 {
diff --git a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h b/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h
index 684b5762..5f2d4680 100644
--- a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h
+++ b/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h
@@ -10,13 +10,13 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4Allocator.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4RotationMatrix.hh"
-#include "Geant4/G4THitsCollection.hh"
-#include "Geant4/G4ThreeVector.hh"
-#include "Geant4/G4Transform3D.hh"
-#include "Geant4/G4VHit.hh"
+#include "G4Allocator.hh"
+#include "G4LogicalVolume.hh"
+#include "G4RotationMatrix.hh"
+#include "G4THitsCollection.hh"
+#include "G4ThreeVector.hh"
+#include "G4Transform3D.hh"
+#include "G4VHit.hh"
 
 class G4AttDef;
 class G4AttValue;
diff --git a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h b/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h
index 77f46344..4751c1c1 100644
--- a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h
+++ b/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h
@@ -11,7 +11,7 @@
 #pragma once
 #include "FCCTest/CalorimeterHit.h"
 
-#include "Geant4/G4VSensitiveDetector.hh"
+#include "G4VSensitiveDetector.hh"
 class G4Step;
 class G4HCofThisEvent;
 class G4TouchableHistory;
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp b/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp
index eb11c50d..475cbd69 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp
+++ b/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp
@@ -11,7 +11,7 @@
 #include "G4GdmlTestDetector.h"
 
 #include "FCCTest/CalorimeterSD.h"
-#include "Geant4/G4SDManager.hh"
+#include "G4SDManager.hh"
 #include "GiGaMTCoreDet/GdmlDetectorConstruction.h"
 
 DECLARE_COMPONENT( G4GdmlTestDetector )
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h b/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h
index 442a545e..2fb290d5 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h
+++ b/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h
@@ -12,7 +12,7 @@
 
 // Gaudi
 #include "GaudiAlg/GaudiTool.h"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
 /** @class G4GdmlTestDetector SimG4Components/src/G4GdmlTestDetector.h G4GdmlTestDetector.h
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp b/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp
index 4c538225..36055c1d 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp
+++ b/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp
@@ -17,7 +17,7 @@
 #include "GaudiKernel/ITHistSvc.h"
 
 // Geant4
-#include "Geant4/G4Event.hh"
+#include "G4Event.hh"
 
 DECLARE_COMPONENT( G4SaveTestCalHits )
 
diff --git a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp b/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp
index 42d22ea4..35787b35 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp
+++ b/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp
@@ -10,17 +10,17 @@
 \*****************************************************************************/
 #include "FCCTest/CalorimeterHit.h"
 
-#include "Geant4/G4AttDef.hh"
-#include "Geant4/G4AttDefStore.hh"
-#include "Geant4/G4AttValue.hh"
-#include "Geant4/G4Box.hh"
-#include "Geant4/G4Colour.hh"
-#include "Geant4/G4SystemOfUnits.hh"
-#include "Geant4/G4UIcommand.hh"
-#include "Geant4/G4UnitsTable.hh"
-#include "Geant4/G4VVisManager.hh"
-#include "Geant4/G4VisAttributes.hh"
-#include "Geant4/G4ios.hh"
+#include "G4AttDef.hh"
+#include "G4AttDefStore.hh"
+#include "G4AttValue.hh"
+#include "G4Box.hh"
+#include "G4Colour.hh"
+#include "G4SystemOfUnits.hh"
+#include "G4UIcommand.hh"
+#include "G4UnitsTable.hh"
+#include "G4VVisManager.hh"
+#include "G4VisAttributes.hh"
+#include "G4ios.hh"
 
 namespace FCCTest
 {
diff --git a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp b/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp
index c5d8f202..1abb1ede 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp
+++ b/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp
@@ -11,12 +11,12 @@
 #include "FCCTest/CalorimeterSD.h"
 #include "FCCTest/CalorimeterHit.h"
 
-#include "Geant4/G4HCofThisEvent.hh"
-#include "Geant4/G4SDManager.hh"
-#include "Geant4/G4Step.hh"
-#include "Geant4/G4TouchableHistory.hh"
-#include "Geant4/G4Track.hh"
-#include "Geant4/G4VTouchable.hh"
+#include "G4HCofThisEvent.hh"
+#include "G4SDManager.hh"
+#include "G4Step.hh"
+#include "G4TouchableHistory.hh"
+#include "G4Track.hh"
+#include "G4VTouchable.hh"
 
 namespace FCCTest
 {
diff --git a/Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp b/Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp
index 76e213a9..a6f188ac 100755
--- a/Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp
+++ b/Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp
@@ -8,11 +8,11 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4Box.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4NistManager.hh"
-#include "Geant4/G4PVPlacement.hh"
-#include "Geant4/G4SystemOfUnits.hh"
+#include "G4Box.hh"
+#include "G4LogicalVolume.hh"
+#include "G4NistManager.hh"
+#include "G4PVPlacement.hh"
+#include "G4SystemOfUnits.hh"
 
 // local
 #include "IronBoxGeo.h"
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h b/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h
index b54461d3..576ec751 100755
--- a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h
+++ b/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h
@@ -12,8 +12,8 @@
 
 // Include files
 #include "GiGaMTFactories/GiGaTool.h"
-#include "Geant4/G4EmStandardPhysics_option1.hh"
-#include "Geant4/G4VPhysicsConstructor.hh"
+#include "G4EmStandardPhysics_option1.hh"
+#include "G4VPhysicsConstructor.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
 /** GiGaMTPhysConstr
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h b/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h
index cb9bf96c..479a9805 100755
--- a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h
+++ b/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4VUserPhysicsList.hh"
+#include "G4VUserPhysicsList.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GaudiAlg/GaudiTool.h"
 
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h b/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h
index 10a33142..8c06330e 100755
--- a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h
+++ b/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h
@@ -11,7 +11,7 @@
 #pragma once
 
 // Include files
-#include "Geant4/G4VSensitiveDetector.hh"
+#include "G4VSensitiveDetector.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h b/Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h
index dfdd37dc..cd3b01c3 100755
--- a/Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h
+++ b/Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h
@@ -13,10 +13,10 @@
 // Include files
 #include "CLHEP/Units/SystemOfUnits.h"
 #include "GaudiKernel/ToolHandle.h"
-#include "Geant4/G4Mag_EqRhs.hh"
-#include "Geant4/G4FieldManager.hh"
-#include "Geant4/G4MagIntegratorStepper.hh"
-#include "Geant4/G4MagneticField.hh"
+#include "G4Mag_EqRhs.hh"
+#include "G4FieldManager.hh"
+#include "G4MagIntegratorStepper.hh"
+#include "G4MagneticField.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
diff --git a/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h b/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h
index 0efc28c0..ff203c77 100644
--- a/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h
+++ b/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h
@@ -12,7 +12,7 @@
 
 // Gaudi
 #include "GaudiAlg/GaudiTool.h"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
 /** @class GDMLConstructionFactory SimG4Components/src/GDMLConstructionFactory.h GDMLConstructionFactory.h
diff --git a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp b/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
index 83126223..56aa9998 100644
--- a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
+++ b/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
@@ -87,8 +87,8 @@ G4VUserDetectorConstruction* GiGaMTDetectorConstructionFAC::construct() const {
   return detconst;
 }
 
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4SDManager.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4SDManager.hh"
 
 void GiGaMTDetectorConstructionFAC::DressVolumes() const {
   auto sdmanager = G4SDManager::GetSDMpointer();
@@ -108,7 +108,7 @@ void GiGaMTDetectorConstructionFAC::DressVolumes() const {
   }
 }
 
-#include "Geant4/G4GDMLParser.hh"
+#include "G4GDMLParser.hh"
 
 StatusCode GiGaMTDetectorConstructionFAC::SaveGDML() const {
   try {
diff --git a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h b/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
index ed0b4e15..d9b004c8 100644
--- a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
+++ b/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
diff --git a/Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp b/Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp
index de5ac762..c671eb97 100755
--- a/Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp
+++ b/Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp
@@ -21,7 +21,7 @@
 #include "GaudiKernel/Vector3DTypes.h"
 
 // local
-#include "Geant4/G4MagneticField.hh"
+#include "G4MagneticField.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
diff --git a/Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp b/Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp
index e56c9311..34477831 100644
--- a/Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp
+++ b/Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp
@@ -9,22 +9,22 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "GaudiAlg/GaudiTool.h"
-#include "Geant4/G4EquationOfMotion.hh"
-#include "Geant4/G4MagIntegratorStepper.hh"
+#include "G4EquationOfMotion.hh"
+#include "G4MagIntegratorStepper.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
-#include "Geant4/G4ExplicitEuler.hh"
-#include "Geant4/G4ImplicitEuler.hh"
-#include "Geant4/G4SimpleRunge.hh"
-#include "Geant4/G4SimpleHeum.hh"
-#include "Geant4/G4ClassicalRK4.hh"
-#include "Geant4/G4CashKarpRKF45.hh"
-#include "Geant4/G4RKG3_Stepper.hh"
-#include "Geant4/G4HelixExplicitEuler.hh"
-#include "Geant4/G4HelixImplicitEuler.hh"
-#include "Geant4/G4HelixSimpleRunge.hh"
-#include "Geant4/G4HelixHeum.hh"
+#include "G4ExplicitEuler.hh"
+#include "G4ImplicitEuler.hh"
+#include "G4SimpleRunge.hh"
+#include "G4SimpleHeum.hh"
+#include "G4ClassicalRK4.hh"
+#include "G4CashKarpRKF45.hh"
+#include "G4RKG3_Stepper.hh"
+#include "G4HelixExplicitEuler.hh"
+#include "G4HelixImplicitEuler.hh"
+#include "G4HelixSimpleRunge.hh"
+#include "G4HelixHeum.hh"
 
 template <typename STEPPER>
 class GiGaMTMagnetStepperFAC : public extends<GaudiTool, GiGaFactoryBase<G4MagIntegratorStepper, G4Mag_EqRhs*> >
diff --git a/Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp b/Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp
index 8f68a3b7..42f23b42 100755
--- a/Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp
+++ b/Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4MagneticField.hh"
+#include "G4MagneticField.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/Magnet/FieldMgrBase.h"
 #include "GaudiKernel/ToolHandle.h"
diff --git a/Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp b/Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp
index 5694c8ba..0e531e8c 100755
--- a/Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp
+++ b/Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp
@@ -10,11 +10,11 @@
 \*****************************************************************************/
 #include "GiGaMTFactories/Magnet/FieldMgrBase.h"
 #include "GaudiKernel/GaudiException.h"
-#include "Geant4/G4ChordFinder.hh"
-#include "Geant4/G4MagIntegratorStepper.hh"
-#include "Geant4/G4Mag_UsualEqRhs.hh"
-#include "Geant4/G4PropagatorInField.hh"
-#include "Geant4/G4TransportationManager.hh"
+#include "G4ChordFinder.hh"
+#include "G4MagIntegratorStepper.hh"
+#include "G4Mag_UsualEqRhs.hh"
+#include "G4PropagatorInField.hh"
+#include "G4TransportationManager.hh"
 
 namespace Gaussino
 {
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp b/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
index a25963ae..d6e13fd9 100644
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
+++ b/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
@@ -13,32 +13,32 @@
 #include "GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h"
 
 // Geant4 physics lists
-#include "Geant4/G4DecayPhysics.hh"
+#include "G4DecayPhysics.hh"
 
 // EM physics
-#include "Geant4/G4EmExtraPhysics.hh"
-#include "Geant4/G4EmStandardPhysics.hh"
-#include "Geant4/G4EmStandardPhysics_option1.hh"
-#include "Geant4/G4EmStandardPhysics_option2.hh"
-#include "Geant4/G4EmStandardPhysics_option3.hh"
+#include "G4EmExtraPhysics.hh"
+#include "G4EmStandardPhysics.hh"
+#include "G4EmStandardPhysics_option1.hh"
+#include "G4EmStandardPhysics_option2.hh"
+#include "G4EmStandardPhysics_option3.hh"
 
 // Ion and hadrons
-#include "Geant4/G4HadronElasticPhysics.hh"
-#include "Geant4/G4HadronElasticPhysicsHP.hh"
-#include "Geant4/G4IonPhysics.hh"
-#include "Geant4/G4NeutronTrackingCut.hh"
-#include "Geant4/G4StoppingPhysics.hh"
+#include "G4HadronElasticPhysics.hh"
+#include "G4HadronElasticPhysicsHP.hh"
+#include "G4IonPhysics.hh"
+#include "G4NeutronTrackingCut.hh"
+#include "G4StoppingPhysics.hh"
 
-#include "Geant4/G4HadronPhysicsQGSP_BERT.hh"
-#include "Geant4/G4HadronPhysicsQGSP_BERT_HP.hh"
-#include "Geant4/G4HadronPhysicsQGSP_FTFP_BERT.hh"
+#include "G4HadronPhysicsQGSP_BERT.hh"
+#include "G4HadronPhysicsQGSP_BERT_HP.hh"
+#include "G4HadronPhysicsQGSP_FTFP_BERT.hh"
 
 // FTFP hadrons
-#include "Geant4/G4HadronPhysicsFTFP_BERT.hh"
-#include "Geant4/G4HadronPhysicsFTFP_BERT_HP.hh"
+#include "G4HadronPhysicsFTFP_BERT.hh"
+#include "G4HadronPhysicsFTFP_BERT_HP.hh"
 
 // Optical physics
-#include "Geant4/G4OpticalPhysics.hh"
+#include "G4OpticalPhysics.hh"
 
 typedef GiGaMTG4PhysicsConstrFAC<G4DecayPhysics> GiGaMT_G4DecayPhysics;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_G4DecayPhysics, "GiGaMT_G4DecayPhysics" )
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp b/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp
index 70bda93e..bd306db8 100644
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp
+++ b/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp
@@ -13,28 +13,28 @@
 // All includes I could find that definethe physics lists
 // that are directly provided by Geant4
 
-#include "Geant4/FTFP_BERT.hh"
-#include "Geant4/FTFP_BERT_ATL.hh"
-#include "Geant4/FTFP_BERT_HP.hh"
-#include "Geant4/FTFP_BERT_TRV.hh"
-#include "Geant4/FTFP_INCLXX.hh"
-#include "Geant4/FTFP_INCLXX_HP.hh"
-#include "Geant4/FTFQGSP_BERT.hh"
-#include "Geant4/FTF_BIC.hh"
-#include "Geant4/INCLXXPhysicsListHelper.hh"
-#include "Geant4/LBE.hh"
-#include "Geant4/NuBeam.hh"
-#include "Geant4/QGSP_BERT.hh"
-#include "Geant4/QGSP_BERT_HP.hh"
-#include "Geant4/QGSP_BIC.hh"
-#include "Geant4/QGSP_BIC_AllHP.hh"
-#include "Geant4/QGSP_BIC_HP.hh"
-#include "Geant4/QGSP_FTFP_BERT.hh"
-#include "Geant4/QGSP_INCLXX.hh"
-#include "Geant4/QGSP_INCLXX_HP.hh"
-#include "Geant4/QGS_BIC.hh"
-#include "Geant4/Shielding.hh"
-#include "Geant4/ShieldingLEND.hh"
+#include "FTFP_BERT.hh"
+#include "FTFP_BERT_ATL.hh"
+#include "FTFP_BERT_HP.hh"
+#include "FTFP_BERT_TRV.hh"
+#include "FTFP_INCLXX.hh"
+#include "FTFP_INCLXX_HP.hh"
+#include "FTFQGSP_BERT.hh"
+#include "FTF_BIC.hh"
+#include "INCLXXPhysicsListHelper.hh"
+#include "LBE.hh"
+#include "NuBeam.hh"
+#include "QGSP_BERT.hh"
+#include "QGSP_BERT_HP.hh"
+#include "QGSP_BIC.hh"
+#include "QGSP_BIC_AllHP.hh"
+#include "QGSP_BIC_HP.hh"
+#include "QGSP_FTFP_BERT.hh"
+#include "QGSP_INCLXX.hh"
+#include "QGSP_INCLXX_HP.hh"
+#include "QGS_BIC.hh"
+#include "Shielding.hh"
+#include "ShieldingLEND.hh"
 
 typedef GiGaMTG4PhysicsFactory<FTFP_BERT> GiGaMT_FTFP_BERT;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_FTFP_BERT, "GiGaMT_FTFP_BERT" )
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp b/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp
index 0774d46e..825b92f0 100755
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp
+++ b/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "GiGaMTModularPhysListFAC.h"
-#include "Geant4/G4VModularPhysicsList.hh"
+#include "G4VModularPhysicsList.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 
 DECLARE_COMPONENT( GiGaMTModularPhysListFAC )
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h b/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h
index 183ca042..b91efad2 100755
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h
+++ b/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h
@@ -12,8 +12,8 @@
 // G4
 #include "GaudiAlg/GaudiTool.h"
 #include "GaudiKernel/ToolHandle.h"
-#include "Geant4/G4VPhysicsConstructor.hh"
-#include "Geant4/G4VUserPhysicsList.hh"
+#include "G4VPhysicsConstructor.hh"
+#include "G4VUserPhysicsList.hh"
 
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
diff --git a/Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp b/Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp
index 992d8fe2..bb327da5 100644
--- a/Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp
+++ b/Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp
@@ -14,7 +14,7 @@
 #include "GiGaMTCoreTruth/TruthFlaggingTrackAction.h"
 #include "GiGaMTCoreTruth/TruthStoringTrackAction.h"
 
-#include "Geant4/G4UserTrackingAction.hh"
+#include "G4UserTrackingAction.hh"
 
 class TruthFlaggingTrackActionFAC : public extends<GiGaTool, GiGaFactoryBase<G4UserTrackingAction>> {
   using extends::extends;
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionTool.cpp b/Sim/GiGaMTGeo/src/GiGaRegionTool.cpp
index e70fc585..0eba5d31 100755
--- a/Sim/GiGaMTGeo/src/GiGaRegionTool.cpp
+++ b/Sim/GiGaMTGeo/src/GiGaRegionTool.cpp
@@ -9,11 +9,11 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 // G4
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4ProductionCuts.hh"
-#include "Geant4/G4Region.hh"
-#include "Geant4/G4RegionStore.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4ProductionCuts.hh"
+#include "G4Region.hh"
+#include "G4RegionStore.hh"
 
 // local
 #include "GiGaRegionTool.h"
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp b/Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp
index 155ec92d..166011cb 100755
--- a/Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp
+++ b/Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp
@@ -15,15 +15,15 @@
 #include "GiGaMTRegions/IRegionsDefinitionSvc.h"
 #include "GiGaMTRegions/RegionCuts.h"
 
-#include "Geant4/G4LogicalVolumeStore.hh"
+#include "G4LogicalVolumeStore.hh"
 
 // local
 #include "GiGaRegionsTool.h"
 
 // G4
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4ProductionCuts.hh"
-#include "Geant4/G4Region.hh"
+#include "G4LogicalVolume.hh"
+#include "G4ProductionCuts.hh"
+#include "G4Region.hh"
 
 // Declaration of the Tool Factory
 DECLARE_COMPONENT( GiGaRegionsTool )
diff --git a/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp b/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp
index 1bb73fca..03368654 100755
--- a/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp
+++ b/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp
@@ -14,8 +14,8 @@
 // SimSvc
 #include "GiGaMTRegions/IRegionsDefinitionSvc.h"
 // Geant4
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalVolumeStore.hh"
 #include "GiGaMTCoreCut/GaussinoG4UserLimits.h"
 // local
 #include "GiGaSetSimAttributes.h"
diff --git a/Sim/MCCollector/src/MCCollectorHit.h b/Sim/MCCollector/src/MCCollectorHit.h
index f6b7bae1..250e6caf 100755
--- a/Sim/MCCollector/src/MCCollectorHit.h
+++ b/Sim/MCCollector/src/MCCollectorHit.h
@@ -14,9 +14,9 @@
 #include "GiGaMTCoreDet/GaussHitBase.h"
 
 // G4
-#include "Geant4/G4Allocator.hh"
-#include "Geant4/G4THitsCollection.hh"
-#include "Geant4/G4ThreeVector.hh"
+#include "G4Allocator.hh"
+#include "G4THitsCollection.hh"
+#include "G4ThreeVector.hh"
 
 namespace MCCollector {
   class Hit : public Gaussino::HitBase {
diff --git a/Sim/MCCollector/src/MCCollectorSensDet.cpp b/Sim/MCCollector/src/MCCollectorSensDet.cpp
index 75b314dd..52cbdc99 100755
--- a/Sim/MCCollector/src/MCCollectorSensDet.cpp
+++ b/Sim/MCCollector/src/MCCollectorSensDet.cpp
@@ -24,15 +24,15 @@
 #include "GaudiKernel/SystemOfUnits.h"
 
 // from Geant4
-#include "Geant4/G4HCofThisEvent.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4SDManager.hh"
-#include "Geant4/G4Step.hh"
-#include "Geant4/G4TouchableHistory.hh"
-#include "Geant4/G4Track.hh"
-#include "Geant4/G4VPhysicalVolume.hh"
-#include "Geant4/G4VSensitiveDetector.hh"
-#include "Geant4/G4ios.hh"
+#include "G4HCofThisEvent.hh"
+#include "G4LogicalVolume.hh"
+#include "G4SDManager.hh"
+#include "G4Step.hh"
+#include "G4TouchableHistory.hh"
+#include "G4Track.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VSensitiveDetector.hh"
+#include "G4ios.hh"
 
 namespace MCCollector {
   class SensDet : public G4VSensitiveDetector, public virtual GiGaMessage {
diff --git a/Sim/ParallelGeometry/ParallelGeometry/Physics.h b/Sim/ParallelGeometry/ParallelGeometry/Physics.h
index 5f75d4c3..762628fa 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/Physics.h
+++ b/Sim/ParallelGeometry/ParallelGeometry/Physics.h
@@ -11,7 +11,7 @@
 #pragma once
 
 // Geant4
-#include "Geant4/G4ParallelWorldPhysics.hh"
+#include "G4ParallelWorldPhysics.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 
 namespace ParallelGeometry {
diff --git a/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h b/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h
index 0ae1f1e1..4661db22 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h
+++ b/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 // Geant4
-#include "Geant4/G4ParallelWorldPhysics.hh"
+#include "G4ParallelWorldPhysics.hh"
 // local
 #include "GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h"
 #include "GiGaMTFactories/GiGaMTG4PhysicsFactory.h"
diff --git a/Sim/ParallelGeometry/ParallelGeometry/World.h b/Sim/ParallelGeometry/ParallelGeometry/World.h
index 6a29ebc8..c250d296 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/World.h
+++ b/Sim/ParallelGeometry/ParallelGeometry/World.h
@@ -11,7 +11,7 @@
 #pragma once
 
 // Geant4
-#include "Geant4/G4VUserParallelWorld.hh"
+#include "G4VUserParallelWorld.hh"
 
 class G4VPhysicalVolume;
 
diff --git a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h b/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h
index 89b04ac6..1eb6a105 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h
+++ b/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h
@@ -11,10 +11,10 @@
 #pragma once
 
 // Geant4
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4Material.hh"
-#include "Geant4/G4VPhysicalVolume.hh"
-#include "Geant4/G4VUserParallelWorld.hh"
+#include "G4LogicalVolume.hh"
+#include "G4Material.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VUserParallelWorld.hh"
 // local
 #include "GaudiAlg/FunctionalDetails.h"
 #include "GiGaMTCoreDet/IExternalDetectorEmbedder.h"
diff --git a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp b/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp
index a4e7945b..b19c3fef 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp
+++ b/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4GDMLParser.hh"
+#include "G4GDMLParser.hh"
 #include <filesystem>
 
 template <class ParallelWorld>
diff --git a/Sim/ParallelGeometry/src/Lib/Physics.cpp b/Sim/ParallelGeometry/src/Lib/Physics.cpp
index 8d7e5ef7..3c1ee037 100644
--- a/Sim/ParallelGeometry/src/Lib/Physics.cpp
+++ b/Sim/ParallelGeometry/src/Lib/Physics.cpp
@@ -13,12 +13,12 @@
 #include "ParallelGeometry/Physics.h"
 
 // Geant4
-#include "Geant4/G4ParallelWorldPhysics.hh"
-#include "Geant4/G4ParallelWorldProcess.hh"
-#include "Geant4/G4ParticleDefinition.hh"
-#include "Geant4/G4ParticleTable.hh"
-#include "Geant4/G4ProcessManager.hh"
-#include "Geant4/G4TransportationManager.hh"
+#include "G4ParallelWorldPhysics.hh"
+#include "G4ParallelWorldProcess.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
+#include "G4ProcessManager.hh"
+#include "G4TransportationManager.hh"
 
 ParallelGeometry::Physics::Physics( std::string parallelWorld, bool layeredMass )
     : G4ParallelWorldPhysics( parallelWorld, layeredMass ), m_layeredMass( layeredMass ) {}
-- 
GitLab


From 1da472e80f50001e66b3d8b45c2951051e32e941 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 28 Apr 2022 11:47:06 +0200
Subject: [PATCH 12/56] Remove non-ASCII characters in concurrentqueue.h

---
 Utils/Utils/concurrentqueue.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Utils/Utils/concurrentqueue.h b/Utils/Utils/concurrentqueue.h
index 68f66df1..91eb9a69 100644
--- a/Utils/Utils/concurrentqueue.h
+++ b/Utils/Utils/concurrentqueue.h
@@ -1,4 +1,4 @@
-// Provides a C++11 implementation of a multi-producer, multi-consumer lock-free queue.
+// Provides a C++11 implementation of a multi-producer, multi-consumer lock-free queue.
 // An overview, including benchmark results, is provided here:
 //     http://moodycamel.com/blog/2014/a-fast-general-purpose-lock-free-queue-for-c++
 // The full design is also described in excruciating detail at:
-- 
GitLab


From c90d30d9d11a5f74871cc03998dca87644988844 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 5 May 2022 16:47:12 +0200
Subject: [PATCH 13/56] set workspace instead of prepending CMAKE_PREFIX_PATH
 by hand

---
 docs/getting_started/installing.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/getting_started/installing.md b/docs/getting_started/installing.md
index 9248bf52..305d1968 100644
--- a/docs/getting_started/installing.md
+++ b/docs/getting_started/installing.md
@@ -39,7 +39,7 @@ lb-set-platform x86_64_v2-centos7-gcc11-opt
 
     ```
     lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support lhcb-gaussino Today
-    export CMAKE_PREFIX_PATH=${PWD}/lhcb-gaussino/Today:${CMAKE_PREFIX_PATH}
+    lb-set-workspace ./lhcb-gaussino/Today
     ```
 
     ```{eval-rst}
-- 
GitLab


From e92bbdfcba98a9e4cb718d8bdd82237d62f4476a Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Mon, 9 May 2022 14:35:43 +0200
Subject: [PATCH 14/56] Update the particle table used by Gaussino to the
 latest version in DDDB

---
 Sim/Gaussino/data/ParticleTable.txt | 746 ++++++++++++++--------------
 1 file changed, 379 insertions(+), 367 deletions(-)

diff --git a/Sim/Gaussino/data/ParticleTable.txt b/Sim/Gaussino/data/ParticleTable.txt
index eaffd583..9139665d 100644
--- a/Sim/Gaussino/data/ParticleTable.txt
+++ b/Sim/Gaussino/data/ParticleTable.txt
@@ -8,8 +8,8 @@ PARTICLE
 #                    GEANTID    PDGID  CHARGE   MASS(GeV)      TLIFE(s)                    EVTGENNAME    PYTHIAID    MAXWIDTH
 #
  gamma                   1          22   0.0      0.00000000      1.000000e+16                     gamma          22      0.00000000
- W+                     53          24   1.0     80.38500000      3.156893e-25                        W+          24      0.00000000
- W-                     54         -24  -1.0     80.38500000      3.156893e-25                        W-         -24      0.00000000
+ W+                     53          24   1.0     80.37900000      3.156893e-25                        W+          24      0.00000000
+ W-                     54         -24  -1.0     80.37900000      3.156893e-25                        W-         -24      0.00000000
  Z0                     55          23   0.0     91.18760000      2.637914e-25                        Z0          23      0.00000000
  e+                      2         -11   1.0      0.00051100      1.000000e+16                        e+         -11      0.00000000
  e-                      3          11  -1.0      0.00051100      1.000000e+16                        e-          11      0.00000000
@@ -19,23 +19,23 @@ PARTICLE
  mu-                     6          13  -1.0      0.10565837      2.196981e-06                       mu-          13      0.00000000
  nu_mu                 300          14   0.0      0.00000000      1.000000e+16                     nu_mu          14      0.00000000
  nu_mu~                301         -14   0.0      0.00000000      1.000000e+16                anti-nu_mu         -14      0.00000000
- tau+                   51         -15   1.0      1.77682000      2.903000e-13                      tau+         -15      0.00000000
- tau-                   52          15  -1.0      1.77682000      2.903000e-13                      tau-          15      0.00000000
- pi0                     7         111   0.0      0.13497660      8.520000e-17                       pi0         111      0.00000000
- pi+                     8         211   1.0      0.13957018      2.603300e-08                       pi+         211      0.00000000
- pi-                     9        -211  -1.0      0.13957018      2.603300e-08                       pi-        -211      0.00000000
+ tau+                   51         -15   1.0      1.77686000      2.903449e-13                      tau+         -15      0.00000000
+ tau-                   52          15  -1.0      1.77686000      2.903449e-13                      tau-          15      0.00000000
+ pi0                     7         111   0.0      0.13497700      8.520000e-17                       pi0         111      0.00000000
+ pi+                     8         211   1.0      0.13957061      2.603300e-08                       pi+         211      0.00000000
+ pi-                     9        -211  -1.0      0.13957061      2.603300e-08                       pi-        -211      0.00000000
  eta                    17         221   0.0      0.54786200      5.063171e-19                       eta         221      0.00000000
  rho(770)0              33         113   0.0      0.77526000      4.414569e-24                      rho0         113      0.00000000
  rho(770)+              34         213   1.0      0.77526000      4.414569e-24                      rho+         213      0.00000000
  rho(770)-              35        -213  -1.0      0.77526000      4.414569e-24                      rho-        -213      0.00000000
  omega(782)             36         223   0.0      0.78265000      7.752794e-23                     omega         223      0.00000000
- eta_prime             127         331   0.0      0.95778000      3.324303e-21                      eta'         331      0.00000000
+ eta_prime             127         331   0.0      0.95778000      3.358224e-21                      eta'         331      0.00000000
  sigma_0               850     9000221   0.0      0.47500000      1.196749e-24                   sigma_0           0      0.00000000
- f_0(980)              596     9010221   0.0      0.99000000      9.403031e-24                       f_0       10221      0.00000000
+ f_0(980)              596     9010221   0.0      0.99000000      1.097020e-23                       f_0       10221      0.00000000
  a_0(980)0             132     9000111   0.0      0.98000000      8.776163e-24                      a_00       10111      0.00000000
  a_0(980)+             133     9000211   1.0      0.98000000      8.776163e-24                      a_0+       10211      0.00000000
  a_0(980)-             134    -9000211  -1.0      0.98000000      8.776163e-24                      a_0-      -10211      0.00000000
- phi(1020)              37         333   0.0      1.01946100      1.545099e-22                       phi         333      0.00000000
+ phi(1020)              37         333   0.0      1.01946100      1.549099e-22                       phi         333      0.00000000
  h_1(1170)             597       10223   0.0      1.17000000      1.828367e-24                       h_1       10223      0.00000000
  b_1(1235)0            588       10113   0.0      1.22950000      4.635297e-24                      b_10       10113      0.00000000
  b_1(1235)+            592       10213   1.0      1.22950000      4.635297e-24                      b_1+       10213      0.00000000
@@ -43,72 +43,72 @@ PARTICLE
  a_1(1260)0            135       20113   0.0      1.23000000      1.567172e-24                      a_10       20113      0.00000000
  a_1(1260)+             42       20213   1.0      1.23000000      1.567172e-24                      a_1+       20213      0.00000000
  a_1(1260)-             43      -20213  -1.0      1.23000000      1.567172e-24                      a_1-      -20213      0.00000000
- f_2(1270)             367         225   0.0      1.27510000      3.555982e-24                       f_2         225      0.00000000
- f_1(1285)             687       20223   0.0      1.28190000      2.719885e-23                       f_1       20223      0.00000000
+ f_2(1270)             367         225   0.0      1.27550000      3.555982e-24                       f_2         225      0.00000000
+ f_1(1285)             687       20223   0.0      1.28190000      2.899612e-23                       f_1       20223      0.00000000
  eta(1295)             811      100221   0.0      1.29400000      1.196749e-23                   eta(2S)           0      0.00000000
  pi(1300)0             805      100111   0.0      1.30000000      1.645530e-24                   pi(2S)0           0      0.00000000
  pi(1300)+             807      100211   1.0      1.30000000      1.645530e-24                   pi(2S)+           0      0.00000000
  pi(1300)-             808     -100211  -1.0      1.30000000      1.645530e-24                   pi(2S)-           0      0.00000000
- a_2(1320)0            136         115   0.0      1.31830000      6.151516e-24                      a_20         115      0.00000000
- a_2(1320)+            137         215   1.0      1.31830000      6.151516e-24                      a_2+         215      0.00000000
- a_2(1320)-            138        -215  -1.0      1.31830000      6.151516e-24                      a_2-        -215      0.00000000
+ a_2(1320)0            136         115   0.0      1.31690000      6.151516e-24                      a_20         115      0.00000000
+ a_2(1320)+            137         215   1.0      1.31690000      6.151516e-24                      a_2+         215      0.00000000
+ a_2(1320)-            138        -215  -1.0      1.31690000      6.151516e-24                      a_2-        -215      0.00000000
  f_0(1370)             686       10221   0.0      1.35000000      1.880606e-24                      f'_0       10331      0.00000000
- h_1(1380)             604       10333   0.0      1.40000000      0.000000e+00                      h'_1       10333      0.00000000
+ h_1(1380)             604       10333   0.0      1.41600000      7.313467e-24                      h'_1       10333      0.00000000
  pi_1(1400)0          1021     9000113   0.0      1.35400000      1.994582e-24               pi_1(1400)0           0      0.00000000
  pi_1(1400)+          1023     9000213   1.0      1.35400000      1.994582e-24               pi_1(1400)+           0      0.00000000
  pi_1(1400)-          1024    -9000213  -1.0      1.35400000      1.994582e-24               pi_1(1400)-           0      0.00000000
- eta(1405)0           1025     9020221   0.0      1.40880000      1.290612e-23                eta(1405)0           0      0.00000000
+ eta(1405)0           1025     9020221   0.0      1.40880000      1.313796e-23                eta(1405)0           0      0.00000000
  omega(1420)           812      100223   0.0      1.42500000      3.061452e-24                 omega(2S)           0      0.00000000
  f_1(1420)             692       20333   0.0      1.42640000      1.198929e-23                      f'_1       20333      0.00000000
  rho(1450)0            806      100113   0.0      1.46500000      1.645530e-24                  rho(2S)0           0      0.00000000
  rho(1450)+            809      100213   1.0      1.46500000      1.645530e-24                  rho(2S)+           0      0.00000000
  rho(1450)-            810     -100213  -1.0      1.46500000      1.645530e-24                  rho(2S)-           0      0.00000000
- a_0(1450)0            587       10111   0.0      1.47400000      2.483820e-24                   unknown           0      0.00000000
- a_0(1450)+            590       10211   1.0      1.47400000      2.483820e-24                   unknown           0      0.00000000
- a_0(1450)-            591      -10211  -1.0      1.47400000      2.483820e-24                   unknown           0      0.00000000
- eta(1475)             826      100331   0.0      1.47600000      7.743673e-24                   unknown           0      0.00000000
- f_0(1500)             855     9030221   0.0      1.50500000      6.038644e-24                 f_0(1500)           0      0.00000000
+ a_0(1450)0            587       10111   0.0      1.46700000      2.483820e-24                a_0(1450)0           0      0.00000000
+ a_0(1450)+            590       10211   1.0      1.46700000      2.483820e-24                a_0(1450)+           0      0.00000000
+ a_0(1450)-            591      -10211  -1.0      1.46700000      2.483820e-24                a_0(1450)-           0      0.00000000
+ eta(1475)             826      100331   0.0      1.47500000      7.743673e-24                 eta(1475)           0      0.00000000
+ f_0(1500)             855     9030221   0.0      1.50600000      6.038644e-24                 f_0(1500)           0      0.00000000
  f'_2(1525)            380         335   0.0      1.52500000      9.016605e-24                      f'_2         335      0.00000000
- pi_1(1600)0          1027     9010113   0.0      1.66200000      2.742551e-24               pi_1(1600)0           0      0.00000000
- pi_1(1600)+          1029     9010213   1.0      1.66200000      2.742551e-24               pi_1(1600)+           0      0.00000000
- pi_1(1600)-          1030    -9010213  -1.0      1.66200000      2.742551e-24               pi_1(1600)-           0      0.00000000
- eta_2(1645)           598       10225   0.0      1.61700000      3.636531e-24                   unknown           0      0.00000000
+ pi_1(1600)0          1027     9010113   0.0      1.66000000      2.742551e-24               pi_1(1600)0           0      0.00000000
+ pi_1(1600)+          1029     9010213   1.0      1.66000000      2.742551e-24               pi_1(1600)+           0      0.00000000
+ pi_1(1600)-          1030    -9010213  -1.0      1.66000000      2.742551e-24               pi_1(1600)-           0      0.00000000
+ eta_2(1645)           598       10225   0.0      1.61700000      3.636531e-24               eta_2(1645)           0      0.00000000
  omega(1650)           746       30223   0.0      1.67000000      2.089563e-24               omega(1650)           0      0.00000000
- pi_2(1670)0           589       10115   0.0      1.67220000      2.531585e-24                   unknown           0      0.00000000
- pi_2(1670)+           594       10215   1.0      1.67220000      2.531585e-24                   unknown           0      0.00000000
- pi_2(1670)-           595      -10215  -1.0      1.67220000      2.531585e-24                   unknown           0      0.00000000
- omega_3(1670)         368         227   0.0      1.66700000      3.917930e-24                   unknown           0      0.00000000
+ pi_2(1670)0           589       10115   0.0      1.67060000      2.551209e-24               pi_2(1670)0           0      0.00000000
+ pi_2(1670)+           594       10215   1.0      1.67060000      2.551209e-24               pi_2(1670)+           0      0.00000000
+ pi_2(1670)-           595      -10215  -1.0      1.67060000      2.551209e-24               pi_2(1670)-           0      0.00000000
+ omega_3(1670)         368         227   0.0      1.66700000      3.917930e-24             omega_3(1670)           0      0.00000000
  phi(1680)             827      100333   0.0      1.68000000      4.388081e-24                 phi(1680)           0      0.00000000
- rho_3(1690)0          361         117   0.0      1.68880000      4.088274e-24                   unknown           0      0.00000000
- rho_3(1690)+          363         217   1.0      1.68880000      4.088274e-24                   unknown           0      0.00000000
- rho_3(1690)-          364        -217  -1.0      1.68880000      4.088274e-24                   unknown           0      0.00000000
+ rho_3(1690)0          361         117   0.0      1.68880000      4.088274e-24              rho_3(1690)0           0      0.00000000
+ rho_3(1690)+          363         217   1.0      1.68880000      4.088274e-24              rho_3(1690)+           0      0.00000000
+ rho_3(1690)-          364        -217  -1.0      1.68880000      4.088274e-24              rho_3(1690)-           0      0.00000000
  rho(1700)0            743       30113   0.0      1.72000000      2.632849e-24                  rho(3S)0           0      0.00000000
  rho(1700)+            744       30213   1.0      1.72000000      2.632849e-24                  rho(3S)+           0      0.00000000
  rho(1700)-            745      -30213  -1.0      1.72000000      2.632849e-24                  rho(3S)-           0      0.00000000
- f_0(1710)             603       10331   0.0      1.72200000      4.875646e-24                   unknown           0      0.00000000
- pi(1800)0             840     9010111   0.0      1.81200000      3.164482e-24                   unknown           0      0.00000000
- pi(1800)+             841     9010211   1.0      1.81200000      3.164482e-24                   unknown           0      0.00000000
- pi(1800)-             842    -9010211  -1.0      1.81200000      3.164482e-24                   unknown           0      0.00000000
- phi_3(1850)           381         337   0.0      1.85400000      7.565657e-24                   unknown           0      0.00000000
- eta_2(1870)           605       10335   0.0      1.85400000      0.000000e+00                   unknown           0      0.00000000
- f_2(1950)             813     9050225   0.0      1.94400000      1.394517e-24                   unknown           0      0.00000000
- f_2(2010)             828     9060225   0.0      2.01100000      3.291061e-24                   unknown           0      0.00000000
- a_4(2040)0            362         119   0.0      1.99600000      2.581224e-24                   unknown           0      0.00000000
- a_4(2040)+            365         219   1.0      1.99600000      2.581224e-24                   unknown           0      0.00000000
- a_4(2040)-            366        -219  -1.0      1.99600000      2.581224e-24                   unknown           0      0.00000000
- f_4(2050)             369         229   0.0      2.01800000      2.777267e-24                   unknown           0      0.00000000
- f_2(2300)             857     9080225   0.0      2.29700000      4.417530e-24                   unknown           0      0.00000000
- f_2(2340)             858     9090225   0.0      2.33900000      2.063361e-24                   unknown           0      0.00000000
- K0                    370         311   0.0      0.49761400      0.000000e+00                        K0         311      0.00000000
- K~0                   371        -311   0.0      0.49761400      0.000000e+00                   anti-K0        -311      0.00000000
- KS0                    16         310   0.0      0.49761400      8.956400e-11                      K_S0         310      0.00000000
- KL0                    10         130   0.0      0.49761400      5.116000e-08                      K_L0         130      0.00000000
+ f_0(1710)             603       10331   0.0      1.70400000      5.351317e-24                 f_0(1710)           0      0.00000000
+ pi(1800)0             840     9010111   0.0      1.81000000      3.164482e-24                 pi(1800)0           0      0.00000000
+ pi(1800)+             841     9010211   1.0      1.81000000      3.164482e-24                 pi(1800)+           0      0.00000000
+ pi(1800)-             842    -9010211  -1.0      1.81000000      3.164482e-24                 pi(1800)-           0      0.00000000
+ phi_3(1850)           381         337   0.0      1.85400000      7.565657e-24               phi_3(1850)           0      0.00000000
+ eta_2(1870)           605       10335   0.0      1.85400000      0.000000e+00               eta_2(1870)           0      0.00000000
+ f_2(1950)             813     9050225   0.0      1.93600000      1.418560e-24                 f_2(1950)           0      0.00000000
+ f_2(2010)             828     9060225   0.0      2.01000000      3.291061e-24                 f_2(2010)           0      0.00000000
+ a_4(2040)0            362         119   0.0      1.96700000      2.581224e-24                a_4(2040)0           0      0.00000000
+ a_4(2040)+            365         219   1.0      1.96700000      2.581224e-24                a_4(2040)+           0      0.00000000
+ a_4(2040)-            366        -219  -1.0      1.96700000      2.581224e-24                a_4(2040)-           0      0.00000000
+ f_4(2050)             369         229   0.0      2.01800000      2.777267e-24                 f_4(2050)           0      0.00000000
+ f_2(2300)             857     9080225   0.0      2.29700000      4.417530e-24                 f_2(2300)           0      0.00000000
+ f_2(2340)             858     9090225   0.0      2.35000000      2.063361e-24                 f_2(2340)           0      0.00000000
+ K0                    370         311   0.0      0.49761100      0.000000e+00                        K0         311      0.00000000
+ K~0                   371        -311   0.0      0.49761100      0.000000e+00                   anti-K0        -311      0.00000000
+ KS0                    16         310   0.0      0.49761100      8.956400e-11                      K_S0         310      0.00000000
+ KL0                    10         130   0.0      0.49761100      5.116000e-08                      K_L0         130      0.00000000
  K+                     11         321   1.0      0.49367700      1.238000e-08                        K+         321      0.00000000
  K-                     12        -321  -1.0      0.49367700      1.238000e-08                        K-        -321      0.00000000
- K*(892)0               40         313   0.0      0.89581000      1.388633e-23                       K*0         313      0.00000000
- K*(892)~0              41        -313   0.0      0.89581000      1.388633e-23                  anti-K*0        -313      0.00000000
- K*(892)+               38         323   1.0      0.89166000      1.295693e-23                       K*+         323      0.00000000
- K*(892)-               39        -323  -1.0      0.89166000      1.295693e-23                       K*-        -323      0.00000000
+ K*(892)0               40         313   0.0      0.89555000      1.391569e-23                       K*0         313      0.00000000
+ K*(892)~0              41        -313   0.0      0.89555000      1.391569e-23                  anti-K*0        -313      0.00000000
+ K*(892)+               38         323   1.0      0.89166000      1.308573e-23                       K*+         323      0.00000000
+ K*(892)-               39        -323  -1.0      0.89166000      1.308573e-23                       K*-        -323      0.00000000
  K_1(1270)0            141       10313   0.0      1.27200000      7.313469e-24                      K_10       10313      0.00000000
  K_1(1270)~0           142      -10313   0.0      1.27200000      7.313469e-24                 anti-K_10      -10313      0.00000000
  K_1(1270)+            139       10323   1.0      1.27200000      7.313469e-24                      K_1+       10323      0.00000000
@@ -117,70 +117,70 @@ PARTICLE
  K_1(1400)~0           146      -20313   0.0      1.40300000      3.782829e-24                anti-K'_10      -20313      0.00000000
  K_1(1400)+            143       20323   1.0      1.40300000      3.782829e-24                     K'_1+       20323      0.00000000
  K_1(1400)-            144      -20323  -1.0      1.40300000      3.782829e-24                     K'_1-      -20323      0.00000000
- K*(1410)0             816      100313   0.0      1.41400000      2.837122e-24                      K'*0           0      0.00000000
- K*(1410)~0            817     -100313   0.0      1.41400000      2.837122e-24                 anti-K'*0           0      0.00000000
- K*(1410)+             822      100323   1.0      1.41400000      2.837122e-24                      K'*+           0      0.00000000
- K*(1410)-             823     -100323  -1.0      1.41400000      2.837122e-24                      K'*-           0      0.00000000
- K*_0(1430)0           149       10311   0.0      1.42500000      2.437823e-24                     K_0*0       10311      0.00000000
- K*_0(1430)~0          150      -10311   0.0      1.42500000      2.437823e-24                anti-K_0*0      -10311      0.00000000
- K*_0(1430)+           147       10321   1.0      1.42500000      2.437823e-24                     K_0*+       10321      0.00000000
- K*_0(1430)-           148      -10321  -1.0      1.42500000      2.437823e-24                     K_0*-      -10321      0.00000000
+ K*(1410)0             816      100313   0.0      1.42100000      2.837122e-24                      K'*0           0      0.00000000
+ K*(1410)~0            817     -100313   0.0      1.42100000      2.837122e-24                 anti-K'*0           0      0.00000000
+ K*(1410)+             822      100323   1.0      1.42100000      2.837122e-24                      K'*+           0      0.00000000
+ K*(1410)-             823     -100323  -1.0      1.42100000      2.837122e-24                      K'*-           0      0.00000000
+ K*_0(1430)0           149       10311   0.0      1.43000000      2.437823e-24                     K_0*0       10311      0.00000000
+ K*_0(1430)~0          150      -10311   0.0      1.43000000      2.437823e-24                anti-K_0*0      -10311      0.00000000
+ K*_0(1430)+           147       10321   1.0      1.43000000      2.437823e-24                     K_0*+       10321      0.00000000
+ K*_0(1430)-           148      -10321  -1.0      1.43000000      2.437823e-24                     K_0*-      -10321      0.00000000
  K*_2(1430)0           153         315   0.0      1.43240000      6.038644e-24                     K_2*0         315      0.00000000
  K*_2(1430)~0          154        -315   0.0      1.43240000      6.038644e-24                anti-K_2*0        -315      0.00000000
  K*_2(1430)+           151         325   1.0      1.42560000      6.682357e-24                     K_2*+         325      0.00000000
  K*_2(1430)-           152        -325  -1.0      1.42560000      6.682357e-24                     K_2*-        -325      0.00000000
- K(1460)0              814      100311   0.0      1.43240000      0.000000e+00                   unknown           0      0.00000000
- K(1460)~0             815     -100311   0.0      1.43240000      0.000000e+00                   unknown           0      0.00000000
- K(1460)+              820      100321   1.0      1.43240000      0.000000e+00                   unknown           0      0.00000000
- K(1460)-              821     -100321  -1.0      1.43240000      0.000000e+00                   unknown           0      0.00000000
- K*(1680)0             747       30313   0.0      1.71700000      2.056913e-24                     K''*0           0      0.00000000
- K*(1680)~0            748      -30313   0.0      1.71700000      2.056913e-24                anti-K''*0           0      0.00000000
- K*(1680)+             749       30323   1.0      1.71700000      2.056913e-24                     K''*+           0      0.00000000
- K*(1680)-             750      -30323  -1.0      1.71700000      2.056913e-24                     K''*-           0      0.00000000
- K_2(1770)0            599       10315   0.0      1.77300000      3.538775e-24                   unknown           0      0.00000000
- K_2(1770)~0           600      -10315   0.0      1.77300000      3.538775e-24                   unknown           0      0.00000000
- K_2(1770)+            601       10325   1.0      1.77300000      3.538775e-24                   unknown           0      0.00000000
- K_2(1770)-            602      -10325  -1.0      1.77300000      3.538775e-24                   unknown           0      0.00000000
+ K(1460)0              814      100311   0.0      1.43240000      0.000000e+00                  K(1460)0           0      0.00000000
+ K(1460)~0             815     -100311   0.0      1.43240000      0.000000e+00             anti-K(1460)0           0      0.00000000
+ K(1460)+              820      100321   1.0      1.43240000      0.000000e+00                  K(1460)+           0      0.00000000
+ K(1460)-              821     -100321  -1.0      1.43240000      0.000000e+00                  K(1460)-           0      0.00000000
+ K*(1680)0             747       30313   0.0      1.71800000      2.056913e-24                     K''*0           0      0.00000000
+ K*(1680)~0            748      -30313   0.0      1.71800000      2.056913e-24                anti-K''*0           0      0.00000000
+ K*(1680)+             749       30323   1.0      1.71800000      2.056913e-24                     K''*+           0      0.00000000
+ K*(1680)-             750      -30323  -1.0      1.71800000      2.056913e-24                     K''*-           0      0.00000000
+ K_2(1770)0            599       10315   0.0      1.77300000      3.538775e-24                K_2(1770)0           0      0.00000000
+ K_2(1770)~0           600      -10315   0.0      1.77300000      3.538775e-24           anti-K_2(1770)0           0      0.00000000
+ K_2(1770)+            601       10325   1.0      1.77300000      3.538775e-24                K_2(1770)+           0      0.00000000
+ K_2(1770)-            602      -10325  -1.0      1.77300000      3.538775e-24                K_2(1770)-           0      0.00000000
  K*_3(1780)0           372         317   0.0      1.77600000      4.139699e-24                     K_3*0           0      0.00000000
  K*_3(1780)~0          373        -317   0.0      1.77600000      4.139699e-24                anti-K_3*0           0      0.00000000
  K*_3(1780)+           376         327   1.0      1.77600000      4.139699e-24                     K_3*+           0      0.00000000
  K*_3(1780)-           377        -327  -1.0      1.77600000      4.139699e-24                     K_3*-           0      0.00000000
- K_2(1820)0            688       20315   0.0      1.81600000      2.384827e-24                   unknown           0      0.00000000
- K_2(1820)~0           689      -20315   0.0      1.81600000      2.384827e-24                   unknown           0      0.00000000
- K_2(1820)+            690       20325   1.0      1.81600000      2.384827e-24                   unknown           0      0.00000000
- K_2(1820)-            691      -20325  -1.0      1.81600000      2.384827e-24                   unknown           0      0.00000000
- K*_2(1980)0           818      100315   0.0      1.97300000      0.000000e+00                   unknown           0      0.00000000
- K*_2(1980)~0          819     -100315   0.0      1.97300000      0.000000e+00                   unknown           0      0.00000000
- K*_2(1980)+           824      100325   1.0      1.97300000      0.000000e+00                   unknown           0      0.00000000
- K*_2(1980)-           825     -100325  -1.0      1.97300000      0.000000e+00                   unknown           0      0.00000000
+ K_2(1820)0            688       20315   0.0      1.81900000      2.493227e-24                K_2(1820)0           0      0.00000000
+ K_2(1820)~0           689      -20315   0.0      1.81900000      2.493227e-24           anti-K_2(1820)0           0      0.00000000
+ K_2(1820)+            690       20325   1.0      1.81900000      2.493227e-24                K_2(1820)+           0      0.00000000
+ K_2(1820)-            691      -20325  -1.0      1.81900000      2.493227e-24                K_2(1820)-           0      0.00000000
+ K*_2(1980)0           818      100315   0.0      1.97300000      0.000000e+00               K*_2(1980)0           0      0.00000000
+ K*_2(1980)~0          819     -100315   0.0      1.97300000      0.000000e+00          anti-K*_2(1980)0           0      0.00000000
+ K*_2(1980)+           824      100325   1.0      1.97300000      0.000000e+00               K*_2(1980)+           0      0.00000000
+ K*_2(1980)-           825     -100325  -1.0      1.97300000      0.000000e+00               K*_2(1980)-           0      0.00000000
  K*_4(2045)0           374         319   0.0      2.04500000      3.324304e-24                     K_4*0           0      0.00000000
  K*_4(2045)~0          375        -319   0.0      2.04500000      3.324304e-24                anti-K_4*0           0      0.00000000
  K*_4(2045)+           378         329   1.0      2.04500000      3.324304e-24                     K_4*+           0      0.00000000
  K*_4(2045)-           379        -329  -1.0      2.04500000      3.324304e-24                     K_4*-           0      0.00000000
- D0                     58         421   0.0      1.86484000      4.101000e-13                        D0         421      0.00000000
- D~0                    59        -421   0.0      1.86484000      4.101000e-13                   anti-D0        -421      0.00000000
- D+                     56         411   1.0      1.86961000      1.040000e-12                        D+         411      0.00000000
- D-                     57        -411  -1.0      1.86961000      1.040000e-12                        D-        -411      0.00000000
- D*(2007)0              67         423   0.0      2.00696000      1.000003e-19                       D*0         423      0.00000000
- D*(2007)~0             68        -423   0.0      2.00696000      1.000003e-19                  anti-D*0        -423      0.00000000
+ D0                     58         421   0.0      1.86483000      4.101000e-13                        D0         421      0.00000000
+ D~0                    59        -421   0.0      1.86483000      4.101000e-13                   anti-D0        -421      0.00000000
+ D+                     56         411   1.0      1.86965000      1.040000e-12                        D+         411      0.00000000
+ D-                     57        -411  -1.0      1.86965000      1.040000e-12                        D-        -411      0.00000000
+ D*(2007)0              67         423   0.0      2.00685000      1.000003e-19                       D*0         423      0.00000000
+ D*(2007)~0             68        -423   0.0      2.00685000      1.000003e-19                  anti-D*0        -423      0.00000000
  D*(2010)+              65         413   1.0      2.01026000      7.892230e-21                       D*+         413      0.00000000
  D*(2010)-              66        -413  -1.0      2.01026000      7.892230e-21                       D*-        -413      0.00000000
- D*_0+                 155       10411   1.0      2.31800000      2.465213e-24                     D_0*+       10411      0.00000000
- D*_0-                 159      -10411  -1.0      2.31800000      2.465213e-24                     D_0*-      -10411      0.00000000
- D*_00                 163       10421   0.0      2.31800000      2.465213e-24                     D_0*0       10421      0.00000000
- D*_0~0                167      -10421   0.0      2.31800000      2.465213e-24                anti-D_0*0      -10421      0.00000000
+ D*_0+                 155       10411   1.0      2.34900000      2.978335e-24                     D_0*+       10411      0.00000000
+ D*_0-                 159      -10411  -1.0      2.34900000      2.978335e-24                     D_0*-      -10411      0.00000000
+ D*_00                 163       10421   0.0      2.30000000      2.402234e-24                     D_0*0       10421      0.00000000
+ D*_0~0                167      -10421   0.0      2.30000000      2.402234e-24                anti-D_0*0      -10421      0.00000000
  D_1(H)0               164       20423   0.0      2.44500000      2.630000e-24                     D'_10       20423      0.00000000
  D_1(H)~0              168      -20423   0.0      2.44500000      2.630000e-24                anti-D'_10      -20423      0.00000000
  D_1(H)+               156       20413   1.0      2.44500000      2.630000e-24                     D'_1+       20413      0.00000000
  D_1(H)-               160      -20413  -1.0      2.44500000      2.630000e-24                     D'_1-      -20413      0.00000000
- D_1(2420)0            165       10423   0.0      2.42140000      2.428827e-23                      D_10       10423      0.00000000
- D_1(2420)~0           169      -10423   0.0      2.42140000      2.428827e-23                 anti-D_10      -10423      0.00000000
+ D_1(2420)0            165       10423   0.0      2.42080000      2.428827e-23                      D_10       10423      0.00000000
+ D_1(2420)~0           169      -10423   0.0      2.42080000      2.428827e-23                 anti-D_10      -10423      0.00000000
  D_1(2420)+            157       10413   1.0      2.42300000      3.290000e-23                      D_1+       10413      0.00000000
  D_1(2420)-            161      -10413  -1.0      2.42300000      3.290000e-23                      D_1-      -10413      0.00000000
- D*_2(2460)0           170         425   0.0      2.46260000      1.343290e-23                     D_2*0         425      0.00000000
- D*_2(2460)~0          166        -425   0.0      2.46260000      1.343290e-23                anti-D_2*0        -425      0.00000000
- D*_2(2460)+           162         415   1.0      2.46430000      1.778952e-23                     D_2*+         415      0.00000000
- D*_2(2460)-           158        -415  -1.0      2.46430000      1.778952e-23                     D_2*-        -415      0.00000000
+ D*_2(2460)0           170         425   0.0      2.46070000      1.385709e-23                     D_2*0         425      0.00000000
+ D*_2(2460)~0          166        -425   0.0      2.46070000      1.385709e-23                anti-D_2*0        -425      0.00000000
+ D*_2(2460)+           162         415   1.0      2.46540000      1.778952e-23                     D_2*+         415      0.00000000
+ D*_2(2460)-           158        -415  -1.0      2.46540000      1.778952e-23                     D_2*-        -415      0.00000000
  D(2S)0                761      100421   0.0      2.58000000      0.000000e+00                    D(2S)0           0      0.00000000
  D(2S)~0               762     -100421   0.0      2.58000000      0.000000e+00               anti-D(2S)0           0      0.00000000
  D(2S)+                757      100411   1.0      2.58000000      0.000000e+00                    D(2S)+           0      0.00000000
@@ -189,28 +189,28 @@ PARTICLE
  D*(2640)~0            764     -100423   0.0      2.64000000      0.000000e+00              anti-D*(2S)0           0      0.00000000
  D*(2640)+             759      100413   1.0      2.64000000      0.000000e+00                   D*(2S)+           0      0.00000000
  D*(2640)-             760     -100413  -1.0      2.64000000      0.000000e+00                   D*(2S)-           0      0.00000000
- D_s+                   60         431   1.0      1.96830000      5.000000e-13                      D_s+         431      0.00000000
- D_s-                   61        -431  -1.0      1.96830000      5.000000e-13                      D_s-        -431      0.00000000
- D*_s+                  69         433   1.0      2.11210000      1.000003e-19                     D_s*+         433      0.00000000
- D*_s-                  70        -433  -1.0      2.11210000      1.000003e-19                     D_s*-        -433      0.00000000
- D*_s0+                171       10431   1.0      2.31770000      6.582100e-22                    D_s0*+       10431      0.00000000
- D*_s0-                175      -10431  -1.0      2.31770000      6.582100e-22                    D_s0*-      -10431      0.00000000
+ D_s+                   60         431   1.0      1.96834000      5.043770e-13                      D_s+         431      0.00000000
+ D_s-                   61        -431  -1.0      1.96834000      5.043770e-13                      D_s-        -431      0.00000000
+ D*_s+                  69         433   1.0      2.11220000      1.000003e-19                     D_s*+         433      0.00000000
+ D*_s-                  70        -433  -1.0      2.11220000      1.000003e-19                     D_s*-        -433      0.00000000
+ D*_s0+                171       10431   1.0      2.31780000      6.582100e-22                    D_s0*+       10431      0.00000000
+ D*_s0-                175      -10431  -1.0      2.31780000      6.582100e-22                    D_s0*-      -10431      0.00000000
  D_s1(2460)+           172       20433   1.0      2.45950000      6.582100e-22                     D_s1+       20433      0.00000000
  D_s1(2460)-           176      -20433  -1.0      2.45950000      6.582100e-22                     D_s1-      -20433      0.00000000
- D_s1(2536)+           173       10433   1.0      2.53510000      7.154480e-22                    D'_s1+       10433      0.00000000
- D_s1(2536)-           177      -10433  -1.0      2.53510000      7.154480e-22                    D'_s1-      -10433      0.00000000
- D*_s2+                174         435   1.0      2.57190000      3.871836e-23                    D_s2*+         435      0.00000000
- D*_s2-                178        -435  -1.0      2.57190000      3.871836e-23                    D_s2*-        -435      0.00000000
- B0                     73         511   0.0      5.27958000      1.519000e-12                        B0         511      0.00000000
- B~0                    74        -511   0.0      5.27958000      1.519000e-12                   anti-B0        -511      0.00000000
+ D_s1(2536)+           173       10433   1.0      2.53511000      7.154480e-22                    D'_s1+       10433      0.00000000
+ D_s1(2536)-           177      -10433  -1.0      2.53511000      7.154480e-22                    D'_s1-      -10433      0.00000000
+ D*_s2+                174         435   1.0      2.56910000      3.894746e-23                    D_s2*+         435      0.00000000
+ D*_s2-                178        -435  -1.0      2.56910000      3.894746e-23                    D_s2*-        -435      0.00000000
+ B0                     73         511   0.0      5.27964000      1.520120e-12                        B0         511      0.00000000
+ B~0                    74        -511   0.0      5.27964000      1.520120e-12                   anti-B0        -511      0.00000000
  B0H                 99998         510   0.0      5.27958000      1.519000e-12                       B0H           0      0.00000000
  B0L                 99999         150   0.0      5.27958000      1.519000e-12                       B0L           0      0.00000000
- B+                     71         521   1.0      5.27926000      1.638000e-12                        B+         521      0.00000000
- B-                     72        -521  -1.0      5.27926000      1.638000e-12                        B-        -521      0.00000000
- B*0                   189         513   0.0      5.32520000      1.000019e-19                       B*0         513      0.00000000
- B*~0                  190        -513   0.0      5.32520000      1.000019e-19                  anti-B*0        -513      0.00000000
- B*-                   187        -523  -1.0      5.32520000      1.000019e-19                       B*-        -523      0.00000000
- B*+                   188         523   1.0      5.32520000      1.000019e-19                       B*+         523      0.00000000
+ B+                     71         521   1.0      5.27933000      1.638158e-12                        B+         521      0.00000000
+ B-                     72        -521  -1.0      5.27933000      1.638158e-12                        B-        -521      0.00000000
+ B*0                   189         513   0.0      5.32470000      1.000019e-19                       B*0         513      0.00000000
+ B*~0                  190        -513   0.0      5.32470000      1.000019e-19                  anti-B*0        -513      0.00000000
+ B*-                   187        -523  -1.0      5.32470000      1.000019e-19                       B*-        -523      0.00000000
+ B*+                   188         523   1.0      5.32470000      1.000019e-19                       B*+         523      0.00000000
  B*_00                 201       10511   0.0      5.73800000      4.390000e-24                     B_0*0       10511      0.00000000
  B*_0~0                205      -10511   0.0      5.73800000      4.390000e-24                anti-B_0*0      -10511      0.00000000
  B*_0+                 193       10521   1.0      5.73800000      4.390000e-24                     B_0*+       10521      0.00000000
@@ -219,16 +219,16 @@ PARTICLE
  B_1(H)~0              206      -20513   0.0      5.75700000      2.630000e-24                anti-B'_10      -20513      0.00000000
  B_1(H)+               194       20523   1.0      5.75700000      2.630000e-24                     B'_1+       20523      0.00000000
  B_1(H)-               198      -20523  -1.0      5.75700000      2.630000e-24                     B'_1-      -20523      0.00000000
- B_1(L)0               203       10513   0.0      5.72340000      3.134000e-23                      B_10       10513      0.00000000
- B_1(L)~0              207      -10513   0.0      5.72340000      3.134000e-23                 anti-B_10      -10513      0.00000000
- B_1(L)+               195       10523   1.0      5.72340000      3.134000e-23                      B_1+       10523      0.00000000
- B_1(L)-               199      -10523  -1.0      5.72340000      3.134000e-23                      B_1-      -10523      0.00000000
- B*_20                 204         515   0.0      5.74300000      2.861792e-23                     B_2*0         515      0.00000000
- B*_2~0                208        -515   0.0      5.74300000      2.861792e-23                anti-B_2*0        -515      0.00000000
- B*_2+                 196         525   1.0      5.74300000      2.861792e-23                     B_2*+         525      0.00000000
- B*_2-                 200        -525  -1.0      5.74300000      2.861792e-23                     B_2*-        -525      0.00000000
- B_s0                   75         531   0.0      5.36677000      1.512000e-12                      B_s0         531      0.00000000
- B_s~0                  76        -531   0.0      5.36677000      1.512000e-12                 anti-B_s0        -531      0.00000000
+ B_1(L)0               203       10513   0.0      5.72610000      3.134000e-23                      B_10       10513      0.00000000
+ B_1(L)~0              207      -10513   0.0      5.72610000      3.134000e-23                 anti-B_10      -10513      0.00000000
+ B_1(L)+               195       10523   1.0      5.72590000      3.134000e-23                      B_1+       10523      0.00000000
+ B_1(L)-               199      -10523  -1.0      5.72590000      3.134000e-23                      B_1-      -10523      0.00000000
+ B*_20                 204         515   0.0      5.73950000      2.861792e-23                     B_2*0         515      0.00000000
+ B*_2~0                208        -515   0.0      5.73950000      2.861792e-23                anti-B_2*0        -515      0.00000000
+ B*_2+                 196         525   1.0      5.73720000      3.291060e-23                     B_2*+         525      0.00000000
+ B*_2-                 200        -525  -1.0      5.73720000      3.291060e-23                     B_2*-        -525      0.00000000
+ B_s0                   75         531   0.0      5.36688000      1.512000e-12                      B_s0         531      0.00000000
+ B_s~0                  76        -531   0.0      5.36688000      1.512000e-12                 anti-B_s0        -531      0.00000000
  B_s0H               99996         530   0.0      5.36677000      1.661000e-12                     B_s0H           0      0.00000000
  B_s0L               99997         350   0.0      5.36677000      1.405000e-12                     B_s0L           0      0.00000000
  B*_s0                 191         533   0.0      5.41540000      1.000000e-19                     B_s*0         533      0.00000000
@@ -238,39 +238,43 @@ PARTICLE
  B_s1(H)0              210       20533   0.0      5.85900000      2.630000e-24                    B'_s10       20533      0.00000000
  B_s1(H)~0             214      -20533   0.0      5.85900000      2.630000e-24               anti-B'_s10      -20533      0.00000000
  B_s1(L)0              211       10533   0.0      5.82870000      1.316424e-21                     B_s10       10533      0.00000000
- B_s1(L)~0             215      -10533   0.0      5.82870000      1.316424e-22                anti-B_s10      -10533      0.00000000
- B*_s20                212         535   0.0      5.83996000      4.113825e-22                    B_s2*0         535      0.00000000
- B*_s2~0               216        -535   0.0      5.83996000      4.113825e-22               anti-B_s2*0        -535      0.00000000
- B_c+                   77         541   1.0      6.27370000      5.070000e-13                      B_c+         541      0.00000000
- B_c-                   78        -541  -1.0      6.27370000      5.070000e-13                      B_c-        -541      0.00000000
- B_c*+                 382         543   1.0      6.60200000      0.000000e+00                     B_c*+         543      0.00000000
- B_c*-                 383        -543  -1.0      6.60200000      0.000000e+00                     B_c*-        -543      0.00000000
- B_c0*+                607       10541   1.0      7.25000000      0.000000e+00                    B_c0*+       10541      0.00000000
- B_c0*-                608      -10541  -1.0      7.25000000      0.000000e+00                    B_c0*-      -10541      0.00000000
- B_c1(L)+              609       10543   1.0      7.30000000      0.000000e+00                     B_c1+       10543      0.00000000
- B_c1(L)-              610      -10543  -1.0      7.30000000      0.000000e+00                     B_c1-      -10543      0.00000000
- B_c1(H)+              693       20543   1.0      7.40000000      0.000000e+00                    B'_c1+       20543      0.00000000
- B_c1(H)-              694      -20543  -1.0      7.40000000      0.000000e+00                    B'_c1-      -20543      0.00000000
- B_c2*+                384         545   1.0      7.35000000      0.000000e+00                    B_c2*+         545      0.00000000
- B_c2*-                385        -545  -1.0      7.35000000      0.000000e+00                    B_c2*-        -545      0.00000000
- eta_c(1S)             128         441   0.0      2.98360000      2.216203e-23                     eta_c         441      0.00000000
- J/psi(1S)              64         443   0.0      3.09691600      7.085169e-21                     J/psi         443      0.00000000
- chi_c0(1P)            129       10441   0.0      3.41475000      6.328963e-23                    chi_c0       10441      0.00000000
- chi_c1(1P)            130       20443   0.0      3.51066000      7.835857e-22                    chi_c1       20443      0.00000000
+ B_s1(L)~0             215      -10533   0.0      5.82870000      1.316424e-21                anti-B_s10      -10533      0.00000000
+ B*_s20                212         535   0.0      5.83985000      4.477633e-22                    B_s2*0         535      0.00000000
+ B*_s2~0               216        -535   0.0      5.83985000      4.477633e-22               anti-B_s2*0        -535      0.00000000
+ B_c+                   77         541   1.0      6.27447000      5.070971e-13                      B_c+         541      0.00000000
+ B_c-                   78        -541  -1.0      6.27447000      5.070971e-13                      B_c-        -541      0.00000000
+ B_c*+                 382         543   1.0      6.33330000      0.000000e+00                     B_c*+         543      0.00000000
+ B_c*-                 383        -543  -1.0      6.33330000      0.000000e+00                     B_c*-        -543      0.00000000
+ B_c0*+                607       10541   1.0      6.70600000      0.000000e+00                    B_c0*+       10541      0.00000000
+ B_c0*-                608      -10541  -1.0      6.70600000      0.000000e+00                    B_c0*-      -10541      0.00000000
+ B_c1(L)+              609       10543   1.0      6.74100000      0.000000e+00                     B_c1+       10543      0.00000000
+ B_c1(L)-              610      -10543  -1.0      6.74100000      0.000000e+00                     B_c1-      -10543      0.00000000
+ B_c1(H)+              693       20543   1.0      6.75000000      0.000000e+00                    B'_c1+       20543      0.00000000
+ B_c1(H)-              694      -20543  -1.0      6.75000000      0.000000e+00                    B'_c1-      -20543      0.00000000
+ B_c2*+                384         545   1.0      6.76800000      0.000000e+00                    B_c2*+         545      0.00000000
+ B_c2*-                385        -545  -1.0      6.76800000      0.000000e+00                    B_c2*-        -545      0.00000000
+ B_c(2S)+           100541      100541   1.0      6.87210000      0.000000e+00                  B_c(2S)+      100541      0.00000000
+ B_c(2S)-           100542     -100541  -1.0      6.87210000      0.000000e+00                  B_c(2S)-     -100541      0.00000000
+ B_c*(2S)+          100543      100543   1.0      6.90000000      0.000000e+00                 B_c*(2S)+      100543      0.00000000
+ B_c*(2S)-          100544     -100543  -1.0      6.90000000      0.000000e+00                 B_c*(2S)-     -100543      0.00000000
+ eta_c(1S)             128         441   0.0      2.98390000      2.216203e-23                     eta_c         441      0.00000000
+ J/psi(1S)              64         443   0.0      3.09690000      7.085169e-21                     J/psi         443      0.00000000
+ chi_c0(1P)            129       10441   0.0      3.41471000      6.328963e-23                    chi_c0       10441      0.00000000
+ chi_c1(1P)            130       20443   0.0      3.51067000      7.835857e-22                    chi_c1       20443      0.00000000
  h_c(1P)               606       10443   0.0      3.52538000      9.403029e-22                       h_c       10443      0.00000000
- chi_c2(1P)            131         445   0.0      3.55620000      3.410425e-22                    chi_c2         445      0.00000000
- eta_c(2S)             829      100441   0.0      3.63940000      6.582122e-23                 eta_c(2S)      100441      0.00000000
- psi(2S)               126      100443   0.0      3.68610900      2.201378e-21                   psi(2S)      100443      0.00000000
- psi(3770)             765       30443   0.0      3.77315000      2.419898e-23                 psi(3770)       30443      0.00000000
+ chi_c2(1P)            131         445   0.0      3.55617000      3.410425e-22                    chi_c2         445      0.00000000
+ eta_c(2S)             829      100441   0.0      3.63750000      6.582122e-23                 eta_c(2S)      100441      0.00000000
+ psi(2S)               126      100443   0.0      3.68609700      2.238816e-21                   psi(2S)      100443      0.00000000
+ psi(3770)             765       30443   0.0      3.77313000      2.419898e-23                 psi(3770)       30443      0.00000000
  chi_c2(2P)           1031      100445   0.0      3.92720000      2.742551e-23                chi_c2(2P)           0      0.00000000
  psi(4040)             851     9000443   0.0      4.03900000      8.227652e-24                 psi(4040)           0      0.00000000
  psi(4160)             853     9010443   0.0      4.19100000      9.403029e-24                 psi(4160)           0      0.00000000
  psi(4415)             856     9020443   0.0      4.42100000      1.061633e-23                 psi(4415)           0      0.00000000
  X_1(3872)            1016     9920443   0.0      3.87169000      2.076340e-21                 X_1(3872)     9920443      0.00000000
  X_2(3872)            1017     9910445   0.0      3.87169000      2.076340e-21                 X_2(3872)     9910445      0.00000000
- Z(4430)+             1018     9042413   1.0      4.43300000      2.076340e-21                  Z(4430)+     9042413      0.00000000
- Z(4430)-             1019    -9042413  -1.0      4.43300000      2.076340e-21                  Z(4430)-    -9042413      0.00000000
- eta_b(1S)             386         551   0.0      9.40300000      0.000000e+00                     eta_b         551      0.00000000
+ Z(4430)+             1018     9042413   1.0      4.47800000      3.630504e-24                  Z(4430)+     9042413      0.00000000
+ Z(4430)-             1019    -9042413  -1.0      4.47800000      3.630504e-24                  Z(4430)-    -9042413      0.00000000
+ eta_b(1S)             386         551   0.0      9.39870000      6.582120e-23                     eta_b         551      0.00000000
  eta_b(2S)             830      100551   0.0      9.99700000      0.000000e+00                 eta_b(2S)           0      0.00000000
  eta_b(3S)             843      200551   0.0     10.33500000      0.000000e+00                 eta_b(3S)           0      0.00000000
  eta_b2(1D)            613       10555   0.0     10.15700000      0.000000e+00                eta_b2(1D)       10555      0.00000000
@@ -285,13 +289,13 @@ PARTICLE
  Upsilon_3(1D)         389         557   0.0     10.15990000      0.000000e+00             Upsilon_3(1D)         557      0.00000000
  Upsilon_3(2D)         833      100557   0.0     10.44430000      0.000000e+00             Upsilon_3(2D)      100557      0.00000000
  Upsilon(4S)           849      300553   0.0     10.57940000      3.210791e-23               Upsilon(4S)      300553      0.00000000
- Upsilon(10860)        852     9000553   0.0     10.87600000      1.196749e-23               Upsilon(5S)           0      0.00000000
- Upsilon(11020)        854     9010553   0.0     11.01900000      8.331800e-24                   unknown           0      0.00000000
- chi_b0(1P)            611       10551   0.0      9.85944000      0.000000e+00                    chi_b0       10551      0.00000000
+ Upsilon(10860)        852     9000553   0.0     10.88990000      1.290612e-23               Upsilon(5S)           0      0.00000000
+ Upsilon(11020)        854     9010553   0.0     10.99290000      1.343290e-23            Upsilon(11020)           0      0.00000000
+ chi_b0(1P)            611       10551   0.0      9.85940000      0.000000e+00                    chi_b0       10551      0.00000000
  chi_b0(2P)            834      110551   0.0     10.23250000      0.000000e+00                chi_b0(2P)      110551      0.00000000
  chi_b0(3P)            846      210551   0.0     10.50040000      0.000000e+00                chi_b0(3P)      210551      0.00000000
- chi_b1(3P)            848      220553   0.0     10.51570000      0.000000e+00                chi_b1(3P)      220553      0.00000000
- chi_b1(1P)            695       20553   0.0      9.89278000      0.000000e+00                    chi_b1       20553      0.00000000
+ chi_b1(3P)            848      220553   0.0     10.51210000      0.000000e+00                chi_b1(3P)      220553      0.00000000
+ chi_b1(1P)            695       20553   0.0      9.89287800      0.000000e+00                    chi_b1       20553      0.00000000
  chi_b1(2P)            837      120553   0.0     10.25546000      0.000000e+00                chi_b1(2P)      120553      0.00000000
  chi_b2(1P)            388         555   0.0      9.91221000      0.000000e+00                    chi_b2         555      0.00000000
  chi_b2(2P)            832      100555   0.0     10.26865000      0.000000e+00                chi_b2(2P)      100555      0.00000000
@@ -299,38 +303,38 @@ PARTICLE
  h_b(1P)               612       10553   0.0      9.89930000      0.000000e+00                       h_b       10553      0.00000000
  h_b(2P)               835      110553   0.0     10.25500000      0.000000e+00                   h_b(2P)      110553      0.00000000
  h_b(3P)               847      210553   0.0     10.51600000      0.000000e+00                   h_b(3P)      210553      0.00000000
- n0                     13        2112   0.0      0.93956538      8.803000e+02                        n0        2112      0.00000000
- n~0                    25       -2112   0.0      0.93956538      8.803000e+02                   anti-n0       -2112      0.00000000
- p+                     14        2212   1.0      0.93827205      1.000000e+16                        p+        2212      0.00000000
- p~-                    15       -2212  -1.0      0.93827205      1.000000e+16                   anti-p-       -2212      0.00000000
- N(1440)0              624       12112   0.0      1.43000000      2.194041e-24                  N(1440)0           0      0.00000000
- N(1440)~0             625      -12112   0.0      1.43000000      2.194041e-24             anti-N(1440)0           0      0.00000000
- N(1440)+              636       12212   1.0      1.43000000      2.194041e-24                  N(1440)+           0      0.00000000
- N(1440)~-             637      -12212  -1.0      1.43000000      2.194041e-24             anti-N(1440)-           0      0.00000000
- N(1520)0              404        1214   0.0      1.51500000      5.723584e-24                  N(1520)0           0      0.00000000
- N(1520)~0             405       -1214   0.0      1.51500000      5.723584e-24             anti-N(1520)0           0      0.00000000
- N(1520)+              420        2124   1.0      1.51500000      5.723584e-24                  N(1520)+           0      0.00000000
- N(1520)~-             421       -2124  -1.0      1.51500000      5.723584e-24             anti-N(1520)-           0      0.00000000
- N(1535)0              705       22112   0.0      1.53500000      4.388081e-24                  N(1535)0           0      0.00000000
- N(1535)~0             706      -22112   0.0      1.53500000      4.388081e-24             anti-N(1535)0           0      0.00000000
- N(1535)+              713       22212   1.0      1.53500000      4.388081e-24                  N(1535)+           0      0.00000000
- N(1535)~-             714      -22212  -1.0      1.53500000      4.388081e-24             anti-N(1535)-           0      0.00000000
- N(1650)0              771       32112   0.0      1.65500000      4.701514e-24                  N(1650)0           0      0.00000000
- N(1650)~0             772      -32112   0.0      1.65500000      4.701514e-24             anti-N(1650)0           0      0.00000000
- N(1650)+              777       32212   1.0      1.65500000      4.701514e-24                  N(1650)+           0      0.00000000
- N(1650)~-             778      -32212  -1.0      1.65500000      4.701514e-24             anti-N(1650)-           0      0.00000000
- N(1675)0              414        2116   0.0      1.67500000      4.388081e-24                  N(1675)0           0      0.00000000
- N(1675)~0             415       -2116   0.0      1.67500000      4.388081e-24             anti-N(1675)0           0      0.00000000
- N(1675)+              428        2216   1.0      1.67500000      4.388081e-24                  N(1675)+           0      0.00000000
- N(1675)~-             429       -2216  -1.0      1.67500000      4.388081e-24             anti-N(1675)-           0      0.00000000
- N(1680)0              628       12116   0.0      1.68500000      5.063171e-24                  N(1680)0           0      0.00000000
- N(1680)~0             629      -12116   0.0      1.68500000      5.063171e-24             anti-N(1680)0           0      0.00000000
- N(1680)+              640       12216   1.0      1.68500000      5.063171e-24                  N(1680)+           0      0.00000000
- N(1680)~-             641      -12216  -1.0      1.68500000      5.063171e-24             anti-N(1680)-           0      0.00000000
- N(1700)+              711       22124   1.0      1.70000000      4.388081e-24                  N(1700)+           0      0.00000000
- N(1700)~-             712      -22124  -1.0      1.70000000      4.388081e-24             anti-N(1700)-           0      0.00000000
- N(1700)0              703       21214   0.0      1.70000000      4.388081e-24                  N(1700)0           0      0.00000000
- N(1700)~0             704      -21214   0.0      1.70000000      4.388081e-24             anti-N(1700)0           0      0.00000000
+ n0                     13        2112   0.0      0.93956541      8.803000e+02                        n0        2112      0.00000000
+ n~0                    25       -2112   0.0      0.93956541      8.803000e+02                   anti-n0       -2112      0.00000000
+ p+                     14        2212   1.0      0.93827208      1.000000e+16                        p+        2212      0.00000000
+ p~-                    15       -2212  -1.0      0.93827208      1.000000e+16                   anti-p-       -2212      0.00000000
+ N(1440)0              624       12112   0.0      1.44000000      2.194041e-24                  N(1440)0           0      0.00000000
+ N(1440)~0             625      -12112   0.0      1.44000000      2.194041e-24             anti-N(1440)0           0      0.00000000
+ N(1440)+              636       12212   1.0      1.44000000      2.194041e-24                  N(1440)+           0      0.00000000
+ N(1440)~-             637      -12212  -1.0      1.44000000      2.194041e-24             anti-N(1440)-           0      0.00000000
+ N(1520)0              404        1214   0.0      1.51500000      5.983745e-24                  N(1520)0           0      0.00000000
+ N(1520)~0             405       -1214   0.0      1.51500000      5.983745e-24             anti-N(1520)0           0      0.00000000
+ N(1520)+              420        2124   1.0      1.51500000      5.983745e-24                  N(1520)+           0      0.00000000
+ N(1520)~-             421       -2124  -1.0      1.51500000      5.983745e-24             anti-N(1520)-           0      0.00000000
+ N(1535)0              705       22112   0.0      1.53000000      4.388081e-24                  N(1535)0           0      0.00000000
+ N(1535)~0             706      -22112   0.0      1.53000000      4.388081e-24             anti-N(1535)0           0      0.00000000
+ N(1535)+              713       22212   1.0      1.53000000      4.388081e-24                  N(1535)+           0      0.00000000
+ N(1535)~-             714      -22212  -1.0      1.53000000      4.388081e-24             anti-N(1535)-           0      0.00000000
+ N(1650)0              771       32112   0.0      1.65000000      5.265696e-24                  N(1650)0           0      0.00000000
+ N(1650)~0             772      -32112   0.0      1.65000000      5.265696e-24             anti-N(1650)0           0      0.00000000
+ N(1650)+              777       32212   1.0      1.65000000      5.265696e-24                  N(1650)+           0      0.00000000
+ N(1650)~-             778      -32212  -1.0      1.65000000      5.265696e-24             anti-N(1650)-           0      0.00000000
+ N(1675)0              414        2116   0.0      1.67500000      4.539393e-24                  N(1675)0           0      0.00000000
+ N(1675)~0             415       -2116   0.0      1.67500000      4.539393e-24             anti-N(1675)0           0      0.00000000
+ N(1675)+              428        2216   1.0      1.67500000      4.539393e-24                  N(1675)+           0      0.00000000
+ N(1675)~-             429       -2216  -1.0      1.67500000      4.539393e-24             anti-N(1675)-           0      0.00000000
+ N(1680)0              628       12116   0.0      1.68500000      5.485100e-24                  N(1680)0           0      0.00000000
+ N(1680)~0             629      -12116   0.0      1.68500000      5.485100e-24             anti-N(1680)0           0      0.00000000
+ N(1680)+              640       12216   1.0      1.68500000      5.485100e-24                  N(1680)+           0      0.00000000
+ N(1680)~-             641      -12216  -1.0      1.68500000      5.485100e-24             anti-N(1680)-           0      0.00000000
+ N(1700)+              711       22124   1.0      1.72000000      4.388081e-24                  N(1700)+           0      0.00000000
+ N(1700)~-             712      -22124  -1.0      1.72000000      4.388081e-24             anti-N(1700)-           0      0.00000000
+ N(1700)0              703       21214   0.0      1.72000000      4.388081e-24                  N(1700)0           0      0.00000000
+ N(1700)~0             704      -21214   0.0      1.72000000      4.388081e-24             anti-N(1700)0           0      0.00000000
  N(1710)0              791       42112   0.0      1.71000000      6.582122e-24                  N(1710)0           0      0.00000000
  N(1710)~0             792      -42112   0.0      1.71000000      6.582122e-24             anti-N(1710)0           0      0.00000000
  N(1710)+              795       42212   1.0      1.71000000      6.582122e-24                  N(1710)+           0      0.00000000
@@ -339,10 +343,10 @@ PARTICLE
  N(1720)~0             770      -31214   0.0      1.72000000      2.632849e-24             anti-N(1720)0           0      0.00000000
  N(1720)+              775       32124   1.0      1.72000000      2.632849e-24                  N(1720)+           0      0.00000000
  N(1720)~-             776      -32124  -1.0      1.72000000      2.632849e-24             anti-N(1720)-           0      0.00000000
- N(1900)0              789       41214   0.0      1.85000000      0.000000e+00                  N(1900)0           0      0.00000000
- N(1900)~0             790      -41214   0.0      1.85000000      0.000000e+00             anti-N(1900)0           0      0.00000000
- N(1900)+              793       42124   1.0      1.85000000      0.000000e+00                  N(1900)+           0      0.00000000
- N(1900)~-             794      -42124  -1.0      1.85000000      0.000000e+00             anti-N(1900)-           0      0.00000000
+ N(1900)0              789       41214   0.0      1.89500000      5.476011e-24                  N(1900)0           0      0.00000000
+ N(1900)~0             790      -41214   0.0      1.89500000      5.476011e-24             anti-N(1900)0           0      0.00000000
+ N(1900)+              793       42124   1.0      1.89500000      5.476011e-24                  N(1900)+           0      0.00000000
+ N(1900)~-             794      -42124  -1.0      1.89500000      5.476011e-24             anti-N(1900)-           0      0.00000000
  N(1990)0              630       12118   0.0      1.95000000      0.000000e+00                  N(1990)0           0      0.00000000
  N(1990)~0             631      -12118   0.0      1.95000000      0.000000e+00             anti-N(1990)0           0      0.00000000
  N(1990)+              642       12218   1.0      1.95000000      0.000000e+00                  N(1990)+           0      0.00000000
@@ -351,10 +355,10 @@ PARTICLE
  N(2090)~0             800      -52114   0.0      2.00000000      0.000000e+00             anti-N(2090)0           0      0.00000000
  N(2090)+              801       52214   1.0      2.00000000      0.000000e+00                  N(2090)+           0      0.00000000
  N(2090)~-             802      -52214  -1.0      2.00000000      0.000000e+00             anti-N(2090)-           0      0.00000000
- N(2190)0              408        1218   0.0      2.19000000      1.316424e-24                  N(2190)0           0      0.00000000
- N(2190)~0             409       -1218   0.0      2.19000000      1.316424e-24             anti-N(2190)0           0      0.00000000
- N(2190)+              424        2128   1.0      2.19000000      1.316424e-24                  N(2190)+           0      0.00000000
- N(2190)~-             425       -2128  -1.0      2.19000000      1.316424e-24             anti-N(2190)-           0      0.00000000
+ N(2190)0              408        1218   0.0      2.18000000      1.645530e-24                  N(2190)0           0      0.00000000
+ N(2190)~0             409       -1218   0.0      2.18000000      1.645530e-24             anti-N(2190)0           0      0.00000000
+ N(2190)+              424        2128   1.0      2.18000000      1.645530e-24                  N(2190)+           0      0.00000000
+ N(2190)~-             425       -2128  -1.0      2.18000000      1.645530e-24             anti-N(2190)-           0      0.00000000
  Delta-                182        1114  -1.0      1.23200000      5.625745e-24                    Delta-        1114      0.00000000
  Delta~+               186       -1114   1.0      1.23200000      5.625745e-24               anti-Delta+       -1114      0.00000000
  Delta0                181        2114   0.0      1.23200000      5.625745e-24                    Delta0        2114      0.00000000
@@ -363,38 +367,38 @@ PARTICLE
  Delta~-               184       -2214  -1.0      1.23200000      5.625745e-24               anti-Delta-       -2214      0.00000000
  Delta++               179        2224   2.0      1.23200000      5.625745e-24                   Delta++        2224      0.00000000
  Delta~--              183       -2224  -2.0      1.23200000      5.625745e-24              anti-Delta--       -2224      0.00000000
- Delta(1600)-          767       31114  -1.0      1.60000000      2.056913e-24              Delta(1600)-           0      0.00000000
- Delta(1600)~+         768      -31114   1.0      1.60000000      2.056913e-24         anti-Delta(1600)+           0      0.00000000
- Delta(1600)0          773       32114   0.0      1.60000000      2.056913e-24              Delta(1600)0           0      0.00000000
- Delta(1600)~0         774      -32114   0.0      1.60000000      2.056913e-24         anti-Delta(1600)0           0      0.00000000
- Delta(1600)+          779       32214   1.0      1.60000000      2.056913e-24              Delta(1600)+           0      0.00000000
- Delta(1600)~-         780      -32214  -1.0      1.60000000      2.056913e-24         anti-Delta(1600)-           0      0.00000000
- Delta(1600)++         781       32224   2.0      1.60000000      2.056913e-24             Delta(1600)++           0      0.00000000
- Delta(1600)~--        782      -32224  -2.0      1.60000000      2.056913e-24        anti-Delta(1600)--           0      0.00000000
- Delta(1620)-          396        1112  -1.0      1.63000000      4.701516e-24              Delta(1620)-           0      0.00000000
- Delta(1620)~+         397       -1112   1.0      1.63000000      4.701516e-24         anti-Delta(1620)+           0      0.00000000
- Delta(1620)0          402        1212   0.0      1.63000000      4.701516e-24              Delta(1620)0           0      0.00000000
- Delta(1620)~0         403       -1212   0.0      1.63000000      4.701516e-24         anti-Delta(1620)0           0      0.00000000
- Delta(1620)+          418        2122   1.0      1.63000000      4.701516e-24              Delta(1620)+           0      0.00000000
- Delta(1620)~-         419       -2122  -1.0      1.63000000      4.701516e-24         anti-Delta(1620)-           0      0.00000000
- Delta(1620)++         432        2222   2.0      1.63000000      4.701516e-24             Delta(1620)++           0      0.00000000
- Delta(1620)~--        433       -2222  -2.0      1.63000000      4.701516e-24        anti-Delta(1620)--           0      0.00000000
- Delta(1700)-          616       11114  -1.0      1.70000000      2.194041e-24              Delta(1700)-           0      0.00000000
- Delta(1700)~+         617      -11114   1.0      1.70000000      2.194041e-24         anti-Delta(1700)+           0      0.00000000
- Delta(1700)0          626       12114   0.0      1.70000000      2.194041e-24              Delta(1700)0           0      0.00000000
- Delta(1700)~0         627      -12114   0.0      1.70000000      2.194041e-24         anti-Delta(1700)0           0      0.00000000
- Delta(1700)+          638       12214   1.0      1.70000000      2.194041e-24              Delta(1700)+           0      0.00000000
- Delta(1700)~-         639      -12214  -1.0      1.70000000      2.194041e-24         anti-Delta(1700)-           0      0.00000000
- Delta(1700)++         646       12224   2.0      1.70000000      2.194041e-24             Delta(1700)++           0      0.00000000
- Delta(1700)~--        647      -12224  -2.0      1.70000000      2.194041e-24        anti-Delta(1700)--           0      0.00000000
- Delta(1900)-          614       11112  -1.0      1.84000000      0.000000e+00              Delta(1900)-           0      0.00000000
- Delta(1900)~+         615      -11112   1.0      1.84000000      0.000000e+00         anti-Delta(1900)+           0      0.00000000
- Delta(1900)0          620       11212   0.0      1.93000000      1.880606e-24              Delta(1900)0           0      0.00000000
- Delta(1900)~0         621      -11212   0.0      1.93000000      1.880606e-24         anti-Delta(1900)0           0      0.00000000
- Delta(1900)+          632       12122   1.0      1.84000000      0.000000e+00              Delta(1900)+           0      0.00000000
- Delta(1900)~-         633      -12122  -1.0      1.84000000      0.000000e+00         anti-Delta(1900)-           0      0.00000000
- Delta(1900)++         644       12222   2.0      1.84000000      0.000000e+00             Delta(1900)++           0      0.00000000
- Delta(1900)~--        645      -12222  -2.0      1.84000000      0.000000e+00        anti-Delta(1900)--           0      0.00000000
+ Delta(1600)-          767       31114  -1.0      1.57000000      2.632848e-24              Delta(1600)-           0      0.00000000
+ Delta(1600)~+         768      -31114   1.0      1.57000000      2.632848e-24         anti-Delta(1600)+           0      0.00000000
+ Delta(1600)0          773       32114   0.0      1.57000000      2.632848e-24              Delta(1600)0           0      0.00000000
+ Delta(1600)~0         774      -32114   0.0      1.57000000      2.632848e-24         anti-Delta(1600)0           0      0.00000000
+ Delta(1600)+          779       32214   1.0      1.57000000      2.632848e-24              Delta(1600)+           0      0.00000000
+ Delta(1600)~-         780      -32214  -1.0      1.57000000      2.632848e-24         anti-Delta(1600)-           0      0.00000000
+ Delta(1600)++         781       32224   2.0      1.57000000      2.632848e-24             Delta(1600)++           0      0.00000000
+ Delta(1600)~--        782      -32224  -2.0      1.57000000      2.632848e-24        anti-Delta(1600)--           0      0.00000000
+ Delta(1620)-          396        1112  -1.0      1.61000000      5.063169e-24              Delta(1620)-           0      0.00000000
+ Delta(1620)~+         397       -1112   1.0      1.61000000      5.063169e-24         anti-Delta(1620)+           0      0.00000000
+ Delta(1620)0          402        1212   0.0      1.61000000      5.063169e-24              Delta(1620)0           0      0.00000000
+ Delta(1620)~0         403       -1212   0.0      1.61000000      5.063169e-24         anti-Delta(1620)0           0      0.00000000
+ Delta(1620)+          418        2122   1.0      1.61000000      5.063169e-24              Delta(1620)+           0      0.00000000
+ Delta(1620)~-         419       -2122  -1.0      1.61000000      5.063169e-24         anti-Delta(1620)-           0      0.00000000
+ Delta(1620)++         432        2222   2.0      1.61000000      5.063169e-24             Delta(1620)++           0      0.00000000
+ Delta(1620)~--        433       -2222  -2.0      1.61000000      5.063169e-24        anti-Delta(1620)--           0      0.00000000
+ Delta(1700)-          616       11114  -1.0      1.71000000      2.194041e-24              Delta(1700)-           0      0.00000000
+ Delta(1700)~+         617      -11114   1.0      1.71000000      2.194041e-24         anti-Delta(1700)+           0      0.00000000
+ Delta(1700)0          626       12114   0.0      1.71000000      2.194041e-24              Delta(1700)0           0      0.00000000
+ Delta(1700)~0         627      -12114   0.0      1.71000000      2.194041e-24         anti-Delta(1700)0           0      0.00000000
+ Delta(1700)+          638       12214   1.0      1.71000000      2.194041e-24              Delta(1700)+           0      0.00000000
+ Delta(1700)~-         639      -12214  -1.0      1.71000000      2.194041e-24         anti-Delta(1700)-           0      0.00000000
+ Delta(1700)++         646       12224   2.0      1.71000000      2.194041e-24             Delta(1700)++           0      0.00000000
+ Delta(1700)~--        647      -12224  -2.0      1.71000000      2.194041e-24        anti-Delta(1700)--           0      0.00000000
+ Delta(1900)-          614       11112  -1.0      1.86000000      2.632848e-24              Delta(1900)-           0      0.00000000
+ Delta(1900)~+         615      -11112   1.0      1.86000000      2.632848e-24         anti-Delta(1900)+           0      0.00000000
+ Delta(1900)0          620       11212   0.0      1.86000000      2.632848e-24              Delta(1900)0           0      0.00000000
+ Delta(1900)~0         621      -11212   0.0      1.86000000      2.632848e-24         anti-Delta(1900)0           0      0.00000000
+ Delta(1900)+          632       12122   1.0      1.86000000      2.632848e-24              Delta(1900)+           0      0.00000000
+ Delta(1900)~-         633      -12122  -1.0      1.86000000      2.632848e-24         anti-Delta(1900)-           0      0.00000000
+ Delta(1900)++         644       12222   2.0      1.86000000      2.632848e-24             Delta(1900)++           0      0.00000000
+ Delta(1900)~--        645      -12222  -2.0      1.86000000      2.632848e-24        anti-Delta(1900)--           0      0.00000000
  Delta(1905)-          398        1116  -1.0      1.88000000      1.994582e-24              Delta(1905)-           0      0.00000000
  Delta(1905)~+         399       -1116   1.0      1.88000000      1.994582e-24         anti-Delta(1905)+           0      0.00000000
  Delta(1905)0          406        1216   0.0      1.88000000      1.994582e-24              Delta(1905)0           0      0.00000000
@@ -403,14 +407,14 @@ PARTICLE
  Delta(1905)~-         423       -2126  -1.0      1.88000000      1.994582e-24         anti-Delta(1905)-           0      0.00000000
  Delta(1905)++         434        2226   2.0      1.88000000      1.994582e-24             Delta(1905)++           0      0.00000000
  Delta(1905)~--        435       -2226  -2.0      1.88000000      1.994582e-24        anti-Delta(1905)--           0      0.00000000
- Delta(1910)-          697       21112  -1.0      1.89000000      2.350758e-24              Delta(1910)-           0      0.00000000
- Delta(1910)~+         698      -21112   1.0      1.89000000      2.350758e-24         anti-Delta(1910)+           0      0.00000000
- Delta(1910)0          701       21212   0.0      1.89000000      2.350758e-24              Delta(1910)0           0      0.00000000
- Delta(1910)~0         702      -21212   0.0      1.89000000      2.350758e-24         anti-Delta(1910)0           0      0.00000000
- Delta(1910)+          709       22122   1.0      1.89000000      2.350758e-24              Delta(1910)+           0      0.00000000
- Delta(1910)~-         710      -22122  -1.0      1.89000000      2.350758e-24         anti-Delta(1910)-           0      0.00000000
- Delta(1910)++         717       22222   2.0      1.89000000      2.350758e-24             Delta(1910)++           0      0.00000000
- Delta(1910)~--        718      -22222  -2.0      1.89000000      2.350758e-24        anti-Delta(1910)--           0      0.00000000
+ Delta(1910)-          697       21112  -1.0      1.90000000      2.350758e-24              Delta(1910)-           0      0.00000000
+ Delta(1910)~+         698      -21112   1.0      1.90000000      2.350758e-24         anti-Delta(1910)+           0      0.00000000
+ Delta(1910)0          701       21212   0.0      1.90000000      2.350758e-24              Delta(1910)0           0      0.00000000
+ Delta(1910)~0         702      -21212   0.0      1.90000000      2.350758e-24         anti-Delta(1910)0           0      0.00000000
+ Delta(1910)+          709       22122   1.0      1.90000000      2.350758e-24              Delta(1910)+           0      0.00000000
+ Delta(1910)~-         710      -22122  -1.0      1.90000000      2.350758e-24         anti-Delta(1910)-           0      0.00000000
+ Delta(1910)++         717       22222   2.0      1.90000000      2.350758e-24             Delta(1910)++           0      0.00000000
+ Delta(1910)~--        718      -22222  -2.0      1.90000000      2.350758e-24        anti-Delta(1910)--           0      0.00000000
  Delta(1920)-          699       21114  -1.0      1.92000000      2.531585e-24              Delta(1920)-           0      0.00000000
  Delta(1920)~+         700      -21114   1.0      1.92000000      2.531585e-24         anti-Delta(1920)+           0      0.00000000
  Delta(1920)0          707       22114   0.0      1.92000000      2.531585e-24              Delta(1920)0           0      0.00000000
@@ -419,14 +423,14 @@ PARTICLE
  Delta(1920)~-         716      -22214  -1.0      1.92000000      2.531585e-24         anti-Delta(1920)-           0      0.00000000
  Delta(1920)++         719       22224   2.0      1.92000000      2.531585e-24             Delta(1920)++           0      0.00000000
  Delta(1920)~--        720      -22224  -2.0      1.92000000      2.531585e-24        anti-Delta(1920)--           0      0.00000000
- Delta(1930)-          618       11116  -1.0      1.95000000      1.828367e-24              Delta(1930)-           0      0.00000000
- Delta(1930)~+         619      -11116   1.0      1.95000000      1.828367e-24         anti-Delta(1930)+           0      0.00000000
- Delta(1930)0          622       11216   0.0      1.95000000      1.828367e-24              Delta(1930)0           0      0.00000000
- Delta(1930)~0         623      -11216   0.0      1.95000000      1.828367e-24         anti-Delta(1930)0           0      0.00000000
- Delta(1930)+          634       12126   1.0      1.95000000      1.828367e-24              Delta(1930)+           0      0.00000000
- Delta(1930)~-         635      -12126  -1.0      1.95000000      1.828367e-24         anti-Delta(1930)-           0      0.00000000
- Delta(1930)++         648       12226   2.0      1.95000000      1.828367e-24             Delta(1930)++           0      0.00000000
- Delta(1930)~--        649      -12226  -2.0      1.95000000      1.828367e-24        anti-Delta(1930)--           0      0.00000000
+ Delta(1930)-          618       11116  -1.0      1.95000000      2.194040e-24              Delta(1930)-           0      0.00000000
+ Delta(1930)~+         619      -11116   1.0      1.95000000      2.194040e-24         anti-Delta(1930)+           0      0.00000000
+ Delta(1930)0          622       11216   0.0      1.95000000      2.194040e-24              Delta(1930)0           0      0.00000000
+ Delta(1930)~0         623      -11216   0.0      1.95000000      2.194040e-24         anti-Delta(1930)0           0      0.00000000
+ Delta(1930)+          634       12126   1.0      1.95000000      2.194040e-24              Delta(1930)+           0      0.00000000
+ Delta(1930)~-         635      -12126  -1.0      1.95000000      2.194040e-24         anti-Delta(1930)-           0      0.00000000
+ Delta(1930)++         648       12226   2.0      1.95000000      2.194040e-24             Delta(1930)++           0      0.00000000
+ Delta(1930)~--        649      -12226  -2.0      1.95000000      2.194040e-24        anti-Delta(1930)--           0      0.00000000
  Delta(1950)-          400        1118  -1.0      1.93000000      2.350758e-24              Delta(1950)-           0      0.00000000
  Delta(1950)~+         401       -1118   1.0      1.93000000      2.350758e-24         anti-Delta(1950)+           0      0.00000000
  Delta(1950)0          416        2118   0.0      1.93000000      2.350758e-24              Delta(1950)0           0      0.00000000
@@ -457,16 +461,16 @@ PARTICLE
  Lambda(1830)~0        661      -13126   0.0      1.83000000      6.928549e-24        anti-Lambda(1830)0           0      0.00000000
  Lambda(1890)0         727       23124   0.0      1.89000000      6.582122e-24             Lambda(1890)0           0      0.00000000
  Lambda(1890)~0        728      -23124   0.0      1.89000000      6.582122e-24        anti-Lambda(1890)0           0      0.00000000
- Lambda(2100)0         452        3128   0.0      2.10000000      3.291061e-24                   unknown           0      0.00000000
- Lambda(2100)~0        453       -3128   0.0      2.10000000      3.291061e-24                   unknown           0      0.00000000
- Lambda(2110)0         729       23126   0.0      2.11000000      3.291061e-24                   unknown           0      0.00000000
- Lambda(2110)~0        730      -23126   0.0      2.11000000      3.291061e-24                   unknown           0      0.00000000
- Sigma-                 21        3112  -1.0      1.19744900      1.479000e-10                    Sigma-        3112      0.00000000
- Sigma~+                29       -3112   1.0      1.19744900      1.479000e-10               anti-Sigma+       -3112      0.00000000
+ Lambda(2100)0         452        3128   0.0      2.10000000      3.291061e-24             Lambda(2100)0           0      0.00000000
+ Lambda(2100)~0        453       -3128   0.0      2.10000000      3.291061e-24        anti-Lambda(2100)0           0      0.00000000
+ Lambda(2110)0         729       23126   0.0      2.11000000      3.291061e-24             Lambda(2110)0           0      0.00000000
+ Lambda(2110)~0        730      -23126   0.0      2.11000000      3.291061e-24        anti-Lambda(2110)0           0      0.00000000
+ Sigma-                 21        3112  -1.0      1.19744900      1.479128e-10                    Sigma-        3112      0.00000000
+ Sigma~+                29       -3112   1.0      1.19744900      1.479128e-10               anti-Sigma+       -3112      0.00000000
  Sigma0                 20        3212   0.0      1.19264200      7.400000e-20                    Sigma0        3212      0.00000000
  Sigma~0                28       -3212   0.0      1.19264200      7.400000e-20               anti-Sigma0       -3212      0.00000000
- Sigma+                 19        3222   1.0      1.18937000      8.018000e-11                    Sigma+        3222      0.00000000
- Sigma~-                27       -3222  -1.0      1.18937000      8.018000e-11               anti-Sigma-       -3222      0.00000000
+ Sigma+                 19        3222   1.0      1.18937000      8.018175e-11                    Sigma+        3222      0.00000000
+ Sigma~-                27       -3222  -1.0      1.18937000      8.018175e-11               anti-Sigma-       -3222      0.00000000
  Sigma*-               442        3114  -1.0      1.38720000      1.670589e-23                   Sigma*-        3114      0.00000000
  Sigma*~+              443       -3114   1.0      1.38720000      1.670589e-23              anti-Sigma*+       -3114      0.00000000
  Sigma*0               458        3214   0.0      1.38370000      1.828367e-23                   Sigma*0        3214      0.00000000
@@ -509,12 +513,12 @@ PARTICLE
  Sigma(1940)~0         734      -23214   0.0      1.94000000      2.991874e-24         anti-Sigma(1940)0           0      0.00000000
  Sigma(1940)+          737       23224   1.0      1.94000000      2.991874e-24              Sigma(1940)+           0      0.00000000
  Sigma(1940)~-         738      -23224  -1.0      1.94000000      2.991874e-24         anti-Sigma(1940)-           0      0.00000000
- Sigma(2030)0          462        3218   0.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)~0         463       -3218   0.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)+          468        3228   1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)~-         469       -3228  -1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)-          446        3118  -1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)~+         447       -3118   1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
+ Sigma(2030)0          462        3218   0.0      2.03000000      3.656734e-24              Sigma(2030)0           0      0.00000000
+ Sigma(2030)~0         463       -3218   0.0      2.03000000      3.656734e-24         anti-Sigma(2030)0           0      0.00000000
+ Sigma(2030)+          468        3228   1.0      2.03000000      3.656734e-24              Sigma(2030)+           0      0.00000000
+ Sigma(2030)~-         469       -3228  -1.0      2.03000000      3.656734e-24         anti-Sigma(2030)-           0      0.00000000
+ Sigma(2030)-          446        3118  -1.0      2.03000000      3.656734e-24              Sigma(2030)-           0      0.00000000
+ Sigma(2030)~+         447       -3118   1.0      2.03000000      3.656734e-24         anti-Sigma(2030)+           0      0.00000000
  Sigma(2250)0         1059      103212   0.0      2.25000000      6.580000e-24              Sigma(2250)0           0      0.00000000
  Sigma(2250)~0        1060     -103212   0.0      2.25000000      6.580000e-24         anti-Sigma(2250)0           0      0.00000000
  Sigma(2250)+         1061      103222   1.0      2.25000000      6.580000e-24              Sigma(2250)+           0      0.00000000
@@ -533,10 +537,10 @@ PARTICLE
  Xi(1690)~+           1034     -203312   1.0      1.69000000      0.000000e+00            anti-Xi(1690)+           0      0.00000000
  Xi(1690)0            1035      203322   0.0      1.69000000      0.000000e+00                 Xi(1690)0           0      0.00000000
  Xi(1690)~0           1036     -203322   0.0      1.69000000      0.000000e+00            anti-Xi(1690)0           0      0.00000000
- Xi(1820)-             674       13314  -1.0      1.82300000      2.742551e-23                   unknown           0      0.00000000
- Xi(1820)~+            675      -13314   1.0      1.82300000      2.742551e-23                   unknown           0      0.00000000
- Xi(1820)0             678       13324   0.0      1.82300000      2.742551e-23                   unknown           0      0.00000000
- Xi(1820)~0            679      -13324   0.0      1.82300000      2.742551e-23                   unknown           0      0.00000000
+ Xi(1820)-             674       13314  -1.0      1.82300000      2.742551e-23                 Xi(1820)-           0      0.00000000
+ Xi(1820)~+            675      -13314   1.0      1.82300000      2.742551e-23            anti-Xi(1820)+           0      0.00000000
+ Xi(1820)0             678       13324   0.0      1.82300000      2.742551e-23                 Xi(1820)0           0      0.00000000
+ Xi(1820)~0            679      -13324   0.0      1.82300000      2.742551e-23            anti-Xi(1820)0           0      0.00000000
  Xi(1950)-            1037      103316  -1.0      1.95000000      1.097020e-23                 Xi(1950)-           0      0.00000000
  Xi(1950)~+           1038     -103316   1.0      1.95000000      1.097020e-23            anti-Xi(1950)+           0      0.00000000
  Xi(1950)0            1039      103326   0.0      1.95000000      1.097020e-23                 Xi(1950)0           0      0.00000000
@@ -555,80 +559,80 @@ PARTICLE
  Lambda_c(2595)~-      683      -14122  -1.0      2.59225000      2.531585e-22      anti-Lambda_c(2593)-           0      0.00000000
  Lambda_c(2625)+      1047      104124   1.0      2.62811000      0.000000e+00           Lambda_c(2625)+           0      0.00000000
  Lambda_c(2625)~-     1048     -104124  -1.0      2.62811000      0.000000e+00      anti-Lambda_c(2625)-           0      0.00000000
- Lambda_c(2880)+      1049      204126   1.0      2.88153000      1.134849e-22           Lambda_c(2880)+           0      0.00000000
- Lambda_c(2880)~-     1050     -204126  -1.0      2.88153000      1.134849e-22      anti-Lambda_c(2880)-           0      0.00000000
- Sigma_c0               81        4112   0.0      2.45374000      3.047279e-22                  Sigma_c0        4112      0.00000000
- Sigma_c~0              82       -4112   0.0      2.45374000      3.047279e-22             anti-Sigma_c0       -4112      0.00000000
+ Lambda_c(2880)+      1049      204126   1.0      2.88163000      1.175379e-22           Lambda_c(2880)+           0      0.00000000
+ Lambda_c(2880)~-     1050     -204126  -1.0      2.88163000      1.175379e-22      anti-Lambda_c(2880)-           0      0.00000000
+ Sigma_c0               81        4112   0.0      2.45375000      3.596787e-22                  Sigma_c0        4112      0.00000000
+ Sigma_c~0              82       -4112   0.0      2.45375000      3.596787e-22             anti-Sigma_c0       -4112      0.00000000
  Sigma_c+               83        4212   1.0      2.45290000      3.999999e-22                  Sigma_c+        4212      0.00000000
  Sigma_c~-              84       -4212  -1.0      2.45290000      3.999999e-22             anti-Sigma_c-       -4212      0.00000000
- Sigma_c++              85        4222   2.0      2.45398000      2.912443e-22                 Sigma_c++        4222      0.00000000
- Sigma_c~--             86       -4222  -2.0      2.45398000      2.912443e-22            anti-Sigma_c--       -4222      0.00000000
- Sigma_c*0             480        4114   0.0      2.51880000      4.539394e-23                 Sigma_c*0        4114      0.00000000
- Sigma_c*~0            481       -4114   0.0      2.51880000      4.539394e-23            anti-Sigma_c*0       -4114      0.00000000
+ Sigma_c++              85        4222   2.0      2.45397000      3.482603e-22                 Sigma_c++        4222      0.00000000
+ Sigma_c~--             86       -4222  -2.0      2.45397000      3.482603e-22            anti-Sigma_c--       -4222      0.00000000
+ Sigma_c*0             480        4114   0.0      2.51848000      4.539394e-23                 Sigma_c*0        4114      0.00000000
+ Sigma_c*~0            481       -4114   0.0      2.51848000      4.539394e-23            anti-Sigma_c*0       -4114      0.00000000
  Sigma_c*+             486        4214   1.0      2.51750000      3.291061e-22                 Sigma_c*+        4214      0.00000000
  Sigma_c*~-            487       -4214  -1.0      2.51750000      3.291061e-22            anti-Sigma_c*-       -4214      0.00000000
- Sigma_c*++            488        4224   2.0      2.51790000      4.417531e-23                Sigma_c*++        4224      0.00000000
- Sigma_c*~--           489       -4224  -2.0      2.51790000      4.417531e-23           anti-Sigma_c*--       -4224      0.00000000
- Xi_c0                 106        4132   0.0      2.47088000      1.120000e-13                     Xi_c0        4132      0.00000000
- Xi_c~0                107       -4132   0.0      2.47088000      1.120000e-13                anti-Xi_c0       -4132      0.00000000
- Xi_c+                 108        4232   1.0      2.46780000      4.420000e-13                     Xi_c+        4232      0.00000000
- Xi_c~-                109       -4232  -1.0      2.46780000      4.420000e-13                anti-Xi_c-       -4232      0.00000000
- Xi'_c0                100        4312   0.0      2.57790000      0.000000e+00                    Xi'_c0        4312      0.00000000
- Xi'_c~0               101       -4312   0.0      2.57790000      0.000000e+00               anti-Xi'_c0       -4312      0.00000000
- Xi'_c+                102        4322   1.0      2.57560000      0.000000e+00                    Xi'_c+        4322      0.00000000
- Xi'_c~-               103       -4322  -1.0      2.57560000      0.000000e+00               anti-Xi'_c-       -4322      0.00000000
- Xi_c*0                494        4314   0.0      2.64590000      0.000000e+00                    Xi_c*0        4314      0.00000000
- Xi_c*~0               495       -4314   0.0      2.64590000      0.000000e+00               anti-Xi_c*0       -4314      0.00000000
- Xi_c*+                496        4324   1.0      2.64590000      0.000000e+00                    Xi_c*+        4324      0.00000000
- Xi_c*~-               497       -4324  -1.0      2.64590000      0.000000e+00               anti-Xi_c*-       -4324      0.00000000
- Xi_c(2790)+          1051      104324   1.0      2.78910000      0.000000e+00               Xi_c(2790)+           0      0.00000000
- Xi_c(2790)~-         1052     -104324  -1.0      2.78910000      0.000000e+00          anti-Xi_c(2790)-           0      0.00000000
- Xi_c(2790)0          1053      104314   0.0      2.79180000      0.000000e+00               Xi_c(2790)0           0      0.00000000
- Xi_c(2790)~0         1054     -104314   0.0      2.79180000      0.000000e+00          anti-Xi_c(2790)0           0      0.00000000
- Xi_c(2815)+          1055      104322   1.0      2.81660000      0.000000e+00               Xi_c(2815)+           0      0.00000000
- Xi_c(2815)~-         1056     -104322  -1.0      2.81660000      0.000000e+00          anti-Xi_c(2815)-           0      0.00000000
- Xi_c(2815)0          1057      104312   0.0      2.81960000      0.000000e+00               Xi_c(2815)0           0      0.00000000
- Xi_c(2815)~0         1058     -104312   0.0      2.81960000      0.000000e+00          anti-Xi_c(2815)0           0      0.00000000
- Omega_c0              104        4332   0.0      2.69520000      6.900000e-14                  Omega_c0        4332      0.00000000
- Omega_c~0             105       -4332   0.0      2.69520000      6.900000e-14             anti-Omega_c0       -4332      0.00000000
+ Sigma_c*++            488        4224   2.0      2.51841000      4.453396e-23                Sigma_c*++        4224      0.00000000
+ Sigma_c*~--           489       -4224  -2.0      2.51841000      4.453396e-23           anti-Sigma_c*--       -4224      0.00000000
+ Xi_c0                 106        4132   0.0      2.47091000      1.530726e-13                     Xi_c0        4132      0.00000000
+ Xi_c~0                107       -4132   0.0      2.47091000      1.530726e-13                anti-Xi_c0       -4132      0.00000000
+ Xi_c+                 108        4232   1.0      2.46793000      4.420000e-13                     Xi_c+        4232      0.00000000
+ Xi_c~-                109       -4232  -1.0      2.46793000      4.420000e-13                anti-Xi_c-       -4232      0.00000000
+ Xi'_c0                100        4312   0.0      2.57920000      0.000000e+00                    Xi'_c0        4312      0.00000000
+ Xi'_c~0               101       -4312   0.0      2.57920000      0.000000e+00               anti-Xi'_c0       -4312      0.00000000
+ Xi'_c+                102        4322   1.0      2.57840000      0.000000e+00                    Xi'_c+        4322      0.00000000
+ Xi'_c~-               103       -4322  -1.0      2.57840000      0.000000e+00               anti-Xi'_c-       -4322      0.00000000
+ Xi_c*0                494        4314   0.0      2.64638000      2.800902e-22                    Xi_c*0        4314      0.00000000
+ Xi_c*~0               495       -4314   0.0      2.64638000      2.800902e-22               anti-Xi_c*0       -4314      0.00000000
+ Xi_c*+                496        4324   1.0      2.64557000      3.075757e-22                    Xi_c*+        4324      0.00000000
+ Xi_c*~-               497       -4324  -1.0      2.64557000      3.075757e-22               anti-Xi_c*-       -4324      0.00000000
+ Xi_c(2790)+          1051      104324   1.0      2.79240000      7.395640e-23               Xi_c(2790)+           0      0.00000000
+ Xi_c(2790)~-         1052     -104324  -1.0      2.79240000      7.395640e-23          anti-Xi_c(2790)-           0      0.00000000
+ Xi_c(2790)0          1053      104314   0.0      2.79410000      6.582120e-23               Xi_c(2790)0           0      0.00000000
+ Xi_c(2790)~0         1054     -104314   0.0      2.79410000      6.582120e-23          anti-Xi_c(2790)0           0      0.00000000
+ Xi_c(2815)+          1055      104322   1.0      2.81673000      2.708691e-22               Xi_c(2815)+           0      0.00000000
+ Xi_c(2815)~-         1056     -104322  -1.0      2.81673000      2.708691e-22          anti-Xi_c(2815)-           0      0.00000000
+ Xi_c(2815)0          1057      104312   0.0      2.82026000      2.591386e-22               Xi_c(2815)0           0      0.00000000
+ Xi_c(2815)~0         1058     -104312   0.0      2.82026000      2.591386e-22          anti-Xi_c(2815)0           0      0.00000000
+ Omega_c0              104        4332   0.0      2.69520000      2.680000e-13                  Omega_c0        4332      0.00000000
+ Omega_c~0             105       -4332   0.0      2.69520000      2.680000e-13             anti-Omega_c0       -4332      0.00000000
  Omega_c*0             498        4334   0.0      2.76590000      0.000000e+00                 Omega_c*0        4334      0.00000000
  Omega_c*~0            499       -4334   0.0      2.76590000      0.000000e+00            anti-Omega_c*0       -4334      0.00000000
- Xi_cc+                502        4412   1.0      3.62140000      3.335641e-13                    Xi_cc+        4412      0.00000000
- Xi_cc~-               503       -4412  -1.0      3.62140000      3.335641e-13               anti-Xi_cc-       -4412      0.00000000
+ Xi_cc+                502        4412   1.0      3.62140000      0.800000e-13                    Xi_cc+        4412      0.00000000
+ Xi_cc~-               503       -4412  -1.0      3.62140000      0.800000e-13               anti-Xi_cc-       -4412      0.00000000
  Xi*_cc+               504        4414   1.0      3.65648000      0.000000e+00                   Xi_cc*+        4414      0.00000000
  Xi*_cc~-              505       -4414  -1.0      3.65648000      0.000000e+00              anti-Xi_cc*-       -4414      0.00000000
- Xi_cc++               506        4422   2.0      3.62140000      3.335641e-13                   Xi_cc++        4422      0.00000000
- Xi_cc~--              507       -4422  -2.0      3.62140000      3.335641e-13              anti-Xi_cc--       -4422      0.00000000
+ Xi_cc++               506        4422   2.0      3.62140000      2.560000e-13                   Xi_cc++        4422      0.00000000
+ Xi_cc~--              507       -4422  -2.0      3.62140000      2.560000e-13              anti-Xi_cc--       -4422      0.00000000
  Xi*_cc++              508        4424   2.0      3.65648000      0.000000e+00                  Xi_cc*++        4424      0.00000000
  Xi*_cc~--             509       -4424  -2.0      3.65648000      0.000000e+00             anti-Xi_cc*--       -4424      0.00000000
- Omega_cc+             510        4432   1.0      3.78663000      3.335641e-13                 Omega_cc+        4432      0.00000000
- Omega_cc~-            511       -4432  -1.0      3.78663000      3.335641e-13            anti-Omega_cc-       -4432      0.00000000
+ Omega_cc+             510        4432   1.0      3.73800000      1.600000e-13                 Omega_cc+        4432      0.00000000
+ Omega_cc~-            511       -4432  -1.0      3.73800000      1.600000e-13            anti-Omega_cc-       -4432      0.00000000
  Omega*_cc+            512        4434   1.0      3.82466000      0.000000e+00                Omega_cc*+        4434      0.00000000
  Omega*_cc~-           513       -4434  -1.0      3.82466000      0.000000e+00           anti-Omega_cc*-       -4434      0.00000000
- Omega*_ccc++          514        4444   2.0      4.91594000      0.000000e+00                   unknown        4444      0.00000000
- Omega*_ccc~--         515       -4444  -2.0      4.91594000      0.000000e+00                   unknown       -4444      0.00000000
- Lambda_b0              79        5122   0.0      5.61950000      1.451000e-12                 Lambda_b0        5122      0.00000000
- Lambda_b~0             80       -5122   0.0      5.61950000      1.451000e-12            anti-Lambda_b0       -5122      0.00000000
- Lambda_b(5912)0      1065       15122   0.0      5.91197000      1.316000e-21           Lambda_b(5912)0       15122      0.00000000
- Lambda_b(5912)~0     1066      -15122   0.0      5.91197000      1.316000e-21      anti-Lambda_b(5912)0      -15122      0.00000000
- Lambda_b(5920)0      1067        5124   0.0      5.91977000      1.316000e-21           Lambda_b(5920)0        5124      0.00000000
- Lambda_b(5920)~0     1068       -5124   0.0      5.91977000      1.316000e-21      anti-Lambda_b(5920)0       -5124      0.00000000
- Sigma_b-              114        5112  -1.0      5.81550000      1.343290e-22                  Sigma_b-        5112      0.00000000
- Sigma_b~+             115       -5112   1.0      5.81550000      1.343290e-22             anti-Sigma_b+       -5112      0.00000000
+ Omega*_ccc++          514        4444   2.0      4.91594000      0.000000e+00              Omega*_ccc++        4444      0.00000000
+ Omega*_ccc~--         515       -4444  -2.0      4.91594000      0.000000e+00         anti-Omega*_ccc--       -4444      0.00000000
+ Lambda_b0              79        5122   0.0      5.61960000      1.470865e-12                 Lambda_b0        5122      0.00000000
+ Lambda_b~0             80       -5122   0.0      5.61960000      1.470865e-12            anti-Lambda_b0       -5122      0.00000000
+ Lambda_b(5912)0      1065       15122   0.0      5.91220000      1.316000e-21           Lambda_b(5912)0       15122      0.00000000
+ Lambda_b(5912)~0     1066      -15122   0.0      5.91220000      1.316000e-21      anti-Lambda_b(5912)0      -15122      0.00000000
+ Lambda_b(5920)0      1067        5124   0.0      5.91992000      1.316000e-21           Lambda_b(5920)0        5124      0.00000000
+ Lambda_b(5920)~0     1068       -5124   0.0      5.91992000      1.316000e-21      anti-Lambda_b(5920)0       -5124      0.00000000
+ Sigma_b-              114        5112  -1.0      5.81564000      1.343290e-22                  Sigma_b-        5112      0.00000000
+ Sigma_b~+             115       -5112   1.0      5.81564000      1.343290e-22             anti-Sigma_b+       -5112      0.00000000
  Sigma_b0              112        5212   0.0      5.80780000      1.000000e-19                  Sigma_b0        5212      0.00000000
  Sigma_b~0             113       -5212   0.0      5.80780000      1.000000e-19             anti-Sigma_b0       -5212      0.00000000
- Sigma_b+              110        5222   1.0      5.81130000      6.785693e-23                  Sigma_b+        5222      0.00000000
- Sigma_b~-             111       -5222  -1.0      5.81130000      6.785693e-23             anti-Sigma_b-       -5222      0.00000000
- Sigma_b*-             520        5114  -1.0      5.83510000      8.776160e-23                 Sigma_b*-        5114      0.00000000
- Sigma_b*~+            521       -5114   1.0      5.83510000      8.776160e-23            anti-Sigma_b*+       -5114      0.00000000
+ Sigma_b+              110        5222   1.0      5.81056000      1.316424e-22                  Sigma_b+        5222      0.00000000
+ Sigma_b~-             111       -5222  -1.0      5.81056000      1.316424e-22             anti-Sigma_b-       -5222      0.00000000
+ Sigma_b*-             520        5114  -1.0      5.83474000      8.776160e-23                 Sigma_b*-        5114      0.00000000
+ Sigma_b*~+            521       -5114   1.0      5.83474000      8.776160e-23            anti-Sigma_b*+       -5114      0.00000000
  Sigma_b*0             528        5214   0.0      5.82900000      0.000000e+00                 Sigma_b*0        5214      0.00000000
  Sigma_b*~0            529       -5214   0.0      5.82900000      0.000000e+00            anti-Sigma_b*0       -5214      0.00000000
- Sigma_b*+             530        5224   1.0      5.83210000      5.723583e-23                 Sigma_b*+        5224      0.00000000
- Sigma_b*~-            531       -5224  -1.0      5.83210000      5.723583e-23            anti-Sigma_b*-       -5224      0.00000000
- Xi_b-                 122        5132  -1.0      5.79490000      1.560000e-12                     Xi_b-        5132      0.00000000
- Xi_b~+                123       -5132   1.0      5.79490000      1.560000e-12                anti-Xi_b+       -5132      0.00000000
- Xi_b0                 124        5232   0.0      5.79310000      1.490000e-12                     Xi_b0        5232      0.00000000
- Xi_b~0                125       -5232   0.0      5.79310000      1.490000e-12                anti-Xi_b0       -5232      0.00000000
+ Sigma_b*+             530        5224   1.0      5.83032000      7.002255e-23                 Sigma_b*+        5224      0.00000000
+ Sigma_b*~-            531       -5224  -1.0      5.83032000      7.002255e-23            anti-Sigma_b*-       -5224      0.00000000
+ Xi_b-                 122        5132  -1.0      5.79700000      1.570912e-12                     Xi_b-        5132      0.00000000
+ Xi_b~+                123       -5132   1.0      5.79700000      1.570912e-12                anti-Xi_b+       -5132      0.00000000
+ Xi_b0                 124        5232   0.0      5.79190000      1.490000e-12                     Xi_b0        5232      0.00000000
+ Xi_b~0                125       -5232   0.0      5.79190000      1.490000e-12                anti-Xi_b0       -5232      0.00000000
  Xi'_b-                116        5312  -1.0      5.96000000      1.000000e-19                    Xi'_b-        5312      0.00000000
  Xi'_b~+               117       -5312   1.0      5.96000000      1.000000e-19               anti-Xi'_b+       -5312      0.00000000
  Xi'_b0                118        5322   0.0      5.96000000      1.000000e-19                    Xi'_b0        5322      0.00000000
@@ -639,54 +643,54 @@ PARTICLE
  Xi_b*~0               541       -5324   0.0      5.97000000      0.000000e+00               anti-Xi_b*0       -5324      0.00000000
  Omega_b*-             542        5334  -1.0      6.13000000      0.000000e+00                 Omega_b*-        5334      0.00000000
  Omega_b*~+            543       -5334   1.0      6.13000000      0.000000e+00            anti-Omega_b*+       -5334      0.00000000
- Omega_b-              120        5332  -1.0      6.04880000      1.100000e-12                  Omega_b-        5332      0.00000000
- Omega_b~+             121       -5332   1.0      6.04880000      1.100000e-12             anti-Omega_b+       -5332      0.00000000
+ Omega_b-              120        5332  -1.0      6.04610000      1.645530e-12                  Omega_b-        5332      0.00000000
+ Omega_b~+             121       -5332   1.0      6.04610000      1.645530e-12             anti-Omega_b+       -5332      0.00000000
  Xi_bc0                522        5142   0.0      6.90000000      0.500000e-12                    Xi_bc0        5142      0.00000000
  Xi_bc~0               523       -5142   0.0      6.90000000      0.500000e-12               anti-Xi_bc0       -5142      0.00000000
  Xi_bc+                532        5242   1.0      6.90000000      0.500000e-12                    Xi_bc+        5242      0.00000000
  Xi_bc~-               533       -5242  -1.0      6.90000000      0.500000e-12               anti-Xi_bc-       -5242      0.00000000
- Omega_bc0             544        5342   0.0      7.19099000      0.500000e-12                   unknown        5342      0.00000000
- Omega_bc~0            545       -5342   0.0      7.19099000      0.500000e-12                   unknown       -5342      0.00000000
- Xi'_bc0               550        5412   0.0      7.03724000      0.000000e+00                   unknown        5412      0.00000000
- Xi'_bc~0              551       -5412   0.0      7.03724000      0.000000e+00                   unknown       -5412      0.00000000
- Xi*_bc0               552        5414   0.0      7.04850000      0.000000e+00                   unknown        5414      0.00000000
- Xi*_bc~0              553       -5414   0.0      7.04850000      0.000000e+00                   unknown       -5414      0.00000000
- Xi'_bc+               554        5422   1.0      7.03724000      0.000000e+00                   unknown        5422      0.00000000
- Xi'_bc~-              555       -5422  -1.0      7.03724000      0.000000e+00                   unknown       -5422      0.00000000
- Xi*_bc+               556        5424   1.0      7.04850000      0.000000e+00                   unknown        5424      0.00000000
- Xi*_bc~-              557       -5424  -1.0      7.04850000      0.000000e+00                   unknown       -5424      0.00000000
- Omega'_bc0            558        5432   0.0      7.21101000      0.000000e+00                   unknown        5432      0.00000000
- Omega'_bc~0           559       -5432   0.0      7.21101000      0.000000e+00                   unknown       -5432      0.00000000
- Omega*_bc0            560        5434   0.0      7.21900000      0.000000e+00                   unknown        5434      0.00000000
- Omega*_bc~0           561       -5434   0.0      7.21900000      0.000000e+00                   unknown       -5434      0.00000000
- Omega_bcc+            562        5442   1.0      8.30945000      1.290893e-12                   unknown        5442      0.00000000
- Omega_bcc~-           563       -5442  -1.0      8.30945000      1.290893e-12                   unknown       -5442      0.00000000
- Omega*_bcc+           564        5444   1.0      8.31325000      0.000000e+00                   unknown        5444      0.00000000
- Omega*_bcc~-          565       -5444  -1.0      8.31325000      0.000000e+00                   unknown       -5444      0.00000000
- Xi_bb-                568        5512  -1.0     10.42272000      1.290893e-12                   unknown        5512      0.00000000
- Xi_bb~+               569       -5512   1.0     10.42272000      1.290893e-12                   unknown       -5512      0.00000000
- Xi*_bb-               570        5514  -1.0     10.44144000      0.000000e+00                   unknown        5514      0.00000000
- Xi*_bb~+              571       -5514   1.0     10.44144000      0.000000e+00                   unknown       -5514      0.00000000
- Xi_bb0                572        5522   0.0     10.42272000      1.290893e-12                   unknown        5522      0.00000000
- Xi_bb~0               573       -5522   0.0     10.42272000      1.290893e-12                   unknown       -5522      0.00000000
- Xi*_bb0               574        5524   0.0     10.44144000      0.000000e+00                   unknown        5524      0.00000000
- Xi*_bb~0              575       -5524   0.0     10.44144000      0.000000e+00                   unknown       -5524      0.00000000
- Omega_bb-             576        5532  -1.0     10.60209000      1.290893e-12                   unknown        5532      0.00000000
- Omega_bb~+            577       -5532   1.0     10.60209000      1.290893e-12                   unknown       -5532      0.00000000
- Omega*_bb-            578        5534  -1.0     10.61426000      0.000000e+00                   unknown        5534      0.00000000
- Omega*_bb~+           579       -5534   1.0     10.61426000      0.000000e+00                   unknown       -5534      0.00000000
- Omega_bbc0            580        5542   0.0     11.70767000      1.290893e-12                   unknown        5542      0.00000000
- Omega_bbc~0           581       -5542   0.0     11.70767000      1.290893e-12                   unknown       -5542      0.00000000
- Omega*_bbc0           582        5544   0.0     11.71147000      0.000000e+00                   unknown        5544      0.00000000
- Omega*_bbc~0          583       -5544   0.0     11.71147000      0.000000e+00                   unknown       -5544      0.00000000
- Omega*_bbb-           584        5554  -1.0     15.11061000      0.000000e+00                   unknown        5554      0.00000000
- Omega*_bbb~+          585       -5554   1.0     15.11061000      0.000000e+00                   unknown       -5554      0.00000000
+ Omega_bc0             544        5342   0.0      7.19099000      0.500000e-12                 Omega_bc0        5342      0.00000000
+ Omega_bc~0            545       -5342   0.0      7.19099000      0.500000e-12            anti-Omega_bc0       -5342      0.00000000
+ Xi'_bc0               550        5412   0.0      7.03724000      0.000000e+00                   Xi'_bc0        5412      0.00000000
+ Xi'_bc~0              551       -5412   0.0      7.03724000      0.000000e+00              anti-Xi'_bc0       -5412      0.00000000
+ Xi*_bc0               552        5414   0.0      7.04850000      0.000000e+00                   Xi*_bc0        5414      0.00000000
+ Xi*_bc~0              553       -5414   0.0      7.04850000      0.000000e+00              anti-Xi*_bc0       -5414      0.00000000
+ Xi'_bc+               554        5422   1.0      7.03724000      0.000000e+00                   Xi'_bc+        5422      0.00000000
+ Xi'_bc~-              555       -5422  -1.0      7.03724000      0.000000e+00              anti-Xi'_bc-       -5422      0.00000000
+ Xi*_bc+               556        5424   1.0      7.04850000      0.000000e+00                   Xi*_bc+        5424      0.00000000
+ Xi*_bc~-              557       -5424  -1.0      7.04850000      0.000000e+00              anti-Xi*_bc+       -5424      0.00000000
+ Omega'_bc0            558        5432   0.0      7.21101000      0.000000e+00                Omega'_bc0        5432      0.00000000
+ Omega'_bc~0           559       -5432   0.0      7.21101000      0.000000e+00           anti-Omega'_bc0       -5432      0.00000000
+ Omega*_bc0            560        5434   0.0      7.21900000      0.000000e+00                Omega*_bc0        5434      0.00000000
+ Omega*_bc~0           561       -5434   0.0      7.21900000      0.000000e+00           anti-Omega*_bc0       -5434      0.00000000
+ Omega_bcc+            562        5442   1.0      8.30945000      1.290893e-12                Omega_bcc+        5442      0.00000000
+ Omega_bcc~-           563       -5442  -1.0      8.30945000      1.290893e-12           anti-Omega_bcc-       -5442      0.00000000
+ Omega*_bcc+           564        5444   1.0      8.31325000      0.000000e+00               Omega*_bcc+        5444      0.00000000
+ Omega*_bcc~-          565       -5444  -1.0      8.31325000      0.000000e+00          anti-Omega*_bcc-       -5444      0.00000000
+ Xi_bb-                568        5512  -1.0     10.42272000      1.290893e-12                    Xi_bb-        5512      0.00000000
+ Xi_bb~+               569       -5512   1.0     10.42272000      1.290893e-12               anti-Xi_bb+       -5512      0.00000000
+ Xi*_bb-               570        5514  -1.0     10.44144000      0.000000e+00                   Xi*_bb-        5514      0.00000000
+ Xi*_bb~+              571       -5514   1.0     10.44144000      0.000000e+00              anti-Xi*_bb+       -5514      0.00000000
+ Xi_bb0                572        5522   0.0     10.42272000      1.290893e-12                    Xi_bb0        5522      0.00000000
+ Xi_bb~0               573       -5522   0.0     10.42272000      1.290893e-12               anti-Xi_bb0       -5522      0.00000000
+ Xi*_bb0               574        5524   0.0     10.44144000      0.000000e+00                   Xi*_bb0        5524      0.00000000
+ Xi*_bb~0              575       -5524   0.0     10.44144000      0.000000e+00              anti-Xi*_bb0       -5524      0.00000000
+ Omega_bb-             576        5532  -1.0     10.60209000      1.290893e-12                 Omega_bb-        5532      0.00000000
+ Omega_bb~+            577       -5532   1.0     10.60209000      1.290893e-12            anti-Omega_bb+       -5532      0.00000000
+ Omega*_bb-            578        5534  -1.0     10.61426000      0.000000e+00                Omega*_bb-        5534      0.00000000
+ Omega*_bb~+           579       -5534   1.0     10.61426000      0.000000e+00           anti-Omega*_bb+       -5534      0.00000000
+ Omega_bbc0            580        5542   0.0     11.70767000      1.290893e-12                Omega_bbc0        5542      0.00000000
+ Omega_bbc~0           581       -5542   0.0     11.70767000      1.290893e-12           anti-Omega_bbc0       -5542      0.00000000
+ Omega*_bbc0           582        5544   0.0     11.71147000      0.000000e+00               Omega*_bbc0        5544      0.00000000
+ Omega*_bbc~0          583       -5544   0.0     11.71147000      0.000000e+00          anti-Omega*_bbc0       -5544      0.00000000
+ Omega*_bbb-           584        5554  -1.0     15.11061000      0.000000e+00               Omega*_bbb-        5554      0.00000000
+ Omega*_bbb~+          585       -5554   1.0     15.11061000      0.000000e+00          anti-Omega*_bbb+       -5554      0.00000000
  deuteron               45  1000010020   1.0      1.87561300      1.000000e+15                  deuteron           0      0.00000000
  triton                 46  1000010030   1.0      2.80925000      1.000000e+15                   tritium           0      0.00000000
  alpha                  47  1000020040   2.0      3.72741700      1.000000e+15                     alpha           0      0.00000000
  geantino               48   480000000   0.0      0.00000000      1.000000e+15                  geantino           0      0.00000000
  opticalphoton          50       20022   0.0      0.00000000      1.000000e+16                  Cerenkov           0      0.00000000
- H_10                   87          25   0.0    125.70000000      9.400000e-26                    Higgs0          25      0.00000000
+ H_10                   87          25   0.0    125.10000000      9.400000e-26                    Higgs0          25      0.00000000
  H_20                   88          35   0.0    310.00000000      9.400000e-26                   Higgs'0          35      0.00000000
  H_30                   89          36   0.0    310.00000000      9.400000e-26                        A0          36      0.00000000
  H+                     90          37   1.0    310.00000000      9.400000e-26                    Higgs+          37      0.00000000
@@ -749,9 +753,9 @@ PARTICLE
  CLUSjet               358          97   0.0      0.00000000      0.000000e+00                   CLUSjet          97      0.00000000
  CELLjet               359          98   0.0      0.00000000      0.000000e+00                   CELLjet          98      0.00000000
  table                 360          99   0.0      0.00000000      0.000000e+00                     table          99      0.00000000
- deutron~              390 -1000010020  -1.0      1.87561300      0.000000e+00             anti-deuteron           0      0.00000000
- triton~               392 -1000010030  -1.0      2.80925000      0.000000e+00              anti-tritium           0      0.00000000
- alpha~                393 -1000020040  -2.0      3.72741700      0.000000e+00                anti-alpha           0      0.00000000
+ deuteron~             390 -1000010020  -1.0      1.87561300      1.000000e+15             anti-deuteron           0      0.00000000
+ triton~               392 -1000010030  -1.0      2.80925000      1.000000e+15              anti-tritium           0      0.00000000
+ alpha~                393 -1000020040  -2.0      3.72741700      1.000000e+15                anti-alpha           0      0.00000000
  dd_1                  394        1103  -0.7      0.00000000      0.000000e+00                      dd_1        1103      0.00000000
  anti-dd_1             395       -1103   0.7      0.00000000      0.000000e+00                 anti-dd_1       -1103      0.00000000
  ud_0                  410        2101   0.3      0.00000000      0.000000e+00                      ud_0        2101      0.00000000
@@ -891,6 +895,16 @@ PARTICLE
  e*bar+                938    -4000011   1.0    400.00000000      0.000000e+00                   unknown    -4000011      0.00000000
  nu*_e0                939     4000012   0.0    400.00000000      0.000000e+00                   unknown     4000012      0.00000000
  nu*_ebar0             940    -4000012   0.0    400.00000000      0.000000e+00                   unknown    -4000012      0.00000000
+ gv                4900021     4900021   0.0      0.00000000        0.0000e+00                        gv     4900021      0.00000000
+ Zv                4900023     4900023   0.0    125.00000000        6.5800e-23                        Zv     4900023      0.01000000
+ qv                4900101     4900101   0.0      1.00000000        0.0000e+00                        qv     4900101      0.00000000
+ qvbar            -4900101    -4900101   0.0      1.00000000        0.0000e+00                     qvbar    -4900101      0.00000000
+ pivDiag           4900111     4900111   0.0      1.20000000        5.0000e-12                   pivDiag     4900111      2.0000e-11
+ pivUp             4900211     4900211   0.0      1.20000000        0.0000e+00                     pivUp     4900211      0.00000000
+ pivDn            -4900211    -4900211   0.0      1.20000000        0.0000e+00                     pivDn    -4900211      0.00000000
+ rhovDiag          4900113     4900113   0.0      1.20000000        0.0000e+00                  rhovDiag     4900113      0.00000000
+ rhovUp            4900213     4900213   0.0      1.20000000        0.0000e+00                    rhovUp     4900213      0.00000000
+ rhovDn           -4900213    -4900213   0.0      1.20000000        0.0000e+00                    rhovDn    -4900213      0.00000000
  Graviton*             941     5000039   0.0   1000.00000000      0.000000e+00                   unknown     5000039      0.00000000
  nu_Re                 942     9900012   0.0    500.00000000      0.000000e+00                   unknown     9900012      0.00000000
  nu_Rmu                943     9900014   0.0    500.00000000      0.000000e+00                   unknown     9900014      0.00000000
@@ -903,7 +917,7 @@ PARTICLE
  H_R++                 950     9900042   2.0    200.00000000      0.000000e+00                   unknown     9900042      0.00000000
  H_R--                 951    -9900042  -2.0    200.00000000      0.000000e+00                   unknown    -9900042      0.00000000
  He3[0.0]               49  1000020030   2.0      2.80923000      1.000000e+15                       He3           0      0.00000000
- He3~[0.0]             391 -1000020030  -2.0      2.80923000      0.000000e+00                  anti-He3           0      0.00000000
+ He3~[0.0]             391 -1000020030  -2.0      2.80923000      1.000000e+15                  anti-He3           0      0.00000000
  Li7[0.0]              988  1000030070   3.0      6.53536500      0.000000e+00                   unknown           0      0.00000000
  Be8[0.0]              992  1000040080   4.0      7.45689300      0.000000e+00                   unknown           0      0.00000000
  Be9[0.0]              959  1000040090   4.0      8.39479200      0.000000e+00                   unknown           0      0.00000000
@@ -971,5 +985,3 @@ PARTICLE
  Intermediate          971   -99000000   0.0      0.00000000      0.000000e+00                   unknown           0      0.00000000
 #
 END PARTICLE
-# # ParticleTable.txt file containing particle # properties for ParticlePropertySvc, EvtGen and Pythia. # Uses PDG 2014 when available. # PARTICLE # #                    GEANTID    PDGID  CHARGE   MASS(GeV)      TLIFE(s)                    EVTGENNAME    PYTHIAID    MAXWIDTH #  gamma                   1          22   0.0      0.00000000      1.000000e+16                     gamma          22      0.00000000  W+                     53          24   1.0     80.38500000      3.156893e-25                        W+          24      0.00000000  W-                     54         -24  -1.0     80.38500000      3.156893e-25                        W-         -24      0.00000000  Z0                     55          23   0.0     91.18760000      2.637914e-25                        Z0          23      0.00000000  e+                      2         -11   1.0      0.00051100      1.000000e+16                        e+         -11      0.00000000  e-                      3          11  -1.0      0.00051100      1.000000e+16                        e-          11      0.00000000  nu_e                    4          12   0.0      0.00000000      1.000000e+16                      nu_e          12      0.00000000  nu_e~                 302         -12   0.0      0.00000000      1.000000e+16                 anti-nu_e         -12      0.00000000  mu+                     5         -13   1.0      0.10565837      2.196981e-06                       mu+         -13      0.00000000  mu-                     6          13  -1.0      0.10565837      2.196981e-06                       mu-          13      0.00000000  nu_mu                 300          14   0.0      0.00000000      1.000000e+16                     nu_mu          14      0.00000000  nu_mu~                301         -14   0.0      0.00000000      1.000000e+16                anti-nu_mu         -14      0.00000000  tau+                   51         -15   1.0      1.77682000      2.903000e-13                      tau+         -15      0.00000000  tau-                   52          15  -1.0      1.77682000      2.903000e-13                      tau-          15      0.00000000  pi0                     7         111   0.0      0.13497660      8.520000e-17                       pi0         111      0.00000000  pi+                     8         211   1.0      0.13957018      2.603300e-08                       pi+         211      0.00000000  pi-                     9        -211  -1.0      0.13957018      2.603300e-08                       pi-        -211      0.00000000  eta                    17         221   0.0      0.54786200      5.063171e-19                       eta         221      0.00000000  rho(770)0              33         113   0.0      0.77526000      4.414569e-24                      rho0         113      0.00000000  rho(770)+              34         213   1.0      0.77526000      4.414569e-24                      rho+         213      0.00000000  rho(770)-              35        -213  -1.0      0.77526000      4.414569e-24                      rho-        -213      0.00000000  omega(782)             36         223   0.0      0.78265000      7.752794e-23                     omega         223      0.00000000  eta_prime             127         331   0.0      0.95778000      3.324303e-21                      eta'         331      0.00000000  sigma_0               850     9000221   0.0      0.47500000      1.196749e-24                   sigma_0           0      0.00000000  f_0(980)              596     9010221   0.0      0.99000000      9.403031e-24                       f_0       10221      0.00000000  a_0(980)0             132     9000111   0.0      0.98000000      8.776163e-24                      a_00       10111      0.00000000  a_0(980)+             133     9000211   1.0      0.98000000      8.776163e-24                      a_0+       10211      0.00000000  a_0(980)-             134    -9000211  -1.0      0.98000000      8.776163e-24                      a_0-      -10211      0.00000000  phi(1020)              37         333   0.0      1.01946100      1.545099e-22                       phi         333      0.00000000  h_1(1170)             597       10223   0.0      1.17000000      1.828367e-24                       h_1       10223      0.00000000  b_1(1235)0            588       10113   0.0      1.22950000      4.635297e-24                      b_10       10113      0.00000000  b_1(1235)+            592       10213   1.0      1.22950000      4.635297e-24                      b_1+       10213      0.00000000  b_1(1235)-            593      -10213  -1.0      1.22950000      4.635297e-24                      b_1-      -10213      0.00000000  a_1(1260)0            135       20113   0.0      1.23000000      1.567172e-24                      a_10       20113      0.00000000  a_1(1260)+             42       20213   1.0      1.23000000      1.567172e-24                      a_1+       20213      0.00000000  a_1(1260)-             43      -20213  -1.0      1.23000000      1.567172e-24                      a_1-      -20213      0.00000000  f_2(1270)             367         225   0.0      1.27510000      3.555982e-24                       f_2         225      0.00000000  f_1(1285)             687       20223   0.0      1.28190000      2.719885e-23                       f_1       20223      0.00000000  eta(1295)             811      100221   0.0      1.29400000      1.196749e-23                   eta(2S)           0      0.00000000  pi(1300)0             805      100111   0.0      1.30000000      1.645530e-24                   pi(2S)0           0      0.00000000  pi(1300)+             807      100211   1.0      1.30000000      1.645530e-24                   pi(2S)+           0      0.00000000  pi(1300)-             808     -100211  -1.0      1.30000000      1.645530e-24                   pi(2S)-           0      0.00000000  a_2(1320)0            136         115   0.0      1.31830000      6.151516e-24                      a_20         115      0.00000000  a_2(1320)+            137         215   1.0      1.31830000      6.151516e-24                      a_2+         215      0.00000000  a_2(1320)-            138        -215  -1.0      1.31830000      6.151516e-24                      a_2-        -215      0.00000000  f_0(1370)             686       10221   0.0      1.35000000      1.880606e-24                      f'_0       10331      0.00000000  h_1(1380)             604       10333   0.0      1.40000000      0.000000e+00                      h'_1       10333      0.00000000  pi_1(1400)0          1021     9000113   0.0      1.35400000      1.994582e-24               pi_1(1400)0           0      0.00000000  pi_1(1400)+          1023     9000213   1.0      1.35400000      1.994582e-24               pi_1(1400)+           0      0.00000000  pi_1(1400)-          1024    -9000213  -1.0      1.35400000      1.994582e-24               pi_1(1400)-           0      0.00000000  eta(1405)0           1025     9020221   0.0      1.40880000      1.290612e-23                eta(1405)0           0      0.00000000  omega(1420)           812      100223   0.0      1.42500000      3.061452e-24                 omega(2S)           0      0.00000000  f_1(1420)             692       20333   0.0      1.42640000      1.198929e-23                      f'_1       20333      0.00000000  rho(1450)0            806      100113   0.0      1.46500000      1.645530e-24                  rho(2S)0           0      0.00000000  rho(1450)+            809      100213   1.0      1.46500000      1.645530e-24                  rho(2S)+           0      0.00000000  rho(1450)-            810     -100213  -1.0      1.46500000      1.645530e-24                  rho(2S)-           0      0.00000000  a_0(1450)0            587       10111   0.0      1.47400000      2.483820e-24                   unknown           0      0.00000000  a_0(1450)+            590       10211   1.0      1.47400000      2.483820e-24                   unknown           0      0.00000000  a_0(1450)-            591      -10211  -1.0      1.47400000      2.483820e-24                   unknown           0      0.00000000  eta(1475)             826      100331   0.0      1.47600000      7.743673e-24                   unknown           0      0.00000000  f_0(1500)             855     9030221   0.0      1.50500000      6.038644e-24                 f_0(1500)           0      0.00000000  f'_2(1525)            380         335   0.0      1.52500000      9.016605e-24                      f'_2         335      0.00000000  pi_1(1600)0          1027     9010113   0.0      1.66200000      2.742551e-24               pi_1(1600)0           0      0.00000000  pi_1(1600)+          1029     9010213   1.0      1.66200000      2.742551e-24               pi_1(1600)+           0      0.00000000  pi_1(1600)-          1030    -9010213  -1.0      1.66200000      2.742551e-24               pi_1(1600)-           0      0.00000000  eta_2(1645)           598       10225   0.0      1.61700000      3.636531e-24                   unknown           0      0.00000000  omega(1650)           746       30223   0.0      1.67000000      2.089563e-24               omega(1650)           0      0.00000000  pi_2(1670)0           589       10115   0.0      1.67220000      2.531585e-24                   unknown           0      0.00000000  pi_2(1670)+           594       10215   1.0      1.67220000      2.531585e-24                   unknown           0      0.00000000  pi_2(1670)-           595      -10215  -1.0      1.67220000      2.531585e-24                   unknown           0      0.00000000  omega_3(1670)         368         227   0.0      1.66700000      3.917930e-24                   unknown           0      0.00000000  phi(1680)             827      100333   0.0      1.68000000      4.388081e-24                 phi(1680)           0      0.00000000  rho_3(1690)0          361         117   0.0      1.68880000      4.088274e-24                   unknown           0      0.00000000  rho_3(1690)+          363         217   1.0      1.68880000      4.088274e-24                   unknown           0      0.00000000  rho_3(1690)-          364        -217  -1.0      1.68880000      4.088274e-24                   unknown           0      0.00000000  rho(1700)0            743       30113   0.0      1.72000000      2.632849e-24                  rho(3S)0           0      0.00000000  rho(1700)+            744       30213   1.0      1.72000000      2.632849e-24                  rho(3S)+           0      0.00000000  rho(1700)-            745      -30213  -1.0      1.72000000      2.632849e-24                  rho(3S)-           0      0.00000000  f_0(1710)             603       10331   0.0      1.72200000      4.875646e-24                   unknown           0      0.00000000  pi(1800)0             840     9010111   0.0      1.81200000      3.164482e-24                   unknown           0      0.00000000  pi(1800)+             841     9010211   1.0      1.81200000      3.164482e-24                   unknown           0      0.00000000  pi(1800)-             842    -9010211  -1.0      1.81200000      3.164482e-24                   unknown           0      0.00000000  phi_3(1850)           381         337   0.0      1.85400000      7.565657e-24                   unknown           0      0.00000000  eta_2(1870)           605       10335   0.0      1.85400000      0.000000e+00                   unknown           0      0.00000000  f_2(1950)             813     9050225   0.0      1.94400000      1.394517e-24                   unknown           0      0.00000000  f_2(2010)             828     9060225   0.0      2.01100000      3.291061e-24                   unknown           0      0.00000000  a_4(2040)0            362         119   0.0      1.99600000      2.581224e-24                   unknown           0      0.00000000  a_4(2040)+            365         219   1.0      1.99600000      2.581224e-24                   unknown           0      0.00000000  a_4(2040)-            366        -219  -1.0      1.99600000      2.581224e-24                   unknown           0      0.00000000  f_4(2050)             369         229   0.0      2.01800000      2.777267e-24                   unknown           0      0.00000000  f_2(2300)             857     9080225   0.0      2.29700000      4.417530e-24                   unknown           0      0.00000000  f_2(2340)             858     9090225   0.0      2.33900000      2.063361e-24                   unknown           0      0.00000000  K0                    370         311   0.0      0.49761400      0.000000e+00                        K0         311      0.00000000  K~0                   371        -311   0.0      0.49761400      0.000000e+00                   anti-K0        -311      0.00000000  KS0                    16         310   0.0      0.49761400      8.956400e-11                      K_S0         310      0.00000000  KL0                    10         130   0.0      0.49761400      5.116000e-08                      K_L0         130      0.00000000  K+                     11         321   1.0      0.49367700      1.238000e-08                        K+         321      0.00000000  K-                     12        -321  -1.0      0.49367700      1.238000e-08                        K-        -321      0.00000000  K*(892)0               40         313   0.0      0.89581000      1.388633e-23                       K*0         313      0.00000000  K*(892)~0              41        -313   0.0      0.89581000      1.388633e-23                  anti-K*0        -313      0.00000000  K*(892)+               38         323   1.0      0.89166000      1.295693e-23                       K*+         323      0.00000000  K*(892)-               39        -323  -1.0      0.89166000      1.295693e-23                       K*-        -323      0.00000000  K_1(1270)0            141       10313   0.0      1.27200000      7.313469e-24                      K_10       10313      0.00000000  K_1(1270)~0           142      -10313   0.0      1.27200000      7.313469e-24                 anti-K_10      -10313      0.00000000  K_1(1270)+            139       10323   1.0      1.27200000      7.313469e-24                      K_1+       10323      0.00000000  K_1(1270)-            140      -10323  -1.0      1.27200000      7.313469e-24                      K_1-      -10323      0.00000000  K_1(1400)0            145       20313   0.0      1.40300000      3.782829e-24                     K'_10       20313      0.00000000  K_1(1400)~0           146      -20313   0.0      1.40300000      3.782829e-24                anti-K'_10      -20313      0.00000000  K_1(1400)+            143       20323   1.0      1.40300000      3.782829e-24                     K'_1+       20323      0.00000000  K_1(1400)-            144      -20323  -1.0      1.40300000      3.782829e-24                     K'_1-      -20323      0.00000000  K*(1410)0             816      100313   0.0      1.41400000      2.837122e-24                      K'*0           0      0.00000000  K*(1410)~0            817     -100313   0.0      1.41400000      2.837122e-24                 anti-K'*0           0      0.00000000  K*(1410)+             822      100323   1.0      1.41400000      2.837122e-24                      K'*+           0      0.00000000  K*(1410)-             823     -100323  -1.0      1.41400000      2.837122e-24                      K'*-           0      0.00000000  K*_0(1430)0           149       10311   0.0      1.42500000      2.437823e-24                     K_0*0       10311      0.00000000  K*_0(1430)~0          150      -10311   0.0      1.42500000      2.437823e-24                anti-K_0*0      -10311      0.00000000  K*_0(1430)+           147       10321   1.0      1.42500000      2.437823e-24                     K_0*+       10321      0.00000000  K*_0(1430)-           148      -10321  -1.0      1.42500000      2.437823e-24                     K_0*-      -10321      0.00000000  K*_2(1430)0           153         315   0.0      1.43240000      6.038644e-24                     K_2*0         315      0.00000000  K*_2(1430)~0          154        -315   0.0      1.43240000      6.038644e-24                anti-K_2*0        -315      0.00000000  K*_2(1430)+           151         325   1.0      1.42560000      6.682357e-24                     K_2*+         325      0.00000000  K*_2(1430)-           152        -325  -1.0      1.42560000      6.682357e-24                     K_2*-        -325      0.00000000  K(1460)0              814      100311   0.0      1.43240000      0.000000e+00                   unknown           0      0.00000000  K(1460)~0             815     -100311   0.0      1.43240000      0.000000e+00                   unknown           0      0.00000000  K(1460)+              820      100321   1.0      1.43240000      0.000000e+00                   unknown           0      0.00000000  K(1460)-              821     -100321  -1.0      1.43240000      0.000000e+00                   unknown           0      0.00000000  K*(1680)0             747       30313   0.0      1.71700000      2.056913e-24                     K''*0           0      0.00000000  K*(1680)~0            748      -30313   0.0      1.71700000      2.056913e-24                anti-K''*0           0      0.00000000  K*(1680)+             749       30323   1.0      1.71700000      2.056913e-24                     K''*+           0      0.00000000  K*(1680)-             750      -30323  -1.0      1.71700000      2.056913e-24                     K''*-           0      0.00000000  K_2(1770)0            599       10315   0.0      1.77300000      3.538775e-24                   unknown           0      0.00000000  K_2(1770)~0           600      -10315   0.0      1.77300000      3.538775e-24                   unknown           0      0.00000000  K_2(1770)+            601       10325   1.0      1.77300000      3.538775e-24                   unknown           0      0.00000000  K_2(1770)-            602      -10325  -1.0      1.77300000      3.538775e-24                   unknown           0      0.00000000  K*_3(1780)0           372         317   0.0      1.77600000      4.139699e-24                     K_3*0           0      0.00000000  K*_3(1780)~0          373        -317   0.0      1.77600000      4.139699e-24                anti-K_3*0           0      0.00000000  K*_3(1780)+           376         327   1.0      1.77600000      4.139699e-24                     K_3*+           0      0.00000000  K*_3(1780)-           377        -327  -1.0      1.77600000      4.139699e-24                     K_3*-           0      0.00000000  K_2(1820)0            688       20315   0.0      1.81600000      2.384827e-24                   unknown           0      0.00000000  K_2(1820)~0           689      -20315   0.0      1.81600000      2.384827e-24                   unknown           0      0.00000000  K_2(1820)+            690       20325   1.0      1.81600000      2.384827e-24                   unknown           0      0.00000000  K_2(1820)-            691      -20325  -1.0      1.81600000      2.384827e-24                   unknown           0      0.00000000  K*_2(1980)0           818      100315   0.0      1.97300000      0.000000e+00                   unknown           0      0.00000000  K*_2(1980)~0          819     -100315   0.0      1.97300000      0.000000e+00                   unknown           0      0.00000000  K*_2(1980)+           824      100325   1.0      1.97300000      0.000000e+00                   unknown           0      0.00000000  K*_2(1980)-           825     -100325  -1.0      1.97300000      0.000000e+00                   unknown           0      0.00000000  K*_4(2045)0           374         319   0.0      2.04500000      3.324304e-24                     K_4*0           0      0.00000000  K*_4(2045)~0          375        -319   0.0      2.04500000      3.324304e-24                anti-K_4*0           0      0.00000000  K*_4(2045)+           378         329   1.0      2.04500000      3.324304e-24                     K_4*+           0      0.00000000  K*_4(2045)-           379        -329  -1.0      2.04500000      3.324304e-24                     K_4*-           0      0.00000000  D0                     58         421   0.0      1.86484000      4.101000e-13                        D0         421      0.00000000  D~0                    59        -421   0.0      1.86484000      4.101000e-13                   anti-D0        -421      0.00000000  D+                     56         411   1.0      1.86961000      1.040000e-12                        D+         411      0.00000000  D-                     57        -411  -1.0      1.86961000      1.040000e-12                        D-        -411      0.00000000  D*(2007)0              67         423   0.0      2.00696000      1.000003e-19                       D*0         423      0.00000000  D*(2007)~0             68        -423   0.0      2.00696000      1.000003e-19                  anti-D*0        -423      0.00000000  D*(2010)+              65         413   1.0      2.01026000      7.892230e-21                       D*+         413      0.00000000  D*(2010)-              66        -413  -1.0      2.01026000      7.892230e-21                       D*-        -413      0.00000000  D*_0+                 155       10411   1.0      2.31800000      2.465213e-24                     D_0*+       10411      0.00000000  D*_0-                 159      -10411  -1.0      2.31800000      2.465213e-24                     D_0*-      -10411      0.00000000  D*_00                 163       10421   0.0      2.31800000      2.465213e-24                     D_0*0       10421      0.00000000  D*_0~0                167      -10421   0.0      2.31800000      2.465213e-24                anti-D_0*0      -10421      0.00000000  D_1(H)0               164       20423   0.0      2.44500000      2.630000e-24                     D'_10       20423      0.00000000  D_1(H)~0              168      -20423   0.0      2.44500000      2.630000e-24                anti-D'_10      -20423      0.00000000  D_1(H)+               156       20413   1.0      2.44500000      2.630000e-24                     D'_1+       20413      0.00000000  D_1(H)-               160      -20413  -1.0      2.44500000      2.630000e-24                     D'_1-      -20413      0.00000000  D_1(2420)0            165       10423   0.0      2.42140000      2.428827e-23                      D_10       10423      0.00000000  D_1(2420)~0           169      -10423   0.0      2.42140000      2.428827e-23                 anti-D_10      -10423      0.00000000  D_1(2420)+            157       10413   1.0      2.42300000      3.290000e-23                      D_1+       10413      0.00000000  D_1(2420)-            161      -10413  -1.0      2.42300000      3.290000e-23                      D_1-      -10413      0.00000000  D*_2(2460)0           170         425   0.0      2.46260000      1.343290e-23                     D_2*0         425      0.00000000  D*_2(2460)~0          166        -425   0.0      2.46260000      1.343290e-23                anti-D_2*0        -425      0.00000000  D*_2(2460)+           162         415   1.0      2.46430000      1.778952e-23                     D_2*+         415      0.00000000  D*_2(2460)-           158        -415  -1.0      2.46430000      1.778952e-23                     D_2*-        -415      0.00000000  D(2S)0                761      100421   0.0      2.58000000      0.000000e+00                    D(2S)0           0      0.00000000  D(2S)~0               762     -100421   0.0      2.58000000      0.000000e+00               anti-D(2S)0           0      0.00000000  D(2S)+                757      100411   1.0      2.58000000      0.000000e+00                    D(2S)+           0      0.00000000  D(2S)-                758     -100411  -1.0      2.58000000      0.000000e+00                    D(2S)-           0      0.00000000  D*(2640)0             763      100423   0.0      2.64000000      0.000000e+00                   D*(2S)0           0      0.00000000  D*(2640)~0            764     -100423   0.0      2.64000000      0.000000e+00              anti-D*(2S)0           0      0.00000000  D*(2640)+             759      100413   1.0      2.64000000      0.000000e+00                   D*(2S)+           0      0.00000000  D*(2640)-             760     -100413  -1.0      2.64000000      0.000000e+00                   D*(2S)-           0      0.00000000  D_s+                   60         431   1.0      1.96830000      5.000000e-13                      D_s+         431      0.00000000  D_s-                   61        -431  -1.0      1.96830000      5.000000e-13                      D_s-        -431      0.00000000  D*_s+                  69         433   1.0      2.11210000      1.000003e-19                     D_s*+         433      0.00000000  D*_s-                  70        -433  -1.0      2.11210000      1.000003e-19                     D_s*-        -433      0.00000000  D*_s0+                171       10431   1.0      2.31770000      6.582100e-22                    D_s0*+       10431      0.00000000  D*_s0-                175      -10431  -1.0      2.31770000      6.582100e-22                    D_s0*-      -10431      0.00000000  D_s1(2460)+           172       20433   1.0      2.45950000      6.582100e-22                     D_s1+       20433      0.00000000  D_s1(2460)-           176      -20433  -1.0      2.45950000      6.582100e-22                     D_s1-      -20433      0.00000000  D_s1(2536)+           173       10433   1.0      2.53510000      7.154480e-22                    D'_s1+       10433      0.00000000  D_s1(2536)-           177      -10433  -1.0      2.53510000      7.154480e-22                    D'_s1-      -10433      0.00000000  D*_s2+                174         435   1.0      2.57190000      3.871836e-23                    D_s2*+         435      0.00000000  D*_s2-                178        -435  -1.0      2.57190000      3.871836e-23                    D_s2*-        -435      0.00000000  B0                     73         511   0.0      5.27958000      1.519000e-12                        B0         511      0.00000000  B~0                    74        -511   0.0      5.27958000      1.519000e-12                   anti-B0        -511      0.00000000  B0H                 99998         510   0.0      5.27958000      1.519000e-12                       B0H           0      0.00000000  B0L                 99999         150   0.0      5.27958000      1.519000e-12                       B0L           0      0.00000000  B+                     71         521   1.0      5.27926000      1.638000e-12                        B+         521      0.00000000  B-                     72        -521  -1.0      5.27926000      1.638000e-12                        B-        -521      0.00000000  B*0                   189         513   0.0      5.32520000      1.000019e-19                       B*0         513      0.00000000  B*~0                  190        -513   0.0      5.32520000      1.000019e-19                  anti-B*0        -513      0.00000000  B*-                   187        -523  -1.0      5.32520000      1.000019e-19                       B*-        -523      0.00000000  B*+                   188         523   1.0      5.32520000      1.000019e-19                       B*+         523      0.00000000  B*_00                 201       10511   0.0      5.73800000      4.390000e-24                     B_0*0       10511      0.00000000  B*_0~0                205      -10511   0.0      5.73800000      4.390000e-24                anti-B_0*0      -10511      0.00000000  B*_0+                 193       10521   1.0      5.73800000      4.390000e-24                     B_0*+       10521      0.00000000  B*_0-                 197      -10521  -1.0      5.73800000      4.390000e-24                     B_0*-      -10521      0.00000000  B_1(H)0               202       20513   0.0      5.75700000      2.630000e-24                     B'_10       20513      0.00000000  B_1(H)~0              206      -20513   0.0      5.75700000      2.630000e-24                anti-B'_10      -20513      0.00000000  B_1(H)+               194       20523   1.0      5.75700000      2.630000e-24                     B'_1+       20523      0.00000000  B_1(H)-               198      -20523  -1.0      5.75700000      2.630000e-24                     B'_1-      -20523      0.00000000  B_1(L)0               203       10513   0.0      5.72340000      3.134000e-23                      B_10       10513      0.00000000  B_1(L)~0              207      -10513   0.0      5.72340000      3.134000e-23                 anti-B_10      -10513      0.00000000  B_1(L)+               195       10523   1.0      5.72340000      3.134000e-23                      B_1+       10523      0.00000000  B_1(L)-               199      -10523  -1.0      5.72340000      3.134000e-23                      B_1-      -10523      0.00000000  B*_20                 204         515   0.0      5.74300000      2.861792e-23                     B_2*0         515      0.00000000  B*_2~0                208        -515   0.0      5.74300000      2.861792e-23                anti-B_2*0        -515      0.00000000  B*_2+                 196         525   1.0      5.74300000      2.861792e-23                     B_2*+         525      0.00000000  B*_2-                 200        -525  -1.0      5.74300000      2.861792e-23                     B_2*-        -525      0.00000000  B_s0                   75         531   0.0      5.36677000      1.512000e-12                      B_s0         531      0.00000000  B_s~0                  76        -531   0.0      5.36677000      1.512000e-12                 anti-B_s0        -531      0.00000000  B_s0H               99996         530   0.0      5.36677000      1.661000e-12                     B_s0H           0      0.00000000  B_s0L               99997         350   0.0      5.36677000      1.405000e-12                     B_s0L           0      0.00000000  B*_s0                 191         533   0.0      5.41540000      1.000000e-19                     B_s*0         533      0.00000000  B*_s~0                192        -533   0.0      5.41540000      1.000000e-19                anti-B_s*0        -533      0.00000000  B*_s00                209       10531   0.0      5.84100000      4.390000e-24                    B_s0*0       10531      0.00000000  B*_s0~0               213      -10531   0.0      5.84100000      4.390000e-24               anti-B_s0*0      -10531      0.00000000  B_s1(H)0              210       20533   0.0      5.85900000      2.630000e-24                    B'_s10       20533      0.00000000  B_s1(H)~0             214      -20533   0.0      5.85900000      2.630000e-24               anti-B'_s10      -20533      0.00000000  B_s1(L)0              211       10533   0.0      5.82870000      1.316424e-21                     B_s10       10533      0.00000000  B_s1(L)~0             215      -10533   0.0      5.82870000      1.316424e-22                anti-B_s10      -10533      0.00000000  B*_s20                212         535   0.0      5.83996000      4.113825e-22                    B_s2*0         535      0.00000000  B*_s2~0               216        -535   0.0      5.83996000      4.113825e-22               anti-B_s2*0        -535      0.00000000  B_c+                   77         541   1.0      6.27370000      5.070000e-13                      B_c+         541      0.00000000  B_c-                   78        -541  -1.0      6.27370000      5.070000e-13                      B_c-        -541      0.00000000  B_c*+                 382         543   1.0      6.60200000      0.000000e+00                     B_c*+         543      0.00000000  B_c*-                 383        -543  -1.0      6.60200000      0.000000e+00                     B_c*-        -543      0.00000000  B_c0*+                607       10541   1.0      7.25000000      0.000000e+00                    B_c0*+       10541      0.00000000  B_c0*-                608      -10541  -1.0      7.25000000      0.000000e+00                    B_c0*-      -10541      0.00000000  B_c1(L)+              609       10543   1.0      7.30000000      0.000000e+00                     B_c1+       10543      0.00000000  B_c1(L)-              610      -10543  -1.0      7.30000000      0.000000e+00                     B_c1-      -10543      0.00000000  B_c1(H)+              693       20543   1.0      7.40000000      0.000000e+00                    B'_c1+       20543      0.00000000  B_c1(H)-              694      -20543  -1.0      7.40000000      0.000000e+00                    B'_c1-      -20543      0.00000000  B_c2*+                384         545   1.0      7.35000000      0.000000e+00                    B_c2*+         545      0.00000000  B_c2*-                385        -545  -1.0      7.35000000      0.000000e+00                    B_c2*-        -545      0.00000000  eta_c(1S)             128         441   0.0      2.98360000      2.216203e-23                     eta_c         441      0.00000000  J/psi(1S)              64         443   0.0      3.09691600      7.085169e-21                     J/psi         443      0.00000000  chi_c0(1P)            129       10441   0.0      3.41475000      6.328963e-23                    chi_c0       10441      0.00000000  chi_c1(1P)            130       20443   0.0      3.51066000      7.835857e-22                    chi_c1       20443      0.00000000  h_c(1P)               606       10443   0.0      3.52538000      9.403029e-22                       h_c       10443      0.00000000  chi_c2(1P)            131         445   0.0      3.55620000      3.410425e-22                    chi_c2         445      0.00000000  eta_c(2S)             829      100441   0.0      3.63940000      6.582122e-23                 eta_c(2S)      100441      0.00000000  psi(2S)               126      100443   0.0      3.68610900      2.201378e-21                   psi(2S)      100443      0.00000000  psi(3770)             765       30443   0.0      3.77315000      2.419898e-23                 psi(3770)       30443      0.00000000  chi_c2(2P)           1031      100445   0.0      3.92720000      2.742551e-23                chi_c2(2P)           0      0.00000000  psi(4040)             851     9000443   0.0      4.03900000      8.227652e-24                 psi(4040)           0      0.00000000  psi(4160)             853     9010443   0.0      4.19100000      9.403029e-24                 psi(4160)           0      0.00000000  psi(4415)             856     9020443   0.0      4.42100000      1.061633e-23                 psi(4415)           0      0.00000000  X_1(3872)            1016     9920443   0.0      3.87169000      2.076340e-21                 X_1(3872)     9920443      0.00000000  X_2(3872)            1017     9910445   0.0      3.87169000      2.076340e-21                 X_2(3872)     9910445      0.00000000  Z(4430)+             1018     9042413   1.0      4.43300000      2.076340e-21                  Z(4430)+     9042413      0.00000000  Z(4430)-             1019    -9042413  -1.0      4.43300000      2.076340e-21                  Z(4430)-    -9042413      0.00000000  eta_b(1S)             386         551   0.0      9.40300000      0.000000e+00                     eta_b         551      0.00000000  eta_b(2S)             830      100551   0.0      9.99700000      0.000000e+00                 eta_b(2S)           0      0.00000000  eta_b(3S)             843      200551   0.0     10.33500000      0.000000e+00                 eta_b(3S)           0      0.00000000  eta_b2(1D)            613       10555   0.0     10.15700000      0.000000e+00                eta_b2(1D)       10555      0.00000000  eta_b2(2D)            836      110555   0.0     10.44100000      0.000000e+00                eta_b2(2D)      110555      0.00000000  Upsilon(1S)           387         553   0.0      9.46030000      1.218911e-20                   Upsilon         553      0.00000000  Upsilon(2S)           831      100553   0.0     10.02326000      2.058199e-20               Upsilon(2S)      100553      0.00000000  Upsilon(3S)           844      200553   0.0     10.35520000      3.242425e-20               Upsilon(3S)      200553      0.00000000  Upsilon_1(1D)         766       30553   0.0     10.16370000      0.000000e+00             Upsilon_1(1D)       30553      0.00000000  Upsilon_1(2D)         839      130553   0.0     10.43490000      0.000000e+00             Upsilon_1(2D)      130553      0.00000000  Upsilon_2(1D)         696       20555   0.0     10.15620000      0.000000e+00             Upsilon_2(1D)       20555      0.00000000  Upsilon_2(2D)         838      120555   0.0     10.44060000      0.000000e+00             Upsilon_2(2D)      120555      0.00000000  Upsilon_3(1D)         389         557   0.0     10.15990000      0.000000e+00             Upsilon_3(1D)         557      0.00000000  Upsilon_3(2D)         833      100557   0.0     10.44430000      0.000000e+00             Upsilon_3(2D)      100557      0.00000000  Upsilon(4S)           849      300553   0.0     10.57940000      3.210791e-23               Upsilon(4S)      300553      0.00000000  Upsilon(10860)        852     9000553   0.0     10.87600000      1.196749e-23               Upsilon(5S)           0      0.00000000  Upsilon(11020)        854     9010553   0.0     11.01900000      8.331800e-24                   unknown           0      0.00000000  chi_b0(1P)            611       10551   0.0      9.85944000      0.000000e+00                    chi_b0       10551      0.00000000  chi_b0(2P)            834      110551   0.0     10.23250000      0.000000e+00                chi_b0(2P)      110551      0.00000000  chi_b0(3P)            846      210551   0.0     10.50040000      0.000000e+00                chi_b0(3P)      210551      0.00000000  chi_b1(3P)            848      220553   0.0     10.51570000      0.000000e+00                chi_b1(3P)      220553      0.00000000  chi_b1(1P)            695       20553   0.0      9.89278000      0.000000e+00                    chi_b1       20553      0.00000000  chi_b1(2P)            837      120553   0.0     10.25546000      0.000000e+00                chi_b1(2P)      120553      0.00000000  chi_b2(1P)            388         555   0.0      9.91221000      0.000000e+00                    chi_b2         555      0.00000000  chi_b2(2P)            832      100555   0.0     10.26865000      0.000000e+00                chi_b2(2P)      100555      0.00000000  chi_b2(3P)            845      200555   0.0     10.52620000      0.000000e+00                chi_b2(3P)      200555      0.00000000  h_b(1P)               612       10553   0.0      9.89930000      0.000000e+00                       h_b       10553      0.00000000  h_b(2P)               835      110553   0.0     10.25500000      0.000000e+00                   h_b(2P)      110553      0.00000000  h_b(3P)               847      210553   0.0     10.51600000      0.000000e+00                   h_b(3P)      210553      0.00000000  n0                     13        2112   0.0      0.93956538      8.803000e+02                        n0        2112      0.00000000  n~0                    25       -2112   0.0      0.93956538      8.803000e+02                   anti-n0       -2112      0.00000000  p+                     14        2212   1.0      0.93827205      1.000000e+16                        p+        2212      0.00000000  p~-                    15       -2212  -1.0      0.93827205      1.000000e+16                   anti-p-       -2212      0.00000000  N(1440)0              624       12112   0.0      1.43000000      2.194041e-24                  N(1440)0           0      0.00000000  N(1440)~0             625      -12112   0.0      1.43000000      2.194041e-24             anti-N(1440)0           0      0.00000000  N(1440)+              636       12212   1.0      1.43000000      2.194041e-24                  N(1440)+           0      0.00000000  N(1440)~-             637      -12212  -1.0      1.43000000      2.194041e-24             anti-N(1440)-           0      0.00000000  N(1520)0              404        1214   0.0      1.51500000      5.723584e-24                  N(1520)0           0      0.00000000  N(1520)~0             405       -1214   0.0      1.51500000      5.723584e-24             anti-N(1520)0           0      0.00000000  N(1520)+              420        2124   1.0      1.51500000      5.723584e-24                  N(1520)+           0      0.00000000  N(1520)~-             421       -2124  -1.0      1.51500000      5.723584e-24             anti-N(1520)-           0      0.00000000  N(1535)0              705       22112   0.0      1.53500000      4.388081e-24                  N(1535)0           0      0.00000000  N(1535)~0             706      -22112   0.0      1.53500000      4.388081e-24             anti-N(1535)0           0      0.00000000  N(1535)+              713       22212   1.0      1.53500000      4.388081e-24                  N(1535)+           0      0.00000000  N(1535)~-             714      -22212  -1.0      1.53500000      4.388081e-24             anti-N(1535)-           0      0.00000000  N(1650)0              771       32112   0.0      1.65500000      4.701514e-24                  N(1650)0           0      0.00000000  N(1650)~0             772      -32112   0.0      1.65500000      4.701514e-24             anti-N(1650)0           0      0.00000000  N(1650)+              777       32212   1.0      1.65500000      4.701514e-24                  N(1650)+           0      0.00000000  N(1650)~-             778      -32212  -1.0      1.65500000      4.701514e-24             anti-N(1650)-           0      0.00000000  N(1675)0              414        2116   0.0      1.67500000      4.388081e-24                  N(1675)0           0      0.00000000  N(1675)~0             415       -2116   0.0      1.67500000      4.388081e-24             anti-N(1675)0           0      0.00000000  N(1675)+              428        2216   1.0      1.67500000      4.388081e-24                  N(1675)+           0      0.00000000  N(1675)~-             429       -2216  -1.0      1.67500000      4.388081e-24             anti-N(1675)-           0      0.00000000  N(1680)0              628       12116   0.0      1.68500000      5.063171e-24                  N(1680)0           0      0.00000000  N(1680)~0             629      -12116   0.0      1.68500000      5.063171e-24             anti-N(1680)0           0      0.00000000  N(1680)+              640       12216   1.0      1.68500000      5.063171e-24                  N(1680)+           0      0.00000000  N(1680)~-             641      -12216  -1.0      1.68500000      5.063171e-24             anti-N(1680)-           0      0.00000000  N(1700)+              711       22124   1.0      1.70000000      4.388081e-24                  N(1700)+           0      0.00000000  N(1700)~-             712      -22124  -1.0      1.70000000      4.388081e-24             anti-N(1700)-           0      0.00000000  N(1700)0              703       21214   0.0      1.70000000      4.388081e-24                  N(1700)0           0      0.00000000  N(1700)~0             704      -21214   0.0      1.70000000      4.388081e-24             anti-N(1700)0           0      0.00000000  N(1710)0              791       42112   0.0      1.71000000      6.582122e-24                  N(1710)0           0      0.00000000  N(1710)~0             792      -42112   0.0      1.71000000      6.582122e-24             anti-N(1710)0           0      0.00000000  N(1710)+              795       42212   1.0      1.71000000      6.582122e-24                  N(1710)+           0      0.00000000  N(1710)~-             796      -42212  -1.0      1.71000000      6.582122e-24             anti-N(1710)-           0      0.00000000  N(1720)0              769       31214   0.0      1.72000000      2.632849e-24                  N(1720)0           0      0.00000000  N(1720)~0             770      -31214   0.0      1.72000000      2.632849e-24             anti-N(1720)0           0      0.00000000  N(1720)+              775       32124   1.0      1.72000000      2.632849e-24                  N(1720)+           0      0.00000000  N(1720)~-             776      -32124  -1.0      1.72000000      2.632849e-24             anti-N(1720)-           0      0.00000000  N(1900)0              789       41214   0.0      1.85000000      0.000000e+00                  N(1900)0           0      0.00000000  N(1900)~0             790      -41214   0.0      1.85000000      0.000000e+00             anti-N(1900)0           0      0.00000000  N(1900)+              793       42124   1.0      1.85000000      0.000000e+00                  N(1900)+           0      0.00000000  N(1900)~-             794      -42124  -1.0      1.85000000      0.000000e+00             anti-N(1900)-           0      0.00000000  N(1990)0              630       12118   0.0      1.95000000      0.000000e+00                  N(1990)0           0      0.00000000  N(1990)~0             631      -12118   0.0      1.95000000      0.000000e+00             anti-N(1990)0           0      0.00000000  N(1990)+              642       12218   1.0      1.95000000      0.000000e+00                  N(1990)+           0      0.00000000  N(1990)~-             643      -12218  -1.0      1.95000000      0.000000e+00             anti-N(1990)-           0      0.00000000  N(2090)0              799       52114   0.0      2.00000000      0.000000e+00                  N(2090)0           0      0.00000000  N(2090)~0             800      -52114   0.0      2.00000000      0.000000e+00             anti-N(2090)0           0      0.00000000  N(2090)+              801       52214   1.0      2.00000000      0.000000e+00                  N(2090)+           0      0.00000000  N(2090)~-             802      -52214  -1.0      2.00000000      0.000000e+00             anti-N(2090)-           0      0.00000000  N(2190)0              408        1218   0.0      2.19000000      1.316424e-24                  N(2190)0           0      0.00000000  N(2190)~0             409       -1218   0.0      2.19000000      1.316424e-24             anti-N(2190)0           0      0.00000000  N(2190)+              424        2128   1.0      2.19000000      1.316424e-24                  N(2190)+           0      0.00000000  N(2190)~-             425       -2128  -1.0      2.19000000      1.316424e-24             anti-N(2190)-           0      0.00000000  Delta-                182        1114  -1.0      1.23200000      5.625745e-24                    Delta-        1114      0.00000000  Delta~+               186       -1114   1.0      1.23200000      5.625745e-24               anti-Delta+       -1114      0.00000000  Delta0                181        2114   0.0      1.23200000      5.625745e-24                    Delta0        2114      0.00000000  Delta~0               185       -2114   0.0      1.23200000      5.625745e-24               anti-Delta0       -2114      0.00000000  Delta+                180        2214   1.0      1.23200000      5.625745e-24                    Delta+        2214      0.00000000  Delta~-               184       -2214  -1.0      1.23200000      5.625745e-24               anti-Delta-       -2214      0.00000000  Delta++               179        2224   2.0      1.23200000      5.625745e-24                   Delta++        2224      0.00000000  Delta~--              183       -2224  -2.0      1.23200000      5.625745e-24              anti-Delta--       -2224      0.00000000  Delta(1600)-          767       31114  -1.0      1.60000000      2.056913e-24              Delta(1600)-           0      0.00000000  Delta(1600)~+         768      -31114   1.0      1.60000000      2.056913e-24         anti-Delta(1600)+           0      0.00000000  Delta(1600)0          773       32114   0.0      1.60000000      2.056913e-24              Delta(1600)0           0      0.00000000  Delta(1600)~0         774      -32114   0.0      1.60000000      2.056913e-24         anti-Delta(1600)0           0      0.00000000  Delta(1600)+          779       32214   1.0      1.60000000      2.056913e-24              Delta(1600)+           0      0.00000000  Delta(1600)~-         780      -32214  -1.0      1.60000000      2.056913e-24         anti-Delta(1600)-           0      0.00000000  Delta(1600)++         781       32224   2.0      1.60000000      2.056913e-24             Delta(1600)++           0      0.00000000  Delta(1600)~--        782      -32224  -2.0      1.60000000      2.056913e-24        anti-Delta(1600)--           0      0.00000000  Delta(1620)-          396        1112  -1.0      1.63000000      4.701516e-24              Delta(1620)-           0      0.00000000  Delta(1620)~+         397       -1112   1.0      1.63000000      4.701516e-24         anti-Delta(1620)+           0      0.00000000  Delta(1620)0          402        1212   0.0      1.63000000      4.701516e-24              Delta(1620)0           0      0.00000000  Delta(1620)~0         403       -1212   0.0      1.63000000      4.701516e-24         anti-Delta(1620)0           0      0.00000000  Delta(1620)+          418        2122   1.0      1.63000000      4.701516e-24              Delta(1620)+           0      0.00000000  Delta(1620)~-         419       -2122  -1.0      1.63000000      4.701516e-24         anti-Delta(1620)-           0      0.00000000  Delta(1620)++         432        2222   2.0      1.63000000      4.701516e-24             Delta(1620)++           0      0.00000000  Delta(1620)~--        433       -2222  -2.0      1.63000000      4.701516e-24        anti-Delta(1620)--           0      0.00000000  Delta(1700)-          616       11114  -1.0      1.70000000      2.194041e-24              Delta(1700)-           0      0.00000000  Delta(1700)~+         617      -11114   1.0      1.70000000      2.194041e-24         anti-Delta(1700)+           0      0.00000000  Delta(1700)0          626       12114   0.0      1.70000000      2.194041e-24              Delta(1700)0           0      0.00000000  Delta(1700)~0         627      -12114   0.0      1.70000000      2.194041e-24         anti-Delta(1700)0           0      0.00000000  Delta(1700)+          638       12214   1.0      1.70000000      2.194041e-24              Delta(1700)+           0      0.00000000  Delta(1700)~-         639      -12214  -1.0      1.70000000      2.194041e-24         anti-Delta(1700)-           0      0.00000000  Delta(1700)++         646       12224   2.0      1.70000000      2.194041e-24             Delta(1700)++           0      0.00000000  Delta(1700)~--        647      -12224  -2.0      1.70000000      2.194041e-24        anti-Delta(1700)--           0      0.00000000  Delta(1900)-          614       11112  -1.0      1.84000000      0.000000e+00              Delta(1900)-           0      0.00000000  Delta(1900)~+         615      -11112   1.0      1.84000000      0.000000e+00         anti-Delta(1900)+           0      0.00000000  Delta(1900)0          620       11212   0.0      1.93000000      1.880606e-24              Delta(1900)0           0      0.00000000  Delta(1900)~0         621      -11212   0.0      1.93000000      1.880606e-24         anti-Delta(1900)0           0      0.00000000  Delta(1900)+          632       12122   1.0      1.84000000      0.000000e+00              Delta(1900)+           0      0.00000000  Delta(1900)~-         633      -12122  -1.0      1.84000000      0.000000e+00         anti-Delta(1900)-           0      0.00000000  Delta(1900)++         644       12222   2.0      1.84000000      0.000000e+00             Delta(1900)++           0      0.00000000  Delta(1900)~--        645      -12222  -2.0      1.84000000      0.000000e+00        anti-Delta(1900)--           0      0.00000000  Delta(1905)-          398        1116  -1.0      1.88000000      1.994582e-24              Delta(1905)-           0      0.00000000  Delta(1905)~+         399       -1116   1.0      1.88000000      1.994582e-24         anti-Delta(1905)+           0      0.00000000  Delta(1905)0          406        1216   0.0      1.88000000      1.994582e-24              Delta(1905)0           0      0.00000000  Delta(1905)~0         407       -1216   0.0      1.88000000      1.994582e-24         anti-Delta(1905)0           0      0.00000000  Delta(1905)+          422        2126   1.0      1.88000000      1.994582e-24              Delta(1905)+           0      0.00000000  Delta(1905)~-         423       -2126  -1.0      1.88000000      1.994582e-24         anti-Delta(1905)-           0      0.00000000  Delta(1905)++         434        2226   2.0      1.88000000      1.994582e-24             Delta(1905)++           0      0.00000000  Delta(1905)~--        435       -2226  -2.0      1.88000000      1.994582e-24        anti-Delta(1905)--           0      0.00000000  Delta(1910)-          697       21112  -1.0      1.89000000      2.350758e-24              Delta(1910)-           0      0.00000000  Delta(1910)~+         698      -21112   1.0      1.89000000      2.350758e-24         anti-Delta(1910)+           0      0.00000000  Delta(1910)0          701       21212   0.0      1.89000000      2.350758e-24              Delta(1910)0           0      0.00000000  Delta(1910)~0         702      -21212   0.0      1.89000000      2.350758e-24         anti-Delta(1910)0           0      0.00000000  Delta(1910)+          709       22122   1.0      1.89000000      2.350758e-24              Delta(1910)+           0      0.00000000  Delta(1910)~-         710      -22122  -1.0      1.89000000      2.350758e-24         anti-Delta(1910)-           0      0.00000000  Delta(1910)++         717       22222   2.0      1.89000000      2.350758e-24             Delta(1910)++           0      0.00000000  Delta(1910)~--        718      -22222  -2.0      1.89000000      2.350758e-24        anti-Delta(1910)--           0      0.00000000  Delta(1920)-          699       21114  -1.0      1.92000000      2.531585e-24              Delta(1920)-           0      0.00000000  Delta(1920)~+         700      -21114   1.0      1.92000000      2.531585e-24         anti-Delta(1920)+           0      0.00000000  Delta(1920)0          707       22114   0.0      1.92000000      2.531585e-24              Delta(1920)0           0      0.00000000  Delta(1920)~0         708      -22114   0.0      1.92000000      2.531585e-24         anti-Delta(1920)0           0      0.00000000  Delta(1920)+          715       22214   1.0      1.92000000      2.531585e-24              Delta(1920)+           0      0.00000000  Delta(1920)~-         716      -22214  -1.0      1.92000000      2.531585e-24         anti-Delta(1920)-           0      0.00000000  Delta(1920)++         719       22224   2.0      1.92000000      2.531585e-24             Delta(1920)++           0      0.00000000  Delta(1920)~--        720      -22224  -2.0      1.92000000      2.531585e-24        anti-Delta(1920)--           0      0.00000000  Delta(1930)-          618       11116  -1.0      1.95000000      1.828367e-24              Delta(1930)-           0      0.00000000  Delta(1930)~+         619      -11116   1.0      1.95000000      1.828367e-24         anti-Delta(1930)+           0      0.00000000  Delta(1930)0          622       11216   0.0      1.95000000      1.828367e-24              Delta(1930)0           0      0.00000000  Delta(1930)~0         623      -11216   0.0      1.95000000      1.828367e-24         anti-Delta(1930)0           0      0.00000000  Delta(1930)+          634       12126   1.0      1.95000000      1.828367e-24              Delta(1930)+           0      0.00000000  Delta(1930)~-         635      -12126  -1.0      1.95000000      1.828367e-24         anti-Delta(1930)-           0      0.00000000  Delta(1930)++         648       12226   2.0      1.95000000      1.828367e-24             Delta(1930)++           0      0.00000000  Delta(1930)~--        649      -12226  -2.0      1.95000000      1.828367e-24        anti-Delta(1930)--           0      0.00000000  Delta(1950)-          400        1118  -1.0      1.93000000      2.350758e-24              Delta(1950)-           0      0.00000000  Delta(1950)~+         401       -1118   1.0      1.93000000      2.350758e-24         anti-Delta(1950)+           0      0.00000000  Delta(1950)0          416        2118   0.0      1.93000000      2.350758e-24              Delta(1950)0           0      0.00000000  Delta(1950)~0         417       -2118   0.0      1.93000000      2.350758e-24         anti-Delta(1950)0           0      0.00000000  Delta(1950)+          430        2218   1.0      1.93000000      2.350758e-24              Delta(1950)+           0      0.00000000  Delta(1950)~-         431       -2218  -1.0      1.93000000      2.350758e-24         anti-Delta(1950)-           0      0.00000000  Delta(1950)++         436        2228   2.0      1.93000000      2.350758e-24             Delta(1950)++           0      0.00000000  Delta(1950)~--        437       -2228  -2.0      1.93000000      2.350758e-24        anti-Delta(1950)--           0      0.00000000  Lambda0                18        3122   0.0      1.11568300      2.632000e-10                   Lambda0        3122      0.00000000  Lambda~0               26       -3122   0.0      1.11568300      2.632000e-10              anti-Lambda0       -3122      0.00000000  Lambda(1405)0         656       13122   0.0      1.40510000      1.316424e-23             Lambda(1405)0           0      0.00000000  Lambda(1405)~0        657      -13122   0.0      1.40510000      1.316424e-23        anti-Lambda(1405)0           0      0.00000000  Lambda(1520)0         448        3124   0.0      1.51950000      4.219309e-23             Lambda(1520)0           0      0.00000000  Lambda(1520)~0        449       -3124   0.0      1.51950000      4.219309e-23        anti-Lambda(1520)0           0      0.00000000  Lambda(1600)0         725       23122   0.0      1.60000000      4.388081e-24             Lambda(1600)0           0      0.00000000  Lambda(1600)~0        726      -23122   0.0      1.60000000      4.388081e-24        anti-Lambda(1600)0           0      0.00000000  Lambda(1670)0         783       33122   0.0      1.67000000      1.880606e-23             Lambda(1670)0           0      0.00000000  Lambda(1670)~0        784      -33122   0.0      1.67000000      1.880606e-23        anti-Lambda(1670)0           0      0.00000000  Lambda(1690)0         658       13124   0.0      1.69000000      1.097020e-23             Lambda(1690)0           0      0.00000000  Lambda(1690)~0        659      -13124   0.0      1.69000000      1.097020e-23        anti-Lambda(1690)0           0      0.00000000  Lambda(1800)0         797       43122   0.0      1.80000000      2.194041e-24             Lambda(1800)0           0      0.00000000  Lambda(1800)~0        798      -43122   0.0      1.80000000      2.194041e-24        anti-Lambda(1800)0           0      0.00000000  Lambda(1810)0         803       53122   0.0      1.81000000      4.388081e-24             Lambda(1810)0           0      0.00000000  Lambda(1810)~0        804      -53122   0.0      1.81000000      4.388081e-24        anti-Lambda(1810)0           0      0.00000000  Lambda(1820)0         450        3126   0.0      1.82000000      8.227652e-24             Lambda(1820)0           0      0.00000000  Lambda(1820)~0        451       -3126   0.0      1.82000000      8.227652e-24        anti-Lambda(1820)0           0      0.00000000  Lambda(1830)0         660       13126   0.0      1.83000000      6.928549e-24             Lambda(1830)0           0      0.00000000  Lambda(1830)~0        661      -13126   0.0      1.83000000      6.928549e-24        anti-Lambda(1830)0           0      0.00000000  Lambda(1890)0         727       23124   0.0      1.89000000      6.582122e-24             Lambda(1890)0           0      0.00000000  Lambda(1890)~0        728      -23124   0.0      1.89000000      6.582122e-24        anti-Lambda(1890)0           0      0.00000000  Lambda(2100)0         452        3128   0.0      2.10000000      3.291061e-24                   unknown           0      0.00000000  Lambda(2100)~0        453       -3128   0.0      2.10000000      3.291061e-24                   unknown           0      0.00000000  Lambda(2110)0         729       23126   0.0      2.11000000      3.291061e-24                   unknown           0      0.00000000  Lambda(2110)~0        730      -23126   0.0      2.11000000      3.291061e-24                   unknown           0      0.00000000  Sigma-                 21        3112  -1.0      1.19744900      1.479000e-10                    Sigma-        3112      0.00000000  Sigma~+                29       -3112   1.0      1.19744900      1.479000e-10               anti-Sigma+       -3112      0.00000000  Sigma0                 20        3212   0.0      1.19264200      7.400000e-20                    Sigma0        3212      0.00000000  Sigma~0                28       -3212   0.0      1.19264200      7.400000e-20               anti-Sigma0       -3212      0.00000000  Sigma+                 19        3222   1.0      1.18937000      8.018000e-11                    Sigma+        3222      0.00000000  Sigma~-                27       -3222  -1.0      1.18937000      8.018000e-11               anti-Sigma-       -3222      0.00000000  Sigma*-               442        3114  -1.0      1.38720000      1.670589e-23                   Sigma*-        3114      0.00000000  Sigma*~+              443       -3114   1.0      1.38720000      1.670589e-23              anti-Sigma*+       -3114      0.00000000  Sigma*0               458        3214   0.0      1.38370000      1.828367e-23                   Sigma*0        3214      0.00000000  Sigma*~0              459       -3214   0.0      1.38370000      1.828367e-23              anti-Sigma*0       -3214      0.00000000  Sigma*+               464        3224   1.0      1.38280000      1.828367e-23                   Sigma*+        3224      0.00000000  Sigma*~-              465       -3224  -1.0      1.38280000      1.828367e-23              anti-Sigma*-       -3224      0.00000000  Sigma(1660)-          650       13112  -1.0      1.66000000      6.582122e-24              Sigma(1660)-           0      0.00000000  Sigma(1660)~+         651      -13112   1.0      1.66000000      6.582122e-24         anti-Sigma(1660)+           0      0.00000000  Sigma(1660)0          662       13212   0.0      1.66000000      6.582122e-24              Sigma(1660)0           0      0.00000000  Sigma(1660)~0         663      -13212   0.0      1.66000000      6.582122e-24         anti-Sigma(1660)0           0      0.00000000  Sigma(1660)+          668       13222   1.0      1.66000000      6.582122e-24              Sigma(1660)+           0      0.00000000  Sigma(1660)~-         669      -13222  -1.0      1.66000000      6.582122e-24         anti-Sigma(1660)-           0      0.00000000  Sigma(1670)-          652       13114  -1.0      1.67000000      1.097020e-23              Sigma(1670)-           0      0.00000000  Sigma(1670)~+         653      -13114   1.0      1.67000000      1.097020e-23         anti-Sigma(1670)+           0      0.00000000  Sigma(1670)0          664       13214   0.0      1.67000000      1.097020e-23              Sigma(1670)0           0      0.00000000  Sigma(1670)~0         665      -13214   0.0      1.67000000      1.097020e-23         anti-Sigma(1670)0           0      0.00000000  Sigma(1670)+          670       13224   1.0      1.67000000      1.097020e-23              Sigma(1670)+           0      0.00000000  Sigma(1670)~-         671      -13224  -1.0      1.67000000      1.097020e-23         anti-Sigma(1670)-           0      0.00000000  Sigma(1750)-          721       23112  -1.0      1.75000000      7.313469e-24              Sigma(1750)-           0      0.00000000  Sigma(1750)~+         722      -23112   1.0      1.75000000      7.313469e-24         anti-Sigma(1750)+           0      0.00000000  Sigma(1750)0          731       23212   0.0      1.75000000      7.313469e-24              Sigma(1750)0           0      0.00000000  Sigma(1750)~0         732      -23212   0.0      1.75000000      7.313469e-24         anti-Sigma(1750)0           0      0.00000000  Sigma(1750)+          735       23222   1.0      1.75000000      7.313469e-24              Sigma(1750)+           0      0.00000000  Sigma(1750)~-         736      -23222  -1.0      1.75000000      7.313469e-24         anti-Sigma(1750)-           0      0.00000000  Sigma(1775)-          444        3116  -1.0      1.77500000      5.485102e-24              Sigma(1775)-           0      0.00000000  Sigma(1775)~+         445       -3116   1.0      1.77500000      5.485102e-24         anti-Sigma(1775)+           0      0.00000000  Sigma(1775)0          460        3216   0.0      1.77500000      5.485102e-24              Sigma(1775)0           0      0.00000000  Sigma(1775)~0         461       -3216   0.0      1.77500000      5.485102e-24         anti-Sigma(1775)0           0      0.00000000  Sigma(1775)+          466        3226   1.0      1.77500000      5.485102e-24              Sigma(1775)+           0      0.00000000  Sigma(1775)~-         467       -3226  -1.0      1.77500000      5.485102e-24         anti-Sigma(1775)-           0      0.00000000  Sigma(1915)-          654       13116  -1.0      1.91500000      5.485102e-24              Sigma(1915)-           0      0.00000000  Sigma(1915)~+         655      -13116   1.0      1.91500000      5.485102e-24         anti-Sigma(1915)+           0      0.00000000  Sigma(1915)0          666       13216   0.0      1.91500000      5.485102e-24              Sigma(1915)0           0      0.00000000  Sigma(1915)~0         667      -13216   0.0      1.91500000      5.485102e-24         anti-Sigma(1915)0           0      0.00000000  Sigma(1915)+          672       13226   1.0      1.91500000      5.485102e-24              Sigma(1915)+           0      0.00000000  Sigma(1915)~-         673      -13226  -1.0      1.91500000      5.485102e-24         anti-Sigma(1915)-           0      0.00000000  Sigma(1940)-          723       23114  -1.0      1.94000000      2.991874e-24              Sigma(1940)-           0      0.00000000  Sigma(1940)~+         724      -23114   1.0      1.94000000      2.991874e-24         anti-Sigma(1940)+           0      0.00000000  Sigma(1940)0          733       23214   0.0      1.94000000      2.991874e-24              Sigma(1940)0           0      0.00000000  Sigma(1940)~0         734      -23214   0.0      1.94000000      2.991874e-24         anti-Sigma(1940)0           0      0.00000000  Sigma(1940)+          737       23224   1.0      1.94000000      2.991874e-24              Sigma(1940)+           0      0.00000000  Sigma(1940)~-         738      -23224  -1.0      1.94000000      2.991874e-24         anti-Sigma(1940)-           0      0.00000000  Sigma(2030)0          462        3218   0.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)~0         463       -3218   0.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)+          468        3228   1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)~-         469       -3228  -1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)-          446        3118  -1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)~+         447       -3118   1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2250)0         1059      103212   0.0      2.25000000      6.580000e-24              Sigma(2250)0           0      0.00000000  Sigma(2250)~0        1060     -103212   0.0      2.25000000      6.580000e-24         anti-Sigma(2250)0           0      0.00000000  Sigma(2250)+         1061      103222   1.0      2.25000000      6.580000e-24              Sigma(2250)+           0      0.00000000  Sigma(2250)~-        1062     -103222  -1.0      2.25000000      6.580000e-24         anti-Sigma(2250)-           0      0.00000000  Sigma(2250)-         1063      103112  -1.0      2.25000000      6.580000e-24              Sigma(2250)-           0      0.00000000  Sigma(2250)~+        1064     -103112   1.0      2.25000000      6.580000e-24         anti-Sigma(2250)+           0      0.00000000  Xi-                    23        3312  -1.0      1.32171000      1.639000e-10                       Xi-        3312      0.00000000  Xi~+                   31       -3312   1.0      1.32171000      1.639000e-10                  anti-Xi+       -3312      0.00000000  Xi0                    22        3322   0.0      1.31486000      2.900000e-10                       Xi0        3322      0.00000000  Xi~0                   30       -3322   0.0      1.31486000      2.900000e-10                  anti-Xi0       -3322      0.00000000  Xi*-                  472        3314  -1.0      1.53500000      6.648608e-23                      Xi*-        3314      0.00000000  Xi*~+                 473       -3314   1.0      1.53500000      6.648608e-23                 anti-Xi*+       -3314      0.00000000  Xi*0                  474        3324   0.0      1.53180000      7.233101e-23                      Xi*0        3324      0.00000000  Xi*~0                 475       -3324   0.0      1.53180000      7.233101e-23                 anti-Xi*0       -3324      0.00000000  Xi(1690)-            1033      203312  -1.0      1.69000000      0.000000e+00                 Xi(1690)-           0      0.00000000  Xi(1690)~+           1034     -203312   1.0      1.69000000      0.000000e+00            anti-Xi(1690)+           0      0.00000000  Xi(1690)0            1035      203322   0.0      1.69000000      0.000000e+00                 Xi(1690)0           0      0.00000000  Xi(1690)~0           1036     -203322   0.0      1.69000000      0.000000e+00            anti-Xi(1690)0           0      0.00000000  Xi(1820)-             674       13314  -1.0      1.82300000      2.742551e-23                   unknown           0      0.00000000  Xi(1820)~+            675      -13314   1.0      1.82300000      2.742551e-23                   unknown           0      0.00000000  Xi(1820)0             678       13324   0.0      1.82300000      2.742551e-23                   unknown           0      0.00000000  Xi(1820)~0            679      -13324   0.0      1.82300000      2.742551e-23                   unknown           0      0.00000000  Xi(1950)-            1037      103316  -1.0      1.95000000      1.097020e-23                 Xi(1950)-           0      0.00000000  Xi(1950)~+           1038     -103316   1.0      1.95000000      1.097020e-23            anti-Xi(1950)+           0      0.00000000  Xi(1950)0            1039      103326   0.0      1.95000000      1.097020e-23                 Xi(1950)0           0      0.00000000  Xi(1950)~0           1040     -103326   0.0      1.95000000      1.097020e-23            anti-Xi(1950)0           0      0.00000000  Xi(2030)-            1041      203316  -1.0      2.02500000      3.291061e-23                 Xi(2030)-           0      0.00000000  Xi(2030)~+           1042     -203316   1.0      2.02500000      3.291061e-23            anti-Xi(2030)+           0      0.00000000  Xi(2030)0            1043      203326   0.0      2.02500000      3.291061e-23                 Xi(2030)0           0      0.00000000  Xi(2030)~0           1044     -203326   0.0      2.02500000      3.291061e-23            anti-Xi(2030)0           0      0.00000000  Omega-                 24        3334  -1.0      1.67245000      8.210000e-11                    Omega-        3334      0.00000000  Omega~+                32       -3334   1.0      1.67245000      8.210000e-11               anti-Omega+       -3334      0.00000000  Omega(2250)-         1045      203338  -1.0      2.25200000      1.196749e-23              Omega(2250)-           0      0.00000000  Omega(2250)~+        1046     -203338   1.0      2.25200000      1.196749e-23         anti-Omega(2250)+           0      0.00000000  Lambda_c+              62        4122   1.0      2.28646000      2.000000e-13                 Lambda_c+        4122      0.00000000  Lambda_c~-             63       -4122  -1.0      2.28646000      2.000000e-13            anti-Lambda_c-       -4122      0.00000000  Lambda_c(2595)+       682       14122   1.0      2.59225000      2.531585e-22           Lambda_c(2593)+           0      0.00000000  Lambda_c(2595)~-      683      -14122  -1.0      2.59225000      2.531585e-22      anti-Lambda_c(2593)-           0      0.00000000  Lambda_c(2625)+      1047      104124   1.0      2.62811000      0.000000e+00           Lambda_c(2625)+           0      0.00000000  Lambda_c(2625)~-     1048     -104124  -1.0      2.62811000      0.000000e+00      anti-Lambda_c(2625)-           0      0.00000000  Lambda_c(2880)+      1049      204126   1.0      2.88153000      1.134849e-22           Lambda_c(2880)+           0      0.00000000  Lambda_c(2880)~-     1050     -204126  -1.0      2.88153000      1.134849e-22      anti-Lambda_c(2880)-           0      0.00000000  Sigma_c0               81        4112   0.0      2.45374000      3.047279e-22                  Sigma_c0        4112      0.00000000  Sigma_c~0              82       -4112   0.0      2.45374000      3.047279e-22             anti-Sigma_c0       -4112      0.00000000  Sigma_c+               83        4212   1.0      2.45290000      3.999999e-22                  Sigma_c+        4212      0.00000000  Sigma_c~-              84       -4212  -1.0      2.45290000      3.999999e-22             anti-Sigma_c-       -4212      0.00000000  Sigma_c++              85        4222   2.0      2.45398000      2.912443e-22                 Sigma_c++        4222      0.00000000  Sigma_c~--             86       -4222  -2.0      2.45398000      2.912443e-22            anti-Sigma_c--       -4222      0.00000000  Sigma_c*0             480        4114   0.0      2.51880000      4.539394e-23                 Sigma_c*0        4114      0.00000000  Sigma_c*~0            481       -4114   0.0      2.51880000      4.539394e-23            anti-Sigma_c*0       -4114      0.00000000  Sigma_c*+             486        4214   1.0      2.51750000      3.291061e-22                 Sigma_c*+        4214      0.00000000  Sigma_c*~-            487       -4214  -1.0      2.51750000      3.291061e-22            anti-Sigma_c*-       -4214      0.00000000  Sigma_c*++            488        4224   2.0      2.51790000      4.417531e-23                Sigma_c*++        4224      0.00000000  Sigma_c*~--           489       -4224  -2.0      2.51790000      4.417531e-23           anti-Sigma_c*--       -4224      0.00000000  Xi_c0                 106        4132   0.0      2.47088000      1.120000e-13                     Xi_c0        4132      0.00000000  Xi_c~0                107       -4132   0.0      2.47088000      1.120000e-13                anti-Xi_c0       -4132      0.00000000  Xi_c+                 108        4232   1.0      2.46780000      4.420000e-13                     Xi_c+        4232      0.00000000  Xi_c~-                109       -4232  -1.0      2.46780000      4.420000e-13                anti-Xi_c-       -4232      0.00000000  Xi'_c0                100        4312   0.0      2.57790000      0.000000e+00                    Xi'_c0        4312      0.00000000  Xi'_c~0               101       -4312   0.0      2.57790000      0.000000e+00               anti-Xi'_c0       -4312      0.00000000  Xi'_c+                102        4322   1.0      2.57560000      0.000000e+00                    Xi'_c+        4322      0.00000000  Xi'_c~-               103       -4322  -1.0      2.57560000      0.000000e+00               anti-Xi'_c-       -4322      0.00000000  Xi_c*0                494        4314   0.0      2.64590000      0.000000e+00                    Xi_c*0        4314      0.00000000  Xi_c*~0               495       -4314   0.0      2.64590000      0.000000e+00               anti-Xi_c*0       -4314      0.00000000  Xi_c*+                496        4324   1.0      2.64590000      0.000000e+00                    Xi_c*+        4324      0.00000000  Xi_c*~-               497       -4324  -1.0      2.64590000      0.000000e+00               anti-Xi_c*-       -4324      0.00000000  Xi_c(2790)+          1051      104324   1.0      2.78910000      0.000000e+00               Xi_c(2790)+           0      0.00000000  Xi_c(2790)~-         1052     -104324  -1.0      2.78910000      0.000000e+00          anti-Xi_c(2790)-           0      0.00000000  Xi_c(2790)0          1053      104314   0.0      2.79180000      0.000000e+00               Xi_c(2790)0           0      0.00000000  Xi_c(2790)~0         1054     -104314   0.0      2.79180000      0.000000e+00          anti-Xi_c(2790)0           0      0.00000000  Xi_c(2815)+          1055      104322   1.0      2.81660000      0.000000e+00               Xi_c(2815)+           0      0.00000000  Xi_c(2815)~-         1056     -104322  -1.0      2.81660000      0.000000e+00          anti-Xi_c(2815)-           0      0.00000000  Xi_c(2815)0          1057      104312   0.0      2.81960000      0.000000e+00               Xi_c(2815)0           0      0.00000000  Xi_c(2815)~0         1058     -104312   0.0      2.81960000      0.000000e+00          anti-Xi_c(2815)0           0      0.00000000  Omega_c0              104        4332   0.0      2.69520000      6.900000e-14                  Omega_c0        4332      0.00000000  Omega_c~0             105       -4332   0.0      2.69520000      6.900000e-14             anti-Omega_c0       -4332      0.00000000  Omega_c*0             498        4334   0.0      2.76590000      0.000000e+00                 Omega_c*0        4334      0.00000000  Omega_c*~0            499       -4334   0.0      2.76590000      0.000000e+00            anti-Omega_c*0       -4334      0.00000000  Xi_cc+                502        4412   1.0      3.62140000      3.335641e-13                    Xi_cc+        4412      0.00000000  Xi_cc~-               503       -4412  -1.0      3.62140000      3.335641e-13               anti-Xi_cc-       -4412      0.00000000  Xi*_cc+               504        4414   1.0      3.65648000      0.000000e+00                   Xi_cc*+        4414      0.00000000  Xi*_cc~-              505       -4414  -1.0      3.65648000      0.000000e+00              anti-Xi_cc*-       -4414      0.00000000  Xi_cc++               506        4422   2.0      3.62140000      3.335641e-13                   Xi_cc++        4422      0.00000000  Xi_cc~--              507       -4422  -2.0      3.62140000      3.335641e-13              anti-Xi_cc--       -4422      0.00000000  Xi*_cc++              508        4424   2.0      3.65648000      0.000000e+00                  Xi_cc*++        4424      0.00000000  Xi*_cc~--             509       -4424  -2.0      3.65648000      0.000000e+00             anti-Xi_cc*--       -4424      0.00000000  Omega_cc+             510        4432   1.0      3.78663000      3.335641e-13                 Omega_cc+        4432      0.00000000  Omega_cc~-            511       -4432  -1.0      3.78663000      3.335641e-13            anti-Omega_cc-       -4432      0.00000000  Omega*_cc+            512        4434   1.0      3.82466000      0.000000e+00                Omega_cc*+        4434      0.00000000  Omega*_cc~-           513       -4434  -1.0      3.82466000      0.000000e+00           anti-Omega_cc*-       -4434      0.00000000  Omega*_ccc++          514        4444   2.0      4.91594000      0.000000e+00                   unknown        4444      0.00000000  Omega*_ccc~--         515       -4444  -2.0      4.91594000      0.000000e+00                   unknown       -4444      0.00000000  Lambda_b0              79        5122   0.0      5.61950000      1.451000e-12                 Lambda_b0        5122      0.00000000  Lambda_b~0             80       -5122   0.0      5.61950000      1.451000e-12            anti-Lambda_b0       -5122      0.00000000  Lambda_b(5912)0      1065       15122   0.0      5.91197000      1.316000e-21           Lambda_b(5912)0       15122      0.00000000  Lambda_b(5912)~0     1066      -15122   0.0      5.91197000      1.316000e-21      anti-Lambda_b(5912)0      -15122      0.00000000  Lambda_b(5920)0      1067        5124   0.0      5.91977000      1.316000e-21           Lambda_b(5920)0        5124      0.00000000  Lambda_b(5920)~0     1068       -5124   0.0      5.91977000      1.316000e-21      anti-Lambda_b(5920)0       -5124      0.00000000  Sigma_b-              114        5112  -1.0      5.81550000      1.343290e-22                  Sigma_b-        5112      0.00000000  Sigma_b~+             115       -5112   1.0      5.81550000      1.343290e-22             anti-Sigma_b+       -5112      0.00000000  Sigma_b0              112        5212   0.0      5.80780000      1.000000e-19                  Sigma_b0        5212      0.00000000  Sigma_b~0             113       -5212   0.0      5.80780000      1.000000e-19             anti-Sigma_b0       -5212      0.00000000  Sigma_b+              110        5222   1.0      5.81130000      6.785693e-23                  Sigma_b+        5222      0.00000000  Sigma_b~-             111       -5222  -1.0      5.81130000      6.785693e-23             anti-Sigma_b-       -5222      0.00000000  Sigma_b*-             520        5114  -1.0      5.83510000      8.776160e-23                 Sigma_b*-        5114      0.00000000  Sigma_b*~+            521       -5114   1.0      5.83510000      8.776160e-23            anti-Sigma_b*+       -5114      0.00000000  Sigma_b*0             528        5214   0.0      5.82900000      0.000000e+00                 Sigma_b*0        5214      0.00000000  Sigma_b*~0            529       -5214   0.0      5.82900000      0.000000e+00            anti-Sigma_b*0       -5214      0.00000000  Sigma_b*+             530        5224   1.0      5.83210000      5.723583e-23                 Sigma_b*+        5224      0.00000000  Sigma_b*~-            531       -5224  -1.0      5.83210000      5.723583e-23            anti-Sigma_b*-       -5224      0.00000000  Xi_b-                 122        5132  -1.0      5.79490000      1.560000e-12                     Xi_b-        5132      0.00000000  Xi_b~+                123       -5132   1.0      5.79490000      1.560000e-12                anti-Xi_b+       -5132      0.00000000  Xi_b0                 124        5232   0.0      5.79310000      1.490000e-12                     Xi_b0        5232      0.00000000  Xi_b~0                125       -5232   0.0      5.79310000      1.490000e-12                anti-Xi_b0       -5232      0.00000000  Xi'_b-                116        5312  -1.0      5.96000000      1.000000e-19                    Xi'_b-        5312      0.00000000  Xi'_b~+               117       -5312   1.0      5.96000000      1.000000e-19               anti-Xi'_b+       -5312      0.00000000  Xi'_b0                118        5322   0.0      5.96000000      1.000000e-19                    Xi'_b0        5322      0.00000000  Xi'_b~0               119       -5322   0.0      5.96000000      1.000000e-19               anti-Xi'_b0       -5322      0.00000000  Xi_b*-                538        5314  -1.0      5.97000000      0.000000e+00                    Xi_b*-        5314      0.00000000  Xi_b*~+               539       -5314   1.0      5.97000000      0.000000e+00               anti-Xi_b*+       -5314      0.00000000  Xi_b*0                540        5324   0.0      5.97000000      0.000000e+00                    Xi_b*0        5324      0.00000000  Xi_b*~0               541       -5324   0.0      5.97000000      0.000000e+00               anti-Xi_b*0       -5324      0.00000000  Omega_b*-             542        5334  -1.0      6.13000000      0.000000e+00                 Omega_b*-        5334      0.00000000  Omega_b*~+            543       -5334   1.0      6.13000000      0.000000e+00            anti-Omega_b*+       -5334      0.00000000  Omega_b-              120        5332  -1.0      6.04880000      1.100000e-12                  Omega_b-        5332      0.00000000  Omega_b~+             121       -5332   1.0      6.04880000      1.100000e-12             anti-Omega_b+       -5332      0.00000000  Xi_bc0                522        5142   0.0      6.90000000      0.500000e-12                    Xi_bc0        5142      0.00000000  Xi_bc~0               523       -5142   0.0      6.90000000      0.500000e-12               anti-Xi_bc0       -5142      0.00000000  Xi_bc+                532        5242   1.0      6.90000000      0.500000e-12                    Xi_bc+        5242      0.00000000  Xi_bc~-               533       -5242  -1.0      6.90000000      0.500000e-12               anti-Xi_bc-       -5242      0.00000000  Omega_bc0             544        5342   0.0      7.19099000      0.500000e-12                   unknown        5342      0.00000000  Omega_bc~0            545       -5342   0.0      7.19099000      0.500000e-12                   unknown       -5342      0.00000000  Xi'_bc0               550        5412   0.0      7.03724000      0.000000e+00                   unknown        5412      0.00000000  Xi'_bc~0              551       -5412   0.0      7.03724000      0.000000e+00                   unknown       -5412      0.00000000  Xi*_bc0               552        5414   0.0      7.04850000      0.000000e+00                   unknown        5414      0.00000000  Xi*_bc~0              553       -5414   0.0      7.04850000      0.000000e+00                   unknown       -5414      0.00000000  Xi'_bc+               554        5422   1.0      7.03724000      0.000000e+00                   unknown        5422      0.00000000  Xi'_bc~-              555       -5422  -1.0      7.03724000      0.000000e+00                   unknown       -5422      0.00000000  Xi*_bc+               556        5424   1.0      7.04850000      0.000000e+00                   unknown        5424      0.00000000  Xi*_bc~-              557       -5424  -1.0      7.04850000      0.000000e+00                   unknown       -5424      0.00000000  Omega'_bc0            558        5432   0.0      7.21101000      0.000000e+00                   unknown        5432      0.00000000  Omega'_bc~0           559       -5432   0.0      7.21101000      0.000000e+00                   unknown       -5432      0.00000000  Omega*_bc0            560        5434   0.0      7.21900000      0.000000e+00                   unknown        5434      0.00000000  Omega*_bc~0           561       -5434   0.0      7.21900000      0.000000e+00                   unknown       -5434      0.00000000  Omega_bcc+            562        5442   1.0      8.30945000      1.290893e-12                   unknown        5442      0.00000000  Omega_bcc~-           563       -5442  -1.0      8.30945000      1.290893e-12                   unknown       -5442      0.00000000  Omega*_bcc+           564        5444   1.0      8.31325000      0.000000e+00                   unknown        5444      0.00000000  Omega*_bcc~-          565       -5444  -1.0      8.31325000      0.000000e+00                   unknown       -5444      0.00000000  Xi_bb-                568        5512  -1.0     10.42272000      1.290893e-12                   unknown        5512      0.00000000  Xi_bb~+               569       -5512   1.0     10.42272000      1.290893e-12                   unknown       -5512      0.00000000  Xi*_bb-               570        5514  -1.0     10.44144000      0.000000e+00                   unknown        5514      0.00000000  Xi*_bb~+              571       -5514   1.0     10.44144000      0.000000e+00                   unknown       -5514      0.00000000  Xi_bb0                572        5522   0.0     10.42272000      1.290893e-12                   unknown        5522      0.00000000  Xi_bb~0               573       -5522   0.0     10.42272000      1.290893e-12                   unknown       -5522      0.00000000  Xi*_bb0               574        5524   0.0     10.44144000      0.000000e+00                   unknown        5524      0.00000000  Xi*_bb~0              575       -5524   0.0     10.44144000      0.000000e+00                   unknown       -5524      0.00000000  Omega_bb-             576        5532  -1.0     10.60209000      1.290893e-12                   unknown        5532      0.00000000  Omega_bb~+            577       -5532   1.0     10.60209000      1.290893e-12                   unknown       -5532      0.00000000  Omega*_bb-            578        5534  -1.0     10.61426000      0.000000e+00                   unknown        5534      0.00000000  Omega*_bb~+           579       -5534   1.0     10.61426000      0.000000e+00                   unknown       -5534      0.00000000  Omega_bbc0            580        5542   0.0     11.70767000      1.290893e-12                   unknown        5542      0.00000000  Omega_bbc~0           581       -5542   0.0     11.70767000      1.290893e-12                   unknown       -5542      0.00000000  Omega*_bbc0           582        5544   0.0     11.71147000      0.000000e+00                   unknown        5544      0.00000000  Omega*_bbc~0          583       -5544   0.0     11.71147000      0.000000e+00                   unknown       -5544      0.00000000  Omega*_bbb-           584        5554  -1.0     15.11061000      0.000000e+00                   unknown        5554      0.00000000  Omega*_bbb~+          585       -5554   1.0     15.11061000      0.000000e+00                   unknown       -5554      0.00000000  deuteron               45  1000010020   1.0      1.87561300      1.000000e+15                  deuteron           0      0.00000000  triton                 46  1000010030   1.0      2.80925000      1.000000e+15                   tritium           0      0.00000000  alpha                  47  1000020040   2.0      3.72741700      1.000000e+15                     alpha           0      0.00000000  geantino               48   480000000   0.0      0.00000000      1.000000e+15                  geantino           0      0.00000000  opticalphoton          50       20022   0.0      0.00000000      1.000000e+16                  Cerenkov           0      0.00000000  H_10                   87          25   0.0    125.70000000      9.400000e-26                    Higgs0          25      0.00000000  H_20                   88          35   0.0    310.00000000      9.400000e-26                   Higgs'0          35      0.00000000  H_30                   89          36   0.0    310.00000000      9.400000e-26                        A0          36      0.00000000  H+                     90          37   1.0    310.00000000      9.400000e-26                    Higgs+          37      0.00000000  H-                     91         -37  -1.0    310.00000000      9.400000e-26                    Higgs-         -37      0.00000000  d                     303           1  -0.3      0.00990000      0.000000e+00                         d           1      0.00000000  anti-d                304          -1   0.3      0.00990000      0.000000e+00                    anti-d          -1      0.00000000  u                     305           2   0.7      0.00560000      0.000000e+00                         u           2      0.00000000  anti-u                306          -2  -0.7      0.00560000      0.000000e+00                    anti-u          -2      0.00000000  s                     307           3  -0.3      0.19900000      0.000000e+00                         s           3      0.00000000  anti-s                308          -3   0.3      0.19900000      0.000000e+00                    anti-s          -3      0.00000000  c                     309           4   0.7      1.35000000      0.000000e+00                         c           4      0.00000000  anti-c                310          -4  -0.7      1.35000000      0.000000e+00                    anti-c          -4      0.00000000  b                     311           5  -0.3      5.00000000      0.000000e+00                         b           5      0.00000000  anti-b                312          -5   0.3      5.00000000      0.000000e+00                    anti-b          -5      0.00000000  t                     313           6   0.7    173.50000000      3.291061e-25                         t           6      0.00000000  anti-t                314          -6  -0.7    173.50000000      3.291061e-25                    anti-t          -6      0.00000000  b'                    315           7  -0.3    400.00000000      0.000000e+00                        b'           7      0.00000000  anti-b'               316          -7   0.3    400.00000000      0.000000e+00                   anti-b'          -7      0.00000000  t'                    317           8   0.7    500.00000000      0.000000e+00                        t'           8      0.00000000  anti-t'               318          -8  -0.7    500.00000000      0.000000e+00                   anti-t'          -8      0.00000000  nu_tau                319          16   0.0      0.00000000      1.000000e+16                    nu_tau          16      0.00000000  nu_tau~               320         -16   0.0      0.00000000      1.000000e+16               anti-nu_tau         -16      0.00000000  L-                    321          17  -1.0    400.00000000      0.000000e+00                        L-          17      0.00000000  L+                    322         -17   1.0    400.00000000      0.000000e+00                        L+         -17      0.00000000  nu_L                  323          18   0.0      0.00000000      0.000000e+00                      nu_L          18      0.00000000  anti-nu_L             324         -18   0.0      0.00000000      0.000000e+00                 anti-nu_L         -18      0.00000000  g                     325          21   0.0      0.00000000      1.000000e+16                         g          21      0.00000000  Z'0                   326          32   0.0    500.00000000      0.000000e+00                       Z'0          32      0.00000000  Z''0                  327          33   0.0    900.00000000      0.000000e+00                      Z''0          33      0.00000000  W'+                   328          34   1.0    500.00000000      0.000000e+00                       W'+          34      0.00000000  W'-                   329         -34  -1.0    500.00000000      0.000000e+00                       W'-         -34      0.00000000  Graviton              330          39   0.0      0.00000000      0.000000e+00                   unknown          39      0.00000000  R0                    331          41   0.0   5000.00000000      0.000000e+00                        R0          41      0.00000000  anti-R0               332         -41   0.0   5000.00000000      0.000000e+00                   anti-R0         -41      0.00000000  LQ_ue                 333          42  -0.3    200.00000000      0.000000e+00                   unknown          42      0.00000000  LQ_uebar              334         -42   0.3    200.00000000      0.000000e+00                   unknown         -42      0.00000000  Xu0                   335          43   0.0      1.00000000      0.000000e+00                       Xu0          43      0.00000000  Xu+                   336          44   1.0      1.00000000      0.000000e+00                       Xu+          44      0.00000000  Xu-                   337         -44  -1.0      1.00000000      0.000000e+00                       Xu-         -44      0.00000000  specflav              338          81   0.0      0.00000000      0.000000e+00                  specflav          81      0.00000000  rndmflav              339          82   0.0      0.00000000      0.000000e+00                  rndmflav          82      0.00000000  anti-rndmflav         340         -82   0.0      0.00000000      0.000000e+00             anti-rndmflav         -82      0.00000000  phasespa              341          83   0.0      1.00000000      0.000000e+00                  phasespa          83      0.00000000  c-hadron              342          84   0.7      2.00000000      3.335641e-13                  c-hadron          84      0.00000000  anti-c-hadron         343         -84  -0.7      2.00000000      3.335641e-13             anti-c-hadron         -84      0.00000000  b-hadron              344          85  -0.3      5.00000000      1.290893e-12                  b-hadron          85      0.00000000  anti-b-hadron         345         -85   0.3      5.00000000      1.290893e-12             anti-b-hadron         -85      0.00000000  t-hadron              346          86   0.7    175.00000000      0.000000e+00                  t-hadron           0      0.00000000  anti-t-hadron         347         -86  -0.7    175.00000000      0.000000e+00             anti-t-hadron           0      0.00000000  b'-hadron             348          87  -0.3    400.00000000      0.000000e+00                 b'-hadron           0      0.00000000  anti-b'-hadron        349         -87   0.3    400.00000000      0.000000e+00            anti-b'-hadron           0      0.00000000  junction              350          88   0.0      0.00000000      0.000000e+00                  junction          88      0.00000000  system                351          90   0.0      0.00000000      0.000000e+00                    system          90      0.00000000  cluster               352          91   0.0      0.00000000      0.000000e+00                   cluster          91      0.00000000  string                353          92   0.0      0.00000000      0.000000e+00                    string          92      0.00000000  indep                 354          93   0.0      0.00000000      0.000000e+00                     indep          93      0.00000000  CMshower              355          94   0.0      0.00000000      0.000000e+00                  CMshower          94      0.00000000  SPHEaxis              356          95   0.0      0.00000000      0.000000e+00                  SPHEaxis          95      0.00000000  THRUaxis              357          96   0.0      0.00000000      0.000000e+00                  THRUaxis          96      0.00000000  CLUSjet               358          97   0.0      0.00000000      0.000000e+00                   CLUSjet          97      0.00000000  CELLjet               359          98   0.0      0.00000000      0.000000e+00                   CELLjet          98      0.00000000  table                 360          99   0.0      0.00000000      0.000000e+00                     table          99      0.00000000  deutron~              390 -1000010020  -1.0      1.87561300      0.000000e+00             anti-deuteron           0      0.00000000  triton~               392 -1000010030  -1.0      2.80925000      0.000000e+00              anti-tritium           0      0.00000000  alpha~                393 -1000020040  -2.0      3.72741700      0.000000e+00                anti-alpha           0      0.00000000  dd_1                  394        1103  -0.7      0.00000000      0.000000e+00                      dd_1        1103      0.00000000  anti-dd_1             395       -1103   0.7      0.00000000      0.000000e+00                 anti-dd_1       -1103      0.00000000  ud_0                  410        2101   0.3      0.00000000      0.000000e+00                      ud_0        2101      0.00000000  anti-ud_0             411       -2101  -0.3      0.00000000      0.000000e+00                 anti-ud_0       -2101      0.00000000  ud_1                  412        2103   0.3      0.00000000      0.000000e+00                      ud_1        2103      0.00000000  anti-ud_1             413       -2103  -0.3      0.00000000      0.000000e+00                 anti-ud_1       -2103      0.00000000  uu_1                  426        2203   1.3      0.00000000      0.000000e+00                      uu_1        2203      0.00000000  anti-uu_1             427       -2203  -1.3      0.00000000      0.000000e+00                 anti-uu_1       -2203      0.00000000  sd_0                  438        3101  -0.7      0.00000000      0.000000e+00                      sd_0        3101      0.00000000  anti-sd_0             439       -3101   0.7      0.00000000      0.000000e+00                 anti-sd_0       -3101      0.00000000  sd_1                  440        3103  -0.7      0.00000000      0.000000e+00                      sd_1        3103      0.00000000  anti-sd_1             441       -3103   0.7      0.00000000      0.000000e+00                 anti-sd_1       -3103      0.00000000  su_0                  454        3201   0.3      0.00000000      0.000000e+00                      su_0        3201      0.00000000  anti-su_0             455       -3201  -0.3      0.00000000      0.000000e+00                 anti-su_0       -3201      0.00000000  su_1                  456        3203   0.3      0.00000000      0.000000e+00                      su_1        3203      0.00000000  anti-su_1             457       -3203  -0.3      0.00000000      0.000000e+00                 anti-su_1       -3203      0.00000000  ss_1                  470        3303  -0.7      0.00000000      0.000000e+00                      ss_1        3303      0.00000000  anti-ss_1             471       -3303   0.7      0.00000000      0.000000e+00                 anti-ss_1       -3303      0.00000000  cd_0                  476        4101   0.3      0.00000000      0.000000e+00                      cd_0        4101      0.00000000  anti-cd_0             477       -4101  -0.3      0.00000000      0.000000e+00                 anti-cd_0       -4101      0.00000000  cd_1                  478        4103   0.3      0.00000000      0.000000e+00                      cd_1        4103      0.00000000  anti-cd_1             479       -4103  -0.3      0.00000000      0.000000e+00                 anti-cd_1       -4103      0.00000000  cu_0                  482        4201   1.3      0.00000000      0.000000e+00                      cu_0        4201      0.00000000  anti-cu_0             483       -4201  -1.3      0.00000000      0.000000e+00                 anti-cu_0       -4201      0.00000000  cu_1                  484        4203   1.3      0.00000000      0.000000e+00                      cu_1        4203      0.00000000  anti-cu_1             485       -4203  -1.3      0.00000000      0.000000e+00                 anti-cu_1       -4203      0.00000000  cs_0                  490        4301   0.3      0.00000000      0.000000e+00                      cs_0        4301      0.00000000  anti-cs_0             491       -4301  -0.3      0.00000000      0.000000e+00                 anti-cs_0       -4301      0.00000000  cs_1                  492        4303   0.3      0.00000000      0.000000e+00                      cs_1        4303      0.00000000  anti-cs_1             493       -4303  -0.3      0.00000000      0.000000e+00                 anti-cs_1       -4303      0.00000000  cc_1                  500        4403   1.3      0.00000000      0.000000e+00                      cc_1        4403      0.00000000  anti-cc_1             501       -4403  -1.3      0.00000000      0.000000e+00                 anti-cc_1       -4403      0.00000000  bd_0                  516        5101  -0.7      0.00000000      0.000000e+00                      bd_0        5101      0.00000000  anti-bd_0             517       -5101   0.7      0.00000000      0.000000e+00                 anti-bd_0       -5101      0.00000000  bd_1                  518        5103  -0.7      0.00000000      0.000000e+00                      bd_1        5103      0.00000000  anti-bd_1             519       -5103   0.7      0.00000000      0.000000e+00                 anti-bd_1       -5103      0.00000000  bu_0                  524        5201   0.3      0.00000000      0.000000e+00                      bu_0        5201      0.00000000  anti-bu_0             525       -5201  -0.3      0.00000000      0.000000e+00                 anti-bu_0       -5201      0.00000000  bu_1                  526        5203   0.3      0.00000000      0.000000e+00                      bu_1        5203      0.00000000  anti-bu_1             527       -5203  -0.3      0.00000000      0.000000e+00                 anti-bu_1       -5203      0.00000000  bs_0                  534        5301  -0.7      0.00000000      0.000000e+00                      bs_0        5301      0.00000000  anti-bs_0             535       -5301   0.7      0.00000000      0.000000e+00                 anti-bs_0       -5301      0.00000000  bs_1                  536        5303  -0.7      0.00000000      0.000000e+00                      bs_1        5303      0.00000000  anti-bs_1             537       -5303   0.7      0.00000000      0.000000e+00                 anti-bs_1       -5303      0.00000000  bc_0                  546        5401   0.3      0.00000000      0.000000e+00                      bc_0        5401      0.00000000  anti-bc_0             547       -5401  -0.3      0.00000000      0.000000e+00                 anti-bc_0       -5401      0.00000000  bc_1                  548        5403   0.3      0.00000000      0.000000e+00                      bc_1        5403      0.00000000  anti-bc_1             549       -5403  -0.3      0.00000000      0.000000e+00                 anti-bc_1       -5403      0.00000000  bb_1                  566        5503  -0.7      0.00000000      0.000000e+00                      bb_1        5503      0.00000000  anti-bb_1             567       -5503   0.7      0.00000000      0.000000e+00                 anti-bb_1       -5503      0.00000000  vpho                  586       10022   0.0      0.00000000      0.000000e+00                      vpho           0      0.00000000  Xsd                   751       30343   0.0      1.60000000      0.000000e+00                       Xsd       30343      0.00000000  anti-Xsd              752      -30343   0.0      1.60000000      0.000000e+00                  anti-Xsd      -30343      0.00000000  Xsu                   753       30353   1.0      1.60000000      0.000000e+00                       Xsu       30353      0.00000000  anti-Xsu              754      -30353  -1.0      1.60000000      0.000000e+00                  anti-Xsu      -30353      0.00000000  Xss                   755       30363   0.0      1.80000000      0.000000e+00                       Xss       30363      0.00000000  anti-Xss              756      -30363   0.0      1.80000000      0.000000e+00                  anti-Xss      -30363      0.00000000  ~d_L                  859     1000001  -0.3    500.00000000      0.000000e+00                   unknown     1000001      0.00000000  ~d_Lbar               860    -1000001   0.3    500.00000000      0.000000e+00                   unknown    -1000001      0.00000000  ~u_L                  861     1000002   0.7    500.00000000      0.000000e+00                   unknown     1000002      0.00000000  ~u_Lbar               862    -1000002  -0.7    500.00000000      0.000000e+00                   unknown    -1000002      0.00000000  ~s_L                  863     1000003  -0.3    500.00000000      0.000000e+00                   unknown     1000003      0.00000000  ~s_Lbar               864    -1000003   0.3    500.00000000      0.000000e+00                   unknown    -1000003      0.00000000  ~c_L                  865     1000004   0.7    500.00000000      0.000000e+00                   unknown     1000004      0.00000000  ~c_Lbar               866    -1000004  -0.7    500.00000000      0.000000e+00                   unknown    -1000004      0.00000000  ~b_1                  867     1000005  -0.3    500.00000000      0.000000e+00                   unknown     1000005      0.00000000  ~b_1bar               868    -1000005   0.3    500.00000000      0.000000e+00                   unknown    -1000005      0.00000000  ~t_1                  869     1000006   0.7    500.00000000      0.000000e+00                   unknown     1000006      0.00000000  ~t_1bar               870    -1000006  -0.7    500.00000000      0.000000e+00                   unknown    -1000006      0.00000000  ~e_L-                 871     1000011  -1.0    500.00000000      0.000000e+00                   unknown     1000011      0.00000000  ~e_L+                 872    -1000011   1.0    500.00000000      0.000000e+00                   unknown    -1000011      0.00000000  ~nu_eL                873     1000012   0.0    500.00000000      0.000000e+00                   unknown     1000012      0.00000000  ~nu_eLbar             874    -1000012   0.0    500.00000000      0.000000e+00                   unknown    -1000012      0.00000000  ~mu_L-                875     1000013  -1.0    500.00000000      0.000000e+00                   unknown     1000013      0.00000000  ~mu_L+                876    -1000013   1.0    500.00000000      0.000000e+00                   unknown    -1000013      0.00000000  ~nu_muL               877     1000014   0.0    500.00000000      0.000000e+00                   unknown     1000014      0.00000000  ~nu_muLbar            878    -1000014   0.0    500.00000000      0.000000e+00                   unknown    -1000014      0.00000000  ~tau_1-               879     1000015  -1.0    500.00000000      0.000000e+00                   unknown     1000015      0.00000000  ~tau_1+               880    -1000015   1.0    500.00000000      0.000000e+00                   unknown    -1000015      0.00000000  ~nu_tauL              881     1000016   0.0    500.00000000      0.000000e+00                   unknown     1000016      0.00000000  ~nu_tauLbar           882    -1000016   0.0    500.00000000      0.000000e+00                   unknown    -1000016      0.00000000  ~g                    883     1000021   0.0    500.00000000      0.000000e+00                   unknown     1000021      0.00000000  ~chi_10               884     1000022   0.0    500.00000000      0.000000e+00                   unknown     1000022      0.00000000  ~chi_20               885     1000023   0.0    500.00000000      0.000000e+00                   unknown     1000023      0.00000000  ~chi_1+               886     1000024   1.0    500.00000000      0.000000e+00                   unknown     1000024      0.00000000  ~chi_1-               887    -1000024  -1.0    500.00000000      0.000000e+00                   unknown    -1000024      0.00000000  ~chi_30               888     1000025   0.0    500.00000000      0.000000e+00                   unknown     1000025      0.00000000  ~chi_40               889     1000035   0.0    500.00000000      0.000000e+00                   unknown     1000035      0.00000000  ~chi_2+               890     1000037   1.0    500.00000000      0.000000e+00                   unknown     1000037      0.00000000  ~chi_2-               891    -1000037  -1.0    500.00000000      0.000000e+00                   unknown    -1000037      0.00000000  ~Gravitino            892     1000039   0.0    500.00000000      0.000000e+00                   unknown     1000039      0.00000000  ~d_R                  893     2000001  -0.3    500.00000000      0.000000e+00                   unknown     2000001      0.00000000  ~d_Rbar               894    -2000001   0.3    500.00000000      0.000000e+00                   unknown    -2000001      0.00000000  ~u_R                  895     2000002   0.7    500.00000000      0.000000e+00                   unknown     2000002      0.00000000  ~u_Rbar               896    -2000002  -0.7    500.00000000      0.000000e+00                   unknown    -2000002      0.00000000  ~s_R                  897     2000003  -0.3    500.00000000      0.000000e+00                   unknown     2000003      0.00000000  ~s_Rbar               898    -2000003   0.3    500.00000000      0.000000e+00                   unknown    -2000003      0.00000000  ~c_R                  899     2000004   0.7    500.00000000      0.000000e+00                   unknown     2000004      0.00000000  ~c_Rbar               900    -2000004  -0.7    500.00000000      0.000000e+00                   unknown    -2000004      0.00000000  ~b_2                  901     2000005  -0.3    500.00000000      0.000000e+00                   unknown     2000005      0.00000000  ~b_2bar               902    -2000005   0.3    500.00000000      0.000000e+00                   unknown    -2000005      0.00000000  ~t_2                  903     2000006   0.7    500.00000000      0.000000e+00                   unknown     2000006      0.00000000  ~t_2bar               904    -2000006  -0.7    500.00000000      0.000000e+00                   unknown    -2000006      0.00000000  ~e_R-                 905     2000011  -1.0    500.00000000      0.000000e+00                   unknown     2000011      0.00000000  ~e_R+                 906    -2000011   1.0    500.00000000      0.000000e+00                   unknown    -2000011      0.00000000  ~nu_eR                907     2000012   0.0    500.00000000      0.000000e+00                   unknown     2000012      0.00000000  ~nu_eRbar             908    -2000012   0.0    500.00000000      0.000000e+00                   unknown    -2000012      0.00000000  ~mu_R-                909     2000013  -1.0    500.00000000      0.000000e+00                   unknown     2000013      0.00000000  ~mu_R+                910    -2000013   1.0    500.00000000      0.000000e+00                   unknown    -2000013      0.00000000  ~nu_muR               911     2000014   0.0    500.00000000      0.000000e+00                   unknown     2000014      0.00000000  ~nu_muRbar            912    -2000014   0.0    500.00000000      0.000000e+00                   unknown    -2000014      0.00000000  ~tau_2-               913     2000015  -1.0    500.00000000      0.000000e+00                   unknown     2000015      0.00000000  ~tau_2+               914    -2000015   1.0    500.00000000      0.000000e+00                   unknown    -2000015      0.00000000  ~nu_tauR              915     2000016   0.0    500.00000000      0.000000e+00                   unknown     2000016      0.00000000  ~nu_tauRbar           916    -2000016   0.0    500.00000000      0.000000e+00                   unknown    -2000016      0.00000000  pi_tc0                917     3000111   0.0    110.00000000      0.000000e+00                   unknown     3000111      0.00000000  rho_tc0               918     3000113   0.0    210.00000000      0.000000e+00                   unknown     3000113      0.00000000  pi_tc+                919     3000211   1.0    110.00000000      0.000000e+00                   unknown     3000211      0.00000000  pi_tc-                920    -3000211  -1.0    110.00000000      0.000000e+00                   unknown    -3000211      0.00000000  rho_tc+               921     3000213   1.0    210.00000000      0.000000e+00                   unknown     3000213      0.00000000  rho_tc-               922    -3000213  -1.0    210.00000000      0.000000e+00                   unknown    -3000213      0.00000000  pi'_tc0               923     3000221   0.0    110.00000000      0.000000e+00                   unknown     3000221      0.00000000  omega_tc              924     3000223   0.0    210.00000000      0.000000e+00                   unknown     3000223      0.00000000  eta_tc0               925     3000331   0.0    350.00000000      0.000000e+00                   unknown     3000331      0.00000000  V8_tc                 926     3100021   0.0    500.00000000      0.000000e+00                   unknown     3100021      0.00000000  pi_22_1_tc            927     3100111   0.0    125.00000000      0.000000e+00                   unknown     3100111      0.00000000  rho_11_tc             928     3100113   0.0    400.00000000      0.000000e+00                   unknown     3100113      0.00000000  pi_22_8_tc            929     3200111   0.0    250.00000000      0.000000e+00                   unknown     3200111      0.00000000  rho_12_tc             930     3200113   0.0    350.00000000      0.000000e+00                   unknown     3200113      0.00000000  rho_21_tc             931     3300113   0.0    350.00000000      0.000000e+00                   unknown     3300113      0.00000000  rho_22_tc             932     3400113   0.0    300.00000000      0.000000e+00                   unknown     3400113      0.00000000  d*                    933     4000001  -0.3    400.00000000      0.000000e+00                   unknown     4000001      0.00000000  d*bar                 934    -4000001   0.3    400.00000000      0.000000e+00                   unknown    -4000001      0.00000000  u*                    935     4000002   0.7    400.00000000      0.000000e+00                   unknown     4000002      0.00000000  u*bar                 936    -4000002  -0.7    400.00000000      0.000000e+00                   unknown    -4000002      0.00000000  e*-                   937     4000011  -1.0    400.00000000      0.000000e+00                   unknown     4000011      0.00000000  e*bar+                938    -4000011   1.0    400.00000000      0.000000e+00                   unknown    -4000011      0.00000000  nu*_e0                939     4000012   0.0    400.00000000      0.000000e+00                   unknown     4000012      0.00000000  nu*_ebar0             940    -4000012   0.0    400.00000000      0.000000e+00                   unknown    -4000012      0.00000000  Graviton*             941     5000039   0.0   1000.00000000      0.000000e+00                   unknown     5000039      0.00000000  nu_Re                 942     9900012   0.0    500.00000000      0.000000e+00                   unknown     9900012      0.00000000  nu_Rmu                943     9900014   0.0    500.00000000      0.000000e+00                   unknown     9900014      0.00000000  nu_Rtau               944     9900016   0.0    500.00000000      0.000000e+00                   unknown     9900016      0.00000000  Z_R0                  945     9900023   0.0   1200.00000000      0.000000e+00                   unknown     9900023      0.00000000  W_R+                  946     9900024   1.0    750.00000000      0.000000e+00                   unknown     9900024      0.00000000  W_R-                  947    -9900024  -1.0    750.00000000      0.000000e+00                   unknown    -9900024      0.00000000  H_L++                 948     9900041   2.0    200.00000000      0.000000e+00                   unknown     9900041      0.00000000  H_L--                 949    -9900041  -2.0    200.00000000      0.000000e+00                   unknown    -9900041      0.00000000  H_R++                 950     9900042   2.0    200.00000000      0.000000e+00                   unknown     9900042      0.00000000  H_R--                 951    -9900042  -2.0    200.00000000      0.000000e+00                   unknown    -9900042      0.00000000  He3[0.0]               49  1000020030   2.0      2.80923000      1.000000e+15                       He3           0      0.00000000  He3~[0.0]             391 -1000020030  -2.0      2.80923000      0.000000e+00                  anti-He3           0      0.00000000  Li7[0.0]              988  1000030070   3.0      6.53536500      0.000000e+00                   unknown           0      0.00000000  Be8[0.0]              992  1000040080   4.0      7.45689300      0.000000e+00                   unknown           0      0.00000000  Be9[0.0]              959  1000040090   4.0      8.39479200      0.000000e+00                   unknown           0      0.00000000  Be10[0.0]             993  1000040100   4.0      9.32754500      0.000000e+00                   unknown           0      0.00000000  B10[0.0]              994  1000050100   5.0      9.32698900      0.000000e+00                   unknown           0      0.00000000  B11[0.0]              974  1000050110   5.0     10.25510100      0.000000e+00                   unknown           0      0.00000000  B12[0.0]              975  1000050120   5.0     11.19129500      0.000000e+00                   unknown           0      0.00000000  C12[0.0]              953  1000060120   6.0     11.17490000      0.000000e+00                   unknown           0      0.00000000  C13[0.0]              976  1000060130   6.0     12.11254500      0.000000e+00                   unknown           0      0.00000000  C14[0.0]              977  1000060140   6.0     13.04393400      0.000000e+00                   unknown           0      0.00000000  N14[0.0]              955  1000070140   7.0     13.04378000      0.000000e+00                   unknown           0      0.00000000  N15[0.0]              982  1000070150   7.0     13.04377800      0.000000e+00                   unknown           0      0.00000000  N16[0.0]              995  1000070160   7.0     14.90958500      0.000000e+00                   unknown           0      0.00000000  O16[0.0]              956  1000080160   8.0     14.89510000      0.000000e+00                   unknown           0      0.00000000  O17[0.0]              996  1000080170   8.0     15.83458700      0.000000e+00                   unknown           0      0.00000000  O18[0.0]              967  1000080180   8.0     16.76610800      0.000000e+00                   unknown           0      0.00000000  O19[0.0]              997  1000080190   8.0     17.70171700      0.000000e+00                   unknown           0      0.00000000  F19[0.0]              960  1000090190   9.0     17.69689600      0.000000e+00                   unknown           0      0.00000000  Ne22[0.0]             983  1000100220  10.0     20.48484100      0.000000e+00                   unknown           0      0.00000000  Ne23[0.0]             998  1000100230  10.0     21.41920500      0.000000e+00                   unknown           0      0.00000000  Na24[0.0]             999  1000110240  11.0     22.34743500      0.000000e+00                   unknown           0      0.00000000  Mg24[0.0]             979  1000120240  12.0     22.34192000      0.000000e+00                   unknown           0      0.00000000  Mg25[0.0]             989  1000120250  12.0     23.27415400      0.000000e+00                   unknown           0      0.00000000  Mg26[0.0]             980  1000120260  12.0     24.20262600      0.000000e+00                   unknown           0      0.00000000  Mg27[0.0]             981  1000120270  12.0     25.13574800      0.000000e+00                   unknown           0      0.00000000  Al27[0.0]             952  1000130270  13.0     25.12650000      0.000000e+00                   unknown           0      0.00000000  Al28[0.0]             972  1000130280  13.0     26.06497800      0.000000e+00                   unknown           0      0.00000000  Si28[0.0]             957  1000140280  14.0     26.05320000      0.000000e+00                   unknown           0      0.00000000  Si29[0.0]             964  1000140290  14.0     26.99142700      0.000000e+00                   unknown           0      0.00000000  Si30[0.0]             968  1000140300  14.0     27.92038300      0.000000e+00                   unknown           0      0.00000000  P31[0.0]             1000  1000150310  15.0     28.85186900      0.000000e+00                   unknown           0      0.00000000  Cl39[0.0]            1001  1000170390  17.0     36.29846000      0.000000e+00                   unknown           0      0.00000000  Cl40[0.0]            1002  1000170400  17.0     37.23220100      0.000000e+00                   unknown           0      0.00000000  Ar36[0.0]            1003  1000180360  18.0     33.50354900      0.000000e+00                   unknown           0      0.00000000  Ar40[0.0]             973  1000180400  18.0     37.22471500      0.000000e+00                   unknown           0      0.00000000  Cr50[0.0]            1004  1000240500  24.0     46.52443900      0.000000e+00                   unknown           0      0.00000000  Cr52[0.0]             978  1000240520  24.0     48.37010000      0.000000e+00                   unknown           0      0.00000000  Cr53[0.0]             990  1000240530  24.0     49.31389400      0.000000e+00                   unknown           0      0.00000000  Cr54[0.0]            1005  1000240540  24.0     50.24374100      0.000000e+00                   unknown           0      0.00000000  Mn55[0.0]             991  1000250550  25.0     51.17445700      0.000000e+00                   unknown           0      0.00000000  Fe54[0.0]             966  1000260540  26.0     50.24442100      0.000000e+00                   unknown           0      0.00000000  Fe56[0.0]             961  1000260560  26.0     52.10305600      0.000000e+00                   unknown           0      0.00000000  Fe57[0.0]             969  1000260570  26.0     53.03497500      0.000000e+00                   unknown           0      0.00000000  Fe59[0.0]            1006  1000260590  26.0     54.89748000      0.000000e+00                   unknown           0      0.00000000  Ni58[0.0]             984  1000280580  28.0     53.96642200      0.000000e+00                   unknown           0      0.00000000  Ni60[0.0]             985  1000280600  28.0     55.82516400      0.000000e+00                   unknown           0      0.00000000  Ni61[0.0]            1007  1000280610  28.0     56.75690900      0.000000e+00                   unknown           0      0.00000000  Ni62[0.0]             986  1000280620  28.0     57.68587700      0.000000e+00                   unknown           0      0.00000000  Ni63[0.0]            1008  1000280630  28.0     58.61860500      0.000000e+00                   unknown           0      0.00000000  Ni64[0.0]             987  1000280640  28.0     59.54851200      0.000000e+00                   unknown           0      0.00000000  Cu63[0.0]             954  1000290630  29.0     58.61860000      0.000000e+00                   unknown           0      0.00000000  Cu65[0.0]             958  1000290650  29.0     60.47984200      0.000000e+00                   unknown           0      0.00000000  Mo92[0.0]            1009  1000420920  42.0     85.61063000      0.000000e+00                   unknown           0      0.00000000  Mo95[0.0]            1010  1000420950  42.0     88.40421000      0.000000e+00                   unknown           0      0.00000000  Mo96[0.0]            1011  1000420960  42.0     89.33462100      0.000000e+00                   unknown           0      0.00000000  Mo97[0.0]            1012  1000420970  42.0     90.26736500      0.000000e+00                   unknown           0      0.00000000  Mo98[0.0]            1013  1000420980  42.0     91.19828700      0.000000e+00                   unknown           0      0.00000000  Mo100[0.0]           1014  1000421000  42.0     93.06320300      0.000000e+00                   unknown           0      0.00000000  Pd108[0.0]           1015  1000461080  46.0    100.51181600      0.000000e+00                   unknown           0      0.00000000  Au197[0.0]           1020  1000791970  79.0    183.43336000      0.000000e+00                   unknown           0      0.00000000  Pb207[0.0]            962  1000822070  82.0    192.79676500      0.000000e+00                   unknown           0      0.00000000  Pb208[0.0]            963  1000822080  82.0    193.72896200      0.000000e+00                   unknown           0      0.00000000  Pb206[0.0]            965  1000822060  82.0    191.86393700      0.000000e+00                   unknown           0      0.00000000  Pb204[0.0]            970  1000822040  82.0    189.99962700      0.000000e+00                   unknown           0      0.00000000  Intermediate          971   -99000000   0.0      0.00000000      0.000000e+00                   unknown           0      0.00000000 # END PARTICLE
-
-- 
GitLab


From 4f2886b431130e63f14cbc796c9f128bc73b0e57 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 16 Jun 2022 14:38:56 +0200
Subject: [PATCH 15/56] Accumulated content in gitlab pages

---
 .gitlab-ci.yml | 66 +++++++++++++++++++++++++++++++++++---------------
 1 file changed, 46 insertions(+), 20 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b02d5233..8cd3428a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,8 +15,7 @@ stages:
 
 variables:
   TARGET_BRANCH: master
-  BINARY_TAG: x86_64_v2-centos7-gcc10-opt
-  LCG_VERSION: 100
+  BINARY_TAG: x86_64_v2-centos7-gcc11-opt
   NO_LBLOGIN: "1"
 
 
@@ -46,44 +45,71 @@ check-formatting:
     when: on_failure
     expire_in: 1 week
 
-# inspired by https://gitlab.cern.ch/lhcb/Moore/-/blob/master/.gitlab-ci.yml      
-build-docs:
+.docs-base:
   stage: docs
   image: gitlab-registry.cern.ch/lhcb-core/lbdocker/centos7-build:latest
+  variables:
+    DOCS_VERSION: $CI_COMMIT_REF_NAME
   rules:
-    - if: '$CI_COMMIT_REF_PROTECTED == "true" || $CI_MERGE_REQUEST_LABELS =~ /Documentation/' 
+    - if: $CI_COMMIT_REF_PROTECTED == "true"
+    - if: $CI_MERGE_REQUEST_LABELS =~ /Python Documentation/
+    - if: $CI_COMMIT_TAG =~ /^v?[0-9]+[.][0-9]+([.][0-9]+)?$/
   tags:
     - cvmfs
+
+# inspired by https://gitlab.cern.ch/lhcb/Moore/-/blob/master/.gitlab-ci.yml      
+build-docs:
+  extends: .docs-base
   variables:
     NIGHTLIES_PATH: "/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino/latest"
-    LOCAL_PYTHON: "InstallArea/x86_64_v2-centos7-gcc10-opt/python"
+    LOCAL_PYTHON: "InstallArea/$BINARY_TAG/python"
   script:
     - . /cvmfs/lhcb.cern.ch/lib/LbEnv.sh
     - pip install myst_parser graphviz
-    - reasons=
+    # -> adding python directories of the upstream projects
     - export PYTHONPATHBKP=$PYTHONPATH
-    - export PYTHONPATHBKP=$NIGHTLIES_PATH/Run2Support/$LOCAL_PYTHON:$NIGHTLIES_PATH/LHCb/$LOCAL_PYTHON:$NIGHTLIES_PATH/Gaudi/$LOCAL_PYTHON:$PYTHONPATHBKP
+    - export PYTHONPATHBKP=$NIGHTLIES_PATH/Gaudi/$LOCAL_PYTHON:$PYTHONPATHBKP
+    - export PYTHONPATHBKP=$NIGHTLIES_PATH/LHCb/$LOCAL_PYTHON:$PYTHONPATHBKP
+    - export PYTHONPATHBKP=$NIGHTLIES_PATH/Run2Support/$LOCAL_PYTHON:$PYTHONPATHBKP
+    # -> adding python directories of Gaussino
     - export PYTHONPATHBKP=$(find $PWD -type d \( -path ./InstallArea -o -path ./build \) -prune -false -o -name "python" -print | paste -sd ":" - ):$PYTHONPATHBKP
     - echo "$PYTHONPATHBKP"
-    - PYTHONPATH=$PYTHONPATHBKP make -C docs html || reasons+='ERROR failed html generation\n'
-    - if [ -n "$reasons" ]; then echo -e $reasons; exit 1; fi
-  allow_failure:
-    exit_codes: 77
+    # -> building the docs with a custom pythonpath
+    - PYTHONPATH=$PYTHONPATHBKP make -C docs html
+    - test -f docs/_build/html/index.html || exit 2
   artifacts:
     paths:
       - docs/_build/html/
+    expire_in: 1 month
 
 pages:
-  stage: deploy
-  image: gitlab-registry.cern.ch/ci-tools/ci-web-deployer
+  extends: .docs-base
+  needs:
+    - build-docs
+  variables:
+    # I found CI_PAGES_URL sometimes pointing to the wrong addresss
+    GAUSSINO_PAGES_URL: https://mimazure-gaussino.docs.cern.ch/
   script:
-    - mv docs/_build/html/ public
-  before_script:
-    - test -d docs/_build/html || { echo "WARNING docs not built, stopping"; exit 77; }
+    # accumulating content as in https://gitlab.com/gitlab-org/gitlab/-/issues/15156#note_214784368
+    # -> get the archive from the website with the accumulated content and copy it to public/
+    - echo "Deploying docs for ${DOCS_VERSION}"
+    - echo "Getting the latest versions from ${GAUSSINO_PAGES_URL}"
+    # -> curl will create content.tar.gz even if it does not exists
+    - curl -fkL "$GAUSSINO_PAGES_URL/content.tar.gz" -o "content.tar.gz" || echo "Could not get the archive, skipping..."
+    # -> ignore any unpacking errors, the history will be erased
+    #    note: this might need a bit of rethinking or to be blocked later
+    - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
+    # -> add only the new contents of the current version
+    - mkdir -p public/$DOCS_VERSION/
+    - rsync -a docs/_build/html/ public/$DOCS_VERSION/
+    # -> add all the necessary redirects
+    # - rm -f public/_redirects
+    # - echo "/ /master/index.html" >> public/_redirects
+    # -> create a new archive and put it on the website
+    - tar -zcf content.tar.gz public/
+    - cp content.tar.gz public/
   artifacts:
     paths:
     - public
-  allow_failure:
-    exit_codes: 77
-
+    expire_in: 1 month
 
-- 
GitLab


From 33fa7760cb697e6d47d9ee076b516dd747b97e01 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 16 Jun 2022 14:39:59 +0200
Subject: [PATCH 16/56] Change the pages url

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8cd3428a..c6d867b1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -88,7 +88,7 @@ pages:
     - build-docs
   variables:
     # I found CI_PAGES_URL sometimes pointing to the wrong addresss
-    GAUSSINO_PAGES_URL: https://mimazure-gaussino.docs.cern.ch/
+    GAUSSINO_PAGES_URL: https://gaussino.docs.cern.ch/
   script:
     # accumulating content as in https://gitlab.com/gitlab-org/gitlab/-/issues/15156#note_214784368
     # -> get the archive from the website with the accumulated content and copy it to public/
-- 
GitLab


From a5ecc5be52058949d44eb6c3b20c5fd76eb3ed73 Mon Sep 17 00:00:00 2001
From: Gloria Corti <gloria.corti@cern.ch>
Date: Thu, 16 Jun 2022 14:54:09 +0200
Subject: [PATCH 17/56] Add logo to main documentation page

---
 Gaussino.png   | Bin 0 -> 66519 bytes
 docs/index.rst |   2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)
 create mode 100644 Gaussino.png

diff --git a/Gaussino.png b/Gaussino.png
new file mode 100644
index 0000000000000000000000000000000000000000..d40702f6b116e26f4cea73496d1ac01a2954ed9b
GIT binary patch
literal 66519
zcmZ6z1z3~e_cu-q7)XP3#{g*<9fGtlBn0WM(cK^=-6Ka!iIgw|X#|xVHM*4&DQOXr
zcliDOe((SNb6vaGp68BppXa{MIiJrtTY`?Z8W8~<0R{#Jk%qdm9tH*`68%yG;-aq%
zxKo#-{{b8oA&M9nO=%DQSmU5Sv)HQZK`=0aK^PbjF&G%X(U&5=V_^6RVPO2Q!oZNu
z!@!{SEbP#gMc=^pR5$j)z+jBKe_^I=pV*^EH-<hp@->2JN!xn330T{C*w_mMx_P2o
zV_?VzN~7Pp+51|v1iHDp`$z}MvHfcyjedWBS&)t8UlU&!IW{AR4vUh9w>^uP09ZhX
zO`d>-g+<oe&OusFS@pl&(VyhloP2#fr3D280s;gAL<Ky&9R-D@q@)CeL<B`d_|Yx+
zeS+M5tpoYpec1mq$p4I^Z0}?14fXVedbqRPk85q?;pZ#I#&$o^|Ni|)PG6|Q|DDO*
z=fBHBFHrFQj-arBkl_E0jqWOYe^vUKH`E?I^Zoep!m|Hb{y*3LJCCg3{p9~2Vg9qy
ze^=2<l_!uD{9m=n6KM5w8Dn55U}z{SJ`cn^=*G|E*fVDOWw7SBI;(aOhSZvH0>h^g
zI3`&lV=x{V86iyMGL4L=&H@9vEgn>S&N;lmN<!NIjN<GH6t+5N5i~i{EWM#&Ox}_2
z2>G2S|F(0#p=)C4>X!ZP$M?4*Z%4+4#)jS=mkg)A8H&HV`<5~kxOwyUn8rkf;zjMO
zb3a5$Ny%aF_ekC8O>nnBq=G`!$Bo~OVJ8yy)ybD;++5oiKI}V3njd{O1{;yzG-(qW
zOYF^GPUsm*%!T(atl`Z%&#nx75~n1{znS+Cp->B9))DW$8?UPi?{Va>>iT=hv~jE9
zI`H*fJN2(N%OjkTQ4)Kk148dnHV0LbhDbiRdFdu!<fc-$>hMEk=v1=k6Qs7?tx6L$
zD#|MNAn>*a`TJnopSQ%^+qF2l#J)1wP=4gcpo6gQ=7`_pHN1jVMEED)ZY?U)&X#r4
zgTwW3BNN)gOp$AdHgB4#YJ*SbIy`%{C;rq!e8idgn|}ebU0btGj}zEAK2tEree9N{
z+7x%>;O|cv-p195;@sQi?iB^NY+eZxe)Dn2FT8c>B|<*<J#u6O*4FHO;IKQ#+b&K&
z7=~FNO0|r<JiZbiakAg($etZp^SEBwT)v4|Uh)2|YdGTcvMwt-Mf2usKsc;`Bp^i4
zNQ$RzeXBy&P`jbizOpOaC2PvYrOB-K95$AfT>(AT{Wj`ge+jG0`n>kw=%$aqHYBY3
zfL<L{eDIrb72B(*$a}qBdc7{q!o6JT3xBnx{d?+k&E>k4OOMC=tB(nJcMY!~kL|1L
z(0wPa>ON;{CUNB&Iy_$Mr7{g+_S{pG;;%AmHa5En@^BYx%|>;nF?+o~)wLk6b_>tR
z7SXc^U%Ga4V}XQBFZ16L6KrqB^(|Z+j@MYOcWzg7xvuQYw=z9@JnG!kBC=G;+*Ij$
z8Gcb7inQ~#{bAwJ`tosW=k~Xbo8#~y#A;r6u1EKuXpTlx!-mc~i<cG!w}&3bc}Na-
z+XBwl;>3r;tl_zhTrA&Nuu~$|2C&1fFSC9gh0J#M=#%>MLtC-GXe;i|g-3IXHqmgj
z<7v#fuR1OrTdg93yZ^lEYv6?R*O92dTy=ev!d438#)?kuYXBh?dnF(B{`;I5(Mzf`
zeLjDo1Es`NQ6SR+geFI1R;3B1CRU-FCq}Ss2m-Rew|;WZ>HgiO#AIeKt=QX4Du2y$
zf4da;>j5Sw<fS=Dwko<edXUmlpf9=cl)q}JKncvh@!u%bzz_OW@8LLK^c7nWJ#2k0
z6N$nc<Nin3oX8#vc}6pI&)`=W%;|@+93h+~sVI8Dft*!ted^ntMME;w?Zf|wcFBkJ
z6drOpy`RAQpQ&3CBQhOo<M;ml6NDQpgbI@rDHpPL@#()kOjHy!5C)%oU;an-NV%kl
z%$?%y^Wbm)?NQHGTCw=ZrsKcb=qpBd@R_g(mh<{=4?{AYY1fCstCs&+oYe%nL%XA3
zckze+=ue>*=*j}w+1%&IcdNzv{y&l=_LZ`{W4&^%HxzB|gwd0X48JKvUt{kJ&HJdJ
z5c@>2W?m)sL#o@-y}~4bMwLyA$L`or!$%L<jkzhw$sL7g4pJ(l6Va1M0wXxEF*&HI
zX`-@(E*j99N>nKFsC7bqI2M@Z7@$g0@loKTqR=cv(##*cxx0U8T)>}KFY4zi30z1l
zEnI$`sOt1{GqESQ=V_eSX&ow~mvW@qXJQ(l43`DNhU;c&*^M(L-=m+W!WG$@xgR2J
zS+Ghi#pdhRb#pK5y=6J$uF{?=Yani@71VS95en^Q;`(eE>UR3FgzTq8^Ukn#Gh!be
zzl6cfSfQZOTXz(bZ#i1<z$k^X=h^#hx!ZK|NuxnEn*l)`X0WEO0I+sg&;`H_Eyw~E
z=HQb4strj7QLpmb3J#5%#Z#wSJ+y$*su(NW+fNM~+#83kb9c9<FK~>9A94yQ!w%9p
zHg%<f-wBlONe=0U5lZ8l$>;!D6|HzxrqZiI;+mR-ZHpls<m6vM6K^`*zDzZuH$$lk
z;Fm+eaJIdJyGn77r+&}nfmpk*t>O=%*)O(a!&D>9h5W;})t95S6HJ*kO&sARKbU9O
z#yUFL-mwFQ0?v0A->z0dPa{rFyp-T{-pvnPe;2WB5MlX^nT`wYZhhwUIX%~u*lyQs
z+r}M3Bp4aR>I)BVje3WPvvWGV9;_ZDgnn~;3qdceBSryCx7xhhsSXPfKciV{rvA5H
zlP7)7Nn+_c^{?t=15R?fWD#~2MuTePB2w`5uXb8gLTy18bIroYwZe&^1f@;#R|#`W
z>(iwj2(+SIlluJUW{E1=-O@Uu?-d_`;aZp1XcvetHaciom|@nyqDGQD@^QF@;j!eS
zDRp(Gmw!77dz<VSVj9-Wa$s@Is>{i$8zB*QE%$rC1HI)B_}8T2Y@XCuDuH9;WA<B8
zd5&B#Yul*pmF;}?%~<l>7X;)$i!WUcy6$8Bh|9T5FWhe{Ro*-1IzN~b6`qk!#_tvP
z)kSk-1+XieIoFtFFAE{Z1$OLceR5d?8<^pA8KP=jDPN?-inBD*H^DYyHOAutTU)0o
zDxbV|QfPDK^ekuZ4N$id`Tz$Q?W-sD(P3>nBc1Yc9jNTRI0dJ46jb9jy`Apj84Brg
zgua#UB}<4iz(Ud>L-OgnSeG&{{VaBJNe2?zbx>Ji^Fp%^RZ6LWZ-QE>x%X)j`=kMn
zvf-0WyW9Epc6U6ZPHZ+ikFFGJwOD3ii1r-q0ZsYU#Ls9lyYNK?Y$d5*5W^`$JeLP7
z>>x$U92QHIkrphaa0fx1Ibq63TrBWtvq33znopCfl;9M}6v1=Zr%abX*gsCpGJs*D
zsY>eaecqR+mCV5zmxs*#s?iw}G;RVh7{k@+xIfKk8}{t$+($}GJWTR!1`UcO_GR6z
z+@e@x@u*Czsz?gmMJj79T`4RW|E{<cUT~PaOJS7L+JDrehE~s2-hO-t9j2O6Mb+@u
zfrMg|mZ3twtWbuDCakT)M4~BAtE`Qg?mNInVlk)8t)UMlULbe~rM%dB7#YrrHh+R!
zek*b*7@~hB%N%jn5Uw|hd4&^pt{{5Ue$(d+S|_Xo;=G>`(2FNlMh^HQOl>UBKx&i!
zzlUQYuq&cfp9ExV$NW|?kVYiv^)|l_PQVqDWX-KrBY`_%GVW1j!#ezM^htGTklh2D
zTZkLl1W(GKol8jE`_z^}vUk#~11cgyjngjvtwzH3y&yH1NGiFN^%zud)Q%qlcRLj3
z37k)@uoc1bal_y4*II>00))%c#nG1fJ0ljI_q0r%ABPGC#|w$Gj3izap6o}s830)a
zDMt;+G%2Ts52GQ6zH`AQyI1)u5eJxY)QoH=G54)L*>@4Fw@`mtt3wO2cR(R{CeynI
zqd1>To@mBE{b+{g^(UD$@-Ua6i|X(~l&`QOH;oXSo1*>f0n@W-4ty7V0A=Lby&C_`
z-j}{(Q)QK?MUkqJXATWc5o3t>fb_0J`2MY|k|H=eppge33q*j8-*i+}Xbho`o80{d
zchuQeNW=g`0+D)}X2aP!TXNhtWm1{od=ZaYDph#5upJ)V=QtB?&Di=<$qN(d?t0?6
zW3=b!69u&Xtqc}V_OC#n73BzR*}^otLVG~PaA9-uXERY`LtIUnf9zM4(X8Ndo^%jj
zGx$Ug_5AE0xbNIUrL+_HhFvG%WOnUgWGCrH;SL*65WAlpTBVm7l*4n@>daaT?Wc`*
ziv(GWK}8V%qv*HLOJWyB4Kkq}V`n&Ro+B+x3g2U)9t_!68$Ay$e-rqGg8$l&c&+WA
z+^qi5+xw@ibpMort;Fx!$Vw|`11D^>VP5bVFs*aumqG_o6_f)mK_pns3T}Tb6g(}!
z+5^L1NiuT&e>JNx!j1n$OWqfd_ylDa-1QvG2M#etVWuccCBLI|hBrAGz4gR>)IZai
z9R2}J_9*50*(>9Fa~p>~URUpCiyuZ30n@>>0yblaj8ax)#YypMs5T6}hJvjbbz2Kj
z+B9`Qs-gi$m}9<B_{h(Zf9Gpe&FTegM+eb%b+q}Gog0gu)GAON(>Nk8D?-ybSrrv?
z<%$T&rsF6uV9W25!<p7nQ39>l;fDzy!OHl8J7tXadJ`2S$QIsLEFQ4VK!jutL(=X1
zM}JrxQ%1WpuRk-^aGeo4dzF}_s|?>7{5B1RJJK&kw8GLHOq{D=o&?{7&r8i?+S`(K
za>BuFT}Kz;L$7TgVOg*!jHX_2F4Xm=s{81KbA;#mbcgQWtsV4VTQ8Rm?cvq^_{Hjw
zo*YpIs(ku+OfeHY_;mrMe6(2Q1K*F~(w&x-dDX7tfN%2>d_^^jJ_bDKW8lPynQ8x!
zY40NVOs4^|36`)mmS^F|?#%TM+5hHu3>^6c^B*1ddpz=#lDoj%B;PHTrgzwNo3-c9
zLhs>pVf?edWm@}QhudLRgN>NgHu%~ylLUxK5oi@rUZy3PQbd65eBkJ3IqPE_0sflP
zEUgqs`XOmE!@E|HC}H;GV-I$p5!qI}`Mwdi?Ut+P)gFB^K5dy*%PW0A$19BE?d<G_
z37>5;wLlV#4%pB+9p`wwCHkP-j@#mHuQ0@|IAhHq{WW$~sH;Cz#j^yqIyb?&-Neir
zmpvsP!8d++V<A{C%aFUD1HNv{&e#uk+P6O(l+&br^YC;#Zc`L{l6;5h!JAha6fOXt
zOkqi^S5d@G6wjKOhR0Vre-&ujjBd7ruP`pHi<dH<Q#!1PsMFj!ltFD$DPO1vu{|o0
z6ijxw6R;#@ci9YR1=-qaUHLhIVx#r@HfCIzR~vxm1eky48Z5dW>Fevqf+afRB+@|v
z&5zMBf5C0)`ttZMCF9<bo4oLPeN|q^UOOl8qu{allFyR@*Y6HLD>ddP@3-kweS^|_
z2;2zmPLH_tUX5mY*Y{F)r0|wvF)3JOQ|@%NY^%F-K%_BP<zb*jCxG2o&z+_2A33?+
zrYkSX42X%E<{Vbj54roFJrWw;DQ(w_=FcW;#3wS08ozF4W?DYnZ)RFX3zR)!VqhX=
zcx3?Sh{Pzd7Znv%MY+!1#Y#bL*b$mcLj}v>u4;dl#jiS6=Nc=sQ6qMDRkHr3y>^Jr
zj;8nC?e;FM?rFz^(<81YEt+kA+}m$h%R{ty*MsxnZUM~8dmXG=zBXTQc~3nuIek8h
zY;oZ7!^R)$IwiXhE2Jpahtk_Qb@h7R1rp-aD8k3oMge%q*L5s^J}qvKA5U8#h{A&2
zeH?*~lijx8wJx{PR~4MPNwkJH0$pP<j#oV;`4s=O!rv3YK>=$A4i1i?wOdzayUS&_
zuB|T-m?2H8f1M87b+mcgO6)2Nvj)TCiRRl^!-FGV@Y>ep=D%FNDa{TKZW6TL-<6ZG
zn^89*#ERuZ<h`_u@{>MIKYvZ;faSerDm932J#W=?#hdHEcqL>Ce0dfKlD5juk`=+S
z_qNwhUb_5z8{${ed5jmryx``-g+LNq%~t_`VPgLE*DjXj85kIVd|p(5cbyc7h4}ak
zr(Fx*{E6Kii1t41s{4Z+Z?s(IhjuXgX8F~+ObHs#r@0(s_l`Whj<5ZU$i3o=6+^N@
zqz|(gremsxoH=K}Jk<18_~JVf^<yjAW~(ATMeWWhRrtq?Sn9B|O1|3mIqFpCUtWjC
zHL;$o1()Ni_51+GdbvYGKp+XTl(*esaceKn)wMed<SN&+9)Ungul&ff2;a?dBei=^
z;@{~zx~{q6FP%e=QcR!iNk3OI^yboEH5PU5cS_WSy<;qv(H<c0eM3a|EjZ{}0*TnO
zBczS8Dz2=;C(79|UUtpBJa!l0Nz0z<UPB7MM>`%<;7_KiAphFAsRuP-q;6sn;caqQ
z`(9>uSC?|<;UptY+byGOnqRNT7!6>*blB~tzI#^+c-djmX{)9L%@!+)zBWzcS9<m>
zk7E0z%oC%+Sp3@YcnsSA$wTJw<Mha2rTOv4chWIzlM(=FHe`=RcXZ_HW2>v*#Keco
z0?}-a>lmk28{t-CpKx(L=?d8E+>xg$;8*l(!oV4tt+Tk};ELhR{GZ+Nf16pfotu;I
z!1cLxi$Czu=&mn<ee!pse}wi2W|ASyC^eNsGOR8VTD5k<V`Jx-8StK*=9#l75hC9S
z%xrvYoGEA?msgxdtO#%ErgiQxC;LepX%2y}eXNk<!8&Be7>@xNDUxGlIy|h1ONaUG
zEEZjALr@$NeTATIC)y~zXlfneGkD>$ZwtggEFiJ^s2ccxF|R@r&<Ns#?*k{4N>C#c
znVtlj9yq%NR84F4v&J{U3qOqwD38jv;G~Ocm=vI4fiE5!9UpDH?S6#i0-O<=A6h{q
zsXwv$21XWEZQedDS@fsVKM~fzDvEkCDeiU(NX5=A^zWFlMF$#IctCFG5eCPq3fXr6
zCj6O(b6ZACX=<hwXv+>MyUg@)iceFG#qenYTO2=QWKP-ev?g`_<v%o$OX?(}jnF)G
zYD?^EP>M*E=0I|i((iI;_<kV+(uOU$`2rIo_)u@^jg{^=XHa%-kntiD2+Vh-m}$A;
zd2k`yyBjnfS-G7zns}E6oD`1RJ9~pEQWgwkLhy_^R%s1s;8i5}B*y3*0*DnKrVDp_
z=X=GM@r$2+GJ<A{-2`6veP4}7qki|Ux53&y3K22GI;0@6((5c|=CjXLrHmp6F(!`t
z+A_os^pXhK+dpzYjd`e}SV=H#_asoCt?oiQEHam%3`mHDC0#8Ae4$~_pbmIDG&=H#
zBVSet@?(;)$W=Z72$S+!mJws3ik*`tgur|%4%X8}86)S^5#86*mmJgOl#$($Xd%`<
zj0fk0DU{+?GiQR32rXCnSEOVhP-*L)N>U$L{H!)P(As)fc&F753=s^Tm%mrNC^~qO
zP*Q2*!D3>u$|R<l=F8vvEbJ7c5mO*!R<Vg|0Hb}C7oC$IDOo*iGgFA_Du?>ZCi>sA
zJ^Q3TH|9GV)X?5t2SA9GJOPG-;$c)M>oI#!Db!yXF5uH3`k3z3<<seyAS$>6zEAa-
zU+q7X8XX~x<%jp;(11)KWwgT!FcJ+O_G9<O!1^fsrFqpMZ7UOhUH{~rMy;9}OYryU
zuj*0=bKeU|6{`@ybJPkG`>GO|6Fz3`?v(84xqthU&ohN+L;<O3b@I_Ha&Pvbaj+Pq
zkgyXWs<%4I(pW~vAoxZd8e~6#Xf7!&V#b{^@&YKd6%(UD!C$~CneOlo8-kLH6`uG~
z4k}{W1?ST37|()Nx%WEQHu%w`(Au|}ZXPTbgVL0sRsaNHBq9v2d)jYz7%+yITUcUp
zB9zkT-=bF<<MLS=r=6~=hr$gv-5LYro}%?4j*h^6M4$T>ux(&s5lUHmW4jdFgIENS
zh%tezn5y9q&!q3hp49RiJj&BF=s4dvg;FQ>q2UkIogm5mIY3%10`Bl}3@Uve4s#%7
zb{4gV+=e8vIKKk3`nV$a@Hw3dd;vBMrmf@W3*!@(AvyqmcC^TyCvSg9U1MQ7ht7Zz
z=fybDQ>g4UM1VR1+hm}uu5ypmOF8OiMddP|W^~4zMd|OW)W2#-6C;?>hv9tFKsVnX
z2Wt##D;?D3=%t!GrPY`9w0^RM*f_<f9E{Wp+5Q7E#W4XPKi2ubHZ;Lb_*)JPL<7yL
zYENg!L<};|u?AHXAd<iQH}FD!69|ZU02aaW>(9S50zGB%QZ0qXHZ>6nngs7tB^neh
z&lKpAeaAw}Y>r{j`5X`*p}$>0IPE)zaH)D;3-t%WQU*Dos_fPpk&?ATglL(-5T}lN
zW~<K>AZ`bEL`eW5m5DJ4BkaF?M7nI+^j<=xuLStPJVYypNpi<dmqj{$J#z{SExzE^
zMzJZNT=~c|!SdpM%*g)or*JAZ^G8@Rs-=dt`C-vNX&35fr?=>Nc|ZCDo$Wvn4D|Fc
zBR&WDKic;u?f?VxUDa(j%`?Mv2QrI#?UBxL)OR;fWd3r@VlMRePYQ7#_?U7<8COAB
z<uYaD4lo`2?7C}_wMg5eV-pwRV{MHIDt@cXM%YiR4yH2?0lF?lqn|M)8aoIrV(_L4
z=|6kOB&C~$EeZ#<C^{Eew8~V_iU}Y%w4C97pA!B-mN`;xs-)O6e=Rt8^b}$YLDXZ`
zhwx%iVfNIEoJVijt5aCMyX4e>ErxWt6Iy@m0-?^Ew&^N{C3XKHVmhoXc^Cer1NCxf
zM}VZ~MuhN0l^ze}D3M3dPY1>y;wn}i?C+f8MP6{DH}Xf}xD$}BQyvFo+&BF>QZ+5Y
z2KZn=dpaK5essY01ros&S-X0`0~mUhplmbh(=#eNid|JzHHMj^e&{`FajuER&PGZR
zOPmyRG!#5QktxrageS}Atx`R>p`s3d91|;&F&WPIcEJXyb1IKRH$fH!%i{W_*x`pR
zIh@9itle>n!mEL<sS54hTnEv;Wm8T=PVkSap*uTj?|WzS9Lu1Y;9<0X5{{`~BwE5V
zNLxVwT?fPH)qN(|D!CeffiV$NV6p;@<3(W0*ohrwsvqIkW^75i*SEDOPR2;5VzC{|
zcU9w1|HL;;jX*R+Jak+MrM|sqnoSf-%@hrp(jD+m@>w|;XkJAVcRP04x0h9EOlyI`
z5Jzo_S?!sS*6h)$8}$Bp(zmaX!$|a2h6k(jA!f&~1u4kR%gU;JZ2&q_(yVW*pJJ|l
zZd8q$0#^!`n9L<Bti7&Bn-pBMJ?bW-#7raeR7apK3jv9*-M%6XwHTzaVB4w|3d$fY
zMoP0ny|Ej~=KoS+lA)VFpu`j;i+F3?v}637At8bfDsDfd(Kd!apEzr2R{lIx40His
zO83}UP_X{85=e?!gqpcgAp1#*33nWgM~<<5#MlMrQ;Qcxu#@&f>Kp<cKNmzYLJ(wl
zi2^U^))3Owdqh1;No*Uc3L2=C*alv-W6)9T->vfkL<Lb*3~R|vsb4Wf9tBQF4{spU
z%N(CZvu2mv(<DF9{5ZtpWM+*L)3$iK>va*z?oWk=>!gm@JXkyJowxS{+KSE1^RZ~R
z08v8Sf%lYfL>t=F1t(QsRski~5ZtmzNr*Fi_+rO6P1pu2kn4(XQ!!dkiHdE!);S70
zEpqON5|gF0qNXj9ZG#m{i`VpPp~HaeXgbB9?5Gr^(N9awvmDBn!o(Q)W=f=`k{IQh
z>R`f=N<CyZy&4=?yp+xM?!~>ouYF-L(WwcP#9tQm*QQuQ)CA7pOYIRm!p~TAK^uyi
zg67V}ep^NSStB4B(p@7WAOF4N_ogaVf@mtHJ-4B?*kzuybiNK1tCQ9$Fe)_Rt$pSW
zK^<)#PCI7^lREH`Q;oaKH8o*CMAO<0oO}LRD|$3DjiP6GPp#6&(${Qhk2Z5`Q)L|q
zC~&HR`FZjCNl{kW1XRVrz?UaAHkoari%%FdHm`!qFOejh_O#1O^&b|yQxWSECB0Md
zrXH(s@+-{8_2661_fa`VwLq{^#9NS71>c|w5lma5Y%-lyShRXC$oO4Kl#m5%n9}G4
z3}6C)PA9$Sc4Dmi^{%BtqyPEzN+8MMEB;IQjrLX_k`~pb5KLV;HI-6E0Nq)(ma9VZ
z+i#E@S-R-h+)ss|+CtB@CSK%a66YYTlEK5^L#hn3Nc;Xb&^2M^02Qpm=VUb8fF)MV
zkf^s%6As@Rpl?LPHb1!orU|I~#r1$4x4H<KI9;i(iVTfyrxFjg7}7e2Ejq{aNgYW4
zM+W%cZjiX&4bkP7&4Xm6!_^}~Bp@*iuQ^?eVBpR)jXKPtKC+=EUtr@S98DoE$-isO
zU^nHK+F6XfUU=Wu@CeN=)8CV@M3d*FDpqn>=Z0cF@mkIi3+m2cg)i)iG<S;Z_j3|v
zoZCI!gl)aFMJX$SS|1UH=|WI_jp)=yF`9O*;u3P^3So>iQ1(mbgXm%BsSJGKiDPAn
zFK~6r&sph+eJBP=&W)-vj-JyD@@DaJz?;4&E7$J3N=P~jhA^PdnN+UE8Q&&YBd5-T
zHcCl5mmJegq0r~ej5D;DC=TmO(tO~=TlPuZI^SrvNddIyJ7lXK<iQdE)CJ|h8IvA!
zS?54#MR`)Hx}gkQ4kDx~b6t)#*UsM2Ya5N_2SfmWF{uAH!!8Md-r~v^K!qu=PyEb*
z6Wz8M$mgSo%(F)L6qtTz(UThhL7{h-51dlxUx1#hpw{d37?x=&eib|z?^lM+yZ+mr
zI`*_qb3|JGbcv!(WVyH7WLnl`2dn{C_av>ZN|1(wVV7^ce$0$Rz0IVt?8~kVAwwDg
z=jIZ{M;8`FKAoF{nRSQ7<xFi-SVu0$7VDwMDW)>NRn8R4AY==pzy-^Q;foPMS)n*X
z>tar*9;yP*?RY7j6_Pr-g*&E|RmPs4k7~&b=1q~u?)t1Bvd@ThND8W4-jM5@O^aBs
zzdJvoG^J12Yp$yk_cL^nJ9qcs<;rz6YlV|E1x!n`lj$e%=7wj_r|{3$kF9;hAtJs*
zSndSdn{jN4<<CTbOsZNDNDIrGD~HjG)1_XC<p8$=vdGOkI;41HJ36{B^wJa_j$~XG
zm`^?Q{EUWnR}22!D;)#%bt?zEA^t@R*ca8^y-S=G7KMC`-QCpOyAI9nt;mtqNU&R+
zKi*X)w(wN_>L9UGr1$aivEPWg@h$gqu<HTNmOrmxuBrKli?H+G9yX(BbUL!?BGpQt
z=G}g5eDo~p>Z!%07?@HBq+>`qytM%YAXC>6_!X1%SQ(2h#%leT@d*3Pp00qyxL<mI
z>+KxA#jrZH)Jh5fGPRYX^E4Tw+G#YX9u2)3wYRmpSzgtPr|My-SkJ#H=4`N7#pdsO
zziBQ3L;jufU(rYlXt|==KHt{_vn~$HX<io;4Ww$o6g-7)zHS`Ff$lE#5#CF9IVB#F
zBTkRq32*rjpL0ci8*6`aw&!d$G<3guz4$lJrB#Pdld3`kBKqpN{|s2ei9<A#PJiD`
z;%#<rFMk8#<;cXG){en}62H&GkFTvOCdzX(A+TA)M3x_H3{mP^3r==T0B7mLpUg@1
z*|XoKtlP|`Rz{qKFA#N~P+{FXwd>pOe~GgfG?>kZOTYIP?{wrpLXO*FL*4zX4_=w}
zx+)ztFx%K~DI8rikQ_{5gy$}f>{<l-{wNOE%*ohy^<UhxN;z8CTw<`HF|ok<^!Xd=
z3z<`#ZO6+`e?FcLA|34CYa*sDNIJP_&u+MXKt;4+dpAPw2~d2~d#qkJCWb5rNrR31
z-^UH5s<KDB*NhuirIto^bJ}Fs{nl!`sSmJME}iV#Ufu-ly)ZruQ#e@Jry51JE*^hC
z*C_mHT6(avma)I$-n$vDSn=ajRLIa_WH`;T0G<0^K6rJ;-m|~W(TZFfIk-M|fi`ib
zTC5>rD?Ifse|ruSa7j^yGsUtKpCLs=p8+^_4x&#YDFlW6S6htD+I!90t{NB}QP}fa
z7{-HGBAKc5{lwoSOln^cL7Tq~197W)q=0$>tIo)dm8nal-Re|i*xK;K6<=A?{PG&!
z%9opY_uchy=hfduewz$!osK~QreC{wpyCu+MJEoM^g@EAC4y`dA1%~*T@YtKuKdx*
ztM%lyuKQz&5tr@r+PbW!f~&f22XKa7?I`7=%qU}V;%Ti+@IVf@C~nPv9(Cz>(sFfV
z_}FHd>xz?AZ@^xvnPtG-Q!`tr(OBWBTxKwEd4c-xRUMh-h@1UIoo$-T>*PPbZi}~}
zXfCqxRphUuE%|phSKb=No!2sFzs;oE9c6+a-CSUiTeZ0!`89sLdi|KUBm_F&{k@ky
z3{ctxz-j^ix{B*s3<`MgLRK_6$Ui?-A+TmE6f~T~F{|OCW-&Lj)dhmJqJrkLfY|v6
z8nNy3X5;G*E&CRi>nT0B5JMXwCy|?Li+9cMlb~pm*kexk<gBxBf7|q~jahhy2yY2|
z7bK;&Gw8FLpw;DYZdf!C1*Y{Tw>^Q9zfgNDT<&&Y7kVX6=wp520+I$Q%J7JC349ad
zDVe{@IZV^+Jj(f;wja&L)#QVw;;+~n3_&A%j>h$_ha-!Nf=jQr1}bsB#Jv`K2-UHx
zDl{0&Huyof<tQ1w`EL6BQ|P%$n^4tY9V=uE+B`)z^kCYRNP2LG4g=au<HvATGZjnC
zzp1vTvRr@W0U7^$TrYWkM@RS;K)(aVyHFN~nZBecD4Sjr?~<Ww)D++qqZDtTA}cV8
z1bu$W#Dl6?t?nkny?G--4$S+VEfksAl9wHKmRRHrKYZQ);}M4&JVE1oUF~oXgx>uL
zeMTG#ewbK;_DtAu_jMhSopkb43vjF2_sv@)qukNi9~q4C4aCTSwejj;(kpP*$3dMH
zPIwXXu<dwy8DsJp&{iO$0{XU40kw~(C_Jo4*Y3fCjr=?V&Tn!;a!-<!9X-*$(*fX8
zpqZnOUG8!)IOZ9l>6;nN%tkxAc2847g0oCKs9~+W5<LG@wx18g$)v5pK_ju`DAeaF
z*=d@~dOQiY-XY8&ieCbm(o{_W)L~7Tgg1QxaxeCyCc*ha#hfE=pdwrX6eFe(6!7hR
z`GUeII>u-vTwIfmILkpS)_VJ$NVVs;b3ACL9nPXsAjMIlvCebc%&<=1iP7Rr8|pb1
zmJ$lp1Hs}HX}Y?9_tD68D2H;gux<;d<*SLa6evUtPeay>t6H&bP25`4Z1Sz0sH(06
zlq`+bVYAvt{(z<K`N~|$eWMT(^fJ2xkO84z#3Zk`o+f#R?crQ^*1qJS-surYx;CAZ
z%+;!M=O$IPjOT*Attf|iyB<9Bc0MI@5*7O+CxD+0oiM0lEGd$ZnRBj<1tYE#Stl`u
z9#P@bO&EBnIyF*ff*_wbJZy_`px)a0yVuJD`e}NA`>GZyeDk$e7)4=Jr}NvtPlMVe
z?<!V|dRR2Cr8dRrBmHR=Qc+ec1gFYy@g2!mJ5mMRsn=aJTCGsqw{nu91fQgA#@=_%
zKG%eZ;-UB+7YY_CzrjN`&xnVtnaz2AiJO)k4MY-*eengnzN&*ehJ+jV_L;|``6z+T
zQj0?3_hfLZiPgVw*`Q67cgQwDd=twJip%cqr*OVHQ>K&9o?SuB4yUO_diJ+2KI@({
z!=1z|#SfaVOue1I8F*jz6(kSOJ!t>45XT9DJH~B<ioQ}l<aiXI@h*IbQGCZ(4P_RA
zjgBbBp~Tw0I*+YT!Ve?e?qhta*WK^2A+?{M8t(YaZ~ZygJpFX>_|>8?2v0GG3uM9C
zDEW&@O6r6ZJZ!DMU8OTVqPIr{o~GW~%bys2wb(eE{R$_4)FLwX@O3h0)rk}a5tu-<
zfugm!fYe?rlc7a22gml!uo3($K0t5x;?&GMu?pX>X=iZ}r(&vBGF8F3_;CB-RMY>k
zF|B^uskZ9)aCS&DwL+dKuVAEtuqCa=P+10wWi)R4*RN>LbE)^@{f`Q@Vn-<g)#J*%
z1T>o983m)cWi<jHD{eB)ECT7;jRx&r{>T%aJra*I*~}+E=Qb4hu*Fy22tC0%bhIsW
zAn<|D1WO&GE1SYCh!{g8?(s@Ng9F~KO&AY?rE}LKoXlj?af2s>e&@@kx9^|upzX4@
zk^JEoqk-N_$xrGt?hv1!Xym!4vD=$21R~|*HcN`GW&8E1wysSrpL}?#$W$24TNq=(
z$(?q<(4zTQELEWp<(lUhM}HR2F&Qq7W_ygays;PTa?>etS-A{RE%TivB0m-q`&iiC
zbrxGi2jYaXi8A`pz}oXlB6ANmz1=S#h>*((41$heh?{kmtHY21b064@5X9OxT}g;0
zGh?CR`rsL}*vOXaQQ{b%d5(+bZsqgQA<40pIJM&p0J@5%#z0Y>4=+d15TfNEy(fuv
zVU7Z?A+(3^YsrN(LK9LIq^sKt+#k#3%Co$4@tL^99F1gZCR8g~&L0H|N^$wL?+YOu
zApKD=&mAfGzfWmXjzxDJ!CG~?w#L~V35vc?shXDXWyQ-WSO#yl)@tTQ&%Z;*;taRv
zMmRqO^{`015a=)Cb{q;S{pgK<><?hmHAyotjNEhdnf@*X2Q|*JwOBjD>-t{bQ=dy}
z3S!91rey;)0qWgS>+pe?+^wg)naNs18B-x;_C30(sjD7OGy?kr;!;;?u6KzyO8Wn7
zv&XGlkG1l?k{V0t0j8X(jKRWJ^L$AZH<M$@JFy;rQ4m>)Swm=L7Jn%O@fNa>>8#U9
zHh%?v>L|9hRq4fd%VXur%B}DHve~0pj?Ih3$UZq(;y>8zg2%{a^<Fi2OvG$!`VWOS
zk;OY#*l@YG-9a4#mKU4@2U61f{nfKQRojx9?{64N0y%etEK|a(kY-#kHZuT^rPAvd
ztm%`c#S{8C;;nvXxYSnhwk)W~!|3bQc%g&-Mn`Z@Kqfs)6&2faU8ZFGZDVfJdnnS9
zhEAK`EF8kw^RFE-ee!duiZk2C#As7fM)!v2S;w}rrl^n!YhOR}Pb@pX_9d{9<$`po
zW$?U-z1F*YX@5dXfg096=rQ&GJ|MWNV+0Xh21;pMe+m&#-omYGenRdj><r4}g6gr0
z;}a|VJUaWyI`$}&Z9@~yb%zBR2lGB(`($sCTdVnOSns4t!{%q-M+x?pEkFz9E){f;
z7M$R!aCH#UE$jKyl<?ZZI8;ku;<4@Nyf<++$)V!BcnZ7DK#2IlB$#&RqcYyDbC)4F
zcQB(Uo`XqI*jXHuGr>|+%&HB)&ky(|_^x20i4>m*L5u3wDAOGKo*nNODQC}Ged$S-
zGY>Qw#e(eev#gwks-j(r05)Gaw7Ra?c>0w@q8@SMd<q>`D(_DDgm>0XFZ6InM($M)
zvt{iPI9O=Hh7E>~qi)Ed)B5H0uD1zHN=e&>1L9Qt5M-l}Ae19qZrpC!e8E7-sB_Q!
z_yJBy#}xP95>FQ@;ZTf=dD9YU_iOq;0qMt)v3ZwT!`&<yts{Ss1+I$3!jxq*79722
zEzE=0#zI6ib@)O9C#`(IEnj3}@=-CvqS$KmRpaFjgClJ2gKxr%S&%IpNU~6?G8`xy
z{^PC6+{Sw@2%YZdM9v8><EW(r<4D7GVjcHYw(@Qh`Cf0$8~tHncsZU2z!9GLa`3^L
zX520H%hf1Ygn*GT#HhKFum4%`;3aANxg_v+dd4e<CB?$cI&@WrI7?=gUr$-p;;|$o
z<S?qP11kumk@<nCDw#GOra}8J9khQB|NX}NKa!=wpVw`rTNMdsO?>o)!)ngSC@h|2
zJ|JAYs+mJJ?_(woXpLU$N&`6A%Y~2@xw+IODr~O`geVN>j^%}3&eM;J`M%?ck~I!p
za)Jj0O<Z328UYFnUZ`4$S6ynN_>}D4u>LE~nM1o8S4KqS<0xs|0j-=QZG+5$eCiaX
z@u?;}EjcZ!tjpJnQljKPpZ|z2EDq++iG#3R74Ystyj*r_-=BF{Brg`oGw|2PNSVN;
zd4ZcopF44orF*J$-Qm($?ZQ@F+>9_)mRwfIkY>Kva3npa`3r!5D%!V>H!X>UO!JNE
zS&aP=B|#kMdCfg%WrZ>+J-M{A8!PwmYk3~LA(FB-d=i(e(P}usszg*2*)RaRjNKaL
zeWM~}1W(H!RraHBcGJ=y^r=w2XLwwUe}A6QYA1xgwxiuOgQ7XSDrY#;>bE6iu~OgC
z#+<fnt}Ps4@S#R6T_5Zui*@^L<{hY_!8b;s-2`B5p%mOX%2JoCyumWMFs9)YZHo_g
z*b~-td+UR$Bcpu8B?lc8emT5=wDV=C;Aa_MuF8B$xvuiW3!kOvrnE(*Me~aTl}>GD
zJEIND({X#cX9hmxOyA})xzU9%cy4G4JIFA$ApN_WLn(2`oYKQc^Eiz5Mw5EFS}pFD
zNG9Yp9Rvj*{LtmK8Ee)XZf<C3SYgCRT)O8vZ>~o2?2Wad@^vF^)?G(WDDiw7!LgxJ
z#GY*?ZoX8^FsmG!){AGlq?_F8*ONoHp3>5UyZKTxYoR7Pi20QE1u0!MRmatmJH37p
zEd(+28y>F6Q!o&=_BPzv5LL0bzzX5WotJ_<HfPKJtOlHPR{oq(;@~zQ80zJvyR*B?
zSu$bU;NV#Vh8Mkar=A%aE1TQKQ7R05!$j9UDEWhfZBO8%EwV*XAAfu3yKx>gEzdVt
zP*Be0n{urXEr}MkiwL7RRRWfgRE!0J$H_;Rl&jm|c1Ar5f2&`t0?H8i9CePm&^7+^
z3PS_&{1Gde`q}POtYx4qQ?4EPPIGL~oMm;zv~O&LlEw8%;t9OFsN40)lPb0GQuXtb
z1}@!QS!QHk+~84k^^q6P{8OQcVhNwxG15;vFXd1fQ%>+$u!|7?racDSjDz7+=kf8u
zQ&UaM_ZvoF8@(UK5Y$OABcMX&vqIVnfQeFseg=5d+qv0Tv|_IqQCO_HIxrAt9~emE
zF|NA~fJ(?<uCCEx@$IUl88~d`kIIp})`II<fG1+HR!IV%vAkc)n7V<ifMC2UBeKxK
zjJ*7Kq#!Za^mQVXP^Mag!~`ab;S<X-Ayc<k6cnOq+<Kjvu(=1!at)lA_7SgLLoAn8
zSsohzv<wBgQ=T&vyzg|7)+pZG+;p&%$Pkw?Y9k@W0uAzJCCUD<Yc`{PjH4BZh#HPO
z$EWpp&c1g<TmKYYA9+c_oZJ4#FYrK>G@Q+o0IrmsZR$x57hgIm3YtB7igG`mnR<%m
z(O<t49e}(BiY2fUXI6gvqnI5qp1f2!teCWQ7|N2DjE*^i@L0_C0cOCT668sr%}m7`
z+=V7G`Lcy1u*80vs^?Aa7&*bqm}aHH99<$rgP^a%Av$_MQG5WrfTK(5jx|OuMtJVS
zF!?8Po2;_<n3Fcq7g{SIxsb5+2+rY5blkPf0c}nN!RS9cNB%8VjqXmVN@xkM^T+xd
zGgkRth?bYd66@Y5_KlM+D8OZ8w65qF0EKF7$mV3E9YLpYo<p?I=Txp|n?8MkNH}#R
zlbqaMXcn%9K7!#{u_D_^^T}3`aX5ayA3UV~g5Ku=Np32;4lOY@3uMeb^FFKp>^X$@
z3%m;2<%s>pTQ3ruLP`5z@tod((UOdY5AAC4_JiN^)rWya3Y{v!g7di+pUifMK0!bm
zAA{-W)-lIEySb%01x@mkcyc_AL5XC`^4(+(Ld0L^XXkD?;8x&ISlqRt<C&rAC@Ca2
zmU%u#(T;Jim@}L&u_!7?9AF@t_CfDUj^SIA<Ry>!r`xoI_j7Ja`|)v#A+@|P#Y9V#
z#^-5mQ{}+kb6E!_1xhVHGzQDvW+O$_X_Vz~cFUnLoq!CjuOM|FTx%hfvG(7sVrvRN
z|5^`azUQg&(i`vvL#UybfYHMY5jd#dny_X-w<d<6{j=We*zl>W7Gm_U6D3C(DVNq~
zo~jVSl(GuMV2%%rK=?c0?ku{DKHF66b+!>rLkDy_;G3^aPoJ5`w$~*ity3?mRxBhP
zfrUI5xMdl9qLbjm!YZYwK&caaV-vy}s7N=n7{s~XfFr*;N5c*6yR<}bONL$T=PTJZ
z)X)iVbcS{>N~@69EOzj~=5Np#E7jLOJ_=QF&ot@0U`lzmcKe(`&2}_${v^aD$_>k8
z9MVQnp$K)h$Gnwre(l3&596!cV+-s0LUK;vy6I%K1(G|)agl%el?rRc*APO?DC-*H
z#ag0izQrxhzcK9(da(}m$i6e6J^HxtxgQDoh!>|POy%m#RuJN)lVSzrWBWe_@-h~E
z=P@>U=URlUnGqhV)n@$z7#I6lSm}7|x?>OHAF2vy8T{oa#bF<_&$pWhV%Pa3R=r2v
zY&JlEl_5!6t&!pb6u20Z8J(n%21xl7jKEz2_Y&FO5ux$xG6wj&<vgj$ljbg*G~+Ky
z&7A10-ZVp8D=oh2_4C79sEyVas2(oYmOTS#ixrL9L^W1KD^)gGW<ox;(oL~af9cXg
znW3|@z5s&!bYf}1wSW%dW89Rw(YL&1yOGBjZf}dy!BC62dn#WBUG?mP&iQN=i*eXl
zs)~_)arEvHA}ju~!aAS@niIjenC9!mwb`^D{{do;f5`Z(SOn0M*NanKs+q~l-|l~r
z3;Og8We<|D%EXYI`?LYv%5%KkWwTn3Gonh)Ps%eY##~WBm%K`0D>=+DM9q=TKfDi^
z(16)N)DAbiQwcl+raqG(BFlEcampJcb@m>MDLlWRq#rpXC5ZB}xY+n<oJB}4<^vby
zrB3IGhhF?q$)OU2OF%H41Iy+VN`*-?h@|$S$K5|Kd25_*74CD3QcopO(SbBde3~u9
zErj8-$G-!mBGB2vb6U*1Zn`Vl^i>gAW{c2>`5zC{clcqY-H8`9GrIafX}YJszCD*(
z&q+-E$g{^Z)@Wd*8on4)Vpj$gk>E!x{HmYYpNVmc2z*m1+{P<<l(&Kir)Xs*u_hF4
zlJ(w-J&BvjqDMb{n<k}Bk(-T|JKn|@bFXk3IUD^f>*xfed=1FHQ=<2kHre_0$;0R5
z#>y7+iwB%z_D8uI9F%!anZ;DfZg@JjpOiyir|y2t(68dY$o}m3b+yx}-_}TAj3cAX
z1LKyG#&#Jmyv#_r!Wb_o6G#pso<1qwUhi>DPlAJzbmzZ*Qid!}frYCzLS>vdJ_&V|
zVdn|*H_q8Ld;sYAPqX4ivF2+fYrNJa?2`<jJw32ekb6${{l1JM4A4uhluKsO93zEX
zTtTSk$m5*xHUCstKIpC5OMjpNVl0RVx&&v^o1sG#Dtuyrek~ci#&ub5R8{Dv*??yX
z!H&?2(z1u>shi7eA><|wSl8xZnt30l;>BS?gzVs|h)1rzcFn`IOWRuHESn1DWpB*J
z$A%modju?t!}R3ga(FMk*S4UZbTj4#a7~P~9lxv(9X#>KiB7=xS*FlrLf6yKfbR|8
zVd9~Vg|iAc*ULRUKSIRw50H&j=Byj;%=YmYambG&cXUN`wFXfjM=OcmJkFkOO4YC(
zVO{?dHxx<CC%mx8%J<*>2&M_Y=0AgRi9ui-rJXu{b24^*U?lK~w)1!)Xgu1%#M`tM
zDO`kCLBM~ux%*dd&F83`W#j={q(%a6oc;P_Odl;>nUvV|!Z+K~rp3qPL3_!6KHlDy
zhpyMO(e}55wMe%fH3H8m(17Fz*Kc!%g0oz$$?>e9SIscE0CBw=VKIXJBn)_^@Fszo
zj;Zb=1_M;6QHn4Hb|J2z%5l@aBIZNvCn<VeHsz92Wo$@b9coLsGtRvuTJ!O``-F2O
z-GLoHn*TK<1u<(V>Vw2Ij^x}Ju)Gxunt(lK+v^xQS-=*-afu~-wGE%ylD3G*`C8K{
z2o|{dWXXf~L+SL^@@3nfZxnYLPd`*?t$2*RuO}$I;l&D5?z`)~l#db}Qp$ZBG-lhA
zY=aVHFH_Y0_F;N&fu@V=N|EAc90lnK&SUtOJP7%&kqw=RuyYuj?2f}u=HeG}8`iz>
z$b(pJ2sJvC9dsq8qw98nO$x!hKFP=axjWJ*)HpgnH8;Wk*kvXR#n6Das2{Xs2t~7W
z%I=K3Jgx10#N2(k?=5~p)gFJnJNj#3KVMb;YYl5Mws%*LNe*Ytkg$=2c14e7__u53
z{&1z!-ku*}U!pc7Nf+4z9wnfw`p)q%@9vgvqDTAEMp}Y6knINsWmV$j<<~wVPTsQZ
zhD=$jIMF1U@-4<G(HiI^R|^lBzsvS({M<6UcPRhAo*oPvd;Lyu&OAr5x4Mn<MAp+_
z7joP{X+3Ib?6DazM3yI0C>>qMS|G;CB@>gq^PC(6z058C#Ynp2F?5?CG5Wxdqan_4
zSRAWamJs4o*}*5c%?#W3<CszK{wq=p-c5Qooclm<h<^GQM$+|5|MbrMm#I(kbY-OC
z9W5!^<1wT^n0=dPpEvH#&bZ1jJw5eDDqEVpJmEI5Plm3bgy}i4eWKTIYxOa5@5vlq
z6+2vM61+0~$sY`7b*qgAd|gW=%K3s%P%%L{Ce`IoRgNJ(8SF`Pw)Nt%MvgDQ8;m@B
z6<~XppNm#?&#zH$j?4I!7^>mtDWQ8(@{}2)vz*3nS2ORNf5>ci$35m4{E|9k<O-Ne
zCE&wr+ZJpHQw%@)J!mg`>U{mT`lYIX)+%qcDlxt6tgzF~erd=#Gup!awTy01*Qukj
zf_EnuBId~+=VcAg;ER^fQogu;+mO5xTn(OWQpsR+Vt!O2<aJYd?WhPxOB}lJ3EsL^
zd!=Ti#sYV=E)qjyfIwudkjL(os+xgq@vCY<)NKaeDED6^Lx;=>z$TkvTu~s`=QQI%
z35Hq~M@rC1?fW_oYuS>h*dW?e1rO$zNuj?ECWc)|x}LlSDtWbq#FC7*F$62GdEKU*
zUKRi1%s3D|UEckx{P$}9?}y;&j>u_0OZJUB%g)BHXN{h(p5hKqG{QY$+yvUp3f`B(
zPH;@8BJDF+!=AdGI)!irtcJaGij{OnYUt$yYi{jX3eASwCya?zJT)q32ak5aifF=+
zfe=Db#!7TnHwFGG)@gyN5MQh_J}4;;)BU^tsy7RkVe4IEkwpm<B{V<tzE-)O4SCE`
z5_o=>CGqUBD-gD0*5j0S_iihcoAD)++&SHKl3F-9U%1}i+3Y)(XGm6MoRoDmIRAsj
z$yMu(I`pSgh50J|K8A$GJgb??-28acTp0|vEG@4)*Z(em?{SG!E+Z>QR^ir$9Ix>e
z8svP%98*5?+nPKKK<pUD7J7!mn({fccl<8i=1<Z&H>8l%X7-s@Z5}N~i&iI$sR&J=
zakgH03vHn5sOoD3>toCATfzl5LshK!E5NXU72NzSa+q2E5AW&Y?$g!GPky3X@k}-O
z(_7Ae2Qtsf7!q&0uQzJ9){6ss)lcY8hifgxH}UAG;`m=p2|kRJM}Hx9areQ-_RqQY
zIBkVwFSE#egi*Vj4dYd0{C6q(7`1XsQw|#Jre_6tNF&LFs9~TSPd$tNB!nWkpHT7E
zDMz2-*jO5CH6Nvw4wfrKfo;W%l9e5wh_u?iXN-D61Va;tE92?;_USK&Ib1yo%jBj&
zxAu>4g1q-+7k<8@RLH@z`XOi_FwDjDhx$~Gi&^ZXBrA7oA$dpRwPAVaV3Pzp-dBlX
zHAi{Qwg*YEd4~ZI<w<0s!aCW)Yz1^Z^(OU{80Wi@h3q>c85jui#mR8PZ)8_WNlJC|
z=4+9(%@3X<ox<YdFK3S5@i)a_KPyz2d<(IsG1vkGVB@*M&z2`zsjBgtS*6m2YM{YC
z<dVW)WQ1Bh#Cg5XM-C}?hetG-SaU<01_zvlVh*8elE+lXDm!7VG1PhM0$nkEOI`_^
z+xrfC_}8<d%vr~B7lvaQ(t==__PFR2sSW*dwJkZ@w2^BXT9?)T`7MC#^_<4_DBMxp
zb~JtpS1o0qUKu8-u;e<<L3XbR2DQ=!{QEx452LF9baiDVPW!8AlhHS2w8Wnj72<y8
zgC8m%bY<P-`Oou|XQKp`4@a3C#kOfOhtt?(9b~;$@-C@PCA3~gXW~^X=G3L^eqg1u
zGyG=8GEeJ{{`wG;GaNSw7ut}cs7zDMpU?lsMH3_e%wIud<%dZp>=wy(tfYMEFsSXr
zHXLc&e(q${qgxCU9av{O?%6F80fYt~`ai1fCK>Q#lFmWrC>w`h2*JFv{P!bkc&5YC
zdjT@p?@?aTa%=q6A>F9(&LG+Cb3~nCtN->vJUC_VO~Lno$+r6n5j=DM!^w-&`n!<M
z$U~)Arc_=QWI?=#nZP)kErh@;jmu6_9v{oi4&(H@O0h`mqh0@9>yky*v7{8x{{h}W
zA;0#)llCO$U_-KitVXklH>KIRpUsKWqyr5#O)+ztoY(Y9(<DjOmY1bEKaXj{S*gv<
zNsa3{oHvNHqXux-^5iz0mw5eHt;K}UK%=$yQL}OA`~($P#t>Q}mFMLb?|HvW#z&1s
zgG9Lge%SI>BY<dWIH@6%qI?ma((}+{+2}x|%|XD8se9ee`1oB;D<7A3y%jt+OmJ=1
zk!5E49hY>9U@=?U+8Nv)>*dldD`jNk(!N#rQBKO}#+I_WWwzgQxmh#kjE5qR$rR=h
z4|mbzn`PeC$>c#4o*u^e-?>&6m(BXxYMaHD`?%$0fA(HzA74CnAtH&B^RC0uNyvT_
z;V1KOXu5%-+2h9aY~{1#+rQT@t*n&Ie%!cn|DDKc`=Mm4qgjCG><S!c4vZy?rb%tn
z?FV$1T#Yww`!Zn0q&&!&UeD*H4l?9&m4EYtziZj7)UaMH7U7{=mry(|;Sr=3Os8ci
znUp{xApvX~!Y9DLQz=vzxf4c2Dl+HQASEk5x6!GH<;ysy8N!lBm6#a_=aVl~Bo@PV
z_Ql_K<9H)8=rjne&|I9*h}=X{eTm*D4^Eus*9Zy1?+gE#b0@L#gw65HB)mCw8ccvs
zmezy7DfwLCn&gUEnSfcI)niyO#hiy3q5Xf{=WpbLTwHo{&$chuW=C!&EBB+k{LcQy
z?6%GN==C<Y%=ULi8MyBLuGeyHHlAA^%ExB!3A=7K;vep7_qW^Zasz2HnX|n}b|<^!
z_A27K><zb7$M%?hE$s!Q%xuj7=$Cx%aqWe(vRZlFKN9!;cHL+OI6dwc#KW$RvP>(*
zMUxaDgL;%qfW9wz5^3{NcmU%lkP;tAe3S1K58fyIupfKRSh?C+@-hWigTiO?Dsq&j
z8>E>lWl&@DB8WeQ)OygkcscRJ-RXG{)AjQ0^xPXm8Ekn@Rh)0GSTbIxB$YTOT@##m
zrH<Cnj!3NdgS+#l<Ha%8$G)=EFi%;&bxSH&u1M+PMYF8jylJ$`ItY{6Cg(EEye9e?
z!gUQsqY?x;2FJ%Gw12;Z4;_;5QB<lqbxI=mkUVYUWv=tOPzH|A)>!9#g8xCB4ta(_
zOiVn#k}DuPP!Z=D135aoGfkj9+++d*#l~O(__o+d`J4IwBLDsLkI5(qt_Ck$a~~L{
z<gu(?LN8f7D}YJJ^|Iy&WA}0Ho0;q_T=+@JAcN5D{DK@EnKsWC^lEqaY)Lu!VdFhu
ze{Wpw^q%lcm@PV@JZ{<Su2xRFwA=l#q)hJLnYkzI4de#_T{4gx?0w+cytc}7vCq`C
zjjojqq{#!=>1H<(zjJ?@?dR&hZ>w(7<hg8iK7A8z-N0^4?N_{LJcn%?o{g)VR6?s_
z&S?dj+3oBFT&K7k8J#l80^%SXn%4MSXP<naam-Gd#n(G*dEZfA0da!ehoe(61x<5i
z`4Z0Qw#>tuHV^Y1AK-i_oAIH?46&5P7R_R7v20adqQq;#<0{CalSjh#WoVnMAww-Q
z0qu+)p(HBow06ySoFOja&F$!86)&75%+iGmQhMP9DL(tGS(ZVdwW~~b=v;4e?7DN}
zS%&r@(f*MmhA5*j-Lftw)I(XFo|d5qOr{)z$DtqgWX9*;Z0349<UrD-w#kI^OmeW2
zEx|-vhG#7zF7e`GF|)S_Ul3|im9cPI-T;&N-^|>Q(@4yofXTmB$4fTvE&NA}xD1EG
z^4C|sBp;voy!`UR{}3ThF%T$-9RIP^upUPui<g$K$bZZ{jT1wX_tm^C;01|-69>Dm
zIl!ZT%ss=tUDwHW-RbYa_T$y^&NVPsbWLW;&gNHn?LAC6t*l;Q;#EJC(c-(AocwMp
z**B0TcjiN)S+j$<m(BL==XN*g*oR&}<!N<ni|<y)@xfvV6VEDRzFa}F^TopRl8(Fr
zjx+~MQUiL=vOn%)mRohY!|$woTzZ2qe`H2P6H995G%Ls8`8y&d6s69VhE42gi8VIy
z62RxL37^3Y&i}S*>t)?)U-x%L9)p>)m9dSS1I!>ygC3wP=$yib<-sUCA7^GPd^ZG}
zElG!7u(eD^s+glJU%xKpOP8cf4f7i6fMC9o8f9p7)G@j8#|pxM%4dkybU<R{hy9Zn
zLm|@_37Gv-ON~J5r1nWIG&DBmm~gSbc{tz!!NzmJzh)VRLlBcPq(J)AC`p(Fm}yt>
z0^<B`_|R~U<558zOoZc+m^?IoA2%UJlM$M$xK?<{aXL3kvyR8dOkqxb^Q8~T|8V>}
z<#h)ilp5lPpy!%v#U*XSkKK9__Tg(X8Jd>4+HKsk&itk~_mdIxu7B3w2UhO8cJk>T
zZrS}PBIV=#X658H^lP&+a=F>PX1{MH{|3^enXlPfjNNVr<Gx(?W8($1=R#n(?$>7D
zdMv(_bF+)NUVe)`&$W!I6PXI@X3pVL#{)><1awFaj+}(|?6^69TFL^ne{MrE>&MyZ
zZ+kCz@guS46AnjYJh&g)Ny&KrisYpLvdom{ac=V_mu@J?xkSg)(v91CS?zajIqf*>
z_g()t_v7(ga^9{8vZQ8~g9(<zGn|Z>PXt<9faF134aSWJ27Vee166L{mcp05B$+RK
z!DyKzQ1(g9F$yg)G&w23i3tf}?vitqLoml0&6L_J$Z-hsn{^WJ!h%%MSLMbH(@*jF
z=Oq9ljhr|k$#425Nxb^i5`5qR384=*&ULaML%yz)GhVa_$c~szl3@<obFqvE9w%pU
zlMDqohk5t!n%XA6e_-+q@&~?7{%GZC`G>WFOvOfF;Q*<l1wrWc-a0#Wg2hJVPp*AV
zUN`+9=1N1PY@=mHVdkAHEXnU({}gr)f-q;~4<7!v@`i)2G!NcTD2zS3*N8puS1<0_
zZb`}e&VD!sWwxJgjoC@Rl-2Tq#g_8=v01q&GiBY38|*%t$-jX#x4JOyi|BV?c(PVr
zE9+(e_+gus)5^>xW!~z-x#eCR!h^iL2#?uYrVb^i)gqy&Nt;J)lS$gGHWn~mE1loW
zR%XiRHNG^z4uOP5<5Pw-!<cBp{cQ+y5$DLn2dU5)6({o`-U=rxr^U1tTzL%pW*?mU
zD<Is2NdY)3W>V6DG!uw>ypw1gSnwb=kZcW3KGm5Ssl50i65o77ieLV+l<_y`Ekl@}
z44*zNG0aIu@3}`J$Br2i4M6K0g2}apacO=X!Y4q|ggLeZ6K?4|k_%uP$+OD2QFz<Z
z)7H#;;<ymzH$!w5BKh*#;DZ%MrpCY2j9Kj@jSq3n!3l`x2U=|G!E0*Q8=Gj`M>{cg
zSUx!YZu!?2{;^!od_bn)Jxfg4sD0B6%XW15AjtJy^3&J<i~MNz2jpmKzi}?I*Q$&R
zPk)tv5kOAKS6~0L^4k3mnByn{uD-MG@xS(7pbYi_@9_|xb!TPel8rLkk7t8;*pZc&
zUE1e?z1AKM<5^c$UMp)W9d97bRu1+vC~n!@>#dw$ulA*U_Q%oAm@GKWga#}FRzg@t
z3R))1fYB`5t*R!J+2U%K?a03AF?>$oxyjHI*3uk_-vhD=HBtj!HJ-FdXgE%5?7V45
zcW-pdeD^n7|HXJl5(__E4}%=2T{@n#4xs~%wMJ4Tsd4Ty|I|}Ljj;66OJ@EtdghFT
zp<zZ29~Q1hPo9)8)@fP|HcYEfV~ut=1Whx5hh~tDK_tP3$1F8cnq$kCFH0Fj%JC{N
z{pP;-MX4>JawW(#cJIB0i0NrdX5_r86_JF&%s?bgYLJXO<y<X8YMizaQ!|eY;*22;
z<98f>ll*I(&L3a-v^=!$UJx_Ng@G(N-yDGjpp5lDz5F?-*(HRg+>%dSeN2An?DwGS
zh8Hf@rW2F$SC9M)xp(Zi97`Q=?tderm9im97Z#r1uU(MQc1c<7vtdx=ZufU)&$-)6
zi(|WTc0`)Im{x#ppJ=Q7+Z&C?xz}6mrx*LTFQ4;ptD;&3^UU5t(dG&sR1=8@OkGMk
z0I^Zayz|KP=8PyaKfL~S=}ph*rSaV4!<b<+Q^`|s23m%uxri9l%Lqj|BKua4n*BCD
z-kVF|mbv*}8^57;Nn&CBNfJvOnp!*>hPG*cK6gvOSj)oGPfHe>W#&_#GTLDfCfF#n
z$@qg0O5!!IF`lo%;bCX~5t^ZyuLN1rTh`1)f-o6!0)WkT0T3!lGj!m9>7$M@N|+xl
zKKGmy;80X}@<}OzG>e!oEkYYjee*ZV$UEOD5jYN+K3pP(pt)1aWRe4(k3*VHKHZIH
ze`gE3V0-w${qp|9AC`Y{{>SCp55G~q31-zm71}9ee}3_j{LE9oCI9*MAIfy}9=Q=d
zF28X3kL9~hJSvkY5oR5^*w5RKynzct+;_Bfv#G29w0j?PRj4MNQ&!tN|DD;6Jzn}9
zUyG@gv(?kLzxq~>8;JcaI0GRpgltt_`y3=u&gW)8nwOEUwIbv2I-SIPW)zuqOtU)<
z3J?uBN%V1&Cd!4?>o3FfykuSsj*Y*<JbZg~I+aS@5GE6~^BFdZFcXrdaR71)fiD?n
zNfT-wBu3&az5KEXCn0&oV1`Y;?sbxU)0-p=^4qMLdw^tVKbR*Zkq%)Q#QY_R)--6R
zVa|twOkry@nq~!K(L0x#Cqq<7(gDnm2B4V^VV>B&;4&7IgqgyJd30@@CY^$|YRoB1
zLLY&7{J%Z%PWex_{vY|^Qy-C!Mt;&HDfq<Yzm<RV(r-X^k<+oWaseq2Cj&`&Hv3ii
z%+;^R51e_sbB{M(ip)GI2J9taZgqb8og%Ok1a>uP?gW6{un&oH0i<~|^Ab#lsAz&h
z&eX<OYRk0lTf97l(TdB23`vmYzVvbANzEc&6QLOy#1tY1b?pVC2QLH_XniEi0!)~!
zXflyP{#N7sV<p8456FZbvDEr<U;V1&zw#BSV6HJjVteH)C5}%Ljyf?q>R>+8G%_$W
zNp~~E#%->TCA+o#8pn}9=>(JjNpgRNqtFao!Te_d8Ys2b3g%Er)SNe!Mp?KZLQRtJ
z`lSc$O0H;<HROxbG{JV;G#labro)fOyZ8T)eC+lo<o?H&a1_oZ|C~%kPQ$Do1Ys6Y
zG%NtpjL2N*ko<?se<p7`_C^_tq)ftg60nlxHel=5zC=Jt)0dZJhe9<7gXUQ#G{2pF
zUJebv&Xm`hOhFStusYk_kL4Zq-PhgjNKErAE3`0`-sQz-kS6e=ncG}#IGprCOqyqD
zn$4Hszys6lL^_6~=P;#OF|o1=XB`q%=CA)+a$o<t6wjTL5H!5>+ukNAc(%sQo;7of
zK|1<y&XR4d1LsfvYhDIOiuMB{<F>nq(;f$MqUUV_=3SB}iFxIdpOg$fCCqUeCnT6~
znMH_NDaU3bsc}A&3Fm2^U1mlg&S`SYZ5qjrv6(CZ_D}AAw|s2z3o-`JX8O;LB1_Os
zgrZbd%W@E@_86A(LJ7`3h%fo;<uA*ZuKk^S*U7gaeiWN5cH4}nUn>HBLtxF>&u@aM
zJli2~=RumUte9N08RVS};mv*$n&x<N+SH_UdKuIw6wI>-sGow?%(7-RXw=KatETLk
zElj-~N?v?lL5!hwmI;N1WCU7T9Hg`6stz)x(@)`vCyZH^nqC0J7=g16iHviYu~)pp
zc*mN#OG|nl2*>_NhSB54CGqgXl6cjtj1v&UPO2~!7vZ^UO~rM@g_4Xpr%BVSnbXAI
z%h}>ON1&|*GfCBP+^hH9FaOu6ACtxM^Rhn}m#eEq3FF+(1Y$B%o{^>cy!`${KP!Lw
z>R&)S=GWxcFaL?;F_l1%MJ)lgHOBg_e-Thk)4$hdTgm8D!BSw<GHJ3z7$Ha|g)Bfv
z%$z3cQx0<DoF>h)lQ^HT_(8-D264Uu;+)544wYNR%(iZ;Emf;&A_)LJXTwR%2acp9
z977WPDq<W#mMfqAjAY@6Lyy+r)Re^E@CHL*Br$4v#*4LE7lRri$SR2Zv?NZjl7tQ(
zG~Tq;#YM?I_88(kkuUb`-)<a)LQ#b5q+*h!_bfEc1w)$KI|8}Ix60ys&%R6ka_({Y
z(}mB=Be65`cx6$}SDuj{Irv`r$p_yj_lzDjhkY^n1kACxKcS(rscF{0p#KaY0!o?#
zc+srL)V3C3wxsE@hyuZUC^3T$wajG1hGf{i2XKk=p^2HbK*#Xm94)8aa`2*^N4YSD
z)TE;mrUqv>&(6^_%P`MkPO}l?NJk)ql8W4%137&`R$!JbA{`#Jxj5!7N51nrO|k)+
zPu;m;yCP>pbEUIT6tSQ5u%-6Ngb4Y+`#ULOp0oV)GZIdxoLsesj^X~mye2BNko;z|
z&U~$P1hRy<m8>K^nsbLyrQ}y1`A71pFW-{KmwsDLjsAD?ORxHXyz}^*p>;AJvXc_;
zjnfa^)t!_1(INXaQ#8+`aV~f5tbZs1K0-iA(?=JhHBp9)mN|z|6Ka|aD@jLSc0)Cg
zWMss2)s0Y-)@1B#Z#+WHLp_Apz$D@|S?L76D^kSE0z+(QvSkGq7OwWXxrxJsoS1pP
zszjm@86A#Guv9>@fg2J$_nhRRX_hWtLMESx#O}Xe5(q1a!yFqqejG^}dN>1uu{a*n
z^2ITST7g-ZRa9z^KQ7f9Gg5%5mh-KvNX{M~o`klEN+}4NnT7h!7XqFq8*$%BBXM$m
z^ThBWdGhuDhdep=9(nVT*UJ7lJbKaG;U(5_%goI-G~=}~++?}_yS1HkMG^1^0!o_x
zxDIVeQLJR){Bs4lW|4ms#IY|04F?6MIj^}pnx)Ml6FxJRm_|O`drVjj6FH104jM0E
z7#h2Jx>e3;k~EQbHaQOGp5cUq=59;=#&c4A=1Ivzi>qZbl6uvfC5`w<&S6s9Glbb|
z5@?JUf{8fw=%X@(xlMZZ=2=|@At_6L{3jB=c}t>idxxY)CnSQ5Mitogi)9w0hV8q>
zMiY9eT9%W;hvoFRV~RBd2_j^it!-<LOf(hnMS}CIfAmKp@HQ5_WC%!JkR3^&nVZ&Y
z+^nFwR0Os`KuL2Ofc*S*p^}kV#AYt#@eo8z<^)objUe@0un}6YQ;osT=V)c4X_mQk
zCzFWTgy-z-?8}BQs}smNgVs&0+6g&fC6J07gy(4*&Om{g>ykhJI8x+2FI77JU_0k8
zhri=H91Rl=I;Qp7+}Ie8bEwP;6hLY{=DKA;YbJNkec_7|LmIvjCRsR`LRbh$4D*_0
z#G+E$WR6{?!)t}JsBu<MVTXy>O^(@S=geHXz)9esB=3K}$e;b0gOUCB#0imK{$-Kx
z{%&VKOR)BPT`B@TK;X`+pbvym5n4fDRSHO%$JoV1l+Gfl>`R|8>GPbV?Cfjz&}PJt
z=CsLl<dEiNSt!hya%iofw&Q(ipKY{i4Ow$QnAt4mjSD%6tt`mU6=dFlS(eGz!~3Qr
z`NlVz7)&NHFh!zC4*hIoJv3^(iH9DNBpj2%a1N@&oLWOT%Ieck$<VV;N#Hi>S%#4_
z7KF#d?JP!ZYJ#>XJ2gpamTMa2X2)AHWoo~_|MxfUf$$jl-tQIpm0w||dq*Q}oX5tU
zb&Dd<9|Tm>><{i8k4nv|V9c`@k#}}p_Jc4DX~yAr0tbxU(k$(V;dRL@M+@+zoy*QZ
z(|i#L9nQj3i@<(1a)jO4Z1C=%Dm1YSOM+!`B6CPs08{PI`4^>xtUuxDgOYsoEfPm8
zW*mtNSfRwUR#Y|bM7`5fgP>RiB@WW0#z`j|=EN1mlvcm|MX8LuB&$oqm<OMbI-H1d
z#j42=6hZQXh)LM)5ug?enq|4p7mD}2PXysO^6&ng2(lQ-KmDg7m=Bgue_G`Gz7HjO
zCLC?l678Kc(=|n)uLvk<_7(p22d~wu@FHD8L1Z|1Ah?{)Kl>1$NpDj3TvGcZ_~l6F
z!A&n(dIeA955s);I9?Q9#<?RYI<##zN5k=+IoV?cX2L8=XXP?^c+2LIK5toqvv9sz
z!SbHd#!EK&W_XJt={h}FP4mmc9&#`PQ4pqM5+;+!*ID%X(iLdwSD_W(C!_m8nt0=2
zT}@^_N~3HT6ViLqEMc-Uc=HOvV%8dDl7Ij2MVQeDbFZdR)BOG47x}>-6oE69z!SM8
zTk%@wx}pel2LX?M8Ql?1d)<ftHB3H4n8;wcI12}l45p+il8#N7ct$RVc9EuO5r{z3
zq~p&NG|d?1Z%eS=<x0yYUbBK6r{O?D!?Oo?w4_rD<6jFf(N=QsM7?+&v7z%4#Y;;9
z>FE-$d9_JV$6T_^^Xk{eWbaI+$3*TGln+~d=2=;ty$w&>jHHn?f)!PANTrvBiI$aI
zJki`OVWJX?{MK(dPCp2Vk#G4H5#--RE<e<;!`v@F+!u4LroszjP1*j<zY+P}-*vV*
zTl8N=pzjFioMzuIL2Cl6BJM4V#O3rJWjU}a9(G}vyXZAbQekofdNl5~7DU(y%biUo
z51SZNo*^~t#oSFeLfr<j6|u$3^QMjoC8$a>cwI_Jx=J72<m@d8J^!R6(n%S8=Xc03
zDv2-~56z%{Z;_)%W%wQMkR*sRI0^G7JZd8#%wfEANC{bipk-!ZqNQftakGSp<O=eh
z_lW%Sf9`0IKl3vpkil$2jnTEnIZT^gkY2THAOE-rG-K1ekjd#u|5XG!LO@BgBlvoM
zFk{~`$cRJlQ7%J)xQSsL25B<ooM~QiNAFLu>4;3=&R9(*HHg7RLKF2OUL2g{4vv|&
z>A~%Mfd_vfUyvLefXbCBg7r}n6D6qQ%L|g6J|L;rzE0xMih`(*$@xNGH=GNTEKu9z
z9A|`eJSV3l#%d?kq6}qLB)f?6Ys*=Lpg`m6^mHuAk@P<Qc@c~$oL6O72^)#=kw-*6
z`ccPhYt7o9_=Lz$`~>QcHMC85{%TVM{Dgp-XZ>_Fwvfe!R4`F_rZkUGlPfUIu9!K@
z@x(r8U#QLKii_K#tAYNCbDJd2@x&<;T4RfEk0lPsut0nAszK2#f-sk77bUx}D0Mi`
z<QSfjOvw0~-y|as+%M4+$Dy$yuFyX4y&Ah4{gBi_oSge*0c(2u4#VV~zLdjD0M6{@
zjI4}CWO+O;)l>UA=FGKIpvjdDNfzjUB*;!A?|rYx@#7*$J1GC)A2_Dl-#|$*de46U
z_oIUP2*O|*+HSwSkd5&Ak0Njf0VT~lSPaA(HO*ys%ihc&<N<kSNfrl&PonN5wM<7n
z=u}DYGZ6F)9*&R0TlgNt2G)&<nh72bkDc{YY~q|>&dB2RTarPlJZ9FZ!vs6>z*(8P
zcT|R<B?aL4GZ2Jnk!fhdLvRd=z2z-3I)=F3zx<jcAG;v6TQjm88<M4|w3PD=ZO|Uq
z$<mfVW0(osul<_HkN&7*id|U|L7G4L`JZ<@X`MYBXCZhdn|9xQW_p$P_HMqf?Wyb1
z{|Kmg*8kVYk<gi9GnGD8kgWW6<`PIVZ&JzaPaQX=+1>n5vF8>*!dIH2S(uu!sY``f
zlNG60&H$$dNS$2MMi;9f<ow)%EWC7CGFPulAeS=<&WBH(kn|%DOX$oQ8FG7qb~0wK
zkEO#B;z{GsmeWTLL32le>q<$obBnTkb5=^wtXDb5h-TB@wJf655E(}Dp$~~X^^^!4
zr;H}axl4M?vY__2eyhl%k2>8W8G}$ZTWI^QKPke@O89ojgut{cg&v>?c#eRQrst4$
zx5L_M6`JNOG|lHsxCIlLvq*Eo%x79^vCHnt(%ashb26GHNOPYd%_Q>f-ZC!`O!VMQ
zb6At4nVq>MbKiJcvggiAB)bd`Wz7E_J#6L$<p8uyOAOu&+`C@rq=Oa$Ii;tO4F4Dk
zWh3MxkC2n)*#*g8zhM&38xv_mJ8erij>FhYnqb*boLf+H)HFIykvM<x7ezk!K@lWg
z5F}kNbDrGi_dX`_?cZj0{k_jzkw5<$zC&YGmd1OH`CI={1bU5tl4h?F?{K_wwIC~S
z0Gi8PHra4S6Ch2*XU5<)yB8YgZHEz7!@|_`6wVYE3>NwFib)XODF&+zlBmHPn}vos
z_tf)JM6&Z_xg;Zrh$P?u#Ijowg0|EkpH9c@*YT|RnL;+BiIc}9hGYVHD3>eq%aXrx
zRjQm{Tv)g>x7d!5#F7{tJLZ^S*~eSoD)Nz!h#;GieE7p6ANYU>^5mLu6V4BlFn{NF
zMBe@1tc^IkRFv=f>1X7bD@)*DR969UYEuOIg@Dd!_6zxz$6Ymv%2`K}F`9@BFpe-|
z@dGC4KNey@#O`mX8fl!L7_Ui(plTiDRw|hni6XR3Ry}ddwC!ozj8_!QwH433C@V++
zumW$=>S|1)D5W(znv&Sqh^c1cAl=>=ez{6PR5(dZjLPU?lwF%c!Rpx@64MtX^Wr%v
z#1M``Gb)n~(Cf9`W{H!YvKKFk{N`_p{P>UG=?%3;4Y6{5lb*8ls(shH%=b(*&!qS7
zdD{v3Up{+F-u01Z<g@?e5jirMFvLj$)ussa8UfWbdyROT<5g;9Qvz%jPA|*^6vUOI
z$1ELzSRyMD!h>xOJVU5yvi#W;v}-3hJ(7i^$_Bk?=W{pkG67G}b~M1oF{=fX{DO1J
z$|wI;G8ZmNAreC}fMH4Qn~>4TQIrOwhS|7?1B<sKI0?zbn;w{y=z)Dw8lS|=M^#q7
z@q}bp9~9vtb>Pu)v&4Dggvd|-v{T`Pahq%;<e3>{s(^X@lbFM75GIM#YW*v@vIL_6
zxinLhpZdM$Q8c^kXq@d_XJ=IXR}p9%0VU10q3i8|6$J0k<*vysgqjqqS(ql_F99<p
ziG!uU=&-RT{0s5C4;p76p8I~7rRkL!krg@w0UO4yG66)(&6;Ilk}QBUv!DB{WUnJd
zVI0XK_8pM)fhifC7{<#<5M5i=Y<U!49MCvbgeVP3JQb5+ybMIACZ#kohQtP_(+U#H
zfBth)eBlMDA}{PJ!$vwKC=QBb3Z_wmefnu<-I6kM&VC!_FgXrBOzTJaRti=5pMU2$
zsm+$;ZO7vByMHq$|M_n(n`8NXr(!um=)a1<&JnnaH2L6NUS5`^r6q(^A*nNdENy$w
z?OX=kb4vuA2Xv)YLKdKFAco5(sDC_uFSJZ%0NNX7+4T_dMIjx5X)!(x42EH%T{PHm
zzL!-{T5fz$L)$51F0TZ#D86(7i496pNR7%Wk^m$|hh;b!hslzpxjPy?QsbznIXsM{
z2ROG<Ff0{hUaAg-qyh{}$Wfa|)}9h#E9)?UciiX{#KxG-YuB80YMG4JeDqPLvI&UL
zAx!4{U6p_NvFGH^o?elM_ebS#XW=+>HYsm?7*1Gd`fM^V=szAJP{))&84havG;8KA
zcHewAZrs5Ae9e$2iPQaEvrcq-_Ykl;O}So_S)|Upg-{a)s2?0gykP1uv`o0@@1f=x
z7M&AjZ0i2>X&FUw2PS%$SvhZ#xHHDmX%@Zh0jhBx6XwVQ;seVUFQG=}O(~&VR&jiv
ztWNEh#BfSdQ18REi|>-gDZw}rv!~(U6om$DN}!Q2Q%Ei_eMCyvuER|INy)?Owayxt
zY@MifxNl7x9lewB=k>1_dFB}r#%01AnNB{Gi&yX${@?}q<xky~2dAU*jhvGt;Y&Y!
zpFD7M#5|YyJ7AZch~x;Q|0)6w0wm2W?)5xh?3%O<Pk;<65v<?=Qo@_1YMM<@>%-;}
zyk=>hokRM(;7|mldD;|Vrp9Gj<9XBv(fTqZP0>sncp!b!%<D2{l?fjhj#EPdd$t`@
zCVnWa0FsBvu<-1&QiHWcf+4BKl19_4rAH)@ic2cykfw#&F8cz22ZNGyV$hsZ2&IXJ
zP*by7lX3{A{=>&a4jn~;`mE%>^d%`k+hn0_(=73|Gd?v<I$ALnlL-#kzVa23ANw(p
zFMZJvCCXo$&HwSQUXq{s!)tP8IwJGP{VPjV`NQ{}k#D+pa*Z%6NTNTRDL067$5-3*
zum30ln;}3Yv4Uv?ewwunq?ty*_AuhNVwj*0Aw3v>Slar9z@2%@0)qD!a@Ub(^$N6|
zh{*yp0ZlVZ2OzY)bCnuriu*DFN2vY7CrqOHQZ)}P{G3U4P=(Xfj#@)SslyaQQ)KS3
z$D{<$(eMcF|A${I^#ccGMWA`%;T(&?9Gr~qF7qtznrK7QjDtMsty+sEMDDp)R_}jM
zYVe$`T!6Xy`~_!z6E7BKesf3QHrdI>w!Y>yPI$?m|GA0ZT>ar6aqeLd>tB5RhWzNq
zF3bM?&I{p<TV?sRA3QGK^M=EwQ`R?Sd;aAm+4s*Llb2>P<~dbsY&T!(KZ-yb2$1h0
zh#?Mh-n~gPAt!EPoTdvnS`=@CN}5ej>&a%4gY$5xq7nt??3PeJas_#3qX;iy(P<WC
z4qHug57DNDp9vif0EY#5&9Xe$t?aV~qcReZ+qSK96o|79&9Zdif@DAQ85znKW%S#=
zRZ=IA@n;zshZd?5LJrzkWI|GjC|*)_&zz>cWs*qRo`?h_04;DRnUdA}?vd4WS?afM
zATv-|DwwXJw#kI=2_#+*F+sh%wPPRUF=x*@AN0jLop10@TwIjz{H=3Hr5BVb$n?yO
zlKgM)I4D2*&eLW@dPavDbE78@rsdl(*ZHnre@Z_8q1PewDvbI5RXB?6omWT$ivHsn
z0ztggC0Vj=i*}c$N%9;)vSfZ#)7%2JE`P-by;blX!gOk97Rou89t97$w293eMyae2
z95?oAi@^zM0xu2>yTK!05Sd_NShHm$Sg$vnf$;onMx0C)SDl}i65<E>shm3}tC^fc
zP>Cb<@FTK%@DR+sD3w(#W9|>}p_uz~9D#PnL)o512oH)lVm6~7n-DBa_5BB>a`dDz
z(FVrGWfh4XN=Q0TKth5F9CvJry|u|id$YE3Bk~w%w*1s_9rz$x%2(uHe&PbcPpb0T
z;gCE7$Dbc~cvL?4U*Bgc%sBI%&ToV3DU`bTrT5$`&wV2!KlgDYp+Ffo5~e0UXyroa
zzHS7prb%tHS-Xogo9(3A`-1@AzM1J}HuJKH(PRR#B(5cc`iJqMnbvJ3=#P~B8#NM)
z!+REK;6R#uk>GQfc+JC%%>v!knlmr40i%XyL{nqw{CUZubQLwtz!c(L?>%iuGkENT
z)J8^4++w|kg43AKq^9YFob>OUyD>5qw@4Ue*Wl<BMIPERYKImg2<16`Qj(~B8AisQ
zB3>$Tn13{$wALvIfHT%}?G3M0;dm@Q%qPtDwHM~(kN$2+9yt(|uPx)+O-1Dw-+Mpm
zsD=y?x|11Lp1wE(2c;uX`T5V@mXG}DIV7TBmkdSWuSc6A;5`CLn%-mDd5=~Fzz;u%
zg3~iA7Yq^5>1Q%|7V(Mu;J}eK<LuQ(10f<AGHE;U7)HD*taH#da+uq^EVFQ$D%Wga
zz6JE|OT$D4bpBbvyjuC?mr-N#gv2q|7KEl*hsSIsnt(YRVOP+E5=d&0rg?T3g`Bw2
z;CYQ;&Nc>(x|qvLhBY-$o|g36-yw0-;H+G|DmjFP6rqh*Zr*f~9^n4m99ehITdx~#
zYjpDLbtK)#6DdXWYOXF{c>jHJl-Yl<lbbMWFt_m9f92e~eD80ZlgW5M?%x-YfBbtd
z%V(dwx%Ghhts>AN0!o@40@%&NNr=q;GqduN(KI6<h^f>`lhA-#CR?WuEz`+B{zGlT
z2`#aikw#)CkXEmZxy{SQ)0hb%*sNB<xJ0XUQp>C$LAZ&@M7YB$yyaqWfQdcyN?F}U
z!i*V>D+ASq3Q-bTSc>LZ&S~y4(1{Pt&ciTcFa)JkK*f_{P3lPM5P#J}z~zhta5L5x
z7mXRa2ve;w(>6Q|Ev9Qgw|PIAxkwP;=WdteU%mZ+yy@(ubNyU^SCL3R7#xy|w{r4^
z-+Uf1GYG%J+~;$*%ksmIPRgs#OqgT#>dR!C(Cc9>AfTk#0$9D?mCt6H8?P^)18Lqi
zCddQnGbR%d@}=}z93PJ7uva(`lZnK%sj<m<w%aQpO~kY^_260qGYlaG9~%SpOE11C
zIm90p8Mu$61|igaOup{5W-haW5R*&}i48y=p&>Y)&^Z9kGW<~E*=3vwMBp)qmw}OF
z44Nj)v*n6p3Kc2GlM*^~SmI~ykvPktp`2Lh(k01!`qL(+b+r)yZt)m0YNLU8$N!iY
zng+w&KaD)M+)!GTQ-_=a1nko6gC412h7c!vYq=!v{lAe>Xt690rbF`dLPg$uPg;KV
zJ@?CK!x@O#g0v|D-9SK}yxl<6qdu8TELUEJx$!*a))p|AIVRI1r$L(IYXq?C)Sgzb
zYdjZ2h^eGQ(7|D7M1c_MYhIGM%vG3Y-CneJkg6f$RsQkEO^69ijYF99kD(Gr3Z~iU
z0}n_k9FyfmBs+kaG7haK0wPI5%j5%lw>Fw*hhd(L!wg-9NqQMC4HYEE=gUO&^l3>V
z2|@JaNfWP`{hPm$0umDNWy9Ut)$VMr;8&g+m+v|QvP4Ygr5jG)<UV@DS`9OU+_)e3
z?Pujn7qar;cvzm!!i)^!{LLS_U-pkgo&9LuU2E-1wbp^IC<1pOuzQ~Zcb(>7{IO={
zYKU9HoE)o~EER5m0P-NqNfTm`j!u9y-4BMrIKOU5$*f3|sY8feJ%JFMD75mcGM~RL
zjBPayQ1Q`e5`e>7vx2Nw1r$YQ1|ZH?Mo}m^j_`-*@#7LsAe|hnzRQ_{R57oY0%4L!
zV(>2At&Mk51TooZXqs_20#$I{D<I7>Orb+adJs4?Es2L8mKcjf!&Y6Uw=o>2=oC~%
zB9t0T-9ymE1GHne(P%cO<IdD@R6g|gPKY2r^Pm0y?7az?T-SBqd1|lTcQhLNPJsI&
zN)$;g)@DhG#~OKT%l3>Hjb-QaXJ;92$&8a3C${7*nS5U|iJ~M<WX(jjCENP!NS19;
z3n_`RL~#X3kOYVw-RQl$y1VwO`TftU*InHNnrQR}0(F7v_v+PK?z`{4d+s^sfBxss
zFW48peZkKrv#lm91vJgy{G%7_|NZv3-9f0yP=N<ESG7k!e8diIYn#_Z{UE8RuKDWW
zYdtXKUqkg8hcsGXQ43sKFJE+u#+S8g0g+TkJujq8i<5IB2!KmAQ-FlrN*=^N(6JxT
zOE1RR#-j@jrHNPyO>+km3PMGQVa?<R-3KflTKPCb`<~3QMbb}cz@H<0LWs~fc_iE3
z^B!wK%Zx&5fZpN)V;bIBX*kNEDYNX2tYxbICIJ9-K;AAAhXTw%(=&jih*_0Ml$>bR
zbl-i}a{v97P>d#;xyT@9U<*<^x_KL+d94#U3GL7h@bHm7`}+TOr`>g^)&9;$kJ-<E
z;%O&4c<hBy`;AW@v)=|Ky9=RO;Mt5^D%u}^_@KSzwmuiS@^yNVkkq8oCzd=>Uk~3G
zeruFQ3#_6AZrthfDjH?84%I8Kfk$y`83d&$^AtM4grD$|xQABA3>oCkY`py8a}ugp
zVJAWwH^CBwbrCX%Dd(Zh0HkV`Ih%pBGC6HUd~ymi$)7%LWi-y@``%}5Z+ja6pt}H-
zG+UN~C#Pp^22D%aPbVfzg_^`}VAHIev?(-cH_sB@F*!YFQ!_c6LvWUhG-fPe@m;$B
z1>J2au_mFRm&gV)$2trsXrkLKi5a&hvcku*qNU`TdNeL%2LOHLS32#*GZS`xC}Uqe
zF=fB=*svKfvjdo9+YpY&&gSg@{*m4GgAeZvuHyod)lgt!ZLmv^f~0$r^kcW0b>D;V
zzk>?^v38opAk1Y&m2B+XXaQQFAvCY2Zs1ZApb8l#reOb3=!DR->3EN8mu;j1OU0o%
zYm`MTAniOw%%;rO^7|@nS{ZZPWOj&9o%8rC)7D(Y-!(YozRVmTAd!P780=+|mCr8P
z8z41H#j*=b0f99BDh#9bX3#Y2e42R#<qVSt0io*S9TQtY)82l&ho2On)XOpXh(Lsr
zM3|Na1~6?muTF64sY-a#@LkPudjPG|_;fsT$$sZ6Lw2|~;p7F!&gblx-#=hK|9201
zKM3Wdn_va@nm%Us?CqFtgY&uhfX&fezh&jUKf|a8VZ3L;3AIl@P2*3a1+J<E8bb4`
znrUNqDpyMk_JfX^%@#A5WkH4#YSK&!EFV?8I+C!Bq81S8gG{we@m3GV>22AMW}bql
z_o9dEG`II#OBn+8GiNRH$Rm~~CNoaJehQOp`tV_kp(TZ-jFvxxX*R=0MM6_dKsU0c
zsh*USripo0{@Xl0%?a3fax5i~!V*O&He;q0>H0M7C_s>sNH-C?nPdVYjWf<Zt1WJA
z!Tc(u@^^^Ee9vz`YkLM{B9GY7p}hUT{oVF!|I=aEu&~NdK}X6;2u9EzixXzYe+2|C
zwNO-6@2{C{c_&)uBNjRHk1d|RVC5tK0@a#KF7k8M5Y?-#bL04%rv(~9^E!Oi^1}rK
z{>%86vW^Vh+P*(vy;;><{yMzbHLQ{ZWhX=j{cVRx6_&S&>?ON6`4X|Md#$TL_5%EH
zbB}$+D$VWI_RvGt`oIH$mRUE@mrJAuLd%q<sUnl5n`arIZ{!lhX(9k&J}TnVoZ$X*
zXqzFj)lH`e$TWZ{u>j@p3zI|1i4O7-nmb5S$L}#d&JwiB#tN;iovlfG$6X!vWze#a
z<J!9jE%`S;ejApTr7S_U=QD~qHuD862~;3?uh}iXjBlfz^llIF9W21ff5;NQ?BQSK
ze3&Exqwp$g+c^AYYJrA*;<|d;!L(ipr^n}pJU^rWLA?%g+2^USuB+-^CzT1snZivv
z07)s9wK?5x<E1e>KmNRpz4R1$GM};{z@N(Wghd(HQwI-P6Mjr-ND=&UVVT!7YeG|q
zQjr?m$eO0C7b%%%TT|9TnlN#<X0iqRy9JcW8tN2{PQoxo7NjKcnkiV5QkZI`eM)G~
zL9r*+Ao7a^O<Av^hK;*|rL;|*;vlHl|Ne__us{9qAv9bmhgH~_BoXV2i}YXv)&-Y?
zhCqx!1t{$kjWU8Sv%2GhR_%PNMbG|Iiwyo%?F3=(sXt$1z0m?!Zh?l-ymH%Y*e@Xp
zRD+j_a%WB;G%w9OgKw^6TiSLKgD9aH1blB;#a=fT3fe77`*q;g+}?2r9@QS3tW4Os
z;iESEov&Kvt6#RlN%&=Z`Yk0;%N=)EnwZQO=-K)r#H`G-)3ZU0r_zB1n&yrCs#G04
z8{Dh3FOh2C(<CNR{!Nv7WNeg_VQHxKTHo;wpL9rQX8!uG172DX%4<~|9E9X-BJAaV
zeDe-F^IH$tFlgRi{nRl~(Si9k@VWB*L)Db`#f4_<Hg4h@W@CVrY9`n!nQE;0&Oi%2
z^HDQmpo0=jR@bWDjq}{tEpQ``1h1bbSDWl=04PE-t~6jGGngS-LRn0tY4(ykGwC3p
z#tVL>2P>AOR$^GUGQsFfZ?STI&ZdX(V?Os30HCL!fg7{LR?x@98%k4B;QmrmVu?7;
znYn_8o#;B^n{90(P2P=+o@KJ(ahlw#!fO<|QNT={%@=JJW}u}dLfXLOo;@%qz0rYG
zO4^;Tk-3*ZBrCM19zeA8_?3JQHBL=t#6$a~e{iq;(1Y7*+9YRk$%>%Nj|8WU<EvDu
zBD^)az4Ffxj-$Q_h@DmSyI!F<Afp;leC@}^qR|3Z)dCHnc~#A{{yS-KP#(w$06?OE
z%R-+gBUE#;10>-9X2*U@;<Iar%qu?&(d4x?_ga6~e(O(dw~kEAS_g9$Jv9sn=$yrf
zL2QQErkTM$(cd4ONH)MwOJPd|O=bqv=p-Q*`YF)95F|IUPm@WTKsOSY(yHT7>P6{k
z0t89x&gP0ix~*C}iO3)US~e|h9UrG+U8`uHB6C;lrb2qe<-1lzm-UoiJdiE0{=DOk
zEe;CO1M>Oi_)}(&<EP9MmeNzxBrEXJ#vx;v{U(C*Ki8_l-W4nen0am6NBCWq8@*9}
zmfAjzMWY3lZ-Iu;T)ura@YhH!L&qr_ntsIrK)9Fyw)8o;B^gWm;J#qW-N357PA;X1
zM^mgB&3vcz$G6$m@w5$)^rC$N4ddi#H^nL@v-QCTEk?k;mpXx|?}2%?XcIGNDvYJA
z&1op~ZtOVCP-IA(mj71#vq>@V5PqY0%^CcgW#zsM3vCu_Zx8&!_%$7Y%p^pyuhW0?
zH~5bsz|Ykv3^nsuqau{7PB*W``m<xhxlf@@a*;d?P;Cbgoc{>lD&I+QW>6y9g@0@|
z4nQalNGbDKW}^HgV9=7H^9uN+e~r>;fh)B@Lug*9Wj1)b-v4}Q&SNu&XHH{CDqDBc
zEv{uMVBgCc4nP}xdmD7QV6aO^($<}CwJjIXOa=jt5N?vAMN8dX#JS(<9I65XU9Lz_
z%#w6k9H-K596jqM%bVj>QOHRXV4xNRr%<%hOde#eo(BYljYeOLHZ@st?_NtIIFoSq
zR_5khU}hmd5c8537i{4{t6%DL?q5~7h{_}}nIr#(G&B#RjspBq+4uJdg<)Afjtad$
zP$tj(Cz%nfyyrh!dH-J!a?<6yYGxD)VVzfkS^omj*$|$!MrthTTHxjw3F>b6dR|rj
z$4i-0{)vGE9caIma1(;Y;ZqGts1sbzcX1um4XvnYykJ{jnnQ3#ARe#U*j?a4_Tt0r
zVX$0gAQxgZhc7P+0450lMTk<5)4Y+*vvrS5DB)%%3GHZ{(z>Rh(vyi+8u;akfK)Pf
z>k|P<TReZ>&9vh66&b!#u&ql8<0}V07YM}&*9m=;gdEx4&j)7M>Kqy-HJJYQ2-xSX
zvi;pw>Hl5?XdrYYFeNN?cPFPW*wf=DY^pHpf>XjX47s_gd#In()~{dH!Hu0>FD=jz
znw$Ql76zl7G)=V3k=fIpTzPxv5s%T70QJ(4nae+|T2q#ZAB+!9Sl@|)b&W@CE>*FS
zdv@6LzILmKE{L+w>I<iICLBzW1q5auA(2Ac3gR?xeD2w>6{KB@0jZP8g2w#}nx=>z
zlx0L^zTIjQ51DD3?!DJq-uz}jR$HwKfx85!6XG8~ZUPCdYYBlrrROoxjt7@g#kV6E
z`~E&;2d5CGM_4jff?*4T12?f)V4j<~WIz4&->?H;`B}T?Yd>e5fAy30?~i`QW<aq^
z^Q?qg?UimM6p(6@aFU?)aQl^xYixgAwm?H@Zt`Ob2O&}C&EzJC&pZ#|_(hM&+}3`;
z^F+ox2wR4vMp?E67^F($W1cIs3j0rM1wac~Feck8Hn@}MgPw{N5@CxkoJm_G6lM{a
zvzQ`_AV;NrNNBc!oE2M+n*<jQxnb90#A3>?smX%cMa1=se40y|FPcbL5@DHyiZHcz
zuf-ubsE}tfckGy(YKzeAt&8vo1=98p1g2Pkb2j~A@LVd=Zh_J5`bh+)Hr3u7CZ$1L
z0+Xzs>3DwHe(dqzu;0J<hX~ZF9Zc`AgODNo+|xf~A4ZUl=BDP8DCkVDDyoMBq{`R6
zX7;Xknf=<Y!9a8=*dEq1*rW0H255nr3UdS8$?NqNc;_no6T!G*GpDkn@KR3_I?-*)
zXwu!X&BIQD+iQr;<sP$4ZG}^(JxOx@xn}`^z;4suW}|(1JKb^Kwj{<ai@8og3E?>B
z=i?d3mnjyY3_`Pl02L4>@bA?$Q_g)e2u_)2g`kztM8Y^bk|q+K?c@rLuU;AJg7X)$
zh$=+xxznd@?z!h2L7P%|&z?Q*|GdKC*S6UoAP=sY+0da!%$|Oy+29|LRt$hol5i3g
zxSAb;Ud;w_GnSlx@Zt0S+{s7mvGFh9<Gjs&yz3tOt^0q$y3?KZ|GoG>*#G(z0{QW(
z{l|y?ck4*DI-hYYGz$k;2!yas_R1?}Z-0BRRl+lqG5gp5dj5Lh?v3T^zXcka=B7Wx
zs^@(ipS=j}+Yr7q=)xEa+Iiu(wC*NYzt3Wk#@uGv$5flmSJ7}3?vVM)S1ilYnp>=T
zaGOnUi`hk@3q~SiHkDVpFnKxE%=)W>u*D=h<)D`!IA1`RCPGw1FLyJQ&^)X7R5g$C
zYAOV00X-YG*+Q$x*eQRe2qRiSC(BG*gcLvf-R}lDH_<i~ySXkJr>e2_9SF|<YBu_3
z@Xr1#oY$u@#}b=)7Nl%hJMd2N7^@_3SE*udjlvX^ryqQF@aqWKTbVT-vkweBWCMgO
zrErIQ_{jI$$8Pyg_L=h^vw!u>r`)P5fq6w!?I_n%fiS~bTFk!qMUt}COw$c*GiaL|
z<nIkFG+z&zfd=kbm`O&I28_%mq}xTyY;&R6n(7R+8%^b}<8nQ;v*H3p<E9KI`Qs#)
zE*31kA3DAJ?zQ;NZB_zJIa|&+r|%RwN=r}`)`#y%)0|d1EReI(wv-Y~Jghf1ecr1(
zRh$@1#iq7HA1LwYAtwR?DX-=-B}$IXq?ne3P6kP<?`6VH6uUV`2ug8q5LaU0OI+qO
zEBuKUBNRyc{ug*=KW=vMx6Gc{%ja!qp1&CQGevwbfH3X6(|wNNov1#Vq_)ca5oxn0
zCSJ6Xh~I1HeD|&gNf&pY{qwVbV1ILlc+cfZNX1C|Dc`8!*A36J++mI1UVkmHDxrBj
z43<}F^7^{fuU~2Z&D@^Jk2}w-a%Z*>Ub40AE>Ck6mpSP=Eo#$EZ`V2vvw(SQ_K7FV
z!yWKv#@gGg?adEb&)eT)-TUvvyq2_LK5N6%r)_xV3^B3zx9W-uO{nwcV8D@f+1uXa
z=2_36QMcbluWoc3D^^olrVCA^%Op89Wwu_>G#9sk1W=W%Cn7wEW1<yPkQkTJWRQ``
zHj9}yL+oZ==F3oMhJtSKsjlstOrvOy?!4Upvu5{Ts!iO7atSa<T4ouNgWbPtcHn0a
zj0|_s?4=TD(Hy3dWoj@}E!ei?0sH8MKeVTZ2~(-rZhJ7(MpF9_wBz>F2<M{&N#aAX
z>zjf<FihDG|1c@Za0^UKn0*`p&i#9-ov&{1t6r^t{`KoueS%HcQT4o@>l)VWTI;zg
zp&7<EZNhVT%}dtTt$zJA58SXFf)`H!piFKIp?L!8yfJGfVe-~?xKmk1uVb^U+B9s}
zaJgYkx8y=X%Su?zAv6mYF8HrvtZBaI9_zU8P1d*bcI!><vnmWXmmrQ9BCID@oSi?5
zo`lk1O=hwlqbUGTPX`%2QkcbSgX{dx8@#g7Z7T{r3C%V!Yamc2GC4QVhUnR)w=ZqY
zHAn`^s0iH=6v|K9OpZ;lE)}8Gn|<_AH=9>x7utO3c~<q^{fsq1*8dK(`w^V?A2Tg7
zqBH;iKmbWZK~%f*akDp`LIeFJ%(E@{stZhr()KrJzhz%J{~hwwrtGbqm}ZL?Y<s*7
z0b90TKlWc89Hjcl5>c&SR*rYuLj(7C70bkW`k*PnuMhX^OY(}^zx}snpZ>I&Ql|ar
zj|R82$_YaK^RHhIPJVs<RXwlgx`uVT)_O83EH0IBHn@1R&m8ny_|eaj)Ou0EN-Q~K
zQ@@7wRNcZEg_hS#U4uIDp5j-T2K*zTISW^6Z|in)XYRL_M3=v`-iW-LSM;T9a4Uyx
z7`E@Gv@Oq3Mc3AVC4{Cln(Wh0!;+S_6v8rf_*RQ4F*3|Qo$cGLulWF`xEw<Bl(j+J
zy}t)-q*l}?vY2Hjrsq5+F#(O7Sb$t;@>^JR&+A=Om#}TM)IDms-tU=c^ju7^2+*@h
zpD##gX3)S3Oe(?>wnJFA3c^OhLoKC@F)=d7q{+Kk!aQ5REL$KYo6NLIS}kBu6rW!d
z%~boZt;v=%O6!avz&iQVN(5AF2}Et2Oef=@VgK0+|HZx)$y;T|C++)oyv2U^^gps}
z<yO1B>45$Bkx$!yJASYI{9Qj{W9(~le{MfD@Xzd?E%+)as&9q<5q#l#VTg&$vPxwB
zp${$mrgo|I(O~1%|5ZN-KRT-ZJ-hm|Y|NhX{XlKQM@8G#yU(ul?o_Ax_e<;b?W*r#
z3Acye>z9`mn)L^VJL@EB5T#Di0Ej?$zcSn>Y@~3%>tU(7s-F6U4RbxztG*60^Tc@h
zium3pvm<Cf$1PgzU@*TM^DMbD6CKQqtAKzs0akmj|A1Xzzbmb)ZPlh>`|7(&*dMNR
z+?s9YdQP&gK}CHL7MdJMrDvaf(&o@;lEe$PJot8Ny8i*IwzOKLRJBgflu8$NX7V`g
zeA4-RvxSV0uToMfXb)M0?bzg;$0W);+trSynPecWy-4ck8`0O*j^VYm4EwUSuWuVG
zM+}1<qO6rz)^;Wh`aS|UN~}O4d<cu4eel?8?-})^(pE%pNSs6w9%;x9<kQq-rgRF;
z9)UUYt#5h1QFfUmDaLd^I@g*P^3l3P4o^&FHR;r|{`TN=_N~ePXur7oUlLkWvNvqG
z-TvP8kJ`tFK4Z5v-D*4257;l9_#J!i&WEf^S%sP&wjbX89&1HI&E>N27pJW}IcX70
zuvI2yO2X|$TD00hxmm+|s=XUwHCD2$f8JVGKL|f7InPGyt9q%g>RD<T_EW82k0q>Y
z*shnWqgzch5xPuymC)3QbW$}$ebM&Ied_nQUe=e^^K$pId36oiwJaf6ilALiyQVpn
zJ&gu*1hj0wZE4w!rrA*&RD$QRcof*Y+N*6<!Zu#I?mw>QA6;Ksjb2g((qsNpLgYMx
zQ!lN^!&}~Pzo-2&Xx<{2<T^<{+|NYhQsyiO<uf)q+vhQ{WoaKEC3P=Z5-yKP)5L$*
z*VSU(?Vv%SlndHjeScvvxcu!ceqS!X&lR@n(Ap$dx2KPoX!MEj(Rcso@Y;S?IMZuv
zzVgB00O#mg#c5)mjl+mEijP<5SplRpxljrE0F|z_N!S<4B5CK@#1V)wghvS~J<;ox
zUU|jW=Rng&&@!coY99@$evf|E_4}iGCjtA6W+&}0E<B1*GuufvoCwX)L=uF*f8;~<
z@riHRvEqc?%LMCOE@Pj0<*)5m@A<HueaC05J<)7s(ACmdtBi}$uYcX*-}il1`G^0|
zs!Y;Ai&^B6M=YWV!Y4mz)xCQ`<080MQNlJ2+Ikfy+JHmr>sr6Q0hhj}OVro#a<W0c
zFO`4w7kZV@)XtK!TIyhx@C4z-v`zbj`{{eQuhuuSgmqON!UhTJ8rEww>l%gXOTH2%
znpSM)_}m4^48}1Z0lJGPiObyTX~0@i9kuoi^9HK+b)#!|GaI<9Z`-ghXj^^zu6Nsd
zB4qlW2HOIIa+Z`-*{7azy0)Y=8~_>esU-%sS_JS<f`P7wEHSghyuLE_j1|hWo_cKx
zL}jj+vDSE(haZ&CNXMr!MS>LF(cj@h)AMKoj8VJmx-|o&UWoZt57+A3X8y-TE8(7t
zHu8mcEc~e^(_E0067=7yXY-Ko3NKj|3Aszo@F1N}2ZrBkC(-65C3u~K-{<$5f5)|R
z)e@LjJ6of{qyhABf!~8{Cj|#dN&EKaO@&lXwNBU<w65QLe$IK4+qPK?W?IANTp-wA
zEJ0Cxp5m%4_x1VniD@>ko2%1MRFkzT{#>}(C{~>@-nTE!yoir-yIm?y!|9IM8%)8G
zp1t;`NB)6*@Ts4+Qv6|JHV@k;h99$!<bJ?*w)KOwW>4-l#yz<?83v^4&;6W56^E%$
zU5O~PhWpWVC16)l!afwfLw*jftM6J@+b-Q_CFfs{ee3HJ);k;z>VI30Yp?X2VSRMm
za<W1D)$hCXI<FF%>crvAhdYNS(Dv{*e>pV6s&$NTdw9%dEyMa~8P-Yn<S!?c3b$=W
z{Uj_SH4f7%v){?wC1~?bkvDUKVES&rKb_71)YY=Z5+G;MHK-;TCHS|Q^$y!AY}@d=
zmfEJaRew-fw|dt4nT8>KbhQfpvRP*MS^Q-&w93?5-eOG*$SE|LSQBP5`fD=6M5Gx&
z3Y2JFEY<vZQm{>CFWF@N66vtosC(QeEfW%&umYvgFuOaNJ@g{%H;U`Cm_&_UC>Cp0
z>P}W$m7!G4DaDR)dQl0kU3ZNCTK~O%ebJ${FR%WcW(pdW6}3+?8R7n0oa8_uHzj6t
znoNlJAx@?cnXi2SXaCE-XSD`OA|PAQ#I(=k7rtO~JS%b4mhf>_U=EU1AWCjd)kp$n
zJ^GHW9jOL=b63ZJ{Xo}!_OYo?+mldLmiX5cQ@9C4K6@UtpBVfp`{eNF?XJ`zdnSM0
z#$XxhZ2<vGqr`dsKGBfLk;y>yH-FP2&x5G_>Q~L)`c^Ys1Jz&ub&DQ67_>9*gg-=Y
zTrR;iw5pH5Rw|klEiGYtsx89y&{EsI&DW`&me%8HzpGv<VSU4T>b<G|?P|}rp8JLM
z(K2k?aO|qzraFZCUame%UddqR<qil3$M6A$`-aQQU1T%1sebx|9WJb2xZI371=rMz
zqFH*$#<Le}5FcB%gvOKVv#zGC*51_1Y(EG!;We4B=H}OXzAC<=`YiqEhjp)~Mje@E
z$HuI1@}%V%xXQ552>jDbm_rjllemzKwW3K%BAO&0X`g?ZVRj)t0+NGaIDXGsPuo^Y
zMLMlmfNpPAWbI{ZCd)^6Cqkp8d494Lj13wfxW4KT459NcpF2qXnhbXQlj%=O|Lgnf
zM}1#X^jqz;;l7#$m+`l0Swd>Y;|cG}x~`w0Hc%}-Q!scfv_H>BC!XIoTo0aGaBQ$`
z{uuVf2<_ErhCZ;3v}oOEo4Te1rpO-zkV>V3ei=Of+IyzsIDY<I923I?tMC)037f?<
ztK!d%Nlp@Etu(g?8mH>G^jP0{jsC<qzfiADgqr;5f%n_T#=dEPHTo%gVeF^ujazSb
zO|lIW?1#3$-99<^aqi@RUs-LTBK(2Z&%e~(NzRFr(|@<qr+pcD=Q|w;rT$6B34YUl
z6pcdx*orJ=b44%<F-s>F-tS=N;IFO~3ZeS(D{Lbzug9YCwqAn^>v+A@SM{lv4O&;Z
z+Iqf9Xofd>HOs5L$km){J@>hu>Z#XIU0$f!5t2=xn|uMyCu@DJyYRd1<Hd$e<aJQg
zreV8=%MGbEgO3Qo=P=32+*iW%r$Bn;bZh~9lH9k~BGBh~@xdh+_!RTnh99e+7}y-X
zw+V<O&Q88aQsdp$lkCI<89~b|BJ2Rd03aIZ=_OVZp~?Fc3|u-RPma@7@sn1?D#WLv
zW!?8`xo-RXZzc8xeTpeCEWx12HmQ@f!P)($>?a?bgr>g7(1hZEP-NB*L?-Rdx=<}X
zsq%ZIUOuohyGLsdJ_+Uqe3&q38LcfNAV__?|HgKFdYVK8MK{M9r%NShuhw?!Z*M_p
z$MI_xiP^;8+wDKs>Kyg~mbEj~FNCCxcXtP*2MEtRj6qcfC<##Ae-yI!xDcm)5A{c`
z{kjImVyS4i_a3k>-1hVK{%?QIe(l*$*rz&v-TIq?c*>JA7m$#BmZ=tPA4$x&w;<3d
zi>en2#K#F|0oY_r){MSrKkx$q8;}m*-ojFAPJdTsn2<gG!ic@+lP}qyd~mmY@GZL;
z2LkOr*iY>l9vLk4ZmF$QHuOCUE`LpbulIU}_0uw3U&)QGN@xay$&#nMlB=)dzF|kx
zCF<AL@scY#wS1bx08`FS9kb^67Tei*kW^p?Fw@p@0<P$68^5#KG<^Qya$ReofkOib
z0xt{ePv*;Cwyex!Y*Rd7)17yETxN_xTHBTu37A%LC~j*%Y$N!Qr*fk{VcFGnn<W5V
zW%CuABdnq+L6(o^Cd`vfP}c_M2~X!jtvClLBx4mOI{qnU5pc6sVSBYq)=u9($9HXK
z>ECnnf)y!A)ie--?4}P$;PS<*TgCbyp({aL!H=ePjbe3(qXoI3thGUeRB;k~Y^(`R
zmM$y<AsE4g8jCk^EXQ%ImN8$ljs6u)=r=93o$!x%3+Iz{gF&RG{3s+uDZ={ExRYo^
z(lp1Xv+mzSr24*IX_vA=UkJX}{jJqkf>9KEB~pdWDV`R<Od0fP6DZmyCOZ)!P;2|v
z9lfTj66+cu3&p&>Z}-FY>Eh??N1k|}{n%p_`^bS0*s1CB_D@d#vAwzZUVD7{llJjD
zK4b04U;?XSy@Uc&fTz!VCfEjg+sg+(NSI5f--jj!IwFTz`=5XMc^e<k;v-Jl6Bo0@
zh_e4^$#!fB&Mn}TO6>~%%<KEF`aoDV<UI>7wu+_dc|F%PY}2rwE4|fK3C)#WY@_!N
z8)u`hyWI7{7f{rBV+`J7b1zyezLx&>eP}^@NeKpIUGGWw7A<$Oo9VZj<SJp7Rjx*9
znnkosACRGLOXEwDzwAmynwm`C+dB?o8ZX!g6PD4*mu-0Lw54);;Mbl)P=UTh79}h2
zh~_}!68tU@NCW{_DZz>ZAwn5HR|V>|iVH*u$(o>a0Vp9z{GSU?wrd;5`I0aQ*EXqO
z1j!_ycCa1o)+=2Tq%JU}ts+$U7e$y=5O6w%jXE0BpEO85+UD&-uj2j!!70r$=^A7-
zhK8zR5u#Cj&?+TxquiH&r>{i`t8l@I*;>LghE|(MHCaI#d~ujW=(>N*vmlkn$J1bX
z2)XFO%g#9hM6oKb>q~IgB(C3&HV1bWZEdymp+jy)FJ-1JN6IiUIEnI576Kt`mC$;<
zi{3rGS|uhXA3F42>r8#!-uL7`u}8k~|G*-I#+$s`1?K;}{r|EL-SR%Kj-EmI&N7<`
z{FFzJn*ILoL(Ml}#yz;>Stwc+_7OXhN&+)QTT|RV_Q)8i%9v=xX%9@>Z@jC``g>dK
z)L_PrUZ4-tY<qi}d|OwGtRzBC`zacKuEQ3%p@ru4*WN)GL4g5xZ0@2>&JCm86wq!k
z2e$7=Xzp>Lc|Fh4Hmgk)lPT>)0#mVnxfh<d`0hQ{a{v9-`p`pe0`$5q(O7~34^$|E
zqze=HuI@XDjm^Mx_9EdWr|nYgIlw4gHZjgVQL>weSZ(sV$joOEP9+ed2uTS@G|2_6
z5n(9PtArRIAKwrV(q;p54}&w~<NRPt#exYOTQG$N!j0b%d`MYV0+Xuh?;5CtH23R5
z6AdyZEl~2uwa;MS*0uCIN7Oz#RiLRdn}9?0GNZ27x3(RD>-CU;b%C0u8i1+N9r!If
z0ZMVXiITNN(7;Pco1DO%Fbq4;D7iH|iC1jt=E?|81anM2*FZi}msb~=X=OH-Kq*3O
zo_*$7E0YC8oV4<Lwmkf>1Grq+EO~yfKHKWH=$Yt=2?hJ!-4EI6o<FwFpMKO%O`e9}
zplA>F|0DapeQ!7UI2XN#su%a+<x5`*mYA0fFq#1Xvc24&N^Rnx-G%r0l^-~a6{Bqb
z;>$yJZ&%8m%wWyn#}9wvS^M(eP9nkCu^l1X47jR4WuO1xK6~$d1GFbGthGlKoVfA#
zdTD`%(A>}`5y5{sYh$w)+@GnC6TMt5$qvtG($lh?S2`FBBf+S<p|!g%FQx`UAc=x4
zf8s=t+!z2*X>^R_6t`K+0}oj1gAWG2G2K8-yIFiMfrin7X0^3>t7Ra<KU0RtAal+}
zi!WF?+G!JGghIqBj9m!FNl3=e4O<?9_vy?fw95&ECc+b;<TA>ygYa_!D4`>54pS#f
znL;Imq}@ea)000^8eZUsjJlS{cWIjvVtV4z0OecMfXn@Ay8smm$QQEL5xlIsIoExo
z5|^}#OuRDbvaheZmMU#m=HO5Z4m94-Y+S8r$P)TGhRb`Cxu%E!P2l&PZRxeyDnfB;
z05bCd+M&g!CT49oIg8NDSgvQ<;$=cH;&8L#4~~$3lBoYsUMz0<+P7#^v!xClw5D@+
zSZd!sve3W~1R$uIMF3+VNE0Tc7|x9-5}YoNXzSgrTkYp=|DiyTa&exjS7DLB)E2d|
zG{_4V%>KiF@O_+PR%`ElZ}460K%rm_PUC{}$WAEw$YLb_Wgp1oubrH;BRkXf(I4Bz
zBqd>AKR#}Mc6!!!XG`|Jj~%to|7z9VfB!c3uX{a%vp4=;CoRwrnj8Eea%cgU;65GB
zoM9%(Og<I!^j}H^Ce*A3OTDmFW}14rZ~9Ubf-=iGRUY6Uu>dIsFwGz=vtMF6AplXd
zc(MGrUl3EM068@uVHp5O2~Dwt;ENLG(>!&~y0a6IA)xt8j@oGXB3fq!p_zbSqGX8(
zekUe3fxl5wMFLQvHJB>h42lU9VdetR1*80e5|)@ZSq6T@n%__YRYK7Pth7uWE7Ph>
zc$yHP@k!g0(3H8AqEG~ZfjkZpLF({*7n%XcC=j;v6ZVndbL|vi>cAv73D^9sHNR__
zWmW4kFPCOmmmo#3y2)7Q(9o>DCPAKHA6<J6RB;x+UY11E#5m5DZET`o(_^DHH+<eA
zvt3q*!nlOMl;Dge+8nSH2ca6=V-1ibEt+jHeviPWliUMw2Y@Y=+^JKR$8zB2T4Enl
z`}cF~5)-fQxjuhn6$mT<+<C2^d5o+cc{us<w&D8WccFlpwAr3L=BU}9{%JG9oV?W6
zJ#12b7#e{sh|-36c4Vw<pZ@Rxd*1^)dGFN+%zo+}MeF;6qxOksChXAer2U;gI%yXU
z;D7IG!jugA68pSLi2IR^Kbz444WYTgt)9g+cmdSr5X9jMh1k~dX6tF)hFNy~eL5R_
ztE<191}p|EPy59Te-^~zEMx|81ZK+zJ`k8?x9?zfAGI<B5yi|9%Skv-C#=M>j3!@Z
zy{PYe1mG#+OExt9o!K$#B!2G#ysD#lOoh2-w9IBBJk!#cCzE73Nyx#8@_;l%s7bI1
zJcED~s78X2ZGnK0FqEHBf}-YcoL>)whwejG1P)>!2?h;?Dr}b^X1fQ&bIY1IIVBl_
zGRAL0uWHN=grpl6Yl1GAVDSUzk%o!@l_tuk;!6qHVBIxKnUv9%9r5ey(nc2mO<Je1
zalLU~7?Ro`Sm<OjaVb`|*<#v(K+_|qZ6-YmWgg84OHLIuZr~F|XrjT#(_OxdX&r(N
zUp9lF?byM7ot|s69nCBTXr}xppS9e#zvI5mIcN}No>h7=M?cq|y*JT1{+Sn!wQGdJ
z)4$f&K@R{wul?zt27AghtMY?CsK8ci*-SoazRci<;O}&<WRITWIQ+n8=Gdn<W#4=M
zb{Ck^Jk<;2$NaH}x7jBiAG7W*`rO&P9eriOw%ymXjIgAmc>R`4GSnAT*ZKZcUz^7I
zTC_kzXs$&ozQ#FZN(;5d83ywUQ!iqkJwu#UtM#?*B!C)PF-&-k^6C~)^5QbgKY3>N
z@_|V+NupggOEWoq(5e70i)fF9%mph<p0Of+Vtq<;BUa3gu;jPdLDq-Rw9rHuw=~T3
zG3!s1;x<%>5lT@c%Si#PpZLtSw6y@tN_96`x`{zPihv|tTMQF=C<J0WH#fl|80QBk
zAE;D+4Ol8H{eRu};D=xrX(C~nKQ<T#B{WNl(_{cteoMt^27|i>%GyCf=hTXioxWbT
zO*{J6a9eH3&iW@otE?ZD!i<BP1aQ(sqe>ew`#>U2T4#A0jXZ1VDLlRSH6wGgHk%o@
zEavM{WfmfL_UBZpev~kucoPKq5J<$EAm`AhS)V@8$^Bd-6a0qxH+|@URR9)EKhk9t
z1W_KcgDgTb3iV!$7+ViRnQzDNE;nJR8^gk3w1Gj!;Grd-{G^i`cnYvLy~#`;mAYpb
zYzY32Pvz`$CuZ!82*Yn*$lL$%E=WuO2dPLvhnlYQ9HV*W5TrbK%Y#<-qQ@3?p<qkU
zNpwBGrk<tt)r5@m)~pr5gV6y?4-QY#SYB%jG=%20w%j!wC$3Ya0UMe=Nu1!I?dy4i
z?dUvg@?|dM&QvGYn{pGE+DI&9YT+CiGM+hVb5B2MrKwR5*eEy6Sg~msEf7%9r4yKD
zb5@*1Sk8<f7!d*r|G*R}bEN!zk!TYFuOIW^7W{5#brM3*s!eBO2!U=J&WbKBVI3Wv
zwq;9~wfDh0+tcBon7D+d5T*#uXcA6U*4;n3PLD@VpDOYvg%2!nku3+ZQ8g|%EM9J#
z_N^~&98C8*(5WopDZef4Cm>NZJ!w6WDI2hiy`oT)(*?}7B$iI?ByT2U_7V1PLVI^J
zHrg$kvP{%G49<~7LFZYaxoYAP!*?8;IN=&-0y2qsa}P9<XRHFC$aaCo&0zAy?5^x5
z@d3h9T9Xz_;|FwsaW!{Re^+a?9?k~-?9a?T@)5J&`#m$P99|S#3g@vwrAMccX@KXo
zMB}Sf<E0BsK&DI9+J^=SfyUkYm=x4K&`{P+XYy#WB}@0RANQS9vVhB#uwE626^0*&
zDd8&!bwFz}_or_IRD|if`woCbyMv>{{V#W}#<pu}frik$re?dgg9HMaB&dEE>by+;
zoVBOkYr8s+xX_Ggmgq$z#Z6vnBS|@jR`bGBHvRc8+T5|{Kx&pPb{hk3`z4#oe%b6C
zOfT}$d6)+SH%%u{PM`_0Oc6Yfwv&>{lmR_Oj?x6?!y=&o=t-6bOf)t+YlHbJ6o&2A
z-Mifepy2D;+H1{Qy7AF*4$b^IUgp`r^coIkmwQfYGr-HQ=DuwP<4Re==<);d)%TLi
z)wOmsZ5<(eB!-5f_)V*H(~c#Jw&pC-hL+!)vF@>RR;)sbUq-|3eb`zKby+97w&ta!
zP9hk`-4yQNBl${eVK^n8Uj=~~hTKTIji&MYLKkV1phLHeTI`-}Rz5ZBh+3JgW4izr
zb;d2d^H%n2z4}{RuRTHb+E4t1*)RQ4a0U4<5%6B#`OaV&O1|Km{|z_2a0Yh(-6AU}
zEC|`d+nEed9JjzSGzUL-0lz2v2?l6QgsKoH>?J&rmNLC+Mg^0YJ^#xjyZ*HIc{iQ3
zyn(nNOvh(9in)vJ__*0#>K#=KEXRc!XmHlX-&M3gI8v|T6pce)s|ECe<UuV?z;`;1
zxp20?AXCjbt=rc2y$nEoOjLPY=-WQKeytPU5Wh1x_<#QRik3l<|4qKh-1(OgmQP#e
zv9DNhYTRNw5M+DMjC!EEE5A&NCVZ7M)9!b~wT3p>g$Zx~jRs*!=tP2cjS-s}O?5K>
z_gHh=4ohMx%meBvmWHhoJ!P}0Q}{GN;)3pM?QFL$Xx-X+c3HfYft?c9Og$`&TMK2;
zmxax%T=T&cVJTmvwB!nASb=kv`rcM{ndR#$B(DUgRr&a?cwf^MOChtWshoA5l(v2b
zPzqXP%dHmQa;vp=D^3$1DSqReOyjeljPWa%Y0DD%VT+i@OH2^UdHItum(%yl1+=M}
z6)|pImfV7$vx13sbkIuA4w61BZSiC90~52T`lNOoV8VdE&>sO6s|k?6)v@q>Wo>bl
zd%KY0!o-n!Oy<x2tQmZ>_W92TClCYBmMxb(nX0R1oW(EvN6!;hg7*0MRLSn&-DJIh
zdzO|tLQ;;MMI%i{ZBij9m~!{^2T0;jX39@(YK!c7%*1bHd5S>L0k+{=J@N-=m-k{J
z;9WTTCkW1;0j%`**yjW+MbsJo<%Zx~+UnQ-y&*KOz3o<TWChJ=*v?NJ_pBzd2!Io2
z+?{Aa?dd+Un=}QQ#XRtR1*d*p?W*BKMZO%sE|>(JC_pAvtyf^tsRB$v5SA~FS@FfQ
zHuKDPi5I-!AQ9V2Q2n7!geQEcFrQUp+pXFxasd2k2+Ej1C`|}fOpXb(${6vNF~BGx
z!ZS&GCov5Q3ENg_g^*n}LFdeYtVN@YAs~{?dBQFNZBhbkb;2sR+w1?YOUhuR4=XD{
z%I3CK`f6J%#P%s%Z3VzTG3W-9w#6VpNTS66imGVF5+^@qX&U#Me4{nsm9qDsZTbh`
zRS5xGDTCxilZ65uGbPU^j{kP+m_@po`xJ=beD)~dqOuh<k(t|zOaPfnJZQjPgr*A+
z%Pk4+S4POsm)bqde_w+YH9%;36?wrQ{gK&U{Ds+%{D|3~Ae<C>BJ}JMMkAr0#q@K2
zbj}_>GiPr?X#OqWp6`8goAq_jW|UB{YJCvKp#S{JENI!dJx?6xkKWorrWphsd-+|t
zhDjSMr`bs~$T<WiX$0k-uv<Qbz{Di0$z6g*-2V|W5{v=a{U>}dDYx8Vw)e+5R%fce
zDqkDrnp&VCG_R@IuI``^03=h}D2UCIV^0FzKM$Q-FNoQGvTtk!3?y61%~BQyHjxFC
z=7wONK}(sr7<}><As#^MxHM|jXAz>$PFeBf5Ed!4@J<Ht{rJ3&pgp1u##?*PA`y~=
zJH!!=@g}|l))Cu{n^A>!1)VI@YFSw>Fn_!Gk?(N?LVJvX3Hrh`@re06AR)ppDsi;W
zcq>zv9Xt?1B<832H_P*R^?k+&<!Nn3F9aZ^P?St&+Ri|S*Mb&5(A(@lr5L{61pgut
zEG7)>LFkJZkc8fa5>Vz^O^gtlC83<rL}f{kX}uI5vFLsT>M+80r~uIGB`XeIAOz?M
zi%l~D+S2R5qGam;R)Xz(wppT8%K@HqFQ0WD!a`rAgs0+2KlC9p;)3np{X4T?_yvU2
zezW(z&xLCh(3X05NR9WrOtaIlO!d(Z(IDTrA2e}Ic1c?fyVvO<w9KKr9Xim2tF&P6
zI@H0q5c7$&KM_sd<Od!379TXn#I`_Sw*4sD?nAYQhCoyZlG<bY-^JgF(A2dq{Hj_1
z+cDYhLT2*2e4mZ7suo!19=EEx-7p6iD|sh0I6HCFrkQznq48|*IE;CA3onsoko09b
z_~lXsUH^?h#lyG1zOu}YJ)SUJN{iMy{zqw*B>*CY%z1?6IZS&Jnu9FQT0V2yif0Bb
z`b^H^&!dq-q+Z6ylQ^Kb%snv6>?a&#J6etgQ3g=*kIHW;WUGYb<%;4l)wWTMSPVWI
zOQIG0ltp4HON5bBl8kBiPl-*;VG1o)4zkBU?Nm4C>|AZ6A_35nj$02QIJrEUCNZ)@
zBjeVOdA1KgP@D;k;!tBCkA?INQ{M$ghks>a<{2P7-E^zx4G^xFW6~5w5FNr=kVWHs
zhLEA>ApDq`u}DAWS`^9HE_~Acd+9TPj&cZEKGIkvboJ~LGQSfm8vt>n9czLVe0<%X
zc32PHRqf6$*Js1sF1M8Mls2aiVKMfxkC}b%_Xa|f{Sm3|TAU_>$@Ax?tO+2`Xa4q*
zSx?+fWD!=~3ENrYn+;+?!xqNc`U=7|ERY}Ez85nJMVI0)RjvuTiDzBeBwmLLUWDuR
z0WQkD)3$!k;k~6X8^;eLSkDs-I|SG56G5H5hC1oOwRMF?Sy>A-gyzcHYejp9T~q$d
z5j4zmlgH3<+HFVIEw%@QTL-4u1%acz{ViG1H8yK!_k%H@YETWp4E1#vKnGK6ZEy=?
zCf#f&(1=WS(llhQ6Oae`I*~aj_%AlmYUM!?hL=ddoMSNU8nEU!-f!u9Zn4Cj2+N%a
zN&J(s2>Zwci%C|<)?k3Vd}{=0fEJp%3@BrImaHAq1uKAP6iIur3Kwwxf{hd6Qm6o`
zXqd9*8?%Z0qJ7;hHk->6np3vn@fn*Y<4HKl3;Ke_?XbtsA6i?HR>iZ$v>K2+5Zj44
zJyF6n(X^e=o<mmZ8nRsad7Fd6usC>@P>-TTPvA>U1I8L?LkM7X#9C9xFrkVc#cI&X
zL<uVcLeow1tScr|AR}$}b?+C{Nz#Xfa)bH`e?tJy(wZ*&U4k~4-3CJXd%mZ(yKG82
zx7o3C)Ar!cBcycA{VBT-VfkH5t_Qo5Ofs5$pWsai!qBE*0s6)%G|i5foq#~Xb~M@E
zt${x?*cpL{)x>yTBGZos)ek{~ZFl=F;r-3aLJ86cf;WQDRGIn?^+Efb_ib_?jdIN`
z&=8u}+;p#fpk5Bmurv60#+Y4SnmKO$Eq9Y?<A4jzHU|CIZDH{6fAjC({ED08N`%(9
zCOM7vIDLlCX}<Hp94k<W!Vw}c?Z`)!=*HaE27t#%N<4)IIGVJ=RMiSY!`6ELo!0aI
zAGD_X?y+b$;U4(bJhfF-S`8*aedb4t%eQ7(fEr9!F`2HYcaCf(BNG`L8izc*pxlNW
z7th#O?x<aw%>&d@{9)kF)H7VTv&*0VM&FuB#?dTW5tM`gL1=Kvg=Wra;r!ldD{<vk
zWCFjU;0#(xgb)c#>GDA*s`#Yam>3N}lejNybLl56I*gZ@XH>{cTJ&XDiFRxy`~q`%
z3JOYMn+sEeXq}pDWw;iC7}LBg4#^I9n*r6O+IQ2Jc43X!P2V7NMeYv?x>|9;9!RZl
z)5@3iCR?4GPq^u>y`A>_@4wl;aeU0a@XV<F+3^{EuiDF)U;pwu7wsqCy>C&-$@o;(
zKKJsBy{QMk=efN7)Aw|{DV&ib=y+iV6oq4cw6+c5D&><2qnGgZd~(1S=pU`}I6v)U
zf3BZD!!}|$1tfYMP0WLvyZ-(*gyuRvlQ1rGWaca}fuo=g>F2=uMQE_4Z4ZMr8qzvm
zf89>)gCq!7(kzt=;z!l2nHe!Y6OYXUIa!#I>Gc93e-|0-WPUx*I{r%evx*=Jt-ye%
zK@Srj2*6kc6yOXR=S2p?VL&2)8lwAJt@&0`e%*aP6l*e>uDnS2x%tWmp<o2kz&{F?
z>L`Q1Vj(+VWT`@*SE!C!rqFJakR{B4L~Oxd+9>qdRNS^8G{+`q?c&Ik3(YA6sC@M*
z(zE=p%!EFgYwP8UTLhd<32;ySE+|KKJGoL%oP{Ql3DpVsg$IYdFGR<f)imLY#t&T~
zMz@Mpz$pQXLY#ATeK=ffN6JLwj8L*>06voWHm1bm2+%5g&J{kIXo>DmMDu|Zs;|fj
z)<a3Dv+yFT4$YWlkL>L5&yT%*j~zcdWq<R`u>I;cF4;%^&ll}Y(Bs{)zZ+yNNwMkw
z-#y8@KpbaFzqHAU-Mt?zS?AKpywpaBGQzJqSQDBT@M~g%4Ta|XC{jB}C|W&=NKIoU
zMVWuEow2c4T?;gX=IYvS*`tfZtX-UX+0KkV=h{nWdYiNVbT@B<eWnW&QC;)Tza-0^
za+7~lC3%S%Aw(YFVFnCNRr#BQlw^<+$ioFA+hwA4aDtA)JeOj!km}fnc@06SkdXEP
z2k%5+<*AHituT1Pibsj-yD)93y?Z?eV+)Kc@xI>RzI`UG)!IN3Y`v<#IwI6a3&paH
zAOOau=G+fA0Fgl!Hkt&ZRi40nO>zdOPTE$|wTVpMN5reT%8j{G8uRRyu2vgto3>Nu
z$83~9d}*EY=GoQWwm(<!w2%h0y!k<d59a+WgcTRjD$ilYe{RH*k-e5a@;2f`n+azb
zwE~E0`8NeHa*kl?P|gdvO9;%^ar#&grz=fVtV9BeMUza#JS?ftBCR6207;Di4aA*p
zV&(lxM}<X4>kV-$1<NM#klwSu%RfK-mL2vu+UIUe&0{kK+x2@-+WUKwc4jnZJGLe5
z<ykaI07G}9sj7tMm>(9vMOgI}|BW;}%uT)@!C8ARB(dvDeinZw8-#9Fk?Uj0F2N6t
zzt_?Nb))vR9NswQ@+}YummGrS+~jdPHTJ9(06}bN+vka<JMm@K3rxKr!Cd+BXS;s3
z25+8_ucE3eOugc!*U~It9ti032$}*Wv@&L-Dk@wwj$i~KoB-*VgkLu))MM+80R0G<
zC)v53_c>|Ba~CXo_BktDJYl61gH|0Lwd6bBY3=WRx1~v5EP6FBO9zLQG)&!~k(Z{4
z&>Tf*CgFA6*4JrS{G@q+Syhm>qXgui!@s74;G#Md+BO&t>rS$gYroF-ZNfa;*VTgA
z5P^l(GB{4Q6NF}It#Vh@o~v?dDw((@DfyRQwjAW>l}WDi%q7gO`>pN%H(Jxd+o5@d
zX=rK)7ASy30+aD6I+zUfHP5a9D!YOSw@Ubu{HV#+y_jtG5EX;jwr#hi+xH+tFbnfs
zWh$Nr+N{BIQV$7H*P#Ga@7dkg;vZdN0-^cq_jKETdvesCx`Z%9!<6~iI+DJseHKbh
zY$h<p#@>W5{A$n@L3s-qzPQx-Cm^dpv*f%woDi%9Ufi3r4=-+~)qQIS&DFKv6^;%%
zrhJ(fr(W_;D%NJ(+Yds}egG5Bb#C^P5clAE!Z7fKc<6w5O3@s}-&#bY%oEU_Cy{fJ
zp!QO31kHe8_8f6~45SgVU&!<&z)lkFQa+{>gO&VDDSS`Kj$I5^1hEVCh;S`VpL1bZ
z9-1IeV;g4Kc1z!Ki={~}orIxB`50GU76ywVc5)Y*2+l6Z*?YR%tORH3T=PClB&LX^
z9kMeM$B3g<a&QJ)2B%;ewE9}S9?u~2Y+q-K^}tdi`8EkJ>NLLJYz{ve^fR?#eO_3s
z<{l%d6q!)=zzBDn6;7P6!Y~90;~6WTg(7iy7XI59lP)-Id;6@^4yB)fKmdR8_((lP
z8-7kP3zf2QOttv-@RXNJ1(3QEfXyJqcfMWDM=WEJ{wuEB7}x^!#UQ^ZK61>*3RjBY
z1B}#LgI0KB>T&Y|)Eg=2MP0;T{?hj!vcLa#58BD08T;;wqxPvMM(nQ%vAXrQpS17(
zgFEbAOt?aQbA~_wimfTV7s7(CA}m!AoqcJkZOeSOwvV(^_7PhURFYm+Gx1z{xtsL+
zT8u_FY11u#+X^!gzpTu&Lz&}tpyw^Nr{_-F32ol>p3y{FuL!)0fO$$zfPTqm^_tli
z5h!kg#S|uvQI%){Ko2I@rmll5iQQum^1%$D=~*xIosf_yrp`obU@8+KK^2np!r3!6
z^Nq)B>WiPZ(sagB2g$j3<cMn=apE!OGhQs;+{^yze$Bc)q%Do$)4Vh`LxzcVSXw%)
zsdJYV()Zw2J&Ac%tWDoxf^!I&et+GOH{Ytp+;kH3EShF7pHw1_zqf2NbM$XGX$269
zkQGJ3VXemFXe(q2qz{t_$UOF#&3)@zHg}w)<6rt~tK_nvso!Xceu&{QwOR*60;FV1
z!1h$`xz$ayGTRn&H8%nMxKaY?i>t)BjL}5%Q!qgdGPwhk6d-U(%SYU49JZ(=LNo|v
zA&iOdB2rk360}Vq)Iu*q5_iB6X!Z2@{s(v3lP{0i+yC$+f^^n}re9Z94q{!oL96z>
z&mt55C6JdzOtr!WU~={nhMfSAvgvOJLbEa)xR~2-sqF)(f{8<;tgZzbLUVQP_o|~M
zaOBGr1JEeomoYMIWPppyH@36ui2KQs(y*@Af`+MdT0!h2+N6-L3^I8)#h$_xcFJe%
zn!!py%KVy2VD@6LaZOTMrBIA46%OL*v-G0!@&_Og(p)iBuI6%p`p9m932x>a-?Z7U
zJ!<itJFWfgZ?`r+P0*Lkn`KwoRvOS<aMmW`dC;@tlXEu4pigL_3xnRiolwS=ZID!0
z=O#|u6iC{UnYSV!GFS$P0ln<Zew7t_9UQJE6XLX`If<r8`ZSUzC;2{ymMOpRmgyFl
zl@i1y>bb76)TC~NR9j7Gnz1%408>+zg(zMA&CH{Z!45^}1!mlM7k!KUL~aqoR0+%n
ztxD!d#RCIKBdbbrF34~r@{GL9w%(V8;KrOgcfo}ziYXI2LSI^C1=&~o;6J4gOHGS_
z%+-W2m=Ub{4!wcuCl`v@RMp#vg?-x{SUV1jAVS-?HkT84$#>9^TfYbTpm)Fs^koF*
zH;KU{4pc%@6nkoY3D~hG;P3lOgzRDVISzsQ4-+ej$-7b3tOXiEbIqDEIFY*e3})Fg
z6VH1Jup-Hj+fvQejbE>~Wf!!01Y>X7Y>$^wFBbz#F!NR}Ma{sKq&QeAe$ur|H@Auc
z4N5f3vC=#>ZH*~Y2x!*`1Brty2rw7SKka5%!Tn{9<-;ufinCe<gd%1)<xreOizp5b
zS_}|~z&|p{rqMLxXcF^g+4@l?Xyz6Fb)m`am$~+2CQCZ7oXs%sr{MeSCkAnQUx!uE
zn9I>Ae3{?0T#>j<{A7dECoF|;vqhTnDok}NuJCnuKuc2+TD>%ERw;b+6_3~4;@W2$
z!W8tU2JJN{Zqmd|n;;!m6a7J&W%k7vtxP(x?DP1VpLz<~RnoV?#uJ6Y&L?I|uB+Hx
z#cD<sv&p1KtVN!o1_2x8S;_(;UR>oUl?k>2@>XsK$tw{jDAin&iJ~Tj+BXUUH%K(T
zkX$@S4;KQ7^yaU;c)X}yNe&eXSl}U*1?vdEXuKeiy1^u7hkn=WnfnAjhiCS`!8`ja
zyq3hVs=#bzr#~8Km(`I#+uZ-ld`DYuumJ^av<810LURooF*t>~y<VJ%O)$fKVdxtG
zfSz$)**)D4+5ofI4$PGvE9kGtnq7DWCkkF{4HPo5DjcLR2Qy1XAt8i^AS6VzE%E^g
zQw>Jq{8WYzkB38hRD4}95a9=c2wi5^1Q|l&DGf?WpQSWfyu>~+P@Aaex?%h9{-ZtQ
z7z8tqJYqAL-y&!fEe}0pE%)E=X4%9xX7^|lYf&U`6+5Wt2*qS(vPCz|W=KA*fxm^^
zhW$Nlwi7T=g@Ew6(x?;Y4?^K4q51MKv4i-<_VwP)fVMWKy0y5k%{WIA(`-+BvkfrG
zP`Js(k!kDcB!r4j=(}5!detUL(j+yB>VzCU{*7;tfAbN`pTe|CGV&<D$yy=c(7XxX
zk6Y+-5iB}R+AoWUOs^dWE!`(JAwWWyHl1Vxi%>x8Co?XHaNdXP<O$c_)c>6#5Yuf4
zW=kk0v<7NRv~G2Q9Q5zi-MNn(^i!|Bw9lo*&9ro45wqWcmU;X^v-7`!DHg4A*FTlI
zOx7Rq(tas;)v8PY4*v!FBVcvDO`E7My^+`d_g4wcg&7X*yaqG;*MAdT-5sc#tK*mP
zKa7cIcJ#ZX06Xv6<?e2oW%oN0Q)dhJ)%yCB+Dqq)VBOKV2ur1DD&g<RPn~wc0fBi6
z5Dx?<*i&egO4iIYmYeakS_sM{!ajx1NFW}WUZqJ!g#eb2lwcK=8hs@&VRE1v!pr;$
z--7kh1g2jSN@tH9^Bju#mtL}F2~0vuS|G(v9U!xXI6l{`EHD<$0ALv!12v0TQDC41
z{GP2Xf!R@E71*?RUOTO?br&HgTWt>QS`#0|(<&Ry%`P+(XhA(_mfL#8%S%eh(P`^N
zU>@4pU3>Ox_R#!90`w%Itdp5m8DFxb<SL#&Z@E`qLF<d7Kw*{zC>GzkmF^YxwQ$KM
zj#rGPG)y8*aSO`Af?rRB@nmQbHJ?njxf%+*01-z8lf8q45S~>4MC!IO-_8Ts0JH^@
zN^-V>TaYl8uRiKvvEbVN_cHaln$`)AtsjSj#^4v7Qv$H}&1UzWMo4}ZioE}9cJu?m
zpn^h57sk)~L9=}b(yqJx(1rIg_}cipx)xX@H1(jy$BDaR*~CmgK{j@M8p87`8kxRa
z;zgX8lS%It{9*Y2Fsbyl?zH_q_t+K&;<yOJDgI(y#VJ?5iv%RIRS8FC&7L^~o>wIb
z*1Alr&fSU7RLF>%T?vFP7f9C3p~?;t!$+hf%NlIrgkXp$J0YU%Fk}Sb8OMJaO=zH4
z*_~8oW=ukI=IdX#IeeJ{0ws6vcK>A)p(SZRK(Y4rmEZPj9pPrfh$BAFUz&7cgA@XD
zOJ}onLPXvKIy5Y;XwSR4Zi6Fu)JC9eJ3sj%=Jg&sxaEFK?AvJFmECiA-Wy?=ByqQE
z<y$&zaCFKpT$-|O+Am8AtaWJ?goLz60m1|jlbN=P&?`+&y16#iO@35_X45_Qc#LO6
z4(dgv_N-Xwxrs(E7Spp%`CjVd5xAeFk;;@StyCZ&O$v)>pg|ny90!BQWgopmVzv?;
zWS$T!p~Dsb86tQ+SvestZf!wO>$?&NER@yso#5RL1ScA&l1$(7iwMV`M7tcve>uTr
zFzpJN&$|jBpmy2XaSN4btS!?5vY-?gmsHZqUUQk^qlJWIC>Sr2k-SXD?8m3n%1kcK
zj4u4`GRHSI)mor}&tQVt>FM!fj+o5=X>Uq&Ld<^94)nbN;kg5!Sm^Uv&C9b~lLzOm
zz;&xokb=MuLJMjs@B@Atp<e~XcVCWZ#@xT7&=7<nzMBNIYMGr9B9rGgnWv(l6Xm~=
zPe-(5@@E3Kpq~W&CLl&x{+=Wti)6=;A9M0^pR)oQgM3ykZ+L^XzV)q^Cb{n-Kjw0`
zxq{!qAw$baw1`s|CS22OYfjk~KHY#@;s}GVq`Alaz4yW#Q?c*lzi4MJJ?_jvqY%sY
zx546suWa*t(qSz(XPKa#1~6ss8tBBtJww}!`=leA$KSS|1>q@;vi-g9wRlgDP5sqh
zIihw(+GYp7=n{-N4?N(4GcZM7zAtK=3kexC;nU>MNe}4HiXpD_$j2Y}`Q_UekVuGe
zk#&SA&V(qJW~x|a<rCHW5J%W5>&m=8AEBGzeb+e?u`P_B;d{TDMyk6fKOa3>ojTEj
zX31x1q5pD&Y^^(P={}9`uWA7a&DmK(o9J`P3eEZ>bNC5Lbi!g0^My<qjk0VD$n2?E
zY!S2PFtg9o<Ig&3Rx{X61dmu{G}tDH{c;oOvS(8V*PHNKg)>Pt)QiD~p@5~ffqcbZ
z<3ZmD$-)%KS0M&vf~^TonO~iF08K021jvDza-z8x<SV9EH@^lZ*aVqF0)PcC9vvvC
zSKSLp-%$SuCRDLywayBCs(9go<z9Hf&9b?pN38-ex=gaI40g?T-)%|!nDfA&*Sh_c
z{I2Gt+5%Zj&SdS(;Dn7&&sjSf(zY#~){T!YCf+iNnlyn%p;%fWpkE$-(()`P07VUD
zUJ2+ATlWA8LL1jfZ?YnxxuvJocJ{-s`pPB9Az)9M2#5~c+>H>cHTRmgjI>JilPKC`
z4&sCCm%nT!tYUM|JmV;9O}J#nRh*|kNbj?YtDylg?6U&@sP8Ja)6ubuclAl7^Cyct
zSrbpWFs4tjUG5FVB%@s9XS{DIHC+h-E6|)LDUd}6^sciNF@aSG78l`qdY5ozNF!AJ
z>erWCf9Y5C&BeE*<Fyw*=*Ri~SliJB=F+n?zQ0xrXk3;2Q<8@(l?A(0ZI8}Q01<Sq
zX3>ga8flc}TOb@dvt;Wyhbiynk#A$#8$(d;Coc0Y>uJ_(Gce08f2QE2P__gi>K4Bs
zI#Mr&ioz$9z*zy>L5idx=`W~P=iB6k7MMpUSYBSA5hKu}AV8B6-pqi**|7wpg1bE~
z4YQQ5`}Z30Kybm@-|$X@ufgp3H6~Sbz%r?%3a3xo+;_fXvxE)^02CwReHyfEGiEgb
zIg*5$IGAJ6_15Z3FrXkaZ7P$q(}R;Xm(AP3UA?w<TbFf_@@hWg1$1LE22*j)_O$GP
z!D$y3f;~Paof><N_*&u=L0?K}-i##?50J*0xenNYnn<BmwG8o^BZTja!>-iD1Vn=M
zGM#tT%_Y;TO!o=Q`OWv;XXR1+@>nYhSjJ}PR|-SX<V>U(qT_ol>)7J=YjNLJWkqx#
zcZJ@!h*R>3-Krm-{vNmDD7Br0q^vq30tp47yFGX>v*RygsiD3iUl0J$tu{jR^1)gm
z0G+^fL53b#Iu_n<zrI&c^$I4)i|eaB!oog_eth-4gnKrYuiXL?mMJD)%k>`@n&A#w
zZezx;B7qsBqb?_LU%Lu7!yY1mF1rux{KRpzlgIFZ?Xe>RZ?eN%9<UC0FT=7r?PTF)
z5Lva%tOb~Kd<KlUC<o$CRCY2cDGP*$hX7!4UyWY&4geF*!HHHW1fWbve3!3AU>;{d
zaUyNjYrfa8-j`dtrhB;`>bA*jR%B2UfMfbgU$V?!{-s5jlqrnB&9VaiFvz(dbJ2@m
zcal}F2JKdYT}49k41Ty2zO9~)7Tbf+>}2o{FRkap5T#*~MB$xK9`3h&J@@0=yhsQU
z+A-$1ZDMs|yABHXU3C>-CnwNY(AI(`-U}fF{$OQ4DMEChRAEBWN?>+EwHLPMdfb-c
zGh0alEf7%VD_^ncFMiSH5TI3A#_)A&h9m0*sZo}_d@z+-b{FmgA1K02+NdU$RRDce
zB`f#vtT~^U3T<8_7CRvRz?{o>0g5D4tI+*P_{Kn%djf6n4I*KX*;c|g)v=e~g&&X~
zf8qTOYo&HnZwxfaaBE|^o-Lq0F1O@z<yD$y%bFq=m%H?h@tZhhCv(H@#~jA*H3RQz
zZ_8n4{@K-is}r+d?uA%%_q-i?Wh96+Yb~QmM$md9GQA>@6=N09+9|Wh3@;|UuY`*f
zWrBrwGw<oQ03H!GB1E7}NYMnsFW!auwTl;2MCqVjl{QJf76fLB7gvJv+DkYyzWf<n
zU=n{RQ*0I!nh=j=%xOu?Xf8AfFL8m1Pino3ke3QEnIJxMY&r)u9<he_G8LQI-omW%
zG6Pl;-=@s!dwcGNW3}vN_w$p_+r{aZZ5M-QJHFp=vbo;%zkbdih#Db|<qK9~YNe=@
ziT3<3pdd6&O+wV)uSO_c%YBLP!s9a$iY0`l$T9Ng@Y$nv3Q?<Yr6e(&39J`US;}4o
z4ys+1cZ~<Qd=>aTs&|A>%m|}eQY1hFA$b}<=P8R$GuR?%g&8Q5{JC7_T`b_naEnh7
ztB<k*>9-)4thUQK6ygW`TB?(qR;7Ig=G@?WfKXpjg~r!4ZUMd1!tpFumj89RBOAYY
z3(OJ(fBe$7?D+7vY!bv>dwRErC+z6F#rh$Ne(f*?pG#_-30{_R!8OH-Ot0j16gy8~
zer2i5Au_w_w_0`w7p$OV_2LD7NRWUE<OT*WfhiMHkmUiIFh~1o8`&LJB`~k>@M{B+
z{FQ~XXC3q-Z9w5A0s<+tr0K4^+?SaWfdN{lmv8_JmsdFbwQQCTOXT7gM>1|g6rZQU
zOGF9R-`i@ffPw1A&QO5LOxsU*!7ZgX65lxsQN?jsg2o9YdWvV<?O-8=rYL*M%~oQ}
z#w8s0^mo|oT+V@2XE1y38R&Ll>Fu#zQd5EqRHJ;D@^O|w_`zUO22X9CJ~#8|qu$qK
z$xvStP{=hkj#CJV2kfrV1CvEYm;jwWV8@b0XP-6q-r>SD1Q5AzlXq056lP+<IuyI~
zWMB!B30JNX&Lxv=oJ88n#^NSjH{pW9b@{GF4a;i?{BXC%a?M+yAv9Onq@v3^e(4+b
z{LnWs-$fxYIEW^4n*)Ga>F}>0L|YmF06+jqL_t(t7COHWtpSh+Ez+|#1nAcQ1q+ym
zlvO3DvjpT30doR@=$S)6?j;l&!p9MOXp;gTgs4|1q89K$vu-Uh8LdmHNuTl<2t!P=
zv)}xtWxn<`D>9fVTtF0g%^`sSv32vnpHOOr%QdW=%(BBmdIA8Nz&zUo0ICC4n?6!q
zX(@lEWcAXb8E2<5v@p4t0{C%!_#1>0og~fMF|;d~bMX;(LOP#9BfZ(ov}&6UfK>ao
zciVYL_QgS~_EnC}g|=KTsTn*e#qufxj>1urps*{S{cON6MZYUuBFQ=7P2#6@p;_Or
z7Am;(kzdny5xe`O6y$lTb06<!2}=)JB>*yobjkWtpM}N0V<igm%F2yW<Xsi|R-_3*
zaswqeNH_wQP%l}X1R{d1DxA<=Q$-sGtyv4K)9ATo^}B9QRKbjzA%~>m_|8whgqAsi
zpgdrEd+$PM-U0g$G;);s0aXAVnOU*Z_=^?1T)}$TNe9p-ofMrIN{^$2twe<B0v%*Q
z=3(BcRunU)P!T`|Exc?Z9dQ3hEsF^2GQr9Zv+hNM5wrKuOew!o34tj@<LnbpSdN%X
zZHwb0kV(yfKZKTu0`1i?b!%H&nYvXk2~82RpJq@OXr+t6UL@n8!1Svw%v%;!LLowJ
zXyqcN*wuBb<q1ca#iVw6{5b$Zd!0*ICfu86Fbf(=T949%?cEN85}>M=&Hy|kF|<(0
zYVWvgw(DHfe`KkUKU|iL-0|a99>KqeU$cO@Hv8OjHb-oy%(HQTXA-hiX`1?|-_{G#
z)zp<fBCE~iEH|D8Pry1tQt}zaKohP+c#Hg);`5DUnItQ81#3ttm!TFQ+v&Fody!SC
zfUi_SHl*^46SbW~mnK`cM$<MbQEB5%+qP}nm9}l$wr$(CRcRab<r()k+-OB(M<W^$
zW9_x}Gv`i0o18@(tvI2wJnx)-H$zhG2}8}%ny8eXvlTegsXUZyo<R@uXRB?7int(m
zN?o>jnya-hqA`T);5RB51|4=Ra*D03$}`gZ+A<0&S8+D1=v1v_6)e$gq%Q50FGEwh
z+bOVB#CAk($#ApyaELoAvNT6P7xjoD*qP=_l9o?^2fC$#OwD^uZJUvd`Us{MN!HQe
zlo3&;kUGpXMgEz&C<JZ%FN&@q4il`t6)pXhRSgb&NHM18g>?o+4Ro8)6qn8B=Ed;Q
z!7tiXMt=gh9CySc1Xo*6@~kEr7pL2cI`C{i%D)_lGRQQBuBhWpt5Tkb)b6+dA&x@K
z(d!tp&ECRHXo-=Yk56}pxD#t*ua!-9cz*N3h(-wH!S(-8NCS#PCIG&U0Y$QZpR+oC
zExey~R>cKYQTw$C;=Nl;dfwR=yKFTAxnXSmDM9+l<t*zE$U-+)P{P`P?`udXZA7{K
zYz!?m^cqV8v<6i9Hw6-7T$@Tv%XIrUH_=~gXAooB(V((A?eD+Mv-YVp^$$H>RFqHN
zcSLH_KVunB^Sg~@jS{{*;`BSx24|N|I=N!k2tf|Ha4Yb3WNtm)FBJk5!ySQd+4ucW
z5y6;UBzFKFom7vu-wnlg_7rd=%$*=x_DWTB!xO{@P7JEz<_0d#gk%qurVEj^xIS8o
zq)dju))m+i>C>?76iHRD#%8%b8~5_Zl+O)sJD$~Fo;{<Ap$P5xR2A$U@Bj|R3~}=w
z2ZM!;{dAtX?ok)itlgs~_ga<sJVGwF9I+POFiN%)iQ!o}@5zv`P1NC>sYVMyg$;d_
z4vh#hiF*sn`@4Ir_a^B*C63>LIe&1Js>8MqgG#4d2c2!xFtN?3#jSz;jv4{}Yqa_W
z=(Y9|<3MwwI-5x;<$pllt;}&XHY;eljl8n+7Kytm@4Y*U!|MYvAos<)N^hYN&SCq!
z7O1ijHOX{F!W4foF@5+$Jt8H8LE|f?*(AO$Bwk6DRnH>GV$iRJ?U!92>uqXTW!d!n
z*O~31tg$WThr|umdQJ{My?i{f&n!7~y%V&C1gcB!Z%$85DK9_=+qlD|{rnB!32~5}
zA~H`esGp<?gu<t2Pci`hK&FF;C5GR|;Kv&d;wXelQWxy#C>I-3>$zY{H)m@!cPoRr
zP4w4+;$0`wJOR|FW$dc~eT{)pH(ZfT)z=tIgpTVsD-1X5fps20h9YGQ!u{p3*=~VM
zJg^m%(afmfh0ySsw*AZ`;#r%wheZn~&z=%A-M~Cyc&ka&vB1dt?d+TBjw^$cOeC#O
zb-b>OIblwQNMJrQqn$<YkBkH=t*<a*ear7a5J|Z@K@Ikk*hh1ao0>kO;cO}aU4)PV
z+AaF<l@EP1z0aiXd*7*xRGK~@&Ga)Na-(1x+yd*NH?$e5ODrw%-V*{SkCkjKdq`7`
z!RII)_Ms<{tSW0(ozP)E*dh*2*U1OugD@@FC=PmcaEzG)iOxx%6Jc<Inb0n2xtYHZ
zytd#=Fwr_3>p-KAU^HKqi}TZlE7oOAvhE|l=i~Cvs?7@Iu945BdmAhhD>($7Atick
z@eIvU<rKZF-l-3g2@-GvB42UY1-D;Dp2xKK@*8TJ&J#*-(4xUJlAPTTKW<W=mm7L(
z-E${BrgDP@IrUhAKN0y=0vwtNV_H}hKX!>%+O#0OA?v2Ne|aVi5?>kGPZ~NS8QR_&
z0)ogv@OpRN=!2fx^6Ok`ZU&bi3DM3Q=)0Iv^F$%8>D3l%X-JJa+R^Iw8|HQ@4sYro
z_a`+Eol8oMzTTCRB+v@u`<%&N*4CCQF*!Jbd4>%&$hg+Vuwn4xI3p7=1#yWQ@5M;X
zM9X7B74ao<tl|C<yy<JLbhmc4l7W>f%KRXOxMbFT^+3IR*hQh0>~c;c3irSuso|_)
zZ&Wx7MAY*n+RzwOhoe|>dGyBI@pZ}&M1+UIMXtQs2X&xIH7Sf&&u?xh+MRbVn*Wt0
zwQCN|G1ElM$5Z*}x|p6RQ|G%)k#HFr6lX1cpN*aFea~z*jcx`rri54&`+c*he3YnC
zz%ZSLDd`5l#)Og-dn#ZB(zT#Ye?D;*a13(qimehDyFsw^Z=(+uog6D?6<CaxwOP`-
zA(nNyUAqsetL_jPCnecafV7XG$kTxdsq@Q!MKT?xA~t?)-#lyd_F-cWv35)`hUNaw
zaF`Y=lYQGCQYTI<5Fb@rap>QfaA`nHA?Jap=gr3SPO4%hg@mAlBZV$d?aO;Q#oYP3
zqV3gPcNIjGVy8rcyg1YkWA6O<7zSF6aCO#5)}(NQwhtUB*XXkQ**#Y&sEVcya!~p-
zMIn98T%Wi}0LfkrW+X4XPbDcTKq0BPuAp2e{wf6DW7D@A41t`TD;IO;?!mL9@8Eq~
z8{n&iYD+FBul)@8oM%~$fs&3O38k3H77L?F$>i`G`8ARsB;O|4;D^W}-6H>sjW$d-
zn#&MuvF!jL+Tq=66ixS_=ap9eweI)q=B;y3f|QXz=XoWD>V$s-IBy%0p1{xu@+X&@
zI-;joKkFZ@=Jc4_D4o?xh~YxQsy~Ux7{5}h<Ni3F15m@*nzm5vqXakcU=6>Bw^WMb
zq>v&xWjwiS7n>mwDud<!CifCBU1j%~ax*mg@~K^?Z59xr;DeT`|2(1}rDFIKQ`9Fo
zC3?&T@|`>4T7HZ2Mvv;}!|Fn>*_Jp}1#xTO`34}fKkvq{G51SSodFuMCG2q74_noh
z^3%Sw-7y7+$ldnq31NKM(Dp&lpOg6eVkpZ;+55A9t%~NS>vc(9wTYFVfeQBeqZXSe
zmc`9xN<JI=He`%~0&S7W;@)EWr0!&>6BR)j!_@9tyLbhiS7PIyZ-$(~G1U@*RTDSI
z>HS)lNJyfOl|aAj^IOZnQZD;xb}|6)M8jAe5?;&Gjg@E(`7fWr!)JC~2TG-(J}(#o
z>^_R^KA$KIeN@M9T+%-OAO~S2n}9eH*22VSen{I~m+h2_FtDcdW+O&pl}6Lq=%8Rk
z_gy5pw$s0uZ<l}94kq9I3DI#sUk%Ml#0)S;NlvaeLigMh9nFXMFe-6j+_IXU*@7lm
z&*D2@;h5WM&_90W#jg&UNW~k0Hsc|OK~msvIz{%1XDHZdsVDav%|)|pYia##2;>P2
zw8LXv(3`b+c3G77jUN1G#wMlR07Dc1PjSgqR@1Kzjm{iqQ4IvRV;@vrhj^U%V`?&x
zmOXLEbVp$C>)N08)5aiG&wbPK4=Pm$#-tww3JVq&$9+<!r5Iyr8nXdspk?jGi|B##
zIBbR4c<-A)eT`4;%d%!_9qZIq>*Y0*#d9fL)FySHQcLb_4x#kHS6nCTpXLQLhf2##
z&EW&{gb3)Ae~KI&=m7~P0i_Z-3ya4BYZFPE&n>MQ${!Lx$cN?%n5yM|DC%))-gz+0
zP}K$IgAR$o%j0zQzg8wD#s&q~N91!a&~yrNn6=@Z1FAUL)RKHnlb8eYyh?1lF#h-j
z_E?$R?tz*1fzHT9+E<uIG8ms4l@M*Vv#2oyt2W@Z?S|a^&M43X)8Ehw2g=w3me~qY
zdbKu{HfkkEH(?X%eikH%f6W|@EPi8qO_7o7Hel8#==k{??^zj%{=&Gz?V03m(qQmP
zgl3L6*G?Boifk}-ajsd#b@DRt5YxAW5ZewwD1Ser4J;nD5D2;|k5uKYxe&HeTXHeC
z5G1j5$>DPxk<p>02Uat`4L5+1>cig*=oP2z;YJOH$ddsGPFc?R1PgeDVNP#8??-NJ
zin+ufDB;P_t!}mW>0?R@$74d86Fyw7hZp9R%dM~9;rUpJ)U~wdHU<iuiK3-F#i|P0
zudX0KA(#S#6?3<iBzWcGW(4J?1TA}C)zR8?x$8m$3EL99_+?sYP=Qg&m1Gm`u~=lF
zCqP5FSIWUeD@(nJWOImv^ab;OZQE{jjDX>HVq)M-5l_<zew|zt-3fw1hBqVU0aNjj
zh#<eS@*hl`s}Qc5GI0Gh)%I(Pl2h;E_E82HHv9>X7WbLsrEUh>JaD%egpBZmXO@jF
z^{_bKBvn_#M+~7K(a_Th+umvWwb@3!ohO(WQ*sLJL5C!c{W821|AJ7GuDL9cI=)cz
zO7RcxXrYqPv670C=>&dy?tW^=G<<S0rdJrwBm}rVeBHU%IUw!wC*LC`1ei~!;thoL
z=N4=XZe$-;yqkCR<EiyQUdDRrQ!(hsTCfjF-f8ox`%`?o(LoN8Of>gJRObyIMIAL{
zb`B+Hl8jVGB(egnkRqX8@^jR6)7YPbNlm{mrw%m@hMa$f%J%@s$vyPtal=KrDLiBD
zkxZ}c0=;_NY#nAg{WH~*paJum@5+E2d;nC|F#dK;Q`)$*({3~?@(q_si$1ODq=LHQ
zAmj>=;F50s(Ya}^M~14k@y8_T@^3g{VhEjoJC-1mH4wDG-Fyjh8Y#5YyK6p#Ix1yA
zLVl`%FRXj!1}q<wX8CjMxN#+h(v8q<KuGD<oQYr8@JAWPa{&qrLz5WUL0ZLY?62{T
zK7K<?s+PkHsKfs88?Bk~sLG%R$usg0`nN2JU{Y{@2D*T}=oq7t;S3_jKYj-)WWNaW
z1GPJ1W=yuH+iZ8hrzl`Gl6Yk~hcHj!+Gw<+RxG`Yo<4pnn?oQ{US81B>p)SJsT1M@
z$6D3J6yov~$=8_hs(1k*gH;4X4euxkKTHjP1VZBFiJ>hW|GN0gsc%EDopGmAjFhJ!
zjZO3m>5hL7RbQ2&tu>8H9fp>6tTpH$Suzj#p%RwHxy{6-XF+1c&~wc^YZAJi!N@}2
z9*ih3npqZF)P9uJAOii(1G@#E6#Chk)Jh@LiaQkSh+v&H$H#uoJN?aTyg64#tMd}6
zysyQOR-3v7J07cviTz4|{#;^w_3bja)`K<4IvyGmR0*N!uv!b>1^={!XV%JkvXVFI
zJ3)MiXL!RuyW7RWYen=Yw5TC{c)n=)lVs1-VD6V<Y*%`YAW=nb$8;d_FiS7?o#p**
zE40a!P$GW`K+!A(ZaQn5MoY77<j+*T{{d=H$3icN@>~XmyNlFk?lEu^N7C7|5CXEL
zhto#_<XiiasADdoV*O1<c<+u<)-kI4M{Cp-jj05W3YxjFTSKPM^8?0|UuE!D#SgE>
zWc;I8A1rGBHS6gKCZ^I$w@oP>^O*`^Ff#T|Xe%%w)+OaBGtM&(fvRSdAo@Kk)7Kx6
zqvMxLgUW`~ID?foG(FtCN-{$LtNA0v1+iPY6K<uklmeeQJ>!rmykD(s^sFwV>G6al
zXk>H3FWhD1s1wi&IZm=<8#+UlU(xq3=*xPN-v*iP-UCw#g?|c61X2=GDI4M}8NeWk
zFaaN<WJr99PSDqDkY*VgKZu<2^LQL2z|NjHp(sAHvQ1Li{;7T#97%_xyfF>XXkiY>
zKU2FLcvK>=8f94T=_8?z7M<7=G_#b5<3kqseN61Q60HKo=l`nvCNT;O#3S@WFgF7-
z$iK=B9@DX}w+Sk>Ua^_ns({wf)Mt^oE)qF#DVs<DDXV5?KEf_*i!)hqp5WPmHaQCa
z>1BSq<QUI1&gU!f&dh5BFdR&n&bm|aH1%YF9;oO@^UC6%W>q+j$#m?uk%NF2Ggk6@
zYEU9`%?!y2S%;7NP*&DEY#d<IWsYpWP@XUVN8qH908e-X#kH5+{-!`=XaJPgeh94!
zXT1#0cWA!5c7sNxR(*Wr*<>yY=q@Wx+O2iPU#mPV%()h$z%invO_-dPs31jMBc(ER
zogl4ROFnz2Yj+1CK~<$Ewj8=W`stgk`C;-5NbSc)1JeW}QteC#k?q(b*f{<PDH>OR
zf<{VdCjtc-um=)YUv-Xj7BrlLDdM7WtURFV9@Osa>sr9A{cyS7m8u4f+|z{ij>NbP
z){k&@1emJBQ<+R@-Xj)6A*4dHiik^`w`^_|k@CgCN@ve<eRr&Ws$k4H0zf)3!u<vD
zz<^NT^zPDHuWwp$zu;2RkXH+b?&MmHeDM8T)isMDf{^_Tnf%6d@!S)>nIh?V_DeQw
z;@&!QA0mMAk9Yi^%DyzSQGo}G6bBT-%SXdkz3widuurS3vhJPnb~=Z{kyg$lRvqx3
z5-~yO5$-~^pcw#UATY=L9<b=Lv~=XB6buGgp7#>u0do2^=!9L;Eg-ETNu2fH+wCb4
z+Jg-Ke0SIgk3vhe!Wl#(1j5NvZPNG0v&w%Xn58MvdX!B`^X-xA5C{yrl6RM;ht6Bg
zYlhbe?96|{EatDqaT4)UEl^YJs|pATY<C6joFHq}f8KGK=suty*<-iB>n~E+YquS4
z{BrhAQZK~KX?F=42G!_^p#-bBo$@XE7mWq7@G>-|W}1|k+7nI{&zdWs)~Kwp<HM$k
zxB+q1_jF{)ZaE2%1{(YQ2EhB=LM{xt^-7K8G<KAR*_xO7|F&I>XJ6J4DDE|#qL3PF
zZPD)-W!fYL3{|#EYi0!dCR{0JW;hOLhVd))ZyA~FA(iR5>>w;Cn)2lvi1gT)XDXVc
zOm{QDYp;uSm$UN-gbqVAZjavV$q{{#bJlsFCN`h#n%TDNQ5yj#{c|w&2#p%R0cfTU
zr$6NuoBf~BJT<TD12qY9mw^y)qyQev5KO%{R`iI40qf8EjglSzV~FVG=0y*jYBN27
zH40P5-@J#$jQe->yYBl1GD3UbI6X2J9t-cDoLJ0fu9+;o34BWB2Zm|7sM7C>NCeFF
zNwvDBn!}C}c}5765%VuB64DQy?_EJv?;eW$`7%uvpZ~71-x7^m?ei4G^cH!x9rcdl
z1{aA;tY|oJ5U6oJYV9uRI_r^BXljMD6B5euL$GJOpSPEnzk9&spDNzdu5&W5XbR`P
zU~cyJ_r*yV<HN!Jbg))6p=%*pGiFUX)mpM?&fhBFO9Xl5q^H~mrRe8DA>m=hyD}K<
zFflutUj+1<l4Z`qIJ;+mm<U1sg(b9+B*&8OFeF%N%^zWzqLwOWFq^=!o*EZSG%2u?
z+Ca0DyO14cHsOEc<UA~3j0RcxsFF+$Q&F+vHP=w7OodlpuEy(`+9KK%FE@)-h=*&8
z2@w2u9acs^uU{4&kD9nCSyHV^$5|QaVHAq10?TYVuv=2kT1U27w3sN_F{)}u_e*ub
zWiwGQWq~LY5uo>_!s&aAzwq{;m-k)<<>oZ~4|~@V`XZ}{Jhm*rd0W#LKGAtaLlVGR
z4_G2%Es`2g5ph<r+BWoLJoVgC2)4OXwmb7^vbyA({OSyd82k5l%=x>4PrCQx+Q-AM
z`4Y}?*7oN4ZW`9!YnjM%CL$nZ8I^1&D0B4B!N&b)KiX>lsF;<trGJKRvIS79&ga8o
z?E(teAWM!~3UAb+lBq$#;kjnI#g`}Qah6j?KQnO6qdtUb!Elx3hMb+Q^zQb$5#Pqs
z<1+qDA(5UeTU(6-$z~_EK6p(4sAMK?njU011Hfv#K7u|~`KRuQ9b9m&ui4JmYqH&)
zkxsZ-YP(#(Sn6o2VQRS%%D(7psIVi4-yJU@pI*@q;|03LJ#IP;v#5-t;;}jNxlFA5
z5)(7UzTik^WFWDuzjpq8D4AyW!vJ1aYMx9=GsYpil%T~eQfozY#)_0?jEZDtRip}r
z5W~dgBVDcowXdku)|gPKrhcm4Un$<&G&;be3bOkbZiiT|e@pw9U-~pV;7@j(MFyxy
zK>v^}ODI|e#Ad#sAa*?O%^sqnp!immy6MRm|1gaHHXfB7YVici?&x>53V5ZQ=BIJU
z@4g0U6}cKxtmuFvc50>5+G(%EO{wX!7<ouJP=+OmPUb!jUnU-Xr6bSFDtmmMf1udT
zGO${rQfjkb03D5QK)3I=RE*y{ibR0B)B-5H<dZD$6--*|*(8l$uq;IT;AgZW`@81w
z1VJ+6_8;%mml-RMzS=_Tm)PYDdH}4Q06<=;Ii7xWyE7>00`%WwYU!Ep*Yn4t-R_o*
z)|A!vmzmmPt<SUW``&pw`-{Q{G$|Z&Xz0vK)an`Y?6uH^g5fpx(U<3>FY44iwAJx-
zeg8jLW};RO+~bwuUa6Zvy_@`+<qp=?ST_-YH&;33aQ@0-%}X7@7dQF3+*Jn`&gw_t
z-v|F*^mYt0yVD=-{@u_`+3-rH_Hd#;<n+FNdQ366mg#}A#HP-Z7)JLinU+Vacqe2}
zW_^VP9?q9pH~LmTyw|Ic{C02Ks+fePVlvke)REf#W9wU@&A6*xaW6~t)ZtgoTwOvO
zeH!%ZlrlfjneMW~BJwvm`!PB-;;oUSbso6z`BIqpK4f!E8{x~8AmV1&^%s8zjC|J#
z`R!Ie@o6vujYA`ht9f~(OI?M#P<5tCXMKF&u0ykWcizphA3>UV^-LOFjSCk0Bai7F
z+V(||G!rOWnt}4`9*&S<65%gVioPz_8(}frxAl(#Hnq|kTU-@O#Kyl}a+RiY1T<<{
z9HV8$oW;Rw%zif0jETng8fWv!Q3buJQ>cfq%fOD2^uRMYNfwNeGFnfI?=z8)4o|Wk
zpSM5LtjgWInC|TB277-oFK?%_)U&|{J~_V5_lrkLs&$hUJ%m^v&bFCmYhULcbpfqm
zC~VQQI~^_SikkQ3>E-U5dOkD5qb-A(5mFM{x|$8i<)oDQ87)Ri%)&EEsCl!aYE4;l
zw*?8(47<i}>~FV#@Xl}Xtbe$md3s)6lwX6XH{gp-kOZm16b5U-j*t+ca*Ika8Vs!q
zo;O>kS*>rtQFo5454{;Z-mkuCyPvKtn;$ao`){i_mR|%me!erI9)b}UyqUL=4vg%T
zUzceby^ZGWm+f5$%C&l$vj09K5evCnrfpWNeY`(-DMmIVWck|by5dsSkG|kp2lwmh
z==@r3!c2qP&o@}77I+eui`Z-V<kt&Yp0w9+Nn}^uM@*rI9Cden4rbI4m}RJ+)qOxK
zHl>}7xSid)buXs-nWvx9>phX2SeW{%;FEI3poA2aiX$yoNvSuj5ZCQKkehNS8E&~s
z=F(Eu1gbNm>F(m$UA;qDOAxznUhbi3P!f=SVL3H-;@SU=0E3T8k}ke^zaEB<7K3u=
zQ7&ixm`QGM5RfVG0mLd8f{zYhTJZg`+_hw|aa9!NX85rUC)SJq$Qj#y0F{BTKtkkr
zL>;1>$qK)Oa8J<{8bgZ8nbk<9yL1)H8^lw^6D3RGMCHp14zC$E&gku>@jwV#ykPc>
zL(=8I$4(_wAIz{!VE3-=zX=l)C~2~!w9;hlTz<O!Z>sf0-W}h>3&$^K2$?9{{o-Y#
ze~l$n0B|qfB>sqp^k;PSF<y3jL*zJ$T(v#8!e})HwNo%5NEIs;4$Cis@E6+0IUjZv
z0VYd03B{tkNZ_P0%QAQu%ce!u&iR?zvqlN{j;T4a0l`&Thqy;O5TKlZU7IK`-8$gT
z%zEFCufj)k%XN%PI?rF@Cnw7fXRuMSTWQ|z7RunH*3@2zlAb6AHT%{~t~(+D?f&+0
zA^e-_q%}+^y9*J&HC`w;qHor9DzZBmR^9O|9K(UL;gln_2e+d@yP+-M!#_wS*v^<k
z+<p={;f^_rKNQG&%1N0mn!i{!&E1P~zQ#4~;YNe1DZkb{Vp09|3mh-!n9EK0M{Bf@
zyy^2DY_Q5wQyKwG^>h@@8*EOJaVtvWjl)^h7hKCT>~T>&!xB`IS$KRW*XsElEHr-z
z0CtfuY!Ep+sZOy}cEOcC!|T{CORlKi7#j%6dBf`ip&a54=YTqQDSDZxioALlz8cju
zduNaqvd-6Q-K6MPw1kNcg;#+bJr?I;ZRKPAUavevCQ*{05suk+l#sHd@*_$i<pyP$
znA)On2>aU}Ow!|*Dlw5cLv>Uei9v(j0ukm-nwi=;*&J^#<ttIEXykHCCvJ?3U#(ji
zXFeMq@6H<@_qp{w444+u1e3SQy&a-q9F6K1f4dL8?3KfZ0))^4Fn@ZgBf%|<!lJAU
zqk*}(4D)JBB@Q!UAx_W+_KaLWV0~Z_FZF$_KqB0JFp)BuNk)NIsLuT!zBD|W9!YqO
zp0k0=e5Ib47Tm`>?xnPEx!Ij#+Kbap&TqdG2F$Y5?-V-5Hag!}6UvA7!1#Ian8{Hm
z-7!z~4hBHvSt{WgMk$|pI2*qaq(tCa11F^e`T5Z}@nVNe#1L7Ono*h_3T<JMQ62dh
z8mhob(6pROQ*Ac<p}O9TQXEEjW^B6xkBAzbX!h)SyMI5JI#!`~A>@Cb>UqWaeC_f|
zv#qCXZ~Fpr6M{cxHAN@iOTy)bF;*=*>OTfkcZm&r5`Fe4IF_5_FzalX#FzZc!{;AN
zZm&1)$@g<ZZvjjby83m0A?{!wYS6RbYP#Z;^Y8{#Cw2rX><Y#MN3E*TyQO}ArG10`
zW8J*a8NmE|!`m4Xzq0&D%EjXSxf84|^&vXJnqrQ>g|%m$<P2ArAV{6}D;T&~stO|0
zlRkMqP+_CgI0u0}nfqd=#kOE?#e3ck)0}fSU-`U|6$p2yU0Z6G_vK%2q74+EH*O%z
z-pb(|3|Xks<`sz$yWt!jNW5UYl0%;~jqyI}oouvGddy}dCA*tACWS@Ok%{IH=**;*
zb>J=S<p9TLYxKy1Hu#g|RcxQo93ikA!qJ2u#_q3q5}3^k_W~2f{I9zDFNO0h@wPih
zA_=8$%i(6_?LGC3Wv+jLg~b1a`?DL-*vphWD=Z`tmQUk5j73+S8`vUOG`d_+*yVtz
zJ-Gg161kxd8pSO95q1=DB8vnUge{LpYlk@yvzvY~-7L)d-9387QJ9XAiMW_3b3#L?
z?wb3Lcia1pCMEh`sthda;u{lwf#^r(Be3wr>FPJ>^{gQY^F_VR=UI|R=-B?3v5w=G
z;*F8t{8$OFWW)e!s$!8Sx4l7^J~<*;INDj(6oRE%YRumk6~g!&2qY%_{D=afS)Y3e
z%|CBYp2Holn=#koTu_j=Q5@Klb45YXjLVw~AWwHgK6{bjQK}6^iF)k#XD8sX>&If$
z8mY-;3CZ>oP`>bupQXLs>EGWEzX1#ameih85Hko!_d_CF%aG1~#Yt@emU>p}lQ?*n
z`j?0Rp|@H5e`fDKhtw&i{9zw-3&+E;Kc!!>+3(zwerzkg*=ZdqE=Q!;UmwRa?ROk)
zyt=U)wCJ{>EI~KaUU#E~-S3W8%0|bg70ydUEG0&_n{zcKXwE+FykF;&zpbGdQ77en
zMmMILJLT3a?Z{<C<_}aYl(bh}?|g>;efiN9w|t_R(78@1rru#+{o6p2#P)r&0hc7U
z4JPk#d}*X-Yo<eBcGXB|ejtWK_nJ%^Y27`djN$uau<`Z%-3i3%K!8;qzbUzq+5|cW
zL6B0x4yBSA*dL#fiFFN`003<l%C4iKbDa0%WDBI<S^f}OH1A@^OTxzQx=-06p5L-v
zpF<c40>cbc>WRh9BaKQxxNU6;d~%GnYhrLm4_Yu&-L~w`yh&E?cFpF=z&3BGq`2>@
zm{K*8JCV%(o-}HWS2Rnmbu0f<JdfN$gLyD*q(m^7Y*6B4bd;&alNDyM@#oDUlamCF
z-J^A|40@+wbvUcjlh6;zFJhr!1!|^N6WyM@%{v9>@N<kxa8OvQLSbI)MWIl!vgwpZ
z@t9VPdL9X=sQEA)T;0^5y4aDV7k2IfJ+q1l<&4q*<TEwuUQGe9s*p?1$X5BJ+{fFX
zHM3^g2M%<<P8-P0@i_8v{C>AYD>Ap_;US7sKL77!A5FD1mO%J#qQC41A~^B+?r-%o
zh)E5ZH{#Sel{XaGlg`1OQAOvvwKc@iZe6gIt0;8J^&u8#r9t6fScSSp;_&WCWT?1Z
zS}BoEwb~}3NGYN86RHiDx*-~tQ@6-wd_JEF^mDY?T{58%n}utmZwi*EkYHmHq80(d
zt3ieIPU~TcMHe&=U$z@$)|srXS}o1dxUvgth8E*go)f&Xz8xO`8|&*LYIP%B(?bx_
zRJu6r9W&o`aKs1Rp>7LGM{cbL$MSIw67f^|W$QMjIXLhAol95$!p6ryXTZP>alEB_
zWiR`nz`D~P#5P^QVCIV?upiOnQ`=ljS@QV#Ue(A`w+&(AjOBKf>Xb>sv`N9{BjgQ*
z**95XbzA0QL-9FFRko4<r`V@=IFU`86@eNL_B0JF59ejz1$9+wch)tZ4*Z2_=g{Ej
z?=#n4U*X@^_29dXE@&CBC!AcHG467wyq!~a?LDeie{H!7DUoj49Be{fHSefW&-Zpa
z3S~$92_MSqrIHO}c%g9V1gQfvRL<%gQ@)ud8wgMM&D7?MwL7v}e&q9MC)cpb2@BB7
zc-i1hI+jkDLlA?@r<po*B-1%onP-XDRmJbW5K!Nky|2Iu;56$s^qM);-$o(exIb*=
zc3bNANC6NX0-oN(kwDVSWV1t%DYZ^MN{fIqyf^qacJGxCABon6mN;JVb(xTXn-A^*
zDf7}nl)e=dh&1YQK2Y4uz!;h_BnI{bfr1q0X>;xRRNI_)SfhD*l;tqA{OBHVNCZ=M
zZAqi;WZr#&XZWTBosy3ZZdc0IG$%z@hbMrvd1fO~E8e%*hR3be<HxK#GSdr`fqZzo
zSpTzrk|!EWi>!Mxi~wA&`)X+(17|acYEhXXG9M`PUpeH^*h0`}*JN9R7#GQN$WAEJ
zb)l!uz}Mbj_1@{MBUb*04dJC!iZeTbFb^PwtuuaO(~d?QlrGF6@k2c5b?_>~X8k37
zqj>m;ML<GInrIFqlL|<G7epToCTUf7@>{<;F`jVlFJgHyuw91UH2T4i#?!|rYT^~T
zhggP}Hh9#nqX4W4q$}(FNgNeWLX{3%#uJL{(nm(T8z6C~l{CKjJV=Xqku^q%Q!~!f
zxH$!6jt!f|`AzKS+nMH+OGxo-vD0sdx80fAwz^^e`Am9#8Ur;p^^*SYdR;n>!n?c3
zXmt`_eAAzwx19Tquwp!rZm@=r!-L^eY`fczlJrb=vl1M%5Hs>s*}kI6Y)^K^)vSoN
zwh_=vR{y3^N<O!nJr}E>+X&7n>@$Q;Azif)num)|7W+jx6|A|=FHCXTvYKIGUtpUb
z6RTu&jOkykYi<(M80Wl4Ht$nW9VwhBB<;sqMkShE>cHvZAj)|R8L1GAK;47PUN}yO
zo&*f8g|Nl4k$!~k1eYZu1<*`PX)L;fn_`xk^)APM?(f%-&tTu*8t*)-gXEccd`w+P
z$Hl|xPTyNN6<P?*J$*n%>tB{;alD-d_7^+NkyF7PD~oT6(VbJ&=ScTD26)6KTz>_u
z;|A1Yzk)vV=tKu!eSW5Vj#28W3bQ?aaf1LMoe!|&E2EREx!23?ptaN<OW$Z8Yy6a7
zK#6}#&Ap5>Y?f}S-@I;GyzR%Ovp<sZQz~^1X9bkjZ6FEw)yhF_D2bIHPINaJ_EOtf
z-}&e0HUr+)URl#<oRM*iXamfp)Wqw8RlS5pEru)){OTu}c88pB9_cXAnp|$P-63g{
zj5A)mFq)LG%g<Sq+|G?R_L8ORWFI)d!&I4+oAX<OV`3`pv$2c*l|j_FFfl3$D-9sG
z0Pq7eHfex4f-Uza=<e(kdQ5SpI1uj;@DuQF{e#RLjhLzpoa)=>Wj4K8!OazbL}6$+
z>!lqKaqscq>SF1LRYJEw{G#{@n64QallOyVJ5C5|^B=B2{BZq<=KogqLd12`%rqWN
z4d9K4F^=P<7CIk}(X(MikCC(*C((~PD-UIsnQSwyJjba!X~C*f=nA5HW)~A@b<}y0
z>hL{?bZ|Zx{2bx8-6=&_GV{)kse@f`WIfqI07^OA$4TTQ7<<85wRX)+4lo|f9KcML
z9DLIirDWPFnKw>CNgbe&(Hp^pW5P5tjroEXm2qLF<IKsHGd+vpAyin9c+qX(qeW4t
zMSkV?Y@M0FRQT72X-4ZP*w1Jg1}mP-#$j>%m6=Z_S*E9gEPz{hS-~9~?>v?~F2Xlc
z`+(ss96~T6Bk0~Y3QX=}XwR{$BH@q<a!DXF0cMgWnSf_n6+b)qH2ru<DishXd(EQ>
zPrcrGN!=;C2}rrR%NqO~&F#f^G*Vlm*B<DYT~8ma`5N-wRkI`Emr!!Pf;s<ZWyUum
z|F_X8_beJe$2;-+Gm5xUUdhH#;}!0Z8PYo^k7zMNteP2dP}}%hNorH%dbUse^sg49
z6q|Hfp#KDSx9gV~z3fNs58Il5ZHhUvh>9smUigsynr2FkjI4{qA*Gf0fd&2$AuJo;
z<T8=$as%>Jw0zEAVu;#8m@hwjR>!<}_5_QWn1{E-`-aam;hG-Gqh-PrG$@;A@tA@E
z5L=rQY;UQ<_1iI<I&#a1y{NgG3$}d3`6XY2L{7yIH!V;t)l0~>Za3X^P{Va_Nt&bA
z=51?3-VMqxeod9S!c34fURz~>yzc`YPHgT^krU0!sWU_q{q&BWdXMvI=%wSXCoS=C
z&K`1Rv5{7sn=LWe-_LC(&!X8CBE`}Ka?te^ly4#f`bE|$<;v$35H&2g*6vV$h#wdb
z24>LXxVK4De^Q{uNr2W%pL>thyz9NDiDX=)p*{A@w;)S0N;G2P%v3E<K60b`@7rKJ
zWAti}c=pBDkuI;Oq0zxfsl&~fCDN#}tbj;Xs#3DIboz&gp~uEZ)gte~60#yW#6$kN
zKV1B;!c)l|5uip(-Ms7_61l*!8*!#dMg9#e)oO1aX(b=cF~mAi(iTDRafdUx*G2d}
zADleiA?J>u&6>IGVOT&@w44m(^Z9!~+$T7gG)-L_^kMuQNEm_y3}w<xr^(Z)CK>sb
z&ccL?j{zFbb4E9Y8C!|@oW2t;`4dL4xmP+Wx(}~3UTMygGJ$+U6#fVFHwM3-TD~kw
zN0G8e%VhCrTo%6?H^o!wFuPxjlx^K*JTXdEQuF)4Dm7jFv;##ks@nIXQ56f}<~?iN
zMlbX;N(z<FxYEj~*7TcRJ?VSK#Q4(6rITK@h8*Rah6_HgI7lRUcm3xLWVUoW;?h<`
z3}n8BSYXVa<{a`DL?<LMi7)&3SJ$78I12AM!Zcu&+)qF`<rJK0Y(n}+XiXe)m?o^+
z0j-J+KQVv{HM|gAfB%O_#%XCkey8x_8lP(#3lVOwMEDX3UCrJJCwL{v^$pPlV@K!Z
zx(Xwec@IkeiU4%-*#?1rv9h-$qHO9;dw0^Mdi*;5Z;;uCvZtvnZqkEd^m`_EWeFwU
zA||a9wsSD?I-2|7G<lzg7ybK2rc^~c;H=QNmKW0n6tM{%&IbXHnQ=6$v=c5Qr#K6*
zkGut=)I^e?Z3xw1t;cBj*#RIE>yhy&1(uSE&4EiWr#7;Op!+ymdXx<vBX%saWM&%s
zBIL8NIBPeo0_bJV^%7bhl#Q<BJ@{J!RLf%7Njf3ty2rtd$;YDMr133B2)E9&h2zG(
zeZV4_=UKldo6R;~CSElyk-}yPy~K&*tp0Wz5U7TqAD3D-smvs~{V&#?#Mt2<UFt+A
zUrhgjAs}%tdN&ISu`CcPs6!Q6j*QfZQN|)9a3j>b<yxpPCm^u0X_4%FZQF#|SbT|k
z2|9e_>CmtONvX!6pj>Rho8#}V1OlGU<w9IGie0#;wBj!_`KO7_lev^B!DBP_->4Rf
zArgTKfJq@OY8xtl%@*@e82<%bLW_IcUFHu;5lrWU$lc6eYCtKNC92E!9LJcVNp}81
zeQd2CK!~DByhr6t!$3VN0v79C<CKiVvU|CRA#d6@R>%O*M^t|*fSu55fZG69lIq8v
zUJ^28Q!xC@Tjchm$%jct^Oh8o_@m5@Ym%xZ{^Axea7A#sNIcYZ9)f&yN5sZ{XYIc@
zpNC%G#B1(NDZ~$I3!_*Gy)cJP839l$k#OyDIO`ku$}5ukB8O?!Mj7~g(2-1n9a3E+
zH9?KA4l&&%Q>0oKHwF0;a@x63$n^|MW1;u^3f`z6l`AB1?iH`T@OPG-{yQt2EJ)lc
z-hLp^oqZCGZfY)eT<<<;0lMj-jd5Dzw0mrK<g4frmG}rnpr;3T5Yv@Gwbc$|5yG+G
z+0}Hy2oY|G{_m-*ZZ|kH$gN@oZ?Six%&X=ZiaR{v<Fm=74w=$SPjU9M#e74Z<Gd{|
z?MY+H9sKh#7Dn3@#zNbmhr?6!Sy$M=%W^}yGflP|?<nQAc#AP85--huPLM1i_);oa
zBKMeLV(P4Qx3|yqwKFl;smQ43+0-YW0bf{)ZI`A;l+p8maLznJd@e!MR;w(wGp$h&
z!iN0KMU1W?mJ9A(4cXOSd=jUowIy1otXT4S!vYgt;TGRi=b9{(o7M`yl#raBaaoVn
z=G8U_2<%{eTVq4OPR{+5(ElJ#isXVjurB!5zlo_&@rg=UQ=i1)QgmQ$mlSIcHoODU
zLD;;pc7xa)%*1U+v1vwGxUVM)y%$Z__5U<c8FVfk+=61BToX;Aq^!?A0<1ny78j@A
z9*yB8Dr24MLzS1sDhAC!x!!9)1E(lxe(X!OfYNo$70Z6(I&lZ1F#iXWJmDnfRBGM#
zf+VJEQD3TG>9##=pbr%Ecfoc=3JCnI1T(Vfc^vDT8IUyT*BpVshhBQBnBJ{2nPaOD
zso;9<CCvfhnwDqgOHk;FR*79LcdPBj#w#lNigJFavp(sAi~wV|lG(|FQ6bZm5(X5@
zX@|@6<TbF&QupMSK#Zpm*W(;xDm=_z9ILJ@@6_IW0B1~p`>#5U-1?!n8D0c*xULj3
zV@+GWv6rXz>GZMfYL=6Y*2RJ1*@Y)9F8XQOMexVqIk2$@?vtqgF<@K#Mdm|Jsux``
zaf0Y9w`7`0ynM2cyEp9)NbD-1OG03Ke;(zH6FOSo8KLfRblghY=<F{6P%J3|g+G{D
zJ#-4-*6q=^@pf?Y@J36YHcK`@ZIayseuNBs3X`VDkhxLCeMU9?1OZrZI`A>f)=qkN
zN?&cQQ=|Z*xiQ{|LC(PmbmF}cN8t#wiFvqI$6K5`M=Iewq-ZNSh9y~?0_qp}8j4?c
zG`2ovge>u^4>Sd`U|XV^%GCP01AM&)twZJZq<#-kL9>Fy$&y)(irXGJ921fBqZi^N
zt!p_~5Ixe4;Yv(NzdQ(=C)^AK<1hZkvTNIS^kDg`!FvVvJk`u7nzFCi+N6=8KshGO
z)K2CBHW7%8T6YueZR=VbjWC*-FLt)#24#@%hqJt;rRY=j(#kIcj4}q}ou%a{3<?zp
z<VaQ1E66?sxXpoXT=mDgd3QDX3>e(Uz_#_nKW~%aQ>{pNf9qyA{NanbSY^-D${Lbr
zG{Y!=K?!W-J)g`bZ87gmYN>nNJg=)JUASgdG>di4?ldPbMCu*X7o+qi`P&od)m82;
za*xK$Bvb6T9$PaqCWrcALq-iGY+TbvQzf>TWx2dH64F`QyoRsvl|s!VCwSqlJm(4~
zoOKDAblBcC2&)De+B2BmvTOP|@dBY@_B*MJg~F>h^0t4ne_FgN9&&Q+Pare4L1_=J
z)Cb9#dIg+`9SG5z<2ChDe-Z6;e*1+>b9UL6Ko6vsFunG%_uJw8uD3Lkbg<Q7YHVlN
zIPSnndRfn(Y@0gXe}H20wS>z$J8G(VgzA|lVVC9~Q|jx!9@8OqJC^G8bSD<hY&>TE
zARF@J-X1qcD!=C8t&B()oG>3c0TzY#P4ob1#}NLF7aZl3{vwp}Kr0->fkP1n-4|8|
z)L}f>7hp+5(mP(1c$(t(ouu0$A{sOPu1YWcaG2Uapub`YHr>v0f;yjQw}Pu!ul;Oe
zw$&{T$1<Jlm6~Z%Bq<OTQiue$n5pS=ikgJt+K|fm8ic*6ejK3=<A&pmr2(y;*;<u;
z`~_fCwmotx88-5adnFBzX<30s<ilyB?7Un{ya7^~Ce@%Ur}~u#aNOC}n5S_Lr$I|X
zvC#x)-N{u}s$X_3+uRh2mJ-Kr5Vri+CbB&PH;3m@Q|gY}#y=#?U!et>e;QG!DgzZ-
z;PcE;rKG$zDILoKBF9^x+4D;jQ%no?>a~Zm`aMO8dr$-)YY?=a$dX!9%WOjn-LotP
zi{z4_dvQ}!m<RU3IL87Ky81K;%*mv6^?1Py20~_@6_j74D^De9oZ~J^FNGnL1Jflg
z7xFfxV*e6fG^$~#XUolZV{?J6kwm=XSxyX6_c+^NXEYb+?w<VmX%ane>V;u0Y;#II
znwa~+tc&7>7crE*XZ98<T9zIpFv`yGPUUbE4Y~=w7#X>?E2ix!5T(|~q7(vus<I^g
zZiw;TtXu9P!-U-)n{;=qHw8G?_sSB^mZ^4KfbP3LI`V9b15hyE!=X@-+pIj7EL0>N
z*%)hq=X9bE-iJk2VdryC8A8r<22(1@t>ug$IZ#ac8w#ZcD1D(kWC4V32`eST@N^gD
z38{7j`4zIW{`Nkt`_l@P>PL^U(2U@ZHbX7pWMJJfzXb4wuD|Ol_6cl<%g2L1NG+`K
zIm?;^!10sig9g9RScr!4l_=qjjaE5u>p^!ao|x)Rf83uDATKh;pHFxP2_HnevdmC^
zj)mNiB)LfDk|G5H4**-hc&5S)X`|VbW?=ii%7orB(T_7tX^gWEmJPc0(Vn2+1{dyj
z1oam~^-LmQ`fpWSAvm_QQmt3;y#3U*(+ejqG1%xhVdW4N%xtZ3Ck%$Dq9G=xqB@_{
zQ*sc<Llb8IAbf0Ypr)}vVE;KiRkJG%65*5-MyPdyF1N?Kj0<H3zSkVoxDgyOM$^~W
z=iESHyb5-n{(8jVK@Y)V_!>Zy-Wm;44J6rNa?Zbr5&WGw<Ei8d)zVgqoUUfh2zPkj
zGm{$YnyUW}nn3`}(@`a+e7L8^A{3!x#V$yF{y}(4oDCP5VBAHGTwnt=I%^we>CU@_
z3gNslNOgKvGI$8umVY&j#DyJp(5g_cjfWb|K{sJ~M`1J~VGi<?^xUh(2C_^MG28@g
z=nlv3{dE84bOpgmB&)SwapQfAu@l?rEv+QzoR(?Q@CX9y{DD-SEJasWU}Dd6-m0Gw
zv|RG!8HtnmWhvgb8(*W*Yf2>M!~D(&q!=hJM|4KoV{)K1$qy973YeY{c4Yd<5Pn71
z2pk{yB%MLIv_E14PDt*9vWEWL0>A;OYt}@m*fTj;arzkLiR1c~?Bl<|A<wcwwt<35
zbqN$(iZR`f{hX@<i$%aDk+8T-!uAt}jJNpJH7+vIdjc@3S`eX^(Z`Zbe0`=Ktgs)Q
zZ^!>s9Z<_W+`}A{$2w6U9y6G7bt5m-mz519jP^0b+!|-z?EyXQ8-6DTnGhaSM>t8x
zwG_MUv-qtOQfpG3mT*U)8}oUq+f_S%d&uf@DI^+`ixQK8AJ_q(Vr;=oHb|m{X{tN<
zTRQU;c+pt1?+EfNwF}qDI4hZq9~5Rr^mJl9IgR`_<4xGvik};YE??+@_K5;KDhH>p
z+~UJv+K!nTOC66Nh<Xp$9m}3&GVK~!ol$1k-G=hd;9nNgH|~Zb8qoPRarOZ7IBs=d
z*R#Y0P>VtO?E5e1Zqw`9Ox56I3&|hQ+l+$)`j6LJS;JzjGNSG0!+i1&&*{g>5NcN6
zX$2b;ZU&tLTM)?72sqJm6lSY(>xqN`(moW1q?sa4Erf0;lx*Q^5idk9_H(#Og9E$}
z-J{<%F*9A30W1xG>+BB;vhKQzqjNX_YV<NF$`Oi&5u%upOi?^tum{3j(nSvOL1ss4
zh06^~rw6eRvAkHMu1%MaUc?jMZbsvHub39YnN!S_3en<fSYEOm|FHGsBl9#^Dpkx(
zi$b8^{SxE<1S+~8x*~I?=l+<e7%Amgll@Yol-6VbXCQNgL9ycPCzhKm6a4gyJfJ!2
zaTJzSapqg@V4v{ZKp3Br+Mdag%$9<}HLdF}ts(m2Oq)`U>iaJzNj}rEH~_b>n<a7h
zL^77_r`zmF89?o^<7Dp^-*D&r>$IJoGd_LAs}$aeBS5XvMc%m5C>^^ek9{0y-ViF3
zyKfKJOx@V3bHqfQ)=~YP3&r17bn6xOUwJU=-55}Lb%~5t+5Enzg?~VjcbBpecfJu%
zrdDw6?U)JAN@=Jl<Ft6>E=S4|pnq2OTy}`Lx{rII<h*W$@gf`o?r6`NDeU2<pTWU=
zq#b7#=FQhqtwG7AC_e0LS!6Z7#6k?m=l&l<V@13OdjzJ*54L#Vysd_)CS0_`3mX(U
z-d0dnFn->I5qd*FG|d!F5<!m35=6Q|FGC;jp4SqXSr1j}R#j*7PHvH@Wc;R?3pbgr
zQs)g2-=Gg#rFH~2f6}WA({NNym~cYw67j|fG`0YtwT9QF&NR@-judQ<ZRVPkak!6n
zxDF6t2;qo+nyhLaPs4x6l@#AIm<s})!P|)qg^t}>rUNOo(rf*fk^nEo_r5(Z_eQN0
zk5DGdDzL~LDQRa_m7zMr#HW$-nZ;+_Q+fA9%?sXLo}NUPd56#)8x&d|+1k&X--#f~
z2}4>6I-s6%;Df*zE5Qzl0;60~`P?*c&}NaFX2GeEu}mL2ON`6*z=k^uPPHym^t9t-
zFZG`CCX?*yaMm%LF6AcN)}{Xb)NfQeM&&$4f=fr@zbf|}T_nH!Z)MjZr|A&4RX!OG
zpY2=Wj!eNc+yRw`<*)s4k}~hjoYJ357KLgAJdoZ1%U=g?oM)0(NhQ*B3*0c8i>`dm
zP(yh|;Zvhkx8Z4~B1h+P5%LtswvCQ4Lt^pnif5)QGOGA;1&Qi6HZFJba68BmtHwHb
z2AnNfXmEhtzfgY|19AC*v!?<RxLdq&EmQLUZmorEf(ovktOJ`QwCN)>cX6~X{!`^%
zGqz&3e}?PqFox|~EOnntO{A)|=xt|&BpPGt-=JE>Rn9yN)lkJSh93h00&bHK7Em^@
z(rb(jhfVy8Sn`{G*mc4bMONE6x^Ceo-BLLdD?@Z8fL+7`{jRduI5nWU%gb8MX!dG(
zO5ZL})HK<!F)K@qzQP&%v9f)Ca<@2czWVci(`!>xPKtdl3gtr$l65lFB^jp@Uz#JY
zF*?8%&ZiQK79+J|rsNFX(8bYj9WzZ%%e7}R5%Ob4CgROqiIS^^S`N&PsAr2Sy^OE+
z>dI+ZBdtBUiRP6Vy+0n4;dP0W<;P5uY+)^yNq`qk?Qw3J(w|IqLzqDI;ebZnmh|In
zFdT@dU-)E6CAUfaTBcWIWFn~4vMTrl(r~^sj<{JctKf318Gfh`x(P!P{Q@EFGpq$a
zdvfUvwk(L+K3q+s^Ae;qL46p1O0fTK_L7m@ycy1tHKd893F(9T&_I-+qzP{q{rZwD
zzL_`dH6#CT-OmH9K>n1AUa<T*rVRg|>wJOhv#nZC;EhRvel7_SS>YN%{eb@gptNxS

literal 0
HcmV?d00001

diff --git a/docs/index.rst b/docs/index.rst
index 84dd8ae1..e1e0b605 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -3,7 +3,7 @@
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-Welcome to Gaussino's documentation!
+![logo](/images/Gaussino.png) Welcome to the Gaussino's documentation!
 ====================================
 .. toctree::
    :caption: About
-- 
GitLab


From 490ff6a1c08c47bd80de72b0008215ded053cc0a Mon Sep 17 00:00:00 2001
From: Gloria Corti <gloria.corti@cern.ch>
Date: Thu, 16 Jun 2022 16:19:11 +0200
Subject: [PATCH 18/56] put logo in all pages on the side

---
 docs/conf.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/docs/conf.py b/docs/conf.py
index 08c20735..5f29a725 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -55,6 +55,8 @@ master_doc = 'index'
 #
 html_theme = 'sphinx_rtd_theme'
 
+html_logo = 'gaussinologo.png'
+
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-- 
GitLab


From f9dea5181192af34df0b6f59df805f0b7cdcd994 Mon Sep 17 00:00:00 2001
From: Gloria Corti <gloria.corti@cern.ch>
Date: Thu, 16 Jun 2022 16:21:56 +0200
Subject: [PATCH 19/56] rename logo image

---
 Gaussino.png => docs/gaussinologo.png | Bin
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename Gaussino.png => docs/gaussinologo.png (100%)

diff --git a/Gaussino.png b/docs/gaussinologo.png
similarity index 100%
rename from Gaussino.png
rename to docs/gaussinologo.png
-- 
GitLab


From daa59cb932bb0111273ac6cb23e21b94834ddd81 Mon Sep 17 00:00:00 2001
From: Gloria Corti <gloria.corti@cern.ch>
Date: Thu, 16 Jun 2022 16:23:39 +0200
Subject: [PATCH 20/56] Update docs/index.rst

---
 docs/index.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/index.rst b/docs/index.rst
index e1e0b605..f3272d34 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -3,7 +3,7 @@
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-![logo](/images/Gaussino.png) Welcome to the Gaussino's documentation!
+Welcome to the Gaussino's documentation!
 ====================================
 .. toctree::
    :caption: About
-- 
GitLab


From dd603ad5d4596f503d8af8cd0724e7e5286125c5 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Fri, 17 Jun 2022 10:53:54 +0200
Subject: [PATCH 21/56] Infer the current version from the DOCS_VERSION
 variable from gitlab CI, update the year in the copyright, add FASTSIM in the
 list of visible versions

---
 docs/conf.py | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index 08c20735..42572989 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -17,7 +17,7 @@
 # -- Project information -----------------------------------------------------
 
 project = 'Gaussino'
-copyright = '2021, LHCb Collaboration'
+copyright = '2022, LHCb Collaboration'
 author = 'LHCb Collaboration'
 
 # The full version, including alpha/beta/rc tags
@@ -83,12 +83,10 @@ html_context['display_lower_left'] = True
 versions = [
     'master',
     'v0r1',
+    'FASTSIM',
 ]
 
-# from git import Repo
-# repo = Repo(search_parent_directories=True)
-# current_version = repo.active_branch.name
-current_version = 'master'
+current_version = os.getenv("DOCS_VERSION", "master")
 
 # tell the theme which version we're currently on ('current_version' affects
 # the lower-left rtd menu and 'version' affects the logo-area version)
-- 
GitLab


From a5b6e0e04d8e01fff2a897ef7a411c6c89055645 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Fri, 17 Jun 2022 11:00:48 +0200
Subject: [PATCH 22/56] Missing import & update the regex for commit tags

---
 .gitlab-ci.yml | 2 +-
 docs/conf.py   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c6d867b1..0ce59ca4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -53,7 +53,7 @@ check-formatting:
   rules:
     - if: $CI_COMMIT_REF_PROTECTED == "true"
     - if: $CI_MERGE_REQUEST_LABELS =~ /Python Documentation/
-    - if: $CI_COMMIT_TAG =~ /^v?[0-9]+[.][0-9]+([.][0-9]+)?$/
+    - if: $CI_COMMIT_TAG =~ /^v?[0-9]+[r][0-9]+([p][0-9]+)?$/
   tags:
     - cvmfs
 
diff --git a/docs/conf.py b/docs/conf.py
index 42572989..611448b5 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -10,7 +10,7 @@
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 #
-# import os
+import os
 # import sys
 # sys.path.insert(0, os.path.abspath('.'))
 
-- 
GitLab


From 739b1cbf626d70750c9f7c7305d56c88f54c73c9 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Fri, 17 Jun 2022 11:48:35 +0200
Subject: [PATCH 23/56] Add redirects from root to master

---
 .gitlab-ci.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0ce59ca4..aab16a28 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -103,8 +103,9 @@ pages:
     - mkdir -p public/$DOCS_VERSION/
     - rsync -a docs/_build/html/ public/$DOCS_VERSION/
     # -> add all the necessary redirects
-    # - rm -f public/_redirects
-    # - echo "/ /master/index.html" >> public/_redirects
+    - rm -f public/_redirects
+    - echo "/index.html /master/index.html 301" >> public/_redirects
+    - echo "/ /master/index.html 301" >> public/_redirects
     # -> create a new archive and put it on the website
     - tar -zcf content.tar.gz public/
     - cp content.tar.gz public/
-- 
GitLab


From 5cc3726c0f911c8267de5c85903d1d00fdd50218 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Mon, 20 Jun 2022 13:35:27 +0200
Subject: [PATCH 24/56] Add "/gaussino" to the list of redirects

---
 .gitlab-ci.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aab16a28..f3e4f6f7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -106,6 +106,7 @@ pages:
     - rm -f public/_redirects
     - echo "/index.html /master/index.html 301" >> public/_redirects
     - echo "/ /master/index.html 301" >> public/_redirects
+    - echo "/gaussino /master/index.html 301" >> public/_redirects
     # -> create a new archive and put it on the website
     - tar -zcf content.tar.gz public/
     - cp content.tar.gz public/
-- 
GitLab


From 0592c6d0266440ea6d2b18cc8e0f06ecc7caa666 Mon Sep 17 00:00:00 2001
From: Gloria Corti <gloria.corti@cern.ch>
Date: Mon, 20 Jun 2022 16:14:14 +0200
Subject: [PATCH 25/56] Apply 1 suggestion(s) to 1 file(s)

---
 docs/conf.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/conf.py b/docs/conf.py
index 611448b5..715cbc49 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -17,7 +17,7 @@ import os
 # -- Project information -----------------------------------------------------
 
 project = 'Gaussino'
-copyright = '2022, LHCb Collaboration'
+copyright = '2017-2022, CERN for the benefit of the LHCb and FCC collaborations'
 author = 'LHCb Collaboration'
 
 # The full version, including alpha/beta/rc tags
-- 
GitLab


From d53b36161e89e0c20cd187ba24ac03cb19d96e28 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Fri, 13 May 2022 12:45:21 +0200
Subject: [PATCH 26/56] More verbose docs

---
 docs/conf.py                         |   3 +
 docs/getting_started/contributing.md |  26 +++-
 docs/getting_started/gauss.md        | 165 +++++++++++++++++++++
 docs/getting_started/gaussino.md     | 210 +++++++++++++++++++++++++++
 docs/getting_started/installing.md   | 184 -----------------------
 docs/index.rst                       |   3 +-
 6 files changed, 404 insertions(+), 187 deletions(-)
 create mode 100644 docs/getting_started/gauss.md
 create mode 100644 docs/getting_started/gaussino.md
 delete mode 100644 docs/getting_started/installing.md

diff --git a/docs/conf.py b/docs/conf.py
index 826b409c..03f8b5b7 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -98,6 +98,9 @@ html_context['version'] = current_version
 # POPULATE LINKS TO OTHER VERSIONS
 html_context['versions'] = list()
 
+# Auto-generated header anchors
+myst_heading_anchors = 3
+
 for version in versions:
     html_context['versions'].append((version,
                                      '/' + website_root + '/' + version + '/'))
diff --git a/docs/getting_started/contributing.md b/docs/getting_started/contributing.md
index 793616dc..d093cacf 100644
--- a/docs/getting_started/contributing.md
+++ b/docs/getting_started/contributing.md
@@ -1,8 +1,30 @@
 # Contributing
 
-The future framework (for LHCb) consists of two components, Gaussino and Gauss. Gaussino contains all core functionality which should be independent of LHCb. It should incorporate all framework related issues and define all necessary interfaces and implement the interplay between them. Gauss itself is based on Gaussino and should only contain the specific implementations of the interfaces defined in Gaussino and the necessary configuration to setup the application. Changes should be introduced via merge requests targetting the `master` branch. Adding the label `lhcb-gaussino` will include them in the nightly build.
+The future framework (for LHCb) consists of two components, Gaussino and Gauss. Gaussino contains all core functionality which should be independent of LHCb. It should incorporate all framework related issues and define all necessary interfaces and implement the interplay between them. Gauss itself is based on Gaussino and should only contain the specific implementations of the interfaces defined in Gaussino and the necessary configuration to setup the application. 
 
-## Documenting
+## Developing Gaussino
+
+Please make sure that you followed the recipe described in [](./gaussino.md#working-with-gaussino) and make sure that you work on your local development branch.
+
+Changes should be introduced via merge requests targeting the `master` branch. If you wish to open a MR with your local branch (the name of the branch should start with your username, e.g. `username-some-changes`), then you can directly push the changes to the branch in the remote repository:
+
+```shell
+git add file1 file2
+git commit -m "The description of your commit"
+git push origin username-some-changes
+```  
+
+In gitlab, open a MR targeting the `master` branch. Adding the `lhcb-gaussino` label will include your changes in the next nightly build of `lhcb-gaussino`.
+
+## Developing Gauss-on-Gaussino
+
+The instructions are almost the same as for Gaussino in the previous section: [](./contributing.md#developing-gaussino). The only difference is that the MR should be targeting `Futurev4` branch.
+
+## Fast simulation developments with Geant4 10.7
+
+All the developments related to fast simulations with Geant4 10.7 are tested in the `lhcb-gaussino-fastsim` nightly slot. We have a dedicated target branch in Gaussino and Gauss-on-Gaussino for these developments: `FASTSIM`. Therefore, you can follow the instructions as in [](./gaussino.md#working-with-gaussino), [](./gauss.md#working-with-gauss-on-gaussino-to-be-moved), [](./contributing.md#developing-gaussino) and [](./contributing.md#developing-gauss-on-gaussino) and change `lhcb-gaussino` to `lhcb-gaussino-fastsim` and `master` to `FASTSIM` (in Gauss: `Futurev4` to `FASTSIM`). 
+
+## Documentation
 
 1. Add a `Documentation` label to your MR. This will activate the gitlab CI pipeline.
 
diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
new file mode 100644
index 00000000..811f912f
--- /dev/null
+++ b/docs/getting_started/gauss.md
@@ -0,0 +1,165 @@
+# Working with Gauss-on-Gaussino [TO BE MOVED]
+```{eval-rst}
+.. attention::
+    This section will be moved to a new documentation website dedicated to Gauss.
+```
+
+## Using the LHCb nightly build system
+
+### Building Gauss and Gaussino from source
+
+If you wish to work with Gauss (LHCb simulation framework) based on Gaussino's core functionalities, follow the recipe in the section dedicated to Gaussino (see: [](./gaussino.md#working-with-gaussino)) and go back to the directory where your local copy of the nighly slot resides. 
+
+```{eval-rst}
+.. tip::
+    If you do not have any changes in Gaussino, you can use Gaussino directly from the nightlies. Just follow the same recipe up to the section `Fetch the nightlies locally <./gaussino.md#fetch-the-nightlies-locally>`_ and add Gaussino to the list of copied projects:
+
+    .. code-block:: shell
+
+        lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+```
+
+
+#### Clone Gauss and prepare your local development branch
+```shell
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+```
+
+As Gauss-on-Gaussino is not yet on `master` we have to base all our developments on a dedicated branch: `Futurev4`.
+
+```shell
+git checkout -b your_local_dev_branch Futurev4
+```
+The rest is very similar to the development in Gaussino:
+
+```{eval-rst}
+.. attention::
+    Don't forget to merge all pending merge requests with a label ``lhcb-gaussino`` (or any other MR that was picked up in the nightly)!
+```
+
+In order to get the list of pending merge requests check the checkout report by clicking on the **black arrow** next to the **Gauss project** on the [website](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino). You will get a list of the MR ids that are needed to work with this build of Gauss. For example, if the MRs are Gauss!800 and Gauss!845, you can do the following:
+
+```shell
+git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+git merge --no-edit 800 845
+```
+
+
+#### Configure, build and install Gauss-on-Gaussino
+
+```shell
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+``` 
+
+#### Run Gauss
+
+```shell
+./run gaudirun.py your_options.py
+```
+
+### Example 1: building Gauss only
+
+Below you will find a summary of the commands that should cover the majority of the use cases.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11-opt
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+cd lhcb-gaussino/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout -b your_local_dev_branch Futurev4
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+```
+
+### Example 2: building Gauss & Gaussino
+
+Below you will find a summary of the commands that should cover the majority of the use cases in which we need to modify both Gauss & Gaussino.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11-opt
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+cd lhcb-gaussino/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
+cd Gaussino
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 23 45
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+cd ../..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout -b your_local_dev_branch Futurev4
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+```
+
+### Example 3: working with DD4hep/Detector
+
+Below you will find a summary of the commands needed to work with DD4hep/Detector. There should be ne need to change anything in Gaussino, so we will only build Gauss.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+cd lhcb-gaussino/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout -b your_local_dev_branch Futurev4
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+```
+
+### Example 4: working with fast simulations with Geant4 10.7
+
+Below you will find a summary of the commands needed to work with fast simulations with Geant4 10.7. In this example we will also build Gaussino as there might be some changes required in the generic fast simulation interface.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11-opt
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support lhcb-gaussino-fastsim Today
+cd lhcb-gaussino-fastsim/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
+cd Gaussino
+git checkout -b your_local_dev_branch FASTSIM
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 23 45
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+cd ../..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout -b your_local_dev_branch FASTSIM
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+```
diff --git a/docs/getting_started/gaussino.md b/docs/getting_started/gaussino.md
new file mode 100644
index 00000000..a37e134b
--- /dev/null
+++ b/docs/getting_started/gaussino.md
@@ -0,0 +1,210 @@
+# Working with Gaussino
+
+Please note that Gaussino is an experiment-independent package. If you are looking for a concrete experiment implementation, here is the list:
+- Gauss-on-Gaussino (LHCb Experiment, for now using the nightly build system)
+
+## Using the LHCb nightly build system
+
+### About the nightly system
+
+You can check the nighlty build status by visiting https://lhcb-nightlies.web.cern.ch/nightly/. There are a few nightly slots currently available for Gaussino:
+-  [```lhcb-gaussino```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino/) standard slot for the majority of developments,
+-  [```lhcb-gaussino-fastsim```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-fastsim/) nightly slot dedicated to fast simulation developments with Geant4 10.7,
+-  [```lhcb-gaussino-prerelease```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-prerelease/) the most stable version of Gaussino used to prepare beta releases with LHCb stack,
+-  [```lhcb-gaussino-new-cmake```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-new-cmake/) a temporary nightly slot testing the modernized CMake
+
+Gaussino is built in each nightly slots on 3 platforms:
+- ```x86_64_v2-centos7-gcc11-opt``` release build with DetDesc geometry,
+- ```x86_64_v2-centos7-gcc11-dbg``` debug build with DetDesc geometry,
+- ```x86_64_v2-centos7-gcc11+dd4hep-opt``` release build with DD4Hep geometry,
+
+### Configuring the environment 
+
+Make sure that you are using LbEnv on lxplus or similar. You can run this to be sure:
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+```
+
+### Configure the platform
+
+The following will make sure that you have the most recent platform.
+
+```shell
+lb-set-platform x86_64_v2-centos7-gcc11-opt
+```
+
+```{eval-rst}
+.. tip::
+    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` if you want to work with **Detector/DD4hep**.
+```
+
+### Building Gaussino from source
+
+```{eval-rst}
+.. note::
+    This is the recommended way for now.
+```
+
+#### Fetch the nightlies locally
+
+We're going to create a local copy of the projects used in the nightly slot. Gaussino requires Gaudi, Detector, LHCb and Run2Support. LHCb and Run2Support are used when building Gaussino in the LHCb stack.
+    
+
+```shell
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support lhcb-gaussino Today
+cd lhcb-gaussino/Today
+lb-set-workspace .
+```
+
+```{eval-rst}
+.. tip::
+    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` if you want to work with Detector/DD4hep.
+```
+
+```{eval-rst}
+.. attention::
+    The ``Today`` version of the nightly slot might not always be available. Please, always check directly on the website if the build of Gaussino & Gauss was successful (cells in the `table <https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino/>`_ should be either orange or green, but not red!). Always use the latest version that was successful (``yesterday``, ``1222`` etc.). 
+```
+
+#### Clone Gaussino and prepare your local development branch
+
+```shell
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
+cd Gaussino
+git checkout -b your_local_dev_branch
+```
+
+```{eval-rst}
+.. attention::
+    Don't forget to merge all pending merge requests with a label ``lhcb-gaussino`` (or any other MR that was picked up in the nightly)!
+```
+
+In order to get the list of pending merge requests check the checkout report by clicking on the **black arrow** next to the **Gaussino project** on the [website](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino). You will get a list of the MR ids that are needed to work with this build of Gaussino. For example, if the MRs are Gaussino!24 and Gaussino!51, you can do the following:
+
+```shell
+git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+git merge --no-edit 24 51
+```
+
+#### Configure, build and install Gaussino
+
+```shell
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+``` 
+
+#### Run Gaussino
+
+```shell
+./run gaudirun.py your_options.py
+```
+
+### Working on a satellite project
+
+```{eval-rst}
+.. error::
+    This is not working yet and has to be updated.
+```
+
+#### Get a skeleton of your project
+
+```shell
+lb-dev --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
+```
+#### Additional configuration.
+
+```shell
+cd GaussinoDev_HEAD
+```
+
+```shell
+git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
+```
+
+#### Configure the package
+Conifure the package you'd like to develop. Here `Sim/Gaussino`
+
+```shell
+git lb-checkout Gaussino/master Sim/Gaussino
+```
+
+#### Build
+
+```shell
+make
+```
+
+### Working on a satellite project with nightlies locally
+
+```{eval-rst}
+.. error::
+    This is not working yet and has to be updated.
+```
+
+This might be useful if you want a local copy of the projects in the nighlt slot or if you're looking for a nightly slot that is no longer present in `/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino`
+
+
+```shell
+ll /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino
+```
+
+Here is an exemplary list of nighlty slots:
+
+```
+total 5.0K
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 24 01:44 931
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 26 01:05 932
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 27 01:43 933
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 29 01:20 934
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 30 02:30 935
+drwxr-xr-x. 12 cvmfs cvmfs 224 May  2 02:53 936
+lrwxrwxrwx.  1 cvmfs cvmfs   3 Apr 30 01:11 Fri -> 935
+lrwxrwxrwx.  1 cvmfs cvmfs   3 May  2 00:10 latest -> 936
+lrwxrwxrwx.  1 cvmfs cvmfs   3 May  2 00:10 Sun -> 936
+lrwxrwxrwx.  1 cvmfs cvmfs   3 Apr 29 00:35 Thu -> 934
+```
+
+`Today` nighlty slot will be used in further steps.  
+
+#### Create a base directory for your nighlties
+
+```shell
+mkdir gaussino_base
+```
+
+#### Install the nightlies in your base directory
+
+```shell
+lbn-install --verbose --projects Gaussino --platforms x86_64-centos7-gcc9-opt --dest gaussino_base/lhcb-gaussino/Today lhcb-gaussino Today
+```
+
+#### Use the nightlies in your base directory
+
+```shell
+lb-dev --nightly-base gaussino_base --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
+```
+
+#### Additional configuration
+
+```shell
+cd GaussinoDev_HEAD
+```
+
+```shell
+git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
+```
+
+#### Configure the package
+Configure the package you'd like to develop. Here ```Sim/Gaussino```
+
+```shell
+git lb-checkout Gaussino/master Sim/Gaussino
+```
+
+#### Build
+
+```shell
+make
+```
diff --git a/docs/getting_started/installing.md b/docs/getting_started/installing.md
deleted file mode 100644
index 305d1968..00000000
--- a/docs/getting_started/installing.md
+++ /dev/null
@@ -1,184 +0,0 @@
-# Running Gaussino
-
-Please note that Gaussino is an experiment-independent package. If you are looking for a concrete experiment implementation, here is the list:
-- Gauss-on-Gaussino (LHCb Experiment)
-
-## Running from the nighlties
-
-Currently it is only possible to build Gaussino with the help of nightly builds.
-
-You can check the nighlty build status by visiting https://lhcb-nightlies.web.cern.ch/nightly/. The nightly slot currently available for Gaussino is ```lhcb-gaussino```. You can either install the latest build or one from the past in case the current one is failed. 
-
-### Configuring the environment 
-
-1. Make sure you're using LbEnv on lxplus or similar. You can run this to be sure:
-
-```
-source /cvmfs/lhcb.cern.ch/lib/LbEnv
-```
-
-2. Configure the platform
-
-```
-lb-set-platform x86_64_v2-centos7-gcc11-opt
-```
-
-```{eval-rst}
-.. note::
-    Use `x86_64_v2-centos7-gcc11+dd4hep-opt` if you want work with Detector/DD4hep.
-```
-
-### Building from source
-
-```{eval-rst}
-.. note::
-    This is the recommended way for now.
-```
-
-1. Fetch the nightlies locally 
-
-    ```
-    lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support lhcb-gaussino Today
-    lb-set-workspace ./lhcb-gaussino/Today
-    ```
-
-    ```{eval-rst}
-    .. note::
-        Use `x86_64_v2-centos7-gcc11+dd4hep-opt` if you want work with Detector/DD4hep.
-    ```
-
-    OR (less recommended) add the nightlies path to ```CMAKE_PREFIX_PATH``` directly from the destination
-
-    ```
-    export CMAKE_PREFIX_PATH=/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino/latest:${CMAKE_PREFIX_PATH}
-    ```
-
-2. Clone the repository.
-
-    ```
-    git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
-    cd Gaussino
-    ```
-    
-    ```{eval-rst}
-    .. note::
-       Don't forget to merge all pending merge requests with a label ```lhcb-gaussino```!
-    ```
-
-
-3. Configure, build and install:
-    ```
-    cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-    make -C build -j4 install
-    ``` 
-
-4. Run
-
-    ```
-    ./build/run gaudirun.py your_options.py
-    ```
-
-### Working on a satellite project
-
-```{eval-rst}
-.. warning::
-    This is not working yet.
-```
-
-1. Get a skeleton of your project by typing:
-
-    ```bash
-    lb-dev --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
-    ```
-2. Additional configuration.
-
-    ```bash
-    cd GaussinoDev_HEAD
-    ```
-
-    ```bash
-    git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
-    ```
-
-3. Configure the package you'd like to develop. Here ```Sim/Gaussino```
-
-    ```bash
-    git lb-checkout Gaussino/master Sim/Gaussino
-    ```
-
-4. Build.
-
-    ```
-    make
-    ```
-
-### Working on a satellite project with nightlies locally
-
-```{eval-rst}
-.. warning::
-    This is not working yet.
-```
-
-This might be useful if you want a local copy of the projects in the nighlt slot or if you're looking for a nightly slot that is no longer present in ```/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino```
-
-
-```bash
-ll /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino
-```
-
-Here is an exemplary list of nighlty slots:
-
-```
-total 5.0K
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 24 01:44 931
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 26 01:05 932
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 27 01:43 933
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 29 01:20 934
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 30 02:30 935
-drwxr-xr-x. 12 cvmfs cvmfs 224 May  2 02:53 936
-lrwxrwxrwx.  1 cvmfs cvmfs   3 Apr 30 01:11 Fri -> 935
-lrwxrwxrwx.  1 cvmfs cvmfs   3 May  2 00:10 latest -> 936
-lrwxrwxrwx.  1 cvmfs cvmfs   3 May  2 00:10 Sun -> 936
-lrwxrwxrwx.  1 cvmfs cvmfs   3 Apr 29 00:35 Thu -> 934
-```
-
-```Today```` nighlty slot will be used in further steps.  
-
-1. Create a base directory for your nighlties. 
-
-    ```bash
-    mkdir gaussino_base
-    ```
-
-2. Install the nightlies in your base directory.
-
-    ```bash
-    lbn-install --verbose --projects Gaussino --platforms x86_64-centos7-gcc9-opt --dest gaussino_base/lhcb-gaussino/Today lhcb-gaussino Today
-    ```
-
-3. Use the nightlies in your base directory to work on a satellite project.
-
-    ```bash
-    lb-dev --nightly-base gaussino_base --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
-    ```
-4. Additional configuration.
-
-    ```bash
-    cd GaussinoDev_HEAD
-    ```
-
-    ```bash
-    git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
-    ```
-
-5. Configure the package you'd like to develop. Here ```Sim/Gaussino```
-
-    ```bash
-    git lb-checkout Gaussino/master Sim/Gaussino
-    ```
-
-6. Build.
-
-    ```
-    make
-    ```
diff --git a/docs/index.rst b/docs/index.rst
index f3272d34..10e42e95 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -17,7 +17,8 @@ Welcome to the Gaussino's documentation!
    :hidden:
    :maxdepth: 2
 
-   getting_started/installing.md
+   getting_started/gaussino.md
+   getting_started/gauss.md
    getting_started/contributing.md
 
 .. toctree::
-- 
GitLab


From 6f10139bbfbf3cc7490d8ba54e629d1a9d1c8476 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Wed, 18 May 2022 10:05:10 +0200
Subject: [PATCH 27/56] Fix the checkout of the target branch

---
 docs/getting_started/gauss.md | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index 811f912f..a23f5024 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -29,7 +29,8 @@ cd Gauss
 As Gauss-on-Gaussino is not yet on `master` we have to base all our developments on a dedicated branch: `Futurev4`.
 
 ```shell
-git checkout -b your_local_dev_branch Futurev4
+git checkout Futurev4
+git checkout -b your_local_dev_branch
 ```
 The rest is very similar to the development in Gaussino:
 
@@ -72,7 +73,8 @@ cd lhcb-gaussino/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
-git checkout -b your_local_dev_branch Futurev4
+git checkout Futurev4
+git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
@@ -103,7 +105,8 @@ make -j4 install
 cd ../..
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
-git checkout -b your_local_dev_branch Futurev4
+git checkout Futurev4
+git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
@@ -124,7 +127,8 @@ cd lhcb-gaussino/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
-git checkout -b your_local_dev_branch Futurev4
+git checkout Futurev4
+git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
@@ -145,7 +149,8 @@ cd lhcb-gaussino-fastsim/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
 cd Gaussino
-git checkout -b your_local_dev_branch FASTSIM
+git checkout FASTSIM
+git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 23 45
@@ -155,7 +160,8 @@ make -j4 install
 cd ../..
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
-git checkout -b your_local_dev_branch FASTSIM
+git checkout FASTSIM
+git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
-- 
GitLab


From ce9dbf7f4b87f67bca92080d3d9cb255798edfc7 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Wed, 18 May 2022 10:39:43 +0200
Subject: [PATCH 28/56] Add instructions for DD4hep integration

---
 docs/examples/adding_subdetector_in_dd4hep.md |   6 +
 .../adding_subdetector_in_detector.md         | 187 ++++++++++++++++++
 docs/getting_started/contributing.md          |   5 +
 docs/getting_started/gauss.md                 |  69 ++++++-
 docs/index.rst                                |   4 +-
 5 files changed, 264 insertions(+), 7 deletions(-)
 create mode 100644 docs/examples/adding_subdetector_in_dd4hep.md
 create mode 100644 docs/examples/adding_subdetector_in_detector.md

diff --git a/docs/examples/adding_subdetector_in_dd4hep.md b/docs/examples/adding_subdetector_in_dd4hep.md
new file mode 100644
index 00000000..17a8578d
--- /dev/null
+++ b/docs/examples/adding_subdetector_in_dd4hep.md
@@ -0,0 +1,6 @@
+# Adding a new sub-detector with DD4hep standalone
+
+```{eval-rst}
+.. attention::
+    The generic way of doing this is a work-in-progress.
+```
diff --git a/docs/examples/adding_subdetector_in_detector.md b/docs/examples/adding_subdetector_in_detector.md
new file mode 100644
index 00000000..717493dd
--- /dev/null
+++ b/docs/examples/adding_subdetector_in_detector.md
@@ -0,0 +1,187 @@
+# Adding a new sub-detector with Detector [TO BE MOVED]
+
+## Preparing Gauss for adding new sub-detectors
+
+```{eval-rst}
+.. attention::
+    This section will be moved to a new documentation website dedicated to Gauss.
+```
+
+Make sure that before you start this tutorial you have followed the examples that show how to build Gaussino with DD4hep support. In particular, the decision has to be made if you want work with your local copy of the Detector or the Detector project built in the nightly system:
+
+- [](../getting_started/gauss.md#example-3-working-with-dd4hep-and-detector-from-the-nightlies)
+- [](../getting_started/gauss.md#example-4-working-with-dd4hep-and-detector-built-locally)
+
+```{eval-rst}
+.. tip::
+    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` if you want to work with **Detector/DD4hep**.
+```
+
+## Checklist to activate a sub-detector
+
+Once you have correctly configured Gauss, you can start integrating your sub-detector with the simulation framework. We have prepared a list of the required tasks:
+
+1. [](./adding_subdetector_in_detector.md#modify-the-xml-geometry-description)
+2. [](./adding_subdetector_in_detector.md#implement-python-configuration)
+3. [](./adding_subdetector_in_detector.md#check-if-extra-modifications-are-needed)
+4. [](./adding_subdetector_in_detector.md#create-a-mr-in-gauss-targeting-futurev4-branch)
+5. [](./adding_subdetector_in_detector.md#put-the-sub-detector-in-the-nighlty-and-lhcbpr-tests)
+
+### Modify the XML geometry description
+
+In order to load the geometry in Gauss from the Detector project, you have to make sure that your sub-detector is completely described in XML files in `Detector/compact/trunk` directory of the Detector project. Therefore, Gauss has to know what is the hiararchy of the volumes in the geometry and this has to be implemented in [xml_writer.py](https://gitlab.cern.ch/lhcb/Gauss/-/blob/Futurev4/Sim/Gauss/python/Gauss/Geometry/xml_writer.py). We will use `VP` as an example. `VP` has to be added in `/world/BeforeMagnetRegion` and therefore the following changes
+
+```diff
++     ET.SubElement(define, "constant", name="VP:parent",
++                   value="/world/BeforeMagnetRegion", type="string")
+```
+
+are needed in the `xml_writer.py`:
+
+```python
+# Combine the includes into a valid LHCb DD4hep xml and return name of temporary
+# file
+def create_xml(includesfiles):
+    unique_includes = list(OrderedDict.fromkeys(includesfiles))
+    detectorroot = os.path.join(os.environ['DETECTOR_PROJECT_ROOT'], 'compact/trunk/')
+
+    def addroot(p):
+        if p[0] != '.' and p[0] != '/':
+            return detectorroot + p
+        return p
+
+    root = ET.Element("lccdd")
+    ET.SubElement(root, "std_conditions", type="STP")
+    debug = ET.SubElement(root, "debug")
+    ET.SubElement(debug, "type", name="includes", value="0")
+    ET.SubElement(debug, "type", name="materials", value="0")
+    includes = ET.SubElement(root, "includes")
+    ET.SubElement(includes, "gdmlFile", ref=addroot("defaults.xml"))
+    define = ET.SubElement(root, "define")
+    ET.SubElement(define, "constant", name="Bls:parent",
+                  value="/world/BeforeMagnetRegion/BeforeVelo", type="string")
+    ET.SubElement(define, "constant", name="BcmUp:parent",
+                  value="/world/BeforeMagnetRegion/BeforeVelo", type="string")
+    ET.SubElement(define, "constant", name="BcmDown:parent",
+                  value="/world/DownstreamRegion/AfterMuon", type="string")
+    ET.SubElement(define, "constant", name="GValve:parent",
+                  value="/world/BeforeMagnetRegion/BeforeVelo", type="string")
+    ET.SubElement(define, "constant", name="MBXWUp:parent",
+                  value="/world/UpstreamRegion", type="string")
+    ET.SubElement(define, "constant", name="Cavern:parent",
+                  value="/world/Infrastructure", type="string")
+    ET.SubElement(define, "constant", name="Tunnel:parent",
+                  value="/world/Infrastructure", type="string")
+    ET.SubElement(define, "constant", name="Bunker:parent",
+                  value="/world/Infrastructure", type="string")
+    # here we added VP
+    ET.SubElement(define, "constant", name="VP:parent",
+                  value="/world/BeforeMagnetRegion", type="string")
+    ET.SubElement(define, "constant", name="UT:parent",
+                  value="/world/BeforeMagnetRegion", type="string")
+    ET.SubElement(define, "constant", name="FT:parent",
+                  value="/world/AfterMagnetRegion/T", type="string")
+    ET.SubElement(define, "constant", name="Magnet:parent",
+                  value="/world/MagnetRegion", type="string")
+    ET.SubElement(define, "constant", name="Magnet:ignore", value="0")
+    ET.SubElement(define, "constant", name="UpstreamRegion:ignore", value="0")
+    ET.SubElement(define, "constant", name="BeforeMagnetRegion:ignore", value="0")  # NOQA
+    ET.SubElement(define, "constant", name="MagnetRegion:ignore", value="0")
+    ET.SubElement(define, "constant", name="AfterMagnetRegion:ignore", value="0")  # NOQA
+    ET.SubElement(define, "constant", name="DownstreamRegion:ignore", value="0")
+
+    ET.SubElement(root, "include", ref=addroot("global/conditions.xml"))
+
+    # FIXME: Regions need something from this file
+    ET.SubElement(root, "include", ref=addroot("T/parameters.xml"))
+    ET.SubElement(root, "include", ref=addroot("Regions/detector.xml"))
+
+    for inc in unique_includes:
+        ET.SubElement(root, "include", ref=addroot(inc))
+
+    _, tmpfile = tempfile.mkstemp('.xml')
+    xmlstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent="   ")
+    with open(tmpfile, "w") as f:
+        f.write(xmlstr)
+    log.info('Wrote xml file to {}'.format(tmpfile))
+    return tempfile.tempdir, tmpfile.replace(tempfile.tempdir + '/', '')
+```
+
+A temporary XML file will be created in `/tmp` on your local machine.
+
+
+### Implement python configuration
+
+
+What happens in Gauss is that we use the python configuration to decide which sub-detectors should be included and which not. If a sub-detector is added, then all of its XML files have to be imported. Please note that Gauss has to support both DD4hep and DetDesc geometries and therefore we need a separate configuration for each of them. Python configuration of each sub-detector should be handled in a separate python file in `Sim/Gauss/python/Gauss/Geometry/`. We will use `VP` again as an example. In this case, a file `VP.py` is already there. If the sub-detector is completely new, you should create a new file and add the following import in [__init__.py](https://gitlab.cern.ch/lhcb/Gauss/-/blob/Futurev4/Sim/Gauss/python/Gauss/Geometry/__init__.py):
+
+```diff
++ from Gauss.Geometry.VP import *
+```   
+
+You have to make sure that you sub-detector class inherits from `det_base` and uses the `subdetector` decorator. There is also a set of functions that have to be implemented. For `VP`:
+
+```python
+from Gauss.Geometry.det_base import det_base
+from Gauss.Geometry.Helpers import subdetector
+
+@subdetector
+class VP(det_base):
+
+    def ApplyDetectorDetDesc(self, basePieces, detPieces):
+        # Add the necessary detector pieces for DetDesc
+  
+    def ApplyDetectorDD4hep(self, basePieces, detPieces):
+        # Add a list of all the necessary DD4hep includes
+
+    def SetupExtractionImpl(self, slot=''):
+        # Configure the hit getter that transforms the Geant4 hit collection
+        # to our event model. Wrapping function in base class configures SimConf.
+
+    def SetupMonitor(self, slot=''):
+        # Setup any necessary monitoring algorithms
+``` 
+
+Therefore, in order to use the DD4hep implementation of your sub-detector you have to implement `ApplyDetectorDetDesc` and populate the `LHCbGeo._listOfXMLIncludes_` list with the XML files required for your sub-detector. If your sub-detector is registering hits, then you should also provide a mapping between the name of the sensitive volume and the name of the factory used to construct the sensitive detector object. For `VP` we have:
+
+```python
+def ApplyDetectorDD4hep(self, basePieces, detPieces):
+    # Configuring the DD4hep detector conversion.
+    # 1. Add the mapping to have the LHCbDD4hepCnvSvc instrument
+    # the G4 volume with the correct sensdet factory if marked with a
+    # dd4hep sensitive detector named VP
+    from Configurables import LHCbDD4hepCnvSvc
+    mappings = LHCbDD4hepCnvSvc().getProp('SensDetMappings')
+    mappings['VP'] = 'GiGaSensDetTrackerDD4hep/VPSDet'
+    LHCbDD4hepCnvSvc().SensDetMappings = mappings
+
+    # Add the necessary dd4hep includes for the VP. Also added all the
+    # dependencies for material definitions that were identified using
+    # trial and error. As the list is made unique before being added to
+    # the xml this should be fine if they appear in multiple places
+    from Gauss.Geometry import LHCbGeo
+    go = LHCbGeo._listOfXMLIncludes_
+
+    go += ["Pipe/parameters.xml"]
+    go += ["Rich1/DetElem/RichRun3PropertySpecParam.xml"]
+    go += ["Rich1/RichMatDir/RichMaterials.xml"]
+    go += ["VP/parameters.xml"]
+    go += ["VP/visualization.xml"]
+    go += ["VP/detector.xml"]
+    go += ["VP/conditions.xml"]
+```
+
+### Check if extra modifications are needed
+
+This is more as a reminder. You have to make sure that the extraction hits classes and monitoring classes are implemented or modernized. Moreover, some sub-detectors use non-standard classes that might need additional changes for the Detector/DD4hep implementation. This has to be checked.
+
+### Create a MR in Gauss targeting Futurev4 branch
+
+Simply follow the same procedure as in: [](../getting_started/contributing.md#developing-gauss-on-gaussino).
+
+### Put the sub-detector in the nighlty and LHCbPR tests
+
+```{eval-rst}
+.. attention::
+    The generic way of doing this is a work-in-progress.
+```
diff --git a/docs/getting_started/contributing.md b/docs/getting_started/contributing.md
index d093cacf..ccfd7d2a 100644
--- a/docs/getting_started/contributing.md
+++ b/docs/getting_started/contributing.md
@@ -18,6 +18,11 @@ In gitlab, open a MR targeting the `master` branch. Adding the `lhcb-gaussino` l
 
 ## Developing Gauss-on-Gaussino
 
+```{eval-rst}
+.. attention::
+    This sub-section will be moved to a new documentation website dedicated to Gauss.
+```
+
 The instructions are almost the same as for Gaussino in the previous section: [](./contributing.md#developing-gaussino). The only difference is that the MR should be targeting `Futurev4` branch.
 
 ## Fast simulation developments with Geant4 10.7
diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index a23f5024..d93fb6a6 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -61,7 +61,7 @@ make -j4 install
 ./run gaudirun.py your_options.py
 ```
 
-### Example 1: building Gauss only
+### Example 1 building Gauss only
 
 Below you will find a summary of the commands that should cover the majority of the use cases.
 
@@ -83,7 +83,7 @@ cd build
 make -j4 install
 ```
 
-### Example 2: building Gauss & Gaussino
+### Example 2 building Gauss and Gaussino
 
 Below you will find a summary of the commands that should cover the majority of the use cases in which we need to modify both Gauss & Gaussino.
 
@@ -115,9 +115,9 @@ cd build
 make -j4 install
 ```
 
-### Example 3: working with DD4hep/Detector
+### Example 3 working with DD4hep and Detector from the nightlies
 
-Below you will find a summary of the commands needed to work with DD4hep/Detector. There should be ne need to change anything in Gaussino, so we will only build Gauss.
+Below you will find a summary of the commands needed to work with DD4hep/Detector that is taken from the nightlies. There should be ne need to change anything in Gaussino, so we will only build Gauss.
 
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
@@ -137,7 +137,66 @@ cd build
 make -j4 install
 ```
 
-### Example 4: working with fast simulations with Geant4 10.7
+### Example 4 working with DD4hep and Detector built locally
+
+Below you will find a summary of the commands needed to work with DD4hep/Detector that is built locally. In this case, we have to rebuild all the projects downstream with respect to the Detector.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE lhcb-gaussino Today
+cd lhcb-gaussino/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Detector.git
+cd Detector
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/LHCb.git
+cd LHCb
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Run2Support.git
+cd Run2Support
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
+cd Gaussino
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 23 45
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+cd ../..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout Futurev4
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
+cd build
+make -j4 install
+```
+
+### Example 5: working with fast simulations with Geant4 10.7
 
 Below you will find a summary of the commands needed to work with fast simulations with Geant4 10.7. In this example we will also build Gaussino as there might be some changes required in the generic fast simulation interface.
 
diff --git a/docs/index.rst b/docs/index.rst
index 10e42e95..7ec6d026 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -14,7 +14,6 @@ Welcome to the Gaussino's documentation!
 
 .. toctree::
    :caption: Getting started
-   :hidden:
    :maxdepth: 2
 
    getting_started/gaussino.md
@@ -33,11 +32,12 @@ Welcome to the Gaussino's documentation!
 
 .. toctree::
    :caption: Examples
-   :hidden:
    :maxdepth: 2
    
    examples/external_detector
    examples/parallel_geometry
+   examples/adding_subdetector_in_detector
+   examples/adding_subdetector_in_dd4hep
 
 
 Indices and tables
-- 
GitLab


From e622213348711f946d3ea518a7f4e7ec5ad7d797 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Wed, 18 May 2022 14:42:38 +0200
Subject: [PATCH 29/56] Change to lb-project-init .

---
 docs/getting_started/gauss.md    | 35 ++++++++++++--------------------
 docs/getting_started/gaussino.md |  5 ++---
 2 files changed, 15 insertions(+), 25 deletions(-)

diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index d93fb6a6..175285c1 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -50,15 +50,14 @@ git merge --no-edit 800 845
 #### Configure, build and install Gauss-on-Gaussino
 
 ```shell
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
 ``` 
 
 #### Run Gauss
 
 ```shell
-./run gaudirun.py your_options.py
+./build.x86_64_v2-centos7-gcc11-opt/run gaudirun.py your_options.py
 ```
 
 ### Example 1 building Gauss only
@@ -78,8 +77,7 @@ git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
 ```
 
@@ -99,10 +97,9 @@ git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 23 45
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
-cd ../..
+cd ..
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
 git checkout Futurev4
@@ -110,8 +107,7 @@ git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
 ```
 
@@ -132,8 +128,7 @@ git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
 ```
 
@@ -180,10 +175,9 @@ git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 23 45
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
-cd ../..
+cd ..
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
 git checkout Futurev4
@@ -191,8 +185,7 @@ git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
 ```
 
@@ -213,10 +206,9 @@ git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 23 45
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
-cd ../..
+cd ..
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
 git checkout FASTSIM
@@ -224,7 +216,6 @@ git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
 # git merge --no-edit 800 845
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
 ```
diff --git a/docs/getting_started/gaussino.md b/docs/getting_started/gaussino.md
index a37e134b..2a935506 100644
--- a/docs/getting_started/gaussino.md
+++ b/docs/getting_started/gaussino.md
@@ -90,15 +90,14 @@ git merge --no-edit 24 51
 #### Configure, build and install Gaussino
 
 ```shell
-cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-cd build
+lb-project-init .
 make -j4 install
 ``` 
 
 #### Run Gaussino
 
 ```shell
-./run gaudirun.py your_options.py
+./build.x86_64_v2-centos7-gcc11-opt/run gaudirun.py your_options.py
 ```
 
 ### Working on a satellite project
-- 
GitLab


From 1bf60150c196dabea7425648e5dc23e43c2708fc Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Wed, 18 May 2022 15:44:54 +0200
Subject: [PATCH 30/56] Rewording

---
 docs/examples/adding_subdetector_in_detector.md | 2 +-
 docs/getting_started/gauss.md                   | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/docs/examples/adding_subdetector_in_detector.md b/docs/examples/adding_subdetector_in_detector.md
index 717493dd..fe07406d 100644
--- a/docs/examples/adding_subdetector_in_detector.md
+++ b/docs/examples/adding_subdetector_in_detector.md
@@ -1,4 +1,4 @@
-# Adding a new sub-detector with Detector [TO BE MOVED]
+# Adding a new DD4hep sub-detector with Detector [TO BE MOVED]
 
 ## Preparing Gauss for adding new sub-detectors
 
diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index 175285c1..e0ad24a3 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -17,6 +17,8 @@ If you wish to work with Gauss (LHCb simulation framework) based on Gaussino's c
     .. code-block:: shell
 
         lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+
+We really encourage you to use `lbn-install` as it generates a local copy of the nightly build directly on your machine and will create the most stable environment for your developments.  
 ```
 
 
@@ -26,7 +28,7 @@ git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
 ```
 
-As Gauss-on-Gaussino is not yet on `master` we have to base all our developments on a dedicated branch: `Futurev4`.
+Gauss-on-Gaussino is develped on a dedicated branch: `Futurev4`. So your development has to start from this branch. 
 
 ```shell
 git checkout Futurev4
-- 
GitLab


From 7384e170fc0e6a32b42efdfd3302f92098341422 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Tue, 21 Jun 2022 09:42:59 +0200
Subject: [PATCH 31/56] Remove /gaussino as the docs root

---
 docs/conf.py | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index 03f8b5b7..658ed1fe 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -78,7 +78,6 @@ napoleon_numpy_docstring = True
 # -- Custom Versioning settings -----------------------------------------------
 # Implemented manually as READTHEDOCS handle them once already hosted
 
-website_root = 'gaussino'
 html_context['display_lower_left'] = True
 
 # visible versions
@@ -102,8 +101,7 @@ html_context['versions'] = list()
 myst_heading_anchors = 3
 
 for version in versions:
-    html_context['versions'].append((version,
-                                     '/' + website_root + '/' + version + '/'))
+    html_context['versions'].append((version, '/' + version + '/'))
 
 from importlib import import_module
 from pprint import pformat
-- 
GitLab


From 3a8b3091b27ee52debfbaa589591883363e6a0d2 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Fri, 1 Jul 2022 16:33:11 +0200
Subject: [PATCH 32/56] Port GDMLReader from Gauss

---
 Sim/Gaussino/python/Gaussino/Simulation.py    |  30 ++++-
 .../src/det/GiGaMTDetectorConstructionFAC.cpp |  35 +++++-
 .../src/det/GiGaMTDetectorConstructionFAC.h   |  14 ++-
 Sim/GiGaMTGeo/CMakeLists.txt                  |   1 +
 Sim/GiGaMTGeo/GiGaMTGeo/IGDMLReader.h         |  27 +++++
 Sim/GiGaMTGeo/src/GDMLReader.cpp              | 101 ++++++++++++++++
 Sim/GiGaMTGeo/tests/data/cube_to_import.gdml  |  69 +++++++++++
 .../tests/options/cube_import_export.py       | 111 ++++++++++++++++++
 .../tests/qmtest/cube_import_export.qmt       |  39 ++++++
 docs/configuration/gdml.md                    |  84 +++++++++++++
 docs/index.rst                                |   1 +
 11 files changed, 499 insertions(+), 13 deletions(-)
 create mode 100644 Sim/GiGaMTGeo/GiGaMTGeo/IGDMLReader.h
 create mode 100644 Sim/GiGaMTGeo/src/GDMLReader.cpp
 create mode 100644 Sim/GiGaMTGeo/tests/data/cube_to_import.gdml
 create mode 100644 Sim/GiGaMTGeo/tests/options/cube_import_export.py
 create mode 100644 Sim/GiGaMTGeo/tests/qmtest/cube_import_export.qmt
 create mode 100644 docs/configuration/gdml.md

diff --git a/Sim/Gaussino/python/Gaussino/Simulation.py b/Sim/Gaussino/python/Gaussino/Simulation.py
index 19b66d70..c358dbbc 100644
--- a/Sim/Gaussino/python/Gaussino/Simulation.py
+++ b/Sim/Gaussino/python/Gaussino/Simulation.py
@@ -74,6 +74,9 @@ class SimPhase(ConfigurableUser):
     :var ExportGDML: default: ``{}``
     :vartype ExportGDML: dict, optional
 
+    :var ImportGDML: default: ``[]``
+    :vartype ImportGDML: list, optional
+
     :var ExternalDetectorEmbedder: default: ``""``, name of the embedder used
         when creating external geometry
     :vartype ExternalDetectorEmbedder: str, optional
@@ -99,6 +102,7 @@ class SimPhase(ConfigurableUser):
         "SensDetMap": {},
         "ExtraGeoTools": [],
         "ExportGDML": {},
+        "ImportGDML": [],
         "ExternalDetectorEmbedder": "",
         "ParallelGeometry": False,
     }
@@ -211,14 +215,28 @@ class SimPhase(ConfigurableUser):
             #    self._external_embedders.append(par_ext_emd)
             #par_geo.world_to_gdml(giga.RunSeq)
 
+        self._setup_gdml_import(dettool)
+
         # Save as a GDML File
         gdml_export = self.getProp("ExportGDML")
         if type(gdml_export) is not dict:
             raise RuntimeError("ExportGDML should be a dictionary of options")
-        else:
-            for name, value in gdml_export.items():
-                if name.startswith('GDML'):
-                    setattr(dettool, name, value)
-                else:
-                    raise RuntimeError("GDML options start with GDML")
+        for name, value in gdml_export.items():
+            if name.startswith('GDML'):
+                setattr(dettool, name, value)
+            else:
+                raise RuntimeError("GDML options start with GDML")
         return algs
+
+    def _setup_gdml_import(self, dettool):
+        gdml_imports = self.getProp("ImportGDML")
+        if type(gdml_imports) is not list:
+            raise RuntimeError("ImportGDML should be a list of dicts")
+        from Configurables import GDMLReader
+        for gdml_import in gdml_imports:
+            if type(gdml_import) is not dict:
+                raise RuntimeError("Elements of ImportGDML should be dicts")
+            name = gdml_import["GDMLFileName"] + "Reader"
+            reader = GDMLReader(name, **gdml_import)
+            dettool.addTool(reader, name=name)
+            dettool.GDMLReaders.append('GDMLReader/' + name)
diff --git a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp b/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
index 56aa9998..6477f404 100644
--- a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
+++ b/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
@@ -11,6 +11,7 @@
 #include "GiGaMTDetectorConstructionFAC.h"
 #include "GiGaMTCoreDet/GiGaMTDetectorConstruction.h"
 #include "GiGaMTCoreDet/IExternalDetectorEmbedder.h"
+#include "GiGaMTGeo/IGDMLReader.h"
 #include "GiGaMTGeo/IGiGaMTGeoSvc.h"
 #include "SimInterfaces/IGaussinoTool.h"
 #include <filesystem>
@@ -60,9 +61,21 @@ G4VUserDetectorConstruction* GiGaMTDetectorConstructionFAC::construct() const {
     auto world = m_geoSvc->constructWorld();
     for ( auto& tool : m_afterGeo ) { tool->process().ignore(); }
 
+    // Import GDML geometry
+    debug() << "Setting up volumes from GDML in mass geometry" << endmsg;
+    for ( auto& reader : m_gdml_readers ) {
+      if ( reader->import( world ).isFailure() ) {
+        throw GaudiException( "Failed to import the GDML geometry", "GDMLReader", StatusCode::FAILURE );
+      }
+    }
+
     // Import external geometry
     debug() << "Setting up external embedder volumes in mass geometry" << endmsg;
-    for ( auto& embedder : m_ext_dets ) { embedder->embed( world ).ignore(); }
+    for ( auto& embedder : m_ext_dets ) {
+      if ( embedder->embed( world ).isFailure() ) {
+        throw GaudiException( "Failed to embed external geometry", "ExternalGeometry", StatusCode::FAILURE );
+      }
+    }
 
     return world;
   } );
@@ -72,9 +85,15 @@ G4VUserDetectorConstruction* GiGaMTDetectorConstructionFAC::construct() const {
 
     // Import external SD
     debug() << "Setting up external embedder SD in mass geometry" << endmsg;
-    for ( auto& embedder : m_ext_dets ) { embedder->embedSD().ignore(); }
+    for ( auto& embedder : m_ext_dets ) {
+      if ( embedder->embedSD().isFailure() ) {
+        throw GaudiException( "Failed to embed external sensitive detectors", "ExternalGeometry", StatusCode::FAILURE );
+      }
+    }
 
-    DressVolumes();
+    if ( DressVolumes().isFailure() ) {
+      throw GaudiException( "Failed to attach sensitive detector classes", "DressVolumes", StatusCode::FAILURE );
+    }
   } );
 
   // Setup parallel worlds
@@ -90,7 +109,7 @@ G4VUserDetectorConstruction* GiGaMTDetectorConstructionFAC::construct() const {
 #include "G4LogicalVolumeStore.hh"
 #include "G4SDManager.hh"
 
-void GiGaMTDetectorConstructionFAC::DressVolumes() const {
+StatusCode GiGaMTDetectorConstructionFAC::DressVolumes() const {
   auto sdmanager = G4SDManager::GetSDMpointer();
   for ( auto& [name, volumes] : m_namemap ) {
     auto& tool    = m_sens_dets.at( name );
@@ -103,9 +122,11 @@ void GiGaMTDetectorConstructionFAC::DressVolumes() const {
         vol->SetSensitiveDetector( sensdet );
       } else {
         error() << "Couldn't find " << volname << endmsg;
+        return StatusCode::FAILURE;
       }
     }
   }
+  return StatusCode::SUCCESS;
 }
 
 #include "G4GDMLParser.hh"
@@ -116,7 +137,11 @@ StatusCode GiGaMTDetectorConstructionFAC::SaveGDML() const {
     g4writer.SetSDExport( m_exportSD.value() );
     g4writer.SetEnergyCutsExport( m_exportEnergyCuts.value() );
     G4LogicalVolume* world = nullptr;
-    g4writer.Write( m_outfile.value(), world, m_refs.value(), m_schema.value() );
+    if ( !m_schema.value().empty() ) {
+      g4writer.Write( m_outfile.value(), world, m_refs.value(), m_schema.value() );
+    } else {
+      g4writer.Write( m_outfile.value(), world, m_refs.value() );
+    }
   } catch ( std::exception& err ) {
     error() << "Caught an exception while writing a GDML file: " << err.what() << endmsg;
     return StatusCode::FAILURE;
diff --git a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h b/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
index d9b004c8..ae8fec0b 100644
--- a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
+++ b/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
@@ -20,6 +20,7 @@ class IGiGaMTGeoSvc;
 class IGaussinoTool;
 class G4Material;
 class G4VUserParallelWorld;
+class IGDMLReader;
 
 namespace ExternalDetector {
   class IEmbedder;
@@ -42,7 +43,7 @@ protected:
   typedef ToolHandle<GiGaFactoryBase<G4VSensitiveDetector>> SensDetFac;
   typedef std::map<std::string, SensDetFac>                 SensDetVolumeMap;
 
-  void                                      DressVolumes() const;
+  StatusCode                                DressVolumes() const;
   StatusCode                                SaveGDML() const;
   ServiceHandle<IGiGaMTGeoSvc>              m_geoSvc{this, "GiGaMTGeoSvc", "GiGaMTGeo"};
   ToolHandleArray<IGaussinoTool>            m_afterGeo{this};
@@ -63,7 +64,7 @@ private:
                                                       Gaudi::Details::Property::ImmediatelyInvokeHandler{true}};
 
   // GDML Export
-  Gaudi::Property<std::string> m_schema{this, "GDMLSchema", "$GDML_base/src/GDMLSchema/gdml.xsd"};
+  Gaudi::Property<std::string> m_schema{this, "GDMLSchema", ""};
   Gaudi::Property<bool>        m_refs{this, "GDMLAddReferences", true};
   Gaudi::Property<std::string> m_outfile{this, "GDMLFileName", ""};
   Gaudi::Property<bool>        m_outfileOverwrite{this, "GDMLFileNameOverwrite", false,
@@ -72,6 +73,15 @@ private:
   Gaudi::Property<bool> m_exportSD{this, "GDMLExportSD", false};
   Gaudi::Property<bool> m_exportEnergyCuts{this, "GDMLExportEnergyCuts", false};
 
+  // GDML Import
+  ToolHandleArray<IGDMLReader> m_gdml_readers{this};
+  using GDMLReaders = std::vector<std::string>;
+  Gaudi::Property<GDMLReaders> m_gdml_readers_names{this,
+                                                    "GDMLReaders",
+                                                    {},
+                                                    tool_array_setter( m_gdml_readers, m_gdml_readers_names ),
+                                                    Gaudi::Details::Property::ImmediatelyInvokeHandler{true}};
+
   SensDetVolumeMap                       m_sens_dets;
   Gaudi::Property<SensDetNameVolumesMap> m_namemap{this,
                                                    "SensDetVolumeMap",
diff --git a/Sim/GiGaMTGeo/CMakeLists.txt b/Sim/GiGaMTGeo/CMakeLists.txt
index e873fe02..a9a52724 100644
--- a/Sim/GiGaMTGeo/CMakeLists.txt
+++ b/Sim/GiGaMTGeo/CMakeLists.txt
@@ -37,3 +37,4 @@ gaudi_add_module(GiGaMTGeoUtils
 
 gaudi_install_headers(GiGaMTGeo)
 gaudi_install_headers(GiGaMTRegions)
+gaudi_add_test(QMTest QMTEST)
diff --git a/Sim/GiGaMTGeo/GiGaMTGeo/IGDMLReader.h b/Sim/GiGaMTGeo/GiGaMTGeo/IGDMLReader.h
new file mode 100644
index 00000000..a216af1a
--- /dev/null
+++ b/Sim/GiGaMTGeo/GiGaMTGeo/IGDMLReader.h
@@ -0,0 +1,27 @@
+/*****************************************************************************\
+* (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  *
+*                                                                             *
+* This software is distributed under the terms of the Apache License          *
+* version 2 (Apache-2.0), copied verbatim in the file "COPYING".              *
+*                                                                             *
+* In applying this licence, CERN does not waive the privileges and immunities *
+* granted to it by virtue of its status as an Intergovernmental Organization  *
+* or submit itself to any jurisdiction.                                       *
+\*****************************************************************************/
+#pragma once
+
+#include "GaudiKernel/IAlgTool.h"
+
+class G4VPhysicalVolume;
+
+/** @class IGDMLReader IGDMLReader.h
+ *  Interface class for importing GDML files
+ *
+ */
+
+class IGDMLReader : virtual public IAlgTool {
+public:
+  DeclareInterfaceID( IGDMLReader, 1, 0 );
+
+  virtual StatusCode import( G4VPhysicalVolume* world ) const = 0;
+};
diff --git a/Sim/GiGaMTGeo/src/GDMLReader.cpp b/Sim/GiGaMTGeo/src/GDMLReader.cpp
new file mode 100644
index 00000000..81f206ba
--- /dev/null
+++ b/Sim/GiGaMTGeo/src/GDMLReader.cpp
@@ -0,0 +1,101 @@
+/*****************************************************************************\
+* (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  *
+*                                                                             *
+* This software is distributed under the terms of the Apache License          *
+* version 2 (Apache-2.0), copied verbatim in the file "COPYING".              *
+*                                                                             *
+* In applying this licence, CERN does not waive the privileges and immunities *
+* granted to it by virtue of its status as an Intergovernmental Organization  *
+* or submit itself to any jurisdiction.                                       *
+\*****************************************************************************/
+
+// Gaudi
+#include "GaudiAlg/GaudiTool.h"
+#include "GaudiKernel/SystemOfUnits.h"
+// Interface
+#include "GiGaMTGeo/IGDMLReader.h"
+// Geant4
+#include "G4AssemblyVolume.hh"
+#include "G4GDMLParser.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4PVPlacement.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VisAttributes.hh"
+
+/** @class GDMLReader GDMLReader.h
+ *
+ *  Tool to import geometry from GDML file
+ *
+ */
+
+class GDMLReader : public extends<GaudiTool, IGDMLReader> {
+
+public:
+  using extends::extends;
+
+  StatusCode import( G4VPhysicalVolume* world ) const override;
+
+private:
+  Gaudi::Property<std::string> m_gdmlfile{this, "GDMLFileName", "", "Name of the GDML file to be loaded"};
+  Gaudi::Property<double>      m_tx{this, "GDMLTranslationX", 0. * Gaudi::Units::mm};
+  Gaudi::Property<double>      m_ty{this, "GDMLTranslationY", 0. * Gaudi::Units::mm};
+  Gaudi::Property<double>      m_tz{this, "GDMLTranslationZ", 0. * Gaudi::Units::mm};
+  Gaudi::Property<double>      m_rx{this, "GDMLRotationX", 0. * Gaudi::Units::deg};
+  Gaudi::Property<double>      m_ry{this, "GDMLRotationY", 0. * Gaudi::Units::deg};
+  Gaudi::Property<double>      m_rz{this, "GDMLRotationZ", 0. * Gaudi::Units::deg};
+};
+
+DECLARE_COMPONENT( GDMLReader )
+
+StatusCode GDMLReader::import( G4VPhysicalVolume* world ) const {
+
+  info() << "Loading GDML geometry description from file " << m_gdmlfile.value() << "." << endmsg;
+  /// Read the GDML file.
+  G4GDMLParser g4parser;
+  g4parser.Read( m_gdmlfile.value(), true );
+  /// Get the world volume.
+  auto gdmlWorldPV = g4parser.GetWorldVolume();
+  if ( !gdmlWorldPV ) {
+    error() << "Could not retrieve world volume from file " << m_gdmlfile.value() << "." << endmsg;
+    return StatusCode::FAILURE;
+  }
+  auto gdmlWorldLV = gdmlWorldPV->GetLogicalVolume();
+
+  if ( gdmlWorldLV->GetName() == world->GetLogicalVolume()->GetName() ) {
+    error() << "The name of the imported world from GDML is the same "
+            << "as the name of the already exisiting world! "
+            << "GDMLReader will not work correctly in this case." << endmsg;
+    return StatusCode::FAILURE;
+  }
+
+  /// Make an assembly volume to hold the daughter volumes of the GDML world.
+  auto gdmlAssembly = new G4AssemblyVolume();
+  // Loop over the daughter volumes.
+  const int nDaughters = gdmlWorldLV->GetNoDaughters();
+  info() << "GDML world volume " << gdmlWorldLV->GetName() << " has " << nDaughters << " daughter(s)" << endmsg;
+  for ( int i = nDaughters; i--; ) {
+    auto gdmlDaughterPV = gdmlWorldLV->GetDaughter( i );
+    auto nameDaughter   = gdmlDaughterPV->GetName();
+    info() << "Picking up volume " << nameDaughter << " from " << m_gdmlfile.value() << endmsg;
+    auto transDaughter  = gdmlDaughterPV->GetTranslation();
+    auto rotDaughter    = gdmlDaughterPV->GetRotation();
+    auto gdmlDaughterLV = gdmlDaughterPV->GetLogicalVolume();
+    /// Give the GDML volume a different colour (to better distinguish it
+    /// in the G4 visualization)
+    auto gdmlDaughterVisAtt = new G4VisAttributes( G4Colour( 0, 1, 1 ) );
+    gdmlDaughterLV->SetVisAttributes( gdmlDaughterVisAtt );
+
+    /// Add the volume to the assembly
+    gdmlAssembly->AddPlacedVolume( gdmlDaughterLV, transDaughter, rotDaughter );
+  }
+  /// Set the position of the GDML assembly in the LHCb world.
+  G4ThreeVector transAssembly( m_tx.value(), m_ty.value(), m_tz.value() );
+  auto          rotAssembly = new G4RotationMatrix();
+  rotAssembly->rotateX( m_rx.value() * Gaudi::Units::deg );
+  rotAssembly->rotateY( m_ry.value() * Gaudi::Units::deg );
+  rotAssembly->rotateZ( m_rz.value() * Gaudi::Units::deg );
+  /// Place the assembly volume in the LHCb world.
+  gdmlAssembly->MakeImprint( world->GetLogicalVolume(), transAssembly, rotAssembly );
+  return StatusCode::SUCCESS;
+}
diff --git a/Sim/GiGaMTGeo/tests/data/cube_to_import.gdml b/Sim/GiGaMTGeo/tests/data/cube_to_import.gdml
new file mode 100644
index 00000000..0836816c
--- /dev/null
+++ b/Sim/GiGaMTGeo/tests/data/cube_to_import.gdml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
+<!--
+    (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations
+
+    This software is distributed under the terms of the Apache License
+    version 2 (Apache-2.0), copied verbatim in the file "COPYING".
+
+    In applying this licence, CERN does not waive the privileges and immunities
+    granted to it by virtue of its status as an Intergovernmental Organization
+    or submit itself to any jurisdiction.
+-->
+
+  <define/>
+
+  <materials>
+    <isotope N="1" Z="1" name="H10x1ee5e10">
+      <atom unit="g/mole" value="1.00782503081372"/>
+    </isotope>
+    <isotope N="2" Z="1" name="H20x1ee5e80">
+      <atom unit="g/mole" value="2.01410199966617"/>
+    </isotope>
+    <element name="H0x1ee5ef0">
+      <fraction n="0.999885" ref="H10x1ee5e10"/>
+      <fraction n="0.000115" ref="H20x1ee5e80"/>
+    </element>
+    <material name="OuterSpace0x1ee5ce0" state="gas">
+      <T unit="K" value="2.73"/>
+      <P unit="pascal" value="1.87245306593404e-14"/>
+      <MEE unit="eV" value="19.2"/>
+      <D unit="g/cm3" value="6.24151021978012e-07"/>
+      <fraction n="1" ref="H0x1ee5ef0"/>
+    </material>
+  </materials>
+
+  <solids>
+    <box lunit="mm" name="Cuboid0x1eef200" x="1000" y="1000" z="1000"/>
+    <box lunit="mm" name="WorldBox0x1eeecd0" x="100000" y="100000" z="100000"/>
+  </solids>
+
+  <structure>
+    <volume name="CubeToImportLVol0x1eefa70">
+      <materialref ref="OuterSpace0x1ee5ce0"/>
+      <solidref ref="Cuboid0x1eef200"/>
+      <auxiliary auxtype="gammaECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="electronECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="positronECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="protonECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="SensDet" auxvalue="MyCubeSDet"/>
+    </volume>
+    <volume name="WorldLVol0x1eef630">
+      <materialref ref="OuterSpace0x1ee5ce0"/>
+      <solidref ref="WorldBox0x1eeecd0"/>
+      <physvol name="CubeToImportPVol0x1eefa10">
+        <volumeref ref="CubeToImportLVol0x1eefa70"/>
+        <position name="CubeToImportPVol0x1eefa10_pos" unit="mm" x="0" y="0" z="10000"/>
+      </physvol>
+      <auxiliary auxtype="gammaECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="electronECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="positronECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="protonECut" auxunit="MeV" auxvalue="0"/>
+    </volume>
+  </structure>
+
+  <setup name="Default" version="1.0">
+    <world ref="WorldLVol0x1eef630"/>
+  </setup>
+
+</gdml>
diff --git a/Sim/GiGaMTGeo/tests/options/cube_import_export.py b/Sim/GiGaMTGeo/tests/options/cube_import_export.py
new file mode 100644
index 00000000..e72c06a1
--- /dev/null
+++ b/Sim/GiGaMTGeo/tests/options/cube_import_export.py
@@ -0,0 +1,111 @@
+###############################################################################
+# (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  #
+#                                                                             #
+# This software is distributed under the terms of the Apache License          #
+# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+# standard Gaussino
+from Configurables import Gaussino
+Gaussino().EvtMax = 1
+Gaussino().EnableHive = True
+Gaussino().ThreadPoolSize = 1
+Gaussino().EventSlots = 1
+
+from Configurables import GiGaMT
+GiGaMT().NumberOfWorkerThreads = 1
+
+# some dumb generation, not important, just fast
+from Gaussino.Generation import GenPhase
+GenPhase().ParticleGun = True
+GenPhase().ParticleGunUseDefault = False
+
+# Particle Gun On
+# shoots one 1 GeV e- along z-axis
+from Gaussino.Generation import GenPhase
+GenPhase().ParticleGun = True
+GenPhase().ParticleGunUseDefault = False
+from Configurables import ParticleGun
+pgun = ParticleGun("ParticleGun")
+from Configurables import FixedMomentum
+pgun.ParticleGunTool = "FixedMomentum"
+pgun.addTool(FixedMomentum, name="FixedMomentum")
+from GaudiKernel.SystemOfUnits import GeV
+pgun.FixedMomentum.px = 0. * GeV
+pgun.FixedMomentum.py = 0. * GeV
+pgun.FixedMomentum.pz = 1. * GeV
+pgun.FixedMomentum.PdgCodes = [11]
+from Configurables import FlatNParticles
+pgun.NumberOfParticlesTool = "FlatNParticles"
+pgun.addTool(FlatNParticles, name="FlatNParticles")
+pgun.FlatNParticles.MinNParticles = 1
+pgun.FlatNParticles.MaxNParticles = 1
+
+from Gaussino.Simulation import SimPhase
+SimPhase().PhysicsConstructors = [
+    "GiGaMT_G4EmStandardPhysics",
+]
+
+# adding external detectors
+from Configurables import ExternalDetectorEmbedder
+external = ExternalDetectorEmbedder("Testing")
+from GaudiKernel.SystemOfUnits import m
+from Gaudi.Configuration import DEBUG
+
+# plain/testing geometry service
+external.World = {
+    "WorldMaterial": "OuterSpace",
+    "Type": "ExternalWorldCreator",
+    "WorldLogicalVolumeName": "NewWorldLvol",
+    "WorldPhysicalVolumeName": "NewWorldPvol",
+    "OutputLevel": DEBUG,
+}
+
+# material needed for the external world
+from GaudiKernel.SystemOfUnits import g, cm3, pascal, mole, kelvin
+external.Materials = {
+    "OuterSpace": {
+        "AtomicNumber": 1.,
+        "MassNumber": 1.01 * g / mole,
+        "Density": 1.e-25 * g / cm3,
+        "Pressure": 3.e-18 * pascal,
+        "Temperature": 2.73 * kelvin,
+    },
+}
+
+# here embedding of the geometry takes place
+from Gaussino.Simulation import SimPhase
+SimPhase().ExternalDetectorEmbedder = "Testing"
+
+# Import GDML
+import os
+root = os.getenv("GAUSSINO_PROJECT_ROOT")
+SimPhase().ImportGDML = [
+    {
+        "GDMLFileName": root + "/Sim/GiGaMTGeo/tests/data/cube_to_import.gdml",
+        "OutputLevel": DEBUG,
+    },
+]
+
+SimPhase().SensDetMap = {
+    "MCCollectorSensDet/CubeToImportSDet": ["CubeToImportLVol"],
+}
+
+from Configurables import MCCollectorSensDet
+MCCollectorSensDet(
+    "GiGaMT.DetConst.CubeToImportSDet",
+    OutputLevel=DEBUG,
+    PrintStats=True,
+)
+
+# Export GDML
+SimPhase().ExportGDML = {
+    "GDMLFileName": "cube_to_export.gdml",
+    "GDMLFileNameOverwrite": True,
+    "GDMLExportEnergyCuts": True,
+    "GDMLExportSD": True,
+    "GDMLAddReferences": True,
+}
diff --git a/Sim/GiGaMTGeo/tests/qmtest/cube_import_export.qmt b/Sim/GiGaMTGeo/tests/qmtest/cube_import_export.qmt
new file mode 100644
index 00000000..2b141269
--- /dev/null
+++ b/Sim/GiGaMTGeo/tests/qmtest/cube_import_export.qmt
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE extension  PUBLIC '-//QM/2.3/Extension//EN'  'http://www.codesourcery.com/qm/dtds/2.3/-//qm/2.3/extension//en.dtd'>
+<!--
+    (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations
+
+    This software is distributed under the terms of the Apache License
+    version 2 (Apache-2.0), copied verbatim in the file "COPYING".
+
+    In applying this licence, CERN does not waive the privileges and immunities
+    granted to it by virtue of its status as an Intergovernmental Organization
+    or submit itself to any jurisdiction.
+-->
+<extension class="GaudiTest.GaudiExeTest" kind="test">
+<argument name="program"><text>gaudirun.py</text></argument>
+<argument name="timeout"><integer>600</integer></argument>
+<argument name="args"><set>
+  <text>../options/cube_import_export.py</text>a
+</set></argument>
+<argument name="validator"><text>
+import re
+
+# check if import/export is successful
+try:
+    with open('cube_to_export.gdml') as gdml:
+        data = gdml.read()
+        if data.find("CubeToImportLVol") == -1:
+            causes.append('Imported GDML volumes were not correctly exported.')
+        if data.find("CubeToImportSDet") == -1:
+            causes.append('Sensitive information not exported correctly.')
+except FileNotFoundError:
+    causes.append('GDML not exported')
+
+# check if sensitive detector is attached correctly to the imported volume
+hits_reg = "Hits=    1 Energy=-?[\d.]+(?:e-?\d+)?\[GeV\] #Particles=    1 in CubeToImportSDet"
+matches = re.findall(hits_reg, stdout)
+if not matches:
+    causes.append('Imported sensitive detector class not activated!')
+    result['GaudiTest.expected_string'] = result.Quote(option)
+</text></argument>
+</extension>
diff --git a/docs/configuration/gdml.md b/docs/configuration/gdml.md
new file mode 100644
index 00000000..f4533141
--- /dev/null
+++ b/docs/configuration/gdml.md
@@ -0,0 +1,84 @@
+
+# Handling GDML files
+
+Handling of GDML files is performed via the `SimPhase()` configurable (this might change in the nearest future).
+
+## GDML import
+
+If you wish to import the logical volumes from the GDML file you have to provide all the necessary options in the `ImportGDML` property of `SimPhase`. All the imported volumes will be embedded in a `G4Assembly` that can be translated and rotated with respect to the existing world. For example:
+
+```python
+from Gaudi.Configuration import DEBUG
+from GaudiKernel.SystemOfUnits import m, deg
+from Gaussino.Simulation import SimPhase
+SimPhase().ImportGDML = [
+    {
+        "GDMLFileName": "path_to_your_gdml_file_1.gdml",
+        "OutputLevel": DEBUG,
+        "GDMLTranslationX": 10. * mm,
+        "GDMLRotationX": 45. * deg,
+    },
+    {
+        "GDMLFileName": "path_to_your_gdml_file_2.gdml",
+        "OutputLevel": DEBUG,
+    },
+]
+```
+
+It will import the volumes from the two files: `path_to_your_gdml_file_1.gdml` and `path_to_your_gdml_file_2.gdml`. Volumes from the first files will be embedded in a rotated and translated assembly.
+
+
+### Making the imported volumes sensitive
+
+The sensitve detector classes have to be added manually to the imported sensitive volumes. Below you will find an example of how to add a generic `MCCollectorSensDet` factory to an imported volume `ImportedLVol`:
+
+```python
+from Gaussino.Simulation import SimPhase
+SimPhase().SensDetMap = { 
+    "MCCollectorSensDet/ImportedSDet": ["ImportedLVol"],
+}
+
+# and if you wish to change the default properties of the factory
+
+from Configurables import MCCollectorSensDet
+MCCollectorSensDet(
+    "GiGaMT.DetConst.CubeToImportSDet",
+    OutputLevel=DEBUG,
+    PrintStats=True,
+)
+```
+
+## GDML export
+
+If you wish to export the whole world to aGDML file you have to provide all the necessary options in the `ExportGDML` property of `SimPhase`. For example:
+
+```python
+SimPhase().ExportGDML = {
+    "GDMLFileName": "export.gdml",
+    # G4 will crash if the file with same name already exists
+    "GDMLFileNameOverwrite": True,
+    # add unique references to the names
+    "GDMLAddReferences": True, 
+    # export auxilliary information
+    "GDMLExportEnergyCuts": True,
+    "GDMLExportSD": True,
+}
+```
+
+### GDML exporting of a parallel world
+
+Parallel worlds follow the same configuration as in the mass geometry case, but it has to be provided in the properties of you parallel world. For example:
+
+```python
+ParallelGeometry().ParallelWorlds = {
+    'ParallelWorld1': {
+        'ExternalDetectorEmbedder': 'ParallelEmbedder',
+        'ExportGDML': {
+            'GDMLFileName': 'ParallelWorld1.gdml',
+            'GDMLFileNameOverwrite': True,
+            'GDMLExportSD': True,
+            'GDMLExportEnergyCuts': True,
+        },
+    },
+}
+```
diff --git a/docs/index.rst b/docs/index.rst
index 7ec6d026..d9fb3a66 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -29,6 +29,7 @@ Welcome to the Gaussino's documentation!
    configuration/simulation
    configuration/external_detector
    configuration/parallel_geometry
+   configuration/gdml
 
 .. toctree::
    :caption: Examples
-- 
GitLab


From 3976c951d299e54311b999b99ff5c44ca83399c0 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Fri, 1 Jul 2022 16:36:14 +0200
Subject: [PATCH 33/56] Update logo

---
 docs/conf.py                  |   7 ++++++-
 docs/gaussinologo.png         | Bin 66519 -> 0 bytes
 docs/images/gaussino_logo.png | Bin 0 -> 147972 bytes
 3 files changed, 6 insertions(+), 1 deletion(-)
 delete mode 100644 docs/gaussinologo.png
 create mode 100644 docs/images/gaussino_logo.png

diff --git a/docs/conf.py b/docs/conf.py
index 658ed1fe..9138aa28 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -55,7 +55,12 @@ master_doc = 'index'
 #
 html_theme = 'sphinx_rtd_theme'
 
-html_logo = 'gaussinologo.png'
+html_logo = 'images/gaussino_logo.png'
+
+html_theme_options = {
+    'logo_only': True,
+    'style_nav_header_background': '#343131',
+}
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
diff --git a/docs/gaussinologo.png b/docs/gaussinologo.png
deleted file mode 100644
index d40702f6b116e26f4cea73496d1ac01a2954ed9b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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

diff --git a/docs/images/gaussino_logo.png b/docs/images/gaussino_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..918a4f11d406b9ce40da51c87a72252a13d14af6
GIT binary patch
literal 147972
zcmY(qby$>J)IN-Igd-u&kyJtk1p#RghW5}PAT13d-9xvE!q9?*v=SoHIW!{O&Cnn)
zba(ST&%=4Y-~0aI^<0<iSbME|-7EH<pqENA#02*VaBy&l<zyvQad7bcad7_n@i!ju
zKeX>{aDmTl2U%?=;O`jl-;IBtB)S9tiSI0@D22a>M}3#&_Gio&NgSMqIC7HD)!oO}
zr_7U*O_Rkgw_JK&usmUTbvNp6B#P&@RiV*y@z|)l;=GO;I=R(V<+oJ#(S9;ok8c;g
z!jy^s(?tGMoS^wVp>9mBIQK*LPyfO!$p;vDobs=5hsx+5RrYi-Zyl|bDZ3tdZ#wz)
zxG*~HC7)HP0kRY}9(v5gC@az6>c_~B^UK&4L=PB5&QmeJKGIPtQ*S?7qCV16t>dtA
zw3jck>sro3?;m!J=ZgSSjh;Lr13tp#a!%|MKGvD1bMkEAUCiO3D2nwazF~36$uCH6
zv}Vv&_^4jxX1TKB+8{eH{v}C31MrD>J&@Gtx}`Au*(sb~I#>dprh0srL?*b?sVORq
z@Vg%e+%yl=U?wFV@Hvlk+|zuKJ2YpDXx3$zYnN~yO<ioen&cOl3lS4LTJ9FT1&lS)
zqJjpuRCus{mk#%nh4G}F>;H<tNJP$+`1{aYIb%**g%{Lr0ApQajX7~}`VOJvZ&Hq3
zH6#trG;b5XyBg(iT1W|Vv$=5A<F@Y0`U@Dm{-n_e2j{EL!M=KnZL%ja*x5jGee8=p
z_mu#4RcM4G;m}YNSPjQW29nm+a<Ya@O)b1vrin0Nc4GvoluF0N*j<}vK3?GC35@$S
zZ%j#qgHsxx)Y7Z(AuZ|s6fT&!-d#|D<=yL%8Z0<M+yq8NG;>no;8;BPyr@_1W%$$J
z6NA~a9m{=en-f2K($4MFC%~BPxa%E_XO0S%^NCvc8Rp(<3ZzmOWt97L3T+DdjcBHV
zTHjuR#<AJ|uE7>`BJ}UVOmx?W?0yhs+`}aE`}iwU0fUZBK+}jTJm7ab@lws$(>*?2
zN}(=Gf5t9chsh!aMx56L19*R{$!E72e8nMk>Rx(C_j@xrZMWd8N86)NnHpThXOjqU
z0iBmh^Go@9q%iaHemVONL~4a&f9Tf9IiUQve>WNd>KyLU)1(n|>@sJV%d>Sq)Ma2P
z7%OxbCnE<BZ<J^O4EeagyQyu$jyk0NOGYv@{D;1v?`H7I2s8lFVCasMR&pXTX=ITv
z6opb~>DIqQvVwmePqa<Df%7(&6PUomFh{L;-s2xRPxgSE#w~;e`1@B82rG*A=Sf)m
z(C9keE{uRb%+YVb{h=zbQkG29y@1MuFn^kpOgA6rmMP8Kz@$>TMk8Qq_6EQGiAq^g
zY%9YA14$+|vwk8{FCMvZwl-p`PZQU5|NP=AFvzKXujz8~sKZKLW+7TRlzKk!Pnx~r
z{sCRp<$S?q<}fJb#<huc?)B)L)abQiq?<M++(+3Ea|$Zi-pKi}K|9~cf`rOkLEm~V
zCdtROLP%e1pTS9{-<0jpV!Ef7nJwB1Smvt_WL-te)Fb_qg;mtMHHO#q^g<Tl1tYJw
zyM!o`9eVSdLKD$*ZP9yK3<DY8te^UsHU6gZGsgn6#m_iFgC!^{E1RCj`fEuCn*=PQ
z(30V9cCVZ#`7&=-d&Y*1)|l>7Au_KhU?u@`kB~}Pc6z)Q3gmZz`K9=cMt}?}p{eM(
z#>jcPfVo$Q*K)RJv2K$tm$`WdZ8Jv~tW~W3Cl4f?<F;ev7vl1D1?Hu5{s!jiq(W|}
z-jZClTcO?_CncHL6S&$Lxn!p&Fn{krGz%n`S`H14HW*LfEQ>><__*l7W{I+ApB13L
zw<BgC3V6eOdUXzR<uhG<B-d4zB&I&AQP(>*IOYUyt|RaByESVw54@+Z(A2Fo-alxS
zQC9B$2~E~e0l?Ttbm)iq85twL@j&J3`8ExrnKi)mE;TH2x8)-bd1mx9Da_wRbaa15
zmn6kp1DGIg%>$|H->c;YzfjcD@Cm0FRa=afou0!aO`}W78pR7k)lNrMNt>L#Z=$7J
zNiq1k+Q3o!s%-87KEzwIvlmDAPnom6r23lsm*ETClP_L9i96y9NqZkWSR>jIemwA&
zp`G^*imkC7g!X4crJ^~&A#rpfg!}<S2b8<@?sBOpD5TZ-&+6i#-KdA3_|KwH2ZY}Z
zsbYkA;CQPpq10R+XQSuOujhS+RNN<R6H)@OgCOl(N{6`MVg6o($B+IVpT;pBO{tzN
z8OeMMmuim_W0&E{YgW+Lbt0g7g)QBN2gLw64)5Hp|0$VLzFD*K;C`7uafq2W0(<^W
zkTxyBx-9do#(vC#^$s{M1e*8ha8<ip_vbMC&v}>5a`}vT3|o?;NxEB+Z+|EthuVSA
zzX|FzT!##rG{B@%@<t;7L-b+O+=of1FR#$J3+J&egjt3YPkn4CeJ;EhcFBMlzFQTQ
zorZQ;&<ty`pda7wu0V7e#;Beu)#hufcBJan8?|^P<i~lirbHvppTJWzvLtdRxIH_g
z&j4>JCIDuBJ*ngYiS^07CEukW=1jtL1HYPtd9l{;aZgPi*Af6Z^*@O2q>#dNSDjH8
zEjBc@zgU1U@OH!qLR+-XrY<RLewEbEo(<1%VuHuotK_g`bMl^@JYrg<o*~0+o!<@n
zO%o1?$14V%%XnSL9NPfIu2s?*!=U{t&?S{ij!J#|9TgbnN?d}K%Scm$<2!$9J_0B4
zLzA8_sLP$)JE&5UWA?L|`n`fFm)Eu2AFYo-C9dtMEHK|=4EIRn19_>t8;TTv&oAZ*
zBH#u(sr%>iS;G6F5#_3eYhHI|$g`11$$d;_5h_C1=@Omt+7!UQ_#QWi<A5mxkxo|y
zW{w|f-ZMt(O1c*({%5**Xkx<e7Xqq7IcO%g1(=8?6DSu4D3{S_*z~i*3s{kxNU>T*
zN;SEX;o#4yjb~P!GVr;8st-%Yi9R#+X%hrMNPfHc22>eQ4j8^)AnFT5S5E3jW{OUd
zG&c*-<|BuC*)?47@?rYAbnY)=#xbB+PS;|cr7fJJC^Z6?Z7WrMoPbbVI4m^jeps5w
z&?>X~IVGG@%)D7n6NCUS#L7map@}8u8i>}NgEl3^qP?)!c=yHtHh{~7Vi83*@>sa}
z#OvrOok=sa2N!g7nO;5`=7H9=sO0$>Ou@u%_TlQ@_B;8<spK%-wNIk?PS)5hHXUFK
z3wAIv{wkzIy9^33NV(CZ@newKQrA)1(}+AVuNGx^CdmksNUzsolE&GqN?=BxFcIjj
z^ynk1&Z8HRo~!?)%&!ae#=Ck|yH*<yec5A3L*MB)5gM5NH-`ckpAZOo4d;TO5X&CJ
z>j*)~0tJ(n6wC<rkXrPUldrPR@4>a!Uflz4Rsgy<3I5RNjF$SV4s*$c`fM53j*~6S
z5p`YOl+bjAMavO<ZsOpF0QQ_d=YNea#XA!NB7X<|(pG^X@4V`*tMa9BDwv8lX9`2_
z7f$nG1yYb{!g@hCQF7l~VyB~soK_87e%J7$Myv74ys@&iAcWLqjJrB^k_H^w{p)(D
zf8?d1WN5C$zWJ7pfKOP!RbTnL9>C2v2P&C&RnAh%=E&{?V0+sF5jIiK?Y;ajcVSt>
z^rzq6b-23yyrhECIGCl9K071p4i_<y^og55L>nNT@ACvM9UZP1Iqi2e#w7A%R?NQf
zx20h>3^PK1ik)A~6HsjgWa+DbR9=-R;D^0|*nO~i*QfDR=$W5Nqn}&{v&QrTn13_J
z6Q|Qxl1hS*ED$z_rhXZD3%~^lS{LOrj+!2q;PIWu*}mf3XpP*P8>mF=61Mj0BNU+x
zzFcoGZob*k&Ww$BLDe~fera{QBUiag0xPP#(@*E>24;f1jEzPB)8zkz(d9Rm$>jZW
zA~EiBK9b6FF-^L{<AU;SI7YA<<{1M+Erg-0YYK?ZudO6Szqvbv7ZiX2l6dROrTk19
z>eyvxmXt0$g%%SB4DU12%LSC<@)_y<1TJq+FZ?R#XZ3rx-&5wP`$ieZk~C@6j5Z?f
zu>l~{6+wA{OVLbxoMI5lGSkT^I0VBcc&JIdm1IThVIV22e(5B)Cn5xb<UT~)FDc5x
zSCgLjX*u}O=ANg!x=qs%Uae}uR?g=d5X$kKZdjFTOF}6u=}{LV=P-!68BMH&AfNH*
zDV^Y}u`UmtKHouk8?H=JJI1<#f;d8gG;64Bgrb(8Qcq~fourRXxf~sJjgv<9WJ~Pl
zw4|1u-@0BIqFGWtyXj!2OcZ*E{&dgnX;P6&qiIIJi5LycEv~-f#pWH*gm~9N#2`J*
zCD%0tTqlfV41P=@M*v4)TPpo=r=RCY#Co`d7ldjfgz6_|S8jRtsUl~z1DBO&4*IFw
ztSfS1x`RtdB{%Z$Jk6hFM^>Oe20)3)%dW$svO)OV%10A^7fqIsQr&6W)Pxa=nDa<L
z8`Gtra}R;`CW5H(YiLS}e21enP1F^(yd-O?VD@x$?OPT{II5bUHGJiV=5)3`FqqN+
zvN&uWUAsLDa}@tGdKn)6PT30WtLb++dnvoK19%PAO=P1hr^O1iOaK&$UrMuK{^ZX(
z?`+VC>?mPJFh9m;ml)>aKANO*{}gnn0u^m^3@N(W=C^iSJ+~^gs=%`)N@3;d1Glxb
zd$c{wKIPs>Q3lWal|D#nl13w7P8?Pqn>+W7xnQzl``BRPPMDSH>^)dfp2NEDy>eU6
zFlb@->xJJ;o@?}mp)8v@G?7^9jXTLMbV7fYBKMjBY$=&vs}7>FLTjrsHyKG5s(AQ?
z1?VL#Za+Bg3iX7cbpDL`13tB*x&ct}F9*Ff0M6?fV4^1?RrAf+uE*n@Yv6R1RO|Hp
zNOq3Yq?v1_c|sJdG?Bn!AB>tJY`t`D{IbR|yveEmXmNZDt2SuOlvK96G7g3v`nn!1
zKpTZlNcqUi@6J}i`^x=;YJ*$buh14PBn++f6yY?HtUKh81btAzaqXx;<N(F%QnX_C
z5wXpTccg2e7Tar;lc968+Kj7D7Nmt`NDD$t!+#Kk2%p{jJ#$-)&Fw0u{(UUW(do}<
zE#2t+G!-PnHxn@QtrrG4#YHH<TFJtvgkMfwa*W&l#Vix<_fukB$b}HFtwbxxprgjP
z*}MEO6}I?z)w)?Q!F^dB_6>+XbEpcmjg_D`sP<v7k|QF9Y!<kFm9N2|mS0=xV3VKG
zVO}~RU<ag%b)-8dzl)fM@n*h3NV^Xy?ar8}U~jOjGO#*Be%<`~irBE7N&9fPUl8iD
zID2L2!b?-+c{Q;3OTX*!axNa5)~;F(xZ~SJCcd$7b~fs2udCSccIafM5HHiBclI<z
z#NY;cyu8f;K*6k^IfbW@6GJzYbzF@~iUtpNU<&F$*baf2))(cu0>e0PF3Sr<>y>rz
zD>Z?`Upr2kwBJEde?T5I>qy0K-~3s%Dff4gPqIHltOfdyPr3VR{qhI+z#w19E4M2$
zWbK1cT#tF2f(xd6H~Wt)(M7hjwO9q%PR?)E)eq)9+GP<C@AyKD-AbR;c4C{UmQ!}#
zTV?AFu?~!aEPUgKv~S7(9>@D97aJ(ubP257M1o;U*pb+H7TBP3ImAGxi(tkMrf0Rf
zFavT71%=q*;LLIj|BL~Uw`a~fA-pMQ-f|_~bVS&yM2X&*WhjNt5AoBv6jZ`@?2P{|
zB2ky#Dt}R}$QVO6n?+q746>LYl#N`b*{URy!Aum)7TXN<W}J?nZ9I!3M%&j4!$&B>
zMJ%^?Vz(eqcmffb`_oJ`DnGN~+@tK-Hw80d=_U$-tnlS!*#a#PCeh}Q=6?q5Y0=(g
zHqhbb$$VAxXL256iADfSW{5(ixw&Y;r+<Q_$$u-V<CcxDqhx`@=bwj|C1PyNm8-?z
zemTnts4v0*8)rk-FNRbqR<M*1PP#JmJKN2^!enr`!xowC`Fy7h#m`I*tk?nh)Mf6D
zE<YU&%!`6pv1oz6H#sxN_LajrAI#CKzmM8}vfBKF5_Cav1O&VEwh{&WJ1w*S)Rw=G
zW>8(}-3?0Cog1zKJsNqv>rU6njHkS$VE!Ak@QTg+TTGMRr$#tORdlIgrdzv8E8PkI
zYj8h8U@jU(sl7kPklCDIO9K`1u*&_tRFa9KT#eoVNKw}&3QC&W{~ek5EMokexVwB*
zu-(!4Pn&u+QA$3fphnP1k8y!q<I8;*K3Vw1>4iwiGfQ;Yx~SP2;QD@JL%c#}>^Tqt
zx+a6!**3mvPl<y0qI@%XKidy5*+o@UIIQ!uDo<`afruv`@*`jKe|!1T;R6o{07{!5
zYrPC~)l~~0zlBx9pUDL`A9aDWb2V0V(u8tXZEqvBbd>DquvL6OK|AvRcBTJ}uiJg`
z++IWqbm2m4NK-S}QY^Jn`$m3B6xQWs*tX2AJG3f!E-4w%ihSUT;*yfWPCY+;R2Q_!
z!fSUor3N<#?5rmQJ=e4tUaPftsryzVfdwsu{u}I^;q57@9un}q^i@gT)@6!zBC?5}
zpq2JCmqf3s0HVhwsHp;rRFf2~by)UKP8=kdDsLzF+59oHKnovF=t`#q6p@eu119c_
zNoD7KD0j{FF4C2`2~oa0<?4+;Jx<@RbS3M`EG&BLhn@nX)`c65aBv>NHG;)b`J}qZ
z`!~u^NcMWR<L75}eo|;VFzP|wE%C&})ABVTr(g_exPGnOpU?+o69$4gxQ0O}9pE$y
z_I=QD)ZlU!P9(xB)9LUzW>dA#)$b?zz?j-2yHb_L%Dnr4*5f-L4j^YbsLHP!*a0^K
zJGvkHK8gjlRS9svOo!QHM<=bC7tmqmp+R9AQzhOnBn9gn*3p}yXBqfq6XondsJf_k
z%r<0TIV}W1X#7>{NQWb=NVh*EG};z6)$)v8V3Ptd*YUfkU~N_V*}sqpO|F;BZ1d9>
z*xhtV*YwjWv8^wx(-YWfC$XpTDSZtdx)qE?;)&z+=EL{kbE9eB5Ow4tB77U=Cm$Do
z6m>GpX+7q#z24g~EFW+)3uRngJi~jiba}Hyd2fx9+%1H+u9BnWpV4`y?n)as2$b^>
zacr<;VkneqeCFTJYqG|oP(LyUbfqH3?$a=_fbLBz)@TH*CvnzmSf&*&P-9^cTwoD9
zGcK?wGZTWU?qn~r$pQLzIHNZ}?DPek;^P}qz-T~b@zF0iS5j7HlhIS<<!O#QtGz1D
zVg@rVS~_S=87vxA=Q#g+-ixertF!W0v!BM_e^?vx>sBaMj(0UxcD712(L?-i6)Wbt
zl(vGAS<qE5`;Owbg5<kiiw8Gik}QcpdQo287S^3=NL{IVN^;9U*zvLhmlx#c2&ix#
zf6<}h8M1t(S3f&?kbv!NN9a?-D&H)Mvt5;$0h*pI0%0xwAfD6j#0ft470~nqJVC}~
z2{CBb3ln3BkB2MugV+*&1|5M3AwQ#n_=3bf2*z?0RPSSd2c2z!4S-;foa(zkE*Y2Y
z$zCS!XP!G->y7s<FgsBYw5Bl(LA@)cC@K5zv{k-9bQu2)b+empNJ#)^n0Gj<l$nWR
zsMF%*&5Va3EFsN7d{Y{v9)h6=pA_wz@rXC`@ZQxTz*nN=x5pCh6M#qUfwuiuNhJsq
z+x;SEQ}F6bpmXPZKhQ%@1WK3f``%&DVf(KSJ8HlAQ%f>@=P{4kPank+VFRc@Lu8Rj
zNjUlD{qK>KUCn6Jbd8Hq6G3;egz848)I2<;7A!ebK&6~}Kp0pB*zvo%P_~6xc&8r_
zvlC-F!$*DgM{?kE6jE`o%d8;4xRXMI=UTS-7yD5ALs9XFEC5+F!(f+1$<d>~jMDgj
z4_sBPsdAX(aHXq0v1%?>LtdKwX<7<TEtwMs>-=A-U>JHE8>`l{(o`IIl2|KJQoa_O
z%=KE~U=^sV`un1<ozpJ>WbD$y+fMoJj`AKe#o6U3v!$uSY)c=Qht$~6HJXokAis>s
z)C16xYWoU})oCtPK(f?o>_0#2u6!K@y5%ehq(8zOsWD>*`ID%MHzQxo#>g&Ac4Gi7
zzcEuP)3OF3die?3^2bF_jg5S;yK8$_H0#XJ)9Tff6e?ZSrk}vci<iLbj9+wMdhnJ!
zMu>%pOsU3xiYD<&zl1arxgz#dz#X`0xJL#;`3mw49StR^zy{_l1zVUR^Mp+EE^1WO
zIZS$#<vuXP7b+u4zxpidm-~f((K}qF_t7nhMk@D)vcViR`ulYL&$tDS)8PS$BEvA6
zvXirf%pZF0Im@IR@d9oq0+4bUAZ^^r)bp;M#Dbc&j*XI*+5ooHM6Qthx74*%U7~ca
zF1t|fDuBl8GqvTbUHWg6$aKuGc}6Bi<pGU)oLMxc9f%2U$<H3w*Y75vWN$H`Z5~iM
zmYHP-lE$RzN-a@yOt|%!dO^yAcE)Bz6WV`HEI2-?l(8Rq>QZETmI+fq67I@B{&`JP
z(6G#PpO#$_hB@p<jt4d{#i`t@;~YOA4`#lfPz-JT@OqfDtEN&YD*S!qMYjDJOSh`w
zNuufA0BfqtqK5J?E1<p&$b)p`@{`q{anzMSUHsSCS?}H*yGjy~hUOk>p;Nzt;dT7l
zA5mahO%JD0ISdB%JTxJ))b0KdZm9c=Zw$1@+j59%+0y(vXG4KBg%eq5@^v2B&HV_;
zQl;S>Eb#ibSAA_D2r3J6$SqhPw7Z~Fz4m>AO=a1Ygz)OAVE(rlgiO?1`$3BQnpc3<
z07U4vPd#FLKoc3x93Nl8mPRGGChGdTS1tJJNmT$tHxvjrawUKXedj-uO~S)aMYkB7
z%+2eKIVFB-D$K|-*QZUggs*^w&(dly-DH8j@61rI;>Kj%#Nia46>hrVsgU&5<yD?)
z-u|$lm9DhSeHGn{!{Pb?0NZ_CkVeU(XW*xSXutg?A+pYwKV3%Zv}t7NB2em2kP-NY
z6-PkY6y`e7_@Vipw8*#94;R*zhwDF@FJU`f(F1BuJzg@wweUGh*iLlaa>#PT4{1K+
z<E!T_Mzo>J5z7z8D5eyu@ZodcQ0|;?+Af6H7uE5*%$se90tM#0ExKhxx3xrjpI2u<
zn!^B*03&9&#HQ(co}*rSSJH3&2BOMpQNj65p#C`5$`Hty)e#jX^4C>8irO@nY8sMt
zbXair&2V>J7)5L5i0sPd&Ya6V53gbMGw6fClrOrkB<1S~!$_IoGR~Sp>0WY2Rj3Ls
z<RoQGMN#_5&in(jnZjxC?vM!T<ys&U(cuVT_~Day?FU^m15X?2v%D>X)omz~;NcOd
zBg^ti7q+$gDr2f1ay=&~*_{EDfB-yYzb)-#V~%PBU12D>PQk1M^z}dCz21##KU!$R
zEJhdPd|xf&pK=`R?!U*E$_TU%qoV+-|5_Oa+{Exi&eLG?{~1txK>k8ZwuC6~_FkMA
z6J~(zF^~1|7w@IkaNV4#MedW|?f0A>r;@__$Y2~1C@w``c@oJcfU3OT%(UeQM*yLU
zk^sEWdutYFqSIbM%BL&IV>6N}GS38D?;Tr8Qom#=;ihbr`C#mDPrzd3IX=;1Lp<|<
zHF9AIJ-V_%1!IzFYWHC{J7wZX_SWw?DPE2!DDYVuPd(cQ`lFuU)ze$XaxhwCOTBm!
zA78w5i)WoZ0>wkPNJ9ssQ?oWnD0Kh*W6I=+3V}rvFE(h2?3z45pIW*tCPko73~4+)
zTLuFcsmudX6ZmMqgAx9j(?al`CR!D|-r+6K$rMa?Sg>6q@2OBJA=>(ArDGtl`*D88
z56i<l@#>C_XWtC~N@CTz;~Pr|tSQX#P3h8nE(>g@nEJ#idAKLlg=3|z@GNc9KkqJ}
z+`rtwT!2U6q#~;1bM$<oylF*VwaH$6M5@5zJNGxbQ~$7d6kb)Jj^Dcm&O{St)qK^=
zt99cfsiTMgynljg!tmO4=(Q^Vvtj0eC7J!O3ipEvEqfIpMWj930<3ra7NAg#q6wtK
z#nP*D4KJw-ikPmhVefb|Dp%lo@kOL&Ozm-A*UR<oRh@x@;?3qMu^$>%ISj4L#&^$O
zeP3)#U3)Nwt^-hspMpO2@cID&adc<R7!aSCctN;!eQW=uj+jB~3T<Zj7or&}wFjp=
zDdj1+pELIDX!3FI#;U=1?Ng~!wCs+2*m@!0h77otMkavJ$}g&n2Buj6#nM9cx`iqN
z6V96WMN?8)S+RuoJzM%SLo(O|fpj>nK8=8CiA0vQBWAEV&ec#os6#Q*<h!)%*d}ae
zv&U-b%9Ue96ulOruMFO;Zoh&!<F?De(+9A~aF+WCy9C_>Pd2yW%b4MYYTP_Bq6Q@g
zZlipGF3ubqzRL0|O!Z@T#{ImWSig`=iWD5M{T!#1;?-6xA)N!9)}5EV4LI#>+p%Y-
zh3*UNMXIOL!&WoHPs1LOO|uBX=_q*OJd|u{T-Y`|`*9!89;deL?4aD!q*qtv5KFg6
z>^+W|rb4QfgQ(>mgCQ8K)ZQ{iGkmA$IcvxZQF4D(!W-3~v#~1^YtFoqJ<k;GQDoMc
zcv_jA49by+JVm3v<VMo-v8(D0)s~)(w}&vT(Sju;MC2ckN`vx?nKmI7_j{8=lq#6u
zniLnCk}2QDic_lhD|@#9^9e51JcJAKaoZTAs2NPvW}GGEo9b6*0~rAda+>cvcAHpz
zSdkwPw+*tj@2iBrGT`Qr+MS$zUlr?ITN1^3MYV}%N16<CG#ihy+titK2^9oFL!%K8
zPo8BX_4;e5t@)F@&IOwXK2hYAsUKH1>`a3Fg0ExxJS*?zs@*tNE`iqB3W_p2GN8m>
zekFJ_bBaO{K)~iIfX!!h`I?}I#YLwta|&n;AoB)(fF14t)RWUz0{=11{_3=~-}y_f
znnGGKO@`L#4OoH9l5vmug~y*sG=S8$lnIgrepa*90kDKZaKQIBfJXHHnCmb#&L$6)
zRjhqcm%D<&dPk%OM>%BbzI!<y$(XYzYHI+^pi&BG_IJZsA$;KaQl_B|pMSc1rJh%T
zp|f&(Y7J5E4Yf?hXm~u@7too}vA~^vS-<y{w`B0qOffcgOBuv6coNqtfaY)#+V`W3
znFl(+j7`V#jn~Dlr5FljNFJK&s?OSKb?Dd;SrzB(2ba0ji@q=+4VeB0umhd4f#8WO
z5OT%6uBnXcz!u~7JvxFtUR%NAqnV|1j+mc=U(X7V&@p4@`OZe~R4*2WZ-!LGNjFuO
z^>e2rIMrG04zxRgoRtT)b`qL!mFu?1U`4>0E<4IEw=81KKB?*fwDsk-2qtu3J$>Tp
z^I3$q(LAnU1a+20I#wOoLkP-t@X0hVR1;LrHpdmnAB>TE`@i2|^1z%Y`&Gj0lPqs3
z$$g5@Nw#uZ#ETNYY5LAPR3fXl(={c-KbQ6oT%P{PBk@C@5l$(q0og$*Bc$Vh5WAsK
z9?V%-olI>T;F_BQzUv}YuZB<_Tu&VbMVTx$9Yn)_JDE<*)5XQLppLhI1CpqNHl~GE
zxC!RRs!*EyE=kKO)=V`}%;-!0u-H&pu65HgQ>Z~K16_L9vnUhqp}CoAj&<K`Zoq%b
zpc41qkIZ)ix{@=V7zEFyRtfL$(O1>;%7%MK2<wv)zOx4+DssAm&4}Hd4hse4V0k^z
zS)PC<S-W<WPr-IDn#$vs#H)5dJ-dmbwhl2M&FUyh@M&7O{kb=Unuo7{q(!=E7l3yG
zbZk6GXb0$m7zhMu6gRVr|1IHN(O5TqJg@quaTc{~FyJE{er}+67sdc@jjN_`OHCsH
z9P48z_-^IfaN5==aM3||65^8HdLC$IDV?o(OhTnf4c*>vOj=^1@-dQ4@SKntwJ_2U
zCXSSIJWyh%wU?kvl~V(+f>`3+rS_>sziKD+pSmRa^7_tw!DpCb{s@<GIczqD75$_+
zOR90-U7+@mJ2u%7D@VYeEwnvg$wq1|9DA@~XkSFqhRUDArN(3N_hQxMeEhZt%c9ge
zEF*q2+f_!nh3E(~XYLOr?M_F|Tf(?R;f&IfJm)w5<;(I`0i>Js^4!v51DM%D38Jhv
zpnj9iNLP?%)Ri3UVvpyebkfwLVKy*)%9CZ1P8`_Kt9_c3wUERShMF38m$D5)(Ji%!
zDMi}#Fkd~gRpy6cK4$MLzVFH}b7vw~;p$kcsmS@Sq?YoM)TFTV2f3+M!Okj}f&9zq
zLC^X>_&~6|zS*@fI#Z-RE7n=aA`PWpSN74ejx~#A(2s;uP~)}kqujNGTm+oPx>nhA
z?M`%rk#SZ+l|pdePpVb<nmHFo2KNqi&iotwI2VK-Pa-?m#6nQ1QcY#`7c+_%lS4hW
z>E$9~Qi6}L`@7U9+fUr^&-0gM5&Dy5rE3j<90fb~fM+TR3aX%0@^_qKIfA2mSln)X
zx^!uLzY=H}YgP^h=mU(^k#s{|SWXP@N_a`uRjIz<y21EGLtFnKURD)i>3mB5XYTzr
zT+Af*S?rZ<g4^`HnEV}mH8pve%p|jgXhYJ*vl&O<WG7$Kt@Y^#=cG4*&<`~xiEYj&
z$@pcO-rZv89WUIjaN<)aNdzw8NSqcZVmmq`XR00lgesRxxP6X$A<8Rr=_{$OyHC0m
zK|RwE$uUKp=vU}_cxs#HpsL26Qmjnd#k81YF5SfX+Wj)Ir#3s*pnOr$dUIP1JfuJP
zV(RPjFyJ2Y^+KBe?2m<2WcR@RT{76tZ=}b{D9Yl*c-ubZ-Z|Ey_W5=JyqTY&6}WP)
zUpfjjSzGd~URg-o3`Qx-G-YM!@tW4_<R{-pC<UR+iT_Nvd*&~&R@aRlL`|djMHiMp
z+d@ytzCQQUE@<BQ$Y5`XULMuuQ&4D&VU=&mL}_h;{j?m+NTiS`1?;S}g9U}Mc3K#e
zJ`9`m+OV{qsX5#)(?ZWZJdT)hUR7KhNhv>+u*MXKJY4d&$#_KuE29@YFHw^@JvGKq
zFM@TnMZlUk8Q@|j9n9Y;!fW($N`ntfe2*J<bhD-@B2#ppAk~*foZTgJZH9ZQ;#}+5
zku~3MDPb{@CXQvQ7fTP6t9P<&FQk@(bnN#Hs9;*IKH1h+ykB}ys4*B<agU7X?mJ?V
zBnsHp&LE)8`-$Ldov$}GfT{zH5-5FR*5i?BW=SO?QieLV8|(A7$r<6prZFprQK#DN
z4pxY$*0|}mmiu6O49=#@>HfNkoL2L+*Y!Fbuiv0sPyND>N(Veg@osZ-W83u1Sp=58
zZc5?aFEj0e!MM_l77E<xN)80O2jr0%tR0NsE!ieC*!&pbhc*LfKc`^l-FGH;l1dLt
z%Tg;g7AAac55%f;XS~-$YO{_mefTs;P$&**$*J;gC1xMbjyYzIejr)kWrv8c$#96(
z(Yd{b)X~(wH+Lf;Glqz0fi->IN%aW2Y|k4RTxkBBg>5UaEk8<zA1p?j=j+$I?j{Uk
zyicOE<A`()B4)y}rreLl2QhVgEL@Le>e7?~sZ<oo3fz2(*4ppm15X2>>-exIaWr@s
zq|P^Woo=XJmeDiZujc-uySh1hAy#?Srt>p-=8gSXKIzIvFV$X>zo+urh4elt%`rN;
zEGxe@^JstC60tPzv~b`e&{Q!L$sSBCHv!b7?ofW&u+Fnpe8DiMeTxAfAJ1CLA~v?>
zhob40dv4~CYA-Qu?b$MdS+!(x<9w}+%Uo@Gf1NL@;G{<AUFT}@RJFJI%nxAWc~~?4
zI+)a^elrDd^=r)x!d3QScsilX<q;^hcu8r7I<p{=QY4Abc)V7a?MJIS=X3AoojUds
zXY&?icQPARXPriR47_?y$JWr=qX$K&8#(A)girSwOC|D^<fMVXrHQ^mwLu2B#Z!oa
zEmSwY{C>Ad@ZB_z?j)T~YT*pXv+rwch~<)1WxHx#alxhe_amxhYZ1Gwpg#=hDpg|5
zHTU}}EDsei8Z0sXs!9rkEw0~XDQJq<KlKB*?QdJIStcXLd<@mLQWzCqMh%4L*x^C7
zkmx$KXT1Cun*I6|&NQTm>Cs>IMPf@e4r>Kyr45nVqZzh^Z*GIx{I&)>UfnB*T}z<9
z)uqM6C{lCsr=$$%Nrgcz@B3}vZL5JxELT>_lV8auzWZVcnVG}LKh-mXrDg?>GzQb~
z>K5zk$jg?FdNz~YCaUe%O5O%)ZLQQ&WG3ASLb;fd8`k7lTVnnI4UV@h(BlB&M_9dM
zkA{=g<&|v9Sj`bJN-ZhLc9*&tU#I*pL%BZA`lBwAlGMX*?QJ=c-Znrf8#nEJ+Fh$@
zH~$I{HlasnDa2`Eji5<GHKX}6`<K#cprL7W40Y~s+nIw!IRs?%GBtFj{vQO@viUZq
z8nUA<zulM_X_3#Tu5&#cC&~3aTlLK;-#I^46sr?!X^MpHU~gU>hi>IMU#0`u@qcUj
ze{mS;$dc*#OenpmzHuIIW*HJPp$_!ZCX;%JQ)--d>0yqq7;3Yk2aZ@{fJc7`K7%fr
zRwir7!___j*(nF1_FOOgBkB{8f1)WY0JH_1cxnUrS>MB-jxQuLknc_ci0OnD&4V*(
zGIVlT;^P?ZOaT_P>mHHF$C5njo5;?TrPC|1>ox?*@<=<gd)G7=WKeVI;1vA}tvt=_
zi_R`no*a2V#eblSYhpNsuR$SOnkCa(OKzPgJdRo*oVwOy-MD+G0W51Ds!~rqv|suY
zJs1kQh{OJerC9!NWm$O_FBgvc*jsA0nRNYj(c^#p&w^oJv$Fny6|kIk`f?L}&#RLt
zlg(Z(U(O!a)0M)olpXOlJ&-G+$L<&Nm0)s<ITI(w$E>}O9fYor8J5l?mkf{3YfFK2
zr12V5zkGGS(^A78UzwaNhIbEN4L!BZ)I6<h;L6ihss+>65EO>*m+py5J~l2lzSb=4
z*4TZ3Dw63CqG&>x^1AYcNCGI@HT;b@GfjYcjC7`YLv8SsS3zinE;I-Jy3lCh1K2jn
zVpghSxO@hezO$q&%k1L^5H*9B`O&mBUwJHUEA4Sl(w?bMy};Z?um0{NyW&lpUwu%)
zi1#UN-AU95xU(uvh2D5d>KXF#YTftES#Hcn<T9w%*uI*P3@^Y)W5R18Qhr>XqF|=a
zO=&W}K)TW@M5U4^Y5I;4z|k^@&0m~}+tc=2Fc=3*ymlv9qtUo(PxiKEf7sRJEdDc5
zhZmB<CZp5h!GsvQS7!m!+O-pTzea|Ia@^GTw3LHUfv((h75RkK;eEg>Ln1bi+9}P-
zU^Ft)k}}yf)I0TVDLfml-2>rBQwNRy8XyLP!K+1d#eHy_Mvz0h+HONPoykhmaIM<-
zka$f^z91xdGF(Js;CEXjFJPMMrwjqwD{N_M#ZtT*YdtDgC4%r7Ely<9a$Y)#{m`Ds
zEGzyx6>KnYWt-w4f6J%jxr3Ls(|E$xcUkkTg-((b@BRgoQXqc*x0bHFOiXB}e>>-w
zLy(eWwJ0uvrL9Ku(tys1yN_fjWq^dC=j<2UnKySQQ>6F9jvXX(r?V+AbN=@M>s~*>
zXtcO~v*LJ*;jBD->KwOwphs0chd}1prjx%~jU8pU=f?M%m4mphsyBUB*2+0EbyZ?m
zXQZUfR6o#VGZgk%SuiOBWrCm=pz@PAcA9-}2JB79m6Vpet6SA5`rOOwLwb*~$IwGO
zJ$WgEka2?s7D%*XjB#EFzc<orP~R<YZEtN>a3U8zS;AA$?XhG4lxgb%kP)O2EK;cy
z)a~T`4&W~oNF)8!xt$8h{e~@;#<VxQH|`o@#J*UqGyz@3ZG{}*d3tTj)`2q2aZssd
zUkYebkPJQq-XuV8BZxlxOrvd_gS{>K4Y%>}i2Ui{@VF@!!Ax&;+!U;J!1k*Npxsvi
zW_^Vf$9Z(rm;UcaSM*_#Zs!VQeg)5ghZxY^9wp;2teS=#mQEl&UA+ms8?YdUTg8mW
zJl;cwH)hpsoc2f~>X+Djr)gn31K$J<lunXsvkos4W18u7olX<18Cr{z-B<RRDPF{9
zfQxcK2W3Q9$;5PrurjEQJe8b8tomunfI)22_v*9n;T*8yrTkSSte@+VSdQwY{FY^{
zVd+nI-WV%WUrC#p{<vX)CM-#Ca8}RHs(@n4$UOs<)=QW#ISL0{Dl3aTGN1jFM#1q-
z<N0~p$}&AdDPvk?Lb`VN{TxT-%248nRMSVHqF+i72(v+{pld=(yx!AanP<{qj%`g7
z({aR0c*TT0wrj6R8Z_kVTOn@dbXUk<hzD@t88X~tlKp*E=5;G@pDt4Dw~#%Ki}Usr
zx}h=d6B~83`O`)><$73p#z%N%&WTrl5B3<X<k#O+IpZ<skgA1=t2&H8`K<YVrQRD!
zsX8QQ4Qicl8MLbrQq`-O?|fR%hI~YP6Gt3+(Ep25wsKwH2Y|&k)25#DZxP^$QA1m}
zj*XbjD8~Xm3kTi%#`B4BVrwxIvLb(LCl$#d*JUXLqoOu977NNHc##6$`%=CZ!8l7c
z<;Y8$H5$2>Znd~|EDi?%?>gjbN_%8Rha!cPf>LOxSNjj`JogmQ(!s25`z~ej-A>s+
znrRpJ321<Q8h6`U1b(EmpjlEs$?3UH!bj-GqJjKl>>y}W(aXG~w^jW_%(-#>!HBNN
z`jA_GY+d0!!(5E0{m$NDAJF%@evTq>q2OM2Ox`~el+uXLOXz2%dxi1~L)E>XL7PX2
z?d@I!ta*R;wOhT%Fo$pvZW@pDVGuLM7M4ic&=qmRH>Von!f0i23;O@xf_d9}@14q}
zc!d*EflHA^*_Ha>09SQGKE0(9pM^tzIDB|5OYO1NG?-nT<x#titfC7xdl4K{L2;L5
zhd`w+4B_%$uhb&%UX=Uu_AV=yYGU@%B%QG>*$$7<lm|&_zP?kx)x77wkMZl9HxzcR
zl}6Rq-Qy5?J#g#u;Rq-S^vFr#$6h2`n!+XRv{&nIst0_85&4?g`uf})GBqroo&igq
zg00V8<Y{Hg_OG<rq8;`u`L6`vb~6oe8iK6J;5(qVzrhUE=<iH*#7~DbwzNN7lOAW~
zS3#&i0%=jx88!~@2F_$9w`62}q1j<V>MOSBvnA%bvU>#{wR6Bho?agWu?v&hL+WK~
zxDx@L;!xC9TxhPeZAE#ouPY7r*(v^+*z0dERWmiUfg^aezcUovrUH@jzCJMr=j~N$
ztx&}09QM7st6C)ujuoXhx8FC3CuFSTMTyIfmN?@`-Nj3;v^A&xyUAtoAe86ypBo49
z@pVg;8h`mXc+`-Q;m#oyq+z&3AyFS5{q^B*xhl_~8~^-sQx^49E-UV*lZfA2bVqko
z{^{^|>d_juQ>?9WRSUCqt~9)o)3bFGhqSe{)6O=Im(Qr}LPY}iLgXFp?Dy)%mXb6I
z|0Qp~9^J<@)S`$g-&qOVY5|42s^wf~Z!>C5guBuNJo(3f8V~39H}KgL4ry2_mB92*
z+o_PiHdcp+{PjWAHv@$)PzqZ%PZzz~9&vZy`aAI;!!MrauWy;v0}PD1LW{U2$ua;U
zaNd48Y6Lzw!HsEOn~ma@DTt`Q+G?egC=R6GkQh;tH6th86LDYv_ymtb*)V##gX;bJ
zq>^33h?Dez_1y2KiU)51hQj&V|1~G@c}cWY%}noM-u7wHl_Ka?%cJE4M=eKmaQWAX
zuKIIY_!VQ;ErMo-da=O9`%IPtRR3r0Uy9vfd!*%<rTh)8WQ>g2J1$O=asJVTW;VR)
z@V}{xm}(!@#@@sI81-__SZ<6fbv3d+WF2T!;26II+SR}be$5wNyjMJAEhY$coFX#S
zl<)XU7c<ahnOZyF2Cw^wzE#WKUf-?#?%(m!H-n;bE7VFo&HqONQsa<@qB+CQYDPBY
zJ_ohE3YRZ`eOioP*Ov0aCEstKg_-W(>meZhQ`2qQow*2FNDgoaoKIrG4ZuhI9iK}<
zZrpn5C$5r|iomX$2u{Lk4QEmcr<~>X8zxinmkypJOn(vdlySvn#uU9^Y6nfYE5ikL
zW1kedJ2<?{IDJchmRhqqnf!*l%~-^Ytd#O8+D+E3nX<Z*=~f8#(xeBE)Ia`U(Y?+s
zN(7kp(2o@GA^^~SD|f1;N?+^~;vq}ZiyUh+C~yP3Csa~v*)&3n5_7p;{`e*dFM3~c
zqnR^`YNdPU!`34&Q0B`gV6y<{*5Y@-`XR}_4dVG#6y`6=1>dwu+BA=|2o8O2II`0z
zwxnai4K@am_~?Q@P-0@qK<MZpH;^UZECgPgUR*J?;>1YK>1IGzi^}M~<ebw@yI*ys
zswuwNJD}mW#_gu3u0l$1n%~&zA`vzfuI_gr2=7W<pZ{S&fry$a{FSg}<2|jEBYbYc
z1xE(zk8F4f<v&j5(HJsh*VdZ5VPRcUkic^;%I1rwq31!=BqEUz1U#m3KLgZ{^YyK;
zO}){*i}&xmZO`UTE;h><jM@VFZ|_)=?H;C%?SE6mO}h1DRmOO|GLL^yxEOq8`9BAE
z^*p4Z7<j5Kj>>#v?Dy)AO8+U|k~LdN#6N8ZtrXXK7FL0vM(}2JNwY>@RpHksiLpPm
zYwb@ziSgW;Vi}(#)FCpMuAapGICua3Tu3QTD?@~3^*3AY+rTXi&hCle9Z<-JQR$xM
zv!ATp3<k?myKbI5pbFcHCB-N5_#LgBCy;A|yQ%rq^3e<@?Fnv|sQhdtbwo)9(^8Zu
zF!!O`wIDZl+HM{ZJ}XDz-5fiJ*>h7EC*8di)HVqr6kf0OAmN5(#`}=!=ZY;j?gu>r
z`cF7*^P-<ffiKR-Sw;*MJ%gEuO@x|J4bPbV^ZCkYmDwBh(MxAjWhYzwSMTCw`X84v
zMWlOhgV1clZ8icvUva|gyrlv&7yw}Tw$7i?GM0!76nXU3H5AY4HeQ*!qia%#ToKB*
z(jRfB$BQi#<qNhw1m=Aby7rFequTFqr_-_e+PegQ)zIhL>#;KH(b-{2v$ZA%^nUDA
zou3Hf3b*8@lNO&9Gk7GSTb=XQUqnd(OFV4#G6a5b3=rL1h%0HSVWA#?^P3YRweD>h
zW%MSDbCL}ycb<)@dFV@bxpA*O`G~Mj{M<gjJw7$zrpyomOcb}f#`!mwf)`cZ#-kjY
zw}TtRZ&Z+$+84esC$q_2^dR$Rh<JjR{wUUst+%db5~-(Y#`XpV%x&8-xYnGp;)7|g
zv<&~70p7biIXzSlOT^vDCkk!`>Sb(h{t!2ris{{Pg!=|l$=t@CI~R5`L#~BLgE;yF
zdEgX$T(KUWEpBX6eL5Kym2#VMx6kryk=F2&LP#^P|K28oXyK=BWJc22Wx_<!BWQDC
zNcj&1NTxWxyykq#xfm5V6(C|9LdZKRvnMDxVzBri^V6y<pKS4@7+x~uik}#+H7>4J
zrNt{N$Y&($);ld>_U<=V$mX5<oFh~pDVHoZEDR=^nbH>?mV~Lw5<R}ZOT?A@6m+4=
z>zMMFI)BDV)auQE^$Ew}Th(n(UkU^@S&TCID-sUXa#MLG>53MbqBBG)X;Zt+j(8@X
ze0=f%t4kyr3N3>0rDFmLb{ug5$J~;CTX>uRpc1V2_tu*SD%2BFA_q$U)H0D<R3OA?
zl7e{7iE$oBmaQ)cOHlJ3jaTx$`3IOvDP;E-NNu0G-X9Y7v>aMT0nEENTE=bht3uqz
zANUcfNNIk4c>Rs9k6t(1_Z|(p2;3KqegPf<F}W25ejkRS{T7!#Kc=DMeDl3!Rr9m<
z*T0`SaJ^!Y<r>94KwjehvWR|@rV@q4K6^Yv>8RMH*$>Lhe)K*A_~QJ{@TbiDuZ!>v
z&+Q_P+WA}Dgrvq7X4adL3pXTs>{ku6={%EYPb4a76Xo78at=PZ#V^La#drVlHPjGa
zukAiZP$gB`H3q-`Bub{<`)~^@k58ms@U1rM1MSj>Z?{FF0+7{`CvVK|XBri+c=$D$
zA^gB&>s<%6n_K_|CI$hPpOm6@&9NYv;dgIreHJS3DUc<G<1WcXoH-DAgp9&ONrMLt
z^m-0C%7XnVmNh(fh?;Z32x<6QB>q-#o3I7fXeJK<*9-pM?6`_nVeO!QmNg$`^IaV<
zGsFXve~mtt19rywRG&K`^zUW-cqX52z2hb)Ft;^;o3%Edk(C+tWI;|w&(nOK$57PE
zaP*y3jGk8L1*ex#$vFjuj>6O@!R|>jkA-TU_^xDJy8G@yO&|EymbDex?YsDuGEn%y
zJ0P65Np%Wf%=w#so4mh;yk9)h7A_JG`1$o)fU{Mv)VO`wU!ThE{gb}uPf}{I_Q(_|
zfW#{~FFrKgXzi&o9x?lz7qg<fSYE@ZQsOg0T*CfP$k=0H?|l>3Qo9kb^h5k>maM64
zCoSi<c=nx=DEbZJOvHGe*?nf#S<ADa(w6cprh^$z!KyajMfLYTtokXQ!+wHIQ*l{!
zse=AbKkD7Adno($3wTNJ{~KeM_h5IzT;5an*QZ`v`^oLU<8R6T`iB+B*xr+pn>6Pj
z1wvmJX1sxWWM^O|xT{;>X9i0hO5;`^b#4}ae1203Sq!uda29qoKsAUPM12QcV};hm
zt@RE0le&i6UKrW?#ALl#CSISpMSqEi!7il7`;)d<IyCjO>7~&(bnc)1kX@S_)xBnX
z3-%)sW;Ae1vrir&wj5NTv$cd@yFZhg7>|wQ=`GyMT^l!yfgA}QQGDCT$WtPbp4z%2
z137;ak$l&T!w);c_1O>9x}y?EW>XE?tlA8P|4Gdg_wx!C@r?`x{m0}wH))eO>d45r
zMK59Y6bRN&vI~9uyMG@MPnSDSeCpI%a#)^p6e*+X7W(B^iE_C+I~lQFAkiG0wtR~l
zs9JFrw)GRBz*8yY>3-E7HT@6g!abpa8Y5Ofdrur@j96dJ7=50KY&4#)qO>X2#y?h$
zumOxh5JK;!*qN}36=YJc2{m`Wjzu@F>5xuajMbsZFjD<%X|C^YpQwQMx13Y?<_CmG
zNJM%*JVr9(ai|{&T<X5HJbiaL_y&%M82(f(ZS9?v5!BFg^y2-sqHwQyQq=GV1E8&8
zGu@*(dbu?T_VxY+i*4ILeuEmvkc`$=_fcJQrBsC78D8Q97rwWTmNPtuo+O_nAXJkA
zvq7H?9P-!bbz*>YZpw6fR<)M#mVWB>6u`OMvjo)|rGZ-yp2{&+`*h(q3wli|<(!mq
zojauv_4KdP^`uytZQY^VJt3x>;FJgYvN&&x(jn$pu=tm|L|j$>hdbi|5HY5d0s7h(
zhJCy=Zi&A|m31D6pg!!`5y<K`w9o(S+(e1=iqZpqKviwScm|Vee@mZAp94ttKasDJ
z;5@_dX^|A~OU9HRiQ8{8;%)}mc$}G{m5F_+thP0xTE-O)h8F3b)tlCITQ)Wjt7UMJ
zxsfFM%&#+QHjeVLS^tb6^$}Qa%@b3Aq@27aC?sj8P$OQ3A?M3yK;pQdL&5##_gqh3
z;|sS;nT68=E?P~s)I2e#8pZ5Z-=QxN?SjC=>i!Iifk1uH$8TQn{C8B;wL$zxI_=`$
z4BWmUVP^GU!+@JGnuMQZg8$X6wFkn7d1)rKe$+}UDu^Upr&qV}^DVX2YV}fY*Ha#N
z6$AZuoP~h@R{17bDo%e!Uqw4Q?z0&J_!iw}!x>(x2Fh_Hd}x}{^34nUc=j(|8<YMm
zm=EE#ls4SK4JMpi3CBf!%D3u;U6i1dv<-HRH41GPyh}4*61iI)o#CxVB2QOHZb;Dj
z?31CD0I&gO+kW4P3Ee3?jU10W3eP%m-m^3jl@_M*{;E2oK*NGrB7jXyx_&kWBz(w!
z%}dl@q>`WGw&=)dzT+;bVO>-0+n8Wu2f`2cg?DaX#mP)W){65<5rW!P@+@parkL{1
zEa{7Jji_mzPqVNINsv7&{gUy34<}<@+!QzS_TcNrvHpg$_NOnye;*QSs(-C(U^wIf
z$|PFX77%2D24(|qDoOogx*mB59xG<}eoEk2@xP_}QQI%}DYV{n0O<0RpXn8zs<-(z
zm>q4^e76>hzty3f`wIxS=CXF*TF3SxQve$ajnv<6ia)k*Z4`b6;36(s?axG5UfRr4
zv<kJ4ZWP%n-_wR?P$<p6j)f)|D()}L22%3xc1!mZmJVe-8I9T)vh-bbb?IAH7dxE<
z*3(z>FYAeUJ?EXVm;85w8|;nJ6l+?r+5gtHSeQj$8}>S{`8Dc-7mf~&zKQLa%osM7
z7zgqh%OsQ^J2UOPachsT*<$6eXh@_Kn+LTL*Re}ijjvf;hToI@wV~mmTJdtw!>G3c
zWq~h_!|ZoM-=pUQx|EbXL|cAuyKb6x-8>@J)caJ|;6rgB@;J;R$D;k9cUbfzyO?N1
zV+6u?YzM#O?xpH#i+V}M7U`c%?!;J|ahVoy)&D%A<>9@Er=Oz#rbLPWbqII8V>zHd
z)8y4n_O^?Pcx<u8zIOIjmf%mXe_URRT6QxQw-)_#nSpI(3uMljctoTAA<io(6g0`n
z<Q-5*0VA_%puD##CWuD2)*WxMMY-Y;Au26rf=URT!ip0gg@vCKwuu^)-CO3aT*Tgk
z_q5oMT?AKRdTf6@$gduL!zShNd@$q<4X{=l4TNc<r%xT~XKj`@%x{pIt?2e;`HKV-
z4)D7VMk&_EIcwbsG>ASmSnab)svbJXo_|D>f;mrAA&MQUEapMz@t>>li&a{1tX^Z;
z`<e&t^s!#Nk07B$%7%Rgnh5GQ2RnZ4kW)D1@-I55n?#3-YR9OVyDGiqWC}fc{Hcmr
z<81P9$rrv-1FzpF)O!oa_IC1`L+`wlmLMdnFx)QRY?gRK{^M<;c|_wOv8!&zW=#9P
zp)La-<m#haE_pLMuQEZcY5dtwrh6!@J6QbvbjS0ux7O9pf1|{(>byQ?7Mr?609IZL
zj$#U6FnWt?Vi)pnixWS<_hfTL9LZN7GGuTAl7@JN1<-d*^k>R^>t9^OcYaxwUKQ0>
z+>5PZcS*`n!~G!t?5E?1yYLZM_kR6T^+(85u$q^y&J)E77FYk(IKSQz)Z|&i_sdIg
z2-wyK8^(U`6URPkM%a?E#a$Wl)C=vQepcGZ97cS5EkzzyUDuFpnvEvL5En%8)=Nr^
z-qYS^V+X5xaoQtpC<AqOD%d9!WjAW0Pwm@&z)h%rhlg;If0ST^zrx(Bw>B!J?N6U{
z!A@t6ah>XnvP)YjuexwtM9ymm5T5aQpPjvf0tzt<^+up!msUYgEnFuF4mi?2?vX%d
zeRu|1D^`;6#9EGao#kON@LT4IH3IHYyXGk0=+1A9XMyu^G&Ab`pRwFhr{x*rFX_8&
zCrSOy{rnDZ$Ci~veUG#F+ed{oIl&;xpfd(6sM|;&kj;wM3FyxHHlzWu!IJi3cdR~c
zh=TKtM0tZU`;fcHA>E?;@&}bL-?FHs|BtG#4vTX8!X5PhM?pD?2nvEqN-Eu;h%mHt
zgER~w-Ju95&Cnnr3?SVg9g2XI(nCw<&|P<bGyd*#?_c=%e7je?>s@Q_v0S*$S;T>U
zmv+RJIst@CbA8cm<s^r5hEb0$=k}O?Bjd2i<aC>@R%uRP9uz|VrCgdWef+jh7+dft
zTMVxhz><k;!@PWF&5lK=>-_a{WrU`aPj>30lTs=vM(KO&UM~>S>T3CJlI*XI^s9Ae
zyQ~BZ7zVGY!J~ps`)H621+OZ0S=OrsCSs`m7(#pXK9Ux~RZSF#<L})BwN}ne5g_nn
zQq7OyI8!cuV-rm0L}vLFb1u%Alr+|SJetFse7w4+yLu3}6Ww**yk=w=uHbUO*}Yzm
zyumcGYc|V|%-#Mti0(8^z2$K#11AYOEX`oMc=bs7v@MG+iE8mOc2peda^-ZY2&N?-
zVb@rNPAF^5++H=EhlKf;yf%HZJp?mEcIL|tNDb>^OH#kQR9|$x5It*cCM$~A-IzyS
z0QE1pn@gRTp^+_dCz)-zoG&c9?vo7j;cD#>C7f4n%q{u&*~$`Mn9oBC!$`etw<s@$
z(xp`j_Q^w9b?C-M+8dnhwr!aYzDxi)_|MLIJB7miY>j(2;ef}|)Fv~Lk8*T*_+t!m
z3rfS;7#=i#HKlE7r*fwfZ+2W3^<#+!vorIdhaxN4Z~@iAqi;N(>DAorv~h8UQaicp
zpX4W^b1R<JYDz5KT-&y`_hKb6E2KF5)g+_y3e3Q_1&0pm9&e~LG4vP?GudBL*`|BO
zY|<RmT-r{SBi3pF=Rofvdpfo@1vpQ(#u1A>W1A({{ru&vPfGWVG8hF|l^knyvX8#F
zEQOO9FrN)1t-bGwN$yY$RyWC=cMQYN@Nqi2is$+9Rf1alnul=s!FY~MtIi8(^ch?r
zT=zDk=<D8p)nOoPEw*8Vq`Bjkcevq+O0jF9gg<2=?;*R@uas991@B7Y;p_U$%jprb
zD>~=|Pn#2mw(28KxPyMjx8K`H;XRKB_gq9vYQ_7qEcs%_Y^_B5%Fc5x`(Gp{=q}QD
zd-Y1Xr~GMwOnx*zPJ^z$C}FoRV>D<#sq~&5e+>*k;jvYnY5T1Vq~&FQAq(k)pa9*8
zMY6e$F%Z<yI*D5*RO?1c#uF+JXY*vU!}VhjzEJd_#;N0wi|X%Q+XakBZ<LCDgVWUT
z!giDjUF-A<o~;8U{XazfjLVC6&<8yF<wtrTV-8&wRrLBR0uOk!Z#$bQWq`H+!7r?t
z&a{Xt8hL<z{Py|K5YcD{Qtggq*DIdmLP_rg)F+>D!%}85J<*-a6dCu1y{wB7ld{6p
z!IkZPV}LnSLcbJHR=W2jt-gRy<stj4xy3?W!Cey880^G7Wonq~)sf}z5s=y`-uOFu
z6RIa-OJ|Fz^qNZR;2$b@_CLX<D=L?Qo0CMp9+hYg_ttdIZ~WXqezEPT@mA}fvxpKs
zSoCs8isc^UrN6f*L6wZbWUt~UuPg+r&UQ%#$>*n6^{39-mFOT?N>f8DcSTRwF+O1k
z2>&Ri;07%+T4C7WQ~B9-1Dv|^ldT5{cuc9_+QTkdaZ5)_WAj;UVa&4bQG-*Qex=6=
z=7MMEIDxmeHUXW3Twqcw2=~){t1GfPkR+d6+<-Vcm-b<&si5H<2pc$0LRC>ViH6gi
zz3lUO*|C(J#5P_Y#SERg;$Jehh~^b<jg)+&0qi2%iv)j|d(HM=H1A<_7A9tItcHx3
z)UqooiGHdEjLSe*FD&+T87X37I%{_v#eSo~^&QG7=KN))r$HxXpmf0B)Hw=uJS;Fs
zH!+K0rY(?SmlN$?fvhx>%nPhX95$t5y>{<cMNt0b!9QqBVLh8L<r8Bs=c$HwHllTw
zTe%^1mhKa=L!DlJdC%P~-2K}`hPxV=m%ZUGwWp%8mF*O#zraDCGu3mQ>0WCFJ&T#l
zV59J9r>}LK=5;U1p{~D;t9P!U6t~jb@4&T`+n-8u|2~+JJ>@^AidY;^>W<qTv~&|)
zCeHGp^NLP@jz5=J0n48i{h9Y}P9%LYH;t;P2j(~TBYLIylGm%xfpyC*a)NTsf>Ci*
z@=iOvpiTq^n-8ae?g&nE)2_TE^FM8{>Z@^d83uuR?vlXgnhIp;CGnKlm4=+k=_@X}
zoon;f_Lf?fJQh$>Ma<u$Z^p_SG*q{dzIz)Xk_Vp%UF_o8GX6Z=V`snHMauot-7baO
z5@r$5L}4aA8_%&@c@f3DLPTj#s)?7Y^s6A9HSAi0YIzN5=dN%TTW{~xgH~hcn8m99
znzf$;3X^tU#?1hl<Fjj-hOmxE7UabUr+77xT<NQ{*E#*%G)I6#ghPx0ESeJ=ur}q<
zT5=>mY-FyrVg(3uCHgKrKk_yKp?P8vCI*lF$-XCQ@owD3`@3D8+WS^xoZ(zhV@5L^
zUQ;gvSrVFXbr3rXtk*5*dKeFpJem8R5ulf-98$uN{#~7xzbw91W2?3uQV3uBm)K~?
zl~j4eu$TdIMcfB~*O#OsHOX6&li}HmM@!Q`DIyMWiGq+8Y(4}F);G;2&l6G=oF9Xe
zoBWm{hy=tscNtiniNp#8%j2-wB96Ci31jZMtGD~0W@$P&^mi`Xw<<siINl-a!=AcV
zz~mL(EAt?=uQjQ{bDxs?Xc!{w1wU4UpLH4b<kRQku1CU5f^mbA)p4$o*=S41zg?-^
z3tkjq&S5ub_si;z=c{G(<E=&&aR$5TE@AJZ!Nl%Pl|myQM)8510e`E3!KZ&~RLfiK
zepd!fu6o45-Gd%??FkgQ@c7hMhe0j@#whuB54n66_N#uj>=UM(p8lZ#<mg!!M6Y!R
zsS#mm5tQwdVE!Zx(H!rGIN1vOD_i6preyF^gG;)IWip}=612I~h;M`9#Dqkx8MX8c
zFXg@+S>rI-#Yo&%;=<z1Yh}gSFFa7H#-!xbmAYq`Y&vU*JI*;#kR?T&YO{|Yr`PIt
z$}SvVN+*=U9oh@*p&d@;b1ubM1H1jC=N~TtzCW$26sJK&()V(a)#S+XA!GIG(|1<%
zV{_N_vR~E9^`Y%`DR%2?vYd3LA`Ky~3dYC_#}bNl<Ls_nVS<+f#s!b6X}oJg2QJSB
zo>(S$(Q4Gio#0>iwBGY}w>Vx-816j{L-`aot%=fD)T1hbDkd3@#g_|r+gDF(YiTE9
z0O%lG*cY9vQM{z}4=syb3W|#ms}=k>cPn*o>udjW0P2c9gIPBiM{6XjP;$&Y>X74L
zAM$u}z@CT>q~nfutD%mvNUkpEW~wbbn3>c|_z|7Gi`*qa#&!XIuy_2706B>?!}P@M
z(y8Hgqy-z1`qDZO*WAxbDxlA6I^3R9UBpE1YBWXICOf08ty?{bmot~MC(g!9Vn?4<
ztH~VKp?30r+*q$hnZ4|76_(-AFFg{hkK4^^)B5+^A&Gs`Gq@U<E|rv7Arpv>YmtWb
zOi><3Rz=XFXCi*zDk-APZu(jmn;+}xUThx8jvP?$a(SY~d)zu2IT|jNsFF@A!n*vB
zQ=3A&&gSsw4?)%W&d{Id4buymNxal9-|Ui0+L!@bGAz?*R;S$84ZVj1)C|XA{iwei
zH|gg3GGqOcc*Cyix9?L(O@q^?2ZJ_R_n1;@S&=FO3{F*loxufHS!eL3eF=&RzG_^<
zUTQu8p-%SJaqBwQ+1RjE!O6RiwHTJuD5ttLaaoJB5NveU^p!WU{rx)GnpOs;^)3ft
zi1;hR3Ly%PnRKPP(0hYA39lBuA?XQj)GPGSU>el=1WYQ}&i?GC*e5hh%DDG)7Nw%;
zmU-s4d84GvN};47EPBwI=`r}*<Z5=OM!&e9ot!+oQrE4AC!rGL!R7`Oiufu=HfAF;
z!-d$FMKAl0u?~}spP{~G-FJS|ODDY3FVnA%ipx@uR(^OG?#{McEz@Uae*#ln?b_%S
z3W|Y-NYlYZraI3~@M?d90T#((Jj7qh(554W?(6XC9I(dOc5rqP2O`Be-DCGX*?<F^
z&TY+OG8}%N6713NXn9B{jGHqBdU^?_$b(g210BJIvMS1lIjjclWG({=?(tohXA=sp
zQS=JRY_aipT75G&{%yifMJ00#O_R*J{>^G|46pxohzVO{xlxzx_zXH968Hameic^q
zT4@ny?<5)x494}<qpu$u7uRul`O#VIv?kd;Mc+5NU(#`2vWQGsWpbl}fJ)E24}*mx
zOIv~!2So4ze}c_4_->u~^Yy(;yVMPAbch4Qu;$gS0~TVXT*k*uHfK_yh2(<KV&jrN
zzKObRgYk|_?rXOGIMi_UNqkC}^N~Y7q$mG(UfeF)<Q#hWYXEgM%_01L$k0pgJ8sg*
zP@@+x7w%%Sjvi^wU-vHxv#Mp;<$P2N*(sMA!&z#QuwMA@);E3SKHIJ(MshKO-EtNZ
z*wyABY`VO0>%Urdruma)^R>eO*@OBH(J^X?-$;o6)Uw_|mz6I%EL5uWo%0^Mu<4h%
zbu0*KV0Y{%9u^dbXrs-S9N`~<4P7m-V+Leoyky?HA5j7_N8V8G?&Zg&Gh~XJA7Z-E
z77}aA<o<3MUi}SBHr&0Q`YgX76mjvA-VE!x8F6XdCpK=BmHNe!HF5cuBT#Kc0%l@;
zg}x7yvh*8fmXsQ@<;ZMCEh6jnl@_?qcWg%~#xABTQ-^o^c4>sk4!WWoQ#vpayYZ-6
zo%6RT*22M5=hNSM?e`%yWn{pbPv5Pdx4{4j%0&2^X2awKPC3jfbzPmq`P8x7!q$4F
zZhN2_Rg|%x<IKX$e=)<V+}Le+dyOwaW8+n?HPU951p;h}7@S#|?E|=h>sjBp@52Ly
z{ISNjU6&7OT=3Q@tmrTlr;@@l9yTGjlUe&;!oxL<H?TSHE<WgJqp4G%>~+)O=_4K9
zKgKSDctmbKHMNNMPzP166?muDE0b86;tnd80bLO5C{zX&m%!#j8K4@2Cv2@fcYedJ
zt$t)ro?<@Q0F)rgD7<DZ_OUS(F2dfV{nZc-i)ZbwcKO`Kq)mB+Tx{skh?^v_8d7@L
zLnH{oI_e*(m>4*mfgmIvJym>h=@#Mi;5e)K)bvQF8TP#cnAi~(B>CDc#y8h9NG0BW
zG8bT0Tf2|cgcZdW^8sJmg-fr(Zjj@|La;=0$yyEM*_sgUo-G00$P_~I()IY>N&A1W
zcoIhWFBUzKy8w!h&>8$&PtwK3D$D61`)jmpx$k$Z_}};k*BiKPC?IUy#P_r`tnRYw
zMDTkLP=!fzj76ld8$`H|m?gdTE2B{zpJx&VcIL<~j`=wVr}w^U0-%J$Bd}>-oc%mJ
zzWnLcFYjg>tDD!SLxs1NrfHBV#Lg3urt(JvLEqY;mm^@)-G4v6^;N$Z7_6ow&B>UU
z)rN?;l+pJKQ5w)UO-Wcc>1)?I0i5K}7fD11lP_=mzQ#yHbIEUBC|?iTT)>^gINx!Q
zc6QRyt4rb{$B?U|ErU(&E(itzhBy|8BJ^$D(HSGw4u3t`rhqck;Q1cdjjqa?fa^%T
zYh=H}1VJCf522@DV7|Q1v8ZA;AP_@l1&|PB8t?{j1;p;68}d^I&?ikv<3i9r&c2r+
z6#vo5<iW0q_a;sDHAtQG|DD{AzhYv3ylZXCxjX_A6_alBc-kE-zE|eop5S-lpbKm>
z;O~bYNT{5H%|B+pyA;v^LI7gvdqm{+J-eM7A|JZ2XQqean?eW|UIR-ncm_U%1F?Rw
zeR3s0)|lJ<9`5|>sBq`c4p^_SnRp=7Aqky;?G3}hLD*&ucEGfi`qI#qF5ib2n}^>6
zJ=$4(pH97Rv-@ROob<mvJNLrwnOH@qrE3G~MX~R~>cGVPC{37A45joWy9J}pi=<(9
zG;7q~bFILhtJomn6uSlpD<Yx_rubY&GN=9_N*FJi`>Q{jT7QRkTk>vBNz;Gg`zhhE
z)ztI{?5hnhSWzfeb8<(q+MiW@N&E&6&)OMl0$v1jxEFwtIFAi;mBV6G#lc(L*R!Q^
zuao`WP;hYxjnITu|Ku{SM@0-rMrAn`nLogtsX9*2au@CZ19cbd-JF^F!I7W6F!>W>
z>+ZB<St!{9M#n_~s@;(80NE7tMZk?e7t!rN&sYG_9mGxEviodFoEs^BmE7KuG0GJX
z>g^|{<5v!@R~CzUVmnglIAeeWPOQS+W}A~i%94oeH?I)HWJPMijz)Q3zez^@_I;?}
zHBSIllz|6TY;o(U5ZcFkeWec!P2TJ5vL3TL=KGN1fbw*Jk^@Tqzz!Y$ekTj9L=x=t
ze@efo<G;WBE1CM({qbd*U)b)yj2|*9J0r4v?ZJoy-J#8u-<M0F01kE-EGPlNU0+LF
zrZ<t2B~7!p2QgUz%DMh+m5f5rwO*p>i5vfWu%KWBSot(2I+Xuw8UgJWSN>gzp^o1L
zc6H=;>QRyN-<jd^7GI<>TL1B+6o9ncwFgVYa_J-g6TIvb=skTfs`0|x;O2x1V^Xn0
zgz5-&;#XWu1UtQoH8?8C86sXML~vyQ!)s=937x@~eKxseH^RE48{CdNh`&=>p=F@}
zRs=wSv<J@K=cf#G)_}iS+3i%Pl*64UG8#*6e&MnCeYwN0m9RdP8Fo4^@ng8X;IYcr
zwNBxFpBILCQ{oPbL$a=Rj3#$@t6NEE$^u5bRQjmg48twgTyh+bEjS=Y8lsQed;gaG
zt}atxm>H)@J1c&mg5R}*44+P```B3a<FHy<kD`4{QijwX(wL*V@$>>o8=M(3Fg&{N
z!E22?S&^#Aa59*VDY~ikzgmDQ`c_;m2sLh_bGf{ZE32yO_zl{#opro08OC?SKEH?@
za&7AS1SjmUbh3N=d$`ZLf#sZ`)jPnLC%}j}Zk45@Cn)nGyRl;ZpuRNKwWT3xWnC@`
zdW0|S=LSEv<RMr3k=|{-8B64~w1`Ttt-4DcKA>b|EJS8Q=u?+k!xT5~aOT*k$mH;7
zrRoB&jB^%kCqtG@pv*aYY^aC3_SjISwpP!>e$b`Z9!|`1XV?#Z5|Jwcd!N?SMW;={
zVZd{bKeSG*(h;$GH{+vmYIOr!PL3G6L!zdmhb`hHv7xe3xkCVS@t1W=tI>ck1Egy=
z*>vCfxX!#S@@FgrpY6yw$DxdZc7jBvbP@fm*81LcIXNkJK~q>R0Zvdtahzo@5&1T;
zAcK&Us00j;OcIng(!U}qG{AVLqh3Vn^KkTM?+*`&4h#<swO~Ea;9H!H2|PKCn6i_r
zRGXN1`VmjjTtP_S@B@nMo$if!2QBtmlUoS|vXQ&iaB(^}JLR9c2YXaw4G~Zc2`qQ!
z9J0w@ZrlOVM*+;q?T+oje3=8_=^;}`Tgg#zooEfYMo355Vl3h9Vk>iU%M?ONUm%A9
z7B9?V^>jq`0I33#sC|!zp|FZ9Q+34KG2W%CmPY5MsVxj=kBy$!%KQj{hKm7}G2l;b
zOEiY`Ix_h`Q0`(h(GUoHN%}-ulK(_#(=vrlhtl%y2ZoFTnNj_g*YVZo1&tMF*@9W}
z$xZoCAEd5Da7g<VuOs~gRF$loB3An+bZLNSmC)j^U-Dlk@vzT5$<pG`u2!nAx2V?D
zTCw|j>c!42f4cYMF6Rw1HPG1iC(btxZng4U8)qL0^=^g*S+4T-+>b?wH${-_-%yB`
zF=f_ni*2}g+}~~TBw879i+h!am$%md*B%r#f__w+uh<4!+Jp2I<9S7w&=T>haqEYg
z1)kr;_o$=G>*uaK<z`5qs{vA=*@d0-T_g%LgT>fjB&l=J1=$LKuyibMrUvFcsQXdD
zt9<5ntsX~#9QwIKp4G;}-QE2eFAU|4ovkSII=Zr@e{0iT>`+y)ckD%Xxx{Pg^Mp~$
zTcb<SsIRvs7e85t3#HmvEOP{_$>g%H!*glIofK?6PSE$gyc$igPx_m9r{XqmIgzdQ
z>~@u_SFvy5-dK^q1{Vim+DKxptxxCDxobG;MOp;Am5<e%(pVRhJUYqc1(iU$8JC}D
zvI%#j1Q^?b&vw{OD&}|@Q2LeEiRx4^8}(J0XO9vt(qsd6-X-){Z)`M%$3TWYn!WNP
zfG%RK!K@UH6e>~RHiQ`5YF*?&0-kgwKxir6!YN0(w^K}}^L2eeK`O@Ddd&QzmDV=G
zSU`cF>>XXl4W4CN+5K-C`^G@+s*bg_!yhjSIa)2({?^rh9QB8Cu5j#RbaY7udd4pL
zDHbz)aW#dYg~fGEJjLhFik{g$s!mfPdHSo*UZbX9Jy<iCDsGJlUPid96h(Uxs4*00
zV{x*brCE04@$e_mbK`iXV5c!3LG@~wqoibz33eF_xSp*hCL+h5+bmO>Ng`L_EWS!t
z&-`w?sOmf&p<6{DYH1O_?>OjUQ#3U_vZ>NxAvWvQ78h^$7k;3u&X(Fw=zLJJ0gmw|
zv$a@R+Jm%j9#@jfH2TzIu`AlqyeT5d1xnojk?yb=D7#ZmZnZ$jynJT+>FMld!%(H*
zc!jJ|PRcJ~m4&HwYwNRSVDx#SwZlw>_D2Xa61vdH%DFd(A7sL-%axVB==CYzdbJ$}
zM6e^@0F0K_g?Wm#qD-2U5}$)9f#+3J8Y}cZ=w~|vsY{yh<K1=AtpU@TY9o2M(uHU6
z4VLhmXo>3{2NU{X3iVV6OBsy^#xwWrGpFWKO-<azN-th#^<4cXPLPRzY=*)=4&OGO
zc@uXLtkXM}%EaC2)c>=mhZg(LHzT#@GY}eyNpP0oQ9Ypo<|eweVtu}$xh)_lPU`S7
zJUn*C1A{;ajtQSvqwGCyxu`vg)IbjpRTkGb`e^fCXNi#)EiqadAkqKCxAiS@Rk&op
zxKFPG+?^aYq2P4t7%bzpJ^!{!*(ljJ%-fUVrMtel#1YrXUev3&9P-UY*eetjUKRxG
zmhZM0R)0ymGmoClwxXSY56?+J-*dSzC`KfmT!s(Ft)76B6CIxLq0ecMHJke~vbXv+
zHrBsDyHZF~o<`7evF8lgu=Vr8-hMnw?nKAkM<1~oh4gyV=%9Wv0BoLAo7j|7zA?1p
zyCd`vAxw%`A+6$)Nxa3BBGdS{Ow(7X6CXpd*7wfdtEj%Ml0EvUSGCfAIxc}r81b=|
z+D71f+EQpyc6<NrTLrkYj4vk!v8<At5JLp|i>AVPkNo$y0A~VO@92;B)l*NtpbSLi
zpDvGJE9vb$Qnj_TvY5A1;kkJs30wO$HGimUqrd#v=|S-+c}Akv-2yDjW%mOtyGcNw
zig29kHmnZx>g)al%;L{LIKoelbGGZ$-rWZ>!x67`W#ECTBiX(DUO;1uhIR_A4W{Yb
zytO47XUZFf_GL6XKu=;8STrQoTG}+0@&hW)ng2H7rx(@LiO5^34<#vzeysXARV;3=
zvi!ojBE{pr_ObWFqoOOHS}*DwEB46MIHBnX;M`249vb8LvMEAA#BSa#9N;Juhi^8`
zK50rkt<#P&Z3%2%b?>s<jJ<UssU1x5rP96oKw39{NmQd7n#$D;R-DL3ns5fc!*_)2
zHG8<iNU>&Litj@+UZ{Rg=B$A#QLySqSL4GDCeNUIEH^I<XG87=s?Qz`mt=0JBYE%+
zeb2-cWIFBg%|WMWT)3TjRE-D1D+oArIl8nVhXPM2e1`{<wN|RQUr#moMAX$wn=UUU
zCMM1kcPDErXQo#02Jme>Dq}BBg9Nb;#|8!6t~oH_0Zv8iXsbz7#cl^_Lt1aQzxLAM
zOxsBgd5351{;8H~itoqoa!8@3?EUJqf`S6vJPvX5n4$D)EeQM?eU03{H*7S}9XM5c
zBdSVrE4@*}H{F{{lC<~Lyg27C;%yKo8Wr_<DgtNkjnAHO%vHX}KErvN8YfMZ;S~?&
zTr}f`>Pqi3!=ht8lHgM#xyYZ)eN+~8>wm9Q7Z;P94DS%tEO0O>EIO#FOwn^nt;Rg_
zj`%Mr_G`3(Dg+N&C9vuhb3hjhMCivykkt8r0s)k!y7HK-;p559n+hThm8gt7*BVQs
zs#I$$n-ncw>YA0S+nUUB>$V8NC{@Uw-#%f63M>@e-re!b7=eJQ{#&2oTXB|oON<TX
zlwE^2xj)WzLqe&@YWo;j`95ggX0a5zujxM7*tA(27HTZ~LsY%-Ycbpt5P*#8RN5ds
zB$(9wBWCqUxb{_P<2?pto{h{O@Tr`{o!&LHVu|cz2lV(cEC@#oFiG3D%SWkDFr~l`
z{^mK-bk=Q0s`QlTr=2z&L7DoU9pQmB>h)-@*QZ^H`Xj?b`#HIX<K3pI#Id9nYWmt^
z#%kQqQiN~<t*LJyyhdV;fvoRj$~tD0c{$SeA%px_m5Z|-`=q<%-7KD1$JFX`T^pbK
z9-heY$v@kKCdXN*w?d-&4FCe}_ehIg7;+LHKcyOb{<mu!c_lsb_5@G+1;|H|z79pX
zH5YoB64ISjnrHCpGqOj?*7R{)*wC`tQjm}A30$m5vT52PR%fL4+1chxTb){TFPM|1
zlcS}xtJKyO3pM51s~wJ(kv67q?6EdSHG@TbA$JfxRt!Z&T?wGPn=@<+g6>i?y%H}!
zb!TV#c}sRXeBG?E@eF^U(q_&?M4s!{uQju0>ue7+H3_d@IU|c-wyL&&yhLS~f!5!x
zs+7;2F54(BUMw}m9UU%{?;BKd5|OPCJ@6k(+G;aMn-c>vY2L<B1%XQI9b$_Z4|=-)
zEyZ(N1HMNmld`NQ!Bdpccu_YHJNYSSW&P~TMUMP#;(Xz%gX@_}{?f~$UyaS*G0H9S
zfu<$cBH{mya`PC@!wc%&74JHG&7V#nkHLkB)u(Y2zm-BtBu(Y$jt5-zY-C1HP6P#y
zkGCgpoy1#@1t@7B$4Pr9=wWz;VoP*>jScN@#JFM-(tjy9DZsOp0!wot-JbcY+pnnr
zXAZRV3kqTI3!z5YDuHGa2ulAJoXR4c#wgHWBr_FyXaA$66A_V)byhIfk9Wn@=M_Z-
z>qX3%x~Se8_c<dw%FA%G#&!Ag*Tj9efUv>$k$p1^O$m%i!U{wSpM4B=YGz|6wZ>(S
z*zqYSdY6_~$Mn9an{RAfl+0alEkxJaEFlni@zzLP4mhEBTeq~b2Db3e4o7)Nn2);5
zSiuPbgO@0(pet2?B#C(xSpr=(BU|j4*62v5>u?;K{{B&ShsTQ1RrE0I?OR*;d6AKj
zmEqd4M5a~L`0%7iTjsQav!tnH@&7yJp#MNXbH@}il%+!FF)p@oyDyp|+PV(M*~6Gl
z_p}opWqvU$E-67w23*f*O^gB_ueY|`P&QSx&#}|gr>3-wQ*)m|m(qpwQNAG7RHbR)
zET2-tSA16dwx{4fNf|eZHA~TnM|jj_CsH>#IMdtD3&|D!xtMoskCD}RbQD%H|HAD4
z)_}5l+)mEEbjk4*|Bj@_m{!Q2-u@en{S)`@4hxHBSy=w%FI)?6tAh5^tw`(hrc-Yg
z+B)v;?L`~PgAgS}>R8YsUqNh);dpeEjcwRr-C99(f==^u3T2TAH&$D4F@lNhv6&4b
z($TmnLc7xEkFEl6UorGyEqDCpnLMBJ$*(bPGOvX{@+yhm>En4)+@lj0&VN>Do2{)S
z&s4QzWnyO5m)T3o)F9{+4xz;$fA%TxhtUIVHO(+QzCo7<WBN^^FO;p&SJr$vQOWkA
ztCxYy@mIyZAY8BbFl!#@LT`+_&1mJWzESDCkx>35%dr~>3nJ$oQ|_0nCWLnkzWU1V
za83nL1Glg0HvrL9+!wlbGM5Np3Kb@YI1J(4CqIW$^xAJ`_bm$}_sG`p3{NC9yF%u&
z4#n9*_v#yTOD@)2y1Sj`H$@;|8{zgkwVcOchy!$~NQpCf`&|`J%<J+2E2mgJ{Jlxk
z{A2#V+7irc8marTy7sEoU2<bhO)@{}&tLXUKBaPBF@LnxtrYIlHjqPt{5YpTE621c
zBits9HOsjBi$6yPdJ9}@QAXg3kNrv9#flvWVw75g#BH7QHw}wrn6KSF&Os;fUVQ$v
zz)-<G!CXZgekOII2&}PajO949pkNd`H_!P<CJEu0)*bsi2QXWhEiQ}uQ;UOwm5AcE
zdXy?G#!B)G6-ZYPSnaFObqb@0ZFN2~-!G8mwXn~rEN%QNBYg+T9gPAD3XH?tz%vI2
z3s1HsC9V+rtSn#9p*@1O+)GY4abS=SC$#z19={ldLV$N<(mj|7K@nVjnV+Lzs=ziE
zv1mQ=gbBSp{Z`IzUO>)|gh7uUJ^GX?HpGN?ucCsR6!FQ++PZ9ic<|x}s`2p<;-#se
zW;>X<SY(3__F7#uH*u|(#Tw*WuE+f-7PZ<MAq1rj2^UX1ALTdbESf_q7CCbu<L(|3
zNJT%)&eM~k`zyP`XL$T{XmV%>F}|0E(roPttv)EmqUFDatdx5%%7v0iS+Xg@BPD)w
zOayFqUqT?b@j}`_K0Y+nsMi;e_H2Tfb<xcdxEGVG#+c~4{bR^5nH%A!#z2rc=3K#0
z6C-1N=P8pz`>A2{NCm0=t8ga?`A$sb+qb&;hF~3Of49hr4pBzf;%!#pF^HvWW7q@*
zTpLlqPb$bcO{r+NKTVpu5cP1O(o^+X_c<-w=YRORPe5Jb)@}InTVL?BvlY!(|20Px
zjq7O>2$*{aPBA?@IhjZiEGJS&*w){-LR=CwVvrRp*nKzcsNK)h@$l-S%jttb;&>dX
z_1-=P8%2I3o5JEfZjC8{izRgV8<U74&bj=u#?JYRdwk~ee#%+Vq}vs_>uYsmvO5Pf
z`eotnD>+HJrB^gXb=7&jjhyzfdDMo-HHU^T^1FQ4Kpmf3b>1lIy3jkwIgEe43yhBM
zJ5qPO;@f2sT)yeWvjP0V+i5Q7u#tY=ZIl)D!S}*K(*$o&g^AuwNxACpU2iEM*f`gx
zaB$|Y80V}qJXy?s{g332aP}#_&-=*~2+M}@lA5eee9myGeG|CZ;{%sVja`q?T2zqN
z7Q_64k_ckW_Jl(0Bk_Q0bd5*<N}^z?Haw|Hd&-$$f#*{|tI)nEy)qikypt1_n3zc{
zpTIE_<DHIZd2b|0Kj7(VB-h=Gf2$*zqfw@?SBmND%W97Wd8&G-dwCyfurAoO-dE}q
z{H2ecZq}g`$9yo8Jf3q8rMt;#YhgjnBYEmQrR_<6USb9{)~hX=WX307bxV6z5(nAp
zg?~jB#g7bb6@Grx-A6*tli2El@DT~Ov#ylVC#RG;x70{)WC%-lZx!h8?v1i44ftUu
z)H~$tL}hV{h5`)iOZlhA0Q|j;+BV<h@<;sBX>#!UUwlQCTi!*Nc?QRw0+e#{edG<0
z9>&y>0~AZ`z3X3c_^lXqN^9gOhGq88&Sb}3U0C6?1XX4%?mu)9<BkQ!wtfE{l{VIT
zOVdDfPdjTOw3Ccdcl;*`2WTPGpi;^HX|E2x?E8>dxX@?iyAI{a_pmTY+KcCDZ@%4L
zZF%VM=h0anEqixvsO>@|L?z4}t3yS|Y5%#6xHaD~GY6=)C0kmbj6?5H#*a_;Jvgd0
z`U0LPY#(nbR-2Lt3Q%pGCEgdBs~EN(-9=DUfTm(Lzi}s-Bg0Bfzs!0`eE<55{q0LY
zhK%kw4_`SL=k{CeTRxW(k?bqHB4V>V=jgP@FTPOIk;+)1<#cpi$Pg=m88`_n%d;Km
zK)(Ek=qTwvZ`U%&9tDL;nmpSeinY*U3vbNI%j=w{CURKX?-l=(n7O(V&{5FvU3xE4
zl+tUL_5bUt#UtuoU^3Yn*2^=3E4}=UapiOd?M8VEQ+hF-4qsMRYE-w`3I27ml$4Wu
z)_Y@8LtFdqbyJ&|<u6LP%AA>|`MQGbG*E)FT^P63e3;is%?n(9mu_!4m`)d@&+^%H
z?eRN?-{V%uiXk{Z{(Ld|>(?8pW*v$So}r-zH=uQkJn~<v^-Dxo`i|(-(h&#&L7#RS
zDAC<cjO&vnM}@ZE;u4MNEvDM=@0S_X?gU!nC%N?`H7jdt6VynCeWF1N6OgYgm7c#{
z-Ek8Z$jg&-85q#{T2ga7c7Kpt@U};u@daD|W8^J5wUmhzS<eyL#Yl+Xo0CLBm#5Mq
zRQ4N8N^dtlG-wa3ViDL0hv-RZS}QO58)(Fi#Sve4PC>y$W1f5eTF~}n1)JRDMn>F%
zO@3j$i=ld3ceTKN&&rCWOVaYfVr%Kk>HxUfcExhmk<;?7DODyIK<xaD8N{Ss3nEA%
zvoZ`ehqYRFzDr1=JrkMcTzpSbShLga`Kc4GP3``=n8mGfj`;p`UdM3%;Gk{qke!H{
zs_O4o$_~zwPTf9W&<V;;feFWY<BbTeklg4wEwy2^8_h@1J#0JJ6g!Oc(mGtcx9=a{
z%TBiK*)z@N(;=S8QsN#b{qt9@^wSjx`#v$DKjRX9ZCE@UT}iSME;Br!gMOu3mY!W_
zm|cr`vmAv?6+1c$J?WfjX2!-65kBBh0Xi_3CnoQV@`Hn;2}<!8(fx0HAij5p|8-}q
zXsii-Z=}`Hxnv1%d}|)B{Fi#iM*9bJ0+yCpD1@aFMIM4m7HDh2Dg|3Iy9KT4L6G-q
z$M<{^URw<Iyv5F+LcgU5!!sJM8_P2?3A;gFy83&y=ln_np5huy>E8Am2S2$ZYkZl$
zk4d}-)w{&WB$hli%NNqpYm)J=IrK+g={k%y6_+CDD=LI9a@p^Z&{K+-JBKB7uf0j8
z8~!YNK0#1O@RQ)Am;W=OlNt_T6Gif`xIt;cW`1=OV6NdS-l`O?@$f@MT>r{@f68&V
z`ACF4YGza}`QlNPgY4)O`$4>nI{gU&m5jod>cWhyg@Lx*TqfG($gSDVeiHgR6Cl$U
zXui)2=OGdbNo%$C_3C|}RfZZiH=M(%j>1SPe_?;s`P$WP12Fz=qMc%wbpJ^nQrNYj
z0tXJ{6xkEQM`}}#{q5aJc%AZjj^G>xLcUK3l9tObHAUcjdVj1WE&`)2Z2J2`YTuS4
z`H=_%n!4Wp<Pi8Dne56+=P0O%KdpFE2Ksv~pflS)B(B~3KA=~bx>Qvh{4TWQ)Q6);
z1O?3!mObHP#7}f+m;YOz8tOm1z{tCL_I;PTuTKYQpxEnloXvT&R;Ox2tBOZdJzKJB
zW<yg3la{c0o7AkQ(LF7iv%Y2(Hn(SUj6_{3^u#3W7I(5IjtuhGyZ2|wb3h>YHXBZp
z|AiBJs29t+0Fahxtl=`li*)}c9J*4Vn!`=%?^?*Mt6RGwASg=FkuB{Wke5p0M?dj8
zYX?yyppd(|a(wkM)?rcO_U-*Im$bV(fJBS$=1mzk%Yx_%s)Ie*$8!#a%PXS~`oHO%
z<uAusR3wS;KjC|0Wv#wgU6GvJP0ybLbrTRki%pb1EN*hauN8zkqMQ=s<r|4Zq|2Hn
zqC5!qJOwQ+<sF8J3OyASq#LBE3W8Ylbo<d2!O@^SOq>imkGYBX-f_DxTpFOvv&TBv
zjN{vXVjWM*_Aq~JMje$iP<UWn;Z#1S&0d8YaOpSm#8NN&is<y06TasHAr|?b+z9#-
z+e*Xk^J(K_R*LwA(g+&aA(<ZpXqfcIQF#l7VreVn9k<lFqi(s-XYEDfYwJ25odI6m
zC_A0Kv+YkE-gG;IHbX)s8M6l{sI-x>Z;Av<plx@vS`xXDAhG+D)t$4Wmv3e1rqP#l
z#b4-4uBGuewdK#x1$sjVE2yJS4GRxN>UgAy+X_{c>MUon<POFr1tIJMyUmX~KG^F;
zyf#C<C%%0qrF(3|gG6eSZW-6U+^s9A+&6Fa7FIvz-fMR(8rK#|I6eCA=q`voFll1k
zMh)J~na>!=-~~eD;nCU-rID28v-a%0m{jVdETbKbnm-v(`pA{~Rrj$wtY@;?7lb{k
zP}$v|<hEHI(kq4JD4GX5k@mb-_1_eNuQaebE$d~P5&@<mGq=lX!nanYRIE2I)ZgA_
zd1b|c)`Lv_$Y-y!T)w2Bv|U|(ZEgI8H0T9(TKxes`wvnLiN}nekU?i(-c8u!@v@Hw
z)cM(U4R$juoYd)XDDSdodV9$o`^`-`9evt<drrgP?3}`Hr`&eEf(yGdbwt?Trxw$z
zwo1ecAxnT9{ecrl(tk`kk6wpf8#9<ROXlV#`+3Gn=gQ5A^kzMh?xj^5w3$4NfXhch
zQKzdgKonpuwm*CfRgZjUBB<96jy7*L(gPJsP8v$u{cNzckD1v_u1kqpO_g4{C1O^p
z-{D!2#I3NlbSRAF-3)wiP;qiMy#13^X^`Sp*Y0XT&fR+8#&XI+iqs#CHxR}yRySKS
zq-ZcNmm4;ivRQvb-El!+sDx)Qz_(pdfkHpuD-u{+=w?)E@o<(O?28z(e7$CennKWa
ze%91mCoO`368xmv({T2N=?>3N3Xg&c8CyEbCAVw4tW|x4Tu<h@lUx+5L07QnIJ9zV
z$IUd|WMHKC1a^vcNS|U}uKzPb*BenTB+5?a+(6pQZD$dzlb0dI+R@yspYqksfjS2A
z%ny=q+ak)Ql@ftBvCSEkUwk6P0$Vfb6Cg$tsR_xsnd4W5Qv1Avw-NvDe6rMc5ucCl
zQdd}8v&!Uvgm&&0PV6L11~)s9H?EOye})tQROu8Cr>&*D7t#?6-sa%tlct}#yUk@k
zeKkStaiyx>odRG(U6eziHEjE1-RX7<4R^r!c7JP~0jPrz47i}zMRV@)!vh1{()W%_
zcC>Gx8{Q1<R11YOswI={Q~fSMO~D&RC$#B-2`IAoP*H?cA{-cPCybIKyw_`if2B!Z
zD$@|5<yO>bMi4}vu*wBzc5u5_l9LPbXzoo|Q|HjX&v2`1FtcCb)f;Fw*KXn#^fqb0
zKH&D+te3(MlY<C#*kO{{*q*(=C4Q$)=ubP&5mfFwsVs|(@ud0RE12Ijn3T~`0Wp7Q
z3XG0eA0FYLI$W;eVTImmV+A`6gTHvDA_<D{_m-T@E<n9olYZ&QP_6%1$w;P!8(-)v
zH);JU*@KRHI!=xKvH;03>g;rAK1AGqdn*|$kI?o`L;wfl+vqexC|QXSn#-|))3gZv
zvHbZoXW^zomZ{4kh9#djo5oe{!l=)OmViK8e!Q+aoC#9vC(#nvG;8&KA5TW}_a9)N
zUHJ>9J_$THx&jJuD2DQ?=Jr`;K5-k%9ZOrAEm{COE}D50B7xG#aiWjW95H>P)RWu{
z+mu$Qe%ttDwuF1(kmx)<DURMNvodc-nZ8v8;;4NMpJ8R3-wASQbGbyMy%SVZrRMuk
zISD&^*f$<O)=e^ZJ&$MBKbx77kO|FhDo_~UYbcIu7gOx&-tKDZ%?nnm&cpZoKxT!Q
zv^P^ZMk}fdef8@F+X-UCr<fJG72s?50^6qA>&iV>y<$#wa+uy=R1SKAO&D+!UuJ7+
zr=s&_d%tguvatW=tnnB=$bsw<tn~v{?(Bcc^}lQQ%)Nkjr3vwr_@p(VeZ~S{%>YTN
z<%nIWA-y=1Q``E;Z}AwY5#vkTad6HSX*#_}t$@lebd7-;Spt}*ndw`XS0C&Jct><a
zJG5-(h?O5gO@c^q64fO}Zxd~NNxU$wtAhnrSJQm{-5qZC^@Df7Tx{NK_#@Vs=$J(h
z-mz!?*n!mk4rBw|LEz;6ZCKD?7)6hpyb>T90@Zu8HKX!oi`Li1X_pIG{5P_nLyc}T
z<1F`GWe`PSx(M-ohc7<e1y62-NB0+`lcJq8uTmgr2O%j<)4+vG@*xTZ0#bc*z7O@s
zD=Px|!(p2O3H}pu%|cb((;x5OcY#xRO8(0$7`XxspqP&{7!3FxXI$9&)q~|Beo##f
zD^lR#|F1IAlD~md1L-m2a7{#TWa_yS)QIu#Qb;gVl@<ojth~0C$R_u`q6+?`jHtSK
zD({Twq=-*sg|6xzzn(6(l~?$rA&J|CzuQf6=kNvx<U$OlQbWGklnF5=#qKD7014|}
zywHRWu2+=MKtVX&HJ&(B$Y*jH?f@a6#5YM{DO1qwYv6?H!|icfQent}+n;EReAzz-
z(R|q#DDH%{24IDul#R1xiYez2xPp3ahOm6e4$jr<^uGt!#)zDEs^({f=xtUGBW0`p
zA+o?6zm}Bi{wEiL0%EVusH7l+8ev^>+mYgx5r{oT*tN;JR*<`nO=fdfXA5=hR784A
zTx~aEkXj(c&*eNZ$^E+Jj|$Z4f7+tCc&#?n-1zl|)fL~q*K9|^53iWwXZ-N|)bX`I
z+e0|vt70EXv;0c|?_cTqLP8dOQkD=qDfScxYu2O-;EAULzBdU1Ter?=@4)uMnK#F$
zr9zJc;%Xe-Yaa<p_U(K&OmuYD)W7JZx+~i7$r6%;Cj&T1P`f`oaYhf%5O3u~Z`9n;
zFAfGq%3CB{>(P?h3FZg^0s;`kJNLfWh$!bY7%9Ui=}5|fqEeXneXN8VA6(CFeFmhp
zA>%qsy1Oz+UzBCp|IJNn`@w9V^8n8j<%xyR#+?^jx_v{wMZ6oUUvjD=ASw-*CfpP%
zr|j|Tjk<)g08S%#6ca=@L9zXDva?gZ_rPM%dOV)3lc+(WZ{o9I%}Ej?woX+1E^g?^
zq}!=?I1D%<zsA*FZn`8YNN{EtI`5XZB+75MvtVXfD=_uC5J9_l-{7m+Z3)~@h#5%X
zyl4L1u>ql1rQlJh@vm;pZoQz)knf2pm9tGTSAju~+|L1<6`lBxoD2z$W8MLpdF}G4
zBfm>RaeMc7;`@^Tnba$HO@K-c*k!&`bOv?wz<ri9ixtQ)`#XkR4;SitH8$w>*5g#I
zqk$pkfcqTIa#S?8kNK#Z%t`O;DD)f(VPWJexLO$W%-gE#6-{G_m&I}{&lU#W{>)k+
zp!M)bi!d>%|ENrR=JGiiF_8t8ICp%DqW41OyG&biBwKFVVFdcR^xm}gO8vIw^!upK
zBQ$!>htv3YoDm=TDj8}@h3Q7v`vRH&$1rOT<L*)H`cqc<5|7`7@piy<5849vW#~yf
zSoA-*LKQU?J*P1~PEk+`(MEOFQv2125O&#)uBGStjXDZQ17Oolf2GLv(OR7W2~gDs
zDA_5@3EdunXO>6>TZJb%wuIHU1?L$wU%%b>&jA=+F-1X}_<kC7L{r2!mxGXa?E4|$
z<}Pls&hc`DciCQRNh)1>u&G?pB2raTq6%4k*zH?bTlX*KeI7<gsqZ5w5Uw|Ab_)lm
z_b>BqA>og41L!kGMywtEZ(M9ZR1WDMRCUn9?Evi6YdRJ0aFlFQgxOO1{8f(ND@d&<
z+N+>}7<pYa#0b85g?dRmQWFZ{k@f)A;GR<>6XhNJ4*6@hx2J!Syp$WIKMPwkOhqZZ
zGC3FsZ{K~ox0drtxs$C!-97rSWgl<Rn)Vs!ujw4e!2PpG<*fJSHU*H^_FKxgfpnQ=
zMXIg^KUNpgP(wRxE0`STqCSqExD7TVb*=19$8xh`!;y5L2ZIaTUMRNlPB;~#0zg^s
zSEtn!9<U1ZO;4NRc#06OowbJw7qxR6?*5HzF3X6R9c>YrEYQ~1OA_lGpP8gj_S5-)
zB6AD3Nsa<+R>XZ1(^Xo$@$soFxQ+3hBFVwiu{@n~g`y+B!qynMydF9uXz~p>LN-n4
zhKHoalHd>w=3}w*ZYL#j0NjbY2_c*)%{r<QV!g+Yj|9BAkTbU7z@L1`hqSr~7eoGI
za!rtZ<P(rJ<Fo29Qb(INl&;P~LF%+g)x@IST?PtW&QQ9oNu+)eq6#kG-AS1LMkjZb
zywq%96GH%erLj7tyG=1CFL{x;rCeX8S55GErq4Z>^`HzX=<UMIW8D5c`B-{0TZ)O8
zeEY4Vr961{!*}hcYdO!G_GM$zB9pF^iCNm~V{JY>KWCS;u&?ITiQr@-M0-TASr#PW
zVAY%7XLg*WM(;hDi_bl(QjgTEOGM?^G)~%n^)g;Njh*dy01Y^b^Md5c01ho#%UpsL
z?bBkOr8>;=ndX_-{aCG&8}0QG=$d<seO<5)7f=05Q$hcDIU3k!52hOG2PLow3e4L@
zP*hIzBX9V_8tRN)!(%EwE9N@(#Wq(b+}vKM>L1*OXMl%pyy&^jc)_B^rCjZGM?Q#z
z=Fh~0G@1_HM5a2x9;Tyq@i-v)t@}Y?rUd@_{wH+9n}8e?^ordOt~?xPgEtbB{mx}B
zs-HFI2#({7_*fL7VkfpCJXhAHSGMAaeb=du1E*9iESq%(*}w|(`>@4fuHNmPZRTue
zIv*W5Vr}c>VwdXvvGpALGSdGVG<EAf-00fk`|ZQ-2BsKvW#gv-+XDV9d&tH2TziKz
zvA$<-pQpUyZ#<g7UbS#_!!GYl(+{qK+&D)K@IX+7XvuVo8944awdYi>Sh2ovlFfB{
zaq(}XT%WcdzH@B@Q$^N0A}FBq!EtamG+Ms(5IRHtwmq;dpsEt?4op<Q)70u&MULR7
zJL(|{`y=<FQe*r#X9xPvEJ`6Xdy0z@_};u-#G`-=m8epV#=-$!2)RT@mj!L5qiW`m
ziV6?+g>nlCanf$ARl)2w0=I8Bpyq?@CRiYS>C;V)5nsuJ2qi$G5}*2iVl=dQ^H`u^
zxzMkTr^53Q1~W+uZuY-4cI)^}Ma=eK2Q+Tdm&QKpM)_g3P|xYz?Qn1j@;Aes)GEKO
z%VORyQZyFt5Cks<B~a)*%2h%z&7@42B`&9j9Mrd=ZgTXZj~8m@z8--r^p^kPML-^;
zWox)-l7KdH^Cj^ye^CKV9(Y<Ju>OtlYL9rzD2;`2+Tvc0Bq}!C9TFfks|W;LU-*3D
z=S6mJrwE%Rtvzs?yulDO-tg$i;-?82RF%bO03A=0cV0vFas2C!*Ccd<?N0BKsOg8z
z<HC8+6twqQEXq-@k+l86_Up)UnL;wsWr?Wz|2$4l+A|7eqnG(y51W$@daD})*KXX$
zP`T>8>4NNN#*nT2{V#wW5$hAY>@Ry`<Gx)GYS6ffQSWH|t6N?cZMti0ZTGzov%E?9
zz5+$g((`q(!Bwn72i0m|RxrrdZwkoja|$1g4=rYyM)S9Jt<Vm_b7OY#FLtz_>mMsb
z)q6e|et2;*Re7+e%NEtqP3nfyov58T&fE)!kD8Z;X>5u6B{bL8ij3^hs;3*^O`JPC
zf%vzh1)J4wAr(%I$h=oveu4Q$O5HTbdS@-#)b)mKVPu$7Rg17enS`XS(;|CH17=NF
z2dct}7Jw9H+JxIP`;V)Hdv;Qz!(wIfM)Y!oy47|7DO})L-&M9$YmOMYpDK;z-oc&f
zl2iql$E(#2J14x2?W#W;bMw?2e$UT>0t?Hw7D66ST+q%QMKDo1mHDz%;Je=J;*=gK
zvqNl$SzcRDv<jy5v;AS48ZAL0?HQ-~Eii*qZ&1?nU^#uBjE-mD#xuLs`7Nrfyy~I$
zmt!68@D5Bnk*Ur4p<)|Pp@DaZwHANdoahY@jd|C3ZFL<0PN%)-X{x4(&{M1LJIJ3`
z{MR0@hTTAW&boOSR~bwZ(f>$!G9%})abBT`oXr1xR{g3-Gu?T$#i7dH4oIKkPl(s`
zy~XQ>p1YdB=U^wP&^EuI#{c3*?Koi0cf($Alzj2FI6I@SZGCid9w5V8eBa<kf?I}=
zu@HF23wGNVO0ML58s1Km%_g|UU*{8@C0!G@b|);Ou*SjIE&XCWa*TyHnSGd|-W5af
zCBp2EOyai~$Ui@Zz?;}r0jHy!Z!Q~X;m+=&cGrdb9)bHe(ET52lQG-<!uuCr^wk<$
zjH}9ZNB8p{dZ~#A$SF5*NhUl4r>6KosMKkJD)(+aV^jitVzZmNlbl1S2bXrA>`~J)
zlCECrAk<+wJvYzRV{GVx@4}`~2yC}BHky-`T1SqO&;%Eb4%V-FafGt8C<{py%IJ8*
zzm*0!*3q6TgbtMMesUC57p;S+i%1VI@ZO#%&x*@BFn`zlste*y6BW0{2N*3bC3Ker
z$1?n&5<MLdoj6-9u~dCN6}Q7!qqiMJH!JfFjLFzNwGO@Y)M`7^_t7a*LeBooPkN)%
zKp_cz{hNE>#E82If_L!0o{_8tG<_}WIE6A|vc`Pj2pa0!;Xtk*zWdA~E!|~*PrI>L
zjJVV4Cn9urp^?a#r)z1KX}o9Ucu$<;o5zdaCfG+CT=x~eKvpvP5k$JBec)!XFyCx1
zid{8yD<-xNOw1Vfdads^WwshO;8Rf7cp5OotbHNnM9JsC9dK&-84ACz{ahGuV^`y;
z5Mo*Ge*2tCMU&fen`gPon3t>S=TTK79K)$AGKR{rml(gY+2?Tw{Kys7p{CJ77&7hO
z!6_wC)e@17?F4%fJkO4s99|7YbsI)|oh!DRf6ileKkeG|*~9j24(_t)SOG(o*7UW!
zr-j?k#I*kfC*KFG<_f#FO|GY^_e8Ib)U)@xCj1n%0RH>&7+H@c9rU^aBbHZTeB>mv
zGD-eeYpFz^NrcdoF0gaY|BK+U#<#uzH|w~HGckJ8_Vo;?#{nZ-kSXz)`!K;p0849%
zN7T!v-XPt`tZvq)FFRR0%vvZZvC677&5`7!z3wu(Rj;RvT@FmF1Hw>ZH{<R5qe~~Z
zC&QE0cGyJYL+W_qsA-lxoH|zu2fB}69Q!Q?cKj5n`?xlg!*QLEeEa+_h-u-7*m5#~
zJNTa<(OlpPdBcZ2cL;P&MOQIZY9dWdQ60#`pHtpX&}G=S88WfFhPcjz%gW>=^`1|w
zv6HdUR6_o%s})161t;z*cg`F@b$AK`a}jIMz|tkrA1-FVe=@#M&=d7AGf|ewMvaO+
zB&PQ0UauG<Gp9j&xk12lGi@)Kw7PqnN>sh?rt!RQf$(W{hRxVZ2!ScSgU;{C3%TP-
z)YB~k&w3Pp4_g}n)9cdk6W<H3iP9QGe_WQW>FSdDBIFAo!sgmOzt6__v|_h`L<z4n
zm*2&Bd|r}*EPc8rW-CAB_+Gc_kCWO5R52%U#6EwPlC&E6oqQd^SZTK*Au;&ZQe*T9
zFI7k*%kqQLn*%o&_6v?p_BJ{_1s&Yl0tLRloimZGo@p*kc3+A1eMo@M#6b)q14h|}
z20c^tfS|>NP^1mh(Qu#m#V^K#1Y|Fgt66x?W<0YqQ?l!fOnPZ?>`s@v7{}uE`(R9I
zY?K)g5!K+(ck{~cCOI}AUUYlz@<-#DKQ)<7sj~Vh4gQX&naP1?-noVpH=*J@2IaC^
z0A_AyJ)^_OGu<HjwO6UsWwcjEn&Cm3Y-_r>F`#VL>GWif^u^1*GaJjuHr6q+<WzbH
z@HbsRpxyUjIwrQJj9|8TLrNgPYVLb8y|!9o`T6Pj>oaP!<5pHO%9uTTkbJv=E@~)J
z6~?Hez#?KRX`<X|g#3YbjX!HUckG9CE#|Z>NW_hdRY4_;!tSl?#%fGYluGkL?=x^I
zUB0@Ch#nu~YS`@Gi-erX^gLDro04lz2maL7xUj0^D}4P_f5l-#_}g({@~bKo=G$`h
zvT5JLgq){y<l?+fA$9+hG?YMq!0${qPei3#<E!^-Kdos?Cyrn1N9KM>dr%qgCc}cD
z(*0e}mYmqHAPvUx9exR|@UmJ}K86*H<E7u{S{kV?nSc%gj(Un**l^cuBh|r2p~Do=
z00TzZ0Gyc}M;#~|!W2hXhTId_2uXY8LXokg6CPCq+plZg1ANNW_uZmye73(K^|Fva
zNU5x~#(Hc<^FB6LGvWf_8Aiqb!_;@jQ{9IDpHj5&v=l;R6N>Cv5{G0bdy}l}Jxb+?
ztYdY^h+}8ZV;!=0j(Kp9Eqfi~IDGGq=llD;zW?-k^@nrc_jO<Qb-l0mH9nM`bonlO
z1qyURAE}6P@Nfk$!;A&iRrQ|+{HtzzC?vzmJOy&>4LprCv~Plk{krVb_zSGOyX(4_
z&1!`W-wN=f<?25>9VIpBOqYHK+#7Qnf7jzIF?}Ybko8)*)b*e-nqTSG&9P}k$~^0n
z__Xuodn8Ii0srw`Ic^JGovYNx#WtH@5-|kS-x-g*y#{0;aLhf^$xW5B&j)AX+K^p+
zci@E<dl4Jfks3z1K3Qny-&5h^;+cnvZ%Y+}N9ju$V4s}#SrccLTgSgU_-quT>-(z5
z=D4!U9yCg|*o9d7BIKoDSKbc?WW=(wFkI&{TtS*K8Tm9s$x8CIcI!EQ)tR<oGmwc{
zi3^>78^)YBVfe@?PhEf<4sGfmD(GXmsxoYR2|l)WTBThN^e%5~xGC!L3>&EF>~xZ>
zkLtd6Cy$S_Fa3x+RzPGFAd`INH?3Z({S;7ki$z6gy>_Q&V&tw%1781#&^cDXmrf^G
z(h@N90eR~ROm<07rm8hv^pBwi!b(9`D%x3H6f;NWM9M^|X|^p7*%ceXbw#Jjx4twl
ztlov*f(!u)?owo4=<;VjnnCJWh~)%O*~Fpd7!R;Ju{*wsoITB{Hda3wqFs8G{G}#0
zNS|dNXNd+24(A!u&B5WrgM4|(baH(`Li$xEDx3q^N>=AWZ&|I)^-;rQX9eqhYrD=0
z1=gy`meT6S=xY3t1Va;sgR;L4&sif+uom5tH}MtHQSl`S(O@$$^yy5<8v&owDYYw)
zp5N^8nR*rFE5La5<gO&UfhyAw@RnI$ZW`HJ#wnfe7nw9Js;yonv(pPkziidV`<UJ@
zR{k-K-f1Jqm9T99FDu(vnfvNR@bxc2f#)BO725sjYM14uPBze?Wv`LT@XDFK*^D^R
zEuL4X+bWVPVLG)AGJcRm?uPT~`l+R+RnK5pd{Ho}Orw0(q@87K97_0>*ILH-<Mf}v
zXX5z{xV7*3L>&F><Wn$8;vE$?;9e;6QO$4w6DqdL<w~TQ1kS*&+_aBT=5|*Ud#qXC
zkahAeJB|MSifVhk<8b+aJT0Er`pWKxFrm#Sv@@PZQOE(RU|~PKo8uy7z{Pm-LmDjZ
zB?cxcrAja<CU?fMBEI-v7NiilrCVUj@OvVUHBR_}jYp;_$vdecLaNIg^Y%6N9eixO
zTrZ@^Qc^wb{GHpjJs?21t=px{z3zIjqI%}KBhDHTAM^{y<nF3u7Ohr-3e5f#H$kru
z{%v4-jXT`q&!Q`oy^w(-gMeR8A$uYL`Pe|>=iR)BWjjxauXse=k23~w$L|i8ethpO
z?;L%lq-)@=gvZg0ov2Nr%ZVxD-TtpJsN+HcdUcYcyh>2p4D|g&?&&j~a9$j@rog^R
z0nho#D~!Sg2RudA>8L(d!?Uz##tnsT#486Qk=$Js|Dwd8)7b_QkQ0nBE1S%dtm0d%
zmJHXUuSPLlF(;pQ^(|a(H|?-H#O@>_)_xkP`~OHVawyJ`xbysJMuG4HJCX9$;&T7k
z_K<rOW>UjGKgnHvKwpQgk%-OZ-V3mYrQfU*y?+PvUm|^P6%<qnvvALHp>Ghk@T>M7
zxVF1{;<Ow$Nje)25pl*BNR0A;RBlUzSG=IR)w-F8c-hs@ebNZVnwmC_Q_A_v&u4e4
zFx1)f=CdK=S+r)C9@=xRbD#WH($l53*4oxS4y-=8`&wq0x`HRk^-=F7*uy5&5DT|A
zK_c^AXkWvn-aDgZ`yUKGc~qUU+TY<4S=fZDHO*amraIeKduuoC%l#oD=QA$^An(f4
z#Xf%QvEr^E#zx(VxvTMaqbSJVb@gjmV0y$labbLtnNx7dJF1SsYMQUZ70yUCgRR@D
zOUrf0_fr|BsCJ{A^QrRw&6C;<QLCR(17Dxmy!EV47a)^+LE!KVMpa*0)y&l2G{y-a
zGh_9vAAj%$W5O~9;U&oqIuD)ulaD{FCIjpo@FNsr_(dODFQMF<g8lQ4Z29)nfGbTN
zfm~_&HzH(gWwGhIO3VJX#ST>x!`=G=od^r}uO}1x&cYb~?GRa^$o!TF?+){8z?&Gi
z)v;6#b$$S_Gg3GQme3$h?fKU$D&yv6x{o?mF)DARokd&P7mxGKvIo*g**|@?oj@A;
zH@J`UQCoNTNHv|(v2_w8+58U!exAgRcniTOgrc88euz_5<#K6oL$G*@zr&HJY|%Z5
zc>z#lO8*_SoH&P5d%t7Wx(Jhv@~r9MxkOtuMVD{3Ac&F0wuWqM**(^Fww);U?fdD?
z>dbW-%x_Kpfx-t|e_^RfekX>9vttvRn`ZuaFTL7yQ~Ph+AjT-4p0)N~tJ36T!U}^E
z<)564m|K-cw}7oGH6^C%tfyW(WBevZF)w=~NwQZd=faKR;m_d`<{(4jaPRx%rm{Q3
zceP1!xLL@QldDoy?;MY#x-@R{6HZ070i0dN`pfD1eTAq$_v8GzTMH^`Erl??HbmUx
z4@Npfi`B{PHueOZ|ANPohEbL5e#(z%K0pn_j>nah$0*1?|NPh6O@$|VJ0x$<NU)T?
zAsk-yh+n$;r?{BQSgMYdz0qT$wDmcN7fSyEO*?P<08rVw;{i1bt5c<IQ0uY#D$^S)
zB7XRuueDdTx>$*ce&gWU@uxe6xf<N$+^@7I^?mJ6mF<&08UPzN{-SAD&AYHGp35wW
zSGm5e;<*l!e3CWiv?@ZKE5ff7*+fR}L?A1gisx4^Ta~FNft6v$A0Y*MKZsX%FK;H0
z?qGV#qxWJknB9&cX{YmqCyI^<qcno!*o}bJI(=-UsP4f|u{n-mP*^)zW0CR?6!4;~
zr@+*0ccz2!N7RxpchA&ESXwUQ$-)v`1!;bHdPcuC-ZGJ$x+cLl%)oEczQevY;@BwK
zt9F{1G$iZ^1Kv+Y1Yn$rrM2!$!m{gSmDPMN9h8i6qfPVck8@96k{p9~G~nzD8;K*n
zWPxPo@&7P_q64Jmac6*o)cR=En;{*|JFqKugWIpZu9Y=8U)r0iFc<?@t(i?5cp#Pu
zkycM{G$&|QGMAMr9cDLg2In!$PbT#01O0;C7CU7FWa#XzJrY{$o}z8eVT|q9ZIZ|8
zf>)R-3Dl+1Qga!c{lpGp9p{p-sLp_^E`OxHPDRaH4G8Mio_2-E9SeP`+3bX{LURfP
zmADdg8Dk%_s<!o+dGEcL;GMGznQ5C2&)J}Bz$5%nZJ1iShMyEH&N)!NqF#!WFAI#H
z$U7i}m%Aegtf6gvh}EQxsImF-z6(@Y;4anxD4ASeOOA|=s<wME^afw<gyo5PPGhdF
z?{L|xF0%g$dBF5l7jmCccl&pSUk|#r{_y*z1UL~(I}@&PNm~MiV;V0vCXoKCO<9>-
z*9Eva;PC^yZ_{hJETKKkUY3N(+V+WlFqlX<inOB8tL%@%TPbx6;#;cw0E75nEkITO
zw8*h1eyi$3yqX7~IY0igPry$a{V>unfvK`QSh?jhF6rPLm}lFBL{M=C{FLH5uo58Q
zXUh5FYdtzs1x^%xKr$Ek2ST<YFiIslI(@%Pl<@4EcB7SG_wMnd<8D3#X+^PDdGd#X
z0E=W|8f$N<y&hZKO+_jM9(0L&f;Q(#31mE8+4YQ!<L%qOy*Otdo)J_`iW_cdd(7Rt
z<l;_jF&^-r1~>sz3e{n2LOHj9yO{NevoIJz1>!*PK4qvzr_$Nsv5Inx)$({=t+}-D
zD4(6bDs~Cs<a&$Xy=<RNH2v`%BS+&B@<vWqN$ZTvrpMMHPMp;aAl8i{<?id-E@A@P
z-#U0Kj|r<GR(?BQ&fk(!vVe|v;S2Prh(9cKx=p}1Y(!XBv)5W(7HNy%uc`P5*P91!
zlZm0UK?BSJyS0oQI|AWD@`I1g!q#5D#llwYxh}ziUrwPL)Or@knZz9iZ^K(>7s`g>
z^BjyjhCY=Ht3%NUtoZ%uDp_ygT5{MZ?iWJ$C^{`>58rs%dr2XClY2VFl0zSeDPcSA
z@OaANu~mDsWjz`;T;qW~ml+pBqW093VXFFF4>rb)=X~tnVFx0D2GHgw?#rp$yd#Hm
z?id+X=qzoc>k@!C4)C2SR#TGa8Jx%qEXnJgTUY8;K8bExm;~(D3K9Sq_r171KIa2z
zb5C@e`D7k=wd-Tjzmwv~bM^?|*|P5&w@pf%`V|%!2XEjP4+GPOQ{Rj<dO&Tmr|<9f
z)&icH4FB=Eck{y8DJx>&!($AwJ6lU^p>BK1W1pq>1JpU)M!|k$;HQZx!V_?y^ZX=V
zs#veS?p|f1m&}zBrG_{$Re{v`YjEj~2B*fGOXZ(gDFqKiw6{eTYmA}JumIE2nad@~
z5vP^RtvwE+Qkm>mTjgip3C1l21Ebh?p{F><lPCFQOCw_(QDxls3(A|@JHtNr`|!~w
zl=FK28Hhxc3&KnrVuL){#6qOtoN@N87X-qN#gd?T?Z&v+!cf<rm>{G3)}B<c;t$IA
z38U*njET$JE+r}5Q*DXh(r$24O9_uSdAk?lvhJ`gZ;#RR98zgT8JH!+^SSm@B0irC
z8ihvULLui|*O6;aFP{M|d+EPr2OwLG^yQ&YTHS23sxX)sQXINGJW6XrVIx0axH2!@
zM$l!;RW!fm{t|87(SR1i<P5}LLSw+!&KjJ0AA;C7I2w7jmy$5vLn+j&CNSbxWVhMn
zpJ`fb({YnJ7P%5quxX|dQ%C`_9JY6%gc^q%^jtkC0hh(DW82BfT2eER)RyK9=#lk%
z%b(VVL@O-AZhJRb@Z;kH=jaYQh_NbYYeoC=$18Z>;14~Q2^7^(YCh*oz;v{lrNLB$
zXsy5qzRJ0<Wyb#aO#AoX_IxX95@`t$=DV6)%6xsRy2U5|;B_%TWC5n9LAUlJK-QYg
z>2fZmJm4F&v0NX0=-%j6EambuvB+%$pfe-e;^bLlbO~6z4w0sjz{vki$p&QlISj>V
z3_*8r)EU_@Y5R#_Gbh(0Hh(r^ZqrGr@1LIw*|96m!wGwTTEi7BSAr1qNZ^oViXd*i
zo;yp=P?&25Ndq@4uF=H2xK(B_R3876S`v!fe$uLK8%B{HQgr&FOspGk;tZQ4LHa2K
zbYsBedhj3oe(+qC6CL9kweWBId)Ct3!AOG0t_jZ{F(JOHe)}^X^S5>uDmrQohF&or
zdwN^dsyt#MdM<|C!pi}m3mz8V#VXgHJfw+lBX87_70$48PI$;a^SIQund#(<)*J!|
z_T{VFAQzO<_9>bE=Xf`z+vK<IjmT*}^?T?U^~t(8nIq41b)V;u7*m_*4PY?C=e}Ab
zjAA@;&Vql<4-S@*W}lHYT8_yho2#8$j~Vzrm;RX(tHREg@IB_hE%0VwrUD%!)a8!<
zF19Ymbq*G+_xutl7BUx2pqJ3!EZ9qW`pQMB{N0d&ro!4conF7A+`k=b+3WYAkDUEi
zceKy#s<aHaTD#adNB0w8o(|>BYdoOG`p~Os5fjHb=KiY=M9E_>4gCIYOntIe`%OLB
zoye1VCgt49YZt?6lvQ9YBYd~jaJ!_@$#KOXgl~j3n}@zgS(g{7aZmIH(V6I)*EJsn
zG2J(qq146^5-zNgBZPBj)rpNed<~Y=Gq2enmtHtdIxarG%p!@HOP{F8^&Zv^low29
zd~EpCCi@bM<NQ1?{yM0~5LmGj75CX&8Ly?salK_8PS46D<er;l*X}Xeb-M<}DE?RR
z6%eO6sV^z^vPnA1MOA3nar@J1T!nw)*INb3w;V>TixQcamLBj4R`|h5>`%{+fqe2y
zN)I1o@m7<h<~dmO=iknO7V$|XX4=zMIv2zr7W?$BXMG*tBH5BFA*zKVpFqc<hmNCw
z=<GmP2rI>Z8+3h9k-?<oANKJUrkuLe?h)<<yt+hR!zf4Zl`!+Oth(TRo=YNpBj!-S
z(zR>NjFq&uqSXQ(%hS#$t$0T2JA_DxppA*t`_j-=e~fY8ENSU+Kt81brd3rFlN$+K
zB&y27RlCzwEjAAA?p{MwPrnhhiT&;7sh5lFj(q&B*#a?7m>G2#e#N*!-&pT%jD}P`
zeYWUonjg2dcIB;W4kGg<-9ZcUi{0JRV;`PJC#7&XIXqOP5>J5@87QAF^#U?wiiQx|
zYhTP~?uq14yJ1l2x;A9UZ>T%UYg3Ikk5k%u!0Y@h^+AzohqA`=JE}MOOCu=eiU8La
zppJ-tw21XR!>p^L6J3pNpz+9kqd_ef>22xQ{GQ}}QVk_h*`pv8q=8HqYaSpai)e7+
zz;so1mC*KnFZqL|^uIfkp1rzNzMk+PW>8K)%A4B@Q#Kj?2~cy;+X^E;gb*Do+g5$`
z)5?XPv^9CA`(ki$+2#<*T%&W1+(Rje?*i^!i)7Egf4WrsUK{X~syR8anp&@Ir6Z%e
zS1E}2qtq}oLwLj{cF4_h3=_YSi_>o$=gl|LJ?SGIR8${6Pkdl)Uf<~X<}@7EW`rq*
zu$Kxg+9do6d+4DB5G+55W2y)f8QdmI8Lxcl-74>?8Eaz$rwcv<l8Z9!bT>mm8Aen|
z<;PAJ>%-z5x?)PW*w3v(mCjPG&Q71~HPA0aJPdzuU4>eoWP_fDsd|;igdc{U?V)tb
zK88wB__bS^(Ej2hMb&*Tx-R=G1>Bvx$SMWrh1BB8>0POV91-{2p^VV*!wQ=*KAV$A
zxRzwd_!ibw9GN1kiYs4yVqI-@?OcAos!<#N!M<^69#TT}=uhYdGPRRZeTHMR5KHL?
z*@A8F6PUDJcNN#DdVV+p+K6+h^x?Y2PG647$q}XbO>nN$+ANuN>(|)dQ)@;&Tl|yu
z31j6Ewlf7~hPXrdkW~YOVb|#W{I|<R1+^1Q$xh9I7L1F5{c%nFP&sjQmO{CZxkSi{
z9a_RK%ASgVu=S(687c1gi%+Yvw~9*rpfEf_3#@a6GzqFWIPPiK$MgT{_GihyuV+)~
z<Lha3AdRrAL6oEI64#FX;6=sS|HeIjU|o5%d$b7h)0d?9Jcz$^dY#kHq&)K+u`Hav
z(?c11Bm0N~;q|NL&KUB>GyAUx`rAeP1~>P8NtsYmyp0#E_Zg~G2tZ)<CO{L(7ajfS
zi|BdC5XzKqzQsECchARm%+uK)8|_vM4A%|yBE1*I^C1R7ab)OfBa>!5x`BT%wA!s%
z4J~#I75Ai}(w|V_r!Rv7QxsP*-=jCeieen^Muc-RiTuT&G&SJISKwVz%m?_gF~7~V
z%^km-2|ua@TzF=ikYRXv=h(3U7QC`YSkr1(=#kZoQa97M5tXA(A6abtBaY$Pdq%qa
zj;6Z2D);Ugab!!^|6md=ckguxzF*xUB*+)Bvu4}mb|67_2#$BV<5X3ilHC7>M=j~;
z7&Ps+@1$GLqo#KS(BT`@if=m&b-eIO?oF7Qfq2yUq+1gI>~4yHRO~|J5V>#r6--ET
z?kH4n8|U}W;>d#fRotVwV2aKbp|Ww~;sYK1`Td*;{QA8yXssM*t>B3r!TzY=9a(sg
zr43~qpI!3UF=cV6Z%k6u#Og(is``-SO8iQ26|3vIFB+5kcMZv9?NUD{Bmq@zpo?Lu
zqxUaM2)`DR9A1d{YWp7bBEamV8cJ?Q=3H0?H4BMHphT%GerL(HU@o7HAH+f6JE25c
zPGFg<t;(ghdl4^tr>{{nJf2SRXXzg?T2jI$blZk~@R>T=>RQo@vQN?^Rrvqum(8EK
z<jsB?X8dMUS1MHt8*)bWW!K!eF?_Vxc%H4@|IXck!Vwo%t*bI`m5ZJHwyOc*InL<0
z6QD$i)){$82gSSk;MA}ya*#cfv%@0bq4REbG;toh!Ks&_tOGT!<^7xLpLS)PB|5oj
z)6Z&ZKw!|Ee3H!QG1lFd=m`|B);Vy_WP#iY;n2BjeZ?yk4)qjzY^!Mb9xgbfJS5<u
zHVm$XGX2-M0VijR-XsPmBJ#xoM{BY*@<1XVzzEpq`;Z2wYL)z)FC3X>QcyIv{_+(`
zB7rbK;(7Vir@;F7D;%oP#C?0Lm_~EFegf({J0Jvj{1tK&BgE8yJSr{-^m+>HLu`4(
zlF`|ZVolr~$6s<hd~-l=p`e>z=gpYygarAWuOpoODy+UTST#?HpYCCall-4@0Xhr#
z0hPU`ykVVg>PEDfbJrn#^8pb#XioPhSdkHs<}9w3j-e_;5KLy#+I3ZlbWyFRkQ<8{
z?wx4=bPlGV{);S}>YZ|LtEX-5?So{tGLkf5P2y#KaToDqPfV-U{EWHA4F&h73TFos
z&z=3ZGNSNbOEniZ+SY~#Dg5Eg7sybJ_oF$?&kQ`VVss>b`cLAcqXCNki^Xg|?LV^M
z4R9ACUfw@@#-bg&v?eyZPTh3I9A34qVbHli3Mz<05%m`8dVCMR=j8UF$!t$NgY>Hw
zjV)XBzSTSwthC;2{hL73n`iU32fdKYKTPSAz>%HtT1ddj(H+1<m?9Nq@O9qm|K8UU
zAiAg@toeB_4-9!~()}oVVTZG~*I;4YU34rNv9~>PoT+oXLs8q<af8o{`Yg<Fdq6`x
zPRZ+$@$A*zTRc)(Q)KO7%VBdykvI1EtqU|Ojzf`~IkG(`gMPauG$&^GuKDBv%B2(i
z2bjq@0agZ`pJOZ7Nd~VzMB~UQxMPJh(ZXt$hnaqy6pz|6sH+oSJO1$EWm)9MA=<n=
zdq0y8e2(wNZ~Bjoe-H|k6dJlr4m&Cs%a~<7Zy@|Sd%vmfc1H#}iV?At1C!maexe-0
zru8@aw#z1hnL>~!UNkHF;8@djuVn4`I`UWz>&MFfQS(Ogt#|K$5~M^!%w%*-ky2~M
zj7Sn+w$P8b#jUo?d~q8*w<bNjL%EX_)P5|U?GvS}vR?Amwq9YqgGja_3O*{MB4UE!
zn0=3FD`g+GVd}1Ou?leB2o36~A(7oIIw?`=4~(brMfq87f3M1z7o=$wjp`O$GDBcl
z#d2tUor1)`J^YqEJ^b83Xs;35(l>DUiBhk>e<#(gZ#?bLFpAvKR6i)AAQfZM%g?v-
zXNT^BmLLZjZp?#svm;XUFNEl|<@;`p+d1<^QGI=I7|F)>B4$R4$)|mFJvU*{$I?J!
zyZ5h~{YgnXql-oq>Z%2Qldj5vwn!D^k58k|j+V&FVG@cNN{9~k0|vA;dL1m?(Lu{?
z<g(oh|NG+pr23c^@%ZG{;{I=b!fi0(R!F*U^V``1`tdmTLHlo#e!1z>{t*Lxoh2J^
zSJ^}VObJ4<9$qdaEI$Evw0oG*j0xG!&YY`K!&<RYKIr_i>PPtP96RvtBP9GAr^5f#
z_3MS}Y+pAb=bG1-g;}vE*AHrMz*Z*V?Y`~zYPAz`2s(YlyJoe<uzI~pJ4M5J>Q7%^
z==?SF6-5znQGTmM%CQ53omtL*t$3s`H{6#gibD>W#7Yh{T$Q_}f7<BQ=tT0wEh)w^
z<p%HnY@ZmzNhfukfo!n43`lmU(%4pm0d3|_H;eSGW-Vuveqa|b+x3sut*%wD#~3;P
zUM<cs#Fx%3t?dM^aDpu)v;Oik;aF>Q4KylQioe+H<oi<Hy+Cos51*1DXT<#pFS7rk
z*)`Bo&>vlw?P)Uj(p!ih&%30ApvrICW7_inGX*T5jJ1CCS(xfH|F%GDJdPQGh0j(K
z$H%{pKi~?jdu-b9FR4GtkaH=5WvjY^DL*lxH@ZeXE(lFPU#A~Yf(2AKEp|1xKAXo-
z-$s}Ft~D_So7nCOBxItO*ml=C3A`m41kvmHoH-1_o+df=3MbT6xMxvpZN4le2g>3-
zE?pU-*W)yxoaYSzC{Ynz`eT?n?-5A!sWQLDrqQKzW<Lf)Oss8;{*^ea@$#g=j=`xt
z^noU11YuS?M`XbcN)EDDxo^1Pr>^><?KhU~z6(3P*Ed?5JHX9K7360hwA2{}xheGH
ziC5n0N~GHlrRx3tyyO2I+c@v{D0HfVrae>rJhXumS8f=L^`~3%sDq;7->{}QR$pFW
z)?s+M+7(^PQV9;u1Wmv0_wF1yekS4my*hw**m!B5fDqRCJ$FuB?Xby|){t29MK~VE
z0x#I%|J&7byh#>lHSwq>VoZ8=y1DVMrJ#}O@PLnzVRd=@QKl2|1B&ch&AJoiZ0rv}
zm;Ns+!J6y%WF~0#a2U0vOo%C8vQtsDz7bU(YFEN48PWDVTuh7jKDnc7Z+2MX<{Xo8
zFAO%ZX>P*kfj5>e`qon6*z?gyZYx}I6kENl!f;E^Zw}~!fB^2(Al!EO8=thU;G6l>
zsO9*0jAT}}r>_*j)yaU{`a6ota+%RO6Utq2xcvlV0SDa7{&qhmEyL_n`)Ah3^{oWw
zerJKK$H9GVde5oCW;|k0wTQOK-EsDTgI^<f(&pf*GrN=a71$I5W&EH-i+(tHjjrCX
zlsoocQ~HH_alB$8gLWaTp_l%t=$q5F{VTk|-VwGu$bVIq&(O)(>idZ~OTr?ym36i8
z=Stb`lFJ^aioWZir6Mp80j4dW*C_xopwsWEr5<Vw56{K){OI6##iOB@gcyj1Ze@=n
z$Jf%`|GPZ+q~XM12D{tO=$(akUxbb#lx{KT+s=$T4Wgu7cDJvyBrx60pD@1+tdT>3
zjqXl&6|!4?rJax3UiWbhP!<IEf4EEYrU0AX6xO`&!rIL^#<-&oJ_})er&P1*C5T;D
zb>bJclCmwPi0+DuHw`~(8Xp*!)ufZ_wm_aoHnS1UuWfGT@7WMFjAA5qdu~O|Cy$9(
zVO4PVU;*wL(zyq2?!H|5sU!{J_(f^Xp-rl{Z>1VhC*0P?^&`smx?I+w?Zee8F>Nb1
zL$qcx0u98TtuY~X?!hS@EuZavoUMiB8&5qMma;m!1of1G=rQ9Q_?LexHj->w#4zP!
zlD$c>%~%E?+n;X=c>Wz4h?`lfl*88jm`RJ5&N&S59z^fXtnWJ?i1<Y$o`H=ptodQg
z8{!)Xf2$hg#;!~}cAw6Z<uyF2_F0jRc`T;7a@SdzxE!;b>l&lvwd?<nLWMqNS0Uv7
z_81stSQ?7}T9cx=`Rxs0Grw$aO2C6yZ(!zc`p;d;`KsRM^t_WMij|<S9Zy=<*4$nZ
zC$)`sZ%dILd!L0Bdf#%=rQz>UHVg4>Q|U=6oH(T1k3g-%gOTUtR%zkF?Yr*chpQtM
zz7tL1w($avyrITmv1l>I>y$7KT4Vx0yN>xDi_7s}x4r950#2ArEQcWFWjdM;LD4TO
z9t(HvCind(whEmqm~7*P|C|(p6md0cLg-&N#_gK3QhoQ639{w-f=krt508Lvyv{;W
zRsY<s`uJ6XjhgL5P4?uLd~`P!`YRb6#M8>a+a7dXDUHUXX6xD>$31_jsAZ+Kpv@wg
z(AI2<QO+4%7j_^y%<pOV!s_iiEzRN>FVG_YavfI(8ud%LPcxGdS4DKOgVVf!>WUj*
zU|bI3%zBx|rQA&|XKKEb2z4j!{PW)dxrZQQ`0<VWj&j^E>y6225=jvVv+Q_#Ik~s1
z*QdS95Bbb*^}RdSNk?RGHNmsdzt{Wt49LHXq}hm-5b>n`hO^x-qjzT1Y5jS{(>1W^
zt^x@*=2Zc-YOoA9c*vYu$?kH6i<z4~g&cTeGOSQ}9EVq^uyB~8r}}cL8=6=;9<9$F
z^PID@yN%~<CEBD8McdGrMm1Qo?zTG4zw3I^H(UgQQ)3mhEpqnEw&Ft1)UaJyI}KBp
zt-=dKtV4G#ZrWp0W7x0i)2W6apsJ=DW$l;QGly1QI|rgPuN|-vUyXe&kI|%?OJT-4
z8rsznSkNCP<&r0C%CO#L*~FO7+TjesjG!rC#B8+;qo-A|{p}XZD$~5~%OGlN-N%dV
z=qRC>U;ET(m%fH<pKa<{p-9|614?Xo+G;`fg&FarI(zJPG-TI2pqfz`HN9H1T{Ihg
z)U)#TSDNcNNy;&5yh7iL{>(*g%lq9c_dudJT>Ms_RM-&1er);VjYCnH*WHBB!P5OF
z?JCqaaXiFtD7_HRk=+H-w4|f*AbKe8GV5ydvkRuR`XMYlQd7-=jJn5-W>p-JTid8O
z4eMStDpLk2D!%2JG@!u^%vtd*$TCOA#M1Im3yqI&_`(-H_muB&=ZJ1lxk_x)&h<Zn
z_S)OSzP4Arv=iXTo}-Y^aB3;zS{Evp^`i(T>wAiED2gsyM|Uav38!vUs}V8C?JWQ^
zuo|ecJ|J~&eo_Ee&r;mYGsa(*9?F$=$8OtB*&AobUM+E5torTbWcG4Q3(sm?@*V{j
zC2aAJ+yuW)rE8#tQ2xkgkxJ{ntk-V#+IRd7)p^9h{Ld=uFR13hvc5$6;u)h17O+k|
zW1U4RFg&IMg(-gooJbOpQORQtdj*px%$+Sf%NbY>ZD0*&x>ikCH|C_*Cl;Cw#FHf7
zG@|L<)U3f@cUq=ZCALa%F9oPZa(Ws}7SOK<y&0O0Qa%<$EB}*>-WiCpoVe3TW0%8F
z_yXssUjiMjwx0evOs0?4Yx#GrO|^}-l9<T*eJVMzD!aF1bX=iM!-Xj(N&2@~udN+E
z2b%RjiyXG|41%AmzHB4b?RI}NJg@r=XwT3}*z~oU$qfS};_V*38f}v;SH}_4!RI%f
z(=V(6RpH&eb82M7$__>yIFZi_Sqz>t-;PPmNMozcwH&r$WuTE5cX6E0==wE|L=S4x
z!3s0={V?sI6rua*8T`BhId$DEVb4>Flw3q)X~z{+JA^2Ouo{iyRraJ36H5c3Hvwyh
zx&}G8AUVw*Dn8w$uCTKuQfWO;f9*%uVqnfc86V%7u#<jqw{G-)^%I@Mte>Vi;4NI|
zwAPu5l5ZHMJgz?<Le;jg`Xq{}htXHN2z7J5ie1P7GU1Jvs@_3OS^*W;)y{$(!0l=m
z+tG3Rh-k&Te%jIDJ*n286ic?Ljk4CfmKIUd(pc5u4T~HQ(`u-6Cyv}-ItYlAB{wRp
z%#Se3dO4=@BK7JK!7%d3YTnOM%xL!*Ai!{(h{N<xWoLHDXQxAmIPO3g?ndasShBPV
zc9Er6+0C_6hi5s9pDVOoWqfz#SvtkfxbzCv&9lz(Jh#i<43=v7r;Ne^Bt_m=4jcub
zdOs_6WzJk@#jF3DCylapOzTv!kUkD&e=&5Ynr3~_pGZQlM88x7P7k*8pO#0USp^h|
z@)hon%`I0PlzVE@#<X^q?VEM%4d*Yk<Pyj(M|ninZg&{*Ev;t>!;Hgw)a~~YJPR!g
z+b<1Wd5LD?HDglz8;fg1&?Gd6fDvH-xieTZ)DNG+@!Iy}p0)AWJ`je-3BSaTJc&`W
zCKu!pQxBeCha2!Q<mLFj;t-tLJQv3ATW<2Cv8mkJu3M7<R#<J?kFB=}ykU!<Qpnc-
zS)+6lcg^ofh7mGXR0xl@?)fM!kN{zu>E^xHXJEehf95}PBK+c2k3#MG$LbVf)V`2+
z>-*#*PsVIcfXgm9q&^6Hpg8*_RK<4Nj*{MLqxmwde$6S@M)&ADitH)tbNs850oUuJ
zmy32mu(78ghJNZc^xyko*v|}HGlDGAHw+M*jP(@c$&%@yCp4Jnz<%T8sg>)(gPgC5
z7K9dY)O5ZtfCuKl%!jcUt`*jn4$C3x;B#kS)t(tn)_o+zdA+yw8d9&YAD-IQwh|0N
zYV;Ets`Yg(*Sdp!9f@VhUVqE{N1B=-Os%N+3>ZP*?DAZ<a#Y~;i|&aS$b)5eWGO`5
z%3zV+>^?y+_cCdXNB+KN<+r(bkhaVz1vB2`8(ujsT(~b@q&il28rewdKd&~+?ed?^
z;M5|e?%BtSZ(d*BX7fGSJ@uEc^dNB%y!+0#otI~19mZX3=CetdaLct+wbIOxrJxp3
z-140~n#41&`Wyl^+SoIv3G&1F;fH7mPGFn=)dG+h;K?SSfWa*&vvgqV$@SKoPDJIt
zPx<>-W7hcfbGyqpz`Gi7IAHFuG_!;%?^F$611$JkSbqo@z%y_r_}$t@jfro>r}ku@
zo~P42&PBKDJ5Q`l+Dufu9wbVB>pGu-+aI#db1ww7@70cKZ@^9UDi9{#E&Ldm3U!u3
z7pXF5feXFduEH1jVLciQmr2-8I>a%}hfe;w1NpEHdZ;k;@Y&3Vmfq?k=8Mh#A<rLj
zC5^!mm{n<asXfQ^y$;TtLyi47H%y(MpYKcyExq{2Re(Azc?G5KF0D6Ow3xBt^|P*`
z?hDSD`KqfcN78tv&4zTRS`HG7${&e`Z3{prdjff_OS~ly1%A8lk3ajRyeww;w=$M1
zEj7Go<=0<3aZ=;@j=-AMUypg0UFn?+79o?x`ZrS;#j5yPkXhAU+v|MrT0q22TJ5|o
zxwNSFufwVgxnTu2ok-2cv8BJd63lR^%Fb*Ogtz@rX}1h3l%V9ONvzVuHe6(>PVjd;
zbra^A#SG#UclZth+==L;a+AMa)}<f_N7nacDe+gB+jlE>+nI)g5D5Og+(ND1HBebB
z`?pz}`&x~d7XD-#@p(s$wgMy!I%(uQiE}MBY!Z!Kkny++zX~q!hI(T+We{@g0B#OG
zK<TXEOs!_2DOTZ8A$<-6HY}cgGS?Cw-3?A#9-#*kEIIglQ54=w{`HQg`yW1vTTWN>
z>I5t@;YOVAmXaQCFXLVQ*87PQY?1}6u^_7TS2#6^^~;W699GKjW99arnFL$So8753
z0kih(>x5o6>ffg(id6AwlImbmxXVGL%<lOZe&r^teoR1EP<jeGYy2fLG-gNho_vwx
zT9Y^k+x&T#N-owuGt8g#K*`Z8$AL$XZ?XoC1oIFchh+He^Lfhatjdr<T&OtKSWeF7
z=fXoogp!!OieKh(dfH%ZniP_fpG5q<95hsD1%s{o@L25yb%ijC7xA@3zI0D!x7M2)
zVeb;G%`qx90x>NU?y=RhK3xN}j2koyNal$-jb#pA5-HzOwbrHFOA^*1NBs?3G(+U<
zt=#5c^>Rau^L$YjtFc^<FDN=)LNv~Z=JCVws6*2`r;#0e^1^GRE9c->$cKEO#BK5k
zXh6Te!U>_5U*F%A%b&b0Ho5q0{c%Nss>zfVW2@xhhWMJuYdoLd!$>=R+_3zF*w#M;
zD%jMjZM?X3+1Y%0+xZ|W5PhQfTCfui_3p}VDP5>Y73>R1ht~w4_ambMVNe$Pfe&gF
z)d%TcJ|@hUC*clRw8#y`*}VMN2lDeW+qcOOBRTIK-F+y<DPS8^><@)G7t>Oe>BiV)
z|CeB#tqpaOqenuc{a{{!z){?F#Q#lVha5%1Td}uq9-i@6^Pk|GV77Kq@t@o#l`f<E
z5u-J|7WN(An+(swYF0hl$b<uH9fl}lQIPv&S;BZpk~i;mK|MdPTBtcYBCD$#Nu4kz
z&30`~%>Mw_>8@%q#TWF<&g(l$(}BOrP~z2Q&yz2<$#R6+N5WsTO;ygoCR(r&CPg;-
zMpPL&MlL^4%C*(wgSRsvOB^r(Aq|DD*-ud#Y{WVirMt&T<+OIvnH}}ZIsxJi$_%|e
zTt6CL$*<+$TzQEXVH>YT7nH#S9i*|9+_o$=`c2;-U%@2ko;p)$|Kev-r6qU1vkG=m
zK|7X&+8-mn35pN-=+t_cuZk~jjbNUCdN1slc;`Obq~pJ0MiN5Vc{M(OT%GLfISaZ!
zo!u`VW-YpKb)kzgM;E?gdi76mA^(zz5$D(+2}8fRa|2Se`*i-}l?5p7s5ZBQJ!h-=
zR~i;m{(}ZvxqC`<SGfwd(JC%&yHC$1RJnf-FE9@WGEltH-1)&!xa#H7@}ofx{~s?_
zC8-J*mHrd0q+hZe@JR3tUW_94%*AKY+H+cu5dp%>Yhv(w$*bSjPf}2w*Kn`;Z_zIZ
z3l;Z+9#>~d+Mrs2*TqF0mc*Tsa90qz2H!}`W|ZO`oy`Q=)-`(iF1(<^!@HG{6<=*5
zqT3j*uqBi^wRGId=HHkPWNz|maJW!YkXO4Jgz$^2AIi9~RK4;TeB_E`fuE8l|2pok
z+WJU-_n>kf2m)`vxT!NiGPML@CoCWdy0;6R76&3HObF~n)JeXp+49-oD>dmU-NxJd
zQWiJm8GV)2?;NRoBEmzr>03)cHpxMX3|{y6P3lvBlN>9z=B3N5l6{S8K5iSID#FeE
zAnA^1K!ooT!HMzxa5mzbvwe<tnisg}>p0IxS3N0-4^qgXzI}kzP+8UIh4TpL`Z4!+
z!)+@PjD+VuKhj!x0$As7c={cm89%2-SC(-$Dr3AMbw86Nc}J%;T|}cGq+Xu{+4KvR
zU6f{r)dwrUhX@xWRUKAn(t2EeFFosKjRfSG|LTc*u6G9N*0qtXtBGZaRwZPhk2}r@
z!@gpHk`jY7todO%L3Cz4YKO!aHe2Fa5__ll3P4V<LUzbUeZXneE~~=>ul?%>PptZQ
ziOhlLXohcc-=n9jf2eM1iyJZG=8j3-Yz-wA-vU4F>9mGYMhKnzx-w}n=Ic}RwcxG1
zOC%~rQgkkXDE#dnBpbpxNb~+lqxmZKI%69FG*5W6Zh!z{iHWTXkKks3Y#GOd&F}IA
z=`D)CIEvx*`G87+y04@QFpoxb8_y!XAu0GJZ)}m>{=~k)!APdU=uqJDH2fz6^tz2z
zAg=jb<lfOB;*kBH+A25g)xGS88$(pJ=8n&?PySpZp}VzJ+G-Cl6GC(4HJzB8q&(;S
zu&$L{B$LJGV&OBe6Ye@;+wU(qGy3e%me?77ag4mxUyfbAE~xqvRt+^}rwsE8TRw-2
zF@LcQKQf9-uB{2-B6H}jl9j$cx)!y<LtlqpLI)`mq%U4c8{KlF^u7+;i1*2{$wrBc
zFDbWDb@Sq?zqO1=S^e^FCt(Qtha)@gUH|-_pMPL6%;xm+5lKQ=(4GAz`NWdQCeX*Y
z$-OYXxN;=IjpZStpZ?b4q+e9$VG39#OMk-oPX<YM@n`{m)1pvk;}bAqaOsDngr0-x
zXXs}~3?O~1#fo4YYogoC_S`aNcFt?w_MiYb@x|fmHidAF^^q&~qG=W(sC5>8#$gEy
zwA6W6jho>{N_cRXro=KihAl1;t8-H>ImV}XEtz-MfbH}F;r;o}!DOhF4Mjxf=A8is
z?bZ`Dn|q#frKYwakQf?S>QLXNoKQe}(p1fuMDh(oNq?4JA!W53wpg#|zyes1I=?Lo
ztCRJ=&Wu0wJ{rpL%Pw*vy%qNJ+00;fKmLY;bkW!y@+&(dqlq>cj_iBy7rWKCOi8L!
z29<K}hc6FFR&UFqInj2Ax}>&mvn4?jVlEB@URX*=vNVUacA<<$#u~z?7IV9`>Yn)V
z9KrLtv^7>*adc~FK>?3Wn+)q+D(Ce4&m7<(OZ%G{`3d=c%}?$cj#nCE@wU?qoMyT2
zS~=~?dX3@6a+#fN0-v?#*+4HN<+}N&1RmJb(h7=!pQv1~pdlrl|E;wKz=;#<bz$Se
zgqJZc+35Ky>)1}|D(kf-72EEYxRx&HP72wvpx@><vp9GlQ|_-Sk0!=<#(Oy)ZuIa2
zK6%XT@5cz_0T<8MDpL;^A;Bj@&V=a?Cw$(`1dtskI5*2NOTuHAX649w%u-W;b^^Q7
zAzUq7R6O6iKUZbBG6<qaU?~+4pIX@Zc~azvjIH|a`$eDGz5{Ua?qe0hehS!tfJmED
zhR%EIGFrfS4^3RXc%>luezzqb8O;0=DLqYtgA4plfFjg;QrMb<)tb~CVH>cSujqMW
zm;S4MO~3h*A)m({(^Zm}rQ7?b`3w6PsbsY1wuu|qTsgsy%#VF(E+8_H3h7Ez<$~s4
zrKm$sbS1LoAT-oTS?R8qRdiV0lTYvQGwM^jAM)h8ryyGX+sX;s!)F4xGACMZdKlMh
zH~oq(CP4QQcG_=119@c9A<I3&%!_%h&h>uElgFym_Q$XKYVXNU?o<&j`t@y<+>;^H
zqq#2WsD<md|84@_lC7lmOiHoN9WP%mXzl~pis|WA%Da@2QRZSi?-#AAr}LMy9u|7P
z)i?-;=TO~7PcJRA?N%bk4ps8}W0yNVe)eAdM&GhyRX`>)*OBR}(k2o2QeCKX;ncKo
zopk`_zuIE!S376OiZ}qi#Npw@vbCEzS61>xHkebr%Ypt3x(pr3U`Nl9d%ppZA$r9b
zmZhIikQ5QM^P;|uv|Juet9)7)ta%o~YWQMHV!SotIonlVW77NW?1zQ&AU(<x?1jH#
z2v`hWB(I`rp}mw%(}%0XlCd)>>PV&9lW8nH>OSM?=RH#HLuahXrRF(Ol|~lB%@c6v
zPYI-s`ZdwnBcoMz&RP5mgE5;5=^OX6>~!@?P}SFN6Qr_5TrYYv!MMJCG7ug~bOq)E
z2Gb;mcH~}W*IFLJ!VoXBgN5QPRTJaA^qi_z^19E&)uEMWyC1(K2-~dZPd)@8eakj8
zTJ8aT&-%Tc?EM>r5QmFUVo+5F{2Xj93>ecXhR_;|S#JZsCujSL+Idrd)id%_6aRg)
zo#L)L*VC2fcA$LmYmIJ3ClW+X$fWP$)=?<RGt5NyVK*j~Q$a<GpKj~M!VEX-DudYY
zxZi+St*huwa>D-NMdItu8a~RpPX=yiRGjQW)xj+~fIav@e=|S&20^XwC;h1=oIRCN
z9#BeVb20Asi;0e0^HkEt)c+3*J#><<VkRa09>WpR%dNWY+^!Ah+e;;YJ>Bg1B@{RZ
zd1IhZE0CqC;St8XQWtx_=&+D6FQjH-Oda0t<NljE&w%jz^LprHOjCIa*|dX_*Zud4
z7Xdlt*hLP@lJH!vQBlA1aI5kMj@4V^KlwoQI8!`=T@JUot)HIl(-X%sYy<UNc;Ti#
zB7@<}w(C}IckOVozVG@jfjRCGGc2X}$b?{J6yc*)-{!L5c5*ugf~TrIkTXAi^(ykk
zFzeOTc^svctq1ZxnWWf<4-;3HgV&Xupo9ib^it%x)Nq?h^dEsP3RqT?#*ej&@wY_7
zPd|yGI&}IY&t(l7rQu@WbY&D&VjDr4w?~|V3`=Jp!gtRw8;u@4Yc=~~U)rwhX7UuL
z9cmyZ)ZGQXx@KzmWSCNDm{Sv~*OC#1<{Eee9v<wL@%wUrv2{;I+m098gI6M|)C`$)
ze!LKC@{U`@OB+%d>LgBP=ifZ~iXLN2n2g2J$^y0GrHYAKP7VLQ>A<W9;0FVoAiKRm
z?k(r-tBg&VYRD%#3pj;jJ^U@}2y6;|jeDeAzUrC!MoS6O;1R%BB;*~Ks%TQr%h7u!
zlOH7#Jy22q_lLC87Q+3)t9xJE9gV?$(!9O6dC%NZO6U!0Zk=afs6yFJkJ;MqY#+sX
z4sKU)o&u)%ZG<ej@%8DKQ)LbyRoKt9Uryq*#+*y_9~UZHRpYv{({)c-iH@a~Pd`<<
z!g>ug`00+UcHQzNxcIey?dgh)n~uA#!LsgV{5E=HiZ=#_f>}UNLk95}B%an|b_UO-
zif`c$I>Dh5E|-h!FsH7^bX^wx>}r+gJ&MNw8A(~I^qR)PWai$i3s1Qt45@C5E=K57
zP^T9|zt#Z_jtgLEH^b;-4I7;CCwASphD$X}Qf}R{rSYhp$_iLMk9irBGq2zUJZyob
zeft&D44BNPwy@>c1G0O}{Ymp`&<rD32Q&^d;CU~T!TJ^-+dm}sIl=HtWVI0n@ovLk
z?lBuouy;?z2)wG}7#=^DYIAd${sj#z>&{vg`vy8vUJk;p97+%x`5RVM5UqJ#VkD;9
z_t73ZkkELFfjDs4$;R(92!Otj!fDUoGVCU!N;zHf+cPZfyS|#X01f!}=BH!Rei4fj
zpXU(Ukg~GzoC3x*9x2R(j9lIZQO6S55jps|Ez|DpOma#W{8-!!PQ=VCsJ$2--JwoU
zw!8w<{LJIrS^@WBGoC$m9c%rX@t=&8<FA1Q1S)dP70*+<8AK-_mQlZC_^8uIq<AlT
z4NQ&=o6+_8H}TlG|E#T_14Ky_|7HFer+z0Tq$o`FSi5LzKAoRrR@m0|60vi;tl8cu
z6Ma9A?vdua>}*b)Cf`AwQ^*a{Tsv=(A!11dam-TDUA!hZ+E+C6a-=xw5;#uEKj4+g
zoEP7UWtM(Z<jdtzxD*Nep>*aine~C>y^y`irI83^kvre=vLhZKSfBa%E>^Z`$^B%e
zid>e&`js;Q!S4!g6w<DU>0ryEZ#sy}=|{ez6n~NtHAlFYhuuW1GyBgZ+(YgRpIACn
zszyd54yoIS9e-35y=3h7I1}rJ>Bf@Me*wWNoDKg%9&jmkYhX})#G8s0Uc{STCA01c
zV&q?bo_rOa6Pd}ppNr-)7W@EVezuS4?e|F!u@VYchf#Ee_XqNLsrYu@pBcsb2{y&8
z&wbjoubkw+qMT&G1v+&qiYXs<;xUpQ+-ytl;8yKNtsU;9K5eR#yn;K9VbWqNFfJ<a
zu2a?%InKZ|Gd>?sW>yj5Kb#Hx<U!uSLi6^8cM{Egtz_~OS}$fo(mY~!TD+}44Df7;
zn#G09T@-<-&L>sbKdnZwpM6d>Qsi8}sY!#Fy&SU@)0nxR^9Q3n3#OR~!YSByoY<B`
z+6%NtlL#@)ervg5#=PJb?p^>MMfHomWw8TW<o95WI5p$DR|KfXuY|4fW^Cp`f!5k_
z=egq+%E>D0Wf#kTV4A-y^42aUEU;?~UP{*B-HvIjOEGC=irdjZhjDJOX~K_bJ&$aR
zM31D51iy*`a28+)<pghXl-%9c5k4{AFdqIDE1<`i2JZQ^YKn#O;%yu*QbkhLcIHKM
zHX9t@z~>}+*m8<K*v`lx1@QC)r&pP(108eRR7`nVjZ6_MH1NO><EWPQRYtH9qXVtb
z2T4H8{1@fkw1i+ulmSx4Wx`yC>&nN-;OXDt|N3n}@ui{djIC&{MI!1vkn!>Rp3xrX
zZ*Z9E#MY2!GD^gF)={=ZiI7no)9j3VYb3g&tFx1Z3cvA(E$QdTtNo5Y+J_puWh;+>
z(yUyBBxf?T_F7yE8~MYzdnE%@ciCh={O7Y$CV962-r%R%YKOZ4ueJOJT~+UYhK~)#
zVdVdfguBIJbn_uU9*viNZo$16Z{um1RaMOtyK)wueScy=7j87HB!~g`^tosOELB*2
z`c!DWNWbZXF~FBnDX}_LJW@r1`Y1RZJwJBKu(W&X)IOR|s@y%4)G`!|x_BNo*YiP&
zOZVzBx%MTaM=P(>tC*GoUEh0~mCkbeHW%_0Q2?k@sOR7aX<pc<@7oid{Hk-QC$)25
zV|jq$r9pKzilf5Dv)ij=u>}w2A7x4i>S2?gE>s<T|07Iw0xP)$>xhHK$b#W0`LH^t
zrdEq`P3(Kt$^())LDoprC%^h@Eu;eOp5bJ$taDJf;bib#W~ZDZcwWuq?i~T@8pFcL
zbXy_b`9}rci?-zAdX?{18ENI@e9-~>&n*%1lfmX2TPbJ%I8JS*P{VD_aR)K5AM~<N
za%}$S8p!!mv7cs^Gm;CW<RK1>ZHoHwltXw=+)mwZG+T8Bh-sX`Nm}tA@`3Tk8(f;1
zSQ{&dD;0ge=+7wW?;<I18P?I?kAsWrAKLv^8jo&K!|~Vlyk+qEHXf@$_nJ*sOm=A%
zv!S06UklX@S3uDLSN*@|nF;ROm#_UhF^XJ2qPj``ix%s$Cxr;RjKn1dE2YxbIJUG<
zp^Gm*(_TnBV(sDu*ADV&=1JAbPqjM3rNuH74|c*WMloH_g`OB3oL}?l0WoF(rdjSj
zOf#S~(+WPy?vmeWRd8Chcl!dn0|Pr;k>YEY9r`VnNzvj+{)&j{`*x>>6GOC$13)nk
zEpNl3*;VBB&W9a|Xz|Eq+i5EuH}FedlFHO-JV@mQ;yES<-i*V!(c#YV8MqPr?jg1J
z-XxI%Naq2->#TS!#YT)>hn**q7u<j%cJ9SP7>7#2+e6YTZ08wf>g)uZ&$$?$G^L-d
zpF<H#HT+ET=(@N2!y{19u?O@i3)OjS_RdX+jPPwP$UO1_;rxfo-t6kLd(paQbTi8)
zc$fYF?c#LSm{-UE+x@XpX^)ithaZdT=dh*yvNCy-u*BWmF4(JmMLd=PGKv_(OB!c^
z=;XVkr{6_&Ur1cu+NBs^C=9qnW-@57-`Rk8D%DZxEZ^Njp;$x{DSu0GtG<X+NhcOb
z4x4L-Ft2@2T59LVg4;rd*dXG&>u!qWuQLkTr)OeRn0S}{lGW*0OE7V^VW`mehPk?y
zCo|zxxFAW0{(w3aqsvOuF+a4KLg}L0>*^rf#&zYKR5_OBkO~!4VVP;m-K<;M_2wWH
zH4lIo2Gmo0wJbj)bFk!g-jD8c;_GAsT_uaoKlhc4*3-1tqE{vd85k_nhF_MdE$3IL
zg`W(y%nFTUu_u+Zxbg_SUG25q84VG9i~pxt=+)NbIS>3jMQz`3hX21C2(pLro&-%b
zWN6vZj~z<`%eDY8q!7*^U7y;yT2uXw*icu#IkW{Fzq?NYDwFIvAzZxN|6@n&{_bE7
zb6DKUzEmYbho@hGzLt>d))g;ZM?4=q9%kr`d7dZz#J-=k7TZZF(y0CQb|-}LVUWsb
zFdlqoIqs?Uj4EzO5P+T9oLf5{p)&}3aws^CiEfHhVGI2(z2(8i0E?z~7RECOMY;wm
zorJ0#rAv7X%KcrFXn3BdSJCR+GwU`mdcJt^98zf4@~~rP{dn;k7aK4`G8Pb0w%~Af
zo^Nytr3N=m0TL<h>Lzz<s_u~hR+<cm?5&`FT~|D?j3^!$W<Br!z}I$D80iXA^}Db0
z+eYhp_muj4c-Ru(64Rx_)QqvmZ}CfRT~U0yT$TgzLYyZia6K=z_slU~b4p#1t5Eb$
zJ_q9v2bClD(M8><RWkffrSI$JSI2b69vK|vX5{JeEwNvGmW<Gepl$6U3)sTqZcgR}
zC|#)>@Yv{L4N}Eji}9O#3@5v^|9nNwmGZkijV0A+7Ns8QD3fJ%#q;0pEnqd;fe=;E
zkoiVhgW_a3-0b?lh68}pVAi~?@VT9=;MR(JoRS?jsqU$|)kb_ZRL&fY%q&RQsX?_q
zwR|P#cPWNPCz)%?#x80rxyUSb{eo95zgOcWw9!b&zp{gP()kSF#$`^!vbiRUwWKD4
zhN5btm+#-3Ujgi!UdGH*%Z!|@y=WycS>`pmZ%&x~AJU($qb~Mu|3lSR_(lB%?JgaX
z(nv{%goGe1sf2WQgLF46AgR)gba!`)NOyO`(%p5x%kO<Z_ul;j_Iu8piD#afImZtq
zZz}VN9PjXmpRvh_uB$N6lOg4CFSP}Qu=NQkx)joV|Mxr*%4Ebr0eWl{P!fuvAx#y&
z@ZB-pR0Yn4NQd+`hDHV9r}pDtm3&*4eB#{kLR+al<Wx)3mDqvAK#;s3WqmWOWLl9`
z{D_>?&vKIYGUJ^H9*xX<E8aSaYo=jacQeZ^Di?8G;YQHAKa?S!)W8()mH{+`f0={N
zYNpl!C=+-DUDny$=KfMKDE$$&9|UA?7A=jZ6EY$odUCnT{pXOJ1Xzh9U-O<ZqXMhY
z_s`}q<y$s2UEBv!PCSyOI<#}^y3~XEiqKC0*TaG2X@S6f|M80?HP)jZP%2N$_#>S4
zr;LCkZp5Rr9ANX+zRctE&t5Q_G_oLqtD;C}4#%q^qoVTNl${Dgx$^YOH$Svfly9E;
zUOc#R%@Htm{{{ZKfZq#(05Z{sE<QmoUie~|o>WIR&~I~cq$yi>d=wm&%J<DhP(Hj?
z(|$Xw^yujr03m68lV(qTbI71AD#cmn0GerZmXF(#c#uFJTgh?@)?Vpfy3b5s<Swl^
zYTGf$efV*J%p!ww1$c@|YH5$O`1#9t$Y|q{kM{r(vsM9HWX_QsJcgH>rAvREL#gUZ
zn)4pWD%#$=?9OtYV}tqwb~f}7!ufrmt*r8MiiVQ7kid9+E3rIv#gSu?53+{3P$7{)
zg|z;Ug*4^E+zd{LkAnLUfY_?|Pdqxew{AlqGbPY)oz#{he6hw_(|&?rN)3t)zOod$
zjD?aG6Yl#wq5bi_mntmP={X`?#|d~h>y_MkPJ}%NFM@)`>c0Z*r?-Wu_aSp?No9Ti
z<wn%zXMbX0ed!4#UDO&AhVE~jqw5eyxY`XNm!g)5i6Hq8W<LR@)`go4PlxgBwiCg#
zRN2GiQxCu`_fS7J2Df|10^wB%2QcxBDuC($zy1I%HL&XdB+hi%QQ0v7J2ad{?@8%i
zT#9Xxx086|3^O-P{m^0?DgUgBTD9De#-I#{9uwLO8)J@`Fg#q&I?B{){L6X--@*KY
zxO);AWUXASa4+t?48UarFRcThKuTTGxyR{?sL0OI6R*(!_5vi&#qAGkUZdh6MsM9h
zHvFiL6@VUhk;8W;D*y?0qFq1mZ?S`v10;{(vQ>N>Q^TZh{22Lz05iLaCX>w-F@@|n
z<;UmJ!`tI|6d528{LiP9O%3vZ0UaN;iUIC_kL%=sCA!lJaoMdd#VIz&7cwu<41J}z
zdj#qr&w~f>;PLB&+I;JTi~Y!?rAkLvJBE{nGPd$;p{p@u?kmF-;9Ujaya}P_on_UW
z%Aj_G`B6q~D{qsxkS(%gjl*_D`o)PTExD>GqVwq<HGCT1hHBjD$(!Kg?so`a_6F1V
z(*lUp=6t(wc}=a{KLU48R@&3xMH89V&_zS*kW%u{MGvI_;L$7lZWo^sjoLOL>;G{c
zWjVw)Jg!|V9L<b=5V#^ml^u3zn2d|YK;ZErVm@dENBN5N(%TB+*JgNQtjG26&i5ds
zDQk|c+WXao)W~(;jp06|+m^gw+8`jQ70|IbXhk(Pi}WtKZ!aJnm;VmY6#*`AEegR~
ztfud%>@TmXtMUr<ZYX>f>&sBcpfZTw`VeTJP(;0>UxCqqyI2cr57+o;m{?BYlbtn*
zpM>9ksTa2XyPS9ZW_|V#(4kd-Id<c59VikJzFrOpQFseV)zahv9TTN}rZiZs2G4ho
zwz+?V{Tc+xJ`6Ke5w$!VZ0WGHv-?4=|1O>0$^f5q-i|&(Pf>5&N4(GO!Z?ZR+LmsU
z7*C2W(z_mk+k9H0oE!hc88GB>HFR>;YKho$I`&`<wIGrg3qt#en8v&t3E&T=gkM_I
zP+v3ke|^o}VMDv(zPs@=mG3(XS%|hHpYKcM^d|y%e0x0A;GD6X=z!%Mk1CJB+LAh@
ztp1U|PYA-?C4t*Xd#shwH#J6=U9Eh)jF}8&`vB4g`pxf?Bjx3B`&sZ=<U$!w;O9JG
ze{LjqqMI+6sCd%hrQVcd1v>_}!P6Fk@(Pq&${ThRi;MJ=M8mbOd|B^(0(0Y_k0zI4
z)Szv=Q%CcYh%Oyor|Gd$q*~?8RvVG-;^+Vf&_{rBgjPdiBU`gt+bDNeM;o`}x61T0
z?6mD?Fa2BDp<FyL*kBV=0|>M{T$622-;@~?TZUfUV;kqCGOA?Twm&IVkjgrOrlNLz
zOp{)Lv_&+Xzi<$C@vldXu2=UUMM2XxrStewMHF-G<pfP$PSEhB*myq(pEXlcSO0{G
zhlpwnxFzEa5s7U)6)z5TTGv}V6zUll&+B)zETGuB(TK1Q)e#BaLz+Rq<cmC$a^8BX
zr+VKzb@_UKmW3(4*zrG3&^8tNLcZs%7}gA>m>HqPL3-@wBG<<sIoAl7AG}59G9rfH
zPB8Y6F!@!-eE^PecJcW-LP3LpTi{yyOFPQ5*?1d2z>x(M0x~J<g_5znvU65*K6&fK
zL71vm(o-?{uamUWZM@o@)_^Ne@t)p~=`1NxU;6yCaegp?Doy0IC{T(CTY)y;NACUs
za-@M;fhm_azy|5+cp#}_M=lXn8f~MeGyae>c*SDi0Kc!p3hxrjH=kpFS%8%wV=LH5
z%<ex^zJpZ2Z8nLHe-e;!E0jZuBvbF;3s6GvmZ@o$$*ca;LgW;W0sxZ&=#3^B@NUZ^
zQ5Vajjg{RRz;j`!1Dok+$pp7L%9p;iL*~s|<5lokW<Oi(H|-dKk!c2?{$^2?`<5en
zcHl^141kDFQkGFUY3b*SX^@Fe2WNk{0ycC4bvWF%LM$9eaSYX%(%aM9p@20GdiMuz
zBaob~3=FX%lUZrTr6k`I0o&VwBY4LvTxBF`nzwkIS!KH!<tyMftNc5x{i`#e(<7LE
zGw4_Jyrm_3)lOELyJ|j+bEmDI=?0c}P85X=@<XfYMrmHT`uF*{_IgPp=oh*t?S~Nb
z;#+9uDNh6icu~btDycvh>S!armMU%jAK|wVW~sCccx(=bF^+WBSyi^NDaoFn$=s}a
z)qqC5_#mnR;2iT>oRM_7XXOY5&#zkh^Mvo8PI>!iuh>lzO71cRNhSL&0q@3|g15~e
zeZ;=SXRDf+FJ4>RHN3_80{fuqDsBZS6}^tXD9?11t;=%u*gsSzq`!zu@Mb@$^r92@
zPMJ^CVMKWTBQ52w^9k52r*+c#E;^7q{b~3Xthmvi`Jv75FXxxH#NQ)k3*ryGc@w>~
z3ry|S$go?#&APLDGxmOvymGzjtYtj`O5dOi2WVKOR81)t&>Q#3bTo=6Uj>Y^14s<|
z@Gk75?cb4MKYq~6uV+cXeUfI)V@P_#kqzByNwY|hc%EFW$ESzNwVvJwB){R9`pa9e
zOrVF16L5*|6C~1`y1C@~lgFp1R70v6mYoqmxWXn-`bhlS#lzTf)P4)#b%ta|xBxo0
z;>A!5$Zy*$cff}O1qTZp^#i%95w@JtM6O71!hLCP9?CkRXqM2fRDxU8qI_5w{w~#&
z7f94!-DViZ&7^kj?iKDm5`0fr=>G>iqX{Uh3{+V^J8R6`Mla(4<&_2|LdYw8Bp_f6
z9IYg$R{i?Z)(Rcri^iwL^7b(G*;a?@Yre#3YjhJpzX@Js(FDgCGJ9nzo?Xb%kP>fe
zN(xnB@9XZK`-v+UBzNW|pw{I7yJpwVRb1+s>#Z$)fEF$O`z-RWG@&~IT0U++h@@72
z{W5@h|2SHB^|th;8o6_C3ivkW9CcKhn(E~@0dwlpL-!X<rgyTVj#b_HamMe1el=*1
z&k9=r&z6?)ur#&k`RVSAAP|p*r0G?fhw`4$X>Q=8e7u7?9%$ngy~xtEcjoH`rdg`?
zpUwV$f8KbUM#IsNl3q}<m`E2KG;47f4Q;T<tw+Vhgtu(<Vk#Pd=mp63ha=tb3pbNH
zfz1C)v>tvL@*Ve^#;3k4Lha0HG#94P)K22rfR#`hZzZZ3*{TihmO%vow#d)D*as1m
z`;Y#!f@kGH{a?8swVaPU0@G{hax$ixt|Y&zneHgOI+|B>CvROjeh*d{C5^!NQ+eo;
z^BJ_17TbUGSec2`?`&CNi8J#m%vDE+6ONO06c{)$^pm)FAbSFy;}EpSp3$+%OQa$L
zBnv&x-kjJb`EgyqHe3*<5bh-2-5am=nie(PPkY(RHs`znDrFBiNhuuUd4E9injfy8
zAC01g2-qBiU9GQAX_Ub9-mN*;!JgS`YI6#2^xh?(x&vDcf8}g;lHDxi;wfAyu>h%c
zwa)?K|7y7{48Wz~Mi>YYxqurVrD4Y~fyz#6Fe;okkQ2lvrN6#;9e(M5Ef3T~w4z;r
zngV*!E8r%DlwVsew!OVPag3po;`c^f5m670FjV#C!Vl!)9|mEUa&-#$0uBk9IS{sd
zYIXS`#(W-26C|6!4*z3b#ESTeQ(`-GIvsQ*oc-F~n?pJ_Xb#EQ9L&_(A0CxmMoIu8
zX@dPx4Wb>By2#dU@D2|VJZ^~EVpHL1QS#>Z_|Fbo&Zh~Cm5Snme-OYNYY6g)9(DqJ
z7<N<Rk#4h%Hx3If6XqLCmPnSMALW38Me6XT-2yn8M@L|nfEU*S`n1{%$dG)*YFIsa
z`7Ds)4nJ)fwreWh%qO*p18!&XE2>LAHKzMV-`POdw)&f%QiV_FXFgh|I$njs5utVd
z{Iv5xzkmF~Ty)d&g<NG0d9N!eaGJ|~pMVQt!1d6_q{76^CfzG@{4yPx*?~ZE7kz(|
zVb4y6y(HR5)M&Q&h=d~M+W-u{F#wlaN%cS*HK__|HcedBiuO0eh3u4i`6QnUvdQ(d
zyk>L}z9BL(&hqvFjD$(p!$h<X>kLlxHdAi4)kV{@lJY+Eh4T#hT;M^zi&h|C{zS{i
z=LhlB%&$A+(a4CH)T_CnNQl5lBGO7TwPSUfavCZ-DtU^A6^dS20xsCr)fjCa1UkeV
z+NDi9k7Btj{DEl?&%vu6eQvRoc+K}|*MpWcOdYSfeOVwC5@qe8uV?%K(ast{yD!B%
z23g`Kg>J~*Bg%4`gjY^uBh+T)sAg=Tj$65o0O8@`ZfEIH=yix--D&(kIeEZ3GtZq?
zf$T9g?_iwrdAt>=CA^|;og@oydw3PYGbtOmoduK&eIw?glFG;F?>&t-gImS^Fm!Z8
z(I5k}5lWEqQ}Tv*#R7c>Czy6ik11#Vi(&8}<O~n9y|-T$;3SUt+;+lo!XD-~$MiMq
zAG{R8E7>d&o9AcF+)ROgkA(-cVzg)c_98d>F7O$S+@z3YG+4KlgC4?LWqSG=b-~jz
zztp?ac!my3fVP@~BNP=**kbmi^|W~twJ9g8If8ZXQ?n2G5xV3>eilh~VIHWwYABC>
zL;*_Iyo|Qq$wTK~njU_jh_Tuvjh(##ieIVii$oV`;HZUGmsL3B4?p*Gre>s2+osd|
z+H&8`%mQ=4+Ae0Z{Ic}hr}Ja`Y4J5I^4ew!80^y>uq~)SMgSbL@yRDV&;`vzuHubt
zS@TCr1UT<^7pb3Un{A<UO>yW(K-;7q`<yFI$kX#&^En$sQML8zwbD{`C-{vyd@M{*
z;Za!<3`usD#3!RHScMhjIkXUozARJ6u3z>mRV~SQ-1uCth`Ib5B))LIjxtCoJlZqp
z_=GEuO%Siq)SPyVDYL$_4?DQ~_@qNXpv(R^S-A7NjF&5a_@ndJI7ea*8L?QpcRKnF
zzIs~DyBjJWm%rTp$mDr+ydWyJMGXJbsZR;~`qO*J^1vbVe7_rqJF#TANYyAJnv@o4
z2H6x`3Tfzw!h0Y6(a$|^+d(Jsw-|NKTxLi(*jvGBw#4oD!o_2Jb?N<wxml&)q)z=P
zIEQMSAVDG?RHT5=kdP31+mi%kF)<CwHf@xQNjvq+srK+Wn*K6B0#*|EDc+d(-kmXn
zB^pQ6u5ZA4$>GKFJwyjGhC!hrXa9_XHny%5$EXYkK+fokr-)nID5i!<=H3x{Z(bHn
zK!Qd~+3$a%v(^cs&3}7Ab)<Z4Vwy<b3>(dh0wzQwdeq;3opgkzHGK$L<|I`UD<e8z
zOr(H{<X(B|K)*u&0Q~Q^)!{BjT&4xhSv@>W2QfZ0-t}haE%5(YUY&q&vfd%X!*N6g
zX>=x!7bodt9pDh^QfhY6WK9@PZK^E5EG7qyc5&C+J|VvR?OnU)st_pg_pXM*_*)~#
zyByElBe;sn;K!J#J>IyFZZ1UXw3>}FoY=r`3mpRy2irvb@L=8m)Mm|FCj7LXc35T{
z6k1ihwwOx;3g;kFYSgpSw4ShT$L~el@I&C>;Y$pmzvf!9H-{ZHLkk`Pq#j)F{OL4>
zEC_`%X|QmvlN{}9LavaXTgnQ_e?ofL!o^nD)`<(+FE7uUVXqaNt9M`FZU=SiB8u9u
z9wN7N4Ccw*PhJhrf2^$+K5Y*Y#aviyb7u#8CYoej*pcRQ&P~<&e)-b(^f~MGr`W>d
zW9DyhKXUN|N7a-EKo{6?x`OhEpJ;Fwo=Cf1J2BR5h#J(xs-6X~sM1Z&!>(GZxG&5c
z4Q+L3buG*<n_a#7K~JXCsV3X46n6@0OP`=yVs4jA()CXp%6Vi2n>lX(=559lp@2Il
zQ`X(84+1nO<ZRnLn1O<_|MyAB$q5)fi%o#A<i>GeGQOOnOKgt&CK{n0wqaD?^)Skr
zJA&_5l5BaAhRRl)Vk2<}MOW*gvt}mO5p{iv2JL)m89HonQ8DH_1_q*>HeWD}LuAoW
zIU`ai<Oxgy-~EI|5}8X$3u-~{Ucj<izOA=`EpbNmWmfd#+Va_%H?W*(>zN<K>|*h9
zcs8b}#70z;KZh&O^6k2b|NT_PjL9Y9B!MYn_36uru)V{EU_R3!4o6jM(5f2|wr~9Z
zoCnfxB0&E>#hY-642_`T_g)UNC=Bz=8MEQBV5g!SDlPD(ejNUlb@nFP4=<n;!;%r4
zG{`>oTw9Zwsa8(PCzAE8SV}D8ErQ7Vj68Vyz;Y~PWf)<Ks&iW}NclSkn3Iplg4Zim
z$l%m1@eWC~3|s}i8X|wLlS+I_OWY^T(^9VZt@^<AQ*<ksMx&vTwukLiY5aF^b_Ior
z>qaEt-(+YKflnl<H)P<)YqmdapK0abPt0w8M^3^fKXp+DKo<}E+yeqS#l(o%4TnRL
zWAobLgGPO=(&iTj(Qr&wDh9|u(kF@iH8+#JL^1uq(a$$<e89Nhgw=rsY)S1`8n?&M
z`j;Pki6)Gy<;p5?uFA?kai=^GM2bR?^^F#;IzeJWH&y0qsUAY~cc1KTd=bN#12I2M
zVzi=nIux)3Xbv!+CM=xZe1q|-OFY0D>rw8W)vu^^Tv<(Vy!$PBTG}+;Mi#bk^&ptP
z^VSS8;1YsHlJiEhEqsOW#UN75NTIHd<D1#k6AJ7^KqrGjp>^8)!FxcL)SUbLj~Pz1
z0!VAOuTpwuII4l!L5E@ND88SrP2$70Y2y!;rio#JW(#o2IiFM_6nn>DIYIPhrh*e6
zK=#7fpk(FRLN(Xx@wbPEsWP&6q)xlp>GhMEhE?ThHBFdqkN=+C`4UF7bn<aSbAr=a
z&}gR3iLme0R7XVLs#~<fWcVgyPQ9brI7o*&2!-X<LBIo{g$#!CfN1mHUObW@)ArLi
zM9<}-1WJpUsk^)09+Xv;NyDIV5vi%LS|-lf$xYPckq)xsC2y%vU9+$r^UJ7U1Vh&3
zNsf+xW4}81{YtvI?6oi)1v;pWnG!<Jbo?_&L>kwPCFAaTd7=J!KVwFBLkiBKqRmTV
zVl`Zp8;1Pd^OB?AYv%jcV4-cN<8J$AXLkr{$a4D*chlq+h}QU0Of{$t-u$_ST(UNB
z1^-3HboffbVzE9j@Wc~#L$VqS`-r9q^xVqn?G-YaM!yj8(gQk)ra4O)-ZIVr+ww~_
zNu5YEV1(aCLN5vl6w!0A6cPF{pBZOjlB%VAN}Vwy{2oJC$h5D(fj%6&8;$(zV0t<3
zSWGmty*X3f=p8Qcxs(c?nRd$fEF{GTTRL;&Y<*GE!x#QU8<UrL!>Q3**+ovoH!`YA
z9lsv(;@exGfiH`*I9*Gxc=Y*;D5SA?SQpPMDAYmJHIOVIm7__<-M5_?=_w{@s73yG
zv=xi6y$yAf-7HP14^62}L0I$KHwiK8`z&)=NMUI!Q+>hu7wiXIVS$E6`MkJCPdjzI
z5$D*rcAQ$#A5Q{22fSYylqR!(Tp9(n3)2~_w+IiX*9jZ!Uc)#Y-dba{kL~<3HbLOk
zAtS?B-5ewt^7Yfh{ZEk45GTd4a$WwV>+-|fHtn8+*IO9a0)19u-c7sVqBw(A+X8I6
ze#*(FNY`B$Ug<=6UKI|r6^}X#X^`pfrV@vv#qsJ)phg6LoQ_ssN7;|SWlRD*@A@YB
z#*#-L)ajj$`VG3S%sgD=zBKZqXDsOVdLv;TI=ks!nCxi@fa<R({vsbVzvsLDc<PHm
zffH~<3fW>^;|_fB%P7zgKTgk1$Bx=jXn`z{e_OI$3t$Eoh3aaB*n0#sB}dP5au`BA
zL`4dM1=j`dM1y|uH0uQ$dMAxZ46ZnM=?^HzX~@HP`dHO5Y9621bn!T({b|a34n|k9
z>K;W$>Vnz0(o0KEH?Lv11kN3`m#Ou8uHIy*SMNL$XlD;ib+OOGX=!i}B`uV@RifGM
zumArG%kYy()Z=|`ps~o5NS}b#b~5%BJc}s$tw=0g-?X{_TM+D2(ov!JC1VqoHqjyQ
zO(;)g@~8^nG5dqvvKq)b-mZ?11X31s*n=O+F*V-QiWX<N+%&}}Cyy}g-%RkE^5`z3
zAr3^9I}2|jft)Z!4+4!>-|A?r@ZoGtnQ&2MoTUt!d?q;A{{;1!w?UY`VqzAG+|6a5
zGFjiWPcxd<$yndAaLB~+A?ooz^M^e2>-XaA+mH!`B@M9$P7asqV00sQMXkiWCYpaJ
z-F8hh?nfM{+xK2|>fj|EW#dq+`2gaT6FYk4sf#mlswc|gvv@_bmGsksCU-9`Jwhvi
zyS@XDs~vW;MF4~125xV|Eac!c<IF6<US&xB=8PW<LnQSBlN_n<?J4?0JQmdB2(Cdr
z4yVGHrT$ZH$`OS>_xonCMhUcIf}eqd7A(q4xE)g#AuaVT`<O}k{nWr}mXb%&75FCi
zL{(uOXpsDWEQ5r7a>8;I_(*=uUu})qxv@>awm1xYu?Ja8q@(-uyf2R)U1-OO-17AK
zb3?28-E`m4$lt<!TGL|TWb3$hQJ4+H-{bcmDwTZE{($+$+F%g_4?ASoM#t_+yhA|4
zjtahcm67<rr!`^(^lT?2zK=Nq<TmG~-x-nG{M$RpKq_Cw+4=sjNalH#OF>_732vto
zs4I!+E|E`;Fmiu&pJ_}UatxgI$AMyrBb`AaY=sF{(_aI{=j6-N2m{Zw;6qO`F*>94
zUziXkl`RRaeW`n%n;Saz_VimTT_&jZ)05k?0bq<&u>oV-48iq_JP)8`J?4@<>Y!G%
zAg`UNuzuh7)gMJNu(V@>dcA2VgiQSVZn#h?3^PX)vNA`>1C~P3i*E2-j$mYJiq%?;
zl<g!nG<IlbFa!uoQPTH#zgnEq{5fdrM15S(ARj62Ehd?)_mG!?^Qf6TFLWz^5Z4j(
zGLCR8r~n)sHm;mVg<ep3nYG(ahtTQk|1>TH8l{7#h6>-HcP30=d2APPsJ8w?!`UKU
zfiQxK&Txr)Xp?3Z$JldC{0dr(`72g~FCF)<&4T*APbVj5DlD|onl2m`xxEf6hXaCK
z0a8Ew4Wk%&yzw_9PTV_jP7)U2($m&{K75$jZ*0cm6(!e|xA90sc<tnr3D*^_9H@rO
zV{uo`ck3Af#8@*XYn|#ALI|DAAb*YCzv%2P*!N~o!-!4bA(Rm_PAtkZLewx5hOK97
z7W>!-(XZ&H$#RS)KQYUBYh|nV_$o<fUg;%5On+}boX<3iF|0jYL{i5vG^Izs3S93w
z;X0bnqywZ2&wR2%*YGQ*3FbCsYzH3F;58Wd^Tg)+x~l-15^VQY0i;z|ZI*ktN@pQm
zQ*9D$67Nd3;(-vnQ61|?A02mn$}aq3uu_Szl$4IY=Y|zv-8-GM1E0nPCLU1$d({g1
z>RUp)Wx2RHqvJ(1>a*V<J7{xMn5uK{3hE)mScv*eQ?y~$!_C%JQ>?10hKY(8AcWQ3
z2x_?IG?C_`XvZ|)vuUn%c6^(*+L<sYBuU{)h<4lGl+uGa)T0gIhnL6k0F6$d1<Js<
zVKa^ZFIsp#tEis|iZMo=VS+QrB3XUxR+#(N3+YxjK7XWci`8>~2^MNlbY>hWTqY|z
z8*a>a%K-%4>m0Agu(e28669f>z5OW*WGw|^`qq%ST%EP)NfP{0l*deJEN!MR=}tfW
z{xU{kTdB}mK~0?GB}Jw4TmSt9Bq{t1v->Td$;eIuR^%NM7TULgs<xD3JA|l2pc90U
zVeno6mIiDfl3s$y=6hkAzr#r#G#Uc-ac_9AUZCP__=^(qIHqR9{FD`itl0e{RIpLh
z_a6hp0*JS3v3k)A<{kS=_(k*O^%SOI(C!95x2eo%?O~__--R6ZJ`Hl4pA}~KW;#6B
z6{LeH{sx?v>TCQ9))G(smHyIj`t3+MsmuZkQ?Py*&2)4kspjiffq5;8Dk@m_D&@^<
ze}93?*oY^iPj8bklfL8bX^p_1+*4XC$i1Dq_wea{Nl{l2l7N%upr)D0H8_1dj5k^8
z2f}Qc-vs%*oEM43mB^n*f5%jj^3Po^psnOdX_((VXcO(s<;0Dy7VbN)#v6I(Afmya
z4?S9-4=5*1<+Ie3<v$>_ms`%2PBG~<ywW9`o_)d@R77Yl(_Gx`Oah5>jV<3cmrd|=
z9$^lGsjmX`h4gn;istpeJ{6;wMWP_05K7-QO}`P*_s!WQ4`zTR(nU!<eiPGLu)JOB
zOF)qS$(}$hK-5usn}Tsubb4$gK7=14Be`ZHbVZqS;JZ1R2hZC4VqC`!W^C9|FwTy9
zZ3RVgDdELg+>J_$yHFqc@h18<27$dtzn6J``e>FMQ%352b7QHC%b^nJD;r52U%@BO
z7k_JK|0AfYiz}BPWK{+fC!Xk!i(6hmK|7iVdkVsmLkQTHZf;s8T%MkeD@M@M(b3t~
znvTSU6`dM4$YPht6cuMf3(Exc|ELgbhDj~%TpbGEuiM%{QPycWLB{i~?2P=fD|KP}
zyfU#oblpD{ceN|O2$vyez@?>uamfEwqPG1NRK2rcJCXo*hIq55N3*?BKBt<@_=r#~
z9h>s5*DWRmS>%)&$^Sf{NSB3D@B179lQd3rB8EOOhxTv4BUHAn=bt$L{;V*_B8$3O
zM1dGr@aOs+Hfy3x-S!#yIR7?daT&>1&>=KfjC6;BDUKM1JX_fbmm(X4dslL-DBMQX
zH>o^>@i_N-5%;QP+l$xlN>@4_?TF`s8T5!Ah<0a^s|U-*y27L;@t1rOFH;39h@4Tz
zmR$0HqIgG2v}?VS3RScaR0K01<-d&Nn7OUGITIrm(OYpa9l(PgMxmgufksxsGyc!v
z?@_j;&F+hcFkH9)+Y3ORxbz^;mw)x1{_6)400(|g9{Hv_fJT5hQrB}w`AeQeX*K_j
z7nk+Zh2BYN!fQMlSt`|1#=FjVb^4n0J9bomQ3~F@fUS_=Y`cUMRbes}*`?K*I+nf!
z5jCB&S(3o7A6$BZ2d&%P7i0YkC*v+#*IbuSJ8SrDno;Ok;uTJxxBh1X=>KitW;`*d
z;@DF0BM|c>X*~DU3&v=$WBMQc&-drc9pXgf{O1ywq$kIjK)<`u2n1*9B5<OJ+SUop
zJ5!f2gj3+pUc*1{eWlgwzxOtppgwT7g>%~u06HH=>h5!tBk-e)-m)Wx1;Ki_5D3d*
zSAGo*5*b0Z^PWA&-}1=xUVRVq6CIK1f|~P#rn%L{t1Lyyl6j2P`=-S<a!OYaabLA+
zBO&FEbnDFD;@8kb3XgIafYEz?O&^`<3im`N>{Tu_UBf)_09T%ZsMoa0E$_9mTK_cX
z%q_>0mNdjV{B8#u`(wA=tg)0*)a>N!H`4~TMy{w0aYYW$tq4r2DrzJxNUpPIg75B1
z)5}~*$-mb6Uoc{DkMQO!>>Cn9Fu~dY`r1@wp#P#5mm!2k?l?|lMhhe*(~T<~Zr*Oc
zC>=PhJLN1D^;s8f)o}Ak_fJZO1A~Nzqd4kG?F(&_g=uHXhOK~E@Xd($Pn#J+sUABJ
z6s>>v>1VO0GYkpgmoVY+!k8xfMMI>v!vouLbOq9A;yh8pbAX;9u<mrOr0{ZudlSfr
z&)W@0_|py^-`7t|L1fRXBfv7@j9`8uasJ-PccXr%gH?Tq$6_Z+P4@f)^pVTR<#33u
zh5Kf_NB8?)C1N_&KN$LkPJR1D8_>+IbmmH?3@fZ18F=}l>fm+8otD!rcOSO(@j0U?
z)Yk-t1MiH7Tt#vWBvDXCB)78-{M_b9DK`MJs)^Mf+vKp)KUt^}qbE;hY<P2j%?$}T
zSMQU_Lw19@^7J#yOdO<t5)J!~+1<cjItPIyw{8oaL{5LIyD2KCV{~uWPumRFRIU|y
zgn@7}cu<8YM&t@L;1dD`Y(ITndS>-Lpe$H6WZSF)C?H$<i>pGW;6qIGCwRVkVMzMc
zdJ9I>v$*6L1_mq+6z0BP(`UmTOOyY6_<KG9<h5+K=^8*xQf0Uo=9*-jwW#d8`yio`
zWN_j!UUd|I>O5%W69(kq_$4ZAe0+rR4~;-;@J!O$!xj)i(JRZa^{vR#CFpQRKxe|C
z>2AhuZ;<31+Lk^J1N2D*fj%rnJ_wT1^LXg{X)C&SZ&t`5lLtvoj}UvsRW{9lu>h&n
z<?;K>kM+|&XQ{DNeuS(YkVDJq{WhJn@Cm2a159owl3-%vOE6VdhC-zpq&?HA)S@g*
zfb+y-HmlPf0U%vjXTm#kSi6wUNbZtm_lK=PE3y?F)0xLlnJa80s$99*i`7eUgLXcl
zL0ys^J*8l>)cpJk^wAz%w~Fj4hqX*uSw8jR+ugXLqO<Vvunn;bCe+^;`t1+=IJd=l
zB?G@da3{lggFk?}22+!NS0ClsyW(jrOvX(GtZLDHDv1F-QVt$7w~%%Sy-f_(KQXXx
z_$lyWdfZ0<D5+`2&2n^-Af{|zB06}$!;y(?M${4XrHCdpVb3e*2Hb|WVhjiD>qPSg
zTjtlX#UQUZqG8NZE-ulS*A3WhU&WqUo$lK}=PFyBf_!y??xU9F&J_~pE0I@MUqP>6
z-f7Q|+WB<XS<`7$4BzONpP%vXd8JeOP2Locro~7h67Nsfl#FO9z(<JMr*-ax*@MDt
z*wiIzS`k;jf?SLCV=1S+;U|ev#0B7~GVDOg2Zjx<nQnOggz&7Cfdr?^eoV#(S=8mQ
zjXjM6a|F2|>I}v61is|RSAK@%pj>&YuHmFb9awj~Ff}+;eVq!98!3Q=fv=VXY+^D-
zl8BOWz7=Wq<M3|Q8Tj;7RsY3y;Se`KH#HXTjo+@Q#H|pa-TrF|%Y_@Ag>W?ALIW@f
zC<Z-PMMYpSb+2s@ZHHyX{z{zDx$%I6f^jH2>mHS#nXy_>9k%I5tp>?78flZ7*_S>w
zgfnYU4~65vW%4LPNBN`vszlGwgVhM282l(F1jJ~KwZ_3y?T2b~=l9oRZ&t@MJ>RN(
zfN&r6Erf391NQiyZ~cVzad=;sI~=c&Od}VU71_jMKD)h|Ru2q^wd)`g+XGd|sOb5x
zc9-eTOjw&$EJK5u3lfwCaOoLt^;ZKGaFe(@QpOPy3-PtZeWC5w31HPd;en@1Zq9?~
z?As*SVQ{28e>0oGfWv~5H{`i^0H!(G{-Euo<)Wk0wAS0E7lrMEE=ID42R%T(72u>y
zw+FmwWBVU7lV~!bzcHd1<g1zVa^^k=`x?Q_1g|IU3#kF5(z~&N6|{_Tb$RKY(q{WV
zB6SjsiGpJSwUQ!iMA3CyyUieexK#s&sNm%GsRxYeufVxn?7mnMA7-87w|2zt^q)wo
z+KcS9TdF|)!1dDhx7u8B_KX%=Lrq>ekI5tR2DypLt4*@^&A`aCSxWf6))V$v-&jK8
z+F}M+%-WNZf*X~MQ!cC(&L0UO5$~*}{Z&TEmpl4;UUn&150(tGj!k_t4{NN>sT9HM
zM$dmN{ex8<Dhd2o5F}~qH*drE=52|DelbU$X*@38Ei(u?vw)9Lb7*6(xdWF8Dq!0+
zx!hG=S^5LghHPlaz+jKDeEW{jtzr@K5QJCZGXRgXRj146;f-Q?t$y(Na@;I&?hp3l
zsxzobwg>&jPr{U&8_0yIjJPrh5YBd52$5AEq;YrRbE1(X_-&<tsA^A<C>T0{uR|8v
z)20>=A<OZ9g?n<AF$<^s{v7-(CBC`NTU#QWULqkh2$eRYGO9f#vqjlk&v|8ju6DwE
z#aEo7z4rvj+%I1DHntse&kUD&7rEFRW|rVVf!p&BOcF7%<^mhLr5PA8nI09$P%&-!
z{4n6PKGf<v73yO1w`SV^!7#0}D@kn1BJB{cXpsA@&fR=OXv*WM-BTDomx-i&3JWi}
z>1N*y(@GG}DW=&vwx)VKyk@<q73H#2QER#4$bYOB)j;6akAlUIMiIBsU53}YV(8+g
zdtNagFz%l5om?GM&8kAe(@?x-SI6JaJ^ap0#J!3ibro^*p9>0IM^7|R0Xg40DtyyV
z3<aEbtkC+*p?~N(Eu!*8Kj-&l<z*GY7$VyK+aJQhxEnG-%DrB+btlw{p_VXCiQ)TQ
z?O}66EmKod-b?b3ooJax)ZgKY%ceWb!es$8Dp77;4%GNs|A=$au!N~fE6pg=u7wJX
z?Lz2nuvUk(S*k_o5dFWfep^t3CNF8>MlC)AedV8W=FH2K98k4LwqEV%<~ISpVS@6E
z9_;tgbyrbFS$YXL0U>cJ-{UWUQp4K;jD&fDn5$Sj0tN6E2KNV9%k@FwEE3m~(XcVl
z9TD1Y7b^e1LHx9vxl?qkMH8Ur6keXH!WTp|yxQ7M`*0~nL5R~W2a4UcQ_#wA_$scp
z(;4M<(Es^eT~w`P-c+fD2D!~83uaz4(*CeOAi<8Ey(f%=wWNml56cC;FC%X!A+K~8
zSM}MpdTRAmmkOh!b3tv18{*7JC)M+BYe)F5d8bM~0<vXvfl@nnXgE8vXd%5O7RarY
za^-@q?0{30!wvFHDv_REvZF+@LRIdUT0-u4_#x=OpSW~!ZnY3Tf5n0INCk%Zs40Ws
z^!DAYBG1v3q^6N8x`pkr@u5N!x~=8D!}{qxmHqK&^>I+IHz@k!9TyR8WV^)S$scuk
zV<&PY@+UoXf)C1E-aaABKOI!M27{sjIo20Kx<FU`DgI31v9X*VtAC@Eh(p(E`rlfY
zF>Kj!>rQtR$M*5%G#5Jo^@VvaKsZQ~^-AMlq4HPJ-96`b!6KWlO9V-47wSUh@_}zq
zx$Yw4z$EF}-3Ra&y6Ec8fEH*|<9lij9_dKc3{Y0iR(<Bbvc^UuSar!U2=x+eJ&I8t
zdtEJBUs_gnWVz{KKk+@csA}1m!Fx+_EH>r0`&ScJ_iG#wOYejdgozT9uR4{y`UBvH
z3)G=>6hw)0(28CGf(J;nZNIgwImsYvksC7Jt_o*(5r`!O1|HV^6HhO_h^$|{+fd|z
zUTv9XxsY#ls6&L)4a`t{RR7Bi*3Rwh==jVpI2S6RGflh|R<TnXys?Z4w}%<LngFWX
z(SI+E+dzShEMb&6%3a%Y@B1Un#HG;uv{9LJYxDd>cl@nf(Vo4#4<n4<Ll&U0wsgZO
zg!)4O6j!Kx0bco#cgMeB^$T_zC>^{P5Uh2e3D7GFx8$|R!+l%Al|O^{b<?(WHmXxA
zKzRTHh3)UVOx@}Pr~zhzHBu6UHrz>R19Q<It?clbnyh)+eu=q+t6#;%a(^Ft<o=8B
zBcpH`+{F^fyKP~WMe^#y_8yVUrZo7f4AX=#d=kN%Dmn~f=`3vpSKlQ;9TOejfc0Kj
z-qPc4m%m41RKDa=fGu?grjk=;$&IpAXNqw$dm^;&sohj38e~0C$Y*>0WH>>t)+A9>
z-BSe}137ikjEE<1acKi^Xe>YGukZx_2I_lZ;GbFxm(PAgCTX{E(^|L(R!9J>aQidA
zi^&&8E_L_>loL~o<)!wFu)G4&HWz2-OR`eLisN{=bhwl7P7#f0Depk$5Qi;|S-Bfb
zkU4$FM2aR~&ehkeTp$n>BtnfHg5wnDl8UY$vfIGuQOehMXbOPsm5yD^!~C!@TB9)a
zMb?JTZb~in2o9daBHTQVzflHH$fkc-N65kl41gN(g~h}1j;-;um!?#7Nke<ecPQAl
zs@JTokAnq{|LHTjS0LxXGzs>Esl!6>P?%=d=dOT@mhC1;gK0tDix5XxFBUx6kD1Li
z_h0=;^eX5Icm|R-IIHqr6!K+(Mm*=g74cgCK5*pMWy3lG`uHFp%}9z#Va~Sc8Mn2d
zt8e;4QW#DscrM8Z1oG4Fp}}w+fz~7<=C9JddaLEd97^15f2^{<;{AKt@=xKAY1!nL
zLMD`Lz`JVU<0LFm?R15)>MevtE%NT=0BGHrH0$fR*0$D5wXVRAWli=5dUeG8d(|f-
zW?^Ap`<B%dKY-L>J4LYF@%?$g!<-~LQf77MD$_jBL=o-@HWY}l2OS?_3)y|fRQA6O
zqtf=1GnyuZ1Q}*7@Py8QDPPirw++nbnft#PcQ{SmW*X`QDyh}SVS8sBO3ZDGSNE#K
zt}7~bmI%Xo>Z|Gs<Uf`z9J(zJlE$?L!#P-lA2L{dI)x)&7q|S=>}7peFx!S@id5L&
z#CIW9hu<F$?Pthx(89-PCGH4R?MLNGpX0CC8jSDK%B%TlnKtg_H4qywzjL4JS-kf}
zeh^-NPnQ8U>2PsFO#K{CTxCdu5F+-Nr1DS^V|i@<6bO+BV`<vfuKgsd@<;R_yTVcN
z|56QL!92sTUhV~3;%iCM`ri3*?<wzrn5}Zq?2MJ9?&9{<wg=}Qvv?t0P7*;ZK_4XZ
zGUnF1HdGr43cKcwrUi8+<)7L;b2CzTc}zf3c&5#m0t{cs()e<=lpdCj+|2>xrXF(d
z7sQCCU?8==!Pi1I5e2#(f<eY-Ce=fXyxA?)55svDvY|S+9R;2emvWkY1GskrAQQy?
zQRQis4<2d}a=?yaBX~FfRi|RiJ=0DkM@Gb*v7<<&_oen&;~^wLMvOeklw+&z&OiKF
zcm4LJ@pd7McUa%-HOIrL_Cgx6UW%g?1y5lZpCU~sanHHUsxTWKM~`#;_l;%oP-TY(
z#v@Q9$D=V!TM{z-Mx{JtapXy3Ls~q-k$5MrDo{S}g*{)LlyQktOy(U=U4L?MMKnxE
zuLTM+94Wpf3<4w_#Bf{Y5SIP4VSFfW9QYGTc#<n}6&I0obOU}E7)ccxMx^d%dV=qQ
zc|P5f-B>Zu{ZTW)JZ=5|wWU1h0l9BSfwj=PNO#cHK$1U7njcN}Z&h1O9qEBLB@9`q
z5;e80+ch2&uzNEon=qhcD)9wLJPsol$f-FG{|!$2yx%4jcnpvDYQ8D^y3&d$)}qKm
zfW6*-wLM1+<A?08(&Y)z(cF=g?4AMYqgKQSsfYXH(&Yy&7^vzqLeY-*XY%5aYZx@3
zTSl1}O75f=fY^8mOGa-8El&XyI^{y|162F}r{e{Uo?<Nd#C6pYEmFy`z+76KjdtCg
zPRy_pe;RkJr&>#^)sFwe7kEjyJ1-0!t*_t9nSsh*o6q2}yl&%KEH_BU@M7-MgVHP|
zeazm@^b9OvOlFrg>gUyqZCkGE8=5cId`IzZt#@BX)ATr`9>LE{b@0%5to#y>J0R}a
zOc^&8#3GU@GhEN104^g((z}~|%hsaZl5?S8TGw#7yR<U{JEzZIp)XN6f)O6n6#!sh
zy0;#5;8uqm^?h6q37#WT{HvDs^EbjZmVeT&4XMe5B;avCoBgkF<FXnAOoMgpic@=^
zThZR=G2TsL>dH{{Bd=Whf(HjtzZT@;sD0JAZ7Kx+pkqFwAB!#*uBZym{92Hr<oa3*
z4k}d27oqC!UzP4KI0*xM-!F-5=^ku_dA`rzoK!17L;F5gacYTk>veA9>lk{ET0oU%
zcKd25=EwVd)X$T3?MQklZ+YHIhFy|TB&a$$2mN+?@aapXu?;<g;&woZKNmcJI^szf
zrp-}u;>E4+9S~rj8}SQ?$<Y3F1hDANcBl#`vDq*G1%b;=A^*Jd`R2Skoo4Zr)LPyM
z>yv=%J(c;VEN3a95d{m1AdrQjDF~LfIe-lp<FDe8pdLGmQ6j-i87wV^1JdWKdnW6!
zw17<MZ4Ej~{a{Fdrs>%(5L@sAzHmATy`l(SJ4S&X5KL^y#+R4-@Z}~a+Bg-Xre|&8
z_7;j7;Ce#|-T|S9#WXn0wycZ{5wveZL=MMkb5S*%o5diSwUE^V3rY7Ab*6s!d%26+
z=Fs0ilgU#bY=E(K0Idr$ib2mGHiJQcyyGcv<L<=FPL)l;hsbL!TNLz@lSt{^+UqfR
zka_z2a^Yyo;7Tvs>|RA4ez(Az3hjk93WjM$n19=!lhSZMl}_xX+Sb?Em`c;J57<~Q
z9RRka-?szPl1SA}Oo|Mz_V=5}4rm*|49G|U3{-!kSxq7G)zHdL&N&FU`Jc>xH7#vv
z;u5tE6}m1?U|m^RJA;mlDi?ISZurg%OTmEj_;D&^SYzr7TMxDplGN`abQ^HMw<cXL
ztuRelkxB%w0*egmT0c|N!$49G&*)E*Md*0#kN*O&tI8fHR}DxS@WVYNMNLq_vLEGh
zr0^Ek<})P^hb*5AZtfIaN5x+SS57m)h4=RgC|&r;kkEy0c7v9WI}?sSn}u`44?)vL
z)R$7d%c|t(t}68`2O2X3oUPmm^q!Q6e-gT{AVP~@Z0d!7j$o)lz}BP-!z{Bcb5~+2
z@8C9HeU$&51FA>Lz@{VHalsNJq6SN78ad*a<W4a*5DTke#9I6rdAe=ZFe&`YN4ue^
z8de>^&`N9o)BE>nQtOU<@%dKfcQkjmrxu0K@o6<bU=#{4P!Nb$yLVr7kGk0dc*v65
z!R>Yc``?<3Zk;2+@(dcw1Uj_q-w8=IOPRr_Tk@6_=}rScOzrK~H)m&Oy?R<sC5m&<
zLCoXp-SY}#WuBu)HrxnX6HD6uaO`4LYghhq1^7!af7;<0yz)JHy-(7ZWvoM?xfF+4
z0S7XXx`il(H2yE0*uhD6=lmvLlnlCs4?jy=^RGVFVL=ZP_vIi}(-@!MgS{tCYWUz_
zO@cztq$&I+KmftU7mauGhC`Zs>i_RxL8Xxc9C(OWhH(<|@Q~kn3$wq)n%l$d=XcY8
zRApk{{7IW34(<7h->DWEPIKeh1(6*JB4@BuzPt#0)EJ0miPz*x;t9uWXO7vy1LzYK
zm7S}DPLPnvE1+W~%YXO!J%X5W39;#i1B7nO39P0<6NdpK063Gqe&4Eh67z<b?m*vg
zcjLQ9@KGRzO$(7Ii{tjkxZB?;JO6&70I5&y$t8ktb*q^vs{e|UbDSCg@GxNXt|<G(
z4MtK{%<ex(B5=ceHqAz(TCoxpABPl8`F+2`QE!fAX}g1CccAD_9!w|MzN#3^=K-=f
zD;g-&K!%bi;>Fc1=lP$z9AYT{Q>=6tq0|-34gh~Lo?vlEr*Haw!OR)w<ZB>zS-rna
zCYZ4=!kn$yMG!6rVfETr7>6QbM7S-xXV0s(45&)SE?{^Z)?)OW=M|IR@Pkc~1bsr&
z|7O~{nU;%y62kH>#yCr&FDnn#mq*-u*R5P>z$yaB*cFP?5wo9PyciUAhK=`XP+jB4
zodf>V;(T+P4vO4y(AGIYp90?EVA;ii?v#fPhkW5jtpGpAQg>W;zo{h%;04CMNe6n2
z5eJ23g-+M5(^*Kx4p(LF>n#Ga+UE6Na6+y;6bT?m?`EZ>t<$f6O5G?(+Be3w(~P+R
z!dJt8?Ugx`a?d^MB)5XTq7R`Q_QZ<-VtOfoD#u2D)`h1a#cWG(gu1KOanJAHD5Sez
z=A9n1RbLbmufa92phsOZp~PxOvRc@Ynyn;~dI(cogL?N~&%pA3`(#NvlEMHUk&uc_
z|Hq;k`}40+y*ZnFd52>X?~#G681{t{t*B}&Qgi!X;@p}F_VWWqN{z<!yS?_wF0596
z;s=&DsDSlt`PN5-6!d=I{(cqE@lc}Q`2%2(`MZH+Hob^kpoJU0C#jWIU7Ir5<qH5a
zkto!Yf<_6Zm-Oo8%F^4-7L1}~N|jeH-VtnB2c}_%d*%a$1$3(<vA|CIrMl0Hd}NF}
zpyaEqWluU@g?jhWu|(80AaBJlO78FV^D@pAqNHSfgY2k#c{pWa#SF!EBQGjMw~E99
ztM9cdBfA?1G(`HGNlVj#=(z~l@njImO-wBk4zv~4_c+CtwVE%38$ISnei7j~iDpWW
zpVfc@sx%3^VP9z;|J}H*{`4Ae-2|W5;@47cr@lHEX~MgO>O);3bGsowar&z&+P)iC
zDp3v>l^VSd!{q?wK&yLnr>&7*Rr&v}CU+Z?>rrg;-U9hi?)u%e2EYjlg?6009&_`7
zwoKA;NH-S&)<*@>{jkz-YP7>*wxZ3q;wCE#0mw4l*FYleSK@u`$BoC!Fuo_dYNem`
zXQ$yP&u%e=-hTqdN@~VFd~wpyV<+*kh_{|}h?sgpnWHY@c&EzV2Z|&>qf_T*2t?h}
zFUkXjlgi3c&C;ym#HI+M_RyMVI!41u-!hnZ>4zK)3$|>t<o|6l8Ol}qHT|6~|F0(M
zYGet%*r}wncTZ>!xjq~<Ba6Yvy>wL#wSVe;?3)#iTD>060-tN=u9<iH%F`rC$3CAW
z;zR5H77edk*l<M_kp90i=}Ox2!sxjEDJ1-ZA9&2c1RE%xrT3Q{#ego@2^FRN`y>-J
z=5?5rH1R|FrT@Xb@=+J6_j$HTUtv;F*?Q0C^hRt41WB#+r(eeERHG_g=02RB9<p*5
z>n?0-yiEmi;<_T|ci@KIo4kZDRmd(F)iV623%2s|aBrzvEiG^p?hA%#MgQ&*UP@DM
zj;|IExW#_SMaQ6!uppXg8q`A*{)#-4bV<s7EI(+Eww|WrW8r?1#ypNsNBY|~egmGD
zE)p2+-=*haKslSw+gsQVTjS}^$dvwS5BAK`pJ@p(&}xlDx*kwX_*{OtP#&-z%yu#U
z0Qtpogr06*RR9N+ZS4Lwy{SyBmH6jTnw2z9X^`PvzeMNb;$=xY!dl1t0i+t?d)=60
zA~nER7k>~MD8eOpVxk~`T@eJD7ec)FarCe=1X6{o5)(^5h4afNnK?9_2E5jjFSK_<
z{H>Smjd0*sX;Dai@`%+F5>&=TBYNtHojft`@!S%Vas{@&x}?MFKec7?jI=F~MgDRO
zoBl2rc+A>&CVV1M@EiZMg#iP}KNLcRVf}3$`?MuJWc3xe<UO`y@BJJ5RhO<97Vo6q
zdCF{A)TezS-q=_T6DkgGAL7w8R=LuKBxag(Tx1}f<@y$^T1d$fwgB^yXp{}?Lw+~r
z1CoHd6IB^ZF#Z;xh0|mJ1Y%#)D1eb}f3e`Vt4Mip1#C}X!`)iIf}i$SW^h0kTpl_n
zaJ~kng=W^DCo0#)#4R!|vSiYN_jz)G=Bq<2Z^Fpd>bS4M$1KuL!BnO1SysM^r86G5
zv&Pdj5rY~>!~pAU%KO0+B`qE^wzC;6oM(zi6{swV?*W73ab@q_0#xEetr(KFFd|6E
zsznEkciN7en{Q7a#n=R}k;`1H?_sx&+W<BKbQ1JgOuPdS8K~QJP)KcW<H-0L0WfUe
zP=qdNF{AD~Ejit;K}ER+v&Iov_1K{MY1jSZV)EEf#}FWGpxG5F_dl;r>_?~MVR#+k
zYc@Mydt7OPJyu3o=W^%?aHI>UkHlcIQfjvOleSI}qKd4Z8=+;WjK!1cIUmTyIA?{K
zopHn4ySGr_=H`RYu5Uysb=TvnJVd1OfdDjl%{HkE+sLen<3XvbG!c<RLz!jR1GK0z
zy3zPWGexHL*z*84T>SS&fJP^@oiUwDkO1Dvzb_JS)q}M(t(52n16+j(dCdov^5*<r
zI*8`@NbfG9z;{$YT0^Y`5ZNenWa$ZvC=wKIR&qvSbu~snx0q?U4Ff<d8prE<2ZbxA
zj2#0k$vf~{0c3mo1HMXUD~cqX+CyM&T{WZUp5M2@J3aFCejt!+CKAyCEBpstq4}`(
zjy}jN_w9v0WD~gKnoZ$}x54qA@ZtGhmT1*6)SUef&^AQ}&X)y<|BqB=ze=PelhWUC
z&=S@jrl_3KgT1R`n+~&hxL-%4o4$Z?%B-{kOAB|Z19u!{I~Z{I(xaEKH;IXxON9un
zeW5w~Vu2wMucF&}OQ@erYJBc=x96RPAO9@SNpU>O!%nA)lMK@vF^;<&R4(U8ZUEpp
zD1n>xXM4i|Wb!XPL8aWlA@nSz;FKmyORx2oiG@QN@t7+CPQJ?k+B9O*RKgUDzVHnG
z^(Gy(X$YDl&QbsN>CK<g<y0#HG2@bUP{D?KJ8FS1GB~&S{x(}z&!mn&3khiTeh}5*
zFfQxzGY3RDR@G`^PK&X*xOGrG%6hogGZX6)=M#)h<+zxf9HVTfl8nj0kBvO6MA7jR
z2PjCdLm_bql=^}F$bp_oZlB-83QRY+msF0y+7+!8V6s;lNApd26Z!YZ_TcqSHhJ#-
zd}RLs)cg%CDsqS-f!;MnJp}H<f&*`3da{V>Ei47z+0xSG@cv~<SO)>{WSNi6-|Y_o
zvmsg6;zDHk9qsBB`xUzp)+aigo=Vv1_p{Y2?k*^sma-Gc%SHqLhpMj*tGa92-J6z9
z0SS>1r3L8}5KyGqbSfp?U5a$6NXI6mySqfXyBnlaI?vjE-}|0({_wh<KYVbp*33OK
z_uMnTt}sL!<8?v(*Z4)H$l&Q^IOh(?_regaj>?RW{Xerjuywsw$;<tvqBbdHzM;+b
zSBP}4<AF)b&F&ImrF#=&DH3628(6yd0QGE8{<C8vMudxy%@yc1Kj0yweVZ+jm_P_z
z2lKQr15&V%X-atd!aZZUw92KINx>>NxDT{-6@O`^r5rCyb2+mdS#UYZ!#pP7lYap?
zTEEZlN|H=n!-ODnPPsHN>8Wsijb{W#*@iGmnPtu8Wk}Y~Cnpm7sxGJiM;CvqkIG6`
zH@lD4827QnPjJ>6=jMrk>7A&ZgQDv5leVLT1aF`?<4fgzBHO$7{E!p}O*%l>hCmyW
z!1#N)z?Cw5Z&nJ!R?vCbKRJUJOhvn^6nmALz@ZywGgY@+e`aQoHR#5OygbgsKk%B=
zpXcBeegD>K&|Bv0k^hXOu{(KXq5a`Ee&C&=V$HG3ZD;atmS|1jK|vunpn;l0gNk4C
zP;AInWBi9+?=B$;5_f}Sg%C;*XYr2|+<GSl$l^)i2;POqOTnqaV9zHE6PVDZq|6@;
zc+t=0=LF{g18(_5@&^uj<C&H;sD~6?&Ymw^Rlun()hMo<4>;U!NYTcSTS`Ak9%q{I
zd16?6IU7SvVL&QO)(k#}u@K?3Thw0$OV6p#^-e$HypjCVYXphb<U5WpTK!Rm_8-0(
zQ+~dnP5=WjjDU<_k^q1<Q+aNEMuSMmb*ReLNWRRJ`#bi><dxRU6tDTlM1ac%GJ^97
zx@YmVWG$}d%el*uv9M&*Mk829Vx;zYnR@pO<L>B<DA5pc#MIRLlbS(1%A<pON^E`o
zAdtqC^O!|Gh%woe;l|<ODru;VY_C5WWv+<zrU>uQZ^#%lcTQjI8c91ZQ_d|dfC5*4
zig5MM8R@(~m#_YW_BbIz5t08EL;9j?rDgYflbDg`{;G5%9D-!e`=+8F>j1Ud!^$?7
z&=u!6eYX#j%8*7kY2$+r7T~*qWv}s-*h;mv_3=Cw?3ik<qKd}#r-m#~;wU^00=Yfz
zHyV>Lg9hv@#JTuq!_Rg<lCqm_%4AX*Q*m#J$o$ppw}9SQka{~tX}O08cF%W6ebq#0
zjSIyl)VLL+RWz`GKfU|sPnn=)WCmG9_%%E+n}-+pJ!<QT!J&ki<=Q)>xA~j#O6oK|
zJk%N-rPgY?^VzpD4Ou1zw2H@gVuL*+Th*aUaWX>QTL`zRLId?2(of1ki!Tg}n1_F)
z@4dzn3pb-U>Qztv3dV-q*^r}bydAku+~I?N2p_Vp)R*Pt<|2Do5XM5nN~`YO5!rx_
zMKssFpKl3`S67>Hdgd#3_BK`DfEE9LRWl^SutpIaLls4xHlUGg_RD4ugJ6(1?qh(r
zH<kn{4hX%RC|*uxIQ%3s#p-c1p~dsmK;w;$2-HW|FTV&Mysm=K_Mm^$*xlMUO2=&h
zt+;z|F6VIS9SPajJ{P~-D(F?@01qoOA!S{5P=!9$pPTrn&#q~aquj7q=b4J}>-CVA
zCoe?O4hkyc`Q-op_+yH4oTzZIaqiW7Z{NEXlWF;F`kKk;@}i9dUk#9OBv^ohQ)<mg
zhJla${k?9&xEm6xoc;jndHBzp;zzibXZh=mq%X>UJSfdA9f#Zjws7U8Y0Tft$U7Te
z;)FjEDX3q=$xYsfvEx>|>)YwLU|GO}j=O`nEf%ml8>3*hI3g96C&LtK<iZ013%7@F
z7m-Ex;b=K4{F7D9y)#`;FmsbtJT%{={*;6HuroDpG3{vW_x0Sp+i#D0=mIh8{#}Z)
zVzk|GM$xbs37Nb9c7Gd^M@^AT=@lH#89Hb@<gLjjuBq+h^mqd0KflcrVY#0l&a8Xh
zYE5$0N}@U>b0EMXq@(oB(-_XpN06-8w=sC^nVUdE{*t&(g18y|Yj`80zWQmW)XI@I
zs-hY{!MbTI^7GEWCP7QC5DIAOa=4o6Q-Lt*jmuA`@Dqhhq)Xi~+{JqDp;XKX8Ruy*
zyJ5aDc840W1NE#C3BWLNjv(fuD>s61ae>Kd1eapTU%rm5#4nfDtTy~uBL=o1@1$M=
zGtr$m=RIc)^(X*AZWuI%2}r)wX*y*i@%_5+V>(%YnHGltbH6-Tk|o7P<rvxJ{^bL*
z+;`^u<;FO^wP2>CHGY+{s;;iCnO;Rf+)kcnK;hHIOESK(k5*ovD&-{oX?ER0-zs+#
zU<#2B5#ufrb3eNGhti4c^tg9S^z`_2h^H}4NI8eqnX2A@7wZ;<CY_av(p=bsHUztI
zBj~)nqm-g)%QJyRn;wrPWb=rwq->=e$lLkUn;+-xSw>H1r&CR{wM~e4IhQ;|bXgJX
z!m<8p_JPY3@`K*$BID1&m_J8XcP6m|=S*O#BK>{JS()E+fg&I=qJGkOr%IBhhO#Bj
zGAZWSBhZo#jo7h%&q}29gnVJ*OpSg&nI(i=y0NK;m)ye(emlHy&ZS1K7N*=z2!x$w
zJe>LacXeKbYAX*QPVl3Q#a?$q<gT&1+D{9cRPT45Sz|V&tkYWZSL6mGdJd{D5pd#G
z>@2g#n?_~`h>d+Sk$g8+u6L?rs=ooCd_L<aP3~hc)<WcVko^}_=eK(9UtGRo_x*a_
z$ne<?C@Rb^hZYh*6GIXrI=8J$<aU3`u1+r)uD5f?pX#mdUC@l@CSV@Ot|X>Gx3z&t
zZXS3&Y<W_DxXQ@eXSo^Of9%{eJ0142!Sbwh5na}NT0G<?!A!HXK!gJ6#RL+tUm}Dz
z>VZ);MWojs9*MhXyr1vFCL#&Q+xjcvI~^;fipU|RzsoQbp&EF)0W>zfIue6dr_!~7
zG}a<ID5Q0B{oY-wopUDeqSIG*e+327_}paHM@LhCF|qQS2trYy@oL9=_v#@-<~+$f
ze9$C*md$JjX(;Jiz37-B^K)y4;NSL;X^&F1Lm`V#ApRn_(Pza@{~D=rM}aEivj|#W
z09+dlu|6+lX$G@q+1KDq%V0RwBBWI}Yqd)C!JHoh*W%mFej7^HCA&0NPh^W9K_T1Z
z9Za>0Mh)uM)V|<P2?hLXakQgTGZ{`GdO6QX+w3wo)5-7ox))ahv^%JieE@TN;#=E6
zcUU_XqF`K@do7~B3sV1d#B^GZHmp3a=ShtaPTHcZX0A41l7FQ!MfFMjU|hVIj;-b@
z{~`CB*@+Ia>XCeVIaMJ_Yx#+ti1z3r^8+dC+p?#@Ih!YWo=7d%PbKy{c9(qeN%do0
ztGtMre-{9q%PD4~(Yas&AI+?>x|vD<ZhL$y%42sMHC&b;fx<#rP2~SXC%1fMCLf5w
z*P{)jXt)RHBqPqD=rsI+4*CUz{0lsA4y#g|PM*B&1G&yqv<C@+KR-H`EHP-<%NRNB
zzL=mPAjwDAog!Hy?*2+s>*K9K1E0so)n;<8oEGgGj7q6BL}K06KB^V^6QMRAv(UQo
zcI)><EIHa)2_r=dT4vroR`=CLQJjGM*Lv&$u?b<5m)Pv5VxX!9N;*`@u@k~!-B&;E
zqk}VbzWztw;B)u+vJ(Y1m-eaU#WxL0DvO9947>#FiG_0qjYZSQr!g_F9Oe6P=d*68
zlm_7{rh@v&wo}yJ4T7`l#hV3Y(4lX^)b1Q)*yZiSmmeN|MRIfxz^i9jb31==4X(#>
zYM3$o#?x%`D;#NR(N*Ug#q5BY2b}yV6EPFhMZ$6_*5rccFONRf_0Rt+W_T1Ss95qo
zu2kB;Q1P;EbX(3rr#i7xN)kn;cmd1s!Z?NW%)t53$NgOk>I=aJgZ`m3k5cEeFs{Mp
zB;PDN4q0Zt?KzkwO#Hx)hLK<5Ud-{vK|oE1{whl?Y)e(t_H5vl8K8<+{#lQp)A{5c
za(iT$XqY&Us+#Iu1UMKa2-kc_V$s7E{+sZ4%^rrwyAC!tud_s{=!Q~?AI=xFwmkVZ
zLDtL*8ki#sd{rv2hY4YqH!WAxQbSR7Z{OY%AS^lHEH$!5q6sUt4t+3#zZ9mFb%vv+
z1pFG3N*|wuX`qYtX#R4*9HiYqY1fVzLi*wIGItcZn;bBt&Yn_H<A*rPiguPM>cOT=
z4BLgz?!22T$@nGu;ep`!0zLgwL{K_Sz#Qv?nTv8K^vRGVwO2bx!Rb|%*09#h!r=)_
z^PPpdGA+^)HRD_@5>?_^@z>UW*q+GXtIm;r|GKsycyNGckza__8{e(l1mD<teEQ%Z
z-ffYK%k<A2KPd9q-bBcH(|pyI>-6$sY#r(8hvTRj$kQb9)0oe)77!8)tJ{UKku;j;
z-)W4RhLS4e`De%yr46+f40c>kp4$}9r7xt)(=v7p(x!OwYS1X1Q6l+1VP!oqPTp05
zEI1T4KQ9V-$+&M^6^xMOaDssG*43m&lz5{K-#uDo{~bs^Fl9buWDXI9cc=>84TMWq
zan=5?@Z7#;^^JVj>9uKqHIOxkF6etF^!+Wh;7@<J9u4i4K)ih)x`Ct4k^TK6BEu^6
zc9md7Gs^r5ySJVUq=vGhAJ!y<7@eh-$Bj4^v9o;gHA`s?U*Vw)ne$a3N5lOSqb50e
zf!X%)0j9~VJ@)99Qmht>H@&%}^H4BA(%;CSa{(QBs(rIo{EO_ovb@$r$?gXXYY-&D
zn?5(ITa8#Ay64=`e1EIU>|4euDXD)@*r7y)geZhIv{cgG!d|cvV9%#}I-i86m!~(9
zxZgbtxa3oQq#2EMU4EOoM+6a=vzAU1ls*Wz?xdE4V`VBoC)j0eAqo&L^6UBb?ayzy
zJ~rUug1DQ(&un)2od#dwhq*j)R4L#-13Md3HHbMoY`YY0sE+BmWNY(AC*7iI4xJBo
z{X8kIooyW^y1jWvl3c^aX=rEoaDQ(q4>MO!quQM9Ti6Qu|0QZYoQw8Dx9K<cs`T+<
zcD-f|fx4NT#Z6D^Ou_xzNKI%C|J3I(1eKr<lln(><NeBAE2ZTl_!^x^Zi0-$8=X}z
z0S?I3#{?L3Mi4C`jp!Y?eF;~24`@ZD=_pO&a(rL19ftBTl8I;w&DhTdu|18oAD`2|
ztP-^@jpCtl>BntZIjrtO!}<e$)_E>?o7T7Z1XjO<<=IWyu-Qo(ZCmsLs+A+RF@H3~
zVfdq!zSmcCvoOvTW1AV_i{MjOAB%9SRCSDzeLbp<#Tey-nN9f0KLuse6GBn?J&_)A
znR(^qN7ubJc;<S0su1@E;J~0Q!t%uTyeeNovTN|&-&k7iJ^&{z!JaEwwiR;*ozhf5
z9@(o2QQoCwlwEv@O`@tc=WQ1FTY${Ur|-3q>MM`S7}a_BiGpA_%Ol@T6&;d6^l5NU
zYojA;BIo@ZT4I4X*mY!?h%pZ4yjy5zyk>W9w}C&~X*v~wJlZJlyw4K~xlEJS%DEY%
znGCbfPZSA~vOmA^z0)IUhP6gxQWbhHw#YCM1pg##4w*R<Fo^_gV($&mx2_|1Zs_cE
z@XJcF1s)~><CIzsBPf5eXtM`9Vgaw;g^SkNGW-$$gh>v$^G43@{)tJXZ*?^hO9%$8
z`PB$Rxg5&sukNvo0wjXrhjUSoauSZJ^lojE*$lT?U8U3EN27^#jZ7)>U&J@QM0J0B
ztzRRhfq&B{_EU0{T+YJ&<D_TI0UUf_e)zIY2zjW3tj^O-(0AkR6tpjBXCys=8pU3(
zzal|^%#-gJmHl@|`^7C;I+BXp!i_RCf|t^n=TV?(oNf;TW)KyoF6-Ao$jQ}Bv(G&|
zWN)Ug`n(I;#NI^JAYR^d5D@i79)*a&D(y^<$^mN0LGG~3=22T&%a9lM2rr;`lGZ0n
zRXFGB8APJ$#=VIB&rB044~jBG=Uylz4|k2+7f{DtUP++jP0G%jM8Y4nd%ebK5}R}Q
zlevrzVrg~axy*-n;+~M6o)Jk7Ay5h299S5=(R#5RU2w!RX@w=EZ}rNTk&EHeft2<x
zAM-28iuDBx%2Bj9-KQ6qP!C#WYmwt&+5fnY?(a;&#UZbc1G);aDdjJ5XqI28AgBI0
zI7JA-H+vDt!p|x|=MF)U22dw&sbl#9c&@K%2U*00nnk;)zR~;V>c8{yuQOTi#l;k^
z>zes*VC~NEgnP_ieG*>qcXx&xN0p^h(gi34-}q_cj5!wqjkOKk7KP`i9jV4ip1Hjs
zz{Fvya)%A(;3D(Q$vjN6`Lk)wcAgqOG813v<%UKBUdWyl;iB1Z)V%k^HDKe2(HVc!
zjSl{Gh!i>QHOC_gDwA0IS3;CUXPI2ZVuy`3SM}eqZReQ()LUuCTQ`Db?5i3NXlcuN
zjBXSl9CcmIp`bEV3TKL;7f<sG%`?Cq@Xa01N7->W*3((zW}oRcDHr^UjnMwAvB`t%
zb|5caiwg;96^{hv`0Km@I|A+%-eiOJ24=<vHi9HsN2$--e#Uo2==+M|?|C4r%I-z!
zWwjsdw5La#Syqz(jGZpj9(6g3!GT2#4^(a*qc%+40OMDsCC+0{|4wCNS+Er(Dt$g2
z%Io*!tCj2j^Lz6?mwfHBF22S>Jju~2>EEp++-)Y-x;?QYb(0*QnPL(sz7ee90I{qr
zz3+gdMrapUTMiU8R_!}I%omq5x_H=CO8t_&m`*W(K`@|U=0+LzPEOUo2u6IyYruR^
zJcsF9%UwfqYi}o7&o!Uo*&7!HDi2A?{Z%6lg7u#XAGsNkE+VkfvO6BVe*?hgP?cw3
z@vXrb#VV#71Ruymv!5-=qDWK+t*Ako<ZjQ~Vg)xh24-8;$L3+`1E4_}KYAYJtpIgh
zH0txO-(TMn$yo|9;&^G%?+b0jtduvV=;_-}^jBotH#L_tr}DL~p0#5!wV=NJcZe0l
zA(Dp6rLI*^%t^&va@TuiJ0yP~b0)hZ`Er6?L)*5&X4@~A(eV}psImK1mTvm@!QNEA
zSe;8@iTi<(0S65RaQ86_jV_N`ETdkKo)-^PM4$Ay*FMHfs%dgLVB9lvtQRj(8NJAI
zfqEKn81nOzhe`24Ch8U<{0RTQQy59xv-p;5)gWE^2~T(<Ql59)pfB|(0m!JvEc#eZ
zzf3YQqdTG^VaYY@c`HV}-@xlvz`$BN2AQXgT4+!gW#^~i%=Gg2mo`@e-Mq+GrPat>
zl=NG>iz~~AUq3T{7kj;?<VSEW^<h8+e%-Q%#!|{Dbc}FB9cl-l75E_w!Y~8oZ7o*X
zEO%iPXn_B!_}lK_?7O5G_2M<6$`XD;jqAg1a2X3J%l-y!&aiHznj@vUc)%<rX*7^P
z5ut~YI&Rb#>k@+NZ@h<0v%WQe!L+;y?zqOMmE`TAwBPX6ByK_fIA!f!Eit-$jI;=d
zj^FALC{XL9JYxWKsU=uxHr4|9TU5XlIHFN(X?=aW<039hUX-tK3zAXdNW=Y7;oUXY
zoh0=Q2R*Z`v1kWaXNK!RL1D?7u(T|nug+Zrj5>>H-izKyLK{c8RtI7!!Rr1BOh1|0
zJ33O(OMcJQjPjS7)i>1L>%IrR585W(pmri3)*N2QbI-&|6FttqmjeH~ZEnaGdRXs5
zjkRP_Jj37>2hEXzYq}UU+EDLB>Y`GZ=2}m$u;7K)ovg+yU;>_+8?V})u=;38Nn2gF
zIo-Ml5PlXETFB%K5-|%D4@Y&{dzfs=F&Fnr1wDFw$-3@--W2O*m<MqII}&WP>6B0Q
z>>v0h>tJ}bl?50-1{{a~$0ZVlGj!Y3;lIPCMD~&?8cLd)0Oa@49SI?J`N;<iRM?)A
z(bazJxP#c|rVPPBeHu=yrM;*@@xq$D&mkP1%fH^y$KO0pB}F>4che(ihaDMQn4o(4
zD`v|Scfp^y_AAyTUuk%CY>eFP30f@bL7ZLcsXFZ@j&m6Qi;9e613B{qpW(ImSB;K5
zUV;FgYv`l+ADBF5$}=ekkwl?Ez--WJMC3jSDQV@ZG`%I5UBLQF(V?-YdMO|Vq@?Mj
z7J*FY9;eAuZ+zok^!wX++Rp^O?l&2ljWh(<_aEQr>bf<>nt|L(6DCX=(3GE_N5pJX
z$kHEuYhh!7*X9>|eY}6n>(+vp#H$Sj@bQC)vhyS8X(sxG=w}YRD+Fs;Fk>;npzHBL
zzKxIx*a>1Si{>X78|}=7!qJz{bFP_2b`p_r&jUB`bbR~rR~{h&xj>;wA-aLt_oKyg
zoo&ypK<Q<p<Bu8>A`oTj$c2bPGYfsP{G$EX1E;c`y;#UQE@Er3;zEz)M6UDA7zbbU
z{sJxcfe~ElqyNIlX-(Q_pc<5;nLftAY2#`Dp``!Cy)?ov0ona<GM45V6wgrI-nMLx
z?)v&unqC!i%Oa;Y|ET|vNa>oET1-$^7_3>?otv0FF)WuU`|jK)l%9}z>|j>GccWoW
z6!mT}c7P=Uhn#TWT<eV(8(K-vyYQ2Qgy-CT4u;Ld?&;{rQLlw&5Z*k8Fz9VNO`~FD
zd=BcVR&LgfYDZA>`uA=`*>PNl!x)K%ru$fGyNg07F{MeNW%;ptn1?d(s;XrLy*bC`
zoST0CrxBq8LDVgnL<Ho2eV1LM>*eFB&wcJYbF6%7itgp5^M36N?(FWDd$Kc#rx{-A
z{G7@yjeMEki9BUMqvNmT{&;Nj!a3@7wj>>r-E9IJ6R;CtQOCaU=QQcmjonGq^XMUf
zzlNDPEWYwG<p2da=v#?1%5yzZS!=JHj97E&?czSlJJbkrV4u4n7~|D_m^K-xoXd=2
z3u*Z@`s{0SoOM@^7O!|I`|sV6EKoH*OCHyRHqTieCm05&AQ^P~+@CLFk(xk~Vln*R
z0}<hZF#C)eiNbX2Qv9&$_MK;8v{%-xR{u#tsOqUa@^Zj<Urz0_fT;s_bD!Ved!dtz
zKgW;w2ajZUcPe{&piuoK$xr)*p9f>#>*J-$5?fHc!lKM?@7C()W=@>o_yDY+{T0~$
zu>EFyG!Kr<G3P(T$UV;65BAbwPPX)dQC6oEZUGL$Tf3c~N-muBYXPntu233YHzBlx
z&pn!;ROl<NK@-JWqFH5S@*Wx+I(fz{FKJ}Zz-72EgdqjCJ)CV%3Ocv%zL+k)_LF?(
z_$5ySyNic<KQC`7!Hjb{Zt}c(G~ZOruI`f}IRQTt58GMT<h7z;=9yr``VBH$@zb0k
z(mnTU8tQel&IH&pT<oM8(!+BM_e6PxohQdsHiz{7?p@YL8QI?KzNbKPXSmEcEIIZe
zeKftZB{_J>SZ+0;rjJ?alZul(FD2({?+;s~&@gQd%Q#VL>;>em{zGTl3t<AvV;E5@
zBsD#}h%zyKa(o^}YOo$06qW>&V<(ySsh;=1xy};BV2n~Qr7{&2Q**D$pbg1iX<cfR
z-9A2lH1ek+xp0US=gV>ab{n|I^F#aVKvuFpE-V|?u7?dn$`+WBHV!KiztCTuI9uLG
zazHGx+F$wJND{l`tz=dV-YYdQjs3s~$O36sd178(0Mio4q`*2j3XtCANQb3x&oF-7
znF}h+i*;~&oBpfHVKvDf>TPf`2NkM6?x0&VcJBT;X>P%MRj7SVMzbnx?T*SaEt>SM
z>Bh;&AhMhk;yUBlhLpR_vLh5a&PY3BpDf?~0WuSwlKoo#vZ@(Tq@{UVJdTT>n)^{G
zSl-a+b=TACS3S__UddD8OzXD_p~wC*3wjt5*?9Bq`Fr;Ur|4h=@^AX{qX#}MR^Jua
zzr;VL(!!S{F;i^UjnU{OY#m}eGB7g~B1@ty#(WIV%bW3k0I<1-9g)IQ6WBz;p)@Pv
zoBqyzxAXv+r*0_LP#|8|fsOEZhNxXL$80h6^S@L>ad-dG0w_}MeQXP9c6N&1BYH!x
z=D7nmaYDK~r810?%q%^=>nWVV3JR*~6Xd0y#%(7GXiMQ+O4n>`+KUA1l?-VTg(*J=
z3N=MgO^`g(G?LD!Utd4<X}C>Wua1C}Oo-J8mnG=pH?Y@~&(2aM6ADYFHJ@btb{{`3
z?VWY|LLs-E!X{M=vE`s4qPa3tE2wnlsOZ2AxC8NV<97h|gK`LPquOu)@N2bRrhBup
zl5;iPs-JXz0lF9YMWdwSY=9nB<cngX5UOysw*uF+4Q};+umaKcw>DMmPV@?UMHX`Q
zghst_fR5Sn&0?A3^xzaxP!RUqT27oElRLA1>P=4gB?!{2x&Z8nNp$v(tkq?oUcUwP
zth~sC<>klTNv#Nwb@Ko`K=J(4tfr8=Fb*aY;<bnfWlh@r)_qampHoepvr$iXWHwUS
zzxRb?2d&7%*F!t=#dio>4+|upos7Ej=@c$_KSFH0YC;8;*X00r_H=*Y3(Z>1+w?2F
zno>s8)O!NUN6Dz}Inz0u*Nq)7toqpE@$mwi8RK_*@m1ZYEFXUDrR`pu_F&hodxM93
zyM52^%eJabUqdg%H3t{|9Awsea{F^p1+u{F5iy~{bEN<ce;O68$d4t~(WZNVCk>Cp
zd+<0p(n;I9<Jc!}^94iz`%7rcuaWKC@wRt1riV>S155&s;jFTIJkm6zER;<gZFI9N
zs4*v-Xc$+|9V?iu{W3}=IZpJ1$Zi~j$Qo$KvC%Yvf+{_w9fX%-)p2B)AjX<9$eBZX
z*b$+QG3LNA&fDUZ6HvQ7{hj}-vu$_-a&lTS%|k%>_zlBTn*mY1iIM^s?7-Hrp2?GZ
z5w=SrDXDF;HSduPTPJ9v%gaF5z1XngS=X0LAUY2*p!Zb}p1WNrIXQBLT`*p12zn$n
zicwLaauNOVdU9a_pgY*fWgPXLrGEd9gjRsisE~RO&It97I(p4Fn$+WeE>q9{Og**2
z>$3Bm+ZFqMWKhEZ2q(hFgd#!Xh-gHOcpMdmt?ytJ#~scq|Ak@I#ftAB@Ah0-dfE15
zQA4+B&CMjHN)`P2kn~8%=DK0IjroMYv!r(e)9Hzy33nzTA}@Vf-v3J~7C<TNe=e8@
z<Y;UX!S@$(w}_PDIhK2B!X@>7$MLI^2uTjd&_Bx#EZ5lAwLWqfHXQf^#d%QzvVw``
zS(B9Y44=|RGZ^zSWg)xEN=$c@`H{B?(&d6+zlJzOj^Fd)ti-3khFgD+4ERzo{H4mw
zfwwFyg964a%UNn~UomM<d{d$9dt(gZH>lU;smA?mp79EmYj|ptqrRe+xC8*L9Jq<C
z3$4Ry%NBi7tKjCk%(VB}9U{t`Mx<3Ej4_9g<iIa6F=u;13n`Q;)~EfzyRqo6oV)(M
z8>%=(t#31^@I~B52jrm%HmBu-C2*o|9}G;y$&hlD$2-llCK{B5E3c%7Ju)a7e><Fx
zZ5s}M95$6S=JB->e%mTKI(@>2@k6>?yG{HVCI5N31jB~(pdn1iS{+8!-UE_5Hy$+_
z+G8p3KL*n9bzcO(TR+y2up|V)c7Z0B<Werq&f$(*`f|>FK8L<sHu1xF>MP^qOk*w*
zzTwdTlE||yGeN7#N(){x!KN%+rXAKs6^JueQ*8{jS!5+?X(yo1THV}#&AnlYGdn)n
z<(v4*%^NmVKoX-zRk6WioSE#Syo9en^u+ZE5eB6?MX1*g8}2aqU~1YJAxr~{wzPWG
z<0Nr?|0QladfeB75To1arltZLJd#^BUjhh|@WP(@&9<nyW?NaL8*x25Ftywkez(%n
zklJs5)}E<_BbXNi6Vy<<mHg;d6r&>!EXcEoc8s0t0RZ=@1J&C<#gcD(k&obAqJ^7W
ze-*`BS@@Ydt%k35TYvZPQ^wEG)XKC<mDfI7J#x|$bp$<+(+LTzhA$Vp6ZDw0JY%?=
z9qx}1FsL`_lT8P+tIiHqq+C<TCY>JMw7yi60A|OJK5&O=#Z6f!nYM^-%TJ7#yJ=tP
zn5k7aVqc)HdJ+j42s|fhW&c^eMaM_5o9y^z$sTgB-rk`lQ~n;9o1U(7a8LtH4K7=O
zRBB$c1|kK13TpPfs<gdlkXvkck_l&d1^@TfrTwP;lU`rSO~dlM&-rb+Yp6&yWfirJ
zJt@z>s)yUuY`SCsQ!m*7PtpYArLLzmKTAwyA`9&3==bJ%i6~qu_}y@6Vq1IHKavo1
z8|jw@N}l&s3v}$PR{dP}fZXXV4MP5$KR@_;I~JdND&*eycbej_y_>fqflzA*!j$|F
zVWci0mzxg7J_jp}NDzC*5Uku)r9|PJu<hD+>~I5ZW4UN-Gz+S(P^2$HmQ}JS*-}y6
zQtH|tzpUms_{$FasJN)>`U(dHnaOrYn4j$#w71L)YzNqUjFVw{p^1V6sS|!D?NiE$
zMF^<=OSR6d@`Qygl?78W6cx;pL?+_q2j`fN%U%0caD>boN#z-`kiK^v_3P+POkd*X
zzXs$F4j_NN)ju-K-K=DL4L+lB=uiGM9^9t$^qdtm>?Ni1f_5|2sR%H2T58<K`(k=1
zC82@+-t?d8+Pc^L^j@0qPAMR{b~x&MQgw=PN@>@Vl&nByx%cC^K`YW2F`$*_i%%*V
z%7C2OzA>1VB2j41|HZhW{hTyXvmx!H&S*S-5@g8_X)6uR<mjj(F&bUo**9?PyGM@1
zhq*D3v>+25Twh(~T&4wHo_b!2166V@E8!LQDx{{=aS}`JRPHa}2x!Sma>AgBCSWax
zy)kr#-kD<xBE12f>S;64E|+({x8=NSh`r9!Y(!yWdCkfc9(}HE-M#=08c*u~M!FJ-
z!$VFniNke8znX`DDdDYfw#XtBqUI47qZ}lHkB7$I-<iM@ZgJ%xkXVFzI4N|HQk<i(
zv+I7XAf)V}=b~Or4zWM(w}hqyy=1Hr2NmMCKm?soME=rAF<zWP7o(8Yo*X>85V5&?
z@FpHp4{x8T$;Z{J$G>s?AE9!h`o{KBc8*N<ed1<Tb8YH_gQDOOgm*!5Upt2Fn%si~
z(82hZ8OuS9oFh)(a}9=F=hT`HJRmWy@g!nJ3V@d~qZZkDn;h?+pWC#B0TV`R$rGBr
zQJ|^e(4iJ-5t+AMh9*#)nd_dFBC)S6WqHjc_b2rN){4LlQOK?(h^WD_AiICWH>XSO
zO51@J(vHk_dNmqy#{Ee3Fm;|UD{(s0ru=6S+gA+#tl$+U_F0mpH&}J|LoqRx!j%W!
zr}va%u~>pGZxH<=4^o2RKM#I%vp}e%6#8+u<vPG@vB2qdfW*?4xjbeP93vo`J-2tz
zW^5McEJ<YDD;@I|)%T2YQ3v%<aUvFnH{7DmzgK*N`jb$sN23(me)kb8Vg?(*lGUdF
ziR7Nm+eRT3&n{26<wxA<&9)$wFBuhtUmz+z)8>P8Mq}@+0CnK|g4n&h_gWqYAs@tZ
z$F5T5?u~JJwP2^Xq~huqoK5*tZ9zdi3bLy~3Q!^QmpKNDpNReh$OVMWIBWC83#pM*
zdn7&)E=(`H?Iwx7ywv>M{^6lb$<CfWUAQpHu?6HY2<ifmyPtWBAM<Rk3|CHm&k8X)
zL<Kd)$<Ai9s4V~a?Nxvc4B;GM2>WwX&Vr)oCCQhG=#9+7Up2rKJ_!~Hsyr8Eh1>XP
z#@)c&2ybv;+bu()7j!5?X#Z~%U4J*%nO@z?WFlTHh8RJ-G}P4$m2`r$m$d2q!jW1k
z{qTer1O9Q-W)8<fV(eeA7Sr#quB9lypIwq>=H)qePZIJbkDtgFh@4>oEuY_tCxqF<
zHL6ba1d1+irQ$Uj?CjSVhW_6AuPJA3h2=S;e1}hr=b02g!YIOkQ5fl5EF6jv*sW4<
z?0Cf-r~{)on(|t?L55=UkgKR>zbHSE+m)fml-B?Bo*gf-KWHgQhRI2jO_)A3`O&pZ
zT9huv9+7O3u?-#Vj8Hx!RVAcl=jn$$1IkCF7xPmK;O~ZFNFh%x877#Qy=Q%k=GW?3
zbc#sP6CWj5Tjbf~IWDQ@ZyQ1Mn!@XeKV#L))}c?W?y9Vw+9gUGc$1Bc98>$A)|Rl+
z)|8kSk3LcZiEfT5qIDGZ_xg4c`i$HAZ>oJ8_<@UH1}Y>FnY&S_cooa&z|>@Ghu*Js
z`FlUxXTimWdjTs&ex9Uv3(2AUA1BYWp*2T``!$<ko6ub+Ny$Vv7y1rSkJ8bWqAI$%
znH2ydIRX>5(1wO=iZwAkc{IOkQt@$crdjI}cC6Sy7ytJ);>Dj<+#tzliEgAJfv?x3
zV~laE^K5470o1YfXTNM7TxGj|cBnT9FXCWNdME#Z8)WG2$M#?aq9RBpy<n#dqyy{+
zS>;<jh?oKfpY6!TYEs|vRy5-nQ1}_bb%ov54Exx;NCe4*lxVo1KisBvXG@HX=)YZ<
zvTZyS5EhVE%_46mSGv?L5UFDSB8vvX^RdQOSu?hBf6<re$5*0d?#Erj*48c#u<@lZ
zjlWRW%MR;640%k(C<m-kcGU$fO|3fE)&l+)*2;h!GX`P_l(I%~W{Bmjzo-ku6R9;@
zu^~U5nWa)WLZF}NQD|gnr<*Pt<&nXr6Qurp?%`(VmSvTRnQX6?njd(T4aBQpM;tvF
zAI;Z?mPB4gMJEyEN6z=t6Olx|0^hq!%M&p;(Miv-Y4l!mG>N^_79vZ5Y|<-qc7EoQ
zl#(P29_NRrN@;NWna4aEyBL|q6do?BzW=Q!BU!P9CZBXo>AQ?3;hfD?*9!vG`nGmz
zZeAW$*?VDJ15v!u=ubV7bp62|p{2zrfTZ0@-b&W}$C>fBzwE#%MB>QFo>AZ28deQq
z<^r~V%E3k?C)uGom?J{M_6`ME##+?&`Z)p-l@OdmStIeZbiC%3vM6!^$fL1DuGxxW
zL8@Ye^a=U+JuMmJ(K6q*&a(2!B4`Yd8raa&&Lkauf5%N(_WL0Aab4ql>z_a89!^fw
zOkby|vwHD{JqTfG`5~pnKLLTbA!$1t?tm)RoMNu;%Lo!MFlR)8fDb7|mjSokiEaLs
zPO0t1FYIyvduVz`Mm}P=ydG@B(khdWdo%xREvl)i#XJ>H6J@e(irr&6%oee-S}YE4
z7wO6NoW?ne!t|QBG1kkgdt2|_NBsue9_RW19O7wy)=+?>XL-F}SeTrqx<W5je10Op
zVpfqau0o1U@y8S|U3@|ZR>|e7Cp>m@9kJ+wn-981|9dpYXh%5+M~nYZ@yl>4_b`z4
zvwiQ6KsGpmCX1VZ39(vr^u1cSnGGMzkSO83*_Og@s`h<F7L(Rpy}ym^UWi;zq<##C
z;i>Mmq<|BBTrj5`hmLCo6svjQ)HyDsQ0tO%e}5~7av~mE#I8SIl<M7CJt<uGv#2Pk
zF$fd(uqjP=qNYb7qpC3i2AXI+I0#CDmB;aFNSCJOcl0&-CIkL6a9tqf+9VI~Yr5>{
zi9qdRg^F>K&DB-_9tDE#F=eTSvf;1NjrF@Na6W6=bfy^UI^;hzi&lrMUg`q82kk|Z
z>Pv&Pg<jpDpUTxi2H3vxgCl5ROg1|jCFx~l?1BU&e`=w09-H3#r7{jHh7Uo5^O+06
z?5i}?%A+8vHTYM9&W*Q-8bZf8k>ea68W0zjI}{%${IqxXyDoV+-`95E-7Uj%T})vH
z07iNk{3rSM8<4tpKwKMXku@<^5)00eFdik{giZ6&b=OgA-R-Yz<6I;_Bu0N~oF$?I
zt#PlBrk3}Dj|z<x(#6Zbxrm28G+L|sx*$*QP8R?fl9Dx|PP6*9d9o=2k#~CHD5Y9t
z0Kn1S)jsC(Yg2q5Ga!Z!g4wTyeCLHM&m>?QC1y<A`HIIi1%{gWc?-+pX7G@Ou9UaH
za!@$uZM*hH8<R4Go15QdruZ?SKP#E2S98JxX>wR#+oB;j#PHrZ9LK=4c-AR(1NY-c
zw@4Di6S4k#q8ifxjJ2nb_aYSw<Q72;V1M08S?_wJHG6s|Id1)0_>R=?`1zF>41aHk
zG%4ipu)d;<FvgR8X09P;i7=tP5+dUK<d^_JigZ~g;%dSc;~%taGCiYJUL?9Ed_$kW
z()tOo=sfjAl)CtUwdz=qytIC8Y^<+z^XqQ_37(WnuCxY_UZ>Bs0VZL_a(HVvDs5`e
ze`qJI22s0;cr$X~`VKQZfce{?lGXxBMFrM}r1%Gxh;&1jytTmoU8dmK@1&X4Jv<Wk
zWad^9UKqg5o)lThilYfV!EHG)IFE<GL<X9!fK7JF6x^0`IuEpid|fa7@(O9LVqG~r
zpL!6lmxr<2qC<+C{co$#JVlMq08wa91Q-Fca_j_w9FRgfJip-vp*lkIDH9KqZ=4=&
z9oNpz6`h0jPhm`aL1J^&b}PLI4-(h6se!n<wa4?~12*+li<nC|AkB%fhFuYzfz8-*
zjX)BF9e9$Dmwi5V2NuA$iSc;Ff!O+S6a9o5{1l_ebk85)u5*Tlg>9K#tjDTEjZi^g
z`rost%Cs{mVmm%L*-3^wFMw6dBye5!WEY6<*X0t2#fJSacyaS9<pxt6KD1;F+QjN^
zvt<kC*7wO$0m`|j{wb>y0Tc2hx0w{BsK>o|=y}ct3QuWgTp6g2`5@&{FY-=>YZWB4
zwCcoj*SdY@fExfl7T}_G^kDz9$by`LU99&06yAb3>W}g_@&9Z{mvW47_$e0XIFWWq
z##+;|S@Ab#hJri#^(xrEJiL>*F)*H0q<DNn?Zo3cnGr&M@UH}<%N@Hw@bMuGlV?mG
zSz>xlPfmCk<{2hSc!8RsA!b&}5qg!nT=H$6v2Qw?@m$u|l0N$41x+keagc5I^IuS6
z(OIBjZ?-SIzNE3bJWw@|j!g7oR(VttG>srctq`UyCu(O@xCq$<M2No}j$9;|5N|gf
z^7mOlYk3gRR-^^1Iw3cyu0iMtQ0wa8=qJzc68F?LrvQPj;rPJj%W4Zh-o8+hXuZ3;
z6RQU|!ElGlx7@4`CWhQ=znWev2Y1t&LB5``rSW-ty*@An0<W`O-5<Rxu;tMw9S7M>
zxA;n?o>nYp1k4DKo<+ouL}z3X;j&n<jyn7qf-c18aqR5hB4;B%<9(!R_ZT58sCIp+
z4#NS$0(PXFza`VBw0ut!-p=b6xK)F`6Us3osrWUDJ&^|wIE=@Kk*-Xn-|sqzhojJS
zUNSQ-MBp$+jT&|jLmF-<+nTnQE~lu+>&pU_*g#e%C^2@uo|bklm6&+{3ll7BUl#%8
z=5SW>%dxuYOoz@N8eW#q0W2n=@QvDbh57BOnpC+?!C==$zui$=@QY_u4GJ;N@Bmp)
z;&C@V42N!VP^+JQ-K^MrvAYZsG|m#vJLf~5JF&|+o#{py+9P$Rf;MQw!LkAO_TOy%
zGP-Zi1j*JPq1T|dI8*apo2aW7%f@>Fx4&sYxV;&0dm<?1n)qf_0sFNqphWp_8axM@
zAOQ(sxh)OclaH?-mTOaj*7Y*&1Q+DWeIn<VGw0pyuWq9-5=g>;nHKWWL*DmTYcA2%
zYB8KZs7BEldvs3_5UZ@#8tJgT;Q0E+#@ne0%fR2Iu%`$logsh_{jDce`wJIs5MuPD
zvp)}GU@qTjy7M1GdoLjndanPhz$`dNXG8g7kzQV*p`V3_<awt+ucOT6?&Ogw3NS-H
zJ^?(j$9RdlEDv#uG^Z;9NG|YLCl@h(hd(ylRjPtbyY+!pp&goTtKSZoI2LWE4saVB
z2VCqwismOI>JOsbpd%gH`ahpWixHtJ#)SV)krHNw!74+=tWTPZYonM~5l=;mc&d(M
zmYG60GzWNp9*@=PIV3nl)p+%$5W-!zo0?akdF$R8)n~mNirz*9dqE=BQZ9w+vp>4v
zY{nOV<4bbE=@B-M)*j8~e{bw)?#O5oA7u8SQzGvD4dF9;`Jz2jIh9ett&#73(4*t}
z%uIYQ4gyTwK5!c6FyxgWCw9QuS=Wt!=KA)}?f*3#Y+!;J&e9}}ec@B-oTY$^iUNKw
zACEJT3t<YwwPrEJG>PoytoN6N>I;$G38zLug4FjyR;p|{-Bu8ZhXF~GmZg&=ny*g{
zejOf)I%slBQkcrQwR=K#!t{Jlvpvrwn&vniFOSb$uFeI~hCGBV)l}_1(2~`?zO)Q?
z7ZV~D(EfDbF;_tMIY5!AGUb1cMp;5QT)lXbfA^?mg6)eQ;7x@QErX*=R5BaBpL8EB
zn7FiS{v~LB%jnS4<5_<MC)MBm7u8n7-)0CyT9WNz_mD@HX4N8VeC$OxIFy43bqaJ1
z+NR`@EtoWFZ|4%ot`qklTiG<fQ<PG93G|-$tU%w|H#wq#5HAotWCg7l6y|5PoV8#7
zok<h{M>fQb>;kH=LE9%48F{2)eWEN+({D;<jU9F%akpnlE8YJZzUA6+F_UAKiD#%O
zN}Fb&o`cw{y^OasLgo1<haxVYt8r1<4F6|TxS?fiEF|HN*SGI5Q-_Vplu$NWM<3gC
zZ>?Kd`DiL>){=No)%xg2EN#w1u3YE#cR<R>@DGjP2sB#s)ZU4rfLw%i!s0*jPTeC?
z5Lf(_CCk-~hnvEEmWCmLZOC5pTd`2#mNt`F)#MMfxuBSCc}l$q-64cfv3;Rd6K=e6
zH37?&W*c8zl2L@jzUxp;HL331IDq$FQ^`NI3GBgxxL#<Y^S|8t+Z=~zSP4hY{lNAg
zK(z%fC$J(TF;+GEFZ|#91~_n~#jRoyfoxlYl_scqN{Xm;w_UnbNSOGhZKs@Oedc_q
z%e7rsmTfBq>STPs2KIx^i0IP)AkDIFJ)2dZ`RigWp^n{ZYOY^ToH1>BIG-`*{!1zq
z$_?q-rbW<L{ZO)o4><s-rj=R&X;iDhS8$%M*k~^5?M^9hX=2{jYV>*rh=_ZPP=ReS
zzczg>t9s%NpvA}@A?^bowOWDw8N9*w-O4=4Vrld^cv-Hk0VqyePaXoHmU=Z~1{VHj
z-(_y1NTxosXmLJhNd)&a*SYNg1z-3&*?TKcFb!GYqI5o?juoo>P;}ry|IPJvd6OTs
zVcD>}Uhr!y2qfNM3iCTs401eXYIUbvcGb4oYUCxNbxDahQ@#T3-ozjT+wRH9%=aQf
z?}NykuH0?SEC~|^!RUBamSDwAbX+45-@--<*d29O)_FLP4rqL0E%)3#cJ|j>9^qf>
zIqb9b0T8g6SUJa&j@9A_W>>lH`f5C<?#)7}s#C9#>iXJDs#V%Yfkv3#gNB@f6uoT&
znQv;<gbHSQ^Ur(#T@s>~y6H2vpf4!)y4aDfD(9UJqNp>8&vC_x<13c(^$JVT_BEZ5
z7pU@|W(B3`Ari>mme%cC6trz|DG=-dvq6CHK+1!q1GX>wtG!p=V3!1emtbe<KFSgq
zPM$mNBZ|K(@ygGl-ShMFCv72v;O+dGsAa#1o0g-G#F!W5J;L5B2KhDWBrpWhQY1i6
zUPc1q<fIu7t8Cz4X<$U6`1ke)JVf~KXEeV_i=(RnNeMQlhV!!%Z87UJ=YqWRrcs~l
z42j$^cePfUPg>@>hngS5Epk$n8hN9@tMyOJalFrj3_ilG@7zyz3S5`PMUZ%Q#YF=L
zScgHeZF;ada=d`r-)vUHQ+#xsIAZ>tel?PArW@n`qKP3Qns~k0tC*2UBiri`4$GW)
zjjv7(w0<dMw!;N_ib>{tyVneR6GVO1cjXzw-z8z2-by!pvoTKg^w9zq7r*?;)mj_Y
zaeDQYlz6?dO>#4u{lpRWZBsiEeAnvuPI_JX@`vBNwzi-|?i!hx^<jx7^dv!&<E1eI
zmxRCZz(7Js_7z#!nrGF_c@9xw{@;_`YCEb`{Ql&SNKpzqX+``ihB3h*o=Zw27B79R
z`cn)Xx0{;+rQP}>q&(=NypTRW1|3PYG|`Bk%CV(L``-(6&{{4`X;JJA9NkYG5pa-L
z$hISl-jW#57BOS|>jvuPB#iX(``dSr6Y)4bf$PM8d@%_(?dv%sj;X-LZ#-&wc}yrW
zcn!(SQF*|bTM_vQ2`(b&`8Y0#Lkvl2ZEQydNZxS}JXoV_dosRJzHe;uS6hg3pM824
z3yBhBs>ztb{2){6#;hsc3d`bFtT}!fBUZHNu$?lCkgYGK+PO+e%0<TCK$!(a9*+{d
z$+TA5<b%vp^LTs_PYDO#=>8D+)8=35tmZiiJvpw~THmhrZvS_bhu|m#5E=pQx+t+C
zVCCXAGGPh@Cg750ftuq0)j+h(5bkqZmysAhe?vmSNslc}Dp48>$oZUYN@}@GYD3h9
z(d_g=BaAsRypvvyc#Akg#M`l#Be_6jD8h5?o#&@zkL@p4&6u2;#Uqgpb4|G+|1>^;
z+In>+bM;iPNShZr<RxUyL-(00y=uPy|2dc#4KMOkkN=R(70co&hz!q@uypu5=G*%I
zuzSd?)r<6=Bl&)!=9%4AF}*i)_)DwSq8-}FvOu#vPy^inACdl_y#RQFsTXgI+>O`~
zxUf@r*MGi<W|XpAa=W;=zxVAjA<B&DGzkOO_mZKaxqBaX%@}A<A!l!|m`a~W{7S#@
zp9Ha8ec8zVIU>TSx*{S>kbER=;1WIW`~1!5-cB|fQ^bu8kPc428oO}&Be4a$dsdzZ
z-!(YYC{5ac>@FFWmpbw|7?jlVcVnJ}P1Q^xL-g#PR17Nb;6D4J2^PM($ME@Zcn@Yz
zL>}`qE*o*46+c-15!i3d_+Iz}y5EN>=B?0&fGIiGZrXzMG+1fIR-Wh9L?B`?)6g{}
z%QvS6p+dorp4G){{;g*`XcQCtY$>+f@ZwVd5|<W5AkgAmc7lWuzl#pi(`c^ZyYY5(
z9v#=}qh>GW3C$;g7>8xkz!JM_HHCa@gYUsXO$&K%=<f4cFx#@v+R$|bOl3qi0B=y0
zw^$8FVt1Re%oU>!QuiM;9{f4DcQR4OOmZO_nYj1xTPf(|Czv206f+8_pqQ+6Gj&NJ
zK{fa@rDFnk;kF>m(DJ&+;I(M7C7J9S+y4zk`i>D$3_aPPuD<rY^1|`>skd=HXfNhz
zd1C{L?}NY<$JJKU$-t~YY6UQz(((>~=z6g7C;oFJ&S@h>_!0|*=$M~NY4*<cjqW_b
z`p)d*fR_BsVlVtgVQTFCNAj6$q%Phpuiesf^UQNFiw-@**lGm6zv}>jgLf&NvAX;%
z*DN0sNsL){vqRGB+6%=ie=fT~%sP~q3|kQ>1RiZQDA2V3os)TXgl|Q~BnoIS7f?Zy
zsGS+%HbL}I%RTW6kHqc7f%h@NW=qC@y&>b$VQ8?1imR({Hv?MKN-d<tn74W;rXE65
zjod%p>d`MnM%i}{ZArLvoAaQi{_;QcF#{C;gK~h#<IYX41Gv!Uf=|;hZIQ2fB*>VC
z;}20igAFd6#e{Y5w0xy|>I4)P8!Mxk7m3qQ+X61H8yojYAWqc0w}TN2B#W!st%=r$
zzxnHpeOFn#?l7^TiVsq&mrZ6Mdk`aG-$-ZyX_q_9ipT)`x9U&1<pR?7>-WoYPHV{#
z#}V8I+z}r?L<7+})(1ISCN=I+bMPesJY9@irIrUM`ogQ@=K!4_@!9PoLE6G_4Tw(*
zCnJ*vcK-w-1Vu>m^LP?=6@mRssYIX>#wiesh>*ydxDkI{46GgOXP;T!ZRP@~r7tLw
z_yC9xNEb#I<Ajdy#JiOMC5y31&pxYa@Jh4p`a)RG=a%SfWQ7nfz-Rq*n;%j)W;*_Q
z)h>}_%Jr7bEib)qyNR6kv}+#5OEP4l<hDTCb>qHX*;$AX$%arglfP5_X>Kw`Suhl(
zOKul(mqgSmi2|vY^Q6UGGH5egly+-x>$CQj`651x4r=5xSK1m1rfgeUzUtGWO|J}b
z?fIHcg6P?yE)Oc&^x{TSzXfA~tY_Y;GW;Pw38P*QL1<P1QG<PO9NT~p2$jY@#H;5l
zBTXgpSbBGeC68ibKk&0J)|--c_1i35pIGcO6Q5wz(fx-==Et+qm2|XB)}CVGs$T+t
z?n_<T#vdym8Dni6$W?XwI0>M>nG=^;gWOE^3Qt&GX<#Gz%z3WlE#81^(nHCh?GFyr
z_%v6A=(xsck=7D>!x8Pucn~#<&pOtWLQ#PFQL**Tk1e^{^vU{j&;uZ9eE<;<vQWj3
ze&<{&Okc<7VZN*l<PA(BrUJgc**MI4An9-ZfXdUK3PgMlmWG68cfI4o?j6;@POKU*
zsg;A#Sbf#_7cy37FZhJd1tDSuXo`jqvZ#VJ93`5~0svxa*~zi@_i|X!6cG}V{8d39
zAra}vTnp5Y*nI(Um=7u(+Br)oQ`bizvBf|X=IRHg&XLC?S}DJ}*C=78d=Pf^<{3>u
z$ADB%=4|ZO#NIhCQqED$w7iq2DQ1f)Z=!pI%Epq={0ZiNPu8Wns4}lWqYmyt3o%#$
zya<wN{E17qX3O*Dv^!(Lz}X>DmxO=plMvP`(F3jMFIQfRp+zMi!n<vVL#!M2nsqy3
zYh$(;Xs^tTy9Q877B<Jp_`G6!AI~=p*^^jV-+AyPPLqZ_1T0EM2-qffsCqVmM8$;{
z?5R#1>%Lf~Lv2;MTF_!*B+u|Qc9yj+X&mvspfqCQfr5q77NoR338%)zMxTQ*AVX7T
zua1aFt>4>xuy@dIU=mXMeTn5;*kA#Bn7b$d=In0L#Hh{lY_uM<8-eh$9nU>#ab_G7
z9CW9?ef0r+4dYdtVK4G@%d~%7aY9T?^kMfa{Dy7Aat5S$kf<@1bUutBiH^>s9q@v9
z0z|Oqi(V2Q{}aik-`^H4FNj~11VY#v2w|#{>0IgP5ZiV2cFaavJNFeU@Foz0>a%+a
zs6okciSy3SZ-ZR*wanDmdXV9dhbM`qR~qoMQ)$5MNvP5II29c<$fxyN&mH7!?`4>V
zpS=KXeJ?BNV{_BPay(jB9*ctcLjRlOiq+{QE|OzYtTB?KJrEd~ww4%rpUwOlvbrqx
zr`fhErz-iG(ko%p8aMvj4SUGtuSNc8Fz?gwo1p(*A|c|(2lwp3=Vcy|?g*9~AbiBj
z@QYo_)>ouj9DHMYhe)I**JqA`G`#hW$(MC8K9A)y<>#FCW^f9`y)6K7hxKs4<@t@v
z3dPC>B5As}7++H=hF&Btmk9cl%nLF;G#>z|$HZ{`xm{k|AFE!@ro}p^@(FCRp-^Go
zW}yA`dTpC_?&lnj55$BeNQno@6p@zd8XN25QlSUu1(XB?2p`d~=Ha3D#%x#QwPqx~
zT1AY{0kA~!g~kq$(+;&^2j03$O!$bFCwl1R7Z%E(Nkod<6$SR^VHSaebK|%_;Fn=!
zB^*eM=7U(7nv0T^>gf<6fn-DGn_$0w&gqKy!1RJ_Y*t2pH<}pR--`c3(^oK5*>qjg
zASvA;NJt9OjevA_Bdv6Ii!_Js?(VKbNJ~q19J;%CFYfPqegK@gW_GN-_S!Sw`_2zN
zZ}tD{5O~`7Xe(=Iyi}26-L)U{YQDFTw^N?*<DwxKK-o!}cP+apnTd<i?kWXZP(W!D
zCj6$1Q`9{k4unl0eCr$lzm#>U<&b&L`dik0x1VY$Wo0=QsB1q=%skh_47kl(eZ$!m
z1B4^$+3yu7xXJy92Ob)=X!%m!0q`XZ#Zu$37fROGCdX#|Ps<~&#|cnUn_#j-NqWu}
zZ?^p~Ftq0<A?sO9^QB*0tb$d9*w-D)b2=tM>6#8juR=(#75P&RmrA<Gn_KZPF`?gl
z2N{sMp+o7ky?>aF5OM?>@xW-LyjwelpZ)J%Uag@g|AkQ|7k2Fw+(T0+eZf8J;NhB$
zoo#_~VgH-5nj2!|jO}k${t;y<N{*l3cG1+*mZ%Q8%jt4=g-jEn3Gr>dt$N!6>JTU<
zZ~gMZ|Eo^B?}4|-PO7>TfU*ltsO-lNts!Irk~+?)efgwA45;?>-n5ogQ0<TM|1HvO
zMx{&v$}U}I!#9Ro;GFYq7Y~1Npm(W%3k(}G;M<?aGvjgvgu2fk<MdFwM!1v(-*;~S
z<+_)8c2~ld2a+<g7@qUhO>5f$j4T`Gr0)=KQ}<aBJ`VTyb!vqpebjwG9`D<b9V~nv
z1;D|oup(fck}m7Zx7ya$L3wOwnL^<+=Au$B(Nk!)98m{@nkxfPk~@1e@}Axo8(G!L
zZ;u}UrkSm_YS4lU*VKyRbB_+|x_)a0WO!8yqo=kSm_zg(PS^SF_0Uo`ye{<2YsPhF
z%p-hx8vHsK@ri-{`4z?VQ{}sZliHKZx5|t~$9s#l3@6!=yBtICkhU+j7oe#AV6A9$
zWDt}p_8Gf;zN5O?1e&zcYfvHu1EW5rKCgtjWQzi}`mQ~QgS=Ew+l%>S4~#7tz#|yB
z<8O}RcRhUdfaa&SOrWa$^Z7r45D<+7xy~+HB%qN91s0$fv`1df+3V7X0dXHZj5~pF
zO7JN2kjd2J@3<i|^=vox87={)Xo)w`^W1+UvOtKKOw!8bYJ2bEwbrlI5l$VPqxuu~
zsq-0HYx{ehp#Rf{x2aseYT8{gpwA7bI8J+n>!I|oam^5Zx#6MTSpA)ek-T;MCQFrp
zEBh&M9nqeUu{Qv;KZ_Sh+$uHMaKhcP*lNB|0w->;xo(7?yZXETTkz1a7V_O@_t`0Q
z%fj?|-Z~+Q$KV8j)J$>1Kz9&IC~M|lm4niWYaeKVXEZ9}zA?d7|FN659_I6y!Jp}9
zw)Q0$EX05{NgUW}xCBnRp4$0|<SVm#MPnmOwCDP@SjT2njOtH%hV{vN$BU3QT(=MA
z{ga8y{iW}L&#gq0g;v@iY&1-MeV#deh3(2@{$-FgRw!EXMa7nNTI{N2g?5baKv<uH
zztQ3{#|aAT_^<BBqQ1$b4nxGgejx83At^5I)-50k8KuXmO5NwcR&$Q!)034CpBZ==
zWW>gN9>{*@I8b7kI+ToD?v^(ft61~gr2uWvPVZEQ<a1y@GLBHYfc?9^-fNg_<q|k6
z0l$db<^_eR1=;I2DNnhdt4kX9E|mXvS2%X6wt%|{LA0$dnU~^L0GpFD>P)#x38iO<
z1vLpFs)zv;G}ICl9ke3)y0KRy&J8W)9Zr}ty@mRW*+{K&)Xz)exNkmx^nv%3-zKY6
z{Yr~8450fODp5bFvD6YDr2%;8A=e*!_X#sv1r?<11NN92bWB;v#Ks7I?44|Z>fAbq
zx}H^}cmDvk{RWIhVeLnoLiI5JdZk#0>#52-Kk)p^jyY*gKb~fg%IvBQePnVaI2EI0
z3#dkyjsE@sav4<gTKCe-z0tmv85}LFXY-BPMlZz!JHIc3X8*TT>@QmWnawPjkCc9}
z9uCAfyyuZad6lnOm!1H(Jw==ji|gT6OoG(C3MGxk*`W*{4(HZQTN^T>ij4_*tIKhd
z_x@TGn3(eT=`;VbUHra|?s={Qus`B$vdKbSEMtdvM{~XX+=Bng??(q|%$m*r07Ewb
zY2Rf-#+ep0d=CVfQ!VI++j%qTtM@hAT1h?QK$Sr>@ZT}oVDIQr=SKeS6>I~f8ogm0
zMJ}I#sV_4aI-of-TOLQMRA(d}(6Q+GHWJv%@IK_f@frHhw5if$y~tM+_m{OTdE%^P
zv`r#n!LODJzHqestLA}_$4)vQBty8r@-IGV&QLquQxdS&o#r|=#FKqwU&a0f&LILW
z<VTn9;c-0;1<2mjYfRjL@oRUQ)R0aKAaj6W?P4~dhYfUSLHq#=$Am6w+lrXG3Q&zV
z)eFo)nE>TrRtIynR$8PcgtTsw)UP1H&cXhi@K!?0LLirqg`~S^1ewkC*`AfD{09w2
zqn2z0BqvZHnA%8yw1AU{3NM#z@5(&BcH?DNgS!SAHvSLZGfGSP13+Ewlf<v4v?BvX
zbk(1jAIxETVb1afyV*iL_MU+nxu%O0|Elcesk@)HR7CdjE$D=Vw41WRU%djCG<d1b
zJingL?T-Bt)`Yu-2N>KGlUToiMjIyerBb*CwVIR7mogbk%XhPlg){Wfj}473lcj!^
z;no$@*^LdG2<jq<CTw3meC;`is-;b7$yy_yP_IB)U*`LgGJbi!?td2TNOS6WlHqvL
za!WGpEoLS*)|VD)==W$%IZtr;y};S=0UE!sZ8_c{xFC%XP;kIt-r7H9An8{fcrDNb
zj1KHeJA32L?@4X+*h;MMlnyF$_9q`}+wz>tt>-u;9a3uSI#zCoZT>)mi-J*q&^(4B
zdDd~%y5}l4eJpAze~Lhrg$o=`;KWSVs#<%P8KqD#yZC}cf}o2M@qv#f0Q%uW`X@@z
z-t4F)!W`!^=Upog?yOM+YrhaDp_QyFq2?IUDfOT#D9pF5i>Y}Q_;D}I-PwPTeBUX%
zzEWHrGo98K<!B3T-J)UkEL);-=Ly!B#GTzEx@1sXGhGedU5!K^#_`^QlKCfM<G;Q<
zCI61ea6D(LEwh%nvK%AXxg<!h>?ZmI)pbJlL`QQjv@I7_!-INFLslWaqZgXuGDo*A
zaJBxHTd4|-MO{sO&Ut;<#F;E9^L9Q`E7Jl@c*YUu&Azsn1k(a=9CyBcw6K=q;JUpY
zaa---{^VO?=luW}kxJ=D4hhIEKbxTGyGL50&@13Y_Ag>B-Mgh}%0uhBy`g`U`H**}
zkM!DakNvo;#ajx0dd$$tED#ts>ewF+$@n{+&aKulOgOuDniI=^oc;OPt-cFeP@N$=
z&N%1n_~$K5$C1iul{D<c_-^Uik+h5cPYDVcNyD0;>S>KaDz#*QC~LsT{HMrwmYUMR
zhy$$ow=-1aJ^~Q<$WhV{#TUW^aRr1tzy($j_tj00U>Cg4pGW&D*R<>J^=0OS!ll36
z(5866Z0iag;@+8m*Vt83tKzJv%`<fAUpC&Mapm{RCBq?Cy{cqY0KL<m>L;i(X51Sd
z7r1+QE$o0sh_P^rBSuYUJj<>cz^RN18Yb6QQZ};PC|D>H4L<o$@{h!@`E-~5VHC5f
z^WisX5aR|nE6VpIFzF4hsYAAe(#ZOvR+3+sDPR{rUOZ}%B8IFBz;sMbea|yD_RfpW
zaLWD+?-guXiHsf6k>}hLk8D@ViNQlt*AltqN7<P{OFPIUTc?^?kIRPZzrK$ofz2hl
zkHY#<h_c{M&WrCvSAY5*E+y8o_FFYM9E8^SyQPM&fUMJ)tDQbzMY{aPK6g~(UqaZ}
z@;KjWy4kyTGB$<yxZq6XwX{F^MFo&4<d7VBLV8ZALjRB-)0u$&&7z%ZBez*+Q@G+P
zq(3iD9GWF*k@OS93BK8M)Zs$aE*jkjP}uAFRCpo{qp9)V-~`!JZ~o7eqkS&#kygL&
zKTwe&tI_tkD^2^72*q@<3~!yIP)=GDk;2#UA@d<u!OyzQ+?J&4^ZW%If&fZM)i>cp
zS<RHvSz$>Ub?H$YxD@>mn1GBGRDZe`)^PBtXIK6%u~BzhVt*}8fxRTxzA!U$&BTYi
zV0vx6)%4&Y=sF(074u2M;8SIWcTmvx2-f}Yaozpf)xd@F4E~k^^qnQud1vZ?MP4eY
z&V*Zz2Oe{ggU6<>^%+TC!ovA!_YHO)<35Tvm-A!3CK@uxC$BV})droG6l>U?;X#8%
zYYO%wSP}N<H}%&u*zx)DO_ma;nO0s)CI6f#U9lU6gJ#fUgb(_5HXz1r#)Tu&GLK9Z
zr9{<+|B7K0`bF2pdN;~+O~^iTQyH^eVd;?ZJ|1Zz3mHmznRSSq(p6eF(<*b-1@{5#
z&Wc>w{!F7Wv!RM!;)M=D!jN{g=V{&VDRjrHXWj8dXj)4XP$t!j-!W3NFH@h*!fE)`
zF{7*Q!<q|*e)6I+k1OR91UfLyq|kB93DXSZ@bc&Rc98bMcXGEn!~F!XeGO<TQm>+e
zGK+@;WT-|MAsq_!<wu_-(zTEuA2h9z6KvJ$|M(<a-iuQPW|$n9i4O!^y^fC~mSHA-
zVtlWmKLxX!BFWymgu(NtXM<kN2PJbEw6HKX{EQp=$K7StWP{^!5sdy}opIbBv<P1g
zyXv*Jh6^3&C%AAWf}1HvbN#PDi1;?K;j?kXg1~>~6ebJO{SZPsQi6O@2AFhJeS9P<
zIZt!OzcZ-eg&)i=E}q_Ukp+kQP}-@z8^r%bow-tC0%9#ZJu8Xse3iY-34eJ10J@2_
zz|A!mk|LvhcbQ{rVq@7=Vr@Q4J7o6+Cn2CLn7`5KAFcT%R9sMQWucrt0BvwPf^#R%
zjS2qNHQKkFsH$<xytiis_xtG2YvxyXt@U>r8MO3?94yhtas63zM9AJ!>unUY(F>lX
zmT>~e^ku}vb4!GA-UxD5+(VdTBR!y5RQ{6E%YYu4kwZ&$?`2q?oKVp9F%ldDJA|w>
zDgqC}y`GKg`(mM?JTU*OnzjGP#bBHu&hpz|0((Vil~G|Kj4*>brsj&=>-1T)MBuc0
z(Nnq24HcIm!X8OFDxLoX3wD0U%o79Fh0>P3&i?C*cV#PU0%}x+N5hW<Qur-+7V;=q
zGOO0?eUi7>o1NeIz3{7cl8d^Vi>dc0K47o7D8aYNkgB_vof7_&^-N6pkDNQ&W}`V1
zudw&mHZPY=@b^XZ<8)X_ex2w}+?8#%$X^2-QTLMkVCy!6oeK($w5%F4J}s0qH*PSm
z$1>h?6APc<B|R<`Mm?iq?3UsvczETP@}YA}7`mDHkm!9R9b##CezH8(mif}3tak*_
zg6rST941VtQ<A^hD?Pg|yi6l&csp-_>Wt?v6Q}tt^Fhbg9C=K7wt#tc=t5Zisk~22
z1V8NE>9(g>I7pJpn@U0I+-5q1?B#a3I5dHaSPo%1Nub-KPaJ0KqqN;eLRmC>UM;1Z
zolgVC#)Pu(I*Lvi(0Q5DCCf((+5rn9q+9V>F!BEZ3B3z)`E63<Klk?tcTcGvd7hz{
z93tSqq_?rlKs%RzkLHjNdpi0MfRHYuIM%gx94wr&rj|cYQ9<0)r=1QQAO8U5XPPEe
z`Lgzjx=_PpYwYg+WYCxTn^R9e{qz$D@on?ON-pi;;oqef0c+UZ6t^}f(~lq1kT^5T
zdT|rN{n0@`o2l5oObrBZ_HVb{Jfym3vlMm=WS2-Ko=6baIPLFTxILLfuifche_+0F
zU?d?+kZ~_bOB>NS-Bf5PmC)GbaB(qVDUzsi9DEWxJ2L#NHKT6eDEdGf&}7iERG4`s
z`?#IzC<fCj-V&anX(r%3<LK6{?qgmtN?`1A&NmD!-&IveQQ&=dnN%E_{6x$08$3zR
zchZ$_O)A1)T=KvZFxoFPU?dUb|1=gZJUH-E?boTsM<e`5{pRYCsDN|PtzZ4kx!0@p
z7GVp2K}@E`5ztCgz7=YOeAO;42?dY#dZx;_q4QiKzDUI&HS*%&Wle5=X7gGs?~*hw
zM73t8`3uPDLP|^r$#yBKI{4l85wH!Z8onN3EK67Qa)LP(*3zS<VNuYFUi@3*^d%YI
zDGl5}<VZNBGnO5bq*if-e(oUT9=etp*J@pSTYWt2p&4#yp|`umAIR=M(zyCx(+ot&
zks6RshUDaB$BI|Wz^3By!SuU|KjB#16oamg4}Q!@=nVEJd(Ckc?66X#o{U&QWmxR{
z)P{*|(x@^+J$cPng6Kh<!NZo0AE+=>-Z^cBDtFMvO7ed<7rmj+oVSbkT1aN|!%?|}
zYUyx5Fg|oxV;1BoD7+yFy+(GWes!}c<%r&xXdc1JH$W2@IfMxWW)`e%I0Xbb`q!Vj
zlXsSHiOJr>Dn>@+M$WN@I6!=?BhiKz@sA`sNhS97tuPCDnLbO829TfwU2tS+#0Dhz
zW+q3v;;1Pz;`2|)oOg>UWflqI*2Kh94n(@m(H~aRzbBs3mRW?Z6dk1dfw428Cx%8h
z&h${eMbZ!McmesiNv*jgjqIffcrC4=j$(-=#=-gbPoDyYlHkhb>+OP+r}Lya-}{b6
zeUwh<yM}u24+k$%)8+`}=Y+<8i|U39jUBo|2&vFvY_5y%OopYNg$^#h`;r>}J)!IP
zDW8KpSJ<X2?z^Jxx``meEubDBe`SRpME)LvApBI$n|*=_Iluez_9^1y;esHKI^Sdp
zQ_>*Po7py2n$zR!lNXE+^+hf7e%N+k>wTYANtsI(N|K88(^CCmYH?z&aUbWs34vOk
ztT4AHa|)1i8*G(>-bW(ufib@$HLqiXU_Ub>t!rwjqDux#U(S<?a-`hKG3%<T`$CGQ
zN7b$3Zcz_|?@SW}#)27g2*h#M89sm1Zf*Fr$+X37tp&mEG4R$A_uNC2w_n$@+3}Z3
z4qm3F<Ujz=y5886IgXqTG4Ft3DMAhi4%XJ*1U`dvUcK6yvbsNSv#LB@ou?nL#O=Bu
z*T@rPjhFF2`&04WN^b`PnY-zPfvrdpXCaKcN4)Ga2!OrD2YNPQtwz5IH(h<=mC0UW
zEGn;VZ>Q!Q)%HnrOlN=suPH`4Q(rf8G<iKATZQLY-|w8}{ym4Z<9FCk{24&6|7HPz
zh6^=QOoF(TQZrS(+`aQvRQh@*3jee>WHvzfhT!2bZtUX_HRO2QE2y6qI1&;f?PBhc
zgCBJ2_#0akPFdCD<f@jGJ}>;2dg%0-CU=YX>L&zpI)OAqlSLiA+~&_Ut!q_fQhoSS
z#&!3Xw)X5tPn-zoC;gNH<%Fa>Q&S03OU^ue=4C8dY6T^?Vowt54EpF=^{kGYwws|<
zB>a2bW4=#P8SxypaK7_YTPo0>_)#pba~gf3xYwEz-@f7Rn`;<BT$At_cxTEk#354!
zyG$!qQpCoBV>-_Ud>C|6zKDN1R;Heha&snrL~&pGb^FXR46}@2*QiLa=r;F71q^Y@
zVW+;J@*hYoNk|9yuU7z|m?rBjWQ%V^)#I1z^1Ov-%^tp@)*5^7swnG$JpLoc8P9NT
z-|*jGi_9%KdjYuxW$4{P*o%;%4l~BUgY_zZuePVl;l5J_NTTfCI|7G$w>;C!!IE>g
zw*6(~H1tp(wHSlyUpS(^&>@9oWIw^>xfR=dvQ>d3#rtOLy<It>(8n|y_U9EK%zKps
zE~Hv~y$*AG7xrK;!?-?vf$Ps6{B;h64V&(w<|lr_X?)Y4szxrrrexriHK0yCrh{T-
zfP>921PZ{5lqJG;*!kogqgzR--GaoEG2*G&#)@`opGIV%?xc4~uY1&k<VG83&I{=Z
zz|aa-QF-hCv;Y-_FnNA0Jnnu$5{MQ09W&Y<>Y%@H8`4?C-}F46LqWS=d976xJiY}z
zdKH&`j*dUo_GAYVnmK@@O-hFM6Oul7&E##a(MjTJ(hd<^h9Y1v@v0cQJq%PrdzPJi
z(Nx#gCO`=;3S5Q@0jarWJE#M-Cnp~=%~Ic3WQFMY0YXFZfgV*+<dH3Kq!%*>OHsav
zkV@cCJmmJ(9Fdte^zM{lBL8f0(LJC&d84SSw(w}<W#UDOd6-xV#>`qcic|VTAkls*
zAFBvt0BNF(+lbO|coEXwo_ZxEEqUU~jTJ;FS6;$qPY0JWqse*wZFFP>*8f%qnB>Gv
ze@mp0Jumgb?J$}Q3SX_y2S7(z<rwCf;ToxTjrT?9YrUVVLT<U$X{F(rE#2<D?)6gX
zi9Ie;jnKT(=a$@(j(z5JcTgC4a(q6Mt8K)PWeH42<ki}`P<ELlOQVyk-p82aPd!O+
zt7mokn9LL@54*KfQ{F&`x^VMSAFmvfR`QXuDYvWpE~7N5Yq_v6s&?*Jbs429%#weS
zY{G0>Z#EoS1}&7xciJ)fF5RYL3J6ZAZ^6kLM@srazN@Tg!G~Nx=s^Nyk>FAa!Is#Y
zUY~#C$S$v-&C_VZPE9&JNvU()cJ!hYP&;aCXEx;-I!KdN#yK$ew>9ODm8GlSI|F|j
zSEc^yv`n<_gMrXDhtY0k#v<c32SlYy*aI?jtjmTbBncOuZufIVy7<w1RGrSJj*G;*
znFEAxC?@x?rL87cJwbZ2rFC;%QlJEwPHUh;9H+6OI~^acRq&AmUMR6vgGO`Y&2G%z
z_C00LJLVP9t1oZU;PhzHJ>jiBkH?G;VH*kzz;9YpzHElH9Rl8bUdoRcf479=Rzor4
z?B>qDY9!IUom+s<Bo{I~nyE(dRC<(C+rjk1ShmxF{WGrJwC)kKJc!bh&y6dgp`KCU
z28nF{(WFT6fbtSB{$#6hx?0B8W`0Z|yaX0lEuI#dK}yTf1*YO|hV#?aht!H8G8IRT
zvY9vq8}XD~Q8kH^<a{o`aW{P0#0_O{iaV=3LW<oQZ-a9+>eFW~5~+b~@R7Q~Q62_e
z%CkFH2wDl)G@z!lg#Q6`bJk>*vQXx@#0rECYaQsg=^OfmL%elUP}mw+!W^`w1@I_d
z4MxN7-c3kMucG)L9v!cb+u7#S*mnS&0+d75xY}vSF!rb^WOwJQJYaCX?LJ*Eh<Ogw
z(Q4lM_>o#NWBPBEgxVDh_(0|A@jn)-B|QZR<3TAhZ%orN2Ut1yzmTI8yj8gT!>x(`
zDsU1d*S9u1l9g}61LIqj+;N=ci_zpsyT!+;JRY1@o%j;ruHBr6e-~m$#G;FfjSDfK
zTWn5P9pkvuL9Qd>S;{;e4(-5a4{22L>hn){`Az4|0paE(Tr4jG0CeKHy20clbuStp
za=)aC<_x96-jae+__zQn`B4p^SL`M}k=@|Cgi_UZYun!}()**Foqk`TX7FV4qPPV!
zZYv2@isxS7{<m~YZ<O$^<Re8bWq0Zxd;$6w4!MIFAa3tW#{;B7dv0){w=m7qzg6T_
z_en_;h1e2WVdjgL0~~q{^^Zo_eQRmI``t?S+Y6IJ{<&-RRZ&e-KI%*XTVDTjcpkn>
zXlm70jD}Q`t85VK#cEh*GftcvZGO|Z0Y;e^BgmYEo^U}3-+`#n>)sPLRLq*5kWmG~
zJOzHbXI9c^)I1zjrw`EI*cxI_Y31dbQ?X3rz2TrZ5j8Ymd_y@6D#j7_6ltiOG$^WT
z8Uk>4C9cn^l_B~h-UG2fus?u&z4pKev$odhgkS<`lO3I0pIPdb+TYl#(u0bg_N~%3
zmFRXFakLcQQWej-EWYai?h6FKVBCPWB+DxLDtLf%mrdrjjsZ0AT7EzV+rDGj=C|dE
zW0OXX5<KEST~?}*rY^3%nN)H}0)64tKlaI9&$4Bq<gWEMw(wU$wcDS!L^5UMo+-B{
zd;4T&Ofx`G8GOsL)zjvgWOjPDg4rMmHU0_qoc-~)ic<x#0h>4qI!gM{4x=MRqQ8i7
zLt#!={{`Z=^%s_O=P;T?-E#QeNL<D$iWGj@dS(NG+KqL!gOG!nO~4@&08K*@3`G&1
z$X9*!w@Rv2OGP$j<T7`4;q~?HIEt?9J(K|dhE(=nEt90;&Sd$bAx`O1k3^eOZ?;Yq
zuUR%Kf55wTarzWfvhstGY51$qfxVc7rVK}aGKL;86O1t%LnqIRH-EC%!uJfCYaPH!
z%xEQ2g|4#yK^Q!*-3NP~od5<{SvLc1^H$m8awTAWPtx*|k`KACO~>IS7Vp=orz>HC
zf!IknY9o*V+!vG5H$_SwajcnImwV(uiZUZaXmFi=Q|pd1&#LbAJgWL>mMK7VtgEMZ
zkGY|3m}hX!OJ6W+RHrcHT-Ouevru%fny)b#agtz2u`_-fqpD;1w$^JVMqsV9Y)lTt
zVJ{PJSSGEJzn<0195s{sam1~fu_iaJgpcOOJ748*a7F+FTDtrW=T5uj?6EVAi&SUk
z-&HH=yEv9qb@peh<U^%%&k%;&?2tEi<a%>t7{;6IJ#9}uZg0xTy+R;9f69HD+AW36
zj!PTq!KfhOuGWY$oz)@(z5W&HMFQWNMywm!a++<;%R%VRO0sC58Y@nctyk!~#-f@P
zI2KF*F2XD1E!BJ|z=*%Wj#=B9jPzAXndHtnX929jtf-Q3^W{&Vk;d(DgY)l#$8)@d
zh$C_a6roDHhH<qvN-r=anULee!HmwaWOBPQ@RHM5klU@xxP8JG`eP<eV_Cr)IyF__
zBav>;+r`Dhv_xAX5KcbeiyDDG#FF>A_bJ4lw;6ytqW^7J?g{;~2%vgdagf@Xi?R$4
zKT+t>j|vXYc(2FF7djv7cT=I*Pjap!)yKOAp7_42)#Nrzv;Q;e=**H#S18dALY*OP
z54%Vp-7FCH#hH1dZD0Oi(QFXZ=IWfrda;<Ck`({G(U|nU699i{N<0<(WZ*aSs39}1
z)B07cbN4&$s|HWr)T-p?{_Tv$PaL3k7qy7S%b{;^xZ&4y8D&hf-Y*qDxtH1U;FiIW
z$qn4Bk-lZh&_6=&5WW?kVRu~@r@|C5IQutD9pwn1FvECh6$l3fFWCzE=y63}Sd$+R
zye~;x=+&-Z?SD#o+xk%d-mAeBx?PVs%k9|yI^wyv7^a}6vAZ6IZwn7jJXrJq!9Ps`
znLZLu`SR>F6w-jsTbN6IQ%njUcS<yF*^UB{0)?H1UI-7>$7a6ac5q0cs_jMgdI#@E
zw;)KG59Hh}5J>`x!MpN7*nZg@NV~su|1tptG4KEcu^2brnaPxV&?#d{<%x9#yG;LR
zm@NZNF@vkq7W;EDYT|9H$FVWm9D(tw>-T!3h;t1{M?#>TCJgG?UU_HJ{!?K%;}7G%
zV+6WOc2Ql=WV+#%)>*ojUu5n?13jWOi@hlKM(<t}GnwV7QRGYiBdp#TH=?Xy^Hx(R
zPHd}zWheP^@x`iY0k^y_%y+qw2_sA0F<Lt*DftlkiPjdV<EsF=8cO$>;q&6HV6DR(
zG2)4DAFJaojU#tkupjF_i(cVdLZ}EbyG!M?pZ!F?IS1R|xO8Y4wO^@)r(oqqwjnvr
z;NYzK_|Lvd^YD6u=;bPz;&~ReNLbpgfMBLO1QkJA@kU}EmTvL<a80=jVO_wGYWU|b
z=j>x)m>D>oCYo)erP<+Rr+3<L{ddLah#NlbsYt&$u;MM5EZ#mHsI&r_+$zQbbJtd<
z97i$|&k*}Wb2?d@F|KgHhj@2eJA&S0<Q;Y!czjs>Pa2!Ke-;NL203!sR?-|5D$7%q
zu0j2m#N>7Lz!v;*z7OU8EA3e0X&u+4)-{@F_n`L2=n$YOL7(>a+@Su<y_6y)oiv>^
z#1^Qjtrgq+?NA$|H>z<)9^gm{vc>t1^~3xA8<-d+_*DrA1f$wNc8b@RdcAW!Je$x}
zp4@px#g8gHs>XuFH?aOZlW=Fj3ZTxC!pK*>GN!Uz_@`l#Q+3@uZo#@d`KpoMAyO*-
z<0}d8jm&=i>P{y2EQkKXdpgRGwaxRMqyMhZ;Tr^v&RO3Zzw97%^4%ouf0jU(!hYzW
zb{~ltICt74M`->y*{Q%t!mN@2_Dg&ekcZ7s&Xn{rXkQxto1Ct}(Q&{ku5eL&*93z_
z(6aqRZ3+AjSwTYGr85@)-YMOqwy8;u{5O}M!@4QIqyxANwA|%r|6v`Dy>zS}Hc>lv
zVBd6l45;TR%_Ba_2zt=KQhAWsruNNT$U6Jxxc61#4Ma!U-NdW3ZAVL&&r)!3x1(~v
z`M#&LgkxL_MZUMdUCP;ZkDqKN&c6!g(QGfTnSzDtWQz{;CD+tHWM%iWnfXFycmLf-
zHYx{#;cNW_7E0G8v1%ZwqrIVMwR?X=@hS{FcpuYuuNsUbl}eBTpmXR-=b<l7$vQ+6
z5P5GR!sW(#_FJOwG-K+YXwf*ofZ<yu6uSP;UD3+7se1jV%-qP<Z@?RQqr?4~vlv(s
z;`zWp3o>4Jw2GfB3z8lD>Cd$0QD*5yuxUX-(CpXe-C{=$!45_0;o}u|O1A-ph3TZ1
z4yqfhW%KN+_>(-DulW0$69$t}O^VM{cFZYhNC<YqLc!9cgJ4Z84>|nclNoALiLyl*
zQ2&t_`8dH=gOY31VqRXgG3Mt#dGxbz9GWd|Jw~3qiv)ElVYD1x_>kEv5W$_&V|*$x
z(}wIR#$TP%u{kQH(VLI;tb8Sa9n2}d9I4$0-%bXf63yOI(33)OTlLyEp88WS1|85q
z#rorPum65UoiBB?ZIK1glS0;X8dn!5f(m>=)#}3x7vpzZj-&+g;AW8D)omL?MUMjg
z<~ccv1+!UGd40VB+xvEdjr^;i9@3b^JGEK1=Pzfev^S_%l9ii*o*5pdq9QEjik2&(
z#I3itUweP9Q&b(=N3&EGlRuU>Z0fc4BZUt~QBx%4dPOcT8r8!m1WUo6Buq{wxUfgw
z8#J0%vkK17Ixba-_mzbjil-R9QMwro3M+pFt!6^W__1%)6_kaVer?R;h~9?4d-6kR
z$N7I)-c+q!&woQ=0E%8o7$cq!&+I^aZ+G+SAC&F_wh7cGI@CTiDij)ww^9*p)J;zT
zMih?UjRZARE8+y~9vY5_#zuoRbf(u_nmL#LDx*2`3Kn-=>+R#okG4}VxMM5zsCnI`
z^E3jz1DuQ|j4TO5?C*-nnOpnL346~oq`k@5$Q^t5TePeFe8>TfE+>`=m4AS%zZ_Pm
zi?$_OznfGvZ;(@!;S3ky(ZdJBI3qHE7JR1CCgM?sDM4uWY<{Lni=yKK`1Xl_)eaUS
zAU-APj@Y<a9wG!)4SdbX3XuJX7RZ8GX~oRo+mcJ|lGPyZ%N;Z%qi6uMzfbm0u)Fz=
zj%Aoi@>ghA7HZVkYiadL-Z9#<48%+=d%*>>iP=&lx9cbUGJ^#tV7}84nNEJ~*fNYb
zmxk02J7V%57MC5oiqndLEdg(EQ6I|JaxRU%5$F=z=Ch6)SWP^=@9)`Q3zATxXPap7
zY^RvHj@$qko$`V-tD-OO6t!Dv<?WziiTnmL^V6Y`JOj|@SzFp@E4|K64HdfLAdpqL
zo;fV|cF1IIGUB!33xV_`Z8V3gCa)srhxUP+&>dI*IgvG})vw!fss^HNC>wH(ytc!;
zo3=WK9Q{YyYjqo1YEklzHF}>ksLG0>bj;p8PJvfYObdIG*d~lMBev3&F~b{nfBFCg
zoH>OD#uB;kV>#!~&x(Yhi)pr*WuCm6?bePA(lr<j1*&v9JS}GKu2D_{X|pd^)Ue&K
zZ;&8^V_TuQmH8doLQTQOf_`Kbo3tj>vZS+7qGXi3J)rfuF{@@JD}Ad<4_jT`G{vXQ
zI1S!d6qi|%xo3A4X9y8Sn10&P{L_-xc$2%^y{4M?`}y8idvq`ot<l{4OBc-+7j9w#
zUM*`iz6cK#L^%E!9PSBaM==<+wg5VQ6!f=wMRR{8&=Y}pgQ`4UNi1I}mOp<UQe$W*
zq^a1)vC)K_)y0-CAXmQ6c|U*XTS>=<-hHz|<@)5B^YSPMxu!T2p0j=J)BdLwT(>p;
zX?7ECZliG4(QcCivyGWBZd_Nx24@mn&@vy8O~nOmuGzB+R5WWo9)FXoPMU01<R}^h
zZyh8y4+1o~y*%9c1-bAq-;DGF8FHU)x=<kcV?^IIa5>Wt<N?S5)?$m%S)yDKh4PV#
zv+prreo+2oL)8Wb0>=W#YxU|+tXmBl(zo63fM})TG$6J9icTv53#$3}uUO_v9g7KL
z*iCsBMz*t-D=_kWFu7;|ZVhOkYpvUXO6LQ5_X;mljS?Gyu#P*&DGOgI=Si;9Yz5g)
zZM$&!3@`7<{Y0hY6Yu|`7L1gXG_W;Y5k#!8bU&tWagueo6+vE)=x){FD%2y_CnZl7
z&2?+b=ilVtfHb0%NLAiz$^@;24nJaTU}D?~?ruOENAmh`toK<0WCb=|_L7+w0^SN|
zQ}O{yffw&w2RVR0n`=qc<GsaHzlxBgWS!PF8PjVLjBP$iZY-e{m|pq9l)`Np5Vm~S
zI|zxqd9Z)fVt7%ce?>kOSEvwgf$`FL;ZI}Vw5U*R;<u^j-lhTy)qbiN!kDa(VGIF2
zcX4K0e(<?G&^V~83j@FYfzFSuAai=qxzz{z_Vu)VbA=dJo+}ntF|ffxED4KWtTE+B
zW|}_ACa#c#1V2pmy^lqO{!PJ)<MPDi@P0zbpmu(<=T0p82Hp0zOb1D_R$_jBQO87G
zuV;1{<_`%i`0{T~)RlEuT-B*Qq-7><mce}{vL{6R_OmsV7od7y*X}xoL(5K!caN*D
z0#j=D*a4?;Ovo72D4x2!M*CBvJPT_9!j9ZtadZt{zaMLnN8TX}QvsTShQTX_`_-eE
zgFVVD?Y>-KAA-001VTg6nkesTW>zkNexihq%<5#18CG`r(a&h!>?~?Z(B?3QgXD>g
zkl|mO1}}hrxC&p!=aJS;L4o7vb=+mom{Scrb~TJxfDfb{dx;FuKj{|V2bxng7!c#a
zQ3#}0=~>3?2C-25mpuTh!y9bsRJfpXW5}FZ`$A5V*Pm}sU+){53a&aYJ;UwBYAN){
zt{dsY;t_w-eyYY?81q2Wgs&x<NeHQj8A1A}<8Eo#M)HO02PR?MN*L{EX86wsS{qW*
zC7+RIp2TW!VtgVxBN7}r{I^Ggwm-@?7yn94M;u%V>MiJ;QYmg>yj}U=H_Cy&)_2QD
zGTo}5=4&Xt-ARJH9xuZW_O}r6N^Iht51AF&cQ2~GGx|a&(w0NnGQDcePv}>UiT#LH
z;-<*nu}$-$MKlKU6^O=DR@?P4&vEh&tkN}Hv=!yYdy}lWkn+SPMr#1&65VxZ^}<Gp
zNnJYFz(iVi;6(semz~}OT9N4s;thC1eZ;nvd8x?D+a*M7V)B{OZo2O>^tE3QdGd77
zn13;=Iz(Myh4y;Ct|`rTy2?djqeFaF{)BSle1GEKXst%%1j8V#?T;sxw82}EJwiZe
z@WT_2IF3}BW|Sz8UZKc0Le_Zcf(h|*(5)@|!Ae|8YP=$-!w1nr9-(xNq9+JwD`h#j
z@Yg(dPYGp{w0n{Yz35M3y@oaXxuWl|857j2Y{N3RQJ&$-*T~vzY&C9le$=f>Rhd`Y
z?nK1#&`Y97YMKF!9?sx6i%Ti29-mW*RrbA_K08XG*tJB+@>?q<pD<eht(Gxc?T<WE
z?oArl-G1SAopNwMFjnibFZ3()hKg49iMGY=M#f@6d6g8mg*t!k=JhxDg?)aCG><m!
zb!@{(pe7883{<2I_zAzK7>%Sj`nbk?e@k3pgc5pGiE?A_ZlBlt6uFvy@MYDGyB>5A
z<in|PPk0UWHT#1hBl2LBY|^h*C)Tp}T2ZYdB8gN}5zR`QOvh}il?DBG1=bhMEr7~H
z0d^q2#a3O7t^Bsd`tyqN&0KV2qc!qw-`5<tLD2baPMuFFKNbVZ8kSAyD;@r0KW@!@
zEdVQnU3t58#OJS@2!g0^U^tm2t19C?KWz?(eWtr8yWvkpLfB)JCZ(6mVQJw#nQA9v
zVMZn$@>~vAOk@fs4}oS7S;90YEq(2@xklJWvss8@wSM=~*`<l_B#Iwg7<+UnO4w12
zV%+-4^UHiPduh7<z23Sy#`t^*(9V~8W98d=+L}IZLmD5jg_0D$$h}EvfIRt#D?coJ
zO-iAm`qAiCvurF$#7oLIJ>b1fHp%4YuLK1o1YrXI_S2f$*8e5KtlsQ3c4dk{6mmX#
zE?qvPRHIqIYyGxhut2e(3X-q;g-y&vW;|s(kq;(2D86Kw@)i0ir@_Lcqr+trUXV^W
zskmn%a<cn{(esHAf##J?l4hJ}b@9P0YS)#edbjeajmg{NmY`#ThGok1UjYj8D$&`Z
zgJCxL79VXiy}teBP}OdqHxPf~)QYcjN=M;!(mS+$-Hr5_pUc9(u6;}X+P{X7Xr{Wm
zeujf1NK55nljR!u?O|eu18bY1>)dKBtgDEJ@g6_QGf}mPv8gO)KkAL#We=4Fk$f7Q
zCi7Y7%oX==bMmU6p5p93s&C~jaytYh8cO@8;@ks`3WDcZ_gJR<ILHOjV5DDP6rYKl
zGgPQXQeRCYTZz%<iG$H77pNjE2xc69y;nphG2Ax^Hs|8jZQ=LRQ0OF?8Hdb?s&I0T
z<W6H*z@`f4(nS^%7gSTwU>=4OUuq@%<9rhN?)9LcTcM{VWD`c6&NCSn7LtF(I`N&b
z*{Mo-W}1?Ti3I|{Aqb>z^T5{m5pHlyQ#&RERGpaAe>k1LU|xD4DyZhF;ORZucOPqQ
zZ!LNm#Tr#4c4xV?of>ypc}Wy`mBZkULFNTM39#;>qH`VY4#l7PqRveEjouE=?%n6X
z;H>Yklu08<OQ01eAs29WGW#24Z!qU<@cmKWOMjk{K97i&y`Kq)SIlT;v}38+l(!y=
zS1Ld%7=Xw`{fE>Z_}I=01A9>5V2i|aC+Et=cb}lV6=L-e^CE<c5kj+nu}xO~txRjD
z=?b*<XnKICA?7zb3F$ENj!=te3#Z-PirLdw$BX6y>D<WJW%aEeg1|l@`#_%W!!<)l
z()iH0wN?}V1yD;KeHz-9jW+(G=pCH97WEMeJPJWI-Z-06GaW9HEp-h$O8`PQp{4V_
z3Q+CB*!?1R22`FQxJ{Yq_#=cEPpjn{&=T5DgiiZv$143RF&bNc3rxSOzO)<TmdNhG
z_=qao#!s$VSr-G+MK;5gIe&5}HNkuj{Gm>b#oEb2z8aucFIdK#J{&td;9uo72bz@0
z!_EcQRRg|el+~Kz9oC4~u-?5ClsmRzts?JL(`J5mmCV}xJX_KBE}s+oy37F|-oK1e
z$rGEY2w^L%ck|-=deooqaHUkj-`2<D{`OO4FsFAgN_v%XiPA}|&xyv7EX>`wjfv>^
zn~9}${rLJrELMqdvUM?+btey3;pZK7E3s$3&q2~>A<Haf#|rB7jn4M~4LYIlWhNNU
z&CW4vH7QEJ*-i%Cd=C(ItEfVZCRkv^Pap5~)g>w`L;CdVXA=bjX~xKoLpqP9F<;C*
zpPP*@sh2hvwYUPFx<IYUu|%C77ef{9jvab9yo4XV$XwZiDFwo$D@aImcGficoM^rZ
ztaij-pDw<Pao)1udmSRQeN8>-0;uu(2>K$m*$>O>8(I&$fIdmS0SHP9U)E#6^>d(S
zZP)QCdre5TFa;0x#wB5Kr)Yc`KxE!fC^lkrCaK>3u1K&j{8&o${u|VcFu6?8qt@z&
z^cbYt(L7gSM7RWrub*xhs^4wc7zs?kiD4!N)P;-^Ck<kjHEFZctR?7knP)N2S;IdR
zwCu^_4r|C));zz|3bO-uqC~GjcRW?<7)r4v@Hdn;T+ir^+rMQ$CUNmzlDU;$`<0tF
z_S#ZUKO&3x1aa)#6m?^`IYDKBb6dQ6si{&M8udm{bEiq6gon~#v78xQ4}BRLj_u!g
zhwe8TGqY`TQ1C--WSU>unM+hzjIcwwYDX(@rw+~B8$FyQa(#7RthY=n@HC|t7rz~H
zcYogW=3SKpF3$!C)N$S1r=9`)a?3bu4$jZ>{U_;wW~frh6rtK2q0}Ips%SCpMT>jh
zhuVoEm&!gJvp5Rw8&m-ykyje({niq?kUnJPLlv`fA%=poAyvZ({W~%Lpkn4flR;O9
z+LWS;jatCw;3!z#edtk`(y!ioK8_p6Fn?z*2Y#?qd-;V}hI{-AjZ&5lXp&e-^mxSr
zvaMAEQfpXb0dkeD+Jp|gUnOND;Y>7Pmb>XtCnQ1#Slbtk4>hhkee+KCcLUi%!;04m
z*piu9XxRC!#ZMz4p5)cw;F)rf6(SzD1*10YR9&+sf`|pV84Ohnr??YJLt9X(9cg+M
zV~63s%3HCJgs2-wL?+C$6qrkHQB}p$w1i$vF+qa<su)iWBaa~1!%xCfL5ZhhUcnuB
zER31>dsq=&oY0?YY3(7%n~@aubB#dP)?r7RSb76!#2K-GaqsCn_8%ISH)^R$7?g`=
zXxIuK?u+SNvLSqAk>TO{Bbo!Nmo6cKF(Qj^P!vy#HHR{vRCX^(9cMOEGK}`}k4B>r
zFjuwJ<+SAa&%_&I<fSs*d>H@J0xZ&y>LJ#@Df3(&&kr^yOtLveXI=vm|G1iX-RLSf
zi`+xQt$?BQeFm)H<P&2;i;ly7I3xf(bsh0HKtrFMSG`5JZa3aJsCo#*lDIcuSV_cY
zKl{CMFr3V5+%*KQ$2v~I;xMX(iICH3Eg&EOQ7LL<5UT$Macp_Lrp7^NdHZ`YS)(zO
zJHf<SEGxOWD6)Jwes$$Y8}C7QTsn7GV)&Rbr-;?XSE=Kp5u9i1Mex!_0dSNgnJl)e
zkN{k2YJoQ?v(B%}FISj5g~$PG#Xo;~tVI2G2TQK}B})Th+SYMe(Cf`fqP`A7hZdKQ
zil7PKnP=T^M3T_0@xa-YhwkfFFEG<PIgxvPgi;rgs)QJ(CR0=9ON5);;#<+KPh{$K
z?;vhG+~)y$JaWv)0O@<w8bwB`a&AXSpebqVWAavk=b<n%*S%t3kliWY$$4^RAVmfB
z8mqb^jSgNoXXNT?eSd^~bo>n<J~6wk4_)6WvS0-zO3UVBS=(|AplFglrc^Wf9Zp_0
zIF|*)UmxVw7eO)xjIS}fki?k9;8z)rruuS@vH#Q>$GU;W3V;o9(9)^O^$csWdEtC7
zZ{7kEj0-3MMEI61KbZ%Au(n?ELjn4+;uJ!?uhyLX+<HUsKprkya$($g=Cs-O{vC31
zDq~s-9!UZwDEz22Hm1XLq7GQvo;6+U_ksyikxsty=%CxUf7Gdqp;EV<DH=$Ze{Hz^
z;7}+rb0v~oQS~b-P818}=-`J#WCx+uU*@pCA?Y;qUj+DlISbgGC9S?%r4(34ET{!q
znuGAKFvxH^1oxfL4ID@2+GfahkmVUweFXN<Ow88ioGH__$w1>xvxnX18B%_V?mP!C
zkJfAB&<XRfF*I^Mm)d>?;GLD{irCEI(_q?t>o(;y&>XxNraNJhJ2!9Efmk@wjdsh>
z|LgDIV%#_Zpq`3wIG9@0Q4W~j2n`X0JBsl?;1g?Z1=>3!QNI=hf7{$8xwW+)feR#C
zdY5bkeuxWh6Q$m1u32MgqFr5nHxvSUOOIl%cv!V@JMo;Qp{izlh4AxmzbK9^!_uJ$
zAV*wQr@CV9Y7%04_El!nB+UcCu`Sz6`~J)i4$o~N26H<dkT8?i0}Os!=~XFDke;{=
zDnaZGdc$y&x;)`y_({CRo5m!c8w1IULzMh`XJ95CFc6`AC^rYyazwHE+RqXJ^PtVv
z&%oUCOFdYF)1B+XQv&d42elM&bBbOw!3AgTC8oLHCw+<uWB&-v)`bApg>pcS3*Qw^
zeBabCH|I5gH6{qiH|mYaH!e{17|5CJ;*v0Ityc^ssH&<2B%nGO@9EDZb-YLKyoOxt
zj>~P|T{vdd3e;6}?%b}prW02}d!uHp*1mKlU@^zWg#O@3m<um>rbFcqRy_XBVH@o*
zFj#EL+7_Ft`~4OtVnK>}TH50#q4N?)V7~X~i4CAW#*$egsM86okV0$7mA%Pk$e8zh
zhE_v4C0d!$s|6<b`2Jy<(<sK~Yz#ej@bWUR)aYg|WWa6ZbXpm+@9lQ+pk94mr;zEd
zewG`O>*6$I7^eBfysk$PS`A$Q>x9CcCc=lg;8!LkwhDi|_+o3qQ27YnwV2R)eGz(r
zkeaWNH}QcLN?kEfGV7DZUiP!M9hZo~C;kA{iZVrB!19$mS}@x)`>5u597kK_Gv7yl
z>g>z+=7M_u_$E$H1${=fKidWD$9C10-Sb}s)!2eaYFmA*@(R+ub7LgQrD#qOc&J3l
zbI>Hl>P_=5HSDc>d%L*2N>2vg6uj<i+HsqUzX>D<gNJ8NI(%MZPn^J;uu{yGA;Lce
zQ``o%wmsP>eJtg7X1T52m#l|(`2%4lJzzZtE40&CLnRL74eMv9a#Z|m4a+>;SZL0-
zt?CROCl~T9`_Hl7goJA**=6t;iP|bx`3cusX3k0Ffas;5^a*PZu=h9$p<>BD2Ng3X
zMtr);yzja0;3x9lM<LLky$)GyZGAwT%`2C1L(~Lsji35eN~9ly^A7DZT<IpRqjf<`
zj~TM<(1a;uJZjNG9-87wyblF??vuN&yj}2l$a@VHEG3mMANRv0$w?kIr||1vquy;D
z`<}8veYZ6vH?%br$_8`v+E}9vdx`CS@V|%4(D;aTT(2ohgH~yM7v43rPyX}rw(%jg
zO0!36O$ZE2Hz<6qN58C#33?UlYRHQbLXh)15|)6m7HnwyPY8aw<MGn5z_D2@bo)M@
zyk4Q?{zntZd!`B^zoix^f>i$l^7xogM+aW8_y*N`Z#;!2xM}e8ltVxSt*M4u-0^>#
zsmPOep+l$7Y<-c5;N*0*Z1LYtk^(jIEfoI$$^z%$h{S}%8yN)T6ZNYrRPSG0;sgdj
zd}_dJ!xk+K>K(D)rW1=oh@vsJwNG;*Ri5BdbSDj-p{s%|Q}QO=U}8T*Kd3CCXdpYj
zj#A~S9B+Bqyc%BeFY6#~9@5rWQ3Bdxb6z}#lad&`v7Uh^fm=tx2f*#|+((hMLc@Yf
zw9(E6(a+V?3yv$ChR{7;x)~DH170OSMl)jVyfLTcjHhCR4<PeG$yfxY0LBv?Zo(21
zNU4`JPIxFpNfWf9KIib0`7T9$%hYwG;aL9V&>_??v~YZFOg@}sg*Z3nqpT=I*0XO1
zQ?iN6m9>2Qz*veT^VJtYen|K_T<V5L`5Vh}>?IE~a~tk<+iK>jYyxIzsEZoM!q^)m
z#!>rH8l^HbAV3)X;`uixeU?3E2%)e)d4<?Qk84-ber1>cPG5m%uNe1wD{<T7+vG+}
z3}uPLdubpy<Nf@6b}jiY5%M(1(gTpK3&tywzw+KMyxg4LaN)?IlL)RmuX99mWLE{2
ze_NRonO$$L@~_OX1kIUV^;Djai0!jTqj=sN-ZR=I2haRnX>&Ve85c0KVLK%135(6N
zLOMZ%f21sVR=g1@AaJ6f4}4FG%7)agBfpgYeB^`soeX#!vt8IyCa&Y!uw9+4W<wsA
z`8s<Kw`7bdW~M2!DWSP`{!OXZ3gaIv5;dw=WX5rjj{D<>&sfyATXm0_^qxw}ri|mV
z95-w0EPb8dVu$^^eaIxDRcU&O4jfS|m*{L29X>}vE36WFx;LcJS*F<sw{{tr4wB^^
zI@{c~hAd$oEHLeQwYuAkgqXhbm6bGU|6%HE2M@^Sb!tO}Qv_lUovVO7*EbktQ}SQK
zVC1W6*|e|!RNGQf#K^t(UspyxSH6iaqP?It6yS}tVBpaP%|P!pzjE`eUb`!lE~PF^
zpxmHgsDM>}+D)p)(+oVY>>`>aziTzw_+wJ|CV0Wqz^nBxF|FbSHF3#VJh+TyzM}j-
z5fRy-ST<qBA_&=|i0|&Ah!;VEt$B{BoB0;Mi<v2sZti9dhIe^Mb6TpomSP|)=ghY2
z9ezm7(i~o}?k-k>7f<7w%hQd^0Y$@AFerSqsWHuKtBMV+qbVNj0IGa%pvoTws{Hf(
z-v&8e(@DdBc=7?UWq9j~+kHYUCievv;liTycw7wAt!ov3Z}8UMrCZzRKRg%`X0^})
zmmrRX;Wq;$h)IbNtQFsZO(0Xh%*ETs&)c&0Wd?Q&qrNlTp$t*nmhwHLCHVf%xg~Wp
zH#X)O1*Pc)Z#x3;V|j5fuGB}Lw9{i%{DdnB53+`>$hAEG$rQr*RL~h&HOw{`yE9eW
z{{XqsTIYjAc_UY`i_-ruch2o>=|z|=+q2IrZ9GRqzTFhnS-#&yT@=(}40M$x!iOzz
zyUQ+I=<9^x$9O=+O16yarO`uB_*sl=S_`ZR_nqq748y4Mn9ro5MLWf9bO|Ctkgo-W
zoz2IC@f*~BiK1~-91NzPFg=3*8aV)<qzwS2OQZYqSX-e*0~8eXd;3*-{<hlAo$!@P
z@+Uy906W`(6ag?{zA-VORn8;leX$dPbms25qgb)t=*K4vMk&j<fI8!TkSvJ%OZty6
z4<5{?LTo2_174q!|47P_u0wNDu~=e$`j<rAOr)sbuM(|Rp6~Oy0Wd-xm5v$OXYhBV
zYSO~QH?~AnNdSu*otxlaO&uo{um4O4qr?h?;;om_iXPmcyi&VNDP2{7&*)tWjC(5J
zJlDADsdeNzXq(DR|0--*VHFJ(Gl12H)qfex^8GObwMQf^9ZZP|Pl}8MO)2ba8PvHC
zOM>CRf6(LStm7o*M#jwYe^kANTUFij2P)klB^^@INOyNPM;fK1yBnpuySt^kCFIa8
z-Q9I)?)LrO-*cb)C+xLn&CDleR_@vLjZ03#W)pqzUl$)Q+g6+H`TPjj;F8t@gYTBe
zpVxq+jFb3gwtcY~6^(sgf6s0K*<@MXE@Wur`GB4S`sZ|rmVu}W6fSUIlqu4!q_6<;
z&{F*d#cT-zkA~l0CUN46C5%6#5*Ha%xAC^iJo+W*4ny0g-iwHV88lGbOG)!4yFAMj
zpZEMU6>Hj5r^wtNaDO^_10U3_y98uB(%<u30??UzqEi*^o)+J2R$G{Ox$l390F5ov
zL6nGSu+V^dSzus&MS8lyM24uJ@!@B+02YczI6YqEuc=viU63PC{_g;u_b^y8mIQNE
zR+83X;_Gvp5^@x1fted$ne5;>-50lzB9<91Ao?)|bgKw~MTn+6e8feGr`U2ui@pQC
z%cvdx!+LtzALpJ-z0~_oDn9}irvXim>4-X#sha9kfpHp$qXY-mA*C#YbW%ZatD=X6
z8*=D#3cMnR26ia|jnSPjIuZ%GFYZt-NAoG|j_4{`k4M-ycRQ>?quvUA(Qd3O{Z8vL
z<XnL(>-@DaQKT+T!P<e^Gc59ZYrAd?_J@!&c;>5?bR}W}rnyV0_N{blW5Dj~EdwaJ
zHI&a&;A`<%B0`q$4V~eUtnF2WO`8?S%I=O)SiBWBSBoJ|ObOqq*uJQhJ*jrZ0+~Z?
zvlwuEeOmSLt38!(Den4tP}`H@kHyd6GlkTKN)`Qnh+0Zy3l<tFOoCfm;BV1UZ#mRb
z5z56~@R#eRji!Fx35!*uu=C%I75{+cIGcu?DoHeD5$&!>Xr!P>B8cn9xOir3%Oh%;
z5X;}4Uk_A(C2UNrh~@<kCVeTwlWb*`2D7alkRHqE-As-=nJyefR_ziS7t85+ee}z+
zTquVzyvr0k@&Rms1mv<mzqLzBhYPwS7!-7PTZ_AvZ#D5kND-nZMCMQk;&>|Cg(WIc
zD1IQ(q-?$<YqHe8`cqmz;Uw7nYepbpE7$}dp*)}tPW25{a>{AT?~f?A$z-*+fY>55
znG;-9Z??5HdD2xn?2_wTG%$364c$|t0Zfe=nr9SFPcmI$l;)t{-&P$55cJhnGiICm
z9d>w{Sf0E?Zz%<DNhia95rfi23t&xnJL46bb}W_dnD${h1^9(E$s(GhyOpv!p}Lj{
zgam1Z4Xh9flwea-d2|BgU^!41u^?-Ip&6mGhvxi%g1FZY?`t=I;ZGSQ@^uLXFKtoC
z<3vNAw^;&AAN|4M?HzG!nNWIuiWF8@nk$FnMY<Y)JH0>i?-B%LiJhNKe~fd6Q@kUr
z%mv}DsL9HYlAk^w$6xShyrqYgtMbaBM^AtweBZV%`g7MWKF;az@~{q6chF=kDhe38
z^4zcefE+sW8DbUw?zhy!Yk>=4Y_p%rNN!;@a|7m#HB0CXPH-!ac%*AOc7NkJQb%aQ
zAlxm@wojM@Rj@B+c+RT|vIFCOr(7_FxYU9kH5c|jja3Cdm~gC}RVCDLLCLEoZ%l?_
zm5}2v*BX`|(v%m2^ve&jNY|}fS}nw8Zj)Wpje)Zza?^#Q&|HR4xmJkK|5>4uaBGH(
z^C%U9;Y$e&O!=>`y;=qayPFXKH+z0_TeW(l<xyCT&Pc22pI={}?hro+R4#)`{>*a!
ze(~Y9>$3jOAQ`$7Jl)3o($>^=9e|v(B$MB{(1(0<bhY)hv$xSN3Q>vjb(HhDy0dF<
z+IDVVgE;x80hE+U?xXOZ;olYyj!cu(c`SJXyWlT|@%<*hE9@3=7fnzAVHX}B7y=87
z?u-5uU@TBsEI(xoxakak{RV)j)kfiv91P)wB}UqM^TI-A8iO`q_E0SsfK4>DB%ad0
z!<b2fMGOJtcZXc*0B_6#D|0=aDsifCOZI$}sSPnHjv;H|^=B2{&MO0>z>)>ZBqxAf
z7c#MUvLDman9dQI`1<U3cP1cIe&qdpzu%gWq$sJfA|o<NrND(sf0o-4CsBpmq@}%b
zthG!pYSXP~Qw7_&v}CDIpRYe<$%(|ATk66hFUIy6oAUkds&JzBVr)+T)<C>gev63p
zGLQFI^LxNb-Cx_!^cru4tawGYebg9vPY`Cw`YXh=MAt@ahgt(~V;DM|LS8~eUfz;G
zPq5iAN707@c%12F8TuNuph0Y>edh5Ynk1uXzy16bwUFK+3+k()(>N-VA!!qqtmE9A
z(s=Py49u=?5YEol9OtfEkzBY_@xt1V;RoN}j$4=Un%p^cm7pjlqCj&P44Oh}CznLx
z#pzVGZFkA<s8W}v>-L?Ja=O)ZQj1jo{SMlW?hB=jZ+84dF9z;9_gr9rCET~IJ37Lo
zale>3Ha?2<_L~3MC@buaU@rOj9ws(t^TmM0(3FHeLAt3jb-~y!@B^8O2)R8YkPN>V
zf!h1pB=LR`CrSObkthskXn;ow60VyqtX}!sstvpnDQ~U)ZIywfdOKQQ$m78(`4YCV
zB8u`(az?E5!}fPXmvB*(+LzFFaC;B*<U?V}M6)K2n#Hs3lZ}M$`It|ef&qKQvnbec
zqCuc$BO`PT=0<+<W2N-&bQ}{yB|3FQm=g?d|I-=_-`G$onTzSM@3{u3sYEOs^0Jly
z14B^T>@OtrQ+H8I-9f=_Bxjsj#K0b|OF_w3R?Y|a`8<;aO-cH~c;XP9%GW=!p?V;d
z$|#|iW*2viu1!YM@Axw5PUU)MkG+=rFEFt1^&qk>EZ@CeILTgfc{E%%UJxP9$leZQ
zf<AH&8=Y-1BVwdROKdPxVC$ZKw;uE5ku{VQg&5_;1~jMig!uiPg@naVcS-^Ru#L8Q
zJyRZnI3*SHTTee83#>;8`<jQ!O~+cjwU2U%UF5LI5A{eHg3pAsFk*|amr5lczQd=*
z9C)`qc9Iw1HS6kl+BnE7X}+NJV3I!Hha5(;*WC^xH6^KI;F9vPQ8_?rL_Rw-BV4`D
zU#AO|nAZ-YiaQFj;3XkC6W=BF(`9UR7#qE^Ql}nk)x2fL>6|LDI-Lb#E9SPGw3^i&
zencFJKpu`ZDgU5O!-}w}qle(j4>Bj?kxn*x&j8M08Ulb_lC{Wt5*rGoRNgpEF$LZ+
z<F)>~V@kxdJ(x;@oB8_X4IQbn=LhwbN;-lM+fL7bTa40CQ8Z|0A5`v0_L(*Sro^z-
zBA`Nib0_CyX5q^1Q$%fxCu3hNl`Ze-+BeP-il0&vgonr+BL~^HV*aun`Mi=PrAGy%
z>me@%emSqw-E4=r%R`^Fm-o4)OzNiSL<>=iP&3HS&@%#3ME19NuIa)V8%^)MQZfmy
zrSi^%{rwSy-=3P%!<`txf*>B8BWXt8lpbv)fk-zAo@R0^j}bYl%eyooyLFDR38>2_
zhUqT~SziUe4piByc7A3upBdy1$P<##oolLlc}JR#bFR7F7yJwo#gG*_FfZcpv>u5b
zA_|lbP$Lr?2y2&AyBkEdN>j`S@RY1Ja8Q&3ad-i%0;u&$db}-%E5%944*z_)I+|`3
zJxK<U0l<W~p40Zv!qo|HO<P+nX)~>;zFj2Zb|BINfk=OiZ{TK+7<t^N6h@UEgxL;I
z^*07hpg*8~hyGB|A*1t%qBi^7RW#rX#&=dakWx+CJXOpVSm7wLh_8~HaXQGabDrkf
z{aDMU@yaPGKselRav~$99nxQ4$|&NYBPFS&tLEA3?(X@LMRD}!P6_%`b#>V<*$z@$
z4})G4iSu`lH08IdyV+l~1|jmve-WU<;`s|+b;}=#I(*h3nxqyLWjunKj#=ylug)4|
zchp}nw8u`YIPv9wgiv;*#%@rU%gFB3(D7?nqrRf<^5yi6B~Kr;&huqR0OPs|@qyha
zXIZ2&esFf{ddFhCT^>5uPXEqFX?0X7hg)jE2h*<WXG=|0@m7b4Amk!+Qs&e9w*oO)
z=n#1Zj<ZZmOEebcHlozvX90T#5t?_>@hyUhUUf>jP&Y0cE)oVMJWCW@VP*ns4rjl6
z!tZdE-wk;XABBvmXW0FUgy^-=b4Mt%hpS52>6<+o8on>lcI|5V5c^O%Ztmor7isY_
zsy2OXy_!-7x7hg<;?>Y--iYU`B53i$w9PzXZ+CZS-~mM?^Vc1b7X0L&hp7X3EefHs
zYS&;}dIr3f4<-tIBL=(oob@C7C8PD>1THM4j)fR`OWRo%PgR|_zhgY-zSOXu`)U+Z
zk>BwDe%u{77|<_UGC7EU7I(NY&FQnDiOn`<N&VkZIgXssAJ_9bU5jlPDf8n_$@i=G
zxqTS~a+C4z-D|e?#};}2IMU~5>BH!RoJy}k8=v|&rCeobJ4{mR^M&)RsfYw)vOXsH
zh++~n9dte@lb`z3hAcrnL_NpkHI$bNhXrVkBFAR(QJ3mdWZ|w(?JFR-OUDOS%_)mb
zx=r5XOM}_as*$m+`Wq|``_D(D;glf-U5sOk8NdA(-e<)ekM1XYtO2*|e@jlz{#a7}
zsy1opb#u+#Jg1>&qkZ-u)Lb`-8)jp5lYHm<;>+RbaHP~?odTrrC$wXJdUDVAa_G9<
z2bv$rhxu@Ya28%ZM^`5J*N?m0);qiK;jW^s<VHkdP9eo!yxP0yDn8i9Cc2k#K#m^O
zT%604H_xmq%32CRQHLMU)`J>u+_0`X#CJcj(W_-m8y~g84x_wc;~%IGlgV1#n9pxy
zNYnwb_iY;-79iubgDI(e*B~x>j-iaETp#(*?Kyt4q#f#hr6M<lvM{T$mSDZV((?A|
zRajKC&Y+Uk)BhcBGd@s;YBPa$spXCIJr8Cf^e(KCzdph8sk+2#09c-fk%rVu6W#iy
zXZl;b=;e9%58ECe+{L;6&-x;g*Ry*iOxv9)%=C*9&LmMsn?0D;4}m;jw)#~riYw%D
z6nm2Z9O)0ba`BJFLb3IJ>(r&5mviQ*APkH4GRH9LHn%TvId4pwz8RC3^%v<qJApEV
z19Cgy;PKLSK-q(Oy1ReH&uT3$zDiH@&{Ea(BRk;mQ<E>X(UPoLa?&LFv7fh+k?Trl
zD3?E#NG8q=oAXZThHk}DF8?WFLkDb!#ZARZ6NIyBcw;5Wa(iFy*}6RwZLCxCt0ofI
z74Qj?{wO{>mvZsV<NIz>lTbu-ZW~`2eEz1<1*+)TJNQo*pLK|xzxi^sF@EHxaze5f
zdHuMNOvwgC+gS0n-5NUC`eAFqhh&G7F08t)A=N~Sr~QKGr-ys{$+@SdAiV(7iV=Y_
znr=!8Y1Bv_Vn_ffa$Sk3S$ma~iO|7}v&&e@6oYVMB2`M>!YIF<9t5uEa$`TG!4x9+
z^T^?@(VeBXBbPj+<(1&80yKs(_5ml{)IkmGa`=v+quH$fL~_`ML9eJhXikHxSnO|9
zi`m)+^Md{l43-?atDE%nD{RkI_o|QgIQHJqVk~jf-_sgJa?yH^dl$G4@adwM8%8rE
z0OvviTeunCn93B9AbNc;GrDb8&)vJvgD06QM?u<c7TZ|4JwI|{!Wa;$y2=DBXyE(u
zCPfaz-v~E#k-A9SCj;cK3#M+nq|id(u_AK(EqO=6LJ_<+Z-vMxI({CZ^h9`fK(KW8
zW^N?%{^l`A?r6pIcT`1_e#j;^FeXq|T;llVw>AFt%`Y%jti%0pB_zz|(8@jVowAJT
zHv=4Y!(??$H-rn47~j_;pyXvRfjftYD5XqX;ij!bYRK~@#CDN@9uqC7|GdaE?Zj_&
z{Vrl)dJT5k>knNOaElg&O_w$fT^2sxH}2R->MBb5)DWh0CU^6vJ=%&Lb+hS9N!rzA
zLp88=W6ce{978)tCpIWFj%NIf5@Up;!NplK<UzW}UhCj}X35aFJ-BGN5M~4#gDlR5
z@;fO}GxwPXFbilQ(J+m1zwOyS(2=+kVUZyqq*io_L2T;4dfiqac^6H($Ps)s;mOgt
zFB%G3lXS;)M~cJySJkPL73?tEgq>5!@jO>o<l2a*ZcdA1n6{<*^L(9Mk^+g*J%7*3
ze)GaS^n3brfg{IsSzU5kvH6?8fYUF9C!@bdi1gW;-=X=}>0W|OP@Dk`F={sBuutsd
z-I+KhGjpiKYx)+XeI0kF$-r5z(^h%8M$L6I{|3X&%PvX!^c=6T$&>{c9uGI;7eu!j
z&4`ry)>Mf6TUti-IAfmDKUiG+AiVR~cvv~~c3E6%S?G#}6~Nawo{|telA?ndk>Zq>
zkn(KY><_Q?rYnHK^)BP`UNoAIWqYhH@4V2QAFgT+TS)%Kql@+1Z-1pvr!<(%G8d^P
zwTR{(oiQm~A0R<vL-`8tXx=?(+q@k)2QVW%@Q*|k4j9DdbFTxpX^ozPJMrV`6{_x?
z*X`AaXP2?h5K>cC*u&KrDtZ(pO6+1DZOD&EsKC3?jqW2@1Bo4^ty&L9qhm+;ux{Xj
z_`)Pf3p_sTFV*3ZEHBfLqjE&!*V=iKUr5JNVtWt=3d|<OxvDy-TXq$4I{)h!JRR(K
z$w0ijRob{QC1QVfwdQ=(o4xI~`xWyH{$-$)PTQ5a_ulV$_@UhX+KrSRARZ&V7BH?M
z++Eb(3X957D(mhkQt%{0&t%|^Io8B?{+}0sc?5K$+L46_zbggorWte&!AzL|JL~NW
z2`mY#Np$C+V)uftkq6!2rqd-_Vt)&M*9tJS(AoH0Llfwty=HGS+^t6xsGOf6Ea8FL
zf|!B$nvXwhmD`+~Ibue@Si}^hM)(pP8UET!6R2p1myL54DSM(}RMb2{%EM<RG7qD%
z?34Sjb^i_|ml9G`xNAUXlSWfC1-){g9hwQ{$v+u+>hvH<(8F4~_7fY?O58q)8Eq{u
z>LE$j;2pbxRfhHh?M11yurQao`roAF-L;a!Mi(1V4nC!zoOhQJBq90OGkooYT08qO
ziUW@JKPNnA9!%gfL25-O8m)aLD#z?~F!f$vUt#fcQlZGMtMKmC!YXfgH~u6$CH(Rd
zk`Fknx_V9JrY&IK#_d_=&Q2^re*BOq%yF34V!8^1m1Fsl?YrvR(wUs@w&JaOiR^XV
zr?ZUCF1vNIA9{)uhH~m_pcRX}<m69nx90m;<SgeZvEfzR?xtE5&1EECMv_^|4e~3l
z;dCu$@DW$>2<f6bfQdSuStg)ws;P_2sF@q;<oouHV7!-y&DV;I8`-P(xdLbd{B?-6
z$p_*FlCfe2#}|ZJ@h%q~jX)T_zD~rv-)$5<5=`6N!eM`G>+L{#*21g};B1v6hKk81
z)A<<OP^-!X#bUc5@iQLnRmI=dHE5fwDpEVo)LWL9E$OQdY<Opb<35IRf1-V~P+Pj9
z-E-QFd;0{uM1jvnUo_<n?vRBA2!~F!OPB#4{RMqQ;vI)lToMZsW1R`xm(e=g$iIg~
zTLdnq`5ochhH!T1JZc?RgICECS%y3;=ZJAVFS$>joPS|75?n5NAT%`jPBL{jo93kX
zF}-*buPJZcNRZW<)~w@+7!+1ad|UoBlxo9}uJ2qP{)$`k>F-a5j1rEwX*OHemN(r*
z?of_>+Q|adK?<C23H^qg_wLwJpX^hIg75Zsel=z=(ye}SlR6zJcPx<(YHl#RD`wq1
zlFdp!Tq`U4Wj`STI)U1_hb0?fLlFEVOsJns-#SrNE<dW)y1G6%VU?k&YHK=Qwc<|+
z7v}A|sqJDh%1@T$g{7v>4L0JXsvFmNoq$|<2utq}<`kSU6fxQ9-bJnd%R+p4t$C;=
zs~!qd*n;S{4tm=mm8nfzXy7(rmUg-NsFi?-@9`C8?psXTGg;$Y;u|C8eiJ=6cZDG3
zu{niz%x@v8Gm+i$z+_yvVI@YFR#U@)j;W1AN<OHf(LoKvE9F>oOdqJsZuJfd#&6&V
z!un3+bCwSDi?%UW&70AS#Ebr9hZ&Na#^=>P&N0vgD8y(uUlaP5>yUPNCq1DBJ`ON3
zFj4cDwJrUzAbWxC+a#5|_s~@wa7jKeSn&<O{sYdb?o+<}-kyCrThtc?3(ftrZ`0rn
zx-S&GZ|ZvI@J3-TH&HF(X}4TCg5v4rv1_0&EJ0#p4CX>IFih-p4b&$Jgh208=jPSF
z1U74vKHvqe?b@k4G)0C#Pu1Byn_)03*8C49L@~Vj+ZPYz@sVUAfs2{F27%}~OeU%*
zZ_A;5&XE@GHklj}A7t$EYB)Fi7JPk$zV^szFB&K<0M=g+toT(_<Pb7=6gA+Jca1+=
zwb%xGv!-SB)-NStAnF1Y&6rDDrvbY#{cSW_h+ISr<EJkRy}5^Au_j0vIfux1KHj#i
zlTbSF#bQC+TKn+Lg8BgZcbT!skT*e7Tff@XEn2798lY`bixeXWlOaS~R+PE_Wm|3M
z+}|ak+IrSDat|DW`l`9#F-ZhAln+=F1G>U)kwn9Hf{xuTlIGQAWgW%MDH>;yOO~1s
zwPdx#Q`lN#mELWj`TJlaY?T8)lZX05sV-Bd7rc=IR(G}$W1*A*mO_pz7;x8RC+;tt
z)U_E;${;7?^WLZC3Jr~M+w^%8y9<2dw*BIx|2o5Nm_wk(mSD$_H5~1!d+XaW5+j?+
zjJ^m@(qlcjc2cZN`Sk}^Ky;sOlTBt#J^EG4V9P{qX`kI;+V(@CqI#h9^hL}bQLvDg
zufhhM3&i(H(>uF-UasA{Pya~gvo%@hB%Fp>bezW8IJ$dT12o$t-`4p0P7kh4a(oSI
z@ttdaej{bJ!Q<=LC+h|Uh%Gog+!e*yb(PZIGZ2Hidc-E<5%SVK6@k|bc|C@N>8;#z
z(kq-=K=hG?4b;^geC(KWRBl%y(J~$zpv1iq@hmFn$dIOwwUVbLO%Drg7DItOPr!zN
zm+Z*!HM6Q`yy-d)KgN6%A2fOa7V4?mWS?#Be~HN4$kFcrFVK4;L}h_X*`{lX4G1Fi
z9~Jv|;I&!vupX$+-N6Q4mKrMZapItO*b<01<~UQRgk>`Wh~+#(v0KR4A<J<RspoS=
z-rF9ue1N$~_Q!dMB*E$vnH)jF_uh3lh!RF&H=vC0%sxRO5zp}y)eh9zKIenOUB&rh
zU<dOe;lgYGY_gcqMUG(e2#A8ZyTJgyOip;aQZNFW45%3uN^c*v&(CV;S*IzXF<f1j
zlwL6yiG0g|(izwc43ybv)fj$yU3jtSc4s{G4*DZv8^iN`bHRq4f%$xFm#v}v%sK$U
zr~EplX{@}Z0CabRMk)T@PD$m4vZ!HK(rUH)3k{`|s8QI&SK+wn16$x={M<|xSX6jQ
zE{165gnmBi14!ulA8T|L&t7l_p<TZ_*e62p5!fN`P7X0h%E*|@PT~|#w34}4UV)zA
zJ5oY#YUp?|M0iyU^4fCE{<V8-s090{TlL(`1lB5N%vH}$5~nz3q#nFyaW?#3$a6)p
zaSQXKF?yT0(fX=RGub5pv5nU5JrqI6fqN{rKQVa3@4NJl=_Fs~BBk2Ro^EnH3ph*2
zE;9THYpwH(%9NJ6svU4Ln=0Q+e{VVY*M`|ri29L%hwp72)Mtk1;+~HzKb356)V|LN
zA2}4sp%Pk>Ub3WDIv*Q|)75-y%SU*4f0S@{a`z%sn%$5GigqCkOz`ifDnyf2CL+(f
zfFJdvF#~!PJ&zek57x4}+}d+VlK*Ank~Xq}GKiz(fK9V=^(jI!dqvP3GO|A?h*w`p
zWZc$2S-$iqaP;zE-<Up9o4x*9E!jTSIFSd{)*4f6&PKzaM$1<dD#y-?T|q0C%|#AZ
zzo*Z7=Fp#^XzSAN?d)JC@~=>pP6+5M^sVSvX=Df6|LaZFMUsc|)=t9RNN@#N9-~cH
zsnVIj;31c27(sM=gq!-x=MX84{eanPsT<8Si50c08dld;J2>X6QnOcfrfk)ly|GV=
zFe@4s5h7Z!KS2Jo8)MnChC}V8dTe#31M6yKs8SjeM3Zxy*?A*W0miZ?ToTK5O+caV
zUQ2(=w6eq)z|FZ+NHJ`fON1<SYBaLG5o-8lhkE(YMV(nOJ#vlg{3{%@7%v!%A>h(s
zuom>7GO(!AvmyVlq`KyfP|a~2xjg@NmbCOlM0N9j=hVecN`yJtgVphfrFm}wkhX8v
zj{?bi$!F<Fe=o6vz%tL%(G?Q+uA)>|BPs9@0#8&iYLx(p;leEr(R&ZvIXIp=|NLPr
z%-QL03Xb%d>h3fnWIo@mQryg(Nmm`Uz#%|DF*-9tU0usNxCl^es|uz|oHVC&2#LAF
zC&3jWkfx~IcWNjNUX(wy|Ncu1e|JgyyWfTr7rSbyDEVSI?xVvhf~pkt;}=+u;i-G-
z-sIWiijeWrWwbdtOqzU0vFRJQE#hS^r@s15w*8soH^zMP$M++eoBo{a3|e<fmkQz+
z&F*(~(|(OAas@+Q<h!ESv^l)-rl*B3g+H5vOAp8@VI#Y@5sW=cfkP@OKM;3+liFBr
zAzt#ft!L^tjXeBdipMPXX4DKZz~Nae81F2zbA39nzb#Z^nV=*_Rl?dy>4~MnpB#0a
zfd>8T(@hp!YQs|=m`4~imhEaD!v2a)!LoUUb<`EQ{N}OjHJM7v^_r!A<D=O*5F*v6
zI&Gpi)2wbnCpWYGoo6;?OyAhvMBp<iEf7l?D2$Rt(eE0|9_v81nyX02${SNoEShN@
zW?BzFv{u!?{}AgSw1u$xy-=7hrk01HBnygU0Y-_XN8~@uo;s)uGNl-v5+M%=sV`+}
zKhM*MIo7N|I`h&$6$(hL><f`~!z48ntlvsB5cIV`6oSf3^`CT;wV1u@SiehkB-gKn
zwGJy1j-5_6{DOop3{bU)aX`BwKw3KRBuFRhLcAYpnvlY&J0HcmO6}&ks(@P#;G)zD
z#{=E^5j+o<XT>MHGd#rKXCkFCfzG~#2X0bAgV@do?iw`Y3h(Zk(xr$uT@uYzJc4~|
zK|B8QW62+kJ@0wkT{mqI*KaqKE={E~w^I}inx^V(<5!bk)-tzMNMh_6n~;b1tKhOi
zMg%fP;nd>!7M#Z;+tzdSwx%ZR-b-WX_!yi1F8^|*9hc+RK<^|I+&Pvc%^_%SL7Tb6
z0FByyS1ZU#%A@!d%bqGM6<_OhcE03%XN}`yCXipvX%`;ih2}1;%ru2&Dux*3e?%b;
zyh<lm6mmGC?14?|Onw_>ia<B{#-^zewhqem-0K`O!WEa$W$OzJ;<^c~ofFIjsjUfA
zd2|6FV@BVx#`pQVOQv~8JMUah<DACpaE6yIReX+L06jMp3|1Ccgp1|GEo$Bz;Z`Pg
zTjrV6;7?C-7)Nn)#ULHA*1b8-L<%i#ocTigF&Lz*yZSYZTQG<oUGbqnsJZYaj!Wvk
z8UKP%C4#6X2}U;svX`*h-qxi2NR#XjD`-KPSH`Y8)S<5b*H)9^w&VXp%L;+X=h&EK
zBQX+ZnAXcFKGhy35dRE=E*H8(>`R9vT2V{mETRcLuj4{RLBSYG=A4wjbDz54O)$v%
zf|e~uB1Al0Ugm-~bp7AFAmzT|QjO1O*SoVn|HJhe{=;ta7GTN$OFfB`Cn{y3jIge^
z9T_-TAF{EsjkUQ4ol`pfRQPEH6$vlTD&}zGS0O!fbK7k%c`xD5&lE1LL|+y95LgJT
z*S4+oxi4U!9^EREL`bUVm!>BM3xod&XFf&eGl9g1;w^2XV`(K!UBgQsX4nt&>x6iY
zF`ic9rxCtQhzW5APr`+&OXn=kbUMJr<*^@)NO-`VC-Zcc093hHg<P4Hr0?rt`SS<-
z#EU!hY~<YaKQU4u?LXGF>o-GpA3oVf)2at}=ZtIyaj+>HXgjTx2=cn|vLB60K4h`*
zVl(To*KeH}2-8>~+P-^yB>j>pUSu**F;8J#p>TBvrJdnFi6Lj<T=%bD(E&|icD}vR
zSJn||qhAob;O7<#OF*!8F;;L}TLW;NpGHrGp#8V%mXJ=)>m5Jm{TOC?2Kn>)yqBk3
z;g3jN<%hb3C$}Ur>w-lLGs&HPQ~xW-#itf_3dqQ-M1-^!R}?B6;w`OkKFH&q->1bL
zz#WH|ly${@f?+NsK|nQkG$I2dzdOyH2vm>wy(cSsytL-{4fvdD>4!LT7v!uufQx{t
z5G$(y5SDTYgKLb4DccG|>1PJY5AB!!TFVrB*FdAp;57NC-0_2f@*2a~rL&;JDO!>p
zWOg5qSMzqPM}{oWX9ZJv{rn|E`Cx7t|9`@YGYwVCXFa(S>NuNZa9xMDo_3u7q!S<t
z6$3}pO!v7MVewJ&0=fs70;vZuVou27G#}9LB&cip(H+zX9#1Bv&(+hLIq%y6KqC4*
z(h8bR?7_1vJgN|kYmJ7z+9i4rH|CM((IJu7+TAPX;5(cZ-B@fHln&?<Q)3fj*IX~n
zpTRJ4J-nowR2zuidP*E+(xks|N~Kpk!`JUa5N(wO)9O(0iu_uZy;xuh1d(f@b~l=|
zaTzL)3Y&I4;1V!j(AMm%ngl@(6+C)c@52O4sjqYHUe;Dl8b-VDDlBn-m4xK!3?xy4
z)-~3)o6i1Z8F-b43mkzvh1jfI6g@O+&c9IhzB*rMiv`M?3DapeO;x|zB!Z_mHW689
z$ge2XmK@vuFHB58-iDU})!X9;@Q?4Sg`AxBxUC5Uj1`*KWc2k7%cHxXO+0Y&SvyyG
z3vcg`R@p@F_bxWuor}%&YU~MQKi{VNygTtJi?0RAX=d<T(5pmHq7?GfEml(*k2XbS
zvO6Xgj9-iR)fm%xy1BdD^J_p>WIr0eT9Mc>o}pw7<=Vmx!(!Fe7^=|(yYL90=!BTe
z%Q?&p37+CO7BAqEGs4#iB4eJ7%>S@?Gr~rK4{7DW@F$I<TCmekA$n4hwK{)T>TW;r
zm{a$upZ=DT>&dxRCDzg+*zR+JFqgn}lPhHiFfSi|L|%RT!svh2U03X=SaU9iw~I!h
zC?q3tfTl)xY6p4-{W}~w#Mko@#%EQz{PiZR&#zki#_@~uVH+iv+Yv^a|0@nn+(nVB
ztLA|4yegp$iwdEYkS6AJ2WS*^x97#HjzBvKPlnG_n?Dj!7q=Dgc|MwU!TaK+BCy3U
zX0bd>-MYdN7&l3OSNfh=Du86-P9iV)#^ZjlK{pZQ#cY<w-I+!&wjHWQbxNi2>7B8^
zziBXjpM1+`zr&vFpYT0WcIKM$mum86k1tlQfP!v;;fjVb6s<^fHSV=gb|D^b+!&xN
zdH>ay%CW@S<8an{eB-F~<<a>jE#S(h!~Ltoy*SWt)qBYaIhxOAm(ly(l{LRu=_>9L
z(6Ls3(fEaDamJ5?*eNGh(0?lT7Vc<)n2qv!67>RC4_uvUAY2j@;WG+x)3N!!Xk<gX
z-hN!kk8X%I*8Ruju-Qc(a{cFxsN;)G5Fl#F$NL9s&CUJHJw!!6R<EH)DhAJ*#`t$K
ztFn1Pn0=Xbla2J==}60h!Ga!0QpO73aL1VifJI5(?mkkn!l&8wPbL}fxymE}68ZPm
zc9SoswHMl(pG~fEUY);nw!&G;UkxBYCd7HB>hDxdmX6YPA-av9-;H^AAn<MpAi^f>
z#3q-vts^xybl4VMoAy^&h74{>#oA4cO^j-~Y^7@_VSMsJ7n^fp=dwPUf!%q)oDhvR
z&{TgFlZ&Jzgsj6TdI@7H#wAKcoFD^-p-tF9_*Dy<;!Q_Rm$@11v+qB(Dlz<wg<joR
z=vT(RBFhq%J+w4)M#o7`vImf5N77Uw?1{$$sFyMTW1@7*I{ig&g}bW$+ETT;H-u&6
zb-#z|9SlQauet5RxxshJ12KC`hejpzNWk15&RX35bMGfJX43jSPIc3EeRNnAXpwY}
zhSQ>d`2BB&_XIIVU#x4s`lCx2NC5nW5X}HnoC$xAPff+@r}qgo7&)BIJO`<ooJmny
zB&a>*D=U?Em6ZhfdMJgT#INBVpZt#?KbV-vbdY?s&p2;GN-MhGp&t+C*jRuKG(=on
z)ViND_&e_iaUWWhHwgj!BvmBWIbGD+PLUS2X!f->QA&C_=|yw9wPRV7SzhGeEn)gV
zxe7Ki2cWd5vL;{h`r*<LP%l2Nj8wZX#7$kFeC=Q@_B!S6JTox|cTpPLHd+}gnI8fy
zX_GBN&b#68jzFjPRUeU(f5H#1*n!u2wEI2vUA`dAZdx*>9kR&Ku2_IVSqJ-TZ=6Lf
zy^+na`v%`V>b#zr9I%E)Bb343)m2iR<A49Ix%w9x!xKNBT7J8rpkAq#NqDpyAYqbt
zwpI{`Q>j93;t&^hq$wbXrAd=bOW{j$qPB2%=h5rf(u0*<wa<+vg6m&}OD7y=I8bkH
zDGkc23UdLGKep*3lrHvB1&}mL^`{KuvVu3TH&(+xzU?Bne37Gc(?-HKw8|>#p-QO2
z?p1#0Yi<2D;SU>aojJYuEe&WsN;Vf}_XqTSNEQbQ-a8=hnn|aqBgf$LhWmT9_iW0t
z;yV~Y)W1$1hTlZnS-!r3So_ussR$b@`tY}pQ$3XqJXIg!Sb7sn9wDc1Q6QSmx<71o
zsHIzziNeUBA(*6|y!&6?UKp_&6$Lw5b7PvRz<ck_=BJpJ&$XqMjGgC?Q46K^B(lHg
zXXe`;1Np|O^LD}gT4Kxi>Y5W{i@)fe*kZ}*5*U!FZg<RG8WZX*Zf1IFg(ROv>YmW`
z^#!Xbiv|(VdKE>IyG3{52yl6qs`qN>6FRs>r0&U5)lD^SSQ((U?NaO%;%Pl|55BuJ
zq95#wx41B$O@T|6j27@`I^jVRrwiulIiP^pkWPs5vYFQN`ofF3ypz1!*vQF!SYMHd
z8e?B(E5?aSS$wBo49g>FgJCu+4fWtW1aGzcAgOCbBV2%i;uA|ohjoGJTIyS2#1%Yd
ztOH__2%M00&@B6~<D||cpPY`thu(!Eb*CC{XV93OoyecdUpIb}TIvrd3|7~Yn{kxl
zTW#Iqyi~I2bTsxMxx%9{OFpAbCr_Q95cmjc$&kDehF5xX%Dz{Wl`0QjUwe3b*Vq~4
zWCzzMwz7(f+jF}AJ-22*@}{%lU8~-*F){mx<h`1+ell*7(I%>8q<j{N>0*MTA;6hn
z7MjL&BYjnXtpUv$_s{gb{Tc;mf~RDf=JMAG<OG3;cQqKV?!%Z7=cKE*oUc&;l`5<p
zlmqi4{@Xh&|5fE+(Gt4&DM}Q6bdFp#X@8x6jx}o!PGbc&7g?FjmmoI^y&d)6c>L3R
zBmd>!c)L-MUa}KXY>uH^rkn)BVx3;4U`hbS`)ru1{!?!~sjAoCF}b=BI3K9<u1V*)
zB=z|f4FhvY>n4Yo51~8zhGiqS09(Ra$yut$3y=c^K!7w&+;}_{^V;H$Ja|{J2;AoA
z|3&pGX{!_bJ8tns^F@{U5p`pMPoL19%5OJnm#$f@fD6_T2K|orgk6o0#13@MHDYYh
z3l*9X>UmHH-s@tsb_q!eyi8biPW=h+^c<p+WLFj!?MS9#*A097jMqR5#???hf9yjj
zOnnw@+5WJjx%`BYjE6%UTG4F=#tM@CXq8&G5ERSVQL;++3q8bK^f-1@htBqK(Xx}3
zrc87DXK)ZHPEx&h_`PL%an|hTs!eS9F4kq%hVLtW7%L40&Ayy^NGF!sAJIFIXSar-
z>7p6$*uE%fu4?uuk_LaNX$h$=<Ne$9%DOxopTaFb<H$W+`^QlM8N~r+9itP|_7~Pt
z(@U{%Q?ty5Wk7`g$y=6sr@f-$uHYY6(pJzyN_hc_&zYZrEnvS9z&(y)MiUCQud5La
z0u@qurs_8?6Nc>OL?8A4zeN^EnEx~YDviy|zIxTO{+wO>w)aX_+0)i`yM)GV`s0xv
zL%C<_?vGqm-hlk_9J74Qy^hcN%^pN<PdUsHZ<53J2?ai<3{@bGw83d@o*GqOzo*1Y
z_|tZFgtiU$;0+b_z7lHXV#AhlX^5Bc>kwKo<7#H@!+mnSj!?r1QT@wF#b!+dva=99
z%CL-=nAj%TYNp4ZvUCXIL773eI7k7*cRyLq3U92*>f`X0(M5h0%LfdZ`2KLp6+C76
zCskFa>nAO_Wv-K@p}Sf4B@W3?FmQ&K3$`{DbZ<~HYE@L6C*?!ot0Ef~M#_E+9R_P$
z6;}&%9#!0X>rqE=LLoM>(+9NeI?bx2XuWA7n$UzVA*LG6`9P<UvHB(TCtdn~yv5%V
z&jWf-S9i;M<^KvRk%1;ZM>Hceyw{@Xglz?#up2)q6%WG|^0?H^hj<g&@BY38i68gH
zA9D*?#&2`4G1H_|*p;P#eFl~-ti>fnmlc?4+Awvb2+vC_m2~6*34|paT{eHY&4v#0
zCsn4mK7I7W8mYanFH);p4!uI9xJGmyO8}(Yqi8Y`z5-ir)#P`r*-<-RUyn|@uuDnJ
zSw5uKG<4(|vFJh2W7QK5+tfGrgh)u(L#mpn72h&^Dvlzie+%kqhU3;@dMsd)>iQTz
zSp9LW6farGq0H~5hLTUL*#0@c!t>Qb?(P(=HwRkyhSxeGQR;_lkZrv{HdHh~9ci-B
z^ML{QKSuLI5n4y5@VnBKf@H}P&Xi<pE@02{N%jU>4iqK7O23eVJBsoF(%`TL^JcOe
z(c8keM`{Tke1Snx-#iuIAr{$XxVubf7<A>MQ)f^hvq&c2<L~Tb7#(iiF|NTIE>pLp
z+r!}#cePkbALLf}5bTUk+%>;|U`c46L>VfsUFJ6yp%<YSmDbUE<qR%B2U$5h39}U7
zxt$(hpk)|%{bIOs>sS`X-vIcQaE8jo(YHFlC`v402Ln$t^|eaP*^`#gXHkyUW5?j(
zpt{g}rwxjPYM8mDJpYVuVN-kvt#bKgMsR_t%j+h&$zf|n#MX8mlQ6bIrA%h>WA}oV
zdY4<B5A~_8-`aZty!)()uL}U=6>it*Quz=*iT@lbVLkPcn1OoAyb34sO>+XDEJ~k;
z>-0wx#u=tbxuH!vIUcv7P1|xE(674Aq0BfganDm^9(+wybl8b)<lI#>yv57+@OY?(
ztp;(FC8rU5h7ZoHfqnd>|7YNzmb&6zMZDOyLSN5HgByAO5(=eVTM5@ADirjLm@=~G
zlwsI(LNpV_-3q=6-saoxt%Bu6A8x3;!0cl$Wh588X!+T9?z2h;_za))MQyJePU4-{
zRT8|@kx?M1&MvF4j!J4IsepY5f=m$ys!YV9<aw!m&2V5A-_b=5dOqKO%7M!HWlCLt
z0!#K<0MM2tMYeBQhQSpP-stV3as@A^BM)NQ96S2~QrPd?e%wXD>;l?mC2$h@Ev!Pk
z&S!alkCzwT;7V`k3M=yQf=Yg#H=Ym~cf<lz6gO>(`;uyeg05iw^Q+B^HV+P=80h&E
zMP@{a7p|WmfmdIw^~a6!|MLQ%By|PJYU;hgW{Z`XIz7`7%si&e85t|k|BoAB%VBzo
zd;FRZ>Rn+WH)EXaW89X*On>~N{`E6)8LSe_U1Q}2AfUkIx+FGqQ1!X`1OXPAr_aNO
zq@=njp`_iOX1h*W3T9rF!xO@aN$c;#;|~edcLV$nTmVNOzn0wVU-QQfpBbvIcZJf-
zPYlDAfLm6xOvm?eFjRpHejetq3qIQAl)eDuYYCd%AIbmtMlrcgLw@sLWui91nt><U
z{*f<?b6TvggF<|^(4!H1ol(p+2K+wbj?WF{u5IL;q#=Lz)EuJ*27G3?-F$MGz^9+a
zULCOf1CmBIW<=Sre0g+9q0476bCdIj<4=7Mfu|`t^<OieS7$hEpj3|3hg--~7A*w_
z-Ia-?g2@d6hTS!W;w4y6X(nB}aZ<f@3)(Hs9={p2gbV?ex-9XvHjBOtEe<m;Mh5yN
zrYd$<m;*`w1c{I)sD|RV!Kmhw=J_tiYrqy&>AozDgjbcO9XGu#YBOvFkMuyqsX|)>
z?stXr=^_rqfI(_Wz99tc5f;Fg_5xFJ`*M4UC)f-33D(+ezcCynC(xA9gpK}k54wLn
zxLIPC*kQ?D3uRzIdo&qt@jE|<q2&Sp=$(OUMH-eZ&NSJj_tJ;e?#K4TC(C=p;c;=k
zN+ib8Hg5!0gg4n7gVU8a*W;&hp9?*7oElBn@pG74B|Uz~Y*X3O_-DU6G1LCaej(5&
z@Xg{@?Sn0_bk$EvKaG}UbN6bQ0z6&6GdzEU)T9&j*LD+=Qd&0M>(j_bS=aA&1&%hN
z;BW*uFQ^5EC&SxW(pr%Pev#b$>>&2MDziRpx>as&_&0yY<Zjhn3A!i&Q_$2rTdKT&
z#|8ot0bZ*PJwg+Q4qd9muRliHW%*Cx!4(C{Fi%f7)4+aJ*6fki;yV>R4|qGsl1GY&
zj`s3|vNy!=jgpPeosG41Z1wlA!nP!EV6S;!4>qUjd1(#ok$vNb=C^A$PluE_HQ-$#
zAs|tn*6~_h3ncbGhnF3^{BVLdyjTIOmH-ubFAW$tgu4@Yl0vn9nU=YG(ZDi@;*l$n
z_<U0aLsex!0h9y_+)Lw7ZH}y++la1R&ac1Wz1Duha^&$jZzP(&@F(#m2$1q}C)0zd
z-5PCKj|;|p%Qe}J@#Cpm5RdKHXgD05586MoeCZ|ciH90t=R|dWmFc8=&&SehONv2a
zHNw?(xgM%;W4g}<1P?vK;<HnrOFIgl;sahTOzX(Ykx2rVeurIFz|C`}Hk7t_ca6P1
zH@NXD#ty@v`>OC6vT}R%rA`qRLIl@urwXrh;X>h#O@Z>hnkqS&vS{k1h~rV8_m^qF
zze&N-h5GyafgH=GZ2zkcLsq!7wrZPILoncsHKsO-^fSS70Q#(C)i_JKsA!tlF1&p8
z_oUGCCH9uVKlDP6wyjaU3!@&c8(HsH=gfT|teOuIL$xudqw~BPpyhhrYtBd2Ex5Sh
z8cwEImWvQ7{ub7)mKw&1iMN@nz(APFhPD)}^Gon+g#3z}nt`&&q#pQbzr|55ka<g*
z@qwn-7}2=RaOxyKjNVfi*f^BkLav@(%=OX>RDjFAu5~X*Bl3b{)7ab;2Xunxy(&Kf
zKWX#*CxtJNP#m8tXkFKCMT)~8iGt$+P{!UUtw6K1HOrc7+=U9T<D9_D8*R#e^-X=a
z%xzzZ>@#D&8Y;WZFeGQU-@q_H8Dq(VcFisw1~GZqNO|Cfn=3`U1dInRZ$alxuG>8y
zNkiJ|0b&>n-0~L_m|M^zZWWI|Z#z{pbtOEz?M+T@t}1jju=_%@)P)L<7Q%KA?t^#(
zVJf{yO_We>toUw4zyVtzl6@X9z^fsr)nN(T^#Pze;BGGd2M~m%?uE&YK`G&Yvkl94
z5xEC{JLvy7N5F9HNl?O8l6Ra^K&oH}Nxe`NY{`=4`Ysc)%3uVU!THobqvEiknfpQd
zgN%bo?VK3!jHcGv$x3C{Gz3#r>5A1_0!D{GXdmq5N@$GbuG`IM$3ve)j$29!XHsa%
zyk@bUl#ugCO6GcV%{S`;)G6WSC39B^9-I+!(r&rL<BRix$kRsI4Q@ns6pA<(Egk+(
z=2EMtv?;eM=)u>^W}45;yH9@yH`Z02pZOXU<qBF|;R3keBEk|v1-;gDsR(guedZLm
zfT@Q=E=pfc3U<IA*4YDW?Kl;CFuQIr(>3eG-;Vm<D9SVGeR0ZHsk28e2yeI9i(z}H
zPrA3o0k_;=Cqk2xL+#N2A4a0jVI90@_@80Ve1k|R_+_{^t-<=J&K%I~WQCT#tl;s*
zh^`_7<aUk*xHlgo#9_W3Z|3k6xhmY=cX<?fd1mV57w*GDYxNaFzzCH<$Am=dfFi~-
z1rEC1ujwULFVMoB?DCEP{lTT+4UX>`FbJbR0;xjljR@d>K@GDd{XU^BlClS)d^BE%
ziO~B*jp=m=rb+~uH(S*Uqh5mm_YJ$AUf@e{lGrnfIbX))fImC+Sry1A=TPI<Y$MD8
zu4iAIiC~t6<l0aRG1TCdv0QnVB2w^7dA~D#C!uCyiJ)2zTm;_e^rRWj!v8YWwdMQl
z)5}gnA#9yKtpQwFh4`50|0-5*@}FYyfW*b~ySyX>hg+-l8$JbvsTshXFt4M?&TlN~
z>sv(MO~DI6(noMqzuQynCT?14di#s{Ps1TNCdw(IPq}U2`m$Ne$%#wXtyjxDHX-Sp
zR3l0P`A+A%9h5lUPQd}M8?Y%95>0uj_fP$1N|mJooErQ#JDG6>#4e-=cekw8?WGFV
z>GK>D|2{P-v%C%1JtaUAQ*o65Iyb&~Vu-i$kA-T_$w%e$0Q<QmMCGFNmJQ7D@qT`c
zo?|lx{+cmfwBpmR)BdLbyC=dgtqk?-*H;60OlNg!pJ^Tr^E*UgO^C&)b!kG}PRI72
zW~e`1w;xOyg#0Z$xU{mQH*6p@a~=F=)_c+J_SMWEeaDti{o>ykeK7+GMs2lQahe#Y
z{N2^{QeDkIjcNHF{Zurhvz9>@;{FdS?><ciZy<ZG9_v=ePY*NEWnVk=)OR5?31%q9
z1GNcQmTiWos4^uC1>=qSRLke-=<c{^8y(4-{U=S;O>iWpBihN=iK(PnC`V&|?OX((
zO;L8eK-brnS|y~S(WJPWJkP#lj@dZ!5USh(IRtm@hhz0boS`G}egmMDzRV!^re=%(
zzivWgBLS89<#E<(^nD>e(uwZlhx(_O+5Zi?>}u7Ij_Vkx*uQglLF;pn^$b<j@HLpM
z+kymE;WSbPE7b@qO)_9Ay@QtZ>&Y)^1nfy1yH8`m8w$B2L$S(o7B_`B6AwS`+aIUq
z`6g=BuzWrkW34{xAdg1V15jUF(ynKnT6WFVLHUc2i^t;s{v^RIsDKZA%!94f*|!_z
zr<i^{zGwxevR{wSdQ4M1nD6v+*!xpDY+0c?h(99^z<WpWZk!#q9LgH3Bp``%a%z9X
z2UNJaj?I>F*hxnt#@IQc@#Fe&Yo#ndI0oV6{^jSgjwG5hOa?3Zg)cU2{Q5Z}T06Lz
zQ3nb}=Tw5D0~C6o|HPFhW5=3mvV5qQCR%lz@c3IENq6tt(QtLO*EVZZcvT9aVCxb)
z?_A=^HeTxMP7XH^)wNA-%tT%WUD$_+T>ONCy9G6)u4>F~!nm|m;U{L?tSzSl?f~rc
z60UBGqJIml0max!_3XAShS5v7PuZX|#-HYO*BpTFS@1AmT-oKkueVR+$_2CWV+rwO
z`gWXu@QpoV`gnuZC0pnApN7y769Az~7|8Jo6UG0mNLo4l4ux2o8i{#=58hf;WTR!u
zekscQ^_^%`4VX?tjjP^Q^c9lD{6EF>e6gG=MEu^Fd^-Fp#M0LYlv1$PH-2XG!4B2@
zM@30xxU2XoU3-n8%5=>K&k;xrS}$HezYhv6pMjiCw(K80?mfexBgI#Q<T5sTwjmwr
z1XO^u@Ma2v;GTu_>lsB(<Qbli9x&SRR_uy1z!^t^g0<$dm_8%KfCTXG4*6HEAnUOt
z^3Nz~FzD)cJVeuOZ#r*`{~xV&!Xynu@9Mv6pgGkZ;7r!vhA3>Az2Z$dKY>4EbpZU`
zQjI{3T+fDyQ@Q5*Coc~LuQTXxM-O5a3^UW;jMqChXPYbcQqQo^gM#Hi-ZXvOvTNr3
z$`yRVD2<G7?MaK{f6@#<<OgNd!)4G2)Us*ZcVJs#9z8+2qUN~i;EmRv^XCX!_96~P
z#gSbPfYO8SdNPAHkkb7#<OOG%c^Y9G{{u+Br&{iQo0mOg{-RwN@1710H)S``w2%k!
zYj%`s1T`f|p{F|{>%E4|SMK^)2xea`#3s0n?eN)dt(cHrpf0Gs3o7l+sIA=8&JhAB
ziAmBaTuE&%#J@`@<ke|!Z}j?uVMEKRTyN@{WPe`3@3v^^B4QrQw;b-1Ur+hcjxX`*
zofuRNNCCAK=GhHPmXU`_|AdY(p62izLmJ;zE@%VCpXtEN$-JEP{weoMZ6{2$Q(c=Q
zavu*lyMr`kJ)omcC|(NvBGa#R^M4fzij=WvAm6=ONrfnCyzcnn?t9aPy`me(|NQr*
z1Rk<eFp@KxxA5c}PG~-bz^F;RPL0gi3u+{*5QhUm1L)U!KM&kmMc75PN0(st{;eHb
zd4{Ziex7l|a_tIu{d|CG+Pp3Lx*vjCN8IoMgm-bcHt}~kauDAbnT(b=N?!0+$V47x
z^tOT?mxp$JQXp%mvtBh1$8JpD+@%P$J-+Pg%2AtNW-plz#;w5kM&)hJ%hralCP~`U
z-Z`}i%SeW8$C(Jl!^67TTpIZk^=SZd4bn<1S=cN9C1l+2RR!%t_GtuFHIyY&-<`z!
z6W(VuoeY3f^iPXVI2Ye{;PFg!Tm2!Sq_*ow{>JN@#bh|}bcputMeJXD-^fMd(WYkn
z8u85g&|YHoc#bPL^#)b;%Gbg7tY7X>MFj|eOI?g$qUhsDY3Jv_W^rt0uglCX5(hg_
z2}&s#!!V;i719@Wc)@P85jJvGf*jCg=yARhJq*rudH+@cjI}l{0q=Y7MTDO*5LQPE
zArWsl9Vqtf0!HprG%sVducK@KO)xot9jA$v#c1eX`9VQogY3}`&VlTqk<;dA;i&Ec
z;~JryE<_z^&{6>#U&rA8L)ABh=hbyx$8K!fP8++iZMCs&tFhHIwrx9U(Ac(Z=ihnW
z>pS?5?!#owy{5((b1sYUBgBZ2k>}f`$#?Kc+E;y0qn8WIoGDRTY@Dcf)#`)bHRI2b
zG@h6K7}r=wbh&|zy%(Y|*GAyo#d*mzrP?a(c=Z4>=_|`ju@+@9Q6|aMSN2_Xzvr%6
zzrQ$2s83}LjFiLA3Wkjpm;Sv|$H(6TcAwW3%I1TLf=xAOfI_%H)}6uEmGu@|WGFBl
zWEW&iA8&g)g=z*z{^k{%QS+WUiB4ZiLSA4Kd2xrH!h6E{Jt`?19=Rx*zouvpL_4ep
z+i=Wfm2OqJnd)d3+!*$7g>dZjZ~J0$6gy?`;LZOBK2eU=IJbZn^11Reb!Hv7m#@AP
zT^|@;7)aa~W#Nq~1F5n3Evtzsc5EDwwtEh#`q1~fKX!0$F5n@w)8y8z<FW2`+D|OO
zsjV%K>wIdGALwI8{dE8l{-dXr<8q0mE#FmM;^_|VH4*6BFZnJ0TwAXT6}S650Atbt
zOMJ$EQkBv|M5|Fnkcq!bPX?=F0H#TFix1BPe@*1<1n5kEZ8)+4g5ek<Qd@5hLhH|v
zJP&-*A@DrE4-NFEsxmRQw+6PbvYn@^^z~=n1CEyu(x3OB)dxltF9KQ8)==J{aUTC`
zm>Ym_!D1pFwEydw>umgcn1(2f#`(6K)_+;F_cuEJ1rq}&$f^TAjX0p!^>w)-;y)QP
znPy8teKKO2Fx<QUi0#6E!Mh)OKaKFcMJbghVT}=d_M)-y*{}#-+LCL`-V{`^73HEG
zMsogkXuXuivGL97?ii7-<y`r{DH|8h2W?^jbYHbV^V9I7M^~GYSLVIvuU%b;zkry@
z-L!DfKmtq`MNItAo%{}nOr0%7Wom(WtQ#U=jPza}DSrcAMoRGUuJrlrvfi#DDTrm?
z66u=1>6UE-w%f1jxy{#%FOi6Wn?Swe0t(5uDa=ye7exHclY|)vpI(Km24h_x3j+Q{
z3KmQFzEXqrJ|^FQFe2j$^Y4psb=Xp_gBs~M5i+A$=JYET9ju|!Bfo*7CQ<rb$d&|!
z9d5NPY4pyUEI6n2J4SnlJ;#LMmy-`rU;g`OYgriI^<)e`6-?v{4=u5(*IA2*r&eJ6
zL%nsx8mup&ox%;ixc~rOTrZkj&M4_xY*c``<EFefE7cA}>@9QpIOD5-{`Mu0!POJ`
z&`gEo9tyVa4$ddyq@#Y>UH;0JI5snNK!@_wv<)2&uj@=C=50gXG~3U<xw}vEZ?qf;
zBP-uJwSd6{zsQ&E>4}fgj<~#*oE+4<AEcc1HW(c3UL2|RzG{}zE09pKDlUAO>iEfE
z@Pa4Q=I+DEMJ$8ZJGw=Y=;Ji)u#Z9k(VOF6TDM++rysF|2C*kUr!v%uSqbNA1pnyQ
zsQWZRo6<K&#;|*K?H&8P@o)RrxU!UgxOj_TLF4*CHn;kX-C~iWpVu${Y#jPzi=!jU
z=~SCB53_bdUNT`g+Wfn9bL`v#fwi-xdcWE04R=~{U$GZg%9u%C`K<FCbxzLElq}%s
zbUg%Vw&{DCIs(_=aPGvsFaDX@aSKOHC~gc5)5mTX##Hn$4+F2t{p%uJ*FjiCxRvZi
zX&1)YFzf72W@ZK6w<<i2LP@nkz=v|+J+yxn_-|Fjwa(__1sB^AF)}mlU&LQl3CPT$
zq$)iY+Mt%6boF;?iLDJCP0ItNx;7E>t=g8B4b3EG*6?!{irU&3I)e2<6vIXw@GqSv
zS*bUx0+d<}jKsr6$p<e_mn6jF?oC_=d<R??H$H;L2QiNNd#S6fJ|-d~JkQ-~HlAnv
z)8Kp`O0@|H;1hB4V~%U4d`G;p5?Lu>-`cEau?-``@&m--IsttU`CaeU0+{0n6Ql2_
zM=$oxIA8ytQ^Tu~13{AjAI!rm<2Jl|#Df5=E>Y>~12%Oe33KDEBP7<X#X_<-{WKx<
z>}%5Kn*emx<P|d(q9S&>lV-W07iAR2q7>yiqF;Qu^a?Sn3Hq8X|2(Q*5L%y~I!iKv
zr=GqEiXjo~R~BlUdNXZRYM#_(fjm{g5S+{6=zB})H17N=|503oDiL$&AH1Zb@@C2-
z{oBmAXA|N;`w)*lnm33wFD3l)#l*UEc72;;&}$Ro97ajNH(h&SVz+aIjZEo0F2u#|
zr0gMnYH4~${i+_VgxloT`r=38Ed^^0xk28iA6BjF(_hPCB^3yoFyX)ZmHPAvOniu+
zz#5MEu4>cwe78Aw6Hbpfq~9d>IBZ!AuW;9SKIRRmEE+nQ<0uJyDPlAl*<8+h`kev8
zly?nQ$;(8g%DxoJLNs`B6Ge>tTmzE=l1a^EQ$#G^R=IjqR^it7X@a+{gw%C~Yb2C+
zXo<7^7*~5Ii<y51otX*?B@OOm_BsNS9Hh|b<8isiT|>G&l@m{7mwSH+RX&K(EEucV
z0>ex&5#$UygF7d}{`PglcG&BQwdA~RU!T;>77YG&rR>xk+PcaNZp{Ma!o&8Mbw#Ef
zV|oIMuq+bGN2IDh-M?4Aps4FGZQ4sBSCbH|8mXvkynP0&kt?;;7i>5?RpcL_*E*_;
zOaAz;G@|rg!xngT?snZU$`)dM6Jauy*mU||>U5^r@4s`lUKFG&GvuBDuh+8z%$EJn
z=g)sFg0K|5LC<s;(QqGDLRl`<<5JZ9Mx(NUh5YW2dcw_gO{K?NpbH+=o{=psOQFc)
zUXv|O2cw`P8)-Ia&T_rFY3#dtQO9Q}&uS`@9B%QE6(^xt_oGj|BQq%cr)u%-!P_?%
z4Qv5n*C*MMUkBjBU!3xtRuOcTq(#lJlB7rWllW{pe#rb(?qbSN*i<f-5r6v1oJl70
z_NurnEUD9QZ24;FXp|{Rw9=Txqt}rlRKdsnL5H#>?yjo(QH^30$wI01l>9hdph^hY
zIVml=m{Xeabnuj-`Dupx&io%Lw9v|hIjrzbP|U47{H{WCPBwZRbfnI9BB}bX=#E33
z^J_!|U{VU+pyGP@zC*M))=O(+U8=i#8Ksr$<jj0x;W`zERm;;eSn~8V<_(0Wgn2&A
z^jPXP3Y=NzVO&AH`9|{_9{2u1t%M9&`^KC1970qg`+g1`GR1$0u&kTdPdM?55R4Qc
zkWO;P4~&HO1kUIUax)+U(IRc*Y~zc0p(4);NUfCTZeDL*KWf*RDX$LyZ1cMzWk9e(
z#?>kCWe_e~nz?#%r?fl3;@wAvO02PR1Ixk69$3oVP33iK=@e~-%Sv85f{6YCQG!L$
zXG<K8kmeDmSKjk%UD-`#=2rWi>)qr8*>LPfR;N_mP__f(-}1Z;(<kGlgGcA5B^0_B
zRmhLcw&00}U6N&F%_R(cAOGG`XVS)zX+cq!bxl%_gx+BmrCo5a2=4DaD-p-X?Ak~!
zF;fflX}jU85MIxRMe#O0gW3WY^39f$t)~en?iqjce_TLJNV0a4?yqPr9K2$1a`cA0
z2>`(&&-+G}zS_Vp;CG|fAJ>UNz76%cEO5z=ugmPkhX-$tZ+I2rk&>~nr`P6stW8*3
z$C|o58}gtueBP_Afq}mtt_!Rz_$f*6WRU9ZS1cb`p1bEWA0Nd~Y{n}}J^luC1FrE?
zu_rfxDUVl%qsV~o^a*D9kaK*%*l|>^ah-V(|BB0~ueo#5o$`1bEOnS_ab!Pw+Oc`a
zSFL}<OKAS&)oVM!jhvKa`Fm*lm5ZImplZ@$v7{BolDjF12Ng4;Sh&>-+=Cy=0<UKy
z*{krB{Ii1~_3RO!&y8-D^xxUGR(@c+*+<yqmYSlnck5W#nyFkX<BN9aD|;^oj<2ED
z9la;XNIx7r6qTQS#88xr?t`L%6cgr7SYmWy3x&GIGlt=|N9}V~&qj%$1^MXZb2NSD
z)$#!Tp-jZztLcD@)p`femX|-RFL`Mq&E_wgJxKEUHKb;Fqd<V9AJtD3=uteNF%V(G
z=z%;p7g+R>T}!&EWBS8Vh;{BhfAB*5HRAF(Zy0}{ouesbe6#6YUc5Zr6zS%sOxag{
zBR@3jx{;*)*9iP3Ki!UHBXIKW3s_DJE-ro4^fV#)$Q*|%hz_2v)@MmioHozM*R5Kd
zpj|4MgqUi!Ov_g5`LUokL~HB?tTPSpU9rPhj*-XXkBH$$trRxMEea3no6V47F&?=j
z*r=B?ZJVFLkbygk^?NhzZD}t0kgI}B9l=P=FdT^!3|*i?73z^;b;C!W*Pt;gGUTY3
z=ZldPQ>Lw($&OoR*E5|{5NQGk2?hG*^8!(>nX9gA<1r;lOHG08MlhPR6d3zRB+Fob
zM0$wBFLL+zcQBdbfuD&M5(m#rSGLuJEQ9!WV;$uN$T{5zi8wH(;5bBg7Z>zz_+3}x
zjK)rKgD!-;ZzR8p9+rE#A*K9Ng!Cv6J4w+jT~_`|;x}k&(qs@$VB}tt1qrdJ+*+WV
zo7>8JTM6%Yz~4IsqAW0`(e^fMbu1z6tZp6m7p_d`rcEyVb~YR$8@C{h{SkA?_R1us
zc&Bez8a4kYw)y29o|8WyWKH_7XE^%H$!VJP&oIC;Dhp{3NFW0p8j)+qhYPQcZxh-v
z*l1K}QxtB0{}F67Y`emZEOq<oF{Qw{ruhD9do#_$O_kPmpzfYfW7^Hv{kC=&r!CsN
zgonV-+&HdAj{_7D@_CriQnD$x(EcCi13#U>IP#tHSJfPXJKTVAkU`Ia)6-$%I={Nd
z*aMa(o8LX&7;)MpUNTbf4|2NwB|}{p46>?7&tSb$V3Kr3xz-fPFt7ajt-!pG|Eph&
zyE*AdeZZ^YxB6~%<(tC0-6=f#v)YmXFQnhYAr-qS=T^W4nVZ)_k@sB%^C*mriK?kA
zt9wp3)&=Dz2?((sN}3p!RBe2V4CBH?h-Uj=vTzv_e`4G`8^|pmG?sf>80FBc!baOc
zo0vXjX&%=M%?x(HWM=*|vVbDBEpD4Rffj{E<}#M3;Fsm1Osrv0RJuA{bvJqO%XWR$
zglrse5mIUm6+4U(YZ3O0m6s&C=Pw@v?@9AygTHOMVzg3t;I`NRhdcl|vi)fKzuH6%
zvkGnddAsX!L$gZUP<alVPDt<jQ;1BlMg0_7*DL=9iyZN-H^w{GA(7#LK3y-^!jAju
z!2^f3En!BEfEO#9WP%ADE5;r<vFMLFvfApaWSj^=`o3MBg@klyWX7n;Ef;^&*2t<$
zap$y0?<0r+U+_Y)%W4vpi4@px@=L{EYyJlG*yr2XZ{d`-f>0Ex%MTvD-EOS_VO{P7
z!|<nF{L}en)o3bA>Xg=elq~q;{z%KCu~C0?D(2~~sV#lJnflq3&n#i=3OJ4A1A0<&
z<Kka70F$?SV2VM<q-%x1o+)c$>NU)e%-ASv=~ha?HS{<Xsk6|)E%7eg{M!PfFNlM3
z#1{n0$Z7wLL&giW3T;k1r_*xchpBNrH2D~nvX%xXa|zj{HAW>^bXd(c5!h2lS<VK=
z?CfGATH!$zNrNU$y_+7GT*M@a>-Jww*2+?P+7&}td!qJ#6JRr>9upubK%fY*7WtzA
z)Qp@8k1xIcHr*Yfv7;U>@@cAs*>$=9rv<oU{owr|`iu>6umz;$1ZfduGxkQfBVRY0
ziy0lM@V&s*+A{|xqPt?>XpT^LTs8!GI4V8-R=s7#l>^^4U#ENCRBfE^NbrJzM1iU~
zZ>ae;6JU-+<Ke@EWgL>b@W^y65N<%H7|FutDX*N&79BhOc=cy#<JtRccPozfet78H
zWm`$aUzw;lZImBmBcm`(JKR-&gGRLQgs$>vsfw~9Ze&%uunaxnT)k5@84%&8)6zbS
zQafd05F5TN4Q(ea5dVzmz9&g%5}jibRplwi`vxNEj{2K$%9i^YsHPjb#d5=p0SB-T
zhKDyTJLD5_Nw`Hy?`mm2P}i}twZcW4OAzm3N{v=vAuRNh6HNuf$AdSvwMD=0f`HZw
z916)CFm%r%A(!iq&YH3hO;hLVJ_OemxDwF{-f(IxTK|?~|K@`i1)P3t1r0slz`iF*
zF_s<IAh_78&Pq=+$r&iAP`y5yZY%f4>n}vEf0Io=Ty`HJB_!1FVWwHpl`@fyj|K@>
zN!VK#MCC3v6*f1^XYKEgqPJ)nXdtNlAo{x<i>ITYVQDyhJDKRNdrmE)4oW3*7z-Ly
zmS6nbSzPR^IUm-XX-w^o(xF@<SRIB2999uB20cCWT03Y$Ovs+l5&r<Mz>(o!35z0!
z;_b`y5lnhGr?UO;fMaxG2DOok#-1M4>JQ_b3S6ytrIx%$Fg2v{7&ESDYo2b|GEC;z
z$#HpyoV6pk2j|A3_mTf<g0T=f9TiSZ)eo4+!@b;klGWeSnGT-A7!;r<IEFIvc<yI)
z0-$g1<T0uHuy$|#RH<zH|1@knGqP<1+JBKTDQGmvK`e-=T3x?*4Wrt11suxz)v#zq
zp`x72+uHcds==q77vf#RDLhb+rq0Q0gs<4Q$e5irm}+Tp-vetaU`gAuDf|u#lvL^#
z#WKU7fg`hUA?@AXcytJ$CS8Ehbm*ibCSD{?(0ydw0aY9;jm{39Kh;+Z@uF-mxJyvE
z^0~YQxce?@e624w3+Fp&&jb?_RJ#3zK5_r>oxN80ZG6sL5zLny^FJ&ZXqzZn{Kbdn
z=bRT0zXBhcU++A3Ri?@V3zW_C!$kA7atG*~7C!y}f2go1s`Y#+LiG-`8*g}L99waO
zfr=@|*CD;XJdqEk>X))~h+bh~rOG~XEefV~vV7V;LA&>hZ`t*C(iF_5wlhpO{2%su
zs;XgkrALi3I-290!tD}9;CU-39qiNoiq_akBmRj`-E)3a0U<V`Yh0{3_nLV2lzJM>
zoN8l3H29jF>cEy{hZ17`pEecW2p4YVrmIpa8^&1*Q#wP!`##rt_0eSgfMcdqJ3+JX
z|6cav;zoGrrE%BW+>ND+(3hVeGe0!hT;oR0M$27bsDa>pGzJV$WiN&27lMb^b2x?&
zUdiWGN7=BF*xK&3RJju)#YcbYp6<>P?wNE>N>O9iJOKEQ>A#klPfS4@;3aXq=Z8LR
zk7tSE!$i##glP>piy-a4{z@%tQWUA2)l6a1DTAd0xJ7E|D*|=&+8>F6aK@`*MxZaV
zsm}Z+{<a1K9rPi$y92@G|E@5&aO<W8tDDAyBTfY6K&CTfovj}#LJ$>pnDqA#@iPXm
zjvX$dD>z!7(JU`M3{<DGx8xnk34tLg=alw0`l#7kNzP}Q#2I8caMqu#azbWHAkca!
zh!wCOPitBUN-b5F5$(*R*AHHKNH#l#N$}W{Q(nzjvnjK2+Shb+ALe<0Y$lS+qjR9M
zWP5}tG`a(P#lH<Kr~97^kx}H4WL~8<yR2$v_-%(?I90biCH+os4c$&hnC_&MiXOCP
z*pRO557`D7i#(?AECN53-CZxe*eqm*32}j=M>M_Oqyhige5wd3>rp;O^o@uwTzQIb
z&=P7)UKCm1SKIQ7_Xlh~E*q9aIbYFtBSiRpR0D!KiA9~$tb<bB40|@I)h_LN?Cf{d
zM7vNayc_VguCF6TK7Mu>%0QT?ebxo1G9C*)U0JygGkvb36|R;Ic6Jo_UIfBKsFru8
z(fjw?Rke8&EGSGrr_Q;3t_Mk{!L5n(@%Cs2I_A_3Z4o}f%(Z_H*%#PXBZ1vmdHE7N
zDt8~(FZ%-RPUA|_JOHtQlIL@I>gIfF+r244^pd_+u*yvnJuOC*85r6gHY$ZLWw)Y#
z_OFBGpZLweu9uvMPpE@Oq<R6)mZWpWz|%L3QOK2(WqhtRyX~t@Z#ZKIrlf8pUNPn)
z`_#jY$1nlor>{)lE;8b)wx9=7cs0md_FzXT!~OAUc$$=in#`PVvU;ps6)hD{QmSvT
zv4j)@&qd<AH|#p~KO*j8S@^zsYo)P4{DA9Sp~;dDFS>CWGU05-MeL+?0_^IGg^Coj
z@BK?4CPPkwv}^6Eh$HDT!&&;WmFUTf1LRr!i@WXB+!LME?WZ01%Itn@Sz+jcAVkKK
zs)mou8Q+X#)~&M)-Ue+6xSfj(*=Iq^MLyQdJY1*E5E^=!^qLGI`KtuJ;Py(*YLo8J
zy|UBhMF`OO2Dk}tKt936qVLQtkzNL!cwjzTyq#3I{)?MjE=Si&-|*L2O&cIikN<EF
z!Uz(ka8O#SM0y(v|L#6-COpm=>j(?&7jsll+mz#xBvb6(EtU{w3dBOn8+$l0EFHgV
zcmt8d#8TNQA|MZML==p%6uy{9sB*oTnUWsTY|4N=e2o>lQk&?u*_uon@mCMJ?_0z$
zRqonp>39UQfWDPu|9f++zZX8;<uiL!DY}_sFzG42rM;JCMUDrUA#O+e6mP4zPC<1d
zGWRDR8La?yn!1`XAK(l&dA_%|#2mZs(U%duD0>(wqYmnqYrO}O_Yf6q26)wQP8gLp
z+;0Jv##Xu^-=r^YUc3TfgF8t^KEP60^ht8S0B<lj=*?|fUpD8nLQJWgcw;|26OmOD
zS_73ME9J3+$zn=UiT#o7E@**{UW*|9t_^gSOE9cg;{iR2_Ie^-5ndmAn>tm+OyN>$
zq_p~V(0GIRd+J`Wgta%0aRw~313~I<(a^kC8XJ=&oR6(`o8QdJ{QKOaL{KvE_)?+a
z#tZt;p0GSRY(mTC8TQI$E&0p+cp%OPwweH}#M4UU(*PZ=7b?}wn^K8s{`J%}svujg
z(VQH~;|vWUjX(vQ^zEbN-Jkt|#=yfCUx3FDx+&`!Iy}0@^~VO4gd4`Hl!!EpyIyhv
zZCbgeN6f~7w5xDV#M~ZjP&sF@63Cu=Yym+Ajc>+e^SV+>T1*zL?Oz^PXCUD=%s)yn
z+97#=Us#Obqg2#jZcf3Vr~OSq%R$Xe5+05r-14n}&DiI^WK3ZgZMWSp$N?sQi7p}!
znhJpq?!DbQo-wHe^<U@%<qN<XaxF5xJjq>pwY0OTO6;)B&iL?jL=kPX5I7X5!uTQN
z;dqnR$6;$zH)Rd<fFdEi!ND!Gt=ODg;o)-ucD72?NB7S9`c0!A!@wA`*G&pJpksQ&
zjFa}<dDOFS;q`^wxLTs!ikSi_7rt}u*B$8mVa)0s{7oZ>hEuhrg$<)pgo{qD6hlda
z;cz-%;qa=)*_nNUndqGW#+0m`pcy~n!)sD97k#KjIGk2p+wix@PpZK6KYy9-Wiix!
zK+_40$#NxC_LG5!8N%=4SwdKRHP|S@hkzGYia-*ODM16#a?Wj_>&rs|ZDIad_WJVI
zwxnD(DHdJE+G18nb|m2JFE)a&RzH)75iLHScOeq<l3bp&mzFMACw_k8Df8uP^L0MF
z2QPh9Tafs?Vl#&B@1-7fzL~ylcZtBXS7h^f>ZoW-h~6@hv(?Ahs{L^m^~kDOhW+D0
zpfil6-JU*-C3R^j#>y{-pR|sS5sIB<%pr>#>W|hL#7wm3O6}`K-aa3CC+0UoPT$8<
zsgXbo%fEqehF-JXXW7Mc6dR((K?agpt@heyIoSI~+lkfd5}|u%_pMw7wpPs%)Mv8p
zgLjgT7P;dzvmJOJWm192<<<)o<NR6Z&EW{zpS}#=l+VrifPMAoeNy>?zhvn=yxtV{
zR7PZCFqG586v~6qveDDQ)YR%x7Uc#Un35fxUrD3<@F%grNVp5k9)Q3-j+RDPrNJ7?
zJYd_ev6+TlQ*HiU=j^ONJ^y71o(M(}nw-6k8cs_~FSuIAZe;vL`r7RsYuCZR0AH1X
z_%fH&7jvq}N}KM+rxoaeykB$zM;b&XFzMnjAqYu_dGx*Ra|<PPfVhRcLApV%_{4RY
zN{tUWm+R0{0mZ)WjaCTcLLqrjE=Xh4t!~?1*>qv(9QO=6yKnW0gqm=N4=0!8S0Sr)
zPmc3ALHQ4jGMTj%k!1_7{<8{HFeeZ`rX|@?EQ7xnzgcV*&vxFv1&4Zt9C|8V#1gx<
z2|X}=6f}AaVLRUbdNWwkh#`{)ckfXB)ng8gxXx={!s9Km2XYdZ*N8{a?x3OZJ@lJH
zd`I>w8m?HBl(n>6TA&?)nO?f;MTW|BPJX@sW^&3!H6e%X3;<=vP5uk@O6}L2%_WxK
zY8HsM|E9_gCzD%eV25<Wa2w^?-=a4)A^zivTlIDxvuUqz&^_vGUYoLpN|fun-7dME
zJeVo!A^B#rh;__3!PZ<?$a+v?6Uf7%Kpnj!LRY38f7(pUMT3X?>|WU%)8*W;FBJYB
z6XJQ5V_BK{GDr6($C2<-bt&Bp?{}rB(GDKIo{=x<T9MV{({-23vTwGlbK}&-e#J{`
zr)QgNXdpF8_aNu)w70usIYgF@c-ydkgsH7KPpm7n?N=EG&?Xg{tsw!*aS3drLY*aB
z!8})(`0%;(SRn$?9qUC5%vS3-FP3%JS8n@x>GH3GzjP)K?9!ir-n8Fi?Kd+#)WcY$
zFdQaE`WG)EP9CY1C+8u1My3pHEgJ$8RNL(YHi#JX9i_<T0pfvf*syg*g0!3#5l$5_
z>$$au7Ek4un`&E1CPb$5xo2aiua0-i0{Fk1^NwAQ@77OlUaa%zJ})k!tTz9@wl?zz
z)$ThHQ-z-by;bd%4>s^{c!tp<rxclSc{4U*yU-mv@h<)=g$Na0H#O!D(W1_@%#eFl
z-D-%gS=QMU#mWKSVL>09;gN|tj!#c>NUpqOr#>*SF;kMzX%%z}ODA?0X3Np(8QgPc
zrdNe^9z2P$K!)v=DgwL7iXCHQipv}H*!SO3z-Fw&vCyfUDP4VpM14Wh@e2m5FyinW
zW*jawxJ}Lfdi?9Z>o@r?9Zf0lhgQ*DdeYjJHy{?nTdQtuUgU6)RM(|tLAk}d|2)Ov
zjr*3tZhJ9KCr+?B|6EZ^<;!jExMwTQp+yPtd2*Cp-b6O?;e=buO=(4~eiKn5*V&db
zE4|c$O143-pJbKp_rfS0L=tCvxmGH37q;zZs{&mInfR`7xu!W@fAp45IHTWq1k2AY
z-IVlGa;GsZlgSPqp5kGlx;BZ`sb#2qveIn9y)m6LzvNTC)fLYUN|VlfbEn$;q6@`}
zgpH9mM=j(`VqUA^P==&gg?rOOkG=Y3kO^OanAm?5vIP|zw<CkW7o+M`{%AppL%S-q
zIj#L`q?EC~lo01!og9c97@TA`pO1i)0aATA)*lW*X`JSYHD3hvAS|);vF-MW8mb20
zss(q2(ax^Zq_L{`HxsdtD3H&iUp*3Dc}vE&<vr^CgM6orel4}KSsI-;9Q-Z+a~3I+
zpemXlG%_rJ=Qahs!(pc)>!ItwHf589#}faT3w#S9QJ%y|>%zGVSpnV(L^q}nN=M4r
z>mR1&pFZ`ZgakCy7M;Wh;>sbjkY2bT(*&J|rPDuuJWk&F^MP(^wN9`LDqXtX)LCI&
z_>s+xFzE`z=S0YmKNB)AMtD8Yos6K$F^M<@>@Bysctvz?q}JV7x?({_M@FI4;du%u
zsCEON{eBvd#{R6h>1>1(ww&t%?<U|&$96xnU*gqZj`$TxGNtgwj`F0o!@x#V6K4P<
zVDiTDq1xx7UrM$jPnerw+qspZ&C)YYVZPB_GalpEj^u+nFB1qU(a`87;zITT0k6r?
z<4;jt&)Xq|{R{uY`LdP$&AaVRh6!tkF2N~?eeCG|9_o<gF*wePn`3{YZTLp9=M`%U
zBNO%l2ai$AOP4!gL&WR0cZ)$6zz&BR^Xxqw1eP_JbOUoy!pDtUNdxmCe0SltOG8u6
z*Z`y>3Hhu2P>lbQ$Xxf6A4hluu1NF5iHEO+r(){w48QV!+=xRwTe@Z5R3Mrz@6UGr
zx|2$93<biD<`d=b-d%-0fo|0Xn3hm`qW}2tw!KP@l5tL~L_YbLeQSXFOCYevG;_1T
z8Q?gsRh{w-KyB|j&MoDecO3jp#&W!D+F5cb?IB?OwcAF-20p*FYmNJ3HKv1SF22Uy
zEuBq)k06fCk7PcNuMn+R&<R|MrWa~C<IW*m*Ogzw*~P_1V)tk4s6?dG0R#2uz>n0E
ztJk@M2iqpa*x&W^CnCb@@`0If+_2;+nZ7NxI7toJw%dQ{>LGzeu_uUHw%CqeAAav&
z65`TdQSdN~yVE{1^xD#jwfPp8ZQS{;>Hp|3{rU5!Vp@_g{L|(YC?qjtwrDrAWk!s7
zo19ri(Ei<IyWZg{Zj0fC^wAK2JncQjCBTHCG00wH9l?0L<*oB`01ddz_McC>M}4N!
z7XF%zm~13s1&-cDc)UuAiKe1)oox`ma%zE*&S6WQm`hP9pCEkwG{1n!EM4HOT0QT$
zwY`S({D|7ND4Fm_$I1>nS>pCFl*l}pRd#Eu8~{xe`hVFOypuhK@e-Y+Lzk0_wFvR!
zP<bp0+NF?nQG0n!?jct+SCtdsUiF$ChISCF^(V>h^Ao~<-)><yK&!@>qO>dZ#})38
zIzBEvO9!fkS_5E3nU+c-0jU$s79VMJj6dl@>G8wc&Fg6SgUqZP?)*MN57|KRJ~%%y
z5q0-8FHz(8+194*s7KBml1)(2CbZJ?RZ6-1)xwmr`3<GGbX`5n_1mDfDPuJXAjcZ~
z9m8gG)x4v-&_URocsTwDu?csLg!LfwTs@{FfoF&~WPg*A|6nfPhLr@LSFE9}U?X)g
z^PKJbo=(P}a<rUI0;7z~2cKS&{WL!VEX7uW)(TJ%mUwF}|C9@$wJ4T4I1JJ_g!Mvp
z*TAaWsRgS;x)1kw(-gIOWElAKfS1A;2ZJ9vy=*z<@7xu391ub9LQ5onZ<eb=PioYN
zz(E55_;(P^u5l^JlazaRj1K%qr^tF`_z{A$kY(G-w%W=*k13G>2m|YN3G!WV8o_nV
zvovw1{L*lm9`8vl0=c(UB`E)l4&`V7gnixXXLEb*FL82<&n*d?=RAJW>a#vr3<u~4
zfQ5<suQ>PMVWtxcZ<n7c2x?yN4f74W%Vyc%iEMUR(h>53&lmr91C}Hk>S^jwcHrvV
zm3kGHWq1TA4w^IBkogF9ors}5*KulWAaDg2^5k%eiH1u0Pi8}zYV@>}E>%npWW`ro
zi1opq$rm-u#5AHt;7Ol_ZB*y9U}KPg|3R^rQv71ub1~(DbKE$5oWkYa$Id?l_A=pm
zbi`GI>5pFOZ89ce|JkK~0@Cq!a-uoXO-{=U`9eoe&O1j-(MNRy*Ne=`rn`T;6NW`M
z6DVk~oQe&0ln@>_H7|0_IlJ#+pm<z>3q(HU!(m}$=9Ri4k87dP=|L011%XMIGL`Tf
zb(lpyF_TrfQzC642`VOHROlt*;o@l#86KtQ>1h`K4-64bFA3E~V8y^TAS2EV=oXuV
zLl%(WYsQc`ZWYmh)c`Q~$(f}mW1)Sp1T-fED>S!ZQGL`Qcb2Z&+Tl)2K-Jua%8#wn
zp4}|(Y4KvE*n;pI)o{Rf0ONrN1535MF2{<Lq@5~gCr|<Oe5K600mLY_VSMUn6|}-9
zrvXfhmbjUUd!(UcgZMqso09IAY-k~$|HgcFwBy!bnrV6cClwD2RWn;ZeZ8oRYGcGo
zIti<Aiung4t#bF{W56d3566%{*7iMqcmJMWK&S;Vv{XeNt|9u6iAPzp-TA$xV(q>K
z=m~~b^@2vtLo>r!A+gQ#a@2zqa6tuxDRMD_@&nLqlOA9HU1@BEx3||cp9d3Tf#sn#
zo$N7)==Ub2faQ#*gs*#87I_l@S+>`7TcrH<l%kFg;~$18C*c8IDR&yS=XZrE+)eTK
zh&TB~WOhD42GrT(^veOIw&x!d71r#6bDt3oWUJ7@{R5=$gP8gg?sHZ*nqiTsB{H^u
zffEFy?du%Y!-^T}XGC+w>#}?G%ZBhp@WPV-SPym7al*S|;~3UKuh<_8{Mv^?M4)ov
zz1sxHQ=-uhrf(GoHm70Whk*0C8L^I-hsuf3K*d`d-Qq(2QJ@7CKvdm)gmqFG>3;^d
zR}w10PkW%jX9VLTI?UR9J5x7K+NqWjRohcnn_pf4N@WkVZ3t&{8VwC*93*|A)Gr9p
zJz7>OQ&~lgMU1p9x&6~QfAU_W%5js$EV8Wdhe2!oS1UK_{1Gg3Y<7i*Ow7uHlPf{&
z?DTIj*vJvfpkLff#?aaET}g2>QbKi0pDUu8GG0vaG(NBGk@+V!53>s6#RYYd71%A^
zjr!$S|25_LK`RE=aD6|mi@c?vVj>2^M<NkuuuwsCk4qgF3Rg@jkA}g`t<~WEt^W)f
z?na*+?%#LpbF0UxM@@ngq3y09rYRBjs_~Rv`D&%1<>>K@rLreHIRTO>a$)435#Eki
zuJonicxI`^#L3XG?Tat)pUgX2d;Ldo=VewEAEr$GmIbeq6|u44nY<TVOL8V)xBB;E
zW0JbJwH*a!DRdvCWh<#O{!3)H+S7gLCcjx3#`1AuqgGA_;VN}z?>UgKHpDYV9P{LU
zxGwu05{&n58wggddmOa1Stou*C(8IiKHhWk1^WZ=x}Q#n1PZs1(55t!ysGyb#xKCL
zJ1ih%Rh~9rhh)Xk5%a9!m!++*r6oCcN9T*`kJUDU9J`T-Majv--R9ZBehXqUv%I8>
zph}=x5u6RpHU!%h6nS?HI0QUGB3%<4i?BhA3R_^=i_doi8Pt~cZn_4>3&&g5^Ynw*
zj_5ZfZsjUH+X1}7UN~E$LFzn%rF^6go(`VZwo;YU<_%jG{7!H>K#G=jz{DL9#|D4&
z^CE_pXu>@1X+#ndN2^y8@&vD6_&&71$k~ug#PiEIudv!e0#t~qR9~dxdpg}8o7AiL
zD9+D_e0$unpBrG`Ew3;hv-NU>T#fs~+*Ik{!jiGL2J0+R(vGEC>e2cO>2;bxi0RaR
z8$Z@mQcmj+9sPQ5Fw%i;^u(k7`St5CBO(RRW9Sm`k|DA?GlwJ~uZURYyzy_q02O-i
zUn~EaYDoNxCfV2pbk~B?<k-a9!ikHEdJ`aq^r3NJVQhTwB)$4eAGAa*YR_!mqWp5W
z_NijQD})kEk-uRz7&@%P=;YcoA&U=;4=i8`N5JB4ggdhhR)1}rqb0zDbT%x4vtCEn
z!_^yO%ahNm@ts9V1L?JnUw#-Ie41h4iv=`|hPemtj&ZiAfb3&D?5flW<U>$n`rQ1(
za&6%lQR@OXp;=7tVHIN5JN9r@`jPK|(Z7p!ytnXq-&e$<0U!bYV;_f(w7BRKgdD3A
zyQan<*-4c`EY^6+!Urk_5>%Kv4`J!m_V=S5w!9Qmzj&}>V!soIAg>GVeL>NMFaK9o
zYVqHRkudA9;uYb=3+^4CW!2S9NybRiui5vReg>?bDNbaZ98_%B_OV?Zwkm?#O%M7-
z56-c4A66!H=C%1yXwr#ZGUi|`ucK;}CEYg#HR8eyY@Xm$!n_-b)p@zGFd;GIexvz@
z8Qw8+XE#uoW|Fib@yQ9v)Z;eUt(GvJdj(Al3OO%BYUUhn%;rrzG2Jd`BH<<YnJ`^N
z;?6uMiTZ*X4GM-eQ9l=pcf@>Mb&+$n#S|$6+JT$|g;bby1eu`UYqgA1L4Hx$&Y`ov
z0te(6avR(_zI5PFGxF3JG!NlDGHJ7TX&_Q3@+joeQXD76zlMiP!FIs_%>gV!AtNCg
zVWyo<(Tsa^=$P;m{iJ~0a}I`EEC@%EzFKGBFXLAwfbNuYCC|;vp<67A6vF-z2@0h}
zcPBO^Xh2oZA@m}4XclxYMp8}JSk_SUL99oh)F06ou{6)YrWWokIF)5xZrfJGv3}0}
z8P1-_2O02POX<#IU@vI!nT|2M0l^GpQ`HN{sFtzJPaFU*0w-|lEcJ?5T%v0dnG#<c
z&le}l5PSYk#PQh&RI#Bv@PTflSp^LwB2Plh_N@5-tmyg9_r{G!)*@cBaezkx`XC)T
z4kb4L2D}^!QY{zUP+aM(>uN1zZ5<W#0#GujVov(Z=rlSiZt>yc!l{txLrbFP#CBb!
z>ql7!8#a9`{KXp_zoRG3L^cR^zf@hS{`yH1=+WdGFxf(|yn(ummu*-#y-pp3I3WJ!
z@-S@hGzm*jq$l(J<9BP96UrN(+;oF1hqp~yl**?=_mge_+tkG~PE_y4ILox?s&z!O
zZbA=i3mm2K%A2Aj5%Q{Z)zF1~80<U{Fxo_8sb=jz5@%1{YtA{?xN}SFTKPSxY0*$9
z!O#@t#QxS#Vb(PUvIl$xm4%6FUJh!FYQ~9Tt;uhoLTn|Wv($(mx+$o{=t}?{YTd4O
zCY{aE0!u8mkgPp<x3tm)kn<=ON<C3sgNDnkUKU#JFF&|1&9`r?TV%V}&erdtt>g<A
z^DM((VrOyX_9CN&Hsp574F$!(y~~qwzZ*17)}U0hYD@l~7GOCoF`6=`g9aZax@ng=
zB>uVD!Hi@yBtyh~A6qA^#nnWu*zRsn+XN7B{ioyR#Rjf?k&b;8<TwdG(YRX4v19bk
zYsH!1N}03za-Xu{cG^hsN#;v<={gibL`^S|h`ZVp70>E!*IDyU9fRUhFP?+g4l7DX
zf+8jAdJ|XQpq|bm<k#G<B+C$ToCc9!W4GBQZSEAA<cr7032}QJ_1x%0GZ6E&>WFGw
zVwDUkwr%W0X#KANtd?*7>)>y<$rBWC;N!sP6mlJ>mqg2b-*IL7A~X-`O6f|@MAMQ>
zZqUaBN3|h+8Jod}y@2C?$ZSB3NamkYj0i0jh)|mxUh4xdJVe>+zae(GNL|k{xc}Z6
zVk!M>Uru<s6NPqN!fAp|5;klasaol924v*7IkB40z_&fs95T4qO!&alt+V}5FokK*
zl3T^S-Tr4avwiT~H7ZO#u+pc~Hk{+pQ1Oj07Bx`SO!+Y+@09}kk})D#WtvC?Bj+ns
z8=WA&9v{Mve<wTY&iHzz>Oj<%0ZUZ#*MJoWf3eib<_`&eD_MK{tor@^I)zl4UKxYp
zZ&y@Q)o9e}IZCRd3=&q6VOuwvMth%F&{6`gZl5iUEVx|c4ZE7?$9a#V>Cr#|({k*|
zT(q4=3LAC|8<-RIA+w5@A0pYS$q9@Bb4?wVTrVs^Q1n0H1NOs3xD4&2aR%W7#%-I1
z3*T8?{1LXH%c>stcAtQl3h$Vxz2j5i)Q#Dqi?^{X!uq&Ra^SaHN*guDOxgM<<deQ=
zNWZ(Ywy04<ZWZ;jl!fOp9)<d?Ot_4p%muc~+KeV)dYeMnp7%6(_b8Zr>ClS`y_I@C
z@Nv@8V#>DAXSP7DIDfJ++ahj&CRPH5*h-w0LqlB-7%{p3vP3eY?zLHm0a@~Qgor6~
z5<z7A43{lgt`!gF)TxI_7_!s{rNmBWAxl}gZbfSd8?E4=BJ<mMjeXy0EDvPL5vR=e
zVaeFWGY~>o{DTz0bw{m>?=FKhP^7M*cD{Up{zb}4+8)1v1ILa3gL4E{Fup-8@xd4d
zY$eA~n)7g_1%taW$QP-BTuu8cRY8r30;4U$xaq%aoj(cFKRcw(!rw=vj~VWoGQGRS
z+CFaxYLsmlljbt;x}7U*5r`}VXpnD7SylMoG8zJ!sw5r7pN>L?+ug+{$+F6OCb7zf
z?X-;5xO-eZ?lm<zPx|y3XyL&DCx5od<F()wn_voHa$u;zpq61|u^Fog76WR(#K~r_
zC@uw6e@SOBJHZ6*O4p|lJ$r!%JSjEY2TEFW9nFO%5nc;6F+!qXr*#jL99S6BX!8XM
zi-~$1CLe;bwK>60GC)SkuPJlGmgurAmg+Wb1fH&G3HhXO*xGzcaCH)SbrY6z96OOD
z)Dvv_j*S~tItfi#m;reaG=nF{kj=>^-qmM*9KssS-i^+X+IT4QZ(88ZrD=5Z-0j52
z6^5AGYTk3+v-ZTAS>6VaI9Q<Iu&^?>eyv`F|7{_kr_DfCfNIapts-qd$~tM{%4K1(
z+HIH^gQ$cK-^rJPMppx2+U8`kX?GVB9a{^k`iBGdCq~?h8o-OQTNX<vMdsxmTkh0?
zJiuDLH{c|>o0Wbwam1fBvd;f07C!?&hAdHE^*||6S3m9uIv$#z{VKJ3!21<2f;>I~
zqn<+gZ00II;g9&d@nKqSV0Xr*<bYNpbbS^7e%6j{V~#U6+Kg)7w8R+?a#gw?D+I-B
z+o53oi76*2c67yIlw?leWD7i48*#Pr;cDR)Mwj-sr@%&^4Uv5@9%tnA7)zpQriA;x
z86Yy)IZJ!z=)c)1)HW%vBmBg2BA?_t#l1Cynx$eR{BI$wf9VD!f><g@sWjxjo&Z#<
z6E>RigAeQRAJcK=p%%h9dwaE(iqKB#%64p-X)N}S?NtVrrSCrate^xD5D|(rl=$sT
zQk#}B?kVF0lRBjMv?P;iVd~%GHuPBizrnW`jA)0>hyB&Aw8-Eb*LF`zN~2e>0#@mV
zxGJgVo7qn-BIihU=U2W#QW|(F;S0OtBOxVEFz6fh!PW!n@0V#Pf5e`=p&SRWZA2)p
zPP%4K-Yt*|1LA*L^o_xP+Q2#hBcO4+j_?RT10eek>)XtGRHQlZ5and9U$urq3UOS&
z*litjGT{U>U6S+x31eXf9>C6E8zS~S2Jb*a!0LteQBaG{lb)*7_xI2UX^;`p(7b6K
znOI^P=B~azjfdWc>7yF+#}XAal!JLICSj29mNl)ilbKA&mU5QgMfKp}Z#bX97X48Z
zTQrc<vEiv#gJam6JXT*$qsL#0;6}$4De?5pZf=mz8VsYL0JS7F9NT*AHn8gfhYXx8
zOTf3Mq~V6;#96W2-iRu^{uR!j?R_gBRtxu-@%0}Bbgl!K+=7%IHW)WD@cp3zJGd}8
z61wJHt4@Qv8DXKl+ulzbHSxR?!H2y|@R%cy{rhMpc;iOK;_5x)cUneBCIwmuTij=4
z>#VArKFf*U^2L{Ny+1{nKs(_OsxjS%5Q9)frTdfa0#uBmN6NKXyhSJf4F0BO^X+7-
zZFnpTeMSEpeY0!>xvt>Uuyc%O{ioJsh#<>4Y!B|}4-1Z4NAM@83{yp#336N0li?;D
zl0AS_@owkW>{!+ynFvE`1@T8@F=#{#V~w6<DKe!nx-sz|8t%eHlL_k}h{RREcK&$c
z_;9$K@b4f8xWyHHB7?5nn6SU#dss;+gQrGv_8KWkVGG0L<f)uSxkjY%VaGMyHG(FO
zDMkTlunxSKn^6Lc5J-Y{`i~2qft_3R<2jg?g?-M%1w_u^zm(EgB9}q?0Ix{QFo(TC
zl%={flMrsQ>fCGR#{2T=3@mGg*YU&VAzFwTF_+Gp2yIL+lPzXngee#?U@&r(0IIp{
z&G9v3o_FxJ_Gz>uZ&|ymuv7r57BzpKBwHtuLr}df*VaZxTYLERiKU}a321K|#-ep}
znqYq5OOXf@GEY~^hfy?RX^r&yZ(#~RJZJz<keLKUm0F=X)fHPgh;oE;r||}{6CE$u
z?)1mUt65SSZf8Ym^Hx@!v_gZ#d>ew+0#?Snz1-?QKc_F`SrFt`(#Vlk@Bt<MHUz6Z
z1=^kl{z0>y--5S#_QP2=Q|f#Htlh%YwM(oz%z5zUyDzji_)F`1JN&FtyBFz;@^lFS
zXXJ9^kJ&HSa@K>)KmjVzUugE-?Qfok=O@TfANK>eCfGBMUNO(L<kUAJyFW!kG$Opp
zvvcoAm7=ASh~Hz;O2;Hdi^Cf|Jq=NN0Us%z-<~Mj@q(UXL#>8H1p5G!QUp|L$u3aJ
zv_HKeS^S>8kDMSJugv&qpQzpakba=ww{wv|xFE~X=wcwELO*Dx_5XGWt{|N)ljcKQ
z!Cx$`oGnvtgzQ)!%$-)!W;K$DMDqj2r`SPu%DL8SBt?ChNFzoMlGVkGw(CC`US&2|
zu2eU2w7H#iw7*FY5RNfq?H)~C&Z=OFFodUYyXPnY(Df&->#&bd_rhjfknU~LX&kBl
zj)v;E-rU&l1u_TUsT5LJBG=4u!q&e+E9w#-zt#dzimq7ae_oM6k?~I?D#<$OAlr-J
zHzc`c89oY@83?W7dT)-9ZpDKe@0Xle1;bn`NMjjW+^0Zes;$4S{#=3%U>w2lUuhFz
zA4TiG?uLFmt_7A!pJ!p;y!cu46|3A+?QOeV3wjst`#<`jfmV5=ZM&*8*`jNW<_uKT
ztHIc`eUmQt&46?%sg({Q=w=sn4I4qkZ?u$f2@`MPschr>omfA5&@@IrD3aF{*n<R;
zLg}V`if&X={9009;zV)7b!ztqAWxi}jIwEP$b(s7TEVY4af(g+OtR&mqD``Ip;?iK
z1)Yh_pd_GT<2DmE`a9xXgfFv^Eq+asP&gq6gur|}5nn)fZoppuD*xxvd(Mwzbqx31
z`SJjvd-kG;70D`cA#1<3p}yg=PGX7jUw~OpdULz4873IkAK0R!PN?~svGxON(r-FD
znw|6bEA=w=v_jy_f_d%i%%D@&)&ehIKgz@hh`OI~t!Ij#U{Zj-iuCu;jh!i6+q$Bh
z&nD()hr{s$1)5WxA_vhFugbN*SFfk^%FPsK9%DU+ptkIzx@Cig*3n}VmJ#%!+~irn
zse%(0=Zc6^5uSrfJpIaZef=r^+M-z%95xyW*rxVjn~cc0eE0LkO}2cD+<vO4yN$VT
z%>B^Z`xfyz59n&8U!~DzEGR4U>&CEO<tAhPk^(EP-(*gu{y$`1;)}PNo~FQdsY8Ru
zu9kaj5(oYJM4!`RwpaphsM>-Hd#h7luZ7Z$9kZK44RG&fxlPH1y>;2936HryeV><!
zk{gf>GV2iV>Bn+)(`XnpQ#E&EW(%p{&Q3w8THD#-QjqgV{B%6hk<K$4i^IKNqcE3~
z%7PbtLX0(KxXwXe%vC^|jZi|;iV5)$Uw!_SHok%~lLQdaqbw_OA_F0@5hs|$a*Sq#
zu@-AY0$^>yjTQi0IB#)iR!<)SdrDmW#V940N1>6cdc}D$;+S92w2HG;Ugg0BBJkxN
zk*L%4Q*~*{ZWyh@iTxT|CBa+Ek3yS%jLcopwZiI{jh8;JuN)uT$&N7QNtu;_YysZ%
zWmOHP0mh~bm3I<jj1MB``}M_K8+4zqDUG~`{Nz<Noi#Df3>5GKvhqUMS6L6b)pdgQ
z-X<4gJi(KD;Xgu&a*mY(&45w=nU-a&t{Cp4kkw7l<a$04m*{*<(IyZc5o5Y)UC}16
z6;b1~9s9-x&y}VH9fi7;KO?_Cn$eOJ7x*4Do$pp)vIg$c__lA5qyjl-+m<nye|aQ&
z9L+T4*uUTY_HrorPspZY%U`;M(NC)xY62cuv0|9D0(y40#TU{?7uq+W8})=7;@1J=
zDY^uGs``Vd)U#)auJpxj@uc*;@9rF<s%^r4t)pdbE_rW~{43~xQ&6rm=iq`_ZskVd
z;L0y80OQA%*CkzQNI+C2%n-0r+03wIU{j2-%HCr=Q<-hEu+d<-FoF8+%COa4wE|^v
zfhoF>A)`e5qV()YT)+gK@KR0Z4AS<DU|_n;vbFJoU}S3{Fq>)XJj#c8Nt*k>UQozn
z`0n(={$FV7Z@z*bih+|bh$gP{51S`d%mZJ9wF1^^1X!WO5mYv7LoQVw$|)}Gs9t2=
z-OOJ!?X!lNEXJgKxr6#$Mv8?dM`RVfu4lkgU2(GDg0fUPf@uF;`*I{YF}95&xiNUU
zG~K5@q*g&5GdfcA8$32VH>OdnvwNh{;o>p|b|vPrMX#?|h548wEZnJTFR0O^w=Hyx
zZb*k<9XRw{68N?m{3HUt179Y%t^mi&tB<E_Pk*^<E)^9M<D+^So&d+MR7pDz-;^1^
zZ1eg@hM=3p=oTnni_JVajccKLd$hj%QeU<>SOL|w(<Xm)JOS!GUH>%&OU_BlpPOMJ
zRAJ!5N2k&!L+|-ch=sSt`WD<T2`~1{1x&zCEmMO4V9Z(pii~VSCNS}C6AbrRI$kB;
zn=xEV#Q#FoqspV*7IqL9?XzgF|Bp81=r4@b>Qfy7r=p7ywMajhY}||ydiCs$tB5@Z
z;ySD)tvxL*Ebdu}q}$DZu7_Ht$YK}~GUFYZGEDDixyyHJGy&#QY%J#FL22XxT{}6V
zdU@~aXp4wDVZ7jc_kKSZTd5@QB&bGPNkcVV>(`W!lugqLN>s}wQKQCSh?7zz*HTUL
z5VF-OLFMSAktMOFI1h)ApuQzlVIc8S34@zP50>Jb#75J8q*&~clc;67;ddN=66oNp
zvu%{LUU1WYeUT97al9XM+fTh(;yU1%`0(AH?Ah1yMtxr^Ni$O^yyOh7!@8lV)`u$e
zJM&0gNXdolKok3bxRv92Qx>bNk{Uif)!oOp#7p$IUrJhKF9)wD$O2zRUgorJ;zX*q
zvqhVcqu9Mc{C8}(IG;Z3z{l{bC+qQe%{225Y{JRY@Tnyy((3N(e)3<ZK3EI%_Geu!
z7C1v_c+d(4c(aV(LZ`_>Hm5lJLBHLXG_@0ZDh`mL<xcVR{$EX39uH;Pg=cu9vQtBi
z;WLzEkL;4Nyn3@`U$c}YV@7ty5@N`fUD-ku6WJNYI<_K{Xl#Q)wrJ4UHGE^<?>m3q
zzxz4Mb)9qW`;X^2Px^FYz6n!1qaUf#wYBb^V#P?s=xWJLl?;`<I?cuh?{WyAOCG$l
zg1oZ=ySAwe!93+C_4?as<>#9e27xCpDBXs=ZF{UJ_EnLT*x1;9wjVS2*(1VW&7L#=
zUt!GSrRA`3JXNj(tR&~6ut3)DTb7yZywj*=yh^#<$FdQ_xl~c5a8m_7qx?HX*eCn2
z`q9p>{ef^n#Pf9ywedc$Z~$9GJLrOh|Aeefm~oG*&YDYvRjo{voQF(~=&gmN+Ul-#
z%w0jt`UdusnS4o8v`HW_e(C}od9IDu^?V@Op0FcSAdbo+7u+~}S9p?|)>=6o`JpA$
zjVHTrHGA04c_t6)pdWyTScCe#5G@lO#AePT7Xrmiy>YyeubD5(SeNpZIMu1{<Hr7^
zejcKmGzdP7BqhS1ZtUY{iF<!U9~zMD3_03dhC*}l_TXZ7NstV`U>Ns+@{>YV`%oF{
zY3V4lYpQNQ>}C(fJ=7?s+Q|PCHyd$aK*Dz{3En6XBB=sM;x#`8A6(0Y*hz&;gY~2<
zj4j_}5&G|T$-HGvy`J~v(){kXNvEbMeYCGQ+oXFGyyPC@X=tKBiRQZpV=o8S#sK?F
zE)Q!C$H&IjLNuW?@%9Ye|HL6G-S7~b+@VPlBH3T4=|6+YNQcPiCx8}-Z|xGS;t77(
zg}{Nxo9e;5D}QzIe-)BR038X%*h@GGNYnwG5_}4|)XbfhSA=y@*Q;&gKD8hALiA#j
zRYIQEjF=D#fW@2>g`Qu1S4aeo{Sf(PQt04PEI~L>FuSMK@KWSpO7JXnx+{hfq%ae{
zv&DQe>w1%VgqV6UR{FOTpZ}z%bnlno2|`1W-X+$8m}B?ifXg)&X1rX0f3Vsj!Q8KD
z;|#Axvz?o{(MU{m8N{MSm||RJFfz}WHr*)jr$V;yS1A6D$N=3Vf2Xt5d-;2SU|IHx
z;T3=>ZQc<@@#D9(cCWd8pQHR^>cS_S2Nj6m7^3<uPYeBCTN=%R<Oef7ZTcPP7ZliR
zi|y8pszLiL{&HU0KZ6pnPp1q@+2bLC>5bxyMC02ne54wQ4oN}L1O|stL1*W%O};Z9
z2Ns2_Y<VTW>U%U@%DV@7=3kOq(_&J_Q+=a@Ekg5waN~2$*QwFxaYl|W-#!v@e3?GA
z{p~VWv1;>2^Lp$@xV7l(p*bQ6>Vj|XlXl#db`?MdnqT3fNs6KzHG0)1G8#qvBb2)b
zv@yGgVP{Imjp#Up)m5ImkQBfMR?2^61@4%31+sczkZ{Y{$Q_+58$c5NRSt49-!a}5
zHTXprrz8bY>KSKwUgG({$Iu);f-D|W-`e6~Y&G>5@C>KcQ<p-{?sIx&UH8U$WJ*dC
zn5=KN|8e)UQ4(JpWM~R<u_v1p4flNJ6edx);$yV?mVs(Fnw;0f=g4ss)zZe?S?_`U
zKf7Pt!<Q?oCmK!DLM+rTktc0e5y1DN%Jm{6;?+7AAjRR6yo~e5?tE>LLj&<2fQ9pm
zuF|+NYs6x(58$5_&d&{cESXl(Fkj^WteO38*Y$1SpoDc^<z7XyHizHjKLs0n)`^<K
z6e)Q8bcs7oCEpTgG&tP3`7)5JH>5{x_#hzw%iWwIVw<kQZm>60-;!hgHf|x$0J|_+
zc2IA$)|0+cVtDd1{Lh@$?o@@Zr{5Ty%mml4c#JpnSXZ`KT*9CWG<;v0_NV%OFEE)X
z!5mWFNIg$NA2G>We?R=Lf%1hd3hp^<f6Lg*ivCel7+3qY>p!OEZ5rRsTUj0)uaw>_
zie~vqu;i*z`6r^X|8ffB$(du{*Pw^D4iwu1{>LbKYX;G(m>1-}bero%RE+v_ig@{p
z{-VXsoyeZbY{iLEMu|KL-}4OO%l3YgZQ}-;lvfiDqluvtph${1CQ*0e^+X2K93*!x
z<Dz`SowF9|)t1AP0XBpQWcXkM(eMMAioy5s#J=u*BJ5=-WKLLLKwrVBvB7~HIcRD;
z?Q^ygM(&pVkdW^;p6G?eolvU8TDNZ_67T8Udpdk5av`B4YbFm?&I<aSnUOr@UA~H+
zJ(GClZmL(P&vSkE0*~*M`Mdr0QR_Ryc&q+d%gZG`TR|>k0Y<Ie!aKH6k7HrJne#$o
zdxdQ<6%ac6sOA9iWm+}>J)y0-$9FCDbI)2C=d@%%COKeF>!`X1Nkz5qj|hhQZ>*a(
zua5sb21@sesUZ82$ZM0xSR5qSH8$3ENVDOfksqmYuE*q^#(^eVr0{7|8zXM>mLg<p
znfb$$9XS99=E&>xb!g45TF6gNyo5(ooy6|dxnNXhwa!eAi2rVCK<TwZ)!|VsDD*@T
zC744oBduv%0*7bbZO=eoKh^m=-gnzs_aQK!Uy^u$QB|}U`57ue4NC}M+yFi)Pp6$}
zv{UV;Pq8IyR540o<JS_e`t29XIoE>QwT4^rus*8Bb01^-7eC7$v6CON<g0}qns7iY
z^t5R5=qBVOZ9$ThQyh(K3&c0I2*wKVs-QL)FaKZf4zG|DOO#|hRnM#ChZ@iV*Lr9D
zSJBF^(iKDQqed<iPdS#R`-p2Z!Fe_b_ajI8WZ}rwl>4+zSfT9$x1-qyy5?3z-=TdE
z>Pd6z@GwCyz}FC?)3|78MM<(m`7{>tI(Ngsg@?TtXR}(kP^z)5dQON`Y&%$x7}-+F
z&dr4(+KCMrGthn^i8poH(J;JqOv0Oj=r(9CRC@cK4RNglc;R{W)_1%17O>*nd*BAa
z@yaK0bZl&G1YlyUQWC7d7so#yM|b9XmaOPM*cKHFPU}9FQZqL*<4PIejS!9rosztj
z_E-%`-q6@={!I4}Ji#IuI`^3Lm{b<+hdB8&CHe)X(HlmxOWI(bDgVELRt6gdSFaRS
zpc8@{e%Seft<{b5s6{NeG2`y7y{lVJY1gkoy&u2spd^KlP3PBk)Y5zD<I@0Az|$Nj
z`zY6l+71g4K|lQIp@Pp;a_wvtHOY`MtvvHzb{DM)mvVJ)Ji`Wn-8U3o9K)RuqdPg%
zwnJAWpwKK2fj|Kzn3vLD$m7vjfj?U}bJFeT>_({`t_;g{Tq4cVRIAJSncOtri-z9k
zX=2IlonXeYeT`!|^?@tpF?9cdYn3SDHPxsVX)2~%80vkn^bFUefr!8<Z*2}FQ^|T~
z+W+N@5SN_q#&Du;4VtF(AbZsh?Z{z`%<Vb-x8!n|;LO}+2B)^Q;D1MyI2OqnGMCe`
zGv_nJfO(ydtnnfOXa9T|A9hI6%g~|wxP#qXVS$h~-K^wyUX@vUV*Pm|LOZ+Uy-*8{
zCNbTrrpj~|C;E#}B{E8Q&-baZv4F4g>q?tYfn;TWVwxAsry_KIrBJu-<Au|$R-y(W
zf4Twt1;aI6qpqb-67>`9MAkbec+|<&4oI(EKmfqTOp~tE3h%U8q8wEVHSQ3CDvsXb
zT=>ue;Q%Gi`439+C(Ek(@0tjzz57k)00t|5vp?#F=~r#rPKtwy`(Mo@2FF$H8#ttu
zU!x=AVbz`4MbfNvEYf~-_Yy#(M;XzpoNFSRV6YviMjODlO}hoIl;5ZC^%m1TUg?*R
zVc~CG$x8Z#befd}{mLXciVm^k{I%n!*rpPzA>+}tjPKE}=?~Og&V8KMshrVv4+>rD
z_n>i_;OOcV{%P)h_mHV`@Y0V3j^q1R=yjL!@GS1(j~+@#5a|ffuo@xCAwT(Rw?Z~i
z^)45Dhoq{0SOJ2G4pnp*I50GsMPEFHBE_TZ?7%YXRjmvyEpy|7-!^--9m<3Fsg>aF
zp}DZOKY4g_@ahB)ie16%#=p?5<s*M!1Q0j)cOt1Lb>Sc0gQjX<dUD8Od!i6HF<xhe
z@tBM;$gIn_f&-Y-l%DHcm~;l4^HJyQ--|%K6Mx)h31rMx%znDyO2)cuUhWkqAHP0h
zAJAyQ9JKh|LNL6lxQ1T9{fR#}3m{|$>BP)|-63hLj|cqV3%M=vxu;eGaEdlt!15Bm
ziN63s4u)QE?lAwXoGeajN;K*3U2K32IrLp%ivJrZAEErlU1vmCGNDvi-+@rLs3WJO
zkIF=Ohe}{yaa-fI#z$?jbf}?YeH^!TqcFp=#7}4p^%OrBYdIb>G$GzdUSj;OGdvMS
z$sn+cf}`bhv7*dX9lOtdxl9RCwShr%&GcOP0F17^z{Fch%LKyviD7)ue;)V~m)Idu
zg^uc*ZMcry${g1vf`74Baa@bD0`s#e{w0B27y0wa3Kn{9pv=0%yB_7L7W6Xu(R<@^
zZ*xEe8Szujq`vn{qAb&W2UFQz^`=)-=72s$n>u-GSOUYcJf{Mq*1S0sBmsNTeQ(o<
zLUO(x=`*rYFn&i_ewWXPvAjdcAsvFJM|gvKt3)O+`>lG079oYz?O|1A_%QIpNDrTF
zm0i3y-@+nz2n@0yetTt89c`S@?3_h76T>dfXu5aHMO*--y%AV7H}Cgut=GYEYDIx{
zDQ{FA|HZm&Y`&}=Ig7P-p(hBJl_9+j`Kq>ime$Ba_-PEr`eP~XxXQTx$wZmj`O+)|
zuQQQ5l{1rlxzz>kEZ!glX9K}{6z1kVV<q6yT1KV-0AN5*OViZZa{3Ece267m-`1<G
zsI$jzl!w>$qY?XZ=oL`cmU#8oY01;L!1txgd_fxTXSU)#-gnVH1ZN?gaXx+4XsQU-
z!QmWQL!=^FK;Q^XmAM{Nl2>BYFqynC_z9jStx;6ir%i`jOG_b}(NMsxu6Fk#+c`LV
z;nw!g3}P?O>?62hH<2LQt+V;Yk)Rm!6#6}JQwz(7Mt-<z5wKvLVTq~q+r(N2phd<S
wb#`L1gw10=1a*!yr@bxjPAo}9P}ffwFgTmJ6MrdHT37%*Z3C^!I}VZm1@2Z^Hvj+t

literal 0
HcmV?d00001

-- 
GitLab


From 3b595218d052dc4982f341cb3b9a776bac98141a Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 22 Sep 2022 11:43:32 +0200
Subject: [PATCH 34/56] New CMake & moving HepMC3 & DDG4 to ExtLibs

---
 .gitlab-ci.yml                                |   3 +-
 CMakeLists.txt                                | 118 +++----
 DD4hepDDG4Ext/CMakeLists.txt                  |  78 -----
 DD4hepDDG4Ext/dd4hepddg4_toolchain.cmake      |  41 ---
 Defaults/CMakeLists.txt                       |  12 +-
 .../{ => include}/Defaults/HepMCAttributes.h  |   0
 Defaults/{ => include}/Defaults/Locations.h   |   0
 EDMdev/MCTruthToEDM/CMakeLists.txt            |  40 ++-
 .../LinkedParticleMCParticleLink.h            |   0
 .../{ => include}/MCTruthToEDM/MCTruthToEDM.h |   2 +-
 .../{ => include}/MCTruthToEDM/VertexType.h   |   2 +-
 .../CheckMCStructure.cpp                      |   0
 .../CheckMCStructure.h                        |   0
 .../MCTruthToEDMComp.cpp                      |   0
 .../src/{lib => Lib}/MCTruthToEDM.cpp         |   0
 .../src/{lib => Lib}/VertexType.cpp           |   0
 Gen/GenBeam/CMakeLists.txt                    |  38 +--
 .../{ => include}/GenBeam/IBeamInfoSvc.h      |   4 +-
 .../src/{ => Components}/BeamInfoSvc.cpp      |   0
 .../src/{ => Components}/BeamInfoSvc.h        |   0
 .../BeamSpotSmearVertexWithSvc.cpp            |   0
 .../BeamSpotSmearVertexWithSvc.h              |   0
 .../CollidingBeamsWithSvc.cpp                 |   0
 .../{ => Components}/CollidingBeamsWithSvc.h  |   6 +-
 .../FixedLuminosityWithSvc.cpp                |   0
 .../{ => Components}/FixedLuminosityWithSvc.h |   8 +-
 Gen/GenInterfaces/CMakeLists.txt              |  17 +-
 .../{ => include}/Event/GenFSRMTManager.h     |   0
 .../{ => include}/GenInterfaces/IBeamTool.h   |   0
 .../GenInterfaces/ICounterLogFile.h           |   0
 .../{ => include}/GenInterfaces/IDecayTool.h  |   0
 .../GenInterfaces/IFullGenEventCutTool.h      |   0
 .../{ => include}/GenInterfaces/IGenCutTool.h |   0
 .../{ => include}/GenInterfaces/IPileUpTool.h |   0
 .../GenInterfaces/IProductionTool.h           |   0
 .../GenInterfaces/ISampleGenerationTool.h     |   0
 .../GenInterfaces/IVertexSmearingTool.h       |   0
 Gen/Generators/CMakeLists.txt                 |  99 ++++--
 .../Generators/ExternalGenerator.h            |   4 +-
 .../{ => include}/Generators/F77Utils.h       |   0
 .../{ => include}/Generators/GenCounters.h    |   0
 .../{ => include}/Generators/Generation.h     |   0
 .../{ => include}/Generators/HepMCUtils.h     |   0
 .../Generators/LHAPDFCommonBlocks.h           |   0
 .../{ => include}/Generators/LbPhotos.h       |   0
 .../{ => include}/Generators/LbTaula.h        |   0
 .../{ => include}/Generators/LhaPdf.h         |   0
 .../{ => include}/Generators/Scale.h          |   0
 .../{ => include}/Generators/Signal.h         |   4 +-
 .../Generators/StreamForGenerator.h           |   0
 .../{ => include}/Generators/StringParse.h    |   0
 .../AsymmetricCollidingBeams.cpp              |   0
 .../AsymmetricCollidingBeams.h                |   0
 .../BeamSpotMarkovChainSampleVertex.cpp       |   0
 .../BeamSpotMarkovChainSampleVertex.h         |   0
 .../BeamSpotSmearVertex.cpp                   |   0
 .../BeamSpotSmearVertex.h                     |   4 +-
 .../CollidingBeams.cpp                        |   0
 .../CollidingBeams.h                          |   4 +-
 .../FixedLuminosity.cpp                       |   0
 .../FixedLuminosity.h                         |   8 +-
 .../FixedLuminosityForRareProcess.cpp         |   0
 .../FixedLuminosityForRareProcess.h           |   0
 .../FixedLuminosityForSpillOver.cpp           |   0
 .../FixedLuminosityForSpillOver.h             |   8 +-
 .../FixedNInteractions.cpp                    |   0
 .../FixedNInteractions.h                      |   6 +-
 .../{component => Components}/FixedTarget.cpp |   0
 .../{component => Components}/FixedTarget.h   |   6 +-
 .../FlatSmearVertex.cpp                       |   0
 .../FlatSmearVertex.h                         |   0
 .../FlatZSmearVertex.cpp                      |   0
 .../FlatZSmearVertex.h                        |   0
 .../GenerationComp.cpp                        |   0
 .../{component => Components}/HepMCWriter.cpp |   0
 .../HistoSmearVertex.cpp                      |   0
 .../HistoSmearVertex.h                        |   0
 .../{component => Components}/Inclusive.cpp   |   0
 .../src/{component => Components}/Inclusive.h |   0
 .../MergedEventsFilter.cpp                    |   0
 .../MergedEventsFilter.h                      |   0
 .../{component => Components}/MinimumBias.cpp |   0
 .../{component => Components}/MinimumBias.h   |   0
 .../PoissonPileUp.cpp                         |   0
 .../{component => Components}/PoissonPileUp.h |   0
 .../ReadHepMCAsciiFile.cpp                    |  36 +-
 .../SaveSignalBInformation.cpp                |   0
 .../SaveSignalBInformation.h                  |   0
 .../SignalForcedFragmentation.cpp             |   0
 .../SignalForcedFragmentation.h               |   0
 .../{component => Components}/SignalPlain.cpp |   0
 .../{component => Components}/SignalPlain.h   |   0
 .../SignalRepeatedHadronization.cpp           |   0
 .../SignalRepeatedHadronization.h             |   0
 .../StandAloneDecayTool.cpp                   |   0
 .../StandAloneDecayTool.h                     |   0
 .../UniformSmearVertex.cpp                    |   0
 .../UniformSmearVertex.h                      |   4 +-
 .../VariableLuminosity.cpp                    |   0
 .../VariableLuminosity.h                      |   8 +-
 .../XmlCounterLogFile.cpp                     |   0
 .../XmlCounterLogFile.h                       |  20 +-
 .../not_yet_ported/Special.cpp                |   0
 .../not_yet_ported/Special.h                  |   0
 .../scrapyard/ApplyPhotos.cpp                 |   0
 .../scrapyard/ApplyPhotos.h                   |   0
 .../scrapyard/RepeatDecay.cpp                 |   0
 .../scrapyard/RepeatDecay.h                   |   0
 Gen/LbPGuns/CMakeLists.txt                    |  47 ++-
 .../{ => include}/LbPGuns/IParticleGunTool.h  |   0
 .../src/{ => Components}/BeamShape.cpp        |   0
 Gen/LbPGuns/src/{ => Components}/BeamShape.h  |   6 +-
 Gen/LbPGuns/src/{ => Components}/Cosmics.cpp  |   0
 Gen/LbPGuns/src/{ => Components}/Cosmics.h    |   6 +-
 .../src/{ => Components}/FixedMomentum.cpp    |   0
 .../src/{ => Components}/FixedMomentum.h      |   6 +-
 .../src/{ => Components}/FlatNParticles.cpp   |   0
 .../src/{ => Components}/FlatNParticles.h     |   6 +-
 .../src/{ => Components}/FlatPtRapidity.cpp   |   0
 .../src/{ => Components}/FlatPtRapidity.h     |   6 +-
 .../src/{ => Components}/GaussianTheta.cpp    |   0
 .../src/{ => Components}/GaussianTheta.h      |   6 +-
 .../src/{ => Components}/GenericGun.cpp       |   0
 Gen/LbPGuns/src/{ => Components}/GenericGun.h |   6 +-
 .../src/{ => Components}/MaterialEval.cpp     |   0
 .../src/{ => Components}/MaterialEval.h       |   6 +-
 .../src/{ => Components}/MomentumRange.cpp    |   0
 .../src/{ => Components}/MomentumRange.h      |   6 +-
 .../src/{ => Components}/MomentumSpectrum.cpp |   0
 .../src/{ => Components}/MomentumSpectrum.h   |   6 +-
 .../src/{ => Components}/ParticleGun.cpp      |   0
 .../src/{ => Components}/ParticleGun.h        |   0
 Gen/LbPythia8/CMakeLists.txt                  |  85 ++---
 Gen/LbPythia8/{src => }/exec/convtest.cxx     |   0
 Gen/LbPythia8/{src => }/exec/minimal.cxx      |   2 +-
 .../LbPythia8/BeamToolForPythia8.h            |   0
 .../{ => include}/LbPythia8/LhcbHooks.h       |   0
 .../LbPythia8/Pythia8Production.h             |   2 +-
 .../LbPythia8/Pythia8ProductionMT.h           |   2 +-
 .../Pythia8ProductionFactory.cpp              |   0
 Gen/RndInit/CMakeLists.txt                    |  38 ++-
 .../{ => include}/RndInit/GenRndInit.h        |   0
 .../{ => include}/RndInit/IRndSeedingTool.h   |   0
 .../GenRndInitComp.cpp                        |   0
 .../SeedingTool.cpp                           |   0
 .../{components => Components}/SeedingTool.h  |   0
 Gen/RndInit/src/{lib => Lib}/GenRndInit.cpp   |   0
 HepMC3/CMakeLists.txt                         |  48 ---
 HepMC3/hepmc3_toolchain.cmake                 |  41 ---
 HepMCUser/CMakeLists.txt                      |  58 ++--
 .../HepMCUser/ParticleAttribute.h             |   6 +-
 HepMCUser/{ => include}/HepMCUser/Status.h    |   0
 .../HepMCUser/TemplateAttribute.h             |   0
 .../{ => include}/HepMCUser/VertexAttribute.h |   0
 HepMCUser/{ => include}/HepMCUser/typedefs.h  |   0
 .../HepMCUtils/CompareGenEvent.h              |   0
 .../{ => include}/HepMCUtils/HepMCUtils.h     |   0
 .../{ => include}/HepMCUtils/PrintDecayTree.h |   0
 .../{ => include}/HepMCUtils/Relatives.h      |   0
 .../src/{utils => Lib}/CompareGenEvent.cpp    |   0
 .../src/{utils => Lib}/PrintDecayTree.cpp     |   0
 HepMCUser/src/{utils => Lib}/Relatives.cpp    |   0
 Moni/GaussMonitor/CMakeLists.txt              |  34 +-
 .../src/{ => Components}/GaussGenUtil.cpp     |   0
 .../src/{ => Components}/GaussGenUtil.h       |   0
 .../src/{ => Components}/GenMonitorAlg.cpp    |   0
 .../src/{ => Components}/GenMonitorAlg.h      |   0
 .../src/{ => Components}/MCTruthMonitor.cpp   |   0
 .../src/{ => Components}/MCTruthMonitor.h     |   0
 NewRnd/CMakeLists.txt                         |  60 ++--
 NewRnd/{ => include}/NewRnd/RndAlgSeeder.h    |   0
 NewRnd/{ => include}/NewRnd/RndCommon.h       |   0
 NewRnd/{ => include}/NewRnd/RndGlobal.h       |   0
 .../{components => Components}/Engines.cpp    |   0
 NewRnd/src/{ => Lib}/RndAlgSeeder.cpp         |   0
 NewRnd/src/{ => Lib}/RndCommon.cpp            |   0
 NewRnd/src/{ => Lib}/RndGlobal.cpp            |   0
 Sim/ExternalDetector/CMakeLists.txt           |  52 +--
 .../{ => include}/ExternalDetector/Embedder.h |   0
 .../ExternalDetector/MaterialFactory.h        |   0
 Sim/Gaussino/CMakeLists.txt                   |  13 +-
 .../tests/scripts/pgun_reproducibility.sh     |   2 +-
 Sim/GiGaMT/CMakeLists.txt                     |  57 ++--
 .../GiGaMT/GiGaActionInitializer.h            |   0
 .../{ => include}/GiGaMT/GiGaException.h      |   0
 Sim/GiGaMT/{ => include}/GiGaMT/GiGaUtil.h    |   0
 .../{ => include}/GiGaMT/IGiGaMTSetUpSvc.h    |   4 +-
 Sim/GiGaMT/{ => include}/GiGaMT/IGiGaMTSvc.h  |   6 +-
 .../GiGaActionInitializer.cpp                 |   0
 .../{components => Components}/GiGaAlg.cpp    |   0
 .../src/{components => Components}/GiGaAlg.h  |   0
 .../src/{components => Components}/GiGaMT.cpp |   0
 .../src/{components => Components}/GiGaMT.h   |   0
 .../GiGaMTISetUpSvc.cpp                       |   0
 .../HepMC3ToMCTruthConverter.cpp              |   0
 .../HepMC3ToMCTruthConverter.h                |   0
 .../{components => Components}/SkipSimAlg.cpp |   2 +-
 .../{components => Components}/SkipSimAlg.h   |   0
 Sim/GiGaMTCore/CMakeLists.txt                 | 113 ++++---
 .../GiGaMTCoreCut/GaussinoG4UserLimits.h      |   0
 .../GiGaMTCoreDet/GaussHitBase.h              |   0
 .../GiGaMTCoreDet/GdmlDetectorConstruction.h  |   0
 .../GiGaMTDetectorConstruction.h              |   0
 .../GiGaMTCoreDet/IExternalDetectorEmbedder.h |   0
 .../GiGaMTCoreMessage/IGiGaMessage.h          |   0
 .../GiGaMTCoreRun}/Common.h                   |   0
 .../GiGaMTCoreRun}/DetTrackInfo.h             |   0
 .../GiGaMTCoreRun/G4EventProxy.h              |   0
 .../GiGaMTCoreRun/G4EventProxyAttribute.h     |   2 +-
 .../GiGaMTCoreRun}/G4TruthParticle.h          |   0
 .../GiGaMTCoreRun}/GaussinoEventInformation.h |   2 +-
 .../GaussinoPrimaryParticleInformation.h      |   0
 .../GiGaMTCoreRun}/GaussinoTrackInformation.h |   2 +-
 .../GiGaMTCoreRun/GiGaMTRunManager.h          |   0
 .../GiGaMTCoreRun/GiGaRunActionCommand.h      |   0
 .../GiGaMTCoreRun/GiGaWorkerPayload.h         |   2 +-
 .../GiGaMTCoreRun/GiGaWorkerPilot.h           |   2 +-
 .../GiGaMTCoreRun/GiGaWorkerRunManager.h      |   0
 .../GiGaMTCoreRun}/LinkedParticle.h           |   4 +-
 .../GiGaMTCoreRun}/LinkedParticleHelpers.h    |   2 +-
 .../GiGaMTCoreRun}/MCTruthAttribute.h         |   6 +-
 .../GiGaMTCoreRun}/MCTruthConverter.h         |   4 +-
 .../{ => include}/GiGaMTCoreRun/SimResults.h  |   2 +-
 .../GiGaMTCoreRun/SimResultsProxyAttribute.h  |   4 +-
 .../GiGaMTCoreRun}/TruthFlaggingTrackAction.h |   2 +-
 .../TruthFlaggingTrackAction.icpp             |   0
 .../GiGaMTCoreRun}/TruthStoringTrackAction.h  |   0
 .../GiGaMTCoreRun}/ZMaxPlane.h                |   0
 .../GiGaMTCoreUtils/GiGaMTUtils.h             |   0
 Sim/GiGaMTCore/src/{truth => Lib}/Common.cpp  |   2 +-
 .../src/{truth => Lib}/ConverterInfo.cpp      |   0
 .../src/{truth => Lib}/ConverterInfo.h        |   2 +-
 .../src/{run => Lib}/G4EventProxy.cpp         |   0
 .../{run => Lib}/G4EventProxyAttribute.cpp    |   2 +-
 .../GaussinoEventInformation.cpp              |   2 +-
 .../src/{cut => Lib}/GaussinoG4UserLimits.cpp |   0
 .../GaussinoPrimaryParticleInformation.cpp    |   2 +-
 .../GaussinoTrackInformation.cpp              |   2 +-
 .../src/{run => Lib}/GiGaMTRunManager.cpp     |   0
 .../src/{message => Lib}/GiGaMessage.cpp      |   0
 .../src/{run => Lib}/GiGaRunActionCommand.cpp |   0
 .../src/{run => Lib}/GiGaWorkerPayload.cpp    |   0
 .../src/{run => Lib}/GiGaWorkerPilot.cpp      |   2 +-
 .../src/{run => Lib}/GiGaWorkerRunManager.cpp |   0
 Sim/GiGaMTCore/src/{truth => Lib}/Helpers.cpp |   2 +-
 Sim/GiGaMTCore/src/{truth => Lib}/Helpers.h   |   0
 .../src/{truth => Lib}/LinkedParticle.cpp     |   6 +-
 .../{truth => Lib}/LinkedParticleHelpers.cpp  |   2 +-
 .../src/{truth => Lib}/MCTruthAttribute.cpp   |   2 +-
 .../src/{truth => Lib}/MCTruthConverter.cpp   |   7 +-
 .../src/{run => Lib}/SimResultsAttribute.cpp  |   0
 .../TruthFlaggingTrackAction.cpp              |   6 +-
 .../TruthStoringTrackAction.cpp               |  17 +-
 .../src/{truth => Lib}/ZMaxPlane.cpp          |   2 +-
 .../tests/{src => }/test_zMaxTilt.cpp         |   2 +-
 Sim/GiGaMTDD4hep/CMakeLists.txt               |  71 ++--
 .../{ => include}/GiGaMTDD4hep/DD4hepCnvSvc.h |   0
 .../GiGaMTDD4hep/DD4hepDetectorConstruction.h |   0
 .../{ => include}/GiGaMTDD4hep/Utilities.h    |   0
 .../DD4hepCnvSvcConf.cpp                      |   0
 .../DD4hepDetectorConstructionFAC.cpp         |   0
 .../src/{lib => Lib}/DD4hepCnvSvc.cpp         |   0
 .../DD4hepDetectorConstruction.cpp            |   0
 .../src/{lib => Lib}/Utilities.cpp            |   0
 Sim/GiGaMTDebug/CMakeLists.txt                |  35 +-
 .../src/{ => Components}/DebugStepAction.cpp  |   0
 .../src/{ => Components}/DebugTrackAction.cpp |   8 +-
 Sim/GiGaMTExamples/FCCTest/CMakeLists.txt     |  63 ++--
 .../{ => include}/FCCTest/CalorimeterHit.h    |   0
 .../{ => include}/FCCTest/CalorimeterSD.h     |   4 +-
 .../G4GdmlTestDetector.cpp                    |   0
 .../G4GdmlTestDetector.h                      |   0
 .../G4SaveTestCalHits.cpp                     |   0
 .../G4SaveTestCalHits.h                       |   0
 .../src/{lib => Lib}/CalorimeterHit.cpp       |   0
 .../src/{lib => Lib}/CalorimeterSD.cpp        |   0
 Sim/GiGaMTExamples/IronBox/CMakeLists.txt     |  32 +-
 .../LHCbFromGDML/CMakeLists.txt               |  27 +-
 Sim/GiGaMTFactories/CMakeLists.txt            | 105 ++++--
 .../GiGaMTG4SensDetFactory.h                  |   0
 .../GiGaMTFactories/GiGaFactoryBase.h         |   0
 .../{ => include}/GiGaMTFactories/GiGaTool.h  |   0
 .../GiGaMTMagnetFactories}/FieldMgrBase.h     |   0
 .../GiGaMTG4PhysicsConstrFAC.h                |   0
 .../GiGaMTG4PhysicsFactory.h                  |   0
 .../GDMLConstructionFactory.cpp               |   0
 .../GDMLConstructionFactory.h                 |   0
 .../GiGaMTDetectorConstructionFAC.cpp         |   0
 .../GiGaMTDetectorConstructionFAC.h           |   0
 .../GiGaMTG4PhysicsConstrFAC.cpp              |   2 +-
 .../GiGaMTG4PhysicsFactory.cpp                |   2 +-
 .../GiGaMTModularPhysListFAC.cpp              |   0
 .../GiGaMTModularPhysListFAC.h                |   0
 .../GiGaMTRunManagerFAC.cpp                   |   0
 .../{run => Components}/GiGaMTRunManagerFAC.h |   0
 .../GiGaRunActionCommandFAC.cpp               |   0
 .../GiGaRunActionCommandFAC.h                 |   0
 .../GiGaWorkerPilotFAC.cpp                    |   0
 .../{run => Components}/GiGaWorkerPilotFAC.h  |   0
 .../MagFieldFromSvc.cpp                       |   0
 .../components => Components}/Steppers.cpp    |   0
 .../ToolFieldMgr.cpp                          |   2 +-
 .../TruthActionFactories.cpp                  |   4 +-
 .../ZeroFieldMgr.cpp                          |   2 +-
 .../src/{magnet/lib => Lib}/FieldMgrBase.cpp  |   2 +-
 Sim/GiGaMTGeo/CMakeLists.txt                  |  40 ++-
 .../{ => include}/GiGaMTGeo/IGDMLReader.h     |   0
 .../{ => include}/GiGaMTGeo/IGiGaMTGeoSvc.h   |   0
 .../GiGaMTRegions/IRegionsDefinitionSvc.h     |   0
 .../{ => include}/GiGaMTRegions/RegionCuts.h  |   0
 .../GiGaMTRegions/SimAttribute.h              |   0
 .../src/{ => Components}/GDMLReader.cpp       |   0
 .../src/{ => Components}/GiGaRegionTool.cpp   |   0
 .../src/{ => Components}/GiGaRegionTool.h     |   0
 .../src/{ => Components}/GiGaRegionsTool.cpp  |   0
 .../src/{ => Components}/GiGaRegionsTool.h    |   0
 .../{ => Components}/GiGaSetSimAttributes.cpp |   0
 .../{ => Components}/GiGaSetSimAttributes.h   |   0
 .../tests/options/cube_import_export.py       |   4 +-
 Sim/GiGaMTReDecay/CMakeLists.txt              |  73 ++---
 .../GiGaMTReDecay/IReDecaySorter.h            |   0
 .../{ => include}/GiGaMTReDecay/IRedecaySvc.h |   2 +-
 .../{ => include}/GiGaMTReDecay/Token.h       |   0
 .../{ => include}/GiGaMTReDecay/typedefs.h    |   4 +-
 .../ReDecayInit.cpp                           |   0
 .../backup/ReDecaySampleGenerationTool.cpp    |   0
 .../edm/ReDecayMCTruthToEDM.cpp               |   2 +-
 .../gen_tools/ReDecayGeneration.cpp           |   0
 .../gen_tools/ReDecayPileUp.cpp               |   0
 .../gen_tools/ReDecayProduction.cpp           |   0
 .../gen_tools/ReDecaySignalGeneration.cpp     |   0
 .../service/ReDecaySvc.cpp                    |   0
 .../sim/ReDecaySimAlg.cpp                     |   0
 .../sim/ReDecaySimAlg.h                       |   0
 .../sim/ReDecaySkipSimAlg.cpp                 |   0
 .../sim/ReDecaySkipSimAlg.h                   |   0
 .../sorters/BaseSorter.cpp                    |   0
 .../sorters/BaseSorter.h                      |   0
 .../sorters/SignalOnly.cpp                    |   0
 .../src/{lib/token => Lib}/Token.cpp          |   0
 Sim/GiGaMTTruth/CMakeLists.txt                |  31 +-
 .../GiGaMTTruth/IHepMC3ToMCTruthConverter.h   |   2 +-
 Sim/MCCollector/CMakeLists.txt                |  32 +-
 .../GetMCCollectorHitsAlg.cpp                 |   2 +-
 .../src/{ => Components}/MCCollectorHit.cpp   |   0
 .../src/{ => Components}/MCCollectorHit.h     |   0
 .../{ => Components}/MCCollectorSensDet.cpp   |   4 +-
 Sim/ParallelGeometry/CMakeLists.txt           |  47 +--
 .../{ => include}/ParallelGeometry/Physics.h  |   0
 .../ParallelGeometry/PhysicsFactory.h         |   4 +-
 .../ParallelGeometry/PhysicsFactory.icpp      |   0
 .../{ => include}/ParallelGeometry/World.h    |   0
 .../ParallelGeometry/WorldFactory.h           |   0
 .../ParallelGeometry/WorldFactory.icpp        |   0
 Sim/SimInterfaces/CMakeLists.txt              |  11 +-
 .../SimInterfaces/IG4MonitoringTool.h         |   0
 .../SimInterfaces/IGaussinoTool.h             |   0
 .../{ => include}/SimInterfaces/ISimSvc.h     |   0
 Utils/CMakeLists.txt                          |  11 +-
 Utils/{ => include}/Utils/LocalTL.h           |   0
 Utils/{ => include}/Utils/ToolProperty.h      |   0
 .../Utils/blockingconcurrentqueue.h           |   0
 Utils/{ => include}/Utils/concurrentqueue.h   |   0
 cmake/FindALPGEN.cmake                        |  60 ----
 cmake/FindCRMC.cmake                          |  44 ---
 cmake/FindHIJING.cmake                        |  51 ---
 cmake/FindHepMC3.cmake                        |  61 ++++
 cmake/FindHerwig++.cmake                      |  51 ---
 cmake/FindLHAPDF.cmake                        |  39 ---
 cmake/FindPOWHEG-BOX.cmake                    |  25 --
 cmake/FindPhotos++.cmake                      |  62 ----
 cmake/FindPythia6.cmake                       |  56 ----
 cmake/FindPythia8.cmake                       |   5 +
 cmake/FindRivet.cmake                         |  42 ---
 cmake/FindTauola++.cmake                      |  63 ----
 cmake/FindThePEG.cmake                        |  40 ---
 cmake/FindYODA.cmake                          |  43 ---
 cmake/GaussinoConfig.cmake.in                 |  41 +++
 cmake/GaussinoConfigUtils.cmake               | 309 ++++++++++++++++++
 cmake/GaussinoDependencies.cmake              |  59 ++++
 docs/getting_started/contributing.md          |   4 +-
 docs/getting_started/gauss.md                 |  37 ++-
 docs/getting_started/gaussino.md              |   6 +-
 lhcbproject.yml                               |   4 +
 toolchain.cmake                               |  55 ----
 385 files changed, 1427 insertions(+), 1764 deletions(-)
 delete mode 100644 DD4hepDDG4Ext/CMakeLists.txt
 delete mode 100644 DD4hepDDG4Ext/dd4hepddg4_toolchain.cmake
 rename Defaults/{ => include}/Defaults/HepMCAttributes.h (100%)
 rename Defaults/{ => include}/Defaults/Locations.h (100%)
 rename EDMdev/MCTruthToEDM/{ => include}/MCTruthToEDM/LinkedParticleMCParticleLink.h (100%)
 rename EDMdev/MCTruthToEDM/{ => include}/MCTruthToEDM/MCTruthToEDM.h (98%)
 rename EDMdev/MCTruthToEDM/{ => include}/MCTruthToEDM/VertexType.h (95%)
 rename EDMdev/MCTruthToEDM/src/{components => Components}/CheckMCStructure.cpp (100%)
 rename EDMdev/MCTruthToEDM/src/{components => Components}/CheckMCStructure.h (100%)
 rename EDMdev/MCTruthToEDM/src/{components => Components}/MCTruthToEDMComp.cpp (100%)
 rename EDMdev/MCTruthToEDM/src/{lib => Lib}/MCTruthToEDM.cpp (100%)
 rename EDMdev/MCTruthToEDM/src/{lib => Lib}/VertexType.cpp (100%)
 rename Gen/GenBeam/{ => include}/GenBeam/IBeamInfoSvc.h (96%)
 rename Gen/GenBeam/src/{ => Components}/BeamInfoSvc.cpp (100%)
 rename Gen/GenBeam/src/{ => Components}/BeamInfoSvc.h (100%)
 rename Gen/GenBeam/src/{ => Components}/BeamSpotSmearVertexWithSvc.cpp (100%)
 rename Gen/GenBeam/src/{ => Components}/BeamSpotSmearVertexWithSvc.h (100%)
 rename Gen/GenBeam/src/{ => Components}/CollidingBeamsWithSvc.cpp (100%)
 rename Gen/GenBeam/src/{ => Components}/CollidingBeamsWithSvc.h (91%)
 rename Gen/GenBeam/src/{ => Components}/FixedLuminosityWithSvc.cpp (100%)
 rename Gen/GenBeam/src/{ => Components}/FixedLuminosityWithSvc.h (94%)
 rename Gen/GenInterfaces/{ => include}/Event/GenFSRMTManager.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/IBeamTool.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/ICounterLogFile.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/IDecayTool.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/IFullGenEventCutTool.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/IGenCutTool.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/IPileUpTool.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/IProductionTool.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/ISampleGenerationTool.h (100%)
 rename Gen/GenInterfaces/{ => include}/GenInterfaces/IVertexSmearingTool.h (100%)
 rename Gen/Generators/{ => include}/Generators/ExternalGenerator.h (98%)
 rename Gen/Generators/{ => include}/Generators/F77Utils.h (100%)
 rename Gen/Generators/{ => include}/Generators/GenCounters.h (100%)
 rename Gen/Generators/{ => include}/Generators/Generation.h (100%)
 rename Gen/Generators/{ => include}/Generators/HepMCUtils.h (100%)
 rename Gen/Generators/{ => include}/Generators/LHAPDFCommonBlocks.h (100%)
 rename Gen/Generators/{ => include}/Generators/LbPhotos.h (100%)
 rename Gen/Generators/{ => include}/Generators/LbTaula.h (100%)
 rename Gen/Generators/{ => include}/Generators/LhaPdf.h (100%)
 rename Gen/Generators/{ => include}/Generators/Scale.h (100%)
 rename Gen/Generators/{ => include}/Generators/Signal.h (98%)
 rename Gen/Generators/{ => include}/Generators/StreamForGenerator.h (100%)
 rename Gen/Generators/{ => include}/Generators/StringParse.h (100%)
 rename Gen/Generators/src/{component => Components}/AsymmetricCollidingBeams.cpp (100%)
 rename Gen/Generators/src/{component => Components}/AsymmetricCollidingBeams.h (100%)
 rename Gen/Generators/src/{component => Components}/BeamSpotMarkovChainSampleVertex.cpp (100%)
 rename Gen/Generators/src/{component => Components}/BeamSpotMarkovChainSampleVertex.h (100%)
 rename Gen/Generators/src/{component => Components}/BeamSpotSmearVertex.cpp (100%)
 rename Gen/Generators/src/{component => Components}/BeamSpotSmearVertex.h (96%)
 rename Gen/Generators/src/{component => Components}/CollidingBeams.cpp (100%)
 rename Gen/Generators/src/{component => Components}/CollidingBeams.h (93%)
 rename Gen/Generators/src/{component => Components}/FixedLuminosity.cpp (100%)
 rename Gen/Generators/src/{component => Components}/FixedLuminosity.h (94%)
 rename Gen/Generators/src/{component => Components}/FixedLuminosityForRareProcess.cpp (100%)
 rename Gen/Generators/src/{component => Components}/FixedLuminosityForRareProcess.h (100%)
 rename Gen/Generators/src/{component => Components}/FixedLuminosityForSpillOver.cpp (100%)
 rename Gen/Generators/src/{component => Components}/FixedLuminosityForSpillOver.h (92%)
 rename Gen/Generators/src/{component => Components}/FixedNInteractions.cpp (100%)
 rename Gen/Generators/src/{component => Components}/FixedNInteractions.h (92%)
 rename Gen/Generators/src/{component => Components}/FixedTarget.cpp (100%)
 rename Gen/Generators/src/{component => Components}/FixedTarget.h (91%)
 rename Gen/Generators/src/{component => Components}/FlatSmearVertex.cpp (100%)
 rename Gen/Generators/src/{component => Components}/FlatSmearVertex.h (100%)
 rename Gen/Generators/src/{component => Components}/FlatZSmearVertex.cpp (100%)
 rename Gen/Generators/src/{component => Components}/FlatZSmearVertex.h (100%)
 rename Gen/Generators/src/{component => Components}/GenerationComp.cpp (100%)
 rename Gen/Generators/src/{component => Components}/HepMCWriter.cpp (100%)
 rename Gen/Generators/src/{component => Components}/HistoSmearVertex.cpp (100%)
 rename Gen/Generators/src/{component => Components}/HistoSmearVertex.h (100%)
 rename Gen/Generators/src/{component => Components}/Inclusive.cpp (100%)
 rename Gen/Generators/src/{component => Components}/Inclusive.h (100%)
 rename Gen/Generators/src/{component => Components}/MergedEventsFilter.cpp (100%)
 rename Gen/Generators/src/{component => Components}/MergedEventsFilter.h (100%)
 rename Gen/Generators/src/{component => Components}/MinimumBias.cpp (100%)
 rename Gen/Generators/src/{component => Components}/MinimumBias.h (100%)
 rename Gen/Generators/src/{component => Components}/PoissonPileUp.cpp (100%)
 rename Gen/Generators/src/{component => Components}/PoissonPileUp.h (100%)
 rename Gen/Generators/src/{component => Components}/ReadHepMCAsciiFile.cpp (89%)
 rename Gen/Generators/src/{component => Components}/SaveSignalBInformation.cpp (100%)
 rename Gen/Generators/src/{component => Components}/SaveSignalBInformation.h (100%)
 rename Gen/Generators/src/{component => Components}/SignalForcedFragmentation.cpp (100%)
 rename Gen/Generators/src/{component => Components}/SignalForcedFragmentation.h (100%)
 rename Gen/Generators/src/{component => Components}/SignalPlain.cpp (100%)
 rename Gen/Generators/src/{component => Components}/SignalPlain.h (100%)
 rename Gen/Generators/src/{component => Components}/SignalRepeatedHadronization.cpp (100%)
 rename Gen/Generators/src/{component => Components}/SignalRepeatedHadronization.h (100%)
 rename Gen/Generators/src/{component => Components}/StandAloneDecayTool.cpp (100%)
 rename Gen/Generators/src/{component => Components}/StandAloneDecayTool.h (100%)
 rename Gen/Generators/src/{component => Components}/UniformSmearVertex.cpp (100%)
 rename Gen/Generators/src/{component => Components}/UniformSmearVertex.h (97%)
 rename Gen/Generators/src/{component => Components}/VariableLuminosity.cpp (100%)
 rename Gen/Generators/src/{component => Components}/VariableLuminosity.h (95%)
 rename Gen/Generators/src/{component => Components}/XmlCounterLogFile.cpp (100%)
 rename Gen/Generators/src/{component => Components}/XmlCounterLogFile.h (81%)
 rename Gen/Generators/src/{component => Components}/not_yet_ported/Special.cpp (100%)
 rename Gen/Generators/src/{component => Components}/not_yet_ported/Special.h (100%)
 rename Gen/Generators/src/{component => Components}/scrapyard/ApplyPhotos.cpp (100%)
 rename Gen/Generators/src/{component => Components}/scrapyard/ApplyPhotos.h (100%)
 rename Gen/Generators/src/{component => Components}/scrapyard/RepeatDecay.cpp (100%)
 rename Gen/Generators/src/{component => Components}/scrapyard/RepeatDecay.h (100%)
 rename Gen/LbPGuns/{ => include}/LbPGuns/IParticleGunTool.h (100%)
 rename Gen/LbPGuns/src/{ => Components}/BeamShape.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/BeamShape.h (95%)
 rename Gen/LbPGuns/src/{ => Components}/Cosmics.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/Cosmics.h (95%)
 rename Gen/LbPGuns/src/{ => Components}/FixedMomentum.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/FixedMomentum.h (95%)
 rename Gen/LbPGuns/src/{ => Components}/FlatNParticles.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/FlatNParticles.h (95%)
 rename Gen/LbPGuns/src/{ => Components}/FlatPtRapidity.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/FlatPtRapidity.h (95%)
 rename Gen/LbPGuns/src/{ => Components}/GaussianTheta.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/GaussianTheta.h (95%)
 rename Gen/LbPGuns/src/{ => Components}/GenericGun.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/GenericGun.h (96%)
 rename Gen/LbPGuns/src/{ => Components}/MaterialEval.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/MaterialEval.h (95%)
 rename Gen/LbPGuns/src/{ => Components}/MomentumRange.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/MomentumRange.h (95%)
 rename Gen/LbPGuns/src/{ => Components}/MomentumSpectrum.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/MomentumSpectrum.h (96%)
 rename Gen/LbPGuns/src/{ => Components}/ParticleGun.cpp (100%)
 rename Gen/LbPGuns/src/{ => Components}/ParticleGun.h (100%)
 rename Gen/LbPythia8/{src => }/exec/convtest.cxx (100%)
 rename Gen/LbPythia8/{src => }/exec/minimal.cxx (99%)
 rename Gen/LbPythia8/{ => include}/LbPythia8/BeamToolForPythia8.h (100%)
 rename Gen/LbPythia8/{ => include}/LbPythia8/LhcbHooks.h (100%)
 rename Gen/LbPythia8/{ => include}/LbPythia8/Pythia8Production.h (99%)
 rename Gen/LbPythia8/{ => include}/LbPythia8/Pythia8ProductionMT.h (99%)
 rename Gen/LbPythia8/src/{component => Components}/Pythia8ProductionFactory.cpp (100%)
 rename Gen/RndInit/{ => include}/RndInit/GenRndInit.h (100%)
 rename Gen/RndInit/{ => include}/RndInit/IRndSeedingTool.h (100%)
 rename Gen/RndInit/src/{components => Components}/GenRndInitComp.cpp (100%)
 rename Gen/RndInit/src/{components => Components}/SeedingTool.cpp (100%)
 rename Gen/RndInit/src/{components => Components}/SeedingTool.h (100%)
 rename Gen/RndInit/src/{lib => Lib}/GenRndInit.cpp (100%)
 delete mode 100644 HepMC3/CMakeLists.txt
 delete mode 100644 HepMC3/hepmc3_toolchain.cmake
 rename HepMCUser/{ => include}/HepMCUser/ParticleAttribute.h (95%)
 rename HepMCUser/{ => include}/HepMCUser/Status.h (100%)
 rename HepMCUser/{ => include}/HepMCUser/TemplateAttribute.h (100%)
 rename HepMCUser/{ => include}/HepMCUser/VertexAttribute.h (100%)
 rename HepMCUser/{ => include}/HepMCUser/typedefs.h (100%)
 rename HepMCUser/{ => include}/HepMCUtils/CompareGenEvent.h (100%)
 rename HepMCUser/{ => include}/HepMCUtils/HepMCUtils.h (100%)
 rename HepMCUser/{ => include}/HepMCUtils/PrintDecayTree.h (100%)
 rename HepMCUser/{ => include}/HepMCUtils/Relatives.h (100%)
 rename HepMCUser/src/{utils => Lib}/CompareGenEvent.cpp (100%)
 rename HepMCUser/src/{utils => Lib}/PrintDecayTree.cpp (100%)
 rename HepMCUser/src/{utils => Lib}/Relatives.cpp (100%)
 rename Moni/GaussMonitor/src/{ => Components}/GaussGenUtil.cpp (100%)
 rename Moni/GaussMonitor/src/{ => Components}/GaussGenUtil.h (100%)
 rename Moni/GaussMonitor/src/{ => Components}/GenMonitorAlg.cpp (100%)
 rename Moni/GaussMonitor/src/{ => Components}/GenMonitorAlg.h (100%)
 rename Moni/GaussMonitor/src/{ => Components}/MCTruthMonitor.cpp (100%)
 rename Moni/GaussMonitor/src/{ => Components}/MCTruthMonitor.h (100%)
 rename NewRnd/{ => include}/NewRnd/RndAlgSeeder.h (100%)
 rename NewRnd/{ => include}/NewRnd/RndCommon.h (100%)
 rename NewRnd/{ => include}/NewRnd/RndGlobal.h (100%)
 rename NewRnd/src/{components => Components}/Engines.cpp (100%)
 rename NewRnd/src/{ => Lib}/RndAlgSeeder.cpp (100%)
 rename NewRnd/src/{ => Lib}/RndCommon.cpp (100%)
 rename NewRnd/src/{ => Lib}/RndGlobal.cpp (100%)
 rename Sim/ExternalDetector/{ => include}/ExternalDetector/Embedder.h (100%)
 rename Sim/ExternalDetector/{ => include}/ExternalDetector/MaterialFactory.h (100%)
 rename Sim/GiGaMT/{ => include}/GiGaMT/GiGaActionInitializer.h (100%)
 rename Sim/GiGaMT/{ => include}/GiGaMT/GiGaException.h (100%)
 rename Sim/GiGaMT/{ => include}/GiGaMT/GiGaUtil.h (100%)
 rename Sim/GiGaMT/{ => include}/GiGaMT/IGiGaMTSetUpSvc.h (94%)
 rename Sim/GiGaMT/{ => include}/GiGaMT/IGiGaMTSvc.h (94%)
 rename Sim/GiGaMT/src/{components => Components}/GiGaActionInitializer.cpp (100%)
 rename Sim/GiGaMT/src/{components => Components}/GiGaAlg.cpp (100%)
 rename Sim/GiGaMT/src/{components => Components}/GiGaAlg.h (100%)
 rename Sim/GiGaMT/src/{components => Components}/GiGaMT.cpp (100%)
 rename Sim/GiGaMT/src/{components => Components}/GiGaMT.h (100%)
 rename Sim/GiGaMT/src/{components => Components}/GiGaMTISetUpSvc.cpp (100%)
 rename Sim/GiGaMT/src/{components => Components}/HepMC3ToMCTruthConverter.cpp (100%)
 rename Sim/GiGaMT/src/{components => Components}/HepMC3ToMCTruthConverter.h (100%)
 rename Sim/GiGaMT/src/{components => Components}/SkipSimAlg.cpp (97%)
 rename Sim/GiGaMT/src/{components => Components}/SkipSimAlg.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreCut/GaussinoG4UserLimits.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreDet/GaussHitBase.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreDet/GdmlDetectorConstruction.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreDet/GiGaMTDetectorConstruction.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreDet/IExternalDetectorEmbedder.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreMessage/IGiGaMessage.h (100%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/Common.h (100%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/DetTrackInfo.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/G4EventProxy.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/G4EventProxyAttribute.h (97%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/G4TruthParticle.h (100%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/GaussinoEventInformation.h (98%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/GaussinoPrimaryParticleInformation.h (100%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/GaussinoTrackInformation.h (99%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/GiGaMTRunManager.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/GiGaRunActionCommand.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/GiGaWorkerPayload.h (97%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/GiGaWorkerPilot.h (98%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/GiGaWorkerRunManager.h (100%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/LinkedParticle.h (98%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/LinkedParticleHelpers.h (96%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/MCTruthAttribute.h (89%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/MCTruthConverter.h (99%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/SimResults.h (95%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreRun/SimResultsProxyAttribute.h (92%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/TruthFlaggingTrackAction.h (99%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/TruthFlaggingTrackAction.icpp (100%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/TruthStoringTrackAction.h (100%)
 rename Sim/GiGaMTCore/{GiGaMTCoreTruth => include/GiGaMTCoreRun}/ZMaxPlane.h (100%)
 rename Sim/GiGaMTCore/{ => include}/GiGaMTCoreUtils/GiGaMTUtils.h (100%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/Common.cpp (97%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/ConverterInfo.cpp (100%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/ConverterInfo.h (96%)
 rename Sim/GiGaMTCore/src/{run => Lib}/G4EventProxy.cpp (100%)
 rename Sim/GiGaMTCore/src/{run => Lib}/G4EventProxyAttribute.cpp (94%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/GaussinoEventInformation.cpp (93%)
 rename Sim/GiGaMTCore/src/{cut => Lib}/GaussinoG4UserLimits.cpp (100%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/GaussinoPrimaryParticleInformation.cpp (93%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/GaussinoTrackInformation.cpp (96%)
 rename Sim/GiGaMTCore/src/{run => Lib}/GiGaMTRunManager.cpp (100%)
 rename Sim/GiGaMTCore/src/{message => Lib}/GiGaMessage.cpp (100%)
 rename Sim/GiGaMTCore/src/{run => Lib}/GiGaRunActionCommand.cpp (100%)
 rename Sim/GiGaMTCore/src/{run => Lib}/GiGaWorkerPayload.cpp (100%)
 rename Sim/GiGaMTCore/src/{run => Lib}/GiGaWorkerPilot.cpp (99%)
 rename Sim/GiGaMTCore/src/{run => Lib}/GiGaWorkerRunManager.cpp (100%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/Helpers.cpp (96%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/Helpers.h (100%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/LinkedParticle.cpp (98%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/LinkedParticleHelpers.cpp (97%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/MCTruthAttribute.cpp (94%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/MCTruthConverter.cpp (99%)
 rename Sim/GiGaMTCore/src/{run => Lib}/SimResultsAttribute.cpp (100%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/TruthFlaggingTrackAction.cpp (98%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/TruthStoringTrackAction.cpp (95%)
 rename Sim/GiGaMTCore/src/{truth => Lib}/ZMaxPlane.cpp (97%)
 rename Sim/GiGaMTCore/tests/{src => }/test_zMaxTilt.cpp (98%)
 rename Sim/GiGaMTDD4hep/{ => include}/GiGaMTDD4hep/DD4hepCnvSvc.h (100%)
 rename Sim/GiGaMTDD4hep/{ => include}/GiGaMTDD4hep/DD4hepDetectorConstruction.h (100%)
 rename Sim/GiGaMTDD4hep/{ => include}/GiGaMTDD4hep/Utilities.h (100%)
 rename Sim/GiGaMTDD4hep/src/{components => Components}/DD4hepCnvSvcConf.cpp (100%)
 rename Sim/GiGaMTDD4hep/src/{components => Components}/DD4hepDetectorConstructionFAC.cpp (100%)
 rename Sim/GiGaMTDD4hep/src/{lib => Lib}/DD4hepCnvSvc.cpp (100%)
 rename Sim/GiGaMTDD4hep/src/{lib => Lib}/DD4hepDetectorConstruction.cpp (100%)
 rename Sim/GiGaMTDD4hep/src/{lib => Lib}/Utilities.cpp (100%)
 rename Sim/GiGaMTDebug/src/{ => Components}/DebugStepAction.cpp (100%)
 rename Sim/GiGaMTDebug/src/{ => Components}/DebugTrackAction.cpp (97%)
 rename Sim/GiGaMTExamples/FCCTest/{ => include}/FCCTest/CalorimeterHit.h (100%)
 rename Sim/GiGaMTExamples/FCCTest/{ => include}/FCCTest/CalorimeterSD.h (95%)
 rename Sim/GiGaMTExamples/FCCTest/src/{components => Components}/G4GdmlTestDetector.cpp (100%)
 rename Sim/GiGaMTExamples/FCCTest/src/{components => Components}/G4GdmlTestDetector.h (100%)
 rename Sim/GiGaMTExamples/FCCTest/src/{components => Components}/G4SaveTestCalHits.cpp (100%)
 rename Sim/GiGaMTExamples/FCCTest/src/{components => Components}/G4SaveTestCalHits.h (100%)
 rename Sim/GiGaMTExamples/FCCTest/src/{lib => Lib}/CalorimeterHit.cpp (100%)
 rename Sim/GiGaMTExamples/FCCTest/src/{lib => Lib}/CalorimeterSD.cpp (100%)
 rename Sim/GiGaMTFactories/{GiGaMTFactories => include/GiGaMTDetFactories}/GiGaMTG4SensDetFactory.h (100%)
 rename Sim/GiGaMTFactories/{ => include}/GiGaMTFactories/GiGaFactoryBase.h (100%)
 rename Sim/GiGaMTFactories/{ => include}/GiGaMTFactories/GiGaTool.h (100%)
 rename Sim/GiGaMTFactories/{GiGaMTFactories/Magnet => include/GiGaMTMagnetFactories}/FieldMgrBase.h (100%)
 rename Sim/GiGaMTFactories/{GiGaMTFactories => include/GiGaMTPhysFactories}/GiGaMTG4PhysicsConstrFAC.h (100%)
 rename Sim/GiGaMTFactories/{GiGaMTFactories => include/GiGaMTPhysFactories}/GiGaMTG4PhysicsFactory.h (100%)
 rename Sim/GiGaMTFactories/src/{det => Components}/GDMLConstructionFactory.cpp (100%)
 rename Sim/GiGaMTFactories/src/{det => Components}/GDMLConstructionFactory.h (100%)
 rename Sim/GiGaMTFactories/src/{det => Components}/GiGaMTDetectorConstructionFAC.cpp (100%)
 rename Sim/GiGaMTFactories/src/{det => Components}/GiGaMTDetectorConstructionFAC.h (100%)
 rename Sim/GiGaMTFactories/src/{phys => Components}/GiGaMTG4PhysicsConstrFAC.cpp (99%)
 rename Sim/GiGaMTFactories/src/{phys => Components}/GiGaMTG4PhysicsFactory.cpp (98%)
 rename Sim/GiGaMTFactories/src/{phys => Components}/GiGaMTModularPhysListFAC.cpp (100%)
 rename Sim/GiGaMTFactories/src/{phys => Components}/GiGaMTModularPhysListFAC.h (100%)
 rename Sim/GiGaMTFactories/src/{run => Components}/GiGaMTRunManagerFAC.cpp (100%)
 rename Sim/GiGaMTFactories/src/{run => Components}/GiGaMTRunManagerFAC.h (100%)
 rename Sim/GiGaMTFactories/src/{run => Components}/GiGaRunActionCommandFAC.cpp (100%)
 rename Sim/GiGaMTFactories/src/{run => Components}/GiGaRunActionCommandFAC.h (100%)
 rename Sim/GiGaMTFactories/src/{run => Components}/GiGaWorkerPilotFAC.cpp (100%)
 rename Sim/GiGaMTFactories/src/{run => Components}/GiGaWorkerPilotFAC.h (100%)
 rename Sim/GiGaMTFactories/src/{magnet/components => Components}/MagFieldFromSvc.cpp (100%)
 rename Sim/GiGaMTFactories/src/{magnet/components => Components}/Steppers.cpp (100%)
 rename Sim/GiGaMTFactories/src/{magnet/components => Components}/ToolFieldMgr.cpp (96%)
 rename Sim/GiGaMTFactories/src/{truth => Components}/TruthActionFactories.cpp (98%)
 rename Sim/GiGaMTFactories/src/{magnet/components => Components}/ZeroFieldMgr.cpp (96%)
 rename Sim/GiGaMTFactories/src/{magnet/lib => Lib}/FieldMgrBase.cpp (98%)
 rename Sim/GiGaMTGeo/{ => include}/GiGaMTGeo/IGDMLReader.h (100%)
 rename Sim/GiGaMTGeo/{ => include}/GiGaMTGeo/IGiGaMTGeoSvc.h (100%)
 rename Sim/GiGaMTGeo/{ => include}/GiGaMTRegions/IRegionsDefinitionSvc.h (100%)
 rename Sim/GiGaMTGeo/{ => include}/GiGaMTRegions/RegionCuts.h (100%)
 rename Sim/GiGaMTGeo/{ => include}/GiGaMTRegions/SimAttribute.h (100%)
 rename Sim/GiGaMTGeo/src/{ => Components}/GDMLReader.cpp (100%)
 rename Sim/GiGaMTGeo/src/{ => Components}/GiGaRegionTool.cpp (100%)
 rename Sim/GiGaMTGeo/src/{ => Components}/GiGaRegionTool.h (100%)
 rename Sim/GiGaMTGeo/src/{ => Components}/GiGaRegionsTool.cpp (100%)
 rename Sim/GiGaMTGeo/src/{ => Components}/GiGaRegionsTool.h (100%)
 rename Sim/GiGaMTGeo/src/{ => Components}/GiGaSetSimAttributes.cpp (100%)
 rename Sim/GiGaMTGeo/src/{ => Components}/GiGaSetSimAttributes.h (100%)
 rename Sim/GiGaMTReDecay/{ => include}/GiGaMTReDecay/IReDecaySorter.h (100%)
 rename Sim/GiGaMTReDecay/{ => include}/GiGaMTReDecay/IRedecaySvc.h (98%)
 rename Sim/GiGaMTReDecay/{ => include}/GiGaMTReDecay/Token.h (100%)
 rename Sim/GiGaMTReDecay/{ => include}/GiGaMTReDecay/typedefs.h (91%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/ReDecayInit.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/backup/ReDecaySampleGenerationTool.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/edm/ReDecayMCTruthToEDM.cpp (99%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/gen_tools/ReDecayGeneration.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/gen_tools/ReDecayPileUp.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/gen_tools/ReDecayProduction.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/gen_tools/ReDecaySignalGeneration.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/service/ReDecaySvc.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/sim/ReDecaySimAlg.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/sim/ReDecaySimAlg.h (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/sim/ReDecaySkipSimAlg.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/sim/ReDecaySkipSimAlg.h (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/sorters/BaseSorter.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/sorters/BaseSorter.h (100%)
 rename Sim/GiGaMTReDecay/src/{components => Components}/sorters/SignalOnly.cpp (100%)
 rename Sim/GiGaMTReDecay/src/{lib/token => Lib}/Token.cpp (100%)
 rename Sim/GiGaMTTruth/{ => include}/GiGaMTTruth/IHepMC3ToMCTruthConverter.h (97%)
 rename Sim/MCCollector/src/{ => Components}/GetMCCollectorHitsAlg.cpp (98%)
 rename Sim/MCCollector/src/{ => Components}/MCCollectorHit.cpp (100%)
 rename Sim/MCCollector/src/{ => Components}/MCCollectorHit.h (100%)
 rename Sim/MCCollector/src/{ => Components}/MCCollectorSensDet.cpp (98%)
 rename Sim/ParallelGeometry/{ => include}/ParallelGeometry/Physics.h (100%)
 rename Sim/ParallelGeometry/{ => include}/ParallelGeometry/PhysicsFactory.h (94%)
 rename Sim/ParallelGeometry/{ => include}/ParallelGeometry/PhysicsFactory.icpp (100%)
 rename Sim/ParallelGeometry/{ => include}/ParallelGeometry/World.h (100%)
 rename Sim/ParallelGeometry/{ => include}/ParallelGeometry/WorldFactory.h (100%)
 rename Sim/ParallelGeometry/{ => include}/ParallelGeometry/WorldFactory.icpp (100%)
 rename Sim/SimInterfaces/{ => include}/SimInterfaces/IG4MonitoringTool.h (100%)
 rename Sim/SimInterfaces/{ => include}/SimInterfaces/IGaussinoTool.h (100%)
 rename Sim/SimInterfaces/{ => include}/SimInterfaces/ISimSvc.h (100%)
 rename Utils/{ => include}/Utils/LocalTL.h (100%)
 rename Utils/{ => include}/Utils/ToolProperty.h (100%)
 rename Utils/{ => include}/Utils/blockingconcurrentqueue.h (100%)
 rename Utils/{ => include}/Utils/concurrentqueue.h (100%)
 delete mode 100644 cmake/FindALPGEN.cmake
 delete mode 100644 cmake/FindCRMC.cmake
 delete mode 100644 cmake/FindHIJING.cmake
 create mode 100644 cmake/FindHepMC3.cmake
 delete mode 100644 cmake/FindHerwig++.cmake
 delete mode 100644 cmake/FindLHAPDF.cmake
 delete mode 100644 cmake/FindPOWHEG-BOX.cmake
 delete mode 100644 cmake/FindPhotos++.cmake
 delete mode 100644 cmake/FindPythia6.cmake
 delete mode 100644 cmake/FindRivet.cmake
 delete mode 100644 cmake/FindTauola++.cmake
 delete mode 100644 cmake/FindThePEG.cmake
 delete mode 100644 cmake/FindYODA.cmake
 create mode 100644 cmake/GaussinoConfig.cmake.in
 create mode 100644 cmake/GaussinoConfigUtils.cmake
 create mode 100644 cmake/GaussinoDependencies.cmake
 create mode 100644 lhcbproject.yml
 delete mode 100644 toolchain.cmake

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f3e4f6f7..38767faf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -25,7 +25,7 @@ check-copyright:
   only: [merge_requests]
   script:
     - curl -o lb-check-copyright "https://gitlab.cern.ch/lhcb-core/LbDevTools/raw/master/LbDevTools/SourceTools.py?inline=false"
-    - python lb-check-copyright origin/${TARGET_BRANCH}
+    - python lb-check-copyright origin/${TARGET_BRANCH} --exclude lhcbproject.yml
 
 check-formatting:
   image: gitlab-registry.cern.ch/lhcb-docker/style-checker
@@ -44,6 +44,7 @@ check-formatting:
       - apply-formatting.patch
     when: on_failure
     expire_in: 1 week
+  allow_failure: true
 
 .docs-base:
   stage: docs
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ae78ca8d..c117f27d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,77 +8,67 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-CMAKE_MINIMUM_REQUIRED(VERSION 3.15)
+cmake_minimum_required(VERSION 3.15)
 
-# Reduce the total number of warnings by A LOT until ROOT has been modified
-option(GAUDI_SUGGEST_OVERRIDE "enable warnings for missing override keyword" OFF)
-# Create the compile commands json for YCM superpowers
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
-set(GEANT4_BUILD_MULTITHREADED ON)
+set(LCG_LAYER LHCB_7 CACHE STRING "Specific set of version to use")
+option(LCG_USE_GENERATORS "enable/disable use of LCG generators" ON)
 
-#---------------------------------------------------------------
-# Load macros and functions for Gaudi-based projects
-find_package(GaudiProject)
-#---------------------------------------------------------------
+project(Gaussino VERSION 0.1
+	LANGUAGES CXX Fortran)
 
-# Set the CMP0074 policy that dictates how the packages are looked up
-# this should allow overriding the LCG versions of package XXX,
-# provided, XXX_ROOT is set
-if (POLICY CMP0074)
-  cmake_policy(SET CMP0074 NEW)
-  message(STATUS "Setting the policy CMP0074 to NEW")
-else()
-  message(STATUS "Policy CMP0074 not available: LCG packages NOT overriden by _ROOT environment variable")
-endif()
+# Enable testing with CTest/CDash
+include(CTest)
 
-# hide warnings from some external projects
-find_package(Boost)
-find_package(ROOT)
-find_package(CLHEP)
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
-                           ${CLHEP_INCLUDE_DIRS})
+list(PREPEND CMAKE_MODULE_PATH
+    ${PROJECT_SOURCE_DIR}/cmake
+)
 
-# Add -O0 to remove optimizations when using gcc
-set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0" CACHE STRING "bla" FORCE)
-set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0" CACHE STRING "bla" FORCE)
+set(WITH_Gaussino_PRIVATE_DEPENDENCIES TRUE)
+include(GaussinoDependencies)
 
-macro(FindG4libs)
-    # FIXME: this should be an imported target
-    foreach(name ${ARGN})
-        find_library(GEANT4_${name}_LIBRARY
-                     G4${name}
-                     HINTS ${Geant4_DIR}/lib
-                     PATHS ${Geant4_LIBRARY_DIRS})
-        list(APPEND GEANT4_LIBS ${GEANT4_${name}_LIBRARY})
-    endforeach()
-    link_directories(${Geant4_LIBRARY_DIRS})
-endmacro()
+gaussino_initialize_configuration()
 
-macro(AddHepMC3)
-  # FIXME: This is just an work-around to include the locally compiled HepMC3 as the HepMC3Config.cmake
-  # is not yet available during configuration. 
-  include_directories(SYSTEM ${CMAKE_INSTALL_PREFIX}/include ${CMAKE_INSTALL_PREFIX}/share/HepMC3/interfaces)
-  link_directories(${CMAKE_INSTALL_PREFIX}/lib64)
-  link_directories(${CMAKE_INSTALL_PREFIX}/lib)
-  #add_dependencies(HepMC3Ext)
+if (NOT USE_DD4HEP)
+    set(GAUSSINO_IGNORE_SUBDIRS Sim/GiGaMTDD4hep)
+endif()
 
-  set(HEPMC3_LIBRARIES
-    -lHepMC3
-    # FIXME: disabled because of HepMC & HepMC3 namespace collision
-    # -lHepMC3rootIO
-    -lHepMC3search)
-endmacro()
+gaussino_add_subdirectories(
+    Defaults
+    EDMdev/MCTruthToEDM
+    Gen/GenBeam
+    Gen/Generators
+    Gen/GenInterfaces
+    Gen/LbPGuns
+    Gen/LbPythia8
+    Gen/RndInit
+    HepMCUser
+    Moni/GaussMonitor
+    NewRnd
+    Sim/ExternalDetector
+    Sim/Gaussino
+    Sim/GiGaMT
+    Sim/GiGaMTCore
+    Sim/GiGaMTDD4hep
+    Sim/GiGaMTDebug
+    Sim/GiGaMTExamples/FCCTest
+    Sim/GiGaMTExamples/IronBox
+    Sim/GiGaMTExamples/LHCbFromGDML
+    Sim/GiGaMTFactories
+    Sim/GiGaMTGeo
+    Sim/GiGaMTReDecay
+    Sim/GiGaMTTruth
+    Sim/MCCollector
+    Sim/ParallelGeometry
+    Sim/SimInterfaces
+    Utils
+)
 
-# make sure pkg-config looks for packages on CMAKE_PREFIX_PATH and system
-set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)
-list(APPEND CMAKE_PREFIX_PATH /usr)
+gaudi_install(CMAKE
+    # helpers to find external projects
+    cmake/FindHepMC3.cmake
+    cmake/FindPythia8.cmake
+    cmake/GaussinoConfigUtils.cmake
+    cmake/GaussinoConfig.cmake.in
+)
 
-# Declare project name and version
-gaudi_project(Gaussino v1r0
-              FORTRAN
-              USE Run2Support v0r0
-                  Geant4 v104r1
-              DATA Gen/PGunsData VERSION v1r*
-                   Gen/DecFiles VERSION v30r*
-                   LHAPDFSets VERSION v2r*
-                   Vis/XmlVis VERSION v2r*)
+gaussino_finalize_configuration()
diff --git a/DD4hepDDG4Ext/CMakeLists.txt b/DD4hepDDG4Ext/CMakeLists.txt
deleted file mode 100644
index ce143f41..00000000
--- a/DD4hepDDG4Ext/CMakeLists.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-gaudi_subdir(DD4hepDDG4Ext v1r0)
-
-if(USE_DD4HEP)
-# Define EvtGen external project
-set(DD4hep_GIT_SOURCE "https://gitlab.cern.ch/Gaussino/DD4hep.git" CACHE STRING "URL of the DD4hep git repository")
-set(DD4hep_GIT_TAG "v01-16-01-patches" CACHE STRING "Tag of DD4hep to be used")
-
-find_package(ROOT)
-find_package(Boost)
-find_package(DD4hep REQUIRED)
-find_package(LCIO REQUIRED)
-
-include(ExternalProject)
-message(STATUS "DDG4 from DD4hep will use tag \"${DD4hep_GIT_TAG}\" from repository ${DD4hep_GIT_SOURCE}")
-string(REPLACE "c++" "" DD4HepDDG4_CXX_STANDARD "${GAUDI_CXX_STANDARD}")
-message(STATUS "Setting CMAKE_CXX_STANDARD to \"${DD4HepDDG4_CXX_STANDARD}\"")
-    
-ExternalProject_Add(DD4hepDDG4Ext
-  GIT_REPOSITORY ${DD4hep_GIT_SOURCE}
-  GIT_TAG ${DD4hep_GIT_TAG}
-  CMAKE_ARGS 
-    -Dheptools_version=${heptools_version}
-    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-    -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-    -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/dd4hepddg4_toolchain.cmake
-    -DDD4HEP_USE_EXISTING_DD4HEP=${DD4hep_DIR}
-    -DDD4HEP_BUILD_PACKAGES=DDG4
-    -DDD4HEP_USE_GEANT4=ON
-    -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-    -DCMAKE_CXX_STANDARD=${DD4HepDDG4_CXX_STANDARD}
-    -DDD4HEP_SELECTED_NAME=DD4hepDDG4
-    "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -Wno-suggest-override"  # less strict warnings
-  # This works around a CMake issue with the Ninja generator where it
-  # does not understand imported libraries, and instead needs `BUILD_BYPRODUCTS`
-  # explicitly set.
-  # https://cmake.org/pipermail/cmake/2015-April/060234.html
-  BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libDDG4.so
-  CMAKE_COMMAND ${env_cmd} --xml ${env_xml} cmake
-  BUILD_COMMAND ${env_cmd} --xml ${env_xml} cmake --build .
-)
-
-ExternalProject_Get_property(DD4hepDDG4Ext INSTALL_DIR)
-
-# Inspired from http://mesos.apache.org/documentation/latest/cmake-examples/#imported-libraries
-add_library(DD4hep::DDG4 SHARED IMPORTED GLOBAL)
-set_target_properties(DD4hep::DDG4 PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libDDG4.so)
-target_include_directories(DD4hep::DDG4 SYSTEM INTERFACE ${INSTALL_DIR}/include)
-# This works around a CMake issue with setting include directories of
-# imported libraries built with `ExternalProject_Add`.cmake/DD4hepBuild.cmake
-# https://gitlab.kitware.com/cmake/cmake/issues/15052
-file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
-
-# The external project's install rules are not part of the main project's
-# install rules, so if anything from the external project should be
-# installed as part of the main build, these need to be specified in the main
-# build as additional install() commands.
-# https://cmake.org/cmake/help/v3.20/module/ExternalProject.html
-#
-# Use DD4hep's installation location (see cmake/DD4hepBuild.cmake)
-# > SET(DD4HEP_PYTHON_INSTALL_DIR lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages)
-install(DIRECTORY "${INSTALL_DIR}/include/"
-        DESTINATION include)
-install(DIRECTORY "${INSTALL_DIR}/lib/"
-        DESTINATION lib
-        PATTERN "python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}" EXCLUDE)
-install(DIRECTORY "${INSTALL_DIR}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/"
-        DESTINATION python)
-endif()
diff --git a/DD4hepDDG4Ext/dd4hepddg4_toolchain.cmake b/DD4hepDDG4Ext/dd4hepddg4_toolchain.cmake
deleted file mode 100644
index 1321282c..00000000
--- a/DD4hepDDG4Ext/dd4hepddg4_toolchain.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# Special toolchain file that inherits the same heptools version as the
-# used projects.
-#
-#
-# this check is needed because the toolchain is called when checking the
-# compiler (without the proper cache)
-if(NOT CMAKE_SOURCE_DIR MATCHES "CMakeTmp")
-  find_path(heptools_mod_dir UseHEPTools.cmake)
-  message(INFO heptools_mod_dir = ${heptools_mod_dir})
-  set(CMAKE_MODULE_PATH ${heptools_mod_dir} ${CMAKE_MODULE_PATH})
-  if(heptools_version)
-    include(UseHEPTools)
-    use_heptools(${heptools_version})
-  else()
-    include(InheritHEPTools)
-    inherit_heptools()
-  endif()
-
-  # FIXME: make sure we do not pick up unwanted/problematic projects from LCG
-  if(CMAKE_PREFIX_PATH)
-    # - ninja (it requires LD_LIBRARY_PATH set to run)
-    # - Gaudi (we do not want to use it from LCG)
-    # - xenv (conflicts with the version in the build environment)
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*(ninja|Gaudi|xenv)")
-  endif()
-
-  # FIXME: make sure we do not pick up geant from LCG (it requires LD_LIBRARY_PATH set)
-  if(CMAKE_PREFIX_PATH AND CMAKE_VERSION VERSION_GREATER "3.6.0")
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*Geant4")
-  endif()
-endif()
diff --git a/Defaults/CMakeLists.txt b/Defaults/CMakeLists.txt
index 38cccc3a..db4eed0a 100644
--- a/Defaults/CMakeLists.txt
+++ b/Defaults/CMakeLists.txt
@@ -8,11 +8,9 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: Defaults
-#
-#################################################################################
+#[=======================================================================[.rst:
+Defaults
+--------
+#]=======================================================================]
 
-gaudi_subdir(Defaults v1r0)
-
-gaudi_install_headers(Defaults)
+gaudi_add_header_only_library(Defaults)
diff --git a/Defaults/Defaults/HepMCAttributes.h b/Defaults/include/Defaults/HepMCAttributes.h
similarity index 100%
rename from Defaults/Defaults/HepMCAttributes.h
rename to Defaults/include/Defaults/HepMCAttributes.h
diff --git a/Defaults/Defaults/Locations.h b/Defaults/include/Defaults/Locations.h
similarity index 100%
rename from Defaults/Defaults/Locations.h
rename to Defaults/include/Defaults/Locations.h
diff --git a/EDMdev/MCTruthToEDM/CMakeLists.txt b/EDMdev/MCTruthToEDM/CMakeLists.txt
index ba1510f5..3ecacbef 100644
--- a/EDMdev/MCTruthToEDM/CMakeLists.txt
+++ b/EDMdev/MCTruthToEDM/CMakeLists.txt
@@ -8,28 +8,26 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-gaudi_subdir(MCTruthToEDM v1r0)
-
-gaudi_depends_on_subdirs(Event/GenEvent
-                         Event/MCEvent
-                         Sim/GiGaMTCore
-                         Defaults
-                         HepMC3
-                         HepMCUser)
-
-AddHepMC3()
-find_package(HepMC)
-
+#[=======================================================================[.rst:
+EDMdev/MCTruthToEDM
+-------------------
+#]=======================================================================]
 
 gaudi_add_library(MCTruthToEDMLib
-                 src/lib/*.cpp
-                 PUBLIC_HEADERS MCTruthToEDM
-		 INCLUDE_DIRS HepMC
-		 LINK_LIBRARIES GiGaMTCoreTruthLib MCEvent)
+    SOURCES
+        src/Lib/MCTruthToEDM.cpp
+	src/Lib/VertexType.cpp
+    LINK
+        PUBLIC
+	    LHCb::GenEvent # TODO: [LHCb DEPENDENCY]
+	    Gaussino::GiGaMTCoreRunLib
+	    Gaussino::GiGaMTTruthLib
+)
 
 gaudi_add_module(MCTruthToEDM
-                 src/components/*.cpp
-                 INCLUDE_DIRS ${HEPMC_INCLUDE_DIR} Defaults
-                 LINK_LIBRARIES MCTruthToEDMLib)
-
-add_dependencies(MCTruthToEDM HepMC3Ext)
+    SOURCES
+        src/Components/CheckMCStructure.cpp
+	src/Components/MCTruthToEDMComp.cpp
+    LINK
+        Gaussino::MCTruthToEDMLib
+)
diff --git a/EDMdev/MCTruthToEDM/MCTruthToEDM/LinkedParticleMCParticleLink.h b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/LinkedParticleMCParticleLink.h
similarity index 100%
rename from EDMdev/MCTruthToEDM/MCTruthToEDM/LinkedParticleMCParticleLink.h
rename to EDMdev/MCTruthToEDM/include/MCTruthToEDM/LinkedParticleMCParticleLink.h
diff --git a/EDMdev/MCTruthToEDM/MCTruthToEDM/MCTruthToEDM.h b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/MCTruthToEDM.h
similarity index 98%
rename from EDMdev/MCTruthToEDM/MCTruthToEDM/MCTruthToEDM.h
rename to EDMdev/MCTruthToEDM/include/MCTruthToEDM/MCTruthToEDM.h
index 50f49030..36b503c2 100755
--- a/EDMdev/MCTruthToEDM/MCTruthToEDM/MCTruthToEDM.h
+++ b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/MCTruthToEDM.h
@@ -24,7 +24,7 @@
 #include "Event/MCVertex.h"
 #include "MCTruthToEDM/LinkedParticleMCParticleLink.h"
 
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 #include "Defaults/Locations.h"
 
diff --git a/EDMdev/MCTruthToEDM/MCTruthToEDM/VertexType.h b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/VertexType.h
similarity index 95%
rename from EDMdev/MCTruthToEDM/MCTruthToEDM/VertexType.h
rename to EDMdev/MCTruthToEDM/include/MCTruthToEDM/VertexType.h
index 7002c11c..66d0ab5c 100644
--- a/EDMdev/MCTruthToEDM/MCTruthToEDM/VertexType.h
+++ b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/VertexType.h
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "Event/MCVertex.h"
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 #include "GaudiKernel/MsgStream.h"
 
 namespace Gaussino {
diff --git a/EDMdev/MCTruthToEDM/src/components/CheckMCStructure.cpp b/EDMdev/MCTruthToEDM/src/Components/CheckMCStructure.cpp
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/components/CheckMCStructure.cpp
rename to EDMdev/MCTruthToEDM/src/Components/CheckMCStructure.cpp
diff --git a/EDMdev/MCTruthToEDM/src/components/CheckMCStructure.h b/EDMdev/MCTruthToEDM/src/Components/CheckMCStructure.h
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/components/CheckMCStructure.h
rename to EDMdev/MCTruthToEDM/src/Components/CheckMCStructure.h
diff --git a/EDMdev/MCTruthToEDM/src/components/MCTruthToEDMComp.cpp b/EDMdev/MCTruthToEDM/src/Components/MCTruthToEDMComp.cpp
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/components/MCTruthToEDMComp.cpp
rename to EDMdev/MCTruthToEDM/src/Components/MCTruthToEDMComp.cpp
diff --git a/EDMdev/MCTruthToEDM/src/lib/MCTruthToEDM.cpp b/EDMdev/MCTruthToEDM/src/Lib/MCTruthToEDM.cpp
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/lib/MCTruthToEDM.cpp
rename to EDMdev/MCTruthToEDM/src/Lib/MCTruthToEDM.cpp
diff --git a/EDMdev/MCTruthToEDM/src/lib/VertexType.cpp b/EDMdev/MCTruthToEDM/src/Lib/VertexType.cpp
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/lib/VertexType.cpp
rename to EDMdev/MCTruthToEDM/src/Lib/VertexType.cpp
diff --git a/Gen/GenBeam/CMakeLists.txt b/Gen/GenBeam/CMakeLists.txt
index 1a9b2f2a..6fca1072 100644
--- a/Gen/GenBeam/CMakeLists.txt
+++ b/Gen/GenBeam/CMakeLists.txt
@@ -8,24 +8,24 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GenBeam
-################################################################################
-gaudi_subdir(GenBeam v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Event/GenEvent
-                         NewRnd
-                         HepMCUser
-                         Gen/GenInterfaces
-                         #FIXME: For platform and kernel streaming, I think ?!?!
-                         Kernel/LHCbKernel)
-
-AddHepMC3()
+#[=======================================================================[.rst:
+Gen/GenBeam
+-----------
+#]=======================================================================]
+gaudi_add_header_only_library(GenBeamLib)
 
 gaudi_add_module(GenBeam
-                 src/*.cpp
-                 INCLUDE_DIRS Gen/GenInterfaces ${HEPMC3_INCLUDE_DIR} HepMCUser
-                 LINK_LIBRARIES GaudiAlgLib GenEvent LHCbKernel NewRnd ${HEPMC3_LIBRARIES})
-
-add_dependencies(GenBeam HepMC3Ext)
+    SOURCES
+    	src/Components/BeamInfoSvc.cpp
+	src/Components/BeamSpotSmearVertexWithSvc.cpp
+	src/Components/CollidingBeamsWithSvc.cpp
+	src/Components/FixedLuminosityWithSvc.cpp
+    LINK
+        HepMC3::HepMC3
+    	Gaudi::GaudiAlgLib
+	LHCb::GenEvent #  TODO: [LHCb DEPENDENCY]
+	Gaussino::HepMCUserLib
+	Gaussino::NewRndLib
+    	Gaussino::GenBeamLib
+	Gaussino::GenInterfacesLib
+)
diff --git a/Gen/GenBeam/GenBeam/IBeamInfoSvc.h b/Gen/GenBeam/include/GenBeam/IBeamInfoSvc.h
similarity index 96%
rename from Gen/GenBeam/GenBeam/IBeamInfoSvc.h
rename to Gen/GenBeam/include/GenBeam/IBeamInfoSvc.h
index 1a5b56d5..c18da5d8 100644
--- a/Gen/GenBeam/GenBeam/IBeamInfoSvc.h
+++ b/Gen/GenBeam/include/GenBeam/IBeamInfoSvc.h
@@ -28,9 +28,9 @@ class GAUDI_API IBeamInfoSvc : virtual public IService {
   public:
   DeclareInterfaceID(IBeamInfoSvc, 1, 0);
 
-  virtual StatusCode initialize() = 0;
+  virtual StatusCode initialize() override = 0;
 
-  virtual StatusCode finalize() = 0;
+  virtual StatusCode finalize() override = 0;
 
   /// Mean number of interactions per event (nu)
   virtual double nu() const = 0;
diff --git a/Gen/GenBeam/src/BeamInfoSvc.cpp b/Gen/GenBeam/src/Components/BeamInfoSvc.cpp
similarity index 100%
rename from Gen/GenBeam/src/BeamInfoSvc.cpp
rename to Gen/GenBeam/src/Components/BeamInfoSvc.cpp
diff --git a/Gen/GenBeam/src/BeamInfoSvc.h b/Gen/GenBeam/src/Components/BeamInfoSvc.h
similarity index 100%
rename from Gen/GenBeam/src/BeamInfoSvc.h
rename to Gen/GenBeam/src/Components/BeamInfoSvc.h
diff --git a/Gen/GenBeam/src/BeamSpotSmearVertexWithSvc.cpp b/Gen/GenBeam/src/Components/BeamSpotSmearVertexWithSvc.cpp
similarity index 100%
rename from Gen/GenBeam/src/BeamSpotSmearVertexWithSvc.cpp
rename to Gen/GenBeam/src/Components/BeamSpotSmearVertexWithSvc.cpp
diff --git a/Gen/GenBeam/src/BeamSpotSmearVertexWithSvc.h b/Gen/GenBeam/src/Components/BeamSpotSmearVertexWithSvc.h
similarity index 100%
rename from Gen/GenBeam/src/BeamSpotSmearVertexWithSvc.h
rename to Gen/GenBeam/src/Components/BeamSpotSmearVertexWithSvc.h
diff --git a/Gen/GenBeam/src/CollidingBeamsWithSvc.cpp b/Gen/GenBeam/src/Components/CollidingBeamsWithSvc.cpp
similarity index 100%
rename from Gen/GenBeam/src/CollidingBeamsWithSvc.cpp
rename to Gen/GenBeam/src/Components/CollidingBeamsWithSvc.cpp
diff --git a/Gen/GenBeam/src/CollidingBeamsWithSvc.h b/Gen/GenBeam/src/Components/CollidingBeamsWithSvc.h
similarity index 91%
rename from Gen/GenBeam/src/CollidingBeamsWithSvc.h
rename to Gen/GenBeam/src/Components/CollidingBeamsWithSvc.h
index e414adc7..801b3846 100755
--- a/Gen/GenBeam/src/CollidingBeamsWithSvc.h
+++ b/Gen/GenBeam/src/Components/CollidingBeamsWithSvc.h
@@ -36,12 +36,12 @@ class CollidingBeamsWithSvc : public GaudiTool, virtual public IBeamTool {
   virtual ~CollidingBeamsWithSvc( ); ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize( ) ;  
+  virtual StatusCode initialize( ) override;  
   
   /** Implements IBeamTool::getMeanBeams
    */
   virtual void getMeanBeams( Gaudi::XYZVector & pBeam1 , 
-                             Gaudi::XYZVector & pBeam2 ) const ;
+                             Gaudi::XYZVector & pBeam2 ) const override;
   
   /** Implements IBeamTool::getBeams
    *  Compute beam 3-momentum taking into account the horizontal and vertical
@@ -49,7 +49,7 @@ class CollidingBeamsWithSvc : public GaudiTool, virtual public IBeamTool {
    *  with an angular smearing equal to (emittance/beta*)^1/2.
    */
   virtual void getBeams( Gaudi::XYZVector & pBeam1 , 
-                         Gaudi::XYZVector & pBeam2 ) ;
+                         Gaudi::XYZVector & pBeam2 ) override;
 
  private:
   IBeamInfoSvc *m_beaminfosvc;
diff --git a/Gen/GenBeam/src/FixedLuminosityWithSvc.cpp b/Gen/GenBeam/src/Components/FixedLuminosityWithSvc.cpp
similarity index 100%
rename from Gen/GenBeam/src/FixedLuminosityWithSvc.cpp
rename to Gen/GenBeam/src/Components/FixedLuminosityWithSvc.cpp
diff --git a/Gen/GenBeam/src/FixedLuminosityWithSvc.h b/Gen/GenBeam/src/Components/FixedLuminosityWithSvc.h
similarity index 94%
rename from Gen/GenBeam/src/FixedLuminosityWithSvc.h
rename to Gen/GenBeam/src/Components/FixedLuminosityWithSvc.h
index df96f58d..0b02e625 100755
--- a/Gen/GenBeam/src/FixedLuminosityWithSvc.h
+++ b/Gen/GenBeam/src/Components/FixedLuminosityWithSvc.h
@@ -39,10 +39,10 @@ public:
   virtual ~FixedLuminosityWithSvc( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize( ) override;
 
   /** Implements IPileUpTool::numberOfPileUp
    *  Returns the number of pile-up interactions in one event. It follows
@@ -50,10 +50,10 @@ public:
    *  mean = Luminosity * cross_section / crossing_rate.
    *  The fixed luminosity is returned in the GenHeader.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters( ) override;
 
 protected:
 
diff --git a/Gen/GenInterfaces/CMakeLists.txt b/Gen/GenInterfaces/CMakeLists.txt
index 02957990..36ae32b8 100644
--- a/Gen/GenInterfaces/CMakeLists.txt
+++ b/Gen/GenInterfaces/CMakeLists.txt
@@ -8,17 +8,12 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Gen/GenInterfaces
+-----------------
+#]=======================================================================]
 ################################################################################
 # Package: GenInterface
 ################################################################################
-gaudi_subdir(GenInterfaces v1r0)
-
-gaudi_depends_on_subdirs(HepMC3
-                         NewRnd)
-
-AddHepMC3()
-
-gaudi_install_headers(GenInterfaces)
-
-gaudi_install_headers(
-  Event)
+gaudi_add_header_only_library(GenInterfacesLib)
+gaudi_add_header_only_library(EventLib)
diff --git a/Gen/GenInterfaces/Event/GenFSRMTManager.h b/Gen/GenInterfaces/include/Event/GenFSRMTManager.h
similarity index 100%
rename from Gen/GenInterfaces/Event/GenFSRMTManager.h
rename to Gen/GenInterfaces/include/Event/GenFSRMTManager.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IBeamTool.h b/Gen/GenInterfaces/include/GenInterfaces/IBeamTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IBeamTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IBeamTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/ICounterLogFile.h b/Gen/GenInterfaces/include/GenInterfaces/ICounterLogFile.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/ICounterLogFile.h
rename to Gen/GenInterfaces/include/GenInterfaces/ICounterLogFile.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IDecayTool.h b/Gen/GenInterfaces/include/GenInterfaces/IDecayTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IDecayTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IDecayTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IFullGenEventCutTool.h b/Gen/GenInterfaces/include/GenInterfaces/IFullGenEventCutTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IFullGenEventCutTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IFullGenEventCutTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IGenCutTool.h b/Gen/GenInterfaces/include/GenInterfaces/IGenCutTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IGenCutTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IGenCutTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IPileUpTool.h b/Gen/GenInterfaces/include/GenInterfaces/IPileUpTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IPileUpTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IPileUpTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IProductionTool.h b/Gen/GenInterfaces/include/GenInterfaces/IProductionTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IProductionTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IProductionTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/ISampleGenerationTool.h b/Gen/GenInterfaces/include/GenInterfaces/ISampleGenerationTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/ISampleGenerationTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/ISampleGenerationTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IVertexSmearingTool.h b/Gen/GenInterfaces/include/GenInterfaces/IVertexSmearingTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IVertexSmearingTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IVertexSmearingTool.h
diff --git a/Gen/Generators/CMakeLists.txt b/Gen/Generators/CMakeLists.txt
index 0d28c247..96e90c1a 100644
--- a/Gen/Generators/CMakeLists.txt
+++ b/Gen/Generators/CMakeLists.txt
@@ -8,43 +8,72 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: Generators
-################################################################################
-gaudi_subdir(Generators v16r0)
-
-gaudi_depends_on_subdirs(Event/GenEvent
-                         GaudiAlg
-                         NewRnd
-                         #FIXME: Gen/EvtGen
-                         #FIXME: Gen/EvtGenExtras
-                         #FIXME: Kernel/MCInterfaces
-                         #FIXME: Kernel/LHCbKernel
-                         Kernel/PartProp
-                         Defaults
-                         HepMC3
-                         HepMCUser
-                         Gen/GenInterfaces)
-
-find_package(Boost COMPONENTS filesystem system)
-find_package(Photos++)
-AddHepMC3()
-
-string(REPLACE "-pedantic" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
-string(REPLACE "-Wall" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
-string(REPLACE "-Wextra" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
-string(REPLACE "-Werror=return-type" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
+#[=======================================================================[.rst:
+Gen/Generators
+--------------
+#]=======================================================================]
 
 gaudi_add_library(GeneratorsLib
-                  src/Lib/*.cpp src/Lib/*.F
-                  PUBLIC_HEADERS Generators
-                  INCLUDE_DIRS Kernel/MCInterfaces Gen/GenInterfaces HepMCUser ${HEPMC3_INCLUDE_DIR}
-                  LINK_LIBRARIES GenEvent GaudiAlgLib PartPropLib ${HEPMC3_LIBRARIES} NewRnd)
+    SOURCES
+    	src/Lib/f77units.F
+        src/Lib/getaddr.cpp
+	src/Lib/pythiaoutput_utils.F
+	src/Lib/ExternalGenerator.cpp
+	src/Lib/F77Utils.cpp
+	src/Lib/Generation.cpp
+	src/Lib/GenCounters.cpp
+	src/Lib/LbPhotos.cpp
+	src/Lib/LbTaula.cpp
+	src/Lib/LhaPdf.cpp
+	src/Lib/LBPHOTOS.F
+	src/Lib/LBTAULA.F
+	src/Lib/LHAPDFCommonBlocks.cpp
+	src/Lib/LHAPDFUtils.F
+	src/Lib/Scale.cpp
+	src/Lib/Signal.cpp
+	src/Lib/StreamForGenerator.cpp
+	src/Lib/StringParse.cpp
+    LINK
+    	PUBLIC
+	    Gaudi::GaudiAlgLib
+	    LHCb::GenEvent # TODO: [LHCb DEPENDENCY]
+	    Gaussino::HepMCUtilsLib
+	    Gaussino::NewRndLib
+	    Gaussino::UtilsLib
+	    Gaussino::GenInterfacesLib
+	    Gaussino::EventLib
 
-add_dependencies(GeneratorsLib HepMC3Ext)
+)
 
 gaudi_add_module(Generators
-                 src/component/*.cpp
-                 INCLUDE_DIRS Boost Kernel/MCInterfaces  Gen/GenInterfaces Photos++
-                 LINK_LIBRARIES Boost GenEvent GaudiAlgLib LHCbKernel GeneratorsLib Photos++) 
-
+    SOURCES
+        src/Components/AsymmetricCollidingBeams.cpp
+	src/Components/BeamSpotMarkovChainSampleVertex.cpp
+	src/Components/BeamSpotSmearVertex.cpp
+	src/Components/CollidingBeams.cpp
+	src/Components/FixedLuminosity.cpp
+	src/Components/FixedLuminosityForRareProcess.cpp
+	src/Components/FixedLuminosityForSpillOver.cpp
+	src/Components/FixedNInteractions.cpp
+	src/Components/FixedTarget.cpp
+	src/Components/FlatSmearVertex.cpp
+	src/Components/FlatZSmearVertex.cpp
+	src/Components/GenerationComp.cpp
+	src/Components/HepMCWriter.cpp
+	src/Components/HistoSmearVertex.cpp
+	src/Components/Inclusive.cpp
+	src/Components/MergedEventsFilter.cpp
+	src/Components/MinimumBias.cpp
+	src/Components/PoissonPileUp.cpp
+	src/Components/ReadHepMCAsciiFile.cpp
+	src/Components/SaveSignalBInformation.cpp
+	src/Components/SignalForcedFragmentation.cpp
+	src/Components/SignalPlain.cpp
+	src/Components/SignalRepeatedHadronization.cpp
+	src/Components/StandAloneDecayTool.cpp
+	src/Components/UniformSmearVertex.cpp
+	src/Components/VariableLuminosity.cpp
+	src/Components/XmlCounterLogFile.cpp
+    LINK
+        Gaussino::GeneratorsLib
+)
diff --git a/Gen/Generators/Generators/ExternalGenerator.h b/Gen/Generators/include/Generators/ExternalGenerator.h
similarity index 98%
rename from Gen/Generators/Generators/ExternalGenerator.h
rename to Gen/Generators/include/Generators/ExternalGenerator.h
index 0c3011a6..43797e5d 100755
--- a/Gen/Generators/Generators/ExternalGenerator.h
+++ b/Gen/Generators/include/Generators/ExternalGenerator.h
@@ -75,13 +75,13 @@ class ExternalGenerator : public GaudiTool ,
    *     and declare them stable for the production tool if they are known
    *     by the decay tool. 
    */ 
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
 
   /** Finalization funtion.
    *  This function closes the file used to redirect LHAPDF output messages
    *  in case the output is disabled.
    */
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize( ) override;
   
  protected:
   /** Decay heavy excited particles.
diff --git a/Gen/Generators/Generators/F77Utils.h b/Gen/Generators/include/Generators/F77Utils.h
similarity index 100%
rename from Gen/Generators/Generators/F77Utils.h
rename to Gen/Generators/include/Generators/F77Utils.h
diff --git a/Gen/Generators/Generators/GenCounters.h b/Gen/Generators/include/Generators/GenCounters.h
similarity index 100%
rename from Gen/Generators/Generators/GenCounters.h
rename to Gen/Generators/include/Generators/GenCounters.h
diff --git a/Gen/Generators/Generators/Generation.h b/Gen/Generators/include/Generators/Generation.h
similarity index 100%
rename from Gen/Generators/Generators/Generation.h
rename to Gen/Generators/include/Generators/Generation.h
diff --git a/Gen/Generators/Generators/HepMCUtils.h b/Gen/Generators/include/Generators/HepMCUtils.h
similarity index 100%
rename from Gen/Generators/Generators/HepMCUtils.h
rename to Gen/Generators/include/Generators/HepMCUtils.h
diff --git a/Gen/Generators/Generators/LHAPDFCommonBlocks.h b/Gen/Generators/include/Generators/LHAPDFCommonBlocks.h
similarity index 100%
rename from Gen/Generators/Generators/LHAPDFCommonBlocks.h
rename to Gen/Generators/include/Generators/LHAPDFCommonBlocks.h
diff --git a/Gen/Generators/Generators/LbPhotos.h b/Gen/Generators/include/Generators/LbPhotos.h
similarity index 100%
rename from Gen/Generators/Generators/LbPhotos.h
rename to Gen/Generators/include/Generators/LbPhotos.h
diff --git a/Gen/Generators/Generators/LbTaula.h b/Gen/Generators/include/Generators/LbTaula.h
similarity index 100%
rename from Gen/Generators/Generators/LbTaula.h
rename to Gen/Generators/include/Generators/LbTaula.h
diff --git a/Gen/Generators/Generators/LhaPdf.h b/Gen/Generators/include/Generators/LhaPdf.h
similarity index 100%
rename from Gen/Generators/Generators/LhaPdf.h
rename to Gen/Generators/include/Generators/LhaPdf.h
diff --git a/Gen/Generators/Generators/Scale.h b/Gen/Generators/include/Generators/Scale.h
similarity index 100%
rename from Gen/Generators/Generators/Scale.h
rename to Gen/Generators/include/Generators/Scale.h
diff --git a/Gen/Generators/Generators/Signal.h b/Gen/Generators/include/Generators/Signal.h
similarity index 98%
rename from Gen/Generators/Generators/Signal.h
rename to Gen/Generators/include/Generators/Signal.h
index f1dc607b..a3cd9bf1 100755
--- a/Gen/Generators/Generators/Signal.h
+++ b/Gen/Generators/include/Generators/Signal.h
@@ -47,10 +47,10 @@ class Signal : public ExternalGenerator {
   virtual ~Signal( ); ///< Destructor
   
   /// Initialize
-  virtual StatusCode initialize( ) ;  
+  virtual StatusCode initialize( ) override;  
 
   /// Print counters and cut efficiencies at the end of the job.
-  virtual void printCounters( ) const ;
+  virtual void printCounters( ) const override;
 
 protected:
   /// PID of the signal particle for this job (set by job options)
diff --git a/Gen/Generators/Generators/StreamForGenerator.h b/Gen/Generators/include/Generators/StreamForGenerator.h
similarity index 100%
rename from Gen/Generators/Generators/StreamForGenerator.h
rename to Gen/Generators/include/Generators/StreamForGenerator.h
diff --git a/Gen/Generators/Generators/StringParse.h b/Gen/Generators/include/Generators/StringParse.h
similarity index 100%
rename from Gen/Generators/Generators/StringParse.h
rename to Gen/Generators/include/Generators/StringParse.h
diff --git a/Gen/Generators/src/component/AsymmetricCollidingBeams.cpp b/Gen/Generators/src/Components/AsymmetricCollidingBeams.cpp
similarity index 100%
rename from Gen/Generators/src/component/AsymmetricCollidingBeams.cpp
rename to Gen/Generators/src/Components/AsymmetricCollidingBeams.cpp
diff --git a/Gen/Generators/src/component/AsymmetricCollidingBeams.h b/Gen/Generators/src/Components/AsymmetricCollidingBeams.h
similarity index 100%
rename from Gen/Generators/src/component/AsymmetricCollidingBeams.h
rename to Gen/Generators/src/Components/AsymmetricCollidingBeams.h
diff --git a/Gen/Generators/src/component/BeamSpotMarkovChainSampleVertex.cpp b/Gen/Generators/src/Components/BeamSpotMarkovChainSampleVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/BeamSpotMarkovChainSampleVertex.cpp
rename to Gen/Generators/src/Components/BeamSpotMarkovChainSampleVertex.cpp
diff --git a/Gen/Generators/src/component/BeamSpotMarkovChainSampleVertex.h b/Gen/Generators/src/Components/BeamSpotMarkovChainSampleVertex.h
similarity index 100%
rename from Gen/Generators/src/component/BeamSpotMarkovChainSampleVertex.h
rename to Gen/Generators/src/Components/BeamSpotMarkovChainSampleVertex.h
diff --git a/Gen/Generators/src/component/BeamSpotSmearVertex.cpp b/Gen/Generators/src/Components/BeamSpotSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/BeamSpotSmearVertex.cpp
rename to Gen/Generators/src/Components/BeamSpotSmearVertex.cpp
diff --git a/Gen/Generators/src/component/BeamSpotSmearVertex.h b/Gen/Generators/src/Components/BeamSpotSmearVertex.h
similarity index 96%
rename from Gen/Generators/src/component/BeamSpotSmearVertex.h
rename to Gen/Generators/src/Components/BeamSpotSmearVertex.h
index c762524c..d8d86bcd 100755
--- a/Gen/Generators/src/component/BeamSpotSmearVertex.h
+++ b/Gen/Generators/src/Components/BeamSpotSmearVertex.h
@@ -36,13 +36,13 @@ public:
   virtual ~BeamSpotSmearVertex( ); ///< Destructor
 
   /// Initialize function
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
 
   /** Implementation of IVertexSmearingTool::smearVertex.
    *  Gaussian smearing of spatial position of primary event truncated
    *  at a given number of sigma. 
    */
-  virtual StatusCode smearVertex( HepMC3::GenEventPtr theEvent , HepRandomEnginePtr & engine ) ;
+  virtual StatusCode smearVertex( HepMC3::GenEventPtr theEvent , HepRandomEnginePtr & engine ) override;
   
  private:
   /// Number of sigma above which to cut for x-axis smearing (set by options)
diff --git a/Gen/Generators/src/component/CollidingBeams.cpp b/Gen/Generators/src/Components/CollidingBeams.cpp
similarity index 100%
rename from Gen/Generators/src/component/CollidingBeams.cpp
rename to Gen/Generators/src/Components/CollidingBeams.cpp
diff --git a/Gen/Generators/src/component/CollidingBeams.h b/Gen/Generators/src/Components/CollidingBeams.h
similarity index 93%
rename from Gen/Generators/src/component/CollidingBeams.h
rename to Gen/Generators/src/Components/CollidingBeams.h
index 067f72d4..ffb48b06 100755
--- a/Gen/Generators/src/component/CollidingBeams.h
+++ b/Gen/Generators/src/Components/CollidingBeams.h
@@ -37,7 +37,7 @@ class CollidingBeams : public GaudiTool, virtual public IBeamTool {
   /** Implements IBeamTool::getMeanBeams
    */
   virtual void getMeanBeams( Gaudi::XYZVector & pBeam1 , 
-                             Gaudi::XYZVector & pBeam2 ) const ;
+                             Gaudi::XYZVector & pBeam2 ) const override;
   
   /** Implements IBeamTool::getBeams
    *  Compute beam 3-momentum taking into account the horizontal and vertical
@@ -45,7 +45,7 @@ class CollidingBeams : public GaudiTool, virtual public IBeamTool {
    *  with an angular smearing equal to (emittance/beta*)^1/2.
    */
   virtual void getBeams( Gaudi::XYZVector & pBeam1 , 
-                         Gaudi::XYZVector & pBeam2 ) ;
+                         Gaudi::XYZVector & pBeam2 ) override;
 
  private:
   std::string m_beamParameters ; ///< Location of beam parameters (set by options)
diff --git a/Gen/Generators/src/component/FixedLuminosity.cpp b/Gen/Generators/src/Components/FixedLuminosity.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedLuminosity.cpp
rename to Gen/Generators/src/Components/FixedLuminosity.cpp
diff --git a/Gen/Generators/src/component/FixedLuminosity.h b/Gen/Generators/src/Components/FixedLuminosity.h
similarity index 94%
rename from Gen/Generators/src/component/FixedLuminosity.h
rename to Gen/Generators/src/Components/FixedLuminosity.h
index ad8b0c84..2f9f100e 100755
--- a/Gen/Generators/src/component/FixedLuminosity.h
+++ b/Gen/Generators/src/Components/FixedLuminosity.h
@@ -38,10 +38,10 @@ public:
   virtual ~FixedLuminosity( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize( ) override;
 
   /** Implements IPileUpTool::numberOfPileUp
    *  Returns the number of pile-up interactions in one event. It follows
@@ -49,10 +49,10 @@ public:
    *  mean = Luminosity * cross_section / crossing_rate.
    *  The fixed luminosity is returned in the GenHeader.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters( ) override;
 
 protected:
 
diff --git a/Gen/Generators/src/component/FixedLuminosityForRareProcess.cpp b/Gen/Generators/src/Components/FixedLuminosityForRareProcess.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedLuminosityForRareProcess.cpp
rename to Gen/Generators/src/Components/FixedLuminosityForRareProcess.cpp
diff --git a/Gen/Generators/src/component/FixedLuminosityForRareProcess.h b/Gen/Generators/src/Components/FixedLuminosityForRareProcess.h
similarity index 100%
rename from Gen/Generators/src/component/FixedLuminosityForRareProcess.h
rename to Gen/Generators/src/Components/FixedLuminosityForRareProcess.h
diff --git a/Gen/Generators/src/component/FixedLuminosityForSpillOver.cpp b/Gen/Generators/src/Components/FixedLuminosityForSpillOver.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedLuminosityForSpillOver.cpp
rename to Gen/Generators/src/Components/FixedLuminosityForSpillOver.cpp
diff --git a/Gen/Generators/src/component/FixedLuminosityForSpillOver.h b/Gen/Generators/src/Components/FixedLuminosityForSpillOver.h
similarity index 92%
rename from Gen/Generators/src/component/FixedLuminosityForSpillOver.h
rename to Gen/Generators/src/Components/FixedLuminosityForSpillOver.h
index e39d55ef..9398193c 100644
--- a/Gen/Generators/src/component/FixedLuminosityForSpillOver.h
+++ b/Gen/Generators/src/Components/FixedLuminosityForSpillOver.h
@@ -40,10 +40,10 @@ public:
   virtual ~FixedLuminosityForSpillOver( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize( ) override;
 
   /** Implements IPileUpTool::numberOfPileUp
    *  Returns the number of pile-up interactions in one event. It follows
@@ -51,10 +51,10 @@ public:
    *  mean = Luminosity * cross_section / crossing_rate.
    *  The fixed luminosity is returned as the currentLuminosity.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters( ) override;
 
 protected:
 
diff --git a/Gen/Generators/src/component/FixedNInteractions.cpp b/Gen/Generators/src/Components/FixedNInteractions.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedNInteractions.cpp
rename to Gen/Generators/src/Components/FixedNInteractions.cpp
diff --git a/Gen/Generators/src/component/FixedNInteractions.h b/Gen/Generators/src/Components/FixedNInteractions.h
similarity index 92%
rename from Gen/Generators/src/component/FixedNInteractions.h
rename to Gen/Generators/src/Components/FixedNInteractions.h
index 6dc24e6c..72ec8cd2 100755
--- a/Gen/Generators/src/component/FixedNInteractions.h
+++ b/Gen/Generators/src/Components/FixedNInteractions.h
@@ -36,16 +36,16 @@ class FixedNInteractions : public GaudiTool, virtual public IPileUpTool {
   virtual ~FixedNInteractions( ); ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /** Returns a constant number of pile-up interactions.
    *  Implementation of IPileUpTool::numberOfPileUp. 
    *  Returns a luminosity equal to 0.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & ) override;
   
   /// Implementation of IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters( ) override;
   
  private:  
   /// Number of interactions to generate (set by job options)
diff --git a/Gen/Generators/src/component/FixedTarget.cpp b/Gen/Generators/src/Components/FixedTarget.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedTarget.cpp
rename to Gen/Generators/src/Components/FixedTarget.cpp
diff --git a/Gen/Generators/src/component/FixedTarget.h b/Gen/Generators/src/Components/FixedTarget.h
similarity index 91%
rename from Gen/Generators/src/component/FixedTarget.h
rename to Gen/Generators/src/Components/FixedTarget.h
index ea9ebe92..3cb81c8f 100755
--- a/Gen/Generators/src/component/FixedTarget.h
+++ b/Gen/Generators/src/Components/FixedTarget.h
@@ -35,15 +35,15 @@ class FixedTarget : public GaudiTool, virtual public IBeamTool {
   virtual ~FixedTarget( ); ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize( ) ;  
+  virtual StatusCode initialize( ) override;  
   
   /// Implements IBeamTool::getMeanBeams. See CollidingBeams::getMeanBeams
   virtual void getMeanBeams( Gaudi::XYZVector & pBeam1 , 
-                             Gaudi::XYZVector & pBeam2 ) const ;
+                             Gaudi::XYZVector & pBeam2 ) const override;
   
   /// Implements IBeamTool::getBeams. See CollidingBeams::getBeams
   virtual void getBeams( Gaudi::XYZVector & pBeam1 , 
-                         Gaudi::XYZVector & pBeam2 ) ;
+                         Gaudi::XYZVector & pBeam2 ) override;
   
  private:
   std::string m_beamParameters ; ///< Location of beam parameters (set by options)
diff --git a/Gen/Generators/src/component/FlatSmearVertex.cpp b/Gen/Generators/src/Components/FlatSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/FlatSmearVertex.cpp
rename to Gen/Generators/src/Components/FlatSmearVertex.cpp
diff --git a/Gen/Generators/src/component/FlatSmearVertex.h b/Gen/Generators/src/Components/FlatSmearVertex.h
similarity index 100%
rename from Gen/Generators/src/component/FlatSmearVertex.h
rename to Gen/Generators/src/Components/FlatSmearVertex.h
diff --git a/Gen/Generators/src/component/FlatZSmearVertex.cpp b/Gen/Generators/src/Components/FlatZSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/FlatZSmearVertex.cpp
rename to Gen/Generators/src/Components/FlatZSmearVertex.cpp
diff --git a/Gen/Generators/src/component/FlatZSmearVertex.h b/Gen/Generators/src/Components/FlatZSmearVertex.h
similarity index 100%
rename from Gen/Generators/src/component/FlatZSmearVertex.h
rename to Gen/Generators/src/Components/FlatZSmearVertex.h
diff --git a/Gen/Generators/src/component/GenerationComp.cpp b/Gen/Generators/src/Components/GenerationComp.cpp
similarity index 100%
rename from Gen/Generators/src/component/GenerationComp.cpp
rename to Gen/Generators/src/Components/GenerationComp.cpp
diff --git a/Gen/Generators/src/component/HepMCWriter.cpp b/Gen/Generators/src/Components/HepMCWriter.cpp
similarity index 100%
rename from Gen/Generators/src/component/HepMCWriter.cpp
rename to Gen/Generators/src/Components/HepMCWriter.cpp
diff --git a/Gen/Generators/src/component/HistoSmearVertex.cpp b/Gen/Generators/src/Components/HistoSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/HistoSmearVertex.cpp
rename to Gen/Generators/src/Components/HistoSmearVertex.cpp
diff --git a/Gen/Generators/src/component/HistoSmearVertex.h b/Gen/Generators/src/Components/HistoSmearVertex.h
similarity index 100%
rename from Gen/Generators/src/component/HistoSmearVertex.h
rename to Gen/Generators/src/Components/HistoSmearVertex.h
diff --git a/Gen/Generators/src/component/Inclusive.cpp b/Gen/Generators/src/Components/Inclusive.cpp
similarity index 100%
rename from Gen/Generators/src/component/Inclusive.cpp
rename to Gen/Generators/src/Components/Inclusive.cpp
diff --git a/Gen/Generators/src/component/Inclusive.h b/Gen/Generators/src/Components/Inclusive.h
similarity index 100%
rename from Gen/Generators/src/component/Inclusive.h
rename to Gen/Generators/src/Components/Inclusive.h
diff --git a/Gen/Generators/src/component/MergedEventsFilter.cpp b/Gen/Generators/src/Components/MergedEventsFilter.cpp
similarity index 100%
rename from Gen/Generators/src/component/MergedEventsFilter.cpp
rename to Gen/Generators/src/Components/MergedEventsFilter.cpp
diff --git a/Gen/Generators/src/component/MergedEventsFilter.h b/Gen/Generators/src/Components/MergedEventsFilter.h
similarity index 100%
rename from Gen/Generators/src/component/MergedEventsFilter.h
rename to Gen/Generators/src/Components/MergedEventsFilter.h
diff --git a/Gen/Generators/src/component/MinimumBias.cpp b/Gen/Generators/src/Components/MinimumBias.cpp
similarity index 100%
rename from Gen/Generators/src/component/MinimumBias.cpp
rename to Gen/Generators/src/Components/MinimumBias.cpp
diff --git a/Gen/Generators/src/component/MinimumBias.h b/Gen/Generators/src/Components/MinimumBias.h
similarity index 100%
rename from Gen/Generators/src/component/MinimumBias.h
rename to Gen/Generators/src/Components/MinimumBias.h
diff --git a/Gen/Generators/src/component/PoissonPileUp.cpp b/Gen/Generators/src/Components/PoissonPileUp.cpp
similarity index 100%
rename from Gen/Generators/src/component/PoissonPileUp.cpp
rename to Gen/Generators/src/Components/PoissonPileUp.cpp
diff --git a/Gen/Generators/src/component/PoissonPileUp.h b/Gen/Generators/src/Components/PoissonPileUp.h
similarity index 100%
rename from Gen/Generators/src/component/PoissonPileUp.h
rename to Gen/Generators/src/Components/PoissonPileUp.h
diff --git a/Gen/Generators/src/component/ReadHepMCAsciiFile.cpp b/Gen/Generators/src/Components/ReadHepMCAsciiFile.cpp
similarity index 89%
rename from Gen/Generators/src/component/ReadHepMCAsciiFile.cpp
rename to Gen/Generators/src/Components/ReadHepMCAsciiFile.cpp
index b59cb966..030809d0 100755
--- a/Gen/Generators/src/component/ReadHepMCAsciiFile.cpp
+++ b/Gen/Generators/src/Components/ReadHepMCAsciiFile.cpp
@@ -57,8 +57,7 @@ class ReadHepMCAsciiFile
 {
 public:
   /// initialization of the tool 
-  virtual StatusCode initialize () 
-  {
+  virtual StatusCode initialize () override {
     StatusCode sc = GaudiTool::initialize () ;
     if ( sc.isFailure() ) { return sc ; }
     /// check the output file 
@@ -69,15 +68,14 @@ public:
     return StatusCode::SUCCESS ;
   }
   /// finalization of the tool 
-  virtual StatusCode finalize   () 
-  {
+  virtual StatusCode finalize () override {
     // delete the stream  (close the file!)
     if ( 0 != m_file ) { delete m_file ; m_file = 0 ; }
     // finalize the base class ;
     return GaudiTool::finalize() ;
   }
 public:
-  virtual StatusCode initializeGenerator() { return StatusCode::SUCCESS ; } 
+  virtual StatusCode initializeGenerator() override { return StatusCode::SUCCESS ; } 
   
   // ===================================================================
   /** Generate a primary interaction. 
@@ -91,24 +89,22 @@ public:
    */
   virtual StatusCode generateEvent 
   ( HepMC3::GenEventPtr theEvent , 
-    LHCb::GenCollision * theInfo , HepRandomEnginePtr & ) const;
+    LHCb::GenCollision * theInfo , HepRandomEnginePtr & ) const override;
   // ===================================================================
   /// Declare a particle stable to the production generator.
-  virtual void setStable
-  ( const LHCb::ParticleProperty * /* thePP */ ) { }
+  virtual void setStable( const LHCb::ParticleProperty* /* thePP */ ) override {};
   // ===================================================================
   /** Update the properties of the particle in the production generator
    *  with values from the particle property service.
    */
   // ===================================================================
-  virtual void updateParticleProperties
-  ( const LHCb::ParticleProperty * /* thePP */ ) {};
+  virtual void updateParticleProperties( const LHCb::ParticleProperty * /* thePP */ ) override {};
   // ===================================================================
   /// Turn off the fragmentation step in the generation.
-  virtual void turnOffFragmentation  ( ) {} ;
+  virtual void turnOffFragmentation() override {};
   // ===================================================================
   /// Turn on the fragmentation step in the generation.
-  virtual void turnOnFragmentation   ( )  {}  ;
+  virtual void turnOnFragmentation() override {};
   // ===================================================================
   /** Hadronize the event.
    *  @param[in,out] theEvent  Unfragmented event to hadronize.
@@ -118,28 +114,24 @@ public:
   virtual StatusCode hadronize
   ( HepMC3::GenEventPtr     /* theEvent */ , 
     LHCb::GenCollision * /* theInfo  */,
-    HepRandomEnginePtr & ) { return StatusCode::SUCCESS ; }
+    HepRandomEnginePtr & ) override { return StatusCode::SUCCESS; };
   // ===================================================================
   /// Save the parton level event (when the fragmentation is turned off)
-  virtual void savePartonEvent
-  ( HepMC3::GenEventPtr /* theEvent */ ) {} ;
+  virtual void savePartonEvent( HepMC3::GenEventPtr /* theEvent */ ) override {};
   // ===================================================================
   /// Retrieve the previously saved parton event to re-hadronize it.
-  virtual void retrievePartonEvent
-  ( HepMC3::GenEventPtr /* theEvent */ ) {} ;
+  virtual void retrievePartonEvent( HepMC3::GenEventPtr /* theEvent */ ) override {};
   // ===================================================================
   /// Print configuration of production generator 
-  virtual void printRunningConditions( ) const {} ;
+  virtual void printRunningConditions( ) const override {};
   // ===================================================================
   /** Define special particles whose properties must not be updated from 
    *  the particle property service (like mass of top quark, ...)
    */
-  virtual bool isSpecialParticle
-  ( const LHCb::ParticleProperty* /* thePP */ ) const { return true ; }
+  virtual bool isSpecialParticle( const LHCb::ParticleProperty* /* thePP */ ) const override { return true; };
   // ===================================================================
   /// Prepare the generator to force fragmentationto in the thePdgId flavour.
-  virtual StatusCode setupForcedFragmentation
-  ( const int /* thePdgId */ ) { return StatusCode::SUCCESS ; };
+  virtual StatusCode setupForcedFragmentation( const int /* thePdgId */ ) override { return StatusCode::SUCCESS; };
   // ===================================================================
   /** standard constructor
    *  @param type tool type(?)
diff --git a/Gen/Generators/src/component/SaveSignalBInformation.cpp b/Gen/Generators/src/Components/SaveSignalBInformation.cpp
similarity index 100%
rename from Gen/Generators/src/component/SaveSignalBInformation.cpp
rename to Gen/Generators/src/Components/SaveSignalBInformation.cpp
diff --git a/Gen/Generators/src/component/SaveSignalBInformation.h b/Gen/Generators/src/Components/SaveSignalBInformation.h
similarity index 100%
rename from Gen/Generators/src/component/SaveSignalBInformation.h
rename to Gen/Generators/src/Components/SaveSignalBInformation.h
diff --git a/Gen/Generators/src/component/SignalForcedFragmentation.cpp b/Gen/Generators/src/Components/SignalForcedFragmentation.cpp
similarity index 100%
rename from Gen/Generators/src/component/SignalForcedFragmentation.cpp
rename to Gen/Generators/src/Components/SignalForcedFragmentation.cpp
diff --git a/Gen/Generators/src/component/SignalForcedFragmentation.h b/Gen/Generators/src/Components/SignalForcedFragmentation.h
similarity index 100%
rename from Gen/Generators/src/component/SignalForcedFragmentation.h
rename to Gen/Generators/src/Components/SignalForcedFragmentation.h
diff --git a/Gen/Generators/src/component/SignalPlain.cpp b/Gen/Generators/src/Components/SignalPlain.cpp
similarity index 100%
rename from Gen/Generators/src/component/SignalPlain.cpp
rename to Gen/Generators/src/Components/SignalPlain.cpp
diff --git a/Gen/Generators/src/component/SignalPlain.h b/Gen/Generators/src/Components/SignalPlain.h
similarity index 100%
rename from Gen/Generators/src/component/SignalPlain.h
rename to Gen/Generators/src/Components/SignalPlain.h
diff --git a/Gen/Generators/src/component/SignalRepeatedHadronization.cpp b/Gen/Generators/src/Components/SignalRepeatedHadronization.cpp
similarity index 100%
rename from Gen/Generators/src/component/SignalRepeatedHadronization.cpp
rename to Gen/Generators/src/Components/SignalRepeatedHadronization.cpp
diff --git a/Gen/Generators/src/component/SignalRepeatedHadronization.h b/Gen/Generators/src/Components/SignalRepeatedHadronization.h
similarity index 100%
rename from Gen/Generators/src/component/SignalRepeatedHadronization.h
rename to Gen/Generators/src/Components/SignalRepeatedHadronization.h
diff --git a/Gen/Generators/src/component/StandAloneDecayTool.cpp b/Gen/Generators/src/Components/StandAloneDecayTool.cpp
similarity index 100%
rename from Gen/Generators/src/component/StandAloneDecayTool.cpp
rename to Gen/Generators/src/Components/StandAloneDecayTool.cpp
diff --git a/Gen/Generators/src/component/StandAloneDecayTool.h b/Gen/Generators/src/Components/StandAloneDecayTool.h
similarity index 100%
rename from Gen/Generators/src/component/StandAloneDecayTool.h
rename to Gen/Generators/src/Components/StandAloneDecayTool.h
diff --git a/Gen/Generators/src/component/UniformSmearVertex.cpp b/Gen/Generators/src/Components/UniformSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/UniformSmearVertex.cpp
rename to Gen/Generators/src/Components/UniformSmearVertex.cpp
diff --git a/Gen/Generators/src/component/UniformSmearVertex.h b/Gen/Generators/src/Components/UniformSmearVertex.h
similarity index 97%
rename from Gen/Generators/src/component/UniformSmearVertex.h
rename to Gen/Generators/src/Components/UniformSmearVertex.h
index 9ad1c792..b3f80ab0 100755
--- a/Gen/Generators/src/component/UniformSmearVertex.h
+++ b/Gen/Generators/src/Components/UniformSmearVertex.h
@@ -42,14 +42,14 @@ class UniformSmearVertex : public GaudiTool,
   virtual ~UniformSmearVertex( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize() override;
   
   /** Implements IVertexSmearingTool::smearVertex.
    *  Does the same than BeamSpotSmearVertex::smearVertex for the x and y
    *  direction but generates flat distribution for the z-coordinate of
    *  the primary vertex.
    */
-  virtual StatusCode smearVertex( HepMC3::GenEventPtr theEvent , HepRandomEnginePtr & engine ) ;
+  virtual StatusCode smearVertex( HepMC3::GenEventPtr theEvent , HepRandomEnginePtr & engine ) override;
   
  private:
   /// Maximum value for the r coordinate of the vertex (set by options)
diff --git a/Gen/Generators/src/component/VariableLuminosity.cpp b/Gen/Generators/src/Components/VariableLuminosity.cpp
similarity index 100%
rename from Gen/Generators/src/component/VariableLuminosity.cpp
rename to Gen/Generators/src/Components/VariableLuminosity.cpp
diff --git a/Gen/Generators/src/component/VariableLuminosity.h b/Gen/Generators/src/Components/VariableLuminosity.h
similarity index 95%
rename from Gen/Generators/src/component/VariableLuminosity.h
rename to Gen/Generators/src/Components/VariableLuminosity.h
index fdb9edd3..86e466a3 100755
--- a/Gen/Generators/src/component/VariableLuminosity.h
+++ b/Gen/Generators/src/Components/VariableLuminosity.h
@@ -39,10 +39,10 @@ public:
   virtual ~VariableLuminosity( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize() override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize() override;
 
   /** Compute number of interactions and returns luminosity
    *  Implements IPileUpTool::numberOfPileUp.
@@ -52,10 +52,10 @@ public:
    *  The mean luminosity is given in options so the maximum luminosity 
    *  (at t=0) is computed using the fill duration.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters() override;
 
 private:
   /// Location where to store FSR counters (set by options)
diff --git a/Gen/Generators/src/component/XmlCounterLogFile.cpp b/Gen/Generators/src/Components/XmlCounterLogFile.cpp
similarity index 100%
rename from Gen/Generators/src/component/XmlCounterLogFile.cpp
rename to Gen/Generators/src/Components/XmlCounterLogFile.cpp
diff --git a/Gen/Generators/src/component/XmlCounterLogFile.h b/Gen/Generators/src/Components/XmlCounterLogFile.h
similarity index 81%
rename from Gen/Generators/src/component/XmlCounterLogFile.h
rename to Gen/Generators/src/Components/XmlCounterLogFile.h
index dd78957b..92c9ff30 100644
--- a/Gen/Generators/src/component/XmlCounterLogFile.h
+++ b/Gen/Generators/src/Components/XmlCounterLogFile.h
@@ -37,34 +37,34 @@ public:
   virtual ~XmlCounterLogFile( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize() override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize() override;
 
   /// Add efficiency number
   virtual void addEfficiency( const std::string & name , const unsigned int after , 
                               const unsigned int before , const double fraction , 
-                              const double err_fraction ) ;
+                              const double err_fraction ) override;
 
-  virtual void addCounter( const std::string & name , const unsigned int value ) ; 
+  virtual void addCounter( const std::string & name , const unsigned int value ) override; 
 
   virtual void addFraction( const std::string & name , const unsigned int number , 
-                            const double fraction , const double err_fraction ) ;
+                            const double fraction , const double err_fraction ) override;
 
   virtual void addCrossSection( const std::string & name , 
                                 const unsigned int processId , 
                                 const unsigned int number , 
-                                const double value ) ;
+                                const double value ) override;
 
-  virtual void addEventType( const unsigned int evType ) ;
+  virtual void addEventType( const unsigned int evType ) override;
 
   /// Add the Gauss version
-  virtual void addGaussVersion( const std::string & version ) ;
+  virtual void addGaussVersion( const std::string & version ) override;
 
-  virtual void addMethod( const std::string & type ) ;
+  virtual void addMethod( const std::string & type ) override;
 
-  virtual void addGenerator( const std::string & generator ) ;
+  virtual void addGenerator( const std::string & generator ) override;
 
 protected:
 
diff --git a/Gen/Generators/src/component/not_yet_ported/Special.cpp b/Gen/Generators/src/Components/not_yet_ported/Special.cpp
similarity index 100%
rename from Gen/Generators/src/component/not_yet_ported/Special.cpp
rename to Gen/Generators/src/Components/not_yet_ported/Special.cpp
diff --git a/Gen/Generators/src/component/not_yet_ported/Special.h b/Gen/Generators/src/Components/not_yet_ported/Special.h
similarity index 100%
rename from Gen/Generators/src/component/not_yet_ported/Special.h
rename to Gen/Generators/src/Components/not_yet_ported/Special.h
diff --git a/Gen/Generators/src/component/scrapyard/ApplyPhotos.cpp b/Gen/Generators/src/Components/scrapyard/ApplyPhotos.cpp
similarity index 100%
rename from Gen/Generators/src/component/scrapyard/ApplyPhotos.cpp
rename to Gen/Generators/src/Components/scrapyard/ApplyPhotos.cpp
diff --git a/Gen/Generators/src/component/scrapyard/ApplyPhotos.h b/Gen/Generators/src/Components/scrapyard/ApplyPhotos.h
similarity index 100%
rename from Gen/Generators/src/component/scrapyard/ApplyPhotos.h
rename to Gen/Generators/src/Components/scrapyard/ApplyPhotos.h
diff --git a/Gen/Generators/src/component/scrapyard/RepeatDecay.cpp b/Gen/Generators/src/Components/scrapyard/RepeatDecay.cpp
similarity index 100%
rename from Gen/Generators/src/component/scrapyard/RepeatDecay.cpp
rename to Gen/Generators/src/Components/scrapyard/RepeatDecay.cpp
diff --git a/Gen/Generators/src/component/scrapyard/RepeatDecay.h b/Gen/Generators/src/Components/scrapyard/RepeatDecay.h
similarity index 100%
rename from Gen/Generators/src/component/scrapyard/RepeatDecay.h
rename to Gen/Generators/src/Components/scrapyard/RepeatDecay.h
diff --git a/Gen/LbPGuns/CMakeLists.txt b/Gen/LbPGuns/CMakeLists.txt
index 9aa292f3..fc239984 100644
--- a/Gen/LbPGuns/CMakeLists.txt
+++ b/Gen/LbPGuns/CMakeLists.txt
@@ -8,29 +8,28 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: LbPGuns
-################################################################################
-gaudi_subdir(LbPGuns v6r1)
-
-gaudi_depends_on_subdirs(
-                         #FIXME: Det/DetDesc
-                         Event/GenEvent
-                         GaudiAlg
-                         Kernel/LHCbKernel
-                         Gen/GenInterfaces
-                         Gen/Generators
-                         HepMC3
-                         )
-
-AddHepMC3()
+#[=======================================================================[.rst:
+Gen/LbPGuns
+-----------
+#]=======================================================================]
+gaudi_add_header_only_library(LbPGunsLib)
 
 gaudi_add_module(LbPGuns
-                 src/*.cpp
-                 INCLUDE_DIRS Gen/GenInterfaces ${HEPMC3_INCLUDE_DIR}
-                 LINK_LIBRARIES GenEvent GaudiAlgLib LHCbKernel GeneratorsLib ${HEPMC3_LIBRARIES})
-
-add_dependencies(LbPGuns HepMC3Ext)
-
-gaudi_install_headers(LbPGuns)
-
+    SOURCES
+    	src/Components/BeamShape.cpp
+	src/Components/Cosmics.cpp
+	src/Components/FixedMomentum.cpp
+	src/Components/FlatNParticles.cpp
+	src/Components/FlatPtRapidity.cpp
+	src/Components/GaussianTheta.cpp
+	src/Components/GenericGun.cpp
+	src/Components/MaterialEval.cpp
+	src/Components/MomentumRange.cpp
+	src/Components/MomentumSpectrum.cpp
+	src/Components/ParticleGun.cpp
+    LINK
+	Gaussino::GeneratorsLib
+	Gaussino::Defaults
+	Gaussino::HepMCUserLib
+	Gaussino::LbPGunsLib
+)
diff --git a/Gen/LbPGuns/LbPGuns/IParticleGunTool.h b/Gen/LbPGuns/include/LbPGuns/IParticleGunTool.h
similarity index 100%
rename from Gen/LbPGuns/LbPGuns/IParticleGunTool.h
rename to Gen/LbPGuns/include/LbPGuns/IParticleGunTool.h
diff --git a/Gen/LbPGuns/src/BeamShape.cpp b/Gen/LbPGuns/src/Components/BeamShape.cpp
similarity index 100%
rename from Gen/LbPGuns/src/BeamShape.cpp
rename to Gen/LbPGuns/src/Components/BeamShape.cpp
diff --git a/Gen/LbPGuns/src/BeamShape.h b/Gen/LbPGuns/src/Components/BeamShape.h
similarity index 95%
rename from Gen/LbPGuns/src/BeamShape.h
rename to Gen/LbPGuns/src/Components/BeamShape.h
index 3abc6b1d..3a64ca8c 100755
--- a/Gen/LbPGuns/src/BeamShape.h
+++ b/Gen/LbPGuns/src/Components/BeamShape.h
@@ -33,15 +33,15 @@ class BeamShape : public GaudiTool , virtual public IParticleGunTool {
   virtual ~BeamShape() ; ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
   
   /// Generate the particle
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr& engine ) ;
+                                 int & pdgId , HepRandomEnginePtr& engine ) override;
                                  
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
   
  private:
   // Setable Properties
diff --git a/Gen/LbPGuns/src/Cosmics.cpp b/Gen/LbPGuns/src/Components/Cosmics.cpp
similarity index 100%
rename from Gen/LbPGuns/src/Cosmics.cpp
rename to Gen/LbPGuns/src/Components/Cosmics.cpp
diff --git a/Gen/LbPGuns/src/Cosmics.h b/Gen/LbPGuns/src/Components/Cosmics.h
similarity index 95%
rename from Gen/LbPGuns/src/Cosmics.h
rename to Gen/LbPGuns/src/Components/Cosmics.h
index feb32a3b..f71a5cab 100755
--- a/Gen/LbPGuns/src/Cosmics.h
+++ b/Gen/LbPGuns/src/Components/Cosmics.h
@@ -38,16 +38,16 @@ class Cosmics : public GaudiTool , virtual public IParticleGunTool {
   virtual ~Cosmics();
   
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , int & pdgId ,
-                                 HepRandomEnginePtr & engine ) ;
+                                 HepRandomEnginePtr & engine ) override;
 
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
     
  private:
 
diff --git a/Gen/LbPGuns/src/FixedMomentum.cpp b/Gen/LbPGuns/src/Components/FixedMomentum.cpp
similarity index 100%
rename from Gen/LbPGuns/src/FixedMomentum.cpp
rename to Gen/LbPGuns/src/Components/FixedMomentum.cpp
diff --git a/Gen/LbPGuns/src/FixedMomentum.h b/Gen/LbPGuns/src/Components/FixedMomentum.h
similarity index 95%
rename from Gen/LbPGuns/src/FixedMomentum.h
rename to Gen/LbPGuns/src/Components/FixedMomentum.h
index 7dd841b0..38a8e1bb 100755
--- a/Gen/LbPGuns/src/FixedMomentum.h
+++ b/Gen/LbPGuns/src/Components/FixedMomentum.h
@@ -37,15 +37,15 @@ class FixedMomentum : public GaudiTool , virtual public IParticleGunTool {
   virtual ~FixedMomentum();
   
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & momentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr& engine ) ;
+                                 int & pdgId , HepRandomEnginePtr& engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
                                  
  private:
   double m_px; ///< px (Set by options)
diff --git a/Gen/LbPGuns/src/FlatNParticles.cpp b/Gen/LbPGuns/src/Components/FlatNParticles.cpp
similarity index 100%
rename from Gen/LbPGuns/src/FlatNParticles.cpp
rename to Gen/LbPGuns/src/Components/FlatNParticles.cpp
diff --git a/Gen/LbPGuns/src/FlatNParticles.h b/Gen/LbPGuns/src/Components/FlatNParticles.h
similarity index 95%
rename from Gen/LbPGuns/src/FlatNParticles.h
rename to Gen/LbPGuns/src/Components/FlatNParticles.h
index e6b87ae0..2f5631c4 100755
--- a/Gen/LbPGuns/src/FlatNParticles.h
+++ b/Gen/LbPGuns/src/Components/FlatNParticles.h
@@ -39,16 +39,16 @@ public:
   virtual ~FlatNParticles( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /** Implements IPileUpTool::numberOfPileUp
    *  Returns the number of particles in one event. It follows
    *  a flat distribution 
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr& engine ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr& engine ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) { ; } ; 
+  virtual void printPileUpCounters( ) override {}; 
   
 protected:
 
diff --git a/Gen/LbPGuns/src/FlatPtRapidity.cpp b/Gen/LbPGuns/src/Components/FlatPtRapidity.cpp
similarity index 100%
rename from Gen/LbPGuns/src/FlatPtRapidity.cpp
rename to Gen/LbPGuns/src/Components/FlatPtRapidity.cpp
diff --git a/Gen/LbPGuns/src/FlatPtRapidity.h b/Gen/LbPGuns/src/Components/FlatPtRapidity.h
similarity index 95%
rename from Gen/LbPGuns/src/FlatPtRapidity.h
rename to Gen/LbPGuns/src/Components/FlatPtRapidity.h
index de7263c8..8630f4c4 100755
--- a/Gen/LbPGuns/src/FlatPtRapidity.h
+++ b/Gen/LbPGuns/src/Components/FlatPtRapidity.h
@@ -37,15 +37,15 @@ class FlatPtRapidity : public GaudiTool , virtual public IParticleGunTool {
   virtual ~FlatPtRapidity();
   
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & momentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr& engine ) ;
+                                 int & pdgId , HepRandomEnginePtr& engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
                                  
  private:  
   double m_minPt;       ///< Minimum pT (Set by options)  
diff --git a/Gen/LbPGuns/src/GaussianTheta.cpp b/Gen/LbPGuns/src/Components/GaussianTheta.cpp
similarity index 100%
rename from Gen/LbPGuns/src/GaussianTheta.cpp
rename to Gen/LbPGuns/src/Components/GaussianTheta.cpp
diff --git a/Gen/LbPGuns/src/GaussianTheta.h b/Gen/LbPGuns/src/Components/GaussianTheta.h
similarity index 95%
rename from Gen/LbPGuns/src/GaussianTheta.h
rename to Gen/LbPGuns/src/Components/GaussianTheta.h
index 7b8e78e5..653b7579 100755
--- a/Gen/LbPGuns/src/GaussianTheta.h
+++ b/Gen/LbPGuns/src/Components/GaussianTheta.h
@@ -37,15 +37,15 @@ class GaussianTheta : public GaudiTool , virtual public IParticleGunTool {
   virtual ~GaussianTheta() ; ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
   
   /// Generate the particle
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr & engine ) ;
+                                 int & pdgId , HepRandomEnginePtr & engine ) override;
                                  
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
   
  private:
   double m_mass ;
diff --git a/Gen/LbPGuns/src/GenericGun.cpp b/Gen/LbPGuns/src/Components/GenericGun.cpp
similarity index 100%
rename from Gen/LbPGuns/src/GenericGun.cpp
rename to Gen/LbPGuns/src/Components/GenericGun.cpp
diff --git a/Gen/LbPGuns/src/GenericGun.h b/Gen/LbPGuns/src/Components/GenericGun.h
similarity index 96%
rename from Gen/LbPGuns/src/GenericGun.h
rename to Gen/LbPGuns/src/Components/GenericGun.h
index 9b7b3764..4933c339 100755
--- a/Gen/LbPGuns/src/GenericGun.h
+++ b/Gen/LbPGuns/src/Components/GenericGun.h
@@ -49,15 +49,15 @@ class GenericGun : public GaudiTool , virtual public IParticleGunTool {
   virtual ~GenericGun() ; ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
   
   /// Generate the particle
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr & engine ) ;
+                                 int & pdgId , HepRandomEnginePtr & engine ) override;
                                  
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
   
  private:
 	// Setable Properties:-
diff --git a/Gen/LbPGuns/src/MaterialEval.cpp b/Gen/LbPGuns/src/Components/MaterialEval.cpp
similarity index 100%
rename from Gen/LbPGuns/src/MaterialEval.cpp
rename to Gen/LbPGuns/src/Components/MaterialEval.cpp
diff --git a/Gen/LbPGuns/src/MaterialEval.h b/Gen/LbPGuns/src/Components/MaterialEval.h
similarity index 95%
rename from Gen/LbPGuns/src/MaterialEval.h
rename to Gen/LbPGuns/src/Components/MaterialEval.h
index fb69e05f..0b349d73 100755
--- a/Gen/LbPGuns/src/MaterialEval.h
+++ b/Gen/LbPGuns/src/Components/MaterialEval.h
@@ -40,15 +40,15 @@ public:
   
   virtual ~MaterialEval();         ///< Destructor
 
-  virtual StatusCode initialize();    ///< Algorithm initialization
+  virtual StatusCode initialize() override;    ///< Algorithm initialization
  
   /// Specialized method called by base class in execute
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , int & pdgId ,
-                                 HepRandomEnginePtr & engine ) ;
+                                 HepRandomEnginePtr & engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
   
 protected:
   
diff --git a/Gen/LbPGuns/src/MomentumRange.cpp b/Gen/LbPGuns/src/Components/MomentumRange.cpp
similarity index 100%
rename from Gen/LbPGuns/src/MomentumRange.cpp
rename to Gen/LbPGuns/src/Components/MomentumRange.cpp
diff --git a/Gen/LbPGuns/src/MomentumRange.h b/Gen/LbPGuns/src/Components/MomentumRange.h
similarity index 95%
rename from Gen/LbPGuns/src/MomentumRange.h
rename to Gen/LbPGuns/src/Components/MomentumRange.h
index 362e07f1..85e2838c 100755
--- a/Gen/LbPGuns/src/MomentumRange.h
+++ b/Gen/LbPGuns/src/Components/MomentumRange.h
@@ -37,15 +37,15 @@ class MomentumRange : public GaudiTool , virtual public IParticleGunTool {
   virtual ~MomentumRange();
   
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & momentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr & engine ) ;
+                                 int & pdgId , HepRandomEnginePtr & engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
                                  
  private:  
   double m_minMom;   ///< Minimum momentum (Set by options)  
diff --git a/Gen/LbPGuns/src/MomentumSpectrum.cpp b/Gen/LbPGuns/src/Components/MomentumSpectrum.cpp
similarity index 100%
rename from Gen/LbPGuns/src/MomentumSpectrum.cpp
rename to Gen/LbPGuns/src/Components/MomentumSpectrum.cpp
diff --git a/Gen/LbPGuns/src/MomentumSpectrum.h b/Gen/LbPGuns/src/Components/MomentumSpectrum.h
similarity index 96%
rename from Gen/LbPGuns/src/MomentumSpectrum.h
rename to Gen/LbPGuns/src/Components/MomentumSpectrum.h
index 612ce918..e6ff8d38 100644
--- a/Gen/LbPGuns/src/MomentumSpectrum.h
+++ b/Gen/LbPGuns/src/Components/MomentumSpectrum.h
@@ -50,15 +50,15 @@ class MomentumSpectrum : public GaudiTool , virtual public IParticleGunTool {
   virtual ~MomentumSpectrum();
 
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & momentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr & engine ) ;
+                                 int & pdgId , HepRandomEnginePtr & engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
 
  private:
   /// Pdg Codes of particles to generate (Set by options)
diff --git a/Gen/LbPGuns/src/ParticleGun.cpp b/Gen/LbPGuns/src/Components/ParticleGun.cpp
similarity index 100%
rename from Gen/LbPGuns/src/ParticleGun.cpp
rename to Gen/LbPGuns/src/Components/ParticleGun.cpp
diff --git a/Gen/LbPGuns/src/ParticleGun.h b/Gen/LbPGuns/src/Components/ParticleGun.h
similarity index 100%
rename from Gen/LbPGuns/src/ParticleGun.h
rename to Gen/LbPGuns/src/Components/ParticleGun.h
diff --git a/Gen/LbPythia8/CMakeLists.txt b/Gen/LbPythia8/CMakeLists.txt
index a696e4a1..04b3cf5a 100644
--- a/Gen/LbPythia8/CMakeLists.txt
+++ b/Gen/LbPythia8/CMakeLists.txt
@@ -8,52 +8,55 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: LbPythia8
-################################################################################
-gaudi_subdir(LbPythia8 v12r0)
-
-gaudi_depends_on_subdirs(Gen/GenInterfaces
-                         Event/GenEvent
-                         Kernel/PartProp
-                         GaudiAlg
-                         NewRnd
-                         HepMC3
-                         HepMCUser
-                         Utils
-                         Defaults)
-
-find_package(Pythia8 COMPONENTS pythia8 pythia8tohepmc)
-AddHepMC3()
-find_package(LHAPDF)
-find_package(Boost COMPONENTS filesystem system)
-find_package(ROOT)
-find_package(CLHEP)
-
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${HEPMC3_INCLUDE_DIRS} ${PYTHIA8_INCLUDE_DIRS})
-
+#[=======================================================================[.rst:
+Gen/LbPytha8
+------------
+#]=======================================================================]
 gaudi_add_library(LbPythia8Lib
-                  src/Lib/*.cpp
-                  NO_PUBLIC_HEADERS
-                  INCLUDE_DIRS Boost Pythia8 ROOT ${HEPMC3_INCLUDE_DIR} Gen/GenInterfaces Defaults HepMCUser Utils NewRnd
-                  LINK_LIBRARIES Boost GaudiAlgLib Pythia8 ${HEPMC3_LIBRARIES} ROOT PartPropLib LHAPDF GenEvent)
-
-add_dependencies(LbPythia8Lib HepMC3Ext)
+    SOURCES
+        src/Lib/BeamToolForPythia8.cpp
+    	src/Lib/LhcbHooks.cpp
+	src/Lib/Pythia8Production.cpp
+	src/Lib/Pythia8ProductionMT.cpp
+    LINK
+        PUBLIC
+	    Pythia8::Pythia8
+	    HepMC3::HepMC3
+	    Gaudi::GaudiAlgLib
+	    LHCb::GenEvent     # TODO: [LHCb DEPENDENCY]
+	    LHCb::PartPropLib  # TODO: [LHCb DEPENDENCY]
+	    Gaussino::GenInterfacesLib
+	    Gaussino::UtilsLib
+	    Gaussino::NewRndLib
+	    Gaussino::HepMCUserLib
+	    Gaussino::Defaults
+)
 
 gaudi_add_module(LbPythia8
-                 src/component/*.cpp
-                 LINK_LIBRARIES LbPythia8Lib)
+    SOURCES
+        src/Components/Pythia8ProductionFactory.cpp
+    LINK
+    	Gaussino::LbPythia8Lib
+)
 
-gaudi_env(SET PYTHIA8XML ${PYTHIA8_XML})
+# TODO: [NEW CMAKE] needed?
+#gaudi_env(SET PYTHIA8XML ${PYTHIA8_XML})
 
 gaudi_add_executable(Pythia8Reproducibility
-                     exec/minimal.cxx
-                     INCLUDE_DIRS Pythia8 ${HEPMC3_INCLUDE_DIR} CLHEP HepMCUtils
-                     LINK_LIBRARIES Pythia8 ${HEPMC3_LIBRARIES} CLHEP HepMCUtils)
-
-find_package(HepMC)
+    SOURCES
+        exec/minimal.cxx
+    LINK
+        Pythia8::Pythia8
+	HepMC3::HepMC3
+	Gaussino::HepMCUtilsLib
+)
 
 gaudi_add_executable(HepMCConverterTest
-                     exec/convtest.cxx
-                     INCLUDE_DIRS Pythia8 ${HEPMC3_INCLUDE_DIR} CLHEP HepMCUtils HepMC
-                     LINK_LIBRARIES Pythia8 ${HEPMC3_LIBRARIES} CLHEP HepMCUtils HepMC)
+    SOURCES
+        exec/convtest.cxx
+    LINK
+    	Pythia8::Pythia8
+	HepMC3::HepMC3
+	HepMC::HepMC
+	Gaussino::HepMCUtilsLib
+)
diff --git a/Gen/LbPythia8/src/exec/convtest.cxx b/Gen/LbPythia8/exec/convtest.cxx
similarity index 100%
rename from Gen/LbPythia8/src/exec/convtest.cxx
rename to Gen/LbPythia8/exec/convtest.cxx
diff --git a/Gen/LbPythia8/src/exec/minimal.cxx b/Gen/LbPythia8/exec/minimal.cxx
similarity index 99%
rename from Gen/LbPythia8/src/exec/minimal.cxx
rename to Gen/LbPythia8/exec/minimal.cxx
index 10493248..3a69487e 100644
--- a/Gen/LbPythia8/src/exec/minimal.cxx
+++ b/Gen/LbPythia8/exec/minimal.cxx
@@ -27,7 +27,7 @@ class RndForPythia : public Pythia8::RndmEngine
 {
 public:
   RndForPythia( CLHEP::HepRandomEngine& engine ) : m_gen( engine, 0, 1 ) {}
-  virtual double flat()
+  virtual double flat() override
   {
     auto val = m_gen();
     return val;
diff --git a/Gen/LbPythia8/LbPythia8/BeamToolForPythia8.h b/Gen/LbPythia8/include/LbPythia8/BeamToolForPythia8.h
similarity index 100%
rename from Gen/LbPythia8/LbPythia8/BeamToolForPythia8.h
rename to Gen/LbPythia8/include/LbPythia8/BeamToolForPythia8.h
diff --git a/Gen/LbPythia8/LbPythia8/LhcbHooks.h b/Gen/LbPythia8/include/LbPythia8/LhcbHooks.h
similarity index 100%
rename from Gen/LbPythia8/LbPythia8/LhcbHooks.h
rename to Gen/LbPythia8/include/LbPythia8/LhcbHooks.h
diff --git a/Gen/LbPythia8/LbPythia8/Pythia8Production.h b/Gen/LbPythia8/include/LbPythia8/Pythia8Production.h
similarity index 99%
rename from Gen/LbPythia8/LbPythia8/Pythia8Production.h
rename to Gen/LbPythia8/include/LbPythia8/Pythia8Production.h
index 95f79fe4..7bc0ad13 100755
--- a/Gen/LbPythia8/LbPythia8/Pythia8Production.h
+++ b/Gen/LbPythia8/include/LbPythia8/Pythia8Production.h
@@ -187,7 +187,7 @@ protected:
   class RndForPythia : public Pythia8::RndmEngine {
     public:
     RndForPythia(CLHEP::HepRandomEngine & engine ):m_gen(engine, 0, 1){}
-    virtual double flat(){return m_gen();}
+    virtual double flat() override { return m_gen(); }
 
     private:
       CLHEP::RandFlat m_gen;
diff --git a/Gen/LbPythia8/LbPythia8/Pythia8ProductionMT.h b/Gen/LbPythia8/include/LbPythia8/Pythia8ProductionMT.h
similarity index 99%
rename from Gen/LbPythia8/LbPythia8/Pythia8ProductionMT.h
rename to Gen/LbPythia8/include/LbPythia8/Pythia8ProductionMT.h
index dfdd6db0..34555813 100755
--- a/Gen/LbPythia8/LbPythia8/Pythia8ProductionMT.h
+++ b/Gen/LbPythia8/include/LbPythia8/Pythia8ProductionMT.h
@@ -205,7 +205,7 @@ protected:
   {
   public:
     RndForPythia( CLHEP::HepRandomEngine& engine ) : m_gen( engine, 0, 1 ) {}
-    virtual double flat() { return m_gen(); }
+    virtual double flat() override { return m_gen(); }
 
   private:
     CLHEP::RandFlat m_gen;
diff --git a/Gen/LbPythia8/src/component/Pythia8ProductionFactory.cpp b/Gen/LbPythia8/src/Components/Pythia8ProductionFactory.cpp
similarity index 100%
rename from Gen/LbPythia8/src/component/Pythia8ProductionFactory.cpp
rename to Gen/LbPythia8/src/Components/Pythia8ProductionFactory.cpp
diff --git a/Gen/RndInit/CMakeLists.txt b/Gen/RndInit/CMakeLists.txt
index 2e070390..a2ce1924 100644
--- a/Gen/RndInit/CMakeLists.txt
+++ b/Gen/RndInit/CMakeLists.txt
@@ -8,25 +8,27 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GaussAlgs
-################################################################################
-gaudi_subdir(RndInit v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         NewRnd
-                         Gen/GenBeam
-                         Event/GenEvent
-                         #FIXME: For platform and kernel streaming, I think ?!?!
-                         Kernel/LHCbKernel
-                         Defaults)
+#[=======================================================================[.rst:
+Gen/RndInit
+-----------
+#]=======================================================================]
 
 gaudi_add_library(RndInitLib
-                 src/lib/*.cpp
-                 PUBLIC_HEADERS RndInit
-                 INCLUDE_DIRS GenBeam
-                 LINK_LIBRARIES GaudiAlgLib GenEvent LHCbKernel NewRnd)
+    SOURCES
+        src/Lib/GenRndInit.cpp
+    LINK
+        PUBLIC
+	    Gaudi::GaudiAlgLib
+	    LHCb::GenEvent # TODO: [LHCb DEPENDENCY]
+	    Gaussino::Defaults
+	    Gaussino::NewRndLib
+	    Gaussino::GenBeamLib
+)
 
 gaudi_add_module(RndInit
-                 src/components/*.cpp
-                 LINK_LIBRARIES RndInitLib)
+    SOURCES
+        src/Components/GenRndInitComp.cpp
+	src/Components/SeedingTool.cpp
+    LINK
+        Gaussino::RndInitLib
+)
diff --git a/Gen/RndInit/RndInit/GenRndInit.h b/Gen/RndInit/include/RndInit/GenRndInit.h
similarity index 100%
rename from Gen/RndInit/RndInit/GenRndInit.h
rename to Gen/RndInit/include/RndInit/GenRndInit.h
diff --git a/Gen/RndInit/RndInit/IRndSeedingTool.h b/Gen/RndInit/include/RndInit/IRndSeedingTool.h
similarity index 100%
rename from Gen/RndInit/RndInit/IRndSeedingTool.h
rename to Gen/RndInit/include/RndInit/IRndSeedingTool.h
diff --git a/Gen/RndInit/src/components/GenRndInitComp.cpp b/Gen/RndInit/src/Components/GenRndInitComp.cpp
similarity index 100%
rename from Gen/RndInit/src/components/GenRndInitComp.cpp
rename to Gen/RndInit/src/Components/GenRndInitComp.cpp
diff --git a/Gen/RndInit/src/components/SeedingTool.cpp b/Gen/RndInit/src/Components/SeedingTool.cpp
similarity index 100%
rename from Gen/RndInit/src/components/SeedingTool.cpp
rename to Gen/RndInit/src/Components/SeedingTool.cpp
diff --git a/Gen/RndInit/src/components/SeedingTool.h b/Gen/RndInit/src/Components/SeedingTool.h
similarity index 100%
rename from Gen/RndInit/src/components/SeedingTool.h
rename to Gen/RndInit/src/Components/SeedingTool.h
diff --git a/Gen/RndInit/src/lib/GenRndInit.cpp b/Gen/RndInit/src/Lib/GenRndInit.cpp
similarity index 100%
rename from Gen/RndInit/src/lib/GenRndInit.cpp
rename to Gen/RndInit/src/Lib/GenRndInit.cpp
diff --git a/HepMC3/CMakeLists.txt b/HepMC3/CMakeLists.txt
deleted file mode 100644
index 0bf895c5..00000000
--- a/HepMC3/CMakeLists.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-gaudi_subdir(HepMC3 v3r1)
-
-find_package(ROOT)
-
-# Define EvtGen external project
-include(ExternalProject)
-set(HEPMC3_GIT_SOURCE "https://gitlab.cern.ch/Gaussino/HepMC3.git" CACHE STRING "URL of the HepMC3 git repository")
-set(HEPMC3_GIT_TAG "official_patched" CACHE STRING "Tag of HepMC3 to be used")
-message(STATUS "HepMC3 will use tag \"${HEPMC3_GIT_TAG}\" from repository ${HEPMC3_GIT_SOURCE}")
-message(STATUS "Binary dir = ${PROJECT_BINARY_DIR}")
-message(STATUS "Build command = ${BUILD_COMMAND}")
-message(STATUS "CMake command = ${CMAKE_COMMAND}")
-string(REPLACE "c++" "" HEPMC_CXX_STANDARD "${GAUDI_CXX_STANDARD}")
-
-ExternalProject_Add(HepMC3Ext
-  GIT_REPOSITORY ${HEPMC3_GIT_SOURCE}
-  GIT_TAG ${HEPMC3_GIT_TAG}
-  CMAKE_ARGS 
-       -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-       -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/hepmc3_toolchain.cmake
-       -DHEPMC3_ENABLE_PYTHON=OFF
-       -DHEPMC3_ENABLE_ROOTIO=OFF # FIXME: disabled because of HepMC & HepMC3 namespace collision
-       -DHEPMC3_INSTALL_INTERFACES=ON
-       # Do not install examples (installed directories are detected as
-       # packages by the old Gaudi toolchain):
-       -DHEPMC3_INSTALL_EXAMPLES=OFF
-       -DCMAKE_BUILD_TYPE=Debug
-       -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-       #-DROOT_DIR=${ROOTSYS}
-       -DCMAKE_INSTALL_LIBDIR=lib
-       -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
-       -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
-       -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-       -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-       -DCMAKE_CXX_STANDARD=${HEPMC_CXX_STANDARD}
-  CMAKE_COMMAND ${env_cmd} --xml ${env_xml} cmake
-  BUILD_COMMAND ${env_cmd} --xml ${env_xml} cmake --build .
-)
diff --git a/HepMC3/hepmc3_toolchain.cmake b/HepMC3/hepmc3_toolchain.cmake
deleted file mode 100644
index 1321282c..00000000
--- a/HepMC3/hepmc3_toolchain.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# Special toolchain file that inherits the same heptools version as the
-# used projects.
-#
-#
-# this check is needed because the toolchain is called when checking the
-# compiler (without the proper cache)
-if(NOT CMAKE_SOURCE_DIR MATCHES "CMakeTmp")
-  find_path(heptools_mod_dir UseHEPTools.cmake)
-  message(INFO heptools_mod_dir = ${heptools_mod_dir})
-  set(CMAKE_MODULE_PATH ${heptools_mod_dir} ${CMAKE_MODULE_PATH})
-  if(heptools_version)
-    include(UseHEPTools)
-    use_heptools(${heptools_version})
-  else()
-    include(InheritHEPTools)
-    inherit_heptools()
-  endif()
-
-  # FIXME: make sure we do not pick up unwanted/problematic projects from LCG
-  if(CMAKE_PREFIX_PATH)
-    # - ninja (it requires LD_LIBRARY_PATH set to run)
-    # - Gaudi (we do not want to use it from LCG)
-    # - xenv (conflicts with the version in the build environment)
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*(ninja|Gaudi|xenv)")
-  endif()
-
-  # FIXME: make sure we do not pick up geant from LCG (it requires LD_LIBRARY_PATH set)
-  if(CMAKE_PREFIX_PATH AND CMAKE_VERSION VERSION_GREATER "3.6.0")
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*Geant4")
-  endif()
-endif()
diff --git a/HepMCUser/CMakeLists.txt b/HepMCUser/CMakeLists.txt
index f23511b0..44744f62 100644
--- a/HepMCUser/CMakeLists.txt
+++ b/HepMCUser/CMakeLists.txt
@@ -8,37 +8,31 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: HepMCUser
-#
-#################################################################################
-
-gaudi_subdir(HepMCUser v1r0)
-
-gaudi_depends_on_subdirs(Defaults
-                         GaudiAlg
-                         HepMC3)
-
-gaudi_install_headers(HepMCUser)
-
-find_package(ROOT)
-AddHepMC3()
-
-gaudi_add_library(HepMCUtils
-                  src/utils/*.cpp
-                  PUBLIC_HEADERS HepMCUtils
-                  INCLUDE_DIRS HepMCUser Defaults ${RANGEV3_INCLUDE_DIRS} ROOT
-                  LINK_LIBRARIES ${HEPMC3_LIBRARIES} GaudiAlgLib ROOT PartPropLib)
-
-#gaudi_add_library(HepMCUser
-                  #src/user/*.cpp
-                  #PUBLIC_HEADERS HepMCUtils
-                  #INCLUDE_DIRS HepMCUser Defaults ${RANGEV3_INCLUDE_DIRS} ROOT
-                  #LINK_LIBRARIES ${HEPMC3_LIBRARIES} GaudiAlgLib ROOT)
-
-# FIXME: Force the external build before the Utils here. Hack it time
-add_dependencies(HepMCUtils HepMC3Ext)
+#[=======================================================================[.rst:
+HepMCUser
+---------
+#]=======================================================================]
+
+gaudi_add_header_only_library(HepMCUserLib)
+
+gaudi_add_library(HepMCUtilsLib
+    SOURCES
+        src/Lib/CompareGenEvent.cpp
+        src/Lib/PrintDecayTree.cpp
+	src/Lib/Relatives.cpp
+    LINK
+    	PUBLIC
+            HepMC3::HepMC3
+            HepMC3::HepMC3search
+	    Gaudi::GaudiAlgLib
+	    LHCb::PartPropLib     # TODO: [LHCb DEPENDENCY]
+	    Gaussino::Defaults
+            Gaussino::HepMCUserLib
+)
 
 gaudi_add_executable(compareHepMCEvents
-                     exec/*.cpp
-                     LINK_LIBRARIES HepMCUtils)
+    SOURCES
+        exec/compare.cpp
+    LINK
+        HepMCUtilsLib
+)
diff --git a/HepMCUser/HepMCUser/ParticleAttribute.h b/HepMCUser/include/HepMCUser/ParticleAttribute.h
similarity index 95%
rename from HepMCUser/HepMCUser/ParticleAttribute.h
rename to HepMCUser/include/HepMCUser/ParticleAttribute.h
index c10582f8..72a84aa7 100644
--- a/HepMCUser/HepMCUser/ParticleAttribute.h
+++ b/HepMCUser/include/HepMCUser/ParticleAttribute.h
@@ -20,8 +20,7 @@ namespace HepMC3
     ParticleAttribute() : Attribute(), m_val( nullptr ) {}
     ParticleAttribute( GenParticlePtr val ) : Attribute(), m_val( val ) {}
 
-    bool from_string( const string& att )
-    {
+    bool from_string( const string& att ) override {
       #ifdef HEPMC_HAS_CXX11
       index = std::stoi( att );
       #else
@@ -30,8 +29,7 @@ namespace HepMC3
       return true;
     }
 
-    bool to_string( string& att ) const
-    {
+    bool to_string( string& att ) const override {
       att = std::to_string( m_val->id() );
       return true;
     }
diff --git a/HepMCUser/HepMCUser/Status.h b/HepMCUser/include/HepMCUser/Status.h
similarity index 100%
rename from HepMCUser/HepMCUser/Status.h
rename to HepMCUser/include/HepMCUser/Status.h
diff --git a/HepMCUser/HepMCUser/TemplateAttribute.h b/HepMCUser/include/HepMCUser/TemplateAttribute.h
similarity index 100%
rename from HepMCUser/HepMCUser/TemplateAttribute.h
rename to HepMCUser/include/HepMCUser/TemplateAttribute.h
diff --git a/HepMCUser/HepMCUser/VertexAttribute.h b/HepMCUser/include/HepMCUser/VertexAttribute.h
similarity index 100%
rename from HepMCUser/HepMCUser/VertexAttribute.h
rename to HepMCUser/include/HepMCUser/VertexAttribute.h
diff --git a/HepMCUser/HepMCUser/typedefs.h b/HepMCUser/include/HepMCUser/typedefs.h
similarity index 100%
rename from HepMCUser/HepMCUser/typedefs.h
rename to HepMCUser/include/HepMCUser/typedefs.h
diff --git a/HepMCUser/HepMCUtils/CompareGenEvent.h b/HepMCUser/include/HepMCUtils/CompareGenEvent.h
similarity index 100%
rename from HepMCUser/HepMCUtils/CompareGenEvent.h
rename to HepMCUser/include/HepMCUtils/CompareGenEvent.h
diff --git a/HepMCUser/HepMCUtils/HepMCUtils.h b/HepMCUser/include/HepMCUtils/HepMCUtils.h
similarity index 100%
rename from HepMCUser/HepMCUtils/HepMCUtils.h
rename to HepMCUser/include/HepMCUtils/HepMCUtils.h
diff --git a/HepMCUser/HepMCUtils/PrintDecayTree.h b/HepMCUser/include/HepMCUtils/PrintDecayTree.h
similarity index 100%
rename from HepMCUser/HepMCUtils/PrintDecayTree.h
rename to HepMCUser/include/HepMCUtils/PrintDecayTree.h
diff --git a/HepMCUser/HepMCUtils/Relatives.h b/HepMCUser/include/HepMCUtils/Relatives.h
similarity index 100%
rename from HepMCUser/HepMCUtils/Relatives.h
rename to HepMCUser/include/HepMCUtils/Relatives.h
diff --git a/HepMCUser/src/utils/CompareGenEvent.cpp b/HepMCUser/src/Lib/CompareGenEvent.cpp
similarity index 100%
rename from HepMCUser/src/utils/CompareGenEvent.cpp
rename to HepMCUser/src/Lib/CompareGenEvent.cpp
diff --git a/HepMCUser/src/utils/PrintDecayTree.cpp b/HepMCUser/src/Lib/PrintDecayTree.cpp
similarity index 100%
rename from HepMCUser/src/utils/PrintDecayTree.cpp
rename to HepMCUser/src/Lib/PrintDecayTree.cpp
diff --git a/HepMCUser/src/utils/Relatives.cpp b/HepMCUser/src/Lib/Relatives.cpp
similarity index 100%
rename from HepMCUser/src/utils/Relatives.cpp
rename to HepMCUser/src/Lib/Relatives.cpp
diff --git a/Moni/GaussMonitor/CMakeLists.txt b/Moni/GaussMonitor/CMakeLists.txt
index 7acba270..eb56aa88 100644
--- a/Moni/GaussMonitor/CMakeLists.txt
+++ b/Moni/GaussMonitor/CMakeLists.txt
@@ -8,24 +8,20 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GaussMonitor
-################################################################################
-gaudi_subdir(GaussMonitor v8r2)
-
-gaudi_depends_on_subdirs(Event/GenEvent
-                         Event/MCEvent
-                         GaudiAlg
-                         Defaults
-                         HepMC3
-                         HepMCUser
-                         Kernel/PartProp)
-
-AddHepMC3()
+#[=======================================================================[.rst:
+Moni/GaussMonitor
+-----------------
+#]=======================================================================]
 
 gaudi_add_module(GaussMonitor
-                 src/*.cpp
-                 INCLUDE_DIRS AIDA ${HEPMC3_INCLUDE_DIR} HepMCUser
-                 LINK_LIBRARIES GaudiAlgLib GenEvent PartPropLib ${HEPMC3_LIBRARIES} MCEvent)
-
-add_dependencies(GaussMonitor HepMC3Ext)
+    SOURCES
+        src/Components/GaussGenUtil.cpp
+        src/Components/GenMonitorAlg.cpp
+        src/Components/MCTruthMonitor.cpp
+    LINK
+        HepMC3::HepMC3
+        LHCb::MCEvent     # TODO: [LHCb DEPENDENCY]
+        LHCb::PartPropLib # TODO: [LHCb DEPENDENCY]
+        Gaussino::Defaults
+        Gaussino::HepMCUserLib
+)
diff --git a/Moni/GaussMonitor/src/GaussGenUtil.cpp b/Moni/GaussMonitor/src/Components/GaussGenUtil.cpp
similarity index 100%
rename from Moni/GaussMonitor/src/GaussGenUtil.cpp
rename to Moni/GaussMonitor/src/Components/GaussGenUtil.cpp
diff --git a/Moni/GaussMonitor/src/GaussGenUtil.h b/Moni/GaussMonitor/src/Components/GaussGenUtil.h
similarity index 100%
rename from Moni/GaussMonitor/src/GaussGenUtil.h
rename to Moni/GaussMonitor/src/Components/GaussGenUtil.h
diff --git a/Moni/GaussMonitor/src/GenMonitorAlg.cpp b/Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp
similarity index 100%
rename from Moni/GaussMonitor/src/GenMonitorAlg.cpp
rename to Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp
diff --git a/Moni/GaussMonitor/src/GenMonitorAlg.h b/Moni/GaussMonitor/src/Components/GenMonitorAlg.h
similarity index 100%
rename from Moni/GaussMonitor/src/GenMonitorAlg.h
rename to Moni/GaussMonitor/src/Components/GenMonitorAlg.h
diff --git a/Moni/GaussMonitor/src/MCTruthMonitor.cpp b/Moni/GaussMonitor/src/Components/MCTruthMonitor.cpp
similarity index 100%
rename from Moni/GaussMonitor/src/MCTruthMonitor.cpp
rename to Moni/GaussMonitor/src/Components/MCTruthMonitor.cpp
diff --git a/Moni/GaussMonitor/src/MCTruthMonitor.h b/Moni/GaussMonitor/src/Components/MCTruthMonitor.h
similarity index 100%
rename from Moni/GaussMonitor/src/MCTruthMonitor.h
rename to Moni/GaussMonitor/src/Components/MCTruthMonitor.h
diff --git a/NewRnd/CMakeLists.txt b/NewRnd/CMakeLists.txt
index 89c6a45f..d5c3e09c 100644
--- a/NewRnd/CMakeLists.txt
+++ b/NewRnd/CMakeLists.txt
@@ -8,40 +8,36 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: NewRnd
-################################################################################
-gaudi_subdir(NewRnd v1r0)
-gaudi_depends_on_subdirs(GaudiAlg)
-
-gaudi_depends_on_subdirs(Utils)
-
-find_package(CLHEP)
-find_package(ROOT)
-
-# Decide whether to link against CLHEP:
-set( clhep_lib )
-if( CLHEP_FOUND )
-   set( clhep_lib CLHEP )
-endif()
-
-if( CLHEP_FOUND )
-   include_directories( SYSTEM ${CLHEP_INCLUDE_DIRS} )
-endif()
-
-
-gaudi_add_library(NewRnd
-  src/*.cpp
-  PUBLIC_HEADERS NewRnd
-  INCLUDE_DIRS ${clhep_lib} ROOT Utils
-  LINK_LIBRARIES GaudiAlgLib ${clhep_lib} ROOT GaudiKernel)
+#[=======================================================================[.rst:
+NewRnd
+------
+#]=======================================================================]
+
+gaudi_add_library(NewRndLib
+    SOURCES
+        src/Lib/RndAlgSeeder.cpp
+        src/Lib/RndCommon.cpp
+        src/Lib/RndGlobal.cpp
+    LINK
+        PUBLIC
+            CLHEP::Random
+            Gaudi::GaudiKernel
+            Gaudi::GaudiAlgLib
+            Gaussino::UtilsLib
+)
 
 gaudi_add_module(NewRndComponents
-        src/components/*.cpp
-        LINK_LIBRARIES NewRnd)
+    SOURCES
+        src/Components/Engines.cpp
+    LINK
+        NewRndLib
+)
 
 gaudi_add_executable(GaussinoTestgRandom
-                     exec/GaussinoTestgRandom.cxx
-                     LINK_LIBRARIES NewRnd)
+    SOURCES
+        exec/GaussinoTestgRandom.cxx
+    LINK
+        NewRndLib
+)
 
-gaudi_add_test(QMTest QMTEST)
+gaudi_add_tests(QMTest)
diff --git a/NewRnd/NewRnd/RndAlgSeeder.h b/NewRnd/include/NewRnd/RndAlgSeeder.h
similarity index 100%
rename from NewRnd/NewRnd/RndAlgSeeder.h
rename to NewRnd/include/NewRnd/RndAlgSeeder.h
diff --git a/NewRnd/NewRnd/RndCommon.h b/NewRnd/include/NewRnd/RndCommon.h
similarity index 100%
rename from NewRnd/NewRnd/RndCommon.h
rename to NewRnd/include/NewRnd/RndCommon.h
diff --git a/NewRnd/NewRnd/RndGlobal.h b/NewRnd/include/NewRnd/RndGlobal.h
similarity index 100%
rename from NewRnd/NewRnd/RndGlobal.h
rename to NewRnd/include/NewRnd/RndGlobal.h
diff --git a/NewRnd/src/components/Engines.cpp b/NewRnd/src/Components/Engines.cpp
similarity index 100%
rename from NewRnd/src/components/Engines.cpp
rename to NewRnd/src/Components/Engines.cpp
diff --git a/NewRnd/src/RndAlgSeeder.cpp b/NewRnd/src/Lib/RndAlgSeeder.cpp
similarity index 100%
rename from NewRnd/src/RndAlgSeeder.cpp
rename to NewRnd/src/Lib/RndAlgSeeder.cpp
diff --git a/NewRnd/src/RndCommon.cpp b/NewRnd/src/Lib/RndCommon.cpp
similarity index 100%
rename from NewRnd/src/RndCommon.cpp
rename to NewRnd/src/Lib/RndCommon.cpp
diff --git a/NewRnd/src/RndGlobal.cpp b/NewRnd/src/Lib/RndGlobal.cpp
similarity index 100%
rename from NewRnd/src/RndGlobal.cpp
rename to NewRnd/src/Lib/RndGlobal.cpp
diff --git a/Sim/ExternalDetector/CMakeLists.txt b/Sim/ExternalDetector/CMakeLists.txt
index 1cbfa4d8..3d42eac4 100644
--- a/Sim/ExternalDetector/CMakeLists.txt
+++ b/Sim/ExternalDetector/CMakeLists.txt
@@ -8,31 +8,37 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: ExternalDetector
-################################################################################
-gaudi_subdir(ExternalDetector v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/GiGaMTCore
-                         Sim/GiGaMTFactories)
-
-
-AddHepMC3()                    
-find_package(Boost)
-find_package(CLHEP)
-
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${Geant4_INCLUDE_DIRS})
+#[=======================================================================[.rst:
+Sim/ExternalDetector
+--------------------
 
+Author: Michał Mazurek
+#]=======================================================================]
 gaudi_add_library(ExternalDetectorLib
-                  src/Lib/*.cpp
-                  PUBLIC_HEADERS ExternalDetector
-                  INCLUDE_DIRS GiGaMTFactories XercesC ${HEPMC3_INCLUDE_DIR}
-                  LINK_LIBRARIES GaudiAlgLib GiGaMTCoreRunLib XercesC ${HEPMC3_LIBRARIES} ${GEANT4_LIBS})
+    SOURCES
+        src/Lib/Embedder.cpp
+        src/Lib/MaterialFactory.cpp
+    LINK
+        PUBLIC
+            Gaudi::GaudiAlgLib
+            XercesC::XercesC
+            Geant4::G4digits_hits
+            Geant4::G4geometry
+            Gaussino::GiGaMTFactoriesLib
+            Gaussino::GiGaMTCoreDetLib
+)
 
 gaudi_add_module(ExternalDetector
-                 src/Components/*.cpp
-                 LINK_LIBRARIES ExternalDetectorLib)
+    SOURCES
+        src/Components/CuboidEmbedder.cpp
+        src/Components/MaterialFromChemicalPropertiesFactory.cpp
+        src/Components/MaterialFromElements.cpp
+        src/Components/WorldCreator.cpp
+    LINK
+        Gaussino::ExternalDetectorLib
+        Gaussino::GiGaMTGeoLib
+)
 
-gaudi_install_python_modules()
-gaudi_add_test(QMTest QMTEST)
+gaudi_install(PYTHON)
+gaudi_generate_confuserdb()
+gaudi_add_tests(QMTest)
diff --git a/Sim/ExternalDetector/ExternalDetector/Embedder.h b/Sim/ExternalDetector/include/ExternalDetector/Embedder.h
similarity index 100%
rename from Sim/ExternalDetector/ExternalDetector/Embedder.h
rename to Sim/ExternalDetector/include/ExternalDetector/Embedder.h
diff --git a/Sim/ExternalDetector/ExternalDetector/MaterialFactory.h b/Sim/ExternalDetector/include/ExternalDetector/MaterialFactory.h
similarity index 100%
rename from Sim/ExternalDetector/ExternalDetector/MaterialFactory.h
rename to Sim/ExternalDetector/include/ExternalDetector/MaterialFactory.h
diff --git a/Sim/Gaussino/CMakeLists.txt b/Sim/Gaussino/CMakeLists.txt
index 55e68e50..4efc63fd 100644
--- a/Sim/Gaussino/CMakeLists.txt
+++ b/Sim/Gaussino/CMakeLists.txt
@@ -8,9 +8,10 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-gaudi_subdir(Gaussino v1r0)
-
-gaudi_depends_on_subdirs(Kernel/PartProp)
-
-gaudi_install_python_modules()
-gaudi_add_test(QMTest QMTEST)
+#[=======================================================================[.rst:
+Sim/Gaussino
+------------
+#]=======================================================================]
+gaudi_install(PYTHON)
+gaudi_generate_confuserdb()
+gaudi_add_tests(QMTest)
diff --git a/Sim/Gaussino/tests/scripts/pgun_reproducibility.sh b/Sim/Gaussino/tests/scripts/pgun_reproducibility.sh
index b73bd19e..41157018 100755
--- a/Sim/Gaussino/tests/scripts/pgun_reproducibility.sh
+++ b/Sim/Gaussino/tests/scripts/pgun_reproducibility.sh
@@ -12,4 +12,4 @@
 
 gaudirun.py $GAUSSINOROOT/tests/options/pgun_reproducibility_A.py
 gaudirun.py $GAUSSINOROOT/tests/options/pgun_reproducibility_B.py
-compareHepMCEvents.exe FirstRun-HepMC.txt SecondRun-HepMC.txt
+compareHepMCEvents FirstRun-HepMC.txt SecondRun-HepMC.txt
diff --git a/Sim/GiGaMT/CMakeLists.txt b/Sim/GiGaMT/CMakeLists.txt
index 04fa8ffb..2c141617 100644
--- a/Sim/GiGaMT/CMakeLists.txt
+++ b/Sim/GiGaMT/CMakeLists.txt
@@ -8,37 +8,36 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GiGaMT 
-# This contains the fundamental GiGaMT service that sets up the entire mess in
-# its initialization and provides the function to call that handles the simulation.
-# Also there is the main simulation algorithm that actually uses the service
-#################################################################################
-gaudi_subdir(GiGaMT v1r0)
+#[=======================================================================[.rst:
+Sim/GiGaMT
+----------
 
-gaudi_depends_on_subdirs(GaudiAlg
-                         HepMCUser
-                         NewRnd
-                         Sim/SimInterfaces
-                         Sim/GiGaMTFactories
-                         Sim/GiGaMTTruth
-                         Sim/GiGaMTCore)
-
-AddHepMC3()
-find_package(ROOT COMPONENTS MathCore GenVector)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
+This contains the fundamental GiGaMT service that sets up the entire mess in
+its initialization and provides the function to call that handles the simulation.
+Also there is the main simulation algorithm that actually uses the service
+#]=======================================================================]
 
 gaudi_add_library(GiGaMTLib
-                  src/Lib/*.cpp
-                  PUBLIC_HEADERS GiGaMT 
-                  INCLUDE_DIRS HepMC GiGaMTFactories SimInterfaces HepMCUser GiGaMTTruth ${HEPMC3_INCLUDE_DIR}
-                  LINK_LIBRARIES GaudiAlgLib GiGaMTCoreRunLib ${HEPMC3_LIBRARIES} NewRnd )
-add_dependencies(GiGaMTLib HepMC3Ext)
+    SOURCES
+        src/Lib/GiGaException.cpp
+	src/Lib/GiGaUtil.cpp
+    LINK
+        PUBLIC
+	    Gaussino::GiGaMTFactoriesLib
+	    Gaussino::HepMCUserLib
+	    Gaussino::SimInterfacesLib
+)
 
 gaudi_add_module(GiGaMT
-        src/components/*.cpp
-        LINK_LIBRARIES GiGaMTLib ROOT)
+    SOURCES
+        src/Components/GiGaActionInitializer.cpp
+	src/Components/GiGaAlg.cpp
+	src/Components/GiGaMT.cpp
+	src/Components/GiGaMTISetUpSvc.cpp
+	src/Components/HepMC3ToMCTruthConverter.cpp
+	src/Components/SkipSimAlg.cpp
+    LINK
+        Gaussino::GiGaMTCoreRunLib
+        Gaussino::GiGaMTTruthLib
+        Gaussino::GiGaMTLib
+)
diff --git a/Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h b/Sim/GiGaMT/include/GiGaMT/GiGaActionInitializer.h
similarity index 100%
rename from Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h
rename to Sim/GiGaMT/include/GiGaMT/GiGaActionInitializer.h
diff --git a/Sim/GiGaMT/GiGaMT/GiGaException.h b/Sim/GiGaMT/include/GiGaMT/GiGaException.h
similarity index 100%
rename from Sim/GiGaMT/GiGaMT/GiGaException.h
rename to Sim/GiGaMT/include/GiGaMT/GiGaException.h
diff --git a/Sim/GiGaMT/GiGaMT/GiGaUtil.h b/Sim/GiGaMT/include/GiGaMT/GiGaUtil.h
similarity index 100%
rename from Sim/GiGaMT/GiGaMT/GiGaUtil.h
rename to Sim/GiGaMT/include/GiGaMT/GiGaUtil.h
diff --git a/Sim/GiGaMT/GiGaMT/IGiGaMTSetUpSvc.h b/Sim/GiGaMT/include/GiGaMT/IGiGaMTSetUpSvc.h
similarity index 94%
rename from Sim/GiGaMT/GiGaMT/IGiGaMTSetUpSvc.h
rename to Sim/GiGaMT/include/GiGaMT/IGiGaMTSetUpSvc.h
index fee9ab0d..e8ca5002 100755
--- a/Sim/GiGaMT/GiGaMT/IGiGaMTSetUpSvc.h
+++ b/Sim/GiGaMT/include/GiGaMT/IGiGaMTSetUpSvc.h
@@ -41,12 +41,12 @@ public:
   /** initialize method
    *  @return status code
    */
-  virtual StatusCode initialize() = 0;
+  virtual StatusCode initialize() override = 0;
 
   /** finalize  method
    *  @return status code
    */
-  virtual StatusCode finalize() = 0;
+  virtual StatusCode finalize() override = 0;
 
 public:
 
diff --git a/Sim/GiGaMT/GiGaMT/IGiGaMTSvc.h b/Sim/GiGaMT/include/GiGaMT/IGiGaMTSvc.h
similarity index 94%
rename from Sim/GiGaMT/GiGaMT/IGiGaMTSvc.h
rename to Sim/GiGaMT/include/GiGaMT/IGiGaMTSvc.h
index 420b8cf8..8e0c7f40 100755
--- a/Sim/GiGaMT/GiGaMT/IGiGaMTSvc.h
+++ b/Sim/GiGaMT/include/GiGaMT/IGiGaMTSvc.h
@@ -16,7 +16,7 @@
 #include "GaudiKernel/StatusCode.h"
 #include "GiGaMTCoreRun/G4EventProxy.h"
 #include "NewRnd/RndCommon.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "HepMCUser/typedefs.h"
 
 
@@ -51,12 +51,12 @@ public:
   /**  initialize
    *   @return status code
    */
-  virtual StatusCode initialize() = 0;
+  virtual StatusCode initialize() override = 0;
 
   /**  initialize
    *   @return status code
    */
-  virtual StatusCode finalize() = 0;
+  virtual StatusCode finalize() override = 0;
 
   /**  initialize
    *   TODO: Simulate HepMC events. Currently does not return anything,
diff --git a/Sim/GiGaMT/src/components/GiGaActionInitializer.cpp b/Sim/GiGaMT/src/Components/GiGaActionInitializer.cpp
similarity index 100%
rename from Sim/GiGaMT/src/components/GiGaActionInitializer.cpp
rename to Sim/GiGaMT/src/Components/GiGaActionInitializer.cpp
diff --git a/Sim/GiGaMT/src/components/GiGaAlg.cpp b/Sim/GiGaMT/src/Components/GiGaAlg.cpp
similarity index 100%
rename from Sim/GiGaMT/src/components/GiGaAlg.cpp
rename to Sim/GiGaMT/src/Components/GiGaAlg.cpp
diff --git a/Sim/GiGaMT/src/components/GiGaAlg.h b/Sim/GiGaMT/src/Components/GiGaAlg.h
similarity index 100%
rename from Sim/GiGaMT/src/components/GiGaAlg.h
rename to Sim/GiGaMT/src/Components/GiGaAlg.h
diff --git a/Sim/GiGaMT/src/components/GiGaMT.cpp b/Sim/GiGaMT/src/Components/GiGaMT.cpp
similarity index 100%
rename from Sim/GiGaMT/src/components/GiGaMT.cpp
rename to Sim/GiGaMT/src/Components/GiGaMT.cpp
diff --git a/Sim/GiGaMT/src/components/GiGaMT.h b/Sim/GiGaMT/src/Components/GiGaMT.h
similarity index 100%
rename from Sim/GiGaMT/src/components/GiGaMT.h
rename to Sim/GiGaMT/src/Components/GiGaMT.h
diff --git a/Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp b/Sim/GiGaMT/src/Components/GiGaMTISetUpSvc.cpp
similarity index 100%
rename from Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp
rename to Sim/GiGaMT/src/Components/GiGaMTISetUpSvc.cpp
diff --git a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp b/Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.cpp
similarity index 100%
rename from Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp
rename to Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.cpp
diff --git a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h b/Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.h
similarity index 100%
rename from Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h
rename to Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.h
diff --git a/Sim/GiGaMT/src/components/SkipSimAlg.cpp b/Sim/GiGaMT/src/Components/SkipSimAlg.cpp
similarity index 97%
rename from Sim/GiGaMT/src/components/SkipSimAlg.cpp
rename to Sim/GiGaMT/src/Components/SkipSimAlg.cpp
index 8589681a..785836bf 100755
--- a/Sim/GiGaMT/src/components/SkipSimAlg.cpp
+++ b/Sim/GiGaMT/src/Components/SkipSimAlg.cpp
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 // local
 #include "SkipSimAlg.h"
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
 #include "GiGaMTTruth/IHepMC3ToMCTruthConverter.h"
 #include "Kernel/IParticlePropertySvc.h"
 #include "Kernel/ParticleProperty.h"
diff --git a/Sim/GiGaMT/src/components/SkipSimAlg.h b/Sim/GiGaMT/src/Components/SkipSimAlg.h
similarity index 100%
rename from Sim/GiGaMT/src/components/SkipSimAlg.h
rename to Sim/GiGaMT/src/Components/SkipSimAlg.h
diff --git a/Sim/GiGaMTCore/CMakeLists.txt b/Sim/GiGaMTCore/CMakeLists.txt
index 8a3310ff..97c6be3c 100644
--- a/Sim/GiGaMTCore/CMakeLists.txt
+++ b/Sim/GiGaMTCore/CMakeLists.txt
@@ -15,54 +15,81 @@
 # run managers). While the Gaudi cmake plugins are used to handle this package,
 # none of the modified classes should depend on anything Gaudi related.
 #################################################################################
-gaudi_subdir(GiGaMTCore v1r0)
-gaudi_depends_on_subdirs(NewRnd
-                         Event/MCEvent  # FIXME: Don't like this
-                         HepMC3
-                         HepMCUser)
-
-find_package(CLHEP COMPONENTS Random Vector)
-find_package(XercesC)
-AddHepMC3()
-find_package(ROOT COMPONENTS MathCore GenVector)
-
-FindG4libs(digits_hits event geometry global graphics_reps materials persistency
-           particles processes run tracking track intercoms physicslists)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
+#[=======================================================================[.rst:
+Sim/GiGaMTCore
+--------------
+#]=======================================================================]
 
+gaudi_add_header_only_library(GiGaMTCoreUtilsLib)
+gaudi_add_header_only_library(GiGaMTCoreDetLib)
 
 gaudi_add_library(GiGaMTCoreMessageLib
-                 src/message/*.cpp
-                 PUBLIC_HEADERS GiGaMTCoreMessage)
-
-gaudi_add_library(GiGaMTCoreTruthLib
-                 src/truth/*.cpp
-                 PUBLIC_HEADERS GiGaMTCoreTruth
-                 INCLUDE_DIRS ${HEPMC3_INCLUDE_DIR} CLHEP Geant4 XercesC NewRnd HepMCUtils
-                 LINK_LIBRARIES ${HEPMC3_LIBRARIES} CLHEP ${GEANT4_LIBS} XercesC ${ROOT_LIBRARIES} HepMCUtils MCEvent  GiGaMTCoreMessageLib)
+    SOURCES
+        src/Lib/GiGaMessage.cpp
+)
 
-add_dependencies(GiGaMTCoreTruthLib HepMC3Ext)
-
-gaudi_add_unit_test(test_zMaxTilt tests/src/test_zMaxTilt.cpp
-                    LINK_LIBRARIES GaudiKernel GiGaMTCoreTruthLib
-                    TYPE Boost)
+gaudi_add_library(GiGaMTCoreCutLib
+    SOURCES
+        src/Lib/GaussinoG4UserLimits.cpp
+    LINK
+        PUBLIC
+            CLHEP::Vector
+            CLHEP::Random
+	    Geant4::G4global
+            Gaussino::GiGaMTCoreMessageLib
+)
 
 gaudi_add_library(GiGaMTCoreRunLib
-                 src/run/*.cpp
-                 PUBLIC_HEADERS GiGaMTCoreRun
-                 INCLUDE_DIRS ${HEPMC3_INCLUDE_DIR} CLHEP Geant4 XercesC NewRnd
-                 LINK_LIBRARIES ${HEPMC3_LIBRARIES} CLHEP ${GEANT4_LIBS} XercesC GiGaMTCoreTruthLib GiGaMTCoreMessageLib)
-
-gaudi_add_library(GiGaMTCoreCutLib
-                 src/cut/*.cpp
-                 PUBLIC_HEADERS GiGaMTCoreCut
-                 INCLUDE_DIRS CLHEP Geant4
-                 LINK_LIBRARIES CLHEP ${GEANT4_LIBS}  GiGaMTCoreMessageLib)
+    SOURCES
+        src/Lib/Common.cpp
+        src/Lib/ConverterInfo.cpp
+        src/Lib/G4EventProxy.cpp
+	src/Lib/G4EventProxyAttribute.cpp
+        src/Lib/GaussinoEventInformation.cpp
+        src/Lib/GaussinoPrimaryParticleInformation.cpp
+        src/Lib/GaussinoTrackInformation.cpp
+	src/Lib/GiGaMTRunManager.cpp
+	src/Lib/GiGaRunActionCommand.cpp
+	src/Lib/GiGaWorkerPayload.cpp
+	src/Lib/GiGaWorkerPilot.cpp
+	src/Lib/GiGaWorkerRunManager.cpp
+        src/Lib/Helpers.cpp
+        src/Lib/LinkedParticle.cpp
+        src/Lib/LinkedParticleHelpers.cpp
+        src/Lib/MCTruthAttribute.cpp
+        src/Lib/MCTruthConverter.cpp
+        src/Lib/SimResultsAttribute.cpp
+        src/Lib/TruthFlaggingTrackAction.cpp
+        src/Lib/TruthStoringTrackAction.cpp
+        src/Lib/ZMaxPlane.cpp
+    LINK
+        PUBLIC
+	    HepMC3::HepMC3
+	    HepMC3::HepMC3search
+	    Geant4::G4event
+	    Geant4::G4geometry
+	    Geant4::G4global
+	    Geant4::G4intercoms
+	    Geant4::G4particles
+	    Geant4::G4processes
+	    Geant4::G4run
+	    Geant4::G4track
+	    Geant4::G4tracking
+	    LHCb::MCEvent         # TODO: [LHCb DEPENDENCY]
+	    Gaussino::HepMCUtilsLib
+	    Gaussino::NewRndLib
+            Gaussino::GiGaMTCoreUtilsLib
+            Gaussino::GiGaMTCoreMessageLib
+            Gaussino::GiGaMTCoreDetLib
+)
 
-gaudi_install_headers(GiGaMTCoreDet)
+gaudi_add_tests(QMTest)
 
-gaudi_add_test(QMTest QMTEST)
+gaudi_add_executable(test_zMaxTilt
+    SOURCES tests/test_zMaxTilt.cpp
+    LINK
+    	Boost::unit_test_framework
+	Gaudi::GaudiKernel
+	Gaussino::GiGaMTCoreRunLib
+    TEST
+)
diff --git a/Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h b/Sim/GiGaMTCore/include/GiGaMTCoreCut/GaussinoG4UserLimits.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreCut/GaussinoG4UserLimits.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GaussHitBase.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreDet/GaussHitBase.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GdmlDetectorConstruction.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreDet/GdmlDetectorConstruction.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/IExternalDetectorEmbedder.h b/Sim/GiGaMTCore/include/GiGaMTCoreDet/IExternalDetectorEmbedder.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreDet/IExternalDetectorEmbedder.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreDet/IExternalDetectorEmbedder.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreMessage/IGiGaMessage.h b/Sim/GiGaMTCore/include/GiGaMTCoreMessage/IGiGaMessage.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreMessage/IGiGaMessage.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreMessage/IGiGaMessage.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/Common.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/Common.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/Common.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/Common.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/DetTrackInfo.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/DetTrackInfo.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/DetTrackInfo.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/DetTrackInfo.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxy.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxy.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxyAttribute.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxyAttribute.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxyAttribute.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxyAttribute.h
index e5dd41d8..c2b01d31 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxyAttribute.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxyAttribute.h
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "HepMC3/Attribute.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include <string>
 
 namespace HepMC3
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/G4TruthParticle.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4TruthParticle.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/G4TruthParticle.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/G4TruthParticle.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoEventInformation.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoEventInformation.h
index 6245833d..3ebbea1c 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoEventInformation.h
@@ -17,7 +17,7 @@
 /// Geant4
 #include "G4EventManager.hh"
 #include "G4VUserEventInformation.hh"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 /** @class GaussinoTrackInformation GaussinoTrackInformation.h
  *
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoTrackInformation.h
similarity index 99%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoTrackInformation.h
index 9b6eca91..1b828899 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoTrackInformation.h
@@ -20,7 +20,7 @@
 #include "G4VUserTrackInformation.hh"
 /// GaussTools
 #include "GiGaMTCoreDet/GaussHitBase.h"
-#include "GiGaMTCoreTruth/DetTrackInfo.h"
+#include "GiGaMTCoreRun/DetTrackInfo.h"
 
 /** @class GaussinoTrackInformation GaussinoTrackInformation.h
  *
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaMTRunManager.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaMTRunManager.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaRunActionCommand.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaRunActionCommand.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPayload.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPayload.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPayload.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPayload.h
index 87bdc9e5..b8085084 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPayload.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPayload.h
@@ -11,7 +11,7 @@
 #pragma once
 
 #include "GiGaMTCoreRun/G4EventProxy.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "Utils/blockingconcurrentqueue.h"
 #include <future>
 #include <vector>
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPilot.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPilot.h
index f8d7e033..7a3c1531 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPilot.h
@@ -15,7 +15,7 @@
 #include "GiGaMTCoreUtils/GiGaMTUtils.h"
 #include "GiGaMTCoreRun/GiGaWorkerPayload.h"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 #include "G4Event.hh"
 #include "HepMC3/GenEvent.h"
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerRunManager.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerRunManager.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticle.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticle.h
index 8d9b3828..51e44844 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticle.h
@@ -12,8 +12,8 @@
 #include <set>
 
 #include "G4PrimaryParticle.hh"
-#include "GiGaMTCoreTruth/Common.h"
-#include "GiGaMTCoreTruth/G4TruthParticle.h"
+#include "GiGaMTCoreRun/Common.h"
+#include "GiGaMTCoreRun/G4TruthParticle.h"
 #include "HepMC3/FourVector.h"
 #include "HepMC3/GenParticle.h"
 #include "HepMC3/GenVertex.h"
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticleHelpers.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticleHelpers.h
similarity index 96%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticleHelpers.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticleHelpers.h
index a8947eec..9233439d 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticleHelpers.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticleHelpers.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 
 namespace Gaussino::LPUtils {
     bool ShouldHaveButWasNotSimulated( const LinkedParticle* lp );
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthAttribute.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthAttribute.h
similarity index 89%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthAttribute.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthAttribute.h
index e5dd41d8..675caa0a 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthAttribute.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthAttribute.h
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "HepMC3/Attribute.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include <string>
 
 namespace HepMC3
@@ -20,9 +20,9 @@ namespace HepMC3
     MCTruthAttribute() : Attribute(), m_val( nullptr ) {}
     MCTruthAttribute( Gaussino::MCTruthPtr val ) : Attribute(), m_val( val ) {}
 
-    bool from_string( const string& ){ return true;};
+    bool from_string( const string& ) override { return true; };
 
-    bool to_string( string& ) const { return true;};
+    bool to_string( string& ) const override { return true; };
 
     Gaussino::MCTruthPtr value() const { return m_val; }
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthConverter.h
similarity index 99%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthConverter.h
index dd2fe6a5..63722904 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthConverter.h
@@ -20,8 +20,8 @@
 #include "HepMCUtils/PrintDecayTree.h"
 #include "HepMC3/GenEvent.h"
 
-#include "GiGaMTCoreTruth/Common.h"
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/Common.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 
 #include "G4Event.hh"
 #include "G4PrimaryParticle.hh"
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/SimResults.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResults.h
similarity index 95%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/SimResults.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResults.h
index b6ee1851..f427e47c 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/SimResults.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResults.h
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "GiGaMTCoreRun/G4EventProxy.h"
 
 namespace Gaussino {
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/SimResultsProxyAttribute.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResultsProxyAttribute.h
similarity index 92%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/SimResultsProxyAttribute.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResultsProxyAttribute.h
index ce89de59..6ca2dec6 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/SimResultsProxyAttribute.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResultsProxyAttribute.h
@@ -19,9 +19,9 @@ namespace HepMC3 {
     SimResultsAttribute( Gaussino::GiGaSimReturn val ) : Attribute(), m_val( val ) {}
     SimResultsAttribute( Gaussino::MCTruthPtr val, G4EventProxyPtr val2 ) : Attribute(), m_val{val2, val} {}
 
-    bool from_string( const string& ) { return true; };
+    bool from_string( const string& ) override { return true; };
 
-    bool to_string( string& ) const { return true; };
+    bool to_string( string& ) const override { return true; };
 
     Gaussino::GiGaSimReturn value() const { return m_val; }
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.h
similarity index 99%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.h
index 75720077..18418180 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.h
@@ -17,7 +17,7 @@
 #include "CLHEP/Units/SystemOfUnits.h"
 #include "G4UserTrackingAction.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
-#include "GiGaMTCoreTruth/ZMaxPlane.h"
+#include "GiGaMTCoreRun/ZMaxPlane.h"
 
 #include <unordered_set>
 // forward declarations
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.icpp b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.icpp
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.icpp
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.icpp
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthStoringTrackAction.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthStoringTrackAction.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/ZMaxPlane.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/ZMaxPlane.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/ZMaxPlane.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/ZMaxPlane.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreUtils/GiGaMTUtils.h b/Sim/GiGaMTCore/include/GiGaMTCoreUtils/GiGaMTUtils.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreUtils/GiGaMTUtils.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreUtils/GiGaMTUtils.h
diff --git a/Sim/GiGaMTCore/src/truth/Common.cpp b/Sim/GiGaMTCore/src/Lib/Common.cpp
similarity index 97%
rename from Sim/GiGaMTCore/src/truth/Common.cpp
rename to Sim/GiGaMTCore/src/Lib/Common.cpp
index c735d15a..061ed5be 100644
--- a/Sim/GiGaMTCore/src/truth/Common.cpp
+++ b/Sim/GiGaMTCore/src/Lib/Common.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/Common.h"
+#include "GiGaMTCoreRun/Common.h"
 
 std::ostream& operator<<( std::ostream& out, const Gaussino::ConversionType& type )
 {
diff --git a/Sim/GiGaMTCore/src/truth/ConverterInfo.cpp b/Sim/GiGaMTCore/src/Lib/ConverterInfo.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/truth/ConverterInfo.cpp
rename to Sim/GiGaMTCore/src/Lib/ConverterInfo.cpp
diff --git a/Sim/GiGaMTCore/src/truth/ConverterInfo.h b/Sim/GiGaMTCore/src/Lib/ConverterInfo.h
similarity index 96%
rename from Sim/GiGaMTCore/src/truth/ConverterInfo.h
rename to Sim/GiGaMTCore/src/Lib/ConverterInfo.h
index 6c99f2d1..bbdee09c 100644
--- a/Sim/GiGaMTCore/src/truth/ConverterInfo.h
+++ b/Sim/GiGaMTCore/src/Lib/ConverterInfo.h
@@ -12,7 +12,7 @@
 #include "HepMC3/GenEvent.h"
 #include "HepMC3/GenParticle.h"
 
-#include "GiGaMTCoreTruth/Common.h"
+#include "GiGaMTCoreRun/Common.h"
 
 namespace Gaussino
 {
diff --git a/Sim/GiGaMTCore/src/run/G4EventProxy.cpp b/Sim/GiGaMTCore/src/Lib/G4EventProxy.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/G4EventProxy.cpp
rename to Sim/GiGaMTCore/src/Lib/G4EventProxy.cpp
diff --git a/Sim/GiGaMTCore/src/run/G4EventProxyAttribute.cpp b/Sim/GiGaMTCore/src/Lib/G4EventProxyAttribute.cpp
similarity index 94%
rename from Sim/GiGaMTCore/src/run/G4EventProxyAttribute.cpp
rename to Sim/GiGaMTCore/src/Lib/G4EventProxyAttribute.cpp
index 24932661..c6f5cb02 100644
--- a/Sim/GiGaMTCore/src/run/G4EventProxyAttribute.cpp
+++ b/Sim/GiGaMTCore/src/Lib/G4EventProxyAttribute.cpp
@@ -8,4 +8,4 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/MCTruthAttribute.h"
+#include "GiGaMTCoreRun/MCTruthAttribute.h"
diff --git a/Sim/GiGaMTCore/src/truth/GaussinoEventInformation.cpp b/Sim/GiGaMTCore/src/Lib/GaussinoEventInformation.cpp
similarity index 93%
rename from Sim/GiGaMTCore/src/truth/GaussinoEventInformation.cpp
rename to Sim/GiGaMTCore/src/Lib/GaussinoEventInformation.cpp
index 6cda1748..a02ef3be 100755
--- a/Sim/GiGaMTCore/src/truth/GaussinoEventInformation.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GaussinoEventInformation.cpp
@@ -8,4 +8,4 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
diff --git a/Sim/GiGaMTCore/src/cut/GaussinoG4UserLimits.cpp b/Sim/GiGaMTCore/src/Lib/GaussinoG4UserLimits.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/cut/GaussinoG4UserLimits.cpp
rename to Sim/GiGaMTCore/src/Lib/GaussinoG4UserLimits.cpp
diff --git a/Sim/GiGaMTCore/src/truth/GaussinoPrimaryParticleInformation.cpp b/Sim/GiGaMTCore/src/Lib/GaussinoPrimaryParticleInformation.cpp
similarity index 93%
rename from Sim/GiGaMTCore/src/truth/GaussinoPrimaryParticleInformation.cpp
rename to Sim/GiGaMTCore/src/Lib/GaussinoPrimaryParticleInformation.cpp
index b809e6ac..4981f11b 100644
--- a/Sim/GiGaMTCore/src/truth/GaussinoPrimaryParticleInformation.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GaussinoPrimaryParticleInformation.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
 
 std::ostream& operator<<( std::ostream& out, const GaussinoPrimaryParticleInformation& lp )
 {
diff --git a/Sim/GiGaMTCore/src/truth/GaussinoTrackInformation.cpp b/Sim/GiGaMTCore/src/Lib/GaussinoTrackInformation.cpp
similarity index 96%
rename from Sim/GiGaMTCore/src/truth/GaussinoTrackInformation.cpp
rename to Sim/GiGaMTCore/src/Lib/GaussinoTrackInformation.cpp
index 7e5d8ab0..9b944147 100755
--- a/Sim/GiGaMTCore/src/truth/GaussinoTrackInformation.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GaussinoTrackInformation.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
 
 // ============================================================================
 /** @file
diff --git a/Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp b/Sim/GiGaMTCore/src/Lib/GiGaMTRunManager.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaMTRunManager.cpp
diff --git a/Sim/GiGaMTCore/src/message/GiGaMessage.cpp b/Sim/GiGaMTCore/src/Lib/GiGaMessage.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/message/GiGaMessage.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaMessage.cpp
diff --git a/Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp b/Sim/GiGaMTCore/src/Lib/GiGaRunActionCommand.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaRunActionCommand.cpp
diff --git a/Sim/GiGaMTCore/src/run/GiGaWorkerPayload.cpp b/Sim/GiGaMTCore/src/Lib/GiGaWorkerPayload.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/GiGaWorkerPayload.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaWorkerPayload.cpp
diff --git a/Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp b/Sim/GiGaMTCore/src/Lib/GiGaWorkerPilot.cpp
similarity index 99%
rename from Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaWorkerPilot.cpp
index 012a9cb4..e6f5930c 100644
--- a/Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GiGaWorkerPilot.cpp
@@ -13,7 +13,7 @@
 #include "GiGaMTCoreRun/GiGaWorkerRunManager.h"
 #include "GaudiKernel/GaudiException.h"
 
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
 
 #include <string>
 
diff --git a/Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp b/Sim/GiGaMTCore/src/Lib/GiGaWorkerRunManager.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaWorkerRunManager.cpp
diff --git a/Sim/GiGaMTCore/src/truth/Helpers.cpp b/Sim/GiGaMTCore/src/Lib/Helpers.cpp
similarity index 96%
rename from Sim/GiGaMTCore/src/truth/Helpers.cpp
rename to Sim/GiGaMTCore/src/Lib/Helpers.cpp
index b52843c6..f3662dfc 100644
--- a/Sim/GiGaMTCore/src/truth/Helpers.cpp
+++ b/Sim/GiGaMTCore/src/Lib/Helpers.cpp
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "Helpers.h"
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 
 namespace Gaussino::LinkedParticleHelpers
 {
diff --git a/Sim/GiGaMTCore/src/truth/Helpers.h b/Sim/GiGaMTCore/src/Lib/Helpers.h
similarity index 100%
rename from Sim/GiGaMTCore/src/truth/Helpers.h
rename to Sim/GiGaMTCore/src/Lib/Helpers.h
diff --git a/Sim/GiGaMTCore/src/truth/LinkedParticle.cpp b/Sim/GiGaMTCore/src/Lib/LinkedParticle.cpp
similarity index 98%
rename from Sim/GiGaMTCore/src/truth/LinkedParticle.cpp
rename to Sim/GiGaMTCore/src/Lib/LinkedParticle.cpp
index 5859dae0..77ca94be 100644
--- a/Sim/GiGaMTCore/src/truth/LinkedParticle.cpp
+++ b/Sim/GiGaMTCore/src/Lib/LinkedParticle.cpp
@@ -8,11 +8,11 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 
 #include "CLHEP/Units/PhysicalConstants.h"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/LinkedParticleHelpers.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/LinkedParticleHelpers.h"
 #include "Helpers.h"
 #include "Math/GenVector/Boost.h"
 #include "Math/Vector4D.h"
diff --git a/Sim/GiGaMTCore/src/truth/LinkedParticleHelpers.cpp b/Sim/GiGaMTCore/src/Lib/LinkedParticleHelpers.cpp
similarity index 97%
rename from Sim/GiGaMTCore/src/truth/LinkedParticleHelpers.cpp
rename to Sim/GiGaMTCore/src/Lib/LinkedParticleHelpers.cpp
index 3ba8757d..92f564dc 100644
--- a/Sim/GiGaMTCore/src/truth/LinkedParticleHelpers.cpp
+++ b/Sim/GiGaMTCore/src/Lib/LinkedParticleHelpers.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/LinkedParticleHelpers.h"
+#include "GiGaMTCoreRun/LinkedParticleHelpers.h"
 
 namespace Gaussino::LPUtils {
     bool ShouldHaveButWasNotSimulated( const LinkedParticle* lp ) {
diff --git a/Sim/GiGaMTCore/src/truth/MCTruthAttribute.cpp b/Sim/GiGaMTCore/src/Lib/MCTruthAttribute.cpp
similarity index 94%
rename from Sim/GiGaMTCore/src/truth/MCTruthAttribute.cpp
rename to Sim/GiGaMTCore/src/Lib/MCTruthAttribute.cpp
index 24932661..c6f5cb02 100644
--- a/Sim/GiGaMTCore/src/truth/MCTruthAttribute.cpp
+++ b/Sim/GiGaMTCore/src/Lib/MCTruthAttribute.cpp
@@ -8,4 +8,4 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/MCTruthAttribute.h"
+#include "GiGaMTCoreRun/MCTruthAttribute.h"
diff --git a/Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp b/Sim/GiGaMTCore/src/Lib/MCTruthConverter.cpp
similarity index 99%
rename from Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp
rename to Sim/GiGaMTCore/src/Lib/MCTruthConverter.cpp
index a5acc2fd..217e6385 100644
--- a/Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp
+++ b/Sim/GiGaMTCore/src/Lib/MCTruthConverter.cpp
@@ -8,13 +8,12 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "ConverterInfo.h"
 #include "GaudiKernel/GaudiException.h"
 #include "G4SystemOfUnits.hh"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/LinkedParticleHelpers.h"
-#include "GiGaMTCoreRun/SimResults.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/LinkedParticleHelpers.h"
 #include "GiGaMTCoreRun/SimResultsProxyAttribute.h"
 #include "Defaults/HepMCAttributes.h"
 #include "Helpers.h"
diff --git a/Sim/GiGaMTCore/src/run/SimResultsAttribute.cpp b/Sim/GiGaMTCore/src/Lib/SimResultsAttribute.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/SimResultsAttribute.cpp
rename to Sim/GiGaMTCore/src/Lib/SimResultsAttribute.cpp
diff --git a/Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp b/Sim/GiGaMTCore/src/Lib/TruthFlaggingTrackAction.cpp
similarity index 98%
rename from Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp
rename to Sim/GiGaMTCore/src/Lib/TruthFlaggingTrackAction.cpp
index 27a6ff98..c37b34fd 100755
--- a/Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp
+++ b/Sim/GiGaMTCore/src/Lib/TruthFlaggingTrackAction.cpp
@@ -23,10 +23,10 @@
 //#include "GiGaCnv/GiGaPrimaryParticleInformation.h"
 // GaussTools
 //#include "GaussTools/GaussTrajectory.h"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
 /// local
-#include "GiGaMTCoreTruth/TruthFlaggingTrackAction.h"
+#include "GiGaMTCoreRun/TruthFlaggingTrackAction.h"
 
 // ============================================================================
 /** initialize the track action
diff --git a/Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp b/Sim/GiGaMTCore/src/Lib/TruthStoringTrackAction.cpp
similarity index 95%
rename from Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp
rename to Sim/GiGaMTCore/src/Lib/TruthStoringTrackAction.cpp
index 2549c358..9ad4fac3 100755
--- a/Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp
+++ b/Sim/GiGaMTCore/src/Lib/TruthStoringTrackAction.cpp
@@ -31,11 +31,11 @@
 #include "Event/MCVertex.h"
 
 // local
-#include "GiGaMTCoreTruth/G4TruthParticle.h"
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
-#include "GiGaMTCoreTruth/TruthStoringTrackAction.h"
+#include "GiGaMTCoreRun/G4TruthParticle.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/TruthStoringTrackAction.h"
 
 /*static*/ std::unordered_set<std::string> TruthStoringTrackAction::m_hadronicProcesses = {
     "KaonPlusInelastic",
@@ -174,9 +174,12 @@ void TruthStoringTrackAction::PostUserTrackingAction( const G4Track* track ) {
     // and continued later on. If the track is not in suspended state, it is the true end of the
     // processing
     if(addEndVertices && track->GetTrackStatus() != G4TrackStatus::fSuspend){
-      int type = 0;
+      // int type = 0;
       if(auto stepproc = track->GetStep()->GetPostStepPoint()->GetProcessDefinedStep();stepproc){
-        type = processID(stepproc);
+        // type = processID(stepproc);
+        // FIXME: commented out to remove the warning about unused varaible,
+        // what does it do anyway?
+        processID(stepproc);
       }
       event_info->TruthTracker()->BufferEnd(endpos, 0, track->GetTrackID());
     }
diff --git a/Sim/GiGaMTCore/src/truth/ZMaxPlane.cpp b/Sim/GiGaMTCore/src/Lib/ZMaxPlane.cpp
similarity index 97%
rename from Sim/GiGaMTCore/src/truth/ZMaxPlane.cpp
rename to Sim/GiGaMTCore/src/Lib/ZMaxPlane.cpp
index 5a41abca..e9af8ad0 100644
--- a/Sim/GiGaMTCore/src/truth/ZMaxPlane.cpp
+++ b/Sim/GiGaMTCore/src/Lib/ZMaxPlane.cpp
@@ -12,7 +12,7 @@
 #include "GaudiKernel/SystemOfUnits.h"
 #include "GaudiKernel/Transform3DTypes.h"
 // local
-#include "GiGaMTCoreTruth/ZMaxPlane.h"
+#include "GiGaMTCoreRun/ZMaxPlane.h"
 
 void ZMaxPlane::prepare( double zMax, double tilt, double yShift ) {
   // apply a rotation around X axis by tilt (radians)
diff --git a/Sim/GiGaMTCore/tests/src/test_zMaxTilt.cpp b/Sim/GiGaMTCore/tests/test_zMaxTilt.cpp
similarity index 98%
rename from Sim/GiGaMTCore/tests/src/test_zMaxTilt.cpp
rename to Sim/GiGaMTCore/tests/test_zMaxTilt.cpp
index 0fed173b..974959db 100644
--- a/Sim/GiGaMTCore/tests/src/test_zMaxTilt.cpp
+++ b/Sim/GiGaMTCore/tests/test_zMaxTilt.cpp
@@ -11,7 +11,7 @@
 #define BOOST_TEST_DYN_LINK
 #define BOOST_TEST_MODULE utestZMaxTilt
 #include "GaudiKernel/SystemOfUnits.h"
-#include "GiGaMTCoreTruth/ZMaxPlane.h"
+#include "GiGaMTCoreRun/ZMaxPlane.h"
 #include <boost/test/unit_test.hpp>
 #include <iostream>
 
diff --git a/Sim/GiGaMTDD4hep/CMakeLists.txt b/Sim/GiGaMTDD4hep/CMakeLists.txt
index 30aaf4b0..19effac1 100644
--- a/Sim/GiGaMTDD4hep/CMakeLists.txt
+++ b/Sim/GiGaMTDD4hep/CMakeLists.txt
@@ -8,55 +8,36 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTDD4hep
+----------------
+#]=======================================================================]
 ################################################################################
 # Package: GiGaMTDD4hep
 # Interfaces to load the detector from the DD4hep geometry service
 ################################################################################
-gaudi_subdir(GiGaMTDD4hep v1r0)
 
 if(USE_DD4HEP)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/GiGaMTFactories
-                         Sim/GiGaMTCore
-                         Sim/SimInterfaces
-                         Sim/GiGaMTGeo
-                         DD4hepDDG4Ext
-                         Det/LbDD4hep)
-
-find_package(ROOT COMPONENTS Geom Core GenVector Matrix Physics)
-
-find_package(Boost COMPONENTS system thread filesystem)
-
-include_directories(SYSTEM  ${ROOT_INCLUDE_DIRS})
-AddHepMC3()
-
-message(STATUS "ROOTSYS -> ${ROOTSYS}")
-set(ENV{ROOTSYS} ${ROOTSYS})
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-find_package(DD4hep REQUIRED CONFIG COMPONENTS DDCore)
-
-# When building our own DD4hep, we need to manually add the installation to LD_LIBRARY_PATH.
-# Using gaudi_build_env() makes it so that downstream projects also have this.
-# TODO Why doesn't this happen "automatically" and is there a better way?
-gaudi_build_env(PREPEND LD_LIBRARY_PATH ${DD4hep_ROOT}/lib)
-
-include_directories(SYSTEM  ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${DD4hep_INCLUDE_DIRS})
-
-gaudi_add_library(GiGaMTDD4hepLib
-                  src/lib/*.cpp 
-                  PUBLIC_HEADERS GiGaMTDD4hep
-                  INCLUDE_DIRS LbDD4hep DD4hep
-                  LINK_LIBRARIES DD4hep ${DD4hep_COMPONENT_LIBRARIES} ROOT GiGaMTCoreRunLib DD4hep::DDG4)
-
-add_dependencies(GiGaMTDD4hepLib DD4hepDDG4Ext) 
-
-gaudi_add_module(GiGaMTDD4hep
-                 src/components/*.cpp 
-                 LINK_LIBRARIES GiGaMTDD4hepLib GaudiAlgLib)
+    gaudi_add_library(GiGaMTDD4hepLib
+        SOURCES
+            src/Lib/DD4hepCnvSvc.cpp
+            src/Lib/DD4hepDetectorConstruction.cpp
+            src/Lib/Utilities.cpp
+        LINK
+            PUBLIC
+                DD4hep::DDCore
+                DD4hep::DDG4
+                Gaussino::GiGaMTFactoriesLib
+		Gaussino::GiGaMTGeoLib
+                Gaussino::GiGaMTCoreRunLib
+    ) 
+
+    gaudi_add_module(GiGaMTDD4hep
+        SOURCES
+            src/Components/DD4hepCnvSvcConf.cpp
+            src/Components/DD4hepDetectorConstructionFAC.cpp
+        LINK
+            LHCb::LbDD4hepLib # FIXME: [LHCb DEPENDENCY]
+            Gaussino::GiGaMTDD4hepLib
+    )
 endif()
diff --git a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h b/Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepCnvSvc.h
similarity index 100%
rename from Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h
rename to Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepCnvSvc.h
diff --git a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h b/Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepDetectorConstruction.h
similarity index 100%
rename from Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h
rename to Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepDetectorConstruction.h
diff --git a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/Utilities.h b/Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/Utilities.h
similarity index 100%
rename from Sim/GiGaMTDD4hep/GiGaMTDD4hep/Utilities.h
rename to Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/Utilities.h
diff --git a/Sim/GiGaMTDD4hep/src/components/DD4hepCnvSvcConf.cpp b/Sim/GiGaMTDD4hep/src/Components/DD4hepCnvSvcConf.cpp
similarity index 100%
rename from Sim/GiGaMTDD4hep/src/components/DD4hepCnvSvcConf.cpp
rename to Sim/GiGaMTDD4hep/src/Components/DD4hepCnvSvcConf.cpp
diff --git a/Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp b/Sim/GiGaMTDD4hep/src/Components/DD4hepDetectorConstructionFAC.cpp
similarity index 100%
rename from Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp
rename to Sim/GiGaMTDD4hep/src/Components/DD4hepDetectorConstructionFAC.cpp
diff --git a/Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp b/Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp
similarity index 100%
rename from Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp
rename to Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp
diff --git a/Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp b/Sim/GiGaMTDD4hep/src/Lib/DD4hepDetectorConstruction.cpp
similarity index 100%
rename from Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp
rename to Sim/GiGaMTDD4hep/src/Lib/DD4hepDetectorConstruction.cpp
diff --git a/Sim/GiGaMTDD4hep/src/lib/Utilities.cpp b/Sim/GiGaMTDD4hep/src/Lib/Utilities.cpp
similarity index 100%
rename from Sim/GiGaMTDD4hep/src/lib/Utilities.cpp
rename to Sim/GiGaMTDD4hep/src/Lib/Utilities.cpp
diff --git a/Sim/GiGaMTDebug/CMakeLists.txt b/Sim/GiGaMTDebug/CMakeLists.txt
index dc96bd3a..765a973b 100644
--- a/Sim/GiGaMTDebug/CMakeLists.txt
+++ b/Sim/GiGaMTDebug/CMakeLists.txt
@@ -8,27 +8,16 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GiGaMTDebug
-#
-# Collection of G4 objects used for debugging
-#################################################################################
-gaudi_subdir(GiGaMTDebug v1r0)
-gaudi_depends_on_subdirs(Sim/GiGaMTCore
-                         Sim/GiGaMTFactories)
-
-AddHepMC3()
-find_package(ROOT COMPONENTS MathCore GenVector)
-
-FindG4libs(digits_hits event geometry global graphics_reps materials persistency
-           particles processes run tracking track intercoms physicslists)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
+#[=======================================================================[.rst:
+Sim/GiGaMTDebug
+---------------
+#]=======================================================================]
+# ./Sim/GiGaMTDebug/CMakeLists.txt
 gaudi_add_module(GiGaMTDebug
-        src/*.cpp
-        INCLUDE_DIRS GiGaMTFactories
-        LINK_LIBRARIES GaudiAlgLib GiGaMTCoreTruthLib)
+    SOURCES
+    	src/Components/DebugStepAction.cpp
+        src/Components/DebugTrackAction.cpp
+    LINK
+        Gaussino::GiGaMTCoreRunLib
+	Gaussino::GiGaMTFactoriesLib
+)
diff --git a/Sim/GiGaMTDebug/src/DebugStepAction.cpp b/Sim/GiGaMTDebug/src/Components/DebugStepAction.cpp
similarity index 100%
rename from Sim/GiGaMTDebug/src/DebugStepAction.cpp
rename to Sim/GiGaMTDebug/src/Components/DebugStepAction.cpp
diff --git a/Sim/GiGaMTDebug/src/DebugTrackAction.cpp b/Sim/GiGaMTDebug/src/Components/DebugTrackAction.cpp
similarity index 97%
rename from Sim/GiGaMTDebug/src/DebugTrackAction.cpp
rename to Sim/GiGaMTDebug/src/Components/DebugTrackAction.cpp
index f0421223..c0c706e8 100755
--- a/Sim/GiGaMTDebug/src/DebugTrackAction.cpp
+++ b/Sim/GiGaMTDebug/src/Components/DebugTrackAction.cpp
@@ -31,10 +31,10 @@
 #include "Event/MCVertex.h"
 
 // local
-#include "GiGaMTCoreTruth/G4TruthParticle.h"
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/G4TruthParticle.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
 
 // namespace LHCb {
 // class IParticlePropertySvc;
diff --git a/Sim/GiGaMTExamples/FCCTest/CMakeLists.txt b/Sim/GiGaMTExamples/FCCTest/CMakeLists.txt
index 5f693c59..0859f1b9 100644
--- a/Sim/GiGaMTExamples/FCCTest/CMakeLists.txt
+++ b/Sim/GiGaMTExamples/FCCTest/CMakeLists.txt
@@ -8,48 +8,39 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTExamples/FCCTest
+--------------------------
+#]=======================================================================]
 ################################################################################
 # Package: FCCTest
 # Adapted from Gaussino FCC TestGeometry package: https://gitlab.cern.ch/jlingema/Gauss/tree/refactor/
 # Original author: Anna Zaborowska
 #
 ################################################################################
-gaudi_subdir(FCCTest v1r0)
 
-gaudi_depends_on_subdirs(GaudiKernel
-                         GaudiAlg
-                         Sim/GiGaMTFactories
-                         Sim/GiGaMTCore
-                         Sim/SimInterfaces
-                         Sim/GiGaMTGeo)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-AddHepMC3()
-
-find_package(XercesC)
-#find_package(ROOT)
-
-#find_package(ROOT COMPONENTS MathCore GenVector Geom RIO Hist REQUIRED)
-
-#gaudi_install_headers(TestGeometry)
-
-gaudi_add_library(FCCTest
-          src/lib/*.cpp
-          INCLUDE_DIRS Geant4 ROOT XercesC SimInterfaces AIDA
-          LINK_LIBRARIES GaudiKernel GaudiAlgLib Geant4 ROOT XercesC GiGaMTCoreRunLib
-          PUBLIC_HEADERS FCCTest)
-add_dependencies(FCCTest HepMC3Ext)
+gaudi_add_library(FCCTestLib
+    SOURCES
+        src/Lib/CalorimeterHit.cpp
+	src/Lib/CalorimeterSD.cpp
+    LINK
+        PUBLIC
+	    Gaussino::GiGaMTCoreRunLib
+	    Gaussino::SimInterfacesLib
+)
 
 gaudi_add_module(FCCTestPlugins
-          src/components/*.cpp
-          INCLUDE_DIRS Geant4 FCCTest GaudiKernel
-          LINK_LIBRARIES GaudiKernel Geant4 FCCTest ROOT)
-
-include(CTest)
-gaudi_add_test(GeantGdmlWithSD
-               WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
-               FRAMEWORK tests/options/geant_fullsim_gdml.py)
+    SOURCES
+        src/Components/G4GdmlTestDetector.cpp
+	src/Components/G4SaveTestCalHits.cpp
+    LINK
+    	Geant4::G4persistency
+        Gaussino::FCCTestLib
+    	Gaussino::GiGaMTFactoriesLib
+)
+
+# FIXME: this test is stupid, what does it test?
+#gaudi_add_tests(GeantGdmlWithSD
+#    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+#    FRAMEWORK tests/options/geant_fullsim_gdml.py
+#    #)
diff --git a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h b/Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterHit.h
similarity index 100%
rename from Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h
rename to Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterHit.h
diff --git a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h b/Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterSD.h
similarity index 95%
rename from Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h
rename to Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterSD.h
index 4751c1c1..f256bef7 100644
--- a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h
+++ b/Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterSD.h
@@ -38,8 +38,8 @@ namespace FCCTest
     CalorimeterSD( G4String name );
     CalorimeterSD( G4String name, G4int aCellNoInAxis );
     virtual ~CalorimeterSD();
-    virtual void Initialize( G4HCofThisEvent* HCE );
-    virtual G4bool ProcessHits( G4Step* aStep, G4TouchableHistory* ROhist );
+    virtual void Initialize( G4HCofThisEvent* HCE ) override;
+    virtual G4bool ProcessHits( G4Step* aStep, G4TouchableHistory* ROhist ) override;
 
   private:
     CalorimeterHitsCollection* fHitsCollection;
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp b/Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.cpp
similarity index 100%
rename from Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp
rename to Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.cpp
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h b/Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.h
similarity index 100%
rename from Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h
rename to Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.h
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp b/Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.cpp
similarity index 100%
rename from Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp
rename to Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.cpp
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.h b/Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.h
similarity index 100%
rename from Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.h
rename to Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.h
diff --git a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp b/Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterHit.cpp
similarity index 100%
rename from Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp
rename to Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterHit.cpp
diff --git a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp b/Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterSD.cpp
similarity index 100%
rename from Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp
rename to Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterSD.cpp
diff --git a/Sim/GiGaMTExamples/IronBox/CMakeLists.txt b/Sim/GiGaMTExamples/IronBox/CMakeLists.txt
index 1ba1e5a5..7b0fc29e 100644
--- a/Sim/GiGaMTExamples/IronBox/CMakeLists.txt
+++ b/Sim/GiGaMTExamples/IronBox/CMakeLists.txt
@@ -8,28 +8,22 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTExamples/IronBox
+--------------------------
+#]=======================================================================]
 ################################################################################
 # Package: GiGaMTExamples/IronBox
 # All GiGa extensions to create a simple running example to test MT prototype.
 # Detector is a 1m^3 iron cube in the center.
 #################################################################################
-gaudi_subdir(IronBox v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Gen/GenInterfaces 
-                         Event/GenEvent
-                         Sim/GiGaMTFactories
-                         Sim/GiGaMTCore
-                         Sim/GiGaMTGeo)
-AddHepMC3()
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-
 gaudi_add_module(IronBoxExample
-                  src/*.cpp
-                  INCLUDE_DIRS GiGaMTFactories GenInterfaces ${HEPMC3_INCLUDE_DIR}
-                  LINK_LIBRARIES GaudiAlgLib GiGaMTCoreRunLib ${HEPMC3_LIBRARIES} GenEvent)
-add_dependencies(IronBoxExample HepMC3Ext)
+    SOURCES
+        src/IronBoxGeo.cpp
+        src/MinimalParticles.cpp
+    LINK
+        HepMC::HepMC
+        Gaussino::GiGaMTCoreRunLib
+        Gaussino::GiGaMTGeoLib
+        Gaussino::GenInterfacesLib
+)
diff --git a/Sim/GiGaMTExamples/LHCbFromGDML/CMakeLists.txt b/Sim/GiGaMTExamples/LHCbFromGDML/CMakeLists.txt
index 25b799ca..2542bb82 100644
--- a/Sim/GiGaMTExamples/LHCbFromGDML/CMakeLists.txt
+++ b/Sim/GiGaMTExamples/LHCbFromGDML/CMakeLists.txt
@@ -8,6 +8,10 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTExamples/LHCbFromGDML
+-------------------------------
+#]=======================================================================]
 ################################################################################
 # Package: LHCbFromGDML
 # Simple setup to add the frozen LHCb geometry from a GDML file to Gaussino.
@@ -15,18 +19,13 @@
 # Author: Dominik Muller, GDML file from Ben Couturier
 #
 ################################################################################
-gaudi_subdir(LHCbFromGDML v1r0)
-
-gaudi_depends_on_subdirs(GaudiKernel
-                         GaudiAlg
-                         HepMC3
-                         HepMCUser
-                         Gen/GenInterfaces)
-
-AddHepMC3()
-
 gaudi_add_module(LHCbFromGDML
-                  src/*.cpp
-                  INCLUDE_DIRS GenInterfaces ${HEPMC3_INCLUDE_DIR} HepMCUser
-                  LINK_LIBRARIES GaudiAlgLib ${HEPMC3_LIBRARIES} GenEvent)
-add_dependencies(LHCbFromGDML HepMC3Ext)
+    SOURCES
+        src/MinimalStableInLHCb.cpp
+    LINK
+        HepMC3::HepMC3
+        Gaudi::GaudiAlgLib
+        LHCb::GenEvent  # TODO: [LHCb DEPENDENCY]
+        Gaussino::GenInterfacesLib
+        Gaussino::HepMCUserLib
+)
diff --git a/Sim/GiGaMTFactories/CMakeLists.txt b/Sim/GiGaMTFactories/CMakeLists.txt
index e2fb57e2..f2cf7656 100644
--- a/Sim/GiGaMTFactories/CMakeLists.txt
+++ b/Sim/GiGaMTFactories/CMakeLists.txt
@@ -18,44 +18,95 @@
 # FIXME: This requirement should probably be enforced somehow...
 # 
 #################################################################################
-gaudi_subdir(GiGaMTFactories v1r0)
+#[=======================================================================[.rst:
+Sim/GiGaMTFactories
+---------------------------
+#]=======================================================================]
 
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/GiGaMTCore
-                         Sim/SimInterfaces
-                         HepMC3
-                         Sim/GiGaMTGeo) 
+gaudi_add_header_only_library(GiGaMTFactoriesLib
+    LINK
+        Gaudi::GaudiKernel
+)
 
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
 
-AddHepMC3()
-
-# GigaMTCoreLib should pull in all the dependencies on Geant 4 etc
 gaudi_add_module(GiGaMTRunFactories
-        src/run/*.cpp
-        LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib)
+    SOURCES
+        src/Components/GiGaMTRunManagerFAC.cpp
+	src/Components/GiGaRunActionCommandFAC.cpp
+	src/Components/GiGaWorkerPilotFAC.cpp
+    LINK
+        HepMC3::HepMC3
+        Gaussino::GiGaMTFactoriesLib
+	Gaussino::GiGaMTCoreRunLib
+)
+
+gaudi_add_header_only_library(GiGaMTPhysFactoriesLib)
+
 
 gaudi_add_module(GiGaMTPhysFactories
-        src/phys/*.cpp
-        LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib)
+    SOURCES
+	src/Components/GiGaMTModularPhysListFAC.cpp
+	src/Components/GiGaMTG4PhysicsConstrFAC.cpp
+	src/Components/GiGaMTG4PhysicsFactory.cpp
+    LINK
+        CLHEP::CLHEP
+        Geant4::G4run
+        Geant4::G4physicslists
+        Gaudi::GaudiAlgLib
+        Gaussino::GiGaMTFactoriesLib
+        Gaussino::GiGaMTCoreMessageLib
+)
+
+gaudi_add_header_only_library(GiGaMTDetFactoriesLib)
+
 
 gaudi_add_module(GiGaMTDetFactories
-        src/det/*.cpp
-        INCLUDE_DIRS SimInterfaces
-        LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib)
+    SOURCES
+        src/Components/GiGaMTDetectorConstructionFAC.cpp
+	src/Components/GDMLConstructionFactory.cpp
+    LINK
+    	CLHEP::Vector
+	Geant4::G4digits_hits
+	Geant4::G4geometry
+	Geant4::G4global
+	Geant4::G4persistency
+	Geant4::G4run
+	Gaudi::GaudiAlgLib
+	XercesC::XercesC
+	Gaussino::UtilsLib
+	Gaussino::GiGaMTCoreDetLib
+	Gaussino::GiGaMTFactoriesLib
+	Gaussino::GiGaMTGeoLib
+	Gaussino::SimInterfacesLib
+)
 
 gaudi_add_module(GiGaMTTruthFactories
-        src/truth/*.cpp
-        LINK_LIBRARIES GiGaMTCoreTruthLib GaudiAlgLib)
+    SOURCES
+        src/Components/TruthActionFactories.cpp
+    LINK
+        Gaussino::GiGaMTFactoriesLib
+	Gaussino::GiGaMTCoreMessageLib
+	Gaussino::GiGaMTCoreRunLib
+)
 
 gaudi_add_library(GiGaMTMagnetFactoriesLib
-                  src/magnet/lib/*.cpp
-                  PUBLIC_HEADERS GiGaMTFactories
-                  LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib GaudiKernel)
+    SOURCES
+        src/Lib/FieldMgrBase.cpp
+    LINK
+        PUBLIC
+	    CLHEP::CLHEP
+	    Geant4::G4geometry
+	    Gaudi::GaudiKernel
+	    Gaudi::GaudiAlgLib
+	    Gaussino::GiGaMTCoreMessageLib
+)
 
 gaudi_add_module(GiGaMTMagnetFactories
-        src/magnet/components/*.cpp
-        LINK_LIBRARIES GiGaMTMagnetFactoriesLib)
+    SOURCES
+        src/Components/MagFieldFromSvc.cpp
+	src/Components/Steppers.cpp
+	src/Components/ToolFieldMgr.cpp
+	src/Components/ZeroFieldMgr.cpp
+    LINK
+        Gaussino::GiGaMTMagnetFactoriesLib
+)
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h b/Sim/GiGaMTFactories/include/GiGaMTDetFactories/GiGaMTG4SensDetFactory.h
similarity index 100%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h
rename to Sim/GiGaMTFactories/include/GiGaMTDetFactories/GiGaMTG4SensDetFactory.h
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaFactoryBase.h b/Sim/GiGaMTFactories/include/GiGaMTFactories/GiGaFactoryBase.h
similarity index 100%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaFactoryBase.h
rename to Sim/GiGaMTFactories/include/GiGaMTFactories/GiGaFactoryBase.h
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaTool.h b/Sim/GiGaMTFactories/include/GiGaMTFactories/GiGaTool.h
similarity index 100%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaTool.h
rename to Sim/GiGaMTFactories/include/GiGaMTFactories/GiGaTool.h
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h b/Sim/GiGaMTFactories/include/GiGaMTMagnetFactories/FieldMgrBase.h
similarity index 100%
rename from Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h
rename to Sim/GiGaMTFactories/include/GiGaMTMagnetFactories/FieldMgrBase.h
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h b/Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h
rename to Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h b/Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h
similarity index 100%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h
rename to Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h
diff --git a/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.cpp b/Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.cpp
rename to Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.cpp
diff --git a/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h b/Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h
rename to Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.h
diff --git a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.cpp
diff --git a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.h
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsConstrFAC.cpp
similarity index 99%
rename from Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsConstrFAC.cpp
index d6e13fd9..2396111a 100644
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
+++ b/Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsConstrFAC.cpp
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 // Include files
 
-#include "GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h"
+#include "GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h"
 
 // Geant4 physics lists
 #include "G4DecayPhysics.hh"
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsFactory.cpp
similarity index 98%
rename from Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsFactory.cpp
index bd306db8..6f335415 100644
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp
+++ b/Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsFactory.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTFactories/GiGaMTG4PhysicsFactory.h"
+#include "GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h"
 
 // All includes I could find that definethe physics lists
 // that are directly provided by Geant4
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.cpp
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.h
diff --git a/Sim/GiGaMTFactories/src/run/GiGaMTRunManagerFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTRunManagerFAC.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaMTRunManagerFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTRunManagerFAC.cpp
diff --git a/Sim/GiGaMTFactories/src/run/GiGaMTRunManagerFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaMTRunManagerFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaMTRunManagerFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaMTRunManagerFAC.h
diff --git a/Sim/GiGaMTFactories/src/run/GiGaRunActionCommandFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaRunActionCommandFAC.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaRunActionCommandFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaRunActionCommandFAC.cpp
diff --git a/Sim/GiGaMTFactories/src/run/GiGaRunActionCommandFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaRunActionCommandFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaRunActionCommandFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaRunActionCommandFAC.h
diff --git a/Sim/GiGaMTFactories/src/run/GiGaWorkerPilotFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaWorkerPilotFAC.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaWorkerPilotFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaWorkerPilotFAC.cpp
diff --git a/Sim/GiGaMTFactories/src/run/GiGaWorkerPilotFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaWorkerPilotFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaWorkerPilotFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaWorkerPilotFAC.h
diff --git a/Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp b/Sim/GiGaMTFactories/src/Components/MagFieldFromSvc.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp
rename to Sim/GiGaMTFactories/src/Components/MagFieldFromSvc.cpp
diff --git a/Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp b/Sim/GiGaMTFactories/src/Components/Steppers.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp
rename to Sim/GiGaMTFactories/src/Components/Steppers.cpp
diff --git a/Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp b/Sim/GiGaMTFactories/src/Components/ToolFieldMgr.cpp
similarity index 96%
rename from Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp
rename to Sim/GiGaMTFactories/src/Components/ToolFieldMgr.cpp
index 42f23b42..c25208f8 100755
--- a/Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp
+++ b/Sim/GiGaMTFactories/src/Components/ToolFieldMgr.cpp
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #include "G4MagneticField.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
-#include "GiGaMTFactories/Magnet/FieldMgrBase.h"
+#include "GiGaMTMagnetFactories/FieldMgrBase.h"
 #include "GaudiKernel/ToolHandle.h"
 
 /** @class ToolFieldMgr
diff --git a/Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp b/Sim/GiGaMTFactories/src/Components/TruthActionFactories.cpp
similarity index 98%
rename from Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp
rename to Sim/GiGaMTFactories/src/Components/TruthActionFactories.cpp
index bb327da5..978436a5 100644
--- a/Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp
+++ b/Sim/GiGaMTFactories/src/Components/TruthActionFactories.cpp
@@ -11,8 +11,8 @@
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
-#include "GiGaMTCoreTruth/TruthFlaggingTrackAction.h"
-#include "GiGaMTCoreTruth/TruthStoringTrackAction.h"
+#include "GiGaMTCoreRun/TruthFlaggingTrackAction.h"
+#include "GiGaMTCoreRun/TruthStoringTrackAction.h"
 
 #include "G4UserTrackingAction.hh"
 
diff --git a/Sim/GiGaMTFactories/src/magnet/components/ZeroFieldMgr.cpp b/Sim/GiGaMTFactories/src/Components/ZeroFieldMgr.cpp
similarity index 96%
rename from Sim/GiGaMTFactories/src/magnet/components/ZeroFieldMgr.cpp
rename to Sim/GiGaMTFactories/src/Components/ZeroFieldMgr.cpp
index af961ed3..2936ec3e 100755
--- a/Sim/GiGaMTFactories/src/magnet/components/ZeroFieldMgr.cpp
+++ b/Sim/GiGaMTFactories/src/Components/ZeroFieldMgr.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTFactories/Magnet/FieldMgrBase.h"
+#include "GiGaMTMagnetFactories/FieldMgrBase.h"
 class G4ChordFinder;
 
 /** @class ZeroFieldMgr
diff --git a/Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp b/Sim/GiGaMTFactories/src/Lib/FieldMgrBase.cpp
similarity index 98%
rename from Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp
rename to Sim/GiGaMTFactories/src/Lib/FieldMgrBase.cpp
index 0e531e8c..4f4d6095 100755
--- a/Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp
+++ b/Sim/GiGaMTFactories/src/Lib/FieldMgrBase.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTFactories/Magnet/FieldMgrBase.h"
+#include "GiGaMTMagnetFactories/FieldMgrBase.h"
 #include "GaudiKernel/GaudiException.h"
 #include "G4ChordFinder.hh"
 #include "G4MagIntegratorStepper.hh"
diff --git a/Sim/GiGaMTGeo/CMakeLists.txt b/Sim/GiGaMTGeo/CMakeLists.txt
index a9a52724..94283c0e 100644
--- a/Sim/GiGaMTGeo/CMakeLists.txt
+++ b/Sim/GiGaMTGeo/CMakeLists.txt
@@ -8,7 +8,11 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTGeo
+-------------
+#]=======================================================================]
+###############################################################################
 # Package: GiGaMTGeo 
 #
 # This package will contain the factories to construct the various G4 objects.
@@ -17,24 +21,24 @@
 # and returns the constructed type by value.
 # FIXME: This requirement should probably be enforced somehow...
 # 
-#################################################################################
-gaudi_subdir(GiGaMTGeo v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/SimInterfaces
-                         Sim/GiGaMTCore) 
+###############################################################################
 
-AddHepMC3()
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
+gaudi_add_header_only_library(GiGaMTGeoLib)
+gaudi_add_header_only_library(GiGaMTRegionsLib)
 
 gaudi_add_module(GiGaMTGeoUtils
-        src/*.cpp
-        INCLUDE_DIRS SimInterfaces
-        LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib GiGaMTCoreCutLib)
+    SOURCES
+	src/Components/GDMLReader.cpp
+        src/Components/GiGaRegionsTool.cpp
+	src/Components/GiGaRegionTool.cpp
+	src/Components/GiGaSetSimAttributes.cpp
+    LINK
+    	Gaudi::GaudiAlgLib
+	Gaussino::GiGaMTRegionsLib
+        Gaussino::SimInterfacesLib
+	Gaussino::GiGaMTCoreCutLib
+	Gaussino::GiGaMTCoreRunLib
+	Geant4::G4persistency
+)
 
-gaudi_install_headers(GiGaMTGeo)
-gaudi_install_headers(GiGaMTRegions)
-gaudi_add_test(QMTest QMTEST)
+gaudi_add_tests(QMTest)
diff --git a/Sim/GiGaMTGeo/GiGaMTGeo/IGDMLReader.h b/Sim/GiGaMTGeo/include/GiGaMTGeo/IGDMLReader.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTGeo/IGDMLReader.h
rename to Sim/GiGaMTGeo/include/GiGaMTGeo/IGDMLReader.h
diff --git a/Sim/GiGaMTGeo/GiGaMTGeo/IGiGaMTGeoSvc.h b/Sim/GiGaMTGeo/include/GiGaMTGeo/IGiGaMTGeoSvc.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTGeo/IGiGaMTGeoSvc.h
rename to Sim/GiGaMTGeo/include/GiGaMTGeo/IGiGaMTGeoSvc.h
diff --git a/Sim/GiGaMTGeo/GiGaMTRegions/IRegionsDefinitionSvc.h b/Sim/GiGaMTGeo/include/GiGaMTRegions/IRegionsDefinitionSvc.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTRegions/IRegionsDefinitionSvc.h
rename to Sim/GiGaMTGeo/include/GiGaMTRegions/IRegionsDefinitionSvc.h
diff --git a/Sim/GiGaMTGeo/GiGaMTRegions/RegionCuts.h b/Sim/GiGaMTGeo/include/GiGaMTRegions/RegionCuts.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTRegions/RegionCuts.h
rename to Sim/GiGaMTGeo/include/GiGaMTRegions/RegionCuts.h
diff --git a/Sim/GiGaMTGeo/GiGaMTRegions/SimAttribute.h b/Sim/GiGaMTGeo/include/GiGaMTRegions/SimAttribute.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTRegions/SimAttribute.h
rename to Sim/GiGaMTGeo/include/GiGaMTRegions/SimAttribute.h
diff --git a/Sim/GiGaMTGeo/src/GDMLReader.cpp b/Sim/GiGaMTGeo/src/Components/GDMLReader.cpp
similarity index 100%
rename from Sim/GiGaMTGeo/src/GDMLReader.cpp
rename to Sim/GiGaMTGeo/src/Components/GDMLReader.cpp
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionTool.cpp b/Sim/GiGaMTGeo/src/Components/GiGaRegionTool.cpp
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaRegionTool.cpp
rename to Sim/GiGaMTGeo/src/Components/GiGaRegionTool.cpp
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionTool.h b/Sim/GiGaMTGeo/src/Components/GiGaRegionTool.h
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaRegionTool.h
rename to Sim/GiGaMTGeo/src/Components/GiGaRegionTool.h
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp b/Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.cpp
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp
rename to Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.cpp
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionsTool.h b/Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.h
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaRegionsTool.h
rename to Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.h
diff --git a/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp b/Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.cpp
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp
rename to Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.cpp
diff --git a/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.h b/Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.h
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaSetSimAttributes.h
rename to Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.h
diff --git a/Sim/GiGaMTGeo/tests/options/cube_import_export.py b/Sim/GiGaMTGeo/tests/options/cube_import_export.py
index e72c06a1..89ad9ba7 100644
--- a/Sim/GiGaMTGeo/tests/options/cube_import_export.py
+++ b/Sim/GiGaMTGeo/tests/options/cube_import_export.py
@@ -82,10 +82,10 @@ SimPhase().ExternalDetectorEmbedder = "Testing"
 
 # Import GDML
 import os
-root = os.getenv("GAUSSINO_PROJECT_ROOT")
+root = os.getenv("GIGAMTGEOROOT")
 SimPhase().ImportGDML = [
     {
-        "GDMLFileName": root + "/Sim/GiGaMTGeo/tests/data/cube_to_import.gdml",
+        "GDMLFileName": root + "/tests/data/cube_to_import.gdml",
         "OutputLevel": DEBUG,
     },
 ]
diff --git a/Sim/GiGaMTReDecay/CMakeLists.txt b/Sim/GiGaMTReDecay/CMakeLists.txt
index 6386e125..dc6ee11c 100644
--- a/Sim/GiGaMTReDecay/CMakeLists.txt
+++ b/Sim/GiGaMTReDecay/CMakeLists.txt
@@ -8,48 +8,41 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GiGaMTReDecay
-#
-# This package contains all the optional ReDecay configuration to coordinate 
-# the re-use of parts over the event between multiple events.
-# 
-#################################################################################
-gaudi_subdir(GiGaMTReDecay v1r0)
+#[=======================================================================[.rst:
+Sim/GiGaMTReDecay
+-----------------
 
-gaudi_depends_on_subdirs(NewRnd
-                         Gen/GenBeam
-                         Gen/Generators
-                         EDMdev/MCTruthToEDM
-                         Gen/RndInit
-                         Sim/GiGaMTTruth
-                         Sim/GiGaMT)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-AddHepMC3()
-find_package(ROOT COMPONENTS MathCore GenVector)
+This package contains all the optional ReDecay configuration to coordinate 
+the re-use of parts over the event between multiple events.
+#]=======================================================================]
 
 gaudi_add_library(GiGaMTReDecayLib
-                  src/lib/token/*.cpp
-                  PUBLIC_HEADERS GiGaMTReDecay
-                  INCLUDE_DIRS GenBeam RndInit GiGaMTTruth
-                  LINK_LIBRARIES GiGaMTLib NewRnd GeneratorsLib)
+    SOURCES
+        src/Lib/Token.cpp
+    LINK
+        PUBLIC
+	    Gaussino::RndInitLib
+	    Gaussino::GiGaMTLib
+	    Gaussino::NewRndLib
+	    Gaussino::GiGaMTCoreRunLib
+	    Gaussino::GeneratorsLib
+)
 
 gaudi_add_module(GiGaMTReDecay
-        src/components/service/*.cpp
-        src/components/gen_tools/*.cpp
-        src/components/*.cpp
-        src/components/sorters/*.cpp
-        src/components/sim/*.cpp
-        src/components/edm/*.cpp
-        LINK_LIBRARIES GiGaMTReDecayLib ROOT RndInitLib MCTruthToEDMLib)
-
-add_dependencies(GiGaMTReDecayLib HepMC3Ext)
-
-#gaudi_add_module(GiGaMT
-        #src/components/*.cpp
-        #LINK_LIBRARIES GiGaMTLib ROOT)
+    SOURCES
+	src/Components/ReDecayInit.cpp
+        src/Components/service/ReDecaySvc.cpp
+	src/Components/gen_tools/ReDecayGeneration.cpp
+	src/Components/gen_tools/ReDecayPileUp.cpp
+	src/Components/gen_tools/ReDecayProduction.cpp
+	src/Components/gen_tools/ReDecaySignalGeneration.cpp
+	src/Components/service/ReDecaySvc.cpp
+	src/Components/sorters/BaseSorter.cpp
+	src/Components/sorters/SignalOnly.cpp
+	src/Components/sim/ReDecaySimAlg.cpp
+	src/Components/sim/ReDecaySkipSimAlg.cpp
+	src/Components/edm/ReDecayMCTruthToEDM.cpp
+    LINK
+        Gaussino::GiGaMTReDecayLib
+	Gaussino::MCTruthToEDMLib
+)
diff --git a/Sim/GiGaMTReDecay/GiGaMTReDecay/IReDecaySorter.h b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/IReDecaySorter.h
similarity index 100%
rename from Sim/GiGaMTReDecay/GiGaMTReDecay/IReDecaySorter.h
rename to Sim/GiGaMTReDecay/include/GiGaMTReDecay/IReDecaySorter.h
diff --git a/Sim/GiGaMTReDecay/GiGaMTReDecay/IRedecaySvc.h b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/IRedecaySvc.h
similarity index 98%
rename from Sim/GiGaMTReDecay/GiGaMTReDecay/IRedecaySvc.h
rename to Sim/GiGaMTReDecay/include/GiGaMTReDecay/IRedecaySvc.h
index 17cb596e..5a496ac6 100755
--- a/Sim/GiGaMTReDecay/GiGaMTReDecay/IRedecaySvc.h
+++ b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/IRedecaySvc.h
@@ -24,7 +24,7 @@
 
 #include "Event/GenCollision.h"
 
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "GiGaMTCoreRun/SimResults.h"
 // GiGa
 
diff --git a/Sim/GiGaMTReDecay/GiGaMTReDecay/Token.h b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/Token.h
similarity index 100%
rename from Sim/GiGaMTReDecay/GiGaMTReDecay/Token.h
rename to Sim/GiGaMTReDecay/include/GiGaMTReDecay/Token.h
diff --git a/Sim/GiGaMTReDecay/GiGaMTReDecay/typedefs.h b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/typedefs.h
similarity index 91%
rename from Sim/GiGaMTReDecay/GiGaMTReDecay/typedefs.h
rename to Sim/GiGaMTReDecay/include/GiGaMTReDecay/typedefs.h
index ed4b5856..18511113 100644
--- a/Sim/GiGaMTReDecay/GiGaMTReDecay/typedefs.h
+++ b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/typedefs.h
@@ -8,9 +8,9 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 #include <map>
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 namespace Gaussino::ReDecay {
   typedef std::map<const LinkedParticle*, MCTruthPtr> SignalTruths;
diff --git a/Sim/GiGaMTReDecay/src/components/ReDecayInit.cpp b/Sim/GiGaMTReDecay/src/Components/ReDecayInit.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/ReDecayInit.cpp
rename to Sim/GiGaMTReDecay/src/Components/ReDecayInit.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/backup/ReDecaySampleGenerationTool.cpp b/Sim/GiGaMTReDecay/src/Components/backup/ReDecaySampleGenerationTool.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/backup/ReDecaySampleGenerationTool.cpp
rename to Sim/GiGaMTReDecay/src/Components/backup/ReDecaySampleGenerationTool.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/edm/ReDecayMCTruthToEDM.cpp b/Sim/GiGaMTReDecay/src/Components/edm/ReDecayMCTruthToEDM.cpp
similarity index 99%
rename from Sim/GiGaMTReDecay/src/components/edm/ReDecayMCTruthToEDM.cpp
rename to Sim/GiGaMTReDecay/src/Components/edm/ReDecayMCTruthToEDM.cpp
index be06682e..caff8145 100755
--- a/Sim/GiGaMTReDecay/src/components/edm/ReDecayMCTruthToEDM.cpp
+++ b/Sim/GiGaMTReDecay/src/Components/edm/ReDecayMCTruthToEDM.cpp
@@ -47,7 +47,7 @@
 #include "Event/MCVertex.h"
 #include "MCTruthToEDM/LinkedParticleMCParticleLink.h"
 
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 #include "Defaults/Locations.h"
 #include "GiGaMTReDecay/typedefs.h"
diff --git a/Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayGeneration.cpp b/Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayGeneration.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayGeneration.cpp
rename to Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayGeneration.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayPileUp.cpp b/Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayPileUp.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayPileUp.cpp
rename to Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayPileUp.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayProduction.cpp b/Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayProduction.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayProduction.cpp
rename to Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayProduction.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/gen_tools/ReDecaySignalGeneration.cpp b/Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecaySignalGeneration.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/gen_tools/ReDecaySignalGeneration.cpp
rename to Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecaySignalGeneration.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/service/ReDecaySvc.cpp b/Sim/GiGaMTReDecay/src/Components/service/ReDecaySvc.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/service/ReDecaySvc.cpp
rename to Sim/GiGaMTReDecay/src/Components/service/ReDecaySvc.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/sim/ReDecaySimAlg.cpp b/Sim/GiGaMTReDecay/src/Components/sim/ReDecaySimAlg.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sim/ReDecaySimAlg.cpp
rename to Sim/GiGaMTReDecay/src/Components/sim/ReDecaySimAlg.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/sim/ReDecaySimAlg.h b/Sim/GiGaMTReDecay/src/Components/sim/ReDecaySimAlg.h
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sim/ReDecaySimAlg.h
rename to Sim/GiGaMTReDecay/src/Components/sim/ReDecaySimAlg.h
diff --git a/Sim/GiGaMTReDecay/src/components/sim/ReDecaySkipSimAlg.cpp b/Sim/GiGaMTReDecay/src/Components/sim/ReDecaySkipSimAlg.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sim/ReDecaySkipSimAlg.cpp
rename to Sim/GiGaMTReDecay/src/Components/sim/ReDecaySkipSimAlg.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/sim/ReDecaySkipSimAlg.h b/Sim/GiGaMTReDecay/src/Components/sim/ReDecaySkipSimAlg.h
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sim/ReDecaySkipSimAlg.h
rename to Sim/GiGaMTReDecay/src/Components/sim/ReDecaySkipSimAlg.h
diff --git a/Sim/GiGaMTReDecay/src/components/sorters/BaseSorter.cpp b/Sim/GiGaMTReDecay/src/Components/sorters/BaseSorter.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sorters/BaseSorter.cpp
rename to Sim/GiGaMTReDecay/src/Components/sorters/BaseSorter.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/sorters/BaseSorter.h b/Sim/GiGaMTReDecay/src/Components/sorters/BaseSorter.h
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sorters/BaseSorter.h
rename to Sim/GiGaMTReDecay/src/Components/sorters/BaseSorter.h
diff --git a/Sim/GiGaMTReDecay/src/components/sorters/SignalOnly.cpp b/Sim/GiGaMTReDecay/src/Components/sorters/SignalOnly.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sorters/SignalOnly.cpp
rename to Sim/GiGaMTReDecay/src/Components/sorters/SignalOnly.cpp
diff --git a/Sim/GiGaMTReDecay/src/lib/token/Token.cpp b/Sim/GiGaMTReDecay/src/Lib/Token.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/lib/token/Token.cpp
rename to Sim/GiGaMTReDecay/src/Lib/Token.cpp
diff --git a/Sim/GiGaMTTruth/CMakeLists.txt b/Sim/GiGaMTTruth/CMakeLists.txt
index c97d6f38..20e679ae 100644
--- a/Sim/GiGaMTTruth/CMakeLists.txt
+++ b/Sim/GiGaMTTruth/CMakeLists.txt
@@ -8,28 +8,11 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GiGaMTTruth 
-#
-# This package contains all code related to the tracking and extraction of truth
-# information from the Geant4 propagation
-#################################################################################
-gaudi_subdir(GiGaMTTruth v1r0)
-gaudi_depends_on_subdirs(NewRnd
-                         GaudiAlg
-                         HepMCUser
-                         Kernel/PartProp
-                         Sim/GiGaMTCore)
+#[=======================================================================[.rst:
+Sim/GiGaMTTruth
+---------------
 
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-
-AddHepMC3()
-
-FindG4libs(digits_hits event geometry global graphics_reps materials persistency
-           particles processes run tracking track intercoms physicslists)
-
-gaudi_install_headers(GiGaMTTruth)
+This package contains all code related to the tracking and extraction of truth
+information from the Geant4 propagation
+#]=======================================================================]
+gaudi_add_header_only_library(GiGaMTTruthLib)
diff --git a/Sim/GiGaMTTruth/GiGaMTTruth/IHepMC3ToMCTruthConverter.h b/Sim/GiGaMTTruth/include/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
similarity index 97%
rename from Sim/GiGaMTTruth/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
rename to Sim/GiGaMTTruth/include/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
index cc20f8d4..d06d2ecd 100644
--- a/Sim/GiGaMTTruth/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
+++ b/Sim/GiGaMTTruth/include/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
@@ -13,7 +13,7 @@
 
 // from Gaudi
 #include "GaudiKernel/IAlgTool.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "HepMCUser/typedefs.h"
 
 class G4Event;
diff --git a/Sim/MCCollector/CMakeLists.txt b/Sim/MCCollector/CMakeLists.txt
index 48c55967..a737225a 100644
--- a/Sim/MCCollector/CMakeLists.txt
+++ b/Sim/MCCollector/CMakeLists.txt
@@ -8,22 +8,20 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: MCCollector
-################################################################################
-gaudi_subdir(MCCollector v1r0)
-
-gaudi_depends_on_subdirs(Sim/GiGaMTCore
-			 Sim/GiGaMTFactories
-             Sim/GiGaMTCore
-             EDMdev/MCTruthToEDM)
-
-AddHepMC3()
-find_package(Boost)
-find_package(CLHEP)
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${Geant4_INCLUDE_DIRS})
+#[=======================================================================[.rst:
+Sim/MCCollector
+---------------
 
+Author: Michał Mazurek
+#]=======================================================================]
 gaudi_add_module(MCCollector
-                 src/*.cpp
-		 INCLUDE_DIRS GiGaMTFactories
-                 LINK_LIBRARIES GiGaMTCoreTruthLib MCTruthToEDMLib)
+    SOURCES
+        src/Components/GetMCCollectorHitsAlg.cpp
+        src/Components/MCCollectorHit.cpp
+        src/Components/MCCollectorSensDet.cpp
+    LINK
+        Gaussino::GiGaMTCoreRunLib
+        Gaussino::GiGaMTFactoriesLib
+        Gaussino::GiGaMTDetFactoriesLib
+        Gaussino::MCTruthToEDMLib
+)
diff --git a/Sim/MCCollector/src/GetMCCollectorHitsAlg.cpp b/Sim/MCCollector/src/Components/GetMCCollectorHitsAlg.cpp
similarity index 98%
rename from Sim/MCCollector/src/GetMCCollectorHitsAlg.cpp
rename to Sim/MCCollector/src/Components/GetMCCollectorHitsAlg.cpp
index c52ea89d..2438c4b8 100755
--- a/Sim/MCCollector/src/GetMCCollectorHitsAlg.cpp
+++ b/Sim/MCCollector/src/Components/GetMCCollectorHitsAlg.cpp
@@ -15,7 +15,7 @@
 // GiGaMT
 #include "Defaults/Locations.h"
 #include "GiGaMTCoreRun/G4EventProxy.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "MCTruthToEDM/LinkedParticleMCParticleLink.h"
 // local
 #include "MCCollectorHit.h"
diff --git a/Sim/MCCollector/src/MCCollectorHit.cpp b/Sim/MCCollector/src/Components/MCCollectorHit.cpp
similarity index 100%
rename from Sim/MCCollector/src/MCCollectorHit.cpp
rename to Sim/MCCollector/src/Components/MCCollectorHit.cpp
diff --git a/Sim/MCCollector/src/MCCollectorHit.h b/Sim/MCCollector/src/Components/MCCollectorHit.h
similarity index 100%
rename from Sim/MCCollector/src/MCCollectorHit.h
rename to Sim/MCCollector/src/Components/MCCollectorHit.h
diff --git a/Sim/MCCollector/src/MCCollectorSensDet.cpp b/Sim/MCCollector/src/Components/MCCollectorSensDet.cpp
similarity index 98%
rename from Sim/MCCollector/src/MCCollectorSensDet.cpp
rename to Sim/MCCollector/src/Components/MCCollectorSensDet.cpp
index 52cbdc99..5b21473a 100755
--- a/Sim/MCCollector/src/MCCollectorSensDet.cpp
+++ b/Sim/MCCollector/src/Components/MCCollectorSensDet.cpp
@@ -12,8 +12,8 @@
 
 // local
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
-#include "GiGaMTFactories/GiGaMTG4SensDetFactory.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
+#include "GiGaMTDetFactories/GiGaMTG4SensDetFactory.h"
 #include "MCCollectorHit.h"
 
 // from CLHEP
diff --git a/Sim/ParallelGeometry/CMakeLists.txt b/Sim/ParallelGeometry/CMakeLists.txt
index 0b28dbb7..652050de 100644
--- a/Sim/ParallelGeometry/CMakeLists.txt
+++ b/Sim/ParallelGeometry/CMakeLists.txt
@@ -8,30 +8,31 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: ParallelGeometry
-################################################################################
-gaudi_subdir(ParallelGeometry v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/GiGaMTCore
-                         Sim/GiGaMTFactories)
-
-AddHepMC3()                                              
-find_package(Boost)
-find_package(CLHEP)
-
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${Geant4_INCLUDE_DIRS})
-
+#[=======================================================================[.rst:
+Sim/ParallelGeometry
+--------------------
+#]=======================================================================]
 gaudi_add_library(ParallelGeometryLib
-                  src/Lib/*.cpp
-                  PUBLIC_HEADERS ParallelGeometry
-                  INCLUDE_DIRS Sim/GiGaMTFactories ${RANGEV3_INCLUDE_DIRS}
-                  LINK_LIBRARIES GaudiAlgLib GiGaMTCoreRunLib ${HEPMC3_LIBRARIES} ${GEANT4_LIBS})
+    SOURCES
+        src/Lib/Physics.cpp
+        src/Lib/World.cpp
+    LINK
+        PUBLIC
+            XercesC::XercesC
+            Geant4::G4physicslists
+            Gaussino::GiGaMTPhysFactoriesLib
+            Gaussino::GiGaMTCoreRunLib
+)
 
 gaudi_add_module(ParallelGeometry
-                 src/Components/*.cpp
-                 LINK_LIBRARIES ParallelGeometryLib)
+    SOURCES
+        src/Components/DefaultPhysicsFactory.cpp
+        src/Components/DefaultWorldFactory.cpp
+    LINK
+        Geant4::G4persistency
+        Gaussino::ParallelGeometryLib
+)
 
-gaudi_install_python_modules()
-gaudi_add_test(QMTest QMTEST)
+gaudi_install(PYTHON)
+gaudi_generate_confuserdb()
+gaudi_add_tests(QMTest)
diff --git a/Sim/ParallelGeometry/ParallelGeometry/Physics.h b/Sim/ParallelGeometry/include/ParallelGeometry/Physics.h
similarity index 100%
rename from Sim/ParallelGeometry/ParallelGeometry/Physics.h
rename to Sim/ParallelGeometry/include/ParallelGeometry/Physics.h
diff --git a/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h b/Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.h
similarity index 94%
rename from Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h
rename to Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.h
index 4661db22..7eac945f 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h
+++ b/Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.h
@@ -12,8 +12,8 @@
 // Geant4
 #include "G4ParallelWorldPhysics.hh"
 // local
-#include "GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h"
-#include "GiGaMTFactories/GiGaMTG4PhysicsFactory.h"
+#include "GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h"
+#include "GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h"
 #include "ParallelGeometry/Physics.h"
 
 namespace ParallelGeometry {
diff --git a/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.icpp b/Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.icpp
similarity index 100%
rename from Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.icpp
rename to Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.icpp
diff --git a/Sim/ParallelGeometry/ParallelGeometry/World.h b/Sim/ParallelGeometry/include/ParallelGeometry/World.h
similarity index 100%
rename from Sim/ParallelGeometry/ParallelGeometry/World.h
rename to Sim/ParallelGeometry/include/ParallelGeometry/World.h
diff --git a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h b/Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.h
similarity index 100%
rename from Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h
rename to Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.h
diff --git a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp b/Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.icpp
similarity index 100%
rename from Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp
rename to Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.icpp
diff --git a/Sim/SimInterfaces/CMakeLists.txt b/Sim/SimInterfaces/CMakeLists.txt
index 51218c09..7ee25dfc 100644
--- a/Sim/SimInterfaces/CMakeLists.txt
+++ b/Sim/SimInterfaces/CMakeLists.txt
@@ -8,9 +8,8 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: SimInterface
-################################################################################
-gaudi_subdir(SimInterfaces v1r0)
-
-gaudi_install_headers(SimInterfaces)
+#[=======================================================================[.rst:
+Sim/SimInterfaces
+-----------------
+#]=======================================================================]
+gaudi_add_header_only_library(SimInterfacesLib)
diff --git a/Sim/SimInterfaces/SimInterfaces/IG4MonitoringTool.h b/Sim/SimInterfaces/include/SimInterfaces/IG4MonitoringTool.h
similarity index 100%
rename from Sim/SimInterfaces/SimInterfaces/IG4MonitoringTool.h
rename to Sim/SimInterfaces/include/SimInterfaces/IG4MonitoringTool.h
diff --git a/Sim/SimInterfaces/SimInterfaces/IGaussinoTool.h b/Sim/SimInterfaces/include/SimInterfaces/IGaussinoTool.h
similarity index 100%
rename from Sim/SimInterfaces/SimInterfaces/IGaussinoTool.h
rename to Sim/SimInterfaces/include/SimInterfaces/IGaussinoTool.h
diff --git a/Sim/SimInterfaces/SimInterfaces/ISimSvc.h b/Sim/SimInterfaces/include/SimInterfaces/ISimSvc.h
similarity index 100%
rename from Sim/SimInterfaces/SimInterfaces/ISimSvc.h
rename to Sim/SimInterfaces/include/SimInterfaces/ISimSvc.h
diff --git a/Utils/CMakeLists.txt b/Utils/CMakeLists.txt
index eb2d7f85..8292b246 100644
--- a/Utils/CMakeLists.txt
+++ b/Utils/CMakeLists.txt
@@ -8,9 +8,8 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: Utils
-################################################################################
-gaudi_subdir(Utils v1r0)
-
-gaudi_install_headers(Utils)
+#[=======================================================================[.rst:
+Utils
+-----
+#]=======================================================================]
+gaudi_add_header_only_library(UtilsLib)
diff --git a/Utils/Utils/LocalTL.h b/Utils/include/Utils/LocalTL.h
similarity index 100%
rename from Utils/Utils/LocalTL.h
rename to Utils/include/Utils/LocalTL.h
diff --git a/Utils/Utils/ToolProperty.h b/Utils/include/Utils/ToolProperty.h
similarity index 100%
rename from Utils/Utils/ToolProperty.h
rename to Utils/include/Utils/ToolProperty.h
diff --git a/Utils/Utils/blockingconcurrentqueue.h b/Utils/include/Utils/blockingconcurrentqueue.h
similarity index 100%
rename from Utils/Utils/blockingconcurrentqueue.h
rename to Utils/include/Utils/blockingconcurrentqueue.h
diff --git a/Utils/Utils/concurrentqueue.h b/Utils/include/Utils/concurrentqueue.h
similarity index 100%
rename from Utils/Utils/concurrentqueue.h
rename to Utils/include/Utils/concurrentqueue.h
diff --git a/cmake/FindALPGEN.cmake b/cmake/FindALPGEN.cmake
deleted file mode 100644
index 24d22f6f..00000000
--- a/cmake/FindALPGEN.cmake
+++ /dev/null
@@ -1,60 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find ALPGEN
-# Defines:
-#
-#  ALPGEN_FOUND
-#  ALPGEN_INCLUDE_DIR
-#  ALPGEN_INCLUDE_DIRS (not cached)
-#  ALPGEN_<component>_LIBRARY
-#  ALPGEN_<component>_FOUND
-#  ALPGEN_LIBRARIES (not cached)
-#  ALPGEN_LIBRARY_DIRS (not cached)
-#  ALPGEN_PYTHON_PATH
-#  ALPGEN_BINARY_PATH (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT ALPGEN_FIND_COMPONENTS)
-  set(ALPGEN_FIND_COMPONENTS alpgen alpsho)
-endif()
-
-foreach(component ${ALPGEN_FIND_COMPONENTS})
-  find_library(ALPGEN_${component}_LIBRARY NAMES ${component})
-  if (ALPGEN_${component}_LIBRARY)
-    set(ALPGEN_${component}_FOUND 1)
-    list(APPEND ALPGEN_LIBRARIES ${ALPGEN_${component}_LIBRARY})
-
-    get_filename_component(libdir ${ALPGEN_${component}_LIBRARY} PATH)
-    list(APPEND ALPGEN_LIBRARY_DIRS ${libdir})
-  else()
-    set(ALPGEN_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(ALPGEN_${component}_LIBRARY)
-endforeach()
-
-if(ALPGEN_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES ALPGEN_LIBRARY_DIRS)
-endif()
-
-find_file(ALPGEN_AUTHOR_DIR alpgen-author
-          HINTS ${ALPGEN_LIBRARY_DIRS}
-          PATH_SUFFIXES share ../../share)
-mark_as_advanced(ALPGEN_AUTHOR_DIR)
-set(ALPGEN_INCLUDE_DIRS ${ALPGEN_AUTHOR_DIR} ${ALPGEN_AUTHOR_DIR}/alplib)
-
-# handle the QUIETLY and REQUIRED arguments and set ALPGEN_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALPGEN DEFAULT_MSG ALPGEN_LIBRARY_DIRS ALPGEN_LIBRARIES ALPGEN_AUTHOR_DIR)
-
-mark_as_advanced(ALPGEN_FOUND)
-
-set(ALPGEN_ENVIRONMENT SET ALPGEN_AUTHOR_DIR "${ALPGEN_AUTHOR_DIR}")
diff --git a/cmake/FindCRMC.cmake b/cmake/FindCRMC.cmake
deleted file mode 100644
index a5ca3a18..00000000
--- a/cmake/FindCRMC.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find CRMC
-# Defines:
-#
-#  CRMC_FOUND
-#  CRMC_HOME (not cached)
-#  CRMC_INCLUDE_DIR
-#  CRMC_INCLUDE_DIRS (not cached)
-#  CRMC_LIBRARY
-#  CRMC_LIBRARIES (not cached)
-#  CRMC_LIBRARY_DIRS (not cached)
-
-
-find_path(CRMC_INCLUDE_DIR CRMCconfig.h
-          HINTS $ENV{CRMC_ROOT_DIR}/src
-          PATH_SUFFIXES src)
-
-if(CRMC_INCLUDE_DIR)
-  get_filename_component(CRMC_HOME "${CRMC_INCLUDE_DIR}" DIRECTORY)
-  set(CRMC_INCLUDE_DIRS "${CRMC_INCLUDE_DIR}")
-  set(CRMC_LIBRARY_DIRS "${CRMC_HOME}/lib")
-  set(CRMC_LIBRARIES "${CRMC_LIBRARY_DIRS}/libCrmcBasic.so" "${CRMC_LIBRARY_DIRS}/libHepEvtDummy.so")
-  
-endif()
-
-mark_as_advanced(CRMC_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set CRMC_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(CRMC DEFAULT_MSG CRMC_INCLUDE_DIR)
-
-mark_as_advanced(CRMC_FOUND)
-
-set(CRMC_ENVIRONMENT SET CRMC_TABS ${CRMC_HOME}/tabs)
diff --git a/cmake/FindHIJING.cmake b/cmake/FindHIJING.cmake
deleted file mode 100644
index 1a5037f3..00000000
--- a/cmake/FindHIJING.cmake
+++ /dev/null
@@ -1,51 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find HIJING
-# Defines:
-#
-#  HIJING_FOUND
-#  HIJING_INCLUDE_DIR
-#  HIJING_INCLUDE_DIRS (not cached)
-#  HIJING_<component>_LIBRARY
-#  HIJING_<component>_FOUND
-#  HIJING_LIBRARIES (not cached)
-#  HIJING_LIBRARY_DIRS (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT HIJING_FIND_COMPONENTS)
-  set(HIJING_FIND_COMPONENTS hijing hijing_dummy)
-endif()
-
-foreach(component ${HIJING_FIND_COMPONENTS})
-  find_library(HIJING_${component}_LIBRARY NAMES ${component}
-               HINTS $ENV{HIJING_ROOT_DIR}/lib ${HIJING_ROOT_DIR}/lib)
-  if (HIJING_${component}_LIBRARY)
-    set(HIJING_${component}_FOUND 1)
-    list(APPEND HIJING_LIBRARIES ${HIJING_${component}_LIBRARY})
-
-    get_filename_component(libdir ${HIJING_${component}_LIBRARY} PATH)
-    list(APPEND HIJING_LIBRARY_DIRS ${libdir})
-  else()
-    set(HIJING_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(HIJING_${component}_LIBRARY)
-endforeach()
-
-if(HIJING_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES HIJING_LIBRARY_DIRS)
-endif()
-
-# handle the QUIETLY and REQUIRED arguments and set HIJING_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(HIJING DEFAULT_MSG HIJING_LIBRARIES CMAKE_Fortran_COMPILER)
-
-mark_as_advanced(HIJING_FOUND)
diff --git a/cmake/FindHepMC3.cmake b/cmake/FindHepMC3.cmake
new file mode 100644
index 00000000..3e1c5f2e
--- /dev/null
+++ b/cmake/FindHepMC3.cmake
@@ -0,0 +1,61 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
+#                                                                             #
+# This software is distributed under the terms of the Apache License          #
+# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+# - Locate HepMC3 library
+# Defines:
+#  Variables:
+#   HepMC3_FOUND
+#   HepMC3_INCLUDE_DIR
+#   HepMC3_INCLUDE_DIRS (not cached)
+#   HepMC3_<component>_LIBRARY
+#   HepMC3_LIBRARIES (not cached)
+#   HepMC3_LIBRARY_DIRS (not cached)
+#  Targets:
+#   HepMC3::HepMC3 (default)
+#   HepMC3::HepMC3search
+
+if(NOT HepMC3_FIND_COMPONENTS)
+  set(HepMC3_FIND_COMPONENTS "HepMC3" "HepMC3search")
+endif()
+
+set(HepMC3_INCLUDE_DIR ${GAUSSINOEXTLIBS_PREFIX_DIR}/include)
+mark_as_advanced(HepMC3_INCLUDE_DIR)
+
+foreach(component IN LISTS HepMC3_FIND_COMPONENTS)
+  find_library(HepMC3_${component}_LIBRARY
+	       ${component}
+           PATHS ${GAUSSINOEXTLIBS_PREFIX_DIR}/lib)
+  mark_as_advanced(HepMC3_${component}_LIBRARY)
+  if(HepMC3_${component}_LIBRARY)
+    set(HepMC3_${component}_FOUND ${HepMC3_${component}_LIBRARY})
+    list(APPEND HepMC3_LIBRARIES ${HepMC3_${component}_LIBRARY})
+    get_filename_component(_comp_dir ${HepMC3_${component}_LIBRARY} DIRECTORY)
+    list(APPEND HepMC3_LIBRARY_DIRS ${_comp_dir})
+  endif()
+endforeach()
+
+# handle the QUIETLY and REQUIRED arguments and set HepMC_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(HepMC3
+  HANDLE_COMPONENTS
+  VERSION_VAR 0.1
+  REQUIRED_VARS HepMC3_INCLUDE_DIR HepMC3_LIBRARIES
+)
+
+foreach(component IN LISTS HepMC3_FIND_COMPONENTS)
+    if(NOT TARGET HepMC3::${component})
+    	add_library(HepMC3::${component} UNKNOWN IMPORTED)
+    	set_target_properties(HepMC3::${component} PROPERTIES IMPORTED_LOCATION ${HepMC3_${component}_LIBRARY})
+    	target_include_directories(HepMC3::${component} 
+	    SYSTEM INTERFACE "${GAUSSINOEXTLIBS_PREFIX_DIR}/include"
+	    "${GAUSSINOEXTLIBS_PREFIX_DIR}/share/HepMC3/interfaces")
+    endif()
+endforeach()
diff --git a/cmake/FindHerwig++.cmake b/cmake/FindHerwig++.cmake
deleted file mode 100644
index dfd61d6d..00000000
--- a/cmake/FindHerwig++.cmake
+++ /dev/null
@@ -1,51 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Herwig++
-# Defines:
-#
-#  HERWIG++_FOUND
-#  HERWIG++_EXECUTABLE
-#  HERWIG++_BINARY_PATH (not cached)
-#  HERWIG++_HOME (not cached)
-#  HERWIG++_INCLUDE_DIR
-#  HERWIG++_INCLUDE_DIRS (not cached)
-#  HERWIG++_LIBRARY_DIR
-#  HERWIG++_LIBRARY_DIRS (not cached)
-
-find_program(HERWIG++_EXECUTABLE Herwig++
-             HINTS ${HERWIG++_ROOT_DIR}/bin
-                   $ENV{HERWIGPP_ROOT_DIR}/bin
-                   ${HERWIGPP_ROOT_DIR}/bin)
-if(HERWIG++_EXECUTABLE)
-  get_filename_component(HERWIG++_BINARY_PATH ${HERWIG++_EXECUTABLE} PATH)
-endif()
-
-find_file(HERWIG++_INCLUDE_DIR Herwig++
-          HINTS ${HERWIG++_ROOT_DIR}/include
-                $ENV{HERWIGPP_ROOT_DIR}/include
-                ${HERWIGPP_ROOT_DIR}/include
-          PATH_SUFFIXES include)
-set(HERWIG++_INCLUDE_DIRS ${HERWIG++_INCLUDE_DIR})
-find_file(HERWIG++_LIBRARY_DIR Herwig++
-          HINTS ${HERWIG++_ROOT_DIR}/lib
-                $ENV{HERWIGPP_ROOT_DIR}/lib
-                ${HERWIGPP_ROOT_DIR}/lib
-          PATH_SUFFIXES lib)
-set(HERWIG++_LIBRARY_DIRS ${HERWIG++_LIBRARY_DIR})
- 
-mark_as_advanced(HERWIG++_EXECUTABLE HERWIG++_INCLUDE_DIR HERWIG++_LIBRARY_DIR HERWIG++_EXECUTABLE)
-
-# handle the QUIETLY and REQUIRED arguments and set HERWIG++_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Herwig++ DEFAULT_MSG HERWIG++_INCLUDE_DIR HERWIG++_LIBRARY_DIR)
-
-mark_as_advanced(HERWIG++_FOUND)
diff --git a/cmake/FindLHAPDF.cmake b/cmake/FindLHAPDF.cmake
deleted file mode 100644
index 9db74a98..00000000
--- a/cmake/FindLHAPDF.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find LHAPDF
-# Defines:
-#
-#  LHAPDF_FOUND
-#  LHAPDF_INCLUDE_DIR
-#  LHAPDF_INCLUDE_DIRS (not cached)
-#  LHAPDF_LIBRARY
-#  LHAPDF_LIBRARIES (not cached)
-#  LHAPDF_LIBRARY_DIRS (not cached)
-
-find_library(LHAPDF_LIBRARY NAMES LHAPDF
-             HINTS $ENV{LHAPDF_ROOT_DIR}/lib ${LHAPDF_ROOT_DIR}/lib)
-
-find_path(LHAPDF_INCLUDE_DIR LHAPDF/LHAPDF.h
-          HINTS $ENV{LHAPDF_ROOT_DIR}/include ${LHAPDF_ROOT_DIR}/include)
-
-mark_as_advanced(LHAPDF_INCLUDE_DIR LHAPDF_LIBRARY)
-
-# handle the QUIETLY and REQUIRED arguments and set LHAPDF_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LHAPDF DEFAULT_MSG LHAPDF_INCLUDE_DIR LHAPDF_LIBRARY)
-
-set(LHAPDF_LIBRARIES ${LHAPDF_LIBRARY})
-get_filename_component(LHAPDF_LIBRARY_DIRS ${LHAPDF_LIBRARY} PATH)
-
-set(LHAPDF_INCLUDE_DIRS ${LHAPDF_INCLUDE_DIR})
-
-mark_as_advanced(LHAPDF_FOUND)
diff --git a/cmake/FindPOWHEG-BOX.cmake b/cmake/FindPOWHEG-BOX.cmake
deleted file mode 100644
index 7d073cfc..00000000
--- a/cmake/FindPOWHEG-BOX.cmake
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-#  Try to find POWHEG-BOX
-# Defines:
-#
-#  POWHEG-BOX_BINARY_PATH
-
-find_path(POWHEG-BOX_BINARY_PATH NAMES ZZ Dijet
-          HINTS ${powhegbox_home}/bin 
-          PATH_SUFFIXES bin)
-
-# handle the QUIETLY and REQUIRED arguments and set POWHEG-BOX_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(POWHEG-BOX DEFAULT_MSG POWHEG-BOX_BINARY_PATH)
-
-mark_as_advanced(POWHEG-BOX_FOUND)
diff --git a/cmake/FindPhotos++.cmake b/cmake/FindPhotos++.cmake
deleted file mode 100644
index 2095a0ec..00000000
--- a/cmake/FindPhotos++.cmake
+++ /dev/null
@@ -1,62 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Photos++
-# Defines:
-#
-#  PHOTOS++_FOUND
-#  PHOTOS++_INCLUDE_DIR
-#  PHOTOS++_INCLUDE_DIRS (not cached)
-#  PHOTOS++_<component>_LIBRARY
-#  PHOTOS++_<component>_FOUND
-#  PHOTOS++_LIBRARIES (not cached)
-#  PHOTOS++_LIBRARY_DIRS (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT PHOTOS++_FIND_COMPONENTS)
-  set(PHOTOS++_FIND_COMPONENTS Fortran CxxInterface  # versions <3.58
-                               pp HEPEVT ppHepMC)    # versions >=3.58
-endif()
-
-foreach(component ${PHOTOS++_FIND_COMPONENTS})
-  find_library(PHOTOS++_${component}_LIBRARY NAMES Photos${component}
-               HINTS ${PHOTOS++_ROOT_DIR}/lib
-                     $ENV{PHOTOSPP_ROOT_DIR}/lib
-                     ${PHOTOSPP_ROOT_DIR}/lib)
-  if (PHOTOS++_${component}_LIBRARY)
-    set(PHOTOS++_${component}_FOUND 1)
-    list(APPEND PHOTOS++_LIBRARIES ${PHOTOS++_${component}_LIBRARY})
-
-    get_filename_component(libdir ${PHOTOS++_${component}_LIBRARY} PATH)
-    list(APPEND PHOTOS++_LIBRARY_DIRS ${libdir})
-  else()
-    set(PHOTOS++_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(PHOTOS++_${component}_LIBRARY)
-endforeach()
-
-if(PHOTOS++_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES PHOTOS++_LIBRARY_DIRS)
-endif()
-
-find_path(PHOTOS++_INCLUDE_DIR Photos/Photos.h
-          HINTS ${PHOTOS++_ROOT_DIR}/include
-                $ENV{PHOTOSPP_ROOT_DIR}/include
-                ${PHOTOSPP_ROOT_DIR}/include)
-
-set(PHOTOS++_INCLUDE_DIRS ${PHOTOS++_INCLUDE_DIR})
-mark_as_advanced(PHOTOS++_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set PHOTOS++_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Photos++ DEFAULT_MSG PHOTOS++_INCLUDE_DIR PHOTOS++_LIBRARIES)
-
-mark_as_advanced(PHOTOS++_FOUND)
diff --git a/cmake/FindPythia6.cmake b/cmake/FindPythia6.cmake
deleted file mode 100644
index 18837644..00000000
--- a/cmake/FindPythia6.cmake
+++ /dev/null
@@ -1,56 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Pythia6
-# Defines:
-#
-#  PYTHIA6_FOUND
-#  PYTHIA6_INCLUDE_DIR
-#  PYTHIA6_INCLUDE_DIRS (not cached)
-#  PYTHIA6_<component>_LIBRARY
-#  PYTHIA6_<component>_FOUND
-#  PYTHIA6_LIBRARIES (not cached)
-#  PYTHIA6_LIBRARY_DIRS (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT Pythia6_FIND_COMPONENTS)
-  set(Pythia6_FIND_COMPONENTS pythia6 pythia6_dummy)
-endif()
-
-foreach(component ${Pythia6_FIND_COMPONENTS})
-  find_library(PYTHIA6_${component}_LIBRARY NAMES ${component}
-               HINTS $ENV{PYTHIA6_ROOT_DIR}/lib ${PYTHIA6_ROOT_DIR}/lib)
-  if (PYTHIA6_${component}_LIBRARY)
-    set(PYTHIA6_${component}_FOUND 1)
-    list(APPEND PYTHIA6_LIBRARIES ${PYTHIA6_${component}_LIBRARY})
-
-    get_filename_component(libdir ${PYTHIA6_${component}_LIBRARY} PATH)
-    list(APPEND PYTHIA6_LIBRARY_DIRS ${libdir})
-  else()
-    set(PYTHIA6_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(PYTHIA6_${component}_LIBRARY)
-endforeach()
-
-if(PYTHIA6_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES PYTHIA6_LIBRARY_DIRS)
-endif()
-
-find_path(PYTHIA6_INCLUDE_DIR general_pythia.inc
-          HINTS $ENV{PYTHIA6_ROOT_DIR}/include ${PYTHIA6_ROOT_DIR}/include)
-set(PYTHIA6_INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIR})
-mark_as_advanced(PYTHIA6_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set PYTHIA6_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pythia6 DEFAULT_MSG PYTHIA6_INCLUDE_DIR PYTHIA6_LIBRARIES CMAKE_Fortran_COMPILER)
-
-mark_as_advanced(PYTHIA6_FOUND)
diff --git a/cmake/FindPythia8.cmake b/cmake/FindPythia8.cmake
index d485487d..477d83bf 100644
--- a/cmake/FindPythia8.cmake
+++ b/cmake/FindPythia8.cmake
@@ -71,3 +71,8 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pythia8 DEFAULT_MSG PYTHIA8_INCLUDE_DIR PYTHIA
 set(PYTHIA8_INCLUDE_DIRS ${PYTHIA8_INCLUDE_DIR})
 
 mark_as_advanced(PYTHIA8_FOUND)
+
+# FIXME: well-defined target
+add_library(Pythia8::Pythia8 UNKNOWN IMPORTED)
+set_target_properties(Pythia8::Pythia8 PROPERTIES IMPORTED_LOCATION ${PYTHIA8_LIBRARIES})
+target_include_directories(Pythia8::Pythia8 SYSTEM INTERFACE ${PYTHIA8_INCLUDE_DIR})
diff --git a/cmake/FindRivet.cmake b/cmake/FindRivet.cmake
deleted file mode 100644
index 0610aadc..00000000
--- a/cmake/FindRivet.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Rivet
-# Defines:
-#
-#  RIVET_FOUND
-#  RIVET_INCLUDE_DIR
-#  RIVET_INCLUDE_DIRS (not cached)
-#  RIVET_LIBRARY
-#  RIVET_LIBRARIES (not cached)
-#  RIVET_LIBRARY_DIRS (not cached)
-
-find_library(RIVET_LIBRARY NAMES Rivet)
-
-find_path(RIVET_INCLUDE_DIR Rivet/Rivet.hh)
-
-find_program(RIVET_EXECUTABLE NAMES rivet)
-find_program(RIVET_buildplugin_EXECUTABLE NAMES rivet-buildplugin)
-
-mark_as_advanced(RIVET_INCLUDE_DIR RIVET_LIBRARY RIVET_EXECUTABLE RIVET_buildplugin_EXECUTABLE)
-
-# handle the QUIETLY and REQUIRED arguments and set Rivet_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Rivet DEFAULT_MSG RIVET_INCLUDE_DIR RIVET_LIBRARY RIVET_EXECUTABLE RIVET_buildplugin_EXECUTABLE)
-
-set(RIVET_LIBRARIES ${RIVET_LIBRARY})
-get_filename_component(RIVET_LIBRARY_DIRS ${RIVET_LIBRARY} PATH)
-
-set(RIVET_INCLUDE_DIRS ${RIVET_INCLUDE_DIR})
-
-get_filename_component(RIVET_BINARY_PATH ${RIVET_EXECUTABLE} PATH)
-
-mark_as_advanced(Rivet_FOUND)
diff --git a/cmake/FindTauola++.cmake b/cmake/FindTauola++.cmake
deleted file mode 100644
index 33eccf9c..00000000
--- a/cmake/FindTauola++.cmake
+++ /dev/null
@@ -1,63 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Tauola++
-# Defines:
-#
-#  TAUOLA++_FOUND
-#  TAUOLA++_INCLUDE_DIR
-#  TAUOLA++_INCLUDE_DIRS (not cached)
-#  TAUOLA++_<component>_LIBRARY
-#  TAUOLA++_<component>_FOUND
-#  TAUOLA++_LIBRARIES (not cached)
-#  TAUOLA++_LIBRARY_DIRS (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT Tauola++_FIND_COMPONENTS)
-  set(Tauola++_FIND_COMPONENTS Fortran CxxInterface)
-endif()
-
-#message(STATUS "Tauola++ CMAKE_PREFIX_PATH")
-#foreach(_x ${CMAKE_PREFIX_PATH})
-#  message(STATUS "Tauola++ -- ${_x}")
-#endforeach()
-
-foreach(component ${Tauola++_FIND_COMPONENTS})
-  find_library(TAUOLA++_${component}_LIBRARY NAMES Tauola${component}
-               HINTS ${TAUOLA++_ROOT_DIR}/lib
-                     $ENV{TAUOLAPP_ROOT_DIR}/lib ${TAUOLAPP_ROOT_DIR}/lib)
-  if (TAUOLA++_${component}_LIBRARY)
-    set(TAUOLA++_${component}_FOUND 1)
-    list(APPEND TAUOLA++_LIBRARIES ${TAUOLA++_${component}_LIBRARY})
-
-    get_filename_component(libdir ${TAUOLA++_${component}_LIBRARY} PATH)
-    list(APPEND TAUOLA++_LIBRARY_DIRS ${libdir})
-  else()
-    set(TAUOLA++_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(TAUOLA++_${component}_LIBRARY)
-endforeach()
-
-if(TAUOLA++_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES TAUOLA++_LIBRARY_DIRS)
-endif()
-
-find_path(TAUOLA++_INCLUDE_DIR Tauola/Tauola.h
-          HINTS ${TAUOLA++_ROOT_DIR}/include
-                $ENV{TAUOLAPP_ROOT_DIR}/include ${TAUOLAPP_ROOT_DIR}/include)
-set(TAUOLA++_INCLUDE_DIRS ${TAUOLA++_INCLUDE_DIR})
-mark_as_advanced(TAUOLA++_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set TAUOLA++_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Tauola++ DEFAULT_MSG TAUOLA++_INCLUDE_DIR TAUOLA++_LIBRARIES)
-
-mark_as_advanced(TAUOLA++_FOUND)
diff --git a/cmake/FindThePEG.cmake b/cmake/FindThePEG.cmake
deleted file mode 100644
index c1a4e440..00000000
--- a/cmake/FindThePEG.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find ThePEG
-# Defines:
-#
-#  THEPEG_FOUND
-#  THEPEG_INCLUDE_DIR
-#  THEPEG_INCLUDE_DIRS (not cached)
-#  THEPEG_LIBRARY
-#  THEPEG_LIBRARIES (not cached)
-#  THEPEG_LIBRARY_DIRS (not cached)
-
-find_path(THEPEG_INCLUDE_DIR ThePEG/Config/ThePEG.h
-          HINTS $ENV{THEPEG_ROOT_DIR}/include ${THEPEG_ROOT_DIR}/include)
-
-find_library(THEPEG_LIBRARY NAMES ThePEG
-             HINTS $ENV{THEPEG_ROOT_DIR}/lib ${THEPEG_ROOT_DIR}/lib
-             PATH_SUFFIXES ThePEG)
-
-mark_as_advanced(THEPEG_INCLUDE_DIR THEPEG_LIBRARY)
-
-# handle the QUIETLY and REQUIRED arguments and set ThePEG_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(ThePEG DEFAULT_MSG THEPEG_INCLUDE_DIR THEPEG_LIBRARY)
-
-mark_as_advanced(THEPEG_FOUND)
-
-set(THEPEG_LIBRARIES ${THEPEG_LIBRARY})
-get_filename_component(THEPEG_LIBRARY_DIRS ${THEPEG_LIBRARY} PATH)
-
-set(THEPEG_INCLUDE_DIRS ${THEPEG_INCLUDE_DIR})
diff --git a/cmake/FindYODA.cmake b/cmake/FindYODA.cmake
deleted file mode 100644
index 6e3f042f..00000000
--- a/cmake/FindYODA.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find YODA
-# Defines:
-#
-#  YODA_FOUND
-#  YODA_HOME (not cached)
-#  YODA_INCLUDE_DIRS (not cached)
-#  YODA_LIBRARY
-#  YODA_LIBRARIES (not cached)
-#  YODA_LIBRARY_DIRS (not cached)
-
-
-find_library(YODA_LIBRARY YODA
-             HINTS $ENV{YODA_ROOT_DIR}/lib)
-
-if(YODA_LIBRARY)
-  get_filename_component(YODA_LIBRARY_DIRS "${YODA_LIBRARY}" DIRECTORY)
-  get_filename_component(YODA_HOME "${YODA_LIBRARY_DIRS}" DIRECTORY)
-  set(YODA_INCLUDE_DIRS "${YODA_HOME}/include")
-  set(YODA_LIBRARIES "${YODA_LIBRARY}")
-  
-endif()
-
-mark_as_advanced(YODA_LIBRARY)
-
-# handle the QUIETLY and REQUIRED arguments and set YODA_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(YODA DEFAULT_MSG YODA_LIBRARY)
-
-mark_as_advanced(YODA_FOUND)
-
-set(YODA_PYTHON_PATH ${YODA_HOME}/lib/python${Python_config_version_twodigit}/site-packages)
-set(YODA_BINARY_PATH ${YODA_HOME}/bin)
diff --git a/cmake/GaussinoConfig.cmake.in b/cmake/GaussinoConfig.cmake.in
new file mode 100644
index 00000000..105ef0b4
--- /dev/null
+++ b/cmake/GaussinoConfig.cmake.in
@@ -0,0 +1,41 @@
+cmake_policy(PUSH)
+cmake_policy(VERSION 3.15)
+
+@PACKAGE_INIT@
+
+set(@PROJECT_NAME_UPCASE@_PREFIX_DIR "${PACKAGE_PREFIX_DIR}")
+
+if(PACKAGE_PREFIX_DIR MATCHES "/InstallArea/")
+    get_filename_component(@PROJECT_NAME_UPCASE@_PROJECT_ROOT "${PACKAGE_PREFIX_DIR}/../.." ABSOLUTE)
+else()
+    set(@PROJECT_NAME_UPCASE@_PROJECT_ROOT "${PACKAGE_PREFIX_DIR}")
+endif()
+@CONFIG_OPTIONS@
+list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Dependencies.cmake)
+@CONFIG_IMPORT_TARGETS@
+# environment
+gaussino_env(@ENVIRONMENT@)
+
+if(NOT TARGET target_runtime_paths)
+    add_custom_target(target_runtime_paths)
+endif()
+if(EXISTS "${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/bin")
+    _gaudi_runtime_prepend(path ${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/bin)
+endif()
+if(EXISTS "${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/lib")
+    _gaudi_runtime_prepend(ld_library_path ${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/lib)
+endif()
+if(EXISTS "${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/python")
+    _gaudi_runtime_prepend(pythonpath ${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/python)
+endif()
+if(EXISTS "${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/include")
+    _gaudi_runtime_prepend(root_include_path ${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/include)
+endif()
+
+if(NOT @PROJECT_NAME@_FIND_QUIETLY)
+    message(STATUS "Found @PROJECT_NAME@: ${CMAKE_CURRENT_LIST_DIR} (found version @PROJECT_VERSION@)")
+endif()
+
+cmake_policy(POP)
+
diff --git a/cmake/GaussinoConfigUtils.cmake b/cmake/GaussinoConfigUtils.cmake
new file mode 100644
index 00000000..1b9070a2
--- /dev/null
+++ b/cmake/GaussinoConfigUtils.cmake
@@ -0,0 +1,309 @@
+###############################################################################
+# (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  #
+#                                                                             #
+# This software is distributed under the terms of the Apache License          #
+# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+
+
+# copied & modified from LHCbConfigUtils.cmake
+set(GAUSSINO_UNUSED_SUBDIR_MESSAGE_TYPE "WARNING"
+    CACHE STRING "Message type for detected unused subdirs")
+# copied & modified from LHCbConfigUtils.cmake
+set(GAUSSINO_UNUSED_SOURCE_MESSAGE_TYPE "WARNING"
+    CACHE STRING "Message type for detected unused source files")
+
+
+function(gaussino_env)
+    # copied & modified from lhcb_env in LHCbConfigUtils.cmake
+    message(DEBUG "gaussino_env(${ARGV})")
+    if(ARGC GREATER 0 AND ARGV0 STREQUAL "PRIVATE")
+        # drop the flag and do not propagate the change downstream
+        list(REMOVE_AT ARGV 0)
+    else()
+        # not PRIVATE, so propagate the change downstream
+        set_property(GLOBAL APPEND PROPERTY ${PROJECT_NAME}_ENVIRONMENT ${ARGV})
+    endif()
+    if(NOT TARGET target_runtime_paths)
+        # this usually means we are not using GaudiToolbox.cmake, like in old
+        # style projects
+        return()
+    endif()
+    while(ARGV)
+        list(POP_FRONT ARGV action variable value)
+        if(action STREQUAL "SET")
+            set_property(TARGET target_runtime_paths APPEND_STRING
+                PROPERTY extra_commands "export ${variable}=${value}\n")
+        elseif(action STREQUAL "PREPEND")
+            set_property(TARGET target_runtime_paths APPEND_STRING
+                PROPERTY extra_commands "export ${variable}=${value}:\$${variable}\n")
+        elseif(action STREQUAL "APPEND")
+            set_property(TARGET target_runtime_paths APPEND_STRING
+                PROPERTY extra_commands "export ${variable}=\$${variable}:${value}\n")
+        elseif(action STREQUAL "DEFAULT")
+            set_property(TARGET target_runtime_paths APPEND_STRING
+                PROPERTY extra_commands "export ${variable}=\${${variable}:-${value}}\n")
+        else()
+            message(FATAL_ERROR "invalid environment action ${action}")
+        endif()
+    endwhile()
+endfunction()
+
+macro(gaussino_add_subdirectories)
+    # copied & modified from lhcb_add_subdirectories in LHCbConfigUtils.cmake
+    message(STATUS "Adding ${ARGC} subdirectories:")
+    set(gaussino_add_subdirectories_index 0)
+    foreach(subdir IN ITEMS ${ARGN})
+        math(EXPR gaussino_add_subdirectories_index "${gaussino_add_subdirectories_index} + 1")
+        math(EXPR gaussino_add_subdirectories_progress "${gaussino_add_subdirectories_index} * 100 / ${ARGC}")
+        if(gaussino_add_subdirectories_progress LESS 10)
+            set(gaussino_add_subdirectories_progress "  ${gaussino_add_subdirectories_progress}")
+        elseif(gaussino_add_subdirectories_progress LESS 100)
+            set(gaussino_add_subdirectories_progress " ${gaussino_add_subdirectories_progress}")
+        endif()
+        message(STATUS "    (${gaussino_add_subdirectories_progress}%) ${subdir}")
+        add_subdirectory(${subdir})
+        string(TOUPPER "${subdir}ROOT" root_var)
+        string(REGEX REPLACE ".*/" "" root_var "${root_var}")
+        gaussino_env(SET "${root_var}" "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}")
+    endforeach()
+endmacro()
+
+function(gaussino_initialize_configuration)
+    # copied & modified from lhcb_env in LHCbConfigUtils.cmake
+
+    # Optionally enable compatibility with old-style CMake configurations, via helper module
+    option(GAUDI_LEGACY_CMAKE_SUPPORT "Enable compatibility with old-style CMake builds" "$ENV{GAUDI_LEGACY_CMAKE_SUPPORT}")
+
+    # default install prefix when building in legacy mode
+    # note: this doplicates a bit of code in LegacyGaudiCMakeSupport.cmake, but we need to set CMAKE_INSTALL_PREFIX
+    #       before we use it later in this macro (and before we can include LegacyGaudiCMakeSupport.cmake)
+    if(GAUDI_LEGACY_CMAKE_SUPPORT)
+        # make sure we have a BINARY_TAG CMake variable set
+        if(NOT BINARY_TAG)
+            if(NOT "$ENV{BINARY_TAG}" STREQUAL "")
+                set(BINARY_TAG $ENV{BINARY_TAG})
+            elseif(LHCB_PLATFORM)
+                set(BINARY_TAG ${LHCB_PLATFORM})
+            else()
+                message(AUTHOR_WARNING "BINARY_TAG not set")
+            endif()
+        endif()
+
+        if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+            set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/InstallArea/${BINARY_TAG}"
+                CACHE PATH "Install prefix" FORCE)
+        endif()
+    endif()
+
+    # environment for the project
+    gaussino_env(PREPEND PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+    gaussino_env(PREPEND LD_LIBRARY_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+    if(NOT CMAKE_INSTALL_LIBDIR STREQUAL GAUDI_INSTALL_PLUGINDIR)
+        gaussino_env(PREPEND LD_LIBRARY_PATH "${CMAKE_INSTALL_PREFIX}/${GAUDI_INSTALL_PLUGINDIR}")
+    endif()
+    gaussino_env(PREPEND PYTHONPATH "${CMAKE_INSTALL_PREFIX}/${GAUDI_INSTALL_PYTHONDIR}")
+    gaussino_env(PREPEND ROOT_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+
+    # override GaudiToolbox internal macro to use gaussino_env
+    macro(_gaudi_runtime_prepend runtime value)
+        string(TOUPPER "${runtime}" _runtime_var)
+        gaussino_env(PRIVATE PREPEND "${_runtime_var}" "${value}")
+    endmacro()
+endfunction()
+
+function(gaussino_finalize_configuration)
+    # copied & modified from gaussino_finalize_configuration in LHCbConfigUtils.cmake
+    # environment for data packages
+    get_property(data_packages_found GLOBAL PROPERTY DATA_PACKAGES_FOUND)
+    foreach(data_package IN LISTS data_packages_found)
+        if(data_package MATCHES "^([^:]*):(.*)\$")
+            set(data_package ${CMAKE_MATCH_1})
+        endif()
+        string(TOUPPER "${data_package}" DP_NAME)
+        string(REGEX REPLACE ".*/" "" DP_NAME "${DP_NAME}")
+        gaussino_env(PRIVATE DEFAULT "${DP_NAME}ROOT" "${${data_package}_ROOT_DIR}")
+        if(IS_DIRECTORY "${${data_package}_ROOT_DIR}/options")
+            gaussino_env(PRIVATE SET "${DP_NAME}OPTS" "\${${DP_NAME}ROOT}/options")
+            string(APPEND datapkg_env "export ${DP_NAME}OPTS=${${data_package}_ROOT_DIR}/options\n")
+        endif()
+        if(IS_DIRECTORY "${${data_package}_ROOT_DIR}/python")
+            gaussino_env(PRIVATE PREPEND "PYTHONPATH" "\${${DP_NAME}ROOT}/python")
+        endif()
+    endforeach()
+
+    # environment used by lbexec
+    gaussino_env(PRIVATE DEFAULT "GAUDIAPPNAME" "${CMAKE_PROJECT_NAME}")
+    gaussino_env(PRIVATE DEFAULT "GAUDIAPPVERSION" "${CMAKE_PROJECT_VERSION}")
+
+    set_property(TARGET target_runtime_paths APPEND_STRING
+        PROPERTY extra_commands "# remove duplicates\neval $(python3 -c \"import os; print(*('export {}={} ;'.format(n, ':'.join(dict.fromkeys(os.environ.get(n,'').split(':')))) for n in ('PATH','PYTHONPATH','LD_LIBRARY_PATH','ROOT_INCLUDE_PATH')),sep='\\n')\")\n")
+
+    include(CMakePackageConfigHelpers)
+    # special variables needed in the config file
+    string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPCASE)
+    get_property(packages_found GLOBAL PROPERTY PACKAGES_FOUND)
+    get_property(ENVIRONMENT GLOBAL PROPERTY ${PROJECT_NAME}_ENVIRONMENT)
+    string(REPLACE "${PROJECT_SOURCE_DIR}" "\${${PROJECT_NAME_UPCASE}_PROJECT_ROOT}"
+        ENVIRONMENT "${ENVIRONMENT}")
+    foreach(pack IN LISTS packages_found)
+        string(TOUPPER "${pack}" PROJ)
+        if(DEFINED ${PROJ}_PROJECT_ROOT)
+            string(REPLACE "${${PROJ}_PROJECT_ROOT}" "\${${PROJ}_PROJECT_ROOT}"
+                ENVIRONMENT "${ENVIRONMENT}")
+        endif()
+    endforeach()
+    #  record "persistent options" for downstream projects
+    set(CONFIG_OPTIONS "")
+    foreach(option IN LISTS ${PROJECT_NAME}_PERSISTENT_OPTIONS)
+        if(DEFINED ${option})
+            string(APPEND CONFIG_OPTIONS "set(${option} ${${option}} CACHE BOOL \"value used at compile time for ${option}\" FORCE)\n")
+        endif()
+    endforeach()
+    if(CONFIG_OPTIONS) # this is just to make the generated file nicer
+        string(PREPEND CONFIG_OPTIONS "\n# Options used when compiling\n")
+    endif()
+    #  record versions of upstream LHCb projects
+    set(DEPS_VERSIONS "")
+    foreach(pack IN LISTS packages_found)
+        # we want to record the versions of projects with /InstallArea/
+        # as we usually have multiple versions available in the search path
+        # and we want to pick up the same version that was used during the build
+        if("${${pack}_DIR}${${pack}_ROOT_DIR}" MATCHES "/InstallArea/" AND "${${pack}_VERSION}" MATCHES "^[0-9.]+$")
+            string(APPEND DEPS_VERSIONS
+                "if(NOT DEFINED ${pack}_EXACT_VERSION)\n"
+                "    set(${pack}_EXACT_VERSION ${${pack}_VERSION} CACHE STRING \"Version of ${pack} used in upstream builds\")\n"
+                "    mark_as_advanced(${pack}_EXACT_VERSION)\n"
+                "elseif(NOT ${pack}_EXACT_VERSION STREQUAL \"${${pack}_VERSION}\")\n"
+                "    message(WARNING \"Requested version of ${pack} (\${${pack}_EXACT_VERSION}) differs from that used for build (${${pack}_VERSION})\")\n"
+                "endif()\n")
+        endif()
+    endforeach()
+    if(DEPS_VERSIONS)
+        string(APPEND CONFIG_OPTIONS "\n# Versions of upstream projects used for the build\n${DEPS_VERSIONS}")
+    endif()
+
+    if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND NOT "${ARGV0}" STREQUAL "NO_EXPORT")
+        # install exports only if we are a master project we were not given the "NO_EXPORT" option
+        install(EXPORT ${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}::
+            FILE "${PROJECT_NAME}Targets.cmake"
+            DESTINATION "${GAUDI_INSTALL_CONFIGDIR}")
+        set(CONFIG_IMPORT_TARGETS "include(\${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}Targets.cmake)\n")
+    endif()
+
+    # generate config files
+    configure_package_config_file(
+        ${PROJECT_SOURCE_DIR}/cmake/GaussinoConfig.cmake.in ${PROJECT_NAME}Config.cmake
+        INSTALL_DESTINATION "${GAUDI_INSTALL_CONFIGDIR}"
+        PATH_VARS
+            CMAKE_INSTALL_BINDIR
+            CMAKE_INSTALL_LIBDIR
+            CMAKE_INSTALL_INCLUDEDIR
+            GAUDI_INSTALL_PLUGINDIR
+            GAUDI_INSTALL_PYTHONDIR
+        NO_CHECK_REQUIRED_COMPONENTS_MACRO
+    )
+    write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmake
+        COMPATIBILITY AnyNewerVersion)
+
+    gaudi_generate_version_header_file()
+
+    gaudi_install(CMAKE
+        cmake/${PROJECT_NAME}Dependencies.cmake
+        "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+        "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+    )
+    if(EXISTS lhcbproject.yml)
+        gaudi_install(CMAKE lhcbproject.yml)
+    endif()
+
+    # check that we actually build everything in the project
+    # - check all subdirs are included (except for those listed in GAUSSINO_IGNORE_SUBDIRS)
+    get_property(added_subdirs DIRECTORY PROPERTY SUBDIRECTORIES)
+    file(GLOB_RECURSE detected_subdirs "*/CMakeLists.txt")
+    if(detected_subdirs)
+        set(missed_subdirs)
+        list(TRANSFORM detected_subdirs REPLACE "/CMakeLists.txt" "")
+        list(SORT detected_subdirs)
+        foreach(subdir IN LISTS detected_subdirs)
+            list(FIND added_subdirs ${subdir} idx)
+            if(idx STREQUAL "-1" AND NOT subdir MATCHES "^${CMAKE_BINARY_DIR}/.*")
+                file(GLOB subdir RELATIVE "${PROJECT_SOURCE_DIR}" ${subdir})
+                list(APPEND missed_subdirs ${subdir})
+            endif()
+        endforeach()
+        if(missed_subdirs AND GAUSSINO_IGNORE_SUBDIRS)
+            list(REMOVE_ITEM missed_subdirs ${GAUSSINO_IGNORE_SUBDIRS})
+        endif()
+        if(missed_subdirs)
+            list(JOIN missed_subdirs "\n - " missed_subdirs)
+            message(${GAUSSINO_UNUSED_SUBDIR_MESSAGE_TYPE}
+                "Project ${PROJECT_NAME} contains subdirectories that are not used:\n - ${missed_subdirs}\n")
+        endif()
+    endif()
+    # - check for all files (*.cpp and *.cxx in source directories)
+    if(NOT GAUSSINO_UNUSED_SOURCE_MESSAGE_TYPE STREQUAL "IGNORE")
+        # for each directory (including the top one) we get the targets and for
+        # each target we get the source files excluding absolute paths
+        # (which means also those in the build directory), then we prefix the subdir
+        # path
+        set(used_sources)
+        list(PREPEND added_subdirs ${PROJECT_SOURCE_DIR})
+        foreach(subdir IN LISTS added_subdirs)
+            get_property(targets DIRECTORY ${subdir} PROPERTY BUILDSYSTEM_TARGETS)
+            foreach(target IN LISTS targets)
+                get_target_property(target_type ${target} TYPE)
+                if(target_type STREQUAL "INTERFACE_LIBRARY" AND CMAKE_VERSION VERSION_LESS "3.19")
+                    continue()  # sources for interface libraries were introduced only in cmake 3.19
+                endif()
+                get_target_property(sources ${target} SOURCES)
+                list(FILTER sources EXCLUDE REGEX "^/")
+                list(TRANSFORM sources PREPEND "${subdir}/")
+                list(APPEND used_sources ${sources})
+            endforeach()
+        endforeach()
+        list(REMOVE_DUPLICATES used_sources)
+        # from the list of of source files we guess the directories meant to contain
+        # source files
+        list(TRANSFORM used_sources REPLACE "/[^/]*$" ""
+            OUTPUT_VARIABLE source_dirs)
+        list(REMOVE_DUPLICATES source_dirs)
+        # and we look for all *.cpp and *.cxx files in these directories
+        list(TRANSFORM source_dirs APPEND "/*.cpp" OUTPUT_VARIABLE source_cpp_globs)
+        list(TRANSFORM source_dirs APPEND "/*.cxx" OUTPUT_VARIABLE source_cxx_globs)
+        file(GLOB all_sources ${source_cpp_globs} ${source_cxx_globs})
+        # check if they are all used
+        set(missed_sources)
+        foreach(src IN LISTS all_sources)
+            list(FIND used_sources ${src} idx)
+            if(idx STREQUAL "-1")
+                file(GLOB src RELATIVE "${PROJECT_SOURCE_DIR}" ${src})
+                list(APPEND missed_sources ${src})
+            endif()
+        endforeach()
+        # and report any missing file
+        if(missed_sources)
+            list(JOIN missed_sources "\n - " missed_sources)
+            message(${GAUSSINO_UNUSED_SOURCE_MESSAGE_TYPE}
+                "Project ${PROJECT_NAME} contains source files which are not used in any target:\n - ${missed_sources}\n")
+        endif()
+    endif()
+
+
+    # Set the version of the project as a cache variable to be seen by other
+    # projects in the same super-project.
+    set(${PROJECT_NAME}_VERSION "${PROJECT_VERSION}" CACHE STRING "Version of ${PROJECT_NAME}" FORCE)
+
+    if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND GAUDI_LEGACY_CMAKE_SUPPORT)
+        find_file(legacy_cmake_config_support NAMES LegacyGaudiCMakeSupport.cmake)
+        if(legacy_cmake_config_support)
+            include(${legacy_cmake_config_support})
+        else()
+            message(FATAL_ERROR "GAUDI_LEGACY_CMAKE_SUPPORT set to TRUE, but cannot find LegacyGaudiCMakeSupport.cmake")
+        endif()
+    endif()
+endfunction()
diff --git a/cmake/GaussinoDependencies.cmake b/cmake/GaussinoDependencies.cmake
new file mode 100644
index 00000000..08d0f009
--- /dev/null
+++ b/cmake/GaussinoDependencies.cmake
@@ -0,0 +1,59 @@
+###############################################################################
+# (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  #
+#                                                                             #
+# This software is distributed under the terms of the Apache License          #
+# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+include(${CMAKE_CURRENT_LIST_DIR}/GaussinoConfigUtils.cmake)
+
+# TODO: [LHCb DEPENDENCY]
+if(NOT COMMAND lhcb_find_package)
+  # Look for LHCb find_package wrapper
+  find_file(LHCbFindPackage_FILE LHCbFindPackage.cmake)
+  if(LHCbFindPackage_FILE)
+      include(${LHCbFindPackage_FILE})
+  else()
+      # if not found, use the standard find_package
+      macro(lhcb_find_package)
+          find_package(${ARGV})
+      endmacro()
+  endif()
+endif()
+
+# -- Public dependencies
+lhcb_find_package(GaussinoExtLibs REQUIRED) # TODO: [NEW CMAKE] temporary project
+
+if(Geant4_FOUND)
+    get_cmake_property(variables VARIABLES)
+    foreach(var ${variables})
+	string(REGEX MATCH "Geant4_DATASET_([A-Za-z0-9]+)_ENVVAR" _ ${var})
+	if(NOT CMAKE_MATCH_1 STREQUAL "")
+	    # copy the Geant4Data variables using GaudiToolbox.cmake
+	    lhcb_env(SET ${Geant4_DATASET_${CMAKE_MATCH_1}_ENVVAR} ${Geant4_DATASET_${CMAKE_MATCH_1}_PATH})
+	endif()
+    endforeach()
+endif()
+
+find_package(HepMC3 REQUIRED)
+find_package(Pythia8 REQUIRED)
+
+if(USE_DD4HEP)
+    set(CMAKE_CXX_STANDARD ${GAUDI_CXX_STANDARD})
+    find_package(DD4hep REQUIRED DDCore)
+    find_package(DD4hepDDG4 
+	REQUIRED 
+	PATHS ${GAUSSINOEXTLIBS_PREFIX_DIR}/cmake
+       	NO_DEFAULT_PATH
+    )
+endif()
+
+# -- Private dependencies
+if(WITH_Gaussino_PRIVATE_DEPENDENCIES)
+    if(BUILD_TESTING)
+        find_package(Boost REQUIRED unit_test_framework)
+    endif()
+endif()
diff --git a/docs/getting_started/contributing.md b/docs/getting_started/contributing.md
index ccfd7d2a..c07af06a 100644
--- a/docs/getting_started/contributing.md
+++ b/docs/getting_started/contributing.md
@@ -23,11 +23,11 @@ In gitlab, open a MR targeting the `master` branch. Adding the `lhcb-gaussino` l
     This sub-section will be moved to a new documentation website dedicated to Gauss.
 ```
 
-The instructions are almost the same as for Gaussino in the previous section: [](./contributing.md#developing-gaussino). The only difference is that the MR should be targeting `Futurev4` branch.
+The instructions are almost the same as for Gaussino in the previous section: [](./contributing.md#developing-gaussino). The only difference is that the MR should be targeting `Futurev5` branch.
 
 ## Fast simulation developments with Geant4 10.7
 
-All the developments related to fast simulations with Geant4 10.7 are tested in the `lhcb-gaussino-fastsim` nightly slot. We have a dedicated target branch in Gaussino and Gauss-on-Gaussino for these developments: `FASTSIM`. Therefore, you can follow the instructions as in [](./gaussino.md#working-with-gaussino), [](./gauss.md#working-with-gauss-on-gaussino-to-be-moved), [](./contributing.md#developing-gaussino) and [](./contributing.md#developing-gauss-on-gaussino) and change `lhcb-gaussino` to `lhcb-gaussino-fastsim` and `master` to `FASTSIM` (in Gauss: `Futurev4` to `FASTSIM`). 
+All the developments related to fast simulations with Geant4 10.7 are tested in the `lhcb-gaussino-fastsim` nightly slot. We have a dedicated target branch in Gaussino and Gauss-on-Gaussino for these developments: `FASTSIM`. Therefore, you can follow the instructions as in [](./gaussino.md#working-with-gaussino), [](./gauss.md#working-with-gauss-on-gaussino-to-be-moved), [](./contributing.md#developing-gaussino) and [](./contributing.md#developing-gauss-on-gaussino) and change `lhcb-gaussino` to `lhcb-gaussino-fastsim` and `master` to `FASTSIM` (in Gauss: `Futurev5` to `FASTSIM`). 
 
 ## Documentation
 
diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index e0ad24a3..cd4c5aff 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -16,7 +16,7 @@ If you wish to work with Gauss (LHCb simulation framework) based on Gaussino's c
 
     .. code-block:: shell
 
-        lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+        lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino, GaussinoExtLibs lhcb-gaussino Today
 
 We really encourage you to use `lbn-install` as it generates a local copy of the nightly build directly on your machine and will create the most stable environment for your developments.  
 ```
@@ -28,10 +28,10 @@ git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
 ```
 
-Gauss-on-Gaussino is develped on a dedicated branch: `Futurev4`. So your development has to start from this branch. 
+Gauss-on-Gaussino is develped on a dedicated branch: `Futurev5`. So your development has to start from this branch. 
 
 ```shell
-git checkout Futurev4
+git checkout Futurev5
 git checkout -b your_local_dev_branch
 ```
 The rest is very similar to the development in Gaussino:
@@ -69,12 +69,13 @@ Below you will find a summary of the commands that should cover the majority of
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+export LCG_VERSION=101
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
-git checkout Futurev4
+git checkout Futurev5
 git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
@@ -90,7 +91,8 @@ Below you will find a summary of the commands that should cover the majority of
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+export LCG_VERSION=101
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
@@ -104,7 +106,7 @@ make -j4 install
 cd ..
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
-git checkout Futurev4
+git checkout Futurev5
 git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
@@ -120,12 +122,13 @@ Below you will find a summary of the commands needed to work with DD4hep/Detecto
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
-lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino lhcb-gaussino Today
+export LCG_VERSION=101
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
-git checkout Futurev4
+git checkout Futurev5
 git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
@@ -141,6 +144,7 @@ Below you will find a summary of the commands needed to work with DD4hep/Detecto
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
+export LCG_VERSION=101
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
@@ -171,6 +175,15 @@ git checkout -b your_local_dev_branch
 lb-project-init .
 make -j4 install
 cd ..
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/GaussinoExtLibs.git
+cd GaussinoExtLibs
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 23 45
+lb-project-init .
+make -j4 install
+cd ..
 git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
 cd Gaussino
 git checkout -b your_local_dev_branch
@@ -182,7 +195,7 @@ make -j4 install
 cd ..
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
-git checkout Futurev4
+git checkout Futurev5
 git checkout -b your_local_dev_branch
 # check the MRs!
 # git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
@@ -198,7 +211,9 @@ Below you will find a summary of the commands needed to work with fast simulatio
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support lhcb-gaussino-fastsim Today
+export LCG_VERSION=101
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs
+lhcb-gaussino-fastsim Today
 cd lhcb-gaussino-fastsim/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
diff --git a/docs/getting_started/gaussino.md b/docs/getting_started/gaussino.md
index 2a935506..44f8e2d7 100644
--- a/docs/getting_started/gaussino.md
+++ b/docs/getting_started/gaussino.md
@@ -11,7 +11,6 @@ You can check the nighlty build status by visiting https://lhcb-nightlies.web.ce
 -  [```lhcb-gaussino```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino/) standard slot for the majority of developments,
 -  [```lhcb-gaussino-fastsim```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-fastsim/) nightly slot dedicated to fast simulation developments with Geant4 10.7,
 -  [```lhcb-gaussino-prerelease```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-prerelease/) the most stable version of Gaussino used to prepare beta releases with LHCb stack,
--  [```lhcb-gaussino-new-cmake```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-new-cmake/) a temporary nightly slot testing the modernized CMake
 
 Gaussino is built in each nightly slots on 3 platforms:
 - ```x86_64_v2-centos7-gcc11-opt``` release build with DetDesc geometry,
@@ -32,6 +31,7 @@ The following will make sure that you have the most recent platform.
 
 ```shell
 lb-set-platform x86_64_v2-centos7-gcc11-opt
+export LCG_VERSION=101
 ```
 
 ```{eval-rst}
@@ -48,11 +48,11 @@ lb-set-platform x86_64_v2-centos7-gcc11-opt
 
 #### Fetch the nightlies locally
 
-We're going to create a local copy of the projects used in the nightly slot. Gaussino requires Gaudi, Detector, LHCb and Run2Support. LHCb and Run2Support are used when building Gaussino in the LHCb stack.
+We're going to create a local copy of the projects used in the nightly slot. Gaussino requires Gaudi, Detector, LHCb, Run2Support and GaussinoExtLibs. LHCb and Run2Support are used when building Gaussino in the LHCb stack.
     
 
 ```shell
-lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support lhcb-gaussino Today
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
 ```
diff --git a/lhcbproject.yml b/lhcbproject.yml
new file mode 100644
index 00000000..43f57351
--- /dev/null
+++ b/lhcbproject.yml
@@ -0,0 +1,4 @@
+name: Gaussino
+licence: Apache-2.0
+dependencies:
+  - GaussinoExtLibs
diff --git a/toolchain.cmake b/toolchain.cmake
deleted file mode 100644
index e5fd2055..00000000
--- a/toolchain.cmake
+++ /dev/null
@@ -1,55 +0,0 @@
-###############################################################################
-# (c) Copyright 2018 CERN                                                     #
-#                                                                             #
-# This software is distributed under the terms of the GNU General Public      #
-# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-cmake_minimum_required(VERSION 3.6)
-
-set(LCG_LAYER LHCB_7 CACHE STRING "Specific set of version to use")
-option(LCG_USE_GENERATORS "enable/disable use of LCG generators" ON)
-
-
-# this check is needed because the toolchain is called when checking the
-# compiler (without the proper cache)
-if(NOT CMAKE_SOURCE_DIR MATCHES "CMakeTmp")
-  # Avoid using Gaudi's get_host_binary_tag.py script as it doesn't support Python 3.8
-  # https://gitlab.cern.ch/gaudi/Gaudi/-/issues/123
-  execute_process(COMMAND "lb-host-binary-tag"
-                  OUTPUT_VARIABLE HOST_BINARY_TAG
-                  RESULT_VARIABLE HOST_BINARY_RETURN
-                  ERROR_VARIABLE  HOST_BINARY_ERROR
-                  OUTPUT_STRIP_TRAILING_WHITESPACE)
-  set(HOST_BINARY_TAG ${HOST_BINARY_TAG} CACHE STRING "BINARY_TAG of the host")
-  if(HOST_BINARY_RETURN OR NOT HOST_BINARY_TAG)
-    message(FATAL_ERROR "Error getting host binary tag\nFailed to execute ${HOST_BINARY_TAG_COMMAND}\n"
-                        "HOST_BINARY_TAG value: ${HOST_BINARY_TAG}\n"
-                        "Program Return Value: ${HOST_BINARY_RETURN}\n"
-                        "Error Message: ${HOST_BINARY_ERROR}\n")
-  endif()
-
-  find_file(default_toolchain NAMES GaudiDefaultToolchain.cmake
-            HINTS ${CMAKE_SOURCE_DIR}/cmake
-                  ${CMAKE_CURRENT_LIST_DIR}/cmake)
-  if(default_toolchain)
-    include(${default_toolchain})
-    if(NOT DEFINED CMAKE_USE_CCACHE)
-      set(CMAKE_USE_CCACHE "YES" CACHE BOOL "...")
-    endif()
-  else()
-    message(FATAL_ERROR "Cannot find GaudiDefaultToolchain.cmake")
-  endif()
-
-  # FIXME: make sure we do not pick up unwanted/problematic projects from LCG
-  if(CMAKE_PREFIX_PATH)
-    # - ninja (it requires LD_LIBRARY_PATH set to run)
-    # - Gaudi (we do not want to use it from LCG)
-    # - Geant4 (we do not want to use it from LCG)
-    # - xenv (conflicts with the version in the build environment)
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*(ninja|Gaudi|Geant4|xenv|git)/")
-  endif()
-endif()
-- 
GitLab


From 4f98d10718fee49c1e2215dd337ab940bf8a8e45 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Tue, 27 Sep 2022 17:23:58 +0200
Subject: [PATCH 35/56] Fix production cuts not set in the modular physics list

---
 Sim/Gaussino/python/Gaussino/Simulation.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Sim/Gaussino/python/Gaussino/Simulation.py b/Sim/Gaussino/python/Gaussino/Simulation.py
index c358dbbc..8a7b95b0 100644
--- a/Sim/Gaussino/python/Gaussino/Simulation.py
+++ b/Sim/Gaussino/python/Gaussino/Simulation.py
@@ -169,6 +169,11 @@ class SimPhase(ConfigurableUser):
         gmpl.PhysicsConstructors = phys_list
         self._addConstructorsWithNames(gmpl, phys_list)
 
+        gmpl.CutForElectron = self.getProp("CutForElectron")
+        gmpl.CutForGamma = self.getProp("CutForGamma")
+        gmpl.CutForPositron = self.getProp("CutForPositron")
+        gmpl.DumpCutsTable = self.getProp("DumpCutsTable")
+
         # Add parallel physics
         par_geo = self.getProp("ParallelGeometry")
         if par_geo:
-- 
GitLab


From 136ee3bf5ffb3f24c034e333c1a911a5f09f9b96 Mon Sep 17 00:00:00 2001
From: Adam Morris <adam.morris@cern.ch>
Date: Tue, 4 Oct 2022 14:40:02 +0200
Subject: [PATCH 36/56] Document getting list of MRs from GitLab API

---
 docs/getting_started/gauss.md | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index cd4c5aff..c0448cdc 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -41,6 +41,15 @@ The rest is very similar to the development in Gaussino:
     Don't forget to merge all pending merge requests with a label ``lhcb-gaussino`` (or any other MR that was picked up in the nightly)!
 ```
 
+```{eval-rst}
+.. hint::
+    The list of open merge requests with the label ``lhcb-gaussino`` can be acquired automatically with this command:
+
+    .. code-block:: shell-session
+    
+        curl -s "https://gitlab.cern.ch/api/v4/projects/2606/merge_requests?state=opened&labels=lhcb-gaussino" | jq '.[].iid'
+```
+
 In order to get the list of pending merge requests check the checkout report by clicking on the **black arrow** next to the **Gauss project** on the [website](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino). You will get a list of the MR ids that are needed to work with this build of Gauss. For example, if the MRs are Gauss!800 and Gauss!845, you can do the following:
 
 ```shell
-- 
GitLab


From 6694ae9ab35e2b86971e49601f413d1c7dd3ccda Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Tue, 4 Oct 2022 17:55:32 +0200
Subject: [PATCH 37/56] Update LCG version to 101x in the docs

---
 docs/getting_started/gauss.md    | 10 +++++-----
 docs/getting_started/gaussino.md |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index c0448cdc..2614f49c 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -78,7 +78,7 @@ Below you will find a summary of the commands that should cover the majority of
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-export LCG_VERSION=101
+export LCG_VERSION=101x
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
@@ -100,7 +100,7 @@ Below you will find a summary of the commands that should cover the majority of
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-export LCG_VERSION=101
+export LCG_VERSION=101x
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
@@ -131,7 +131,7 @@ Below you will find a summary of the commands needed to work with DD4hep/Detecto
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
-export LCG_VERSION=101
+export LCG_VERSION=101x
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
@@ -153,7 +153,7 @@ Below you will find a summary of the commands needed to work with DD4hep/Detecto
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
-export LCG_VERSION=101
+export LCG_VERSION=101x
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
@@ -220,7 +220,7 @@ Below you will find a summary of the commands needed to work with fast simulatio
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-export LCG_VERSION=101
+export LCG_VERSION=101x
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs
 lhcb-gaussino-fastsim Today
 cd lhcb-gaussino-fastsim/Today
diff --git a/docs/getting_started/gaussino.md b/docs/getting_started/gaussino.md
index 44f8e2d7..8b6882c4 100644
--- a/docs/getting_started/gaussino.md
+++ b/docs/getting_started/gaussino.md
@@ -31,7 +31,7 @@ The following will make sure that you have the most recent platform.
 
 ```shell
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-export LCG_VERSION=101
+export LCG_VERSION=101x
 ```
 
 ```{eval-rst}
-- 
GitLab


From d0958cbb64e52722a00c24eb2e45232f112a10af Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Mon, 10 Oct 2022 16:51:51 +0200
Subject: [PATCH 38/56] Updates the docs to use lhcb-dd4hep for DD4hep
 developments

---
 docs/getting_started/gauss.md    | 8 ++++----
 docs/getting_started/gaussino.md | 5 +++--
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index 2614f49c..6304cdcd 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -132,8 +132,8 @@ Below you will find a summary of the commands needed to work with DD4hep/Detecto
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
 export LCG_VERSION=101x
-lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
-cd lhcb-gaussino/Today
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-dd4hep Today
+cd lhcb-dd4hep/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
 cd Gauss
@@ -154,8 +154,8 @@ Below you will find a summary of the commands needed to work with DD4hep/Detecto
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
 export LCG_VERSION=101x
-lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE lhcb-gaussino Today
-cd lhcb-gaussino/Today
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE lhcb-dd4hep Today
+cd lhcb-dd4hep/Today
 lb-set-workspace .
 git clone ssh://git@gitlab.cern.ch:7999/lhcb/Detector.git
 cd Detector
diff --git a/docs/getting_started/gaussino.md b/docs/getting_started/gaussino.md
index 8b6882c4..e4086d9c 100644
--- a/docs/getting_started/gaussino.md
+++ b/docs/getting_started/gaussino.md
@@ -9,6 +9,7 @@ Please note that Gaussino is an experiment-independent package. If you are looki
 
 You can check the nighlty build status by visiting https://lhcb-nightlies.web.cern.ch/nightly/. There are a few nightly slots currently available for Gaussino:
 -  [```lhcb-gaussino```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino/) standard slot for the majority of developments,
+-  [```lhcb-dd4hep```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino/) the nightly slot used for the integration of DD4hep sub-detectors,
 -  [```lhcb-gaussino-fastsim```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-fastsim/) nightly slot dedicated to fast simulation developments with Geant4 10.7,
 -  [```lhcb-gaussino-prerelease```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-prerelease/) the most stable version of Gaussino used to prepare beta releases with LHCb stack,
 
@@ -36,7 +37,7 @@ export LCG_VERSION=101x
 
 ```{eval-rst}
 .. tip::
-    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` if you want to work with **Detector/DD4hep**.
+    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` on ``lhcb-dd4hep`` if you want to work with **Detector/DD4hep**.
 ```
 
 ### Building Gaussino from source
@@ -59,7 +60,7 @@ lb-set-workspace .
 
 ```{eval-rst}
 .. tip::
-    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` if you want to work with Detector/DD4hep.
+    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` on ``lhcb-dd4hep`` if you want to work with **Detector/DD4hep**.
 ```
 
 ```{eval-rst}
-- 
GitLab


From 2e6cb8bf4b91bb7a07b43357f89ceaa184b03b80 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Tue, 11 Oct 2022 16:51:11 +0200
Subject: [PATCH 39/56] Python Conf Part 1.1a: Adapt options for G-on-G tests

---
 Sim/Gaussino/python/Gaussino/Configuration.py | 27 ++++++++++++-------
 Sim/GiGaMT/src/Components/GiGaMT.h            |  2 +-
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/Sim/Gaussino/python/Gaussino/Configuration.py b/Sim/Gaussino/python/Gaussino/Configuration.py
index f24d865f..f3be3547 100644
--- a/Sim/Gaussino/python/Gaussino/Configuration.py
+++ b/Sim/Gaussino/python/Gaussino/Configuration.py
@@ -79,16 +79,16 @@ class Gaussino(ConfigurableUser):
     :var EvtMax: default: ``-1``
     :vartype EvtMax: int, optional
 
-    :var EnableHive: default: ``False``
+    :var EnableHive: default: ``True``
     :vartype EnableHive: bool, optional
 
     :var ReDecay: default: ``False``
     :vartype ReDecay: bool, optional
 
-    :var ThreadPoolSize: default: ``2``
+    :var ThreadPoolSize: default: ``1``
     :vartype ThreadPoolSize: int, optional
 
-    :var EventSlots: default: ``2``
+    :var EventSlots: default: ``1``
     :vartype EventSlots: int, optional
 
     :var ConvertEDM: default: ``False``
@@ -154,16 +154,16 @@ class Gaussino(ConfigurableUser):
         -1  # NOQA
         ,
         "EnableHive":
-        False  # NOQA
+        True  # NOQA
         ,
         "ReDecay":
         False  # NOQA
         ,
         "ThreadPoolSize":
-        2  # NOQA
+        1  # NOQA
         ,
         "EventSlots":
-        2  # NOQA
+        1  # NOQA
         ,
         "ConvertEDM":
         False  # NOQA
@@ -196,7 +196,17 @@ class Gaussino(ConfigurableUser):
         self.propagateProperties(names, other)
 
     def setupHive(self):
-        '''Enable Hive event loop manager'''
+        '''Enable Hive event loop manager
+           this is a very similar method as in LHCbApp
+        '''
+        if not self.getProp("EnableHive"):
+            # FIXME: Running without GaudiHive has not been tested
+            #        and may lead to unexpected behaviour
+            #        this is disabled for now
+            log.error("EnableHive must be set. Running without "
+                      "GaudiHive has not been tested and may lead to"
+                      "unexpected behaviour")
+            raise ValueError("EnableHive must be set.")
         from Configurables import HiveWhiteBoard
         whiteboard = HiveWhiteBoard("EventDataSvc")
         whiteboard.EventSlots = self.getProp('EventSlots')
@@ -213,8 +223,7 @@ class Gaussino(ConfigurableUser):
         # appendPostConfigAction(self.co)
 
     def __apply_configuration__(self):
-        if self.getProp("EnableHive"):
-            self.setupHive()
+        self.setupHive()
         ppService(self.getProp('ParticleTable'))
         dataService()
         auditorService()
diff --git a/Sim/GiGaMT/src/Components/GiGaMT.h b/Sim/GiGaMT/src/Components/GiGaMT.h
index 1de56acb..59c939f4 100755
--- a/Sim/GiGaMT/src/Components/GiGaMT.h
+++ b/Sim/GiGaMT/src/Components/GiGaMT.h
@@ -85,7 +85,7 @@ class GiGaMT : public Service, virtual public IGiGaMTSvc, virtual public IGiGaMT
   Gaudi::Property<std::vector<std::string>> m_MoniToolNames{
       this, "MonitorTools", {}, tool_array_setter( m_MoniTools, m_MoniToolNames )};
 
-  Gaudi::Property<size_t> m_nWorkerThreads{this, "NumberOfWorkerThreads", 0};
+  Gaudi::Property<size_t> m_nWorkerThreads{this, "NumberOfWorkerThreads", 1};
   Gaudi::Property<bool> m_splitPileUp{this, "SplitPileUp", false};
   Gaudi::Property<bool> m_printParticles{this, "PrintG4Particles", false};
   Gaudi::Property<bool> m_printMaterials{this, "PrintG4Materials", false};
-- 
GitLab


From bbb4b78d7b1e5025b69cec7d5724b2cc9244b096 Mon Sep 17 00:00:00 2001
From: Michal Kreps <michal.kreps@cern.ch>
Date: Fri, 14 Oct 2022 14:43:29 +0200
Subject: [PATCH 40/56] Fix crash for inclusive B events due to null pointer

---
 Gen/Generators/src/Lib/GenCounters.cpp | 709 +++++++++++--------------
 1 file changed, 306 insertions(+), 403 deletions(-)

diff --git a/Gen/Generators/src/Lib/GenCounters.cpp b/Gen/Generators/src/Lib/GenCounters.cpp
index 3e7f1100..e3e28249 100755
--- a/Gen/Generators/src/Lib/GenCounters.cpp
+++ b/Gen/Generators/src/Lib/GenCounters.cpp
@@ -15,8 +15,8 @@
 #include "Generators/GenCounters.h"
 
 // Generators
-#include "HepMCUtils/HepMCUtils.h"
 #include "HepMCUser/Status.h"
+#include "HepMCUtils/HepMCUtils.h"
 
 // HepMC
 #include "HepMC3/GenEvent.h"
@@ -27,8 +27,8 @@
 #include "Defaults/HepMCAttributes.h"
 
 // Event
-#include "Event/GenFSR.h"
 #include "Event/GenCountersFSR.h"
+#include "Event/GenFSR.h"
 
 // LHCb
 #include "Kernel/ParticleID.h"
@@ -36,127 +36,123 @@
 //=============================================================================
 // Function to test if a HepMC3::GenParticle is a B hadron at root of decay
 //=============================================================================
-struct isRootB : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool > {
+struct isRootB : std::unary_function<const HepMC3::ConstGenParticlePtr&, bool> {
 
   /// test operator, returns true if it is a root B
-  bool operator() ( const HepMC3::ConstGenParticlePtr & part ) const {
+  bool operator()( const HepMC3::ConstGenParticlePtr& part ) const {
 
     // Do not consider documentation and special particles
-    if ( part -> status() == HepMC3::Status::DocumentationParticle ) 
-      return false ;
-    
+    if ( part->status() == HepMC3::Status::DocumentationParticle ) return false;
+
     // Check if particle has a b quark
-    LHCb::ParticleID thePid( part -> pdg_id() ) ;
-    if ( ! thePid.hasBottom() ) return false ;
+    LHCb::ParticleID thePid( part->pdg_id() );
+    if ( !thePid.hasBottom() ) return false;
 
     // Check if particle has a mother
-    if ( ! part -> production_vertex() ) return true ;
+    if ( !part->production_vertex() ) return true;
 
-    // Check all parents of the B 
-    for ( auto & parent : HepMC3::Relatives::PARENTS(part) ) {
-      LHCb::ParticleID parentID( parent -> pdg_id() ) ;
-      if ( parentID.hasBottom() && (thePid.abspid()==5 || parentID.abspid()!=5)) return false ;
+    // Check all parents of the B
+    for ( auto& parent : HepMC3::Relatives::PARENTS( part ) ) {
+      LHCb::ParticleID parentID( parent->pdg_id() );
+      if ( parentID.hasBottom() && ( thePid.abspid() == 5 || parentID.abspid() != 5 ) ) return false;
     }
 
     // If no parent is a B, then it is a root B
-    return true ;
+    return true;
   }
 };
 
 //=============================================================================
 // Function to test if a HepMC3::GenParticle is a D hadron at root of decay
 //=============================================================================
-struct isRootD : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool > {
+struct isRootD : std::unary_function<const HepMC3::ConstGenParticlePtr&, bool> {
 
   /// test operator, returns true if it is a root D
-  bool operator() ( const HepMC3::ConstGenParticlePtr & part ) const {
+  bool operator()( const HepMC3::ConstGenParticlePtr& part ) const {
 
     // Do not consider documentation and special particles
-    if ( part -> status() == HepMC3::Status::DocumentationParticle ) 
-      return false ;
+    if ( part->status() == HepMC3::Status::DocumentationParticle ) return false;
 
     // Check if particle has a c quark
-    LHCb::ParticleID thePid( part -> pdg_id() ) ;
-    if ( ! thePid.hasCharm() ) return false ;
-    if ( thePid.hasBottom() ) return false ;
+    LHCb::ParticleID thePid( part->pdg_id() );
+    if ( !thePid.hasCharm() ) return false;
+    if ( thePid.hasBottom() ) return false;
 
     // Check if particle has a mother
-    if ( ! part -> production_vertex() ) return true ;
+    if ( !part->production_vertex() ) return true;
 
     // Check all parents of the D
-    for ( auto & parent : HepMC3::Relatives::PARENTS(part) ) {
-      LHCb::ParticleID parentID( parent -> pdg_id() ) ;
-      if ( parentID.hasCharm()  && (parentID.abspid()!=4 || thePid.abspid()==4)) return false ;
+    for ( auto& parent : HepMC3::Relatives::PARENTS( part ) ) {
+      LHCb::ParticleID parentID( parent->pdg_id() );
+      if ( parentID.hasCharm() && ( parentID.abspid() != 4 || thePid.abspid() == 4 ) ) return false;
     }
 
     // If no parent is a D, then it is a root D
-    return true ;
+    return true;
   }
 };
 
 //=============================================================================
 // Function to test if a HepMC3::GenParticle is a B hadron at end of decay tree
 //=============================================================================
-struct isEndB : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool > {
+struct isEndB : std::unary_function<const HepMC3::ConstGenParticlePtr&, bool> {
 
   /// Test operator. Returns true if particle is the last B
-  bool operator() ( const HepMC3::ConstGenParticlePtr & part ) const {
+  bool operator()( const HepMC3::ConstGenParticlePtr& part ) const {
 
     // Do not look at special particles
-    if ( part -> status() == HepMC3::Status::DocumentationParticle ) 
-      return false ;
+    if ( part->status() == HepMC3::Status::DocumentationParticle ) return false;
 
     // Test if particle has a b quark
-    LHCb::ParticleID thePid( part -> pdg_id() ) ;
-    if ( ! thePid.hasBottom() ) return false ;
+    LHCb::ParticleID thePid( part->pdg_id() );
+    if ( !thePid.hasBottom() ) return false;
 
     // test oscillation
-    if ( ! HepMCUtils::IsBAtProduction( part ) ) return false ;
+    if ( !HepMCUtils::IsBAtProduction( part ) ) return false;
 
     // Test if the B has daughters (here we are sure it has not oscillated)
-    if ( ! part -> end_vertex() ) return true ;
-    
+    if ( !part->end_vertex() ) return true;
+
     // Loop over daughters to check if they are B hadrons
-    for ( auto & child : HepMC3::Relatives::CHILDREN(part) ){
-      LHCb::ParticleID childID( child -> pdg_id() ) ;
+    for ( auto& child : HepMC3::Relatives::CHILDREN( part ) ) {
+      LHCb::ParticleID childID( child->pdg_id() );
       if ( childID.hasBottom() ) {
-        if ( child -> pdg_id() == - part -> pdg_id() ) return true ;
-        return false ;
+        if ( child->pdg_id() == -part->pdg_id() ) return true;
+        return false;
       }
     }
 
     // If not, then it is a end B
-    return true ;
+    return true;
   }
 };
 
 //=============================================================================
 // Function to test if a HepMC3::GenParticle is a D hadron at end of decay tree
 //=============================================================================
-struct isEndD : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool > {
+struct isEndD : std::unary_function<const HepMC3::ConstGenParticlePtr&, bool> {
 
   /// Test operator. Returns true if it is the last D
-  bool operator() ( const HepMC3::ConstGenParticlePtr & part ) const {
+  bool operator()( const HepMC3::ConstGenParticlePtr& part ) const {
 
     // Do not look at special particles
-    if ( part -> status() == HepMC3::Status::DocumentationParticle ) 
-      return false ;
+    if ( part->status() == HepMC3::Status::DocumentationParticle ) return false;
 
     // Check if it has a c quark
-    LHCb::ParticleID thePid( part -> pdg_id() ) ;
-    if ( ! thePid.hasCharm() ) return false ;
+    LHCb::ParticleID thePid( part->pdg_id() );
+    if ( !thePid.hasCharm() ) return false;
 
     // Check if it has daughters
-    if ( ! part -> end_vertex() ) return true ;
+    if ( !part->end_vertex() ) return true;
 
     // Loop over the daughters to find a D hadron
-    for ( auto & child : HepMC3::Relatives::CHILDREN(part) ) {
-      LHCb::ParticleID childID( child -> pdg_id() ) ;
-      if ( childID.hasCharm() ) return false ;
+    for ( auto& child : HepMC3::Relatives::CHILDREN( part ) ) {
+      LHCb::ParticleID childID( child->pdg_id() );
+      if ( childID.hasCharm() ) return false;
     }
 
     // If not, then it is a End D
-    return true ;
+    return true;
   }
 };
 
@@ -169,452 +165,359 @@ struct isEndD : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool >
 //=============================================================================
 // Setup names of B hadron counters
 //=============================================================================
-void GenCounters::setupBHadronCountersNames( BHadronCNames & BC , 
-                                             BHadronCNames & antiBC ) {
-    BC[ Bd ] = "B0" ;
-    BC[ Bu ] = "B+" ;
-    BC[ Bs ] = "Bs0" ;
-    BC[ Bc ] = "Bc+" ;
-    BC[ bBaryon ] = "b-Baryon" ;
-
-    antiBC[ Bd ] = "anti-B0" ;
-    antiBC[ Bu ] = "B-" ;
-    antiBC[ Bs ] = "anti-Bs0" ;
-    antiBC[ Bc ] = "Bc-" ;
-    antiBC[ bBaryon ] = "anti-b-Baryon" ;
+void GenCounters::setupBHadronCountersNames( BHadronCNames& BC, BHadronCNames& antiBC ) {
+  BC[Bd]      = "B0";
+  BC[Bu]      = "B+";
+  BC[Bs]      = "Bs0";
+  BC[Bc]      = "Bc+";
+  BC[bBaryon] = "b-Baryon";
+
+  antiBC[Bd]      = "anti-B0";
+  antiBC[Bu]      = "B-";
+  antiBC[Bs]      = "anti-Bs0";
+  antiBC[Bc]      = "Bc-";
+  antiBC[bBaryon] = "anti-b-Baryon";
 }
 
 //=============================================================================
 // Setup names of D hadron counters
 //=============================================================================
-void GenCounters::setupDHadronCountersNames( DHadronCNames & DC , 
-                                             DHadronCNames & antiDC ) {
-    DC[ D0 ] = "D0" ;
-    DC[ Dch ] = "D+" ;
-    DC[ Ds ] = "Ds+" ;
-    DC[ cBaryon ] = "c-Baryon" ;
-
-    antiDC[ D0 ] = "anti-D0" ;
-    antiDC[ Dch ] = "D-" ;
-    antiDC[ Ds ] = "Ds-" ;
-    antiDC[ cBaryon ] = "anti-c-Baryon" ;
+void GenCounters::setupDHadronCountersNames( DHadronCNames& DC, DHadronCNames& antiDC ) {
+  DC[D0]      = "D0";
+  DC[Dch]     = "D+";
+  DC[Ds]      = "Ds+";
+  DC[cBaryon] = "c-Baryon";
+
+  antiDC[D0]      = "anti-D0";
+  antiDC[Dch]     = "D-";
+  antiDC[Ds]      = "Ds-";
+  antiDC[cBaryon] = "anti-c-Baryon";
 }
 
 //=============================================================================
 // Setup names of B excited states
 //=============================================================================
-void GenCounters::setupExcitedCountersNames( ExcitedCNames & B , 
-                                             const std::string & root ) {
-  B[ _0star ] = root + "(L=0,J=0)";
-    B[ _1star ] = root + "* (L=0, J=1)" ;
-    B[ _2star ] = root + "** (L=1, J=0,1,2)" ;
+void GenCounters::setupExcitedCountersNames( ExcitedCNames& B, const std::string& root ) {
+  B[_0star] = root + "(L=0,J=0)";
+  B[_1star] = root + "* (L=0, J=1)";
+  B[_2star] = root + "** (L=1, J=0,1,2)";
 }
 
 //=============================================================================
 // Count excited states counters
 //=============================================================================
-void GenCounters::updateExcitedStatesCounters
-( const HepMC3::GenEvent* theEvent , ExcitedCounter & thebExcitedC ,
-  ExcitedCounter & thecExcitedC ) {
+void GenCounters::updateExcitedStatesCounters( const HepMC3::GenEvent* theEvent, ExcitedCounter& thebExcitedC,
+                                               ExcitedCounter& thecExcitedC ) {
 
   // Signal Vertex
   // In HepMC3 now stored as an event attribute. If it does not exist, the default
   // constructor is used to construct the attribute. This will yield a GenVertexPtr
   // pointing to nullptr.
-  auto signal_process_vertex =
-      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex )->value();
+  auto signal_process_vertex_attribute =
+      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex );
+  HepMC3::ConstGenVertexPtr signal_process_vertex{nullptr};
+  if ( signal_process_vertex_attribute ) { signal_process_vertex = signal_process_vertex_attribute->value(); }
 
   // Count B :
-  std::vector< HepMC3::ConstGenParticlePtr > rootB ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()) ,
-                  std::back_inserter( rootB ) , isRootB() ) ;
+  std::vector<HepMC3::ConstGenParticlePtr> rootB;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( rootB ),
+                   isRootB() );
 
-  std::vector< HepMC3::ConstGenParticlePtr >::const_iterator iter ;
+  std::vector<HepMC3::ConstGenParticlePtr>::const_iterator iter;
 
-  for ( iter = rootB.begin() ; iter != rootB.end() ; ++iter ) {
+  for ( iter = rootB.begin(); iter != rootB.end(); ++iter ) {
     if ( signal_process_vertex ) {
-      if ( ! HepMCUtils::commonTrees( signal_process_vertex,
-                                      (*iter) -> end_vertex() ) ) 
-        continue ;
+      if ( !HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
 
     if ( thePid.isMeson() ) {
       if ( 0 == thePid.lSpin() ) {
-        if ( 1 == thePid.jSpin() ) ++thebExcitedC[ _0star ] ;
-        else ++thebExcitedC[ _1star ] ;
-      } else ++thebExcitedC[ _2star ] ;
+        if ( 1 == thePid.jSpin() )
+          ++thebExcitedC[_0star];
+        else
+          ++thebExcitedC[_1star];
+      } else
+        ++thebExcitedC[_2star];
     }
   }
 
   // Count D :
-  std::vector< HepMC3::ConstGenParticlePtr > rootD ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()),
-                  std::back_inserter( rootD ) , isRootD() ) ;
-
-  for ( iter = rootD.begin() ; iter != rootD.end() ; ++iter ) {
-    if ( signal_process_vertex) {
-      if ( ! HepMCUtils::commonTrees( signal_process_vertex, 
-                                      (*iter) -> end_vertex() ) ) 
-        continue ;
+  std::vector<HepMC3::ConstGenParticlePtr> rootD;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( rootD ),
+                   isRootD() );
+
+  for ( iter = rootD.begin(); iter != rootD.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( !HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
-    
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
+
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
     if ( thePid.isMeson() ) {
       if ( 0 == thePid.lSpin() ) {
-        if ( 1 == thePid.jSpin() ) ++thecExcitedC[ _0star ] ;
-        else ++thecExcitedC[ _1star ] ;
-        } else ++thecExcitedC[ _2star ] ;
+        if ( 1 == thePid.jSpin() )
+          ++thecExcitedC[_0star];
+        else
+          ++thecExcitedC[_1star];
+      } else
+        ++thecExcitedC[_2star];
     }
-  }       
+  }
 }
 
 //=============================================================================
 // Update the counters of number of different hadrons in selected events
 //=============================================================================
-void GenCounters::updateHadronCounters( const HepMC3::GenEvent* theEvent ,
-                                        BHadronCounter & thebHadC , 
-                                        BHadronCounter & theantibHadC ,
-                                        DHadronCounter & thecHadC ,
-                                        DHadronCounter & theanticHadC ,
-                                        std::atomic_uint & thebbCounter ,
-                                        std::atomic_uint & theccCounter ) {
+void GenCounters::updateHadronCounters( const HepMC3::GenEvent* theEvent, BHadronCounter& thebHadC,
+                                        BHadronCounter& theantibHadC, DHadronCounter& thecHadC,
+                                        DHadronCounter& theanticHadC, std::atomic_uint& thebbCounter,
+                                        std::atomic_uint& theccCounter ) {
   // Signal vertex
   // In HepMC3 now stored as an event attribute. If it does not exist, the default
   // constructor is used to construct the attribute. This will yield a GenVertexPtr
   // pointing to nullptr.
-  auto signal_process_vertex =
-      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex )->value();
+  auto signal_process_vertex_attribute =
+      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex );
+  HepMC3::ConstGenVertexPtr signal_process_vertex{nullptr};
+  if ( signal_process_vertex_attribute ) { signal_process_vertex = signal_process_vertex_attribute->value(); }
 
   // Count B:
-  std::vector< HepMC3::ConstGenParticlePtr > endB ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()),
-                  std::back_inserter( endB ) , isEndB() ) ;
-  std::vector< HepMC3::ConstGenParticlePtr >::const_iterator iter ;
-  
-  for ( iter = endB.begin() ; iter != endB.end() ; ++iter ) {
+  std::vector<HepMC3::ConstGenParticlePtr> endB;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( endB ),
+                   isEndB() );
+  std::vector<HepMC3::ConstGenParticlePtr>::const_iterator iter;
+
+  for ( iter = endB.begin(); iter != endB.end(); ++iter ) {
     if ( signal_process_vertex ) {
-      if ( HepMCUtils::commonTrees( signal_process_vertex, 
-                                    (*iter) -> end_vertex() ) )
-        continue ;
+      if ( HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
-    
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
-    
+
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
+
     if ( thePid.isMeson() ) {
       if ( thePid.pid() > 0 ) {
-        if ( thePid.hasUp() ) ++thebHadC[ Bu ] ;
-        else if ( thePid.hasDown() ) ++thebHadC[ Bd ] ;
-        else if ( thePid.hasStrange() ) ++thebHadC[ Bs ] ;
-        else if ( thePid.hasCharm() ) ++thebHadC[ Bc ] ;
-        else ++thebbCounter ;
+        if ( thePid.hasUp() )
+          ++thebHadC[Bu];
+        else if ( thePid.hasDown() )
+          ++thebHadC[Bd];
+        else if ( thePid.hasStrange() )
+          ++thebHadC[Bs];
+        else if ( thePid.hasCharm() )
+          ++thebHadC[Bc];
+        else
+          ++thebbCounter;
       } else {
-        if ( thePid.hasUp() ) ++theantibHadC[ Bu ] ;
-        else if ( thePid.hasDown() ) ++theantibHadC[ Bd ] ;
-        else if ( thePid.hasStrange() ) ++theantibHadC[ Bs ] ;
-        else if ( thePid.hasCharm() ) ++theantibHadC[ Bc ] ;
-        else ++thebbCounter ;
+        if ( thePid.hasUp() )
+          ++theantibHadC[Bu];
+        else if ( thePid.hasDown() )
+          ++theantibHadC[Bd];
+        else if ( thePid.hasStrange() )
+          ++theantibHadC[Bs];
+        else if ( thePid.hasCharm() )
+          ++theantibHadC[Bc];
+        else
+          ++thebbCounter;
       }
     } else if ( thePid.isBaryon() ) {
-      if ( thePid.pid() < 0 ) ++thebHadC[ bBaryon ] ;
-      else ++theantibHadC[ bBaryon ] ;
+      if ( thePid.pid() < 0 )
+        ++thebHadC[bBaryon];
+      else
+        ++theantibHadC[bBaryon];
     }
   }
-  
-  std::vector< HepMC3::ConstGenParticlePtr > endD ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()),
-                  std::back_inserter( endD ) , isEndD() ) ;
-  
-  for ( iter = endD.begin() ; iter != endD.end() ; ++iter ) {
+
+  std::vector<HepMC3::ConstGenParticlePtr> endD;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( endD ),
+                   isEndD() );
+
+  for ( iter = endD.begin(); iter != endD.end(); ++iter ) {
     if ( signal_process_vertex ) {
-      if ( HepMCUtils::commonTrees( signal_process_vertex,
-                                    (*iter) -> end_vertex() ) ) 
-        continue ;
+      if ( HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
-    
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
-    
+
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
+
     if ( thePid.isMeson() ) {
       if ( thePid.pid() > 0 ) {
-        if ( thePid.hasUp() ) ++thecHadC[ D0 ] ;
-        else if ( thePid.hasDown() ) ++thecHadC[ Dch ] ;
-        else if ( thePid.hasStrange() ) ++thecHadC[ Ds ] ;
-        else ++theccCounter ;
+        if ( thePid.hasUp() )
+          ++thecHadC[D0];
+        else if ( thePid.hasDown() )
+          ++thecHadC[Dch];
+        else if ( thePid.hasStrange() )
+          ++thecHadC[Ds];
+        else
+          ++theccCounter;
       } else {
-        if ( thePid.hasUp() ) ++theanticHadC[ D0 ] ;
-        else if ( thePid.hasDown() ) ++theanticHadC[ Dch ] ;
-        else if ( thePid.hasStrange() ) ++theanticHadC[ Ds ] ;
-        else ++theccCounter ;
+        if ( thePid.hasUp() )
+          ++theanticHadC[D0];
+        else if ( thePid.hasDown() )
+          ++theanticHadC[Dch];
+        else if ( thePid.hasStrange() )
+          ++theanticHadC[Ds];
+        else
+          ++theccCounter;
       }
     } else if ( thePid.isBaryon() ) {
-      if ( thePid.pid() > 0 ) ++thecHadC[ cBaryon ] ;
-      else ++theanticHadC[ cBaryon ] ;
+      if ( thePid.pid() > 0 )
+        ++thecHadC[cBaryon];
+      else
+        ++theanticHadC[cBaryon];
     }
-  } 
+  }
 }
 
-
-//=============================================================================                    
-// Update the genFRS in selected events                                                            
-//=============================================================================                    
-void GenCounters::updateHadronFSR( const HepMC3::GenEvent* theEvent ,
-                                   LHCb::GenFSR* genFSR,
-                                   const std::string option)
-{  
-  if(!genFSR) return;
-  // Signal Vertex                                                                        
+//=============================================================================
+// Update the genFRS in selected events
+//=============================================================================
+void GenCounters::updateHadronFSR( const HepMC3::GenEvent* theEvent, LHCb::GenFSR* genFSR, const std::string option ) {
+  if ( !genFSR ) return;
+  // Signal Vertex
   // In HepMC3 now stored as an event attribute. If it does not exist, the default
   // constructor is used to construct the attribute. This will yield a GenVertexPtr
   // pointing to nullptr.
-  auto signal_process_vertex =
-      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex )->value();
-  
-  // Count B :                                                                                    
-  std::vector< HepMC3::ConstGenParticlePtr > rootB ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()) ,
-                  std::back_inserter( rootB ) , isRootB() ) ;
-
-  std::vector< HepMC3::ConstGenParticlePtr >::const_iterator iter ;
-
-  for ( iter = rootB.begin() ; iter != rootB.end() ; ++iter )
-  {
-    if ( signal_process_vertex )
-    {  
-      if ( ! HepMCUtils::commonTrees( signal_process_vertex ,
-                                      (*iter) -> end_vertex() ) )
-        continue ; 
-    }    
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
-
-    if (thePid.isMeson())
-    {
-      if (0 == thePid.lSpin())
-      {
-        if (1 == thePid.jSpin())
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("B"+option), 1);
+  auto signal_process_vertex_attribute =
+      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex );
+  HepMC3::ConstGenVertexPtr signal_process_vertex{nullptr};
+  if ( signal_process_vertex_attribute ) { signal_process_vertex = signal_process_vertex_attribute->value(); }
+
+  // Count B :
+  std::vector<HepMC3::ConstGenParticlePtr> rootB;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( rootB ),
+                   isRootB() );
+
+  std::vector<HepMC3::ConstGenParticlePtr>::const_iterator iter;
+
+  for ( iter = rootB.begin(); iter != rootB.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( !HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
+    }
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
+
+    if ( thePid.isMeson() ) {
+      if ( 0 == thePid.lSpin() ) {
+        if ( 1 == thePid.jSpin() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "B" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bstar" + option ), 1 );
         }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bstar"+option), 1); 
-        } 
+      } else {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "B2star" + option ), 1 );
       }
-      else
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("B2star"+option), 1);
-      } 
-    } 
+    }
   }
 
-  // Count D :                                                                                     
-  std::vector< HepMC3::ConstGenParticlePtr > rootD ;  
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()),
-                  std::back_inserter( rootD ) , isRootD() ) ;
-
-  for ( iter = rootD.begin() ; iter != rootD.end() ; ++iter )
-  {
-    if ( signal_process_vertex)
-    {
-      if ( ! HepMCUtils::commonTrees( signal_process_vertex ,
-                                      (*iter) -> end_vertex() ) )
-        continue ; 
+  // Count D :
+  std::vector<HepMC3::ConstGenParticlePtr> rootD;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( rootD ),
+                   isRootD() );
+
+  for ( iter = rootD.begin(); iter != rootD.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( !HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
 
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() );
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
 
-    if (thePid.isMeson())
-    {
-      if (0 == thePid.lSpin())
-      {
-        if (1 == thePid.jSpin())
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("D"+option), 1); 
+    if ( thePid.isMeson() ) {
+      if ( 0 == thePid.lSpin() ) {
+        if ( 1 == thePid.jSpin() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "D" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dstar" + option ), 1 );
         }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dstar"+option), 1); 
-        } 
+      } else {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "D2star" + option ), 1 );
       }
-      else
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("D2star"+option), 1); 
-      } 
-    } 
+    }
   }
 
-  // Count B:                                                                                     
-  std::vector< HepMC3::ConstGenParticlePtr > endB ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()) ,
-                  std::back_inserter( endB ) , isEndB() ) ;
-
-  for ( iter = endB.begin() ; iter != endB.end() ; ++iter )
-  {
-    if ( signal_process_vertex )
-    {
-      if ( HepMCUtils::commonTrees( signal_process_vertex ,
-                                    (*iter) -> end_vertex() ) )
-        continue ;      
+  // Count B:
+  std::vector<HepMC3::ConstGenParticlePtr> endB;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( endB ),
+                   isEndB() );
+
+  for ( iter = endB.begin(); iter != endB.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
 
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
 
-    if ( thePid.isMeson() )                                                                                                               
-    {                                                                                                                                  
-      if ( thePid.pid() > 0 )
-      {                                                                                                                              
-        if ( thePid.hasUp() )                                                                                                         
-        {                                                              
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bplus"+option), 1);
-        }                                                                                                                          
-        else if ( thePid.hasDown() )                                                                                                  
-        {                                                                 
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("B0"+option), 1);
-        }                                                                                                                          
-        else if ( thePid.hasStrange() )                                                                                               
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bs0"+option), 1);
+    if ( thePid.isMeson() ) {
+      if ( thePid.pid() > 0 ) {
+        if ( thePid.hasUp() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bplus" + option ), 1 );
+        } else if ( thePid.hasDown() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "B0" + option ), 1 );
+        } else if ( thePid.hasStrange() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bs0" + option ), 1 );
+        } else if ( thePid.hasCharm() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bcplus" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "bb" + option ), 1 );
         }
-        else if ( thePid.hasCharm() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bcplus"+option), 1); 
+      } else {
+        if ( thePid.hasUp() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bminus" + option ), 1 );
+        } else if ( thePid.hasDown() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "antiB0" + option ), 1 );
+        } else if ( thePid.hasStrange() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "antiBs0" + option ), 1 );
+        } else if ( thePid.hasCharm() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bcminus" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "bb" + option ), 1 );
         }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("bb"+option), 1); 
-        } 
       }
-      else
-      {
-        if ( thePid.hasUp() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bminus"+option), 1);
-        }
-        else if ( thePid.hasDown() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("antiB0"+option), 1); 
-        }
-        else if ( thePid.hasStrange() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("antiBs0"+option), 1); 
-        }
-        else if ( thePid.hasCharm() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bcminus"+option), 1);
-        }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("bb"+option), 1); 
-        } 
-      } 
-    }
-    else if ( thePid.isBaryon() )
-    {
-      if ( thePid.pid() < 0 )
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("bBaryon"+option), 1); 
+    } else if ( thePid.isBaryon() ) {
+      if ( thePid.pid() < 0 ) {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "bBaryon" + option ), 1 );
+      } else {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "antibBaryon" + option ), 1 );
       }
-      else
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("antibBaryon"+option), 1); 
-      } 
-    } 
+    }
   }
 
-  // Count D:                                                                                   
-  std::vector< HepMC3::ConstGenParticlePtr > endD ;
-  HepMC3::copy_if( std::begin(theEvent->particles()), std::end(theEvent->particles()) ,
-                  std::back_inserter( endD ) , isEndD() ) ;
-
-  for ( iter = endD.begin() ; iter != endD.end() ; ++iter )
-  {
-    if ( signal_process_vertex )
-    {
-      if ( HepMCUtils::commonTrees( signal_process_vertex ,
-                                    (*iter) -> end_vertex() ) )
-        continue ;      
+  // Count D:
+  std::vector<HepMC3::ConstGenParticlePtr> endD;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( endD ),
+                   isEndD() );
+
+  for ( iter = endD.begin(); iter != endD.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
 
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
 
-    if ( thePid.isMeson() )
-    {
-      if ( thePid.pid() > 0 )
-      {
-        if ( thePid.hasUp() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("D0"+option), 1); 
-        }
-        else if ( thePid.hasDown() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dplus"+option), 1); 
+    if ( thePid.isMeson() ) {
+      if ( thePid.pid() > 0 ) {
+        if ( thePid.hasUp() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "D0" + option ), 1 );
+        } else if ( thePid.hasDown() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dplus" + option ), 1 );
+        } else if ( thePid.hasStrange() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dsplus" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "cc" + option ), 1 );
         }
-        else if ( thePid.hasStrange() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dsplus"+option), 1);
+      } else {
+        if ( thePid.hasUp() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "antiD0" + option ), 1 );
+        } else if ( thePid.hasDown() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dminus" + option ), 1 );
+        } else if ( thePid.hasStrange() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dsminus" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "cc" + option ), 1 );
         }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("cc"+option), 1); 
-        } 
       }
-      else
-      {
-        if ( thePid.hasUp() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("antiD0"+option), 1); 
-        }
-        else if ( thePid.hasDown() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dminus"+option), 1); 
-        }
-        else if ( thePid.hasStrange() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dsminus"+option), 1); 
-        }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("cc"+option), 1); 
-        } 
-      } 
-    }
-    else if ( thePid.isBaryon() )
-    {
-      if ( thePid.pid() > 0 )
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("cBaryon"+option), 1); 
+    } else if ( thePid.isBaryon() ) {
+      if ( thePid.pid() > 0 ) {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "cBaryon" + option ), 1 );
+      } else {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "anticBaryon" + option ), 1 );
       }
-      else
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("anticBaryon"+option), 1); 
-      } 
-    } 
-  } 
+    }
+  }
 }
-- 
GitLab


From 0cceba6ea3d8d6cd15b12a8a0b2c163b4bc93ed5 Mon Sep 17 00:00:00 2001
From: Michal Kreps <michal.kreps@cern.ch>
Date: Fri, 14 Oct 2022 14:45:57 +0200
Subject: [PATCH 41/56] Setting up options propagation for production tool -
 for now only Pythia8Production is supported

---
 .../src/Components/GenMonitorAlg.cpp          | 36 ++++++++-----------
 Sim/Gaussino/python/Gaussino/Generation.py    |  9 +++++
 2 files changed, 24 insertions(+), 21 deletions(-)

diff --git a/Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp b/Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp
index 0437324f..387a082b 100755
--- a/Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp
+++ b/Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp
@@ -40,8 +40,7 @@
 // Declaration of the Algorithm Factory
 DECLARE_COMPONENT( GenMonitorAlg )
 
-StatusCode GenMonitorAlg::initialize()
-{
+StatusCode GenMonitorAlg::initialize() {
 
   StatusCode sc = GaudiHistoAlg::initialize(); // must be executed first
   if ( sc.isFailure() ) return sc;             // error printed already by GaudiHistoAlg
@@ -52,15 +51,12 @@ StatusCode GenMonitorAlg::initialize()
     info() << "Monitor will be applied to events produced with generator " << m_generatorName << endmsg;
   }
 
-  if ( produceHistos() ) {
-    bookHistos();
-  }
+  if ( produceHistos() ) { bookHistos(); }
 
   return StatusCode::SUCCESS;
 }
 
-void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const
-{
+void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const {
   std::lock_guard<std::mutex> lock( m_histo_lock );
   debug() << "==> Execute" << endmsg;
 
@@ -70,21 +66,23 @@ void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const
   int nPileUp( 0 );
 
   for ( auto& hepmcevent : hepmcevents ) {
-    auto gen_name = hepmcevent->attribute<HepMC3::StringAttribute>( Gaussino::HepMC::Attributes::GeneratorName )->value();
+    auto gen_name =
+        hepmcevent->attribute<HepMC3::StringAttribute>( Gaussino::HepMC::Attributes::GeneratorName )->value();
 
     // Check if monitor has to be applied to this event
     if ( !m_generatorName.empty() ) {
-      if ( m_generatorName != gen_name ) {
-        continue;
-      }
+      if ( m_generatorName != gen_name ) { continue; }
     }
     debug() << "Monitor for " << gen_name << endmsg;
 
     // Get the signal process ID from the attributes
     if ( produceHistos() ) {
-      auto sig_proc_id = 
-          hepmcevent->attribute<HepMC3::IntAttribute>( Gaussino::HepMC::Attributes::SignalProcessID )->value();
-      m_hProcess->fill( sig_proc_id );
+      auto sig_proc_id_attr =
+          hepmcevent->attribute<HepMC3::IntAttribute>( Gaussino::HepMC::Attributes::SignalProcessID );
+      if ( sig_proc_id_attr ) {
+        auto sig_proc_id = sig_proc_id_attr->value();
+        m_hProcess->fill( sig_proc_id );
+      }
     }
 
     bool primFound = false;
@@ -135,9 +133,7 @@ void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const
             ++nParticlesStableCharged;
             double pseudoRap = hepMCpart->momentum().pseudoRapidity();
             // in LHCb acceptance
-            if ( ( pseudoRap > m_minEta ) && ( pseudoRap < m_maxEta ) ) {
-              ++nParChStabEtaAcc;
-            }
+            if ( ( pseudoRap > m_minEta ) && ( pseudoRap < m_maxEta ) ) { ++nParChStabEtaAcc; }
             if ( produceHistos() ) {
               m_hStableEta->fill( pseudoRap );
               m_hStablePt->fill( hepMCpart->momentum().perp() / Gaudi::Units::GeV );
@@ -167,8 +163,7 @@ void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const
 //=============================================================================
 //  Finalize
 //=============================================================================
-StatusCode GenMonitorAlg::finalize()
-{
+StatusCode GenMonitorAlg::finalize() {
 
   debug() << "==> Finalize" << endmsg;
 
@@ -199,8 +194,7 @@ StatusCode GenMonitorAlg::finalize()
 //============================================================================
 // Booking of histograms
 //============================================================================
-void GenMonitorAlg::bookHistos()
-{
+void GenMonitorAlg::bookHistos() {
 
   debug() << "==> Book histograms" << endmsg;
 
diff --git a/Sim/Gaussino/python/Gaussino/Generation.py b/Sim/Gaussino/python/Gaussino/Generation.py
index 6b69039b..0b23b410 100644
--- a/Sim/Gaussino/python/Gaussino/Generation.py
+++ b/Sim/Gaussino/python/Gaussino/Generation.py
@@ -100,6 +100,9 @@ class GenPhase(ConfigurableUser):
     :var ProductionTool: default: ``'Pythia8Production'``
     :vartype ProductionTool: str, optional
 
+    :var ProductionToolOpts: default: ``{}``
+    :vartype ProductionToolOpts: dict, optional
+
     :var DecayTool: default: ``''``
     :vartype DecayTool: str, optional
 
@@ -165,6 +168,7 @@ class GenPhase(ConfigurableUser):
         'FixedLuminosityWithSvc',  # NOQA
         "ProductionTool":
         'Pythia8Production',  # NOQA
+        "ProductionToolOpts": {},
         "DecayTool":
         '',  # NOQA
         "CutTool":
@@ -248,6 +252,11 @@ class GenPhase(ConfigurableUser):
             gen_alg.FullGenEventCutTool = ''
         prod = get_set_configurable(sgt, 'ProductionTool', ProductionTool)
         if ProductionTool in ["Pythia8Production", "Pythia8ProductionMT"]:
+            # For now keep it only for Pythia, but potentially in future we
+            # want to do this for all possible production tools
+            prot_opts = self.getProp('ProductionToolOpts')
+            for n, v in prot_opts.items():
+                prod.setProp(n, v)
             prod.BeamToolName = 'CollidingBeamsWithSvc'
 
         if ProductionTool == "Pythia8ProductionMT":
-- 
GitLab


From ea40349b3a7d8d53782b8853719d829eb40bc614 Mon Sep 17 00:00:00 2001
From: Marco Clemencic <marco.clemencic@cern.ch>
Date: Tue, 18 Oct 2022 10:31:36 +0200
Subject: [PATCH 42/56] Workaround for undefined symbol

---
 Sim/GiGaMTFactories/CMakeLists.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Sim/GiGaMTFactories/CMakeLists.txt b/Sim/GiGaMTFactories/CMakeLists.txt
index f2cf7656..c5a4f4bb 100644
--- a/Sim/GiGaMTFactories/CMakeLists.txt
+++ b/Sim/GiGaMTFactories/CMakeLists.txt
@@ -101,6 +101,11 @@ gaudi_add_library(GiGaMTMagnetFactoriesLib
 	    Gaussino::GiGaMTCoreMessageLib
 )
 
+# Workaround for unresolved symbol
+if(CMAKE_BUILD_TYPE STREQUAL "Release")
+  set_source_files_properties(src/Lib/FieldMgrBase.cpp PROPERTIES COMPILE_OPTIONS "-O2")
+endif()
+
 gaudi_add_module(GiGaMTMagnetFactories
     SOURCES
         src/Components/MagFieldFromSvc.cpp
-- 
GitLab


From 8ea2ffec899f27de473462afad2a5fcf9e4b8719 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Wed, 11 Jan 2023 10:59:45 +0100
Subject: [PATCH 43/56] Update to dd4hep v01-23

---
 Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp b/Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp
index 833f9fd3..5c787802 100644
--- a/Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp
+++ b/Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp
@@ -47,13 +47,12 @@ StatusCode DD4hepCnvSvc::initialize() {
     for ( auto& pp : g4map.volumeManager()->g4Paths ) {
       debug() << "/";
       for ( auto& pv : pp.first ) { debug() << pv->GetName() << "/"; }
-      debug() << " ID:" << pp.second << endmsg;
+      debug() << " ID:" << pp.second.volumeID << endmsg;
     }
     for ( auto& [dd4hep_volume, g4_volume] : g4map.data().g4Volumes ) {
       if ( !dd4hep_volume.isValid() || !dd4hep_volume.isSensitive() ) { continue; }
       auto dd4hep_sensdet_name = dd4hep_volume.sensitiveDetector().name();
       debug() << "Active volume '" << dd4hep_volume.name() << "' SensDet: '" << dd4hep_sensdet_name << "'" << endmsg;
-      if ( dd4hep_volume.isSensitive() ) {}
     }
   }
 
-- 
GitLab


From 73a1d2d30c7e17b9192374059259eb6bae970809 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Fri, 20 Jan 2023 10:49:04 +0100
Subject: [PATCH 44/56] Update docs to LCG 101a

---
 docs/getting_started/gauss.md    | 10 +++++-----
 docs/getting_started/gaussino.md |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
index 6304cdcd..41d4ebe0 100644
--- a/docs/getting_started/gauss.md
+++ b/docs/getting_started/gauss.md
@@ -78,7 +78,7 @@ Below you will find a summary of the commands that should cover the majority of
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-export LCG_VERSION=101x
+export LCG_VERSION=101a
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
@@ -100,7 +100,7 @@ Below you will find a summary of the commands that should cover the majority of
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-export LCG_VERSION=101x
+export LCG_VERSION=101a
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
 cd lhcb-gaussino/Today
 lb-set-workspace .
@@ -131,7 +131,7 @@ Below you will find a summary of the commands needed to work with DD4hep/Detecto
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
-export LCG_VERSION=101x
+export LCG_VERSION=101a
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-dd4hep Today
 cd lhcb-dd4hep/Today
 lb-set-workspace .
@@ -153,7 +153,7 @@ Below you will find a summary of the commands needed to work with DD4hep/Detecto
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
-export LCG_VERSION=101x
+export LCG_VERSION=101a
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE lhcb-dd4hep Today
 cd lhcb-dd4hep/Today
 lb-set-workspace .
@@ -220,7 +220,7 @@ Below you will find a summary of the commands needed to work with fast simulatio
 ```shell
 source /cvmfs/lhcb.cern.ch/lib/LbEnv
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-export LCG_VERSION=101x
+export LCG_VERSION=101a
 lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs
 lhcb-gaussino-fastsim Today
 cd lhcb-gaussino-fastsim/Today
diff --git a/docs/getting_started/gaussino.md b/docs/getting_started/gaussino.md
index e4086d9c..4efb9bd0 100644
--- a/docs/getting_started/gaussino.md
+++ b/docs/getting_started/gaussino.md
@@ -32,7 +32,7 @@ The following will make sure that you have the most recent platform.
 
 ```shell
 lb-set-platform x86_64_v2-centos7-gcc11-opt
-export LCG_VERSION=101x
+export LCG_VERSION=101a
 ```
 
 ```{eval-rst}
-- 
GitLab


From 531758e3599af9bca8ad483058027c3cda33b3d3 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 16:37:50 +0100
Subject: [PATCH 45/56] test docs cleaning

---
 .gitlab-ci.yml | 49 ++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 42 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 38767faf..896a1f55 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -51,6 +51,8 @@ check-formatting:
   image: gitlab-registry.cern.ch/lhcb-core/lbdocker/centos7-build:latest
   variables:
     DOCS_VERSION: $CI_COMMIT_REF_NAME
+    # I found CI_PAGES_URL sometimes pointing to the wrong addresss
+    GAUSSINO_PAGES_URL: https://mimazure-gaussino.docs.cern.ch/
   rules:
     - if: $CI_COMMIT_REF_PROTECTED == "true"
     - if: $CI_MERGE_REQUEST_LABELS =~ /Python Documentation/
@@ -58,7 +60,7 @@ check-formatting:
   tags:
     - cvmfs
 
-# inspired by https://gitlab.cern.ch/lhcb/Moore/-/blob/master/.gitlab-ci.yml      
+# inspired by https://gitlab.cern.ch/lhcb/Moore/-/blob/master/.gitlab-ci.yml
 build-docs:
   extends: .docs-base
   variables:
@@ -83,17 +85,14 @@ build-docs:
       - docs/_build/html/
     expire_in: 1 month
 
-pages:
+clean-old-pages:
   extends: .docs-base
   needs:
     - build-docs
-  variables:
-    # I found CI_PAGES_URL sometimes pointing to the wrong addresss
-    GAUSSINO_PAGES_URL: https://gaussino.docs.cern.ch/
   script:
     # accumulating content as in https://gitlab.com/gitlab-org/gitlab/-/issues/15156#note_214784368
     # -> get the archive from the website with the accumulated content and copy it to public/
-    - echo "Deploying docs for ${DOCS_VERSION}"
+    - echo "Cleaning docs for ${DOCS_VERSION}"
     - echo "Getting the latest versions from ${GAUSSINO_PAGES_URL}"
     # -> curl will create content.tar.gz even if it does not exists
     - curl -fkL "$GAUSSINO_PAGES_URL/content.tar.gz" -o "content.tar.gz" || echo "Could not get the archive, skipping..."
@@ -102,7 +101,7 @@ pages:
     - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
     # -> add only the new contents of the current version
     - mkdir -p public/$DOCS_VERSION/
-    - rsync -a docs/_build/html/ public/$DOCS_VERSION/
+    - mv docs/_build/html public/$DOCS_VERSION
     # -> add all the necessary redirects
     - rm -f public/_redirects
     - echo "/index.html /master/index.html 301" >> public/_redirects
@@ -116,3 +115,39 @@ pages:
     - public
     expire_in: 1 month
 
+pages:
+  extends: .docs-base
+  needs:
+    - pages
+  variables:
+    MAX_TIME_IN_DAYS: 7
+  script:
+    # -> get the archive from the website with the accumulated content and copy it to public/
+    - echo "Getting the latest versions from ${GAUSSINO_PAGES_URL}"
+    # -> curl will create content.tar.gz even if it does not exists
+    - curl -fkL "$GAUSSINO_PAGES_URL/content.tar.gz" -o "content.tar.gz" || echo "Could not get the archive, skipping..."
+    # -> ignore any unpacking errors, the history will be erased
+    #    note: this might need a bit of rethinking or to be blocked later
+    - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
+    # -> loop over all the possible version created so far and remove development ones that are older than MAX_TIME_IN_DAYS
+    - for version in $(find public/ -maxdepth 1 -mindepth 1 -type d -not -name "master" -not -name "FASTSIM" -not -name "v*" ); do
+          MAX_TIME=$(expr $MAX_TIME_IN_DAYS \* 86400)
+          VERSION_TIME=$(stat ${version} -c %Y)
+          CURRENT_TIME=$(date +%s)
+          ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME)
+          if (($ELAPSED_TIME > $MAX_TIME ))
+          then
+              echo "-> Removing old '${version}'."
+              rm -r $version
+          else
+              "-> Keeping '${version}'."
+          fi
+      done
+    # -> create a new archive and put it on the website
+    - tar -zcf content.tar.gz public/
+    - cp content.tar.gz public/
+  artifacts:
+    paths:
+    - public
+    expire_in: 1 month
+
-- 
GitLab


From 88a2901fd952e381a2db46938673e33056564a2e Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 16:57:25 +0100
Subject: [PATCH 46/56] test docs cleaning2

---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 896a1f55..aca74568 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -85,7 +85,7 @@ build-docs:
       - docs/_build/html/
     expire_in: 1 month
 
-clean-old-pages:
+pages:
   extends: .docs-base
   needs:
     - build-docs
@@ -115,7 +115,7 @@ clean-old-pages:
     - public
     expire_in: 1 month
 
-pages:
+clean-old-pages:
   extends: .docs-base
   needs:
     - pages
-- 
GitLab


From c205405a31330c3ab6b18d7de9767d35ba2b7cff Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 17:04:44 +0100
Subject: [PATCH 47/56] test docs cleaning3

---
 .gitlab-ci.yml | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aca74568..57eb8dca 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -131,16 +131,16 @@ clean-old-pages:
     - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
     # -> loop over all the possible version created so far and remove development ones that are older than MAX_TIME_IN_DAYS
     - for version in $(find public/ -maxdepth 1 -mindepth 1 -type d -not -name "master" -not -name "FASTSIM" -not -name "v*" ); do
-          MAX_TIME=$(expr $MAX_TIME_IN_DAYS \* 86400)
-          VERSION_TIME=$(stat ${version} -c %Y)
-          CURRENT_TIME=$(date +%s)
-          ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME)
-          if (($ELAPSED_TIME > $MAX_TIME ))
+          MAX_TIME=$(expr $MAX_TIME_IN_DAYS \* 86400);
+          VERSION_TIME=$(stat ${version} -c %Y);
+          CURRENT_TIME=$(date +%s);
+          ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME);
+          if (($ELAPSED_TIME > $MAX_TIME ));
           then
-              echo "-> Removing old '${version}'."
-              rm -r $version
+              echo "-> Removing old '${version}'.";
+              rm -r $version;
           else
-              "-> Keeping '${version}'."
+              "-> Keeping '${version}'.";
           fi
       done
     # -> create a new archive and put it on the website
-- 
GitLab


From 85c23dab479811e4b3b552e6e0f8ceceb3068afb Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 18:55:19 +0100
Subject: [PATCH 48/56] test docs cleaning4

---
 .gitlab-ci.yml | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 57eb8dca..233b2e88 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -131,19 +131,21 @@ clean-old-pages:
     - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
     # -> loop over all the possible version created so far and remove development ones that are older than MAX_TIME_IN_DAYS
     - for version in $(find public/ -maxdepth 1 -mindepth 1 -type d -not -name "master" -not -name "FASTSIM" -not -name "v*" ); do
+          echo "Checking version: '${version}'";
           MAX_TIME=$(expr $MAX_TIME_IN_DAYS \* 86400);
           VERSION_TIME=$(stat ${version} -c %Y);
           CURRENT_TIME=$(date +%s);
           ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME);
           if (($ELAPSED_TIME > $MAX_TIME ));
           then
-              echo "-> Removing old '${version}'.";
+              echo "--> Expired. Removing.";
               rm -r $version;
           else
-              "-> Keeping '${version}'.";
+              "--> Not expired.";
           fi
       done
     # -> create a new archive and put it on the website
+    - echo "Deploying cleaned versions."
     - tar -zcf content.tar.gz public/
     - cp content.tar.gz public/
   artifacts:
-- 
GitLab


From e922e72cdec7676bba1c567831ed7102b816483a Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 18:56:59 +0100
Subject: [PATCH 49/56] test docs cleaning5

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 233b2e88..a02e93ce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -141,7 +141,7 @@ clean-old-pages:
               echo "--> Expired. Removing.";
               rm -r $version;
           else
-              "--> Not expired.";
+              echo "--> Not expired.";
           fi
       done
     # -> create a new archive and put it on the website
-- 
GitLab


From c9f2f7771c24382b2ba927f12265bd5c574d4b7e Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 19:05:24 +0100
Subject: [PATCH 50/56] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a02e93ce..747ac4db 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -130,18 +130,19 @@ clean-old-pages:
     #    note: this might need a bit of rethinking or to be blocked later
     - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
     # -> loop over all the possible version created so far and remove development ones that are older than MAX_TIME_IN_DAYS
-    - for version in $(find public/ -maxdepth 1 -mindepth 1 -type d -not -name "master" -not -name "FASTSIM" -not -name "v*" ); do
-          echo "Checking version: '${version}'";
-          MAX_TIME=$(expr $MAX_TIME_IN_DAYS \* 86400);
-          VERSION_TIME=$(stat ${version} -c %Y);
-          CURRENT_TIME=$(date +%s);
-          ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME);
-          if (($ELAPSED_TIME > $MAX_TIME ));
+    - >
+      for version in $(find public/ -maxdepth 1 -mindepth 1 -type d -not -name "master" -not -name "FASTSIM" -not -name "v*" ); do
+        echo "-> Checking version: '${version}'"
+        MAX_TIME=$(expr $MAX_TIME_IN_DAYS \* 86400)
+        VERSION_TIME=$(stat ${version} -c %Y)
+        CURRENT_TIME=$(date +%s)
+        ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME)
+        if (($ELAPSED_TIME > $MAX_TIME ))
           then
-              echo "--> Expired. Removing.";
-              rm -r $version;
+            echo "--> Expired. Removing.""
+            rm -r $version;
           else
-              echo "--> Not expired.";
+            echo "--> Not expired."
           fi
       done
     # -> create a new archive and put it on the website
-- 
GitLab


From e02a8652c545dceff6faaefc19c6a6712d6b22bc Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 19:15:53 +0100
Subject: [PATCH 51/56] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 747ac4db..b8458341 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -99,8 +99,8 @@ pages:
     # -> ignore any unpacking errors, the history will be erased
     #    note: this might need a bit of rethinking or to be blocked later
     - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
-    # -> add only the new contents of the current version
-    - mkdir -p public/$DOCS_VERSION/
+    - rm -rf public/$DOCS_VERSION
+    - mkdir -p public/$DOCS_VERSION
     - mv docs/_build/html public/$DOCS_VERSION
     # -> add all the necessary redirects
     - rm -f public/_redirects
-- 
GitLab


From 37eb3a6395b1c57be9edee9dd426c54f2b1adf41 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 19:19:58 +0100
Subject: [PATCH 52/56] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b8458341..ab70ce2f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -139,8 +139,8 @@ clean-old-pages:
         ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME)
         if (($ELAPSED_TIME > $MAX_TIME ))
           then
-            echo "--> Expired. Removing.""
-            rm -r $version;
+            echo "--> Expired. Removing."
+            rm -r $version
           else
             echo "--> Not expired."
           fi
-- 
GitLab


From 3b24430ed4ce1f1882a9d95a570f02ab55a05053 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 19:55:12 +0100
Subject: [PATCH 53/56] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ab70ce2f..5b712712 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -113,7 +113,7 @@ pages:
   artifacts:
     paths:
     - public
-    expire_in: 1 month
+    expire_in: 1 hour
 
 clean-old-pages:
   extends: .docs-base
@@ -152,5 +152,5 @@ clean-old-pages:
   artifacts:
     paths:
     - public
-    expire_in: 1 month
+    expire_in: 1 hour
 
-- 
GitLab


From 8de37f9709b77d55ee224d6b699bf0cbf87eff34 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 20:02:08 +0100
Subject: [PATCH 54/56] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 34 +++++-----------------------------
 1 file changed, 5 insertions(+), 29 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5b712712..b3a0cc8a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -102,33 +102,6 @@ pages:
     - rm -rf public/$DOCS_VERSION
     - mkdir -p public/$DOCS_VERSION
     - mv docs/_build/html public/$DOCS_VERSION
-    # -> add all the necessary redirects
-    - rm -f public/_redirects
-    - echo "/index.html /master/index.html 301" >> public/_redirects
-    - echo "/ /master/index.html 301" >> public/_redirects
-    - echo "/gaussino /master/index.html 301" >> public/_redirects
-    # -> create a new archive and put it on the website
-    - tar -zcf content.tar.gz public/
-    - cp content.tar.gz public/
-  artifacts:
-    paths:
-    - public
-    expire_in: 1 hour
-
-clean-old-pages:
-  extends: .docs-base
-  needs:
-    - pages
-  variables:
-    MAX_TIME_IN_DAYS: 7
-  script:
-    # -> get the archive from the website with the accumulated content and copy it to public/
-    - echo "Getting the latest versions from ${GAUSSINO_PAGES_URL}"
-    # -> curl will create content.tar.gz even if it does not exists
-    - curl -fkL "$GAUSSINO_PAGES_URL/content.tar.gz" -o "content.tar.gz" || echo "Could not get the archive, skipping..."
-    # -> ignore any unpacking errors, the history will be erased
-    #    note: this might need a bit of rethinking or to be blocked later
-    - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
     # -> loop over all the possible version created so far and remove development ones that are older than MAX_TIME_IN_DAYS
     - >
       for version in $(find public/ -maxdepth 1 -mindepth 1 -type d -not -name "master" -not -name "FASTSIM" -not -name "v*" ); do
@@ -145,12 +118,15 @@ clean-old-pages:
             echo "--> Not expired."
           fi
       done
+    # -> add all the necessary redirects
+    - rm -f public/_redirects
+    - echo "/index.html /master/index.html 301" >> public/_redirects
+    - echo "/ /master/index.html 301" >> public/_redirects
+    - echo "/gaussino /master/index.html 301" >> public/_redirects
     # -> create a new archive and put it on the website
-    - echo "Deploying cleaned versions."
     - tar -zcf content.tar.gz public/
     - cp content.tar.gz public/
   artifacts:
     paths:
     - public
     expire_in: 1 hour
-
-- 
GitLab


From df452e3516b0d972376d10ce8cdd107678c0d789 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 20:07:18 +0100
Subject: [PATCH 55/56] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b3a0cc8a..ae012e42 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -87,6 +87,8 @@ build-docs:
 
 pages:
   extends: .docs-base
+  variables:
+    MAX_TIME_IN_DAYS: 7
   needs:
     - build-docs
   script:
-- 
GitLab


From 71951702d14bd9644fe3bc4b14016360a48cb110 Mon Sep 17 00:00:00 2001
From: Michal Mazurek <michal.mazurek@cern.ch>
Date: Thu, 26 Jan 2023 20:14:13 +0100
Subject: [PATCH 56/56] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ae012e42..8bb0791a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -101,9 +101,6 @@ pages:
     # -> ignore any unpacking errors, the history will be erased
     #    note: this might need a bit of rethinking or to be blocked later
     - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
-    - rm -rf public/$DOCS_VERSION
-    - mkdir -p public/$DOCS_VERSION
-    - mv docs/_build/html public/$DOCS_VERSION
     # -> loop over all the possible version created so far and remove development ones that are older than MAX_TIME_IN_DAYS
     - >
       for version in $(find public/ -maxdepth 1 -mindepth 1 -type d -not -name "master" -not -name "FASTSIM" -not -name "v*" ); do
@@ -112,14 +109,17 @@ pages:
         VERSION_TIME=$(stat ${version} -c %Y)
         CURRENT_TIME=$(date +%s)
         ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME)
-        if (($ELAPSED_TIME > $MAX_TIME ))
-          then
-            echo "--> Expired. Removing."
-            rm -r $version
-          else
-            echo "--> Not expired."
-          fi
+        if (($ELAPSED_TIME > $MAX_TIME )); then
+          echo "--> Expired. Removing."
+          rm -r $version
+        else
+          echo "--> Not expired."
+        fi
       done
+    # -> move the current version
+    - rm -rf public/$DOCS_VERSION
+    - mkdir -p public/$DOCS_VERSION
+    - mv docs/_build/html public/$DOCS_VERSION
     # -> add all the necessary redirects
     - rm -f public/_redirects
     - echo "/index.html /master/index.html 301" >> public/_redirects
-- 
GitLab