Index: /ELYSE/HEAD/ELYSE/Analysis.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/Analysis.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/Analysis.hh	(revision 286)
@@ -0,0 +1,37 @@
+#ifndef ELYSE_Analysis_h
+#define ELYSE_Analysis_h
+
+// Inheritance :
+#include <ELYSE/IAppManager.hh>
+
+#include <string>
+
+namespace AIDA {
+ class IAnalysisFactory;
+ class ITree;
+}
+
+//JEC 10/1/06 introduction
+namespace ELYSE {
+
+class Analysis  : public virtual IAppManager {
+  public: //IAppManager
+    virtual void closeTree();         
+    virtual bool initialize() {return true;}
+  public:        
+    Analysis(AIDA::IAnalysisFactory*,
+             const std::string& format = "",
+             bool aBatch = true);
+    virtual ~Analysis();
+
+    //Get tree pointer
+    AIDA::ITree* tree() const {return fTree;}
+
+  private:
+    AIDA::IAnalysisFactory* fAIDA;
+    bool fBatch;
+    AIDA::ITree* fTree;
+};
+
+}
+#endif
Index: /ELYSE/HEAD/ELYSE/Cast.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/Cast.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/Cast.hh	(revision 286)
@@ -0,0 +1,7 @@
+#ifndef ELYSE_Cast_h
+#define ELYSE_Cast_h
+
+#define CAST(aObject,aClass) (aClass*)(aObject)->cast(#aClass)
+
+
+#endif
Index: /ELYSE/HEAD/ELYSE/DetectorConstruction.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/DetectorConstruction.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/DetectorConstruction.hh	(revision 286)
@@ -0,0 +1,83 @@
+#ifndef ELYSEDetectorConstruction_H
+#define ELYSEDetectorConstruction_H 1
+
+//Geant4
+#include "G4ThreeVector.hh"
+#include "G4VUserDetectorConstruction.hh"
+#include "globals.hh"
+
+
+
+class G4VPhysicalVolume;
+class G4OpticalSurface;
+
+namespace ELYSE {
+
+class DetectorMessenger;
+class TrappingVolume;
+
+class DetectorConstruction : public G4VUserDetectorConstruction {
+ public:
+  //Ctor & Dtor
+  DetectorConstruction();
+  virtual ~DetectorConstruction();
+  
+  //inherited method
+  G4VPhysicalVolume* Construct();
+
+  //assecors
+  void SetWaterDimensions(G4ThreeVector dim);
+  void SetTyvekThickness(G4double thick);
+
+  //rebuild the geometry based on changes. must be called
+  void UpdateGeometry();
+  G4bool GetUpdated(){return updated;}
+
+private:
+
+  // The Construction routines
+  void   ConstructMaterials();
+
+
+
+  //Sensitive volume to trap all particles passing through it
+  TrappingVolume* aTrappingVolume;
+
+  //Water, Tyvek surface
+  G4OpticalSurface* OpWaterTyvekSurface;
+  //Water, Air surface
+  G4OpticalSurface* OpWaterAirSurface;
+  //Tyvek - Air surface
+  //  G4OpticalSurface* OpTyvekAirSurface;
+  //Tyvek - Glass surface (kill the particle)
+  G4OpticalSurface* OpTyvekGlassSurface;
+  // The messenger we use to change the geometry.
+  DetectorMessenger* messenger;
+
+  //Sign if the geometry has been modified
+  G4bool updated;
+
+  //---Volume lengths
+  
+  //Experimental Hall
+  G4double expHall_x;
+  G4double expHall_y;
+  G4double expHall_z;
+  
+  //Water box volume
+  G4double water_x;
+  G4double water_y;
+  G4double water_z;
+
+
+  //Thickness of the tyvek sheet
+  G4double tyvek_thickness;
+
+  
+};
+
+}
+
+
+#endif
+
Index: /ELYSE/HEAD/ELYSE/DetectorMessenger.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/DetectorMessenger.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/DetectorMessenger.hh	(revision 286)
@@ -0,0 +1,40 @@
+#ifndef ELYSEDetectorMessenger_h
+#define ELYSEDetectorMessenger_h 1
+
+
+#include "G4UImessenger.hh"
+#include "G4UImessenger.hh"
+
+
+class G4UIdirectory;
+class G4UIcmdWith3VectorAndUnit;
+class G4UIcmdWithADoubleAndUnit;
+
+//JEC 10/1/06 introduce ELYSE
+namespace ELYSE {
+
+class DetectorConstruction;
+
+
+class DetectorMessenger: public G4UImessenger {
+ public:
+  DetectorMessenger(DetectorConstruction* mpga);
+  virtual ~DetectorMessenger();
+  
+ public:
+  void         SetNewValue(G4UIcommand* command, G4String newValues);
+ 
+ private:
+  DetectorConstruction* ELYSEDetector;
+
+ private: //commands
+  
+  G4UIdirectory*  ELYSEDir;
+  G4UIcmdWith3VectorAndUnit* waterDimensionsCmd;
+  G4UIcmdWithADoubleAndUnit* tyvekThicknessCmd;
+};
+
+}
+#endif
+
+
Index: /ELYSE/HEAD/ELYSE/EventAction.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/EventAction.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/EventAction.hh	(revision 286)
@@ -0,0 +1,62 @@
+#ifndef ELYSEEventAction_h
+#define ELYSEEventAction_h 1
+
+//Geant4
+#include "G4UserEventAction.hh"
+#include "G4ThreeVector.hh"
+#include "G4Types.hh"
+#include "G4ios.hh"
+
+//ELYSE
+#include "ELYSE/DetectorConstruction.hh"
+#include "ELYSE/TrappVolHit.hh"
+
+
+class G4Event;
+
+namespace AIDA {
+  class ITuple;
+}
+
+namespace ELYSE {
+
+class Analysis; 
+class RunAction;
+class PrimaryGeneratorAction;
+
+class EventAction : public G4UserEventAction {
+  
+ public:
+  EventAction(Analysis&,
+	      RunAction*, 
+	      DetectorConstruction*,
+	      PrimaryGeneratorAction*);
+  virtual ~EventAction();
+  
+ public:
+  void BeginOfEventAction(const G4Event*);
+  void EndOfEventAction(const G4Event*);
+  
+  RunAction* GetRunAction(){return runAction;}
+  
+ private:
+  G4int EventFindStartingVolume(G4ThreeVector vtx);
+  G4int EventFindStoppingVolume(G4String stopVolumeName);
+  G4int FindVolume(G4String volumeName);
+
+ private:
+  //JEC FIXME is it necessary to maintain fAnalysis?
+  Analysis&               fAnalysis;            //the Analysis
+  RunAction*              runAction;            //the Run
+  PrimaryGeneratorAction* generatorAction;      //the Generator 
+  DetectorConstruction*   detectorConstructor;  //the Detector
+
+  AIDA::ITuple*           eventTuple;           //the Event tuple
+
+};
+
+}
+
+#endif
+
+    
Index: /ELYSE/HEAD/ELYSE/HitsCollectionAccessor.h
===================================================================
--- /ELYSE/HEAD/ELYSE/HitsCollectionAccessor.h	(revision 286)
+++ /ELYSE/HEAD/ELYSE/HitsCollectionAccessor.h	(revision 286)
@@ -0,0 +1,19 @@
+#ifndef ELYSE_HitsCollectionAccessor_h
+#define ELYSE_HitsCollectionAccessor_h
+
+// Inheritance :
+#include <G4Lab/HitsCollectionAccessor.h>
+
+namespace ELYSE {
+
+class HitsCollectionAccessor : public G4Lab::HitsCollectionAccessor {
+public: //Slash::Data::IVisualizer
+  virtual void visualize(Slash::Data::IAccessor::Data,void*);
+public:
+  HitsCollectionAccessor(Slash::Core::ISession&,const std::string& = "");
+  virtual ~HitsCollectionAccessor();
+};
+
+}
+
+#endif
Index: /ELYSE/HEAD/ELYSE/IAppManager.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/IAppManager.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/IAppManager.hh	(revision 286)
@@ -0,0 +1,16 @@
+#ifndef ELYSE_IAppManager_hh
+#define ELYSE_IAppManager_hh
+
+namespace ELYSE {
+
+class IAppManager  {
+public:        
+  virtual ~IAppManager() {}
+public:        
+  virtual void closeTree() = 0;
+  virtual bool initialize() = 0;
+};
+
+}
+
+#endif
Index: /ELYSE/HEAD/ELYSE/PhysListEmLivermore.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/PhysListEmLivermore.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PhysListEmLivermore.hh	(revision 286)
@@ -0,0 +1,34 @@
+#ifndef ELYSEPhysListEmLivermore_h
+#define ELYSEPhysListEmLivermore_h 1
+
+#include "G4VPhysicsConstructor.hh"
+#include "globals.hh"
+
+namespace ELYSE {
+
+class PhysListEmLivermore : public G4VPhysicsConstructor {
+ public: 
+  PhysListEmLivermore(const G4String& name = "Livermore");
+  virtual ~PhysListEmLivermore();
+  
+ public: 
+  // This method is dummy for physics
+  void ConstructParticle() {};
+  
+  // This method will be invoked in the Construct() method.
+  // each physics process will be instantiated and
+  // registered to the process manager of each particle type 
+  void ConstructProcess();
+ };
+  
+}
+
+#endif
+
+
+
+
+
+
+
+
Index: /ELYSE/HEAD/ELYSE/PhysListEmPenelope.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/PhysListEmPenelope.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PhysListEmPenelope.hh	(revision 286)
@@ -0,0 +1,33 @@
+#ifndef ELYSEPhysListEmPenelope_h
+#define ELYSEPhysListEmPenelope_h 1
+
+#include "G4VPhysicsConstructor.hh"
+#include "globals.hh"
+
+namespace ELYSE {
+
+class PhysListEmPenelope : public G4VPhysicsConstructor {
+ public: 
+  PhysListEmPenelope(const G4String& name = "Penelope");
+  virtual ~PhysListEmPenelope();
+
+ public: 
+  // This method is dummy for physics
+  void ConstructParticle() {};
+  
+  // This method will be invoked in the Construct() method.
+  // each physics process will be instantiated and
+  // registered to the process manager of each particle type 
+  void ConstructProcess();
+};
+}
+
+#endif
+
+
+
+
+
+
+
+
Index: /ELYSE/HEAD/ELYSE/PhysListEmStandard.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/PhysListEmStandard.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PhysListEmStandard.hh	(revision 286)
@@ -0,0 +1,33 @@
+#ifndef ELYSEPhysListEmStandard_h
+#define ELYSEPhysListEmStandard_h 1
+
+#include "G4VPhysicsConstructor.hh"
+#include "globals.hh"
+
+namespace ELYSE {
+
+class PhysListEmStandard : public G4VPhysicsConstructor {
+ public: 
+  PhysListEmStandard(const G4String& name = "standard");
+  virtual  ~PhysListEmStandard();
+  
+ public: 
+  // This method is dummy for physics
+  void ConstructParticle() {};
+  
+  // This method will be invoked in the Construct() method.
+  // each physics process will be instantiated and
+  // registered to the process manager of each particle type 
+  void ConstructProcess();
+};
+}
+
+#endif
+
+
+
+
+
+
+
+
Index: /ELYSE/HEAD/ELYSE/PhysicsList.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/PhysicsList.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PhysicsList.hh	(revision 286)
@@ -0,0 +1,68 @@
+#ifndef ELYSEPhysicsList_h
+#define ELYSEPhysicsList_h 1
+
+#include "G4VModularPhysicsList.hh"
+#include "globals.hh"
+
+class G4VPhysicsConstructor;
+
+class G4Cerenkov;
+class G4Scintillation;
+class G4OpAbsorption;
+class G4OpRayleigh;
+class G4OpBoundaryProcess;
+
+namespace ELYSE {
+
+class PhysicsListMessenger;
+
+
+class PhysicsList: public G4VModularPhysicsList {
+ public:
+  PhysicsList();
+  virtual ~PhysicsList();
+  
+  void ConstructParticle();
+
+  void ConstructProcess();
+  void ConstructGeneral();
+  void ConstructOp();
+  //JEC not useful but keep it  void ConstructHad();
+  
+  //for the Messenger 
+  void AddPhysicsList(const G4String& name);
+  
+  void SetCuts();
+  void SetCutForGamma(G4double);
+  void SetCutForElectron(G4double);
+  void SetCutForPositron(G4double);
+
+  void SetVerbose(G4int verbose);
+  void SetNbOfPhotonsCerenkov(G4int MaxNumber);
+  
+ private:
+  G4double cutForGamma;
+  G4double cutForElectron;
+  G4double cutForPositron;
+  G4double currentDefaultCut;
+  
+  G4VPhysicsConstructor*  emPhysicsList;
+  G4String emName;
+  
+  
+  PhysicsListMessenger* pMessenger;
+
+ //the processes
+  G4Cerenkov*          theCerenkovProcess;
+  G4Scintillation*     theScintillationProcess;
+  G4OpAbsorption*      theAbsorptionProcess;
+  G4OpRayleigh*        theRayleighScatteringProcess;
+  G4OpBoundaryProcess* theBoundaryProcess;
+
+
+};
+}
+
+
+#endif
+
Index: /ELYSE/HEAD/ELYSE/PhysicsList.hh.sav
===================================================================
--- /ELYSE/HEAD/ELYSE/PhysicsList.hh.sav	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PhysicsList.hh.sav	(revision 286)
@@ -0,0 +1,71 @@
+#ifndef ELYSEPhysicsList_h
+#define ELYSEPhysicsList_h 1
+
+//Geant4
+#include "G4VUserPhysicsList.hh"
+#include "globals.hh"
+
+
+class G4Cerenkov;
+class G4Scintillation;
+class G4OpAbsorption;
+class G4OpRayleigh;
+class G4OpBoundaryProcess;
+
+
+namespace ELYSE {
+
+
+class PhysicsMessenger;
+
+  
+class PhysicsList: public G4VUserPhysicsList {
+ public:
+  PhysicsList();
+  virtual ~PhysicsList();
+  
+ private:
+  PhysicsMessenger* physicsMessenger;
+
+  //the processes
+  G4Cerenkov*          theCerenkovProcess;
+  G4Scintillation*     theScintillationProcess;
+  G4OpAbsorption*      theAbsorptionProcess;
+  G4OpRayleigh*        theRayleighScatteringProcess;
+  G4OpBoundaryProcess* theBoundaryProcess;
+
+ protected:
+  // Construct particle and physics process
+  void ConstructParticle();
+  void ConstructProcess();
+  void SetCuts();
+
+ public:
+  //for the Messenger 
+  void SetVerbose(G4int verbose);
+  void SetNbOfPhotonsCerenkov(G4int MaxNumber);
+  
+ protected:
+  // these methods Construct particles 
+  void ConstructBosons();
+  void ConstructLeptons();
+  void ConstructMesons();
+  void ConstructBaryons();
+  
+ protected:
+  // these methods Construct physics processes and register them
+  void ConstructGeneral();
+  void ConstructEM();
+  void ConstructOp();
+  void ConstructHad();
+};
+
+}
+#endif
+
+
+
+
+
+
+
Index: /ELYSE/HEAD/ELYSE/PhysicsListMessenger.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/PhysicsListMessenger.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PhysicsListMessenger.hh	(revision 286)
@@ -0,0 +1,41 @@
+#ifndef ELYSEPhysicsListMessenger_h
+#define ELYSEPhysicsListMessenger_h 1
+
+#include "globals.hh"
+#include "G4UImessenger.hh"
+
+class G4UIdirectory;
+class G4UIcmdWithADoubleAndUnit;
+class G4UIcmdWithAString;
+class G4UIcmdWithAnInteger;
+
+namespace ELYSE {
+
+class PhysicsList;
+
+class PhysicsListMessenger: public G4UImessenger {
+ public:
+  
+  PhysicsListMessenger(PhysicsList* );
+  virtual ~PhysicsListMessenger();
+  
+  void SetNewValue(G4UIcommand*, G4String);
+  
+ private:
+  
+  PhysicsList*               pPhysicsList;
+  
+  G4UIdirectory*             physDir;    
+  G4UIcmdWithADoubleAndUnit* gammaCutCmd;
+  G4UIcmdWithADoubleAndUnit* electCutCmd;
+  G4UIcmdWithADoubleAndUnit* protoCutCmd;    
+  G4UIcmdWithADoubleAndUnit* allCutCmd;    
+  G4UIcmdWithAString*        pListCmd;
+  G4UIcmdWithAnInteger*      verboseCmd;
+  G4UIcmdWithAnInteger*      cerenkovCmd;
+};
+}
+
+
+#endif
+
Index: /ELYSE/HEAD/ELYSE/PhysicsMessenger.hh.sav
===================================================================
--- /ELYSE/HEAD/ELYSE/PhysicsMessenger.hh.sav	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PhysicsMessenger.hh.sav	(revision 286)
@@ -0,0 +1,35 @@
+#ifndef ELYSEPhysicsMessenger_h
+#define ELYSEPhysicsMessenger_h 1
+
+#include "globals.hh"
+#include "G4UImessenger.hh"
+
+class G4UIdirectory;
+class G4UIcommand;
+class G4UIcmdWithAString;
+class G4UIcmdWithAnInteger;
+
+namespace ELYSE {
+
+class PhysicsList;
+
+class PhysicsMessenger: public G4UImessenger
+{
+public:
+  PhysicsMessenger(PhysicsList*);
+  virtual ~PhysicsMessenger();
+
+  void SetNewValue(G4UIcommand* command, G4String newValue);
+
+private:
+  PhysicsList* ELYSEPhysics;
+
+  G4UIdirectory*      ELYSEDir;
+  G4UIdirectory*      physDir;
+  G4UIcmdWithAnInteger* verboseCmd;
+  G4UIcmdWithAnInteger* cerenkovCmd;
+
+};
+
+}
+#endif
Index: /ELYSE/HEAD/ELYSE/PrimaryGeneratorAction.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/PrimaryGeneratorAction.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PrimaryGeneratorAction.hh	(revision 286)
@@ -0,0 +1,62 @@
+#ifndef ELYSEPrimaryGeneratorAction_h
+#define ELYSEPrimaryGeneratorAction_h
+
+//Geant4
+#include "G4VUserPrimaryGeneratorAction.hh"
+#include "G4ThreeVector.hh"
+#include "globals.hh"
+
+//std
+#include <fstream>
+
+class G4ParticleGun;
+class G4ParticleTable;
+
+namespace ELYSE {
+
+class PrimaryGeneratorMessenger;
+
+class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction {
+ public:
+  PrimaryGeneratorAction();
+  virtual ~PrimaryGeneratorAction();
+  
+public:
+  void GeneratePrimaries(G4Event* anEvent);
+
+  //Accessors for the Messenger
+  void SetBeamPDG(G4int i);
+  void SetBeamName(G4String i);
+  void SetBeamEnergy(G4double i);
+  void SetVtx(G4ThreeVector i);
+  void SetBeamDir(G4ThreeVector i);
+  void SetOptPhotonPolar(G4ThreeVector i);
+
+  G4int GetBeamPDG()         {return beampdg;};
+  G4double GetBeamEnergy()   {return beamenergy;};
+  G4ThreeVector GetVtx()     {return vtx;}
+  G4ThreeVector GetBeamDir() {return beamdir;};
+  G4ThreeVector GetOpPhotonPolar() {return polar;}
+
+private:
+
+  G4ParticleGun*             particleGun;
+  PrimaryGeneratorMessenger* messenger;
+  G4ParticleTable*           particleTable;
+
+ 
+  G4int beampdg;           //code PDG du faisceau
+  G4double beamenergy;     //energy du faisceau
+  G4ThreeVector vtx;       //vertex de l'interaction du faisceau
+  G4ThreeVector beamdir;   //direction du faisceau
+  G4ThreeVector polar;     //optical photon polarization
+
+public:
+};
+
+
+}
+
+#endif
+
+
Index: /ELYSE/HEAD/ELYSE/PrimaryGeneratorMessenger.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/PrimaryGeneratorMessenger.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/PrimaryGeneratorMessenger.hh	(revision 286)
@@ -0,0 +1,41 @@
+#ifndef ELYSEPrimaryGeneratorMessenger_h
+#define ELYSEPrimaryGeneratorMessenger_h 1
+
+//Geant4
+#include "G4UImessenger.hh"
+#include "globals.hh"
+
+class G4UIdirectory;
+class G4UIcmdWithAString;
+class G4UIcmdWithADoubleAndUnit;
+class G4UIcmdWith3Vector;
+class G4UIcmdWith3VectorAndUnit;
+
+namespace ELYSE {
+
+class PrimaryGeneratorAction;
+
+
+class PrimaryGeneratorMessenger: public G4UImessenger {
+ public:
+  PrimaryGeneratorMessenger(PrimaryGeneratorAction* mpga);
+  virtual ~PrimaryGeneratorMessenger();
+  
+ public:
+  void     SetNewValue(G4UIcommand* command, G4String newValues);
+  
+ private:
+  PrimaryGeneratorAction* myAction;
+  
+ private: //commands
+  G4UIdirectory*      ELYSEDir;
+  G4UIcmdWithAString*          particleTypeCmd;
+  G4UIcmdWithADoubleAndUnit*   energyCmd;
+  G4UIcmdWith3Vector*          beamDirectionCmd;
+  G4UIcmdWith3VectorAndUnit*   beamVertexCmd;
+  G4UIcmdWith3Vector*   polarCmd;
+};
+}
+#endif
+
+
Index: /ELYSE/HEAD/ELYSE/RunAction.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/RunAction.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/RunAction.hh	(revision 286)
@@ -0,0 +1,30 @@
+#ifndef ELYSERunAction_h
+#define ELYSERunAction_h 1
+
+//Geant4
+#include "G4UserRunAction.hh"
+
+class G4Run;
+class G4Timer;
+
+namespace ELYSE {
+
+class RunActionMessenger;
+
+class RunAction : public G4UserRunAction {
+public:
+  RunAction();
+  virtual ~RunAction();
+
+public:
+  void BeginOfRunAction(const G4Run* aRun);
+  void EndOfRunAction(const G4Run* aRun);
+
+private:
+
+  RunActionMessenger* messenger;
+
+  G4Timer* timer;
+};
+}
+#endif
Index: /ELYSE/HEAD/ELYSE/RunActionMessenger.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/RunActionMessenger.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/RunActionMessenger.hh	(revision 286)
@@ -0,0 +1,34 @@
+#ifndef ELYSERunActionMessenger_h
+#define ELYSERunActionMessenger_h 1
+
+//Geant4
+#include "G4UImessenger.hh"
+#include "globals.hh"
+
+class G4UIdirectory;
+class G4UIcmdWithAString;
+
+
+//JEC 10/1/06 introduce ELYSE
+namespace ELYSE {
+
+class RunAction;
+
+class RunActionMessenger: public G4UImessenger {
+ public:
+  RunActionMessenger(RunAction* mpga);
+  virtual ~RunActionMessenger();
+  
+ public:
+  void     SetNewValue(G4UIcommand* command, G4String newValues);
+  
+ private:
+  RunAction* ELYSERun;
+  
+ private: //commands
+  G4UIdirectory*      ELYSEIODir;
+};
+}
+#endif
+
+
Index: /ELYSE/HEAD/ELYSE/StackingAction.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/StackingAction.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/StackingAction.hh	(revision 286)
@@ -0,0 +1,29 @@
+#ifndef ELYSEStackingAction_H
+#define ELYSEStackingAction_H 1
+
+//Geant4
+#include "globals.hh"
+#include "G4UserStackingAction.hh"
+
+class G4Track;
+
+namespace ELYSE {
+
+class StackingAction : public G4UserStackingAction {
+
+  public:
+    StackingAction();
+    virtual ~StackingAction();
+
+  public:
+    virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
+    virtual void NewStage();
+    virtual void PrepareNewEvent();
+
+  private:
+    G4int gammaCounter;
+    G4int stage;
+};
+}
+#endif
+
Index: /ELYSE/HEAD/ELYSE/SteppingAction.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/SteppingAction.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/SteppingAction.hh	(revision 286)
@@ -0,0 +1,19 @@
+#ifndef ELYSESteppingAction_H
+#define ELYSESteppingACtion_H 1
+
+//Geant 4
+#include "globals.hh"
+#include "G4UserSteppingAction.hh"
+
+namespace ELYSE {
+
+class SteppingAction : public G4UserSteppingAction {
+ public:
+  SteppingAction();
+  virtual ~SteppingAction();
+  
+  virtual void UserSteppingAction(const G4Step*);
+ 
+};
+}
+#endif
Index: /ELYSE/HEAD/ELYSE/SteppingVerbose.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/SteppingVerbose.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/SteppingVerbose.hh	(revision 286)
@@ -0,0 +1,21 @@
+#ifndef ELYSESteppingVerbose_H
+#define ELYSESteppingVerbose_h 1H
+
+//Geant4
+#include "G4SteppingVerbose.hh"
+
+namespace ELYSE {
+
+class SteppingVerbose : public G4SteppingVerbose {
+ public:
+   
+  SteppingVerbose();
+  virtual ~SteppingVerbose();
+
+  void StepInfo();
+  void TrackingStarted();
+
+};
+
+}
+#endif
Index: /ELYSE/HEAD/ELYSE/TrackInformation.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/TrackInformation.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/TrackInformation.hh	(revision 286)
@@ -0,0 +1,79 @@
+#ifndef ELYSETrackInformation_h
+#define ELYSETrackInformation_h 1
+
+
+#include "globals.hh"
+#include "G4Track.hh"
+#include "G4Allocator.hh"
+#include "G4VUserTrackInformation.hh"
+
+namespace ELYSE {
+
+enum TrackStatus { active=1, hitProduced=2, absorbed=4, boundaryAbsorbed=8,
+		    inactive=14};
+
+/*
+  TrackStatus:
+  active: still being tracked
+  hitProduced: being detected in the Tyvek
+  absorbed: stopped by being absorbed with G4OpAbsorbtion
+  boundaryAbsorbed: stopped by being aborbed with G4OpAbsorbtion
+  inactive: track is stopped for some reason
+   -This is the sum of all stopped flags so can be used to remove stopped flags  
+ 
+   JEC 13/2/07: see if "absorbed" and "boundaryAbsorbed" are similar? see LXe example
+*/
+
+class TrackInformation : public G4VUserTrackInformation {
+
+public:
+  TrackInformation(): saveit(false), drawit(false), status(active) {}
+  TrackInformation(const G4Track*);
+  virtual ~TrackInformation() {}
+  
+  inline void *operator new(size_t);
+  inline void operator delete(void *aTrackInfo);
+  inline int operator ==(const TrackInformation& right) const
+  {return (this==&right);}
+
+  
+  //Sets the track status to s (does not check validity of flags)
+  void SetTrackStatusFlags(G4int s){status=s;}
+  //Does a smart add of track status flags (disabling old flags that conflict)
+  //If s conflicts with itself it will not be detected
+  void AddTrackStatusFlag(G4int s);
+  int GetTrackStatus()  {return status;}
+
+  void SetDrawOption(G4bool b) {drawit = b;}
+  G4bool GetDrawOption() {return drawit;}
+
+  void SetSaveOption(G4bool b) {saveit = b;}
+  G4bool GetSaveOption() {return saveit;}
+
+  void Print() const;
+
+
+private:
+  G4bool saveit; 
+  G4bool drawit;
+  G4int  status; 
+
+};
+}
+
+namespace ELYSE {
+  extern G4Allocator<TrackInformation> aTrackInfoAllocator;
+}
+
+inline void* ELYSE::TrackInformation::operator new(size_t) { 
+  void* aTrackInfo;
+  aTrackInfo = (void*)ELYSE::aTrackInfoAllocator.MallocSingle();
+  return aTrackInfo;
+}
+
+inline void ELYSE::TrackInformation::operator delete(void *aTrackInfo){ 
+  ELYSE::aTrackInfoAllocator.FreeSingle((ELYSE::TrackInformation*)aTrackInfo);
+}
+
+
+#endif
Index: /ELYSE/HEAD/ELYSE/TrackingAction.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/TrackingAction.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/TrackingAction.hh	(revision 286)
@@ -0,0 +1,43 @@
+#ifndef ELYSETrackingAction_h
+#define ELYSETrackingAction_h
+
+//Geant4
+#include "G4UserTrackingAction.hh"
+#include "globals.hh"
+
+//std
+#include <set>
+
+
+class G4Track;
+
+
+namespace ELYSE {
+
+class TrackingActionMessenger;
+
+class TrackingAction : public G4UserTrackingAction {
+ public:
+  TrackingAction();
+  virtual ~TrackingAction();
+
+  void PreUserTrackingAction (const G4Track* aTrack);
+  void PostUserTrackingAction(const G4Track* aTrack);
+
+  
+  void SetDrawOpticalPhoton(bool value) {drawOpticalPhoton = value;}
+
+private:
+  
+  std::set<G4String> ProcessList;  //a list of process one want to keep track
+  std::set<G4int>    ParticleList; //a list of particle to keep anyway
+
+  TrackingActionMessenger* messenger; 
+  G4bool drawOpticalPhoton;
+  
+};
+}
+
+#endif
+
+
Index: /ELYSE/HEAD/ELYSE/TrackingActionMessenger.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/TrackingActionMessenger.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/TrackingActionMessenger.hh	(revision 286)
@@ -0,0 +1,33 @@
+#ifndef ELYSETrackingActionMessenger_h
+#define ELYSETrackingActionMessenger_h 1
+
+#include "globals.hh"
+#include "G4UImessenger.hh"
+
+class G4UIdirectory;
+class G4UIcommand;
+class G4UIcmdWithABool;
+
+namespace ELYSE {
+
+class TrackingAction;
+
+class TrackingActionMessenger:  public G4UImessenger {
+ public:
+  TrackingActionMessenger(TrackingAction*);
+  virtual ~TrackingActionMessenger();
+
+  void SetNewValue(G4UIcommand* command, G4String newValue);
+
+private:
+  TrackingAction* ELYSETrackingAction;
+
+  G4UIdirectory*      ELYSEDir;
+  G4UIcmdWithABool*   drawOpticalPhotonCmd;
+
+};
+}
+
+
+
+#endif
Index: /ELYSE/HEAD/ELYSE/Trajectory.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/Trajectory.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/Trajectory.hh	(revision 286)
@@ -0,0 +1,122 @@
+//JEC FIXME: what a forward declaration like that!!!   class ELYSETrajectory;
+#ifndef ELYSETrajectory_h
+#define ELYSETrajectory_h 1
+
+//Geant4 
+#include "G4VTrajectory.hh"
+#include "G4Allocator.hh"
+#include "G4ios.hh"
+#include "globals.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4TrajectoryPoint.hh"
+#include "G4Track.hh"
+#include "G4Step.hh"
+
+//std
+#include <stdlib.h>
+#include <vector>
+
+
+class G4Polyline;
+
+typedef std::vector<G4VTrajectoryPoint*>  TrajectoryPointContainer;
+
+namespace ELYSE {
+
+
+class Trajectory : public G4VTrajectory {
+
+ public:
+
+  
+  // Constructor/Destrcutor
+   Trajectory();
+   Trajectory(const G4Track* aTrack);
+   Trajectory(Trajectory &);
+
+   virtual ~Trajectory();
+
+  // Operators
+  inline void* operator new(size_t);
+  inline void  operator delete(void*);
+  inline int operator == (const Trajectory& right) const
+  {return (this==&right);} 
+
+  //inherited methods 
+  virtual G4int GetTrackID() const { return fTrackID; }
+  virtual G4int GetParentID() const { return fParentID; }
+  virtual G4String GetParticleName() const { return ParticleName; }
+  virtual G4double GetCharge() const { return PDGCharge; }
+  virtual G4int GetPDGEncoding() const { return PDGEncoding; }
+  virtual G4ThreeVector GetInitialMomentum() const { return initialMomentum; }
+  virtual int GetPointEntries() const { return positionRecord->size(); }
+  virtual G4VTrajectoryPoint* GetPoint(G4int i) const 
+  { return (*positionRecord)[i]; }
+  //JEC FIXME what to do with these Show/Draw routines...
+  virtual void ShowTrajectory(std::ostream& os=G4cout) const;
+  virtual void DrawTrajectory(G4int i_mode=0) const;
+
+  //Used by G.Barrand (not yet 6/4/06)
+  virtual const std::map<G4String,G4AttDef>* GetAttDefs() const;
+  virtual std::vector<G4AttValue>* CreateAttValues() const;
+
+
+  //Other Get/Set
+  G4ParticleDefinition* GetParticleDefinition();
+
+  inline G4String GetCreatorProcessName() const { return creatorProcess; }
+  inline G4double GetGlobalTime() const { return globalTime; }
+
+  inline G4bool GetSaveFlag() const { return SaveIt; }
+  inline void SetSaveFlag(G4bool value) { SaveIt = value; }
+
+  inline G4ThreeVector GetStoppingPoint() const { return stoppingPoint; }
+  inline void SetStoppingPoint(G4ThreeVector& currentPosition) 
+  { stoppingPoint = currentPosition;}
+
+  inline G4VPhysicalVolume* GetStoppingVolume() const { return stoppingVolume;}
+  inline void SetStoppingVolume(G4VPhysicalVolume* currentVolume)
+  { stoppingVolume = currentVolume;}
+
+
+  // Other member functions
+  virtual void AppendStep(const G4Step* aStep);
+  virtual void MergeTrajectory(G4VTrajectory* secondTrajectory);
+
+ private:
+
+  TrajectoryPointContainer* positionRecord;
+  G4int                     fTrackID;
+  G4int                     fParentID;
+  G4int                     PDGEncoding;
+  G4double                  PDGCharge;
+  G4String                  ParticleName;
+  G4ThreeVector             initialMomentum;
+
+  G4ThreeVector             stoppingPoint;
+  G4VPhysicalVolume         *stoppingVolume;
+
+  G4bool                    SaveIt;
+  G4String                  creatorProcess;
+  G4double                  globalTime;
+};
+}
+
+namespace ELYSE {
+  extern G4Allocator<Trajectory> myTrajectoryAllocator;
+}
+
+inline void* ELYSE::Trajectory::operator new(size_t)
+{
+  void* aTrajectory;
+  aTrajectory = (void*)ELYSE::myTrajectoryAllocator.MallocSingle();
+  return aTrajectory;
+}
+
+inline void ELYSE::Trajectory::operator delete(void* aTrajectory)
+{
+  ELYSE::myTrajectoryAllocator.FreeSingle((ELYSE::Trajectory*)aTrajectory);
+}
+
+#endif
+
Index: /ELYSE/HEAD/ELYSE/TrappVolHit.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/TrappVolHit.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/TrappVolHit.hh	(revision 286)
@@ -0,0 +1,89 @@
+#ifndef ELYSETrappVolHit_h
+#define ELYSETrappVolHit_h 1
+
+//Geant4
+#include "G4VHit.hh"
+#include "G4THitsCollection.hh"
+#include "G4Allocator.hh"
+#include "G4ThreeVector.hh"
+#include "G4ios.hh"
+
+class G4VSolid;
+
+namespace ELYSE {
+
+class TrappVolHit : public G4VHit {
+ public:
+  
+  TrappVolHit();
+  virtual ~TrappVolHit();
+  
+  inline void* operator new(size_t);
+  inline void  operator delete(void*);
+  
+  //dump
+  void Print();
+
+  //Used by GB for visualisation
+  virtual const std::map<G4String,G4AttDef>* GetAttDefs() const;
+  virtual std::vector<G4AttValue>* CreateAttValues() const;
+  
+ public:
+  
+  void SetTime(G4double hitTime)          { time = hitTime; }
+  void SetEtot(G4double hitEnergy)        { eTot = hitEnergy; }
+  void SetCoordinates(const G4ThreeVector& hitPosition) { position = hitPosition;}
+  void SetTrkId(G4int trackID)            { trkId = trackID; }
+  void SetParentId(G4int trackParentID)   { parentId = trackParentID; }
+  void SetPDGEncoding(G4int trackPDGcode) { pdg = trackPDGcode; }
+  void SetEdep(G4double energyDeposition) { edep = energyDeposition; }
+
+  G4double GetTime() const                    { return time; }
+  G4double GetEtot() const                    { return eTot; }
+  const G4ThreeVector& GetCoordinates() const { return position; }
+  G4int GetTrkId() const                      { return trkId; }
+  G4int GetParentId() const                   { return parentId; }
+  G4int GetPDGEncoding() const                { return pdg; }
+  G4double GetEdep() const                    { return edep; }
+  
+ private:
+  //forbid copy & assignment
+  TrappVolHit(const TrappVolHit&);
+  const TrappVolHit& operator=(const TrappVolHit&);
+
+ private:
+
+  //for visualisation
+  G4VSolid*     virtualSolid; //a Box to represent the hit
+  //data
+  G4double      time;      //time of hit creation
+  G4double      eTot;      //Total energy of the particle creating the hit
+  G4ThreeVector position;  //position of the hit
+  G4int         trkId;     //Id of the particle
+  G4int         parentId;  //Id of the parent of the particle
+  G4int         pdg;       //PDG code of the particle
+  G4double      edep;      //Energy deposit
+  
+
+};
+}
+
+//----------------------------------------------------------------
+
+//JEC 10/1/06 introduce ELYSE
+namespace ELYSE {
+  typedef G4THitsCollection<TrappVolHit> TrappVolHitsCollection;
+  extern G4Allocator<TrappVolHit> TrappVolHitAllocator;
+}
+
+inline void* ELYSE::TrappVolHit::operator new(size_t) {
+  void *aHit;
+  aHit = (void *) ELYSE::TrappVolHitAllocator.MallocSingle();
+  return aHit;
+}
+
+inline void ELYSE::TrappVolHit::operator delete(void *aHit) {
+  ELYSE::TrappVolHitAllocator.FreeSingle((ELYSE::TrappVolHit*) aHit);
+}
+
+#endif
Index: /ELYSE/HEAD/ELYSE/TrappingVolume.hh
===================================================================
--- /ELYSE/HEAD/ELYSE/TrappingVolume.hh	(revision 286)
+++ /ELYSE/HEAD/ELYSE/TrappingVolume.hh	(revision 286)
@@ -0,0 +1,39 @@
+#ifndef ELYSETrappingVolume_h
+#define ELYSETrappingVolume_h 1
+
+//Geant4
+#include "G4VSensitiveDetector.hh"
+
+//ELYSE
+#include "ELYSE/TrappVolHit.hh"
+
+class G4Step;
+class G4HCofThisEvent;
+
+namespace ELYSE {
+
+class DetectorConstruction;
+
+
+class TrappingVolume : public G4VSensitiveDetector {
+ public:
+  TrappingVolume(G4String, DetectorConstruction*); //JEC 25/1/06
+  virtual ~TrappingVolume();
+  
+  void   Initialize(G4HCofThisEvent*);
+  G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+  G4bool ProcessHits_constStep(const G4Step*, G4TouchableHistory*);
+  void   EndOfEvent(G4HCofThisEvent*);
+  
+ private:
+
+  TrappVolHitsCollection* hitsCollection;
+  G4int HCID;
+  
+  DetectorConstruction* ELYSEDetConstruction;
+
+};
+
+}
+#endif
+
Index: /ELYSE/HEAD/applications/DigitsCollectionAccessor.cxx
===================================================================
--- /ELYSE/HEAD/applications/DigitsCollectionAccessor.cxx	(revision 286)
+++ /ELYSE/HEAD/applications/DigitsCollectionAccessor.cxx	(revision 286)
@@ -0,0 +1,113 @@
+// this :
+#include <ELYSE/HitsCollectionAccessor.h>
+
+// Inventor :
+#include <Inventor/nodes/SoSeparator.h>
+#include <Inventor/nodes/SoTransform.h>
+#include <Inventor/nodes/SoLightModel.h>
+#include <Inventor/nodes/SoDrawStyle.h>
+
+#include <Inventor/nodes/SoCube.h> //FIXME
+
+// HEPVis :
+#include <HEPVis/misc/SoStyleCache.h>
+#include <HEPVis/nodes/SoHighlightMaterial.h>
+
+#ifdef WIN32
+#undef pascal // Clash between windef.h and Geant4/SystemOfUnits.hh
+#endif
+
+// Geant4 :
+#include <G4LogicalVolume.hh>
+#include <G4Colour.hh>
+
+// Lib :
+#include <Lib/smanip.h>
+
+// G4Lab :
+#include <G4Lab/Transform3D.h>
+
+//////////////////////////////////////////////////////////////////////////////
+ELYSE::HitsCollectionAccessor::HitsCollectionAccessor(
+ Slash::Core::ISession& aSession
+,const std::string& aHC
+)
+:G4Lab::HitsCollectionAccessor(aSession,aHC)
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+ELYSE::HitsCollectionAccessor::~HitsCollectionAccessor(
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE::HitsCollectionAccessor::visualize(
+ Slash::Data::IAccessor::Data aData
+,void*
+) 
+//////////////////////////////////////////////////////////////////////////////
+// The hit must have the "LV" and "TSF" AttDef.
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  G4VHit* obj = (G4VHit*)aData;  
+  G4LogicalVolume* lv = hitLogicalVolume(*obj);
+  if(!lv) return;
+  G4Transform3D* tsf = hitTransform3D(*obj);
+  if(!tsf) return;
+  G4VSolid* solid = lv->GetSolid();
+  if(!solid) return;
+  //G4Material* material = lv->GetMaterial();
+
+  SoSeparator* separator = new SoSeparator;
+  separator->setName("sceneGraph");
+      
+ {G4Colour color;
+  if(hitColor(*obj,color)) {
+    SbColor sbColor((float)color.GetRed(),
+                    (float)color.GetGreen(),
+                    (float)color.GetBlue());
+    float transp = 1.0F - (float)color.GetAlpha();
+    SoStyleCache* styleCache = fSoGC.getStyleCache();
+    separator->addChild(
+      styleCache->getHighlightMaterial
+        (sbColor,fSoGC.getHighlightColor(),transp));
+  } else {
+    separator->addChild(fSoGC.getHighlightMaterial());
+  }
+  separator->addChild(fSoGC.getDrawStyle());
+  separator->addChild(fSoGC.getLightModel());}
+
+ {SoTransform* transform = new SoTransform;
+  G4Lab::Transform3D* t = new G4Lab::Transform3D(*tsf);
+  SbMatrix* matrix = t->getMatrix();
+  transform->setMatrix(*matrix);
+  delete matrix;
+  delete t;
+  separator->addChild(transform);}
+          
+  // Build name (for picking) :
+  std::string s;
+  Lib::smanip::printf(s,128,"%s/0x%lx",HCName().c_str(),(unsigned long)obj);
+  SbName name(s.c_str());
+
+  // Representation :
+
+  //FIXME
+
+  //FIXME : PM base size :
+  double WCPMTRadius           = 0.10*m;  // 20-cm PMTs (8-inch)
+
+  SoCube* soCube = new SoCube;
+  soCube->width.setValue(WCPMTRadius);
+  soCube->height.setValue(WCPMTRadius);
+  soCube->depth.setValue(WCPMTRadius);
+  soCube->setName(name);
+        
+  separator->addChild(soCube);
+          
+  fSoRegion->doIt(SbAddNode(separator,"dynamicScene"));
+}
Index: /ELYSE/HEAD/applications/ELYSE_analysis.cxx
===================================================================
--- /ELYSE/HEAD/applications/ELYSE_analysis.cxx	(revision 286)
+++ /ELYSE/HEAD/applications/ELYSE_analysis.cxx	(revision 286)
@@ -0,0 +1,517 @@
+// AIDA analysis program over ELYSE.root file.
+
+// AIDA :
+#include <AIDA/AIDA.h>
+#include <AIDA/ITupleEntry.h>
+
+// std :
+#include <iostream>
+
+// Lib :
+#include <Lib/smanip.h>
+
+//////////////////////////////////////////////////////////////////////////////
+AIDA::ITuple* cast_Tuple(
+ AIDA::ITupleEntry* aEntry
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  //FIXME : CINT can't handle dynamic_cast :
+  //return (AIDA::ITuple*)aEntry->cast("AIDA::ITuple");
+
+  return dynamic_cast<AIDA::ITuple*>(aEntry);
+}
+//////////////////////////////////////////////////////////////////////////////
+bool get_XYZ(
+ AIDA::ITuple& aParent
+,int aColumn
+,double& aX
+,double& aY
+,double& aZ
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(aColumn);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  tuple->start();
+  if(!tuple->next()) return false;
+
+  aX = tuple->getDouble(0);
+  aY = tuple->getDouble(1);
+  aZ = tuple->getDouble(2);
+
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+bool dump_tracks(
+ AIDA::ITuple& aParent
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(8);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  //if(nPart!=tracks->rows()) {
+  //  std::cout << "read: nPart / tracks mismatch " 
+  //              << nPart << " " << tracks->rows() << std::endl;
+  //  return false;
+  //}
+
+  tuple->start();
+  int irow = 0;
+  while(tuple->next()) {
+
+    int pId = tuple->getInt(0);
+    int parent = tuple->getInt(1);
+    float timeStart = tuple->getFloat(2);
+
+    double dx,dy,dz;
+    if(!get_XYZ(*tuple,3,dx,dy,dz)) return false;
+
+    double mass = tuple->getDouble(4);
+    double pTot = tuple->getDouble(5);
+    double ETot = tuple->getDouble(6);
+
+    double px,py,pz;
+    if(!get_XYZ(*tuple,7,px,py,pz)) return false;
+
+    double start_x,start_y,start_z;
+    if(!get_XYZ(*tuple,8,start_x,start_y,start_z)) return false;
+
+    double stop_x,stop_y,stop_z;
+    if(!get_XYZ(*tuple,9,stop_x,stop_y,stop_z)) return false;
+
+    int startVol = tuple->getInt(10);
+    int stopVol = tuple->getInt(11);
+
+    std::cout << "----> Tk{"<<irow<<"}: " 
+              << " pId " << pId
+              << " parent " << parent
+              << " creation time " << timeStart 
+              << " Volumes " << startVol << " " << stopVol << "\n"
+              << " Start Pos (" << start_x 
+              << "," << start_y << "," << start_z << ")\n"
+              << " Stop Pos (" << stop_x 
+              << "," << stop_y << "," << stop_z << ")\n"
+              << " dx,dy,dz " << dx << " " << dy << " " << dz << "\n"
+              << " m " << mass
+              << " ETot " << ETot
+              << " pTot " << pTot
+              << " px,py,pz " << px << " " << py << " " << pz << "\n"
+              << std::endl;
+
+    irow++;
+  }
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+bool process_hits_times(
+ AIDA::ITuple& aParent
+,AIDA::IHistogram1D& aHisto
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(2);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  tuple->start();
+  while(tuple->next()) {
+
+    float time = tuple->getFloat(0);
+
+    aHisto.fill(time);
+  }
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+bool process_hits(
+ AIDA::ITuple& aParent
+,AIDA::IHistogram1D& aHisto
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(10);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  tuple->start();
+  while(tuple->next()) {
+
+    //int tubeId = tuple->getInt(0);
+    //int totalPE = tuple->getInt(1);
+
+    if(!process_hits_times(*tuple,aHisto)) return false;
+  }
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+bool process_digits(
+ AIDA::ITuple& aParent
+,AIDA::IHistogram2D& aHisto
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(13);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  tuple->start();
+  while(tuple->next()) {
+
+    //int tubeId = tuple->getInt(0);
+    double pe = tuple->getDouble(1);
+    double time = tuple->getDouble(2);
+    //printf("debug : ++++ : %g %g\n",time,pe);
+
+    aHisto.fill(time,pe);
+  }
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+void set_region_style(
+ AIDA::IPlotterRegion& aRegion
+) 
+//////////////////////////////////////////////////////////////////////////////
+// Taken from G4SPL_analysis.cxx.
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  //FIXME : have to do the below with AIDA styles.
+
+  // ROOT is in NDC, then we take a plotter with width = height = 1
+
+  // PAW :
+  //float XSIZ = 20.0F;
+  //float XLAB = 1.4F;
+  //float YSIZ = 20.0F;
+  //float YLAB = 1.4F;
+
+  float XLAB = 1.4F/20.0F; //0.07 //x distance of y title to data frame.
+  float YLAB = 0.8F/20.0F; //0.04 //y distance of x title to data frame.
+  YLAB = 0.05F; //FIXME : cooking.
+
+  // To have a good matching with ROOT for text size :
+  //double majic = 0.014/0.027;
+  double majic = 0.6;
+  std::string s = Lib::smanip::tostring(majic);
+  //FIXME : have methods for the below :
+  aRegion.style().setParameter("textScale",s);
+  aRegion.style().xAxisStyle().setParameter("magStyle.scale",s);
+  aRegion.style().yAxisStyle().setParameter("magStyle.scale",s);
+  aRegion.style().xAxisStyle().tickLabelStyle().setParameter("scale",s);
+  aRegion.style().xAxisStyle().labelStyle().setParameter("scale",s);
+  aRegion.style().yAxisStyle().tickLabelStyle().setParameter("scale",s);
+  aRegion.style().yAxisStyle().labelStyle().setParameter("scale",s);
+
+  // ROOT def margins 0.1. SoPlotter def 0.1.
+  aRegion.layout().setParameter("rightMargin",0.1);
+  aRegion.layout().setParameter("topMargin",0.1);
+  //gStyle->SetPadBottomMargin(0.15);
+  aRegion.layout().setParameter("leftMargin",0.15);
+  //gStyle->SetPadLeftMargin(0.15);
+  aRegion.layout().setParameter("bottomMargin",0.15);
+
+  aRegion.style().setParameter("superposeBins","TRUE");
+  aRegion.setParameter("plotter.wallStyle.visible","FALSE");
+  aRegion.setParameter("plotter.gridStyle.visible","FALSE");
+
+  //std::string font = "Hershey"; //PAW font.
+  //std::string font = "TTF/arialbd"; //Default ROOT font 62.
+  //std::string font = "TTF/couri";
+  std::string font = "TTF/times"; //= ROOT 132 ?
+  //std::string smoothing = "FALSE";
+  std::string smoothing = "TRUE";
+
+  // X axis :
+  aRegion.style().xAxisStyle().tickLabelStyle().setFont(font);
+  aRegion.style().xAxisStyle().tickLabelStyle().setParameter("smoothing",smoothing);
+  aRegion.style().xAxisStyle().labelStyle().setFont(font);
+  aRegion.style().xAxisStyle().labelStyle().setParameter("smoothing",smoothing);
+  aRegion.setParameter("plotter.xAxis.magStyle.fontName",font);
+  aRegion.setParameter("plotter.xAxis.magStyle.smoothing",smoothing);
+  aRegion.style().xAxisStyle().lineStyle().setThickness(2);
+  aRegion.setParameter("plotter.xAxis.ticksStyle.width","2");
+  aRegion.style().setParameter("topAxisVisible","TRUE");
+  // Set hplot tick modeling :
+  aRegion.style().xAxisStyle().setParameter("modeling","hplot");
+  aRegion.style().xAxisStyle().setParameter("divisions","505");
+
+  // Y axis :
+  //aRegion.style().setParameter("yAxisLogScale","TRUE");
+  aRegion.style().yAxisStyle().tickLabelStyle().setFont(font);
+  aRegion.style().yAxisStyle().tickLabelStyle().setParameter("smoothing",smoothing);
+  aRegion.style().yAxisStyle().labelStyle().setFont(font);
+  aRegion.style().yAxisStyle().labelStyle().setParameter("smoothing",smoothing);
+  aRegion.setParameter("plotter.yAxis.magStyle.fontName",font);
+  aRegion.setParameter("plotter.yAxis.magStyle.smoothing",smoothing);
+  aRegion.style().yAxisStyle().lineStyle().setThickness(2);
+  aRegion.setParameter("plotter.yAxis.ticksStyle.width","2");
+
+  //gStyle->SetTitleSize(0.06,"XYZ"); //ROOT def 0.04. SoPlotter : 0.014
+  aRegion.setParameter("plotter.xAxis.titleHeight","0.06");
+  aRegion.setParameter("plotter.yAxis.titleHeight","0.06");
+  //gStyle->SetLabelOffset(0.01,"Y"); //ROOT def 0.005. SoPlotter def 0.02
+  aRegion.setParameter("plotter.yAxis.labelToAxis","0.01");
+  //gStyle->SetTitleOffset(1.1,"Y");
+  aRegion.setParameter("plotter.yAxis.titleToAxis",
+   Lib::smanip::tostring(1.1*XLAB));
+  aRegion.setParameter("plotter.xAxis.titleToAxis",
+   Lib::smanip::tostring(1.1*YLAB));
+  //gStyle->SetLabelSize(0.05,"XYZ"); //ROOT def 0.04. SoPlotter def 0.014.
+  aRegion.setParameter("plotter.yAxis.labelHeight","0.05");
+  aRegion.setParameter("plotter.xAxis.labelHeight","0.05");
+
+  aRegion.style().setParameter("rightAxisVisible","TRUE");
+  // Set hplot tick modeling :
+  aRegion.style().yAxisStyle().setParameter("modeling","hplot");
+  aRegion.style().yAxisStyle().setParameter("divisions","505");
+
+  // title :
+  aRegion.style().setParameter("titleHeight","0.04");
+  aRegion.style().setParameter("titleToAxis","0.02");
+  aRegion.style().titleStyle().textStyle().setFont(font);
+  aRegion.style().titleStyle().textStyle().setParameter("smoothing",smoothing);
+  aRegion.style().titleStyle().textStyle().setColor("0 0 1");
+
+  // legend box :
+  aRegion.setParameter("legendRegionVisible","TRUE");
+  aRegion.setParameter("legendRegion.viewportRegion.backgroundColor","1 1 0");
+  aRegion.setParameter("legendRegionSize","0.15 0.16");
+  aRegion.setParameter("legendRegionOrigin","0.1 0.1");
+  aRegion.setParameter("legendRegion.horizontalMargin","2");
+  aRegion.setParameter("legendRegion.verticalMargin","2");
+
+  // Frame :
+  aRegion.setParameter("plotter.innerFrameStyle.lineWidth","2");
+}
+//////////////////////////////////////////////////////////////////////////////
+bool plot(
+ AIDA::IAnalysisFactory& aAIDA
+,AIDA::IHistogram1D& aHisto1D
+,AIDA::IHistogram2D& aHisto2D
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  std::string header = "ELYSE_analysis : ";
+
+  AIDA::IPlotterFactory* plotterFactory = 
+    aAIDA.createPlotterFactory(0,0);
+  if(!plotterFactory) {
+    std::cout << header << "can't get a PlotterFactory." << std::endl;
+    return false;
+  }
+    
+  AIDA::IPlotter* plotter = plotterFactory->create();
+  if(!plotter) {
+    std::cout << header << "can't get a plotter." << std::endl;
+    return false;
+  }
+    
+  plotter->clearRegions();
+  plotter->createRegions(1,2,0);
+
+ {plotter->setCurrentRegionNumber(0);
+  AIDA::IPlotterRegion& region = plotter->currentRegion();
+  set_region_style(region);
+  region.style().xAxisStyle().setLabel("time");
+  region.style().yAxisStyle().setLabel("Entries");
+  region.plot(aHisto1D);}
+
+ {plotter->setCurrentRegionNumber(1);
+  AIDA::IPlotterRegion& region = plotter->currentRegion();
+  set_region_style(region);
+  region.style().xAxisStyle().setLabel("time");
+  region.style().yAxisStyle().setLabel("PE");
+  region.plot(aHisto2D);}
+
+  plotter->show();
+
+  /* FIXME : try to have multiple plotters in the tab stack :
+ {AIDA::IPlotter* plotter = plotterFactory->create("Viewer_2");
+  if(!plotter) {
+    std::cout << header << "can't get a plotter." << std::endl;
+    return false;
+  }
+  plotter->clearRegions();
+  plotter->createRegions(1,1,0);}
+  */
+
+  plotter->interact();
+
+  delete plotter;
+  delete plotterFactory;
+
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+int main(int aArgc,char** aArgv) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  std::string program = "ELYSE_analysis";
+  std::string header = program + " : ";
+
+  AIDA::IAnalysisFactory* aida = AIDA_createAnalysisFactory();
+  if(!aida) {
+    std::cout << header << "AIDA not found." << std::endl;
+    return 1;
+  }
+
+  AIDA::ITreeFactory* treeFactory = aida->createTreeFactory();
+  if(!treeFactory) {
+    std::cout << header << "can't get a TreeFactory." << std::endl;
+    return 1;
+  }
+
+  ////////////////////////////////////////////////////////
+  // Create histograms in memory tree ////////////////////
+  ////////////////////////////////////////////////////////
+  AIDA::ITree* memory = treeFactory->create();
+  if(!memory) {
+    std::cout << header << "can't get memory tree." << std::endl;
+    return 1;
+  }
+  AIDA::IHistogramFactory* histogramFactory = 
+    aida->createHistogramFactory(*memory);
+  if(!histogramFactory) {
+    std::cout << header << "can't get an histogram factory." << std::endl;
+    return 1;
+  }
+  
+  AIDA::IHistogram1D* hits_times = 
+    histogramFactory->createHistogram1D("hits_times","Hits times",100,0,3000);
+  if(!hits_times) {
+    std::cout << header 
+              << "can't create histogram : time." 
+              << std::endl;
+    return 1;
+  }
+
+  AIDA::IHistogram2D* digits_time_pe = 
+    histogramFactory->createHistogram2D("digits_pe_time","Digits PE time",
+					100,0,3000,100,0,10);
+  if(!digits_time_pe) {
+    std::cout << header 
+              << "can't create histogram : digits_time_pe." 
+              << std::endl;
+    return 1;
+  }
+
+  delete histogramFactory;
+
+  ////////////////////////////////////////////////////////
+  /// Read data //////////////////////////////////////////
+  ////////////////////////////////////////////////////////
+
+  std::string fmt = (aArgc>=2?aArgv[1]:"root"); //file extension
+
+  AIDA::ITree* tree = treeFactory->create("ELYSE."+fmt,fmt,true,false);
+  if(!tree) {
+    std::cout << header << "can't open data file." << std::endl;
+    return 1;
+  }
+
+  AIDA::IManagedObject* object = tree->find("Event");
+  if(!object) {
+    std::cout << header 
+              << "object Event not found in tree." 
+              << std::endl;
+    return 1;
+  }
+  //FIXME : CINT can't handle dynamic_cast :
+  //AIDA::ITuple* tuple = (AIDA::ITuple*)object->cast("AIDA::ITuple");
+  AIDA::ITuple* tuple = dynamic_cast<AIDA::ITuple*>(object);
+  if(!tuple) {
+    std::cout << header << "object not an AIDA::ITuple." << std::endl;
+    return 1;
+  }
+
+  int coln = tuple->columns();
+  for(int index=0;index<coln;index++) {
+    std::cout << header 
+              << " icol = " << index
+              << ", label = " << tuple->columnName(index) 
+              << ", type = " << tuple->columnType(index) 
+              << std::endl;
+  }
+
+  std::cout << header << "rows = " << tuple->rows() << std::endl;
+
+  int nentries = tuple->rows();
+  //nentries = 100000;
+  //nentries = 40;
+  std::cout << header 
+            << "traitements de " << nentries << " entrees" 
+            << std::endl;
+
+  int irow = 0;
+  tuple->start();
+  while(tuple->next() && (irow<nentries)) {
+
+    /*
+    int eventId = tuple->getInt(0);
+    //int inputEvtId = tuple->getInt(1);
+    //int interMode = tuple->getInt(2);
+    //int vtxVol = tuple->getInt(3);
+
+    int nPart = tuple->getInt(5);
+    //int leptonIndex = tuple->getInt(6);
+    //int protonIndex = tuple->getInt(7);
+
+    int nHits = tuple->getInt(9);
+    int nDigits = tuple->getInt(11);
+    double sumPE = tuple->getDouble(12);
+
+    std::cout << ">>>>>>>>>>>>> Event{" << irow << "}: "
+    	      << " evt Id " << eventId 
+    //	      << " evt Input Id " << inputEvtId
+    //	      << "\n interaction mode " << interMode
+    //	      << " start in volume " << vtxVol << "\n"
+    	      <<" #tracks: " << nPart
+    	      <<" #hits: " << nHits
+              <<" #digits: " << nDigits
+              <<" sumPE " << sumPE
+    	      << std::endl;
+    */
+
+    //if(!dump_tracks(*tuple)) return 1;
+
+    if(!process_hits(*tuple,*hits_times)) return 1;
+    if(!process_digits(*tuple,*digits_time_pe)) return 1;
+
+    irow++;
+  }
+
+  delete tree;
+  delete treeFactory;
+
+  plot(*aida,*hits_times,*digits_time_pe);
+
+  delete aida;
+
+  return 0;
+}
Index: /ELYSE/HEAD/applications/ELYSE_analysis_ROOT.cxx
===================================================================
--- /ELYSE/HEAD/applications/ELYSE_analysis_ROOT.cxx	(revision 286)
+++ /ELYSE/HEAD/applications/ELYSE_analysis_ROOT.cxx	(revision 286)
@@ -0,0 +1,33 @@
+//
+// Compiled version of the interpreted
+//   ../scripts/ROOT/analysis.C
+//
+
+// To read data :
+#include <TFile.h>
+#include <TTree.h>
+
+// To have histos :
+#include <TH1D.h>
+#include <TH2D.h>
+
+// To plot histos :
+#include <TCanvas.h>
+#include <TSystem.h>
+#include <TApplication.h>
+
+#include <iostream>
+
+#include "../scripts/ROOT/analysis.C"
+
+int main(int aArgc,char* aArgv[]) {
+  ROOT::GetROOT();
+  
+  new TApplication("ELYSE_analysis_ROOT",&aArgc,aArgv);
+
+  analysis();
+
+  gSystem->Run();
+
+  return 1;
+}
Index: /ELYSE/HEAD/applications/ELYSE_analysis_aida_ROOT.cxx
===================================================================
--- /ELYSE/HEAD/applications/ELYSE_analysis_aida_ROOT.cxx	(revision 286)
+++ /ELYSE/HEAD/applications/ELYSE_analysis_aida_ROOT.cxx	(revision 286)
@@ -0,0 +1,35 @@
+//
+// Compiled version of the interpreted
+//   ../scripts/ROOT/aida_ROOT.C
+// which uses OpenScienitst/AIDA to read a ELYSE.root
+// file and the TH* for the histogramming and plotting.
+//
+
+#include <AIDA/IAnalysisFactory.h>
+#include <AIDA/ITreeFactory.h>
+#include <AIDA/ITree.h>
+#include <AIDA/IManagedObject.h>
+#include <AIDA/ITupleEntry.h>
+#include <AIDA/ITuple.h>
+
+#include <TH1D.h>
+#include <TH2D.h>
+#include <TCanvas.h>
+#include <TSystem.h>
+#include <TApplication.h>
+
+#include <iostream>
+
+#include "../scripts/ROOT/aida_ROOT.C"
+
+int main(int aArgc,char* aArgv[]) {
+  ROOT::GetROOT();
+  
+  new TApplication("ELYSE_analysis_aida_ROOT",&aArgc,aArgv);
+
+  aida_ROOT();
+
+  gSystem->Run();
+
+  return 1;
+}
Index: /ELYSE/HEAD/applications/ELYSE_batch.cxx
===================================================================
--- /ELYSE/HEAD/applications/ELYSE_batch.cxx	(revision 286)
+++ /ELYSE/HEAD/applications/ELYSE_batch.cxx	(revision 286)
@@ -0,0 +1,108 @@
+// Geant4:
+#include "G4ios.hh"
+#include "G4RunManager.hh"
+#include "G4UImanager.hh"
+
+//ELYSE:
+#include "ELYSE/Analysis.hh"
+#include "ELYSE/SteppingVerbose.hh"
+#include "ELYSE/DetectorConstruction.hh"
+#include "ELYSE/PhysicsList.hh"
+#include "ELYSE/PrimaryGeneratorAction.hh"
+#include "ELYSE/EventAction.hh"
+#include "ELYSE/RunAction.hh"
+#include "ELYSE/StackingAction.hh"
+#include "ELYSE/TrackingAction.hh"
+#include "ELYSE/SteppingAction.hh"
+
+
+//JEC AIDA :
+#include <AIDA/IAnalysisFactory.h>
+
+// std::
+#include <iostream>
+
+//JEC Lib :
+#include <Lib/System.h>
+
+//////////////////////////////////////////////////////////////////////////////
+int main(
+ int aArgc 
+,char** aArgv
+)
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  std::string arg1 = (aArgc>=2?aArgv[1]:"");
+
+  //AIDA Analysis factory
+  AIDA::IAnalysisFactory* aida = AIDA_createAnalysisFactory();
+  if(!aida) {
+    std::cout << "ELYSE_batch :"
+              << " AIDA not found." << std::endl;
+  }
+  //Book all the histo, tuple 
+  ELYSE::Analysis* analysis = new ELYSE::Analysis(aida,arg1);
+ 
+  // User Verbose output class
+  //
+  G4VSteppingVerbose* verbosity = new ELYSE::SteppingVerbose;
+  G4VSteppingVerbose::SetInstance(verbosity);
+ 
+  // Construct the default run manager
+  G4RunManager* runManager = new G4RunManager;
+  
+
+  // UserInitialization classes (mandatory)
+
+
+  ELYSE::DetectorConstruction* ELYSEdetector =  new ELYSE::DetectorConstruction(); 
+
+  runManager->SetUserInitialization(ELYSEdetector);
+
+  runManager->SetUserInitialization(new ELYSE::PhysicsList);
+
+  G4UImanager* UI = G4UImanager::GetUIpointer();
+  if (UI) {
+    std::string file = 
+      Lib::System::getenv("ELYSEROOT")+"/scripts/Geant4/jobOptions.mac"; //JEC FIXME this comes from JHF
+    UI->ApplyCommand("/control/execute "+file);  
+  }
+
+
+  // Set user action classes
+  ELYSE::PrimaryGeneratorAction* myGeneratorAction = new ELYSE::PrimaryGeneratorAction();
+  runManager->SetUserAction(myGeneratorAction);
+
+  ELYSE::RunAction* myRunAction = new ELYSE::RunAction();
+  runManager->SetUserAction(myRunAction);
+
+  runManager->SetUserAction(new ELYSE::EventAction(*analysis,
+						   myRunAction, 
+						   ELYSEdetector,
+						   myGeneratorAction));
+  runManager->SetUserAction(new ELYSE::TrackingAction);
+
+  runManager->SetUserAction(new ELYSE::StackingAction);
+  runManager->SetUserAction(new ELYSE::SteppingAction);
+
+  // Initialize G4 kernel
+  runManager->Initialize();
+
+  if (UI) {
+    std::string file = 
+      Lib::System::getenv("ELYSEROOT")+"/scripts/Geant4/init.g4m";
+    UI->ApplyCommand("/control/execute "+file);  
+  }
+
+
+  runManager->BeamOn(1);
+
+
+  delete runManager;
+  delete analysis;
+  delete aida;
+  return 0;
+}
+
+
Index: /ELYSE/HEAD/applications/ELYSE_session.cxx
===================================================================
--- /ELYSE/HEAD/applications/ELYSE_session.cxx	(revision 286)
+++ /ELYSE/HEAD/applications/ELYSE_session.cxx	(revision 286)
@@ -0,0 +1,204 @@
+
+// Geant4:
+#include <G4ios.hh>
+#include <G4RunManager.hh>
+#include <G4UImanager.hh>
+#include <G4SDManager.hh>
+
+//AIDA :
+#include <AIDA/IAnalysisFactory.h>
+
+// std::
+#include <iostream>
+
+// Slash :
+#include <Slash/Core/IManager.h>
+#include <Slash/Core/ISession.h>
+#include <Slash/Data/IProcessor.h>
+
+// Lib :
+#include <Lib/Manager.h>
+#include <Lib/System.h>
+#include <Lib/Out.h>
+#include <Lib/Cast.h>
+
+// G4Lab :
+#include <G4Lab/UIOnX.h>
+#include <G4Lab/TrackingAction.h>
+#include <G4Lab/Interfaces/IGeant4Manager.h>
+//#include <G4Lab/DigitsCollectionAccessor.h>
+
+//ELYSE:
+#include "ELYSE/Analysis.hh"
+#include "ELYSE/SteppingVerbose.hh"
+#include "ELYSE/DetectorConstruction.hh"
+#include "ELYSE/PhysicsList.hh"
+#include "ELYSE/PrimaryGeneratorAction.hh"
+#include "ELYSE/EventAction.hh"
+#include "ELYSE/RunAction.hh"
+#include "ELYSE/StackingAction.hh"
+#include "ELYSE/TrackingAction.hh"
+#include "ELYSE/SteppingAction.hh"
+#include <ELYSE/HitsCollectionAccessor.h>
+
+// Create a manager to access the ELYSEAnalysis from the callbacks :
+
+//JEC 10/1/06 introduce ELYSE namespace
+namespace ELYSE {
+
+class AppManager 
+  :public virtual Slash::Core::IManager
+  ,public Analysis  {
+ public: //Slash::Core::IManager
+  virtual std::string name() const { return fName;}
+  virtual void* cast(const std::string& aClass) const {
+    if_Lib_SCast(ELYSE::AppManager)
+    else if_Lib_SCast(ELYSE::IAppManager)
+    else if_Lib_SCast(ELYSE::Analysis)
+    else if_Lib_SCast(Slash::Core::IManager)
+    else return 0;
+  }
+ public://IAppManager
+  virtual bool initialize() {
+    //GB :
+    // Used in the ELYSE_Initialize callback.
+    // Do all the below here because of platforms having 
+    // not Geant4 shared libs.
+    IGeant4Manager* g4Manager = 
+      Lib_findManager(fSession,"Geant4Manager",IGeant4Manager);
+    if(!g4Manager) {
+      Lib::Out out(fSession.printer());
+      out << "ELYSE_Initialize :"
+          << " Geant4Manager not found."
+          << Lib::endl;
+      return false;
+    }
+
+    // To initialize G4Lab Types (PV, Trajectory, HitsCollection, etc.. types).
+    // To initialize G4Lab SoNodes.
+    g4Manager->initialize();
+
+    // Overload the HitsCollectionAccessor of G4Lab :
+    Slash::Data::IProcessor* accessorManager = 
+      Lib_findManager(fSession,"AccessorManager",Slash::Data::IProcessor);
+    if(accessorManager) {
+      G4SDManager* sdManager = g4Manager->sdManager();
+      if(sdManager) {
+        G4HCtable* hcTable  = sdManager->GetHCtable();
+        if(hcTable) {
+          int number = hcTable->entries();
+          for(int index=0;index<number;index++) {
+            G4String hcName = hcTable->GetHCname(index);
+            accessorManager->removeAccessor(hcName);
+            accessorManager->addAccessor
+              (new ELYSE::HitsCollectionAccessor(fSession,hcName));
+          }
+        }
+      }
+    }
+    return true;
+  }
+ public:
+  AppManager(Slash::Core::ISession& aSession,AIDA::IAnalysisFactory* aAIDA,bool aBatch)
+    :Analysis(aAIDA,"",aBatch)
+    ,fSession(aSession)
+    ,fName("ELYSE::AppManager") {}
+  virtual ~AppManager(){}
+ private:
+  Slash::Core::ISession& fSession;
+  std::string fName;
+};
+}
+
+//////////////////////////////////////////////////////////////////////////////
+int main(
+ int aArgc
+,char** aArgv
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  //Lib::Debug::checkByClass(true);
+
+
+  // User Verbose output class
+  //
+  G4VSteppingVerbose* verbosity = new ELYSE::SteppingVerbose;
+  G4VSteppingVerbose::SetInstance(verbosity);
+
+
+  G4RunManager* runManager = new G4RunManager;
+
+  // Need to pass the G4RunManager at UIOnX creation
+  std::string gui = "$ELYSEROOT/scripts/OnX/ELYSE_session.onx";
+  G4Lab::UIOnX* session = new G4Lab::UIOnX(*runManager,gui,aArgc,aArgv);
+  if(!session->isValid()) {
+    std::cout << "ELYSE_session : problem starting OnX." << std::endl;
+    return EXIT_FAILURE;
+  }
+
+  ELYSE::AppManager* appManager = 0;
+
+  AIDA::IAnalysisFactory* aida = session->findAIDA();
+  if(!aida) {
+    std::cout << "ELYSE_session : AIDA not found." << std::endl;
+  } 
+
+  appManager = new ELYSE::AppManager(*session->session(),aida,false);
+  session->addManager(appManager);
+
+  ELYSE::DetectorConstruction* ELYSEdetector =  new ELYSE::DetectorConstruction(); 
+
+  runManager->SetUserInitialization(ELYSEdetector);
+
+  runManager->SetUserInitialization(new ELYSE::PhysicsList);
+
+  G4UImanager* UI = G4UImanager::GetUIpointer();
+  if (UI) {
+    std::string file = 
+      Lib::System::getenv("ELYSEROOT")+"/scripts/Geant4/jobOptions.mac";
+    UI->ApplyCommand("/control/execute "+file);  
+  }
+
+  
+  // Set user action classes
+  ELYSE::PrimaryGeneratorAction* myGeneratorAction = new ELYSE::PrimaryGeneratorAction();
+  runManager->SetUserAction(myGeneratorAction);
+
+  ELYSE::RunAction* myRunAction = new ELYSE::RunAction();
+
+  runManager->SetUserAction(myRunAction);
+
+
+  runManager->SetUserAction(new ELYSE::EventAction(*appManager,
+						   myRunAction, 
+						   ELYSEdetector,
+						   myGeneratorAction));
+  runManager->SetUserAction(new ELYSE::TrackingAction);
+
+  runManager->SetUserAction(new ELYSE::StackingAction);
+
+  runManager->SetUserAction(new ELYSE::SteppingAction);
+
+  // Initialize G4 kernel
+  runManager->Initialize();
+
+  if (UI) {
+    std::string file = 
+      Lib::System::getenv("ELYSEROOT")+"/scripts/Geant4/init.g4m";
+    UI->ApplyCommand("/control/execute "+file);  
+  }
+
+
+  // Main UI loop :
+  // GUI is really constructed here. 
+  // Create callbacks are executed here too.
+  session->SessionStart();
+
+  delete session; //It will delete the appManager.
+
+  delete runManager;
+
+  return EXIT_SUCCESS;
+}
+
Index: /ELYSE/HEAD/applications/HitsCollectionAccessor.cxx
===================================================================
--- /ELYSE/HEAD/applications/HitsCollectionAccessor.cxx	(revision 286)
+++ /ELYSE/HEAD/applications/HitsCollectionAccessor.cxx	(revision 286)
@@ -0,0 +1,136 @@
+// this :
+#include <ELYSE/HitsCollectionAccessor.h>
+
+// Inventor :
+#include <Inventor/nodes/SoSeparator.h>
+#include <Inventor/nodes/SoTransform.h>
+#include <Inventor/nodes/SoLightModel.h>
+#include <Inventor/nodes/SoDrawStyle.h>
+
+//#include <Inventor/nodes/SoCube.h> //FIXME
+//#include <Inventor/nodes/SoCylinder.h> //JEC 27/1/06 FIXME
+
+// HEPVis :
+#include <HEPVis/SbPolyhedron.h>
+#include <HEPVis/misc/SoStyleCache.h>
+#include <HEPVis/nodes/SoHighlightMaterial.h>
+#include <HEPVis/nodes/SoPolyhedron.h>
+
+#ifdef WIN32
+#undef pascal // Clash between windef.h and Geant4/SystemOfUnits.hh
+#endif
+
+// Geant4 :
+#include <G4LogicalVolume.hh>
+#include <G4Colour.hh>
+
+// Lib :
+#include <Lib/smanip.h>
+
+// G4Lab :
+#include <G4Lab/Transform3D.h>
+
+//////////////////////////////////////////////////////////////////////////////
+ELYSE::HitsCollectionAccessor::HitsCollectionAccessor(
+ Slash::Core::ISession& aSession
+,const std::string& aHC
+)
+:G4Lab::HitsCollectionAccessor(aSession,aHC)
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+ELYSE::HitsCollectionAccessor::~HitsCollectionAccessor(
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE::HitsCollectionAccessor::visualize(
+ Slash::Data::IAccessor::Data aData
+,void*
+) 
+//////////////////////////////////////////////////////////////////////////////
+// The hit must have the "LV" and "TSF" AttDef.
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  G4VHit* obj = (G4VHit*)aData;  
+  G4LogicalVolume* lv = hitLogicalVolume(*obj);
+  if(!lv) return;
+  G4Transform3D* tsf = hitTransform3D(*obj);
+  if(!tsf) return;
+  G4VSolid* solid = lv->GetSolid();
+  if(!solid) return;
+  //G4Material* material = lv->GetMaterial();
+
+  SoSeparator* separator = new SoSeparator;
+  separator->setName("sceneGraph");
+      
+ {G4Colour color;
+  if(hitColor(*obj,color)) {
+    SbColor sbColor((float)color.GetRed(),
+                    (float)color.GetGreen(),
+                    (float)color.GetBlue());
+    float transp = 1.0F - (float)color.GetAlpha();
+    SoStyleCache* styleCache = fSoGC.getStyleCache();
+    separator->addChild(
+      styleCache->getHighlightMaterial
+        (sbColor,fSoGC.getHighlightColor(),transp));
+  } else {
+    separator->addChild(fSoGC.getHighlightMaterial());
+  }
+  separator->addChild(fSoGC.getDrawStyle());
+  separator->addChild(fSoGC.getLightModel());}
+
+ {SoTransform* transform = new SoTransform;
+  G4Lab::Transform3D* t = new G4Lab::Transform3D(*tsf);
+  SbMatrix* matrix = t->getMatrix();
+  transform->setMatrix(*matrix);
+  delete matrix;
+  delete t;
+  separator->addChild(transform);}
+          
+  // Build name (for picking) :
+  std::string s;
+  Lib::smanip::printf(s,128,"%s/0x%lx",HCName().c_str(),(unsigned long)obj);
+  SbName name(s.c_str());
+
+  // Representation :
+
+  //FIXME
+
+  //FIXME : PM base size :
+//   double WCPMTRadius           = 0.10*m;  // 20-cm PMTs (8-inch)
+  //JEC 27/1/06 double WCPMTRadius           = 0.10*m;  // 20-cm PMTs (8-inch)
+  double WCPMTRadius           = 0.15*m;  // PMTs (12-inch)
+
+  /*
+  SoCylinder* soPMT = new SoCylinder;
+  soPMT->radius.setValue(WCPMTRadius);
+  soPMT->height.setValue(WCPMTRadius);
+  //JEC what's SoCylinder parts?
+  separator->addChild(soPMT);
+  */
+
+  SbPolyhedronTube sbTube(0,WCPMTRadius,WCPMTRadius/2);
+  SoPolyhedron* soPMT = new SoPolyhedron(sbTube);
+  soPMT->setName(name);
+  //soPMT->radius.setValue(WCPMTRadius);
+  //soPMT->height.setValue(WCPMTRadius);
+  //JEC what's SoCylinder parts?
+  soPMT->setName(name);
+  separator->addChild(soPMT);
+
+
+//   SoCube* soCube = new SoCube;
+//   soCube->width.setValue(WCPMTRadius);
+//   soCube->height.setValue(WCPMTRadius);
+//   soCube->depth.setValue(WCPMTRadius);
+//   soCube->setName(name);
+        
+//   separator->addChild(soCube);
+          
+  fSoRegion->doIt(SbAddNode(separator,"dynamicScene"));
+}
Index: /ELYSE/HEAD/cmt/requirements
===================================================================
--- /ELYSE/HEAD/cmt/requirements	(revision 286)
+++ /ELYSE/HEAD/cmt/requirements	(revision 286)
@@ -0,0 +1,146 @@
+package ELYSE
+version v7r0
+
+#//////////////////////////////////////////////////
+#/// Uses needed to build this package ////////////
+#//////////////////////////////////////////////////
+
+use OpenScientist v16r0 Interfaces
+
+#use Geant4 v2r* Interfaces
+
+set G4RADIOACTIVEDATA "${OSC_G4RADIOACTIVEDATA}"
+set G4LEVELGAMMADATA "${OSC_G4LEVELGAMMADATA}"
+set G4LEDATA "${OSC_G4LEDATA}"
+set NeutronHPCrossSections "${OSC_NeutronHPCrossSections}"
+
+#////////////////////////////////////////////////////////////
+#/// From Interfaces/Platform ///////////////////////////////
+#////////////////////////////////////////////////////////////
+
+macro Platform_bin "${CMTCONFIG}"
+#set PLATFORMBIN "${Platform_bin}"
+
+pattern Platform_paths \
+  path_remove LD_LIBRARY_PATH "$(<PACKAGE>ROOT)/$(Platform_bin)" WIN32 "" Darwin "" ;\
+  path_append LD_LIBRARY_PATH "$(<PACKAGE>ROOT)/$(Platform_bin)" WIN32 "" Darwin "" ;\
+  path_remove DYLD_LIBRARY_PATH "" Darwin "$(<PACKAGE>ROOT)/$(Platform_bin)" ;\
+  path_append DYLD_LIBRARY_PATH "" Darwin "$(<PACKAGE>ROOT)/$(Platform_bin)" ;\
+  path_remove PATH "$(<PACKAGE>ROOT)/$(Platform_bin)" WIN32 "$(<PACKAGE>ROOT)\$(Platform_bin)" ;\
+  path_append PATH "$(<PACKAGE>ROOT)/$(Platform_bin)" WIN32 "$(<PACKAGE>ROOT)\$(Platform_bin)"
+
+# Darwin : to build dlls properly :
+macro make_shlib "$(make_shlib)" Darwin "$(ELYSEROOT)/cmt/cmt_make_shlib_common.sh extract"
+
+#//////////////////////////////////////////////////
+#//////////////////////////////////////////////////
+#//////////////////////////////////////////////////
+
+branches run
+
+build_strategy no_prototypes
+include_path none
+
+include_dirs $(ELYSEROOT)
+
+# With Geant4 global libs :
+macro ELYSE_Geant4_incs "${OSC_Geant4_incs}"
+macro ELYSE_Geant4_linkopts "-L${OSC_Geant4_lib} -lG4physicslists -lG4readout -lG4run -lG4event -lG4tracking -lG4processes -lG4digits_hits -lG4track -lG4particles -lG4geometry -lG4graphics_reps -lG4materials -lG4intercoms -lG4global -lCLHEP"
+
+# Waiting Geant4 DLL on Windows...
+# Darwin : problem too with dylibs.
+macro ELYSE_libopts "" WIN32 " -no_share" Darwin " -no_share"
+#macro ELYSE_libopts "" WIN32 ""
+
+#//////////////////////////////////////////////////
+#/// Over Geant4 kernel and AIDA interfaces only //
+#//////////////////////////////////////////////////
+
+# Over Geant4 and AIDA only :
+library ELYSECore ${ELYSE_libopts} -s=../source *.cxx
+
+#JEC 17/11/05 add the G4readout_incs to manage G4DigiManager
+macro ELYSECore_cppflags "${OSC_AIDA_incs} ${ELYSE_Geant4_incs}"
+#macro ELYSECore_shlibflags "${ELYSE_Geant4_linkopts}"
+macro ELYSECore_linkopts "-L${ELYSEROOT}/$(Platform_bin) -lELYSECore" WIN32 "${ELYSEROOT}\$(Platform_bin)\ELYSECore.lib"
+
+#//////////////////////////////////////////////////
+#/// DLD callbacks ////////////////////////////////
+#//////////////////////////////////////////////////
+
+# Must not use Geant4 singletons if having not Geant4 shared libs.
+macro ELYSE_kind "dll"
+library ELYSE -s=../source/Callbacks Callbacks.cxx InventorCallbacks.cxx
+#macro ELYSE_cppflags "${ELYSE_Geant4_incs} ${OSC_OnX_incs}"
+macro ELYSE_cppflags "${OSC_G4Lab_incs} ${OSC_AIDA_incs} ${OSC_OnX_incs} ${OSC_Inventor_incs}"
+macro ELYSE_shlibflags "${OSC_Inventor_linkopts} ${OSC_OnX_linkopts}"
+
+#//////////////////////////////////////////////////
+#/// Application "a la Geant4 examples" ///////////
+#//////////////////////////////////////////////////
+
+# Over Geant4 and AIDA only :
+application ELYSE_batch ../applications/ELYSE_batch.cxx use_linkopts='"${ELYSECore_linkopts} ${ELYSE_Geant4_linkopts} ${OSC_AIDA_linkopts}"'
+#macro ELYSE_batch_cppflags "${ELYSECore_cppflags} "
+macro ELYSE_batch_cppflags "${ELYSECore_cppflags}"
+
+# Over AIDA only :
+application ELYSE_analysis ../applications/ELYSE_analysis.cxx use_linkopts='"$(OSC_AIDA_linkopts)"'
+
+# Over G4Lab :
+application ELYSE_session ../applications/ELYSE_session.cxx ../applications/HitsCollectionAccessor.cxx use_linkopts='"${ELYSECore_linkopts} ${OSC_G4Lab_linkopts} ${ELYSE_Geant4_linkopts} ${OSC_Inventor_linkopts} ${OSC_OnX_linkopts}"' 
+macro ELYSE_session_cppflags "${ELYSE_Geant4_incs} ${ELYSE_batch_cppflags}"
+
+application test -group=debug -s=../source test.cxx
+
+#//////////////////////////////////////////////////
+#/// Things using ROOT ////////////////////////////
+#//////////////////////////////////////////////////
+use ROOT v1r* Interfaces
+
+# Example of ROOT program to work on a ELYSE.root file :
+application ELYSE_analysis_ROOT -group=ROOT ../applications/ELYSE_analysis_ROOT.cxx use_linkopts='"${ROOT_Gpad_linkopts} ${ROOT_freetype_linkopts} ${ROOT_Graf_linkopts} ${ROOT_Tree_linkopts} ${ROOT_Hist_linkopts} ${ROOT_Matrix_linkopts} ${ROOT_Core_linkopts} ${ROOT_Cint_linkopts}"'
+
+# Compiled version of scripts/ROOT/aida.C
+application ELYSE_analysis_aida_ROOT -group=ROOT ../applications/ELYSE_analysis_aida_ROOT.cxx use_linkopts='"${OSC_AIDA_linkopts} ${ROOT_Gpad_linkopts} ${ROOT_freetype_linkopts} ${ROOT_Graf_linkopts} ${ROOT_Hist_linkopts} ${ROOT_Matrix_linkopts} ${ROOT_Core_linkopts} ${ROOT_Cint_linkopts}"'
+macro ELYSE_analysis_aida_ROOT_cppflags "${OSC_AIDA_incs}"
+
+# Declare AIDA to rootcint.
+# See scripts/ROOT/aida.C for a usage example.
+
+macro ELYSE_cint_cintflags "${OSC_AIDA_incs}"
+macro ELYSE_cint_LinkDef_h "../source/ROOT/LinkDef.h"
+document rootcint ELYSE_rootcint_AIDA -group=ROOT ${ELYSEROOT}/source/ROOT/ELYSE_cint.h
+
+library ELYSEAIDADict -group=ROOT -import=ROOT ${dict}/ELYSE_cintDict.cpp
+macro ELYSEAIDADict_shlibflags "$(OSC_AIDA_linkopts) ${ROOT_Core_linkopts} ${ROOT_Cint_linkopts}"
+
+#//////////////////////////////////////////////////
+#//////////////////////////////////////////////////
+#//////////////////////////////////////////////////
+
+private
+macro build_library_links "true" WIN32 ""
+macro remove_library_links "true" WIN32 ""
+
+# WIN32 : /GR to enable RTTI and dynamic cast.
+# WIN32 : /GX to enable exception handling (for STL).
+macro_append cppflags "" WIN32 " /GX /GR" 
+
+# DEBUG :
+#macro_append cflags  " -g" WIN32 " /ZI /Od"
+#macro_append cppflags  " -g" WIN32 " /ZI /Od"
+#macro_append cpplinkflags  " -g" WIN32 " /DEBUG"
+
+# OPTIMIZE :
+macro_append cflags  " -O" WIN32 " /O2"
+macro_append cppflags  " -O" WIN32 " /O2"
+macro_append cpplinkflags  " -O" WIN32 ""
+public
+
+#//////////////////////////////////////////////////
+#// Run time //////////////////////////////////////
+#//////////////////////////////////////////////////
+
+apply_pattern Platform_paths
+
Index: /ELYSE/HEAD/doc/ELYSE.html
===================================================================
--- /ELYSE/HEAD/doc/ELYSE.html	(revision 286)
+++ /ELYSE/HEAD/doc/ELYSE.html	(revision 286)
@@ -0,0 +1,2653 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="fr-fr"><head>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+
+
+
+
+
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  <title>ELYSE Software</title><meta content="J-E Campagne " name="author"></head>
+
+<body>
+
+
+
+
+
+<h1 style="text-align: center; color: rgb(0, 0, 153);"><a class="mozTocH1" name="mozTocId909942"></a>Install and run ELYSE software&nbsp;</h1>
+
+
+
+
+
+<h1 style="text-align: center; color: rgb(0, 0, 153);">and the associate toolkits</h1>
+
+
+
+
+
+<hr style="width: 100%; height: 2px;">
+<h2 style="color: rgb(51, 102, 255);"><a class="mozTocH2" name="mozTocId102030"></a><span style="color: rgb(51, 51, 255);">Table of Contents</span></h2>
+
+
+
+
+
+<ul id="mozToc">
+
+
+
+
+<!--mozToc h2 2 h3 3 h4 4 h5 5 h6 6--><li><a href="#mozTocId102030">Table of Contents</a>
+    
+    
+    
+    
+    <ul>
+
+
+
+
+      <li><a href="#mozTocId791206">What the user have to know?</a></li>
+
+
+
+
+      <li><a href="#mozTocId474404">Installation of the Plug-ins and the ELYSE package&nbsp;</a>
+        
+        
+        
+        
+        <ul>
+
+
+
+
+          <li><a href="#mozTocId129835">The OpenScientist toolkit</a></li>
+
+
+
+
+          <li><a href="#mozTocId109209">The ELYSE package</a></li>
+
+
+
+
+        
+        
+        
+        
+        </ul>
+
+
+
+
+      </li>
+
+
+
+
+      <li><a href="#mozTocId3450">Simple runs</a>
+        
+        
+        
+        
+        <ul>
+
+
+
+
+          <li><a href="#mozTocId327975">Interactive session</a></li>
+
+
+
+
+          <li><a href="#mozTocId967005">Batch mode</a></li>
+
+
+
+
+        
+        
+        
+        
+        </ul>
+
+
+
+
+      </li>
+
+
+
+
+    
+    
+    
+    
+    </ul>
+
+
+
+
+  </li>
+
+
+
+
+</ul>
+
+
+
+
+
+<h2 style="color: rgb(51, 51, 255);"><a class="mozTocH2" name="mozTocId791206"></a>What the user have to know?</h2>
+
+
+
+
+
+The user is supposed to know how to practice more or less: <br>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  <li>the Linux OS or the MacOSX<span style="color: rgb(51, 204, 0);"></span></li>
+
+
+
+
+
+  <li>the <a href="http://www.cmtsite.org/">CMT</a> code management tool,</li>
+
+
+
+
+
+  <li>the <a href="http://svnbook.red-bean.com/en/1.0/index.html">SVN</a> the code version repository management tool (this is an alternative to the more usual CVS tool),</li>
+
+
+
+
+
+  <li>the <a href="http://www.cs.uregina.ca/Dept/manuals/Manuals/7Language/7_18C++/c++.htm">C++</a> language,</li>
+
+
+
+
+
+  <li>the <a href="http://geant4.web.cern.ch/geant4/">Geant 4</a> simulation tool,&nbsp;</li>
+
+
+
+
+
+  <li>the&nbsp;<a href="http://openscientist.lal.in2p3.fr/">OpenScientist</a> toolkit especially have a look at the <a href="http://aida.freehep.org">AIDA</a>
+abstract interface for the tuple creation and, also some practice of
+the OpenScientist visualisation to run the ELYSE_session executable</li>
+
+
+
+
+
+  <li>the <a href="http://root.cern.ch/">ROOT</a> toolkit if one wants to make analysis/ploting using this package.</li>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<h2 style="color: rgb(51, 51, 255);"><a class="mozTocH2" name="mozTocId474404"></a>Installation of the Plug-ins and the ELYSE package&nbsp;</h2>
+
+
+
+
+
+<div style="text-align: justify;">It is supposed that the SVN, CMT (at
+least version v1r18), ROOT (at least version 4) tools are available
+under the plateform used hereafter. For definitiveness it is
+explicitely shown the commands to be executed under the UNIX/csh shell.
+Usually the toolkits are also providing UNIX/sh shell command file. The
+Mac XXX will be documented later. </div>
+
+
+
+
+
+<h3><a class="mozTocH3" name="mozTocId129835"></a>The OpenScientist toolkit</h3>
+
+
+
+
+
+If the user is running under Linux SL3 with the compiler gcc- 3.2.3, the&nbsp;&nbsp;<a href="http://openscientist.lal.in2p3.fr/">OpenScientist</a> v16r0 toolkit binariies may directly downlaoded <a href="http://openscientist.lal.in2p3.fr/download/v16r0/">here</a>. The <a href="http://proj-clhep.web.cern.ch/proj-clhep/">CLHEP</a> 2.0.3.1 and&nbsp;<a href="http://geant4.web.cern.ch/geant4/">Geant 4</a>
+8.2 version are part of the toolkit and includes all the include files,
+the libraries and the binnaries necessary for the development of the
+ELYSE code or similar codes.<br>
+
+
+
+
+
+<br>
+
+
+
+
+
+<a name="OpenScientistInstall"></a>So, the user proceeds as followed (UNIX):<br>
+
+
+
+
+
+<ol>
+
+
+
+
+
+  <li>download the zip file</li>
+
+
+
+
+
+  <li>unzip on a <span style="font-style: italic;">kits</span> area (see the <a href="#CMTIandKits">Kits &amp; CMT hierarchy</a>) that may be different of his/her <span style="font-style: italic;">work</span> area</li>
+
+
+
+
+
+  <li>cd OpenScientist/v16r0</li>
+
+
+
+
+
+  <li>chmod &nbsp;a+x install</li>
+
+
+
+
+
+  <li>./install</li>
+
+
+
+
+
+</ol>
+
+
+
+
+
+To use the toolkit in stand alone mode or to see if the installation
+was fine, first of all setup the environment by sourcing:
+&nbsp;&nbsp;&nbsp; <br>
+
+
+
+
+
+&nbsp;csh&gt; source &lt;path&gt;/OpenScientist/v16r0/aida-setup.csh<br>
+
+
+
+
+
+(&nbsp; sh&gt; . &lt;path&gt;/OpenScientist/v16r0/aida-setup.sh )<br>
+
+
+
+
+
+&nbsp;Then, for instance one may experience the&nbsp; ploting capability :
+<ul>
+
+
+
+
+
+  <li>UNIX&gt;&nbsp; aida-config</li>
+
+
+
+
+
+  <li>UNIX&gt; onxlab</li>
+
+
+
+
+
+</ul>
+
+
+
+
+
+The user may see the famous gaussian distribution and the associate fit....<br>
+
+
+
+
+
+<div style="text-align: center;"><img style="width: 858px; height: 734px;" alt="Image" src="Images/onxlab.jpg">
+
+
+
+
+</div>
+
+
+
+
+
+<br>
+
+
+
+
+
+Also, the user may play with&nbsp;Geant4 interactively and show the
+event display. Have a look at the novice examples or a simpler example
+as followed: <br>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  <li>&nbsp;UNIX&gt; G4Simple_session</li>
+
+
+
+
+
+  <li>In the Geant 4 menu, starts with "Init" and then "Run", some tracks will appear when the number of events are validated</li>
+
+
+
+
+
+  <li>To show the geometry: follow the "Physical Volumes" in the "Tree
+actions" and clik on the different directories and leaves. One may see
+the following figure:</li>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<div style="text-align: center;"><img style="width: 858px; height: 734px;" alt="Image" src="Images/G4Simple.jpg">
+
+
+
+
+</div>
+
+
+
+
+
+<h3><a class="mozTocH3" name="mozTocId109209"></a>The ELYSE package</h3>
+
+
+
+
+
+To install the ELYSE package, one may adopt a directory hierarchy as followed (UNIX):<br>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  <li>define at the&nbsp;login phase the <a name="CMTPROJECTPATH"></a>CMTPROJECTPATH environment variable:&nbsp;</li>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">setenv CMTPROJECTPATH "&lt;common-area-path&gt;/kits:&lt;personal-area&gt;"</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  <li><a name="CMTIandKits"></a>create if not already done the <span style="color: rgb(255, 0, 0);">&lt;common-area-path&gt;/kits</span> area for the OpenScientist toolkit as described <a href="#OpenScientistInstall">above</a>, but also the ROOT toolkit, CMT tool ...</li>
+
+
+
+
+
+  <li>create the <span style="color: rgb(255, 0, 0);">&lt;common-area-path&gt;/CMTI/ <span style="color: rgb(0, 0, 0);">area</span></span>:&nbsp;
+    <ul>
+
+
+
+
+
+    <li>create a <span style="color: rgb(255, 0, 0);"><a name="cmtproject.cmt-1"></a>/cmt/project.cmt</span> file with the simple ligne</li>
+
+
+
+
+
+  
+  
+  
+  
+  
+    </ul>
+  </li>
+
+
+
+
+
+  
+  
+  
+  
+  
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="background-color: rgb(192, 192, 192); width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td>project CMTI</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <ul>
+
+
+
+
+
+    <li><a name="to_install_the_OpenScientist-CMT_"></a>to install the OpenScientist-CMT&nbsp; Interfaces for OpenScientist toolkit and the ROOT toolkit</li>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    <ul>
+
+
+
+
+
+      <li>download the Interfaces here (<span style="color: rgb(255, 0, 0); font-weight: bold;">TBD</span>)&nbsp;</li>
+
+
+
+
+
+    
+    
+    
+    
+    
+    </ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    <ul>
+
+
+
+
+
+      <li>edit the <span style="color: rgb(255, 0, 0);">OpenScientist/v16r0/cmt/requirement</span> file and change the OSC_home macro according to the local implementation as example</li>
+
+
+
+
+
+    
+    
+    
+    
+    
+    </ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </ul>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(192, 192, 192);">#macro OSC_home "/usr/local/OpenScientist/v16r0"<br>
+
+
+
+
+
+macro OSC_home "/home/campagne/kits/OpenScientist/v16r0/"</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    <ul>
+
+
+
+
+
+      <li>edit in the same spirit, edit the <span style="color: rgb(255, 0, 0);">ROOT/&lt;version&gt;/cmt/requiement</span> file to change the ROOT_native_version and the ROOT_home macros, as for instance</li>
+
+
+
+
+
+    
+    
+    
+    
+    
+    </ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </ul>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(192, 192, 192);">#macro ROOT_native_version "v5-13-04b"<br>
+
+
+
+
+
+macro ROOT_native_version "4.03.02"<br>
+
+
+
+
+
+      <br>
+
+
+
+
+
+macro ROOT_home "/home/campagne/kits/root-${ROOT_native_version}" </td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  <li>create a <span style="color: rgb(255, 0, 0);">&lt;personal-area&gt;/OSArea</span> area :
+    <ul>
+
+
+
+
+
+    <li>create a <a name="cmtproject.cmt-2"></a><span style="color: rgb(255, 0, 0);">/cmt/project.cmt</span> file with the simple code making the bridge between the ELYSE-like package and the common kits used to develop and use them:</li>
+
+
+
+
+
+  
+  
+  
+  
+  
+    </ul>
+  </li>
+
+
+
+
+
+  
+  
+  
+  
+  
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(192, 192, 192);">project OSArea<br>
+
+
+
+
+
+      <br>
+
+
+
+
+
+use OpenScientist v16r0<br>
+
+
+
+
+
+use CMTI</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <ul>
+
+
+
+
+
+    <li>download the ELYSE package using&nbsp;
+      <ul>
+
+
+
+
+
+      <li>either a tarball at the following link: <span style="font-weight: bold; color: rgb(255, 0, 0);">TBD if possible</span></li>
+
+
+
+
+
+      <li>either the SVN software:
+          <ul>
+
+
+
+
+
+        <li>define the environment variable:</li>
+
+
+
+
+
+      
+      
+      
+      
+      
+          </ul>
+        </li>
+
+
+
+
+
+      
+      
+      
+      
+      
+
+
+
+
+    
+    
+    
+    
+    
+      </ul>
+    </li>
+
+
+
+
+
+    
+    
+    
+    
+    
+
+
+
+
+  
+  
+  
+  
+  
+  </ul>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(192, 192, 192);">setenv SVNURL "https://svn.lal.in2p3.fr/Opera/Glob"</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    <ul>
+
+
+
+
+
+      
+      
+      
+      
+      
+      <ul>
+
+
+
+
+
+        <li>&nbsp;Check Out the HEAD version of the ELYSE package if
+you want to be a developer (ie. make later some "svn commit"
+order):&nbsp;</li>
+
+
+
+
+
+      
+      
+      
+      
+      
+      </ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    </ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </ul>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">svn co ${SVNURL}/ELYSE/HEAD ELYSE/&lt;new-version&gt;</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<br>
+
+
+
+
+
+<div style="text-align: justify;">Look at the repository SVNURL with
+your Web browser and see in the ELYSE/tags directory the latest
+tagged version to choose the new-version tag. In general new-version is
+composed with a &lt;major&gt; and a &lt;minor&gt; number (eg.
+v&lt;major&gt;r&lt;minor&gt;) and the usage is that &lt;major&gt;
+indicates non backward compatibility (notice that it might be that
+&lt;minor&gt; release are non backward compatible). 
+
+
+
+
+</div>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    <ul>
+
+
+
+
+
+      
+      
+      
+      
+      
+      <ul>
+
+
+
+
+
+        <li>execute the CMT setup:</li>
+
+
+
+
+
+      
+      
+      
+      
+      
+      </ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    </ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </ul>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">source &lt;common-area-path&gt;/kits/CMT/&lt;version&gt;/mgr/setup.csh</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    <ul>
+
+
+
+
+
+      
+      
+      
+      
+      
+      <ul>
+
+
+
+
+
+        <li>&nbsp;Then, one needs to reconfigure the ELYSE environment using the CMT ad hoc command</li>
+
+
+
+
+
+      
+      
+      
+      
+      
+      </ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    </ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </ul>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">UNIX&gt; cd ELYSE/&lt;version&gt;/cmt<br>
+
+
+
+
+
+UNIX&gt; cmt config<br>
+
+
+
+
+
+UNIX&gt; source setup.csh</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<br>
+
+
+
+
+
+At this stage one may wander if the environment is correct and if CMT
+will find all the packages to proceed to a successful compilation and
+linkage. One can use the following cross-checks:<br>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">UNIX&gt; cd ELYSE/&lt;version&gt;/cmt&gt;<br>
+
+
+
+
+
+UNIX&gt; cmt show path<br>
+
+
+
+
+
+# Add path /home/campagne/projets/OSArea from initialization<br>
+
+
+
+
+
+# Add path /home/campagne/kits/OpenScientist/v16r0 from ProjectPath<br>
+
+
+
+
+
+# Add path /home/campagne/CMTI from ProjectPath<br>
+
+
+
+
+
+# Add path /home/campagne/CMTI from ProjectPath</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+Here it is shown that the <a href="#CMTPROJECTPATH">CMTPROJECTPATH</a> is well defined and that the different <a href="#cmtproject.cmt-1">project.cmt files</a> are correctly configurated. Then uses,<br>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">UNIX&gt; cmt show uses<br>
+
+
+
+
+
+# use OpenScientist v16r0 Interfaces<br>
+
+
+
+
+
+# use ROOT v1r* Interfaces (native_version=4.03.02)<br>
+
+
+
+
+
+#<br>
+
+
+
+
+
+# Selection :<br>
+
+
+
+
+
+use CMT v1r18p20051108 (/home/campagne/kits)<br>
+
+
+
+
+
+use ROOT v1r51000p0 Interfaces (/home/campagne/CMTI/)<br>
+
+
+
+
+
+use OpenScientist v16r0 Interfaces (/home/campagne/CMTI/)</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+to see if the<a href="#to_install_the_OpenScientist-CMT_"> OpenScientist and ROOT Interface packages</a> are found (this does not mean yet that the Interfaces are correctly tuned...)<br>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  <ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    <ul>
+
+
+
+
+
+      
+      
+      
+      
+      
+      <ul>
+
+
+
+
+
+        <li>If the above cross-checks are successfuly passed, then one can proceed to the compilation and the link: &nbsp;</li>
+
+
+
+
+
+      
+      
+      
+      
+      
+      </ul>
+
+
+
+
+
+    
+    
+    
+    
+    
+    </ul>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </ul>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">UNIX&gt; cd ELYSE/&lt;verson&gt;/cmt<br>
+
+
+
+
+
+UNIX&gt; gmake</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<br>
+
+
+
+
+
+If the all the process of compilationand link is ok, then one should see the following lines:<br>
+
+
+
+
+
+<br>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">[...]<br>
+
+
+
+
+
+------&gt; ELYSE_session ok<br>
+
+
+
+
+
+------&gt; (constituents.make) ELYSE_session done<br>
+
+
+
+
+
+&nbsp;all ok.</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<br>
+
+
+
+
+
+At the stage, one has build sucessfully ELYSE_session (the
+interactive version mostly for visualisation) and the ELYSE_batch
+(the batch version mostly for tuple production on large statistics).<br>
+
+
+
+
+
+<h2 style="color: rgb(51, 51, 255);"><a class="mozTocH2" name="mozTocId3450"></a>Simple runs</h2>
+
+
+
+
+
+Usually the user starts an UNIX session and want to run ELYSE. The two things to do are:<br>
+
+
+
+
+
+<br>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">1) be sure to define the <a href="#CMTPROJECTPATH">CMTPROJECTPATH</a> variable (at login or by sourcing a meta-setup)<br>
+
+
+
+
+
+2) execute the ELYSE setup (no more necessary to run "cmt config"):<br>
+
+
+
+
+
+UNIX&gt; cd &lt;personal-area&gt;/OSArea/ELYSE/&lt;versioin&gt;/cmt<br>
+
+
+
+
+
+UNIX&gt; source setup.csh</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<br>
+
+
+
+
+
+The directory hierarchy of the ELYSE package is the following:<br>
+
+
+
+
+
+<br>
+
+
+
+
+
+<table style="text-align: left; background-color: rgb(255, 255, 102); width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td>source</td>
+
+
+
+
+
+      <td>source Core directory</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td>application</td>
+
+
+
+
+
+      <td>source files where the <span style="font-style: italic;">main</span> steering routine is defined</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td>ELYSE</td>
+
+
+
+
+
+      <td>include files of the Core</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td>cmt</td>
+
+
+
+
+
+      <td>directory where the CMT management files are located (requirements, setup/cleanup)</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td>data</td>
+
+
+
+
+
+      <td>event file directory. NUANCE style is used to code the primary vertex particles</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td>run</td>
+
+
+
+
+
+      <td>executable are run from this directory, the inputEventfile
+symbolic link to an existing event file should be set before run. There
+are also a collection of ROOT macros to decode the output event
+sturcture stored into the tuple.</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td>scripts</td>
+
+
+
+
+
+      <td>Geant4 and OpenScientist scripts</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+<br>
+
+
+
+
+
+<h3><a class="mozTocH3" name="mozTocId327975"></a>Interactive session</h3>
+
+
+
+
+
+In an interactive session the tuple generation is desable and one starts as followed:<br>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(192, 192, 192);">UNIX&gt; cd $ELYSEROOT/run<br>
+
+
+
+
+
+UNIX&gt; ../$CMTCONFIG/ELYSE_session.exe</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+&nbsp;<br>
+
+
+
+
+
+After more or less 15'' the geometry is loaded, and 15'' more is needed to see the OnX screen session. Then in the <span style="font-style: italic;">Geant </span>menu, one should validate the number of event to process via the <span style="font-style: italic;">Run</span>
+sub-menu. The first event is processed and the track of the optical
+volume are dispayed. By clicking on the eye then it is possible to
+rotate the event, zoom and so on. One may see the following screen:<br>
+
+
+
+
+
+<img style="width: 858px; height: 734px;" alt="image" src="Images/numuEvent.jpg"> <br>
+
+
+<br>
+
+
+One can visualize the "Hits" using the ELYSE menu, although it is
+then useful to use the zoom by using CTRL-Shift + drag the mouse in the
+("Hand mode" see right icons).<br>
+
+
+<br>
+
+
+<img style="width: 858px; height: 734px;" alt="Image" src="Images/numuEventHit.jpg"><br>
+
+
+
+
+
+<br>
+
+
+
+
+
+Using "Arrow Mode" (right icons) the user enter in picking mode to get
+some ascii information on the object (or collection of objects selected
+by CTRL-Shift + drag mouse).<br>
+
+
+
+
+
+<h3><a class="mozTocH3" name="mozTocId967005"></a>Batch mode</h3>
+
+
+
+
+
+In the batch mode, the user produces an event tuple (<span style="font-style: italic; color: rgb(255, 0, 0);">run/ELYSE.root</span>)
+created via the AIDA abstract interfaces implementation by
+OpenScientist. The I/O is performed in ROOT-I/O repackaged format that
+can be analysed<br>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  <li>&nbsp;either using &nbsp;compilated AIDA code (<span style="font-style: italic; color: rgb(255, 0, 0);">ELYSE_analysis_aida_ROOT.exe</span>, <span style="font-style: italic; color: rgb(255, 0, 0);">ELYSE_analysis_ROOT.exe</span>) generated by compiling as:&nbsp;</li>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(204, 204, 204);">UNIX&gt; you are in the <span style="font-style: italic;">run</span> directory<br>
+
+
+
+
+
+UNIX&gt; (cd ../cmt ; gmake ROOT)</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+&nbsp;&nbsp; <br>
+
+
+
+
+
+&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; The difference between the two applications are XXX &nbsp;&nbsp;&nbsp; <br>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  <li>either using interactive OnX session ()</li>
+
+
+
+
+
+</ul>
+
+
+
+
+
+<ul>
+
+
+
+
+
+  <li>or&nbsp;using the ROOT toolkit using the <span style="font-style: italic; color: rgb(255, 0, 0);">ELYSE_xxx.C</span> macros</li>
+
+
+
+
+
+</ul>
+
+
+
+
+
+The structure of the tuple for the moment is the following:<br>
+
+
+
+
+
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
+
+
+
+
+  <tbody>
+
+
+
+
+
+    <tr>
+
+
+
+
+
+      <td style="background-color: rgb(102, 255, 153);">&nbsp; std::string column = "int eventId, inputEvtId, interMode, vtxVol, "; <br>
+
+
+
+
+
+&nbsp; column += "ITuple vtxPos = { double x, y, z }, ";<br>
+
+
+
+
+
+&nbsp; column += "int nPart, leptonIndex, protonIndex, ";<br>
+
+
+
+
+
+&nbsp; column += "ITuple track = { int pId, parent, float timeStart, ";<br>
+
+
+
+
+
+&nbsp; column
++=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"ITuple direction = { double dx, dy, dz }, ";<br>
+
+
+
+
+
+&nbsp; column
++=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"double mass, pTot, ETot, ";<br>
+
+
+
+
+
+&nbsp; column
++=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"ITuple momentum&nbsp; = { double px, py, pz }, ";<br>
+
+
+
+
+
+&nbsp; column
++=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"ITuple startPos&nbsp; = { double&nbsp; x,&nbsp; y,&nbsp; z }, ";<br>
+
+
+
+
+
+&nbsp; column
++=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"ITuple stopPos&nbsp;&nbsp; = { double&nbsp; x,&nbsp; y,&nbsp; z }, ";<br>
+
+
+
+
+
+&nbsp; column
++=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"int startVol, stopVol ";<br>
+
+
+
+
+
+&nbsp; column +=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "}, ";<br>
+
+
+
+
+
+&nbsp; column += "int nHits, ITuple hit = { int tubeId, int totalPE, ITuple pe = { float time} }, ";<br>
+
+
+
+
+
+&nbsp; column += "int nDigits, double sumPE, ";<br>
+
+
+
+
+
+&nbsp; column += "ITuple digit = { int tubeId, double pe, time }";</td>
+
+
+
+
+
+    </tr>
+
+
+
+
+
+  
+  
+  
+  
+  
+  </tbody>
+</table>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</body></html>
Index: /ELYSE/HEAD/doc/History
===================================================================
--- /ELYSE/HEAD/doc/History	(revision 286)
+++ /ELYSE/HEAD/doc/History	(revision 286)
@@ -0,0 +1,17 @@
+
+08 July 2006 : G.Barrand
+- Analysis.cxx : book tuples only if in batch.
+  Else, if working with ELYSE_session, we book in memory the tuples 
+  and especially the geometry one that consumes memory.
+- DetectorConstruction.cxx, EventAction.cxx : be able to run without 
+  having booked tuples ; for example if running with ELYSE_session. 
+
+23 June 2006 : G.Barrand
+- Analyis, ELYSE_batch, ELYSE_session, ELYSE_analyis : 
+  handle first command arg to be able to AIDA chanage file format
+  (to test HDF5 over ELYSE).
+- Analysis, DetectorConstruction, EventActiona, 
+  ELYSE_batch, ELYSE_session : 
+  arrange to be able to run ELYSE_batch over a dummy AIDA implementation.
+  For example with OpenScientist/Falsetto. This may be usefull to 
+  see the overhead of the AIDA IO.
Index: /ELYSE/HEAD/doc/Images/G4Simple.jpg
===================================================================
--- /ELYSE/HEAD/doc/Images/G4Simple.jpg	(revision 286)
+++ /ELYSE/HEAD/doc/Images/G4Simple.jpg	(revision 286)
@@ -0,0 +1,1654 @@
+ÿØÿà
+	
+=ÂAÇ·Ä$¿!Ar2ÈlEQyTŒïEQ*BŸÝÔ6Id¢ÉŒ]	Uðú+šÎÆëik,1ÎºéÇq»oöžÓãv*ßíq®þÁE1êá¬1rñQPàärdE¬Qš/"Œõê.KKFÙÌ ß®·¬Hô
+MŠþõ³k9$N6Dëäm®Cæ\¥W,ÖºFçdÔg,è(ë¢Ê­w©S|4uŒÕb²ÕZªeºÓ¯QqÜnÅ[ý®4ãžÝ·û\k0·ðÄ{Žn³ßqr,F£Ùä«2Ìðx
+y[4Ðš
+ªª&K+·ŒÞa+ðnxæ«s© yzeéyy}*ÝÍÚUÝ,žrøåsµŽÇ
+ÆìU¿ÚãN;Ø«µÆºÑðÎ#h[Ã~ìíµ
+e€S§óŽÞôµÝS
+m6O:uîžL¬te¬Œ'J-þúsa«âyknOVïoùjŸFžZdŽž
+[iØÄ #LºMM®TésÏ%NNZ»Øµìzåqmc^L§
+[FU5*ŠjÆIªuW*¬vzZîÏ\eaüó>*ÂÇKZÎ¡L4ÉÆQ­kª¯öÓDØÅš©<ø$®t
+Ážµðî
+d9Aùð1_@EôkÜ!:«eÂúÚÞþj·ðÐAÄ-¥²EÁ!Ïqb§
+þ¯U3ê&^¢¹
+Ç]0ãl7:é;säŠÅ²b$ìErS_9OGÏEEEå?Kÿ
+¢"gÓ.\²
+¬v^éEùJø-meW¯ºQ~R£BßG»ÙZÞâÜ
+bÓŠTŠm§k=çÃåÊç€îÕR³ªuN­W~ú³T«UŠd°mÑi°Ù¬±°l»ì	féÛaái¹Ž`š"à8â	fJª¢¹å_X/
+[-êûŠÏpÄ]zÒV©o76!y6Y
+§å²$E/8SECô
+ÚÏiëî_§Aí¬öŸéEùJîÚ
+JóžámÊ.º³uª®K?Ai³éJçbèUT×[ÙÍ±öŽ
+­Ùõ¥Æ³îã!ºâÆvù
+5ìHsE6ÃJ*®}DÉ3®ŸÎvl·®Ê÷|ž¢ÙáÝŸ«HsIœç^B»Ò\Ë$MJ~U
+Ð{k=§¯ºQ~R¶³Úzû¥å+]¥ËAÚJRén¿å
+,£þMô¥×²7œ)€¬5s>ÿ
+šŸ`<Òþú°ºmgŽõ÷J/ÊS öÖ{O_t¢ü¥[èûÞžÙ;8^"Õk£ÀìW_,4
+îÓ
+¬Zê|-þå{Á}/ï§ô¿Ÿ¬.ÛYí=}Òòè=µÓ×Ý(¿)S¶ëFòðõÌµ·þIú^ð_KûéÁ}/ï«
+ öÖ{O_t¢ü¥:mgŽõ÷J/ÊSnŽo/Y|ÆÖßù'èe{Á}/ï§ô¿Ÿ¬.ÛYí=}Òòè=µÓ×Ý(¿)MºÑŒŒ=eó[ä¡ïô¿ŸÒþú°ºmgŽõ÷J/ÊS öÖ{O_t¢ü¥6ëFòðõÌmmÿ
+ŸU»
+ÚÊÿ
+ŸS¯ `ô
+ÚÏiëî_§AÍ¬öŸèÅùJmÖþ¢
+²ù­¿òRô2Ÿà«è%8*ú	VAÍ¬öŸèÅùJt
+ÚÏiëî_ŠÝhßê!ë/ÚÛÿ
+ŸS¯ `ô
+ÚÏiëî_§AÍ¬öŸèÅùJmÖþ¢
+²ù­¿òRô2Ÿà«è%8*ú	VAÍ¬öŸèÅùJt
+ÚÏiëî_ŠÝhßê!ë/ÚÛÿ
+ŸS¯ `ô
+ÚÏiëî_§AÍ¬öŸèÅùJmÖþ¢
+²ù­¿òRô2Ÿà«è%8*ú	VAÍ¬öŸèÅùJt
+ÚÏiëî_ŠÝhßê!ë/ÚÛÿ
+ŸS¯ `ô
+ÚÏiëî_§AÍ¬öŸèÅùJmÖþ¢
+²ù­¿òRô2Ÿà«è%8*ú	VAÍ¬öŸèÅùJt
+ÚÏiëî_ŠÝhßê!ë/ÚÛÿ
+ŸS¯ `ô
+ÚÏiëî_§AÍ¬öŸèÅùJmÖþ¢
+²ù­¿òRô2Ÿà«è%8*ú	VAÍ¬öŸèÅùJt
+ÚÏiëî_ŠÝhßê!ë/ÚÛÿ
+ŸS¯ `ô
+ÚÏiëî_§AÍ¬öŸèÅùJmÖþ¢
+²ù­¿òRô2Ÿà«è%8*ú	VAÍ¬öŸèÅùJt
+ÚÏiëî_ŠÝhßê!ë/ÚÛÿ
+ŸS¯ `ô
+ÚÏiëî_§AÍ¬öŸèÅùJmÖþ¢
+²ù­¿òRô2Ÿà«è%8*ú	VAÍ¬öŸèÅùJt
+ÚÏiëî_ŠÝhßê!ë/ÚÛÿ
+ŸS¯ `ô
+ÚÏiëî_§AÍ¬öŸèÅùJmÖþ¢
+²ù­¿òRô2Ÿà«è%*åÔ« æÖ{O_tbü¥:mgŽõ÷J/ÊSnŽo/Y|Ïv¶ÿ
+ó/ ¿z}ûÕaô
+Ú×iß¢ü¥:íkŽïÊQ~Rw£yxzËæ6¶ÿ
+ó/ ¿z}ûÕaô
+Ú×iß¢ü¥:íkŽïÊQ~Rw£yxzËæ6¶ÿ
+"i,Ë¡åÍ:ŸzòWlïj.°ÀÝ6WjºŸÃBÈIvFÜÝd"»@
+¥$UE\<
+³\~©ìVÅîëÿ
+DKVÌm¶vå u7I	Ié.*€BÈrEQ\òL»/lûiÒÝ)7=Y®\å~SlÞ/é5,Rùê¯*æª«[mï+ZÍÚÇ7\§
+¬¡MnâýÝXXX^,·8
+¥Œÿ
+8º[×
+ÉQ3Ì³TM(¢eÎ&ÔR°œbLC{¹ß`Þ­xÂÁž­ªMŒ&ªhŸªH Bš«©sÍ9ÏÍ(+
+Û#¹á-Þïöbh'ÇÅp5 +jY/"ª!ªŠyŠh¢Šhž »[öo!²G¥I
+TçX)·ëÁâ£Î+ãmiLoŠ%äPä .
+U-eÚ-vÃ.çplf;­]ºÌ¶Ì·Á$D£ñdr«YkËHùlÇ«#kØ¥»¶Hð-f3­ÑzL6áy©8y+.)8É	7µÔŒyÒš<Q±}æ#Ü¢Úæ@Ú(áùNÅiÑnf
+]@¢£J²€ZPÇ,«³µ} ŽXªÀÜaß)lf§O:"n€£|sÖÕ¥wHB­yÒ ªMºY^Ÿ^&bÛ°\œ GÄyîÈnÄBleUŒLZQDÞ
+N€ªQ¢.s1F/Ä÷ëÃÐ±5hŽâ'íÅ|]IÓB(OÈª*JD«hrkEéš
+CÙ¶Å.VÄ,aö"Ýuºmr«iÆ6É*»¹{µÐ/œ*®hÄökÒîV{;ò
+ÂQ/Ñ98 Ñœ ÒzTÓ7ÌN3/PÅ+
+Ù¶$Ä7»ö
+êØèGl,Ú€ÛÂh8
+ŠËê€*º<Ó<üÒR°œ¹b;Ù]îÿ
+¹iA% .JTf»qöŽ_8?ã,ËÜë×»Þ
+Y&ygy&~
+IÐ
+U?¥\$mõ«6ç\­é
+WÚ.å'xQù|^¥òÊŒ©È¹fñí
+
+à
+
+ñ$Û=Öéd
+§Ä$ËhóÊdJFc8( êÞ©š©fZ06MÉÚ'[Ê,k}mk
+*9Œ'À-nfJyª§"hÒšæ¬ÇeÛNÅ8ºëa}Ë»EãïdÆÙº"ÜêJ­?­Et dKç*iP.
+RAÛfÝ-Œ+Æ¶ç/¯Áñ5Ÿ{³í·Q'^ìmhÔR$VÄt	 ª*¢ŠTÙþÔ/÷Û®
+r|;`Ûñwîa³ ðR]:ST{P¢ä
+ò®~vJÁJÕ{cØöç°šÇ/³t`&ÉžÞåßHã;±
+fyYåÓ(M*¶kûxnõ{l¶:ÕÚäÊmÁ0"žN@ Ñ.l
+j+ªŠH¹.€åŸmO
+Ú
+Yk
+5p3¿À·Á"Û&Øä4á
+DYŒk/±EÛºïj;LhÞEåGQ.ï
+-(A€ü¥b"ÅR1®Îm\F¢ÈŽÑ*8Mª|š ª¹åY®Y®W@)JP
+R¥
+R¥
+R¥
+R¥
+R¥
+Ó§n5n·¹/N¬úlóå¬g=¬÷÷ÑÅ§>{Yî/ï¢/@N3³,ÖôBÉäFÄàÁJxÜ÷èÃjz×¢«h+ª&HµË'g8.ShÔOÙÂÈãÎ$0$ o%.š¡!ùtTEBä¬{=¬÷÷ÑÅ§>{Yî/ï¢/@fs
+Ù°û^¶FtdN1r\]ûÊ":tÕ$E\5É5©¬ùóÚÏq}|Zsçµâþú"øŽ.<y^-€G|	·ZtÀ$ÉDyQQkoex[3® Ãqz|
+Š
+IÅ6UzúuÏÖ{ûèâÓ=¬÷÷ÑÅ 2nÎ°}»GÄín
+Ê9žën×ÍÇFq@D1ÔjD©šK¶sáÅ³ÄfÄÒÇ³ŠàŽëÎ8
+T|I
+CBTT=]^L«
+çÏk=ÅýôEñiÏÖ{ûèâÐ
+²ŒVÉ6×¬ÎÈ&+0ÏOév
+m3qI¶ÐH*"ä¢ä1}Â8z÷ufér·ïf4ÁFWçÞ°DLºHŽª­ž<«ÉÊ¹áüùígž¿ŸŸ-9óÚÏq}|Z>Ãö64[=±·[
+7l6ãæê'Pu©dDE^DDDÉ»ÕYóçµâþú"øŽçÏk=ÅýôEñh
+ç-<õsÑÁ?ñ~À8FðŸq¯y£Nz|·.ygéåQÜïçM¹ÚwÎÜ&Èu¶å¡ +­ ¥ÒdBš**#3ÏÖ{ûèâÓ=¬÷÷ÑÅ "çlŠtYK1lQ ÂÄL^{r$§mŽò2eÍCœp7
+®h!RDJÎ¬x	Ùn¬\­¶Ëñ·ÜJCŠÌMñjwpÑ¶Î¥êîÄySšªóçµâþú"øŽçÏk=ÅýôEñh
+2Yóçµâþú"øŽçÏk=ÅýôEñh
+Î°|)QktB¢)M|âGyT[qÈÕ TS%M"UsL«ÇpêÅÊÛiÜ¿}Á€:lÄß§w
++lê^®ìGU:©XÏ>{Yî/ï¢/N|ö³Ü_ßD_Ì-G[piàèVýÕØz9Eß8Y¶êžÔùu.yŠ|T[Û2ÁîìD
+Fl
+§
+
+ÆËp¶¡ý""ž¹""æP|ùígž¿ŸŸ-9óÚÏq}|Z00ÌôÜ4W§KaN"<($ŠÚ®-a­SV ÏJªT9l¯,VãÖP"2qòuèäË®
+n¶(&€"T?>{Yî/ï¢/N|ö³Ü_ßD_Í,xbÃc¹Ï¹Z-­CpºR@ `7mzAyŠ*³çÏk=ÅýôEñiÏÖ{ûèâÐ
+ÚK­ª]®{[ès8ï·©G[f*$¢¢Šh«ÊA_ð¿a[~»ZxE¢Ý»àøC¡»Ý¶
+0ä*©Ê«ËXÏ>{Yî/ï¢/N|ö³Ü_ßD_ÈdìçÊmbið8Y\yÂD
+ä¥Õ$?.š\Ä[3ÁuuvÛ)éÑf@ŸíÊIºÉŽãN.ôY"êTÓåQ ùóÚÏq}|Zsçµâþú"øŽæ
+Ân³Ž{î6¹E¶32[
+Àõ©p`]JãÄºP5@LŽôÐ
+r­Ùkz!dò#bLp`¥<LÇnN{ôaµ=
+kÍQUŽÉU$ZçÏk=ÅýôEñiÏÖ{ûèâÐlË;º²y19°2d7-Â>Ú
+ôdâä%fYóçµâþú"øŽçÏk=ÅýôEñh
+2£.6
+MÂýjŸLœžZwÜíá&ëz(tš¹b2.^vUsçµâþú"øŽçÏk=ÅýôEñh
+
+Í`òpÞ
+[¬H;÷>
+kìŸ2
+
+.ºhš+rr%v¹ÉÂÉf²ÙÐÓp,rne³0F^o5Í2%]YêUU\Ö±N|ö³Ü_ßD_ùígž¿ŸŸ-ó
+Íz³
+¡§ _%;2âËf<æJGªš®b*rÒš-u[ÙÖãµºüž±sá2&Ÿóå!ÒÑŠjfšJ¢¯'*Ö=ÏÖ{ûèâÓ=¬÷÷ÑÅ 2kæÂw««÷+§|üÏ
+è3/rZßŽ$œ¥zÁ.DDê"%dÕYóçµâþú"øŽçÏk=ÅýôEñh
+2 ÝÂ8yÙ8CüÝÄL{©oþØ¶­yn %LÇ%åÏ«ËX>{Yî/ï¢/N|ö³Ü_ßD_{fX!ÝÐÈÑÍð³!žÙnöÐô?£$DW$D\Ñ*lŠÛ/
+áûœŸ,Vm±ç\®VÎC»çdÉh]iyt	"
+QåJsçµâþú"øŽçÏk=ÅýôEñh
+ûÙí
+4[5P D
+Û,¶Uå^UUUUU\ÕUUUUUkœU>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_³)U>{Yî/ï¢/N|ö³Ü_ßD_Ã9¬~ð'©rý5¯òºKþÕé¶V¶åYoÌÎõŸÆwÏqÃµoÐ
+æN¿]ÒÔN_MµïÌ{­GøOVÊ
+®=Úãn$Ý
+Ò·>x^ªÖêm³­
+ãÔgôÁZVçÏ
+ÕZú?rÞM~|»0)¯~2üÕñŽ\ËþcÜ=j?Âz¬ni	3ÃLÊ×ri7j
+HQmÔÌc»€ßÜ7ÒæŠ¹(sÌ¿æ=ÃÖ£ü'ªäÚV'Â¶iÄËY¢NÓ{öPŠ ,%Jæû­òÅ·WetWÇŠ]ŠS&ö%Ô;¬osé÷Z+ú(ÕzœUO;ú±ü1l+Íq®$ÛpÜè)cn#ÜCdMžÓYùLCz	5iÒ
+-°+ò
+êeÞ4ÇxË
+àÀŽâäÛ@Yj"%äDÍTÏZæZm×_F_÷¥LdÝjðÖH_ 
+°öÙú^ooÛÜ&,tqUhËQJš¢d%¢ä*€5æÉºÕá/¬¿@íGlŽîž
+cõ¡
+rlæÇ	MXTG
+.Ž¹É*(¢¢*.GcÚn
+žaøS®žÃ
+ÄºžN»,
+âqÉ·
+K®*
+h¥¥:~LÉUrÍz«xÚ²Ý°äü=~°]%Fœ#ÄÃýày
+|š¡9*jAUEÒYi\~É6	.kîŠÖmWIXÎÆB@UäG€"uT±_8SšÜ%³=Ù1
+òvfºAê:óŒÀŒæ]AGV
+òÏÈÔ²Õ
+ª(ëvuu©±N3}¡bØ«n['¿EAÝÕLH·FB*H&$:²LòÍ9®|-üëõµïÕTn7ÄXJý·í7.ð'ÂÍÅn4ÀLÂ
+§"¢¢¢¢¥hÒ ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥(
+7ml/
+£?Š
+Ò·>x^ªÖêm³­
+ãÔgôÁZVçÏ
+ÕZú?rÞM~|»0)¯~2üÕñŽ\ËÞcÜ=j?Âz¬ÆÂwŸ²\fºH§\4AR!U\QÐDDóª¶æ^ó
+áëQþÕrW7Ýo-º»(¢ŒV=2í3èy;GÃ>ä±âÓ¡æ
+Ò·>x^ªÖêm³­
+ãÔgôÁZVçÏ
+ÕZú?rÞM~|»0)¯~2üÕñfÑs/ypõšÿ
+]_µo¥I|€HÈ
+z€JD@nªoò
+*µÎùJ¥®ÛSÅ¶Š_.Ëö÷ÝêídfÞn@8C
+×zá6­éE%1É,>Ù
+þù,Ó¿Ú]"-Åè¬žpÞ
+·ÅzvÐ²Òª\¢ŒŸrÒ©6ÉvsR³Þ!Kv|Ý
+SM6°ÀÜn[©¢Rm!.|©ÄëÎ?±Û¶":ÄÃS0·E	Ù~+€ÊžméW
+WHœ+šb¢I%kRµÑí¥â
+'i:J5wÖÏ¢\QÇdIqçe6È+®¢8G¥
+Õ","ŸíCÙñ4¬/ÀìW
+\Ej¶ðÛ±}©¬iÖâ¶BAŒÍ2/)ÉÊÓJŠËixÈ¬Ód
+Š²ßæÛ/wv¢íGe:_Hèžš»ÄRÒáèÌ²\ÑÈÀq
+µÞlìŠÍÛkŠqÌ³TU
+b&=NP$ÌW1\Õ3P3<M1gºÌ8€žÎçB>Ú&dšµñÇÿ
+""(%Çÿ
+ÍŽvéÍËž*DjÜú¶Ò©fg€rTÏ 6oÿ
+@Ý²ËiÈ)Õ^UåUUUUUÍUUUUUV»Ô &­?C¿¹þÖ%Äz¹èàø¿à
+#x_8×ŒÑ§=>[<³ôò¯ŒSn|Ã2¬
+ßnÖFeºÑ¿"Öðµ µU@CQ%UTUÓ®LòREÀúýT6î÷îP5ã
+ÃRíÖx.@u°²7mv<·~0#{œ"ð9H©«ŠÉ3Ï$®C
+Áž7;qw
+UÅ;œg§ï7ºrÕ­çOŒòú¹ugËP}~ªM÷{÷)Ðê¡Žßw¿rgfX!ë=»&Rtk:²R91Ð§K3é§5%\õ©)¥\ëµÎìOóßÿ
+³š€¹ªêUy,ùQ9.DäêçßµF~
+ãHžÊžºê$[5UåFÀ<¹93ÍsZìÒUgÌ·Ö'}ÕáNÕ]-X°þÀ(ç®k¢G%»%@323$Luä<ª*æªv5Æ6.×{ôþ*qµÞý?
+¥MqµÞý?cbíw¿Oâ !iS\cbíw¿Oâ§Ø»]ïÓøšZT×Ø»]ïÓø©Æ6.×{ôþ*5Æ6.×{ôþ*qµÞý?
+¥MqµÞý?cbíw¿Oâ !iS\cbíw¿Oâ§Ø»]ïÓøšZT×Ø»]ïÓø©Æ6.×{ôþ*5Æ6.×{ôþ*qµÞý?
+¥MqµÞý?cbíw¿Oâ !iS\cbíw¿Oâ§Ø»]ïÓøšZT×Ø»]ïÓø©Æ6.×{ôþ*5Æ6.×{ôþ*qµÞý?
+¥MqµÞý?cbíw¿Oâ !iS\cbíw¿Oâ§Ø»]ïÓøšZT×Ø»]ïÓø©Æ6.×{ôþ*5Æ6.×{ôþ*qµÞý?
+¥MqµÞý?cbíw¿Oâ !iS\cbíw¿Oâ§Ø»]ïÓøšZT×Ø»]ïÓø©Æ6.×{ôþ*5Æ6.×{ôþ*qµÞý?
+¥MqµÞý?cbíw¿Oâ !iS\cbíw¿Oâ§Ø»]ïÓøšZT×Ø»]ïÓø©Æ6.×{ôþ*5Æ6.×{ôþ*qµÞý?
+¥MqµÞý?cbíw¿Oâ !iS\cbíw¿Oâ§Ø»]ïÓøšZT×Ø»]ïÓø©Æ6.×{ôþ*5Æ6.×{ôþ*qµÞý?
+¥MqµÞý?cbíw¿Oâ !iS\cbíw¿Oâ§Ø»]ïÓøšZT×Ø»]ïÓø«Û:¶`­^q,
+(Ìq`
+æïYž-&J¢hJ(šªchÛ:Ø^=FL¥n|ðœU­ÔÛg[
+ÇšÏéŽ­Ïªµô~åŒüùv`S^üeù«âÍ¢æ_ó
+áëQþÕemñùèÙf
+ÁXÇ^xøß
+ËâÆ&ÿ
+l{Ã²8,Ö·r×t[·5ÒcD®JÝÛ'Ð²KüÚ%VMŽ(XpäÎk?ôN¶ÈÛÃÀŠæJ
+g¡ÞÝ¿Î/ÞT/öíþq~ò¡xÕsRŠz
+íÛüâýåBñ©Ðïnßçï*W5(
+g¡ÞÝ¿Î/ÞT/öíþq~ò¡xÕsRŠz
+íÛüâýåBñ©Ðïnßçï*W5(
+g¡ÞÝ¿Î/ÞT/öíþq~ò¡xÕsRŠz
+íÛüâýåBñ©Ðïnßçï*W5(
+g¡ÞÝ¿Î/ÞT/öíþq~ò¡xÕsRŠz
+íÛüâýåBñ«Ï¶Ö£îhG.ŸÓ8>
+NgÓêA%LÑ	D%êU¿JŽÆßDòþÓà
+kÅãm{i+eÕœ«
+°&#Šê
+èÇÜ!RRäþª&~}ln6ú'ö
+'Vé­Ë«H©/)
+"t¢«ÊŸufÜëß~ÿ
+ç
+-ŒaËûX]ëßm§n-47'ÚÎ[.Z
+mötº HdŠ€-2)¥å³`®·Ç·à
+C
+ß#FfP^-¥?|qã·
+·
+[y
+VlM9Aw`¢ ºÔëUÛv'ÄSnX6 
+UÞn(LÙõ*žãÁ-Õu
+Þª­2¢
+£7Æ+[àŒ7"ÿ
+TX¶£ ÛP2æ×$µf$+Ô0ÁÐ1%òÁtzÓ'xc.ý­MŒ-fr
+Ú²U^£Ê¢äÔ ¥()JJRR ¥()JJRR ¥(
+Ó}ËûO5_s/]'Ûy°/uŒã
+} yMw.ª/¢µ`ão¢yið«.gü±`ø»@NZ±~$¹óBNÃnÏ9icIß°qPQ5DLóÒYeš³ù^¹ŸÆî>lš\-ÿ
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+j§
+¹5¶Î¶QÓi[</Uku6ÙÖÂñê3ú`­+sç
+ê­}¹o&¿>]×¿~jøÈÚ.eï1î
+µá=VV$ëí°_í¥VŒËþcÜ=j?Âz¬¬I×Û`¿Ú/Jæû­òÅ·WetWÇŠ]Š_ô¥+,
+1ì3­·KžCÙmÐ.Vc°î6ge£/8¬«rY@!Þšª«®:jK¯$¯î3mËd Æ8
+³iœÆuqš8uÑRª,Ÿä³=$Mï7kÒt¹*¥^uSlÚì{,ÂVK¥Ço²B)®sî¥»u¶
+Õîmo4m²×ç~¶µ{[Íg¬µùßš×ÁÒ
+üÇåËö5¶¥I)
+)JJRR ¥()JJRR ¥()JJRR»èrn7ÖømïdÉtYd5"j2TAL×3UN­d±m±¬V9×±hºÍeÖa
+»ÿ
+ŠqcHl9bÆxe²`\à;,Ïpó2[]ðK
+L
+ln¶²ÛQÃ\oò¡Í¶ÐÂ1°-ä&áºšâ"è
+Ç6à÷\
+7jx2Ë|Æ€I02)ó|·¢0SÆÍZ
+|mëÆ·*KZÔ÷€®ÿ
+R¥
+R¥
+R¹#0ô
+ÆË<é 6Ûb€FJ¹""'*ª¯&UãtÍ6«8êNÕhYÊ\©ñ-ÐÕ±)
+QqÄDUFÀQUQ2
+Ç5E!EjÌÍÍ&þä«eÑÈÒÛ-8¶Óæ.«©ß&Y¶jIMÝ­°nö»Þë:²<xq6q·
+ñŠèt+bã ZÀ
+2U$m3JëkòTQ­¥R«­+ô*ê«*oJ*£tªUu¥rTèUyUv÷Y·bÛÆ
+ÙÝèrç;
+Áã*ùº¢n6â åÓ ¢ªêîapo
+EŒØÙç5)÷
+
+\aöh¶2šà)º:t(ªÿ
+CJ Ðªª6ÖðQS$$
+úqBÁêúãe
+%GJ-K$èž5çÏWŸtú7(NK
+©E©dJO>zœñJR§"¥
+R¥
+R¥
+R¥
+R¥?dúÄ?s~k{1\ð¹X AjC	Ôvè"ä
+VK
+Bãn6Ñ[ "D$-í²}b¹¿Hµè-ö
+MÛ"äØ§Â ŒL«o.GA5TBÌH
+D
+TV5iÓþ1.t§Ü¿-ÿ
+²DÐIcÊÔEò8Iq6,mÃr:
+® ®ð3,ÑÉ
+í5**òŠôòU^¬ò.µ÷jÚ2mO8ªM€âtYkJ+@€@"ë¹éÖÒª(·Œø¶œr|ž\î¶á#¬Æm h_Qõg»#E@7
+u"r Jc-»}
+Y>èøiTÏ5'XG÷/
+5W5ÛèbÉ÷GÃJŠy©:Äâ?¹|)ªkml/
+£?Š
+Ò·>x^ªÖêm³­
+ãÔgôÁZVçÏ
+ÕZú?rÞM~|»0)¯~2üÕñŽ\ËþcÜ=j?Âz¬¬I×Û`¿Ú/J­yüÇžzÔõYX¯¶ÁŽ^
+Í÷[ån®Ê$è¯L»L¿éJW8X
+R¥=qU¶épwb;-ºÂJÌv
+ÆÌìŽeòGnK(
+Ã
+cØ.Ð1i:ÆÑ8Næój£
+TL#šòrª¢§**¥'.¬+äLŽÌgÝ#2s`ßÄ\÷j`ÜÛI,(m¯P°ÈŠß/6
+ÙÝç	D[FÅÀ³ŒÔ`³m|*p«1ËÈà4ºÒŠ¶\DsQ*ªCe
+hø«i6X.\íÍ]0mŸØ¯OŽHãJéÝZ4ø¶F)­4ÉQS<ÑrÙKû*¿àµÎÙ>0n6áo8Ã	)²o:»¡Xº5dâ¢
+)Œùš")d«Ôªþýw¶AÛ'¶\¬;ØÜðµ©Ôä¶ä"È¹Žé «-	kAÍò
+Õîmo4m²×ç~¶µ{[Íg¬µùßš×ÁÒ
+üÇåËö5¶¥I)
+)JJRR ¥()JJRR ®HÌ=&Cq£2ãÏ:h
+¶Ø©®HÊª«ÉdÌaç,öË€(&ÛÌXì·,^ë
+º`ùTQ¿(%J¹t§ŠÒÚ6m'­ê[î¹dG·œYØQIæõ,ªóŠDEªÅp¹G)1ø#L¡š#Š³LU]!BTET
+òÔ9ågY[fß/]žÐ[%Â3×ØUp]F]g~F(€"DHÚjCA'25çœYm÷VpÕÎhÄÃ¶8°bâÐKÞ;÷é[%'spWX&É
+ÏRNé^òÚ5¢ÖÕŸÉêLSœQægp
+áÓÂ5mrDCÕçeYxµëe%¥SNIÕÒT®ó£j©§Sœßç{£UIeÅŠûuiºjK*Ê5ÉÔêáèðÍæÍÑË,Ùq
+YWK[È²µi7QS1M?7Q=ôÁx
+mÌ["¿qœÀóR€¯$
+Ìsechâ²	ÓõEŒÅsÞ(¢¢švðŽ6Ì^PßÅŒ6F$Ý2ËíÇsY4äŠ"JN* (ž%ŒÌÕP§çËÅM_a]¥7mŽË£2a±Ã|
+É¶ó
+Û[¶
+3$TLÔjD}Î-Û+4ÚqnOhÕJ*Ö9Q$äèNXåy®iÅ¹Q¬[žœNŒôO4ÛÄ7£,;a{	^ne*aŒ
+#+2àÌ0Ú0$Ùhpz Cš$BBRåÅ
+Å°âXî·Kå­ÔW"
+Ôžñcê{zzÕÜÄ
+4dkË[Èø§­»8¹ó¡pœ4ÜI
+³%Äc=ñ¬Ðd y°ÓPsTéT
+ÅÞÉ×¬ñMæÉÚc :Ñ¡²3Ééº·åRqTDŒ±+fXXÊïdãgkge
+ÒsMUV¹$·+$iÉ¬Ù,ãc8ÁêÅ(S,rRUUðZ^xsNM*»
+ÉÚ	Üîp.ïÛàÛÑü°1IÌ€ti>QrJ	o"­Tµcâ}ÇÆ±Í	øöèüÉsn
+0Ä§džžä
+R¥
+R¥
+R¥
+R¥
+
+&y¡*ªêD
+¬N#ûÂŠÎúûmOþà¥NjN±8î_
+jÛg[
+ÇšÏéŽ­Ïªµºlëaxõý0V¹óÂõVŸÜ·_.Ì
+kß¿5|YŽ\ËþcÜ=j?Âz¬¬I×Û`¿Ú/J­yüÇžzÔõYX¯¶ÁŽ^
+Í÷[ån®Ê$è¯L»L¿éJW8X
+R¥
+Ã
+cØ.Ð1i:ÆÑ8Næój£
+TL#šòrª¢§**¥Íñ/9{Stã­³ÆvH1ø-ÿ
+ºd|
+°-¯Ý'í7[àa[!YqÃÎŽÖáÂ(NÏÖ¥€EEÌ2åL²k­_1}»ágBv×£ÛË#³Æ$¬g	Åt%9GÒJ7!T8w^±Î.öË²ÏáwGàÀºá÷\#+DÒ!ŠX¡&ðTDzbÐšk­DÛ
+iŸa(Dx~ìòeÞÝë)âj#0s'
+-â.h¢H[Â-hþ+
+w1:;fÇ8g
+MÄÒDò7áÒ`J8€OZ2(Š+¥œ"Š®tîžO_ðÅŠßbÚM,\ÛK³åÊàŠÃíºä
+c
+}.Ê²;aÀw
+Úoí[æA|Ý./ç¥
+ÈG\F
+$q<ŽôÝ(8ÊÅwÇ
+ÕÚ(ÁG£[Ž
+­óo;q$eõ&Ô ªŒbß)fZD
+¢¢¢§"¢Õ?ŠÝvg±»WÓãëµ£
+ÀÄá%ü)ñ·¬WÞ©.ekSÞf»þQÌs+7X¹×Àö
+3Âž_[cÁáœÝÓBôæºsÓY®YõV¥)@)JP
+RiŸåý§À×ngN³v/º<!ÚØmôO/í>
+Rµ{[Íg¬µùß­¡­^æÖóFÙë-~wê5ãðt¢çC1ùrým¥)RJaJRR ¥()JJRRÉ€Èn4f\yçM¶Û"2UÉ9UUy2¯ŠlñŽYÇRv«
+Òé
+ÃfjØ!ŸÛdñ¢"š4$H®(ô œ0òtÉq
+¿ñ-¶Bî¡DW7bñ
+fâ
+*émT
+[L:ûÐDÞßIá*žŠ;@d«J¢fãh£(ø2ŠÃI,³Ãt]MjfJÊQ¶PâtÁE
+Fjª¯Tm.ŠS;÷°³Zñ,|KzºHpaŠc·
+-žÛÄthÖ
+îZ|.È
+tößÇb+lÅœ;lŠÇÃD@4M:-ºæBšNºF+%
+Zrè_cÀ¬7Ì]&õ"áE!·ÃxÜðy÷Ò<Š*M£!  åÈc¡y.6ëö)
+æÛ^»³ksq~æø¢S€ûâ(è
+rE]:@RŽR+dj86ÖJ¬9/ÂüU£nÙZ¢Rr[Ò­`¢UÜ§G¯t­
+OŒ(¶Û%ònŽ·zvù
+$Êb[&#œÌg44l¢¢6€ðdžJ¹ëD
+
+
+%«ÜÓÁ§'
+vå6ÄŠ
+y°#hÄÇ^ÑP92UDDÕ&OØGh1àMÃSØºb9m-Ð$OTrÈtoKc§XjJª¥ ÍŸT8ö{aŒÎÄW~=b#²1
+
+Îsµ°Š¡)6Ö)Qºžµ*$³ky$š°Œº#OÅØ#ÖšÖ[r×vMÜ¡µ
+0p÷2yò5LÕÍD¹cxáâOûr¡
+(ÑÚÒ.íÃb;M:9!"¡$EÒB¹dH«áénb<?vÃÖ
+B4)Dó§-FÌÜ4h1l4"Ý"
+ 
+Bb(AÛX:$æ¡Hqn
+Én%¿Èš`­Æ
+P¹Ód¡ÆÒVxZIo€óMŽÞúIu¬ò¥µÆNÆñYRMQæÒÄ^¶£×g1·r2óœL³OïûÕÅ\¬¢«f¹6y"¯ô}?êüÙ×Á(d©]=â1VðTOZà'­u¥àÔéY4¥*!¥)@)JP
+R¥
+R¥
+R¥
+R¥°ŒÁ]{¡ŒðiŽx.<CÚ6*1§]mÑ4€E5 vçÈœUÉU<ïVµWf\X`jté,Å§}÷@m ²TyQUUy­k×v!q3db
+3
+â^±$Û/
+±%xSxÛ¢Î]**(&\©J"Õi²+s1[«n!o3­-Ûe©Ròš]).ê'.\¹¯IÝ«lYæÒôüa-Ké7W#¹ÊŽY'!"¥J±·mÇa¶ÄàÓM
+§*yÕ)ÍIÖ'ýËáMP[lëaxõý0V¹óÂõV·Sml/
+£?Š
+Ò·>x^ª×ÑûòkóåÙM{ñæ¯¢æ_ó
+áëQþÕebNŸÛþÑx*UkÌ¿æ=ÃÖ£ü'ªÊÄ}¶
+ý¢ðT®oºß,[uvQ'Ex¬zeÚeÿ
+û»ÐÜhãœ,ÕQ3ÈBI$|ôTQ^JæÁ¶ŒUÏÅóbh[
+¶À
+=ºäìÏâîË22#a¬³á"åWªÌUÛv'ÄSnX6 
+UÞn(LÙõ*žãÁ-Õu
+Þª­2¢
+£7Æ+[àŒ7"ÿ
+ã
+©MeJ.?3³¬»H²áøW
+nñvã%ÖcGÅy¶õîÙc$&
+DpUIHÈ,iqîÄö{®Ž5yÁ³.bÊŽ=,¢
+k73-oKYAmQDQG3ÂÑ"Þ±ÑÖí£Ã£YI·Blá
+œÑéHwe*ª¢ª£*š¢_à
+#â+ež.žì08Z×hnýb;|xw6cð£-N»)±VßiŽq
+SW	A%gÂ[FÐä_m×K,[¶ØÁŽ5g 6X«HÛ¢ú
+ÙÝme¶£
+žßäCm¡c`[ÈMÂ%uQÄD
+Ñ)t°Š1ÇØÂèÜ«#žf
+pÝŠþÕŸdÍÒáþqPŒ9uÉÔ`²GÈËOL<{g|{ ]±}µÎ[c·ÆL2iæF÷BK!/"éU-Êps3Ä6Þº²wË`»fh^ºË( @Š&ògäb H¥*"¯RªÈ8ÊÅwÇ
+ÕÚ(ÁG£[Ž
+­óo;q$eõ&Ô ªŒbß)fZDJm×fx{µ}>>»Z0Ü
+I9þ_ÂzÅq­áæVµ=é&k¿å
+Ç2à.,ø1çAÌšZ}Ût	3NBEEENEE®jÀ.uð=
+ð®ÅØðxFïF÷tÐœ9®ôçk}U©JRR +LmôO/í>
+R¥
+R²"Ã¯YcüYm¹ÃeÓ&ãÄQXïÉ!DRT#@BRQ\ÕPQŠ Õim:'­ê[ï£þå­äiµ·
+oRß}ö[¢:
+?{¿ÈÜYmRç«-)
+jKë. "äŒ€šèVS`j|q
+L3Dñ-æ1'
+YHãÍ°æQ[n|Šd(hÆ.Â÷8öÙ°ŽV¡Ýu÷r9¶Û®!Œš!Ÿ7AÔs]Út¡£.;JÚìøÂÝ€áÚ	Uá
+qÍQÓõm¹80tIzSB5Ð%œùÛ§<šÍK<òTŠ¬èë9«Öwðg¹RI5Ot§ºUÉQ­YŽë?`Yx&Í]jñm1«ln©M¬Ï¹ºaÎ®ðPI\PPU
+
++¯w	¯³r
+ÑjhgŸWBnJ¶ÒaZ-&dd
+£ª
+¢ êAé
+³lÇjrß¶ÜdO®Ê·1uó%»#SgÊj±ÔJjkÒ*õlö0Á÷K{Ó­u"$x:aš6,¯tØ74i4oTRDVµæªT
+Œlc+XJ²RÎJžTgI&êÛ­^¥µº6GÊÝI5§UÆÉÑ&ëIg\¢yÓ61œÄ²%®E«có$BÝ%ÓŒ"m€QEmôQ%eíHÈ*"HŠ¥ÉyË
+ÄŒxÎp¹
+À
+8Eö[h4¢pf\A!ÕšZAFóC
+]¹·e'
+aË
+®ùwd§n&,Ñ»)!QÕ}Æ
+r1l4·¥H
+DÉ3Dà°±a°ãžÖwnUíØ­œ
+|±Ò'%§œçLn ¶º[$
+®FªêtØé$³xcR~ª;Ö·æI7¥ÓbÃ$`Ñ©$ü)V*ïZÞ[š·×mº¿³)212]ÂÖõÀîÄñGÉHÅ°Up¹W,<J·«I"õ·q>bn
+ŽÈÓ÷nc.LwmÆa`µ([LTË5"žjª5ÛÃ«Œëœæ^=bæÇ
+Q)_!Y
+8o89+L9]£È#
+D<M¯;-]D·ÌM
+rC&â:ã R
+YÌ4ªäš
+NµäÅ/ÄÃkj¿7i:~·1%dÅtcEÚÉi[$U=dH&&:ŽÌÄUës01¥¿K×n
+0Äá2Qçdx"0ëm
+ž £dùU!EëŸÄ
+Dq»-åÈ$Án	GH6m
+Ç=Hb®æ€(h?Ø.bK]ùp¹@µÂu£vêöEÒ>ì§Å_Ý'+:uÏçY*69,ÒIUºn åªy¬*¯ze­Ñ,Ð²I(ÖOêÍË7TóWLK,Û¢MŽwí3cEÇ0£
+@±ÚØjG
+uªù5.<WuIlÜRw€q
+ÒBš(DYÀÊ³µo²Ýp»W8ó®ûÖ®-¶
+Çeå6ÔäQQÔ§ÒVCo7^;·E±7eœ
+n2*H*Øg¬PµêR^DAàÖö225í·åbÃ6CÅDiIýâQÞ·Ò¡ªj"DÌCW3RŽUK-u^¹:W<ëZZš,-'­g¹ÅÝVP~Þçs«rÔÑXW3œ<vÜóÇ0/Î¿Ô¹}­p×4~
+kÑ
+Iê/æÕ÷ë·¹nÜ¬xê¥fºÛTë;9p4¥*¥)@)JP
+R¥
+R¥
+R¥
+R¥°ŒÁ]{¡Œðip»Í¯Ø¢ßoÁØ
+€IÏ-
+š©"B²ãò
+ëÝ
+ýçH«;cKq`È[ÐèÛYÞŒJ«¥U€\rÔš~nZ²îzãcz¶·Ùu&Ÿàk÷è2î®ùkv¹Ü6-nÎ_ÝµáOþïÏ>û_í£
+~/¹ûMGbm¥m~É.w
+ÄX]ôÙ;€°ž:ôøBåYgÔãÇ 6CtÙSÔnoGx%§Ê*èäNETô}TTL;jÌîöm
+UM£µJÐyeM"§œLÓÓO9QW§¹`Øèóß3œãKd®­åò&°æ*Älû@·Þ.JijØÔ[a
+eÇ
+PE5/)/*¢
+g$75'XG÷/
+5MõöÚü#ÁJÔbqÜŸÕpÇbMm³­
+ãÔgôÁZVçÏ
+ÕZÝM¶u°Œzþ+JÜùáz«_Gî[É¯Ïf5ïÆŸ26Ì{­GøOU:ûlûEà©U¯2ÿ
+Ú§n
+Å³nåûÛìæµÚnžnó
+ÌÈCÎñ@¢J"ñ0áIx·¢ûz]MK¥U°°0þ
+Æâ+'º_pøÜnX~
+ŒâÆµŒLÇÆô÷dú­od?ÒiQÝŠ¡Q%(\Sh"ããÞðë8×^e Äy
+lÒrc é€èÕärVm²ª[ÅáÄ<õ]6Ï®gá/
+Ü·:å¡ÙcžWmJŠ
+ÖJ&:PE2<Ð	;&Ïïö<;Xµâ{g
+a«CP&ÎnF~)î:¬
+!u8+
+6õGç'L::X)lñë3ÖìrÍµÛÛ°,wË[÷2žÍ aâV
+gL4žñæ2"g'îù¥ÁÃvIød ]m²æ4ìËkæì
+
+qTŽŸ#YHTAMÎT-G§I±M÷
+[m{i²ÚÙ&ÓéfåHeÙRÙaÑ	MŸ!Ò#Üº$U^¡dpáÝÞpEŽ`ìXÌ
+;ÍF	
+6×Â§
+³lŒ@[šÍ*keÄG5¡
+ %gk
+íFÏoéèCÚpêœm¹Zà¬õc8ûZ"nC-1 ÔÈÈtKJátÇÒ6z±Ù'án¶Ážµ
+eµýìùÉd€
+ù7ÓEUGÒ'HZ:|f2±]ñÅÆàåõv
+0EèÖæí+|ÛÎÜI}E	µ#*¯·ÊY%@2
+\(¶]€ßnðqe¶Z!B¹Y[»k
+¹2ŠêHAdW~átÍ îÀQ2SY¬ClØÒvÄmLfDx.ŠÝd·ÌJÛí"bèihÆ*á¢àžJm×fx{µ}>>»Z0Ü
+I9þ_ÂzÅq­áæVµ=é&k¿å
+Ç2³p%|aÃ<+
+ñE¶<
+»ÑœÝ4!¯Nk§=9ååUh	R¥
+®h&®6j^Æ&»E±9cÙ-.ÈÚádòÈ"¶ín«Bñ.yr š]x
++à»»vÛuÕ&	ÄhE¹FÂ=Eó6^qEâLÅ	@µ"×flèöLáfjžËŽ;,YâÎfÑž²d8»·KŽ «Ck
+&€ŸëÆÕ+HÖ6rÎ9þ,â¥$éFÜWÚMÅ£]0ÍXµ\2k
+^Jj«iªž€³Ê5IžŽsMµ
+§i[«Ý>rãZZ4bJäT
+4Òf>H(
+ºÒ9d<q8ž¯áÖ[¶[pí¬.L¢¬A5	FÅ}T&PUW%Ë$É:÷(¹QlËû±#Ã¶ÇÝÊÛ
+×÷_Ú6b6Z'2DT®øb
+Œ}ŠX!µslC\IwYH­Ï$žóÈ
+ -9«ÈDš:*Igºj-gJ:ÉŠèõçáUn[K
+sXÜ`Óª¢J:]o
+ªyÑÎ±¬[KÏ
+.µâ4]ÝÚíjä\Y[`?Õ
+,6 NæH¬®8«»D$Ö*ºQ	zû§±ÏàÍÅ[Ò$yäµ=ÔY>B)œ&B€é ¡	d%icâëu®5ÊôìàEiÇAŽqZuæé
+%%pDTLt
+å0
+Ÿ
+n÷ââ[éû7sb
+É`»eÝèž
+äÐ2
+®Š1Ò
+šsÃ'k]N/Tm=ÎJ4®òJ4kdÛåo]N/TRÜîU<æ«\Tqi¥ö]Êû 7"^,ù«T Ôú)E
+Y
+Á	TÜUA
+Õ4ThI;øÄÚ°ÞBñp¶OYÝÄC-QU££€]A"LÚq
+ÌHó
++ÃÖ§a.ÛwaÜ,
+±7¥°û<nnÛ]ê£
+ ©æÐª*i
+iñreFµÜ®¶XódYj3ZÏTsëÏ>L>Ò*|è3B
+À
+Ì
+À$T
++Œ£
+tòm`M)µ$r]?
+¥$ÚYÒEF%)G
+wmJUâÕL1Î®õeÍ"Á&6riKÕŠØÁ3m0Kg'Ž	ª/	QLÉä\kz
+<M7	ÅhÂk§5NNžòÚæn¢êT iÁ-ÚšôÉÓ©ôîÖ±=ºÃy~M²Çhr;¯\9HÛÅ"F·7n8O:é(ÕSPAÍz^åæêÓøî
+ºÛhŽbAnÍtæ2Dq±Þº$M4¬¹©±B<ÔP
+1Ùìí#±ÊÍ6¢Ó£iÅÇ*Éâqo[ðiYQ€kÇÒ;&£$é®M:7á:j«IÑI3§`·Ä±Z.ö[Á['ÍSrDëffá±Á£¿ºMmŠDªë¯th@"ººUwGÄ'&bü!)««D	.K#É(ÊÒ<Ì8®« ¢À*&ì
+mS1ET-(¥€Dd¬öø\ôpÉÊ
+Û uBÕ)-®iyóm×]hÁ]mÈSô¢ë¥c7¿-.vØ
+ž¶èÈÐ+rc*Ó
+
+SÐ6N(
+ykâ·m,8€ÓX_4ZyUS
+šQÒJŠÉMÎSµzÖ)4Õ
+RÜÅÇ5TßjeF£'Å|¿±oÁÖ×pÄ
+»Á#JrLK¹lMôDôŒä~]4ä@¢K]»ëÛ]òÛ.nsnqN
+"lG})Ì+šO©
+(kBm	HSšD<œºÏ¯±p*»¬kFò*Æ(Ã }IáÒâŠmDLu!8ŠèÔÛ<³Ý6*üóQ·ïB$m5JGòFWÍD³aÇT
+7d<šª±£HÉUQ9J/zrªªË
+×n©æÛiÕÇ
+fª¡'ñ,IQÅkÜŠêm¶Y]ßíÜWrXšöù²i§Ú5
+*MºØž5ÈŽæª¹¢*§*ô5mÐprUBLý*È1â³*å÷·fï
+e7Íºã(Ð""£]*dEDytæžíu;išBÒŽ÷5¯Ðúºé9ZXEÏÂ¥JÉók®¬žI
+RÌ"
+¶.k"ÏH/S.ŠjšŸ¯'¥÷ÛÆK£¢'úš¿ßMþ
+E-Ò1m'GäóZY®zâàG
++r'ó5¯ôI4ú¹/ßÏÒ®"EQ$TT\Î­6×k[O}4×¥U
+ŠùJRŽ
+R¥
+R¥
+R¥°ŒÁ]{¡ŒðidlZö
+àé3Æ;NZã+hæ¥mMŸLRç€W/;ÕJ¬9^r6ØÌGŠ:ÓOGeA
+yR,@2B^¢j!L×Q9k7²³AÌH8Å
+2ÃHÓhŸÌª"&k>¢'ÞOA*Ï¹í!w¹ÚÛìéŽÚ¥)Œ¢÷Ùïuw{ÝÒá°Ž³ºïÚÚ­âßû!onì¡8`HmïPK4ò¹ÿ
+Zó/ùpõšÿ
+,Š¹ÏºíÖØ1Ìcª.D¢ªz?ã;ëí
+á~xäµ=øF£€ÌÆG#Œ9pr]n­æßH{Ì~	z;Îà»++Ö
+kmÎäèé
+÷<Ù©¢Åg#W^hJH£å
+hø«i6X.\íÍ]0mŸØ¯OŽHãJéÝZ4ø¶F)­4ÉQS<ÑrÙKû*¿àµÎÙ>0n6áo8Ã	)²o:»¡Xº5dâ¢
+$MÓzVI¢·6']&ÙÍ¿v}µðØSø
+GáPÞGE®`ï<PYä¢¢×KcEÓŸÆï¿òtüâ<w²übÍì@õÎëÖº
+g£¶bé
+º, 
+©ÍI§KÔZ[jË
+Sç§
+÷o%f¬íOcðŒ;ÒzžU2©ßÇE°ã ¿â$¹Ì¿?tq
+°mŽÖcnä|à·ä`šš
+Ò¢Ÿ{¿7Ž;¥Öñtš°bÉ¶ÛÆà'¢2QÚlwz·H§ä«É];«
+
+ŽM¿áëÌµGË
+ú D}çzP¶mf`
+VÎÒ	á0ÑaJiR²ÂéÓ¬âèw/Ú­xÍ®|mšÀp¡ÀòHóãGgSdhØ*¶€BHª­ ¢þ¥Æöxì¢3*aÚ-c¿ž£
+šaŽ3Zy×u€ºŒäNù«m×	YïXëzrç¡$VFöCç
+­dZÛ2m
+õèÐš÷q·ÜO+
+±aräÄ{Ã¯\£	 14ŠºçÈÐªrY&g€TÊ¥\ §YNs8·,p'4ã{º>¯Yb°ÅZgE(7%HÇ
+ZqÉWrªuÊæàxsÜ0åæ_E§ÜäÁŽûÞ4º
+jèï5&œ@
+#õðî
+v[£XºÓ~.-.ÈUZ}ã²ùÎ«{Íá
+yä`h€:W>Åñü5J7ìø®X×øÀãmJÛ¯¢ ()+Îé])»y2ÔŠ¿v[=Ýüs{ð79
+Þ=#ÆËÎ(ÛbÖR
+R¥Í+Ë^Wv:}§/÷çýy×
+s;ÓEdªAýIÿ
+R¥
+Ò·>x^ªÖêm³­
+ãÔgôÁZVçÏ
+ÕZú?rÞM~|»0)¯~2üÕñfÑs/ùpõšÿ
+R¥
+3ë'¿IZ[2
+R¥
+Ìim³¯·[EÈåËÿ
+£Ê®N¹äkJ'+Tü	'Ž€°ÅŠ«®y%\T©ÚÆWü<8XgÅYšMÃ
+*1*C
+£QÛ`Üo27-Bšº\¥
+@r<&
+öÒ>àY8ûz
+/%"$ÓF ºóR®Î$Å¬X/žØnónVæl¡Lk!žk7d':ªJ-nír,>	3·qÙ°ÁR5RÕ)Gð§ÝVûnŠPØðÙÒÊ4YJiæ¬r×ÝRUW;bY;JÄË"5úçÕozÚó-+
+"DraÍPHÔ
+õUL#qrÊº	íÓŠX0ÁO6ßÃ\næËš
+Ìp&!%
+üµ¹¥wÙ%ÒÙwžâL6DýÎ>
+€-ÍÉÈ«(ÉxÜ¹
+ë­>,²Þ@mw¬
+	rETËYETvxuîJUyð7õRu¢f+
+¬°å-ÂÜÆJ9VYæèÛŠóN­FG^ÉhâÍÝ£âpå¹¹­±*)
+@[£B$ÞBUÈBÌµ
+èÛfŠqØÛnÌèSq
+QÒãyHŠXvË~%oÎ»À·9 
+M>áFžÆÃJ$ª*¶\!5-NjÉÕU+§Ã"aü
+ÔË
+ÖÙs;t§!©39ífR<€äFØF1]"ê "WÅæ%Ÿéf°^ñîÔ(³p
+
+m:šóò\eA"lT×R škSÊ¡ÂÍBªUqo<M<Ò£Y*QofÝ®~YÙ(a«eóÆÓÎ+
+J[ÙÉÑEŒûå|Þ0ŒaÇeñ}Ý|y+lŽá€b`6Ã@¢
+"KÈF ÔŠv6v°CŸÏKìn"IDeR1;3äØ!©(©!6Bj"9iE#ûºÞ±=ËaŸu¯ÛÐ,£z;DÖôÖ[è;ôé 
+$®
+šò'þ
+iÏÍ\±4¿ô Ê³ï¥Œ-â¡gçï:]2_é»7V>
+ßqo9V*ï×JÇÒvRUqTÍÅœÔ«OÄõÕÒ+Ð¶±yÄ>'^/ËmvZÉ5ÖÎSmpfÔ*®ï	á
+:J/*`*p5Z:gOÃUMÒ;xÈylž­Ê¹²ës7Þ8ÑXÞžz<ºÛ* º€]ç$è
+³mX¬x§[Ú·Èa.ðeVàa@U]Mn!æ[µUÔnd\µ×vÛ
+àÎ
+-v¡Cu÷
+µŠlMt
+¡I
+Þ ¯)dºUŽÒ\«ÇyÇaºJ»D·Žè?pœ¶E¹7$«+)MÅq[Pm4
+yD<ëL
+i
+ÓŠêYŽÖµ
+UçE¥+**ÖÍÁ(îÍË6y¬)7¥+*E:áJ·nr²Û ÁpïËfdSu	Â3Ê6Gäæ2UGrJâ¬Œc~Ôègd	wæ}"¬ÅÊ>­G©%µ" Ü") žºTPË
+Ä
+[ÙÆÖÍÙÛâàFÐ{ÀVÅ@È³]I§.\×:¹Ðr¶µ
+Ts¢Í×:Ñ·ÒÞ\ËzW:"Rk(Òª¯6Þ(ºIÊºn^æ+U0šÙ¿Ç
+O9
+Q=$EÉ¿")¢ÛÇCEtq
+(œEË}EóëâŸÛtÛÏAr/U3EõQyŽìkO<ñu^:·ÿ
+r*ú+äµháÝ[­3 ôèã«¡°DQm§Ì3òAéM3\ºŒ¢¹ô¹Ö
+³@°Ú·[Ý²
+€KÊNDŸz¯Ä"%1/%k©åÙdm}WúQrêrW
+
+è/ûçðñmF×pÞþo&ÞŒ%DÕiFèÙ¿bPxó-4Ã Ë-M6( 
+R¥
+ªrfZØ.xóüâýå1ãUe¥
+µ¬äìm]£4ê³ü+,ú}ÅÖÂî5%Tì÷­JâLJusÙŠJ0HOJzü9Qs\òN­g×¡ÙS
+YðþÆvîÖèìÁsjL
+¶EÍH*<Ä:r¢'/g¡Þ<ÿ
+kß¿5|YŽ\ËþcÜ=j?Âz¬¬I×Û`¿Ú/J­yüÇžzÔõYX¯¶ÁŽ^
+Í÷[å{n®Ê$è¯L»L¿éJW8X
+R¥
+R¥
+R¥
+Õîmo4m²×ç~¶µ{[Íg¬µùßš×ÁÒ
+üÇåËö5¶¥I)
+)JJRR ¥(
+&[£_$ãBŒH·ËŸp³·
+6«Íÿ
+.q¥pÆJ²¥Ë
+ŠŽ©ós€
+äqkû	+ŒÛ¹§Ü°ÝÈnÍšëä-"bfãeŒ\3ËŠQN8žt lÓ,[¯L€InðG6ÀÑŸ²Sq3T\Eµ$EED.L/
+X1ÄL1q¶ÝÝvèì.Ÿ&Óp.+oW ]àëÝoÈÉtª fÓÂ8~X-áÌ^Üžëpn[2$yŒx
+ ê)žžLÑTõK­G[**ÆUüRO,kþN¢®ª19Æ.SR¢¬'_Å4òtjJÒUÕ
+pðmºmªÔÛÃ]fkl=äh
+GÛ&škšZlQLÈÉTx]üYqµá·X}»E²çrv:ÁfRÌqÆ
+Û
+DiÄD7²u5tÚ&K­zãsáVë4$²ì[T19ŒÃ>ú²Fk»Þ+êDo5Eê/$× [ð
+)'
+Éz~Ô-ÀÍOJqù/®Jð¢!!ŽDª Jh{RJjÊY%&°ÕÖÍ6ÓÕ©t&³¥
+Ía±tp&Ô°Ï5WUhž(Î;7kVý¡HÄRî°áÛcžëç$WÃ(,²­5Œ5V
+E"E@BU-b
+ôÝÓbÖÑg²B:,§F.€WÚI:HnŠn;€Q	UÄm5*ôÝ|O5ñ»]òùt
+"DBºGtd¹ŒûH­£®ïT
+2U$m3NÅþí~ç²Õ;VäÜ2žLÜb4Æ^%qPÍ
+ä
+Ù	ô-é>ý,[w¹y2\YÎGá&£C7
+A
+úeMâä*J«ØÃÑlqsMþô7
+A!%Š€ÆaçsqÂ &ädb$:
+7âeÉ¹åÅs1)âN7n%ÍÖmfŸI»(æ¶MÏ!k7Jå.B®
+®Œ.VÏrÜ€µÓ,©Â4y4ÒÒXe+ZçX7&kMÊÃGGîTÓ]<Opz~
+
+élÓ®i!žšÃMîQµÒŠòžNeÓr"èR.þ$mÂs-Xñiœ-Ù 7¢ÃbìX¬ŸMŽQ¢%"A®
+ÍÇ
+Þ¬xR%ë
+G¶N
+ÝìšÈóA56ª
+«.9,uñeÇÒEÙDÍHŠkw¶v}äR
+­+;1¿y#ÈÎ<»ŠUyTÕ±sx"ÛŠ9 ­öÇdáiqpÉø2Nµto
+ß£qË4Öµ×[IÓ
+ÉË:Ië}4ª£©ÔÂÖí6É¶ÈÚ&:öW9vâ&E<g]mÖÉQ	Åsù$"J&ÙWŒÅøBá
+S¶S-ëºãbÈRi4	©îQéò!B"U©šöhŽ©×~yl WÉ²³t)
+ß=¹3&ÐT\xGRT5X[5ÙÜFxœÔ{L'ÚF­­ÅFyé
+Ž R6·j(Šmf'¡£ã«ª×¹mæšëL
+u$÷÷4y€lÙ%lålµîÃ*Ó(ŽÓÔÖ÷-<Ò;wkÒY0\yRCG!m.Ålm·ÛÈ]9:ºÅÞJ$"âÏ¥ÅºÆ
+¥gåøOi
+×ÿ
+^®ž-r"çd/*"äªX)µñ
+'ºÙwü#æœ{£Nóvj:²ÍrÏ,òÍjT¿ÙŽÚø4R]€ìô­œR$¿T_Át×)h%Í(*Z/è¯*r×sHé§}ÒŸšò~m?~žk- ŒÍ­MÕtK5îeÌ<+é·
+²Ì	QU2_M=ôRŸiQa9YÉJp5S
+&³BDÌÐõÏOÍéò­rÇMm!¡+^QùYfª'WûŒôË
+Rs4%Ô€v_¯Ðôò©;eº]úõ
+Ž
+$v{
+$bË³o+Pãš§sE>\òEþRäŒ«È*òò"ì
+¶
+Kl`Á`Èém±ê"~µóÕWWjÀ­MÛ&F*tÅ/B6âùmç¯^ŠYUVC_&Ó×«kÅªkfüŒø_O
+ÖœîuR\â£±'McÂyiÁ|ä'_K2Lý*šÀ%¹ËlÑ²H
+*:Û'ÊšùAä$UNUÒš¹&eD­ñÔ²R}Nª+
+Éª$«d÷1YZf°ðt¥*°ÌR ¥(0 1BLU3EOB«Uir×p@sGÒ*gÈ$¹iåôO/¡êåVEBâø*Ø¹êÉ@²TäL}^¥[è;êºß"çà<¥ÐÕ
+9èÝ
+-#%g|·
+ÎÜqËÓŠmsË#D\³ô¹j·ÃÑ6m[p"óªê-Ê<Øo:eÉ§!'õ**V
+ŽkD»GNP$¹EyUsåÉrNŠ|ŸuW[Ã»ÛÊíiM®µ¡ª¬HÀ©JUÑ¬R ¥()JJRØ^`®œÐ¿Þx4ÚêÕ
+`®œÐ¿Þx4ŒnÛ:¹büQx¹NhÄm6kd(nCQ6î{±q^×®y6H:"ØÚØYÚÏgähÞmE%t«Ê®o²ÛLÊq¹ÜÜ#ìo/ÿ
+ª çšQ¶ÉQ3!"ÈTPñm]ï31=Òyøu|DéG$-®*jmHS1@T@×Ó`÷;1Þ±}Áß
+dã
+îŽ
+ÀØšª2ð¶:PrRTÕÈ¹®ÃØ­Vë
+Š=ŠÓž£
+ù9sUU^U%UURUUUUUUUU®«HØÝî?ÃE)ÎTxžµNóÑöÖ÷ë_â[qªQá|ýÆ³ŸŸÛSÿ
+j¹òðÛg[
+ÇšÏéŽ­Ïªµºlëaxõý0V¹óÂõVŸÜ·_.Ì
+kß?5|dm2ÿ
+R¥
+R¥
+RiŸåý§À×ngN³v/º<!ÚØmôO/í>
+Rµ{[Íg¬µùß­¡­^æÖóFÙë-~wê5ãðt¢çC1ùrým¥)RJaJRR ¥()J&Ãüã&C¹ðf×r··Ã&Òêä
+×tš|ºr>óDL
+ÌUá¿í÷
+ÆÏoã!3
+[
+¶ÐÝä
+Øò8â
+¢)f«bžYvòí²knº|rnyŽh.3
+²ÍÀUELÅÔ©¥TQ3TTÉãÄ"á
+Xd0ìEnFGuèªOŸI§J)8¯ñTQDMJŠRØ/Xéª¹º8¥8žæª³Åw©^gÌ_âì¯*iS
+«k
+SÉÕU:¹UõkUÏ³®,Wf®®Àrçy
+ÈôéFlK,€a(ÞE}ÅLÜ,2åÔµ³Ï³mç}{NßAÄ»]2±Ú`Lôµ­
+PŽ¢ç*!t.Q¡Ù°¢é.×í"ÏžÓ)ó9&A²T=ÚhM ºTµŠ"
+Ÿ\x=ÎÜFì¥9]yrCîª ÄN+!ç)%Dh¢¢æo:­iE)UeD[ôÖVÃ
+`æ³ryÕkRªª¢I-údèrF
+
+-¿áÐm»<XóYþTAðë	$TÜD"q@[U!MîHj«<NÍtpeºÌi2ël&ÍýÙ6(Ü`BÒ¿!QÔò©¥SX9^
+
+«5¯!RS1\¹±=ñî"³HÁ×[ÍPQaXží²ÛqÛ%SCÖ."è#QQ]H¿ž^EÃÚîíÝ,³4ÂdâÀ	Å}§Õ
+Åm·
+ÅBDÒGšŽçÅ
+÷Åû<¹.	~ÄGc1(ÈÕIìÌå*¶K m
+ÔD<ò'K)÷èÿ
+=ÖäMîŠ²]}Á!A'WR8àfj$4ÕQÎ
+8B
+3¹Ô»œJY¢*"`®éÙÅÚÑ¬áš«TðÓ(çk£k
+K
+¥
+RoÁIŽÓÂ«¹MÒºkÉÄÎØìkwyÝðÔÞQ[1Íäm³1"È
+
+bªBaÀÊq=\®s ÜÜf]Î;0ÄVÅñtÈòËçfJUzRÊs?,ØÎ}ê\kËãx9fš$,FÎC¬9ž
+HfïHb3"McÓÆL\­XïßïlËd
+9Ñ p¡!Y{Ô6RåPOR" 
+*¶kg*ÿ
+*ó5
+ÄðÃø²È(
+wÌ
+¢k
+; uETQ	=å¯5åz
+Á .VËëOG ÔCçr
+òõ9.ûMMM
+é$Nš$Q$Ï+º²áÎ$Ž³0 }5Ëú%ý åå
+ý4ÉQù&ð2BS+©é4Oè&iÊ¹rŠj¢µ
+µÚÊvnÚîÝŽü(×~«'
+ìYfèÒª¯©ºÑªR
+ëÝ
+ýçH­¯q·Ö]6^mu6à.D
+ÔÍ?©U=ET\ÑkRyc77l
+CxiæxÙq¢ÉEQ0T .^BEEåEE­è+°æ_Šü¥D³m
+¬dªÿ
+Zó/ùpõšÿ
+R¥
+:+fhåo÷£HnLgeæ
+·%EÍ9QQys«;
+]·íÚãZ­$õ·»qu¶xI»º
+«È€oHjr¯Œ©l»ÕžÉk¢ÕJŸäµ6óÊ­Piš:9(Õáo]<
+êøiZ%o<ª×R×laÂØ·höËÈgÂ.ãy°à±
+1ÍP€<G¥MwdY§ÄŠæc
+
+mzéwŽ[€Dv[þMX-Æl
+t¡6­Y jSïZ"Yæ¹ç>Ù!û©Åea¢«&Üf.ž`
++€"Ú¶$¢îJ¹·&»\quÿ
+š]ØY­x>%œ]$Fž0Ó1Û
+Ü
+mÌb:4Oë÷->Jd:EIzmÞâÙp!=gžS v÷d¬ }dÈjªà
+f îûØð$áë
+óIœHž@ÑHmðÞ7<
+}çcŽ)¡hæfH(9rè\#fÔhÒ¬£T·M<ÖMdŒ^œ¬×+&£FeÒÝÉ<ÕSKÁx]]+S¹*N$-¡b1º-ömÉoH+®f±Ö:ŽÚª*!:¢ÓZUss-"ª8P-ö[ÄÜ7gnôõêIÔ¶
+S\æc9¡§D%DmIÑÈ\1psÖ
+<7uûÈÂóm¯]Ùµ¹¿ž¿s|QÇ)Ò}Åq@t
+B¹".H F©]c
+¡Æ
+/
+Ü#Ý±¶æ/Ü
+
+"V[ÒØšëiIsRÐfßJªJBVnÍÙN5ÜŽÔhšâè€Ój«Âmd³K)a
+I;'eJµcLJRMªþ&÷³Iç
+ž:ðÖ+!Þ·,â³5ŠeÇÜ¶è6®ŽBF"ãé95kUAÓ¯îDiø»
+MQäæ«G©ïÒ»³;kGm+JŠã(·*îi*ÑÉVþ5ÉëäÄ·¶kuŠù-Rçâ,2[ÆR,fÅÝ +ºIÖÐÄE3EoG,ø1câž8®eÖÓi	š­±Éâ&§3µàäjž-#«	 ê×$v«u
+O2"Œ6ápZÉ1?á<'-®a?ÂêdøJuâ
+ºŒÉd³êtùg*&95/ûÁû/Qœ
+^ì_%ÐÚß1ºæÉ'ò#O@œëêýÿ
+ÔÌ_:)»Ó«î«ÛD
+§^QUDNO-Õóªd®êësŒ§<«]å²ð³Üêt®YçqI*®Ï-a
+p(ëBWyè¯ðu].8Yt­ò¢ ¢ŠyæªKÔ¬Ÿ
+n
+ñçxñådÈr"""' ª«ª
+6¢ë!'
+uÌ·ºjDY~dåUÒ"f¹"g]ù
+úûâwN²¬\
+Ñ[Ê¹º7ª*3£kÇ%ö£²O<Z@róUUW$DDåUUÉUrJäšæ¿\ÉÕå
+ô³òÒše
+§Õ×fk¥Þ6®SŽð"ªé­ï$¹ÛË~®2ŠHä·°ée6`å-ÀÉC4T`W%Ý_Õÿ
+R¥
+Tæ€ëþåðŠ«è'Ì­¶u°Œzþ+JÜùáz«[©¶Î¶QÓi[</UkèÝËy5ùòìÀŠœøÓóWÆFÑs/ùpõšÿ
+R¥
+R¥
+R¥
+DûO;(@vÊ²TäÍ4¡šé€Umü]]1KÍÍRµœ×°IÚœoªé{Õ¥3kzxPt]
+ënâ|*ÄÜ9i
+§îÜÆ\îÛÃ ÁjQ
+
+¶©"jEpÕTk·_ÖÕ~nÓtý	nbJÉ3èÆ
+µÒ¶HªzÈLLt#i#ª=L=#L?v°Ú¬±áÄ¶õá÷
+ÉètTbÒª(èUFÉUP>ßb"8ÝòäCGà·	
+£€I6
+ã€1WsDR4
+©`²ôÃ\Üd*ñjÔº37€¬í#c%ªN8+ºqTr-Kr³ÞTÎrí
+4\yŸì
+
+­£ð6¯RãÅkLgŽ'zGÍB*ÊCÓ64\y3
+0Ô
+
+­€pÇY¯RãÅwTÍÅ'zGÉœ$*ÈEBûÌIk°_.(žNŽnÝ^ÈºGÝø«û€åqÇQ®£yüë%FÀG),kyºñÝº-Œ;-ìH$|gQíô¢FØSqRAVÃ=b
+¯Rò"¬qux\
+[€pêy§Y%W3É:v9ZF6-Õá
+[QêÔ«$yó<©ñ
+#ÃÃ
+ÝlÜá\'epr/2àÆù££E¬HEvœ:8Ð²
+¬W
+
+/K$\Eè²28µ(m¶èš6.¢ÈQ5
+ÁÇ¶ÐÎážÜJãG*c#$®oœ+º©S5.ERwO¹µ¹sePn
+6Ö!îü	ŠÁD
+Á¶
+Ï5hTR4Z{Äí\ ³JIIMQ:,9ÒUYçDãS=;Y;H­ÓÀÜ€«MÊq£Îù­:U3ët
+,\#.üõ²s£hFU¥m!7A
+­¡ê$RÇn7Ÿ
+
+V=-Žè<áy	Ê'7b$Y
+45®é
+IR jeÆæìÞ)juªÕ6Œ*Sy.zç³.®)xSÉ<\ÎUzå«y*ªUëyÔí
+qž²
+pÛÕ B,Ñ°RSé}Ôª\¯µÅ+¥=ÊyVù¥þõþl«³ÜpdTÞæŒÉå%êê®~šð¢º:Î$ê©ñ/÷gv6ð³±±Wdé_Ä÷³«³tày·nžRu."³ªÿ
+3qœEiPP¢"æL6ùzŒÔóêúVkÏDÖŸý>ýlVÎm<MmñMœ{çókAk>P«¢ òÿ
+d+ê¢}ìë»hžFºA	qŽL²óÄÎTÿ
+gérW6Á&Œ àf©\šŒjlì¬v*ÇZ1MÔ¥)PLì7É`ßWtÈµ©:£¥Ô+çå/R5
+~íû6ŸTYi¯(Þ<ùv
+º)J­3 
+T<K-WDfsþNdæ¬œ
+ô~IèWeQ2TEõk©
+PîwG:«ÂDQW«§t
+êfD¹z*Ÿw*óIåkÁ
+>Ä_Ç3\5z~%_·@[>Ë=ÿ
+kß?5|dm2ÿ
+R¥
+R¥
+RiŸåý§À×ngN³v/º<!ÚØmôO/í>
+Rµ{[Íg¬µùß­¡­^æÖóFÙë-~wê5ãðt¢çC1ùrým¥)RJaJRR ¥()JY6&'NonÞãËo1CnY§J*Mb{­á?Ê%4œDÌ©í«þØ[mù
+o®
+²fÃÄÑè3@$BBLÄ9:µú°uRŸÿ
+Ù>j'[37
+
+
+ýÒkm2%W\
+{£BÕÒ«º;«Oãžvëm¢Ð]»5ÓÊUÆÇzè6$Ò²æŠÄ	óQBãÃ0à7XrÄ
+È¹âI
+"hd:Â}³
+­eòâÔäÌYgÖU¢ÜâKeÆæed
+¬0
+#£2#¢ñQ¿±YÝÂ$2;×"§¡4ÌžûÚ7§DÄ\rC]?&­:µõíÉ76$KÄžöëSí5038<7Íðtm±émEÔsÏF¢C=(±/âžqíXVïwN8à8±ÎKÆŒ®
+
+XVþ
+z²\ûÌesí\æUÁøÀ·ðëY*.zn[€Þ(ž[­ž°oŠÜåb(QlÚr8«a5¥5y\U5AO
+C.Q-UÝïWÆë®Óî÷|*A»£<³ËR®Yäy+¬ß2­yá§È§ÞLÿ
+æé×Ü4 LÓP§ õ.iýUÅ\ÉÓC$óÛ<Ó/AS%_îO¿K¿ú¶s±|J×ÔãZðµ
+
+t_!qßLÑ/UôÒ_E9Sûª
+
+k£6p}EE®ÜDBs.¯"TeŸÕpNûSÿ
+õ:µ#QÎÿ
+ dÔDJú©wÛÂŒ^'kDÛ¢à[Ë¡*%ÀF1TIØeðhã;œ<ÙÏ<õfóôŒŸ_ÕXuJbËb[ôw|Û¯èôéÍŽ\$þJ'WÑšºï®v[Þ{ÉdêÅ)Jx)JP
+R¥uó uÇûÿ
+Ó}ËûO5®ÜÎfì_txCµ±8Ûè_Ú|­vætë7bû£Â
+ .Íÿ
+R¥i
+ÊcYwmò$Ù·¿
+È5rã8Á7;$ª:AÑ%$qQ
+ê¹/
+°­°qDìk·žÑÂ	®¹
+
+	ÍEuÔô+@BJÙ®œADCÃ²1
+
+YQ#[#Ç%ºI)-
+på«äjÚ³.JhL®¶¶vÚx^Øä»üØçv'%9%
+eðm­&H¡!"nòEäír¬ÄÔZ¢Ê]k{ï­'Lâ-š±Y§Æ2TYaÂè€Ö%\tçIäÓ#ív0þ»ÄÄMÚ®Î3©Fj°µr;»§Q¯æB
+`+Là¢qÜf-ÀÇv)vžn-ÌžH5
+Xi°h³DÏ&VB!8hà¢jÐ(žÈ«w~=ÏY]
+Þú/ÏV
+
+`ëþ¢ÍUŠ¥(·ø°ÅÓ.zç\K;VqU$«)Eºî²TÉogru;7{ÅÆíºáò7»ŒÕ2
+DYjpŽ¢kp²MFYdªäÒ
+"yÕÁÿ
+RZf*æ\"ûÏLPWÏÒ"E
+R¥
+R¥
+R¥Zco¢yiðµÛÓ¬Ýîv¶'}ËûO5®ÜÎfì_txCŽÙ³_ã·­/þqšë
+ìnãáÊÙ¯ñÛÇÖÿ
+TûœÎ*5Í€_àÿ
+R¹·úù
+ïúYä_ÏþŒëºÆñic\'­kO¥<5VG&sh`¹Aí
+8+ýÊçýÕúÛ"ZM
+2D!ÍQzœTå\³ÿ
+R×Ì×
+ïüÕ±Û{p²»£¹òàK'¢4Ü®n¹Mé!åLÐ=E­qæ@ë?÷þEêÙ]µ7œÙû­Nåm¿9cáÚtÿ
+kß?5|dm2ÿ
+R¥
+R¥
+RiŸåý§À×ngN³v/º<!ÚØmôO/í>
+R¥
+R¥
+R¥
+R¥Ì}<VËÏmTÔ^Tÿ
+A¯M ºt"Lüò#D^O+é-Rºmlÿ
+¥¬Ðüäpú}4N\ÿ
+zyªú*«çªõsóêöçeü
+ŒKýÉx<ËÌøo**ëÄéŒ}×ÄËVøKøŽÃIšÈúúÿ
+z7ëB~QZµÌ×
+ïüÕµù3ŽÛÑ¿Ùÿ
+j·DÖÛ:Ø^=FL¥n|ðœU­ÔÛg[
+ÇšÏéŽ­Ïªµô~åŒüùv`S^üeù«ã#h¹üÇžzÔõYX¯¶ÁŽ^
+Zó/ùpõšÿ
+`«g~«_€Ò©²ªbò
+=?KÓüÕÅ_¢ª$*šš¹¢§R¡xN*ËÞá]å®nŠ-o¢ÀÃ;Tœ[YH÷FFêÐ@d{·S3,Rr/U3U^U¬Î×µl7(ÙnKSa¶
+ôUUœW:»ÑðÎVø2mûÔWŒ÷gÞ-ÉB}æô1
+"ôÅþ¬Ñ?­«çT*ŸäóWN)dªó/KQu|ïKÐå¬-«ä}>HË^ä¿pùÄLÚiÔU<òþä©6w;ŠW(a|gFúµááªnIêÔxäåá3>N¢"dÐ¹Þ [W'Íäê6ß)ùß{«.UÉÄ7WÝ$
+h|õoúúµZ£päçm*·é},÷5ã].
+
+P>ÓI
+R¥
+R×Ì×
+ïüÕµ8óÌ»gÙþeµ[®8ÿ
+j·DÖÛ:Ø^=FL¥n|ðœU­ÔÛg[
+ÇšÏéŽ­Ïªµô~åŒüùv`S^üeù«ã#h¹üÇžzÔõYX¯¶ÁŽ^
+Zó/ùpõšÿ
+R¥
+R¥
+RiŸåý§À×ngN³v/º<!ÚØmôO/í>
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥uó uÇûÿ
+Ó}ËûO5®ÜÎfì_txCµ±8Ûè_Ú|­vætë7bû£Â
+ .Íÿ
+ZUêòÇiNêÞ­	oª®yV©¬É×iR¡³W7×,`ç£{
+Æ8õ£6»h©"çLå­Yï¬(ZYóRuÄrøSUfUgÍIÖ'ýËáMVÒ5¶Î¶QÓi[</Uku6ÙÖÂñê3ú`­+sç
+ê­}¹o&¿>]×¿~jøÈÚ.eÿ
+Ó}ËûO5®ÜÎfì_txCµ±8Ûè_Ú|ªG	â
+Ã0ôè6ýìw8Nß69å%Ô^E$^ª-hì×øíãëKÿ
+jœ1&¶ÙÖÂñê3ú`­+sç
+ê­nŠÛ:Ø^=FL¥n|ðœU¯£÷-ä×çË³÷ã/Í_EÌ¿æ=ÃÖ£ü'ªÊÄ}¶
+ý¢ðTª×Ì{­GøOUé
+>~û
+ñÖ5Áë®jh@Ý#@²ŽŠh€ZJgÈÉrUÒ£Í÷[ån®Ê$è¯L»LµiXÏ>¶¯¥æûñ©Ï­«éyŸÀ|jç
+&¥c<úÚŸìÆ§>¶¯¥æûñš
+óëjú^o°úÚŸìÆ 2jV3Ï­«éyŸÀ|jsëjú^o°É©XÏ>¶¯¥æûñ©Ï­«éyŸÀ|j&¥c<úÚŸìÆ§>¶¯¥æûñš
+óëjú^o°úÚŸìÆ 2jV3Ï­«éyŸÀ|jsëjú^o°É©XÏ>¶¯¥æûñ©Ï­«éyŸÀ|j&¥c<úÚŸìÆ§>¶¯¥æûñš
+óëjú^o°úÚŸìÆ 2jV3Ï­«éyŸÀ|jsëjú^o°É©XÏ>¶¯¥æûñ©Ï­«éyŸÀ|jÆßDòþÓà
+RüÊ·Èþg`xÁáE6æ.è"Ý«.ŒNr
+f¹¶+êiäEU«{Mjãx~cbÛrCDEäO;Ôš<fÃž[CÁð°Õ]²3ÁpøÛó}	U\W"RR%TÉ$DL
+Ó«ïôî·¹#V¬ú\³ä¬fÅµÈW]övî£op÷Ú³Òcä
+«æÉiÓÉ¬Ç1Î/¡}ÿ
+HŒâÃ
+«îÑACÍr':'W:Ì0FŒXñ¥õ.LoÁì.Fje!·
+Q7y"äªšŸ)wÚ
+³b¥«VQâ»tùfAòdAäq²Q
+Ú*jEAÉjsÝ.w¬/ëx±»b$Ç :îðÙMK§Räª:IQQsÉS4ZÆq>1DÇ±=ÅÐ²CÀÍ¶[;FÎSŒ%6¹ çæ«MÚÄlax,âÙdÞÛOBEFT%A$EDåQÒ«"jÏ$DÊªÎÁ¶
+MÓcW
+¢¹p
+ãOÁÞé}¶·=zÚéU_/Z³*³l\l
+×.M°Š%ªcrmc¿;7ÆäªÎµÝ§³,ÑQA¬tP
+»jxMËUŸUÊw~DRåŽëÌÀáBÐŸøí¬ÕyÅ
+Ó%ÉR£.\
+ë »nàÁ8.rŠpÙ|B%©AVò"D
+BÞ'L=*)&'#cx¬{Sìë
+ÿ
+Ó«ïôî·¹#V¬ú\³ä®,1ŽleCeŸµ)ÙÀéÆEeÆ÷»µò@E1DÞ
+*·åŽª
+ZUp®
+÷þ>ÜðËgsïÏg
+Þò¹ð}Î>[^ó©Ë§>e÷ûC^2Øç:ÜkÃ·Nï8V­Þï0LòÍ3Õ§/;::žâÎ/Ú=«	Lºbíç Îßgœ}¥EqÚcj¬zÓfø³K
+÷Æ pkyN}{Ûí|1ËB?¥EœD	3M>WGmž:F:ÙÌü= ÷
+§"»/=
+ž*DJ*¡¬sDþR§QV³ãÃÌH5
+;
+ ³¯aÀP×É€òÚ}?ôk%pf°5ÇXTU@T+«)Ô"_é¥ZÛdÈÙÙð#"jÛ,@öó&ÑÎHÖÞ¢'Ò¿è­wFÆ÷jÚ3òMye
+Ùü9ÿ
+ôŸÿ
+!¡.}7¥]^8ÙôYÍŸæÑ°bç
+íùQSúTÅ#ÝÇ
+6pòºÈ:;BÆš&(I{fy*íköNy/G= ãDq¥A/ ¶uTPŸô	+æ>,À,Æi8(Ž|vÇ.Iô«îç¶~ýÆT¶tŒbH
+za2é£LR8%aÙGiõÚ1Ðö­
+AlÍQ%_âŸæ®EÅž(qö-Ýï7h«
+ÛÊ¹gô·ýç]ë5À/@
+6
+õ0ŒrÆKftÕ3`bŽ$AÇžM\GÕÌÒîÎY(¢K«ÉLR<vV<Íé«$1æ(ÝëÐ±­Ü«KT
+Öå¢09Ä:\ÏFš¶õÏ.O:=HÜqf
++_
+mÑõs4º²©OéV)ÄYèqÚkaó&²žŽš¹®|µlÕ+;>Ac<y¬°f=\Èí©dì(Jå"äÊVÌÖí&ófmº$[Å¹òyµÐ-ÉUéW$^­n5l
+Õ$ò¥+#P¥)@)JP
+R¥
+R¥
+R¥
+Á°Ò­7®|øc|]ÎçÙÓ¹°Þ¬äòÛ·:DÔ©£ÓJÎj·ìdÎÿ
+;OM8ñÙx'ZmT[Ì|± §U3\¹nÛS¶ÃÆRì
+ÄßÆcì.Yº±ÌE3È=ð©&}""KX5cŸÉÚ
+U\Ç°Žì=(
+ëMµ¿ãÀð4JæHæJ
+!Ê¹òN_vW
+ÈØî¶ÇsÁ
+^9iË%GVzùEQU4f
+ähP2ÆvÂ,W']hÜLeÝ$¢n·¯nÐZBÏ]Ý®Jš×f6Ñ°\ÊÙÚŸµÃFâv³lpP%~DD¢*ZI5D5@RQTJÊFÆñ9X.ö§ÙÖ=þÝd6I<â
+3
+j¬Ê¬ù©:Äâ?¹|)ªkml/
+£?Š
+Ò·>x^ªÖêm³­
+ãÔgôÁZVçÏ
+ÕZú?rÞM~|»0)¯~4üÕñŽ\ËþcÜ=j?Âz§v»±ma\?²
+«ß
+Ôw@u@7 +d¢Œ¹u9j
+Ì{­GøOWjï»m1}¢:ð%ÝZmëàÁ¥L
+HQrU
+IYg\ßuŸX¶êì¢NñXôËŽÎkyíþdgæ#[40ŠÉ)GŠFá.H©|ü³ZïaØ{u¿aØßwÙ\[ÞÄuãž4®·! ¢¢*d¹*"òŠhÉXæÔ¶ŽðN$³âü6ÌûllšðgaàTb:f-£ÑA
+DN!
+(*òÖKhÚNÁ[
+Ù
+Kf
+·ìhð08ë:TCQlIDUPrEQ,³Ò¹s
+Üâ
+Ÿökc>ÚñS6ûÙ­ûjwÅPÝ
+öMÛ_äù_'N{&í¯ò|¯ &xoœØÏ¶§|Tâ
+Ÿökc>ÚñT7Gœv×ù>WÉÓ£ÞÉ»kü+äè	 Ûïf¶3í©ß8oœØÏ¶§|U
+ÑïdÝµþOòtè÷²nÚÿ
+®i­Q+
+dM€â=§ZnØÊén
+
+¶Ý,Ð¢¶áîC(Yë$$@U$êª()JS7[&·b€û
+
+°²i[PxãºKÊêEÚ'"ò*CV
+ï»^¹í.ll;Ç"3Ó!$÷%»;*®(""àZQ5&¥Ò@eØsÂÇØ>É­°€B*;­ÆjA¡;»fKÌ
+D"FÐ4E,³\³^Ý@ìË\°&Ë°Ÿ»¿ù±!ºn
+S"mQÙO:9)¯qy:¹õzµ=@)JP
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+jÛg[
+ÇšÏéŽ­Ïªµºlëaxõý0V¹óÂõVŸÜ·_.Ì
+kß?5|dm2ÿ
+Fd®æj
+C&Ý(âhš²Ï-H-)Ìån9öyow«^íŠ3ââÌÉï-¿aÞŠ\tõW<ù2¶9Þw·lgìí°×9Ýo-º»(¢ŒV=2í33ç¢ûô÷øAñSïÓßáÅXg;Îöíý³ösŒïnØÏÙÛ?a®p°3>z/¿O9èŸý=þ|UsŒïnØÏÙÛ?a§;Îöíý³ö3ç¢ûô÷øAñSïÓßáÅXg;Îöíý³ösŒïnØÏÙÛ?a 3>z/¿O9èŸý=þ|UsŒïnØÏÙÛ?a§;Îöíý³ö3ç¢ûô÷øAñSïÓßáÅXg;Îöíý³ösŒïnØÏÙÛ?a 3>z/¿O9èŸý=þ|UsŒïnØÏÙÛ?a§;Îöíý³ö3ç¢ûô÷øAñSïÓßáÅXg;Îöíý³ösŒïnØÏÙÛ?a 3>z/¿O9èŸý=þ|UsŒïnØÏÙÛ?a§;Îöíý³ö3ç¢ûô÷øAñSïÓßáÅXg;Îöíý³ösŒïnØÏÙÛ?a 3>z/¿O9èŸý=þ|UsŒïnØÏÙÛ?a§;Îöíý³ö3ç¢ûô÷øAñSïÓßáÅXg;Îöíý³ösŒïnØÏÙÛ?a 3>z/¿O9èŸý=þ|UsŒïnØÏÙÛ?a§;Îöíý³ö3ç¢ûô÷øAñSïÓßáÅXg;Îöíý³ösŒïnØÏÙÛ?a &iPÜï;Û¶3övÏØiÎóœ»c?glýšeÞâIÝ
+àpüöUÝ+¥
+¥ÛC>Š¥@5Dêª/µñÎóœ»c?glýï;Û¶3övÏØhý¡Zö
+¯lÊ±m	9ošÍCnÆÔ])Óžáæ€ª«ÔADM)ª)9ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+ç3k=Ú=ëÅñ©ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+ç3k=Ú=ëÅñ©ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+ç3k=Ú=ëÅñ©ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+ç3k=Ú=ëÅñ©ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+ç3k=Ú=ëÅñ©ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+ç3k=Ú=ëÅñ©ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+ç3k=Ú=ëÅñ©ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+ç3k=Ú=ëÅñ©ÎfÖ{Ž{×ãVgÎóœ»c?glýï;Û¶3övÏØh
+3Í¬÷h÷¯Æ§9YîÑï^/Y;Îöíý³ösŒïnØÏÙÛ?a 0Îs6³Ý£ÞŒ_æmg»GœxŸ5f|ï;Û¶3övÏØiÎóœ»c?glýÃ9ÌÚÏvzñ|jsµí
+õâøÕóŒïnØÏÙÛ?a§;Îöíý³ö
+²í·Ícm{xÑç€¹Ûä¹/"¢ãm
+ño
+1>ØÌzD$±EG4o3l×vâKò"šräµíh+
+Ò·>x^ªÖÙm.;0»Ü¬Øúñc4M¶cÂ­ÏGSÞ7±
+4BBÉ
+<ìóNEÔ×>x^ª×Ñ»òkóåÙM{ñ§æ¯¢æ_ó
+áëQþÕ3±œ
+ÓÆ÷ÆÑvm8Ÿ}¶<{]ërÀ2ÞA ,²Þ*r*&H
+Ì¿æ=ÃÖ£ü'ª×æ;óhßíçðX®sºß,[uvQ'Ex¬zeÚcælµwWÚÏãü>fËWu}¬þ0ÉT^Ï¶Ñ7Ù±Ì|æ Ÿ[°î2irô#pb#²Ê»¡Þ²%$d
+1NRBoUÛ×:ö1ìØñkÃÎ7ÛÅ¶(=ÜjŸHºÑÇ	¡ÈÝFAÅlWŠÉsDç
+ù-]Õö³øÂ?%O²ÕÝ_k?#òU'¶ìO|³NÙÅÿ
+bç×Å6»SñYn+ñ%E}\2tM['5 ¢ž§5Î³<_-Ö
+EnÃ1m;þ!ž4rµÚÅ¢yšá©®6ÛMjD#$ÔJ(JÏÌÙjî¯µÆù*|Í®êûYüa©ÛþIvzÍÊ4÷^}ØÀ\ìIÙ¥4¯6óB)£j¬t©"æÚ
+âÛµC¹ŸÕ²
+)®ÜlàKd^a÷º	WŽDÐHª§00o²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉSælµwWÚÏãü^T (ß²ÕÝ_k?#òTù-]Õö³øÂ?%W(
+7ælµwWÚÏãü>fËWu}¬þ0ÉUåJù-]Õö³øÂ?%O²ÕÝ_k?#òUyR£~fËWu}¬þ0ÉWfß±{^
+ßßÃãÛëÍ5¡š÷Òœ
+TQO@¡&€MY¢jÏ,ÐU.ÆßCþÓáª{n
+åµBžÃ2+k­ÚG
+i%$Í,Ó<ë
+Æ7hØºÑ2Óv­ÃaM$9
+óœ
+œj H©Ó
+/"¥eíÊÛnŽlUš`DnÓÌMèDš"ªD€Ÿª¯ZDçÏ
+ÕZÝýºµ&>Ä ±6_
+ÝÞHÝ£{ãC#Òæ¹'"gZ@çÏ
+ÕZú?rÞM~|»0)¯~4üÕñŽ\ËþcÜ=j?Âz­~c¿16þÐ.ª9üÇžzÔõZüÇ~bmý \þ
+Í÷[ån®Ê$è¯L»Làs`7KakÐz×±^¯-±dÝ)<Óª1I^%h[ÉIÍòe£!BW9±o3Ü9×ÌGqÃ°Í¿ä€çñãÞ$E¥©ãëÆAÞLÛ1pET4jÉ/:W8XfÑv[yÄpm®Ñm«vã
+±o\vDT!
+[lZQ$Í°lrTéTS!I<An²ñ}
+Ù±
++f.m[\ù[JD)ñIu«k
+^o'²pH]Ô¢JiV(
+NéÌófža[EªEíç.!
+œß®ªÆîË$	¹Ì&ìÃ4ø(k
+*æKlcf06i
+þÌIŒ?.K!\h·±¡`ÜhjáÈ
+ªªd¹"rç`RÁ6ëí§
+D·âlGÏ%Ù­|"åÀ&ÿ
+]FÝÖf*¹jqM:uDU@.jUgqÆÝ°FÞÞ­P®<?€à1
+xÝÅG>{Ÿß±ºUÿ
+í«y³eCÓÕÈæzÔÝ(^HBªYä§J©°ŸÞ°­þ×o-X±4>$¹%ŠÆdF¡Dà$âjVù
+6ÑIHM Ÿí">
+ÄVË^"ÂØÓíw<
+£«ÈÏÈ={€AióxEÍ
+ii«O.@g4ª
+_15'gVXiØñ?ðÛc±ã+MðhMîÍGS3U%ÌË2NJáÅXãEÛ¬Ü
+÷­V0·<Ep¹Zx{r`á$ŠÇJdG¯¥DNEEËRoÒ«=mb=a|[/gw©3îñÉ­ÎFlYÒzEÌ¥<ÒètQ
+My
+òòpKÛŠg`üdÅ·M²â¹ÁoôXbãä(îÝk^ðP:D.f­®YæŽéUœµá[m\/öûÕNàümnËNH
+"Qô+.EŒRAN¥\õèNZà·
+5hÅR0î%²b
+;" ¯®-0,C»S|FjØ1œÌòÈb
+í.ÝxÄP°õ×â
++t¹AáÖÈ÷Æh§6®
+jÛÖÓJ$¢à¡"šå€,|_¯[xÄvIœÄ8*ÐÉÏ·²Û)"é>P+.èZ
+NÞ/L€
+@-:U&×4ÖÏÜÝÌ¡âà
+×Q[Ò
+±MõqKK2<ÅMUu6.O\Ò¹£0|^Ûö
+L£qoFÜÆSüd|Ñý
+m²Hö€-
+dçÐ5*ŠÛN=¶y¶±.Ûü5LIWX«
+W-Sbb/
+žÙkm<¶œ\V'Ä¶ì;ÁøÂ5éî«GY¥ÏËNYêàí
+,jË>\³Érfï¯ðNd.lŽ«J3í!9".h*tÈgg.]Ùã(àÈ/2Ä²h^i]l.
+HQrU!UNLÓ«@sRªÎg<O1,
+p®êÍÊ]\-,:ÌAØ²Ê5€DUPs"TÔFY.JEuiÐ
+Rµç
+mbìÛÜ0ß/
+ÝÂØwàGvÅÆ
+èÆ.!ž"é.ð
+ë[ÝÀd.QKZ:h®š¢èR$ÓQ]§Üî{&Œcl)®p#ÇÃçz>÷Ÿ
+!ŽuYVB@Ÿ©¬Pô rkpT5iÒ©<ŽÌi;ìîÕx\?vká÷/µÀz;Ö`F[q·
+R}Ým2¢Ú)"d¹¢æp¶
+1­ß°¶ ÃwãRNØ³Ö#­ÉVMÐEûºI
+AneòL ãpÑÖÍÆD\2!]@
+¿mXÝ"çwµÝ'bHŽÙæOAÉ	
+hÕ¢E\MsBL³D,¥Fa»ä+ü-ªÒûdNfà£Ê2&Yææ3·Ìq+g#¿c80Y.ÞÓhÃ/jn:
+	\ª"®!(¢¢ª&Yy Í*ŠÀ8YvÏ'ež£sÕŒÃm_Øº¹
+šŽHêGu
+m€@ #EpW	EUÎBKfRšË
+ój-¯à|-1$+ìÛôkŽŒAn
+²jaµÕÖTZÀrkSähE©T²ZŒè)U41žà­O»[Ýœ[tîõÞ­ÐbLâÿ
+ÿ
+õÓº~dBÐtÉŠÅÆÔ³
+Ñ24ÉU,
+€p÷ñÐ¶
+·%š
+pBš(€.¢1&ÕqU³kðlsÝ`Dáïä!µs=mªÊA.ÙŽAÐEç
+ß¥TÛYÚv&Â8ÒÕdµà¹³¢ËÝç$6R5N·°»äŠC-ÆüGÉI¥åm
+$Žà<ä1ä=ènºÐÇyA\eU3P%!RN¢é"LÓU9hjUg·¬c°w9ì»e
+>ÄlR8Æ
+²7|#=.ò
+1\õjNQËèß?
+ÇÚ¬ckãëN¹Cw9ZiÒ}ŽÞ6­= [.š¶h."º¢*Ð,¶ÊŒá[µ¢
+ÑëL¹Ð^ÄösÞE3trQ]Bª*.iÕN­Wö-ÞZÆžNÿ
+š
+8WfÜ/î²,XßX.øìC:ËuÇAÈü Í@YS.q4¡¢ôÕ|ÍVØ_øeá`ØÒåÂ%àèsîMÇ.Sä)!¥%q£1éQHÐr[þµ·ícÅ³cÍŠÂ¹2Åâ°óŽ±[&î,¶à2ó®ITÞŠR
+Úpä
+r%ª
+07Â
+iCEéª3O
+b¬s²»-ËÛ.r%ŒÔrøàÃn4¥&
+âØØ	`Zw|i(5ùUQÒy.¬³^çdËÛV
+Æ
+K±zVÑ!
+{¥Q#Dk~Ú ª:¹iÍ-Pd
+\lÛQ0æ ¶@
+·ZÞµ:ú1
+:vY(Nº«ÈiÍ	wÀ2Å'aá³»=f%Æ+€¶ûÛvQ"`
+ýñ°ãŠ.êtuf(CÉæ¶(pÏG@Ay%D:óJë`yt€@*Bš¡
+ªrfZæ¥_ì
+ß°[ü
+`
+Û7XC%ò$0ù>`á8Ûf)):T7^Ôšš€TUO€\Ín4Vi±m°n6L@š·I8p
+5wî=Š|ð¹ 	€É
+Pš+{
+J³Ç»<ÅXiøoÛñmßÎ×
+âØØ	`Zw|i(5ùUQÒy.¬³^2ØŽ
+eµ÷1)~Ëw³¹d[/ÉŽ4ªGœ	ìÁäp'PE2.­Pbl*ûqe1ô,\õ¶Úí©JïBHî
+À4}¶ÝtÀ&¢
+È1q
+Qœm)ðÛö
+³lãc»fëbŸDæ2'Ì
+'lÅ%'JëÚAJ©ß4 )<U°XvÓNíÙíš­Fµ(9ášðRÖO8(€T×UŸ¥bM`)TÛ%ùü\«
+×*yXäY\=
+ižÍHMêéFÕ"WGZª ¶3J ÙÖÆ_ÃÖÙåÜðº
+°,ÙðT;kŒ¢ ²
+}ÇH³±UËPr>ÅoØc²õÚIs
+ÒêÛn1[`­mG6ËALÔÓ[
+ZŽé@k7Ì¥ÿ
+ûym±1íÑM
+ªrfZæ¥\ìwg÷ü;ìOl»Ä¿]å^i9Åq¹OšjÒk!ÄÝ"¢
+¬×=|,ÖÊÙÆãdLÇÒÙ+¥Âs³Ò6Cjyn¡« "h®eÊª©"!.YJTf.Ø
+ûÎÆøRßž¶Çïe}u²ŽÒfÉâ!3©¥Q
+á°[üýcl'
+Û7X¿-ò\ðù0fàžã`+)zU6Òªª¢hºC¥¶<w±ÄÇxË«:Ããá
+×
+dÌ'åEl²ãjàÄiÝà
+Èez`ØjPólæzì6[&·bðŽ]åÝÓmÉb3mìkq§AArShÑTS5³l5¶BÁVL9:åsp­m+ÖNYtÜ-nâ4Ú¬ô¢š¢¯*sJ3
+ØáX 8/ÜÞhÝWT§ÜäMs5DLß3$
+DéQrÏ5Ë5\ú[EÂl{®xGÅnžŽê²æDÀÅ€&"I**ŠJ¢ä +ü³Ùö_'bÜMÏ6(vÚÕ¥©ÁM3
+
+A$S7u8FªŒª.O
+m×Ûwñî#ãŸrzDàAE,·qºEòM/LYòõ*fg²b¬t6ål·÷®²JMæ{'ZžN=*"œÂ
+Ü-xç3r³g(ÖfÙkyQàî IH÷ó$%€P2Îºxgb1á=Òë?·Z
+Ž€\;
+bZF+.
+ª.y+ÆK!8¢šK¢ß¥­žo
+bVvÑ²xË¹Þ­Ø
+Ê¹KßµÄÈÄíùð\>E&!Q!D2+d»<ÅXézqì[e¹ÀŸ^å^ç°'Xw~øŠbÓ(ÐEr 5Ë4Ï,ÊPò\Ín4Vi±m°n6L@š·I8p
+5wî=Š|ð¹ 	€É
+Pš+yÖ=Ùæ*Ä[OÃxÖßl¶þvžWÄ~ÄìøKÓ»ãIA¯Êª
+³ÉueÙ !±Uºûqâ®"Ä|IÁ®LÈü$pØ£ò7NŸG¯4òAé.N­LÒJöÝÕë[ÍÙ&Â
+=tî€Ž
+2g©±qµ,Ç4L2UEåË%Ã6n»3À°tŒC
+õŸãVÒèëuÇ\Þ*ŒâLâeHº³Í,
+P
+R¥
+R¥
+R¥
+Ä:·YØ·çÄÒÛuIWtÉÕ+|ªYÖÏ±å»NÄ±íËf°õÝë<
+¡mù
+.N#H.(§J¹hijÚ<·`Øj=ÎÙsÖ!»³g"(ŽM±!ÕÉŽu	Á$é1ÉsÉTQ@¯ñfÆqv"ÅWlK+hvÄyÂÏa®
+%ašîP¹Q|é×=* 
+ÛvÈ¯ño;/ž
+1¶88
+m,f+4
+m5Uá+ · "¢*(ª638GlGã+^
+ÂÍÜîÃrŽ9xnâÛÔfãîG%4tÝ[ÖÔ2F×Ë
+ù\Õ8vWn8iû@ŽÜ
+œDâ-ÑežÁ
+]œ`Ét¿
+ç7ûÍ(k©SFh.@YP_ö
+é:÷l
+Dô|îázŸØ*¥"êsw+V¶tÁ1DREmP
+Ž%Jàæ|Ú/ÅL_ÿ
+]FÝÖf*¹jqM:uDULgÛhìØæN>s_-ØwIŽ¹zÁž1ÆYe]ÐoKY2§)¡7š
+ªçi[;¹âüUæw
+%*×
+°Õ«a6î¶ñ
+£o[p@Qtä9ª*ä©cUAµÌy°ÞÜ6ol¶Ëë]Ý«Îaê­°
+Á¬âÉ®ÏÁ÷(H)¬oÅÇã*!ît
+J
+ù¥Å÷®tøË9ëÜµÅ[ï+«yŒÞnwE¿ÝîµòkËž.ÛlŽ[ï8ÊÐžCÈI7TeÊØÆVÉÔ|\WÐt
+ª:š\º\Ð§J€ñþÔ/ö©²øF
+Îí1<Ó\f+qD®`
+ÆPA6Mæ¥m
+ÕRæó`ÇôG¡ºëBg
+åqTÍ@
+I:€3NETå 9©JP
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+Êšÿ
+"oZ.ì¢P2BmL
+ìrÅ³_~ŒY
+Õthñ-P]p­,ŒÓo8á¯º¢SWŒ³ÌUv1­ÃÙn
+òð^2ÅØùpf	Š·&²GE-HyåiÏ4ÂÖ
+3°ËïXnÿ
+ª:š\º\ÑÎ;f²JÅñ°œ
+âkÌÙöFo¶Ç!Çe
+Å
+&$ã£ºË2ÏºåÌŽ08&ìËNÆ»>Å7
+zÍÂ^jB<rl¢\HèYŽë`ÐèDFÅ
+Ò¶èŒLðPG2BiÄ5
+0 6u±ðÆ5¶b9w<$cn¬
+6|Úãï(š,EqÄ%,Å¥lUräAÔ%Íö)Í¶©{@ŸúÉp·Ùø11¶[#ŒUsx-é
+}*&\
+m
+
+ß
+HÁW
+
+ëßÚ¶Ð"\x9ï¢«ªÒž'
+×A24DQ%éQ3TÃ96
+ñeÓÃ¿ØoO3\ Ç|¶°ÐWQ·u®Z\ESNQPoªÛ
+ÿ
+*\lÒšx«¡FŸ/²óÆ[Ÿ*Ü»ÆŒÁwûíæç}Ÿé÷:4èäÞçËYeÛm}çZbÙðsI&ê±[ÊÙ:úB@UGU
+K
+¥IíŠF,ÃÛ ž^ðµ÷+Æ
+7vsM\mäòMãbkäHÒëÓ
+zÇOL#š5lÒªl/·¬+µáËV,MÏ.Ii
+q hf8 É"8ŠZŸG
+h
+¢á<(ÞE­^Ý¢š*"ªhkÞÔ¡Àº=f
+15úñ
+Ú7µºÔÌwµ
+4ò«È
+ñ&­-6N *(šª`R«ûÖðªGÂg`ž¡ì]Ÿ+4{R4ø2ÚÄ€ù¶
+èDÈÉ
+	téÍ
+(nfLY}Å<båöï6ëÅxºu²
+óaY	¡kv6
+·€úeRB$UTTL²@-R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¡±·ÐÄ¿ŽøcS5
+Ÿ%ý§ÃVö»×f?ño
+Ê«Úï^Mÿ
+"&dª«uUV»µÎs¶-ßñäì8pq=²ÑÃwza§¬ç)Ç%0§§Q€Ótšh(:³Lõòä-¢l.0ÄV<[)Ü>ö#L['ÛŠ²º.
+ãšMºJ``î€E!%4^KN&öÅÙ²ëm±ìHÊÝ,¬PÔØarC
+@X0Ð	ÑVÓNBJáYHf
+Ù
+ÿ
+MO
+nu»ËZ¢n©!Éìwg÷ü;ìOl»Ä¿]å^i9Åq¹OšjÒk!ÄÝ"¢
+¬×=|-JZò\Ín4Vi±m°n6L@š·I8p
+5wî=Š|ð¹ 	€É
+Pš+{
+J[YÂí£mø2îxzÝ Ã2®8m÷"Ld"yÑëÉ@É	
+Q!#-&D
+Ñ°µîËÍ-e·a'/P Y¶~Å5Öu
+ép^u§µ£/8"ØläzqŽÞkÓ4[JŒl&SŒÏvýZ1{1-mµù²­K!÷ÏM ŒØŽ;Ä.ÅÒšæKiðlUÎÇã/ý;ÅNðO/ñ~¯Êt¿>òÝ7S¥©PØL«vÈíÛ?ÙV	ÁsÃwH¶¥aøE×]]yÆß'U4(iÍ<²¡Av{±Äv
+MŽ}Ìkµµ!GjÉhHM°zõ§­×]wR ¶@
+Ï
+ìób-§áŒkoÅ¶[;\+b?bvF|%iÝñ€ ×åUGJYäº²ÍzWO.{mXsq.Æ2JUê[FLuîYF|­ûhš`êæA§4D¶i@U6Uq³mF>0ÃÙ
+
+,8fÝkzÔëèÄpéÚ"ud¡8Bê
+¯"f	§4%ÞTÖÂ°
+­ìÚ
+{fòÔ^Xò[±C&*áæHf}2*&ZS,ÑUsPÕ0µÏaØöuÚÙ€Óó¹Y[¹ÆÈf\
+Æ\!ÈTô¡T$ÑÈš«c7c±lö
+qhue"c·Â²@Kt ±·Q£©ºéŠdfªšJÒôŒ¶(
+vE&ìºfÏ®ûJy-kãÙ`
+ªÔ1€k$ß<€ã:F"-	¶
+âiÌ
+6.æÚÈcèWl?^Ž²mª×Â
+bEsxÎU@³³W7ª¹
+J" -Ûô +<+³KîÄ÷Y,oÁ,|Hö!
+åºã ä~f ,©JÊ8PÑzjÃ>f«l/ü2ÅpÃ0lirá@ðt9÷&ã)ÄIrRžÑôš€h9-ÿ
+P÷`q8âË*¿³3ßçAÌšÖÄn$'¡0­G^
+ë£Âšn#áHš
+\°kÅðÞÄv[?ÛRtÃV5ša #ÔhŠûÀjØ¡6N šç
+çJÌñ</«œa)ß0Ûø~|H8HX
+<Y¶ÜQ=(
+®««Rç¥@fÉQ$Æ
+²âNÃÓX'¬Êãzí0Î0¡
+>*¢âäH¢§5ÏRl5(
+g _ÿ
+ÂSYnLÑsDE5DAEl­úPÎ<Ù$]ákl+Ÿ(ÀÒ`\,Êm,Xó]
+Ò¶Û ŠjUNGò]@*š6ÚcâÌC²
+
+
+X³ŒbÃo6§:Ð
+œ©	¥÷
+Qs%Ý¶FD®®œ9	u`RÂvHžk
+Úpä
+r%ª
+07Â
+¢dª3h»·b<ksÅÖ°ükÞ
+FŒ:ÕáŽp,#;@JŠdÙ¢
+*koÒ©ºIgó,Ø[æ
+áÜ±²0€ð¶Ô_Î$baét&K«xª¥]ÝìÒûlxÞßð©8å.éâíšD)OqÄCÝ=e¥±UBäÈÌ¥Ò±GÇ%ÒãÆsØÛrŠîè!»»
+@ÔH¥¥9<»Ž¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+¹"rõ+7ç~ýØKµOâ >9¢:Ñ·õ¢éFŽaÏªµœ\ÑÍžÎÊ§@p-0À%GG4TóŽUÏªµônåŒüùv`S^üeù«ã#h¹üÇžzÔõKàkµªÓÌé·~4¹ÂÃ1.!Ÿ-ïß8¡ Ô©šË%ÈS5\$šeÿ
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+ÆßCþÓáLÔ66úö
+h
+uÄïÎÍ²§í°F|Ðjø±ãÈÐº|¥5EÒ9õK%TLÕW~±,
+jÃ4;Z¢,Gwóë%Sšâ¹(Še©y,üêÚîÅÛvÊå0z
+dî6Y"äHÀ*.KÉÕ®ç4,èØÃáü
+nþ){doÐåò8:©¹ÍrUÞH
+µ!òQZKj°ÙÌça·².µ0¯Åy
+eÕlu6iÈ@¹fTTZÒç>x^ªÖóóDu£oëD/ÒhÃ</UkèÝËy5ùòìÀŠœøËóWÆFÑs/ùpõšÿ
+nrD%Dóš6ºöNoáËã§]{'7ðåñ×wïÓßáÅNz/¿OÒãk¯dæþ
+Ÿ:qµ×²s_
+wyèŸý=þ|Tç¢ûô÷øAñP
+.6ºöNoáËã§]{'7ðåñ×wïÓßáÅNz/¿OÒãk¯dæþ
+Ÿ:qµ×²s_
+wyèŸý=þ|Tç¢ûô÷øAñP
+.6ºöNoáËã®0ÇP°^
+}Ÿ.¹
+ûÃv,Ê>ãÎ6Fdç¥S$UUUD¬Gi8Ó9µ]aåŒ<6»·fGlDõj6m¡š¢*)ªéÏ,ôªŠb*Û`ófíJÓðNîô^úíÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+¢÷Ô¿oþàþý:/}Köÿ
+çÏ
+ÕZú?rÞM~|»0)¯~2üÕñfÑs/ùpõšÿ
+§@Tm>>
+ÇØ®.'Í·_å[bÄ+sfëšNB\(Ò8
+)€<Å+k7
+U;eûD¶_'JH¶ÇíÅnS°
+rmÉÊ¢©ÁQ
+c
+qs
+>ã¶ö¡ºá/ð×
+PT"$&ÑPD!Ë!^®M²Û<ÄžËÌb
+²â)Ð0A^"&o6ÈU3"U4%ËMgÎá\0ìš2ÝÃsoÛéBmN06¹¶-®ÁyQ,ŒêïÛíÖûàbÄá/÷
+o],µ8Y'LKfKÊ¹PÖ/6àî[øIKïsÿ
+DmÙû-º:M5
+*fEJ¯ðÐÆûIÆ0b=fvÇgj
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R
+Ígôrÿ
+çÏ
+ÕZß®k? »þÕJÐW>x^ª×ÑûòkóåÙM{ñæ¯¢æ_ó
+áëQþÕrVa=Š^ðŽ%f.­\- zÐsTòÂ¹ešºMtuÆÿ
+êoGLqÙ
+÷gÄ§GLqÙ
+÷gÄ§y×®V«èg
+$œß3ÐÞ6µvNáÇã§Z»'
+ðãñ×=
+1Ïd{Ý
+1Ïd{Ýç^¹X~¯ mx÷|ÏCžÚÕÙ8_mjì/ÃÇ^xôtÇ=ïv|Jýèé;#Þìøï:÷ÊÃõ}lãÄ»æzÆÖ®ÉÂü8ütãkWdá~
+~:óË£Š8ì{³âS£Š8ì{³âSŒëß+Õô
+³^ïèoZ»'
+ðãñÓ­]
+øqøëÏ
+ç²=îÏNç²=îÏ^w{åaúŸ¶qâKÝó=ãkWdá~
+~:qµ«²p¿?
+yåÑÓ
+vGœÙñ)ÑÓ
+vGœÙñ+Þó¯|¬?WÐ6Î<I{Ÿg¡Œmjì/ÃÇN6µvNáÇã¯<º:cÈ÷»>%::cÈ÷»>%;Îœò°ý_@Û8ñ%îùñµ«²p¿?
+8ÚÕÙ8_Œòèé;#Þìøèé;#Þìøï:õÊÃõ}lãÄ»æzÆÖ®ÉÂü8ütãkWdá~
+~:óÇ£Š9ì{³âS£Š9ì{³âSŒëß+Õô
+³^ïèwZ»'
+ðãñÓ­]
+øqøëÏ.ã²=îÏNã²=îÏNó¯\¬?WÐ6Î<I{Ÿg¡Œmjì/ÃÇN6µvNáÇã¯<º:cÈ÷»>%::cÈ÷»>%;Îœr°ý_@Û8ñ%îùñµ«²p¿?
+8ÚÕÙ8_Œòèé;#Þìøèé;#Þìøï:÷ÊÃõ}lãÄ»æzÆÖ®ÉÂü8ütãkWdá~
+~:óË£Š8ì{³âS£Š8ì{³âSŒëß+Õô
+³^ïèoZ»'
+ðãñÓ­]
+øqøëÏ.ã²=îÏ_
+1Ïd{Ýç^ùX~¯ mx÷|ÏCžÚÕÙ8_mjì/ÃÇ^xôtÇ=ïv|JttÇ=ïv|Jw{åaúŸ¶qâKÝó=ãkWdá~
+~:qµ«²p¿?
+yãÑÓ
+öGœÙñ)ÑÓ
+öGœÙñ)ÞuïêúÙÇ/wÌô;­]
+øqøéÆÖ®ÉÂü8üuçGLqÙ
+÷gÄ§GLqÙ
+÷gÄ§y×®V«èg
+$œß3ÐÞ6µvNáÇã§Z»'
+ðãñ×]
+1Çd{Ý¿::cÈ÷»>%;Îœò°ý_@Û8ñ%îùqµ«²p¿?
+8ÚÕÙ8_Œñèé{#Þìøèé{#Þìøï:÷ÊÃõ}lãÄ»æz
+ÆÖ®ÉÂü8ütãkWdá~
+~:óË£Š8ì{³âS£Š8ì{³âSŒëß+Õô
+³^ïèoZ»'
+ðãñÓ­]
+øqøëÏ.ã²=îÏNã²=îÏNó¯|¬?WÐ6Î<I{Ÿg¡Œmjì/ÃÇN6µvNáÇã¯<º:cÈ÷»>%::cÈ÷»>%;Îœò°ý_@Û8ñ%îùñµ«²p¿?
+8ÚÕÙ8_Œòèé;#Þìøèé;#Þìøçy×®V«èg
+$œß3ÐÞ6µvNáÇã§Z»'
+ðãñ×]
+1Çd{Ý
+1Çd{Ýç^ùX~¯ mx÷|ÏCxÚÕÙ8_mjì/ÃÇ^yttÇ
+ïv|JttÇ
+ïv|J÷Œëß+Õô
+³^ïèoZ»'
+ðãñÓ­]
+øqøëÏ.ã²=îÏNã²=îÏNó¯|¬?WÐ6Î<I{Ÿg¡Œmjì/ÃÇN6µvNáÇã¯<º:cÈ÷»>%::cÈ÷»>%;Îœr°ý_@Û8ñ%îùñµ«²p¿?
+8ÚÕÙ8_Œòèé;#Þìøèé;#Þìøï:õÊÃõ}lãÄ»æzÆÖ®ÉÂü8ütãkWdá~
+~:óË£Š8ì{³âS£Š8ì{³âSŒëß+Õô
+³^ïèoZ»'
+ðãñÓ­]
+øqøëÏ.ã²=îÏNã²=îÏNó¯|¬?WÐ6Î<I{Ÿg¡Œmjì/ÃÇN6µvNáÇã¯<º:cÈ÷»>%::cÈ÷»>%;Îœr°ý_@Û8ñ%îùñµ«²p¿?
+8ÚÕÙ8_Œòèé;#Þìøèé;#Þìøï:õÊÃõ}lãÄ»æzÆÖ®ÉÂü8ütãkWdá~
+~:óË£Š8ì{³âS£Š8ì{³âSŒë×+Õô
+³^ïèoZ»'
+ðãñÓ­]
+øqøëÏ.ã²=îÏNã²=îÏ^wzåaúŸ¶qâKÝó=
+ãkWdá~
+~:qµ«²p¿?
+yåÑÓ
+vGœÙñ)ÑÓ
+vGœÙñ)ÞuïêúÙÇ/wÌô7­]
+øqøéÆÖ®ÉÂü8üuçGLsÙ
+÷gÄ§GLsÙ
+÷gÄ¯{Îœò°ý_@Û8ñ%îùqµ«²p¿?
+8ÚÕÙ8_Œñèé{#ÞìøûÑÓ
+vGœÙñ)ÞuïêúÙÇ/wÌô7­]
+øqøéÆÖ®ÉÂü8üuçGLqÙ
+÷gÄ§GLqÙ
+÷gÄ§y×®V«èg
+$œß3ÐÞ6µvNáÇã§Z»'
+ðãñ×]
+1Çd{Ý
+1Çd{Ýç^ùX~¯ mx÷|ÏCxÚÕÙ8_mjì/ÃÇ^yttÇ
+ïv|JttÇ
+ïv|Jw{åaúŸ¶qâKÝó=
+ãkWdá~
+~:qµ«²p¿?
+yåÑÓ
+vGœÙñ)ÑÓ
+vGœÙñ)ÞuïêúÙÇ/wÌô7­]
+øqøéÆÖ®ÉÂü8üuçGLqÙ
+÷gÄ§GLqÙ
+÷gÄ§y×ŸV«èg
+$œß3ÐÞ6µvNáÇã§Z»'
+ðãñ×]
+1Çd{Ý
+1Çd{Ýç^ùX~¯ mx÷|Í£æª
+N¹¹öÂ)6hHÂŽ)Ïªµb_¶¿ïvíwØ¯¢!å¡Ï%BNT^ª%WD¹¯¢µÔh=
+tØ-$ÄÞU¥ßKik³[9€Ò¢YÓ
+ð7ÂÿÙ
Index: /ELYSE/HEAD/doc/Images/Thumbs.db
===================================================================
--- /ELYSE/HEAD/doc/Images/Thumbs.db	(revision 286)
+++ /ELYSE/HEAD/doc/Images/Thumbs.db	(revision 286)
@@ -0,0 +1,163 @@
+ÐÏà¡±á
+
+ÂÌv©qé]à¿í
+6ÚêìoÀkU'ê+­Ñü
+¡£ÙÝCoŠäpÑ	éPkçú²ÞžwF.£æÈÜ¥h·Ãëgtcef0>`
+ÇúV£|8±wF:uÀùFãùqE^ÒôItñ2Ím
+Ê³e7°%G§"®é~²ÓÄË6§Ü«6S|hJNE]Òü§iâeBÓ.U)Ÿ%G§+Eh}?èmù¯øVü#Ú_ý
+Zgýúÿ
+ p:ûÑVR$k­ìÀ¹|ÌAú
+ÑH®·²;
+²îh¬ß¶:MäµÄ±í8ðæ³~Øé7×ÇŽàLÃ£
+·-'¯p
+å|¿4Tm¬°ä7ËLco$zJµŒòàùimäAÏéHo/6;œùòHô
+ÑNTgEuœ1Êž#zúS¡Õ
+¢ºßJäž#zúUEì-ÌÉT2Gõô¢ßPóXÖõÐ.Þ»C~ŒÒÛê
+sKÞºÀ;×ho×#tòIÍ:ÔÈ
+úóEJyPIÛ3\ç­JyPIÛ3\ç­H-®D`Ýž'9õÏ­?ö
+×ý_þþõêí
+¯ú
+¿ýüÿ
+=«Ì7·÷ó¢¢yª­÷b°SåQJÌ<Ð¯÷b>NÛûÍùÑOi#œVFÃìFÝ@Çòùæ+Õdl>Ä`}ÀþBïýãùÑRk(ÑŒsÚÍ·''iå0jMe
+9íDfÛŽ¯æ
+.ç
+Ê.
+78_$Ø>ÃsµóÅ{Ô~ü*0
+GýJy'Ë9âö­þAq}[ÿ
+;ñ^ñUOØfÀ·,w9âŒ
+ã~?µô®åÿ
+Æ(VVÚºQ-ÇSÁ
+Z+ÝtùÅõoý×Œø_þE?þ¹ç^ßáùŽÏúàŽV?ä=mÿ
+*àÜROQŽ1Ó§é§x7Ôm$
+téúbrsEAæ+ËÀÆsÌ>Wç4dmÆ9õ¢L€¢(¢Ÿð]¡ÂzUÏÛRA-³ ð­×ë^Ù€©
+ÕO
+»ò7jökgŒ	:°pKÂå²?Õv
+š¯`³Ô<:(!A-ÆÙ)m£zÕíÚ
+¡äxrÂPKqörÁKm
+g©í^ãáÝCÈð¶(%žû.à¥¶sÚçïn5
+­BÚMJÉ-'òÜyi&ñÇ5{qš]jÒjVIi?ãËI7v9¬»ÛBëP¶R²KIü·
+ZIŒc±Íá?ÿ
+÷hÊ
+(ÒA"Üf0ÛYv
+ãŠ:Eu÷Rælè7cæb	>õÝC)Î=²[ òÐ|ÌAÎ;×ci)L·Û%º&1ó1;{ÑVIâx§žæ5dÁ'?^kD.'{îcVLqõæµ	âx§žæ5dÁ'?^h¬»ÿ
+ð·ý
+Úwýùü!^ÿ
+ð·ý
+ÚwýùÂáoúŽïûò(ÿ
+(ÿ
+ð·ý
+ÚwýùÂ+á¯ú4üü(£þ¯
+Ðœ§ßGü!^ÿ
+Êúu§
+n1#wjP.TçïNŽãã} HàkåNïŒ}:ÑLû»åûïÏÝã§×4ÏíÑåûM®üýÝÝŸ¹ŠÂs¥yE¿µ¬7çîïíõÍ¿ÙúîÅ?d]Å°F×­/öâìSö«]Å°Fz^Ž¿ði[ÿ
+æJÇ+¢äð¬@¢¥
+¿Ý6_aŸaïÍ2y¥@GqèÌMm_AùT^Zq*¯±º?*(ÚŸò£ËOî/åFÅþèüš£júÊ-?ž¿û£ò¢«è?*<ŽþâþTl_îÊ6¯ üšòÓûùQ±º?*(ÚŸò€òÓûùRì_îÊM«è?*<ŽþâþTm_îÊ6¯ üšòÓûùQµº?*)BÃÖ
+ 2A
+0@÷©m@[ÈFH#·4VvœoöñùÐÇ&ÒÅwš8ã¶kCQýåþhÈÁSÈÆzb»[[Û±eqn.Šòd@v²ïèGB=š¯ÿÙ
+ÂÌv©qé]à¿í
+6ÚêìoÀkU'ê+­Ñü
+¡£ÙÝCoŠäpÑ	éPkçú²ÞžwF.£æÈÜ¥h·Ãëgtcef0>`
+ÇúV£|8±wF:uÀùFãùqE^ÒôItñ2Ím
+Ê³e7°%G§"®é~²ÓÄË6§Ü«6S|hJNE]Òü§iâeBÓ.U)Ÿ%G§+Eh}?èmù¯øVü#Ú_ý
+Zgýúÿ
+ÆqÓµ¶6mÆehÏc8éÚ³
+úÉ»ý
+á@ËGÕïÖMßè÷
+
+Î8AhGoRFI¯fðý6q"Ñ,Þ€E$±ïÉQ}ESñ&§c#$ag
+öýý¢ð®mmµ®ZÜà(õ?áE%0>Ð(
+¶zþµbÏHJh[=Z·g€L%OŽ
+=NknRÄqzÖÜ0€ã(õ9¢žYÁ]_R¡#üþÂÎ
+êú=
+Ùçð®pWWÔèfÈÿ
++±žž	Šòæ0[f ïîíî$Î?.h#4f ·Ÿ+²²ž
+6ßËÁ1b	;{â°nõR€ZDÊeØöÆEhœT€i Ñ2C¶=±ZïU)Eš4L PíldQHß7ê²lÏ;\ç"\k~`ßªÉ³<ís~Tq­ù~«&ÌóµÎqùQLX§C<Ë$ò0,ò1œéègYdFF#wœ1b
+ò+,ÈÀ³ÈÄn÷¢²eðut×º&,²Ò?žëÉÂ:%ÕÓ\^èl³JKHþ^âO®MPÃUÕÉžŸÐôæ&IÙ
+±íFM¿ð
+x[þ
+í;þü_øBŒ-ÿ
+ð·ý
+ÚwýùÂáoúŽïûò(ÿ
+(ÿ
+ð·ý
+ÚwýùÂ+á¯ú4üü(£þ¯
+Ðœ§ßGü!^ÿ
+íéÿ
+7Z|(xÈU0ÁÞ¥µo e"E ÜÑXÞ,)4ãFdÙ
+(%NÓÈô«Ú¡/ŠŒnw!R6F3é]µ¥í×Ù'·ûLÞDãóÖ]ýèGµÿÙ
+ÂÌv©qé]à¿í
+6ÚêìoÀkU'ê+­Ñü
+¡£ÙÝCoŠäpÑ	éPkçú²ÞžwF.£æÈÜ¥h·Ãëgtcef0>`
+ÇúV£|8±wF:uÀùFãùqE^ÒôItñ2Ím
+Ê³e7°%G§"®é~²ÓÄË6§Ü«6S|hJNE]Òü§iâeBÓ.U)Ÿ%G§+Eh}?èmù¯øVü#Ú_ý
+Zgýúÿ
+ p:ûÑVR$k­ìÀ¹|ÌAú
+ÑH®·²;
+²îh¬ß¶:MäµÄ±í8ðæ³~Øé7×2ÇŽàLÃ£
+·-'¯p
+òŸ_Ã*6ÖXFòËåŠ1·=?¥FÚËÞCyp|ŽÆ6òG çô€7
+ËÞüyG$zh§CªEuœ1ÈpGõô§ÃªEuŸ1ÈpGõô«
+Ù$[
+ÈA
+c×Ò[}CÎic[×@žzí
+úóEŸ¡ç4±­ë \œvýyšâ7O$,³šÉ1õæ>$ó¡;·
+g>¹ÏZ>$ó¡;·
+g>¹ÏZ[\<Á;	3»pNsëZ*í
+¯ú
+¿ýüÿ
+Êmž9ùwq_8ü\Iã×lÖáT7ÛpsòîâŸ{øÍçÿ
+&Iõ)Øúâ5M,é³$ËÜ§cèh#œYôWÐþI×Á:{8
+I¶;yÎ<Wºé	8øQ¹ÀòMì9ç;_<WœÇçÿ
+¡¿
+îtiMÒ­§Oõ8U
+øQüš®ÇAÔåÒçif-
+Í3ÁQüÅv:§&9bÑÌØ<àÌRQUüQzºÝ«ÜdëŽó¿
+¿?j¿ïW\Ž{p
+pyß?ih¯;ÔõKK«3Æ6
+ÝHQ|zóœOPŽ±:±xÆÃ»®cß
++©éô®VB¥ÉNJJ)Ê(¯ ühbðsöÔKlãÈæ<+uú×¶i*GÃuc&AÓäÂçîüÚœÙäoN¬
+ Òð¹lõ]j+Ø,õ#NPKq¶F
+[hà§µ{všy
+
+°Ü}°RÛGê{WžøwPò<-ŠA
+	n>Ëž)m£Üö¢¹ûÛBëP¶R²KIü·
+ZIŒc±Íd^ÜjZ
+ŽZOåžòÒMã
+k.öãPºÔ-€Ô¬Ò-ÇoìsExOÆ¿ùìëßú×ükÿ
+êì|U
+Y2Ìï,*þžÎìý@¢RÔ
+÷hÊ
+(ÒA"Üf0ÛYv
+ãŠ:Eu÷Rælè7cæb	>õÝC)Î=²[ òÐ|ÌAÎ;×ci)L·Û%º&1ó1;{ÑVIâx§žæ5dÁ'?^kD.'{îcVLqõæµ	âx§žæ5dÁ'?^h¬»ÿ
+ð·ý
+Úwýùü!^ÿ
+ð·ý
+ÚwýùÂáoúŽïûò(ÿ
+qŒ-áö]­£YÆ0SQÿ
+(ÿ
+ÂÌv©qé]à¿í
+6ÚêìoÀkU'ê+­Ñü
+¡£ÙÝCoŠäpÑ	éPkçú°þ¹yQÌ
+ÚOýøÿ
+?á
+Òÿ
+¶ü×ü(ÿ
+ÚOýøÿ
+?á
+Òÿ
+;ÍëVrØÂ«ö©ÜæØô'œjÃN[~Óu;ó<Ó»ø^ßŠikŠÀ©ö»Ë
+»Ûå
+»QC¢mû«Ôv¡Ñ6ýÕê;Pè~êõ
+š¯#ñŸ,<G+"
+àJ	
+dõü÷¯$ñŸ¶
+#p%2zþ{×üEÒWMñ\Ï0åDÀÆãÔóÞæð2xÍàdð+ÀÍè4	õ9íÆçÉ¯Cøy€ŽpÏ©Èlž0G<
+Mz¯Âœá¶žÕå	²lG#Éÿ
+¥*®Ià
+º5©Y7
+^{ð­­JÉžZóÜdÿ
+s+BÂÖÓ¡óìågÛ÷ê2qÈ>õ¡akéÐùör³íûÀc#'
+ï[ö×6P<±cäÓÚì6YÏØ®3þóOö,çìWÿ
+ñZ§âV¯k?eŒr¶¯ž$gxõâìàEû:|£îÓÚ¹L
+ 2A
+0@÷©m@[ÈFH#·4V7!M"FxÑ#vBÊ	SŽò=*öšKé¯ÈT§úWmi{uöIíþÓ7"xüÃµB:íEÿÙ
Index: /ELYSE/HEAD/doc/Images/numuEvent.jpg
===================================================================
--- /ELYSE/HEAD/doc/Images/numuEvent.jpg	(revision 286)
+++ /ELYSE/HEAD/doc/Images/numuEvent.jpg	(revision 286)
@@ -0,0 +1,1732 @@
+ÿØÿà
+$LO$Éí.Üßdr0
+J-žú:ºèÅÓ^øºvÖ
+Ò6'â×aœÆ
+o°n1Êí]¹ºÆ¬ðK«ÙžÞ*·ýî4ìÜo[þ÷ŽµÂâaÃ+ÅÒT(íb%<mÛù$»£h:/ZŠ¢*&º×õ#
+ÑÒÒõî
+J­+MŸEy"mqÞ 0A¿@]Mvâë×ªµ/£Áþ£õÄj=f4M€äÓÒ8žøÂªvn7­ÿ
+Ùzâ5s
+6ã5zD§ñôpd ;( (©œ€Ñv(õªšuUbÁÄ9ÍC:í1«Sbmv-1l}ÅmLÄÔ
+MK«j*ªWqî,û_ÂQ~RÇž³ì=	EùJò@ÓŠæ}¡Šr7
+NZµÇ"õöœ,çµÂ
+Ÿ
+¡ÉJéÂýÒõtº^Ç(YºLyù$RŒÓÕ7;µÕUQ<+]®'å
+åùN$çfåV»
+6¥JHæ+
+a,
+Pw ŽºéÔá®^ãÜYö
+¿¢ü¥;qgØzþò9BÓš
+Úì\Fùž^TGwÑì-u"d
+Ë36Åîq
+@W·í&ö§Ú Ø6Ñ¡ã3sª"
+êJ©ž¿kžûñ®Íd2ßVrYÜXï
+YDp]À=êrEU.¥]=z®w
+âÏ°õü%å)Ü{>Ã×ð_š.±hG6éµY1#ÍJm§IŽÈ¡ÔqÂ1Ú¬×÷
+Ê/
+õŠÝŸðÛC.Øó±¡HýBO7·ÏS® ;}úÝ|£6Å€¹xÕùéîÈá³Ö
+FÎó
+Ùº®Ýwî×DDAëTM*ž÷}¯á(¿)NãÜYö
+¿¢ü¥`, k
+u~ ³ûf$gÌÕ-qÎ¬œ
+ã.ÉáxYi#> ·%ßÞíÑK¬|ñ;Ôÿ
+Ïz/Òÿ
+Ïº*ý§E_  ÷
+âÏ°õü#å)Üs>Ã×ð_§~ŽoúzÃâí·ðNè+>è«ô~VÜs>Ã×ð_§qÎ,û_Â1~RúÑ¿êëw¶ßÁ; ¬û¢¯ÐJtUú	ZqÎ,û_Â1~RÇ8³ì=ÅùJwëFÿ
+Ïº*ý§E_  ÷
+âÏ°õü#å)Üs>Ã×ð_§~ŽoúzÃâí·ðNè+>è«ô~VÜs>Ã×ð_§qÎ,û_Â1~RúÑ¿êëw¶ßÁ; ¬û¢¯ÐJtUú	ZqÎ,û_Â1~RÇ8³ì=ÅùJwëFÿ
+Ïº*ý§E_  ÷
+âÏ°õü#å)Üs>Ã×ð_§~ŽoúzÃâí·ðNè+>è«ô~VÜs>Ã×ð_§qÎ,û_Â1~RúÑ¿êëw¶ßÁ; ¬û¢¯ÐJtUú	ZqÎ,û_Â1~RÇ8³ì=ÅùJwëFÿ
+Ïº*ý§E_  ÷
+âÏ°õü#å)Üs>Ã×ð_§~ŽoúzÃâí·ðNè+>è«ô~VÜs>Ã×ð_§qÎ,û_Â1~RúÑ¿êëw¶ßÁ; ¬û¢¯ÐJ,UÓÁZqÎ,û_Â1~RÇ8³ì=	EùJwëFðìõÅ{ÞÛî³Î¿AáN¿AáZqÞ-{þròî;Å¯aßÎQ~RœïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+teú
+ÿ
+teú
+ÿ
+ÐûñkØwó_§qÞ-{þròïÞáÙëw¶ßÁ
+
+3o~ÆYºI9èVÎÄ[¹ï4Š?àæTtDðà_
+v8Ñì­œäîÕô
+"m-K­¡ëÕ<>ºõWpï.°ÀÝ8WjºŸÃBÈIvFÜåh"Œ@
+µDUE]]
+Ã\ýSEà­ðëÿ
+XÌÕÇx;º¥ÝÆ÷®»B`ëô>%'Ãî%hŒÇ×êÞÞý:Ÿ4îä-Âæ-c^ücþ5lé_cûá£
+[wuÁØD4aÄ1Èëú#8ÏŽÃëAkàŒÜþÄ€$Sÿ
+FñVò»Þ)JÆá
+ËÇ
+³{LÖò»§méoœ¹ä}LCjšª»Á5ïK«UëÎì<UÈmpÃ(UvB79 -îÎìnW.5Ã2TEMu-Uj(ŠsÅz¢Ká¶IÞîwØ7«c¡
+°°n+jo	 à*#/ª(ª*î]uN€õîD¥gi
+ÂÕÁôû\éPf5ÑùoÆtp5Ò.*¢ª}EZ å\K¿^nø
+®;nÅþ|¡#ÈåJWÜg¢÷«d¬I%EE
+Jëßh€^¥bÜ0~áuÊ²§ÂÌ.Ý0
+L_	žZÉuUQFÉWN¿Bø¯ïÖkŸ}kÜd?I¹²öÙèœû¢šØ«ñQº÷º! i^fÅ/·û
+Ì]»%Ù®Ä;±±"g,¹Åuœvh:Q<:,ìyæ7áQ.}ÄÛ­ñØ¶ž²4
+Ãoºž@ªfn
+šZ¢
+o¯?Xnùq[¯¹Ësï5ÜJ}ŠLíÈ¶Õl9­ !ì'MI±ß±
+MÚ¢,À3_ñ·²²ŸÁöË{õ®Ù&èQzÞ)çQÁH£Ÿøêd­)*ª"h!ÓJÌø'tveß*ü»ìgá¿^±ÝßrØâµ¡šJ35}§T
+uDD
+PQ
+tÊ"R©|rÈîx
+ïwû14ãbÉžÐÇAµ-©UÕS]STMQSTZAv·ðß É
+u*HZ§:ÁMŒ
+w^
+q\G
+3hjh@Û}ñ/RUl¬ZËÅ
+µÛ
+»Â
+±}®µtfë2Û2ß<!D\ÅÔbB­i¿M£èµ
+¬/e,ÝÝ²Gl1Ùm€ÁnÓ¢²âzo]ÈšHš
+Õ©çJÀòÛ/ŒÀ²{[\È
+E
+~S±Zt[±Wa#ššÒ¢èl©åDT1ÓJìñ_-U`
+naßS
+ØÍNtDÝIFøëœ
+ 	»j*ó
+Z*"ÜéJQá\3Ë®_ržäWÛsöŒÛ]ŒmIcµ¹K«n©.õtM4DADDš)übŸÂ;;sjdÃñÎ
+9c
+!¶n7¶KB`®ÅVÄ­M5"ÜéXŽ&ååÒz0ØÝŠ[	Óåµßkôy7XyòmNôŒïŸMœWøÉÏ9Ìé=
+ªZ[Y·ÉôŸØŒà£íh
+lÑÀ·(ª¢[+$gò;ožµ·Øq»¬Ø.N¹>û|ÍëHÚ©	(©u'3 +ªÕ¯
+Ù­Ç$È²É¶ì[÷à«ÀûJZwÔTK­WŸEEDO
+_©J¬ñPe¯%Ê665sâ6Û$€¢ú
+ÚìÞb€ª"QçëqqÁ'er/nVË;d×çÄe-	ÌKpÔÕŽGA	œ­ê«§¢Qºçyvi
+Ú£-Ì,S]¹^â[ ÌBìmÑUp"ì$UOru"ŠEŠR±»ó¹y;
+KÒILdyíJm]âº¶J»6ï
+UF
+²ÝºÖ4V®1×îŠÛvÙ7ûr8²
+²$Mï5$
+â+àÔ·ÊWG
+"ç`·\¥Àvß"\Vv#ºïdJÙjºª¢êàð%wšJÇóiW	
+}jÍÉÉ®VôÅWcír£œ(Ÿ~Ê/{Þú%^Žê]5Jññ
+;À0äM³ÝnH°Ê|@bL¹&<©¶D Df3Òîj¥¹5"ô
++Å,o(±­öqµ®t²£Â|4Þæšš$§ªªu&ÍšnÔy8]Äì§.ºØ_rÅŸÑxéŒâbÙ%±¶r¹;¥«OïAQ]šúÊT`¥)DJWíg·>@Èìrò¶nÙ7Ü»é
+gb¶2PWÈÎ ^PªîBOEVx<YÉíž\Éí5T|^ÏarhË
+r9¶®=œ¥D/
+®ªŸ
+Ð4¬2étËÇ ãkmd{¶Zv rÝÒ6èŠâ+>{çe±	Âj'¢ ì^(ÜGÌ-ÖlrÅ¹]
+nô¯ªTçf:Z
+LšŽ{WNùóU%×A×J"Þ)Y&/q
+&ÏæXàc¶{|l<§šüfä0.:ÆÔÑIíHIDDyJi­ÑÇ.Dxq^-ö£Ç`	Ç]tÐA°ÕHzUUkÎvþ&ßí
+g0¯š9ÇîÙ
+¶­;n
+Z>c` š«HKß"%zBEâŸHÔcK³8Ì7daìdQ€:ëÍÇFâ4 â¢¹»p
+.ŸtjšåCßxÜò+}å;
+í¹;£EmYqäŽéNGtÅAuÜª+¢xTÐ4¬ÃÄãyŽaçl[wï¢8Æ¯¶ù#FiŽw4šÉIËí«#g³]³Ü&%Þ{2D¥6
+-8¡%¶+&*©è¶êV#Ý',µ[±ÉâÙìöiöërÂrçŒÄçm²y³.ÅTC]€ð9»dE¥mÔD¥+
+É2|SÆX[ŸÍb%ª1Er4¶Å»Y,%qÝ
+KŸÕ€%ÔUt×MH·:W¬ŒVÌŽ+U¥ÛÌ5Êã¬%ºTÉ73À8ñ+í®ØêK¢ž'¹QW¯ÀžsµÈÆaH7²¹
+ö(»s7]èGimÐœî%åõ!iµ5Ü[å*©Â,ªFkÃFM.#QdLGZhA
+
+&ÕG^ŽEPUD]t×MWMV×DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJREy¬Êlÿ
+ªwšúúÕz7
+°ðxëE
+mÇlVÜëÑÉå}GŸ%ëæª¢EÓEM¡ûsâÏŽ¿ŸŸM;sâÏŽ¿ŸŸMsÁ]1ÌfÍ¹5ëdgFDã%É%ÙŒ¢(#¹×HPQ4DUÑ5]5Z¬Ï·>,ûKûèäÓ·>,ûKûèäÑç)°Zr{
+
+ò'K·ÉÛÎgA»i!|*¢õ/­]k#\€¶þk¡ufî%ÎptÓbÛnux
+¢'­¥'b8ôÜn="ßºßnä,!#(Ñ6è8$(nB×MQW­u§öçÅi}|vçÅi}|"ºcÍrkÖÈÎÆ.K"K²yDPGs® ¢h«¢jº"jµ1Yn|Yö÷ÑÉ§n|Yö÷ÑÉ¢-"\xó"œ[
+HønŽè!I¢"õ***¢¢Õb°øÖì ÔVæÍ~P0Ù4M`. ¶M&ÒÐuEÚ:W»sâÏŽ¿ŸŸM;sâÏŽ¿ŸŸMNFáÌ	PJÉÒ-æ%=$0.ài²pÉZ-	tQð*
+xaÝbÝ]¶ÊztgÙ/»rdn²D­8âÍ ÞH{vúDš>Üø³í/ï¢/NÜø³í/ï¢/DVgp
+MÈ!§FŠ]Vðé
+EÁªÏmÄ-íRz
+Tð*ëÞºc[LIvÖ=S2íí4€ÐGuTmEQ4UDï~RûsâÏŽ¿ŸŸM;sâÏŽ¿ŸŸMi¬Ï·>,ûKûèäÓ·>,ûKûèäÑùâw««÷+§üOKè3/[çŽ$œµ|
+Á.€Dð"%tdp¯~/D;3£
+
+ÓiŠçÈlæ¡£ Ò
+6há!6DºµEÚCöçÅi}|vçÅi}|"³vø§õ°ãÿ
+ðEÜ`³:ÊRN3>CNœ
+QYuÁq
+ÖÑ
+€BK_Õæí
+ÿ
+*é®ÑÕàä-Þñë³Æ;}ÚÝÂÞán6
+AtT_óÛ-AÄê$Eðxÿ
+Ðø1ÃôŒÞß·¹9LXèâ6"ªÑâ-Q4DÐKR!EÐUHsÎzâ_îH_
+à£
+Þ×:µEETTQ%EÉxšV>&á·
+~ë®aÄºžN»,
+âqÉ·
+K®*
+h¥µ;þ­IUtÕ|+xâ5e»cñëõé*5é
+&Oó
+ª.ÒÓjÐ'ðæŸêqfÙtìd$^€qJI!'
+@[õ
+<	ÝÄžgÀ&G|'Y®cºŒÃï0/9§QÄ°G]5óµ-7hBª:Í93+`|
+wâA*ã	ïÑPDe7uSR$mÑ
+NñVò»Þ*³Üó
+Qg¹æìüÇNç°|gðK
+MY©DPv¬7µOn}¯±AÖŒ·ã[ÚmÀÕBEMQU>¢­J\ Â¹Ûß·\¡Ç
+B"=
+CHãn"!	"¢èB*úèëWbEYîy{Æ±äÓ¹æìüÇVjQg¹æìüÇSK5Ç¢YmPmÌÕÂj$pdÕ5Ñ5úI]êQš¡çYfÒ¬ºm«¡ÚJî1ÀÁ~
+§QU©hZØ·ÃzleêR3%Ð@SÂDŸ²%Iv:ÅìÜGñÑ-*k±Ö/d^â?±{"÷ütE
+JìuÙžã§c¬^ÈœÄ
+BÒŠ»
+böEî#øéØë²/qÇDPŽ®íø,ÖË
+ûWIW"FqñÏš
+6	¯Y"}JÇïËý-æÍ1©°%1^¢Oõ/Z****.šŽEÞ¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJREMãg©
+ãê3ðÁ^+sç
+õVœ©ÆÏS
+ÇÔgáŒVçÏ
+ê­}¹o&MÞë5¯ÆO¢=¥zÌœé=ÃëQÿ
+ýÃ
+ýó ³Nzÿ
+FëÓèõÔ
+Ceß8³~é,¿Òqšæ
+æd
+é9p@5N¥!FõD_¢œzUrMÆß|X'EfdÍý
+qý©ì]Kju®ðÕööKû*ÉøÙn>ÃZòØÈèÈÅn-]
+Xâ(ûÇªSBjC¢J€£®ËAT]SB+_l6Ïv³ÎËÿ
+WáäÙW6(1t>u*Ö0Î
+Ãic3[¡EÔŒåAÑA]Éß¢®Ô?
+w­÷ŒŠO$F{#èW³ržÉW¶ &
+Œ&Ñ¥k¿I·­5ROED^®µÖãoµ@r}ÒtX0ÚÓüE¶ÃUDMH5UDúªyá^îU»2Ÿå÷Û»òØ~3Q$ÈRaŠÆAwÊª»ŒñWT@ÓAJíy«mÖù<ŒO+Ó!ò:+î4$ãä²°5
+ÉÔºxSÃDZµf|4ýOÆ~(ÀcÎ¡öÙÀw­®ÆUuÄêB5DR/	*&ºÖYý]ž§ö#óR¢-2¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ¥)JQ7ŠšÏÃx­ÏÕZö§=L/Q
+ñ[</ªµô~åŒ}7{¬TÖ¿>öê/2÷€÷­Gü§«d¬oÌœé=ÃëQÿ
+æþ`6ÞýÑï$6
+
+4BDM;V,²óº
+§Î6âé
+€T×HãÎ"Ú×Zê ¯Všº%Y©DT¶xU4ÛíŠ:Óý¹-«²
+qN:©ªššÓô@*"ÙoXxž
+­×äÅI5÷)
+Ö3S4UDUÕzºÖ­t¢*£:ÃÉÃx-n± î/ÜúLy¯²øÈxvºBè!¢"(
+ ®ÕÔ;Ùí
+4[5P D[,¶Bë^µUUUU]UUUUUUkœJ"Žÿ
+Ì{Uí²ý._cþ.èw§ÿ
+NñVò»Þ*g¹ß
+¿ø÷
+Ê§sŸ;ñï*Uüªÿ
+ŠªE¢¥3Áïå=ožÎzl·®ð,yCí	ŸÜÀfÑjnH5Ñ]hÖ$Ú8*\UôD&ÊËa<,ÌófbQ&xAÛ
+š	AÀCDW}		"ø	:¬Ð0n5Ï
+t4£2¢Ih^aöpè&Û Iš
+*J\
+;µÀ·á<
+S×90åL-äŒÇSÊº'²Øè'{¯
+UWf±ZàXìp,¶:<
+|fâÅky-ŠÅRUUÐQUU_£DY7sŸ;ñï*Nç|vÿ
+mz#vrCr%RW²ðŽÓvãMtSÕQHWœT¬oÇ`µÒeÜÞ5Ü©ŸðÅº×O
+D-ÊšyŠ·UñÖkHÂøÈë÷q¬éi­	P} ÙÝÐã î8#ÎÅíéXOœÊ÷NéXOœÊ÷^9ã
+è«"×f·»Î{fBšjÛMGUêDï¢GâŠ¡žæ»}
+Žm
+yh{Oÿ
+:Ðž
+šºŠà$Q$ú(HšŸEJÎ`Å·å3·µÉþÉRR&ãŸó Jª«ž[pz×­­|+Ü%j5Z*
+zÈ'¢>+¹Ã\ì­Ê0ú4-Å$3¯xê7×Cpø
+k¶i¯I:Ñ¿.æoð×
+qã'
+Â3Dkª(\FÅWÀo:h)Õ¹Ã_	.¿Ï
+=S±_÷Ô?
+ðÇýNÅ^Ÿ¯7¥³ÿ
+=êBš žiµI=ê&Ô"(o("hšêš9âZY8H
+	âÌd£ÿ
+*¯S«UC
+ë{NZ\{v0¢ÖµVm&é?È°©Ô¥vgÀoqŠçÃÞdl^hM£ 4EN±!TTTêT]Rµ)Ë­JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(ÐŸ`¯Vè_Â~m"¶Þ:cîÜñ`Ÿ[ÛÖéb5ÎÑÔ®®h'Rëš¢"&ªMzõyœ[¡	ùŽõuDŠÀóU®Èüµt«MK-;jF
+Ö9«UY-v·JÕçŠ;fWçHžÅpE6ò|
+9n¢{7nÕEuZÒ1Iöòï<§5]eLuïMZ%"oruì"RDTÝ¡j)b5L×4²7vRBÜI¯"hÕÞ"®»H-|$µå|tàä«
+ŸSÜXñÏ-
+`ªÏ|;ÀÇTêÔI<(µâmWÃ«>ZY²Ùq
+Êóqssf<lÛ\'Úm
+plp2EÑuQE¹åyÅqönè,ÂÍ¢}óaÒ
+o]î±žà£NK'V×T[khM²/iñ3õ¿øOêV3Â_Tþ7ýø­­ÿ
+­¯ÁO	&µŸ'yæ{w?;¹=Ù6Q}µ(RCh_@
+TMQETë[ke]¯9$(MsçÜñ:¢)"òrØ€DJšFá©)*õ©*ªõªÖªlÍ
+°rkŽ
+
+gá °oéOÎãÅp·B«D]ÏÑÁó3U^µÜêiŠ"¶«gÍ¿Éògú%ê©g³¢Ü³[ÌÛ{ŒÈMu!*
+t%FDEQD[@
+j"&ŠzvØþAÃë$fMŽžÞeYã®* )
+H)h¢
+m4+¢uíÕuUU_iÎ{[Çì#÷Zío4hÙëW>h31Æ}SÉ8üÒpe[³h±æ5ÊpÙøä]AÛÇz×ÓÂèº-Už
+ù
+LŒZ¡°ãË
+àVØL6
+GËd¹
+6(dš
+Äã3È8û
+÷
+91
+È
+èK$Á®Tpy_25UÚ[UëõMke 5õ\Öä\F
+.©VÏ£èÖª
+NñVò»Þ+¥)\â°JREFŒ[sH
+Ežäxå«¹ÄžZ!B0wz
+w¥ª FyI$®+Õ\Øm¯*íâùdÐ,¶þm<{uÉÙâîË22#a­5é"èW®®t¢/)ñç	ã
+ç
+]ñì%ëÞ=
+îÔÂRŸFe»^
+¢mžzH©8t$!Tÿ
+Fd«¢¢uªª®Eá 	+€luub3nsŠîn+M5ô<à-Ÿ[Mzµð%Y]¶Ãµ!H²íMŽó7-žÒ
+©(*JhÌTkœFxó	;Îà¯æ_c>
+ñmw;XKh!
+"¡Ùl^YëœAUwne»àrÏªál§Xî5-7Í
+F1Ä`rN°#{`±9ço`FÛ.£8ÒŠ¢áP#|Å
+è)".'RÝ­7\&m5ÂT+ÜQ1ùò
+Ü±d
+lÊ+ï6ÈÚH[DUŽÖhŽÆçJÄ§äI¶(dütVÝ~
+U9 ;»Ò&
+ÜK¢* *nýµ6îW:Á{Ú[Š@%€#mY5jHh
+§ÇnÁMt5­Ôê9ÙíüJ®¶Y(Z)LŸbðß8È×
+¯+H¡ØàDM<
+4ìUAég¬	)0à3meË&A)-±Yq#Ia¥šl
+ÂûÊóž9lÎ'ZÖÔLŽ©ô7ÉKÁÔ Šœò.ºöixŸ&>Oi
+&GlÍå";!©V
+	]T%µ¢ ê
+ªŠ¬?À.Ö;ÛøÍÖäRíVÉs'n16HUVÄÏp*êè*Ž$šn×'
+€0\;Æ"í¬øÃi
+7(JEP$Eõö¯ÐZ×gŠiTÄ
+F©ø©^Ö-Ö2iÔ|µÂCDH0ponpžâcS
+øóìÄk°j&XížàxÉžYpÅîœº š!**uuÔ'ðûw
+€àf4ÖãYg
+¥¶H\èæÃmé\ÚDn¢Šíš¢.ºé%ÚûÆ­Ò;œ³o3cQÝŠ«ŠºkŠ«Toõ.
+Ns­¹
+Æ¶¢G\|d
+¯þ]
+E_ª=Z*ªk}ÖŒÈÄkÖ9Û>ïZÈÛ×Ó¢&é®$yÃ;9¹a9`6H
+šßÊR\'J&ÂÚñ(6àFlŽ
+õTsœ]DEÓB]iq7åð_Ã"ß	û{ÂÓ*)Á
+ EU$mYä©".#wW ,Nùl~å}ÄqŠÚHì|(Í<âš²YH€¢²ö.ë³wV»SÐY¶Zàñª$oòXÇ-°Û«C âk!ÁJŽð.š&f$š­¥I²¶ü±¹òNÌ¡Qéú¶ÃövSp$7XÏzKð6
+q~?/·&,CÑlÁ%œ±ÑõF	ô%Ñä7
+¡j)Xåo<hÈïØŠ)â3d¹6éÑB]ÄoqãÜ
+TUÞÙ*)ºó]ö€
+tÐUIÌ«·[Çû
+7ø¹oùk
+k	23ÃYÄë]'sîŽU€ûU66ëÌ7~|
+­üàãUº¿Y1Ùk
+Æìi"=8Ó$HÑ¶áG-WE-ÍÅW	Íè"ŠÂB>ánŒ^#[#`»fùíW]pFÙë'
+RJí
+¡!"ª***¢¢×Z :dÎk«¢)ŽSð`De¥x¶%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"²ñoZ÷fW&á<.V(ZâÂu
+ú¹%ÂžÛŽEµÖÈ	
+a&À{ÂvOòC!þ-ð_Ao°Rl46Ù&Å>âe[|Qvª8(ªºšª¢¢D*$*¢±šxu9òÕs¥<VÅÿ
+R%S%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%OÙ±W{ Ì·ž²&»0£5ŽóY'Wy&Ó=6ŽÚ!ª. è@p/ÜØ·ÊÄàpí×§X¶Šª(ªš8
+žžwröª¢ÖL`­Q¬œO1«høìãÂBèÜíóíss
+&¶Žæ1!¢mÀÕSQ$EMQQ~¢ÕÓðiWF¢°7áG¥Z
+Q-2/Ÿ¢ïØ\²
+6l{
+%ñæ'Ã7¬®]fIH¹AqžEv/1Órd6ÝhP(è¢ªJù8€-©í
+ŸÍ.ù
+õ2Ë&×tÑÂ,T­ZaMX|\WH«H(¢©ÊcO|LNÞÚ¹
+{M{X4ÛÁ°IiÀë
+âÐ8%T
+
+Ùu»°Àç6K³
+s	
+ãç
+6¢Ä1yY$M
+pÔ9­K¡@]psgÞs
+#.wJéGôJ¥Ãx
+7Kqk±à?87\3qßžcSlØq«œÜ}GUtÂ¢÷Ú¶Z:(²ºëøobâôû6Øýrr)/:Ÿ]
+«$K ¬PD«mÔ"ÌŸYîX¹ò$!2Àþõ|yB+kª`Ç1Aet"Q&w
+­ÆÚ Åk/Iðåá÷FMfå6áÅ4{DD««ÌÃfôÜN
+ ŒÆÐ¢xÆzŸhÚ¯©ÛEÛñtðQüMåvú;àï4)ü&×rÏà-ŠÚÓf[{PŠžlï
+tž-§E}U°uä¡nE#7ÕPDW³d±ây-[I§sqÖT
+yÈÌKú!ªž÷F>zhªOóWIÈìD€Úø8uÜÜÑdìä+:[)Ò#JÕ<
+¶®ÀóoqâSq8v°ãÖþ}³1²ËžÙSU£8²
+£ÑEDmUàSÐÃDH`Î`òêëCnpœQ?¶i4
+®C€öéPŠuUK#Fð
+9
+·cÆ+rMW_b+
+¡õr_¬«pã
+È¥Ÿä3	f3èžRv*â6ŒÃÚÓ€J"®=·moCÈ
+Çxb3®A&L×¡8É5(
+
+uc2â¢¿%
+È	Z5
+Ñ"¢Ì6Í@,Fû^ßÂq
+ýÕ_I}­®u[4ÝÊÒDóÆfužÁmsÄ
+ËoÑt'-$^mÐcHnàÚ€yÜòÔ
+Nf·µTPŽàåþ|kEêûl{9æq­ðíðÐë±mçÏqšóDÌŒQM¢]{LŸÚžcl0à3sµµnÞážËÎ'õ©º¶±lTÕâï·-Z,âpÅšq_qŽŠBÒ¶j&ºôD|M;äTa6 ¢íÿ
+H2\
+Èß
+è¢©ô	tT]5QköS+ÝJv«FœÓk{fð£ºf:KûjYÜLÎï6ûëw{pdm
+¡)y€°µ@ç',DÈ°@-6çâpíËiFW{ŠF1F]àQ!!T×vò)¢(Ì^œU¥ò;Ê8²óãfóÑÀËšIÒ¹²bÚ/®J
+8HFÉ|ºMâ
+š±øXöQ¬ÊŸH9êLÇpôf1*!³° nA#=ŒÕ+Y
+{È8gÖèö
+2ëÙìÌ{wà]ÀÀ0Ê[ Ù`¢èÊØô<×«Øsíü®m
+h(Y3?]©éÖV¹¢
+994õúÛ
+ºª÷ÊJ"¢$%ª
+«¥Ò%²
+\érÞoró2AÕU5UNµ]*ÐãR³5éÉ}7CÒmGR€ãý¶Ý',[H&yÕ·	²OvÖõœdÏv>šZ³:Cëµ7¯S{Çpš
+±$ê©.=Ý C
+±ŠÛ.*ÊÛØÔ	Çú¹î=ò¢/
+AI=Õ·
+Ä.ÜCß·	×q
+Naª=0QÆ×MÆ¯:ªšºÒ®5àòäWñaÐymñ%\§
+#	¢+ß"!x:î5$PSœÉÇKcšÛM¶¥º¹t€	óÈÇ@ó3WÝË°2;F#1b6ãoŒŠ}ø°fÀí@4QFTAÕk*!ùr)÷ñ«ºá©®ªD«Öªªºª­hn^bÀÆ®ØÛ"ªç
+Bq¥AÓÑf7(×ÀcÒP5Ü)Ë$åÚvYlbÙx!n;m&ÞëFÁõ¢ ©X
+Þ€p
+}jÕhß4Ïì®Ò§ha¹UšÇKu@0òØÚ/Iå#&
+Éllì·§yl·ªB¢€PÕUUDT"UUEPUSUSc®°_¶Ïrn¶ªQ¥7!µÕSG"ê^œt]QzÑRºµÜ
+m2$©l4
+ ¢Œá¢®º
+)*n5A%AMIPIQ4Ò1qpWŠÚN$V©Ú9uí8æLôéJÒ8}#,c]±=c6Xr\yä;ÈGEÞ4Þáèšá6*J J¢ÙåIÝuj·Z
+šcÄñ
+'P
+Ç
+ó7#ÄqëP@vl5ÆSPxÅÐ6ù*ž((œz§«·ØkŒI·7q
+rHç³€Â2&\Tðì"RD]S]4]5ETÑV#Ëù»âc&×XŠHæÓuŽä¢ÎØ]T­Æ€fDãÒJeWs1h°mOêZ À)ÄóÏJRŽ«$¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)D[ÊÁfÉø«Ë[žÛt]v3É«n+M<è!'ùÃŒTWTTMQ}ëÛÏÿ
+ (ê)§@KÍÑÂÞ#·QiÊþÌFíÞŽrq¹kÖ« ÊT"UëTE
+nB·JuÁäM­	t£q@0[ }	ÃuUt\)MßQÛ£š
+\èj²žCÂsÚ&CÖHs3ÞÅÛ6o
+_,ø:êS§cèÄ»€È®DmµËPóÁêOwÊ=»,²+RVâ%å
+`ÎEolTlSI šØ 'Z
+ì4
+VÝh#sãÙÆËB)E6rîq	Á
+²`+âfÚŽ¢¡µ)
+lôGÀ	{Ð&®9
+¢óí&iz³Ìe§ÂápÊr(HkR
+ê>Ùæ¥ª fÒ	=*ãj
+Ã-c>}ždvuáFmlOÜáxZü$DŽþ
+7	Znº/dØ¯ø^Ù7>ùç¿UÚõëTß4>óæõ
+¢Ðè€ps)¹®
+ìdÆ}»$Ñn
+­þb7u	-I' ¢d|²&À õ¡¢TÖGÂ÷ù\c^à<²®LH2.SI©­Ì]­<ú ê§ŒS¬yŠ.	žçeì
+	íJuÂuÂJØåœtÙp	¶dÙdyC@qóÙ;¶4ê¢©m"«\Îµ'NÀx€jè;ræQ4ÑºB§.sLxµÒ s	ÓŸAJë_ñëUÂ$š|/
+Ÿ²Üø·I2ÉØÛ.¶Ü³%M»
+;¹2z¡8·W~BdÑo\5}÷!ÞžsáôÃh{%piæž:<àóMHL¹Z¹œ
+äio8è®ü6ùWæò§°­,µtu
+NmïTaÒpã:bál%
+ùÄ}jùŒŒá(/œŠÓíg1nyŸÄ9.¶ ;ùï8§üéçôÑy6ŠúÔÛ1Ú8kèÏ«
+fµV.ê
+§Òò°ºN
+(Áít.lBÍrØtg®âÈy'Ô	D
+aÖTëÁUCÙR¹^#EqŒÉ'7Ü .ò¹<ì8Š£€·iÁæPÕ
+)
+#
+IqQE^¡:
+,×8
+i²[\~Ëbm%¹»æb51ÖQ ÜF€ò*:ªéÌë-»lúáÔØà3
+[Ý¢æê°-]²òº4h{«Î?ÎæØa]]q³ÜfÛh:#h$(öÖQ9Ÿ
+äào
+ìBÛD
+­Œ÷X*ïe TÞ.Òhmê
+nkXÑ²÷Kêj'f
+xUUW¬ÉHËDÜD©­qdw¹÷û¡ÏæŠº )(¶*J[Srª¯|DJDªDDDJDDKXœàoYµn³Yª*Ú`¿057ÇÌRn&/dì œqGj2s
+UIçSnÞó­PõGuBëeÖë
+ñ[</ªµíN6z^>£?
+â·>x_UkèýËy4ún÷X©­~2}írõÒ{Ö£þSÕ¥d®ÜþQ~jùý'ž}j?å=ZVIêíÀ_åæ©\ßuŸX­Íî
+'Ex«y]ï¿Ò®qX%)J"R¢%)J"R¢*o?[ÿ
+;šIšìuå
+«æÂäèáíJ¹áÏ?9Æ1Ð.@h®[
+VÊXnD!VP	z[j
+¹
+i:ÄTÔ
+Ñ>
+¿xBqžÑ€ FB5­è&mÐWyy,ÂX£¿qmÜ
+{3pID¶¶ÜldÛfËøÁmŸNõÀo¬«²ðŠ.4tãÏâ3âÅD4]kqŽ×šFïHo'ÿ
+;,«m¡$EViHGAqœ®'.¯
+çÙbä²1+ôÇ ÊžÊI¥ÚaRy&æ\Ñ€¥ê +ÌUCÞ(ª£æM8ú3»1Ç\ Ûs	$.êÓ*	kó·Ï$Tx[Vm@L
+ö.ó£[±i«í÷&Ú+PHÕÑ¶ª6JD-¢ãI²@Öö×šö5Ù
+Löüuuªº.Çe¬úé}žŒeºÙ'4ÿ
+â<Q\Ûp€ºàt
+¶òJNY«ÌrÞÛÖbmæ
+€ŸE~yËÈfÚèW|2æ
+K³
+Ûr<sÑÀÛ`V÷*IQ4ÚØ©,ºÎ)7	Ì·\&6Ûn~<iàO2nÿ
+Xn¹¢ìÌ
+Ï
+ìÍÚn7
+sÝµáo~3 `I$ugÔ-·+€åDTç0€:vxÿ
+RºxYØû"=bœé&¶Ü)ÉüÎ×šM¹"Ìc÷
+,8ú¹] ×SW^d×]Sœs
+ÞÅuË8W2|X¶ÐÓÖë79
+rëº,äç8š;ºC"D¢€œò©n
+q­z«e'_Dü[Žnç`®iÚ
+.±û®
+ÇkGž0
+­6;f5àÃ­nÿ
+4ÛpìqdÝgÅÛº;(áîÚ/
+\ATUF4$ÐDãœÒêY2Ù®¬rn Ì97sÞ*R&,&uØ;CBAD×EqÕEÐöŠœ]­žv{Œ^&7"uúRB
+ÜœL<ÁžäkµÀQr^óÎZš+FÈ¡] æ0y-V`¶Ä7¯-2ÞyšöàtÒ<Âg
+ªMŠJjLl1ÔÛö`Û<°cæ*
+
+áÂšŽ¢kŠªªZjD€E©ªØn[Ëöh¶LrÓ>ë	¹hŠÂo7&z°L!(2â"©ÎpWk
+Jtg!N~ÄÉ8ÃÑ/­ªèª&
+¢cÕÔBªhªW.êíÛ°Ql4÷ÄËSO
+
+÷é¡* 
+IåmÄu;V?
+Ø.h7`³jqÙ£r"ó­a+GÕ
+%&UÍ7ÄÐS}&GõpÙ}}XÇ:ª·Z
+±Ú©Ñ%à¶.ÉIn2Þhlâ1ºªù
+²7CuÅì-âV²-Öv­NÞJªüiGÞjšzs
+]PGk¯hœmÿ
+¶¡Í¡ÞòÜPW
+6žH­í
+ª$%+ÅÂÖü	žbFâ(Ñîb1Ù5
+šã
+æ]y¢ïAKGU
+AAõb
+døäg®P2l£=wpi&Úæ+1ÀýPÎÑô=÷,QÃVÚER?MµNñÂyã¿fk*öÊÖcítdEÒáèïâºd|ÜU{ö!>ñkLÊYò 3Ž.·6['|P@[ÊÕuÇTLw
+ÈJêµœP'íÙm³Ç³dö4dÍÖÆjaFznç÷ ]ÜîÃBBptqÐ#sö¬»Åí$áW
+±0dó`žbf(
+<6L8»µE4S]¢f
+
+mÓ8üÙN\­'lÍÛÆæq§žåòÍIpX%ß±u
+h8ª:¢
+É,,3F
+xŽ~ó:;-Tí,4ôsi4ï7®jºì!®uÍ
+ Þ$šÖéw' Ü²
+mòÇžì.Ýc¢­ªî#"dÜ¢,°&ã¢l>TîóÏñÛTöÛiºÜ#,cmÄ&Ëy²BàjµTU&ÌP¶«D¢,ž"Ë2
+nW>s¬7AÊE~Þë
+°M* 6«œi5l\luA!­7ÞCifå
+³Ónv
+²n6È:NnlTv+âó€m«@¢®¡"ÍÄTVx 
+äÔ³ŽØ
+£¬îcØÒÊrl€Ð°*¿f(X$¢ºrÛÊø{Á-8k°P²BFÔd4©ž7©ÍË²XLBíkŒ[$ÅÈq{¬cÎ"Hl	7²òš%¢õõm-Dlïcù.!_³ãN^p¹ÒbK
+t#6ù×
+4NI²@^zJ
+ÑTR`Ç1[\Æo¹kÇ/O#l·
+Õ*ß3h(ž€È"ûbJâs	PM¬Mí,"#«[OW·m=$,ÕÛhŠòòà$
+KÄkhðj³^AàFo:0Ìù}¶êQá¿
+ÓºŽú6ÔPh5mÖ]]H$»ãª6ÐWoÇ'k&µØú\¥x-ì1ÐWRåÉêVAôBÍ^ª¶ee
+ÃKÄfÄåÐÝ
+"J¹ä
+
+
+ÐXÉŠ7
+-¶áhpÝaÔ%2¶ÙyâÑLTÕvõ£¢¯Vã²Å±šSN5œz=Âá
+££Eg³DQFÛ±·«¡u(šË0uç9Ùâ#Ð¡é·ÒšP£a.ÄÛ&gâFâ^}óIÜ
+Œ×"ž`·¶¡¹Ÿ[ÈŒï5IÕ=[R2R$%Ú®·¬
+Œößv;)Ibãe¡%mÙ
+1TUAQqÑWö/¢è³©¡¹Š:ëW&ñ"[ñl¬ÕsY25n( &â§¡
+ÀØõj«ŽETE}gdñô~KßªiAâäÏxTT ç)ŠÒ!.h:+€Q,mj¬ã
+>,}t]Ð×«£,v]A«9€;âZLãø'8
+RW[%œÙ;}³aJåµ«]­žËa
+x
+ UÆIÅY`6÷êz©4ŽM°i÷
+oò»sV[íþÅ
+Ò
+µk°y¬ÛcŽ "hën«ñí
+©±H6ÚB^ôªJtwì\0ŸôÆ
+>Êe4ÝÁzSŒÆ£R#ÀËä@;KSlH{¶K4\3zØImñÚ¹Êu[h@ÁP#moUA$Y-£ºªnpÃr.uª:»pÃ3ûh³(Ú2ÇCEÓsèŒNêAC®ŽÄ»
+LlZ1<qã'ª
+®Å6lng¶±¢P9òÑb"*4"ªN.©Þ
+*èªK ¡w"ã·©÷éMÙ ºëK UdHMQYa;óBMvmiU4WjFó'JlfC@7p}æÅWÎFb¢',UÁ5%æåÖ§*Còå;*Sî?!ãW
+uÃR3%]TW­UUuUZñÛrÇ·oÊ¶ÖŸ9øsK¡XG"fmøø­¿oGv+×Â/Iu§[&Ü
+9lø	ÁÔ
+TZ¬Õ.'rX­Mº?
+É
+ÐGÛü³6É;ÇEyÀ%TD0lÃ× §
+çñxÍ#Vž7È+*àèŽÙ¡"*0Þ€BšªñšwÂšJ)ãÚã°[(V¢Ó¹Ñ%Øâsé'	âx¡AÒ­JrR¢%)J"R¢%)J"R¢%)J"R¢/Bùœ[¡	ùŽÒ8-{pé3Æ;NZã+hæåmMŸ­rëŽW¯O[ê¥f
+aÆ€3éŽÓÆÙPG
+T%PLPÀSUëTNº»ÀáO Ãf$N
+e
+2ÃHÓh}TEDMV>ŸOø'ÐJ³î{HYìukîàHA§Y^÷Wa¯k²X7Ýë«TjZüÙ
+|we	ÃCoBZ§¡×üäêZ­qQ»Ã
+ã
+4äYdïïGvÇ4ê/]Q*€ßøìÚêÞýËl©ÿ
+MóœN`nÚ©°Ð
+HL{µðÉbmªåÁÄ
+FÌR&Þ)³6Ê2œâÌúìQÕ
+
+¢bâ§["g(ÍÞ
+Þ2åw¶Øv$Hl4MKµ¡xŒ ïw
+ª+
+H"	ÞŽ"
+W!µÝ.Å¹aðVÍÝ'6!&Ù=H×á
+Ï<hÂ
+®ÖUZANK¿Êè|D[°\a·ÒØÕMÕÄâ
+z÷6¬é¢óªxºXî§â:5(Ù_º¶ÑKŽÃ®
+S1	c1 é(Ñ
+[­ó&ŽãWŠ@ÉÝ¶ê2ÞòŠÇÂ+b€ÄGÀ{ÑÃq¯FõªßØ®œ.M"+K+
+	šrç¬'-ä%&DÁ 3Ž
+×AAlªögæ
+RÌ¥y0M\
+1ŠÜnêË dãŠšº£¬©%¡Ri°U%Œ
+ 9
+C¿©^ò
+Óº2ô9ÖØdÛM©\ÃhÃ2ÛémÞË¢œá(ššÍœ¶ZÝºbŸÍ8ñ\€ÈSAÒk.4és[WµSDSÜ
+qcWC¹Eì|nÙŽÀ;S¯
+Ídkwêèà*D(
+³1èº©%çOF~Ñ±eg§NÎÒ_NðncàÝ±zn&ëÄC 
+nk
+ü³ vÄ"Ÿ^­ìŒ0DYË¶}
+í4Ü`*Ò©jÞ­=š¶H°èBíJžHjÉ6v7 «íàÑ	°$š Ü³E$&D
+Ú¢Ìlm·ül/³#Û­O7">Io·t$ÑtP~;-°°djã ß6è8ã@ï1AÎZªVìy
+; ŽåÅ6ÑC7vPlŽ=I
+%v#»MLÐ7.ãDæH72­äàu
+GüvµhÑ»Û.æÍý0æÁŒÑ·;×Ü%Í-ŒÐpjn³?kcž]zVtyÄ²Þä&,w+iÔ:®`ª*:$:€%Ï0!ŒËV)3%ÁÛœžãŒe*«fÎ¢šá"¶®l5aLÎ»m·Ý±üÈv«;w}ÔÛvÇÝp
+DÝå
+!ÍïAÒÑÆ
+EmÝ	5rÛy°ÂÍ,ö¬bÕ1Ë;
+k$7L3ýîøsÐv!,TTNJ
+
+€ï
+2ørlÙÔR¥ŽÙXçQš
+é
+d!çñ
+@7Fb
+Ó7&Í»/8X/xFk,yª6»ÓDWuÖÛR4Þ²[Ø*Ó€XÞaÍº[²rk}±§¹!q
+GÓ£"3|QŽ
+Ú«®}çr°äÜ1Ÿ\§LyídÜDQÜÑÎ¢ú2@lDEM®ºÔnØeÖ~_
+êÜqœ56:œ,MØ;Qô"«©tiÅêW5Q±€7Mõ<Ìéýö\uŸ ±JÛŸc,sHscÑÇÁo&ûA­Ýr»;ÅéxéOËyNöó-[¥¢(GDm¡ÚáuŽJ®.õiØÈ{Qµß7Á²]ÙÂ®·
+Mª:óm
+óîœ)ð
+Ó4¯¥1ËL{EUÚq9bºc¬ÉmãÕv£* {WM
+u
+ªÒx ø7æXÀUÎ#ól#yùv³x
+4DÕTöýfÛDïVÑ>D«VoÄ
+ì6cI)žÈ_í÷j²Óì1Žv8Þã×©4Þ)Œu%²>ü
+¢
+
+FÐßêTð©­
+fõ[d\!púçÑ=Ç¹Ï¢O
+¶@¡ò"XDâ ¡¢
+nrBz€Ü,9CÙ
+Bm¹L»NÝ!Ž'Ü¹Uà!×%Žx©!"*¢ªuÕ·¶ûU§¿w°°ð3¯
+]6QçÀ$
+¶u-®&¥Ég7V&îš¶ì³X·x
+PkDJh
+£ŒŽ&ÜRGAÑN^òÉûÛËPÿ
+
+œõÛ€ö
+yì\Sá}ßð·©* š¢"*ŠõDÞm7+<¡säc0GRMAæÕUÆÉ;ÓÑt1Uõj;he·ùÕÔ®)6w]Ž]æ3d9t
+k­*Còå;*Sî?!ãW
+uÃR3%]TW­UUuUZâ¥+Bµ
+ñ[</ªµíN6z^>£?
+â·>x_UkèýËy4ún÷X©­~2}í+Ô^eÿ
+Ù;A4j*šª*¢šºjº}$®Y;ÇçrIfBx,Í*³5Q|ád,
+t$S^÷@A4q
+Ÿãzy×µ~ÏF£tAÉ 
+y²å'¬
+mÂ³\Š÷¥µË%ò4v\xz;LGÀêFè¶ºDhq*<ãDº€µfæ^xHíÐ¡Û
+ìs19ÛÝv;ÛØ$R­:Ó§"J§RŽPÑZmÕŠßoó-ž£VÆnØW@!8-BHà.šá«Ï¡!)îFv
+¶ê×,ÖÆ)]®Æã6¶AµDvSŒµEMtTR5EFÑQU
+£øJ"Q
+4FÝ']kh Ð'ÞçÉº1=§:ÄÚ*cD·µ×šèJ¥»U%%R%RU%²Y8¥[¹ÍÉ¹vb4©)+Ý$]­£ªÚ*ªò÷ .ãEEC4/zY	
+c ¬Ý¢ŽT»P
+Ë€¢*"òªuõ-·B+
+Îýkó
+2°­ù
+·€ÛdÛ@£ÈØÁiØB
+Å3ó°?Bš±vÌÛÓç7:ùÉ°\CR9žÓ »Ô¡ÊXjÒ6@ª{TT2JÑ®žæ)Ä+
+y«ðärÈ
+j,I³É­ŒÚóK­¡È
+®¡ŸË@Ñ4æ©µ)TÂ	Ù[6LDñEj{¬Oÿ
+ïCãÓ,Ý¬K
+£"Éw¶_
+ÊãeÑÍÏÐ;z¥ŸMÚ:/^Äq[Ï UÁ&HQ³ÑAÂh¶ÑÞŒTN±#ücø é8¯fu£®Žx;×Sp Ã€ir
+ŒÆÅQ]yÈâºl¹
+Ÿr)7Í! ÜÚ¥;¶\
+Øww%G·Ü
+HáÆ
+Fz6®4]hŒîÈ^Šû×ö6
+Þ
+MÝbÚrlR
+ëÑ°f	âÛ"Â0û(H®my	YVÍTIuÔwu¹Ûr[lÆX5fH0ÈqyÀ7 mÔF§AäWP£èÙ£J¶bÜ'vå
+ÂÔ·ÛýÎü0Ù0b
+åN%uÌÄ&í8{±Ûn
+»KÖ·
+pÒK
+bÛ&b-ŒQÊA
+	"óWk:§M/»Go/Ç)©ÖÆ+cW	JN:l[X®Åç­œœQt$Ð¢¢Xç3{ráiQ9Œ­I²à4'
+ÖMžæB'Þ
+DJh*ºòZílbæ,7(ÜXí±ÑS$I£m[tU
+4s]«ë¯­[w)Ü5sGb ÷À2ëkCß2oÒD7#«áØíì{vIÉ¶øAoyÞð.\Ú¢º·èWh~œé!®1Ãkùÿ
+è©Sñ²Û³ø"ÛquozyÙàAÝÒaÔùi É\5päœµQEâ`*NÖ;;òå5+?!ãFÚi°R3%]E­UUtDJÕYìhh}Ïj£lÖõ+T{÷30Nuâe­"
+Ù4Öq<³Ž^Âåº4@)7
+æ¿q¬€TVX2B&©QÅq€]j¯Æ»Üü9ì¥ÁÍ\l·º-®dF!U]£ŒÍt×ÂªŸU®íï¹Y¬Q,sß
+beàf}ÑÛû
+7OÊ"Ÿ@
+ŸB©Ë%m
+*
+zÎDäfe^¢Úí¶;d
+RÜÙ€e8+-"Ø-wìt"*¢
+:ûv¹_on÷yL(÷ŒóÖKàõº4DDDDDJ)ìÏoñ©]TuŠØóH
+úQMŒÀQqWi%woÿ
+èº°Šj€ï]nµc¥¥M§rÕJíVØFÏh8 ©KÃ¶)"-±eÛÞ!^lU4y=G­³]Au4A$2
+©åQ¥+dÊMCA'ÏZR¯iJR¥(JR¥(JR¥(JRœ
+æ
+õn
+ü'æÒ+Q·æHÖkå"Él²"I»Üot
+&£ª
+ Þ×A
+)Ô¬ÙQÌ2kU©*u1«&AOëÝ¬û5
+ÆÓwh­7Ô¢:
+ß0]øŠ×5UïTBXÜrÍ*ýt
+|7#6áhºŒêš€ ¢pºÓFÛB2ÿ
+7çH rLE4ÂiŽGb* ìh6õ*«mmææýÒPºè6ËM5
+;(šÔvÑUPUtÕUUUUITWCždÕùä)±·žcGºØ·7Èùlv=ÃS
+ÄJŒåÕQEUHÖºÝÄn>y
+=KÔajÉ
+ÚÐ'ùª£riHÉ{î¶ÍQQë,
+Fpkîz%J£€w3zµÀa
+hÔ%×qÔd
+p"szVÜþÝ3Ï­á=¯£hb%ó£úÉœèòMÚ*ŠæÃ×DÝµJº7
+¹l3ç]³ApÑ¶Ö÷fÝÚ/zH
+ºÚ*í%D
+TMWEÕY²Õc1vÄ÷o¶
+Aóbn&Ž¶¢
+)&Ó!\òÇs~Ñr	ÑÁ·ÆmÄU[p	·
+¯rûÕêÔQšU*µ>
+7;ÈÈ6O¶ZÛ¥¡
++Ñ[pS¯EBÚdÐ
+\ðKÅñììl¹3×tl:².¶É@ÕÌõ4®o4¢Ûeœâ1FVÕE]­LÀ#¯cüôšvlsM*mv@šÐMÜ1k
+Ýye±®Z¶qK
+smÄù/2ÄÒ³F.cb &÷-ÍtØšHã(mêæÔèÈáó÷fàDÁ2(Wû
+_ÄÞãó8svjv0*GŽ_Y'c#&%èsIQÇ
+UKTÜM*ì1@¬FùŒÌgÇv)V"lÍ4­ °· \n7UÐY§"ÒÒ ž5fOOÈìÈ1åŽ 1¢3"Í
+²Í.õn
+"Db`DuqŽÕ®ZX8~!w¹=A¶9õgåhDœ:I€gñÝŒ
+"Sé$Jh$ðžN²ê(_¬xŒ,g%
+Ü;SÓ¢ž/Z,@nÃM¡iÌpÀZÛ³gS
+úžFºGeàfÞ$ã .OoQCo/.
+4pPÌe3'W`
+lÏføµ{aÕ·5Š³ÚfÂ/à0ó\Í0
+A©
+hG±HœI6ÓnÉ¹ÄÉyÛÎjª jG\'
+Ð)#ÊnrÁ2
+W$éÅÍ\'èÜàV[DUq¢AïåU
+(8FšBà
+*§,EáÀ3Žÿ
+º¥'¹ÓXÁÙ¯«Ô6ÙXíöZ4te;ÍŸÀ4.7ZLæKªj{j7áíâL¹ãØãmAØNC
+m2Ûhß3ULPIELñ^¢mQtìÝ^án7=n7ÅÛ0ó	òaž­ž*Ú
+ªbxê
+*ïoTåÕo,žÜ¯®¿a8šbä6ÆºA;ÄFD"ž{QO¹6ëš TeñËoU
+é¯]ÝåwBBà0ÞÐ
+W­[u_jš
+»[ªÓŠ!£§
+¡åÆŠR°Úín¿^¡<Tå²8ê>
+®)·XnÛE×ùÎTä
+=ÈÀ
+PØµ²K'kb[v&h
+hDÀ5žHSb grŽ[nwKåÚk+Ž
+ûÃ!þ t
+Gl
+îlGc€ÒªjCŽh·<³#žÁrÝ"ï$-Îiºß
+Q¢¡u0ÞÖÓŸMÝB_
+u©þ±m6ÿ
+jœiªEÖ-8fXÖKZí
+ØÛ3
+Ž¹òÏDsb"ŒØ $æoM]FŽTW	*ÙÃw,Ë;¶\
+Cfíöß
+âêlmd<h)Þ
+®ÂÕ%ÐDV("VC|ØÖ;=*=OèV?
+ 
+]GÁ?üìQžýëKv
+/KÛ$÷ \uÁ
+5FÁUÂÑuØ¥¢é ª€m*ÉÓ­ùÞmº/|·rHd¯¯ÒDr¢&6©"óÔÕÀñ­ÃZÛV«éÑ-âÌqÆ±ÉØg
+Ý+³s*Û9ÈSZåŒÞš$¢BHª$*šHššª]jÄ0Væ¹¯Í2
+R¯IJR¥(JR¥(JR¥(ÐŸ`¯Vè_Â~m"œ]^Qóz·BþóižÝžurËòÅÊtFH±VÓfž6BÇ$7nëËíú¡
+ë£hd±-Ž)Õ~îû ž	q! 
+8I5mŠ\öØìeŒw3ÿ
+×£¬¥).9>µ*ÉÝfã+Î.ÖÎŸx×då¿»NŽï%žû
+×¢÷í
+jI³8ÃîýÏ{Çz5¹^SäÔC-šN«PØáê"ši¢"í5JË©Ak«¬Èä^;¹ëlikµã íçÕŽµëÊpîë}
+~ôÔÛeÚ	¥µ³DH1Á@TdŸoL%AÓ`«±BJN?gKmã#ivÉ(5ë.ÊÛú*GçÉb86Šœûb£Ž5}ÂR%o7
+üŸÚÔX¬8õöÙiŠÁ\ràÂ
+"©Í¡è§%¿ó9=ÿ
+¡|èÊ9£f€E0Wm7äfŸ5Í»EÖµÐu¡dá9ø[0LFåé;AYrÖäÞ2|VlæÔ
+~\m­Ie#i€phÞMU6ïDþšAžEžåÍpTÎ#·o`
+§QGH®ÈEåIyTUå«c¯X
+òLî.KÅáŒ
+œîë*vÀ'zDõ.¢º+çÆåTï
+QÂ%PØ€ŒÜÓ·«§äáyNìæÛÈÇu²&èN¢æÈQ	7
+ÉÖÈíÈÉçû®mýÏTmBC`ÝÔ`kq.ž8Ìë7DÖ#YµÃÉlÂ£whq¢Œ¯Mq
+yÅ%1A	
+Â%MQNH§~ZŠ(¹QeÈ>ÊÂÕÁÌ
+l#°Mªžé òÜiIµ'7!6*Š9#/m¶7®Xko<ÙÂC€
+.Ò; êbd»TÇi!­hp/ïÃnÝd[>u
+#ËYád71Ž%S'MçA7(Ô^AïÔ@¥SŽ1â]°Äš­"Ñgš
+èÝ
+åñ.%®sIÄ±"0S·
+rxÇ¶IµÎÜžÂ?CHÄB
+
+{]R2Ú
+àíRpr
+5œ¶VJïuuÅöäÇz€šakzlÄ¢Ç"@Úš»iõ"*jœÛuÒ4ùRã0ÔÐ8±Å~Ì.ªá žêõªx:úÓY!
+Ý»J€6Fæ
+æËF°`â¹Ì
+cÁvb¶lÅi$9$ÀIçPÜTMj êŸÑ>%rÒ!T&TlÈò%±é MêØžâ£â	?Ì$qÁÝµWi!©mÕv©-Wò»_¥?
+¥[
+qàmB71Ã4m%©r:*$È¢'É
+GvCqS:{Ð¯¬Å7wKbÀÏKùiÖÛóßAAÚªBÓ#«µD7_žQÃÛk
+öeç É29w[aÂW+4È"lÑ4'^MH4$TD.¥ð\žuÃ[Šä®ÄÌª3À@ó
+€u\/w=Æï÷ŒÖÙ·íÿ
+àÛIUII(îU]ÃµDuTÜCIº³=Ò\x3:lF0bO)[ç Õë
+SEÑzÓ]+­JÁõ/!o³X÷¹áäÎ£;`ÝºÒ¥kSR¥)JQ¥)JQ¥)JQ¡|Á^­Ð¿üÚEzŒ	ÆÜYtÙyµÜÛº/Tÿ
+º©Åxíeüý7å)ÜW>Ö_ÏÓ~R·Ò€Ê4ÛIÐ
+
+w«Ó\Æ\ÕaBRQ)š€J,	"¢*)ª(¢¡R9æ@³[bÉ|yÑ"1ÉQctfd8£àm
+œD:í¥QÎÇ
+ŒcWÛ¬Tè>©¹4
+Ù
+ßî]ÌåÞHãg!áêq®É\Ø^žïm¢Ñz·¯
+SE§fò/o?vÝŸB«}Ä`ÿ
+©iµ\Cj8'¬abU²Pk
+ÚÂøŠÑ:ù±;¬Jœâ7»ËQÂãmÎ8z1
+qµt£aq€)$ÁJ!qµÜãB€Ð×š*EÆy³à<XËJ#»H­ÐîÅÐÔÃ€·!öÙÐ[7Gš*	¡;Þºàc¹Sf32^e×aÚbnHÌª&ÆÛeê
+vŠªëáUUU¶^àcv¹Ø£®tøwm©zv:	òE
+EDsá£[\ @@E77¶ÔÜµ
+rséí°Ä*Êú°Á£³hk	»;nP4žžj
+AâuÕpgrÍŠ[rë
+óÑähqØQ0EoqjÐîQ5#yÕQE@!ìÙ2q|zã(²Ù×kÒÄ2×Ò(BÚ€wEÛ"å:ßxd- !yñÄÜþüVu
+tln3$)m³PB.šöíÑjj:!WfÍx»p×+mÞÐçKœÂÓ±a **"ŸaµDÅER0ï
+<a°»9îþª 
+l/ØîÜ"8
+ÌjQ4ûïÇ
+ÞvjÈ"iDµ&ÑÏ;æ)NÎ±È± ÁÉ¬Ò,-Â»bHE]ÑT¶ 	*õn «ÁnärìfÉsWËÎ&ÜÇymjbº ºØ jŸFûàqV6ïRý×çšÀíhWGEØÍU³¹äæ: H ÀŽçÅ&
+
+"š"úûWè-qÜúAqmeØÈÜ¢ª=cªjŽ-ªºí-6¯f­õ¯À
+Û%1«+;îãÒÌÙ€KÒvêÛ
+µTUÔuD2]PjT®¶»Ó/r;KÁry
+
+³%ÎwG!EOè.¢*
+ «Zø7.
+$<Tâº
+hØ©âTD]©mÕSRÓj&ªªµ
+íÂÉ~z^>Sd³,5W#¯B ÌEœÚ'0auŠ«Ö¢£ì'·<û¥ÑZŸiÈÌ#	ïnY^v
+U~-áJÛ%ü4»[ÙYhÅÊŠÐmAhÓÏLTQÎÜÚF µ9\LáEÆS²¯WŒ¢ËqSVä@rUÊ9°@»I¶+ÞêšG¯¯ZÑß³_åÓaæv)º]\8îÇD 4MÛ	šÏ5TE^ûrQoW>*Çõ»'áÆ7@ÉDl­	+mpBRÐ¶íš"ª¯RíZûjãlÒey£EÐòIßÚÆÇWõZAÊ|-ê]è·ÉÔó÷
+1G39m"Š©žJB¯ÑEDTõÒ»·>3.s#çyýœ³Ólx÷ç°Ñ:Ä"ëÓ^²^µõª²ëÍãÌõvÈd3u°ö
+ËsËá;tÃ G°#l$=ªªà!iÞé¯ ëKàvwµÎw
+ÊdÝ$Äy¿;6,â6Î
+YËví5qQEµÓU]6ê^kîCØ®Å¶w5ÕmèNºï7"
+èÃ	1¯V+QîOûeq#ðç÷*|qK%rë)èS9C4
+û[
+!_!kÏSPlKŒÔy¿éTUErö0®&b7+µÑÎ ÍŒ³Ó%ëwJž<ÓJò
+ª ¡šÔ.óDEnÑŽr÷óRm`C9	2*ê>WÃ¢êŠFÑNIÀñcû­
+ÑÝ#&
+º.Þ8lêÏ#©(~gÌ
+ù,8w;OcnQN4G
+}Åy±Ûy¥4FUW Z/Vå$ÝµjAÃ
+Ä
+-û
+}ÅîWWM
+ ·Ýç
+¶øŽ±\6(¡À~ºo©žM"ÕÆËÒæÓŒFŽÁÆÙ»º;Ï°ìw^x®x­¶\×CAÚ[ÀZäÆ|ÐœËãã·,.Mµç^(Ê=7{¢þÖÂlAø
+KRTDZiX
+
+mDtPZ=Iw[(¡÷bàŸStædv
+6ÎÐu³Žÿ
+M+K*ºëAçkŽÑ¥)X)	JR¥(JR¥(JRœ
+æ
+õn
+ü'æÒ+CŸaù]×žf6|&5jñsfT6.ò¶ŠŒ
+NñVò»Þ+¥)\â°JRD¥)DJRD¥)DTÞ&~·ÿ
+mFÜçJ¹Nrl×y9¢*  ¢" "   ¢"
+"""""Rç:UÊsf»ÌyÍUEDQDQQºÕ"KM*NÝ*bãÐÁûÉØ
+¢*°UFÅŽëÑSÚctšÑ/-;
+Z
+Ûè&xàÄ{
+
+¶ižÕ²GGs&a" 8vnç^®-ŽGD>ÝSu-	x?äÐ7Ð
+S-Žëºf¥Šçz;én#BÙ¬§qÛî=Ý¯oYx¹l$ùÊœDSDôJØ
+âiÞ2$¢Q¬Qm¹fozðPc]nÖ' Ç;¥ú>CóálüíòeÇÇw9!ÍÊšD;PìðË±åw.OÉ-2Y·AT
+Â]R,Lº/*í]£=§Þ¢­*]ÂLÈ1ÖN³Ë±,©¢©>ß]·\á!Î!¿
+­ü-ìö¬ïexÍªÙa
+Úé%í32ó91}µR1yãu
+»tÜ&²-G2.;6EÁo*"³ÉQÙTQM^$R%ùÑ:"ânA4Þêw®Õï
+Ê¶fQ
+ÊÇ`[ÞÒ<ÒœI<°\e624ŽÑ)¶Bò)h©%ÛE«4µóík&L[{Ü»å­X!Æ£¡6ãÞ`[Kw|­1¡B÷uìýºðö­?`©JíJ
+×[2Ýñ h'@Èõ­33K1vÙÛyžî78Ùt
+Ã&DJ(æEš:
+;žUQ]Õ?nÌñ4¹K²1vs²QÃ¥9ð¥*8
+þÙ§0ÕUy` ÑÑºÓ.E»9
+öÈtf¥EVfàø
+ŽH
+íÈ2
+Z-êÞ®ª6uÄ6-Ábw4Y£¹§/ÃÖãÇFÔUJ<Ÿ`<ªdm#
+UÂ
+
+çÓi,=9rç¹Ž¬ÖÊ­e¡€HÄ°o§Îs|é
+ýÎÄrÛwhíÏ·7*7.=ÊÝÐ€F×Ay
+!P3uÞ`õÑI2÷žepÙbmË2»H&Û.Ar¶)Ê*(®(Œf¢z iáUEBÇßâ>)yfÉwnåÚdŒ
+FYs¹äsÚT
+¥%
+Ú»õ
+âØ- 9ÞÅ³2ñ*í»ÌØ9$°i¢ôFm÷"z:ì7§d
+Âm-vŠÕ@â
+/ù-Øþ	q²]ì±!4ÀgA·g$l¢ltghn#DE6nÚž\º0:2úÁHŠÍçÓKCèHq|Éß¶&`Ïõ:
+Wà]gžÓÏmÈ-
+Ú
+nqq²ïPÕpYCD%4m
+oVœk¬ç6°M³Ú¯wì*ÍàqäGá2Óö²Aic
+šö¿bwš vðìjå:${ìªC4»Æ~	2z*l6º5æh«Ôõ*Ë[xLáß£Û¹kyß1ÛWi6ó@s#&,êKÞ.
+}¥Ò=-¹õ©ìÚc7<@z7³t0w±žû/ÂIÿ
+<MHWmçokä)0¥µ§1
+nš"*jõºÕÚ
+Á`èWmÑ
+ :¢€jßÏ&&gg\­#Ž
+VW¥Yüi-¹ÔÌ##JŸ
+L
+¢øW«¢*i­S+Æ'cÊÃ¯<ÄØR$øáEŽ@á¡íSA$N±$TTN­`©ZÞö8o[
+åK²Ù­T_5k6Ž
+RDcÌÅ)JÔ¬¥)JQ¥)JQ¥oÞaq`q©Ó€³$fy÷Þq¶bÉR2%êDEUUêDJÐ<ç>ëY
+ö?=÷$FxeŸcŠj
+:èª­e^dTqÿ
+"îUÜŽ^9­*n CI
+C.lúUªUµfæyå"²NoÂA&X@u€_B2KÃª4n ª/}¢MæÑv²Ê·\ÛlpZ
+5UD$BD]5EM~×®Šæ#
++e®ž×o¶
+AÔº4¥+%*íZû+2ÛôXñûlr7#Mº:¯VšD»@TPÀuMÚÕJÙotÜd)3e»¯-í
+ªº¢ªè«õ¶Ìò
+
+`\y»!@q²o~TØ±ŠÈÓ1EL7©Œ:ß:Bör~ëÒÖï³Ú©Ó§G5ð'6cá1$	+;ŒÍb4¡ŒLÛn'a,ÎhãPc*©4n¢ŠáM]RW\ÔKGºÒ±³rÊrÈ®ºêÜDlUÕT_<5.ûC=­©"¢ž+SqËæ¶·o
+rÉ
+I
+@ë.:»7÷É³UÜ$M+Háê
+³@ôû(Ûjk§º
+œhªh@Âž:Jš:îÛëÛ8ÄõÚz6z·7¡Á€`@ßŒq@°uÓ8ÁÁ;-b³÷¶
+gO®v
+©Õª&¥§
+j·Ù\ZÛñ~ÊoÝå»ßéà n97ÊÝÖª$néÔ]J¥q³^/p»+.ää3oMÃLÈíŸñ²Ðª1ràKÞ¢VTbø$à1
+¢qZ4x³9ŽÙ©Œ|Kðà$ž·z¡É±ûÍÂù"å|b6)v¶ÃWö;
+8
+6È£;zC¢" ß0[-TUIzR7£a¶Þ©w
+ùäïH-â#ŠœhBóÂFZ&¢¬Z®
+ ŠêÝ*1š&@éí
+Jæ `cª!ž
+f]<aÃãdí¥ž~wcÇl[ðÉÝuÐ©1Bðê­hJ«ÞèÙ¶_/9LæìÙËñµØëò9¯BTERy³tDQTÄ@Wržkc÷IDÓFÛ-4
+ì*£QÛEDS5DUÓUDDDU%QB"Yü%Ö<Š&Ô¶ØíÂDs}:ÐAUAl]"ª'¢U"]S6œÑ.8lÛÍûþê5{= ñN9yüG6ñ
+IØÙ
+.Îf/pØÆ5kÓeÉN_q
+|@c.ÕÞÀruE'MtVÉÃæÉúeÒÚ
+ùñ
+9öè¯H>k¶ í2BWÛ4i^Nfª+GC{ævk­7`që[ŠŠÚ"»ÅDNsZª&º"!ª#¢BY;s1K=ÓCÊ3[×M2¡è1HQÐ@Á>¥a ,Ú	ßjÙÛöÚª+hv3úLÂœCüá$ÆC1
+!`×yö1Äne¹y[Qurúvç\
+µ¹·VÜØ§©£Je±
+. Ü¬ALH²w[%Çé
+ÊeÄq·ShÃšHMtÛ×œ;Õ]I7hºSrrQmw>mŸç7Û®m¶ðí01ÚŠâžúÂUÚF š¢àùÝ®š%§=_«®¹ý$Ë#jŽ;ÂÈ¯F°ßÄ øMDÛ8
+oÍàµqÅN4÷[×n=qiq÷ÛUpuyTÀ
+Ð
+ŠøIB»ßÛšíÆÍª÷Jhî;®9
+9»v[«'ý,m§Ñb@y©3¬r
+}²j0í
+l7º
+@ÛpZh68öž§Ù;UN6íæ,NO3`=
+æ
+ìgEánLy\æ0â6ÓJoîE5qQýXm1©Nl«gÃªVÛ
+®×£fó
+ì/Fw¢CÁ8ÆôÎQRî3àÍÏ9žä³,yžMdµMž¥é_· £o¶û&É*žŒttŽÖìÏplÎõöÏ?pG^·^ Ÿ#£ >¬šGœÐæ©&ÖÈÉÌ
+sÅÂnöæÑéVä\a¿w1z¢*ªún4\ÇLº¶§zá8
+÷Kh+v"«Û~#|Ùc&H} @UË¯Ã%iÊ­7ËÊNy]¶Š4Ñò¥#jÒ)žj ÓÍŽêªéÔª5,ÎÉÃWÊpiž%ÝAÌHØ±áäh!q
+O
+ ª® Èµkf&Ibº]lmtÇ®,?"·"n£Îþd¡µõu\
+lÊoö	Í°Õï£ÚÉf$×ß%å4T'RB$ªd!+	@@UvÕ«
+»PO.=G
+H?Ä+õSVÄë€àA8KwÆ\ÁÈßtoü
+7°¬æ<£°ptÛ-[q¥0$EUhÎP£)ÕŒu ]ðÌ×n5êMŠlhà
+KbåÑÖAŒìÑöUWM;ízÅ}t­V=ë;ŽšmpÉònù[
+ µ
+!
+ÍèZ©8L«¥ç}ö×%Ã=ŸYoŠÄÐ¯©ÆüÇÇ"âÛdHÓ ñ°põëhMTEE]W ŸÍfv#LGF|ß
+z6ÓT
+"¢jšµ=/7©±
+-ðVÞ)]@]N
+;šIšìuå
+é@Áí7K£ñ-|GÄ°Üm¹<€ÂÞZ"¯1%Õj/MQj	 òp ó
+ÕSÒÔÍû
+À6±Ð(IæU{±ûÅâ5²1¶ÙŸ{U×UQ¶E:ÉÃTEÚ
+×VO+ETC Aåì@%ïwª¹Q×!Ã7(R[jtÐZÙ
+ª¢ªÍ¡)2}DKš¶Šåîó°XþsØÜå·ÿ
+-ÒàûæèªŠæ&[6WhêÙk×ªª*"{œvpøuGl±ºÑßY©;
+äw
+.Œ©Âb!pëc|ãpTÕÙ®6šÔfÑ\|ÇT]T[$MWMzºîKÙiÒÛ¿µºÝ1åt[=vòÑJ0õrPH
+ú*"·]QÊoWw.ËÝ±Æ¥Moe¢udÉu%(sQE¥qð$=ê7šŠÚ€öÕÜÎ3èÏl:'VÃö¶oÜ]¢ñxŽ
+h³Ñ7@ºplÓ$ÌßŠL`ø|	ø¹
+ªõpkŒÃ|6m²ûù]Ï¬vHRÞê,GÀg%WBÚ(Ý:ëDžåÄn6Ìp#3Ò'µ>!
+Jj{Fá\C£GDt=8m»¹žóYø$¢5¿?Â5b+,ÄŸ:ó%
+vÌb<d@»\SVÈ·šªúÝ¿'FsÖü1Â+pìòSSŠŸÙ8Ð¶>y]
+-Üè×48µÅ®iÃÈ.s€K°i-ÀºóC@©^lXW¹2Þ/\d¢ÄueÖ¥îHáàAZyð£âL*º©¢Ð `Y.!Ftá3u·É[m8,Ÿüšo6ËZ¶jd¢â
+ª=uººä7­²n0rÆpð]ì[sŠìóã8ØŒªZ[E§
+7
+¬ÞÑÉáJÅ¯!ZÒ(4œc¬Üùìh¢ÇÚ
+¯£QN`'õ
+d÷;
+'käÛ-
+-­9HÇmÀÕSQ)h©ª*/ÔZ6
+ub#XêWåúNKÚNŒa®ÅàkÆÂCuªÝ±
+Ž[k
+ÚØrñŸf1NØé]í
+©éÑWsñt%7ÚqÂ#@USÐjLð¬ïHäÛMM
+ÃÚÝ±÷Lô'uHTÑ²Qu
+u
+PPa1»Å
+qò³æD`
+ÜÁ
+Æd
+×9j&]DŠœU€'xOÊõé/ö[þ÷L²;{ÖÔUzÅçTÚÒ!oAEÐP©65Ôêk
+<£šºžÊZ²Æbã«0$1Ó¶\×`ârôfÖL]§g0u1ÇÏO­²+nYÜ$
+šéRV
+¢5êÙ5éK&Î;,ÌÛeøó"Ž.<ì'cäÒíD1ÀT«ÓøE<	ëmíÉó£ŽÅßÔgÞXú	\<øä
+yÑAt²^Ïc­;Ð=£¬_¥œæ6*sIÝ
+"N¡@)îè¯-ZÃ
+eÂS²ñlîÁ"Ðñ¯@éÄûRÑtVQŽeUÇtMJÙmDp{6·^³ëëm
+ñ[</ªµônåŒ}7{¬TÖ¿>ö¹zÌ¿é=ÃëQÿ
+èššº*'RŠÖ¥`	BæµàµÂASyŽ°²Ü¶5ËŽÍýYmD%$Hîj WR¶Ï­t6ÌuUEZéX­Þ/­¶ÍóÚ®ºª²)ÖN¢.ÐE"-:U}jsü-¥ßK°Œ,"Y7ÈÍQ=¶öíMuÕeªŠÑE@ÿ
+žŽ^Õn|k+œ7 f 7ã¢vïaÇf¬ÖŒs!épm±ìÛáD"jë]m8áh¢jû«ŠšŒlØ5>Kb
+$äÊ-ŸÇ¶ÝœÖã¯%¡0ä'Ru¹hßVÝD«
+ËrDÆrhïÞ$Î
+Ê×F=R\fôF]ÜßPª¢wœ^¶ÉÞ,rlx¡^qÍ]Žžï6Ù%b8
+Ó¥"¢!# *¡¶h* &ü³ÂÕ¯/
+Ø©
+SŽÆã1RißkYÞs;í£Ò<RweÒùr³ž,¶ÓË6åqBØ
+nÔDOR^®øõBZ¿n×÷ú®ïFŸ÷Š·XÁ)Õ]Ž|Ñ^l|>ÅQITU	u«þ)ÇÞ)ÉñûóhåÉbÞË€ã
+œœìº¢è¯£Dú.ÞÄ%2ÚŠ FŒ#âÛNœâç	È`
+21 a ÈV
+ln9l+-lGV¬c1R3q
+Ðç6F¯¿ÍP
+ø9uÂ
+s*ª­»!²4
+P»Î­¥œDÐŒcDßi3³8ë
+:¹röÑF¶gÙjµ¥°@p%¥ØAuÐ3ÉË	œâØãsmy
+
+ÙIž]!MdaÄ@k+.:!®Ñç[]ÕµÑ€!"ë¯FÛ"Ó
++u±÷$Úñè·kzŠh[v
+L=Ê^ôW×4QE
+#¢©nM"æõÊÑ{¹-:Lr¹¹uv7*
+J»£XÆ+)áX
+¡:ê®èoŸbvÌÖýc<Ø'*ÒóÖ.o»!òèÎºÓÀ¹74Øš
+ãjd+®òA°4ÒÐLj×;@¿ù\
+=!Zµ:µÂâñ·AÅ¯{#iº
+äìÛ.QÃÑaÜd5-è¢Œ¥TmµAT3MŠ*€Ò)h|"ËÚvÖá¶²åÎÖÚ=ÌRc¢Œç8€:HAÉh
+é(oo(
+Ÿµ=Q
+šÓxoùS
+®éô
+mwV2
+ã>v1œipçÇÂ÷2³
+êÏeô(­à±€¡ž:ã
+)-Qx2=Öæ3U»šÀp­[£ÜQ±KDÑ¶[P<ÑI°uý×uÃÝÏÇËÛØŸ[¢jR{MÑ®në-:®Î"sÌeoXLcQÛŒâi/Ê%%Ò" 8©õh"iŽ
+\Îp(VS2ïë&Û
+.ÍñbGÍÐ
+c}ù
+š8è5Ñ¡nHi·SEED4MÈÞÇ2{{öÀg&+pŽDr;®€R£;
+À$qQQ{ÏT§Z}2ÖV.šZótGÃ·%
+NìÍŒ
+ëppÔNw$3$dÞCpœðû$žÜm	
+^%~7^m¢¢61e6(ë^t€ÚŠ­3µQÎIÙm7
+-ëb%¶Ý7*Å[6¹Úß£JúŽ
+7*Ø6Ò¹Ì$LEð
++Ü­º
+ØWlÐË°%X
+åÝIµæ^k"ú4ä}œî­6,#ÌBT
+ìŠaÝãJaœÊümÎtM@À0pTMµoUPRsQç®.:Ÿ9Î€ã96£ü¬šÑ¥n¢Ûæë²"@Œ@®ÀÝx#d
+UØåÄ¬:Wdí.Bb[ÒáÈÜüg
+Õm-ë+pt[RkejUù©=Br?â¿5Zef~jOPø¯çMVj:ãg©
+ãê3ðÁ^+sç
+õVœ©ÆÏS
+ÇÔgáŒVçÏ
+ê­}¹o&MÞë5¯Æ¢=®^¢ó/úOpúÔÊzŽ¬ÕÛ¿Ê/ÍR³_2ÿ
+L&Õ×I
+Ø
+KÊê]ªJššœóMª*hºú"qXT,!l
+ÚÊnl\'Vðq»TXÖÖÝDæ
+á)ª*êdFF]zn5AÐPE")J9ÅÆJò&Ò`cr
+€ñÉÖR¥x¶+'¿Td={ªÝ
+4×Ð²Òè|ò_XY0¬QQ¥BT*ëfÒúFBüvãIê(d7ËuÔQ
+
+Žù ùJ¥ŸÝ€iPy»Š9@ÄçËlË.±§7lkdç®ùnE."*èËí
+IqÆÐSGÑí¢š¢ âÙëÃL*ÌÅãn¹B|»©;lu%Fó¢¶jãjàd*dß8ùo!ùåT»@»NYS âÈò?v_Ã(®8áØ
+(c©© ­²Õûs~ñxs
+¶oäi€TmN¡lUv
+ ëÔ"ëT£h4ÄNXõÆœõ*
+z¶Ê\
+6ÅâH'máàáK
+Ñ{¶JŸò[¶ä8w#q"ÉKsQŽÑt,«€š(æ® òô:ÄÏ	äQ~ÿ
+
+j¥à]jY«cñ8ËÈ°Ù
+)mÒÉÈ±ðâå*Ë{}¹W{
+ºïÉ5v,(Ï	¶áfÙjN]j¢/} ?x×yÉ
+°qJ<k#m¶û%º`ÚrVÁÍHWT6ÙD&Ð2iR)ÙRqùžë®*ê€Jœjª«ªªÔ*x
+xörvÃRé¬t_¥,¢G
+Î Ý9Œ;ípA$ßÁ^ªàfFïXýùacò1è¯BUc	"$xD`@ê
+°QàTTÑ*É]gšsnkSvÖ
+PåÄ
+ùÉ\¡M
+eÀ3xÚoEkQó}þ
+°åO6äš%l9
+*¶-ê£¹ÈÆJ¢€Ÿ²\^lz
+ô£Mcxl¹/=ŠÌ¥À!^,õ#-»\
+LÐPJZšª¢iscŽnîlýòêö9|Ïº=,v±hC12ÓD­Ô§
+dñŸÈÄn;ÑÕ³rÇ9#ÛCÕ³Ð
+mT\mÛŽYlZd`pßª'å+Ú¯j¶ãÀ©LFiÎppuÙ\ÃŸº³¬ß(rËD±LÜ¬MëD%TÝdâGu
+ØÑŸŽš[5åŠÞK¶mQ2FZÅòó%ëqjí¶\õLsEÜ=bbœûd*z
+îÐüÐØÃòs5YMÜ5µ±Uìt
+$*§$QUU7u!ª ævÑdÛ»;Èñ% ªôG@ILEM³FÁ	jk¡ö«ÍªZí²l¿bŸ ¶uèC^ÜäÀŸ:æ7í2&Déæßpêù<ßCnå]·r]LWsàÁ#º»µÄ0ÚFÑÃlb13¹KÌÆ
+Î7jÊv\$ËÛk-=NBZ*sKgÖ Ù¢!ªŸ;båfâ}ºÚdä)Ò­íŸÓl¬Š+¡ £Âàš®"¡UŠ°ö$Ü)P[síäíÆ<m9ña«¢ð¹­7²
+aUGcmrÇUŒØòö;1G³>eÓgm­JtqeHp9ÁpÜ7Nø"M0fÕÄ|zîÍ$l~^=5]jÏ-J9E»åFTqdª ÚîÜèO?ÀºOŽsì7V$œmçLµŒdÞÇSœ#T^Sã·D=5M6©]±'€£×
+zá.4Yr,€í«$a
+"äÅ0ÚîEVÑ"¡rÉæÔP4N_,x€ô<©ÄÇ/µd$i
+dÜ
+Ú9C©ÅBqU:>Ôò¯õaãeËÅÑÌSGa³<^€!ÃKA|d^üM8q=(÷#âÒ¡E¶
+PöönIŽ*S­Ô-Æb6Œy bÝD]ñ$Å~ñÊrëkt1tøM"©ÈhuM/ÏAT:ºöìHçíÞàäw¶+°çÁx
+lµ
+íhZ/|*¢¢¡	"§yŒ€bK
+{³[ÖËÅÓ ¿²;¢ê«
+EPLWTF¶®Ôi]cŽ~®®OB»§e«MÆ¥ôrqÿ
+NñVò»Þ+¥)\â°JRD¥)DJRD¥)DTÞ&~·ÿ
+R-s©JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JRdÇ¿ÂÅÚÁè€³þ
+»¯ç ]!±×š74ŒÂ-{î¡*ºŽpú3ñoò9Âj)AÍ}[nHõsA7
+B@4
+þÇ£©YÅò#w8âçq²gíÿ
+|ïDåíå¶6&d<«àÐÖ2
+õŠÝQjÕn®ÙUÒp5ÈÍX,
+µ.o:	ŸB¶ï
+íÎÏç	6œ/
+²u[£vvxÿ
+€€N¢ÖC[ªåRdq!²ÆžÉY,$ìœ[*ã#2+-£»TDuDömÚ@œÌr'%Ì²\bKÜnX8BûIŠªÂ³±!Ýáq¢!%Úà÷»E©{ÁÚ1ÿ
+.2éÈ|Œ¶®3AÚ_eµ6F
+A
+:¢éª"¢§ÓOZ®ž^Ml;Gj7°
+ã0h6¹aZèF«±®bõ$PE]HÅàZêm ºð {tÈvÙY,ÕŽK)ZìÒênceºã3ë\Ö®h µSðAwÑry°­o6ìgÝtZmw)¯@'`Ÿkª¥ÊQpÐPUÓN.)H»5ÄyWÇ
+dÃnàÉ¹¹"k×«Î©ŠÊŠ©µ;<OÇ®X\X8ÃÛ°ÈÎKsSd¢#n*zÌh%ß»QÔxbmÆœÊ6.öHÅ­í8æª #¶š(;D¿ÌTùkM'`F=Æ]JîÌZ«môêoÀÆÆ5Kža»U«
+óâÞ21V#*Ô
+;p*4"ÛÃÊ~TeDó±Væ
+xm@QK€x.ï)rk
+I€!Æ
+-
+ú9ŒÖ­.ªBh­šêº£fVVs²££iRªêÌGN]'3zÊ²KÔuœÎ\GU·^UG
+DTG\ÿ
+¯>}eOÂZ-CúEMÖgæ€õ	Èÿ
+óM
+ E
+SÏ9f ª»T}Q€Ô!D5ìß2¶Ê>ÆÝÈ.E¶îôRl-è&@lŽä äG6ŠŸv-ižârl+"ÓÇiÇÏhò«³TtÑÙ*¡š¡ 'x
+«µTÏUÂ'M¿|QXðKÖGÁEy®zêÞš š({Õ\hd_yþÎ< Y·B*Wi$äÓrÚÃaºâ@WüZ;`5ä/tŒ[eÅä)Zvc
+BCMÀGvíÜ¶ãíG+%¹ÎräÙ®ó
+sDUAADDADAAADDDDDDD«N8³³]n³/°­Ð/.9Ù×Ý3v@ì7€7Î[€$âÇÜ-\Ñz=±YûÛ³§ÉO×
+»
+MÛÕóà
+ÙiÔ{ZN`œïJ1ÐU
+\)Œ2\ÑŸ=_
+žf€[,õ-Ž«;Ã8Ž`.æéÖpÞß
+è*&ów»^¥
+«ÅÒmÊ@6.ËN
+*ª
+)*®ª®Mk»lïWŠ¹¹ªÂ€¢SQHXEE$TSTPEC6¬`v×)Í2km®ÊëÎ±
+:o"CÀ(ºMwÂÚnE%Ü%Šyu%sÊ16æºõý{µËTÚsâÙÚzA(->OŽ­4š
+4Ë
+tš$
+Ši7JãË
+§šé©€êd²°ÀÀh3C1®H¹`MæÖîv)ç9ÉÙ¥Þ5Aè¥öÉeìDØ9ÐPÞH(šmTÔzÝhï1k!áêì€Ôeªÿ
+¯Ò:
+§Z**jhrt«Š
+Üç;Î/ ûîmAÞfÔâ%Ñ5U^€M*¥^ÖtÝ#gðµèÚ77fŸ&ö<à8I&>2µ4Ý;î5ØmÌXc1Úl6£EÛHZ$ mGÐ²>²íA%s/ŒB
+o.Á)ä
+
+¢pv1§2+¡#HÛš»ÑºÅfãÿ
+ck¢ÏøRî¿tÇ^ ÜÒóµïº(ª:@EüIMJûHdÑÆlÔL	T!TëEEMQR­
+Ä9wÛ}ãõ³")·ã*Fm
+	ÔœîÝÂ
+QRåène®vÎÝ»`­-m­N
+¬ÌN0qÖåšðC"QÆ¢d²eBzF6ckÔ×
+èÏª'¹€ª
+«NºójH*¢Ážu
+Úã-ûg®:ÓFmÛ
+Æ]SÞ²Lš­Œlª8â¶F$1
+U=I²Ó3¶IÂ»³vYÅÏ±e/)Ü'
+Ò+9Ž¡
+ù¢Ší^}Oª€¬ÅA$#»äÙ
+.ôk2œ)Éü;t
+$ÈžÛù
+
+7#rŠ *mUQ=HÔÀF®iVm:WjêÀöãyAÖŸknÑµívíÞÂ|#}ëcÕšâÝpÚü Äob
+Ynœ=öÝ
+#³]nK.AWl
+­Cb
+à
+*"Ì×E6Pé<=Þ;ÛÝÕÙ#mòEažâêŒ
+
+ãíîMq%mÄQ$qÀÓpóQ?3
+šYdÂpe¶mì:Ï,xHELÄ\#ÞËn#Ú¡(©l%&Â£=öäÎ~C1Ó®vTÕ¶QUU
+hç÷N¶à$J=ÉÒé/n å ëÌ-tÔµêð}:³ºœÓ»gkv»Œ:sîkYSð_öµf~jOPø¯çMVYÔ'#þ+ùÓUœU)®6z^>£?
+â·>x_UkÚlõ0Œ}F~+Ån|ðŸª×ÑûòiôÝî±SZüdú#Úåê/2ÿ
+NñVò»Þ+¥)\â°JRD¥)DJRD¥)DTÞ&~·ÿ
+
+[+ŒÆ\Ñ&ÍAQ)(š,	"*
+¢)ª!" YÌööÛþ{·j@ßUÚF
+°ØÙ¬æáÙéÍâÿ
+;çdVyL8ÌËLŠ'«rEX5ø"/XÑ·&ª3Öº¢ô°IÑmÙ}²EÅÞUžÞF.µWX®¢¶úu&î¶ÓQï]SEÒ­^æqtM>¯^r
+Ö;MÈÔ¹	µÔÁ^F€ðÕUZBUD5ÞÇM í#¥UZ(Ô§lªæ	­
+°âÙn
+Dã
+<®X±ß)š±Xqù6ÓM*è(jª«¢"W*"èLÆ
+ÁÈ`òW Â}· Û
+¿ÐV]ATEÓBMETUQ|(º-tênÙÞaAnØäi
+Q-³|ú2"ª©(üìRóÆÔM7ªµ°¹¯2ìnÙó(4èW²Ž6hÔp= Aäº&d¹qÞ®ÑßÛ<7mö¡sÉuôy×ÑQ
+×A
+QDQDQWDÜFGVMøÛŸt$ãr×©8šD«ÔšgÎdSDR]_UÜJ" ¯ZçÝaArâÒFžÛÑNdÅöÛT@'PWs;µM¢è*êjs
+qòvÁeFÓFñÀ°µÇ'¡)JV¥9+,wåÊj,V
+~CÆŽÓ`€fJº 'ZªªèÅVLõÓ²rê++"üE.¡)h
+"*õnR}Qw$rEM»2co:McFxuq
+æãÎä0·mpmèv­ÀhÚ46ÌRxÀü$ù<àªÿ
+Û±-EMI\y:ËDtÏnâAÑJ¯ÒXÞ?gn
+
+ÛMlÍÁÅÜò qwVNØmî¬s
+
+Ñ¿uåÜ]TõÁÛPz
+uåoE×¿Ú»k²åÂ|!ÜæÉÜöŸSîÎ4À)ŽrzÞÚkªš 8Z
+£GQžÄ«ÌŸ]çZ-Ï4BT)F{#¢¢ê;Ñ·5?
+6ç:UÊsf»ÌyÍUEDQDQQ³ŸàÙ<ß
+Yi>©c^2I×vLÈLD2c­RîÖ96Ê©å+õŽ
+&O«ÿ
+O¯/n2°ÚÔè¯:rÖTü%
+ÔfµÖgæ€õ	Èÿ
+]Ñ*ùdü®%ÙJRŒKíÉ¢ÿ
+Œ+vIúºë"
+w<ÔŸ¥oýxŸÚÑhþÁí­Zhc:QÝ+Ä¥*Z JRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJìÛ.ísl&¶µå¿
+ÒmÀÕBEMQU>¢×Zè$
+5¯®
+²vËáÕØ£\Ü.£
+Å4Ãª¢¶d¥ª4f[R×jµëeÇ¯
+ÈcH!ôl]yvçQ=sE7	
+±M9»Õuï6Šê­Ò³Ý'ÂííË*'Ø÷?ì8·6ô
+¢[Æ»7;|û\ç ÜáI
+-­9Hhp5DTÔISTT_šµ7ÿ
+
+vÇ$ôûHjmçÑUIDçdº6¢ižŽ$UU«¬êÓuìx¹Îp×&
+qŠ«µŽG×I@@mE1QEÚÐŠ [i¶
+öäö(Vº¶¶=©^h á9	]¬Ðcª¿jàyîR}®2|¹­Ku?ý8þµD-Š[RpVÇ-]åÍÙW­']ÅSi'XFlöº(ºO	íEÐQHW¥yÇæÛ"ÕzØ&h*
+ x:ÑT7.öP\%Ú]Z"DVuÃ±Ën
+&/Ž¶óê^œ
+FyAtq.õæírŒJ79I0m€%ÐmUlSœ
+Ú3j4AR-¢>Hº;¬¶ŠÐBQÒ"¬\âã%m¥IŽÜi<g2u¥)^-JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(kó z£ýÿ
+ÌüÔ¡9ñ_Î­2³?5'šNGüWóŠ«jŠžÙêaxúü0WÜùá}U¯jq³ÔÂñõø`¯¹óÂú«_Gî[É§ÓwºÅMkñèkšŒËþÜ>µò­+$õvà/òóT¬×Ì¿é=ÃëQÿ
+)*"®ªk¢-b=ÉxŒËªê»ŠŸ«àDÿ
+¥rù©}Jßúñ|µªTvAcµßá;Ž^À8ó4$ED]EQ|
+µªœ2úe­ÍXè];-±«MÑ3N #ÚÍÚWÐ^æžO}Ô÷NæžO}Ô÷X^Žy£Ö?*ßžh~
+§å7ë/T¯ œÍpû©ï.Ípû©ï.­
+hõÊáê~S~²ùõJú
+Ü×	ñ/ºòéÜ×	ñ/ºòézÑæXü©žh~
+§å7ë/T¯ œÍpû©ï.Ípû©ï.­
+hõÊáê~S~²ùõJú
+Ü×	ñ/ºòéÜ×	ñ/ºòézÑæXü©žh~
+§å7ë/T¯ œÍpû©ï.Ípû©ï.­
+hõÊáê~S~²ùõJú
+Ü×	ñ/ºòéÜ×	ñ/ºòézÑæXü©žh~
+§å7ë/T¯ œÍpû©ï.Ípû©ï.­
+hõÊáê~S~²ùõJú
+Ü×	ñ/ºòéÜ×	ñ/ºòézÑæXü©žh~
+§å7ë/T¯ œÍpû©ï.Ípû©ï.­
+hõÊáê~S~²ùõJú
+Ü×	ñ/ºòéÜ×	ñ/ºòézÑæXü©žh~
+§å7ë/T¯ œÍpû©ï.Ípû©ï.­
+hõÊáê~S~²ùõJú
+Ü×	ñ/ºòéÜ×	ñ/ºòézÑæXü©žh~
+§å7ë/T¯ œÍpû©ï.Ípû©ï.­
+hõÊáê~S~²ùõJú
+Ü×	ñ/ºòéÜ×	ñ/ºòézÑæXü©žh~
+§å7ë/T¯ œÍpû©ï.Ípû©ï.­
+hõÊáê~S~²ðEæý®Q:Ð6óNµ";ÈªÔÕQT
+QtÕQQQEPHTHESöÿ
+
+\+Ôÿ
+ú!Zœñ/ÓHºÛOô¬z
+rEacXôeIäV` hdJj}KèIWÃªªÕc9|ä®K(nåc$*Ý#/U[ÿ
+;OM8ñÙx'ZmT[Ô} §
+5]¹nÜS¶ÃÌ¥ØÏÆ:w°¹jêÇ1RDÔ?:PMyÂ€÷}íQ¬\
+ËìûQ£Ê±Kö-;
+JuŠÚçÊqàx	%sDsEëN¢]z§/Œ+¿$lw[cºáŒs0ÛŠ/íwõ¢ªlÕ
+Ï4Ø€VÆxX®N»4Ñ¹$&Ë/»"IDås^å Ž
+¯R»Ë]Q5®Ìn#aro+gjú×MÚÍ²eÁ@:ùÑ©m$
+UÔIIEQ3)
+ÉÊÁw°5>Î±ïöë$Y²Içá
+)w®k°TÁI5Ìì\
+ËìûQ£Ê±Kö-;
+JuŠÚçÊqàx	%sDsEëN¢]z»7
+ßûUÌìpîvÇ{1É
+Î·þ"
+Ç{ÅÛÉs.Çv"ÁŽô$+ô~Zàäw$D³\]ëº5ë	'úßù«Y%Lm:{³3i
+/þËôKþK\ÓóN=q%Ÿ$a^1$Bœ0
+8:$zcEÜB©§}ÿ
+eº5·©øµAÌ6Ã¯5dj
+é¹J-¿×ðìõ#ÛnÈÉEÎ1cæ°MÛ«+Öª
+ûéUb~M€,_:¢£¶äÒ§V¿Oé× ¹ju:[œey¬FÄÍnë¿U
+ðàøÂœLV¥ÁKÕÏ á­¶íxS&ºìqâlMK : "
+w¢)Ôà¬'"¿cæËBÝþÒê¶&²`.ºëŠN¶_3	pvÎ@Bb¯ÍT!]QS¥œÖµ²¡V
+-¥dŽ¥)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%)J"R¢%Q±.%Zo]¹ôÆû
+ÚçÙßº°Þíêô\·;ÄÜ©³é¥^k·ðdÎÿ
+kÞ")÷µF±ps/²cíF*Å.cØŽìzP9)Ök)Çà$hÍÍC­:uêŸð®þ<±Ýmë*ñÌlÃn(Œ";µßÖ*©³T/<Ób[â~
+b¹:ìÓFäXd,Ÿìh%Í{ÒœJï-tTUDÖ»1ž
+ÉŒ­«ë]4n'k6ÉPëçDJ("¥Ž5TCQ$%DÌ€po'+ÞÀÔû:Ç¿Û¬fÉ'Cp@ÅmŸZ£ÈHŠ€ßEðkS
+Ëïÿ
+!kŠåÑKMt
+v§÷SY·ùO/ÿ
+ó6Zœµø³øÂ?%O²Õí¯ÅÆù*Œß3{ÍªtkX×ü>[MžÅãÓ5iÃ$M/0É	yv·¹E5êàžñ
+{Ö;n]c=ºâ2ã+îJŽN
+â®È®£(óQÔ"Qåª¢S~fËW¶¿Gä©ó6Zœµø³øÂ?%WÏ%^lÍ^ž{dg,Äãt³Vß>)0ûbÑE2VÞ6WD
+w¥pDâ+Ù&7:^bìþÛËì=z}ËLØªlóE²hô2ÔDUth»åG4¢*oÌÙjö×âÏãü>fËW¶¿GäªógâwòžYlÖ æç
+"S·¹ÉçJò:
+ò·#o
+N.ñDU®ø+QžœD'PœÅ³í$¬£¯£`qÉMå
+^lŒUCZ"©üÍ¯m~,þ0ÉSælµ{kñgñ~J®Ynž
+Ò[
+664«õ¡ÂžŽÓb/ŠE±y±U![EqM4Ö¹ïœæÕ:5Å¬Aëþ-ŠÜbñËéÏŽáÄ@&dÁ<»[Ü¢õQŸfËW¶¿Gä©ó6Zœµø³øÂ?%W+§œc¶åØv3Û®#.2Ÿä«Dáéà.*ìà9¡
+÷PÎŠYb@8Ò%Vë{ÍôF£žðºD€ëî¢Ú ªu§}ªhE
+ó6Zœµø³øÂ?%O²Õí¯ÅÆù*à)ß/háSÈ,žöUtí×(qU¹LEz;íºß1PKŸj à4SÞh
+ù-^ÚüYüa§ÌÙjö×âÏãüWòŸ,fñlÙça\bËå)aíib¶MÜYmÀeç\©ÌL€Í€w*×€š
+ù-^ÚüYüa§ÌÙjö×âÏãü^r®%Û¬ùÜzÕäUÒÛ§\ãØØiÒÚõ¶.+s\MÊ
+ªŠœ%ã4þE
+Ú¬°®wÆ36vÓqÈXÊuŸs
+
+ªujË8/çOn²ïœ
+Î7{dfŠÚqäLv6ÅÇ¥ô%
+
+¢"ª*žDPß3e«Û_?#òTù-^ÚüYüa©_X­þ×ÞZ±dÐlù%É-0®3"4
+
+Ò'$GËr·Ôà	¶HbBh
+#æÆÍyœLÅòØ6ì~î¶ä¢°­Ûæ6Ö€ ñsG{*1Í$AÕES"ù-^ÚüYüa§ÌÙjö×âÏãü[%qvÑî G<w YM?te6çp
+Áuçm!åžšJ%Š·w{U,ÃÙñ
+Ú/R¬]¶eÁø-$vh¬QuŠÐu9fÖšeßª"(Eûó6Zœµø³øÂ?%O²Õí¯ÅÆù*Û <ä1ä=ènºÐÇyA\eU5P%!ROí"MS©U:ê³Åûµÿ
+
+Dž
+êìïÔO_ûâl·`q¿
+ó#¶ÉÉe/$M©ydB$*B%ŽPTM5Muªæañ.ŽLŽä<Vé°Š
+û^ÞõCCN°$Tï
+©RŽŸ9[mÖ
+±Õ,Úb1i±R}QHèªªúõâ'>x_UkÛüujL~	AblŸ)»Œ
+ËFùÆGµ:UÕtN€ÖŒ@çÏ
+ê­}¹o&MÞë5¯Æ¢=®^¢ó/úOpúÔÊzµ1ß€Fýð.Åe
+eÿ
+h
+¢á<(Þ
+œ^å¢š*"ªhtn%qlŒ+
+ùwÛ¹œnÉ²$"1
+
+q#a*<IµÓ1!CÚÑ/0QEHMŒ`véVk}Ís¹âvXï;~:MAmôæ
+
+`ß1±RB×mª£ª®œ\
+Î,üµ
+:LÜ"u8íYjCÊåª6kœEUßê»ü:²!C°Úìçt°ÞŸ^€¬kv<ßGvàù¡wÊ«H
+xN+
+`ß1±RB×mª£ª®œUûñV®;UŸõ3Fyë$ËS-:ÔhUMBpM³EÚŠ"
+$È\%A-ª­süÌv.ÈtÞÍ~É:Fè§Ñ;Ò:Oaº?;ÉçyæínëÙ[ýf}Úñ_L»zíO²]í¯×b¹Þw3Ìäó<ëËåoêß§]iEe
+1¿ÜøÂç äûd­L@žãÇ-¶Á¹$]RIMêê<(BH=[rðÎáÖáÁÛ&
+rÎæÜ2[
+É»¥¿'
+u¹MÈ'ÂhÝTsFÌA2!ÓEÓ©
+jü2Ãx;uÊ°ëÜ+[Ð9<ÕvÞ
+>d[NYì
+]Í¹ª/VÕMkY¢,fwûsV7Ø]?Ô¡ÊoI±$ª-
+áª<[D4&ËjÝ2çæ};ÙN N?
+õë¢-K3â5ð8uÄ°pŒ¶ÁxÇmû\#Eå&Bë.#ÆËÂÖÔ7	UœÚD»h»÷ðãl~%ÎÉíããc~
+6si
+7óIÁqdÒWµTEDó¬ŒòžxIÃKïaÚñø¿HÄí
+3¢ÛÔ"G9âp:L3ßËÞZrÊš«ª&Õîp{-È2.ZowjõÓÖÉRºáB
+Ë:l!0œ n$ÕÔixø4-œÜcPîùÄ*áaœc÷ö­£t
+|èªêŽ®	ÇuÐM
+ID»äTEMU®t¬çâÄ|Êtèvl'-Wmw-7Ryž·àQBR5µÁMKTe\$@ÕEß_Áø
+Ïã÷qIvÔû=ªM±@×A¶¬žó®8š"'0ÐSE.òºYoî
+ëæGqÇ'c6þÏÉIÏãxRç;¯mzµlÅÁRPÙ»Dâ÷ÙÍ±<vÑiÈ;>Ãèî
+mía¿£Hg
+ÓCÌ
+±Ù·@A×«Y¬ÏÍ'Üp®O»[Ýœ[vò÷Þ­ÐbLìŽ)¹7ÌæoPMš[uU]4MH»ç
+`_±
+ZÁdØNÔîP.e6K@Qkmº
+bnÅTêpK]rèš¶|>Ý}¶ÚÝo#Èû==é.Œ¯ Ó EÞ2Óbªš:&Šn®ª€º¢%:â]»ÍlŒ ; iò¶u·hwK«@]aß£hF"&A'Ã¬ÖÕZçÌ¶ÇëeÊE®á`
+;S%¡¶J@]J*BšI×®šS7¶î¯ZÞnÉ6)ë·üÈ
+% ï]Í©j:¢hi¢ª/^.sÃ>JÆ857
+w¬µø2a2üKrÄØHWUÕ"']/=ïtDÛÖ
+¯UYå»ØTºïl¹Ï·Eu°¢q€2@TqÀÔwšzªº."ªWï|hÇ±ìœìo'³Þ¬GÈ7ÉsfU
+*ª|­ŸFGÎTa
+ÿ
+*ªWøA|ÉãpëÞI6û
+ìOcÜ
+3nHn¹¹XiŽ-KM5N€új€\7þEºNœÛ"z>ÝÂõ}°$T'%JEÜç.Víí4éb€Ú hJ¯ÖM7øô>
+d9Žg&XåììhÛ"¬ïhì0CpQ%]W]6¢t¥y£0øœ%·ì90JÙ&ÞÉŠ2-úÈú£ûÛdíÈ[:ÉÏ;¢.~"ð:Ýæ·<ºÒö?ãw§¥ï
+jðÚ8ÌÃ
+K 	µSRlÑHGUî^ø@3žGbÃ"ßx°Îs¶ÞYŽ0Óqæ¶êž®6ylí]î¢¢!ê[É7/vo,<,âÖl2tm
+Þ$
+(Eè!³ÌGœ
+tHM]$]i­Ï¿Ù²vC\YžÚç5Í!¥ïM<
+Ö$*¢šššEÍàµÿ
+õÛÊ~dBÐwÉ®æÅÆÔµ
+Q44ÑU¯MÅøÁ[<Å­ñbïÉŸä Óš€ð
+-že<£6D-ŠÑEQ$
+5E]ÈEè	ã(àÈ/2Ä²h^i]lNô
+HQtU!UN­SÃYÏ
+8y`ÝµâÛ-Ã¶
+ËÇ€NµÑçHÙ×þ4[
+;ê%×ç], Ë,ŒgÂÜ£ í«µbêä6¢:Ñ#©
+Ö¶
+«Ìõ5(&ËžA>ëÏgÙóÄÆÎ­¬Ã»6vÑëdË2
+É©¡ŠíŠÚV-ü6+ü3ÐáÊvÒGSGHê0¡¡ 
+k¹
+ÓríÐY¥Fb°.vÌvÕñëõÅŠŽpv;lð©#m¢^)ª¢"j€ºÆqC
+ºå=ÏµÝáZ»)Ør€IRŽaÖ
+
+Â
+¹ca
+VUÆÍ×7öKB$UD@^ú¹ì8É#q&]³(W	%d+4š-Y¹\ÕtUç7ß *óÕUW4QBoL¥+?·à7YÜCµæÙ®C
+ñ6ÇÖl±­ÖÒ
+)Ÿ/ŒHO:n") 
+"ªåÜ(âWòÓÎ3Œœºä3Å^!¹suæ 
+¶Å]KSmÍ6 ".¶Î%à7^ ëaŸä0
+vK/LµF¶K
+hhÉÊWÑUm =¢dº(?Ïž{>ïÆÍ±,µ¡«k¶f9fŽô3U4dQ
+
+Úà*u¢¡èÁk5«
+Âáá¬L-×Ï>K}0Iÿ
+5á>x_UkèýËy4ún÷X©­~2}írõÒ{Ö£þSÕ«ùý$â7ïsü+(ó/zOpúÔÊzµ1ß€Fýð.Ås}Öùb·7ºâ­åwŒVåYÏžÏ'c'¶Z"XnñoL4õå8äŠöî4Úr
+Ev©®þœ3œq6¬+9ñâNeXöRÍÝeìL~ä#N
+K)\RxOÚ
+*(°æõÜ5ÃÖ«GezÙz¿ÆÇ9LdË4X_]9ÉŽWKûÒ<­
+ŠåÕ¹Å`Ï2®ëýÒ;m²ôÞÖûÑ{ï/ÃÍæëÒµùÿ
+óÚ.OM
+.e-àË€(ä2¥¡²­¢)ž®¡"8žlŒlÀ³|u«þ?
+^VÑÆç[ñHðcBBB­Lžé žâ	:ñiÞ®¡ï¶d
+BaµÙÎéaœ5|œIXÖìyŸíÁóBï
+V<ðW
+!£îEÐMDx_Á).»æ€EŽGµÀj¶
+GÚ
+Ï·Hq
+A1
+Z«þr(ÃcÜmÏfdoÏÇÒÝvÇß±]ì¶Œy-ÑeÒU%eZ{sdº7©ºKßèBÝçâ=4ÉïVn4Û
+G,]Ÿ°L¹m}Ó
+íØÉ€ÉY7ã
+5Åf;$óäBÐwŠš¥ ¶dC¡
+	7cÈžq'¿3o³à­Jð¥A9/KYZ€7àA"EU
+A%UÑG@Iþ
+`7\¶Èä0¯
+œ¿{.m(ßÓ)¹ç7zS©SBÕKTÒ§Ä~&?Á¬ZïælÝÊ.ñí,eW!cl}\Sã`
+6€ÈÂ@AQïõQ$-
+wkuç
+&Ý\òjs±ÞzåšÒbŒÞqÜi¶VÈU5Ú`
+ßëªtž­ÊÎgb¶mÑ1ì5ñÖŒä£a{ÆÐù¡*šê¢©Š
+X<ËP"@
+hŒeŽ6õk!n&
+tN{}§åFÌ
+&º\FÕ4=Ñ¢,æÁÃ»Ë¹­.ÎòÆr[=ãZ-¯ 6ÓÉ]Dpùž#¢(¶(šªÆøybžµ³
+³kÄrœY~ÉÍ#Qy×Pe<*é"¹¢|Ó~¢J¢­ï5SÄÞO
+
+
+!bR¥ÉtYao1ÍÇLA=HU:ÕV²ÏªÛ
+übžc0liré@ðèsîMÇ.³ä)!å%q£1ïQHÐt]þ°ÌÖùÅ
+W;Ç^I
+iä9žÛácÐ£¶ãIcå/1òEi$sÑ
+pÑÅlTTÚ»kÍ;9Æ`³7â
+ÎÓ#È ÙlRß	`D7¹älÄ+Ë|÷	j`(
+ª[8ñÝxIÃ¢d0¬°'lé®;m)NÇ[uŸZ£Í wÍ®º¡êÕ·MVçdnêÍ­ïsaM¹¯ÃQ>ùtÚÙ8â¢.Šºª*õk¢aŸh!dØÆq:ÖÆUÚŠ>6ïmÉº¶êDß%³Ðv¯-ŽóÍUtQÓ_á­îVKÃ¬k#Û-ËºÚ"Í|EFÄÝdLQUUR]5U]=u¢.1kaÇŽ[®ÖÈ
+$æÕÊÊÝÎ4ÖCRèî2á§°·
+¡&Î¥E]R±ðv-ÃZ']YH\áY %º
+XÜ(ÑÔÝ@tÓR3UT%@ï{Þ»oafW
+\x]Ú¡ç.Qû%1àBuž(ZœÑÐÃšÌ
+Œ
+¢Š?EÌ÷çrù9Xr	vë
+ÁàÛ¹Åé-²Ä&D[tP$Ui
+9ïÔM
+Qkj-^s2³ù¢xuµ{ÖCÙ>l­è.¯G&ÇÉKÏrlŽN¢ßá¢-f³þ<`7^&`pè
++,	Û:kÛJS¥±ÖÝošóh
+ók®šz¢õmÓUÐ)DYïUïx.gqËlœ'é[bt_IN[º)J%oÎ}K¹;Ànžm
+Èa^;?{~ö]
+ÚQ9/¿§4SsÎnô6§RŠ
+ª©ŠQ&C`Æ ìùl³DqÔd,#¶Fšªj¥ éáÑèQ5ú×ùcdº1Ò \#9S[Èy8*&:¢Š¢ª¢¢ý
+È03ÍÝÃ¬Ëoodnä-D&àË
+	À
+ÛØæ¹{;å]
+	¯FÄ
+
+eï{·e¶[
+4bqvÝ0%ôfHR_Bšj»WMk2à.qÄ|Ç3âE»(XV0cZäZmÅL-}.3n¢£nºb®b~&±4"¶Ø8wyw5²eÙÞXÎKqÇ kBEµôÚqÑÙ"Kš1×tEÅUQSáæUñ?$ÍnmáÛ/EìF,NÇÓ£0M5É5{=)nC×Mnº€g
+ïžñëÜ¯÷<ËmÇãœ>ásŽ7oq»Huœ#¶ÖøîN#£«hït.%ÅÉž£zyÏ
+Æ·å'Û,q"°mË65U9R
+dÔ
+J¡`Êª2b
+fHEÍp}çÍñK~uØÛ
+W{+ë­€^Ü6LÀW	Í*¢ìÕÂA!8ÇŒÍ¥É6vrÉË;"ù3fVÛßvUòTÔTÓRU$]ºŠÐÕñnYž³
+	=YãcîdîpáÉ
+&;MN  æhÛ±²^ðDÊ£ÌÞÌxñwÆd]ÈÍ¢t®(ÝÁ§;bÌiLŽëÊ¬<
+	&òiÅD%m+_áÖ48lÇS2J<Ì!6á)
+
+¶Ø©è(éáR-Is%É²
+%ÙøgægµÈO%n,i®Ü7GeTQ%G{ôÐCõWì<`Ê3ÜwmÜfã»=gÜ#
+9
+¡)hl«b(n+šH'¡®¯¹5ÉmXöueÇîwù"¥:ÏÆ0â¢
+²
+ýL
+qÇGÐ ®-ëÙå»6Ç¶[.qÇ®ïYäH-
+oÈitqApE;ÕÔuCM5T$GsËv;s¶\äµÝÙ³ÇZ&ØêèÚ:à
+÷Ëšhºèª(€Q|-áÓÜ;º] Øï¿ø*F×-¶XqÂ¶;ŽyÜt@Ëyš(èZ}¿@¬çã&#æVŒsnçv¡ËÃwØ£7
+r9)£€îæ¶¡¢6ŸWÐê©ÃÂŒÆãñ?·šìnË-Æ
+@ìw5%Úüwçó6¡®åM¢&œz-µ÷
+óC_2k|
+fØýÍdÑA®õTWm§z1:ö
+iù8
+åLŸ
+þÃzyyuÂ
+yÐA«k
+(EuwyªéžÄU4ïÕU+ü>ãDÜ~ÍÉÏÈ/ìw2irô#pb#²Ê»±æò%$d
+1N²BoqÆ.ßóÉØáÁÉíŒ[Ó
+=g9N9)
+=»$6¥CDQAÝªk¿¯DæÍð®CÂòÈÙ
+(Y.-Òv:åŽ
+#€±Ê{Vá1ëD!óÕÛÖ¿]S@¬æUñÃøíÙsk»µr9Ñ"=ÓÕ¶
+~¯Rª¢¢IåWû6-ÍÈr6ë\¹²$:œè':ÈUTQU€éYýPçÝ³OÅ2k
+âmŽ®6uÕì»t#iGáM»p1CE$ABTÇëŒ+Ë¢áÙkÖìïØ{Z ÂG
+€ š²Sh¢«Ô­ÔPR"ÇøyZxxÍ
+Ël·7®²P§X9QmÂ{
+¡ÁUÜwÆ»Í
+tDÍð^ÚsŒ/!tÛ&YÚÍjcæÖÆ]]IMÔ¶¢è£ášníx¯Š]œv§Ù.Æv×Ék±\ïC»ÌæryuÏåò·õoÓ®ž.ÜlŽ[ï9¡q
+¶DŒ9€uFX­elGÅÅ}G`¡ *£ª
+Ô
+µÍV'b¹&ckDÊ!Y¬ÝäjWŠžÑ£ÂÓÄï-œíªªÉšê€ziÝŒãSØáãx®
+{íQènÑFoDi¥Aåºº
+­€ºõëÖ©YÎÅ
+ä~*p¢>#çvÇ2x3ŠžÌVâ\Á#
+ ,lÕ
+-ÊÚ*")ª(ŠÍç$Á!èCuÖÎ;Ê
+ã*©ª(
+xijJ©×DU.1a×\ïírÛv
+ä\5O
+èšŸ)ìu£qTP
+IEuÐžn|>o&átü4zÙ&Ý%¡ÐØà
+µžÌ·±Y@uÝ
+¯n" šºóJ"Ìñþs®ß¯Ý·^.¶DÇ}ž}h-Ê>xÚ6ÙªïqÅ7	ÍÝJšhŒ/±äXõÎýœ1Áv,ÂÂÅ	5'õCŒi-
+Û)DJRE
+bÖ,ÓäÐz}ŠfÎmïØbcß¡&"œJ¡Yÿ
+áÝæÝÄUÏ²Ì±õè1öì-[_BlãuÑæ9¹Ò==ÁD×AëM+ýÂÿ
+§1Lûå':ÓmæEðw÷üvFs²{eÞ%úï*ôûLÙÎ+Ê}CvÓY')TwjºïêÑtjRªx;9¹äYEÏ)Ë6¹3«¥ŽlÊ$vuxÝE"}Q
+Ø»¹h¢µUA¶REñWŸæCÀíãØnIÜ.*è	ŠF,vU%ÔÍÀ³MŠ
+ÕZe)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJRD¥)DJÍ¿Éú?,jf¡³oòb_þË"òß}Y8cö[óp«UUx»êÉÃ²ß
+Zš¿æõ#oýÑ
+áFŒ0çÏ
+ê­{ÍêFßû¢ÂxaÏÕZú?rÞM>œÖ*k_D{JõÒ{Ö£þSÕ«ùý$â7ïsü+(ó/úOpúÔÊzµ1ß€Fýð.Ås}Öùb·7ºâ­åwŒTÏ	x;Úf_zÉ®òñìû¥ÊUÑ&9ÑæÅ~BŠðjA>â(<ÄÙŠŸxº
+»ðó*Èžæ¶ü¶Ëoík¥v6#ö'dkÒXçJ
+þ
+Tv i®»MW¥Ûn}óE÷9ì3ØÂvØwúG#Šrz6î·~ÞŸnÝ5ÿ
+mCEïª¥pà-þ
+³l.Nwlåeùß%Éo1&
+Ü
+le/zŠÓ;UUTQ
+r(o5FŸñ">=[-y-Zb]®ãgtub9ù¿->o¹±tRm4Õ7mëÐç
+>ë-+Méß(®ª€JÕªøjÄ\VIâYuöÍ®õ;-b¬šK*3¡%SmäÐTI
+4]PµM!nÜlŽ[ï9¡q
+¶DŒ9€uFX­elGÅÅ}G`¡ *£ª
+Ô
+µÍãÆk$¬Ÿ6/fÆòkÌÙöFo¶Ç!Çe
+Å
+Š$ã£ÊÓR×ÊëÔŽ2.	Œ2Ê'fŒ>Ênë7	xRãeràrGdÕ§[b"6( ©©+œuS3Hé³o9çv<FC
+ÇñîdFÜ±%Çz3ŒÉm õîCU®n4ñ.lÿ
+žXoXýý«hÝ%Ç£:*º­+qÝtCDEQ.ùSUJgóY~YtËáßì7§\ Ç}¶°ÐWQ·w®\ESNýQPæj¶Âÿ
+HA¹I@ÜhÌ{ÔR4
+ÁqáþUç
+WJÉvµ_-lÝ,8W8îåJøŒÓIEvª¢èHšº/
++9óDçþÁÅ'Z'cð¢]²-ß»Å7!/HÜ/4-£d€
+Ôš©ßÕÔS¥bx¯[ds'2YvËÝºÉ:
+;=Û
+jÝöDÒ
+f¹®ó$	÷ªêõ)  ª­çâ;µÒñarÃz¶d¶šÉ-lsº8JÁxë..­îG4MŠ¡Õ©ÎÜžÇmŽÈŸÀŒâY5ºíf²v}Ûs©
+Ý~
+;	U
+T. ]®l"ÔéYgž*
+¬w<S%tÌçAµãÓ€0ªÃG3ŸÜMÂ(Ú&¢J
+·PTÕ*O22Ì{
+Þ-}ÒñF»9Š.
+GMÏ¶ò
+z'1±5ó€iwíÐu¢-Þâäž­§#ÛÍÄºÁfk
+µQÍêFßû¢ÂxaÏÕZ÷?#Ô¿÷D/
+ðÃ</ªµô~åŒ}7{¬TÖ¿>öê/2ÿ
+"&€ª«¢xUV»µÎ+ñ÷üòv8pr{e¢%ïôÃOYÎSJaOnãI
+§)PÑPwjïëÑ:\Dá\Ã"±å²ÇÞÈàAèçbIöé¬®âÓ¢žêD.;¹HIM«S¥bopXm.¶Û
+É[¥ k(jl
+arC
+
+®8@JŸ¥dÜ-áþ
+äùuîÍ²dqÒXøÇ
+K šØ4ð§'qžŒœ7ª(êêxÀçdg;'¶]â_®ò¯OŽÍâžÜ§Ô7m5ârQGv«®þ­F¥+Ï%ækq¢³H
+ÛãdÈõé'
+§Í^{m#.H$"Bi4BÜ$ª
+ß¡©D^mgÉrŸ4q²ß]Ï
+·daÀW
+m÷"Ld"yÑ+Ï@É	
+Q!#-&
+Ñ±kÝÍ-e·bN^ @³pýk¬ë
+ÒàŒëOoF^pE°-YÐ÷6ãiÌ
+WŸhœJ"Äï
+	ïîßÁ«F^ÌK[mi>l«RÈ}óé#'sH/6-1
+œ$qvª&º¢ê}*íc£öfËÙÿ
+®6n(ÇÌ1ÌÙ
+
+Xqu­ëS¯£Ã¿hÕá
+š*œIš&ÝPS\
+ÀåpÏÐp¹¶o-@uå%žK¶8á8¢b®
+€gß"¢iµ4ÕVóJ"©ñS¹æì{EºílÒNiù\¬­ÜãMd5.ã.è*{
+pªlêTUÕ+obÙì9Å¢uÕ5È~[ ÁÈ"
+MÔM5#5UBT÷œëÔéDYð(Âé>»ñ)äµ®?
+Ë
+Ù6ÕkÆÂ
+bEsÎÇU@µµW9ªº
+" -ëô¢,Ïá¥÷Éî²,Y¿D°]òG²Ð»-×
+G#ô5eLP»ÖQÄÚßU3æj¶Âÿ
+HA¹I@ÜhÌ{ÔR4
+¥)JQ³þ2à7\óµ~Çd0¬ýœ±{
+m)|çØ×+µæö|{­WQÑGE×@¥bwÞ
+í@ëp]Û]ª
+£âª.)!®(u]w'¡©DXÏp¿ü1Üó¶ÿ
+ÒSyrLÑuDE5DAElµúQ3pÇ$^âÖ
+$ØW|£áfSibÇì.õ¶Ý3TÜÒªu8(§¢îUD³qŠ>YðádÅ¬ZÞ2Ão6§:Ð
+œ©	µ÷
+QsEå¶Ft®®ýº	µ R£1;$\kŽã\yÈš,Â`ÞTWRTDE-5Ñ5õ»³ÆQÁ^edÑ#ŒÒºØ
+é!
+¢èª(BªZ§¹©DY6ÂK­¢Çã÷Ü®ÎÓÉžL0­%C/Ì·
+÷Eh*êšªJ¢çö¬K0-pÂÙnžÍ¹³[n÷'ÈÅ€À
+FFaÅç,£74ÝÊ{i
+¶œ3J"Á­ü¿Àá¶
+ÆÎí¬C KäI.cæDùãm€€ïPÝ{r¢¢("mQU9>áøc¹çm?þöKŠö±ÿ
+£ªëô¢,žôqø2ÍB|Ã:g%÷,l)=-µõFûåE
+¥Õ¢îæ*©Wwü4Ÿá6<Þß7éRr;»€;¶ I¥>;UÇö-ÔÅU
+«BD
+2EÒ±GÇ%ÒãÙ9ìFm¹SyÏItEÝåPn$RÚI®]ÚR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR
+ÿ
+º"uø*ïÚýûÄ/œOâ¢/ãÍêFßû¢ÂxaÏÕZ÷W9·áB4ènŠh¢šèê²×
+\ùá}U¯£w-äÓé»ÝbŠµøÉôGµËÔ^eÿ
+j«¢èæ_ôáõšÿ
+øøëeáÇÑQýuè*QË1IYu'Àþ7MfjHBmüiWÄÍE
+7ª&º¢nUÓTñ['$|ÎPGÜlÜL)œÄ"€¢*»õTE"TO[rý­òEù§ÉO2
+`¹oR·Å^æÍÑüü|ív£àïIG«©U:ëÁÎ|ðŸª×ŸŒÖä]Ëÿ
+NñVò»Þ+Ì¶Ìó4³`·¹vëÓMÂÅìøÛ!6É
+ç°Ê8znåãUDïµÛŽÁP»ÙnErÁòÎ3_­÷­·ìKPŽ¢n<ßVÑÚDÓ{ö'DU4=5­áq\abÉžåcË[×BocÀÊ"4&t$DAEô:&Wj]Ï2SÒåÚ ÈüRë®Ç7#ê¬ªj­ªªªõ}*çÃ2<Ó¹§i
+qi¹ZáBK¹AvNÉ
+ºŠÔ ª¶ŠBš"j$ºúÝ
+þoÄ<Mìò
+ìî-Úf/ØÉrÖÃ%,^6ÑÄQ
+ŽiÔÛßj­ªuo1\b
+VbDÇ,ñã±(f4ÓPn@Šð¢â""!'_Óš{noc;È²ëåÙgàÈb;ñz±Z&ÅÁ%UÔrª šý:"É2
+ÛññÜû+ÁfÛ_å[bÄ+sfëšNB]H(Ò8
+¡)ä=E+7
+ªw
+ølŸNmÛ
+Ü§`å
+Û1Dr!¢/W|Iš× ³YÚ:#Vš!
+àn95¡MÄÑÂq4ÐÔ©Uu××®+~=`·Ú€Z`Xí-òwsâ1w
+	nM
+QDEÕ:Ñ4¢,[+Ï3V²LŸ&9xéLbÝa§ÜvÞÔ7\%óþãª
+DÚ#*:h+á³p¶åd¹G2vK1ë.E:pF+ÒDSAsDØ-êÙ
+Š€JŠºm«óž®0ìš2ÝÇ,ç"Þ
+·	ÒÚ`mul[]º
+õ¢&zÕß·Û­öþÐ ÅÒ_)òæºZnpŽNøDÔ­t¢)k§p?ûÿ
+DmÙû-º;M7
+*j^JÏñ!9ñ'1ë3¶;;PÞVÀmÅu·
+Ó'WynD".åY9ø>>tÓ±
+~T¹.ÏŸõµqÓ%ÔGR%UUU^µU®í
+°XyÝ±Û-|ýŒîæm×níšéªé¯U¢*7=]žYö_óQ«/=$áï¥iüª×=]žYö_óQ«/=$áï¥iü¢-ÎÛ³€~~íØgÊçk·s²vÎjí×n¹A»nÝÛµ©iqMáo7Eö®ã±DÛµ@PuEGvº4FäèJR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR¥(JR°ï5ùrÿ
+w€jš§Zzõw¿b£[q»5Ú6,Æ-öG<»÷a£Ð
+ÏÕò'|Ûæ;«âŸöZÕã8_wµxÎÝÇã¯=Ý3û"Ý3û"ŒûkáYúŸDï|Çu|WÐîËZŒg
+îãñÓ²Ö¯ÂûžüuóË»Šqãs³äS»Šqãs³äW¿s­|+?WÈóoî¯úÙkWá}Ü~:vZÕã8_wŸywtÎ<cîv|wtÎ<cîv|}Îµð¬ý_"wÍŸcºŸ+èoe­^3
+÷qøéÙkWá}Ü~:ùåÝÓ8ñ¹Ùò)ÝÓ8ñ¹Ùò)÷:ÕÂ³õ|ß6ùêø¯¡œµxÎÝÇã§e­^3
+÷qøëçwLçÆ>çgÈ§wLçÆ>çgÈ§Üë_
+ÏÕò'|Ûæ;«âŸvZÕã8_wµxÎÝÇã¯]Ý3û"Ý3û"s­\+?WÈóoî¯úÙkWá}Ü~:vZÕã8_wŸywtÎ<cîv|wtÎ<cîv|}Îµp¬ý_"wÍŸcºŸ+èoe­^3
+÷qøéÙkWá}Ü~:ùåÝÓ8ñ¹Ùò)ÝÓ8ñ¹Ùò)÷:×Â³õ|ß6ùêø¯¡œµxÎÝÇã§e­^3
+÷qøëçwLãÆ>çgÈ§wLãÆ>çgÈ§Üë_
+ÏÕò'|Ûæ;«âŸöZÕã8_wµxÎÝÇã¯]Ý3û"¿;ºg>1÷;>E>çZøV~¯;æß1Ý_ô;²Ö¯Âûžütìµ«ÆpŸî?
+|ñîéøÇÜìùîéøÇÜìùûkáYúŸDï|Çu|WÐîËZŒg
+îãñÓ²Ö¯ÂûžüuóÇ»Šsãs³äS»Šsãs³äSîu¯
+gêùŸmó
+Õñ_C»-jñ/»ÇNËZŒg
+îãñ×Ï.îÇ}ÎÏNîÇ}ÎÏO¹Ö®«äNù·ÌwWÅ}
+ìµ«ÆpŸî?
+;-jñ/»Ç_<»ºg
+1÷;>E~wtÎ|cîv|}Îµð¬ý_"wÍŸcºŸ+èwe­^3
+÷qøéÙkWá}Ü~:ùãÝÓ9ñ¹Ùò)ÝÓ9ñ¹Ùò)÷:×Â³õ|ß6ùêø¯¡ÝµxÎÝÇã§e­^3
+÷qøëçwLãÆ>çgÈ§wLãÆ>çgÈ§Üë_
+ÏÕò'|Ûæ;«âŸöZÕã8_wµxÎÝÇã¯]Ý3û"Ý3û"s­|+?WÈóoî¯úÙkWá}Ü~:vZÕã8_wŸywtÎ<cîv|wtÎ<cîv|}Îµð¬ý_"wÍŸcºŸ+èoe­^3
+÷qøéÙkWá}Ü~:ùåÝÓ8ñ¹Ùò)ÝÓ8ñ¹Ùò+Ï¹Ö®«äNù·ÌwWÅ}
+ìµ«ÆpŸî?
+;-jñ/»Ç_<»ºg
+1÷;>E;ºg
+1÷;>E>çZøV~¯;æß1Ý_ô7²Ö¯Âûžütìµ«ÆpŸî?
+|òîéxÇÜìùîéxÇÜìùïÜë_
+ÏÕò'|Ûæ;«âŸöZÕã8_wµxÎÝÇã¯]Ý3û"Ý3û"s­|+?WÈóoî¯úÙkWá}Ü~:vZÕã8_wŸywtÎ<cîv|wtÎ<cîv|}Îµp¬ý_"wÍŸcºŸ+èoe­^3
+÷qøéÙkWá}Ü~:ùåÝÓ8ñ¹Ùò)ÝÓ8ñ¹Ùò)÷:ÕÂ³õ|ß6ùêø¯¡œµxÎÝÇã§e­^3
+÷qøëçwLãÆ>çgÈ§wLãÆ>çgÈ§Üë_
+ÏÕò'|Ûæ;«âŸöZÕã8_wµxÎÝÇã¯]Ý3û"Ý3û"s­|+?WÈóoî¯úÙkWá}Ü~:vZÕã8_wŸywtÎ<cîv|wtÎ<cîv|}Îµp¬ý_"wÍŸcºŸ+èoe­^3
+÷qøéÙkWá}Ü~:ùåÝÓ8ñ¹Ùò)ÝÓ8ñ¹Ùò)÷:ÕÂ³õ|ß6ùêø¯¡œµxÎÝÇã§e­^3
+÷qøëçwLãÆ>çgÈ§wLãÆ>çgÈ§ÜëW
+ÏÕò'|Ûæ;«âŸöZÕã8_wµxÎÝÇã¯]Ý3û"Ý3û"ŒûjáYúŸDï|Çu|WÐÞËZŒg
+îãñÓ²Ö¯ÂûžüuóË»Šqãs³äS»Šqãs³äSîu¯
+gêùŸmó
+Õñ_C{-jñ/»ÇNËZŒg
+îãñ×Ï
+îÏ}ÎÏNîÏ}ÎÏ^ýÎµð¬ý_"wÍŸcºŸ+èwe­^3
+÷qøéÙkWá}Ü~:ùãÝÓ9ñ¹Ùò+÷»Šqãs³äSîu¯
+gêùŸmó
+Õñ_C{-jñ/»ÇNËZŒg
+îãñ×Ï.îÇ}ÎÏNîÇ}ÎÏO¹Ö®«äNù·ÌwWÅ}
+ìµ«ÆpŸî?
+;-jñ/»Ç_<»ºg
+1÷;>E;ºg
+1÷;>E>çZøV~¯;æß1Ý_ô7²Ö¯Âûžütìµ«ÆpŸî?
+|òîéxÇÜìùîéxÇÜìùûkáYúŸDï|Çu|WÐÞËZŒg
+îãñÓ²Ö¯ÂûžüuóË»Šqãs³äS»Šqãs³äSîu¯
+gêùŸmó
+Õñ_C{-jñ/»ÇNËZŒg
+îãñ×Ï.îÇ}ÎÏNîÇ}ÎÏO¹ÖŸ«äNù·ÌwWÅ}
+ìµ«ÆpŸî?
+;-jñ/»Ç_<»ºg
+1÷;>E;ºg
+1÷;>E>çZøV~¯;æß1Ý_ê?5TòpiàHÌ"fœ!:º«ÁN|ðŸªÖ~âþW{Ž¿kžÌæÅ}
+9-º*u ¢øQ+:%Ô~×Q¢4{ôupšàMâp5±C©Wv¬^
Index: /ELYSE/HEAD/doc/Images/numuEventHit.jpg
===================================================================
--- /ELYSE/HEAD/doc/Images/numuEventHit.jpg	(revision 286)
+++ /ELYSE/HEAD/doc/Images/numuEventHit.jpg	(revision 286)
@@ -0,0 +1,1776 @@
+ÿØÿà
+·ýÎsÜo[þçMLa<ïíW»
+üÛYžb!bËïCJ1Ë©pc ',žg|2©Ê'ZâÜ®"%Æ^ MÕÈç)*
+·ýÎsÜo[þçMw6løZâå®&!~}Æ4§#Ký©ØÊl§©ÄšêBÛW€uAI
+·ýÎàs
+bfí|êæ
+»¢ß»ò¥Bp5 ÂµåDAÏšÔF_B¬ÃssfC*.;nî{à«Üé§=ÆðU¿îtÔ_B}
+Ïs§)=ÏqŒoû4çžÞ
+·ýÎËèS/¡MÎ<CSçžÞ
+·ýÎsÜo[þçM@åô)ÐŠç
+!©ÊOsÜo[þçM9î7­ÿ
+eô)¹ÇjrÜ÷ÁVÿ
+nqâ€÷=ÆðU¿îtÓãx*ß÷:j/¡LŸ
+78ñ
+NR{ãx*ß÷:iÏqŒoû5ÐŠ_Bx§)=ÏqŒoû4çžÞ
+·ýÎËèS/¡MÎ<CSçžÃö*ß÷:iÏŒnû5ÐŠ_Bx§)=ÏŒnû4çÈÞ
+·}ÎËèS/¡MÎ<CSçÈÞ
+·}ÎsäoÛŸçM@åô)ÐŠç
+!©ÊOsäoÛŸçM9ò7íßsŠ rúËèSsÔå'¹ò7íßsŠùÁvï¹ÓP9}
+eô)¹ÇjrÜùÁvï¹ÓN|à»wÜéš
+Ÿ
+2úÜãÄ59Iî|à»wÜé§>Fð]»îtÔ_B}
+nqâ€÷>Fð]»îtÓ#x.Ý÷:j/¡LŸ
+78ñ
+NR{#x.Ý÷:iÏŒnû5ÐŠ_Bx§)=ÏŒnû4çÈÞ
+·}ÎËèS/¡MÎ<CSçÈÞ
+·}ÎsäoÛŸçM@åô)ÐŠç
+!©ÊOsäoÛŸçM9ò7íßsŠ rúËèSsÔå'¹ò7íßsŠùÁvï¹ÓP9}
+eô)¹ÇjrÜùÁvï¹ÓN|à»wÜéš
+Ÿ
+2úÜãÄ59Iî|à»wÜé§>Fð]»îtÔ_B}
+nqâ€÷>Fð]»îtÓ#x.Ý÷:j/¡LŸ
+78ñ
+NR{#x.Ý÷:ho²ô.Ý÷:j/¡_ÌŸ
+78ñ
+êrÜùÁï¹ÓN|àËwÜéš
+?B~
+y¹®!šžÉî|àËwÜé§>Gðe»îtÔ¡M?BâçÈþ
+·}Îsä[ŸçM@éúÓô)¹®!šžÉî|àËwÜé§>Gðe»îtÔ¡M?BâçÈþ
+·}Îsä[ŸçM@éúÓô)¹®!šžÉî|àËwÜé§>Gðe»îtÔ¡M?BâçÈþ
+·}Îsä[ŸçM@éúÓô)¹®!šžÉî|àËwÜé§>Gðe»îtÔ¡M?BâçÈþ
+·}Îsä[ŸçM@éúÓô)¹®!šžÉî|àËwÜé§>Gðe»îtÔ¡M?BâçÈþ
+·}Îsä[ŸçM@éúÓô)¹®!šžÉî|àËwÜé§>Gðe»îtÔ¡M?BâçÈþ
+·}Îsä[ŸçM@éúÓô)¹®!šžÉî|àËwÜé§>Gðe»îtÔ¡M?BâÐ­V+íÊÜÕÆ=ÆÔgm.TÑÆyjHui$f2á\ç
+ß]·	nïoøêžH¹)LŒViú_(±U
+¥ÕôµZ:8¬Ugt¢3øhü<n]àœ@¹Z!²¬ö'#
+-ÈÆÔz÷KVò9jË<]UßqÑZl6èuiL©#¯IPãPÌqâ:«£Íý8 36T
+ŸžC­±
+²Ü±f$gM~
+Ÿ
+N­æSåA	iQ#§é
+€«aÕµSiŽò|QØ¯·}ÆeGFQ«.éÚËÜD¬5|
+zÛ·w·üuE_#\-aR¬!e¶Š%!Kt54¥'WÑÏ<áÆ¶ö-{
+¹\cÛXÅ×¥ÉòYe°É¢c!#¬åYÏU®á~ÆVþ³>
+Â«8Jr
+µm£{ßeß'íMF-EIçÅ$ös# æ
+Å Œ;YQ
+PüøM­'ÔRTè)?@kÜ!:Í
+
+¿õµŒZþD
+BØ¶HžsÜa)¥€nw÷
+=c>¡§êc®qË6tÅÏ®ÜúØ¶Bm)S²
+IÈ¬úA¡êú`
+üÚ_ü€õuãJ¹¥>ûþÏ¥Cÿ
+JrV 
+|K!UÓ²
+¬zÎWß(¿_
+l{k$ðÁçï_­}^Öâp±ÃWÅÅš»Š¥ö4ž^ËÝtqg¡¥02ÖtÜÝ­vjü<¶ÉŸ
+Ý³'ír±Îôíývë€í"ÜäæâJHfê°3	-¶¥ôH
+Ö¬²àsWÏ±v²á·°åæøõÑÕõäÞdriS°ÜœNï
+m+ÕŸR
+ ä]Dw
+ÚÏ¬ó÷Ê/ÆSžöÖ}gŸQ~2¡xM
+šé¬R³·ñFù;«?®3gûNÖSt
+óàvÍYä[/[RÃW8Sn3O(þ¿ALÁ°ì€l,¡ m
+$pªÅhsN!vÕ©Æ0Û]
+Lg[CžP€ÂJÖ$²®A$Wqí¬úÏ?|¢üe;mgÖyûåã+ÊX
+N¡ûD]ö^QË7³ÜÇ³ÅéiN2TZ¶Ü{>Bÿ
+RÒ¬ÕÅ€ñÌ$uúg
+p£g{QutÙ]ªêû
+%Iv
+¹»HÉ);H
+Ò@N@
+ò
+mo+÷J
+KB5LÏ$Ôµñ*·«
+Ýò.²
+¶»môtaB"÷Qì\ùºxN;~Ù-7i8ÆÊY
+530š¥
+
+ 
+Ç^CÕšmžžFF0°õSJÙŠ?PÈìVÅ÷õÿ
+Éÿ
+N\|èÂ»K¿Y®øú×0;qýþl|.$HJ·²í³Ézn€Ò_ wÇ>@@ÒŒÍ
+/·ûd
+Ì®ÜåÏ\¹we±"fíGw©ÂëyèÈ©c uägcÌÇo
+àšC}ÄÛ­ñØ¶ÜPì4Ão­nÜR	ZÁ[È³ 
+òçë
+ß*Ý}Ç-ÏŒ85î*i;P6ÒÚ7­èSÔÚuè+-YfÎ*¿á·±KØ¯ûeœÃz×ltTfÞ·€yd-JûéÍj-@
+Ô
+Eâ-ÊÙgmBÃsüø©a€Nb[+-êÒÞdåçJnžïcLjnh±Mvå{n2$ICn€žJZÔ
+	J
+%z
+
+z¬ðv³íž.dö*>³Ø\iqÙ7%Ìm²âÚÀh®²39×Ð4¬2étÅéÄmm¬G¡«e©b#vîQµE[³æŸf­@šu¬¥y
+DYŒë/±RíÍn»ÉÓ+l7Œêu(îøe€)ê
+R¥
+R¥
+R¥
+R¥
+R¥
+RÔÐwv¬Èe
+í[0
+¶É\VýÓ«ºœwR·Î+9n¶ŠÜsZ¡§Îó
+mÖ@R
+BE*5X³¬1-nÊD$)š­Íü€0ÚSJm	uj	mM¬€ 
+*É9¥9W»sÚÏ°¿ºŸM;sÚÏ°¿ºŸM9fX! ªÉÊõ€FAÔSQi!Y(äRÖA[3ÁºÅº»môèÏ³!/»rµ-ÖT¢Ó8wªFµ
++JÝZuté«­ ÙÖTY,;kuåÉÌÇe=5÷%
+BJH)NUÜö³ì/î¢/NÜö³ì/î¢/@EÎÙLé²bØ¢A
+Œ&{r$®S¶Øó52æ€ï\RQŒy.æ­I*
+Û'B¡kF²5hREC«exÅn2,Î²PÔã3ä4ëÑÔ
+.žÝl%!+*	J@
+;Õ#ZRõ§Î*·=¬û
+ûšäÓ·=¬û
+ûšäÐ{	ºÎÑïžÚåØÌÉl7¬« ê.<£€)ÕZBBÄÑ`·©EÌÄèaRS1Ûü0Ù^5æA- j·=¬û
+ûšäÓ·=¬û
+ûšäÐlË;ºJìd#G[	òYÜl·öÂô?£ p(ä
+ÌûsÚÏ°¿ºŸM;sÚÏ°¿ºŸMŠTžG;'HrßžGº«|çË
+¥²ÚGèd
+r<sëãTþÜö³ì/î¢/NÜö³ì/î¢/@N=³,îé+²y
+l&SÉfCq²ÜÛ
+ÐþÀ£
+
+ŠQ×H®ŸÑiô£r
+RúJý^nÐ¯ûÚ
+Ôb«
+úLFî1«VHÊ:Xu	qÖ·®kqÚµ¶·jÈR9Ã`[pµÙü3jŸ·QQqÌŽ°§7
+ âôd5eYä3ËšUê]ÊÄ÷¡¡äÓ¬°,
+ÆcÒ¬ÃdÝêðÔH^ðÜ­?ª{ßôÄ4gm^
+ÄßhOÁNiµx3}¡?DG
+µq°Cúç\
+ª+*RÕÊäzkIétG_¿¡Qž8ÝpŸ?³Á¶C
+
+É¹LL¶ÛYOMMHÚ·ZBRêw{²€(¥IàAÒÅ®6Ä¶
+-ÃxQuåW;ó²$¡
+ÇC
+T¥
+nÛ;Ø^=Š}ùâ·>x¯l×µ6ÙÞÂñí3ïÈ¯¹óÅ{fŸØ·á¯Ë³Mïä¯\Qv/úpúTÆzŽnÉ	3ÃLÊ×ri7
+µD šÎ6èKkLe%Ý+pßAIÌ¬$æ«9ì_ô
+áôšÿ
+àÂP¶96Ò¥)G£éæZmßo6_\·67,Û&ïWŸ¢B÷VŽ<pÆÏÅæöýœÉÁrbÇÒZZµ)YH df¥$
+Jlœ^ú
+ÞV}šâM®ëpŠ8¿Zqä³k
+"¬°@q!ÅtU¥Î
+TA* äxP¬{MÁ·
+?
+u×axWë²Ð«ã©·%×K`«HéðÍDrÌõÆÔ°Õí'áëõé*5è<Š§÷Ty
+¯> £0æ@A$¥Yi4	û$Ø$¹¯º6³lÉuEFv0PA<
+RT :ÊÚO€Ô;žKf{²b83äí:Ít
+ÐëÌ>ó	yÌº
+Ž%9åe«%$S§w{)ÙZÅßhX6*ÛÉïÑBRMÝJÐ¥ÝL4!Ä€€š%iRud3Ë1ÀÖÏ
+¿e~Šœÿ
+ÚeQMÎ6D4šÜgµ]bB-Ò6
+CPh
+$AP)JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRŠí³œ
+ãÚgß^+sçöÍ{Smì/
+Ó>üñ[<W¶kèý~ü¹{04ØŸù~JõÈõb÷ ÷¥Güg«IŒa
+'yž9q»á{%Æk¡!É 4ë	HJARIÉ)
+PçÖ>ûÒÇNçÖ>ûÒÇVjPv¬-SÛkÂ¶(3Ïvük{MžÁ%% Á#Ú&¥.Pa\íïÛ®PãÍ
+ 
+ÏsÌë
+ýécÉ§sÌë
+ýécÉ«5(
+ÏsÌë
+ýécÉ©%Ïcš[Tdu¬žŠ¢GC(RÈ
+
+Gâ DA
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+$#ÒË.^žmGÚl8²ëÇbvÃ
+.¯Ú·Ò€Ÿ©2RYg­J*R€-Å,à^IÒA5Î|¥b×m©âÛS/ÇeÏ{{nuvÇ23o7!
+SL5ël¶€éJÁQZr,~Ù
+þù,Ó¿Ú]"-Åè¬žžoENE·ÒËœ6Â²ÒJž€ñôºV"æÙ.Ð.qÕ!»=âž·gÐ-Ñå4ÓfâRÜ·FAA
+Sm€
+øŠ'^qüýÝ±Ö&
+¹Ê,LŸËñ]S%Å·€ž­]Ñt-%*(Pµ+Îm/á;L	ÒCWyMlú%Ä8ì)<ìŠÙAqÕ!DRô
+¬±_v¡ìøVäv+
+Â."µ[yFíØÌŸÔÖæZuž[RTµæ±Œç m4¬m[KÆJ³ML
+Oe¿Í¶^îíE[íGe:_©pŒZ\^¶µds
+Åß8³,¿ãP4t0RÔž,I
+æõ@<rªäŸ4ø°$NÌÉù+:žþô$Õ€q9uº±þÒ>¹
+Y>Û-Ëæk^-
+L+qjèéÜJÊSDš§<»	 æ2×Û
+¹-ïûÃ£yÝ;ÏWéuuqê©:ó3ïâkmêÍìÓ.hžcØoØ
+WáâleæÅCIÑ£ã©VŽÃ\9hÆf3$Ý5yC©	:L€/®»ÖûÞ)µ	Ä|àÖ7TtD~ã$ŒõŽ dÒmèmM]1!ZxÊ =
+]k­Æßjäû€è°aµñù.¥¶Ñ
+óBs	PFY$Wk²¶Ýo±Äùbœ2
+ãŸãISkÈ^
+u.±×@jÕìÓå}³íF
+e
+Ûd%t[K®Æ%×G
+Ö¢yÖYÎûûmOëGäª 4ÊR¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+z6eºJldÃëy
+§,5ïÛzô!¥ëP[I
+$2íX°²ï¹
+§{Ÿr¹deågtï­-q9¡9$ðÌ
+
+Y©@RÙÙV
+ã
+%II*Q$€¡WçReœ`ôžkuùž±så2&ŸóêÊtŽ¥:µ¬ JFgVºPG6uÔâÞE­Ö$.âýÏÇû/ŠCÉÒêê°
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯à§8Øœnøêþ
+5Î6/[Ÿ:¿ãbõ»ã«ø(ZT×8Øœnøêþ
+sÖï¯à !iS\ãbõ»ã«ø)Î6/[Ÿ:¿
+¥MsÖï¯àªØqÕ³lÚó`áFdËÒzsœkq-¥J"R
+ÂAiÏ0Û;Ø^=Š}ùâ·>x¯l×µ6ÙÞÂñí3ïÈ¯¹óÅ{fŸØ·á¯Ë³Mïä¯[=EØ¿è=ÃéQÿ
+êš°_ž<ûL¡Õ­S#¡Åº²[^÷yÅäªJÔËÎ*ÛÎS^
+Ú»o]Y_e=±.ÙK×D
++o
+
+ ­+xo<Í%
+VzôÏô²¯Nm3ö?ùÏîWp¶!¶á
+µíSÜ-÷ªáB"[íÐÌŸžªÒtJ**ND'"T@ #Øöþ>Ûskn$µ'
+Ä:TóMž«2Œ)éÌ¡\U£cXÞ-0
+¥ØÌÎýàãºn¥hJSšåÒ3<
+q(QPJÊA$$,xeÔrË;);Äâ?è¿5M÷öÚÖÉUNÊNñ8ú/åMP[lïaxö÷äWÜùâœ³^ÔÛg{
+ÇŽÏ¿"ŒVçÏíú7bß¿.^Ì
+6/Ÿ_œr=EØ¿è=ÃéQÿ
+êš°_ž<ûL¡Õ­S#¡Åº²[^÷yÅäªJÔËÎ*Ú£0Vºá<NÄv!í%ŸÈR-ªT²Ä4<Q5Ÿµ(îr)	H
+R²ŸÊ^õoý9^ðíjöR÷«éÊ÷j¶/î_×	¹ì{ñ}>Ë<AJR¬aJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()VÍ#öäÄ£?pNÚßv<ÊŽÒÀP#@YàUõ3FzÒNaÚL]·
+ÞàYXz5œ®!
+s[
+R¥
+R¥
+R¥
+R¥
+R¥
+ïÝ
+ùÏÉ€VÛ·L>íÏ
+"ùoo;¥f[:S×
+êi@Si
+b]]û¡9ù4õuT§7V2ØßöÄè1XZx
+Ô¥6º+U2
+-v·JÕç;f/7ŸqâR4€'ZBÆíÐÞJÊNfŽ#2é>Á
+]â0)ÌÎA2Vú+-(©Mê
+t)E@«%f#b1S"æŠ±ÈmoTížÉÒ
+*
+Ô¡@O'=E*E¯dŒQgÃ«L6÷NâÇœâZBI¥Y
+VAHo.9fRÓXa)U¥œº,vCÑøö«ac«,®­ºŸOc¶Ç{lMdÙ
+³ŸþÛSúÑù*©ÙIÞ'ÿ
+cØg[np#²Û \$ÃžÙ}IHp²[ÈB€ïK®:²£¯!Ü0f*ÛÈ,HÆ8
+³iœÆuqš8uÔËš!Ò_rZÒ
+éRÞnÏEjèäH­Î²mã{]eJÉt³c8óíöHQe5Ú}Õ[·[a	ZsLrJf	
+¥yÄßá©Èñ~³Kq òrf;A$­@æ
+ú³Ô«dBÚ>*ÚM
+;sWLo¶§Ú$Eq¢êîÖ}-©iÁÌd	g9Lì¥ý_ðMÚçl
+7r`Û×žh¹Mª2·;€º5dáB@BPÝÆ{YÀØ;EÃø}Î
+Æc¡m
+$×S-gGA¶ÊêŒÑ
+R²ŸÊ^õoý9^ðíjöR÷«éÊ÷j¶/î_×	¹ì{ñ}>Ë<AJR¬aJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥(vmPe].-ZßKòaœA:Öµ€fH2Gr®µY6cæxöÑ9_;¶œÎoçÔTúª(i@$È
+Ftâ¥5ÂWÅÕ©
+±Mõ#­§Eºc¬Asîú$»ØsINŽ-Õ)'"8BRä¥¬Û|&t)F8ÓÈ€º
++BÙÍ­8¢jo±áH±DnRa
+;éHQRVŽæ¡Ño$dzB³÷PŠ[j)*BIJcÔ#DV$§æ¥
+R¥
+R¥
+R¥
+R¥
+R°lq+g+3Òíí
+I²iã`xCh¶±.Ú:ná]q¥8±
+AY
+ô9
+®~ÊNñ8ú/åMVÍvýLY?€~8¬g²ŒN#þùSTÖÛ;Ø^=Š}ùâ·>x¯l×µ6ÙÞÂñí3ïÈ¯¹óÅ{fŸØ·á¯Ë³Mïä¯\Qv/úpúTÆzŽ¬IßÛ`¿Ö/ÉEfœþÜ>ñ­+wöØ/õòQ\ße¿ÖèöQgEw¬yåí3¥)\á°¥(
+5âÛ mãðå«Üâ\-¡-îïCq¥ÇzZÉ
+Jú`Â¹°m¯vñ|ÄØßËm° Çn¹;3ý
+ÙkRÔ¥°ÖYò
+nÓ?cÿ
+¡h)JY_e/z·þ¯xvµJÊû){Õ¿ôå{Ãµ[÷/ëÜö=ø>e ¥)VM0¥)@)JP
+R¥
+R¥
+R¥
+R¬å~~»yîAeæ}[ÎQŠ_¥§ëê9èËyÝlûSÙõ»fV{Àµâ1[8ÛÊ¡ÄŒ¡'$¡JÉÄROXV­Dd
+»«ñ_ÔRÒÐÕàn)ó9$úÓf1JR£.[Q0¶{{Y~tÈÐ³Ã|À<úÑš)Í0«UdŸ|«°Ü8¹!é·4ùÐÓn:Aÿ
+°ìÞßnØîÍkÅ6Û,¹Hb\¶
+Jžá	JB*QêN£Ë#^«&ÎŸUÄ<üŸ
+ØUÌšñHuŒp¡ÖR©
+a9,ÒPÊÖD8Û)Tµì²\os·?»P²[°Þ>ŒØí32
+9N2Û<ú* QÌuf¬žI«Uª\æ`)ýÖ¶¡YÎ-ŽÜyóC)I|>·mJPâŽÚÐ3<WGÎª²ºñ«ÂjWW»Y>{'ï¥+Ã1JRR ¥()JJRR ¥()JJRR ¥()JJRR 'ì©
+Cýß
+{³ÉžOEÊÅ
+R
+0Ã|%.Iah	2X*KžÛJV[R ¡CB
+ðõ!£{á¯ ·Ø"l0¶ÙKb¯AQyLßH:Hq I +4©I)RII­C»©Ïý±7:Sœp_é¿ùª4·	l¡Å±1µ %Íò[RóÉ¥tF¬Ð¡iâP>g	."#bÉ
+nÂíqwÍY$f/v5Oœ^DYä®µ÷jÚ6§%MÊu,µ€T€%.žNKZ§X 4HZ[Þ~-¯\§ß.;
+­žAÖc6ÂùJ[ÔŠ×»RÁ[
+nÓ?cÿ
+¡h)JY_e/z·þ¯xvµJÊû){Õ¿ôå{Ãµ[÷/ëÜö=ø>e ¥)VM0¥)@)JP
+R¥
+R¥
+R®; ÙÎ!Ú0NÃkÔ®N¹.=1âÛM6g TsRsP<
+«ÛrívÇ%BšÎ©œü7Òó.ä|ò
+IëñÈð©Ü).S7[
+òàµojcq²ZD23{Ð œÚÖ]zT¡DÖQ³±
+zÊTáK­¥ï*Ž­
+ìêÑtÙMë
+\ñÄ
+jà©MD¶"¯¿!Ô§2i©:iÍÔ
+Ï+TÓØ*VÄs¬2/ð¬Y6x«-ÈÌ7
+
+IÈ¢=Z«îÅ€ìãaq
+Î-
+KL6(mÒìì­× ¥Å
+œ%q
+jØÅÉÙU«QÖ]m%ée
+¥xH*õnl9±Ü3*
+
+T§ãL.šËqÖy
+¢Â³ôÒ²ÈQjÿ
+ÖVo7Èäî×Cb¥FZ¥()JJRR ¥()JJRR ¥()JJRR ¥()Jqì2°Y±>ÕcYq¹¹×Rë±¶ái§@Pýru¡$€æA û×·ýWãå¯vwî
+üçäÒ+ožâ
+þ3ÆoàMÈi2­Å._.ù!h390ØP)Sª) 
+QpMj
+ÝNí¹Òëÿ
+ÍXèÊà4ºHHl:ytJº],cy;F6ðÒíÃÚXp­Ç×!µ8µ %		<Â'P	£vRwÄÑ*j;ïíµ?­ªâqô_Ê &¶ÙÞÂñí3ïÈ¯¹óÅ{fœ©¶Îöi~Ex­Ï+Û5ô~Å¿
+~\œl_|¿%zÙê.Åÿ
+R7i±ÿ
+
+ÅžÜ²ì× -šÍãëN`æRÚV 2$åð3V«óîÃËCmJr,
+$$ÊæémÎdîŽ§<üË3Jéa°¶%»
+S,ÛZ>xÛ¯¯Y úI,ÇÚ9àNE*VK§Ììi]ÞræùO­ŠÔžìRŽË$8É Ë
+ìSé÷.ŠRÄþúŽ£ÆÔ=óèrç]%n¥V7B¥
+R¥
+R¥
+R¥
+ïÝ
+ùÏÉ€Wšð\xÚ6*1§]M¶ÏhŽYR
+¹ð
+Ý¶­LdÙW
+èšé
+C\s='v­±gC1¥éøÉV£é7W#¹Ä
+Ò³C08(R¬mÛd1Øm1:iŽ!¶ÉJR2
+R¥
+R¥
+R¬9ýPJúuüß"«udÙÏêWÔ[¯æù%Œ:)i.ó«äËÔÊÝY-ÝìoV­Ÿó:«ud·w±Ÿ}Z¶ûÌêRîº©Ý/*
+ÜK'ÿ
+o$ü©u¹Üf¡8­'@ÊJÓÕš9^A}|HªMInñ\Iz®UÑ4âéÕî¥R~8µÖdçø~)·ïÞWtÔ°tâ|ä%JQPK«VYŒOÎÃÜ6wfo
+ÊnúÚ{iJ:7
+é­i	Ía­âR8ê#gdÄ*àì+Ÿ-ÈfMÍe^x:ãê ?ÙÑ²^e\r *kFZÊùtíF8#¥Vá-]óËl{pendÒä+t«'m<åÐÅyó?ûæ÷s=?Ïä­çRG%Í)Q£®ÁïÓÂ×
+ûÊãÍsJZî[WÄ¥)	)ujÏ&@š÷;÷.þ¿®bçínßÇWlzö®y$¹ÆËº;HÃo+qîqä<³ç[i·ÜqGÒJP(À
+Á8Ã`íÜ×mätÜîM³²¢P²ÛeO/H9jATB5ðép%eþUÁáçùG$µèêÓŒtÈÞgéåÈôéô÷çÑÈ±WÊžo
+[æ)9:C'Ï%÷X
+ ñj)š§Jél$·>úÝœÆ¢SÅ»;^J/1s¿K'++uÙµAtºD¶Ak}.[ÈaõëZÔ 
+É
+IÊºÕdÙßÊ×ÇïJè¢Í	éÉw¯rúSŠ2òýwË+`e
+zCNªT€/âêÊ	Î;RËð.žN¶9áf9ow}á:RR§#°²ÊÔRmð
+Ià:%+œ`¶?zŸÛìñVÚ$OÜfá!KPH* g@×¹Êü,ö÷°[_DÕò;éÃøWDaÇ¥HC³Õ
+(*x?!ÀÚ8äŠŽ³;ÜÁ!IË¯Ž)
+?eµöäÇmíHmaHÍ!òráÃZÀå«,ÎY«}Ížæóa¡ÆàÙ"®M¹µœa-è
+-­qµmYë<E©ªµlž}K%Ökðš¥%gïåMë5þÜºÅ)J®mÅ)JJRR ¥()JJRR ¥()JJRR ¥()JJRR =
+ØßºóH­
+ÞÈ<U~Åû~ÄXlDúÙi2¢
+ËoÔ8!j
+R¥
+RûdØ
+Ç"_gâ
+}gÂ0­¡S\vKQ
+ŽÞiÖt¡g$+0sÌR®°eZîíÜËòØ}œAZ
+šf	"r®µY6¡ÓÚ
+öZx³:k£+÷l>wÍ/.±©·¬Dg
+R¬9ýPJúuüß"«udÙÏêWÔ[¯æù%Œ:)i.ó«äËÔÊÝY-ÝìoV­Ÿó:«udòŸÌgoº<Ÿõz{ÎNËûî®­<¥Œ³×Ã<Öùšc³§­®PôI7Ô|É²ÉûÈìÇë·å)¬ÞŽ<{!
+lkf±RûfCh¹ž¶ÆŽ¥R²Jë
+^Ka¶X@XlqšBsMñÒ°\ùûw}Ïÿ
+ÊÒêÚ
+}`9,
+
+R¥
+R¥
+R¥
+R¥è^À®ýÐ¿üEiœ¡Ý&zcŽå®1l9š¶V|2N£9z^Ø¬Ã°eç#m©
+Äzc­4òÑ
+ãÄEBV€€(õ
+JHÌñ q«Œ
+í
+6bDÙÆ(i
+6/³ùõþáê
+Ùö=€0ø:µ÷tÚmZÖàQ|,÷²Œ
+|^žŽ§-·á«UpüÙEŸB"ÝÙ
+qhP[{Àf<î®
+
+V¶Å)nìÂøÇ-\¢Ë'_IE:Ž9za$
+©7³ý»6so
+R¥MÚgìóÜ¬gdœóößõÞ[6Ó?cÿ
+åã5ÙÆ6/XÆõx
+}Áù-%ÀÂVâ$gã5û·Îœå©gž#+ôžÛ®Ïš¥)QMsâ|>þÄp}=ksv){y2PŽèt²§Öœ=%»ž äx5yÄduhÚXÞµ2ã®
+9ykl HRåäÌ%2RÎYªõ-nêÜÞ¢Î·rkÉµèhžìæý·\
+t6V»L·PµKNFlËeiã)v3G%Ìsªuh{Å²l»÷ÛjÝ&T
+Dµ£KòëÌòÌWÒŒÏ
+`AQQß)Ø²q
+¬¶ëN ¥hP9š
+ 2 ÖSOrI_
+8Œ~!%l¡ÓwèM.®3»dŸÝlÛäÛåieý<¢3­¥èïéÏNñ¥
+é$©'#ÄdxÕ
+ÃÁž§À6=Ë©×$&ÞÛ¡ÅkÍå
+ÇJ¥-Jxyåd§I€Õ|¯Ï×o=È,²<Ï«yÊ4ÃëôŽò}G=pÏ1åokêÿ
+F}=J¥Î8^ëÆïjk¿?.ÔRZÏ¬¬Å^@©G1
+i	i@Ó³ª£&³ÎÜ<¹íéá+à
+ZpŒuÞíJ6qÿ
+
+	ËN{Žä
+j·ÙÜu<CqRÞ;µ,®¢÷ËkÍ«Ùgw)ŠXØ:Q®R¶Ìöìè-;ïíµ?­ªâqô_ÊŠÎûûmOëGäª§e'xGýòŠ«pHMm³œ
+ãÚgß^+sçöÍ{Smì/
+Ó>üñ[<W¶kèý~ü¹{04ØŸù~Jõ³Ô]þÜ>ñ­+wöØ/õòQY¯bÿ
+nÓ?cÿ
+¡h)JY_e/z·þ¯xvµJÊû){Õ¿ôå{Ãµ[÷/ëÜö=ø>e ¥)VM0¥)@)JP
+RŽFñ®+Ä»*žaújíX~;2áGJô5ºß¶ÊZs5:ÒÒ¥ê(Ý5šÖwVMyŠ1?<¹3&ØÉ>u.ÊaÈíz
+u$
+0A
+AÓ®:Pœ±âKÞ'žÙ®[wmL¹×ÝRÕ_
+ÁorsYWžú£šötDl×W
+8w2æ÷¢Ö+ïhùOØ%µë§8\0äMÆï0Í².­yï3µeiËÏÓÈRkCìÄM²ÞâÅa¶#²­ŽÓh	B"ŽR
+yŽéel¥JÔ³¥.eþ³$ÜòŽëmyÛU±ä+çu`È}µúCÏº²!'€	5º€åª¶/§é)á0Ô«CwßI·}ÍïsY÷6VØiÿ
+Ò©.6Ölš
+Öy0
+M&ë:UÒé.ç9Ýô¹o-÷ÜÒ­kQR@
+R¥
+R¥
+ïÝ
+ùÏÉ€V£oÆHÖkåb[,n÷&äÛæÝ[	öì
+Õ©ŒŽ¡C$äxÖOØ2KÛHó,KSO
+y¢ëh_%¥J@RJD€)$ºôsŒyÿ
+YðþÆvîÖèìÁsjL
+®[)sP
+
+^iGW€@
+{=Îñçþ~âò©Üï
+éî)*¶ÜNÇjªØMÚMÛóeÒÎo
+Âá[t¡gÎßUötÛ;ïíµ?­ªâqô_Ê®mØâØ¶ã»ÆÇ·.é ÙÙ;·CH
+RdÓ
+R¥
+ÐŽ()'"98u©^ŠÓº1c4ã%tÉŒ{-·Þa[ÚÝÀnkŠ
+*J£Ê¢IRTÙB³:3uÑ²ZnËV»-¶mÎ{Ú·Qb0§sJJ¥		9
+ò|K­ÙzL²¥xdY.i³{ÎtÜEÎá
+
+W%€·ilI!nž :qG­G6ÎTŸ¢Ý7È£-lÅýçkœ7žÓúîTÊ÷œ\¹ZrË-KÏ<ÆMþš%}EºþoVcX>ožÒÔÞàq{VééŒ¢H­Õþ§ðoÔW?8LªÝZ1,wåÚ0DX¬8ü­+mŠARÖ£pRI9
+«ÖXkVžÛõè:.ÃÒo¹TR,å~~»yîAeæ}[ÎQŠ_¥§ëê9èËyÝY0§á^ó×lf:®	SªilME
+8 :ÈmG©'*Ýa<£õ·üá÷ÕëIíM.
+ýr}|Â­»#ÍØå¢cFåŸé¬·!œmYó­>ÐÀÌxÕJ­õÄµâé¥±!«Ûm+(ÊËu-ºâ3
+rQÈ×Ž
+ª'ÅVf:R:øIÓðÖ¯œ÷zRŠð
+·LuíßDsÃíê)Ö
+ºšf#0Os¬#)(®Õz±£NU%²)Ÿ£³ŽÏ3Æ÷
+_5îízÿ
+
+|
+Õ'jÝk:Vp4ó<cr~ymfMÍ|êÃ
+õRVÒA"A9xvo§.÷5Èq
+óÛšÍèeÄÜ©r$€ ²«<©oa­õÏK"Ç~÷©r%Î€ï$ÿ
+)Ù,(-Þ¯Mos3
+QJŠH*Q°
+d ¶€­¥=cÅ8s»É²Å±HJ[ÊÔ
+R€°Í¯oíê2­NI£^áÒVëºsZJÕ€q:r
+H¯b
+J¥9»$®ú	)ÿ
+å
+ùròÃm4Ú
+µJ@âI' "Ç~\Š¢ÅaÇä<°ÛM6¥­Dä8IÈSr€1`íºÜûoÜAjtæÒFJa
+H[£ÏñBïRÊ1ŸoajÎ-B
+òW|²Ù¶«~Í-ñ¬Ìà[-šÈjâHToXpKH
+@ zF³:RŒnï"X'¥'wÇÆ)JWB¥
+R¥
+ïÝ
+ùÏÉ€W««Ê=]û¡9ù4ÜnÛ:¹büQx¹NhÄ IŽÙ®
+© 1¹F¥6î{Žž^×RNy6 
+JòII
+ŒÐŽé	Èš\gÐö+UºÇiiŽÄn$(ÈÒÓHÏ
+É$ñ*$TI$I$]V£ÀQý)Nr³Öâ[U¹øN7GÖ¯«ûKn0WJ<o lï¿¶ÔþŽ~JªvRwÄÑ*j;ïíµ?­ªâqô_Ê®|Þ[lïaxö÷äWÜùâœ³^ÔÛg{
+ÇŽÏ¿"ŒVçÏíú7bß¿.^Ì
+6/Ÿœr=EØ¿è=ÃéQÿ
+L)meŒbCJmÄf¥@ ûF­žI+œ?OJ€"÷Ëäùìó·.Ã­J¹ìNtHLŽ®]Õ{ß©qcÄº1Ÿ©¶ŠÙSšÏAWY2 *
+âiøÇ]1EÍžíKžÈ/8Üvô6ø€z
+oyÉ+9§1€æIº¶
+Å·ìszågœ[ÑÌuºËBô%D$8 u¡CÄÓWD<šïÅìYLžÃì¬¶ëN$¥hP9š
+ À]Ü=aŸâ)
+ì·+ŒŠÚ/-1VúÒØ  	>®"»ûGKãÝ]~|»_{G-ÍoHâCž³ÃR
+	QâÒIÔHËQëjð¬D
+
+Ýw6¿-­só{³^!lÎ*nVöãoœ<&G[EÎRËz4j
+tòG5ue©gÊ[~%Å7¡lâçiŒ[ BAªjBæd
+qÕžUÄ¥Óólô+NB³«Z-ð¯VE|ZrZpwÕŽºSmÙô-,O6ye|Õè3eAZþ¥y(SKRIâ¬3!&·VKËX
+AoÞ
+sYW-6§#šöµËlÕW
+À·^TÎÏz²÷`÷®¥?OóZ_ÝaVMwÎÂ¿V¡ûò*·JÆÕ>&ïFt¯md×Z°«&ùkb{äüé¯¯VíÓw¥,Õ«ÒÝåK0Ú|ìUõjg¿.7§gÅ±ÑÒyë(Ý68©z&Fuy³¥¶Ö³RP¢xjHÇV£?©«VÝðêÚ×tß6ú/ÐVêÉcùWbIÍñrCÐ­
+ó¡§ä
+þÖžz²*áVêÉxó
+aØô^zléÍ§¯6e+Ï«N]}
+òÈq§ßõåï&Æï·:~åßúumÓ~B·JR£.K?ìóDk€ó3`Îq=Y0û*^}\
+Êrëéç@ÙÏêWÔ[¯æùÂ©üeõ¿Îé³Õ¯š·_Íò*Ì;º\,Òâ>ãÓÿ
+žÙ_¹BØþ%S)qšwµŸ#«-æB%Ò¢:ÂJ9qø
+4êžÞ¹BØþKÊqšwµÂ[HfB ²zÂ©ñž
+9QËZ\Iúr÷i
+YîT·ÓßåŒòåÞ{ø
+uY6æ7
+¥ÁÎhYÛõþç}
+qÛáÖsuöÃ«Vg 	º²XþUÀXs|\ô+bÂŒèiÅ9!Dµ®#`
+¬žfAÒîïÅVdºC<;Ô_4é³È­Õg^k~ôÓ6Ù:8`ñºc8XoOë^KEÖH
+­Ôºs
+'µ^·
+£æ³+u¯Nóv°­9ärÏ,³È×ÓfxÚr«©,Úvç¶^Kü«1=ÃÏòIkÑÕ§xéŒÏÓËéÓéï3Ï£c¿ùÓç¹?uo9F©^S£¬ç£>ä,-Èn6-rí.\1¹1
+då*Z3â€-*	Ìx+5+*N)ºsæ'ºÞ·
+&œ+u¯Vïx²­9ä3Ë<³ÈTõ5^Ý÷ëF³R8¬Fëx¶åÍ²}*3÷çb6¯ò!Ûì;<±óÙÕ.cÏ]juµKiA
+FSËÉ#vÜ
+**ÒèÓœRÑ;­\n,6ýÉä`ÁuHm$fßIàA4|ÿ
+Kî<õµ
+ÀyKYPSí &BÒOøyÌÎEEÂ¥
+ÎRWKüìë+cjÊu8p[Î{9õUæÖÜ¢Ñ.l\ï
+T8Õ¶2ÞÓ!pIP€-\Vœ<
+Zœ:¥*IÉÝ*T£J
+Ø
+rÅü¹MEÃÈya¶mKZÈ% q$c¿.SQb°ãò
+XmŠARÖ¢r	H
+I$ä
+Ci#%0Â$-Ñçø¡w©O{ß7°Âµg¡y?«ŸOX!WmÖçÛ~äò
+S§4°€62S
+(p BÝ
+wzõ~Šbž=±ë4žü]¢Eò®ÑK 
+ž4%Kâ6}iQP:Tì|òaIê·yK­ÛÜº\fgJR°,
+R¥
+R¥
+ïÝ
+ùÏÉ€W«Ð§q²êÙy³©·rRVcÿ
+¡jköõËü*
+ ¥(e}œêßúrœáÚÕ+2ì&á³ŽÀÑzLa[fµ©BGTU±rþžMÏcßÓéöYá¶bYñ`·mÔkœ­Œ÷pg¥Km¬ÉQÝ)%.3²R·jF¢­C
+BR­ÆN.èÐÕ£N²Õ¿¹ñ®'ÄÖh²r
+/wèZ&É²ËêDk«Éu§¥!
+$Ð
+èê
+¬A¹qÖ
+^YEÏ0 P¥º3x¶A9¶
+
+ÈR)$)U*œX±%ðláÛt
+
+IJì'À~3ñ- 4à-ÓÁ$
+©%`'Bf£8žŒžrääæ¹«ÄR­«N­7¬»IìRµ·ÖoºQY§µçbJ²Ùk×ÿ
+Žc¶×aŒŠÄ¬I[¡Ä¬ ;*CÍêÒND¶ëkÈñÉC1Uz¶ír'7cíjKøPa<äw5¶]f#-8ú
+B#"á^ÅZ2÷ûkË[J$¥Õhÿ
+žŽFmÄ«õªmo¥ÐG
+Û
+9ùDqTn9áf9ow}á:RR§#°²ÊÔRmð
+Ià:{NßYçê·YNïñzÜMŸ­TòÚËÕ	JR«¡JRR ¥vmPe].-ZßKòaœA:Öµ€fH2Gr¯RmÙÊQr²DÝ·æF
+wGú]Õç-:Ùi	mr|
+T ë-	
+}*
+FuºÆS¢Êº7Úîö×ldBæê¥)Nä¡©;ÇãºUNóNy$SÁ*èäË[Û]±6szwšJµN€ï
+SmjNe;ÍYdRIkIAp}7õÀQ£=Ê±Œ³·òÆÜv²·
+~2[0,ø6*ÛjeÑmÜî.ºHmÉcY
+©VUeeeôž>/JR©<ÚºçîäYF7Í(ØW,XïËÔX¬8üiŠÐTµšRI9
+Ýâr+Síä2úÓÿ
+ôu(ÁjÍÉ$Km¹vs&ÎûûmOëGäª§e'xGýòŠ©³ŸþÛSúÑù*©ÙIÞ'ÿ
+R¥
+R³NÉ	Ò­{?nçÝÌžì9€+BÐÓªIÈDeZ]e}œêßúrœáÚ¯v€ÚäõÏÉ];û,ñÞ5ð»nkunËsa (­-¡Ô
+É:÷K+d«¬©¥fÌJ²@ù··
+û6©q=59GÍÚ
+dèVO%#$¥&RÉªÝ\šõÆs9KSrŒ¡åâ}+o-×
++¹CÅ§3ÈPREVëHÇ8Ç³'ÜìÚëÈº[æZMŸcMŸÈe+RPŠÔ€¥ÐT­Ícç¥)õ±ÎåØŠd$žÓÛ¢àÍŠ;{©qŸÛaõP¿õ%À£5h
+*ÑÞÚ.ö}?Yp\ÙaŽÝ£RŽuH'¶ñËýÉ^J7µÞßa¹pwsýpæºTŠãŸ
+2òÒ
+­×)ó¿WýwxÏ&=zÏÝ©Ó~LÕmÙS.5ÁkKnØë
+GÔŸ\µ"
+F¢rNFP^gÑ
+õ
+i-ü|-&àÛ<éžP·(+[rbGZ%pKP	
+sÃGZ¢+iºÎVÚì­Ç}«¥_f|Yí°óTÌ<ë¶þ	
+sCíê	-Nå
+dd®	JbD¡	Ò
+F®	ÉkC¹Èbá}ÆÖXo·2;VðÅ¯JÂÐò`)€¡ý^w_$eõkg©a>|$ÑmPe].-ZßKòaœA:Öµ€fH2Gr¬ñ/^w\ÝNÞ«ô
+V
+á7d¬óàN)ŸmnŠž	ŒMòÃVÁJeëè_Ïuõè
+R¬{æ^»_üìŸeÂÕÃçÈW(q9ð^íIË£Ê¬ÒBs
+ùròÃm4Ú
+µJ@âI' MãI
+7*=íœÐÀu¥
+7!òs}ðG
+/¢
+ä	i¶AâÔåõr+÷²ÃòWK²·
+o¯ÕÇ0,ø6*ÛjeÑmÜî.ºHmÉcY
+T]/D(
+°Fª|ìexxfàùB$Žóº8CPRTB³"ãá^¥OO
+FÝÁ.d§×ìJÿ
+¡jköõËü*
+ ¥(fÜžìý»{''%L
+ èZò*iÐ:(
+QëêH$ú@¥Ö_Ù5!ø52¢ŸãŒiÖÖRŽ(2é
+I
+Afªø«nNü³o >
+;wÞË<b°Üí×{=Û
+ÜYez§o
+0Üõ-µŽúÚwB€)*Ju$³IòâmâÉ
+Ùpåîåk^¡IRR¶\H[yºÒKkPJQA)Ô##Q8î;ðÍÒ
+³ï¹í!€6
+/4Œ#­(CéyŽúÔ*(òCù±&Gsý&Ã¶
+W§×PÓgÄô]q¥¡#$äI*¶[Ìà×.ßñÂ)<Vó«;EÞ.ù»+ÚI]K'd¶Œ¬VéVNßq²º/bÛÜÏ³&k4àôÒ¶ÖJVÔR A§n
+ó;
+
+Í|û
+Í
+6¯SÍ#¥·SÈôV3Ë#$mOõcºbÖnz$ïÑx¥~v¹ÐóKg"/YŠÈJxfÃá
+ŒµÀéqžH4YÉ@fÝ_ðN!ÃR1
+Û¶Úà\ŸQ"
+çÚ
+¡ÜVç([šR[$:BÛmZ
+Dšø3;S£H²Û­8g­J"ÉËE$dAÕ­ÓÆIÓRjKêü¢
+\©U©Nt€t¶;_nQmœòmÙ=¹Ù
+xå\-þr»ŠŸ­;ÇD}Þ^\V¯Oy]
+Ïvbç±ûTDlÎ²];|dŸM!2l5
+ÈÞ¡rXŠÍacÂ!CKh\áÈmå](°dÓ'£C:ïl·
+LEòu¬ÏÂRa_­-­ŒõÖ:³[Õ
+ik^ù*ß!oZsó¡CÑ¥'SW%ÇÀœæº¶:0n«m8NRWN7ŽÝÒœ®Ün­Ý
+K|µ0ÅÃÎr~WkÑ×«vèŒÏÒÏiÓénóÏ¥bop¶»*K/[Zþxã¬/X$úi
+ÈÚI9ÙNA)NsvÌ!ÁŠ=Ó
+^áFe.hqØ·¬»ºÈ'-!©/¬Ÿ9	gù{_`ùç-ïG¹¶WÅ-µšÇx#ÔRÖôbG
+SÛ¯ðs\ú·æãßr+P/Ñ[œÁiŠ
+":
+:]á'ÌÔ±ÀgÇ
+©¯«Qkæ¶>gúcLèÍ×	SökÆk}¶9EëG.VõlÞÌÈKŸ}®snp€ÂÖ[Æ$4ŠÜF`TŽjoý/f?žæ«×·œålÿ
+%v|×ñ
+×&TôHú\XžÐÍ{¢Ò3[j­i
+ÈæJ9Aâ®î;¹¿/	`ØÏ!²MœÙ+tµoU ñË$³	ê$æI5N¬±Šç±õñçÅÊA¢0øÊxk9Æ÷iï[îwà&îxCZà¹:ç/p¢5ñù
+mŽf@©I
+¿ÉÄoKÃóîS­6Iq¥á(ÏÞÛ
+&n
+DÈºÀmÒX.§RSØ¢ ã$£òò}'SŽ§8+],€Û»
+³ÎÑ{Z\me|r¶Ì;ß;lßQoü+7íÏë
+ýŸáúUi¯V(8Ãjrf¹3,324ÅF¹!-ŒÓÙezã.)AYš(fU€#4èÏ
+£
+Ü§òôìëWJ¥$Úk7
+Óþc¥Y5àY^gÉ±%.ÿ
+I $Vs£SV)'ÕËþ_
+€pœiJ€v€·Ë4¢YìŒ¥Ë{ðX`Oùúíç¹Gõo9F}~S¯šç£.æ+uv~Á}Ãû7Œœw²Ü­.J¹Á
+Ê¶ë[¹K[`š
+IÖTGVhA<@ªMGQ8Æ1Yÿ
+€+U«V-<ÒMq(§ëúB¶Ìó
+@R|Êc;¹Å>íËX=jó8V d:A	ZóÄXïËÔX¬8üiŠÐTµšRI9
+à^·
+¶æ±¿jÅxV4â-î2é_2>|èóº1çª'g+_œ+¢4'§%ÞœËéNËËõß,­Dqé
+:ªKiQ¶œp¹An4	v­Çc4Ò!€­
+ÂRKAAPH!9«,ÏgÁ­{[<@Š-ÊmEYÂa%ÜÉÍM¬IâNj
+Ý
+:|iEœ]oüuµé$Za
+×º¯åÄ®Üûc<«oÐ*ÉoùCg9;zë5š,«¯zÃ@œ!u''
+%fr'©$b»Ø+føá{Î"µiiI.!n¢
+ uF~šë®:P.Ñ°-fI×{#bþË
+2Ý¶K.¶æOÉBÍR>P BiC45Z
+íH³¹Ê]ÇE\·¡Ê©Éì%$é@J}0JIJo«àØ1e]
+rk{k¶2fÎoQNõ	RR³IÔãm­IÌ§y«,jÄé»Æ
+éðõz³5\\\jâ$³ÊË
+ÆÛËqëfÒË|Üx	nl|À³àØ«m©E·sžºé!¶[%dØZßRÓÔÈPÍ®ž²æÅÎð¥@C[c!1­í8
+R
+ð)dèqC%q-!IÒáPB:ÎÃ[qŠäßã|
+§kÈbo¶Æp³\
+;©w|øTœ
+qâÓn©9TèQPJ4ÖéJNZÌP£¹BÍÝŒÛãY.%eÀ)JV$Â¥
+R¥
+R¥µö wÇOý©zœ^7ì@ïúÿ
+R¥
+Êû){Õ¿ôå{ÃµªVWÙKÞ­ÿ
+žÚN]¹ásOtS¢PH
+T¢
+Â!(aÅfšÜ3tækä{å,§SrcëÑ¿aÄ:Ö¬N¶ÔŽê
+F¬Ç)
+îË`]TÇ)n;ÉSÑÊôŠC]N4£è­H QÂ×Ì×Éô¿ÊYN#HÑ£~Ã
+iÝ9m©
+ÒxY
+ ÕëœU5µ}/®CTãºÔÃÍof¯îäà|®MñMkækäz_å,§K€hÑ¿aÄ
+ŽîÉN¶Ô
+i<F¬j6¬`Vn
+ÿ
+²c¹«'¥ÎpÊHée)2wZÿ
+ÐŽ()'"98MíõAê-«ó|z­×µ[U
+ž=ÇÆŠ.Júêípo³k>£LŒÍEn	ÄLØ6ÛÒÅÁÊyÛ%n7€«ŠÚ^p'PÖßQÈŠžðÕÿ
+:Âê·³ë5
+ÜPÚ-ØÂ7²­ÑcÍ!%éÜØXm4Œq'0áèñ9
+Ò&í
+/ìM¹*©;*$t8ÎQ
+ÞHuZ[¹¥#3ÉÁÔs	¬ŸÁs~Ë}·Þ"¡µÈ)¹-%ÀJ
+  ,Ç
+«uçV5
+Vv|=<='?¢ðµj`k`¡VWŠå·»3ÕÛ¥mîÞh²Zq=§|l÷Ü6ä):JÛvõÇ
+9
+BÆygš%Ô$ñÉ*
+;²°©±]zçoøL²³.=ŸS°3Íä;©Ä*u+VINA¢s5SÆÆ,žÆõg·
+ÁøÍ)Â
+ÊPâ
+
+0€ÄF`¯¯œV¶rÿ
+uii/(6dPrqZ­Ò*]¶¬ùUN>Ÿ?çRµ55hËxóµ9k<IŒÕ¬óâã¥m·ÍÙÃ+OEV«b0ôŽ+Ï"dD!Od%!@ñ(V]
+*Vo[>'6|QjÆåñ
+]ŠÍÌžöÙ^òKO¡õ$«tŒËgt*³ÍÎæÜå-º¿îÜ¿KçÛæug×óŽå\rÔpÅSœMdÖ\Å­Tðjá$âÚy^ÎíÙ¥y,³Í,¹Õët­"Õ³kK%óãZdNÐ\µÉTÔ­Å¶Ûí¥,šõÜ f
+ ³NŸáÛ,iSyãÊ[ŽìIìJAR
+ÒKKPr9yáPN
+H-f²úÛÄmpúW	©¹Â[íªé«ÞýÍÒÖØïkÛ­!¿4ÙÊÞoŠÚ0£­iâºâŠÉôëj#¬z3ÍëH°÷»MüŠÍYáÿ
+Òt²ÖŸþ\1vááÕ{8³à4
+âhYnöëUÇaÛu*PÇ¥8ãdžâ\KM:Ò
+;îC6ÁÈzµuäXï8
+ûåíbÍº¶¬
+Ú[Sr
+h!RÈÒ§
+ ­Zä¥
+úÖß[!UÀtdÍÞî×§ÊJ££xAZZrO
+ôòñR+xÿ
+BOHd)«Å^ÞŸnKhÐ+%²QRi+§e
+7yÏQíã[
+®Yýa¿Ž\?E§j/?ÓµßðÝÅÁNó£q2WîtJÝ,ðÈê	)ã9nO^/lz¯þNözñÎ5[Ì¢×¡EúK'i7ÕtYrÉ%ÃÁ
+ÆŸÂy×€6J£ÔI9
+@
+³gô
+tj^Íñ-*¢Ùñ
+ÚÛ
+k.)š\iD
+îöûÑ{Þä¶x-3\y§Š¶²RŽ¢ÌE-Oõ­YjÅòë5èÕvëen¬å§bupU¿«U1K`xjA*| šGP#N¢
+ºÞ?yá¿ÁËÄÔþ(Äš·EîXnÁpÚ"â9*¡¥T	
+ÄS!E€( V
+é#RSù=k§«TeM=m¶Þ¯ñmQY¬¯tÕò(1d?SR¢ŸãXq§[YJÐ s
+I
+Af­¿
+á÷çãÌÏjÜE»LnÉJBXcv¯§wš6%Å©0­3YJÀ!&šž^v¹ÊíÏÚX¶Ûâ®dµÃ1m·
+¡jköõËü*
+ +ÛN"
+Í±Dž»
+Cyn4ëK)[kK+!I# AåÇ:ŠÎÐ1HË÷WÇêõ3¯Umgœ^-ú7ÞXôëNW		K,ôT*J=IB±±5(k\v9ÈÄÃh«yÄ÷»¬g¬ò
+KSg­öÒŽœ
+
+Âø€(V(^Ä->wf|ØÁä7þaÎ#íN+®­ÖÝËèºãšZIÈàTM=Á
+¬Ü=ÿ
+c²MÉ¯FýPëZ²%:ÛRÓšq³
+@Š&µó5òEœ/òS¥ÈÒ4hß°âBÚwNd§[jBŽ#VG5#ŽLyÀž/aúCížÂÊuµg¬(q>Dÿ
+Vy^âc«ZKÃBUutu	=º©>t¬×Ç~ÎËnÜÜpö'Ãrdžô!s·wAø 
+xq¹<2'Ok­#åíÅ{­ËEÍqÜZüöêKzÙm÷)\y*#ÜÆeJË­/-áü_l»Ho}eµºC»Øë7¥}©µ-<}^±×Sp­|ßq	qþPÛlÌJR2J]
+­äºÉJC.6y€>®$f7ÐK{×€­ýÆ"ràÞÏ«y>
+
+;m»ÈÄ-`1póÚôuêÝº$o3ô³åtú[Œóéd+udÃÿ
+8ÔÏ|Þí6ÔŸw+dšåçu-)Øí§Ó*2c 8š!D&ÚþkHÇ€åÊÒ:jo~Ú&1Œ__äŠ# 4¢Ëßáò¿¯qŠþ.X«ò[cço[­mà­íÍ®»}(Òì°w
+ýÖæ:#¹Ã¬dë§^Æ`kudŸ|µ°Üç89
+é¶ÄùÒÓjnBIÿ
+°xémÄHê
+p'ÁþZøb#^§œíkÙ=ìj_bK-ek¥{íÚÖ]ZFóMíyÓäüÝžÕÇuŒ7}M[Šµe×»F~te[æã¥`¹ò	'ö>îúþÄ¬Òž£Œ
+åJw§ì)¹Xp>Ã;c.uŸ
+öRº
+m©­ )²3K^ôâTRtpÏ<Æ"á&ÞËKÙdÚVŽkÑ
+8å5R³ÉÙU
+ùÕ¯ºy€Ù²ÎùØWêÔ?~ErAúvOyŠ
+ÜŸÀm
+
+RXTzi$zZª+eó°¯Õš~ü²úcþ¹ÿ
+&JÒ|îKRÉ
+8éU»TWK€Kd·ÒåŒoPNµ­A)
+ŠÓ¿`×
+ä8|
+lÖ,¶œi)Jà4wÐ
+*m1¡€ÎÔ°j^bgysÿ
+R¥`ÀØ7®Xmèv®Ou -µ©%-
+jBßS-šÖ¬ñHÍBTåÊvT§Ü~CË.:ë*ZÔNeJ'$É5?}ù XÂLÝÝÒáô5 òVý1ÑiÅ9©$gÊtšfÝu°l²®L¹5œµÛ3g7š§z©)KY€êNñÅ6Ö€æSŒÕI53Êúÿ
+Û
+)cc3-í¶Õ¢ÖÓm!Ì#HÒRÂHÍ:ŽõWiîMÁ%žâ+º^+ÚÕ¡ÀÜ
+
+Ù)
+b¬b
+çMpæùžœò³Q¡éŒf*xÙ»šÞ1|WýäºP
+ØË&*ù¯l
+QÒyï.q"RÑu]gÍÉZu-ÔH9d)üÓ
+áé¶cÑÖŽñJ]LÙ+SdúJuµÖ=Jõ°lè±nC¹;ºµÜÙ0§9€«t
+)*K¹$jVíÄ¶îäU»ÓJ5% Ê¶ìþÏ
+k[·œ\	AIP1à©*
+%I!A@ A
+EÝFSäÏë×ñ/¿Ü×¥|n>N¬òÿ
+JA
+JJJH!@AëR°Öw¿	2¥Os¶öÖ·ž»³`¹z²µ»eŒØAEJI
+$²IBÝ®Í²t«lææÂwvóyJB A
+JA
+JJJH!@Aò+³¬°.:
+å[ZZÔÚFeæ
+Ô¥3Z
+SX%YÙO5·ëg×7%u9aÞ¬óâä¹ùÙç*ý)Jž)JP
+R¥
+R¥
+Èè£é¥HVmR
+ð**Z×`¹¿eŸÛïPÚä@Üà%HPP
+
+ë`1nëÛ'5Ÿ.çÛÔS­
+u)PÌF` çXI7Qjðìúä,Ò)àæª«ê§­Ëeÿ
+2y¥ÏÒ³õ\³€©Aºu&²Ÿ«ògœ¶Õ¶ZŒ¹dvpÕ¯v°6ùCrÞzÐÌ°)[RÛ\vä¥9I(y.Jd¬ª€Õ|·ÞIRíÇ|£hv11ÃcÔVåžëP'<Ý
+à$Siiî®tÝÝ4árŠ#w§§{§W
+ôçÏ!íDµ]¶'ë_àÇRN¬\Ýå(ÙóÂV}nO«(Ü-tæ<Ojœn9G7ÍfVë^æíaZsÈåYg­"ókÑæaU?Ÿæþs·ÇQF­ûkÊd
+)ÔÄ¹MúCVOQÖÙnièº15Å|á[1
+t¶ô÷æCó%žžÅÔ-ÆÜSêprYX!I2áwÉÇêÜ>€~µ)Ó«{>Y'œêÖ²Y¥n+gvHïÜð
+Îß&Ìjí	ÈÑÛAqÄ%Ä>ÛBFd/¡Du«t
+5ÇÍv«_ßåW&øó;HPÐ±úÉNfßX%
+ë_!E
+Åµ¹
+Û.Øáöy
+²]C±§(!rße-	qn¥z^e ÐÐ¥Á©*ZU¯.šê%žZË©ýr°R©G}HÊÒImjQKoÚK}|îžeï8ås
+Sq-­¬-«|Dn£¡@R<úÂNâÊ 
+J5?%Ï;!Ã
+œ²ìÙm%{µRÓ-¥f®K%§4äy
+ÊFTÒ1§Oe6;[ÿ
+r:ò8â
+
+fârR@Ì)$(µ€l+öùüLžÿ
+M_ZäÚK­<}<ã­hQ$ÐŽ 
+ãíî-omÈx?pN¢2Ð.>x
+\BÎIé
+²ª\S×áÿ
+JÑ²úãã¡ºâñ.Ä^yQÜzvž0
+%)Jb> (u8œM²×
+Â[i
+Ö¬ÿ
+­Ôu2ÞñðŒN»Û?Bà\û[âmRtW,YÄÔš¯žÄV
+iÖÖRŽ(
+ÂGA+<i5fX%Gbÿ
+È
+ãNRWK"µ\e
+RÔ·×Ðoš­Ò®×<;ìžyÉ³¯7)·Ù
+6Xi©jÈÔJÖàcNJHqŠàZ
+ri47fy
+ÅÓÅ'*w²v»M_ùå³.)JV¡JRÚû;ã§þ¿Ôœ^ÚÂuáÑû«œ¬hG¯1ö wÇOý©zœEŽÄêÃSêÞí#ûF=V£ÝÕçþØœ#Þø/ôßüÕJ\L^U#|`ë/žN·ÏÏ³Ìú?äøöößA-gÏýlÚì=¶åIJäCB¹C§%IlÔxøW>gsŽ{ÂYó«šçþºugWSe²³>ÊNñ8ú/åMVYe'xGýòŠªc\Mm³œ
+ãÚgß^+sçöÍ{Smì/
+Ó>üñ[<W¶kèÝ~ü¹{04ØŸú~JõÈõbÿ
+RTrHÔ­ÛmÝ)È«w§<jK
+ÐŽHJT39UJŽ
+óRí±o[MØ<¶¡Ž©
+©=CR£Çq Ã8áKP.gQÐßJ+
+?¯YsJþæIÿ
+R%;¹NpëÍ(È1Ò¬³ÏlË?wù,ãp®µ$â»KZ]ÓÖÞ;'±o¶I=ÌîÚnÌwDÃÖÙ0Ü³Úà/ä³=à]n3¯8%%ç4 J
+F_®N£J
+ø)ÊËnŽâ
+V
+Jâ#"
+Oíåã€ôyÌå;ÕŸ}IÓ%y~·å>2È
+§M6æöï9?;¹=ÎlçÔ€
+
+zu 
+
+LunÓ¿õÿ
+`O9úÓçy}Guîù>^®M£¬e¯>9d}¥mÇWù1ÒêºÜÔ[æsMõ(>;ß®o±îtX;^°îè!âÂÐRT w €O	à%*á§1@®õæýûoŒECkSrZK!A@(Y9]ilbËoVx«qqà\Ò ¬¥) šy9X9^\Múmð,Bié	Ôá"ŒÇ+ôï×Ò"+HÚ×OÙ¥«ÓŠ»:J¿vûöëcÎ¯.¡©Ç¬@g
+íž¥Ó$FìçõA+ê-×ó|²cþò;1úíùJj6Åkæ=£ßìþQÍð¯qwº4ï7pä§VY³Ë<³5ÖÆs¥9ð5±nç=²Kí7€tVäé	YÏ,Îa€p'!³ÞQ_*ôÄ¡K€põiŒº
+:ëÞ[o	ö{>
+i&ÞòmÈEuM(:¹Z[€©M¶Ú	ë)BAà
+yä$¥6ÚÀâ8Äu¶0)«Š*¹Ìwy.ÔÊl(q)
+&ÈSà
+RtR $°Í¯oíê2­NI£^áÒVëºsZJÕ€q:r
+HŠ(ºsÖ!uK
+¹)LÇ
+Ôíu6ÒNC¢ 
+ôzqÿ
+R­;2ÀxhV
+6Ë
+êêx6ÛIJJë=%$d<}LÈ€uZŽ<(Â-Jÿ
+pb+åÈ»qM©u.ºÒø¬6ã¹(»KzJ÷ÚDiÂ°Ö3ž[ñ-Ôk
+¹ÜRPúŽŽÂT29¿	Rs!*SiBãÁ¥\±té³]Þ<åè			J@·>€
+ÐŽ()'"98Ibž1[yœ©­ÕŠçŒv3:ÌRB£)DÔÔ
+¶²W€F÷Ñ¿
+õp}s!ûÚÃ<×k§jåÖä!)JTeÑJRW,YÄÔš¯žÄV
+iÖÖRŽ(
+ÂGA+<i5fX1n3Äž­¿\ÌŠ °ñZC-²Û- d%
+¥)#pÌå×UúR$¥)CÑJRœì?fw-ªã°í²ãÞŠ!®c¯H
+ !*B2HHâ­N'¬g>
+ãO±ÝŠ[±óÚ×õÆqJžŠIÞ¡E%%žáÇSÔ®*B@Ë"A <=ŸáÙ«ïW+D¥¶Z[Ðe-
+©RT	¥'.¬Àõ+§:T©Ó_6KÒ¥HqNŒóË+[«QÍJRI$xk(Ž¶«Ö
+I€¡-^<®ú8J|ÄöçÁùôËÝíÁÐ[qnYúkCËÞ©iáÀ)€'ILµémWVðÕŠÙmeeŸë\¶Tâ
+ã§R¡9(£y
+OZçwÜ-6(ŒòKòW)B÷€RêhÈ
+šž€%u	XJ£œïwÇðúæã,PÂEÁAGRWò¹98Wtóq\²€?.S²¥>ãò
+Yq×\YRÖ¢s*Q<I$æI®*R¡6)$¬
+)J
+R×Øß
+?õþ¥êõ.ÑvH#Õ¿Zöjò×b|tÿ
+T0Ý§0Gwóë*}Ñ-~éuöRwÄÑ*jŽÊÌû);Äâ?è¿5S¢kmì/
+Ó>üñ[<W¶kÚlïaxö÷äWÜùâœ³_Gì[ð×åËÙŠÅ÷ËòW®Gš»ýž}*?ã=ZV$ïí°_ëä¢³^Åÿ
+R¥
+ öR÷«éÊ÷jîÔ×	±ÑqÖÒ±OþË<€7qj»[äyä"BcJINü
+	@Z2áPBRm=SR«&	ù¥ÊðøóŸGþÌæõn=Lõëq$%;ýgÎ
+­ÖÂ«ÖŽøý_ÁEQRÃø;<{>{Ý6ÛnÚÏi`ÁrrT
+÷Ûf
+ÝëË	n;àæÃä	_EkÈÓÅU-`>Ý€#ižá,\9
+©)[i)€å©:Ñ²Þ`ó3ÓaÙûølO±u¶BzüTTŽã²NÔÙHó$osJD©	YÉIÐµüÚÅö§gïmwx¥	m×
+NAy8ãÂ@JB$ÞbZ7v_Yü¯Ò[\¥µpóÅ]®ySºâ²\e;ÛŽbY°a­Ç 
+a8ánÆpZ²"ŠÔ
+#<ØÄ²eœë7@¹Yn1gÈÜot1É\YVÄéSiVIÈ9zf£d|ÖÀQ]GK±Œ¶
+®ÞV¶õšx¿©g,Ì¶yÐŒOŸ,Ùn[×£\7ZFgšjqÄ gÖ¥€$
+òÚÑÙtþœD«ÕÑµiMïoîO;«Œ€{VÒëU®é.Ù9­Ìž-ÛÔ¡hQJ`r ñ*žá«
+X¬·ÈqØö[­ 
+nÛå¥Ån[Bvj%*äd®DN(ù«fµâ6ž©,µlÔÓ¬64rã¥+e(Èšæ¥¶þ@%"­.Cø~|L!o}ÈëâlÆ[	õžKXâØJÛBÓÄ¥õ¡IÖÒrÊuje³êß\ä:BŸëŒÕî¶%dÔøÝ¬ÚNÏ7
+2ë
+"á€žxºå»å¶ AA\ÂT@YRÀKM¯IÉjÔŒ
+cnxSÐ\ŽÛSÍud
+FH
+|$!À}ACVkàN¡9$MÎ³JÄzËähÌŽÉ¶ÜfËt4Ú\§Aÿ
+T®PBÒF9÷œSbÔ
+gÂ·€ÃdîcÇ=ÊI:CébIÍgRRFæiJj·ÕËlx«©èÈåVÃ6:^kVoÄPxš$+p%Ä«"xëb°FžyÎOÊíz:õnÝ7úYòÍ:}-Þyô²º»Õ(®/FVê³(CûùQ­+¶ä"sÖIßdâ³vY&±*;ñ%;S1!ÝiÄ­
+"ÄFDÙ§c°SóË2mçRìŠ
+ÙWš·RIÈÀ¶æø¥Ûžé&ðËW2ŽüíNŸ·ÂîPñuŒ³$TP©Ò­wH8.îeÄy°æ­
+Br UUjuyœzØÌ
+¶Nqêm{7pùgÉ<zÕ5Ø/+«tÃ =
+u+7Õf3#©D
+ãÍãáË¢ø=:ÊÖõ#ÎÃDF^ã Éé 	¹pbŠù0Ä·vél®ígIQ)JIÃ
+Dëã
+o$%YN§PfI,lÆç¥È/RyO¥»å
+±¹ëëÕÉêÏ-
+rÍ9Ë8»4øœ)ÛÔPÃÕ%
+µóÛ«R.Yðg<*K7µüÂ>#º#Ðl®î|éßžÜEçéðnJÈÈI9AlÏÍ1œŸßÕÎË^¿ü.TÒãï2ôôïuiá³æÿ
+$©?êX6èo2
+ÀjqÉjI<UÆd#$åÕ)Åð5è¿ÅW©cðµ òf¯É-Géj>£7­#jÿ
+[*%EæD§¢¢x$8xd
+^® ìøÚÇcÝ
+
+¹9c»Q$%ðTëá
+5!eÔ!Z
+ãµo|¥Ä!Û«€¡ìÏÌñœŸá×Í{ËŠü^JÒänóôµnŽêã¬ò9dt£üÃº] 'Ì»]²¹
+s\~B	²µ~¹ÅÛPÓºP@ÔÒ€iq5s
+6éJsÏë?EìgMaa
+u
+6xÒm[Ž¢ìî»­TäÓné_ac^Uç\/°y
+»ÎNÉ	ó'QÖÒ³!m$š8×]¥y/gGlÙZÚNànÖàORwºR3é8¬Ê$Élýy¶âHÍF¹Ièû«Ð
+õGc2§ÊJi
+Vä$9(:T8€U÷ljÁ8?ÄÍv(\vY¥k_F¶RÝlÒ;ÜÔ¡í=Uuuãœy·êÿ
+ â
+Žš6²ŒVP¶Ò~]iI9³ÂÞ
+)·R{6¿®WYÏé²§
+x,3ßeóÛ&üÞo
+=GÂRvµ\ÅžÖUÃòÌç
++XJÐ¥€/5¥+Z°
+PIR¥*¥IºrÖt8L-<%P€­«/®>1Wm_nø©Ö×p~
+ÇíŸÛ»9¥çŒÌº]GRm
+JW[
+¥a+Ê¯b¶?xŒF¶F[m­õé.ºHm*qd¥H*R²àéU±Ë[^#	Zð»n
+Ýc8êÊÄžzÛµ%6­®®'Â³¥+aJRWvÅi¹ßnñ­x/Î){¶#°¥­_@¡'Ò
+lø`Ìv$¶TËí+JÐ®°ýÇÑôë€q-âUþý2ó1ží¿-ÒâÑ
+ Ûhõ	H
+ß).ºMââÚQã²ž€$H¬,I.4®_.šŠhS²Ö­Äâ§žÒ»|6øì\­ìà»²8çŽÚ·|TÌBÊQn³ÀÝ
+
+@
+
+,6·IS¥aC^µºKÝî}ÛrÓînáFÔ!ÂhšGim$³Èf£zJ*Q$ô¥H~\§eJ}Çä<²ã®ž²¥­DæT¢xIÌ\Uª_%°BÒmlâ\ËÖöŒø,¥F\¥()JJRÚû;ã§þ¿Ôœ^©Ç
+Û?ÎQ«ÊÝ
+ñÓÿ
+¡jköõËü*
+ +;YïW~¢M÷
+ÕÂäÛ
+õ=O\­ñÊIzBR¬·Håéu
+º§ígœ^-ú7ÞViìÊ~÷q[u!ä
+ÐF{ŠýJ¯ü]
+ò#¥(ÚJ^iäó
+Ø
+¶­I Èx¡vR÷«éÊ÷jñzKÚmÖÔÚÓd»f
+ùb¥T~Ê^õoý9^ðíC_î×	³Ñ?C§Ùg*ÉŸirLX<ï¯³9œ;ÿ
+\ÂòDTåÔIYPXóÜiãQ²£BµJvf)uËœéÕ»n­+iÒu-ÂÉ$M¶­|V¶Ÿ2œöµkoaw$ÛÙ,
+ÞÝÏD¯­*ó7NiJXAc©
+.€Öa1WÍ{d,RÏ|©tËªë>lÞJÔ£©n¢AË!QÊÑ¢ÍÇ«é|KuRµwö\²K+Ÿ,ÞNùE]<,»\±L[€I3
+z-ÎÞÖ"¶0¡€Éh,LKhóš@Îy9µP­K*ÍÌª®Ø>éº±µpqZöÔ
+¯NþÜòŽHej ÞñM$ ~úxš)YVñE¯q
+ûR_å-ÇyIf@FÈk­·R3= ¥`A
+8ÖÛS_Nýú&ÂÎxX«%³¢ËÙÔoùæ]{ísÙ¯ªrJ
+5§^äç'ÐPÞ$qêF€äH
+Só,oÙ0TâÝ·­#æÑmÙ*é@PAÏ cÈyâ|«JUŽdÀjí±Cêäö»­°Z.òÝµÈ€¥#RT#©§@RO
+)EÞ6|
+§÷
+'N²©â[8å¯Ç±Og[Œ|œ¬SŒó÷€[
+âÚÔ$2Wê)kzHPkÍ*&·VÛlLZq~Öêl-7PSDWKK@È€¥§ä-Z}&Â³ÒgRšê§|^¬ØG»¥&ÓãRß_í¥Ì^¹±nÄx#ÏCeû|u\h
+a\ŠÂIÈ
+±
+%G%¬pIÈu¶?oµã19m©vµ%Kdû\#
+e:zÌ ðÈÒså­±»áÍw§7ú¿]ÊFïO«#wVye©gÊÉåìIrúKÄfNö9éËì#?üW
+
+Æ¢êÓjFÂß>z³ôz¿¹|m[ý9kÂ>eý+xå\-þr»ŠŸ­;ÇD}Þ^\V¯Oy]
+Ín¬Bó
+Ž+R:
+ÛmcOaÕ4d6¯L(HuüÁâJx+uZ¯wn,º²7:?<:Ü4é³Ì²m;Í1íÞr~wr{ÙÏ%©I
+õêA098$ÿ
+·^7€¥äúu¬£€%FÜ5mÈ¢é$º·EOÛœc-RÜDy÷#:ŠÈ
+	[I)$G`×Zÿ
+­ÕG÷kûüsÆJüº\¯×eÔ*Û¶9|¯jLhÑ[5pf;zCQòe°étOW
+ú
++¥³xìKÚ&)ßõÚ+nŽâŽ
+T9j"ë:UÒé.ç9Ýô¹o-÷ÜÒ­kQR@
+
+u¶!Z¯íÊ7ª,%¶°€5ÜÎé
+÷MÊ@
+Ï?2Ìæ-;#ÿ
+S/\ßBþxÛ¯¯@zI,ÇâAáVe*NW
+'
+NÄn²ZbkØùp
+ÚÓ(
+ÛÀPHë+HÖ]#«
+>öª¿ð§ê¿­iÔÑóQvujE.(ô'ÝŸ
+Ýp7lSychÒyŸãîr®wâÔáZJ­I-ïLÔÕ¡çÂPé.œ
+Å<LëBIÔ£ÅJ\g¡YKJe(ÔNJ)
+xþC
+Ä¯AûoA¶!ø®2°Zu,
+y
+JKl$fS)µó
+'ºÙwü£æœ{£Nóv²YfrÏ,òÌ×
+ÄdZâ'%{Æ\mÍÙh£¥ŒÖH		*+$H:¶c
+SïXk·+#wBÂQq·([äKR@JXÝ©ŒV·H-ïp'^[ÉSâÏþýÜf-â(âÖZéÇ;Y<ÕœÝžeÕŸyedí[ºxNw>gÿ
+H,ðÇ*|L·8ªK§ÜŸ<¹
+JXºòÇTÎ×QâÏºãO%à%®³R/
+í\%J~rÜEºßrå©²ÊA	BH9ž¶Û
+Ò­;ÍDTã'dtjÆ
+å±}Yrœp²jÍl}­--¶.Ädo
+ÚÊDµ	ÉÂè
+R
+)6ì€çEÊNÉøî
+«¶ÒîjÖñWgÍèfBHJ46à+$éN
+ZFuÒ6Ûgì+%É}©W3ºÉiSLJÇ7µ€élkió^%ìåXÓ%Ö0-ò%ºæW3JZovB¯5mZÔõåm·ú·Ç«S£iÊŸ©TV\v[eÓ²<ÅQRªæàR¬«soONæ<¿î{­ôõ1w}i>lŠõ$êFŸªvËßÃ
+X£[
+ONá5#¯0µ
+ëRwwežÆ0J1VHR¯
+
+Z0^]â,ÝÍöíöK)çÒÎõÌ³ÜŽT¥éÍD%+RR	ZŽ6Ÿ[~äxxâ\X¹6»rôó|mÞ7E
+*! ¯:ØB/€IÉ+'MDâ
+Crœ·4¥6ÔSpa0
+ÆBTBGY$+QRÕÔ¥N ©çQs/Ö~YS<]éá$¬¥..5
+ø6Ú9ÞíjØïuÄÃkŠLUš9¥n±Än@OÎØ9µ,©kRqÕiP©R
+ç)»²Þ
+K
+
+Zkâùß¥)X)JJRR ¥(
+¯±Ÿ:ëýKÕêyè]³øÁgüåŒ­Øß
+?õþ¥êõF>9ZmÇÔ¿Ùÿ
+¬öH"+?m¹ËÝÄTÀ^²(-;šêY
+3â¢?r®£6ÍÚ6
+yç
+%Ó5ýâÿ
+JËY%;Ýâ7J
+ø)ÊËnŽâ
+V
+Jâ#"
+lê(G}Ù×¬á°1UoF­D§kZ9ìÚv³òrÍmW/Ø82t1b¿ÝÖêÄ)Í!¶`«~ÒDùR	É@
+CëÔ2Ó]l
+#FÄ°
+ZVŽ,€€<·]%Õ8á`3Œ
+Yh! ©@#!{aØ¶žòmøÞéÔÝ×LtÚ^p·1%ÆËO9©*LDjÍ×VéNèBÁªœö÷ri¹8~<g,¶æ×ºzÞèqe
+ê ©å
+z|¢­	@èe'
+MåÑúv}dP¡F
+<4VWrj./+%)[5d¬Ò³yÅÕbte5û¶[d­2B-è6ã°ÒŠ\SkIr+eH+ÒÚYB5/x¢sÍÝfâ©W'q;ÜB!±i¶Pë¹6UÈcnÐRÊ$¡IÉ-äµš¥UÇ³)Ò¯ØBVîXÂ÷>á
+BÖVÙ
+~2µ
+p4ŽpFè
+:¢TTj%àçàèÏoV4M
+(âjà§+Ôñ=©G=dž€µÕÏZ2rnÅTåÊvT§Ü~CË.:ë*ZÔNeJ'$É5?~_zvW^Kž¥3°¶¥ŠÉD
+tê
+G`ÏxÃq£^¢íÇm	aEÅ¶êÁ(¶îÉœóÊ¿ZÏ»yû×ùGohâðÖ÷ùZÛ%³f\E
+2*;ñ%;S1!ÝiÄ­
+"ÄFDòöÍâœÖå¢æžî-~{u%œl¶û®<Àîc2¥dÚGânã€Ã-\ÊÓóµ:úß?¹CÅÖòÌPRIRMIW}ôõíô¢®÷U>G1ïz\ewè;å«N%µ|ñÉÎQyÒë¶êÜð
+LtÉÈð9$q^Ffê~L\4š­¶©aŽ
+)CêR%&³ÞutrTÌ|Ó
+Ú «çw'¹±â<òZ
+ÂQAšs
+óÅÖßT
+þÎmzó
+á÷m7íž:Ãx·¡·dXq\KèJn:
+ £ìô8åséHùcf0w=.AzÊ}-ß(eÏ_^®Lÿ
+µfÄN@
+ãÚ|ìUõjg¿.¬TtWG£Y
+ôwktüÛ¥
+þš%}EºþoUº²`Þ
+ÈGEæl£tàà€k¥äzÆŠÜZ]iZàHªÝWPç~ïq·£ŸÄÕ¬z÷z
+nÊy{X\ë)C¬·9ö5GÊÁ.j
+w%©
+<ÒßlL©Ìª
+áÆŠJ;Õ¥yJPk£2OÑ9I«FÕä>þÐn­J}É2 ­÷d8²¥ÈTfÒÁyYñÍe­drÕg,ÌNµóæ'µYwü&³{£Vïx°Yf3Ë<òÌR²Öªã
+eÑ=Ñ²Tt|*Õ|Ò|¯}'+f×*×£gVL¿ä®\^gphÍÄ&SÈœw"Ìš÷CGJ¬ò91Û«Ò±:"
+=2ïw5­ÛÐr[Îj9µÈz|+bÚÓ9nŒ7H·ÙnwC×«¿9äÀ^]-Üû»Î!YéHJBUY6ÎþVŸ?zWEhONKœ{Ò1ëŸY[,ãÒuUÌ]HÓàË©|3õ³ìuÔ®-­ó»KùäóNÛ\­
+]êÅŒïÖÇs¢Üq}ÎE¹Ýí¹-êÒFQZ¶«H@Í]#g3lX¢×Úµ¿»}ÒP€Å
+¶Q
+J:6A}œc&yÔ¶Me[+Ž®ïmímÌDuòÇx'tùG0µ+¢ë¶AW
+ÝOåŽìFäœém2d3tÄDK£Åiv\(±â°¢¡÷CkYà7ùÜÀ	ÆJêËkÙÐïë²&Òå<fIÞ1V{8bâ¹QR{rÉZèÉiJÃvÆ&8üÛÜfÕ
+r]A	*VØI ä·#ŽK))B²×Æ.NÈëªÕ(9Ëbú²å{águ¿û;µtn÷vTØBž.$5hPpeÄ)á© <ËViR^J
+n»×Û÷Ä6Úß^ Ó@ÙHàÐ	:P§>	H
+tk)É7e±a©JÖu,ßÃl]{[;Ö+c÷Äkde¶Úß^ë€ÙHâ§@:P¥+.	I>Ibûø³¿*&Ì\µ t%>!-4W:RR¬ºÖN]`W%æVº^Áëvž$pRr(rKCrl¡¢ŽÊVDšùlºbÅè;ž²ënSésKŸiå%@
+%ÐÑÈr+%
+<ßGø¹N­OÞNºWÕÞGÉ«çÅ­ªLãÆnT{
+Ûz
+¡ëK
+nCäæûà
+
+_E
+ÈÓlÅ5zÙÞ
+Ï[ßËžœÝ#«$ŸçBÙš¡hËÁDD²,ð `Ø1e]
+rk{k¶2fÎoQNõ	RR³IÔãm­IÌ§y«,kHÆ¥al
+ê.
+q
+éçd\\S!
+åRZÔêH-€§uðÑ×pp€Ï
+t®êËbúÿ
+D©d¥3
+
+
+RAR
+-oUÐZÖ|?_\æ·)b«ª0yEçï}	Ù3¿ð2"ë:UÒé.ç9Ýô¹o-÷ÜÒ­kQR@
+p¥Q·»Ì«®å·$}B<H­Úh
+³9*Q	H.,©jN¥+!Ss-óájÁReßóº)Åž€dDT	RZR¥ä/ÒPiµbÅ³×Éõþ
+å;©TiK_(¥¶O®=Ž
+Þ?Åsãá+
+Ã+
+-.Ü·> 
+	-	[QÅ$œ=z	HäXïËÔX¬8üiŠÐTµšRI9
+JB²Í)ÛO6ô0
+cËþùœßOWóù'wÖ¡æ)oRNëë®Žü'mør."dÕ-DGóE	td© ñ(ÉiÉYi9u	Qî9E[×Ö]XHÕZÕ¥¯Éü>nÇÓwÊ)JTEáJRR%d²O»oaœÜ(ÚLÉ®
+ñRsÉN(y
+3RE!J RrvF*B\ŠìXïËÔX¬8üiŠÐTµšRI9
+R¥MÚgìóÜ¬gdœóößõÞ[6Ó?cÿ
+ÚÏzŒ[õoŒ.²nî®[ê4cJK€d4§Ò
+\sšæxYZåòÉ-ù[K²ªQYxY.Zµ
+úD,¿áQœêßúrœáÚéìÚaŽÈ	/vIùš+<ó¥{$%ò
+·;FÉŠw[ÖÓºZtéZ\Dz`¿rþžMíWyû,òFÂX®DUâša»E¢·n×]$-šŒB(JWV
+hŸï`.31¢é"Ø€[.òµªTŠó-E*P-žØBAqÅ!%P)o{âìQuÄó"âc4Û|²Ã	É)	J=$!ÔsVÐ	!#.Îù¯l
+Òyïíyñ"RÒi=gÍÍ:R5-ÔGä+qNŽaztÖÞ
+òqzïløctmlC+$µ
+w:¯ÃðíÃ{GUÉ(ÞÒ %H~\§eJ}Çä<²ã®ž²¥­DæT¢xIÌSø«æœ²)GIçŸTºeÄHOEÕu6o%jQÔ·Q å¥ÃþÓA&:wš¬©W$LJJe'÷JÈ82Õ7€¯SªG
+
+}Jä¥ÅÆŒ GHCjqMÉ8î¥)æ	JTœÛ¥ T	g«Àþ¿Ã6Õ*oT­*{W'
+\jÛèñÙlÍ
+ÝLs
+ÎíÙc.nÔ{jZÐr	ÝæR¯xŒº$¶¢7©Îãm6ÛæÊáN³CmÚähltœõ)ÂÂ³qÕ²ò&
+RÛduæ®ºY×ÅëvwH qR³(nKa#³l!Ò£ÅV@(ÝX$¥ü
+Ââ8ÜÔFZ
+an¶Csc8Žk@9èu¥M«ÓÖÆ6Æ-lkqÈ!aØN8A[±Æ¬È©µ!DdÏ"à*M=\ö¬ŸÃTªÔ
+ök^>ómO¶wpOÍ.W×Çôr?ög7«qêg¯[ñ!)ßë>pWw\ßÞ
+
+¹3
+\#ß!Ýiä$¬Ã9
+€¶ŒIÉTêœN¹±Ûñ{èqÛuò*Ñq[@w4XÏB^%n:ç²H
+I
+Af«f>¶?
+ÛI[nÎ³Jaž-¢W©L,©T²HR@Pó±NG!¥4ê¬ufË
+ªŸ-»ð7Çl¯Ó·$gc
+HÁ&4LMeçö­-;žÑÑH^E2#
+CâzIUJñòö±NóÎ[Þlp#[kPÉ_š¥­é 
+A®4šk]å°þÄhÛò0µÛs !Å žÉsGBÌf¥RSÀ$j
+w>6í|^7ÁEþXž×"ô7{×áŒu;×ÑÊ1tÏ.*ÑVg¿»\>üÒëº4dðú±À×N­éÊOm·ÍìÏÕ^¹¿bÅ8·Žó|øèp!2eHpm
+dA !§WD
+ßëJ+*«þ*ÍáÝô¹8ÅÍkIÔÃ+äà(Í	Ï€PÒFšJÊO?wŒ¿¥©n(Å«©=_JoÐk£jÖÆ 3inÜ]ºæZãžéo%W%·%!lÌ`¥C-]"ZI¢Ö>lìzÓWýÎk0TQÁ!þNZZ<NLCŒÇ
+N»ÄùÔfõæ%-{­+èIÉá&ï(ÊJ\÷múË%Íöy¢5Òy°g8¬@}/>®Ie9uôóË HaÔþ2úßçtÁ^moÅöúReÙUžGî·2ç
+¡L:®=zr`/7yµ¯3¬²÷ª
+xn2Ñ¥ÅÈÈ0z%@dH#Øç«Ì×N
+ûÕ]Ÿ	F_íJ
+¿ÊíÊ7Ùæ
+ïIæfÎÚº²aºž9%åg×ÓË<»*Øû»¶ÞR¶Äxž\e€¬©ØÑYe*ÏŠ:øåÒ·w±Ÿ}Z¶ûÌê²úcþ¹ÿ
+ÖóÓoÑ;t_ÍêÉnïc|úµm÷Õ[«%»œóêÕ·ÞgUz]×Cõ3kû¥åCÛìy]ï"CZÜ
+0ûñÕš
+3Ù<
+
+Ç
+úÀªÔûçb¯«S=ùu€v8t#óYùö"œDä
+u
+ÚãrßÞzcSn
+ŽÏ2æÏ»LÜgŒ
+¶vwâÎî\o	&ž
+œÖt«¥Ò]Îs»érÞ[ï¹€'ZÖ¢¥
+
+`¶Ú
+uôLžïw
+Ž¥ pÁÇ^ŒoÎXì¿ìº*®æ³kU%Ë]
+kÉ»_¹ŸêoÒ$¡¶eN»7nRbšmjs
+¹*Cn€qÔRV°tèÿ
+O7xÒW|nm]Ÿ{>fçÆf{TKË[/1zÎ	q@©tBJ
+P§ÝyjPXÒYSk
+URv}çìNóÍÊåq£êeœüÖ¥žöNõÕºîç7GÐñÌ÷ðÞ	qn5îìµ*KHh€FqÖ
+ ÔÜNoEZp×ö7°Ôžx:mò$|v²ÎÇfç:-¢
+m®éf>Qpá	(RÈ H¹¥$f¥5€Ò\
+Î(	 T"ºs¬ä8Û
+$vQ$pœAŠ2
+r
+msA¥Åu)1ýUüê[|_öÝ?ï7gè%šÒ¯þa²é
+îÊ
+#ÊvT§îØ¢ââËºâù,u;eJ'[¯¡j9w
+ÈzE]
+Xó¥_`Ê]ÉÞA­zUŸC
+-Ât6Ú3)õ$šo\Öæíµšï4i-X÷7èøœ»
+Ö¥·g
+øÚ²WÊÑuvòwÕÖ|6²RÖš[ZŸ]î.].²Ðëvøö¥rE¡m
+?Ê
+INcÍ¶ÛšÔ
+8€Õîx|š.[aµÑks-ä	Rw"7ªQSd¬Ôâ€§Há]+íÍûÅâMÎJmo¯Pi Cl€pKh(B@JS€J€¬xiùQQr¹ŠlZÐâÚyšeçdè
++Ü6Tà@Jµj	@IÌê)JŒsÞ¥5eõ·ö
+
+?Žc%­7ÇžRYos³Jû_
+;¶È2¯»?n&³zÛz$ ±*9*RH
+¥ŽÁ**',I)$õµÙ°ïE|»§Ëš×
+"Ç
+Û)^RTC5
+×ECKÉRT%yDíb+MvÈìÊ
+)æZqJqøÈ.¶¥ŸâŸxwÅè
+(Ôu!ŽôÍQiQššµ¶ß@ÂS©ZUc=ì»
+Ò»\­».kµpŒm#Þ0<sÔ«l9OIiÇZ
+«Þ-%ÃÄá+$ñ$ñ$O¥*¹žI%d)JPôR¹bÇ~\Š¢ÅaÇä<°ÛM6¥­Dä8IÈSû«fÿ
+ÝYVè<i]vPýÝÇ±.)žMXBÞqâ¹3\JFL¶¥çÄ'N¥Ãi)$P
+ÆÞnoÝ%%×PÛ-4ÔxìØ$ NYI$¥(©JQ2ÝE}gÏÉÉÿ
+!AÎÈ®LY%5
+ÈÛ,L¥Ñ.;Æ£ž£éH%ÇÈGvRÛÇÜ70y¹Œ¶Cï	[Ýð0B\Ï€!Å¡ç·¥§vDª
+)¶kç©Vq
+5dúÚá|ío,ÈüQ5ÉwŒaQ¢©Qâ"8ÉÙJ¶3=
+%YJ¥)EF.šmÝB0U¥+Ã#kì@ïúÿ
+Ñ_înö³ý¡
+ŒÇØß
+?õþ¥êô®ÚÝlý×qr¶«ýÓªÔ{ºÿ
+Ëqo8Æ>éÕÇ"jOžWï^y[b
+øfÖj2§JçiQuÂ@l:F®{
+XÃ­
+ÖÚí©,³ÉÉ$e:òŒ
+F³>ÊNñ8ú/åMVYe'xGýòŠªR5¶Îöi~Ex­Ï+Û5íM¶w°Œ{Lûò+Ån|ñ^Ù¯£ö-økòåìÀÓbûåù+×#Ô]þÜ>ñ­+wöØ/õòQY¯bÿ
+nÓ?cÿ
++šóIv7ÃÃõÂÊÖÑ
+u1g(Êéî1[vß÷ù·wwÆîGÏª²a_öÉžY}'ùn×%!=&Ö|ÙŒÓ¥#RÝDqBœÃÜ×øÆòéÜ×øÆòê(TÄEßQyÏå6­
+UšÔ÷(äÖÏþîŸ5ä/GpÇî¹ÂËÿ
+XM¡ðøÚj=t·åiÔþ{t_/\{ØØþ­\œæ
+Vëè/s\à_{Ë§s\à_{ËšçS'}EÁüOå.áðZ
+\hšóoî£ÂÛñÜ§±êXÃû>ÃÖö
+qs®6Y}N6Ê1stµ¡nImÎ
+à
+(
+œå\'7ÅÉB¶,+ÎSGûZâ6êÈ«dî
+æž'ÀŸ4÷Næž'ÀŸ4÷RO¯š­kwOÞ	G¡ŽE*ÅTrrÖoqoYKfíÄœ'ÏªÞpí±øûµ[¢-žò¯òf
+ÄMp}ÂÎk)Y?òF`%)i+Nju&œÜ×øÆòéÜ×øÆòëÚôzÝ[º)æÐÚ'HB*€Td¥÷1wµìïÖWw|v³É³ÈÛH³[n»`µØ "mµwÅnG+¡qëi°Ö²aÖÐ
+G
+IÒ2I'!Õî
+æž'ÀŸ4÷Næž'ÀŸ4÷^O^ros¿tþSÜ6ÑXzQÅÕr5SÜcávÝžr²àJÈòŠÖîËÅrÃ
+MæF#ïÛÜ®yB²
+9J-)*^Y¡òFY7[kçhX)_ä²­É³
+5&+ã,)Ò3å9æ¥¥9©@g÷5Á>ñ§Œºw5Á>ñ§ŒºÊx¬Dääà³þgÇ
+ t>)SÅTN.÷Ücàjp×yÛ6ÛwwoiàÌGtçk¢ßiI	ŒÛ
+
+/Rb°JZ!YUjQRI¯ œÍpO|iï.ÍpO|iï.«º;ž¯9üŠÚBÒkÔ²ÿ
+'RR	XÔã`åšgdÄnXáží²ZŠßïwõÇôkLfZai
+
+º
+8Q¥M
+Îë.
+
+â€çP,ò9$f¥
+B@>óîk|
+ãOytîk|
+ãOyuê{çç?ÂŠE8µ
+EDÿ
+?K1¶ò»smöã»­¢IÇh¥NNªs
+í
+\ðu¶ûwÛ$M"báGié«
+ÒYi²RÞióÊ	
+c3®[¶Ôí°ñ»17ñÃ«œ¢åŠ:ÒThi~dP3ß$šgÐ
+
+(¹s"q
+sá9}Ù]ý;Øî¶ÇsÁ
+Â¯.ckF²)y)N¬õñI
+yŠZÆvÑ+®Í4·"Ä%l²û±¢	 n·¯nÂZ
+Ïwvr 3®Ìm£`¹7gjú×-MÅvµ¶Š\HD€çæJQHJJŽš#2ÊTTR@Ì€loªÁw°5>ÎcßíÖH³d©çá®
+
+mîÈx(#1ëÈõgS
+Ëïÿ
+
+(¹s"q
+sáÙžlfÿ
+CPÈ¥@ð A©ûÁÒ0.Î`aéÂ
+§¶·\ìLô<µ8¢R¢¡9úÐ: 8¶÷»a^¯9|áq¹{véÔûhWE@TGéÖA±ö9¹itJ$y(@f
+Õ­3²ŒN#þùSU`»
+oÞíhQQJBOŠ~
+c"ZI7¯ÚïXTpóçäb[óéýßè°E7g9qNJXGF-»¬
+Þßì¡Xïx]ž1v
+AÒ
+®
+:€WèU®$ÁÛ¥Xã
+ ¥Ô¯Ñ¯I*ºÿ
+R¥
+R¥
+R¥
+R¥
+R¥
+9ðŸì®þÊlw[c¹à
+aW1µ£NYŒ§Vzø€FÂŒÓ-
+c;OÁèÉ×f[bI¶Y}ØÑ7[×·a-gÀ»»9H×f6Ñ°\É³µ}kŠâ»ZÛS.$"Rsó%(€%%ZTe**) fR67Õ`»Øg1ïöë$Y²Tóp×C
+¶÷d<ÍMõäz³©å÷ÿ
+
+Ì5eZ9)@âVåÏ³ÌÓ{œZ÷m17*(Þf§Œöýz²á§OYÏ>k
+¯;ëÛý³ôç;-üb·G²:+œcÏ/i>Ú/¿¿¿å#à§mßßßòðU3µç}{c?³¶~N×õíþÎÙú
+sÀ¹öÑ}ýýÿ
+b}°3!
+6ôBÅ9£yk;·¶G%
+
+r5ÚÐ0V
+Rt$
+¬¥F±ðeãk;AŸ'hOX­óy·<ÜyV
+æ,*tB|÷
+ó§m³œ
+ãÚgß^+sçöÍzËhÙqÙ
+ÞåfÇ×C¥6ÚÓÊ­ÏG+Þ7TX
+f²
+
+yÉ®|ñ^Ù¯£v-økòåìÀÓbûéù+×#Ô]þÜ>ñ©ìÑ{NsÞ/EÚ
+µp1|ûlxö»Öå2Þ
+$©
+Ë-á
+Â¡»ýž}*?ã=Z¿aß FþP.Åsþ1[£ÙEÞ±çŽÇÈÙjöWÚÏá
+~*#e«Ù_k?)øª¶?ŽÉXjr£m/
+œ")Ð/qdöRëáŽ.:Þ)ÍæÐ!f¹±
+ÐnžBé-ÌcŠÆÃHÔ¶¯ÖqiŠÒU)¶É-€%¶
+³®pØß²Õì¯µÂüU>FËW²ŸÖSñUyŸc{ÍªtkXAëþÓn1xÃòùsé
+-žž	R;Åš)
+<t·š€gÃãŽ)ïXíž»aÝpžÅ÷%Z'' žN®%!Ì §z
+
+QNì@Šü¯e}¬þ§â©ò6Zœö³øB«Êñä«Í«ÖÏlâÈN\;€c4ÛçÅZ
+J
+@aöÒ7©j-Œ¶NA9¬WM¢œ0ÜéxÅÎwûnïpõé÷-3b³œKjJÚ^KViJIÉ¥ts$ò6Zœö³øB§ÈÙjöWÚÏá
+~*¯6}¡·UÂËfŽœBk|»"+·¹¹ß©¢ðuu.5ÐQ3œNe
+~*®Xh7\!tæ1ÁÓca€j[WëCžŽÓiKË*Ê[KÌdÒJ[À
+ÆY×=óÞmS£\ZÂ_ð|¶qÆËHYh%ÅÄJÑÞ-AL)ã¥œE#>
+QNìy×%^lÍ^¶{dgDbráÝ#Šß>*ÐâPâ¶œH+Qmå²r	Èb£|¯e}¬þ§â©ò6Zœö³øB­3
+JVÒJJA
+àH9
+² f#e«Ù_k?)øª|¯e}¬þ§âª.Ë·ýÚã²·7Ø~ÓnÄðeœpŽ»o\8éòÒ®PÛNŽŽ­²à%-­
+aA"õoÛ5_5Œ¬7¡ÀŸoS`2;,G»ºËm4Vè--ôŠDÐpu
+¡@V~FËW²ŸÖSñTù-^ÊûYü!OÅWsäÙÇh=¶åzô79³WÉyw!Þg«sóïÖï5iãl
+rLò
+ô7]i+\w
+3(QB¡Ôt©C1ÀÆÄþFËW²ŸÖSñTù-^ÊûYü!OÅW6=Úf%²mõE¬Öéöómò'Ùßû
+šMëRõ
+ùi-0öââŽŽãSÁ+iÌÐP¶Ô° °Fa+ÒÈÙjöWÚÏá
+~*#e«Ù_k?)øªŒÙön¹b«NÄoQí
+ó
+ŠiËBµ6µf¢°¢Få`¬jJrVÏb<ÅXçev[)¶\äKy©+røâa·QL¡(Cm9ŒJ@
+ZHó5q9 #>FËW²ŸÖSñTù-^ÊûYü!OÅVåJ
+ù-^ÊûYü!OÅSälµ{+ígð
+?VËþØ,¹×ŽÇ³b
+Å¯:o·lT=Ü²|Ñ
+:Ã)€ä·C(p¶ÒÈæ7u;kûCí&×ïWyY9ö,žNCTIpÈÉ
+mÅ>	ÔæM§0:D(äMù-^ÊûYü!OÅSälµ{+ígð
+?Qx×n7kŸ
+ÙÖ.ÀLAÝÆQíÎ	
+AÞLŽ8ÂBV
+8Ž©)Q(ÈŽ¢TPWŒÙ&ÉžZÙ.Ó6ÐóµC¶Tëy(š²µ£
+ÁH§ò6Zœö³øB§ÈÙjöWÚÏá
+~*¢ö¹·³ÛÆøÙ1éníYß5š+Li	}	|iß8
+%«È)Ì©¹ÍºÁ\Øzçau.óÜ·2X,:âtÈâ sIáD|¯e}¬þ§â©ò6Zœö³øB­²ze.
+Ay%©¥
+y¢ëh^])I*H9€8f:ë,ØŸ5Ç§·YwÞeÎœÏ²3
+Óm\y
+ ¥ÀãÒë
+)Ð¬$à
+ßíxfòÕA³âKŽÂžÌÒLÕ)Ä¡
+~*#e«Ù_k?)øªÛ <ä1ä=ènºÒVžï$fP¢
+)%CšéRc#Vv¿v¿áí^ñ
+
+lf]¢
+÷¢|5Èmô2ÊÖ[¶P¥§§ôN|
+×ŒsN²€'€3	
+~*·*óÇ¶»/÷g¶ËÞ&fUÇ»|gaçÚ¬¥ª:!/Ž¬)Éõ,šjôø-¿#e«Ù_k?)øª|¯e}¬þ§â«m;OÅÖÍšál;
+ÌK+8ŠÓi¿Lr:äŠjs7­œÞ°­jJ}
+rVuŒmw`üUŽ5²+5e{YÞb8nø×òÒÔ
+Ayä§ŠXZB8ô4·älµ{+ígð
+?O²Õì¯µÂüULãìA/[g²Ü/;UÝá·oïÝ[Ô·]QtÇiÛ ¡(JÈqG
+|TjV
+°b{vIÝ¹Ã7
+vìó>á	šš·æ]K
+º§Ždœa°£ÁÃ#e«Ù_k?)øª|¯e}¬þ§âªºö2îyÌûø]Žw@îÏÜh×\ãÉ|îœ?êµh×Ç==
+Ð6Eo²±Þ<Ùõþw<=
+$ÄT{²ÚC.Êb[Jyu¶ÀF¶ÀÑ­!c#¡$
+À¬ü¯e}¬þ§â©ò6Zœö³øB­Êò6Zœö³øB§ÈÙjöWÚÏá
+~*·*PoÈÙjöWÚÏá
+~*#e«Ù_k?)øªÜ©@a¿#e«Ù_k?)øª|¯e}¬þ§â«r¥ü¯e}¬þ§â©ò6Zœö³øB­Êò6Zœö³øB§ÈÙjöWÚÏá
+~*·*PoÈÙjöWÚÏá
+~*#e«Ù_k?)øªÜ©@a¿#e«Ù_k?)øª|¯e}¬þ§â«r¥ü¯e}¬þ§â©ò6Zœö³øB­Êò6Zœö³øB§ÈÙjöWÚÏá
+~*·*PoÈÙjöWÚÏá
+~*#e«Ù_k?)øªÜ©@a¿#e«Ù_k?)øª|¯e}¬þ§â«r¥ü¯e}¬þ§â©ò6Zœö³øB­Êò6Zœö³øB§ÈÙjöWÚÏá
+~*·*PoÈÙjöWÚÏá
+~*#e«Ù_k?)øªÜ©@a¿#e«Ù_k?)øª|¯e}¬þ§â«r¥ü¯e}¬þ§â©ò6Zœö³øB­Êò6Zœö³øB§ÈÙjöWÚÏá
+~*·*PoÈÙjöWÚÏá
+~*#e«Ù_k?)øªÜ©@a¿#e«Ù_k?)øª|¯e}¬þ§â«r¥ü¯e}¬þ§â«³oØœ¯ïïèÆøöúóMhj=âô^¥$èJR 5«05ga$m5
+¿Sÿ
+ã<È®s®¶_h8
+dÃdf9¶+¹µŒ'pUïÛ]ÀøpC·á]$sk¢kÁµÆAJ
+bkð[SslÇSR+%.)äòV°KÛ°J6FÚVÙ&ËÁ[/ÅÛ;næõ»b$
+FHË
+0n=^,±·|ŽàÜL-m¢|)QVJR Ê·ÂÂÉ$-)iZJ
+
+W
+i¶ñUÃ
+_­W<+thç§»®6ìÂ
+Sk{zÃÎ6¡Ié©'"f@
+ØSfžnÇ|8Q1)Ô9îòð-Ž:­
+ð
+Zt2Ó€äA®^Ëì
+â&ñ&"sÆŠ
+ÞC}q&	ó/ôvBeY²
+kCadæJu
+ÎÛì
+UùgÃµâIÍÂ±\ä@BcÏ[¡ŠÊFðžÒTŸCem¡E c0>Ð±|ý¿m
+K°Þ§ÙíRmÂC\
+	¶¡ÖT\yÅRµ¡Â
+âÂFE(WB¶Ý6_`¿b'.øÂeÏ4wíg»t#æ£¡Ž!·¥å$-àâÀJrVc:æÅ{:µbËà.·«µ¥TÝÙ	nÚ4°§m)T@é}N jVI
+ºj@C
+mc[V8µÏm6#ÖË]Â
+Ä$;S*Émš¡JBž€)I!CywáL7lmÙ0µ¢y
+ÔfÂuš%)Ö³Öµ¥ ­Dšä3&ž6`ðó
+Cž3nvíØJìbúZC©(Y
+FjÐUH
+§,ÈÌ±®Ú&ÞU³«Ös[l·¬e
+ÓÊd@šx}m<RH[š) ¹ZâJŽØ
+ÿ
+mZJ9ËcìÙÛ6Å8@b?XsŸí·GÌxì¹œC-¶ÊÒµ(/õîžæIàT³©íÚ°=®Ëy²Þ¹Ü£Úíðá¡%ÙRVHm%jJÀ(-IH	<sÈ3Ú5ñ:Ú
+Ø8/Ø/vÐ·Ørá.ík[+R]eÀòÙy-i
+pGJtÐ
+Ø?¿£m±ö;ÛRpúloÁfÎ¶Ñ¯z§á­*/f@)PèqWWÉ6i}Ùì;^ùFŽrÎKnM©#|òG)¥¯^ïZ²Ý!DsIîl{â
+E²ËMîñ¯\ŒÙ"J.žšIçgVÀRÀmì©C0
+
+­=Y+Ow
+m
+
+ß
+HÁW
+
+ëßÚ¶Šè
+NœôRéhžÇuÔ
+
+Bdiq#5f.(fR×_ÀûBÅóöýŽ\).ÃzgµI¶3	
+r&ÚYQqç]JÖ
+¥{
+áÎŸb;
+müÿ
+4¶Ûš+JÜFG¬ò:D>·_m¶·[Äx§œ%×è­2
++ ËM€ä3ZÜY9£¿¶nÂ8ÖÁåáüA>v iõ[WmçN¥Žsp)
+â`©iJV€IìëÚ±Å®|Ëly±
+¶\€Zîæ!!Ø²VKmE
+RÀ€
+!JI
+
+sÌ
+I
+ BÙ¶7!_öow!Ií2àÅm§ã-0¢|Ü­/$æœJFa²Nï6j£a]¥Û¯
+ºáüA
+n(<ºÙ
+øÃM*scl¶âÆõ±€­ž JrÌþÈ/í±m7^ñ$Ûì
+=Í<ÞäÈñu
+¢:ÝsQaŠÂ³VYf8¢H
+7ýEºNœÛq
+Ý«íE
+rT u9»«[M:Ž0µ€ [!
+l(×ë&·|=gIÃ8°åívKŽmLï€¡*VAý
+@[FiQ9òÒ
+«¥+²3Åå-¿aÄÈz6æ1Zd[òTÈùô¶ÊÚŽ)
+µ9æt>Ñv
+nÄxÖç­/aø×ŒxœáÖ¯
+d°
+Zw.¡I©µ€Ïr÷²ÎÙ
+E¿3ña
+çmŒ³haŠãÍmÒáu0ÙÝ³€ëu!óVµ
+G»7l
+K8ZÍ1©Ž7x
+T-Qc:¶wå·® !ª	'FYgsÂ·û6)Ã°±
+ž³qµÎk{
+CG¢±ÔAT €RA 3ù»³?Øæ5qz,A¶æÍFB]¥tTð+(ÕÔ¢©<¹á
+f(õÆN'Å,Þê
+v"Û44%
+)%Î
+Í[ö
+³lãc»fëb|%Ì>µ)õ¡Å8ÛkH:!nœš
+@JI]Klæ÷ŽÓ°ÍÊuëØ/ØÞEÉø×
+:ó.È§Úy§bºèovµîëKÚB[:IÞzM¶A>ëÇ³ìøÃcc«k0îÍ®Ú¶ŠXqVV¥
+JÒ!J#V¶T ]X·ìÚD<W	üèpå;iRâJaÈâ90
+
+KgPw-AGNJ:Í(Ì+çlÃ° Þ¯_®-5±ÛaRÖTl¡<r	
+
+Â
+žÇSh,[®kV¶VJ@P$
+yÕºµ %
+-«ÒñLg_³JŽ¡å#Y@VôKgx@hÂRµ"³·M¡bü;kÙäË5õlzó¢A
+ÎBã«aJX1I.©o
+TdN¥¶rî2ØôekŽÉÅXçÚ.OM
+.e-èeÕ$9
+P²[%Ž€·
+¡@,8<ípÙv56Ù±Ÿ
+jÿ
+:€ÒÓ*Kš%ÇTëÊË¢r9/]³m
+
+×g]ÒÃzjùzc[°ó|Ûë
+ééh!(óE8\BHÔA!5
+rÛ5Ÿß×ñ3ÒpäÅúÌÔvMÂÚžÙt%L© ,8Úš
+²8Ëïóv%3e×|hÈmíp'Ú­ûHi!>mªCÔ¬%)ZS»
+Iq?®0Ø{`qmžöf#~~ë¶~Åw²Úðð·FuTJ%§µ6£y©eÕ
+JH(
+ÞpFÑìÓÞ­n4Û
+Fí.ßXS.[_uhB÷Lº	qa+é
+J«vÍ/±öqfÆüÅÛG7óªUjD©
+ò@Qò³^íœm'xÓ¹T= S}Ä}×Ì3oÈ°æ¶Çç(û€o'N¶ºD(îPÒIèÕŒ<uŠ¬ö³h€AŽ,%\gTËì=yZNJBWT Ä@Bíg÷üy;.'¶Z"XnñoL4õrrSzu,HlnX!:³ëãážlãGÄ÷LW±+
+òÿ
+Ë,
+P"@
+hŒbÎsŽ§
+œ`Ê-Êa×R¹îNmöÚÐêà€ž }J9°lîòî5²bìwÄ·
+=q­-¯6Ó§D.â÷žä
+[HAÆöy°®¶mmxG&õfmû&õK)y×Be(<ês Š÷#-y¥D€·ŒÕNÓvm>tx0v
+¥KêYao1Öã«QÉ(JBóR 
+šš¡n4µ§¢
+ßë
+Æ·Íša\w/BŒCÓo
+¡GmÆ
+twšóy
+Xp¶¡Òt×?dDìs`³7
+íç
+éñ-·Â0"-à«~¥²·»}z¬ÁZI [6ñn»LÀptLC
+ËvZã¶ÕJuZ
+mÖ÷d<ØGI³ayÃNY»«6¶[œÍ
+6xÕœ~
+EFi}#Ôã
+9' sYÌxgÃ{"6
+°Æ8kcv¥i&Ýí²·19][t%5Émi^IÒwm¯Í3'"µýÞåb]a¬G9¶[uŽEú6ºÊV I!9šå'/LÐ
+=ªak0Ã±íëµ²BsOÌjåençk(Í\Æ\RrI^
+jI
+8Nb±v;ÏaÇ×VDL`ÖáøVHÝ
+
+mÂ9[¡¬f¥¬B:=
+6Ý¢ÂÆW
+\x.í
+Ðó(üå1ä:Ü¬ÞäáHZ7Ä
+K
+µ¯^iXt¥)kH5yÇYû"vuZœÂkóö
+VðO'ãÊZŒÐêÖCµõÐÍgûxÀ7]Š`I8:&!
+e;G-qÛj¥:­¶ë{²
+l#€ÙÏ0ŒÁá§,ÎJ3œìó^öqÇÙyNåZbuÊFíÜ¥(·æA>{%
+(ê w65nž¶qÄ0¯
+ÿ
+BÒÚ$2Ž ­aJ
+-+_ÙÖNÁVÌ8%3)PÚ!ÇÄ&ÜZVµ%ÛIRI<ºÊs1.&Ä;K³ìÏãNlgµW[k·
+KäìÈAQ)HOLdnÇJ«ö
+°b{vIÝ¹Ã7
+vìó>á	šš·æ]K
+º§Ždœa°£ÁÃÍí»«Ö·²M
+
+yÓº~dEIi
+!ŠÒãeY§02XÈxåËpfÄ°ù[ ÅwæožymGv$ÂÑSë|­K/8©.)=£%ET»¯c.çÏ¿
+ÛGtçüýÉÆyåÎ<ÎëÓþ«V|sÓÐ«ÎÌq>(v³»ÕÇ
+;ÀœÉ§1<Ò_a¢©Me€©°àd'v{>Ñäãl[»fÅÛZŽµ1ž)Ó0ÐBÊ)RZÝÔâIâBPÐ+,ìsÄø£ÁÇÅwVnRìøÊáiaÖb&;ieÖ¥
+RíWßp^Ðð
+Á3·Ø^ýrzán-!KD§ÁTY
+
+JJæ¥èËJ
+žÖ@)JP
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+R¡±·êb_þOÇMLÔ66ýLKÿ
+»î`	0î
+?&R¹dømŒÜYýà-îÒê|Í)Ò­
+ up
+Åœpç_1
+ÇNÃ6þ'<«ÆxQV§
+×4¡Þ¶Žž¢²mi0p*Ä®áüd¬1
+ÍÓ!©7¥¡æC
+2¡Õ!Åš 6é	é
+òŒãæ&±öDìêËM]ó-¶;
+1iŸM*ov°Ðtf²TsZžðÎl¶ó3à;öÅ6ËjpTâÁ*ÅŸKÅæC+RÃ/0§BQ¥
+¡$ÖÍm/ÊÆøw±"öÌ;Õï
+õ
+[p£9*>yë`¹«t­KèBié}Ý ãGðt7°~ »ZàÁ\Ùs 9vÊ¥€6áPJutRAdIÌÚ
+X·Ø#Ã¹ÉkÁrmäÛhClï°ê  ño.Fy
+i¿¶='Zí2qV$
+yÄ¶ÓaKceËzuICT"¬Ém)
+¶°ÒPQÐÛºÖŽ€%ÀJÇLH¯ìûmpý
+ÉÇÎb
+å»ã)6/H
+
+Á
+eKº[ÕkR(qi
+T
+7š
+l[?¿ãÉØqpq=²ÑÃwza§¬ëã+Ó©bCctBÀ)	ÕÏ_
+67À7\CÁx²6!
+
+ánS¡×-ªzRÆéìØ%iâæ§OuçÐ+ Úæ<ÅXon7Ã¶[eÎu®îÕÉs¢EL=SËl!SÎ$¡M
+³R
+
+)Ýæí)#5tÐûôðìsåÚíÜç=Î9ý,òRPÖñ\©@'Qà3ÌÔfÎ bf
+¶BÆÆož
+
+>s1ÒËn-J*Ò€$iH!ZRTšIc[V.ç8ÑãÍ¶Ý­LkŠà¢\5ñ(+JT€-=48
+)
+IàI	<U³al;7â6ë\·²$:z(
+@
+NÙ6¥}Ñ4ü)¬7¶Õ\m6ë«1Ùvè€©m2CÅä:qM­!`š
+oÖ)x+
+âèž;œnÄ×~gµAÇ$ d)ZÒêA'iEZAAPxgªÓŽ»Æ4sÙno]dN±:¹QmÉ^€AaÔÊJ@A®Îµ
+Æø¶wñ
+ŠfLkµ9zÔÇÖÖ]9š­f€«J*9õÔ7vŒ+è7Þ»Sç.lí¯r×5oŒî­æóy¹Þyÿ
+t$( é
+à¥Í
+R66ÂÖ,i%áMÚfhå÷«o^
+¥ié 
+
+uzìÿ
+JÒtØµÕp\<qzÉtÁnž»<ù-òÄš?þÚ*Hq/¬ô
+
+
+g¯b)Ë6¹3V+Kaµª$vsAyn¥ ©O
+ÐunÁHÕ!6ÊRÌö«
+¯žÓhxÞ;/a¹
+CpžP®S
+l¬
+ìrÅ³_~ŒY
+Õthñ-P]JÜU¥­æyÇ²^Yt€iœ#ÀÙæ*Ã»OÄÖál·Ùy/9DbÄì|¹3
+i­ÊÌ¥èóÀ«P^yd4çÂÖ
+3°ËïXnÿ
+"ºwZÖrÔž	Xé	
+ÊT
+R
+œ5(f¡ 5§«%iîá¡C»ã*áaœaûûVÔÝãÉ×Ÿ]-žîºÀ*)WHÌ.t¬g±óhX¿]1|;ýôó0ñuÂ
+yä(jÚÃIADWCnëZÒNZ+
+2"k»^ôKï]©ó6v×¹k·ÞwVóyŒÜï<Ë»Ýká¯.4JUc|§"#Åø~Í-ÆÈb}Éî)µST3êÌR°RºVKµªùkféd¹Â¹ÀVêT7ÒóNiQIÒŽJ
+X"³ÈyÙü
+):Ñ;ÂvÄ
+Z'¿w·(Ô	Kaµp tÀÔéXÛkl§9eÛ/vë$èpì÷l9e»ì
+qÞ»ŒôHK§ÁP@I&óö
+ítŒX\°Þ­ÕK69Ü¥0€ô
+aIuLž¬ÛÔ
+É+VQÃ0.t¬Îå¶;mŠEöç	bkuÚÍdç÷mÎkuø	p¶ãÍ©¹
+k RIJçB
+éZöÿ
+Hu-pÌ
+fwkÅ]Ì;µó}Ž
+rÝóVåÞuä;þK¿ßo7;í÷Os£NÜøÕ²í¶ËEŸó­bÙðsBMÔ2ÄbÚcÔè}.Â
+t$( é
+à¥Í
+ãÜGî÷3Á.-IDûk
+9le!jg
+¥ Uæ,çÃÏ
+¹[dLÂÀžÍÉø²3,ñ·0ÓÊ#¥œŒÞªHhfNœiÓÒJu#XÍ+&ÂûzÂ·û^ŒµbÄÐløä-0®3"45Jq(e@8V­EŸ!+l
+bkð[SslÇSR+%.)äòV°KÛ°J6œíJ
+
+£ÖhS_¯­©žÝ­ÖŠcŒí­
+HRx
+ÊŽŽÚZ	H))$
+Ü6·
+D|&»fâ±vùVhö ÐSèe²·TúÛCz
+iIuEhZ
+ÔRTV
+N&öÅlÙu¶Øö$dÝ,¬PÔØarC
+H0a)ÔÆ¢âJÈ
+f
+Ù
+ÿ
+ZP£Ð\qHQ>¥l·dSö{ñuîÍ²¥3BkŠ<xRYAShiäÎ¥žwyk §7J¹=ìþÿ
+R4æ<ñ
+Mì÷c,1ì8hû×kh
+
+«% Bm
+ëÖ§W­×]wP	mH!²Žåµ'L¥`
+¹v²}
+íã%ëB­mVŒ61
+À¶t:JÌ¹œ'%äR·'
+vi}Âøë"Åù%ï
+Ä3¡sR-×
+@Gå
+YBY+HWEàHÒJŽÊP=Ùæ*Ä[OÃxÖßl¶þÖ¹W6Ä~ÄìùK	iÝòÄ€kó€§HFYäueé^vA=]¶Ú°æ0æ\5dªUê­© :÷FZ£>¥Öý°BÐèAÍHÓY¥@ÙUÆÍµøÃb
+d0p²pÍºÖõ©×ÃÑÓiJtÉ
+qIt$4
+9
+
+åMl+ÊÙÍ à¹¶o-@uã
+KpehqÅ8RŽÖŸ e€e$Þi@Tö©
+®xÃÇŽ[®ÖÈ
+	Í?1«»i¬£5rwqIÉ%z©$(hàA9Æ
+Øì[=
+Z']Y1[áY 
+t(1·
+Thån:±²HQèôxêt 2²,Q7eÓ6}wÚSÂÖpü{,Ú­I
+d7Ï8ã©iJ[Z¶Ð€Ô
+ìÒû
+ñ=ÖEòKß=gBæ€.[®:
+Ê²²V®!À€,
+S>F«l/+c.T/Crn:ž®  š)ãKZz ©a9
+þ¥
+ÏÌ¶/iåÕKß>Æ{€/7¥
+%ê
+IÍ9äsÐ)@bwÝEÄéÅ,Uff!¿Î=Q­žÁj9ä®žèy$-Àâ
+ZŽ¯ @Up+`
+kÅðÞÄv[??ÛDã
+aXÖ€ÃN€)z
+ßy
+-€)µ:R§ŠÎ'±âz/«œa*ïmü?>$
+$"!§e¶ä$¥zB8ž§N­G=%G=¢I69eâNÃÓXSÖbãzí0×!I€žTrP)Ng=CÐÔ 1áöc¹çm?þó-æ>oùos¯}Èùfó=Îÿ
+²HÏ ~®ìôÊ\ó,KSJ
+:óEÖÐŒº*RTr%!I$pÌu×5(
+ìëh±ã?}Åp®vg&á2raZUC/ÌJPámÅŸêBAÒ È%D
+jÂXÁZÙ
+²Ýqsg[n÷'ÈÂÒ`@ÃDf
+;å)ks-[§Ž©(IB[¯LÒÁ­û¿ÀÙ¶	Áq±Ý³u1
+t«GVðªîìßfÜcÆöøxßIÄw)wHwmH!J}:K
+R¥
+R¥
+R¥
+R¥
+R¥
+R¥
+rrU]û_¿xå÷*þ
+ñÙÞ¿©œõ5á>x¯l×º»#qBqIZ2)!ÔæôxUÏ+Û5ônÅ¿
+~\œl_|¿%zäz±Ð{Ò£þ3Õ/®Ö«OcŠÝùÒç
+,Äž$^Rú[ßŸžÐÒ5©jÈä9
+
+Dv/úpúTÆzµ~Ã¿A6ü \ÿ
+ zTO;]|'7íêøiÎ×_	ÍûzŸîöÑ}ýýÿ
+R3OWEE<88×ùâœ³^úì³ýEÜ¿÷V?(àW>x¯l×Ñûü5ùrö`i±}òüëgš»ýž}*?ã=Wí¬÷«Å¿Q&ûÂêØ¿è=ÃéQÿ
+CPÈ¥@ð A¹ŸË­Ñì¢ÎïXóËÚgmóY°-î]ºôÓp°œ
+¹á¶ æýCZòÕ»V¥K=:VW{â+Åf¿[ïZn	æ""RZ)[7ÃJt¥4Þœ« JÂòÎ·
+pÁ&!Ãs
+ZnK\œ!IXÓ
+»ª
+²tHeÒ¶¥"!!¶ÊÐ$¥e*9(ú]
+þ7Ú
+{
+CâÝŠa~l·-l2©iymJxt%ZzYÈZ8¥[ÄL+!Åf$L9g
+IÓMBm(nBFAä
+#ÜãZLtI['àË%óôëß¬ûTL
+
+²%ŸN­üF"!
+»©!*Ô2Vi
+_}ÿ
+Ô3Ómk=°ÕŠÕÞØLXèhh
+ZrH
+qYz«QôÍrÛíÖû(äbÄå/ªCûëªËSÈtršñ9P
+RwmáO.Ç:å!H£[3e·S©	XÔ Fa@
+DV6æ7ÚN1ë3¶;;PoU±-ž]mÅºµ8u«P	ëÈ
+:ð\ùÒ'NÂ~T¹.©çßzÚÊÜuj9©jQNjQ$OMwlXzÁaßs
+Ùkßéßr8gy§=:ŽY³êÌÐm¢wöÙg×ÉSV]°z	³åJÓø«ªÖÑ;ûl³ë¿ä©«.Ø=Ùò¥iüUÐ7µc€}þ­ØkÝo³Ó©ÙCVéÓµn«NZÝÓ¥©iqE&ðo7RûA®Dã1Næ
+:³Í[Õ%
+äè)JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()JJRR ¥()Jì³ýEÜ¿÷V?(àW>x¯l×Ÿ»,ÿ
+
Index: /ELYSE/HEAD/doc/Images/onxlab.jpg
===================================================================
--- /ELYSE/HEAD/doc/Images/onxlab.jpg	(revision 286)
+++ /ELYSE/HEAD/doc/Images/onxlab.jpg	(revision 286)
@@ -0,0 +1,817 @@
+ÿØÿà
+«q³å¥Óþ.Ñ~çŽš%ÔLY±3AÇOý7³­EÈMš#ÍE¬É-ÏÓmrmªMvã®¹If³=Q)íµ©iFDãëÍÔii
+<Ë3Ï.Žó,äEöï{-[TÌâ©w4F9?cîÆëikV¶œ¬~Ü_4nýÆîU?âé
+ûÜªÅÒ;u»æuÕ­ØtµiÇÛêoÓ©zHòÔR#ü~ÐíÛX{>¿I«¢ŠäŠ8ÞªŽ:ãJRRn¢ËI«&BËlªùtŠÎ-&šÅµðdÏmûgi².VÓV³ãÛù{Q;÷¹Tÿ
+u.xÉsEVª ±(IC$<m-€«hs<³<¹O2È
+NA®VÉã£Qj5-œ¹"­Ýyå«I
+Yä}hÂÂùu·¢k¢v£<xãÛ1íÅÁ0Í­ÆÖÆšŠžsïÇìÚàæwwî7r©ÿ
+ví}Ê6ý7B©®íLEëËO!gØ±Ÿ]-£
+Dû>­žø+[?ÅÃòö»{÷¹Tÿ
+»R§5QA¡µâÍ¥Ê1¬³ËRIÕ€Ì³#å"Ës³\.Í6Ò/v¯OôÂá"€Ši0"ò
+Ti~ÇòB©U}&dN^à£±œ^­§
+E1
+Óâž«Ýè¹«ãÿ
+mÔjå"[J48Ë9fYÓX¹nl» TJNÛ:6d¿øŽêVzsÏ,ùr¬X-V
+È³=ø©}ýÆ'ýåßügÿ
+åS1ëò)²¢.\	&Ö*}æhej3I"²2=I,Ìó1üÂúÍm²©BER-r4ª."NÚPF¶£¥Æm/QTá¡<<ÌË§Äö,÷~éìYï<ü%Ò
+F
+ªÊ»)ŸF*±cÿ
+ë²=dyŒä€ÌÐ_ð6J,µ
+dYPÜObÏyçá(Ÿ8ÅóÏÂQ} ÓN
+ÀÓ4Ó{ÇþôðcÅ÷ÚâÅœû&ý
+&šªnü|Ãÿ
+œí»ÍÓþÎdÓUÙVEØ>Èìb4<6EmëNàPo\nB
+)&Ž«5rŽ\É%ÙöOp£ñEÖMS
+éUWØi,¢L±6æÍ%R{H%i"ÈÈÏ""Ï""!á­þeà­
+Ã¯ýxs
+tŠÚâÞ?ã¢º5³nqíõ/æÊÞ«)£csÇMXãáŽ€PÜ' Ý¬€óÊÿ
+DJVÓhíÊ$ŠJ¢ÕPµŒšI5=%Ã$ê"VIÈÒ<ò,»/aö'KuRjxIFšMsùNVÚÞWý%RÐGì$³>SÌÌÌm·Ÿ\­q×6ŽíÎ=ªèÇTböÎ/m3òêø°°ŒYÇY>Èàýºø\t&-úeÑI«IŒhŠÌ)¬ÈpÌÃQ¥
+%l;9¶!°­Â~¡xP?ûÌJÃKýEà­
+Ã¯ýxpœŒÛlµFÃøt6ZdU6jyèqJuõšÍ9EE©Y)çK¹ÚQUoN9Å·5Ñ1cúÎ>=
+ñMQTYÎÖ=šžqq¥pö©m0Óµ\¥Em*ÖÉsÚZ»ä3#ìþ<ŽªBç»h·}aÜäž[éÍ/$ÕçY{E"ù;9çžUXXµàíŸ·y­eWqœJöOJ&%)ÏÚI{DCòŒ>ÄµG6ùûµ·ŸŒ<j­H_¢ÏcÅ.ùÆßÿ
+UµqkQg³2-$i,²ç/T
+Ä±%FrŠ³ºÖì=J'7.rÜJ^-IÈi%fDD³Èj 2HXpÏ QêÅ*ÝÕz£(éš(²jÕ	Ž¶[2k{23pÉÂKej=%GÆK¹C9P QàÈjÒ~àpÞeÇÐµÇû4I'i%€g£%ó#Ho
+<÷d7BRVÆQeSÒŽŽi"Ú$Õ×ËRu,ç8Ð¯ïöÛqÓ7£üÜ»5îSèÛkÓê¹tlû
+³ël
+ÕQª{­žó,­ÇRIÄÜ%šÜ"Nh-õâ»XtÓðúÀ
+"vïp¿RRª`ÉšŒËQÔ®°Úm{Gj?TFBÒyz#LÄR­×iõ6Ó£ÓªÓhPÝXd¢8KiKRsÖmš("ÔFêLÔiIç·
+I£Ï2ä/d.W
+NÒÂºÝ~Š>:K+qÉãšlÕò,Ì³Ì³"Ì³#
+ 
+Þàö
+ÓšS.©Î.RâÓüÉ8³_+­2©×$(ËdÚAöL@¯[8­rW«ÔËqÔÈó&UjŽÃô'TDŽê
+8Êq+F€-H6ÔŒÉY+>CAÒ
+¥c5|šå~£LŠH\¥UdF¶aØ
+öÓRÉIpÛ^IÐFRyW€Í]ižÁ|A²Š×D%¢¢Cš±5tiq"¶û²mÈÇŽYíºÇIIq
+I
+äQv|Ü×þ P"É:ÊmJtôÓ€ÕYŠÆ2¥%, ³mí4DzÒ©­yiITcQŽêÛýjÒ+sïeìuëÙíKÓ«"Ï,òÏ"ÏÚ&
+
+°á¿)è[-žl(åoŽfFJË°e€ø©xµwÒìúÅFŠOmRš/Ÿä:r¥î¶Z7jÔešÍjVÐóÓ€ÐœZ
+
+M>œU®C²šU¶;¹í¢k²I¡ŸŽÏ$ä2ëH³ösèØU`Gp·ZTs§.m¹!×
+s©ã|Ó×(ùvŠk%ú¢<²2È?
+ñg"ôCx³Ì¿z#X.å³F·Üõ23©9ir\]ûÆS©×T¥$"#<3È33á,ó/ãD^pÏyñ¢/Dæé Rnz
+
+r&ë§ÉÓ¶gh€jÒ¢Zzäd€ò°#b[î]ÔÝNnäÌøû²¯.FÉöµlÖ£ªË-jÌ»É
+Egx³Ì¿z!Ã<Yæ_Æœ0êÏSy·Xºõ=Ó
+kìŸ'KªKšY-²"#BLy'!(8edAz{±(
+ßú{èL§¶eåÜiŽkÒÒMFg	9Yf øg<ËøÑ¢
+3ÅeühÑ
+Y¥N-)-K25(ËRÕÊ:Ö-s5N¹N£îûQ¹:44©qI¡
+
+²"pÌkZô'RVeá,ó/ãD^pÏyñ¢/DÁá]ªdkÔgdGkÝä:ŽÇidãl¡kpÔÛd¢#Ò"<2<wžiïöýoOò­ÝŸ;=ÐîçÝZtî­×/øôêÏ®Ï>QYá,ó/ãD^pÏyñ¢/D3á,ó/ãD^pÏyñ¢/Dv
+YóeK~M-Õ"l€Ì3_DI€õ¹
++&fhI€£,Ï1ËÀO·ëzníñÙîw>êÓ§tl5l¶¹Ç§V}vyòÏ
+ñg"ôCx³Ì¿z /4
+&ŸÓsïç'ËûbŽ}Ìµ¯®3Ë<²"öW
+ìDÓ#SY£;
+<h¯CFç!¥ª;«7
+ekC§5fyfbx³Ì¿z!Ã<Yæ_Æœí
+eê­:Šª4TJŠ°Qâdm¥
+%IR4$É*J©	Q!I%'#åhÃ+!­£Q7¬>·£¿SÌ=
+×¯RqµÛhö=
+ôæbx³Ì¿z!Ã<Yæ_Æœ»~Éµšµ
+5!šR"S·±6µäûM¡§IFf³5ÌFfyæbÂ3>âÏ2þ4Eè
+ñg"ô@i©;¬ù²¥¿&ê6RfK¯¢$ÒzÜK34$ÏROQg¯pÏyñ¢/D8g<ËøÑ¢ÍÀO·ëzníñÙîw>êÓ§tl5l¶¹Ç§V}vyò«8ed5µJ(j[c¡
+JyLÇnN{ra³^5ædfÙ$ò3"ÈAðÏyñ¢/D8g<ËøÑ¢Ã'l¹MRhM>ÑÑD$žó"
+ÞF®ÊTQ/Õ+IÛÍßrkÔÈÎŠDå¥ÉrdIvCïRIN§]Rd,ò,Ï",ÌRøg<ËøÑ¢
+3ÅeühÑŠ9qãÌôIl5";èSnŽê	Hq
+,*#ä223##¿
+ñg"ôCx³Ì¿z &Â»
+¡'FuÕ²ûÓä8üD2­M%Tá­Iaµ'ñÍ7¬úuÅ
+àKu(ëqÖÝT×ÖDãN8hRÍ*qiIjY©FZf®Q^á,ó/ãD^pÏyñ¢/D
+ÙpâÑâ3BhãÑ)ž-:ó!ŽI#'Ò¢R%«³Éë
+ØŠIŠœFvDy1YœÑ>C«LvN6Ê·
+M¶J"=(2#È³#È?
+ñg"ôCx³Ì¿z .ÛFÞ­ÕYªT©ûY0šÆâ
+qœ«
+Q)LºHQ­+nÊ|§zß€Á Ñ¢ÑéºÜ(Ù°Û­ÓB
+°K3VEØ"3ä"",
+x³Ì¿z!Ã<Yæ_Æœ`Þ
+O
+žQ¹?Úûpn¢Ÿá¯i£Nz}W.ygøònâÏ2þ4Eè
+ñg"ô@Y«¶
+§\:mN¶v ÂXÈu¶å%$¢AºÚHZšô­DjIM&FåE
+3€]$³
+
++Âg·"Jå8ÛmÚÔËµqIFÑäžFæ­I5á,ó/ãD^pÏyñ¢/D`ÚtZ«*m'büm¶äJ€:¶bm©ÝJQ¶Î£ììÒC2ì³
+Ïx³Ì¿z!Ã<Yæ_Æœ`vÑ·pHr·UVÙÏå
+¥³m%êºÌ£,ÓòçÙåþâÏ2þ4Eè
+ñg"ô@N=VC»$®ö€1:ØL§Ìãe°'Û%èFDDn""<È¥ZÑ·ªµYuIôýŽÉ¥ÒslâuÄZJo"Qff}q¯Æ)ü3ÅeühÑâÏ2þ4EèµÍ²­©tê< :Ú(š&é®ÇóÆA7³Ò²s#FDe«®È³Ï"
+~Éµšµ
+5!šR"S·±6µäûM¡§IFf³5ÌFfyæb©Ã<Yæ_Æœá,ó/ãD^
+5ÁŽèµV*TÚNÅøÛmÈHulÄÛ+S»£mGÙÙ¥<eØ3!f
+ñg"ôCx³Ì¿z 4ÁY`Úqš4jú,äÏ§³º
+=éRKÔjÍ]rÔy(Ì¹{
+Yá,ó/ãD^pÏyñ¢/Dã8ed5µJ(j[c¡
+JyLÇnN{ra³^5ædfÙ$ò3"ÈWšžAFjñžfÕ©ÐeQ%"Õ.1<êÛqY$og¶ÍHlô(ÖhIš³I^âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@i3>âÏ2þ4Eè
+ñg"ô@S:¬~ùìOr¥ôl<;Êêÿ
+=¿Rm¶³O^Š€Jm[-$ºÌÔ
+TC#ÒKÕœ®Zí¶íFiÕTëÎÈ$.I¡
+ÇC
+ªRRy <
+óëHÝÌzþsžoúSÈ0
+kÞé}êz©Özæ£üçÕ!&svÅ2€F¥Ôb
+amA(ÆÝ$¶ŽÆR]Ò·ö
+õNf²IæUõ/úÏPüÔðÙ1*çµi;p\4X²Ú
+:kMíØ^€š
+jB²Q
+FCÕnü[uhÂN
+ÜŽóÕ¥,eo\º²œîÃN}~Òv€òÿ
+k{š]ñ|~pÞê|_"_(	­î¡wÅò%ùÃ{š]ñ|~p &·º
+ßÈç
+î¡wÅò%ùÀBÞê|_"_Th·
+"³Q«Óéï»ºi3WSŽm:önh>]"ZØ4¶FD
+t
+«Ž9y¹RRa¬ö®)³mIÒšÖ²ÉWì0¯×.
+4ç«ô`HQz+..ÑJc)ÈÛ},»×¶J%e€Í\©>_`Ös*Ð*qÕ!º=bžµgÐTèòi³
+ž·-ÒÑ(H4)M¶%
+|¥*bufÿ
+"q³I-=y¶j>S2.¬úÕrg_÷ÜjõauKzóÄF^š<äEÇÛ4Þç[
+Vo'JÉ9(²ê]ÿ
+×wS RmÙÐ-8±fÏên¶q¶®¶dâÏQ Ï4 d­Fdb-ÌbŒ YÓ«òíöŠÇ*jy
+K3Ry
+
+s7MDù:Ð€&EÙÔôÿ
+ÇžÏÓ x­Ïº+Ý1íLlíaX÷úd¹÷E{Š=RÛÛ=:ŽhS^÷Lôcï/Qu/zÏPüÔðÙ7Ôœë=CóQþsÃd
+Þ«wâÛ«FpVå§­)FTh
+z\kP€í·
+ÛEËjCi
+JÍ$E×åìd:<	µZ£.Ó+QeÅ­dóÎdj^ffi<Ò-9i2#,X@sPðêÏTY,;KuåÉÌÇe=5÷%ÍK)
+YºAIÉEœQç1mÐ)6ì!Qânv}r
+RS<êÏ5žã3ZÔôfy`I
+z0ÊÈFÉ)¢}©Öó
+
+§
+Í{D6ÞœizÔKi$HYdJI]ªiÑvÛµÛAM9[²C²òYå
+;e+K\§O2<Y-*°möÊÝiÂ~TÇMÙžkJJ5(ÌÍ&i_ªA!"JH»-áÕòén¿!*{ŠD×Þ}RN§V³ZÉfD
+€³>NS°Ts¬õ8·Ku
+š¿SÝ1æŸËéòtº€º
+ÐK""4$É'rr·èôÊ-
+šP"#fË-"K²|§Êffffgï
+#îtå³*Ív­Df[­-ù·Ô
+ffH%TiIôgšÅåC|=ü
+NÛpœŽQl¶©$9Öä¬ÒD]q
+^ÆBÅåC|=üÅåC|=ü
+7?
+Mð÷ð	Ë&ÄàÅUÙü2Œ+{F
+
+^§ºNjIë$é,ZrÏÚ3öÀ\0[µœÞL#`»[ÐýäÁò6
+0ßTË+
+«7,Q2â4aNsg­n%Ž©DY€d£IesÌ;XV=Æ~Ån}Ñ^éjcgk
+ÇžÏÓ x­Ïº+Ý1èúÞÙéÕ£B÷ºg£yz©Özæ£üçï
+YeYWxGŸû®^ö17ýÝ	u
+c¥ÿ
+
+
+¬Š
+;byqúóA¶§sužæ,·YVrØÆ
+Vª6«³r=Z
+VòÎ¶O
+f§TK© ³9;<ÉÇâÁç
+bm
+aU.5Q=S°^ÇsJ+FÉí²Ž/^JÖ¥ õÆ¢"Ï2
+Þ.ñÛþÑ~%Bé
+æÐµåG±¬NÇEÕ§TÊ2SfSZweË€orHqJIj=ôs=9šÝÓm<WªWgRj¬Rjr(µ§YLx-Ú&ßËÆDÜ
+ÍRw3"4­i"BR,Ðë»4íŒvÿ
+A)ÖÝlÓ«<ò,ÈÑeÊGa%ís[Ø¯uØÁ¢}:6í€¿"<h0ªMEŸ&d¶
+kûjÊé
+ÅKtàœwðÞ£Î
+®þûÔyÇG(žpPÞ¬ÜWÕç@D¹*rØÔÖÔ=)$
+¢ÜY!å(³BsÐ%&f€šÇK©ò¡wÜKŸe~û­TY·®ê
+<5ÄÛO°ÊPHSŠÜt¯^kÏ4)$fäË20àœwðÞ£Î
+®þûÔyÆ>\XdN%±#4§}ç	
+ŽjZ|I!
+üKÞŸ)s¡Ù×ä'^ggµCS±sVe). µ]rO2ÕFYVž/]ü÷šóë¿þõ
+q^êdÄÊuSíG/[Ú«ªŽì§RÌéí7&Q®| hÌÓt%),I%$Yd6À§ë¿þõ
+pàœwðÞ£Î4°p^»øïQç
+×ýê<ãK
+ÇžÏÓ x­Ïº+Ý1èÚÞÙéÕ£B÷ºg£z¢ê_õ¡ùšÿ
+©Ð€=-H~S1RëïÄ®8KR%šòsµZ+ÛØu×š²çÛñ€±4ª"¡)í²4dóHxÖ%NPZrSyöHäñÎKp¬6&<ÓÕ¥VóIªÄ3$¡jZ¹933ä"3
+ÜeÛÍŒÿ
+­n5V!·+C²ÈÔ÷ÛµFBä!œ}c©Q)ÍN
+fWéÌÓš0.ŠbÚt×cH@Zg¡·
+åúT×XÏS&¥3T¥,ÍÓS¬Êý9uÔÌ[Nìsš
+Lô2ÂÒ¶ã¢JëÙêdÔŠsJ¥ºuþ0.IWfôÓªvfïUopªØé³UbrŽ;,O}»Td.BÙ7Ö:ÐDê
+nÊä|vá5Go%¶÷
+(zdHÔ¢-gŸ+ÉjÏ$ru§Ø©¢\UÎv
+$²©lŽ`#qYš³Od£mdF|hV]ÓçG­)RäºXaÌužêÔy%	I/5(ÌÈÌÆei\4±rèÕÊc×URé®ÒªT€KB¶Ú
+&HöQŠõ+4æóŒz4hÔÝ÷Gœº7Õ
+ŠÆd:T
+9°mZ
+CJRO#Iäd\YÅœ.Tü9±'Nô©rmj{ÏŸó·
+Z#RÔ£åRÌÌÌùLÌWñgµ]Ûý	7è&lþÕx{ïJô	ÝÁnÖô?y0|
+íoC÷ÈØ
+²7ÕÖØlCó7Ëîî¥9«Õ¥dk%dŽ!~©	2Öh=
+Tf²ùM¬VÔŠê5Ykë+RM.)Yè¬õ%¶,I%)"pÙã
+Ë7{rnò£a[-Óe£>»Nµõùjëg=I1"À°`Æf,HØVelÛHI2IBR\I!Ìo¶jžÁ
+êíÎæ­ØU'@%*hæTYy£
+²6Rmd¥ëyZmµÚ5	ìÊ<:J.-TgoÅG¹j(qé(âOêÔ­]w/^dVfå`³mE¡CnBDÖ 32ÔïÊÙ$¥7³B	)"$$É%Ëf±yO»©mnmÑ©¹PÔò\\GÐy-µ©I3$¡HQ¥:²Î¥ÿ
+ÛªTj8UšjCóW
+CT¥-+#[oõë-¢Ìy©*V€+#
+VY×œes@ÝW.Væºêíß^ZÝ^©jÈ³Qægf`:xÛqZl¢AªÊºÒktw©£Œë	~c²VpÒóJ±RâŒkÔKÒÍDŠË:e§
+««ZdÚ(š;÷K©ŠFSiOòä ãQëJPHÛ[Ô£íhË!£TðÀªÚ³íœê­:|äÔ$îú/ªBPÒá>ãu*$6uª.·4ö
+ÈÐ0ÀuGº[¢<õiÑÌQ!ÇÉ+Ú ÞÚ8­º²A¥Nj4Mi2Ù£Hyç
+0úÇ¬uË¯Tm*+õèiI©n4&Y:ÃÒÒ¶É"_Zm ²Ï#Ii<ÒfCÓ8OŸŒVZ[û»wÛy!níÛ«tmöÚm5õÚõg«W.yçÊ#!a%Djò©juÇNíFKŽŒÖ³YA[
+­F¢NÏ$«#I^@
+ÇžÏÓ x­Ïº+Ý1èúÞÙéÕ£B÷ºg£z¢ê^õ¡ùšÿ
+ÜŽóÕ¥-3>ô`ûä¡þÚ ¹f3%îŽó0æËÜÕº<§ZÉì©FqÅ%¶Ò¥«J¥$ò#2íÎæÞ±o«q`ŠY÷UVXšYTIžeYªÝVCQôSSOk1ù&ÚãŠ#¡+2QZ
+ÆTj­Ô8uŽÂD÷êU	Î¢êyŠ÷L×€µ!­)tÌÒR>AÑ-5b
+Ó5
+
+yVê
+Fú3Qi9¶N°ó.§nKJI[km'È¢äÐ0¥YªXÌ®áÍB©têlGØ&QÅôbxÛ#2BMò#Qåd@)zUÏ§ÙÕ|IŽ©ÕÓŸð
+M6R÷Á3·;L*Y)jÝ
+IfèQ'N£%
+4.
+p+w·÷·}7&Éî»]Ó^Z=_&õ{9eÊ3U
+ô7
+ÕrÒšDzß€¢ŠÁÛor¢ªEDJŠ(£-©­&KOYÖ»dj¥Õã[õIôY6|è©MuöÄB·úÒæiy!
+©#""<pÓ¬Êý9uÔÌ[Nìsš
+Lô2ÂÒ¶ã¢JëÙêdÔŠsJ¥ºtÉ5iOÎ
+Æì,(ZGjYRÏrß6
+[fœòËjEI%é5æFS8SônüŸS¯Ûòb"àl§5
+ó.<œê¥M­RM$Û#J³3J2ÔDéºž¹÷Œ
+dÿ
+Áª±åÃ	ÍáLSòÓMRwS_mÖÐmfµlZ%,ÍeêÌZ£Ú·ô[âEÍ2ð¶dnÈÑ!ÌÕ¶ûzëë"mG5Z{¥ÂÔd¢,Öò
+pÉŸ®ª¥Þ«~T¶cOz¥*Ò^ìŽ7Mä¥2keä²ÞÐÑí`ÉkÈÞí·]ÄÙúÔ))¶jšUžÔù#±]ÓÌEun$}ig`³åtÞ$	-
+Ö×á*$kçŠUiq*ò«HžŠì§yòÚä:ŽÛ©Ä'I)+iëÍ
+w4+ªÆZvS
+'7M1OËM5IÝLA}·[BQ¶=Õ±h³5«2Aj"L5gëÛ±¶÷L)ÕÖØ¥nHíAÄ'k)u
+W2KB­mìúÕ¥Lj5±Ò âuÕ1º€š§djEq[ê]K'IÓtË\u Ö§4dñ$ÎZ4
+uìcêU¹Šë¶€F&áÐ7­€nGHÍÝÒG­y\=&Y}³ÿ
+"åÌù3ÏZ8|ðøµ€:]MŸ²]ŸúŠ|Öš ]ì)Ž³ªÇ?ûUâêð¶µº^ê±²¢Î)X¿üVSÁ
+3DÌõË8à~)óÃâÔnp?ùáñj7Hhà7z-
+sÚ«Å[¯\>æÇÈÎ8|ðøµ€
+Å>x|ZÒ8¢ÑÇ=ªŒLœzäY÷6>FqÀüSçÅšÝ à~)óÃâÔnÑÀ=9íUâeë×"Ï¹±ò3â<>-FéñO£tèŽqÏj¯/^¹}Íp?ùáñj7H8|ðøµ€4pE£{UxzõÈ³îl|ãø§ÏQºAÀüSçÅšÝ!£z-
+sÚ«ÄË×®Escäg
+Å>x|ZÒâ<>-Fé
+
+ÑhãÕ^&^œr,û#8à~)óÃâÔnp?ùáñj7Hhà
+G
+öªñ2õëgÜØùÇñO£tø§ÏQºCG
+
+²œ&txïaÛ
+§]J!é4Ãm3ÈÖ¢DÅ(Ò]Ò
+EÈF|/U]üÞÍÑ
+÷¿û
+jÝ}[mÍ§OšÝ¿Ë6»LóûNÏgÊ4
+lòÓµ~
+EFim,Ž¶§
+4äóYædgÉEÎþsžAúkÈÿ
+­ûfÆfÐ.bà3RQCÌV]7#:ÃÍPNfqÑ©k%8¢3Í}+è
+&DhJÍ&¢Ì.<&€Ö)Ê¿MmÖêìH8j}~KJÚ²ŒšiÒ¢"õF|£C
+l­dâ25¿Sb€²>³ÔÑÐË#Ðj#3<QµLµæVâÔ#Ï¬Ó£1q¢çræÔÄTfo¬Ümn¢=&-(È$æcI
+GU'hû¯4.ó{w_ß£ŒR:©;DÜÝ|©¡ëø'­)\áíÕGíØÿ
+ÜŽóÕ¥-ü
+çT;ãiÕ£
+Íå¶
+Ó=²Órkn4úQJa$ê
+1d'®-HJ²?e$} 
+qg
+ßÚ~Ð,ðãûOÀñú
+ÇžÏÓ x­Ïº+Ý1íLlíaX÷úd¹÷E{Š=CRÛÛ=:Žhq·œÓ=ûËÔ]Kþ³Ô?5ç<4«·¶ÿ
+RTé#hy ºVNÛ
+
+jRY
+1)²éëUn€Üí8ûú
+JùºÂÞeÄ­ä Ôµ}±$€&J#uš·'SEÍqAmæâÕ,ÙsXCÄDâPì%­$¢#2%d¢Ï#2ÏÙ1]ã39ÀŽü1Š-ØÑ,
+œ`ÁÌX±íií0Ã($6Òd¥%ÈI""""ä"!ù
+qÎ§áý1l
+qÎ§áý1l
+qÎ§áý1l
+2ìQYŒ€Ébâ²bC­7&¶ãO¥
+4š*tÅTEêR¬ÙId
+;¬Ÿ­
+æÕfIåËÚöÆ <1=õ²Ûhho<á6Ù+±æfgî$¬³,òË<Ì}ÓÑïLDG
+×RÄëâºéÒë{jg"_Fåd!D®¹¥dTDJO)/3B³"ZNº8b0Ña¥
+-JõJ?eF~Éæf~Éa²#uÍ^Ù~P!KRÏRÌ-Ggíòõô?U+ðR£RT«jBÓê­Œ¥ÿ
+Z	FÒÍ*A©&~€ô­IÌœ
+v
+Ç(¬ÞRd±qYM1!Ö[q§Ò
+IÔ:bÉ*"õE©	VGì€²DÌ
+,$ù
+ÈÈû#VqbLXYvÌ!ØÒX¢LuY¡m­,,Ò€š¹HÈÈ»Ì
+GU'hû¯4.ó{w_ß£ŒR:©;DÜÝ|©¡ëø'­)\áíÕGíØÿ
+2ìQYŒ€Ébâ²bC­7&¶ãO¥
+4š*tÅTEêR¬ÙId
+
+ëÜÙÝŠ}p°q?3îÇuøí:äg
+ÖŽ¥TRLýIéZ{
+2ìQÝw}Æõ€ì[²"\«žÝtòÝiÜ2ÏeÖË2<Ì~×z$aŠ
+
+ëÜÙÝŠ}p°
+
+ëÜÙÝŠ}p°
+
+ëÜÙÝŠ}plhÓaœdv€Æ}µ4ó. ¢ÉIROÈÈÌ²9Eg$É
+
+lÈr
+%$ÇYy¥ÚÒÂÍ*JÈË°8xW^æÎìøÍ3ë-§Âº÷6wgÆi\l
+,$ù
+ÈÈû#VqbLXYvÌ!ØÒX¢LuY¡m­,,Ò€š¹HÈÈ»Ì
+'$ó##}Ì^F©ö¬èbd
+,$ù
+ÈÈû#VqbLXYvÌ!ØÒX¢LuY¡m­,,Ò€š¹HÈÈ»Ì
+GU'hû¯4.ó{w_ß£ŒR:©;DÜÝ|©¡ëø'­)\áíÕGíØÿ
+ÜŽóÕ¥-ü
+çT;ãiÕ£
+1dz¢Ô«#öRGÙ"f
+Z	FÒÍ*A©&~€ô­IÌœ
+v
+Ç(¬ÞRd±qYM1!Ö[q§Ò
+IÔ:bÉ*"õE©	VGì€²DÌ
+1dz¢Ô«#öRGÙ"f
+ÇžÏÓ x­Ïº+Ý1íLlíaX÷úd¹÷E{Š=?RÛÛ=:Žhq·œÕ=ûÔõRÿ
+ïÄ~õ-?ÚYQÀ
+1dz¢Ô«#öRGÙ"f=ßýêZŽ²>¢-
+ïÄ~õ-?ÚYQÀ
+#J¢Ì²FC×m&K£ùò
+P€žºd·_YÏ-
+ó|©7H|Ìú×Ryšz«Kµ€×§d
+2ìQYŒ€Ébâ²bC­7&¶ãO¥
+4š*tÅTEêR¬ÙId
+ÇžÏÓ x­Ïº+Ý1íLlíaX÷úd¹÷E{Š=?RÛÛ=:Žhq·œÕ=ûÔõRÿ
+\ÙQdô$3êinfÓ¹#4òòšY{y
+ÆÛæªµ±uAÏf­>ÂVl@
+ºdZ
+pqO
+%$ilý[N'"Èó¢\¶[)³_òu)nº³Q©kZZ¹LòÔµ­F^ÚèP«Ž¯_TÈ
+ÇžÏÓ x­Ïº+Ý1éúÞÙéÕ£Cœî©èÇÞ§šºýgš~j?ÎxiW'olÿ
++Üæ]Š}L°q?3îÇuøí:äg
+ÖŽ¥TRLýIéZ{
+2ìQÝt;
+zÒÞ%]Õwsítôä-ÎÂb+²äY)>ÎZ*Hi§ÁJ÷9gÅ©Sl
+W¹Ì»>-Lú
+`
++Üæ]Š}L°
+W¹Ì»>-Lú
+`
++Üæ]Š}L°ER»wÐ=íÕŒŠ%ERÉ¥OŠc}vÜÕjÞÖÛªhÝÍÆNË)4ìôìo<ó,õgØ,²åÌ6`
+Z	FÒÍ*A©&~€ô­IÌœ
+v
+Ç(¬ÞRd±qYM1!Ö[q§Ò
+IÔ:bÉ*"õE©	VGì€²DÌ
+Z€ÖzdYj<³?o¿šèti«ZæTÒµ©DIJÏ=%±hò/kÌÿ
+
+\w5új:¹rJÕ×šAòýšÖEÿ
+a|y(E£:Ù|M­ÂÕîëúÑŽ¥&5ÅYE=Å4O¶\Qh5Hõ%&EÊF]Þ8ëãºÝ%$:zVFYêi¢ÉN$²RLÔŠ²3JŽNye>]¹#Õiª¬IZ"
+~¬ùºñ»©fµ µJEÖ6HAr$"î(ãEŽœLLÅ)Â°Íz®Í¶û³'ªS¬¥³2J[IÉ¶Ò$Ìô¥9ä!ÀÈHµU5N9~]B
+mMž­
+#J¢ÌGÙ#!ú
+kjPqµ©
+DWT$ò4$ò21Þ1m
+Z€ÖzdYj<³?o¿šèti«ZæTÒµ©DIJÏ=%±hò/kÌÿ
+Z£AêAg€ò2Ìœ®C2þ³¡Ñ©-hLJ€å)+"<µÅÓÈýŸR#þ¢b1»ÂRØžkÔõÏ¢LÜ²
+hÙRöh^h3#2ÉDeÙI
+,$Ï###22>Èøªi6úÌxöÞÈágâŒ¥ÏÚ ·
+ÔiJI(Fç¥	"$Piä""Ë"Êÿ
+¥\ÏTkôå°Šç)N%FddŽŽéèÌ²ÓÊárü'ó4JE7fq=TAÄ}NÍUÛrê
+N­Ìæö*fÛJ+äo22Ëíóëudy~é­5êy7
+*%ZtT]ÜN!
+dÉ
+4òú¢,³#,ó#Ëá#
+. )7µWš5N€ÝÔ
+×sÙÇRe×$¥FgžF'Á
+&iÍìÇ!fË¬(m+BîeÒd­'U<J
+C¶©t»&
+lîúTJktÝÄ¥Í»lÒádIV€FYdy&\|,æÒÌðn¹
+gøYÍ¥à(Ý
+7@8§ÂÎm,ÏFè
+
+7@\À3|,æÒÌðnqO
+ÚYÐ0Lâ
+9Ž³< 
+Ság6g£tÌ
+7@\À3|,æÒÌðnqO
+ÚYÐ0Lâ
+9Ž³< 
+Ság6g£tÌ
+7@\À3|,æÒÌðnqO
+ÚYÐ0Lâ
+9Ž³< 
+Ság6g£tÌ
+7@\Æmvú«íµ®ÈSLiNWìe
+3!.!¶PóÉSZSÎ6RB["YTÈKqO
+ÚYÐ)ð³K3ÀQºæ
+gøYÍ¥à(Ý
+7@8§ÂÎm,ÏFè
+
+gøYÍ¥à(Ý
+øYÍ¥à(Ý
+7@IÛvEmN\ërÐ·èÒÜhÙ[ð)¬ÇqH3#43NiIåØÌÚ
+GU'hû¯4#]óÕ¥+=ºšý»á¡5¬+
+ã?Lâ·>è¯tÇµ1³µ
+cÜgé<VçÝîõ
+KolôêÑ¡ÆÞ÷LôcïSÔ]Kþ³Ô?5ç<4«·¶ÿ
+?@
+®m&[Jq{MhJjI
+FiÔYåcÕnü[uhÂN
+ÜŽóÕ¥.jzñþdgæXi
+d)ÉSdªcQã¡$Fµ-Å
+DI#Ô~ÎYï[°ñÖœnÀž)õ|"Þê{XŒºFëyò(€dyòdGÈ+¥žÝrQîûmôÙ4ÙQàÎ·dÄrSkKdôešÔÙ%:§	J$¥<§Ê,ŽI²,¬
+Ã7-}2ß¡È`q×4u€K4¶RfJ"3ÈÒ¬³Òyssx1÷»X3ñ©Þ`Þ
+}îÖ
+üjwCq÷Ýõÿ
+O.Yr4?~1Óþ¯?Êo7ã
+?êðãüŠùÅÀ
+8kM:]
+c®ç\­±Ö<ÒÌË\x,×
+¡n$òRTDÓcÆœø8ÕVö~Ý7fº²Í!§(B
+Ôµ:®UòI$9æz²LØä£³:>[-Tª*©M"oÊ6gj³tÌÌl(O.D.B",ÌùO
+ÇžÏÓ x­Ïº+Ý1ézÞÙéÕ£Cœî©èÇÞ§šºýgš~j?ÎxkÍDÝÅá(Ìª©Niæ¡Èq²Z'tVdJ2A¬³ËQä¥âNTåÏ£ÌÓ[­Röm1÷*)m3SÞ«nÃœ¹4éìyòe¬pyÞý¯?Lúç5[¿ÝZ0·-<õiJçÂïáßºG8Q]ü;÷Hó
+gïÚóøtÏšïÚóøtÏšq`¹ð¢»øwîæWýÒ<ÂÁç{öŒþ
+3ê!Áç{öŒþ
+3ê .|(®þ
+û€y
+ßÃ¿t0ŠpyÞý¯?LúpyÞý¯?Lú
+
++¿~é
+`áEwðïÝ#Ì)
+w¿kÏáÓ>¢
+
+w¿kÏáÓ>¢çÂïáßºG8Q]ü;÷Hó
+gïÚóøtÏšïÚóøtÏš¹ð¢»øwîæWýÒ<ÂÁç{öŒþ
+3ê!Áç{öŒþ
+3ê .|(®þ
+û€y
+ßÃ¿t0ŠpyÞý¯?LúpyÞý¯?Lú
+
++¿~é
+`áEwðïÝ#Ì)
+w¿kÏáÓ>¢
+
+w¿kÏáÓ>¢çÂïáßºG8Q]ü;÷Hó
+gïÚóøtÏšïÚóøtÏš¹ð¢»øwîæWýÒ<ÂÁç{öŒþ
+3ê!Áç{öŒþ
+3ê ,Õ:€úÏv¿µÙç£¬JrÏ,û^Ñàóœû^õàóœû^õ !ž<ï~×ÃŠ}D8<ï~×ÃŠ}DòÕßžKHŠRå"WvÔo&)ºpÜÜ¬¥Ã6IÍiÒ¢ÉG+-DdFŠð3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@S8<ôx¯€
+
+Åz<WÒ>;ßµçðéQ;ßµçðéQLàf,óÑâŒ^p3yèñ^/H\ø<ï~×ÃŠ}D8<ï~×ÃŠ}D3³ÏGñzAÀÌYç£Åxœ!sàóœû^õàóœû^õÎbÏ=
++Åé1gâô
+ÏÎ÷íyü:gÔCÎ÷íyü:gÔ@Wáav7Í1±{hÒóÒ®
+Ã,ò<×í¯ß8Iõ|«RçÆd3!ŠÞšQIÍLÛYìÜ%%&¶#ä#4(¹r1Ä
+@²¬
+rÚ€Ü÷kÛ±Ö€ŒÔÙ=%h7r%­1JRÈÒÐ=Ù4šÆ3aÝöecqžBz
+Oœ»æäDºŽ0€/4ÌafzTYu€UËeiØÙÚÂ±î3ôÈ
++sî÷LzË7²£zþ¬\1Sm­;ªôs^ÑŒÒ£b*YËØÏ2ä?&¹÷E{Š=RÛÛ=:ŽhS^÷TôcïSÔ]Kþ³Ô?5ç<&po
+Î^õÆ"â
+5p.ùôØñéu­eœ
+IT
+eÐËÈ²"äÝKþ³Ô?5ç<5~£¿Y1ÿ
+yÅÍJJÌ«#2,"
+ÏØÙJç_hSèìl¥s¯?Ž)ôCLÅjÍVÝÃKâ¢*gÒ©¯ÎhŠ0§Z^Åá¡IJÐ}rRi#%räydyÍ
+€ë·éU·êÍ^6ûLÒà=
+ê2	ÜmÇMO»­¥­JdilDY
+di0áû)\ëâÏí
+}}®uñgö
+>t°Û®ª5*ÊžEIRªÑ ËNv,
+N§¶Ë¯)Ä.C©K&I4£$
+2c&$ÁŽ®«Bí*¶ýä«b=5&CRkKCÍ É
+¥èuHqj$nh3ë<Áö6R¹×ÅÚú û)\ëâÏí
+}éc¶3]XqßYŽTØõº³NS)mA\Æb),:R4:ñ­kQÚRO*Ï13ybõVÎÇ·,Ê¥3|š[gVtØ
+TÆßÚ)Ž2µ)Ý
+Ú-³mŒS¯°Ùrf
+?±²ÎŸ,þÐ§ÑØÙJç_hSè
+Õ}*ÝÃëá­XÔ*]ÚÕYÙ
+¢JZiåQÂ7á$'fDw;®ïê·è5*«nÒDJSµäÏ6m¹
+,d;
+ÒdŠkJY:,Ôh-&i,ºàçû)\ëâÏí
+}}®uñgö
+>Wë8±Ô\­bMNi74Z
+!Òé·5ÐÙ ¥ÐŠódKVD¢BºÞžòïìMMãº(õ
+2àŽéöÜÚ*ìZ[­4ìø¯©EÙ
+Å-h42îN§$æiQ²P~ÆÊW:ø³ûBDce+|Yý¡O¢
+Ö&^®Ü;¥Vß«5xÛîV%3KôwšÈ&[q·
+5>î¶µ)Q¥²5dy€öÀoØÙJç_hSèìl¥s¯?Ž)ôCr
+}³Y·Ôæ3Õ°ò¶íŽÌ#5'jtš.ÅL'ÖêQ^Bxµ­ŒNjAé#ëTGi0ß±²ÎŸ,þÐ§ÑØÙJç_hSèä
++tÎQžñOJÞv£±a8Äq\eí©$Ò£%[š°}®uñgö
+>>ÆÊW:ø³ûBD4l2~ÉXF SéeÆ«ŸÅ9ØÐÜžI$l€
+×M
+Yë=&¬ÈËÙ;`
+7ìl¥s¯?Ž)ôAö6R¹×ÅÚú!¹
+ÉÌ³IädGîîbÝ§fÙU»
+ín9ë~RFö±&ŒM®2
+¥n#­=
+yšòöx-Øß
+ó#¶Êä²U
+ÇÛ%Jm.TìÔ€¥I5%*Ò£I(³"Ë2Ï1\Œ,ÜF»©)7+nØSTKß£·¬Éd²åBË®I!
+/
+©ŽêF
+±,Òb)
+Fe-6Sä¥%$DFjQšý³3?dxÏº+Ý1íüujL|ÄÙ{²St*z
+³&öË% œ%ÈÏ3È¹
+1â>è¯tÇ£ê[{g§V
+kÞê}êz©Özæ£üç¯Ôwë&#êOæ°2¥ÿ
+Uep
+ë|pÊlnÇ%ÃªÓöû>þÔãÆëëIìRâ	iQ§J²QÏrbe~Õ5xéÒêùM§TÔpe-Óe¢£})[JqKI!J[Ì¶Gê:ã5ý¶š±lÀ®Ui²«³e»N}qbÁjJâ6Ómo<§j5ÛJPy,À^mì/¯ÒúæaTÑ®Á~
+ªý1fŠ¢ºFB9©HB-)Ie€ÉJ¹áÅU©aPíj.Ò`µ	2l%Ô4B
+Ðk^JÐIÏ®23ÌÈ"ÁkâUïnÔÎ«uª
+^E¬Ê5FrT}$·5uÛ%jI(Eç£Œ¯â=U×aW-uiÎÕ »	Ro¥€:BÌKFjÐjË®"#ÈÌ#¯á6
+q{c¹E§
+²¶æDtÔáP7.èÙ5¥§%!/Y(Ö¥
+ŽjÖdZO3=
+Ý[©æ9uÂ°õ$ÒT­£lÖß¬YìÚÔ£Zò^I-E§¯
+w¥YW	JÄdh~M{`PbKùžôÃ`æ(!D·K^dfk#<ò2VŸ
+0²ñ¶ÑEõÝ[Bš7P§:êY}Å­¥ºÑ"BLs$šÌÔ'3AÜú ¯«pVeáKv.­KÜÛš€ÁwsÉÚ8¡	x×\á(³Zò$O3=D`
+ñmö¹mCi:Õ"ÄvêSÎÑd[*6ÖÉK-)ZÒ¥¹M$¢IÌµw±ïy6VJœnMier»Näw(Ò7O¶Á-ÉKÛ+[ÈB=&ŽdÛ
+Í`sz­ßn­IÁ[zŽ¥¹
+ü:B#ÖÝu(öä¹-SÛÁpòY¯DŽõºi2u-rgÂšijÍje¯vÁ§[õs€×$œnöÑ¶³Q¡åmS­ÌÚš9HÙ¬"î©Wî|A®?|nuÞLÆ1DKh&Q­-MB$ý§Q8I¬ÉDDM¯ÓÁJýê€×¥]ÖýMTYn,w­¥ìôGY=õg,óu!¥Dd¡Y-2wÅræ¡õDáÕ%É5t;|÷m1ØñŠ÷4D©œÉ¢t³Y5«².AÝêŒj6VO«SÝ­StìõÖ©ÐbLÞÿ
+"-
+ÔŽfZ¬6$G¶Yµ^µ®*¹jíÑÙAGC4ŽOh}E¥DJQfŒ'«%d
+È
+Î¯v­ÛõO­Sø
+¹·ÇhËKÝ§=Ï°Ùž¬õõ¹kÑŽêÓŽÔiûYvTªví§
+Í:Äªub,t9)¶HÛuVÙ+A!Çs[ŠëËfÞ@Q­\K§V.(VõVßž-Z¥JîŠG®0ÓJÙržÍ·[VËI­\I(ÓfW
+DßòIE¡Ž4Ft€¢R²efdåAÃ%ÔórÂ
+8LSL^IŒP§šŒáÌIdM©kj[\ºÜ3å5ªÆÊžàâR.{œåßMSÇiÔ£Ü5Â/µ(·5€ÌjN¢3"Qdi¹à
+nè¹0j×¯^M²Ôø$ûÊhIu
+362IIKkf³"ÈÔe¥>€ž:¢®KÐÁ[ãŽÚÖ!FJ=Îoln!.;£°{6Ô·324ÔF2pá~ã«\úÕãL:ÕbÖU®Ë(kj4x®:§
+ZT©ÇOVI2q)NYWØ
+Ö6ÝVå^ÐqËîôÛ
+øÊ;°·ßù"#6äµn¥¥Õ¡-4i3G&"Ë.
+ŸfÜvÑ]ÝÔZ
+ŽåÓ*Å¹Ôã¥":ê
+q­³"É$df¢3<*ÿ
+hÅšV%v4Àª­ÓI°
+²ÓD8ÙC©5RJ#"Ï0±z%YíŒbìŠS®z,çVªã4JªPÍK-¢[tô,ÔFmJYï#÷uCª^Ô¶éf
+&uZ³8êÛT€CKyyžÙii·²I¶}rw32ÒEmã®ÕõË{ë\ß-ìá^Å­êÛz[MŠÓcŽûVßg²×É¯.P`
+5é]«rÒš5;ßb\©Çsr*Ì²å=×ÒëQæIQ¶Ú
+VÍä}:ÍßuÜWV,Ó°îÉºY DvÖ]É¿c39Rn
+6žFÙ5©IuJ,ÍdD35kà<óAÆ
+¢ý·p
+;clÔo·gúd&B¢¢ºu&SÚ2%/Y6J>G%W}fê·k°î³&©lÜíùÚodÇÓh³&¢Yf3,ÈÌ²#$hÀ
+éÊR%+"5jå>Îz
+Ì@ir7
+l
+Å€(ékÌÍdgFJê¹«¶v
+Ü×%²ô&jÐ£%QÝ€Ôâ¥³$©d(ÐÏRÉ)Ò³='
+wev»yßÔ:
+^mZE4ÙXH
+Rûtb[©z96ÊVF
+)êÍY)dŽ8l<cÎµg[2ý:	SîE¢l\
+ Ëd·['ònB
+Yíúåyõk9;
+.«wîKÖ¡vÑj
+%Ü»å±òÜÌ)Š¶+9KÑêÕšYó-0y±Jûž/=Z»»8A¿õ	È56ætÉí'ue%Z
+Öyeš@¹0Rg¢bªû&
+B¡GÜÊVì
+·#oŽ#ofSöŽ§JŽuÄz¹!n©Wî|A®?|nuÞLÆ1DKh&Q­-MB$ý§Q8I¬ÉDDM®³Æ÷Æ~ãßßÿ
+Û7
+ÚÎÊ±62ùîsgjqimÝ
+Ú69$õæ$Ð
+ånþèPÜš®èRv8R³IädGíŠ_ö
+Vô¶-øõK5ú
+n5n,ØÔÕ&"ßaj4%qÔñ¬ÐhQ€È#ÕÈºÑÓº°Ò»t[šõÛßu×é#7
+»ÔDiÆfÜ}Î
+ÔÉ!F¹ãpÔzf]hÓ
+Qf#,Ë°dbwÝwÕ4ì;²nh
+µroäXÌÎT¢[Ã
+¡.¶MjR]R3Y%&ÍF
+ÃÁj5*Ý²áÙšK-×G%œØÿ
+))ÉRõ9³«[M:Ž0µ€ÔFÙÙ(È\àbnO
+
+
+BŽ¥KêYak1Öã«Qä%$ŒÔ£3"".S3Í×ŒZ5ù°ªL±E²n ðhâ¶Šê,¶ây×$mêÕ!
+Fh€»šÌ[ÃËª^+œ~Ä»h®­ÉGU¡;)46M¹M·TFjpÒkÓÉ%é
+Å;Ê»HÆ÷©s.ß²¡Z(©ÌF¡¢vÆQÉu$o,âŸm ÚiÃÌÉ)ûVy.{5	Ö_¡Àz=S}Ùr3jn~ŠÕºÒi#'slšºìÐD^B"Èw@eÉpÐ-š(q×)h:L¡ùòÑ
+µ,ÈÌJY²J.ÎD~Ðl`±ââ>Vl¹ÕI€dŽRZ
+KQ€ýRu¡9§23,È&yK¬9VÝÛvÝÕÛ5JÕÎìCqa
+XÍ"3;&ÒÔãÔyšÔ£YæYr<ÕûËÆÊ­ÇÁëÆÒq¶ÒÌ,D5«-nZòVpÑ©&F€ddFBn;£8mT+/\4[zt8ôê³Ì2òãê
+KaiJidDi$kÉF|êÕ§WiÛë¿·
+ýîÒ ÿ
+fŽô5¬l©I"Z
+ÒâVF\€iY-'tÚÁ+*
+¡oPélM&Ø%º
+óšÊmØîÈ,Ýug
+æœjåRII,Òy©
+î¿gÙ®Å³ew
+ž3Š4óí-mBuù*É
+IšŸÔÚ³$·dJ#áªÜK/Z]nZúmUåKO'ö«(&êô!+B³^FJ2Z
+##mDyVh}MP aå¿nÌ¯BªÔíÊÓ)'RU"!Žù§o
+ènŸŽ-
+$ÜÍ£J+NKÖ§/ø;+°·í×çQdœT	ºM»
+;IÕ¡¢KDks#Zºç
+YåY
+£WN
+LÓp³êUÒZ¹nzl#O§²ÙËšH[
+­å¡hBQ­kQ¡OdË4ÌÛøjÔ©u)|z
+$£VaÖÜj3Žõ©Y4n
+³FÒmž)
+%3#"
+5z¹CDª1º T#9SZÔ£N$ÒŽæ#,ÒfYûC9±pÊ
+ÅoTë×K×`ZÌ
+$FT&\Í
+SËAÿ
+®.öäÃÒÞNjßêíFßôD/¥HðÃtWºcÜýQ
+šÛþ
+ô©
+sî÷Lz>¥·¶zuhÐŠœîèÇÞ^¢ê_õ¡ùšÿ
+
+&IIMTžEdJ
+iJCj#^ÌÔhZŽê#$
+e¥ÔüÝœ\·
+b¯l6$ÝA·eÂMJb­L%ùÕ×£JHÝm¶Ö®žÌÉfJLbºÜiTi®Úbj4K«QjmÄ=>iíÜ{Lùd¹!D¥ HSE+RTfnõJŒj3:¢åÙò
+­S£1m®ct¹0b*<3	²-Œ·KQ
+ihO!ò!Òº1êÕ RîjËŽ+u
+Û©
+&mF
+FÒŠ¥M¥l€ÂZt®-(lÍ&IZ€Ã£UùUPš"ñŠ6þ
+plèkQÂCm2=ÒZÕ±ZÈó"#Y¥DD6ÕÃ«RÂ¡Û*
+Ô]€Áje5ØKši$ ÖŒ \dg
+EÊê³âîß ÜÈ|z6Æ1­2)ù*d|Éý¶ÙQ=š¡HäJÔçÚÅ¶äÄô«UlZà¯[€`êp"L}æfÛï¶î¢A²$"»9äJ
+T\¡À­ÒßÝ*Ý
+NÑ§JB²Qi2<ý±Ý
+e.­4Œr·­I,Û4ÈÕ9Uò~¡Ž£*ôÒ§iE¶ešÍZO=ÛâäŒšýQ8unµ[VÕÃŸ{X-SÉ.çÑå-F¯¶
+¢Ð².Ekìéb.ð²¹x<ÕÓži7ŠöoäeSö²
+q(;í¢RÖ€¥$zÛw#Ìû€¹ñ©×
+ëS»©/[ñª5x%yVíÖ«
+I!,NÅÔ ŽfŠÖDR
+ÓÂâ
+÷{Ê»q1nžÍ&R#O8ç¹I¬Œã'(ÒòhiMZ4«7
+zù	ÍNÆuBNvjÜú£¶üzíNCCRULmæãmž·Ù)Õ¡ŽæâÉ¢AasÃ«i6
+L·
+S2
+£'
+fqjQ­jK
+%-¶R$gdÔ¬Ô}<T±âßvìx+õ6£NÕNPi$µBÎfÓŠÚº×YÈdgØ<QwN/Xô4;â5ÇEM6DêC.ÏDuTÒ
+ÍÉ}vœY Ó€Ô
+Fù6-b-ZUaÝ~PqÜmªÑ_nkT×dœ¡'¥Å¡$FM©DY©&yZ îÓðr
+6v7|œÂy÷|^­Ÿ®N":r²ÓmžfÚJRYëRÔy¬È
+0E7MäW;Õõöh¡=ºÜqk"lÔóÒÛ(FF¥€ÌúÃm&€
+2œE
+nâÜÆæšØÀ8	(LuJEC#i/¶ÒI&ŠuäjFp\j;mp]\g
+·EÁÂ­¥¶Õ}«ÚëJ'J;¬m!HRÈÜIò)£I Ö@
+]ërÉiéÕY4ÕnBC]c,¢*
+IÖh#7Mf£5)JäIg0±Nýs©Ï*óÌ²ó«Æ Š ì<uÔ¢q0y%ÅM¥ÂNiBd¢-
+aÉµ~ÝÚ>4Û2êÛáV±)ªM®.;MºòdCvC$ëINÈÖÑ€šIY¡' ¹ÚØc${Áû¢o*×m×d¡¥DiØäÚj;M%fm¡
+(Ó«Zff£YZ`-\bØÆXWÅàyDFôF£:¹©žä\'Ü¬ÒKå&Í2",K"p¢ìKþM6Ç©Ön+²æ«]{DëU;f³Lf¥ihÔµ3ü§qµµ­*q	ÕËLpáõ÷{Å»pÍžÍz&$Ò$Ï(åž©£<Û%(ÊhÛu-]5+6ÉzùM
+\Q)F
+žÒÖŽK$äuü
+ÅÛÂ±~áí2·s3*£r»\fâ·b;j¢.*šèBŸÒ²lÓêYšµ{<¥©ñ×júåœõ®	ïöp¯bÖõmœN­ŠÓi±Ú}«o³Ùkä×(
+0g÷ö
+Ï«Ýñ¯kJæàÍÐÕ5ÚK³
+­=
+fk$*RHtž)VKIäSUŒB°huG©u»âÙŠOcNÖ,Ê«
+ºÞ€R¢2Í&FY`ÈÅïºî+«iØwdÝ,Ð";k.äßÈ±©D·
+B\#lÔ€º¥f²"JMÜoVlWl[î­éTª¬Ïb¬æ¢q
+¡æT€¥Ó[ŠÞ{5)IÍPJÝU[-ÖæÂ<µm_Q_\yimN8iÉ9æ³ÌÈÏ<&³o;°VÕÄ
+ûi²îÙUv(tc©K€8žé&	HtÐq;EÅÕr-DIRmÀÝÑr`Õ¯^Œe5©ðI÷Ñ$êfm:d4ÖÍfEšËJ}Iä
+/ØöµÑrB®Í¯F«Kž)Ðc¶šŠ=Q
+dÒÒB
+òkSêY)ZÕÖ·º»Ãöáû{w>òî$œmunŸzýGY³ËO³Ù\SÂiWmÕ:ã€\¬ÒeÔíi6ŒôJ§
+¶ÕÕëÖÑ%Ö¹TkIZY
+zÉ±öäŒ­zæœB­ÂI«ÝÔÚDèÛÞKê
+SçÛ³JPiI¶K#,ÉÂ.Ž6&a4«¡a]åfEb
+hO?.räžæÑŽiR]i)WÚºìÒ¢=\¹f®\=bëKsÉeûªÔ¢ŠÕiÊOn2Þ-&¢mDá§JPJN×5+#N¬¿\ekãam¯ppWgm»_~ªÜ6¥ºêÓÓÛ€hJ³'|ªY$Fß*2ÌŒ/|MÂë&ù]ŠY4WZ"éÊ7ÐLmA°rq€4kB^Ð³JI$K<Ô
+L	­Ñð5-
+:co€Kt÷ŽÌ¬Ôä5 ¥jm
+QõÆÊÛÍ9Y­jV§mÒëô»Ut·ªùKe£fšeÅKH8ç!f€€Ë°FZrÌc0±Nýs©Ï*óÌ²ó«Æ Š ì<uÔ¢q0y%ÅM¥ÂNiBd¢-
+aÛpþýM¯â]³zU·Â5°ªâã¥·^!
+È"uŠS€ÖÒRiÔÚKY
+z¥BÁØœ­Kºä
+Y¡Ýõ)5iÂ¥¹
+C
+[K%¶áÈpŽ!M¥
+Aæyj5i>|:ÁíÖqË©ÚKM:	°höT:kŒi4
+#qÂQ¥JÍ-i3Ë©*¯á-\×ñ6¥òá[ô
+jLæ`f¥µ)
+ºL­FºãÙIRLÍÜÒ$hÖ®%Ó«+z«oÜ­R¥wS#×i¥Nl¹\KfÛ-«e€ÖÊ.$FiË3 Œ¿Ñj«tÄ\OG²n:º+UÚE%9*Q
+§6rµki§VŽÛ2BÛ%
+
+MÃió£ÁV©r]K,0Íf:Üuj<€fdDEÊfcºñb÷F¿16I(¶MÒT
+
+
+VÔÝEÜC/:ä-¢
+Z€!hÑPMTuÖqNÏº.Ø3©ÍM.§HKU%2ÛQ:Zví).4â
+$×)h22ëÈÌìÖ-µjÒmÈ.<äJTa0·Å!€j2"#VI,ò",ýþ)ÞUÚF7œKtÜÖý
+ÑENdª5
+¶2K©#ygómÓN
+fIOÚ³Ì¹sÙšN²ýÑêîËSsõ6­ÖI;dH=E×f$òòDº
+gW
+üeð¶ënóî
+âwýÇtíòÚn¯»ÃŽÓ§ÙÙûLÍ.­4Œr·­I,Û4ÈÕ9Uò~¡Ž£*ôÒ§iE¶ešÍZO!Ã]OtIœeëeÒžáztåÌ3ÏhHL¶ÒÊ5f¶ÈËI!h"<ìØÅõûòužž7=2WZa§šëã5éÔ²ÙlDi$êÌ³×ËdÓqvð
+)2æf4åbkvÒmwX
+ÆÉ(H4nJ5%dîÓff¢É:OH³u[â}ÝeÛS!ØJf5F
+ªuJÑÔáCäŠã²ÉM©¥:êÔæD£äCYLÛØENŸ©rŠKžnéTMåv³Ém5°RN's7%Ž³$8¥f[BNFo
+kq°-
+tÂJ÷µÊTkÏí#-µ¶zTÐ²JëR€É(Jt¥<
+Pµ
+¢ÞµjwM&ð©ÑâSé
+
+2?4§\TÛÄÜr&ò>±²#Qõ$PØy^ô¹8WK©ÌzÜvŸÓêž÷s§µ!šdæÊ3
+[Dé«ZÒÛI(Íi%f æ©`vüXö¹X¢Ô*ÖvÍ<Çh[HM4ÒØ×µ¥ŸU¥M©*ÒhÐi=Vl
+ÃØ[öëóš²^ªIKÝ&ÝJ
+€êÐÑ%¢5¹­]s,òË,Qª³·%x+cVîäïÍÙqêE&]PZ\RMÄ€M£KdN<jRÑê%h<.vþ%Úµ*]beJ_¡I(Õu·í=jVM¬Ñ¡Â4n%JBÉE€ÌÈÈÍ^¥À®PçÑ*nÎEÖµ'hÓ4­9€ÈË4dd~ÐÎl\"rq[Õ:õÒõÀÅ£Ø³		3BòÐÊ
+ØL²BrA«Fµj¯Z-[¯n\¶ýÉ.HT\f\qhe£ÏAšÒ=)Õ³Øþ_wŒ[·
+Ù¹+×¢bM"LòP[3Í²R,©©Æ·RÑ¥ÓR³l¯ÐÛÅåÕÇ|-¢úÛŒûxÿ
+kÞé}åê.¥ÿ
+~ã¹nqwK	s`ú"'CšÔG¥iÌòQdeäcÕnü[uhÂN
+ÜŽóÕ¥/Y
+[(°ØK-7©F£Òf£3<²fcº9Å+÷}2èõ:M±t³Ev+«9
+JŠ&diR
++I-·€«%%Hq%Ù%Ë+
+!*|iSéuXÔ£os¥
+%¶[.:á8Ž©:)W!i.ÉóÝ<[Ç
+±¯IÏU.
+LOÊJ3<*Ý	JsJŽA,Ê>C#NdvÀÛøQ¶ªV+x
+^áub«D+y×Ûœí"iûcdÛk3Öã·æ®C2$i,ÅÂ'(wœS¯]/\
+Z0]k0pPs4)O-ü¡Ý4É+$'$ŽkQšµ0ÁÃJìC¶®Ë®÷ßÞ
+ïõ%4€Eæë"Gòœ-%³i¬ÌGì¯Ü<º®,O¶ïZ}ÛE§ðkuolGèNÈÏt°Û,¥#_©3NFYäz²ÌôÀ_XDårâžjt¥ë}º
+P.
+$ªk-ä©¬ÿ
+
+&IIMTžEdJ
+iJCj#^ÌÔhZŽê#$
+ŽKÔ`Š ÔôžJ5¥©·œ¢Â6ÜBHÍDi4äIÁû
+.
+aµË9éíSZY*K©$©Õ­Å8µKÔ§ZÕs3"ÈÔeÛ
+å,¡³SjÃ¬~Øœi
+º€ŽÓ 	feCŠžûÆAÈqò7
+%T¬ÒÑ¶<¹	:­|
+
+«}Ê5MT¥LmãZ	%¥©ò}äk/¶<ñšJá¬áFKÃÉÍ{{çØqN]F
+ìiö
+QÔN¡
+dÍzP%%I"=]iæYi>§xmeÛ
+TQŽ]qØSjäLùŸæ¹MœFI[Nfy¢[zPis23U³påvýºüê,ªRá7I·cR£Çi:Ž4IhndkW\ã<²Ë#ÔjÐ
+kÞé}êz©Özæ£üçÓO"rÓßv#ÖæÉ
+­j5­Y&jR£?dÌÌùLbÝKþ³Ô?5ç<6AÎj·~-ºŽa'nZyêÒw}ªœÓúõyÃ}ªœÓúõyÇH8°wwÚ«Ý9¿¯W7Ú«Ý9¿¯Wtw}ªœÓúõyÃ}ªœÓúõyÇH
++¿~é
+`
+-öª÷NoëÕç
+öª÷NoëÕç
+ÞWýÒ<ÁÂïáßºGK}ªœÓúõyÃ}ªœÓúõyÇw
+ßÃ¿t0p¢»øwîæÒßj¯tæþœ^qÓŒ/šV]¥
+»]UÝR\úÃt(ÆO>ãÎ6¥ 
+Qg,ÌÌÍ$D*8z]b®
+[ÇXy4ºµfGm)B_6£fÙ,ÒDf5éÏ,ôiI60zÉú¥Iù«Ýã{ò_þþ0ã{ò_þþ1³EšVÜ®.ÔšM²Þ
+y2?µ)R	&6	
+^M0jA/4íWäÍéßüðñßüðñü
+qZÚLÉOSŠ(î!-­Â²Ô€€ÔiIŒÌÔ£"ö5¶c|
+çÝîô}KolôêÑ¡M{Ý3ÑŒœEÔ¿ë=CóQþsÂý=ªîßèI¿@±Aê_õ¡ùšÿ
+ýïv×ä9×ÜZŽË_{$FmÊ[
+ªZ^[dáSÊM:IV»3lÉhåJ·­±+1"[xñØ4Ô&Òä$²'DÂ""%/ãôÛÅ÷q]Î-K}!ïÄIî'bŽŠÒâTfyšõiü`2KöÄøöíýuÅ¹à³M·+ò©±b*ÚÝtêI)\hBÐy(Ô­DŒÒDCj7Tì/ÄJert¢L~ìVå;S.-¶äŠ1PDKA!GÉ×(³HôTj;QgDjê
+qÉ­&:	Vádâ,²Yš¹
+Ï<ýÅO·šúTL
+
+2%>N­ŒF"!
+»©$jAJÍ$Dy)@1k®üœZ¹.øåcu1kos
+>ãŽö¡ºâíûµÇMJRM2h"RrÉ'Ù³amJü¹o+dë*-ê-Å:pSô€²JæE¡-æÚef²Qå€_µmeAí¹G\znªÙ®2<ÛKg§4O²ËØ
+ú}:OÝ
+X¥õH`ÒQµuYjqY\£È³Qò@%š^œÀÿ
+6"vöÂÏÒþJeÆY0Ãÿ
Index: /ELYSE/HEAD/scripts/Geant4/init.g4m
===================================================================
--- /ELYSE/HEAD/scripts/Geant4/init.g4m	(revision 286)
+++ /ELYSE/HEAD/scripts/Geant4/init.g4m	(revision 286)
@@ -0,0 +1,36 @@
+#Physics after Init
+#dump the Physics Processes at each step
+/ELYSE/phys/verbose 2
+#number of optical photon produced by Cerenkov per step
+/ELYSE/phys/cerenkovMaxPhotons 100
+
+
+#The Geometrie
+#--------------
+/ELYSE/Geometry/Water 5.0 5.0 5.0 cm
+/ELYSE/Geometry/TyvekThickness 0.5 mm
+
+
+
+
+#The event generator
+#------------------
+#/ELYSE/gun/partName opticalphoton	
+# 100nm = 12.3984241 eV, 200nm = 6.199212 eV, and so on
+# 1eV = 1239.8424121 nm, 3eV = 413.280804, 5eV = 247.9684824 and so on
+#/ELYSE/gun/energy   3 eV
+#/ELYSE/gun/BeamDir  0 0 1
+#/ELYSE/gun/vertex   0 0 0 cm
+#/ELYSE/gun/OpPhotonPolarisation 1 0 0
+
+/ELYSE/gun/partName e-
+/ELYSE/gun/energy   3 MeV
+/ELYSE/gun/BeamDir  0 0 1
+/ELYSE/gun/vertex   0 0 0 cm
+
+#Optical drawing option (true/false)
+/ELYSE/tracking/drawing/optical true
+
+
+#Dump hit
+/hits/verbose 1
Index: /ELYSE/HEAD/scripts/Geant4/jobOptions.mac
===================================================================
--- /ELYSE/HEAD/scripts/Geant4/jobOptions.mac	(revision 286)
+++ /ELYSE/HEAD/scripts/Geant4/jobOptions.mac	(revision 286)
@@ -0,0 +1,42 @@
+
+/control/verbose 1
+
+
+/run/verbose 2
+#default range cut in Standard processes is 1mm but for LowEnergy EM processes ??
+#/run/setCut  0.1 mm
+
+#Physics processes
+#-----------------
+#choose the electromagnetic physics list: nickname = which builder (location)
+#standard        = PhysListEmStandard  (ELYSE)
+#Livermore       = PhysListEmLivermore (ELYSE)
+#Penelope        = PhysListEmPenelope  (ELYSE)
+#G4standard      = G4EmStandardPhysics   (<geant4-sources>physics_lists/builder)
+#G4standard_fast = G4EmStandardPhysics71 (<geant4-sources>physics_lists/builder)
+#note 1 G4standard= standard for gamma/e+/e-/mu+/mu-
+#note 2 G4standard_fast modifie the ionization modelisation
+#note 3 Livermore use LowEnergy processes
+#note 4 Penelope  use Penelope  processes
+#A comparison of various physical quantities concerning all the Geant4
+#electromagnetic physics processes has been published in
+#
+#  K. Amako et al.,
+#  Comparison of Geant4 electromagnetic physics models against 
+#  the NIST reference data
+#  IEEE Trans. Nucl. Sci., Volume: 52, Issue: 4, Aug. 2005, Pages: 910-918
+
+/ELYSE/phys/addPhysics standard
+
+#Range cut for Gamma/Electron/Positron individualy or at once
+#/ELYSE/phys/setGCut 0.1 mm
+#/ELYSE/phys/setECut 0.1 mm
+#/ELYSE/phys/setPCut 0.1 mm
+/ELYSE/phys/setCuts 0.1 mm
+
+
+#event/verbose 1 is dumping the Stack: quite long!
+/event/verbose 0
+
+/tracking/verbose 1
+
Index: /ELYSE/HEAD/scripts/Help/Tutorial.help
===================================================================
--- /ELYSE/HEAD/scripts/Help/Tutorial.help	(revision 286)
+++ /ELYSE/HEAD/scripts/Help/Tutorial.help	(revision 286)
@@ -0,0 +1,2 @@
+
+  To be done...
Index: /ELYSE/HEAD/scripts/OnX/Camera.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/Camera.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/Camera.onx	(revision 286)
@@ -0,0 +1,36 @@
+<!--
+   The orientation field of an SoCamera defines
+  a rotation from the default position, that is to say
+  a camera looking toward -z axis with up along y axis.
+-->
+
+
+<widget class="CascadeButton">
+  <label>Camera</label>
+  <widget class="Menu">
+    <widget class="MenuItem">
+      <label>Front (+z)</label>
+      <activate exec="DLD">OnX region_setNode type SoCamera height 70000 position 0 0 70000 orientation 0 1 0 0</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Back (-z)</label>
+      <activate exec="DLD">OnX region_setNode type SoCamera height 70000 position 0 0 -70000 orientation 0 1 0 3.14</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Side +z at left</label>
+      <activate exec="DLD">OnX region_setNode type SoCamera height 70000 position 70000 0 0 orientation 0 1 0 1.57</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Side +z at right</label>
+      <activate exec="DLD">OnX region_setNode type SoCamera height 70000  position -70000 0 0 orientation 0 1 0 -1.57</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Top</label>
+      <activate exec="DLD">OnX region_setNode type SoCamera height 70000 position 0 70000 0 orientation 1 0 0 -1.57</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Dump</label>
+      <activate exec="DLD">OnX region_dumpCamera</activate>
+    </widget>
+  </widget>
+</widget>
Index: /ELYSE/HEAD/scripts/OnX/ELYSE.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/ELYSE.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/ELYSE.onx	(revision 286)
@@ -0,0 +1,51 @@
+<widget class="CascadeButton">
+  <label>ELYSE</label>
+  <widget class="Menu">
+    <widget class="MenuItem">
+      <label>Default layout</label>
+      <activate exec="DLD">ELYSE ELYSE_Layout_default</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Detector</label>
+      <activate exec="DLD">ELYSE ELYSE_Geant4_detector</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Scan event</label>
+      <activate exec="DLD">OnX session_setParameter event.scan yes</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Do not scan event</label>
+      <activate exec="DLD">OnX session_setParameter event.scan no</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Dump WCPMT hits</label>
+      <activate exec="DLD">OnX data_collect WCPMT</activate>
+      <activate exec="DLD">OnX data_number</activate>
+      <activate exec="DLD">OnX data_dump</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Visualize Trajectories</label>
+      <activate exec="DLD">OnX data_collect Trajectory</activate>
+      <activate exec="DLD">OnX data_visualize</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Visualize WCPMT hits</label>
+      <activate exec="DLD">OnX data_collect WCPMT</activate>
+      <activate exec="DLD">OnX data_visualize</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Visualize WCPMT hits TotalPe>=10</label>
+      <activate exec="DLD">OnX data_collect WCPMT TotalPe>=10</activate>
+      <activate exec="DLD">OnX data_visualize</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Plot hits times</label>
+      <activate exec="DLD">ELYSE ELYSE_plot_hits_times</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Vis bins</label>
+      <activate exec="DLD">ELYSE ELYSE_vis_bins</activate>
+    </widget>
+  </widget>
+</widget>
+
Index: /ELYSE/HEAD/scripts/OnX/ELYSE_session.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/ELYSE_session.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/ELYSE_session.onx	(revision 286)
@@ -0,0 +1,84 @@
+<OnX version="v15r0">
+  <create exec="DLD">OnX OnX_Initialize</create>
+  <create exec="DLD">OnXLab OnXLab_Initialize</create>
+  <create exec="DLD">ELYSE ELYSE_Initialize</create>
+  <create exec="DLD">OnX session_load_styles $ELYSEROOT/scripts/Styles/ELYSE.styles</create>
+  <destroy exec="DLD">ELYSE ELYSE_Finalize</destroy>
+  <widget class="Window" name="main">
+    <geometry>850x700+0+0</geometry>
+    <title>ELYSE/Main</title>
+    <widget class="MenuBar" name="menuBar">
+      <reference file="$ELYSEROOT/scripts/OnX/File.onx"/>
+      <reference file="$ELYSEROOT/scripts/OnX/ELYSE.onx"/>
+      <reference file="$ELYSEROOT/scripts/OnX/Geant4.onx"/>
+      <reference file="$ELYSEROOT/scripts/OnX/Camera.onx"/>
+      <reference file="$ELYSEROOT/scripts/OnX/Scene.onx"/>
+      <reference file="$ONXROOT/scripts/OnX/Page.onx"/>
+      <reference file="$ELYSEROOT/scripts/OnX/Plotting.onx"/>
+<!--
+      <reference file="$ONXROOT/scripts/OnX/Viewers.onx"/>
+-->
+      <reference file="$ONXLABROOT/scripts/OnX/Analysis.onx" optional="yes"/>
+      <reference file="$ELYSEROOT/scripts/OnX/Help.onx"/>
+    </widget>
+    <widget class="ToolBar">
+      <widget class="ToolBarItem">
+        <label>Print...</label>
+        <pixmap>$ONXROOT/scripts/images/fileprint.xpm</pixmap>
+        <tooltip>Map print dialog</tooltip>
+        <activate exec="DLD">OnX ui_show_dialog $ONXROOT/scripts/OnX/InputPrint.onx OnX_InputPrint_dialog</activate>
+      </widget>
+      <widget class="ToolBarItem">
+        <label>Clear region</label>
+        <pixmap>$ONXROOT/scripts/images/editdelete.xpm</pixmap>
+        <tooltip>Clear region</tooltip>
+        <activate exec="DLD">OnX region_clear</activate>
+      </widget>
+      <widget class="ToolBarItem">
+        <label>Next event</label>
+        <pixmap>$ONXROOT/scripts/images/civil_arrow_right.xpm</pixmap>
+        <tooltip>Next event</tooltip>
+        <activate exec="DLD">G4Lab G4Lab_nextEvent</activate>
+      </widget>
+    </widget>
+    <widget class="VPaned"> 
+      <splitPosition>450</splitPosition>
+      <widget class="HPaned">
+        <splitPosition>200</splitPosition>
+        <widget class="VBox">
+          <expand>second</expand>
+          <sizeOfFixed>30</sizeOfFixed>
+          <widget class="OptionMenu" name="optionTree">
+            <label>Tree actions</label>
+            <items>PhysicalVolumes\nHitsCollections\nDigitsCollections\nAIDA trees\nClear selected tree\nDelete selected tree\nDelete selected object\nManagers\nAppend on/off</items>
+            <default>PhysicalVolumes</default>
+            <valueChanged exec="DLD">G4Lab G4Lab_tree_option</valueChanged>
+          </widget>
+          <widget class="ScrolledTree" name="mainTree">
+            <select exec="DLD">G4Lab G4Lab_tree_select</select>
+          </widget>
+        </widget>
+        <reference file="$ELYSEROOT/scripts/OnX/Pages.onx"/>
+      </widget>
+      <widget class="VBox"> 
+        <expand>first</expand>
+        <sizeOfFixed>30</sizeOfFixed>
+        <widget class="ScrolledText" name="consoleText"/>
+        <widget class="HBox"> 
+          <expand>second</expand>
+          <sizeOfFixed>80</sizeOfFixed>
+          <widget class="OptionMenu" name="consolePrompt">
+            <label>Interpreter</label>
+            <default>G4</default>
+            <items>G4\nDLD\nsystem\nPython</items>
+          </widget>
+          <widget class="CommandLine" name="consoleCommandLine">
+            <activate exec="DLD">OnX console_execute</activate>
+            <complete exec="DLD">G4Lab G4Lab_consolePrompt_complete</complete>
+          </widget>
+        </widget>
+      </widget>
+    </widget>
+    <reference file="$ONXROOT/scripts/OnX/Dialogs.onx"/>
+  </widget>
+</OnX>
Index: /ELYSE/HEAD/scripts/OnX/File.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/File.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/File.onx	(revision 286)
@@ -0,0 +1,21 @@
+<widget class="CascadeButton" name="OnX_menu_File">
+  <label>File</label>
+  <widget class="Menu">
+    <widget class="MenuItem">
+      <label>Print</label>
+      <activate exec="DLD">OnX ui_show_dialog $ONXROOT/scripts/OnX/InputPrint.onx OnX_InputPrint_dialog</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>View .ps...</label>
+      <activate exec="DLD">OnX ui_showFileChooser OnX OnX_File_ps *.ps .</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>View .gif...</label>
+      <activate exec="DLD">OnX ui_showFileChooser OnX OnX_File_gif *.gif .</activate>
+    </widget>
+    <widget class="MenuItem" name="OnX_File_exit">
+      <label>Exit</label>
+      <activate exec="DLD">OnX ui_exit</activate>
+    </widget>
+  </widget>
+</widget>
Index: /ELYSE/HEAD/scripts/OnX/Geant4.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/Geant4.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/Geant4.onx	(revision 286)
@@ -0,0 +1,31 @@
+<widget class="CascadeButton">
+  <label>Geant4</label>
+  <widget class="Menu">
+    <widget class="MenuItem">
+      <label>PVs</label>
+      <activate exec="DLD">G4Lab data_PV_dump</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Gun...</label>
+      <activate exec="DLD">OnX ui_show_dialog $G4LABROOT/scripts/OnX/InputGun.onx G4Lab_InputGun_dialog</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Run...</label>
+      <activate exec="DLD">OnX ui_show_dialog $G4LABROOT/scripts/OnX/InputRun.onx G4Lab_InputRun_dialog</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Next evt</label>
+      <activate exec="DLD">G4Lab G4Lab_nextEvent</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Abort run</label>
+      <activate exec="G4">/run/abort</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Dump particles</label>
+      <activate exec="DLD">G4Lab G4_dump_ParticleTables</activate>
+    </widget>
+    <reference file="$G4LABROOT/scripts/OnX/Geant4.onx"/>
+  </widget>
+</widget>
+
Index: /ELYSE/HEAD/scripts/OnX/Help.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/Help.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/Help.onx	(revision 286)
@@ -0,0 +1,18 @@
+<widget class="CascadeButton">
+  <label>Help</label>
+  <widget class="Menu">
+    <widget class="MenuItem">
+      <label>ELYSE Tutorial</label>
+      <activate exec="DLD">OnX ui_help_file $ELYSEROOT/scripts/Help/Tutorial.help</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Viewer controls</label>
+      <activate exec="DLD">OnX ui_help_file $ONXROOT/scripts/Help/Viewer.help</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>DLD</label>
+      <activate exec="DLD">OnX ui_help_file $ONXROOT/scripts/Help/DLD.help</activate>
+    </widget>
+  </widget>
+</widget>
+
Index: /ELYSE/HEAD/scripts/OnX/Pages.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/Pages.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/Pages.onx	(revision 286)
@@ -0,0 +1,10 @@
+<widget class="TabStack" name="ViewerTabStack">
+  <select exec="DLD bg">OnX OnX_Tab_select</select>
+  <widget class="PageViewer" name="Viewer_1">
+    <tabLabel>Viewer_1</tabLabel>
+    <create exec="DLD">ELYSE ELYSE_Layout_default</create>
+    <collect exec="DLD">OnX viewer_collect</collect>
+    <popupItems>No highlighted</popupItems>
+    <popup exec="DLD">OnX viewer_popup</popup>
+  </widget>
+</widget>
Index: /ELYSE/HEAD/scripts/OnX/Plotting.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/Plotting.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/Plotting.onx	(revision 286)
@@ -0,0 +1,19 @@
+<widget class="CascadeButton" name="OnX_Plotter_casc">
+  <label>Plotter</label>
+  <widget class="Menu">
+    <widget class="MenuItem">
+      <label>New plotting page</label>
+      <activate exec="DLD">OnX ui_createComponent</activate>
+      <activate exec="DLD">OnX page_createRegions 1 1 0 SoPlotterRegion</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Close ELYSE.root file</label>
+      <activate exec="DLD">ELYSE ELYSE_analysis_closeTree</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Open ROOT file...</label>
+      <activate exec="DLD">OnX ui_showFileChooser Lab Lab_File_ROOT_open *.root $LABROOT/examples/data</activate>
+    </widget>
+    <reference file="$ONXROOT/scripts/OnX/Plotter.onx"/>
+  </widget>
+</widget>
Index: /ELYSE/HEAD/scripts/OnX/Scene.onx
===================================================================
--- /ELYSE/HEAD/scripts/OnX/Scene.onx	(revision 286)
+++ /ELYSE/HEAD/scripts/OnX/Scene.onx	(revision 286)
@@ -0,0 +1,65 @@
+<widget class="CascadeButton" name="OnX_menu_Scene">
+  <label>Scene</label>
+  <widget class="Menu">
+    <widget class="MenuItem">
+      <label>Clear</label>
+      <activate exec="DLD">OnX region_clear</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Erase detector</label>
+      <activate exec="DLD">OnX region_erase static</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Erase event</label>
+      <activate exec="DLD">OnX region_erase dynamic</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Erase highlighted</label>
+      <activate exec="DLD">OnX region_erase highlighted</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Erase not highlighted</label>
+      <activate exec="DLD">OnX region_erase not_highlighted</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Modeling wire frame</label>
+      <activate exec="DLD">OnX session_setParameter modeling.modeling wire_frame</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Modeling solid</label>
+      <activate exec="DLD">OnX session_setParameter modeling.modeling solid</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Modeling color chooser</label>
+      <activate exec="DLD">OnX colorChooser_show</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Modelings to none</label>
+      <activate exec="DLD">OnX session_modeling_none</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Modeling editor</label>
+      <activate exec="DLD">OnX ui_show_dialog $ONXROOT/scripts/OnX/InputParameter.onx OnX_InputParameter_dialog</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Pick dump table mode</label>
+      <activate exec="DLD">OnX session_setParameter AccessorManager.dumpMode table</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Pick dump raw mode</label>
+      <activate exec="DLD">OnX session_setParameter AccessorManager.dumpMode raw</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Detector scene count</label>
+      <activate exec="DLD">OnX region_count staticScene</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>Event scene count</label>
+      <activate exec="DLD">OnX region_count dynamicScene</activate>
+    </widget>
+    <widget class="MenuItem">
+      <label>OnX data accessor</label>
+      <activate exec="DLD">OnX ui_show_dialog $ONXROOT/scripts/OnX/InputAccessorManager.onx OnX_InputAccessorManager_dialog</activate>
+    </widget>
+  </widget>
+</widget>
Index: /ELYSE/HEAD/scripts/ROOT/ELYSE.C
===================================================================
--- /ELYSE/HEAD/scripts/ROOT/ELYSE.C	(revision 286)
+++ /ELYSE/HEAD/scripts/ROOT/ELYSE.C	(revision 286)
@@ -0,0 +1,32 @@
+// Usage :
+//   OS> cd <some path>/ELYSE/<version>/cmt
+//   OS> source setup.csh
+//   OS> ../<platform>/ELYSE_batch.exe
+//   OS> root ../scripts/ROOT/ELYSE.C
+//
+// Note :
+//   The ELYSE_batch.exe program produces a ELYSE.root file.
+//   This file sould have been produced with the "export=root"
+//   option when creating the AIDA::ITree for this file
+//   (see ELYSE::Analysis constructor).
+//     By default the Lab package does not stream its histograms
+//   as THs of ROOT (because the AIDA histos are more rich). 
+//   In ordet that ROOT plot the saved histos, the Lab::Histograms
+//   can be saved as THs by using the "export=root" option.
+
+{
+  TFile* file = new TFile("ELYSE.root");
+  file->ls();
+
+  //TH1F* histoDE = file->Get("histo_DE");
+  TH1F* histo = file->Get("histo_HitTotalE");
+
+  TCanvas* canvas = new TCanvas("canvas","TH1D",10,10,800,600);
+
+  histo->Draw();                                 
+
+  canvas->Update();
+
+  file->Close();
+  
+}
Index: /ELYSE/HEAD/scripts/ROOT/aida_ROOT.C
===================================================================
--- /ELYSE/HEAD/scripts/ROOT/aida_ROOT.C	(revision 286)
+++ /ELYSE/HEAD/scripts/ROOT/aida_ROOT.C	(revision 286)
@@ -0,0 +1,352 @@
+//
+// Usage :
+//   OS> cd ELYSE/<version>/cmt
+//   OS> <source setup>
+//   OS> <have a ELYSE.root file in current directory>
+//   OS> root
+//   root[] gSystem->Load("libELYSEAIDADict");
+//   root[] .x ../scripts/ROOT/aida_ROOT.C
+//
+
+//
+// rootcint version of the applications/ELYSE_analysis.C program.
+// The ELYSE.root data are read by using OpenScientist/AIDA (and 
+// then Rio) and the histos are done by using ROOT/TH*.
+// 
+// WARNING : CINT can't handle the dynamic_cast, then we use
+//  the cast methods found on the AIDA interfaces basic classes.
+//
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+AIDA::ITuple* cast_Tuple(
+ AIDA::ITupleEntry* aEntry
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+#ifdef __CINT__
+  //FIXME : CINT can't handle dynamic_cast :
+  //AIDA-3.2.1 : ITupleEntry does not have the cast method.
+  //return (AIDA::ITuple*)aEntry->cast("AIDA::ITuple");
+  return cast_ITuple(aEntry);
+#else
+  return dynamic_cast<AIDA::ITuple*>(aEntry);
+#endif
+}
+//////////////////////////////////////////////////////////////////////////////
+bool get_XYZ(
+ AIDA::ITuple& aParent
+,int aColumn
+,double& aX
+,double& aY
+,double& aZ
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(aColumn);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  tuple->start();
+  if(!tuple->next()) return false;
+
+  aX = tuple->getDouble(0);
+  aY = tuple->getDouble(1);
+  aZ = tuple->getDouble(2);
+
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+bool dump_tracks(
+ AIDA::ITuple& aParent
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(8);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  //if(nPart!=tracks->rows()) {
+  //  std::cout << "read: nPart / tracks mismatch " 
+  //              << nPart << " " << tracks->rows() << std::endl;
+  //  return false;
+  //}
+
+  tuple->start();
+  int irow = 0;
+  while(tuple->next()) {
+
+    int pId = tuple->getInt(0);
+    int parent = tuple->getInt(1);
+    float timeStart = tuple->getFloat(2);
+
+    double dx,dy,dz;
+    if(!get_XYZ(*tuple,3,dx,dy,dz)) return false;
+
+    double mass = tuple->getDouble(4);
+    double pTot = tuple->getDouble(5);
+    double ETot = tuple->getDouble(6);
+
+    double px,py,pz;
+    if(!get_XYZ(*tuple,7,px,py,pz)) return false;
+
+    double start_x,start_y,start_z;
+    if(!get_XYZ(*tuple,8,start_x,start_y,start_z)) return false;
+
+    double stop_x,stop_y,stop_z;
+    if(!get_XYZ(*tuple,9,stop_x,stop_y,stop_z)) return false;
+
+    int startVol = tuple->getInt(10);
+    int stopVol = tuple->getInt(11);
+
+    std::cout << "----> Tk{"<<irow<<"}: " 
+              << " pId " << pId
+              << " parent " << parent
+              << " creation time " << timeStart 
+              << " Volumes " << startVol << " " << stopVol << "\n"
+              << " Start Pos (" << start_x 
+              << "," << start_y << "," << start_z << ")\n"
+              << " Stop Pos (" << stop_x 
+              << "," << stop_y << "," << stop_z << ")\n"
+              << " dx,dy,dz " << dx << " " << dy << " " << dz << "\n"
+              << " m " << mass
+              << " ETot " << ETot
+              << " pTot " << pTot
+              << " px,py,pz " << px << " " << py << " " << pz << "\n"
+              << std::endl;
+
+    irow++;
+  }
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+bool process_hits_times(
+ AIDA::ITuple& aParent
+,TH1D& aHisto
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(2);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  tuple->start();
+  while(tuple->next()) {
+
+    float time = tuple->getFloat(0);
+
+    aHisto.Fill(time);
+  }
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+bool process_hits(
+ AIDA::ITuple& aParent
+,TH1D& aHisto
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(10);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  tuple->start();
+  while(tuple->next()) {
+
+    //int tubeId = tuple->getInt(0);
+    //int totalPE = tuple->getInt(1);
+
+    if(!process_hits_times(*tuple,aHisto)) return false;
+  }
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+bool process_digits(
+ AIDA::ITuple& aParent
+,TH2D& aHisto
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  AIDA::ITupleEntry* entry = (AIDA::ITupleEntry*)aParent.getObject(13);
+  if(!entry) return false;
+
+  AIDA::ITuple* tuple = cast_Tuple(entry);
+  if(!tuple) return false;
+
+  tuple->start();
+  while(tuple->next()) {
+
+    //int tubeId = tuple->getInt(0);
+    double pe = tuple->getDouble(1);
+    double time = tuple->getDouble(2);
+    //printf("debug : ++++ : %g %g\n",time,pe);
+
+    aHisto.Fill(time,pe);
+  }
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+bool plot(
+ TH1D& aHisto1D
+,TH2D& aHisto2D
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  TCanvas* plotter = new TCanvas("canvas","",10,10,800,600);
+  plotter->Divide(1,2);  
+
+  plotter->cd(1);
+  aHisto1D.Draw();
+
+  plotter->cd(2);
+  aHisto2D.Draw();
+
+  plotter->Update();
+
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+int aida_ROOT()
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  std::string program = "aida_ROOT";
+  std::string header = program + " : ";
+
+  std::cout << header << "begin..." << std::endl;
+
+  ////////////////////////////////////////////////////////
+  // Create histograms ///////////////////////////////////
+  ////////////////////////////////////////////////////////
+  TH1D* hits_times = new TH1D("hits_times","Hits times",100,0,3000);
+
+  TH2D* digits_time_pe = 
+    new TH2D("digits_pe_time","Digits PE time",100,0,3000,100,0,10);
+
+  ////////////////////////////////////////////////////////
+  /// Read data an file histos ///////////////////////////
+  ////////////////////////////////////////////////////////
+
+  AIDA::IAnalysisFactory* aida = AIDA_createAnalysisFactory();
+  if(!aida) {
+    std::cout << header << "AIDA not found." << std::endl;
+    return 1;
+  }
+
+  AIDA::ITreeFactory* treeFactory = aida->createTreeFactory();
+  if(!treeFactory) {
+    std::cout << header << "can't get a TreeFactory." << std::endl;
+    return 1;
+  }
+
+  AIDA::ITree* tree = treeFactory->create("ELYSE.root","root",true,false);
+  if(!tree) {
+    std::cout << header << "can't open data file." << std::endl;
+    return 1;
+  }
+
+  AIDA::IManagedObject* object = tree->find("Event");
+  if(!object) {
+    std::cout << header 
+              << "object Event not found in tree." 
+              << std::endl;
+    return 1;
+  }
+#ifdef __CINT__
+  //FIXME : CINT can't handle dynamic_cast :
+  AIDA::ITuple* tuple = (AIDA::ITuple*)object->cast("AIDA::ITuple");
+#else
+  AIDA::ITuple* tuple = dynamic_cast<AIDA::ITuple*>(object);
+#endif
+  if(!tuple) {
+    std::cout << header << "object not an AIDA::ITuple." << std::endl;
+    return 1;
+  }
+
+  int coln = tuple->columns();
+  for(int index=0;index<coln;index++) {
+    std::cout << header 
+              << " icol = " << index
+              << ", label = " << tuple->columnName(index) 
+              << ", type = " << tuple->columnType(index) 
+              << std::endl;
+  }
+
+  std::cout << header << "rows = " << tuple->rows() << std::endl;
+
+  int nentries = tuple->rows();
+  //nentries = 100000;
+  //nentries = 40;
+  std::cout << header 
+            << "traitements de " << nentries << " entrees..." 
+            << std::endl;
+
+  int irow = 0;
+  tuple->start();
+  while(tuple->next() && (irow<nentries)) {
+
+    /*
+    int eventId = tuple->getInt(0);
+    //int inputEvtId = tuple->getInt(1);
+    //int interMode = tuple->getInt(2);
+    //int vtxVol = tuple->getInt(3);
+
+    int nPart = tuple->getInt(5);
+    //int leptonIndex = tuple->getInt(6);
+    //int protonIndex = tuple->getInt(7);
+
+    int nHits = tuple->getInt(9);
+    int nDigits = tuple->getInt(11);
+    double sumPE = tuple->getDouble(12);
+
+    std::cout << ">>>>>>>>>>>>> Event{" << irow << "}: "
+    	      << " evt Id " << eventId 
+    //	      << " evt Input Id " << inputEvtId
+    //	      << "\n interaction mode " << interMode
+    //	      << " start in volume " << vtxVol << "\n"
+    	      <<" #tracks: " << nPart
+    	      <<" #hits: " << nHits
+              <<" #digits: " << nDigits
+              <<" sumPE " << sumPE
+    	      << std::endl;
+
+    if(!dump_tracks(*tuple)) return 1;
+    */
+
+    if(!process_hits(*tuple,*hits_times)) return 1;
+    if(!process_digits(*tuple,*digits_time_pe)) return 1;
+
+    irow++;
+  }
+
+  delete treeFactory;
+  delete aida;
+
+  ////////////////////////////////////////////////////////
+  // Plot histograms /////////////////////////////////////
+  ////////////////////////////////////////////////////////
+  std::cout << header << "plot..." << std::endl;
+  plot(*hits_times,*digits_time_pe);
+
+  return 0;
+}
Index: /ELYSE/HEAD/scripts/ROOT/analysis.C
===================================================================
--- /ELYSE/HEAD/scripts/ROOT/analysis.C	(revision 286)
+++ /ELYSE/HEAD/scripts/ROOT/analysis.C	(revision 286)
@@ -0,0 +1,305 @@
+//
+//  This script shows how to read, with ROOT, a ELYSE.root 
+// file having the "TTree within TTree" of the ELYSE_batch
+// progrem (see Analysis.cxx).
+//
+//  Usage :
+//    OS> <setup ROOT>
+//  ( OS> root batch_dummy.C )
+//    OS> root analyis.C
+//
+//  G.Barrand
+//
+
+//////////////////////////////////////////////////////////////////////////////
+bool plot(
+ TH1D& aHisto1D
+,TH2D& aHisto2D
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  TCanvas* plotter = new TCanvas("canvas","",10,10,800,600);
+  plotter->Divide(1,2);  
+
+  plotter->cd(1);
+  aHisto1D.Draw();
+
+  plotter->cd(2);
+  aHisto2D.Draw();
+
+  plotter->Update();
+
+  return true;
+}
+//////////////////////////////////////////////////////////////////////////////
+void analysis() 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+
+  ////////////////////////////////////////////////////////
+  // Create histograms ///////////////////////////////////
+  ////////////////////////////////////////////////////////
+  TH1D* hits_times = new TH1D("hits_times","Hits times",100,0,3000);
+
+  TH2D* digits_time_pe = 
+    new TH2D("digits_pe_time","Digits PE time",100,0,3000,100,0,10);
+
+  int hit_count = 0;
+  bool dump = true;
+  //bool dump = false;
+
+  ////////////////////////////////////////////////////////
+  /// Read data an file histos ///////////////////////////
+  ////////////////////////////////////////////////////////
+  TFile* f = new TFile("ELYSE.root");
+  TTree* tEvent = (TTree*)f->Get("Event");
+
+ {TObjArray* brs = tEvent->GetListOfBranches();
+  for(int i=0;i<brs->GetEntries();i++) {
+    TBranch* b = (TBranch*)brs->At(i);
+    std::cout << " Event branch : " << b->GetName()
+    	      << std::endl;    
+  }}
+
+  //declare Non subTuple part
+  Int_t eventId,inputEvtId, interMode, vtxVol;
+  tEvent->SetBranchAddress("eventId",&eventId);
+  tEvent->SetBranchAddress("inputEvtId",&inputEvtId);
+  tEvent->SetBranchAddress("interMode",&interMode);
+  tEvent->SetBranchAddress("vtxVol",&vtxVol);
+
+  Int_t nPart,leptonIndex, protonIndex;
+  tEvent->SetBranchAddress("nPart",&nPart);
+  tEvent->SetBranchAddress("leptonIndex",&leptonIndex);
+  tEvent->SetBranchAddress("protonIndex",&protonIndex);
+
+  Int_t nHits; 
+  tEvent->SetBranchAddress("nHits",&nHits);
+
+  Int_t nDigits;
+  Double_t sumPE;
+  tEvent->SetBranchAddress("nDigits",&nDigits);
+  tEvent->SetBranchAddress("sumPE",&sumPE);
+
+  Int_t nEvent = (Int_t)tEvent->GetEntries();  
+  //nEvent = 1;
+  //nEvent = 10000;
+  std::cout << " nEvents = " << nEvent << std::endl;
+
+  for (Int_t i=0; i<nEvent; ++i) {
+
+    TTree* Event_vtxPos = new TTree();
+    tEvent->SetBranchAddress("vtxPos",&Event_vtxPos);
+
+    TTree* Event_track = new TTree();
+    tEvent->SetBranchAddress("track",&Event_track);
+
+    TTree* Event_hit = new TTree();
+    tEvent->SetBranchAddress("hit",&Event_hit);
+    
+    TTree* Event_digit = new TTree();
+    tEvent->SetBranchAddress("digit",&Event_digit);
+
+    tEvent->GetEntry(i);
+
+    //{TObjArray* brs = Event_track->GetListOfBranches();
+    //for(int i=0;i<brs->GetEntries();i++) {
+    //  TBranch* b = (TBranch*)brs->At(i);
+    //  std::cout << " Event_track branch : " << b->GetName() << std::endl;    
+    //  }}
+
+    // Bind sub tuple variables 
+    Double_t vx,vy,vz;
+    Event_vtxPos->SetBranchAddress("x",&vx);
+    Event_vtxPos->SetBranchAddress("y",&vy);
+    Event_vtxPos->SetBranchAddress("z",&vz);
+
+    Int_t pId,parent;
+    Float_t timeStart;
+    Double_t mass, pTot, ETot;
+    Int_t startVol, stopVol;
+    Event_track->SetBranchAddress("pId",&pId);
+    Event_track->SetBranchAddress("parent",&parent);
+    Event_track->SetBranchAddress("timeStart",&timeStart);
+    Event_track->SetBranchAddress("mass",&mass);
+    Event_track->SetBranchAddress("pTot",&pTot);
+    Event_track->SetBranchAddress("ETot",&ETot);
+    Event_track->SetBranchAddress("startVol",&startVol);
+    Event_track->SetBranchAddress("stopVol",&stopVol);
+
+    Int_t tubeId_hit; //JEC 16/1/06
+    Int_t totalPE;    
+    Event_hit->SetBranchAddress("tubeId",&tubeId_hit); //JEC 16/1/06   
+    Event_hit->SetBranchAddress("totalPE",&totalPE);
+
+    Int_t tubeId;
+    Double_t digit_pe, digit_time;
+    Event_digit->SetBranchAddress("tubeId",&tubeId);
+    Event_digit->SetBranchAddress("pe",&digit_pe);
+    Event_digit->SetBranchAddress("time",&digit_time);
+
+    if(dump)
+    std::cout << ">>>>>>>>>>>>> Event{" << i << "}: "
+    	      << " evt Id " << eventId 
+    //	      << " evt Input Id " << inputEvtId
+    //	      << "\n interaction mode " << interMode
+    //	      << " start in volume " << vtxVol << "\n"
+    	      <<" #tracks: " << nPart
+    	      <<" #hits: " << nHits
+    	      <<" #digits: " << nDigits
+    	      << std::endl;
+
+    Int_t nVtx = (Int_t)Event_vtxPos->GetEntries();
+    Int_t nTracks = (Int_t)Event_track->GetEntries();
+    Int_t nTubeHits = (Int_t)Event_hit->GetEntries();
+    Int_t nTubeDigits = (Int_t)Event_digit->GetEntries();
+
+    if(dump)
+    std::cout << "Verif :" 
+              << " nVtx = " << nVtx 
+              << " nTracks = " << nTracks 
+    	      << " nTube Hits = " << nTubeHits
+    	      << " nTube Digits = " << nTubeDigits
+    	      << std::endl;
+
+    for (Int_t j=0; j<nTracks; ++j) {
+
+      //Sub tuples of Event_tracks :
+      TTree* Track_direction = new TTree();
+      Event_track->SetBranchAddress("direction",&Track_direction);
+      TTree* Track_momentum = new TTree();
+      Event_track->SetBranchAddress("momentum",&Track_momentum);
+      TTree* Track_startPos = new TTree();
+      Event_track->SetBranchAddress("startPos",&Track_startPos);
+      TTree* Track_stopPos = new TTree();
+      Event_track->SetBranchAddress("stopPos",&Track_stopPos);
+
+      Event_track->GetEntry(j);
+
+      Double_t dx,dy,dz;
+      Track_direction->SetBranchAddress("dx",&dx);
+      Track_direction->SetBranchAddress("dy",&dy);
+      Track_direction->SetBranchAddress("dz",&dz);
+
+      Double_t px,py,pz;
+      Track_momentum->SetBranchAddress("px",&px);
+      Track_momentum->SetBranchAddress("py",&py);
+      Track_momentum->SetBranchAddress("pz",&pz);
+
+      Double_t start_x,start_y,start_z;
+      Track_startPos->SetBranchAddress("x",&start_x);
+      Track_startPos->SetBranchAddress("y",&start_y);
+      Track_startPos->SetBranchAddress("z",&start_z);
+
+      Double_t stop_x,stop_y,stop_z;
+      Track_stopPos->SetBranchAddress("x",&stop_x);
+      Track_stopPos->SetBranchAddress("y",&stop_y);
+      Track_stopPos->SetBranchAddress("z",&stop_z);
+
+      // One entry only :
+      //std::cout << "debug : " 
+      //          << " " << Track_direction->GetEntries()
+      //          << " " << Track_momentum->GetEntries()
+      //          << " " << Track_startPos->GetEntries()
+      //          << " " << Track_stopPos->GetEntries()
+      //          << std::endl;
+      if(Track_direction->GetEntries()==1) Track_direction->GetEntry(0);
+      if(Track_momentum->GetEntries()==1)   Track_momentum->GetEntry(0);
+      if(Track_startPos->GetEntries()==1) Track_startPos->GetEntry(0);
+      if(Track_stopPos->GetEntries()==1) Track_stopPos->GetEntry(0);
+
+      if(dump)
+      std::cout << "----> Tk{"<<j<<"}: " 
+	   	<< " pId " << pId
+		<< " parent " << parent
+		<< " creation time " << timeStart 
+		<< " Volumes " << startVol << " " << stopVol << "\n"
+		<< " Start Pos (" << start_x << "," << start_y << "," << start_z << ")\n"
+		<< " Stop Pos (" << stop_x << "," << stop_y << "," << stop_z << ")\n"
+		<< " dx,dy,dz " << dx << " " << dy << " " << dz << "\n"
+		<< " m " << mass
+		<< " ETot " << ETot
+		<< " pTot " << pTot
+		<< " px,py,pz " << px << " " << py << " " << pz << "\n"
+                << std::endl;
+
+      delete Track_direction;
+      delete Track_momentum;
+      delete Track_startPos;
+      delete Track_stopPos;
+
+    }//loop on Tracks
+
+    //--------
+    // The Hits
+    //--------
+
+
+    for (Int_t k=0; k<nTubeHits; ++k) {
+      
+      TTree* Hit_pe = new TTree();
+      Event_hit->SetBranchAddress("pe",&Hit_pe);
+  
+      Event_hit->GetEntry(k);
+
+      Float_t hit_time;
+      //Float_t trk_length; //NV 13/6/06
+      Hit_pe->SetBranchAddress("time",&hit_time);
+      //Hit_pe->SetBranchAddress("length",&trk_length);
+
+      //JEC 16/1/06 add the tubeId_hit info
+      if(dump)
+      std::cout << "----> Hit{"<<k<<"}: tube[" << tubeId_hit << "] total #PE " << totalPE << std::endl;
+
+      for (Int_t ki=0; ki<Hit_pe->GetEntries(); ++ki) {
+	Hit_pe->GetEntry(ki);
+
+        if(dump)
+	std::cout << "<" << hit_time << ">" 
+	  /* << "<" << trk_length << ">" */ ;
+
+        hits_times->Fill(hit_time);
+
+        hit_count++;
+      }
+      if(dump)
+      std::cout << std::endl;
+
+      delete Hit_pe;
+    }//Loop on Hits
+
+    //--------
+    // The Digits
+    //--------
+    for (Int_t l=0; l<nTubeDigits; ++l) {
+      Event_digit->GetEntry(l);
+      
+      if(dump)
+      std::cout << "----> Digit{"<<l<<"}: " 
+		<< "tube[" << tubeId << "] = " 
+		<< " pe: " << digit_pe
+		<< " time: " << digit_time
+		<< std::endl;
+      
+      digits_time_pe->Fill(digit_time,digit_pe);
+
+    }//Loop on Digits
+
+    delete Event_vtxPos;
+    delete Event_track;
+    delete Event_hit;
+    delete Event_digit;
+
+  }//loop on event
+
+  if(dump)
+  std::cout << " nEvents = " << nEvent << " hits = " << hit_count << std::endl;
+
+  ////////////////////////////////////////////////////////
+  // Plot histograms /////////////////////////////////////
+  ////////////////////////////////////////////////////////
+  plot(*hits_times,*digits_time_pe);
+
+}//read_event
Index: /ELYSE/HEAD/scripts/ROOT/analysis_leaks.C
===================================================================
--- /ELYSE/HEAD/scripts/ROOT/analysis_leaks.C	(revision 286)
+++ /ELYSE/HEAD/scripts/ROOT/analysis_leaks.C	(revision 286)
@@ -0,0 +1,234 @@
+//
+//  This script is a first version to read, with ROOT, a ELYSE.root 
+// file having the "TTree within TTree" of the ELYSE_batch
+// progrem (see Analysis.cxx).
+//  But the below way to read the data has clearly a HUGE
+// memory consumption problem that someone can see by using
+// the "top" program on a UNIX.
+//
+//  Usage :
+//    OS> <setup ROOT>
+//  ( OS> root batch_dummy.C )
+//    OS> root analyis_leaks.C
+//
+//  G.Barrand
+//
+
+void analysis_leaks() {
+
+  TFile* f = new TFile("ELYSE.root");
+  TTree* tEvent = (TTree*)f->Get("Event");
+
+  //declare Non subTuple part
+  Int_t eventId,inputEvtId, interMode, vtxVol;
+  tEvent->SetBranchAddress("eventId",&eventId);
+  tEvent->SetBranchAddress("inputEvtId",&inputEvtId);
+  tEvent->SetBranchAddress("interMode",&interMode);
+  tEvent->SetBranchAddress("vtxVol",&vtxVol);
+
+  Int_t nPart,leptonIndex, protonIndex;
+  tEvent->SetBranchAddress("nPart",&nPart);
+  tEvent->SetBranchAddress("leptonIndex",&leptonIndex);
+  tEvent->SetBranchAddress("protonIndex",&protonIndex);
+
+  Int_t nHits; 
+  tEvent->SetBranchAddress("nHits",&nHits);
+
+  Int_t nDigits;
+  Double_t sumPE;
+  tEvent->SetBranchAddress("nDigits",&nDigits);
+  tEvent->SetBranchAddress("sumPE",&sumPE);
+
+  TTree* Event_vtxPos = new TTree();
+  tEvent->SetBranchAddress("vtxPos",&Event_vtxPos);
+  Double_t vx,vy,vz;
+
+  //The Track Event:subTuple  part
+  TTree* Event_track = new TTree();
+  tEvent->SetBranchAddress("track",&Event_track);
+  Int_t pId,parent;
+  Float_t timeStart;
+  Double_t mass, pTot, ETot;
+  Int_t startVol, stopVol;
+
+  //The Direction Track:subTuple
+  TTree* Track_direction = new TTree();
+  Double_t dx,dy,dz;
+
+  //The Momentum Track:subTuple
+  TTree* Track_momentum = new TTree();
+  Double_t px,py,pz;
+  
+  //The StartPos Track:subTuple
+  TTree* Track_startPos = new TTree();
+  Double_t start_x,start_y,start_z;
+
+  //The StopPos Track:subTuple
+  TTree* Track_stopPos = new TTree();
+  Double_t stop_x,stop_y,stop_z;
+
+  //The Hit Event:subTuple
+  TTree* Event_hit = new TTree();
+  tEvent->SetBranchAddress("hit",&Event_hit);
+  Int_t tubeId_hit; //JEC 16/1/06
+  Int_t totalPE;    
+  
+  //The Pe Hit::subTuple
+  TTree* Hit_pe = new TTree();
+  Float_t hit_time;
+  Float_t trk_length; //NV 13/6/06
+
+  //The Digit Event:subTuple   
+  TTree* Event_digit = new TTree();
+  tEvent->SetBranchAddress("digit",&Event_digit);
+  Int_t tubeId;
+  Double_t digit_pe, digit_time;
+
+  Int_t nEvent = (Int_t)tEvent->GetEntries();  
+  std::cout << " nEvents = " << nEvent << endl;
+
+  //Int_t nEvent = 10000;
+  for (Int_t i=0; i<nEvent; ++i) {
+
+    /*
+    Event_vtxPos->Reset();
+    Event_track->Reset();
+    Track_direction->Reset();
+    Track_momentum->Reset();
+    Track_startPos->Reset();
+    Track_stopPos->Reset();
+    Event_hit->Reset();
+    Hit_pe->Reset();
+    Event_digit->Reset();
+    //tEvent->ResetBranchAddresses();
+    */
+
+    tEvent->GetEntry(i);
+    std::cout << ">>>>>>>>>>>>> Event{" << i << "}: "
+    	      << " evt Id " << eventId 
+    //	      << " evt Input Id " << inputEvtId
+    //	      << "\n interaction mode " << interMode
+    //	      << " start in volume " << vtxVol << "\n"
+    //	      <<" #tracks: " << nPart
+    //	      <<" #hits: " << nHits
+    //	      <<" #digits: " << nDigits
+    	      << std::endl;
+
+    Int_t nTracks = (Int_t)Event_track->GetEntries();
+    Int_t nTubeHits = (Int_t)Event_hit->GetEntries();
+    Int_t nTubeDigits = (Int_t)Event_digit->GetEntries();
+    //std::cout << "Verif: nTracks = " << nTracks 
+    //	      << " nTube Hits = " << nTubeHits
+    //	      << " nTube Digits = " << nTubeDigits
+    //	      << std::endl;
+
+    Event_vtxPos->SetBranchAddress("x",&vx);
+    Event_vtxPos->SetBranchAddress("y",&vy);
+    Event_vtxPos->SetBranchAddress("z",&vz);
+
+    // Have a brand new overwritten track TTree ; we have
+    // to rebind its user variables :
+    Event_track->SetBranchAddress("pId",&pId);
+    Event_track->SetBranchAddress("parent",&parent);
+    Event_track->SetBranchAddress("timeStart",&timeStart);
+
+    Event_track->SetBranchAddress("mass",&mass);
+    Event_track->SetBranchAddress("pTot",&pTot);
+    Event_track->SetBranchAddress("ETot",&ETot);
+
+    Event_track->SetBranchAddress("startVol",&startVol);
+    Event_track->SetBranchAddress("stopVol",&stopVol);
+
+    Event_track->SetBranchAddress("direction",&Track_direction);
+    Event_track->SetBranchAddress("momentum",&Track_momentum);
+    Event_track->SetBranchAddress("startPos",&Track_startPos);
+    Event_track->SetBranchAddress("stopPos",&Track_stopPos);
+
+    // Have a brand new overwritten hit TTree ; we have
+    // to rebind its user variables :
+    Event_hit->SetBranchAddress("tubeId",&tubeId_hit); //JEC 16/1/06   
+    Event_hit->SetBranchAddress("totalPE",&totalPE);
+    Event_hit->SetBranchAddress("pe",&Hit_pe);
+    
+    // Have a brand new overwritten digit TTree ; we have
+    // to rebind its user variables :
+    Event_digit->SetBranchAddress("tubeId",&tubeId);
+    Event_digit->SetBranchAddress("pe",&digit_pe);
+    Event_digit->SetBranchAddress("time",&digit_time);
+
+
+    for (Int_t j=0; j<nTracks; ++j) {
+    //for (Int_t j=0; j<0; ++j) {
+      Event_track->GetEntry(j);
+
+      Track_direction->SetBranchAddress("dx",&dx);
+      Track_direction->SetBranchAddress("dy",&dy);
+      Track_direction->SetBranchAddress("dz",&dz);
+      Track_direction->GetEntry(0);
+
+      Track_momentum->SetBranchAddress("px",&px);
+      Track_momentum->SetBranchAddress("py",&py);
+      Track_momentum->SetBranchAddress("pz",&pz);
+      Track_momentum->GetEntry(0);
+
+      Track_startPos->SetBranchAddress("x",&start_x);
+      Track_startPos->SetBranchAddress("y",&start_y);
+      Track_startPos->SetBranchAddress("z",&start_z);
+      Track_startPos->GetEntry(0);
+
+      Track_stopPos->SetBranchAddress("x",&stop_x);
+      Track_stopPos->SetBranchAddress("y",&stop_y);
+      Track_stopPos->SetBranchAddress("z",&stop_z);
+      Track_stopPos->GetEntry(0);
+   
+      std::cout << "----> Tk{"<<j<<"}: " 
+		<< " pId " << pId
+		<< " parent " << parent
+		<< " creation time " << timeStart 
+		<< " Volumes " << startVol << " " << stopVol << "\n"
+		<< " Start Pos (" << start_x << "," << start_y << "," << start_z << ")\n"
+		<< " Stop Pos (" << stop_x << "," << stop_y << "," << stop_z << ")\n"
+		<< " dx,dy,dz " << dx << " " << dy << " " << dz << "\n"
+		<< " m " << mass
+		<< " ETot " << ETot
+		<< " pTot " << pTot
+		<< " px,py,pz " << px << " " << py << " " << pz << "\n"
+                << std::endl;
+    }//loop on Tracks
+
+    //--------
+    // The Hits
+    //--------
+
+
+    for (Int_t k=0; k<nTubeHits; ++k) {
+      
+      Event_hit->GetEntry(k);
+
+      Hit_pe->SetBranchAddress("time",&hit_time);
+      //Hit_pe->SetBranchAddress("length",&trk_length);
+      //JEC 16/1/06 add the tubeId_hit info
+      std::cout << "----> Hit{"<<k<<"}: tube[" << tubeId_hit << "] total #PE " << totalPE << std::endl;
+      for (Int_t ki=0; ki<Hit_pe->GetEntries(); ++ki) {
+	Hit_pe->GetEntry(ki);
+	std::cout << "<" << hit_time << ">" << "<" << trk_length << ">" ;
+      }
+      std::cout << std::endl;
+    }//Loop on Hits
+
+    //--------
+    // The Digits
+    //--------
+    //for (Int_t l=0; l<nTubeDigits; ++l) 
+    for (Int_t l=0; l<0; ++l) {
+      Event_digit->GetEntry(l);
+      
+      std::cout << "----> Digit{"<<l<<"}: " 
+		<< "tube[" << tubeId << "] = " 
+		<< " pe: " << digit_pe
+		<< " time: " << digit_time
+		<< std::endl;
+      
+    }//Loop on Digits
+  }//loop on event
+}//read_event
Index: /ELYSE/HEAD/scripts/ROOT/batch_dummy.C
===================================================================
--- /ELYSE/HEAD/scripts/ROOT/batch_dummy.C	(revision 286)
+++ /ELYSE/HEAD/scripts/ROOT/batch_dummy.C	(revision 286)
@@ -0,0 +1,204 @@
+//
+//  To help debugging.
+//
+//  This script produces a ELYSE.root file
+// with dummy data but with the same "TTree within TTree"
+// structure than the file produced by the ELYSE_batch 
+// program (see Analyis.cxx file).
+//
+//  Usage :
+//    OS> <setup ROOT>
+//    OS> root batch_dummy.C
+//
+//  G.Barrand
+//
+
+void batch_dummy() {
+
+  int compress = 1;
+  TFile f("ELYSE.root","recreate","JEC",compress);
+
+  TTree* event = new TTree("Event","");
+
+  int eventId,inputEvtId, interMode, vtxVol,nPart,leptonIndex,protonIndex;
+  event->Branch("eventId",&eventId,"eventId/I");
+  event->Branch("inputEvtId",&inputEvtId,"inputEvtId/I");
+  event->Branch("interMode",&interMode,"interMode/I");
+  event->Branch("vtxVol",&vtxVol,"vtxVol/I");
+  event->Branch("nPart",&nPart,"nPart/I");
+  event->Branch("leptonIndex",&leptonIndex,"leptonIndex/I");
+  event->Branch("protonIndex",&protonIndex,"protonIndex/I");
+  int nHits,nDigits; 
+  event->Branch("nHits",&nHits,"nHits/I");
+  event->Branch("nDigits",&nDigits,"nDigits/I");
+  double sumPE;
+  event->Branch("sumPE",&sumPE,"sumPE/D");
+
+  TTree* vtxPos = new TTree("vtxPos","");
+  event->Branch("vtxPos",&vtxPos);
+  double v_x,v_y,v_z;
+  vtxPos->Branch("x",&v_x,"x/D");
+  vtxPos->Branch("y",&v_y,"y/D");
+  vtxPos->Branch("z",&v_z,"z/D");
+
+  TTree* tracks = new TTree("Tracks","");
+  event->Branch("track",&tracks);
+  int pId, parent;
+  tracks->Branch("pId",&pId,"pId/I");
+  tracks->Branch("parent",&parent,"parent/I");
+  float timeStart;
+  tracks->Branch("timeStart",&timeStart,"timeStart/F");
+  double mass,pTot,ETot;
+  tracks->Branch("mass",&mass,"mass/D");
+  tracks->Branch("pTot",&pTot,"pTot/D");
+  tracks->Branch("ETot",&ETot,"ETot/D");
+  int startVol,stopVol;
+  tracks->Branch("startVol",&startVol,"startVol/I");
+  tracks->Branch("stopVol",&stopVol,"stopVol/I");
+
+  TTree* dir = new TTree("Direction","");
+  tracks->Branch("direction",&dir);
+  double dx,dy,dz;
+  dir->Branch("dx",&dx,"dx/D");
+  dir->Branch("dy",&dy,"dy/D");
+  dir->Branch("dz",&dz,"dz/D");
+
+  TTree* mom = new TTree("Momentum","");
+  tracks->Branch("momentum",&mom);
+  double px,py,pz;
+  mom->Branch("px",&px,"px/D");
+  mom->Branch("py",&py,"py/D");
+  mom->Branch("pz",&pz,"pz/D");
+
+  TTree* startPos = new TTree("startPos","");
+  tracks->Branch("startPos",&startPos);
+  double start_x,start_y,start_z;
+  startPos->Branch("x",&start_x,"x/D");
+  startPos->Branch("y",&start_y,"y/D");
+  startPos->Branch("z",&start_z,"z/D");
+
+  TTree* stopPos = new TTree("stopPos","");
+  tracks->Branch("stopPos",&stopPos);
+  double stop_x,stop_y,stop_z;
+  stopPos->Branch("x",&stop_x,"x/D");
+  stopPos->Branch("y",&stop_y,"y/D");
+  stopPos->Branch("z",&stop_z,"z/D");
+
+  TTree* hits = new TTree("hits","");
+  event->Branch("hit",&hits);
+  int tubeId,totalPE;
+  hits->Branch("tubeId",&tubeId,"tubeId/I");
+  hits->Branch("totalPE",&totalPE,"totalPE/I");
+
+  TTree* pe = new TTree("pe","");
+  hits->Branch("pe",&pe);
+  float pe_time;
+  pe->Branch("time",&time,"time/F");
+  //float trk_length;
+  //pe->Branch("length",&trk_length,"length/F");
+
+  TTree* digits = new TTree("digits","");
+  event->Branch("digit",&digits);
+  int digit_tubeId;
+  digits->Branch("tubeId",&digit_tubeId,"tubeId/I");
+  double digit_pe,time;
+  digits->Branch("pe",&digit_pe,"pe/D");
+  digits->Branch("time",&time,"time/D");
+
+  //int nrows = 10000000;
+  int nrows = 10000;
+  //int nrows = 10;
+  for (int index=0;index<nrows;index++) {
+    eventId = index+1;
+
+    interMode = 0;
+    vtxVol = 0;
+    leptonIndex = 0;
+    protonIndex = 0;
+
+    vtxPos->Reset();
+    // once :
+      v_x = 0;
+      v_y = 0;
+      v_z = 0;
+      vtxPos->Fill();
+
+    nPart = 1+(int) (10.0*rand()/(RAND_MAX+1.0)); //[1,10]
+
+    tracks->Reset();
+    for (int ipart=1; ipart<=nPart; ++ipart) {
+      pId = -10+(int) (20.0*rand()/(RAND_MAX+1.0)); //[-10,10]
+      parent = 1+(int) (ipart*rand()/(RAND_MAX+1.0)); //[1,ipart+1]
+      timeStart = 0;
+      mass = 0;
+      pTot = 0;
+      ETot = 10.;
+      startVol = 0;
+      stopVol = 0;
+
+      dir->Reset();
+      // once :
+        dx = 1;
+        dy = 0;
+        dz = 0;
+        dir->Fill();
+
+      mom->Reset();
+      // once :
+        px = 1;
+        py = 2;
+        pz = 3;
+        mom->Fill();
+
+      startPos->Reset();
+      // once :
+        start_x = 1;
+        start_y = 2;
+        start_z = 3;
+        startPos->Fill();
+
+      stopPos->Reset();
+      // once :
+        stop_x = 1;
+        stop_y = 2;
+        stop_z = 3;
+        stopPos->Fill();
+
+      tracks->Fill();
+    }
+
+    //nHits = 0;
+    nHits = (int) (10.0*rand()/(RAND_MAX+1.0));
+    hits->Reset();
+    for (int ihit=1; ihit<=nHits; ++ihit) {
+      tubeId = 0;
+      totalPE = 0;
+
+      pe->Reset();
+      // once :
+        pe_time = 0;
+        //trk_length = 3;
+        pe->Fill();
+
+      hits->Fill();
+    }
+
+    //nDigits = 0;
+    nDigits = (int) (10.0*rand()/(RAND_MAX+1.0));
+    digits->Reset();
+    for (int idigit=1; idigit<=nDigits; ++idigit) {
+      digit_tubeId = 0;
+      digit_pe = 0;
+      time = 0;
+      digits->Fill();
+    }
+
+    sumPE = 314;
+
+    event->Fill();
+  }
+
+  event->AutoSave();
+  f.Close();
+
+}
Index: /ELYSE/HEAD/scripts/Styles/ELYSE.styles
===================================================================
--- /ELYSE/HEAD/scripts/Styles/ELYSE.styles	(revision 286)
+++ /ELYSE/HEAD/scripts/Styles/ELYSE.styles	(revision 286)
@@ -0,0 +1,67 @@
+<styles>
+
+  <!-- ///////////////////////////////////////////////// -->
+  <!-- // PV /////////////////////////////////////////// -->
+  <!-- ///////////////////////////////////////////////// -->
+
+  <style name="PV">  <!-- default -->
+    <modeling>wire_frame</modeling>
+    <color>green</color>
+  </style>
+
+  <style name="PV_waterTank">
+    <modeling>wire_frame</modeling>
+    <color>blue</color>
+  </style>
+
+  <style name="PV_SensiVol">
+<!--
+    <modeling>solid</modeling>
+-->
+    <modeling>wire_frame</modeling>
+    <color>0.6 0.6 0</color>
+  </style>
+
+  <!-- ///////////////////////////////////////////////// -->
+  <!-- // Trajectory /////////////////////////////////// -->
+  <!-- ///////////////////////////////////////////////// -->
+
+  <style name="Trajectory">  <!-- default -->
+    <modeling>wire_frame</modeling>
+    <color>cyan</color>
+    <linePattern>solid</linePattern>
+  </style>
+
+  <style name="Trajectory(e-)">
+    <modeling>wire_frame</modeling>
+    <color>yellow</color>
+    <linePattern>solid</linePattern>
+  </style>
+
+  <style name="Trajectory(e+)">
+    <modeling>wire_frame</modeling>
+    <color>yellow</color>
+    <linePattern>solid</linePattern>
+  </style>
+
+  <style name="Trajectory(gamma)">
+    <modeling>wire_frame</modeling>
+    <color>red</color>
+    <linePattern>dashed</linePattern>
+  </style>
+
+
+  <!-- ///////////////////////////////////////////////// -->
+  <!-- // Hits ///////////////////////////////////////// -->
+  <!-- ///////////////////////////////////////////////// -->
+
+  <style name="HC">
+    <rotationSteps>3</rotationSteps>
+<!--
+    <rotationSteps>12</rotationSteps>
+    <modeling>wire_frame</modeling>
+-->
+    <color>0 0 1</color>
+  </style>
+
+</styles>
Index: /ELYSE/HEAD/source/Analysis.cxx
===================================================================
--- /ELYSE/HEAD/source/Analysis.cxx	(revision 286)
+++ /ELYSE/HEAD/source/Analysis.cxx	(revision 286)
@@ -0,0 +1,100 @@
+#include "ELYSE/Analysis.hh"
+
+//AIDA
+#include <AIDA/IAnalysisFactory.h>
+#include <AIDA/ITreeFactory.h>
+#include <AIDA/ITree.h>
+#include <AIDA/ITupleFactory.h>
+
+//Std
+#include <iostream>
+#include <vector>
+#include <string>
+
+ELYSE::Analysis::Analysis(
+ AIDA::IAnalysisFactory* aAIDA
+,const std::string& aFormat
+,bool aBatch)
+:fAIDA(aAIDA)
+,fBatch(aBatch)
+,fTree(0)
+{
+  if(!fAIDA) return;
+
+  AIDA::ITreeFactory* treeFactory = fAIDA->createTreeFactory();
+  if(fBatch) {
+    if( (aFormat=="root") || (aFormat==""))  {
+      //ROOT tree :
+      std::string opts = "export=root";
+      fTree = treeFactory->create("ELYSE.root","root",false,true,opts);
+    } else if(aFormat=="hdf5") {
+      //HDF5 tree :
+      std::string opts = "";
+      fTree = treeFactory->create("ELYSE.hdf5","hdf5",false,true,opts);
+    } else if(aFormat=="xml") {
+      // AIDA XML tree :
+      std::string opts = "compress=yes";
+      fTree = treeFactory->create("ELYSE.xml","xml",false,true,opts);
+    } else {
+      std::cout << "Analysis :"
+                << " file format \"" << aFormat << "\""
+                << " not handled."  
+                << std::endl;
+    }
+  } else {
+    // Memory tree :
+    fTree = treeFactory->create();
+  }
+  delete treeFactory;
+  if(!fTree) {
+    std::cout << "Analysis : FATAL"
+              << " tree not created." << std::endl;
+    return;
+  }
+
+  //Booking Event Tuple
+  AIDA::ITupleFactory* tf = fAIDA->createTupleFactory(*fTree);
+  if(fBatch) {
+    std::string column = "int eventId, vtxvol, "; 
+    column += "ITuple vtxPos = { double x, y, z }, ";
+    column += "int nPart, ";
+    column += "ITuple track = { int pId, parent, float timeStart, ";
+    column +=                  "ITuple direction = { double dx, dy, dz }, ";
+    column +=                  "double  mass, pTot, ETot, ";
+    column +=                  "ITuple momentum  = { double px, py, pz }, ";
+    column +=                  "ITuple startPos  = { double  x,  y,  z }, ";
+    column +=                  "ITuple stopPos   = { double  x,  y,  z } ";
+    column +=                  "int startVol, stopVol ";
+    column +=                "}, ";
+    column += "int nHits,";
+    column += "ITuple hit = { double  time, eTot, x,  y,  z, trkId, parentId, pdg, edep } ";
+    
+    tf->create("Event","ELYSE Event",column,"");     
+  }//batch mode
+  
+
+  //release the TupleFactory
+  delete tf;
+
+}//Ctor
+
+//----------------------------------------------------------------------
+ELYSE::Analysis::~Analysis(){
+  //Not to be changed
+  if(!fTree) return;
+  if(fBatch) {
+    fTree->commit();
+    delete fTree;
+    fTree = 0;
+  }
+}//Dtor
+
+//----------------------------------------------------------------------
+
+void ELYSE::Analysis::closeTree(){
+  if(!fTree) return;
+  if(!fBatch) return;
+  fTree->commit();
+  delete fTree;
+  fTree = 0;
+}
Index: /ELYSE/HEAD/source/Callbacks/Callbacks.cxx
===================================================================
--- /ELYSE/HEAD/source/Callbacks/Callbacks.cxx	(revision 286)
+++ /ELYSE/HEAD/source/Callbacks/Callbacks.cxx	(revision 286)
@@ -0,0 +1,225 @@
+//
+//  All functions here should be OnX callbacks, that is to say
+// functions with signature :
+//   extern "C" {
+//     void callback_without_arguments(Slash::UI::IUI&);
+//     void callback_with_arguments(Slash::UI::IUI&,const std::vector<std::string>&);
+//   }
+//
+
+#include <OnX/Helpers/OnX.h>
+#include <OnX/Helpers/Inventor.h>
+
+// Slash :
+#include <Slash/Core/ISession.h>
+#include <Slash/UI/IUI.h>
+
+// Lib :
+#include <Lib/Manager.h>
+#include <Lib/Out.h>
+
+// BatchLab :
+#include <BatchLab/Helpers/AIDA.h>
+
+// OnXLab :
+#include <OnXLab/Helpers/OnXLab.h>
+
+// G4Lab :
+#include <G4Lab/Interfaces/IGeant4Manager.h>
+
+// ELYSE :
+#include <ELYSE/IAppManager.hh>
+
+extern "C" {
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE_Initialize(
+ Slash::UI::IUI& aUI
+) 
+//////////////////////////////////////////////////////////////////////////////
+// Should be executed (in a widget create callback) 
+// when the GUI is constructed 
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  aUI.setCallback("OnX_File_exit","activate","DLD","G4Lab G4Lab_exit");
+  //StoreTrajectory customized in TrackingAction.
+  //aUI.executeScript("G4","/tracking/storeTrajectory 1");
+
+  Slash::UI::ISoViewer* soViewer = ui_SoViewer(aUI);
+  if(soViewer) {
+    soViewer->setDecoration(true);
+    soViewer->setViewing(true);
+  }
+
+  Slash::Core::ISession& session = aUI.session();
+
+  session.setParameter("event.scan","yes");//Used in ELYSE_eventEnd callback.
+    
+  IGeant4Manager* g4Manager = 
+    Lib_findManager(session,"Geant4Manager",IGeant4Manager);
+  if(!g4Manager) {
+    Lib::Out out(session.printer());
+    out << "ELYSE_Initialize :"
+        << " Geant4Manager not found."
+        << Lib::endl;
+  } else {
+    // Declare a callback executed at each end of event :
+    g4Manager->setEventEndScript("DLD","ELYSE ELYSE_eventEnd");
+  }  
+    
+  ELYSE::IAppManager* appManager = 
+    Lib_findManager(session,"ELYSE::AppManager",ELYSE::IAppManager);
+  if(!appManager) {
+    Lib::Out out(session.printer());
+    out << "ELYSE_Initialize :"
+        << " ELYSE::AppManager not found."
+        << Lib::endl;
+  } else {
+    // Create the Types. Initialize G4Lab SoNodes.
+    appManager->initialize();
+  }
+}
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE_Finalize(
+ Slash::UI::IUI&
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE_Geant4_detector(
+ Slash::UI::IUI& aUI
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  Slash::Core::ISession& session = aUI.session();
+  
+  data_collect(session,"PV","name==\"waterTank\"");
+  data_visualize(session);
+
+  data_collect(session,"PV","name==\"TyvekSheet\"");
+  data_visualize(session);
+
+  data_collect(session,"PV","name==\"SensiVol\"");
+  data_visualize(session);
+
+
+
+}
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE_analysis_closeTree(
+ Slash::UI::IUI& aUI
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  Slash::Core::ISession& session = aUI.session();
+  
+  ELYSE::IAppManager* appManager = 
+    Lib_findManager(session,"ELYSE::AppManager",ELYSE::IAppManager);
+  if(!appManager) {
+    Lib::Out out(session.printer());
+    out << "ELYSE_analysis_closeTree :"
+        << " ELYSE::AnalysisManager not found."
+        << Lib::endl;
+    return;
+  }
+
+  appManager->closeTree();
+}
+
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE_plot_hits_times(
+ Slash::UI::IUI& aUI
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  Slash::Core::ISession& session = aUI.session();
+
+  AIDA::IAnalysisFactory* aida = find_aida(session);
+  if(!aida) return;
+
+  AIDA::ITree* memoryTree = find_memoryTree(*aida);
+  if(!memoryTree) return;
+
+  std::string hname = "h_hits_times";
+  if(memoryTree->find(hname)) memoryTree->rm(hname);
+
+  AIDA::IHistogram1D* h = 
+    create_histogram1D(*aida,*memoryTree,hname,"Hits times.",100,0,3000);
+  if(!h) return;
+
+  // Fill histogram with a data_collect :
+  data_collect(session,"WCPMT","");
+  data_number(session);
+
+  data_fill1D(session,hname,"Times");
+
+  // Get current plotter :
+  AIDA::IPlotter* plotter = create_plotter(*aida);
+  if(plotter) {
+    AIDA::IPlotterRegion& region = plotter->currentRegion();
+    region.plot(*h);
+    delete plotter;
+  }
+}
+#define MINIMUM(a,b) ((a)<(b)?a:b)
+#define MAXIMUM(a,b) ((a)>(b)?a:b)
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE_vis_bins(
+ Slash::UI::IUI& aUI
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  Slash::Core::ISession& session = aUI.session();
+
+  Slash::UI::IWidget* cw = aUI.currentWidget();
+  Slash::UI::IWidget* widget = aUI.findWidget("Viewer_2");
+  if(!widget) return;
+  aUI.setCurrentWidget(widget);
+
+  //FIXME : check that current region is a plotter.
+  data_collect(session,"SceneGraph","highlight==true");
+  data_filter(session,"name");
+
+  std::vector<double> mins;
+  Lib::smanip::todoubles(data_values(session,"lowerEdge"),mins);
+  std::vector<double> maxs;
+  Lib::smanip::todoubles(data_values(session,"upperEdge"),maxs);
+  if(maxs.size()!=mins.size()) return;
+  if(!mins.size()) {
+    Lib::Out out(session.printer());
+    out << "ELYSE_vis_bins :"
+        << " no highlighted bins."
+        << Lib::endl;
+    return;
+  }
+  double mn = mins[0];
+  double mx = maxs[0];
+  for(unsigned int index=1;index<mins.size();index++) {
+    mn = MINIMUM(mn,mins[index]);
+    mx = MAXIMUM(mx,maxs[index]);
+  }
+
+  Lib::Out out(session.printer());
+  out << "ELYSE_vis_bins :"
+      << " min " << mn
+      << " max " << mx
+      << Lib::endl;
+
+  aUI.setCurrentWidget(cw);
+
+  std::string filter;
+  Lib::smanip::printf(filter,128,"(!(Times<%g))&&(!(Times>=%g))",mn,mx);
+  data_collect(session,"WCPMT",filter);
+  data_visualize(session);
+}
+
+
+} // extern "C"
Index: /ELYSE/HEAD/source/Callbacks/InventorCallbacks.cxx
===================================================================
--- /ELYSE/HEAD/source/Callbacks/InventorCallbacks.cxx	(revision 286)
+++ /ELYSE/HEAD/source/Callbacks/InventorCallbacks.cxx	(revision 286)
@@ -0,0 +1,97 @@
+//
+//  All functions here should be OnX callbacks, that is to say
+// functions with signature :
+//   extern "C" {
+//     void callback_without_arguments(Slash::UI::IUI&);
+//     void callback_with_arguments(Slash::UI::IUI&,
+//                                  const std::vector<std::string>&);
+//   }
+//
+
+//
+// HEPVis and Inventor related callbacks.
+//
+
+#include <OnX/Helpers/OnX.h>
+#include <OnX/Helpers/Inventor.h>
+
+#include <Lib/mmanip.h>
+
+#include <Inventor/nodes/SoOrthographicCamera.h>
+
+// HEPVis :
+#include <HEPVis/SbMath.h>
+#include <HEPVis/nodekits/SoPage.h>
+#include <HEPVis/nodekits/SoDisplayRegion.h>
+
+extern "C" {
+
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE_eventEnd(
+ Slash::UI::IUI& aUI
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  Slash::Core::ISession& session = aUI.session();
+
+  std::string event_scan;
+  session.parameterValue("event.scan",event_scan);
+  if(event_scan=="no") return;
+
+  SoPage* soPage = ui_SoPage(aUI);
+  if(!soPage) return;
+
+  SoRegion* soRegion = soPage->currentRegion();
+  if(!soRegion) return;
+
+  soRegion->clear("dynamicScene");
+
+  session.setParameter("modeling.trajectories","pickable");
+  //session.setParameter("modeling.trajectories","immediate_all");
+
+  //JEC 16/1/06 if too much tarjectory: 
+  // FATAL if data_collect commented don't forget to comment data_visualize    
+  
+  data_collect(session,"Trajectory");
+  data_visualize(session);
+
+
+  //Enter secondary interactive loop to
+  // play with the event :
+  aUI.echo("Play with the event...");
+  aUI.steer();
+
+}
+//////////////////////////////////////////////////////////////////////////////
+void ELYSE_Layout_default(
+ Slash::UI::IUI& aUI
+) 
+//////////////////////////////////////////////////////////////////////////////
+// Used in scripts/OnX/Pages.onx 
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  SoPage* soPage = ui_SoPage(aUI);
+  if(!soPage) return;
+
+  soPage->deleteRegions();
+  soPage->titleVisible.setValue(FALSE);
+  soPage->createRegions("SoDisplayRegion",1,1,0);
+
+  // First region ; side view :
+  SoRegion* soRegion = soPage->currentRegion();
+  if(!soRegion) return;
+  soRegion->color.setValue(SbColor(0,0,0));
+
+  // 1 * m :
+  float size = 300;
+
+  SoCamera* soCamera = soRegion->getCamera();
+  if(soCamera->isOfType(SoOrthographicCamera::getClassTypeId()))
+    ((SoOrthographicCamera*)soCamera)->height.setValue(size);
+  soCamera->nearDistance.setValue(1);
+  soCamera->focalDistance.setValue(size);
+  soCamera->farDistance.setValue(100*size);
+}
+
+} // extern "C"
Index: /ELYSE/HEAD/source/DetectorConstruction.cxx
===================================================================
--- /ELYSE/HEAD/source/DetectorConstruction.cxx	(revision 286)
+++ /ELYSE/HEAD/source/DetectorConstruction.cxx	(revision 286)
@@ -0,0 +1,659 @@
+#include "ELYSE/DetectorConstruction.hh"
+
+// Geant 4
+#include "G4MaterialTable.hh"
+#include "G4ElementTable.hh"
+#include "G4Box.hh"
+#include "G4SubtractionSolid.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4OpticalSurface.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalSkinSurface.hh"
+#include "G4LogicalBorderSurface.hh"
+#include "G4PVPlacement.hh"
+#include "G4SDManager.hh"
+#include "G4Material.hh"
+#include "G4Element.hh"
+
+#include "G4GeometryManager.hh"
+#include "G4PhysicalVolumeStore.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4SolidStore.hh"
+#include "G4RunManager.hh"
+#include "G4Colour.hh"
+#include "G4VisAttributes.hh"
+
+//ELYSE
+#include "ELYSE/TrappingVolume.hh"
+#include "ELYSE/DetectorMessenger.hh"
+#include "ELYSE/Cast.hh"
+#include "ELYSE/Analysis.hh"
+
+ELYSE::DetectorConstruction::DetectorConstruction() {
+
+  //-----------------
+  // Create Materials
+  //-----------------
+    
+  ConstructMaterials();
+
+  //-----------------
+  // Initilize SD pointers
+  //-----------------
+
+  aTrappingVolume  = 0; 
+
+  //-----------------
+  // Volume/Surface lengths/size (default)
+  //-----------------
+
+  //The Hall
+  expHall_x = expHall_y = expHall_z = 1.0*m;
+  //The target volume
+  water_x    = water_y    = water_z    = 10.0*cm;
+  //tyvek sheet thickness
+  tyvek_thickness = 1.0*mm;
+
+
+  updated = true;
+
+  //Initialize the optical surface 
+  OpWaterTyvekSurface = 0;
+  OpWaterAirSurface   = 0;
+
+
+  //-----------------
+  // Make the detector messenger to allow changing geometry
+  //-----------------
+
+  messenger = new DetectorMessenger(this);
+
+
+}//Ctor
+
+//----------------------------------------------------------------------------------------------
+ELYSE::DetectorConstruction::~DetectorConstruction(){
+  delete messenger;
+}
+
+//-----------------------------------------------------------------------------------------------
+
+G4VPhysicalVolume* ELYSE::DetectorConstruction::Construct() {
+
+  //-----------------------
+  // The Solids
+  //-----------------------
+
+  //-----------------------
+  // A box of water delimited by a tyvek sheet and surrounding by a air volume sensitive
+  //-----------------------
+
+
+  G4Box* solidExpHall = new G4Box("expHall",
+				  expHall_x/2.,
+				  expHall_y/2.,
+				  expHall_z/2.);
+  
+
+  //a volume sensitive to trap every particles...
+  G4Box*  solidSensiVolFull = new G4Box("SensiVolFull",
+				    water_x/2.+ 2.*tyvek_thickness,
+				    water_y/2.+ 2.*tyvek_thickness,
+				    water_z/2.+ 2.*tyvek_thickness
+				    );
+  
+
+  G4Box*  solidTyvekFull = new G4Box("TyvekFull",
+				     water_x/2.+tyvek_thickness,
+				     water_y/2.+tyvek_thickness,
+				     water_z/2.+tyvek_thickness
+				     );
+
+  G4Box* solidWaterTank = new G4Box("waterTank",water_x/2.,water_y/2.,water_z/2.);
+
+
+
+  G4SubtractionSolid* solidSensiVol = new G4SubtractionSolid("SensiVol",solidSensiVolFull,solidTyvekFull);
+
+  //Make the tyvek volume as an subtraction to define a proper tyvek volume for the oprtical surface
+  //overwise we would have done a tyvek volume and place inside a water volume...
+  G4SubtractionSolid* solidTyvek = new G4SubtractionSolid("TyvekSheet",solidTyvekFull,solidWaterTank);
+
+
+  //-----------------------
+  // The Logical and Physical volumes
+  // The vizualization attributes are defined in scripts/Styles/ELYSE.styles
+  //-----------------------
+
+
+
+  G4LogicalVolume* logicExpHall = 
+    new G4LogicalVolume(solidExpHall,
+			G4Material::GetMaterial("Air"),
+			"expHall",
+			0,0,0);
+
+  G4VPhysicalVolume* physicExpHall = 
+    new G4PVPlacement(0,G4ThreeVector(),
+		      logicExpHall,
+		      "expHall",
+		      0,false,0);
+
+
+  G4LogicalVolume* logicSensiVol
+    = new G4LogicalVolume(solidSensiVol,G4Material::GetMaterial("Glass"),"SensiVol",0,0,0);
+
+
+  G4VPhysicalVolume* physicSensiVol
+    = new G4PVPlacement(0,G4ThreeVector(),logicSensiVol,"SensiVol",
+			logicExpHall,false,0);
+
+
+  G4LogicalVolume* logicTyvek 
+    = new G4LogicalVolume(solidTyvek,G4Material::GetMaterial("Tyvek"),"TyvekSheet",0,0,0);
+
+  G4VPhysicalVolume* physicTyvek
+    = new G4PVPlacement(0,G4ThreeVector(),logicTyvek,"TyvekSheet",
+			logicExpHall,false,0);
+
+  G4LogicalVolume* logicWaterTank
+    = new G4LogicalVolume(solidWaterTank,G4Material::GetMaterial("Water"),"waterTank",0,0,0);
+  
+
+  G4VPhysicalVolume* physicWaterTank
+    = new G4PVPlacement(0,G4ThreeVector(),logicWaterTank,"waterTank",
+                        logicExpHall,false,0);
+  
+
+  //introduce the interfaces Water-Tyvek and Tyvek-Glass for optical photons
+  new G4LogicalBorderSurface("waterTyvekInterface",
+			       physicWaterTank,physicTyvek,OpWaterTyvekSurface);
+  
+  new G4LogicalBorderSurface("tyvekGlassInterface",
+			       physicTyvek,physicSensiVol,OpTyvekGlassSurface);
+
+  //--------------
+  // Make sensitive detectors (this is quite artificial for the moment 13/2/07)
+  //--------------
+
+  G4SDManager* SDman = G4SDManager::GetSDMpointer();
+  
+  if (!aTrappingVolume) {
+    //JEC 25/1/06 add the "this" pointer, so WCSD can access to the PMT location wo static functions
+    aTrappingVolume = new TrappingVolume( "/ELYSE/TrappingVolume", this ); 
+    SDman->AddNewDetector( aTrappingVolume );
+  }
+  logicSensiVol->SetSensitiveDetector( aTrappingVolume );
+
+
+
+  // Return the pointer to the physical experimental hall
+  return physicExpHall;
+} //Construct
+
+//---------------------------------------------------------------------------------------------
+void ELYSE::DetectorConstruction::ConstructMaterials() {
+    
+  //---Vaccuum
+  G4double density     = universe_mean_density;              //from PhysicalConstants.h
+  G4double pressure    = 1.e-19*pascal;
+  G4double temperature = 0.1*kelvin;
+  G4double a = 1.01*g/mole;
+  new G4Material("Vaccuum", 1., a, density,
+                   kStateGas,temperature,pressure);
+
+  //---Water
+  
+  a = 1.01*g/mole;
+  G4Element* elH 
+    = new G4Element("Hydrgen","H", 1,a);
+  
+  a = 16.00*g/mole;
+  G4Element* elO 
+    = new G4Element("Oxygen","O", 8,a);
+  
+  density = 1.00*g/cm3;
+  G4Material* Water 
+    = new G4Material("Water",density,2);
+  Water->AddElement(elH, 2);
+  Water->AddElement(elO, 1);
+
+  //---Air
+  
+  a = 14.01*g/mole;
+  G4Element* elN 
+    = new G4Element("Nitrogen","N", 7,a);
+  
+  density = 1.290*mg/cm3;
+  G4Material* Air 
+    = new G4Material("Air",density,2);
+  Air->AddElement(elN, 70.*perCent);
+  Air->AddElement(elO, 30.*perCent);
+  
+
+  //---Glass
+  a = 28.09*g/mole;
+  G4Element* elSi = new G4Element("Silicon", "Si", 14., a); 
+ 
+  density = 2.20*g/cm3;
+  G4Material* SiO2 = new G4Material("SiO2",density,2);
+  SiO2->AddElement(elSi, 1);
+  SiO2->AddElement(elO , 2);
+
+  a = 10.81*g/mole;
+  G4Element* elB = new G4Element("Boron", "B", 5, a);  
+
+  density = 2.46*g/cm3;
+  G4Material* B2O3 = new G4Material("B2O3",density,2);
+  B2O3->AddElement(elB, 2);
+  B2O3->AddElement(elO, 3);
+
+  a = 22.99*g/mole;
+  G4Element* elNa = new G4Element("Sodium", "Na", 11, a);  
+
+  density = 2.27*g/cm3;
+  G4Material* Na2O = new G4Material("Na2O",density,2);
+  Na2O->AddElement(elNa, 2);
+  Na2O->AddElement(elO, 1);
+
+  a = 26.98*g/mole;
+  G4Element* elAl = new G4Element("Aluminum", "Al", 13, a);  
+
+  density = 4.00*g/cm3;
+  G4Material* Al2O3 = new G4Material("Al2O3",density,2);
+  Al2O3->AddElement(elAl, 2);
+  Al2O3->AddElement(elO, 3);
+
+  density = 2.23*g/cm3;
+  G4Material* Glass = new G4Material("Glass",density,4);
+  
+  Glass->AddMaterial(SiO2, 80.6*perCent);
+  Glass->AddMaterial(B2O3, 13.0*perCent);
+  Glass->AddMaterial(Na2O, 4.0*perCent);
+  Glass->AddMaterial(Al2O3, 2.4*perCent);
+
+
+  //---Tyvek
+  //JEC : 9/2/07 as MEMPHYS/SK::Blacksheet in a version 0
+  //JEC + SDC: 9/2/07 use Auger Liner definition
+  a= 12.01*g/mole;
+  G4Element* elC 
+    = new G4Element("Carbon","C", 6,a);
+
+  density = 0.94*g/cm3;
+  G4Material* Tyvek = new G4Material("Tyvek",density,2);
+  Tyvek->AddElement(elC, 2);
+  Tyvek->AddElement(elH, 4);
+
+
+  // -------------------------------------------------------------
+  // Generate & Add Material Properties Table
+  // -------------------------------------------------------------
+  
+  const G4int NUMENTRIES_general=60; //number of energy bins to simulate material properties
+  
+  //--------------
+  //-------- Water
+  //--------------
+  
+  G4double ENERGY_water[NUMENTRIES_general] =
+    { 1.56962*eV, 1.58974*eV, 1.61039*eV, 1.63157*eV, 
+      1.65333*eV, 1.67567*eV, 1.69863*eV, 1.72222*eV, 
+      1.74647*eV, 1.77142*eV, 1.79710*eV, 1.82352*eV, 
+      1.85074*eV, 1.87878*eV, 1.90769*eV, 1.93749*eV, 
+      1.96825*eV, 1.99999*eV, 2.03278*eV, 2.06666*eV,
+      2.10169*eV, 2.13793*eV, 2.17543*eV, 2.21428*eV, 
+      2.25454*eV, 2.29629*eV, 2.33962*eV, 2.38461*eV, 
+      2.43137*eV, 2.47999*eV, 2.53061*eV, 2.58333*eV, 
+      2.63829*eV, 2.69565*eV, 2.75555*eV, 2.81817*eV, 
+      2.88371*eV, 2.95237*eV, 3.02438*eV, 3.09999*eV,
+      3.17948*eV, 3.26315*eV, 3.35134*eV, 3.44444*eV, 
+      3.54285*eV, 3.64705*eV, 3.75757*eV, 3.87499*eV, 
+      3.99999*eV, 4.13332*eV, 4.27585*eV, 4.42856*eV, 
+      4.59258*eV, 4.76922*eV, 4.95999*eV, 5.16665*eV, 
+      5.39129*eV, 5.63635*eV, 5.90475*eV, 6.19998*eV };
+
+  G4double RINDEX1[NUMENTRIES_general] =  
+    { 1.32885, 1.32906, 1.32927, 1.32948, 1.3297, 1.32992, 1.33014, 
+      1.33037, 1.3306, 1.33084, 1.33109, 1.33134, 1.3316, 1.33186, 1.33213,
+      1.33241, 1.3327, 1.33299, 1.33329, 1.33361, 1.33393, 1.33427, 1.33462,
+      1.33498, 1.33536, 1.33576, 1.33617, 1.3366, 1.33705, 1.33753, 1.33803,
+      1.33855, 1.33911, 1.3397, 1.34033, 1.341, 1.34172, 1.34248, 1.34331,
+      1.34419, 1.34515, 1.3462, 1.34733, 1.34858, 1.34994, 1.35145, 1.35312,
+      1.35498, 1.35707, 1.35943, 1.36211, 1.36518, 1.36872, 1.37287, 1.37776,
+      1.38362, 1.39074, 1.39956, 1.41075, 1.42535 };
+  
+  G4double ABSORPTION_water[NUMENTRIES_general] =
+    {25.3504*cm, 31.7938*cm, 39.9915*cm, 50.454*cm, 63.85*cm, 
+     81.0584*cm, 103.24*cm, 131.93*cm, 169.172*cm, 217.694*cm, 
+     224.921*cm, 249.688*cm, 262.674*cm, 273*cm, 321.13*cm, 339.789*cm,
+     351.617*cm, 363.108*cm, 385.802*cm, 461.042*cm, 707.714*cm, 
+     1038.42*cm, 1383.7*cm, 1558.36*cm, 1722.65*cm, 1939.11*cm, 
+     2092.49*cm, 2240.14*cm, 2962.96*cm, 4967.03*cm, 6368.58*cm, 
+     8207.56*cm, 10634.2*cm, 13855.3*cm, 18157.3*cm, 23940.2*cm, 
+     31766*cm, 42431.6*cm, 57074.9*cm, 77335.9*cm, 105598*cm, 
+     145361*cm, 192434*cm, 183898*cm, 176087*cm, 168913*cm, 162301*cm, 
+     156187*cm, 150516*cm, 145243*cm, 140327*cm, 135733*cm, 131430*cm, 
+     127392*cm, 123594*cm, 120016*cm, 116640*cm, 113448*cm, 110426*cm, 
+     107562*cm};
+  
+  // M Fechner: Rayleigh scattering -- as of version 4.6.2 of GEANT,
+  // one may use one's own Rayleigh scattering lengths (the buffer is no
+  // longer overwritten for "water", see 4.6.2 release notes)
+  
+  // RAYFF = 1/ARAS, for those of you who know SKdetsim...
+  // actually that's not quite right because the scattering models
+  // are different; in G4 there is no scattering depolarization
+  // std value at SK = 0.6. But Mie scattering is implemented
+  // in SKdetsim and not in G4
+  
+  // april 2005 : reduced reflections, let's increase scattering...
+  //   G4double RAYFF = 1.0/1.65;
+  G4double RAYFF = 1.0/1.5;
+  
+  G4double RAYLEIGH_water[NUMENTRIES_general] = {
+    167024.4*cm*RAYFF, 158726.7*cm*RAYFF, 150742*cm*RAYFF,
+    143062.5*cm*RAYFF, 135680.2*cm*RAYFF, 128587.4*cm*RAYFF,
+    121776.3*cm*RAYFF, 115239.5*cm*RAYFF, 108969.5*cm*RAYFF,
+    102958.8*cm*RAYFF, 97200.35*cm*RAYFF, 91686.86*cm*RAYFF,
+    86411.33*cm*RAYFF, 81366.79*cm*RAYFF, 76546.42*cm*RAYFF,
+    71943.46*cm*RAYFF, 67551.29*cm*RAYFF, 63363.36*cm*RAYFF,
+    59373.25*cm*RAYFF, 55574.61*cm*RAYFF, 51961.24*cm*RAYFF,
+    48527.00*cm*RAYFF, 45265.87*cm*RAYFF, 42171.94*cm*RAYFF,
+    39239.39*cm*RAYFF, 36462.50*cm*RAYFF, 33835.68*cm*RAYFF,
+    31353.41*cm*RAYFF, 29010.30*cm*RAYFF, 26801.03*cm*RAYFF,
+    24720.42*cm*RAYFF, 22763.36*cm*RAYFF, 20924.88*cm*RAYFF,
+    19200.07*cm*RAYFF, 17584.16*cm*RAYFF, 16072.45*cm*RAYFF,
+    14660.38*cm*RAYFF, 13343.46*cm*RAYFF, 12117.33*cm*RAYFF,
+    10977.70*cm*RAYFF, 9920.416*cm*RAYFF, 8941.407*cm*RAYFF,
+    8036.711*cm*RAYFF, 7202.470*cm*RAYFF, 6434.927*cm*RAYFF,
+    5730.429*cm*RAYFF, 5085.425*cm*RAYFF, 4496.467*cm*RAYFF,
+    3960.210*cm*RAYFF, 3473.413*cm*RAYFF, 3032.937*cm*RAYFF,
+    2635.746*cm*RAYFF, 2278.907*cm*RAYFF, 1959.588*cm*RAYFF,
+    1675.064*cm*RAYFF, 1422.710*cm*RAYFF, 1200.004*cm*RAYFF,
+    1004.528*cm*RAYFF, 833.9666*cm*RAYFF, 686.1063*cm*RAYFF
+  };
+
+  // SDC: new parameters for scintillation
+
+  G4double SCINTILFAST[NUMENTRIES_general] = 
+    { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
+
+
+   G4double SCINTILSLOW[NUMENTRIES_general] = 
+     { 0 , 0 , 0 , 0 , 0 , 0 , 0,  
+       0 , 0 , 0 , 0 , 0 , 0 , 
+       0 , 0 , 0 , 0 , 0 , 0 , 
+       0.505 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 
+       6.5 , 7.5 , 8.5 , 8.5 , 7.5 , 6.5 , 
+       5 , 3.5 , 2.5 , 1.5 , 0.505 , 0.505 , 
+       1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 
+       7.5 , 8.5 , 8.5 , 7.5 , 6.5 , 5.5 , 
+       4.5 , 0 , 0 , 0 , 0 , 0 , 
+       0 , 0 , 0 , 0 , 0  };
+
+   G4MaterialPropertiesTable *myMPT1 = new G4MaterialPropertiesTable();
+   myMPT1->AddProperty("RINDEX", ENERGY_water, RINDEX1, NUMENTRIES_general);
+   myMPT1->AddProperty("ABSLENGTH",ENERGY_water, ABSORPTION_water, NUMENTRIES_general);
+
+   myMPT1->AddProperty("FASTCOMPONENT",ENERGY_water,SCINTILFAST,NUMENTRIES_general);
+   myMPT1->AddProperty("SLOWCOMPONENT",ENERGY_water,SCINTILSLOW,NUMENTRIES_general);
+
+   // M Fechner: new, don't let G4 compute it.
+   myMPT1->AddProperty("RAYLEIGH",ENERGY_water,RAYLEIGH_water,NUMENTRIES_general);
+
+   //SDC : scintillation part if needed (G4 exemple ???)
+   myMPT1->AddConstProperty("SCINTILLATIONYIELD",50./MeV);
+   myMPT1->AddConstProperty("RESOLUTIONSCALE",1.0);
+   myMPT1->AddConstProperty("FASTTIMECONSTANT", 1.*ns);
+   myMPT1->AddConstProperty("SLOWTIMECONSTANT",10.*ns);
+   myMPT1->AddConstProperty("YIELDRATIO",0.8);
+
+
+   Water->SetMaterialPropertiesTable(myMPT1);
+   
+   G4cout << "ConstructMaterial: Dump Water properties" << G4endl;
+   myMPT1->DumpTable();
+   
+
+   //--------------
+   //------------ Air
+   //--------------
+  G4double RINDEX_air[NUMENTRIES_general] = 
+    { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+      1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
+
+   //utter fiction at this stage, does not matter
+   G4double RAYLEIGH_air[NUMENTRIES_general] =
+     { 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,
+       0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m};
+
+   G4double ABSORPTION_air[NUMENTRIES_general] =
+     { 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm,
+       1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm,
+       1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm,
+       1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm,
+       1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 
+       1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm,
+       1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm,
+       1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm,
+       1.0e-9*cm, 1.0e-9*cm,1.0e-9*cm, 1.0e-9*cm};
+
+
+   G4MaterialPropertiesTable *myMPT2 = new G4MaterialPropertiesTable();
+   myMPT2->AddProperty("RINDEX", ENERGY_water, RINDEX_air, NUMENTRIES_general);
+   // M Fechner : what is that ?????
+   //   myMPT2->AddProperty("ABSLENGTH", ENERGY_water, BLACKABS_blacksheet, NUMENTRIES_general);
+   // JEC: replace BLACKABS_blacksheet by  ABSORPTION_air
+   myMPT2->AddProperty("ABSLENGTH", ENERGY_water, ABSORPTION_air, NUMENTRIES_general);
+   myMPT2->AddProperty("RAYLEIGH",ENERGY_water, RAYLEIGH_air, NUMENTRIES_general);
+   Air->SetMaterialPropertiesTable(myMPT2);
+
+
+   //--------------
+   //----------------  Tyvek
+   //--------------
+   //JEC 9/2/07 : as Blacksheet in a version 0
+   //JEC +SDC 9/2/07: introduce the Auger simulation of the liner
+   
+   const G4int NUMENTRIES_tyvek = 30;
+
+   G4double ENERGY_tyvek[NUMENTRIES_tyvek] = {
+     2.08*eV , 2.16*eV , 2.19*eV , 2.23*eV , 2.27*eV , 2.32*eV , 2.36*eV , 2.41*eV , 2.46*eV , 2.50*eV , 
+     2.56*eV , 2.61*eV , 2.67*eV , 2.72*eV , 2.79*eV , 2.85*eV , 2.92*eV , 2.99*eV , 3.06*eV , 3.14*eV , 
+     3.22*eV , 3.31*eV , 3.4*eV  , 3.49*eV , 3.59*eV , 3.7*eV  , 3.81*eV , 3.94*eV , 4.07*eV , 4.20*eV };
+
+   G4double ABSORPTION_Tyvek[NUMENTRIES_tyvek] =
+     { 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 
+       10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 
+       10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m };
+
+   G4MaterialPropertiesTable *myMPT4 = new G4MaterialPropertiesTable();
+   myMPT4->AddProperty("ABSLENGTH", ENERGY_tyvek, ABSORPTION_Tyvek, NUMENTRIES_tyvek);
+   Tyvek->SetMaterialPropertiesTable(myMPT4);
+   
+
+   //--------------
+   //--------- Glass
+   //--------------
+
+  G4double RINDEX_glass[NUMENTRIES_general] =
+    { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+      1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+      1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+      1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+      1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+      1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+      1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+      1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+      1.600, 1.600 }; 
+  
+  //JEC: To do adapt to the # of entries  and do not include quantum eff. of a PMTs... as in MEMPHYS case 9/2/07
+//   G4double ABSORPTION_glass[NUMENTRIES] = 
+//     { 100.0*cm, 110.0*cm, 120.0*cm, 130.0*cm, 140.0*cm, 150.0*cm, 160.0*cm,
+//       165.0*cm, 170.0*cm, 175.0*cm, 180.0*cm, 185.0*cm, 190.0*cm, 195.0*cm,
+//       200.0*cm, 200.0*cm, 200.0*cm, 200.0*cm, 200.0*cm, 195.0*cm, 190.0*cm,
+//       185.0*cm, 180.0*cm, 175.0*cm, 170.0*cm, 160.0*cm, 150.0*cm, 140.0*cm,
+//       130.0*cm, 120.0*cm, 110.0*cm, 100.0*cm };
+
+  //JEC dummy values to be able to compile !!! 14/2/07
+   G4double ABSORPTION_glass[NUMENTRIES_general] =
+     { 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm,
+       150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm,
+       150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm,
+       150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm,
+       150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 
+       150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm,
+       150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm,
+       150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm, 150.0*cm,
+       150.0*cm, 150.0*cm,150.0*cm, 150.0*cm};
+
+
+  
+   G4MaterialPropertiesTable *myMPT5 = new G4MaterialPropertiesTable();
+   myMPT5->AddProperty("RINDEX", ENERGY_water, RINDEX_glass, NUMENTRIES_general);
+   myMPT5->AddProperty("ABSLENGTH",ENERGY_water, ABSORPTION_glass, NUMENTRIES_general);
+   Glass->SetMaterialPropertiesTable(myMPT5);
+    
+   //	------------- Surfaces --------------
+
+   //--------------------
+   // Water - Tyvek
+   //--------------------
+   //JEC 9/2/07: From the BackSheet Simulation in MEMPHYS/SK
+   //JEC + SDC: input properties from Auger
+
+   OpWaterTyvekSurface = new G4OpticalSurface("WaterTyvekSurface");
+   OpWaterTyvekSurface->SetType(dielectric_dielectric);
+   OpWaterTyvekSurface->SetModel(unified);
+   OpWaterTyvekSurface->SetFinish(groundbackpainted);
+   OpWaterTyvekSurface->SetSigmaAlpha( 0.17 );
+   
+   //JEC + SDC 9/2/07 : adapted from Auger
+   const G4int NUMENTRIES_water_tyvek = 3;
+   G4double PP[NUMENTRIES_water_tyvek]                    = { 2.08*eV, 3.0*eV, 4.2*eV };
+   G4double RINDEX_tyvek[NUMENTRIES_water_tyvek]          = { 0.0    , 0.0   ,  0.0   }; //JEC ????
+   G4double SPECULARLOBECONSTANT[NUMENTRIES_water_tyvek]  = { 0.2    , 0.2   ,  0.2   };
+   G4double SPECULARSPIKECONSTANT[NUMENTRIES_water_tyvek] = { 0.0    , 0.0   ,  0.0   };
+   G4double BACKSCATTERCONSTANT[NUMENTRIES_water_tyvek]   = { 0.0    , 0.0   ,  0.0   };
+
+   //JEC 9/2/07 from MEMPHYS/SK Blacksheet: for sure should be modified!
+   //JEC + SDC 9/2/07 adapted from Auger
+   G4double REFLECTIVITY_tyvek[NUMENTRIES_tyvek] =
+     { 0.968816 , 0.968427 , 0.967940 , 0.967357 , 0.967065 , 0.966870 , 0.966870 , 0.967162 , 0.967649 , 0.968524 ,
+       0.969497 , 0.970568 , 0.971541 , 0.972319 , 0.973000 , 0.973000 , 0.972319 , 0.970762 , 0.967940 , 0.963562 , 
+       0.957432 , 0.948967 , 0.938167 , 0.924350 , 0.908198 , 0.886208 , 0.861008 , 0.831039 , 0.795719 , 0.754561  };
+
+   
+   G4MaterialPropertiesTable *myST1 = new G4MaterialPropertiesTable();
+   myST1->AddProperty("RINDEX", ENERGY_tyvek, RINDEX_tyvek, NUMENTRIES_tyvek);
+   myST1->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT, NUMENTRIES_water_tyvek);
+   myST1->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT, NUMENTRIES_water_tyvek);
+   myST1->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT, NUMENTRIES_water_tyvek);
+   myST1->AddProperty("REFLECTIVITY", ENERGY_tyvek, REFLECTIVITY_tyvek, NUMENTRIES_tyvek);
+   OpWaterTyvekSurface->SetMaterialPropertiesTable(myST1);
+
+
+   //------------------
+   //Tyvek - Glass
+   //------------------
+   //JEC 13/2/07 this is a stopping surface as the photocathode in MEMPHYS
+   //            reflectivity = 0 && efficiency = 100%   => absorption
+   
+   OpTyvekGlassSurface = new G4OpticalSurface("TyvekGlassSurface");
+   OpTyvekGlassSurface->SetType(dielectric_metal); //as for LXe G4 example
+   OpTyvekGlassSurface->SetModel(glisur);          //as for LXe G4 example
+   OpTyvekGlassSurface->SetFinish(polished);
+   const G4int NUM = 2;
+   G4double REFLECTIVITY_tyvekglass[NUM] = { 0.0, 0.0 };
+   G4double EFFICIENCY_tyvekglass[NUM]   = { 1.0, 1.0 };
+
+   G4MaterialPropertiesTable *myST2 = new G4MaterialPropertiesTable();
+   myST2->AddProperty("REFLECTIVITY", PP, REFLECTIVITY_tyvekglass, NUM);
+   myST2->AddProperty("EFFICIENCY", PP, EFFICIENCY_tyvekglass, NUM);
+   OpTyvekGlassSurface->SetMaterialPropertiesTable(myST2);
+
+   //------------------
+   //Water - Air
+   //------------------
+
+   //JEC: 9/2/07 certainly from a G4 novice exercice ==> should be clarified
+   OpWaterAirSurface = new G4OpticalSurface("WaterAirSurface");
+   OpWaterAirSurface->SetType(dielectric_dielectric);
+   OpWaterAirSurface->SetFinish(ground);
+   OpWaterAirSurface->SetModel(unified);
+   
+   const G4int num_WaterAir = 2;
+   G4double Ephoton_WaterAir[num_WaterAir]         = {2.038*eV, 4.144*eV};
+   G4double RefractiveIndex_WaterAir[num_WaterAir] = {1.35, 1.40};
+   G4double SpecularLobe_WaterAir[num_WaterAir]    = {0.3, 0.3};
+   G4double SpecularSpike_WaterAir[num_WaterAir]   = {0.2, 0.2};
+   G4double Backscatter_WaterAir[num_WaterAir]     = {0.2, 0.2};
+   
+   G4MaterialPropertiesTable* myST11 = new G4MaterialPropertiesTable();
+   
+   myST11->AddProperty("RINDEX",                Ephoton_WaterAir, RefractiveIndex_WaterAir, num_WaterAir);
+   myST11->AddProperty("SPECULARLOBECONSTANT",  Ephoton_WaterAir, SpecularLobe_WaterAir,    num_WaterAir);
+   myST11->AddProperty("SPECULARSPIKECONSTANT", Ephoton_WaterAir, SpecularSpike_WaterAir,   num_WaterAir);
+   myST11->AddProperty("BACKSCATTERCONSTANT",   Ephoton_WaterAir, Backscatter_WaterAir,     num_WaterAir);
+   
+   OpWaterAirSurface->SetMaterialPropertiesTable(myST11);
+}//ConstructMaterials
+
+//-----------------------------------------------------------------------------------------------
+
+void ELYSE::DetectorConstruction::SetWaterDimensions(G4ThreeVector dim){
+  water_x = dim[0];
+  water_y = dim[1];
+  water_z = dim[2];
+  updated = true;
+}//SetWaterDimensions
+
+//-----------------------------------------------------------------------------------------------
+void ELYSE::DetectorConstruction::SetTyvekThickness(G4double thick) {
+  tyvek_thickness = thick;
+  updated = true;
+}//SetTyvekThickness
+//-----------------------------------------------------------------------------------------------
+
+void ELYSE::DetectorConstruction::UpdateGeometry() {
+  // clean-up previous geometry
+  G4GeometryManager::GetInstance()->OpenGeometry();
+
+  G4PhysicalVolumeStore::GetInstance()->Clean();
+  G4LogicalVolumeStore::GetInstance()->Clean();
+  G4SolidStore::GetInstance()->Clean();
+  G4LogicalSkinSurface::CleanSurfaceTable();
+  G4LogicalBorderSurface::CleanSurfaceTable();
+
+  //define new one
+  G4RunManager::GetRunManager()->DefineWorldVolume(Construct());
+  G4RunManager::GetRunManager()->GeometryHasBeenModified();
+
+  updated=false;
+}
Index: /ELYSE/HEAD/source/DetectorMessenger.cxx
===================================================================
--- /ELYSE/HEAD/source/DetectorMessenger.cxx	(revision 286)
+++ /ELYSE/HEAD/source/DetectorMessenger.cxx	(revision 286)
@@ -0,0 +1,51 @@
+#include "ELYSE/DetectorMessenger.hh"
+
+//Geant 4
+#include "G4UIdirectory.hh"
+#include "G4UIcommand.hh"
+#include "G4UIparameter.hh"
+#include "G4UIcmdWith3VectorAndUnit.hh"
+#include "G4UIcmdWithADoubleAndUnit.hh"
+
+//ELYSE
+#include "ELYSE/DetectorConstruction.hh"
+
+ELYSE::DetectorMessenger::DetectorMessenger(ELYSE::DetectorConstruction* ELYSEDet)
+: ELYSEDetector(ELYSEDet) { 
+
+  ELYSEDir = new G4UIdirectory("/ELYSE/Geometry/");
+  ELYSEDir->SetGuidance("Geometry control");
+  
+  waterDimensionsCmd = 
+    new G4UIcmdWith3VectorAndUnit("/ELYSE/Geometry/Water",this);
+  waterDimensionsCmd->SetGuidance("Set the dimensions of the Water volume.");
+  waterDimensionsCmd->SetParameterName("water_x","water_y","water_z",false);
+  waterDimensionsCmd->SetDefaultUnit("cm");
+
+  tyvekThicknessCmd =
+    new G4UIcmdWithADoubleAndUnit
+    ("/ELYSE/Geometry/TyvekThickness",this);
+  tyvekThicknessCmd->SetGuidance("Set the thickness of the tyvek.");
+  tyvekThicknessCmd->SetParameterName("tyvek_thickness",false);
+  tyvekThicknessCmd->SetDefaultUnit("cm");
+
+} //ELYSEDetectorMessenger
+
+ELYSE::DetectorMessenger::~DetectorMessenger()
+{
+  
+  delete waterDimensionsCmd;
+  delete tyvekThicknessCmd;
+
+} //ELYSEDetectorMessenger
+
+void ELYSE::DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) {    
+
+  if( command ==  waterDimensionsCmd ){ 
+    ELYSEDetector->SetWaterDimensions(waterDimensionsCmd->GetNew3VectorValue(newValue));
+  }
+  else if (command == tyvekThicknessCmd){
+    ELYSEDetector->SetTyvekThickness(tyvekThicknessCmd->GetNewDoubleValue(newValue));
+  }
+ 
+}//SetNewValue
Index: /ELYSE/HEAD/source/EventAction.cxx
===================================================================
--- /ELYSE/HEAD/source/EventAction.cxx	(revision 286)
+++ /ELYSE/HEAD/source/EventAction.cxx	(revision 286)
@@ -0,0 +1,439 @@
+#include "ELYSE/EventAction.hh"
+
+//Geant4
+#include "G4Event.hh"
+#include "G4RunManager.hh"
+#include "G4EventManager.hh"
+#include "G4UImanager.hh"
+#include "G4TrajectoryContainer.hh"
+#include "G4VVisManager.hh"
+#include "G4ios.hh"
+#include "globals.hh"
+#include "G4ThreeVector.hh"
+#include "G4TransportationManager.hh" 
+#include "G4Navigator.hh" 
+#include "G4SDManager.hh"
+#include "G4DigiManager.hh"
+#include "G4UnitsTable.hh"
+#include "G4UIcmdWith3VectorAndUnit.hh"
+
+//std
+#include <set>
+#include <iomanip>
+#include <string>
+#include <vector>
+#include <stdlib.h> //abs
+
+// AIDA :
+#include <AIDA/ITree.h>
+#include <AIDA/IManagedObject.h>
+#include <AIDA/ITuple.h>
+
+//ELYSE
+#include "ELYSE/Cast.hh"
+#include "ELYSE/Analysis.hh"
+#include "ELYSE/Trajectory.hh"
+#include "ELYSE/RunAction.hh"
+#include "ELYSE/PrimaryGeneratorAction.hh"
+#include "ELYSE/TrappVolHit.hh"
+#include "ELYSE/DetectorConstruction.hh"
+
+
+ELYSE::EventAction::EventAction(ELYSE::Analysis& aAnalysis,
+				ELYSE::RunAction* myRun, 
+				ELYSE::DetectorConstruction* myDetector, 
+				ELYSE::PrimaryGeneratorAction* myGenerator)
+:fAnalysis(aAnalysis),
+ runAction(myRun), 
+ generatorAction(myGenerator), 
+ detectorConstructor(myDetector),
+ eventTuple(0) {
+  
+  //Get User Histo pointers
+  AIDA::ITree* usrTree = aAnalysis.tree(); //get the tree
+  if (!usrTree) {
+    G4cout << "ELYSE::EventAction: cannot get Analysis Tree" << G4endl;
+    return;
+  }
+  //see AIDA::IManagedObject a comment on dynamic_cast
+  AIDA::IManagedObject* obj; //generic Object managed by a Tree
+
+  obj = usrTree->find("Event");
+  if(!obj) {
+    G4cout << "EventAction: WARNING: no tuple Event" << G4endl;
+    usrTree->ls();
+    //exit(0);
+  } else {
+    eventTuple =  CAST(obj,AIDA::ITuple);
+    if (!eventTuple) {
+      G4cout << "EventAction: FATAL: eventTuple not a Tuple" << G4endl;
+      usrTree->ls();
+      exit(0);
+    }
+  }
+
+}//Ctor
+
+//-------------------------------------------------------------------------------------------
+
+ELYSE::EventAction::~EventAction(){
+}//Dtor
+
+//-------------------------------------------------------------------------------------------
+
+void ELYSE::EventAction::BeginOfEventAction(const G4Event* evt){
+
+  G4cout << " (JEC) EventAction::Begin EventAction" << G4endl;
+  if (!evt) evt->Print();
+
+}//BeginOfEventAction
+
+//-------------------------------------------------------------------------------------------
+
+void ELYSE::EventAction::EndOfEventAction(const G4Event* evt) {
+  G4cout << " (JEC) EventAction::End EventAction" << G4endl;
+    
+  //see Analysis.cxx to get the Tuple variables
+
+  // --------------------
+  //  Get Event Information
+  // --------------------
+  //JEC FIXME: difference between event_id &  vecRecNumber
+  G4int         event_id = evt->GetEventID();                      
+
+  G4ThreeVector vtx = generatorAction->GetVtx();                   
+  G4int         vtxvol   = EventFindStartingVolume(vtx);
+
+  G4cout << ">>>>>>>>>>>>> New Event ";
+  G4cout << " evt Id " << event_id 
+	 << " start in volume " << vtxvol
+	 << G4endl;
+  G4cout << "Vertex (" 
+	 << vtx.x()/cm << " , "
+	 << vtx.y()/cm << " , "
+	 << vtx.z()/cm << " , "
+	 << ")"
+	 << G4endl;
+
+  //JEC FIXME: introduce enumeration for the column shared by Analysis/EventAction &  namespace protected
+
+  if(!eventTuple) return;
+
+  eventTuple->fill(0, event_id);                                    //eventId
+  eventTuple->fill(1, vtxvol);                                      //vtxVol
+
+  AIDA::ITuple* vtxPos = eventTuple->getTuple( 2 );
+  vtxPos->fill(0, vtx.x()/cm);                                       //vtxPos
+  vtxPos->fill(1, vtx.y()/cm);
+  vtxPos->fill(2, vtx.z()/cm);
+  vtxPos->addRow();
+  
+
+  // --------------------
+  //  Get Track Information
+  // --------------------
+
+  //variables used to fill the tuple (track part)
+  G4int pId, parent; 
+  G4float timeStart;
+  G4double dx, dy, dz;
+  G4double ETot, px, py, pz;
+  G4int startVol, stopVol;
+
+  //----------------
+  // The beam: 1 particle for the moment
+  //----------------
+  AIDA::ITuple* track = eventTuple->getTuple( 4 );
+
+  G4int  beampdg = generatorAction->GetBeamPDG();
+  pId =  beampdg;                                                  //pId
+  track->fill(0, pId);
+
+  parent = 0;                                                      //parent (none)
+  track->fill(1, parent);  
+  
+  timeStart = 0;                                                   //creation time
+  track->fill(2, timeStart);
+
+  G4ThreeVector beamdir    = generatorAction->GetBeamDir();        //direction
+  AIDA::ITuple* direction = track->getTuple( 3 );
+  dx = beamdir.x();
+  dy = beamdir.y();
+  dz = beamdir.z();
+
+  direction->fill(0, dx);
+  direction->fill(1, dy);
+  direction->fill(2, dz);
+  direction->addRow();
+
+  
+  G4double beamenergy = generatorAction->GetBeamEnergy();
+  G4double mass =    G4ParticleTable::GetParticleTable()->FindParticle(beampdg)->GetPDGMass();
+  
+  track->fill(4, mass);
+
+  ETot = beamenergy;                         
+  G4double pTot = ETot;
+  if ( (beampdg != 22)       && //gamma & Optical Photon (To be verified)
+       (std::abs(beampdg) != 12) && //(anti)nu-e
+       (std::abs(beampdg) != 14) && //(anti)nu-mu
+       (std::abs(beampdg) != 16) ) { //(anti)nu-tau  
+    pTot = ETot*ETot - mass*mass;
+    if (pTot < 1e-6){ 
+      pTot  = 0.;
+    } else {
+      pTot = std::sqrt(pTot);
+    }
+  }
+
+  track->fill(5, pTot);  
+  track->fill(6, ETot);
+  
+
+  AIDA::ITuple* momentum = track->getTuple( 7 );                           //momentum
+  px = pTot * dx;
+  py = pTot * dy;
+  pz = pTot * dz;
+  momentum->fill(0, px);
+  momentum->fill(1, py);
+  momentum->fill(2, pz);
+  momentum->addRow();
+
+  AIDA::ITuple* startPos = track->getTuple( 8 );                          //start position
+  startPos->fill(0, vtx.x()/cm);
+  startPos->fill(1, vtx.y()/cm);
+  startPos->fill(2, vtx.z()/cm);
+  startPos->addRow(); 
+
+  AIDA::ITuple* stopPos = track->getTuple( 9 );                          //stop position
+  stopPos->fill(0, vtx.x()/cm);
+  stopPos->fill(1, vtx.y()/cm);
+  stopPos->fill(2, vtx.z()/cm);
+  stopPos->addRow(); 
+
+  startVol = stopVol = -1;
+  track->fill(10, startVol);                                   //Starting Volume
+  track->fill(11, stopVol);                                   //Stopping Volume
+
+  //add the Beam track to tuple
+  track->addRow();
+
+  G4cout << "----> Tk{Beam}: " 
+	 << " pId " << pId
+	 << " parent " << parent
+	 << " creation time " << timeStart 
+	 << " Volumes " << startVol << " " << stopVol << "\n"
+	 << " dx,dy,dz " << dx << " " << dy << " " << dz << "\n"
+	 << " ETot " << ETot
+	 << " Mass " << mass
+	 << " pTot " << pTot
+	 << " px,py,pz " << px << " " << py << " " << pz << "\n"
+	 << G4endl;
+  
+  // --------------------------
+  //  Loop over Trajectories
+  // --------------------------
+
+  G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer();
+
+  G4int n_trajectories = 0;
+  if (trajectoryContainer) n_trajectories = trajectoryContainer->entries();
+
+  G4int trjIndex;    //this is the trajectory Index
+  G4int parentIndex; //this the parent trajectory index
+
+  G4ThreeVector mom;        //px,py,pz
+  G4double      mommag;     //p = sqrt(px*px + ...)
+  G4ThreeVector stop;       //stopping point
+  G4ThreeVector start;      //starting point
+  G4String stopVolumeName;  //Volume name of the stopping point for retreive
+
+  eventTuple->fill(5, n_trajectories);                                           //nPart
+  G4cout << "Final # of tracks : " <<  n_trajectories << G4endl;
+
+
+  for (G4int i=0; i < n_trajectories; i++) {
+    Trajectory* trj = (Trajectory*)((*(evt->GetTrajectoryContainer()))[i]);
+        
+    pId      =  trj->GetPDGEncoding();                                   //pId
+    trjIndex =  trj->GetTrackID();
+      
+    if ( ! trj->GetSaveFlag() ) continue;  //only consider trajectories which are flaged (see TrackingAction, SteppingAction)
+
+    // initial point of the trajectory
+    G4TrajectoryPoint* aa =   (G4TrajectoryPoint*)trj->GetPoint(0) ;   
+    
+    track->fill(0, pId);                                         //pId
+    
+    parentIndex = trj->GetParentID();
+    track->fill(1,parentIndex);                                  //parent
+    
+    timeStart =  trj->GetGlobalTime()/ns;
+    track->fill(2, timeStart);                                   //creation time
+    
+    mom    = trj->GetInitialMomentum();
+    mommag = mom.mag();
+    direction = track->getTuple( 3 );                            //direction
+    dx = mom.x()/mommag;
+    dy = mom.y()/mommag;
+    dz = mom.z()/mommag;
+    direction->fill(0, dx);
+    direction->fill(1, dy);
+    direction->fill(2, dz);
+    direction->addRow();
+    
+    mass   = trj->GetParticleDefinition()->GetPDGMass();
+    track->fill(4, mass);                                        //mass
+    
+    pTot = mommag;
+    track->fill(5, pTot);                                        //p Total
+    
+    ETot = sqrt(mom.mag2() + mass*mass);
+    track->fill(6, ETot);                                        //Total energy
+    
+    momentum = track->getTuple( 7 );                             //3-momentum
+    px = mom.x();
+    py = mom.y();
+    pz = mom.z();
+    momentum->fill(0, px);
+    momentum->fill(1, py);
+    momentum->fill(2, pz);
+    momentum->addRow();
+    
+    start  = aa->GetPosition();
+    startPos = track->getTuple( 8 );                             //start position
+    startPos->fill(0, start.x()/cm);
+    startPos->fill(1, start.y()/cm);
+    startPos->fill(2, start.z()/cm);
+    startPos->addRow(); 
+    
+    stop   = trj->GetStoppingPoint();
+    stopPos = track->getTuple( 9 );                              //stop position
+    stopPos->fill(0, stop.x()/cm);
+    stopPos->fill(1, stop.y()/cm);
+    stopPos->fill(2, stop.z()/cm);
+    stopPos->addRow(); 
+    
+    startVol = EventFindStartingVolume(start);
+    track->fill(10, startVol);                                   //Starting Volume
+    
+    
+    stopVolumeName = trj->GetStoppingVolume()->GetName();
+    stopVol  = EventFindStoppingVolume(stopVolumeName);
+    track->fill(11, stopVol);                                    //Stopping Volume
+    
+    //add the new track to tuple
+    track->addRow(); 
+
+    G4cout << "----> Tk{"<<i<<"}: " 
+	   << " pId " << pId
+	   << " parent " << parent
+	   << " creation time " << timeStart 
+	   << " Volumes " << startVol << " " << stopVol << "\n"
+	   << " Start Pos (" << start.x()/cm << "," << start.y() << "," << start.z() << ")\n"
+	   << " Stop Pos (" << stop.x()/cm << "," << stop.y() << "," << stop.z() << ")\n"
+	   << " dx,dy,dz " << dx << " " << dy << " " << dz << "\n"
+	   << " m " << mass
+	   << " ETot " << ETot
+	   << " pTot " << pTot
+	   << " px,py,pz " << px << " " << py << " " << pz << "\n"
+	   << G4endl;
+       
+  }//end of loop on trajectories
+  
+
+  
+  // --------------------
+  //  Get Hit Collection
+  // --------------------
+    
+  G4SDManager* SDman = G4SDManager::GetSDMpointer(); //JEC FIXME: use data member
+    
+  // Get Hit collection of this event
+  G4HCofThisEvent* HCE         = evt->GetHCofThisEvent();
+  TrappVolHitsCollection* TrappVolHC = 0;
+
+  AIDA::ITuple* hit = eventTuple->getTuple(6);                         //hit
+  G4int nHits=0;
+
+  if (HCE) { 
+    G4String name = "TrappingVolume"; //see TrappingVolume.cxx Ctor
+    G4int collectionID = SDman->GetCollectionID(name);
+    TrappVolHC = (TrappVolHitsCollection*)HCE->GetHC(collectionID);
+  }
+  
+  if (TrappVolHC) {
+
+    nHits = TrappVolHC->entries();
+    eventTuple->fill(5, nHits);                                          //nHits
+    
+    TrappVolHit* aHit;
+
+    for (G4int i=0; i<nHits  ;i++) {
+      aHit = (*TrappVolHC)[i];
+
+      //dump
+      aHit->Print();
+
+      hit->fill(0,aHit->GetTime());                  //time of hit creation
+      hit->fill(1,aHit->GetEtot());                  //Total energy of the particle creating the hit 
+      hit->fill(2,aHit->GetCoordinates().x());       //position of the hit
+      hit->fill(3,aHit->GetCoordinates().y());
+      hit->fill(4,aHit->GetCoordinates().z());
+      hit->fill(5,aHit->GetTrkId());                 //Id of the particle
+      hit->fill(6,aHit->GetParentId());              //Id of the parent of the particle
+      hit->fill(7,aHit->GetPDGEncoding());           //PDG code of the particle
+      hit->fill(8,aHit->GetEdep());                  //Energy deposit
+
+      hit->addRow();
+    }//loop on hits
+  }//Hit container
+
+  //Save the Event
+  eventTuple->addRow();
+
+}//EndOfEventAction
+
+//--------------------------------------------------------------------------------------------------
+
+G4int ELYSE::EventAction::EventFindStartingVolume(G4ThreeVector vtx) {
+  // Get volume of starting point (see GEANT4 FAQ)
+
+  G4Navigator* tmpNavigator = 
+    G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking();
+
+  G4VPhysicalVolume* tmpVolume = tmpNavigator->LocateGlobalPointAndSetup(vtx);
+  G4String       vtxVolumeName = tmpVolume->GetName(); 
+   
+  return FindVolume(vtxVolumeName);
+
+}//EventFindStartingVolume
+
+//--------------------------------------------------------------------------------------------------
+
+G4int ELYSE::EventAction::EventFindStoppingVolume(G4String stopVolumeName) {
+  return FindVolume(stopVolumeName);
+}//EventFindStoppingVolume
+
+
+//--------------------------------------------------------------------------------------------------
+G4int ELYSE::EventAction::FindVolume(G4String volumeName) {
+  G4int volumeCode = -1;
+
+  G4cout << "(FindVolume): VolumeName: <"
+	 << volumeName
+	 << ">" 
+	 << G4endl;
+
+  if ( volumeName == "expHall" ) {
+    volumeCode = 0;
+  } else if ( volumeName == "SensiVol" ) {
+    volumeCode = 1;
+  } else if (volumeName == "TyvekSheet") {
+    volumeCode = 2;
+  } else if (volumeName == "waterTank") {
+    volumeCode = 3;
+  }
+
+  return volumeCode;
+}//FindVolume
Index: /ELYSE/HEAD/source/PhysListEmLivermore.cxx
===================================================================
--- /ELYSE/HEAD/source/PhysListEmLivermore.cxx	(revision 286)
+++ /ELYSE/HEAD/source/PhysListEmLivermore.cxx	(revision 286)
@@ -0,0 +1,89 @@
+//this
+#include "ELYSE/PhysListEmLivermore.hh"
+
+//Geant 4
+#include "G4ParticleDefinition.hh"
+#include "G4ProcessManager.hh"
+
+#include "G4LowEnergyCompton.hh"
+#include "G4LowEnergyGammaConversion.hh"
+#include "G4LowEnergyPhotoElectric.hh"
+#include "G4LowEnergyRayleigh.hh"
+
+#include "G4MultipleScattering.hh"
+
+#include "G4LowEnergyIonisation.hh"
+#include "G4LowEnergyBremsstrahlung.hh"
+#include "G4eIonisation.hh"
+#include "G4eBremsstrahlung.hh"
+#include "G4eplusAnnihilation.hh"
+
+#include "G4MuIonisation.hh"
+#include "G4MuBremsstrahlung.hh"
+#include "G4MuPairProduction.hh"
+
+#include "G4hLowEnergyIonisation.hh"
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysListEmLivermore::PhysListEmLivermore(const G4String& name)
+  :  G4VPhysicsConstructor(name)
+{ }
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysListEmLivermore::~PhysListEmLivermore()
+{ }
+
+//----------------------------------------------------------------------
+
+void ELYSE::PhysListEmLivermore::ConstructProcess()
+{
+  // Add LowEn or standard EM Processes
+
+  theParticleIterator->reset();
+  while( (*theParticleIterator)() ){
+    G4ParticleDefinition* particle = theParticleIterator->value();
+    G4ProcessManager* pmanager = particle->GetProcessManager();
+    G4String particleName = particle->GetParticleName();
+     
+    if (particleName == "gamma") {
+      // gamma         
+      pmanager->AddDiscreteProcess(new G4LowEnergyPhotoElectric);
+      pmanager->AddDiscreteProcess(new G4LowEnergyCompton);
+      pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion);
+      pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh);
+      
+    } else if (particleName == "e-") {
+      //electron
+      pmanager->AddProcess(new G4MultipleScattering,      -1, 1, 1);
+      pmanager->AddProcess(new G4LowEnergyIonisation,     -1, 2, 2);
+      pmanager->AddProcess(new G4LowEnergyBremsstrahlung, -1,-1, 3);
+	    
+    } else if (particleName == "e+") {
+      //positron
+      pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1);
+      pmanager->AddProcess(new G4eIonisation,        -1, 2, 2);
+      pmanager->AddProcess(new G4eBremsstrahlung,    -1, 3, 3);
+      pmanager->AddProcess(new G4eplusAnnihilation,   0,-1, 4);
+      
+    } else if( particleName == "mu+" || 
+               particleName == "mu-"    ) {
+      //muon  
+      pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1);
+      pmanager->AddProcess(new G4MuIonisation,       -1, 2, 2);
+      pmanager->AddProcess(new G4MuBremsstrahlung,   -1, 3, 3);
+      pmanager->AddProcess(new G4MuPairProduction,   -1, 4, 4);       
+     
+    } else if ((!particle->IsShortLived()) &&
+	       (particle->GetPDGCharge() != 0.0) && 
+	       (particle->GetParticleName() != "chargedgeantino")) {
+      //all others charged particles except geantino
+      pmanager->AddProcess(new G4MultipleScattering,   -1, 1, 1);
+      pmanager->AddProcess(new G4hLowEnergyIonisation, -1, 2, 2);
+    }
+  }
+}
+
+//----------------------------------------------------------------------
+
Index: /ELYSE/HEAD/source/PhysListEmPenelope.cxx
===================================================================
--- /ELYSE/HEAD/source/PhysListEmPenelope.cxx	(revision 286)
+++ /ELYSE/HEAD/source/PhysListEmPenelope.cxx	(revision 286)
@@ -0,0 +1,92 @@
+//this
+#include "ELYSE/PhysListEmPenelope.hh"
+
+//Geant 4
+#include "G4ParticleDefinition.hh"
+#include "G4ProcessManager.hh"
+
+#include "G4PenelopeCompton.hh"
+#include "G4PenelopeGammaConversion.hh"
+#include "G4PenelopePhotoElectric.hh"
+#include "G4PenelopeRayleigh.hh"
+
+#include "G4MultipleScattering.hh"
+
+#include "G4PenelopeIonisation.hh"
+#include "G4PenelopeBremsstrahlung.hh"
+#include "G4PenelopeAnnihilation.hh"
+
+#include "G4MuIonisation.hh"
+#include "G4MuBremsstrahlung.hh"
+#include "G4MuPairProduction.hh"
+
+#include "G4hIonisation.hh"
+#include "G4ionIonisation.hh"
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysListEmPenelope::PhysListEmPenelope(const G4String& name)
+  :  G4VPhysicsConstructor(name)
+{ }
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysListEmPenelope::~PhysListEmPenelope()
+{ }
+
+//----------------------------------------------------------------------
+
+void ELYSE::PhysListEmPenelope::ConstructProcess()
+{
+  // Add Penelope or standard EM Processes
+
+  theParticleIterator->reset();
+  while( (*theParticleIterator)() ){
+    G4ParticleDefinition* particle = theParticleIterator->value();
+    G4ProcessManager* pmanager = particle->GetProcessManager();
+    G4String particleName = particle->GetParticleName();
+     
+    if (particleName == "gamma") {
+      // gamma         
+      pmanager->AddDiscreteProcess(new G4PenelopePhotoElectric);
+      pmanager->AddDiscreteProcess(new G4PenelopeCompton);
+      pmanager->AddDiscreteProcess(new G4PenelopeGammaConversion);
+      pmanager->AddDiscreteProcess(new G4PenelopeRayleigh);
+      
+    } else if (particleName == "e-") {
+      //electron
+      pmanager->AddProcess(new G4MultipleScattering,     -1, 1, 1);
+      pmanager->AddProcess(new G4PenelopeIonisation,     -1, 2, 2);
+      pmanager->AddProcess(new G4PenelopeBremsstrahlung, -1,-1, 3);
+	    
+    } else if (particleName == "e+") {
+      //positron
+      pmanager->AddProcess(new G4MultipleScattering,     -1, 1, 1);
+      pmanager->AddProcess(new G4PenelopeIonisation,     -1, 2, 2);
+      pmanager->AddProcess(new G4PenelopeBremsstrahlung, -1,-1, 3);      
+      pmanager->AddProcess(new G4PenelopeAnnihilation,    0,-1, 4);
+      
+    } else if( particleName == "mu+" || 
+               particleName == "mu-"    ) {
+      //muon  
+      pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1);
+      pmanager->AddProcess(new G4MuIonisation,       -1, 2, 2);
+      pmanager->AddProcess(new G4MuBremsstrahlung,   -1, 3, 3);
+      pmanager->AddProcess(new G4MuPairProduction,   -1, 4, 4);       
+     
+    } else if( particleName == "alpha" || particleName == "GenericIon" ) { 
+      pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
+      pmanager->AddProcess(new G4ionIonisation,      -1, 2,2);
+     
+    } else if ((!particle->IsShortLived()) &&
+	       (particle->GetPDGCharge() != 0.0) && 
+	       (particle->GetParticleName() != "chargedgeantino")) {
+      //all others charged particles except geantino
+      pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1);
+      pmanager->AddProcess(new G4hIonisation,        -1, 2, 2);
+    }
+  }
+}
+
+//----------------------------------------------------------------------
+
Index: /ELYSE/HEAD/source/PhysListEmStandard.cxx
===================================================================
--- /ELYSE/HEAD/source/PhysListEmStandard.cxx	(revision 286)
+++ /ELYSE/HEAD/source/PhysListEmStandard.cxx	(revision 286)
@@ -0,0 +1,92 @@
+//this
+#include "ELYSE/PhysListEmStandard.hh"
+
+//Geant 4
+#include "G4ParticleDefinition.hh"
+#include "G4ProcessManager.hh"
+
+#include "G4ComptonScattering.hh"
+#include "G4GammaConversion.hh"
+#include "G4PhotoElectricEffect.hh"
+
+#include "G4MultipleScattering.hh"
+
+#include "G4eIonisation.hh"
+#include "G4eBremsstrahlung.hh"
+#include "G4eplusAnnihilation.hh"
+
+#include "G4MuIonisation.hh"
+#include "G4MuBremsstrahlung.hh"
+#include "G4MuPairProduction.hh"
+
+#include "G4hIonisation.hh"
+#include "G4ionIonisation.hh"
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysListEmStandard::PhysListEmStandard(const G4String& name)
+   :  G4VPhysicsConstructor(name)
+{}
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysListEmStandard::~PhysListEmStandard()
+{}
+
+//----------------------------------------------------------------------
+
+void ELYSE::PhysListEmStandard::ConstructProcess()
+{
+  // Add standard EM Processes
+
+  theParticleIterator->reset();
+  while( (*theParticleIterator)() ){
+    G4ParticleDefinition* particle = theParticleIterator->value();
+    G4ProcessManager* pmanager = particle->GetProcessManager();
+    G4String particleName = particle->GetParticleName();
+     
+    if (particleName == "gamma") {
+      // gamma         
+      pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
+      pmanager->AddDiscreteProcess(new G4ComptonScattering);
+      pmanager->AddDiscreteProcess(new G4GammaConversion);
+      
+    } else if (particleName == "e-") {
+      //electron
+      pmanager->AddProcess(new G4MultipleScattering,   -1, 1, 1);
+      pmanager->AddProcess(new G4eIonisation,          -1, 2, 2);
+      pmanager->AddProcess(new G4eBremsstrahlung(),    -1, 3, 3);
+      
+    } else if (particleName == "e+") {
+      //positron
+      pmanager->AddProcess(new G4MultipleScattering,   -1, 1, 1);
+      pmanager->AddProcess(new G4eIonisation,          -1, 2, 2);
+      pmanager->AddProcess(new G4eBremsstrahlung(),    -1, 3, 3);
+      pmanager->AddProcess(new G4eplusAnnihilation,     0,-1, 4);
+      
+    } else if( particleName == "mu+" || 
+               particleName == "mu-"    ) {
+      //muon  
+      pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
+      pmanager->AddProcess(new G4MuIonisation,       -1, 2,2);
+      pmanager->AddProcess(new G4MuBremsstrahlung,   -1, 3,3);
+      pmanager->AddProcess(new G4MuPairProduction,   -1, 4,4);       
+     
+    } else if( particleName == "alpha" || 
+	       particleName == "He3" || 
+	       particleName == "GenericIon" ) { 
+      pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
+      pmanager->AddProcess(new G4ionIonisation,      -1, 2,2);
+
+    } else if ((!particle->IsShortLived()) &&
+	       (particle->GetPDGCharge() != 0.0) && 
+	       (particle->GetParticleName() != "chargedgeantino")) {
+      //all others charged particles except geantino
+      pmanager->AddProcess(new G4MultipleScattering, -1,1,1);
+      pmanager->AddProcess(new G4hIonisation,        -1,2,2);
+    }
+  }
+}
+
+//----------------------------------------------------------------------
+
Index: /ELYSE/HEAD/source/PhysicsList.cxx
===================================================================
--- /ELYSE/HEAD/source/PhysicsList.cxx	(revision 286)
+++ /ELYSE/HEAD/source/PhysicsList.cxx	(revision 286)
@@ -0,0 +1,683 @@
+//this
+#include "ELYSE/PhysicsList.hh"
+
+//Geant 4
+#include "G4EmStandardPhysics.hh"
+#include "G4EmStandardPhysics71.hh"
+#include "G4LossTableManager.hh"
+#include "G4UnitsTable.hh"
+
+#include "G4Cerenkov.hh"
+#include "G4Scintillation.hh"
+#include "G4OpAbsorption.hh"
+#include "G4OpRayleigh.hh"
+#include "G4OpBoundaryProcess.hh"
+
+
+// Bosons
+#include "G4ChargedGeantino.hh"
+#include "G4Geantino.hh"
+#include "G4Gamma.hh"
+#include "G4OpticalPhoton.hh"
+
+// leptons
+#include "G4MuonPlus.hh"
+#include "G4MuonMinus.hh"
+#include "G4NeutrinoMu.hh"
+#include "G4AntiNeutrinoMu.hh"
+
+#include "G4Electron.hh"
+#include "G4Positron.hh"
+#include "G4NeutrinoE.hh"
+#include "G4AntiNeutrinoE.hh"
+
+// Mesons
+#include "G4PionPlus.hh"
+#include "G4PionMinus.hh"
+#include "G4PionZero.hh"
+#include "G4Eta.hh"
+#include "G4EtaPrime.hh"
+
+#include "G4KaonPlus.hh"
+#include "G4KaonMinus.hh"
+#include "G4KaonZero.hh"
+#include "G4AntiKaonZero.hh"
+#include "G4KaonZeroLong.hh"
+#include "G4KaonZeroShort.hh"
+
+// Baryons
+#include "G4Proton.hh"
+#include "G4AntiProton.hh"
+#include "G4Neutron.hh"
+#include "G4AntiNeutron.hh"
+
+// Nuclei
+#include "G4Deuteron.hh"
+#include "G4Triton.hh"
+#include "G4Alpha.hh"
+#include "G4GenericIon.hh"
+
+#include "G4Gamma.hh"
+#include "G4Electron.hh"
+#include "G4Positron.hh"
+
+
+//ELYSE
+#include "ELYSE/PhysicsListMessenger.hh"
+#include "ELYSE/PhysListEmStandard.hh"
+#include "ELYSE/PhysListEmLivermore.hh"
+#include "ELYSE/PhysListEmPenelope.hh"
+
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysicsList::PhysicsList() : G4VModularPhysicsList(),
+  theCerenkovProcess(0),
+  theScintillationProcess(0),
+  theAbsorptionProcess(0),
+  theRayleighScatteringProcess(0),
+  theBoundaryProcess(0)
+ {
+  G4LossTableManager::Instance();
+  currentDefaultCut   = 1.0*mm;
+  cutForGamma         = currentDefaultCut;
+  cutForElectron      = currentDefaultCut;
+  cutForPositron      = currentDefaultCut;
+
+  pMessenger = new PhysicsListMessenger(this);
+
+  SetVerboseLevel(1);
+
+  // EM physics
+  emName = G4String("standard");
+  emPhysicsList = new PhysListEmStandard(emName);
+
+}
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysicsList::~PhysicsList() {
+  delete pMessenger;
+}
+
+//----------------------------------------------------------------------
+
+
+void ELYSE::PhysicsList::ConstructParticle() {
+// pseudo-particles
+  G4Geantino::GeantinoDefinition();
+  G4ChargedGeantino::ChargedGeantinoDefinition();
+  
+// gamma
+  G4Gamma::GammaDefinition();
+  
+// optical photon
+  G4OpticalPhoton::OpticalPhotonDefinition();
+
+// leptons
+  G4Electron::ElectronDefinition();
+  G4Positron::PositronDefinition();
+  G4MuonPlus::MuonPlusDefinition();
+  G4MuonMinus::MuonMinusDefinition();
+
+  G4NeutrinoE::NeutrinoEDefinition();
+  G4AntiNeutrinoE::AntiNeutrinoEDefinition();
+  G4NeutrinoMu::NeutrinoMuDefinition();
+  G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();  
+
+// mesons
+  G4PionPlus::PionPlusDefinition();
+  G4PionMinus::PionMinusDefinition();
+  G4PionZero::PionZeroDefinition();
+  G4Eta::EtaDefinition();
+  G4EtaPrime::EtaPrimeDefinition();
+  G4KaonPlus::KaonPlusDefinition();
+  G4KaonMinus::KaonMinusDefinition();
+  G4KaonZero::KaonZeroDefinition();
+  G4AntiKaonZero::AntiKaonZeroDefinition();
+  G4KaonZeroLong::KaonZeroLongDefinition();
+  G4KaonZeroShort::KaonZeroShortDefinition();
+
+// barions
+  G4Proton::ProtonDefinition();
+  G4AntiProton::AntiProtonDefinition();
+  G4Neutron::NeutronDefinition();
+  G4AntiNeutron::AntiNeutronDefinition();
+
+// ions
+  G4Deuteron::DeuteronDefinition();
+  G4Triton::TritonDefinition();
+  G4Alpha::AlphaDefinition();
+  G4GenericIon::GenericIonDefinition();
+}
+
+//----------------------------------------------------------------------
+
+#include "G4ProcessManager.hh"
+#include "G4Decay.hh"
+
+void ELYSE::PhysicsList::ConstructProcess() {
+  AddTransportation();
+
+  // electromagnetic Physics List
+  //
+  emPhysicsList->ConstructProcess();
+
+  //Decay
+  ConstructGeneral();
+
+  //Optical Photons
+  ConstructOp();
+  //JEC 20/2/07 not useful? ConstructHad();
+  SetVerbose(0);
+    
+}//ConstructProcess
+
+//--------------------------------------------------------------------------------------------------
+
+void ELYSE::PhysicsList::ConstructGeneral() {
+  // Add Decay Process
+  G4Decay* theDecayProcess = new G4Decay();
+  theParticleIterator->reset();
+  while( (*theParticleIterator)() ){
+    G4ParticleDefinition* particle = theParticleIterator->value();
+    G4ProcessManager* pmanager = particle->GetProcessManager();
+    if (theDecayProcess->IsApplicable(*particle)) { 
+      pmanager ->AddProcess(theDecayProcess);
+      // set ordering for PostStepDoIt and AtRestDoIt
+      pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
+      pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
+    }
+  }
+}//ConstructGeneral
+
+//-----------------------------------------------------------------------------------------------
+void ELYSE::PhysicsList::ConstructOp(){
+
+  theCerenkovProcess           = new G4Cerenkov("Cerenkov");
+  theScintillationProcess      = new G4Scintillation("Scintillation");
+  theAbsorptionProcess         = new G4OpAbsorption();
+  theRayleighScatteringProcess = new G4OpRayleigh();
+  theBoundaryProcess           = new G4OpBoundaryProcess();
+
+  /*
+    theCerenkovProcess->DumpPhysicsTable();
+    theScintillationProcess->DumpPhysicsTable();
+    theAbsorptionProcess->DumpPhysicsTable();
+    theRayleighScatteringProcess->DumpPhysicsTable();
+  */
+
+
+  theCerenkovProcess->SetTrackSecondariesFirst(false); //NV: if "true" generates as many trajectory objs of  
+  theCerenkovProcess->SetMaxNumPhotonsPerStep(300);    //op parents as the # of parents' steps. 
+                                                       //The number of photons may be tuned by the messenger
+
+  //JEC 19/2/07  theScintillationProcess->SetScintillationYieldFactor(1.);
+  theScintillationProcess->SetScintillationYieldFactor(0.);
+  theScintillationProcess->SetTrackSecondariesFirst(false);
+
+  G4OpticalSurfaceModel themodel = unified; //JEC where does it come from?
+  theBoundaryProcess->SetModel(themodel);
+
+  theParticleIterator->reset();
+  while( (*theParticleIterator)() )
+  {
+    G4ParticleDefinition* particle     = theParticleIterator->value();
+    G4ProcessManager*     pmanager     = particle->GetProcessManager();
+    G4String              particleName = particle->GetParticleName();
+
+    if (theCerenkovProcess->IsApplicable(*particle)) {
+      pmanager->AddContinuousProcess(theCerenkovProcess);
+    }
+    
+    if (theScintillationProcess->IsApplicable(*particle)) {
+      pmanager->AddProcess(theScintillationProcess);
+      pmanager->SetProcessOrderingToLast(theScintillationProcess, idxAtRest);
+      pmanager->SetProcessOrderingToLast(theScintillationProcess, idxPostStep);
+    }
+
+    if (particleName == "opticalphoton") {
+      pmanager->AddDiscreteProcess(theAbsorptionProcess);
+      pmanager->AddDiscreteProcess(theRayleighScatteringProcess);
+      pmanager->AddDiscreteProcess(theBoundaryProcess);
+    }
+  }
+}//ConstructOp
+
+//----------------------------------------------------------------------
+
+void ELYSE::PhysicsList::AddPhysicsList(const G4String& name) {
+  if (verboseLevel>1) {
+    G4cout << "ELYSE::PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
+  }
+
+  if (name == emName) return;
+
+  if (name == "standard") {
+
+    emName = name;
+    delete emPhysicsList;
+    emPhysicsList = new PhysListEmStandard(name);
+
+  } else if (name == "G4standard") {
+
+    emName = name;
+    delete emPhysicsList;
+    emPhysicsList = new G4EmStandardPhysics(name);
+
+  } else if (name == "G4standard_fast") {
+ 
+    emName = name;
+    delete emPhysicsList;
+    emPhysicsList = new G4EmStandardPhysics71(name);
+
+  } else if (name == "Livermore") {
+
+    emName = name;
+    delete emPhysicsList;
+    emPhysicsList = new PhysListEmLivermore(name);
+
+  } else if (name == "Penelope") {
+
+    emName = name;
+    delete emPhysicsList;
+    emPhysicsList = new PhysListEmPenelope(name);
+
+  } else {
+
+    G4cout << "ELYSE::PhysicsList::AddPhysicsList: <" << name << ">"
+           << " is not defined"
+           << G4endl;
+  }
+}
+
+//----------------------------------------------------------------------
+void ELYSE::PhysicsList::SetCuts()
+{
+     
+  if (verboseLevel >0){
+    G4cout << "PhysicsList::SetCuts:";
+    G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
+  }  
+
+  // set cut values for gamma at first and for e- second and next for e+,
+  // because some processes for e+/e- need cut values for gamma
+  SetCutValue(cutForGamma, "gamma");
+  SetCutValue(cutForElectron, "e-");
+  SetCutValue(cutForPositron, "e+");   
+    
+  if (verboseLevel>0) DumpCutValuesTable();
+}
+
+//----------------------------------------------------------------------
+
+void ELYSE::PhysicsList::SetCutForGamma(G4double cut) {
+  cutForGamma = cut;
+  SetParticleCuts(cutForGamma, G4Gamma::Gamma());
+}
+
+//----------------------------------------------------------------------
+
+void ELYSE::PhysicsList::SetCutForElectron(G4double cut) {
+  cutForElectron = cut;
+  SetParticleCuts(cutForElectron, G4Electron::Electron());
+}
+
+//----------------------------------------------------------------------
+
+void ELYSE::PhysicsList::SetCutForPositron(G4double cut) {
+  cutForPositron = cut;
+  SetParticleCuts(cutForPositron, G4Positron::Positron());
+}
+
+//-------------------------------------------------------------------
+void ELYSE::PhysicsList::SetVerbose(G4int verbose) {
+
+  theCerenkovProcess->SetVerboseLevel(verbose);
+  theScintillationProcess->SetVerboseLevel(verbose);
+  theAbsorptionProcess->SetVerboseLevel(verbose);
+  theRayleighScatteringProcess->SetVerboseLevel(verbose);
+  theBoundaryProcess->SetVerboseLevel(verbose);  
+
+}//SetVerbose
+//-------------------------------------------------------------------
+
+void ELYSE::PhysicsList::SetNbOfPhotonsCerenkov(G4int MaxNumber) {  
+  theCerenkovProcess->SetMaxNumPhotonsPerStep(MaxNumber);
+}//SetNbOfPhotonsCerenkov
+
+
+//-----------------------------------------------------------------------------------------------
+
+// // Elastic processes:
+// #include "G4HadronElasticProcess.hh"
+
+// // Inelastic processes:
+// #include "G4PionPlusInelasticProcess.hh"
+// #include "G4PionMinusInelasticProcess.hh"
+// #include "G4KaonPlusInelasticProcess.hh"
+// #include "G4KaonZeroSInelasticProcess.hh"
+// #include "G4KaonZeroLInelasticProcess.hh"
+// #include "G4KaonMinusInelasticProcess.hh"
+// #include "G4ProtonInelasticProcess.hh"
+// #include "G4AntiProtonInelasticProcess.hh"
+// #include "G4NeutronInelasticProcess.hh"
+// #include "G4AntiNeutronInelasticProcess.hh"
+// #include "G4DeuteronInelasticProcess.hh"
+// #include "G4TritonInelasticProcess.hh"
+// #include "G4AlphaInelasticProcess.hh"
+
+// // Low-energy Models: < 20GeV
+// #include "G4LElastic.hh"
+// #include "G4LEPionPlusInelastic.hh"
+// #include "G4LEPionMinusInelastic.hh"
+// #include "G4LEKaonPlusInelastic.hh"
+// #include "G4LEKaonZeroSInelastic.hh"
+// #include "G4LEKaonZeroLInelastic.hh"
+// #include "G4LEKaonMinusInelastic.hh"
+// #include "G4LEProtonInelastic.hh"
+// #include "G4LEAntiProtonInelastic.hh"
+// #include "G4LENeutronInelastic.hh"
+// #include "G4LEAntiNeutronInelastic.hh"
+// #include "G4LEDeuteronInelastic.hh"
+// #include "G4LETritonInelastic.hh"
+// #include "G4LEAlphaInelastic.hh"
+
+// // High-energy Models: >20 GeV
+// #include "G4HEPionPlusInelastic.hh"
+// #include "G4HEPionMinusInelastic.hh"
+// #include "G4HEKaonPlusInelastic.hh"
+// #include "G4HEKaonZeroInelastic.hh"
+// #include "G4HEKaonZeroInelastic.hh"
+// #include "G4HEKaonMinusInelastic.hh"
+// #include "G4HEProtonInelastic.hh"
+// #include "G4HEAntiProtonInelastic.hh"
+// #include "G4HENeutronInelastic.hh"
+// #include "G4HEAntiNeutronInelastic.hh"
+
+// // Neutron high-precision models: <20 MeV
+// #include "G4NeutronHPElastic.hh"
+// #include "G4NeutronHPElasticData.hh"
+// #include "G4NeutronHPCapture.hh"
+// #include "G4NeutronHPCaptureData.hh"
+// #include "G4NeutronHPInelastic.hh"
+// #include "G4NeutronHPInelasticData.hh"
+// #include "G4LCapture.hh"
+
+// // Secondary hadronic interaction models
+// #include "G4CascadeInterface.hh"
+// #include "G4BinaryCascade.hh"
+
+// // Stopping processes
+// #include "G4PiMinusAbsorptionAtRest.hh"
+// #include "G4KaonMinusAbsorptionAtRest.hh"
+// #include "G4AntiProtonAnnihilationAtRest.hh"
+// #include "G4AntiNeutronAnnihilationAtRest.hh"
+
+// void ELYSE::PhysicsList::ConstructHad() {
+
+// // This code stolen from:
+// // examples/advanced/underground_physics/src/DMXPhysicsList.cc
+// // CWW 2/23/05
+// //
+  
+//   G4HadronElasticProcess* theElasticProcess = new G4HadronElasticProcess;
+//   G4LElastic* theElasticModel = new G4LElastic;
+//   theElasticProcess->RegisterMe(theElasticModel);
+  
+//   theParticleIterator->reset();
+//   while ((*theParticleIterator)()) 
+//     {
+//       G4ParticleDefinition* particle = theParticleIterator->value();
+//       G4ProcessManager* pmanager = particle->GetProcessManager();
+//       G4String particleName = particle->GetParticleName();
+
+//       if (particleName == "pi+") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4PionPlusInelasticProcess* theInelasticProcess = 
+// 	    new G4PionPlusInelasticProcess();
+// 	  G4LEPionPlusInelastic* theLEInelasticModel = 
+// 	    new G4LEPionPlusInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  G4HEPionPlusInelastic* theHEInelasticModel = 
+// 	    new G4HEPionPlusInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	} 
+
+//       else if (particleName == "pi-") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4PionMinusInelasticProcess* theInelasticProcess = 
+// 	    new G4PionMinusInelasticProcess();
+// 	  G4LEPionMinusInelastic* theLEInelasticModel = 
+// 	    new G4LEPionMinusInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  G4HEPionMinusInelastic* theHEInelasticModel = 
+// 	    new G4HEPionMinusInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	  G4String prcNam;
+// 	  pmanager->AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault);
+// 	}
+      
+//       else if (particleName == "kaon+") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4KaonPlusInelasticProcess* theInelasticProcess = 
+// 	    new G4KaonPlusInelasticProcess();
+// 	  G4LEKaonPlusInelastic* theLEInelasticModel = 
+// 	    new G4LEKaonPlusInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  G4HEKaonPlusInelastic* theHEInelasticModel = 
+// 	    new G4HEKaonPlusInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+      
+//       else if (particleName == "kaon0S") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4KaonZeroSInelasticProcess* theInelasticProcess = 
+// 	    new G4KaonZeroSInelasticProcess();
+// 	  G4LEKaonZeroSInelastic* theLEInelasticModel = 
+// 	    new G4LEKaonZeroSInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  G4HEKaonZeroInelastic* theHEInelasticModel = 
+// 	    new G4HEKaonZeroInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+
+//       else if (particleName == "kaon0L") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4KaonZeroLInelasticProcess* theInelasticProcess = 
+// 	    new G4KaonZeroLInelasticProcess();
+// 	  G4LEKaonZeroLInelastic* theLEInelasticModel = 
+// 	    new G4LEKaonZeroLInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  G4HEKaonZeroInelastic* theHEInelasticModel = 
+// 	    new G4HEKaonZeroInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+
+//       else if (particleName == "kaon-") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4KaonMinusInelasticProcess* theInelasticProcess = 
+// 	    new G4KaonMinusInelasticProcess();
+// 	  G4LEKaonMinusInelastic* theLEInelasticModel = 
+// 	    new G4LEKaonMinusInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  G4HEKaonMinusInelastic* theHEInelasticModel = 
+// 	    new G4HEKaonMinusInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	  pmanager->AddRestProcess(new G4KaonMinusAbsorptionAtRest, ordDefault);
+// 	}
+
+//       else if (particleName == "proton") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4ProtonInelasticProcess* theInelasticProcess = 
+// 	    new G4ProtonInelasticProcess();
+
+
+// 	  //JEC 12/2/07 USE ONE SPECIFIC hadronic model... 
+// // 	  if (gheishahad) {
+// 	    G4LEProtonInelastic* theLEInelasticModel = new G4LEProtonInelastic;
+// 	    theInelasticProcess->RegisterMe(theLEInelasticModel);
+// // 	  }
+// // 	  else if (bertinihad) {
+// // 	    G4CascadeInterface* theBertiniModel = new G4CascadeInterface;
+// // 	    theInelasticProcess->RegisterMe(theBertiniModel);
+// // 	  }
+// // 	  else if (binaryhad) {
+// // 	    G4BinaryCascade* theBinaryModel = new G4BinaryCascade();
+// // 	    theInelasticProcess->RegisterMe(theBinaryModel);
+// // 	  }
+// // 	  else {
+// // 	    G4cout << "No secondary interaction model chosen! Using G4 BINARY." << G4endl;
+// // 	    G4BinaryCascade* theBinaryModel = new G4BinaryCascade();
+// // 	    theInelasticProcess->RegisterMe(theBinaryModel);
+// // 	  }
+
+// 	  G4HEProtonInelastic* theHEInelasticModel = new G4HEProtonInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+
+//       else if (particleName == "anti_proton") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4AntiProtonInelasticProcess* theInelasticProcess = 
+// 	    new G4AntiProtonInelasticProcess();
+// 	  G4LEAntiProtonInelastic* theLEInelasticModel = 
+// 	    new G4LEAntiProtonInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  G4HEAntiProtonInelastic* theHEInelasticModel = 
+// 	    new G4HEAntiProtonInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+
+//       else if (particleName == "neutron") 
+// 	{
+// 	  // elastic scattering
+// 	  G4HadronElasticProcess* theNeutronElasticProcess = 
+// 	    new G4HadronElasticProcess;
+// 	  G4LElastic* theElasticModel1 = new G4LElastic;
+// 	  G4NeutronHPElastic * theElasticNeutron = new G4NeutronHPElastic;
+// 	  theNeutronElasticProcess->RegisterMe(theElasticModel1);
+// 	  theElasticModel1->SetMinEnergy(19*MeV);
+// 	  theNeutronElasticProcess->RegisterMe(theElasticNeutron);
+// 	  G4NeutronHPElasticData * theNeutronData = new G4NeutronHPElasticData;
+// 	  theNeutronElasticProcess->AddDataSet(theNeutronData);
+// 	  pmanager->AddDiscreteProcess(theNeutronElasticProcess);
+	  
+// 	  // inelastic scattering
+// 	  G4NeutronInelasticProcess* theInelasticProcess =
+// 	    new G4NeutronInelasticProcess();
+	  
+// 	  //JEC 12/2/07 USE ONE SPECIFIC hadronic model... 
+// // 	  if (gheishahad) {
+// 	    G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic;
+// 	    theInelasticModel->SetMinEnergy(19*MeV);
+// 	    theInelasticProcess->RegisterMe(theInelasticModel);
+// // 	  }
+// // 	  else if (bertinihad) {
+// // 	    G4CascadeInterface* theBertiniModel = new G4CascadeInterface;
+// // 	    theBertiniModel->SetMinEnergy(19*MeV);
+// // 	    theInelasticProcess->RegisterMe(theBertiniModel);
+// // 	  }
+// // 	  else if (binaryhad) {
+// // 	    G4BinaryCascade* theBinaryModel = new G4BinaryCascade();
+// // 	    theBinaryModel->SetMinEnergy(19*MeV);
+// // 	    theInelasticProcess->RegisterMe(theBinaryModel);
+// // 	  }
+// // 	  else {
+// // 	    G4cout << "No secondary interaction model chosen! Using G4 BINARY." << G4endl;
+// // 	    G4BinaryCascade* theBinaryModel = new G4BinaryCascade();
+// // 	    theBinaryModel->SetMinEnergy(19*MeV);
+// // 	    theInelasticProcess->RegisterMe(theBinaryModel);
+// // 	  }
+	  
+// 	  G4HENeutronInelastic* theHEInelasticModel = new G4HENeutronInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  
+// 	  G4NeutronHPInelastic * theLENeutronInelasticModel =
+// 	    new G4NeutronHPInelastic;
+// 	  theInelasticProcess->RegisterMe(theLENeutronInelasticModel);
+	  
+// 	  G4NeutronHPInelasticData * theNeutronData1 = 
+// 	    new G4NeutronHPInelasticData;
+// 	  theInelasticProcess->AddDataSet(theNeutronData1);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+
+// 	  // capture
+// 	  G4HadronCaptureProcess* theCaptureProcess =
+// 	    new G4HadronCaptureProcess;
+// 	  G4LCapture* theCaptureModel = new G4LCapture;
+// 	  theCaptureModel->SetMinEnergy(19*MeV);
+// 	  theCaptureProcess->RegisterMe(theCaptureModel);
+// 	  G4NeutronHPCapture * theLENeutronCaptureModel = new G4NeutronHPCapture;
+// 	  theCaptureProcess->RegisterMe(theLENeutronCaptureModel);
+// 	  G4NeutronHPCaptureData * theNeutronData3 = new G4NeutronHPCaptureData;
+// 	  theCaptureProcess->AddDataSet(theNeutronData3);
+// 	  pmanager->AddDiscreteProcess(theCaptureProcess);
+// 	  //  G4ProcessManager* pmanager = G4Neutron::Neutron->GetProcessManager();
+// 	  //  pmanager->AddProcess(new G4UserSpecialCuts(),-1,-1,1);
+// 	}
+
+//       else if (particleName == "anti_neutron") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4AntiNeutronInelasticProcess* theInelasticProcess = 
+// 	    new G4AntiNeutronInelasticProcess();
+// 	  G4LEAntiNeutronInelastic* theLEInelasticModel = 
+// 	    new G4LEAntiNeutronInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  G4HEAntiNeutronInelastic* theHEInelasticModel = 
+// 	    new G4HEAntiNeutronInelastic;
+// 	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+
+//       else if (particleName == "deuteron") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4DeuteronInelasticProcess* theInelasticProcess = 
+// 	    new G4DeuteronInelasticProcess();
+// 	  G4LEDeuteronInelastic* theLEInelasticModel = 
+// 	    new G4LEDeuteronInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+      
+//       else if (particleName == "triton") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4TritonInelasticProcess* theInelasticProcess = 
+// 	    new G4TritonInelasticProcess();
+// 	  G4LETritonInelastic* theLEInelasticModel = 
+// 	    new G4LETritonInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+
+//       else if (particleName == "alpha") 
+// 	{
+// 	  pmanager->AddDiscreteProcess(theElasticProcess);
+// 	  G4AlphaInelasticProcess* theInelasticProcess = 
+// 	    new G4AlphaInelasticProcess();
+// 	  G4LEAlphaInelastic* theLEInelasticModel = 
+// 	    new G4LEAlphaInelastic;
+// 	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  pmanager->AddDiscreteProcess(theInelasticProcess);
+// 	}
+
+//     }
+// }//ConstructHad
Index: /ELYSE/HEAD/source/PhysicsList.cxx.sav
===================================================================
--- /ELYSE/HEAD/source/PhysicsList.cxx.sav	(revision 286)
+++ /ELYSE/HEAD/source/PhysicsList.cxx.sav	(revision 286)
@@ -0,0 +1,715 @@
+// Physics List
+//this
+#include "ELYSE/PhysicsList.hh"
+
+//Geant 4
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleWithCuts.hh"
+#include "G4LeptonConstructor.hh"
+#include "G4MesonConstructor.hh"
+#include "G4BaryonConstructor.hh"
+#include "G4BosonConstructor.hh"
+#include "G4IonConstructor.hh"
+#include "G4ProcessManager.hh"
+#include "G4ProcessVector.hh"
+#include "G4ParticleTypes.hh"
+#include "G4ParticleTable.hh"
+#include "G4Material.hh"
+#include "G4ios.hh"
+#include "G4UImanager.hh"
+#include "globals.hh"
+
+
+//std
+#include <iomanip>
+
+//ELYSE
+#include "ELYSE/PhysicsMessenger.hh"
+
+
+ELYSE::PhysicsList::PhysicsList() 
+: G4VUserPhysicsList(), 
+  physicsMessenger(0),
+  theCerenkovProcess(0),
+  theScintillationProcess(0),
+  theAbsorptionProcess(0),
+  theRayleighScatteringProcess(0),
+  theBoundaryProcess(0) {
+  
+  defaultCutValue = 1.0*mm;
+  SetVerboseLevel(1);
+  
+  physicsMessenger = new PhysicsMessenger(this);
+}//PhysicsList
+
+//-----------------------------------------------------------------------------------------------
+
+ELYSE::PhysicsList::~PhysicsList() {
+  delete physicsMessenger;
+  physicsMessenger = 0;
+}//PhysicsList
+
+//-----------------------------------------------------------------------------------------------
+void ELYSE::PhysicsList::ConstructParticle() {
+
+  G4cout << "(JEC) :PhysicsList::ConstructParticle() now !" << G4endl;
+  G4LeptonConstructor leptonConstructor;
+  G4MesonConstructor  mesonConstructor;
+  G4BaryonConstructor baryonConstructor;
+  G4BosonConstructor bosonConstructor;
+  G4IonConstructor ionConstructor;
+  leptonConstructor.ConstructParticle();
+  mesonConstructor.ConstructParticle();
+  baryonConstructor.ConstructParticle();
+  bosonConstructor.ConstructParticle();
+  ionConstructor.ConstructParticle();
+  G4OpticalPhoton::OpticalPhotonDefinition();
+} //ConstructParticle
+
+//-----------------------------------------------------------------------------------------------
+
+void ELYSE::PhysicsList::ConstructProcess() {
+  G4cout << "(JEC) :PhysicsList::ConstructProcess() now !" << G4endl;
+  AddTransportation();
+  ConstructEM();
+  ConstructGeneral();
+  ConstructOp();
+  //JEC 20/2/07 not useful? ConstructHad();
+  SetVerbose(0);
+
+}//ConstructProcess
+
+//-----------------------------------------------------------------------------------------------
+
+
+
+#include "G4ComptonScattering.hh"
+#include "G4GammaConversion.hh"
+#include "G4PhotoElectricEffect.hh"
+#include "G4MultipleScattering.hh"
+#include "G4eIonisation.hh"
+#include "G4eBremsstrahlung.hh"
+#include "G4eplusAnnihilation.hh"
+#include "G4MuIonisation.hh"
+#include "G4MuBremsstrahlung.hh"
+#include "G4MuPairProduction.hh"
+#include "G4hIonisation.hh"
+#include "G4MuonMinusCaptureAtRest.hh"
+
+//low energy
+#include "G4LowEnergyRayleigh.hh"
+#include "G4LowEnergyPhotoElectric.hh"
+#include "G4LowEnergyCompton.hh"
+#include "G4LowEnergyGammaConversion.hh"
+#include "G4MultipleScattering52.hh"
+#include "G4LowEnergyIonisation.hh"
+#include "G4LowEnergyBremsstrahlung.hh"
+
+void ELYSE::PhysicsList::ConstructEM() {
+
+  theParticleIterator->reset();
+  while( (*theParticleIterator)() ){
+    G4ParticleDefinition* particle = theParticleIterator->value();
+    G4ProcessManager* pmanager = particle->GetProcessManager();
+    G4String particleName = particle->GetParticleName();
+     
+    if (particleName == "gamma") {
+    // gamma standard
+//       pmanager->AddDiscreteProcess(new G4GammaConversion());
+//       pmanager->AddDiscreteProcess(new G4ComptonScattering());      
+//       pmanager->AddDiscreteProcess(new G4PhotoElectricEffect());
+
+      //Low energy version
+      pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh);
+      pmanager->AddDiscreteProcess(new  G4LowEnergyPhotoElectric("LowEnPhotoElec"));
+      pmanager->AddDiscreteProcess(new G4LowEnergyCompton);
+      pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion);
+
+
+    } else if (particleName == "e-") {
+    //electron
+//       G4VProcess*theeminusMultipleScattering = new G4MultipleScattering();
+//       G4VProcess* theeminusIonisation         = new G4eIonisation();
+//       G4VProcess* theeminusBremsstrahlung     = new G4eBremsstrahlung();
+
+
+      //JEC 20/2/07 test lowenergy processes
+      G4VProcess* theeminusMultipleScattering = new G4MultipleScattering52;
+      G4VProcess* theeminusIonisation         = new G4LowEnergyIonisation("LowEnergyIoni");
+      G4VProcess* theeminusBremsstrahlung     = new G4LowEnergyBremsstrahlung("LowEnBrem");
+
+      //JEC new debug
+      theeminusMultipleScattering->SetVerboseLevel(2);
+      theeminusIonisation->SetVerboseLevel(2);
+      theeminusBremsstrahlung->SetVerboseLevel(2);
+
+      // add processes
+
+//       pmanager->AddProcess(theeminusMultipleScattering);
+//       pmanager->AddProcess(theeminusIonisation);
+//       pmanager->AddProcess(theeminusBremsstrahlung);
+//       //      
+//       // set ordering for AlongStepDoIt
+//       pmanager->SetProcessOrdering(theeminusMultipleScattering,idxAlongStep,1);
+//       pmanager->SetProcessOrdering(theeminusIonisation,        idxAlongStep,2);
+//       //      pmanager->SetProcessOrdering(theeminusBremsstrahlung,    idxAlongStep,3); //add by JEC 12/2/07
+//                                                                                         //but not in LowEnergy
+
+//       //
+//       // set ordering for PostStepDoIt
+//       pmanager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep,1);
+//       pmanager->SetProcessOrdering(theeminusIonisation,         idxPostStep,2);
+//       pmanager->SetProcessOrdering(theeminusBremsstrahlung,     idxPostStep,3);
+
+      pmanager->AddProcess(theeminusMultipleScattering, -1, 1,1);
+      pmanager->AddProcess(theeminusIonisation,         -1, 2,2);
+      pmanager->AddProcess(theeminusBremsstrahlung,     -1,-1,3);     
+ 
+
+    } else if (particleName == "e+") {
+    //positron
+//       G4VProcess* theeplusMultipleScattering = new G4MultipleScattering();
+//       G4VProcess* theeplusIonisation         = new G4eIonisation();
+//       G4VProcess* theeplusBremsstrahlung     = new G4eBremsstrahlung();
+//       G4VProcess* theeplusAnnihilation       = new G4eplusAnnihilation();
+//       //
+//       // add processes
+//       pmanager->AddProcess(theeplusMultipleScattering);
+//       pmanager->AddProcess(theeplusIonisation);
+//       pmanager->AddProcess(theeplusBremsstrahlung);
+//       pmanager->AddProcess(theeplusAnnihilation);
+//       //
+//       // set ordering for AtRestDoIt
+//       pmanager->SetProcessOrderingToFirst(theeplusAnnihilation, idxAtRest);
+//       //
+//       // set ordering for AlongStepDoIt
+//       pmanager->SetProcessOrdering(theeplusMultipleScattering, idxAlongStep,1);
+//       pmanager->SetProcessOrdering(theeplusIonisation,         idxAlongStep,2);
+//       pmanager->SetProcessOrdering(theeplusBremsstrahlung,     idxAlongStep,3);  //add by JEC 12/2/07
+//       //
+//       // set ordering for PostStepDoIt
+//       pmanager->SetProcessOrdering(theeplusMultipleScattering, idxPostStep,1);
+//       pmanager->SetProcessOrdering(theeplusIonisation,         idxPostStep,2);
+//       pmanager->SetProcessOrdering(theeplusBremsstrahlung,     idxPostStep,3);
+//       pmanager->SetProcessOrdering(theeplusAnnihilation,       idxPostStep,4);
+
+      //JEC use MS52 and compactification of the AddProcess
+      pmanager->AddProcess(new G4MultipleScattering52,-1, 1,1);
+      pmanager->AddProcess(new G4eIonisation,         -1, 2,2);
+      pmanager->AddProcess(new G4eBremsstrahlung,     -1,-1,3);
+      pmanager->AddProcess(new G4eplusAnnihilation,    0,-1,4);
+ 
+
+    } else if( particleName == "mu+" ||
+               particleName == "mu-"    ) {
+    //muon
+      G4VProcess* aMultipleScattering = new G4MultipleScattering();
+      G4VProcess* aBremsstrahlung     = new G4MuBremsstrahlung();
+      G4VProcess* aPairProduction     = new G4MuPairProduction();
+      G4VProcess* anIonisation        = new G4MuIonisation();
+      //
+      // add processes
+      pmanager->AddProcess(anIonisation);
+      pmanager->AddProcess(aMultipleScattering);
+      pmanager->AddProcess(aBremsstrahlung);
+      pmanager->AddProcess(aPairProduction);
+      //
+      // set ordering for AlongStepDoIt
+      pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1);
+      pmanager->SetProcessOrdering(anIonisation,        idxAlongStep,2);
+      pmanager->SetProcessOrdering(aBremsstrahlung,     idxAlongStep,3); //add by JEC 12/2/07
+      pmanager->SetProcessOrdering(aPairProduction,     idxAlongStep,4); //add by JEC 12/2/07
+      //
+      // set ordering for PostStepDoIt
+      pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1);
+      pmanager->SetProcessOrdering(anIonisation,        idxPostStep,2);
+      pmanager->SetProcessOrdering(aBremsstrahlung,     idxPostStep,3);
+      pmanager->SetProcessOrdering(aPairProduction,     idxPostStep,4);
+
+      //Decay at rest
+      if (particleName == "mu-")
+        {
+          G4VProcess* aG4MuonMinusCaptureAtRest =
+            new G4MuonMinusCaptureAtRest();
+          pmanager->AddProcess(aG4MuonMinusCaptureAtRest);
+          pmanager->SetProcessOrdering(aG4MuonMinusCaptureAtRest,idxAtRest);
+        }
+
+
+    } else if ((!particle->IsShortLived()) &&
+	       (particle->GetPDGCharge() != 0.0)&&
+               (particle->GetParticleName() != "chargedgeantino")) {
+     G4VProcess* aMultipleScattering = new G4MultipleScattering();
+     G4VProcess* anIonisation        = new G4hIonisation();
+     //
+     // add processes
+     pmanager->AddProcess(anIonisation);
+     pmanager->AddProcess(aMultipleScattering);
+     //
+     // set ordering for AlongStepDoIt
+     pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1);
+     pmanager->SetProcessOrdering(anIonisation,        idxAlongStep,2);
+     //
+     // set ordering for PostStepDoIt
+     pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1);
+     pmanager->SetProcessOrdering(anIonisation,        idxPostStep,2);
+    }
+   } 
+
+}//ConstructEM
+
+//-----------------------------------------------------------------------------------------------
+
+#include "G4Cerenkov.hh"
+#include "G4Scintillation.hh"
+#include "G4OpAbsorption.hh"
+#include "G4OpRayleigh.hh"
+#include "G4OpBoundaryProcess.hh"
+
+void ELYSE::PhysicsList::ConstructOp(){
+
+  theCerenkovProcess           = new G4Cerenkov("Cerenkov");
+  theScintillationProcess      = new G4Scintillation("Scintillation");
+  theAbsorptionProcess         = new G4OpAbsorption();
+  theRayleighScatteringProcess = new G4OpRayleigh();
+  theBoundaryProcess           = new G4OpBoundaryProcess();
+
+  /*
+    theCerenkovProcess->DumpPhysicsTable();
+    theScintillationProcess->DumpPhysicsTable();
+    theAbsorptionProcess->DumpPhysicsTable();
+    theRayleighScatteringProcess->DumpPhysicsTable();
+  */
+
+
+
+
+  theCerenkovProcess->SetTrackSecondariesFirst(false); //NV: if "true" generates as many trajectory objs of  
+  theCerenkovProcess->SetMaxNumPhotonsPerStep(300);    //op parents as the # of parents' steps. 
+                                                       //The number of photons may be tuned by the messenger
+
+  //JEC 19/2/07  theScintillationProcess->SetScintillationYieldFactor(1.);
+  theScintillationProcess->SetScintillationYieldFactor(0.);
+  theScintillationProcess->SetTrackSecondariesFirst(false);
+
+  G4OpticalSurfaceModel themodel = unified; //JEC where does it come from?
+  theBoundaryProcess->SetModel(themodel);
+
+  theParticleIterator->reset();
+  while( (*theParticleIterator)() )
+  {
+    G4ParticleDefinition* particle     = theParticleIterator->value();
+    G4ProcessManager*     pmanager     = particle->GetProcessManager();
+    G4String              particleName = particle->GetParticleName();
+
+    if (theCerenkovProcess->IsApplicable(*particle)) {
+      pmanager->AddContinuousProcess(theCerenkovProcess);
+    }
+    
+    if (theScintillationProcess->IsApplicable(*particle)) {
+      pmanager->AddProcess(theScintillationProcess);
+      pmanager->SetProcessOrderingToLast(theScintillationProcess, idxAtRest);
+      pmanager->SetProcessOrderingToLast(theScintillationProcess, idxPostStep);
+    }
+
+    if (particleName == "opticalphoton") {
+      pmanager->AddDiscreteProcess(theAbsorptionProcess);
+      pmanager->AddDiscreteProcess(theRayleighScatteringProcess);
+      pmanager->AddDiscreteProcess(theBoundaryProcess);
+    }
+  }
+}//ConstructOp
+
+//-----------------------------------------------------------------------------------------------
+
+#include "G4Decay.hh"
+
+void ELYSE::PhysicsList::ConstructGeneral() {
+  // Add Decay Process
+  G4Decay* theDecayProcess = new G4Decay();
+  theParticleIterator->reset();
+  while( (*theParticleIterator)() ){
+    G4ParticleDefinition* particle = theParticleIterator->value();
+    G4ProcessManager* pmanager = particle->GetProcessManager();
+    if (theDecayProcess->IsApplicable(*particle)) { 
+      pmanager ->AddProcess(theDecayProcess);
+      // set ordering for PostStepDoIt and AtRestDoIt
+      pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
+      pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
+    }
+  }
+}//ConstructGeneral
+
+//-----------------------------------------------------------------------------------------------
+
+// Elastic processes:
+#include "G4HadronElasticProcess.hh"
+
+// Inelastic processes:
+#include "G4PionPlusInelasticProcess.hh"
+#include "G4PionMinusInelasticProcess.hh"
+#include "G4KaonPlusInelasticProcess.hh"
+#include "G4KaonZeroSInelasticProcess.hh"
+#include "G4KaonZeroLInelasticProcess.hh"
+#include "G4KaonMinusInelasticProcess.hh"
+#include "G4ProtonInelasticProcess.hh"
+#include "G4AntiProtonInelasticProcess.hh"
+#include "G4NeutronInelasticProcess.hh"
+#include "G4AntiNeutronInelasticProcess.hh"
+#include "G4DeuteronInelasticProcess.hh"
+#include "G4TritonInelasticProcess.hh"
+#include "G4AlphaInelasticProcess.hh"
+
+// Low-energy Models: < 20GeV
+#include "G4LElastic.hh"
+#include "G4LEPionPlusInelastic.hh"
+#include "G4LEPionMinusInelastic.hh"
+#include "G4LEKaonPlusInelastic.hh"
+#include "G4LEKaonZeroSInelastic.hh"
+#include "G4LEKaonZeroLInelastic.hh"
+#include "G4LEKaonMinusInelastic.hh"
+#include "G4LEProtonInelastic.hh"
+#include "G4LEAntiProtonInelastic.hh"
+#include "G4LENeutronInelastic.hh"
+#include "G4LEAntiNeutronInelastic.hh"
+#include "G4LEDeuteronInelastic.hh"
+#include "G4LETritonInelastic.hh"
+#include "G4LEAlphaInelastic.hh"
+
+// High-energy Models: >20 GeV
+#include "G4HEPionPlusInelastic.hh"
+#include "G4HEPionMinusInelastic.hh"
+#include "G4HEKaonPlusInelastic.hh"
+#include "G4HEKaonZeroInelastic.hh"
+#include "G4HEKaonZeroInelastic.hh"
+#include "G4HEKaonMinusInelastic.hh"
+#include "G4HEProtonInelastic.hh"
+#include "G4HEAntiProtonInelastic.hh"
+#include "G4HENeutronInelastic.hh"
+#include "G4HEAntiNeutronInelastic.hh"
+
+// Neutron high-precision models: <20 MeV
+#include "G4NeutronHPElastic.hh"
+#include "G4NeutronHPElasticData.hh"
+#include "G4NeutronHPCapture.hh"
+#include "G4NeutronHPCaptureData.hh"
+#include "G4NeutronHPInelastic.hh"
+#include "G4NeutronHPInelasticData.hh"
+#include "G4LCapture.hh"
+
+// Secondary hadronic interaction models
+#include "G4CascadeInterface.hh"
+#include "G4BinaryCascade.hh"
+
+// Stopping processes
+#include "G4PiMinusAbsorptionAtRest.hh"
+#include "G4KaonMinusAbsorptionAtRest.hh"
+#include "G4AntiProtonAnnihilationAtRest.hh"
+#include "G4AntiNeutronAnnihilationAtRest.hh"
+
+void ELYSE::PhysicsList::ConstructHad() {
+
+// This code stolen from:
+// examples/advanced/underground_physics/src/DMXPhysicsList.cc
+// CWW 2/23/05
+//
+  
+  G4HadronElasticProcess* theElasticProcess = new G4HadronElasticProcess;
+  G4LElastic* theElasticModel = new G4LElastic;
+  theElasticProcess->RegisterMe(theElasticModel);
+  
+  theParticleIterator->reset();
+  while ((*theParticleIterator)()) 
+    {
+      G4ParticleDefinition* particle = theParticleIterator->value();
+      G4ProcessManager* pmanager = particle->GetProcessManager();
+      G4String particleName = particle->GetParticleName();
+
+      if (particleName == "pi+") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4PionPlusInelasticProcess* theInelasticProcess = 
+	    new G4PionPlusInelasticProcess();
+	  G4LEPionPlusInelastic* theLEInelasticModel = 
+	    new G4LEPionPlusInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  G4HEPionPlusInelastic* theHEInelasticModel = 
+	    new G4HEPionPlusInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	} 
+
+      else if (particleName == "pi-") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4PionMinusInelasticProcess* theInelasticProcess = 
+	    new G4PionMinusInelasticProcess();
+	  G4LEPionMinusInelastic* theLEInelasticModel = 
+	    new G4LEPionMinusInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  G4HEPionMinusInelastic* theHEInelasticModel = 
+	    new G4HEPionMinusInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	  G4String prcNam;
+	  pmanager->AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault);
+	}
+      
+      else if (particleName == "kaon+") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4KaonPlusInelasticProcess* theInelasticProcess = 
+	    new G4KaonPlusInelasticProcess();
+	  G4LEKaonPlusInelastic* theLEInelasticModel = 
+	    new G4LEKaonPlusInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  G4HEKaonPlusInelastic* theHEInelasticModel = 
+	    new G4HEKaonPlusInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+      
+      else if (particleName == "kaon0S") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4KaonZeroSInelasticProcess* theInelasticProcess = 
+	    new G4KaonZeroSInelasticProcess();
+	  G4LEKaonZeroSInelastic* theLEInelasticModel = 
+	    new G4LEKaonZeroSInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  G4HEKaonZeroInelastic* theHEInelasticModel = 
+	    new G4HEKaonZeroInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+
+      else if (particleName == "kaon0L") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4KaonZeroLInelasticProcess* theInelasticProcess = 
+	    new G4KaonZeroLInelasticProcess();
+	  G4LEKaonZeroLInelastic* theLEInelasticModel = 
+	    new G4LEKaonZeroLInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  G4HEKaonZeroInelastic* theHEInelasticModel = 
+	    new G4HEKaonZeroInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+
+      else if (particleName == "kaon-") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4KaonMinusInelasticProcess* theInelasticProcess = 
+	    new G4KaonMinusInelasticProcess();
+	  G4LEKaonMinusInelastic* theLEInelasticModel = 
+	    new G4LEKaonMinusInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  G4HEKaonMinusInelastic* theHEInelasticModel = 
+	    new G4HEKaonMinusInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	  pmanager->AddRestProcess(new G4KaonMinusAbsorptionAtRest, ordDefault);
+	}
+
+      else if (particleName == "proton") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4ProtonInelasticProcess* theInelasticProcess = 
+	    new G4ProtonInelasticProcess();
+
+
+	  //JEC 12/2/07 USE ONE SPECIFIC hadronic model... 
+// 	  if (gheishahad) {
+	    G4LEProtonInelastic* theLEInelasticModel = new G4LEProtonInelastic;
+	    theInelasticProcess->RegisterMe(theLEInelasticModel);
+// 	  }
+// 	  else if (bertinihad) {
+// 	    G4CascadeInterface* theBertiniModel = new G4CascadeInterface;
+// 	    theInelasticProcess->RegisterMe(theBertiniModel);
+// 	  }
+// 	  else if (binaryhad) {
+// 	    G4BinaryCascade* theBinaryModel = new G4BinaryCascade();
+// 	    theInelasticProcess->RegisterMe(theBinaryModel);
+// 	  }
+// 	  else {
+// 	    G4cout << "No secondary interaction model chosen! Using G4 BINARY." << G4endl;
+// 	    G4BinaryCascade* theBinaryModel = new G4BinaryCascade();
+// 	    theInelasticProcess->RegisterMe(theBinaryModel);
+// 	  }
+
+	  G4HEProtonInelastic* theHEInelasticModel = new G4HEProtonInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+
+      else if (particleName == "anti_proton") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4AntiProtonInelasticProcess* theInelasticProcess = 
+	    new G4AntiProtonInelasticProcess();
+	  G4LEAntiProtonInelastic* theLEInelasticModel = 
+	    new G4LEAntiProtonInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  G4HEAntiProtonInelastic* theHEInelasticModel = 
+	    new G4HEAntiProtonInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+
+      else if (particleName == "neutron") 
+	{
+	  // elastic scattering
+	  G4HadronElasticProcess* theNeutronElasticProcess = 
+	    new G4HadronElasticProcess;
+	  G4LElastic* theElasticModel1 = new G4LElastic;
+	  G4NeutronHPElastic * theElasticNeutron = new G4NeutronHPElastic;
+	  theNeutronElasticProcess->RegisterMe(theElasticModel1);
+	  theElasticModel1->SetMinEnergy(19*MeV);
+	  theNeutronElasticProcess->RegisterMe(theElasticNeutron);
+	  G4NeutronHPElasticData * theNeutronData = new G4NeutronHPElasticData;
+	  theNeutronElasticProcess->AddDataSet(theNeutronData);
+	  pmanager->AddDiscreteProcess(theNeutronElasticProcess);
+	  
+	  // inelastic scattering
+	  G4NeutronInelasticProcess* theInelasticProcess =
+	    new G4NeutronInelasticProcess();
+	  
+	  //JEC 12/2/07 USE ONE SPECIFIC hadronic model... 
+// 	  if (gheishahad) {
+	    G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic;
+	    theInelasticModel->SetMinEnergy(19*MeV);
+	    theInelasticProcess->RegisterMe(theInelasticModel);
+// 	  }
+// 	  else if (bertinihad) {
+// 	    G4CascadeInterface* theBertiniModel = new G4CascadeInterface;
+// 	    theBertiniModel->SetMinEnergy(19*MeV);
+// 	    theInelasticProcess->RegisterMe(theBertiniModel);
+// 	  }
+// 	  else if (binaryhad) {
+// 	    G4BinaryCascade* theBinaryModel = new G4BinaryCascade();
+// 	    theBinaryModel->SetMinEnergy(19*MeV);
+// 	    theInelasticProcess->RegisterMe(theBinaryModel);
+// 	  }
+// 	  else {
+// 	    G4cout << "No secondary interaction model chosen! Using G4 BINARY." << G4endl;
+// 	    G4BinaryCascade* theBinaryModel = new G4BinaryCascade();
+// 	    theBinaryModel->SetMinEnergy(19*MeV);
+// 	    theInelasticProcess->RegisterMe(theBinaryModel);
+// 	  }
+	  
+	  G4HENeutronInelastic* theHEInelasticModel = new G4HENeutronInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  
+	  G4NeutronHPInelastic * theLENeutronInelasticModel =
+	    new G4NeutronHPInelastic;
+	  theInelasticProcess->RegisterMe(theLENeutronInelasticModel);
+	  
+	  G4NeutronHPInelasticData * theNeutronData1 = 
+	    new G4NeutronHPInelasticData;
+	  theInelasticProcess->AddDataSet(theNeutronData1);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+
+	  // capture
+	  G4HadronCaptureProcess* theCaptureProcess =
+	    new G4HadronCaptureProcess;
+	  G4LCapture* theCaptureModel = new G4LCapture;
+	  theCaptureModel->SetMinEnergy(19*MeV);
+	  theCaptureProcess->RegisterMe(theCaptureModel);
+	  G4NeutronHPCapture * theLENeutronCaptureModel = new G4NeutronHPCapture;
+	  theCaptureProcess->RegisterMe(theLENeutronCaptureModel);
+	  G4NeutronHPCaptureData * theNeutronData3 = new G4NeutronHPCaptureData;
+	  theCaptureProcess->AddDataSet(theNeutronData3);
+	  pmanager->AddDiscreteProcess(theCaptureProcess);
+	  //  G4ProcessManager* pmanager = G4Neutron::Neutron->GetProcessManager();
+	  //  pmanager->AddProcess(new G4UserSpecialCuts(),-1,-1,1);
+	}
+
+      else if (particleName == "anti_neutron") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4AntiNeutronInelasticProcess* theInelasticProcess = 
+	    new G4AntiNeutronInelasticProcess();
+	  G4LEAntiNeutronInelastic* theLEInelasticModel = 
+	    new G4LEAntiNeutronInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  G4HEAntiNeutronInelastic* theHEInelasticModel = 
+	    new G4HEAntiNeutronInelastic;
+	  theInelasticProcess->RegisterMe(theHEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+
+      else if (particleName == "deuteron") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4DeuteronInelasticProcess* theInelasticProcess = 
+	    new G4DeuteronInelasticProcess();
+	  G4LEDeuteronInelastic* theLEInelasticModel = 
+	    new G4LEDeuteronInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+      
+      else if (particleName == "triton") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4TritonInelasticProcess* theInelasticProcess = 
+	    new G4TritonInelasticProcess();
+	  G4LETritonInelastic* theLEInelasticModel = 
+	    new G4LETritonInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+
+      else if (particleName == "alpha") 
+	{
+	  pmanager->AddDiscreteProcess(theElasticProcess);
+	  G4AlphaInelasticProcess* theInelasticProcess = 
+	    new G4AlphaInelasticProcess();
+	  G4LEAlphaInelastic* theLEInelasticModel = 
+	    new G4LEAlphaInelastic;
+	  theInelasticProcess->RegisterMe(theLEInelasticModel);
+	  pmanager->AddDiscreteProcess(theInelasticProcess);
+	}
+
+    }
+}//ConstructHad
+
+//-----------------------------------------------------------------------------------------------
+
+void ELYSE::PhysicsList::SetCuts() {
+  if (verboseLevel >0){
+    G4cout << "PhysicsList::SetCuts:";
+    G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
+  }
+
+  // set cut values for gamma at first and for e- second and next for e+,
+  // because some processes for e+/e- need cut values for gamma
+  //
+  SetCutValue(defaultCutValue, "gamma");
+  SetCutValue(defaultCutValue, "e-");
+  SetCutValue(defaultCutValue, "e+");
+
+  if (verboseLevel>0) DumpCutValuesTable();
+}//SetCuts
+
+
+//-------------------------------------------------------------------
+void ELYSE::PhysicsList::SetVerbose(G4int verbose)
+{
+  theCerenkovProcess->SetVerboseLevel(verbose);
+  theScintillationProcess->SetVerboseLevel(verbose);
+  theAbsorptionProcess->SetVerboseLevel(verbose);
+  theRayleighScatteringProcess->SetVerboseLevel(verbose);
+  theBoundaryProcess->SetVerboseLevel(verbose);  
+
+
+}//SetVerbose
+//-------------------------------------------------------------------
+
+//-------------------------------------------------------------------
+void ELYSE::PhysicsList::SetNbOfPhotonsCerenkov(G4int MaxNumber)
+{  
+  theCerenkovProcess->SetMaxNumPhotonsPerStep(MaxNumber);
+}//SetNbOfPhotonsCerenkov
+//-------------------------------------------------------------------
Index: /ELYSE/HEAD/source/PhysicsListMessenger.cxx
===================================================================
--- /ELYSE/HEAD/source/PhysicsListMessenger.cxx	(revision 286)
+++ /ELYSE/HEAD/source/PhysicsListMessenger.cxx	(revision 286)
@@ -0,0 +1,122 @@
+//this
+#include "ELYSE/PhysicsListMessenger.hh"
+
+//Geant 4
+#include "G4UIdirectory.hh"
+#include "G4UIcmdWithADoubleAndUnit.hh"
+#include "G4UIcmdWithAString.hh"
+#include "G4UIcmdWithAnInteger.hh"
+
+//ELYSE
+#include "ELYSE/PhysicsList.hh"
+
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys)
+:pPhysicsList(pPhys) {
+
+  physDir = new G4UIdirectory("/ELYSE/phys/");
+  physDir->SetGuidance("physics list commands");
+   
+  gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/ELYSE/phys/setGCut",this);  
+  gammaCutCmd->SetGuidance("Set gamma cut.");
+  gammaCutCmd->SetParameterName("Gcut",false);
+  gammaCutCmd->SetUnitCategory("Length");
+  gammaCutCmd->SetRange("Gcut>0.0");
+  gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
+
+  electCutCmd = new G4UIcmdWithADoubleAndUnit("/ELYSE/phys/setECut",this);  
+  electCutCmd->SetGuidance("Set electron cut.");
+  electCutCmd->SetParameterName("Ecut",false);
+  electCutCmd->SetUnitCategory("Length");
+  electCutCmd->SetRange("Ecut>0.0");
+  electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
+  
+  protoCutCmd = new G4UIcmdWithADoubleAndUnit("/ELYSE/phys/setPCut",this);  
+  protoCutCmd->SetGuidance("Set positron cut.");
+  protoCutCmd->SetParameterName("Pcut",false);
+  protoCutCmd->SetUnitCategory("Length");
+  protoCutCmd->SetRange("Pcut>0.0");
+  protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);  
+
+  allCutCmd = new G4UIcmdWithADoubleAndUnit("/ELYSE/phys/setCuts",this);  
+  allCutCmd->SetGuidance("Set cut for all.");
+  allCutCmd->SetParameterName("cut",false);
+  allCutCmd->SetUnitCategory("Length");
+  allCutCmd->SetRange("cut>0.0");
+  allCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);  
+
+  pListCmd = new G4UIcmdWithAString("/ELYSE/phys/addPhysics",this);  
+  pListCmd->SetGuidance("Add modula physics list.");
+  pListCmd->SetParameterName("PList",false);
+  pListCmd->AvailableForStates(G4State_PreInit);  
+
+
+  verboseCmd = new G4UIcmdWithAnInteger("/ELYSE/phys/verbose",this);  
+  verboseCmd->SetGuidance("set verbose for physics processes");
+  verboseCmd->SetParameterName("verbose",true);
+  verboseCmd->SetDefaultValue(1);
+  verboseCmd->SetRange("verbose>=0");
+  verboseCmd->AvailableForStates(G4State_Idle);
+
+  cerenkovCmd = new G4UIcmdWithAnInteger("/ELYSE/phys/cerenkovMaxPhotons",this);  
+  cerenkovCmd->SetGuidance("set max nb of photons per step");
+  cerenkovCmd->SetParameterName("MaxNumber",false);
+  cerenkovCmd->SetRange("MaxNumber>=0");
+  cerenkovCmd->AvailableForStates(G4State_Idle);  
+}
+
+//----------------------------------------------------------------------
+
+ELYSE::PhysicsListMessenger::~PhysicsListMessenger() {
+  delete gammaCutCmd;
+  delete electCutCmd;
+  delete protoCutCmd;
+  delete allCutCmd;
+  delete pListCmd;
+  delete verboseCmd;
+  delete cerenkovCmd;  
+  delete physDir;      
+  
+}
+
+//----------------------------------------------------------------------
+
+void ELYSE::PhysicsListMessenger::SetNewValue(G4UIcommand* command,
+					      G4String newValue) {       
+  if( command == gammaCutCmd ) { 
+    pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue));
+  }
+     
+  if( command == electCutCmd ) { 
+    pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));
+  }
+     
+  if( command == protoCutCmd ) { 
+    pPhysicsList->SetCutForPositron(protoCutCmd->GetNewDoubleValue(newValue));
+  }
+
+  if( command == allCutCmd ) {
+    G4double cut = allCutCmd->GetNewDoubleValue(newValue);
+    pPhysicsList->SetCutForGamma(cut);
+    pPhysicsList->SetCutForElectron(cut);
+    pPhysicsList->SetCutForPositron(cut);
+  } 
+  
+  if( command == pListCmd ) { 
+    pPhysicsList->AddPhysicsList(newValue);
+  }
+
+
+  if( command == verboseCmd ) { 
+   pPhysicsList->SetVerbose(verboseCmd->GetNewIntValue(newValue));
+  }
+   
+  if( command == cerenkovCmd ) {
+   pPhysicsList->SetNbOfPhotonsCerenkov(cerenkovCmd->GetNewIntValue(newValue));
+  }
+
+}//SetNewValue
+
+//----------------------------------------------------------------------
Index: /ELYSE/HEAD/source/PhysicsMessenger.cxx.sav
===================================================================
--- /ELYSE/HEAD/source/PhysicsMessenger.cxx.sav	(revision 286)
+++ /ELYSE/HEAD/source/PhysicsMessenger.cxx.sav	(revision 286)
@@ -0,0 +1,59 @@
+#include "ELYSE/PhysicsMessenger.hh"
+
+//Geant4
+#include "G4UIdirectory.hh"
+#include "G4ios.hh"
+#include "globals.hh"
+#include "G4UIcmdWithAString.hh"
+#include "G4UIcmdWithAnInteger.hh" 
+
+//ELYSE
+#include "ELYSE/PhysicsList.hh"
+
+
+ELYSE::PhysicsMessenger::PhysicsMessenger(ELYSE::PhysicsList* ELYSEPhys)
+:ELYSEPhysics(ELYSEPhys) {
+  
+  ELYSEDir = new G4UIdirectory("/ELYSE/");
+  ELYSEDir->SetGuidance("UI commands of this example");
+  
+  physDir = new G4UIdirectory("/ELYSE/phys/");
+  physDir->SetGuidance("PhysicsList control");
+ 
+  verboseCmd = new G4UIcmdWithAnInteger("/ELYSE/phys/verbose",this);  
+  verboseCmd->SetGuidance("set verbose for physics processes");
+  verboseCmd->SetParameterName("verbose",true);
+  verboseCmd->SetDefaultValue(1);
+  verboseCmd->SetRange("verbose>=0");
+  verboseCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
+  
+  cerenkovCmd = new G4UIcmdWithAnInteger("/ELYSE/phys/cerenkovMaxPhotons",this);  
+  cerenkovCmd->SetGuidance("set max nb of photons per step");
+  cerenkovCmd->SetParameterName("MaxNumber",false);
+  cerenkovCmd->SetRange("MaxNumber>=0");
+  cerenkovCmd->AvailableForStates(G4State_Idle);  
+
+}//Ctor
+
+//---------------------------------------------------------------------------------
+
+ELYSE::PhysicsMessenger::~PhysicsMessenger() {
+  delete verboseCmd;
+  delete cerenkovCmd;
+  delete physDir;
+  delete ELYSEDir;
+}//Dtor
+
+//---------------------------------------------------------------------------------
+
+void ELYSE::PhysicsMessenger::SetNewValue(G4UIcommand* command, G4String newValue) {
+
+  if( command == verboseCmd ) { 
+   ELYSEPhysics->SetVerbose(verboseCmd->GetNewIntValue(newValue));
+  }
+   
+  if( command == cerenkovCmd ) {
+   ELYSEPhysics->SetNbOfPhotonsCerenkov(cerenkovCmd->GetNewIntValue(newValue));
+  }
+
+}//SetNewValue
Index: /ELYSE/HEAD/source/PrimaryGeneratorAction.cxx
===================================================================
--- /ELYSE/HEAD/source/PrimaryGeneratorAction.cxx	(revision 286)
+++ /ELYSE/HEAD/source/PrimaryGeneratorAction.cxx	(revision 286)
@@ -0,0 +1,127 @@
+#include "ELYSE/PrimaryGeneratorAction.hh"
+
+//Geant4
+#include "G4Event.hh"
+#include "G4ParticleGun.hh"
+#include "G4ParticleTable.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ThreeVector.hh"
+#include "globals.hh"
+#include "Randomize.hh"
+#include "G4Navigator.hh"
+#include "G4TransportationManager.hh"
+#include "G4ProcessManager.hh"
+
+//ELYSE
+#include "ELYSE/DetectorConstruction.hh"
+#include "ELYSE/PrimaryGeneratorMessenger.hh"
+
+
+ELYSE::PrimaryGeneratorAction::PrimaryGeneratorAction() {
+  // Initialize to zero
+  vtx = G4ThreeVector(0.,0.,0.);
+  beamenergy = 0.;
+  beamdir = G4ThreeVector(0.,0.,0.);
+  
+  
+  //---Set defaults. Do once at beginning of session.
+  
+  G4int n_particle = 1;
+  particleGun = new G4ParticleGun(n_particle);
+    
+  particleTable = G4ParticleTable::GetParticleTable();
+  particleGun->SetParticleDefinition(particleTable->FindParticle("e-"));
+
+
+  particleGun->SetParticleTime(0.0*ns);
+  particleGun->SetParticlePosition(G4ThreeVector(0.0*cm,0.0*cm,0.0*cm));
+  particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.));
+  particleGun->SetParticleEnergy(8.2*MeV);
+
+    
+  //link to the messanger
+  messenger = new PrimaryGeneratorMessenger(this);
+}//Ctor
+
+//-------------------------------------------------------------------------------------------------
+
+ELYSE::PrimaryGeneratorAction::~PrimaryGeneratorAction() {
+  delete particleGun;
+  delete messenger;
+}//Dtor
+
+//-------------------------------------------------------------------------------------------------
+
+void ELYSE::PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) {
+
+
+  //use the Gun used by default or in the Messenger
+  particleGun->GeneratePrimaryVertex(anEvent);
+  
+  //This code suppose 1 particle in the gun.
+//   G4ThreeVector P   = anEvent->GetPrimaryVertex()->GetPrimary()->GetMomentum();
+//   G4ThreeVector vtx = anEvent->GetPrimaryVertex()->GetPosition();
+//   G4double m        = anEvent->GetPrimaryVertex()->GetPrimary()->GetMass();
+//   G4int pdg         = anEvent->GetPrimaryVertex()->GetPrimary()->GetPDGcode());
+      
+//   G4ThreeVector dir  = P.unit();
+//   G4double E         = std::sqrt((P.dot(P))+(m*m));
+      
+//   SetBeamPDG(pdg);
+//   SetBeamEnergy(E);
+//   SetVtx(vtx);
+//   SetBeamDir(dir);
+    
+}//GeneratePrimaries
+
+//-------------------------------------------------------------------------------------------------
+void ELYSE::PrimaryGeneratorAction::SetBeamPDG(G4int i) {
+
+  //  G4cout << "(JEC): SetBeamPDG(" << i << ")" << G4endl;
+
+  beampdg = i;
+  particleGun->
+    SetParticleDefinition(particleTable->FindParticle(i));
+}//SetBeamPDG
+//-------------------------------------------------------------------------------------------------
+
+void ELYSE::PrimaryGeneratorAction::SetBeamName(G4String i) {
+
+  //  G4cout << "(JEC): SetBeamName(" << i << ")" << G4endl;
+
+  beampdg = particleTable->FindParticle(i)->GetPDGEncoding();
+
+  particleGun->
+      SetParticleDefinition(particleTable->FindParticle(i));
+}//SetBeamPDG
+
+//-----------------------------------------------------------------------
+
+void ELYSE::PrimaryGeneratorAction::SetBeamEnergy(G4double i) {
+  //  G4cout << "(JEC): SetBeamEnergy(" << i << ")" << G4endl;
+  beamenergy = i;
+  particleGun->SetParticleEnergy(i);
+}//SetBeamEnergy
+
+//-----------------------------------------------------------------------
+
+void ELYSE::PrimaryGeneratorAction::SetVtx(G4ThreeVector i) {
+  //  G4cout << "(JEC): SetVtx(" << i << ")" << G4endl;
+  vtx = i;
+  particleGun->SetParticlePosition(i);
+}//SetVtx
+
+//-----------------------------------------------------------------------
+
+void ELYSE::PrimaryGeneratorAction::SetBeamDir(G4ThreeVector i) {
+  //  G4cout << "(JEC): SetBeamDir(" << i << ")" << G4endl;
+  beamdir = i;
+  particleGun->SetParticleMomentumDirection(i);
+}//SetBeamDir
+
+//-----------------------------------------------------------------------
+void ELYSE::PrimaryGeneratorAction::SetOptPhotonPolar(G4ThreeVector i) {
+  polar = i;  
+  //  G4cout << "(JEC): SetOptPhotonPolar(" << polar << ")" << G4endl;
+  particleGun->SetParticlePolarization(i);
+}
Index: /ELYSE/HEAD/source/PrimaryGeneratorMessenger.cxx
===================================================================
--- /ELYSE/HEAD/source/PrimaryGeneratorMessenger.cxx	(revision 286)
+++ /ELYSE/HEAD/source/PrimaryGeneratorMessenger.cxx	(revision 286)
@@ -0,0 +1,81 @@
+#include "ELYSE/PrimaryGeneratorMessenger.hh"
+
+//Geant4
+#include "G4UIdirectory.hh"
+#include "G4UIcmdWithAString.hh"
+#include "G4UIcmdWith3Vector.hh"
+#include "G4UIcmdWithADoubleAndUnit.hh"
+#include "G4UIcmdWith3VectorAndUnit.hh"
+#include "G4ios.hh"
+
+//ELYSE
+#include "ELYSE/PrimaryGeneratorAction.hh"
+
+
+ELYSE::PrimaryGeneratorMessenger::PrimaryGeneratorMessenger(ELYSE::PrimaryGeneratorAction* pointerToAction)
+:myAction(pointerToAction) {
+
+  ELYSEDir = new G4UIdirectory("/ELYSE/gun/");
+  ELYSEDir->SetGuidance("ELYSE gun control commands.");
+
+  particleTypeCmd = new G4UIcmdWithAString("/ELYSE/gun/partName",this);
+  particleTypeCmd->SetGuidance("Particle Name of the beam");
+  particleTypeCmd->SetParameterName("beampdg",false);
+
+  energyCmd = new G4UIcmdWithADoubleAndUnit("/ELYSE/gun/energy",this);
+  energyCmd->SetGuidance("The Energy of the beam");
+  energyCmd->SetParameterName("beamenergy",false);
+  energyCmd->SetDefaultUnit("MeV");
+
+  beamDirectionCmd = new G4UIcmdWith3Vector("/ELYSE/gun/BeamDir",this);
+  beamDirectionCmd->SetGuidance("Set the direction of the beam.");
+  beamDirectionCmd->SetParameterName("beamdir_x","beamdir_y","beamdir_z",false);
+
+  beamVertexCmd = new G4UIcmdWith3VectorAndUnit("/ELYSE/gun/vertex",this);
+  beamVertexCmd->SetGuidance("Set the vertex of the beam.");
+  beamVertexCmd->SetParameterName("vertex_x","vertex_y","vertex_z",false);
+  beamVertexCmd->SetDefaultUnit("cm");
+
+  polarCmd = new G4UIcmdWith3Vector("/ELYSE/gun/OpPhotonPolarisation",this);
+  polarCmd->SetGuidance("Set polarization direction");
+  polarCmd->SetParameterName("polar_x","polar_y","polar_z",false);
+ 
+}//Ctor
+
+//--------------------------------------------------------------------------------------------
+
+ELYSE::PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() {
+  delete particleTypeCmd;
+  delete energyCmd;
+  delete beamDirectionCmd;
+  delete beamVertexCmd;
+  delete polarCmd;
+
+  delete ELYSEDir;
+}//Dtor
+
+//--------------------------------------------------------------------------------------------
+
+void ELYSE::PrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command,G4String newValue) {
+
+  if( command == particleTypeCmd ) {
+    myAction->SetBeamName(newValue);
+
+  } else if ( command == energyCmd ) {
+    myAction->SetBeamEnergy(energyCmd->GetNewDoubleValue(newValue));
+    
+  } else if ( command == beamDirectionCmd ) {
+    myAction->SetBeamDir(beamDirectionCmd->GetNew3VectorValue(newValue));
+  
+  } else if ( command == beamVertexCmd ) {
+    myAction->SetVtx(beamVertexCmd->GetNew3VectorValue(newValue));
+
+  } else if ( command == polarCmd ) {
+    myAction->SetOptPhotonPolar(polarCmd->GetNew3VectorValue(newValue));
+
+  }
+
+}//SetNewValue
+
+//--------------------------------------------------------------------------------------------
+
Index: /ELYSE/HEAD/source/ROOT/ELYSE_cint.h
===================================================================
--- /ELYSE/HEAD/source/ROOT/ELYSE_cint.h	(revision 286)
+++ /ELYSE/HEAD/source/ROOT/ELYSE_cint.h	(revision 286)
@@ -0,0 +1,14 @@
+
+#include <AIDA/IAnalysisFactory.h>
+#include <AIDA/ITreeFactory.h>
+#include <AIDA/ITree.h>
+#include <AIDA/IManagedObject.h>
+#include <AIDA/ITupleEntry.h>
+#include <AIDA/ITuple.h>
+
+//FIXME : CINT can't dynamic_cast, then we use the below function
+// if working with AIDA-3.2.1 to cast a ITupleEntry to ITuple.
+
+AIDA::ITuple* cast_ITuple(AIDA::ITupleEntry* aEntry) {
+  return dynamic_cast<AIDA::ITuple*>(aEntry);
+}
Index: /ELYSE/HEAD/source/ROOT/LinkDef.h
===================================================================
--- /ELYSE/HEAD/source/ROOT/LinkDef.h	(revision 286)
+++ /ELYSE/HEAD/source/ROOT/LinkDef.h	(revision 286)
@@ -0,0 +1,28 @@
+#ifdef __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+// To handle namespace :
+#pragma link C++ nestedclass;
+
+#pragma link C++ function AIDA_createAnalysisFactory;
+#pragma link C++ class AIDA::IAnalysisFactory-;
+#pragma link C++ class AIDA::ITreeFactory-;
+#pragma link C++ class AIDA::ITree-;
+#pragma link C++ class AIDA::IManagedObject-;
+#pragma link C++ class AIDA::ITuple-;
+#pragma link C++ class AIDA::ITupleEntry-;
+/*
+#pragma link C++ class AIDA::IHistogramFactory-;
+#pragma link C++ class AIDA::IBaseHistogram-;
+#pragma link C++ class AIDA::IHistogram1D-;
+#pragma link C++ class AIDA::ITupleFactory-;
+*/
+
+// If working with AIDA-3.2.1 :
+#pragma link C++ function cast_ITuple;
+
+#endif
+
Index: /ELYSE/HEAD/source/RunAction.cxx
===================================================================
--- /ELYSE/HEAD/source/RunAction.cxx	(revision 286)
+++ /ELYSE/HEAD/source/RunAction.cxx	(revision 286)
@@ -0,0 +1,41 @@
+#include "ELYSE/RunAction.hh"
+
+//Geant4
+#include "G4Run.hh"
+#include "G4Timer.hh"
+#include "G4ios.hh"
+
+//ELYSE
+#include "ELYSE/RunActionMessenger.hh"
+
+ELYSE::RunAction::RunAction() {
+  // Messenger to allow IO options
+  messenger = new RunActionMessenger(this);
+  
+  //Timer
+  timer = new G4Timer();
+  
+}//Ctor
+
+//----------------------------------------------------------------------------------
+
+ELYSE::RunAction::~RunAction() {
+  delete timer;
+
+}//Dtor
+
+//----------------------------------------------------------------------------------
+void ELYSE::RunAction::BeginOfRunAction(const G4Run* aRun) {
+  G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; 
+  timer->Start();
+}//BeginOfRunAction
+
+//----------------------------------------------------------------------------------
+
+void ELYSE::RunAction::EndOfRunAction(const G4Run* aRun) {
+  timer->Stop();
+  G4cout << "Total number of events = " << aRun->GetNumberOfEvent() 
+         << " " << *timer << G4endl;
+}//EndOfRunAction
+
+
Index: /ELYSE/HEAD/source/RunActionMessenger.cxx
===================================================================
--- /ELYSE/HEAD/source/RunActionMessenger.cxx	(revision 286)
+++ /ELYSE/HEAD/source/RunActionMessenger.cxx	(revision 286)
@@ -0,0 +1,33 @@
+#include "ELYSE/RunActionMessenger.hh"
+
+//Geant4
+#include "G4UIdirectory.hh"
+#include "G4UIcommand.hh"
+#include "G4UIparameter.hh"
+#include "globals.hh"
+
+//ELYSE
+#include "ELYSE/RunAction.hh"
+
+ELYSE::RunActionMessenger::RunActionMessenger(ELYSE::RunAction* ELYSERA)
+:ELYSERun(ELYSERA) { 
+  ELYSEIODir = new G4UIdirectory("/ELYSE/IO/");
+  ELYSEIODir->SetGuidance("Commands to select I/O options");
+  
+}//Ctor
+
+//----------------------------------------------------------------------------------
+
+ELYSE::RunActionMessenger::~RunActionMessenger() {
+
+  delete ELYSEIODir;
+
+}//Dtor
+
+//----------------------------------------------------------------------------------
+
+void ELYSE::RunActionMessenger::SetNewValue(G4UIcommand* /*command*/,
+					      G4String /*newValue*/) {    
+  
+
+}//SetNewValue
Index: /ELYSE/HEAD/source/StackingAction.cxx
===================================================================
--- /ELYSE/HEAD/source/StackingAction.cxx	(revision 286)
+++ /ELYSE/HEAD/source/StackingAction.cxx	(revision 286)
@@ -0,0 +1,61 @@
+#include "ELYSE/StackingAction.hh"
+
+//Geant4
+#include "G4Track.hh"
+#include "G4TrackStatus.hh"
+#include "G4VPhysicalVolume.hh"
+#include "Randomize.hh"
+#include "G4Navigator.hh"
+#include "G4TransportationManager.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTypes.hh"
+//#include "G4VProcess.hh"
+
+//ELYSE
+#include "ELYSE/DetectorConstruction.hh"
+
+ELYSE::StackingAction::StackingAction() : gammaCounter(0), stage(0) {}
+ELYSE::StackingAction::~StackingAction() {}
+
+G4ClassificationOfNewTrack ELYSE::StackingAction::ClassifyNewTrack (const G4Track* aTrack) {
+  G4ClassificationOfNewTrack classification    = fWaiting;
+  G4ParticleDefinition*      particleType      = aTrack->GetDefinition();
+  G4String                   particleName      = particleType->GetParticleName();
+  
+//   G4cout << "(JEC):StackingAction::ClassifyNewTrack stage (" << stage << ")" << particleName
+// 	<< G4endl;
+
+  //Not to track neutrinos
+  if(particleName == "nu_e"   || particleName == "anti_nu_e" || 
+     particleName == "nu_mu"  || particleName == "anti_nu_mu" || 
+     particleName == "nu_tau" || particleName == "anti_nu_tau"  ) return fKill;
+
+  //count number of secondary Optical Photons
+  if( particleName == "opticalphoton" ) {
+    if(aTrack->GetParentID()>0)
+    { // particle is secondary
+      gammaCounter++;
+    }
+  }
+  
+  return fUrgent;
+}//ClassifyNewTrack
+
+//-------------------------------------------------------------------------
+void ELYSE::StackingAction::NewStage() {
+  stage++;
+  G4cout << "Number of optical photons produces in this event : "
+         << gammaCounter << G4endl;
+
+}//NewStage
+
+//-------------------------------------------------------------------------
+
+void ELYSE::StackingAction::PrepareNewEvent() {
+  gammaCounter = 0;
+  stage = 0;
+}//PrepareNewEvent
+
+
+
+
Index: /ELYSE/HEAD/source/SteppingAction.cxx
===================================================================
--- /ELYSE/HEAD/source/SteppingAction.cxx	(revision 286)
+++ /ELYSE/HEAD/source/SteppingAction.cxx	(revision 286)
@@ -0,0 +1,177 @@
+#include "ELYSE/SteppingAction.hh"
+
+//GEANT 4
+#include "G4SteppingManager.hh"
+#include "G4SDManager.hh"
+#include "G4EventManager.hh"
+#include "G4ProcessManager.hh"
+#include "G4Track.hh"
+#include "G4Step.hh"
+#include "G4Event.hh"
+#include "G4StepPoint.hh"
+#include "G4TrackStatus.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTypes.hh"
+#include "G4OpBoundaryProcess.hh"
+
+//ELYSE
+#include "ELYSE/EventAction.hh"
+#include "ELYSE/TrackingAction.hh"
+#include "ELYSE/Trajectory.hh"
+#include "ELYSE/TrappingVolume.hh"
+#include "ELYSE/TrackInformation.hh"
+
+
+ELYSE::SteppingAction::SteppingAction() {
+}//Ctor
+
+//---------------------------------------------------------------------------------------------------
+
+ELYSE::SteppingAction::~SteppingAction() {
+}//Dtor
+
+//---------------------------------------------------------------------------------------------------
+void ELYSE::SteppingAction::UserSteppingAction(const G4Step * theStep){
+
+  G4Track* theTrack = theStep->GetTrack();
+
+  G4StepPoint* thePostPoint = theStep->GetPostStepPoint();
+  G4VPhysicalVolume* thePostPV = thePostPoint->GetPhysicalVolume();
+
+  G4OpBoundaryProcessStatus boundaryStatus=Undefined;
+  static G4OpBoundaryProcess* boundary=NULL;
+ 
+  if(!thePostPV){//out of world
+    return;}
+
+  G4ParticleDefinition* particleType = theTrack->GetDefinition();
+  G4String              particleName = particleType->GetParticleName();
+
+  //-----------only optical photons 
+
+  if(particleName == "opticalphoton") {
+
+    //------------find the boundary process only once
+    if( !boundary ) {
+      G4ProcessManager* pm = theStep->GetTrack()->GetDefinition()->GetProcessManager();
+      G4int nprocesses = pm->GetProcessListLength();
+      G4ProcessVector* pv = pm->GetProcessList();
+      G4int i;
+      for( i=0;i<nprocesses;i++){
+	if((*pv)[i]->GetProcessName()=="OpBoundary"){
+	  boundary = (G4OpBoundaryProcess*)(*pv)[i];  
+	  break;
+	}
+      }
+    }//set boundary once
+
+    //if the OpticalBoundary process is not registered for Optical Photon => FATAL error
+    if(!boundary) {
+      G4cout << "(JEC) UserSteppingAction: FATAL: NO OpBoundary FOUND" << G4endl;
+      exit(0);
+    }
+    
+    //------------Kill photons entering expHall
+    if(thePostPV->GetName()=="expHall") {
+      theTrack->SetTrackStatus(fStopAndKill);}
+
+    //-----------  
+
+    boundaryStatus = boundary->GetStatus();
+ 
+    // Check to see if the particle was actually at a boundary
+    // Otherwise the boundary status may not be valid
+    // Prior to Geant4.6.0-p1 this would not have been enough to check
+
+    if(thePostPoint->GetStepStatus()==fGeomBoundary) {
+
+//possible  G4OpBoundaryProcessStatus {  Undefined,
+//                                   FresnelRefraction, FresnelReflection,
+//                                   TotalInternalReflection,
+//                                   LambertianReflection, LobeReflection,
+//                                   SpikeReflection, BackScattering,
+//                                   Absorption, Detection, NotAtBoundary,
+//                                   SameMaterial, StepTooSmall, NoRINDEX}
+      switch(boundaryStatus){
+      case FresnelRefraction:
+	G4cout << "(JEC) Status of PostPoint: FresnelRefraction" << G4endl; break;
+      case FresnelReflection:
+	G4cout << "(JEC) Status of PostPoint: FresnelReflection" << G4endl; break;
+      case TotalInternalReflection:
+	G4cout << "(JEC) Status of PostPoint: TotalInternalReflection" << G4endl; break;
+       case LambertianReflection:
+	G4cout << "(JEC) Status of PostPoint: LambertianReflection" << G4endl; break;
+      case LobeReflection:
+	G4cout << "(JEC) Status of PostPoint: LobeReflection" << G4endl; break;
+      case SpikeReflection:
+	G4cout << "(JEC) Status of PostPoint: SpikeReflection" << G4endl; break;
+      case Absorption:
+	G4cout << "(JEC) Status of PostPoint: Absorption" << G4endl; break;
+     
+      case Detection: // Note, this assumes that the volume causing detection
+                      // is the interface between Tyvek and Air because it is the only one with
+	              // 100% efficiency
+	{
+	  // Triger sensitive detector manually since photon is
+	  // absorbed but status was Detection
+	  G4SDManager* SDman = G4SDManager::GetSDMpointer();
+	  //see DetectorConstruction::Construct for the PATH of the Sensitive Volume
+	  TrappingVolume* trapVol = 0;
+	  if(SDman) trapVol = (TrappingVolume*)SDman->FindSensitiveDetector("/ELYSE/TrappingVolume");
+
+	  if(trapVol) { 
+	    trapVol->ProcessHits_constStep(theStep,0);
+
+            //------------Save the hit into the track info
+
+            TrackInformation* aInfo = (TrackInformation*)theTrack->GetUserInformation();
+            G4cout << "(JEC) SteppingAction::opticalphoton detection = " 
+	           << " " << theTrack << " " << aInfo << G4endl; 
+            if(aInfo)aInfo->AddTrackStatusFlag(hitProduced);
+
+	  } else {
+	    G4cout << "(JEC) UserSteppingAction: FATAL: NO Sensitive Det. FOUND" << G4endl;
+	    exit(0);
+	  }
+	  break;
+	}//case Detection
+
+      case NotAtBoundary:
+	G4cout << "(JEC) Status of PostPoint: NotAtBoundary" << G4endl; break;
+      case SameMaterial:
+	G4cout << "(JEC) Status of PostPoint: SameMaterial" << G4endl; break;
+      case StepTooSmall:
+	G4cout << "(JEC) Status of PostPoint: StepTooSmall" << G4endl; break;
+      case NoRINDEX:
+	G4cout << "(JEC) Status of PostPoint: NoRINDEX" << G4endl; break;
+
+      default:
+	break;
+
+      }//eo switch on boundary values
+
+    }//test on GeomBoundary
+
+  }//Optical photon
+
+
+}//UserSteppingAction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: /ELYSE/HEAD/source/SteppingVerbose.cxx
===================================================================
--- /ELYSE/HEAD/source/SteppingVerbose.cxx	(revision 286)
+++ /ELYSE/HEAD/source/SteppingVerbose.cxx	(revision 286)
@@ -0,0 +1,153 @@
+#include "ELYSE/SteppingVerbose.hh"
+
+#include "G4SteppingManager.hh"
+#include "G4UnitsTable.hh"
+
+//---------------------------------------------------------
+ELYSE::SteppingVerbose::SteppingVerbose() {}
+
+//---------------------------------------------------------
+ELYSE::SteppingVerbose::~SteppingVerbose() {}
+ 
+//---------------------------------------------------------
+void ELYSE::SteppingVerbose::StepInfo() {
+  CopyState();
+  
+  G4int prec = G4cout.precision(3);
+
+//   G4cout << "(JEC)::  ELYSE::SteppingVerbose::StepInfo"
+// 	 << G4endl;
+
+  if( verboseLevel >= 1 ){
+    if( verboseLevel >= 4 ) VerboseTrack();
+    if( verboseLevel >= 3 ){
+      G4cout << G4endl;    
+      G4cout << std::setw( 5) << "#Step#"     << " "
+	     << std::setw( 6) << "X"          << "    "
+	     << std::setw( 6) << "Y"          << "    "  
+	     << std::setw( 6) << "Z"          << "    "
+	     << std::setw( 9) << "KineE"      << " "
+	     << std::setw( 9) << "dEStep"     << " "  
+	     << std::setw(10) << "StepLeng"     
+	     << std::setw(10) << "TrakLeng" 
+	     << std::setw(10) << "Volume"    << "  "
+	     << std::setw(10) << "Process"   << G4endl;	          
+    }
+
+    G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " "
+	<< std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
+	<< std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
+	<< std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
+	<< std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
+	<< std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
+	<< std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
+	<< std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
+	<< "  ";
+
+    // if( fStepStatus != fWorldBoundary){ 
+    if( fTrack->GetNextVolume() != 0 ) { 
+      G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
+    } else {
+      G4cout << std::setw(10) << "OutOfWorld";
+    }
+
+    if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){
+      G4cout << "  " 
+        << std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
+	                                ->GetProcessName();
+    } else {
+      G4cout << "   UserLimit";
+    }
+
+    G4cout << G4endl;
+
+    if( verboseLevel == 2 ){
+      G4int tN2ndariesTot = fN2ndariesAtRestDoIt +
+	                    fN2ndariesAlongStepDoIt +
+	                    fN2ndariesPostStepDoIt;
+      if(tN2ndariesTot>0){
+	G4cout << "    :----- List of 2ndaries - "
+	       << "#SpawnInStep=" << std::setw(3) << tN2ndariesTot 
+	       << "(Rest="  << std::setw(2) << fN2ndariesAtRestDoIt
+	       << ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt
+	       << ",Post="  << std::setw(2) << fN2ndariesPostStepDoIt
+	       << "), "
+	       << "#SpawnTotal=" << std::setw(3) << (*fSecondary).size()
+	       << " ---------------"
+	       << G4endl;
+
+	for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; 
+                        lp1<(*fSecondary).size(); lp1++){
+	  G4cout << "    : "
+		 << std::setw(6)
+		 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
+		 << std::setw(6)
+		 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
+		 << std::setw(6)
+		 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
+		 << std::setw(6)
+		 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
+		 << std::setw(10)
+		 << (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
+	  G4cout << G4endl;
+	}
+              
+	G4cout << "    :-----------------------------"
+	       << "----------------------------------"
+	       << "-- EndOf2ndaries Info ---------------"
+	       << G4endl;
+      }
+    }
+    
+  }
+  G4cout.precision(prec);
+}
+
+//---------------------------------------------------------
+void ELYSE::SteppingVerbose::TrackingStarted() {
+
+  CopyState();
+  
+//   G4cout << "(JEC) ELYSE::SteppingVerbose::TrackingStarted"
+// 	 <<  G4endl;
+  
+  G4int prec = G4cout.precision(3);
+  if( verboseLevel > 0 ){
+    
+//     G4cout << "(JEC)SteppingVerbose::TrackingStarted: dump processes of the particle ("
+// 	   <<  fTrack->GetDefinition()->GetParticleName()
+// 	   << ")"
+// 	   << G4endl;
+//     fTrack->GetDefinition()->GetProcessManager()->DumpInfo();
+
+    G4cout << std::setw( 5) << "Step#"      << " "
+           << std::setw( 6) << "X"          << "    "
+	   << std::setw( 6) << "Y"          << "    "  
+	   << std::setw( 6) << "Z"          << "    "
+	   << std::setw( 9) << "KineE"      << " "
+	   << std::setw( 9) << "dEStep"     << " "  
+	   << std::setw(10) << "StepLeng"  
+	   << std::setw(10) << "TrakLeng"
+	   << std::setw(10) << "Volume"     << "  "
+	   << std::setw(10) << "Process"    << G4endl;	     
+
+    G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " "
+	<< std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
+	<< std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
+	<< std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
+	<< std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
+	<< std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
+	<< std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
+	<< std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
+	<< "  ";
+
+    if(fTrack->GetNextVolume()){
+      G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
+    } else {
+      G4cout << std::setw(10) << "OutOfWorld";
+    }
+    G4cout  << "    initStep" << G4endl;
+  }
+  G4cout.precision(prec);
+}
+
Index: /ELYSE/HEAD/source/TrackInformation.cxx
===================================================================
--- /ELYSE/HEAD/source/TrackInformation.cxx	(revision 286)
+++ /ELYSE/HEAD/source/TrackInformation.cxx	(revision 286)
@@ -0,0 +1,34 @@
+#include "ELYSE/TrackInformation.hh"
+#include "G4ios.hh"
+
+namespace ELYSE {
+  G4Allocator<TrackInformation> aTrackInfoAllocator;
+}
+
+ELYSE::TrackInformation::TrackInformation(const G4Track*) {
+  saveit = false;
+  drawit = false;
+  status = active;
+}//Ctor
+
+
+//------------------------------------------------------------------------
+void ELYSE::TrackInformation::AddTrackStatusFlag(int s) {
+  if(s&active) { //track is now active
+    status&=~inactive; //remove any flags indicating it is inactive 
+  } else if(s&inactive) { //track is now inactive
+    status&=~active;
+  } else { //remove any flags indicating it is active
+  status|=s; //add new flags
+  }
+}//AddTrackStatusFlag
+
+//------------------------------------------------------------------------
+void ELYSE::TrackInformation::Print() const {
+  G4cout << "TrackInformation : [" << saveit 
+	 << "]-[" << drawit 
+	 << "]-[" << status << "]"
+	 << G4endl;
+}//Print
+
+
Index: /ELYSE/HEAD/source/TrackingAction.cxx
===================================================================
--- /ELYSE/HEAD/source/TrackingAction.cxx	(revision 286)
+++ /ELYSE/HEAD/source/TrackingAction.cxx	(revision 286)
@@ -0,0 +1,164 @@
+#include "ELYSE/TrackingAction.hh"
+
+//Geant4
+#include "G4ParticleTable.hh"
+#include "G4ParticleTypes.hh"
+#include "G4TrackingManager.hh"
+#include "G4Track.hh"
+#include "G4ios.hh"
+#include "G4VProcess.hh"
+
+//ELYSE
+#include "ELYSE/Trajectory.hh"
+#include "ELYSE/TrackInformation.hh"  
+#include "ELYSE/TrackingActionMessenger.hh"
+
+ELYSE::TrackingAction::TrackingAction() {
+  ProcessList.insert("eIoni") ;
+
+  G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
+  ParticleList.insert(particleTable->FindParticle("e-")->GetPDGEncoding());
+  ParticleList.insert(particleTable->FindParticle("e+")->GetPDGEncoding());
+  
+
+  // don't put gammas there or there'll be too many
+
+  messenger = new TrackingActionMessenger(this);
+
+}//Ctor
+
+//--------------------------------------------------------------------------------------------------
+
+ELYSE::TrackingAction::~TrackingAction(){
+  //JEC 24/1/06
+  delete messenger;
+  messenger = 0;
+}//Dtor
+
+//---------------------------------------------------------------------------------------------------
+
+void ELYSE::TrackingAction::PreUserTrackingAction(const G4Track* aTrack) {
+
+  G4ParticleDefinition*      particleType      = aTrack->GetDefinition();
+  G4String                   particleName      = particleType->GetParticleName();
+
+
+  fpTrackingManager->SetStoreTrajectory(false); //Track default: no custom or G4Trajectories
+
+  //-----------optical photon: store trajectory objects 
+
+  G4cout << "(JEC) PreUserTrackingAction (" << particleName 
+ 	 << ") and DrawOptical = " << drawOpticalPhoton
+ 	 << G4endl;
+
+  if(!drawOpticalPhoton && (particleName == "opticalphoton") )return;
+
+  if(drawOpticalPhoton && (particleName == "opticalphoton") ){
+
+    G4cout << "(JEC) PreUserTrackingAction: Optical--ParentID : " << aTrack->GetParentID()
+	   << G4endl; 
+
+
+     Trajectory* aTrajectory = new Trajectory(aTrack);  
+     fpTrackingManager->SetTrajectory(aTrajectory);
+     fpTrackingManager->SetStoreTrajectory(true); //(JEC) 14/12/05 keep it and delete it a posteriori 
+                                                  //               only if it has not produced  a hit    
+
+     TrackInformation* aInfo = new TrackInformation(aTrack);
+     fpTrackingManager->SetUserTrackInformation(aInfo);
+
+     return;
+
+  }//eo optical photon  
+
+  //-----------other particle: store trajectory objects
+
+  // A priori some tracks are worth to be saved
+  // is it a primary ?
+  // is the process  in the set ? 
+  // is the particle in the set ?
+  // is it a gamma with enough energy 
+  // due to lazy evaluation of the 'or' in C++ the order is important
+
+  const G4VProcess* creatorProcess = aTrack->GetCreatorProcess();
+  G4double thresholdTobeSaved = 0.*keV; //JEC FIXME put in the messenger
+
+  G4cout << "(JEC) PreUserTrackingAction (" << particleName 
+	 << " ParentID " << aTrack->GetParentID();
+  if (creatorProcess!=0) G4cout << ") and Process Name " << creatorProcess->GetProcessName();
+  G4cout << G4endl;
+
+
+  //JEC 20/2/06 debug: keep all particle for the moment
+//   if( ( aTrack->GetParentID() == 0 ) || 
+//       ( (creatorProcess!=0) && ProcessList.count(creatorProcess->GetProcessName()) ) || 
+//       ( ParticleList.count(particleType->GetPDGEncoding()) ) || 
+//       ( (particleType->GetPDGEncoding() == 22) && (aTrack->GetTotalEnergy() > thresholdTobeSaved) ) ) {
+
+      //G4cout <<"Pre Tracking::particle = " << particleName 
+      //       << " " << aTrack << G4endl;
+
+        Trajectory* aTrajectory = new Trajectory(aTrack);  
+        fpTrackingManager->SetTrajectory(aTrajectory);
+        fpTrackingManager->SetStoreTrajectory(true); 
+        return;
+
+//  }//eo particles
+
+
+
+}//PreUserTrackingAction
+
+//---------------------------------------------------------------------------------------------------
+
+void ELYSE::TrackingAction::PostUserTrackingAction(const G4Track* aTrack) {
+
+  //-----------Check StoreTrajectory for particle : true or false?
+
+  G4bool storetrajectory = fpTrackingManager->GetStoreTrajectory();
+  if(!storetrajectory)return;
+
+  G4ParticleDefinition*      particleType      = aTrack->GetDefinition();
+  G4String                   particleName      = particleType->GetParticleName();
+  
+  //-----------opticalphoton 
+  //---------------do not store it if it is not detected by the Tyvek
+
+  if ( particleName == "opticalphoton" ) { 
+
+       TrackInformation* aInfo = (TrackInformation*)(aTrack->GetUserInformation());
+
+       //G4cout <<"PostTracking::opticalphoton = " 
+       //       << particleName << " " << aTrack << " " << aInfo << G4endl;
+
+       //------------- produced or not a hit: if not remove and return
+
+       if ( !(aInfo->GetTrackStatus() & hitProduced) ) {
+	 //JEC temporary           fpTrackingManager->SetStoreTrajectory(false);
+           return; 
+       }
+
+  }//eo optical photon
+      
+  //-----------Get the trajectory from TrackingManager
+  //---------------and fill in 
+
+  //G4cout <<"PostTracking::particles = " 
+  //       << particleName << " " << aTrack << G4endl;
+
+  Trajectory *currentTrajectory = (Trajectory*)fpTrackingManager->GimmeTrajectory();
+
+  G4ThreeVector      currentPosition = aTrack->GetPosition();
+  G4VPhysicalVolume* currentVolume   = aTrack->GetVolume();
+    
+  currentTrajectory->SetStoppingPoint(currentPosition);
+  currentTrajectory->SetStoppingVolume(currentVolume);
+  currentTrajectory->SetSaveFlag(true); //For saving into Tuple (see EventAction) 
+
+  //JEC to be fixed the above flag should not be needed now
+
+}//PostUserTrackingAction
+
+
+
+
Index: /ELYSE/HEAD/source/TrackingActionMessenger.cxx
===================================================================
--- /ELYSE/HEAD/source/TrackingActionMessenger.cxx	(revision 286)
+++ /ELYSE/HEAD/source/TrackingActionMessenger.cxx	(revision 286)
@@ -0,0 +1,42 @@
+#include "ELYSE/TrackingActionMessenger.hh"
+
+//Geant4
+#include "G4UIdirectory.hh"
+#include "G4ios.hh"
+#include "globals.hh"
+#include "G4UIcmdWithABool.hh"
+
+//ELYSE
+#include "ELYSE/TrackingAction.hh"
+
+
+ELYSE::TrackingActionMessenger::TrackingActionMessenger(ELYSE::TrackingAction* ELYSETrackAction)
+:ELYSETrackingAction(ELYSETrackAction) {
+  
+  ELYSEDir = new G4UIdirectory("/ELYSE/tracking/drawing/");
+  ELYSEDir->SetGuidance("Commands to define particle drawing option");
+
+  drawOpticalPhotonCmd = new G4UIcmdWithABool("/ELYSE/tracking/drawing/optical",this);
+  drawOpticalPhotonCmd->SetGuidance("Available options: true false");
+  drawOpticalPhotonCmd->SetGuidance("Description:");
+  drawOpticalPhotonCmd->SetGuidance("true  = optical photons are stored to be drawn");
+  drawOpticalPhotonCmd->SetGuidance("false = no optical photons stored");
+  drawOpticalPhotonCmd->SetParameterName("drawOpticalPhoton",true);
+  drawOpticalPhotonCmd->SetDefaultValue(false);
+}//Ctor
+
+//---------------------------------------------------------------------------------
+
+ELYSE::TrackingActionMessenger::~TrackingActionMessenger() {
+  delete drawOpticalPhotonCmd;
+  delete ELYSEDir;
+}//Dtor
+
+//---------------------------------------------------------------------------------
+
+void ELYSE::TrackingActionMessenger::SetNewValue(G4UIcommand* command, G4String newValue) {
+  if (command == drawOpticalPhotonCmd) {
+    G4cout << "(JEC) TrackingActionMessenger Draw Optical Photon" << G4endl;
+    ELYSETrackingAction->SetDrawOpticalPhoton(StoB(newValue));
+  }
+}//SetNewValue
Index: /ELYSE/HEAD/source/Trajectory.cxx
===================================================================
--- /ELYSE/HEAD/source/Trajectory.cxx	(revision 286)
+++ /ELYSE/HEAD/source/Trajectory.cxx	(revision 286)
@@ -0,0 +1,224 @@
+#include "ELYSE/Trajectory.hh"
+
+//Geant4
+#include "G4TrajectoryPoint.hh"
+#include "G4ParticleTable.hh"
+#include "G4AttDefStore.hh"
+#include "G4AttDef.hh"
+#include "G4AttValue.hh"
+#include "G4UnitsTable.hh"
+#include "G4VProcess.hh"
+
+//std
+#include <sstream>
+
+namespace ELYSE {
+  G4Allocator<Trajectory> myTrajectoryAllocator;
+}
+
+ELYSE::Trajectory::Trajectory()
+  :  positionRecord(0), 
+     fTrackID(0), 
+     fParentID(0),
+     PDGEncoding(0), 
+     PDGCharge(0.0), 
+     ParticleName(""),
+     initialMomentum( G4ThreeVector() ),
+     SaveIt(false),
+     creatorProcess(""),
+     globalTime(0.0)
+{;}//Ctor
+
+//----------------------------------------------------------------------------------------------------
+
+ELYSE::Trajectory::Trajectory(const G4Track* aTrack) {
+
+  // Following is for the first trajectory point
+  positionRecord = new TrajectoryPointContainer();
+  positionRecord->push_back(new G4TrajectoryPoint(aTrack->GetPosition()));
+
+  fTrackID = aTrack->GetTrackID();
+  fParentID = aTrack->GetParentID();
+
+
+  G4ParticleDefinition * fpParticleDefinition = aTrack->GetDefinition();
+  PDGEncoding = fpParticleDefinition->GetPDGEncoding();
+  PDGCharge = fpParticleDefinition->GetPDGCharge();
+  ParticleName = fpParticleDefinition->GetParticleName();
+  initialMomentum = aTrack->GetMomentum();
+
+  stoppingPoint  = aTrack->GetPosition();
+  stoppingVolume = aTrack->GetVolume();
+
+  //SaveIt = false at creation time
+  SaveIt = false;
+
+  if (aTrack->GetCreatorProcess() != 0 ) {
+    const G4VProcess* tempproc = aTrack->GetCreatorProcess();
+    creatorProcess = tempproc->GetProcessName();
+  } else {
+    creatorProcess = "";
+  }
+
+  globalTime = aTrack->GetGlobalTime();
+} //Ctor
+
+//----------------------------------------------------------------------------------------------------
+
+ELYSE::Trajectory::Trajectory(ELYSE::Trajectory & right):G4VTrajectory() {
+
+  positionRecord = new TrajectoryPointContainer();
+  for(size_t i=0;i<right.positionRecord->size();i++) {
+    G4TrajectoryPoint* rightPoint = (G4TrajectoryPoint*)((*(right.positionRecord))[i]);
+    positionRecord->push_back(new G4TrajectoryPoint(*rightPoint));
+  }
+
+  fTrackID         = right.fTrackID;
+  fParentID        = right.fParentID;
+  PDGEncoding      = right.PDGEncoding;
+  PDGCharge        = right.PDGCharge;
+  ParticleName     = right.ParticleName;
+  initialMomentum  = right.initialMomentum;
+  stoppingPoint    = right.stoppingPoint;
+  stoppingVolume   = right.stoppingVolume;
+  SaveIt           = right.SaveIt;
+  creatorProcess   = right.creatorProcess;
+  globalTime       = right.globalTime;
+}//Ctor
+
+//----------------------------------------------------------------------------------------------------
+
+ELYSE::Trajectory::~Trajectory() {
+  //  positionRecord->clearAndDestroy();
+  size_t i;
+  for(i=0;i<positionRecord->size();i++){
+    delete  (*positionRecord)[i];
+  }
+  positionRecord->clear();
+  
+  delete positionRecord;
+} //Dtor
+
+//----------------------------------------------------------------------------------------------------
+
+
+void ELYSE::Trajectory::ShowTrajectory(std::ostream& os) const {
+  // Invoke the default implementation in G4VTrajectory...
+  G4VTrajectory::ShowTrajectory(os);
+  // ... or override with your own code here.
+}//ShowTrajectory
+
+//----------------------------------------------------------------------------------------------------
+
+void ELYSE::Trajectory::DrawTrajectory(G4int i_mode) const {
+  // Invoke the default implementation in G4VTrajectory...
+  G4VTrajectory::DrawTrajectory(i_mode);
+  // ... or override with your own code here.
+}//DrawTrajectory
+
+//----------------------------------------------------------------------------------------------------
+
+const std::map<G4String,G4AttDef>* ELYSE::Trajectory::GetAttDefs() const {
+  G4bool isNew;
+  std::map<G4String,G4AttDef>* store = G4AttDefStore::GetInstance("Trajectory",isNew);
+
+  if (isNew) {    
+    G4String ID("ID");
+    (*store)[ID] = G4AttDef(ID,"Track ID","Bookkeeping","","G4int");
+    
+    G4String PID("PID");
+    (*store)[PID] = G4AttDef(PID,"Parent ID","Bookkeeping","","G4int");
+    
+    G4String PN("PN");
+    (*store)[PN] = G4AttDef(PN,"Particle Name","Physics","","G4String");
+    
+    G4String Ch("Ch");
+    (*store)[Ch] = G4AttDef(Ch,"Charge","Physics","","G4double");
+    
+    G4String PDG("PDG");
+    (*store)[PDG] = G4AttDef(PDG,"PDG Encoding","Physics","","G4int");
+    
+    G4String IMom("IMom");
+    (*store)[IMom] = G4AttDef(IMom, "Momentum of track at start of trajectory",
+			      "Physics","","G4ThreeVector");
+    
+    G4String NTP("NTP");
+    (*store)[NTP] = G4AttDef(NTP,"No. of points","Physics","","G4int");
+    
+  }
+  return store;
+}//GetAttDefs
+
+//----------------------------------------------------------------------------------------------------
+
+std::vector<G4AttValue>* ELYSE::Trajectory::CreateAttValues() const {
+
+  //JEC 1/12/05 use sstream std library
+  std::ostringstream s;
+  
+  std::vector<G4AttValue>* values = new std::vector<G4AttValue>;
+  
+  s.str("");
+  s << fTrackID;
+  values->push_back(G4AttValue("ID",s.str(),""));
+  
+  s.str("");
+  s << fParentID;
+  values->push_back(G4AttValue("PID",s.str(),""));
+  
+  values->push_back(G4AttValue("PN",ParticleName,""));
+  
+  s.str("");
+  s << PDGCharge;
+  values->push_back(G4AttValue("Ch",s.str(),""));
+
+  s.str("");
+  s << PDGEncoding;
+  values->push_back(G4AttValue("PDG",s.str(),""));
+
+  s.str("");
+  s << G4BestUnit(initialMomentum,"Energy");
+  values->push_back(G4AttValue("IMom",s.str(),""));
+
+  s.str("");
+  s << GetPointEntries();
+  values->push_back(G4AttValue("NTP",s.str(),""));
+
+  return values;
+}//CreateAttValues
+
+//----------------------------------------------------------------------------------------------------
+
+void ELYSE::Trajectory::AppendStep(const G4Step* aStep) {
+  positionRecord->push_back( new G4TrajectoryPoint(aStep->GetPostStepPoint()->GetPosition() ));
+}//AppendStep
+
+//----------------------------------------------------------------------------------------------------
+
+
+G4ParticleDefinition* ELYSE::Trajectory::GetParticleDefinition() {
+  return (G4ParticleTable::GetParticleTable()->FindParticle(ParticleName));
+}//GetParticleDefinition
+
+//----------------------------------------------------------------------------------------------------
+
+
+void ELYSE::Trajectory::MergeTrajectory(G4VTrajectory* secondTrajectory) {
+  if(!secondTrajectory) return;
+
+  Trajectory* seco         = (Trajectory*)secondTrajectory;
+
+  stoppingPoint  = seco->stoppingPoint;
+  stoppingVolume = seco->stoppingVolume;
+  
+  G4int ent = seco->GetPointEntries();
+  for(G4int i=1;i<ent;i++) // initial point of the second trajectory should not be merged
+  { 
+    positionRecord->push_back((*(seco->positionRecord))[i]);
+    //    positionRecord->push_back(seco->positionRecord->removeAt(1));
+  }
+  delete (*seco->positionRecord)[0];
+  seco->positionRecord->clear();
+}//MergeTrajectory
+
+
Index: /ELYSE/HEAD/source/TrappVolHit.cxx
===================================================================
--- /ELYSE/HEAD/source/TrappVolHit.cxx	(revision 286)
+++ /ELYSE/HEAD/source/TrappVolHit.cxx	(revision 286)
@@ -0,0 +1,145 @@
+#include "ELYSE/TrappVolHit.hh"
+
+//Geant4
+#include "G4Box.hh"
+#include "G4AttDefStore.hh"
+#include "G4AttDef.hh"
+#include "G4AttValue.hh"
+#include "G4UnitsTable.hh"
+#include "G4VVisManager.hh"
+#include "G4ParticleTypes.hh"
+#include "G4Circle.hh"
+#include "G4VisAttributes.hh"
+#include "G4RotationMatrix.hh"
+
+//std
+#include <sstream>
+#include <iomanip>
+
+
+//JEC 10/1/06 introduce ELYSE
+namespace ELYSE {
+  G4Allocator<TrappVolHit> TrappVolHitAllocator;
+}
+
+ELYSE::TrappVolHit::TrappVolHit() :
+  time(0.),
+  eTot(0.),
+  position(),
+  trkId(0),
+  parentId(0),
+  pdg(0),
+  edep(0)
+{
+  //JEC very preliminary 15/2/07 for visualisation
+  virtualSolid = (G4CSGSolid*)(new G4Box("VolHit",0.1*mm,0.1*mm,0.1*mm));
+}//Ctor
+
+
+//-----------------------------------------------------------------------------------------
+
+ELYSE::TrappVolHit::~TrappVolHit() {
+  delete virtualSolid;
+}
+
+//-----------------------------------------------------------------------------------------
+
+const std::map<G4String,G4AttDef>* ELYSE::TrappVolHit::GetAttDefs() const {
+  G4bool isNew;
+  std::map<G4String,G4AttDef>* store = G4AttDefStore::GetInstance("TrappVolHit",isNew);
+
+  if (isNew) {    
+    
+    G4String VSolid("VSolid");
+    (*store)[VSolid] = G4AttDef(VSolid,"Virtual Solid attached to the Hit","Display","","G4VSolid*");
+    
+    G4String Position("Position");
+    (*store)[Position] = G4AttDef(Position,"3D Position","Physics","","G4ThreeVector");
+
+    G4String Time("Time");
+    (*store)[Time] = G4AttDef(Time,"Arrival Time","Physics","","G4double");
+
+    G4String TrkID("TrkID");
+    (*store)[TrkID] = G4AttDef(TrkID,"Track Id","Physics","","G4int");
+
+    G4String ParentID("ParentID");
+    (*store)[ParentID] = G4AttDef(ParentID,"Parent Track Id","Physics","","G4int");
+    
+    G4String PDG("PDG");
+    (*store)[PDG] = G4AttDef(PDG,"Track PDG Code","Physics","","G4int");
+
+    G4String Etot("Etot");
+    (*store)[Etot] = G4AttDef(Etot,"Track total energy","Physics","","G4double");
+
+    G4String Edep("Edep");
+    (*store)[Edep] = G4AttDef(Edep,"Deposit energy by the track","Physics","","G4double");
+    
+  }
+  return store;
+}//GetAttDefs
+
+//----------------------------------------------------------------------------------------------------
+
+std::vector<G4AttValue>* ELYSE::TrappVolHit::CreateAttValues() const {
+
+  std::ostringstream s;
+  
+  std::vector<G4AttValue>* values = new std::vector<G4AttValue>;
+
+  s.str("");
+  s << virtualSolid;
+  values->push_back(G4AttValue("VSolid",s.str(),""));
+  
+  s.str("");
+  s << &position;
+  values->push_back(G4AttValue("Position",s.str(),""));
+    
+  s.str("");
+  s << time;
+  values->push_back(G4AttValue("Time",s.str(),""));
+
+  s.str("");
+  s << trkId;
+  values->push_back(G4AttValue("TrkID",s.str(),""));
+
+  s.str("");
+  s << parentId;
+  values->push_back(G4AttValue("ParentID",s.str(),""));
+
+  s.str("");
+  s << pdg;
+  values->push_back(G4AttValue("PDG",s.str(),""));
+
+  s.str("");
+  s << eTot;
+  values->push_back(G4AttValue("Etot",s.str(),""));
+
+  s.str("");
+  s << edep;
+  values->push_back(G4AttValue("Edep",s.str(),""));
+
+  return values;
+}//CreateAttValues
+
+//-----------------------------------------------------------------------------------------
+
+void ELYSE::TrappVolHit::Print() {
+
+  G4cout.setf(std::ios::fixed);
+  G4cout.precision(2);
+
+  G4cout << " -------> Track ["  << trkId << "]"
+	 << " PDG: "      << pdg
+	 << " Parent: "   << parentId
+	 << " Time: "     << time
+	 << " Etot "      << eTot
+	 << " Edep: "     << edep
+	 << " \n Position (" 
+	 <<  position.x() << " , "
+	 <<  position.y() << " , "
+	 <<  position.z() << ")\n "
+	 << G4endl;
+  }//Print
+
+
+
Index: /ELYSE/HEAD/source/TrappingVolume.cxx
===================================================================
--- /ELYSE/HEAD/source/TrappingVolume.cxx	(revision 286)
+++ /ELYSE/HEAD/source/TrappingVolume.cxx	(revision 286)
@@ -0,0 +1,109 @@
+#include "ELYSE/TrappingVolume.hh"
+
+//Geant4
+#include "G4ParticleTypes.hh"
+#include "G4HCofThisEvent.hh"
+#include "G4TouchableHistory.hh"
+#include "G4Step.hh"
+#include "G4ThreeVector.hh"
+#include "G4SDManager.hh"
+#include "G4ios.hh"
+
+//std
+#include <sstream>
+#include <stdio.h>
+
+//ELYSE
+#include "ELYSE/DetectorConstruction.hh"
+
+ELYSE::TrappingVolume::TrappingVolume(G4String name, 
+				      DetectorConstruction* aDetConstruction) 
+:G4VSensitiveDetector(name),ELYSEDetConstruction(aDetConstruction) {
+  
+  G4String HCname;
+  collectionName.insert(HCname="TrappingVolume");
+
+  HCID = -1;
+  
+}//Ctor
+
+//-----------------------------------------------------------------------------------------
+
+ELYSE::TrappingVolume::~TrappingVolume() {
+}//Dtor
+
+//-----------------------------------------------------------------------------------------
+
+
+void ELYSE::TrappingVolume::Initialize(G4HCofThisEvent* HCE) {
+  // Make a new hits collection.  With the name we set in the constructor
+  hitsCollection = new TrappVolHitsCollection(SensitiveDetectorName,collectionName[0]); 
+    
+  // Get the Id of the "0th" collection
+  if (HCID<0) HCID =  GetCollectionID(0); //JEC FIXME: is it necessary?
+  
+  // Add it to the Hit collection of this event.
+  HCE->AddHitsCollection( HCID, hitsCollection );  //JEC FIXME: is it necessary?
+
+}//Initialize
+
+//-----------------------------------------------------------------------------------------
+G4bool ELYSE::TrappingVolume::ProcessHits(G4Step* aStep, G4TouchableHistory* aTH) {
+  return ProcessHits_constStep(aStep,aTH);
+}
+//-----------------------------------------------------------------------------------------
+
+G4bool ELYSE::TrappingVolume::ProcessHits_constStep(const G4Step* aStep, G4TouchableHistory*) {
+
+  //  G4ParticleDefinition *particleDefinition = aStep->GetTrack()->GetDefinition();
+
+//   if ( particleDefinition != G4OpticalPhoton::OpticalPhotonDefinition()) return false;
+//   if ( aStep->GetTrack()->GetTrackStatus() == fAlive ) return false;
+
+
+  TrappVolHit* newHit = new TrappVolHit();
+  
+  G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
+  G4Track*     theTrack     = aStep->GetTrack();
+
+
+  //related to the StepPoint or the Track????
+  newHit->SetTime(preStepPoint->GetGlobalTime());
+  newHit->SetEtot(preStepPoint->GetTotalEnergy());
+  newHit->SetCoordinates(preStepPoint->GetPosition());
+  newHit->SetTrkId(theTrack->GetTrackID());
+  newHit->SetParentId(theTrack->GetParentID());
+  newHit->SetPDGEncoding(theTrack->GetDefinition()->GetPDGEncoding()); 
+  newHit->SetEdep(aStep->GetTotalEnergyDeposit());
+
+  
+  G4cout << "New Hit \n"  
+	 << "Global Time: " << preStepPoint->GetGlobalTime() << " =?= " 
+	 << theTrack->GetGlobalTime() 
+	 << "\n"
+	 << "TotalEnergy: " << preStepPoint->GetTotalEnergy()  << " =?= " 
+	 << theTrack->GetTotalEnergy()
+	 << "\n"
+	 << "Position: " << preStepPoint->GetPosition() << " =?= " 
+	 <<  theTrack->GetPosition() 
+	 << G4endl;
+
+
+  //store the hit
+  hitsCollection->insert( newHit ); 
+
+  return true;
+}//ProcessHits
+
+//-----------------------------------------------------------------------------------------
+
+void ELYSE::TrappingVolume::EndOfEvent(G4HCofThisEvent*) {
+  if (verboseLevel>0) { 
+    G4int numHits = hitsCollection->entries();
+
+    G4cout << "There are " << numHits << " hits in the WC: " << G4endl;
+    for (G4int i=0; i < numHits; i++) 
+      (*hitsCollection)[i]->Print();
+  } 
+}//EndOfEvent
+
