]> SALOME platform Git repositories - tools/install.git/commitdiff
Salome HOME
Merge from SALOME2 branch after_merge_from_SALOME2
authorvsr <vsr@opencascade.com>
Thu, 17 Feb 2005 12:15:49 +0000 (12:15 +0000)
committervsr <vsr@opencascade.com>
Thu, 17 Feb 2005 12:15:49 +0000 (12:15 +0000)
81 files changed:
README
bin/SALOME_InstallWizard
config.xml
config_RedHat8_0.xml
config_RedHat8_0_with_Mesa.xml
config_files/COMPONENT_BIN_2.1.0.sh [deleted file]
config_files/COMPONENT_BIN_2.2.0.sh [new file with mode: 0755]
config_files/COMPONENT_SRC_2.1.0.sh [deleted file]
config_files/COMPONENT_SRC_2.2.0.sh [new file with mode: 0755]
config_files/GEOM_BIN_2.1.0.sh [deleted file]
config_files/GEOM_BIN_2.2.0.sh [new file with mode: 0755]
config_files/GEOM_SRC_2.1.0.sh [deleted file]
config_files/GEOM_SRC_2.2.0.sh [new file with mode: 0755]
config_files/GHS3DPLUGIN_BIN_2.1.0.sh [deleted file]
config_files/GHS3DPLUGIN_BIN_2.2.0.sh [new file with mode: 0755]
config_files/GHS3DPLUGIN_SRC_2.1.0.sh [deleted file]
config_files/GHS3DPLUGIN_SRC_2.2.0.sh [new file with mode: 0755]
config_files/HELLO1_SRC_2.2.0.sh [new file with mode: 0755]
config_files/KERNEL_BIN_2.1.0.sh [deleted file]
config_files/KERNEL_BIN_2.2.0.sh [new file with mode: 0755]
config_files/KERNEL_SRC_2.1.0.sh [deleted file]
config_files/KERNEL_SRC_2.2.0.sh [new file with mode: 0755]
config_files/MED_BIN_2.1.0.sh [deleted file]
config_files/MED_BIN_2.2.0.sh [new file with mode: 0755]
config_files/MED_SRC_2.1.0.sh [deleted file]
config_files/MED_SRC_2.2.0.sh [new file with mode: 0755]
config_files/NETGENPLUGIN_BIN_2.1.0.sh [deleted file]
config_files/NETGENPLUGIN_BIN_2.2.0.sh [new file with mode: 0755]
config_files/NETGENPLUGIN_SRC_2.1.0.sh [deleted file]
config_files/NETGENPLUGIN_SRC_2.2.0.sh [new file with mode: 0755]
config_files/PYCALCULATOR_BIN_2.1.0.sh [deleted file]
config_files/PYCALCULATOR_BIN_2.2.0.sh [new file with mode: 0755]
config_files/PYCALCULATOR_SRC_2.1.0.sh [deleted file]
config_files/PYCALCULATOR_SRC_2.2.0.sh [new file with mode: 0755]
config_files/PYHELLO1_SRC_2.2.0.sh [new file with mode: 0755]
config_files/SMESH_BIN_2.1.0.sh [deleted file]
config_files/SMESH_BIN_2.2.0.sh [new file with mode: 0755]
config_files/SMESH_SRC_2.1.0.sh [deleted file]
config_files/SMESH_SRC_2.2.0.sh [new file with mode: 0755]
config_files/SUPERV_BIN_2.1.0.sh [deleted file]
config_files/SUPERV_BIN_2.2.0.sh [new file with mode: 0755]
config_files/SUPERV_SRC_2.1.0.sh [deleted file]
config_files/SUPERV_SRC_2.2.0.sh [new file with mode: 0755]
config_files/VISU_BIN_2.1.0.sh [deleted file]
config_files/VISU_BIN_2.2.0.sh [new file with mode: 0755]
config_files/VISU_SRC_2.1.0.sh [deleted file]
config_files/VISU_SRC_2.2.0.sh [new file with mode: 0755]
config_files/VTK-4.2.2.sh
config_files/build.csh [new file with mode: 0755]
config_files/common.sh
config_files/gcc-3.2.sh
config_files/med-2.2.2.sh [new file with mode: 0755]
config_files/netgen4.3.sh
config_files/tcltk8.3.3.sh
doc/application.png
doc/choicepage.png
doc/productpage.png
doc/progresspage.png
doc/readme.html
doc/readmepage.png
runInstall
src/InstallWizard.cpp
src/InstallWizard.h
src/LICENSE.QPL [new file with mode: 0644]
src/Makefile
src/README.txt
src/SALOME_HelpWindow.cxx
src/SALOME_HelpWindow.hxx
src/SALOME_INSTALL.pro
src/SALOME_InstallWizard.cxx
src/SALOME_InstallWizard.hxx
src/SALOME_ProductsView.cxx
src/SALOME_ProductsView.hxx
src/SALOME_ProgressView.cxx
src/SALOME_ProgressView.hxx
src/SALOME_XmlHandler.cxx
src/SALOME_XmlHandler.hxx
src/env.csh
src/globals.h [new file with mode: 0644]
src/icons.h
src/main.cxx

diff --git a/README b/README
index b91bb34c33d55a912a8eeed10c652083691200e3..6b6bdbe7ab3857a41634b9067fe2b747a99d5b26 100644 (file)
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
 ================================================================================
                                      README
-                         PAL/SALOME Installation Wizard
+                           SALOME Installation Wizard
 ================================================================================
 
   Contents of this file:
@@ -17,6 +17,8 @@
      3.3. Testing of the installed SALOME platform
 
   4. How to build SALOME modules from sources
+     4.1. General procedure
+     4.2. Automatic build procedure: build.csh script
 
 ================================================================================
 
                source salome.csh
 
           where <KERNEL_ROOT_DIR> is KERNEL binaries directory, e.g. 
-          KERNEL_2.1.0 for the 2.1.0 version.
+          KERNEL_2.2.0 for the 2.2.0 version.
 
      2.2. Launching of SALOME
        
           After you set environment you can start SALOME. Go to the KERNEL 
-          module's binaries directory (KERNEL_2.1.0/bin/salome for the version 
-          2.1.0) by using of cd command and then type:
+          module's binaries directory (KERNEL_2.2.0/bin/salome for the version 
+          2.2.0) by using of cd command and then type:
 
                runSalome [<parameters>]
 
           This will start SALOME according to the configuration parameters which
           are described into salome.launch file, located in your home directory
           ( $HOME/.salome_<version-number>/salome.launch ),
-          where <version_number> is number of PAL/SALOME version.
+          where <version_number> is number of SALOME version.
 
           If this file does not exists, it is created on the first launch of 
           SALOME from <KERNEL_ROOT_DIR>/bin/salome/salome.launch.
           --killall
                 Kill SALOME, running on all ports
           --modules=<module>,<module>,...,<module>
-                Use module(s), possible values are GEOM, SMESH, VISU, MED, SUPERV
+                Use module(s), possible values are GEOM,SMESH,VISU,MED,SUPERV
           --embedded=<container>,<container>,...<container>
                 Start specified container(s) embedded in SALOME Session server 
-                (i.e. running in the same process), possible values are registry, study, 
-                moduleCatalog, cppContainer, pyContainer, supervContainer
+                (i.e. running in the same process), possible values are registry, 
+                study, moduleCatalog, cppContainer, pyContainer, supervContainer
           --standalone=<container>,<container>,...<container>
-                Start standalone container(s), possible values are registry, study, 
-                moduleCatalog, cppContainer, pyContainer, supervContainer
+                Start standalone container(s), possible values are registry, 
+                study, moduleCatalog, cppContainer, pyContainer, supervContainer
 
           Note that there is no key which corresponds to the <plugin> tag.
           This tag can be used currently only for SMESH module to point external 
 
   4. How to build SALOME modules from sources
 
-     If you want to build SALOME modules from sources, install all products
-     necessary for the platform and then follow the scenario described below.
-     In the sample scenario it is supposed that you have installed SALOME
-     modules sources in the /home/salome directory. The name of each module's
-     sources directory depends on the version of the platform, for example,
-     KERNEL_SRC_2.1.0 for KERNEL module of PAL/SALOME version 2.1.0.
+     This section describes the way how to build SALOME modules manually from
+     sources packages provided with Installation Wizard.
+     4.1. General procedure
 
-     The order of compilation and installation should be performed in accordance
-     with modules dependancies:
+          If you want to build SALOME modules from sources, install all products
+          necessary for the platform and SALOME modules sources.
+          Then follow the scenario described below.
+          In the scenario below it is supposed that you have installed SALOME
+          modules sources in the /home/salome directory. The name of each module
+          sources directory depends on the version of the platform, for example,
+          KERNEL_SRC_2.2.0 for KERNEL module of SALOME version 2.2.0.
+
+          The order of compilation and installation should be performed according 
+          to the dependancies between modules:
      
           * KERNEL -> no dependancies
           * GEOM -> KERNEL
           * NETGENPLUGIN -> KERNEL, SMESH
           * GHS3DPLUGIN -> KERNEL, SMESH
 
-     Note: NETGENPLUGIN, GHS3DPLUGIN are optional components. You may skip compiling them if
-     you do not plan to use NETGEN and/or GHS3D  mesher algorithms.
-     In general, each module (except KERNEL, of course) is optional for SALOME.
-     If you do not need any module, just do not compile or install it.
+          Note: NETGENPLUGIN, GHS3DPLUGIN are optional components. You may skip 
+          compiling them if you do not plan to use NETGEN and/or GHS3D mesher 
+          algorithms.
+          In general, each module (except KERNEL, of course) is optional for 
+          SALOME. If you do not need any module, just do not compile or install
+          it. But remember that some modules require other ones to be built first 
+          (see dependancies table above).
+
+          - go to KERNEL module's sources directory:
+
+               cd /home/salome/KERNEL_SRC_2.2.0
+
+          - set environment variables (use bash or csh script, depending on 
+            your shell):
+
+               source salome.csh
+            or
+               source salome.sh
 
-     - go to KERNEL module's sources directory:
+          - create a configuration script by typing
 
-          cd /home/salome/KERNEL_SRC_2.1.0
+               ./build_configure
 
-     - set environment variables (use bash or csh script, depending on 
-       your shell):
+          - go to the parent directory and create build directory:
 
-          source salome.c[s]h
+               cd ..
+               mkdir KERNEL_build
 
-     - create a configuration script by typing
+          - run configure script which will check the environment and create 
+           Makefile files:
 
-          ./build_configure
+               cd KERNEL_build
+               ../KERNEL_SRC_2.2.0/configure --prefix=/home/salome/KERNEL_install
 
-     - go to the parent directory and create build directory:
+          Note, that --prefix option defines the directory where you want to 
+          install KERNEL module after 'make install' procedure.
+          More about certain module's configure options you can learn by using
+          --help (-h) parameter.
 
-          cd ..
-          mkdir KERNEL_build
+          - build and install KERNEL module:
 
-     - configure the sources and create Makefile files:
+               make
+               make install
 
-          cd KERNEL_build
-          ../KERNEL_SRC_2.1.0/configure --prefix=/home/salome/KERNEL_install
+          After you have completed this scenario, KERNEL module is built and 
+          installed into /home/salome/KERNEL_install directory.
 
-     Note, that --prefix option defines the directory where you want to install
-     KERNEL module after make install procedure.
-     More about certain module's configure options you can learn by typing
-     --help (-h) parameter.
+          - set environment:
 
-     - build and install KERNEL module:
+          * for bash:
 
-          make
-          make install
+               export KERNEL_ROOT_DIR=/home/salome/KERNEL_install
+            or 
+               export KERNEL_ROOT_DIR=/home/salome/KERNEL_build
+               (if make install step was not performed).
 
-       After you have completed this scenario, KERNEL module is built and 
-       installed into /home/salome/KERNEL_install directory.
+          * for csh:
 
-     - set environment:
+               setenv KERNEL_ROOT_DIR /home/salome/KERNEL_install
+            or 
+               setenv KERNEL_ROOT_DIR /home/salome/KERNEL_build
+               (if make install step was not performed).
 
-       * for bash:
-          export KERNEL_ROOT_DIR=/home/salome/KERNEL_install
-       or 
-          export KERNEL_ROOT_DIR=/home/salome/KERNEL_build
-          (if make install step was not performed).
+          - then repeat this scenario for other modules you want to build taking 
+            into account the dependancies between modules (see dependancies table
+            above).
 
-       * for csh:
-          setenv KERNEL_ROOT_DIR /home/salome/KERNEL_install
-       or 
-          setenv KERNEL_ROOT_DIR /home/salome/KERNEL_build
-          (if make install step was not performed).
+          Note: if the compilation fails it may be caused by bad environment. 
+          In this case you should check that environment script you use 
+          (salome.csh or salome.sh) contains the following lines for each module:
 
-     - then repeat this scenario for other modules you want to build in accordance
-       with modules dependancies.
+          * for bash:
 
-     Note: if the compilation fails it may be caused by poor environment. 
-     In this case you should check that environment script you use (salome.csh
-     or salome.sh) contains the following lines for each module:
+               export PATH=${<module>_ROOT_DIR}/bin/salome:${PATH}
+               export LD_LIBRARY_PATH=${<module>_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
+               export PYTHONPATH=${<module>_ROOT_DIR}/bin/salome:${PYTHONPATH}
+               export PYTHONPATH=${<module>_ROOT_DIR}/lib/salome:${PYTHONPATH}
+               export PYTHONPATH=${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome:${PYTHONPATH}
+               export PYTHONPATH=${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:${PYTHONPATH}
 
-        * for bash:
-          export PATH=${<module>_ROOT_DIR}/bin/salome:${PATH}
-          export LD_LIBRARY_PATH=${<module>_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
-          export PYTHONPATH=${<module>_ROOT_DIR}/bin/salome:${PYTHONPATH}
-          export PYTHONPATH=${<module>_ROOT_DIR}/lib/salome:${PYTHONPATH}
-          export PYTHONPATH=${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome:${PYTHONPATH}
-          export PYTHONPATH=${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:${PYTHONPATH}
+          * for csh:
 
-        * for csh:
-          setenv PATH ${<module>_ROOT_DIR}/bin/salome:${PATH}
-          setenv LD_LIBRARY_PATH ${<module>_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
-          setenv PYTHONPATH ${<module>_ROOT_DIR}/bin/salome:${PYTHONPATH}
-          setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/salome:${PYTHONPATH}
-          setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome:${PYTHONPATH}
-          setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:${PYTHONPATH}
+               setenv PATH ${<module>_ROOT_DIR}/bin/salome:${PATH}
+               setenv LD_LIBRARY_PATH ${<module>_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
+               setenv PYTHONPATH ${<module>_ROOT_DIR}/bin/salome:${PYTHONPATH}
+               setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/salome:${PYTHONPATH}
+               setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome:${PYTHONPATH}
+               setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:${PYTHONPATH}
      
+     4.2. Automatic build procedure: build.csh script
+
+          From version 2.2.0 SALOME Installation Wizard provides the script
+          for automatic building of SALOME modules from sources packages:
+          build.csh. It is installed into the top-level target directory
+          (the same directory where env_products.[c]sh files are generated.
+
+          To use this script just install SALOME sources packages with
+          Installation Wizard, then cd to the SALOME isntallation directory
+          and type:
+
+               ./build.csh
+
+          and that's all.
+          
+          By default, build.csh only compiles the modules but not installs them,
+          i.e. does not perform 'make install' step.
+          To do this, use -i option or -p <prefix> where <prefix> is target
+          directory.
+
+          If you want to build only some SALOME modules, just pass them as 
+          parameters, e.g.:
+
+               ./build.csh -i KERNEL MED GEOM
+
+          The script also provides some other options which specify compiling
+          and installation parameters. You can learn about options by using
+          -h key:
+
+               ./build.csh -h
+
+          When you run build.csh at first time it is not necessary to pass 
+          -b, -c parameters. The script detects if build procedure has not yet
+          been performed and runs build_configure, configure procedures
+          in this case.
+
+          Note: for avoiding of collisions it is recommended not to install 
+          SALOME binaries packages with Installation Wizard if you plan to build
+          SALOME modules from sources packages or to edit/comment all rows
+          in env_products.csh file concerning binaries packages.
+
+          Note: use -d option carefully because in this case the script removes
+          existing (previously installed) SALOME modules.
+
 ================================================================================
index 050b5d99d1955bdf8d2988bc899c2e30fddcd8dc..626e8b612a91a3463002820339d0c0af1af19bcb 100755 (executable)
Binary files a/bin/SALOME_InstallWizard and b/bin/SALOME_InstallWizard differ
index 7cd6a05d08263fac76bd411179dfce75b3c39b61..ba6e237810de2718b8a24d420462892461069472 100644 (file)
@@ -1,8 +1,8 @@
 <document>
-  <config version="2.1.0"
-         caption="PAL/SALOME v%1"
-          copyright="Copyright (C) 2004 CEA"
-          license="All right reserved"
+  <config version="2.2.0"
+         caption="SALOME v%1"
+          copyright="&lt;h5>Copyright (C) 2003-2005 OPEN CASCADE,&lt;br>EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&amp;D,&lt;br>LEG, PRINCIPIA R&amp;D, BUREAU VERITAS&lt;/h5>"
+          license="&lt;h5>GNU LGPL&lt;/h5>"
          os="RedHat8.0"/>
   <path targetdir="/tmp/salome"
         tempdir="/tmp"/>
@@ -98,7 +98,7 @@
           script="SWIG-1.3.17.sh"/>
   <product name="OpenCascade" 
            version="5.2" 
-           description="Open CASCADE version 5.2 with patch for PAL/SALOME 2.1.0"
+           description="Open CASCADE version 5.2 with patch for SALOME 2.2.0"
            install="install binaries"
           supported="install binaries"
           disable="false"
            description="MED format interface library"
            install="install binaries"
           supported="install sources,install binaries"
-          disable="false"
+          disable="true"
           dependancies="gcc,Hdf"
           installdiskspace="1067"
           temporarydiskspace="7971"
           script="med-2.1.6.sh"/>
+  <product name="Med"
+           version="2.2.2" 
+           description="MED format interface library"
+           install="install binaries"
+          supported="install sources,install binaries"
+          disable="false"
+          dependancies="gcc,Hdf"
+          installdiskspace="18215"
+          temporarydiskspace="38100"
+          script="med-2.2.2.sh"/>
   <product name="Vtk"
            version="4.2" 
            description="Image processing, 3D graphics and visualization software system"
           temporarydiskspace="61528"
           script="graphviz-1.9.sh"/>
   <product name="KERNEL-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform KERNEL module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform KERNEL module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
-          installdiskspace="28107"
+          installdiskspace="28814"
           temporarydiskspace="0"
            pickupenv="true"
-          script="KERNEL_SRC_2.1.0.sh"/>
+          script="KERNEL_SRC_2.2.0.sh"/>
   <product name="KERNEL-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform KERNEL module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform KERNEL module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
-          installdiskspace="51202"
+          installdiskspace="58465"
           temporarydiskspace="0"
            pickupenv="true"
-          script="KERNEL_BIN_2.1.0.sh"/>
+          script="KERNEL_BIN_2.2.0.sh"/>
   <product name="GEOM-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform GEOM modules sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform GEOM modules sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="7569"
+          installdiskspace="10619"
           temporarydiskspace="0"
-          script="GEOM_SRC_2.1.0.sh"/>
+          script="GEOM_SRC_2.2.0.sh"/>
   <product name="GEOM-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform GEOM module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform GEOM module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="24695"
+          installdiskspace="31703"
           temporarydiskspace="0"
-          script="GEOM_BIN_2.1.0.sh"/>
+          script="GEOM_BIN_2.2.0.sh"/>
   <product name="MED-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform MED module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform MED module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="11463"
+          installdiskspace="17744"
           temporarydiskspace="0"
-          script="MED_SRC_2.1.0.sh"/>
+          script="MED_SRC_2.2.0.sh"/>
   <product name="MED-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform MED module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform MED module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="27964"
+          installdiskspace="38484"
           temporarydiskspace="0"
-          script="MED_BIN_2.1.0.sh"/>
+          script="MED_BIN_2.2.0.sh"/>
   <product name="SMESH-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform SMESH module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform SMESH module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,GEOM-Src,MED-Src"
-          installdiskspace="8943"
+          installdiskspace="10907"
           temporarydiskspace="0"
-          script="SMESH_SRC_2.1.0.sh"/>
+          script="SMESH_SRC_2.2.0.sh"/>
   <product name="SMESH-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform SMEHS module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform SMEHS module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,GEOM-Bin,MED-Bin"
-          installdiskspace="30631"
+          installdiskspace="36662"
           temporarydiskspace="0"
-          script="SMESH_BIN_2.1.0.sh"/>
+          script="SMESH_BIN_2.2.0.sh"/>
   <product name="VISU-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform VISU module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform VISU module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,MED-Src"
-          installdiskspace="6572"
+          installdiskspace="6558"
           temporarydiskspace="0"
-          script="VISU_SRC_2.1.0.sh"/>
+          script="VISU_SRC_2.2.0.sh"/>
   <product name="VISU-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform VISU module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform VISU module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,MED-Bin"
-          installdiskspace="19116"
+          installdiskspace="20372"
           temporarydiskspace="0"
-          script="VISU_BIN_2.1.0.sh"/>
+          script="VISU_BIN_2.2.0.sh"/>
   <product name="SUPERV-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform SUPERV module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform SUPERV module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="6300"
+          installdiskspace="7476"
           temporarydiskspace="0"
-          script="SUPERV_SRC_2.1.0.sh"/>
+          script="SUPERV_SRC_2.2.0.sh"/>
   <product name="SUPERV-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform SUPERV module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform SUPERV module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="52344"
+          installdiskspace="53744"
           temporarydiskspace="0"
-          script="SUPERV_BIN_2.1.0.sh"/>
+          script="SUPERV_BIN_2.2.0.sh"/>
   <product name="COMPONENT-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform COMPONENT module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform COMPONENT module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="278"
+          installdiskspace="323"
           temporarydiskspace="0"
-          script="COMPONENT_SRC_2.1.0.sh"/>
+          script="COMPONENT_SRC_2.2.0.sh"/>
   <product name="COMPONENT-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform COMPONENT module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform COMPONENT module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="13576"
+          installdiskspace="14000"
           temporarydiskspace="0"
-          script="COMPONENT_BIN_2.1.0.sh"/>
+          script="COMPONENT_BIN_2.2.0.sh"/>
   <product name="PYCALCULATOR-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform PYCALCULATOR module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform PYCALCULATOR module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="28"
+          installdiskspace="147"
           temporarydiskspace="0"
-          script="PYCALCULATOR_SRC_2.1.0.sh"/>
+          script="PYCALCULATOR_SRC_2.2.0.sh"/>
   <product name="PYCALCULATOR-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform PYCALCULATOR module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform PYCALCULATOR module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
           installdiskspace="27"
           temporarydiskspace="0"
-          script="PYCALCULATOR_BIN_2.1.0.sh"/>
+          script="PYCALCULATOR_BIN_2.2.0.sh"/>
   <product name="NETGENplugin-Src" 
-           version="2.1.0" 
-           description="PAL/SALOME platform NETGEN meshing algorithm plugin sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform NETGEN meshing algorithm plugin sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,netgen,KERNEL-Src,SMESH-Src"
           installdiskspace="91"
           temporarydiskspace="0"
-          script="NETGENPLUGIN_SRC_2.1.0.sh"/>
+          script="NETGENPLUGIN_SRC_2.2.0.sh"/>
   <product name="NETGENplugin-Bin" 
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform NETGEN meshing algorithm plugin"
+           version="2.2.0" 
+           description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,netgen,KERNEL-Bin,SMESH-Bin"
           installdiskspace="2467"
           temporarydiskspace="0"
-          script="NETGENPLUGIN_BIN_2.1.0.sh"/>
+          script="NETGENPLUGIN_BIN_2.2.0.sh"/>
   <product name="GHS3Dplugin-Src" 
-           version="2.1.0" 
-           description="PAL/SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,KERNEL-Src,SMESH-Src"
-          installdiskspace="54"
+          installdiskspace="55"
           temporarydiskspace="0"
-          script="GHS3DPLUGIN_SRC_2.1.0.sh"/>
+          script="GHS3DPLUGIN_SRC_2.2.0.sh"/>
   <product name="GHS3Dplugin-Bin" 
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+           version="2.2.0" 
+           description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,KERNEL-Bin,SMESH-Bin"
           installdiskspace="142"
           temporarydiskspace="0"
-          script="GHS3DPLUGIN_BIN_2.1.0.sh"/>
+          script="GHS3DPLUGIN_BIN_2.2.0.sh"/>
+  <product name="Hello-Src" 
+           version="2.2.0" 
+           description="Example SALOME C++ module: Hello."
+           install="not install"
+          supported="install sources"
+          disable="false"
+          dependancies="gcc,KERNEL-Src"
+          installdiskspace="118"
+          temporarydiskspace="0"
+          script="HELLO1_SRC_2.2.0.sh"/>
+  <product name="PyHello-Src" 
+           version="2.2.0" 
+           description="Example SALOME Python module: Hello."
+           install="not install"
+          supported="install sources"
+          disable="false"
+          dependancies="gcc,KERNEL-Src"
+          installdiskspace="182"
+          temporarydiskspace="0"
+          script="PYHELLO1_SRC_2.2.0.sh"/>
 </document>
index 7cd6a05d08263fac76bd411179dfce75b3c39b61..ba6e237810de2718b8a24d420462892461069472 100644 (file)
@@ -1,8 +1,8 @@
 <document>
-  <config version="2.1.0"
-         caption="PAL/SALOME v%1"
-          copyright="Copyright (C) 2004 CEA"
-          license="All right reserved"
+  <config version="2.2.0"
+         caption="SALOME v%1"
+          copyright="&lt;h5>Copyright (C) 2003-2005 OPEN CASCADE,&lt;br>EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&amp;D,&lt;br>LEG, PRINCIPIA R&amp;D, BUREAU VERITAS&lt;/h5>"
+          license="&lt;h5>GNU LGPL&lt;/h5>"
          os="RedHat8.0"/>
   <path targetdir="/tmp/salome"
         tempdir="/tmp"/>
@@ -98,7 +98,7 @@
           script="SWIG-1.3.17.sh"/>
   <product name="OpenCascade" 
            version="5.2" 
-           description="Open CASCADE version 5.2 with patch for PAL/SALOME 2.1.0"
+           description="Open CASCADE version 5.2 with patch for SALOME 2.2.0"
            install="install binaries"
           supported="install binaries"
           disable="false"
            description="MED format interface library"
            install="install binaries"
           supported="install sources,install binaries"
-          disable="false"
+          disable="true"
           dependancies="gcc,Hdf"
           installdiskspace="1067"
           temporarydiskspace="7971"
           script="med-2.1.6.sh"/>
+  <product name="Med"
+           version="2.2.2" 
+           description="MED format interface library"
+           install="install binaries"
+          supported="install sources,install binaries"
+          disable="false"
+          dependancies="gcc,Hdf"
+          installdiskspace="18215"
+          temporarydiskspace="38100"
+          script="med-2.2.2.sh"/>
   <product name="Vtk"
            version="4.2" 
            description="Image processing, 3D graphics and visualization software system"
           temporarydiskspace="61528"
           script="graphviz-1.9.sh"/>
   <product name="KERNEL-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform KERNEL module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform KERNEL module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
-          installdiskspace="28107"
+          installdiskspace="28814"
           temporarydiskspace="0"
            pickupenv="true"
-          script="KERNEL_SRC_2.1.0.sh"/>
+          script="KERNEL_SRC_2.2.0.sh"/>
   <product name="KERNEL-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform KERNEL module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform KERNEL module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
-          installdiskspace="51202"
+          installdiskspace="58465"
           temporarydiskspace="0"
            pickupenv="true"
-          script="KERNEL_BIN_2.1.0.sh"/>
+          script="KERNEL_BIN_2.2.0.sh"/>
   <product name="GEOM-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform GEOM modules sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform GEOM modules sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="7569"
+          installdiskspace="10619"
           temporarydiskspace="0"
-          script="GEOM_SRC_2.1.0.sh"/>
+          script="GEOM_SRC_2.2.0.sh"/>
   <product name="GEOM-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform GEOM module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform GEOM module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="24695"
+          installdiskspace="31703"
           temporarydiskspace="0"
-          script="GEOM_BIN_2.1.0.sh"/>
+          script="GEOM_BIN_2.2.0.sh"/>
   <product name="MED-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform MED module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform MED module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="11463"
+          installdiskspace="17744"
           temporarydiskspace="0"
-          script="MED_SRC_2.1.0.sh"/>
+          script="MED_SRC_2.2.0.sh"/>
   <product name="MED-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform MED module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform MED module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="27964"
+          installdiskspace="38484"
           temporarydiskspace="0"
-          script="MED_BIN_2.1.0.sh"/>
+          script="MED_BIN_2.2.0.sh"/>
   <product name="SMESH-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform SMESH module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform SMESH module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,GEOM-Src,MED-Src"
-          installdiskspace="8943"
+          installdiskspace="10907"
           temporarydiskspace="0"
-          script="SMESH_SRC_2.1.0.sh"/>
+          script="SMESH_SRC_2.2.0.sh"/>
   <product name="SMESH-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform SMEHS module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform SMEHS module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,GEOM-Bin,MED-Bin"
-          installdiskspace="30631"
+          installdiskspace="36662"
           temporarydiskspace="0"
-          script="SMESH_BIN_2.1.0.sh"/>
+          script="SMESH_BIN_2.2.0.sh"/>
   <product name="VISU-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform VISU module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform VISU module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,MED-Src"
-          installdiskspace="6572"
+          installdiskspace="6558"
           temporarydiskspace="0"
-          script="VISU_SRC_2.1.0.sh"/>
+          script="VISU_SRC_2.2.0.sh"/>
   <product name="VISU-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform VISU module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform VISU module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,MED-Bin"
-          installdiskspace="19116"
+          installdiskspace="20372"
           temporarydiskspace="0"
-          script="VISU_BIN_2.1.0.sh"/>
+          script="VISU_BIN_2.2.0.sh"/>
   <product name="SUPERV-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform SUPERV module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform SUPERV module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="6300"
+          installdiskspace="7476"
           temporarydiskspace="0"
-          script="SUPERV_SRC_2.1.0.sh"/>
+          script="SUPERV_SRC_2.2.0.sh"/>
   <product name="SUPERV-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform SUPERV module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform SUPERV module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="52344"
+          installdiskspace="53744"
           temporarydiskspace="0"
-          script="SUPERV_BIN_2.1.0.sh"/>
+          script="SUPERV_BIN_2.2.0.sh"/>
   <product name="COMPONENT-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform COMPONENT module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform COMPONENT module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="278"
+          installdiskspace="323"
           temporarydiskspace="0"
-          script="COMPONENT_SRC_2.1.0.sh"/>
+          script="COMPONENT_SRC_2.2.0.sh"/>
   <product name="COMPONENT-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform COMPONENT module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform COMPONENT module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="13576"
+          installdiskspace="14000"
           temporarydiskspace="0"
-          script="COMPONENT_BIN_2.1.0.sh"/>
+          script="COMPONENT_BIN_2.2.0.sh"/>
   <product name="PYCALCULATOR-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform PYCALCULATOR module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform PYCALCULATOR module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="28"
+          installdiskspace="147"
           temporarydiskspace="0"
-          script="PYCALCULATOR_SRC_2.1.0.sh"/>
+          script="PYCALCULATOR_SRC_2.2.0.sh"/>
   <product name="PYCALCULATOR-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform PYCALCULATOR module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform PYCALCULATOR module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
           installdiskspace="27"
           temporarydiskspace="0"
-          script="PYCALCULATOR_BIN_2.1.0.sh"/>
+          script="PYCALCULATOR_BIN_2.2.0.sh"/>
   <product name="NETGENplugin-Src" 
-           version="2.1.0" 
-           description="PAL/SALOME platform NETGEN meshing algorithm plugin sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform NETGEN meshing algorithm plugin sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,netgen,KERNEL-Src,SMESH-Src"
           installdiskspace="91"
           temporarydiskspace="0"
-          script="NETGENPLUGIN_SRC_2.1.0.sh"/>
+          script="NETGENPLUGIN_SRC_2.2.0.sh"/>
   <product name="NETGENplugin-Bin" 
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform NETGEN meshing algorithm plugin"
+           version="2.2.0" 
+           description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,netgen,KERNEL-Bin,SMESH-Bin"
           installdiskspace="2467"
           temporarydiskspace="0"
-          script="NETGENPLUGIN_BIN_2.1.0.sh"/>
+          script="NETGENPLUGIN_BIN_2.2.0.sh"/>
   <product name="GHS3Dplugin-Src" 
-           version="2.1.0" 
-           description="PAL/SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,KERNEL-Src,SMESH-Src"
-          installdiskspace="54"
+          installdiskspace="55"
           temporarydiskspace="0"
-          script="GHS3DPLUGIN_SRC_2.1.0.sh"/>
+          script="GHS3DPLUGIN_SRC_2.2.0.sh"/>
   <product name="GHS3Dplugin-Bin" 
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+           version="2.2.0" 
+           description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,KERNEL-Bin,SMESH-Bin"
           installdiskspace="142"
           temporarydiskspace="0"
-          script="GHS3DPLUGIN_BIN_2.1.0.sh"/>
+          script="GHS3DPLUGIN_BIN_2.2.0.sh"/>
+  <product name="Hello-Src" 
+           version="2.2.0" 
+           description="Example SALOME C++ module: Hello."
+           install="not install"
+          supported="install sources"
+          disable="false"
+          dependancies="gcc,KERNEL-Src"
+          installdiskspace="118"
+          temporarydiskspace="0"
+          script="HELLO1_SRC_2.2.0.sh"/>
+  <product name="PyHello-Src" 
+           version="2.2.0" 
+           description="Example SALOME Python module: Hello."
+           install="not install"
+          supported="install sources"
+          disable="false"
+          dependancies="gcc,KERNEL-Src"
+          installdiskspace="182"
+          temporarydiskspace="0"
+          script="PYHELLO1_SRC_2.2.0.sh"/>
 </document>
index 9018d6e918977ac1056aba4d6c378637daa13f00..5d992e033c367bf93aaa4fd8c05fbf6421c7791e 100644 (file)
@@ -1,8 +1,8 @@
 <document>
-  <config version="2.1.0"
-         caption="PAL/SALOME v%1"
-          copyright="Copyright (C) 2004 CEA"
-          license="All right reserved"
+  <config version="2.2.0"
+         caption="SALOME v%1"
+          copyright="&lt;h5>Copyright (C) 2003-2005 OPEN CASCADE,&lt;br>EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&amp;D,&lt;br>LEG, PRINCIPIA R&amp;D, BUREAU VERITAS&lt;/h5>"
+          license="&lt;h5>GNU LGPL&lt;/h5>"
          os="RedHat8.0"/>
   <path targetdir="/tmp/salome"
         tempdir="/tmp"/>
@@ -98,7 +98,7 @@
           script="SWIG-1.3.17.sh"/>
   <product name="OpenCascade" 
            version="5.2" 
-           description="Open CASCADE version 5.2 with patch for PAL/SALOME 2.1.0"
+           description="Open CASCADE version 5.2 with patch for SALOME 2.2.0"
            install="install binaries"
           supported="install binaries"
           disable="false"
            description="MED format interface library"
            install="install binaries"
           supported="install sources,install binaries"
-          disable="false"
+          disable="true"
           dependancies="gcc,Hdf"
           installdiskspace="1067"
           temporarydiskspace="7971"
           script="med-2.1.6.sh"/>
+  <product name="Med"
+           version="2.2.2" 
+           description="MED format interface library"
+           install="install binaries"
+          supported="install sources,install binaries"
+          disable="false"
+          dependancies="gcc,Hdf"
+          installdiskspace="18215"
+          temporarydiskspace="38100"
+          script="med-2.2.2.sh"/>
   <product name="Vtk"
            version="4.2" 
            description="Image processing, 3D graphics and visualization software system"
           temporarydiskspace="61528"
           script="graphviz-1.9.sh"/>
   <product name="KERNEL-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform KERNEL module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform KERNEL module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
-          installdiskspace="28107"
+          installdiskspace="28814"
           temporarydiskspace="0"
            pickupenv="true"
-          script="KERNEL_SRC_2.1.0.sh"/>
+          script="KERNEL_SRC_2.2.0.sh"/>
   <product name="KERNEL-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform KERNEL module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform KERNEL module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
-          installdiskspace="51202"
+          installdiskspace="58465"
           temporarydiskspace="0"
            pickupenv="true"
-          script="KERNEL_BIN_2.1.0.sh"/>
+          script="KERNEL_BIN_2.2.0.sh"/>
   <product name="GEOM-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform GEOM modules sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform GEOM modules sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="7569"
+          installdiskspace="10619"
           temporarydiskspace="0"
-          script="GEOM_SRC_2.1.0.sh"/>
+          script="GEOM_SRC_2.2.0.sh"/>
   <product name="GEOM-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform GEOM module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform GEOM module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="24695"
+          installdiskspace="31703"
           temporarydiskspace="0"
-          script="GEOM_BIN_2.1.0.sh"/>
+          script="GEOM_BIN_2.2.0.sh"/>
   <product name="MED-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform MED module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform MED module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="11463"
+          installdiskspace="17744"
           temporarydiskspace="0"
-          script="MED_SRC_2.1.0.sh"/>
+          script="MED_SRC_2.2.0.sh"/>
   <product name="MED-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform MED module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform MED module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="27964"
+          installdiskspace="38484"
           temporarydiskspace="0"
-          script="MED_BIN_2.1.0.sh"/>
+          script="MED_BIN_2.2.0.sh"/>
   <product name="SMESH-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform SMESH module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform SMESH module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,GEOM-Src,MED-Src"
-          installdiskspace="8943"
+          installdiskspace="10907"
           temporarydiskspace="0"
-          script="SMESH_SRC_2.1.0.sh"/>
+          script="SMESH_SRC_2.2.0.sh"/>
   <product name="SMESH-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform SMEHS module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform SMEHS module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,GEOM-Bin,MED-Bin"
-          installdiskspace="30631"
+          installdiskspace="36662"
           temporarydiskspace="0"
-          script="SMESH_BIN_2.1.0.sh"/>
+          script="SMESH_BIN_2.2.0.sh"/>
   <product name="VISU-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform VISU module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform VISU module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,MED-Src"
-          installdiskspace="6572"
+          installdiskspace="6558"
           temporarydiskspace="0"
-          script="VISU_SRC_2.1.0.sh"/>
+          script="VISU_SRC_2.2.0.sh"/>
   <product name="VISU-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform VISU module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform VISU module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,MED-Bin"
-          installdiskspace="19116"
+          installdiskspace="20372"
           temporarydiskspace="0"
-          script="VISU_BIN_2.1.0.sh"/>
+          script="VISU_BIN_2.2.0.sh"/>
   <product name="SUPERV-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform SUPERV module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform SUPERV module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="6300"
+          installdiskspace="7476"
           temporarydiskspace="0"
-          script="SUPERV_SRC_2.1.0.sh"/>
+          script="SUPERV_SRC_2.2.0.sh"/>
   <product name="SUPERV-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform SUPERV module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform SUPERV module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="52344"
+          installdiskspace="53744"
           temporarydiskspace="0"
-          script="SUPERV_BIN_2.1.0.sh"/>
+          script="SUPERV_BIN_2.2.0.sh"/>
   <product name="COMPONENT-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform COMPONENT module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform COMPONENT module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="278"
+          installdiskspace="323"
           temporarydiskspace="0"
-          script="COMPONENT_SRC_2.1.0.sh"/>
+          script="COMPONENT_SRC_2.2.0.sh"/>
   <product name="COMPONENT-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform COMPONENT module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform COMPONENT module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
-          installdiskspace="13576"
+          installdiskspace="14000"
           temporarydiskspace="0"
-          script="COMPONENT_BIN_2.1.0.sh"/>
+          script="COMPONENT_BIN_2.2.0.sh"/>
   <product name="PYCALCULATOR-Src"
-           version="2.1.0" 
-           description="PAL/SALOME platform PYCALCULATOR module sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform PYCALCULATOR module sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
-          installdiskspace="28"
+          installdiskspace="147"
           temporarydiskspace="0"
-          script="PYCALCULATOR_SRC_2.1.0.sh"/>
+          script="PYCALCULATOR_SRC_2.2.0.sh"/>
   <product name="PYCALCULATOR-Bin"
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform PYCALCULATOR module"
+           version="2.2.0" 
+           description="Precompiled SALOME platform PYCALCULATOR module"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
           installdiskspace="27"
           temporarydiskspace="0"
-          script="PYCALCULATOR_BIN_2.1.0.sh"/>
+          script="PYCALCULATOR_BIN_2.2.0.sh"/>
   <product name="NETGENplugin-Src" 
-           version="2.1.0" 
-           description="PAL/SALOME platform NETGEN meshing algorithm plugin sources"
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform NETGEN meshing algorithm plugin sources"
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,netgen,KERNEL-Src,SMESH-Src"
           installdiskspace="91"
           temporarydiskspace="0"
-          script="NETGENPLUGIN_SRC_2.1.0.sh"/>
+          script="NETGENPLUGIN_SRC_2.2.0.sh"/>
   <product name="NETGENplugin-Bin" 
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform NETGEN meshing algorithm plugin"
+           version="2.2.0" 
+           description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,netgen,KERNEL-Bin,SMESH-Bin"
           installdiskspace="2467"
           temporarydiskspace="0"
-          script="NETGENPLUGIN_BIN_2.1.0.sh"/>
+          script="NETGENPLUGIN_BIN_2.2.0.sh"/>
   <product name="GHS3Dplugin-Src" 
-           version="2.1.0" 
-           description="PAL/SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
-           install="install sources"
+           version="2.2.0" 
+           description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+           install="not install"
           supported="install sources"
           disable="false"
           dependancies="gcc,KERNEL-Src,SMESH-Src"
-          installdiskspace="54"
+          installdiskspace="55"
           temporarydiskspace="0"
-          script="GHS3DPLUGIN_SRC_2.1.0.sh"/>
+          script="GHS3DPLUGIN_SRC_2.2.0.sh"/>
   <product name="GHS3Dplugin-Bin" 
-           version="2.1.0" 
-           description="Precompiled PAL/SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+           version="2.2.0" 
+           description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install binaries"
           supported="install binaries"
           disable="false"
           dependancies="gcc,KERNEL-Bin,SMESH-Bin"
           installdiskspace="142"
           temporarydiskspace="0"
-          script="GHS3DPLUGIN_BIN_2.1.0.sh"/>
+          script="GHS3DPLUGIN_BIN_2.2.0.sh"/>
+  <product name="Hello-Src" 
+           version="2.2.0" 
+           description="Example SALOME C++ module: Hello."
+           install="not install"
+          supported="install sources"
+          disable="false"
+          dependancies="gcc,KERNEL-Src"
+          installdiskspace="118"
+          temporarydiskspace="0"
+          script="HELLO1_SRC_2.2.0.sh"/>
+  <product name="PyHello-Src" 
+           version="2.2.0" 
+           description="Example SALOME Python module: Hello."
+           install="not install"
+          supported="install sources"
+          disable="false"
+          dependancies="gcc,KERNEL-Src"
+          installdiskspace="182"
+          temporarydiskspace="0"
+          script="PYHELLO1_SRC_2.2.0.sh"/>
 </document>
diff --git a/config_files/COMPONENT_BIN_2.1.0.sh b/config_files/COMPONENT_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index 63375d6..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${COMPONENT_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${COMPONENT_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${COMPONENT_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/COMPONENTbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="ComponentBin" ; fi
-export PRODUCT="COMPONENT_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/COMPONENT_BIN_2.2.0.sh b/config_files/COMPONENT_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..8c6392a
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${COMPONENT_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${COMPONENT_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${COMPONENT_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export COMPONENT_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export COMPONENT_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/COMPONENTbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="ComponentBin" ; fi
+export PRODUCT="COMPONENT_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/COMPONENT_SRC_2.1.0.sh b/config_files/COMPONENT_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index 41d5c42..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${COMPONENT_SRC_DIR}" ]; then
-    check_lib_version VERSION ${COMPONENT_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${COMPONENT_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_SRC_DIR=${COMPONENT_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/COMPONENTsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="ComponentSrc" ; fi
-export PRODUCT="COMPONENT_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/COMPONENT_SRC_2.2.0.sh b/config_files/COMPONENT_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..b2fed3e
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${COMPONENT_SRC_DIR}" ]; then
+    check_lib_version VERSION ${COMPONENT_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${COMPONENT_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export COMPONENT_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export COMPONENT_SRC_DIR=${COMPONENT_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/COMPONENTsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="ComponentSrc" ; fi
+export PRODUCT="COMPONENT_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/GEOM_BIN_2.1.0.sh b/config_files/GEOM_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index 2a42713..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${GEOM_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${GEOM_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${GEOM_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GEOMbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GeomBin" ; fi
-export PRODUCT="GEOM_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/GEOM_BIN_2.2.0.sh b/config_files/GEOM_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..0b81497
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${GEOM_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${GEOM_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${GEOM_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GEOM_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GEOM_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/GEOMbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GeomBin" ; fi
+export PRODUCT="GEOM_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/GEOM_SRC_2.1.0.sh b/config_files/GEOM_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index 32a2b4e..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${GEOM_SRC_DIR}" ]; then
-    check_lib_version VERSION ${GEOM_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${GEOM_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_SRC_DIR=${GEOM_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GEOMsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GeomSrc" ; fi
-export PRODUCT="GEOM_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/GEOM_SRC_2.2.0.sh b/config_files/GEOM_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..5666ec4
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${GEOM_SRC_DIR}" ]; then
+    check_lib_version VERSION ${GEOM_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${GEOM_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GEOM_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GEOM_SRC_DIR=${GEOM_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/GEOMsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GeomSrc" ; fi
+export PRODUCT="GEOM_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/GHS3DPLUGIN_BIN_2.1.0.sh b/config_files/GHS3DPLUGIN_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index eebc338..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${GHS3DPLUGIN_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${GHS3DPLUGIN_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${GHS3DPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-  return 0
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GHS3DPLUGINBin" ; fi
-export PRODUCT="GHS3DPLUGIN_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/GHS3DPLUGIN_BIN_2.2.0.sh b/config_files/GHS3DPLUGIN_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..dd06988
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${GHS3DPLUGIN_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${GHS3DPLUGIN_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${GHS3DPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+  return 0
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GHS3DPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GHS3DPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GHS3DPLUGINBin" ; fi
+export PRODUCT="GHS3DPLUGIN_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/GHS3DPLUGIN_SRC_2.1.0.sh b/config_files/GHS3DPLUGIN_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index 80dfb02..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${GHS3DPLUGIN_SRC_DIR}" ]; then
-    check_lib_version VERSION ${GHS3DPLUGIN_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${GHS3DPLUGIN_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-  return 0
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_SRC_DIR=${GHS3DPLUGIN_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GHS3DPLUGINSrc" ; fi
-export PRODUCT="GHS3DPLUGIN_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/GHS3DPLUGIN_SRC_2.2.0.sh b/config_files/GHS3DPLUGIN_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..7d8e0f4
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${GHS3DPLUGIN_SRC_DIR}" ]; then
+    check_lib_version VERSION ${GHS3DPLUGIN_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${GHS3DPLUGIN_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+  return 0
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GHS3DPLUGIN_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GHS3DPLUGIN_SRC_DIR=${GHS3DPLUGIN_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GHS3DPLUGINSrc" ; fi
+export PRODUCT="GHS3DPLUGIN_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/HELLO1_SRC_2.2.0.sh b/config_files/HELLO1_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..05382b2
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+check_version(){
+#we don't know anything about version
+return 0
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export HELLO1_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export HELLO1_SRC_DIR=${HELLO1_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/HELLO1sourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="Hello1Src" ; fi
+export PRODUCT="HELLO1_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/KERNEL_BIN_2.1.0.sh b/config_files/KERNEL_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index 764a5c3..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${KERNEL_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${KERNEL_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${KERNEL_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/KERNELbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-pickup_env()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="KernelBin" ; fi
-export PRODUCT="KERNEL_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/KERNEL_BIN_2.2.0.sh b/config_files/KERNEL_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..b6be9c5
--- /dev/null
@@ -0,0 +1,82 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${KERNEL_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${KERNEL_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${KERNEL_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export KERNEL_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export KERNEL_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/KERNELbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+pickup_env()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="KernelBin" ; fi
+export PRODUCT="KERNEL_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/KERNEL_SRC_2.1.0.sh b/config_files/KERNEL_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index 4520b56..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${KERNEL_SRC_DIR}" ]; then
-    check_lib_version VERSION ${KERNEL_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${KERNEL_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_SRC_DIR=${KERNEL_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/KERNELsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-pickup_env()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="KernelSrc" ; fi
-export PRODUCT="KERNEL_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/KERNEL_SRC_2.2.0.sh b/config_files/KERNEL_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..8960245
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${KERNEL_SRC_DIR}" ]; then
+    check_lib_version VERSION ${KERNEL_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${KERNEL_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export KERNEL_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export KERNEL_SRC_DIR=${KERNEL_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/KERNELsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+pickup_env()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="KernelSrc" ; fi
+export PRODUCT="KERNEL_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/MED_BIN_2.1.0.sh b/config_files/MED_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index 4bf697a..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${MED_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${MED_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${MED_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/MEDbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="MedBin" ; fi
-export PRODUCT="MED_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/MED_BIN_2.2.0.sh b/config_files/MED_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..741ac17
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${MED_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${MED_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${MED_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/MEDbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="MedBin" ; fi
+export PRODUCT="MED_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/MED_SRC_2.1.0.sh b/config_files/MED_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index 68c2282..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${MED_SRC_DIR}" ]; then
-    check_lib_version VERSION ${MED_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${MED_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_SRC_DIR=${MED_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/MEDsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="MedSrc" ; fi
-export PRODUCT="MED_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/MED_SRC_2.2.0.sh b/config_files/MED_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..c1af2d7
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${MED_SRC_DIR}" ]; then
+    check_lib_version VERSION ${MED_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${MED_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED_SRC_DIR=${MED_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/MEDsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="MedSrc" ; fi
+export PRODUCT="MED_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/NETGENPLUGIN_BIN_2.1.0.sh b/config_files/NETGENPLUGIN_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index 0cafd58..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${NETGENPLUGIN_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${NETGENPLUGIN_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${NETGENPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-  return 0
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${NETGENPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${NETGENPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="NETGENPLUGINBin" ; fi
-export PRODUCT="NETGENPLUGIN_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/NETGENPLUGIN_BIN_2.2.0.sh b/config_files/NETGENPLUGIN_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..ffbe960
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${NETGENPLUGIN_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${NETGENPLUGIN_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${NETGENPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+  return 0
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export NETGENPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${NETGENPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export NETGENPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${NETGENPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="NETGENPLUGINBin" ; fi
+export PRODUCT="NETGENPLUGIN_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/NETGENPLUGIN_SRC_2.1.0.sh b/config_files/NETGENPLUGIN_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index fb13387..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${NETGENPLUGIN_SRC_DIR}" ]; then
-    check_lib_version VERSION ${NETGENPLUGIN_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${NETGENPLUGIN_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-  return 0
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_SRC_DIR=${NETGENPLUGIN_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="NETGENPLUGINSrc" ; fi
-export PRODUCT="NETGENPLUGIN_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/NETGENPLUGIN_SRC_2.2.0.sh b/config_files/NETGENPLUGIN_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..b3629a3
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${NETGENPLUGIN_SRC_DIR}" ]; then
+    check_lib_version VERSION ${NETGENPLUGIN_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${NETGENPLUGIN_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+  return 0
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export NETGENPLUGIN_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export NETGENPLUGIN_SRC_DIR=${NETGENPLUGIN_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="NETGENPLUGINSrc" ; fi
+export PRODUCT="NETGENPLUGIN_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/PYCALCULATOR_BIN_2.1.0.sh b/config_files/PYCALCULATOR_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index b6e905d..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${PYCALCULATOR_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${PYCALCULATOR_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${PYCALCULATOR_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
-export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
-export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="PyCalculatorBin" ; fi
-export PRODUCT="PYCALCULATOR_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/PYCALCULATOR_BIN_2.2.0.sh b/config_files/PYCALCULATOR_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..49b6c39
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${PYCALCULATOR_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${PYCALCULATOR_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${PYCALCULATOR_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYCALCULATOR_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
+export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYCALCULATOR_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
+export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="PyCalculatorBin" ; fi
+export PRODUCT="PYCALCULATOR_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/PYCALCULATOR_SRC_2.1.0.sh b/config_files/PYCALCULATOR_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index 5fbaa1e..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${PYCALCULATOR_SRC_DIR}" ]; then
-    check_lib_version VERSION ${PYCALCULATOR_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${PYCALCULATOR_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_SRC_DIR=${PYCALCULATOR_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="PyCalculatorSrc" ; fi
-export PRODUCT="PYCALCULATOR_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/PYCALCULATOR_SRC_2.2.0.sh b/config_files/PYCALCULATOR_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..6f0c6fc
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${PYCALCULATOR_SRC_DIR}" ]; then
+    check_lib_version VERSION ${PYCALCULATOR_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${PYCALCULATOR_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYCALCULATOR_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYCALCULATOR_SRC_DIR=${PYCALCULATOR_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="PyCalculatorSrc" ; fi
+export PRODUCT="PYCALCULATOR_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/PYHELLO1_SRC_2.2.0.sh b/config_files/PYHELLO1_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..577ff29
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+check_version(){
+#we don't know anything about version
+return 0
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYHELLO1_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYHELLO1_SRC_DIR=${PYHELLO1_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/PYHELLO1sourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="Hello1Src" ; fi
+export PRODUCT="PYHELLO1_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/SMESH_BIN_2.1.0.sh b/config_files/SMESH_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index d0260ac..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${SMESH_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${SMESH_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${SMESH_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SMESHbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SmeshBin" ; fi
-export PRODUCT="SMESH_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/SMESH_BIN_2.2.0.sh b/config_files/SMESH_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..44929dc
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${SMESH_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${SMESH_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${SMESH_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SMESH_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SMESH_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/SMESHbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SmeshBin" ; fi
+export PRODUCT="SMESH_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/SMESH_SRC_2.1.0.sh b/config_files/SMESH_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index 83c2003..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${SMESH_SRC_DIR}" ]; then
-    check_lib_version VERSION ${SMESH_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${SMESH_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_SRC_DIR=${SMESH_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SMESHsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SmeshSrc" ; fi
-export PRODUCT="SMESH_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/SMESH_SRC_2.2.0.sh b/config_files/SMESH_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..c2f4145
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${SMESH_SRC_DIR}" ]; then
+    check_lib_version VERSION ${SMESH_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${SMESH_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SMESH_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SMESH_SRC_DIR=${SMESH_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/SMESHsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SmeshSrc" ; fi
+export PRODUCT="SMESH_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/SUPERV_BIN_2.1.0.sh b/config_files/SUPERV_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index ca89c67..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${SUPERV_ROOT_DIR=}" ]; then
-    check_lib_version VERSION ${SUPERV_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${SUPERV_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SUPERV_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${SUPERV_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${SUPERV_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${SUPERV_ROOT_DIR}/bin/salome:\${SUPERV_ROOT_DIR}/lib/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SUPERV_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${SUPERV_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${SUPERV_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${SUPERV_ROOT_DIR}/bin/salome:\${SUPERV_ROOT_DIR}/lib/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SUPERVbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SupervBin" ; fi
-export PRODUCT="SUPERV_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/SUPERV_BIN_2.2.0.sh b/config_files/SUPERV_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..17b4896
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${SUPERV_ROOT_DIR=}" ]; then
+    check_lib_version VERSION ${SUPERV_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${SUPERV_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SUPERV_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${SUPERV_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${SUPERV_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${SUPERV_ROOT_DIR}/bin/salome:\${SUPERV_ROOT_DIR}/lib/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SUPERV_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${SUPERV_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${SUPERV_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${SUPERV_ROOT_DIR}/bin/salome:\${SUPERV_ROOT_DIR}/lib/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/SUPERVbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SupervBin" ; fi
+export PRODUCT="SUPERV_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/SUPERV_SRC_2.1.0.sh b/config_files/SUPERV_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index f511c2a..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${SUPERV_SRC_DIR}" ]; then
-    check_lib_version VERSION ${SUPERV_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${SUPERV_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SUPERV_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SUPERV_SRC_DIR=${SUPERV_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SUPERVsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SupervSrc" ; fi
-export PRODUCT="SUPERV_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/SUPERV_SRC_2.2.0.sh b/config_files/SUPERV_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..b2add51
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${SUPERV_SRC_DIR}" ]; then
+    check_lib_version VERSION ${SUPERV_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${SUPERV_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SUPERV_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SUPERV_SRC_DIR=${SUPERV_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/SUPERVsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SupervSrc" ; fi
+export PRODUCT="SUPERV_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/VISU_BIN_2.1.0.sh b/config_files/VISU_BIN_2.1.0.sh
deleted file mode 100755 (executable)
index 63d382d..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${VISU_ROOT_DIR}" ]; then
-    check_lib_version VERSION ${VISU_ROOT_DIR}/bin/salome
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${VISU_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/VISUbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="VisuBin" ; fi
-export PRODUCT="VISU_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/VISU_BIN_2.2.0.sh b/config_files/VISU_BIN_2.2.0.sh
new file mode 100755 (executable)
index 0000000..10c3085
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${VISU_ROOT_DIR}" ]; then
+    check_lib_version VERSION ${VISU_ROOT_DIR}/bin/salome
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${VISU_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export VISU_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export VISU_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/VISUbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="VisuBin" ; fi
+export PRODUCT="VISU_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
diff --git a/config_files/VISU_SRC_2.1.0.sh b/config_files/VISU_SRC_2.1.0.sh
deleted file mode 100755 (executable)
index b673902..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-check_version(){
-if [ -n "${VISU_SRC_DIR}" ]; then
-    check_lib_version VERSION ${VISU_SRC_DIR}/bin
-    if [ "$?" -eq "0" ]; then
-       ver=`cat ${VISU_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
-       if [ "$ver" = "2.1.0" ]; then
-           return 0
-       fi
-    fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
-    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_SRC_DIR=${VISU_SRC_DIR}
-##
-EOF
-    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-    return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/VISUsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="VisuSrc" ; fi
-export PRODUCT="VISU_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE 
diff --git a/config_files/VISU_SRC_2.2.0.sh b/config_files/VISU_SRC_2.2.0.sh
new file mode 100755 (executable)
index 0000000..dc0f715
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+check_version(){
+if [ -n "${VISU_SRC_DIR}" ]; then
+    check_lib_version VERSION ${VISU_SRC_DIR}/bin
+    if [ "$?" -eq "0" ]; then
+       ver=`cat ${VISU_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' ` 
+       if [ "$ver" = "2.2.0" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export VISU_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export VISU_SRC_DIR=${VISU_SRC_DIR}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/VISUsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="VisuSrc" ; fi
+export PRODUCT="VISU_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE 
index f502ba0f3ae7c374e34eb32a905e9dd029f38f46..23d077ac5e713df0c665d052bc11565342c4951a 100755 (executable)
@@ -22,6 +22,7 @@ export VTKHOME=\${INSTALL_ROOT}/${PRODUCT}
 export PATH=\${VTKHOME}/bin:\${PATH}
 export LD_LIBRARY_PATH=\${VTKHOME}/lib/vtk:\${LD_LIBRARY_PATH}
 export PYTHONPATH=\${VTKHOME}/lib/vtk:\${VTKHOME}/lib/python2.2/site-packages/vtk_python:\${PYTHONPATH}
+export TCLLIBPATH="\${VTKHOME}/lib/vtk/tcl \${TCLLIBPATH}"
 ##
 EOF
 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
@@ -44,6 +45,7 @@ export VTKHOME=${VTKHOME}
 export PATH=${path}
 export LD_LIBRARY_PATH=${ld_library_path}
 export PYTHONPATH=${python_path}
+export TCLLIBPATH="\${VTKHOME}/lib/vtk/tcl \${TCLLIBPATH}"
 ##
 EOF
     make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
diff --git a/config_files/build.csh b/config_files/build.csh
new file mode 100755 (executable)
index 0000000..fb2bf17
--- /dev/null
@@ -0,0 +1,336 @@
+#! /bin/csh -f
+##################################################################################################
+# Name       : build.csh
+# Description: Build and install SALOME2 modules from sources
+# Author     : Vadim SANDLER (VSR), Open CASCADE S.A.
+# Created    : 27.01.2005
+##################################################################################################
+
+set is_build_configure=0
+set is_configure=0
+set is_delete=0
+set verbose_level=2
+set params=""
+set b_params=""
+set modules=(KERNEL GEOM MED SMESH VISU SUPERV NETGENPLUGIN GHS3DPLUGIN COMPONENT PYCALCULATOR)
+set optim=""
+set is_install=0
+set is_help=0
+set prefix=""
+
+#########################################################
+# parse parameters
+#########################################################
+while ( ${%1} > 0 )
+    if ( "$1" == "-b" ) then
+       set is_build_configure=1
+       set is_configure=1
+    else if ( "$1" == "-c" ) then
+       set is_configure=1
+    else if ( "$1" == "-d" ) then
+       set is_delete=1
+    else if ( "$1" == "-o" ) then
+       set optim="--enable-production=yes --disable-debug"
+    else if ( "$1" == "-i" ) then
+       set is_install=1
+    else if ( "$1" == "-v" ) then
+       shift
+       set verbose_level=$1
+    else if ( "$1" == "-p" ) then
+       shift
+       set is_install=1
+       set prefix=$1
+    else if ( "$1" == "-h" ) then
+       set is_help=1
+    else
+       set ckt=`echo ${modules} | grep $1`
+       if ( "$ckt" != "" ) then
+           set params="$params $1"
+       else
+           set b_params="$b_params $1"
+           echo "Warning: Unknown module: $1. Skipping."
+       endif
+    endif
+    shift
+end
+
+#########################################################
+# if -h option is given - print help info and exit 
+#########################################################
+if ( $is_help == 1 ) then
+echo ""
+echo ""
+echo "Description:"
+echo "            Builds given SALOME2 modules by performing make and (optionally) make install commands"
+echo ""
+echo "Usage:"
+echo "            build.csh [ <option> ] ... [ <module> [ <module> ... ] ]"
+echo ""
+echo "<module>    Modules to build, separated by space(s)."
+echo "            If no modules are given - all SALOME2 modules are assumed."
+echo "            Note, that modules given in command lines are automatically sorted in such order"
+echo "            to support correct modules dependencies."
+echo ""
+echo "Options:"
+echo "-b          Perform build_configure command for all given modules."
+echo "            This option forces configure (-c) key to be set. Default is off."
+echo ""
+echo "-c          Perform configure command for all given modules. Default is off."
+echo ""
+echo "-d          Delete build directories before calling configure, to enforce full rebuild"
+echo "            (and reinstall if -i or -p option is used) of module."
+echo "            Use this option carefully."
+echo ""
+echo "-o          Build sources in optimized mode. Default is off that means debug mode."
+echo "            Use this option together with -c or -b."
+echo "            This option can require -d option to be set (to ensure that previously"
+echo "            created build directories are removed to enforce rebuild in optimized mode)."
+echo ""
+echo "-i          Performs make install step. Default is off that means only make step."
+echo ""
+echo "-p <prefix> Define the directory where to install modules after compilation."
+echo "            By default the directory where compilation is performed is used."
+echo ""
+echo "-v <level>  Verbose level (0-2, default 2): print information on build status:"
+echo "            0: only 'make' errors"
+echo "            1: 0 + compiler and other errors (including build_configure, configure)"
+echo "            2: 1 + compiler and other warnings "
+echo ""
+echo "-h          Prints this help information."
+echo ""
+echo "Note:       If no keys are given script just performs make step."
+echo ""
+echo "Example:"
+echo "            ./build.csh -o -i -b KERNEL MED GEOM"
+echo ""
+echo "            This will make KERNEL, GEOM and MED modules: build_configure, configure, make"
+echo "            and install procedures will be performed for all specified modules."
+echo "            The modules will be built in the optimized mode"
+echo ""
+exit
+endif
+
+#########################################################
+# sort modules in proper order according to the dependancies
+#########################################################
+if ( "${params}" != "" ) then
+    set xparams=""
+    foreach module (${modules})
+       set ckt=`echo ${params} | grep ${module}`
+       if ( "$ckt" != "" ) then
+           set xparams="$xparams $module"
+       endif
+    end
+    set modules=($xparams)
+else
+    if ( "${b_params}" != "" ) then
+       echo "Nothing to be built. Exiting."
+       exit
+    endif
+endif
+
+echo "The following SALOME packages will be built:"
+echo $modules
+
+#########################################################
+# set environment
+#########################################################
+set env_script=`dirname $0`/env_products.csh
+if ( -e $env_script ) then
+    echo "Setting environment"
+    source $env_script
+else
+    echo "Warning! Environment is not set: file env_products.csh is not found."
+endif
+
+set BUILD_DIR=${PWD}
+set LOG_DIR=${BUILD_DIR}/LOGS
+
+#########################################################
+# create log directory
+#########################################################
+if ( ! -e ${LOG_DIR} ) then
+    mkdir -p ${LOG_DIR}
+endif
+
+echo "==========================================================================="
+echo "Starting SALOME build at `date`"
+
+#########################################################
+# loop for all given modules
+#########################################################
+foreach module (${modules})
+  echo "==========================================================================="
+  echo "Processing ${module} module"
+
+  set module_src=`printenv ${module}_SRC_DIR`
+  set module_build=${BUILD_DIR}/${module}_BUILD
+
+  if ( ${module_src} != "" ) then
+    set add_keys=""
+    cd ${BUILD_DIR}
+    #########################################################
+    # check if sources directory exists
+    #########################################################
+    if ( ! -e ${module_src} ) then
+       echo "Error! Can't find sources directory: ${module_src} does not exist."
+       continue
+    endif
+    #########################################################
+    # check if configure script exists
+    #########################################################
+    set cfg_exist=0
+    if ( -e ${module_src}/configure ) then
+       set cfg_exist=1
+    endif
+    #########################################################
+    # perform build_configure if -b flag is given or if 
+    # configure script does not exist (first compilation?)
+    #########################################################
+    if ( $is_build_configure == 1 || $cfg_exist == 0 ) then
+       echo "------- Build configure ---------"
+       #########################################################
+       # if build_configure script is not found, omit the module
+       #########################################################
+       if ( ! -e ${module_src}/build_configure ) then
+           echo "Error! Nothing to build in ${module_src}. Skipping module."
+           continue
+       endif
+       #########################################################
+       # call build_configure
+       #########################################################
+       cd ${module_src}
+       ./build_configure >& ${LOG_DIR}/build_configure_${module}.log
+       #########################################################
+       # echo possible errors
+       #########################################################
+       if ( $verbose_level > 0 ) then
+           cat ${LOG_DIR}/build_configure_${module}.log | grep ": error:"
+       endif
+    endif
+    #########################################################
+    # deleting build directory if -d flag is given
+    #########################################################
+    if ( -e ${module_build} && $is_delete == 1 ) then
+       echo "Deleting ${module_build}"
+       rm -rf ${module_build}
+    endif
+    #########################################################
+    # creating build directory if it does not exist
+    #########################################################
+    if ( ! -e ${module_build} ) then
+       mkdir -p ${module_build}
+    endif
+    cd ${module_build}
+    #########################################################
+    # check if top Makefile exists in build directory, i.e. 
+    # is it necessary to run configure script
+    #########################################################
+    set mkfile_exist=0
+    if ( -e ${module_build}/Makefile ) then
+       set mkfile_exist=1
+    endif
+    #########################################################
+    # define installation directory (by using module's version
+    # number); default is a build directory
+    #########################################################
+    set vx=""
+    if ( -e ${module_src}/bin/VERSION ) then
+       set vx=`awk -F: '{split ( $2,x," " ) ; print x[1];}' ${module_src}/bin/VERSION`
+    endif
+    set px=${BUILD_DIR}/${module}
+    if ( "$prefix" != "" ) then
+       set px=$prefix/${module}
+    endif
+    if ( "$vx" != "" ) then
+       set px="$px"_"$vx"
+    endif
+    #########################################################
+    # perform configure if -c flag is given or if 
+    # Makefile does not exist (first compilation?)
+    #########################################################
+    if ( $is_configure == 1 || $mkfile_exist == 0) then
+       echo "------- Configure ---------------"
+       if (  "${module}" == "NETGENPLUGIN" && ($?NETGENHOME) ) then
+           set add_keys="--with-netgen=${NETGENHOME}"
+       endif
+       ${module_src}/configure --prefix=$px ${optim} ${add_keys} >& ${LOG_DIR}/configure_${module}.log
+       #########################################################
+       # echo possible errors
+       #########################################################
+       if ( $verbose_level > 0 ) then
+           cat ${LOG_DIR}/configure_${module}.log | grep ": error:"
+       endif
+       if ( $verbose_level > 1 ) then
+           cat ${LOG_DIR}/configure_${module}.log | grep ": WARNING:"
+       endif
+    endif
+    #########################################################
+    # perform make
+    #########################################################
+    echo "------- Make --------------------"
+    #########################################################
+    # first clear dependencies
+    #########################################################
+    find . -name ".dep*" -exec rm -rf {} \; >& /dev/null
+    make >& ${LOG_DIR}/make_${module}.log
+    set sts=$status
+    #########################################################
+    # if make step is successful set the ${module}_ROOT_DIR
+    # environment variable
+    #########################################################
+    if ( $sts == 0 ) then
+       setenv ${module}_ROOT_DIR ${module_build}
+    endif
+    #########################################################
+    # print make errors
+    #########################################################
+    cat ${LOG_DIR}/make_${module}.log | grep '[*][*][*]'
+    #########################################################
+    # print compiler errors and warnings
+    # Note: here awk is used to concatenate together several lines of single
+    #       error or warning message produced by stupid gnu compiler
+    # Actually, instead of that we could use 'fmessage length=n' option of g++...
+    #########################################################
+    if ( $verbose_level > 0 ) then
+       ###cat ${LOG_DIR}/make_${module}.log | grep ": error"
+       cat ${LOG_DIR}/make_${module}.log | awk 'substr($0,0,1)!=" " {print ""} {printf $0} END {print ""}' | grep "${module_src}/[A-Za-z_0-9./]*:" | sed s@"^${module_src}/src/"@@
+    endif
+    if ( $verbose_level > 1 ) then
+       cat ${LOG_DIR}/make_${module}.log | awk 'substr($0,0,1)!=" " {print ""} {printf $0} END {print ""}' | grep ": warning" | sed s@"^${module_src}/src/"@@
+    endif
+    #########################################################
+    # perform make if -i or -p flags are given
+    #########################################################
+    if ( $is_install == 1 && $sts == 0 ) then
+       echo "------- Make install ------------"
+       #########################################################
+       # deleting build directory if -d flag is given
+       #########################################################
+       if ( -e $px && $is_delete == 1 ) then
+           echo "Deleting $px"
+           rm -rf $px
+       endif
+       make install >& ${LOG_DIR}/make_install_${module}.log
+       set sts=$status
+       #########################################################
+       # if make install step is successful set the 
+        # ${module}_ROOT_DIR environment variable
+       #########################################################
+       if ( $sts == 0 ) then
+           setenv ${module}_ROOT_DIR $px
+       endif
+    endif
+    echo ""
+  else
+    echo "Error! Can't find module sources. ${module}_SRC_DIR environment variable is not set."
+  endif
+end
+#########################################################
+# finalize
+#########################################################
+cd ${BUILD_DIR}
+
+echo "==========================================================================="
+echo "SALOME build finished at `date`"
+echo "==========================================================================="
index feca5a1578c77908144eb77c2067dd6a5ec3d948..ea63d95a578658fcb9919ba768c7658ffecb1b44 100755 (executable)
@@ -94,13 +94,13 @@ export INSTALL_ROOT=${install_root}
 #$DELIM globals $DELIM
 setenvp() {
     xenv=\$2:\`printenv \$1\`
-    out_var=\`echo \$xenv | awk -F: '{n=0 ; for(i=1;i<=NF;i++){v=\$i;t=1;for(j=0;j<=n;j++){if(keys[j]==v){t=0;break;}};if(t)keys[n++]=v} ; for(j=0;j<n;j++){printf "%s",keys[j];if(j<n-1) printf ":"} ; printf "\n"}'\`
+    out_var=\`echo \$xenv | awk -F: '{ n=0; r=1; s=\$1; x=0; for( i=2; i<=NF; i++ ){ v=\$i; t=1; if( v==s ) r=0; for( j=0; j<=n; j++ ){ if( keys[j]==v ){ t=0; break; } }; if( t ) keys[n++]=v; x=1; }; if( r ) printf "%s",s; if( x ) printf ":"; for( j=0; j<n; j++ ) { printf "%s",keys[j]; if( j<n-1 ) printf ":"; }; printf "\n"; }'\`
     export \$1=\$out_var
 }
 
 setenva() {
-    xenv=\`printenv \$1\`:\$2
-    out_var=\`echo \$xenv | awk -F: '{n=0 ; for(i=NF;i>=1;i--){v=\$i;t=1;for(j=0;j<=n;j++){if(keys[j]==v){t=0;break;}};if(t)keys[n++]=v} ; for(j=n-1;j>=0;j--){printf "%s",keys[j];if(j>0) printf ":"} ; printf "\n"}'\`
+    xenv=\$2:\`printenv \$1\`
+    out_var=\`echo \$xenv | awk -F: '{ n=0; r=1; s=\$1; x=0; for( i=2; i<=NF; i++ ){ v=\$i; t=1; if( v==s ) r=0; for( j=0; j<=n; j++ ){ if( keys[j]==v ){ t=0; break; } }; if( t ) keys[n++]=v; x=1; }; for( j=0; j<n; j++ ) { printf "%s",keys[j]; if( j<n-1 ) printf ":"; }; if( r ) { if( x ) printf ":"; printf "%s",s; }; printf "\n"; }'\`
     export \$1=\$out_var
 }
 EOF
@@ -108,23 +108,23 @@ EOF
 cat >> ${install_work}/$CSHRC <<EOF
 setenv INSTALL_ROOT ${install_root}
 #$DELIM globals $DELIM
-alias cleandup  "echo \!:1 | awk -F: '"'{n=0 ; for(i=1;i<=NF;i++){v=\$i;t=1;for(j=0;j<=n;j++){if(keys[j]==v){t=0;break;}};if(t)keys[n++]=v} ; for(j=0;j<n;j++){printf "%s",keys[j];if(j<n-1) printf ":"} ; printf "\n"}'"'"
-alias cleandupr "echo \!:1 | awk -F: '"'{n=0 ; for(i=NF;i>=1;i--){v=\$i;t=1;for(j=0;j<=n;j++){if(keys[j]==v){t=0;break;}};if(t)keys[n++]=v} ; for(j=n-1;j>=0;j--){printf "%s",keys[j];if(j>0) printf ":"} ; printf "\n"}'"'"
+alias cleandup  "echo \!:1 | awk -F: '"'{ n=0; r=1; s=\$1; x=0; for( i=2; i<=NF; i++ ){ v=\$i; t=1; if( v==s ) r=0; for( j=0; j<=n; j++ ){ if( keys[j]==v ){ t=0; break; } }; if( t ) keys[n++]=v; x=1; }; if( r ) printf "%s",s; if( x ) printf ":"; for( j=0; j<n; j++ ) { printf "%s",keys[j]; if( j<n-1 ) printf ":"; }; printf "\n"; }'"'"
+alias cleandupr "echo \!:1 | awk -F: '"'{ n=0; r=1; s=\$1; x=0; for( i=2; i<=NF; i++ ){ v=\$i; t=1; if( v==s ) r=0; for( j=0; j<=n; j++ ){ if( keys[j]==v ){ t=0; break; } }; if( t ) keys[n++]=v; x=1; }; for( j=0; j<n; j++ ) { printf "%s",keys[j]; if( j<n-1 ) printf ":"; }; if( r ) { if( x ) printf ":"; printf "%s",s; }; printf "\n"; }'"'"
 
-alias setenva 'set a="\!:1" ; set b=\`printenv \$a\`:"'\!:2'" ; set b=\`cleandupr \$b\` ; setenv \$a \$b ; unset a, b'
-alias setenvp 'set a="\!:1" ; set b="'\!:2'":\`printenv \$a\` ; set b=\`cleandup \$b\`  ; setenv \$a \$b ; unset a, b'
+alias setenva 'set a="\!:1" ; set b="'\!:2'":\`printenv \$a\` ; set b=\`cleandupr \$b\` ; setenv \$a \$b ; unset a, b'
+alias setenvp 'set a="\!:1" ; set b="'\!:2'":\`printenv \$a\` ; set b=\`cleandup  \$b\` ; setenv \$a \$b ; unset a, b'
 EOF
 ### !!! writing salome.csh file !!! -> set inital variables
-pre_vars="PATH LD_LIBRARY_PATH LD_RUN_PATH PYTHONPATH"
+pre_vars="PATH LD_LIBRARY_PATH LD_RUN_PATH PYTHONPATH TCLLIBPATH"
 for i in $pre_vars ; do
 cat >> ${install_work}/$CSHRC <<EOF
-#$DELIM initial settings $DELIM
+#$DELIM $i : initial settings $DELIM
 if (! (\$?${i}) ) then
   setenv $i
 endif
 EOF
 done
-### !!! writing salome.(c)sh files !!! -> dump products environment files, changing 'export' by 'setenv(a|b)' where necessary
+### !!! writing salome.(c)sh files !!! -> dump products environment files, changing 'export' by 'setenv(a|p)' where necessary
 product_sequence="$2"
 for i in $product_sequence ; do
     sed -e 's%^export\([[:blank:]]*\)PATH=\$[{]\?PATH[}]\?:\(.*\)%setenva\1PATH \2%g' -e 's%^export\([[:blank:]]*\)PATH=\(.*\):\$[{]\?PATH[}]\?%setenvp\1PATH \2%g' ${install_work}/env_${i}.sh > ${INSTALL_WORK}/_tmp1 2>/dev/null
@@ -147,6 +147,10 @@ if [ $# -eq 4 ] ; then
 fi
 cp -f ${install_work}/$CSHRC ${install_root}/env_products.csh
 cp -f ${install_work}/$SHRC ${install_root}/env_products.sh
+### !!! copying build.csh script
+if [ -e ./build.csh ]; then
+    cp -f ./build.csh ${install_root}
+fi
 }
 
 #try use already existing product
index e14807320eb3d34544912710aa3579a752f4935d..506ade8d9bad1bae05e02e9c37d101d23f2b795a 100755 (executable)
@@ -1,11 +1,7 @@
 #!/bin/sh
 
 check_version(){
-gcc_ver=`gcc -dumpversion`
-gcc_ver_number=`echo $gcc_ver | cut -d . -f 1`
-gcc_ver_subnumber=`echo $gcc_ver | cut -d . -f 2`
-gcc_ver=$(($gcc_ver_number*1000+$gcc_ver_subnumber))
-#if [ `gcc --version | grep 'gcc (GCC) .*' | cut -b 11-13` == "3.2" ] ;  then 
+gcc_ver=`gcc -dumpversion | awk -F. '{ print $1 * 1000 + $2 }'`
 if [ $gcc_ver -eq 3002 ]  ; then
     return 0
 fi
@@ -34,11 +30,7 @@ if [ -z "${gcc_root}" ] ; then
 fi
 if [ -n "${gcc_root}" ] ; then
     gcc_root=`cd ${gcc_root}/..; pwd`
-    gcc_ver=`gcc -dumpversion`
-    gcc_ver_number=`echo $gcc_ver | cut -d . -f 1`
-    gcc_ver_subnumber=`echo $gcc_ver | cut -d . -f 2`
-    gcc_ver=$(($gcc_ver_number*1000+$gcc_ver_subnumber))
-    #if [ "`${gcc_root}/bin/gcc --version | grep 'gcc (GCC) .*' | cut -b 11-13`" = "3.2" ] ; then
+    gcc_ver=`gcc -dumpversion | awk -F. '{ print $1 * 1000 + $2 }'`
     if [ $gcc_ver -ge 3002 ]  ; then
        tmp="\${GCC_ROOT}/bin ${gcc_root}/bin \${PATH} ${PATH}";  
        path=`sort_path ${tmp}`
diff --git a/config_files/med-2.2.2.sh b/config_files/med-2.2.2.sh
new file mode 100755 (executable)
index 0000000..4b547c6
--- /dev/null
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+check_version()
+{
+if [ -z "$MED2HOME" ]; then
+   #echo "MED2HOME doesn't set"
+   return 1
+fi
+check_lib_version libmed.so.1.0.1 ${MED2HOME}/lib
+if [ "$?" -eq "0" ]; then
+   #echo "The product ${PRODUCT} has been already installed on yours system"
+   return 0
+fi
+return 1
+}
+
+print_env()
+{
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED2HOME=\${INSTALL_ROOT}/med-2.2.2
+export PATH=\${MED2HOME}/bin:\${PATH}
+export LD_LIBRARY_PATH=\${MED2HOME}/lib:\${LD_LIBRARY_PATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+    tmp="\${MED2HOME}/bin ${MED2HOME}/bin \${PATH} ${PATH}";  
+    path=`sort_path ${tmp}`
+    tmp="\${MED2HOME}/lib ${MED2HOME}/lib \${LD_LIBRARY_PATH} ${LD_LIBRARY_PATH}";  
+    ld_library_path=`sort_path ${tmp}`
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED2HOME=${MED2HOME}
+export PATH=${path}
+export LD_LIBRARY_PATH=${ld_library_path}
+##
+EOF
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/med_fichier2.2.2.src.tar.gz -C ${INSTALL_WORK}
+
+cd ${PRODUCT_WORK}
+makedir ${PRODUCT_DIR}
+
+check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --prefix=${PRODUCT_DIR}
+
+GCC=`which gcc`
+cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
+used gcc=$GCC
+EOF
+
+check_job ${PRODUCT_DIR}/MAKE.LOG make
+check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
+
+rm -fr ${PRODUCT_WORK}
+print_env
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/med-2.2.2.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="med" ; fi
+export PRODUCT="med-2.2.2"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/med_fichier2.2.2.src
+source ./common.sh
+$PROCEDURE 
index 1fcb00b4004e90963a617348f36b4543b8aed1f1..9387512f02fb574321e80656c2574bfc5282f130 100755 (executable)
@@ -14,7 +14,7 @@ print_env()
 {
 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
 #$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENROOT=\${INSTALL_ROOT}/${PRODUCT}
+export NETGENHOME=\${INSTALL_ROOT}/${PRODUCT}
 ##
 EOF
 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
@@ -27,7 +27,7 @@ check_version
 if [ $? -eq 0 ] ; then
     cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
 #$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENROOT=\${NETGENROOT}
+export NETGENHOME=\${NETGENROOT}
 ##
 EOF
     make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
index 473568910a50561de57f2325dd95e12ce2f8da27..7542309efa2a5da7f45ab27dc5b727c32c124c97 100755 (executable)
@@ -48,6 +48,7 @@ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
 export TCLHOME=\${INSTALL_ROOT}/${PRODUCT}
 export PATH=\${TCLHOME}/bin:\${PATH}
 export LD_LIBRARY_PATH=\${TCLHOME}/lib:\${LD_LIBRARY_PATH}
+export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl8.3 \${TCLHOME}/lib/tk8.3 \${TCLLIBPATH}"
 ##
 EOF
 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
@@ -71,6 +72,7 @@ if [ -n "${tclhome}" ] ; then
 export TCLHOME=${tclhome}
 export PATH=${path}
 export LD_LIBRARY_PATH=${ld_library_path}
+export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl8.3 \${TCLHOME}/lib/tk8.3 \${TCLLIBPATH}"
 ##
 EOF
     (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
index 795b3a15dc7338f877e862d0cb873ad26b38d6eb..c9fd6fd4ab7f685689cfcec1605044ee23ff47da 100755 (executable)
Binary files a/doc/application.png and b/doc/application.png differ
index 9d587b849b49c5d57b3ad277768eb34cc95c109c..cd9423ed483ebc4cddd72b4245d1deab367c72af 100755 (executable)
Binary files a/doc/choicepage.png and b/doc/choicepage.png differ
index de91c5f80b4c73039d022d3f4f09f702d759dbb1..cbe0a7d7e42aaa4684eb5b6904b9e09b3b5f3a0c 100755 (executable)
Binary files a/doc/productpage.png and b/doc/productpage.png differ
index 68de84779a3b3ab0a11899b482ce156aaad25557..4e72a8878fa48508ad4b73e8fbb0c386d2bffca8 100755 (executable)
Binary files a/doc/progresspage.png and b/doc/progresspage.png differ
index 87adc361104f39cadf32c39b2f4dd5fe729967d0..d4d755d28577fd54fdcda4cff7a699a59132d1a1 100755 (executable)
@@ -10,7 +10,7 @@
        
   <meta name="Author"
  content="Vadim SANDLER (v-sandler@opencascade.com)">
-  <title>PAL/SALOME v2.1.0 Installation Wizard Help</title>
+  <title>SALOME v2.2.0 Installation Wizard Help</title>
 </head>
   <body style="color: rgb(0,0,0); background-color: rgb(255,255,229);"
  link="#0000ee" vlink="#551a8b" alink="#ff0000">
         </td>
         <td>              
       <center>              
-      <h1><font size="+4"><font color="#000099">PAL/SALOME Installation Wizard
+      <h1><font size="+4"><font color="#000099">SALOME Installation Wizard
  Help</font>&nbsp;</font></h1>
         </center>
         </td>
         <td>              
       <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
- src="application.png" border="0" height="45" width="104">
+ src="application.png" border="0" height="47" width="109">
        </a></div>
         </td>
       </tr>
@@ -41,7 +41,7 @@
 </table>
   </center>
    
-<div align="right"><b><font color="#000099">updated for the version 2.1.0</font></b></div>
+<div align="right"><b><font color="#000099">updated for the version 2.2.0</font></b></div>
    
 <hr>  
 <ul>
@@ -154,7 +154,7 @@ disk space, temporary files disk space, list of prerequisites and user choice.
 </p>
    
 <center><a name="ProductPage"></a><br>
-  <img src="productpage.png" height="525" width="565" alt="">
+  <img src="productpage.png" height="558" width="599" alt="">
    
 <p><b>Figure 1:</b> "Installation settings" page in the advanced mode</p>
   </center>
@@ -193,7 +193,7 @@ wizard will follow to the next page: </p>
    
 <center>  
 <p><a name="ChoicePage"></a><br>
-  <img src="choicepage.png" height="525" width="565" alt="">
+  <img src="choicepage.png" height="558" width="599" alt="">
  </p>
    
 <p><b>Figure 2:</b> "Check your choice" page</p>
@@ -205,7 +205,7 @@ wizard will follow to the next page: </p>
 follow to the <a href="#ProgressPage">next page</a>. </p>
    
 <center><a name="ProgressPage"></a><br>
-  <img src="progresspage.png" height="525" width="565" alt="">
+  <img src="progresspage.png" height="558" width="599" alt="">
    
 <p><b>Figure 3:</b> "Installation progress" page</p>
   </center>
@@ -238,7 +238,7 @@ or click <i>"Next"</i> button to go the Readme page: </p>
    
 <center>  
 <p><a name="readmepage"></a><br>
-  <img src="readmepage.png" height="525" width="565" alt="">
+  <img src="readmepage.png" height="558" width="599" alt="">
  </p>
    
 <p><b>Figure 4:</b> "Finish installation" page</p>
@@ -337,7 +337,7 @@ preinstalled version of Open CASCADE, reinstall it</td>
         <td></td>
         <td></td>
         <td>Open CASCADE 5.2 provided with the Installation Wizard already includes the patch,
-necessary for PAL/SALOME 2.1.0. In addition the Installation Wizard provides the sources of a Open CASCADE patch
+necessary for SALOME 2.2.0. In addition the Installation Wizard provides the sources of a Open CASCADE patch
 which can be applied to original Open CASCADE 5.2. sources before compilation.</td>
       </tr>
       <tr>
@@ -397,12 +397,12 @@ to use OpenGL drivers installed on your computer locally. This check procedure
   HDF5 Version: 1.4.4</td>
       </tr>
       <tr>
-        <td>Med 2.1.6</td>
+        <td>Med 2.2.2</td>
         <td>existence of MED2HOME <br>
-  existence of libmed.so.0.0.0</td>
+  existence of libmed.so.1.0.1</td>
         <td>set MED2HOME if you have preinstalled version of med</td>
         <td>Unfortunately we can't check version number. <br>
-  We try to find libmed.so.0.0.0 in ${MED2HOME}/lib folder. <br>
+  We try to find libmed.so.1.0.1 in ${MED2HOME}/lib folder. <br>
   If you have problem with preinstalled version of med reinstall it.</td>
       </tr>
       <tr>
@@ -525,8 +525,8 @@ otherwise searching is done using $LD_LIBRARY_PATH . <br>
   ver=`cat $MODULE_ROOT_DIR/bin/salome/VERSION | awk -F: '{print $2}' | tr 
 -d '[:space:]'`</td>
         <td>set MODULE_ROOT_DIR if you have preinstalled binaries of MODULE
- version 2.1.0</td>
-        <td>MODULE binaries should exist and ver should be equal to 2.1.0</td>
+ version 2.2.0</td>
+        <td>MODULE binaries should exist and ver should be equal to 2.2.0</td>
       </tr>
       <tr>
         <td>MODULE sources<br>
@@ -536,8 +536,8 @@ otherwise searching is done using $LD_LIBRARY_PATH . <br>
   existence of VERSION file <br>
   ver=`cat $MODULE_SRC/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]'`</td>
         <td>set MODULE_SRC_DIR if you have preinstalled sources of MODULE
-version  2.1.0</td>
-        <td>MODULE sources should exist and ver should be equal to 2.1.0</td>
+version  2.2.0</td>
+        <td>MODULE sources should exist and ver should be equal to 2.2.0</td>
       </tr>
        
   </tbody>  
@@ -607,7 +607,7 @@ are in brackets.</font>
   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  [license=&lt;install_wizard_license_info&gt;]</font> <br>
   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- [os=&lt;target_paltform&gt;]</font><b><font color="#000099">/&gt;</font></b><font
+ [os=&lt;target_platform&gt;]</font><b><font color="#000099">/&gt;</font></b><font
  color="#000000">]</font> <br>
   <font color="#000000"><b>&nbsp;&nbsp;&nbsp; </b>[</font><b><font
  color="#000099">&lt;path</font></b><font color="#000000"> [targetdir=&lt;target_directory&gt;]</font>
@@ -807,7 +807,7 @@ of prerequisite products, separated by space;</font> <br>
  </p>
    
 <p><font color="#000000">Example:</font> <br>
-  <i><font color="#000000">med-2.1.6.sh install_binary /tmp/work ./Products/BINARIES/RedHat8.0
+  <i><font color="#000000">med-2.2.2.sh install_binary /tmp/work ./Products/BINARIES/RedHat8.0
  /usr/salome 'gcc Hdf' med</font></i> </p>
    
 <p><font color="#000000">Copy created script into the <i>&lt;Install_Wizard_root_directory&gt;/config_files</i>
index 5cd011c6e8d126018e6207acbb5d1620524630f2..f60228d1aedc3b689e6a1ee74afc56f89662041f 100644 (file)
Binary files a/doc/readmepage.png and b/doc/readmepage.png differ
index 2f81342139fa2f57b02e0127b677b87a251bcb20..367320d94b47bd635ba8e8da215e1b25c55f68e3 100755 (executable)
@@ -7,12 +7,12 @@ import sys, os, string, re
 # get_help_info
 #==============================================================
 def get_help_info() :
-    str = "\nPAL/SALOME Installation Wizard\n\n"
+    str = "\nSALOME2 Installation Wizard\n\n"
     str = str + "\tUsage : \n\tInstall [-g|b] [-f <xml-file>] [-t <target-dir>] [-tmp <tmp-dir>]\n"
     str = str + "\n"
     str = str + " -g              Runs the Installation Wizard in the GUI mode.\n"
     str = str + "                 In this case only <xmlfile> is taken into account \n"
-    str = str + "                 from the parameters list. This key is default.\n"
+    str = str + "                 from the parameters list. This key is used by default.\n"
     str = str + "\n"
     str = str + " -b              Runs the Installation Wizard in the batch mode.\n"
     str = str + "                 All the found parameters are taken in to account.\n"
@@ -32,9 +32,15 @@ def get_help_info() :
     str = str + "                 This parameter overloads the temporary directory described in the\n"
     str = str + "                 configuration file.\n"
     str = str + "\n"
-    str = str + " -h              Prints help information.\n" 
+    str = str + " -h              Prints this help information.\n" 
     return str
 
+#==============================================================
+# message finction
+#==============================================================
+def message(msg):
+    print ">>>", msg
+    
 #==============================================================
 # error_exit
 #==============================================================
@@ -143,6 +149,12 @@ def parse_parameters (args) :
     return [xmlfile, target_dir,  tmp_dir, is_gui]
 
 
+#=================================================================
+# Checks boolean value: yes/no, true/false, 1/0
+#=================================================================
+def check_bool(val):
+    return str(val).strip() in ["yes","true", "1"]
+
 #=================================================================
 # The first algorithm to create the dependencies list by their level
 #=================================================================
@@ -248,6 +260,24 @@ def get_dependencies_set(prods) :
 
     return deps 
     
+#=================================================================
+# The third algorithm (same as SALOME_InstallWizard.cxx uses)
+#=================================================================
+def get_dependencies(prods) :
+    list = []
+    for product in prods:
+        if check_bool(product.disable): continue
+        
+        deps = product.dependencies.split(",")
+        for dep in deps:
+            if dep and not dep in list:
+                list.append( dep )
+                
+        if product and not product in list:
+            list.append( product.name )
+            
+    return " ".join( list )
+
 #==============================================================
 # Creates dir, returns the part of path that existed early.
 # Access may be defined.
@@ -365,7 +395,6 @@ class ConfigParser(xmllib.XMLParser):
     def start_path (self, attrs):
         self.path = Path(attrs['targetdir'],
                          attrs['tempdir'])
-        print self.path.tmpdir
         
     def end_path(self):
         pass
@@ -394,7 +423,7 @@ def check_dir(dir):
     if (os.path.islink(dir)) :
         native_dir = os.readlink(dir)
         if not os.path.exists(native_dir) :
-            print "Bad link " + native_dir + " to directory " + native_dir + ". The last does not exist."
+            print "Invalid link " + dir + ". The directory " + native_dir + " a link points to does not exist."
             return 0 # problem
     else :
         if not os.path.exists(dir):
@@ -414,7 +443,7 @@ def check_disk_space(products, script_dir, target_dir, tmp_dir):
         product.install = re.sub(r'^\s+', "", product.install)
         product.install = re.sub(r'\s+$', "", product.install)
         
-        if product.disable == "true" or product.install == "use native":
+        if check_bool(product.disable) or product.install == "use native" or product.install == "not install":
             continue
         spaces = string.split( product.installdiskspace,',')
         prod_space = spaces[0]
@@ -434,7 +463,14 @@ def check_disk_space(products, script_dir, target_dir, tmp_dir):
     
     return 1
  
-
+#===============================================================
+# Removes temporary directory
+#===============================================================
+def remove_dir( rem_path = "" ):
+    if len( rem_path ) and os.path.exists( rem_path ):
+        os.system( "rm -rf " + rem_path )
+    pass
+    
 #================================================================
 # main
 #================================================================
@@ -459,10 +495,10 @@ if __name__ == "__main__":
                 
         xml_file = cur_dir +  xml_file_name
     if xml_file is None or not os.path.exists(xml_file):
-        error_exit("No xml file is found try to run with options -f <xmlfile>")
+        error_exit("No xml file is found, try to run with options -f <xmlfile>")
 
     if not os.access(xml_file, os.R_OK):
-        print "There is no acceess to read "+ xml_file
+        print "There is no read access for "+ xml_file
         sys.exit(1)
 
     #---- GUI ----------------
@@ -483,7 +519,8 @@ if __name__ == "__main__":
     #-----  TUI ---------------------
 
     #print xml_file, target_dir, tmp_dir, is_gui
-    
+
+    message("Parsing xml config file: " + xml_file)
     filehandle = open(xml_file)
     data = filehandle.read()
     filehandle.close()
@@ -493,23 +530,25 @@ if __name__ == "__main__":
 
     # definitions :
     # map
-    what_to_do = { "install sources":"install_source",
-                   "install binaries":"install_binary",
-                   "use native":"try_native"}
+    what_to_do = { "install sources"  : "install_source",
+                   "install binaries" : "install_binary",
+                   "use native"       : "try_native",
+                   "not install"      : "try_preinstalled"}
     # define tmp dir  -----------
     if tmp_dir is None:
         tmp_dir = parser.path.tmpdir
+    if tmp_dir is None or tmp_dir == "":
+        tmp_dir = "/tmp"
+    import random
+    tmp_dir = tmp_dir + "/INSTALLWORK" + str(random.randint(10000,100000))
     root_path = ""
     if not os.path.exists(tmp_dir):
-        print "Creating " + tmp_dir; root_path = create_dir(tmp_dir) ; 
-        import random
-        tmp_dir = tmp_dir + "/INSTALLWORK" + str(random.randint(10000,100000))
-        create_dir(tmp_dir,0755)
-        if not os.path.exists(tmp_dir):
-            error_exit("There is no tmp directory " + tmp_dir + ". Use -tmp key to set directory or correct xml file\n\n")
+        message("Creating temporary directory: " + tmp_dir); root_path = create_dir(tmp_dir, 0755) ; 
+    if not os.path.exists(tmp_dir):
+        error_exit("Invalid temporary directory " + tmp_dir + ". Use -tmp key to set directory or correct xml file\n\n")
 
     if not os.access(tmp_dir, os.W_OK) :
-        str = "We have no write permissions for directory " + tmp_dir + ". Use -tmp key to set directory or correct xml file"
+        str = "There is no write permissions for directory " + tmp_dir + ". Use -tmp key to set temporary directory or correct xml file"
         error_exit(str)
         
     # define target dir  --------
@@ -517,45 +556,47 @@ if __name__ == "__main__":
         target_dir = parser.path.targetdir
 
     if not os.path.exists(target_dir):
-        print "Creating " + target_dir; create_dir(target_dir, 0755)
-        if not os.path.exists(target_dir):
-            error_exit("There is no target directory " + target_dir + ". Use -t key to set directory or correct xml file\n\n")
+        message("Creating target directory: " + target_dir); create_dir(target_dir, 0755)
+    if not os.path.exists(target_dir):
+        error_exit("Invalid target directory " + target_dir + ". Use -t key to set directory or correct xml file\n\n")
 
     if not os.access(target_dir, os.W_OK) :
-        str = "We have no write permissions for directory " + target_dir + ". Use -t key to set directory or correct xml file"
+        str = "There is no write permissions for directory " + target_dir + ". Use -t key to set target directory or correct xml file."
         error_exit(str)
-    
 
     # define products dir ------------
     source_dir =  cur_dir + "Products" ; 
     if not check_dir(source_dir):
-        if len(root_path) and os.path.exists(root_path):
-            os.system("rm -r -f "+ root_path)
+        remove_dir(root_path)
         sys.exit(1)
        
     subdir = {"install sources"  : "SOURCES",
               "install binaries" : "BINARIES/"+parser.config.os,
-              "use native": ""}
+              "use native"       : "",
+              "not install"      : ""}
 
 
     #  define scripts dir ------------
     scripts_dir = cur_dir + "config_files/"
     if not check_dir(scripts_dir):
-        if len(root_path) and os.path.exists(root_path):
-            os.system("rm -r -f "+ root_path)
+        remove_dir(root_path)
         sys.exit(1)
     os.chdir(scripts_dir)
 
-    list_of_dep =  create_levels(parser.products)
+    #list_of_dep =  create_levels(parser.products)
     #list_of_dep =  get_dependencies_set(parser.products)
+    list_of_dep =  get_dependencies(parser.products)
 
+    message("Checking available disk space")
     if check_disk_space(parser.products, scripts_dir, target_dir, tmp_dir) :
 
+        message("Starting...")
         # install products
         for product in parser.products :
 
-            if product.disable == "true": continue
+            if check_bool(product.disable): continue
 
+            message("Processing " + product.name + "...")
             cmd = scripts_dir +  product.script + " " + \
                   what_to_do[product.install]+ " " + \
                   tmp_dir + " " + \
@@ -565,14 +606,15 @@ if __name__ == "__main__":
                   product.name
 
             res = os.system(cmd)
-            if res : break;
+            #if res : break; # try_preinstalled can return 1
 
         # pickup environment
+        message("Creating environment files")
         for product in parser.products :
 
-            if product.disable == "true": continue
+            if check_bool(product.disable): continue
 
-            if product.pickupEnv == "true":
+            if check_bool(product.pickupEnv):
                 cmd = scripts_dir +  product.script + " " + \
                       "pickup_env " + \
                       tmp_dir + " " + \
@@ -583,5 +625,6 @@ if __name__ == "__main__":
                 
                 res = os.system(cmd)
 
-    if len(root_path) and os.path.exists(root_path):
-        os.system("rm -r -f "+ root_path)
+    message("Cleaning temporary directory")
+    remove_dir(root_path)
+    message("Finished!")
index 84a80d8b955fb51808e366cf746db02691ffca53..b65c80e8b66d33b5cb9eb9583bd610faecf1e598 100644 (file)
@@ -1,29 +1,72 @@
-//  File      : InstallWizard.cpp
-//  Created   : Thu Mar 27 12:01:00 2003
-//  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+/****************************************************************************
+** $Id$
+**
+** Definition of the QWizard class.
+**
+** Created : 990101
+**
+** Copyright (C) 1999 by Trolltech AS.  All rights reserved.
+**
+** This file is part of the dialogs module of the Qt GUI Toolkit.
+**
+** This file may be distributed under the terms of the Q Public License
+** as defined by Trolltech AS of Norway and appearing in the file
+** LICENSE.QPL included in the packaging of this file.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
+** licenses may use this file in accordance with the Qt Commercial License
+** Agreement provided with the Software.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
+**   information about Qt Commercial License Agreements.
+** See http://www.trolltech.com/qpl/ for QPL licensing information.
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
 
 #include "InstallWizard.h"
 
-#include "qlayout.h"
-#include "qpushbutton.h"
-#include "qcursor.h"
-#include "qlabel.h"
-#include "qwidgetstack.h"
-#include "qapplication.h"
-#include "qptrlist.h"
-#include "qpainter.h"
-#include "qaccel.h"
-#include "qhbox.h"
-#include "qobjectlist.h"
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qcursor.h>
+#include <qlabel.h>
+#include <qwidgetstack.h>
+#include <qapplication.h>
+#include <qptrlist.h>
+#include <qpainter.h>
+#include <qaccel.h>
+#include <qhbox.h>
+#include <qobjectlist.h>
+#include <qthread.h>
+
+#define PROCESS_EVENT QEvent::User+100
+
+class ProcessEvent : public QCustomEvent
+{
+public:
+  ProcessEvent( int retValue = 0, void* data = 0 ): QCustomEvent( PROCESS_EVENT ), myReturnValue( retValue ), myData( data ) {} 
+  const int  returnValue() const { return myReturnValue; }
+  void*      data()        const { return myData; }
+private:
+  int   myReturnValue;
+  void* myData;
+};
 
 class InstallWizardPrivate
 {
 public:
-  struct Page {
+   struct Page {
     Page( QWidget * widget, const QString & title ):
           w( widget ), t( title ),
     backEnabled( TRUE ), nextEnabled( TRUE ), finishEnabled( FALSE ),
@@ -327,9 +370,21 @@ void InstallWizard::next()
   while ( i > 0 && (i >= (int)d->pages.count() || !d->pages.at( i ) ) )
     i--;
   if ( d->pages.at( i ) ) {
-    if ( d->current && !acceptData( d->current->t ) )
-      return;
-    showPage( d->pages.at( i )->w );
+    if ( d->current ) {
+      nextButton()->setEnabled( false );
+      backButton()->setEnabled( false );
+      if ( !acceptData( d->current->t ) ) {
+        nextButton()->setEnabled( true );
+        backButton()->setEnabled( true );
+        return;
+      }
+    }
+    // VSR : commented 10/02/05 --->
+    // Next page will be shown later in processValidateEvent() method
+    // this allows custom validation, for instance by using external processing threads.
+    // See SALOME_InstallWizard.cxx for details where it is used.
+    //showPage( d->pages.at( i )->w );
+    // VSR : commented 10/02/05 <---
   }
 }
 
@@ -715,6 +770,7 @@ Should return true in success
 */
 bool InstallWizard::acceptData( const QString& )
 {
+  postValidateEvent( this );
   return TRUE;
 }
 
@@ -853,3 +909,46 @@ void InstallWizard::removeLogos()
   }
   delete children;
 }
+
+/*!
+Posts validation event
+*/
+void InstallWizard::postValidateEvent( InstallWizard* iw, const int val, void* data )
+{
+  QThread::postEvent( iw, new ProcessEvent( val, data ) );
+}
+
+/*!
+Processes validation event: default implementation just to show next page
+*/
+void InstallWizard::processValidateEvent( const int /* val */, void* /* data */ )
+{
+  int i = 0;
+  while( i < (int)d->pages.count() && d->pages.at( i ) &&
+    d->current && d->pages.at( i )->w != d->current->w )
+    i++;
+  i++;
+  while( i <= (int)d->pages.count()-1 &&
+    ( !d->pages.at( i ) || !appropriate( d->pages.at( i )->w ) ) )
+     i++;
+  // if we fell of the end of the world, step back
+  while ( i > 0 && (i >= (int)d->pages.count() || !d->pages.at( i ) ) )
+    i--;
+  if ( d->pages.at( i ) ) {
+    showPage( d->pages.at( i )->w );
+  }
+  nextButton()->setEnabled( true );
+  backButton()->setEnabled( true );
+}
+
+/*!
+Process events received
+*/
+bool InstallWizard::event ( QEvent* e )
+{
+  if ( e->type() == PROCESS_EVENT ) {
+    ProcessEvent* pe = (ProcessEvent*)e;
+    processValidateEvent( pe->returnValue(), pe->data() );
+  }
+  return QDialog::event( e );
+}
index 47dbd38fb198f30dc25ed338db9454efb7662084..34a766a084d0caccefd7cf73e511aa16dbb37f63 100644 (file)
@@ -1,18 +1,47 @@
-//  File      : InstallWizard.h
-//  Created   : Thu Mar 27 12:01:00 2003
-//  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+/****************************************************************************
+** $Id$
+**
+** Definition of the QWizard class.
+**
+** Created : 990101
+**
+** Copyright (C) 1999 by Trolltech AS.  All rights reserved.
+**
+** This file is part of the dialogs module of the Qt GUI Toolkit.
+**
+** This file may be distributed under the terms of the Q Public License
+** as defined by Trolltech AS of Norway and appearing in the file
+** LICENSE.QPL included in the packaging of this file.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
+** licenses may use this file in accordance with the Qt Commercial License
+** Agreement provided with the Software.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
+**   information about Qt Commercial License Agreements.
+** See http://www.trolltech.com/qpl/ for QPL licensing information.
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
 
 #ifndef InstallWizard_h
 #define InstallWizard_h
 
-#include "qdialog.h"
+#include <qdialog.h>
 
 /*!
-  This is the patched QWizard class
+  This is the patched Qt 3.0.5 QWizard class
 */
 class QHBoxLayout;
 class InstallWizardPrivate;
@@ -24,7 +53,13 @@ class InstallWizard : public QDialog
 public:
   InstallWizard( QWidget* parent=0, const char* name=0, bool modal=FALSE, WFlags f=0 );
   ~InstallWizard();
+
+  static void postValidateEvent( InstallWizard* iw, const int val = 0, void* data = 0 );
   
+  virtual void processValidateEvent( const int val, void* data );
+
+  bool event ( QEvent * e );
+
   void show();
   
   void setFont( const QFont & font );
diff --git a/src/LICENSE.QPL b/src/LICENSE.QPL
new file mode 100644 (file)
index 0000000..ecdad6e
--- /dev/null
@@ -0,0 +1,103 @@
+                            THE Q PUBLIC LICENSE
+                                 version 1.0
+
+                  Copyright (C) 1999-2000 Trolltech AS, Norway.
+                      Everyone is permitted to copy and
+                      distribute this license document.
+
+The intent of this license is to establish freedom to share and change the
+software regulated by this license under the open source model.
+
+This license applies to any software containing a notice placed by the
+copyright holder saying that it may be distributed under the terms of
+the Q Public License version 1.0.  Such software is herein referred to as
+the Software.  This license covers modification and distribution of the
+Software, use of third-party application programs based on the Software,
+and development of free software which uses the Software.
+
+                                Granted Rights
+
+1. You are granted the non-exclusive rights set forth in this license
+   provided you agree to and comply with any and all conditions in this
+   license.  Whole or partial distribution of the Software, or software
+   items that link with the Software, in any form signifies acceptance of
+   this license.
+
+2. You may copy and distribute the Software in unmodified form provided
+   that the entire package, including - but not restricted to - copyright,
+   trademark notices and disclaimers, as released by the initial developer
+   of the Software, is distributed.
+
+3. You may make modifications to the Software and distribute your
+   modifications, in a form that is separate from the Software, such as
+   patches. The following restrictions apply to modifications:
+
+     a. Modifications must not alter or remove any copyright notices in
+        the Software.
+
+     b. When modifications to the Software are released under this
+        license, a non-exclusive royalty-free right is granted to the
+        initial developer of the Software to distribute your modification
+        in future versions of the Software provided such versions remain
+        available under these terms in addition to any other license(s) of
+        the initial developer.
+
+4. You may distribute machine-executable forms of the Software or
+   machine-executable forms of modified versions of the Software, provided
+   that you meet these restrictions:
+
+     a. You must include this license document in the distribution.
+
+     b. You must ensure that all recipients of the machine-executable forms
+        are also able to receive the complete machine-readable source code
+        to the distributed Software, including all modifications, without
+        any charge beyond the costs of data transfer, and place prominent
+        notices in the distribution explaining this.
+
+     c. You must ensure that all modifications included in the
+        machine-executable forms are available under the terms of this
+        license.
+
+5. You may use the original or modified versions of the Software to
+   compile, link and run application programs legally developed by you
+   or by others.
+
+6. You may develop application programs, reusable components and other
+   software items that link with the original or modified versions of the
+   Software.  These items, when distributed, are subject to the following
+   requirements:
+
+     a. You must ensure that all recipients of machine-executable forms of
+        these items are also able to receive and use the complete
+        machine-readable source code to the items without any charge
+        beyond the costs of data transfer.
+
+     b. You must explicitly license all recipients of your items to use
+        and re-distribute original and modified versions of the items in
+        both machine-executable and source code forms. The recipients must
+        be able to do so without any charges whatsoever, and they must be
+        able to re-distribute to anyone they choose.
+
+
+     c. If the items are not available to the general public, and the
+        initial developer of the Software requests a copy of the items,
+        then you must supply one.
+
+                           Limitations of Liability
+
+In no event shall the initial developers or copyright holders be liable
+for any damages whatsoever, including - but not restricted to - lost
+revenue or profits or other direct, indirect, special, incidental or
+consequential damages, even if they have been advised of the possibility
+of such damages, except to the extent invariable law, if any, provides
+otherwise.
+
+                                 No Warranty
+
+The Software and this license document are provided AS IS with NO WARRANTY
+OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE.
+                                 Choice of Law
+
+This license is governed by the Laws of Norway. Disputes shall be settled
+by Oslo City Court.
index daf85394ef546d71ccf7845c88e2ca702f880c4e..ecfd30663ba4467d7f526a187cee5c84185d5234 100644 (file)
@@ -1,6 +1,6 @@
 #############################################################################
 # Makefile for building: ../bin/SALOME_InstallWizard
-# Generated by qmake (1.03a) on: Wed Nov 10 19:38:39 2004
+# Generated by qmake (1.03a) on: Wed Feb  9 18:40:38 2005
 # Project:  SALOME_INSTALL.pro
 # Template: app
 # Command: $(QMAKE) SALOME_INSTALL.pro
@@ -12,14 +12,14 @@ CC       = gcc
 CXX      = g++
 LEX      = flex
 YACC     = yacc
-CFLAGS   = -pipe -Wall -W -O2  -DQT_NO_DEBUG
-CXXFLAGS = -pipe -Wall -W -O2  -DQT_NO_DEBUG
+CFLAGS   = -pipe -Wall -W -O2 -D_REENTRANT  -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
+CXXFLAGS = -pipe -Wall -W -O2 -D_REENTRANT  -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
 LEXFLAGS = 
 YACCFLAGS= -d
 INCPATH  = -I$(QTDIR)/include -I$(QTDIR)/mkspecs/default
 LINK     = g++
 LFLAGS   = 
-LIBS     = $(SUBLIBS)  -Wl,-rpath,$(QTDIR)/lib  -L$(QTDIR)/lib  -L/usr/X11R6/lib -ldl -lXinerama -lSM -lqt-mt -lXext -lX11 -lm -lpthread -lXrender -lXinerama -lGL -lpng -lmng -ljpeg
+LIBS     = $(SUBLIBS)  -Wl,-rpath,$(QTDIR)/lib  -L$(QTDIR)/lib  -L/usr/X11R6/lib -lqt-mt -ldl -lSM -lXrender -lpng -lmng -ljpeg -lGL -lXinerama -lqt-mt -lpthread -lXext -lX11 -lm
 AR       = ar cqs
 RANLIB   = 
 MOC      = $(QTDIR)/bin/moc
@@ -47,7 +47,8 @@ HEADERS = SALOME_InstallWizard.hxx \
                SALOME_XmlHandler.hxx \
                SALOME_HelpWindow.hxx \
                icons.h \
-               InstallWizard.h
+               InstallWizard.h \
+               globals.h
 SOURCES = main.cxx \
                SALOME_InstallWizard.cxx \
                SALOME_ProductsView.cxx \
@@ -139,10 +140,12 @@ FORCE:
 
 ####### Compile
 
-main.o: main.cxx SALOME_InstallWizard.hxx \
+main.o: main.cxx globals.h \
+               SALOME_InstallWizard.hxx \
                InstallWizard.h
 
-SALOME_InstallWizard.o: SALOME_InstallWizard.cxx SALOME_InstallWizard.hxx \
+SALOME_InstallWizard.o: SALOME_InstallWizard.cxx globals.h \
+               SALOME_InstallWizard.hxx \
                SALOME_ProductsView.hxx \
                SALOME_ProgressView.hxx \
                SALOME_XmlHandler.hxx \
@@ -154,7 +157,8 @@ SALOME_ProductsView.o: SALOME_ProductsView.cxx SALOME_ProductsView.hxx
 
 SALOME_ProgressView.o: SALOME_ProgressView.cxx SALOME_ProgressView.hxx
 
-SALOME_XmlHandler.o: SALOME_XmlHandler.cxx SALOME_XmlHandler.hxx \
+SALOME_XmlHandler.o: SALOME_XmlHandler.cxx globals.h \
+               SALOME_XmlHandler.hxx \
                SALOME_ProductsView.hxx \
                SALOME_InstallWizard.hxx \
                InstallWizard.h
index b5a5d2b3c4690bd789ce06d6b0ad0c508cd74087..9329a6bdbe5ccf74bcfb6a8a4edc923df10ec550 100644 (file)
@@ -2,14 +2,28 @@
 Notes on building SALOME Installation Wizard.
 ---------------------------------------------------------
 
-You must have precompiled gcc and qt static libraries.
-Then set STATIC_ROOT properlly in Env.csh file.
-(We used gcc 2.95.3 and qt 3.0.5.)
+SALOME Installation Wizard needs gcc 2.95.3 or newer and qt 3.0.5 or newer.
+We use statically compiled gcc and qt in order to minimize external dependencies 
+of Installation Wizard (see env.csh for details)
 
 To build InstalWizard :
 - go to sources direcory;
-- run "source Env.csh"
+- run "source env.csh"
 - run "make"
 
 You can rebuild Makefile by using qmake utility when necessary:
 qmake -o Makefile SALOMEPRO_INSTALL.pro
+
+---------------------------------------------------------
+Using Qt files
+---------------------------------------------------------
+
+SALOME Installation Wizard uses modified Qt's QWizard class.
+This class is patched and and it's functionality is extended
+to provide needed behaviour.
+The QWizard class is renamed in order to avoid compilation problems.
+The Qt's files (originally qwizard.*) are used under terms of the 
+GNU General Public License version 2 as published by the Free Software
+Foundation and appearing in the file LICENSE.GPL included in the
+packaging of the Installation Wizard sources.
+
index 8fe4970a68f8116ac6725c48116c821ff5ce1bd5..a08b99564af4da30a392480619b405a2eae7b13b 100644 (file)
@@ -1,10 +1,9 @@
 //  File      : SALOME_HelpWindow.cxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
 
 #include "SALOME_HelpWindow.hxx"
 #include "SALOME_InstallWizard.hxx"
index fec2a1d348b9cc8c99a71cd5fb4cf9206e30f012..0ae3183a952bf8c02e53eb2f08880988e57c1f54 100644 (file)
@@ -1,10 +1,9 @@
 //  File      : SALOME_HelpWindow.hxx
 //  Created   : Thu Dec 18 12:01:00 2002
-//  Author    : Vadin SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Author    : Vadim SANDLER
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
 
 #ifndef __SALOME_HelpWindow
 #define __SALOME_HelpWindow
index 409cebea64fcec7356a454de807834b8f27b719c..38126b7503bf603c96605dd29e4183dcd2834e4a 100644 (file)
@@ -1,13 +1,12 @@
 #  File      : SALOME_INSTALL.pro
 #  Created   : Thu Dec 18 12:01:00 2002
 #  Author    : Vadim SANDLER
-#  Project   : PAL/SALOME
-#  Module    : InstallWizard
-#  Copyright : 2004 CEA
-#  $Header$ 
+#  Project   : SALOME
+#  Module    : Installation Wizard
+#  Copyright : 2004-2005 CEA
 
 TEMPLATE       =  app
-CONFIG         += qt warn_on release 
+CONFIG         += qt warn_on release thread
 HEADERS                =  SALOME_InstallWizard.hxx
 HEADERS                += SALOME_ProductsView.hxx
 HEADERS                += SALOME_ProgressView.hxx
@@ -15,6 +14,7 @@ HEADERS               += SALOME_XmlHandler.hxx
 HEADERS                += SALOME_HelpWindow.hxx
 HEADERS                += icons.h
 HEADERS                += InstallWizard.h
+HEADERS                += globals.h
 SOURCES                =  main.cxx
 SOURCES                += SALOME_InstallWizard.cxx
 SOURCES                += SALOME_ProductsView.cxx
@@ -23,4 +23,4 @@ SOURCES               += SALOME_XmlHandler.cxx
 SOURCES                += SALOME_HelpWindow.cxx
 SOURCES                += InstallWizard.cpp
 TARGET         = ../bin/SALOME_InstallWizard
-unix:LIBS       += -lqt -ldl -lXinerama -lXft -lSM
+unix:LIBS       += -lqt-mt -ldl -lSM -lXrender -lpng -lmng -ljpeg -lGL -lXinerama
index db628fcb362c01767e9885982c7329165fe61d4f..9a83803f0d64b2763397267427b56b4b14491755 100644 (file)
@@ -1,10 +1,11 @@
 //  File      : SALOME_InstallWizard.cxx 
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
+
+#include "globals.h"
 
 #include "SALOME_InstallWizard.hxx"
 #include "SALOME_ProductsView.hxx"
@@ -33,6 +34,8 @@
 #include <qwhatsthis.h> 
 #include <qtooltip.h>
 #include <qfile.h>
+#include <qthread.h>
+#include <qwaitcondition.h>
 
 #ifdef WNT
 #include <iostream.h>
 QString tmpDirName() { return QString(  "/INSTALLWORK" ) + QString::number( getpid() ); }
 #define TEMPDIRNAME tmpDirName()
 
+// ================================================================
+/*!
+ *  QProcessThread
+ *  Class for executing systen commands
+ */
+// ================================================================
+QWaitCondition myWC;
+class QProcessThread: public QThread
+{
+  typedef QPtrList<QCheckListItem> ItemList;
+public:
+  QProcessThread( SALOME_InstallWizard* iw ) : QThread(), myWizard( iw ) { myItems.setAutoDelete( false ); }
+
+  void addCommand( QCheckListItem* item, const QString& cmd ) {
+    myItems.append( item );
+    myCommands.push_back( cmd );
+  }
+
+  bool hasCommands() const { return myCommands.count() > 0; }
+  void clearCommands()     { myCommands.clear(); myItems.clear(); }
+
+  virtual void run() {
+    while ( hasCommands() ) {
+      ___MESSAGE___( "QProcessThread::run - Processing command : " << myCommands[ 0 ].latin1() );
+      int result = system( myCommands[ 0 ] ) / 256; // return code is <errno> * 256 
+      ___MESSAGE___( "QProcessThread::run - Result : " << result );
+      QCheckListItem* item = myItems.first();
+      myCommands.pop_front();
+      myItems.removeFirst();
+      SALOME_InstallWizard::postValidateEvent( myWizard, result, (void*)item );
+      if ( hasCommands() )
+       myWC.wait();
+    };
+  }
+
+private:
+  QStringList           myCommands;
+  ItemList              myItems;
+  SALOME_InstallWizard* myWizard;
+};
+
+// ================================================================
+/*!
+ *  WarnDialog
+ *  Warning dialog box
+ */
+// ================================================================
+class WarnDialog: public QDialog
+{
+  static WarnDialog* myDlg;
+  bool myCloseFlag;
+
+  WarnDialog( QWidget* parent ) 
+  : QDialog( parent, "WarnDialog", true, WDestructiveClose ) {
+    setCaption( tr( "Information" ) );
+    myCloseFlag = false;
+    QLabel* lab = new QLabel( tr( "Please, wait while checking native products configuration ..." ), this );
+    lab->setAlignment( AlignCenter );
+    lab->setFrameStyle( QFrame::Box | QFrame::Plain ); 
+    QVBoxLayout* l = new QVBoxLayout( this );
+    l->setMargin( 0 );
+    l->add( lab );
+    this->setFixedSize( lab->sizeHint().width()  + 50, 
+                       lab->sizeHint().height() * 5 );
+  }
+  void accept() { return; }
+  void reject() { return; }
+  void closeEvent( QCloseEvent* e) { if ( !myCloseFlag ) return; QDialog::closeEvent( e ); }
+  
+  ~WarnDialog() { myDlg = 0; }
+public:
+  static void showWarnDlg( QWidget* parent, bool show ) {
+    if ( show ) {
+      if ( !myDlg ) {
+       myDlg = new WarnDialog( parent );
+       QSize sh = myDlg->size();
+       myDlg->move( parent->x() + (parent->width()-sh.width())/2, 
+                    parent->y() + (parent->height()-sh.height())/2 );
+       myDlg->show();
+      }
+      myDlg->raise();
+      myDlg->setFocus();
+    }
+    else {
+      if ( myDlg ) {
+       myDlg->myCloseFlag = true;
+       myDlg->close();
+      }
+    }
+  }
+  static bool isWarnDlgShown() { return myDlg != 0; }
+};
+WarnDialog* WarnDialog::myDlg = 0;
+
 // ================================================================
 /*!
  *  DefineDependeces [ static ]
  *  Defines list of dependancies as string separated by space symbols
  */
 // ================================================================
-static QString DefineDependeces(MapProducts& theProductsMap) {
+static QString DefineDependeces(MapProducts& theProductsMap) 
+{
   QStringList aProducts;
   for ( MapProducts::Iterator mapIter = theProductsMap.begin(); mapIter != theProductsMap.end(); ++mapIter ) {
     QCheckListItem* item = mapIter.key();
@@ -202,9 +300,7 @@ SALOME_InstallWizard::SALOME_InstallWizard(QString aXmlFileName)
   setLicense( tr( "All right reserved" ) );
   setOS( "" );
 
-#ifdef DEBUG
-  cout << "Config. file : " << xmlFileName << endl;
-#endif
+  ___MESSAGE___( "Config. file : " << xmlFileName );
 
   // xml reader
   QFile xmlfile(xmlFileName);
@@ -252,6 +348,9 @@ SALOME_InstallWizard::SALOME_InstallWizard(QString aXmlFileName)
   connect(shellProcess, SIGNAL( readyReadStderr() ), this, SLOT( readFromStderr() ) );
   connect(shellProcess, SIGNAL( processExited() ),   this, SLOT( productInstalled() ) );
   connect(shellProcess, SIGNAL( wroteToStdin() ),    this, SLOT( wroteToStdin() ) );
+
+  // create validation thread
+  myThread = new QProcessThread( this );
 }
 // ================================================================
 /*!
@@ -267,12 +366,11 @@ SALOME_InstallWizard::~SALOME_InstallWizard()
   if ( PID > 0 ) {
     script += QString::number( PID );
     script += " > /dev/null";
-#ifdef DEBUG
-    cout << "script: "<< script.latin1() << endl;
-#endif
+    ___MESSAGE___( "script: " << script.latin1() );
     if ( system( script.latin1() ) ) { 
     }
   }
+  delete myThread;
 }
 // ================================================================
 /*!
@@ -294,6 +392,10 @@ bool SALOME_InstallWizard::eventFilter( QObject* object, QEvent* event )
 // ================================================================
 void SALOME_InstallWizard::closeEvent( QCloseEvent* ce )
 {
+  if ( WarnDialog::isWarnDlgShown() ) {
+    ce->ignore();
+    return;
+  }
   if ( !exitConfirmed ) {
     if ( QMessageBox::information( this, 
                                   tr( "Exit" ), 
@@ -831,9 +933,7 @@ bool SALOME_InstallWizard::acceptData( const QString& pageTitle )
     script += fi.absFilePath();
     script += "' ";
     script += QString( "%1" ).arg( totSize );
-#ifdef DEBUG
-    cout << "script = " << script << endl;
-#endif
+    ___MESSAGE___( "script = " << script );
     if ( system( script ) ) {
       QMessageBox::critical( this, 
                              tr( "Out of space" ), 
@@ -875,9 +975,7 @@ bool SALOME_InstallWizard::acceptData( const QString& pageTitle )
     tscript += fit.absFilePath();
     tscript += "' ";
     tscript += QString( "%1" ).arg( tempSize );
-#ifdef DEBUG
-    cout << "script = " << tscript << endl;
-#endif
+    ___MESSAGE___( "script = " << tscript );
     if ( system( tscript ) ) {
       QMessageBox::critical( this, 
                             tr( "Out of space" ), 
@@ -949,42 +1047,16 @@ bool SALOME_InstallWizard::acceptData( const QString& pageTitle )
     }
     QString tmpFolder = QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME;
     QString tgtFolder = QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() );
+    myThread->clearCommands();
     for ( unsigned i = 0; i < natives.count(); i++ ) {
       item = findItem( natives[ i ] );
       if ( item ) {
+       QString dependOn = productsMap[ item ].getDependancies().join(" ");
        QString script = "cd ./config_files/;" + item->text(2) + " try_native " +
                QFileInfo( tmpFolder ).absFilePath() + " " + QDir::currentDirPath() + "/Products " + QFileInfo( tgtFolder ).absFilePath() + " " +
-               QUOTE(DefineDependeces(productsMap)) + " " + item->text(0);
+               QUOTE(dependOn) + " " + item->text(0);
 
-#ifdef DEBUG
-       cout << "1. Script : " << script << endl;
-#endif
-       int res = system( script ) / 256; // return code is <errno> * 256 
-#ifdef DEBUG
-       cout << "try_native() : res = " << res << endl;
-#endif
-       if ( res > 0 ) {
-         if ( res == 2 ) {
-           // when try_native returns 2 it means that native product version is higher than that is prerequisited
-           if ( QMessageBox::warning( this, 
-                                      tr( "Warning" ), 
-                                      tr( "You have newer version of %1 installed on your computer than that is required (%2).\nContinue?").arg(item->text(0)).arg(item->text(1)), 
-                                      QMessageBox::Yes, 
-                                      QMessageBox::No, 
-                                      QMessageBox::NoButton ) == QMessageBox::No )
-             return false;
-         }
-         else {
-           QMessageBox::warning( this, 
-                                 tr( "Warning" ), 
-                                 tr( "You don't have native %1 %2 installed").arg(item->text(0)).arg(item->text(1)), 
-                                 QMessageBox::Ok, 
-                                 QMessageBox::NoButton, 
-                                 QMessageBox::NoButton );
-           productsView->setNone( item );
-           return false;
-         }
-       }
+       myThread->addCommand( item, script );
       }
       else {
        QMessageBox::warning( this, 
@@ -997,6 +1069,9 @@ bool SALOME_InstallWizard::acceptData( const QString& pageTitle )
        return false;
       }
     }
+    WarnDialog::showWarnDlg( this, true );
+    myThread->start();
+    return true; // return in order to avoid default postValidateEvent() action
   }
   return InstallWizard::acceptData( pageTitle );
 }
@@ -1102,9 +1177,7 @@ void SALOME_InstallWizard::launchScript()
   // try to find product being processed now
   QString prodProc = progressView->findStatus( Processing );
   if ( !prodProc.isNull() ) {
-#ifdef DEBUG
-    cout << "Found <Processing>: " << prodProc.latin1() << endl;
-#endif
+    ___MESSAGE___( "Found <Processing>: " );
 
     // if found - set status to "completed"
     progressView->setStatus( prodProc, Completed );
@@ -1115,15 +1188,12 @@ void SALOME_InstallWizard::launchScript()
   // else try to find next product which is not processed yet
   prodProc = progressView->findStatus( Waiting );
   if ( !prodProc.isNull() ) {
-#ifdef DEBUG
-    cout << "Found <Waiting>: " << prodProc.latin1() << endl;
-#endif
+    ___MESSAGE___( "Found <Waiting>: " << prodProc.latin1() );
     // if found - set status to "processed" and run script
     progressView->setStatus( prodProc, Processing );
     progressView->ensureVisible( prodProc );
 
     QCheckListItem* item = findItem( prodProc );
-    Dependancies dep = productsMap[ item ];
     // fill in script parameters
     shellProcess->clearArguments();
     // ... script name
@@ -1168,9 +1238,7 @@ void SALOME_InstallWizard::launchScript()
     
 
     QString depproducts = DefineDependeces(productsMap); 
-#ifdef DEBUG
-    cout << "Dependancies"<< depproducts.latin1() << endl;
-#endif
+    ___MESSAGE___( "Dependancies"<< depproducts.latin1() );
 
     shellProcess->addArgument( depproducts );
     // ... product name - currently instaled product
@@ -1179,29 +1247,21 @@ void SALOME_InstallWizard::launchScript()
     // run script
     if ( !shellProcess->start() ) {
       // error handling can be here
-#ifdef DEBUG
-      cout << "error" << endl;
-#endif
+      ___MESSAGE___( "error" );
     }
     return;
   }
-#ifdef DEBUG
-  cout << "All products have been installed successfully" << endl;
-#endif
+  ___MESSAGE___( "All products have been installed successfully" );
   // all products are installed successfully
   QString workDir = QDir::cleanDirPath( QFileInfo( "./config_files/" ).absFilePath() );
   MapProducts::Iterator mapIter;
-#ifdef DEBUG
-  cout << "starting pick-up environment" << endl;
-#endif
+  ___MESSAGE___( "starting pick-up environment" );
   for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter ) {
     QCheckListItem* item = mapIter.key();
     Dependancies dep = mapIter.data();
     QString depproducts = QUOTE( DefineDependeces(productsMap) ); 
     if ( dep.pickUpEnvironment() ) {
-#ifdef DEBUG
-      cout << "... for " << dep.getName() << endl;
-#endif
+      ___MESSAGE___( "... for " << dep.getName() );
       QString script;
       script += "cd " + QUOTE( QFileInfo( QDir::cleanDirPath( "./config_files/" ) ).absFilePath() ) + "; ";
       script += item->text(2) + " ";
@@ -1211,13 +1271,9 @@ void SALOME_InstallWizard::launchScript()
       script += QUOTE( QFileInfo( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) ).absFilePath() ) + " ";
       script += depproducts + " ";
       script += item->text(0);
-#ifdef DEBUG
-      cout << "... --> " << script.latin1() << endl;
-#endif
+      ___MESSAGE___( "... --> " << script.latin1() );
       if ( system( script.latin1() ) ) { 
-#ifdef DEBUG
-       cout << "ERROR" << endl; 
-#endif
+       ___MESSAGE___( "ERROR" ); 
       }
     }
   }
@@ -1287,9 +1343,7 @@ void SALOME_InstallWizard::onLaunchSalome()
        script += "cd bin/salome; ";
        script += "runSalome > /dev/null";
        script = "(csh -c '" + script + "')";
-#ifdef DEBUG
-       cout << script.latin1() << endl;
-#endif
+       ___MESSAGE___( "script: " << script.latin1() );
        if ( !system( script.latin1() ) )
          return;
        else
@@ -1350,9 +1404,7 @@ void SALOME_InstallWizard::abort()
 // ================================================================
 void SALOME_InstallWizard::reject()
 {
-#ifdef DEBUG
-  cout << "REJECTED" << endl;
-#endif
+  ___MESSAGE___( "REJECTED" );
   if ( !exitConfirmed ) {
     if ( QMessageBox::information( this, 
                                   tr( "Exit" ), 
@@ -1366,7 +1418,7 @@ void SALOME_InstallWizard::reject()
     }
     exitConfirmed = true;
   }
-  clean();
+  clean(true);
   InstallWizard::reject();
 }
 // ================================================================
@@ -1377,41 +1429,39 @@ void SALOME_InstallWizard::reject()
 // ================================================================
 void SALOME_InstallWizard::accept()
 {
-#ifdef DEBUG
-  cout << "ACCEPTED" << endl;
-#endif
-  clean();
+  ___MESSAGE___( "ACCEPTED" );
+  clean(true);
   InstallWizard::accept();
 }
 // ================================================================
 /*!
  *  SALOME_InstallWizard::clean
- *  Clears and removes temporary directory
+ *  Clears and (optionally) removes temporary directory
  */
 // ================================================================
-void SALOME_InstallWizard::clean()
+void SALOME_InstallWizard::clean(bool rmDir)
 {
+  WarnDialog::showWarnDlg( 0, false );
+  myThread->clearCommands();
+  myWC.wakeAll();
+  while ( myThread->running() );
   // VSR: first remove temporary files
   QString script = "cd ./config_files/; remove_tmp.sh '";
   script += tempFolder->text().stripWhiteSpace() + TEMPDIRNAME;
   script += "' ";
   script += QUOTE(DefineDependeces(productsMap));
   script += " > /dev/null";
-#ifdef DEBUG
-  cout << "script = " << script << endl;
-#endif
+  ___MESSAGE___( "script = " << script );
   if ( system( script.latin1() ) ) {
   }
   // VSR: then try to remove created temporary directory
   //script = "rm -rf " + QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME;
-  if ( !tmpCreated.isNull() ) {
+  if ( rmDir && !tmpCreated.isNull() ) {
     script = "rm -rf " + tmpCreated;
     script += " > /dev/null";
     if ( system( script.latin1() ) ) {
     }
-#ifdef DEBUG
-    cout << "script = " << script << endl;
-#endif
+    ___MESSAGE___( "script = " << script );
   }
 }
 // ================================================================
@@ -1471,9 +1521,7 @@ void SALOME_InstallWizard::pageChanged( const QString & mytitle)
     finishButton()->setEnabled( true );
   }
   previousPage = aPage;
-#ifdef DEBUG
-  cout << "previousPage = " << previousPage << endl;
-#endif
+  ___MESSAGE___( "previousPage = " << previousPage );
 }
 // ================================================================
 /*!
@@ -1554,6 +1602,7 @@ void SALOME_InstallWizard::onStart()
   }
   // if something at all is selected
   if ( !toInstall.isEmpty() ) {
+    clean(false); // VSR 07/02/05 - bug fix: first we should clear temporary directory
     // disable <Next> button
     nextButton()->setEnabled( false );
     // disable <Back> button
@@ -1601,20 +1650,14 @@ void SALOME_InstallWizard::onReturnPressed()
 */
 void SALOME_InstallWizard::productInstalled( )
 {
-#ifdef DEBUG
-  cout << "process exited" << endl;
-#endif
+  ___MESSAGE___( "process exited" );
   if ( shellProcess->normalExit() ) {
-#ifdef DEBUG
-    cout << "...normal exit" << endl;
-#endif
+    ___MESSAGE___( "...normal exit" );
     // normal exit - try to proceed installation further
     launchScript();
   }
   else {
-#ifdef DEBUG
-    cout << "...abnormal exit" << endl;
-#endif
+    ___MESSAGE___( "...abnormal exit" );
     // installation aborted
     abort();
     // clear script passed parameters lineedit
@@ -1775,9 +1818,7 @@ void SALOME_InstallWizard::onProdBtn()
 // ================================================================
 void SALOME_InstallWizard::wroteToStdin( )
 {
-#ifdef DEBUG
-  cout << "Something was sent to stdin" << endl;
-#endif
+  ___MESSAGE___( "Something was sent to stdin" );
 }
 // ================================================================
 /*!
@@ -1787,9 +1828,7 @@ void SALOME_InstallWizard::wroteToStdin( )
 // ================================================================
 void SALOME_InstallWizard::readFromStdout( )
 {
-#ifdef DEBUG
-  cout << "Something was sent to stdout" << endl;
-#endif
+  ___MESSAGE___( "Something was sent to stdout" );
   while ( shellProcess->canReadLineStdout() ) {
     installInfo->append( QString( shellProcess->readLineStdout() ) );
     installInfo->scrollToBottom();
@@ -1808,9 +1847,7 @@ void SALOME_InstallWizard::readFromStdout( )
 // ================================================================
 void SALOME_InstallWizard::readFromStderr( )
 {
-#ifdef DEBUG
-  cout << "Something was sent to stderr" << endl;
-#endif
+  ___MESSAGE___( "Something was sent to stderr" );
   while ( shellProcess->canReadLineStderr() ) {
     installInfo->append( QString( shellProcess->readLineStderr() ) );
     installInfo->scrollToBottom();
@@ -1860,3 +1897,54 @@ void SALOME_InstallWizard::updateCaption()
                             tr( getIWName() ) + " - " +
                             tr( "Step %1 of %2").arg( QString::number( this->indexOf( aPage )+1 ) ).arg( QString::number( this->pageCount() ) ) );
 }
+
+// ================================================================
+/*!
+ *  SALOME_InstallWizard::processValidateEvent
+ *  Processes validation event (<val> is validation code)
+ */
+// ================================================================
+void SALOME_InstallWizard::processValidateEvent( const int val, void* data )
+{
+  QWidget* aPage = InstallWizard::currentPage();
+  if ( aPage != productsPage ) {
+    InstallWizard::processValidateEvent( val, data );
+    return;
+  }
+  QCheckListItem* item = (QCheckListItem*)data;
+  if ( val > 0 ) {
+    if ( val == 2 ) {
+      WarnDialog::showWarnDlg( 0, false );
+      // when try_native returns 2 it means that native product version is higher than that is prerequisited
+      if ( QMessageBox::warning( this, 
+                                tr( "Warning" ), 
+                                tr( "You have newer version of %1 installed on your computer than that is required (%2).\nContinue?").arg(item->text(0)).arg(item->text(1)),
+                               QMessageBox::Yes, 
+                               QMessageBox::No, 
+                               QMessageBox::NoButton ) == QMessageBox::No ) {
+       myThread->clearCommands();
+       myWC.wakeAll();
+       return;
+      }
+    }
+    else {
+      WarnDialog::showWarnDlg( 0, false );
+      QMessageBox::warning( this, 
+                          tr( "Warning" ), 
+                          tr( "You don't have native %1 %2 installed").arg(item->text(0)).arg(item->text(1)), 
+                          QMessageBox::Ok, 
+                          QMessageBox::NoButton, 
+                          QMessageBox::NoButton );
+      productsView->setNone( item );
+      myThread->clearCommands();
+      myWC.wakeAll();
+      return;
+    }
+  }
+  if ( myThread->hasCommands() )
+    myWC.wakeAll();
+  else {
+    WarnDialog::showWarnDlg( 0, false );
+    InstallWizard::processValidateEvent( val, data );
+  }
+}
index 23a24a3158ae55027bd95133221246111a899a6f..5f38c9f8e74d04c93b6f841d336e5a98ada52dc5 100644 (file)
@@ -1,10 +1,9 @@
 //  File      : SALOME_InstallWizard.hxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
 
 #ifndef __SALOME_InstallWizard
 #define __SALOME_InstallWizard
@@ -84,6 +83,7 @@ class QProcess;
 class QCheckBox;
 class QSplitter;
 
+class QProcessThread;
 class ProductsView;
 class ProgressView;
 class HelpWindow;
@@ -109,6 +109,9 @@ class SALOME_InstallWizard: public InstallWizard
   // set dependancies
   void setDependancies( QCheckListItem* item, Dependancies dep);
 
+  // process validation event (<val> is validation code)
+  void processValidateEvent( const int val, void* data );
+
  public slots:
   // polishing of the widget
   void polish();
@@ -170,8 +173,8 @@ class SALOME_InstallWizard: public InstallWizard
   QCheckListItem* findItem( const QString& sName );
   // sets progress state to Aborted
   void abort();
-  // clears and removes temporary directory
-  void clean();
+  // clears and (optionally) removes temporary directory
+  void clean(bool rmDir = false);
 
  protected slots:
   // reject slot
@@ -273,6 +276,8 @@ class SALOME_InstallWizard: public InstallWizard
   QWidget*      readmePage;     // page itself
   QTextEdit*    readme;         // Readme information window
   QPushButton*  runSalomeBtn;   // <Launch Salome> buttnon
+
+  QProcessThread* myThread;     // validation thread
 };
 
 #endif
index 51e64bbb9382308a8c0c42124feaaffa1e892796..adace540898fc2230493ae32191269de03b0e801 100644 (file)
@@ -1,10 +1,9 @@
 //  File      : SALOME_ProductsView.cxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
 
 #include "SALOME_ProductsView.hxx"
 #include <qstringlist.h>
index bade8b3388bebdeaedd60a4d7a9d9b0c31d6f700..88fbe8acd684fac8a305dfc9447e6913216c6692 100644 (file)
@@ -1,10 +1,9 @@
 //  File      : SALOME_ProductsView.hxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2005 CEA
 
 #ifndef __SALOME_ProductsView
 #define __SALOME_ProductsView
index ff19f189b555602c30770923844ae198a2374451..1387c9cc79f9f178c752d24573e21951283832f5 100644 (file)
@@ -1,10 +1,9 @@
 //  File      : SALOME_ProgressView.cxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
 
 #include "SALOME_ProgressView.hxx"
 
index cf35f5f570972ffbd7a9360d9bd2c74c2aad2ed9..010b21508b8af18f95630a959d20e8c3c104f5a2 100644 (file)
@@ -1,10 +1,9 @@
 //  File      : SALOME_ProgressView.hxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
 
 #ifndef __SALOME_ProgressView
 #define __SALOME_ProgressView
index a2d0d05fb594af53212e00ae84a30aca98146092..1372b7e77efeecaebd6ca9daeaddb94b14aa77e8 100644 (file)
@@ -1,10 +1,11 @@
 //  File      : SALOME_XmlHandler.cxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
+
+#include "globals.h"
 
 #include "SALOME_XmlHandler.hxx"
 #include "SALOME_ProductsView.hxx"
@@ -71,10 +72,8 @@ bool StructureParser::startElement( const QString&        /*namespaceURI*/,
                                     const QString&        qName,
                                     const QXmlAttributes& attributes)
 {
-#ifdef DEBUG
-  cout << qName << endl;
-  cout << attributes.length() << endl;
-#endif
+  ___MESSAGE___( qName );
+  ___MESSAGE___( attributes.length() );
   QCheckListItem* element;
   if (( qName == "config" ) && ( attributes.length() > 0 ) ) {
     QString myVersion, myCaption, myCopyright, myLicense, myOS;
index 0b58829c3fc0fe9b3dc5f6eee2a28d8e317c56e9..e2208718020f90998bc640d858079fa0051f7188 100644 (file)
@@ -1,10 +1,9 @@
 //  File      : SALOME_XmlHandler.hxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
 
 #ifndef __SALOME_XmlHandler
 #define __SALOME_XmlHandler
index 5e95a32c0ad46b8e7462c0accd26a5a00bacff0d..1131c91636b3c43fe969abcf886d8ab16ed8623e 100644 (file)
@@ -1,25 +1,28 @@
 ################################################################################
-###  For giving possibility run the app under RedHat7.1-8.0 it is nessary    ###
-###  to set GCC_ROOT and QTDIR to static compiled products, accordingly      ###
+### Setting the environment to build SALOME Installation Wizard.
+### We use statically compiled gcc and qt in order to minimize
+### external dependencies of Installation Wizard.
+### But it is also possible to use Linux native products.
+### In this case set GCC_ROOT and QTDIR correspondingly:
+###    setenv GCC_ROOT /usr
+###    setenv QTDIR    /usr/lib/qt-3.0.5
 ################################################################################
 
 setenv LD_LIBRARY_PATH /usr/X11R6/lib:/usr/lib:/lib
+setenv PRODUCTS_DIR /tmp/static
 
 ### ------ gcc ------ ###
-### gcc 3.2 (native for RH8.0)
-# setenv GCC_ROOT /usr
-### gcc 2.95.3 (for RH7.1)
-setenv GCC_ROOT /vsr/static/RedHat7.1/gcc-2.95.3
+### gcc 2.95.3
+setenv GCC_ROOT ${PRODUCTS_DIR}/gcc-2.95.3
 setenv CXX ${GCC_ROOT}/bin/g++
 setenv CC ${GCC_ROOT}/bin/gcc
 setenv PATH ${GCC_ROOT}/bin:${PATH}
 setenv LD_LIBRARY_PATH ${GCC_ROOT}/lib:${LD_LIBRARY_PATH}
+##
 
 ### ------ qt ------ ###
-### qt 3.0.5 compiled on gcc 3.2 (native for RH8.0)
-#setenv QTDIR /vsr/static/RedHat8.0/qt_gcc3.2
-### qt 3.0.5 compiled on gcc 2.95.3 (for RH7.1)
-setenv QTDIR /vsr/static/RedHat7.1/qt-x11-free-3.0.5
-setenv PATH $QTDIR/bin:$PATH 
-setenv LD_LIBRARY_PATH $QTDIR/lib:$LD_LIBRARY_PATH 
+### qt 3.0.5
+setenv QTDIR ${PRODUCTS_DIR}/qt-x11-free-3.0.5
+setenv PATH ${QTDIR}/bin:${PATH} 
+setenv LD_LIBRARY_PATH ${QTDIR}/lib:${LD_LIBRARY_PATH} 
 ##
diff --git a/src/globals.h b/src/globals.h
new file mode 100644 (file)
index 0000000..4871e97
--- /dev/null
@@ -0,0 +1,24 @@
+#if !defined( ___GLOBALS )
+#define ___GLOBALS
+
+// ========================
+// process debug messages
+// ========================
+
+#include <qglobal.h>
+
+#ifdef QT_DEBUG
+
+#define ___MESSAGE___( x ) cout << x << endl;
+
+#else
+
+#define ___MESSAGE___( x )
+
+#endif
+
+#define ___DEBUG___( x )   ___MESSAGE___( "DEBUG: " << x   )
+#define ___WARNING___( x ) ___MESSAGE___( "WARNING: " << x )
+#define ___FATAL___( x )   ___MESSAGE___( "FATAL: " << x   )
+
+#endif // ___GLOBALS
index 3e6291288f2e674260c715ead47b46aa3b07adfd..be61decadf112acb5f1ed8de2036241bdb9de799 100644 (file)
 #define ICONS_SALOME_INSTALL_H
 
 static const char* const SALOME_Logo_xpm[] = {
-"279 120 61 1",
-"      c None",
-".     c #0A0704",
-"+     c #024E8E",
-"@     c #0E5695",
-"#     c #5A84B5",
-"$     c #F3BA26",
-"%     c #FED884",
-"&     c #FEDF99",
-"*     c #FEE6AE",
-"=     c #F0BC3D",
-"-     c #856822",
-";     c #F2F1F2",
-">     c #AD8623",
-",     c #99B1D1",
-"'     c #A68C4F",
-")     c #675935",
-"!     c #EBC062",
-"~     c #F7F6F7",
-"{     c #EBC677",
-"]     c #544622",
-"^     c #7B8DA0",
-"/     c #4274AA",
-"(     c #654E13",
-"_     c #BCBBBC",
-":     c #C2C5CC",
-"<     c #493C1B",
-"[     c #C6A96A",
-"}     c #5E4E29",
-"|     c #5377B5",
-"1     c #2C67A1",
-"2     c #FDFAFD",
-"3     c #587AAE",
-"4     c #F0CD86",
-"5     c #3F3414",
-"6     c #FCD992",
-"7     c #7A756D",
-"8     c #809FC9",
-"9     c #564E3E",
-"0     c #D0A027",
-"a     c #2C2207",
-"b     c #FDE1A4",
-"c     c #524E44",
-"d     c #272322",
-"e     c #9BA2AB",
-"f     c #626B79",
-"g     c #CBC9CA",
-"h     c #FDE8BA",
-"i     c #D4D7DB",
-"j     c #E1E0E2",
-"k     c #21609C",
-"l     c #80714D",
-"m     c #FEFEFE",
-"n     c #C0CFE5",
-"o     c #939093",
-"p     c #9BA8BE",
-"q     c #CBA54E",
-"r     c #D2D1D2",
-"s     c #EAE8EB",
-"t     c #ABB7CB",
-"u     c #6E94C1",
-"v     c #DAD8DA",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmm~sjiinniij;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmsjinnnij~mmmmmmmmmmmmmmmmmmmmm2~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmm~in8u#//1///#8:i~mmmmmmmmmmmmmmmmmmmmmmmmm~jint,nmmmmmmmmmmmmmmmmmmsninnini~mmmmmmmmmmmmmmmmmmmmmmmmmmm;ntu|/111|#8ni~mmmmmmmmmmmmmmm~it,,,nsmmmmmmmmmmmmmmmmmmmmmm2jnninsmmmmmmmm;ininninninninninninnin2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmm;,k@+++++++++++++@1jmmmmmmmmmmmmmmmmmmmmmmmnk@@+++kimmmmmmmmmmmmmmmmm#@@@@+@@#mmmmmmmmmmmmmmmmmmmmmmmmm;uk@+++++++++++@18~mmmmmmmmmmmmm8@+++++@,mmmmmmmmmmmmmmmmmmmmm,@@@+@/:mmmmmms1@@@@@@@@@@@@@@@@@@@@+@n2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm~81@+++++++++++++++++usmmmmmmmmmmmmmmmmmmmmmsu++++++@#mmmmmmmmmmmmmmmmm/+++++++|mmmmmmmmmmmmmmmmmmmmmmmju1@+++++++++++++++@/pjmmmmmmmmmms/+++++++@i2222mmmmmmmmmmmmmmm:1+++++ktmmmmm;u++++++++++++++++++++++kjmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm~p@+++++++++++++++++++#smmmmmmmmmmmmmmmmmmmmmtk+++++++1smmmmmmmmmmmmmmmm/+++++++|mmmmmmmmmmmmmmmmmmmmmm;#@+++++++++++++++++++@u;mmmm22222s1++++++++p;2~~~~~~~~~~2mmmmm~#++++++1,m2mm2;3++++++++++++++++++++++/~mmmm22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm,+++++++++++++++++++++#smmmmmmmmmmmmmmmmmmmmm#+++++++++nmmmmmmmmmmmmmmmm/+++++++|mmmmmmmmmmmmmmmmmmmmmi1++++++++k8s~~j81+++++++1s22mmmm22s1++++++++1:~~~~~~~~~~~~~2mm~,+++++++ktm22m2s#+++++++++++++++++++++1tm222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm,k++++++++1u_njjjint8|k8smmmmmmmmmmmmmmmmmmmmjk+++++++++|jmmmmmmmmmmmmmmm/+++++++|mmmmmmmmmmmmmmmmmmmmn/+++++++1t;m2m22m2t/@+++++#v2~~~~2~j/+++++++++#~~~~;~;~;~;;~~;~n@+++++++kt222~;;3+++++++++/8:rssssssss~m2mm22222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm#++++++++/:~mmmmmmmm~ntj~mmmmmmmmmmmmmmmmmmmm8++++++++++@nmmmmmmmmmmmmmmm/+++++++|2222mmmmmmmmmmmmmmmmu@++++++@t~m22mm22m2n/+++++@8~~~~;~~j1+++++++++kj;;~;;;~;~~;;~~ju++++++++kt2~~~;s3+++++++1un~m2mmmmmmmm2m2222222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm2k+++++++kjmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;@+++++++++++ummmmmmmmmmmmmmm/+++++++|22222222mmmmmmmmmmm;1+++++++#mm222~;~~~~2t@+++++k;~~~~~~j1++++++++++#;;;;;;sss;;;;;u@++++++++k,~;;;;s|++++++kn22222222222222222m2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm2++++++++#mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2t++++++++++++1nmmmmmmmmmmmmmm/+++++++/~~~;~~~;~~~2mmmmmm2n+++++++k,22m2~~~~;~;~i/++++++i;;~;~;j1++++++++++@rssss;s;sss;sn@+++++++++k,~;;;;s3+++++@n~~22m22222222m2222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm;++++++++ummmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmj#++++++++++++@ummmmmmmmmmmmmm/+++++++|;~~~~~~~~~~2~~~~~2~:+++++++k,22~~~~;~~~~~j3++++++t;;;;;;j1+++++++++++pj;;;s;s;;;ss3++++++++++1,s;s;sj3+++++/s;~~2~222~222~~~22~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm2++++++++#mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmt@+++++++++++++1;mmmmmmmmmmmmm/+++++++|;~~;;;~;~~;~~~~~;;;,+++++++k,~2~;~~;~;~;;i#++++++,;;;sssn1+++++++++++1_ss;s;sss;s,+++++++++++kpsssssj|+++++/;;;;;;;;;;;;;~;;;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm2@+++++++@n2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm#+++++++++++++++n2mmmmmmmmmmmm/+++++++|;;;~~~;~;;~~~~~~~~;,+++++++k,~;~~;;;;;;;;i|++++++psss;s;nk++++++++++++us;sss;s;s,k+++++++++++kpsjjssv3+++++1j;;;;;;s;ss;s;ss;;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm|++++++++/tsmmmmmmmmmmmmmmmmmm22mmmmmmmmmmnk+++++++++++++++#smmmmmmmmmmmm/+++++++/;~;;;;;~;;;;;;;;;;;,+++++++kp~;;;;;;;;;;;i|++++++p;;ssss:1++++++++++++1n;;s;;;;s/++++++++++++kpsjjjjv3+++++@tjsssssssssssssssss;;;22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm,@++++++++@un;mmmmmmmmmmmmmm22m2222mm2222;#+++++@11+++++++++nmmmmmmmmmmmm/+++++++|;;;;;;;;;;;;~;~;~;;p+++++++k,;;;;;;s;ssssn|++++++pssssss:k++++++++++++@#ss;;;;;p+++++++++++++kpjjjjjv|++++++k:jjjjjjssjsjjsjjjsjs;;~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm;8++++++++++@1#:~mmmmmmm222m22m22~~~2~;;~j@+++++v;j#++++++++8mmmmmmmmmmmm/+++++++f;;;;;;;;;;;;;;~;;;;,+++++++kp;ssss;s;s;;sr3++++++pjssjjj:k++++++k8|++++kiss;s;n@+++++++++++++kejjjjji|+++++++@#tjsjjjjjjjjjjsvjjjjs;~~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmsu+++++++++++@k/#8tns~2m22~2~~~2~~~;~~~s,+++++|;;;r++++++++/nmmmmmmmmmmm/+++++++|;;;;;;;;;~;;;;;;;;sp+++++++k,ss;;ssssssssn|++++++pjjjjjj_k+++++|tv:3++++#:jji,/++++@1/+++++++kpjjjjjv|++++++++@k3upttttt:vjjvjvvvjjs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm~#k+++++++++++++++/u:s~22~~~~;~;;~;~~~i/++++@8;~;;1+++++++@8mmmmmmmmmmm/+++++++|;;;;;;;~~~~~~~~~;~s,+++++++kpssssssssssssr|++++++pjjjjjj:k+++++#jjjp+++++1u8#k+++++#gs/++++++kpjjjjjv|++++++++++++++@@k@|prvvvvvvjs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm2~i#+++++++++++++++++k8s~~~;~~~~~~~;;;,+++++|r~;;~u++++++++1;mmmmmmmm2~/+++++++|~;~~~~;~;~~~~~~~~~;p+++++++k,sjjsssssjjjjn3++++++pjjjjjjtk+++++uvvvg1+++++++++++++@vsj/++++++kpsssjjv|+++++++++++++++++++k:vrgrrvs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm2m222;np#1k+++++++++++++@1t;~;~;;;;;;;;j|+++++ps;s;~n/+++++++@:~222222m22/+++++++|;~~;~~~~2~2m22~~~;;,+++++++kpjsjjjjjjsjjj:|++++++8jjjvvv_k+++++#iiirp+++++++++++++tjsj/++++++k,sssssj3+++++++++++++++++++/:rrgrjs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm22m2222;n8u/1@+++++++++++1:;;;;;~;;;;;tk+++++nss~;~;u++++++++#~2222222221+++++++|;~~~~~222mmmmmm2;~sp+++++++kpjjsjjsjjjjjjg|++++++pjjjjvv_k+++++#rvvv:k+++++++++++/jjjv/++++++kpsssssj|+++++++++@1/11/11/#pg:grjs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm2222~~~~~2~;sp@++++++++++1:s;ss;s;sss/+++++3sss;;~~i/++++++++immmmm2m2m/+++++++|;~;~~2m22mmmm222;~s,+++++++kpjjjsjjjjjjjj:|++++++8jjjjsj:k+++++#grvvr3++++++++++kpvvvr1++++++kpjjsjjv3+++++++@urvvvrrvrgrr:_gvs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm22m2~~;;~~~~~2~s_#+++++++++|ss;;s;s;sn@++++@:ss;s;~;;u++++++++8;222222m~/+++++++/~~~~~222mmmmmm2~~;sp+++++++kejjjjjjjjjjjj:|++++++pssssss:k+++++#rvvvvt/+++++++++8rvivg1++++++kpjjjjjv|+++++++/_jvvvvvvrrg:_grs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm22m2~~~;;;~;~~m2i/++++++++kjsssssssjp+++++kvss;;;~~~t++++++++3immmmm2mm/+++++++|;;~~22mmm2222~;;;ssp+++++++k8jsjjjjjjjjjjn|++++++ps;s;s;n1+++++#vvvvvr#++++++++k_rrrrg1++++++kevjjjjv3+++++++/_jvvrrrrrggg_gj;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm2m22~~;;;;;;;~~~;j@++++++++nsssssjjn@+++++/jsss;;~~~i@+++++++@8mmmmmmmm1+++++++|~;;~~2222m2~~~;;ssjp+++++++kpsjjsjsjsjjssr|++++++,~~~;~;nk+++++#isjvvvt++++++++trrrrr:k++++++kervvvvr|+++++++/:vrrgg:::ggrvs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm2222~~~~~;;;;;;;~s3++++++++,jjjjssj8+++++++#,__::n:,#+++++++++1mmmmmmmm/+++++++|;2;~222m222~;;;sssjp+++++++kps;ssss;;;;;;v3++++++t~2m2~~r1+++++3ijjvvig^++++++|rvivrr:k++++++k8rrvvvr|+++++++1tg___:rvjs;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmm222~~;;;;sssss;s;u++++++++,jsjjjjg|+++++++@11////11++++++++++@jmmmmm221+++++++|;~2mm2m22m~~~~;;;sjp+++++++k,;;;~~;;~~~~~j|++++++tmm22~~nk+++++3njjjvirt+++++/pvvrvvv:@++++++kervvvjr|+++++++1e___gjs;~222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm2;;~2~~~;;;;;;ss;ssu++++++++,vjjjvj8@+++++++++++++++++++++++++++#mm2~~;;/+++++++/~222mm222m~~~~;;;~;n+++++++k,~~222222222~j|++++++i~22m~~r1+++++|nvivrvir3k1#pgvvvvvvvg@++++++kejjjjjv|+++++++1epgj;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmj8k1uj2~~;;;sssssjjv/+++++++@rjjvvvv1++++++++13u,,tt,,#k++++++++++i2;;ssv1+++++++/~~22mmmmmmm22~~22~~sk++++++@u~m2m222~~;;;t@+++++1;2mm22~n1+++++/:vvrrvvvvrvvvrvvvvvvv:+++++++kpjjjvvg|+++++++1trs~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmu@++@|:s~~s;ssssssjt@+++++++1vjjvjvn@++++++k#t:gvss~~;jn|+++++++++,;;jjjv1+++++++@s~2mmmmmmmm2mm22222~3+++++++/;222~~;ssjjj8++++++#~~222~;r1+++++/:rvvvvrvvvrvvvvvvvjvjg@++++++kevvvrr:|+++++++1_v;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm,@+++++1#,njjsjsvn:81+++++++k8jvvvvr^++++++|pgrrrvjs;2mm2v#++++++++#rjjvvv1++++++++#tininiiiniiij;2mmm~n1++++++@uis;ssjjjv:8k+++++3n~~~~~~~n1+++++/_vvrvvvrvvvvvvvvjjjjj:+++++++kpvrgg:tf+++++++@3tiijjjjjjjjjjsmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmm22k+++++++++k#8:tt83k+++++++++^rjjjivgk+++++1grirrrrjs;2mmmmi/+++++++kpjvvvv1++++++++++k@k@k@k@k@k/8v~~2~~t@+++++++3,rvvvg:t|@+++++@n;~~~~~~;n1+++++/tvvvvrvvvvvvvvjvjjjjj:+++++++k8rg____/++++++++++11/1111111/1#;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmm2mmj#@+++++++++++++++++++++++@prvvivvv8+++++1_vvrrggrij;~mmmm2_++++++++|vvrrr1+++++++++++++++++++++++/sssjsjtk+++++++@k11/1k+++++++1i;~~~~~;~~n1+++++/tvvrvvvvvvvvjjvjjjjjjt+++++++ko_et_rg|+++++++++++++++@+@+++++u;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmsnu1k++++++++++++++++++k3prvvvivv_|+++++uvvirrrgrrvs~mmmmms1+++++++k_rrrr|+++++++++++++++++++++++1jvjjvvvt3k+++++++++++++++++18n2~~~~;~~2~r1+++++/trvvrvvvvvjvvjjjjjjsj,+++++++@^p_gjss#+++++++++++++++++++++++kimmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmn8/@++++++++++++++k|prvvvriviv8k++++/tvvvrrrrgrvj;~mmmmmpk++++++@8rrrro@+++++++++++++++++++++kuvvrvrrrr:e/@+++++++++++++k3:;~;~;~~2222;r1+++++/_vrvvvvvvjvjjjjjvjjjjp+++++++1ogj;~m~p++++++++++++++++++++++++:mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmm2;stu1++++++@138_:rrrrrvvvvrv:tppp_grrrrvrrrrgrvs;2mmm~;j:tt,,pt:rrrrr:teeeppp,tttntntttttt:nvjjvvvvivvvvgt#1++++++@|pns;~~~;22222222~s:ttppp_rvvvrvvvvjjjjjvrrvjssjtp^3^^o:j;22mmm2jn:::n:nnnnnnnnnnnnnnnnn~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmm2;si:ttt_:ggrrrrirrrrrrvrvvrrrrrrrrrrrrrrrrrvjj;;222;ssjvvrrrrrrrrrrrngg:ggrijs;;~22~~;;~;;;;ss;sss;;s;sjjin::nijs;~2~~22222mm2m~;;sjvvvrvrvrvvvvvjjjjjjjjjvjvggg__p__gjss;;22mmmmm~m~m~~~~~~~~~~~~~~~~~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmm~;sjjvvvvvvvvrrvrrrrrvvrviiivirrrrrrrrrrrrivjs;;;;sjjvvvrrrrrrrnrrrrgrrrrrijs;;~2mm22m22~22~~~~~~~~~2~22~2~~;~~m2mmmmmmmm22~~;ssjjirvvvvrvrvvjvvjjjjsjsjvg_ett_grvjssssjs;;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;sjvvvvvrvvvivvrrrrvvrvvvvvvvvviiirrrrrrrivjsssjjjvvvrrrrrrrrrrrrrrrrrrriivjs;~2mmmmmmmmmmmmmmmmmmmm2m22;ss;;2mmmmmmm2~~;sjjvvvvvvrvvvg::gvjjjjsjjjvg_ep[_vjss;ssjvvvvjs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22;sjjvvvvvvrvvrvvrrvvrvvrvvrvvvvviiiirrrrrrvjjjvvvrrirgrnrrrrrrrrrnrrrrrrgrjs;;~~~;;;;~2222mmmmmmmmm2;;sjvjs~2mm22~;;sjjjvvivrvvvvvvvr:_t_grrrrgg:____grvjss;~;;ssjjjss;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;ssjjjvvvvvvvvvvvvvrvvrvvvrvivvvvvvvvvirrivrvvvrvrirrrrrgrrrnrrrrrrrrgg::rjs;;;sssssss;;;;~2222~~;;sjjrrrss;;~;;;sjjjvvvvrvvvrvvvvvr:_t_grrvrr::::ggrvvvs;;~~~~s;sss;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~~sssjjvvvjvvvvvvvvvvvvvvrvvivvvvvvvvvvrrvvvvvrrriirrrrrrrrrrrririrvrg:_:rjjjjsjjjjvvvvvvjjs;s;sjjvirgrrjjsssjjvjvvvvvrvvvvvvrrrrrrrgrrvjjrg:grrrrrvvvjj;~2mmm22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;sjjjjjjjjvjjjjjvjjvjvvvvvvvivvvirrgrgrrvrvvrigirriririrrivriiivvvrrrivjvjvvvvvvvvvvvvvjjjvirirrrrrvvjvviivvrvrvrvvvvrgrggrrvvjjjjrgg:ggrrrrrrvvrvvs;~mmmm22222~~;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~;sjjjjjjsjjjjjjjjjjjvjvjvvvvvrvrg:ggrgrrriririrgrrivvvvrvvvvrvrvrrvvvjvivvvrvvvvviiiiiiirirrrrrirvrvvrvrvvvvvvvrrrgggggrrvvjvrg___:grvvrrrrrvvrvvs;~~~~;;;;;;s;ss;;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~sjjvjjsjjsjjjsjjjsjsjjjjjjjvvr__:grrrrrrrgrrrrrrrrvrvvvvvvrvvvvrrrgrrvrvvvrvvvrvrvrrrrrrrrrirrvvvvvvvrvvrvvvr__:grrrrgg:g___ggrvjjjvvvvvvvvvvjssssssssssjjsjs;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~~ssjjjsjsjsssssssjjjjjjjjjjjr__:grrrrrrrrrrrrrrrrrrrrvvvvrvrrgggrvjjvvvvvvrvvvvrrvviviiirvvvrvvvvvvvvvvrg_::ggrrgrrvrvrvjjjjjjvrrrrrgrrrvvjjssss;;;;;~2~m22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~~;sjjjvvvvvvvvjjssssssssssjjg:_ggrgrrrrirrrrrrrrrrrrrrrrrrg:_:grvjjjjvjvvvvvvvvvrvvrvvrrrrvvvrvvvvvvrgg:::ggrrvvvvjvjvvvrrrrgrrrrvvjjjsss;;~~2222mmm2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;jvvrggggggggrjs;sssssssjsssgg:rrrrrrrnigirrrrrrrrrrrrrgggggrvjjjvjjvjjvvvvvvvvvvvvvvvvvvvvvvvvrrg:_:g:grvvvjssjjrg:__g:rvjsss;;~~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~~~s;sssssjsjjjvj;;;sss;ssssjjirirrrrrrigigrrrrrrrrrrrrgrrrrvvvvvvvjjjjjjvirgrrvvivvvvvvvvrgg_:__:ggrvvjjjvrg:g_ggvjsh~~~~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2m222222m222~~~ssss;;;;s;ssssssjjjvjiiviiirrrrrrrrrrrrrrrrrvvvvvvvjjjjjjjvrgrrrvvjjjvjvvrg::_:ggrvvvvvvvrrrvvjjs;;~~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;jjss;;;s;;ss;;sssjsjjjjvviirrrrrrrrvvrrrrvvrrrvjsssjsjjjjvrrriivvvvvvvvrrrgrrrrrrvvvjs;;;~222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~svvvvvjsss;;;;;;;ss;ssssssjjvvirrvrrgggvjsssss;ssssssssjvrgriiivvvvvvr:___rvss;~22222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~;sjjjiiirivvjjsss;;;;~s;;s;;sssjjjvrggrrvj;;;;;;;;ssssjjvirivjjvr:_t__gjs~~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;ssjvvrrrrriijjss;;;~;;;~;;;;sssjvrg:_grjssss;;~;;;;ssjjjvi:_[t_gs;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;;;sjvvrrggrvjs;;~~~;~~~~~;;;j:[t____:grrrgg:___et__:vjs~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm222m2~;;;ssjvvvvjs;;2~;~22~~~~s:t[tgrvvvvrrrrrvjjs;~~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~2;;;sjjj;;22;;;~~22~sto_vjjs;;;;;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2;;;;2~svv;mm2;:e[jjrrs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2;;;~m~v:_rs2;r_gvvg:rs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;;;m;j_p_rs;vgrvvg:gj;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;ss;~~;jg:rjjg:rvig_gj~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmssj;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~sjvvvjs;;ssjjrrivg__rj;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmme}9<<:mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;sjjjjs;s;;ssjsjvrrrvjss;;;;~222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm7>>-demmmmmmmmmmmmmmmmmmmmmmmmmmmsv:eeeegsmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2sjvvvjj;;;~;;;sjvjvvvvvvjjjsssjss;;;;~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm7'>-5emmmmmmmmmmmmmmmmmmmmmmmmmsr79)>'0l<7rmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;sjrrrgg:ijs;;~~~;;;ss;s;ssjjjjjjjvjjjjss;s;;;;;~222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm70>-aemmmmmmmmmmmmmmmmmmmmmmmse7l0$$lfllq>c:2mmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22;ssjjvvvvrrrvjvjsjjjjjs;;s;;;s;ssjsjjjssssjsjjsssss;;22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmj_teeeeeeeee)0>><feeeeoeoooe_smmmmmm~sv_ol->0$>lo___'''9rmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;sjvirg:g:_____grrggrjjss;;~;;;;;;;ssjjjvjvijjs;;2mmmmmmmiggiriririrrrivvijsss;;s;s_7->>'>'>'>'''[qq0>>-)]5aa.a..7rs;sr:e7cd<)->00cemmmmjo0lommmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22m2~~;;s;;;ssjvrrrrgggg::ggggggrrrrjjsjjjvivvvs;~mm2rl'''''''''''7l7llflff)7)f)9[!!!!=!!!!{{4444{![[q'l--))))]<cc5dd<<<<<(->0}e~mmmmmgl=7jmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2m22222m22~;;;ssvvrrrgggggg::ggrvjjjjjvirj;2m2:0q=$$=$=$=$$$$$0$0$0$0$0$q=====!!{{%%%&&*bbhbb&444{![=0'>-)]55aaaaa<](>>drmmmmmmjo0l_mmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2m2m22~~;;;;;ssssssjjvvvrvrrrvs~m~_0000000q000$0$$$$$$$$$$$$$$===={=%4%%6b*hhh;hh*&644{=q00>-(]5aaaaaa<<(->.smmmmmm;pqlpmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~~;ssjvvjs;2m2_>>>>0>000>000000$$$$$==$$%===$%=4{4%%bbhh;~hhh*&%%4![q'>-(]55aaaaaa<<(->.jmmmmmmhe0ltmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2m22m2mmmmj9]}(}]]())(--->>>>00$$$$$$$%$$$%$%4%%b*h;h~~h;*b64!=q'>-(<<aaaa.aaa55(--]pmmmmmmrl$7jmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2s:pe[et'77l)(<<((-->>00$$$$$%$$%$4%%&*hhh~h~;hh66!!q>l-(]55aaaaaaa5a5](--<emmmmj7'>e2mmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;jgp7}55<<(-->00$$$$$%$%4%%&**h~h~h~*bv4_[q>-)(<5aaa.aaaa5a5](--]]pvj:7lq]gmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmms7aaa5<](->00$$$%$44%%&*hhh~hh*b4{[''-)(55aaaaa.aaaaa5<<](--955)0q)r2mmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmjtlaaa5<]->00$$=%=%%&**hhhhh64_[q>l((<5aaaaaaaaaaaaa5a55<()-lllo_mmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2v^5aaa5<(->0$$={%%%&&**bj6r{!''l)(<55aaaaaaa5aaa5]})fl77^7oepvmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2:)daaa5<(->'=[!{{%%664{g[[''-)(<55aaaa.addd9ors2mmmmmm2m~mmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;e5aaaa5]()>>'q[[[[_[[['7l)}]<555aaaa.57:smmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2pfaaaa5<<(--l>''''''7>l))]<<5a5aaadf:smmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;e5aaaa55<]}))--l-)))}(]<5555aa.9gmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2st)da5a55<<]9]9}}}]]<<<55..<ov2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~re7c55a5<<<<]]]<]55a5597er;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~sef<5<)}]]]<<5d<co:;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~s^)ll}<5d5v;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmv70>)5dcg2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~e0>(5.fmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmjo$-(aa<;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmg'$>(5advmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm_'0>(aadtmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmme>$>-5aafmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm[0$0-<aaasmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmj'$$0>]aadgmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmoq$$0>(aaafsmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmiq$$$$>-5aaaemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmje$$$$$0-5aa.)jmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2_[$$$$$0-<aaaaf~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmms_$$$%$$$0>(5aaaafvmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2;sr[q$$$$$$$0>(aaaaaa)ejs2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmsr_[q=$=%$$$$$0>-<aa.aaaa<7pgmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2'0$$$$$$$$$$$00>(<aaaaaaaaaaa_mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmtooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooeoeoc)-----l-l--)(]5aa...........ceeoeooooooooooooooooooooojmmmmm",
-"mmmmmmm)ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddadadadadaddddddddddddddddddddddddddddddddddddddddgmmmmm",
-"mmmmmmm~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~;;;;;;;;;;~;;~;;;;;~;;;;;s;;;;;s;;;;;~~~;;;;;;;;;;;;;;;;;;;2mmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"};
+"279 120 2903 2",
+"a# c #004565",
+"#5 c #004566",
+"fn c #004567",
+"l# c #004667",
+"au c #004668",
+"aG c #004669",
+"j7 c #00466a",
+"lX c #00466b",
+"rL c #00476a",
+"dM c #00476b",
+"h6 c #00476c",
+"bn c #00476d",
+"dk c #00476e",
+"av c #00486e",
+"at c #00486f",
+"aH c #004870",
+"hA c #004871",
+"bf c #004972",
+"d0 c #004973",
+"aw c #004974",
+"l3 c #004975",
+"a. c #004a75",
+"dT c #004a76",
+"cG c #004a77",
+"#8 c #004a78",
+"gk c #004b79",
+"gp c #004b7a",
+"a0 c #004b7b",
+"eF c #004b7c",
+"hs c #004c7c",
+"ax c #004c7d",
+"a8 c #004c7e",
+"ky c #004c7f",
+"aI c #004d80",
+"a9 c #004d81",
+"ai c #004d82",
+"g8 c #004d83",
+"eG c #004e83",
+"ad c #004e84",
+"fK c #004e85",
+"le c #004e86",
+"bv c #004f86",
+"dh c #004f87",
+"ay c #004f88",
+"dZ c #004f89",
+"cO c #00508a",
+"#4 c #00508b",
+"as c #00508c",
+"ak c #00508d",
+"fh c #00518d",
+"bz c #00518e",
+"fm c #00518f",
+"aV c #005190",
+"ep c #005290",
+"aM c #005291",
+"kq c #005292",
+"fl c #005293",
+"az c #005394",
+"be c #005395",
+"dr c #005396",
+"aJ c #005397",
+"aU c #005497",
+"b# c #005498",
+"aF c #005499",
+"aA c #00549a",
+"mq c #00559a",
+"#3 c #00559b",
+".C c #00559c",
+"m# c #014565",
+"sz c #014665",
+"la c #014666",
+"a7 c #014667",
+"jd c #01486e",
+"km c #014973",
+"bj c #01508b",
+"hn c #015498",
+"bk c #01559a",
+".D c #01559c",
+"#M c #01569c",
+"kp c #01569d",
+"ht c #024666",
+"qT c #024766",
+"hK c #025088",
+"qt c #02518c",
+"mW c #025599",
+"gR c #02569c",
+"#D c #02569d",
+"fV c #02579d",
+"qn c #034766",
+"fL c #034767",
+"fi c #034869",
+"qJ c #03496e",
+"ba c #034a71",
+"kn c #034e80",
+"h2 c #035188",
+"b0 c #035492",
+"#k c #03579d",
+"py c #044867",
+"g5 c #044868",
+"oQ c #044869",
+"rH c #045391",
+"rc c #045491",
+".W c #04579d",
+"kB c #04589d",
+"a1 c #054968",
+"cP c #054969",
+"r7 c #05496c",
+"eu c #054b6f",
+"jJ c #05579a",
+"e3 c #05589d",
+"ho c #05589e",
+"or c #064968",
+"cw c #064a69",
+"k0 c #064a6e",
+"m2 c #064e78",
+"ip c #064f7a",
+"h# c #06589c",
+".E c #06599e",
+"iM c #06599f",
+"g4 c #07599c",
+"o1 c #07599e",
+".B c #075a9f",
+"pT c #084a69",
+"a6 c #084b6a",
+"i9 c #084c6e",
+"qS c #08558e",
+"q6 c #085896",
+".F c #085a9f",
+"aB c #085b9f",
+"iQ c #094b6a",
+"bg c #094c6a",
+"kl c #094c6b",
+"es c #094c6d",
+"g3 c #094e74",
+".X c #095b9f",
+"fO c #095ba0",
+"iq c #0a4c6a",
+"fd c #0a4c6b",
+".A c #0a5ca0",
+"bA c #0b4d6c",
+"bi c #0b4e70",
+"hx c #0b4f71",
+"mV c #0b4f74",
+"cM c #0b5381",
+"oi c #0b5995",
+"#y c #0b5ca0",
+".V c #0b5da0",
+"mU c #0c4d6b",
+"kz c #0c4d6c",
+"mT c #0c4e6c",
+"kr c #0c4f6f",
+"qf c #0c5995",
+"qb c #0c5c9f",
+"#d c #0c5da1",
+"mF c #0d4e6c",
+"a2 c #0d4e6d",
+"a5 c #0d4f6d",
+"ha c #0d5da0",
+"pw c #0d5da1",
+"pS c #0d5ea1",
+"rW c #0e4f6c",
+"dU c #0e4f6d",
+"mX c #0e506f",
+"qx c #0e5993",
+"hb c #0e5da0",
+".G c #0e5ea1",
+"ia c #0e5ea2",
+"rM c #0f506d",
+"bK c #0f506e",
+"o2 c #0f5e9f",
+"o# c #0f5fa1",
+"mp c #0f5fa2",
+"sr c #10506f",
+"rz c #105c97",
+"#N c #1060a2",
+"j# c #11516f",
+"jh c #11526f",
+"#E c #115f9e",
+".z c #1160a2",
+".Y c #1160a3",
+"a3 c #125270",
+"jI c #125371",
+".H c #1261a3",
+"sA c #13526f",
+"bh c #135371",
+"ix c #13557a",
+"ij c #135c92",
+"ls c #135e99",
+"qZ c #145270",
+"mS c #145471",
+"rm c #14567d",
+"oh c #1461a2",
+"a4 c #155471",
+"bS c #155472",
+"hF c #155573",
+"hN c #1562a2",
+"b5 c #1563a3",
+"sy c #165471",
+"rr c #165472",
+"ae c #165572",
+"cD c #165676",
+"mf c #1662a2",
+"nX c #1662a3",
+"gn c #1663a3",
+"#n c #1663a4",
+"op c #175572",
+"nR c #175573",
+"ie c #175673",
+"#z c #176199",
+"gu c #1763a3",
+"nd c #1764a5",
+".U c #1765a5",
+"f3 c #1864a4",
+"bu c #1865a5",
+"pk c #19619a",
+"#Y c #19639c",
+"j3 c #1964a4",
+"aT c #1965a5",
+"#t c #1965a6",
+"pd c #1a5773",
+"hG c #1a649f",
+"qc c #1b5773",
+"lf c #1b5874",
+"jg c #1b66a6",
+"eH c #1c5976",
+"bZ c #1c649b",
+"pP c #1c67a5",
+"bM c #1c68a7",
+"iN c #1d5875",
+"qF c #1d5974",
+"s5 c #1d5975",
+"ii c #1d68a7",
+"s4 c #1e5975",
+"b8 c #1e5a76",
+"fP c #1e5b79",
+"dS c #1e68a7",
+"#j c #1e69a7",
+"Rh c #1f1b0e",
+"lD c #1f5b77",
+"g2 c #1f5c78",
+"rg c #1f669f",
+"r# c #1f68a1",
+"dX c #1f69a8",
+"jM c #1f6aa8",
+"Nf c #201d10",
+"hw c #206aa8",
+"q7 c #215b76",
+"gf c #215d79",
+"rK c #215e7c",
+"pR c #216aa7",
+"pZ c #216aa8",
+".I c #216ba9",
+"cL c #226ba8",
+"ar c #226ba9",
+"iE c #235f7b",
+"oP c #236aa5",
+"mr c #245f7b",
+"et c #246da9",
+"px c #256eaa",
+"np c #265f7b",
+"pQ c #266da9",
+"fF c #266eab",
+"Rf c #271f0c",
+"Re c #271f0d",
+"d2 c #276fab",
+"Rg c #281f0c",
+"my c #28617c",
+"p. c #286eaa",
+"bd c #286fab",
+"mt c #2870ab",
+"nP c #29627c",
+"#V c #296b9b",
+"rG c #296ba3",
+"rq c #296ea7",
+"jm c #296ea9",
+"oA c #2970ac",
+"l6 c #2a6fa9",
+"e9 c #2a71ac",
+"zR c #2b2414",
+"DN c #2b2d2a",
+"ne c #2b627c",
+"rV c #2b627e",
+"p# c #2b637e",
+"aC c #2b657f",
+"kD c #2b6583",
+"g1 c #2b71ac",
+"LN c #2c2610",
+"#U c #2c72ac",
+"dg c #2c72ad",
+"Rd c #2d250d",
+"qg c #2d6580",
+"bJ c #2d6680",
+"lu c #2d6681",
+"iR c #2d6fa1",
+"pB c #2d71aa",
+"lH c #2d73ad",
+"ET c #2e2f2b",
+"qy c #2e647e",
+"dn c #2e6680",
+"kZ c #2e6681",
+".y c #2e73ae",
+"js c #2f6680",
+"fS c #2f6781",
+"rb c #2f71a8",
+"n# c #2f73ac",
+"oS c #3073a9",
+"j9 c #3173ab",
+"iI c #3173ac",
+".Z c #3176af",
+"Ne c #322d17",
+"cH c #326983",
+"#L c #3276af",
+"zQ c #332f18",
+"MQ c #332f2c",
+"zS c #333124",
+"p8 c #336880",
+"po c #3371a5",
+"rf c #3374aa",
+"hp c #3377b0",
+"zP c #342f18",
+"eD c #346b84",
+"pn c #3472a6",
+"qI c #3474aa",
+"ga c #3477b0",
+"sx c #356a83",
+"pp c #3573a7",
+"cv c #3578b0",
+"Pp c #363224",
+"Lb c #36342c",
+"tk c #36677f",
+"n9 c #366b84",
+"b2 c #366c85",
+"pm c #3673a8",
+"jZ c #3678b0",
+"#7 c #3679b1",
+"MU c #372f20",
+"od c #376b83",
+"dq c #376e8a",
+"pl c #3774a9",
+"pJ c #3777ad",
+"Pz c #382f0e",
+"pq c #3877ab",
+"Oh c #392f0f",
+"Rc c #392f12",
+"Qs c #393016",
+"Bd c #393729",
+"sW c #396a81",
+"sX c #396a82",
+"sV c #396b82",
+"#a c #397bb2",
+"zO c #3a3019",
+"tr c #3a6b83",
+"sU c #3a6c83",
+"dP c #3a6f88",
+"pr c #3a78ac",
+"pt c #3a79ad",
+"rp c #3a7ab0",
+"Pd c #3b2f0b",
+"r1 c #3b6c83",
+"tj c #3b6c84",
+"sQ c #3b6d84",
+"ps c #3b79ad",
+"gj c #3b7bb2",
+"OW c #3c2f09",
+"H0 c #3c331e",
+"L# c #3c3524",
+"Rs c #3c3c3c",
+"rh c #3c6d84",
+"sP c #3c6d85",
+"sR c #3c6e85",
+"oX c #3c7aae",
+"oW c #3c7aaf",
+"Mk c #3d331a",
+"Rr c #3d3d3d",
+"qL c #3d6e85",
+"sO c #3d6e86",
+"ts c #3d6f86",
+"gq c #3d7189",
+"h3 c #3d7db4",
+"jc c #3d7eb4",
+"L. c #3e3110",
+"Rt c #3e3d3e",
+"sI c #3e6f86",
+"sM c #3e6f88",
+"sN c #3e7087",
+"oV c #3e7cb0",
+"oU c #3e7cb1",
+"fZ c #3e7eb4",
+"Qr c #3f320c",
+"zN c #3f371e",
+"IR c #3f3925",
+"CB c #3f3d34",
+"Ro c #3f3e3f",
+"Rq c #3f3f3f",
+"ti c #3f7088",
+"rR c #3f718a",
+"qs c #3f7caf",
+"oT c #3f7db1",
+"eo c #3f7fb5",
+"O5 c #403207",
+"QP c #403306",
+"Lg c #40371b",
+"QR c #40381f",
+"O6 c #403828",
+"Bc c #403f34",
+"Rp c #403f40",
+"t# c #407189",
+"h7 c #40728a",
+"#H c #40789c",
+"nB c #407cad",
+"p5 c #407cae",
+"Po c #413006",
+"QQ c #413106",
+"PT c #413307",
+"LM c #41340e",
+"Oo c #41340f",
+"MP c #413419",
+"Oa c #41381a",
+"zX c #413c28",
+"rd c #417187",
+"lI c #417188",
+"sB c #417288",
+"r8 c #417289",
+"t. c #41728a",
+"b9 c #41738a",
+"c. c #41738b",
+"rF c #417bac",
+"bq c #417fb4",
+"EM c #423008",
+"Py c #423107",
+"DG c #423108",
+"OM c #423203",
+"Jp c #423208",
+"QO c #423302",
+"P9 c #423307",
+"EL c #423308",
+"QN c #423405",
+"OE c #423406",
+"Q. c #423407",
+"GQ c #423408",
+"Kh c #423409",
+"Ow c #42350b",
+"JK c #423613",
+"MV c #423618",
+"PU c #423713",
+"ON c #42371b",
+"Km c #423919",
+"KC c #423923",
+"N5 c #423b26",
+"OX c #423e38",
+"sk c #427289",
+"ce c #42748c",
+"Jt c #433305",
+"DH c #43330d",
+"K9 c #433407",
+"P8 c #433408",
+"Mj c #43340b",
+"KE c #433508",
+"LT c #433510",
+"Kn c #433920",
+"xT c #433a23",
+"tt c #43748c",
+"cd c #43758c",
+"cf c #43758d",
+"nT c #4381b6",
+"Jq c #44320b",
+"QM c #443308",
+"HH c #44330c",
+"Li c #443506",
+"DF c #443508",
+"Ki c #44350c",
+"Mp c #443a26",
+"LS c #443c25",
+"c# c #44768d",
+"cc c #44768e",
+"Pc c #453308",
+"KD c #453509",
+"Ix c #453608",
+"EN c #453611",
+"IS c #45370d",
+"PJ c #453a1c",
+"pC c #45758c",
+"cg c #45768f",
+"cb c #45778e",
+"ca c #45778f",
+"e4 c #4583b7",
+"Pn c #463507",
+"OV c #463508",
+"JL c #463606",
+"FR c #463608",
+"LU c #46360c",
+"Lh c #463807",
+"OF c #463f2b",
+"Ml c #464135",
+"HZ c #46423b",
+"l7 c #46778e",
+"tv c #46778f",
+"GR c #47350e",
+"Kl c #473b17",
+"tu c #47788f",
+"gW c #477990",
+"#u c #4784b7",
+"dj c #4784b8",
+"EK c #483708",
+"Jo c #48370a",
+"Js c #483910",
+"Cu c #483a0f",
+"Q# c #483c1c",
+"Mo c #484441",
+"NU c #484841",
+"p0 c #48758c",
+"q5 c #4885b7",
+"Mq c #49370b",
+"GP c #493808",
+"O4 c #493908",
+"Ct c #493b0f",
+"Cs c #493b10",
+"Rb c #493c18",
+"Kj c #493c19",
+"La c #494534",
+"#P c #497fa0",
+".J c #4985b8",
+"MO c #4a370e",
+"LL c #4a3808",
+"K8 c #4a380f",
+"IT c #4a3908",
+"On c #4a3a07",
+"Iw c #4a3a0c",
+"Kg c #4a3c10",
+"Iy c #4a3d1d",
+"Ox c #4a4537",
+"sH c #4a778d",
+"r6 c #4a788e",
+"go c #4a7b91",
+"Mr c #4b390a",
+"Mi c #4b390d",
+"HG c #4b3a0b",
+"Ju c #4b3a0d",
+"Cr c #4b3a0e",
+"Lf c #4b493d",
+"tq c #4b788e",
+"gS c #4b87b9",
+"Iz c #4c3b08",
+"Lj c #4c3b0b",
+"HJ c #4c3d14",
+"Kk c #4c411a",
+"N6 c #4c4a43",
+"di c #4c7d93",
+"HK c #4d3c09",
+"No c #4d3f1a",
+"Jr c #4d401e",
+"yq c #4d421e",
+"JJ c #4d4634",
+"LO c #4d4d4a",
+"ta c #4d798f",
+".T c #4d88ba",
+"JM c #4e3a0a",
+"DE c #4e3b08",
+"LV c #4e3b0c",
+"LK c #4e3b10",
+"Jn c #4e3c10",
+"H1 c #4e3c12",
+"PI c #4e3d0b",
+"K7 c #4e3e10",
+"Jv c #4e3e12",
+"HI c #4e3e1c",
+"Cv c #4e3f19",
+"Ko c #4e4631",
+"nK c #4e7c96",
+"nJ c #4e86b5",
+"no c #4e88b8",
+"#b c #4e89ba",
+"Ov c #4f3b08",
+"GT c #4f3e0c",
+"Jy c #4f4015",
+"Nd c #4f421e",
+"NB c #4f4324",
+"FS c #4f4422",
+"lV c #4f7e94",
+"jt c #4f88b5",
+"gg c #4f89ba",
+"j6 c #4f8abb",
+"Mh c #503c0e",
+"OD c #503d08",
+"Ms c #503d0d",
+"Og c #503e07",
+"Pb c #503e0b",
+"Jx c #503f15",
+"Np c #50421a",
+"II c #504b44",
+"ru c #507b90",
+"rv c #507b91",
+"Jw c #514115",
+"x8 c #514222",
+"G9 c #514314",
+"Nn c #514527",
+"Nm c #514c37",
+"aW c #517e95",
+"al c #518095",
+"jV c #518096",
+"r. c #518abb",
+"oB c #518bbc",
+"FQ c #523c09",
+"EJ c #523d0a",
+"GO c #523f0c",
+"LJ c #523f10",
+"IU c #52400c",
+"MN c #52410d",
+"Mg c #52410f",
+"HF c #524110",
+"K6 c #524310",
+"Iv c #524510",
+"zM c #524622",
+"NC c #524931",
+"NL c #524e47",
+"NV c #52514e",
+"f. c #528096",
+"oJ c #528bbb",
+"Kf c #534010",
+"H2 c #534108",
+"MX c #534110",
+"MM c #534211",
+"NA c #534321",
+"Bb c #534f46",
+"kH c #537e92",
+"jN c #53829d",
+"gv c #53829e",
+"by c #538cbc",
+"LW c #543f0f",
+"Cq c #54410f",
+"MW c #544116",
+"ND c #544e3f",
+"bN c #548298",
+"mI c #5488b4",
+"mc c #5488b5",
+"PS c #55400b",
+"IA c #554308",
+"LI c #554313",
+"HL c #55440b",
+"Mf c #554513",
+"GS c #554620",
+"N4 c #55492a",
+"G8 c #554d34",
+"ig c #557e93",
+"qv c #5588b5",
+"ot c #5589b5",
+"lK c #5589b6",
+"pf c #558ab5",
+"ge c #558ebd",
+"MY c #564412",
+"FT c #564415",
+"KF c #56450d",
+"NT c #564c31",
+"sw c #568398",
+"if c #568cb5",
+"#l c #568ebd",
+"JN c #57430c",
+"OL c #57430f",
+"Lk c #574310",
+"GU c #57440b",
+"O# c #574713",
+"IJ c #57534a",
+"NK c #575651",
+"q3 c #578599",
+"hm c #578cb3",
+"qE c #578db9",
+"kx c #578ebc",
+"Pm c #58440b",
+"Jm c #584512",
+"Nc c #584819",
+"Nz c #584921",
+"Op c #58534a",
+"ra c #588193",
+"#6 c #58859a",
+"gQ c #588fbd",
+"DD c #59440c",
+"FU c #59460b",
+"Mt c #594715",
+"ML c #594717",
+"xL c #595651",
+"#W c #59859a",
+"#Z c #59869c",
+"h1 c #5988a4",
+"lh c #598db9",
+"n5 c #5990be",
+"Ke c #5a4714",
+"LH c #5a4718",
+"Jz c #5a4819",
+"Ra c #5a491f",
+"EO c #5a4a1e",
+"B. c #5a5547",
+"l4 c #5a8599",
+"GN c #5b4710",
+"MZ c #5b4715",
+"K5 c #5b4918",
+"Nb c #5b4a13",
+"MK c #5b4b19",
+"Be c #5b5132",
+"yf c #5b533c",
+"GZ c #5b5851",
+"sJ c #5b8396",
+"s6 c #5b8498",
+"#I c #5b879c",
+"Me c #5c4b1a",
+"xK c #5c4d2d",
+"M0 c #5d4b1b",
+"DI c #5d4c20",
+"Nq c #5d4c21",
+"NW c #5d5f5d",
+"lC c #5d8fb9",
+"EI c #5e4710",
+"FP c #5e480f",
+"Cp c #5e4915",
+"HE c #5e4b10",
+"Iu c #5e4d14",
+"Gd c #5e4d24",
+"NS c #5e4d2b",
+"Bf c #5e522f",
+"FY c #5e5547",
+"HR c #5e5b53",
+"Ng c #5e5d5a",
+"qh c #5e8497",
+"s3 c #5e8598",
+"ex c #5e899d",
+"#F c #5e8ba2",
+"o3 c #5e8eb6",
+"mx c #5e91bc",
+"eC c #5e91be",
+"k# c #5e92be",
+"hJ c #5e93c0",
+"LX c #5f4912",
+"H3 c #5f4b10",
+"NR c #5f4f2b",
+"Bg c #5f502a",
+"Kp c #5f5a48",
+"Ri c #5f615f",
+"tE c #5f8697",
+"eq c #5f8ead",
+"Px c #604b0b",
+"EP c #604b0e",
+"H. c #604b11",
+"Cw c #604e1e",
+"N3 c #60522e",
+"EZ c #605435",
+"NM c #60543b",
+"ox c #608597",
+"rN c #608798",
+"bB c #608b9f",
+"pF c #608db6",
+"fR c #6092bf",
+"du c #6095c1",
+"Jl c #614b16",
+"Na c #614d19",
+"Bh c #614f25",
+"Nr c #615023",
+"zY c #615028",
+"Ob c #615e56",
+"nU c #618699",
+"oK c #618a9c",
+"IB c #62490f",
+"MJ c #625021",
+"NE c #626057",
+"rw c #62879a",
+"gl c #628da0",
+"Bi c #634c11",
+"Qq c #634d0f",
+"K4 c #634d19",
+"Mu c #634e1b",
+"LG c #634f21",
+"Md c #635121",
+".. c #635d4f",
+"sY c #638697",
+"nY c #63889a",
+"t8 c #63889b",
+"OU c #644e0f",
+"M1 c #645122",
+"Ny c #645326",
+"Q0 c #645b47",
+"yE c #645d49",
+"t9 c #64899b",
+"u. c #648a9c",
+"k. c #648b9e",
+"oY c #6492ba",
+"IV c #654c0e",
+"DJ c #654e10",
+"N# c #655022",
+"Ge c #655119",
+"Ns c #655123",
+"Nx c #655328",
+"Nw c #655429",
+"yU c #655734",
+"mg c #65899b",
+"ll c #658a9c",
+"om c #6595be",
+"HM c #664f10",
+"JA c #66531d",
+"Nt c #665428",
+"NQ c #66552f",
+"Ba c #665e53",
+"Nl c #666055",
+"B# c #666153",
+"qU c #668da0",
+"i8 c #668fa3",
+"#q c #6697c3",
+"KG c #675011",
+"IC c #675110",
+"Kd c #67511d",
+"PH c #675210",
+"M2 c #675427",
+"Nu c #675529",
+"Nv c #675629",
+"zj c #676155",
+"tF c #678b9b",
+"bI c #6790a3",
+"b. c #679ac4",
+"QL c #68500a",
+"Ll c #685112",
+"LY c #685215",
+"N. c #685527",
+"MI c #685628",
+"EY c #686159",
+"z4 c #686257",
+"zW c #686357",
+"pG c #688c9d",
+"ng c #688c9e",
+"mu c #6891a4",
+"lr c #6892a6",
+"DC c #695010",
+"Mv c #695422",
+"R# c #695526",
+"HQ c #695731",
+"HW c #69604c",
+"Kq c #696457",
+"jr c #6994bb",
+"pu c #6995b9",
+"nO c #6998bf",
+".3 c #699ac5",
+".x c #699bc5",
+"JO c #6a5110",
+"zL c #6a572d",
+"E0 c #6a592e",
+"NP c #6a5930",
+"xJ c #6a5c36",
+"ft c #6a90a1",
+"fa c #6a92a5",
+"H# c #6b510c",
+"FO c #6b5110",
+"Cx c #6b5210",
+"GV c #6b5310",
+"A9 c #6b5d38",
+"y# c #6b624c",
+"AG c #6b644f",
+"d5 c #6b8fa1",
+"f4 c #6b91a2",
+"qo c #6b91a3",
+"GM c #6c5214",
+"H4 c #6c5410",
+"EH c #6c5512",
+"O3 c #6c560f",
+"It c #6c581d",
+"LF c #6c582a",
+"NO c #6c5a32",
+"G7 c #6c685b",
+"Lc c #6c6c66",
+"MT c #6c6c67",
+"eM c #6c91a3",
+"Mc c #6d582c",
+"M3 c #6d592b",
+"M9 c #6d5b2b",
+"xI c #6d6147",
+"dw c #6d91a4",
+"cU c #6d93a4",
+"#A c #6d95a7",
+"m. c #6d9dc6",
+".O c #6d9ec6",
+"E3 c #6e5b2e",
+"M8 c #6e5c2e",
+"MR c #6e6b6b",
+"ID c #6f5710",
+"Kc c #6f5925",
+"K3 c #6f5b2a",
+"MH c #6f5b2e",
+"M4 c #6f5c30",
+"Gc c #6f6247",
+"IH c #6f6249",
+"KB c #6f6f6e",
+"qm c #6f95b3",
+"bT c #6f96a8",
+"e2 c #6f9fc7",
+"Co c #705916",
+"Jk c #705922",
+"Mw c #705b27",
+"E1 c #705c2e",
+"M5 c #705d33",
+"M7 c #705e33",
+"M6 c #705f33",
+"fG c #70a0c8",
+"HD c #715a1a",
+"E2 c #715d2e",
+"th c #7191a2",
+"JB c #725c20",
+"E4 c #725e2e",
+"kF c #7292a1",
+"li c #7292a2",
+"oa c #7294a5",
+"Bj c #73550f",
+"FV c #735810",
+"Gf c #735a16",
+"IN c #736b57",
+"qz c #7397a8",
+"ry c #739bbc",
+"#e c #73a1c9",
+"PR c #745812",
+"IW c #745a12",
+"R. c #745f29",
+"MG c #746133",
+"NZ c #74674a",
+"Bn c #746a4e",
+"Rn c #747374",
+"lL c #7493a4",
+"j8 c #7494a5",
+"bR c #74a0c9",
+"h9 c #74a2c9",
+"Mb c #756233",
+"PA c #757268",
+"md c #7594a5",
+"sl c #7595a5",
+"tD c #7695a3",
+"p1 c #7695a6",
+"ka c #7696a5",
+"pO c #769ab9",
+"dm c #76a2c7",
+"er c #76a4ca",
+"Ha c #775b10",
+"Mx c #776332",
+"A8 c #776334",
+"IK c #776b4e",
+"qR c #7798ad",
+"jH c #779bac",
+"aK c #77a3c7",
+"lW c #77a4ca",
+"LE c #786336",
+"N2 c #786339",
+"AF c #787161",
+"PK c #787670",
+"rt c #7896a7",
+"t7 c #7897a6",
+"ju c #7899a8",
+"i. c #789cad",
+"nm c #78a4c9",
+"#r c #78a4ca",
+".9 c #78a5cb",
+"HN c #795d10",
+"Om c #795d13",
+"LZ c #795f21",
+"Kr c #79766a",
+"Oi c #79766f",
+"NJ c #797a77",
+"qw c #7997a8",
+".K c #79a6cb",
+"EQ c #7a5e10",
+"Lm c #7a5f1b",
+"zK c #7a6734",
+"MF c #7a6738",
+"A6 c #7a6834",
+"yQ c #7a7465",
+"Qa c #7a7565",
+"q1 c #7a99a9",
+"iS c #7a9aaa",
+"hO c #7aa0bd",
+"Ou c #7b5f13",
+"A7 c #7b6435",
+"ya c #7b6b45",
+"Gb c #7b7360",
+"Mm c #7b7a79",
+"tl c #7b929d",
+"u# c #7b98a7",
+"sC c #7b99a6",
+"r0 c #7b9aa8",
+"rA c #7b9aab",
+"#9 c #7b9faf",
+"bl c #7ba3bf",
+"jU c #7ba7cc",
+"P7 c #7c6013",
+"IE c #7c6110",
+"EG c #7c6216",
+"FN c #7c6218",
+"KH c #7c6219",
+"LR c #7c7971",
+"Ks c #7c7b71",
+"gU c #7c9fb0",
+"oL c #7ca4c5",
+"ab c #7ca7cc",
+"Gg c #7d6011",
+"DB c #7d6113",
+"Jj c #7d642e",
+"My c #7d6837",
+"NN c #7d693a",
+"yV c #7d7b6f",
+"fY c #7da0b0",
+"dN c #7da0b1",
+"qr c #7ea5c6",
+"q4 c #7ea8cd",
+"Pa c #7f6210",
+"Of c #7f6213",
+"zZ c #7f6422",
+"GL c #7f651d",
+"K2 c #7f6737",
+"JC c #7f6923",
+"AC c #7f776b",
+"AD c #7f796b",
+"AE c #7f7a6b",
+"OO c #7f7b79",
+"ma c #7f9baa",
+".0 c #7faacd",
+"DK c #806310",
+"OC c #806313",
+"E6 c #806622",
+"E5 c #80682a",
+"A5 c #80693a",
+"Ma c #806a3b",
+"ME c #806c3e",
+"ik c #80a0b0",
+"ch c #80a0b2",
+"gs c #80a1b0",
+"mC c #80a2b1",
+"k8 c #80a7cb",
+"E7 c #816517",
+"HC c #816622",
+"PV c #817b72",
+"f0 c #81a1b1",
+"n6 c #81abce",
+"Q9 c #826a2d",
+"F0 c #827a6d",
+"tG c #829eaa",
+"eK c #82a1b1",
+"fq c #82a2b1",
+"AB c #837a68",
+"Ga c #837c6f",
+"Kt c #838077",
+"Pe c #838280",
+"IQ c #838380",
+"zT c #838381",
+"qu c #839dac",
+"tC c #839eaa",
+"aj c #83a3b3",
+"f# c #83accf",
+"GW c #846412",
+"Cn c #84691a",
+"O. c #84691f",
+"Kb c #846a36",
+"Q1 c #846c35",
+"yg c #84807c",
+"g9 c #84a5b4",
+"gb c #84abcf",
+"H5 c #856211",
+"JP c #856516",
+"Is c #85662a",
+"MD c #857040",
+"A4 c #85723f",
+"Az c #857a64",
+"dv c #85a5b5",
+"aR c #85a6b5",
+"aQ c #85abcd",
+"fp c #85adcf",
+"oC c #85add0",
+"QK c #86660d",
+"HO c #866610",
+"y8 c #867549",
+"Nk c #86837e",
+"hL c #86a6b5",
+"tw c #86a7b6",
+"o9 c #86abcb",
+"yz c #87764d",
+"AA c #877c67",
+"Ak c #877e62",
+"br c #87a7b6",
+"b1 c #87a8bb",
+"#x c #87afd0",
+"Qp c #886813",
+"L0 c #886c2b",
+"Mz c #886e3f",
+"JD c #88703c",
+"LD c #88703f",
+"MA c #887240",
+"Ay c #887a60",
+"Bp c #88816b",
+"bY c #88a8b8",
+"E8 c #89670c",
+"Gh c #896a15",
+"Q8 c #897031",
+"MB c #897244",
+"MC c #897246",
+"zw c #897850",
+"DQ c #897e5e",
+"y7 c #89816e",
+"G6 c #898785",
+"HT c #898786",
+"rl c #89a3b1",
+"fW c #89a9b8",
+"M# c #8a7544",
+"CE c #8a7e5f",
+"EW c #8a7f5d",
+"xP c #8a8783",
+"LP c #8a8b8a",
+"#i c #8ab1d1",
+"Pl c #8b6b17",
+"yA c #8b7951",
+"y. c #8b8681",
+"HY c #8b8c8b",
+"lt c #8ba9b7",
+"o0 c #8ba9c3",
+"cB c #8baab8",
+"sv c #8baab9",
+"#Q c #8babb9",
+"iw c #8babba",
+"hr c #8bb2d2",
+"Cy c #8c6911",
+"Ln c #8c6e21",
+"Q2 c #8c712f",
+"Q7 c #8c7131",
+"Q3 c #8c7331",
+"zJ c #8c763c",
+"Ku c #8c867e",
+"on c #8ca7b5",
+"fc c #8cafd0",
+"Hb c #8d6c14",
+"Q4 c #8d7231",
+"Br c #8d836f",
+"yt c #8d8575",
+"G# c #8d877d",
+"yn c #8d8d87",
+"x4 c #8d8d88",
+"pI c #8daac2",
+"dl c #8dacba",
+"oq c #8db3d3",
+"E9 c #8e6c0a",
+"Q5 c #8e7231",
+"Q6 c #8e7431",
+"N1 c #8e7442",
+"JG c #8e7e58",
+"zV c #8e8a86",
+"NF c #8e8f8b",
+"sL c #8ea6b3",
+"oR c #8eabc3",
+"oc c #8eabc4",
+"FW c #8f6e14",
+"GK c #8f7428",
+"A3 c #8f7843",
+"zb c #8f7f5a",
+"Ax c #8f8261",
+"Kv c #8f8a81",
+"N7 c #8f8a85",
+"Qu c #8f8b81",
+"G. c #8f8b85",
+"q# c #8fa7b4",
+"#0 c #8fadbb",
+".4 c #8fb4d4",
+"DA c #907019",
+"zv c #908a7b",
+"qK c #90a7b1",
+"lA c #90adba",
+"gY c #90aebb",
+".N c #90b4d4",
+"OK c #916d13",
+"IX c #916f15",
+"Kx c #918c82",
+"Kw c #918d82",
+"NY c #918e87",
+"t6 c #91a8b3",
+"#C c #91b5d4",
+"L1 c #927634",
+"F2 c #928a6f",
+"hH c #92aab4",
+"xS c #93711c",
+"F. c #93720c",
+"IG c #93742a",
+"K1 c #937743",
+"JE c #937942",
+"cA c #93b0be",
+"#. c #93b7d5",
+"Bk c #946d17",
+"GX c #947113",
+"z8 c #947b49",
+"nC c #94acb9",
+"oe c #94b1c9",
+"IF c #957011",
+"Pw c #957317",
+"EF c #95741d",
+"FM c #957625",
+"LC c #957e49",
+"Aw c #958661",
+"Ir c #967733",
+"HB c #967932",
+"Ji c #96793f",
+"JI c #969696",
+"ua c #96aab5",
+"oj c #96afc1",
+"iL c #96b7ce",
+"kC c #96b9d6",
+"Ka c #977c44",
+"ye c #97824e",
+"G1 c #979185",
+"Ky c #979188",
+"O7 c #979895",
+"NX c #979997",
+"sS c #97acb5",
+"jK c #97b1bf",
+"#O c #97b9d6",
+"aZ c #97b9d7",
+"Gi c #987415",
+"Cm c #987823",
+"GY c #987a31",
+"M. c #98814f",
+"Nh c #98969a",
+"sT c #98adb5",
+"bH c #98b4c1",
+"HP c #997511",
+"HU c #99824c",
+"fg c #99b7d1",
+"x7 c #9a7311",
+"Au c #9a895e",
+"QZ c #9a9b9a",
+".h c #9abcd8",
+"KI c #9b7b20",
+"Av c #9b8961",
+"os c #9baeb9",
+"dp c #9bbcd8",
+".q c #9bbdd8",
+"ER c #9c7614",
+"JQ c #9c781c",
+"zI c #9c8442",
+"yb c #9c844f",
+"yB c #9c854c",
+"iB c #9cb4bf",
+"l. c #9cb6cd",
+"nD c #9cb7d0",
+".i c #9cbdd9",
+"L2 c #9d8043",
+"A2 c #9d8449",
+"JH c #9d988f",
+"j. c #9db9d0",
+"cC c #9dbdd9",
+"H6 c #9e7b18",
+"yy c #9e8546",
+"F9 c #9e9b98",
+"QT c #9e9c9e",
+"QU c #9e9d9e",
+"Ld c #9e9e9e",
+"re c #9eb5c7",
+"#2 c #9ebed9",
+"F# c #9f7a17",
+"L9 c #9f8a56",
+"oI c #9fbdd7",
+"iy c #9fbed9",
+".S c #9fbfda",
+"zg c #a09578",
+"z6 c #a09888",
+"y6 c #a09c94",
+"CC c #a09c96",
+"lU c #a0bfd9",
+"z0 c #a17a13",
+"PG c #a17e17",
+"Lo c #a18031",
+"N0 c #a1894c",
+"Rm c #a1a0a1",
+"kc c #a1b2bb",
+"gh c #a1bac6",
+"mB c #a1bbd4",
+"e5 c #a1c0da",
+"OT c #a27b1b",
+"JF c #a28337",
+"yu c #a28951",
+"LB c #a28c57",
+"At c #a28d60",
+"zc c #a29f9a",
+"y3 c #a2a09e",
+"QV c #a2a0a2",
+"ys c #a2a1a2",
+"Rl c #a2a2a2",
+"mZ c #a2bed6",
+"g7 c #a2c1db",
+"Hc c #a37d18",
+"rS c #a3b4bb",
+"m3 c #a3b5bd",
+"kE c #a3b8c2",
+"dY c #a3bcc7",
+"mv c #a3c0d8",
+"DL c #a47d14",
+"G3 c #a4894b",
+"y2 c #a4a09e",
+"z9 c #a4a29d",
+"pU c #a4b9c4",
+"sa c #a4b9c7",
+"ds c #a4bdc8",
+"k3 c #a4c1d9",
+"ES c #a58128",
+"y1 c #a5a29f",
+"Rk c #a5a4a5",
+"jz c #a5b6bf",
+"hc c #a5bed4",
+"kt c #a5c2da",
+"yT c #a6822d",
+"K0 c #a68c54",
+"QW c #a6a4a6",
+"QX c #a6a6a6",
+"sq c #a6b2bd",
+"tB c #a6b6bc",
+"FX c #a77d19",
+"FL c #a7872e",
+"Or c #a7997a",
+"Oj c #a7a08e",
+"Rj c #a7a7a7",
+"pz c #a7b9c2",
+"GJ c #a88737",
+"zx c #a88b4b",
+"L3 c #a88b4c",
+"Am c #a89056",
+"L8 c #a8925b",
+"Kz c #a8a39c",
+"y0 c #a8a5a0",
+"QY c #a8a8a8",
+"yr c #a8aaa6",
+"kS c #a8b3ba",
+"iY c #a8b9c2",
+"qa c #a8bacb",
+"o4 c #a8bccc",
+"kk c #a8beca",
+"q. c #a8bed0",
+"cR c #a8c4dd",
+"Gj c #a98118",
+"Fa c #a98119",
+"DM c #a9852c",
+"Jh c #a98c4d",
+"yZ c #a9a7a0",
+"Mn c #a9a9a8",
+"ko c #a9bbc6",
+"iP c #a9bcd0",
+"jX c #a9c3dd",
+"hz c #a9c3de",
+"#g c #a9c5de",
+"Ol c #aa821b",
+"Dz c #aa8322",
+"HA c #aa8a3f",
+"Al c #aa9058",
+"EU c #aaa7a5",
+"z5 c #aaa9aa",
+"x9 c #aaaaa8",
+"xz c #aaacaa",
+"kR c #aab5bb",
+"nz c #aab7c0",
+".r c #aac6de",
+"zH c #ab8f49",
+"G4 c #aba7a1",
+"xx c #aba9ab",
+"yY c #abaaa2",
+"xU c #abaaaa",
+"G0 c #abaaab",
+"ny c #abb8c0",
+"gV c #abc7de",
+"Cz c #ac8315",
+"Ot c #ac851c",
+"Qb c #acaaa4",
+"NG c #acacac",
+"kT c #acb7be",
+"nx c #acb9c1",
+"nA c #acbac3",
+"s7 c #acbbc5",
+"ir c #acbdc5",
+"fM c #acc2cd",
+"PQ c #ad871d",
+"K# c #ad9154",
+"L4 c #ad9254",
+"Ao c #ad975f",
+"Ap c #ad9763",
+"Aq c #ad9766",
+"An c #ad985f",
+"Oc c #ada8a1",
+"y4 c #adabaa",
+"nw c #adbac3",
+"QJ c #ae8412",
+"O2 c #ae841b",
+"EE c #ae892a",
+"As c #ae9563",
+"Ar c #ae9766",
+"Pq c #aeaead",
+"xH c #aeafad",
+"kQ c #aeb8bf",
+"r9 c #aebdc5",
+"cx c #aec4ce",
+"DU c #af872a",
+"Iq c #af904c",
+"xY c #afaca3",
+"yX c #afaca4",
+"Bo c #afaeae",
+"ur c #afafb1",
+"kP c #afb9c0",
+"kO c #afb9c1",
+"mG c #afbbc4",
+"q8 c #afbcc1",
+"nv c #afbcc5",
+"s2 c #afbdc5",
+"mw c #afbfc7",
+"fJ c #afcae0",
+"Oe c #b08618",
+"IY c #b08722",
+"xQ c #b08c36",
+"Oz c #b09966",
+"xZ c #b0afa9",
+"kN c #b0bac1",
+"nu c #b0bdc6",
+"m0 c #b0bfc8",
+"nq c #b0c0c9",
+".7 c #b0cae0",
+"N9 c #b18927",
+"zB c #b19248",
+"zA c #b1924a",
+"zz c #b1924b",
+"zy c #b1934b",
+"G2 c #b1934c",
+"L7 c #b19761",
+"yP c #b1ada3",
+"yN c #b1aea4",
+"xW c #b1afaa",
+"zU c #b1b0af",
+"Le c #b1b0b0",
+"iK c #b1c3d5",
+"bb c #b1c6d0",
+"Bl c #b28a19",
+"H7 c #b28b1d",
+"xR c #b28b24",
+"KJ c #b28e2e",
+"xX c #b2afa5",
+"yW c #b2afa6",
+"Nj c #b2b0b0",
+"NI c #b2b3b2",
+"kM c #b2bcc3",
+"q0 c #b2bec6",
+"lZ c #b2c2ca",
+"gA c #b2c3d2",
+"#X c #b2c4d0",
+"Fb c #b38819",
+"Hd c #b3891d",
+"OB c #b38a1c",
+"OG c #b3ada4",
+"yO c #b3afa5",
+"DO c #b3b0af",
+"HS c #b3b1b3",
+"F5 c #b3b3af",
+"us c #b3b3b4",
+"kL c #b3bdc4",
+"jq c #b3bec7",
+"qC c #b3bfc4",
+"nt c #b3c0c9",
+"hP c #b3c4cc",
+"bC c #b3c7d1",
+"mE c #b3cce2",
+"Lp c #b49042",
+"A1 c #b49655",
+"L5 c #b4995d",
+"L6 c #b49961",
+"gz c #b4c5d4",
+"k9 c #b4c8d1",
+".p c #b4cde2",
+"y9 c #b59032",
+"LA c #b59c67",
+"OP c #b5a37c",
+"Qv c #b5b2af",
+"F7 c #b5b4b1",
+"G5 c #b5b5b4",
+"kK c #b5bfc6",
+"tH c #b5c0c4",
+"nE c #b5c4cc",
+"gy c #b5c5d5",
+"gw c #b5c6d5",
+"hB c #b5c9d2",
+"pW c #b5c9d9",
+".j c #b5cde2",
+"F6 c #b6b4af",
+"FZ c #b6b5b6",
+"xA c #b6b6b6",
+"LQ c #b6b7b6",
+"kJ c #b6c0c7",
+"kI c #b6c1c8",
+"ns c #b6c4cc",
+"gx c #b6c6d6",
+"lz c #b6c9db",
+"je c #b6cad3",
+"oD c #b6cee3",
+"P6 c #b78e20",
+"MS c #b7b7ba",
+"of c #b7c7ce",
+"qq c #b7c9db",
+"JR c #b88d26",
+"Cl c #b88e2d",
+"yd c #b89b5c",
+"zC c #b89c4f",
+"Qx c #b8a481",
+"Pr c #b8b0a1",
+"yM c #b8b5ad",
+"F8 c #b8b5b3",
+"xu c #b8b5b8",
+"KA c #b8b6b7",
+"xr c #b8b6b8",
+"F4 c #b8b7b4",
+"xC c #b8b7b8",
+"EX c #b8bab8",
+"nr c #b8c6ce",
+"dV c #b8cad2",
+"id c #b8cadc",
+"GI c #b99748",
+"KZ c #b99d63",
+"xl c #b9b6b9",
+"xt c #b9b7b9",
+"QS c #b9b8b9",
+"xq c #b9bab9",
+"jo c #b9cbdd",
+"pb c #b9ccdc",
+".g c #b9d0e4",
+"DV c #ba8c1f",
+"za c #ba953b",
+"zh c #ba9b4f",
+"xj c #bab9ba",
+"xw c #bababa",
+"IP c #babbba",
+"rX c #bac4c7",
+"gD c #bacada",
+"gB c #bacbda",
+"qW c #baccdd",
+"lc c #bacdde",
+".w c #bad1e4",
+"P# c #bb8f1b",
+"DW c #bb8f21",
+"zi c #bb973b",
+"yc c #bb9c5a",
+"uq c #bbbabd",
+"tm c #bbbbbb",
+"u9 c #bbbcbb",
+"t5 c #bbc5cb",
+"iX c #bbc6cf",
+"cN c #bbced6",
+"mD c #bbcede",
+".k c #bbd2e5",
+"OH c #bc973f",
+"OZ c #bc9d58",
+"n1 c #bcbabc",
+"xs c #bcbbbc",
+"s9 c #bcc9d1",
+"gC c #bccddc",
+"#B c #bcced7",
+"l9 c #bccfdf",
+"j5 c #bccfe0",
+"iA c #bcd2e5",
+"yp c #bd8f15",
+"x6 c #bd8f17",
+"Gk c #bd901e",
+"yD c #bd973b",
+"zf c #bdbab6",
+"xk c #bdbabd",
+"w9 c #bdbcbd",
+"tn c #bdbdbd",
+"xp c #bdbebd",
+"hE c #bdcfe1",
+"lF c #bdd0e0",
+"fX c #bdd0e1",
+"mR c #bdd1e3",
+"CA c #be9226",
+"DZ c #be941e",
+"Qf c #bead81",
+"PL c #bebab1",
+"y5 c #bebebc",
+"ub c #bec7cd",
+"kG c #bec7d2",
+"io c #bec9d2",
+"og c #becad5",
+"lw c #beced6",
+"bG c #bed0d8",
+"Fc c #bf901f",
+"Qo c #bf921e",
+"OJ c #bf941c",
+"DY c #bf941e",
+"Lq c #bf9c4f",
+"Jg c #bfa061",
+"Pg c #bfa671",
+"xy c #bfbdbf",
+"n2 c #bfbebf",
+"lk c #bfc8d3",
+"hM c #bfc9d2",
+"na c #bfced5",
+"m1 c #bfcedd",
+"iF c #bfcfd7",
+"jf c #bfd0d7",
+"nb c #bfd2e2",
+".L c #bfd4e6",
+"ED c #c09834",
+"FK c #c09c43",
+"K. c #c0a66a",
+"Lz c #c0a76f",
+"x. c #c0bec0",
+"xv c #c0bfc0",
+"xB c #c0c1c0",
+"lO c #c0c9d4",
+"kA c #c0ccda",
+"lY c #c0d0d7",
+"fe c #c0d1d8",
+"oo c #c0d2e4",
+"Ip c #c1a05e",
+"n0 c #c1bfc1",
+"xi c #c1c0c1",
+"xo c #c1c1c1",
+"sD c #c1c8cb",
+"jn c #c1d0d7",
+"o8 c #c1d1de",
+"ev c #c1d2da",
+"fH c #c1d5e7",
+"z1 c #c2931c",
+"Dy c #c2972e",
+"yS c #c29834",
+"z7 c #c29d4e",
+"Hz c #c2a058",
+"w# c #c2bfc2",
+"w0 c #c2c0c2",
+"ut c #c2c1c1",
+"mN c #c2c1c2",
+"zd c #c2c2bf",
+"uR c #c2c3c2",
+"tp c #c2c9ce",
+"rE c #c2cad3",
+"me c #c2cad6",
+"oM c #c2cdd3",
+"aN c #c2d2da",
+"fU c #c2d2df",
+"nQ c #c2d4e5",
+".s c #c2d6e7",
+"DX c #c3941e",
+"yo c #c3962b",
+"x5 c #c3962e",
+"uS c #c3c1c3",
+"mM c #c3c2c3",
+"zo c #c3c3c2",
+"to c #c3c3c3",
+"qG c #c3c9cd",
+"tA c #c3cacc",
+"nW c #c3cbd6",
+"jY c #c3d3da",
+"aa c #c3d3db",
+"jp c #c3d5e0",
+"ah c #c3d5e4",
+"h4 c #c3d6e6",
+"fk c #c3d6e7",
+"zG c #c49f50",
+"v. c #c4c2c4",
+"oy c #c4c3c4",
+"zn c #c4c4c4",
+"xG c #c4c5c4",
+"#m c #c4d8e8",
+"IZ c #c59826",
+"Pk c #c59920",
+"A0 c #c5a55d",
+"xm c #c5c2c5",
+"uT c #c5c3c4",
+"lR c #c5c3c5",
+"mk c #c5c4c5",
+"vN c #c5c5c5",
+"oO c #c5cad2",
+"rO c #c5cbcd",
+"o5 c #c5cfd7",
+"j4 c #c5d3da",
+"ib c #c5d4db",
+"bU c #c5d5dc",
+"n7 c #c5d8e8",
+"D0 c #c6961e",
+"D1 c #c6971e",
+"KY c #c6ab74",
+"DT c #c6bfba",
+"n3 c #c6c4c6",
+"mL c #c6c5c6",
+"sn c #c6c5c7",
+"wI c #c6c7c6",
+"sp c #c6c7cc",
+"pe c #c6cbd1",
+"ow c #c6cdda",
+"h. c #c6cfda",
+"iJ c #c6d5dc",
+"ew c #c6d5e5",
+".f c #c6d9e9",
+"He c #c7991d",
+"Ck c #c79d36",
+"KK c #c79f3a",
+"yR c #c79f42",
+"xn c #c7c5c7",
+"xV c #c7c6c3",
+"nh c #c7c6c7",
+"ml c #c7c7c7",
+"tZ c #c7c7c9",
+"w1 c #c7c8c7",
+"t0 c #c7c8c9",
+"ro c #c7d4e2",
+"D2 c #c89b1e",
+"PY c #c8b892",
+"PB c #c8c1b2",
+"v1 c #c8c5c8",
+"zm c #c8c6c4",
+"ze c #c8c6c6",
+"mj c #c8c6c8",
+"lS c #c8c7c8",
+"sm c #c8c7c9",
+"vX c #c8c8c8",
+"tY c #c8c8c9",
+"xc c #c8c9c8",
+"jO c #c8d6e1",
+"aE c #c8dae9",
+"Lr c #c9a65b",
+"Qe c #c9bead",
+"v2 c #c9c6c9",
+"yL c #c9c7c5",
+"mK c #c9c7c9",
+"lQ c #c9c8c9",
+"so c #c9c8cb",
+"vY c #c9c9c9",
+"kU c #c9cbce",
+"lg c #c9d1d6",
+"sb c #c9d2d8",
+"o. c #c9d6e1",
+"mo c #c9dae8",
+"eJ c #c9dbea",
+"Bm c #ca9a1c",
+"Ly c #cab178",
+"Oy c #cac5c4",
+"v3 c #cac7ca",
+"lP c #cac8ca",
+"jG c #cac9ca",
+"jF c #cacaca",
+"wc c #cacbca",
+"sj c #cacdd1",
+"tI c #cacfd0",
+"tb c #cacfd5",
+"fo c #cad8df",
+"oH c #cad9e6",
+"Fd c #cb9a21",
+"Qg c #cba852",
+"wH c #cbc8cb",
+"mi c #cbc9cb",
+"F3 c #cbcac9",
+"i3 c #cbcacb",
+"sZ c #cbcbcb",
+"xD c #cbcccb",
+"up c #cbcdce",
+".6 c #cbd9eb",
+"CK c #ccc6bf",
+"mJ c #ccc9cc",
+"zl c #cccac9",
+"uF c #cccacb",
+"nZ c #cccacc",
+"i4 c #cccbcc",
+"t1 c #cccccc",
+"tX c #cccdce",
+"ux c #cccecf",
+"sG c #cccfd4",
+"jP c #ccd8e5",
+"Gl c #cd9e20",
+"Af c #cdc6c7",
+"uU c #cdcaca",
+"wB c #cdcacd",
+"xb c #cdcbcc",
+"jE c #cdcbcd",
+"uG c #cdcccc",
+"iu c #cdcccd",
+"ri c #cdccce",
+"uk c #cdcdcd",
+"r2 c #cdcdce",
+"uy c #cdcfd0",
+"sK c #cdd1d2",
+"rZ c #cdd1d3",
+"j2 c #cdd3df",
+"gt c #cdd7e1",
+"ji c #cdd9df",
+"bX c #cddae0",
+"fj c #cddae1",
+".o c #cdddeb",
+"iD c #cddeec",
+"JS c #cea232",
+"IM c #cea43b",
+"Ag c #cecaca",
+"wC c #cecbce",
+"By c #ceccca",
+"ke c #ceccce",
+"Bw c #cecdcc",
+"uH c #cecdcd",
+"kV c #cecdce",
+"u4 c #cececd",
+"vg c #cecece",
+"ql c #cececf",
+"vh c #cecfce",
+"uw c #ced0d1",
+"rQ c #ced3d7",
+"rs c #ced7dc",
+"pj c #ced7e2",
+"iG c #cedae0",
+"QI c #cf9a17",
+"D3 c #cf9f1e",
+"H8 c #cf9f22",
+"GH c #cfab5e",
+"Lx c #cfb77d",
+"v0 c #cfcccf",
+"Ae c #cfcdcb",
+"Qw c #cfcdcc",
+"uu c #cfcdce",
+"iv c #cfcdcf",
+"kd c #cfcecf",
+"Bx c #cfcfce",
+"kf c #cfcfcf",
+"Ac c #cfd0ce",
+"vZ c #cfd0cf",
+"tW c #cfd1d2",
+"si c #cfd1d3",
+"qd c #cfd3d4",
+"jQ c #cfdae8",
+"jR c #cfdde8",
+"OS c #d09d21",
+"CL c #d0a12b",
+"FJ c #d0a84c",
+"J9 c #d0b67a",
+"Bz c #d0cccb",
+"mh c #d0cdd0",
+"x0 c #d0cecf",
+"hW c #d0ced0",
+"uI c #d0cfcf",
+"i2 c #d0cfd0",
+"jD c #d0cfd1",
+"vD c #d0d0d0",
+"qM c #d0d0d2",
+"wl c #d0d1d0",
+"tV c #d0d1d3",
+"cI c #d0dce2",
+"gc c #d0dded",
+"jS c #d0dee9",
+"dO c #d0dfed",
+"Dx c #d1a438",
+"PC c #d1ad5c",
+"Ls c #d1b067",
+"Io c #d1b46e",
+"wr c #d1ced1",
+"qk c #d1cfd0",
+"hV c #d1cfd1",
+"zk c #d1d0cf",
+"qN c #d1d0d0",
+"i5 c #d1d0d1",
+"Ad c #d1d1cf",
+"ul c #d1d1d1",
+"qQ c #d1d1d2",
+"pN c #d1d1d3",
+"wa c #d1d2cf",
+"vU c #d1d2d1",
+"tS c #d1d3d3",
+"tU c #d1d3d5",
+"rU c #d1d3d8",
+"tR c #d1d4d3",
+"uv c #d1d4d4",
+"tz c #d1d4d7",
+"ld c #d1e0ed",
+"BB c #d2a636",
+"Cj c #d2a842",
+"Jf c #d2b477",
+"xF c #d2cfd2",
+"yi c #d2d0d0",
+"wv c #d2d0d1",
+"jB c #d2d0d2",
+"s0 c #d2d1d1",
+"jC c #d2d1d2",
+"Oq c #d2d2d1",
+"uW c #d2d2d2",
+"ww c #d2d3d1",
+"vE c #d2d3d2",
+"tT c #d2d3d4",
+"tJ c #d2d4d4",
+"t4 c #d2d4d7",
+"mz c #d2d6d8",
+"hu c #d2dae2",
+"o7 c #d2dae3",
+"gm c #d2dae5",
+"cz c #d2dee4",
+"#K c #d2e1ee",
+"D4 c #d3a421",
+"N8 c #d3a636",
+"EC c #d3a843",
+"KX c #d3be86",
+"BA c #d3cdca",
+"vW c #d3d0d3",
+"qj c #d3d1d2",
+"i1 c #d3d1d3",
+"qO c #d3d2d2",
+"n4 c #d3d2d3",
+"wV c #d3d3d2",
+"tg c #d3d3d3",
+"qH c #d3d3d6",
+"vc c #d3d4d3",
+"tM c #d3d4d5",
+"rY c #d3d5d5",
+"o6 c #d3d9e0",
+".Q c #d3e2ee",
+"Fe c #d4a322",
+"z. c #d4a326",
+"Hy c #d4af68",
+"AZ c #d4b266",
+"wJ c #d4d1d4",
+"r3 c #d4d2d3",
+"it c #d4d2d4",
+"qP c #d4d3d3",
+"i0 c #d4d3d4",
+"tf c #d4d4d4",
+"nf c #d4d4d8",
+"uV c #d4d5d4",
+"tN c #d4d5d6",
+"sE c #d4d6d5",
+"pK c #d4d6d9",
+"q2 c #d4dee8",
+"z2 c #d5a21f",
+"PF c #d5a421",
+"Lt c #d5b671",
+"hX c #d5d2d5",
+"u3 c #d5d3d3",
+"qi c #d5d3d4",
+"iZ c #d5d3d5",
+"rj c #d5d4d4",
+"mO c #d5d4d5",
+"tL c #d5d4d7",
+"sh c #d5d5d5",
+"vb c #d5d6d5",
+"pH c #d5d6d6",
+"qX c #d5dee3",
+"hy c #d5e0e6",
+"cK c #d5e2eb",
+"jT c #d5e3ee",
+"Hf c #d6a723",
+"IL c #d6a837",
+"uM c #d6d3d5",
+"oN c #d6d3d6",
+"hh c #d6d4d6",
+"pE c #d6d4d7",
+"vf c #d6d5d4",
+"r4 c #d6d5d5",
+"jA c #d6d5d6",
+"tK c #d6d5d9",
+"wF c #d6d6d5",
+"ni c #d6d6d6",
+"jy c #d6d7d6",
+"qe c #d6d7d7",
+"jl c #d6d9e1",
+"l5 c #d6dbe1",
+"do c #d6e0e5",
+".l c #d6e4ef",
+"O1 c #d7a421",
+"Gm c #d7a624",
+"yv c #d7a72c",
+"Qy c #d7a838",
+"HV c #d7ac3b",
+"Lw c #d7bb7f",
+"Ah c #d7d1d1",
+"Qd c #d7d2c9",
+"Aj c #d7d3d7",
+"hi c #d7d4d6",
+"ob c #d7d4d7",
+"pM c #d7d5d6",
+"gO c #d7d5d7",
+"zq c #d7d6d5",
+"r5 c #d7d6d6",
+"is c #d7d6d7",
+"rx c #d7d6da",
+"vu c #d7d7d6",
+"jx c #d7d7d7",
+"wN c #d7d7d8",
+"pv c #d7d7d9",
+"tQ c #d7d7da",
+"sF c #d7d8d7",
+"nL c #d7d8d9",
+"rP c #d7d8de",
+"oZ c #d7d9db",
+"g6 c #d7d9dd",
+"gE c #d7dce2",
+"nS c #d7e0e5",
+"cE c #d7e2e7",
+"f2 c #d7e2eb",
+".P c #d7e4ef",
+"yC c #d8ad4d",
+"zF c #d8af51",
+"Lu c #d8ba75",
+"Lv c #d8bb7f",
+"u2 c #d8d5d6",
+"vB c #d8d5d8",
+"yh c #d8d6d5",
+"te c #d8d6d6",
+"rk c #d8d6d7",
+"hU c #d8d6d8",
+"uQ c #d8d7d6",
+"hS c #d8d7d8",
+"wR c #d8d8d6",
+"wM c #d8d8d7",
+"iW c #d8d8d8",
+"p6 c #d8d8da",
+"wL c #d8d9d8",
+"s1 c #d8d9db",
+"hQ c #d8dcdf",
+"ol c #d8dee5",
+"bD c #d8e3e7",
+"b7 c #d8e3ec",
+".1 c #d8e5f0",
+"KL c #d9ae4e",
+"AH c #d9b766",
+"IO c #d9d6d7",
+"uO c #d9d6d9",
+"hg c #d9d7d8",
+"f7 c #d9d7d9",
+"wn c #d9d8d7",
+"pL c #d9d8d8",
+"he c #d9d8d9",
+"ui c #d9d8db",
+"uE c #d9d9d9",
+"ok c #d9d9da",
+"wb c #d9dad9",
+"p9 c #d9dadb",
+"tP c #d9dadc",
+"pA c #d9dde1",
+"n. c #d9e0e6",
+"pc c #d9e3e7",
+"#J c #d9e3e8",
+"fs c #d9e3ec",
+"d4 c #d9e3ed",
+"bt c #d9e4ed",
+"oE c #d9e5f0",
+"PX c #dad3c7",
+"wx c #dad6d8",
+"ve c #dad7d5",
+"u1 c #dad7d7",
+"zp c #dad7d8",
+"hT c #dad7d9",
+"uY c #dad7da",
+"u0 c #dad8d8",
+"sf c #dad8d9",
+"fy c #dad8da",
+"t2 c #dad9d9",
+"hR c #dad9da",
+"sg c #dad9db",
+"vF c #dadad9",
+"kb c #dadada",
+"uo c #dadadc",
+"s8 c #dadadd",
+"uc c #dadbde",
+"pX c #dae3e8",
+"i7 c #dae4e8",
+"b4 c #dae5ee",
+"z3 c #dba932",
+"zE c #dbb359",
+"w5 c #dbd7d8",
+"Ai c #dbd7d9",
+"vt c #dbd8d8",
+"lj c #dbd8db",
+"td c #dbd9d6",
+"gN c #dbd9da",
+"fz c #dbd9db",
+"mH c #dbd9dc",
+"m4 c #dbdada",
+"gK c #dbdadb",
+"t3 c #dbdadc",
+"um c #dbdadd",
+"vG c #dbdbda",
+"oz c #dbdbdb",
+"uh c #dbdbdd",
+"vH c #dbdcdb",
+"#G c #dbe4e9",
+"ic c #dbe5e9",
+"fN c #dbe7f1",
+"PP c #dca924",
+"I0 c #dcaa2e",
+"Ff c #dcab22",
+"O8 c #dcb13d",
+"PZ c #dcb44c",
+"EB c #dcb454",
+"zD c #dcb458",
+"v# c #dcd7d7",
+"vv c #dcd9db",
+"uZ c #dcd9dc",
+"wQ c #dcdad6",
+"vi c #dcdada",
+"hf c #dcdadb",
+"f6 c #dcdadc",
+"mb c #dcdadd",
+"rT c #dcdade",
+"uP c #dcdbda",
+"vI c #dcdbdb",
+"gJ c #dcdbdc",
+"vK c #dcdbdd",
+"lJ c #dcdbde",
+"jw c #dcdcdc",
+"vL c #dcdddc",
+"qD c #dcddde",
+"rn c #dcdee0",
+"iH c #dcdee5",
+"p4 c #dce6f0",
+"D5 c #dda821",
+"Ci c #ddb14f",
+"Bv c #dddad9",
+"se c #dddada",
+"uJ c #dddadb",
+"lM c #dddadc",
+"lN c #dddadd",
+"ud c #dddbdc",
+"gH c #dddbdd",
+"uj c #dddbde",
+"nM c #dddcdc",
+"gI c #dddcdd",
+"un c #dddcdf",
+"iV c #dddddd",
+"rD c #dddddf",
+"vV c #dddedd",
+"kY c #dde5e9",
+"aS c #dde8f1",
+".2 c #dde8f2",
+"DP c #deaf39",
+"Dw c #deb246",
+"vJ c #dedbda",
+"sd c #dedbdb",
+"sc c #dedbdc",
+"hY c #dedbdd",
+"iO c #dedbde",
+"wO c #dedcdc",
+"gM c #dedcdd",
+"gG c #dedcde",
+"tO c #dedce0",
+"vy c #dedddc",
+"vx c #dedddd",
+"fx c #deddde",
+"f5 c #dedddf",
+"m5 c #dedede",
+"wm c #dededf",
+"ug c #dedee0",
+"vd c #dedfde",
+"pD c #dee0e2",
+"pa c #dee3e6",
+"#s c #dee9f2",
+"CM c #dfab25",
+"JT c #dfaf3d",
+"PM c #dfb64c",
+"GG c #dfb96d",
+"Je c #dfc38a",
+"J8 c #dfc58d",
+"va c #dfdbda",
+"vM c #dfdbdf",
+"vl c #dfdcdc",
+"uK c #dfdcdd",
+"f9 c #dfdcde",
+"nV c #dfdcdf",
+"u7 c #dfdddd",
+"gL c #dfddde",
+"fC c #dfdddf",
+"nF c #dfdede",
+"eX c #dfdedf",
+"fw c #dfdee0",
+"vn c #dfdfde",
+"lT c #dfdfdf",
+"p7 c #dfdfe0",
+"vS c #dfe0df",
+"Od c #e0ab21",
+"D6 c #e0ab25",
+"CN c #e0ac28",
+"EV c #e0b133",
+"u5 c #e0ddde",
+"hj c #e0dddf",
+"pg c #e0dde0",
+"u8 c #e0dedf",
+"eY c #e0dee0",
+"Qc c #e0dfde",
+"vo c #e0dfdf",
+"hd c #e0dfe0",
+"eW c #e0dfe1",
+"wG c #e0e0df",
+"mQ c #e0e0e0",
+"mP c #e0e0e1",
+"zs c #e0e1e0",
+"wA c #e0e1e3",
+"q9 c #e0e3e7",
+"jL c #e0eaf3",
+"QH c #e1a81a",
+"Qn c #e1aa23",
+"P. c #e1aa25",
+"H9 c #e1ab29",
+"P5 c #e1ac24",
+"CQ c #e1ae23",
+"CP c #e1ae24",
+"OQ c #e1b036",
+"FI c #e1ba65",
+"CJ c #e1dcdb",
+"Bu c #e1dcdf",
+"u6 c #e1dddf",
+"wd c #e1dde1",
+"wo c #e1dedd",
+"uL c #e1dedf",
+"hZ c #e1dee0",
+"tc c #e1dee1",
+"yH c #e1dfdd",
+"wk c #e1dfde",
+"f8 c #e1dfe0",
+"e0 c #e1dfe1",
+"wq c #e1e0dd",
+"eU c #e1e0e1",
+"eZ c #e1e0e2",
+"lB c #e1e1e1",
+"zu c #e1e2e1",
+"uf c #e1e2e4",
+"k1 c #e1e2e7",
+"ja c #e1e5e7",
+"cF c #e1e8f2",
+"yx c #e2b13a",
+"KW c #e2c993",
+"w4 c #e2dede",
+"g. c #e2dfe1",
+"ou c #e2dfe2",
+"wj c #e2e0df",
+"fA c #e2e0e1",
+"fB c #e2e0e2",
+"w. c #e2e1e0",
+"nG c #e2e1e1",
+"eV c #e2e1e2",
+"fv c #e2e1e3",
+"kW c #e2e2e2",
+"qY c #e2e2e4",
+"vz c #e2e3e2",
+"g0 c #e2e6ee",
+"#o c #e2ecf4",
+"BQ c #e3ac2a",
+"BR c #e3ad2a",
+"BS c #e3ad2e",
+"Hg c #e3ae27",
+"BT c #e3af30",
+"Bq c #e3b641",
+"KM c #e3ba5e",
+"AY c #e3bf71",
+"ov c #e3dfe3",
+"vw c #e3e0e1",
+"gP c #e3e0e2",
+"vs c #e3e0e3",
+"vp c #e3e1e1",
+"vj c #e3e1e2",
+"gF c #e3e1e3",
+"ei c #e3e2e3",
+"rC c #e3e2e4",
+"mm c #e3e3e3",
+"mn c #e3e3e4",
+"ty c #e3e4e6",
+"dW c #e3e8f1",
+"ks c #e3eaee",
+"cQ c #e3ebee",
+"rJ c #e3ebef",
+"aq c #e3ecf4",
+"Hx c #e4c17a",
+"In c #e4c487",
+"p2 c #e4e0e4",
+"ph c #e4e1e4",
+"w3 c #e4e2e2",
+"vq c #e4e2e3",
+"ej c #e4e2e4",
+"vr c #e4e3e3",
+"eh c #e4e3e4",
+"jv c #e4e4e4",
+"lm c #e4e4e5",
+"yk c #e4e5e4",
+"#T c #e4ebf0",
+"oG c #e4ecf2",
+".e c #e4edf4",
+"CO c #e5ae25",
+"BP c #e5ae26",
+"D7 c #e5af26",
+"Gn c #e5b026",
+"BU c #e5b332",
+"Ch c #e5b958",
+"AJ c #e5bb5b",
+"AK c #e5bd5d",
+"vk c #e5e0e1",
+"pi c #e5e1e5",
+"wi c #e5e2e2",
+"ue c #e5e2e5",
+"Ab c #e5e3e3",
+"vC c #e5e3e4",
+"eQ c #e5e3e5",
+"v9 c #e5e4e3",
+"nH c #e5e4e4",
+"eR c #e5e4e5",
+"el c #e5e4e6",
+"in c #e5e5e5",
+"ln c #e5e5e6",
+"nN c #e5e7e9",
+"s# c #e5e7eb",
+"ms c #e5ecf2",
+".t c #e5edf5",
+"Ok c #e6ad19",
+"BO c #e6af23",
+"Pj c #e6b225",
+"vm c #e6e1de",
+"wz c #e6e2e5",
+"wK c #e6e2e6",
+"Bt c #e6e3e5",
+"e# c #e6e3e6",
+"e. c #e6e4e6",
+"v7 c #e6e5e4",
+"eg c #e6e5e5",
+"eT c #e6e5e6",
+"em c #e6e5e7",
+"vT c #e6e6e5",
+"iU c #e6e6e6",
+"kX c #e6e6e7",
+"qV c #e6e9eb",
+"l2 c #e6e9ed",
+"fQ c #e6edf0",
+"e6 c #e6eef5",
+"CR c #e7ae23",
+"CS c #e7b023",
+"BN c #e7b024",
+"CT c #e7b223",
+"CD c #e7b22e",
+"BK c #e7b425",
+"BJ c #e7b525",
+"Dv c #e7bb54",
+"AL c #e7be61",
+"wy c #e7e3e6",
+"jk c #e7e3e7",
+"vA c #e7e4e7",
+"yI c #e7e5e5",
+"eS c #e7e5e7",
+"w2 c #e7e6e4",
+"m6 c #e7e6e6",
+"eP c #e7e6e7",
+"v8 c #e7e7e6",
+"iT c #e7e7e7",
+"mY c #e7ebed",
+"nc c #e7eff5",
+"D8 c #e8b326",
+"Fg c #e8b329",
+"Ps c #e8b437",
+"KN c #e8c36d",
+"KV c #e8cf9a",
+"J7 c #e8d2a0",
+"j1 c #e8e4e8",
+"uN c #e8e5e8",
+"dG c #e8e6e7",
+"dH c #e8e6e8",
+"rB c #e8e6e9",
+"d6 c #e8e7e8",
+"eO c #e8e8e8",
+"nI c #e8e8e9",
+"lb c #e8ebed",
+"hv c #e8eff6",
+".m c #e8f0f6",
+"BM c #e9b125",
+"CU c #e9b423",
+"Pv c #e9b425",
+"F1 c #e9ba38",
+"AI c #e9bd60",
+"AX c #e9c675",
+"wT c #e9e5e7",
+"wE c #e9e5e9",
+"wP c #e9e6e9",
+"wZ c #e9e7e5",
+"wS c #e9e7e7",
+"ef c #e9e7e8",
+"ek c #e9e7e9",
+"mA c #e9e8e8",
+"ea c #e9e8e9",
+"fu c #e9e9e9",
+"Pf c #e9eae9",
+"lE c #e9ebec",
+"#c c #e9f0f6",
+"BI c #eab625",
+"AW c #eaca7a",
+"vR c #eae6ea",
+"dJ c #eae7e9",
+"dK c #eae7ea",
+"Aa c #eae8e7",
+"yK c #eae8e8",
+"dF c #eae8e9",
+"d7 c #eae8ea",
+"eN c #eae9ea",
+"s. c #eae9ec",
+"im c #eaeaea",
+"oF c #eaf1f7",
+"BL c #ebb325",
+"I1 c #ebb63a",
+"JU c #ebb949",
+"EA c #ebc268",
+"j0 c #ebe8eb",
+"ee c #ebe9ea",
+"dB c #ebe9eb",
+"ed c #ebeaea",
+"i6 c #ebeaeb",
+"lo c #ebebeb",
+"OY c #ebeceb",
+"nn c #ebedef",
+"d1 c #ebf2f7",
+"Qz c #ecb522",
+"I. c #ecb52e",
+"CV c #ecb623",
+"BF c #ecb925",
+"BG c #ecb926",
+"AM c #ecbe61",
+"AN c #ecc163",
+"Cg c #ecc16a",
+"AO c #ecc267",
+"AP c #ecc565",
+"AQ c #ecc66c",
+"AR c #ecc86f",
+"GF c #ecc97f",
+"wD c #ece8ec",
+"dd c #ece9eb",
+"gr c #ece9ec",
+"xM c #eceaea",
+"hk c #eceaeb",
+"e1 c #eceaec",
+"m7 c #ecebeb",
+"ec c #ecebec",
+"lp c #ececec",
+"qp c #ecedee",
+"aD c #ecf1f3",
+"af c #ecf1f4",
+".8 c #ecf2f8",
+"Os c #edb118",
+"Go c #edb727",
+"BH c #edb826",
+"Cf c #edc472",
+"FH c #edc573",
+"KO c #edc979",
+"Jd c #edd19b",
+"KU c #edd59b",
+"wY c #ede9eb",
+"wU c #ede9ed",
+"yJ c #edeaec",
+"p3 c #edeaed",
+"dE c #edebec",
+"d9 c #edebed",
+"m8 c #edecec",
+"kg c #edeced",
+"l0 c #ededed",
+"xd c #edeeee",
+".R c #edf3f8",
+"OA c #eeb11c",
+"OI c #eeb521",
+"PE c #eeb625",
+"Hw c #eed293",
+"DS c #eeeaeb",
+"wu c #eeeaee",
+"dx c #eeebee",
+"CI c #eeeceb",
+"m9 c #eeeced",
+"d8 c #eeecee",
+"zr c #eeedec",
+"eb c #eeedee",
+"il c #eeeeee",
+"xe c #eeeff0",
+"bL c #eef3f8",
+"BC c #efb828",
+"OR c #efb829",
+"Im c #efd29a",
+"wW c #efeaee",
+"wX c #efebee",
+"dy c #efebef",
+"PW c #efeceb",
+"wh c #efecec",
+"CH c #efeced",
+"w8 c #efecee",
+"dI c #efecef",
+"A# c #efedeb",
+"xN c #efedee",
+"dC c #efedef",
+"cV c #efeeef",
+"A. c #efefee",
+"ff c #efefef",
+"uz c #efeff1",
+"yj c #eff0ef",
+"h0 c #eff3f6",
+"ih c #eff4f8",
+"e8 c #eff5f9",
+"z# c #f0b41f",
+"Hh c #f0b529",
+"D9 c #f0b727",
+"Fh c #f0b829",
+"Qh c #f0ba2c",
+"AV c #f0cb7b",
+"Ce c #f0cb7e",
+"HX c #f0ecef",
+"wt c #f0ecf0",
+"de c #f0edef",
+"l1 c #f0edf0",
+"c8 c #f0eeef",
+"en c #f0eef0",
+"cZ c #f0eff0",
+"bp c #f0eff4",
+"hI c #f0f0f0",
+"zt c #f0f1f0",
+"kj c #f0f3f5",
+"bF c #f0f4f6",
+"Qm c #f1b527",
+"QG c #f1b71c",
+"CW c #f1b723",
+"PO c #f1b929",
+"BD c #f1bd32",
+"I# c #f1be33",
+"JV c #f1c45b",
+"AT c #f1cd7c",
+"AU c #f1ce7c",
+"FG c #f1ce85",
+"xa c #f1eded",
+"yl c #f1edee",
+"x# c #f1edf1",
+"c9 c #f1eef0",
+"vQ c #f1eef1",
+"dD c #f1eff0",
+"gZ c #f1eff1",
+"yG c #f1f0f0",
+"jj c #f1f0f1",
+"fT c #f1f1f1",
+"dQ c #f1f5f6",
+"hq c #f1f5f8",
+"hC c #f1f5f9",
+"BE c #f2b92c",
+"CX c #f2ba26",
+"E. c #f2ba29",
+"I2 c #f2be46",
+"BX c #f2c144",
+"BY c #f2c14f",
+"BZ c #f2c453",
+"AS c #f2cb73",
+"GE c #f2d797",
+"J6 c #f2daab",
+"w7 c #f2eeef",
+"v6 c #f2eef2",
+"w6 c #f2eff1",
+"dc c #f2eff2",
+"c7 c #f2f0f1",
+"df c #f2f0f2",
+"k5 c #f2f1f1",
+"cY c #f2f1f2",
+"NH c #f2f1f3",
+"dA c #f2f2f2",
+"tx c #f2f2f3",
+"uC c #f2f3f4",
+"dR c #f2f4f5",
+"bV c #f2f4f7",
+"gT c #f2f4fa",
+"hD c #f2f6f7",
+"hl c #f2f7fa",
+"yw c #f3b924",
+"P4 c #f3b929",
+"Fi c #f3ba29",
+"Hi c #f3bb2e",
+"BV c #f3c23f",
+"B0 c #f3c65d",
+"Du c #f3c767",
+"Ez c #f3ca73",
+"Cd c #f3d08a",
+"Jc c #f3ddae",
+"ws c #f3eff3",
+"xf c #f3f0f3",
+"wg c #f3f1f1",
+"iC c #f3f1f3",
+"eB c #f3f1f4",
+"k4 c #f3f2f2",
+"c0 c #f3f2f3",
+"kh c #f3f3f3",
+"pV c #f3f3f4",
+"l8 c #f3f4f5",
+"bE c #f3f6f7",
+"cu c #f3f7fa",
+"E# c #f4bc29",
+"BW c #f4c242",
+"I3 c #f4c452",
+"B1 c #f4c96b",
+"ym c #f4eff1",
+"h8 c #f4f1f4",
+"fD c #f4f2f4",
+"dz c #f4f3f4",
+"x2 c #f4f4f3",
+"f1 c #f4f4f4",
+"CG c #f4f5f4",
+"lv c #f4f6f6",
+"h5 c #f4f7fb",
+"jb c #f4f8fb",
+"CY c #f5bb26",
+"QA c #f5bc1b",
+"CZ c #f5bc26",
+"KP c #f5cf82",
+"KT c #f5d79e",
+"Hv c #f5dba4",
+"wp c #f5f0f2",
+"k6 c #f5f1f3",
+"vO c #f5f1f5",
+"xg c #f5f2f3",
+"c6 c #f5f2f4",
+"eA c #f5f2f5",
+"DR c #f5f3f1",
+"g# c #f5f3f5",
+"eL c #f5f4f5",
+"cW c #f5f5f5",
+"fI c #f5f5fb",
+"Ru c #f5f6f5",
+"pY c #f5f6f8",
+"n8 c #f5f7f9",
+"eE c #f5f8f9",
+".n c #f5f8fb",
+"#h c #f5f9fb",
+"B2 c #f6cd75",
+"KQ c #f6d387",
+"KR c #f6d693",
+"Cc c #f6d694",
+"KS c #f6d89b",
+"vP c #f6f2f6",
+"c5 c #f6f3f5",
+"da c #f6f3f6",
+"iz c #f6f3f7",
+"yF c #f6f4f5",
+"c4 c #f6f4f6",
+"fr c #f6f5f6",
+"cX c #f6f6f6",
+"ey c #f6f7f8",
+"ss c #f6f7f9",
+"eI c #f6f8f9",
+"gX c #f6f8fa",
+"nk c #f6f9fb",
+"O0 c #f7bb29",
+"Ea c #f7bc29",
+"Ql c #f7bd29",
+"O9 c #f7be21",
+"Fj c #f7be29",
+"Hj c #f7c032",
+"Ia c #f7c240",
+"JW c #f7cc6d",
+"Dt c #f7ce73",
+"Il c #f7dda9",
+"GD c #f7dea6",
+"J5 c #f7dfb1",
+"Jb c #f7e3b9",
+"xh c #f7f1f2",
+"db c #f7f3f7",
+"c3 c #f7f4f6",
+"d# c #f7f4f7",
+"v5 c #f7f5f4",
+"aP c #f7f5f7",
+"c1 c #f7f6f7",
+"#S c #f7f7f7",
+"uX c #f7f7f8",
+"jW c #f7f7fb",
+"Ni c #f7f8f8",
+"uD c #f7f8f9",
+"b3 c #f7f9fa",
+"i# c #f7f9fb",
+"lG c #f7f9fc",
+"Gp c #f8bd2a",
+"P0 c #f8be28",
+"Fk c #f8c129",
+"Ey c #f8d285",
+"FF c #f8dc97",
+"Cb c #f8dc9f",
+"d. c #f8f4f8",
+"ez c #f8f5f8",
+"cs c #f8f6f8",
+"d3 c #f8f7f8",
+"b6 c #f8f8f8",
+"nl c #f8f8f9",
+"st c #f8f8fa",
+"rI c #f8f9f9",
+"uA c #f8f9fa",
+".a c #f8f9fd",
+"bm c #f8fafb",
+"k2 c #f8fafc",
+"C0 c #f9be26",
+"Ib c #f9c74a",
+"Hu c #f9e3b4",
+"x3 c #f9f3f4",
+"ku c #f9f5f6",
+"x1 c #f9f5f9",
+"ly c #f9f6f6",
+"bo c #f9f6f9",
+"c2 c #f9f7f9",
+"bP c #f9f8f9",
+"ag c #f9f9f9",
+"bW c #f9f9fb",
+"su c #f9fafb",
+"uB c #f9fbfb",
+"aL c #f9fbfc",
+"#v c #f9fbfd",
+"QF c #fabd1c",
+"Ph c #fabe25",
+"Qk c #fac029",
+"Gq c #fac130",
+"Ed c #fac331",
+"Ee c #fac333",
+"Ef c #fac440",
+"I4 c #facc65",
+"JX c #facf77",
+"B3 c #fad17e",
+"Ds c #fad482",
+"B4 c #fad488",
+"JY c #fad786",
+"B5 c #fad994",
+"B6 c #fadd9c",
+"Ca c #fae1ab",
+"J4 c #fae2b3",
+"C# c #fae4b3",
+"C. c #fae6b5",
+"cm c #faf6f9",
+"cr c #faf6fa",
+"cl c #faf7fa",
+"CF c #faf8f8",
+"aO c #faf8fa",
+"bQ c #faf9fa",
+"cT c #fafafa",
+"ki c #fafafb",
+"lq c #fafbfc",
+".5 c #fafbfd",
+"ac c #fafcfd",
+"Pi c #fbbf27",
+"P3 c #fbc129",
+"C8 c #fbc330",
+"C9 c #fbc332",
+"D. c #fbc334",
+"Hk c #fbc336",
+"D# c #fbc33e",
+"Hl c #fbc640",
+"lx c #fbf6f9",
+"cq c #fbf7fa",
+"cp c #fbf7fb",
+"cn c #fbf8fb",
+"kw c #fbf9f7",
+"v4 c #fbf9f9",
+"#p c #fbf9fb",
+"gd c #fbf9fd",
+"ct c #fbfafb",
+"qB c #fbfafe",
+"#R c #fbfbfb",
+"cy c #fbfcfc",
+".v c #fbfcfd",
+".b c #fbfcfe",
+"nj c #fbfdfe",
+"QB c #fcbe19",
+"C3 c #fcbe24",
+"PN c #fcbf23",
+"C2 c #fcbf25",
+"C1 c #fcc026",
+"Eb c #fcc129",
+"Gr c #fcc232",
+"Fl c #fcc329",
+"I5 c #fcd073",
+"B7 c #fcdfa7",
+"J3 c #fce4b3",
+"B8 c #fce5b2",
+"B9 c #fce6b5",
+"GC c #fce7b7",
+"Ja c #fce8bf",
+"kv c #fcf8fa",
+"co c #fcf8fc",
+"k7 c #fcf9f8",
+"ck c #fcf9fc",
+"gi c #fcfafc",
+"dL c #fcfbfc",
+"bs c #fcfcfc",
+"#f c #fcfcfe",
+"bO c #fcfdfd",
+".c c #fcfdfe",
+"QE c #fdbe1c",
+"Pt c #fdc126",
+"Pu c #fdc229",
+"Da c #fdc647",
+"FE c #fde1a6",
+"Ik c #fde6bb",
+"cj c #fdf9fd",
+"bw c #fdfafc",
+"fE c #fdfafd",
+"xE c #fdfbfd",
+"Bs c #fdfcfc",
+"bx c #fdfcfd",
+"cS c #fdfdfd",
+"fb c #fdfdfe",
+"dt c #fdfefe",
+".d c #fdfeff",
+"Qi c #febf22",
+"PD c #febf23",
+"P2 c #fec329",
+"C7 c #fec32a",
+"Eg c #fec84a",
+"Db c #fec952",
+"Dc c #fece65",
+"Dd c #fed174",
+"JZ c #feda92",
+"Ex c #feda94",
+"J0 c #fede9b",
+"J1 c #fee0a8",
+"J2 c #fee4b1",
+"aX c #fefafe",
+"wf c #fefbfc",
+"bc c #fefbfe",
+"e7 c #fefcfe",
+"qA c #fefcff",
+"cJ c #fefdfe",
+"am c #fefefe",
+".M c #fefeff",
+"#1 c #feffff",
+"QC c #ffbe1b",
+"QD c #ffbf1c",
+"C4 c #ffc024",
+"C5 c #ffc128",
+"P1 c #ffc226",
+"Qj c #ffc228",
+"C6 c #ffc229",
+"Ec c #ffc329",
+"Fm c #ffc32a",
+"Fn c #ffc331",
+"Fo c #ffc333",
+"Gs c #ffc339",
+"Fp c #ffc640",
+"Fq c #ffc84a",
+"Ic c #ffcb55",
+"Eh c #ffcb56",
+"Fr c #ffcc57",
+"Id c #ffce68",
+"Ei c #ffce69",
+"Fs c #ffcf6a",
+"Hm c #ffcf6d",
+"Gt c #ffcf70",
+"Ej c #ffd275",
+"Ft c #ffd278",
+"Hn c #ffd37b",
+"I6 c #ffd47c",
+"Gu c #ffd47d",
+"De c #ffd57f",
+"Ek c #ffd580",
+"Ie c #ffd582",
+"Fu c #ffd687",
+"Gv c #ffd887",
+"Df c #ffd88b",
+"Dr c #ffda92",
+"I7 c #ffdb8b",
+"El c #ffdb8e",
+"Fv c #ffdb93",
+"Ho c #ffdd93",
+"Gw c #ffde93",
+"Dg c #ffde9a",
+"I8 c #ffdf99",
+"Dq c #ffdf9e",
+"If c #ffe1a0",
+"Em c #ffe1a1",
+"Ew c #ffe1a3",
+"Dh c #ffe2a3",
+"I9 c #ffe2a5",
+"Hp c #ffe4a6",
+"Gx c #ffe4a7",
+"Dp c #ffe5aa",
+"En c #ffe5ac",
+"Ig c #ffe5ad",
+"Fw c #ffe5b1",
+"Di c #ffe6b0",
+"Ev c #ffe7b0",
+"Gy c #ffe7b1",
+"Do c #ffe8b6",
+"FD c #ffe8b7",
+"Eo c #ffe9b8",
+"J. c #ffe9bd",
+"J# c #ffe9c1",
+"Eu c #ffeabf",
+"Dj c #ffebbc",
+"Ih c #ffebbd",
+"Fx c #ffebbe",
+"Dn c #ffebc0",
+"Hq c #ffebc2",
+"Ht c #ffebc4",
+"Gz c #ffebc6",
+"Dk c #ffecc2",
+"Dm c #ffecc5",
+"Dl c #ffecc7",
+"GB c #ffedc4",
+"Ii c #ffedc6",
+"Et c #ffedc9",
+"FC c #ffeec4",
+"Ep c #ffeec5",
+"Ij c #ffefcb",
+"Eq c #ffefcc",
+"Fy c #ffefce",
+"Hs c #ffefcf",
+"Es c #fff0cf",
+"Er c #fff1d1",
+"Fz c #fff1d2",
+"GA c #fff1d3",
+"Hr c #fff2d6",
+"FB c #fff3d5",
+"FA c #fff3d6",
+"ap c #fffbf7",
+"ao c #fffbfb",
+"an c #fffbfc",
+"ci c #fffbfd",
+"aY c #fffbfe",
+".u c #fffbff",
+"#w c #fffcff",
+"we c #fffdfe",
+"## c #fffdff",
+"xO c #fffefe",
+".# c #fffeff",
+"Qt c #ffffff",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.a.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.e.f.g.h.h.h.h.i.j.k.l.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.n.o.p.q.h.h.r.s.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.u.u.u.u.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.v.w.x.y.z.A.B.C.C.C.C.D.E.F.G.H.I.J.K.L.MQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.N.x.x.x.x.x.O.PQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.o.x.x.x.x.x.x.QQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.R.S.T.U.V.E.C.C.C.W.X.Y.Z.0.1QtQtQtQtQtQtQtQtQtQtQtQtQt.2.x.x.x.x.3.x.x.x.4.5QtQtQtQtQtQt.#.u.u.u.u.6.3.3.3.3.3.3.x.7QtQtQtQt.#Qt.8.9.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x#..cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#####QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.w#a.E.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#b.cQtQtQtQtQtQtQtQtQtQtQtQtQtQt#c#d.C.C.C.C.C.C#e#f.bQtQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.C.pQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#h#i#j#k.C.C.C.C.C.C.C.C.C.C.C.D#d#l.lQtQtQtQtQtQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C#n#oQtQtQtQtQtQtQt.u#p#p#p#q.C.C.C.C.C.C.C#r##QtQtQtQtQt#s#t.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#u#vQtQtQtQtQtQtQtQtQtQtQtQtQtQt.####w.u.u.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.v#x#y.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#z#A#BQtQtQtQtQtQtQtQtQtQtQtQtQt#C#D.C.C.C.C.C.C#E#F#GQtQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.C#H#I#JQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#K#L#M.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#N#O.cQtQtQtQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C.C#P#Q.vQtQtQtQtQt#R#S#S#T#U.C.C.C.C.C.C.C#V#W#X.uQtQtQt#s#t.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#Y#Z#0#1QtQtQtQtQtQtQtQtQtQtQtQt##.u.u.u.u.u##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#2.X.C.C.C.C.C.C.C#3#3#3#3#3#3#3#3.C.C.C.C.C#4#5#6QtQtQtQtQtQtQtQtQtQtQtQt.M#7.C.C.C.C.C.C.C#3#8#9QtQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQt.#########QtQtQtQtQtQtQtQtQtQtQtQtQt.L.Y.C.C.C.C.C.C.C#3#3#3#3#3.C.C.C.C.C.C.C.WabacQtQtQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C.CadaeafQtQtQtQtQtQtag#Sah.F.C.C.C.C.C.C.Caia#aj.#QtQtQt#s#t.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cak#5alamQtQtQtQtQtQtQtQtQt.##wanaoap.u.u.u#w.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaqar.C.C.C.C.C#3as#8ataua#a#a#auavawaxayazaA.C#4#5#6QtQtQtQtQtQtQtQtQtQtQtQt.saB.C.C.C.C.C.C.C.CasaCaDQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQt##.u.u.u######.#QtQtQtQtQtQtQtQtaE.z.C.C.C.C.C.CaFayawaGa##5aHaIaJ.C.C.C.C.C.C#MaKaLQtQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C.CaMauaNQtQtQtQtQtQtaOaPaQ.C.C.C.C.C.C.C.Caia#aRQtQtQtQtaSaT.C.C.C.C.CaUaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVad#5aWaX.u.u.u.u.u###w.u#w#w.u.uaYao.u.u.u.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaZ.C.C.C.C.C#3a0a#a#a#a1a2a3a4a4a4a3a5a6a7ata8a9#5#6QtQtQtQtQtQtQtQtQtQtQtQtb..C.C.C.C.C.C.C.C.Cb#babbQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtbcbcbcbcbcbcbc.u.u.u#wQtQtQtQt.8bd.C.C.C.C.C.Cbebfa#a#a#bga3a4bhbibj.C.C.C.C.C.CbkblbmQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C.C#3bn#9QtQtQtQtQt.#bobpbq.C.C.C.C.C.C.C.Caia#brQtQtQtbsbtbu.C.C.C.C.Cbva#a#a#a#a#a#a#a#a#a#a#a#a#a#a#a#a#a#aWaX.u.u.u.u.u.u.u.uaXaXaXaXaXaX.u.ubcbwbx.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtby.C.C.C.C.Cbz#5a#bAbBbCbDbEQtQtQtbF#JbGbHbIbJbKa##6QtQtQtQtQtQtQtQtQtQtQtbLbM.C.C.C#3.C.C.C.C.C.CaIbNbOQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtag#S#S#S#S#S#S#SbPbQbQbc.u.u.u.ubR.C.C.C.C.C.CbeaHa#a#bSbTbUbV.ubWbXbYbZ.C.C.C.C.C.Cb0b1bOQtQtQtQtQt#m.C.C.C.C.C.C.C.C.C.Ca0b2b3QtQtQtQtQtQtb4b5.C.C.C.C.C.C.C.Caia#brQtam#Rb6b7bu.C.C.C.C.Cbva#b8b9b9c.c#cacacacacbcccdcececfc#cgchaXciaXcjckclcmcmcncjcocpcocqcrcoboaPcsctamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcucv.C.C.C.C.Cada#cwcxQtQtQtQtQtQtQtQtQtQtQtQtcyczcAcBQtQtQtQtQtQtQtQtQtQtQtcC#k.C.C.CayaF.C.C.C.C.CaMcDcEQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtbsag#S#S#S#S#S#S#S#S#SaObQbQckcF.A.C.C.C.C.CaAcGa#a#cHcIamcJamQtQtQtQtcKcL.C.C.C.C.C.CcMcNQtQtQtQtQt#m.C.C.C.C.C.C.C.C.C.CcOcPcQQtQtQtQtQtQtcR.C.C.C.C.C.C.C.C.Caia#brcScT#Sb6b4bu.C.C.C.C.Cbva#cUcVcVcVcWQtamcSbsbs#RcXcYcZc0c1bPc2csc3c4c5c6c7c8c9c6d.d#dadbdcdddedfc4agcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.8dg.C.C.C.C.Cdha#diQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cdj.C.C.C#3dkay.C.C.C.C.C#3awdlQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtcT#S#S#S#S#S#S#S#S#S#S#S#S#Sdm.C.C.C.C.C.C#4#5a#dndo#RcT#RbsQtamcScTQtdp.C.C.C.C.C.CaMdqbFQtQtQtQt#m.C.C.C.CaFaJ.C.C.C.CdraGdsQtQtQtQtQtdtdu.C.C#3dr.C.C.C.C.Caia#dvb6b6agcTbtbu.C.C.C.C.Cbva#dwdxdydycs#RdzcVcVdAcWcWcZdBdBdCcZdfdfc7c7dDc8dEdFdGdHdddCdCdIdJdKdIdadLQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.8dg.C.C.C.C.CbedMdNQtQtQtQtQtQtQtQtQtQtQtQtQtQt.##w#wQtQtQtQtQtQtQtQtQtQtdO#N.C.C.Cbza#aw.C.C.C.C.C.CdhdPdQQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtd#d#d#d#d#d#d#d#d#d##S#S#SdRdS.C.C.C.C.C#3dTa#dUdVb6b6b6ag#RcScsd#d#cldWdX.C.C.C.C.C#3bfdYQtQtQtQt#m.C.C.C.Cb#dZ.C.C.C.C.Cd0#IdtQtQtQtQtd1d2.C.Cbeak.C.C.C.C.Caia#aj#S#Sd3b6d4bu.C.C.C.C.Cbva#d5d6d7d7d8d9dHe.e#e.eacVebeae.dHecebcVdEedeeeeefegeheieje.d7ekelemdKend3cSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#veo.C.C.C.C.C.Cepeq#vQtQtQtQtQtQtQtQtQt.#.####w#w.u.u#w#w.#.####w.#QtQtQter.C.C.C.Ca0a#eset.C.C.C.C.CdreuevQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQt.#dbdbdbdbdbdbdbdbdbdbd#d#d#ew.W.C.C.C.C.CbeaGa#exey#RcTb6agbPezdbeAdaeAeBeC.C.C.C.C.C.Ca9eDeEQtQtQt#m.C.C.C.Cb#eFaA.C.C.C.CeGeHeIQtQtQtQteJ#k.C.CcOdh.C.C.C.C.Caia#eKeLeLeLcWb7aT.C.C.C.C.Cbva#eMeNeOePe.e#e.eQeRehejeSeaeae.eQeTePd6d7ePe.eieUeUeVeWeXeYejeQeZe0eZe#e1aPcS.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQte2.C.C.C.C.C.C.Ce3e4e5e6QtQt.#.#.#.###.u.u.u.u.u.u.u.u.u.u.u.ue7QtQtQte8e9.C.C.CaUaua#f.f#.C.C.C.C.C.Ca0fafbQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtcldbdbdbdbdbdbdbdbdbdbdbdbfc.D.C.C.C.C.C#4a#fdfeQtcSagb6bPd3eAeAffdffffffg.C.C.C.C.C.CfhfifjQtQtQtfk.C.C.C.Cb#d0fl.C.C.C.CfmfnfoQtQtQtQtfp.C.C.Ca0dh.C.C.C.C.Caia#fqeLcWfrcWfsbu.C.C.C.C.Cbva#ftfud6eTeQe.ePeRd6eSejejejeTeTeQejeheReTe.ehfvfwfwfxfyfzfAeUfBeYfCfwfBdHfDfE.uamamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.s#d.C.C.C.C.C.C.C.C#MfFfGfHfI.u.u.u.u.u.u.u.u.u.u.ubPbPbPbPbPcSQtQtQtfJ.B.C.C.CfKa#fLfMfNfO.C.C.C.C.CbzfPfQQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtcldbdbdbdbdbdbdbdbdbdbdbdbfR.C.C.C.C.C.Ca9a#fSbFbsagagbQagfTfffffffffffffUfV.C.C.C.C.CdraGfWQtQtQtfX.C.C.C.Cb#atay.C.C.C.C#3dMfYQtQtQt.nfZ.C.Cb#avdh.C.C.C.C.Caia#f0f1b6cScTf2f3.C.C.C.C.Cbva#f4eOeTeQeQd6eiejeheNePeReQejeQehejejejejeifBeUeWf5f6f7f6e0eWf8f9fyf9g.dHg##pfEbQ#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#vb.#D.C.C.C.C.C.C.C.C.C.C.Agagbgcgd#w.ufEfEbPbPbPbP#S#S#S#Sb6QtQtQtfbge.C.C.C.Cbfa#gfb3#vgg.C.C.C.C.CaFaHghQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtgidbdbdbdbdbdbdbdbd#d#d#aPaPgj.C.C.C.C.C.Cgka#glQtbscT#RcSQtcWcYcVcVcVdIdIgmgn.C.C.C.C.C#3dMgocyQtQtfX.C.C.C.Cb#atgk.C.C.C.C.CgpgqgrfrQt.2#d.C.CaVfndh.C.C.C.C.Caia#gs#Sam#Rc0gtgu.C.C.C.C.C#4aHgvgwgxgygxgygzgzgAgBgCgBgDgEejejejgFeVeVeUgGgHgIgJgKf7f6gLgHgMgNgOf9gPdJeLagbQb6#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.RgQgR.C.C.C.C.C.C.C.C.C.C.C.C.HgS#ggTbQ#S#S#S#S#S#S#S#S#SbsQtQtQt.1.U.C.C.CaV#5a#gUdLcTgV.C.C.C.C.C.CadgWgX.#.#.#.#QtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtdLc2dbd#d#aPaPc1c1c1#S#S#S#ScL.C.C.C.C.C#3awa#gYQtamcSQtQtQtQtcJdydydydygZg0g1.C.C.C.C.C.Catg2eIQtQtfX.C.C.C.Cb#atg3g4.C.C.C.CdZg5g6c0Qtg7.C.C.Cg8a#dh.C.C.C.C.Caia#g9am#RdAekh.gn.C.C.C.C.C#3aFh#hahbhahbhahahahaha.G.G.GhceNeQejfBe0hdhdfCgKhehehehfgHhghhhhhifzhjejhkfrb6ag#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt###w.#QtQtQtQtQthlhmhn.C.C.C.C.C.C.C.C.C.C.C.C.Chohp.Shq#S#S#S#S#S#S#Sb6QtQtQtQthr#M.C.C.Chsa#hthud#Qthvhw.C.C.C.C.Cbehxhy##.u#w#w#w#w#w#whz.C.C.C.C.C.Ca.a#aaQtQtamcSbQb6#S#S#S#S#S#S#SfEaXaX.G.C.C.C.C.CaFhAa#hBQtQtQtQtQtQtQtQtbxbxbxbsamhC#7.C.C.C.C.C.CawhthDQtQthE.C.C.C.Cb#athFhG.C.C.C.Cdr#5hHhI.chJ.C.C#3awa#hK.C.C.C.C.Caia#hLcTfTeNfBhMhN.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.ChOhPhQejeUeYfCfxgIhRhShShTfzhUhVhWhXf6hYhZePebc1b6bsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.u##QtQtQtQtQtQth0h1h2aA.C.C.C.C.C.C.C.C.C.C.C.C.Choh3h4d3dbdbdbdbdbgiQtQtQth5cv.C.C.CaFh6a#h7h8d.Qtamh9.C.C.C.C.C.CcGi.i#.#QtQt.u.u.u.uhz.C.C.C.C.C.Ca.a#aNcSbscTagb6#S#Sd3bQfEbcbce7######ia.C.C.C.C.CaFhAfdibamQtQtQtQtQtQtQtQtQtQtQtQthC#7.C.C.C.C.C.Cawa#icQtQtid.C.C.C.Cb#atieif.C.C.C.C.ChAigd7ihii.C.CazaGa#ij.C.C.C.C.Caia#ikilimineXiohN.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CipiqirejhdgIfzhRhRhSisgOhiithWiuivfyeYe0dHcVcVc1bsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.uQtQtQtQtQtQtQtQtb3iwixeGb#.C.C.C.C.C.C.C.C.C.C.C.C.C.YiyizdbdbdbfDbxamcSQtiAfO.C.C.Cay#5a#iBiCd.QtQtiD.F.C.C.C.C.CasiEbFQtQt##.u.u.u.uhz.C.C.C.C.C.Ca.a#iFcTagagag#S#Sd3#p.u.u.u#wQtQtQtQtia.C.C.C.C.CaFhAa3iGcSQtQtQtQtctcWcWcWcWilfueaiHiI.C.C.C.C.C.Cawa#iJbscSiK.C.C.C.Cb#atieiLiM.C.C.C.CaIiNiOiP#M.C.CdZa#iQiR.C.C.C.C.Caia#iSiTiUiViWiXhN.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CdTa#iYeVfxhRhhiZhhiZi0i1i2iui3i4i5fCe.i6cYdAcYb6QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.u.u.ubcd3cT#RcSQtcSami7i8i9gkbz#3.C.C.C.C.C.C.C.C.C.C.Choj.ffcZfffTQtQtQtQt.x.C.C.C.Cd0a#j#jaiCdbcTamjbjc.C.C.C.C.CaFjdjeQt##.u.u.u.u.uhz.C.C.C.C.C.Ca.a#jfbscS#R#S#S#Sb6.u.u.u#wQtQtQt.#.ujg.C.C.C.C.CaAd0jhjicSQtQtQtQtagcYcYdAjjjkjkjkjljm.C.C.C.C.C.ChAa#jn#ScTjo.C.C.C.Cb#atiejphw.C.C.C.CfmfLjqjr.C.C.Cgpa#jsjt.C.C.C.C.Caia#jujvjwjxjyiXhN.C.C.C.C.C#4hAhAhAhAhAhAhAhAhAhAhAhAhAhAaGa#jzhdgJjAjBi5jChVjDivjEjFjGi2gKeTebfTcXdAc0#RQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.ubcbQ#S#S#S#S#ScTQtQtdticjHjIbna9az.C.C.C.C.C.C.C.C.C.CjJjKcVfff1Qtd3QtjLjM.C.C.CbehAdkjNjOjPjQjRjSjTjU.C.C.C.C.C.CaIjVcyjW.u.u.u.u.ujX.C.C.C.C.C.Ca.a#jYQtQt#R#S#S#SbPcocncjam.###.u.uanjZ.C.C.C.C.C.CcGjhbXamQtQtQtQtQtQtQtQtamj0j1jkj2j3.C.C.C.C.C.CdMa#j4agb6j5.C.C.C.Cb#atieicj6.C.C.C.C.Cj7j8j9.C.CaUdka#k.k#.C.C.C.C.Caia#kakbjyjyjyiXhN.C.C.C.C.Cbva#a#a#a#a#a#a#a#a#a#a#a#a#a#a#a#kcgJhUi2kdhVjBivkejEi3jGkfjwinkgjjkh#SfTcWcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.u.u.ufE#S#S#S#SaPaPcn#R#RagkikjkkgWklkmdhaF.C.C.C.C.C.C.C.CknkodCc2amdLQtdp.C.C.C.C.C.C.C.D#M#M#M#M#Mkp#M.C.C.C.C.C.CkqkrksjW####e7bxdLkt.C.C.C.C.C.Ca.a#aaQtQt#R#S#S#Scsc3kukve7#w.uciaokwkx.C.C.C.C.C.CkykziJbsamQtQtQtQtcSagkhebeNeSe.kAkB.C.C.C.C.CdraGa#do#R#SfX.C.C.C.Cb#atieickC.C.C.C.C.CcGkD.C.C.CaV#5a#kEk#.C.C.C.C.Caia#kFjyjxhSf7kGhN.C.C.C.C.Cbva#kHkIkJkKkLkMkNkOkPkQkRkSkSkRkTkUi0i5kei5iZi1kekekVhVhekWkXimilhIcX#SkhagQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.u.u.ufE#S#Sc1dbdbdbdbdbdbdzc0g#aPbPkYdvkZk0cO.C.C.C.C.C.C.CfheHk1Qtbs#Sk2e4.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Caw#QamcSbscTagb6k3.C.C.C.C.C.Ca.a#aaQtQtcSd3cXf1k4k5k6kv.u.u.uk7#ScXk8.C.C.C.C.C.CdZa#k9#RcSQtQtQtb6hIebeceaiUjveil..C.C.C.C.C.Cfml#lalbc0cYlc.C.C.C.Cb#atieicld.H.C.C.C.CleeF.C.C.CaIa#lflglh.C.C.C.C.Caia#lihSljljfzlkhN.C.C.C.C.Cbva#llgJgKfyhUhhi1jBhVhWi3i3i3i4iukVkdiukdivkejEkVjCfylmlnkXiTlolpkhcT#ScXbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.ufE#S#S#SdbdbeAcYcYcYgZdAkhkhcW#RamlqjYlrls.C.C.C.C.C.CaJlaltQtQtQteJ#y.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cdhlulvagagagagagkt.C.C.C.C.C.Ca.a#lwcTageLcYhIffcVc9c6d.cmlxlydzjjenlz#k.C.C.C.C.CazaGlAag#RbscTb6khlpiUjvkWkWkWlBlC.C.C.C.C.C.CeGa#lDlEdAf1lF.C.C.C.Cb#atieiclGlH.C.C.C.CaJ#4.C.CaAd0a#lIlJlK.C.C.C.C.Caia#lLlMiOlNlNlOhN.C.C.C.C.Cbva#llf6hRhShhitjBhWkei3jGjGlPlPjGi3i3lQlRlSjEkdjAlTjvlmiTininfuhIcTcScXb6amQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt####bcb6#S#Sd#dbfDfffffffffT#Sag#RcSamamamamlU#D.C.C.C.C.C#3a#lVamcScSlW.C.C.C.CaAaAaAaAaAaAaAaAaAaAaAaAaA#3.C.C.C.C.CaFlXlY#RbscScSagk3.C.C.C.C.C.Ca.a#lZd7d9ebl0kgkgdCengZendCenl1cVcVcZl2.z.C.C.C.C.C#3l3l4lofuiTeTeReRjviniUePd6d6l5l6.C.C.C.C.C.Cl3a#l7l8cTagl9.C.C.C.Cb#atieicQtm..C.C.C.C.C#3.C.Cazaum#mambmc.C.C.C.C.Caia#mdiOiOiOiOmemf.C.C.C.C.Cbva#mghShhi1mhjEmilPlPlPjGmii3i3jGmjlSmkmlkdjCiWkWmmmnkXehmmiUilcTamcTb6#RQtQtQtambscSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcTb6d#dbfDffffcVcVl1#Sb6#Rbsbsbs#R#Rmomp.C.C.C.C.Cmqa#mrbscTmsmt.C.C.CbedTd0d0d0d0d0d0d0d0d0d0d0d0eG.C.C.C.C.C.Ca0muambQc2c2bPmv.C.C.C.C.C.Ca.a#mwjveTd6eai6dCcVcVebi6i6d9enjjcZdCebmx.C.C.C.C.C.CcOmymzlTeXlBeRmAeNe1d9dCdCdCmB.C.C.C.C.C.Cbej7a#mCd3cWdAmD.C.C.C.Cb#atieicQtmE.E.C.C.C.C.C.C.Caya#mFmGmHmI.C.C.C.C.Caia#mdiOiOiOiOmemf.C.C.C.C.Cbva#llf7iZivmJlPjGmii3i3i3i4jGmKmLmMmNmkkdmOkbjvmmmPlBmQeUiTffcXcT#RagcTamQtambsagagbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSd#eAjjffdIdydye1f1agagagagagagagmR.A.C.C.C.C.Cfla#mSb6cXmv.C.C.C.CfKa#htkzmFmFmTmTkzkzkzmUmUmUmVmW.C.C.C.C.CaVmXmYjji6d7g#mZ.C.C.C.C.C.Ca.a#m0eReheVeUeVeRd6fuiUeRehd6kgcVebd9ecm1kB.C.C.C.C.CaFm2m3kbm4m5m6edm7m8kgkgm9n.n#.C.C.C.C.C.CaIa#htnaf1f1cWnb.C.C.C.Cb#atiei7Qtncnd.C.C.C.C.C.C#3gka#nenfmHmI.C.C.C.C.Caia#mdiOiOiOiOmemf.C.C.C.C.Cbva#nggKhVmilPi3i3i3jGlQlSmLmkmMmNmMnhjCnikbeUmQm5gIjwmQiTfT#Sb6b6cTagcTagagb6b6agbsamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtnjnkcSboc2cTcTbQeAd7eOf1bsagb6cTcTagnlnm.C.C.C.C.C.CdZa#aekhnnno.C.C.C#3bfa#npnqnrnsntnunvnwnxnynznznAnB.C.C.C.C.C.CaHnCeReXeVeanD.C.C.C.C.C.Ca.a#nEeNd6eReVhdeXlTlTeXnFeXnGeginnHehiTnInJ.C.C.C.C.C.CaMnKnLnMmQjviUeOi6ecm7nNnO.C.C.C.C.C.Cbeh6a#nPlb#Sd3bPnQ.C.C.C.Cb#atnRnSbsQtnT.C.C.C.C.C.Cb#h6a#nUmHmHmc.C.C.C.C.Caia#mdiOgGgGnVnWnX.C.C.C.C.Cbva#nYi1kenZi3lQlSmLn0n1n2n3jGi4kVn4iWhShefxjwgJgJgJhdeOdAcX#Sb6b6agb6#S#S#SagcTcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQt.#.#Qt.#QtQtQtQtQtQtQtQtQte6n5n6n7.mdtQtQtbxb6b6bsQtbsagb6#Rn8k3.z.C.C.C.C.C.CcGa#n9ffo.o#.C.C.Cfmaua#oad6eUgKfyhUgOobhhobgOisheoc#k.C.C.C.C.CadodfxeYeUeVoe.C.C.C.C.C.Ca.a#ofebeaeReimQlTlTlTlTlTlTnFnFnFfxfxm5eXogoh.C.C.C.C.C.Coiojokjwm5lBinfukgolom#k.C.C.C.C.C#3a0a#a#onebcYdzc1oo.C.C.C.Cb#atopnScSQtoq#M.C.C.C.C.Cbza#orosmHf6ot.C.C.C.C.Caia#mdgGeYouovownX.C.C.C.C.Cbva#oxivjElSoymkmjmLi3jCjxhRkbkbkbozgKiWozjwgJjwlTjvlofffTkhcWcX#Sb6b6cTbsamamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQt###w.##w##QtQtQtQtQtQtQtQt.8dg.C.BoAoBoCoDiDoEoFoFoFoFoGoHoIoJ.X.C.C.C.C.C.Cflfna#oKfuoL.C.C.C.Caxa#iQoMeTgHhUhhoNoNoNobhhoNoNoNoOoP.C.C.C.C.CaJoQkIhdhdozoR.C.C.C.C.C.CkqfhoSoToUoVoWoXoXoXoXoXoXoXoXoXoYoZjwiViVgJo0o1.C.C.C.C.C.Co2o3o4o5o6o7o8o9p..C.C.C.C.C.C.Cayl#a#p#pacZffffcZpb.C.C.C.Cb#atoppcQtQteJ#y.C.C.C.C.Ckya#pdpemHgIpf.C.C.C.C.Caia#mdpgphpijkpjf3.C.C.C.C.CdrfhpkplpmpnpopppqprpspsprprprprptpspupvozgJhdjvful0hIf1cW#ScTb6cX#SbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQt.####w.#QtQtQtQtQtQtQtQt.8dg.C.C.C.C.C.CpwbuoAoAoAoApx#N.C.C.C.C.C.C.C.CaUbfa#pypzpApB.C.C.CaJbna#pCpDeYhRgOoNoNoNoNoNoNoNoNhhpEpF.C.C.C.C.C.C#8pGlBjwpHpI.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CpJpKpLhRhepMpNpOe3.C.C.C.C.C.C.C.EpPpQpRpS.C.C.C.C.C.C.C.CdZaGa#pTpUpVf1l0m7lppW.C.C.C.Cb#atiepXQtampYpZ.C.C.C.CaAhAa#p0mHf6gGot.C.C.C.C.Caia#p1p2jkp3eLp4aT.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cp5p6p7jvlohIeLagcTbsamamcS#S#ScTQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQt.8dg.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cbed0a#a#p8p9q.#D.C.C.CdZ#5a#q#gHhejxhhoNoNoNhhhhhhhhjAjAhUqaqb.C.C.C.C.CfhqcqdqepHpI.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cqfqgqhn4qiqjqkqlqmjJ.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CmqfKaGa#qnqoqpf1i6e.e.e1qq.C.C.C.Cb#atnRpcamd3c0qrqsqt#4#4ayfnlaqumHgJiOqv.C.C.C.C.Caia#qwe#ecbsbsb4bu.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cqxqyqz#S#RcSamQtQtQtQtQtbsb6agamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtqAqBQtQt.8dg.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CaFdhbna#a#pdqCqDqE.C.C.C#3dTa#qFqGfzfyf7oNoNoNoNhUisjAjAjxhef7qHqI.C.C.C.C.CaAqJqKpHpHpI.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cbzl#qLqMjBqNqOqPqQqRqS#3.C.C.C.C.C.C.C.C.C.C.C.C.C#3fmdTfna#qTqUqVjjece.eQeRd9qW.C.C.C.Cb#ataeqXeLecd6ePqYqZa#a#a#a#dUq0mHgHgHqv.C.C.C.C.Caia#q1ec#S#Sf1q2f3.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cas#5q3QtQtQtQtQtQtQtQtQtcTb6cSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamamamamam#vq4q5q6aJ.C.C.C.C.C.C.C.C.C.C.C.C.Cb#bzaIav#5a#a#q7q8iWq9r.jcr#fmdZaGa#raiWlNhRjxjAjAoNjAhSninijxhSisjAjAocrbrcfmfmfmfmcGrdpHpHrerfrgfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmadfnrhriqNrjrkpLm4okrlrmbvbe#3.C.C.C.C.C.C.C.CaJcOcGaua#a#iqoarndGeSe.eQe.eaebrorprqfmfmash6rrrsi6eieSeQgFrtrurvrvrurwrxmHgKhRryrfrzfmfmfma0a#rAp3rBrCrDrErFrGrHfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmai#5q3QtQtQtQtQtQtQtQtfbrInlamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambs#RcT#RbsQtfbrJrKj7bnawaxaIdhdhdhdhdhfKaxgkhArLl#a#a#a#rMrNrOjxf6pgrPrQrRl#fna#a1rSjyjxjyjyjyjyjyjyniniisjAjAjAisf6rTrUrVl#l#l#l##5rWrXjyrYrZr0l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#fna#r1r2r3r4r5hehfgLgJkIr6r7aHgpa9dhdhdha9gphAj7#5a#a#pyr8r9p7eVeheQekd8ecdBd7s.s#sal#l#l#a#a4sbdHejfBpgnVscsdsesfsgfzhRhSnishsisjskl#l#l##5a#slhUhWsmsnsospsqsrl#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#fna#q3QtQtQtQtQtQtQtQtbsssst.MQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambscTagagcSQtQtsusvswsxsysza#a#a#a#a#a#a#a#a#a#a#a#sAsBsCsDsEsFlNiOiOiOsGsHsIsIsIsJsKjyjyjyjyjyjyjyninijAjAjAnifyiOnVfCfCsLsMsNsOsPsQsRsSjyjyjysTsQsQsQsQsQsQsRsRsQsQsQsQsQsUsVsWsWsXsVsWsWsWsYsZqNs0qPr4ishSgKgIs1s2s3s4hta#a#a#a#a#a#a#las5s6s7s8eXgLgLeYg.eQdHekekekeke1s9b9t.t#sNtatbtctceYgGiOiOtdten4i0nitftgtgi0gOf7thtisksNtjtktltmtntokVhhfytptqsIqLsQsQsQsUsUtrsQtstttugWgWgWgWgWcbc#tvgWgWgWtwQtQtQtQtQtQtQtQtsupYbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambscTb6cTcSamambstxtytztAtBtCtDtEtEtEtEtEtFtGsStHtItJjyjyjyhSf6f6f6f6mHtKtLtMtMtNjxsFiWiWiWiWiWiWjxjyjAjAnifyiOnVpgphphnVtOtPtQtMtRtRrYjyjyjysEtRtRtRtRtRtStTtUtSpNtVtVtWtXtYtZtZtZt0tZtZtYt1jCr5t2gJnMgJgKgKozgIgIt3t4t5t6t7t8t9u.u#uaubuceUf8nFudgKfyf7f7f7fzeYuedHdHeNekufuguhuiuiujiOiOiOiOiOiOfyhhukkfuli0iZgOfyiOgGumunuoupuqurusutuuhefCeXeXjwpvrYuvtSuwuxtXuytMuguzuAuBuBuBuBuBbml8uCb3uBuBuB.vQtQtQtQtQtQtQtcSuDuDamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcS#Rag#S#ScWf1khjjd7e0gKiWjxjyjyjyjyjyjyjxjxjxjxjxjxjxjxhShSf7f7fyfyfyfzf6f6f6f6lNiOiOiOiOiOiOf6jxjxishSheuEhRiOpgeYgGfxgGiOhehejyjyjyjyjyjyjyjyjyjyjyjynipHjxnishshrji2uFuFnZi4uGuHuIqPhShehehehRhRhRhRhRhRhRhRhRhRhRhRhRgNhfhfuJuKuLf8nFgMhfrkhiiZuMobfzfBuNdHd6dHe.eVfCiOiOiOiOiOiOiOiOiOiOiOljhhsZmliuuOlMuPuQhUhSiti4mKuRuSuTuUgOgJgIgKiWsFjyjyjyuVuWultfhReQi6g#aO##QtQtQtQtQtcSb6cTQtQtQtQtQtQtQtQtQtQtQtQtbsuXkiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamcScTb6#S#Sb6bQc2aPh8dIekejhdgIgHgJgKkbozgKhRhRkbhRfyhehehShShShShShShSf7f7uYfzuZlNgGiVgKhehShehefyfzf6fzgKiOiOgGiOiOf6f6gKf6hSnijyjyjyjyjyjyjyjyjyjyjyiWjxu0u1sfu2u3s0hWkeu4qOrkgNudu5u6u5scuKhjhjf9hYhYhYgMgMgMf9f9f9gLgLu7gLu8hjhYhRisiZiZoNgOlNfBeRe.e.jkkWeVpgiOiOiOiOiOiOiOiOgGfxfxfxgJfyitnhu9v.qNv#vasehetgkemijGkVi2i0uYgIhRjxjyjyjyvbvcuWjCi0hRePiCdfkh#pbxQtQtQtQtQtQt#Rb6bsQtQtQtQtQtQtQtQtQtQtQtQtbscTamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamamamamQtQtQtQtQt.u.u#paPffdCeNePjkmQvdvdvdm5jwgKhRfyf7hSjxjxjxjxjxhShShShSf7fyhRhShShehehef7uYfyljhefziOiOiOiOiOhRhRjyhUhXtfnijyjyjyjyjyjyjyjyjyhRiOjxhRhRhYvevfn4vgvhr5vinFvjvjvjvkuKgNvlvmvngLgGgGm5vovpvqvrjvjve0fxfCgIfzhehUgOjAjAisfygGtcvsgFhdvdfxiOiOiOiOiOiOiOiOm5vdiOlNhRjyjyjAobiZobgOf6eYe#e#hSvgkViZjAjyjyuQvtfyhgvujyjyvbtfuli5iZf6ejdCcsbxQtQtQtQtQtQtQtQtQtbsb6cTamQtQtQtQtQtQtQtQtQtQtQtQtamamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.##RfriCdCeaiTeSjveReioupglNljuYuYhUisisisgOgOgOgOgOgOgOishShShShUgOgOobhhhhhhi0tfjxhShUisisjAn4i1tghSjyjxhRsFgKf6gKhRf6iOiOiOiOlJlJvvhghUgOmOhUudhZpivwvnvdm5f6hRf6fxvxvyiOiOgGfxfCkWvzeVgHhejxheuQjyjyjyjxhShSfzlNnVgGgGiOiOiOiOiOiOiOiOgGfxgIfyhhitjCjCi0hReXeVvAeSdHlBvBkft1iuhViZuYhRhRfyhSjyqejxvujyvbtgululmOgHejp3h8daaPcTctcpbodzkheLez#pbxagagcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbx#pezcVeceOdHeSiUvCeheVhdfxgIgKf7vBgOgOgOgOgOgOgOgOgOgOobobhhobhUgOi1i5kfkVkVkViut1kVvgkfvDvEvbhejyjyjxhRfziOiOiOiOiOiOiOiOiOlNuYisisishUhgt2t2t2vFvGvHvIm4uEfzf6f6vigNhfvJvKujgIgIgJjxjyjyjyjyjyjyiWf6iOgKlNiOiOiOiOiOiOiOiOiOiOiOlNuEshjChVhVi1tguOfzvLhdeUvMobhWvNuSlRjEtgfyf6nVgGf6hRhRheiWnishtfululmOfzejd7l1vOeAvPc4dAfTvQdCececdfc4bPbQagbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#wbQcXl1vReQvSeliUePvTmmlBvxm4hSisisishUhShShShefyfyhRgKgHgGfxisi5i4lSnhlSmikVvDvUvcuVvbjyjyjyjyjyjyiWlNlNlNlNiOiOiOiOiOiOfzuYuOhiiti0hhhUljhfvIm4m4m4vFvFvFvFvFkbf6f6hRiOsFjxsFsFsFsFjyhRsFsFsFiWiOiOiOiOiOiOiOiOiOiOgGgGvVgJvWvXnhvYithhninihhn4vZv0nZv1v2v3hWhhhefCeQjkueeUeXgIfzhSmOuWululn4isgHouePlpdxdydydydydyeOeOfufud9cYd3gicTb6#RQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbxv4v5v6fuv7jkiTiTv8vTv9w.nFfxfxfCeXe0e0eUfBehinePePePeSjveUjAmLw#mJi1mOjyjyjyjyjyjyjynijyjyjyjyjyjyjyjyhehegKiOiOiOiOgGgHsFwaivhWjBhRe0oueYgGiOiOiOiOiOiOiOiOiOiOiOf6iOiOiOiOiOgKiOf6iOiOiOiOiOiOiOiOiOiOgGm5m5m5wbvZwcmlsZhVitnijyninihSljljozgGwdkWehjveSe.lBfxf6uZljtfvUululuWvEhSf6tcejdKd9lpendfdzdzdzdzf1c2c2dLbsbs.#.##Rb6cTamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtwewfc2wgwheSwiwjlTvdm5wkfAgLgNf7lNe#dBkgdxe1e1e1greOeOeOiTehhSmimKivjCnijyjyjyjysFuEjyjxjyjyjyjyjyjyjyjyjysFhehehef6hegOwlukjFkeulkbphvAjkeVhdhdeXwmm5m5fxfxfxgGgGiOiOiOgGiOiOiOfyhefziOfxgGgGfxfxm5m5fxiVgHwnituki3i3i4kfi0gOsFgJgGeXlBueeiw.eUwogJhRshgOhhhhhhjAhUfygJhdeQeTdBimdceLeLeLcrclaOgidLbsbsbsbsbs.#.#QtQtQtQtbsb6agcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#wlywpvRwqviuOvUqkhWwrwrmhmhjChhoup3wsjjvQwtdIdydywueap3p3eSoNkVhWiZjAjyjyjyuEjyjyuEjyjyjyjyjyjyjyjyjyjyjyjyjyjyhhwvvgkeuIwwwxm5uewyjkuewzjkgFwAmQmQmQvdvdvdiVuZgHfxvdm5gGgGgGgGgGm5vdvdvdvdvdm5iVozhSi1wBjGwCv0i2ulvBhReYeVeSeawDwEpiiWvZi4vXv3sZvhhegGeidKd8dfdAezbPct#w##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSagagcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcJbxbPezcYhIdedxdxdxdxfueOd6uNphp2eRebiCcWgZcVcVdCdydydyp3uNfBjwuZf6f6hejyjyjyjyjyjyjyjyjyjyjyjyjyjyjyjyjyjynir4ituVwFvuu0gGvSwGpgfxvneUjkvAjkjkjkuemQgJhhvDjAkbgGvdvdvdvdvdvdvdvdm5gGfyjCiuwHmjlSwIi4i2wJljgJvseReTe#fxhSi1uklPlPivtgozwKp3gZbo#pbscSam.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamcTagbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#cScSbxbxbxbxbx#R#R#R#pc2c4ffdCdxlocZjjc0fDjjgZgZdId8l0dBekePvAe#gFmQfxfxgGgGkbwLiWiWsFjyjynijynijyjyjyjxuZviwMjywNujwOgIf6f6gJm5e.d6ekdHeSvAkWfCfygOgOgOhSgIm5vdvSvSvdvdvdgIfyitiulPmjjGkeithUgKgJeYeYm5gIgJhRuEiWfzfxuedHkgcYfrcnbscS.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamcTb6#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#d3ild7d6lohIdAh8iCffjjjjjjjjjjjjdIdId8fufuwPwEeQmme0tcnVozkbiWiWisjyjyjyjxhfwQwRshi0fyscgJwLiWiWgGjvgrdIdBeaeawSwTvAkWfxiWoNf7uZm5eUeUvdvdvdhdgGkbwListgi0hhf7f7fygKkboziVeUe.e1dcdzcWage7##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcS#R#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcS#ReLlokWeXozeYeVe.eNd9enjjvPvPvPvPfDhIgZcVcVilebebebwUwDineQphvsgHlNlNuJwRjAjCivwVgIindBeclpebd8ffdCdIdywWwXwuwuwYwZgHjAoNgOsFwLgGgGgGvSvdvdjwvbt1oyw0w1gOnVdKeng#codLcSam.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamamamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambs#Sdzl1dHgFe0gKhRfzuYf6gHe0eRePdBd9cZc0eAdac4c4fDcYfTdfvQl1dIdydBdHw2w3w4w5r3i5oNhRhdePdCdfeAcYcYcYdfdfw6w7c9w8eaeRhdjwf6jwhdvsfBiVjAkVoyw9x.jGmOkWcVeLgibxam.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.##Rd3eLx#d7inovgIf7obtfvbisuEgIeVwPdBdCfTdzcW#SaPaPaPaPaPc4dAdAc7xap3ePeUhUi2xbxcn4f6dHecxdxec9xfxgxhc6cYcYdcd8imeSineQvshei4xixjw9vNvBwPcYcl##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#amamcSbxckc1dzdcgreTfBgHisi0ulvUmOeYind9jjc1#S#S#S#S#S#S#Sc1cXcWeLiCkWi3xkxlxmxnxoxojFjBhUuOuOtgjCkVv3xpxqxrxsuSwIulnVekffckcJQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamamambxgiagc1dzhIeceOeRhdgInVm5ejgrilfraObP#S#Sb6bcbP#SaOezp3mhxtxuxvhXfzgGtcfxgHhef7hShSuEgImmj0l1fDd3gicJamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbx#R#paPdzvQeNd6dKeadfbo#p#pfriCdb#p#p#pfEbcdCxwxxxyfBePdHwufDaPaPd#d#d##SbP#Rbx##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#fEc1jjjjd#aXcox#wLfBvPQt##bccWt1xzxAeVeRhevbeNcrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbseLiCc4ck##cse0jExiheec#Rh8ljxBvUeXeXi2iujAfud3cSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtdLboc0fDc1bccseStoxCmNfycVgZlBjChhfxnVn4xDuleRcZxE.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#bPjjp3wugZd.cjc4e.xFjFhhvAeOiswcuYeUvHhWjGwJinboe7QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamd9wPwEdzcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcJcnx#eStcgIeUeOgZkhfDd8fudKueuOsFozfxi5nhxGiWeReAb6bx##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamxHxIxJxKxLlQQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#dLcsiCeciUjveReOecebcZdfvOebimead6ehfCjAjAiWeYjvxMxNc7cYg#c4cX#p#p#RbsbxbxbxbxcSamamamxO.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamxPxQxRxSxTxUQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbsl0ozxVxWxXxYxZx0i6amQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcJb6iliUtcgGhduefudCc0x1c3x2frc0lpmmvsovfBeUtcpgfCvdehiUePwUwuwuwUe1kgcYdzdzx3lxcndLbsbxcJamam.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamx4x5x6x7x8x9QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcVvfy.y#yaybycydyeyfygfyamQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#dLd3fDkgeiwOyhtgyiuIt1fzvAlpfTg#c1cWbod#fTyjdCx#v6cYdfv6loeajvykeTePvAeQlBvseijviUeOdEebylymh8h8dzf1csagagct#wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamynyoypx7yqyrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#jjysytyuyvywyxyyyzyAyByCyDyEi3dLQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambsagyFyGimeae.yHvyhdhdheljwLiVoueVineadGyIeRinePj0l0gZgZgZenilgZgZdCece1imd7dKekdBddyJp3ekiUineTyKdBimlodCgZeLbQdLcSamQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSeUyLyMyNyNyNyNyNyNyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y3y4utloQtQtQtQtQt.##SimuPy5y6y7y8y9z.z#zazbzczdzezfzgzhzizjisQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#wagc2khd9vAlTgKisjBzkqjzlzmznzozolSrjzpzqtfvczqoueSe1zrcYc4d.dzeLcWcWcWc1c0eneaj1vAeQzszseXgGoue.p3ztaP#pbx.#QtQtQtQtbsozhWkVwbhRhRhRhRhRhRiWwMu0ozgJgJkbzuimeccZcZcZcZcZiTxGzvzwzxzyzzzzzzzzzAzBzBzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTtflocYiTwLmlzUzVzWzXzYzZz0z1z2z3z4z5QtQtQtQtinz6z7z8z9cJQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#amcScSbsctclcsc6cZcZA.A.ilA#AaAbiVf6vvhUmOjCAcAdAeAfAgkfvZivkdulAhAifzjAkboueSe1d7ingFe0m5gGtcvswDcYd3##Qt##AjAkAlAmAnAoAoAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAEAEAFAGAHAIAJAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9B.B#BaBbBcBdBeBfBgBhBiBjBkBlBmBnBoagQtQtQtQtQtvEBpBqBrgFQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#amcScScScScScSBsbscTaOclbodahIdCdFBtBuBvuEvcvWvWjBBwBxi2ByBzuWu3AigHeijke#uepigGhRkbe#cVbQ.#bxBABBBCBDBEBFBFBFBFBGBGBHBIBJBJBKBLBMBNBOBPBQBRBRBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B9C.C#CaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBshQtQtQtQtQtQtfuCCCDCExBQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#Qt.#amcJbxbs#pCFCFCGdzdzfDiCjjffxNCHCIhkekeQeUCJnMgJgKshvcf7phd8bo.#cTCKCLCMCNCOCPCQCRCSCSCSCTCUCVCWCXCYCZC0C1C2C3C4C4C4C5C6C7C8C9D.D#DaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDGDGDHDIDJDKDLDMDNecQtQtQtQtQtQtdzDODPDQxAQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.########pd3DRDSeavAmQmQe#kgc0#p.#bPDTDUDVDWDXDYDZD0D1D0D0D2D3D4D5D6D7D8D9E.E#EaEbEbEbEcEcC7EdEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMEMEMENEOEPEQERESETeQQtQtQtQtQtQtcVEUEVEWEXQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#amcScScSam.#QtQt.#vCEYEZE0E1E2E3E4E5E6E7E8E9F.F#FaFbFcFdFeFfFgFhFiFjFkFlFmFnFnFoFpFqFrFsFtFuFvDhFwFxFyFzFAFBEsFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRELEMEMEMEMFSFTFUFVFWFXFYFZ.#QtQtQtQtQthSF0F1F2vzQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSdEF3F4F5F6F7F8F9G.G#GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoFiGpGqGrGsFpFqFrGtGuGvGwGxGyGzFyGAFAFAEsGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQELEMEMEMGRGSGTGUGVGWGXGYGZG0##QtQtQteXG1G2G3G4bxQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##gig#eRi5G5G6G7G8G9H.H#HaHbHcHdHeHfHgHhHiHjHkHlEgFrHmHnGvHoHpGyHqEqGAFAHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGFRGQELEMEMHHHIHJHKHLHMHNHOHPHQHRHSfxeijFHTHUHVHWAdQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambxHXHYHZH0H1H2H3H4H5H6H7H8H9I.I#IaIbIcIdEjIeFvIfIgIhIiIjFyFyDlIkIlImInIoIpIqIrIsItIuIvIwIxGQGQELEMEMIyyqGQIzIAIBICIDIEIFIGIHIIIJIKILIMINIOcSQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteaIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9FwJ.J#J#JaJbJcJdJeJfJgJhJiJjJkJlJmJnJoDFGQGQJpJqJrJsJtFRJuJvJwJxJyJzJAJBJCJDJEJFJGJHjFamQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbsinJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9K.K#KaKbKcKdKeKfKgIxGQGQKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAmQQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtwrKBKCKDKEITKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8IxGQK9L.L#LaLbLcLdshcZ#RQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtfrLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLFRLMLNLOLPi3hIbxQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L6L7L8L9M.M#MaMbMcMdMeMfMgMhMiMjMkMlMmvYffQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtc1MnMoMpMqMrMsCqMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRjEQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#eNMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9N.N#NaNbNcNdNeNfNgNhozbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtNim5NjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGheNHQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbxd8NINJNKNLNMNNM7NONPNQNRNSNTNUNVNWNXkddzQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcJagl0NYNZN0N1N2N3N4N5N6iVcWbxQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteXN7N8N9O.O#OaObqOcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtc1OcOdOeOfOgOhOi.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtiUOjOkOlOmOnOoOpcrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtOqOrOsOtOuOvOwOxpgQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtOyOzOAOBOCODOEOFxCQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtOGOHOIOJOKOLOMONOO.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##OPOQOROSOTOUOVOWOXOYQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtwPOZO0FiO1O2O3O4O5O6i2cSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamO7O8O9FjP.P#PaPbPcPdPePfQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#gHPgPhPiFjPjPkPlPmPnPoPpPqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtyKPrPsPtPuFjPvGlPwPxO4PyPzPAeVQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcTPBPCPDEcEcFjPEPFPGPHPIELOMPJPKfrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#enPLPMPNEcEcEcFjPOPPPQPRPSELJpPTPUPVwOQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#cTdzPWPXPYPZP0P1EcP2P3FjP4P5P6P7FUP8DGP9Q.Q#QaQbQczrb6bxQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtCHQdQeQfQgQhQiQjEcEcQkFjQlQmQnQoQpQqLLDGELGQDGQrQs..QuQvQw.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcWQxQyQzQAQBQCQDQDQDQDQEQFQGQHQIQJQKQLODQMELGQGQGQQNQOQPQQQRvNQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQSQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQULdQVQVysQWQXQYQZQ0Q1Q2Q3Q4Q5Q5Q6Q6Q5Q7Q8Q9R.R#RaRbRcRdReReReReReReRfRfRgRhRiz5RjRkRlysRmLdQUQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTdHamQtQtQtQt",
+"QtQtQtQtQtQtQtRnRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRpRqRoRoRoRoRoRoRoRrRoRsRtRoRoRsRsRtRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRtkdbxQtQtQtQt",
+"QtQtQtQtQtQtQtb6cWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcXRucWcWcWcWcWcWcWeLcWf1cWcWcWf1f1cWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWbxQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
 
 static const char* const back[]={
 "16 16 5 1",
@@ -267,486 +3109,442 @@ static const char* const home[]={
 "................"};
 
 static const char* const image1_data[] = { 
-"54 20 459 2",
-"      c None",
-".     c #929292",
-"+     c #C1C1C1",
-"@     c #C2BFBE",
-"#     c #97A3AE",
-"$     c #4C7890",
-"%     c #3A6A88",
-"&     c #678599",
-"*     c #B8B8B9",
-"=     c #BCBCBC",
-"-     c #BBBBBB",
-";     c #BDBCBC",
-">     c #B5B8B9",
-",     c #6E8A9D",
-"'     c #9AA6AE",
-")     c #C1BFBD",
-"!     c #BCBCBB",
-"~     c #B7B8BA",
-"{     c #718D9F",
-"]     c #8F9DAA",
-"^     c #BFBDBC",
-"/     c #BABBBB",
-"(     c #B7B6BA",
-"_     c #5F8196",
-":     c #336585",
-"<     c #5D7F95",
-"[     c #B8B8BB",
-"}     c #C2C0BE",
-"|     c #B8B9BA",
-"1     c #6B899B",
-"2     c #8297A4",
-"3     c #C0BEBD",
-"4     c #BDBDBC",
-"5     c #BABABA",
-"6     c #738D9F",
-"7     c #9EA7AF",
-"8     c #B5B7B9",
-"9     c #758FA0",
-"0     c #68889B",
-"a     c #628499",
-"b     c #5E8197",
-"c     c #8999A7",
-"d     c #BEBDBC",
-"e     c #C4C4C4",
-"f     c #9D9D9D",
-"g     c #BEBEBE",
-"h     c #FFFFFF",
-"i     c #C0DBE9",
-"j     c #1274A7",
-"k     c #3587B4",
-"l     c #599EC3",
-"m     c #5F9EC3",
-"n     c #ECF0F8",
-"o     c #ACCCE3",
-"p     c #00629B",
-"q     c #77AFCF",
-"r     c #F0F6FA",
-"s     c #0770A2",
-"t     c #6A9FC9",
-"u     c #F0F7FC",
-"v     c #4D95BF",
-"w     c #2F82B3",
-"x     c #79AFD0",
-"y     c #5297C0",
-"z     c #F1F8FD",
-"A     c #F2F6F7",
-"B     c #0E71A3",
-"C     c #1877A9",
-"D     c #E6F0F8",
-"E     c #ABCEE2",
-"F     c #00669E",
-"G     c #9AC3DA",
-"H     c #D7E6F1",
-"I     c #076DA2",
-"J     c #2881B1",
-"K     c #64A6C8",
-"L     c #5EA2C6",
-"M     c #BFD7E9",
-"N     c #D2D2D2",
-"O     c #7CABC7",
-"P     c #00568F",
-"Q     c #C1D8E6",
-"R     c #FBFCFE",
-"S     c #4089B2",
-"T     c #005A90",
-"U     c #106C9F",
-"V     c #D7E6F0",
-"W     c #F0F6F9",
-"X     c #016798",
-"Y     c #6296C0",
-"Z     c #FFFDFE",
-"`     c #FBFBFA",
-" .    c #85B3CD",
-"..    c #00558F",
-"+.    c #ADCADE",
-"@.    c #DDE6EF",
-"#.    c #005E94",
-"$.    c #7BABC8",
-"%.    c #EBEEF1",
-"&.    c #0C6C9D",
-"*.    c #00578F",
-"=.    c #6AA1C0",
-"-.    c #FFFFFC",
-";.    c #D5E1E8",
-">.    c #1F72A2",
-",.    c #005991",
-"'.    c #91B9D0",
-").    c #C5D7E2",
-"!.    c #05679A",
-"~.    c #C2D6E3",
-"{.    c #FFFFFE",
-"].    c #FDFDFC",
-"^.    c #FDFDFD",
-"/.    c #D1D1D1",
-"(.    c #C5DCE9",
-"_.    c #1B74A3",
-":.    c #126FA2",
-"<.    c #619EC1",
-"[.    c #B5D2E2",
-"}.    c #EDF3F8",
-"|.    c #FFFEFE",
-"1.    c #AECADB",
-"2.    c #2D7CA8",
-"3.    c #7AABC8",
-"4.    c #005B92",
-"5.    c #7EADCA",
-"6.    c #016899",
-"7.    c #6297C0",
-"8.    c #FFFCFD",
-"9.    c #F9F9F9",
-"0.    c #7AADC7",
-"a.    c #005A92",
-"b.    c #ADC9DB",
-"c.    c #FFFAF6",
-"d.    c #D9DEE7",
-"e.    c #006398",
-"f.    c #6B9DBD",
-"g.    c #DADFE1",
-"h.    c #086A9B",
-"i.    c #488DB0",
-"j.    c #347EAB",
-"k.    c #A5C4D6",
-"l.    c #3E86AF",
-"m.    c #2278A4",
-"n.    c #006297",
-"o.    c #8DB5CC",
-"p.    c #C3D3DE",
-"q.    c #00659A",
-"r.    c #8CB1C8",
-"s.    c #AEC4D4",
-"t.    c #E2E2E2",
-"u.    c #F0F0EF",
-"v.    c #F1F5F9",
-"w.    c #AECADD",
-"x.    c #609BC0",
-"y.    c #006599",
-"z.    c #2D7FAB",
-"A.    c #EBEDEF",
-"B.    c #FAF6F6",
-"C.    c #3782AD",
-"D.    c #6DA2C0",
-"E.    c #FBF7FA",
-"F.    c #2175A6",
-"G.    c #2378A6",
-"H.    c #FAFBFD",
-"I.    c #F3F8FA",
-"J.    c #006799",
-"K.    c #6398C1",
-"L.    c #78ABC5",
-"M.    c #A8C4D5",
-"N.    c #FAF4EF",
-"O.    c #D3DBE2",
-"P.    c #6A9DBE",
-"Q.    c #DADEE1",
-"R.    c #05689A",
-"S.    c #9FBCCB",
-"T.    c #87A9C2",
-"U.    c #00558E",
-"V.    c #3A80AA",
-"W.    c #B1C6D2",
-"X.    c #8BB4CC",
-"Y.    c #C4D5DF",
-"Z.    c #2D7CA7",
-"`.    c #7EA4BE",
-" +    c #96AFC3",
-".+    c #DFDFDE",
-"++    c #FCFCFC",
-"@+    c #E0ECF4",
-"#+    c #DDE9F1",
-"$+    c #FFFEFB",
-"%+    c #FEFBF9",
-"&+    c #4689B1",
-"*+    c #00588F",
-"=+    c #C0CED7",
-"-+    c #B1C5D6",
-";+    c #005F96",
-">+    c #5992B7",
-",+    c #A5BFD5",
-"'+    c #3884B0",
-")+    c #005D94",
-"!+    c #AECCDF",
-"~+    c #F5F6F7",
-"{+    c #016698",
-"]+    c #5B94BE",
-"^+    c #FFFCFE",
-"/+    c #FAFBFB",
-"(+    c #FFFFFD",
-"_+    c #86B2CC",
-":+    c #005892",
-"<+    c #A7C4D8",
-"[+    c #D9E0EA",
-"}+    c #005C93",
-"|+    c #82B2CC",
-"1+    c #E6F0F9",
-"2+    c #02669A",
-"3+    c #90B4C6",
-"4+    c #CAD3D7",
-"5+    c #4588AE",
-"6+    c #BDCBD3",
-"7+    c #AFC1D0",
-"8+    c #85ADC5",
-"9+    c #B8C9D4",
-"0+    c #005E95",
-"a+    c #6294B1",
-"b+    c #F8EBE8",
-"c+    c #F7F2F3",
-"d+    c #FBFAFC",
-"e+    c #A4C6DB",
-"f+    c #1C72A4",
-"g+    c #438BB1",
-"h+    c #4B8FB1",
-"i+    c #156DA1",
-"j+    c #6397B7",
-"k+    c #DBDCDE",
-"l+    c #3D82AC",
-"m+    c #528CB1",
-"n+    c #C9CED3",
-"o+    c #DBE2E4",
-"p+    c #E4EFF8",
-"q+    c #247AAB",
-"r+    c #317EA9",
-"s+    c #D0D5D9",
-"t+    c #1A72A1",
-"u+    c #0B6B9D",
-"v+    c #3F88B0",
-"w+    c #3A85AF",
-"x+    c #84ADC9",
-"y+    c #E9E9EC",
-"z+    c #4E8DB1",
-"A+    c #287AA8",
-"B+    c #78A6C2",
-"C+    c #478AB3",
-"D+    c #5997BE",
-"E+    c #F4F7F8",
-"F+    c #E0EAF2",
-"G+    c #06689C",
-"H+    c #82A8C1",
-"I+    c #ECE6E2",
-"J+    c #E5E2E2",
-"K+    c #F6F0ED",
-"L+    c #A5C2D0",
-"M+    c #005E93",
-"N+    c #81A7BE",
-"O+    c #BBCAD4",
-"P+    c #056A9C",
-"Q+    c #136F9F",
-"R+    c #4989B8",
-"S+    c #4286B7",
-"T+    c #89B6D3",
-"U+    c #DFEAF2",
-"V+    c #B8D4E0",
-"W+    c #A7C4D2",
-"X+    c #BCC8D3",
-"Y+    c #E2DDDC",
-"Z+    c #D9D9DA",
-"`+    c #AFC3CE",
-" @    c #D4D7D8",
-".@    c #DFDBDA",
-"+@    c #DEDDDC",
-"@@    c #F4F2F0",
-"#@    c #CEDBE3",
-"$@    c #AFC2CD",
-"%@    c #D4D4D5",
-"&@    c #B9C5CE",
-"*@    c #A6BDC9",
-"=@    c #ABC4D1",
-"-@    c #B7D2DF",
-";@    c #D3E0EA",
-">@    c #F7F4F3",
-",@    c #F5F4F5",
-"'@    c #C5DBE7",
-")@    c #ABCADA",
-"!@    c #BFD6E2",
-"~@    c #FDFDFF",
-"{@    c #FEFCFC",
-"]@    c #EAECEC",
-"^@    c #B1C6D0",
-"/@    c #C7D0D4",
-"(@    c #DCDBDA",
-"_@    c #E7E6E5",
-":@    c #DDDCDB",
-"<@    c #C6CDD0",
-"[@    c #B4C9D5",
-"}@    c #D9E0E5",
-"|@    c #F6F7F9",
-"1@    c #CDE1EC",
-"2@    c #C6DDE9",
-"3@    c #BFDAE5",
-"4@    c #BCD8E4",
-"5@    c #D2E5EE",
-"6@    c #F9F7F6",
-"7@    c #EAEAEA",
-"8@    c #E4E4E4",
-"9@    c #EAE6E4",
-"0@    c #E4E3E2",
-"a@    c #E1E1E1",
-"b@    c #E0E0E0",
-"c@    c #D7D7D7",
-"d@    c #DCDAD9",
-"e@    c #DFDCDA",
-"f@    c #DFDDDB",
-"g@    c #E2DFDD",
-"h@    c #DFDBD9",
-"i@    c #E7E3E1",
-"j@    c #ECEAE9",
-"k@    c #EBEAEA",
-"l@    c #F1EEEC",
-"m@    c #E9E4E3",
-"n@    c #E9E6E4",
-"o@    c #EAEAE9",
-"p@    c #DEDEDE",
-"q@    c #D8D7D7",
-"r@    c #DBDAD9",
-"s@    c #D6D6D6",
-"t@    c #D3D3D3",
-"u@    c #E5E4E3",
-"v@    c #F9F8F7",
-"w@    c #F9F9F8",
-"x@    c #FBFBFB",
-"y@    c #F2F2F2",
-"z@    c #F0F0F0",
-"A@    c #F1F1F1",
-"B@    c #DDDDDD",
-"C@    c #DBDBDB",
-"D@    c #DADADA",
-"E@    c #D5D5D5",
-"F@    c #E7E7E7",
-"G@    c #D9D9D9",
-"H@    c #CECECE",
-"I@    c #DCDCDC",
-"J@    c #E9E9E9",
-"K@    c #F4F4F4",
-"L@    c #FAFAFA",
-"M@    c #FEFEFE",
-"N@    c #F5F5F5",
-"O@    c #ECECEC",
-"P@    c #E8E8E8",
-"Q@    c #D8D8D8",
-"R@    c #F7F7F7",
-"S@    c #DFDFDF",
-"T@    c #E5E5E5",
-"U@    c #F3F3F3",
-"V@    c #F3F2F0",
-"W@    c #E7E6E2",
-"X@    c #F9F8FB",
-"Y@    c #FFFDFD",
-"Z@    c #D0D0D0",
-"`@    c #F6F6F6",
-" #    c #EBEBEB",
-".#    c #FCFDFD",
-"+#    c #FEFDFD",
-"@#    c #FBF9F5",
-"##    c #FCF9F5",
-"$#    c #F9F9F6",
-"%#    c #F8F8FA",
-"&#    c #F8F9FD",
-"*#    c #E7E4E0",
-"=#    c #E1E0D2",
-"-#    c #D6C699",
-";#    c #B29960",
-">#    c #CCCBC7",
-",#    c #CDCCCB",
-"'#    c #F4F4F5",
-")#    c #EFF0F2",
-"!#    c #D6CBB9",
-"~#    c #C3B089",
-"{#    c #D2C2A7",
-"]#    c #B1ACA2",
-"^#    c #EDEEEF",
-"/#    c #E9E7E0",
-"(#    c #B69B5C",
-"_#    c #B99954",
-":#    c #BD9A47",
-"<#    c #C7A446",
-"[#    c #DDBB56",
-"}#    c #EFC546",
-"|#    c #F7C756",
-"1#    c #FADA8A",
-"2#    c #F9EAA5",
-"3#    c #DEBF7F",
-"4#    c #AB8B3E",
-"5#    c #715C2A",
-"6#    c #3F3E1C",
-"7#    c #5D4700",
-"8#    c #C3B58D",
-"9#    c #FFFCF1",
-"0#    c #8C8262",
-"a#    c #FCFDFB",
-"b#    c #EDEBE3",
-"c#    c #E4E1D9",
-"d#    c #D9D0C0",
-"e#    c #C3B38A",
-"f#    c #8F7323",
-"g#    c #B98A0E",
-"h#    c #F6C353",
-"i#    c #FFE4A7",
-"j#    c #FFF2CB",
-"k#    c #E4C288",
-"l#    c #896721",
-"m#    c #302400",
-"n#    c #3C3715",
-"o#    c #695D37",
-"p#    c #978D6E",
-"q#    c #C5C0AE",
-"r#    c #B6B1A4",
-"s#    c #D5D7DA",
-"t#    c #776F58",
-"u#    c #79571D",
-"v#    c #977E45",
-"w#    c #948856",
-"x#    c #745E2E",
-"y#    c #614A2B",
-"z#    c #9B9B8F",
-"A#    c #E6E5E6",
-"B#    c #FBFCFF",
-"C#    c #F6F7FA",
-"D#    c #D1D0D0",
-"E#    c #E7E5EA",
-"F#    c #A0967A",
-"G#    c #615930",
-"H#    c #CBC9C9",
-"I#    c #DAC388",
-"J#    c #6C5B19",
-"K#    c #E3E5E8",
-"L#    c #FCF0CA",
-"M#    c #FDCF3E",
-"N#    c #7F6104",
-"O#    c #7D7F6B",
-"P#    c #9C9C9C",
-"Q#    c #D4D4D4",
-"R#    c #C4C4C7",
-"S#    c #97917D",
-"T#    c #9A842F",
-"U#    c #A68827",
-"V#    c #63501B",
-"W#    c #24240C",
-"X#    c #54554C",
-"Y#    c #B3B3B4",
-"Z#    c #ABABAB",
-". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ - / ) ( _ : < [ } | 1 2 3 - 4 5 6 7 8 9 0 a b c d - - - - - - - e f ",
-"g h i j k l m n h h h o p q h h r s t h h h u v w x y v z A B C D h h E F G H I J K L M h h h h h h h h h N ",
-"g h O P Q h h h h h R S T U V h W X Y Z ` h  ...+.h @.#.$.%.&.*.=.-.;.>.,.'.).!.~.h {.].^.h h h h h h h h /.",
-"g h (._.:.<.[.}.|.h 1.2.3.4.5.h W 6.7.8.9.h 0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.l.r.s.t.u.h h h h h h h h /.",
-"g h h v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.h h h L.a.M.N.O.e.P.Q.R.S.T.U.V.W.e.X.Y.e.Z.`. +.+++h h h h h h h h /.",
-"g h @+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+h [+}+|+1+2+3+4+5+6+7+;+8+9+0+a+b+c+d+h h h h h h h h h /.",
-"g h e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+h h h h h h h h h /.",
-"g h h U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@h h h h h h h h h /.",
-"g h h h h {.6@7@8@9@0@a@b@c@d@e@c@f@g@h@i@j@8@k@l@m@n@o@p@q@e@r@N s@t@u@(+v@w@h h h h h h h h h h h h h h /.",
-"g h h h h h h h x@y@z@A@A@7@p@p@B@C@D@c@E@p@F@a@D@C@G@H@E@I@b@J@z@z@K@L@M@h M@h h h h h h h h h h h h h h /.",
-"g h h h h h h h h h h h h 9.A@N@y@O@P@J@P@7@t.t.t.Q@C@t.R@M@M@h h h h h h h h h h h h h h h h h h h h h h /.",
-"g h h h h h h h h h h h h h h h M@^.++++++y@S@s@T@U@++h h h h h h h h h h h h h h h h h V@W@h h h h h X@Y@Z@",
-"g h h h h h h h h h h h h h h h h h h h h ++`@z@O@ #F@F@O@z@`@R@`@K@R@.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h x@`@U@z@z@U@K@y@P@^#/#(#_#:#<#[#}#|#1#2#3#4#5#6#7#8#9#0#",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h M@M@a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h s#t#u#v#w#x#y#z#A#B#C#].D#",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h R E#F#G#H#,@h h h h h /.",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h I#J#K#h h h h h h /.",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h L#M#N#O#` h h h h h /.",
-"P#G@N N N N t@t@t@N N t@t@t@t@N t@t@t@N N t@t@t@N N t@t@t@t@N N N N N N N N N N Q#R#S#T#U#V#W#X#Y#t@N N c@Z#"};
+"54 20 415 2",
+"bH c #004f87",
+"a1 c #005089",
+"bo c #00508a",
+"ac c #00518e",
+".S c #005292",
+"#I c #005395",
+".H c #005396",
+".0 c #005497",
+"#f c #005498",
+"#i c #005499",
+"a6 c #00559a",
+"a. c #00559b",
+".y c #00559c",
+".T c #01508a",
+".U c #01508b",
+"#Q c #015393",
+"#T c #015395",
+"bm c #024f82",
+".t c #025088",
+"as c #02579d",
+"#S c #045490",
+"#B c #045698",
+"aP c #04589d",
+"#P c #05538b",
+"bs c #055695",
+"ay c #05589d",
+"b# c #05589e",
+".4 c #06548d",
+".R c #06599e",
+"#w c #06599f",
+"bL c #095999",
+".I c #0a5589",
+".s c #0a5c9f",
+"bl c #0c5da0",
+"au c #0d5585",
+"az c #0d578c",
+".J c #0d5a97",
+".v c #0e5990",
+"bu c #0e5c9b",
+"bA c #0f5e9f",
+"#W c #125e98",
+"aM c #135a8a",
+"#v c #1462a2",
+"aL c #1563a3",
+".u c #185f90",
+"#9 c #186199",
+"av c #1864a3",
+".z c #1c659e",
+"a8 c #1c66a4",
+"aq c #1d67a6",
+"#O c #1d68a6",
+"a3 c #1d68a7",
+".M c #1f69a8",
+"#D c #206aa8",
+"#d c #21689e",
+"a0 c #216aa7",
+"aO c #226391",
+"a9 c #236490",
+"aN c #236492",
+"aw c #246490",
+"bJ c #246491",
+".K c #256eaa",
+"ba c #276691",
+"#l c #276792",
+"#c c #276faa",
+"#U c #286894",
+"#j c #286994",
+"at c #2c6c9a",
+"bC c #2c71ab",
+"#g c #2e6f9e",
+"#E c #2e70a0",
+".w c #327099",
+"bM c #3372a7",
+"bN c #3574a9",
+"aS c #367198",
+"## c #38708f",
+"bO c #3877ac",
+"a5 c #387ab2",
+"bw c #3978ad",
+"ah c #3a759b",
+".6 c #3a759c",
+"bv c #3b7aaf",
+".P c #3d78a2",
+"#h c #3e7eb3",
+"ar c #3f789e",
+"a# c #437fb1",
+"aB c #447798",
+"bx c #457fae",
+"d4 c #46350e",
+"bD c #467894",
+"bU c #467999",
+"aA c #46799b",
+"bz c #467eac",
+"ae c #4683b7",
+"bi c #4784b7",
+"d3 c #483809",
+"bT c #4a7c9d",
+"aC c #4b7994",
+"a7 c #4c7a95",
+"#x c #4c87b9",
+"ee c #4f3f14",
+"cb c #4f7e9b",
+"ca c #4f7fa0",
+"br c #4f84b2",
+".C c #4f85a9",
+".3 c #508abb",
+"eA c #523f0c",
+"aQ c #5488ad",
+".G c #548dbd",
+"bF c #5586a5",
+"a4 c #5687a6",
+"bB c #588cb7",
+"aJ c #598fbb",
+"dM c #5a4e2f",
+"bV c #5c859c",
+"#H c #5c91be",
+"bk c #5c92bf",
+"al c #5e93c0",
+"ao c #5f90bb",
+"d5 c #604b10",
+"bn c #628fb0",
+"b8 c #63889d",
+"b7 c #64899f",
+"ev c #655a3b",
+"co c #668ca2",
+"#X c #6694bd",
+"#Y c #6695bd",
+"#M c #6697c1",
+"bj c #6698c3",
+"b6 c #678da3",
+"e. c #6b5f3b",
+"b3 c #6b90a7",
+"bS c #6b94ae",
+"eB c #6c6349",
+"#8 c #6e9ab9",
+"cl c #718fa0",
+"bY c #7293a5",
+"cp c #7297ae",
+"ed c #77612f",
+"em c #79632f",
+"cr c #799fb5",
+"ab c #79a5cb",
+"ef c #7a735f",
+"#C c #7a9eb0",
+"cq c #7aa1b7",
+"d2 c #7d6322",
+"en c #7d735c",
+"ad c #7ea5c4",
+".Z c #7faacd",
+"dL c #82744d",
+"dN c #836517",
+"e# c #846820",
+"cc c #849fad",
+"b5 c #84a2b3",
+"aX c #84a4b9",
+"bh c #87afd0",
+"cn c #8aa5b6",
+"c# c #8aa5b7",
+".N c #8aadc5",
+".O c #8aafcf",
+"bI c #91a7b4",
+"d6 c #928259",
+"#Z c #92afc7",
+"cg c #94aab8",
+"bG c #94b5d0",
+"aW c #95b4cf",
+"bP c #96b0c2",
+"ck c #97adbc",
+".5 c #97b6c9",
+"dK c #997d38",
+"#. c #99b8d5",
+"el c #9c9584",
+"er c #9e7a1d",
+"dV c #9e7b1c",
+"dU c #9e8a55",
+"aK c #9eb8c5",
+".1 c #9fbaca",
+"ap c #a0b8c4",
+".V c #a0b9c7",
+"cf c #a2b8c7",
+"bW c #a5b5bc",
+"#J c #a5bdc8",
+"cs c #a7bfcc",
+"b4 c #a8b8bf",
+"bp c #a8b8c0",
+"dk c #a9935c",
+"es c #a9a499",
+"#y c #a9c3dd",
+".b c #aac6de",
+".k c #abc7de",
+"ec c #af9864",
+".a c #b5cee2",
+"eo c #b6b2a8",
+"ea c #b79851",
+"b9 c #b7bfc4",
+"#N c #b9ccd5",
+"bt c #bac5cc",
+"am c #baccd5",
+"dJ c #bb9c5b",
+"eC c #bbb8af",
+".c c #bbd1e5",
+".x c #bbd2e5",
+"dT c #beb49a",
+"dQ c #bfb291",
+"d7 c #bfb5a0",
+"bX c #bfc8d2",
+"dq c #c0b59b",
+"eg c #c0beb7",
+"ci c #c0c6ca",
+"af c #c0d1dc",
+".l c #c0d5e7",
+"by c #c1c8cd",
+"#R c #c2d2dd",
+"a2 c #c3d1d8",
+"dO c #c4bba7",
+".r c #c5d8e8",
+"dl c #c6c5c1",
+"eb c #c8ae76",
+"bd c #c9c8c9",
+"eu c #ca9b20",
+"bc c #cac8ca",
+"dp c #ccbb94",
+"ek c #cccac6",
+"d9 c #cdcac5",
+"b2 c #cdd1d8",
+"be c #cecdce",
+"d1 c #d0af6a",
+"dA c #d1af59",
+"dS c #d1cbbe",
+"bb c #d1cfd1",
+".p c #d1e0ed",
+".h c #d1e1ed",
+"d8 c #d2c9b5",
+"aE c #d2d0d2",
+".f c #d2e1ee",
+"cm c #d3d3d4",
+"cj c #d3d3d5",
+".j c #d3e1ee",
+"cA c #d4d2d4",
+"#u c #d4e2ee",
+"ez c #d5a425",
+"dB c #d5b35a",
+"dR c #d5d1c8",
+"c3 c #d5d3d5",
+"cZ c #d5d4d4",
+"aD c #d5d4d6",
+"cE c #d6d4d5",
+"cN c #d6d4d6",
+"aF c #d6d5d6",
+"cB c #d6d6d6",
+"ax c #d6d8d9",
+"bq c #d7d4d7",
+"b1 c #d7d6d7",
+"cY c #d7d7d7",
+".n c #d7e4ef",
+"dW c #d8a726",
+"cy c #d8d6d8",
+"b0 c #d8d7d8",
+"bZ c #d8d8d8",
+"c. c #d8d8d9",
+"cd c #d8d8db",
+"cX c #d8d9d8",
+".L c #d8e5ee",
+"dE c #d9b456",
+"dC c #d9b65d",
+"cz c #d9d7d9",
+"#2 c #d9d8d9",
+"cM c #dad8da",
+"b. c #dad8dd",
+"cJ c #dad9d9",
+"c0 c #dad9da",
+"cF c #dbd9da",
+"cC c #dbd9db",
+"cx c #dbdadb",
+"cW c #dbdbdb",
+"dD c #dcb963",
+"cD c #dcdadc",
+"cH c #dddbdc",
+"#3 c #dddbdd",
+"cG c #dddcdc",
+"#1 c #dddcdd",
+"cK c #dedbde",
+"cI c #dedcdd",
+"c4 c #dedcde",
+"c2 c #deddde",
+"cL c #dfdddf",
+"ch c #dfdde0",
+"#o c #dfe2e5",
+"#7 c #dfe6ec",
+"dI c #e0c78c",
+"cw c #e0dee0",
+"dc c #e0dfe0",
+"#m c #e0e3e6",
+".2 c #e0e7ec",
+"#A c #e0eaf3",
+"c5 c #e1dfe0",
+"cV c #e1dfe1",
+"#n c #e1e4e7",
+"de c #e2e0e1",
+"#0 c #e2e1e2",
+"eh c #e3e2df",
+"c1 c #e3e2e3",
+"aZ c #e3e5e7",
+"dF c #e4b750",
+"do c #e4e0d9",
+"dd c #e4e2e4",
+"db c #e4e3e4",
+"bR c #e4ebf1",
+"ex c #e5cb8a",
+"dy c #e5e3e4",
+"ep c #e5e5e5",
+"da c #e6e4e5",
+"dG c #e7c373",
+"dx c #e7e5e6",
+"ce c #e7e5e7",
+"cv c #e7e6e7",
+"et c #e8d29f",
+"cT c #e8e6e8",
+"d. c #e8e7e8",
+"bK c #e8e8eb",
+".g c #e8eff6",
+"dw c #e9e8e9",
+"aY c #e9e9e9",
+"#p c #e9e9ec",
+"aR c #e9ecf0",
+"dr c #eae8e3",
+"#r c #eae8ea",
+"aT c #eae9ea",
+"bf c #eaeaea",
+".# c #eaf1f7",
+"#s c #ebe8eb",
+"d# c #ebe9ea",
+"aU c #ebeaeb",
+"ei c #ebebe9",
+".d c #ebf2f7",
+"dz c #ece7df",
+"#q c #eceaec",
+"cS c #ecebeb",
+"cU c #ecebec",
+"bE c #ececed",
+"#V c #eceeef",
+"c9 c #edebed",
+"dv c #edecec",
+"c6 c #edeced",
+"eq c #eeeceb",
+"aV c #eeecee",
+"dh c #eeedee",
+"dt c #eeeeee",
+"aa c #eef0f2",
+"#a c #eef2f3",
+"aG c #efeeef",
+"df c #efefef",
+".i c #eff4f9",
+"dH c #f0d496",
+"ew c #f0ece2",
+"cO c #f0eef0",
+"du c #f0efef",
+"an c #f0eff0",
+"c7 c #f1f0f1",
+"ej c #f1f1f0",
+"ey c #f2bc31",
+"aH c #f2f1f2",
+"bQ c #f2f2f2",
+"ag c #f2f3f9",
+"#b c #f2f4f7",
+"ds c #f3f2f2",
+"cu c #f3f2f3",
+"dg c #f3f3f3",
+"#k c #f3f4f6",
+".A c #f3f6f8",
+".o c #f3f6fa",
+".B c #f3f7fa",
+"#4 c #f4f2f4",
+"dm c #f4f3f3",
+"#L c #f4f3f4",
+"dj c #f4f4f3",
+"cP c #f5f4f5",
+"c8 c #f6f5f6",
+".8 c #f7f5f7",
+".9 c #f7f6f7",
+"#z c #f7f6f9",
+"aI c #f7f8f9",
+"#e c #f7f9fa",
+"#G c #f8f6f8",
+"dP c #f8f7f7",
+"cR c #f8f7f8",
+"dn c #f8f8f8",
+"aj c #f9f7f9",
+"di c #f9f8f8",
+"#t c #f9f8f9",
+"bg c #f9f9f9",
+".Q c #f9fbfc",
+".m c #f9fbfd",
+"dX c #fac549",
+"d0 c #fae6bb",
+"ai c #fafafa",
+".F c #fafbfd",
+"#6 c #fbfafb",
+".7 c #fbfbfb",
+"ct c #fbfcfc",
+"#F c #fcfbfc",
+"#K c #fcfcfc",
+"cQ c #fdfdfd",
+".e c #fdfefe",
+".Y c #fefcfe",
+".E c #fefdfe",
+"#5 c #fefefe",
+".q c #fefeff",
+"dY c #ffda8c",
+"dZ c #ffedc6",
+".X c #fffbfe",
+"ak c #fffcfe",
+".W c #fffdff",
+".D c #fffeff",
+"Qt c #ffffff",
+"Qt.#.a.b.c.dQtQt.e.f.gQtQt.e.h.iQtQtQtQtQt.j.k.l.mQtQt.n.h.eQt.o.p.d.q.j.h.h.h.h.eQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".r.s.t.u.v.wQtQt.x.y.z.AQt.B.y.C.D.E.D.F.G.H.I.J.K.LQt.M.y.NQt.O.y.P.Q.R.S.T.U.T.V.W.W.X.YQtQtQtQtQtQtQtQtQt",
+".Z.0.1Qt.q.2.DQt.3.4.y.5Qt.B.y.6.7.8.9#..y###a#b#c#d#e.M#f#gQt#h#i#j#k.R#l#m#n#o#p#q#r#s#tQtQtQtQtQtQtQtQtQt",
+"#u#v#w#x#y#z#t#A#B#C#D#E.E.o.y.6#F.8#G#H#I#J#K#L#M#f#N#O#P#Q#R#S#T#U#V.R#W#X#Y#Z#0#1#2#3#4#5QtQtQtQtQtQtQtQt",
+"#6#7#8#9a.a#aaabacadae#iafag.yahaiajakal.Ham#Kanao.0apaqarasatauavawaxayazaAaBaCaDaEaFaG.7QtQtQtQtQtQtQtQtQt",
+"#6#4aHaIaJ#iaKaLaMaNaOaPaQaR.yaSaTaUaVaW.yaXaYaZa0a1a2a3a4a5a6a7a8a9b.b#babbbcbdbe#1bfbg#K#5QtQtQtQtQtQtQtQt",
+"bhbibjbkblbmbnbobpbqbqbrbsbt.ybubvbwbxbybzbAbBbC.SbDbE#ObFbGbHbIa8bJbK.RbLbMbNbObPbQai.7QtQtQtQtQtQtQtQtQtQt",
+"bRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b6b7b8b9c.c#cacbcccdcecfcgchcicjckclcmcncocpcqcrcsQtctQtQtQtQtQtQtQtQtQtQtQt",
+"#5#5.7cucvcwcxcycz#2cycAaFcBbZcCcDcEcFcGcHcI#1cJ#2cKcLcMb1b0cNcyczcBb1cwcOcP#6cQQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtcRcScTaTaVcUcV#1cWcXcYbZcZc0cwc1cLcDc2#1cNc3b1c4c5cec6c7c8aicQ#5#5cQQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtaicuaGc9aUd.d.d#dadbdcdddeb1b0cDdf#6#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#FcR#Gc6cL#2cv#6QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.DcRdgc6c1dcdhaHcPcPc8c8dibg#K#5QtQtQtQtQtQtQtcQdjdgdkdldmdnQtcQdodpdqdr",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.EcRdsdtduaGdvdwdxcvdyaTdzdAdBdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQ",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbgdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtd9e.e#eaebecedeeefegeheiejQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcQekelemeneoepQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteqeresQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteteuevaiQtQtQtQtQtQtQt",
+"aiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiai.7ewexeyezeAeBeC#Kaiaiaiai#5"};
 
 static const char* const image0_data[] = { 
 "16 16 14 1",
index 38b5f61ba124ac2239f0688e66ef93c5e9808ff1..c8d518d84dd0afc6d0534b9db006ed6e56cbdd9f 100644 (file)
@@ -1,16 +1,38 @@
 //  File      : main.cxx 
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
+
+#include "globals.h"
 
 #include "SALOME_InstallWizard.hxx"
 #include <qapplication.h>
 #include <qfile.h>
 #include <qmessagebox.h>
 
+// ================================================================
+/*!
+ *  MessageOutput
+ *  Qt's messages handler funcion
+ */
+// ================================================================
+void MessageOutput( QtMsgType type, const char *msg )
+{
+  switch ( type ) {
+  case QtDebugMsg:
+    ___DEBUG___( msg );
+    break;
+  case QtWarningMsg:
+    ___WARNING___( msg );
+    break;
+  case QtFatalMsg:
+    ___FATAL___( msg );
+    break;
+  }
+}
+
 // ================================================================
 /*!
  *  main
@@ -19,6 +41,7 @@
 // ================================================================
 int main( int argc, char **argv )
 {
+  qInstallMsgHandler( MessageOutput );
   QApplication a( argc, argv );
   QString xmlFileName( argc == 2 ? argv[1] : "config.xml" );