]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
Integration of the PADDER algorithm as a simple SALOME plugin.
authorboulant <boulant>
Fri, 4 Nov 2011 17:20:15 +0000 (17:20 +0000)
committerboulant <boulant>
Fri, 4 Nov 2011 17:20:15 +0000 (17:20 +0000)
The plugin contains:
- a SALOME component (C++)
- a graphical interface (python)
- a plugin_manager.py file for integration

The compilation of this package is NOT activated yet because some feature still not work correctly (next week I hope).

68 files changed:
adm_local/unix/make_common_starter.am
configure.ac
src/SMESH_PY/Makefile.am
src/Tools/Makefile.am
src/Tools/padder/Makefile.am [new file with mode: 0644]
src/Tools/padder/README.txt [new file with mode: 0644]
src/Tools/padder/meshjob/Makefile.am [new file with mode: 0644]
src/Tools/padder/meshjob/idl/MESHJOB.idl [new file with mode: 0644]
src/Tools/padder/meshjob/idl/Makefile.am [new file with mode: 0644]
src/Tools/padder/meshjob/impl/Makefile.am [new file with mode: 0644]
src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx [new file with mode: 0644]
src/Tools/padder/meshjob/impl/MeshJobManager_i.hxx [new file with mode: 0644]
src/Tools/padder/meshjob/impl/testhelper.hxx [new file with mode: 0644]
src/Tools/padder/resources/Makefile.am [new file with mode: 0644]
src/Tools/padder/resources/SPADDERCatalog.xml [new file with mode: 0644]
src/Tools/padder/resources/appligen/CatalogResources.xml [new file with mode: 0644]
src/Tools/padder/resources/appligen/Makefile.am [new file with mode: 0644]
src/Tools/padder/resources/appligen/README.txt [new file with mode: 0644]
src/Tools/padder/resources/appligen/SalomeApp.xml [new file with mode: 0644]
src/Tools/padder/resources/appligen/appli-splashscreen.jpg [new file with mode: 0644]
src/Tools/padder/resources/appligen/appligen.sh.in [new file with mode: 0755]
src/Tools/padder/resources/appligen/config_appli.xml.in [new file with mode: 0644]
src/Tools/padder/resources/appligen/genenv.sh [new file with mode: 0755]
src/Tools/padder/resources/padderexe/Makefile.am [new file with mode: 0644]
src/Tools/padder/resources/padderexe/buildparticules.py [new file with mode: 0755]
src/Tools/padder/resources/padderexe/envPadder.sh.in [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med2/REF_FinalEDMesh.med [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med2/REF_spheres.dat.xyz [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med2/concrete.med [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med2/data.txt [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med2/ferraill.med [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med2/ferrtran.med [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med2/padder.exe [new file with mode: 0755]
src/Tools/padder/resources/padderexe/med3/concrete.med [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med3/data.txt [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med3/ferraill.med [new file with mode: 0644]
src/Tools/padder/resources/padderexe/med3/padder.exe [new file with mode: 0755]
src/Tools/padder/resources/padderexe/padder.sh [new file with mode: 0755]
src/Tools/padder/resources/padderexe/particules.png [new file with mode: 0644]
src/Tools/padder/spadderpy/Makefile.am [new file with mode: 0644]
src/Tools/padder/spadderpy/__init__.py [new file with mode: 0644]
src/Tools/padder/spadderpy/configreader.py [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/Makefile.am [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/__init__.py [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/addinput.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/clear.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/compute.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/concrete.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/deleteinput.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/input.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/inputdata.py [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/inputdialog.py [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/inputframe.ui [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/parameters.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/plugindialog.py [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/plugindialog.ui [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/publish.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/refresh.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/select.png [new file with mode: 0644]
src/Tools/padder/spadderpy/gui/steelbar.png [new file with mode: 0644]
src/Tools/padder/spadderpy/padder.cfg.in [new file with mode: 0644]
src/Tools/padder/spadderpy/plugin/Makefile.am [new file with mode: 0644]
src/Tools/padder/spadderpy/plugin/envPlugins.sh.in [new file with mode: 0644]
src/Tools/padder/spadderpy/plugin/salome_plugins.py [new file with mode: 0755]
src/Tools/padder/unittests/Makefile.am [new file with mode: 0644]
src/Tools/padder/unittests/__init__.py [new file with mode: 0644]
src/Tools/padder/unittests/autotest.sh.in [new file with mode: 0644]
src/Tools/padder/unittests/usecase_meshJobManager.py [new file with mode: 0644]

index 77936ec88f900e083386e3e0a13d8ac5fdf1fc99..b772912ec248bc1cd0580770f3b86453221ce194 100644 (file)
@@ -39,6 +39,12 @@ salomescriptdir    = $(bindir)
 salomepythondir    = $(pythondir)/salome
 salomepyexecdir    = $(pyexecdir)/salome
 
+# Root directory of the python packages of SMESH
+smeshpypkgdir      = $(salomepythondir)/salome/smesh
+
+# Directory for installing SALOME plugins files
+salomepluginsdir    = $(prefix)/plugins
+
 # Directory for installing idl files
 salomeidldir       = $(prefix)/idl/salome
 
index f4ab8708d81fc0bf16e7a0c2791da68e32991337..e3d0d097c47fda708f11379d8aa3776b66925d0f 100644 (file)
@@ -301,6 +301,10 @@ if test "${gui_ok}" = "yes"; then
     echo
 
     CHECK_QT
+    AC_PATH_PROG(PYUIC, pyuic4)
+    AC_SUBST(PYUIC)
+    AC_PATH_PROG(PYRCC, pyrcc4)
+    AC_SUBST(PYRCC)
 
     echo
     echo ---------------------------------------------
@@ -366,6 +370,14 @@ echo ---------------------------------------------
 echo
 CHECK_SPHINX
 
+echo
+echo ---------------------------------------------
+echo testing libxm
+echo ---------------------------------------------
+echo
+dnl Check the libxml that will be required to use the SALOME launcher
+CHECK_LIBXML
+
 echo
 echo ---------------------------------------------
 echo Testing Kernel
@@ -520,6 +532,23 @@ AC_OUTPUT([ \
   src/SMESH_PY/Makefile \
   src/Tools/Makefile \
   src/Tools/MeshCut/Makefile \
+  src/Tools/padder/Makefile \
+  src/Tools/padder/meshjob/Makefile \
+  src/Tools/padder/meshjob/idl/Makefile \
+  src/Tools/padder/meshjob/impl/Makefile \
+  src/Tools/padder/spadderpy/Makefile \
+  src/Tools/padder/spadderpy/padder.cfg \
+  src/Tools/padder/spadderpy/gui/Makefile \
+  src/Tools/padder/spadderpy/plugin/Makefile \
+  src/Tools/padder/spadderpy/plugin/envPlugins.sh \
+  src/Tools/padder/resources/Makefile \
+  src/Tools/padder/resources/appligen/Makefile \
+  src/Tools/padder/resources/appligen/appligen.sh \
+  src/Tools/padder/resources/appligen/config_appli.xml \
+  src/Tools/padder/resources/padderexe/Makefile \
+  src/Tools/padder/resources/padderexe/envPadder.sh \
+  src/Tools/padder/unittests/Makefile \
+  src/Tools/padder/unittests/autotest.sh \
   resources/Makefile \
   resources/SMESHCatalog.xml \
   resources/SalomeApp.xml \
index 006b1cc28be3c10b06e29ef1857ef54534016d95..57539c77a130f8886bbca4c4a264d55579f40fbd 100644 (file)
@@ -19,7 +19,7 @@
 
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
-salomepypkgdir = $(salomepythondir)/salome/smesh
+salomepypkgdir = $(smeshpypkgdir)
 salomepypkg_PYTHON = \
        __init__.py        \
        smeshstudytools.py
index 92083da94305bd73dcd461ab1da1304c8ea3d124..08a35c7c4835675206e33792804fd43a87ff73a5 100644 (file)
@@ -25,6 +25,7 @@
 #
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
+#SUBDIRS = MeshCut padder
 SUBDIRS = MeshCut
 
 DIST_SUBDIRS =         MeshCut
diff --git a/src/Tools/padder/Makefile.am b/src/Tools/padder/Makefile.am
new file mode 100644 (file)
index 0000000..95b82b7
--- /dev/null
@@ -0,0 +1 @@
+SUBDIRS = meshjob spadderpy unittests resources
diff --git a/src/Tools/padder/README.txt b/src/Tools/padder/README.txt
new file mode 100644 (file)
index 0000000..2ecebb3
--- /dev/null
@@ -0,0 +1,38 @@
+
+
+PADDER overview
+---------------
+
+PADDER is an algorithm that creates a set of particules called a "discrete mesh".
+The particules are characterized by a location in space and a weight that can be considered
+as the radius of a sphere whose center is the location of the particule.
+
+Discrete meshes are typically used to modelize civil components in rapid dynamic
+computation problems (seisms, chocs). These components consists in concrete parts
+embedding steal bares for reinforcement. These parts are input to the algorithm
+as standard finite elements meshes. The cells of theses meshes drive the location
+and sizing of particules.
+
+In the med representation, a discrete mesh is described as MED_BALL elements.
+A MED_BALL element is defined by a location and a radius. 
+
+PADDER plugin
+-------------
+
+This directory provides SMESH with a SALOME plugin that can be used to define
+and then run a PADDER execution. The inputs are the FE meshes that describe
+the concrete parts and steal bares parts. The output is a discrete mesh
+containing MED_BALL elements.
+
+A graphical interface is used to drive the user for data input and computation
+supervision (the algorithm may last more than an hour long), and finally the publication
+of the resulting mesh (when succeed) in the SALOME study.
+
+Technically speaking, the PADDER plugin consists in:
+
+* a SALOME component MESHJOB that do the computation job (wrapper to the padder executable program)
+* a graphical interface composed of two dialog windows
+* a configuration mechanism (data file and read function), to define
+  the computation resource (a SALOME resource + the software configuration of the padder executable
+  program on this resource)
+* an integration file (salomeplugin.py)
diff --git a/src/Tools/padder/meshjob/Makefile.am b/src/Tools/padder/meshjob/Makefile.am
new file mode 100644 (file)
index 0000000..26bf6ee
--- /dev/null
@@ -0,0 +1 @@
+SUBDIRS = idl impl
diff --git a/src/Tools/padder/meshjob/idl/MESHJOB.idl b/src/Tools/padder/meshjob/idl/MESHJOB.idl
new file mode 100644 (file)
index 0000000..dc42318
--- /dev/null
@@ -0,0 +1,126 @@
+//  Copyright (C) 2011  CEA/DEN, EDF R&D
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// Authors : Guillaume Boulant (EDF) - 31/01/2011
+
+#ifndef _MESHJOB_IDL_
+#define _MESHJOB_IDL_
+
+#include "SALOME_Exception.idl"
+#include "SALOME_Component.idl"
+
+//
+// This interface is used for mesh job submission from within the
+// SALOME plugin for PADDER.
+//
+module MESHJOB
+{
+
+  //
+  // Structure to transmit the parameters requiered for the job to run
+  // the executable program on the target resource. See configure
+  // service.
+  //
+  struct ConfigParameter {
+    string resname; // The name of the SALOME resource to be used
+    string binpath; // The path of the executable program on this resource
+    string envpath; // The path of the environment file on this resource
+  };
+
+  //
+  // This set of specification defines the data structure used to
+  // initialize a job on a specific resource, then supervise the job
+  // and finally retrieve the result data.
+  //
+
+  // This defines the set of temporary folders used by the jobmanager
+  // when executing a job (may depends on the job).
+  struct MeshJobPaths
+  {
+    string local_inputdir;
+    string local_resultdir;
+    string remote_workdir;
+  };
+
+  // This defines the possible types for a job parameter
+  enum FileType {MED_CONCRETE, MED_STEELBAR};
+
+  // This defines a single parameter for the job initialization (a med file)
+  struct MeshJobParameter
+  {
+    string file_name;
+    FileType file_type;
+    string group_name;
+  };
+  
+  // This defines a set of parameters for the job initialization
+  typedef sequence<MESHJOB::MeshJobParameter> MeshJobParameterList;
+
+  // This defines the result data of a job 
+  struct MeshJobResults
+  {
+    string results_dirname;
+    string outputmesh_filename;
+    string status;
+  };
+
+  // This defines the possible states of a job
+  enum MeshJobState {CREATED, IN_PROCESS, QUEUED, RUNNING, PAUSED, FINISHED, ERROR};
+
+  //
+  // This interface defines the computation services of the component
+  //
+
+  interface MeshJobManager: Engines::EngineComponent
+  {
+
+     /*! Add a resource configuration, identified by the string
+         configId and characterized by the parameters in
+         configParameter */
+    boolean configure(in string configId, in MESHJOB::ConfigParameter configParameter)
+      raises (SALOME::SALOME_Exception);
+
+    /*! Initialize a smesh computation job and return the job identifier */
+    long    initialize(in MESHJOB::MeshJobParameterList meshJobParameterList, in string configId)
+      raises (SALOME::SALOME_Exception);
+
+    /*! Submit the job execution and return true if submission is OK */
+    boolean start(in long jobId)
+      raises (SALOME::SALOME_Exception);
+
+    /*! Request the launch manager for the state of the specified job */
+    string getState(in long jobId)
+      raises (SALOME::SALOME_Exception);
+
+    /*! Request the launch manager for downloading the results */
+    MeshJobResults finalize(in long jobid)
+      raises (SALOME::SALOME_Exception);
+
+    /*! Clean all data associated to this job and remove the job from the launch manager */
+    boolean clean(in long jobId)
+      raises (SALOME::SALOME_Exception);
+
+    /*! Returns the set of temporary folders used by the job instance */
+    MeshJobPaths getPaths(in long jobId)
+      raises (SALOME::SALOME_Exception);
+
+  };
+
+};
+
+#endif // _MESHJOB_IDL_
diff --git a/src/Tools/padder/meshjob/idl/Makefile.am b/src/Tools/padder/meshjob/idl/Makefile.am
new file mode 100644 (file)
index 0000000..3c2ebc7
--- /dev/null
@@ -0,0 +1,85 @@
+# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# This Makefile is responsible of generating the client and server
+# implementation of IDL interfaces for both C++ and python usage.
+# The building process of the C++ files is in charge of each source
+# package and then is not manage here.
+#
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+BUILT_SOURCES = \
+       MESHJOBSK.cc
+
+IDL_FILES = \
+       MESHJOB.idl
+
+salomeidl_DATA = $(IDL_FILES) 
+
+lib_LTLIBRARIES = libSalomeIDLSPADDER.la
+libSalomeIDLSPADDER_la_SOURCES      =
+nodist_libSalomeIDLSPADDER_la_SOURCES = $(BUILT_SOURCES)
+nodist_salomeinclude_HEADERS= $(IDL_FILES:%idl=%hh)
+
+OMNIORB_CXXFLAGS=@OMNIORB_CXXFLAGS@ @OMNIORB_INCLUDES@
+OMNIORB_LIBS=@OMNIORB_LIBS@
+
+libSalomeIDLSPADDER_la_CXXFLAGS = \
+       $(KERNEL_CXXFLAGS) \
+       $(OMNIORB_CXXFLAGS) \
+       -I.
+
+libSalomeIDLSPADDER_la_LIBADD     = \
+       $(KERNEL_LDFLAGS) -lSalomeIDLKernel \
+       $(OMNIORB_LIBS)
+
+
+# These variables defines the building process of CORBA files
+IDLCXXFLAGS = \
+        -bcxx -I. \
+       @OMNIORB_IDLCXXFLAGS@ \
+        -I$(KERNEL_ROOT_DIR)/idl/salome
+
+IDLPYFLAGS  = \
+       -I. \
+       @OMNIORB_IDLPYFLAGS@ \
+        -I$(KERNEL_ROOT_DIR)/idl/salome
+
+##########################################################
+SUFFIXES = .idl .hh SK.cc
+
+%SK.cc %.hh : %.idl
+       $(OMNIORB_IDL) $(IDLCXXFLAGS) $<
+
+%_idl.py : %.idl
+       $(OMNIORB_IDL) $(IDLPYFLAGS)  $<
+
+CLEANFILES = *.hh *SK.cc *.py *.hxx *.cxx
+
+EXTRA_DIST += $(IDL_FILES)
+
+install-data-local: $(IDL_FILES)
+       $(INSTALL) -d  $(DESTDIR)$(salomepythondir)
+       ls $^ | while read file; do \
+       $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \
+       done
+
+uninstall-local:
+       rm -rf $(DESTDIR)$(salomepythondir)/*
+
diff --git a/src/Tools/padder/meshjob/impl/Makefile.am b/src/Tools/padder/meshjob/impl/Makefile.am
new file mode 100644 (file)
index 0000000..7ef6c2e
--- /dev/null
@@ -0,0 +1,40 @@
+
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+AM_CFLAGS=$(SALOME_INCLUDES) -fexceptions
+
+lib_LTLIBRARIES= libMeshJobManagerEngine.la
+
+salomeinclude_HEADERS= \
+       MeshJobManager_i.hxx
+
+
+# =============================================================
+# Definition of MeshJobManagerEngine construction
+# =============================================================
+libMeshJobManagerEngine_la_SOURCES  = \
+       MeshJobManager_i.cxx
+
+
+LIBXML_INCLUDES=@LIBXML_INCLUDES@
+LIBXML_LIBS=@LIBXML_LIBS@
+KERNEL_CXXFLAGS=@KERNEL_CXXFLAGS@
+#KERNEL_LIBS=@KERNEL_LDFLAGS@ -lSalomeContainer -lOpUtil -lSalomeDSCContainer -lSalomeDSCSuperv -lSalomeDatastream -lSalomeDSCSupervBasic -lCalciumC -lSalomeKernelHelpers
+KERNEL_LIBS = \
+       @KERNEL_LDFLAGS@ \
+       -lSalomeContainer
+
+# -lSalomeLauncher -lSalomeKernelHelpers \
+#      -lSalomeGenericObj -lSalomeIDLKernel
+
+OMNIORB_CXXFLAGS=
+
+libMeshJobManagerEngine_la_CXXFLAGS = \
+       -I$(builddir)/../idl $(KERNEL_CXXFLAGS) \
+       @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \
+       $(LIBXML_INCLUDES)
+
+libMeshJobManagerEngine_la_LDFLAGS   = \
+       $(builddir)/../idl/libSalomeIDLSPADDER.la \
+       $(KERNEL_LIBS) \
+       $(LIBXML_LIBS)
diff --git a/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx b/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx
new file mode 100644 (file)
index 0000000..b2917df
--- /dev/null
@@ -0,0 +1,571 @@
+//  Copyright (C) 2011  EDF R&D
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// Authors : Guillaume Boulant (EDF) - 01/03/2011
+
+#include "MeshJobManager_i.hxx"
+
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SALOME_Exception)
+
+#include "Basics_Utils.hxx"         // For standard logging
+#include "SALOME_KernelServices.hxx"   // For CORBA logging
+#undef LOG
+#define LOG STDLOG
+
+#include "testhelper.hxx"
+
+//
+// ====================================================================
+// General purpose helper functions (to put elsewhere at least)
+// ====================================================================
+//
+#include <sys/time.h>
+/*!
+ * This function must be used to associate a datetime tag to a job
+ */
+static long timetag() {
+  timeval tv;
+  gettimeofday(&tv,0);
+  long tag = tv.tv_usec + tv.tv_sec*1000000;
+  return tag;
+}
+
+/*!
+ * This function returns true if the string text starts with the string
+ * token.
+ */
+static bool myStartsWith(const std::string& text,const std::string& token){    
+  if(text.length() < token.length())
+    return false;
+  return (text.compare(0, token.length(), token) == 0);
+}
+
+//
+// ====================================================================
+// Constructor/Destructor
+// ====================================================================
+//
+MeshJobManager_i::MeshJobManager_i(CORBA::ORB_ptr orb,
+                                   PortableServer::POA_ptr poa,
+                                   PortableServer::ObjectId * contId,
+                                   const char *instanceName,
+                                   const char *interfaceName)
+  : Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
+{
+  LOG("Activating MESHJOB::MeshJobManager object");
+  _thisObj = this ;
+  _id = _poa->activate_object(_thisObj);
+
+  _salomeLauncher   = KERNEL::getSalomeLauncher();
+  if(CORBA::is_nil(_salomeLauncher)){
+    LOG("The SALOME launcher can't be reached ==> STOP");
+    throw KERNEL::createSalomeException("SALOME launcher can't be reached");
+  }
+
+  _resourcesManager = KERNEL::getResourcesManager();
+  if(CORBA::is_nil(_resourcesManager)){
+    LOG("The SALOME resource manager can't be reached ==> STOP");
+    throw KERNEL::createSalomeException("The SALOME resource manager can't be reached");
+  }
+}
+
+MeshJobManager_i::~MeshJobManager_i() {
+  LOG("MeshJobManager_i::~MeshJobManager_i()");
+}
+
+//
+// ====================================================================
+// Helper functions to deals with the local and remote file systems
+// ====================================================================
+//
+#include <fstream>     // to get the file streams
+#include <sys/stat.h>  // to get mkdir
+#include <sys/types.h> // to get mkdir options
+#include <unistd.h>    // to get basename
+#include <stdlib.h>    // to get system and getenv
+
+static std::string OUTPUTFILE("output.med");
+static std::string DATAFILE("data.txt");
+static std::string SCRIPTFILE("padder.sh");
+static std::string SEPARATOR(" ");
+
+static std::string USER(getenv("USER"));
+static std::string LOCAL_INPUTDIR("/tmp/spadder.local.inputdir."+USER);
+static std::string LOCAL_RESULTDIR("/tmp/spadder.local.resultdir."+USER);
+static std::string REMOTE_WORKDIR("/tmp/spadder.remote.workdir."+USER);
+
+/*!
+ * This function creates the padder text input file containing the
+ * input data (list of filenames and groupnames) and returns the path
+ * of the created file. This function is the one that knows the format
+ * of the padder input file. If the input file format changes, then
+ * this function (and only this one) should be updated.
+ */
+const char * MeshJobManager_i::_writeDataFile(std::vector<MESHJOB::MeshJobParameter> listConcreteMesh,
+                                              std::vector<MESHJOB::MeshJobParameter> listSteelBarMesh) {
+
+  mkdir(LOCAL_INPUTDIR.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+
+  // Make it static so that it's allocated once (constant name)
+  static std::string * dataFilename = new std::string(LOCAL_INPUTDIR+"/"+DATAFILE);
+  std::ofstream dataFile(dataFilename->c_str());
+  
+  // We first specify the concrete mesh data (filename and groupname)
+  std::string line;
+  line = std::string(basename(listConcreteMesh[0].file_name)) + " " + std::string(listConcreteMesh[0].group_name);
+  dataFile << line.c_str() << std::endl;
+  // Note that we use here the basename because the files are supposed
+  // to be copied in the REMOTE_WORKDIR for execution.
+  
+  // The, we can specify the steelbar mesh data, starting by the
+  // number of meshes
+  int nbSteelBarMesh=listSteelBarMesh.size();
+  line = std::string("nbSteelbarMesh") + SEPARATOR + ToString(nbSteelBarMesh);
+  dataFile << line.c_str() << std::endl;
+  for (int i=0; i<nbSteelBarMesh; i++) {
+    line = std::string(basename(listSteelBarMesh[i].file_name)) + " " + std::string(listSteelBarMesh[i].group_name);
+    dataFile << line.c_str() << std::endl;
+  }
+  
+  // Finally, we conclude with the name of the output file
+  line = OUTPUTFILE;
+  dataFile << line.c_str() << std::endl;
+  dataFile.close();
+  return dataFilename->c_str();  
+}
+
+/*!
+ * This function creates a shell script that runs padder whith the
+ * specified data file, and returns the path of the created script
+ * file. The config id is used to retrieve the path to the binary file
+ * and other required files.
+ */
+const char* MeshJobManager_i::_writeScriptFile(const char * dataFileName, const char * configId) {
+  mkdir(LOCAL_INPUTDIR.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+
+  // Make it static so that it's allocated once (constant name)
+  static std::string * scriptFilename = new std::string(LOCAL_INPUTDIR+"/"+SCRIPTFILE);
+
+  char * binpath = _configMap[configId].binpath;
+  char * envpath = _configMap[configId].envpath;
+
+  std::ofstream script(scriptFilename->c_str());
+  script << "#!/bin/sh"                                   << std::endl;
+  script << "here=$(dirname $0)"                          << std::endl;
+  script << ". " << envpath                               << std::endl;
+  script << binpath << " $here/" << basename(dataFileName) << std::endl;
+  // Note that we use the basename of the datafile because all data
+  // files are supposed to have been copied in the REMOTE_WORKDIR.
+  script.close();
+  return scriptFilename->c_str();
+}
+
+//
+// ====================================================================
+// Functions to initialize and supervise the mesh computation job
+// ====================================================================
+//
+bool MeshJobManager_i::configure(const char *configId,
+                                const MESHJOB::ConfigParameter & configParameter)
+{
+  beginService("MeshJobManager_i::configure");
+  
+  _configMap[configId] = configParameter;
+
+  LOG("Adding configuration for " << configId);
+  LOG("- binpath = " << _configMap[configId].binpath);
+  LOG("- envpath = " << _configMap[configId].envpath);
+
+  endService("MeshJobManager_i::configure");
+  return true;
+}
+
+long MeshJobManager_i::JOBID_UNDEFINED = -1;
+
+/*! Initialize a smesh computation job and return the job identifier */
+CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobParameterList & meshJobParameterList,
+                                        const char * configId)
+{
+  beginService("MeshJobManager_i::initialize");
+
+  //
+  // We first analyse the CORBA sequence to store data in C++ vectors
+  //
+  std::vector<MESHJOB::MeshJobParameter> listConcreteMesh;
+  std::vector<MESHJOB::MeshJobParameter> listSteelBarMesh;
+  for(CORBA::ULong i=0; i<meshJobParameterList.length(); i++) {
+    MESHJOB::MeshJobParameter currentMesh = meshJobParameterList[i];
+    switch ( currentMesh.file_type ) {
+    case MESHJOB::MED_CONCRETE:
+      listConcreteMesh.push_back(currentMesh);
+      break;
+    case MESHJOB::MED_STEELBAR:
+      listSteelBarMesh.push_back(currentMesh);
+      break;
+    default:
+      LOG("The type of the file is not recognized");
+      return JOBID_UNDEFINED;
+    }
+  }
+  
+  if ( listConcreteMesh.size() != 1 ) {
+    // Not consistent with the specification
+    LOG("You specify more than one concrete mesh");
+    return JOBID_UNDEFINED;
+  }
+  
+  LOG("Nb. concrete mesh = " << listConcreteMesh.size());
+  LOG("Nb. steelbar mesh = " << listSteelBarMesh.size());
+
+  // We initiate here a datetime to tag the files and folder
+  // associated to this job.
+  long jobDatetimeTag = timetag();
+  // And a MESHJOB::MeshJobPaths structure to hold the directories
+  // where to find data
+  MESHJOB::MeshJobPaths * jobPaths = new MESHJOB::MeshJobPaths();
+  jobPaths->local_inputdir  = LOCAL_INPUTDIR.c_str();
+  jobPaths->local_resultdir = (LOCAL_RESULTDIR + "." + ToString(jobDatetimeTag)).c_str();
+  jobPaths->remote_workdir  = (REMOTE_WORKDIR + "." + ToString(jobDatetimeTag)).c_str();  
+
+  //
+  // Then, we have to create the padder input data file. This input
+  // data is a text file containing the list of file names and group
+  // names.
+  //
+  const char * dataFilename = this->_writeDataFile(listConcreteMesh, listSteelBarMesh);
+  LOG("dataFilename = " << dataFilename);
+  const char * scriptFilename = this->_writeScriptFile(dataFilename, configId);
+  LOG("scriptFilename = " << scriptFilename);
+
+  //
+  // Then, the following instructions consists in preparing the job
+  // parameters to request the SALOME launcher for creating a new
+  // job.
+  //
+  Engines::JobParameters_var jobParameters = new Engines::JobParameters;
+  jobParameters->job_type = CORBA::string_dup("command");
+  // CAUTION: the job_file must be a single filename specifying a
+  // self-consistent script to be executed without any argument on the
+  // remote host.
+  jobParameters->job_file = CORBA::string_dup(scriptFilename);
+
+  //
+  // Specification of the working spaces:
+  //
+  // - local_directory: can be used to specify where to find the input
+  //   files on the local resource. It's optionnal if you specify the
+  //   absolute path name of input files.
+  //
+  // - result_directory: must be used to specify where to download the
+  //   output files on the local resources
+  //
+  // - work_directory: must be used to specify the remote directory
+  //   where to put all the stuff to run the job. Note that the job
+  //   will be executed from within this directory, i.e. a change
+  //   directory toward this working directory is done by the batch
+  //   system before running the specified job script.
+  //
+  jobParameters->local_directory  = CORBA::string_dup("");
+  jobParameters->result_directory = CORBA::string_dup(jobPaths->local_resultdir);
+  jobParameters->work_directory   = CORBA::string_dup(jobPaths->remote_workdir);
+
+  // We specify the input files that are required to execute the
+  // job_file. If basenames are specified, then the files are supposed
+  // to be located in local_directory.
+  int nbFiles = listSteelBarMesh.size()+2;
+  // The number of input file is: 
+  //   (nb. of steelbar meshfile)
+  // + (1 concrete meshfile)
+  // + (1 padder input file)
+  // = nb steelbar meshfile + 2
+  jobParameters->in_files.length(nbFiles);
+  jobParameters->in_files[0] = CORBA::string_dup(listConcreteMesh[0].file_name);
+  for (int i=0; i<listSteelBarMesh.size(); i++) {
+    jobParameters->in_files[1+i] = CORBA::string_dup(listSteelBarMesh[i].file_name);
+  }
+  jobParameters->in_files[1+listSteelBarMesh.size()] = CORBA::string_dup(dataFilename);
+  // Note that all these input files will be copied in the
+  // REMOTE_WORKDIR on the remote host
+  
+  // Then, we have to specify the existance of an output
+  // filenames. The path is supposed to be a path on the remote
+  // resource, i.e. where the job is executed.
+  jobParameters->out_files.length(1);
+  std::string outputfile_name = std::string(jobPaths->remote_workdir)+"/"+OUTPUTFILE;
+  jobParameters->out_files[0] = CORBA::string_dup(outputfile_name.c_str());
+
+  // CAUTION: the maximum duration has to be set with a format like "hh:mm"
+  jobParameters->maximum_duration = CORBA::string_dup("01:00");
+  jobParameters->queue = CORBA::string_dup("");
+
+  // Setting resource and additionnal properties (if needed)
+  // The resource parameters can be initiated from scratch, for
+  // example by specifying the values in hard coding:
+  // >>>
+  //jobParameters->resource_required.name = CORBA::string_dup("localhost");
+  //jobParameters->resource_required.hostname = CORBA::string_dup("localhost");
+  //jobParameters->resource_required.mem_mb = 1024 * 10;
+  //jobParameters->resource_required.nb_proc = 1;
+  // <<<
+  // But it's better to initiate these parameters from a resource
+  // definition known by the resource manager. This ensures that the
+  // resource will be available:
+  //const char * resourceName = "localhost";
+  //const char * resourceName = "boulant@claui2p1";
+  //const char * resourceName = "nepal@nepal";
+  const char * resourceName = _configMap[configId].resname;
+  Engines::ResourceDefinition * resourceDefinition = _resourcesManager->GetResourceDefinition(resourceName);
+  // CAUTION: This resource should have been defined in the
+  // CatalogResource.xml associated to the SALOME application.
+  //
+  // Then, the values can be used to initiate the resource parameters
+  // of the job:
+  jobParameters->resource_required.name     = CORBA::string_dup(resourceDefinition->name.in());
+  // CAUTION: the additionnal two following parameters MUST be
+  // specified explicitly, because they are not provided by the
+  // resource definition:
+  jobParameters->resource_required.mem_mb   = resourceDefinition->mem_mb;
+  jobParameters->resource_required.nb_proc  = resourceDefinition->nb_proc_per_node;
+  // CAUTION: the parameter mem_mb specifies the maximum memory value
+  // that could be allocated for executing the job. This takes into
+  // account not only the data that could be loaded by the batch
+  // process but also the linked dynamic library.
+  //
+  // A possible problem, for exemple in the case where you use the ssh
+  // emulation of a batch system, is to get an error message as below
+  // when libBatch try to run the ssh command:
+  //
+  // ## /usr/bin/ssh: error while loading shared libraries: libcrypto.so.0.9.8: failed
+  // ## to map segment from shared object: Cannot allocate memory
+  //
+  // In this exemple, the mem_mb was set to 1MB, value that is not
+  // sufficient to load the dynamic libraries linked to the ssh
+  // executable (libcrypto.so in the error message).
+  //
+  // So, even in the case of a simple test shell script, you should
+  // set this value at least to a standard threshold as 500MB
+
+  int jobId = JOBID_UNDEFINED;
+  try {
+    jobId = _salomeLauncher->createJob(jobParameters);
+    // We register the datetime tag of this job
+    _jobDateTimeMap[jobId]=jobDatetimeTag;
+    _jobPathsMap[jobId] = jobPaths;
+  }
+  catch (const SALOME::SALOME_Exception & ex) {
+    LOG("SALOME Exception in createJob !" <<ex.details.text.in());
+    //LOG(ex.details.text.in());
+    return JOBID_UNDEFINED;
+  }
+  catch (const CORBA::SystemException& ex) {
+    LOG("Receive SALOME System Exception: "<<ex);
+    LOG("Check SALOME servers...");
+    return JOBID_UNDEFINED;
+  }
+  
+  endService("MeshJobManager_i::initialize");
+  return jobId;
+}
+
+/*! Submit the job execution and return true if submission is OK */
+bool MeshJobManager_i::start(CORBA::Long jobId) {
+  beginService("MeshJobManager_i::start");
+
+  try {
+    _salomeLauncher->launchJob(jobId);
+  }
+  catch (const SALOME::SALOME_Exception & ex) {
+    LOG("SALOME Exception in createJob !" <<ex.details.text.in());
+    //LOG(ex.details.text.in());
+    return false;
+  }
+  catch (const CORBA::SystemException& ex) {
+    LOG("Receive SALOME System Exception: "<<ex);
+    LOG("Check SALOME servers...");
+    return false;
+  }
+
+  endService("MeshJobManager_i::initialize");
+  return true;
+}
+
+/*! Request the launch manager for the state of the specified job */
+char* MeshJobManager_i::getState(CORBA::Long jobId) {
+  beginService("MeshJobManager_i::getState");
+
+  std::string state;
+  try
+  {
+    state = _salomeLauncher->getJobState(jobId);
+  }
+  catch (const SALOME::SALOME_Exception & ex)
+  {
+    LOG("SALOME Exception in getJobState !");
+    state = ex.details.text;
+  }
+  catch (const CORBA::SystemException& ex)
+  {
+    LOG("Receive SALOME System Exception: " << ex);
+    state="SALOME System Exception - see logs";
+  }
+  LOG("jobId="<<ToString(jobId)<<" state="<<state);
+  endService("MeshJobManager_i::getState");
+  return CORBA::string_dup(state.c_str());
+}
+
+MESHJOB::MeshJobPaths * MeshJobManager_i::getPaths(CORBA::Long jobId) {
+
+  MESHJOB::MeshJobPaths * jobPaths = _jobPathsMap[jobId];
+  if ( jobPaths == NULL ) {
+    LOG("You request the working paths for an undefined job (jobId="<<ToString(jobId)<<")");
+    return NULL; // Maybe raise an exception?
+  }
+  return jobPaths;
+}
+
+
+MESHJOB::MeshJobResults * MeshJobManager_i::finalize(CORBA::Long jobId) {
+  beginService("MeshJobManager_i::getResults");
+  MESHJOB::MeshJobResults * result = new MESHJOB::MeshJobResults();
+
+  MESHJOB::MeshJobPaths * jobPaths = this->getPaths(jobId);
+  std::string local_resultdir(jobPaths->local_resultdir);
+  result->results_dirname = local_resultdir.c_str();  
+  try
+  {
+    _salomeLauncher->getJobResults(jobId, local_resultdir.c_str());
+    // __BUG__: to prevent from a bug of the MED driver (SALOME
+    // 5.1.5), we change the basename of the output file to force the
+    // complete reloading of data by the med driver.
+    long jobDatetimeTag = _jobDateTimeMap[jobId];
+    std::string outputFileName = "output"+ToString(jobDatetimeTag)+".med";
+    rename((local_resultdir+"/"+OUTPUTFILE).c_str(), (local_resultdir+"/"+outputFileName).c_str());
+
+    result->outputmesh_filename = outputFileName.c_str();
+    result->status = "OK";
+ }
+  catch (const SALOME::SALOME_Exception & ex)
+  {
+    LOG("SALOME Exception in getResults !");
+    result->status = "SALOME Exception in getResults !";
+  }
+  catch (const CORBA::SystemException& ex)
+  {
+    LOG("Receive CORBA System Exception: " << ex);
+    result->status = "Receive CORBA System Exception: see log";
+  }
+  endService("MeshJobManager_i::getResults");
+  return result;
+}
+
+
+/*! Clean all data associated to this job and remove the job from the launch manager */
+bool MeshJobManager_i::clean(CORBA::Long jobId) {
+  beginService("MeshJobManager_i::clean");
+  
+  // __GBO__ WORK IN PROGRESS: we just clean the temporary local
+  // directories. The remote working directories are tag with the
+  // execution datetime and the we prevent the task from conflict
+  // with files of another task.
+  MESHJOB::MeshJobPaths * jobPaths = this->getPaths(jobId);
+  if ( jobPaths == NULL ) return false;
+
+  // WARN: !!!!!
+  // For safety reason (and prevent from bug that could erase the
+  // filesystem), we cancel the operation in the case where the
+  // directories to delete are not in the /tmp folder.
+  std::string shell_command("rm -rf ");
+  std::string inputdir(jobPaths->local_inputdir);
+  std::string resultdir(jobPaths->local_resultdir);
+  if ( !myStartsWith(inputdir,"/tmp/") )  {
+    LOG("WRN: The directory "<<inputdir<<" is not in /tmp. NO DELETE is done");
+  } else {
+    shell_command+=inputdir+" ";
+  }
+  if ( !myStartsWith(resultdir,"/tmp/"))  {
+    LOG("WRN: The directory "<<resultdir<<" is not in /tmp. NO DELETE is done");
+  } else {
+    shell_command+=resultdir;
+  }
+
+  LOG("DBG: clean shell command = "<<shell_command);
+
+  bool cleanOk = false;
+  int error = system(shell_command.c_str());
+  if (error == 0) cleanOk = true;
+
+  endService("MeshJobManager_i::clean");
+  return cleanOk;
+}
+
+
+std::vector<std::string> * MeshJobManager_i::_getResourceNames() {
+
+  //
+  // These part is just to control the available resources
+  //
+  Engines::ResourceParameters params;
+  KERNEL::getLifeCycleCORBA()->preSet(params);
+
+  Engines::ResourceList * resourceList = _resourcesManager->GetFittingResources(params);
+  Engines::ResourceDefinition * resourceDefinition = NULL;
+  LOG("### resource list:");
+  std::vector<std::string>* resourceNames = new std::vector<std::string>();
+  if (resourceList) {
+    for (int i = 0; i < resourceList->length(); i++) {
+      const char* aResourceName = (*resourceList)[i];
+      resourceNames->push_back(std::string(aResourceName));
+      LOG("resource["<<i<<"] = "<<aResourceName);
+      resourceDefinition = _resourcesManager->GetResourceDefinition(aResourceName);
+      LOG("protocol["<<i<<"] = "<<resourceDefinition->protocol);
+    }
+  }
+
+  // Note: a ResourceDefinition is used to create a batch configuration
+  // in the Launcher. This operation is done at Launcher startup from
+  // the configuration file CatalogResources.xml provided by the
+  // SALOME application.
+  // In the code instructions, you just have to choose a resource
+  // configuration by its name and then define the ResourceParameters
+  // that specify additionnal properties for a specific job submission
+  // (use the attribute resource_required of the JobParameters).
+
+  return resourceNames;
+}
+
+
+//
+// ==========================================================================
+// Factory services
+// ==========================================================================
+//
+extern "C"
+{
+  PortableServer::ObjectId * MeshJobManagerEngine_factory( CORBA::ORB_ptr orb,
+                                                           PortableServer::POA_ptr poa,
+                                                           PortableServer::ObjectId * contId,
+                                                           const char *instanceName,
+                                                           const char *interfaceName)
+  {
+    MESSAGE("PortableServer::ObjectId * MeshJobManagerEngine_factory()");
+    MeshJobManager_i * myEngine = new MeshJobManager_i(orb, poa, contId, instanceName, interfaceName);
+    return myEngine->getId() ;
+  }
+}
diff --git a/src/Tools/padder/meshjob/impl/MeshJobManager_i.hxx b/src/Tools/padder/meshjob/impl/MeshJobManager_i.hxx
new file mode 100644 (file)
index 0000000..a452066
--- /dev/null
@@ -0,0 +1,81 @@
+//  Copyright (C) 2011  EDF R&D
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// Authors : Guillaume Boulant (EDF) - 01/03/2011
+
+#ifndef _MESHJOBMANAGER_HXX_
+#define _MESHJOBMANAGER_HXX_
+
+// include the stubs generating from MESHJOB.idl
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(MESHJOB)
+#include CORBA_SERVER_HEADER(SALOME_Component)
+#include "SALOME_Component_i.hxx"
+
+#include "SALOME_Launcher.hxx"
+#include <vector>
+#include <string>
+#include <map>
+
+class MeshJobManager_i: public virtual POA_MESHJOB::MeshJobManager,
+                        public Engines_Component_i
+{
+public:
+  MeshJobManager_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa,
+                   PortableServer::ObjectId * contId,
+                   const char *instanceName, const char *interfaceName);
+  ~MeshJobManager_i();
+
+  bool           configure  (const char *configId,
+                            const MESHJOB::ConfigParameter & configParameter);
+  CORBA::Long    initialize (const MESHJOB::MeshJobParameterList & meshJobParameterList,
+                            const char *configId);
+  bool           start      (CORBA::Long jobId);
+  char*          getState   (CORBA::Long jobId);
+  MESHJOB::MeshJobResults * finalize(CORBA::Long jobId);
+  MESHJOB::MeshJobPaths *   getPaths(CORBA::Long jobId);
+  bool           clean      (CORBA::Long jobId);
+
+  static long JOBID_UNDEFINED;
+
+private:
+  Engines::SalomeLauncher_var   _salomeLauncher;
+  Engines::ResourcesManager_var _resourcesManager;
+  
+  // This maps the config identifier to the config parameters. A
+  // config is a resource with additionnal data specifying the
+  // location of the binary program to be executed by the task
+  std::map<std::string, MESHJOB::ConfigParameter> _configMap;
+
+  // This maps a job identifier to its associated datetime tag. When
+  // a job is created during the initialize function, a datetime tag
+  // is associated to this job and can be used to characterized files
+  // and directories associated to this job.
+  std::map<long, long> _jobDateTimeMap;
+  std::map<long, MESHJOB::MeshJobPaths*> _jobPathsMap;
+
+  const char* _writeDataFile   (std::vector<MESHJOB::MeshJobParameter> listConcreteMesh,
+                                std::vector<MESHJOB::MeshJobParameter> listSteelBarMesh);
+  const char* _writeScriptFile (const char * dataFileName, const char * configId);
+
+  std::vector<std::string> * _getResourceNames();
+
+};
+
+#endif
+
diff --git a/src/Tools/padder/meshjob/impl/testhelper.hxx b/src/Tools/padder/meshjob/impl/testhelper.hxx
new file mode 100644 (file)
index 0000000..7ce0646
--- /dev/null
@@ -0,0 +1,35 @@
+#ifndef __TESTHELPER_HXX__
+#define __TESTHELPER_HXX__
+
+#include <stdlib.h> // Standard C include (for getenv)
+#include <unistd.h>
+#include <string>
+
+/*!
+ * This function returns the module SPADDER installation root
+ * directory as a string.
+ */
+static std::string SPADDER_ROOT_DIR() {
+  static std::string * spadder_root_dir;
+  if ( spadder_root_dir == NULL ) {
+    char * SPADDER_ROOT_DIR = getenv("SPADDER_ROOT_DIR");
+    spadder_root_dir = new std::string(SPADDER_ROOT_DIR);
+  }
+  return *spadder_root_dir;
+}
+
+/*! Relative path of the directory containing data and exe for tests */
+static std::string PADDEREXE_RPATH("/share/salome/resources/spadder/padderexe");
+/*! Absolute path of the directory containing data and exe for tests */
+static std::string PADDEREXE_APATH(SPADDER_ROOT_DIR()+PADDEREXE_RPATH);
+/*! Absolute path of the exe shell script for tests */
+static std::string PADDEREXE_SCRIPT_FILENAME(PADDEREXE_APATH+"/padder.sh");
+
+
+static int testssh_using_system() {
+  const char * cmd = "/usr/bin/ssh claui2p1 -l boulant 'cd /tmp && ./runCommand_padder_Mon_Feb_28_14_28_36_2011.sh'";
+  int result = system(cmd);
+  return result;
+}
+
+#endif // __TESTHELPER_HXX__
diff --git a/src/Tools/padder/resources/Makefile.am b/src/Tools/padder/resources/Makefile.am
new file mode 100644 (file)
index 0000000..a65b30a
--- /dev/null
@@ -0,0 +1,7 @@
+
+SUBDIRS = appligen padderexe
+
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+mysalomeresdir=$(salomeresdir)
+mysalomeres_DATA = SPADDERCatalog.xml
diff --git a/src/Tools/padder/resources/SPADDERCatalog.xml b/src/Tools/padder/resources/SPADDERCatalog.xml
new file mode 100644 (file)
index 0000000..7563756
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='us-ascii' ?>
+
+<!-- XML component catalog -->
+
+<begin-catalog>
+    <path-prefix-list></path-prefix-list>
+    <type-list></type-list>
+    <component-list>
+        <component>
+            <component-name>MeshJobManager</component-name>
+        </component>
+    </component-list>
+</begin-catalog>
diff --git a/src/Tools/padder/resources/appligen/CatalogResources.xml b/src/Tools/padder/resources/appligen/CatalogResources.xml
new file mode 100644 (file)
index 0000000..4900b5f
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE ResourcesCatalog>
+<resources>
+
+   <!-- Generic configuration that should works on every workstation -->
+   <machine name="localhost" hostname="localhost"
+            protocol="ssh" batch="ssh_batch"
+            memInMB="500" CPUFreqMHz="0" nbOfNodes="1" nbOfProcPerNode="1"/>
+
+   <!-- Specific configuration that only works on my workstation (needs ssh authentification) -->
+   <machine name="boulant@claui2p1" 
+            hostname="claui2p1" userName="boulant"
+            protocol="ssh" batch="ssh_batch"
+            memInMB="500" CPUFreqMHz="0" nbOfNodes="1" nbOfProcPerNode="1"/>
+
+   <!-- Specific configuration that only works for nepal team (needs ssh authentification) -->
+   <machine name="nepal@nepal" 
+            hostname="nepal" userName="nepal"
+            protocol="ssh" batch="ssh_batch"
+            memInMB="500" CPUFreqMHz="0" nbOfNodes="1" nbOfProcPerNode="1"/>
+
+</resources>
diff --git a/src/Tools/padder/resources/appligen/Makefile.am b/src/Tools/padder/resources/appligen/Makefile.am
new file mode 100644 (file)
index 0000000..d0e202e
--- /dev/null
@@ -0,0 +1,37 @@
+#  Copyright (C) 2011  CEA/DEN, EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+appligendir = $(salomeresdir)/appligen
+
+appligen_DATA=                 \
+       envappli.sh            \
+       config_appli.xml       \
+       appli-splashscreen.jpg \
+       SalomeApp.xml          \
+       CatalogResources.xml
+
+appligen_SCRIPTS= \
+       appligen.sh
+
+EXTRA_DIST += $(appligen_DATA) $(appligen_SCRIPTS)
+
+
+envappli.sh:
+       $(srcdir)/genenv.sh envappli.sh
diff --git a/src/Tools/padder/resources/appligen/README.txt b/src/Tools/padder/resources/appligen/README.txt
new file mode 100644 (file)
index 0000000..6fb376c
--- /dev/null
@@ -0,0 +1,24 @@
+This package defines a build procedure that creates a
+set of files ready to use to generate a SALOME application
+embedding this module.
+
+The files are created in the directory:
+
+  <installdir>/share/salome/resources/<module_name>/appligen
+
+Where <installdir> is the installation directory of the module.
+
+To generate a SALOME application, just change directory to go
+where you want to install the SALOME application and type the
+following command in a standard shell (the SALOME environment
+is not required, all paths are "hard" coded in the script):
+
+  $ <installdir>/share/salome/resources/<module_name>/appligen/appligen.sh 
+
+This script generates an application in a directory ./appli.
+Then type the following command to run a SALOME application
+embedding your module:
+
+  $ ./appli/runAppli -k
+
+
diff --git a/src/Tools/padder/resources/appligen/SalomeApp.xml b/src/Tools/padder/resources/appligen/SalomeApp.xml
new file mode 100644 (file)
index 0000000..87ca362
--- /dev/null
@@ -0,0 +1,40 @@
+<document>
+  <section name="launch">
+    <!-- SALOME launching parameters -->
+    <parameter name="gui"        value="yes"/>
+    <parameter name="splash"     value="yes"/>
+    <parameter name="file"       value="no"/>
+    <parameter name="key"        value="no"/>
+    <parameter name="interp"     value="no"/>
+    <parameter name="logger"     value="no"/>
+    <parameter name="xterm"      value="no"/>
+    <parameter name="portkill"   value="no"/>
+    <parameter name="killall"    value="no"/>
+    <parameter name="noexcepthandler"  value="no"/>
+    <parameter name="modules"    value="KERNEL,MED,GUI,GEOM,SMESH,JOBMANAGER,VISU,YACS"/>
+    <parameter name="pyModules"  value=""/>
+    <parameter name="embedded"   value="SalomeAppEngine,study,cppContainer,registry,moduleCatalog"/>
+    <parameter name="standalone" value="pyContainer"/>
+  </section>
+  <section name="SMESH">
+    <parameter name="plugins" value="NETGENPlugin,GHS3DPlugin,BLSURFPlugin"/>
+  </section>
+  <section name="splash" >
+    <!-- Splash screen settings. This only works when using a SALOME application, -->
+    <!-- where the file appli-splashscreen.jpg has been copy into. -->
+    <parameter name="image"             value="${SMESH_ROOT_DIR}/share/salome/resources/smesh/appligen/appli-splashscreen.jpg" />
+    <parameter name="constant_info"     value="%A [ %V ]" />
+    <parameter name="text_colors"       value="#eeeeff|#555555" />
+    <parameter name="hide_on_click"     value="no" />
+    <parameter name="show_progress"     value="yes" />
+    <parameter name="show_message"      value="yes" />
+    <parameter name="show_percents"     value="yes" />
+    <parameter name="margin"            value="40" />
+    <parameter name="progress_width"    value="20" />
+    <parameter name="progress_flags"    value="bottom,left_to_right" />
+    <parameter name="opacity"           value="0.70" />
+    <parameter name="font"              value="Tahoma,12,normal" />
+    <parameter name="alignment"         value="top,left" />
+    <parameter name="progress_colors"   value="#3b3e5d|#d14949|v" />
+  </section>
+</document>
diff --git a/src/Tools/padder/resources/appligen/appli-splashscreen.jpg b/src/Tools/padder/resources/appligen/appli-splashscreen.jpg
new file mode 100644 (file)
index 0000000..45377b1
Binary files /dev/null and b/src/Tools/padder/resources/appligen/appli-splashscreen.jpg differ
diff --git a/src/Tools/padder/resources/appligen/appligen.sh.in b/src/Tools/padder/resources/appligen/appligen.sh.in
new file mode 100755 (executable)
index 0000000..8ce6821
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+# 
+# This script installs or updates a SALOME application for testing the
+# PADDER plugin for SMESH. The application is installed in the
+# directory ./appli. The configuration file is supposed to be adapted
+# to your own environment (see config_appli.xml).
+#
+# To run this script, you should have first configure your
+# shell with the SALOME environment, i.e. source the files
+# prerequis.sh and envSalome.sh (or equivalent) that fit
+# your configuration. You can alternatively customize the env.sh file
+# to fit your SALOME environment and let the script do the job (see
+# source below).
+#
+# (gboulant - 3/2/2011)
+#
+
+here=$(dirname $0)
+
+#
+# Run the appli_gen.py
+#
+APPLIDIR="./appli"
+@KERNEL_ROOT_DIR@/bin/salome/appli_gen.py --prefix=$APPLIDIR --config=$here/config_appli.xml
+
+#
+# Copy customized configuration files in the application
+#
+cp $here/SalomeApp.xml $APPLIDIR/.
+cp $here/CatalogResources.xml $APPLIDIR/.
+cp @prefix@/plugins/envPlugins.sh $APPLIDIR/env.d/.
diff --git a/src/Tools/padder/resources/appligen/config_appli.xml.in b/src/Tools/padder/resources/appligen/config_appli.xml.in
new file mode 100644 (file)
index 0000000..2f77f06
--- /dev/null
@@ -0,0 +1,15 @@
+<application>
+<!-- The path should be the absolute path of installation of the file envappli.sh -->
+<prerequisites path="@prefix@/share/salome/resources/@MODULE_NAME@/appligen/envappli.sh"/>
+
+<modules>
+  <module name="KERNEL" path="@KERNEL_ROOT_DIR@"/>
+  <module name="MED" path="@MED_ROOT_DIR@"/>
+  <module name="GUI" path="@GUI_ROOT_DIR@"/>
+  <module name="GEOM" path="@GEOM_ROOT_DIR@"/>
+  <module name="SMESH" path="@prefix@"/>
+  <module name="BLSURFPLUGIN" gui="no" path="@BLSURFPLUGIN_ROOT_DIR@"/>
+  <module name="GHS3DPLUGIN" gui="no" path="@GHS3DPLUGIN_ROOT_DIR@"/>
+  <module name="NETGENPLUGIN" gui="no" path="@NETGENPLUGIN_ROOT_DIR@"/>
+</modules>
+</application>
diff --git a/src/Tools/padder/resources/appligen/genenv.sh b/src/Tools/padder/resources/appligen/genenv.sh
new file mode 100755 (executable)
index 0000000..0a77ddc
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# This script creates a source file that defines a SALOME shell
+# environment. We assume here that the SALOME environment has been
+# previously set, so that the env command get all environment
+# variables required for building and executing SALOME. We talk
+# about third party software programs and libraries. The environment
+# variables defining SALOME module are exluded (i.e. *_ROOT_DIR)
+# because they are automatically set when generating a SALOME application..
+#
+# The argument is the filepath to be created.
+#
+
+if [ $# == 1 ]; then
+    ENVAPPLI_SH=$1
+else
+    ENVAPPLI_SH=envappli.sh
+fi
+
+function header {
+    echo "#"
+    echo "# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+    echo "# THIS FILE IS GENERATED from the shell environment used to build the SALOME module."
+    echo "# IT SHOULD NOT BE EDITED, it is generated for the need of the SALOME application   "
+    echo "# that embeds the module (for test purposes).                                       "
+    echo "# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+    echo "#"
+}
+header > $ENVAPPLI_SH
+env | grep -v -e PWD -e SalomeAppConfig -e _ROOT_DIR | while read f; do
+    key=$(echo $f | cut -d"=" -f1)
+    value=$(echo $f | cut -d"=" -f2-)
+
+    # if the key is a path (LD_LIBRARY_PATH, PATH and PYTHONPATH) then
+    # we must extends the variable.
+    if [ $key == "LD_LIBRARY_PATH" -o $key == "PATH" -o $key == "PYTHONPATH" ]; then
+        echo export $key=\"$value:\$$key\"
+    else
+        echo export $key=\"$value\"
+    fi
+done >> $ENVAPPLI_SH
diff --git a/src/Tools/padder/resources/padderexe/Makefile.am b/src/Tools/padder/resources/padderexe/Makefile.am
new file mode 100644 (file)
index 0000000..6833e08
--- /dev/null
@@ -0,0 +1,38 @@
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author(s): Guillaume Boulant (23/03/2011)
+#
+
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+mysalomeresdir=$(salomeresdir)/padderexe
+
+version=med3
+
+# We install the padder.exe program and the files required for testing
+# the execution from within the installation directory
+mysalomeres_SCRIPTS =         \
+       $(version)/padder.exe \
+       envPadder.sh          \
+       padder.sh
+
+mysalomeres_DATA =              \
+       $(version)/data.txt     \
+       $(version)/concrete.med \
+       $(version)/ferraill.med
diff --git a/src/Tools/padder/resources/padderexe/buildparticules.py b/src/Tools/padder/resources/padderexe/buildparticules.py
new file mode 100755 (executable)
index 0000000..b3826b2
--- /dev/null
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+
+import geompy
+import salome
+salome.salome_init()
+theStudy = salome.myStudy
+geompy.init_geom(theStudy)
+
+filename="/home/gboulant/development/projets/salome/SPADDER/spadder/resources/padderexe/REF_spheres.dat.xyz"
+file=open(filename,'rb')
+
+import csv
+datalines = csv.reader(file, delimiter=' ')
+i=0
+for row in datalines:
+    x=float(row[0])
+    y=float(row[1])
+    z=float(row[2])
+    rayon=float(row[3])/2.
+
+    centre = geompy.MakeVertex(x, y, z)
+    particule = geompy.MakeSpherePntR(centre, rayon)
+    geompy.addToStudy( particule, 'p'+str(i) )
+    i+=1
diff --git a/src/Tools/padder/resources/padderexe/envPadder.sh.in b/src/Tools/padder/resources/padderexe/envPadder.sh.in
new file mode 100644 (file)
index 0000000..31c84a5
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+# This script defines the shell extension required for executing the
+# padder executable program on the localhost (for test purposes)
+
+MED_ROOT="@MED2HOME@"
+HDF_ROOT="@HDF5HOME@"
+CGAL_ROOT="/usr"
+export LD_LIBRARY_PATH="$MED_ROOT/lib:$HDF_ROOT/lib:$CGAL_ROOT/lib:$LD_LIBRARY_PATH"
diff --git a/src/Tools/padder/resources/padderexe/med2/REF_FinalEDMesh.med b/src/Tools/padder/resources/padderexe/med2/REF_FinalEDMesh.med
new file mode 100644 (file)
index 0000000..0072943
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/med2/REF_FinalEDMesh.med differ
diff --git a/src/Tools/padder/resources/padderexe/med2/REF_spheres.dat.xyz b/src/Tools/padder/resources/padderexe/med2/REF_spheres.dat.xyz
new file mode 100644 (file)
index 0000000..d511c38
--- /dev/null
@@ -0,0 +1,4097 @@
+0.00782971 0.00837862 0.188345 0.00802045 1 0
+0.0154087 0.00912149 0.0068625 0.00705037 1 0
+0.00853443 0.191571 0.191485 0.00877202 1 0
+0.00831246 0.192152 0.00532739 0.00567024 1 0
+0.392373 0.0103119 0.19108 0.00782777 1 0
+0.382012 0.00642122 0.00627707 0.00662885 1 0
+0.393074 0.19203 0.194472 0.00590232 1 0
+0.387096 0.187644 0.0151337 0.0125061 1 0
+0.0107355 0.00843302 0.0669608 0.00880526 1 0
+0.0130229 0.0100937 0.135407 0.0113355 1 0
+0.0066941 0.0661207 0.191646 0.00802792 1 0
+0.0103253 0.133553 0.192494 0.00822172 1 0
+0.0101874 0.193228 0.0665758 0.00716313 1 0
+0.0128864 0.189676 0.134999 0.0115899 1 0
+0.00969349 0.0657247 0.00859538 0.00955034 1 0
+0.00859049 0.132642 0.00899122 0.00969975 1 0
+0.385203 0.00809838 0.0668407 0.00880575 1 0
+0.386131 0.0107039 0.135508 0.0115306 1 0
+0.393588 0.0665381 0.191132 0.00775488 1 0
+0.386598 0.134808 0.191052 0.0102175 1 0
+0.389949 0.190842 0.0653571 0.00998665 1 0
+0.389353 0.192011 0.133631 0.00881068 1 0
+0.392783 0.067271 0.00660849 0.00698802 1 0
+0.388304 0.134196 0.0104575 0.0117876 1 0
+0.078446 0.0111886 0.00562685 0.00698503 1 0
+0.15933 0.010178 0.0071953 0.00782222 1 0
+0.239408 0.0117814 0.00838242 0.00902724 1 0
+0.319266 0.0104094 0.0109799 0.0115214 1 0
+0.0801022 0.00839366 0.191955 0.009342 1 0
+0.158855 0.0101758 0.190771 0.00985613 1 0
+0.240059 0.008372 0.19268 0.00811281 1 0
+0.319477 0.00952385 0.189827 0.0109663 1 0
+0.080239 0.184554 0.0107232 0.0118692 1 0
+0.158896 0.189543 0.0104515 0.0111914 1 0
+0.239206 0.192295 0.0114336 0.00824166 1 0
+0.321165 0.189065 0.0198378 0.011684 1 0
+0.0784293 0.189358 0.189415 0.0114984 1 0
+0.158102 0.183775 0.186583 0.0140474 1 0
+0.240505 0.191585 0.192095 0.00878636 1 0
+0.320737 0.187137 0.173616 0.0136636 1 0
+0.0102439 0.0601788 0.110611 0.011165 1 0
+0.00632993 0.0606389 0.0501703 0.00699327 1 0
+0.00886816 0.118481 0.073089 0.00961398 1 0
+0.0084637 0.130613 0.129338 0.0092135 1 0
+0.390636 0.0614183 0.111012 0.010272 1 0
+0.391413 0.0615332 0.0505572 0.0092585 1 0
+0.392479 0.119396 0.0733079 0.00827305 1 0
+0.389389 0.131268 0.129331 0.0113393 1 0
+0.274388 0.0076649 0.0575634 0.00842627 1 0
+0.134941 0.00959236 0.0653354 0.0105187 1 0
+0.0651853 0.00803465 0.0661969 0.00886309 1 0
+0.110295 0.00934566 0.133492 0.010401 1 0
+0.185332 0.0137269 0.132579 0.0147265 1 0
+0.331786 0.0104332 0.0984378 0.0115849 1 0
+0.207876 0.0106516 0.0633744 0.0116242 1 0
+0.261527 0.00924836 0.126979 0.0103371 1 0
+0.274177 0.19319 0.0574857 0.00758089 1 0
+0.135692 0.189732 0.0648955 0.0112128 1 0
+0.0663 0.187677 0.0661222 0.0131058 1 0
+0.109855 0.18853 0.132715 0.0125194 1 0
+0.185773 0.18914 0.131535 0.0118814 1 0
+0.332133 0.189017 0.0978282 0.0121498 1 0
+0.207852 0.192331 0.0632991 0.00864703 1 0
+0.261572 0.192711 0.126344 0.00840316 1 0
+0.0697814 0.106226 0.00960134 0.0108828 1 0
+0.131623 0.0598217 0.0086532 0.00941678 1 0
+0.266788 0.0652192 0.0102618 0.0112281 1 0
+0.340609 0.0648565 0.00796636 0.00886868 1 0
+0.291252 0.132331 0.011155 0.0121409 1 0
+0.215098 0.131697 0.0133923 0.0143177 1 0
+0.19535 0.0639082 0.0075357 0.00848584 1 0
+0.141228 0.128178 0.0122679 0.0132652 1 0
+0.0684398 0.10719 0.184859 0.0147587 1 0
+0.131467 0.0598993 0.189562 0.0112022 1 0
+0.267697 0.0654378 0.191161 0.00979633 1 0
+0.340927 0.0652784 0.190301 0.0106229 1 0
+0.291838 0.133337 0.1901 0.0109407 1 0
+0.216095 0.132971 0.190766 0.0102258 1 0
+0.194717 0.0641122 0.187867 0.0130967 1 0
+0.141036 0.129092 0.188982 0.0120216 1 0
+0.0669682 0.0665113 0.0941136 0.0147587 1 0
+0.0833322 0.143862 0.12175 0.0147587 1 0
+0.189807 0.104641 0.118969 0.0147587 1 0
+0.344502 0.0601456 0.0998379 0.0141213 1 0
+0.274144 0.081421 0.098988 0.0147587 1 0
+0.329187 0.144678 0.0830052 0.0143816 1 0
+0.243586 0.146288 0.0866495 0.0147193 1 0
+0.132914 0.0731836 0.103217 0.0147587 1 0
+0.0428272 0.119038 0.052029 0.0119519 1 0
+0.261979 0.150932 0.146194 0.0117141 1 0
+0.102115 0.140291 0.0526524 0.0147587 1 0
+0.0340305 0.101951 0.155062 0.0129279 1 0
+0.357144 0.101091 0.153465 0.0134399 1 0
+0.187456 0.162108 0.0494275 0.0113731 1 0
+0.232702 0.0552718 0.0430421 0.0140424 1 0
+0.171625 0.0519527 0.049372 0.0140307 1 0
+0.369195 0.0892426 0.0427442 0.0106064 1 0
+0.282643 0.107185 0.149494 0.0143329 1 0
+0.301665 0.113049 0.0909966 0.0106702 1 0
+0.310165 0.138814 0.141503 0.0130046 1 0
+0.343165 0.122885 0.118235 0.0109302 1 0
+0.315644 0.0912562 0.126227 0.0126514 1 0
+0.324143 0.117021 0.176733 0.0108517 1 0
+0.241903 0.0991953 0.191196 0.00904411 1 0
+0.205529 0.0985492 0.193468 0.00687593 1 0
+0.231275 0.0648555 0.192248 0.00804733 1 0
+0.192501 0.0845542 0.159484 0.0113254 1 0
+0.203006 0.118545 0.159484 0.0112056 1 0
+0.228532 0.0851619 0.159484 0.0128027 1 0
+0.0076378 0.159507 0.0697794 0.00794379 1 0
+0.00797419 0.124577 0.101219 0.00825663 1 0
+0.00724401 0.165552 0.0978756 0.0074128 1 0
+0.0416661 0.137341 0.125342 0.0105815 1 0
+0.0416661 0.131346 0.0975119 0.0124504 1 0
+0.0416661 0.171931 0.0942084 0.0143232 1 0
+0.0327151 0.00826481 0.0665097 0.00864515 1 0
+0.0663095 0.0332556 0.0799531 0.00903774 1 0
+0.0334841 0.0332556 0.0803902 0.0122868 1 0
+0.0573668 0.0559547 0.065866 0.00791185 1 0
+0.0567081 0.0226991 0.0517055 0.00704303 1 0
+0.0238827 0.0226991 0.0521425 0.00900202 1 0
+0.342522 0.0625798 0.149919 0.0125448 1 0
+0.350823 0.0806185 0.126652 0.00858079 1 0
+0.348843 0.0830528 0.176733 0.00764718 1 0
+0.363749 0.071594 0.15777 0.00763325 1 0
+0.357428 0.051121 0.130956 0.008721 1 0
+0.355448 0.0535553 0.181037 0.00667593 1 0
+0.0681372 0.08677 0.147057 0.0141747 1 0
+0.0504993 0.0842312 0.124588 0.00972722 1 0
+0.0516683 0.10449 0.177531 0.00716934 1 0
+0.0399296 0.0726263 0.156605 0.00748802 1 0
+0.0563985 0.0549064 0.12613 0.00891438 1 0
+0.0575674 0.0751651 0.179073 0.00997186 1 0
+0.0329075 0.194096 0.0663952 0.00629114 1 0
+0.054239 0.159519 0.0589108 0.0106545 1 0
+0.0214136 0.159519 0.0593479 0.0115942 1 0
+0.0444173 0.141073 0.0412066 0.00615021 1 0
+0.0558291 0.181554 0.0480883 0.00684724 1 0
+0.0230037 0.181554 0.0485254 0.00865493 1 0
+0.305829 0.166343 0.00930025 0.00968747 1 0
+0.310165 0.138814 0.0415026 0.0115073 1 0
+0.294382 0.156927 0.0589093 0.0106354 1 0
+0.275359 0.151063 0.0174067 0.007417 1 0
+0.289788 0.184588 0.0174067 0.00953043 1 0
+0.00594911 0.0607854 0.0803628 0.0061939 1 0
+0.00479756 0.0897179 0.0617091 0.00502066 1 0
+0.00616272 0.0895967 0.0918222 0.00633686 1 0
+0.0334841 0.0926703 0.0836937 0.0109375 1 0
+0.0334841 0.0638087 0.072279 0.0100164 1 0
+0.0334841 0.0638137 0.10221 0.0086386 1 0
+0.38987 0.00500221 0.0329115 0.0052469 1 0
+0.393944 0.0306307 0.0587043 0.00630491 1 0
+0.381303 0.0482723 0.0447202 0.00584722 1 0
+0.381303 0.0177192 0.0528313 0.0073099 1 0
+0.100494 0.0834848 0.190271 0.00999289 1 0
+0.136589 0.094439 0.188634 0.0116715 1 0
+0.10535 0.11814 0.185976 0.0143114 1 0
+0.137312 0.100876 0.151609 0.013982 1 0
+0.132467 0.0667472 0.151609 0.0122049 1 0
+0.10111 0.0901062 0.151609 0.0133919 1 0
+0.196804 0.00564298 0.0979846 0.00597401 1 0
+0.234676 0.00734643 0.0952439 0.0075486 1 0
+0.223513 0.00751701 0.129666 0.00783969 1 0
+0.267589 0.0407105 0.112875 0.0108776 1 0
+0.241081 0.0407105 0.0814703 0.0138234 1 0
+0.230019 0.0407105 0.115571 0.0123786 1 0
+0.395052 0.090127 0.0918997 0.00512988 1 0
+0.394346 0.124977 0.101082 0.00594888 1 0
+0.394125 0.0960045 0.119809 0.00606523 1 0
+0.372251 0.0954827 0.114386 0.0118067 1 0
+0.372251 0.0894874 0.0865558 0.0106283 1 0
+0.372251 0.0606309 0.105072 0.00706064 1 0
+0.240956 0.194533 0.060616 0.00571904 1 0
+0.225802 0.173144 0.0753011 0.00853777 1 0
+0.258741 0.173144 0.0722814 0.00850498 1 0
+0.251581 0.157732 0.0607315 0.00735967 1 0
+0.233797 0.184588 0.049383 0.00834547 1 0
+0.266736 0.184588 0.0463634 0.00513679 1 0
+0.00936532 0.0328331 0.190733 0.00954134 1 0
+0.03956 0.0329435 0.190241 0.00993531 1 0
+0.0229144 0.0549841 0.179073 0.00828957 1 0
+0.223628 0.194435 0.129147 0.00587496 1 0
+0.25231 0.173144 0.106706 0.00865879 1 0
+0.214741 0.173144 0.109401 0.011377 1 0
+0.230868 0.156087 0.11999 0.00925117 1 0
+0.239592 0.182943 0.140046 0.00761219 1 0
+0.202023 0.182943 0.142742 0.00643796 1 0
+0.360114 0.190042 0.16695 0.0101415 1 0
+0.324593 0.172339 0.141503 0.0102159 1 0
+0.364593 0.172339 0.108169 0.0128744 1 0
+0.344574 0.149581 0.121034 0.010329 1 0
+0.37998 0.177242 0.146199 0.00823187 1 0
+0.0750501 0.153331 0.00691301 0.00725809 1 0
+0.0857105 0.12366 0.0263262 0.00879905 1 0
+0.0740611 0.1517 0.0415182 0.00806666 1 0
+0.0576568 0.135069 0.0151921 0.008488 1 0
+0.0630037 0.181554 0.0151921 0.00733111 1 0
+0.100334 0.00507726 0.0657085 0.00540601 1 0
+0.101348 0.0332556 0.0799218 0.0124732 1 0
+0.0888629 0.0482426 0.0678241 0.00969621 1 0
+0.0882042 0.0149869 0.0536635 0.00741779 1 0
+0.123242 0.0149869 0.0536322 0.00573819 1 0
+0.366088 0.00696468 0.116037 0.00721858 1 0
+0.366109 0.00552948 0.0824399 0.00579393 1 0
+0.338439 0.0300728 0.0991444 0.00767144 1 0
+0.372251 0.0300728 0.116586 0.0110535 1 0
+0.372251 0.0300728 0.0832523 0.0110382 1 0
+0.203006 0.118545 0.0594845 0.0120352 1 0
+0.211255 0.0799562 0.0810055 0.0125263 1 0
+0.224453 0.0938606 0.021521 0.0112369 1 0
+0.202163 0.0536123 0.046207 0.00768668 1 0
+0.180716 0.0782967 0.0841705 0.0111456 1 0
+0.193914 0.0922011 0.024686 0.0130531 1 0
+0.394528 0.0305532 0.122124 0.00575726 1 0
+0.385177 0.0516063 0.13619 0.00782689 1 0
+0.385177 0.0210482 0.147704 0.0073708 1 0
+0.0751502 0.105187 0.107932 0.0104693 1 0
+0.0763192 0.125446 0.160875 0.010952 1 0
+0.108123 0.108523 0.112484 0.0110378 1 0
+0.0999413 0.0698475 0.0986656 0.00836315 1 0
+0.165758 0.116605 0.159484 0.0121527 1 0
+0.160914 0.0824757 0.159484 0.013619 1 0
+0.161361 0.0889121 0.111093 0.00836142 1 0
+0.294009 0.0323892 0.189614 0.01061 1 0
+0.304296 0.0653391 0.191657 0.00865693 1 0
+0.330471 0.0324018 0.19251 0.00785154 1 0
+0.302412 0.0509357 0.177837 0.0115737 1 0
+0.26577 0.0512702 0.177837 0.00661967 1 0
+0.187851 0.15232 0.125561 0.0120432 1 0
+0.216697 0.125464 0.102809 0.00941345 1 0
+0.215521 0.154198 0.0680385 0.00864791 1 0
+0.188632 0.133375 0.0841982 0.0112806 1 0
+0.186676 0.181054 0.0907904 0.0113755 1 0
+0.257158 0.00634884 0.0286278 0.00661142 1 0
+0.24115 0.00797505 0.0605706 0.00822542 1 0
+0.223999 0.00751144 0.0314485 0.00773857 1 0
+0.22036 0.0276359 0.0534973 0.00800536 1 0
+0.253299 0.0276359 0.0504777 0.00881505 1 0
+0.0994942 0.063411 0.0470568 0.014322 1 0
+0.132467 0.0667472 0.0516087 0.0130026 1 0
+0.121836 0.0515788 0.072376 0.00981294 1 0
+0.121389 0.0451423 0.0207672 0.00695694 1 0
+0.199897 0.192878 0.195143 0.00502548 1 0
+0.213141 0.191335 0.165953 0.0089279 1 0
+0.17265 0.189447 0.165926 0.0108864 1 0
+0.2707 0.0735521 0.049494 0.0125585 1 0
+0.28673 0.0582431 0.0706498 0.00967816 1 0
+0.283286 0.0503742 0.0211558 0.00766029 1 0
+0.266009 0.0451685 0.0426768 0.00870186 1 0
+0.253423 0.0683464 0.071015 0.0092965 1 0
+0.249979 0.0604775 0.021521 0.0070212 1 0
+0.227566 0.166162 0.00927722 0.00964504 1 0
+0.23789 0.150813 0.0174067 0.0083311 1 0
+0.249788 0.184588 0.0174067 0.00630637 1 0
+0.20183 0.147279 0.0247137 0.00805173 1 0
+0.21747 0.0316523 0.190068 0.010193 1 0
+0.229739 0.0506625 0.177837 0.0108254 1 0
+0.186798 0.0522662 0.181595 0.00590615 1 0
+0.231976 0.0930308 0.108978 0.011216 1 0
+0.245174 0.106935 0.049494 0.00991656 1 0
+0.258865 0.113855 0.0928188 0.00909479 1 0
+0.229895 0.139369 0.0433248 0.0114901 1 0
+0.309323 0.0707833 0.099413 0.00918863 1 0
+0.30326 0.0407105 0.0987195 0.0125128 1 0
+0.269214 0.0591391 0.127331 0.00909719 1 0
+0.304393 0.0485014 0.127756 0.0125593 1 0
+0.298329 0.0184286 0.127063 0.0120348 1 0
+0.342522 0.0625798 0.049919 0.0125044 1 0
+0.353554 0.047792 0.069417 0.00851466 1 0
+0.351574 0.0502263 0.019498 0.00671085 1 0
+0.365901 0.0623405 0.0408701 0.00679192 1 0
+0.356848 0.0746941 0.0712911 0.0085842 1 0
+0.354868 0.0771284 0.0213721 0.00710973 1 0
+0.393665 0.0612623 0.0805882 0.00656835 1 0
+0.372251 0.0606259 0.0751412 0.00928767 1 0
+0.00800775 0.00481281 0.0330032 0.00501284 1 0
+0.00493794 0.0302994 0.058471 0.0051964 1 0
+0.0238827 0.0532522 0.0440314 0.0064865 1 0
+0.388819 0.00982632 0.167372 0.0110774 1 0
+0.359782 0.0103331 0.167339 0.0105166 1 0
+0.360202 0.00555297 0.194979 0.00521289 1 0
+0.307343 0.0732175 0.149494 0.0100654 1 0
+0.297242 0.00716979 0.112559 0.0074196 1 0
+0.262658 0.0184286 0.141219 0.00586963 1 0
+0.252783 0.14861 0.116422 0.00781161 1 0
+0.261506 0.175466 0.136478 0.00659803 1 0
+0.240065 0.158409 0.149762 0.00585704 1 0
+0.280059 0.00504557 0.194484 0.00529663 1 0
+0.291028 0.0109082 0.163718 0.0111851 1 0
+0.250706 0.00816308 0.163779 0.0085333 1 0
+0.251026 0.191692 0.163287 0.00868018 1 0
+0.0742247 0.0530447 0.190726 0.00951869 1 0
+0.105992 0.0295004 0.189733 0.0105254 1 0
+0.121557 0.0494515 0.179666 0.00632887 1 0
+0.0902001 0.0728104 0.179666 0.0112387 1 0
+0.0400163 0.189738 0.166964 0.0104471 1 0
+0.0416661 0.171931 0.127542 0.0126428 1 0
+0.0611786 0.149062 0.142927 0.00777122 1 0
+0.0195125 0.177131 0.148718 0.00844259 1 0
+0.280463 0.194149 0.194111 0.00609663 1 0
+0.30581 0.166488 0.193747 0.00663919 1 0
+0.265709 0.166873 0.191652 0.00860795 1 0
+0.276561 0.141941 0.173097 0.00797356 1 0
+0.118638 0.186606 0.187079 0.0130349 1 0
+0.149567 0.165601 0.18603 0.0143514 1 0
+0.110778 0.164928 0.189958 0.0102913 1 0
+0.112521 0.136216 0.160875 0.0123521 1 0
+0.168005 0.0965757 0.192944 0.00723432 1 0
+0.178652 0.13081 0.193931 0.00640298 1 0
+0.332251 0.0300728 0.149919 0.0103012 1 0
+0.325711 0.00860382 0.149657 0.00892666 1 0
+0.0548977 0.0927747 0.0730713 0.00893812 1 0
+0.0214136 0.118934 0.0626514 0.00597593 1 0
+0.0214136 0.0900721 0.0512367 0.00900762 1 0
+0.321909 0.0476054 0.0710748 0.0096664 1 0
+0.319929 0.0500397 0.0211558 0.00827911 1 0
+0.267936 0.00808185 0.0922081 0.00836643 1 0
+0.27402 0.0407105 0.0784506 0.0113994 1 0
+0.370562 0.0994924 0.193807 0.00632978 1 0
+0.378572 0.117212 0.176733 0.00887554 1 0
+0.378572 0.0838791 0.176733 0.00900273 1 0
+0.0170152 0.0815337 0.132684 0.00868612 1 0
+0.0229144 0.0522088 0.134226 0.00857542 1 0
+0.00714838 0.192871 0.0328516 0.00736289 1 0
+0.0329743 0.189293 0.0327432 0.0108652 1 0
+0.0230037 0.181554 0.0151921 0.00829238 1 0
+0.280033 0.194371 0.00546809 0.00575251 1 0
+0.265391 0.166364 0.00786568 0.00811157 1 0
+0.336844 0.102412 0.0914216 0.0109427 1 0
+0.364593 0.137749 0.10597 0.0106918 1 0
+0.378572 0.115956 0.1412 0.00720476 1 0
+0.160389 0.00646817 0.0988948 0.0067168 1 0
+0.17157 0.00638728 0.0645314 0.00668162 1 0
+0.189822 0.0259764 0.0566623 0.00813572 1 0
+0.17876 0.0259764 0.0907627 0.0123462 1 0
+0.153676 0.0259764 0.057551 0.00815413 1 0
+0.147479 0.00853593 0.0323513 0.00887264 1 0
+0.183736 0.00755407 0.0314761 0.0077984 1 0
+0.378572 0.0811038 0.131886 0.00909792 1 0
+0.00591154 0.132048 0.1648 0.00629393 1 0
+0.0195125 0.142541 0.146519 0.0071908 1 0
+0.0195125 0.143797 0.182052 0.00712555 1 0
+0.0365277 0.128106 0.159583 0.00666505 1 0
+0.0170152 0.116386 0.141999 0.00646397 1 0
+0.0170152 0.117642 0.177531 0.00806451 1 0
+0.370844 0.0324118 0.191016 0.00912187 1 0
+0.134768 0.188691 0.166564 0.0115827 1 0
+0.148015 0.19024 0.132253 0.0100692 1 0
+0.134614 0.171931 0.126952 0.0146729 1 0
+0.097124 0.171931 0.127505 0.00794981 1 0
+0.392841 0.0977101 0.0250466 0.00727379 1 0
+0.394032 0.126426 0.0363921 0.00628753 1 0
+0.384597 0.104036 0.058009 0.00656267 1 0
+0.384597 0.0751744 0.0465943 0.00530318 1 0
+0.384597 0.111288 0.0213721 0.00858782 1 0
+0.390129 0.167151 0.0101153 0.0100334 1 0
+0.360693 0.166517 0.0106686 0.0108482 1 0
+0.361679 0.190338 0.013115 0.00979974 1 0
+0.364593 0.139006 0.0415026 0.0137119 1 0
+0.325829 0.188443 0.149303 0.0118787 1 0
+0.366315 0.193143 0.115659 0.00709951 1 0
+0.330781 0.172339 0.0907281 0.00719079 1 0
+0.393701 0.16717 0.194106 0.00622614 1 0
+0.389212 0.189767 0.166773 0.0104671 1 0
+0.37998 0.143909 0.179532 0.00763044 1 0
+0.119432 0.00577778 0.0058474 0.00598998 1 0
+0.107374 0.00697596 0.0325843 0.00717186 1 0
+0.0953788 0.0149869 0.0207672 0.00746824 1 0
+0.392788 0.0332226 0.193286 0.00688538 1 0
+0.385177 0.0543815 0.181037 0.00675563 1 0
+0.13657 0.124252 0.12036 0.0141879 1 0
+0.227045 0.070749 0.137322 0.0133981 1 0
+0.165758 0.116605 0.0594845 0.010786 1 0
+0.137312 0.100876 0.0516087 0.0146835 1 0
+0.117515 0.106738 0.0779349 0.0111866 1 0
+0.145961 0.122466 0.0858107 0.0144476 1 0
+0.121912 0.13443 0.0263262 0.00836417 1 0
+0.303644 0.0655245 0.00637762 0.0067013 1 0
+0.307343 0.0732175 0.049494 0.0112366 1 0
+0.0898928 0.0528545 0.0188092 0.0112597 1 0
+0.100339 0.0835407 0.00719202 0.00745889 1 0
+0.0681372 0.08677 0.0470568 0.0128114 1 0
+0.0845416 0.103401 0.073383 0.011455 1 0
+0.117068 0.100301 0.0263262 0.0125396 1 0
+0.227947 0.166669 0.192156 0.00820954 1 0
+0.239091 0.141691 0.173097 0.00912766 1 0
+0.217177 0.149168 0.176665 0.00718058 1 0
+0.359991 0.00561588 0.00622086 0.00588961 1 0
+0.330111 0.0325816 0.00548694 0.00583707 1 0
+0.370436 0.0326136 0.00785919 0.00799892 1 0
+0.187721 0.166242 0.0085089 0.00875112 1 0
+0.17892 0.13031 0.0061861 0.00650468 1 0
+0.150608 0.164404 0.0088986 0.00927567 1 0
+0.164583 0.145339 0.0247137 0.0094048 1 0
+0.163348 0.0622665 0.195283 0.0049871 1 0
+0.184104 0.0723527 0.14108 0.0098866 1 0
+0.155211 0.0501878 0.181595 0.00782231 1 0
+0.0323044 0.00983341 0.0328972 0.00998101 1 0
+0.286387 0.145483 0.0848274 0.0107116 1 0
+0.295583 0.147805 0.114599 0.0115574 1 0
+0.268062 0.116176 0.122591 0.0106126 1 0
+0.286606 0.0175326 0.0501124 0.00575424 1 0
+0.393607 0.159806 0.0697236 0.00670458 1 0
+0.392433 0.165936 0.0977602 0.00773155 1 0
+0.364593 0.131754 0.0781394 0.00950111 1 0
+0.364593 0.172339 0.0748359 0.0114168 1 0
+0.370471 0.0987242 0.00887783 0.00900479 1 0
+0.334864 0.104846 0.0415026 0.0144509 1 0
+0.349191 0.11696 0.0628747 0.00991734 1 0
+0.391274 0.191165 0.0995132 0.00895533 1 0
+0.394266 0.165746 0.131262 0.0061074 1 0
+0.212893 0.00607632 0.166473 0.00634648 1 0
+0.225089 0.0184286 0.143914 0.0112197 1 0
+0.0100767 0.166711 0.0104198 0.0102409 1 0
+0.0401862 0.166512 0.0109898 0.0111838 1 0
+0.0402255 0.193994 0.00591644 0.00621158 1 0
+0.0230037 0.148221 0.0151921 0.00783265 1 0
+0.381303 0.0510526 0.019498 0.00780039 1 0
+0.384597 0.0779546 0.0213721 0.00716514 1 0
+0.00795073 0.100327 0.191944 0.00820322 1 0
+0.00729948 0.0984007 0.164901 0.00747012 1 0
+0.0170152 0.0843089 0.177531 0.00831272 1 0
+0.309658 0.0175326 0.0211558 0.00733963 1 0
+0.144786 0.1512 0.0510399 0.0110181 1 0
+0.0398287 0.0100308 0.167135 0.0102105 1 0
+0.0956244 0.00846175 0.166819 0.00882322 1 0
+0.0553841 0.00785993 0.133774 0.00819954 1 0
+0.0783722 0.0216507 0.145704 0.0102551 1 0
+0.0229144 0.0216507 0.14574 0.00846962 1 0
+0.122004 0.0558879 0.131275 0.00867966 1 0
+0.0125628 0.192161 0.168294 0.00802027 1 0
+0.37998 0.142652 0.143999 0.00692701 1 0
+0.234711 0.192608 0.0948239 0.00758701 1 0
+0.267805 0.192014 0.0920019 0.00827455 1 0
+0.141191 0.0409633 0.0454532 0.00814838 1 0
+0.303395 0.00577704 0.0780608 0.00607367 1 0
+0.315845 0.0175326 0.0703813 0.00924845 1 0
+0.00557333 0.165517 0.131393 0.00595387 1 0
+0.134321 0.0365918 0.0844737 0.0102843 1 0
+0.15227 0.0625682 0.0762948 0.00870398 1 0
+0.00610125 0.1259 0.0362767 0.00640747 1 0
+0.0214136 0.126186 0.0260145 0.00861099 1 0
+0.203979 0.135263 0.13615 0.00946628 1 0
+0.0541656 0.130645 0.182052 0.00832584 1 0
+0.0586813 0.122907 0.138406 0.00909749 1 0
+0.0733752 0.190249 0.0328107 0.0100889 1 0
+0.0838829 0.170146 0.0592225 0.00889822 1 0
+0.253452 0.132342 0.00666335 0.00698182 1 0
+0.267364 0.139619 0.0433248 0.0124672 1 0
+0.122838 0.00676448 0.099532 0.00706562 1 0
+0.088942 0.0332556 0.113687 0.0111015 1 0
+0.121915 0.0365918 0.118239 0.010264 1 0
+0.120406 0.00711212 0.193704 0.00641037 1 0
+0.135269 0.00862405 0.166962 0.00889347 1 0
+0.111005 0.0192961 0.146296 0.00582169 1 0
+0.297338 0.00779496 0.0287033 0.00808652 1 0
+0.325794 0.00845973 0.0487937 0.00864908 1 0
+0.187851 0.0523203 0.125561 0.0131926 1 0
+0.182148 0.0200324 0.147672 0.00640389 1 0
+0.10101 0.193895 0.065773 0.00643011 1 0
+0.0885172 0.194105 0.0997932 0.00613151 1 0
+0.123113 0.194109 0.099166 0.00619423 1 0
+0.0744915 0.171931 0.0937713 0.0101514 1 0
+0.10953 0.171931 0.09374 0.0118815 1 0
+0.13666 0.0941074 0.00611892 0.00642099 1 0
+0.156667 0.0902607 0.024686 0.0119912 1 0
+0.303258 0.19412 0.0778613 0.00617833 1 0
+0.297043 0.193387 0.112406 0.00685793 1 0
+0.29511 0.172339 0.104884 0.0122603 1 0
+0.301542 0.172339 0.0704592 0.00991179 1 0
+0.145949 0.0298672 0.194806 0.00545143 1 0
+0.169201 0.0200324 0.181595 0.00717934 1 0
+0.0346919 0.119789 0.0059911 0.0062676 1 0
+0.0560667 0.113033 0.0260145 0.00745023 1 0
+0.39462 0.0641305 0.0251582 0.00571618 1 0
+0.358552 0.127788 0.156265 0.00671995 1 0
+0.22384 0.19136 0.0315576 0.00886931 1 0
+0.197737 0.181054 0.05669 0.00568653 1 0
+0.31648 0.0993063 0.190149 0.010111 1 0
+0.196881 0.194663 0.0976769 0.00566597 1 0
+0.0927236 0.142077 0.0872012 0.00896175 1 0
+0.325551 0.143717 0.179532 0.0103648 1 0
+0.293068 0.0329148 0.00869786 0.00893395 1 0
+0.145887 0.0300695 0.00590849 0.0061642 1 0
+0.163592 0.0622743 0.00591676 0.00618727 1 0
+0.177744 0.0321437 0.00757873 0.00778291 1 0
+0.18341 0.0582102 0.024686 0.00701536 1 0
+0.151823 0.0561318 0.024686 0.00798044 1 0
+0.148058 0.190384 0.0324284 0.00993649 1 0
+0.171705 0.193063 0.0644836 0.0072308 1 0
+0.183703 0.191741 0.0316221 0.00850022 1 0
+0.161592 0.181054 0.0575787 0.00827033 1 0
+0.0334841 0.0332556 0.113723 0.0127761 1 0
+0.177315 0.0318544 0.193179 0.00702079 1 0
+0.00742114 0.00649798 0.100794 0.00672344 1 0
+0.0327225 0.00713169 0.100056 0.00728828 1 0
+0.00670312 0.0301976 0.122088 0.00698302 1 0
+0.360594 0.166754 0.190849 0.00932946 1 0
+0.360458 0.194671 0.1947 0.00561391 1 0
+0.187984 0.166822 0.189677 0.0105794 1 0
+0.0890311 0.0525517 0.126723 0.0104433 1 0
+0.279526 0.0994358 0.191957 0.00838132 1 0
+0.2707 0.0735521 0.149494 0.0128078 1 0
+0.395059 0.132156 0.164748 0.00532758 1 0
+0.0630797 0.13145 0.0868896 0.010546 1 0
+0.297324 0.192975 0.0285702 0.00731488 1 0
+0.256988 0.193627 0.0285966 0.00663241 1 0
+0.159405 0.0365918 0.117685 0.0118586 1 0
+0.148494 0.0192961 0.145743 0.0110561 1 0
+0.155658 0.0566242 0.133204 0.0102794 1 0
+0.347491 0.0177192 0.0687235 0.00944119 1 0
+0.253944 0.133117 0.19163 0.00868888 1 0
+0.160668 0.192288 0.0983666 0.00794803 1 0
+0.162767 0.15232 0.0923495 0.011823 1 0
+0.118921 0.170146 0.0591912 0.00871951 1 0
+0.393862 0.0306371 0.0888131 0.00630879 1 0
+0.0342825 0.0868882 0.194405 0.00582405 1 0
+0.0724711 0.129665 0.0523407 0.00787313 1 0
+0.0114266 0.193846 0.10058 0.00631329 1 0
+0.00798199 0.0330447 0.00607383 0.00636767 1 0
+0.0238827 0.0560324 0.0188092 0.00805161 1 0
+0.225893 0.127786 0.132581 0.011245 1 0
+0.0878774 0.00698675 0.0995188 0.00723216 1 0
+0.359861 0.0100027 0.0325919 0.0101839 1 0
+0.00634885 0.0635272 0.15549 0.00666141 1 0
+0.198913 0.0523203 0.0914608 0.0110048 1 0
+0.316316 0.0979592 0.0127506 0.0129877 1 0
+0.279109 0.0990261 0.00597457 0.00631869 1 0
+0.282643 0.107185 0.049494 0.0141105 1 0
+0.0948512 0.190047 0.166682 0.0103369 1 0
+0.0557363 0.192315 0.133729 0.0080218 1 0
+0.345858 0.133694 0.191225 0.00911709 1 0
+0.291379 0.188532 0.163401 0.0117574 1 0
+0.147955 0.00690015 0.132871 0.00722402 1 0
+0.392977 0.0637462 0.155599 0.00734253 1 0
+0.205744 0.0981554 0.00574847 0.0060839 1 0
+0.213949 0.0598698 0.021521 0.00722832 1 0
+0.119829 0.194369 0.00555227 0.00581835 1 0
+0.110214 0.164362 0.00948955 0.00975918 1 0
+0.241564 0.0986453 0.00619258 0.0064188 1 0
+0.231155 0.0649184 0.00722361 0.00752111 1 0
+0.072516 0.00571679 0.032973 0.00607668 1 0
+0.0398795 0.0325987 0.0100453 0.0102223 1 0
+0.0749134 0.0529824 0.0074804 0.00770916 1 0
+0.034637 0.0863996 0.00611601 0.00636006 1 0
+0.0585358 0.0762134 0.0188092 0.00941862 1 0
+0.0452963 0.0822181 0.0448237 0.00939987 1 0
+0.0328906 0.192731 0.1 0.0074275 1 0
+0.00681689 0.00655054 0.166864 0.00687372 1 0
+0.00498748 0.0997191 0.00470913 0.00492065 1 0
+0.00722114 0.0969544 0.024775 0.00732295 1 0
+0.0214136 0.0928524 0.0260145 0.0106683 1 0
+0.00611892 0.0301864 0.0885671 0.00629176 1 0
+0.00549623 0.0956741 0.119829 0.00569037 1 0
+0.0334841 0.0986656 0.111524 0.0123951 1 0
+0.0742482 0.153988 0.191585 0.0087894 1 0
+0.346052 0.132703 0.0081435 0.00845818 1 0
+0.172624 0.00676555 0.166485 0.00710748 1 0
+0.105188 0.117628 0.00615975 0.0064399 1 0
+0.10855 0.190097 0.0325934 0.0101185 1 0
+0.168432 0.096057 0.00759595 0.00777318 1 0
+0.10551 0.0300778 0.00791612 0.00819381 1 0
+0.253178 0.0328009 0.00693181 0.00723025 1 0
+0.217325 0.0321298 0.00770683 0.00796454 1 0
+0.199642 0.193449 0.00648802 0.00669564 1 0
+0.19968 0.0060719 0.193867 0.00628404 1 0
+0.245174 0.106935 0.149494 0.0121355 1 0
+0.360308 0.190453 0.0326889 0.00972258 1 0
+0.326158 0.191821 0.0485561 0.00837765 1 0
+0.366278 0.195066 0.0822926 0.0051992 1 0
+0.392933 0.100219 0.00558497 0.00577655 1 0
+0.0342897 0.120289 0.194417 0.00586501 1 0
+0.0109856 0.167283 0.18869 0.0111292 1 0
+0.0394183 0.167057 0.191843 0.00833159 1 0
+0.390892 0.190956 0.0327244 0.0093067 1 0
+0.253763 0.0323933 0.190427 0.00989013 1 0
+0.279981 0.00552827 0.00540814 0.00558839 1 0
+0.390994 0.0986796 0.165026 0.00917001 1 0
+0.199351 0.00925291 0.00631537 0.00641028 1 0
+0.339858 0.0978656 0.116162 0.0143915 1 0
+0.291051 0.0839952 0.134791 0.0143838 1 0
+0.0230061 0.123341 0.115559 0.014715 1 0
+0.0519932 0.0216838 0.0700086 0.0118849 1 0
+0.0659504 0.0385772 0.0588947 0.0126856 1 0
+0.0384246 0.0355656 0.0575836 0.0111628 1 0
+0.0413681 0.0154344 0.0520067 0.00993293 1 0
+0.355919 0.0796688 0.144359 0.00987007 1 0
+0.353269 0.0664527 0.133592 0.00738205 1 0
+0.352004 0.0664607 0.170429 0.0103816 1 0
+0.359379 0.058104 0.157686 0.00654738 1 0
+0.0439492 0.0842267 0.143609 0.0103898 1 0
+0.0555715 0.0700535 0.136294 0.00934517 1 0
+0.0493466 0.0863296 0.163824 0.0106386 1 0
+0.0534492 0.0726907 0.152056 0.00677646 1 0
+0.0386384 0.178144 0.0651692 0.0144339 1 0
+0.0476738 0.170827 0.0475964 0.00663684 1 0
+0.0327376 0.19314 0.0513751 0.00696728 1 0
+0.308907 0.158592 0.0460618 0.0088282 1 0
+0.0166338 0.0802439 0.0709789 0.0135577 1 0
+0.0185188 0.0796215 0.097997 0.0135333 1 0
+0.017346 0.0603505 0.0840744 0.0102698 1 0
+0.385086 0.0340574 0.0498343 0.00972602 1 0
+0.388393 0.106695 0.102392 0.0116154 1 0
+0.38536 0.0845969 0.101285 0.00968738 1 0
+0.387865 0.0846269 0.118425 0.00763409 1 0
+0.387009 0.093955 0.0898924 0.00514799 1 0
+0.241671 0.181504 0.0670229 0.0112165 1 0
+0.226608 0.172233 0.0583028 0.00850386 1 0
+0.255964 0.172978 0.0541895 0.00979963 1 0
+0.249612 0.189723 0.0511142 0.00837173 1 0
+0.022717 0.0142507 0.190427 0.00962286 1 0
+0.0407331 0.0149915 0.192019 0.00699943 1 0
+0.235776 0.18609 0.115207 0.0139961 1 0
+0.248867 0.166126 0.126089 0.0122412 1 0
+0.22212 0.171399 0.131059 0.0115699 1 0
+0.229005 0.186785 0.133425 0.0054521 1 0
+0.0851153 0.146493 0.022762 0.0143185 1 0
+0.0669041 0.130177 0.0330515 0.0122099 1 0
+0.063305 0.151289 0.0168905 0.00877187 1 0
+0.0815405 0.0205122 0.0716063 0.012504 1 0
+0.0780966 0.038364 0.0727091 0.00571037 1 0
+0.0957399 0.0321352 0.0575695 0.010599 1 0
+0.105371 0.0143381 0.0549332 0.0098079 1 0
+0.353367 0.0167339 0.0905831 0.0132159 1 0
+0.385155 0.0166265 0.0999075 0.0139561 1 0
+0.210662 0.0770846 0.015566 0.0112815 1 0
+0.389953 0.0388172 0.108549 0.0102772 1 0
+0.374346 0.0517042 0.120709 0.011067 1 0
+0.370621 0.037495 0.137735 0.0114201 1 0
+0.390558 0.0348163 0.13853 0.00953474 1 0
+0.0614848 0.104058 0.127071 0.013075 1 0
+0.0841309 0.110185 0.141854 0.0146546 1 0
+0.313814 0.0452291 0.190212 0.00980316 1 0
+0.292761 0.0517713 0.19146 0.00875362 1 0
+0.21056 0.154445 0.121274 0.0111641 1 0
+0.206882 0.165797 0.0859801 0.014397 1 0
+0.185081 0.158987 0.101408 0.0131654 1 0
+0.240847 0.0199757 0.0656529 0.0122568 1 0
+0.106587 0.047547 0.0623922 0.00885443 1 0
+0.103367 0.0560932 0.0794102 0.0104592 1 0
+0.116016 0.0593138 0.0591628 0.00656649 1 0
+0.117395 0.0483294 0.048068 0.00910673 1 0
+0.191796 0.19261 0.178099 0.00739796 1 0
+0.190262 0.1898 0.155824 0.010507 1 0
+0.202655 0.189878 0.185887 0.00756968 1 0
+0.284667 0.0527579 0.0492684 0.0124918 1 0
+0.267685 0.0562034 0.0643551 0.0104832 1 0
+0.252363 0.0623362 0.0534503 0.00929825 1 0
+0.217215 0.109656 0.118837 0.0131045 1 0
+0.320736 0.0555155 0.0908827 0.0116948 1 0
+0.292623 0.0664634 0.113613 0.013154 1 0
+0.288493 0.0359165 0.11613 0.0108148 1 0
+0.306189 0.0324051 0.116388 0.00722874 1 0
+0.361999 0.0517455 0.0533655 0.0100488 1 0
+0.35477 0.0616834 0.0642386 0.00636022 1 0
+0.353108 0.0627607 0.0302231 0.00985696 1 0
+0.357697 0.0745456 0.0429063 0.00805419 1 0
+0.388473 0.0786088 0.0762144 0.0115309 1 0
+0.371176 0.0763511 0.0756446 0.00648226 1 0
+0.384953 0.0606811 0.0905716 0.0106986 1 0
+0.0133713 0.0395707 0.0482004 0.0112632 1 0
+0.377054 0.00985857 0.185869 0.00990833 1 0
+0.358234 0.00751157 0.184997 0.00687113 1 0
+0.322977 0.0666139 0.132647 0.0138483 1 0
+0.290648 0.0596014 0.144794 0.0119843 1 0
+0.318269 0.0522183 0.156885 0.0147333 1 0
+0.298642 0.0225801 0.107366 0.00809767 1 0
+0.275372 0.0400522 0.134644 0.0122502 1 0
+0.277295 0.0139269 0.111945 0.0142065 1 0
+0.243332 0.158549 0.107592 0.00849985 1 0
+0.242569 0.143772 0.132518 0.0118557 1 0
+0.250115 0.170904 0.148051 0.0102692 1 0
+0.270953 0.0113225 0.178894 0.0113339 1 0
+0.29312 0.0104373 0.185275 0.010733 1 0
+0.231865 0.191675 0.150453 0.0083346 1 0
+0.0363854 0.187793 0.145368 0.0117962 1 0
+0.037714 0.16799 0.147599 0.00817705 1 0
+0.286593 0.17804 0.189411 0.0105941 1 0
+0.293143 0.15599 0.186423 0.0120585 1 0
+0.264356 0.185135 0.187138 0.0121549 1 0
+0.164858 0.117047 0.185871 0.0144117 1 0
+0.177516 0.0986111 0.17122 0.0123366 1 0
+0.184805 0.120304 0.171268 0.0105479 1 0
+0.311233 0.0306946 0.142974 0.0118427 1 0
+0.304212 0.0102483 0.147532 0.0102694 1 0
+0.318374 0.0131916 0.133019 0.00952195 1 0
+0.0386367 0.0873516 0.0632239 0.0108306 1 0
+0.0346314 0.0785248 0.0759995 0.005206 1 0
+0.0129629 0.103031 0.0634684 0.0107145 1 0
+0.337932 0.040181 0.0586026 0.0119534 1 0
+0.32304 0.0510643 0.0458029 0.0104974 1 0
+0.250929 0.00828934 0.0790767 0.00830518 1 0
+0.279563 0.033216 0.0976184 0.0099148 1 0
+0.259255 0.0237673 0.0795199 0.0110999 1 0
+0.387591 0.0867004 0.191347 0.00868954 1 0
+0.380134 0.100613 0.182544 0.00878057 1 0
+0.363045 0.0756534 0.186215 0.0109639 1 0
+0.391256 0.0917194 0.178525 0.00601633 1 0
+0.0314241 0.0759766 0.119374 0.0117015 1 0
+0.029587 0.0691096 0.140595 0.0106787 1 0
+0.0388408 0.0552642 0.118268 0.0103264 1 0
+0.0157146 0.193858 0.0469593 0.00617142 1 0
+0.277481 0.181533 0.00721478 0.00724873 1 0
+0.271742 0.191377 0.0181054 0.00864813 1 0
+0.357203 0.0992801 0.0980791 0.010705 1 0
+0.346708 0.113725 0.102435 0.00767388 1 0
+0.363235 0.116484 0.111255 0.0112617 1 0
+0.36471 0.092865 0.133798 0.00918174 1 0
+0.179094 0.00946046 0.0850337 0.0094677 1 0
+0.199891 0.0155986 0.0842305 0.0120848 1 0
+0.172 0.021775 0.0668766 0.0128311 1 0
+0.161145 0.0142864 0.0849849 0.00957009 1 0
+0.16531 0.0124429 0.0443094 0.0124479 1 0
+0.0225446 0.0474814 0.0663094 0.0105236 1 0
+0.0363874 0.056185 0.0541821 0.00983428 1 0
+0.365501 0.08116 0.123471 0.00644773 1 0
+0.385763 0.0960578 0.128605 0.00781636 1 0
+0.0139599 0.147592 0.164164 0.0119845 1 0
+0.0193222 0.126877 0.155769 0.0110009 1 0
+0.0212865 0.132071 0.173446 0.00752773 1 0
+0.00730761 0.117082 0.165563 0.00740949 1 0
+0.355834 0.0185177 0.191414 0.00859597 1 0
+0.348607 0.0383027 0.189035 0.0111529 1 0
+0.132639 0.191841 0.11779 0.00827679 1 0
+0.131246 0.18865 0.14727 0.0116651 1 0
+0.116957 0.175433 0.141497 0.00846987 1 0
+0.393127 0.106986 0.048055 0.0069068 1 0
+0.386686 0.0899624 0.0516342 0.00902786 1 0
+0.394727 0.112683 0.030698 0.00538644 1 0
+0.387084 0.104472 0.0346597 0.00655158 1 0
+0.345148 0.184789 0.0466062 0.0120454 1 0
+0.356736 0.19091 0.0990343 0.0093597 1 0
+0.127682 0.00939457 0.0200367 0.00940051 1 0
+0.132097 0.0106245 0.0400132 0.0108593 1 0
+0.114843 0.0126578 0.0419875 0.00632081 1 0
+0.116248 0.014684 0.0122303 0.00542048 1 0
+0.170733 0.133505 0.170743 0.00875461 1 0
+0.218872 0.06169 0.160269 0.0125913 1 0
+0.246232 0.0513181 0.190082 0.0100493 1 0
+0.143967 0.127614 0.0582512 0.0136594 1 0
+0.301316 0.0589064 0.0296002 0.0140002 1 0
+0.305269 0.053935 0.0508793 0.00820659 1 0
+0.306264 0.0475953 0.00980291 0.00981875 1 0
+0.0837573 0.0439635 0.0525451 0.00697184 1 0
+0.0834765 0.0514769 0.0414608 0.00642183 1 0
+0.076722 0.0672725 0.0328524 0.0127936 1 0
+0.0658256 0.110332 0.0584587 0.013466 1 0
+0.0942477 0.102218 0.0133943 0.0136546 1 0
+0.225715 0.148708 0.162646 0.00924061 1 0
+0.221432 0.176832 0.188792 0.00785824 1 0
+0.348751 0.0206444 0.0108774 0.0108922 1 0
+0.354084 0.00754641 0.0149245 0.00773943 1 0
+0.16887 0.150891 0.0104275 0.0104412 1 0
+0.184389 0.138255 0.0194275 0.0122844 1 0
+0.170477 0.0770973 0.185021 0.0141745 1 0
+0.179787 0.0643972 0.161671 0.0126068 1 0
+0.178077 0.0813081 0.167517 0.00536716 1 0
+0.171908 0.0530528 0.187151 0.0100066 1 0
+0.0215599 0.00758453 0.0470124 0.00758974 1 0
+0.295725 0.0372936 0.0668884 0.013429 1 0
+0.257832 0.038671 0.0651608 0.00964449 1 0
+0.375459 0.123248 0.09362 0.0112366 1 0
+0.378156 0.157402 0.0583142 0.0146607 1 0
+0.361717 0.112088 0.0437565 0.0134527 1 0
+0.354214 0.0947525 0.0274061 0.0115302 1 0
+0.343699 0.127706 0.046363 0.0105342 1 0
+0.375771 0.093816 0.0209501 0.0109917 1 0
+0.387431 0.179191 0.116619 0.012603 1 0
+0.38242 0.153218 0.1108 0.0133994 1 0
+0.378499 0.187674 0.094636 0.0118575 1 0
+0.231756 0.00691231 0.151275 0.00691899 1 0
+0.241288 0.00968751 0.13274 0.0100394 1 0
+0.224111 0.0114066 0.159899 0.00626691 1 0
+0.0229603 0.185685 0.00743012 0.00747811 1 0
+0.037411 0.185073 0.00917614 0.00771211 1 0
+0.0152978 0.169501 0.00788204 0.0080064 1 0
+0.365584 0.0584976 0.015229 0.0101092 1 0
+0.377674 0.064919 0.0295789 0.00972316 1 0
+0.371345 0.0763962 0.0124227 0.00890194 1 0
+0.00607016 0.113737 0.183234 0.00610793 1 0
+0.0177482 0.106556 0.166576 0.00753866 1 0
+0.0173924 0.101126 0.188401 0.0116203 1 0
+0.320855 0.0376444 0.0116917 0.00734364 1 0
+0.165208 0.137354 0.0720785 0.0134923 1 0
+0.144079 0.135267 0.0312902 0.014367 1 0
+0.165475 0.13543 0.0466744 0.011986 1 0
+0.0745623 0.00883203 0.149173 0.00893237 1 0
+0.0535073 0.0116626 0.173585 0.00612253 1 0
+0.130865 0.0425638 0.145565 0.0127738 1 0
+0.0174239 0.190396 0.172379 0.00967554 1 0
+0.0419233 0.185353 0.185353 0.0108033 1 0
+0.36587 0.143274 0.129383 0.0133985 1 0
+0.38734 0.15923 0.145213 0.0112514 1 0
+0.250941 0.192171 0.0787188 0.00784625 1 0
+0.240426 0.178773 0.0903638 0.0123165 1 0
+0.26236 0.182441 0.0879309 0.0100541 1 0
+0.115378 0.0852737 0.0465421 0.0127064 1 0
+0.135265 0.0258461 0.0546071 0.0104916 1 0
+0.289878 0.0375387 0.0857934 0.00636108 1 0
+0.294878 0.0501245 0.0832888 0.00741146 1 0
+0.296897 0.0125443 0.0631942 0.0116219 1 0
+0.0319177 0.15258 0.137429 0.0111748 1 0
+0.0461303 0.13768 0.146997 0.011531 1 0
+0.0124959 0.159635 0.144886 0.0107932 1 0
+0.121417 0.0316553 0.0691049 0.0103816 1 0
+0.142505 0.0474971 0.0650048 0.0125079 1 0
+0.136531 0.0567854 0.0846523 0.0100307 1 0
+0.00947917 0.146002 0.0490215 0.00949669 1 0
+0.0189339 0.126393 0.0464796 0.0120048 1 0
+0.0138137 0.140396 0.0740045 0.0136698 1 0
+0.211644 0.133981 0.118885 0.00946723 1 0
+0.203399 0.154344 0.1416 0.0103861 1 0
+0.37496 0.0650114 0.17113 0.0110079 1 0
+0.368208 0.0574165 0.187213 0.00801593 1 0
+0.0599565 0.140497 0.16553 0.0117625 1 0
+0.0649543 0.135088 0.147747 0.00748528 1 0
+0.0507607 0.119256 0.166314 0.0113964 1 0
+0.0611788 0.126711 0.156142 0.00496128 1 0
+0.071849 0.165862 0.0484098 0.00783746 1 0
+0.232227 0.15496 0.0381257 0.0051099 1 0
+0.26539 0.153878 0.0308856 0.00655751 1 0
+0.254226 0.148364 0.010579 0.00954279 1 0
+0.0872335 0.0210381 0.0948407 0.0114235 1 0
+0.105355 0.0511996 0.109046 0.0136553 1 0
+0.116522 0.0454841 0.0897557 0.00935573 1 0
+0.1186 0.0229352 0.0978742 0.0144792 1 0
+0.114751 0.0094733 0.178 0.00947644 1 0
+0.124719 0.0129115 0.190021 0.00698671 1 0
+0.307064 0.0130512 0.042066 0.0118309 1 0
+0.31323 0.00918472 0.0581303 0.00580519 1 0
+0.211591 0.0479259 0.138481 0.0141896 1 0
+0.192181 0.0566818 0.146392 0.00852602 1 0
+0.106678 0.190419 0.0861648 0.00958831 1 0
+0.0908359 0.178847 0.108707 0.0130443 1 0
+0.111001 0.188553 0.106954 0.00940378 1 0
+0.0909946 0.179291 0.086244 0.00942362 1 0
+0.134588 0.0840325 0.0312592 0.0118727 1 0
+0.12406 0.109313 0.00937685 0.00950764 1 0
+0.152886 0.0799858 0.0459999 0.0119702 1 0
+0.162111 0.101123 0.0443798 0.0111489 1 0
+0.367244 0.0678647 0.0600582 0.00817559 1 0
+0.379698 0.0622769 0.0475206 0.00852458 1 0
+0.382411 0.0656188 0.0628647 0.00741194 1 0
+0.00530947 0.148284 0.152208 0.00533782 1 0
+0.288341 0.189851 0.092671 0.0101512 1 0
+0.309853 0.189503 0.10137 0.0106376 1 0
+0.302921 0.179146 0.0872126 0.00822421 1 0
+0.296218 0.186488 0.0765203 0.00637589 1 0
+0.12987 0.0269885 0.191541 0.00851021 1 0
+0.155532 0.0360994 0.188404 0.00782845 1 0
+0.0410591 0.123946 0.0199892 0.0120594 1 0
+0.0498383 0.139312 0.0286472 0.00764205 1 0
+0.031696 0.141924 0.030251 0.01066 1 0
+0.0422405 0.140611 0.0091657 0.00922523 1 0
+0.322469 0.0178805 0.146835 0.00563141 1 0
+0.353699 0.0281999 0.149582 0.011231 1 0
+0.393307 0.0473753 0.0129008 0.0067172 1 0
+0.39101 0.0521887 0.0335625 0.00922384 1 0
+0.387535 0.0310431 0.0114009 0.00871386 1 0
+0.352823 0.136375 0.117279 0.00568851 1 0
+0.371019 0.129497 0.146528 0.00919033 1 0
+0.23975 0.193302 0.0389499 0.00670009 1 0
+0.21322 0.183876 0.0473552 0.012344 1 0
+0.290996 0.0840484 0.162816 0.0136415 1 0
+0.325332 0.0739599 0.153491 0.00837755 1 0
+0.216003 0.193165 0.107949 0.00683835 1 0
+0.208824 0.186868 0.0957084 0.0088923 1 0
+0.0847779 0.120989 0.0918488 0.0140475 1 0
+0.345015 0.130383 0.172191 0.0143434 1 0
+0.312653 0.0320914 0.00504478 0.00513512 1 0
+0.160375 0.0435024 0.012158 0.0121629 1 0
+0.167644 0.0655224 0.0186183 0.0113927 1 0
+0.153084 0.0234026 0.0132979 0.00819621 1 0
+0.165403 0.190889 0.0441825 0.00911561 1 0
+0.180966 0.183623 0.0569599 0.011283 1 0
+0.0703895 0.0374811 0.129595 0.0136996 1 0
+0.0388652 0.0422696 0.134182 0.0102187 1 0
+0.392038 0.0743685 0.0348702 0.00826804 1 0
+0.196846 0.143226 0.0628502 0.0136246 1 0
+0.013777 0.012867 0.0881742 0.0129082 1 0
+0.0326336 0.0202219 0.096746 0.00864434 1 0
+0.0196705 0.0323884 0.0967388 0.00913384 1 0
+0.0212244 0.0499256 0.104219 0.00999515 1 0
+0.0168423 0.0335269 0.131134 0.0113103 1 0
+0.36748 0.185207 0.190326 0.00919273 1 0
+0.352104 0.181131 0.189058 0.00676397 1 0
+0.356398 0.190294 0.182063 0.00553682 1 0
+0.189141 0.142776 0.181993 0.0147268 1 0
+0.209487 0.139272 0.155345 0.0109017 1 0
+0.0562426 0.155027 0.00555774 0.005627 1 0
+0.107317 0.0430345 0.132072 0.0108538 1 0
+0.296461 0.0860378 0.187312 0.0126963 1 0
+0.277728 0.103706 0.177365 0.0141811 1 0
+0.299084 0.0636102 0.162844 0.00833912 1 0
+0.385162 0.120121 0.157934 0.0112558 1 0
+0.37038 0.132965 0.168166 0.0108392 1 0
+0.385632 0.140025 0.158284 0.00865763 1 0
+0.0482981 0.19129 0.0831739 0.00916622 1 0
+0.0612524 0.15544 0.0821634 0.0139729 1 0
+0.0367202 0.15469 0.0757918 0.0113843 1 0
+0.161624 0.0198379 0.103776 0.0100296 1 0
+0.15685 0.0402778 0.0923543 0.0138665 1 0
+0.15098 0.0378477 0.137264 0.00949224 1 0
+0.149986 0.0504614 0.149848 0.0083531 1 0
+0.169736 0.0424577 0.135879 0.00987065 1 0
+0.345062 0.0342228 0.0782216 0.00975469 1 0
+0.33098 0.0194967 0.0588677 0.00986929 1 0
+0.327716 0.0304708 0.0735557 0.00859503 1 0
+0.246079 0.154124 0.191715 0.00829122 1 0
+0.257018 0.141833 0.182154 0.0109571 1 0
+0.0909553 0.0358688 0.131503 0.00701734 1 0
+0.0721281 0.060405 0.134812 0.00987482 1 0
+0.129253 0.179824 0.102862 0.0112379 1 0
+0.164382 0.176216 0.10136 0.0137664 1 0
+0.140089 0.149112 0.0760627 0.0145271 1 0
+0.140634 0.172744 0.0614462 0.013265 1 0
+0.180291 0.151694 0.0809075 0.00911506 1 0
+0.386181 0.0416112 0.0904011 0.00841162 1 0
+0.0516717 0.0525541 0.184848 0.0140982 1 0
+0.0722764 0.0624285 0.179007 0.00948518 1 0
+0.0348474 0.0734227 0.181379 0.0129312 1 0
+0.0506055 0.100507 0.0440875 0.00965794 1 0
+0.0706543 0.0913602 0.0671509 0.00795337 1 0
+0.0816734 0.117759 0.0433435 0.00965938 1 0
+0.0483573 0.188757 0.112117 0.0111442 1 0
+0.00970976 0.0470906 0.0128571 0.00973229 1 0
+0.0123456 0.0550317 0.0325287 0.00990198 1 0
+0.00980577 0.0280851 0.0111555 0.00741917 1 0
+0.2282 0.155122 0.0560451 0.00882879 1 0
+0.213943 0.16944 0.0663647 0.00676659 1 0
+0.232681 0.136413 0.112038 0.0120468 1 0
+0.243686 0.114589 0.120711 0.0138871 1 0
+0.0564921 0.0924674 0.105065 0.0122932 1 0
+0.0498239 0.190957 0.0181107 0.00905355 1 0
+0.238506 0.150955 0.00679354 0.00687541 1 0
+0.106056 0.00804251 0.0861211 0.0080478 1 0
+0.0994817 0.0132035 0.11266 0.0115751 1 0
+0.142361 0.143467 0.102546 0.0126466 1 0
+0.346896 0.0103949 0.0502715 0.0104187 1 0
+0.337578 0.00615697 0.0647539 0.00632648 1 0
+0.365415 0.0149719 0.0720151 0.008988 1 0
+0.0131234 0.045257 0.15088 0.0119557 1 0
+0.0127507 0.0623101 0.141517 0.00750223 1 0
+0.304444 0.185815 0.0513571 0.0136452 1 0
+0.281936 0.176296 0.0604795 0.0124403 1 0
+0.179508 0.0471838 0.102471 0.0118902 1 0
+0.178001 0.0538737 0.0770514 0.0144384 1 0
+0.187521 0.0410831 0.0886018 0.00525026 1 0
+0.174998 0.0847604 0.0147851 0.00955679 1 0
+0.290064 0.084341 0.0344495 0.0142315 1 0
+0.290002 0.0844431 0.0611749 0.0124942 1 0
+0.376134 0.0463674 0.191537 0.00625324 1 0
+0.0513784 0.191572 0.152027 0.00853012 1 0
+0.0678098 0.176773 0.12328 0.0142848 1 0
+0.344998 0.153703 0.184615 0.0120791 1 0
+0.362316 0.140492 0.185516 0.00972086 1 0
+0.18804 0.169771 0.146387 0.0119031 1 0
+0.308172 0.180009 0.1575 0.00797814 1 0
+0.308458 0.182891 0.125762 0.0146732 1 0
+0.323046 0.0647415 0.0612375 0.0101253 1 0
+0.314683 0.0935818 0.0994618 0.0142316 1 0
+0.30898 0.0979252 0.0495522 0.0135253 1 0
+0.347456 0.0862242 0.0563558 0.0124924 1 0
+0.139757 0.0240381 0.124471 0.0124244 1 0
+0.119083 0.0265038 0.135206 0.00967716 1 0
+0.131047 0.00950555 0.13885 0.00995462 1 0
+0.390467 0.0463886 0.154038 0.00872832 1 0
+0.379006 0.0613228 0.150385 0.0104481 1 0
+0.382075 0.0448445 0.00657943 0.00658226 1 0
+0.22257 0.14715 0.140927 0.0101008 1 0
+0.283228 0.192355 0.18211 0.00772919 1 0
+0.251721 0.184881 0.157569 0.00671726 1 0
+0.272656 0.0531788 0.149365 0.0076595 1 0
+0.209222 0.0940953 0.0136833 0.00589358 1 0
+0.199062 0.0655167 0.031442 0.0115316 1 0
+0.193577 0.0745342 0.0173387 0.00608358 1 0
+0.132108 0.179284 0.00894548 0.0089664 1 0
+0.139169 0.152455 0.0124863 0.0115774 1 0
+0.226438 0.0840168 0.00791548 0.00792328 1 0
+0.231146 0.0678308 0.0205716 0.0117466 1 0
+0.242263 0.0852114 0.0147031 0.00970349 1 0
+0.151372 0.0795723 0.192909 0.00712179 1 0
+0.0541621 0.009468 0.0191585 0.00949259 1 0
+0.0663788 0.0137363 0.0309331 0.00688294 1 0
+0.0387704 0.0148417 0.0112337 0.00865432 1 0
+0.353335 0.0998197 0.0757791 0.0119344 1 0
+0.362165 0.119893 0.187596 0.010984 1 0
+0.0728923 0.0772205 0.190884 0.00967805 1 0
+0.288715 0.00701357 0.0926238 0.00701559 1 0
+0.0506495 0.0549668 0.0138225 0.0138284 1 0
+0.0708841 0.0519034 0.0203875 0.00783806 1 0
+0.0365921 0.0763735 0.0199077 0.0125531 1 0
+0.365386 0.0868869 0.0713017 0.00630041 1 0
+0.054346 0.0732162 0.0601268 0.0105279 1 0
+0.05443 0.0886831 0.0309235 0.00844493 1 0
+0.057257 0.0690964 0.0416356 0.00863903 1 0
+0.364393 0.0328048 0.0626499 0.0111804 1 0
+0.262206 0.12561 0.144205 0.0136869 1 0
+0.0690483 0.193069 0.111205 0.00699695 1 0
+0.0517508 0.17195 0.111857 0.00600386 1 0
+0.0317408 0.00808948 0.183343 0.00727501 1 0
+0.0448126 0.132295 0.0726416 0.012636 1 0
+0.0105125 0.0861309 0.00983185 0.0100961 1 0
+0.0124964 0.104975 0.0414812 0.0109114 1 0
+0.00883058 0.0853637 0.0392147 0.00906131 1 0
+0.0142786 0.1082 0.011511 0.0115812 1 0
+0.0377934 0.0960012 0.182614 0.00987213 1 0
+0.0166288 0.068417 0.167964 0.0102407 1 0
+0.306593 0.0605586 0.0743283 0.0106548 1 0
+0.0219073 0.0146401 0.00836378 0.00841415 1 0
+0.00810007 0.0434991 0.0724525 0.00811193 1 0
+0.0221052 0.0452536 0.0887114 0.00622461 1 0
+0.0164182 0.0888751 0.117519 0.0081728 1 0
+0.0358909 0.0913123 0.129594 0.00726122 1 0
+0.0149256 0.101493 0.132387 0.0113841 1 0
+0.0064834 0.0180904 0.106134 0.00649126 1 0
+0.327023 0.0779322 0.11252 0.00959491 1 0
+0.0792518 0.136865 0.0706925 0.0129743 1 0
+0.0720758 0.152592 0.0579455 0.00850425 1 0
+0.0861308 0.159992 0.0801141 0.0114014 1 0
+0.103346 0.171842 0.0714987 0.0112036 1 0
+0.3503 0.125144 0.0244213 0.0125217 1 0
+0.154271 0.00658848 0.154326 0.00659142 1 0
+0.145609 0.0129631 0.162101 0.00672077 1 0
+0.105485 0.124246 0.0203198 0.0118756 1 0
+0.385248 0.0794694 0.158897 0.0105453 1 0
+0.372667 0.0773341 0.146586 0.0071862 1 0
+0.343365 0.0431501 0.146365 0.00722527 1 0
+0.063767 0.142112 0.0487261 0.00773984 1 0
+0.0938688 0.184927 0.0594656 0.00894189 1 0
+0.152705 0.0619648 0.0546286 0.00801086 1 0
+0.39375 0.146995 0.0492081 0.00626239 1 0
+0.383045 0.130686 0.0581556 0.0124989 1 0
+0.167215 0.0563811 0.117252 0.00942078 1 0
+0.171844 0.0640991 0.131713 0.0076115 1 0
+0.152281 0.0794524 0.0082892 0.00831509 1 0
+0.175193 0.0796253 0.0358228 0.0120995 1 0
+0.140635 0.090329 0.0145581 0.00697231 1 0
+0.286716 0.16251 0.0756719 0.00862372 1 0
+0.248275 0.0833534 0.144199 0.0122316 1 0
+0.126338 0.0206836 0.00730592 0.00730955 1 0
+0.0404216 0.100268 0.0163574 0.0119049 1 0
+0.0378094 0.0911662 0.0329799 0.00722532 1 0
+0.235829 0.0443444 0.0110074 0.0110097 1 0
+0.248735 0.0314925 0.0141296 0.00612448 1 0
+0.208742 0.178494 0.0101585 0.0101662 1 0
+0.196251 0.189903 0.0181036 0.0101298 1 0
+0.0887479 0.0103276 0.0365731 0.0103767 1 0
+0.0975155 0.00563253 0.0489598 0.0056578 1 0
+0.0158431 0.106378 0.0939756 0.0136557 1 0
+0.0502105 0.113761 0.109082 0.0102676 1 0
+0.0436462 0.104431 0.0946859 0.00809977 1 0
+0.202061 0.187687 0.0791138 0.00904632 1 0
+0.201503 0.0132524 0.0433349 0.0106019 1 0
+0.191637 0.0115332 0.178539 0.0115424 1 0
+0.204607 0.0138582 0.167907 0.00543025 1 0
+0.194779 0.0189619 0.192232 0.00777998 1 0
+0.168729 0.189848 0.0818483 0.010209 1 0
+0.129854 0.190782 0.0210644 0.00923197 1 0
+0.26258 0.110366 0.161066 0.00904576 1 0
+0.262803 0.106419 0.146864 0.00569588 1 0
+0.36782 0.188057 0.0582292 0.0121309 1 0
+0.363468 0.18552 0.0857521 0.00573485 1 0
+0.355917 0.173687 0.0582736 0.00732894 1 0
+0.14095 0.00809392 0.111729 0.00810161 1 0
+0.139403 0.0520251 0.158761 0.00557152 1 0
+0.391256 0.0859491 0.00909444 0.00878231 1 0
+0.388958 0.10046 0.0129862 0.00578511 1 0
+0.229216 0.108846 0.136684 0.00841708 1 0
+0.252786 0.0911588 0.168619 0.0137994 1 0
+0.0620011 0.109176 0.0885769 0.0118184 1 0
+0.341706 0.111231 0.188779 0.0112243 1 0
+0.035336 0.135001 0.185697 0.0113418 1 0
+0.0334853 0.114705 0.182273 0.00932439 1 0
+0.0245974 0.185509 0.191853 0.00818761 1 0
+0.204741 0.0577915 0.0675464 0.0142103 1 0
+0.206424 0.179996 0.192712 0.00729287 1 0
+0.370418 0.00789946 0.0151283 0.00793645 1 0
+0.297334 0.10541 0.0705256 0.0116052 1 0
+0.289761 0.133647 0.0548894 0.0134367 1 0
+0.26159 0.111988 0.191384 0.00862492 1 0
+0.378576 0.0868718 0.00681008 0.00500929 1 0
+0.0298629 0.0738766 0.05118 0.00925954 1 0
+0.197723 0.039046 0.0100464 0.01024 1 0
+0.273033 0.0212788 0.192444 0.00756068 1 0
+0.271806 0.0218552 0.0091431 0.00915288 1 0
+0.282277 0.0111852 0.0121297 0.00665603 1 0
+0.0912619 0.1637 0.00873324 0.00896896 1 0
+0.187463 0.109838 0.010696 0.0107031 1 0
+0.211959 0.150836 0.0463463 0.0100119 1 0
+0.276616 0.00726373 0.0208333 0.00726634 1 0
+0.269059 0.00801338 0.0365432 0.00799643 1 0
+0.350892 0.112417 0.0889808 0.00647615 1 0
+0.382318 0.104857 0.167515 0.00698831 1 0
+0.391578 0.112555 0.1718 0.00579373 1 0
+0.0383565 0.118252 0.13661 0.0118309 1 0
+0.347168 0.106342 0.0103183 0.0103355 1 0
+0.0531425 0.147131 0.189814 0.0101934 1 0
+0.0600396 0.165464 0.190941 0.00934447 1 0
+0.154216 0.190864 0.116273 0.00922074 1 0
+0.179424 0.193204 0.0949906 0.00683883 1 0
+0.212951 0.124659 0.145298 0.00716684 1 0
+0.204603 0.0185068 0.00721977 0.0072496 1 0
+0.188898 0.0204287 0.0133955 0.00869768 1 0
+0.390733 0.0440608 0.0726776 0.00928055 1 0
+0.375987 0.0444276 0.0718798 0.00765274 1 0
+0.369288 0.114453 0.0681617 0.0110147 1 0
+0.0346381 0.104006 0.194264 0.0058219 1 0
+0.276533 0.149359 0.0667189 0.0102655 1 0
+0.215694 0.192892 0.0133808 0.00725409 1 0
+0.240383 0.0400749 0.0586261 0.00904036 1 0
+0.0898222 0.0384868 0.00728664 0.00748467 1 0
+0.0845856 0.0737115 0.0110843 0.0113386 1 0
+0.315825 0.189883 0.0295578 0.0104679 1 0
+0.37166 0.193887 0.0984797 0.00613497 1 0
+0.0122528 0.0828442 0.152275 0.0115181 1 0
+0.0158326 0.0667114 0.152824 0.00501628 1 0
+0.227332 0.0458339 0.193588 0.00644537 1 0
+0.0277894 0.19127 0.0808528 0.00878933 1 0
+0.392151 0.0865789 0.141861 0.00786235 1 0
+0.168763 0.151455 0.190798 0.0092146 1 0
+0.204381 0.00966975 0.0216306 0.00967165 1 0
+0.0243094 0.150481 0.0968196 0.013393 1 0
+0.0336358 0.0203736 0.0661439 0.00692063 1 0
+0.361559 0.0637907 0.145559 0.00702253 1 0
+0.0619236 0.074084 0.16276 0.00694743 1 0
+0.0382627 0.160366 0.0558773 0.00562937 1 0
+0.0275376 0.0718734 0.0836242 0.00512013 1 0
+0.228784 0.0149795 0.112927 0.0135174 1 0
+0.395161 0.0898583 0.106136 0.00496068 1 0
+0.25985 0.18758 0.0639603 0.00819434 1 0
+0.0299818 0.0347722 0.183721 0.0061519 1 0
+0.21549 0.186948 0.122246 0.00749354 1 0
+0.361217 0.177099 0.150076 0.0109281 1 0
+0.067308 0.149657 0.0302269 0.00524767 1 0
+0.0991941 0.0200913 0.0677805 0.00556428 1 0
+0.367458 0.0270138 0.0999109 0.00656395 1 0
+0.382911 0.0385284 0.126089 0.00554315 1 0
+0.15259 0.102064 0.170509 0.0103504 1 0
+0.204226 0.159285 0.105587 0.00643247 1 0
+0.106211 0.0611613 0.0650592 0.00502375 1 0
+0.200173 0.191619 0.170332 0.00501194 1 0
+0.271079 0.0587953 0.0365451 0.00707767 1 0
+0.311446 0.0565969 0.10969 0.0084572 1 0
+0.375804 0.0736045 0.0865151 0.00564715 1 0
+0.374788 0.00974941 0.169654 0.00494595 1 0
+0.307617 0.0594108 0.141521 0.0052979 1 0
+0.282294 0.0255418 0.127101 0.00550773 1 0
+0.270122 0.0111254 0.154309 0.0114169 1 0
+0.278578 0.161938 0.192902 0.00495567 1 0
+0.185316 0.109793 0.154663 0.00911126 1 0
+0.293049 0.024156 0.145083 0.00759668 1 0
+0.0265287 0.096412 0.0693108 0.00547116 1 0
+0.241683 0.0191683 0.0860944 0.0082177 1 0
+0.368118 0.0918938 0.184249 0.00616362 1 0
+0.0420928 0.0663928 0.129828 0.00604567 1 0
+0.272006 0.172145 0.0138445 0.00574495 1 0
+0.358694 0.104248 0.124013 0.00698951 1 0
+0.172924 0.0295833 0.0470859 0.00846439 1 0
+0.0390121 0.0491533 0.0682909 0.00614668 1 0
+0.375885 0.0784083 0.117374 0.00590407 1 0
+0.129273 0.172145 0.145903 0.00501788 1 0
+0.391118 0.093988 0.0385701 0.00534297 1 0
+0.105125 0.00750422 0.0121776 0.0078184 1 0
+0.245577 0.0643043 0.163627 0.0144505 1 0
+0.133484 0.113119 0.0700113 0.00774841 1 0
+0.292684 0.0677731 0.0443244 0.00523317 1 0
+0.0766266 0.0592614 0.0541753 0.00998487 1 0
+0.0920868 0.096747 0.0403876 0.0139767 1 0
+0.355631 0.0369208 0.00910917 0.00678582 1 0
+0.187383 0.152005 0.00844206 0.00556809 1 0
+0.18167 0.0620785 0.179408 0.00537936 1 0
+0.0159403 0.00601645 0.0343362 0.00609946 1 0
+0.273759 0.040202 0.0598429 0.00721707 1 0
+0.383771 0.152815 0.084718 0.0127205 1 0
+0.365547 0.1106 0.0219998 0.00868864 1 0
+0.382057 0.169898 0.0993032 0.0068623 1 0
+0.381343 0.0643481 0.0134882 0.00679037 1 0
+0.0639149 0.00754483 0.168317 0.00764772 1 0
+0.0255336 0.192066 0.158187 0.00553389 1 0
+0.373082 0.165629 0.128448 0.0101101 1 0
+0.252547 0.191844 0.100086 0.00835748 1 0
+0.0965972 0.0845669 0.0638608 0.0128504 1 0
+0.14744 0.0175978 0.0433787 0.00617132 1 0
+0.284139 0.0201847 0.081076 0.0116354 1 0
+0.0265165 0.16914 0.138529 0.00627887 1 0
+0.137475 0.0306754 0.0699326 0.00572817 1 0
+0.0227494 0.144802 0.0482607 0.00688008 1 0
+0.379247 0.0677962 0.188607 0.00720059 1 0
+0.261495 0.142099 0.0245236 0.00738447 1 0
+0.106169 0.0378184 0.09608 0.00499535 1 0
+0.310725 0.0197461 0.0571708 0.00509167 1 0
+0.19151 0.0413327 0.142497 0.00732389 1 0
+0.139872 0.105686 0.0266184 0.0108939 1 0
+0.373959 0.0564584 0.0614421 0.00513291 1 0
+0.146353 0.0271243 0.18695 0.00509141 1 0
+0.0298808 0.136673 0.014959 0.0056102 1 0
+0.340704 0.0146383 0.141235 0.00932259 1 0
+0.366728 0.120761 0.130942 0.00918468 1 0
+0.221367 0.186752 0.102372 0.00531139 1 0
+0.0996498 0.0980634 0.092229 0.0132821 1 0
+0.170107 0.0277319 0.0112926 0.00509826 1 0
+0.168886 0.177023 0.0442298 0.0074665 1 0
+0.0497445 0.0241692 0.132148 0.0109974 1 0
+0.389449 0.0608805 0.0214952 0.00511992 1 0
+0.188863 0.129071 0.0421877 0.012663 1 0
+0.168 0.0388015 0.189779 0.00500258 1 0
+0.0361613 0.0111184 0.0808431 0.0100163 1 0
+0.0330297 0.027338 0.131563 0.00602515 1 0
+0.380836 0.174758 0.191983 0.00805852 1 0
+0.191985 0.140342 0.160274 0.0073124 1 0
+0.0475619 0.155101 0.0135935 0.00636649 1 0
+0.089078 0.0771357 0.130195 0.0143848 1 0
+0.386624 0.131859 0.169841 0.00552843 1 0
+0.163404 0.0272597 0.139457 0.00697779 1 0
+0.317549 0.0334651 0.0588785 0.00950924 1 0
+0.251437 0.157781 0.182183 0.00593932 1 0
+0.0862738 0.0444398 0.144012 0.00885247 1 0
+0.144082 0.165439 0.105567 0.0095987 1 0
+0.162451 0.163006 0.0706732 0.0123462 1 0
+0.377191 0.0348654 0.0993471 0.00595367 1 0
+0.0292483 0.0558257 0.19181 0.00845751 1 0
+0.0731428 0.104323 0.0409557 0.00643389 1 0
+0.0198718 0.17265 0.11226 0.0139851 1 0
+0.236318 0.163423 0.0677451 0.00765444 1 0
+0.229331 0.119425 0.108368 0.00565285 1 0
+0.0618705 0.108585 0.148216 0.00855224 1 0
+0.0472707 0.190341 0.0339418 0.00579053 1 0
+0.252217 0.157224 0.00623357 0.00624238 1 0
+0.0962091 0.0159385 0.081255 0.00563935 1 0
+0.00817874 0.0253714 0.146558 0.0083663 1 0
+0.291538 0.171609 0.0445923 0.00670552 1 0
+0.192874 0.0346911 0.0760032 0.00985719 1 0
+0.186361 0.103634 0.0473216 0.0134073 1 0
+0.0741433 0.188066 0.14553 0.0114578 1 0
+0.337023 0.158487 0.194499 0.00550687 1 0
+0.314179 0.0840405 0.072824 0.014068 1 0
+0.133116 0.0246177 0.141414 0.00578305 1 0
+0.394011 0.0446063 0.149989 0.00599448 1 0
+0.37493 0.0385825 0.0159213 0.0066536 1 0
+0.22654 0.143138 0.126695 0.00520927 1 0
+0.268222 0.192866 0.175692 0.00715241 1 0
+0.283563 0.0645575 0.16196 0.00723602 1 0
+0.212596 0.0829564 0.0372903 0.0113053 1 0
+0.123976 0.161412 0.0117908 0.00607324 1 0
+0.162715 0.0962505 0.18281 0.00660952 1 0
+0.0501585 0.00739969 0.0403256 0.00761423 1 0
+0.338479 0.102953 0.0632961 0.00772136 1 0
+0.210651 0.0578669 0.112459 0.0136824 1 0
+0.0662949 0.0647975 0.151469 0.0083119 1 0
+0.289129 0.0209543 0.0975938 0.00563666 1 0
+0.031921 0.0468844 0.0111795 0.00631896 1 0
+0.374995 0.0812476 0.0630345 0.00757385 1 0
+0.240684 0.182445 0.153056 0.00545292 1 0
+0.052213 0.0903392 0.0549818 0.00533031 1 0
+0.371036 0.0137309 0.0852819 0.00547397 1 0
+0.286823 0.129083 0.131978 0.0140184 1 0
+0.063446 0.182761 0.102616 0.0076676 1 0
+0.020394 0.00826111 0.173178 0.00829914 1 0
+0.0312729 0.139892 0.0824798 0.00574432 1 0
+0.00863994 0.083511 0.0249144 0.00519484 1 0
+0.0488243 0.0851716 0.190139 0.00732035 1 0
+0.021921 0.0320327 0.0063651 0.00619372 1 0
+0.0320102 0.0409486 0.0967865 0.0058844 1 0
+0.319167 0.0835592 0.143631 0.00670174 1 0
+0.0782541 0.146147 0.0872911 0.00606958 1 0
+0.225196 0.0554171 0.125535 0.00602916 1 0
+0.128068 0.159785 0.0950072 0.0103182 1 0
+0.335086 0.144369 0.0208107 0.0122591 1 0
+0.309413 0.0449647 0.0811385 0.00659358 1 0
+0.139213 0.00758794 0.153068 0.00558374 1 0
+0.112588 0.0974011 0.00905504 0.00553724 1 0
+0.354749 0.0447492 0.15183 0.00550329 1 0
+0.0586951 0.146078 0.0365589 0.00602574 1 0
+0.250268 0.0762195 0.0341256 0.0131473 1 0
+0.0961069 0.193018 0.0469953 0.00699127 1 0
+0.144597 0.0535251 0.0484729 0.00521266 1 0
+0.383755 0.143112 0.0443475 0.00609051 1 0
+0.177372 0.0558999 0.142282 0.0068624 1 0
+0.149436 0.0717535 0.0217132 0.00809978 1 0
+0.0869359 0.175095 0.0724519 0.00555306 1 0
+0.279529 0.172596 0.089291 0.00978439 1 0
+0.250355 0.0597187 0.137615 0.0123911 1 0
+0.119589 0.0328563 0.0105656 0.00746041 1 0
+0.133067 0.163118 0.0460139 0.006435 1 0
+0.230063 0.025654 0.00788834 0.00633899 1 0
+0.0355784 0.114217 0.101586 0.00617914 1 0
+0.217434 0.184185 0.0825201 0.00708441 1 0
+0.335162 0.0848649 0.0984859 0.0080474 1 0
+0.113069 0.114581 0.144575 0.0147412 1 0
+0.174078 0.166055 0.0859442 0.00708755 1 0
+0.274922 0.125237 0.164978 0.0106713 1 0
+0.346199 0.184401 0.0697786 0.0111541 1 0
+0.142237 0.0228484 0.102594 0.00962491 1 0
+0.14345 0.0678292 0.0349685 0.00696443 1 0
+0.394852 0.0819298 0.0230254 0.00518911 1 0
+0.232323 0.0944074 0.142046 0.0072955 1 0
+0.044562 0.116355 0.0848029 0.00741468 1 0
+0.353889 0.109415 0.17346 0.00846082 1 0
+0.0355702 0.125228 0.171647 0.00577467 1 0
+0.0219492 0.169303 0.194138 0.00592133 1 0
+0.189144 0.0431386 0.0602557 0.00839812 1 0
+0.210267 0.167803 0.187758 0.00653748 1 0
+0.371833 0.0125051 0.0272674 0.00523647 1 0
+0.235904 0.0268693 0.129898 0.00839309 1 0
+0.00800912 0.0936409 0.106956 0.00614546 1 0
+0.152239 0.0664404 0.148093 0.00787896 1 0
+0.0727944 0.116542 0.0759453 0.00635603 1 0
+0.256759 0.110831 0.177046 0.00796748 1 0
+0.0171044 0.142267 0.0374209 0.00560163 1 0
+0.388409 0.15406 0.161688 0.00604898 1 0
+0.212628 0.0445981 0.0184521 0.00840461 1 0
+0.287804 0.0212483 0.00898011 0.00524894 1 0
+0.103648 0.142195 0.00915061 0.00918398 1 0
+0.0249615 0.0944006 0.00999414 0.00581314 1 0
+0.17413 0.101717 0.0223372 0.0090261 1 0
+0.221216 0.134036 0.0650604 0.0125142 1 0
+0.204726 0.070397 0.144764 0.0101323 1 0
+0.283783 0.00667192 0.0360334 0.00686949 1 0
+0.307041 0.163873 0.140303 0.00930808 1 0
+0.372003 0.107226 0.0994053 0.00614495 1 0
+0.0436736 0.10863 0.12283 0.00579659 1 0
+0.34477 0.108323 0.0249005 0.00519196 1 0
+0.0377104 0.15348 0.184693 0.00731607 1 0
+0.121077 0.183774 0.11724 0.0057677 1 0
+0.185975 0.191251 0.0741351 0.00816562 1 0
+0.229029 0.132523 0.15296 0.00991017 1 0
+0.190654 0.0233533 0.00723081 0.00727075 1 0
+0.36508 0.126326 0.0566512 0.0060488 1 0
+0.118158 0.188182 0.158422 0.00502799 1 0
+0.0271665 0.103701 0.1749 0.00535086 1 0
+0.279837 0.149124 0.0515643 0.00524692 1 0
+0.207288 0.192364 0.0321903 0.00772377 1 0
+0.23098 0.0647793 0.0732639 0.0135387 1 0
+0.214176 0.0155511 0.163247 0.00500672 1 0
+0.0209887 0.072175 0.0348169 0.00943272 1 0
+0.0305213 0.134868 0.138194 0.00660834 1 0
+0.0777922 0.0430145 0.0142222 0.0049973 1 0
+0.250382 0.186598 0.0369264 0.00617653 1 0
+0.369015 0.0664313 0.1323 0.00841746 1 0
+0.163825 0.0656479 0.0972373 0.0128942 1 0
+0.0139643 0.101756 0.151244 0.00749925 1 0
+0.105723 0.0334557 0.118016 0.00623026 1 0
+0.0242189 0.0717604 0.155129 0.00504056 1 0
+0.244405 0.0437342 0.178231 0.00539913 1 0
+0.0868532 0.0275435 0.013115 0.00530271 1 0
+0.238417 0.118837 0.138676 0.00530997 1 0
+0.248809 0.0411882 0.0203365 0.00538804 1 0
+0.271743 0.164873 0.0723046 0.00690452 1 0
+0.259549 0.0164941 0.0393869 0.00505907 1 0
+0.0336293 0.184633 0.106557 0.00512952 1 0
+0.0961337 0.069566 0.0259228 0.00794518 1 0
+0.261421 0.0946635 0.0449094 0.0109537 1 0
+0.16721 0.147574 0.178979 0.0079243 1 0
+0.162571 0.0175805 0.15751 0.00737101 1 0
+0.0681521 0.156908 0.15673 0.00858295 1 0
+0.371311 0.188827 0.17645 0.0056506 1 0
+0.382051 0.0326958 0.0660182 0.00679611 1 0
+0.370883 0.097932 0.0722141 0.00607098 1 0
+0.189375 0.0100781 0.0223039 0.00496697 1 0
+0.293977 0.128725 0.155733 0.0107931 1 0
+0.294931 0.106278 0.116439 0.0147434 1 0
+0.319684 0.118009 0.126407 0.0144058 1 0
+0.333114 0.100453 0.142545 0.0129627 1 0
+0.233056 0.0821008 0.185284 0.0135691 1 0
+0.222491 0.107745 0.186574 0.0136897 1 0
+0.205985 0.0856081 0.180974 0.0140664 1 0
+0.209378 0.0980333 0.160304 0.0102888 1 0
+0.0183493 0.171206 0.088728 0.00963997 1 0
+0.0138642 0.130553 0.0946587 0.0092099 1 0
+0.00880729 0.14103 0.109349 0.00910086 1 0
+0.0455904 0.15159 0.109242 0.0112735 1 0
+0.0248175 0.0292809 0.0651985 0.00564902 1 0
+0.051736 0.0417432 0.0745267 0.00867866 1 0
+0.34206 0.0568584 0.130516 0.00768926 1 0
+0.351697 0.0751907 0.157835 0.00494477 1 0
+0.0670896 0.0864491 0.169068 0.00786377 1 0
+0.0512748 0.0963263 0.151133 0.0056313 1 0
+0.0507137 0.0645705 0.163841 0.00779486 1 0
+0.0223355 0.190893 0.0607357 0.00673162 1 0
+0.0467381 0.191243 0.0507055 0.00669401 1 0
+0.299576 0.14876 0.0144156 0.008239 1 0
+0.323826 0.152206 0.0430153 0.00768271 1 0
+0.00617829 0.0719664 0.0851172 0.00587751 1 0
+0.00679986 0.0963776 0.0785689 0.00696181 1 0
+0.0420936 0.072806 0.0881394 0.0101486 1 0
+0.392841 0.0130103 0.0241736 0.00733186 1 0
+0.392432 0.0186516 0.0607261 0.00636687 1 0
+0.374975 0.0243043 0.043706 0.00560077 1 0
+0.0871383 0.0936887 0.187415 0.0112409 1 0
+0.142323 0.107156 0.187424 0.0100812 1 0
+0.145518 0.0811453 0.142775 0.0091413 1 0
+0.215674 0.0140729 0.108765 0.0140781 1 0
+0.222644 0.016739 0.0890476 0.011201 1 0
+0.249043 0.0290925 0.103992 0.0127402 1 0
+0.393134 0.1016 0.0826434 0.00716053 1 0
+0.366581 0.0771724 0.102847 0.0105666 1 0
+0.22542 0.187068 0.0617098 0.00676333 1 0
+0.245887 0.16773 0.0766569 0.00611283 1 0
+0.0157395 0.037729 0.189653 0.0105725 1 0
+0.0536306 0.0208592 0.191866 0.00717096 1 0
+0.214248 0.187878 0.137434 0.00777375 1 0
+0.231408 0.167212 0.109112 0.00631698 1 0
+0.370209 0.186792 0.131924 0.0115277 1 0
+0.348265 0.188219 0.175274 0.00525853 1 0
+0.357703 0.16075 0.122765 0.00699528 1 0
+0.348719 0.169077 0.156321 0.00518334 1 0
+0.0777636 0.163008 0.0142156 0.00567678 1 0
+0.0703331 0.140071 0.0105286 0.00591555 1 0
+0.107597 0.0123506 0.0706847 0.00622383 1 0
+0.0858999 0.00550219 0.062506 0.00576121 1 0
+0.369151 0.00818008 0.0940423 0.00506689 1 0
+0.380448 0.0115654 0.123048 0.0101947 1 0
+0.361218 0.00529068 0.0991335 0.00545717 1 0
+0.21127 0.107896 0.037595 0.0136718 1 0
+0.19285 0.098723 0.0741582 0.0146363 1 0
+0.208754 0.0675954 0.0481468 0.00789315 1 0
+0.190332 0.0714759 0.0516261 0.0112526 1 0
+0.386695 0.0279839 0.124866 0.0057263 1 0
+0.391511 0.0471853 0.123585 0.00691367 1 0
+0.362912 0.0409177 0.12372 0.00493753 1 0
+0.0819763 0.098613 0.165435 0.0117008 1 0
+0.0732932 0.088342 0.117281 0.00888556 1 0
+0.0762444 0.12042 0.121165 0.00973858 1 0
+0.109151 0.0843392 0.112748 0.0131693 1 0
+0.157145 0.101235 0.154726 0.00609758 1 0
+0.156414 0.0947529 0.141875 0.00831439 1 0
+0.141156 0.0819152 0.157509 0.0062447 1 0
+0.311691 0.0225125 0.189756 0.0105256 1 0
+0.277398 0.0425153 0.191083 0.00918601 1 0
+0.31954 0.0655847 0.185438 0.0122109 1 0
+0.199689 0.169705 0.103668 0.00509297 1 0
+0.202364 0.140992 0.101095 0.011787 1 0
+0.222034 0.150856 0.0986253 0.010356 1 0
+0.195383 0.149282 0.0816558 0.00618624 1 0
+0.234882 0.00824154 0.0210247 0.00850376 1 0
+0.227894 0.00967124 0.0485354 0.00981243 1 0
+0.119952 0.0603646 0.0313592 0.0116434 1 0
+0.0929176 0.0649489 0.0678022 0.00749513 1 0
+0.119362 0.0624182 0.0864577 0.00812881 1 0
+0.103313 0.0438392 0.0487169 0.00568792 1 0
+0.189872 0.191278 0.190833 0.00620737 1 0
+0.218556 0.191504 0.183794 0.0088616 1 0
+0.256878 0.0572496 0.0376613 0.00725023 1 0
+0.272126 0.0751648 0.0726282 0.0106756 1 0
+0.251638 0.0481765 0.0465315 0.00647808 1 0
+0.226605 0.183384 0.0126504 0.0076126 1 0
+0.22612 0.155581 0.0104955 0.00612659 1 0
+0.225868 0.00918519 0.182376 0.00962794 1 0
+0.217444 0.0456945 0.187116 0.00535896 1 0
+0.216067 0.126527 0.0469773 0.00773177 1 0
+0.225386 0.109266 0.0975421 0.00970786 1 0
+0.243769 0.106338 0.0993678 0.00899614 1 0
+0.227952 0.126064 0.0859668 0.0108525 1 0
+0.316443 0.042169 0.113368 0.00724812 1 0
+0.326654 0.0517949 0.108777 0.00751662 1 0
+0.301954 0.0583803 0.0999651 0.00524896 1 0
+0.29274 0.0347683 0.132402 0.0060409 1 0
+0.343566 0.0597269 0.018211 0.005781 1 0
+0.352622 0.0502169 0.0402065 0.00618205 1 0
+0.369643 0.0714826 0.0475044 0.00510766 1 0
+0.394229 0.0737736 0.0944807 0.0059695 1 0
+0.394376 0.0620919 0.0670473 0.00591046 1 0
+0.394948 0.0939468 0.076593 0.00516962 1 0
+0.367544 0.0646222 0.0903772 0.00715182 1 0
+0.00818188 0.0126094 0.0228858 0.00838371 1 0
+0.0147844 0.0120618 0.0580327 0.00618432 1 0
+0.31466 0.0730897 0.166658 0.00859344 1 0
+0.319997 0.0525574 0.119828 0.00540728 1 0
+0.300218 0.0662144 0.131142 0.0059512 1 0
+0.282304 0.0498985 0.104559 0.00836055 1 0
+0.251758 0.18354 0.132704 0.00661005 1 0
+0.256939 0.160326 0.111173 0.00568273 1 0
+0.247454 0.15754 0.141038 0.00505592 1 0
+0.236481 0.165237 0.140116 0.00649243 1 0
+0.249384 0.00719792 0.180125 0.00758229 1 0
+0.285711 0.0124466 0.191211 0.0059783 1 0
+0.21456 0.186543 0.153079 0.00793122 1 0
+0.226593 0.180792 0.150642 0.00562627 1 0
+0.083875 0.0293033 0.189486 0.0110144 1 0
+0.0897915 0.0688272 0.191879 0.00823789 1 0
+0.106315 0.053566 0.188127 0.0119741 1 0
+0.111229 0.0439213 0.176073 0.00592557 1 0
+0.0550361 0.190197 0.174822 0.00669825 1 0
+0.0652126 0.164537 0.14202 0.00824646 1 0
+0.267189 0.18792 0.191085 0.00915243 1 0
+0.301131 0.171959 0.186846 0.00580245 1 0
+0.275044 0.14871 0.191894 0.00855422 1 0
+0.0975724 0.182156 0.191598 0.00897754 1 0
+0.117908 0.145176 0.184706 0.0136715 1 0
+0.10357 0.157952 0.149551 0.01374 1 0
+0.202562 0.121477 0.182416 0.0104515 1 0
+0.186167 0.0940157 0.190579 0.00955469 1 0
+0.185097 0.109625 0.185197 0.00700597 1 0
+0.193167 0.106857 0.167044 0.00584006 1 0
+0.325806 0.0498837 0.176862 0.00674515 1 0
+0.327219 0.0434707 0.135695 0.009877 1 0
+0.306853 0.00505278 0.129738 0.00514724 1 0
+0.284301 0.00970246 0.141233 0.00973076 1 0
+0.279911 0.024517 0.14259 0.00577992 1 0
+0.0139161 0.0761074 0.0511881 0.00684258 1 0
+0.0193503 0.0978804 0.0773104 0.00537681 1 0
+0.0312895 0.104381 0.0594031 0.008106 1 0
+0.338556 0.0576895 0.071032 0.00952752 1 0
+0.345385 0.0400912 0.0418604 0.00637311 1 0
+0.259771 0.012368 0.0639415 0.00821059 1 0
+0.234281 0.00979121 0.078925 0.00571495 1 0
+0.261934 0.0151467 0.0961373 0.00781128 1 0
+0.259949 0.0384556 0.0902831 0.00712307 1 0
+0.391538 0.0733979 0.181127 0.00823926 1 0
+0.386642 0.103587 0.194456 0.0057173 1 0
+0.353589 0.0933042 0.189377 0.00930854 1 0
+0.368799 0.0965009 0.17087 0.00800324 1 0
+0.0172555 0.065784 0.127555 0.00757448 1 0
+0.0482225 0.0691234 0.119297 0.00644119 1 0
+0.0294276 0.0847632 0.137985 0.00519188 1 0
+0.0442468 0.0580953 0.140519 0.00765787 1 0
+0.0114241 0.186249 0.0561499 0.0059827 1 0
+0.262791 0.180463 0.0104332 0.00712933 1 0
+0.294967 0.180725 0.00756748 0.00765309 1 0
+0.285215 0.168706 0.0109914 0.00819881 1 0
+0.381007 0.113507 0.121441 0.00943741 1 0
+0.356667 0.0880347 0.110332 0.00593489 1 0
+0.351332 0.127097 0.103414 0.00650858 1 0
+0.361994 0.107448 0.135957 0.00580829 1 0
+0.155172 0.0084073 0.0683292 0.00890522 1 0
+0.188438 0.012146 0.0976326 0.00587874 1 0
+0.188594 0.00995718 0.0690544 0.00765734 1 0
+0.164749 0.0103023 0.0215641 0.0106028 1 0
+0.148297 0.0125693 0.0549953 0.00651599 1 0
+0.181856 0.00865314 0.0566887 0.00648529 1 0
+0.18013 0.0188051 0.0511475 0.00512225 1 0
+0.0135713 0.0284825 0.0616517 0.00617028 1 0
+0.0168143 0.0550432 0.0534702 0.00544081 1 0
+0.0409675 0.0512215 0.0813284 0.00719788 1 0
+0.0315788 0.0446527 0.0458322 0.00519363 1 0
+0.385172 0.0707297 0.121669 0.00688846 1 0
+0.374496 0.103002 0.129779 0.00547061 1 0
+0.36727 0.0697245 0.118015 0.00634524 1 0
+0.00772959 0.129551 0.178176 0.00705005 1 0
+0.00816046 0.138058 0.150509 0.00565004 1 0
+0.0289621 0.137907 0.164141 0.00587197 1 0
+0.0308662 0.118011 0.16402 0.00573116 1 0
+0.369926 0.0178553 0.192356 0.00551679 1 0
+0.340425 0.0223486 0.192848 0.00726053 1 0
+0.11975 0.194485 0.158475 0.00575396 1 0
+0.123894 0.160886 0.143244 0.00774069 1 0
+0.38433 0.118675 0.0362219 0.00799993 1 0
+0.383284 0.102965 0.0460323 0.00553318 1 0
+0.375325 0.156401 0.0123866 0.00920127 1 0
+0.357718 0.185092 0.00968631 0.00792417 1 0
+0.347141 0.186821 0.121368 0.0135055 1 0
+0.326057 0.18231 0.153424 0.00539424 1 0
+0.350309 0.194901 0.11039 0.0056395 1 0
+0.346212 0.166812 0.115758 0.00776566 1 0
+0.386697 0.192126 0.181588 0.00799521 1 0
+0.391156 0.161996 0.18664 0.00904983 1 0
+0.390692 0.174385 0.154308 0.00550439 1 0
+0.0981993 0.0080985 0.00848544 0.00689311 1 0
+0.130053 0.00832591 0.00885153 0.00577159 1 0
+0.394383 0.0239477 0.190847 0.00572692 1 0
+0.134318 0.12667 0.172249 0.0140221 1 0
+0.120571 0.140802 0.136533 0.0136934 1 0
+0.153977 0.137668 0.159255 0.0119829 1 0
+0.238908 0.0637111 0.182828 0.00588483 1 0
+0.217927 0.0660372 0.181256 0.00886203 1 0
+0.213215 0.0882626 0.14329 0.00970245 1 0
+0.23219 0.049967 0.161982 0.00523379 1 0
+0.150521 0.116093 0.0410209 0.0080791 1 0
+0.171537 0.113958 0.0821499 0.0127537 1 0
+0.14791 0.109908 0.0683858 0.00711928 1 0
+0.119181 0.11991 0.0577099 0.0123017 1 0
+0.280074 0.0657231 0.0256561 0.00865399 1 0
+0.315154 0.0634001 0.0129531 0.00810922 1 0
+0.284546 0.0676017 0.0591255 0.00532716 1 0
+0.287665 0.0444101 0.0328449 0.00617395 1 0
+0.103511 0.0542246 0.0293572 0.00602015 1 0
+0.0695044 0.04998 0.0409961 0.00763791 1 0
+0.0777995 0.108209 0.0272184 0.0085827 1 0
+0.105089 0.0831391 0.0281576 0.00846905 1 0
+0.085815 0.0790746 0.0487101 0.00653949 1 0
+0.0968583 0.116976 0.0358279 0.00730169 1 0
+0.23678 0.180027 0.189891 0.00785738 1 0
+0.227769 0.143544 0.185132 0.00749987 1 0
+0.374033 0.01768 0.00744475 0.0059995 1 0
+0.339686 0.00677261 0.00975196 0.00758317 1 0
+0.345282 0.0433209 0.00911013 0.00944693 1 0
+0.172435 0.170777 0.00790899 0.0071469 1 0
+0.164953 0.130355 0.0128714 0.00969678 1 0
+0.158948 0.0614367 0.187529 0.00543337 1 0
+0.189978 0.0716632 0.177366 0.00746771 1 0
+0.178238 0.0797084 0.15281 0.00515117 1 0
+0.165762 0.0528525 0.170612 0.00763925 1 0
+0.0212608 0.0094604 0.0249075 0.00532478 1 0
+0.0403634 0.0072238 0.0517658 0.00747519 1 0
+0.272598 0.106078 0.104539 0.0105631 1 0
+0.287075 0.128572 0.101641 0.0131448 1 0
+0.267112 0.132629 0.0860788 0.01249 1 0
+0.268691 0.137384 0.115787 0.0116689 1 0
+0.27002 0.0257179 0.0636094 0.00820884 1 0
+0.273264 0.0592573 0.0810021 0.00733734 1 0
+0.28318 0.0354773 0.0531312 0.00527753 1 0
+0.389817 0.174931 0.080054 0.0106338 1 0
+0.384445 0.132558 0.0788915 0.00836827 1 0
+0.378701 0.139814 0.0972384 0.00602715 1 0
+0.368813 0.141861 0.0898128 0.00650638 1 0
+0.375492 0.110279 0.0315041 0.00507147 1 0
+0.357443 0.0867631 0.00909228 0.00870971 1 0
+0.375897 0.17125 0.088069 0.00602091 1 0
+0.393984 0.161636 0.116134 0.00619005 1 0
+0.373611 0.161616 0.0966576 0.00525879 1 0
+0.238039 0.00638372 0.171919 0.00666163 1 0
+0.216858 0.00703131 0.152268 0.00513398 1 0
+0.248589 0.00675868 0.148564 0.00687499 1 0
+0.250447 0.0211514 0.146636 0.00776452 1 0
+0.0113154 0.182689 0.00817339 0.00538843 1 0
+0.0238939 0.157768 0.00645951 0.00671657 1 0
+0.0526952 0.185282 0.00720097 0.00766273 1 0
+0.352161 0.0664096 0.0153645 0.00547242 1 0
+0.366475 0.0528956 0.0311387 0.00678152 1 0
+0.365266 0.0710618 0.0239861 0.00520902 1 0
+0.00559995 0.0871335 0.18492 0.00598431 1 0
+0.0112576 0.123259 0.187933 0.00508419 1 0
+0.00679544 0.114603 0.150888 0.00721419 1 0
+0.331843 0.0232473 0.0106033 0.00564219 1 0
+0.332571 0.0501213 0.0120277 0.00731454 1 0
+0.163805 0.12126 0.0301393 0.0098536 1 0
+0.183228 0.124309 0.0663082 0.00949033 1 0
+0.16112 0.149977 0.0571642 0.00646968 1 0
+0.0363436 0.00966209 0.145313 0.0101949 1 0
+0.0688378 0.00717589 0.182349 0.00732408 1 0
+0.0901335 0.00996526 0.15139 0.00727241 1 0
+0.0971279 0.0886962 0.172203 0.0076308 1 0
+0.123389 0.0696746 0.17629 0.0142557 1 0
+0.124882 0.0519842 0.162996 0.00792356 1 0
+0.0127854 0.18895 0.187874 0.0060405 1 0
+0.0175302 0.185317 0.159172 0.0049817 1 0
+0.0525532 0.194899 0.185444 0.00556042 1 0
+0.293887 0.136954 0.174997 0.0101556 1 0
+0.292423 0.15219 0.135484 0.0100152 1 0
+0.282663 0.14629 0.152378 0.0103683 1 0
+0.38584 0.172299 0.134702 0.0055863 1 0
+0.382557 0.152871 0.130059 0.00586379 1 0
+0.357948 0.153628 0.110573 0.00712653 1 0
+0.370099 0.157471 0.142381 0.00630911 1 0
+0.231197 0.192268 0.0787137 0.0079133 1 0
+0.255548 0.165874 0.0866424 0.00790485 1 0
+0.104601 0.0696791 0.0710747 0.0055276 1 0
+0.121347 0.0793999 0.0725771 0.0138937 1 0
+0.107036 0.102437 0.0568728 0.00899351 1 0
+0.283468 0.0231189 0.0642061 0.005501 1 0
+0.302915 0.0162019 0.0810346 0.00755809 1 0
+0.0142963 0.174362 0.133416 0.00796007 1 0
+0.0146243 0.145628 0.132304 0.00815538 1 0
+0.0505912 0.153131 0.131263 0.00849822 1 0
+0.0272526 0.160361 0.151105 0.00523692 1 0
+0.13311 0.0181588 0.0707926 0.00755563 1 0
+0.127461 0.0404578 0.0564505 0.00617569 1 0
+0.151748 0.0383447 0.0530821 0.00513729 1 0
+0.00679267 0.169096 0.0536077 0.00703579 1 0
+0.00651555 0.128824 0.0595809 0.00620981 1 0
+0.199676 0.173535 0.126518 0.0114282 1 0
+0.355852 0.0615542 0.189935 0.00529508 1 0
+0.363794 0.0772269 0.169744 0.00559938 1 0
+0.0653017 0.125566 0.174107 0.00626643 1 0
+0.0706548 0.124027 0.145934 0.00508993 1 0
+0.0437616 0.136513 0.163371 0.00505446 1 0
+0.0403833 0.118787 0.153449 0.00513884 1 0
+0.0668814 0.177731 0.0527361 0.00573733 1 0
+0.0839827 0.158633 0.0492808 0.00631288 1 0
+0.244283 0.130233 0.0206647 0.0134639 1 0
+0.248042 0.142193 0.0542112 0.00985963 1 0
+0.127496 0.0235248 0.0806035 0.00495716 1 0
+0.112549 0.0236483 0.117163 0.00574903 1 0
+0.102698 0.0328561 0.104551 0.00541704 1 0
+0.121179 0.0419633 0.103427 0.00550955 1 0
+0.0949815 0.00750083 0.183421 0.00782525 1 0
+0.134652 0.00614998 0.184862 0.00637881 1 0
+0.116839 0.0088601 0.154427 0.00920183 1 0
+0.31655 0.00700799 0.0248976 0.00751269 1 0
+0.290853 0.00645499 0.0473027 0.00643783 1 0
+0.198169 0.0451707 0.154014 0.00652276 1 0
+0.202753 0.0641795 0.129688 0.00629429 1 0
+0.231726 0.0501635 0.148392 0.00836477 1 0
+0.0806751 0.186693 0.0947945 0.00588621 1 0
+0.0980923 0.193862 0.114456 0.00659301 1 0
+0.0927057 0.166659 0.0945026 0.00576554 1 0
+0.131037 0.0979195 0.0154893 0.00529982 1 0
+0.119759 0.0958302 0.0614018 0.00604038 1 0
+0.117254 0.105551 0.0450691 0.00692544 1 0
+0.180049 0.0968475 0.0963658 0.0110648 1 0
+0.147055 0.0681246 0.0888777 0.00600637 1 0
+0.165325 0.0730319 0.0647813 0.0116055 1 0
+0.356389 0.0605846 0.0771528 0.00670138 1 0
+0.0090253 0.146891 0.178321 0.00943242 1 0
+0.00766876 0.177799 0.147082 0.00803472 1 0
+0.284654 0.182165 0.0777849 0.00603437 1 0
+0.317912 0.188593 0.0821801 0.010196 1 0
+0.31526 0.170622 0.0967369 0.00954165 1 0
+0.157011 0.0204114 0.191012 0.00814343 1 0
+0.0246857 0.126178 0.0110075 0.00674863 1 0
+0.0583965 0.11981 0.0136165 0.00686965 1 0
+0.0423734 0.131397 0.0355498 0.00524297 1 0
+0.359164 0.0155869 0.1297 0.0124649 1 0
+0.346991 0.00989893 0.149958 0.00993081 1 0
+0.335926 0.0173156 0.11971 0.0128885 1 0
+0.351904 0.0330754 0.118387 0.00959278 1 0
+0.394389 0.0194257 0.0160663 0.00555908 1 0
+0.379919 0.129378 0.133306 0.00674795 1 0
+0.343983 0.13786 0.10791 0.00727759 1 0
+0.353387 0.128435 0.141138 0.00927701 1 0
+0.360604 0.139797 0.147167 0.0054718 1 0
+0.210437 0.166175 0.0492754 0.00567761 1 0
+0.333137 0.0762092 0.17059 0.0105529 1 0
+0.304235 0.104976 0.172225 0.0128493 1 0
+0.335688 0.0988857 0.167769 0.0124404 1 0
+0.202789 0.187561 0.113687 0.00783417 1 0
+0.216769 0.19414 0.0854304 0.0061718 1 0
+0.226591 0.167311 0.0969075 0.00680436 1 0
+0.0790982 0.1003 0.091185 0.00741713 1 0
+0.0916304 0.108721 0.10674 0.00642763 1 0
+0.124019 0.099056 0.0987964 0.0119762 1 0
+0.099967 0.113614 0.0782024 0.00766243 1 0
+0.322068 0.132654 0.161504 0.0110719 1 0
+0.328964 0.137853 0.116072 0.00981602 1 0
+0.347629 0.119456 0.153756 0.00724557 1 0
+0.343041 0.14108 0.150765 0.00968606 1 0
+0.308067 0.0305676 0.014255 0.00749486 1 0
+0.288222 0.0486479 0.00726165 0.00755659 1 0
+0.322953 0.0477624 0.00519321 0.00532254 1 0
+0.163145 0.0244185 0.00512858 0.00531505 1 0
+0.143503 0.0521922 0.0141325 0.00602348 1 0
+0.176407 0.0560466 0.00779385 0.00804853 1 0
+0.171945 0.0484305 0.027348 0.00827547 1 0
+0.170499 0.19428 0.0274052 0.00537 1 0
+0.156708 0.193111 0.0620835 0.0071917 1 0
+0.185673 0.194117 0.0511677 0.00612124 1 0
+0.0331075 0.0116814 0.124277 0.0112441 1 0
+0.0663881 0.017704 0.134001 0.00695376 1 0
+0.0509858 0.0401183 0.121398 0.00752897 1 0
+0.0536159 0.0388033 0.139584 0.00586791 1 0
+0.377357 0.0513898 0.0351915 0.00492737 1 0
+0.379201 0.0777361 0.037615 0.00548177 1 0
+0.205056 0.128243 0.0246036 0.0112558 1 0
+0.194766 0.119397 0.0757122 0.00618427 1 0
+0.181175 0.145115 0.0499636 0.00675236 1 0
+0.148696 0.0473235 0.193751 0.00638771 1 0
+0.1805 0.0491506 0.19158 0.00866147 1 0
+0.0218087 0.0143186 0.108466 0.00836723 1 0
+0.0478675 0.0219623 0.0896958 0.00823181 1 0
+0.0512223 0.0421287 0.0966569 0.0133643 1 0
+0.0207695 0.021881 0.119874 0.00535858 1 0
+0.0215509 0.0467649 0.120322 0.00641871 1 0
+0.0360928 0.0484112 0.104878 0.00496479 1 0
+0.0326386 0.0525415 0.145065 0.00598976 1 0
+0.381427 0.190418 0.194281 0.00586092 1 0
+0.373734 0.16649 0.18837 0.00498055 1 0
+0.205452 0.154565 0.177984 0.00579418 1 0
+0.194448 0.131231 0.149231 0.00721404 1 0
+0.0229852 0.137984 0.00566485 0.00616599 1 0
+0.0607551 0.169837 0.00924403 0.00965325 1 0
+0.0609532 0.142705 0.00515321 0.00524266 1 0
+0.0845293 0.0785676 0.161161 0.00895357 1 0
+0.0760292 0.0631132 0.116189 0.00934452 1 0
+0.109096 0.0662653 0.125401 0.0088934 1 0
+0.0992344 0.0589427 0.143979 0.0105978 1 0
+0.273636 0.0785978 0.180015 0.0113957 1 0
+0.31771 0.0863584 0.178826 0.00966627 1 0
+0.29521 0.110289 0.191138 0.00918946 1 0
+0.381769 0.130907 0.179692 0.00549505 1 0
+0.384951 0.132232 0.147066 0.00501827 1 0
+0.368263 0.120297 0.157834 0.00564419 1 0
+0.372344 0.141301 0.154623 0.00518439 1 0
+0.015366 0.18067 0.0718755 0.00991698 1 0
+0.0571934 0.17713 0.0784465 0.00840477 1 0
+0.0608721 0.163181 0.103517 0.00874349 1 0
+0.0402299 0.146705 0.0580912 0.00834893 1 0
+0.254209 0.193453 0.0136025 0.00692331 1 0
+0.293146 0.193828 0.00583723 0.00565197 1 0
+0.273439 0.190697 0.0328814 0.00943147 1 0
+0.148158 0.0224957 0.0751162 0.0086904 1 0
+0.169855 0.0328631 0.104474 0.00539417 1 0
+0.161211 0.0397703 0.0704683 0.00845554 1 0
+0.14024 0.0469873 0.122983 0.010578 1 0
+0.336735 0.0202872 0.0803728 0.00662079 1 0
+0.331173 0.0418264 0.0836408 0.00698085 1 0
+0.248925 0.170773 0.189235 0.0074251 1 0
+0.262339 0.153703 0.191569 0.00510053 1 0
+0.228363 0.152946 0.194167 0.00555304 1 0
+0.253545 0.153824 0.172184 0.00501869 1 0
+0.085673 0.0219495 0.128863 0.00810289 1 0
+0.0787165 0.0476022 0.114194 0.00652346 1 0
+0.0980547 0.0314382 0.144821 0.00871123 1 0
+0.0709612 0.0486933 0.147475 0.00741279 1 0
+0.146003 0.180965 0.107392 0.00615155 1 0
+0.151935 0.175908 0.116585 0.00590186 1 0
+0.131311 0.156841 0.111757 0.006995 1 0
+0.156763 0.164613 0.0522469 0.00700493 1 0
+0.166162 0.131633 0.0940256 0.00920817 1 0
+0.169708 0.159475 0.0531444 0.00695105 1 0
+0.391928 0.014103 0.0938668 0.00815456 1 0
+0.391359 0.0211293 0.117583 0.00530946 1 0
+0.375048 0.0429505 0.106888 0.00530811 1 0
+0.0461391 0.0699646 0.193821 0.00627914 1 0
+0.0622147 0.0345418 0.191454 0.00898645 1 0
+0.0593306 0.0684257 0.192418 0.00508167 1 0
+0.0397629 0.0590945 0.170099 0.00595525 1 0
+0.0661161 0.112209 0.0346864 0.00584907 1 0
+0.0797103 0.0967227 0.0580186 0.00598094 1 0
+0.0568741 0.114675 0.041708 0.00601682 1 0
+0.0822935 0.121589 0.0590197 0.00649001 1 0
+0.0084868 0.184703 0.0965632 0.0086322 1 0
+0.00581197 0.179899 0.124047 0.00594827 1 0
+0.0193344 0.15123 0.117751 0.00813427 1 0
+0.0373418 0.165335 0.111805 0.00496009 1 0
+0.0069464 0.0203693 0.00957193 0.00729029 1 0
+0.0114912 0.0644476 0.0186047 0.00692857 1 0
+0.23016 0.15093 0.070759 0.00659564 1 0
+0.239476 0.169123 0.048159 0.00817471 1 0
+0.216925 0.162977 0.0570597 0.00494897 1 0
+0.256492 0.108796 0.106756 0.00592031 1 0
+0.239834 0.122034 0.101258 0.0072955 1 0
+0.250444 0.134166 0.118395 0.00695265 1 0
+0.0669046 0.0202201 0.0606514 0.00578 1 0
+0.0667976 0.109972 0.163301 0.00737749 1 0
+0.0647391 0.0862293 0.128114 0.00507807 1 0
+0.0730489 0.126344 0.135373 0.0059837 1 0
+0.0487948 0.104113 0.14207 0.00657197 1 0
+0.028089 0.193995 0.0135611 0.00631276 1 0
+0.0674378 0.193956 0.0187955 0.00627478 1 0
+0.0560479 0.192898 0.040999 0.00736616 1 0
+0.262174 0.14737 0.00768132 0.00782649 1 0
+0.110871 0.0181432 0.0802059 0.00539194 1 0
+0.0877005 0.00667963 0.0836161 0.00686255 1 0
+0.104632 0.00847264 0.10825 0.00872388 1 0
+0.0824788 0.0353326 0.0842433 0.00699519 1 0
+0.14732 0.10401 0.105935 0.0128921 1 0
+0.131004 0.0929942 0.120441 0.0115619 1 0
+0.124891 0.124973 0.0770648 0.00850322 1 0
+0.367253 0.00909377 0.0543428 0.00926423 1 0
+0.341448 0.00752611 0.0337154 0.00700713 1 0
+0.353185 0.00671947 0.0658624 0.00679685 1 0
+0.360068 0.0192233 0.0458931 0.00610856 1 0
+0.00526509 0.0409069 0.136276 0.00535184 1 0
+0.00810634 0.0521513 0.169336 0.00845315 1 0
+0.00898223 0.0516547 0.135279 0.00540738 1 0
+0.0272917 0.0344396 0.154164 0.00617013 1 0
+0.28683 0.192156 0.0542309 0.00529478 1 0
+0.306074 0.167622 0.0566469 0.00537123 1 0
+0.19755 0.0334298 0.0932068 0.00801512 1 0
+0.189077 0.0691788 0.103897 0.0121385 1 0
+0.191992 0.113584 0.0278815 0.0086521 1 0
+0.162067 0.106234 0.0287016 0.00534139 1 0
+0.179901 0.11 0.0638109 0.00541145 1 0
+0.17278 0.0881559 0.0541978 0.00830241 1 0
+0.288755 0.0755487 0.0109192 0.0110888 1 0
+0.308569 0.0795913 0.0189497 0.01037 1 0
+0.296556 0.0983438 0.0125803 0.0125357 1 0
+0.383772 0.0259801 0.193385 0.00537695 1 0
+0.386942 0.0526887 0.193606 0.00647137 1 0
+0.365199 0.047121 0.19492 0.0052279 1 0
+0.0519969 0.181546 0.139662 0.00596041 1 0
+0.073405 0.189449 0.169333 0.0107301 1 0
+0.0877081 0.173817 0.141113 0.00870525 1 0
+0.341047 0.169722 0.193253 0.00654535 1 0
+0.330376 0.150117 0.192594 0.00496002 1 0
+0.114133 0.161206 0.130073 0.00865552 1 0
+0.303032 0.188236 0.140302 0.0117671 1 0
+0.315833 0.195507 0.114557 0.00504126 1 0
+0.284501 0.189967 0.127885 0.0104032 1 0
+0.312477 0.161431 0.113936 0.0101568 1 0
+0.327634 0.0793802 0.0481969 0.0100093 1 0
+0.324448 0.0752109 0.0906867 0.0083484 1 0
+0.31356 0.104172 0.0805245 0.00749451 1 0
+0.327746 0.101416 0.0747659 0.00806205 1 0
+0.121771 0.0134248 0.122837 0.00852373 1 0
+0.159631 0.0150029 0.128638 0.00980085 1 0
+0.392511 0.0522317 0.169404 0.00783913 1 0
+0.395162 0.0501463 0.134408 0.00498903 1 0
+0.272107 0.170806 0.116229 0.013434 1 0
+0.281281 0.155885 0.101404 0.0095132 1 0
+0.266574 0.153585 0.107595 0.00660862 1 0
+0.264709 0.153674 0.119585 0.00552586 1 0
+0.38681 0.0562555 0.00638283 0.00528748 1 0
+0.365455 0.0437473 0.0107899 0.00529517 1 0
+0.210022 0.123308 0.12934 0.00556125 1 0
+0.250494 0.193287 0.180336 0.00706519 1 0
+0.258499 0.192009 0.147804 0.00855534 1 0
+0.281498 0.0581577 0.178437 0.0105608 1 0
+0.303242 0.0692587 0.176297 0.00683264 1 0
+0.279185 0.0677835 0.134067 0.00571929 1 0
+0.283695 0.0478234 0.161373 0.00950883 1 0
+0.201343 0.0885042 0.00865546 0.00499766 1 0
+0.217247 0.0657974 0.0338116 0.00681007 1 0
+0.184647 0.0707221 0.0238142 0.00558769 1 0
+0.109721 0.184804 0.00937792 0.00961705 1 0
+0.329991 0.0107204 0.0287114 0.0058961 1 0
+0.324986 0.00709674 0.065553 0.00544047 1 0
+0.320655 0.0241156 0.0465631 0.00626207 1 0
+0.246404 0.0691349 0.00781767 0.00828671 1 0
+0.222941 0.103933 0.0111598 0.011335 1 0
+0.216109 0.0696221 0.00799544 0.00826141 1 0
+0.157528 0.0899447 0.191168 0.00507421 1 0
+0.155537 0.100229 0.191591 0.00540953 1 0
+0.177525 0.0943671 0.150699 0.00861897 1 0
+0.0348592 0.00813347 0.015002 0.00828149 1 0
+0.0512365 0.0192255 0.0153088 0.00517423 1 0
+0.342655 0.0798171 0.0361204 0.00926937 1 0
+0.3391 0.0812289 0.0784261 0.0116296 1 0
+0.338672 0.111785 0.0750774 0.00700406 1 0
+0.330466 0.129438 0.187166 0.00655636 1 0
+0.361513 0.120336 0.171651 0.00498052 1 0
+0.205291 0.0302313 0.114125 0.0145174 1 0
+0.20977 0.0267413 0.0944394 0.00597039 1 0
+0.205971 0.0681862 0.0953955 0.00680038 1 0
+0.233346 0.0592739 0.0989024 0.0127908 1 0
+0.0729556 0.0741033 0.169157 0.00580497 1 0
+0.0687666 0.0753065 0.130455 0.00601045 1 0
+0.0846709 0.0567052 0.156714 0.00887761 1 0
+0.0667951 0.0521266 0.1623 0.00836534 1 0
+0.29608 0.0149178 0.0917873 0.00524784 1 0
+0.283962 0.0466343 0.0910075 0.00567696 1 0
+0.0622957 0.0349496 0.0106501 0.0110784 1 0
+0.0495625 0.0756888 0.00622606 0.00642553 1 0
+0.386469 0.0770333 0.0583167 0.00552774 1 0
+0.387526 0.0946109 0.0661314 0.00621954 1 0
+0.362512 0.0757967 0.0849561 0.00624904 1 0
+0.241755 0.185676 0.178927 0.00544206 1 0
+0.234978 0.173823 0.150145 0.00528781 1 0
+0.0631754 0.100075 0.0342654 0.00630015 1 0
+0.0490861 0.10025 0.0597905 0.00612054 1 0
+0.0448321 0.0676857 0.0483798 0.00556852 1 0
+0.357979 0.0272896 0.0764568 0.00501178 1 0
+0.278958 0.131248 0.150856 0.00519829 1 0
+0.280979 0.110705 0.130202 0.00534803 1 0
+0.302751 0.12933 0.116301 0.00833201 1 0
+0.27393 0.140098 0.141054 0.00521546 1 0
+0.0373405 0.191358 0.126653 0.00727957 1 0
+0.0677841 0.191625 0.0901428 0.00869273 1 0
+0.0844209 0.191969 0.124443 0.00855905 1 0
+0.0775465 0.162201 0.109099 0.0082593 1 0
+0.0207555 0.0053754 0.188771 0.00547368 1 0
+0.0455209 0.00928189 0.181845 0.00561126 1 0
+0.0245158 0.167059 0.0749526 0.00601204 1 0
+0.0568859 0.143012 0.0981434 0.00673649 1 0
+0.0311157 0.142002 0.0668341 0.00512793 1 0
+0.00911201 0.111889 0.0105822 0.00952419 1 0
+0.0289019 0.0987202 0.0405127 0.00667252 1 0
+0.0153248 0.0709797 0.185047 0.00708259 1 0
+0.0468106 0.0975161 0.194603 0.00576613 1 0
+0.0330428 0.088288 0.168913 0.00655303 1 0
+0.0319882 0.0658179 0.164622 0.00569154 1 0
+0.327932 0.0661663 0.0347492 0.00884639 1 0
+0.325235 0.0611186 0.0757851 0.00502571 1 0
+0.301791 0.0719827 0.0647257 0.00502249 1 0
+0.140444 0.0208043 0.00857616 0.00554489 1 0
+0.13206 0.0531746 0.0191259 0.00650001 1 0
+0.0227459 0.0405526 0.0137735 0.00512675 1 0
+0.0139517 0.0311413 0.0791735 0.00739728 1 0
+0.00812655 0.0462816 0.0920372 0.00831147 1 0
+0.0100434 0.0603263 0.0679059 0.00747143 1 0
+0.0330852 0.0595645 0.0875891 0.00587617 1 0
+0.01453 0.0759006 0.120222 0.00521403 1 0
+0.0151535 0.103402 0.114357 0.0067483 1 0
+0.0287214 0.0951057 0.139099 0.00523436 1 0
+0.0133948 0.0273098 0.111089 0.00733124 1 0
+0.00839056 0.0392552 0.105564 0.00674924 1 0
+0.0335484 0.0517292 0.0957753 0.00505228 1 0
+0.321536 0.0865347 0.161924 0.00723207 1 0
+0.336144 0.0797876 0.125265 0.00618701 1 0
+0.306447 0.0747709 0.124501 0.0063047 1 0
+0.338491 0.0802498 0.140048 0.00809261 1 0
+0.0724714 0.172504 0.0723751 0.00867382 1 0
+0.077077 0.155879 0.0945479 0.00612652 1 0
+0.0603146 0.142855 0.064314 0.00788684 1 0
+0.0873398 0.153674 0.0624092 0.00743584 1 0
+0.0837064 0.168728 0.18948 0.00889523 1 0
+0.0796081 0.136161 0.182522 0.013425 1 0
+0.0984236 0.143756 0.174245 0.00848882 1 0
+0.090862 0.139998 0.157997 0.00982194 1 0
+0.120833 0.0169722 0.0755527 0.00566548 1 0
+0.0890771 0.0475762 0.0844198 0.00691428 1 0
+0.111386 0.0351207 0.0575203 0.0053293 1 0
+0.220659 0.0305815 0.129607 0.00729992 1 0
+0.20806 0.0804905 0.123909 0.0118058 1 0
+0.238003 0.061297 0.120152 0.00905688 1 0
+0.233536 0.0524825 0.134068 0.00625855 1 0
+0.246734 0.133539 0.040288 0.00658618 1 0
+0.261156 0.116553 0.0379597 0.0120144 1 0
+0.253954 0.128533 0.0491202 0.00587193 1 0
+0.0659653 0.0123689 0.0890542 0.0122615 1 0
+0.0753169 0.0123982 0.113778 0.0125732 1 0
+0.0701547 0.0311356 0.0969636 0.00853032 1 0
+0.124168 0.167553 0.0768115 0.00984731 1 0
+0.154698 0.126665 0.106738 0.00861596 1 0
+0.114986 0.142254 0.0860121 0.0133329 1 0
+0.346007 0.153192 0.00795461 0.00800824 1 0
+0.318942 0.148861 0.0113152 0.0115475 1 0
+0.318348 0.0348712 0.0863439 0.00785672 1 0
+0.303844 0.0561051 0.0899067 0.0052354 1 0
+0.313022 0.0358319 0.074224 0.00541661 1 0
+0.152268 0.0076484 0.173852 0.00786869 1 0
+0.13011 0.0144056 0.154271 0.00585279 1 0
+0.165082 0.0119672 0.144377 0.00713006 1 0
+0.0871026 0.125344 0.0093217 0.0096307 1 0
+0.122601 0.0934845 0.0107429 0.00534686 1 0
+0.390935 0.0680353 0.16854 0.00545651 1 0
+0.391784 0.0660705 0.137733 0.0081494 1 0
+0.368876 0.0851037 0.157602 0.00681751 1 0
+0.3435 0.0532953 0.184997 0.0059137 1 0
+0.0678451 0.116635 0.0213229 0.00572971 1 0
+0.0831903 0.134643 0.0428236 0.0073013 1 0
+0.315142 0.019002 0.154585 0.00509271 1 0
+0.318834 0.0287574 0.124498 0.0082297 1 0
+0.331325 0.0384706 0.118156 0.00881685 1 0
+0.257485 0.0774816 0.0149607 0.00737033 1 0
+0.243986 0.105343 0.0208968 0.0114293 1 0
+0.250893 0.0810976 0.056506 0.00976706 1 0
+0.241362 0.071397 0.0497077 0.00543699 1 0
+0.0951764 0.190812 0.0352198 0.005069 1 0
+0.105909 0.1918 0.0552695 0.0055431 1 0
+0.0838705 0.19237 0.0559887 0.00778471 1 0
+0.0909871 0.168167 0.046449 0.00585127 1 0
+0.138129 0.0547823 0.0314965 0.00737256 1 0
+0.133008 0.0625234 0.0701167 0.00598886 1 0
+0.131467 0.0487513 0.0499509 0.0050972 1 0
+0.392729 0.17308 0.0543232 0.00762244 1 0
+0.390069 0.140352 0.0309828 0.00894587 1 0
+0.392483 0.144524 0.0675016 0.00668198 1 0
+0.365541 0.139541 0.0628607 0.00767386 1 0
+0.181917 0.072989 0.122854 0.00848093 1 0
+0.151607 0.0618207 0.010758 0.00684657 1 0
+0.170956 0.0743141 0.00515087 0.00535107 1 0
+0.151276 0.100927 0.0089466 0.00913301 1 0
+0.159422 0.0740842 0.0305408 0.00543141 1 0
+0.115667 0.180416 0.0794904 0.0058022 1 0
+0.0994465 0.155809 0.0923839 0.00718233 1 0
+0.0999845 0.154006 0.0694851 0.00705776 1 0
+0.273075 0.179113 0.0764238 0.0060175 1 0
+0.273414 0.182999 0.100381 0.00660443 1 0
+0.294461 0.167567 0.0871492 0.00611654 1 0
+0.267046 0.169424 0.0821706 0.00493232 1 0
+0.263157 0.0743531 0.166745 0.00603747 1 0
+0.236311 0.0883744 0.127816 0.00866709 1 0
+0.262038 0.0760561 0.129225 0.00937597 1 0
+0.260806 0.0583165 0.152129 0.00554879 1 0
+0.127913 0.0401208 0.0105813 0.0108419 1 0
+0.139949 0.188361 0.0447094 0.00963688 1 0
+0.156756 0.175254 0.0466356 0.00502514 1 0
+0.0182403 0.0775134 0.0207589 0.00585374 1 0
+0.049628 0.0861852 0.0125484 0.00534557 1 0
+0.0386586 0.104817 0.0341019 0.00649825 1 0
+0.0504136 0.0672162 0.0286269 0.00617965 1 0
+0.241949 0.0263184 0.0058993 0.00573091 1 0
+0.252068 0.0556234 0.00921361 0.00637274 1 0
+0.22369 0.0526726 0.0183509 0.0052916 1 0
+0.232494 0.0511763 0.0241064 0.00533218 1 0
+0.19112 0.181137 0.00602503 0.00537962 1 0
+0.202486 0.159753 0.0127104 0.00927223 1 0
+0.0752446 0.00953644 0.0199405 0.00785062 1 0
+0.0762035 0.00765303 0.0478329 0.00785765 1 0
+0.0933209 0.00532339 0.0221773 0.00561959 1 0
+0.103481 0.0147954 0.0398048 0.00544491 1 0
+0.0277912 0.120626 0.096511 0.00511143 1 0
+0.0426447 0.126149 0.114312 0.00516252 1 0
+0.196674 0.18675 0.102437 0.0049966 1 0
+0.211756 0.1794 0.0726919 0.00523377 1 0
+0.223498 0.175543 0.0884482 0.00502362 1 0
+0.200843 0.175993 0.0680288 0.00711302 1 0
+0.342708 0.0784478 0.109096 0.0064675 1 0
+0.301046 0.0851749 0.11395 0.00736852 1 0
+0.326322 0.112953 0.104599 0.00894385 1 0
+0.33831 0.112264 0.129564 0.00533993 1 0
+0.146632 0.119854 0.155857 0.00758345 1 0
+0.113839 0.124127 0.123163 0.00871534 1 0
+0.147431 0.104285 0.128928 0.0101026 1 0
+0.130699 0.107509 0.132492 0.00730589 1 0
+0.110278 0.121507 0.179754 0.0116856 1 0
+0.0956274 0.122005 0.158534 0.00879957 1 0
+0.119865 0.0920174 0.138423 0.00961322 1 0
+0.219451 0.0418365 0.0510078 0.00644042 1 0
+0.173338 0.00866538 0.177793 0.00550045 1 0
+0.211117 0.00543773 0.18246 0.00561183 1 0
+0.187216 0.00837054 0.155071 0.00872445 1 0
+0.1664 0.17484 0.0827415 0.00501124 1 0
+0.177999 0.143392 0.0931468 0.00585077 1 0
+0.109717 0.192946 0.0137512 0.00724742 1 0
+0.14143 0.184762 0.0195865 0.00684492 1 0
+0.122259 0.190175 0.0476535 0.0102463 1 0
+0.0667361 0.169401 0.0599992 0.00531496 1 0
+0.082868 0.146826 0.0508342 0.00564837 1 0
+0.0552552 0.154891 0.0433447 0.00561681 1 0
+0.310689 0.151778 0.181469 0.00665367 1 0
+0.330094 0.152012 0.136954 0.0113277 1 0
+0.345349 0.156333 0.145413 0.00664196 1 0
+0.251394 0.126454 0.166924 0.0114056 1 0
+0.267385 0.108622 0.136848 0.00553662 1 0
+0.263938 0.13864 0.160479 0.00723252 1 0
+0.360484 0.188651 0.0759512 0.00497759 1 0
+0.331221 0.188418 0.0363829 0.00560804 1 0
+0.331933 0.192602 0.0717644 0.00779763 1 0
+0.347752 0.165414 0.0682079 0.00796147 1 0
+0.136251 0.00928 0.0920064 0.00859638 1 0
+0.129956 0.0161276 0.112292 0.00509584 1 0
+0.152579 0.0159942 0.115424 0.00520984 1 0
+0.136703 0.036157 0.110096 0.00662378 1 0
+0.100961 0.00493377 0.154156 0.00544695 1 0
+0.13546 0.0669218 0.0237618 0.0068288 1 0
+0.142736 0.0815677 0.0644031 0.00910591 1 0
+0.155592 0.0620349 0.0396216 0.00727139 1 0
+0.23071 0.0941707 0.0424577 0.0106171 1 0
+0.231904 0.080267 0.0565854 0.00924055 1 0
+0.136849 0.055555 0.169806 0.00630133 1 0
+0.13647 0.0580592 0.135486 0.00654245 1 0
+0.150866 0.0539106 0.165846 0.00803573 1 0
+0.394575 0.07269 0.0171423 0.0055546 1 0
+0.39486 0.110574 0.0118853 0.00550496 1 0
+0.387951 0.0869387 0.0294716 0.00538716 1 0
+0.254035 0.0737726 0.183436 0.00907811 1 0
+0.227242 0.108008 0.16302 0.0103512 1 0
+0.22171 0.101723 0.147955 0.0068841 1 0
+0.246732 0.0983579 0.13288 0.00662683 1 0
+0.0335488 0.109202 0.0863888 0.00581296 1 0
+0.0513091 0.0948092 0.0875527 0.00611939 1 0
+0.05679 0.122306 0.0980262 0.00517686 1 0
+0.052778 0.114593 0.0733525 0.00678807 1 0
+0.377528 0.112721 0.191255 0.00636142 1 0
+0.323421 0.118747 0.192828 0.00747939 1 0
+0.0202821 0.127857 0.185543 0.00532221 1 0
+0.0456882 0.121297 0.189231 0.00619298 1 0
+0.0278125 0.163137 0.185644 0.00614243 1 0
+0.0407269 0.184969 0.19302 0.00713734 1 0
+0.202317 0.0380069 0.0635513 0.0061186 1 0
+0.196048 0.0690914 0.0860807 0.00683945 1 0
+0.214552 0.0556608 0.0504908 0.00558046 1 0
+0.187018 0.0565114 0.0598651 0.00514824 1 0
+0.192447 0.179866 0.191769 0.00552928 1 0
+0.382976 0.00933654 0.00800821 0.00624409 1 0
+0.379462 0.00880123 0.0393308 0.00900867 1 0
+0.228739 0.0357554 0.140074 0.00689897 1 0
+0.253924 0.0245816 0.129793 0.00977247 1 0
+0.254756 0.0552683 0.117164 0.0089968 1 0
+0.244956 0.0366762 0.141704 0.00942559 1 0
+0.284401 0.126071 0.0301732 0.0129644 1 0
+0.280462 0.111896 0.0848258 0.0114435 1 0
+0.294088 0.127276 0.0774395 0.0103921 1 0
+0.280271 0.135028 0.0733615 0.0059669 1 0
+0.00563921 0.0823402 0.11215 0.00596405 1 0
+0.00684844 0.11187 0.11031 0.0057838 1 0
+0.0379734 0.0850477 0.0989356 0.00668566 1 0
+0.148048 0.0673697 0.16165 0.00634128 1 0
+0.16632 0.0802059 0.13652 0.0100819 1 0
+0.153832 0.0715793 0.136283 0.00509827 1 0
+0.164782 0.0570918 0.149821 0.00786055 1 0
+0.0708317 0.0947185 0.0813214 0.00661075 1 0
+0.0669437 0.121838 0.0984773 0.00499761 1 0
+0.0644455 0.124797 0.0716368 0.00615064 1 0
+0.090339 0.120408 0.0696529 0.00689617 1 0
+0.262019 0.0920942 0.188904 0.00850721 1 0
+0.266705 0.121891 0.180648 0.00733623 1 0
+0.243492 0.119364 0.185346 0.00985739 1 0
+0.265228 0.0970171 0.153937 0.00631729 1 0
+0.386732 0.186006 0.0490056 0.0075897 1 0
+0.391645 0.153252 0.0174181 0.00874731 1 0
+0.0164142 0.169571 0.0469836 0.00510672 1 0
+0.0162801 0.146559 0.0269116 0.00578039 1 0
+0.0336765 0.137425 0.0465965 0.00640884 1 0
+0.0352034 0.153494 0.042736 0.00671905 1 0
+0.393189 0.145792 0.170589 0.00703241 1 0
+0.393971 0.175462 0.142844 0.00637997 1 0
+0.393145 0.142807 0.143542 0.006247 1 0
+0.378366 0.151838 0.156955 0.00527381 1 0
+0.381775 0.0767982 0.00497851 0.00506417 1 0
+0.384389 0.110274 0.00625307 0.00656743 1 0
+0.0501918 0.0651677 0.0751153 0.00698474 1 0
+0.0522839 0.0587165 0.0514569 0.00649157 1 0
+0.217106 0.0220904 0.0114196 0.00546845 1 0
+0.20051 0.0538623 0.0172405 0.0068967 1 0
+0.222733 0.0473342 0.0279354 0.00572104 1 0
+0.261327 0.0222179 0.186737 0.00551997 1 0
+0.300809 0.0175195 0.00825984 0.0083 1 0
+0.278985 0.0387736 0.00632486 0.00651096 1 0
+0.0868131 0.14207 0.00723754 0.00730909 1 0
+0.111635 0.139991 0.0197633 0.00503765 1 0
+0.103829 0.139937 0.0308627 0.00710114 1 0
+0.0486418 0.113671 0.00631207 0.00680382 1 0
+0.0276864 0.110959 0.0271024 0.00789287 1 0
+0.189698 0.0844834 0.00680689 0.00718779 1 0
+0.165699 0.11211 0.0107286 0.00868968 1 0
+0.213054 0.136856 0.0377959 0.00641269 1 0
+0.205379 0.128465 0.0764922 0.00779672 1 0
+0.210352 0.14347 0.0803363 0.00847115 1 0
+0.19583 0.147316 0.0427877 0.00687583 1 0
+0.203294 0.0652706 0.173102 0.00790694 1 0
+0.195976 0.0856479 0.140561 0.00794527 1 0
+0.198447 0.0571985 0.161029 0.00740396 1 0
+0.271409 0.00778163 0.00978963 0.0049704 1 0
+0.294126 0.00627609 0.01453 0.00645502 1 0
+0.28841 0.183894 0.158858 0.00510762 1 0
+0.269919 0.183373 0.131083 0.00614539 1 0
+0.29785 0.164485 0.122122 0.00688027 1 0
+0.377503 0.106226 0.0875702 0.00694416 1 0
+0.386703 0.127112 0.110159 0.00913205 1 0
+0.357162 0.124419 0.0912405 0.00725182 1 0
+0.0095061 0.116134 0.0277109 0.0070637 1 0
+0.00773396 0.0931842 0.051083 0.0050224 1 0
+0.00649546 0.115939 0.0538062 0.00667849 1 0
+0.0282208 0.110772 0.0450519 0.00622384 1 0
+0.394226 0.100204 0.186616 0.00590458 1 0
+0.390406 0.111207 0.183462 0.0060037 1 0
+0.371822 0.111796 0.16477 0.00589004 1 0
+0.320528 0.0880744 0.0322957 0.00945677 1 0
+0.298506 0.108633 0.0320131 0.00953935 1 0
+0.27853 0.09926 0.0699264 0.00818781 1 0
+0.31458 0.122673 0.0613605 0.0144611 1 0
+0.0293974 0.107606 0.126394 0.00543034 1 0
+0.0588922 0.124193 0.121338 0.00801985 1 0
+0.0424652 0.102032 0.131962 0.00553475 1 0
+0.364571 0.122046 0.00864333 0.0089966 1 0
+0.327554 0.121654 0.0148372 0.0124066 1 0
+0.333016 0.124314 0.0330948 0.00683507 1 0
+0.105421 0.0127092 0.192345 0.00790702 1 0
+0.137771 0.0134939 0.193549 0.00659779 1 0
+0.122142 0.0399081 0.190873 0.00657837 1 0
+0.0360628 0.14824 0.195135 0.00498531 1 0
+0.0487747 0.130945 0.194461 0.00520711 1 0
+0.0114236 0.190122 0.0171162 0.00624084 1 0
+0.00719424 0.185625 0.043441 0.00751635 1 0
+0.150284 0.191552 0.11361 0.00847748 1 0
+0.113937 0.170589 0.114578 0.00946019 1 0
+0.157242 0.195396 0.0739888 0.004951 1 0
+0.187169 0.191199 0.104521 0.0057037 1 0
+0.191458 0.179219 0.0751372 0.00509441 1 0
+0.179449 0.177476 0.0741934 0.00707689 1 0
+0.220758 0.131729 0.172635 0.0110727 1 0
+0.235641 0.14715 0.150809 0.00628522 1 0
+0.174845 0.0173726 0.00679136 0.00715132 1 0
+0.389 0.0262074 0.0765676 0.00740518 1 0
+0.385725 0.0576259 0.0716836 0.00494275 1 0
+0.369562 0.0489367 0.0886258 0.00875958 1 0
+0.389473 0.125925 0.0240515 0.00707116 1 0
+0.384935 0.114117 0.0640126 0.00517591 1 0
+0.358025 0.129177 0.065102 0.00532288 1 0
+0.380652 0.114116 0.0493804 0.00640348 1 0
+0.0925978 0.185847 0.176284 0.00817487 1 0
+0.103581 0.173693 0.138901 0.00526595 1 0
+0.169338 0.185191 0.144271 0.0124284 1 0
+0.190417 0.142733 0.141853 0.00703344 1 0
+0.0145455 0.0827114 0.192269 0.00671582 1 0
+0.0201515 0.118411 0.19059 0.00538755 1 0
+0.0447295 0.10804 0.190066 0.00589401 1 0
+0.372658 0.186009 0.0342008 0.00586944 1 0
+0.341111 0.193211 0.0297643 0.00725038 1 0
+0.291381 0.145337 0.0695375 0.00537388 1 0
+0.262009 0.149087 0.0586692 0.0063418 1 0
+0.272672 0.157725 0.0471531 0.00678475 1 0
+0.177522 0.191702 0.0151077 0.00871947 1 0
+0.195951 0.192488 0.042442 0.0075691 1 0
+0.223972 0.0441119 0.066088 0.00943428 1 0
+0.216549 0.0621694 0.0881533 0.00736065 1 0
+0.248009 0.0605968 0.0849173 0.00751538 1 0
+0.222064 0.056697 0.058959 0.005155 1 0
+0.204322 0.00865878 0.149084 0.00905007 1 0
+0.0179466 0.0646345 0.0477057 0.00580657 1 0
+0.0279603 0.0870887 0.0391257 0.00507917 1 0
+0.0583118 0.138382 0.13237 0.0075169 1 0
+0.0310013 0.14362 0.151161 0.00524737 1 0
+0.0781885 0.0332649 0.0108671 0.00532103 1 0
+0.0690375 0.0649554 0.0147177 0.00651158 1 0
+0.104554 0.0463637 0.00797568 0.00810448 1 0
+0.291221 0.19255 0.0657017 0.00699412 1 0
+0.314641 0.193615 0.0665849 0.00653856 1 0
+0.322512 0.174957 0.0655721 0.0117791 1 0
+0.246221 0.191961 0.0279806 0.00505252 1 0
+0.26026 0.192866 0.0414315 0.0063595 1 0
+0.226439 0.194878 0.0503368 0.0053088 1 0
+0.381734 0.0627377 0.129848 0.00505232 1 0
+0.359458 0.0626474 0.123117 0.00536539 1 0
+0.368474 0.0544648 0.140028 0.00583783 1 0
+0.371952 0.186986 0.0786659 0.00541608 1 0
+0.373149 0.188049 0.110842 0.00521248 1 0
+0.348782 0.174456 0.0904933 0.0109357 1 0
+0.370339 0.0202183 0.145735 0.00762078 1 0
+0.353047 0.036823 0.134046 0.00654898 1 0
+0.173665 0.0688826 0.112392 0.00546214 1 0
+0.00601937 0.0813715 0.168923 0.00635341 1 0
+0.00602729 0.0869847 0.136085 0.00609493 1 0
+0.0184638 0.0953948 0.160977 0.0049687 1 0
+0.0871605 0.0551548 0.11149 0.00512355 1 0
+0.121243 0.0613418 0.116861 0.00674977 1 0
+0.0104101 0.0605892 0.180056 0.00544866 1 0
+0.0264487 0.0799943 0.162158 0.00601263 1 0
+0.0255322 0.0594446 0.155259 0.00734574 1 0
+0.236368 0.0362734 0.192409 0.00762552 1 0
+0.220529 0.0553839 0.190136 0.00524858 1 0
+0.251545 0.0452632 0.169149 0.00625398 1 0
+0.258667 0.0495091 0.076911 0.0063627 1 0
+0.0844778 0.0171772 0.0142944 0.00539746 1 0
+0.104986 0.0472937 0.020959 0.00496815 1 0
+0.234017 0.123122 0.165273 0.00636487 1 0
+0.215883 0.114482 0.137351 0.00607392 1 0
+0.255968 0.107054 0.134688 0.00618773 1 0
+0.242199 0.129011 0.143615 0.00661564 1 0
+0.254621 0.0204878 0.0150463 0.0063895 1 0
+0.260334 0.046401 0.00768789 0.00812479 1 0
+0.247893 0.0462226 0.0316245 0.00700558 1 0
+0.221421 0.134262 0.0282345 0.00655456 1 0
+0.180824 0.0228593 0.187996 0.00638733 1 0
+0.213041 0.0133159 0.19237 0.00780685 1 0
+0.194998 0.0338827 0.189502 0.0106018 1 0
+0.272619 0.189084 0.0698362 0.00594189 1 0
+0.302616 0.154225 0.0769161 0.00934855 1 0
+0.264127 0.154008 0.0797161 0.00829343 1 0
+0.269698 0.168629 0.0506287 0.0050404 1 0
+0.254899 0.0132178 0.0246547 0.00566253 1 0
+0.262937 0.0114562 0.0492763 0.00654525 1 0
+0.0232101 0.185494 0.094236 0.00642635 1 0
+0.0189702 0.190582 0.104327 0.00564361 1 0
+0.394705 0.0831134 0.171396 0.0056949 1 0
+0.384951 0.0759243 0.143572 0.00518763 1 0
+0.391195 0.109337 0.137347 0.00919292 1 0
+0.377732 0.0936121 0.147022 0.00939294 1 0
+0.0611988 0.0576605 0.0342762 0.00552004 1 0
+0.132409 0.152308 0.0376554 0.00724506 1 0
+0.257384 0.0913827 0.0213397 0.00792487 1 0
+0.273538 0.105342 0.0198757 0.0126039 1 0
+0.249536 0.115752 0.00706078 0.00712634 1 0
+0.273484 0.0906132 0.0559532 0.00589563 1 0
+0.00905115 0.0140949 0.160302 0.00928439 1 0
+0.195107 0.12811 0.194695 0.00562069 1 0
+0.170111 0.136759 0.187004 0.00585134 1 0
+0.17994 0.131085 0.156562 0.00832547 1 0
+0.164357 0.0123431 0.173025 0.00531164 1 0
+0.17351 0.0145689 0.152659 0.00496858 1 0
+0.0701793 0.171675 0.188997 0.00495742 1 0
+0.0748005 0.143099 0.15452 0.00690164 1 0
+0.374541 0.189631 0.155372 0.00811457 1 0
+0.380585 0.0188822 0.0672238 0.00714736 1 0
+0.382836 0.0435632 0.061077 0.00516762 1 0
+0.364107 0.0429161 0.0770429 0.00538829 1 0
+0.37229 0.041059 0.0512871 0.00493193 1 0
+0.355692 0.0860349 0.0875009 0.00631317 1 0
+0.349618 0.116454 0.0780361 0.00525851 1 0
+0.364768 0.0981785 0.0596607 0.00789483 1 0
+0.179002 0.0116066 0.0194827 0.00589101 1 0
+0.216723 0.0137037 0.0181508 0.00529219 1 0
+0.198619 0.00990967 0.0413414 0.0101715 1 0
+0.186634 0.0338454 0.044727 0.00608557 1 0
+0.4 0.03 0.03 0.01 2 0
+0 0.03 0.03 0.01 2 0
+0.4 0.03 0.17 0.01 2 0
+0 0.03 0.17 0.01 2 0
+0.4 0.17 0.03 0.01 2 0
+0 0.17 0.03 0.01 2 0
+0.4 0.17 0.17 0.01 2 0
+0 0.17 0.17 0.01 2 0
+0.02 0.03 0.03 0.01 2 0
+0.04 0.03 0.03 0.01 2 0
+0.06 0.03 0.03 0.01 2 0
+0.08 0.03 0.03 0.01 2 0
+0.1 0.03 0.03 0.01 2 0
+0.12 0.03 0.03 0.01 2 0
+0.14 0.03 0.03 0.01 2 0
+0.16 0.03 0.03 0.01 2 0
+0.18 0.03 0.03 0.01 2 0
+0.2 0.03 0.03 0.01 2 0
+0.22 0.03 0.03 0.01 2 0
+0.24 0.03 0.03 0.01 2 0
+0.26 0.03 0.03 0.01 2 0
+0.28 0.03 0.03 0.01 2 0
+0.3 0.03 0.03 0.01 2 0
+0.32 0.03 0.03 0.01 2 0
+0.34 0.03 0.03 0.01 2 0
+0.36 0.03 0.03 0.01 2 0
+0.38 0.03 0.03 0.01 2 0
+0.02 0.03 0.17 0.01 2 0
+0.04 0.03 0.17 0.01 2 0
+0.06 0.03 0.17 0.01 2 0
+0.08 0.03 0.17 0.01 2 0
+0.1 0.03 0.17 0.01 2 0
+0.12 0.03 0.17 0.01 2 0
+0.14 0.03 0.17 0.01 2 0
+0.16 0.03 0.17 0.01 2 0
+0.18 0.03 0.17 0.01 2 0
+0.2 0.03 0.17 0.01 2 0
+0.22 0.03 0.17 0.01 2 0
+0.24 0.03 0.17 0.01 2 0
+0.26 0.03 0.17 0.01 2 0
+0.28 0.03 0.17 0.01 2 0
+0.3 0.03 0.17 0.01 2 0
+0.32 0.03 0.17 0.01 2 0
+0.34 0.03 0.17 0.01 2 0
+0.36 0.03 0.17 0.01 2 0
+0.38 0.03 0.17 0.01 2 0
+0.02 0.17 0.03 0.01 2 0
+0.04 0.17 0.03 0.01 2 0
+0.06 0.17 0.03 0.01 2 0
+0.08 0.17 0.03 0.01 2 0
+0.1 0.17 0.03 0.01 2 0
+0.12 0.17 0.03 0.01 2 0
+0.14 0.17 0.03 0.01 2 0
+0.16 0.17 0.03 0.01 2 0
+0.18 0.17 0.03 0.01 2 0
+0.2 0.17 0.03 0.01 2 0
+0.22 0.17 0.03 0.01 2 0
+0.24 0.17 0.03 0.01 2 0
+0.26 0.17 0.03 0.01 2 0
+0.28 0.17 0.03 0.01 2 0
+0.3 0.17 0.03 0.01 2 0
+0.32 0.17 0.03 0.01 2 0
+0.34 0.17 0.03 0.01 2 0
+0.36 0.17 0.03 0.01 2 0
+0.38 0.17 0.03 0.01 2 0
+0.02 0.17 0.17 0.01 2 0
+0.04 0.17 0.17 0.01 2 0
+0.06 0.17 0.17 0.01 2 0
+0.08 0.17 0.17 0.01 2 0
+0.1 0.17 0.17 0.01 2 0
+0.12 0.17 0.17 0.01 2 0
+0.14 0.17 0.17 0.01 2 0
+0.16 0.17 0.17 0.01 2 0
+0.18 0.17 0.17 0.01 2 0
+0.2 0.17 0.17 0.01 2 0
+0.22 0.17 0.17 0.01 2 0
+0.24 0.17 0.17 0.01 2 0
+0.26 0.17 0.17 0.01 2 0
+0.28 0.17 0.17 0.01 2 0
+0.3 0.17 0.17 0.01 2 0
+0.32 0.17 0.17 0.01 2 0
+0.34 0.17 0.17 0.01 2 0
+0.36 0.17 0.17 0.01 2 0
+0.38 0.17 0.17 0.01 2 0
+0.347522 0.0798775 0.189345 0.00542525 1 0
+0.0978862 0.0443223 0.157324 0.00881265 1 0
+0.392662 0.0990343 0.149296 0.00665244 1 0
+0.27 0.186275 0.156019 0.00669684 1 0
+0.356951 0.162534 0.138065 0.00842663 1 0
+0.282853 0.0239922 0.154694 0.00641626 1 0
+0.03 0.152792 0.169299 0.005642 1 0
+0.102813 0.149965 0.130103 0.0072981 1 0
+0.246362 0.124006 0.0878291 0.00776572 1 0
+0.134712 0.0782273 0.00486166 0.00518048 1 0
+0.145202 0.0420336 0.160607 0.00612731 1 0
+0.1331 0.191055 0.13096 0.00492461 1 0
+0.178568 0.0439534 0.0151785 0.00628492 1 0
+0.0369389 0.0587979 0.0362255 0.00831987 1 0
+0.324462 0.104118 0.060766 0.00656953 1 0
+0.242014 0.156239 0.0521801 0.00555918 1 0
+0.347445 0.0793337 0.0940084 0.00614759 1 0
+0.176037 0.0328676 0.119084 0.00524276 1 0
+0.203878 0.107329 0.173163 0.00650472 1 0
+0.275532 0.0453966 0.0313616 0.00608947 1 0
+0.26178 0.155021 0.0948649 0.00706965 1 0
+0.39 0.158236 0.172488 0.00563869 1 0
+0.105644 0.0790286 0.176016 0.00580547 1 0
+0.20005 0.0366356 0.0493124 0.0083647 1 0
+0.0185075 0.160973 0.130327 0.00501499 1 0
+0.300174 0.155686 0.0955826 0.00747518 1 0
+0.113642 0.0321054 0.151243 0.00816062 1 0
+0.0507885 0.15975 0.145708 0.00739224 1 0
+0.271194 0.0350138 0.151904 0.00620918 1 0
+0.201468 0.195442 0.130678 0.00505288 1 0
+0.188726 0.172934 0.0671716 0.0054132 1 0
+0.370376 0.156378 0.178879 0.00812185 1 0
+0.212651 0.051505 0.0344394 0.00698105 1 0
+0.0728915 0.0702816 0.0670054 0.00733578 1 0
+0.27 0.0222001 0.0413285 0.00700511 1 0
+0.209838 0.078913 0.158632 0.00692605 1 0
+0.0313396 0.169454 0.0453461 0.00637858 1 0
+0.380556 0.0338425 0.153157 0.00728474 1 0
+0.327886 0.154734 0.118663 0.00729678 1 0
+0.35 0.157495 0.0225033 0.00747683 1 0
+0.0649327 0.050875 0.110639 0.00808269 1 0
+0.152733 0.0857879 0.179473 0.00634748 1 0
+0.288763 0.147693 0.0341985 0.0094579 1 0
+0.11 0.0433635 0.0307431 0.00670737 1 0
+0.361312 0.0139639 0.152203 0.00512422 1 0
+0.220006 0.095739 0.171783 0.00552227 1 0
+0.339671 0.181996 0.18433 0.00656595 1 0
+0.267395 0.194784 0.109548 0.00565878 1 0
+0.308662 0.0124479 0.173343 0.00896394 1 0
+0.253811 0.0926573 0.109213 0.0106235 1 0
+0.392837 0.123744 0.178331 0.00689455 1 0
+0.220257 0.0991966 0.0646123 0.0143061 1 0
+0.149942 0.0119581 0.0950768 0.00568721 1 0
+0.021108 0.192638 0.0225377 0.00513947 1 0
+0.202093 0.121861 0.111158 0.00779051 1 0
+0.364844 0.0434614 0.0223083 0.00624303 1 0
+0.0816671 0.141038 0.0995708 0.00766147 1 0
+0.356446 0.160479 0.0471579 0.00994152 1 0
+0.0450777 0.18198 0.0420726 0.0054801 1 0
+0.359875 0.0893131 0.177108 0.00504329 1 0
+0.0983642 0.130066 0.170333 0.00574947 1 0
+0.0337275 0.0454853 0.184088 0.00520309 1 0
+0.260472 0.183642 0.0225082 0.00557063 1 0
+0.320423 0.153275 0.0290202 0.00675951 1 0
+0.142201 0.152845 0.144419 0.0122891 1 0
+0.236239 0.12794 0.17545 0.00511185 1 0
+0.253457 0.0513097 0.0973065 0.00889881 1 0
+0.292661 0.0883479 0.0835194 0.0103442 1 0
+0.29 0.019008 0.0211345 0.00730379 1 0
+0.206797 0.109716 0.0158543 0.00644442 1 0
+0.00485992 0.157468 0.0570503 0.00495699 1 0
+0.151719 0.0532074 0.109485 0.00820095 1 0
+0.207828 0.170978 0.14269 0.00686123 1 0
+0.207725 0.0420149 0.179824 0.00733632 1 0
+0.270731 0.14459 0.099749 0.0060311 1 0
+0.184316 0.122176 0.187476 0.00577481 1 0
+0.140387 0.0445274 0.0230222 0.00612092 1 0
+0.160369 0.1527 0.0415237 0.00674556 1 0
+0.300792 0.147145 0.15994 0.00929333 1 0
+0.0525256 0.0915602 0.179181 0.00589334 1 0
+0.129693 0.175565 0.0426627 0.00688964 1 0
+0.299318 0.0291523 0.0845295 0.00620838 1 0
+0.00962742 0.0170789 0.119014 0.00614714 1 0
+0.26608 0.0134887 0.0245473 0.0055224 1 0
+0.359626 0.145645 0.018462 0.00831556 1 0
+0.264127 0.048321 0.0226428 0.00742254 1 0
+0.296538 0.081742 0.100029 0.00744197 1 0
+0.345111 0.0473617 0.172251 0.00823776 1 0
+0.0868119 0.108331 0.0569456 0.00585534 1 0
+0.174245 0.131957 0.0322579 0.00524247 1 0
+0.12388 0.118941 0.0234175 0.00751806 1 0
+0.334458 0.0902555 0.188535 0.0100815 1 0
+0.195442 0.0683869 0.120811 0.00520101 1 0
+0.33765 0.0317681 0.0132248 0.00499725 1 0
+0.0139264 0.0661681 0.057607 0.00498931 1 0
+0.366444 0.176412 0.0907763 0.00508473 1 0
+0.251406 0.18165 0.175613 0.00552709 1 0
+0.0480855 0.0204338 0.179939 0.00598943 1 0
+0.342488 0.0409397 0.10765 0.00671023 1 0
+0.172764 0.118587 0.043688 0.00660758 1 0
+0.33 0.0380642 0.179743 0.0061229 1 0
+0.177923 0.116745 0.0232329 0.00649864 1 0
+0.0434834 0.147828 0.0215313 0.0051462 1 0
+0.130758 0.0473001 0.0975034 0.00695327 1 0
+0.272865 0.0192001 0.132966 0.00589323 1 0
+0.265019 0.150946 0.168352 0.00741564 1 0
+0.24418 0.0141703 0.0369479 0.00778553 1 0
+0.336748 0.170515 0.077577 0.0071526 1 0
+0.184562 0.178649 0.112849 0.00958207 1 0
+0.362317 0.110098 0.0861787 0.00522559 1 0
+0.157402 0.116345 0.119616 0.00810692 1 0
+0.208746 0.0329015 0.0825929 0.00742124 1 0
+0.0497274 0.0591842 0.0861661 0.00559058 1 0
+0.01 0.0185565 0.177554 0.00697095 1 0
+0.0728359 0.0892859 0.0249654 0.00991388 1 0
+0.00664008 0.149212 0.0165518 0.00717416 1 0
+0.214491 0.0193724 0.180289 0.00578476 1 0
+0.277068 0.191227 0.0809189 0.00619127 1 0
+0.0424533 0.104161 0.0716172 0.00799191 1 0
+0.31 0.0402308 0.0232237 0.00582996 1 0
+0.27754 0.184929 0.172891 0.00540447 1 0
+0.252694 0.158786 0.0735484 0.00554851 1 0
+0.3085 0.0988447 0.149485 0.0110854 1 0
+0.146358 0.0654075 0.176887 0.00852953 1 0
+0.15028 0.0850435 0.124902 0.0097613 1 0
+0.331544 0.04829 0.19056 0.00819168 1 0
+0.351251 0.101156 0.135048 0.00589803 1 0
+0.186782 0.165407 0.083592 0.00584857 1 0
+0.325097 0.166509 0.185233 0.00643767 1 0
+0.0918322 0.180427 0.0413606 0.00745013 1 0
+0.160433 0.0312632 0.152793 0.00725904 1 0
+0.17575 0.0105614 0.189975 0.00706232 1 0
+0.11 0.0178155 0.165291 0.00645094 1 0
+0.209597 0.178443 0.177733 0.00493965 1 0
+0.0474925 0.152649 0.157478 0.00674388 1 0
+0.0970484 0.187071 0.0748803 0.00561971 1 0
+0.127766 0.16398 0.184554 0.00756034 1 0
+0.138599 0.0762437 0.189021 0.00663846 1 0
+0.091639 0.0976758 0.118241 0.00951811 1 0
+0.37809 0.0472335 0.165234 0.0079822 1 0
+0.09 0.155653 0.166236 0.0078889 1 0
+0.222052 0.0741071 0.101548 0.00603959 1 0
+0.360558 0.156651 0.0895007 0.0104342 1 0
+0.0209121 0.156322 0.178298 0.00574117 1 0
+0.275085 0.0433949 0.176447 0.00565728 1 0
+0.132939 0.151075 0.159076 0.00513916 1 0
+0.338449 0.0869435 0.0180735 0.00838531 1 0
+0.255873 0.0180861 0.178487 0.00519845 1 0
+0.19 0.178801 0.0412054 0.0074073 1 0
+0.24197 0.150359 0.0663884 0.00600992 1 0
+0.366987 0.0483655 0.151525 0.00651083 1 0
+0.258204 0.0950625 0.0787748 0.0143746 1 0
+0.313156 0.0696813 0.0855558 0.00515003 1 0
+0.0224121 0.161022 0.017894 0.00526373 1 0
+0.378217 0.181987 0.0709204 0.0053618 1 0
+0.336389 0.151644 0.165116 0.00933514 1 0
+0.265528 0.039234 0.181998 0.00611775 1 0
+0.0774819 0.181246 0.0528093 0.0054311 1 0
+0.366662 0.0219018 0.158378 0.00565348 1 0
+0.159721 0.0359766 0.0451912 0.00632694 1 0
+0.153264 0.142666 0.0149768 0.00576333 1 0
+0.267688 0.0789297 0.0281816 0.00545798 1 0
+0.359133 0.041135 0.10209 0.00997302 1 0
+0.27 0.156557 0.179664 0.00615902 1 0
+0.157162 0.0928317 0.0624114 0.00930508 1 0
+0.24382 0.0682745 0.191382 0.00498369 1 0
+0.030824 0.119874 0.0824092 0.00589828 1 0
+0.0607368 0.0719771 0.121373 0.006561 1 0
+0.182555 0.0870453 0.131754 0.00758449 1 0
+0.249288 0.171861 0.00902276 0.00894261 1 0
+0.128277 0.140272 0.0478176 0.00904013 1 0
+0.39 0.0408851 0.179636 0.00764493 1 0
+0.344839 0.0246951 0.0561511 0.00517938 1 0
+0.374681 0.124486 0.022 0.00793192 1 0
+0.172293 0.0940976 0.0800211 0.00723459 1 0
+0.189986 0.15199 0.152309 0.0069387 1 0
+0.0808306 0.0847432 0.0775252 0.00801434 1 0
+0.35 0.0244296 0.180218 0.00534406 1 0
+0.29128 0.068629 0.089716 0.00854914 1 0
+0.370536 0.00948985 0.15318 0.00517375 1 0
+0.138975 0.029358 0.0148715 0.0051768 1 0
+0.229972 0.163942 0.156787 0.0076274 1 0
+0.0458068 0.0745883 0.105977 0.00800304 1 0
+0.387971 0.13337 0.0972578 0.005263 1 0
+0.267418 0.123144 0.103298 0.00717081 1 0
+0.289479 0.116327 0.166929 0.00597564 1 0
+0.0076274 0.0163704 0.0386944 0.00763753 1 0
+0.168509 0.182954 0.0239459 0.006639 1 0
+0.15 0.176936 0.0391289 0.00521332 1 0
+0.37 0.158822 0.0381978 0.00639058 1 0
+0.393535 0.192952 0.0828301 0.0070797 1 0
+0.220561 0.152147 0.0267704 0.0081512 1 0
+0.0723325 0.16431 0.182063 0.00538414 1 0
+0.334911 0.0744686 0.0606515 0.00522857 1 0
+0.235834 0.026813 0.0458702 0.00671452 1 0
+0.195435 0.0170165 0.162842 0.00551265 1 0
+0.269892 0.0607274 0.109486 0.00883171 1 0
+0.343501 0.0709899 0.0209709 0.0057976 1 0
+0.222355 0.0915619 0.123518 0.00627954 1 0
+0.14512 0.0672658 0.124313 0.00713699 1 0
+0.0789361 0.0122478 0.165528 0.00833777 1 0
+0.303859 0.120825 0.105216 0.00568384 1 0
+0.0668885 0.187978 0.0470427 0.0057157 1 0
+0.0474666 0.176518 0.156891 0.00643413 1 0
+0.0546208 0.00894538 0.0542628 0.00499468 1 0
+0.163881 0.165255 0.0156245 0.00562792 1 0
+0.264941 0.0352942 0.0524973 0.00526542 1 0
+0.0682807 0.131748 0.126804 0.00521273 1 0
+0.31 0.0414694 0.0383149 0.00734023 1 0
+0.293551 0.0411853 0.146535 0.00674033 1 0
+0.259371 0.101169 0.0300947 0.00535567 1 0
+0.0236936 0.19498 0.117863 0.00556218 1 0
+0.194553 0.0960323 0.00662746 0.00534121 1 0
+0.144031 0.00765253 0.0145084 0.00790903 1 0
+0.387286 0.0283025 0.183463 0.00540204 1 0
+0.190849 0.085665 0.042132 0.0058276 1 0
+0.337163 0.0493615 0.0297166 0.00957028 1 0
+0.0702921 0.0508055 0.0761078 0.00887061 1 0
+0.363204 0.079317 0.031058 0.00585507 1 0
+0.0239026 0.0171388 0.0732999 0.00558563 1 0
+0.31 0.171377 0.0410328 0.00495384 1 0
+0.242897 0.0431399 0.157876 0.00764433 1 0
+0.0232279 0.0625859 0.0569853 0.00499752 1 0
+0.308419 0.154837 0.0283139 0.00536722 1 0
+0.351596 0.0296902 0.0490809 0.00580207 1 0
+0.00724216 0.107479 0.173821 0.0052565 1 0
+0.320234 0.110807 0.157754 0.00760032 1 0
+0.10993 0.17569 0.0450187 0.00888243 1 0
+0.0556015 0.0166924 0.153296 0.0118053 1 0
+0.255539 0.0102831 0.109715 0.00796557 1 0
+0.146502 0.158052 0.0927089 0.00542645 1 0
+0.105747 0.0703886 0.184545 0.00523508 1 0
+0.32732 0.123906 0.044966 0.00633809 1 0
+0.167621 0.160837 0.179697 0.00536462 1 0
+0.156603 0.15324 0.169971 0.00710102 1 0
+0.308484 0.164311 0.181512 0.00539052 1 0
+0.0635922 0.181646 0.183508 0.00623565 1 0
+0.0488876 0.155546 0.17358 0.00734124 1 0
+0.05 0.161337 0.0228354 0.00504587 1 0
+0.333482 0.115593 0.0639115 0.00588445 1 0
+0.311958 0.0137062 0.111868 0.00852586 1 0
+0.07 0.0223539 0.18273 0.00591058 1 0
+0.00719179 0.070529 0.0416848 0.00606667 1 0
+0.101032 0.0195252 0.155612 0.00685467 1 0
+0.0254764 0.0434224 0.0366104 0.00593267 1 0
+0.0697503 0.14859 0.103677 0.00703194 1 0
+0.0853097 0.164886 0.121862 0.00635816 1 0
+0.261932 0.182529 0.103209 0.0052298 1 0
+0.287308 0.151721 0.168501 0.00726717 1 0
+0.0169782 0.15904 0.0805994 0.0050559 1 0
+0.14364 0.0674591 0.13787 0.0055179 1 0
+0.231317 0.120206 0.0514386 0.00936835 1 0
+0.0573314 0.122786 0.19436 0.00603971 1 0
+0.0281059 0.0184631 0.021398 0.00499663 1 0
+0.263591 0.0639061 0.174787 0.00656042 1 0
+0.0581201 0.184798 0.163389 0.00631669 1 0
+0.179217 0.044415 0.158281 0.00766895 1 0
+0.0731051 0.0881463 0.180648 0.00529527 1 0
+0.09 0.0359271 0.0194755 0.0049713 1 0
+0.23 0.157473 0.178684 0.0080108 1 0
+0.341498 0.194203 0.0117522 0.00650448 1 0
+0.391166 0.10602 0.0685237 0.0059928 1 0
+0.358029 0.0186959 0.108716 0.00560939 1 0
+0.329772 0.17071 0.121833 0.00909976 1 0
+0.335608 0.0574737 0.173582 0.0057023 1 0
+0.331246 0.159417 0.103862 0.0085865 1 0
+0.0563992 0.0102386 0.185024 0.00576244 1 0
+0.213145 0.0479381 0.170198 0.00519868 1 0
+0.0938822 0.161259 0.0546349 0.00524396 1 0
+0.264021 0.027745 0.0944503 0.00506959 1 0
+0.140928 0.0777212 0.176066 0.00495326 1 0
+0.161296 0.115551 0.0985767 0.00666958 1 0
+0.280353 0.130673 0.178957 0.00528118 1 0
+0.156516 0.136071 0.178792 0.00753372 1 0
+0.251158 0.0395676 0.121355 0.00764725 1 0
+0.326188 0.034959 0.0461858 0.00591718 1 0
+0.217008 0.055159 0.00923339 0.0062824 1 0
+0.24511 0.0178481 0.0217576 0.00554719 1 0
+0.192659 0.033758 0.130776 0.00667871 1 0
+0.134313 0.00674791 0.123773 0.00571604 1 0
+0.25894 0.00798155 0.142322 0.00527416 1 0
+0.0989189 0.138211 0.188624 0.00693057 1 0
+0.188807 0.154195 0.0314249 0.00814928 1 0
+0.0465999 0.0158036 0.0306726 0.00566998 1 0
+0.21 0.178166 0.16205 0.00516225 1 0
+0.103462 0.0747507 0.162656 0.00566988 1 0
+0.232491 0.186303 0.165265 0.00743411 1 0
+0.0948224 0.0458309 0.0355574 0.00719834 1 0
+0.137066 0.0453262 0.182442 0.00595659 1 0
+0.0606057 0.0509872 0.139644 0.00577137 1 0
+0.118997 0.0803134 0.0169132 0.00963772 1 0
+0.0648667 0.150087 0.129484 0.00620631 1 0
+0.13 0.168638 0.0183636 0.00540324 1 0
+0.328037 0.00816448 0.0789749 0.00836521 1 0
+0.261785 0.0674796 0.0860459 0.00765607 1 0
+0.265839 0.12281 0.0595413 0.0109387 1 0
+0.125226 0.108533 0.114202 0.00615113 1 0
+0.215342 0.155261 0.153166 0.0062645 1 0
+0.189995 0.0465725 0.0353405 0.00970266 1 0
+0.0885535 0.0561785 0.184883 0.00626981 1 0
+0.121939 0.169556 0.15395 0.00617321 1 0
+0.11 0.174743 0.0199283 0.00496436 1 0
+0.331276 0.142067 0.0574075 0.0114335 1 0
+0.0469555 0.0789318 0.0751397 0.00502226 1 0
+0.20313 0.095668 0.132944 0.0065325 1 0
+0.0264725 0.182658 0.163376 0.00525103 1 0
+0.0549236 0.0830398 0.0891248 0.0062925 1 0
+0.309388 0.0495779 0.0630322 0.00534495 1 0
+0.234442 0.182998 0.0358474 0.00529841 1 0
+0.206371 0.159944 0.0584285 0.00581264 1 0
+0.306901 0.125028 0.0251801 0.010106 1 0
+0.101812 0.0251804 0.129384 0.00802216 1 0
+0.369995 0.173609 0.181455 0.00562445 1 0
+0.349316 0.114621 0.138382 0.00538571 1 0
+0.330089 0.129989 0.143439 0.00887266 1 0
+0.115997 0.191979 0.0698904 0.00832214 1 0
+0.177899 0.0857562 0.112367 0.00852281 1 0
+0.072263 0.030518 0.111296 0.00596901 1 0
+0.352759 0.136596 0.0576396 0.00644424 1 0
+0.230748 0.0966892 0.17339 0.00538032 1 0
+0.0458287 0.0433015 0.158147 0.00874561 1 0
+0.0980732 0.171347 0.0552498 0.00569654 1 0
+0.305693 0.155839 0.127417 0.00593698 1 0
+0.335309 0.126327 0.0706772 0.00693509 1 0
+0.314188 0.143696 0.103088 0.0107034 1 0
+0.142819 0.173227 0.0858479 0.0112391 1 0
+0.31 0.0348089 0.180252 0.00510729 1 0
+0.15 0.0436508 0.0331577 0.00721381 1 0
+0.19796 0.0280548 0.148822 0.00873619 1 0
+0.287608 0.0440149 0.181191 0.00508972 1 0
+0.234242 0.0276053 0.0936894 0.00535566 1 0
+0.200447 0.0930969 0.0415927 0.00509391 1 0
+0.33 0.0395939 0.0215398 0.00504401 1 0
+0.108655 0.0741489 0.140021 0.00772278 1 0
+0.23 0.0336803 0.155098 0.00832 1 0
+0.05 0.0465513 0.0365519 0.0095876 1 0
+0.102633 0.158261 0.0806719 0.00520046 1 0
+0.30296 0.116641 0.142802 0.00871556 1 0
+0.146636 0.0086573 0.0811116 0.00646753 1 0
+0.248061 0.150212 0.159558 0.00759468 1 0
+0.0511742 0.126609 0.00468162 0.00493993 1 0
+0.160765 0.14026 0.105735 0.00630499 1 0
+0.203703 0.132457 0.169937 0.00620977 1 0
+0.287417 0.086656 0.114549 0.00635341 1 0
+0.0993595 0.191428 0.098834 0.00507766 1 0
+0.313624 0.145026 0.121706 0.00796975 1 0
+0.122538 0.15124 0.154183 0.00635657 1 0
+0.0604078 0.0152021 0.123458 0.00542286 1 0
+0.0223381 0.125728 0.135981 0.00585759 1 0
+0.315672 0.149159 0.0607302 0.00602484 1 0
+0.3332 0.164513 0.0123964 0.00965288 1 0
+0.37582 0.172889 0.0147571 0.00606757 1 0
+0.052553 0.0588091 0.110053 0.00604681 1 0
+0.140355 0.0965998 0.0802462 0.0122419 1 0
+0.0973348 0.00627142 0.0760289 0.00540746 1 0
+0.279178 0.0296219 0.185108 0.00513539 1 0
+0.00445371 0.0476518 0.120346 0.00494855 1 0
+0.0644919 0.191953 0.00716455 0.00588954 1 0
+0.0869399 0.0810823 0.10593 0.0102924 1 0
+0.340655 0.171237 0.140926 0.00589336 1 0
+0.237862 0.110315 0.0055321 0.00579299 1 0
+0.320733 0.173027 0.0827873 0.00563505 1 0
+0.144934 0.0258788 0.0882664 0.00526551 1 0
+0.101809 0.0163963 0.176675 0.00526074 1 0
+0.107666 0.0199858 0.0178321 0.00611792 1 0
+0.0498234 0.0372418 0.0210861 0.00511295 1 0
+0.110865 0.0949012 0.0684746 0.0052638 1 0
+0.38057 0.176806 0.0552643 0.00512958 1 0
+0.197033 0.114059 0.138863 0.0084076 1 0
+0.249194 0.109915 0.166191 0.00529529 1 0
+0.0862794 0.154898 0.17898 0.00540933 1 0
+0.27033 0.12531 0.0158457 0.00713187 1 0
+0.32917 0.0623616 0.0191554 0.00725251 1 0
+0.0834931 0.060607 0.0794537 0.00790831 1 0
+0.00791223 0.0940613 0.176638 0.00505783 1 0
+0.0787373 0.191473 0.104354 0.00497613 1 0
+0.354648 0.0809409 0.165555 0.00512381 1 0
+0.195343 0.0213989 0.0684254 0.00535459 1 0
+0.202165 0.116979 0.091119 0.011077 1 0
+0.183385 0.12038 0.10588 0.0066955 1 0
+0.100627 0.181147 0.150607 0.00892321 1 0
+0.184063 0.182109 0.0222756 0.00492635 1 0
+0.269945 0.0508076 0.0970386 0.00613515 1 0
+0.223061 0.0442632 0.164099 0.00573653 1 0
+0.379559 0.149125 0.1674 0.00558254 1 0
+0.166691 0.0981379 0.126571 0.0102523 1 0
+0.146453 0.178477 0.0102732 0.00546206 1 0
+0.250081 0.139208 0.105752 0.00666326 1 0
+0.0828624 0.049343 0.0991538 0.00917406 1 0
+0.114047 0.157075 0.0674288 0.00748147 1 0
+0.325864 0.0379841 0.102682 0.00760018 1 0
+0.0865448 0.0333339 0.154956 0.00674158 1 0
+0.179765 0.0194648 0.159028 0.00521305 1 0
+0.158754 0.0550893 0.0664386 0.00526478 1 0
+0.268519 0.0975019 0.126336 0.00843922 1 0
+0.0780719 0.0491939 0.0311838 0.00541201 1 0
+0.333234 0.187204 0.0596276 0.00554904 1 0
+0.209764 0.108087 0.146589 0.0067205 1 0
+0.184083 0.128664 0.130131 0.0123429 1 0
+0.286562 0.0698164 0.19439 0.0059234 1 0
+0.03 0.167223 0.158687 0.00535208 1 0
+0.0905275 0.0637841 0.115981 0.00517076 1 0
+0.0903216 0.0828469 0.0253702 0.00656234 1 0
+0.21 0.181115 0.0256308 0.00557701 1 0
+0.392997 0.123522 0.0881469 0.00713771 1 0
+0.27 0.177572 0.0390839 0.00548721 1 0
+0.341463 0.070823 0.130651 0.00521516 1 0
+0.0368654 0.0432709 0.0217789 0.00592252 1 0
+0.19 0.0188588 0.0323655 0.00515657 1 0
+0.11 0.0373125 0.019389 0.00609366 1 0
+0.102 0.0568128 0.166768 0.00737801 1 0
+0.37 0.16207 0.157379 0.0079496 1 0
+0.372113 0.105287 0.140051 0.00531965 1 0
+0.00599721 0.0650202 0.0947234 0.00597836 1 0
+0.24746 0.0529289 0.0668096 0.00629904 1 0
+0.0104065 0.136024 0.0294409 0.00654423 1 0
+0.231698 0.130363 0.18604 0.00628433 1 0
+0.29 0.0290446 0.044384 0.00754462 1 0
+0.028435 0.130973 0.0597217 0.00492464 1 0
+0.367429 0.109044 0.174486 0.00512261 1 0
+0.262766 0.0628471 0.0261988 0.00537886 1 0
+0.258736 0.100411 0.00488452 0.00494719 1 0
+0.321904 0.12017 0.085994 0.0113597 1 0
+0.262991 0.0494983 0.190873 0.00682598 1 0
+0.03 0.0189616 0.177748 0.00507591 1 0
+0.0587581 0.0997631 0.159554 0.00614663 1 0
+0.0638137 0.00656929 0.0414673 0.00611381 1 0
+0.11821 0.026267 0.0533042 0.00661779 1 0
+0.33 0.0415766 0.169184 0.005005 1 0
+0.345193 0.112954 0.163829 0.00498868 1 0
+0.392254 0.0472032 0.0473154 0.0054577 1 0
+0.0286494 0.11133 0.0760248 0.0049874 1 0
+0.27 0.0365696 0.0170355 0.00686145 1 0
+0.13948 0.0741076 0.165953 0.00537703 1 0
+0.152228 0.180271 0.0220904 0.00511481 1 0
+0.11 0.159652 0.175278 0.0053276 1 0
+0.130342 0.0749803 0.127891 0.00794283 1 0
+0.37 0.0455926 0.178018 0.007069 1 0
+0.174904 0.15232 0.159484 0.0097671 1 0
+0.258567 0.142183 0.0704392 0.00773136 1 0
+0.221933 0.0370084 0.0950801 0.00995903 1 0
+0.273527 0.0201031 0.0938819 0.00499655 1 0
+0.374264 0.12754 0.119256 0.00628468 1 0
+0.118483 0.012984 0.0645129 0.00630568 1 0
+0.241122 0.0152128 0.15513 0.00617623 1 0
+0.0291186 0.0337872 0.0429776 0.00617698 1 0
+0.333775 0.066065 0.0826432 0.00498637 1 0
+0.37 0.181074 0.0233665 0.00632907 1 0
+0.223202 0.18819 0.0923402 0.00498807 1 0
+0.346015 0.0269364 0.134661 0.00559914 1 0
+0.07 0.0416623 0.178629 0.00762019 1 0
+0.280236 0.0510122 0.119443 0.00670719 1 0
+0.261681 0.0470373 0.126408 0.005187 1 0
+0.307872 0.125585 0.172237 0.00807778 1 0
+0.37691 0.0493025 0.0547169 0.00512084 1 0
+0.199809 0.142591 0.11782 0.00520728 1 0
+0.290256 0.175235 0.122551 0.00533184 1 0
+0.359318 0.162337 0.0625626 0.00527138 1 0
+0.266254 0.130207 0.0276945 0.00581197 1 0
+0.216126 0.102205 0.136049 0.00568307 1 0
+0.305954 0.165733 0.085845 0.00559505 1 0
+0.194504 0.103429 0.179534 0.00548175 1 0
+0.0595778 0.17011 0.0454706 0.00547673 1 0
+0.120786 0.149805 0.0197906 0.00838019 1 0
+0.226249 0.0744244 0.115243 0.00828741 1 0
+0.229092 0.0811134 0.0322316 0.0060468 1 0
+0.0234179 0.155289 0.0264939 0.00512035 1 0
+0.0953025 0.0401542 0.182022 0.00642255 1 0
+0.24542 0.121912 0.0445354 0.0058618 1 0
+0.250948 0.153357 0.027401 0.00830815 1 0
+0.14512 0.0114577 0.184325 0.00537055 1 0
+0.229495 0.0740694 0.0408994 0.00512964 1 0
+0.245814 0.0900784 0.0454943 0.00532297 1 0
+0.3414 0.125404 0.0907135 0.00854917 1 0
+0.0809721 0.133603 0.142928 0.00715165 1 0
+0.01 0.0400683 0.175232 0.00512425 1 0
+0.175861 0.00960354 0.101807 0.0076149 1 0
+0.110409 0.0662879 0.0110968 0.00780684 1 0
+0.068644 0.126408 0.0158185 0.00551588 1 0
+0.341462 0.0416071 0.0919578 0.00625069 1 0
+0.237534 0.0419936 0.0999316 0.00501946 1 0
+0.0621255 0.0923219 0.0886774 0.0050362 1 0
+0.219184 0.0495255 0.0811933 0.00731089 1 0
+0.387963 0.0545049 0.0624941 0.00501702 1 0
+0.139508 0.0367064 0.0988393 0.00498963 1 0
+0.11 0.0189772 0.0326292 0.00511339 1 0
+0.266344 0.0950372 0.139461 0.00509116 1 0
+0.307471 0.185989 0.0714464 0.00500287 1 0
+0.181953 0.0950166 0.00545282 0.0055711 1 0
+0.118734 0.0115042 0.0312841 0.00512618 1 0
+0.15 0.160336 0.0231105 0.00551957 1 0
+0.22619 0.0202691 0.0185718 0.00623608 1 0
+0.276323 0.0724613 0.123032 0.00660369 1 0
+0.220569 0.076601 0.172806 0.00492155 1 0
+0.100232 0.131322 0.143208 0.00639902 1 0
+0.394782 0.0236983 0.13031 0.00492271 1 0
+0.382281 0.0185517 0.0169469 0.00592855 1 0
+0.22683 0.0322293 0.0166972 0.00511889 1 0
+0.0489981 0.170903 0.18261 0.0055178 1 0
+0.349467 0.075473 0.0104567 0.00518068 1 0
+0.139219 0.109415 0.0104712 0.00569116 1 0
+0.240757 0.104913 0.175124 0.00559638 1 0
+0.0937754 0.0174482 0.140284 0.00660599 1 0
+0.218027 0.187273 0.070854 0.00499785 1 0
+0.246405 0.0970869 0.0365274 0.00607323 1 0
+0.287901 0.18408 0.0332955 0.00647807 1 0
+0.376126 0.100972 0.0352068 0.00496434 1 0
+0.209984 0.155755 0.164863 0.00661049 1 0
+0.0273352 0.180617 0.179068 0.00577195 1 0
+0.175007 0.0219339 0.0183149 0.00505085 1 0
+0.0228989 0.0946957 0.170487 0.00554807 1 0
+0.0314103 0.0460342 0.165143 0.00751195 1 0
+0.370248 0.0450066 0.0410144 0.00626097 1 0
+0.27816 0.0123399 0.0452198 0.00530145 1 0
+0.39 0.176178 0.18115 0.00620133 1 0
+0.256466 0.186298 0.11359 0.00675823 1 0
+0.357651 0.140973 0.158994 0.00677486 1 0
+0.33 0.176801 0.161228 0.00494019 1 0
+0.28369 0.16306 0.0484567 0.00552614 1 0
+0.209807 0.0179606 0.135153 0.00640212 1 0
+0.374754 0.113029 0.0121099 0.00503982 1 0
+0.0743218 0.0220835 0.0127212 0.00599074 1 0
+0.18094 0.170539 0.128215 0.00762202 1 0
+0.09 0.0187735 0.176421 0.00634823 1 0
+0.05 0.181269 0.0284853 0.00514207 1 0
+0.382123 0.104338 0.155546 0.00499356 1 0
+0.32331 0.0201479 0.0853821 0.0060223 1 0
+0.21477 0.166049 0.0164699 0.00503424 1 0
+0.360868 0.0609557 0.111799 0.00616562 1 0
+0.18085 0.0321406 0.14269 0.00675333 1 0
+0.376028 0.1525 0.195405 0.00500279 1 0
+0.23225 0.024593 0.184328 0.00716327 1 0
+0.101793 0.10075 0.0728653 0.00600643 1 0
+0.12091 0.179599 0.0179687 0.00541848 1 0
+0.0640294 0.159891 0.0402461 0.00494685 1 0
+0.154054 0.185061 0.159621 0.00923332 1 0
+0.132175 0.0181216 0.17936 0.0067317 1 0
+0.23 0.180445 0.0248208 0.00535967 1 0
+0.11 0.15442 0.0350109 0.00917913 1 0
+0.156521 0.0697386 0.118669 0.00582222 1 0
+0.309131 0.137733 0.184422 0.00778363 1 0
+0.366573 0.021133 0.181724 0.00603386 1 0
+0.358072 0.127979 0.121924 0.005249 1 0
+0.12069 0.108055 0.166835 0.00967485 1 0
+0.35182 0.095704 0.174893 0.00547524 1 0
+0.27 0.167186 0.0407491 0.00494861 1 0
+0.13 0.0433101 0.031196 0.00669101 1 0
+0.0081316 0.173136 0.0422839 0.00506157 1 0
+0.122184 0.140332 0.0098268 0.00543885 1 0
+0.0236819 0.0581298 0.119657 0.0051633 1 0
+0.07 0.0351198 0.155468 0.00836856 1 0
+0.10544 0.111304 0.04461 0.00622339 1 0
+0.31127 0.0701473 0.114328 0.0058661 1 0
+0.354215 0.0480357 0.0842499 0.00633501 1 0
+0.0804859 0.0484113 0.171363 0.0068126 1 0
+0.172237 0.115855 0.106807 0.00537165 1 0
+0.0455084 0.160394 0.0412336 0.00577368 1 0
+0.202462 0.0695508 0.160314 0.00511081 1 0
+0.127363 0.189716 0.0842867 0.00989146 1 0
+0.0967372 0.10246 0.175354 0.00649448 1 0
+0.29834 0.054986 0.0621569 0.00507099 1 0
+0.339449 0.0122872 0.0219697 0.00582351 1 0
+0.339266 0.172422 0.0589719 0.00640596 1 0
+0.33 0.0206983 0.181778 0.00636567 1 0
+0.266732 0.100053 0.0608677 0.00607784 1 0
+0.380859 0.0514983 0.1034 0.00560041 1 0
+0.335886 0.0528022 0.0844396 0.00499071 1 0
+0.35 0.0212422 0.0391845 0.00539966 1 0
+0.381987 0.173518 0.0456676 0.00511331 1 0
+0.271273 0.161918 0.0586698 0.00555117 1 0
+0.0925863 0.183631 0.132173 0.00543901 1 0
+0.258335 0.12838 0.125804 0.00532049 1 0
+0.332545 0.139745 0.1934 0.00566671 1 0
+0.269576 0.0853788 0.0088008 0.00833053 1 0
+0.230941 0.017388 0.16918 0.00554991 1 0
+0.339962 0.0828962 0.156992 0.00606685 1 0
+0.289594 0.099299 0.0979231 0.0057516 1 0
+0.140955 0.193737 0.0954806 0.00640935 1 0
+0.118922 0.195137 0.118187 0.00530406 1 0
+0.0591231 0.0998853 0.0219789 0.00663882 1 0
+0.319005 0.15718 0.158883 0.00699831 1 0
+0.127877 0.155594 0.057736 0.00769139 1 0
+0.318294 0.16287 0.129378 0.0064074 1 0
+0.36565 0.0218976 0.0162911 0.00645217 1 0
+0.00566143 0.076938 0.179819 0.00541591 1 0
+0.293948 0.0438732 0.017724 0.00529041 1 0
+0.0624557 0.0779759 0.0326174 0.00502421 1 0
+0.376266 0.00748401 0.0779648 0.00547678 1 0
+0.0682995 0.172801 0.154954 0.00740985 1 0
+0.0594805 0.127945 0.0586856 0.00525666 1 0
+0.347452 0.0663356 0.119742 0.0069306 1 0
+0.184045 0.0231649 0.0428077 0.00507048 1 0
+0.316409 0.118177 0.0351041 0.0052505 1 0
+0.351999 0.141379 0.092419 0.00731385 1 0
+0.09 0.0212043 0.159808 0.00506732 1 0
+0.0585221 0.017857 0.0399701 0.00578099 1 0
+0.155197 0.00481838 0.142725 0.00492107 1 0
+0.30678 0.0953303 0.0300757 0.00624598 1 0
+0.393444 0.136023 0.0439173 0.00510526 1 0
+0.125353 0.0507762 0.110233 0.00638261 1 0
+0.351042 0.145311 0.0675031 0.00682948 1 0
+0.254195 0.0381235 0.0413503 0.00511698 1 0
+0.01 0.180899 0.0322408 0.00495998 1 0
+0.0483639 0.0473283 0.0625009 0.00500291 1 0
+0.194708 0.0966212 0.170253 0.00499734 1 0
+0.187264 0.183601 0.170186 0.00542055 1 0
+0.222129 0.115037 0.148178 0.00643828 1 0
+0.0430709 0.0295178 0.149118 0.0066055 1 0
+0.128507 0.0100832 0.0801202 0.00561299 1 0
+0.233596 0.122146 0.0371903 0.00519093 1 0
+0.0971237 0.130173 0.0772085 0.00719146 1 0
+0.00891847 0.0214366 0.052843 0.00603167 1 0
+0.333253 0.0299159 0.0869719 0.00556045 1 0
+0.139007 0.146844 0.179856 0.00804221 1 0
+0.0889269 0.120896 0.17275 0.0069551 1 0
+0.076424 0.0383375 0.0433011 0.00610034 1 0
+0.115177 0.0947907 0.177942 0.00848365 1 0
+0.0519639 0.0337147 0.182047 0.00495052 1 0
+0.280811 0.147314 0.124882 0.00644796 1 0
+0.175351 0.0993935 0.0629356 0.00616285 1 0
+0.232532 0.140507 0.00982939 0.00553772 1 0
+0.3443 0.0707592 0.0655399 0.00521791 1 0
+0.148259 0.169095 0.147212 0.005276 1 0
+0.0806145 0.0696028 0.148441 0.00697314 1 0
+0.377057 0.0938253 0.0614691 0.00526754 1 0
+0.176727 0.163044 0.0167244 0.00534095 1 0
+0.3747 0.183974 0.167391 0.00517088 1 0
+0.116467 0.129337 0.00737408 0.00584774 1 0
+0.265312 0.0469076 0.162889 0.00895888 1 0
+0.210312 0.136884 0.0516481 0.0050044 1 0
+0.382313 0.188611 0.0781563 0.00508364 1 0
+0.256426 0.156039 0.0443755 0.00729046 1 0
+0.110251 0.153492 0.110863 0.00841988 1 0
+0.153164 0.18907 0.0510826 0.00505197 1 0
+0.135832 0.105832 0.171815 0.00641906 1 0
+0.215764 0.0305541 0.0723022 0.00525438 1 0
+0.310033 0.142274 0.171375 0.00606043 1 0
+0.15 0.164059 0.0410785 0.00606329 1 0
+0.372926 0.0870483 0.194764 0.00526985 1 0
+0.277151 0.166751 0.184336 0.00497332 1 0
+0.233981 0.116093 0.174304 0.00507903 1 0
+0.170618 0.0208526 0.19461 0.00533624 1 0
+0.31 0.176127 0.0200096 0.00540617 1 0
+0.101048 0.0762601 0.0845436 0.00718604 1 0
+0.0542891 0.0249088 0.109028 0.00805957 1 0
+0.124952 0.117632 0.0917484 0.00791336 1 0
+0.347463 0.0241088 0.106902 0.00563985 1 0
+0.0329361 0.150373 0.120633 0.00579599 1 0
+0.0245338 0.0119199 0.158341 0.00647275 1 0
+0.172233 0.146717 0.0576079 0.00512017 1 0
+0.0883143 0.156751 0.100443 0.00659294 1 0
+0.214205 0.160449 0.179897 0.00492494 1 0
+0.135415 0.0877608 0.169698 0.00815181 1 0
+0.170844 0.0282051 0.128725 0.00611538 1 0
+0.153428 0.110489 0.144807 0.00597814 1 0
+0.193851 0.0220132 0.0994787 0.00552583 1 0
+0.323255 0.167198 0.0474381 0.00795909 1 0
+0.179707 0.164925 0.0747548 0.005482 1 0
+0.0511664 0.13624 0.0541774 0.00719237 1 0
+0.338068 0.176277 0.153188 0.00581013 1 0
+0.364839 0.0856002 0.0571979 0.00492247 1 0
+0.245009 0.190734 0.148366 0.00500709 1 0
+0.208114 0.0832033 0.0596652 0.00637513 1 0
+0.295831 0.116129 0.0184326 0.0056183 1 0
+0.34496 0.165245 0.132476 0.00507771 1 0
+0.0531677 0.18774 0.096376 0.00534642 1 0
+0.382862 0.132041 0.0397941 0.00514877 1 0
+0.322868 0.132797 0.0297669 0.00680391 1 0
+0.345811 0.139817 0.0350729 0.00615701 1 0
+0.0995122 0.174468 0.0147702 0.00587915 1 0
+0.24042 0.0930751 0.0560819 0.0061489 1 0
+0.35639 0.0526969 0.14479 0.00524043 1 0
+0.288497 0.168296 0.150794 0.0110711 1 0
+0.337262 0.163029 0.0517847 0.00558953 1 0
+0.261944 0.0256295 0.116649 0.00566127 1 0
+0.251957 0.095516 0.0101884 0.0049549 1 0
+0.0698836 0.0221234 0.0433974 0.00682977 1 0
+0.0137647 0.149326 0.195047 0.00556836 1 0
+0.250432 0.074121 0.109003 0.00821935 1 0
+0.179564 0.047218 0.171751 0.006094 1 0
+0.0331699 0.0224626 0.0413483 0.00523962 1 0
+0.329789 0.137961 0.0388322 0.00571604 1 0
+0.249914 0.140583 0.151655 0.00499878 1 0
+0.319055 0.0264271 0.106152 0.0062552 1 0
+0.0386856 0.0573807 0.156485 0.00602484 1 0
+0.35 0.177304 0.0190771 0.00651221 1 0
+0.255732 0.0438077 0.179543 0.00496818 1 0
+0.23 0.01902 0.0359562 0.00600114 1 0
+0.29 0.0182661 0.035311 0.00630612 1 0
+0.190535 0.0462154 0.167995 0.00554567 1 0
+0.226768 0.173457 0.0439585 0.00508207 1 0
+0.195773 0.086384 0.0930442 0.00811178 1 0
+0.25161 0.0879304 0.126099 0.0067339 1 0
+0.244441 0.0160123 0.172747 0.00493063 1 0
+0.043296 0.151548 0.0918601 0.00625959 1 0
+0.307593 0.0272495 0.0769788 0.0051061 1 0
+0.00725937 0.181249 0.160883 0.00619715 1 0
+0.175231 0.00533157 0.147991 0.00552298 1 0
+0.0631338 0.0584774 0.0477833 0.00496594 1 0
+0.0472304 0.0284223 0.0444217 0.00620969 1 0
+0.0937202 0.0200306 0.00855072 0.00585216 1 0
+0.00876345 0.191816 0.153383 0.00684825 1 0
+0.317627 0.0683682 0.0252238 0.00535805 1 0
+0.0717525 0.130556 0.107098 0.00817232 1 0
+0.146068 0.0287704 0.0437635 0.00509176 1 0
+0.274603 0.0963645 0.03542 0.00537813 1 0
+0.190315 0.0552909 0.0503652 0.00498143 1 0
+0.34227 0.0424943 0.128558 0.00680922 1 0
+0.224546 0.0717756 0.0894152 0.0052022 1 0
+0.16485 0.144163 0.116683 0.00601526 1 0
+0.31 0.0264071 0.159299 0.00508062 1 0
+0.337475 0.0525507 0.117738 0.00655369 1 0
+0.223739 0.0170824 0.0614024 0.00560669 1 0
+0.299231 0.0440644 0.161454 0.00647538 1 0
+0.0335832 0.0789404 0.0370472 0.00503675 1 0
+0.167133 0.07712 0.119504 0.00701539 1 0
+0.222646 0.152381 0.0815839 0.00666112 1 0
+0.256102 0.122997 0.109313 0.00494815 1 0
+0.217144 0.136513 0.0915481 0.0051836 1 0
+0.248134 0.0112451 0.0967474 0.00654313 1 0
+0.13 0.024322 0.0192746 0.00572495 1 0
+0.269567 0.00820065 0.0760283 0.00789579 1 0
+0.221619 0.0680395 0.0552225 0.00679536 1 0
+0.33895 0.13243 0.132953 0.00507055 1 0
+0.119456 0.0226494 0.183848 0.00514542 1 0
+0.31 0.16474 0.156743 0.00495294 1 0
+0.333612 0.104095 0.0213189 0.0057855 1 0
+0.157879 0.174185 0.130036 0.00890416 1 0
+0.300888 0.122424 0.0414241 0.00732578 1 0
+0.365243 0.103443 0.182958 0.00526612 1 0
+0.052821 0.0599626 0.150999 0.00601089 1 0
+0.389875 0.0408276 0.0233581 0.00608927 1 0
+0.00600313 0.18337 0.178389 0.00501887 1 0
+0.34897 0.111007 0.128003 0.00550693 1 0
+0.294398 0.161156 0.0182559 0.00573325 1 0
+0.181712 0.0226184 0.108846 0.00628206 1 0
+0.232003 0.0810735 0.0908776 0.00680589 1 0
+0.192502 0.0130733 0.0573592 0.00506112 1 0
+0.0286125 0.0500802 0.0806136 0.00523027 1 0
+0.0493994 0.121428 0.149163 0.00518747 1 0
+0.08476 0.158288 0.0380256 0.00497445 1 0
+0.0951523 0.159668 0.111227 0.0065057 1 0
+0.112207 0.191503 0.168551 0.00718012 1 0
+0.114836 0.191245 0.149378 0.00508199 1 0
+0.0904455 0.160321 0.133842 0.00686734 1 0
+0.118465 0.0969585 0.152407 0.00528396 1 0
+0.325616 0.136625 0.131179 0.00570646 1 0
+0.170373 0.171284 0.0552724 0.00506681 1 0
+0.279831 0.0253967 0.0541884 0.00539711 1 0
+0.204186 0.100462 0.0951556 0.00604524 1 0
+0.241027 0.140553 0.188586 0.00632563 1 0
+0.01 0.0305452 0.158786 0.00503532 1 0
+0.154831 0.106833 0.0213084 0.00502078 1 0
+0.356808 0.00512252 0.0769753 0.00500051 1 0
+0.148342 0.0586842 0.18959 0.0057163 1 0
+0.171288 0.0323468 0.182402 0.00533673 1 0
+0.277129 0.149936 0.137827 0.00562111 1 0
+0.172076 0.136966 0.111224 0.00555198 1 0
+0.285579 0.118203 0.066372 0.00625782 1 0
+0.0164121 0.194575 0.0894871 0.00544476 1 0
+0.375279 0.142649 0.0228584 0.00808403 1 0
+0.15 0.0391444 0.176967 0.00523655 1 0
+0.154845 0.0844059 0.0919995 0.00855174 1 0
+0.114847 0.0530955 0.17119 0.00507901 1 0
+0.161215 0.0463565 0.158803 0.00658422 1 0
+0.244294 0.0749789 0.127429 0.00693151 1 0
+0.201621 0.169863 0.056274 0.00539321 1 0
+0.115581 0.0706966 0.056733 0.00508092 1 0
+0.106464 0.112311 0.0671209 0.00524916 1 0
+0.291234 0.0553339 0.0958209 0.00526472 1 0
+0.316176 0.00764799 0.0855426 0.0052024 1 0
+0.275018 0.050031 0.0102281 0.0060469 1 0
+0.150034 0.0206415 0.178561 0.0061308 1 0
+0.263767 0.191992 0.0760477 0.00525599 1 0
+0.130293 0.116906 0.0351914 0.00604257 1 0
+0.186688 0.0872507 0.0579731 0.0061373 1 0
+0.230104 0.106871 0.03155 0.00613509 1 0
+0.173996 0.0709171 0.0506331 0.00512285 1 0
+0.0207845 0.0177262 0.0390978 0.0052981 1 0
+0.0211481 0.0258574 0.0156478 0.00498216 1 0
+0.332627 0.115789 0.15882 0.00579958 1 0
+0.263268 0.157899 0.0664981 0.00551224 1 0
+0.337952 0.0433085 0.15956 0.006886 1 0
+0.34815 0.131308 0.0763117 0.00704923 1 0
+0.115767 0.0923186 0.0853965 0.00514234 1 0
+0.39 0.0189152 0.0358037 0.00601733 1 0
+0.136347 0.131356 0.149812 0.00898847 1 0
+0.34661 0.147226 0.136929 0.00586783 1 0
+0.295703 0.0581534 0.0112684 0.00518624 1 0
+0.0870268 0.00678368 0.0133139 0.00534889 1 0
+0.047278 0.0610762 0.0980137 0.0060369 1 0
+0.178609 0.136398 0.0584243 0.0056634 1 0
+0.202349 0.1576 0.189478 0.00649183 1 0
+0.270943 0.132336 0.191526 0.00832911 1 0
+0.110306 0.122519 0.0741579 0.00656935 1 0
+0.114864 0.0526981 0.143973 0.00623323 1 0
+0.293011 0.0684381 0.183414 0.00565701 1 0
+0.274135 0.0932081 0.160943 0.00563774 1 0
+0.303815 0.140585 0.0694233 0.00626015 1 0
+0.302754 0.191723 0.0147281 0.00550898 1 0
+0.127051 0.00535971 0.111888 0.0055462 1 0
+0.16405 0.0356627 0.0568418 0.00542532 1 0
+0.216114 0.15051 0.19106 0.00731595 1 0
+0.0585163 0.0784101 0.193673 0.00501427 1 0
+0.164093 0.159871 0.117253 0.00903389 1 0
+0.171427 0.150318 0.145285 0.00498805 1 0
+0.01 0.178751 0.0212145 0.00593001 1 0
+0.126596 0.135693 0.0659915 0.00700331 1 0
+0.142394 0.0700104 0.010219 0.00549211 1 0
+0.28283 0.0597229 0.012684 0.00496416 1 0
+0.346125 0.065843 0.0811333 0.00549911 1 0
+0.0192994 0.155884 0.0432481 0.00504566 1 0
+0.0620351 0.177468 0.141743 0.00507261 1 0
+0.395852 0.0603702 0.179532 0.00498008 1 0
+0.196962 0.184654 0.0324529 0.0051657 1 0
+0.279714 0.0566011 0.19426 0.005438 1 0
+0.33 0.0204775 0.0218146 0.00605239 1 0
+0.166458 0.103195 0.147391 0.00591854 1 0
+0.0617074 0.043718 0.0241343 0.00501687 1 0
+0.193501 0.0107412 0.111082 0.00846357 1 0
+0.196351 0.0464952 0.106671 0.00548262 1 0
+0.075906 0.0671244 0.160934 0.00537679 1 0
+0.309361 0.00933187 0.0990245 0.0052889 1 0
+0.0627181 0.0634413 0.168156 0.00501112 1 0
+0.046994 0.112873 0.0364355 0.00532616 1 0
+0.183407 0.0707565 0.00836969 0.00530652 1 0
+0.232014 0.188669 0.181532 0.00507663 1 0
+0.0555723 0.144624 0.121058 0.00569052 1 0
+0.0343206 0.0954366 0.0503161 0.0050001 1 0
+0.0290338 0.173999 0.187396 0.00492787 1 0
+0.309574 0.0839854 0.160007 0.00514783 1 0
+0.0969705 0.169712 0.184873 0.00518084 1 0
+0.0658485 0.150003 0.179707 0.0062944 1 0
+0.108433 0.119435 0.163223 0.00507743 1 0
+0.206247 0.0766513 0.105902 0.0066949 1 0
+0.0864436 0.0643843 0.103629 0.00657068 1 0
+0.182244 0.133136 0.104595 0.00617659 1 0
+0.0471952 0.00624242 0.0945309 0.00649479 1 0
+0.0527607 0.0109981 0.11591 0.00611499 1 0
+0.10993 0.119343 0.0931493 0.0072709 1 0
+0.103207 0.0969803 0.129359 0.00654085 1 0
+0.170271 0.0187429 0.167282 0.00512471 1 0
+0.164726 0.0409384 0.179983 0.00554499 1 0
+0.326465 0.0283705 0.135593 0.00524226 1 0
+0.140623 0.0711734 0.0772951 0.00581126 1 0
+0.0850976 0.191205 0.0768463 0.00685597 1 0
+0.09 0.183533 0.0269557 0.00709967 1 0
+0.375296 0.139669 0.0715155 0.00536797 1 0
+0.156343 0.119418 0.0174718 0.00496351 1 0
+0.201745 0.155548 0.03555 0.00549744 1 0
+0.283227 0.187762 0.109832 0.00782879 1 0
+0.0651253 0.0846026 0.00611225 0.00671016 1 0
+0.165103 0.164994 0.0433823 0.00517184 1 0
+0.230469 0.142552 0.0262646 0.00565048 1 0
+0.0644654 0.0126289 0.0524089 0.00567865 1 0
+0.193453 0.160545 0.0700145 0.00542249 1 0
+0.169417 0.181557 0.0684874 0.00516442 1 0
+0.334088 0.127733 0.102483 0.00550088 1 0
+0.0956108 0.121131 0.123297 0.00975789 1 0
+0.123709 0.127416 0.188492 0.00539229 1 0
+0.0979571 0.108096 0.156332 0.00547353 1 0
+0.251707 0.016391 0.19019 0.00624543 1 0
+0.0661633 0.179022 0.041344 0.00492435 1 0
+0.355416 0.193746 0.0841065 0.00589224 1 0
+0.347893 0.18288 0.0297822 0.00510758 1 0
+0.136844 0.0199226 0.083017 0.00534729 1 0
+0.39235 0.147579 0.183273 0.00580378 1 0
+0.01 0.0411491 0.0267012 0.00533574 1 0
+0.0588663 0.13177 0.102265 0.00539944 1 0
+0.0978903 0.11469 0.0541935 0.00643746 1 0
+0.308283 0.122379 0.18741 0.00743573 1 0
+0.381485 0.00477065 0.0532761 0.0053672 1 0
+0.274681 0.123917 0.0450574 0.00494249 1 0
+0.274508 0.141622 0.0266256 0.00580575 1 0
+0.170151 0.0674314 0.143951 0.00518518 1 0
+0.158682 0.0638484 0.15911 0.0051452 1 0
+0.378616 0.181401 0.180389 0.00548654 1 0
+0.0459767 0.150753 0.0466611 0.00506987 1 0
+0.0454381 0.151814 0.0341858 0.00532984 1 0
+0.188361 0.0534292 0.0140177 0.00568027 1 0
+0.217714 0.125165 0.0343887 0.00503698 1 0
+0.110836 0.126499 0.0383373 0.00694862 1 0
+0.096231 0.130024 0.0342919 0.0058512 1 0
+0.201951 0.139456 0.0361176 0.00511319 1 0
+0.191894 0.0976474 0.14744 0.00647568 1 0
+0.35 0.171579 0.181703 0.00547433 1 0
+0.30885 0.0795745 0.0344666 0.00514951 1 0
+0.296265 0.116872 0.0586386 0.00494227 1 0
+0.314284 0.103333 0.0673027 0.00555231 1 0
+0.092611 0.0159843 0.19321 0.0053434 1 0
+0.13 0.0210197 0.163043 0.00513412 1 0
+0.027443 0.148809 0.189908 0.00511117 1 0
+0.121856 0.159182 0.118894 0.00508099 1 0
+0.156883 0.181267 0.0743892 0.0062106 1 0
+0.363206 0.0564425 0.0982633 0.00501058 1 0
+0.00889184 0.161165 0.0418842 0.00670472 1 0
+0.39 0.156352 0.032948 0.00717421 1 0
+0.196193 0.191986 0.0554252 0.00542604 1 0
+0.212932 0.0369344 0.0594619 0.00530686 1 0
+0.246057 0.0820164 0.0902824 0.00684233 1 0
+0.262212 0.194978 0.0528194 0.005386 1 0
+0.349212 0.161169 0.102484 0.00696689 1 0
+0.0212278 0.053785 0.165676 0.00526682 1 0
+0.25 0.0222123 0.160308 0.00595556 1 0
+0.13 0.0338003 0.0415081 0.00571234 1 0
+0.251398 0.0134418 0.052878 0.00555353 1 0
+0.283035 0.0380155 0.017362 0.00527007 1 0
+0.256399 0.00663239 0.0405731 0.00536133 1 0
+0.277872 0.0151422 0.0301644 0.00501034 1 0
+0.29 0.0331873 0.156387 0.00535195 1 0
+0.310051 0.159968 0.0644506 0.00626058 1 0
+0.23 0.0400195 0.0252136 0.00494321 1 0
+0.00597915 0.192857 0.113782 0.00614966 1 0
+0.26478 0.0856209 0.0621084 0.0058759 1 0
+0.170888 0.0249568 0.149919 0.00528423 1 0
+0.0862489 0.178614 0.156334 0.00675943 1 0
+0.0765856 0.148868 0.166939 0.00690831 1 0
+0.0769549 0.152726 0.14279 0.00842565 1 0
+0.374428 0.101105 0.0515387 0.00506034 1 0
+0.208821 0.0315649 0.0177298 0.00519243 1 0
+0.213451 0.0158765 0.0324657 0.00576198 1 0
+0.2004 0.0441061 0.0243762 0.00519107 1 0
+0.21 0.0282458 0.0431743 0.00602494 1 0
+0.258037 0.0375442 0.0171449 0.00503405 1 0
+0.13 0.0397069 0.163478 0.00538679 1 0
+0.341736 0.0212705 0.157989 0.00494933 1 0
+0.33 0.0107095 0.169753 0.00926678 1 0
+0.39 0.0244424 0.159316 0.00565326 1 0
+0.123273 0.184883 0.0328546 0.00550323 1 0
+0.0582003 0.154851 0.0294708 0.00526422 1 0
+0.0687158 0.163556 0.0197289 0.0049326 1 0
+0.343047 0.152234 0.0418529 0.00666205 1 0
+0.260138 0.181753 0.0392608 0.00496383 1 0
+0.323838 0.181046 0.0401489 0.00548408 1 0
+0.39 0.17758 0.03934 0.00564262 1 0
+0.0114031 0.169948 0.157271 0.00536005 1 0
+0.105449 0.182977 0.175277 0.00503166 1 0
+0.181274 0.184416 0.182946 0.0067919 1 0
+0.17 0.174714 0.158959 0.00562471 1 0
+0.243437 0.155565 0.17436 0.0054662 1 0
+0.198594 0.177974 0.183018 0.00533083 1 0
+0.357939 0.155902 0.154586 0.00588195 1 0
+0.0678736 0.0194877 0.193962 0.00587428 1 0
+0.261094 0.031613 0.143196 0.00641111 1 0
+0.0544616 0.0115973 0.103615 0.00631154 1 0
+0.300243 0.18462 0.180876 0.00679718 1 0
+0.381482 0.00919082 0.15216 0.00582408 1 0
+0.3597 0.172902 0.127903 0.00513018 1 0
+0.27607 0.152288 0.115059 0.00497727 1 0
+0.33 0.165643 0.156947 0.00701088 1 0
+0.168644 0.0373118 0.1599 0.00517157 1 0
+0.110805 0.0247741 0.0426208 0.00646617 1 0
+0.277394 0.0310717 0.04549 0.00527087 1 0
+0.370097 0.00686026 0.142097 0.00622595 1 0
+0.10914 0.070801 0.0234014 0.00536059 1 0
+0.062817 0.0164829 0.177108 0.00493717 1 0
+0.340361 0.121672 0.136124 0.00623336 1 0
+0.177069 0.166193 0.116547 0.00541707 1 0
+0.0717111 0.0222557 0.159741 0.00529445 1 0
+0.173048 0.126401 0.105637 0.00526965 1 0
+0.370588 0.141092 0.00823424 0.00735295 1 0
+0.311732 0.112762 0.10386 0.00566651 1 0
+0.224861 0.0108757 0.0111513 0.00580825 1 0
+0.282403 0.0378644 0.150256 0.00501103 1 0
+0.183624 0.0128695 0.0433923 0.00525007 1 0
+0.342352 0.149326 0.0994858 0.00704412 1 0
+0.23 0.164717 0.0399481 0.00506231 1 0
+0.342001 0.179746 0.00588706 0.0062753 1 0
+0.198251 0.0879786 0.0521409 0.00683441 1 0
+0.0955366 0.15961 0.122925 0.00519878 1 0
+0.00593014 0.161319 0.084341 0.00603019 1 0
+0.18029 0.154792 0.145996 0.00496599 1 0
+0.0281417 0.143236 0.173569 0.0049881 1 0
+0.352748 0.152499 0.0343066 0.00563147 1 0
+0.260024 0.10054 0.0972566 0.00498755 1 0
+0.159265 0.0614676 0.177132 0.00496797 1 0
+0.273013 0.066809 0.168266 0.00526 1 0
+0.0961053 0.158912 0.0425576 0.00541757 1 0
+0.38805 0.112274 0.0864649 0.00526447 1 0
+0.264119 0.0605599 0.0966643 0.00523095 1 0
+0.329591 0.159137 0.176464 0.00586786 1 0
+0.0730028 0.0412287 0.106009 0.00531919 1 0
+0.264012 0.178833 0.14807 0.00573042 1 0
+0.263282 0.135521 0.013621 0.00547357 1 0
+0.0967876 0.145384 0.10407 0.00751144 1 0
+0.230225 0.160641 0.0228926 0.00528607 1 0
+0.325794 0.0266551 0.0951936 0.00597996 1 0
+0.149199 0.0800426 0.0786346 0.00659869 1 0
+0.238664 0.165512 0.184353 0.00509723 1 0
+0.21 0.0406293 0.1602 0.00757887 1 0
+0.187799 0.0417546 0.177593 0.00538602 1 0
+0.0331917 0.0228511 0.156774 0.0065044 1 0
+0.216288 0.0735893 0.0648644 0.00554062 1 0
+0.19795 0.00662434 0.163804 0.00522254 1 0
+0.332126 0.00415627 0.0198734 0.0051572 1 0
+0.205507 0.0201568 0.158537 0.00588187 1 0
+0.170897 0.173902 0.120927 0.00523435 1 0
+0.248516 0.014429 0.120122 0.005256 1 0
+0.0361242 0.15799 0.157262 0.00581867 1 0
+0.138548 0.147702 0.123506 0.00907352 1 0
+0.149799 0.0372451 0.151687 0.00499184 1 0
+0.177965 0.159118 0.180328 0.00514079 1 0
+0.392538 0.0189895 0.180817 0.00561277 1 0
+0.382243 0.101195 0.0750976 0.00609491 1 0
+0.0836357 0.0219441 0.00512935 0.00496743 1 0
+0.33 0.161926 0.0377196 0.00499244 1 0
+0.336211 0.177032 0.132754 0.00506622 1 0
+0.0532224 0.134385 0.114407 0.0055477 1 0
+0.276116 0.156167 0.163396 0.0058125 1 0
+0.0348003 0.115308 0.0677341 0.00607577 1 0
+0.0440233 0.146143 0.166868 0.00519442 1 0
+0.120917 0.0561351 0.0994865 0.00526409 1 0
+0.256449 0.107859 0.061902 0.00687425 1 0
+0.171845 0.0215487 0.117558 0.00692348 1 0
+0.255654 0.161876 0.0169731 0.00532026 1 0
+0.144031 0.154944 0.170114 0.00558662 1 0
+0.145005 0.0179794 0.0223569 0.00509841 1 0
+0.128038 0.0977233 0.174511 0.00514635 1 0
+0.201338 0.0257893 0.133051 0.00532102 1 0
+0.166681 0.100641 0.0706421 0.00550443 1 0
+0.12131 0.166423 0.0453309 0.00579703 1 0
+0.0658001 0.154509 0.11645 0.00642682 1 0
+0.0572581 0.165887 0.155183 0.0056194 1 0
+0.187662 0.191443 0.00509992 0.00542144 1 0
+0.0944134 0.0383697 0.0973631 0.0068424 1 0
+0.318418 0.111156 0.144915 0.00537137 1 0
+0.286851 0.123289 0.175289 0.00521646 1 0
+0.161594 0.113297 0.134391 0.00755107 1 0
+0.18948 0.156254 0.0181854 0.00526632 1 0
+0.177931 0.155843 0.0650242 0.00562178 1 0
+0.100584 0.0462843 0.173604 0.00525411 1 0
+0.169914 0.139955 0.1501 0.00653871 1 0
+0.263616 0.116388 0.0769037 0.00648812 1 0
+0.31668 0.128179 0.105431 0.00518582 1 0
+0.100492 0.0735251 0.0144766 0.00492659 1 0
+0.132923 0.17577 0.18249 0.00547233 1 0
+0.34078 0.0083426 0.186336 0.00818907 1 0
+0.29936 0.142034 0.0951274 0.00620868 1 0
+0.269367 0.0277092 0.18182 0.00525473 1 0
+0.325954 0.0773823 0.00821037 0.00871461 1 0
+0.385832 0.013629 0.080827 0.0053703 1 0
+0.271175 0.194405 0.138624 0.00629957 1 0
+0.176297 0.1553 0.0249634 0.00597416 1 0
+0.367395 0.155817 0.0259312 0.00650447 1 0
+0.242305 0.045509 0.129572 0.00581364 1 0
+0.170596 0.167333 0.189563 0.00681678 1 0
+0.143312 0.0364464 0.184318 0.0050612 1 0
+0.0838401 0.0723796 0.0732097 0.00542222 1 0
+0.164174 0.164756 0.146673 0.00878473 1 0
+0.343979 0.0134402 0.16495 0.00576487 1 0
+0.296169 0.0723779 0.0760541 0.00519839 1 0
+0.343016 0.131144 0.0620836 0.00527033 1 0
+0.176588 0.144532 0.0358948 0.0059744 1 0
+0.257508 0.0394345 0.133334 0.00567279 1 0
+0.0289996 0.142579 0.113386 0.00555155 1 0
+0.11092 0.182559 0.0602423 0.00608611 1 0
+0.0607705 0.0760141 0.076644 0.00607164 1 0
+0.16066 0.0425497 0.147777 0.00509363 1 0
+0.0715801 0.0833763 0.104049 0.00535127 1 0
+0.15 0.170787 0.157919 0.00570278 1 0
+0.327064 0.164185 0.0820805 0.00526258 1 0
+0.317055 0.15458 0.171205 0.00574498 1 0
+0.347806 0.153938 0.0778674 0.00703853 1 0
+0.293947 0.171232 0.133718 0.00556929 1 0
+0.156684 0.149419 0.111223 0.00512589 1 0
+0.252732 0.131396 0.0968162 0.00549874 1 0
+0.01425 0.0215658 0.0708055 0.00532287 1 0
+0.0763223 0.156665 0.176082 0.00511058 1 0
+0.124446 0.127437 0.039473 0.00674084 1 0
+0.359546 0.118236 0.0804413 0.00511047 1 0
+0.0887918 0.0346958 0.0417275 0.00539093 1 0
+0.177854 0.108789 0.142292 0.00537027 1 0
+0.0968535 0.0707884 0.111793 0.00515489 1 0
+0.302334 0.145584 0.0277289 0.00572278 1 0
+0.3148 0.0091965 0.159974 0.00610153 1 0
+0.0650404 0.077735 0.111273 0.00583579 1 0
+0.35 0.157852 0.167876 0.00587751 1 0
+0.0687925 0.0473 0.0986019 0.00505409 1 0
+0.351393 0.00584318 0.10956 0.00633544 1 0
+0.250902 0.0661362 0.0970678 0.00614813 1 0
+0.199256 0.151144 0.160893 0.00572317 1 0
+0.081642 0.174244 0.0457985 0.00526858 1 0
+0.21976 0.170596 0.149192 0.00673337 1 0
+0.310973 0.131476 0.0090823 0.00770685 1 0
+0.171225 0.0350769 0.148616 0.00492495 1 0
+0.0422254 0.0146582 0.108313 0.00714824 1 0
+0.25391 0.150461 0.103458 0.00533219 1 0
+0.328306 0.142198 0.15002 0.00511059 1 0
+0.382755 0.00781137 0.0192031 0.00505643 1 0
+0.127577 0.145161 0.167248 0.0062849 1 0
+0.0600214 0.130019 0.0487371 0.0049201 1 0
+0.110918 0.0619143 0.156475 0.00676531 1 0
+0.293273 0.158535 0.00771861 0.00518306 1 0
+0.1195 0.145898 0.0623842 0.0059389 1 0
+0.109317 0.0465481 0.165315 0.00531158 1 0
+0.315361 0.10605 0.0312039 0.007184 1 0
+0.0817801 0.153306 0.155881 0.00553843 1 0
+0.0487354 0.0470424 0.0517937 0.005316 1 0
+0.37 0.0372783 0.160129 0.0058242 1 0
+0.0778138 0.0743938 0.0561003 0.00531565 1 0
+0.346521 0.143338 0.049699 0.00569743 1 0
+0.307383 0.11418 0.156362 0.00575875 1 0
+0.277046 0.158534 0.144477 0.00524865 1 0
+0.13 0.0361391 0.180559 0.00578534 1 0
+0.206529 0.0269038 0.0694898 0.00506644 1 0
+0.358316 0.0430172 0.177113 0.00492916 1 0
+0.00654987 0.0696918 0.0295163 0.00614741 1 0
+0.0899527 0.0570072 0.172679 0.00604206 1 0
+0.202863 0.180004 0.154309 0.00552596 1 0
+0.148523 0.177151 0.140333 0.00532119 1 0
+0.13307 0.0630071 0.121302 0.00599325 1 0
+0.0780002 0.0448977 0.160222 0.00513026 1 0
+0.238688 0.0248954 0.150031 0.0050339 1 0
+0.33353 0.0754906 0.0249002 0.00582627 1 0
+0.256402 0.0357335 0.152655 0.00492271 1 0
+0.234174 0.0957673 0.0900119 0.00807268 1 0
+0.192198 0.127593 0.100147 0.00505887 1 0
+0.00825974 0.126987 0.0225671 0.00501073 1 0
+0.13 0.174395 0.159837 0.00492019 1 0
+0.367878 0.149816 0.162361 0.00544743 1 0
+0.274419 0.0773807 0.019342 0.00563982 1 0
+0.262616 0.0135154 0.193305 0.00545901 1 0
+0.306531 0.148053 0.0546813 0.00499252 1 0
+0.0517323 0.176959 0.0189973 0.00510163 1 0
+0.237788 0.0894483 0.0749374 0.00714378 1 0
+0.0893069 0.189382 0.152218 0.00516745 1 0
+0.0323866 0.126165 0.0357112 0.00522841 1 0
+0.314882 0.0714174 0.0349756 0.00500877 1 0
+0.33603 0.1587 0.0660504 0.00571842 1 0
+0.108816 0.151105 0.169317 0.00516 1 0
+0.364708 0.051628 0.167371 0.00626463 1 0
+0.100349 0.108523 0.130208 0.0053807 1 0
+0.170666 0.0892365 0.068069 0.0057705 1 0
+0.0999165 0.142379 0.0745268 0.00561466 1 0
+0.0597816 0.185221 0.027062 0.0055033 1 0
+0.238633 0.179517 0.0175771 0.005709 1 0
+0.107246 0.085266 0.131911 0.00559302 1 0
+0.0861326 0.0451846 0.187098 0.00520339 1 0
+0.0637139 0.192531 0.157391 0.00495527 1 0
+0.267139 0.069563 0.0327794 0.00499077 1 0
+0.0864614 0.191535 0.0401115 0.0049512 1 0
+0.0237336 0.120119 0.0736767 0.00535296 1 0
+0.211425 0.00508826 0.0340575 0.00523903 1 0
+0.0575627 0.0483748 0.151254 0.00577812 1 0
+0.243244 0.0831797 0.102024 0.00528776 1 0
+0.261577 0.0796649 0.114792 0.00550874 1 0
+0.103909 0.0607845 0.0205837 0.00494194 1 0
+0.227431 0.195448 0.0180965 0.00494513 1 0
+0.29699 0.120724 0.180025 0.00600489 1 0
+0.122431 0.0146929 0.166487 0.00531487 1 0
+0.356335 0.0460945 0.0299408 0.00548702 1 0
+0.25 0.165995 0.040633 0.0051361 1 0
+0.245868 0.116582 0.0693421 0.00872676 1 0
+0.215962 0.117685 0.0750916 0.0073751 1 0
+0.0934349 0.0583919 0.0966913 0.00495829 1 0
+0.359399 0.151389 0.059909 0.00510121 1 0
+0.259602 0.143109 0.0989046 0.00502089 1 0
+0.0356892 0.0457494 0.032632 0.00527195 1 0
+0.180834 0.0330256 0.1308 0.0051692 1 0
+0.0631825 0.193286 0.183238 0.00541475 1 0
+0.343546 0.167816 0.0445428 0.00512738 1 0
+0.239506 0.0748118 0.116467 0.00503154 1 0
+0.365153 0.133028 0.0180349 0.0054654 1 0
+0.214868 0.00513958 0.006055 0.00538041 1 0
+0.0779447 0.00933514 0.133271 0.00725011 1 0
+0.37 0.171148 0.0439746 0.00681272 1 0
+0.106816 0.139283 0.119261 0.00843925 1 0
+0.394734 0.0786798 0.128928 0.00549414 1 0
+0.096486 0.153221 0.187963 0.00829006 1 0
+0.17 0.156997 0.0352682 0.00551604 1 0
+0.0556346 0.033688 0.15095 0.0053515 1 0
+0.226596 0.0350846 0.043546 0.00590146 1 0
+0.0777909 0.165915 0.148506 0.00597243 1 0
+0.340627 0.165863 0.150643 0.00521091 1 0
+0.393511 0.111386 0.0591638 0.00504775 1 0
+0.324017 0.170214 0.108676 0.00527019 1 0
+0.278548 0.116772 0.191291 0.00493263 1 0
+0.208638 0.131575 0.0885691 0.00509302 1 0
+0.24394 0.127435 0.0543049 0.00545812 1 0
+0.233082 0.0215367 0.159692 0.00502445 1 0
+0.0802463 0.0952664 0.128303 0.00587113 1 0
+0.35373 0.142419 0.0794802 0.00578166 1 0
+0.332804 0.119654 0.0538804 0.00495888 1 0
+0.14254 0.0523675 0.0987686 0.00593462 1 0
+0.238221 0.0238557 0.0159596 0.005277 1 0
+0.276343 0.155965 0.0355368 0.00552434 1 0
+0.389898 0.166025 0.0423102 0.00628806 1 0
+0.20734 0.0934415 0.107873 0.00881958 1 0
+0.113326 0.0465527 0.155473 0.00531565 1 0
+0.287784 0.152427 0.0201663 0.0053834 1 0
+0.19 0.174441 0.0195105 0.00515748 1 0
+0.0933412 0.0662663 0.0868433 0.0056423 1 0
+0.0535527 0.170707 0.140558 0.00502638 1 0
+0.056345 0.0447936 0.167543 0.00543527 1 0
+0.319714 0.173203 0.0138602 0.00532904 1 0
+0.318993 0.159075 0.14688 0.00515332 1 0
+0.132172 0.073621 0.0140572 0.00541312 1 0
+0.186738 0.0355362 0.152613 0.00527402 1 0
+0.354687 0.148664 0.144741 0.00546032 1 0
+0.143956 0.0873215 0.111676 0.00507434 1 0
+0.33 0.0263341 0.0406133 0.00503598 1 0
+0.239281 0.184703 0.0268573 0.00494154 1 0
+0.317241 0.121443 0.147915 0.0054086 1 0
+0.0155774 0.155562 0.0334974 0.00539621 1 0
+0.0467048 0.164738 0.157204 0.0051868 1 0
+0.0907433 0.128642 0.136023 0.00580039 1 0
+0.226558 0.0050429 0.0680593 0.00546214 1 0
+0.160818 0.101567 0.0900302 0.00542622 1 0
+0.0578329 0.0527018 0.0826996 0.00535188 1 0
+0.190631 0.0849595 0.120363 0.00498892 1 0
+0.0855674 0.0739422 0.0906115 0.00557382 1 0
+0.079236 0.0838242 0.173243 0.00524543 1 0
+0.317096 0.134697 0.0196558 0.00492943 1 0
+0.22179 0.164076 0.0472665 0.005254 1 0
+0.035521 0.024448 0.141908 0.00500036 1 0
+0.121423 0.153796 0.0454467 0.00630561 1 0
+0.243375 0.157456 0.0401662 0.0056814 1 0
+0.216065 0.156221 0.0151389 0.00496757 1 0
+0.288644 0.161478 0.0391054 0.00517417 1 0
+0.305165 0.129215 0.093237 0.00602047 1 0
+0.326572 0.0931579 0.0556699 0.0057005 1 0
+0.142905 0.188128 0.00832213 0.00500349 1 0
+0.303122 0.183253 0.0234914 0.0050918 1 0
+0.0513195 0.131298 0.0421085 0.00585023 1 0
+0.137058 0.141451 0.159999 0.00536984 1 0
+0.257599 0.0941042 0.134262 0.00512517 1 0
+0.19656 0.0472216 0.181399 0.0050835 1 0
+0.133371 0.0855867 0.135726 0.00558747 1 0
+0.297211 0.148201 0.0460843 0.00513294 1 0
+0.27 0.18092 0.166627 0.00518641 1 0
+0.117472 0.0642168 0.142115 0.00572231 1 0
+0.37979 0.152412 0.0390155 0.0053394 1 0
+0.21 0.0393582 0.0384033 0.00606831 1 0
+0.227068 0.0301736 0.0720983 0.00605722 1 0
+0.341191 0.0251477 0.0454776 0.00610949 1 0
+0.364764 0.147722 0.152537 0.00496601 1 0
+0.331248 0.0630576 0.114729 0.00602514 1 0
+0.187503 0.160421 0.160779 0.00526709 1 0
+0.0607547 0.036431 0.111339 0.00504444 1 0
+0.0249341 0.140233 0.059008 0.00500066 1 0
+0.277753 0.0891442 0.0799665 0.00500209 1 0
+0.241637 0.138237 0.158558 0.00502118 1 0
+0.107164 0.192643 0.156784 0.00567281 1 0
+0.121535 0.112179 0.124726 0.00558203 1 0
+0.12679 0.109329 0.188589 0.00564646 1 0
+0.192212 0.116073 0.195068 0.00500692 1 0
+0.176887 0.14295 0.103954 0.00502218 1 0
+0.200576 0.118743 0.0119407 0.00519626 1 0
+0.179161 0.124561 0.0950849 0.00562769 1 0
+0.101414 0.125129 0.0662452 0.00561635 1 0
+0.252938 0.0644826 0.194418 0.00534798 1 0
+0.241464 0.0230279 0.194617 0.00567851 1 0
+0.14585 0.154364 0.0333299 0.0049201 1 0
+0.13 0.162097 0.15985 0.00629393 1 0
+0.374508 0.0444107 0.028399 0.00521957 1 0
+0.163322 0.111215 0.109167 0.00495191 1 0
+0.325752 0.186974 0.117146 0.00507565 1 0
+0.235053 0.112389 0.0399197 0.0050449 1 0
+0.310614 0.134246 0.0798435 0.00715402 1 0
+0.337052 0.175091 0.108946 0.00633609 1 0
+0.258904 0.122522 0.0117143 0.00533354 1 0
+0.119023 0.128715 0.105223 0.0094116 1 0
+0.0621116 0.0146283 0.00623177 0.00653622 1 0
+0.0110308 0.159897 0.123493 0.00517159 1 0
+0.106056 0.161993 0.0567978 0.00669773 1 0
+0.319037 0.128427 0.186393 0.00494375 1 0
+0.0707372 0.138259 0.1358 0.00492486 1 0
+0.0951466 0.0410084 0.194366 0.00577235 1 0
+0.215184 0.0511051 0.0949013 0.00567067 1 0
+0.152345 0.15892 0.128689 0.00738893 1 0
+0.116686 0.0767524 0.0309955 0.00507058 1 0
+0.208835 0.142381 0.170932 0.00500633 1 0
+0.0834147 0.087441 0.0911852 0.00614729 1 0
+0.113349 0.0109536 0.0221073 0.00516509 1 0
+0.00816041 0.155564 0.108356 0.00548171 1 0
+0.0962057 0.0661762 0.15883 0.0061964 1 0
+0.327568 0.116904 0.148792 0.00548791 1 0
+0.164068 0.082941 0.0800338 0.00662652 1 0
+0.244047 0.0375086 0.0431852 0.00521327 1 0
+0.141397 0.176393 0.154309 0.00518206 1 0
+0.178245 0.168578 0.0633801 0.00529997 1 0
+0.160227 0.051309 0.0342094 0.00494937 1 0
+0.170286 0.124796 0.116129 0.00569779 1 0
+0.203984 0.106266 0.184599 0.0049814 1 0
+0.325401 0.161488 0.0918087 0.00496851 1 0
+0.306247 0.00665273 0.089148 0.00540779 1 0
+0.316238 0.015265 0.0931219 0.0055432 1 0
+0.240079 0.145881 0.0296839 0.00507972 1 0
+0.32467 0.132036 0.0980336 0.00576958 1 0
+0.157623 0.132844 0.122606 0.00866231 1 0
+0.169955 0.15008 0.108074 0.00561139 1 0
+0.194824 0.187497 0.0649106 0.00515682 1 0
+0.239326 0.0150519 0.181313 0.00509233 1 0
+0.318191 0.159187 0.0564939 0.00514918 1 0
+0.0792881 0.016866 0.180201 0.00517011 1 0
+0.260323 0.0685592 0.11658 0.00542457 1 0
+0.239286 0.106852 0.0810619 0.00706377 1 0
+0.334289 0.0982624 0.0122789 0.00499393 1 0
+0.226025 0.118987 0.0279885 0.00713664 1 0
+0.344845 0.189664 0.0855549 0.00553181 1 0
+0.253551 0.0766101 0.0827654 0.00506928 1 0
+0.345822 0.188583 0.154599 0.00880407 1 0
+0.0827703 0.0235384 0.0445821 0.00618839 1 0
+0.333985 0.040954 0.0412785 0.00507434 1 0
+0.278721 0.0594964 0.0952742 0.00546562 1 0
+0.019205 0.0449667 0.0239296 0.00500779 1 0
+0.149741 0.117969 0.0247541 0.00497227 1 0
+0.148458 0.0655767 0.112763 0.00500424 1 0
+0.185581 0.113329 0.0951075 0.00636539 1 0
+0.314931 0.172481 0.184316 0.00538804 1 0
+0.151307 0.191604 0.0841679 0.00742714 1 0
+0.215391 0.0778268 0.0526149 0.00509487 1 0
+0.116938 0.0537562 0.0111887 0.00632439 1 0
+0.123704 0.145119 0.105583 0.0063281 1 0
+0.349979 0.189299 0.0221952 0.00504719 1 0
+0.373207 0.0786809 0.0262685 0.00511944 1 0
+0.119987 0.0826799 0.127211 0.00497848 1 0
+0.119432 0.0344412 0.044668 0.00533614 1 0
+0.125114 0.0259125 0.148706 0.00512049 1 0
+0.0491786 0.102561 0.165362 0.00540046 1 0
+0.187451 0.00754914 0.195216 0.00498253 1 0
+0.0993061 0.0379254 0.016514 0.00499695 1 0
+0.134012 0.118456 0.140878 0.00687643 1 0
+0.274864 0.191863 0.165327 0.00519948 1 0
+0.338764 0.184065 0.0196136 0.00661261 1 0
+0.30909 0.155887 0.1521 0.00508481 1 0
+0.281038 0.179616 0.0434301 0.00495262 1 0
+0.284824 0.0573723 0.0853284 0.00514923 1 0
+0.152 0.0776878 0.110776 0.0062575 1 0
+0.352751 0.0402944 0.0504634 0.00495409 1 0
+0.06202 0.039623 0.0415275 0.00515143 1 0
+0.253638 0.0493509 0.152362 0.00593247 1 0
+0.17658 0.177998 0.016944 0.00513947 1 0
+0.315916 0.152921 0.0712626 0.00516184 1 0
+0.222567 0.157874 0.0384202 0.00498412 1 0
+0.178055 0.0404681 0.180863 0.00497207 1 0
+0.0640356 0.136959 0.117493 0.00598804 1 0
+0.269722 0.170038 0.152649 0.00571176 1 0
+0.252802 0.16212 0.0986709 0.00499185 1 0
+0.209844 0.0545797 0.177965 0.00554082 1 0
+0.13029 0.0507768 0.0401549 0.00497506 1 0
+0.366953 0.146216 0.0774128 0.00517086 1 0
+0.371563 0.0342949 0.0441009 0.00496373 1 0
+0.27 0.178611 0.0224494 0.00494871 1 0
+0.26675 0.138843 0.061017 0.00518781 1 0
+0.114366 0.178677 0.155083 0.0057361 1 0
+0.221864 0.0366978 0.0793678 0.00501016 1 0
+0.207612 0.0444648 0.193214 0.00627639 1 0
+0.271776 0.149236 0.0896579 0.00512745 1 0
+0.121741 0.14519 0.0354793 0.00576319 1 0
+0.262546 0.0115259 0.0141798 0.00560513 1 0
+0.300685 0.155898 0.0352115 0.00504962 1 0
+0.174803 0.111176 0.0338426 0.00552079 1 0
+0.104673 0.128424 0.132813 0.00527037 1 0
+0.315444 0.160233 0.189164 0.00572812 1 0
+0.251209 0.129378 0.074338 0.00601193 1 0
+0.190451 0.192302 0.115137 0.00546215 1 0
+0.249307 0.185526 0.00612246 0.00502701 1 0
+0.203934 0.0225659 0.18315 0.0051549 1 0
+0.302241 0.100337 0.134276 0.00542858 1 0
+0.347415 0.0902788 0.136673 0.00554412 1 0
+0.0795558 0.105547 0.122701 0.00494732 1 0
+0.301311 0.0235448 0.154751 0.00513585 1 0
+0.114762 0.0984224 0.124566 0.00605229 1 0
+0.0258172 0.13008 0.0854701 0.00587416 1 0
+0.192188 0.0787302 0.129962 0.00526632 1 0
+0.24031 0.16392 0.0162384 0.00504816 1 0
+0.173767 0.182968 0.0343716 0.00503739 1 0
+0.187492 0.121202 0.145904 0.00543631 1 0
+0.121307 0.0911066 0.163532 0.00760362 1 0
+0.306121 0.039887 0.0508405 0.00586732 1 0
+0.0313969 0.187535 0.116287 0.00526618 1 0
+0.205244 0.0530181 0.00474848 0.00533448 1 0
+0.318555 0.0988328 0.162645 0.00544252 1 0
+0.384049 0.150213 0.18977 0.00506271 1 0
+0.35882 0.0705367 0.0071012 0.00591425 1 0
+0.374241 0.107337 0.150027 0.0050843 1 0
+0.0585332 0.133693 0.194195 0.00493436 1 0
+0.0855199 0.118215 0.184505 0.0055736 1 0
+0.158235 0.138137 0.19419 0.00609273 1 0
+0.122416 0.07642 0.139554 0.0062318 1 0
+0.00479918 0.192651 0.081544 0.00545332 1 0
+0.27634 0.123768 0.072765 0.00597458 1 0
+0.0486482 0.0469649 0.145052 0.00514093 1 0
+0.19 0.0254881 0.159743 0.00501905 1 0
+0.37864 0.120691 0.00630193 0.00533048 1 0
+0.25 0.162741 0.161173 0.0051858 1 0
+0.0566476 0.069124 0.110854 0.00507997 1 0
+0.0116925 0.0406675 0.11733 0.0050623 1 0
+0.315558 0.141102 0.0689741 0.00550287 1 0
+0.180223 0.0123022 0.113459 0.00511602 1 0
+0.273171 0.138287 0.0113356 0.00504578 1 0
+0.26461 0.0518817 0.0868252 0.00543732 1 0
+0.229094 0.159702 0.0881235 0.00508333 1 0
+0.26882 0.0938501 0.113402 0.00500452 1 0
+0.349178 0.0540905 0.119842 0.00543585 1 0
+0.0760557 0.0196645 0.0539054 0.00560242 1 0
+0.242801 0.116421 0.034328 0.00532604 1 0
+0.313923 0.155856 0.0894238 0.00559722 1 0
+0.195836 0.105589 0.190249 0.00495681 1 0
+0.0559161 0.179048 0.149599 0.00500992 1 0
+0.252497 0.141266 0.0333844 0.00527091 1 0
+0.0868643 0.111262 0.116764 0.0049587 1 0
+0.350233 0.0345982 0.092011 0.00497733 1 0
+0.09 0.0412077 0.171813 0.00512945 1 0
+0.155742 0.155361 0.0307641 0.00526499 1 0
+0.15503 0.153165 0.0171135 0.00496063 1 0
+0.275704 0.0855324 0.120332 0.0067578 1 0
+0.102093 0.142054 0.139593 0.00507751 1 0
+0.239529 0.0907062 0.0290642 0.00558211 1 0
+0.206284 0.164971 0.15529 0.00676775 1 0
+0.033003 0.0442111 0.152608 0.00525452 1 0
+0.0275063 0.0428424 0.176527 0.0049388 1 0
+0.35862 0.149303 0.170872 0.00662706 1 0
+0.07 0.0215284 0.0227742 0.00496596 1 0
+0.115516 0.132417 0.0702031 0.00529467 1 0
+0.366673 0.153534 0.191388 0.00523087 1 0
+0.0213304 0.141411 0.194224 0.00541128 1 0
+0.106137 0.148663 0.0220844 0.00548936 1 0
+0.295259 0.0650414 0.0597985 0.0057072 1 0
+0.116732 0.150019 0.00547719 0.0057373 1 0
+0.298718 0.00847115 0.0998693 0.00542173 1 0
+0.103477 0.0980706 0.184761 0.00544981 1 0
+0.380526 0.154388 0.0254918 0.00504119 1 0
+0.270214 0.0877797 0.0223453 0.00543992 1 0
+0.314709 0.146188 0.157199 0.00492299 1 0
+0.0183423 0.184847 0.028443 0.00502048 1 0
+0.0872812 0.109532 0.177678 0.00554028 1 0
+0.104323 0.10894 0.166694 0.00671663 1 0
+0.310986 0.115453 0.0435155 0.0051215 1 0
+0.261494 0.0451588 0.14497 0.00564139 1 0
+0.214052 0.0206624 0.0755293 0.00529037 1 0
+0.106893 0.081013 0.0946225 0.00539707 1 0
+0.298594 0.155871 0.148747 0.00506892 1 0
+0.2684 0.0265539 0.125613 0.00542403 1 0
+0.271924 0.155568 0.128731 0.00627654 1 0
+0.190981 0.0881231 0.1063 0.00609074 1 0
+0.317668 0.162075 0.0759067 0.00525105 1 0
+0.161501 0.138712 0.135025 0.00560976 1 0
+0.275306 0.11263 0.0685627 0.0056332 1 0
+0.224296 0.141754 0.0863415 0.00509894 1 0
+0.162671 0.187559 0.127827 0.00547326 1 0
+0.215382 0.0994359 0.0865149 0.00813389 1 0
+0.175097 0.141131 0.121027 0.00551912 1 0
+0.142482 0.0456714 0.17182 0.00515071 1 0
+0.0871426 0.193219 0.0885682 0.00521211 1 0
+0.1382 0.120316 0.0420877 0.00498942 1 0
+0.182786 0.0783669 0.0664189 0.0067264 1 0
+0.139911 0.136595 0.136115 0.00610351 1 0
+0.153271 0.127392 0.136792 0.00714609 1 0
+0.134296 0.0259236 0.153496 0.00523579 1 0
+0.177675 0.144073 0.138335 0.00625251 1 0
+0.307612 0.0216726 0.0937214 0.00521856 1 0
+0.23 0.179957 0.176114 0.0053792 1 0
+0.190162 0.128682 0.112774 0.00604757 1 0
+0.0763513 0.183133 0.0817355 0.00601091 1 0
+0.202471 0.162916 0.0429757 0.0049886 1 0
+0.059156 0.0903555 0.0147954 0.00529511 1 0
+0.0774759 0.0907105 0.00848086 0.0064719 1 0
+0.104679 0.12904 0.107042 0.00505079 1 0
+0.156928 0.0667936 0.168618 0.00496171 1 0
+0.109435 0.114802 0.0340654 0.00526307 1 0
+0.202898 0.0988148 0.144118 0.00507812 1 0
+0.247038 0.0932036 0.0948382 0.00527664 1 0
+0.25441 0.0812233 0.0986122 0.00498023 1 0
+0.207974 0.0236615 0.0530072 0.00501154 1 0
+0.216544 0.0188464 0.0440366 0.0054604 1 0
+0.347109 0.15848 0.157316 0.00508872 1 0
+0.275296 0.175117 0.141214 0.00660876 1 0
+0.00496755 0.1067 0.119988 0.00513157 1 0
+0.297911 0.040944 0.040722 0.00499771 1 0
+0.159434 0.0956141 0.0793437 0.00573121 1 0
+0.283499 0.191069 0.14746 0.0062051 1 0
+0.0369525 0.147064 0.159164 0.00530303 1 0
+0.22607 0.161718 0.14422 0.00523933 1 0
+0.108679 0.0368119 0.0413441 0.00582451 1 0
+0.160892 0.158663 0.1593 0.00561418 1 0
+0.117058 0.136609 0.0401125 0.0050545 1 0
+0.307358 0.147503 0.0894396 0.00502678 1 0
+0.245616 0.147308 0.0379248 0.0049501 1 0
+0.392621 0.0111457 0.151269 0.00552043 1 0
+0.236105 0.110368 0.0613037 0.00536382 1 0
+0.245302 0.0805854 0.0785322 0.0050188 1 0
+0.0652638 0.0836976 0.083807 0.00535354 1 0
+0.32297 0.0769884 0.0234433 0.00493859 1 0
+0.0138609 0.156448 0.0232398 0.0050417 1 0
+0.360794 0.0355947 0.0448732 0.00591051 1 0
+0.178974 0.0989185 0.137006 0.00588317 1 0
+0.175662 0.152784 0.0430227 0.00496919 1 0
+0.0770389 0.0916468 0.0998569 0.00500567 1 0
+0.130172 0.156197 0.173118 0.0064809 1 0
+0.357743 0.0473451 0.116656 0.00592238 1 0
+0.195747 0.0966667 0.101135 0.00497218 1 0
+0.00530248 0.149842 0.121771 0.00585836 1 0
+0.306338 0.116316 0.00953368 0.00781098 1 0
+0.244299 0.0236894 0.182913 0.00500193 1 0
+0.215106 0.0280928 0.153081 0.00542675 1 0
+0.361435 0.15433 0.070999 0.00655125 1 0
+0.0932397 0.190976 0.141447 0.00640936 1 0
+0.153466 0.0468423 0.0457411 0.00518046 1 0
+0.191824 0.0385899 0.160921 0.00493513 1 0
+0.115354 0.154888 0.0550774 0.00509607 1 0
+0.0862296 0.163467 0.155967 0.00555456 1 0
+0.328104 0.185124 0.128874 0.00534291 1 0
+0.34386 0.153777 0.0544861 0.00600231 1 0
+0.162034 0.132633 0.144444 0.00561354 1 0
+0.360377 0.177149 0.0473056 0.00500698 1 0
+0.236277 0.19483 0.0243622 0.00525474 1 0
+0.118413 0.11688 0.0402421 0.0054435 1 0
+0.305835 0.155644 0.170986 0.00552785 1 0
+0.129544 0.141282 0.114632 0.00510482 1 0
+0.376786 0.018156 0.156706 0.00527047 1 0
+0.147745 0.185436 0.146696 0.00515421 1 0
+0.272266 0.15953 0.0903589 0.00520212 1 0
+0.22723 0.104227 0.0822697 0.00533343 1 0
+0.385255 0.175893 0.0649707 0.00515363 1 0
+0.23857 0.129915 0.0724236 0.00678225 1 0
+0.0351287 0.115887 0.0370834 0.00515281 1 0
+0.23379 0.0768889 0.102961 0.00529133 1 0
+0.311395 0.182793 0.00742186 0.00531421 1 0
+0.35 0.0342712 0.0193649 0.00502089 1 0
+0.163462 0.0941723 0.0980868 0.00582487 1 0
+0.220885 0.0883698 0.0979634 0.0050954 1 0
+0.381986 0.112109 0.0779516 0.00518927 1 0
+0.349757 0.149435 0.160687 0.00492043 1 0
+0.163168 0.149353 0.150924 0.00505876 1 0
+0.320919 0.180746 0.109715 0.00575719 1 0
+0.335675 0.0176508 0.0384298 0.00556491 1 0
+0.126986 0.115883 0.105086 0.00569101 1 0
+0.325076 0.0168704 0.0376704 0.0050906 1 0
+0.145427 0.117636 0.136501 0.00537628 1 0
+0.236591 0.177699 0.00704534 0.00517186 1 0
+0.149068 0.155496 0.116311 0.00586574 1 0
+0.155506 0.124715 0.148408 0.00498151 1 0
+0.170478 0.112538 0.118343 0.00557105 1 0
+0.25196 0.095997 0.0590623 0.00538771 1 0
+0.363179 0.151149 0.00658791 0.00524601 1 0
+0.333096 0.138546 0.101435 0.0054084 1 0
+0.0678159 0.156327 0.170413 0.0051171 1 0
+0.110907 0.0718823 0.0908004 0.00528436 1 0
+0.0145692 0.194365 0.0779644 0.0050922 1 0
+0.0956187 0.0132816 0.129183 0.00509384 1 0
+0.165112 0.161259 0.132262 0.00607402 1 0
+0.209558 0.0908923 0.0945273 0.00494699 1 0
+0.251909 0.00908388 0.014914 0.00533323 1 0
+0.261593 0.118391 0.0209312 0.00511847 1 0
+0.196188 0.0813525 0.0631632 0.00502461 1 0
+0.0258493 0.18743 0.124911 0.00498865 1 0
+0.360149 0.042735 0.161188 0.00548699 1 0
+0.35 0.0403613 0.161944 0.004963 1 0
+0.309527 0.124847 0.154487 0.00528182 1 0
+0.244683 0.101301 0.0655127 0.0055659 1 0
+0.325279 0.155186 0.066466 0.00559949 1 0
+0.226617 0.195266 0.00806071 0.00512528 1 0
+0.169953 0.0999186 0.108535 0.00504286 1 0
+0.137916 0.186472 0.184189 0.0064584 1 0
+0.0972162 0.134765 0.110854 0.00509749 1 0
+0.303273 0.0299333 0.0454584 0.00580123 1 0
+0.279745 0.0864832 0.0184272 0.0049462 1 0
+0.116074 0.0774425 0.154193 0.00638064 1 0
+0.248656 0.176256 0.0414543 0.00524495 1 0
+0.11719 0.0834206 0.0961585 0.00528837 1 0
+0.229539 0.118874 0.0684492 0.00511033 1 0
+0.173123 0.195374 0.111901 0.00501602 1 0
+0.136327 0.0396209 0.195201 0.0051349 1 0
+0.158862 0.147049 0.127001 0.00625819 1 0
+0.0991766 0.0235319 0.0445431 0.00538577 1 0
+0.201657 0.0487937 0.17149 0.00500199 1 0
+0.312662 0.0232805 0.0848822 0.00508772 1 0
+0.35945 0.135313 0.00927028 0.00523795 1 0
+0.104058 0.068495 0.17199 0.00518088 1 0
+0.037409 0.146655 0.174523 0.00493557 1 0
+0.148805 0.153965 0.160534 0.0051623 1 0
+0.328463 0.160841 0.0579076 0.00514102 1 0
+0.0221549 0.157353 0.194761 0.00500206 1 0
+0.322146 0.13593 0.192839 0.00542503 1 0
+0.286297 0.149768 0.00908993 0.00610423 1 0
+0.280655 0.166453 0.133761 0.00601319 1 0
+0.169994 0.185952 0.11743 0.00584323 1 0
+0.132045 0.045301 0.172359 0.00530653 1 0
+0.0777551 0.161616 0.131273 0.00552788 1 0
+0.199873 0.172401 0.0460262 0.00510947 1 0
+0.272171 0.0594096 0.160745 0.00532387 1 0
+0.165046 0.00600323 0.109875 0.00521884 1 0
+0.142337 0.0812874 0.0878795 0.00498215 1 0
+0.0924792 0.0732765 0.150215 0.00557322 1 0
+0.056255 0.16237 0.117474 0.00507203 1 0
+0.175249 0.16002 0.136546 0.00500027 1 0
+0.155973 0.175395 0.149447 0.00493138 1 0
+0.118544 0.152403 0.165247 0.00546414 1 0
+0.343404 0.159514 0.0899321 0.00495426 1 0
+0.128004 0.141325 0.154959 0.0049926 1 0
+0.244713 0.0307325 0.155689 0.00508441 1 0
+0.181902 0.141143 0.112709 0.00522801 1 0
+0.307729 0.138997 0.0192935 0.00507574 1 0
+0.331633 0.0900834 0.00664554 0.00528612 1 0
+0.216766 0.0824641 0.108869 0.00568365 1 0
+0.211694 0.10536 0.101931 0.00519168 1 0
+0.179299 0.0286834 0.154585 0.00503082 1 0
+0.00631072 0.147677 0.0345265 0.00543485 1 0
+0.332261 0.0910282 0.0655754 0.00591895 1 0
+0.326055 0.0639492 0.104676 0.00532498 1 0
+0.104297 0.0712327 0.152123 0.0049905 1 0
+0.337664 0.118813 0.146655 0.00500696 1 0
+0.16796 0.0880324 0.0899783 0.00520396 1 0
+0.151126 0.144095 0.117993 0.0051249 1 0
+0.167151 0.122918 0.127015 0.00578551 1 0
+0.347149 0.181876 0.140827 0.00657185 1 0
+0.353949 0.191197 0.140731 0.00496706 1 0
+0.28435 0.189917 0.0435792 0.00586862 1 0
+0.222213 0.0143369 0.0721368 0.00557794 1 0
+0.279042 0.0945755 0.11326 0.00519755 1 0
+0.210267 0.0545971 0.188648 0.00515023 1 0
+0.317678 0.147377 0.193662 0.00621996 1 0
+0.250707 0.128303 0.0628843 0.00550307 1 0
+0.0200183 0.12112 0.083305 0.00501581 1 0
+0.177239 0.118432 0.146594 0.00520612 1 0
+0.111327 0.0824235 0.166339 0.00591941 1 0
+0.155479 0.146328 0.186009 0.0050508 1 0
+0.0919961 0.140076 0.142581 0.00563671 1 0
+0.269316 0.144037 0.131719 0.00560771 1 0
+0.150699 0.139069 0.133101 0.00536768 1 0
+0.209042 0.108432 0.0794174 0.00496219 1 0
+0.216699 0.112429 0.0861932 0.00492981 1 0
+0.101038 0.133943 0.0973033 0.00644403 1 0
+0.0966487 0.120678 0.107036 0.00523101 1 0
+0.202327 0.02737 0.0603728 0.0049831 1 0
+0.193253 0.0784818 0.0730075 0.00564155 1 0
+0.0868005 0.12796 0.110006 0.00531148 1 0
+0.238097 0.139762 0.0654122 0.00531521 1 0
+0.154478 0.00735788 0.109484 0.00544259 1 0
+0.103283 0.128144 0.0876139 0.0050692 1 0
+0.270558 0.16535 0.0986312 0.00505513 1 0
+0.157723 0.105315 0.0744188 0.00528203 1 0
+0.169762 0.151644 0.135452 0.00507249 1 0
+0.125053 0.149402 0.11914 0.00521138 1 0
+0.268898 0.165729 0.134488 0.00578782 1 0
+0.170716 0.13527 0.138964 0.00498681 1 0
+0.171308 0.127188 0.14667 0.00536928 1 0
+0.277086 0.157709 0.00506657 0.00534523 1 0
+0.1712 0.00837622 0.119438 0.00530001 1 0
+0.355425 0.144238 0.00571681 0.00517774 1 0
+0.166652 0.083414 0.0995339 0.00524142 1 0
+0.119505 0.139675 0.114664 0.00506236 1 0
+0.204039 0.110165 0.106515 0.00494264 1 0
+0.39225 0.188542 0.150983 0.00565893 1 0
+0.148649 0.136782 0.143078 0.00506248 1 0
+0.22953 0.112953 0.0768692 0.0051831 1 0
+0.0694713 0.0871968 0.0941546 0.00546271 1 0
+0.259241 0.149048 0.128677 0.00604828 1 0
+0.170321 0.17059 0.134922 0.00493746 1 0
+0.275538 0.146728 0.00487594 0.00536114 1 0
+0.169881 0.149538 0.125133 0.00519197 1 0
+0.159116 0.151902 0.139595 0.00532538 1 0
+0.165307 0.125014 0.137586 0.00514797 1 0
+0.187238 0.105113 0.140191 0.00492454 1 0
+0.0980079 0.195089 0.151294 0.00527918 1 0
+0.0896188 0.149924 0.139441 0.00497002 1 0
+0.109522 0.139505 0.105479 0.0049669 1 0
+0.168901 0.107365 0.101898 0.00498716 1 0
+0.0467424 0.143688 0.176425 0.00504098 1 0
+0.258472 0.137915 0.130327 0.00523309 1 0
+0.264116 0.173093 0.0996929 0.00507272 1 0
+0.175687 0.0787602 0.0994242 0.00492242 1 0
+0.190441 0.0686624 0.0757399 0.00493151 1 0
diff --git a/src/Tools/padder/resources/padderexe/med2/concrete.med b/src/Tools/padder/resources/padderexe/med2/concrete.med
new file mode 100644 (file)
index 0000000..3b39b27
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/med2/concrete.med differ
diff --git a/src/Tools/padder/resources/padderexe/med2/data.txt b/src/Tools/padder/resources/padderexe/med2/data.txt
new file mode 100644 (file)
index 0000000..f7a6b44
--- /dev/null
@@ -0,0 +1,5 @@
+concrete.med concrete
+nbSteelFiles 2
+ferrtran.med ferrtran
+ferraill.med ferraill
+output.med
diff --git a/src/Tools/padder/resources/padderexe/med2/ferraill.med b/src/Tools/padder/resources/padderexe/med2/ferraill.med
new file mode 100644 (file)
index 0000000..79cda88
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/med2/ferraill.med differ
diff --git a/src/Tools/padder/resources/padderexe/med2/ferrtran.med b/src/Tools/padder/resources/padderexe/med2/ferrtran.med
new file mode 100644 (file)
index 0000000..0a86670
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/med2/ferrtran.med differ
diff --git a/src/Tools/padder/resources/padderexe/med2/padder.exe b/src/Tools/padder/resources/padderexe/med2/padder.exe
new file mode 100755 (executable)
index 0000000..8591550
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/med2/padder.exe differ
diff --git a/src/Tools/padder/resources/padderexe/med3/concrete.med b/src/Tools/padder/resources/padderexe/med3/concrete.med
new file mode 100644 (file)
index 0000000..3b39b27
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/med3/concrete.med differ
diff --git a/src/Tools/padder/resources/padderexe/med3/data.txt b/src/Tools/padder/resources/padderexe/med3/data.txt
new file mode 100644 (file)
index 0000000..04cabc7
--- /dev/null
@@ -0,0 +1,4 @@
+concrete.med concrete
+nbSteelbarMesh= 1
+ferraill.med ferraill
+FinalEDMesh.med
diff --git a/src/Tools/padder/resources/padderexe/med3/ferraill.med b/src/Tools/padder/resources/padderexe/med3/ferraill.med
new file mode 100644 (file)
index 0000000..79cda88
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/med3/ferraill.med differ
diff --git a/src/Tools/padder/resources/padderexe/med3/padder.exe b/src/Tools/padder/resources/padderexe/med3/padder.exe
new file mode 100755 (executable)
index 0000000..3eca741
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/med3/padder.exe differ
diff --git a/src/Tools/padder/resources/padderexe/padder.sh b/src/Tools/padder/resources/padderexe/padder.sh
new file mode 100755 (executable)
index 0000000..dae9ea4
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+# This script emulates the launcher script that will be generated by
+# the padder SALOME component and give as the "job file" to the SALOME
+# launcher to execute the padder job.
+# The script is supposed to be executed where the data are located.
+
+here=$(dirname $0)
+
+# >>> This part should be written by the component
+binpath=$here/padder.exe
+envpath=$here/envPadder.sh
+# <<<
+
+. $envpath
+$binpath $here/data.txt
diff --git a/src/Tools/padder/resources/padderexe/particules.png b/src/Tools/padder/resources/padderexe/particules.png
new file mode 100644 (file)
index 0000000..a1b97ec
Binary files /dev/null and b/src/Tools/padder/resources/padderexe/particules.png differ
diff --git a/src/Tools/padder/spadderpy/Makefile.am b/src/Tools/padder/spadderpy/Makefile.am
new file mode 100644 (file)
index 0000000..742cb5b
--- /dev/null
@@ -0,0 +1,11 @@
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+SUBDIRS = gui plugin
+
+spadderpydir=$(smeshpypkgdir)/spadder
+spadderpy_PYTHON = \
+       __init__.py \
+       configreader.py
+
+salomeplugins_DATA = \
+       padder.cfg
diff --git a/src/Tools/padder/spadderpy/__init__.py b/src/Tools/padder/spadderpy/__init__.py
new file mode 100644 (file)
index 0000000..1a2c26a
--- /dev/null
@@ -0,0 +1,89 @@
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author(s): Guillaume Boulant (23/03/2011)
+#
+
+# TODO: put all this stuff in the unitests package
+
+import os
+def getRootDir():
+    '''
+    This returns the root directory where the module SPADDER is
+    installed. All test files are looked up from this location.
+    '''
+    return os.environ['SMESH_ROOT_DIR']
+
+def getTestDataDir():
+    '''
+    This function gives the absolute path to the directory containing
+    the data files for test (realistic med files).
+    '''
+    datadir=os.path.join(getRootDir(),"share/salome/resources/smesh/padderexe")
+    return datadir
+
+import MESHJOB # to get the enum constant values
+from MESHJOB import MeshJobParameter, MeshJobParameterList
+
+DEFAULT_CONCRETE_FILENAME=os.path.join(getTestDataDir(),'concrete.med')
+DEFAULT_STEELBAR_LISTFILENAME=[
+    os.path.join(getTestDataDir(),'ferraill.med')
+    ]
+
+def getMeshJobParameterList(concrete_filename=DEFAULT_CONCRETE_FILENAME,
+                            steelbar_listfilename=DEFAULT_STEELBAR_LISTFILENAME):
+    '''
+    This helper function creates a complete set of parameters (a
+    MeshJobParameterList) for a simple test case, i.e. a case with a
+    concrete filename and a single steelbar filename.
+    '''
+    # Note that a CORBA sequence (MeshJobParameterList) is mapped on a
+    # simple list in python
+    meshJobParameterList = []
+    # We can add some parameters
+    param = MeshJobParameter(
+        file_name  = concrete_filename,
+        file_type  = MESHJOB.MED_CONCRETE,
+        group_name = "concrete")
+    meshJobParameterList.append(param)
+
+    for steelbar_filename in steelbar_listfilename:
+        param = MeshJobParameter(
+            file_name  = steelbar_filename,
+            file_type  = MESHJOB.MED_STEELBAR,
+            group_name = "steelbar")
+        meshJobParameterList.append(param)
+
+    return meshJobParameterList
+
+
+def getSpadderCatalogFilename():
+    filename=os.path.join(getRootDir(),"share/salome/resources/smesh/SPADDERCatalog.xml")
+    return filename
+
+def loadSpadderCatalog():
+    import salome
+    salome.salome_init()
+    obj = salome.naming_service.Resolve('Kernel/ModulCatalog')
+    import SALOME_ModuleCatalog
+    catalog = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog)
+    if not catalog:
+        raise RuntimeError, "Can't accesss module catalog"
+
+    filename = getSpadderCatalogFilename()
+    catalog.ImportXmlCatalogFile(filename)
diff --git a/src/Tools/padder/spadderpy/configreader.py b/src/Tools/padder/spadderpy/configreader.py
new file mode 100644 (file)
index 0000000..84d87ba
--- /dev/null
@@ -0,0 +1,124 @@
+# -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author(s): Guillaume Boulant (23/03/2011)
+#
+
+import sys, os
+import ConfigParser
+from MESHJOB import ConfigParameter
+from salome.kernel.uiexception import AdminException, UiException
+
+CONFIG_FILENAME = "padder.cfg"
+TYPE_LOCAL   = 'local'
+TYPE_REMOTE  = 'remote'
+TYPES=[TYPE_LOCAL, TYPE_REMOTE]
+
+class ConfigReader:
+    def __init__(self):
+        # The first step is to look for the config file. This file
+        # is supposed to be located in the same directory than the
+        # padder plugin. Then, we have to scan the directories
+        # specified in the SALOME plugins path.
+        self.__configFilename = None
+        pluginspath=os.environ["SALOME_PLUGINS_PATH"]
+        for path in pluginspath.split(":"):
+            filename = os.path.join(path,CONFIG_FILENAME)
+            if os.path.exists(filename):
+                self.__configFilename = filename
+                break
+        if self.__configFilename is None:
+            msg = "The configuration file %s can't be found in SALOME_PLUGINS_PATH"
+            raise AdminException(msg%CONFIG_FILENAME)
+
+        print "The configuration file is : %s"%self.__configFilename
+        self.__configparser = ConfigParser.RawConfigParser()
+        self.__configparser.read(self.__configFilename)
+
+    def getLocalConfig(self):
+        return self.__getConfig(TYPE_LOCAL)
+    
+    def getRemoteConfig(self):
+        return self.__getConfig(TYPE_REMOTE)
+
+    def getDefaultConfig(self):
+        defaultType = self.__getDefaultType()
+        return self.__getConfig(defaultType)
+        
+    def __getConfig(self, type=TYPE_LOCAL):
+        configName = self.__configparser.get('resources', type)
+        resname = self.__configparser.get(configName, 'resname')
+        binpath = self.__configparser.get(configName, 'binpath')
+        envpath = self.__configparser.get(configName, 'envpath')
+        config = ConfigParameter(resname, binpath, envpath)
+        config.resname = resname
+        return config
+
+    def __getDefaultType(self):
+        '''This returns the default type read in the config file ([resources], default)'''
+        defaultType = self.__configparser.get('preferences', 'defaultres')
+        if defaultType not in TYPES:
+            return TYPE_LOCAL
+        return defaultType
+
+#
+# =========================================================================
+# Test runner
+# =========================================================================
+#
+def TEST_getDefaultConfig():
+    try:
+        configReader = ConfigReader()
+        defaultConfig = configReader.getDefaultConfig()
+        print defaultConfig.resname
+        print defaultConfig.binpath
+        print defaultConfig.envpath
+    except Exception, ex:
+        sys.stderr.write('ERROR: %s\n' % str(ex))
+        return False
+    
+    return True
+
+def TEST_getDefaultConfig_withError():
+    global CONFIG_FILENAME
+    CONFIG_FILENAME = "toto.cfg"
+    try:
+        configReader = ConfigReader()
+        defaultConfig = configReader.getDefaultConfig()
+    except UiException, err:
+        print 'ERROR: %s' % str(err)
+        return True
+    
+    return False
+
+
+from salome.kernel import unittester
+moduleName = "configreader"
+
+def testsuite():
+    unittester.run(moduleName, "TEST_getDefaultConfig")
+    unittester.run(moduleName, "TEST_getDefaultConfig_withError")
+    
+if __name__ == "__main__":
+    import os, sys
+    pluginspath=os.environ["SALOME_PLUGINS_PATH"]
+    for path in pluginspath.split(":"):
+        sys.path.insert(0,path)
+    
+    testsuite()
diff --git a/src/Tools/padder/spadderpy/gui/Makefile.am b/src/Tools/padder/spadderpy/gui/Makefile.am
new file mode 100644 (file)
index 0000000..99514f1
--- /dev/null
@@ -0,0 +1,36 @@
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+#
+# Files that compose the spadder graphical interface used by the
+# plugin. They are installed in the spadder python package, under the
+# sub-package plugins.
+#
+spadderpydir=$(smeshpypkgdir)/spadder/gui
+spadderpy_PYTHON = \
+       __init__.py \
+       plugindialog_ui.py \
+       plugindialog.py \
+       inputframe_ui.py \
+       inputdialog.py \
+       inputdata.py
+
+spadderpy_DATA= \
+       parameters.png \
+       input.png \
+       select.png \
+       compute.png \
+       refresh.png \
+       publish.png \
+       clear.png \
+       addinput.png \
+       deleteinput.png \
+       concrete.png \
+       steelbar.png
+
+PYUIC = @PYUIC@
+%_ui.py:%.ui
+       $(PYUIC) -x $< -o $@
+
+PYRCC = @PYRCC@
+%_rc.py:%.qrc
+       $(PYRCC) $< -o $@
diff --git a/src/Tools/padder/spadderpy/gui/__init__.py b/src/Tools/padder/spadderpy/gui/__init__.py
new file mode 100644 (file)
index 0000000..e509526
--- /dev/null
@@ -0,0 +1,20 @@
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author(s): Guillaume Boulant (23/03/2011)
+#
diff --git a/src/Tools/padder/spadderpy/gui/addinput.png b/src/Tools/padder/spadderpy/gui/addinput.png
new file mode 100644 (file)
index 0000000..408b6b4
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/addinput.png differ
diff --git a/src/Tools/padder/spadderpy/gui/clear.png b/src/Tools/padder/spadderpy/gui/clear.png
new file mode 100644 (file)
index 0000000..642001b
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/clear.png differ
diff --git a/src/Tools/padder/spadderpy/gui/compute.png b/src/Tools/padder/spadderpy/gui/compute.png
new file mode 100644 (file)
index 0000000..37c77a5
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/compute.png differ
diff --git a/src/Tools/padder/spadderpy/gui/concrete.png b/src/Tools/padder/spadderpy/gui/concrete.png
new file mode 100644 (file)
index 0000000..33af046
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/concrete.png differ
diff --git a/src/Tools/padder/spadderpy/gui/deleteinput.png b/src/Tools/padder/spadderpy/gui/deleteinput.png
new file mode 100644 (file)
index 0000000..86c3e36
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/deleteinput.png differ
diff --git a/src/Tools/padder/spadderpy/gui/input.png b/src/Tools/padder/spadderpy/gui/input.png
new file mode 100644 (file)
index 0000000..a8a67db
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/input.png differ
diff --git a/src/Tools/padder/spadderpy/gui/inputdata.py b/src/Tools/padder/spadderpy/gui/inputdata.py
new file mode 100644 (file)
index 0000000..ab2f933
--- /dev/null
@@ -0,0 +1,79 @@
+# -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# -* Makefile *- 
+#
+# Author : Guillaume Boulant (EDF)
+#
+
+from salome.kernel.enumerate import Enumerate
+from salome.kernel.datamodeler import DataModeler, TypeString, TypeInteger
+
+# __MEM__: Note that this module does not depend on the SPADDER
+# component on purpose (we could have use a derived structure of
+# SPADDER_ORB.MeshJobParameter). This choice is made to ease the test
+# and development of the gui part of the plugin. If this data
+# structure becomes too important, we could make another arrangement
+# and use directly a SPADDER_ORB.MeshJobParameter.
+
+class InputData(DataModeler):
+    MESHTYPES=Enumerate([
+        'CONCRETE',
+        'STEELBAR'
+        ])
+
+    def __init__(self):
+        DataModeler.__init__(self)
+        self.addAttribute(
+            name  = "meshObject",
+            void  = True
+            )
+        self.addAttribute(
+            name  = "meshName",
+            type  = TypeString,
+            range = None
+            )
+        self.addAttribute(
+            name  = "meshType",
+            type  = TypeInteger,
+            range = self.MESHTYPES.listvalues()
+            )
+        self.addAttribute(
+            name  = "groupName",
+            type  = TypeString,
+            range = None
+            )
+
+#
+# ==============================================================================
+# Basic use cases and unit tests
+# ==============================================================================
+#
+def TEST_getName():
+    testdata = InputData()
+    testdata.meshName   = "myMesh"
+    testdata.meshObject = None
+    testdata.meshType   = InputData.MESHTYPES.CONCRETE
+    if testdata.meshName != "myMesh" :
+        return False
+    return True
+
+if __name__ == "__main__":
+    from salome.kernel.unittester import run
+    run("inputdata","TEST_getName")
diff --git a/src/Tools/padder/spadderpy/gui/inputdialog.py b/src/Tools/padder/spadderpy/gui/inputdialog.py
new file mode 100644 (file)
index 0000000..51659f5
--- /dev/null
@@ -0,0 +1,378 @@
+# -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# -* Makefile *- 
+#
+# Author : Guillaume Boulant (EDF)
+#
+
+import os
+
+import salome
+from salome.kernel import studyedit
+from salome.gui.genericdialog import GenericDialog
+from salome.gui import helper as guihelper
+from salome.smesh.smeshstudytools import SMeshStudyTools
+
+from omniORB import CORBA
+
+from PyQt4.QtCore import QObject, SIGNAL, SLOT
+from PyQt4.QtGui import QIcon, QStandardItemModel, QStandardItem, QMessageBox
+
+from inputframe_ui import Ui_InputFrame
+from inputdata import InputData
+
+DEBUG_MODE=True
+GROUPNAME_MAXLENGTH=8
+
+class InputDialog(GenericDialog):
+
+    TBL_HEADER_LABEL=["Input Mesh", "Output group name"]
+
+    def __init__(self, parent=None, name="InputDialog", modal=0):
+        """
+        This initializes a dialog windows to define the input data of
+        the plugin function. The input data consist in a list of
+        meshes characterizes each by a name, a pointer to the smesh
+        servant object, a type and a group name (see data model in the
+        inputdata.py).
+        """
+        GenericDialog.__init__(self, parent, name, modal)
+        # Set up the user interface from Designer.
+        self.__ui = Ui_InputFrame()
+        # BE CAREFULL HERE, the ui form is NOT drawn in the global
+        # dialog (already containing some generic widgets) but in the
+        # center panel created in the GenericDialog as a void
+        # container for the form. The InputFrame form is supposed
+        # here to create only the widgets to be placed in the center
+        # panel. Then, the setupUi function of this form draws itself
+        # in the specified panel, i.e. the panel returned by
+        # self.getPanel().
+        self.__ui.setupUi(self.getPanel())
+
+        self.setWindowTitle("Specification of input files")
+
+        # The icon are supposed to be located in the plugin folder,
+        # i.e. in the same folder than this python module file
+        iconfolder=os.path.dirname(os.path.abspath(__file__))
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"select.png"))
+        self.__ui.btnSmeshObject.setIcon(icon)
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"addinput.png"))
+        self.__ui.btnAddInput.setIcon(icon)
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"deleteinput.png"))
+        self.__ui.btnDeleteInput.setIcon(icon)
+
+        # We specify here the items in the combo box (even if already
+        # defined in the designer) so that we can be sure of the item
+        # indexation.
+        self.MESHTYPE_ICONS = {}
+        meshTypeIndex = InputData.MESHTYPES.CONCRETE
+        self.__ui.cmbMeshType.setItemText(meshTypeIndex, "Béton")
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"concrete.png"))
+        self.__ui.cmbMeshType.setItemIcon(meshTypeIndex, icon)
+        self.MESHTYPE_ICONS[meshTypeIndex] = icon
+
+        meshTypeIndex = InputData.MESHTYPES.STEELBAR
+        self.__ui.cmbMeshType.setItemText(meshTypeIndex, "Acier")
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"steelbar.png"))
+        self.__ui.cmbMeshType.setItemIcon(meshTypeIndex, icon)
+        self.MESHTYPE_ICONS[meshTypeIndex] = icon
+        
+        # The click on btnSmeshObject (signal clicked() emitted by the
+        # button btnSmeshObject) is connected to the slot
+        # onSelectSmeshObject, etc ...
+        self.connect(self.__ui.btnSmeshObject, SIGNAL('clicked()'), self.onSelectSmeshObject )
+        self.connect(self.__ui.btnAddInput,    SIGNAL('clicked()'), self.onAddInput )
+        self.connect(self.__ui.btnDeleteInput, SIGNAL('clicked()'), self.onDeleteInput )
+
+        # Set up the model of the Qt table list
+        self.__inputModel = QStandardItemModel(0,2)
+        self.__inputModel.setHorizontalHeaderLabels(InputDialog.TBL_HEADER_LABEL)
+        self.__ui.tblListInput.setModel(self.__inputModel)
+        self.__ui.tblListInput.verticalHeader().hide()
+        self.__ui.tblListInput.horizontalHeader().setStretchLastSection(True)
+        # Note that the type is not display explicitly in the Qt table
+        # because it is specified using an icon on the text of the
+        # name item. 
+
+        # Note that PADDER does not support group name longer than 8
+        # characters. We apply then this limit in the gui field.
+        self.__ui.txtGroupName.setMaxLength(GROUPNAME_MAXLENGTH)
+
+        self.clear()
+
+        self.smeshStudyTool = SMeshStudyTools()
+
+    def clear(self):
+        """
+        This function clears the data gui area and associated values.
+        """
+        self.__ui.txtSmeshObject.setText("")
+        self.__ui.txtGroupName.setText("")
+        self.__inputModel.clear()
+        self.__inputModel.setHorizontalHeaderLabels(InputDialog.TBL_HEADER_LABEL)
+        if not DEBUG_MODE:
+            self.__ui.txtSmeshObject.setEnabled(False)
+            self.__ui.btnAddInput.setEnabled(False)
+        self.__selectedMesh = None
+        self.__dictInputData = {}
+        self.__nbConcreteMesh = 0
+        self.__nbSteelbarMesh = 0
+
+    def accept(self):
+        """
+        This function is the slot connected to the button OK
+        """
+        # The dialog is raised in a non modal mode to get
+        # interactivity with the parents windows. Then we have to emit
+        # a signal to warn the parent observer that the dialog has
+        # been validated so that it can process the event
+        GenericDialog.accept(self)
+        if self.wasOk():
+            self.emit(SIGNAL('inputValidated()'))
+
+    def onSelectSmeshObject(self):
+        '''
+        This function is the slot connected on the mesh selection
+        button. It memorizes the selected mesh and put its name in the
+        text field of the dialog box.
+        '''
+        mySObject, myEntry = guihelper.getSObjectSelected()
+        if CORBA.is_nil(mySObject):
+            self.__ui.txtSmeshObject.setText("You must choose a mesh")
+            self.__ui.txtGroupName.setText("")
+            self.__ui.txtSmeshObject.setEnabled(False)
+            self.__ui.btnAddInput.setEnabled(False)
+            self.__selectedMesh = None
+            return
+
+        self.smeshStudyTool.updateStudy(studyedit.getActiveStudyId())
+        self.__selectedMesh = self.smeshStudyTool.getMeshObjectFromSObject(mySObject)
+        if CORBA.is_nil(self.__selectedMesh):
+            self.__ui.txtSmeshObject.setText("The selected object is not a mesh")
+            self.__ui.txtGroupName.setText("")
+            self.__ui.txtSmeshObject.setEnabled(False)
+            self.__ui.btnAddInput.setEnabled(False)
+            self.__selectedMesh = None
+            return
+        myName = mySObject.GetName()
+        self.__ui.txtSmeshObject.setText(myName)
+        self.__ui.txtSmeshObject.setEnabled(True)
+        self.__ui.btnAddInput.setEnabled(True)
+
+        # We can suggest a default group name from the mesh name
+        self.__ui.txtGroupName.setText(myName)
+
+    def onAddInput(self):
+        """
+        This function is the slot connected to the Add button. It
+        creates a new entry in the list of input data, or updates this
+        entry if it already exists.
+        """
+        meshName   = str(self.__ui.txtSmeshObject.text().trimmed())
+        meshObject = self.__selectedMesh
+        meshType   = self.__ui.cmbMeshType.currentIndex()
+        groupName  = str(self.__ui.txtGroupName.text().trimmed())
+
+        self.__addInputInGui(meshName, meshObject, meshType, groupName)
+        self.__addInputInMap(meshName, meshObject, meshType, groupName)
+
+    def __addInputInGui(self, meshName, meshObject, meshType, groupName):
+        """
+        This function adds an entry with the specified data int the
+        GUI table (for data visualization purpose).
+        """
+        # The mesh name is used as the key index in the model. We have
+        # to check first if this item already exists in the list.
+        tblItems = self.__inputModel.findItems(meshName)
+        row = self.__inputModel.rowCount()
+        if not tblItems:
+            tblItems = []
+            tblItems.append(QStandardItem()) # input mesh name
+            tblItems.append(QStandardItem()) # output group name
+        else:
+            row = tblItems[0].index().row()
+            tblItems.append(self.__inputModel.item(row,1))
+
+        tblItems[0].setText(meshName)
+        tblItems[0].setIcon(self.MESHTYPE_ICONS[meshType])
+        tblItems[1].setText(groupName)
+        self.__inputModel.setItem(row,0,tblItems[0])
+        self.__inputModel.setItem(row,1,tblItems[1])
+        self.__ui.tblListInput.setCurrentIndex(tblItems[0].index())
+
+    def __addInputInMap(self, meshName, meshObject, meshType, groupName):
+        """
+        This function adds an entry with the specified data in the
+        internal map (for data management purpose).
+        """
+        # if the entry already exists, we remove it to replace by a
+        # new one
+        if self.__dictInputData.has_key(meshName):
+            self.__delInputFromMap(meshName)
+        
+        inputData = InputData()
+        inputData.meshName   = meshName
+        inputData.meshObject = meshObject
+        inputData.meshType   = meshType
+        inputData.groupName  = groupName
+        # The key of the map is the mesh name
+        self.__dictInputData[meshName] = inputData
+        if inputData.meshType == InputData.MESHTYPES.CONCRETE:
+            self.__nbConcreteMesh += 1
+        else:
+            self.__nbSteelbarMesh += 1
+
+        print inputData
+        print "meshType = ",inputData.meshType
+        print "nb concrete mesh ",self.__nbConcreteMesh
+        print "nb steelbar mesh ",self.__nbSteelbarMesh
+            
+
+    def onDeleteInput(self):
+        """
+        This function is the slot connected to the Delete button. It
+        remove from the data list the entry selected in the Qt table.
+        """
+        selectedIdx = self.__ui.tblListInput.selectedIndexes()
+        if selectedIdx:
+            row  = selectedIdx[0].row()
+            tblItem  = self.__inputModel.item(row,0)
+            meshName = str(tblItem.text())
+            self.__inputModel.takeRow(row)
+            # Don't forget to remove this entry from the mesh object
+            # internal dictionnary
+            self.__delInputFromMap(meshName)
+
+    def __delInputFromMap(self, meshName):
+        """
+        This function removes the specified entry from the internal
+        map (for data management purpose) 
+        """
+        inputData = self.__dictInputData.pop(meshName)
+        if inputData.meshType == InputData.MESHTYPES.CONCRETE:
+            self.__nbConcreteMesh -= 1
+        else:
+            self.__nbSteelbarMesh -= 1
+
+        print inputData
+        print "nb concrete mesh ",self.__nbConcreteMesh
+        print "nb steelbar mesh ",self.__nbSteelbarMesh
+
+
+    def setData(self, listInputData=[]):
+        """
+        This function fills the dialog widgets with values provided by
+        the specified data list.
+        """
+        self.clear()
+        for inputData in listInputData:
+
+            meshName   = inputData.meshName
+            meshObject = inputData.meshObject
+            meshType   = inputData.meshType
+            groupName  = inputData.groupName
+            
+            self.__addInputInGui(meshName, meshObject, meshType, groupName)
+            self.__addInputInMap(meshName, meshObject, meshType, groupName)
+
+            if not DEBUG_MODE:
+                self.onSelectSmeshObject()
+
+    def getData(self):
+        """
+        This function returns a list of InputData that corresponds to
+        the data in the dialog widgets of the current dialog.
+        """
+        # Note that the values() function returns a copy of the list
+        # of values.
+        return self.__dictInputData.values()
+        
+    def checkData(self):
+        """
+        This function checks if the data are valid, from the dialog
+        window point of view.
+        """
+        if self.__nbConcreteMesh < 1:
+            self.checkDataMessage = "You must define at least one CONCRETE mesh"
+            return False        
+        if self.__nbConcreteMesh > 1:
+            self.checkDataMessage  = "You define multiple CONCRETE meshes."
+            self.checkDataMessage += "You should verify first that your version of PADDER support this configuration."
+            # just warn the user, but don't block
+            QMessageBox.information(self, "Info", self.checkDataMessage)
+            return True
+        if self.__nbSteelbarMesh < 1:
+            self.checkDataMessage = "You must define at least one STEELBAR mesh"
+            return False
+        return True
+
+
+# ==============================================================================
+# Basic use case
+# ==============================================================================
+#
+def TEST_InputDialog():
+    import sys
+    from PyQt4.QtCore import QObject, SIGNAL, SLOT
+    from PyQt4.QtGui import QApplication
+    app = QApplication(sys.argv)
+    QObject.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
+
+    dlg=InputDialog()
+    dlg.displayAndWait()
+    if dlg.wasOk():
+        print "OK has been pressed"
+
+def TEST_InputDialog_setData():
+    import sys
+    from PyQt4.QtCore import QObject, SIGNAL, SLOT
+    from PyQt4.QtGui import QApplication
+    app = QApplication(sys.argv)
+    QObject.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
+
+    dlg=InputDialog()
+
+    from inputdata import InputData
+    inputData = InputData()
+    inputData.meshName   = "myMesh"
+    inputData.meshObject = None
+    inputData.meshType   = InputData.MESHTYPES.CONCRETE
+    inputData.groupName  = "myGroup"
+    listInputData = []
+    listInputData.append(inputData)
+    
+    dlg.setData2(listInputData)
+    
+    dlg.displayAndWait()
+    if dlg.wasOk():
+        print "OK has been pressed"
+        outputListInputData = dlg.getData2()
+        print outputListInputData
+
+
+if __name__ == "__main__":
+    #TEST_InputDialog()
+    TEST_InputDialog_setData()
+
diff --git a/src/Tools/padder/spadderpy/gui/inputframe.ui b/src/Tools/padder/spadderpy/gui/inputframe.ui
new file mode 100644 (file)
index 0000000..9f98eb9
--- /dev/null
@@ -0,0 +1,204 @@
+<ui version="4.0" >
+ <class>InputFrame</class>
+ <widget class="QDialog" name="InputFrame" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>509</width>
+    <height>307</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Input parameters</string>
+  </property>
+  <layout class="QHBoxLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item>
+    <layout class="QVBoxLayout" >
+     <property name="margin" >
+      <number>0</number>
+     </property>
+     <property name="spacing" >
+      <number>6</number>
+     </property>
+     <item>
+      <widget class="QLabel" name="lblSmeshObject" >
+       <property name="text" >
+        <string>Input MESH / Output group name / Type :</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <layout class="QHBoxLayout" >
+       <property name="margin" >
+        <number>0</number>
+       </property>
+       <property name="spacing" >
+        <number>6</number>
+       </property>
+       <item>
+        <layout class="QVBoxLayout" >
+         <property name="margin" >
+          <number>0</number>
+         </property>
+         <property name="spacing" >
+          <number>6</number>
+         </property>
+         <item>
+          <layout class="QHBoxLayout" >
+           <property name="margin" >
+            <number>0</number>
+           </property>
+           <property name="spacing" >
+            <number>6</number>
+           </property>
+           <item>
+            <layout class="QHBoxLayout" >
+             <property name="margin" >
+              <number>0</number>
+             </property>
+             <property name="spacing" >
+              <number>6</number>
+             </property>
+             <item>
+              <widget class="QPushButton" name="btnSmeshObject" >
+               <property name="sizePolicy" >
+                <sizepolicy>
+                 <hsizetype>0</hsizetype>
+                 <vsizetype>0</vsizetype>
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="maximumSize" >
+                <size>
+                 <width>31</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="text" >
+                <string/>
+               </property>
+               <property name="icon" >
+                <iconset>select.png</iconset>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QLineEdit" name="txtSmeshObject" >
+               <property name="toolTip" >
+                <string comment="Select the input mesh in the object browser" />
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <widget class="Line" name="line" >
+             <property name="orientation" >
+              <enum>Qt::Vertical</enum>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLineEdit" name="txtGroupName" >
+             <property name="toolTip" >
+              <string comment="Specify the name of the associated group in the output mesh" />
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="Line" name="line_2" >
+             <property name="orientation" >
+              <enum>Qt::Vertical</enum>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QComboBox" name="cmbMeshType" >
+             <property name="toolTip" >
+              <string comment="Select the type of the mesh" />
+             </property>
+             <item>
+              <property name="text" >
+               <string>Béton</string>
+              </property>
+              <property name="icon" >
+               <iconset>concrete.png</iconset>
+              </property>
+             </item>
+             <item>
+              <property name="text" >
+               <string>Acier</string>
+              </property>
+              <property name="icon" >
+               <iconset>steelbar.png</iconset>
+              </property>
+             </item>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <widget class="QTableView" name="tblListInput" />
+         </item>
+        </layout>
+       </item>
+       <item>
+        <layout class="QVBoxLayout" >
+         <property name="margin" >
+          <number>0</number>
+         </property>
+         <property name="spacing" >
+          <number>6</number>
+         </property>
+         <item>
+          <widget class="QPushButton" name="btnAddInput" >
+           <property name="text" >
+            <string/>
+           </property>
+           <property name="icon" >
+            <iconset>addinput.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="btnDeleteInput" >
+           <property name="text" >
+            <string/>
+           </property>
+           <property name="icon" >
+            <iconset>deleteinput.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer>
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" >
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/Tools/padder/spadderpy/gui/parameters.png b/src/Tools/padder/spadderpy/gui/parameters.png
new file mode 100644 (file)
index 0000000..a8a67db
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/parameters.png differ
diff --git a/src/Tools/padder/spadderpy/gui/plugindialog.py b/src/Tools/padder/spadderpy/gui/plugindialog.py
new file mode 100644 (file)
index 0000000..51902be
--- /dev/null
@@ -0,0 +1,386 @@
+# -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# -* Makefile *- 
+#
+# Author : Guillaume Boulant (EDF)
+#
+
+from PyQt4.QtGui import QDialog, QMessageBox, QIcon
+from PyQt4.QtCore import QObject, SIGNAL, SLOT, Qt
+
+from plugindialog_ui import Ui_PluginDialog
+from inputdialog import InputDialog
+from inputdata import InputData
+# __GBO__: uncomment this line and comment the previous one to use the
+# demo input dialog instead of the real one.
+#from demoinputdialog import InputDialog
+
+import os
+import salome
+from salome.kernel import studyedit
+
+from omniORB import CORBA
+import SMESH
+import smesh
+import MESHJOB
+
+gui_states = ["CAN_SELECT", "CAN_COMPUTE", "CAN_REFRESH", "CAN_PUBLISH"]
+
+run_states = ["CREATED", "IN_PROCESS", "QUEUED", "RUNNING", "PAUSED"];
+end_states = ["FINISHED", "ERROR"]
+all_states = run_states+end_states;
+
+# The SALOME launcher resource is specified by its name as defined in
+# the file CatalogResources.xml (see root directory of the
+# application). We could have a check box in the dialog to specify
+# wether we want a local execution or a remote one.
+resource_name = "localhost"
+from salome.smesh.spadder.configreader import ConfigReader
+
+
+class PluginDialog(QDialog):
+
+    def __init__(self,parent = None,name = None,modal = 0,fl = 0):
+        QDialog.__init__(self,parent)
+        # Set up the user interface from Designer.
+        self.__ui = Ui_PluginDialog()
+        self.__ui.setupUi(self)
+
+        # The default display strategy is to use a separate dialog box
+        # to select the input data.
+        self.viewInputFrame(False)
+
+        # The icon are supposed to be located in the plugin folder,
+        # i.e. in the same folder than this python module file
+        iconfolder=os.path.dirname(os.path.abspath(__file__))
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"input.png"))
+        self.__ui.btnInput.setIcon(icon)
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"compute.png"))
+        self.__ui.btnCompute.setIcon(icon)
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"refresh.png"))
+        self.__ui.btnRefresh.setIcon(icon)
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"publish.png"))
+        self.__ui.btnPublish.setIcon(icon)
+        icon = QIcon()
+        icon.addFile(os.path.join(iconfolder,"clear.png"))
+        self.__ui.btnClear.setIcon(icon)
+
+        # Then, we can connect the slot to there associated button event
+        self.connect(self.__ui.btnInput,       SIGNAL('clicked()'), self.onInput )
+        self.connect(self.__ui.btnCompute,     SIGNAL('clicked()'), self.onCompute )
+        self.connect(self.__ui.btnRefresh,     SIGNAL('clicked()'), self.onRefresh )
+        self.connect(self.__ui.btnPublish,     SIGNAL('clicked()'), self.onPublish )
+        self.connect(self.__ui.btnClear,       SIGNAL('clicked()'), self.onClear )
+
+        self.clear()
+
+        self.setupJobManager()
+        
+
+    def setupJobManager(self):
+        '''
+        This function configures the jobmanager by transmiting the
+        parameters required for a local execution and a remote
+        execution. The choice between "local" and "remote" is done at
+        the initialize step, by specifing the name of the resource to
+        be used.
+        '''
+        configReader = ConfigReader()
+        config = configReader.getLocalConfig()
+        configId = config.resname
+        self.__getJobManager().configure(configId, config)
+        # Note that the resname parameter is used as the key identifier of
+        # the configuration in the job manager. As is, there can be then
+        # only one configuration for each machine defined in the resources
+        # catalog (no need to have further, I thing)
+        config = configReader.getRemoteConfig()
+        configId = config.resname
+        self.__getJobManager().configure(configId, config)
+
+        # We specify the default configuration identifier as the
+        # resource name of the default configuration
+        self.__configId = configReader.getDefaultConfig().resname
+
+
+    def viewInputFrame(self, view=True):
+        # By default, the top input frame is visible and the input
+        # button is not visible.
+        if view is False:
+            self.__ui.frameInput.setVisible(False)
+            self.__ui.btnInput.setVisible(True)
+            # We create the input dialog that will be displayed when
+            # button input is pressed:
+            self.__inputDialog = InputDialog(self)
+            # The window is kept on the top to ease the selection of
+            # items in the object browser:
+            self.__inputDialog.setWindowFlags(
+                self.__inputDialog.windowFlags() | Qt.WindowStaysOnTopHint)
+            # The signal inputValidated emited from inputDialog is
+            # connected to the slot function onProcessInput:
+            self.connect(self.__inputDialog, SIGNAL('inputValidated()'), self.onProcessInput)
+            
+        else:
+            self.__ui.frameInput.setVisible(True)
+            self.__ui.btnInput.setVisible(False)
+            # This case is NOT IMPLEMENTED YET (not really). It could
+            # be used to draw the input frame directly in the frame
+            # frameInput of this dialog box.
+
+    def getInputFrame(self):
+        return self.__ui.frameInput
+        
+    def __setGuiState(self,states=["CAN_SELECT"]):
+        if "CAN_SELECT" in states:
+            self.__ui.btnInput.setEnabled(True)
+        else:
+            self.__ui.btnInput.setEnabled(False)
+            
+        if "CAN_COMPUTE" in states:
+            self.__ui.btnCompute.setEnabled(True)
+        else:
+            self.__ui.btnCompute.setEnabled(False)
+
+        if "CAN_REFRESH" in states:
+            self.__ui.btnRefresh.setEnabled(True)
+        else:
+            self.__ui.btnRefresh.setEnabled(False)
+
+        if "CAN_PUBLISH" in states:
+            self.__ui.btnPublish.setEnabled(True)
+        else:
+            self.__ui.btnPublish.setEnabled(False)
+
+    def __getJobManager(self):
+        """
+        This function requests a pointer to the MeshJobManager servant.
+        """
+        component=salome.lcc.FindOrLoadComponent("FactoryServer","MeshJobManager")
+        if component is None:
+            self.__log("ERR: the SALOME component MeshJobManager can't be reached")
+        return component
+
+    def __log(self, message):
+        """
+        This function prints the specified message in the log area
+        """ 
+        self.__ui.txtLog.append(message)
+
+    def __exportMesh(self, meshName, meshObject):
+        '''
+        This function exports the specified mesh object to a med
+        file whose name (basepath) is built from the specified mesh
+        name. This returns the filename.
+        '''
+        filename=str("/tmp/padder_inputfile_"+meshName+".med")
+        meshObject.ExportToMEDX( filename, 0, SMESH.MED_V2_2, 1 )
+        return filename
+
+    def clear(self):
+        """
+        This function clears the log area and the states of the buttons
+        """
+        self.__listInputData = []
+        self.__ui.txtLog.clear()
+        self.__setGuiState(["CAN_SELECT"])
+        self.__isRunning = False
+        self.__ui.lblStatusBar.setText("Ready")
+
+    def update(self):
+        '''
+        This function can be used to programmatically force the
+        refresh of the dialog box, the job state in particular.
+        '''
+        if self.__isRunning:
+            self.onRefresh()
+
+    def onInput(self):
+        '''
+        This function is the slot connected to the Input button
+        (signal clicked()). It opens the dialog window to input
+        data. The dialog is opened in a window modal mode so that the
+        SALOME study objects can be selected. In conterpart, this
+        class must listen to signals emitted by the child dialog
+        windows to process the validation event (see the slot
+        onProcessInput which is connected to this event).
+        '''
+        self.__inputDialog.setData(self.__listInputData)
+        self.__inputDialog.open()
+
+    def onProcessInput(self):
+        """
+        This function is the slot connected to the signal
+        inputValidated(), emit by the input dialog window when it's
+        validated, i.e. OK is pressed and data are valid.
+        """
+        # The processing simply consists in requesting the input data
+        # from the dialog window.
+        self.__listInputData = self.__inputDialog.getData()
+        self.__ui.lblStatusBar.setText("Input data OK")
+        self.__setGuiState(["CAN_SELECT", "CAN_COMPUTE"])
+        
+
+    def onCompute(self):
+        '''
+        This function is the slot connected to the Compute button. It
+        initializes a mesh computation job and start it using the
+        SALOME launcher.  
+        '''
+        # We first have to create the list of parameters for the
+        # initialize function. For that, we have to create the files
+        # from the mesh objects:
+        meshJobParameterList=[]
+        concreteIndex=0
+        for inputData in self.__listInputData:
+            # For each input data, we have to create a
+            # MeshJobParameter and add it to the list.
+            filename  = self.__exportMesh(inputData.meshName, inputData.meshObject)
+            if inputData.meshType == InputData.MESHTYPES.CONCRETE:
+                filetype = MESHJOB.MED_CONCRETE
+            else:
+                filetype = MESHJOB.MED_STEELBAR
+
+            parameter = MESHJOB.MeshJobParameter(
+                file_name  = filename,
+                file_type  = filetype,
+                group_name = inputData.groupName)
+            meshJobParameterList.append(parameter)
+
+        jobManager = self.__getJobManager()
+        self.__jobid = jobManager.initialize(meshJobParameterList, self.__configId)
+        if self.__jobid < 0:
+            self.__log("ERR: the job can't be initialized")
+            return
+        self.__log("INF: the job has been initialized with jobid = "+str(self.__jobid))
+        
+        startOk = jobManager.start(self.__jobid)
+        if not startOk:
+            self.__log("ERR: the job with jobid = "+str(self.__jobid)+" can't be started")
+            return
+        self.__log("INF: the job "+str(self.__jobid)+" has been started")
+        self.__ui.lblStatusBar.setText("Submission OK")
+        self.__setGuiState(["CAN_REFRESH"])
+        self.__isRunning = True
+
+    def onRefresh(self):
+        """
+        This function is the slot connected on the Refresh button. It
+        requests the mesh job manager to get the state of the job and
+        display it in the log area.
+        """
+        jobManager = self.__getJobManager()
+        state = jobManager.getState(self.__jobid)
+        self.__log("INF: job state = "+str(state))
+        self.__ui.lblStatusBar.setText("")
+        if state in run_states:
+            return
+
+        self.__isRunning = False
+        if state == "FINISHED":
+            self.__setGuiState(["CAN_PUBLISH"])
+        else:
+            self.__setGuiState(["CAN_SELECT"])
+
+
+    def onPublish(self):
+        """
+        This function is the slot connected on the Publish button. It
+        requests the mesh job manager to download the results data
+        from the computation resource host and load the med file in
+        the SALOME study. 
+        """
+        jobManager = self.__getJobManager()
+        state = jobManager.getState(self.__jobid)
+        if state in run_states:
+            self.__log("WRN: jobid = "+str(self.__jobid)+" is not finished (state="+str(state)+")")
+            return
+
+        if state not in end_states:
+            self.__log("ERR: jobid = "+str(self.__jobid)+" ended abnormally with state="+str(state))
+            return
+
+        meshJobResults = jobManager.finalize(self.__jobid)
+        if state == "ERROR":
+            self.__log("ERR: jobid = "+str(self.__jobid)+" ended with error: "+meshJobResults.status)
+            return
+
+        logsdirname = os.path.join(meshJobResults.results_dirname, "logs")
+        self.__log("INF:  jobid="+str(self.__jobid)+" ended normally   : "+meshJobResults.status)
+        self.__log("INF:  jobid="+str(self.__jobid)+" see log files in : "+logsdirname)
+
+        medfilename = os.path.join(meshJobResults.results_dirname,
+                                   meshJobResults.outputmesh_filename)
+
+        smesh.SetCurrentStudy(studyedit.getActiveStudy())
+        ([outputMesh], status) = smesh.CreateMeshesFromMED(medfilename)
+
+        # By convention, the name of the output mesh in the study is
+        # build from a constant string 'padder' and the session jobid
+        meshname = 'padder_'+str(self.__jobid)
+        smesh.SetName(outputMesh.GetMesh(), meshname)
+        if salome.sg.hasDesktop():
+            salome.sg.updateObjBrowser(0)
+
+        self.__ui.lblStatusBar.setText("Publication OK")
+        self.__setGuiState(["CAN_SELECT"])
+
+    def onClear(self):
+        """
+        This function is the slot connected on the Clear button. It
+        erases data in the dialog box and cancel the current job if
+        one is running.
+        """
+        self.clear()
+        
+
+
+__dialog=None
+def getDialog():
+    """
+    This function returns a singleton instance of the plugin dialog. 
+    """
+    global __dialog
+    if __dialog is None:
+        __dialog = PluginDialog()
+    return __dialog
+
+#
+# ==============================================================================
+# Basic use cases and unit test functions
+# ==============================================================================
+#
+def TEST_PluginDialog():
+    import sys
+    from PyQt4.QtGui import QApplication
+    from PyQt4.QtCore import QObject, SIGNAL, SLOT
+    app = QApplication(sys.argv)
+    QObject.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
+
+    dlg=PluginDialog()
+    dlg.exec_()
+
+if __name__ == "__main__":
+    TEST_PluginDialog()
+
+        
+
diff --git a/src/Tools/padder/spadderpy/gui/plugindialog.ui b/src/Tools/padder/spadderpy/gui/plugindialog.ui
new file mode 100644 (file)
index 0000000..69b65f6
--- /dev/null
@@ -0,0 +1,159 @@
+<ui version="4.0" >
+ <class>PluginDialog</class>
+ <widget class="QDialog" name="PluginDialog" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>417</width>
+    <height>367</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Create a mesh with PADDER</string>
+  </property>
+  <layout class="QHBoxLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item>
+    <layout class="QVBoxLayout" >
+     <property name="margin" >
+      <number>0</number>
+     </property>
+     <property name="spacing" >
+      <number>6</number>
+     </property>
+     <item>
+      <widget class="QFrame" name="frameInput" >
+       <property name="frameShadow" >
+        <enum>QFrame::Raised</enum>
+       </property>
+       <property name="lineWidth" >
+        <number>1</number>
+       </property>
+       <property name="midLineWidth" >
+        <number>0</number>
+       </property>
+       <layout class="QHBoxLayout" >
+        <property name="margin" >
+         <number>9</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <layout class="QHBoxLayout" >
+       <property name="margin" >
+        <number>0</number>
+       </property>
+       <property name="spacing" >
+        <number>6</number>
+       </property>
+       <item>
+        <widget class="QTextEdit" name="txtLog" />
+       </item>
+       <item>
+        <layout class="QVBoxLayout" >
+         <property name="margin" >
+          <number>0</number>
+         </property>
+         <property name="spacing" >
+          <number>6</number>
+         </property>
+         <item>
+          <widget class="QPushButton" name="btnInput" >
+           <property name="text" >
+            <string>Input</string>
+           </property>
+           <property name="icon" >
+            <iconset>parameters.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="btnCompute" >
+           <property name="text" >
+            <string>Compute</string>
+           </property>
+           <property name="icon" >
+            <iconset>compute.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="btnRefresh" >
+           <property name="text" >
+            <string>Refresh</string>
+           </property>
+           <property name="icon" >
+            <iconset>refresh.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="btnPublish" >
+           <property name="text" >
+            <string>Publish</string>
+           </property>
+           <property name="icon" >
+            <iconset>publish.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer>
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" >
+            <size>
+             <width>75</width>
+             <height>101</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item>
+          <widget class="QPushButton" name="btnClear" >
+           <property name="text" >
+            <string>Clear</string>
+           </property>
+           <property name="icon" >
+            <iconset>clear.png</iconset>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <widget class="QLabel" name="lblStatusBar" >
+       <property name="enabled" >
+        <bool>true</bool>
+       </property>
+       <property name="frameShape" >
+        <enum>QFrame::StyledPanel</enum>
+       </property>
+       <property name="frameShadow" >
+        <enum>QFrame::Sunken</enum>
+       </property>
+       <property name="text" >
+        <string/>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/Tools/padder/spadderpy/gui/publish.png b/src/Tools/padder/spadderpy/gui/publish.png
new file mode 100644 (file)
index 0000000..bfe8802
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/publish.png differ
diff --git a/src/Tools/padder/spadderpy/gui/refresh.png b/src/Tools/padder/spadderpy/gui/refresh.png
new file mode 100644 (file)
index 0000000..2683e98
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/refresh.png differ
diff --git a/src/Tools/padder/spadderpy/gui/select.png b/src/Tools/padder/spadderpy/gui/select.png
new file mode 100644 (file)
index 0000000..8eea6a9
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/select.png differ
diff --git a/src/Tools/padder/spadderpy/gui/steelbar.png b/src/Tools/padder/spadderpy/gui/steelbar.png
new file mode 100644 (file)
index 0000000..ce27fe3
Binary files /dev/null and b/src/Tools/padder/spadderpy/gui/steelbar.png differ
diff --git a/src/Tools/padder/spadderpy/padder.cfg.in b/src/Tools/padder/spadderpy/padder.cfg.in
new file mode 100644 (file)
index 0000000..d1ef795
--- /dev/null
@@ -0,0 +1,35 @@
+# This section specify the configurations to be used respectively for
+# the local execution and the remote execution. The value for 'local'
+# and 'remote' keys must be the name of a configuration section in
+# this file. The default key must specify a value between "local" or
+# "remote" to indicate the user preference. 
+[resources]
+local   = localhost
+remote  = nepal
+
+[preferences]
+defaultres = local
+
+# The following sections defines the available configurations.
+# The name of the section can be choosen arbitrary. But the value of
+# the resname key MUST be the name of a SALOME resource defined in the
+# catalog of resources (CatalogResources.xml).
+
+# For each section:
+# - resname : the name of the SALOME resource to be used in this configuration
+# - binpath : the path to the padder executable program on this resource
+# - envpath : the path to the environment file on this resource
+[localhost]
+resname = localhost
+binpath = @prefix@/share/salome/resources/spadder/padderexe/padder.exe
+envpath = @prefix@/share/salome/resources/spadder/padderexe/envPadder.sh
+
+[venus]
+resname = gboulant@venus
+binpath = /usr/local/bin/padder.exe
+envpath = /usr/local/share/envPadder.sh
+
+[nepal]
+resname = nepal@nepal
+binpath = /usr/local/bin/padder.exe
+envpath = /usr/local/share/envPadder.sh
diff --git a/src/Tools/padder/spadderpy/plugin/Makefile.am b/src/Tools/padder/spadderpy/plugin/Makefile.am
new file mode 100644 (file)
index 0000000..3fbef14
--- /dev/null
@@ -0,0 +1,12 @@
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+#
+# Files that strictly concern the SALOME plugins registration and
+# configuration. They are installed in a dedicated folder named
+# plugins and created in the root installation directory.
+#
+salomeplugins_PYTHON = \
+       salome_plugins.py
+
+salomeplugins_DATA = \
+       envPlugins.sh
diff --git a/src/Tools/padder/spadderpy/plugin/envPlugins.sh.in b/src/Tools/padder/spadderpy/plugin/envPlugins.sh.in
new file mode 100644 (file)
index 0000000..a90477d
--- /dev/null
@@ -0,0 +1,3 @@
+SPADDER_PLUGINS_PATH=@prefix@/plugins
+export SALOME_PLUGINS_PATH=$SALOME_PLUGINS_PATH:$SPADDER_PLUGINS_PATH
+
diff --git a/src/Tools/padder/spadderpy/plugin/salome_plugins.py b/src/Tools/padder/spadderpy/plugin/salome_plugins.py
new file mode 100755 (executable)
index 0000000..62ad634
--- /dev/null
@@ -0,0 +1,36 @@
+# -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# -* Makefile *- 
+#
+# Author : Guillaume Boulant (EDF) 
+#
+import salome_pluginsmanager
+
+
+def runSpadderPlugin(context):
+    from salome.smesh.spadder.gui import plugindialog
+    dialog=plugindialog.getDialog()
+    dialog.update()
+    dialog.show()
+
+salome_pluginsmanager.AddFunction('PADDER mesher',
+                                  'Create a mesh with PADDER',
+                                  runSpadderPlugin)
+
diff --git a/src/Tools/padder/unittests/Makefile.am b/src/Tools/padder/unittests/Makefile.am
new file mode 100644 (file)
index 0000000..33d0b59
--- /dev/null
@@ -0,0 +1,11 @@
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+spadderpydir=$(smeshpypkgdir)/spadder/unittests
+
+spadderpy_PYTHON = \
+       __init__.py            \
+       usecase_meshJobManager.py
+
+spadderbindir=$(bindir)/spadder
+spadderbin_SCRIPTS = \
+       autotest.sh
diff --git a/src/Tools/padder/unittests/__init__.py b/src/Tools/padder/unittests/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/Tools/padder/unittests/autotest.sh.in b/src/Tools/padder/unittests/autotest.sh.in
new file mode 100644 (file)
index 0000000..c5a9cf7
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+#  Copyright (C) 2010  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# -* Makefile *- 
+#
+# Author : Guillaume Boulant (EDF) 
+#
+
+
+# This script should be executed in a SALOME shell session,
+# for example the shell obtained from the command runSession
+# provided by the SALOME application.
+
+# This list contains the filenames where test suites are to be
+# executed. The path are defined relative to the PYTHON installation
+# directory of the SALOME module.
+listfiles="\
+    configreader.py \
+    unittests/test_meshJobManager.py \
+    gui/inputdata.py"
+
+INSTALL_DIR=@prefix@
+PYTHON_DIR=$INSTALL_DIR/lib/python@PYTHON_VERSION@/site-packages/salome
+PYTHONPATH=$PYTHON_DIR:$PYTHONPATH
+export PYTHONPATH
+
+stderr=2
+while getopts 'ql' OPTION
+do
+    case $OPTION in
+       q) stderr=1 ;;
+       l) for f in $listfiles; do echo $f; done; exit 0;;
+       ?) printf "Usage: %s: [-q] [-l]\n" $(basename $0) >&2; exit 2;;
+    esac
+done
+shift $(($OPTIND - 1))
+
+here=$(pwd)
+package_path="salome/smesh/spadder"
+cd $PYTHON_DIR
+for file in $listfiles; do
+    # Uncomment this line (and comment the next one) to display
+    # the start line of a test and not only the result:
+    python $package_path/$file 2>&$stderr | grep '^\[TEST'
+    #python $package_path/$file $filter | grep '^\[TEST' | grep -v 'test in progress'
+done
+cd $here
diff --git a/src/Tools/padder/unittests/usecase_meshJobManager.py b/src/Tools/padder/unittests/usecase_meshJobManager.py
new file mode 100644 (file)
index 0000000..e9e4a33
--- /dev/null
@@ -0,0 +1,98 @@
+# -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2011 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author(s): Guillaume Boulant (23/03/2011)
+#
+
+# This script illustrates the standard use case of the component
+# MeshJobManager from within a SALOME script.
+
+
+#
+# Preparing the configuration parameters
+#
+import os
+from salome.smesh import spadder
+pathpadderexe=os.path.join(spadder.getTestDataDir(),"padder.exe")
+pathpadderenv=os.path.join(spadder.getTestDataDir(),"envPadder.sh")
+file_concrete=os.path.join(spadder.getTestDataDir(),"concrete.med")
+file_steelbar=os.path.join(spadder.getTestDataDir(),"ferraill.med")
+
+import salome
+import MESHJOB
+
+#
+# Setup the configuration in the component. When first have to load
+# the catalog of SPADDER components, then load the component
+# MeshJobManager, and finally configure this component.
+#
+from salome.smesh import spadder
+spadder.loadSpadderCatalog()
+component = salome.lcc.FindOrLoadComponent("FactoryServer","MeshJobManager")
+config = MESHJOB.ConfigParameter(resname="localhost",
+                                 binpath=pathpadderexe,
+                                 envpath=pathpadderenv)
+component.configure("localhost",config)
+
+#
+# Prepare the job parameters and initialize the job
+#
+meshJobParameterList = []
+param = MESHJOB.MeshJobParameter(file_name=file_concrete,
+                                 file_type=MESHJOB.MED_CONCRETE,
+                                 group_name="concrete")
+meshJobParameterList.append(param)
+
+param = MESHJOB.MeshJobParameter(file_name=file_steelbar,
+                                 file_type=MESHJOB.MED_STEELBAR,
+                                 group_name="steelbar")
+meshJobParameterList.append(param)
+jobid = component.initialize(meshJobParameterList, "localhost")
+
+#
+# Start the execution of the job identified by its job id.
+#
+component.start(jobid)
+
+
+#
+# This part illustrates how you can follow the execution of the job.
+#
+run_states = ["CREATED", "IN_PROCESS", "QUEUED", "RUNNING", "PAUSED"];
+end_states = ["FINISHED", "ERROR"]
+all_states = run_states+end_states;
+
+ended  = False
+nbiter = 0
+import time
+while not ended:
+    state = component.getState(jobid)
+    print "MeshJobManager ["+str(nbiter)+"] : state = "+str(state)
+    if state not in run_states:
+        ended=True
+    time.sleep(0.5)
+    nbiter+=1
+        
+if state not in end_states:
+    print "ERR: jobid = "+str(jobid)+" ended abnormally with state="+str(state)
+else:
+    print "OK:  jobid = "+str(jobid)+" ended with state="+str(state)
+    meshJobResults = component.finalize(jobid)
+    print meshJobResults
+    print "You will find the results files in the directory:\n%s"%meshJobResults.results_dirname